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 1llwn5-00051M-OQ for pgadmin-hackers@arkaria.postgresql.org; Wed, 26 May 2021 16:53:56 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1llwn4-0002v5-Ii for pgadmin-hackers@arkaria.postgresql.org; Wed, 26 May 2021 16:53:54 +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 1llwn4-0002uw-7H for pgadmin-hackers@lists.postgresql.org; Wed, 26 May 2021 16:53:54 +0000 Received: from mail-lj1-x22a.google.com ([2a00:1450:4864:20::22a]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1llwn1-0001rp-6b for pgadmin-hackers@postgresql.org; Wed, 26 May 2021 16:53:53 +0000 Received: by mail-lj1-x22a.google.com with SMTP id t17so2543566ljd.9 for ; Wed, 26 May 2021 09:53:50 -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=q+1apftLX8VN4eETEkaVOfvkQbBNhU+L309yKbR4n2k=; b=0mkbuVVFr7aT+Fs5inyVxv224L+GdiddAX9ACoXb4jHCkANnkimXmaH6DUBPQdzoho JeObN5LPbJj5TzNRUzRYgI4agpFHQNCfi/pYi8obVV4GSaUv3Gj+jiP4PEY/+gdhmTEb 7AokOBLCHVLBcMIiM3pkK9Uu2zY0SGfEg0AVMJqdVAAwsZnlbQixVSdNUaAQlGrZAuVb WG0Dg2gcSn54WE6KqzKQneAIRZknegMe7WB0oR1zKWYAd7PjWxsTl13i9XnZxm6iqcTo qQ0cB1gbbnpnNAnRr1/jV1fLNHxYYWukloBwzQg6XX4mQGV5G7yCtkfwpGBQIJ7gPi4e zivQ== 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=q+1apftLX8VN4eETEkaVOfvkQbBNhU+L309yKbR4n2k=; b=n7mUETSMsXOoy26kIpv+5+rIhkoL9Vn6ZKcNT3/QmNbYmu6xP5Vd8hlCVF3SopzVrT 8q6hlovJ1oZRg2foA7At9c/KqPmjs+Y6XLxgnyAWPLKG+51OHf4Hqutx3qv4LfwN9mUt MJ+JJ37g43esHay4iVpPpI1bpjoWBPYy/fcpQ36nUxSop6Xa2kUYbMePMUlT30qvM/d4 U6IrkU5xWt7mYewV4Y5Q4FCAgtu/8WGYNnbGF7jK1JG+3Q/SiOgzw4bH0SCUW1AH+S6d LPoOayL8xHdbvWh0KmNshtmDBbaqQEsvFNhnxRb4YSPthG/4/aC6f7yVLZxqVB6Vc0/F kUMw== X-Gm-Message-State: AOAM531oYZkZG09qgPR8wj5nrxnsTkvQx9EKLSuEqLsdSUYj7tPecISO qmRqKVdDchS2dFCBUsLaFF8xgpQIscWV8v26tPnp6T09lVFltnCTT0cZKYTlWnxrExrMJY8N735 oyPuw5MY+GZ/w+IvvOjui0IvsPQA2Hl5LvLa/L5jguydOJsd7d3/Qjpy9dbHfyljSwh84U8Pc4z 1hAKwQ/mwl5ZuZx0CLrdSgvvf9Z8Kr5Vt3B+ztBtOAYChtcQcqI5vvIcgKnwZVxOP4tA== X-Google-Smtp-Source: ABdhPJzL/ZzfccFH7GylenB0nV1nZMaGA7xCwR2jCPtcqnCGrjTozJASR/Mcxlsxr6Kq/i9piFuvE97gm5+YWrjNtAw= X-Received: by 2002:a2e:9588:: with SMTP id w8mr2921657ljh.320.1622048029472; Wed, 26 May 2021 09:53:49 -0700 (PDT) MIME-Version: 1.0 From: Yogesh Mahajan Date: Wed, 26 May 2021 22:23:12 +0530 Message-ID: Subject: [pgAdmin][Patch] - Feature Test failures fix To: pgadmin-hackers Content-Type: multipart/mixed; boundary="0000000000009b2eea05c33e7cff" X-CLOUD-SEC-AV-Info: enterprisedb,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: Archived-At: Precedence: bulk --0000000000009b2eea05c33e7cff Content-Type: multipart/alternative; boundary="0000000000009b2ee805c33e7cfd" --0000000000009b2ee805c33e7cfd Content-Type: text/plain; charset="UTF-8" Hi, Please find the patch which modifies the way to execute feature tests in parallel.(Selenoid test). To run selenoid tests, pgadmin should be configured in SERVER_MODE. Thanks, Yogesh Mahajan EnterpriseDB --0000000000009b2ee805c33e7cfd Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

Please= find the patch which modifies the way to execute feature tests in parallel= .(Selenoid test).
To run selenoid tests, pgadmin should be = configured in SERVER_MODE.

Thanks,
Yogesh Mahajan
EnterpriseDB
--0000000000009b2ee805c33e7cfd-- --0000000000009b2eea05c33e7cff Content-Type: application/octet-stream; name="Feature_Test_Fix_Run_In_Server_Mode_Only_v1.patch" Content-Disposition: attachment; filename="Feature_Test_Fix_Run_In_Server_Mode_Only_v1.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kp5phm5a0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvYnJvd3Nlcl90b29sX2Jhcl90 ZXN0LnB5IGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9icm93c2VyX3Rvb2xfYmFyX3Rlc3Qu cHkKaW5kZXggNmNhODhjNWQwLi5hNDU0NGRhZjEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Zl YXR1cmVfdGVzdHMvYnJvd3Nlcl90b29sX2Jhcl90ZXN0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Zl YXR1cmVfdGVzdHMvYnJvd3Nlcl90b29sX2Jhcl90ZXN0LnB5CkBAIC04OCw2ICs4OCw3IEBAIGNs YXNzIEJyb3dzZXJUb29sQmFyRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAg ICAgICBCcm93c2VyVG9vbEJhckxvY2F0b3JzLnZpZXdfdGFibGVfZGF0YV9idXR0b25fY3NzKSwK ICAgICAgICAgICAgIChCeS5DU1NfU0VMRUNUT1IsIEJyb3dzZXJUb29sQmFyTG9jYXRvcnMudmll d19kYXRhX3BhbmVsX2NzcykpLAogICAgICAgICAgICAgJ1ZpZXcvRWRpdCBEYXRhIHRhYiBkaWQg bm90IG9wZW4gYWZ0ZXIgY2xpY2tpbmcgVmlldy9FZGl0IGJ1dHRvbi4nKQorICAgICAgICBzZWxm LnBhZ2UuY2xvc2VfcXVlcnlfdG9vbChwcm9tcHQ9RmFsc2UpCiAKICAgICBkZWYgdGVzdF9maWx0 ZXJlZF9yb3dzX3Rvb2xfYnV0dG9uKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydFRydWUoc2Vs Zi5wYWdlLnJldHJ5X2NsaWNrKApAQCAtOTYsMyArOTcsNCBAQCBjbGFzcyBCcm93c2VyVG9vbEJh ckZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgICAgICAoQnkuQ1NTX1NFTEVD VE9SLCBCcm93c2VyVG9vbEJhckxvY2F0b3JzLmZpbHRlcl9hbGVydGlmeV9ib3hfY3NzKSksCiAg ICAgICAgICAgICAnRmlsdGVyIGRpYWxvZ3VlIGRpZCBub3Qgb3BlbiBvbiBjbGlja2luZyBmaWx0 ZXIgYnV0dG9uLicpCiAgICAgICAgIHNlbGYucGFnZS5jbGlja19tb2RhbCgnQ2FuY2VsJykKKyAg ICAgICAgc2VsZi5wYWdlLmNsb3NlX3F1ZXJ5X3Rvb2wocHJvbXB0PUZhbHNlKQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9maWxlX21hbmFnZXJfdGVzdC5weSBiL3dlYi9w Z2FkbWluL2ZlYXR1cmVfdGVzdHMvZmlsZV9tYW5hZ2VyX3Rlc3QucHkKaW5kZXggODMyYzk2YjBl Li5hYzlmMjVjOWYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvZmlsZV9t YW5hZ2VyX3Rlc3QucHkKKysrIGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9maWxlX21hbmFn ZXJfdGVzdC5weQpAQCAtNDEsNyArNDEsMTAgQEAgY2xhc3MgQ2hlY2tGaWxlTWFuYWdlckZlYXR1 cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgIHNlbGYud2FpdCA9IFdlYkRyaXZlcldh aXQoc2VsZi5wYWdlLmRyaXZlciwgMTApCiAgICAgICAgIGZpbGVuYW1lID0gc2VsZi5zZXJ2ZXJf aW5mb3JtYXRpb25bJ3R5cGUnXSArIFwKICAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pbmZv cm1hdGlvblsnc2VydmVyX3ZlcnNpb24nXSkKLSAgICAgICAgc2VsZi5YU1NfRklMRSA9ICcvdG1w LzxpbWcgc3JjPXggJyArIGZpbGVuYW1lICsgJz1hbGVydCgiMSIpPi5zcWwnCisgICAgICAgIGlm IHNlbGYucGFyYWxsZWxfdWlfdGVzdHM6CisgICAgICAgICAgICBzZWxmLlhTU19GSUxFID0gJy88 aW1nIHNyYz14ICcgKyBmaWxlbmFtZSArICc9YWxlcnQoIjEiKT4uc3FsJworICAgICAgICBlbHNl OgorICAgICAgICAgICAgc2VsZi5YU1NfRklMRSA9ICcvdG1wLzxpbWcgc3JjPXggJyArIGZpbGVu YW1lICsgJz1hbGVydCgiMSIpPi5zcWwnCiAgICAgICAgICMgUmVtb3ZlIGFueSBwcmV2aW91cyBm aWxlCiAgICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKHNlbGYuWFNTX0ZJTEUpOgogICAgICAgICAg ICAgb3MucmVtb3ZlKHNlbGYuWFNTX0ZJTEUpCkBAIC05MiwyMSArOTUsMTQgQEAgY2xhc3MgQ2hl Y2tGaWxlTWFuYWdlckZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgIHNlbGYu cGFnZS5maWxsX2lucHV0X2J5X2Nzc19zZWxlY3RvcigKICAgICAgICAgICAgIFF1ZXJ5VG9vbExv Y2F0b3JzLmlucHV0X2ZpbGVfcGF0aF9jc3MsCiAgICAgICAgICAgICAiL3RtcCIsIGtleV9hZnRl cl9pbnB1dD1LZXlzLlJFVFVSTikKKyAgICAgICAgdGltZS5zbGVlcCgyKQorCisgICAgICAgIHNl bGYud2FpdC51bnRpbChFQy52aXNpYmlsaXR5X29mX2VsZW1lbnRfbG9jYXRlZCgKKyAgICAgICAg ICAgIChCeS5DU1NfU0VMRUNUT1IsIFF1ZXJ5VG9vbExvY2F0b3JzLnNlbGVjdF9maWxlX2NvbnRl bnRfY3NzKSkpCisKKyAgICAgICAgdGFibGUgPSBzZWxmLnBhZ2UuZHJpdmVyLmZpbmRfZWxlbWVu dF9ieV9jc3Nfc2VsZWN0b3IoCisgICAgICAgICAgICBRdWVyeVRvb2xMb2NhdG9ycy5zZWxlY3Rf ZmlsZV9jb250ZW50X2NzcykKIAotICAgICAgICBpZiBzZWxmLnBhZ2UuZHJpdmVyLmNhcGFiaWxp dGllc1snYnJvd3Nlck5hbWUnXSA9PSAnZmlyZWZveCc6Ci0gICAgICAgICAgICB0YWJsZSA9IHNl bGYucGFnZS53YWl0X2Zvcl9lbGVtZW50X3RvX3JlbG9hZCgKLSAgICAgICAgICAgICAgICBsYW1i ZGEgZHJpdmVyOiBkcml2ZXIuZmluZF9lbGVtZW50X2J5X2Nzc19zZWxlY3RvcigKLSAgICAgICAg ICAgICAgICAgICAgUXVlcnlUb29sTG9jYXRvcnMuc2VsZWN0X2ZpbGVfY29udGVudF9jc3MpCi0g ICAgICAgICAgICApCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLndhaXQudW50aWwo RUMudmlzaWJpbGl0eV9vZl9lbGVtZW50X2xvY2F0ZWQoCi0gICAgICAgICAgICAgICAgKEJ5LkNT U19TRUxFQ1RPUiwgUXVlcnlUb29sTG9jYXRvcnMuc2VsZWN0X2ZpbGVfY29udGVudF9jc3MpKSkK LSAgICAgICAgICAgIHNlbGYud2FpdC51bnRpbChsYW1iZGEgZWxlbWVudDoKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9jc3Nfc2Vs ZWN0b3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbbmFtZT1ob21lXScpLmlz X2VuYWJsZWQoKSkKLQotICAgICAgICAgICAgdGFibGUgPSBzZWxmLnBhZ2UuZHJpdmVyLmZpbmRf ZWxlbWVudF9ieV9jc3Nfc2VsZWN0b3IoCi0gICAgICAgICAgICAgICAgUXVlcnlUb29sTG9jYXRv cnMuc2VsZWN0X2ZpbGVfY29udGVudF9jc3MpCiAgICAgICAgIHJldHJ5X2NvdW50ID0gMAogICAg ICAgICB3aGlsZSByZXRyeV9jb3VudCA8IDU6CiAgICAgICAgICAgICB0cnk6CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3RhYmxlX2RkbF9mZWF0dXJlX3Rlc3QucHkgYi93 ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3RhYmxlX2RkbF9mZWF0dXJlX3Rlc3QucHkKaW5kZXgg MGNlZGNmNmY5Li5kMTkxMDE5Y2EgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVz dHMvdGFibGVfZGRsX2ZlYXR1cmVfdGVzdC5weQorKysgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rl c3RzL3RhYmxlX2RkbF9mZWF0dXJlX3Rlc3QucHkKQEAgLTQ2LDggKzQ2LDggQEAgY2xhc3MgVGFi bGVEZGxGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAgICAjIFdhaXQgdGlsbCBk YXRhIGlzIGRpc3BsYXllZCBpbiBTUUwgVGFiCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxm LnBhZ2UuY2hlY2tfaWZfZWxlbWVudF9leGlzdF9ieV94cGF0aCgKICAgICAgICAgICAgICIvLypb Y29udGFpbnMoQGNsYXNzLCdDb2RlTWlycm9yLWxpbmVzJykgYW5kICIKLSAgICAgICAgICAgICJj b250YWlucyguLCdDUkVBVEUgVEFCTEUgcHVibGljLiVzJyldIiAlIHNlbGYudGVzdF90YWJsZV9u YW1lLAotICAgICAgICAgICAgMTApLCAiTm8gZGF0YSBkaXNwbGF5ZWQgaW4gU1FMIHRhYiIpCisg ICAgICAgICAgICAiY29udGFpbnMoLiwnQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgcHVibGlj LiVzJyldIgorICAgICAgICAgICAgJSBzZWxmLnRlc3RfdGFibGVfbmFtZSwgMTApLCAiTm8gZGF0 YSBkaXNwbGF5ZWQgaW4gU1FMIHRhYiIpCiAKICAgICBkZWYgYWZ0ZXIoc2VsZik6CiAgICAgICAg IHNlbGYucGFnZS5yZW1vdmVfc2VydmVyKHNlbGYuc2VydmVyKQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vdXRpbHMvcm91dGUucHkgYi93ZWIvcGdhZG1pbi91dGlscy9yb3V0ZS5weQppbmRleCAy ODk2YTg1YjUuLmQ2MWE5N2I0OSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdXRpbHMvcm91dGUu cHkKKysrIGIvd2ViL3BnYWRtaW4vdXRpbHMvcm91dGUucHkKQEAgLTE0OCw2ICsxNDgsOSBAQCBj bGFzcyBCYXNlVGVzdEdlbmVyYXRvcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHNldERy aXZlcihzZWxmLCBkcml2ZXIpOgogICAgICAgICBzZWxmLmRyaXZlciA9IGRyaXZlcgogCisgICAg ZGVmIHNldFBhcmFsbGVsVUlfdGVzdHMoc2VsZiwgcGFyYWxsZWxfdWlfdGVzdHMpOgorICAgICAg ICBzZWxmLnBhcmFsbGVsX3VpX3Rlc3RzID0gcGFyYWxsZWxfdWlfdGVzdHMKKwogICAgIGRlZiBz ZXRTZXJ2ZXJJbmZvcm1hdGlvbihzZWxmLCBzZXJ2ZXJfaW5mb3JtYXRpb24pOgogICAgICAgICBz ZWxmLnNlcnZlcl9pbmZvcm1hdGlvbiA9IHNlcnZlcl9pbmZvcm1hdGlvbgogCmRpZmYgLS1naXQg YS93ZWIvcmVncmVzc2lvbi9SRUFETUUgYi93ZWIvcmVncmVzc2lvbi9SRUFETUUKaW5kZXggYzUy ZWY5NDc4Li5hN2U0MjMwYTIgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL1JFQURNRQorKysg Yi93ZWIvcmVncmVzc2lvbi9SRUFETUUKQEAgLTE0Miw3ICsxNDIsOCBAQCBQeXRob24gVGVzdHM6 CiAgICdwZ2FkbWluNC93ZWIvcGdhZG1pbi91dGlscy90ZXN0LnB5JyBmaWxlLgogCiAtIFRvIHJ1 biBGZWF0dXJlIFRlc3RzIGluIHBhcmFsbGVsIHVzaW5nIHNlbGVub2lkKGdyaWQgKyBkb2NrZXIp LCBzZWxlbm9pZAotICBuZWVkIHRvIGJlIGluc3RhbGxlZC4gU3RlcHMgdG8gaW5zdGFsbCBzZWxl bm9pZCAtCisgIG5lZWQgdG8gYmUgaW5zdGFsbGVkIG5hZCBzaG91bGQgYmUgcnVuIG9ubHkgd2l0 aCBTRVJWRVJfTU9ERT1UcnVlLgorICBTdGVwcyB0byBpbnN0YWxsIHNlbGVub2lkIC0KIAogICAt IEluc3RhbGwgJiBTdGFydCBkb2NrZXIKICAgICAkeXVtIC15IGluc3RhbGwgZG9ja2VyIGRvY2tl ci1yZWdpc3RyeQpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vZmVhdHVyZV91dGlscy9iYXNl X2ZlYXR1cmVfdGVzdC5weSBiL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVfdXRpbHMvYmFzZV9mZWF0 dXJlX3Rlc3QucHkKaW5kZXggNGNkY2ZlMjg3Li5hY2VjYzA1YWIgMTAwNjQ0Ci0tLSBhL3dlYi9y ZWdyZXNzaW9uL2ZlYXR1cmVfdXRpbHMvYmFzZV9mZWF0dXJlX3Rlc3QucHkKKysrIGIvd2ViL3Jl Z3Jlc3Npb24vZmVhdHVyZV91dGlscy9iYXNlX2ZlYXR1cmVfdGVzdC5weQpAQCAtMjcsNyArMjcs NyBAQCBjbGFzcyBCYXNlRmVhdHVyZVRlc3QoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgIGRlZiBz ZXRVcChzZWxmKToKICAgICAgICAgc2VsZi5zZXJ2ZXIgPSBkZWVwY29weShzZWxmLnNlcnZlcikK ICAgICAgICAgc2VsZi5zZXJ2ZXJbJ25hbWUnXSArPSAnIEZlYXR1cmUgVGVzdHMnCi0gICAgICAg IGlmIGFwcF9jb25maWcuU0VSVkVSX01PREU6CisgICAgICAgIGlmIGFwcF9jb25maWcuU0VSVkVS X01PREUgYW5kIG5vdCBzZWxmLnBhcmFsbGVsX3VpX3Rlc3RzOgogICAgICAgICAgICAgc2VsZi5z a2lwVGVzdCgKICAgICAgICAgICAgICAgICAiQ3VycmVudGx5LCBjb25maWcgaXMgc2V0IHRvIHN0 YXJ0IHBnYWRtaW4gaW4gc2VydmVyIG1vZGUuICIKICAgICAgICAgICAgICAgICAiVGhpcyB0ZXN0 IGRvZXNuJ3Qga25vdyB1c2VybmFtZSBhbmQgcGFzc3dvcmQgc28gZG9lc24ndCB3b3JrICIKQEAg LTM2LDYgKzM2LDggQEAgY2xhc3MgQmFzZUZlYXR1cmVUZXN0KEJhc2VUZXN0R2VuZXJhdG9yKToK IAogICAgICAgICBzZWxmLnBhZ2UgPSBQZ2FkbWluUGFnZShzZWxmLmRyaXZlciwgYXBwX2NvbmZp ZykKICAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgc2VsZi5wYXJhbGxlbF91aV90ZXN0czoK KyAgICAgICAgICAgICAgICBzZWxmLnBhZ2UubG9naW5fdG9fYXBwKHNlbGYuc2VydmVyWydsb2dp bl9kZXRhaWxzJ10pCiAgICAgICAgICAgICB0ZXN0X3V0aWxzLnJlc2V0X2xheW91dF9kYigpCiAg ICAgICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyLnN3aXRjaF90by5kZWZhdWx0X2NvbnRlbnQoKQog ICAgICAgICAgICAgc2VsZi5wYWdlLndhaXRfZm9yX2FwcCgpCmRpZmYgLS1naXQgYS93ZWIvcmVn cmVzc2lvbi9mZWF0dXJlX3V0aWxzL3BnYWRtaW5fcGFnZS5weSBiL3dlYi9yZWdyZXNzaW9uL2Zl YXR1cmVfdXRpbHMvcGdhZG1pbl9wYWdlLnB5CmluZGV4IDcyNjAzMzQ3MC4uODc3OGNmMGI5IDEw MDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3V0aWxzL3BnYWRtaW5fcGFnZS5weQor KysgYi93ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3V0aWxzL3BnYWRtaW5fcGFnZS5weQpAQCAtMzcs NiArMzcsMTggQEAgY2xhc3MgUGdhZG1pblBhZ2U6CiAgICAgICAgIHNlbGYudGltZW91dCA9IDMw CiAgICAgICAgIHNlbGYuYXBwX3N0YXJ0X3RpbWVvdXQgPSA5MAogCisgICAgZGVmIGxvZ2luX3Rv X2FwcChzZWxmLCB1c2VyX2RldGFpbCk6CisgICAgICAgIGlmIG5vdCAoc2VsZi5jaGVja19pZl9l bGVtZW50X2V4aXN0X2J5X3hwYXRoKAorICAgICAgICAgICAgICAgICcvL2FbQGlkPSJuYXZiYXIt dXNlciJdJywgMSkpOgorICAgICAgICAgICAgdXNlcl9lZHRfYm94X2VsID0gc2VsZi5kcml2ZXIu ZmluZF9lbGVtZW50X2J5X25hbWUoJ2VtYWlsJykKKyAgICAgICAgICAgIHVzZXJfZWR0X2JveF9l bC5zZW5kX2tleXModXNlcl9kZXRhaWxbJ2xvZ2luX3VzZXJuYW1lJ10pCisgICAgICAgICAgICBw YXNzd29yZF9lZHRfYm94X2VsID0gc2VsZi5kcml2ZXIuZmluZF9lbGVtZW50X2J5X25hbWUoJ3Bh c3N3b3JkJykKKyAgICAgICAgICAgIHBhc3N3b3JkX2VkdF9ib3hfZWwuc2VuZF9rZXlzKHVzZXJf ZGV0YWlsWydsb2dpbl9wYXNzd29yZCddKQorICAgICAgICAgICAgc3VibWl0X2J0biA9IHNlbGYu ZHJpdmVyLmZpbmRfZWxlbWVudF9ieV94cGF0aCgKKyAgICAgICAgICAgICAgICAnLy9idXR0b25b QHZhbHVlPSJMb2dpbiJdJykKKyAgICAgICAgICAgIHN1Ym1pdF9idG4uY2xpY2soKQorICAgICAg ICAgICAgc2VsZi53YWl0X2Zvcl9zcGlubmVyX3RvX2Rpc2FwcGVhcigpCisKICAgICBkZWYgcmVz ZXRfbGF5b3V0KHNlbGYpOgogICAgICAgICBhdHRlbXB0ID0gMAogICAgICAgICB3aGlsZSBhdHRl bXB0IDwgNDoKQEAgLTU3LDcgKzY5LDE1IEBAIGNsYXNzIFBnYWRtaW5QYWdlOgogICAgICAgICBz ZWxmLndhaXRfZm9yX3JlbG9hZGluZ19pbmRpY2F0b3JfdG9fZGlzYXBwZWFyKCkKIAogICAgIGRl ZiByZWZyZXNoX3BhZ2Uoc2VsZik6Ci0gICAgICAgIHNlbGYuZHJpdmVyLnJlZnJlc2goKQorICAg ICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmRyaXZlci5yZWZyZXNoKCkKKyAgICAgICAgICAg ICMgd2FpdCB1bnRpbCBhbGVydCBpcyBwcmVzZW50CisgICAgICAgICAgICBXZWJEcml2ZXJXYWl0 KHNlbGYuZHJpdmVyLCAxKS51bnRpbChFQy5hbGVydF9pc19wcmVzZW50KCkpCisKKyAgICAgICAg ICAgICMgc3dpdGNoIHRvIGFsZXJ0IGFuZCBhY2NlcHQgaXQKKyAgICAgICAgICAgIHNlbGYuZHJp dmVyLnN3aXRjaF90by5hbGVydC5hY2NlcHQoKQorICAgICAgICBleGNlcHQgVGltZW91dEV4Y2Vw dGlvbjoKKyAgICAgICAgICAgIHBhc3MKIAogICAgIGRlZiBjbGlja19tb2RhbChzZWxmLCBidXR0 b25fdGV4dCk6CiAgICAgICAgIHRpbWUuc2xlZXAoMC41KQpAQCAtMzAwLDYgKzMyMCw3IEBAIGNs YXNzIFBnYWRtaW5QYWdlOgogICAgICAgICBkZWxldGVfbWVudV9pdGVtID0gc2VsZi5maW5kX2J5 X3BhcnRpYWxfbGlua190ZXh0KCJSZW1vdmUgU2VydmVyIikKICAgICAgICAgc2VsZi5jbGlja19l bGVtZW50KGRlbGV0ZV9tZW51X2l0ZW0pCiAgICAgICAgIHNlbGYuY2xpY2tfbW9kYWwoJ1llcycp CisgICAgICAgIHRpbWUuc2xlZXAoMSkKIAogICAgIGRlZiBzZWxlY3RfdHJlZV9pdGVtKHNlbGYs IHRyZWVfaXRlbV90ZXh0KToKICAgICAgICAgaXRlbSA9IHNlbGYuZmluZF9ieV94cGF0aCgKZGlm ZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL3B5dGhvbl90ZXN0X3V0aWxzL3Rlc3RfdXRpbHMucHkg Yi93ZWIvcmVncmVzc2lvbi9weXRob25fdGVzdF91dGlscy90ZXN0X3V0aWxzLnB5CmluZGV4IDRk ZTNhZDlkMS4uYmU0Y2QyNzNiIDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9weXRob25fdGVz dF91dGlscy90ZXN0X3V0aWxzLnB5CisrKyBiL3dlYi9yZWdyZXNzaW9uL3B5dGhvbl90ZXN0X3V0 aWxzL3Rlc3RfdXRpbHMucHkKQEAgLTE3LDYgKzE3LDcgQEAgaW1wb3J0IHBzeWNvcGcyCiBpbXBv cnQgc3FsaXRlMwogaW1wb3J0IHNodXRpbAogZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHBhcnRpYWwK K2ltcG9ydCByYW5kb20KIAogZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC53YWl0IGlt cG9ydCBXZWJEcml2ZXJXYWl0CiBmcm9tIHRlc3R0b29scy50ZXN0Y2FzZSBpbXBvcnQgY2xvbmVf dGVzdF93aXRoX25ld19pZApAQCAtMTQwMCw3ICsxNDAxLDcgQEAgZGVmIGdldF9wYXJhbGxlbF9z ZXF1ZW50aWFsX21vZHVsZV9saXN0KG1vZHVsZV9saXN0KToKICAgICBzZXF1ZW50aWFsX3Rlc3Rz X2ZpbGUgPSBbCiAgICAgICAgICdwZ2FkbWluLmZlYXR1cmVfdGVzdHMucGdfdXRpbGl0aWVzX2Jh Y2t1cF9yZXN0b3JlX3Rlc3QnLAogICAgICAgICAncGdhZG1pbi5mZWF0dXJlX3Rlc3RzLnBnX3V0 aWxpdGllc19tYWludGVuYW5jZV90ZXN0JywKLSAgICAgICAgJ3BnYWRtaW4uZmVhdHVyZV90ZXN0 cy5rZXlib2FyZF9zaG9ydGN1dF90ZXN0J10KKyAgICBdCiAKICAgICAjICBsaXN0IG9mIHRlc3Rz IGNhbiBiZSBleGVjdXRlZCBpbiBwYXJhbGxlbAogICAgIHBhcmFsbGVsX3Rlc3RzID0gbGlzdCht b2R1bGVfbGlzdCkKQEAgLTE3MDQsMyArMTcwNSwyOCBAQCBkZWYgY3JlYXRlX3VzZXJfd2lzZV90 ZXN0X2NsaWVudCh1c2VyKToKICAgICAgICAgcmV0dXJuIHdyYXBwZXIKIAogICAgIHJldHVybiBt dWx0aV91c2VyX2RlY29yYXRvcgorCisKK2RlZiBjcmVhdGVfdXNlcnNfZm9yX3BhcmFsbGVsX3Rl c3RzKHRlc3Rlcik6CisgICAgIiIiCisgICAgRnVuY3Rpb24gY3JlYXRlcyB1c2VyIHVzaW5nIC91 c2VyIGFwaQorICAgIEBwYXJhbSB0ZXN0ZXI6IHRlc3QgY2xpZW50CisgICAgQHJldHVybjogdWVy IGRldGFpbHMgZGljdAorICAgICIiIgorICAgIGxvZ2luX3VzZXJuYW1lID0gJ3VpX3Rlc3RfdXNl cicgKyBzdHIocmFuZG9tLnJhbmRpbnQoMTAwMCwgOTk5OSkpICtcCisgICAgICAgICAgICAgICAg ICAgICAnQGVkYi5jb20nCisgICAgdXNlcl9kZXRhaWxzID0geydsb2dpbl91c2VybmFtZSc6IGxv Z2luX3VzZXJuYW1lLAorICAgICAgICAgICAgICAgICAgICAnbG9naW5fcGFzc3dvcmQnOiAnYWRt aW5lZGInfQorICAgIHJlc3BvbnNlID0gdGVzdGVyLnBvc3QoCisgICAgICAgICcvdXNlcl9tYW5h Z2VtZW50L3VzZXIvJywKKyAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRpY3QodXNlcm5hbWU9dXNl cl9kZXRhaWxzWydsb2dpbl91c2VybmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBlbWFpbD11c2VyX2RldGFpbHNbJ2xvZ2luX3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG5ld1Bhc3N3b3JkPXVzZXJfZGV0YWlsc1snbG9naW5fcGFzc3dvcmQnXSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlybVBhc3N3b3JkPXVzZXJfZGV0YWls c1snbG9naW5fcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZl PVRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9IjEiCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICkpLAorICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisg ICAgdXNlcl9pZCA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpWydp ZCddCisgICAgdXNlcl9kZXRhaWxzWyd1c2VyX2lkJ10gPSB1c2VyX2lkCisgICAgcmV0dXJuIHVz ZXJfZGV0YWlscwpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vcnVudGVzdHMucHkgYi93ZWIv cmVncmVzc2lvbi9ydW50ZXN0cy5weQppbmRleCAxMTQyZmI5Y2YuLmY1OWRhY2FjYiAxMDA2NDQK LS0tIGEvd2ViL3JlZ3Jlc3Npb24vcnVudGVzdHMucHkKKysrIGIvd2ViL3JlZ3Jlc3Npb24vcnVu dGVzdHMucHkKQEAgLTE1MSw3ICsxNTEsNyBAQCBzY2VuYXJpb3MuYXBwbHlfc2NlbmFyaW8gPSB0 ZXN0X3V0aWxzLmFwcGx5X3NjZW5hcmlvCiAKIAogZGVmIGdldF9zdWl0ZShtb2R1bGVfbGlzdCwg dGVzdF9zZXJ2ZXIsIHRlc3RfYXBwX2NsaWVudCwgc2VydmVyX2luZm9ybWF0aW9uLAotICAgICAg ICAgICAgICB0ZXN0X2RiX25hbWUsIGRyaXZlcl9wYXNzZWQpOgorICAgICAgICAgICAgICB0ZXN0 X2RiX25hbWUsIGRyaXZlcl9wYXNzZWQsIHBhcmFsbGVsX3VpX3Rlc3QpOgogICAgICIiIgogICAg ICBUaGlzIGZ1bmN0aW9uIGFkZCB0aGUgdGVzdHMgdG8gdGVzdCBzdWl0ZSBhbmQgcmV0dXJuIG1v ZGlmaWVkIHRlc3Qgc3VpdGUKICAgICAgIHZhcmlhYmxlLgpAQCAtMTY0LDYgKzE2NCwxMiBAQCBk ZWYgZ2V0X3N1aXRlKG1vZHVsZV9saXN0LCB0ZXN0X3NlcnZlciwgdGVzdF9hcHBfY2xpZW50LCBz ZXJ2ZXJfaW5mb3JtYXRpb24sCiAgICAgOnR5cGUgdGVzdF9hcHBfY2xpZW50OiBwZ2FkbWluIGFw cCBvYmplY3QKICAgICA6cmV0dXJuIHBnYWRtaW5fc3VpdGU6IHRlc3Qgc3VpdGUgd2l0aCB0ZXN0 IGNhc2VzCiAgICAgOnJ0eXBlOiBUZXN0U3VpdGUKKyAgICA6cGFyYW0gZHJpdmVyX3Bhc3NlZDog ZHJpdmVyIG9iamVjdCB0byBydW4gc2VsZW5pdW0gdGVzdHMKKyAgICA6dHlwZSBkcml2ZXJfcGFz c2VkOiB3ZWJkcml2ZXIgb2JqZWN0CisgICAgOnBhcmFtIHBhcmFsbGVsX3VpX3Rlc3Q6IHdoZXRo ZXIgdWkgdGVzdHMgdG8gYmUgcnVuIGluIHBhcmFsbGVsCisgICAgOnR5cGUgcGFyYWxsZWxfdWlf dGVzdDogYm9vbGFuCisgICAgOnBhcmFtIHRlc3RfZGJfbmFtZTogZGF0YWJhc2UgbmFtZQorICAg IDp0eXBlIHRlc3RfZGJfbmFtZTogc3RyaW5nCiAgICAgIiIiCiAgICAgbW9kdWxlcyA9IFtdCiAg ICAgcGdhZG1pbl9zdWl0ZSA9IHVuaXR0ZXN0LlRlc3RTdWl0ZSgpCkBAIC0xODIsMTEgKzE4OCwx MSBAQCBkZWYgZ2V0X3N1aXRlKG1vZHVsZV9saXN0LCB0ZXN0X3NlcnZlciwgdGVzdF9hcHBfY2xp ZW50LCBzZXJ2ZXJfaW5mb3JtYXRpb24sCiAgICAgICAgIG9iai5zZXRUZXN0Q2xpZW50KHRlc3Rf YXBwX2NsaWVudCkKICAgICAgICAgb2JqLnNldFRlc3RTZXJ2ZXIodGVzdF9zZXJ2ZXIpCiAgICAg ICAgIG9iai5zZXREcml2ZXIoZHJpdmVyX3Bhc3NlZCkKKyAgICAgICAgb2JqLnNldFBhcmFsbGVs VUlfdGVzdHMocGFyYWxsZWxfdWlfdGVzdCkKICAgICAgICAgb2JqLnNldFNlcnZlckluZm9ybWF0 aW9uKHNlcnZlcl9pbmZvcm1hdGlvbikKICAgICAgICAgb2JqLnNldFRlc3REYXRhYmFzZU5hbWUo dGVzdF9kYl9uYW1lKQogICAgICAgICBzY2VuYXJpbyA9IHNjZW5hcmlvcy5nZW5lcmF0ZV9zY2Vu YXJpb3Mob2JqKQogICAgICAgICBwZ2FkbWluX3N1aXRlLmFkZFRlc3RzKHNjZW5hcmlvKQotCiAg ICAgcmV0dXJuIHBnYWRtaW5fc3VpdGUKIAogCkBAIC00NTAsMTIgKzQ1NiwxNCBAQCBjbGFzcyBT dHJlYW1Ub0xvZ2dlcihvYmplY3QpOgogICAgICAgICBwYXNzCiAKIAotZGVmIGV4ZWN1dGVfdGVz dCh0ZXN0X21vZHVsZV9saXN0X3Bhc3NlZCwgc2VydmVyX3Bhc3NlZCwgZHJpdmVyX3Bhc3NlZCk6 CitkZWYgZXhlY3V0ZV90ZXN0KHRlc3RfbW9kdWxlX2xpc3RfcGFzc2VkLCBzZXJ2ZXJfcGFzc2Vk LCBkcml2ZXJfcGFzc2VkLAorICAgICAgICAgICAgICAgICBwYXJhbGxlbF91aV90ZXN0PUZhbHNl KToKICAgICAiIiIKICAgICBGdW5jdGlvbiBleGVjdXRlcyBhY3R1YWxseSB0ZXN0Ci0gICAgOnBh cmFtIHRlc3RfbW9kdWxlX2xpc3RfcGFzc2VkOgotICAgIDpwYXJhbSBzZXJ2ZXJfcGFzc2VkOgot ICAgIDpwYXJhbSBkcml2ZXJfcGFzc2VkOgorICAgIDpwYXJhbSB0ZXN0X21vZHVsZV9saXN0X3Bh c3NlZDogdGVzdCBtb2R1bGVzCisgICAgOnBhcmFtIHNlcnZlcl9wYXNzZWQ6IHNlcnZlIGRldGFp bHMKKyAgICA6cGFyYW0gZHJpdmVyX3Bhc3NlZDogd2ViZHJpdmVyIG9iamVjdAorICAgIDpwYXJh bSBwYXJhbGxlbF91aV90ZXN0OiBwYXJhbGxlbCB1aSB0ZXN0cwogICAgIDpyZXR1cm46CiAgICAg IiIiCiAgICAgdHJ5OgpAQCAtNDkzLDExICs1MDEsMTcgQEAgZGVmIGV4ZWN1dGVfdGVzdCh0ZXN0 X21vZHVsZV9saXN0X3Bhc3NlZCwgc2VydmVyX3Bhc3NlZCwgZHJpdmVyX3Bhc3NlZCk6CiAgICAg ICAgIHRlc3RfdXRpbHMuY29uZmlndXJlX3ByZWZlcmVuY2VzKAogICAgICAgICAgICAgZGVmYXVs dF9iaW5hcnlfcGF0aD1zZXJ2ZXJfcGFzc2VkWydkZWZhdWx0X2JpbmFyeV9wYXRocyddKQogCisg ICAgICAgICMgQ3JlYXRlIHVzZXIgdG8gcnVuIHNlbGVub2lkIHRlc3RzIGluIHBhcmFsbGVsCisg ICAgICAgIGlmIHBhcmFsbGVsX3VpX3Rlc3Q6CisgICAgICAgICAgICBzZXJ2ZXJfcGFzc2VkWyds b2dpbl9kZXRhaWxzJ10gPSBcCisgICAgICAgICAgICAgICAgdGVzdF91dGlscy5jcmVhdGVfdXNl cnNfZm9yX3BhcmFsbGVsX3Rlc3RzKHRlc3RfY2xpZW50KQorCiAgICAgICAgICMgR2V0IHVuaXQg dGVzdCBzdWl0CiAgICAgICAgIHN1aXRlID0gZ2V0X3N1aXRlKHRlc3RfbW9kdWxlX2xpc3RfcGFz c2VkLAogICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfcGFzc2VkLAogICAgICAgICAg ICAgICAgICAgICAgICAgICB0ZXN0X2NsaWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg c2VydmVyX2luZm9ybWF0aW9uLCB0ZXN0X2RiX25hbWUsIGRyaXZlcl9wYXNzZWQpCisgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pbmZvcm1hdGlvbiwgdGVzdF9kYl9uYW1lLCBkcml2 ZXJfcGFzc2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbGxlbF91aV90ZXN0PXBh cmFsbGVsX3VpX3Rlc3QpCiAKICAgICAgICAgIyBSdW4gdW5pdCB0ZXN0IHN1aXQgY3JlYXRlZAog ICAgICAgICB0ZXN0cyA9IHVuaXR0ZXN0LlRleHRUZXN0UnVubmVyKHN0cmVhbT1zeXMuc3RkZXJy LApAQCAtNTcwLDEyICs1ODQsMTEgQEAgZGVmIHJ1bl9wYXJhbGxlbF90ZXN0cyh1cmxfY2xpZW50 LCBzZXJ2ZXJzX2RldGFpbHMsIHBhcmFsbGVsX3Rlc3RzX2xpc3RzLAogICAgIDpwYXJhbSBtYXhf dGhyZWFkX2NvdW50OgogICAgICIiIgogICAgIGRyaXZlcl9vYmplY3QgPSBOb25lCi0KLSAgICAj IFRocmVhZCBsaXN0Ci0gICAgdGhyZWFkc19saXN0ID0gW10KLSAgICAjIENyZWF0ZSB0aHJlYWQg Zm9yIGVhY2ggc2VydmVyCi0gICAgZm9yIHNlciBpbiBzZXJ2ZXJzX2RldGFpbHM6Ci0gICAgICAg IHRyeToKKyAgICB0cnk6CisgICAgICAgICMgVGhyZWFkIGxpc3QKKyAgICAgICAgdGhyZWFkc19s aXN0ID0gW10KKyAgICAgICAgIyBDcmVhdGUgdGhyZWFkIGZvciBlYWNoIHNlcnZlcgorICAgICAg ICBmb3Igc2VyIGluIHNlcnZlcnNfZGV0YWlsczoKICAgICAgICAgICAgIHdoaWxlIFRydWU6CiAg ICAgICAgICAgICAgICAgIyBJZiBhY3RpdmUgdGhyZWFkIGNvdW50IDw9IG1heF90aHJlYWRfY291 bnQsIGFkZCBuZXcgdGhyZWFkCiAgICAgICAgICAgICAgICAgaWYgdGhyZWFkaW5nLmFjdGl2ZUNv dW50KCkgPD0gbWF4X3RocmVhZF9jb3VudDoKQEAgLTU5NCwzMyArNjA3LDMzIEBAIGRlZiBydW5f cGFyYWxsZWxfdGVzdHModXJsX2NsaWVudCwgc2VydmVyc19kZXRhaWxzLCBwYXJhbGxlbF90ZXN0 c19saXN0cywKICAgICAgICAgICAgICAgICAgICAgIyBTdGFydCB0aHJlYWQKICAgICAgICAgICAg ICAgICAgICAgdCA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PWV4ZWN1dGVfdGVzdCwgbmFtZT10 aHJlYWRfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJn cz0ocGFyYWxsZWxfdGVzdHNfbGlzdHMsIHNlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZHJpdmVyX29iamVjdCkpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyaXZlcl9vYmplY3QsIFRydWUpKQogICAgICAg ICAgICAgICAgICAgICB0aHJlYWRzX2xpc3QuYXBwZW5kKHQpCiAgICAgICAgICAgICAgICAgICAg IHQuc3RhcnQoKQotICAgICAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDMpCisgICAgICAgICAg ICAgICAgICAgIHRpbWUuc2xlZXAoMTApCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAg ICAgICAgICAgICAgIyBlbHNlIHNsZWVwIGZvciAxMCBzZWNvbmRzCiAgICAgICAgICAgICAgICAg ZWxzZToKICAgICAgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgxMCkKIAotICAgICAgICAgICAg ICAgICMgU3RhcnQgdGhyZWFkcyBpbiBwYXJhbGxlbAotICAgICAgICAgICAgICAgIGZvciB0IGlu IHRocmVhZHNfbGlzdDoKLSAgICAgICAgICAgICAgICAgICAgdC5qb2luKCkKKyAgICAgICAgIyBT dGFydCB0aHJlYWRzIGluIHBhcmFsbGVsCisgICAgICAgIGZvciB0IGluIHRocmVhZHNfbGlzdDoK KyAgICAgICAgICAgIHQuam9pbigpCiAKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleGM6 Ci0gICAgICAgICAgICAjIFByaW50IGV4Y2VwdGlvbiBzdGFjayB0cmFjZQotICAgICAgICAgICAg dHJhY2ViYWNrLnByaW50X2V4YyhmaWxlPXN5cy5zdGRlcnIpCi0gICAgICAgICAgICBwcmludCgn RXhjZXB0aW9uIGJlZm9yZSBzdGFydGluZyB0ZXN0cyBmb3IgJyArIHNlclsnbmFtZSddLAotICAg ICAgICAgICAgICAgICAgZmlsZT1zeXMuc3RkZXJyKQotICAgICAgICAgICAgcHJpbnQoc3RyKGV4 YyksIGZpbGU9c3lzLnN0ZGVycikKKyAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4YzoKKyAgICAg ICAgIyBQcmludCBleGNlcHRpb24gc3RhY2sgdHJhY2UKKyAgICAgICAgdHJhY2ViYWNrLnByaW50 X2V4YyhmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgIHByaW50KCdFeGNlcHRpb24gYmVmb3JlIHN0 YXJ0aW5nIHRlc3RzIGZvciAnICsgc2VyWyduYW1lJ10sCisgICAgICAgICAgICAgIGZpbGU9c3lz LnN0ZGVycikKKyAgICAgICAgcHJpbnQoc3RyKGV4YyksIGZpbGU9c3lzLnN0ZGVycikKIAotICAg ICAgICAgICAgIyBNYXJrIGZhaWx1cmUgYXMgdHJ1ZQotICAgICAgICAgICAgZ2xvYmFsIGZhaWx1 cmUKLSAgICAgICAgICAgIGZhaWx1cmUgPSBUcnVlCisgICAgICAgICMgTWFyayBmYWlsdXJlIGFz IHRydWUKKyAgICAgICAgZ2xvYmFsIGZhaWx1cmUKKyAgICAgICAgZmFpbHVyZSA9IFRydWUKIAot ICAgICAgICAgICAgIyBDbGVhbiBkcml2ZXIgb2JqZWN0IGNyZWF0ZWQKLSAgICAgICAgICAgIGlm IGRyaXZlcl9vYmplY3QgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgZHJpdmVyX29iamVj dC5xdWl0KCkKKyAgICAgICAgIyBDbGVhbiBkcml2ZXIgb2JqZWN0IGNyZWF0ZWQKKyAgICAgICAg aWYgZHJpdmVyX29iamVjdCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGRyaXZlcl9vYmplY3Qu cXVpdCgpCiAKIAogZGVmIHJ1bl9zZXF1ZW50aWFsX3Rlc3RzKHVybF9jbGllbnQsIHNlcnZlcnNf ZGV0YWlscywgc2VxdWVudGlhbF90ZXN0c19saXN0cywKQEAgLTY1NCw3ICs2NjcsNyBAQCBkZWYg cnVuX3NlcXVlbnRpYWxfdGVzdHModXJsX2NsaWVudCwgc2VydmVyc19kZXRhaWxzLCBzZXF1ZW50 aWFsX3Rlc3RzX2xpc3RzLAogICAgICAgICAgICAgdCA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0 PWV4ZWN1dGVfdGVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9dGhy ZWFkX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPShzZXF1ZW50 aWFsX3Rlc3RzX2xpc3RzLCBzZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkcml2ZXJfb2JqZWN0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRyaXZlcl9vYmplY3QsIFRydWUpKQogICAgICAgICAgICAgdC5zdGFydCgpCiAgICAgICAg ICAgICB0LmpvaW4oKQogICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXhjOgpAQCAtNzc5LDEwNSAr NzkyLDExNCBAQCBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIGlmIGFyZ3NbJ3BrZydd IGlzIG5vdCBOb25lOgogICAgICAgICBub2RlX25hbWUgPSBhcmdzWydwa2cnXS5zcGxpdCgnLicp Wy0xXQogCisgICAgaXNfcGFyYWxsZWxfdWlfdGVzdHMgPSB0ZXN0X3V0aWxzLmlzX3BhcmFsbGVs X3VpX3Rlc3RzKGFyZ3MpCiAgICAgIyBDaGVjayBpZiBmZWF0dXJlIHRlc3RzIGluY2x1ZGVkICYg cGFyYWxsZWwgdGVzdHMgc3dpdGNoIHBhc3NlZAotICAgIGlmIHRlc3RfdXRpbHMuaXNfZmVhdHVy ZV90ZXN0X2luY2x1ZGVkKGFyZ3MpIGFuZCBcCi0gICAgICAgICAgICB0ZXN0X3V0aWxzLmlzX3Bh cmFsbGVsX3VpX3Rlc3RzKGFyZ3MpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICAjIEdldCBz ZWxlbml1bSBjb25maWcgZGljdAotICAgICAgICAgICAgc2VsZW5vaWRfY29uZmlnID0gdGVzdF9z ZXR1cC5jb25maWdfZGF0YVsnc2VsZW5vaWRfY29uZmlnJ10KLQotICAgICAgICAgICAgIyBTZXQg REVGQVVMVF9TRVJWRVIgdmFsdWUKLSAgICAgICAgICAgIGRlZmF1bHRfc2VydmVyID0gc2VsZW5v aWRfY29uZmlnWydwZ0FkbWluX2RlZmF1bHRfc2VydmVyJ10KLSAgICAgICAgICAgIG9zLmVudmly b25bIlBHQURNSU5fQ09ORklHX0RFRkFVTFRfU0VSVkVSIl0gPSBzdHIoZGVmYXVsdF9zZXJ2ZXIp Ci0gICAgICAgICAgICBjb25maWcuREVGQVVMVF9TRVJWRVIgPSBzdHIoZGVmYXVsdF9zZXJ2ZXIp Ci0KLSAgICAgICAgICAgICMgR2V0IGh1YiB1cmwKLSAgICAgICAgICAgIGh1Yl91cmwgPSBzZWxl bm9pZF9jb25maWdbJ3NlbGVub2lkX3VybCddCi0KLSAgICAgICAgICAgICMgR2V0IHNlbGVuaXVt IGdyaWQgc3RhdHVzICYgbGlzdCBvZiBhdmFpbGFibGUgYnJvd3NlciBvdXQgcGFzc2VkCi0gICAg ICAgICAgICBzZWxlbml1bV9ncmlkX3N0YXR1cywgbGlzdF9vZl9icm93c2VycyBcCi0gICAgICAg ICAgICAgICAgPSB0ZXN0X3V0aWxzLmdldF9zZWxlbml1bV9ncmlkX3N0YXR1c19hbmRfYnJvd3Nl cl9saXN0KGh1Yl91cmwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MpCi0KLSAgICAgICAgICAgICMgRXhl Y3V0ZSB0ZXN0cyBpZiBzZWxlbml1bS1ncmlkIGlzIHVwCi0gICAgICAgICAgICBpZiBzZWxlbml1 bV9ncmlkX3N0YXR1cyBhbmQgbGVuKGxpc3Rfb2ZfYnJvd3NlcnMpID4gMDoKLSAgICAgICAgICAg ICAgICBhcHBfc3RhcnRlcl9sb2NhbCA9IE5vbmUKLSAgICAgICAgICAgICAgICAjIHJ1biBhY3Jv c3MgYnJvd3NlcnMKLSAgICAgICAgICAgICAgICBmb3IgYnJvd3Nlcl9pbmZvIGluIGxpc3Rfb2Zf YnJvd3NlcnM6Ci0gICAgICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAg ICAgICMgYnJvd3NlciBpbmZvCi0gICAgICAgICAgICAgICAgICAgICAgICBicm93c2VyX25hbWUs IGJyb3dzZXJfdmVyc2lvbiA9IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3V0 aWxzLmdldF9icm93c2VyX2RldGFpbHMoYnJvd3Nlcl9pbmZvLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodWJfdXJsKQotCi0gICAg ICAgICAgICAgICAgICAgICAgICAjIHRlc3QgbGlzdHMgY2FuIGJlIGV4ZWN1dGVkIGluIHBhcmFs bGVsICYgc2VxdWVudGlhbGx5Ci0gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbGxlbF90ZXN0 cywgc2VxdWVudGlhbF90ZXN0cyA9IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0 X3V0aWxzLmdldF9wYXJhbGxlbF9zZXF1ZW50aWFsX21vZHVsZV9saXN0KAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0ZXN0X21vZHVsZV9saXN0KQotCi0gICAgICAgICAgICAgICAg ICAgICAgICAjIFByaW50IHRlc3Qgc3VtbWFyeQotICAgICAgICAgICAgICAgICAgICAgICAgdGVz dF91dGlscy5wcmludF90ZXN0X3N1bW1hcnkoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg dGVzdF9tb2R1bGVfbGlzdCwgcGFyYWxsZWxfdGVzdHMsIHNlcXVlbnRpYWxfdGVzdHMsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9uYW1lLCBicm93c2VyX3ZlcnNpb24pCi0K LSAgICAgICAgICAgICAgICAgICAgICAgICMgQ3JlYXRlIGFwcCBmb3JtIHNvdXJjZSBjb2RlCi0g ICAgICAgICAgICAgICAgICAgICAgICBhcHBfc3RhcnRlcl9sb2NhbCA9IEFwcFN0YXJ0ZXIoTm9u ZSwgY29uZmlnKQotICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50X3VybCA9IGFwcF9zdGFy dGVyX2xvY2FsLnN0YXJ0X2FwcCgpCi0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNvbmZp Zy5ERUJVRzoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgncGdBZG1pbiBpcyBs YXVuY2hlZCB3aXRoIERFQlVHPVRydWUsICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnaGVuY2Ugc2xlZXBpbmcgZm9yIDUwIHNlY29uZHMuJywKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmaWxlPXN5cy5zdGRlcnIpCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGltZS5zbGVlcCg1MCkKLQotICAgICAgICAgICAgICAgICAgICAgICAgIyBSdW5uaW5n IFBhcmFsbGVsIHRlc3RzCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiBsZW4ocGFyYWxsZWxf dGVzdHMpID4gMDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbGxlbF9zZXNzaW9u cyA9IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KHNlbGVub2lkX2NvbmZp Z1snbWF4X3BhcmFsbGVsX3Nlc3Npb25zJ10pCi0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBydW5fcGFyYWxsZWxfdGVzdHMoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNs aWVudF91cmwsIHNlcnZlcnNfaW5mbywgcGFyYWxsZWxfdGVzdHMsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJyb3dzZXJfbmFtZSwgYnJvd3Nlcl92ZXJzaW9uLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwYXJhbGxlbF9zZXNzaW9ucykKLQotICAgICAgICAgICAg ICAgICAgICAgICAgIyBTZXF1ZW50aWFsIFRlc3RzCi0gICAgICAgICAgICAgICAgICAgICAgICBp ZiBsZW4oc2VxdWVudGlhbF90ZXN0cykgPiAwOgotICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJ1bl9zZXF1ZW50aWFsX3Rlc3RzKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj bGllbnRfdXJsLCBzZXJ2ZXJzX2luZm8sIHNlcXVlbnRpYWxfdGVzdHMsCisgICAgaWYgdGVzdF91 dGlscy5pc19mZWF0dXJlX3Rlc3RfaW5jbHVkZWQoYXJncykgYW5kIGlzX3BhcmFsbGVsX3VpX3Rl c3RzOgorICAgICAgICBpZiBjb25maWcuU0VSVkVSX01PREU6CisgICAgICAgICAgICB0cnk6Cisg ICAgICAgICAgICAgICAgIyBHZXQgc2VsZW5pdW0gY29uZmlnIGRpY3QKKyAgICAgICAgICAgICAg ICBzZWxlbm9pZF9jb25maWcgPSB0ZXN0X3NldHVwLmNvbmZpZ19kYXRhWydzZWxlbm9pZF9jb25m aWcnXQorCisgICAgICAgICAgICAgICAgIyBTZXQgREVGQVVMVF9TRVJWRVIgdmFsdWUKKyAgICAg ICAgICAgICAgICBkZWZhdWx0X3NlcnZlciA9IHNlbGVub2lkX2NvbmZpZ1sncGdBZG1pbl9kZWZh dWx0X3NlcnZlciddCisgICAgICAgICAgICAgICAgb3MuZW52aXJvblsiUEdBRE1JTl9DT05GSUdf REVGQVVMVF9TRVJWRVIiXSA9IHN0cigKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdF9zZXJ2 ZXIpCisgICAgICAgICAgICAgICAgY29uZmlnLkRFRkFVTFRfU0VSVkVSID0gc3RyKGRlZmF1bHRf c2VydmVyKQorCisgICAgICAgICAgICAgICAgIyBHZXQgaHViIHVybAorICAgICAgICAgICAgICAg IGh1Yl91cmwgPSBzZWxlbm9pZF9jb25maWdbJ3NlbGVub2lkX3VybCddCisKKyAgICAgICAgICAg ICAgICAjIEdldCBzZWxlbml1bSBncmlkIHN0YXR1cyAmIGxpc3Qgb2YgYXZhaWxhYmxlIGJyb3dz ZXIKKyAgICAgICAgICAgICAgICAjIG91dCBvZiBwYXNzZWQKKyAgICAgICAgICAgICAgICBzZWxl bml1bV9ncmlkX3N0YXR1cywgbGlzdF9vZl9icm93c2VycyA9IHRlc3RfdXRpbHMuXAorICAgICAg ICAgICAgICAgICAgICBnZXRfc2VsZW5pdW1fZ3JpZF9zdGF0dXNfYW5kX2Jyb3dzZXJfbGlzdCho dWJfdXJsLCBhcmdzKQorCisgICAgICAgICAgICAgICAgIyBFeGVjdXRlIHRlc3RzIGlmIHNlbGVu aXVtLWdyaWQgaXMgdXAKKyAgICAgICAgICAgICAgICBpZiBzZWxlbml1bV9ncmlkX3N0YXR1cyBh bmQgbGVuKGxpc3Rfb2ZfYnJvd3NlcnMpID4gMDoKKyAgICAgICAgICAgICAgICAgICAgYXBwX3N0 YXJ0ZXJfbG9jYWwgPSBOb25lCisgICAgICAgICAgICAgICAgICAgICMgcnVuIGFjcm9zcyBicm93 c2VycworICAgICAgICAgICAgICAgICAgICBmb3IgYnJvd3Nlcl9pbmZvIGluIGxpc3Rfb2ZfYnJv d3NlcnM6CisgICAgICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIyBicm93c2VyIGluZm8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicm93 c2VyX25hbWUsIGJyb3dzZXJfdmVyc2lvbiA9IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGVzdF91dGlscy5nZXRfYnJvd3Nlcl9kZXRhaWxzKGJyb3dzZXJfaW5mbywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGh1Yl91cmwpCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHRlc3QgbGlzdHMgY2Fu IGJlIGV4ZWN1dGVkIGluCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBwYXJhbGxlbCAm IHNlcXVlbnRpYWxseQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFsbGVsX3Rlc3Rz LCBzZXF1ZW50aWFsX3Rlc3RzID0gXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 ZXN0X3V0aWxzLmdldF9wYXJhbGxlbF9zZXF1ZW50aWFsX21vZHVsZV9saXN0KAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9tb2R1bGVfbGlzdCkKKworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICMgUHJpbnQgdGVzdCBzdW1tYXJ5CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGVzdF91dGlscy5wcmludF90ZXN0X3N1bW1hcnkoCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRlc3RfbW9kdWxlX2xpc3QsIHBhcmFsbGVsX3Rlc3RzLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXF1ZW50aWFsX3Rlc3RzLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBicm93c2VyX25hbWUsIGJyb3dzZXJfdmVyc2lvbikKIAot ICAgICAgICAgICAgICAgICAgICAgICAgIyBDbGVhbiB1cCBlbnZpcm9ubWVudAotICAgICAgICAg ICAgICAgICAgICAgICAgaWYgYXBwX3N0YXJ0ZXJfbG9jYWw6Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXBwX3N0YXJ0ZXJfbG9jYWwuc3RvcF9hcHAoKQotCi0gICAgICAgICAgICAgICAg ICAgICAgICAjIFBhdXNlIGJlZm9yZSBwcmludGluZyByZXN1bHQgaW4gb3JkZXIKLSAgICAgICAg ICAgICAgICAgICAgICAgICMgbm90IHRvIG1peCBvdXRwdXQKLSAgICAgICAgICAgICAgICAgICAg ICAgIHRpbWUuc2xlZXAoNSkKLQotICAgICAgICAgICAgICAgICAgICAgICAgIyBQcmludCBub3Rl IGZvciBjb21wbGV0aW9uIG9mIGV4ZWN1dGlvbiBpbiBhIGJyb3dzZXIuCi0gICAgICAgICAgICAg ICAgICAgICAgICBwcmludCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXG49PT09PT09 PT09PT09IFRlc3QgZXhlY3V0aW9uIHdpdGggezB9IGlzICIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiY29tcGxldGVkLj09PT09PT09PT09PT0iLmZvcm1hdChicm93c2VyX25hbWUpLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU9c3lzLnN0ZGVycikKLSAgICAgICAgICAg ICAgICAgICAgICAgIHByaW50X3Rlc3RfcmVzdWx0cygpCi0KLSAgICAgICAgICAgICAgICAgICAg ZXhjZXB0IFN5c3RlbUV4aXQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiBhcHBfc3RhcnRl cl9sb2NhbDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBfc3RhcnRlcl9sb2NhbC5z dG9wX2FwcCgpCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiBoYW5kbGVfY2xlYW51cDoKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfY2xlYW51cCgpCi0gICAgICAgICAgICAg ICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBwcmlu dCgKLSAgICAgICAgICAgICAgICAgICAgIlxuPT09PT09PT09PT09PSBFaXRoZXIgU2VsZW5pdW0g R3JpZCBpcyBOT1QgdXAgT1IiCi0gICAgICAgICAgICAgICAgICAgICIgYnJvd3NlciBsaXN0IGlz IDAgPT09PT09PT09PT09PSIsIGZpbGU9c3lzLnN0ZGVycikKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjIENyZWF0ZSBhcHAgZm9ybSBzb3VyY2UgY29kZQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFwcF9zdGFydGVyX2xvY2FsID0gQXBwU3RhcnRlcihOb25lLCBjb25maWcpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50X3VybCA9IGFwcF9zdGFydGVyX2xvY2Fs LnN0YXJ0X2FwcCgpCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBjb25maWcuREVC VUc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCdwZ0FkbWluIGlzIGxh dW5jaGVkIHdpdGggREVCVUc9VHJ1ZSwgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnaGVuY2Ugc2xlZXBpbmcgZm9yIDUwIHNlY29uZHMuJywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDUwKQorCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIyBSdW5uaW5nIFBhcmFsbGVsIHRlc3RzCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgbGVuKHBhcmFsbGVsX3Rlc3RzKSA+IDA6CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBhcmFsbGVsX3Nlc3Npb25zID0gXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50KHNlbGVub2lkX2NvbmZpZ1sKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnbWF4X3BhcmFsbGVsX3Nlc3Npb25zJ10pCisKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcnVuX3BhcmFsbGVsX3Rlc3RzKAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2xpZW50X3VybCwgc2VydmVyc19pbmZvLCBwYXJhbGxlbF90ZXN0 cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfbmFtZSwgYnJv d3Nlcl92ZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYWxs ZWxfc2Vzc2lvbnMpCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFNlcXVlbnRpYWwg VGVzdHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBsZW4oc2VxdWVudGlhbF90ZXN0 cykgPiAwOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5fc2VxdWVudGlhbF90 ZXN0cygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudF91cmwsIHNl cnZlcnNfaW5mbywgc2VxdWVudGlhbF90ZXN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJyb3dzZXJfbmFtZSwgYnJvd3Nlcl92ZXJzaW9uKQorCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIyBDbGVhbiB1cCBlbnZpcm9ubWVudAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIGFwcF9zdGFydGVyX2xvY2FsOgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhcHBfc3RhcnRlcl9sb2NhbC5zdG9wX2FwcCgpCisKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjIFBhdXNlIGJlZm9yZSBwcmludGluZyByZXN1bHQgaW4gb3JkZXIKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjIG5vdCB0byBtaXggb3V0cHV0CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGltZS5zbGVlcCg1KQorCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcHJpbnQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcbj09PT09PT09PT09 PT0gVGVzdCBleGVjdXRpb24gd2l0aCB7MH0gaXMgIgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiY29tcGxldGVkLj09PT09PT09PT09PT0iLmZvcm1hdChicm93c2VyX25hbWUpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlPXN5cy5zdGRlcnIpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcHJpbnRfdGVzdF9yZXN1bHRzKCkKKworICAgICAgICAgICAg ICAgICAgICAgICAgZXhjZXB0IFN5c3RlbUV4aXQ6CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgYXBwX3N0YXJ0ZXJfbG9jYWw6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFwcF9zdGFydGVyX2xvY2FsLnN0b3BfYXBwKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiBoYW5kbGVfY2xlYW51cDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFu ZGxlX2NsZWFudXAoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAg ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoCisgICAgICAgICAgICAg ICAgICAgICAgICAiXG49PT09PT09PT09PT09IEVpdGhlciBTZWxlbml1bSBHcmlkIGlzIE5PVCB1 cCBPUiIKKyAgICAgICAgICAgICAgICAgICAgICAgICIgYnJvd3NlciBsaXN0IGlzIDAgPT09PT09 PT09PT09PSIsIGZpbGU9c3lzLnN0ZGVycikKKyAgICAgICAgICAgICAgICAgICAgZmFpbHVyZSA9 IFRydWUKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXhjOgorICAgICAgICAgICAg ICAgICMgUHJpbnQgZXhjZXB0aW9uIHN0YWNrIHRyYWNlCisgICAgICAgICAgICAgICAgdHJhY2Vi YWNrLnByaW50X2V4YyhmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgICAgICAgICAgcHJpbnQoc3Ry KGV4YykpCiAgICAgICAgICAgICAgICAgZmFpbHVyZSA9IFRydWUKLSAgICAgICAgZXhjZXB0IEV4 Y2VwdGlvbiBhcyBleGM6Ci0gICAgICAgICAgICAjIFByaW50IGV4Y2VwdGlvbiBzdGFjayB0cmFj ZQotICAgICAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YyhmaWxlPXN5cy5zdGRlcnIpCi0gICAg ICAgICAgICBwcmludChzdHIoZXhjKSkKKyAgICAgICAgICAgIGRlbCBvcy5lbnZpcm9uWyJQR0FE TUlOX0NPTkZJR19ERUZBVUxUX1NFUlZFUiJdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBw cmludCgKKyAgICAgICAgICAgICAgICAiXG49PT09PT09PT09PT09IFBsZWFzZSBUdXJuIG9uIFNl cnZlciBNb2RlIHRvIHJ1biBzZWxlbm9pZCAiCisgICAgICAgICAgICAgICAgInRlc3RzID09PT09 PT09PT09PT0iLCBmaWxlPXN5cy5zdGRlcnIpCiAgICAgICAgICAgICBmYWlsdXJlID0gVHJ1ZQot ICAgICAgICBkZWwgb3MuZW52aXJvblsiUEdBRE1JTl9DT05GSUdfREVGQVVMVF9TRVJWRVIiXQog ICAgIGVsc2U6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGZvciBzZXJ2ZXIgaW4gc2VydmVy c19pbmZvOgo= --0000000000009b2eea05c33e7cff--