Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jNv75-0000OC-IT for pgadmin-hackers@arkaria.postgresql.org; Mon, 13 Apr 2020 09:10:44 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jNv74-0002bd-Fh for pgadmin-hackers@arkaria.postgresql.org; Mon, 13 Apr 2020 09:10:42 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jNv74-0002bW-4G for pgadmin-hackers@lists.postgresql.org; Mon, 13 Apr 2020 09:10:42 +0000 Received: from mail-ot1-x335.google.com ([2607:f8b0:4864:20::335]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1jNv72-0003o8-Dr for pgadmin-hackers@postgresql.org; Mon, 13 Apr 2020 09:10:41 +0000 Received: by mail-ot1-x335.google.com with SMTP id i27so5553990ota.7 for ; Mon, 13 Apr 2020 02:10:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=DusPvu3TxfwIF9RxeLEqsOBW/+QDTm4Amz/ggZ89c7o=; b=hKonnLR35+Ocd76IatQRsKACZWXEsu6qJVLKgnaYDj1LDLC512lv3UQSMKc89M65Pa g9MOe5MZlANiMzbY9QaLwGDBJO2Csu1dCvnJnfOCqPJ1rYeFZEiCRNmYhu0JASXTgnxf 6VhIEYqftjY1rNmqUv1YytgxZb/aiRbN/o5enjNFO44s+txe277eXS0lGotL5LWAoP/z nSEEGvbqxLzT0eUa1BA8Pl0kXIYhc2kW7LcrajtUr9nNSPpWjwQD8mX5ARC7VE3V1KHr wCR+zHDC/G1gRsL+s2eNTOS5RdUA+4ctY+WAUiLbIWgdyG/NOHBk9NonTRsV0EGAc2a4 tLNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=DusPvu3TxfwIF9RxeLEqsOBW/+QDTm4Amz/ggZ89c7o=; b=IofExPAm7yQJlqv17IsWlhfkO9fMJI/AZzfGfst4K+ZRmajeWBzRpz4lLIjEK0NAiN IRYBfOdY/8nye3Sg6cIflhZMlbBLpkstskAw1hIdAaDD7qmyyd1b44flUrJO8SpFL4C0 GowxvW8CP1il7qU38K9iqDXuQ6B9sfFJzXCzgpiBXh/TUJlNTDgffLe3kVP99G6T3lSL 8ox69zXu63ZGeBcC1Bvz5o5r1GamFJwx/D1J2rd7nofAHvTyqm8uL508cZcsT6JLEV7F O8MDIA5Y6vNrPaApWosKuPP9/7Q5PeA0sRsHQWQuV4SnrHSmkuYkDls61P5uwZEcoQQ9 L0oA== X-Gm-Message-State: AGi0PuZGix/SPZoWEVrag48RFA7Ex1AwESIRLVIxFVy64dWNPKmuBqzw TPrOh2BKfKA8pbnHB2sNm8OTG1VirhryQzf+bLUmWiPL1qY0SHgD8KjZDUEa6F0E2AAGjUyJ/MW 6+snnIz72R+bJe3AW2hn1pakRVMdb+PEdzQGe2fm9CWRqtuxfc1zAGS86FupLxjI5Ugimx6v58a NnyktCLqCV2EZTDRrUxKRtUGJgDtjW32oMTggLg0ZTgwtt/hCD7rv+wbmD X-Google-Smtp-Source: APiQypIV2eNx8WUK+tN28Q6fEe5QGf7Lnuovb8AfoBuFNPE7ScjF16xkK/tXS+AidOuv4y+0ucOVgLVirqZDvTnwUyI= X-Received: by 2002:a9d:77d5:: with SMTP id w21mr2189596otl.5.1586769038250; Mon, 13 Apr 2020 02:10:38 -0700 (PDT) MIME-Version: 1.0 From: Yogesh Mahajan Date: Mon, 13 Apr 2020 14:40:02 +0530 Message-ID: Subject: [pgAdmin 4 - Housekeeping #5255] Implement Selenium Grid using multi-threading & solenoid using current test framework To: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000ddce0805a3287434" X-CLOUD-SEC-AV-Info: edb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000ddce0805a3287434 Content-Type: multipart/alternative; boundary="000000000000ddce0705a3287432" --000000000000ddce0705a3287432 Content-Type: text/plain; charset="UTF-8" Hi, Please find the attached patch for running *features tests* using solenoid(selenium grid + docker). KIndly review. To sun feature tests in parallel, required prerequisites can be checked in '~/web/regression/README' file. Also detailed instructions are added in the same file. After applying the patch, any existing process for execution of API/Features tests remains the same. Thanks, Yogesh Mahajan QA - Team EnterpriseDB Corporation Phone: +91-9741705709 --000000000000ddce0705a3287432 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

Please find the at= tached=C2=A0patch for running features tests using solenoid(selenium= =C2=A0grid + docker).
KIndly review.
To sun feature tes= ts in parallel, required prerequisites can be checked in '~/web/regress= ion/README' file.
Also detailed=C2=A0instructions are added i= n the same=C2=A0file.
After applying the patch, any existing proc= ess for execution of API/Features=C2=A0tests remains the same.


Thanks,
Yogesh Mahajan
QA - Team
EnterpriseDB Corporation

Phone: +91-9741705709
--000000000000ddce0705a3287432-- --000000000000ddce0805a3287434 Content-Type: application/octet-stream; name="Selenium_grid_implementation_v1.0 .patch" Content-Disposition: attachment; filename="Selenium_grid_implementation_v1.0 .patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k8y9ajxl0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rlc3Rz L3Rlc3RfaW5kZXhfY29uc3RyYWludF9hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvaW5k ZXhfY29uc3RyYWludC90ZXN0cy90ZXN0X2luZGV4X2NvbnN0cmFpbnRfYWRkLnB5CmluZGV4IDNj ZDZiM2I4Ni4uNWIyNGU2ZThmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvaW5k ZXhfY29uc3RyYWludC90ZXN0cy90ZXN0X2luZGV4X2NvbnN0cmFpbnRfYWRkLnB5CisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rlc3RzL3Rlc3RfaW5kZXhfY29u c3RyYWludF9hZGQucHkKQEAgLTQzLDMxICs0MywzMCBAQCBjbGFzcyBJbmRleENvbnN0cmFpbnRB ZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICBkaWN0KHVybD0nL2Jyb3dz ZXIvdW5pcXVlX2NvbnN0cmFpbnQvb2JqLycsIGRhdGE9dW5pcXVlX2tleV9kYXRhKSkKICAgICBd CiAKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgc2V0VXBDbGFzcyhjbHMpOgotICAgICAgICBj bHMuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0K KyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2Rl X2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KICAgICAgICAgc2NoZW1hX2luZm8gPSBw YXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgY2xzLnNlcnZlcl9pZCA9IHNj aGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBjbHMuZGJfaWQgPSBzY2hlbWFfaW5mb1si ZGJfaWQiXQotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNl KGNscywgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNscy5zZXJ2ZXJfaWQsIGNscy5kYl9pZCkKKyAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9p ZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxz LmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxm LmRiX2lkKQogICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgogICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0 byBhZGQgYSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImluZGV4IGNvbnN0cmFpbnQo cHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtleSkuIikKLSAgICAgICAgY2xzLnNjaGVtYV9pZCA9IHNj aGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBjbHMuc2NoZW1hX25hbWUgPSBzY2hlbWFf aW5mb1sic2NoZW1hX25hbWUiXQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRp bHMudmVyaWZ5X3NjaGVtYXMoY2xzLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5kYl9uYW1lLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnNjaGVtYV9uYW1lKQor ICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAgICAg ICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICAgICAg c2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNw b25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNj aGVtYSB0byBhZGQgYSBpbmRleCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbnN0 cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtleSkuIikKLSAgICAgICAgY2xzLnRhYmxlX25h bWUgPSAidGFibGVfaW5kZXhjb25zdHJhaW50XyVzIiAlIFwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgY2xzLnRhYmxlX2lkID0gdGFi bGVzX3V0aWxzLmNyZWF0ZV90YWJsZShjbHMuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5kYl9uYW1lLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5zY2hlbWFfbmFtZSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHMudGFibGVfbmFt ZSkKKyAgICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRhYmxlX2luZGV4Y29uc3RyYWludF8lcyIg JSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQor ICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNl cnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUpCiAKICAgICBkZWYgcnVuVGVzdChz ZWxmKToKICAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCBpbmRleCBjb25zdHJhaW50 KHByaW1hcnkga2V5IG9yIHVuaXF1ZSBrZXkpCkBAIC04MCw3ICs3OSw2IEBAIGNsYXNzIEluZGV4 Q29uc3RyYWludEFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgIGNv bnRlbnRfdHlwZT0naHRtbC9qc29uJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9u c2Uuc3RhdHVzX2NvZGUsIDIwMCkKIAotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiB0ZWFyRG93 bkNsYXNzKGNscyk6CisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgICAjIERpc2Nvbm5l Y3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJh c2UoY2xzLCBjbHMuc2VydmVyX2lkLCBjbHMuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxz LmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvaW5kZXhfY29uc3RyYWludC90ZXN0cy90 ZXN0X2luZGV4X2NvbnN0cmFpbnRfZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2lu ZGV4X2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9pbmRleF9jb25zdHJhaW50X2RlbGV0ZS5weQppbmRl eCA3ZWVhNWU5YmIuLmYzNWEwMGI0YSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRz L2luZGV4X2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9pbmRleF9jb25zdHJhaW50X2RlbGV0ZS5weQor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvaW5kZXhfY29uc3RyYWludC90ZXN0cy90ZXN0X2lu ZGV4X2NvbnN0cmFpbnRfZGVsZXRlLnB5CkBAIC0zOCwzMSArMzgsMzAgQEAgY2xhc3MgSW5kZXhD b25zdHJhaW50RGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAg ICB0eXBlPSJVTklRVUUiKSkKICAgICBdCiAKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgc2V0 VXBDbGFzcyhjbHMpOgotICAgICAgICBjbHMuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRh dGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNl bGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0K ICAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAg ICAgICAgY2xzLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBj bHMuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAgICBkYl9jb24gPSBkYXRhYmFz ZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKGNscywgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5zZXJ2ZXJfaWQs IGNscy5kYl9pZCkKKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVy X2lkIl0KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAg IGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VS VkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQogICAgICAgICBpZiBub3QgZGJfY29uWydk YXRhJ11bImNvbm5lY3RlZCJdOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSAiCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImluZGV4IGNvbnN0cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtleSkuIikKLSAg ICAgICAgY2xzLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBj bHMuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQotICAgICAgICBzY2hl bWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoY2xzLnNlcnZlciwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5k Yl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY2xzLnNjaGVtYV9uYW1lKQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9p bmZvWyJzY2hlbWFfaWQiXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9b InNjaGVtYV9uYW1lIl0KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZl cmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKICAg ICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSBpbmRleCAiCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgImNvbnN0cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtleSku IikKLSAgICAgICAgY2xzLnRhYmxlX25hbWUgPSAidGFibGVfaW5kZXhjb25zdHJhaW50XyVzIiAl IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAg ICAgICAgY2xzLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShjbHMuc2VydmVy LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5k Yl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNscy5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjbHMudGFibGVfbmFtZSkKKyAgICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRh YmxlX2luZGV4Y29uc3RyYWludF8lcyIgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIChz dHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0 aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25h bWUpCiAKICAgICBkZWYgcnVuVGVzdChzZWxmKToKICAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3 aWxsIGRlbGV0ZSBpbmRleCBjb25zdHJhaW50KHByaW1hcnkga2V5IG9yCkBAIC04MSw3ICs4MCw2 IEBAIGNsYXNzIEluZGV4Q29uc3RyYWludERlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9y KToKICAgICAgICAgKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNf Y29kZSwgMjAwKQogCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xz KToKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0 YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShjbHMsIGNs cy5zZXJ2ZXJfaWQsIGNscy5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVj dF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rlc3RzL3Rlc3RfaW5kZXhf Y29uc3RyYWludF9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvaW5kZXhfY29uc3RyYWlu dC90ZXN0cy90ZXN0X2luZGV4X2NvbnN0cmFpbnRfZ2V0LnB5CmluZGV4IGMwOGMyYWNiMy4uZjgz OGEyZjczIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvaW5kZXhfY29uc3RyYWlu dC90ZXN0cy90ZXN0X2luZGV4X2NvbnN0cmFpbnRfZ2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25z dHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rlc3RzL3Rlc3RfaW5kZXhfY29uc3RyYWludF9nZXQu cHkKQEAgLTM4LDMxICszOCwzMCBAQCBjbGFzcyBJbmRleENvbnN0cmFpbnRHZXRUZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAgIHR5cGU9IlVOSVFVRSIpKQogICAgIF0K IAotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBzZXRVcENsYXNzKGNscyk6Ci0gICAgICAgIGNs cy5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQor ICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVf ZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQogICAgICAgICBzY2hlbWFfaW5mbyA9IHBh cmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQotICAgICAgICBjbHMuc2VydmVyX2lkID0gc2No ZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIGNscy5kYl9pZCA9IHNjaGVtYV9pbmZvWyJk Yl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uo Y2xzLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2xzLnNlcnZlcl9pZCwgY2xzLmRiX2lkKQorICAgICAgICBzZWxm LnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQorICAgICAgICBzZWxmLmRiX2lk ID0gc2NoZW1hX2luZm9bImRiX2lkIl0KKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMu Y29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYu ZGJfaWQpCiAgICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CiAgICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRv IGFkZCBhICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5kZXggY29uc3RyYWludChw cmltYXJ5IGtleSBvciB1bmlxdWUga2V5KS4iKQotICAgICAgICBjbHMuc2NoZW1hX2lkID0gc2No ZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIGNscy5zY2hlbWFfbmFtZSA9IHNjaGVtYV9p bmZvWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGls cy52ZXJpZnlfc2NoZW1hcyhjbHMuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLmRiX25hbWUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHMuc2NoZW1hX25hbWUpCisg ICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCisgICAgICAg IHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQorICAgICAgICBz Y2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3Bv bnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2No ZW1hIHRvIGFkZCBhIGluZGV4ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29uc3Ry YWludChwcmltYXJ5IGtleSBvciB1bmlxdWUga2V5KS4iKQotICAgICAgICBjbHMudGFibGVfbmFt ZSA9ICJ0YWJsZV9pbmRleGNvbnN0cmFpbnRfJXMiICUgXAotICAgICAgICAgICAgICAgICAgICAg ICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBjbHMudGFibGVfaWQgPSB0YWJs ZXNfdXRpbHMuY3JlYXRlX3RhYmxlKGNscy5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLmRiX25hbWUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnNjaGVtYV9uYW1lLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy50YWJsZV9uYW1l KQorICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfaW5kZXhjb25zdHJhaW50XyVzIiAl IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisg ICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2Vy dmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkKIAogICAgIGRlZiBydW5UZXN0KHNl bGYpOgogICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggdGhlIGluZGV4IGNvbnN0 cmFpbnQocHJpbWFyeSBrZXkgb3IKQEAgLTgxLDcgKzgwLDYgQEAgY2xhc3MgSW5kZXhDb25zdHJh aW50R2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICApCiAgICAgICAgIHNl bGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBAY2xhc3Nt ZXRob2QKLSAgICBkZWYgdGVhckRvd25DbGFzcyhjbHMpOgorICAgIGRlZiB0ZWFyRG93bihzZWxm KToKICAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91 dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKGNscywgY2xzLnNlcnZlcl9pZCwgY2xzLmRiX2lkKQor ICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2Vy dmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2lu ZGV4X2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9pbmRleF9jb25zdHJhaW50X3B1dC5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rlc3RzL3Rlc3RfaW5kZXhfY29uc3Ry YWludF9wdXQucHkKaW5kZXggODcyODlhNjIwLi42YmRmNzAzMDggMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rlc3RzL3Rlc3RfaW5kZXhfY29uc3Ry YWludF9wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQv dGVzdHMvdGVzdF9pbmRleF9jb25zdHJhaW50X3B1dC5weQpAQCAtNDAsMzEgKzQwLDMwIEBAIGNs YXNzIEluZGV4Q29uc3RyYWludFVwZGF0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAg ICAgICAgICAgICAgdHlwZT0iVU5JUVVFIiwgZGF0YT1kYXRhKSkKICAgICBdCiAKLSAgICBAY2xh c3NtZXRob2QKLSAgICBkZWYgc2V0VXBDbGFzcyhjbHMpOgotICAgICAgICBjbHMuZGJfbmFtZSA9 IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KKyAgICBkZWYgc2V0 VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFi YXNlIl1bLTFdWyJkYl9uYW1lIl0KICAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9k aWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgY2xzLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJz ZXJ2ZXJfaWQiXQotICAgICAgICBjbHMuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAg ICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKGNscywgdXRpbHMu U0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNscy5zZXJ2ZXJfaWQsIGNscy5kYl9pZCkKKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQg PSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9p bmZvWyJkYl9pZCJdCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0 YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQogICAg ICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgogICAgICAgICAgICAgcmFp c2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSAiCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgImluZGV4IGNvbnN0cmFpbnQocHJpbWFyeSBrZXkg b3IgdW5pcXVlIGtleSkuIikKLSAgICAgICAgY2xzLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJz Y2hlbWFfaWQiXQotICAgICAgICBjbHMuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1h X25hbWUiXQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3Nj aGVtYXMoY2xzLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNscy5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnNjaGVtYV9uYW1lKQorICAgICAgICBzZWxm LnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAgICAgICBzZWxmLnNjaGVt YV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICAgICAgc2NoZW1hX3Jlc3Bv bnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKICAgICAg ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQg YSBpbmRleCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbnN0cmFpbnQocHJpbWFy eSBrZXkgb3IgdW5pcXVlIGtleSkuIikKLSAgICAgICAgY2xzLnRhYmxlX25hbWUgPSAidGFibGVf aW5kZXhjb25zdHJhaW50XyVzIiAlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1 aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgY2xzLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNy ZWF0ZV90YWJsZShjbHMuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNscy5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNscy5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHMudGFibGVfbmFtZSkKKyAgICAgICAg c2VsZi50YWJsZV9uYW1lID0gInRhYmxlX2luZGV4Y29uc3RyYWludF8lcyIgJSBcCisgICAgICAg ICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBzZWxm LnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnRhYmxlX25hbWUpCiAKICAgICBkZWYgcnVuVGVzdChzZWxmKToKICAgICAg ICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSBpbmRleCBjb25zdHJhaW50KHByaW1hcnkg a2V5IG9yCkBAIC04NCw3ICs4Myw2IEBAIGNsYXNzIEluZGV4Q29uc3RyYWludFVwZGF0ZVRlc3RD YXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1 ZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkK IAotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNscyk6CisgICAgZGVm IHRlYXJEb3duKHNlbGYpOgogICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAg ICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2UoY2xzLCBjbHMuc2VydmVyX2lk LCBjbHMuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uo c2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dGVzdHMvdGVzdF90YWJsZV9wYXJhbWV0ZXJzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFi bGVfcGFyYW1ldGVycy5weQppbmRleCBiYmVkMjY5OTguLjAyMjAzZDJmNSAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVfcGFyYW1ldGVycy5weQorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dGVzdHMvdGVzdF90YWJsZV9wYXJhbWV0ZXJzLnB5CkBAIC00Niw4ICs0Niw5IEBAIGNsYXNzIFRh YmxlVXBkYXRlUGFyYW1ldGVyVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAg KQogICAgIF0KIAotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBzZXRVcENsYXNzKHNlbGYpOgor ICAgIHRhYmxlX25hbWUgPSAidGVzdF90YWJsZV9wYXJhbWV0ZXJzXyVzIiAlIChzdHIodXVpZC51 dWlkNCgpKVsxOjhdKQorCisgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBzZWxmLmRiX25h bWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCiAgICAgICAg IHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCiAgICAgICAgIHNl bGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCkBAIC02MywxMiArNjQsMTQg QEAgY2xhc3MgVGFibGVVcGRhdGVQYXJhbWV0ZXJUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgogICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBh IHRhYmxlLiIpCi0gICAgICAgIHNlbGYudGFibGVfbmFtZSA9ICJ0ZXN0X3RhYmxlX3BhcmFtZXRl cnNfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCiAKLSAgICAgICAgc2VsZi50YWJsZV9p ZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwg c2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAg IHNlbGYudGFibGVfbmFtZSkKKyAgICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5n ZXRfdGFibGVfaWQoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQorICAgICAg ICBpZiBzZWxmLnRhYmxlX2lkIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLnRhYmxlX2lkID0g dGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZSgKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZlciwg c2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAg ICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQogCiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6CiAgICAg ICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCBhZGRlZCB0YWJsZSB1bmRlciBzY2hlbWEg bm9kZS4iIiIKQEAgLTEzMCw3ICsxMzMsNiBAQCBjbGFzcyBUYWJsZVVwZGF0ZVBhcmFtZXRlclRl c3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhy ZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHRl YXJEb3duQ2xhc3Moc2VsZik6CisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgICAjIERp c2Nvbm5lY3QgdGhlIGRhdGFiYXNlCiAgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3Rf ZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvdGVzdHMvdXRpbHMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdXRpbHMucHkKaW5kZXgg MGEyOTYzYWFiLi44ZTVmNjY1ZjMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy91dGlscy5w eQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdXRpbHMucHkKQEAgLTQ4MywzICs0ODMsMjYgQEAgZGVm IGdldF9oYXNoX3BhcnRpdGlvbnNfZGF0YShkYXRhKToKICAgICAgICAgICB9XQogICAgIGRhdGFb J3BhcnRpdGlvbl9rZXlzJ10gPSBcCiAgICAgICAgIFt7J2tleV90eXBlJzogJ2NvbHVtbicsICdw dF9jb2x1bW4nOiAnZW1wbm8nfV0KKworCitkZWYgZ2V0X3RhYmxlX2lkKHNlcnZlciwgZGJfbmFt ZSwgdGFibGVfbmFtZSk6CisgICAgdHJ5OgorICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0 X2RiX2Nvbm5lY3Rpb24oZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnaG9zdCddLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydwb3J0J10sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3NzbG1v ZGUnXSkKKyAgICAgICAgcGdfY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQorICAgICAgICBw Z19jdXJzb3IuZXhlY3V0ZSgic2VsZWN0IG9pZCBmcm9tIHBnX2NsYXNzIHdoZXJlIHJlbG5hbWU9 JyVzJyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9uYW1lKQorICAgICAgICB0 YWJsZSA9IHBnX2N1cnNvci5mZXRjaG9uZSgpCisgICAgICAgIGlmIHRhYmxlOgorICAgICAgICAg ICAgdGFibGVfaWQgPSB0YWJsZVswXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdGFibGVf aWQgPSBOb25lCisgICAgICAgIGNvbm5lY3Rpb24uY2xvc2UoKQorICAgICAgICByZXR1cm4gdGFi bGVfaWQKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhj KGZpbGU9c3lzLnN0ZGVycikKKyAgICAgICAgcmFpc2UKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl c3RzL3Rlc3RfbXZpZXdzX3BhcmFtZXRlcnMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZXN0cy90ZXN0X212aWV3 c19wYXJhbWV0ZXJzLnB5CmluZGV4IGM4NDI3NmVmNi4uMWY2M2VmNTY0IDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZXN0cy90ZXN0X212aWV3c19wYXJhbWV0ZXJzLnB5CisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl c3RzL3Rlc3RfbXZpZXdzX3BhcmFtZXRlcnMucHkKQEAgLTQ1LDggKzQ1LDkgQEAgY2xhc3MgTVZp ZXdzVXBkYXRlUGFyYW1ldGVyVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAg KQogICAgIF0KIAotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBzZXRVcENsYXNzKHNlbGYpOgor ICAgIG1fdmlld19uYW1lID0gInRlc3RfbXZpZXdfcHV0XyVzIiAlIChzdHIodXVpZC51dWlkNCgp KVsxOjhdKQorCisgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBzZWxmLmRiX25hbWUgPSBw YXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCiAgICAgICAgIHNjaGVt YV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCiAgICAgICAgIHNlbGYuc2Vy dmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCkBAIC03MCwxNyArNzEsMTkgQEAgY2xh c3MgTVZpZXdzVXBkYXRlUGFyYW1ldGVyVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAg ICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIHVwZGF0ZSBhIG12aWV3LiIpCiAKLSAgICAg ICAgc2VsZi5tX3ZpZXdfbmFtZSA9ICJ0ZXN0X212aWV3X3B1dF8lcyIgJSAoc3RyKHV1aWQudXVp ZDQoKSlbMTo4XSkKLSAgICAgICAgbV92aWV3X3NxbCA9ICJDUkVBVEUgTUFURVJJQUxJWkVEIFZJ RVcgJXMuJXMgVEFCTEVTUEFDRSBwZ19kZWZhdWx0ICIgXAotICAgICAgICAgICAgICAgICAgICAg IkFTIFNFTEVDVCAndGVzdF9wZ2FkbWluJyBXSVRIIE5PIERBVEE7QUxURVIgVEFCTEUgIiBcCi0g ICAgICAgICAgICAgICAgICAgICAiJXMuJXMgT1dORVIgVE8gJXMiCi0KLSAgICAgICAgc2VsZi5t X3ZpZXdfaWQgPSB2aWV3c191dGlscy5jcmVhdGVfdmlldyhzZWxmLnNlcnZlciwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hl bWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtX3ZpZXdfc3FsLAorICAgICAgICBzZWxmLm1fdmlld19pZCA9IHZpZXdzX3V0aWxzLmdldF92 aWV3X2lkKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5tX3ZpZXdfbmFtZSkKIAorICAgICAgICBp ZiBzZWxmLm1fdmlld19pZCBpcyBOb25lOgorICAgICAgICAgICAgbV92aWV3X3NxbCA9ICJDUkVB VEUgTUFURVJJQUxJWkVEIFZJRVcgJXMuJXMgVEFCTEVTUEFDRSAiIFwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAicGdfZGVmYXVsdCBBUyBTRUxFQ1QgJ3Rlc3RfcGdhZG1pbicgV0lUSCBOTyAi IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiREFUQTtBTFRFUiBUQUJMRSAlcy4lcyBPV05F UiBUTyAlcyIKKyAgICAgICAgICAgIHNlbGYubV92aWV3X2lkID0gdmlld3NfdXRpbHMuY3JlYXRl X3ZpZXcoc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV92aWV3X3NxbCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5t X3ZpZXdfbmFtZSkKKwogICAgIGRlZiBydW5UZXN0KHNlbGYpOgogICAgICAgICAiIiJUaGlzIGZ1 bmN0aW9uIHdpbGwgdXBkYXRlIHRoZSB2aWV3L212aWV3IHVuZGVyIHNjaGVtYSBub2RlLiIiIgog ICAgICAgICBtdmlld19yZXNwb25zZSA9IHZpZXdzX3V0aWxzLnZlcmlmeV92aWV3KHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsCkBAIC0xNDEsNyArMTQ0LDYgQEAgY2xhc3MgTVZpZXdzVXBkYXRl UGFyYW1ldGVyVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCiAgICAgICAgIHNlbGYuYXNz ZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBAY2xhc3NtZXRob2QK LSAgICBkZWYgdGVhckRvd25DbGFzcyhzZWxmKToKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CiAg ICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKICAgICAgICAgZGF0YWJhc2VfdXRpbHMu ZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3Rlc3RzL3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVzdHMvdXRpbHMu cHkKaW5kZXggZDYxODBjNGZjLi43NjE5ZWU2NzMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rlc3Rz L3V0aWxzLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rlc3RzL3V0aWxzLnB5CkBAIC04NiwzICs4NiwyOCBA QCBkZWYgdmVyaWZ5X3ZpZXcoc2VydmVyLCBkYl9uYW1lLCB2aWV3X25hbWUpOgogICAgIGV4Y2Vw dCBFeGNlcHRpb246CiAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1zeXMuc3RkZXJy KQogICAgICAgICByYWlzZQorCisKK2RlZiBnZXRfdmlld19pZChzZXJ2ZXIsIGRiX25hbWUsIHZp ZXdfbmFtZSk6CisgICAgdHJ5OgorICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nv bm5lY3Rpb24oZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydwb3J0J10sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3NzbG1vZGUnXSkK KyAgICAgICAgb2xkX2lzb2xhdGlvbl9sZXZlbCA9IGNvbm5lY3Rpb24uaXNvbGF0aW9uX2xldmVs CisgICAgICAgIGNvbm5lY3Rpb24uc2V0X2lzb2xhdGlvbl9sZXZlbCgwKQorICAgICAgICBwZ19j dXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgICMgR2V0ICdvaWQnIGZyb20gbmV3 bHkgY3JlYXRlZCB2aWV3CisgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKCJzZWxlY3Qgb2lkIGZy b20gcGdfY2xhc3Mgd2hlcmUgcmVsbmFtZT0nJXMnIiAlCisgICAgICAgICAgICAgICAgICAgICAg ICAgIHZpZXdfbmFtZSkKKyAgICAgICAgdmlldyA9IHBnX2N1cnNvci5mZXRjaG9uZSgpCisgICAg ICAgIHZpZXdfaWQgPSBOb25lCisgICAgICAgIGlmIHZpZXc6CisgICAgICAgICAgICB2aWV3X2lk ID0gdmlld1swXQorICAgICAgICBjb25uZWN0aW9uLmNsb3NlKCkKKyAgICAgICAgcmV0dXJuIHZp ZXdfaWQKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhj KGZpbGU9c3lzLnN0ZGVycikKKyAgICAgICAgcmFpc2UKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2ZlYXR1cmVfdGVzdHMvY29weV9zZWxlY3RlZF9xdWVyeV9yZXN1bHRzX2ZlYXR1cmVfdGVzdC5w eSBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvY29weV9zZWxlY3RlZF9xdWVyeV9yZXN1bHRz X2ZlYXR1cmVfdGVzdC5weQppbmRleCA3MDkxZmZhNDIuLjc0NzU5NzBhYiAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9jb3B5X3NlbGVjdGVkX3F1ZXJ5X3Jlc3VsdHNfZmVh dHVyZV90ZXN0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvY29weV9zZWxlY3Rl ZF9xdWVyeV9yZXN1bHRzX2ZlYXR1cmVfdGVzdC5weQpAQCAtOCw3ICs4LDYgQEAKICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCiAKIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KLWltcG9y dCBweXBlcmNsaXAKIGltcG9ydCByYW5kb20KIAogZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIgaW1w b3J0IEFjdGlvbkNoYWlucwpAQCAtNjEsNyArNjAsNiBAQCBjbGFzcyBDb3B5U2VsZWN0ZWRRdWVy eVJlc3VsdHNGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAgICBzZWxmLl9jb3Bp ZXNfcm93c193aXRoX2hlYWRlcigpCiAKICAgICBkZWYgX2NvcGllc19yb3dzKHNlbGYpOgotICAg ICAgICBweXBlcmNsaXAuY29weSgib2xkIGNsaXBib2FyZCBjb250ZW50cyIpCiAgICAgICAgIGZp cnN0X3JvdyA9IHNlbGYucGFnZS5maW5kX2J5X3hwYXRoKAogICAgICAgICAgICAgUXVlcnlUb29s TG9jYXRvcnMub3V0cHV0X3Jvd194cGF0aC5mb3JtYXQoMSkpCiAgICAgICAgIGZpcnN0X3Jvdy5j bGljaygpCkBAIC03MCwxNCArNjgsMjMgQEAgY2xhc3MgQ29weVNlbGVjdGVkUXVlcnlSZXN1bHRz RmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgICAgIFF1ZXJ5VG9vbExvY2F0 b3JzLmNvcHlfYnV0dG9uX2NzcykKICAgICAgICAgY29weV9idXR0b24uY2xpY2soKQogCisgICAg ICAgIHNlbGYucGFnZS5kcml2ZXIuc3dpdGNoX3RvLmRlZmF1bHRfY29udGVudCgpCisgICAgICAg IHNlbGYucGFnZS5kcml2ZXIuc3dpdGNoX3RvX2ZyYW1lKAorICAgICAgICAgICAgc2VsZi5wYWdl LmRyaXZlci5maW5kX2VsZW1lbnRfYnlfdGFnX25hbWUoImlmcmFtZSIpKQorCisgICAgICAgIHNj cmF0Y2hfcGFkX2VsZSA9IHNlbGYucGFnZS5maW5kX2J5X2Nzc19zZWxlY3RvcigKKyAgICAgICAg ICAgIFF1ZXJ5VG9vbExvY2F0b3JzLnNjcmF0Y2hfcGFkX2NzcykKKyAgICAgICAgc2VsZi5wYWdl LnBhc3RlX3ZhbHVlcyhzY3JhdGNoX3BhZF9lbGUpCisgICAgICAgIGNsaXBib2FyZF90ZXh0ID0g c2NyYXRjaF9wYWRfZWxlLmdldF9hdHRyaWJ1dGUoInZhbHVlIikKKwogICAgICAgICBzZWxmLmFz c2VydEVxdWFsKCciU29tZS1OYW1lIlx0Nlx0InNvbWUgaW5mbyInLAotICAgICAgICAgICAgICAg ICAgICAgICAgIHB5cGVyY2xpcC5wYXN0ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgIGNs aXBib2FyZF90ZXh0KQorICAgICAgICBzY3JhdGNoX3BhZF9lbGUuY2xlYXIoKQogCiAgICAgZGVm IF9jb3BpZXNfcm93c193aXRoX2hlYWRlcihzZWxmKToKICAgICAgICAgc2VsZi5wYWdlLmZpbmRf YnlfY3NzX3NlbGVjdG9yKCcjYnRuLWNvcHktcm93LWRyb3Bkb3duJykuY2xpY2soKQogICAgICAg ICBzZWxmLnBhZ2UuZmluZF9ieV9jc3Nfc2VsZWN0b3IoJ2EjYnRuLWNvcHktd2l0aC1oZWFkZXIn KS5jbGljaygpCiAKLSAgICAgICAgcHlwZXJjbGlwLmNvcHkoIm9sZCBjbGlwYm9hcmQgY29udGVu dHMiKQogICAgICAgICBzZWxlY3RfYWxsID0gc2VsZi5wYWdlLmZpbmRfYnlfeHBhdGgoCiAgICAg ICAgICAgICBRdWVyeVRvb2xMb2NhdG9ycy5zZWxlY3RfYWxsX2NvbHVtbikKICAgICAgICAgc2Vs ZWN0X2FsbC5jbGljaygpCkBAIC04NiwxMyArOTMsMjIgQEAgY2xhc3MgQ29weVNlbGVjdGVkUXVl cnlSZXN1bHRzRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgICAgIFF1ZXJ5 VG9vbExvY2F0b3JzLmNvcHlfYnV0dG9uX2NzcykKICAgICAgICAgY29weV9idXR0b24uY2xpY2so KQogCisgICAgICAgIHNlbGYucGFnZS5kcml2ZXIuc3dpdGNoX3RvLmRlZmF1bHRfY29udGVudCgp CisgICAgICAgIHNlbGYucGFnZS5kcml2ZXIuc3dpdGNoX3RvX2ZyYW1lKAorICAgICAgICAgICAg c2VsZi5wYWdlLmRyaXZlci5maW5kX2VsZW1lbnRfYnlfdGFnX25hbWUoImlmcmFtZSIpKQorCisg ICAgICAgIHNjcmF0Y2hfcGFkX2VsZSA9IHNlbGYucGFnZS5maW5kX2J5X2Nzc19zZWxlY3RvcigK KyAgICAgICAgICAgIFF1ZXJ5VG9vbExvY2F0b3JzLnNjcmF0Y2hfcGFkX2NzcykKKyAgICAgICAg c2VsZi5wYWdlLnBhc3RlX3ZhbHVlcyhzY3JhdGNoX3BhZF9lbGUpCisgICAgICAgIGNsaXBib2Fy ZF90ZXh0ID0gc2NyYXRjaF9wYWRfZWxlLmdldF9hdHRyaWJ1dGUoInZhbHVlIikKKwogICAgICAg ICBzZWxmLmFzc2VydEVxdWFsKCIiIlwic29tZV9jb2x1bW4iXHQidmFsdWUiXHQiZGV0YWlscyIK IFwiU29tZS1OYW1lIlx0Nlx0InNvbWUgaW5mbyIKIFwiU29tZS1PdGhlci1OYW1lIlx0MjJcdCJz b21lIG90aGVyIGluZm8iCi1cIllldC1Bbm90aGVyLU5hbWUiXHQxNFx0ImNvb2wgaW5mb1wiIiIi LCBweXBlcmNsaXAucGFzdGUoKSkKK1wiWWV0LUFub3RoZXItTmFtZSJcdDE0XHQiY29vbCBpbmZv XCIiIiIsIGNsaXBib2FyZF90ZXh0KQorICAgICAgICBzY3JhdGNoX3BhZF9lbGUuY2xlYXIoKQog CiAgICAgZGVmIF9jb3BpZXNfY29sdW1ucyhzZWxmKToKLSAgICAgICAgcHlwZXJjbGlwLmNvcHko Im9sZCBjbGlwYm9hcmQgY29udGVudHMiKQogICAgICAgICBjb2x1bW4gPSBzZWxmLnBhZ2UuZmlu ZF9ieV9jc3Nfc2VsZWN0b3IoCiAgICAgICAgICAgICBRdWVyeVRvb2xMb2NhdG9ycy5vdXRwdXRf Y29sdW1uX2hlYWRlcl9jc3MuZm9ybWF0KCdzb21lX2NvbHVtbicpKQogICAgICAgICBjb2x1bW4u Y2xpY2soKQpAQCAtMTAxLDE0ICsxMTcsMjMgQEAgY2xhc3MgQ29weVNlbGVjdGVkUXVlcnlSZXN1 bHRzRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgICAgIFF1ZXJ5VG9vbExv Y2F0b3JzLmNvcHlfYnV0dG9uX2NzcykKICAgICAgICAgY29weV9idXR0b24uY2xpY2soKQogCisg ICAgICAgIHNlbGYucGFnZS5kcml2ZXIuc3dpdGNoX3RvLmRlZmF1bHRfY29udGVudCgpCisgICAg ICAgIHNlbGYucGFnZS5kcml2ZXIuc3dpdGNoX3RvX2ZyYW1lKAorICAgICAgICAgICAgc2VsZi5w YWdlLmRyaXZlci5maW5kX2VsZW1lbnRfYnlfdGFnX25hbWUoImlmcmFtZSIpKQorCisgICAgICAg IHNjcmF0Y2hfcGFkX2VsZSA9IHNlbGYucGFnZS5maW5kX2J5X2Nzc19zZWxlY3RvcigKKyAgICAg ICAgICAgIFF1ZXJ5VG9vbExvY2F0b3JzLnNjcmF0Y2hfcGFkX2NzcykKKyAgICAgICAgc2VsZi5w YWdlLnBhc3RlX3ZhbHVlcyhzY3JhdGNoX3BhZF9lbGUpCisgICAgICAgIGNsaXBib2FyZF90ZXh0 ID0gc2NyYXRjaF9wYWRfZWxlLmdldF9hdHRyaWJ1dGUoInZhbHVlIikKKwogICAgICAgICBzZWxm LmFzc2VydEVxdWFsKAogICAgICAgICAgICAgIiIiXCJTb21lLU5hbWUiCiAiU29tZS1PdGhlci1O YW1lIgogIllldC1Bbm90aGVyLU5hbWVcIiIiIiwKLSAgICAgICAgICAgIHB5cGVyY2xpcC5wYXN0 ZSgpKQorICAgICAgICAgICAgY2xpcGJvYXJkX3RleHQpCisgICAgICAgIHNjcmF0Y2hfcGFkX2Vs ZS5jbGVhcigpCiAKICAgICBkZWYgX2NvcGllc19yb3dfdXNpbmdfa2V5Ym9hcmRfc2hvcnRjdXQo c2VsZik6Ci0gICAgICAgIHB5cGVyY2xpcC5jb3B5KCJvbGQgY2xpcGJvYXJkIGNvbnRlbnRzIikK ICAgICAgICAgZmlyc3Rfcm93ID0gc2VsZi5wYWdlLmZpbmRfYnlfeHBhdGgoCiAgICAgICAgICAg ICBRdWVyeVRvb2xMb2NhdG9ycy5vdXRwdXRfcm93X3hwYXRoLmZvcm1hdCgxKSkKICAgICAgICAg Zmlyc3Rfcm93LmNsaWNrKCkKQEAgLTExNiwyNyArMTQxLDQzIEBAIGNsYXNzIENvcHlTZWxlY3Rl ZFF1ZXJ5UmVzdWx0c0ZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgIEFjdGlv bkNoYWlucyhzZWxmLnBhZ2UuZHJpdmVyKS5rZXlfZG93bigKICAgICAgICAgICAgIEtleXMuQ09O VFJPTCkuc2VuZF9rZXlzKCdjJykua2V5X3VwKEtleXMuQ09OVFJPTCkucGVyZm9ybSgpCiAKKyAg ICAgICAgc2VsZi5wYWdlLmRyaXZlci5zd2l0Y2hfdG8uZGVmYXVsdF9jb250ZW50KCkKKyAgICAg ICAgc2VsZi5wYWdlLmRyaXZlci5zd2l0Y2hfdG9fZnJhbWUoCisgICAgICAgICAgICBzZWxmLnBh Z2UuZHJpdmVyLmZpbmRfZWxlbWVudF9ieV90YWdfbmFtZSgiaWZyYW1lIikpCisKKyAgICAgICAg c2NyYXRjaF9wYWRfZWxlID0gc2VsZi5wYWdlLmZpbmRfYnlfY3NzX3NlbGVjdG9yKAorICAgICAg ICAgICAgUXVlcnlUb29sTG9jYXRvcnMuc2NyYXRjaF9wYWRfY3NzKQorICAgICAgICBzZWxmLnBh Z2UucGFzdGVfdmFsdWVzKHNjcmF0Y2hfcGFkX2VsZSkKKyAgICAgICAgY2xpcGJvYXJkX3RleHQg PSBzY3JhdGNoX3BhZF9lbGUuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKQorCiAgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWwoJyJTb21lLU5hbWUiXHQ2XHQic29tZSBpbmZvIicsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgcHlwZXJjbGlwLnBhc3RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAg Y2xpcGJvYXJkX3RleHQpCisgICAgICAgIHNjcmF0Y2hfcGFkX2VsZS5jbGVhcigpCiAKICAgICBk ZWYgX2NvcGllc19jb2x1bW5fdXNpbmdfa2V5Ym9hcmRfc2hvcnRjdXQoc2VsZik6Ci0gICAgICAg IHB5cGVyY2xpcC5jb3B5KCJvbGQgY2xpcGJvYXJkIGNvbnRlbnRzIikKICAgICAgICAgY29sdW1u ID0gc2VsZi5wYWdlLmZpbmRfYnlfY3NzX3NlbGVjdG9yKAogICAgICAgICAgICAgUXVlcnlUb29s TG9jYXRvcnMub3V0cHV0X2NvbHVtbl9oZWFkZXJfY3NzLmZvcm1hdCgnc29tZV9jb2x1bW4nKSkK ICAgICAgICAgY29sdW1uLmNsaWNrKCkKIAogICAgICAgICBBY3Rpb25DaGFpbnMoc2VsZi5wYWdl LmRyaXZlcikua2V5X2Rvd24oCiAgICAgICAgICAgICBLZXlzLkNPTlRST0wpLnNlbmRfa2V5cygn YycpLmtleV91cChLZXlzLkNPTlRST0wpLnBlcmZvcm0oKQorICAgICAgICBzZWxmLnBhZ2UuZHJp dmVyLnN3aXRjaF90by5kZWZhdWx0X2NvbnRlbnQoKQorICAgICAgICBzZWxmLnBhZ2UuZHJpdmVy LnN3aXRjaF90b19mcmFtZSgKKyAgICAgICAgICAgIHNlbGYucGFnZS5kcml2ZXIuZmluZF9lbGVt ZW50X2J5X3RhZ19uYW1lKCJpZnJhbWUiKSkKKworICAgICAgICBzY3JhdGNoX3BhZF9lbGUgPSBz ZWxmLnBhZ2UuZmluZF9ieV9jc3Nfc2VsZWN0b3IoCisgICAgICAgICAgICBRdWVyeVRvb2xMb2Nh dG9ycy5zY3JhdGNoX3BhZF9jc3MpCisgICAgICAgIHNlbGYucGFnZS5wYXN0ZV92YWx1ZXMoc2Ny YXRjaF9wYWRfZWxlKQorICAgICAgICBjbGlwYm9hcmRfdGV4dCA9IHNjcmF0Y2hfcGFkX2VsZS5n ZXRfYXR0cmlidXRlKCJ2YWx1ZSIpCiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKICAgICAg ICAgICAgICIiIlwiU29tZS1OYW1lIgogIlNvbWUtT3RoZXItTmFtZSIKICJZZXQtQW5vdGhlci1O YW1lXCIiIiIsCi0gICAgICAgICAgICBweXBlcmNsaXAucGFzdGUoKSkKKyAgICAgICAgICAgIGNs aXBib2FyZF90ZXh0KQorICAgICAgICBzY3JhdGNoX3BhZF9lbGUuY2xlYXIoKQogCiAgICAgZGVm IF9jb3BpZXNfcmVjdGFuZ3VsYXJfc2VsZWN0aW9uKHNlbGYpOgotICAgICAgICBweXBlcmNsaXAu Y29weSgib2xkIGNsaXBib2FyZCBjb250ZW50cyIpCi0KICAgICAgICAgdG9wX2xlZnRfY2VsbCA9 IFwKICAgICAgICAgICAgIHNlbGYucGFnZS5maW5kX2J5X3hwYXRoKAogICAgICAgICAgICAgICAg IFF1ZXJ5VG9vbExvY2F0b3JzLm91dHB1dF9jb2x1bW5fZGF0YV94cGF0aC4KQEAgLTE1NCwxMiAr MTk1LDIwIEBAIGNsYXNzIENvcHlTZWxlY3RlZFF1ZXJ5UmVzdWx0c0ZlYXR1cmVUZXN0KEJhc2VG ZWF0dXJlVGVzdCk6CiAgICAgICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyCiAgICAgICAgICkua2V5 X2Rvd24oS2V5cy5DT05UUk9MKS5zZW5kX2tleXMoJ2MnKS5rZXlfdXAoS2V5cy5DT05UUk9MKS5w ZXJmb3JtKCkKIAorICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyLnN3aXRjaF90by5kZWZhdWx0X2Nv bnRlbnQoKQorICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyLnN3aXRjaF90b19mcmFtZSgKKyAgICAg ICAgICAgIHNlbGYucGFnZS5kcml2ZXIuZmluZF9lbGVtZW50X2J5X3RhZ19uYW1lKCJpZnJhbWUi KSkKKworICAgICAgICBzY3JhdGNoX3BhZF9lbGUgPSBzZWxmLnBhZ2UuZmluZF9ieV9jc3Nfc2Vs ZWN0b3IoCisgICAgICAgICAgICBRdWVyeVRvb2xMb2NhdG9ycy5zY3JhdGNoX3BhZF9jc3MpCisg ICAgICAgIHNlbGYucGFnZS5wYXN0ZV92YWx1ZXMoc2NyYXRjaF9wYWRfZWxlKQorICAgICAgICBj bGlwYm9hcmRfdGV4dCA9IHNjcmF0Y2hfcGFkX2VsZS5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpCisK ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICciU29tZS1PdGhlci1OYW1l Ilx0MjJcbiJZZXQtQW5vdGhlci1OYW1lIlx0MTQnLCBweXBlcmNsaXAucGFzdGUoKSkKKyAgICAg ICAgICAgICciU29tZS1PdGhlci1OYW1lIlx0MjJcbiJZZXQtQW5vdGhlci1OYW1lIlx0MTQnLCBj bGlwYm9hcmRfdGV4dCkKKyAgICAgICAgc2NyYXRjaF9wYWRfZWxlLmNsZWFyKCkKIAogICAgIGRl ZiBfc2hpZnRfcmVzaXplc19yZWN0YW5ndWxhcl9zZWxlY3Rpb24oc2VsZik6Ci0gICAgICAgIHB5 cGVyY2xpcC5jb3B5KCJvbGQgY2xpcGJvYXJkIGNvbnRlbnRzIikKLQogICAgICAgICB0b3BfbGVm dF9jZWxsID0gc2VsZi5wYWdlLmZpbmRfYnlfeHBhdGgoCiAgICAgICAgICAgICBRdWVyeVRvb2xM b2NhdG9ycy5vdXRwdXRfY29sdW1uX2RhdGFfeHBhdGguCiAgICAgICAgICAgICBmb3JtYXQoJ1Nv bWUtT3RoZXItTmFtZScpCkBAIC0xODAsMTIgKzIyOSwyMCBAQCBjbGFzcyBDb3B5U2VsZWN0ZWRR dWVyeVJlc3VsdHNGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAgICAgICAgS2V5 cy5DT05UUk9MCiAgICAgICAgICkuc2VuZF9rZXlzKCdjJykua2V5X3VwKEtleXMuQ09OVFJPTCku cGVyZm9ybSgpCiAKKyAgICAgICAgc2VsZi5wYWdlLmRyaXZlci5zd2l0Y2hfdG8uZGVmYXVsdF9j b250ZW50KCkKKyAgICAgICAgc2VsZi5wYWdlLmRyaXZlci5zd2l0Y2hfdG9fZnJhbWUoCisgICAg ICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyLmZpbmRfZWxlbWVudF9ieV90YWdfbmFtZSgiaWZyYW1l IikpCisKKyAgICAgICAgc2NyYXRjaF9wYWRfZWxlID0gc2VsZi5wYWdlLmZpbmRfYnlfY3NzX3Nl bGVjdG9yKAorICAgICAgICAgICAgUXVlcnlUb29sTG9jYXRvcnMuc2NyYXRjaF9wYWRfY3NzKQor ICAgICAgICBzZWxmLnBhZ2UucGFzdGVfdmFsdWVzKHNjcmF0Y2hfcGFkX2VsZSkKKyAgICAgICAg Y2xpcGJvYXJkX3RleHQgPSBzY3JhdGNoX3BhZF9lbGUuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKQor CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIiIiXCJTb21lLU90aGVyLU5hbWUiXHQyMlx0InNv bWUgb3RoZXIgaW5mbyIKLSJZZXQtQW5vdGhlci1OYW1lIlx0MTRcdCJjb29sIGluZm9cIiIiIiwg cHlwZXJjbGlwLnBhc3RlKCkpCisiWWV0LUFub3RoZXItTmFtZSJcdDE0XHQiY29vbCBpbmZvXCIi IiIsIGNsaXBib2FyZF90ZXh0KQorICAgICAgICBzY3JhdGNoX3BhZF9lbGUuY2xlYXIoKQogCiAg ICAgZGVmIF9zaGlmdF9yZXNpemVzX2NvbHVtbl9zZWxlY3Rpb24oc2VsZik6Ci0gICAgICAgIHB5 cGVyY2xpcC5jb3B5KCJvbGQgY2xpcGJvYXJkIGNvbnRlbnRzIikKLQogICAgICAgICBjb2x1bW4g PSBzZWxmLnBhZ2UuZmluZF9ieV9jc3Nfc2VsZWN0b3IoCiAgICAgICAgICAgICBRdWVyeVRvb2xM b2NhdG9ycy5vdXRwdXRfY29sdW1uX2hlYWRlcl9jc3MuZm9ybWF0KCd2YWx1ZScpCiAgICAgICAg ICkKQEAgLTE5NywxMyArMjU0LDIxIEBAIGNsYXNzIENvcHlTZWxlY3RlZFF1ZXJ5UmVzdWx0c0Zl YXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgIEFjdGlvbkNoYWlucyhzZWxmLnBh Z2UuZHJpdmVyKS5rZXlfZG93bigKICAgICAgICAgICAgIEtleXMuQ09OVFJPTCkuc2VuZF9rZXlz KCdjJykua2V5X3VwKEtleXMuQ09OVFJPTCkucGVyZm9ybSgpCiAKKyAgICAgICAgc2VsZi5wYWdl LmRyaXZlci5zd2l0Y2hfdG8uZGVmYXVsdF9jb250ZW50KCkKKyAgICAgICAgc2VsZi5wYWdlLmRy aXZlci5zd2l0Y2hfdG9fZnJhbWUoCisgICAgICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyLmZpbmRf ZWxlbWVudF9ieV90YWdfbmFtZSgiaWZyYW1lIikpCisKKyAgICAgICAgc2NyYXRjaF9wYWRfZWxl ID0gc2VsZi5wYWdlLmZpbmRfYnlfY3NzX3NlbGVjdG9yKAorICAgICAgICAgICAgUXVlcnlUb29s TG9jYXRvcnMuc2NyYXRjaF9wYWRfY3NzKQorICAgICAgICBzZWxmLnBhZ2UucGFzdGVfdmFsdWVz KHNjcmF0Y2hfcGFkX2VsZSkKKyAgICAgICAgY2xpcGJvYXJkX3RleHQgPSBzY3JhdGNoX3BhZF9l bGUuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKQorCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCiAg ICAgICAgICAgICAnIlNvbWUtTmFtZSJcdDZcbiJTb21lLU90aGVyLU5hbWUiXHQyMlxuIllldC1B bm90aGVyLU5hbWUiXHQxNCcsCi0gICAgICAgICAgICBweXBlcmNsaXAucGFzdGUoKSkKKyAgICAg ICAgICAgIGNsaXBib2FyZF90ZXh0KQorICAgICAgICBzY3JhdGNoX3BhZF9lbGUuY2xlYXIoKQog CiAgICAgZGVmIF9tb3VzZXVwX291dHNpZGVfZ3JpZF9zdGlsbF9tYWtlc19hX3NlbGVjdGlvbihz ZWxmKToKLSAgICAgICAgcHlwZXJjbGlwLmNvcHkoIm9sZCBjbGlwYm9hcmQgY29udGVudHMiKQot CiAgICAgICAgIGJvdHRvbV9yaWdodF9jZWxsID0gc2VsZi5wYWdlLmZpbmRfYnlfeHBhdGgoCiAg ICAgICAgICAgICBRdWVyeVRvb2xMb2NhdG9ycy5vdXRwdXRfY29sdW1uX2RhdGFfeHBhdGguZm9y bWF0KCdjb29sIGluZm8nKQogICAgICAgICApCkBAIC0yMTgsNyArMjgzLDE3IEBAIGNsYXNzIENv cHlTZWxlY3RlZFF1ZXJ5UmVzdWx0c0ZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAg ICAgIEFjdGlvbkNoYWlucyhzZWxmLnBhZ2UuZHJpdmVyKS5rZXlfZG93bigKICAgICAgICAgICAg IEtleXMuQ09OVFJPTCkuc2VuZF9rZXlzKCdjJykua2V5X3VwKEtleXMuQ09OVFJPTCkucGVyZm9y bSgpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRJbignImNvb2wgaW5mbyInLCBweXBlcmNsaXAucGFz dGUoKSkKKyAgICAgICAgc2VsZi5wYWdlLmRyaXZlci5zd2l0Y2hfdG8uZGVmYXVsdF9jb250ZW50 KCkKKyAgICAgICAgc2VsZi5wYWdlLmRyaXZlci5zd2l0Y2hfdG9fZnJhbWUoCisgICAgICAgICAg ICBzZWxmLnBhZ2UuZHJpdmVyLmZpbmRfZWxlbWVudF9ieV90YWdfbmFtZSgiaWZyYW1lIikpCisK KyAgICAgICAgc2NyYXRjaF9wYWRfZWxlID0gc2VsZi5wYWdlLmZpbmRfYnlfY3NzX3NlbGVjdG9y KAorICAgICAgICAgICAgUXVlcnlUb29sTG9jYXRvcnMuc2NyYXRjaF9wYWRfY3NzKQorICAgICAg ICBzZWxmLnBhZ2UucGFzdGVfdmFsdWVzKHNjcmF0Y2hfcGFkX2VsZSkKKyAgICAgICAgY2xpcGJv YXJkX3RleHQgPSBzY3JhdGNoX3BhZF9lbGUuZ2V0X2F0dHJpYnV0ZSgidmFsdWUiKQorCisgICAg ICAgIHNlbGYuYXNzZXJ0SW4oJyJjb29sIGluZm8iJywgY2xpcGJvYXJkX3RleHQpCisgICAgICAg IHNjcmF0Y2hfcGFkX2VsZS5jbGVhcigpCiAKICAgICBkZWYgYWZ0ZXIoc2VsZik6CiAgICAgICAg IHNlbGYucGFnZS5jbG9zZV9xdWVyeV90b29sKCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Zl YXR1cmVfdGVzdHMvZmlsZV9tYW5hZ2VyX3Rlc3QucHkgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rl c3RzL2ZpbGVfbWFuYWdlcl90ZXN0LnB5CmluZGV4IDZkMDEyODY5Yi4uMzNmODZhZDg2IDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL2ZpbGVfbWFuYWdlcl90ZXN0LnB5Cisr KyBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvZmlsZV9tYW5hZ2VyX3Rlc3QucHkKQEAgLTM4 LDcgKzM4LDggQEAgY2xhc3MgQ2hlY2tGaWxlTWFuYWdlckZlYXR1cmVUZXN0KEJhc2VGZWF0dXJl VGVzdCk6CiAKICAgICAgICAgc2VsZi5wYWdlLmFkZF9zZXJ2ZXIoc2VsZi5zZXJ2ZXIpCiAgICAg ICAgIHNlbGYud2FpdCA9IFdlYkRyaXZlcldhaXQoc2VsZi5wYWdlLmRyaXZlciwgMTApCi0gICAg ICAgIHNlbGYuWFNTX0ZJTEUgPSAnL3RtcC88aW1nIHNyYz14IG9ubW91c2VvdmVyPWFsZXJ0KCIx Iik+LnNxbCcKKyAgICAgICAgc2VsZi5YU1NfRklMRSA9ICcvdG1wLzxpbWcgc3JjPXggJyArIHNl bGYuc2VydmVyWyduYW1lJ11bOjEzXSBcCisgICAgICAgICAgICAgICAgICAgICAgICArICc9YWxl cnQoIjEiKT4uc3FsJwogICAgICAgICAjIFJlbW92ZSBhbnkgcHJldmlvdXMgZmlsZQogICAgICAg ICBpZiBvcy5wYXRoLmlzZmlsZShzZWxmLlhTU19GSUxFKToKICAgICAgICAgICAgIG9zLnJlbW92 ZShzZWxmLlhTU19GSUxFKQpAQCAtNjcsNyArNjgsNyBAQCBjbGFzcyBDaGVja0ZpbGVNYW5hZ2Vy RmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgc2VsZi5wYWdlLm9wZW5fcXVl cnlfdG9vbCgpCiAKICAgICBkZWYgX2NyZWF0ZV9uZXdfZmlsZShzZWxmKToKLSAgICAgICAgc2Vs Zi5wYWdlLmZpbmRfYnlfY3NzX3NlbGVjdG9yKFF1ZXJ5VG9vbExvY2F0b3JzLmJ0bl9zYXZlX2Zp bGUpXAorICAgICAgICBzZWxmLnBhZ2UuZmluZF9ieV9jc3Nfc2VsZWN0b3IoUXVlcnlUb29sTG9j YXRvcnMuYnRuX3NhdmVfZmlsZSkgXAogICAgICAgICAgICAgLmNsaWNrKCkKICAgICAgICAgIyBT ZXQgdGhlIFhTUyB2YWx1ZSBpbiBpbnB1dAogICAgICAgICBzZWxmLnBhZ2UuZmluZF9ieV9jc3Nf c2VsZWN0b3IoJy5jaGFuZ2VfZmlsZV90eXBlcycpCkBAIC0xMTIsOCArMTEzLDggQEAgY2xhc3Mg Q2hlY2tGaWxlTWFuYWdlckZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgIHNl bGYucGFnZS53YWl0X2Zvcl9xdWVyeV90b29sX2xvYWRpbmdfaW5kaWNhdG9yX3RvX2Rpc2FwcGVh cigpCiAgICAgICAgIHNlbGYuX2NoZWNrX2VzY2FwZWRfY2hhcmFjdGVycygKICAgICAgICAgICAg IGNvbnRlbnRzLAotICAgICAgICAgICAgJyZsdDtpbWcgc3JjPXggb25tb3VzZW92ZXI9YWxlcnQo IjEiKSZndDsuc3FsJywKLSAgICAgICAgICAgICdGaWxlIG1hbmFnZXInCisgICAgICAgICAgICAn Jmx0O2ltZyBzcmM9eCAnICsgc2VsZi5zZXJ2ZXJbJ25hbWUnXVs6MTNdICsKKyAgICAgICAgICAg ICc9YWxlcnQoIjEiKSZndDsuc3FsJywgJ0ZpbGUgbWFuYWdlcicKICAgICAgICAgKQogCiAgICAg ZGVmIF9jaGVja19lc2NhcGVkX2NoYXJhY3RlcnMoc2VsZiwgc291cmNlX2NvZGUsIHN0cmluZ190 b19maW5kLCBzb3VyY2UpOgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9w Z191dGlsaXRpZXNfYmFja3VwX3Jlc3RvcmVfdGVzdC5weSBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVf dGVzdHMvcGdfdXRpbGl0aWVzX2JhY2t1cF9yZXN0b3JlX3Rlc3QucHkKaW5kZXggMWQ2ZDdhNDNl Li45OGI4YTM4YjggMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvcGdfdXRp bGl0aWVzX2JhY2t1cF9yZXN0b3JlX3Rlc3QucHkKKysrIGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90 ZXN0cy9wZ191dGlsaXRpZXNfYmFja3VwX3Jlc3RvcmVfdGVzdC5weQpAQCAtMTgsNiArMTgsNyBA QCBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMKIGZy b20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF9ndWlfaGVscGVyCiBm cm9tIHJlZ3Jlc3Npb24uZmVhdHVyZV91dGlscy5sb2NhdG9ycyBpbXBvcnQgTmF2TWVudUxvY2F0 b3JzCiBmcm9tIHJlZ3Jlc3Npb24uZmVhdHVyZV91dGlscy50cmVlX2FyZWFfbG9jYXRvcnMgaW1w b3J0IFRyZWVBcmVhTG9jYXRvcnMKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyIGltcG9ydCBBY3Rp b25DaGFpbnMKIAogCiBjbGFzcyBQR1V0aWxpdGllc0JhY2t1cEZlYXR1cmVUZXN0KEJhc2VGZWF0 dXJlVGVzdCk6CkBAIC01Niw2ICs1Nyw3IEBAIGNsYXNzIFBHVXRpbGl0aWVzQmFja3VwRmVhdHVy ZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgICAgIHNlbGYuc2VydmVyWydzc2xtb2Rl J10KICAgICAgICAgKQogICAgICAgICB0ZXN0X3V0aWxzLmRyb3BfZGF0YWJhc2UoY29ubmVjdGlv biwgc2VsZi5kYXRhYmFzZV9uYW1lKQorICAgICAgICBzZWxmLl91cGRhdGVfcHJlZmVyZW5jZXMo KQogICAgICAgICBkYl9pZCA9IHRlc3RfdXRpbHMuY3JlYXRlX2RhdGFiYXNlKHNlbGYuc2VydmVy LCBzZWxmLmRhdGFiYXNlX25hbWUpCiAgICAgICAgIGlmIG5vdCBkYl9pZDoKICAgICAgICAgICAg IHNlbGYuYXNzZXJ0VHJ1ZShGYWxzZSwgIkRhdGFiYXNlIHt9IGlzIG5vdCAiCkBAIC0xMzAsNyAr MTMyLDcgQEAgY2xhc3MgUEdVdGlsaXRpZXNCYWNrdXBGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRl c3QpOgogICAgICAgICAgICAgc2VsZi5fY2hlY2tfZGV0YWlsZWRfd2luZG93X2Zvcl94c3MoJ0Jh Y2t1cCcpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBjb21tYW5kID0gc2VsZi5wYWdlLmZp bmRfYnlfY3NzX3NlbGVjdG9yKAotICAgICAgICAgICAgICAgIE5hdk1lbnVMb2NhdG9ycy5wcm9j ZXNzX3dhdGNoZXJfZGV0YWlsZWRfY29tbWFuZF9jYW52YXNfY3NzKS5cCisgICAgICAgICAgICAg ICAgTmF2TWVudUxvY2F0b3JzLnByb2Nlc3Nfd2F0Y2hlcl9kZXRhaWxlZF9jb21tYW5kX2NhbnZh c19jc3MpLiBcCiAgICAgICAgICAgICAgICAgdGV4dAogCiAgICAgICAgICAgICBzZWxmLmFzc2Vy dEluKHNlbGYuc2VydmVyWyduYW1lJ10sIHN0cihjb21tYW5kKSkKQEAgLTE5OSw3ICsyMDEsNyBA QCBjbGFzcyBQR1V0aWxpdGllc0JhY2t1cEZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAg ICAgICAgICAgICBzZWxmLl9jaGVja19kZXRhaWxlZF93aW5kb3dfZm9yX3hzcygnUmVzdG9yZScp CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBjb21tYW5kID0gc2VsZi5wYWdlLmZpbmRfYnlf Y3NzX3NlbGVjdG9yKAotICAgICAgICAgICAgICAgIE5hdk1lbnVMb2NhdG9ycy5wcm9jZXNzX3dh dGNoZXJfZGV0YWlsZWRfY29tbWFuZF9jYW52YXNfY3NzKS5cCisgICAgICAgICAgICAgICAgTmF2 TWVudUxvY2F0b3JzLnByb2Nlc3Nfd2F0Y2hlcl9kZXRhaWxlZF9jb21tYW5kX2NhbnZhc19jc3Mp LiBcCiAgICAgICAgICAgICAgICAgdGV4dAogCiAgICAgICAgICAgICBzZWxmLmFzc2VydEluKHNl bGYuc2VydmVyWyduYW1lJ10sIHN0cihjb21tYW5kKSkKQEAgLTI0MiwzICsyNDQsNzEgQEAgY2xh c3MgUEdVdGlsaXRpZXNCYWNrdXBGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAg ICAjIEZvciBYU1Mgd2UgbmVlZCB0byBzZWFyY2ggYWdhaW5zdCBlbGVtZW50J3MgaHRtbCBjb2Rl CiAgICAgICAgIGFzc2VydCBzb3VyY2VfY29kZS5maW5kKHN0cmluZ190b19maW5kKSAhPSAtIFwK ICAgICAgICAgICAgIDEsICJ7MH0gbWlnaHQgYmUgdnVsbmVyYWJsZSB0byBYU1MgIi5mb3JtYXQo c291cmNlKQorCisgICAgZGVmIF91cGRhdGVfcHJlZmVyZW5jZXMoc2VsZik6CisgICAgICAgIGZp bGVfbWVudSA9IHNlbGYucGFnZS5maW5kX2J5X2Nzc19zZWxlY3RvcigKKyAgICAgICAgICAgIE5h dk1lbnVMb2NhdG9ycy5maWxlX21lbnVfY3NzKQorICAgICAgICBmaWxlX21lbnUuY2xpY2soKQor CisgICAgICAgIHByZWZfbWVudV9pdGVtID0gc2VsZi5wYWdlLmZpbmRfYnlfY3NzX3NlbGVjdG9y KAorICAgICAgICAgICAgTmF2TWVudUxvY2F0b3JzLnByZWZlcmVuY2VfbWVudV9pdGVtX2NzcykK KyAgICAgICAgcHJlZl9tZW51X2l0ZW0uY2xpY2soKQorCisgICAgICAgIHdhaXQgPSBXZWJEcml2 ZXJXYWl0KHNlbGYucGFnZS5kcml2ZXIsIDEwKQorCisgICAgICAgICMgV2FpdCB0aWxsIHRoZSBw cmVmZXJlbmNlIGRpYWxvZ3VlIGJveCBpcyBkaXNwbGF5ZWQgYnkgY2hlY2tpbmcgdGhlCisgICAg ICAgICMgdmlzaWJpbGl0eSBvZiBTaG93IFN5c3RlbSBPYmplY3QgbGFiZWwKKyAgICAgICAgd2Fp dC51bnRpbChFQy5wcmVzZW5jZV9vZl9lbGVtZW50X2xvY2F0ZWQoCisgICAgICAgICAgICAoQnku WFBBVEgsIE5hdk1lbnVMb2NhdG9ycy5zaG93X3N5c3RlbV9vYmplY3RzX3ByZWZfbGFiZWxfeHBh dGgpKQorICAgICAgICApCisKKyAgICAgICAgbWF4aW1pemVfYnV0dG9uID0gc2VsZi5wYWdlLmZp bmRfYnlfY3NzX3NlbGVjdG9yKAorICAgICAgICAgICAgTmF2TWVudUxvY2F0b3JzLm1heGltaXpl X3ByZWZfZGlhbG9ndWVfY3NzKQorICAgICAgICBtYXhpbWl6ZV9idXR0b24uY2xpY2soKQorCisg ICAgICAgIHBhdGggPSBzZWxmLnBhZ2UuZmluZF9ieV94cGF0aCgKKyAgICAgICAgICAgIE5hdk1l bnVMb2NhdG9ycy5zcGVjaWZpZWRfcHJlZmVyZW5jZV90cmVlX25vZGUuZm9ybWF0KCdQYXRocycp KQorICAgICAgICBpZiBzZWxmLnBhZ2UuZmluZF9ieV94cGF0aCgKKyAgICAgICAgICAgIE5hdk1l bnVMb2NhdG9ycy5zcGVjaWZpZWRfcHJlZl9ub2RlX2V4cF9zdGF0dXMuZm9ybWF0KCdQYXRocycp KS4gXAorICAgICAgICAgICAgICAgIGdldF9hdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnKSA9PSAn ZmFsc2UnOgorICAgICAgICAgICAgQWN0aW9uQ2hhaW5zKHNlbGYuZHJpdmVyKS5kb3VibGVfY2xp Y2socGF0aCkucGVyZm9ybSgpCisKKyAgICAgICAgYmluYXJ5X3BhdGggPSBzZWxmLnBhZ2UuZmlu ZF9ieV94cGF0aCgKKyAgICAgICAgICAgIE5hdk1lbnVMb2NhdG9ycy5zcGVjaWZpZWRfc3ViX25v ZGVfb2ZfcHJlZl90cmVlX25vZGUuZm9ybWF0KAorICAgICAgICAgICAgICAgICdQYXRocycsICdC aW5hcnkgcGF0aHMnKSkKKyAgICAgICAgYmluYXJ5X3BhdGguY2xpY2soKQorCisgICAgICAgIGRl ZmF1bHRfYmluYXJ5X3BhdGggPSBzZWxmLnNlcnZlclsnZGVmYXVsdF9iaW5hcnlfcGF0aHMnXQor ICAgICAgICBpZiBkZWZhdWx0X2JpbmFyeV9wYXRoIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg c2VydmVyX3R5cGVzID0gZGVmYXVsdF9iaW5hcnlfcGF0aC5rZXlzKCkKKyAgICAgICAgICAgIGZv ciBzZXJ2IGluIHNlcnZlcl90eXBlczoKKyAgICAgICAgICAgICAgICBpZiBzZXJ2ID09ICdwZyc6 CisgICAgICAgICAgICAgICAgICAgIHBhdGhfaW5wdXQgPSBzZWxmLnBhZ2UuZmluZF9ieV94cGF0 aCgKKyAgICAgICAgICAgICAgICAgICAgICAgICIvL2xhYmVsW3RleHQoKT0nUG9zdGdyZVNRTCBC aW5hcnkgIgorICAgICAgICAgICAgICAgICAgICAgICAgIlBhdGgnXS9mb2xsb3dpbmctc2libGlu Zzo6ZGl2Ly9pbnB1dCIpCisgICAgICAgICAgICAgICAgICAgIHBhdGhfaW5wdXQuY2xlYXIoKQor ICAgICAgICAgICAgICAgICAgICBwYXRoX2lucHV0LmNsaWNrKCkKKyAgICAgICAgICAgICAgICAg ICAgcGF0aF9pbnB1dC5zZW5kX2tleXMoZGVmYXVsdF9iaW5hcnlfcGF0aFsncGcnXSkKKyAgICAg ICAgICAgICAgICBlbGlmIHNlcnYgPT0gJ2dwZGInOgorICAgICAgICAgICAgICAgICAgICBwYXRo X2lucHV0ID0gc2VsZi5wYWdlLmZpbmRfYnlfeHBhdGgoCisgICAgICAgICAgICAgICAgICAgICAg ICAiLy9sYWJlbFt0ZXh0KCk9J0dyZWVucGx1bSBEYXRhYmFzZSBCaW5hcnkgIgorICAgICAgICAg ICAgICAgICAgICAgICAgIlBhdGgnXS9mb2xsb3dpbmctc2libGluZzo6ZGl2Ly9pbnB1dCIpCisg ICAgICAgICAgICAgICAgICAgIHBhdGhfaW5wdXQuY2xlYXIoKQorICAgICAgICAgICAgICAgICAg ICBwYXRoX2lucHV0LmNsaWNrKCkKKyAgICAgICAgICAgICAgICAgICAgcGF0aF9pbnB1dC5zZW5k X2tleXMoZGVmYXVsdF9iaW5hcnlfcGF0aFsnZ3BkYiddKQorICAgICAgICAgICAgICAgIGVsaWYg c2VydiA9PSAncHBhcyc6CisgICAgICAgICAgICAgICAgICAgIHBhdGhfaW5wdXQgPSBzZWxmLnBh Z2UuZmluZF9ieV94cGF0aCgKKyAgICAgICAgICAgICAgICAgICAgICAgICIvL2xhYmVsW3RleHQo KT0nRURCIEFkdmFuY2VkIFNlcnZlciBCaW5hcnkgIgorICAgICAgICAgICAgICAgICAgICAgICAg IlBhdGgnXS9mb2xsb3dpbmctc2libGluZzo6ZGl2Ly9pbnB1dCIpCisgICAgICAgICAgICAgICAg ICAgIHBhdGhfaW5wdXQuY2xlYXIoKQorICAgICAgICAgICAgICAgICAgICBwYXRoX2lucHV0LmNs aWNrKCkKKyAgICAgICAgICAgICAgICAgICAgcGF0aF9pbnB1dC5zZW5kX2tleXMoZGVmYXVsdF9i aW5hcnlfcGF0aFsncHBhcyddKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg ICAgICAgIHByaW50KCdCaW5hcnkgcGF0aCBLZXkgaXMgSW5jb3JyZWN0JykKKworICAgICAgICAj IHNhdmUgYW5kIGNsb3NlIHRoZSBwcmVmZXJlbmNlIGRpYWxvZy4KKyAgICAgICAgc2VsZi5wYWdl LmNsaWNrX21vZGFsKCdTYXZlJykKKworICAgICAgICBzZWxmLnBhZ2Uud2FpdF9mb3JfZWxlbWVu dF90b19kaXNhcHBlYXIoCisgICAgICAgICAgICBsYW1iZGEgZHJpdmVyOiBkcml2ZXIuZmluZF9l bGVtZW50X2J5X2Nzc19zZWxlY3RvcigiLmFqcy1tb2RhbCIpCisgICAgICAgICkKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvcXVlcnlfdG9vbF9qb3VybmV5X3Rlc3QucHkg Yi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3F1ZXJ5X3Rvb2xfam91cm5leV90ZXN0LnB5Cmlu ZGV4IDJkN2M0ZWY5OC4uZGRiNGUzY2FmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9mZWF0dXJl X3Rlc3RzL3F1ZXJ5X3Rvb2xfam91cm5leV90ZXN0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2ZlYXR1 cmVfdGVzdHMvcXVlcnlfdG9vbF9qb3VybmV5X3Rlc3QucHkKQEAgLTksNyArOSw2IEBACiAKIGZy b20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIGltcG9ydCBzeXMKLWltcG9ydCBw eXBlcmNsaXAKIGltcG9ydCByYW5kb20KIAogZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIgaW1wb3J0 IEFjdGlvbkNoYWlucwpAQCAtOTAsNyArODksNiBAQCBjbGFzcyBRdWVyeVRvb2xKb3VybmV5VGVz dChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAgICBwcmludCgiIE9LLiIsIGZpbGU9c3lzLnN0ZGVy cikKIAogICAgIGRlZiBfdGVzdF9jb3BpZXNfcm93cyhzZWxmKToKLSAgICAgICAgcHlwZXJjbGlw LmNvcHkoIm9sZCBjbGlwYm9hcmQgY29udGVudHMiKQogICAgICAgICBzZWxmLnBhZ2UuZHJpdmVy LnN3aXRjaF90by5kZWZhdWx0X2NvbnRlbnQoKQogICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyLnN3 aXRjaF90b19mcmFtZSgKICAgICAgICAgICAgIHNlbGYucGFnZS5kcml2ZXIuZmluZF9lbGVtZW50 X2J5X3RhZ19uYW1lKCJpZnJhbWUiKSkKQEAgLTEwMywxMiArMTAxLDIxIEBAIGNsYXNzIFF1ZXJ5 VG9vbEpvdXJuZXlUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgICAgICBRdWVyeVRvb2xM b2NhdG9ycy5jb3B5X2J1dHRvbl9jc3MpCiAgICAgICAgIGNvcHlfcm93LmNsaWNrKCkKIAorICAg ICAgICBzZWxmLnBhZ2UuZHJpdmVyLnN3aXRjaF90by5kZWZhdWx0X2NvbnRlbnQoKQorICAgICAg ICBzZWxmLnBhZ2UuZHJpdmVyLnN3aXRjaF90b19mcmFtZSgKKyAgICAgICAgICAgIHNlbGYucGFn ZS5kcml2ZXIuZmluZF9lbGVtZW50X2J5X3RhZ19uYW1lKCJpZnJhbWUiKSkKKworICAgICAgICBz Y3JhdGNoX3BhZF9lbGUgPSBzZWxmLnBhZ2UuZmluZF9ieV9jc3Nfc2VsZWN0b3IoCisgICAgICAg ICAgICBRdWVyeVRvb2xMb2NhdG9ycy5zY3JhdGNoX3BhZF9jc3MpCisgICAgICAgIHNlbGYucGFn ZS5wYXN0ZV92YWx1ZXMoc2NyYXRjaF9wYWRfZWxlKQorICAgICAgICBjbGlwYm9hcmRfdGV4dCA9 IHNjcmF0Y2hfcGFkX2VsZS5nZXRfYXR0cmlidXRlKCJ2YWx1ZSIpCisKICAgICAgICAgc2VsZi5h c3NlcnRFcXVhbCgnIlNvbWUtTmFtZSJcdDZcdCJzb21lIGluZm8iJywKLSAgICAgICAgICAgICAg ICAgICAgICAgICBweXBlcmNsaXAucGFzdGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBj bGlwYm9hcmRfdGV4dCkKIAotICAgIGRlZiBfdGVzdF9jb3BpZXNfY29sdW1ucyhzZWxmKToKLSAg ICAgICAgcHlwZXJjbGlwLmNvcHkoIm9sZCBjbGlwYm9hcmQgY29udGVudHMiKQorICAgICAgICBz Y3JhdGNoX3BhZF9lbGUuY2xlYXIoKQogCisgICAgZGVmIF90ZXN0X2NvcGllc19jb2x1bW5zKHNl bGYpOgogICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyLnN3aXRjaF90by5kZWZhdWx0X2NvbnRlbnQo KQogICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyLnN3aXRjaF90b19mcmFtZSgKICAgICAgICAgICAg IHNlbGYucGFnZS5kcml2ZXIuZmluZF9lbGVtZW50X2J5X3RhZ19uYW1lKCJpZnJhbWUiKSkKQEAg LTEyMSw5ICsxMjgsMjAgQEAgY2xhc3MgUXVlcnlUb29sSm91cm5leVRlc3QoQmFzZUZlYXR1cmVU ZXN0KToKICAgICAgICAgICAgIFF1ZXJ5VG9vbExvY2F0b3JzLmNvcHlfYnV0dG9uX2NzcykKICAg ICAgICAgY29weV9idG4uY2xpY2soKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnIlNvbWUt TmFtZSInIGluIHB5cGVyY2xpcC5wYXN0ZSgpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJyJT b21lLU90aGVyLU5hbWUiJyBpbiBweXBlcmNsaXAucGFzdGUoKSkKLSAgICAgICAgc2VsZi5hc3Nl cnRUcnVlKCciWWV0LUFub3RoZXItTmFtZSInIGluIHB5cGVyY2xpcC5wYXN0ZSgpKQorICAgICAg ICBzZWxmLnBhZ2UuZHJpdmVyLnN3aXRjaF90by5kZWZhdWx0X2NvbnRlbnQoKQorICAgICAgICBz ZWxmLnBhZ2UuZHJpdmVyLnN3aXRjaF90b19mcmFtZSgKKyAgICAgICAgICAgIHNlbGYucGFnZS5k cml2ZXIuZmluZF9lbGVtZW50X2J5X3RhZ19uYW1lKCJpZnJhbWUiKSkKKworICAgICAgICBzY3Jh dGNoX3BhZF9lbGUgPSBzZWxmLnBhZ2UuZmluZF9ieV9jc3Nfc2VsZWN0b3IoCisgICAgICAgICAg ICBRdWVyeVRvb2xMb2NhdG9ycy5zY3JhdGNoX3BhZF9jc3MpCisgICAgICAgIHNlbGYucGFnZS5w YXN0ZV92YWx1ZXMoc2NyYXRjaF9wYWRfZWxlKQorCisgICAgICAgIGNsaXBib2FyZF90ZXh0ID0g c2NyYXRjaF9wYWRfZWxlLmdldF9hdHRyaWJ1dGUoInZhbHVlIikKKworICAgICAgICBzZWxmLmFz c2VydFRydWUoJyJTb21lLU5hbWUiJyBpbiBjbGlwYm9hcmRfdGV4dCkKKyAgICAgICAgc2VsZi5h c3NlcnRUcnVlKCciU29tZS1PdGhlci1OYW1lIicgaW4gY2xpcGJvYXJkX3RleHQpCisgICAgICAg IHNlbGYuYXNzZXJ0VHJ1ZSgnIllldC1Bbm90aGVyLU5hbWUiJyBpbiBjbGlwYm9hcmRfdGV4dCkK KyAgICAgICAgc2NyYXRjaF9wYWRfZWxlLmNsZWFyKCkKIAogICAgIGRlZiBfdGVzdF9oaXN0b3J5 X3RhYihzZWxmKToKICAgICAgICAgc2VsZi5wYWdlLmNsZWFyX3F1ZXJ5X3Rvb2woKQpAQCAtMzcw LDEwICszODgsMTAgQEAgY2xhc3MgUXVlcnlUb29sSm91cm5leVRlc3QoQmFzZUZlYXR1cmVUZXN0 KToKICAgICAgICAgICAgIHNlbGYucGFnZS5maW5kX2J5X2Nzc19zZWxlY3RvcigKICAgICAgICAg ICAgICAgICBRdWVyeVRvb2xMb2NhdG9ycy5idG5fY2xlYXJfZHJvcGRvd24pCiAgICAgICAgICkK LSAgICAgICAgQWN0aW9uQ2hhaW5zKHNlbGYuZHJpdmVyKVwKKyAgICAgICAgQWN0aW9uQ2hhaW5z KHNlbGYuZHJpdmVyKSBcCiAgICAgICAgICAgICAubW92ZV90b19lbGVtZW50KAotICAgICAgICAg ICAgICAgIHNlbGYucGFnZS5maW5kX2J5X2Nzc19zZWxlY3RvcigKLSAgICAgICAgICAgICAgICAg ICAgUXVlcnlUb29sTG9jYXRvcnMuYnRuX2NsZWFyX2hpc3RvcnkpKS5wZXJmb3JtKCkKKyAgICAg ICAgICAgIHNlbGYucGFnZS5maW5kX2J5X2Nzc19zZWxlY3RvcigKKyAgICAgICAgICAgICAgICBR dWVyeVRvb2xMb2NhdG9ycy5idG5fY2xlYXJfaGlzdG9yeSkpLnBlcmZvcm0oKQogICAgICAgICBz ZWxmLnBhZ2UuY2xpY2tfZWxlbWVudCgKICAgICAgICAgICAgIHNlbGYucGFnZS5maW5kX2J5X2Nz c19zZWxlY3RvcihRdWVyeVRvb2xMb2NhdG9ycy5idG5fY2xlYXJfaGlzdG9yeSkKICAgICAgICAg KQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy92aWV3X2RhdGFfZG1sX3F1 ZXJpZXMucHkgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3ZpZXdfZGF0YV9kbWxfcXVlcmll cy5weQppbmRleCAwMTU1Y2RjMzIuLmRiNzg4YmYyNCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v ZmVhdHVyZV90ZXN0cy92aWV3X2RhdGFfZG1sX3F1ZXJpZXMucHkKKysrIGIvd2ViL3BnYWRtaW4v ZmVhdHVyZV90ZXN0cy92aWV3X2RhdGFfZG1sX3F1ZXJpZXMucHkKQEAgLTEzMSwxMyArMTMxLDE1 IEBAIENSRUFURSBUQUJMRSBwdWJsaWMubm9uaW50cGtleQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0X2RiLCAncHVibGljJykKIAogICAgICAgICBz ZWxmLl9sb2FkX2NvbmZpZ19kYXRhKCd0YWJsZV9pbnNlcnRfdXBkYXRlX2Nhc2VzJykKKyAgICAg ICAgZGF0YV9sb2NhbCA9IGNvbmZpZ19kYXRhCiAgICAgICAgICMgaXRlcmF0ZSBvbiBib3RoIHRh YmxlcwogICAgICAgICBmb3IgY250IGluICgxLCAyKToKLSAgICAgICAgICAgIHNlbGYuX3BlcmZv cm1fdGVzdF9mb3JfdGFibGUoJ2RlZmF1bHRzX3swfScuZm9ybWF0KHN0cihjbnQpKSkKLQorICAg ICAgICAgICAgc2VsZi5fcGVyZm9ybV90ZXN0X2Zvcl90YWJsZSgnZGVmYXVsdHNfezB9Jy5mb3Jt YXQoc3RyKGNudCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk YXRhX2xvY2FsKQogICAgICAgICAjIHRlc3Qgbm9uaW50IHBrZXkgdGFibGUKICAgICAgICAgc2Vs Zi5fbG9hZF9jb25maWdfZGF0YSgndGFibGVfaW5zZXJ0X3VwZGF0ZV9ub25pbnQnKQotICAgICAg ICBzZWxmLl9wZXJmb3JtX3Rlc3RfZm9yX3RhYmxlKCdub25pbnRwa2V5JykKKyAgICAgICAgZGF0 YV9sb2NhbCA9IGNvbmZpZ19kYXRhCisgICAgICAgIHNlbGYuX3BlcmZvcm1fdGVzdF9mb3JfdGFi bGUoJ25vbmludHBrZXknLCBkYXRhX2xvY2FsKQogCiAgICAgZGVmIGFmdGVyKHNlbGYpOgogICAg ICAgICBzZWxmLnBhZ2UucmVtb3ZlX3NlcnZlcihzZWxmLnNlcnZlcikKQEAgLTE2Nyw3ICsxNjks NyBAQCBDUkVBVEUgVEFCTEUgcHVibGljLm5vbmludHBrZXkKICAgICAgICAgZ2xvYmFsIGNvbmZp Z19kYXRhCiAgICAgICAgIGNvbmZpZ19kYXRhID0gY29uZmlnX2RhdGFfanNvbltjb25maWdfa2V5 XQogCi0gICAgZGVmIF9wZXJmb3JtX3Rlc3RfZm9yX3RhYmxlKHNlbGYsIHRhYmxlX25hbWUpOgor ICAgIGRlZiBfcGVyZm9ybV90ZXN0X2Zvcl90YWJsZShzZWxmLCB0YWJsZV9uYW1lLCBjb25maWdf ZGF0YV9sb2NhbCk6CiAgICAgICAgIHNlbGYucGFnZS5jbGlja19hX3RyZWVfbm9kZSgKICAgICAg ICAgICAgIHRhYmxlX25hbWUsCiAgICAgICAgICAgICBUcmVlQXJlYUxvY2F0b3JzLnN1Yl9ub2Rl c19vZl90YWJsZXNfbm9kZSkKQEAgLTE3NiwxOSArMTc4LDIwIEBAIENSRUFURSBUQUJMRSBwdWJs aWMubm9uaW50cGtleQogCiAgICAgICAgIHNlbGYucGFnZS53YWl0X2Zvcl9xdWVyeV90b29sX2xv YWRpbmdfaW5kaWNhdG9yX3RvX2Rpc2FwcGVhcigpCiAgICAgICAgICMgUnVuIHRlc3QgdG8gaW5z ZXJ0IGEgbmV3IHJvdyBpbiB0YWJsZSB3aXRoIGRlZmF1bHQgdmFsdWVzCi0gICAgICAgIHNlbGYu X2FkZF9yb3coKQotICAgICAgICBzZWxmLl92ZXJpZnlfcm93X2RhdGEoVHJ1ZSwgY29uZmlnX2Rh dGFbJ2FkZCddKQorICAgICAgICBzZWxmLl9hZGRfcm93KGNvbmZpZ19kYXRhX2xvY2FsKQorICAg ICAgICBzZWxmLl92ZXJpZnlfcm93X2RhdGEoVHJ1ZSwgY29uZmlnX2RhdGFfbG9jYWxbJ2FkZCdd KQogCiAgICAgICAgICMgUnVuIHRlc3QgdG8gY29weS9wYXN0ZSBhIHJvdwotICAgICAgICBzZWxm Ll9jb3B5X3Bhc3RlX3JvdygpCisgICAgICAgIHNlbGYuX2NvcHlfcGFzdGVfcm93KGNvbmZpZ19k YXRhX2xvY2FsKQogCi0gICAgICAgIHNlbGYuX3VwZGF0ZV9yb3coKQorICAgICAgICBzZWxmLl91 cGRhdGVfcm93KGNvbmZpZ19kYXRhX2xvY2FsKQogICAgICAgICBzZWxmLnBhZ2UuY2xpY2tfdGFi KCJNZXNzYWdlcyIpCiAgICAgICAgIHNlbGYuX3ZlcmlmeV9tZXNzc2FnZXMoIiIpCiAgICAgICAg IHNlbGYucGFnZS5jbGlja190YWIoIkRhdGEgT3V0cHV0IikKICAgICAgICAgdXBkYXRlZF9yb3df ZGF0YSA9IHsKLSAgICAgICAgICAgIGk6IGNvbmZpZ19kYXRhWyd1cGRhdGUnXVtpXSBpZiBpIGlu IGNvbmZpZ19kYXRhWyd1cGRhdGUnXSBlbHNlIHZhbAotICAgICAgICAgICAgZm9yIGksIHZhbCBp biBjb25maWdfZGF0YVsnYWRkJ10uaXRlbXMoKQorICAgICAgICAgICAgaTogY29uZmlnX2RhdGFf bG9jYWxbJ3VwZGF0ZSddW2ldIGlmIGkgaW4gY29uZmlnX2RhdGFfbG9jYWxbCisgICAgICAgICAg ICAgICAgJ3VwZGF0ZSddIGVsc2UgdmFsCisgICAgICAgICAgICBmb3IgaSwgdmFsIGluIGNvbmZp Z19kYXRhX2xvY2FsWydhZGQnXS5pdGVtcygpCiAgICAgICAgIH0KICAgICAgICAgc2VsZi5fdmVy aWZ5X3Jvd19kYXRhKEZhbHNlLCB1cGRhdGVkX3Jvd19kYXRhKQogCkBAIC0yMTksNyArMjIyLDYg QEAgQ1JFQVRFIFRBQkxFIHB1YmxpYy5ub25pbnRwa2V5CiAgICAgICAgIFJldHVybnM6IE5vbmUK IAogICAgICAgICAiIiIKLQogICAgICAgICBzZWxmLndhaXQudW50aWwoRUMudmlzaWJpbGl0eV9v Zl9lbGVtZW50X2xvY2F0ZWQoCiAgICAgICAgICAgICAoQnkuWFBBVEgsIHhwYXRoKSksIENoZWNr Rm9yVmlld0RhdGFUZXN0LlRJTUVPVVRfU1RSSU5HCiAgICAgICAgICkKQEAgLTIzNiw3ICsyMzgs NyBAQCBDUkVBVEUgVEFCTEUgcHVibGljLm5vbmludHBrZXkKICAgICAgICAgICAgIGlmIHZhbHVl ID09ICdjbGVhcic6CiAgICAgICAgICAgICAgICAgY2VsbF9lbC5maW5kX2VsZW1lbnRfYnlfY3Nz X3NlbGVjdG9yKCdpbnB1dCcpLmNsZWFyKCkKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg ICAgICAgQWN0aW9uQ2hhaW5zKHNlbGYuZHJpdmVyKS5zZW5kX2tleXModmFsdWUpLlwKKyAgICAg ICAgICAgICAgICBBY3Rpb25DaGFpbnMoc2VsZi5kcml2ZXIpLnNlbmRfa2V5cyh2YWx1ZSkuIFwK ICAgICAgICAgICAgICAgICAgICAgc2VuZF9rZXlzKEtleXMuRU5URVIpLnBlcmZvcm0oKQogICAg ICAgICBlbGlmIGNlbGxfdHlwZSBpbiBbJ3RleHQnLCAnanNvbicsICd0ZXh0W10nLCAnYm9vbGVh bltdJ106CiAgICAgICAgICAgICB0ZXh0X2FyZWFfZWxlID0gc2VsZi5wYWdlLmZpbmRfYnlfY3Nz X3NlbGVjdG9yKApAQCAtMjg4LDcgKzI5MCw3IEBAIENSRUFURSBUQUJMRSBwdWJsaWMubm9uaW50 cGtleQogICAgICAgICAgICAgc2VsZi5wYWdlLmRyaXZlci5maW5kX2VsZW1lbnRfYnlfdGFnX25h bWUoJ2lmcmFtZScpCiAgICAgICAgICkKIAotICAgIGRlZiBfY29weV9wYXN0ZV9yb3coc2VsZik6 CisgICAgZGVmIF9jb3B5X3Bhc3RlX3JvdyhzZWxmLCBjb25maWdfZGF0YV9sKToKICAgICAgICAg cm93MF9jZWxsMF94cGF0aCA9IENoZWNrRm9yVmlld0RhdGFUZXN0Ll9nZXRfY2VsbF94cGF0aCgi cjAiLCAxKQogCiAgICAgICAgIHNlbGYucGFnZS5maW5kX2J5X3hwYXRoKHJvdzBfY2VsbDBfeHBh dGgpLmNsaWNrKCkKQEAgLTI5OCwxMiArMzAwLDEyIEBAIENSRUFURSBUQUJMRSBwdWJsaWMubm9u aW50cGtleQogICAgICAgICAgICAgUXVlcnlUb29sTG9jYXRvcnMucGFzdGVfYnV0dG9uX2Nzcyku Y2xpY2soKQogCiAgICAgICAgICMgVXBkYXRlIHByaW1hcnkga2V5IG9mIGNvcGllZCBjZWxsCi0g ICAgICAgIHNlbGYuX2FkZF91cGRhdGVfc2F2ZV9yb3coY29uZmlnX2RhdGFbJ2NvcHknXSwgcm93 PTIpCisgICAgICAgIHNlbGYuX2FkZF91cGRhdGVfc2F2ZV9yb3coY29uZmlnX2RhdGFfbFsnY29w eSddLCByb3c9MikKIAogICAgICAgICAjIFZlcmlmeSByb3cgMSBhbmQgcm93IDIgZGF0YQogICAg ICAgICB1cGRhdGVkX3Jvd19kYXRhID0gewotICAgICAgICAgICAgaTogY29uZmlnX2RhdGFbJ2Nv cHknXVtpXSBpZiBpIGluIGNvbmZpZ19kYXRhWydjb3B5J10gZWxzZSB2YWwKLSAgICAgICAgICAg IGZvciBpLCB2YWwgaW4gY29uZmlnX2RhdGFbJ2FkZCddLml0ZW1zKCkKKyAgICAgICAgICAgIGk6 IGNvbmZpZ19kYXRhX2xbJ2NvcHknXVtpXSBpZiBpIGluIGNvbmZpZ19kYXRhX2xbJ2NvcHknXSBl bHNlIHZhbAorICAgICAgICAgICAgZm9yIGksIHZhbCBpbiBjb25maWdfZGF0YV9sWydhZGQnXS5p dGVtcygpCiAgICAgICAgIH0KICAgICAgICAgc2VsZi5fdmVyaWZ5X3Jvd19kYXRhKEZhbHNlLCB1 cGRhdGVkX3Jvd19kYXRhKQogCkBAIC0zMjYsMTEgKzMyOCwxMSBAQCBDUkVBVEUgVEFCTEUgcHVi bGljLm5vbmludHBrZXkKICAgICAgICAgIyBzYXZlIGFqYXggaXMgY29tcGxldGVkLgogICAgICAg ICB0aW1lLnNsZWVwKDIpCiAKLSAgICBkZWYgX2FkZF9yb3coc2VsZik6Ci0gICAgICAgIHNlbGYu X2FkZF91cGRhdGVfc2F2ZV9yb3coY29uZmlnX2RhdGFbJ2FkZCddLCAxKQorICAgIGRlZiBfYWRk X3JvdyhzZWxmLCBjb25maWdfZGF0YV9sKToKKyAgICAgICAgc2VsZi5fYWRkX3VwZGF0ZV9zYXZl X3Jvdyhjb25maWdfZGF0YV9sWydhZGQnXSwgMSkKIAotICAgIGRlZiBfdXBkYXRlX3JvdyhzZWxm KToKLSAgICAgICAgc2VsZi5fYWRkX3VwZGF0ZV9zYXZlX3Jvdyhjb25maWdfZGF0YVsndXBkYXRl J10sIDEpCisgICAgZGVmIF91cGRhdGVfcm93KHNlbGYsIGNvbmZpZ19kYXRhX2wpOgorICAgICAg ICBzZWxmLl9hZGRfdXBkYXRlX3NhdmVfcm93KGNvbmZpZ19kYXRhX2xbJ3VwZGF0ZSddLCAxKQog CiAgICAgZGVmIF92ZXJpZnlfbWVzc3NhZ2VzKHNlbGYsIHRleHQpOgogICAgICAgICBtZXNzYWdl c19lbGUgPSBzZWxmLnBhZ2UuZmluZF9ieV9jc3Nfc2VsZWN0b3IoCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3hzc19jaGVja3NfcGFuZWxzX2FuZF9xdWVyeV90b29sX3Rl c3QucHkgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3hzc19jaGVja3NfcGFuZWxzX2FuZF9x dWVyeV90b29sX3Rlc3QucHkKaW5kZXggOWVmYWQ4YTM2Li42OWMzY2JhODAgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMveHNzX2NoZWNrc19wYW5lbHNfYW5kX3F1ZXJ5X3Rv b2xfdGVzdC5weQorKysgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3hzc19jaGVja3NfcGFu ZWxzX2FuZF9xdWVyeV90b29sX3Rlc3QucHkKQEAgLTIxMSwxNyArMjExLDIzIEBAIGNsYXNzIENo ZWNrRm9yWHNzRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgICAgICJRdWVy eSB0b29sIChIaXN0b3J5IEVudHJ5KSIKICAgICAgICAgKQogCi0gICAgICAgICMgQ2hlY2sgZm9y IGhpc3RvcnkgZGV0YWlscyBtZXNzYWdlCi0gICAgICAgIGhpc3RvcnlfZWxlID0gc2VsZi5kcml2 ZXJcCi0gICAgICAgICAgICAuZmluZF9lbGVtZW50X2J5X2Nzc19zZWxlY3RvcigiLnF1ZXJ5LWRl dGFpbCAuY29udGVudC12YWx1ZSIpCi0KLSAgICAgICAgc291cmNlX2NvZGUgPSBoaXN0b3J5X2Vs ZS5nZXRfYXR0cmlidXRlKCdpbm5lckhUTUwnKQorICAgICAgICByZXRyeSA9IDIKKyAgICAgICAg d2hpbGUgcmV0cnkgPiAwOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGhpc3Rv cnlfZWxlID0gc2VsZi5kcml2ZXIgXAorICAgICAgICAgICAgICAgICAgICAuZmluZF9lbGVtZW50 X2J5X2Nzc19zZWxlY3RvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICIucXVlcnktZGV0YWls IC5jb250ZW50LXZhbHVlIikKKyAgICAgICAgICAgICAgICBzb3VyY2VfY29kZSA9IGhpc3Rvcnlf ZWxlLmdldF9hdHRyaWJ1dGUoJ2lubmVySFRNTCcpCisgICAgICAgICAgICAgICAgYnJlYWsKKyAg ICAgICAgICAgIGV4Y2VwdCBTdGFsZUVsZW1lbnRSZWZlcmVuY2VFeGNlcHRpb246CisgICAgICAg ICAgICAgICAgcmV0cnkgLT0gMQogCiAgICAgICAgIHNlbGYuX2NoZWNrX2VzY2FwZWRfY2hhcmFj dGVycygKICAgICAgICAgICAgIHNvdXJjZV9jb2RlLAogICAgICAgICAgICAgJyZsdDtzY3JpcHQm Z3Q7YWxlcnQoMSkmbHQ7L3NjcmlwdCZndDsnLAogICAgICAgICAgICAgIlF1ZXJ5IHRvb2wgKEhp c3RvcnkgRGV0YWlscy1NZXNzYWdlKSIKICAgICAgICAgKQorCiAgICAgICAgIHJldHJ5ID0gMgog ICAgICAgICB3aGlsZSByZXRyeSA+IDA6CiAgICAgICAgICAgICB0cnk6CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi91dGlscy9yb3V0ZS5weSBiL3dlYi9wZ2FkbWluL3V0aWxzL3JvdXRlLnB5Cmlu ZGV4IDM1NDkzZTk1ZC4uOThiZTMxMzI4IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi91dGlscy9y b3V0ZS5weQorKysgYi93ZWIvcGdhZG1pbi91dGlscy9yb3V0ZS5weQpAQCAtMTE4LDkgKzExOCw4 IEBAIGNsYXNzIEJhc2VUZXN0R2VuZXJhdG9yKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAg ICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgnY2Fubm90IHJ1biBpbjogJXMnICUKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfY29uWydkYXRhJ11bJ3R5cGUnXSkKIAot ICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBzZXRUZXN0U2VydmVyKGNscywgc2VydmVyKToKLSAg ICAgICAgY2xzLnNlcnZlciA9IHNlcnZlcgorICAgIGRlZiBzZXRUZXN0U2VydmVyKHNlbGYsIHNl cnZlcik6CisgICAgICAgIHNlbGYuc2VydmVyID0gc2VydmVyCiAKICAgICBAYWJzdHJhY3RtZXRo b2QKICAgICBkZWYgcnVuVGVzdChzZWxmKToKQEAgLTEzNSwxNyArMTM0LDE0IEBAIGNsYXNzIEJh c2VUZXN0R2VuZXJhdG9yKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgc2V0VGVzdENsaWVu dChjbHMsIHRlc3RfY2xpZW50KToKICAgICAgICAgY2xzLnRlc3RlciA9IHRlc3RfY2xpZW50CiAK LSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgc2V0RHJpdmVyKGNscywgZHJpdmVyKToKLSAgICAg ICAgY2xzLmRyaXZlciA9IGRyaXZlcgorICAgIGRlZiBzZXREcml2ZXIoc2VsZiwgZHJpdmVyKToK KyAgICAgICAgc2VsZi5kcml2ZXIgPSBkcml2ZXIKIAotICAgIEBjbGFzc21ldGhvZAotICAgIGRl ZiBzZXRTZXJ2ZXJJbmZvcm1hdGlvbihjbHMsIHNlcnZlcl9pbmZvcm1hdGlvbik6Ci0gICAgICAg IGNscy5zZXJ2ZXJfaW5mb3JtYXRpb24gPSBzZXJ2ZXJfaW5mb3JtYXRpb24KKyAgICBkZWYgc2V0 U2VydmVySW5mb3JtYXRpb24oc2VsZiwgc2VydmVyX2luZm9ybWF0aW9uKToKKyAgICAgICAgc2Vs Zi5zZXJ2ZXJfaW5mb3JtYXRpb24gPSBzZXJ2ZXJfaW5mb3JtYXRpb24KIAotICAgIEBjbGFzc21l dGhvZAotICAgIGRlZiBzZXRUZXN0RGF0YWJhc2VOYW1lKGNscywgZGF0YWJhc2VfbmFtZSk6Ci0g ICAgICAgIGNscy50ZXN0X2RiID0gZGF0YWJhc2VfbmFtZQorICAgIGRlZiBzZXRUZXN0RGF0YWJh c2VOYW1lKHNlbGYsIGRhdGFiYXNlX25hbWUpOgorICAgICAgICBzZWxmLnRlc3RfZGIgPSBkYXRh YmFzZV9uYW1lCiAKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgc2V0UmVTUUxNb2R1bGVMaXN0 KGNscywgbW9kdWxlX2xpc3QpOgpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vUkVBRE1FIGIv d2ViL3JlZ3Jlc3Npb24vUkVBRE1FCmluZGV4IGE0NTkxYWNiMi4uMzE0ZTU4ZGE5IDEwMDY0NAot LS0gYS93ZWIvcmVncmVzc2lvbi9SRUFETUUKKysrIGIvd2ViL3JlZ3Jlc3Npb24vUkVBRE1FCkBA IC0xNDEsNiArMTQxLDI4IEBAIFB5dGhvbiBUZXN0czoKICAgYW5kIHJlZ2lzdGVyZWQgYXV0b21h dGljYWxseSBieSBpdHMgbW9kdWxlIG5hbWUgaW4KICAgJ3BnYWRtaW40L3dlYi9wZ2FkbWluL3V0 aWxzL3Rlc3QucHknIGZpbGUuCiAKKy0gVG8gcnVuIEZlYXR1cmUgVGVzdHMgaW4gcGFyYWxsZWwg dXNpbmcgc2VsZW5vaWQoZ3JpZCArIGRvY2tlciksIHNlbGVub2lkCisgIG5lZWQgdG8gYmUgaW5z dGFsbGVkLiBTdGVwcyB0byBpbnN0YWxsIHNlbGVub2lkIC0KKyAgLSBJbnN0YWxsICYgU3RhcnQg ZG9ja2VyCisgICAgJHl1bSAteSBpbnN0YWxsIGRvY2tlciBkb2NrZXItcmVnaXN0cnkKKyAgICAk dmkgL2V0Yy9zeXNjb25maWcvZG9ja2VyICAgIyBpbiBPUFRJT05TIGFkZCDigJgtLXNlbGludXgt ZW5hYmxlZD1mYWxzZeKAmQorICAgICRzeXN0ZW1jdGwgZW5hYmxlIGRvY2tlci5zZXJ2aWNlCisg ICAgJHN5c3RlbWN0bCBzdGFydCBkb2NrZXIuc2VydmljZQorICAgICRzeXN0ZW1jdGwgc3RhdHVz IGRvY2tlci5zZXJ2aWNlCisgIC0gSW5zdGFsbCAmIFN0YXJ0IFNlbGVub2lkCisgICAgJGN1cmwg LXMgaHR0cHM6Ly9hZXJva3ViZS5jb20vY20vYmFzaCB8IGJhc2gKKyAgICAkLi9jbSBzZWxlbm9p ZCBzdGFydCAtLXZuYyAtZyAtbGltaXQgMyAtY3B1IDEuNQorICAgICQuL2NtIHNlbGVub2lkLXVp IHN0YXJ0CisgICAgQ2hlY2sgc2VsZW5vaWQgc3RhdHVzIC0KKyAgICBodHRwOi8vPElQIGFkZHJl c3Mgb2YgU2VsZW5vaWQgSW5zdGFsbGVkIG1hY2hpbmU+OjQ0NDQvc3RhdHVzCisgICAgICAgICAg ICAtIFNob3VsZCBzaG93IGpzb24gd2l0aCBicm93c2VycyBkZXRhaWxzCisgICAgaHR0cDovLzxJ UCBhZGRyZXNzIG9mIFNlbGVub2lkIEluc3RhbGxlZCBtYWNoaW5lPjo4MDgwLyMvCisgICAgICAg ICAgICAtIENhcGFiaWxpdGllcyBzaG93cyBhdmFpbGFibGUgYnJvd3NlcgorICAtIFVwZGF0ZSBj b25maWdfbG9jYWwucHkgaWYgZXhpc3RzIGVsc2UgY3JlYXRlIG5ldyB3aXRoICdERUZBVUxUX1NF UlZFUicgdmFsdWUKKyAgICBERUZBVUxUX1NFUlZFUiA9ICc8WW91ciBTeXN0ZW0gSVA+JworICAt IFVwZGF0ZSAndGVzdF9jb25maWcuanNvbicgd2l0aCBzZWxlbm9pZCByZWxhdGVkIGluZm8gbGlr ZSBzZWxlbm9pZCB1cmwKKyAgICAmIGJyb3dzZXIgZGV0YWlscyB3aGVyZSB0ZXN0cyBuZWVkIHRv IGJlIGV4ZWN1dGVkCisKIC0gQ2hhbmdlIHRvIHRoZSByZWdyZXNzaW9uIHRlc3QgZGlyZWN0b3J5 OgogICAgICBydW4gJ2NkIHdlYi9yZWdyZXNzaW9uJwogCkBAIC0xOTAsNiArMjEyLDkgQEAgUHl0 aG9uIFRlc3RzOgogICAgICBFeGFtcGxlIDIpICBFeGVjdXRlIG9ubHkgcmV2ZXJzZSBlbmdpbmVl cmVkIFNRTCB0ZXN0IGZyYW1ld29yayBmb3Igc29tZSBtb2R1bGVzCiAgICAgICAgICBydW4gJ3B5 dGhvbiBydW50ZXN0cy5weSAtLXBrZyByZXNxbCAtLW1vZHVsZXMgc2VxdWVuY2VzLGZ1bmN0aW9u cycKIAorLSBFeGVjdXRlIHVpIHNlbGVuaXVtIHRlc3RzIGluIHBhcmFsbGVsIHVzaW5nIHNlbGVu b2lkKHNlbGVuaXVtIGdyaWQgKyBkb2NrZXIpCisgICAgIEV4YW1wbGUgOiAtLXBrZyBmZWF0dXJl X3Rlc3RzIC0tcGFyYWxsZWwKKwogQ29kZSBDb3ZlcmFnZToKIC0tLS0tLS0tLS0tLS0tLQogCmRp ZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3V0aWxzL2FwcF9zdGFydGVyLnB5IGIv d2ViL3JlZ3Jlc3Npb24vZmVhdHVyZV91dGlscy9hcHBfc3RhcnRlci5weQppbmRleCBmZTRjNDQx YTEuLjdkZTEwYjI1YyAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vZmVhdHVyZV91dGlscy9h cHBfc3RhcnRlci5weQorKysgYi93ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3V0aWxzL2FwcF9zdGFy dGVyLnB5CkBAIC02MSwxMSArNjEsMTYgQEAgY2xhc3MgQXBwU3RhcnRlcjoKICAgICAgICAgICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbmFibGUgdG8gc3RhcnQgcHl0aG9uIHNlcnZlciBl dmVuIGFmdGVyICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXRyeWlu ZyA2MCB0aW1lcy4nKQogCi0gICAgICAgIGxhdW5jaF9icm93c2VyKDApCisgICAgICAgIGlmIHNl bGYuZHJpdmVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgbGF1bmNoX2Jyb3dzZXIoMCkKKyAg ICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiAiaHR0cDovLyIgKyBzZWxmLmFwcF9jb25m aWcuREVGQVVMVF9TRVJWRVIgKyAiOiIgXAorICAgICAgICAgICAgICAgICAgICsgcmFuZG9tX3Nl cnZlcl9wb3J0CiAKICAgICBkZWYgc3RvcF9hcHAoc2VsZik6CiAgICAgICAgICIiIiBUaGlzIGZ1 bmN0aW9uIHN0b3AgdGhlIHN0YXJ0ZWQgYXBwIGJ5IGtpbGxpbmcgcHJvY2VzcyAiIiIKLSAgICAg ICAgc2VsZi5kcml2ZXIucXVpdCgpCisgICAgICAgIGlmIHNlbGYuZHJpdmVyIGlzIG5vdCBOb25l OgorICAgICAgICAgICAgc2VsZi5kcml2ZXIucXVpdCgpCiAgICAgICAgICMgb3Mua2lsbHBnIHN1 cHBvcnRlZCBpbiBNYWMgYW5kIFVuaXggYXMgdGhpcyBmdW5jdGlvbiBub3Qgc3VwcG9ydGVkIGlu CiAgICAgICAgICMgV2luZG93cwogICAgICAgICB0cnk6CmRpZmYgLS1naXQgYS93ZWIvcmVncmVz c2lvbi9mZWF0dXJlX3V0aWxzL2xvY2F0b3JzLnB5IGIvd2ViL3JlZ3Jlc3Npb24vZmVhdHVyZV91 dGlscy9sb2NhdG9ycy5weQppbmRleCBiODE2OWZhNTkuLjBkZjhlNjFkZCAxMDA2NDQKLS0tIGEv d2ViL3JlZ3Jlc3Npb24vZmVhdHVyZV91dGlscy9sb2NhdG9ycy5weQorKysgYi93ZWIvcmVncmVz c2lvbi9mZWF0dXJlX3V0aWxzL2xvY2F0b3JzLnB5CkBAIC0xNzIsNiArMTcyLDggQEAgY2xhc3Mg UXVlcnlUb29sTG9jYXRvcnM6CiAKICAgICBuZXdfcm93X3hwYXRoID0gIi8vZGl2W2NvbnRhaW5z KEBjbGFzcywgJ25ldy1yb3cnKV0iCiAKKyAgICBzY3JhdGNoX3BhZF9jc3MgPSAiLnNxbC1zY3Jh dGNoID4gdGV4dGFyZWEiCisKICAgICBjb3B5X2J1dHRvbl9jc3MgPSAiI2J0bi1jb3B5LXJvdyIK IAogICAgIHBhc3RlX2J1dHRvbl9jc3MgPSAiI2J0bi1wYXN0ZS1yb3ciCmRpZmYgLS1naXQgYS93 ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3V0aWxzL3BnYWRtaW5fcGFnZS5weSBiL3dlYi9yZWdyZXNz aW9uL2ZlYXR1cmVfdXRpbHMvcGdhZG1pbl9wYWdlLnB5CmluZGV4IGFlZjAzMWZkMC4uNGQ2ZjE1 ZTUwIDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3V0aWxzL3BnYWRtaW5fcGFn ZS5weQorKysgYi93ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3V0aWxzL3BnYWRtaW5fcGFnZS5weQpA QCAtODgsMTEgKzg4LDE3IEBAIGNsYXNzIFBnYWRtaW5QYWdlOgogICAgICAgICAgICAgKEJ5LkNT U19TRUxFQ1RPUiwgImJ1dHRvblt0eXBlPSdzYXZlJ10uYnRuLmJ0bi1wcmltYXJ5IikpKQogICAg ICAgICBzZWxmLmZpbmRfYnlfY3NzX3NlbGVjdG9yKCJidXR0b25bdHlwZT0nc2F2ZSddLmJ0bi5i dG4tcHJpbWFyeSIpLlwKICAgICAgICAgICAgIGNsaWNrKCkKLQotICAgICAgICBXZWJEcml2ZXJX YWl0KHNlbGYuZHJpdmVyLCAxMCkudW50aWwoCi0gICAgICAgICAgICBFQy52aXNpYmlsaXR5X29m X2VsZW1lbnRfbG9jYXRlZCgKLSAgICAgICAgICAgICAgICAoQnkuWFBBVEgsCi0gICAgICAgICAg ICAgICAgICIvLypbQGlkPSd0cmVlJ10vLypbLj0nIiArIHNlcnZlcl9jb25maWdbJ25hbWUnXSAr ICInXSIpKSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgV2ViRHJpdmVyV2FpdChzZWxmLmRy aXZlciwgMTApLnVudGlsKAorICAgICAgICAgICAgICAgIEVDLnZpc2liaWxpdHlfb2ZfZWxlbWVu dF9sb2NhdGVkKAorICAgICAgICAgICAgICAgICAgICAoQnkuWFBBVEgsCisgICAgICAgICAgICAg ICAgICAgICAiLy8qW0BpZD0ndHJlZSddLy8qWy49JyIgKyBzZXJ2ZXJfY29uZmlnWyduYW1lJ10g KyAiJ10iKSkpCisgICAgICAgIGV4Y2VwdCBUaW1lb3V0RXhjZXB0aW9uOgorICAgICAgICAgICAg c2VsZi50b2dnbGVfb3Blbl9zZXJ2ZXJzX2dyb3VwKCkKKyAgICAgICAgICAgIFdlYkRyaXZlcldh aXQoc2VsZi5kcml2ZXIsIDEwKS51bnRpbCgKKyAgICAgICAgICAgICAgICBFQy52aXNpYmlsaXR5 X29mX2VsZW1lbnRfbG9jYXRlZCgKKyAgICAgICAgICAgICAgICAgICAgKEJ5LlhQQVRILAorICAg ICAgICAgICAgICAgICAgICAgIi8vKltAaWQ9J3RyZWUnXS8vKlsuPSciICsgc2VydmVyX2NvbmZp Z1snbmFtZSddICsgIiddIikpKQogCiAgICAgZGVmIG9wZW5fcXVlcnlfdG9vbChzZWxmKToKICAg ICAgICAgc2VsZi5kcml2ZXIuZmluZF9lbGVtZW50X2J5X2xpbmtfdGV4dCgiVG9vbHMiKS5jbGlj aygpCkBAIC05MTAsNyArOTE2LDExIEBAIGNsYXNzIFBnYWRtaW5QYWdlOgogICAgICAgICAgICAg ICAgICAgICByZXR1cm4gZWxlbWVudAogICAgICAgICAgICAgZXhjZXB0IChOb1N1Y2hFbGVtZW50 RXhjZXB0aW9uLCBXZWJEcml2ZXJFeGNlcHRpb24pOgogICAgICAgICAgICAgICAgIHJldHVybiBG YWxzZQotCisgICAgICAgIHRpbWUuc2xlZXAoMSkKKyAgICAgICAgc2VsZi5kcml2ZXIuc3dpdGNo X3RvLmRlZmF1bHRfY29udGVudCgpCisgICAgICAgIHNlbGYuZHJpdmVyLnN3aXRjaF90b19mcmFt ZSgKKyAgICAgICAgICAgIHNlbGYuZHJpdmVyLmZpbmRfZWxlbWVudF9ieV90YWdfbmFtZSgiaWZy YW1lIikpCisgICAgICAgIHNlbGYuZmluZF9ieV94cGF0aCgiLy9hW3RleHQoKT0nUXVlcnkgRWRp dG9yJ10iKS5jbGljaygpCiAgICAgICAgIGNvZGVtaXJyb3JfZWxlID0gV2ViRHJpdmVyV2FpdCgK ICAgICAgICAgICAgIHNlbGYuZHJpdmVyLCB0aW1lb3V0PXNlbGYudGltZW91dCwgcG9sbF9mcmVx dWVuY3k9MC4wMSlcCiAgICAgICAgICAgICAudW50aWwoZmluZF9jb2RlbWlycm9yLApAQCAtMTE2 MSwzICsxMTcxLDEyIEBAIGNsYXNzIFBnYWRtaW5QYWdlOgogICAgICAgICAgICAgZXhjZXB0IEV4 Y2VwdGlvbjoKICAgICAgICAgICAgICAgICBhdHRlbXB0ICs9IDEKICAgICAgICAgcmV0dXJuIGNs aWNrX3N0YXR1cworCisgICAgZGVmIHBhc3RlX3ZhbHVlcyhzZWxmLCBlbD1Ob25lKToKKyAgICAg ICAgYWN0aW9ucyA9IEFjdGlvbkNoYWlucyhzZWxmLmRyaXZlcikKKyAgICAgICAgaWYgZWw6Cisg ICAgICAgICAgICBlbC5jbGljaygpCisgICAgICAgICAgICBhY3Rpb25zLmtleV9kb3duKEtleXMu U0hJRlQpCisgICAgICAgICAgICBhY3Rpb25zLnNlbmRfa2V5cyhLZXlzLklOU0VSVCkKKyAgICAg ICAgICAgIGFjdGlvbnMua2V5X3VwKEtleXMuU0hJRlQpCisgICAgICAgICAgICBhY3Rpb25zLnBl cmZvcm0oKQpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vcHl0aG9uX3Rlc3RfdXRpbHMvdGVz dF91dGlscy5weSBiL3dlYi9yZWdyZXNzaW9uL3B5dGhvbl90ZXN0X3V0aWxzL3Rlc3RfdXRpbHMu cHkKaW5kZXggOTcxZmMyNDAzLi43MWI3NWRmN2IgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9u L3B5dGhvbl90ZXN0X3V0aWxzL3Rlc3RfdXRpbHMucHkKKysrIGIvd2ViL3JlZ3Jlc3Npb24vcHl0 aG9uX3Rlc3RfdXRpbHMvdGVzdF91dGlscy5weQpAQCAtMTcsNiArMTcsMTMgQEAgaW1wb3J0IHNx bGl0ZTMKIGltcG9ydCBzaHV0aWwKIGZyb20gZnVuY3Rvb2xzIGltcG9ydCBwYXJ0aWFsCiBmcm9t IHRlc3R0b29scy50ZXN0Y2FzZSBpbXBvcnQgY2xvbmVfdGVzdF93aXRoX25ld19pZAoraW1wb3J0 IHJlCitpbXBvcnQgdGltZQorZnJvbSBzZWxlbml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQg V2ViRHJpdmVyRXhjZXB0aW9uCitpbXBvcnQgdXJsbGliLnJlcXVlc3QgYXMgdXJsbGliCitpbXBv cnQganNvbgorZnJvbSBzZWxlbml1bSBpbXBvcnQgd2ViZHJpdmVyCitmcm9tIHNlbGVuaXVtLndl YmRyaXZlci5jaHJvbWUub3B0aW9ucyBpbXBvcnQgT3B0aW9ucwogCiBpbXBvcnQgY29uZmlnCiBp bXBvcnQgcmVncmVzc2lvbgpAQCAtMTIxNiwzICsxMjIzLDE0NCBAQCBkZWYgY3JlYXRlX2V4cGVj dGVkX291dHB1dChwYXJhbWV0ZXJzLCBhY3R1YWxfZGF0YSk6CiAgICAgICAgICAgICBhY3R1YWxf ZGF0YS5yZW1vdmUodmFsdWUpCiAgICAgICAgICAgICBicmVhawogICAgIHJldHVybiBleHBlY3Rl ZF9vdXRwdXQKKworCitkZWYgaXNfcGFyYWxsZWxfdWlfdGVzdHMoYXJncyk6CisgICAgIiIiCisg ICAgVGhpcyBmdW5jdGlvbiBjaGVja3MgZm9yIGNvdmVyYWdlIGFyZ3MgZXhpc3RzIGluIGNvbW1h bmQgbGluZSBhcmdzCisgICAgOnJldHVybjogYm9vbGVhbgorICAgICIiIgorICAgIGlmICJwYXJh bGxlbCIgaW4gYXJncyBhbmQgYXJnc1sicGFyYWxsZWwiXToKKyAgICAgICAgcmV0dXJuIFRydWUK KyAgICByZXR1cm4gRmFsc2UKKworCitkZWYgZ2V0X3NlbGVuaXVtX2dyaWRfc3RhdHVzX2FuZF9i cm93c2VyX2xpc3Qoc2Vscm5vaWRfdXJsKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIGNo ZWNrcyBzZWxlbm9pZCBzdGF0dXMgZm9yIGdpdmVuIHVybAorICAgIDpwYXJhbSBzZWxybm9pZF91 cmw6CisgICAgOnJldHVybjogc3RhdHVzIG9mIHNlbGVub2lkICYgbGlzdCBvZiBicm93c2VycyBh dmFpbGFibGUgd2l0aCBzZWxlbm9pZCBpZgorICAgIHN0YXR1cyBpcyB1cAorICAgICIiIgorICAg IHNlbGVub2lkX3N0YXR1cyA9IEZhbHNlCisgICAgYnJvd3Nlcl9saXN0ID0gW10KKyAgICB0cnk6 CisgICAgICAgIHNlbGVub2lkX3N0YXR1cyA9IHVybGxpYi51cmxvcGVuKAorICAgICAgICAgICAg Imh0dHA6Ly8iICsgcmUuc3BsaXQoJy8nLCAocmUuc3BsaXQoJy8vJywgc2Vscm5vaWRfdXJsLCAx KVsxXSkpWworICAgICAgICAgICAgICAgIDBdICsgIi9zdGF0dXMiLCB0aW1lb3V0PTEwKQorICAg ICAgICBzZWxlbm9pZF9zdGF0dXMgPSBqc29uLmxvYWQoc2VsZW5vaWRfc3RhdHVzKQorICAgICAg ICBpZiBpc2luc3RhbmNlKHNlbGVub2lkX3N0YXR1cywgZGljdCk6CisgICAgICAgICAgICBhdmFp bGFibGVfYnJvd3NlcnMgPSBzZWxlbm9pZF9zdGF0dXNbImJyb3dzZXJzIl0KKyAgICAgICAgICAg IHNlbGVub2lkX3N0YXR1cyA9IFRydWUKKworICAgICAgICBsaXN0X29mX2Jyb3dzZXJzID0gdGVz dF9zZXR1cC5jb25maWdfZGF0YVsnc2VsZW5vaWRfaW5mbyddWworICAgICAgICAgICAgJ2Nyb3Nz X0Jyb3dzZXJzJ10KKworICAgICAgICBmb3IgYnJvd3NlciBpbiBsaXN0X29mX2Jyb3dzZXJzOgor ICAgICAgICAgICAgaWYgYnJvd3NlclsibmFtZSJdLmxvd2VyKCkgaW4gYXZhaWxhYmxlX2Jyb3dz ZXJzLmtleXMoKToKKyAgICAgICAgICAgICAgICB2ZXJzaW9ucyA9IGF2YWlsYWJsZV9icm93c2Vy c1soYnJvd3NlclsibmFtZSJdLmxvd2VyKCkpXQorICAgICAgICAgICAgICAgIGlmIGJyb3dzZXJb InZlcnNpb24iXSBpbiB2ZXJzaW9ucy5rZXlzKCk6CisgICAgICAgICAgICAgICAgICAgIGJyb3dz ZXJfbGlzdC5hcHBlbmQoYnJvd3NlcikKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAg ICAgICAgICAgICBwcmludCgiQXZhaWxhYmxlIHswfSB2ZXJzaW9ucyB7MX0iLmZvcm1hdChicm93 c2VyWyJuYW1lIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZlcnNpb25zLmtleXMoKSkpCisgICAgICAgICAgICAgICAgICAg IHByaW50KCJTcGVjaWZpZWQgVmVyc2lvbiA9IHswfSIuZm9ybWF0KGJyb3dzZXJbInZlcnNpb24i XSkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHByaW50KCJ7MH0gaXMgTk9U IGF2YWlsYWJsZSIuZm9ybWF0KGJyb3dzZXJbIm5hbWUiXSkpCisgICAgZXhjZXB0IEV4Y2VwdGlv biBhcyBlOgorICAgICAgICBwcmludChzdHIoZSkpCisgICAgICAgIHByaW50KCJVbmFibGUgdG8g ZmluZCBTZWxlbm9pZCBTdGF0dXMiKQorCisgICAgcmV0dXJuIHNlbGVub2lkX3N0YXR1cywgYnJv d3Nlcl9saXN0CisKKworZGVmIGlzX2ZlYXR1cmVfdGVzdF9pbmNsdWRlZChhcmd1bWVudHMpOgor ICAgICIiIgorICAgIDpwYXJhbSBhcmd1bWVudHM6IGhpcyBpcyBjb21tYW5kIGxpbmUgYXJndW1l bnRzIGZvciBtb2R1bGUgbmFtZSB0bworICAgIHdoaWNoIHRlc3Qgc3VpdGUgd2lsbCBydW4KKyAg ICA6cmV0dXJuOiBib29sZWFuIHZhbHVlIHdoZXRoZXIgdG8gZXhlY3V0ZSBmZWF0dXJlIHRlc3Rz IG9yIE5PVCAmCisgICAgYnJvd3NlciBuYW1lIGlmIGZlYXR1cmVfdGVzdF90b2JlX2luY2x1ZGVk ID0gVHJ1ZQorICAgICIiIgorICAgIGV4Y2x1ZGVfcGtncyA9IFtdCisgICAgaWYgYXJndW1lbnRz WydleGNsdWRlJ10gaXMgbm90IE5vbmU6CisgICAgICAgIGV4Y2x1ZGVfcGtncyArPSBhcmd1bWVu dHNbJ2V4Y2x1ZGUnXS5zcGxpdCgnLCcpCisKKyAgICBmZWF0dXJlX3Rlc3RfdG9iZV9pbmNsdWRl ZCA9ICdmZWF0dXJlX3Rlc3RzJyBub3QgaW4gZXhjbHVkZV9wa2dzIGFuZCBcCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoYXJndW1lbnRzWydwa2cnXSBpcyBOb25lIG9yIGFyZ3Vt ZW50c1sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGtnJ10gPT0gImFs bCIgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHNbJ3BrZydd ID09ICJmZWF0dXJlX3Rlc3RzIikKKyAgICByZXR1cm4gZmVhdHVyZV90ZXN0X3RvYmVfaW5jbHVk ZWQKKworCitkZWYgbGF1bmNoX3VybF9pbl9icm93c2VyKGRyaXZlcl9pbnN0YW5jZSwgdXJsLCBy ZXRyeV9jb3VudCk6CisgICAgIiIiCisgICAgRnVuY3Rpb24gbGF1bmNoZXMgdXJscyBpbiBzZXBl Y2lkZWQgZHJpdmVyIGluc3RhbmNlCisgICAgOnBhcmFtIGRyaXZlcl9pbnN0YW5jZTpicm93c2Vy IGluc3RhbmNlCisgICAgOnBhcmFtIHVybDp1cmwgdG8gYmUgbGF1bmNoZWQKKyAgICA6cGFyYW0g cmV0cnlfY291bnQ6CisgICAgOnJldHVybjoKKyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIGRy aXZlcl9pbnN0YW5jZS5nZXQodXJsKQorICAgIGV4Y2VwdCBXZWJEcml2ZXJFeGNlcHRpb24gYXMg ZToKKyAgICAgICAgIyBJbiBjYXNlIG9mIFdlYkRyaXZlckV4Y2VwdGlvbiBzbGVlcCBmb3IgMSBz ZWNvbmQgYW5kIHJldHJ5CisgICAgICAgICMgYWdhaW4uIFJldHJ5IDEwIHRpbWVzIGFuZCBpZiBz dGlsbCBhcHAgd2lsbCBub3Qgc3RhcnQgdGhlbgorICAgICAgICAjIHJhaXNlIGV4Y2VwdGlvbi4K KyAgICAgICAgdGltZS5zbGVlcCgxKQorICAgICAgICBpZiByZXRyeV9jb3VudCA8IDYwOgorICAg ICAgICAgICAgcmV0cnlfY291bnQgPSByZXRyeV9jb3VudCArIDEKKyAgICAgICAgICAgIGxhdW5j aF91cmxfaW5fYnJvd3Nlcihkcml2ZXJfaW5zdGFuY2UsIHVybCwgcmV0cnlfY291bnQpCisgICAg ICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1VuYWJsZSB0byBzdGFydCBw eXRob24gc2VydmVyIGV2ZW4gYWZ0ZXIgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdy ZXRyeWluZyA2MCB0aW1lcy4nKQorCisKK2RlZiBnZXRfcmVtb3RlX3dlYmRyaXZlcihicm93c2Vy LCBicm93c2VyX3ZlciwgdGVzdF9uYW1lKToKKyAgICBodWJfdXJsID0gdGVzdF9zZXR1cC5jb25m aWdfZGF0YVsnc2VsZW5vaWRfaW5mbyddWydzZWxlbm9pZF91cmwnXQorICAgIHRlc3RfbmFtZSA9 IGJyb3dzZXIgKyBicm93c2VyX3ZlciArICJfIiArIHRlc3RfbmFtZSArICItIiArIHRpbWUuc3Ry ZnRpbWUoCisgICAgICAgICIlbV8lZF8leV8lSF8lTV8lUyIsIHRpbWUubG9jYWx0aW1lKCkpCisg ICAgZHJpdmVyX2xvY2FsID0gTm9uZQorCisgICAgZGVzaXJlZF9jYXBhYmlsaXRpZXMgPSB7Cisg ICAgICAgICJ2ZXJzaW9uIjogYnJvd3Nlcl92ZXIsCisgICAgICAgICJlbmFibGVWTkMiOiBUcnVl LAorICAgICAgICAiZW5hYmxlVmlkZW8iOiBUcnVlLAorICAgICAgICAiZW5hYmxlTG9nIjogVHJ1 ZSwKKyAgICAgICAgInZpZGVvTmFtZSI6IHRlc3RfbmFtZSArICIubXA0IiwKKyAgICAgICAgImxv Z05hbWUiOiB0ZXN0X25hbWUgKyAiLmxvZyIsCisgICAgICAgICJuYW1lIjogdGVzdF9uYW1lLAor ICAgICAgICAidGltZVpvbmUiOiAiQXNpYS9Lb2xrYXRhIgorICAgIH0KKworICAgIGlmIGJyb3dz ZXIgPT0gJ2ZpcmVmb3gnOgorICAgICAgICBwcm9maWxlID0gd2ViZHJpdmVyLkZpcmVmb3hQcm9m aWxlKCkKKyAgICAgICAgcHJvZmlsZS5zZXRfcHJlZmVyZW5jZSgiZG9tLmRpc2FibGVfYmVmb3Jl dW5sb2FkIiwgVHJ1ZSkKKyAgICAgICAgZGVzaXJlZF9jYXBhYmlsaXRpZXNbImJyb3dzZXJOYW1l Il0gPSAiZmlyZWZveCIKKyAgICAgICAgZGVzaXJlZF9jYXBhYmlsaXRpZXNbInJlcXVpcmVXaW5k b3dGb2N1cyJdID0gVHJ1ZQorICAgICAgICBkZXNpcmVkX2NhcGFiaWxpdGllc1siZW5hYmxlUGVy c2lzdGVudEhvdmVyIl0gPSBGYWxzZQorICAgICAgICBkcml2ZXJfbG9jYWwgPSB3ZWJkcml2ZXIu UmVtb3RlKAorICAgICAgICAgICAgY29tbWFuZF9leGVjdXRvcj1odWJfdXJsLAorICAgICAgICAg ICAgZGVzaXJlZF9jYXBhYmlsaXRpZXM9ZGVzaXJlZF9jYXBhYmlsaXRpZXMsIGJyb3dzZXJfcHJv ZmlsZT1wcm9maWxlKQorICAgICAgICBkcml2ZXJfbG9jYWwuaW1wbGljaXRseV93YWl0KDEpCisK KyAgICBlbGlmIGJyb3dzZXIgPT0gJ2Nocm9tZSc6CisgICAgICAgIG9wdGlvbnMgPSBPcHRpb25z KCkKKyAgICAgICAgaWYgdGVzdF9zZXR1cC5jb25maWdfZGF0YToKKyAgICAgICAgICAgIGlmICdo ZWFkbGVzc19jaHJvbWUnIGluIHRlc3Rfc2V0dXAuY29uZmlnX2RhdGE6CisgICAgICAgICAgICAg ICAgaWYgdGVzdF9zZXR1cC5jb25maWdfZGF0YVsnaGVhZGxlc3NfY2hyb21lJ106CisgICAgICAg ICAgICAgICAgICAgIG9wdGlvbnMuYWRkX2FyZ3VtZW50KCItLWhlYWRsZXNzIikKKyAgICAgICAg b3B0aW9ucy5hZGRfYXJndW1lbnQoIi0tbm8tc2FuZGJveCIpCisgICAgICAgIG9wdGlvbnMuYWRk X2FyZ3VtZW50KCItLWRpc2FibGUtc2V0dWlkLXNhbmRib3giKQorICAgICAgICBvcHRpb25zLmFk ZF9hcmd1bWVudCgiLS13aW5kb3ctc2l6ZT0xMjgwLDEwMjQiKQorICAgICAgICBvcHRpb25zLmFk ZF9hcmd1bWVudCgiLS1kaXNhYmxlLWluZm9iYXJzIikKKyAgICAgICAgZGVzaXJlZF9jYXBhYmls aXRpZXNbImJyb3dzZXJOYW1lIl0gPSAiY2hyb21lIgorICAgICAgICBkcml2ZXJfbG9jYWwgPSB3 ZWJkcml2ZXIuUmVtb3RlKAorICAgICAgICAgICAgY29tbWFuZF9leGVjdXRvcj1odWJfdXJsLAor ICAgICAgICAgICAgZGVzaXJlZF9jYXBhYmlsaXRpZXM9ZGVzaXJlZF9jYXBhYmlsaXRpZXMsIG9w dGlvbnM9b3B0aW9ucykKKyAgICBlbHNlOgorICAgICAgICBwcmludCgiU3BlY2lmaWVkIGJyb3dz ZXIgZG9lcyBub3QgZXhpc3QuIikKKworICAgICMgbWF4aW1pemUgYnJvd3NlciB3aW5kb3cKKyAg ICBkcml2ZXJfbG9jYWwubWF4aW1pemVfd2luZG93KCkKKyAgICBkcml2ZXJfbG9jYWwuaW1wbGlj aXRseV93YWl0KDIpCisgICAgcmV0dXJuIGRyaXZlcl9sb2NhbApkaWZmIC0tZ2l0IGEvd2ViL3Jl Z3Jlc3Npb24vcnVudGVzdHMucHkgYi93ZWIvcmVncmVzc2lvbi9ydW50ZXN0cy5weQppbmRleCBm Y2Y3M2E4ODYuLmQ0MWM5NjJhMiAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vcnVudGVzdHMu cHkKKysrIGIvd2ViL3JlZ3Jlc3Npb24vcnVudGVzdHMucHkKQEAgLTIxLDcgKzIxLDggQEAgaW1w b3J0IHRyYWNlYmFjawogaW1wb3J0IGpzb24KIGltcG9ydCByYW5kb20KIGltcG9ydCBjb3ZlcmFn ZQotCitpbXBvcnQgdGhyZWFkaW5nCitpbXBvcnQgdGltZQogaW1wb3J0IHVuaXR0ZXN0CiAKIGlm IHN5cy52ZXJzaW9uX2luZm9bMF0gPj0gMzoKQEAgLTEzNiw3ICsxMzcsNyBAQCBzY2VuYXJpb3Mu YXBwbHlfc2NlbmFyaW8gPSB0ZXN0X3V0aWxzLmFwcGx5X3NjZW5hcmlvCiAKIAogZGVmIGdldF9z dWl0ZShtb2R1bGVfbGlzdCwgdGVzdF9zZXJ2ZXIsIHRlc3RfYXBwX2NsaWVudCwgc2VydmVyX2lu Zm9ybWF0aW9uLAotICAgICAgICAgICAgICB0ZXN0X2RiX25hbWUpOgorICAgICAgICAgICAgICB0 ZXN0X2RiX25hbWUsIGRyaXZlcl9wYXNzZWQpOgogICAgICIiIgogICAgICBUaGlzIGZ1bmN0aW9u IGFkZCB0aGUgdGVzdHMgdG8gdGVzdCBzdWl0ZSBhbmQgcmV0dXJuIG1vZGlmaWVkIHRlc3Qgc3Vp dGUKICAgICAgIHZhcmlhYmxlLgpAQCAtMTY2LDcgKzE2Nyw3IEBAIGRlZiBnZXRfc3VpdGUobW9k dWxlX2xpc3QsIHRlc3Rfc2VydmVyLCB0ZXN0X2FwcF9jbGllbnQsIHNlcnZlcl9pbmZvcm1hdGlv biwKICAgICAgICAgb2JqLnNldEFwcChhcHApCiAgICAgICAgIG9iai5zZXRUZXN0Q2xpZW50KHRl c3RfYXBwX2NsaWVudCkKICAgICAgICAgb2JqLnNldFRlc3RTZXJ2ZXIodGVzdF9zZXJ2ZXIpCi0g ICAgICAgIG9iai5zZXREcml2ZXIoZHJpdmVyKQorICAgICAgICBvYmouc2V0RHJpdmVyKGRyaXZl cl9wYXNzZWQpCiAgICAgICAgIG9iai5zZXRTZXJ2ZXJJbmZvcm1hdGlvbihzZXJ2ZXJfaW5mb3Jt YXRpb24pCiAgICAgICAgIG9iai5zZXRUZXN0RGF0YWJhc2VOYW1lKHRlc3RfZGJfbmFtZSkKICAg ICAgICAgc2NlbmFyaW8gPSBzY2VuYXJpb3MuZ2VuZXJhdGVfc2NlbmFyaW9zKG9iaikKQEAgLTIw Nyw1NyArMjA4LDU5IEBAIGRlZiBnZXRfdGVzdF9tb2R1bGVzKGFyZ3VtZW50cyk6CiAgICAgICAg IGV4Y2x1ZGVfcGtncyArPSBhcmd1bWVudHNbJ2V4Y2x1ZGUnXS5zcGxpdCgnLCcpCiAKICAgICBp ZiAnZmVhdHVyZV90ZXN0cycgbm90IGluIGV4Y2x1ZGVfcGtncyBhbmQgXAotICAgICAgICAgICAg KGFyZ3VtZW50c1sncGtnJ10gaXMgTm9uZSBvciBhcmd1bWVudHNbJ3BrZyddID09ICJhbGwiIG9y Ci0gICAgICAgICAgICAgYXJndW1lbnRzWydwa2cnXSA9PSAiZmVhdHVyZV90ZXN0cyIpOgotCi0g ICAgICAgIGZyb20gc2VsZW5pdW0gaW1wb3J0IHdlYmRyaXZlcgotICAgICAgICBmcm9tIHNlbGVu aXVtLndlYmRyaXZlci5jaHJvbWUub3B0aW9ucyBpbXBvcnQgT3B0aW9ucwotICAgICAgICBmcm9t IHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uZGVzaXJlZF9jYXBhYmlsaXRpZXMgaW1wb3J0IFwK LSAgICAgICAgICAgIERlc2lyZWRDYXBhYmlsaXRpZXMKLQotICAgICAgICBkZWZhdWx0X2Jyb3dz ZXIgPSAnY2hyb21lJwotCi0gICAgICAgICMgQ2hlY2sgZGVmYXVsdCBicm93c2VyIHByb3ZpZGVk IHRocm91Z2ggY29tbWFuZCBsaW5lLiBJZiBwcm92aWRlZAotICAgICAgICAjIHRoZW4gdXNlIHRo YXQgYnJvd3NlciBhcyBkZWZhdWx0IGJyb3dzZXIgZWxzZSBjaGVjayBmb3IgdGhlIHNldHRpbmcK LSAgICAgICAgIyBwcm92aWRlZCBpbiB0ZXN0X2NvbmZpZy5qc29uIGZpbGUuCi0gICAgICAgIGlm ICgKLSAgICAgICAgICAgICdkZWZhdWx0X2Jyb3dzZXInIGluIGFyZ3VtZW50cyBhbmQKLSAgICAg ICAgICAgIGFyZ3VtZW50c1snZGVmYXVsdF9icm93c2VyJ10gaXMgbm90IE5vbmUKLSAgICAgICAg KToKLSAgICAgICAgICAgIGRlZmF1bHRfYnJvd3NlciA9IGFyZ3VtZW50c1snZGVmYXVsdF9icm93 c2VyJ10ubG93ZXIoKQotICAgICAgICBlbGlmICgKLSAgICAgICAgICAgIHRlc3Rfc2V0dXAuY29u ZmlnX2RhdGEgYW5kCi0gICAgICAgICAgICAiZGVmYXVsdF9icm93c2VyIiBpbiB0ZXN0X3NldHVw LmNvbmZpZ19kYXRhCi0gICAgICAgICk6Ci0gICAgICAgICAgICBkZWZhdWx0X2Jyb3dzZXIgPSB0 ZXN0X3NldHVwLmNvbmZpZ19kYXRhWydkZWZhdWx0X2Jyb3dzZXInXS5sb3dlcigpCi0KLSAgICAg ICAgaWYgZGVmYXVsdF9icm93c2VyID09ICdmaXJlZm94JzoKLSAgICAgICAgICAgIGNhcCA9IERl c2lyZWRDYXBhYmlsaXRpZXMuRklSRUZPWAotICAgICAgICAgICAgY2FwWydyZXF1aXJlV2luZG93 Rm9jdXMnXSA9IFRydWUKLSAgICAgICAgICAgIGNhcFsnZW5hYmxlUGVyc2lzdGVudEhvdmVyJ10g PSBGYWxzZQotICAgICAgICAgICAgcHJvZmlsZSA9IHdlYmRyaXZlci5GaXJlZm94UHJvZmlsZSgp Ci0gICAgICAgICAgICBwcm9maWxlLnNldF9wcmVmZXJlbmNlKCJkb20uZGlzYWJsZV9iZWZvcmV1 bmxvYWQiLCBUcnVlKQotICAgICAgICAgICAgZHJpdmVyID0gd2ViZHJpdmVyLkZpcmVmb3goY2Fw YWJpbGl0aWVzPWNhcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZp cmVmb3hfcHJvZmlsZT1wcm9maWxlKQotICAgICAgICAgICAgZHJpdmVyLmltcGxpY2l0bHlfd2Fp dCgxKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgb3B0aW9ucyA9IE9wdGlvbnMoKQotICAg ICAgICAgICAgaWYgdGVzdF9zZXR1cC5jb25maWdfZGF0YToKLSAgICAgICAgICAgICAgICBpZiAn aGVhZGxlc3NfY2hyb21lJyBpbiB0ZXN0X3NldHVwLmNvbmZpZ19kYXRhOgotICAgICAgICAgICAg ICAgICAgICBpZiB0ZXN0X3NldHVwLmNvbmZpZ19kYXRhWydoZWFkbGVzc19jaHJvbWUnXToKLSAg ICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuYWRkX2FyZ3VtZW50KCItLWhlYWRsZXNzIikK LSAgICAgICAgICAgIG9wdGlvbnMuYWRkX2FyZ3VtZW50KCItLW5vLXNhbmRib3giKQotICAgICAg ICAgICAgb3B0aW9ucy5hZGRfYXJndW1lbnQoIi0tZGlzYWJsZS1zZXR1aWQtc2FuZGJveCIpCi0g ICAgICAgICAgICBvcHRpb25zLmFkZF9hcmd1bWVudCgiLS13aW5kb3ctc2l6ZT0xMjgwLDEwMjQi KQotICAgICAgICAgICAgb3B0aW9ucy5hZGRfYXJndW1lbnQoIi0tZGlzYWJsZS1pbmZvYmFycyIp Ci0gICAgICAgICAgICBvcHRpb25zLmFkZF9leHBlcmltZW50YWxfb3B0aW9uKCd3M2MnLCBGYWxz ZSkKLSAgICAgICAgICAgIGRyaXZlciA9IHdlYmRyaXZlci5DaHJvbWUoY2hyb21lX29wdGlvbnM9 b3B0aW9ucykKLQotICAgICAgICAjIG1heGltaXplIGJyb3dzZXIgd2luZG93Ci0gICAgICAgIGRy aXZlci5tYXhpbWl6ZV93aW5kb3coKQotCi0gICAgICAgIGFwcF9zdGFydGVyID0gQXBwU3RhcnRl cihkcml2ZXIsIGNvbmZpZykKLSAgICAgICAgYXBwX3N0YXJ0ZXIuc3RhcnRfYXBwKCkKKyAgICAg ICAgKGFyZ3VtZW50c1sncGtnJ10gaXMgTm9uZSBvciBhcmd1bWVudHNbJ3BrZyddID09ICJhbGwi IG9yCisgICAgICAgICBhcmd1bWVudHNbJ3BrZyddID09ICJmZWF0dXJlX3Rlc3RzIik6CisKKyAg ICAgICAgaWYgbm90IHRlc3RfdXRpbHMuaXNfcGFyYWxsZWxfdWlfdGVzdHMoYXJncyk6CisgICAg ICAgICAgICBmcm9tIHNlbGVuaXVtIGltcG9ydCB3ZWJkcml2ZXIKKyAgICAgICAgICAgIGZyb20g c2VsZW5pdW0ud2ViZHJpdmVyLmNocm9tZS5vcHRpb25zIGltcG9ydCBPcHRpb25zCisgICAgICAg ICAgICBmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24uZGVzaXJlZF9jYXBhYmlsaXRpZXMg aW1wb3J0IFwKKyAgICAgICAgICAgICAgICBEZXNpcmVkQ2FwYWJpbGl0aWVzCisKKyAgICAgICAg ICAgIGRlZmF1bHRfYnJvd3NlciA9ICdjaHJvbWUnCisKKyAgICAgICAgICAgICMgQ2hlY2sgZGVm YXVsdCBicm93c2VyIHByb3ZpZGVkIHRocm91Z2ggY29tbWFuZCBsaW5lLiBJZiBwcm92aWRlZAor ICAgICAgICAgICAgIyB0aGVuIHVzZSB0aGF0IGJyb3dzZXIgYXMgZGVmYXVsdCBicm93c2VyIGVs c2UgY2hlY2sgZm9yIHRoZQorICAgICAgICAgICAgIyBzZXR0aW5nbiBwcm92aWRlZCBpbiB0ZXN0 X2NvbmZpZy5qc29uIGZpbGUuCisgICAgICAgICAgICBpZiAoCisgICAgICAgICAgICAgICAgJ2Rl ZmF1bHRfYnJvd3NlcicgaW4gYXJndW1lbnRzIGFuZAorICAgICAgICAgICAgICAgIGFyZ3VtZW50 c1snZGVmYXVsdF9icm93c2VyJ10gaXMgbm90IE5vbmUKKyAgICAgICAgICAgICk6CisgICAgICAg ICAgICAgICAgZGVmYXVsdF9icm93c2VyID0gYXJndW1lbnRzWydkZWZhdWx0X2Jyb3dzZXInXS5s b3dlcigpCisgICAgICAgICAgICBlbGlmICgKKyAgICAgICAgICAgICAgICB0ZXN0X3NldHVwLmNv bmZpZ19kYXRhIGFuZAorICAgICAgICAgICAgICAgICJkZWZhdWx0X2Jyb3dzZXIiIGluIHRlc3Rf c2V0dXAuY29uZmlnX2RhdGEKKyAgICAgICAgICAgICk6CisgICAgICAgICAgICAgICAgZGVmYXVs dF9icm93c2VyID0gdGVzdF9zZXR1cC5jb25maWdfZGF0YVsKKyAgICAgICAgICAgICAgICAgICAg J2RlZmF1bHRfYnJvd3NlciddLmxvd2VyKCkKKworICAgICAgICAgICAgaWYgZGVmYXVsdF9icm93 c2VyID09ICdmaXJlZm94JzoKKyAgICAgICAgICAgICAgICBjYXAgPSBEZXNpcmVkQ2FwYWJpbGl0 aWVzLkZJUkVGT1gKKyAgICAgICAgICAgICAgICBjYXBbJ3JlcXVpcmVXaW5kb3dGb2N1cyddID0g VHJ1ZQorICAgICAgICAgICAgICAgIGNhcFsnZW5hYmxlUGVyc2lzdGVudEhvdmVyJ10gPSBGYWxz ZQorICAgICAgICAgICAgICAgIHByb2ZpbGUgPSB3ZWJkcml2ZXIuRmlyZWZveFByb2ZpbGUoKQor ICAgICAgICAgICAgICAgIHByb2ZpbGUuc2V0X3ByZWZlcmVuY2UoImRvbS5kaXNhYmxlX2JlZm9y ZXVubG9hZCIsIFRydWUpCisgICAgICAgICAgICAgICAgZHJpdmVyID0gd2ViZHJpdmVyLkZpcmVm b3goY2FwYWJpbGl0aWVzPWNhcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmaXJlZm94X3Byb2ZpbGU9cHJvZmlsZSkKKyAgICAgICAgICAgICAgICBkcml2ZXIu aW1wbGljaXRseV93YWl0KDEpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG9w dGlvbnMgPSBPcHRpb25zKCkKKyAgICAgICAgICAgICAgICBpZiB0ZXN0X3NldHVwLmNvbmZpZ19k YXRhOgorICAgICAgICAgICAgICAgICAgICBpZiAnaGVhZGxlc3NfY2hyb21lJyBpbiB0ZXN0X3Nl dHVwLmNvbmZpZ19kYXRhOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdF9zZXR1cC5j b25maWdfZGF0YVsnaGVhZGxlc3NfY2hyb21lJ106CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgb3B0aW9ucy5hZGRfYXJndW1lbnQoIi0taGVhZGxlc3MiKQorICAgICAgICAgICAgICAgIG9w dGlvbnMuYWRkX2FyZ3VtZW50KCItLW5vLXNhbmRib3giKQorICAgICAgICAgICAgICAgIG9wdGlv bnMuYWRkX2FyZ3VtZW50KCItLWRpc2FibGUtc2V0dWlkLXNhbmRib3giKQorICAgICAgICAgICAg ICAgIG9wdGlvbnMuYWRkX2FyZ3VtZW50KCItLXdpbmRvdy1zaXplPTEyODAsMTAyNCIpCisgICAg ICAgICAgICAgICAgb3B0aW9ucy5hZGRfYXJndW1lbnQoIi0tZGlzYWJsZS1pbmZvYmFycyIpCisg ICAgICAgICAgICAgICAgb3B0aW9ucy5hZGRfZXhwZXJpbWVudGFsX29wdGlvbigndzNjJywgRmFs c2UpCisgICAgICAgICAgICAgICAgZHJpdmVyID0gd2ViZHJpdmVyLkNocm9tZShjaHJvbWVfb3B0 aW9ucz1vcHRpb25zKQorCisgICAgICAgICAgICAjIG1heGltaXplIGJyb3dzZXIgd2luZG93Cisg ICAgICAgICAgICBkcml2ZXIubWF4aW1pemVfd2luZG93KCkKKworICAgICAgICAgICAgYXBwX3N0 YXJ0ZXIgPSBBcHBTdGFydGVyKGRyaXZlciwgY29uZmlnKQorICAgICAgICAgICAgYXBwX3N0YXJ0 ZXIuc3RhcnRfYXBwKCkKIAogICAgIGhhbmRsZV9jbGVhbnVwID0gdGVzdF91dGlscy5nZXRfY2xl YW51cF9oYW5kbGVyKHRlc3RfY2xpZW50LCBhcHBfc3RhcnRlcikKICAgICAjIFJlZ2lzdGVyIGNs ZWFudXAgZnVuY3Rpb24gdG8gY2xlYW51cCBvbiBleGl0CkBAIC0zMTksNiArMzIyLDkgQEAgZGVm IGFkZF9hcmd1bWVudHMoKToKICAgICAgICAgJy0tbW9kdWxlcycsCiAgICAgICAgIGhlbHA9J0V4 ZWN1dGVzIHRoZSBmZWF0dXJlIHRlc3QgZm9yIHNwZWNpZmljIG1vZHVsZXMgaW4gcGtnJwogICAg ICkKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLXBhcmFsbGVsJywgbmFyZ3M9Jz8nLCBjb25z dD1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1ib29sLCBkZWZhdWx0PUZhbHNl LAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nRW5hYmxlIHBhcmFsbGVsIEZlYXR1cmUg VGVzdHMnKQogICAgIGFyZyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKIAogICAgIHJldHVybiBhcmcK QEAgLTQwNCw2ICs0MTAsMTE1IEBAIGNsYXNzIFN0cmVhbVRvTG9nZ2VyKG9iamVjdCk6CiAgICAg ICAgIHBhc3MKIAogCitkcml2ZXJfaW5mbyA9IFtdCisKKworZGVmIHJ1bl90ZXN0KHRlc3RfbW9k dWxlX2xpc3RfcGFzc2VkLCBzZXJ2ZXJfcGFzc2VkLCBkcml2ZXJfcGFzc2VkKToKKyAgICB0cnk6 CisgICAgICAgIHByaW50KCJcbj09PT09PT09PT09PT1SdW5uaW5nIHRoZSB0ZXN0IGNhc2VzIGZv ciAnJXMnID09PT09PT09PT09PT0iCisgICAgICAgICAgICAgICUgc2VydmVyX3Bhc3NlZFsnbmFt ZSddLCBmaWxlPXN5cy5zdGRlcnIpCisKKyAgICAgICAgIyBTdG9yZSBkcml2ZXIgb2JqZWN0IGlu Zm8gJiB0aHJlYWQgaWQKKyAgICAgICAgZHJpdmVyX2luZm8uYXBwZW5kKCh0aHJlYWRpbmcuY3Vy cmVudF90aHJlYWQoKS5pZGVudCwgZHJpdmVyX3Bhc3NlZCkpCisKKyAgICAgICAgIyBDcmVhdGUg dGVzdCBzZXJ2ZXIKKyAgICAgICAgc2VydmVyX2luZm9ybWF0aW9uID0gXAorICAgICAgICAgICAg dGVzdF91dGlscy5jcmVhdGVfcGFyZW50X3NlcnZlcl9ub2RlKHNlcnZlcl9wYXNzZWQpCisKKyAg ICAgICAgIyBDcmVhdGUgdGVzdCBkYXRhYmFzZSB3aXRoIHJhbmRvbSBudW1iZXIgdG8gYXZvaWQg Y29uZmxpY3QgaW4KKyAgICAgICAgIyBwYXJhbGxlbCBleGVjdXRpb24gb24gZGlmZmVyZW50IHBs YXRmb3Jtcy4gVGhpcyBkYXRhYmFzZSB3aWxsIGJlCisgICAgICAgICMgdXNlZCBhY3Jvc3MgYWxs IGZlYXR1cmUgdGVzdHMuCisgICAgICAgIHRlc3RfZGJfbmFtZSA9ICJhY2NlcHRhbmNlX3Rlc3Rf ZGIiICsgXAorICAgICAgICAgICAgICAgICAgICAgICBzdHIocmFuZG9tLnJhbmRpbnQoMTAwMDAs IDY1NTM1KSkKKyAgICAgICAgY29ubmVjdGlvbiA9IHRlc3RfdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rp b24oCisgICAgICAgICAgICBzZXJ2ZXJfcGFzc2VkWydkYiddLAorICAgICAgICAgICAgc2VydmVy X3Bhc3NlZFsndXNlcm5hbWUnXSwKKyAgICAgICAgICAgIHNlcnZlcl9wYXNzZWRbJ2RiX3Bhc3N3 b3JkJ10sCisgICAgICAgICAgICBzZXJ2ZXJfcGFzc2VkWydob3N0J10sCisgICAgICAgICAgICBz ZXJ2ZXJfcGFzc2VkWydwb3J0J10sCisgICAgICAgICAgICBzZXJ2ZXJfcGFzc2VkWydzc2xtb2Rl J10KKyAgICAgICAgKQorCisgICAgICAgICMgQWRkIHRoZSBzZXJ2ZXIgdmVyc2lvbiBpbiBzZXJ2 ZXIgaW5mb3JtYXRpb24KKyAgICAgICAgc2VydmVyX2luZm9ybWF0aW9uWydzZXJ2ZXJfdmVyc2lv biddID0gY29ubmVjdGlvbi5zZXJ2ZXJfdmVyc2lvbgorICAgICAgICBzZXJ2ZXJfaW5mb3JtYXRp b25bJ3R5cGUnXSA9IHNlcnZlcl9wYXNzZWRbJ3R5cGUnXQorCisgICAgICAgICMgRHJvcCB0aGUg ZGF0YWJhc2UgaWYgYWxyZWFkeSBleGlzdHMuCisgICAgICAgIHRlc3RfdXRpbHMuZHJvcF9kYXRh YmFzZShjb25uZWN0aW9uLCB0ZXN0X2RiX25hbWUpCisKKyAgICAgICAgIyBDcmVhdGUgZGF0YWJh c2UKKyAgICAgICAgdGVzdF91dGlscy5jcmVhdGVfZGF0YWJhc2Uoc2VydmVyX3Bhc3NlZCwgdGVz dF9kYl9uYW1lKQorCisgICAgICAgICMgQ29uZmlndXJlIHByZWZlcmVuY2VzIGZvciB0aGUgdGVz dCBjYXNlcworICAgICAgICB0ZXN0X3V0aWxzLmNvbmZpZ3VyZV9wcmVmZXJlbmNlcygKKyAgICAg ICAgICAgIGRlZmF1bHRfYmluYXJ5X3BhdGg9c2VydmVyX3Bhc3NlZFsnZGVmYXVsdF9iaW5hcnlf cGF0aHMnXSkKKworICAgICAgICAjIEdldCB1bml0IHRlc3Qgc3VpdAorICAgICAgICBzdWl0ZSA9 IGdldF9zdWl0ZSh0ZXN0X21vZHVsZV9saXN0X3Bhc3NlZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyX3Bhc3NlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbGll bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pbmZvcm1hdGlvbiwgdGVzdF9k Yl9uYW1lLCBkcml2ZXJfcGFzc2VkKQorCisgICAgICAgICMgUnVuIHVuaXQgdGVzdCBzdWl0IGNy ZWF0ZWQKKyAgICAgICAgdGVzdHMgPSB1bml0dGVzdC5UZXh0VGVzdFJ1bm5lcihzdHJlYW09c3lz LnN0ZGVyciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlw dGlvbnM9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJi b3NpdHk9MikucnVuKHN1aXRlKQorCisgICAgICAgICMgcHJvY2Vzc2luZyByZXN1bHRzCisgICAg ICAgIHJhbl90ZXN0cywgZmFpbGVkX2Nhc2VzLCBza2lwcGVkX2Nhc2VzLCBwYXNzZWRfY2FzZXMg PSBcCisgICAgICAgICAgICBnZXRfdGVzdHNfcmVzdWx0KHRlc3RzKQorCisgICAgICAgICMgVGhp cyBpcyByZXF1aXJlZCB3aGVuIHNvbWUgdGVzdHMgYXJlIHJ1bm5pbmcgcGFyYWxsZWwKKyAgICAg ICAgIyAmIHNvbWUgc2VxdWVudGlhbCBpbiBjYXNlIG9mIHBhcmFsbGVsIHVpIHRlc3RzCisgICAg ICAgIGlmIHRocmVhZC5nZXROYW1lKCkgPT0gInNlcXVlbnRpYWxfdGVzdHMiOgorICAgICAgICAg ICAgdHJ5OgorICAgICAgICAgICAgICAgIGlmIHRlc3RfcmVzdWx0W3NlcnZlcl9wYXNzZWRbJ25h bWUnXV1bMF0gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHJhbl90ZXN0cyA9IHRl c3RfcmVzdWx0W3NlcnZlcl9wYXNzZWRbJ25hbWUnXV1bMF0gKyBcCisgICAgICAgICAgICAgICAg ICAgICAgICByYW5fdGVzdHMKKyAgICAgICAgICAgICAgICAgICAgZmFpbGVkX2Nhc2VzLnVwZGF0 ZSh0ZXN0X3Jlc3VsdFtzZXJ2ZXJfcGFzc2VkWyduYW1lJ11dWzFdKQorICAgICAgICAgICAgICAg ICAgICBza2lwcGVkX2Nhc2VzLnVwZGF0ZSh0ZXN0X3Jlc3VsdFtzZXJ2ZXJfcGFzc2VkWyduYW1l J11dWzJdKQorICAgICAgICAgICAgICAgICAgICBwYXNzZWRfY2FzZXMudXBkYXRlKHRlc3RfcmVz dWx0W3NlcnZlcl9wYXNzZWRbJ25hbWUnXV1bM10pCisgICAgICAgICAgICAgICAgdGVzdF9yZXN1 bHRbc2VydmVyX3Bhc3NlZFsnbmFtZSddXSA9IFtyYW5fdGVzdHMsIGZhaWxlZF9jYXNlcywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBw ZWRfY2FzZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwYXNzZWRfY2FzZXNdCisgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAg ICAgICAgICAgICAgcGFzcworCisgICAgICAgICMgQWRkIGZpbmFsIHJlc3VsdHMgc2VydmVyIHdp c2UgaW4gdGVzdF9yZXN1bHQgZGljdAorICAgICAgICB0ZXN0X3Jlc3VsdFtzZXJ2ZXJfcGFzc2Vk WyduYW1lJ11dID0gW3Jhbl90ZXN0cywgZmFpbGVkX2Nhc2VzLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBwZWRfY2FzZXMsIHBhc3NlZF9jYXNlc10K KworICAgICAgICAjIFNldCBlbXB0eSBsaXN0IGZvciAncGFzc2VkJyBwYXJhbWV0ZXIgZm9yIGVh Y2ggdGVzdFJ1bi4KKyAgICAgICAgIyBTbyB0aGF0IGl0IHdpbGwgbm90IGFwcGVuZCBzYW1lIHRl c3QgY2FzZSBuYW1lCisgICAgICAgIHVuaXR0ZXN0LnJlc3VsdC5UZXN0UmVzdWx0LnBhc3NlZCA9 IFtdCisKKyAgICAgICAgIyBEcm9wIHRoZSB0ZXN0aW5nIGRhdGFiYXNlIGNyZWF0ZWQgaW5pdGlh bGx5CisgICAgICAgIGlmIGNvbm5lY3Rpb246CisgICAgICAgICAgICB0ZXN0X3V0aWxzLmRyb3Bf ZGF0YWJhc2UoY29ubmVjdGlvbiwgdGVzdF9kYl9uYW1lKQorICAgICAgICAgICAgY29ubmVjdGlv bi5jbG9zZSgpCisKKyAgICAgICAgIyBEZWxldGUgdGVzdCBzZXJ2ZXIKKyAgICAgICAgdGVzdF91 dGlscy5kZWxldGVfdGVzdF9zZXJ2ZXIodGVzdF9jbGllbnQpCisgICAgZXhjZXB0IEV4Y2VwdGlv bjoKKyAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YyhmaWxlPXN5cy5zdGRlcnIpCisgICAgICAg IHByaW50KCJFeGNlcHRpb24gaW4gezB9Ii5mb3JtYXQodGhyZWFkaW5nLmN1cnJlbnRfdGhyZWFk KCkuaWRlbnQpKQorICAgIGZpbmFsbHk6CisgICAgICAgICMgRGVsZXRlIHdlYi1kcml2ZXIgaW5z dGFuY2UKKyAgICAgICAgdGhyZWFkX25hbWUgPSAicGFyYWxsZWxfdGVzdHMiICsgc2VydmVyX3Bh c3NlZFsnbmFtZSddCisgICAgICAgIGlmIHRocmVhZGluZy5jdXJyZW50VGhyZWFkKCkuZ2V0TmFt ZSgpID09IHRocmVhZF9uYW1lOgorICAgICAgICAgICAgZm9yIGQgaW4gZHJpdmVyX2luZm86Cisg ICAgICAgICAgICAgICAgaWYgZFswXSA9PSB0aHJlYWRpbmcuY3VycmVudFRocmVhZCgpLmlkZW50 OgorICAgICAgICAgICAgICAgICAgICBkWzFdLnF1aXQoKQorICAgICAgICAgICAgICAgICAgICBk cml2ZXJfaW5mby5yZW1vdmUoZCkKKyAgICAgICAgICAgICMgTmVlZCB0aW1lIGJ5IHNlbGVub2lk IHRvIGNsZWFuIHByZXZpb3VzIHRocmVhZCBiZWZvcmUgbmV3IHRocmVhZAorICAgICAgICAgICAg dGltZS5zbGVlcCgxMCkKKworICAgICAgICAjIFByaW50IGluZm8gYWJvdXQgY29tcGxldGVkIHRl c3RzCisgICAgICAgIHByaW50KAorICAgICAgICAgICAgIlxuPT09PT09PT09PT09PUNvbXBsZXRl ZCB0aGUgdGVzdCBjYXNlcyBmb3IgJyVzJz09PT09PT09PT09PT0iCisgICAgICAgICAgICAlIHNl cnZlcl9wYXNzZWRbJ25hbWUnXSwgZmlsZT1zeXMuc3RkZXJyKQorCisKIGlmIF9fbmFtZV9fID09 ICdfX21haW5fXyc6CiAgICAgIyBGYWlsdXJlIGRldGVjdGVkPwogICAgIGZhaWx1cmUgPSBGYWxz ZQpAQCAtNDIzLDcgKzUzOCw4IEBAIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgZmgg PSBsb2dnaW5nLkZpbGVIYW5kbGVyKENVUlJFTlRfUEFUSCArICcvJyArCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdyZWdyZXNzaW9uLmxvZycsICd3JywgJ3V0Zi04JykKICAgICBmaC5z ZXRMZXZlbChsb2dnaW5nLkRFQlVHKQotICAgIGZoLnNldEZvcm1hdHRlcihsb2dnaW5nLkZvcm1h dHRlcihjb25maWcuRklMRV9MT0dfRk9STUFUKSkKKyAgICBmaC5zZXRGb3JtYXR0ZXIobG9nZ2lu Zy5Gb3JtYXR0ZXIoJ1slKHRocmVhZClkXSAnICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uZmlnLkZJTEVfTE9HX0ZPUk1BVCkpCiAKICAgICBsb2dnZXIgPSBsb2dn aW5nLmdldExvZ2dlcigpCiAgICAgbG9nZ2VyLmFkZEhhbmRsZXIoZmgpCkBAIC00NTEsNjkgKzU2 NywxNDEgQEAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICAgICAgY292ID0gY292ZXJh Z2UuQ292ZXJhZ2UoY29uZmlnX2ZpbGU9Q09WRVJBR0VfQ09ORklHX0ZJTEUpCiAgICAgICAgIGNv di5zdGFydCgpCiAKLSAgICB0cnk6Ci0gICAgICAgIGZvciBzZXJ2ZXIgaW4gc2VydmVyc19pbmZv OgotICAgICAgICAgICAgcHJpbnQoIlxuPT09PT09PT09PT09PVJ1bm5pbmcgdGhlIHRlc3QgY2Fz ZXMgZm9yICclcyc9PT09PT09PT09PT09IgotICAgICAgICAgICAgICAgICAgJSBzZXJ2ZXJbJ25h bWUnXSwgZmlsZT1zeXMuc3RkZXJyKQotICAgICAgICAgICAgIyBDcmVhdGUgdGVzdCBzZXJ2ZXIK LSAgICAgICAgICAgIHNlcnZlcl9pbmZvcm1hdGlvbiA9IHRlc3RfdXRpbHMuY3JlYXRlX3BhcmVu dF9zZXJ2ZXJfbm9kZShzZXJ2ZXIpCi0KLSAgICAgICAgICAgICMgQ3JlYXRlIHRlc3QgZGF0YWJh c2Ugd2l0aCByYW5kb20gbnVtYmVyIHRvIGF2b2lkIGNvbmZsaWN0IGluCi0gICAgICAgICAgICAj IHBhcmFsbGVsIGV4ZWN1dGlvbiBvbiBkaWZmZXJlbnQgcGxhdGZvcm1zLiBUaGlzIGRhdGFiYXNl IHdpbGwgYmUKLSAgICAgICAgICAgICMgdXNlZCBhY3Jvc3MgYWxsIGZlYXR1cmUgdGVzdHMuCi0g ICAgICAgICAgICB0ZXN0X2RiX25hbWUgPSAiYWNjZXB0YW5jZV90ZXN0X2RiIiArIFwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cihyYW5kb20ucmFuZGludCgxMDAwMCwgNjU1MzUpKQot ICAgICAgICAgICAgY29ubmVjdGlvbiA9IHRlc3RfdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oCi0g ICAgICAgICAgICAgICAgc2VydmVyWydkYiddLAotICAgICAgICAgICAgICAgIHNlcnZlclsndXNl cm5hbWUnXSwKLSAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCi0gICAgICAg ICAgICAgICAgc2VydmVyWydob3N0J10sCi0gICAgICAgICAgICAgICAgc2VydmVyWydwb3J0J10s Ci0gICAgICAgICAgICAgICAgc2VydmVyWydzc2xtb2RlJ10KLSAgICAgICAgICAgICkKLQotICAg ICAgICAgICAgIyBBZGQgdGhlIHNlcnZlciB2ZXJzaW9uIGluIHNlcnZlciBpbmZvcm1hdGlvbgot ICAgICAgICAgICAgc2VydmVyX2luZm9ybWF0aW9uWydzZXJ2ZXJfdmVyc2lvbiddID0gY29ubmVj dGlvbi5zZXJ2ZXJfdmVyc2lvbgotICAgICAgICAgICAgc2VydmVyX2luZm9ybWF0aW9uWyd0eXBl J10gPSBzZXJ2ZXJbJ3R5cGUnXQotCi0gICAgICAgICAgICAjIERyb3AgdGhlIGRhdGFiYXNlIGlm IGFscmVhZHkgZXhpc3RzLgotICAgICAgICAgICAgdGVzdF91dGlscy5kcm9wX2RhdGFiYXNlKGNv bm5lY3Rpb24sIHRlc3RfZGJfbmFtZSkKLSAgICAgICAgICAgICMgQ3JlYXRlIGRhdGFiYXNlCi0g ICAgICAgICAgICB0ZXN0X3V0aWxzLmNyZWF0ZV9kYXRhYmFzZShzZXJ2ZXIsIHRlc3RfZGJfbmFt ZSkKLSAgICAgICAgICAgICMgQ29uZmlndXJlIHByZWZlcmVuY2VzIGZvciB0aGUgdGVzdCBjYXNl cwotICAgICAgICAgICAgdGVzdF91dGlscy5jb25maWd1cmVfcHJlZmVyZW5jZXMoCi0gICAgICAg ICAgICAgICAgZGVmYXVsdF9iaW5hcnlfcGF0aD1zZXJ2ZXJbJ2RlZmF1bHRfYmluYXJ5X3BhdGhz J10pCi0KLSAgICAgICAgICAgIHN1aXRlID0gZ2V0X3N1aXRlKHRlc3RfbW9kdWxlX2xpc3QsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0ZXN0X2NsaWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl cnZlcl9pbmZvcm1hdGlvbiwgdGVzdF9kYl9uYW1lKQotICAgICAgICAgICAgdGVzdHMgPSB1bml0 dGVzdC5UZXh0VGVzdFJ1bm5lcihzdHJlYW09c3lzLnN0ZGVyciwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb25zPVRydWUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmJvc2l0eT0yKS5ydW4oc3VpdGUp Ci0KLSAgICAgICAgICAgIHJhbl90ZXN0cywgZmFpbGVkX2Nhc2VzLCBza2lwcGVkX2Nhc2VzLCBw YXNzZWRfY2FzZXMgPSBcCi0gICAgICAgICAgICAgICAgZ2V0X3Rlc3RzX3Jlc3VsdCh0ZXN0cykK LSAgICAgICAgICAgIHRlc3RfcmVzdWx0W3NlcnZlclsnbmFtZSddXSA9IFtyYW5fdGVzdHMsIGZh aWxlZF9jYXNlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz a2lwcGVkX2Nhc2VzLCBwYXNzZWRfY2FzZXNdCi0KLSAgICAgICAgICAgICMgU2V0IGVtcHR5IGxp c3QgZm9yICdwYXNzZWQnIHBhcmFtZXRlciBmb3IgZWFjaCB0ZXN0UnVuLgotICAgICAgICAgICAg IyBTbyB0aGF0IGl0IHdpbGwgbm90IGFwcGVuZCBzYW1lIHRlc3QgY2FzZSBuYW1lCi0gICAgICAg ICAgICB1bml0dGVzdC5yZXN1bHQuVGVzdFJlc3VsdC5wYXNzZWQgPSBbXQotCi0gICAgICAgICAg ICBpZiBsZW4oZmFpbGVkX2Nhc2VzKSA+IDA6Ci0gICAgICAgICAgICAgICAgZmFpbHVyZSA9IFRy dWUKLQotICAgICAgICAgICAgIyBEcm9wIHRoZSB0ZXN0aW5nIGRhdGFiYXNlIGNyZWF0ZWQgaW5p dGlhbGx5Ci0gICAgICAgICAgICBpZiBjb25uZWN0aW9uOgotICAgICAgICAgICAgICAgIHRlc3Rf dXRpbHMuZHJvcF9kYXRhYmFzZShjb25uZWN0aW9uLCB0ZXN0X2RiX25hbWUpCi0gICAgICAgICAg ICAgICAgY29ubmVjdGlvbi5jbG9zZSgpCi0KLSAgICAgICAgICAgICMgRGVsZXRlIHRlc3Qgc2Vy dmVyCi0gICAgICAgICAgICB0ZXN0X3V0aWxzLmRlbGV0ZV90ZXN0X3NlcnZlcih0ZXN0X2NsaWVu dCkKLSAgICBleGNlcHQgU3lzdGVtRXhpdDoKLSAgICAgICAgaWYgaGFuZGxlX2NsZWFudXA6Ci0g ICAgICAgICAgICBoYW5kbGVfY2xlYW51cCgpCisgICAgIyBDaGVjayBpZiBmZWF0dXJlIHRlc3Rz IGluY2x1ZGVkICYgcGFyYWxsZWwgdGVzdHMgc3dpdGNoIHBhc3NlZAorICAgIGlmIHRlc3RfdXRp bHMuaXNfZmVhdHVyZV90ZXN0X2luY2x1ZGVkKGFyZ3MpIGFuZCBcCisgICAgICAgICAgICB0ZXN0 X3V0aWxzLmlzX3BhcmFsbGVsX3VpX3Rlc3RzKGFyZ3MpOgorCisgICAgICAgICMgR2V0IHNlbGVu aXVtIGdyaWQgc3RhdHVzICYgbGlzdCBvZiBhdmFpbGFibGUgYnJvd3NlciBvdXQgcGFzc2VkCisg ICAgICAgIHNlbGVuaXVtX2dyaWRfc3RhdHVzLCBsaXN0X29mX2Jyb3dzZXJzIFwKKyAgICAgICAg ICAgID0gdGVzdF91dGlscy5nZXRfc2VsZW5pdW1fZ3JpZF9zdGF0dXNfYW5kX2Jyb3dzZXJfbGlz dCgKKyAgICAgICAgICAgICAgICB0ZXN0X3NldHVwLmNvbmZpZ19kYXRhWydzZWxlbm9pZF9pbmZv J11bJ3NlbGVub2lkX3VybCddKQorICAgICAgICAjIGxpc3Qgb2YgZmlsZXMgY29uc2lzdGluZyB0 ZXN0cyB0aGF0IG5lZWRzIHRvIGJlCisgICAgICAgICMgZXhlY3V0ZWQgc2VxdWVudGlhbGx5Cisg ICAgICAgIHNlcXVlbnRpYWxfdGVzdHNfZmlsZSA9IFsKKyAgICAgICAgICAgICdwZ2FkbWluLmZl YXR1cmVfdGVzdHMucGdfdXRpbGl0aWVzX2JhY2t1cF9yZXN0b3JlX3Rlc3QnLAorICAgICAgICAg ICAgJ3BnYWRtaW4uZmVhdHVyZV90ZXN0cy5wZ191dGlsaXRpZXNfbWFpbnRlbmFuY2VfdGVzdCcs CisgICAgICAgICAgICAncGdhZG1pbi5mZWF0dXJlX3Rlc3RzLmtleWJvYXJkX3Nob3J0Y3V0X3Rl c3QnLAorICAgICAgICAgICAgJ3JlZ3Jlc3Npb24ucmVfc3FsLnRlc3RzLnRlc3RfcmVzcWwnXQor ICAgICAgICAjIElmIHNlbGVuaXVtIGdyaWQgaXMgdXAgJiBicm93c2VycyBhcmUgYXZhaWxhYmxl CisgICAgICAgIGlmIHNlbGVuaXVtX2dyaWRfc3RhdHVzIGFuZCBsZW4obGlzdF9vZl9icm93c2Vy cykgPiAwOgorCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgIyBydW4gYWNyb3Nz IGJyb3dzZXJzCisgICAgICAgICAgICAgICAgZm9yIGJyb3dzZXJfaW5mbyBpbiBsaXN0X29mX2Jy b3dzZXJzOgorICAgICAgICAgICAgICAgICAgICAjIGJyb3dzZXIgaW5mbworICAgICAgICAgICAg ICAgICAgICBicm93c2VyX25hbWUgPSBicm93c2VyX2luZm9bIm5hbWUiXS5sb3dlcigpCisgICAg ICAgICAgICAgICAgICAgIGJyb3dzZXJfdmVyc2lvbiA9IGJyb3dzZXJfaW5mb1sidmVyc2lvbiJd CisKKyAgICAgICAgICAgICAgICAgICAgIyAgbGlzdCBvZiB0ZXN0cyBjYW4gYmUgZXhlY3V0ZWQg aW4gcGFyYWxsZWwKKyAgICAgICAgICAgICAgICAgICAgcGFyYWxsZWxfdGVzdHMgPSBsaXN0KHRl c3RfbW9kdWxlX2xpc3QpCisgICAgICAgICAgICAgICAgICAgIGZvciBtb2R1bGUgaW4gdGVzdF9t b2R1bGVfbGlzdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHN0cihtb2R1bGVbMF0pIGlu IHNlcXVlbnRpYWxfdGVzdHNfZmlsZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJh bGxlbF90ZXN0cy5yZW1vdmUobW9kdWxlKQorCisgICAgICAgICAgICAgICAgICAgICMgIGxpc3Qg b2YgdGVzdHMgY2FuIGJlIGV4ZWN1dGVkIGluIHNlcXVlbnRpYWxseQorICAgICAgICAgICAgICAg ICAgICBzZXF1ZW50aWFsX3Rlc3RzID0gbGlzdCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGZp bHRlcihsYW1iZGEgaTogaSBub3QgaW4gcGFyYWxsZWxfdGVzdHMsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGVzdF9tb2R1bGVfbGlzdCkpCisKKyAgICAgICAgICAgICAgICAgICAg cHJpbnQoCisgICAgICAgICAgICAgICAgICAgICAgICAiPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIKKyAgICAgICAgICAgICAgICAgICAgICAgICI9 PT09PT09PT09PT09PT09PT1cbiIsCisgICAgICAgICAgICAgICAgICAgICAgICBmaWxlPXN5cy5z dGRlcnIKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICBwcmludCgK KyAgICAgICAgICAgICAgICAgICAgICAgICJUb3RhbCBUZXN0cyAjIHswfVxuUGFyYWxsZWwgVGVz dHMgIyB7MX0sIFNlcXVlbnRpYWwgIgorICAgICAgICAgICAgICAgICAgICAgICAgIlRlc3RzICMg ezJ9Ii5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKHRlc3RfbW9kdWxl X2xpc3QpLCBsZW4ocGFyYWxsZWxfdGVzdHMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxlbihzZXF1ZW50aWFsX3Rlc3RzKSksCisgICAgICAgICAgICAgICAgICAgICAgICBmaWxlPXN5 cy5zdGRlcnIpCisgICAgICAgICAgICAgICAgICAgIHByaW50KCJCcm93c2VyOiBbTmFtZTp7MH0s IFZlcnNpb246IHsxfV0iLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXJf bmFtZS5jYXBpdGFsaXplKCksIGJyb3dzZXJfdmVyc2lvbiksCisgICAgICAgICAgICAgICAgICAg ICAgICBmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgICAgICAgICAgICAgIHByaW50KAorICAgICAg ICAgICAgICAgICAgICAgICAgIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0iCisgICAgICAgICAgICAgICAgICAgICAgICAiPT09PT09PT09PT09PT09 PT09XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgZmlsZT1zeXMuc3RkZXJyCisgICAgICAg ICAgICAgICAgICAgICkKKworICAgICAgICAgICAgICAgICAgICAjIFJ1bm5pbmcgUGFyYWxsZWwg dGVzdHMKKyAgICAgICAgICAgICAgICAgICAgaWYgbGVuKHBhcmFsbGVsX3Rlc3RzKSA+IDA6Cisg ICAgICAgICAgICAgICAgICAgICAgICAjIENyZWF0ZSBhcHAgZm9ybSBzb3VyY2UgY29kZQorICAg ICAgICAgICAgICAgICAgICAgICAgYXBwX3N0YXJ0ZXJfbG9jYWwgPSBBcHBTdGFydGVyKE5vbmUs IGNvbmZpZykKKyAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudF91cmwgPSBhcHBfc3RhcnRl cl9sb2NhbC5zdGFydF9hcHAoKQorCisgICAgICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHNydiBpbiBzZXJ2ZXJzX2luZm86CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMgR2V0IGRyaXZlciBpbnN0YW5jZSBhdCBzZXJ2ZXIg bGV2ZWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJpdmVyX29iaiA9IHRlc3Rf dXRpbHMuZ2V0X3JlbW90ZV93ZWJkcml2ZXIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBicm93c2VyX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBicm93c2VyX3ZlcnNpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz cnZbJ25hbWUnXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF91dGlscy5s YXVuY2hfdXJsX2luX2Jyb3dzZXIoZHJpdmVyX29iaiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50X3VybCwgMCkK KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJlYWRzID0gW10KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdF9uYW1lID0gInBhcmFsbGVsX3Rlc3RzIiArIHNydlsn bmFtZSddCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocmVhZCA9IHRocmVhZGlu Zy5UaHJlYWQodGFyZ2V0PXJ1bl90ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9dF9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw YXJhbGxlbF90ZXN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3J2LCBkcml2ZXJfb2JqKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGhyZWFkcy5hcHBlbmQodGhyZWFkKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0aHJlYWQuc3RhcnQoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZvciB0aHJlYWQgaW4gdGhyZWFkczoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGhyZWFkLmpvaW4oKQorICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9c3lz LnN0ZGVycikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgiRXhjZXB0aW9uIGlu IHRocmVhZCB7MH0iLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhy ZWFkLmlkZW50KCkpKQorCisgICAgICAgICAgICAgICAgICAgICMgU2VxdWVudGlhbCBUZXN0cwor ICAgICAgICAgICAgICAgICAgICBpZiBsZW4oc2VxdWVudGlhbF90ZXN0cykgPiAwOgorICAgICAg ICAgICAgICAgICAgICAgICAgIyBHZXQgZHJpdmVyIGluc3RhbmNlCisgICAgICAgICAgICAgICAg ICAgICAgICBkcml2ZXJfb2JqMiA9IHRlc3RfdXRpbHMuZ2V0X3JlbW90ZV93ZWJkcml2ZXIoCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJyb3dzZXJfdmVyc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiU2VxdWVudGlhbF9UZXN0cyIpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3V0aWxz LmxhdW5jaF91cmxfaW5fYnJvd3Nlcihkcml2ZXJfb2JqMiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudF91cmwsIDApCisgICAg ICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdF9u YW1lID0gInNlcXVlbnRpYWxfdGVzdHMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9y IHNydiBpbiBzZXJ2ZXJzX2luZm86CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo cmVhZCA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PXJ1bl90ZXN0LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9dF9uYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFyZ3M9KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZXF1ZW50aWFsX3Rlc3RzLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcnYsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyaXZlcl9v YmoyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyZWFkLnN0YXJ0KCkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyZWFkLmpvaW4oKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRyaXZlcl9vYmoyLnF1aXQoKQorICAgICAgICAgICAgICAgICAgICAg ICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjZWJh Y2sucHJpbnRfZXhjKGZpbGU9c3lzLnN0ZGVycikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwcmludCgiRXhjZXB0aW9uIGluIHRocmVhZCB7MH0iLmZvcm1hdCgKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGhyZWFkLmlkZW50KCkpKQorCisgICAgICAgICAgICAgICAgICAg ICMgQ2xlYW4gdXAgZW52aXJvbm1ldG4KKyAgICAgICAgICAgICAgICAgICAgaWYgYXBwX3N0YXJ0 ZXJfbG9jYWw6CisgICAgICAgICAgICAgICAgICAgICAgICBhcHBfc3RhcnRlcl9sb2NhbC5zdG9w X2FwcCgpCisgICAgICAgICAgICBleGNlcHQgU3lzdGVtRXhpdDoKKyAgICAgICAgICAgICAgICBp ZiBhcHBfc3RhcnRlcl9sb2NhbDoKKyAgICAgICAgICAgICAgICAgICAgYXBwX3N0YXJ0ZXJfbG9j YWwuc3RvcF9hcHAoKQorICAgICAgICAgICAgICAgIGlmIGhhbmRsZV9jbGVhbnVwOgorICAgICAg ICAgICAgICAgICAgICBoYW5kbGVfY2xlYW51cCgpCisgICAgZWxzZToKKyAgICAgICAgdHJ5Ogor ICAgICAgICAgICAgZm9yIHNlcnZlciBpbiBzZXJ2ZXJzX2luZm86CisgICAgICAgICAgICAgICAg dGhyZWFkID0gdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9cnVuX3Rlc3QsIGFyZ3M9KAorICAgICAg ICAgICAgICAgICAgICB0ZXN0X21vZHVsZV9saXN0LCBzZXJ2ZXIsIGRyaXZlcikpCisgICAgICAg ICAgICAgICAgdGhyZWFkLnN0YXJ0KCkKKyAgICAgICAgICAgICAgICB0aHJlYWQuam9pbigpCisg ICAgICAgIGV4Y2VwdCBTeXN0ZW1FeGl0OgorICAgICAgICAgICAgaWYgaGFuZGxlX2NsZWFudXA6 CisgICAgICAgICAgICAgICAgaGFuZGxlX2NsZWFudXAoKQorCisgICAgIyBQYXVzZSBiZWZvcmUg cHJpbnRpbmcgcmVzdWx0IGluIG9yZGVyIG5vdCB0byBtaXggb3V0cHV0CisgICAgdGltZS5zbGVl cCgzKQogCiAgICAgcHJpbnQoCiAgICAgICAgICJcbj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIKQEAgLTU0Miw2ICs3MzAsOCBA QCBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2tpcHBlZF9jYXNlcy5pdGVtcygpKS52YWx1ZXMoKSkKICAgICAgICAgdG90YWxfcGFz c2VkX2Nhc2VzID0gaW50KAogICAgICAgICAgICAgdGVzdF9yZXN1bHRbc2VydmVyX3Jlc11bMF0p IC0gdG90YWxfZmFpbGVkIC0gdG90YWxfc2tpcHBlZAorICAgICAgICBpZiBsZW4oZmFpbGVkX2Nh c2VzKSA+IDA6CisgICAgICAgICAgICBmYWlsdXJlID0gVHJ1ZQogCiAgICAgICAgIHByaW50KAog ICAgICAgICAgICAgIiVzOlxuXG5cdCVzIHRlc3QlcyBwYXNzZWRcblx0JXMgdGVzdCVzIGZhaWxl ZCVzJXMiCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi90ZXN0X2NvbmZpZy5qc29uLmluIGIv d2ViL3JlZ3Jlc3Npb24vdGVzdF9jb25maWcuanNvbi5pbgppbmRleCAwYTE1MWU2MzMuLjA3YmZh Y2Q3YiAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vdGVzdF9jb25maWcuanNvbi5pbgorKysg Yi93ZWIvcmVncmVzc2lvbi90ZXN0X2NvbmZpZy5qc29uLmluCkBAIC0xLDYgKzEsOCBAQAogewog ICAiaGVhZGxlc3NfY2hyb21lIjogZmFsc2UsCiAgICJkZWZhdWx0X2Jyb3dzZXIiOiAiQ2hyb21l IiwKKyAgInNlbGVub2lkX2luZm8iOnsiY3Jvc3NfQnJvd3NlcnMiOiBbeyJuYW1lIjogImJyb3dz ZXJfbmFtZSIsInZlcnNpb24iOiAiYnJvd3NlcnJfdmVyc2lvbiJ9XSwKKyAgICAgICAgICAgICAg ICAgICAgICAic2VsZW5vaWRfdXJsIjogIlNlbGVub2lkIFVybCJ9LAogICAicGdBZG1pbjRfbG9n aW5fY3JlZGVudGlhbHMiOiB7CiAgICAgIm5ld19wYXNzd29yZCI6ICJORVdQQVNTV09SRCIsCiAg ICAgImxvZ2luX3Bhc3N3b3JkIjogIlBBU1NXT1JEIiwK --000000000000ddce0805a3287434--