Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1buFwD-0003f1-Er for pgadmin-hackers@arkaria.postgresql.org; Wed, 12 Oct 2016 09:35:01 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1buFwC-0007a7-SS for pgadmin-hackers@arkaria.postgresql.org; Wed, 12 Oct 2016 09:35:00 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1buFvt-0007L2-Np for pgadmin-hackers@postgresql.org; Wed, 12 Oct 2016 09:34:41 +0000 Received: from mail-yw0-x232.google.com ([2607:f8b0:4002:c05::232]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1buFvq-0006ZD-E5 for pgadmin-hackers@postgresql.org; Wed, 12 Oct 2016 09:34:40 +0000 Received: by mail-yw0-x232.google.com with SMTP id u124so29710130ywg.3 for ; Wed, 12 Oct 2016 02:34:37 -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:cc; bh=LBhdHws3KbPPPd5GgYkw3To/cGpUMnTJ8D8ydI87DRQ=; b=SltEEg9ZsD2W35mmYE+NpHwge7potiStIUX7OD2qcAZz/4o5hRjN6adP+VC1ov93uf gRpPbzqhgO/ZMg71yv3dWBTsRd0A+MpNe1ZgzOCRBvzt3FMj6cxUhzRUU/bd2C3biXio MCeoPyImxfGmahSySBlMiJEIuNdwkzCZwu+mLzjZmmyy3eVIU17LNQ85mPpBjwO6GMQd SCk5qB8gZYBSHGeKPxMbmJpf1TbzlLQiZRXKBbkiO57nYGYa0CXIWB+PhBdTidNMTsoZ fxnCJF2RfulSFf8T73Hmnm5O8AI21qckNHddr3QChx5QDlQwniPdUpL32cRJovREBAsw R5dQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=LBhdHws3KbPPPd5GgYkw3To/cGpUMnTJ8D8ydI87DRQ=; b=L2k+dbms7Zpq8hQnbQhALb6tdwD0B2BQU/856SZ4YXBDLsqRziaak2DBK2N3ztwPbz JXj7G3pYHHYIp4jf84f3iRCUhSqhVGtoAlJMUXVyb7FJycxN4qqbNa39Y2TgT8ozLGTx J1KZIloqIOiU/FzpPAd3iz8abm2/vjh172noHAF2JGpPLoDfLX6O5JdBPZm9Ms1aOptX 3jhkv/hDyHftzUuUXPe96TywP8yMn3f5oI76tNVaxFSByjmeGIePIXPqtACTteRMbaX6 24FgFHvO9RsJoAExm2vIMIWfmEeGxy2QSGAL0AV/uptGWs8rU8CoiA8ndqfsmnjjWAnF wsaQ== X-Gm-Message-State: AA6/9RkM2A6traEqSPM99KTGW6nSPiLgAUU0WSS9NVv7u7DZcaCUjN9Vi/4fH5hQIHcNDnRAqT9IqpOf6RAcbZIF X-Received: by 10.13.255.134 with SMTP id p128mr135779ywf.72.1476264876078; Wed, 12 Oct 2016 02:34:36 -0700 (PDT) MIME-Version: 1.0 Received: by 10.37.196.4 with HTTP; Wed, 12 Oct 2016 02:34:14 -0700 (PDT) From: Priyanka Shendge Date: Wed, 12 Oct 2016 15:04:14 +0530 Message-ID: Subject: FTS nodes (Configuration, Dictionaries, Parser, Templates) patch To: Dave Page Cc: pgadmin-hackers , Kanchan Mohitey Content-Type: multipart/mixed; boundary=94eb2c08651e8d2724053ea7b3b7 X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --94eb2c08651e8d2724053ea7b3b7 Content-Type: multipart/alternative; boundary=94eb2c08651e8d271f053ea7b3b5 --94eb2c08651e8d271f053ea7b3b5 Content-Type: text/plain; charset=UTF-8 Hi Dave, PFA patch for FTS nodes. *Run test suite by following command:* python runtests.py -- Best, Priyanka EnterpriseDB Corporation The Enterprise PostgreSQL Company --94eb2c08651e8d271f053ea7b3b5 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Dave,

PFA patch for FTS nodes.
=

Run=C2=A0test suite=C2=A0by following command:
=C2=A0=C2=A0python runtests.py
<= div>
--
Best,
Priyanka

EnterpriseDB Corporation
The Enterprise PostgreSQL Company
--94eb2c08651e8d271f053ea7b3b5-- --94eb2c08651e8d2724053ea7b3b7 Content-Type: application/octet-stream; name="FTS_nodes.patch" Content-Disposition: attachment; filename="FTS_nodes.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iu6pxb1v0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19jb25maWd1cmF0aW9u cy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19jb25m aWd1cmF0aW9ucy90ZXN0cy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi4wYjkwMzJiCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2NvbmZpZ3VyYXRpb25zL3Rlc3RzL19f aW5pdF9fLnB5CkBAIC0wLDAgKzEsMTYgQEAKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9v bHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRt aW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVh c2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20gcGdhZG1pbi51dGlscy5y b3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKKworCitjbGFzcyBGVFND b25maWd1cmF0aW9uVGVzdEdlbmVyYXRvcihCYXNlVGVzdEdlbmVyYXRvcik6 CisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgcmV0dXJuIFtd CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfY29uZmlndXJhdGlv bnMvdGVzdHMvdGVzdF9mdHNfY29uZmlndXJhdGlvbl9hZGQucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdHNfY29uZmlndXJhdGlvbnMvdGVzdHMvdGVzdF9mdHNf Y29uZmlndXJhdGlvbl9hZGQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uNWZkOWFmNgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z0c19jb25maWd1cmF0aW9ucy90ZXN0cy90ZXN0X2Z0c19j b25maWd1cmF0aW9uX2FkZC5weQpAQCAtMCwwICsxLDg5IEBACisjICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwg VG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBn QWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJl bGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg cHJpbnRfZnVuY3Rpb24KK2ltcG9ydCB1dWlkCitpbXBvcnQganNvbgorCitm cm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJh dG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QK K2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwor ZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy50ZXN0cyBpbXBvcnQgXAorICAgIHV0aWxzIGFzIGRhdGFiYXNl X3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl cnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKKyAgICB1 dGlscyBhcyBzY2hlbWFfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy4gXAorICAg IGZ0c19wYXJzZXIudGVzdHMgaW1wb3J0IHV0aWxzIGFzIGZ0c19wYXJzZXJf dXRpbHMKKworCitjbGFzcyBGVFNDb25maWd1cmFpb25BZGRUZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBh ZGQgbmV3IEZUUyBjb25maWd1cmF0aW9uIHVuZGVyIHRlc3Qgc2NoZW1hLiAi IiIKKworICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBk ZWZhdWx0IFVSTCBmb3IgZnRzX2NvbmZpZ3VyYXRpb24gbm9kZS4KKyAgICAg ICAgKCdGZXRjaCBmdHNfY29uZmlndXJhdGlvbiBOb2RlIFVSTCcsCisgICAg ICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvZnRzX2NvbmZpZ3VyYXRpb24vb2Jq LycpKQorICAgIF0KKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAg IiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgcGFyc2VyLiIiIgorCisg ICAgICAgIHNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1h J11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfZGF0 YVsnc2NoZW1hX25hbWUnXQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNj aGVtYV9kYXRhWydzY2hlbWFfaWQnXQorICAgICAgICBzZWxmLnNlcnZlcl9p ZCA9IHNjaGVtYV9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRi X2lkID0gc2NoZW1hX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5kYl9u YW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25h bWUiXQorICAgICAgICBzZWxmLmZ0c19wYXJzZXJfbmFtZSA9ICJmdHNfcGFy c2VyXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6NF0KKworICAgICAgICBz ZWxmLmZ0c19wYXJzZXJfaWQgPSBmdHNfcGFyc2VyX3V0aWxzLmNyZWF0ZV9m dHNfcGFyc2VyKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9u YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnRzX3BhcnNlcl9uYW1l KQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlz IGZ1bmN0aW9uIHdpbGwgYWRkIG5ldyBGVFMgY29uZmlndXJhdGlvbiB1bmRl ciB0ZXN0IHNjaGVtYS4gIiIiCisKKyAgICAgICAgZGJfY29uID0gZGF0YWJh c2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNF UlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRi X2lkKQorCisgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0 YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRp b24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCisKKyAgICAg ICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hl bWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVt YV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291 bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQorCisgICAgICAgIGRhdGEgPSBc CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiZnRz X2NvbmZfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo0XSwKKyAgICAgICAg ICAgICAgICAib3duZXIiOiBzZWxmLnNlcnZlclsidXNlcm5hbWUiXSwKKyAg ICAgICAgICAgICAgICAicHJzbmFtZSI6ICIlcy4lcyIgJSAoc2VsZi5zY2hl bWFfbmFtZSwgc2VsZi5mdHNfcGFyc2VyX25hbWUpLAorICAgICAgICAgICAg ICAgICJzY2hlbWEiOiBzZWxmLnNjaGVtYV9pZCwKKyAgICAgICAgICAgICAg ICAidG9rZW5zIjogW10KKyAgICAgICAgICAgIH0KKworICAgICAgICByZXNw b25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCisgICAgICAgICAgICBzZWxmLnVy bCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAg ICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9p ZCkgKworICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuc2NoZW1hX2lkKSAr ICcvJywKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAg ICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAgICAg ICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAw KQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAiIiJUaGlz IGZ1bmN0aW9uIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2UuIiIiCisK KyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShz ZWxmLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnRzX2NvbmZpZ3VyYXRpb25zL3Rlc3RzL3Rlc3Rf ZnRzX2NvbmZpZ3VyYXRpb25fZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnRzX2NvbmZpZ3VyYXRpb25zL3Rlc3RzL3Rlc3RfZnRzX2NvbmZpZ3VyYXRp b25fZGVsZXRlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjU2M2NjMWYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdHNfY29uZmlndXJhdGlvbnMvdGVzdHMvdGVzdF9mdHNfY29uZmlndXJh dGlvbl9kZWxldGUucHkKQEAgLTAsMCArMSw4NCBAQAorIyAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xz CisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWlu IERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNl ZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50 X2Z1bmN0aW9uCitpbXBvcnQgdXVpZAorCitmcm9tIHBnYWRtaW4udXRpbHMu cm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Np b24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcmVncmVzc2lvbiBp bXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSBwZ2FkbWluLmJyb3dz ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBv cnQgXAorICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNj aGVtYXMudGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBzY2hlbWFfdXRp bHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnRzX2NvbmZpZ3VyYXRpb25f dXRpbHMKKworCitjbGFzcyBGVFNDb25mRGVsZXRlVGVzdENhc2UoQmFzZVRl c3RHZW5lcmF0b3IpOgorICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgZGVsZXRl IGFkZGVkIEZUUyBjb25maWd1cmF0aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAi IiIKKworICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBk ZWZhdWx0IFVSTCBmb3IgZnRzX2NvbmZpZ3VyYXRpb24gbm9kZS4KKyAgICAg ICAgKCdGZXRjaCBGVFMgY29uZmlndXJhdGlvbiBOb2RlIFVSTCcsCisgICAg ICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvZnRzX2NvbmZpZ3VyYXRpb24vb2Jq LycpKQorICAgIF0KKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAg IiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgRlRTIGNvbmZpZ3VyYXRp b24uIiIiCisKKyAgICAgICAgc2NoZW1hX2RhdGEgPSBwYXJlbnRfbm9kZV9k aWN0WydzY2hlbWEnXVstMV0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9 IHNjaGVtYV9kYXRhWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2No ZW1hX2lkID0gc2NoZW1hX2RhdGFbJ3NjaGVtYV9pZCddCisgICAgICAgIHNl bGYuc2VydmVyX2lkID0gc2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCisgICAg ICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfZGF0YVsnZGJfaWQnXQorICAgICAg ICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJd Wy0xXVsiZGJfbmFtZSJdCisgICAgICAgIHNlbGYuZnRzX2NvbmZfbmFtZSA9 ICJmdHNfY29uZl8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjRdCisKKyAg ICAgICAgc2VsZi5mdHNfY29uZl9pZCA9IGZ0c19jb25maWd1cmF0aW9uX3V0 aWxzLmNyZWF0ZV9mdHNfY29uZmlndXJhdGlvbigKKyAgICAgICAgICAgIHNl bGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNl bGYuZnRzX2NvbmZfbmFtZSkKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgor ICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBuZXcgRlRT IGNvbmZpZ3VyYXRpb24gdW5kZXIgdGVzdAorICAgICAgICBzY2hlbWEuICIi IgorCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3Rf ZGF0YWJhc2Uoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKworICAgICAgICBp ZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4i OgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29u bmVjdCB0byBkYXRhYmFzZS4iKQorCisgICAgICAgIHNjaGVtYV9yZXNwb25z ZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1h X25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CisgICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBz Y2hlbWEuIikKKworICAgICAgICBmdHNfY29uZl9yZXNwb25zZSA9IGZ0c19j b25maWd1cmF0aW9uX3V0aWxzLnZlcmlmeV9mdHNfY29uZmlndXJhdGlvbigK KyAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYu ZnRzX2NvbmZfbmFtZQorICAgICAgICApCisKKyAgICAgICAgaWYgbm90IGZ0 c19jb25mX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJDb3VsZCBub3QgZmluZCB0aGUgRlRTIENvbmZpZ3VyYXRpb24uIikKKwor ICAgICAgICBkZWxldGVfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUo CisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JP VVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkg KyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsK KyAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKworICAg ICAgICAgICAgc3RyKHNlbGYuZnRzX2NvbmZfaWQpLAorICAgICAgICAgICAg Zm9sbG93X3JlZGlyZWN0cz1UcnVlKQorICAgICAgICBzZWxmLmFzc2VydEVx dWFscyhkZWxldGVfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKworICAg IGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlv biBkaXNjb25uZWN0IHRoZSB0ZXN0IGRhdGFiYXNlLiIiIgorCisgICAgICAg IGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2Vs Zi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z0c19jb25maWd1cmF0aW9ucy90ZXN0cy90ZXN0X2Z0c19jb25m aWd1cmF0aW9uX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19jb25maWd1 cmF0aW9ucy90ZXN0cy90ZXN0X2Z0c19jb25maWd1cmF0aW9uX2dldC5weQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjY4YzY5Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2NvbmZpZ3Vy YXRpb25zL3Rlc3RzL3Rlc3RfZnRzX2NvbmZpZ3VyYXRpb25fZ2V0LnB5CkBA IC0wLDAgKzEsNzcgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMg cGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQg KEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFt CisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3Rn cmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKwor ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgoraW1wb3J0 IHV1aWQKKworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNl VGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRf bm9kZV9kaWN0Citmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMg YXMgdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMu c2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBh cyBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVy X2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9y dCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9tIC4gaW1wb3J0 IHV0aWxzIGFzIGZ0c19jb25maWd1cmF0aW9uX3V0aWxzCisKKworY2xhc3Mg RlRTQ29uZkdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAi IiIgVGhpcyBjbGFzcyB3aWxsIGZldGNoIGFkZGVkIGZ0c19jb25maWd1cmF0 aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKworICAgIHNjZW5hcmlvcyA9 IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZnRzX2Nv bmZpZ3VyYXRpb24gbm9kZS4KKyAgICAgICAgKCdGZXRjaCBGVFMgY29uZmln dXJhdGlvbiBOb2RlIFVSTCcsCisgICAgICAgICBkaWN0KHVybD0nL2Jyb3dz ZXIvZnRzX2NvbmZpZ3VyYXRpb24vb2JqLycpKQorICAgIF0KKworICAgIGRl ZiBzZXRVcChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2ls bCBjcmVhdGUgRlRTIGNvbmZpZ3VyYXRpb24uIiIiCisKKyAgICAgICAgc2No ZW1hX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KKyAg ICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9kYXRhWydzY2hlbWFf bmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2RhdGFb J3NjaGVtYV9pZCddCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1h X2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzY2hl bWFfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJl bnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCisgICAg ICAgIHNlbGYuZnRzX2NvbmZfbmFtZSA9ICJmdHNfY29uZl8lcyIgJSBzdHIo dXVpZC51dWlkNCgpKVsxOjRdCisKKyAgICAgICAgc2VsZi5mdHNfY29uZl9p ZCA9IGZ0c19jb25maWd1cmF0aW9uX3V0aWxzLmNyZWF0ZV9mdHNfY29uZmln dXJhdGlvbigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25h bWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYuZnRzX2NvbmZfbmFtZSkKKwor ICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5j dGlvbiB3aWxsIGZldGNoIG5ldyBGVFMgY29uZmlndXJhdGlvbiB1bmRlcgor ICAgICAgICB0ZXN0IHNjaGVtYS4gIiIiCisKKyAgICAgICAgZGJfY29uID0g ZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0 aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmRiX2lkKQorCisgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9 PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCisK KyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlm eV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90 IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQorCisgICAgICAgIGdl dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldChzZWxmLnVybCArIHN0cih1 dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAn LycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RyKHNlbGYuZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycg KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry KHNlbGYuZnRzX2NvbmZfaWQpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisg ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGdldF9yZXNwb25zZS5zdGF0dXNf Y29kZSwgMjAwKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAg ICAiIiJUaGlzIGZ1bmN0aW9uIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJh c2UuIiIiCisKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9k YXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2NvbmZpZ3VyYXRpb25zL3Rl c3RzL3Rlc3RfZnRzX2NvbmZpZ3VyYXRpb25fcHV0LnB5IGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnRzX2NvbmZpZ3VyYXRpb25zL3Rlc3RzL3Rlc3RfZnRzX2NvbmZp Z3VyYXRpb25fcHV0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmNmNWVlZWEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdHNfY29uZmlndXJhdGlvbnMvdGVzdHMvdGVzdF9mdHNfY29uZmln dXJhdGlvbl9wdXQucHkKQEAgLTAsMCArMSw5MiBAQAorIyAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xz CisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWlu IERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNl ZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50 X2Z1bmN0aW9uCitpbXBvcnQgdXVpZAoraW1wb3J0IGpzb24KKworZnJvbSBw Z2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgor ZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9t IHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20g cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFz ZXMudGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBkYXRhYmFzZV91dGls cworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMg YXMgc2NoZW1hX3V0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZ0c19j b25maWd1cmF0aW9uX3V0aWxzCisKKworY2xhc3MgRlRTQ29uZlB1dFRlc3RD YXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3 aWxsIHVwZGF0ZSBhZGRlZCBGVFMgY29uZmlndXJhdGlvbiB1bmRlciBzY2hl bWEgbm9kZS4gIiIiCisKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMg RmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGZ0c19jb25maWd1cmF0aW9uIG5v ZGUuCisgICAgICAgICgnRmV0Y2ggRlRTIGNvbmZpZ3VyYXRpb24gTm9kZSBV UkwnLAorICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL2Z0c19jb25maWd1 cmF0aW9uL29iai8nKSkKKyAgICBdCisKKyAgICBkZWYgc2V0VXAoc2VsZik6 CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgY3JlYXRlIEZUUyBj b25maWd1cmF0aW9uLiIiIgorCisgICAgICAgIHNjaGVtYV9kYXRhID0gcGFy ZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2No ZW1hX25hbWUgPSBzY2hlbWFfZGF0YVsnc2NoZW1hX25hbWUnXQorICAgICAg ICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9kYXRhWydzY2hlbWFfaWQnXQor ICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9kYXRhWydzZXJ2ZXJf aWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2RhdGFbJ2RiX2lk J10KKyAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsi ZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgICAgICBzZWxmLmZ0c19j b25mX25hbWUgPSAiZnRzX2NvbmZfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlb MTo0XQorCisgICAgICAgIHNlbGYuZnRzX2NvbmZfaWQgPSBmdHNfY29uZmln dXJhdGlvbl91dGlscy5jcmVhdGVfZnRzX2NvbmZpZ3VyYXRpb24oCisgICAg ICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVt YV9uYW1lLCBzZWxmLmZ0c19jb25mX25hbWUpCisKKyAgICBkZWYgcnVuVGVz dChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRh dGUgbmV3IEZUUyBjb25maWd1cmF0aW9uIHVuZGVyCisgICAgICAgIHRlc3Qg c2NoZW1hLiAiIiIKKworICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGls cy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dS T1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisK KyAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBj b25uZWN0ZWQuIjoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291 bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKKworICAgICAgICBzY2hl bWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2Vs Zi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3Bv bnNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg ZmluZCB0aGUgc2NoZW1hLiIpCisKKyAgICAgICAgZnRzX2NvbmZfcmVzcG9u c2UgPSBmdHNfY29uZmlndXJhdGlvbl91dGlscy52ZXJpZnlfZnRzX2NvbmZp Z3VyYXRpb24oCisgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9u YW1lLCBzZWxmLmZ0c19jb25mX25hbWUKKyAgICAgICAgKQorCisgICAgICAg IGlmIG5vdCBmdHNfY29uZl9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIEZUUyBDb25maWd1cmF0 aW9uLiIpCisKKyAgICAgICAgZGF0YSA9IFwKKyAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhpcyBpcyBGVFMgY29u ZmlndXJhdGlvbiB1cGRhdGUgY29tbWVudCIsCisgICAgICAgICAgICAgICAg ImlkIjogc2VsZi5mdHNfY29uZl9pZAorICAgICAgICAgICAgfQorCisgICAg ICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKKyAgICAgICAg ICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycg KworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCisg ICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAgICAgICAg ICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArCisgICAgICAgICAgICBz dHIoc2VsZi5mdHNfY29uZl9pZCksCisgICAgICAgICAgICBkYXRhPWpzb24u ZHVtcHMoZGF0YSksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRy dWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHB1dF9yZXNwb25zZS5z dGF0dXNfY29kZSwgMjAwKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgor ICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRpc2Nvbm5lY3QgdGhlIHRlc3Qg ZGF0YWJhc2UuIiIiCisKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29u bmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lk KQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2NvbmZpZ3VyYXRp b25zL3Rlc3RzL3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2NvbmZp Z3VyYXRpb25zL3Rlc3RzL3V0aWxzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjgzODg2Y2IKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdHNfY29uZmlndXJhdGlvbnMvdGVzdHMvdXRpbHMu cHkKQEAgLTAsMCArMSw4MCBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor IworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHly aWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50 IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUg UG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgoraW1w b3J0IHRyYWNlYmFjaworaW1wb3J0IG9zCitpbXBvcnQgc3lzCitmcm9tIHJl Z3Jlc3Npb24udGVzdF91dGlscyBpbXBvcnQgZ2V0X2RiX2Nvbm5lY3Rpb24K KworZmlsZV9uYW1lID0gb3MucGF0aC5iYXNlbmFtZShfX2ZpbGVfXykKKwor CitkZWYgY3JlYXRlX2Z0c19jb25maWd1cmF0aW9uKHNlcnZlciwgZGJfbmFt ZSwgc2NoZW1hX25hbWUsIGZ0c19jb25mX25hbWUpOgorICAgICIiIlRoaXMg ZnVuY3Rpb24gd2lsbCBhZGQgdGhlIGZ0c19jb25maWd1cmF0aW9uIHVuZGVy IHRlc3Qgc2NoZW1hIHVzaW5nCisgICAgZGVmYXVsdCBwYXJzZXIuICIiIgor CisgICAgdHJ5OgorICAgICAgICBjb25uZWN0aW9uID0gZ2V0X2RiX2Nvbm5l Y3Rpb24oZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnZGJfcGFzc3dvcmQn XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl cnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VydmVyWydwb3J0J10pCisgICAgICAgIHBnX2N1cnNvciA9 IGNvbm5lY3Rpb24uY3Vyc29yKCkKKworICAgICAgICBxdWVyeSA9ICJDUkVB VEUgVEVYVCBTRUFSQ0ggQ09ORklHVVJBVElPTiAiICsgc2NoZW1hX25hbWUg KyAiLiIgKyBmdHNfY29uZl9uYW1lICsgXAorICAgICAgICAgICAgICAgICIo UEFSU0VSPWRlZmF1bHQpIgorCisgICAgICAgIHBnX2N1cnNvci5leGVjdXRl KHF1ZXJ5KQorICAgICAgICBjb25uZWN0aW9uLmNvbW1pdCgpCisKKyAgICAg ICAgIyBHZXQgJ29pZCcgZnJvbSBuZXdseSBjcmVhdGVkIGNvbmZpZ3VyYXRp b24KKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoInNlbGVjdCBvaWQgZnJv bSBwZ19jYXRhbG9nLnBnX3RzX2NvbmZpZyB3aGVyZSAiCisgICAgICAgICAg ICAgICAgICAgICAgICAgICJjZmduYW1lID0gJyVzJyBvcmRlciBieSBvaWQg QVNDIGxpbWl0IDEiCisgICAgICAgICAgICAgICAgICAgICAgICAgICUgZnRz X2NvbmZfbmFtZSkKKworICAgICAgICBvaWQgPSBwZ19jdXJzb3IuZmV0Y2hv bmUoKQorICAgICAgICBmdHNfY29uZl9pZCA9ICcnCisgICAgICAgIGlmIG9p ZDoKKyAgICAgICAgICAgIGZ0c19jb25mX2lkID0gb2lkWzBdCisgICAgICAg IGNvbm5lY3Rpb24uY2xvc2UoKQorICAgICAgICByZXR1cm4gZnRzX2NvbmZf aWQKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICB0cmFjZWJhY2su cHJpbnRfZXhjKGZpbGU9c3lzLnN0ZGVycikKKworCitkZWYgdmVyaWZ5X2Z0 c19jb25maWd1cmF0aW9uKHNlcnZlciwgZGJfbmFtZSwgZnRzX2NvbmZfbmFt ZSk6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiB3aWxsIHZlcmlmeSBj dXJyZW50IEZUUyBjb25maWd1cmF0aW9uLgorCisgICAgOnBhcmFtIHNlcnZl cjogc2VydmVyIGRldGFpbHMKKyAgICA6dHlwZSBzZXJ2ZXI6IGRpY3QKKyAg ICA6cGFyYW0gZGJfbmFtZTogZGF0YWJhc2UgbmFtZQorICAgIDp0eXBlIGRi X25hbWU6IHN0cgorICAgIDpwYXJhbSBmdHNfY29uZl9uYW1lOiBGVFMgY29u ZmlndXJhdGlvbiBuYW1lIHRvIGJlIGFkZGVkCisgICAgOnR5cGUgZnRzX2Nv bmZfbmFtZTogc3RyCisgICAgOnJldHVybiBmdHNfY29uZjogRlRTIGNvbmZp Z3VyYXRpb24gZGV0YWlsCisgICAgOnJ0eXBlOiB0dXBsZQorICAgICIiIgor ICAgIHRyeToKKyAgICAgICAgY29ubmVjdGlvbiA9IGdldF9kYl9jb25uZWN0 aW9uKGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZXJ2ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2 ZXJbJ2hvc3QnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlcnZlclsncG9ydCddKQorICAgICAgICBwZ19jdXJzb3IgPSBj b25uZWN0aW9uLmN1cnNvcigpCisKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1 dGUoCisgICAgICAgICAgICAic2VsZWN0IG9pZCBmcm9tIHBnX2NhdGFsb2cu cGdfdHNfY29uZmlnIHdoZXJlICIKKyAgICAgICAgICAgICJjZmduYW1lID0g JyVzJyBvcmRlciBieSBvaWQgQVNDIGxpbWl0IDEiCisgICAgICAgICAgICAl IGZ0c19jb25mX25hbWUpCisgICAgICAgIGZ0c19jb25mID0gcGdfY3Vyc29y LmZldGNob25lKCkKKyAgICAgICAgY29ubmVjdGlvbi5jbG9zZSgpCisgICAg ICAgIHJldHVybiBmdHNfY29uZgorICAgIGV4Y2VwdCBFeGNlcHRpb246Cisg ICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1zeXMuc3RkZXJyKQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2RpY3Rpb25hcmllcy90 ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9u YXJpZXMvdGVzdHMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uMWUyY2U1NQotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9uYXJpZXMvdGVzdHMvX19pbml0X18u cHkKQEAgLTAsMCArMSwxNiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIwor IyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZl bG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5k ZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGlt cG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorCisKK2NsYXNzIEZvcmVpZ25UYWJs ZVRlc3RHZW5lcmF0b3IoQmFzZVRlc3RHZW5lcmF0b3IpOgorCisgICAgZGVm IHJ1blRlc3Qoc2VsZik6CisgICAgICAgIHJldHVybiBbXQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2RpY3Rpb25hcmllcy90ZXN0cy90ZXN0 X2Z0c19kaWN0aW9uYXJpZXNfYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRz X2RpY3Rpb25hcmllcy90ZXN0cy90ZXN0X2Z0c19kaWN0aW9uYXJpZXNfYWRk LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyNjQz NjEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfZGlj dGlvbmFyaWVzL3Rlc3RzL3Rlc3RfZnRzX2RpY3Rpb25hcmllc19hZGQucHkK QEAgLTAsMCArMSw4MiBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIwor IyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdo dCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRl YW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9z dGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCitpbXBv cnQgdXVpZAoraW1wb3J0IGpzb24KKworZnJvbSBwZ2FkbWluLnV0aWxzLnJv dXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9u IGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHJlZ3Jlc3Npb24gaW1w b3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0 IFwKKyAgICB1dGlscyBhcyBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hl bWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxz CisKKworY2xhc3MgRnRzRGljdGlvbmFyeUFkZFRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCBuZXcg RlRTIGRpY3Rpb25hcnkgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorCisgICAg c2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJM IGZvciBGVFMgZGljdGlvbmFyeSBub2RlLgorICAgICAgICAoJ0ZldGNoIEZU UyBkaWN0aW9uYXJ5IE5vZGUgVVJMJywgZGljdCgKKyAgICAgICAgICAgIHVy bD0nL2Jyb3dzZXIvZnRzX2RpY3Rpb25hcnkvb2JqLycpKQorICAgIF0KKwor ICAgIGRlZiBydW5UZXN0KHNlbGYpOgorCisgICAgICAgIHNlbGYuc2NoZW1h X2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KKyAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVt YV9uYW1lJ10KKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVt YV9kYXRhWydzY2hlbWFfaWQnXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9 IHNlbGYuc2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYu ZGJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydkYl9pZCddCisgICAgICAgIHNl bGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFd WyJkYl9uYW1lIl0KKworICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGls cy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dS T1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisK KyAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBj b25uZWN0ZWQuIjoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291 bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKKworICAgICAgICBzY2hl bWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2Vs Zi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3Bv bnNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg ZmluZCB0aGUgc2NoZW1hLiIpCisKKyAgICAgICAgZGF0YSA9IFwKKyAgICAg ICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJmdHNfZGljdF8l cyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjRdLAorICAgICAgICAgICAgICAg ICJvcHRpb25zIjogWworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICAgICAgICAgICAidmFsdWUiOiAic3lub255bV9zYW1wbGUiLAor ICAgICAgICAgICAgICAgICAgICAgICAgIm9wdGlvbiI6ICJzeW5vbnltcyIK KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIF0sCisg ICAgICAgICAgICAgICAgIm93bmVyIjogc2VsZi5zZXJ2ZXJbInVzZXJuYW1l Il0sCisgICAgICAgICAgICAgICAgInNjaGVtYSI6IHNlbGYuc2NoZW1hX2lk LAorICAgICAgICAgICAgICAgICJ0ZW1wbGF0ZSI6ICJzeW5vbnltIgorICAg ICAgICAgICAgfQorCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIu cG9zdCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZF Ul9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVy X2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArCisgICAgICAgICAgICAn LycgKyBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nLAorICAgICAgICAgICAg ZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAgICAgY29udGVudF90 eXBlPSdodG1sL2pzb24nKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz KHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICBkZWYgdGVhckRv d24oc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGlzY29ubmVj dCB0aGUgdGVzdCBkYXRhYmFzZS4iIiIKKworICAgICAgICBkYXRhYmFzZV91 dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lk LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNf ZGljdGlvbmFyaWVzL3Rlc3RzL3Rlc3RfZnRzX2RpY3Rpb25hcmllc19kZWxl dGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFyaWVzL3Rlc3Rz L3Rlc3RfZnRzX2RpY3Rpb25hcmllc19kZWxldGUucHkKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjM0NjNiMwotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9uYXJpZXMvdGVzdHMv dGVzdF9mdHNfZGljdGlvbmFyaWVzX2RlbGV0ZS5weQpAQCAtMCwwICsxLDg3 IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAt IFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0g MjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNv ZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2Vu Y2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20gX19mdXR1 cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCB1dWlkCisKK2Zy b20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0 b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAor ZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0 YWJhc2VzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgZGF0YWJhc2Vf dXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2Vy dmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAorICAgIHV0 aWxzIGFzIHNjaGVtYV91dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBm dHNfZGljdF91dGlscworCisKK2NsYXNzIEZ0c0RpY3Rpb25hcnlEZWxldGVU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiIFRoaXMgY2xh c3Mgd2lsbCBkZWxldGUgYWRkZWQgRlRTIERpY3Rpb25hcnkgdW5kZXIgc2No ZW1hIG5vZGUuICIiIgorCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAj IEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBGVFMgZGljdGlvbmFyeSBub2Rl LgorICAgICAgICAoJ0ZldGNoIEZUUyBkaWN0aW9uYXJ5IE5vZGUgVVJMJywg ZGljdCgKKyAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnRzX2RpY3Rpb25h cnkvb2JqLycpKQorICAgIF0KKworICAgIGRlZiBzZXRVcChzZWxmKToKKwor ICAgICAgICBzZWxmLnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsn c2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxm LnNjaGVtYV9kYXRhWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2No ZW1hX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX2lkJ10KKyAgICAg ICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydzZXJ2ZXJf aWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsn ZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9k aWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCisgICAgICAgIHNlbGYu ZnRzX2RpY3RfbmFtZSA9ICJmdHNfZGljdF8lcyIgJSBzdHIodXVpZC51dWlk NCgpKVsxOjRdCisKKyAgICAgICAgc2VsZi5mdHNfZGljdF9pZCA9IGZ0c19k aWN0X3V0aWxzLmNyZWF0ZV9mdHNfZGljdGlvbmFyeSgKKyAgICAgICAgICAg IHNlbGYuc2VydmVyLAorICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAg ICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgIHNlbGYu ZnRzX2RpY3RfbmFtZSkKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAg ICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSBGVFMgZGljdGlv bmFyeSBwcmVzZW50IHVuZGVyCisgICAgICAgICAgICAgICAgICAgdGVzdCBz Y2hlbWEuICIiIgorCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxz LmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JP VVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKwor ICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNv bm5lY3RlZC4iOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3Vs ZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQorCisgICAgICAgIHNjaGVt YV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxm LnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuc2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9u c2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBm aW5kIHRoZSBzY2hlbWEuIikKKworICAgICAgICBkaWN0X3Jlc3BvbnNlID0g ZnRzX2RpY3RfdXRpbHMudmVyaWZ5X2Z0c19kaWN0KHNlbGYuc2VydmVyLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZ0c19k aWN0X25hbWUpCisKKyAgICAgICAgaWYgbm90IGRpY3RfcmVzcG9uc2U6Cisg ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRo ZSBGVFMgZGljdGlvbmFyeS4iKQorCisgICAgICAgIGRlbGV0ZV9yZXNwb25z ZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKKyAgICAgICAgICAgIHNlbGYudXJs ICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAg ICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICBz dHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYu c2NoZW1hX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5mdHNf ZGljdF9pZCksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUp CisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZGVsZXRlX3Jlc3BvbnNl LnN0YXR1c19jb2RlLCAyMDApCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6 CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGlzY29ubmVjdCB0aGUgdGVz dCBkYXRhYmFzZS4iIiIKKworICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNj b25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJf aWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFy aWVzL3Rlc3RzL3Rlc3RfZnRzX2RpY3Rpb25hcmllc19nZXQucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFyaWVzL3Rlc3RzL3Rlc3RfZnRzX2Rp Y3Rpb25hcmllc19nZXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZjAwNzFjOAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z0c19kaWN0aW9uYXJpZXMvdGVzdHMvdGVzdF9mdHNfZGljdGlv bmFyaWVzX2dldC5weQpAQCAtMCwwICsxLDc3IEBACisjICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMK KyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4g RGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2Vk IHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRf ZnVuY3Rpb24KK2ltcG9ydCB1dWlkCisKK2Zyb20gcGdhZG1pbi51dGlscy5y b3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lv biBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9uIGlt cG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nl ci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9y dCBcCisgICAgdXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2No ZW1hcy50ZXN0cyBpbXBvcnQgXAorICAgIHV0aWxzIGFzIHNjaGVtYV91dGls cworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBmdHNfZGljdF91dGlscworCisK K2NsYXNzIEZ0c0RpY3Rpb25hcnlHZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVy YXRvcik6CisgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBmZXRjaCBuZXcgRlRT IGRpY3Rpb25hcnkgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorCisgICAgc2Nl bmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZv ciBGVFMgZGljdGlvbmFyeSBub2RlLgorICAgICAgICAoJ0ZldGNoIEZUUyBk aWN0aW9uYXJ5IE5vZGUgVVJMJywgZGljdCgKKyAgICAgICAgICAgIHVybD0n L2Jyb3dzZXIvZnRzX2RpY3Rpb25hcnkvb2JqLycpKQorICAgIF0KKworICAg IGRlZiBzZXRVcChzZWxmKToKKworICAgICAgICBzZWxmLnNjaGVtYV9kYXRh ID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNl bGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfbmFt ZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfZGF0 YVsnc2NoZW1hX2lkJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxm LnNjaGVtYV9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lk ID0gc2VsZi5zY2hlbWFfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRi X25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJf bmFtZSJdCisgICAgICAgIHNlbGYuZnRzX2RpY3RfbmFtZSA9ICJmdHNfZGlj dF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjRdCisKKyAgICAgICAgc2Vs Zi5mdHNfZGljdF9pZCA9IGZ0c19kaWN0X3V0aWxzLmNyZWF0ZV9mdHNfZGlj dGlvbmFyeSgKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLAorICAgICAgICAg ICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFt ZSwKKyAgICAgICAgICAgIHNlbGYuZnRzX2RpY3RfbmFtZSkKKworICAgIGRl ZiBydW5UZXN0KHNlbGYpOgorCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNl X3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJW RVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9p ZCkKKworICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFi YXNlIGNvbm5lY3RlZC4iOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQorCisgICAgICAg IHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1h cyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hlbWFf cmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxk IG5vdCBmaW5kIHRoZSBzY2hlbWEuIikKKworICAgICAgICByZXNwb25zZSA9 IHNlbGYudGVzdGVyLmdldChzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJf R1JPVVApICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcv JyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihz ZWxmLnNjaGVtYV9pZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHIoc2VsZi5mdHNfZGljdF9pZCksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRt bC9qc29uJykKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25z ZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYp OgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRpc2Nvbm5lY3QgdGhlIHRl c3QgZGF0YWJhc2UuIiIiCisKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlz Y29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRi X2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2RpY3Rpb25h cmllcy90ZXN0cy90ZXN0X2Z0c19kaWN0aW9uYXJpZXNfcHV0LnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnRzX2RpY3Rpb25hcmllcy90ZXN0cy90ZXN0X2Z0c19k aWN0aW9uYXJpZXNfcHV0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjgxZmI5MDIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdHNfZGljdGlvbmFyaWVzL3Rlc3RzL3Rlc3RfZnRzX2RpY3Rp b25hcmllc19wdXQucHkKQEAgLTAsMCArMSw5NSBAQAorIyAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xz CisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWlu IERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNl ZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50 X2Z1bmN0aW9uCitpbXBvcnQgdXVpZAoraW1wb3J0IGpzb24KKworZnJvbSBw Z2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgor ZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9t IHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20g cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFz ZXMudGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBkYXRhYmFzZV91dGls cworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMg YXMgc2NoZW1hX3V0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZ0c19k aWN0X3V0aWxzCisKKworY2xhc3MgRnRzRGljdGlvbmFyeVB1dFRlc3RDYXNl KEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxs IHVwZGF0ZSBhZGRlZCBGVFMgZGljdGlvbmFyeSB1bmRlciBzY2hlbWEgbm9k ZS4gIiIiCisKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hp bmcgZGVmYXVsdCBVUkwgZm9yIEZUUyBkaWN0aW9uYXJ5IG5vZGUuCisgICAg ICAgICgnRmV0Y2ggRlRTIGRpY3Rpb25hcnkgTm9kZSBVUkwnLCBkaWN0KAor ICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9mdHNfZGljdGlvbmFyeS9vYmov JykpCisgICAgXQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorCisgICAgICAg IHNlbGYuc2NoZW1hX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEn XVstMV0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1h X2RhdGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2VsZi5zY2hlbWFfaWQg PSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfaWQnXQorICAgICAgICBzZWxm LnNlcnZlcl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCisg ICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydkYl9pZCdd CisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRh dGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KKyAgICAgICAgc2VsZi5mdHNfZGlj dF9uYW1lID0gImZ0c19kaWN0XyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6 NF0KKworICAgICAgICBzZWxmLmZ0c19kaWN0X2lkID0gZnRzX2RpY3RfdXRp bHMuY3JlYXRlX2Z0c19kaWN0aW9uYXJ5KAorICAgICAgICAgICAgc2VsZi5z ZXJ2ZXIsCisgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAg ICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgc2VsZi5mdHNfZGlj dF9uYW1lKQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIi IiBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIEZUUyBkaWN0aW9uYXJ5IHBy ZXNlbnQgdW5kZXIKKyAgICAgICAgICAgICAgICAgICB0ZXN0IHNjaGVtYS4g IiIiCisKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVj dF9kYXRhYmFzZShzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorCisgICAgICAg IGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVk LiI6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBj b25uZWN0IHRvIGRhdGFiYXNlLiIpCisKKyAgICAgICAgc2NoZW1hX3Jlc3Bv bnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hl bWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhl IHNjaGVtYS4iKQorCisgICAgICAgIGRpY3RfcmVzcG9uc2UgPSBmdHNfZGlj dF91dGlscy52ZXJpZnlfZnRzX2RpY3Qoc2VsZi5zZXJ2ZXIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnRzX2RpY3RfbmFt ZSkKKworICAgICAgICBpZiBub3QgZGljdF9yZXNwb25zZToKKyAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIEZUUyBk aWN0aW9uYXJ5LiIpCisKKyAgICAgICAgZGF0YSA9IFwKKyAgICAgICAgICAg IHsKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhpcyBpcyBG VFMgZGljdGlvbmFyeSB1cGRhdGUgY29tbWVudCIsCisgICAgICAgICAgICAg ICAgImlkIjogc2VsZi5mdHNfZGljdF9pZAorCisgICAgICAgICAgICB9Cisg ICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKKyAgICAg ICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAn LycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyAr CisgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAgICAg ICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArCisgICAgICAgICAg ICBzdHIoc2VsZi5mdHNfZGljdF9pZCksCisgICAgICAgICAgICBkYXRhPWpz b24uZHVtcHMoZGF0YSksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3Rz PVRydWUpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocHV0X3Jlc3Bv bnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICBkZWYgdGVhckRvd24oc2Vs Zik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGlzY29ubmVjdCB0aGUg dGVzdCBkYXRhYmFzZS4iIiIKKworICAgICAgICBkYXRhYmFzZV91dGlscy5k aXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfZGljdGlv bmFyaWVzL3Rlc3RzL3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2Rp Y3Rpb25hcmllcy90ZXN0cy91dGlscy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi41NDI0NjMzCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnRzX2RpY3Rpb25hcmllcy90ZXN0cy91dGlscy5w eQpAQCAtMCwwICsxLDgwIEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisj CisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJp Z2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQg VGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQ b3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KK2lt cG9ydCB0cmFjZWJhY2sKK2ltcG9ydCBvcworaW1wb3J0IHN5cworZnJvbSBy ZWdyZXNzaW9uLnRlc3RfdXRpbHMgaW1wb3J0IGdldF9kYl9jb25uZWN0aW9u CisKK2ZpbGVfbmFtZSA9IG9zLnBhdGguYmFzZW5hbWUoX19maWxlX18pCisK KworZGVmIGNyZWF0ZV9mdHNfZGljdGlvbmFyeShzZXJ2ZXIsIGRiX25hbWUs IHNjaGVtYV9uYW1lLCBmdHNfZGljdF9uYW1lKToKKyAgICAiIiJUaGlzIGZ1 bmN0aW9uIHdpbGwgYWRkIHRoZSBmdHNfZGljdGlvbmFyeSB1bmRlciB0ZXN0 IHNjaGVtYS4gIiIiCisKKyAgICB0cnk6CisgICAgICAgIGNvbm5lY3Rpb24g PSBnZXRfZGJfY29ubmVjdGlvbihkYl9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWyd1c2VybmFtZSddLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVy WydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VydmVyWydob3N0J10sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3BvcnQnXSkKKyAgICAg ICAgcGdfY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQorCisgICAgICAg IHF1ZXJ5ID0gIkNSRUFURSBURVhUIFNFQVJDSCBESUNUSU9OQVJZICVzLiVz IChURU1QTEFURSA9IHNpbXBsZSkiICUgKAorICAgICAgICAgICAgc2NoZW1h X25hbWUsIGZ0c19kaWN0X25hbWUpCisKKyAgICAgICAgcGdfY3Vyc29yLmV4 ZWN1dGUocXVlcnkpCisgICAgICAgIGNvbm5lY3Rpb24uY29tbWl0KCkKKwor ICAgICAgICAjIEdldCAnb2lkJyBmcm9tIG5ld2x5IGNyZWF0ZWQgZGljdGlv bmFyeQorICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZSgic2VsZWN0IG9pZCBm cm9tIHBnX2NhdGFsb2cucGdfdHNfZGljdCB3aGVyZSAiCisgICAgICAgICAg ICAgICAgICAgICAgICAgICJkaWN0bmFtZSA9ICclcycgb3JkZXIgYnkgb2lk IEFTQyBsaW1pdCAxIgorICAgICAgICAgICAgICAgICAgICAgICAgICAlIGZ0 c19kaWN0X25hbWUpCisKKyAgICAgICAgb2lkID0gcGdfY3Vyc29yLmZldGNo b25lKCkKKyAgICAgICAgZnRzX2RpY3RfaWQgPSAnJworICAgICAgICBpZiBv aWQ6CisgICAgICAgICAgICBmdHNfZGljdF9pZCA9IG9pZFswXQorICAgICAg ICBjb25uZWN0aW9uLmNsb3NlKCkKKyAgICAgICAgcmV0dXJuIGZ0c19kaWN0 X2lkCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdHJhY2ViYWNr LnByaW50X2V4YyhmaWxlPXN5cy5zdGRlcnIpCisKKworZGVmIHZlcmlmeV9m dHNfZGljdChzZXJ2ZXIsIGRiX25hbWUsIGZ0c19kaWN0X25hbWUpOgorICAg ICIiIgorICAgIFRoaXMgZnVuY3Rpb24gd2lsbCB2ZXJpZnkgY3VycmVudCBG VFMgZGljdGlvbmFyeS4KKworICAgIDpwYXJhbSBzZXJ2ZXI6IHNlcnZlciBk ZXRhaWxzCisgICAgOnR5cGUgc2VydmVyOiBkaWN0CisgICAgOnBhcmFtIGRi X25hbWU6IGRhdGFiYXNlIG5hbWUKKyAgICA6dHlwZSBkYl9uYW1lOiBzdHIK KyAgICA6cGFyYW0gZnRzX2RpY3RfbmFtZTogRlRTIGRpY3Rpb25hcnkgbmFt ZSB0byBiZSBhZGRlZAorICAgIDp0eXBlIGZ0c19kaWN0X25hbWU6IHN0cgor ICAgIDpyZXR1cm4gZnRzX2RpY3Q6IEZUUyBkaWN0aW9uYXJ5IGRldGFpbAor ICAgIDpydHlwZTogdHVwbGUKKyAgICAiIiIKKyAgICB0cnk6CisgICAgICAg IGNvbm5lY3Rpb24gPSBnZXRfZGJfY29ubmVjdGlvbihkYl9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWyd1 c2VybmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyWydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydob3N0J10sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3Bv cnQnXSkKKyAgICAgICAgcGdfY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3Io KQorCisgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKAorICAgICAgICAgICAg InNlbGVjdCBvaWQgZnJvbSBwZ19jYXRhbG9nLnBnX3RzX2RpY3Qgd2hlcmUg IgorICAgICAgICAgICAgImRpY3RuYW1lID0gJyVzJyBvcmRlciBieSBvaWQg QVNDIGxpbWl0IDEiCisgICAgICAgICAgICAlIGZ0c19kaWN0X25hbWUpCisg ICAgICAgIGZ0c19kaWN0ID0gcGdfY3Vyc29yLmZldGNob25lKCkKKyAgICAg ICAgY29ubmVjdGlvbi5jbG9zZSgpCisgICAgICAgIHJldHVybiBmdHNfZGlj dAorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIHRyYWNlYmFjay5w cmludF9leGMoZmlsZT1zeXMuc3RkZXJyKQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnRzX3BhcnNlci90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVzdHMvX19pbml0X18ucHkKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWUyY2U1NQotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVzdHMv X19pbml0X18ucHkKQEAgLTAsMCArMSwxNiBAQAorIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBU b29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdB ZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVs ZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZnJvbSBwZ2FkbWluLnV0aWxz LnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorCisKK2NsYXNzIEZv cmVpZ25UYWJsZVRlc3RHZW5lcmF0b3IoQmFzZVRlc3RHZW5lcmF0b3IpOgor CisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgIHJldHVybiBbXQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3BhcnNlci90ZXN0cy90 ZXN0X2Z0c19wYXJzZXJfYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3Bh cnNlci90ZXN0cy90ZXN0X2Z0c19wYXJzZXJfYWRkLnB5Cm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxMjgyZjIKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFyc2VyL3Rlc3RzL3Rlc3Rf ZnRzX3BhcnNlcl9hZGQucHkKQEAgLTAsMCArMSw3OCBAQAorIyAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRv b2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0Fk bWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxl YXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHBy aW50X2Z1bmN0aW9uCitpbXBvcnQgdXVpZAoraW1wb3J0IGpzb24KKworZnJv bSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRv cgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citm cm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMudGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBkYXRhYmFzZV91 dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRp bHMgYXMgc2NoZW1hX3V0aWxzCisKKworY2xhc3MgRnRzUGFyc2VyQWRkVGVz dENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIiBUaGlzIGNsYXNz IHdpbGwgYWRkIG5ldyBGVFMgcGFyc2VyIHVuZGVyIHNjaGVtYSBub2RlLiAi IiIKKworICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBk ZWZhdWx0IFVSTCBmb3IgRlRTIHBhcnNlciBub2RlLgorICAgICAgICAoJ0Zl dGNoIEZUUyBwYXJzZXIgTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIv ZnRzX3BhcnNlci9vYmovJykpCisgICAgXQorCisgICAgZGVmIHJ1blRlc3Qo c2VsZik6CisKKyAgICAgICAgc2VsZi5zY2hlbWFfZGF0YSA9IHBhcmVudF9u b2RlX2RpY3RbJ3NjaGVtYSddWy0xXQorICAgICAgICBzZWxmLnNjaGVtYV9u YW1lID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX25hbWUnXQorICAgICAg ICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9p ZCddCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0 YVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2No ZW1hX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFy ZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorCisg ICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJh c2Uoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKworICAgICAgICBpZiBub3Qg ZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgorICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0 byBkYXRhYmFzZS4iKQorCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNj aGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUp CisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEu IikKKworICAgICAgICBzZWxmLmRhdGEgPSBcCisgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgICAgIm5hbWUiOiAiZnRzX3BhcnNlcl8lcyIgJSBzdHIo dXVpZC51dWlkNCgpKVsxOjRdLAorICAgICAgICAgICAgICAgICJzY2hlbWEi OiBzZWxmLnNjaGVtYV9pZCwKKyAgICAgICAgICAgICAgICAicHJzZW5kIjog ImJ0ZmxvYXQ0c29ydHN1cHBvcnQiLAorICAgICAgICAgICAgICAgICJwcnNo ZWFkbGluZSI6ICJwcnNkX2hlYWRsaW5lIiwKKyAgICAgICAgICAgICAgICAi cHJzbGV4dHlwZSI6ICJkc3lub255bV9pbml0IiwKKyAgICAgICAgICAgICAg ICAicHJzc3RhcnQiOiAiaW50NF9hY2N1bSIsCisgICAgICAgICAgICAgICAg InByc3Rva2VuIjogImdpc3RfYm94X3BlbmFsdHkiCisgICAgICAgICAgICB9 CisKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAorICAg ICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSAr ICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8n ICsgc3RyKHNlbGYuZGJfaWQpICsKKyAgICAgICAgICAgICcvJyArIHN0cihz ZWxmLnNjaGVtYV9pZCkgKyAnLycsCisgICAgICAgICAgICBkYXRhPWpzb24u ZHVtcHMoc2VsZi5kYXRhKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0n aHRtbC9qc29uJykKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNw b25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgZGVmIHRlYXJEb3duKHNl bGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRpc2Nvbm5lY3QgdGhl IHRlc3QgZGF0YWJhc2UuIiIiCisKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMu ZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3BhcnNl ci90ZXN0cy90ZXN0X2Z0c19wYXJzZXJfZGVsZXRlLnB5IGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnRzX3BhcnNlci90ZXN0cy90ZXN0X2Z0c19wYXJzZXJfZGVsZXRl LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhMzMz ODEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFy c2VyL3Rlc3RzL3Rlc3RfZnRzX3BhcnNlcl9kZWxldGUucHkKQEAgLTAsMCAr MSw4NyBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWlu IDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAx MyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhp cyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBM aWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9tIF9f ZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCitpbXBvcnQgdXVpZAor Citmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2Vu ZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2Rp Y3QKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGls cworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAorICAgIHV0aWxzIGFzIGRhdGFi YXNlX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKKyAg ICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMg YXMgZnRzX3BhcnNlcl91dGlscworCisKK2NsYXNzIEZ0c1BhcnNlckRlbGV0 ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBj bGFzcyB3aWxsIGRlbGV0ZSBhZGRlZCBGVFMgUGFyc2VyIHVuZGVyIHNjaGVt YSBub2RlLiAiIiIKKworICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBG ZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgRlRTIHBhcnNlciBub2RlLgorICAg ICAgICAoJ0ZldGNoIEZUUyBwYXJzZXIgTm9kZSBVUkwnLCBkaWN0KHVybD0n L2Jyb3dzZXIvZnRzX3BhcnNlci9vYmovJykpCisgICAgXQorCisgICAgZGVm IHNldFVwKHNlbGYpOgorCisgICAgICAgIHNlbGYuc2NoZW1hX2RhdGEgPSBw YXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KKyAgICAgICAgc2VsZi5z Y2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10K KyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydz Y2hlbWFfaWQnXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2No ZW1hX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBz ZWxmLnNjaGVtYV9kYXRhWydkYl9pZCddCisgICAgICAgIHNlbGYuZGJfbmFt ZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1l Il0KKyAgICAgICAgc2VsZi5mdHNfcGFyc2VyX25hbWUgPSAiZnRzX3BhcnNl cl8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjRdCisKKyAgICAgICAgc2Vs Zi5mdHNfcGFyc2VyX2lkID0gZnRzX3BhcnNlcl91dGlscy5jcmVhdGVfZnRz X3BhcnNlcigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLAorICAgICAgICAg ICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFt ZSwKKyAgICAgICAgICAgIHNlbGYuZnRzX3BhcnNlcl9uYW1lKQorCisgICAg ZGVmIHJ1blRlc3Qoc2VsZik6CisKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rp b24gd2lsbCBkZWxldGUgRlRTIHBhcnNlciBwcmVzZW50IHVuZGVyCisgICAg ICAgICAgICB0ZXN0IHNjaGVtYS4gIiIiCisKKyAgICAgICAgZGJfY29uID0g ZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0 aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmRiX2lkKQorCisgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9 PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCisK KyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlm eV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90 IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQorCisgICAgICAgIHBh cnNlcl9yZXNwb25zZSA9IGZ0c19wYXJzZXJfdXRpbHMudmVyaWZ5X2Z0c19w YXJzZXIoc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9u YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnRzX3BhcnNlcl9uYW1lKQor CisgICAgICAgIGlmIG5vdCBwYXJzZXJfcmVzcG9uc2U6CisgICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBGVFMgcGFy c2VyLiIpCisKKyAgICAgICAgZGVsZXRlX3Jlc3BvbnNlID0gc2VsZi50ZXN0 ZXIuZGVsZXRlKAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMu U0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5z ZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLmRiX2lk KSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsg Jy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLmZ0c19wYXJzZXJfaWQpLAor ICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorCisgICAgICAg IHNlbGYuYXNzZXJ0RXF1YWxzKGRlbGV0ZV9yZXNwb25zZS5zdGF0dXNfY29k ZSwgMjAwKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAi IiJUaGlzIGZ1bmN0aW9uIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2Uu IiIiCisKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRh YmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3BhcnNlci90ZXN0cy90ZXN0X2Z0 c19wYXJzZXJfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3BhcnNlci90 ZXN0cy90ZXN0X2Z0c19wYXJzZXJfZ2V0LnB5Cm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjYyOGU2NWIKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFyc2VyL3Rlc3RzL3Rlc3RfZnRzX3Bh cnNlcl9nZXQucHkKQEAgLTAsMCArMSw3NiBAQAorIyAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisj CisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERl dmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1 bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1 bmN0aW9uCitpbXBvcnQgdXVpZAorCitmcm9tIHBnYWRtaW4udXRpbHMucm91 dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24g aW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcmVncmVzc2lvbiBpbXBv cnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIu c2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQg XAorICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVt YXMudGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMK K2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnRzX3BhcnNlcl91dGlscworCisK K2NsYXNzIEZ0c1BhcnNlckdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9y KToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCBuZXcgZm9yZWlnbiB0 YWJsZSB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCisKKyAgICBzY2VuYXJpb3Mg PSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIEZUUyBw YXJzZXIgbm9kZS4KKyAgICAgICAgKCdGZXRjaCBGVFMgcGFyc2VyIE5vZGUg VVJMJywgZGljdCh1cmw9Jy9icm93c2VyL2Z0c19wYXJzZXIvb2JqLycpKQor ICAgIF0KKworICAgIGRlZiBzZXRVcChzZWxmKToKKworICAgICAgICBzZWxm LnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFd CisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9kYXRh WydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2Vs Zi5zY2hlbWFfZGF0YVsnc2NoZW1hX2lkJ10KKyAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAg ICBzZWxmLmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnZGJfaWQnXQorICAg ICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFz ZSJdWy0xXVsiZGJfbmFtZSJdCisgICAgICAgIHNlbGYuZnRzX3BhcnNlcl9u YW1lID0gImZ0c19wYXJzZXJfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo0 XQorCisgICAgICAgIHNlbGYuZnRzX3BhcnNlcl9pZCA9IGZ0c19wYXJzZXJf dXRpbHMuY3JlYXRlX2Z0c19wYXJzZXIoCisgICAgICAgICAgICBzZWxmLnNl cnZlciwKKyAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAg IHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICBzZWxmLmZ0c19wYXJz ZXJfbmFtZSkKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorCisgICAgICAg IGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2Vs ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJf aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kYl9pZCkKKworICAgICAgICBpZiBub3QgZGJfY29u WyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgorICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRh YmFzZS4iKQorCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91 dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAg ICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEuIikKKwor ICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldChzZWxmLnVybCAr IHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSAr ICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cihzZWxmLmRiX2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi5mdHNf cGFyc2VyX2lkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAg ICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rp b24gZGlzY29ubmVjdCB0aGUgdGVzdCBkYXRhYmFzZS4iIiIKKworICAgICAg ICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNl bGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdHNfcGFyc2VyL3Rlc3RzL3Rlc3RfZnRzX3BhcnNlcl9wdXQu cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFyc2VyL3Rlc3RzL3Rlc3RfZnRz X3BhcnNlcl9wdXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uODNlNzdkMgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z0c19wYXJzZXIvdGVzdHMvdGVzdF9mdHNfcGFyc2VyX3B1dC5weQpA QCAtMCwwICsxLDk2IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisj IHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0 IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVh bQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0 Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisK K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KK2ltcG9y dCB1dWlkCitpbXBvcnQganNvbgorCitmcm9tIHBnYWRtaW4udXRpbHMucm91 dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24g aW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcmVncmVzc2lvbiBpbXBv cnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIu c2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQg XAorICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVt YXMudGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMK K2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnRzX3BhcnNlcl91dGlscworCisK K2NsYXNzIEZ0c1BhcnNlclB1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9y KToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIHVwZGF0ZSBhZGRlZCBGVFMg UGFyc2VyIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKworICAgIHNjZW5hcmlv cyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgRlRT IHBhcnNlciBub2RlLgorICAgICAgICAoJ0ZldGNoIEZUUyBwYXJzZXIgTm9k ZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvZnRzX3BhcnNlci9vYmovJykp CisgICAgXQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorCisgICAgICAgIHNl bGYuc2NoZW1hX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVst MV0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2Rh dGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBz ZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfaWQnXQorICAgICAgICBzZWxmLnNl cnZlcl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCisgICAg ICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydkYl9pZCddCisg ICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFi YXNlIl1bLTFdWyJkYl9uYW1lIl0KKyAgICAgICAgc2VsZi5mdHNfcGFyc2Vy X25hbWUgPSAiZnRzX3BhcnNlcl8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsx OjRdCisKKyAgICAgICAgc2VsZi5mdHNfcGFyc2VyX2lkID0gZnRzX3BhcnNl cl91dGlscy5jcmVhdGVfZnRzX3BhcnNlcigKKyAgICAgICAgICAgIHNlbGYu c2VydmVyLAorICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgIHNlbGYuZnRzX3Bh cnNlcl9uYW1lKQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisKKyAgICAg ICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgRlRTIHBhcnNlciBw cmVzZW50IHVuZGVyCisgICAgICAgICAgICB0ZXN0IHNjaGVtYS4gIiIiCisK KyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRh YmFzZShzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorCisgICAgICAgIGlmIG5v dCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6Cisg ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0 IHRvIGRhdGFiYXNlLiIpCisKKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0g c2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFt ZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVt YS4iKQorCisgICAgICAgIHBhcnNlcl9yZXNwb25zZSA9IGZ0c19wYXJzZXJf dXRpbHMudmVyaWZ5X2Z0c19wYXJzZXIoc2VsZi5zZXJ2ZXIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZnRzX3BhcnNlcl9uYW1lKQorCisgICAgICAgIGlmIG5vdCBwYXJzZXJfcmVz cG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5v dCBmaW5kIHRoZSBGVFMgcGFyc2VyLiIpCisKKyAgICAgICAgZGF0YSA9IFwK KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24i OiAiVGhpcyBpcyBGVFMgcGFyc2VyIHVwZGF0ZSBjb21tZW50IiwKKyAgICAg ICAgICAgICAgICAiaWQiOiBzZWxmLmZ0c19wYXJzZXJfaWQKKworICAgICAg ICAgICAgfQorCisgICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVzdGVy LnB1dCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZF Ul9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVy X2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAn LycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyAr CisgICAgICAgICAgICBzdHIoc2VsZi5mdHNfcGFyc2VyX2lkKSwKKyAgICAg ICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgIGZv bGxvd19yZWRpcmVjdHM9VHJ1ZSkKKworICAgICAgICBzZWxmLmFzc2VydEVx dWFscyhwdXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKworICAgIGRl ZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBk aXNjb25uZWN0IHRoZSB0ZXN0IGRhdGFiYXNlLiIiIgorCisgICAgICAgIGRh dGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5z ZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z0c19wYXJzZXIvdGVzdHMvdXRpbHMucHkgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdHNfcGFyc2VyL3Rlc3RzL3V0aWxzLnB5Cm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLmIyZmVlY2QKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFyc2VyL3Rlc3RzL3V0aWxzLnB5CkBA IC0wLDAgKzEsODEgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMg cGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQg KEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFt CisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3Rn cmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKwor ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgoraW1wb3J0 IHRyYWNlYmFjaworaW1wb3J0IG9zCitpbXBvcnQgc3lzCitmcm9tIHJlZ3Jl c3Npb24udGVzdF91dGlscyBpbXBvcnQgZ2V0X2RiX2Nvbm5lY3Rpb24KKwor ZmlsZV9uYW1lID0gb3MucGF0aC5iYXNlbmFtZShfX2ZpbGVfXykKKworCitk ZWYgY3JlYXRlX2Z0c19wYXJzZXIoc2VydmVyLCBkYl9uYW1lLCBzY2hlbWFf bmFtZSwgZnRzX3BhcnNlcl9uYW1lKToKKyAgICAiIiJUaGlzIGZ1bmN0aW9u IHdpbGwgYWRkIHRoZSBmdHNfcGFyc2VyIHVuZGVyIHRlc3Qgc2NoZW1hLiAi IiIKKworICAgIHRyeToKKyAgICAgICAgY29ubmVjdGlvbiA9IGdldF9kYl9j b25uZWN0aW9uKGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZXJ2ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2RiX3Bhc3N3 b3JkJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZXJ2ZXJbJ2hvc3QnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlcnZlclsncG9ydCddKQorICAgICAgICBwZ19jdXJz b3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisKKyAgICAgICAgcXVlcnkgPSAi Q1JFQVRFIFRFWFQgU0VBUkNIIFBBUlNFUiAiICsgc2NoZW1hX25hbWUgKyAi LiIgKyBmdHNfcGFyc2VyX25hbWUgKyBcCisgICAgICAgICAgICAgICAgIihT VEFSVD1pbnQ0X2FjY3VtLCBHRVRUT0tFTj1naXN0X2JveF9wZW5hbHR5LCAi IFwKKyAgICAgICAgICAgICAgICAiRU5EPWJ0ZmxvYXQ0c29ydHN1cHBvcnQs IExFWFRZUEVTPWRzeW5vbnltX2luaXQpIgorCisgICAgICAgIHBnX2N1cnNv ci5leGVjdXRlKHF1ZXJ5KQorICAgICAgICBjb25uZWN0aW9uLmNvbW1pdCgp CisKKyAgICAgICAgIyBHZXQgJ29pZCcgZnJvbSBuZXdseSBjcmVhdGVkIHBh cnNlcgorICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZSgic2VsZWN0IG9pZCBm cm9tIHBnX2NhdGFsb2cucGdfdHNfcGFyc2VyIHdoZXJlICIKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgInByc25hbWUgPSAnJXMnIG9yZGVyIGJ5IG9p ZCBBU0MgbGltaXQgMSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJSBm dHNfcGFyc2VyX25hbWUpCisKKyAgICAgICAgb2lkID0gcGdfY3Vyc29yLmZl dGNob25lKCkKKyAgICAgICAgZnRzX3BhcnNlcl9pZCA9ICcnCisgICAgICAg IGlmIG9pZDoKKyAgICAgICAgICAgIGZ0c19wYXJzZXJfaWQgPSBvaWRbMF0K KyAgICAgICAgY29ubmVjdGlvbi5jbG9zZSgpCisgICAgICAgIHJldHVybiBm dHNfcGFyc2VyX2lkCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAg dHJhY2ViYWNrLnByaW50X2V4YyhmaWxlPXN5cy5zdGRlcnIpCisKKworZGVm IHZlcmlmeV9mdHNfcGFyc2VyKHNlcnZlciwgZGJfbmFtZSwgZnRzX3BhcnNl cl9uYW1lKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgdmVy aWZ5IGN1cnJlbnQgRlRTIHBhcnNlci4KKworICAgIDpwYXJhbSBzZXJ2ZXI6 IHNlcnZlciBkZXRhaWxzCisgICAgOnR5cGUgc2VydmVyOiBkaWN0CisgICAg OnBhcmFtIGRiX25hbWU6IGRhdGFiYXNlIG5hbWUKKyAgICA6dHlwZSBkYl9u YW1lOiBzdHIKKyAgICA6cGFyYW0gZnRzX3BhcnNlcl9uYW1lOiBGVFMgcGFy c2VyIG5hbWUgdG8gYmUgYWRkZWQKKyAgICA6dHlwZSBmdHNfcGFyc2VyX25h bWU6IHN0cgorICAgIDpyZXR1cm4gZnRzX3RlbXA6IEZUUyBwYXJzZXIgZGV0 YWlsCisgICAgOnJ0eXBlOiB0dXBsZQorICAgICIiIgorICAgIHRyeToKKyAg ICAgICAgY29ubmVjdGlvbiA9IGdldF9kYl9jb25uZWN0aW9uKGRiX25hbWUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2 ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2hvc3QnXSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZl clsncG9ydCddKQorICAgICAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9uLmN1 cnNvcigpCisKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoCisgICAgICAg ICAgICAic2VsZWN0IG9pZCBmcm9tIHBnX2NhdGFsb2cucGdfdHNfcGFyc2Vy IHdoZXJlICIKKyAgICAgICAgICAgICJwcnNuYW1lID0gJyVzJyBvcmRlciBi eSBvaWQgQVNDIGxpbWl0IDEiCisgICAgICAgICAgICAlIGZ0c19wYXJzZXJf bmFtZSkKKyAgICAgICAgZnRzX3BhcnNlciA9IHBnX2N1cnNvci5mZXRjaG9u ZSgpCisgICAgICAgIGNvbm5lY3Rpb24uY2xvc2UoKQorICAgICAgICByZXR1 cm4gZnRzX3BhcnNlcgorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAg IHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1zeXMuc3RkZXJyKQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZXN0cy9fX2lu aXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVzdHMv X19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMWUyY2U1NQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z0c190ZW1wbGF0ZXMvdGVzdHMvX19pbml0X18ucHkKQEAgLTAsMCArMSwx NiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdB ZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMp IDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisj IFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVT UUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdl bmVyYXRvcgorCisKK2NsYXNzIEZvcmVpZ25UYWJsZVRlc3RHZW5lcmF0b3Io QmFzZVRlc3RHZW5lcmF0b3IpOgorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6 CisgICAgICAgIHJldHVybiBbXQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnRzX3RlbXBsYXRlcy90ZXN0cy90ZXN0X2Z0c190ZW1wbGF0ZXNfYWRk LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZXN0cy90ZXN0 X2Z0c190ZW1wbGF0ZXNfYWRkLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjhkZTJlYjQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3Rlc3RzL3Rlc3RfZnRzX3RlbXBs YXRlc19hZGQucHkKQEAgLTAsMCArMSw3NyBAQAorIyAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisj CisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERl dmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1 bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1 bmN0aW9uCitpbXBvcnQgdXVpZAoraW1wb3J0IGpzb24KKworZnJvbSBwZ2Fk bWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJv bSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHJl Z3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu dGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBkYXRhYmFzZV91dGlscwor ZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMg c2NoZW1hX3V0aWxzCisKKworY2xhc3MgRnRzVGVtcGxhdGVBZGRUZXN0Q2Fz ZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiIFRoaXMgY2xhc3Mgd2ls bCBhZGQgbmV3IEZUUyB0ZW1wbGF0ZSB1bmRlciB0ZXN0IHNjaGVtYS4gIiIi CisKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVm YXVsdCBVUkwgZm9yIEZUUyB0ZW1wbGF0ZSBub2RlLgorICAgICAgICAoJ0Zl dGNoIEZUUyB0ZW1wbGF0ZXMgTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dz ZXIvZnRzX3RlbXBsYXRlL29iai8nKSkKKyAgICBdCisKKyAgICBkZWYgcnVu VGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBh ZGQgRlRTIHRlbXBsYXRlIHByZXNlbnQgdW5kZXIKKyAgICAgICAgICAgIHRl c3Qgc2NoZW1hLiAiIiIKKworICAgICAgICBzZWxmLnNjaGVtYV9kYXRhID0g cGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYu c2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfbmFtZSdd CisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsn c2NoZW1hX2lkJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNj aGVtYV9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0g c2VsZi5zY2hlbWFfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25h bWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFt ZSJdCisKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVj dF9kYXRhYmFzZShzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorCisgICAgICAg IGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVk LiI6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBj b25uZWN0IHRvIGRhdGFiYXNlLiIpCisKKyAgICAgICAgc2NoZW1hX3Jlc3Bv bnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hl bWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhl IHNjaGVtYS4iKQorCisgICAgICAgIHNlbGYuZGF0YSA9IFwKKyAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJmdHNfdGVtcF8lcyIg JSBzdHIodXVpZC51dWlkNCgpKVsxOjRdLAorICAgICAgICAgICAgICAgICJz Y2hlbWEiOiBzZWxmLnNjaGVtYV9pZCwKKyAgICAgICAgICAgICAgICAidG1w bGluaXQiOiAiZGlzcGVsbF9pbml0IiwKKyAgICAgICAgICAgICAgICAidG1w bGxleGl6ZSI6ICJkaXNwZWxsX2xleGl6ZSIKKyAgICAgICAgICAgIH0KKwor ICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCisgICAgICAg ICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8n ICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBz dHIoc2VsZi5kYl9pZCkgKworICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYu c2NoZW1hX2lkKSArICcvJywKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1w cyhzZWxmLmRhdGEpLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1s L2pzb24nKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNl LnN0YXR1c19jb2RlLCAyMDApCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6 CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGlzY29ubmVjdCB0aGUgdGVz dCBkYXRhYmFzZS4iIiIKKworICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNj b25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJf aWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVz L3Rlc3RzL3Rlc3RfZnRzX3RlbXBsYXRlc19kZWxldGUucHkgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdHNfdGVtcGxhdGVzL3Rlc3RzL3Rlc3RfZnRzX3RlbXBsYXRl c19kZWxldGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNDE4NGY4ZgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z0c190ZW1wbGF0ZXMvdGVzdHMvdGVzdF9mdHNfdGVtcGxhdGVzX2RlbGV0 ZS5weQpAQCAtMCwwICsxLDg0IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29w eXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1l bnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRo ZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24K K2ltcG9ydCB1dWlkCisKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBv cnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQg cGFyZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0 X3V0aWxzIGFzIHV0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJf Z3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCBcCisgICAg dXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0 cyBpbXBvcnQgXAorICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscworZnJvbSAu IGltcG9ydCB1dGlscyBhcyBmdHNfdGVtcF91dGlscworCisKK2NsYXNzIEZ0 c1RlbXBsYXRlRGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgor ICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgZGVsZXRlIG5ldyBGVFMgdGVtcGxh dGUgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorCisgICAgc2NlbmFyaW9zID0g WworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBGVFMgdGVt cGxhdGUgbm9kZS4KKyAgICAgICAgKCdGZXRjaCBGVFMgdGVtcGxhdGUgTm9k ZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvZnRzX3RlbXBsYXRlL29iai8n KSkKKyAgICBdCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNl bGYuc2NoZW1hX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVst MV0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2Rh dGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBz ZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfaWQnXQorICAgICAgICBzZWxmLnNl cnZlcl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCisgICAg ICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydkYl9pZCddCisg ICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFi YXNlIl1bLTFdWyJkYl9uYW1lIl0KKyAgICAgICAgc2VsZi5mdHNfdGVtcF9u YW1lID0gImZ0c190ZW1wXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6NF0K KyAgICAgICAgc2VsZi5mdHNfdGVtcF9pZCA9IGZ0c190ZW1wX3V0aWxzLmNy ZWF0ZV9mdHNfdGVtcGxhdGUoCisgICAgICAgICAgICBzZWxmLnNlcnZlciwK KyAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgIHNlbGYu c2NoZW1hX25hbWUsCisgICAgICAgICAgICBzZWxmLmZ0c190ZW1wX25hbWUp CisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMg ZnVuY3Rpb24gd2lsbCBkZWxldGUgRlRTIHRlbXBsYXRlIHByZXNlbnQgdW5k ZXIKKyAgICAgICAgICAgIHRlc3Qgc2NoZW1hLiAiIiIKKworICAgICAgICBk Yl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lk LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuZGJfaWQpCisKKyAgICAgICAgaWYgbm90IGRiX2Nvblsi aW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKKyAgICAgICAgICAg IHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJh c2UuIikKKworICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRp bHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAg ICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hLiIpCisKKyAg ICAgICAgZnRzX3Jlc3BvbnNlID0gZnRzX3RlbXBfdXRpbHMudmVyaWZ5X2Z0 c190ZW1wbGF0ZShzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRi X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5mdHNfdGVtcF9uYW1lKQorCisg ICAgICAgIGlmIG5vdCBmdHNfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBGVFMgdGVtcGxhdGUu IikKKworICAgICAgICBkZWxldGVfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5k ZWxldGUoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJW RVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZl cl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsg Jy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycg KworICAgICAgICAgICAgc3RyKHNlbGYuZnRzX3RlbXBfaWQpLAorICAgICAg ICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorCisgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWxzKGRlbGV0ZV9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAw KQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAiIiJUaGlz IGZ1bmN0aW9uIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2UuIiIiCisK KyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShz ZWxmLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZXN0cy90ZXN0X2Z0c190 ZW1wbGF0ZXNfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRl cy90ZXN0cy90ZXN0X2Z0c190ZW1wbGF0ZXNfZ2V0LnB5Cm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlNzM3ZTcKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3Rlc3RzL3Rl c3RfZnRzX3RlbXBsYXRlc19nZXQucHkKQEAgLTAsMCArMSw3NiBAQAorIyAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3Jl U1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRo ZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBp cyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisj ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9tIF9fZnV0dXJlX18gaW1w b3J0IHByaW50X2Z1bmN0aW9uCitpbXBvcnQgdXVpZAorCitmcm9tIHBnYWRt aW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9t IHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcmVn cmVzc2lvbiBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50 ZXN0cyBpbXBvcnQgXAorICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCitm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0 YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBz Y2hlbWFfdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnRzX3RlbXBf dXRpbHMKKworCitjbGFzcyBGdHNUZW1wbGF0ZUdldFRlc3RDYXNlKEJhc2VU ZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGZldGNo IG5ldyBGVFMgdGVtcGxhdGUgdW5kZXIgdGVzdCBzY2hlbWEuICIiIgorCisg ICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQg VVJMIGZvciBGVFMgdGVtcGxhdGUgbm9kZS4KKyAgICAgICAgKCdGZXRjaCBG VFMgdGVtcGxhdGVzIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL2Z0 c190ZW1wbGF0ZS9vYmovJykpCisgICAgXQorCisgICAgZGVmIHNldFVwKHNl bGYpOgorICAgICAgICBzZWxmLnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVf ZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUg PSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNl bGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX2lkJ10K KyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydz ZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zY2hlbWFf ZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRf bm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCisgICAgICAg IHNlbGYuZnRzX3RlbXBfbmFtZSA9ICJmdHNfdGVtcF8lcyIgJSBzdHIodXVp ZC51dWlkNCgpKVsxOjRdCisgICAgICAgIHNlbGYuZnRzX3RlbXBfaWQgPSBm dHNfdGVtcF91dGlscy5jcmVhdGVfZnRzX3RlbXBsYXRlKAorICAgICAgICAg ICAgc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisg ICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgc2Vs Zi5mdHNfdGVtcF9uYW1lKQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6Cisg ICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggRlRTIHRlbXBs YXRlIHByZXNlbnQgdW5kZXIKKyAgICAgICAgICAgIHRlc3Qgc2NoZW1hLiAi IiIKKworICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0 X2RhdGFiYXNlKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisKKyAgICAgICAg aWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQu IjoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNv bm5lY3QgdG8gZGF0YWJhc2UuIikKKworICAgICAgICBzY2hlbWFfcmVzcG9u c2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVt YV9uYW1lKQorICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgorICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUg c2NoZW1hLiIpCisKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5n ZXQoc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyAr CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxm LnNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQp ICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RyKHNlbGYuZnRzX3RlbXBfaWQpLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKyAg ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUs IDIwMCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIiIi VGhpcyBmdW5jdGlvbiBkaXNjb25uZWN0IHRoZSB0ZXN0IGRhdGFiYXNlLiIi IgorCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJh c2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVzdHMvdGVzdF9m dHNfdGVtcGxhdGVzX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1w bGF0ZXMvdGVzdHMvdGVzdF9mdHNfdGVtcGxhdGVzX3B1dC5weQpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMTlhZTA3Ci0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZXN0 cy90ZXN0X2Z0c190ZW1wbGF0ZXNfcHV0LnB5CkBAIC0wLDAgKzEsOTMgQEAK KyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9z dGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2 LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdh cmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQor IworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZnJvbSBfX2Z1dHVyZV9f IGltcG9ydCBwcmludF9mdW5jdGlvbgoraW1wb3J0IHV1aWQKK2ltcG9ydCBq c29uCisKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRl c3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25v ZGVfZGljdAorZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFz IHV0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl cnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMg ZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQg XAorICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscworZnJvbSAuIGltcG9ydCB1 dGlscyBhcyBmdHNfdGVtcF91dGlscworCisKK2NsYXNzIEZ0c1RlbXBsYXRl UHV0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIiBUaGlz IGNsYXNzIHdpbGwgdXBkYXRlIG5ldyBGVFMgdGVtcGxhdGUgdW5kZXIgc2No ZW1hIG5vZGUuICIiIgorCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAj IEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBGVFMgdGVtcGxhdGUgbm9kZS4K KyAgICAgICAgKCdGZXRjaCBGVFMgdGVtcGxhdGUgTm9kZSBVUkwnLCBkaWN0 KHVybD0nL2Jyb3dzZXIvZnRzX3RlbXBsYXRlL29iai8nKSkKKyAgICBdCisK KyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuc2NoZW1hX2Rh dGEgPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KKyAgICAgICAg c2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9u YW1lJ10KKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9k YXRhWydzY2hlbWFfaWQnXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNl bGYuc2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJf aWQgPSBzZWxmLnNjaGVtYV9kYXRhWydkYl9pZCddCisgICAgICAgIHNlbGYu ZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJk Yl9uYW1lIl0KKyAgICAgICAgc2VsZi5mdHNfdGVtcF9uYW1lID0gImZ0c190 ZW1wXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6NF0KKyAgICAgICAgc2Vs Zi5mdHNfdGVtcF9pZCA9IGZ0c190ZW1wX3V0aWxzLmNyZWF0ZV9mdHNfdGVt cGxhdGUoCisgICAgICAgICAgICBzZWxmLnNlcnZlciwKKyAgICAgICAgICAg IHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUs CisgICAgICAgICAgICBzZWxmLmZ0c190ZW1wX25hbWUpCisKKyAgICBkZWYg cnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2ls bCB1cGRhdGUgRlRTIHRlbXBsYXRlIHByZXNlbnQgdW5kZXIKKyAgICAgICAg ICAgIHRlc3Qgc2NoZW1hLiAiIiIKKworICAgICAgICBkYl9jb24gPSBkYXRh YmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMu U0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZGJfaWQpCisKKyAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJE YXRhYmFzZSBjb25uZWN0ZWQuIjoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKKworICAg ICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3Nj aGVtYXMoc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBpZiBub3Qgc2No ZW1hX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgZmluZCB0aGUgc2NoZW1hLiIpCisKKyAgICAgICAgZnRzX3Jl c3BvbnNlID0gZnRzX3RlbXBfdXRpbHMudmVyaWZ5X2Z0c190ZW1wbGF0ZShz ZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5mdHNfdGVtcF9uYW1lKQorCisgICAgICAgIGlmIG5v dCBmdHNfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o IkNvdWxkIG5vdCBmaW5kIHRoZSBGVFMgdGVtcGxhdGUuIikKKworICAgICAg ICBkYXRhID0gXAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJk ZXNjcmlwdGlvbiI6ICJUaGlzIGlzIEZUUyB0ZW1wbGF0ZSB1cGRhdGUgY29t bWVudCIsCisgICAgICAgICAgICAgICAgImlkIjogc2VsZi5mdHNfdGVtcF9p ZAorCisgICAgICAgICAgICB9CisKKyAgICAgICAgcHV0X3Jlc3BvbnNlID0g c2VsZi50ZXN0ZXIucHV0KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIo dXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIo c2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxm LmRiX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFf aWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLmZ0c190ZW1wX2lk KSwKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAg ICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKworICAgICAgICBzZWxm LmFzc2VydEVxdWFscyhwdXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkK KworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIiIiVGhpcyBm dW5jdGlvbiBkaXNjb25uZWN0IHRoZSB0ZXN0IGRhdGFiYXNlLiIiIgorCisg ICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2Vs Ziwgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVzdHMvdXRpbHMucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3Rlc3RzL3V0aWxzLnB5Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwYzNiNDYKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVz L3Rlc3RzL3V0aWxzLnB5CkBAIC0wLDAgKzEsNzcgQEAKKyMgIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29s cworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1p biBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFz ZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmlu dF9mdW5jdGlvbgoraW1wb3J0IHRyYWNlYmFjaworaW1wb3J0IG9zCitpbXBv cnQgc3lzCitmcm9tIHJlZ3Jlc3Npb24udGVzdF91dGlscyBpbXBvcnQgZ2V0 X2RiX2Nvbm5lY3Rpb24KKworZmlsZV9uYW1lID0gb3MucGF0aC5iYXNlbmFt ZShfX2ZpbGVfXykKKworCitkZWYgY3JlYXRlX2Z0c190ZW1wbGF0ZShzZXJ2 ZXIsIGRiX25hbWUsIHNjaGVtYV9uYW1lLCBmdHNfdGVtcF9uYW1lKToKKyAg ICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIHRoZSBmdHNfdGVtcGxhdGUg dW5kZXIgdGVzdCBzY2hlbWEuICIiIgorCisgICAgdHJ5OgorICAgICAgICBj b25uZWN0aW9uID0gZ2V0X2RiX2Nvbm5lY3Rpb24oZGJfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNl cm5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnaG9zdCddLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydwb3J0 J10pCisgICAgICAgIHBnX2N1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkK KworICAgICAgICBxdWVyeSA9ICJDUkVBVEUgVEVYVCBTRUFSQ0ggVEVNUExB VEUgIiArIHNjaGVtYV9uYW1lICsgIi4iICsgZnRzX3RlbXBfbmFtZSArIFwK KyAgICAgICAgICAgICAgICAiKElOSVQ9ZGlzcGVsbF9pbml0LCBMRVhJWkU9 ZGlzcGVsbF9sZXhpemUpIgorICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZShx dWVyeSkKKyAgICAgICAgY29ubmVjdGlvbi5jb21taXQoKQorCisgICAgICAg ICMgR2V0ICdvaWQnIGZyb20gbmV3bHkgY3JlYXRlZCB0ZW1wbGF0ZQorICAg ICAgICBwZ19jdXJzb3IuZXhlY3V0ZSgic2VsZWN0IG9pZCBmcm9tIHBnX2Nh dGFsb2cucGdfdHNfdGVtcGxhdGUgd2hlcmUgIgorICAgICAgICAgICAgICAg ICAgICAgICAgICAidG1wbG5hbWUgPSAnJXMnIG9yZGVyIGJ5IG9pZCBBU0Mg bGltaXQgMSIgJSBmdHNfdGVtcF9uYW1lKQorCisgICAgICAgIG9pZCA9IHBn X2N1cnNvci5mZXRjaG9uZSgpCisgICAgICAgIGZ0c190ZW1wX2lkID0gJycK KyAgICAgICAgaWYgb2lkOgorICAgICAgICAgICAgZnRzX3RlbXBfaWQgPSBv aWRbMF0KKyAgICAgICAgY29ubmVjdGlvbi5jbG9zZSgpCisgICAgICAgIHJl dHVybiBmdHNfdGVtcF9pZAorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAg ICAgIHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1zeXMuc3RkZXJyKQorCisK K2RlZiB2ZXJpZnlfZnRzX3RlbXBsYXRlKHNlcnZlciwgZGJfbmFtZSwgZnRz X3RlbXBfbmFtZSk6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiB3aWxs IHZlcmlmeSBjdXJyZW50IEZUUyB0ZW1wbGF0ZS4KKworICAgIDpwYXJhbSBz ZXJ2ZXI6IHNlcnZlciBkZXRhaWxzCisgICAgOnR5cGUgc2VydmVyOiBkaWN0 CisgICAgOnBhcmFtIGRiX25hbWU6IGRhdGFiYXNlIG5hbWUKKyAgICA6dHlw ZSBkYl9uYW1lOiBzdHIKKyAgICA6cGFyYW0gZnRzX3RlbXBfbmFtZTogRlRT IHRlbXBsYXRlIG5hbWUgdG8gYmUgYWRkZWQKKyAgICA6dHlwZSBmdHNfdGVt cF9uYW1lOiBzdHIKKyAgICA6cmV0dXJuIGZ0c190ZW1wOiBGVFMgdGVtcGxh dGUgZGV0YWlsCisgICAgOnJ0eXBlOiB0dXBsZQorICAgICIiIgorICAgIHRy eToKKyAgICAgICAgY29ubmVjdGlvbiA9IGdldF9kYl9jb25uZWN0aW9uKGRi X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZXJ2ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2hv c3QnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlcnZlclsncG9ydCddKQorICAgICAgICBwZ19jdXJzb3IgPSBjb25uZWN0 aW9uLmN1cnNvcigpCisKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoCisg ICAgICAgICAgICAic2VsZWN0IG9pZCBmcm9tIHBnX2NhdGFsb2cucGdfdHNf dGVtcGxhdGUgd2hlcmUgIgorICAgICAgICAgICAgInRtcGxuYW1lID0gJyVz JyBvcmRlciBieSBvaWQgQVNDIGxpbWl0IDEiICUgZnRzX3RlbXBfbmFtZSkK KyAgICAgICAgZnRzX3RlbXBsYXRlID0gcGdfY3Vyc29yLmZldGNob25lKCkK KyAgICAgICAgY29ubmVjdGlvbi5jbG9zZSgpCisgICAgICAgIHJldHVybiBm dHNfdGVtcGxhdGUKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICB0 cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9c3lzLnN0ZGVycikK --94eb2c08651e8d2724053ea7b3b7 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --94eb2c08651e8d2724053ea7b3b7--