Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1aYCwi-0008Op-Ht for pgadmin-hackers@arkaria.postgresql.org; Tue, 23 Feb 2016 13:24:09 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aYCwh-0004uv-W2 for pgadmin-hackers@arkaria.postgresql.org; Tue, 23 Feb 2016 13:24:08 +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) (envelope-from ) id 1aYCwM-0004fu-Od for pgadmin-hackers@postgresql.org; Tue, 23 Feb 2016 13:23:46 +0000 Received: from mail-lb0-x22f.google.com ([2a00:1450:4010:c04::22f]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1aYCwG-0005au-Ba for pgadmin-hackers@postgresql.org; Tue, 23 Feb 2016 13:23:46 +0000 Received: by mail-lb0-x22f.google.com with SMTP id x4so101445863lbm.0 for ; Tue, 23 Feb 2016 05:23:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:date:message-id:subject:from:to:content-type; bh=inzDbZw3q5hc+yKj80p5UrTNnzrXpi2PDTo9by6LwzE=; b=KCh8bpP/qSqlEchCXR1nU7z2/66MhaBcFUUUJpX9Uv43TAEwohorFukWhzYg1KTjxV rH54BqfuTE6Fv83unVdTHJ6JtCYj/lZR2+Y2KtQoJlcA4d65CLM2O0a6CvwCVxA57uVh PfyMd3FmOdt2Vp7kxeVi0LID3p8On7OxbPHnaSuidLdAzUczX1aqk8VGaG0hev2wIsua tAS2+b4zU1R24Z4mV38S81hHlzOMfGDvt41LcGHu8S8SYpAC9lpZltnBJkZkgUoVHEqW ROKgDg7z3WMoHb+ba0p1NAfESZlTDwIx1fFkAn6Ji+WKy9ign1B3zDNN7bkf513sPl7o A58g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=inzDbZw3q5hc+yKj80p5UrTNnzrXpi2PDTo9by6LwzE=; b=Wcz9QEYj88vPcCysbFtn0PwSciV/mTxxrM5F4Wh7MRhD2AcXEhilzZQPQ4+tlLqC8i gIBCwaQr8iXF2+9INO6F233kDjYNnZ+4Hyr/SOC5TVIx3I4M34Giy01jEq1EkZzde9Uu zv9JxI9Q9EjbQklJdwVV8x7eXgiu6jKYrl1Qz74GPR+Xelg2LYi7Rhn2DiZLpPzEVSNJ iHpMS0/jvwT1V9BzK0tfHYCyLyWVj7BwDolpmDDxP2uMBDA8r4AUrquhT6A8zCKwiuUg 0JMuTRKKc0yaprpZDnckijRlZKUTkIuRgJDdf669h63TX0DqsEQ7KTAlrHjdMxDPD1+s cVWA== X-Gm-Message-State: AG10YOQka6lAElaWvuo1Lzs4yOXpHyv1QmrlD8s7qtjbQ9aBkPvJOO3/JVxclkUuJKC7NP7ftmlWqbhVQy5nWJpa MIME-Version: 1.0 X-Received: by 10.112.169.105 with SMTP id ad9mr12134024lbc.135.1456233818949; Tue, 23 Feb 2016 05:23:38 -0800 (PST) Received: by 10.25.159.85 with HTTP; Tue, 23 Feb 2016 05:23:38 -0800 (PST) Date: Tue, 23 Feb 2016 18:53:38 +0530 Message-ID: Subject: [pgAdmin4] [Patch]: Foreign Table Module From: Khushboo Vashi To: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a11c38c087da59e052c6fdbcf 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 --001a11c38c087da59e052c6fdbcf Content-Type: multipart/alternative; boundary=001a11c38c087da599052c6fdbcd --001a11c38c087da599052c6fdbcd Content-Type: text/plain; charset=UTF-8 Hi, Please find attached patch for the Foreign Table Module. The patch will be modified after Types module implementation as we need to populate Base Type and some Type related validations from the Types module. Please review it and let me know the feedback. Thanks, Khushboo --001a11c38c087da599052c6fdbcd Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

Please find attached patch for the Foreign Tabl= e Module.

The patch will be modified after Types module implementati= on as we need to populate Base Type=C2=A0 and some Type related validations= from the Types module.

Please review it and let me know the feedbac= k.

Thanks,
Khushboo
--001a11c38c087da599052c6fdbcd-- --001a11c38c087da59e052c6fdbcf Content-Type: text/x-patch; charset=US-ASCII; name="Foreign_table.patch" Content-Disposition: attachment; filename="Foreign_table.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ikzfys3m0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL19f aW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvX19p bml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u OGQ2NzI3YgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Zv cmVpZ25fdGFibGVzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTAwMiBAQAor IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0 IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMg LSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMg c29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGlj ZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIiIi VGhlIEZvcmVpZ24gVGFibGUgTW9kdWxlLiIiIgorCitpbXBvcnQganNvbgor ZnJvbSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlLCBtYWtlX3Jlc3Bv bnNlLCByZXF1ZXN0LCBqc29uaWZ5LCBcCisgICAgY3VycmVudF9hcHAKK2Zy b20gZmxhc2suZXh0LmJhYmVsIGltcG9ydCBnZXR0ZXh0Citmcm9tIHBnYWRt aW4udXRpbHMuYWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNlLCBcCisg ICAgbWFrZV9yZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlLCBpbnRlcm5hbF9z ZXJ2ZXJfZXJyb3IKK2Zyb20gcGdhZG1pbi5icm93c2VyLnV0aWxzIGltcG9y dCBQR0NoaWxkTm9kZVZpZXcKK2Zyb20gcGdhZG1pbi5icm93c2VyLmNvbGxl Y3Rpb24gaW1wb3J0IENvbGxlY3Rpb25Ob2RlTW9kdWxlCitpbXBvcnQgcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu c2NoZW1hcyBhcyBzY2hlbWFzCitmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBp bXBvcnQgcHJlY29uZGl0aW9uX3JlcXVpcmVkCitmcm9tIHBnYWRtaW4udXRp bHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCitmcm9tIGNvbmZpZyBpbXBv cnQgUEdfREVGQVVMVF9EUklWRVIKK2Zyb20gZnVuY3Rvb2xzIGltcG9ydCB3 cmFwcworaW1wb3J0IHN5cworaW1wb3J0IHRyYWNlYmFjaworCisKK2NsYXNz IEZvcmVpZ25UYWJsZU1vZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVsZSk6Cisg ICAgIiIiCisgICAgY2xhc3MgRm9yZWlnblRhYmxlTW9kdWxlKENvbGxlY3Rp b25Ob2RlTW9kdWxlKToKKworICAgICAgICBUaGlzIGNsYXNzIHJlcHJlc2Vu dHMgVGhlIEZvcmVpZ24gVGFibGUgTW9kdWxlLgorCisgICAgTWV0aG9kczoK KyAgICAtLS0tLS0tCisgICAgKiBfX2luaXRfXygqYXJncywgKiprd2FyZ3Mp CisgICAgICAtIEluaXRpYWxpemUgdGhlIEZvcmVpZ24gVGFibGUgTW9kdWxl LgorCisgICAgKiBnZXRfbm9kZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCkKKyAg ICAgIC0gR2VuZXJhdGUgdGhlIEZvcmVpZ24gVGFibGUgY29sbGVjdGlvbiBu b2RlLgorCisgICAgKiBub2RlX2lub2RlKCk6CisgICAgICAtIE92ZXJyaWRl IHRoaXMgcHJvcGVydHkgdG8gbWFrZSB0aGUgRm9yZWlnbiBUYWJsZSBub2Rl IGFzIGxlYWYgbm9kZS4KKworICAgICogc2NyaXB0X2xvYWQoKQorICAgICAg LSBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBGb3JlaWduIFRhYmxlLCB3 aGVuIHNjaGVtYSBub2RlIGlzCisgICAgICAgIGluaXRpYWxpemVkLgorICAg ICIiIgorICAgIE5PREVfVFlQRSA9ICdmb3JlaWduLXRhYmxlJworICAgIENP TExFQ1RJT05fTEFCRUwgPSBnZXR0ZXh0KCJGb3JlaWduIFRhYmxlcyIpCisK KyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAg ICAgICAgc3VwZXIoRm9yZWlnblRhYmxlTW9kdWxlLCBzZWxmKS5fX2luaXRf XygqYXJncywgKiprd2FyZ3MpCisgICAgICAgIHNlbGYubWluX3ZlciA9IE5v bmUKKyAgICAgICAgc2VsZi5tYXhfdmVyID0gTm9uZQorCisgICAgZGVmIGdl dF9ub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAgICAg IiIiCisgICAgICAgIEdlbmVyYXRlIHRoZSBGb3JlaWduIFRhYmxlIGNvbGxl Y3Rpb24gbm9kZS4KKyAgICAgICAgIiIiCisgICAgICAgIHlpZWxkIHNlbGYu Z2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9uX25vZGUoc2NpZCkKKworICAg IEBwcm9wZXJ0eQorICAgIGRlZiBub2RlX2lub2RlKHNlbGYpOgorICAgICAg ICAiIiIKKyAgICAgICAgT3ZlcnJpZGUgdGhpcyBwcm9wZXJ0eSB0byBtYWtl IHRoZSBub2RlIGFzIGxlYWYgbm9kZS4KKyAgICAgICAgIiIiCisgICAgICAg IHJldHVybiBGYWxzZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHNjcmlw dF9sb2FkKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgTG9hZCB0aGUg bW9kdWxlIHNjcmlwdCBmb3IgZm9yZWlnbiB0YWJsZSwgd2hlbiB0aGUKKyAg ICAgICAgc2NoZW1hIG5vZGUgaXMgaW5pdGlhbGl6ZWQuCisgICAgICAgICIi IgorICAgICAgICByZXR1cm4gc2NoZW1hcy5TY2hlbWFNb2R1bGUuTk9ERV9U WVBFCisKKworYmx1ZXByaW50ID0gRm9yZWlnblRhYmxlTW9kdWxlKF9fbmFt ZV9fKQorCisKK2NsYXNzIEZvcmVpZ25UYWJsZVZpZXcoUEdDaGlsZE5vZGVW aWV3KToKKyAgICAiIiIKKyAgICBjbGFzcyBGb3JlaWduVGFibGVWaWV3KFBH Q2hpbGROb2RlVmlldykKKworICAgIFRoaXMgY2xhc3MgaW5oZXJpdHMgUEdD aGlsZE5vZGVWaWV3IHRvIGdldCB0aGUgZGlmZmVyZW50IHJvdXRlcyBmb3IK KyAgICB0aGUgbW9kdWxlLgorCisgICAgVGhlIGNsYXNzIGlzIHJlc3BvbnNp YmxlIHRvIENyZWF0ZSwgUmVhZCwgVXBkYXRlIGFuZCBEZWxldGUgb3BlcmF0 aW9ucyBmb3IKKyAgICB0aGUgRm9yZWlnbiBUYWJsZS4KKworICAgIE1ldGhv ZHM6CisgICAgLS0tLS0tLQorICAgICogdmFsaWRhdGVfcmVxdWVzdChmKToK KyAgICAgIC0gV29ya3MgYXMgYSBkZWNvcmF0b3IuCisgICAgICAgIFZhbGlk YXRpbmcgcmVxdWVzdCBvbiB0aGUgcmVxdWVzdCBvZiBjcmVhdGUsIHVwZGF0 ZSBhbmQgbW9kaWZpZWQgU1FMLgorCisgICAgKiBtb2R1bGVfanMoKToKKyAg ICAgIC0gT3ZlcnJpZGVzIHRoaXMgcHJvcGVydHkgdG8gZGVmaW5lIGphdmFz Y3JpcHQgZm9yIEZvcmVpZ24gVGFibGUgbm9kZS4KKworICAgICogY2hlY2tf cHJlY29uZGl0aW9uKGYpOgorICAgICAgLSBXb3JrcyBhcyBhIGRlY29yYXRv ci4KKyAgICAgIC0gQ2hlY2tzIGRhdGFiYXNlIGNvbm5lY3Rpb24gc3RhdHVz LgorICAgICAgLSBBdHRhY2ggY29ubmVjdGlvbiBvYmplY3QgYW5kIHRlbXBs YXRlIHBhdGguCisKKyAgICAqIGxpc3QoZ2lkLCBzaWQsIGRpZCwgc2NpZCk6 CisgICAgICAtIExpc3QgdGhlIEZvcmVpZ24gVGFibGUuCisKKyAgICAqIG5v ZGVzKGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgLSBSZXR1cm5zIGFs bCB0aGUgRm9yZWlnbiBUYWJsZSB0byBnZW5lcmF0ZSBOb2RlcyBpbiB0aGUg YnJvd3Nlci4KKworICAgICogcHJvcGVydGllcyhnaWQsIHNpZCwgZGlkLCBz Y2lkLCBmb2lkKToKKyAgICAgIC0gUmV0dXJucyB0aGUgRm9yZWlnbiBUYWJs ZSBwcm9wZXJ0aWVzLgorCisgICAgKiBnZXRfc2NoZW1hcyhnaWQsIHNpZCwg ZGlkLCBzY2lkLCBmb2lkPU5vbmUpOgorICAgICAgLSBSZXR1cm5zIFNjaGVt YXMgZm9yIHRoZSBwYXJ0aWN1bGFyIGRhdGFiYXNlLgorCisgICAgKiBnZXRf Y29sbGF0aW9ucyhnaWQsIHNpZCwgZGlkLCBzY2lkLCBmb2lkPU5vbmUpOgor ICAgICAgLSBSZXR1cm5zIENvbGxhdGlvbnMuCisKKyAgICAqIGdldF90eXBl cyhnaWQsIHNpZCwgZGlkLCBzY2lkLCBmb2lkPU5vbmUpOgorICAgICAgLSBS ZXR1cm5zIERhdGEgVHlwZXMuCisKKyAgICAqIGdldF9mb3JlaWduX3NlcnZl cnMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm9pZD1Ob25lKToKKyAgICAgIC0g UmV0dXJucyB0aGUgRm9yZWlnbiBTZXJ2ZXJzLgorCisgICAgKiBnZXRfdGFi bGVzKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZvaWQ9Tm9uZSk6CisgICAgICAt IFJldHVybnMgdGhlIEZvcmVpZ24gVGFibGVzIGFzIHdlbGwgYXMgUGxhaW4g VGFibGVzLgorCisgICAgKiBnZXRfY29sdW1ucyhnaWQsIHNpZCwgZGlkLCBz Y2lkLCBmb2lkPU5vbmUpOgorICAgICAgLSBSZXR1cm5zIHRoZSBUYWJsZSBD b2x1bW5zLgorCisgICAgKiBjcmVhdGUoZ2lkLCBzaWQsIGRpZCwgc2NpZCk6 CisgICAgICAtIENyZWF0ZXMgYSBuZXcgRm9yZWlnbiBUYWJsZSBvYmplY3Qu CisKKyAgICAqIHVwZGF0ZShnaWQsIHNpZCwgZGlkLCBzY2lkLCBmb2lkKToK KyAgICAgIC0gVXBkYXRlcyB0aGUgRm9yZWlnbiBUYWJsZSBvYmplY3QuCisK KyAgICAqIGRlbGV0ZShnaWQsIHNpZCwgZGlkLCBzY2lkLCBmb2lkKToKKyAg ICAgIC0gRHJvcHMgdGhlIEZvcmVpZ24gVGFibGUgb2JqZWN0LgorCisgICAg KiBzcWwoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm9pZCk6CisgICAgICAtIFJl dHVybnMgdGhlIFNRTCBmb3IgdGhlIEZvcmVpZ24gVGFibGUgb2JqZWN0Lgor CisgICAgKiBtc3FsKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZvaWQ9Tm9uZSk6 CisgICAgICAtIFJldHVybnMgdGhlIG1vZGlmaWVkIFNRTC4KKworICAgICog Z2V0X3NxbChnaWQsIHNpZCwgZGF0YSwgc2NpZCwgZm9pZD1Ob25lKToKKyAg ICAgIC0gR2VuZXJhdGVzIHRoZSBTUUwgc3RhdGVtZW50cyB0byBjcmVhdGUv dXBkYXRlIHRoZSBGb3JlaWduIFRhYmxlIG9iamVjdC4KKworICAgICogZGVw ZW5kZW50cyhnaWQsIHNpZCwgZGlkLCBzY2lkLCBmb2lkKToKKyAgICAgIC0g UmV0dXJucyB0aGUgZGVwZW5kZW50cyBmb3IgdGhlIEZvcmVpZ24gVGFibGUg b2JqZWN0LgorCisgICAgKiBkZXBlbmRlbmNpZXMoZ2lkLCBzaWQsIGRpZCwg c2NpZCwgZm9pZCk6CisgICAgICAtIFJldHVybnMgdGhlIGRlcGVuZGVuY2ll cyBmb3IgdGhlIEZvcmVpZ24gVGFibGUgb2JqZWN0LgorCisgICAgKiBnZXRf cHJvcGVydGllcyhnaWQsIHNpZCwgZGlkLCBzY2lkLCBmb2lkLCBpbmhlcml0 cz1GYWxzZSk6CisgICAgICAtIFJldHVybnMgdGhlIEZvcmVpZ24gVGFibGUg cHJvcGVydGllcyB3aGljaCB3aWxsIGJlIHVzZWQgaW4KKyAgICAgICAgcHJv cGVydGllcywgc3FsIGFuZCBnZXRfc3FsIGZ1bmN0aW9ucy4KKyAgICAiIiIK KworICAgIG5vZGVfdHlwZSA9IGJsdWVwcmludC5ub2RlX3R5cGUKKworICAg IHBhcmVudF9pZHMgPSBbCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQn OiAnZ2lkJ30sCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnc2lk J30sCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZGlkJ30sCisg ICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnc2NpZCd9CisgICAgXQor ICAgIGlkcyA9IFsKKyAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdm b2lkJ30KKyAgICBdCisKKyAgICBvcGVyYXRpb25zID0gZGljdCh7CisgICAg ICAgICdvYmonOiBbCisgICAgICAgICAgICB7J2dldCc6ICdwcm9wZXJ0aWVz JywgJ2RlbGV0ZSc6ICdkZWxldGUnLCAncHV0JzogJ3VwZGF0ZSd9LAorICAg ICAgICAgICAgeydnZXQnOiAnbGlzdCcsICdwb3N0JzogJ2NyZWF0ZSd9Cisg ICAgICAgIF0sCisgICAgICAgICdkZWxldGUnOiBbeydkZWxldGUnOiAnZGVs ZXRlJ31dLAorICAgICAgICAnY2hpbGRyZW4nOiBbeydnZXQnOiAnY2hpbGRy ZW4nfV0sCisgICAgICAgICdub2Rlcyc6IFt7J2dldCc6ICdub2RlJ30sIHsn Z2V0JzogJ25vZGVzJ31dLAorICAgICAgICAnc3FsJzogW3snZ2V0JzogJ3Nx bCd9XSwKKyAgICAgICAgJ21zcWwnOiBbeydnZXQnOiAnbXNxbCd9LCB7J2dl dCc6ICdtc3FsJ31dLAorICAgICAgICAnc3RhdHMnOiBbeydnZXQnOiAnc3Rh dGlzdGljcyd9XSwKKyAgICAgICAgJ2RlcGVuZGVuY3knOiBbeydnZXQnOiAn ZGVwZW5kZW5jaWVzJ31dLAorICAgICAgICAnZGVwZW5kZW50JzogW3snZ2V0 JzogJ2RlcGVuZGVudHMnfV0sCisgICAgICAgICdtb2R1bGUuanMnOiBbe30s IHt9LCB7J2dldCc6ICdtb2R1bGVfanMnfV0sCisgICAgICAgICdnZXRfc2No ZW1hcyc6IFt7J2dldCc6ICdnZXRfc2NoZW1hcyd9LCB7J2dldCc6ICdnZXRf c2NoZW1hcyd9XSwKKyAgICAgICAgJ2dldF9jb2xsYXRpb25zJzogWworICAg ICAgICAgICAgeydnZXQnOiAnZ2V0X2NvbGxhdGlvbnMnfSwKKyAgICAgICAg ICAgIHsnZ2V0JzogJ2dldF9jb2xsYXRpb25zJ30KKyAgICAgICAgICAgIF0s CisgICAgICAgICdnZXRfdHlwZXMnOiBbeydnZXQnOiAnZ2V0X3R5cGVzJ30s IHsnZ2V0JzogJ2dldF90eXBlcyd9XSwKKyAgICAgICAgJ2dldF9mb3JlaWdu X3NlcnZlcnMnOiBbeydnZXQnOiAnZ2V0X2ZvcmVpZ25fc2VydmVycyd9LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J2dldCc6ICdnZXRf Zm9yZWlnbl9zZXJ2ZXJzJ31dLAorICAgICAgICAnZ2V0X3RhYmxlcyc6IFt7 J2dldCc6ICdnZXRfdGFibGVzJ30sIHsnZ2V0JzogJ2dldF90YWJsZXMnfV0s CisgICAgICAgICdnZXRfY29sdW1ucyc6IFt7J2dldCc6ICdnZXRfY29sdW1u cyd9LCB7J2dldCc6ICdnZXRfY29sdW1ucyd9XQorICAgIH0pCisKKyAgICBk ZWYgdmFsaWRhdGVfcmVxdWVzdChmKToKKyAgICAgICAgIiIiCisgICAgICAg IFdvcmtzIGFzIGEgZGVjb3JhdG9yLgorICAgICAgICBWYWxpZGF0aW5nIHJl cXVlc3Qgb24gdGhlIHJlcXVlc3Qgb2YgY3JlYXRlLCB1cGRhdGUgYW5kIG1v ZGlmaWVkIFNRTC4KKworICAgICAgICBSZXF1aXJlZCBBcmdzOgorICAgICAg ICAgICAgICAgICAgICBuYW1lOiBOYW1lIG9mIHRoZSBGb3JlaWduIFRhYmxl CisgICAgICAgICAgICAgICAgICAgIGZ0c3J2bmFtZTogRm9yZWlnbiBTZXJ2 ZXIgTmFtZQorCisgICAgICAgIEFib3ZlIGJvdGggdGhlIGFyZ3VtZW50cyB3 aWxsIG5vdCBiZSB2YWxpZGF0ZWQgaW4gdGhlIHVwZGF0ZSBhY3Rpb24uCisg ICAgICAgICIiIgorICAgICAgICBAd3JhcHMoZikKKyAgICAgICAgZGVmIHdy YXAoc2VsZiwgKiprd2FyZ3MpOgorCisgICAgICAgICAgICBkYXRhID0ge30K KyAgICAgICAgICAgIGlmIHJlcXVlc3QuZGF0YToKKyAgICAgICAgICAgICAg ICByZXEgPSBqc29uLmxvYWRzKHJlcXVlc3QuZGF0YSkKKyAgICAgICAgICAg IGVsc2U6CisgICAgICAgICAgICAgICAgcmVxID0gcmVxdWVzdC5hcmdzIG9y IHJlcXVlc3QuZm9ybQorCisgICAgICAgICAgICBpZiAnZm9pZCcgbm90IGlu IGt3YXJnczoKKyAgICAgICAgICAgICAgICByZXF1aXJlZF9hcmdzID0gWwor ICAgICAgICAgICAgICAgICAgICAnbmFtZScsCisgICAgICAgICAgICAgICAg ICAgICdmdHNydm5hbWUnCisgICAgICAgICAgICAgICAgXQorCisgICAgICAg ICAgICAgICAgZm9yIGFyZyBpbiByZXF1aXJlZF9hcmdzOgorICAgICAgICAg ICAgICAgICAgICBpZiBhcmcgbm90IGluIHJlcSBvciByZXFbYXJnXSA9PSAn JzoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25f cmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVz PTQxMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzPTAs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Jtc2c9Z2V0dGV4 dCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvdWxkbid0 IGZpbmQgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciBcCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICglcykuIiAlIGFyZworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgICAgICkK KworICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGxpc3RfcGFy YW1zID0gW10KKyAgICAgICAgICAgICAgICBpZiByZXF1ZXN0Lm1ldGhvZCA9 PSAnR0VUJzoKKyAgICAgICAgICAgICAgICAgICAgbGlzdF9wYXJhbXMgPSBb J2NvbnN0cmFpbnRzJywgJ2NvbHVtbnMnLCAnZnRvcHRpb25zJywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NlY2xhYmVscycsICdp bmhlcml0cyddCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICAgICAgICAgbGlzdF9wYXJhbXMgPSBbJ2luaGVyaXRzJ10KKworICAgICAg ICAgICAgICAgIGZvciBrZXkgaW4gcmVxOgorICAgICAgICAgICAgICAgICAg ICBpZiBrZXkgaW4gbGlzdF9wYXJhbXMgYW5kIHJlcVtrZXldICE9ICcnIFwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgcmVxW2tleV0gaXMg bm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICAjIENvdmVydHMg c3RyaW5nIGludG8gcHl0aG9uIGxpc3QgYXMgZXhwZWN0ZWQuCisgICAgICAg ICAgICAgICAgICAgICAgICBkYXRhW2tleV0gPSBqc29uLmxvYWRzKHJlcVtr ZXldKQorCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBrZXkgPT0gJ2lu aGVyaXRzJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIENvbnZl cnQgVGFibGUgaWRzIGZyb20gdW5pY29kZS9zdHJpbmcgdG8gaW50CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIyBhbmQgbWFrZSB0dXBsZSBmb3Ig J0lOJyBxdWVyeS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmhl cml0cyA9IHR1cGxlKFtpbnQoeCkgZm9yIHggaW4gZGF0YVtrZXldXSkKKwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGxlbihpbmhlcml0cykg PT0gMToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBQeXRo b24gdHVwcGxlIGhhcyAsIGFmdGVyIHRoZSBmaXJzdCBwYXJhbQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIGluIGNhc2Ugb2Ygc2luZ2xl IHBhcmFtZXRlci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IyBTbywgd2UgbmVlZCB0byBtYWtlIGl0IHR1cGxlIGV4cGxpY2l0bHkuCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaGVyaXRzID0gIigi ICsgc3RyKGluaGVyaXRzWzBdKSArICIpIgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIGluaGVyaXRzOgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjIEZldGNoIFRhYmxlIE5hbWVzIGZyb20gdGhlaXIgcmVz cGVjdGl2ZSBJZHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMgYXMgd2UgbmVlZCBUYWJsZSBuYW1lcyB0byBnZW5lcmF0ZSB0aGUgU1FM LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUUwgPSByZW5k ZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZXRfdGFi bGVzLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGF0dHJlbGlkPWluaGVyaXRzKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2Rp Y3QoU1FMKQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJl cykKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAnaW5o ZXJpdHMnIGluIHJlc1sncm93cyddWzBdOgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGF0YVtrZXldID0gcmVzWydyb3dzJ11bMF1b J2luaGVyaXRzJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh dGFba2V5XSA9IFtdCisKKyAgICAgICAgICAgICAgICAgICAgZWxpZiBrZXkg PT0gJ3R5cG5vdG51bGwnOgorICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YVtrZXldID0gVHJ1ZSBpZiAocmVxW2tleV0gPT0gJ3RydWUnIG9yIHJlcVtr ZXldCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpcyBUcnVlKSBlbHNlIEZhbHNlIGlmXAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChyZXFba2V5XSA9PSAnZmFsc2UnIG9yIHJlcVtrZXld KSBpcyBGYWxzZSBlbHNlICcnCisgICAgICAgICAgICAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2tleV0gPSByZXFba2V5 XQorCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAg ICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJv cm1zZz1zdHIoZSkpCisKKyAgICAgICAgICAgIHNlbGYucmVxdWVzdCA9IGRh dGEKKyAgICAgICAgICAgIHJldHVybiBmKHNlbGYsICoqa3dhcmdzKQorCisg ICAgICAgIHJldHVybiB3cmFwCisKKyAgICBkZWYgbW9kdWxlX2pzKHNlbGYp OgorICAgICAgICAiIiIKKyAgICAgICAgTG9hZCBKUyBmaWxlIChmb3JlaWdu X3RhYmxlcy5qcykgZm9yIHRoaXMgbW9kdWxlLgorICAgICAgICAiIiIKKyAg ICAgICAgcmV0dXJuIG1ha2VfcmVzcG9uc2UoCisgICAgICAgICAgICByZW5k ZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgImZvcmVpZ25fdGFibGVz L2pzL2ZvcmVpZ25fdGFibGVzLmpzIiwKKyAgICAgICAgICAgICAgICBfPWdl dHRleHQKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAyMDAsIHsnQ29u dGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCd9CisgICAg ICAgICkKKworICAgIGRlZiBjaGVja19wcmVjb25kaXRpb24oZik6CisgICAg ICAgICIiIgorICAgICAgICBXb3JrcyBhcyBhIGRlY29yYXRvci4KKyAgICAg ICAgQ2hlY2tzIHRoZSBkYXRhYmFzZSBjb25uZWN0aW9uIHN0YXR1cy4KKyAg ICAgICAgQXR0YWNoZXMgdGhlIGNvbm5lY3Rpb24gb2JqZWN0IGFuZCB0ZW1w bGF0ZSBwYXRoIHRvIHRoZSBjbGFzcyBvYmplY3QuCisgICAgICAgICIiIgor ICAgICAgICBAd3JhcHMoZikKKyAgICAgICAgZGVmIHdyYXAoKmFyZ3MsICoq a3dhcmdzKToKKyAgICAgICAgICAgIHNlbGYgPSBhcmdzWzBdCisgICAgICAg ICAgICBkcml2ZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKQor ICAgICAgICAgICAgc2VsZi5tYW5hZ2VyID0gZHJpdmVyLmNvbm5lY3Rpb25f bWFuYWdlcihrd2FyZ3NbJ3NpZCddKQorCisgICAgICAgICAgICAjIEdldCBk YXRhYmFzZSBjb25uZWN0aW9uCisgICAgICAgICAgICBzZWxmLmNvbm4gPSBz ZWxmLm1hbmFnZXIuY29ubmVjdGlvbihkaWQ9a3dhcmdzWydkaWQnXSkKKwor ICAgICAgICAgICAgc2VsZi5xdElkZW50ID0gZHJpdmVyLnF0SWRlbnQKKwor ICAgICAgICAgICAgaWYgbm90IHNlbGYuY29ubi5jb25uZWN0ZWQoKToKKyAg ICAgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKAor ICAgICAgICAgICAgICAgICAgICBnZXR0ZXh0KAorICAgICAgICAgICAgICAg ICAgICAgICAgIkNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBs b3N0ISIKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAg ICkKKworICAgICAgICAgICAgdmVyID0gc2VsZi5tYW5hZ2VyLnZlcnNpb24K KyAgICAgICAgICAgIHNlcnZlcl90eXBlID0gc2VsZi5tYW5hZ2VyLnNlcnZl cl90eXBlCisKKyAgICAgICAgICAgICMgU2V0IHRlbXBsYXRlIHBhdGggZm9y IHNxbCBzY3JpcHRzIGRlcGVuZGluZworICAgICAgICAgICAgIyBvbiB0aGUg c2VydmVyIHZlcnNpb24uCisKKyAgICAgICAgICAgIGlmIHZlciA+PSA5MDUw MDoKKyAgICAgICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGggPSAnZm9y ZWlnbl90YWJsZXMvc3FsLzkuNV9wbHVzJworICAgICAgICAgICAgZWxpZiB2 ZXIgPj0gOTAzMDA6CisgICAgICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9w YXRoID0gJ2ZvcmVpZ25fdGFibGVzL3NxbC85LjNfcGx1cycKKyAgICAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRo ID0gJ2ZvcmVpZ25fdGFibGVzL3NxbC85LjFfcGx1cycKKworICAgICAgICAg ICAgcmV0dXJuIGYoKmFyZ3MsICoqa3dhcmdzKQorCisgICAgICAgIHJldHVy biB3cmFwCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGxp c3Qoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAgICIiIgor ICAgICAgICBMaXN0IGFsbCB0aGUgRm9yZWlnbiBUYWJsZXMuCisKKyAgICAg ICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElkCisg ICAgICAgICAgICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAgICAgZGlkOiBE YXRhYmFzZSBJZAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElkCisgICAg ICAgICIiIgorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpv aW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ25vZGUuc3FsJ10pLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2NpZD1zY2lkKQorICAgICAgICBz dGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorCisg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgcmV0 dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25zZT1yZXNb J3Jvd3MnXSwKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQor CisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBub2RlcyhzZWxm LCBnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAgICAgIiIiCisgICAgICAg IFJldHVybnMgdGhlIEZvcmVpZ24gVGFibGVzIHRvIGdlbmVyYXRlIHRoZSBO b2Rlcy4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2 ZXIgR3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElkCisgICAg ICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgICAgICBzY2lkOiBT Y2hlbWEgSWQKKyAgICAgICAgIiIiCisKKyAgICAgICAgcmVzID0gW10KKyAg ICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRl bXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ25vZGUuc3FsJ10pLCBzY2lkPXNjaWQpCisgICAgICAgIHN0 YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQor CisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJzZXQpCisKKyAgICAg ICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAgICByZXMu YXBwZW5kKAorICAgICAgICAgICAgICAgIHNlbGYuYmx1ZXByaW50LmdlbmVy YXRlX2Jyb3dzZXJfbm9kZSgKKyAgICAgICAgICAgICAgICAgICAgcm93Wydv aWQnXSwKKyAgICAgICAgICAgICAgICAgICAgc2NpZCwKKyAgICAgICAgICAg ICAgICAgICAgcm93WyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgIGlj b249Imljb24tZm9yZWlnbi10YWJsZSIKKyAgICAgICAgICAgICAgICApKQor CisgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAg ICAgICBkYXRhPXJlcywKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAg ICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBwcm9w ZXJ0aWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZvaWQpOgorICAg ICAgICAiIiIKKyAgICAgICAgUmV0dXJucyB0aGUgRm9yZWlnbiBUYWJsZSBw cm9wZXJ0aWVzLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6 IFNlcnZlciBHcm91cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQK KyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNj aWQ6IFNjaGVtYSBJZAorICAgICAgICAgICAgZm9pZDogRm9yZWlnbiBUYWJs ZSBJZAorICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9IHNlbGYuZ2V0X3By b3BlcnRpZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm9pZCkKKworICAgICAg ICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNl PWRhdGEsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZ2V0X3NjaGVtYXMo c2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm9pZD1Ob25lKToKKyAgICAg ICAgIiIiCisgICAgICAgIFJldHVybnMgU2NoZW1hcyBmb3IgdGhlIHBhcnRp Y3VsYXIgZGF0YWJhc2UuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAg IGdpZDogU2VydmVyIEdyb3VwIElkCisgICAgICAgICAgICBzaWQ6IFNlcnZl ciBJZAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICAg ICAgc2NpZDogU2NoZW1hIElkCisgICAgICAgICAgICBmb2lkOiBGb3JlaWdu IFRhYmxlIElkCisgICAgICAgICIiIgorCisgICAgICAgIHJlcyA9IFt7J2xh YmVsJzogJycsICd2YWx1ZSc6ICcnfV0KKyAgICAgICAgdHJ5OgorICAgICAg ICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRl bXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICdnZXRfc2NoZW1hcy5zcWwnXSksIHNjaWQ9c2NpZCkK KyAgICAgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRl XzJkYXJyYXkoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXJlcykKKworICAgICAgICAgICAgZm9yIHJvdyBpbiByc2V0Wydy b3dzJ106CisgICAgICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAg ICAgICAgICAgICAgeydsYWJlbCc6IHJvd1snbnNwbmFtZSddLCAndmFsdWUn OiByb3dbJ25zcG5hbWUnXX0KKyAgICAgICAgICAgICAgICApCisKKyAgICAg ICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAg ICAgICAgZGF0YT1yZXMsCisgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAor ICAgICAgICAgICAgKQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMg ZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgor ICAgIGRlZiBnZXRfY29sbGF0aW9ucyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBz Y2lkLCBmb2lkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJu cyB0aGUgQ29sbGF0aW9ucy4KKworICAgICAgICBBcmdzOgorICAgICAgICAg ICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDogU2Vy dmVyIElkCisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAg ICAgICBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgICAgIGZvaWQ6IEZvcmVp Z24gVGFibGUgSWQKKyAgICAgICAgIiIiCisKKyAgICAgICAgcmVzID0gW3sn bGFiZWwnOiAnJywgJ3ZhbHVlJzogJyd9XQorICAgICAgICB0cnk6CisgICAg ICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYu dGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ2dldF9jb2xsYXRpb25zLnNxbCddKSkKKyAgICAg ICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJy YXkoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJlcykKKworICAgICAgICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106 CisgICAgICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAg ICAgICAgeydsYWJlbCc6IHJvd1snY29weV9jb2xsYXRpb24nXSwKKyAgICAg ICAgICAgICAgICAgICAgICd2YWx1ZSc6IHJvd1snY29weV9jb2xsYXRpb24n XX0KKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgICAgIHJldHVybiBt YWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgZGF0YT1yZXMs CisgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgKQor CisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUp KQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBnZXRfdHlw ZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm9pZD1Ob25lKToKKyAg ICAgICAgIiIiCisgICAgICAgIFJldHVybnMgdGhlIFR5cGVzLgorCisgICAg ICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJZAor ICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRpZDog RGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAorICAg ICAgICAgICAgZm9pZDogRm9yZWlnbiBUYWJsZSBJZAorICAgICAgICAiIiIK KyAgICAgICAgIyBUT0RPOiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSByZW1v dmVkIG9uY2UgVHlwZXMgbW9kdWxlCisgICAgICAgICMgd2lsbCBiZSBjb21w bGV0ZWQuCisKKyAgICAgICAgcmVzID0gW3snbGFiZWwnOiAnJywgJ3ZhbHVl JzogJyd9XQorICAgICAgICB0cnk6CisgICAgICAgICAgICBTUUwgPSByZW5k ZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dl dF90eXBlcy5zcWwnXSkpCisgICAgICAgICAgICBzdGF0dXMsIHJzZXQgPSBz ZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAgICAgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIGZv ciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgICAgIHJlcy5h cHBlbmQoCisgICAgICAgICAgICAgICAgICAgIHsnbGFiZWwnOiByb3dbJ3R5 cG5hbWUnXSwgJ3ZhbHVlJzogcm93Wyd0eXBuYW1lJ119CisgICAgICAgICAg ICAgICAgKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25z ZSgKKyAgICAgICAgICAgICAgICBkYXRhPXJlcywKKyAgICAgICAgICAgICAg ICBzdGF0dXM9MjAwCisgICAgICAgICAgICApCisKKyAgICAgICAgZXhjZXB0 IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tf cHJlY29uZGl0aW9uCisgICAgZGVmIGdldF9mb3JlaWduX3NlcnZlcnMoc2Vs ZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm9pZD1Ob25lKToKKyAgICAgICAg IiIiCisgICAgICAgIFJldHVybnMgdGhlIEZvcmVpZ24gU2VydmVycy4KKwor ICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAg SWQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElkCisgICAgICAgICAgICBk aWQ6IERhdGFiYXNlIElkCisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSWQK KyAgICAgICAgICAgIGZvaWQ6IEZvcmVpZ24gVGFibGUgSWQKKyAgICAgICAg IiIiCisgICAgICAgIHJlcyA9IFt7J2xhYmVsJzogJycsICd2YWx1ZSc6ICcn fV0KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3Rl bXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZXRfZm9y ZWlnbl9zZXJ2ZXJzLnNxbCddKSkKKyAgICAgICAgICAgIHN0YXR1cywgcnNl dCA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQorICAgICAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAg ICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAgICAgICAg cmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAgICAgeydsYWJlbCc6IHJv d1snc3J2bmFtZSddLCAndmFsdWUnOiByb3dbJ3Nydm5hbWUnXX0KKyAgICAg ICAgICAgICAgICApCisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jl c3BvbnNlKAorICAgICAgICAgICAgICAgIGRhdGE9cmVzLAorICAgICAgICAg ICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICkKKworICAgICAgICBl eGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBj aGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZ2V0X3RhYmxlcyhzZWxmLCBn aWQsIHNpZCwgZGlkLCBzY2lkLCBmb2lkPU5vbmUpOgorICAgICAgICAiIiIK KyAgICAgICAgUmV0dXJucyB0aGUgRm9yZWlnbiBUYWJsZXMgYXMgd2VsbCBh cyBQbGFpbiBUYWJsZXMuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAg IGdpZDogU2VydmVyIEdyb3VwIElkCisgICAgICAgICAgICBzaWQ6IFNlcnZl ciBJZAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICAg ICAgc2NpZDogU2NoZW1hIElkCisgICAgICAgICAgICBmb2lkOiBGb3JlaWdu IFRhYmxlIElkCisgICAgICAgICIiIgorICAgICAgICByZXMgPSBbXQorICAg ICAgICB0cnk6CisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUo Ii8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF90YWJsZXMuc3Fs J10pKQorICAgICAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4 ZWN1dGVfZGljdChTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgor ICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29u X3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIGRhdGE9cnNldFsncm93cydd LAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICkK KworICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBleGNfdHlwZSwgZXhj X3ZhbHVlLCBleGNfdHJhY2ViYWNrID0gc3lzLmV4Y19pbmZvKCkKKyAgICAg ICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5lcnJvcigKKyAgICAgICAgICAg ICAgICB0cmFjZWJhY2sucHJpbnRfZXhjZXB0aW9uKGV4Y190eXBlLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjX3Zh bHVlLCBleGNfdHJhY2ViYWNrLCBsaW1pdD0yKSkKKworICAgICAgICAgICAg cmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZXhj X3ZhbHVlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYg Z2V0X2NvbHVtbnMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm9pZD1O b25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgdGhlIFRhYmxl IENvbHVtbnMuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDog U2VydmVyIEdyb3VwIElkCisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJZAor ICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICAgICAgc2Np ZDogU2NoZW1hIElkCisgICAgICAgICAgICBmb2lkOiBGb3JlaWduIFRhYmxl IElkCisgICAgICAgICAgICBhdHRyZWxpZDogVGFibGUgb2lkCisKKyAgICAg ICAgUmV0dXJuczoKKyAgICAgICAgICAgICAgSlNPTiBBcnJheSB3aXRoIGJl bG93IHBhcmFtZXRlcnMuCisgICAgICAgICAgICAgIGF0dG5hbWU6IENvbHVt biBOYW1lCisgICAgICAgICAgICAgIGRhdGF0eXBlOiBDb2x1bW4gRGF0YSBU eXBlCisgICAgICAgICAgICAgIGluaGVyaXRlZF9mcm9tOiBQYXJlbnQgVGFi bGUgZnJvbSB3aGljaCB0aGUgcmVsYXRlZCBjb2x1bW4KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlzIGluaGVyaXR0ZWQuCisgICAgICAgICIi IgorICAgICAgICByZXMgPSBbXQorICAgICAgICBkYXRhID0gcmVxdWVzdC5h cmdzIGlmIHJlcXVlc3QuYXJncyBlbHNlIE5vbmUKKyAgICAgICAgdHJ5Ogor ICAgICAgICAgICAgaWYgZGF0YSBhbmQgJ2F0dHJlbGlkJyBpbiBkYXRhOgor ICAgICAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9p bihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF90YWJsZV9jb2x1bW5z LnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXR0cmVsaWQ9ZGF0YVsnYXR0cmVsaWQnXSkKKyAgICAgICAgICAgICAg ICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQor CisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1yZXMpCisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNw b25zZSgKKyAgICAgICAgICAgICAgICAgICAgZGF0YT1yZXNbJ3Jvd3MnXSwK KyAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAg ICAgICkKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgZXhjX3R5cGUs IGV4Y192YWx1ZSwgZXhjX3RyYWNlYmFjayA9IHN5cy5leGNfaW5mbygpCisg ICAgICAgICAgICBjdXJyZW50X2FwcC5sb2dnZXIuZXJyb3IodHJhY2ViYWNr LnByaW50X2V4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICBleGNfdHlwZSwK KyAgICAgICAgICAgICAgICBleGNfdmFsdWUsCisgICAgICAgICAgICAgICAg ZXhjX3RyYWNlYmFjaywKKyAgICAgICAgICAgICAgICBsaW1pdD0yCisgICAg ICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorCisgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihleGNf dmFsdWUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIEB2YWxp ZGF0ZV9yZXF1ZXN0CisgICAgZGVmIGNyZWF0ZShzZWxmLCBnaWQsIHNpZCwg ZGlkLCBzY2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIENyZWF0ZXMgYSBu ZXcgRm9yZWlnbiBUYWJsZSBvYmplY3QuCisKKyAgICAgICAgQXJnczoKKyAg ICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElkCisgICAgICAgICAgICBz aWQ6IFNlcnZlciBJZAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJZAor ICAgICAgICAgICAgc2NpZDogU2NoZW1hIElkCisgICAgICAgICAgICBmb2lk OiBGb3JlaWduIFRhYmxlIElkCisgICAgICAgICAgICBuYW1lOiBGb3JlaWdu IFRhYmxlIE5hbWUKKyAgICAgICAgICAgIGJhc2Vuc3A6IFNjaGVtYSBOYW1l CisgICAgICAgICAgICBmdHNydm5hbWU6IEZvcmVpZ24gU2VydmVyIE5hbWUK KworICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgRm9yZWlnbiBUYWJs ZSBvYmplY3QgaW4ganNvbiBmb3JtYXQuCisgICAgICAgICIiIgorICAgICAg ICB0cnk6CisgICAgICAgICAgICAjIEdldCBTUUwgdG8gY3JlYXRlIEZvcmVp Z24gVGFibGUKKyAgICAgICAgICAgIHN0YXR1cywgU1FMID0gc2VsZi5nZXRf c3FsKGdpZCwgc2lkLCBkaWQsIHNjaWQsIHNlbGYucmVxdWVzdCkKKyAgICAg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1TUUwpCisKKyAgICAg ICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFy KFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1y ZXMpCisKKyAgICAgICAgICAgICMgTmVlZCBvaWQgdG8gYWRkIG9iamVjdCBp biB0aGUgdHJlZSBhdCBicm93c2VyLgorICAgICAgICAgICAgYmFzZW5zcCA9 IHNlbGYucmVxdWVzdFsnYmFzZW5zcCddIGlmICgnYmFzZW5zcCcgaW4gc2Vs Zi5yZXF1ZXN0KSBcCisgICAgICAgICAgICAgICAgZWxzZSBOb25lCisgICAg ICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYu dGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ2dldF9vaWQuc3FsJ10pLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJhc2Vuc3A9YmFzZW5zcCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXNlbGYucmVxdWVz dFsnbmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNjaWQ9c2NpZCkKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5j b25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisgICAgICAgICAgICBpZiBub3Qg c3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICBmb2lkLCBz Y2lkID0gcmVzWydyb3dzJ11bMF0KKworICAgICAgICAgICAgcmV0dXJuIGpz b25pZnkoCisgICAgICAgICAgICAgICAgbm9kZT1zZWxmLmJsdWVwcmludC5n ZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAgICAgICAgIGZv aWQsCisgICAgICAgICAgICAgICAgICAgIHNjaWQsCisgICAgICAgICAgICAg ICAgICAgIHNlbGYucmVxdWVzdFsnbmFtZSddLAorICAgICAgICAgICAgICAg ICAgICBpY29uPSJpY29uLWZvcmVpZ24tdGFibGUiCisgICAgICAgICAgICAg ICAgKQorICAgICAgICAgICAgKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9u IGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRp b24KKyAgICBkZWYgZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQs IGZvaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgRHJvcHMgdGhlIEZvcmVp Z24gVGFibGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDog U2VydmVyIEdyb3VwIElkCisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJZAor ICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICAgICAgc2Np ZDogU2NoZW1hIElkCisgICAgICAgICAgICBmb2lkOiBGb3JlaWduIFRhYmxl IElkCisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLmNtZCA9PSAnZGVs ZXRlJzoKKyAgICAgICAgICAgICMgVGhpcyBpcyBhIGNhc2NhZGUgb3BlcmF0 aW9uCisgICAgICAgICAgICBjYXNjYWRlID0gVHJ1ZQorICAgICAgICBlbHNl OgorICAgICAgICAgICAgY2FzY2FkZSA9IEZhbHNlCisKKyAgICAgICAgdHJ5 OgorICAgICAgICAgICAgIyBGZXRjaCBOYW1lIGFuZCBTY2hlbWEgTmFtZSB0 byBkZWxldGUgdGhlIGZvcmVpZ24gdGFibGUuCisgICAgICAgICAgICBTUUwg PSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0 aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVsZXRl LnNxbCddKSwgc2NpZD1zY2lkLCBmb2lkPWZvaWQpCisgICAgICAgICAgICBz dGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQor ICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKwor ICAgICAgICAgICAgbmFtZSwgYmFzZW5zcCA9IHJlc1sncm93cyddWzBdCisK KyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnZGVsZXRlLnNxbCddKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPW5hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZW5zcD1iYXNlbnNwLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2NhZGU9Y2Fz Y2FkZSkKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4 ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6 CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pz b25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAg ICAgICAgICAgICAgIGluZm89Z2V0dGV4dCgiRm9yZWlnbiBUYWJsZSBkcm9w cGVkIiksCisgICAgICAgICAgICAgICAgZGF0YT17CisgICAgICAgICAgICAg ICAgICAgICdpZCc6IGZvaWQsCisgICAgICAgICAgICAgICAgICAgICdzY2lk Jzogc2NpZCwKKyAgICAgICAgICAgICAgICAgICAgJ3NpZCc6IHNpZCwKKyAg ICAgICAgICAgICAgICAgICAgJ2dpZCc6IGdpZCwKKyAgICAgICAgICAgICAg ICAgICAgJ2RpZCc6IGRpZAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBAdmFs aWRhdGVfcmVxdWVzdAorICAgIGRlZiB1cGRhdGUoc2VsZiwgZ2lkLCBzaWQs IGRpZCwgc2NpZCwgZm9pZCk6CisgICAgICAgICIiIgorICAgICAgICBVcGRh dGVzIHRoZSBGb3JlaWduIFRhYmxlLgorCisgICAgICAgIEFyZ3M6CisgICAg ICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJZAorICAgICAgICAgICAgc2lk OiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAg ICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAorICAgICAgICAgICAgZm9pZDog Rm9yZWlnbiBUYWJsZSBJZAorICAgICAgICAiIiIKKyAgICAgICAgc3RhdHVz LCBTUUwgPSBzZWxmLmdldF9zcWwoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgc2Vs Zi5yZXF1ZXN0LCBmb2lkKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6Cisg ICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y bXNnPVNRTCkKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBpZiBTUUwg YW5kIFNRTC5zdHJpcCgnXG4nKSBhbmQgU1FMLnN0cmlwKCcgJyk6CisgICAg ICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9z Y2FsYXIoU1FMKQorICAgICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6Cisg ICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICAgICAgcmV0dXJuIG1h a2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vz cz0xLAorICAgICAgICAgICAgICAgICAgICBpbmZvPSJGb3JlaWduIFRhYmxl IHVwZGF0ZWQiLAorICAgICAgICAgICAgICAgICAgICBkYXRhPXsKKyAgICAg ICAgICAgICAgICAgICAgICAgICdpZCc6IGZvaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAnc2NpZCc6IHNjaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2dp ZCc6IGdpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdkaWQnOiBkaWQK KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICkKKyAg ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2Vf anNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0x LAorICAgICAgICAgICAgICAgICAgICBpbmZvPSJOb3RoaW5nIHRvIHVwZGF0 ZSIsCisgICAgICAgICAgICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAg ICAgICAgICAgICAgJ2lkJzogZm9pZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICdzY2lkJzogc2NpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdz aWQnOiBzaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnZ2lkJzogZ2lk LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RpZCc6IGRpZAorICAgICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKQorCisgICAgICAg IGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAg QGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBzcWwoc2VsZiwgZ2lkLCBz aWQsIGRpZCwgc2NpZCwgZm9pZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAg ICAgIFJldHVybnMgdGhlIFNRTCBmb3IgdGhlIEZvcmVpZ24gVGFibGUgb2Jq ZWN0LgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZl ciBHcm91cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAg ICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNj aGVtYSBJZAorICAgICAgICAgICAgZm9pZDogRm9yZWlnbiBUYWJsZSBJZAor ICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9IHNlbGYuZ2V0X3Byb3BlcnRp ZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm9pZCwgaW5oZXJpdHM9VHJ1ZSkK KworICAgICAgICBjb2xfZGF0YSA9IFtdCisgICAgICAgIGZvciBjIGluIGRh dGFbJ2NvbHVtbnMnXToKKyAgICAgICAgICAgIGlmIChub3QgJ2luaGVyaXRl ZGZyb20nIGluIGMpIG9yIChjWydpbmhlcml0ZWRmcm9tJ10gaXMgTm9uZSk6 CisgICAgICAgICAgICAgICAgY29sX2RhdGEuYXBwZW5kKGMpCisKKyAgICAg ICAgZGF0YVsnY29sdW1ucyddID0gY29sX2RhdGEKKworICAgICAgICBTUUwg PSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0 aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn Y3JlYXRlLnNxbCddKSwgZGF0YT1kYXRhKQorCisgICAgICAgIHJldHVybiBh amF4X3Jlc3BvbnNlKHJlc3BvbnNlPVNRTCkKKworICAgIEBjaGVja19wcmVj b25kaXRpb24KKyAgICBAdmFsaWRhdGVfcmVxdWVzdAorICAgIGRlZiBtc3Fs KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZvaWQ9Tm9uZSk6CisgICAg ICAgICIiIgorICAgICAgICBSZXR1cm5zIHRoZSBtb2RpZmllZCBTUUwuCisK KyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3Vw IElkCisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAgICAg ZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElk CisgICAgICAgICAgICBmb2lkOiBGb3JlaWduIFRhYmxlIElkCisgICAgICAg ICAgICBuYW1lOiBGb3JlaWduIFRhYmxlIE5hbWUKKyAgICAgICAgICAgIGZ0 c3J2bmFtZTogRm9yZWlnbiBTZXJ2ZXIgTmFtZQorCisgICAgICAgIFJldHVy bnM6CisgICAgICAgICAgICBTUUwgc3RhdGVtZW50cyB0byBjcmVhdGUvdXBk YXRlIHRoZSBGb3JlaWduIFRhYmxlLgorICAgICAgICAiIiIKKyAgICAgICAg c3RhdHVzLCBTUUwgPSBzZWxmLmdldF9zcWwoZ2lkLCBzaWQsIGRpZCwgc2Np ZCwgc2VsZi5yZXF1ZXN0LCBmb2lkKQorICAgICAgICBpZiBzdGF0dXM6Cisg ICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAg ICAgICAgICAgIGRhdGE9U1FMLAorICAgICAgICAgICAgICAgIHN0YXR1cz0y MDAKKyAgICAgICAgICAgICkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg IHJldHVybiBTUUwKKworICAgIGRlZiBnZXRfc3FsKHNlbGYsIGdpZCwgc2lk LCBkaWQsIHNjaWQsIGRhdGEsIGZvaWQ9Tm9uZSk6CisgICAgICAgICIiIgor ICAgICAgICBHZW5yYXRlcyB0aGUgU1FMIHN0YXRlbWVudHMgdG8gY3JlYXRl L3VwZGF0ZSB0aGUgRm9yZWlnbiBUYWJsZS4KKworICAgICAgICBBcmdzOgor ICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAgICAg IHNpZDogU2VydmVyIElkCisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElk CisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgICAgIGZv aWQ6IEZvcmVpZ24gVGFibGUgSWQKKyAgICAgICAgIiIiCisgICAgICAgIHRy eToKKyAgICAgICAgICAgIGlmIGZvaWQgaXMgbm90IE5vbmU6CisgICAgICAg ICAgICAgICAgb2xkX2RhdGEgPSBzZWxmLmdldF9wcm9wZXJ0aWVzKGdpZCwg c2lkLCBkaWQsIHNjaWQsIGZvaWQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGluaGVyaXRzPVRydWUpCisKKyAg ICAgICAgICAgICAgICAjIFByZXBhcmUgZGljdCBvZiBjb2x1bW5zIHdpdGgg a2V5ID0gY29sdW1uJ3MgYXR0bnVtCisgICAgICAgICAgICAgICAgIyBXaWxs IHVzZSB0aGlzIGluIHRoZSB1cGRhdGUgdGVtcGxhdGUgd2hlbiBhbnkgY29s dW1uIGlzCisgICAgICAgICAgICAgICAgIyBjaGFuZ2VkLCB0byBpZGVudGlm eSB0aGUgY29sdW1ucy4KKyAgICAgICAgICAgICAgICBjb2xfZGF0YSA9IHt9 CisgICAgICAgICAgICAgICAgZm9yIGMgaW4gb2xkX2RhdGFbJ2NvbHVtbnMn XToKKyAgICAgICAgICAgICAgICAgICAgY29sX2RhdGFbY1snYXR0bnVtJ11d ID0gYworCisgICAgICAgICAgICAgICAgb2xkX2RhdGFbJ2NvbHVtbnMnXSA9 IGNvbF9kYXRhCisKKyAgICAgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVt cGxhdGUoCisgICAgICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRl bXBsYXRlX3BhdGgsICd1cGRhdGUuc3FsJ10pLAorICAgICAgICAgICAgICAg ICAgICBkYXRhPWRhdGEsIG9fZGF0YT1vbGRfZGF0YQorICAgICAgICAgICAg ICAgICkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3Bh dGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnY3JlYXRlLnNxbCddKSwgZGF0YT1kYXRhKQorICAgICAgICAg ICAgcmV0dXJuIFRydWUsIFNRTAorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRp b24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZSwgZQorCisgICAg QGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBkZXBlbmRlbnRzKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZvaWQpOgorICAgICAgICAiIiIKKyAg ICAgICAgVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRlcGVuZGVudHMgYW5kIHJl dHVybiBhamF4IHJlc3BvbnNlCisgICAgICAgIGZvciB0aGUgRm9yZWlnbiBU YWJsZSBvYmplY3QuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdp ZDogU2VydmVyIEdyb3VwIElkCisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJ ZAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICAgICAg c2NpZDogU2NoZW1hIElkCisgICAgICAgICAgICBmb2lkOiBGb3JlaWduIFRh YmxlIElkCisgICAgICAgICIiIgorICAgICAgICBkZXBlbmRlbnRzX3Jlc3Vs dCA9IHNlbGYuZ2V0X2RlcGVuZGVudHMoc2VsZi5jb25uLCBmb2lkKQorICAg ICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3Bv bnNlPWRlcGVuZGVudHNfcmVzdWx0LAorICAgICAgICAgICAgc3RhdHVzPTIw MAorICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAg ZGVmIGRlcGVuZGVuY2llcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBm b2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2V0 IHRoZSBkZXBlbmRlbmNpZXMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNlCisg ICAgICAgIGZvciB0aGUgIEZvcmVpZ24gVGFibGUgb2JqZWN0LgorCisgICAg ICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJZAor ICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRpZDog RGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAorICAg ICAgICAgICAgZm9pZDogRm9yZWlnbiBUYWJsZSBJZAorICAgICAgICAiIiIK KyAgICAgICAgZGVwZW5kZW5jaWVzX3Jlc3VsdCA9IHNlbGYuZ2V0X2RlcGVu ZGVuY2llcyhzZWxmLmNvbm4sIGZvaWQpCisgICAgICAgIHJldHVybiBhamF4 X3Jlc3BvbnNlKAorICAgICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW5jaWVz X3Jlc3VsdCwKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQor CisgICAgZGVmIGdldF9wcm9wZXJ0aWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQs IHNjaWQsIGZvaWQsIGluaGVyaXRzPUZhbHNlKToKKyAgICAgICAgIiIiCisg ICAgICAgIFJldHVybnMgdGhlIEZvcmVpZ24gVGFibGUgcHJvcGVydGllcyB3 aGljaCB3aWxsIGJlIHVzZWQgaW4KKyAgICAgICAgcHJvcGVydGllcywgc3Fs IGFuZCBnZXRfc3FsIGZ1bmN0aW9ucy4KKworICAgICAgICBBcmdzOgorICAg ICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAgICAgIHNp ZDogU2VydmVyIElkCisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisg ICAgICAgICAgICBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgICAgIGZvaWQ6 IEZvcmVpZ24gVGFibGUgSWQKKyAgICAgICAgICAgIGluaGVyaXRzOiBJZiBU cnVlIHRoZW4gaW5oZXJpdGVkIHRhYmxlIHdpbGwgYmUgZmV0Y2hlZCBmcm9t CisgICAgICAgICAgICAgICAgICAgICAgZGF0YWJhc2UKKworICAgICAgICBS ZXR1cm5zOgorCisgICAgICAgICIiIgorICAgICAgICBTUUwgPSByZW5kZXJf dGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvcGVydGll cy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2lk PXNjaWQsIGZvaWQ9Zm9pZCkKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxm LmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1 czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9cmVzKQorCisgICAgICAgIGRhdGEgPSByZXNbJ3Jvd3MnXVsw XQorCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdnZXRfY29uc3RyYWludHMuc3FsJ10pLCBmb2lk PWZvaWQpCisgICAgICAgIHN0YXR1cywgY29ucyA9IHNlbGYuY29ubi5leGVj dXRlX2RpY3QoU1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1j b25zKQorCisgICAgICAgIGlmIGNvbnMgYW5kICdyb3dzJyBpbiBjb25zOgor ICAgICAgICAgICAgZGF0YVsnY29uc3RyYWludHMnXSA9IGNvbnNbJ3Jvd3Mn XQorCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdnZXRfY29sdW1ucy5zcWwnXSksIGZvaWQ9Zm9p ZCkKKyAgICAgICAgc3RhdHVzLCBjb2xzID0gc2VsZi5jb25uLmV4ZWN1dGVf ZGljdChTUUwpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPWNvbHMp CisKKyAgICAgICAgIyBUaGUgTGVuZ3RoIGFuZCB0aGUgcHJlY2lzaW9uIG9m IHRoZSBEYXRhdHlwZSBzaG91bGQgYmUgc2VwYXJhdGVkLgorICAgICAgICAj IFRoZSBGb3JtYXQgd2UgZ2V0dGluZyBmcm9tIGRhdGFiYXNlIGlzOiBudW1l cmljKDEsMSkKKyAgICAgICAgIyBTbywgd2UgbmVlZCB0byBzZXBhcmF0ZSBp dCBhcyBMZW5ndGg6IDEsIFByZWNpc2lvbjogMQorICAgICAgICBmb3IgYyBp biBjb2xzWydyb3dzJ106CisgICAgICAgICAgICBpZiBjWydmdWxsdHlwZSdd ICE9ICcnIGFuZCBjWydmdWxsdHlwZSddLmZpbmQoIigiKSA+IDA6CisgICAg ICAgICAgICAgICAgc3Vic3RyID0gY1snZnVsbHR5cGUnXVtjWydmdWxsdHlw ZSddLmZpbmQoIigiKSArIDE6bGVuKAorICAgICAgICAgICAgICAgICAgICBj WydmdWxsdHlwZSddKSAtIDFdCisgICAgICAgICAgICAgICAgdHlwbGVuID0g c3Vic3RyLnNwbGl0KCIsIikKKyAgICAgICAgICAgICAgICBpZiBsZW4odHlw bGVuKSA+IDE6CisgICAgICAgICAgICAgICAgICAgIGNbJ3R5cGxlbiddID0g dHlwbGVuWzBdCisgICAgICAgICAgICAgICAgICAgIGNbJ3ByZWNpc2lvbidd ID0gdHlwbGVuWzFdCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAg ICAgICAgICAgICAgY1sndHlwbGVuJ10gPSB0eXBsZW4KKyAgICAgICAgICAg ICAgICAgICAgY1sncHJlY2lzaW9uJ10gPSAnJworCisgICAgICAgIGlmIGNv bHMgYW5kICdyb3dzJyBpbiBjb2xzOgorICAgICAgICAgICAgZGF0YVsnY29s dW1ucyddID0gY29sc1sncm93cyddCisKKyAgICAgICAgIyBHZXQgSW5oZXJp dGVkIHRhYmxlIG5hbWVzIGZyb20gdGhlaXIgT0lECisgICAgICAgIGlmIGlu aGVyaXRzOgorICAgICAgICAgICAgaWYgJ2luaGVyaXRzJyBpbiBkYXRhIGFu ZCBkYXRhWydpbmhlcml0cyddOgorICAgICAgICAgICAgICAgIGluaGVyaXRz ID0gdHVwbGUoW2ludCh4KSBmb3IgeCBpbiBkYXRhWydpbmhlcml0cyddXSkK KyAgICAgICAgICAgICAgICBpZiBsZW4oaW5oZXJpdHMpID09IDE6CisgICAg ICAgICAgICAgICAgICAgIGluaGVyaXRzID0gIigiICsgc3RyKGluaGVyaXRz WzBdKSArICIpIgorCisgICAgICAgICAgICAgICAgU1FMID0gcmVuZGVyX3Rl bXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2V0 X3RhYmxlcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGF0dHJlbGlkPWluaGVyaXRzKQorICAgICAgICAgICAgICAg IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisK KyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJlcykKKworICAgICAgICAgICAgICAgIGlmICdpbmhlcml0cycgaW4gcmVz Wydyb3dzJ11bMF06CisgICAgICAgICAgICAgICAgICAgIGRhdGFbJ2luaGVy aXRzJ10gPSByZXNbJ3Jvd3MnXVswXVsnaW5oZXJpdHMnXQorCisgICAgICAg IHJldHVybiBkYXRhCisKK0ZvcmVpZ25UYWJsZVZpZXcucmVnaXN0ZXJfbm9k ZV92aWV3KGJsdWVwcmludCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2ZvcmVpZ25fdGFibGVzL3N0YXRpYy9pbWcvY29sbC1mb3JlaWduLXRhYmxl LnBuZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3N0YXRpYy9p bWcvY29sbC1mb3JlaWduLXRhYmxlLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwLi5kYzFmNzQyYmJjYTA1OTgwZjNjNGNiZjNjMTZhZjBlMGNmOWFmYTQx CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA0OTIKemNtVjxJMFRjZC1QKTxo OzNLfExrMDAwZTFOSkxUcTAwMG1HMDAwbU8we3tSM0NAbHxEMDAwMDFiNWNo XzBJdHApCno9PlB4I3g9PjcxTVBzQDRBKGlLZiZpPDZvYEt7SVIlR35QUzxM Qm4qPWpQXy0jbnxSe3gjJSNRPSFuaCFRbjIhfgp6KSRRSGctR2peaWRkQjsy ITEtM1BeR1UxbEoqRGsycDZlJT4+RTdQbmdVa0kmdE1FT2Y/SUBZKS17MFRq O15PMXUKejxLXlkkaHJzOUg7TllqSHI+dn4zP0NrOUI/KFhVNz5FWXF3cmx6 Sy1zSG07MnQqQGBJPmd3dXslSmIqdj1qLWUxCno9Oy1MRnNqMlZwQEEye1I/ ZHxRVnM7YVFDdShHblU8bUJZPUBiRylhYCl8UGJENEZQcXBUIzJwMDAwNFdR Y2hDPAp6SzwzekgwMDAwMVZvT0l2MEVoKTBOQntyOzMyO2JSYXt2R2Y2OTUx VTY5RTk0b0VRS0EwMChxUU8rXlJXMH57NDcKekNWYzslY0tgcVlvPUhTT1Iy Yjc7JiVGLTlGYnFifmReQ2E5RjV5PVEzSmhVdG1RMWRNIXUhNyRQNzZaUjxJ UiFmCno4MnJZSmdHRldDYSNoejJAZjZ6aXpkPGBRQEgyelckMj1udUhDJSQ0 P1QobTJBbDdnJD1FNVl8aUFYZks3c0VqOwp6UExpYDJKYz1ReTA0dnNNPSsm XmRIK1lkREpDbCtjRVFieVVlSUghOHF9TCNGMW9rMj80UWtOblBUKHFUYFhP VFEKaTxESDQ4a2xOVU5aK2A9TShoVW1tSztSWXQwMDAwPE1OVU1uTFNUWD1U bHZ1ZAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvc3RhdGljL2ltZy9mb3JlaWdu LXRhYmxlLnBuZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3N0 YXRpYy9pbWcvZm9yZWlnbi10YWJsZS5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMC4uNTNjMTMzODg1YTBjMGM3MDUwZTRjODU4MGFkZmQ3NWY4Y2VhYTg1 MgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNTYzCnpjbVYtMzA/aHIxUCk8 aDszS3xMazAwMGUxTkpMVHEwMDBtRzAwMG1PMHt7UjNDQGx8RDAwMDAxYjVj aF8wSXRwKQp6PT5QeCMpbGZgU01kYWs8QShpS2koRXBPcGA9Wm5KeTRkWn0t fDY0dT1qRzwtPUh9K3c7cE1FKD1WUCh4RX1RNiEKeiY7TnpZeyhpeyhiO0o1 PnpXOENkX0V4ZzxPUlZyZnJ8dmhQPkBBJD9DWWI0ayU+OFM9Xyg3KWJIbGdl O29hKGdKCno/JW16cC1ybkJkLXswV2k7Tmp1bjteTn10PEt5TSE8JWhyTD07 LUxfPkZNWF49YyVjd3RnTmk7P0NrQ0I/ZUZqSgp6Pmd3dkpyPkNmPnNJOUg3 dWRsRGA+K0E2RkBiZEVWPyhYaVp0RTtmRXUoN2VSdmErKUFAJHZLWF5ZISlo d1k5Yk8Kel9WKVByX19uc1R4Vlg2WV94RHQjS1JvfmQwMERHVFBFIUN0PUdi TmMwMDA0RU9HaVdpaHlAKTswMDAwOWE3YkJtCnowMDBYVTAwMFhVMFJXbnU3 eXRrTzJYc2tJTUYtbWg5MkY9ZWxKV21yMDAwMldOa2w8Wjd9SGhILUVNK0Y1 QyEwIQp6IWFgU09FITUmcU9OJiUodz9JVE9hVDlIX0c0dVpLPFNleHAmZlI9 RG5hbUxhP25WZCE0PyFyU18pKTEqZzQpQ1EKekRiMWNJRlpweWZVa3IpeVlu cl89Nno/QkBQJWY5JT1XNHpBYGNgSXUra1dYMGpUfUhWS2tXdUpDSSZUTWd7 bldhCnp0dXx5TUJJKzRAOXUwKnNCV3NDYVJvOG9AMDNkWHdiUFZoRXE/Misx bDNac2EyRyFJTWNSNVZUJGFObD9vclJkRgp6MExhTHQ0RTZiITt+X1VJTmIr WkorOytXQEwpU29pQFBxayh8MF95ejZ3fCZRUXs/fnYwMDJvdlBESExrVjFu RmgKQkNuRXA9CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9y ZWlnbl90YWJsZXMvanMvZm9yZWlnbl90YWJsZXMuanMgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMv anMvZm9yZWlnbl90YWJsZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uODI1ODU0NAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3Rh Ymxlcy9qcy9mb3JlaWduX3RhYmxlcy5qcwpAQCAtMCwwICsxLDQ5MyBAQAor LyogQ3JlYXRlIGFuZCBSZWdpc3RlciBGb3JlaWduIFRhYmxlIENvbGxlY3Rp b24gYW5kIE5vZGUuICovCitkZWZpbmUoCisgICAgICAgIFsnanF1ZXJ5Jywg J3VuZGVyc2NvcmUnLCAndW5kZXJzY29yZS5zdHJpbmcnLCAncGdhZG1pbics ICdwZ2FkbWluLmJyb3dzZXInLCAnYWxlcnRpZnknLCAncGdhZG1pbi5icm93 c2VyLmNvbGxlY3Rpb24nXSwKK2Z1bmN0aW9uKCQsIF8sIFMsIHBnQWRtaW4s IHBnQnJvd3NlciwgYWxlcnRpZnkpIHsKKworICBpZiAoIXBnQnJvd3Nlci5O b2Rlc1snY29sbC1mb3JlaWduLXRhYmxlJ10pIHsKKyAgICB2YXIgZm9yZWln bnRhYmxlID0gcGdBZG1pbi5Ccm93c2VyLk5vZGVzWydjb2xsLWZvcmVpZ24t dGFibGUnXSA9CisgICAgICBwZ0FkbWluLkJyb3dzZXIuQ29sbGVjdGlvbi5l eHRlbmQoeworICAgICAgICBub2RlOiAnZm9yZWlnbi10YWJsZScsCisgICAg ICAgIGxhYmVsOiAne3sgXygnRm9yZWlnbiBUYWJsZXMnKSB9fScsCisgICAg ICAgIHR5cGU6ICdjb2xsLWZvcmVpZ24tdGFibGUnLAorICAgICAgICBjb2x1 bW5zOiBbJ25hbWUnLCAnb3duZXInLCAnZGVzY3JpcHRpb24nXQorICAgICAg fSk7CisgIH07CisKKyAgLy8gU2VjdXJpdHkgTW9kZWwKKyAgdmFyIFNlY3Vy aXR5TW9kZWwgPSBCYWNrZm9ybS5TZWN1cml0eU1vZGVsID0gcGdBZG1pbi5C cm93c2VyLk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICBkZWZhdWx0czogewor ICAgICAgcHJvdmlkZXI6IG51bGwsCisgICAgICBsYWJlbDogbnVsbAorICAg IH0sCisgICAgc2NoZW1hOiBbeworICAgICAgaWQ6ICdwcm92aWRlcicsIGxh YmVsOiAne3sgXygnUHJvdmlkZXInKSB9fScsCisgICAgICB0eXBlOiAndGV4 dCcKKyAgICB9LHsKKyAgICAgIGlkOiAnbGFiZWwnLCBsYWJlbDogJ3t7IF8o J1NlY3VyaXR5IExhYmVsJykgfX0nLAorICAgICAgdHlwZTogJ3RleHQnCisg ICAgfV0sCisgICAgdmFsaWRhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgdmFy IGVyciA9IHt9LAorICAgICAgICAgIGVycm1zZyA9IG51bGwsCisgICAgICAg ICAgZGF0YSA9IHRoaXMudG9KU09OKCk7CisKKyAgICAgIGlmIChfLmlzVW5k ZWZpbmVkKGRhdGEubGFiZWwpIHx8CisgICAgICAgIF8uaXNOdWxsKGRhdGEu bGFiZWwpIHx8CisgICAgICAgIFN0cmluZyhkYXRhLmxhYmVsKS5yZXBsYWNl KC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgIHJldHVybiBf KCJQbGVhc2Ugc3BlY2lmeSB0aGUgdmFsdWUgZm9yIGFsbCB0aGUgc2VjdXJp dHkgcHJvdmlkZXJzLiIpOworICAgICAgfQorICAgICAgcmV0dXJuIG51bGw7 CisgICAgfQorICB9KTsKKworCisgIC8vIENvbHVtbnMgTW9kZWwKKyAgdmFy IENvbHVtbnNNb2RlbCA9IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4 dGVuZCh7CisgICAgaWRBdHRyaWJ1dGU6ICdhdHRuYW1lJywKKyAgICBkZWZh dWx0czogeworICAgICAgYXR0bmFtZTogdW5kZWZpbmVkLAorICAgICAgZGF0 YXR5cGU6IHVuZGVmaW5lZCwKKyAgICAgIHR5cGxlbjogdW5kZWZpbmVkLAor ICAgICAgcHJlY2lzaW9uOiB1bmRlZmluZWQsCisgICAgICB0eXBkZWZhdWx0 OiB1bmRlZmluZWQsCisgICAgICBhdHRub3RudWxsOiB1bmRlZmluZWQsCisg ICAgICBjb2xsbmFtZTogdW5kZWZpbmVkLAorICAgICAgYXR0bnVtOiB1bmRl ZmluZWQsCisgICAgICBpbmhlcml0ZWRmcm9tOiB1bmRlZmluZWQsCisgICAg ICBpbmhlcml0ZWRpZDogdW5kZWZpbmVkCisgICAgfSwKKyAgICBzY2hlbWE6 IFsKKyAgICAgICAge2lkOiAnYXR0bmFtZScsIGxhYmVsOid7eyBfKCdOYW1l JykgfX0nLCBjZWxsOiAnc3RyaW5nJywgdHlwZTogJ3RleHQnIH0sCisgICAg ICAgIHtpZDogJ2RhdGF0eXBlJywgbGFiZWw6J3t7IF8oJ0RhdGEgVHlwZScp IH19JywgY2VsbDogJ3N0cmluZycsIGNvbnRyb2w6ICdub2RlLWFqYXgtb3B0 aW9ucycsIHR5cGU6ICd0ZXh0JywgdXJsOiAnZ2V0X3R5cGVzJ30sCisgICAg ICAgIHtpZDogJ3R5cGxlbicsIGxhYmVsOid7eyBfKCdMZW5ndGgnKSB9fScs IGNlbGw6ICdzdHJpbmcnLHR5cGU6ICd0ZXh0J30sCisgICAgICAgIHtpZDog J3ByZWNpc2lvbicsIGxhYmVsOid7eyBfKCdQcmVjaXNpb24nKSB9fScsIGNl bGw6ICdzdHJpbmcnLHR5cGU6ICd0ZXh0J30sCisgICAgICAgIHtpZDogJ3R5 cGRlZmF1bHQnLCBsYWJlbDone3sgXygnRGVmYXVsdCcpIH19JywgdHlwZTog J3RleHQnLCBjZWxsOiAnc3RyaW5nJywgbWluX3ZlcnNpb246IDkwMzAwfSwK KyAgICAgICAge2lkOiAnYXR0bm90bnVsbCcsIGxhYmVsOid7eyBfKCdOb3Qg TnVsbCcpIH19JywgY2VsbDogJ2Jvb2xlYW4nLHR5cGU6ICdzd2l0Y2gnfSwK KyAgICAgICAge2lkOiAnY29sbG5hbWUnLCBsYWJlbDone3sgXygnQ29sbGF0 aW9uJykgfX0nLCBjZWxsOiAnc3RyaW5nJywgY29udHJvbDogJ25vZGUtYWph eC1vcHRpb25zJywgdHlwZTogJ3RleHQnLCB1cmw6ICdnZXRfY29sbGF0aW9u cycsIG1pbl92ZXJzaW9uOiA5MDMwMH0sCisgICAgICAgIHtpZDogJ2F0dG51 bScsIGNlbGw6ICdzdHJpbmcnLHR5cGU6ICd0ZXh0JywgdmlzaWJsZTogZmFs c2V9LAorICAgICAgICB7aWQ6ICdpbmhlcml0ZWRmcm9tJywgbGFiZWw6J3t7 IF8oJ0luaGVyaXRlZCBGcm9tJykgfX0nLCBjZWxsOiAnc3RyaW5nJyx0eXBl OiAndGV4dCcsIHZpc2libGU6IGZhbHNlLCBtb2RlOiBbJ3Byb3BlcnRpZXMn XX0KKyAgICBdLAorICAgIHZhbGlkYXRlOiBmdW5jdGlvbigpIHsKKyAgICAg IC8vIFRPRE86IEFkZCB2YWxpZGF0aW9uIGhlcmUKKyAgICB9LAorICAgIHRv SlNPTjogQmFja2JvbmUuTW9kZWwucHJvdG90eXBlLnRvSlNPTgorICB9KTsK KworICB2YXIgZm9ybWF0Tm9kZSA9IGZ1bmN0aW9uKG9wdCkgeworICAgIGlm ICghb3B0LmlkKSB7CisgICAgICByZXR1cm4gb3B0LnRleHQ7CisgICAgfQor CisgICAgdmFyIG9wdGltYWdlID0gJChvcHQuZWxlbWVudCkuZGF0YSgnaW1h Z2UnKTsKKworICAgIGlmKCFvcHRpbWFnZSl7CisgICAgICByZXR1cm4gb3B0 LnRleHQ7CisgICAgfSBlbHNlIHsKKyAgICAgIHJldHVybiAkKAorICAgICAg ICAgICc8c3Bhbj48c3BhbiBjbGFzcz0id2NUYWJJY29uICcgKyBvcHRpbWFn ZSArICciLz4nICsgb3B0LnRleHQgKyAnPC9zcGFuPicKKyAgICAgICAgICAp OworICAgIH0KKyAgfTsKKworCisgIC8qIE5vZGVBamF4T3B0aW9uc011bHRp cGxlQ29udHJvbCBpcyBmb3IgbXVsdGlwbGUgc2VsZWN0aW9uIG9mIENvbWJv Ym94LgorICAqICBUaGlzIGNvbnRyb2wgaXMgdXNlZCB0byBzZWxlY3QgTXVs dGlwbGUgUGFyZW50IFRhYmxlcyB0byBiZSBpbmhlcml0ZWQuCisgICogIEl0 IGFsc28gcG9wdWxhdGVzL3ZhY2F0ZXMgQ29sdW1ucyBvbiBzZWxlY3Rpb24v ZGVzZWxlY3Rpb24gb2YgdGhlIG9wdGlvbiAoaS5lLiB0YWJsZSBuYW1lKS4K KyAgKiAgVG8gcG9wdWxhdGVzIHRoZSBjb2x1bW4sIGl0IGNhbGxzIHRoZSBz ZXJ2ZXIgYW5kIGZldGNoIHRoZSBjb2x1bW5zIGRhdGEKKyAgKiAgZm9yIHRo ZSBzZWxlY3RlZCB0YWJsZS4KKyAgKi8KKworICB2YXIgTm9kZUFqYXhPcHRp b25zTXVsdGlwbGVDb250cm9sID0gQmFja2Zvcm0uTm9kZUFqYXhPcHRpb25z TXVsdGlwbGVDb250cm9sID0gQmFja2Zvcm0uTm9kZUFqYXhPcHRpb25zQ29u dHJvbC5leHRlbmQoeworICAgIHRlbXBsYXRlOiBfLnRlbXBsYXRlKFsKKyAg ICAgICc8bGFiZWwgY2xhc3M9IjwlPUJhY2tmb3JtLmNvbnRyb2xMYWJlbENs YXNzTmFtZSU+Ij48JT1sYWJlbCU+PC9sYWJlbD4nLAorICAgICAgJzxkaXYg Y2xhc3M9IjwlPUJhY2tmb3JtLmNvbnRyb2xzQ2xhc3NOYW1lJT4gPCU9ZXh0 cmFDbGFzc2VzLmpvaW4oXCcgXCcpJT4iPicsCisgICAgICAnICA8c2VsZWN0 IGNsYXNzPSJwZ2FkbWluLW5vZGUtc2VsZWN0IGZvcm0tY29udHJvbCIgbmFt ZT0iPCU9bmFtZSU+IiBzdHlsZT0id2lkdGg6MTAwJTsiIHZhbHVlPTwlLXZh bHVlJT4gPCU9ZGlzYWJsZWQgPyAiZGlzYWJsZWQiIDogIiIlPiA8JT1yZXF1 aXJlZCA/ICJyZXF1aXJlZCIgOiAiIiU+ID4nLAorICAgICAgJyAgPC9zZWxl Y3Q+JywKKyAgICAgICc8L2Rpdj4nXS5qb2luKCJcbiIpKSwKKyAgICBkZWZh dWx0czogXy5leHRlbmQoCisgICAgICB7fSwgQmFja2Zvcm0uTm9kZUFqYXhP cHRpb25zQ29udHJvbC5wcm90b3R5cGUuZGVmYXVsdHMsCisgICAgICB7Cisg ICAgICAgIHNlbGVjdDI6IHsKKyAgICAgICAgICBhbGxvd0NsZWFyOiB0cnVl LAorICAgICAgICAgIHBsYWNlaG9sZGVyOiAnU2VsZWN0IGZyb20gdGhlIGxp c3QnLAorICAgICAgICAgIHdpZHRoOiAnc3R5bGUnLAorICAgICAgICAgIHRl bXBsYXRlUmVzdWx0OiBmb3JtYXROb2RlLAorICAgICAgICAgIHRlbXBsYXRl U2VsZWN0aW9uOiBmb3JtYXROb2RlCisgICAgICAgIH0KKyAgICAgIH0pLAor ICAgIHJlbmRlcjogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgZmllbGQgPSBf LmRlZmF1bHRzKHRoaXMuZmllbGQudG9KU09OKCksIHRoaXMuZGVmYXVsdHMp LAorICAgICAgICBhdHRyaWJ1dGVzID0gdGhpcy5tb2RlbC50b0pTT04oKSwK KyAgICAgICAgYXR0ckFyciA9IGZpZWxkLm5hbWUuc3BsaXQoJy4nKSwKKyAg ICAgICAgbmFtZSA9IGF0dHJBcnIuc2hpZnQoKSwKKyAgICAgICAgcGF0aCA9 IGF0dHJBcnIuam9pbignLicpLAorICAgICAgICByYXdWYWx1ZSA9IHRoaXMu a2V5UGF0aEFjY2Vzc29yKGF0dHJpYnV0ZXNbbmFtZV0sIHBhdGgpLAorICAg ICAgICBkYXRhID0gXy5leHRlbmQoZmllbGQsIHsKKyAgICAgICAgICByYXdW YWx1ZTogcmF3VmFsdWUsCisgICAgICAgICAgdmFsdWU6IHRoaXMuZm9ybWF0 dGVyLmZyb21SYXcocmF3VmFsdWUsIHRoaXMubW9kZWwpLAorICAgICAgICAg IGF0dHJpYnV0ZXM6IGF0dHJpYnV0ZXMsCisgICAgICAgICAgZm9ybWF0dGVy OiB0aGlzLmZvcm1hdHRlcgorICAgICAgICB9KSwKKyAgICAgICAgZXZhbEYg PSBmdW5jdGlvbihmLCBkLCBtKSB7CisgICAgICAgICAgcmV0dXJuIChfLmlz RnVuY3Rpb24oZikgPyAhIWYuYXBwbHkoZCwgW21dKSA6ICEhZik7CisgICAg ICAgIH07CisKKyAgICAgIC8vIEV2YWx1YXRlIHRoZSBkaXNhYmxlZCwgdmlz aWJsZSwgYW5kIHJlcXVpcmVkIG9wdGlvbgorICAgICAgXy5leHRlbmQoZGF0 YSwgeworICAgICAgICBkaXNhYmxlZDogZXZhbEYoZGF0YS5kaXNhYmxlZCwg ZGF0YSwgdGhpcy5tb2RlbCksCisgICAgICAgIHZpc2libGU6ICBldmFsRihk YXRhLnZpc2libGUsIGRhdGEsIHRoaXMubW9kZWwpLAorICAgICAgICByZXF1 aXJlZDogZXZhbEYoZGF0YS5yZXF1aXJlZCwgZGF0YSwgdGhpcy5tb2RlbCkK KyAgICAgIH0pOworCisgICAgICAvLyBFdmFsdWF0aW9uIHRoZSBvcHRpb25z CisgICAgICBpZiAoXy5pc0Z1bmN0aW9uKGRhdGEub3B0aW9ucykpIHsKKyAg ICAgICAgdHJ5IHsKKyAgICAgICAgICBkYXRhLm9wdGlvbnMgPSBkYXRhLm9w dGlvbnMuYXBwbHkodGhpcykKKyAgICAgICAgfSBjYXRjaChlKSB7CisgICAg ICAgICAgLy8gRG8gbm90aGluZworICAgICAgICAgIGRhdGEub3B0aW9ucyA9 IFtdCisgICAgICAgICAgdGhpcy5tb2RlbC50cmlnZ2VyKCdwZ2FkbWluLXZp ZXc6dHJhbnNmb3JtOmVycm9yJywgbSwgc2VsZi5maWVsZCwgZSk7CisgICAg ICAgIH0KKyAgICAgIH0KKworICAgICAgLy8gQ2xlYW4gdXAgZmlyc3QKKyAg ICAgIHRoaXMuJGVsLnJlbW92ZUNsYXNzKEJhY2tmb3JtLmhpZGRlbkNsYXNz bmFtZSk7CisgICAgICB0aGlzLiRlbC5odG1sKHRoaXMudGVtcGxhdGUoZGF0 YSkpLmFkZENsYXNzKGZpZWxkLm5hbWUpOworCisgICAgICBpZiAoIWRhdGEu dmlzaWJsZSkgeworICAgICAgICB0aGlzLiRlbC5hZGRDbGFzcyhCYWNrZm9y bS5oaWRkZW5DbGFzc25hbWUpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAg dmFyIG9wdHMgPSBfLmV4dGVuZCgKKyAgICAgICAgICB7fSwgdGhpcy5kZWZh dWx0cy5zZWxlY3QyLCBkYXRhLnNlbGVjdDIsCisgICAgICAgICAgeworICAg ICAgICAgICAgJ2RhdGEnOiBkYXRhLm9wdGlvbnMKKyAgICAgICAgICB9KTsK KyAgICAgICAgdGhpcy4kZWwuZmluZCgic2VsZWN0Iikuc2VsZWN0MihvcHRz KS52YWwoZGF0YS5yYXdWYWx1ZSkudHJpZ2dlcigiY2hhbmdlIik7CisgICAg ICAgIHRoaXMudXBkYXRlSW52YWxpZCgpOworICAgICAgfQorCisgICAgICBy ZXR1cm4gdGhpczsKKyAgICB9LAorICAgIG9uQ2hhbmdlOiBmdW5jdGlvbihl KSB7CisgICAgICB2YXIgbW9kZWwgPSB0aGlzLm1vZGVsLAorICAgICAgICAg ICRlbCA9ICQoZS50YXJnZXQpLAorICAgICAgICAgIGF0dHJBcnIgPSB0aGlz LmZpZWxkLmdldCgibmFtZSIpLnNwbGl0KCcuJyksCisgICAgICAgICAgbmFt ZSA9IGF0dHJBcnIuc2hpZnQoKSwKKyAgICAgICAgICBwYXRoID0gYXR0ckFy ci5qb2luKCcuJyksCisgICAgICAgICAgdmFsdWUgPSB0aGlzLmdldFZhbHVl RnJvbURPTSgpLAorICAgICAgICAgIGNoYW5nZXMgPSB7fSwKKyAgICAgICAg ICBjb2xfY2hhbmdlcyA9IHt9LAorICAgICAgICAgIGNvbF9tb2RlbCA9IF8u Y2xvbmUobW9kZWwuZ2V0KCdjb2x1bW5zJykpOworICAgICAgICAgIGNvbF9j aGFuZ2VzWydjb2x1bW5zJ10gPSBjb2xfbW9kZWwudG9KU09OKCk7CisKKyAg ICAgIGlmICh0aGlzLm1vZGVsLmVycm9yTW9kZWwgaW5zdGFuY2VvZiBCYWNr Ym9uZS5Nb2RlbCkgeworICAgICAgICBpZiAoXy5pc0VtcHR5KHBhdGgpKSB7 CisgICAgICAgICAgdGhpcy5tb2RlbC5lcnJvck1vZGVsLnVuc2V0KG5hbWUp OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIHZhciBuZXN0ZWRFcnJv ciA9IHRoaXMubW9kZWwuZXJyb3JNb2RlbC5nZXQobmFtZSk7CisgICAgICAg ICAgaWYgKG5lc3RlZEVycm9yKSB7CisgICAgICAgICAgICB0aGlzLmtleVBh dGhTZXR0ZXIobmVzdGVkRXJyb3IsIHBhdGgsIG51bGwpOworICAgICAgICAg ICAgdGhpcy5tb2RlbC5lcnJvck1vZGVsLnNldChuYW1lLCBuZXN0ZWRFcnJv cik7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9CisKKyAgICAg IHZhciBtID0gbW9kZWwuZ2V0KG5hbWUpLAorICAgICAgICAgIHNlbGYgPSB0 aGlzOworCisgICAgICBpZiAodHlwZW9mKG0pICA9PSAic3RyaW5nIil7IG0g PSBKU09OLnBhcnNlKG0pOyB9CisKKyAgICAgIC8vIFJlbW92ZSBDb2x1bW5z IGlmIG9wdGlvbiBpcyBkZXNlbGVjdGVkIGZyb20gdGhlIGNvbWJvYm94Cisg ICAgICBpZihfLnNpemUoSlNPTi5wYXJzZSh2YWx1ZSkpIDwgXy5zaXplKG0p KSB7CisgICAgICAgIHZhciBkaWYgPSBfLmRpZmZlcmVuY2UobSwgSlNPTi5w YXJzZSh2YWx1ZSkpOworICAgICAgICBjb2xzID0gXy5maWx0ZXIoY29sX21v ZGVsLnRvSlNPTigpLCBmdW5jdGlvbihvKSB7CisgICAgICAgICAgICAgICAg IHJldHVybiBvWyJpbmhlcml0ZWRpZCJdICE9IGRpZlswXQorICAgICAgICAg ICAgICAgfSk7CisgICAgICAgIGNvbF9jaGFuZ2VzWydjb2x1bW5zJ10gPSBj b2xzOworICAgICAgfQorICAgICAgLy8gUG9wdWxhdGUgdGhlIENvbHVtbnMg b24gc2VsZWN0aW9uIG9mIHRoZSBjb21ib2JveAorICAgICAgZWxzZSB7Cisg ICAgICAgICBfLmVhY2goSlNPTi5wYXJzZSh2YWx1ZSksIGZ1bmN0aW9uKGkp IHsKKyAgICAgICAgICAgaWYgKCEgXy5jb250YWlucyhtLCBwYXJzZUludChp KSkpeworICAgICAgICAgICAgIC8vIEZldGNoIENvbHVtbnMgZnJvbSBzZXJ2 ZXIKKyAgICAgICAgICAgICBjb2x1bW5zID0gc2VsZi5mZXRjaENvbHVtbnMo aSk7CisgICAgICAgICAgICAgY29sX2NoYW5nZXNbJ2NvbHVtbnMnXSA9IF8u dW5pb24oY29sX2NoYW5nZXNbJ2NvbHVtbnMnXSxjb2x1bW5zKTsKKyAgICAg ICAgICAgfQorICAgICAgICAgfSk7CisgICAgICB9CisKKyAgICAgIC8vIFNl dCBtb2RlbCBmb3IgdGhpcyBjb250cm9sIGFuZCBhbHNvIGZvciBjb2x1bW5z CisgICAgICBjb2xfbW9kZWwuc2V0KGNvbF9jaGFuZ2VzWydjb2x1bW5zJ10p OworICAgICAgY2hhbmdlc1tuYW1lXSA9IF8uaXNFbXB0eShwYXRoKSA/IHZh bHVlIDogXy5jbG9uZShtb2RlbC5nZXQobmFtZSkpIHx8IHt9OworCisgICAg ICBpZiAoIV8uaXNFbXB0eShwYXRoKSkgdGhpcy5rZXlQYXRoU2V0dGVyKGNo YW5nZXNbbmFtZV0sIHBhdGgsIHZhbHVlKTsKKworICAgICAgdGhpcy5zdG9w TGlzdGVuaW5nKHRoaXMubW9kZWwsICJjaGFuZ2U6IiArIG5hbWUsIHRoaXMu cmVuZGVyKTsKKyAgICAgIG1vZGVsLnNldChjaGFuZ2VzKTsKKworICAgICAg dGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCAiY2hhbmdlOiIgKyBuYW1lLCB0 aGlzLnJlbmRlcik7CisgICAgfSwKKyAgICBmZXRjaENvbHVtbnM6IGZ1bmN0 aW9uKHRhYmxlX2lkKXsKKyAgICAgIHZhciBzZWxmID0gdGhpcywKKyAgICAg ICAgICB1cmwgPSAnZ2V0X2NvbHVtbnMnLAorICAgICAgICAgIG0gPSBzZWxm Lm1vZGVsLnRvcCB8fCBzZWxmLm1vZGVsOworCisgICAgICBpZiAodXJsKSB7 CisgICAgICAgIHZhciBub2RlID0gdGhpcy5maWVsZC5nZXQoJ3NjaGVtYV9u b2RlJyksCisgICAgICAgICAgICBub2RlX2luZm8gPSB0aGlzLmZpZWxkLmdl dCgnbm9kZV9pbmZvJyksCisgICAgICAgICAgICBmdWxsX3VybCA9IG5vZGUu Z2VuZXJhdGVfdXJsLmFwcGx5KAorICAgICAgICAgICAgICBub2RlLCBbCisg ICAgICAgICAgICAgICAgbnVsbCwgdXJsLCB0aGlzLmZpZWxkLmdldCgnbm9k ZV9kYXRhJyksCisgICAgICAgICAgICAgICAgdGhpcy5maWVsZC5nZXQoJ3Vy bF93aXRoX2lkJykgfHwgZmFsc2UsIG5vZGVfaW5mbworICAgICAgICAgICAg ICBdKSwKKyAgICAgICAgICAgIGNhY2hlX2xldmVsID0gdGhpcy5maWVsZC5n ZXQoJ2NhY2hlX2xldmVsJykgfHwgbm9kZS50eXBlLAorICAgICAgICAgICAg Y2FjaGVfbm9kZSA9IHRoaXMuZmllbGQuZ2V0KCdjYWNoZV9ub2RlJyk7CisK KyAgICAgICAgY2FjaGVfbm9kZSA9IChjYWNoZV9ub2RlICYmIHBnQWRtaW4u QnJvd3Nlci5Ob2Rlc1snY2FjaGVfbm9kZSddKSB8fCBub2RlOworCisgICAg ICAgIG0udHJpZ2dlcigncGdhZG1pbjp2aWV3OmZldGNoaW5nJywgbSwgc2Vs Zi5maWVsZCk7CisgICAgICAgIGRhdGEgPSB7YXR0cmVsaWQ6IHRhYmxlX2lk fQorCisgICAgICAgIC8vIEZldGNoaW5nIENvbHVtbnMgZGF0YSBmb3IgdGhl IHNlbGVjdGVkIHRhYmxlLgorICAgICAgICAkLmFqYXgoeworICAgICAgICAg IGFzeW5jOiBmYWxzZSwKKyAgICAgICAgICB1cmw6IGZ1bGxfdXJsLAorICAg ICAgICAgIGRhdGE6IGRhdGEsCisgICAgICAgICAgc3VjY2VzczogZnVuY3Rp b24ocmVzKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogV2Ug d2lsbCBjYWNoZSB0aGlzIGRhdGEgZm9yIHNob3J0IHBlcmlvZCBvZiB0aW1l IGZvciBhdm9pZGluZworICAgICAgICAgICAgICogc2FtZSBjYWxscy4KKyAg ICAgICAgICAgICAqLworICAgICAgICAgICAgZGF0YSA9IGNhY2hlX25vZGUu Y2FjaGUodXJsLCBub2RlX2luZm8sIGNhY2hlX2xldmVsLCByZXMuZGF0YSk7 CisgICAgICAgICAgfSwKKyAgICAgICAgICBlcnJvcjogZnVuY3Rpb24oKSB7 CisgICAgICAgICAgICBtLnRyaWdnZXIoJ3BnYWRtaW46dmlldzpmZXRjaDpl cnJvcicsIG0sIHNlbGYuZmllbGQpOworICAgICAgICAgIH0KKyAgICAgICAg fSk7CisgICAgICAgIG0udHJpZ2dlcigncGdhZG1pbjp2aWV3OmZldGNoZWQn LCBtLCBzZWxmLmZpZWxkKTsKKworICAgICAgICAvLyBUbyBmZXRjaCBvbmx5 IG9wdGlvbnMgZnJvbSBjYWNoZSwgd2UgZG8gbm90IG5lZWQgdGltZSBmcm9t ICdhdCcKKyAgICAgICAgLy8gYXR0cmlidXRlIGJ1dCBvbmx5IG9wdGlvbnMu CisgICAgICAgIC8vCisgICAgICAgIC8vIEl0IGlzIGZlYXNpYmxlIHRoYXQg dGhlIGRhdGEgbWF5IG5vdCBoYXZlIGJlZW4gZmV0Y2hlZC4KKyAgICAgICAg ZGF0YSA9IChkYXRhICYmIGRhdGEuZGF0YSkgfHwgW107CisgICAgICAgIHJl dHVybiBkYXRhOworICAgICAgfQorICAgIH0sCisgIH0pOworCisKKyAgLy8g Q29uc3RyYWludHMgTW9kZWwKKyAgdmFyIENvbnN0cmFpbnRNb2RlbCA9IHBn QWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7CisgICAgaWRBdHRy aWJ1dGU6ICdjb25uYW1lJywKKyAgICBkZWZhdWx0czogeworICAgICAgY29u bmFtZTogdW5kZWZpbmVkLAorICAgICAgY29uc3JjOiB1bmRlZmluZWQsCisg ICAgICBjb25ub2luaGVyaXQ6IHVuZGVmaW5lZAorICAgIH0sCisgICAgc2No ZW1hOiBbCisgICAgICAgIHtpZDogJ2Nvbm5hbWUnLCBsYWJlbDone3sgXygn TmFtZScpIH19JywgdHlwZTogJ3RleHQnLCBjZWxsOiAnc3RyaW5nJywgZ3Jv dXA6ICdEZWZpbml0aW9uJ30sCisgICAgICAgIHtpZDogJ2NvbnNyYycsIGxh YmVsOid7eyBfKCdDaGVjaycpIH19JywgdHlwZTogJ211bHRpbGluZScsIGNl bGw6ICdzdHJpbmcnLCBncm91cDogJ0RlZmluaXRpb24nfSwKKyAgICAgICAg e2lkOiAnY29ubm9pbmhlcml0JywgbGFiZWw6J3t7IF8oJ05vIEluaGVyaXQn KSB9fScsIHR5cGU6ICdzd2l0Y2gnLCBjZWxsOiAnYm9vbGVhbicsIGdyb3Vw OiAnRGVmaW5pdGlvbid9CisKKyAgICBdLAorICAgIHZhbGlkYXRlOiBmdW5j dGlvbigpIHsKKyAgICAgIC8vIFRPRE86IEFkZCB2YWxpZGF0aW9uIGhlcmUK KyAgICB9LAorICAgIHRvSlNPTjogQmFja2JvbmUuTW9kZWwucHJvdG90eXBl LnRvSlNPTgorICB9KTsKKworCisgIC8vIE9wdGlvbnMgTW9kZWwKKyAgdmFy IE9wdGlvbnNNb2RlbCA9IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4 dGVuZCh7CisgICAgZGVmYXVsdHM6IHsKKyAgICAgIG9wdGlvbjogdW5kZWZp bmVkLAorICAgICAgdmFsdWU6IHVuZGVmaW5lZAorICAgIH0sCisgICAgc2No ZW1hOiBbCisgICAgICAgIHtpZDogJ29wdGlvbicsIGxhYmVsOid7eyBfKCdP cHRpb24nKSB9fScsIGNlbGw6ICdzdHJpbmcnLCB0eXBlOiAndGV4dCd9LAor ICAgICAgICB7aWQ6ICd2YWx1ZScsIGxhYmVsOid7eyBfKCdWYWx1ZScpIH19 JywgY2VsbDogJ3N0cmluZycsdHlwZTogJ3RleHQnfQorICAgIF0sCisgICAg dmFsaWRhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgLy8gVE9ETzogQWRkIHZh bGlkYXRpb24gaGVyZQorICAgIH0sCisgICAgdG9KU09OOiBCYWNrYm9uZS5N b2RlbC5wcm90b3R5cGUudG9KU09OCisgIH0pOworCisKKyAgaWYgKCFwZ0Jy b3dzZXIuTm9kZXNbJ2ZvcmVpZ24tdGFibGUnXSkgeworICAgIHBnQWRtaW4u QnJvd3Nlci5Ob2Rlc1snZm9yZWlnbi10YWJsZSddID0gcGdCcm93c2VyLk5v ZGUuZXh0ZW5kKHsKKyAgICAgIHR5cGU6ICdmb3JlaWduLXRhYmxlJywKKyAg ICAgIGxhYmVsOiAne3sgXygnRm9yZWlnbiBUYWJsZScpIH19JywKKyAgICAg IGNvbGxlY3Rpb25fdHlwZTogJ2NvbGwtZm9yZWlnbi10YWJsZScsCisgICAg ICBoYXNTUUw6IHRydWUsCisgICAgICBoYXNEZXBlbmRzOiB0cnVlLAorICAg ICAgcGFyZW50X3R5cGU6IFsnc2NoZW1hJ10sCisgICAgICBJbml0OiBmdW5j dGlvbigpIHsKKyAgICAgICAgLyogQXZvaWQgbXVsaXRwbGUgcmVnaXN0cmF0 aW9uIG9mIG1lbnVzICovCisgICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVk KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuaW5pdGlh bGl6ZWQgPSB0cnVlOworCisgICAgICAgIHBnQnJvd3Nlci5hZGRfbWVudXMo W3sKKyAgICAgICAgICBuYW1lOiAnY3JlYXRlX2ZvcmVpZ24tdGFibGVfb25f Y29sbCcsIG5vZGU6ICdjb2xsLWZvcmVpZ24tdGFibGUnLCBtb2R1bGU6IHRo aXMsCisgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCdd LCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAg IGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sg XygnRm9yZWlnbiBUYWJsZS4uLicpIH19JywKKyAgICAgICAgICBpY29uOiAn d2NUYWJJY29uIGljb24tZm9yZWlnbi10YWJsZScsIGRhdGE6IHthY3Rpb246 ICdjcmVhdGUnLCBjaGVjazogdHJ1ZX0sCisgICAgICAgICAgZW5hYmxlOiAn Y2FuQ3JlYXRlJworICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAnY3Jl YXRlX2ZvcmVpZ24tdGFibGUnLCBub2RlOiAnZm9yZWlnbi10YWJsZScsIG1v ZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdj b250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisg ICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFi ZWw6ICd7eyBfKCdGb3JlaWduIFRhYmxlLi4uJykgfX0nLAorICAgICAgICAg IGljb246ICd3Y1RhYkljb24gaWNvbi1mb3JlaWduLXRhYmxlJywgZGF0YTog e2FjdGlvbjogJ2NyZWF0ZScsIGNoZWNrOiB0cnVlfSwKKyAgICAgICAgICBl bmFibGU6ICdjYW5DcmVhdGUnCisgICAgICAgIH0seworICAgICAgICAgIG5h bWU6ICdjcmVhdGVfZm9yZWlnbi10YWJsZScsIG5vZGU6ICdzY2hlbWEnLCBt b2R1bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAn Y29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAor ICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQsIGxh YmVsOiAne3sgXygnRm9yZWlnbiBUYWJsZS4uLicpIH19JywKKyAgICAgICAg ICBpY29uOiAnd2NUYWJJY29uIGljb24tZm9yZWlnbi10YWJsZScsIGRhdGE6 IHthY3Rpb246ICdjcmVhdGUnLCBjaGVjazogZmFsc2V9LAorICAgICAgICAg IGVuYWJsZTogJ2NhbkNyZWF0ZScKKyAgICAgICAgfQorICAgICAgICBdKTsK KworICAgICAgfSwKKyAgICAgIGNhbkRyb3A6IHBnQnJvd3Nlci5Ob2Rlc1sn c2NoZW1hJ10uY2FuQ2hpbGREcm9wLAorICAgICAgY2FuRHJvcENhc2NhZGU6 IHBnQnJvd3Nlci5Ob2Rlc1snc2NoZW1hJ10uY2FuQ2hpbGREcm9wLAorICAg ICAgbW9kZWw6IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7 CisgICAgICAgIGRlZmF1bHRzOiB7CisgICAgICAgICAgbmFtZTogdW5kZWZp bmVkLAorICAgICAgICAgIG9pZDogdW5kZWZpbmVkLAorICAgICAgICAgIG93 bmVyOiB1bmRlZmluZWQsCisgICAgICAgICAgYmFzZW5zcDogdW5kZWZpbmVk LAorICAgICAgICAgIGRlc2NyaXB0aW9uOiB1bmRlZmluZWQsCisgICAgICAg ICAgZnRzcnZuYW1lOiB1bmRlZmluZWQsCisgICAgICAgICAgaW5oZXJpdHM6 IFtdLAorICAgICAgICAgIGNvbHVtbnM6IFtdLAorICAgICAgICAgIGNvbnN0 cmFpbnRzOiBbXSwKKyAgICAgICAgICBmdG9wdGlvbnM6IFtdLAorICAgICAg ICAgIHNlY2xhYmVsczogW10KKyAgICAgICAgfSwKKyAgICAgICAgc2NoZW1h OiBbeworICAgICAgICAgIGlkOiAnbmFtZScsIGxhYmVsOiAne3sgXygnTmFt ZScpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ3Rl eHQnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnY3JlYXRlJywgJ2VkaXQnXQor ICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ29pZCcsIGxhYmVsOid7eyBf KCdPaWQnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6 ICd0ZXh0JyAsIG1vZGU6IFsncHJvcGVydGllcyddCisgICAgICAgIH0sewor ICAgICAgICAgIGlkOiAnb3duZXInLCBsYWJlbDone3sgXygnT3duZXInKSB9 fScsIGNlbGw6ICdzdHJpbmcnLCBjb250cm9sOiBCYWNrZm9ybS5Ob2RlTGlz dEJ5TmFtZUNvbnRyb2wsCisgICAgICAgICAgbm9kZTogJ3JvbGUnLCAgdHlw ZTogJ3RleHQnLCBtb2RlOiBbJ2VkaXQnLCAncHJvcGVydGllcyddCisgICAg ICAgIH0seworICAgICAgICAgIGlkOiAnYmFzZW5zcCcsIGxhYmVsOid7eyBf KCdTY2hlbWEnKSB9fScsIGNlbGw6ICdzdHJpbmcnLCBjb250cm9sOiAnbm9k ZS1hamF4LW9wdGlvbnMnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgdXJs OiAnZ2V0X3NjaGVtYXMnLCBtb2RlOiBbJ2VkaXQnLCAnY3JlYXRlJywgJ3By b3BlcnRpZXMnXSwKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdkZXNj cmlwdGlvbicsIGxhYmVsOid7eyBfKCdDb21tZW50JykgfX0nLCBjZWxsOiAn c3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAnbXVsdGlsaW5lJworICAgICAg ICB9LHsKKyAgICAgICAgICBpZDogJ2Z0c3J2bmFtZScsIGxhYmVsOid7eyBf KCdGb3JlaWduIFNlcnZlcicpIH19JywgY2VsbDogJ3N0cmluZycsIGNvbnRy b2w6ICdub2RlLWFqYXgtb3B0aW9ucycsCisgICAgICAgICAgdHlwZTogJ3Rl eHQnLCBncm91cDogJ0RlZmluaXRpb24nLCB1cmw6ICdnZXRfZm9yZWlnbl9z ZXJ2ZXJzJywgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsgcmV0dXJuICFtLmlz TmV3KCk7IH0KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdpbmhlcml0 cycsIGxhYmVsOid7eyBfKCdJbmhlcml0cycpIH19JywgY2VsbDogJ3N0cmlu ZycsIGdyb3VwOiAnRGVmaW5pdGlvbicsCisgICAgICAgICAgdHlwZTogJ2xp c3QnLCBtaW5fdmVyc2lvbjogOTA1MDAsIGNvbnRyb2w6ICdub2RlLWFqYXgt b3B0aW9ucy1tdWx0aXBsZScsCisgICAgICAgICAgdXJsOiAnZ2V0X3RhYmxl cycsIHNlbGVjdDI6IHttdWx0aXBsZTogdHJ1ZX0sCisgICAgICAgICAgJ2Nh Y2hlX2xldmVsJzogJ2RhdGFiYXNlJworICAgICAgICB9LHsKKyAgICAgICAg ICBpZDogJ2NvbHVtbnMnLCBsYWJlbDone3sgXygnQ29sdW1ucycpIH19Jywg Y2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ2NvbGxlY3Rpb24n LCBncm91cDogJ0NvbHVtbnMnLCB2aXNpYmxlOiBmYWxzZSwgbW9kZTogWydl ZGl0JywgJ2NyZWF0ZScsICdwcm9wZXJ0aWVzJ10sCisgICAgICAgICAgbW9k ZWw6IENvbHVtbnNNb2RlbCwgY2FuQWRkOiB0cnVlLCBjYW5EZWxldGU6IHRy dWUsIGNhbkVkaXQ6IHRydWUsCisgICAgICAgICAgY29sdW1uczogWydhdHRu YW1lJywgJ2RhdGF0eXBlJywgJ3R5cGxlbicsICdwcmVjaXNpb24nLCAndHlw ZGVmYXVsdCcsICdhdHRub3RudWxsJywgJ2NvbGxuYW1lJywgJ2luaGVyaXRl ZGZyb20nXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6 ICdjb25zdHJhaW50cycsIGxhYmVsOid7eyBfKCdDb25zdHJhaW50cycpIH19 JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ2NvbGxlY3Rp b24nLCBncm91cDogJ0NvbnN0cmFpbnRzJywgdmlzaWJsZTogZmFsc2UsIG1v ZGU6IFsnZWRpdCcsICdjcmVhdGUnLCAncHJvcGVydGllcyddLAorICAgICAg ICAgIG1vZGVsOiBDb25zdHJhaW50TW9kZWwsIGNhbkFkZDogdHJ1ZSwgY2Fu RGVsZXRlOiB0cnVlLCBjYW5FZGl0OiBmdW5jdGlvbihvKSB7CisgICAgICAg ICAgICBpZiAobyBpbnN0YW5jZW9mIEJhY2tib25lLk1vZGVsKSB7CisgICAg ICAgICAgICAgIGlmIChvIGluc3RhbmNlb2YgQ29uc3RyYWludE1vZGVsKSB7 CisgICAgICAgICAgICAgICAgcmV0dXJuIG8uaXNOZXcoKTsKKyAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRy dWU7CisgICAgICAgICAgfSwgbWluX3ZlcnNpb246IDkwNTAwCisgICAgICAg IH0seworICAgICAgICAgIGlkOiAnZnRvcHRpb25zJywgbGFiZWw6J3t7IF8o J09wdGlvbnMnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5 cGU6ICdjb2xsZWN0aW9uJywgZ3JvdXA6ICdPcHRpb25zJywgdmlzaWJsZTog ZmFsc2UsIG1vZGU6IFsnZWRpdCcsICdjcmVhdGUnLCAncHJvcGVydGllcydd LAorICAgICAgICAgIG1vZGVsOiBPcHRpb25zTW9kZWwsIGNhbkFkZDogdHJ1 ZSwgY2FuRGVsZXRlOiB0cnVlLCBjYW5FZGl0OiB0cnVlCisgICAgICAgIH0s eworICAgICAgICAgIGlkOiAnc2VjbGFiZWxzJywgbGFiZWw6ICd7eyBfKCdT ZWN1cml0eSBMYWJlbHMnKSB9fScsCisgICAgICAgICAgbW9kZWw6IFNlY3Vy aXR5TW9kZWwsIHR5cGU6ICdjb2xsZWN0aW9uJywKKyAgICAgICAgICBncm91 cDogJ3t7IF8oJ1NlY3VyaXR5JykgfX0nLCBtb2RlOiBbJ2VkaXQnLCAnY3Jl YXRlJ10sCisgICAgICAgICAgbWluX3ZlcnNpb246IDkwMTAwLCBjYW5BZGQ6 IHRydWUsCisgICAgICAgICAgY2FuRWRpdDogdHJ1ZSwgY2FuRGVsZXRlOiB0 cnVlCisgICAgICAgIH0KKyAgICAgICAgXSwKKyAgICAgICAgdmFsaWRhdGU6 IGZ1bmN0aW9uKCkKKyAgICAgICAgeworICAgICAgICAgIHZhciBlcnIgPSB7 fSwKKyAgICAgICAgICAgICAgZXJybXNnLAorICAgICAgICAgICAgICBzZWNs YWJlbHMgPSB0aGlzLmdldCgnc2VjbGFiZWxzJyk7CisKKyAgICAgICAgICBp ZiAoXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgnbmFtZScpKSB8fCBTdHJpbmco dGhpcy5nZXQoJ25hbWUnKSkucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9 PSAnJykgeworICAgICAgICAgICAgZXJyWyduYW1lJ10gPSAne3sgXygnTmFt ZSBjYW4gbm90IGJlIGVtcHR5IScpIH19JzsKKyAgICAgICAgICAgIGVycm1z ZyA9IGVycm1zZyB8fCBlcnJbJ25hbWUnXTsKKyAgICAgICAgICB9CisKKyAg ICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgnZnRzcnZuYW1l JykpIHx8IFN0cmluZyh0aGlzLmdldCgnZnRzcnZuYW1lJykpLnJlcGxhY2Uo L15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAgIGVyclsn ZnRzcnZuYW1lJ10gPSAne3sgXygnRm9yZWlnbiBTZXJ2ZXIgY2FuIG5vdCBi ZSBlbXB0eSEnKSB9fSc7CisgICAgICAgICAgICBlcnJtc2cgPSBlcnJtc2cg fHwgZXJyWydmdHNydm5hbWUnXTsKKyAgICAgICAgICB9CisKKyAgICAgICAg ICBpZiAoc2VjbGFiZWxzKSB7CisgICAgICAgICAgICB2YXIgc2VjTGFiZWxz RXJyOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWNsYWJl bHMubW9kZWxzLmxlbmd0aCAmJiAhc2VjTGFiZWxzRXJyOyBpKyspIHsKKyAg ICAgICAgICAgICAgc2VjTGFiZWxzRXJyID0gKHNlY2xhYmVscy5tb2RlbHNb aV0pLnZhbGlkYXRlLmFwcGx5KHNlY2xhYmVscy5tb2RlbHNbaV0pOworICAg ICAgICAgICAgICBpZiAoc2VjTGFiZWxzRXJyKSB7CisgICAgICAgICAgICAg ICAgZXJyWydzZWNsYWJlbHMnXSA9IHNlY0xhYmVsc0VycjsKKyAgICAgICAg ICAgICAgICBlcnJtc2cgPSBlcnJtc2cgfHwgc2VjTGFiZWxzRXJyOworICAg ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorCisg ICAgICAgICAgdGhpcy5lcnJvck1vZGVsLmNsZWFyKCkuc2V0KGVycik7CisK KyAgICAgICAgICBpZiAoXy5zaXplKGVycikpIHsKKyAgICAgICAgICAgIHRo aXMudHJpZ2dlcignb24tc3RhdHVzJywge21zZzogZXJybXNnfSk7CisgICAg ICAgICAgICByZXR1cm4gZXJybXNnOworICAgICAgICAgIH0KKworICAgICAg ICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICB9KSwKKyAgICAg IGNhbkNyZWF0ZTogZnVuY3Rpb24oaXRlbURhdGEsIGl0ZW0sIGRhdGEpIHsK KyAgICAgICAgLy9JZiBjaGVjayBpcyBmYWxzZSB0aGVuICwgd2Ugd2lsbCBh bGxvdyBjcmVhdGUgbWVudQorICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLmNo ZWNrID09IGZhbHNlKQorICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAg ICAgIHZhciB0ID0gcGdCcm93c2VyLnRyZWUsIGkgPSBpdGVtLCBkID0gaXRl bURhdGE7CisgICAgICAgIC8vIFRvIGl0ZXJhdGUgb3ZlciB0cmVlIHRvIGNo ZWNrIHBhcmVudCBub2RlCisgICAgICAgIHdoaWxlIChpKSB7CisgICAgICAg ICAgLy8gSWYgaXQgaXMgc2NoZW1hIHRoZW4gYWxsb3cgdXNlciB0byBjcmVh dGUgZm9yZWlnbiB0YWJsZQorICAgICAgICAgIGlmIChfLmluZGV4T2YoWydz Y2hlbWEnXSwgZC5fdHlwZSkgPiAtMSkKKyAgICAgICAgICAgIHJldHVybiB0 cnVlOworCisgICAgICAgICAgaWYgKCdjb2xsLWZvcmVpZ24tdGFibGUnID09 IGQuX3R5cGUpIHsKKyAgICAgICAgICAgIC8vQ2hlY2sgaWYgd2UgYXJlIG5v dCBjaGlsZCBvZiBjYXRhbG9nCisgICAgICAgICAgICBwcmV2X2kgPSB0Lmhh c1BhcmVudChpKSA/IHQucGFyZW50KGkpIDogbnVsbDsKKyAgICAgICAgICAg IHByZXZfZCA9IHByZXZfaSA/IHQuaXRlbURhdGEocHJldl9pKSA6IG51bGw7 CisgICAgICAgICAgICBpZiggcHJldl9kLl90eXBlID09ICdjYXRhbG9nJykg eworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9 IGVsc2UgeworICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg ICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAgaSA9IHQuaGFzUGFyZW50 KGkpID8gdC5wYXJlbnQoaSkgOiBudWxsOworICAgICAgICAgIGQgPSBpID8g dC5pdGVtRGF0YShpKSA6IG51bGw7CisgICAgICAgIH0KKyAgICAgICAgLy8g YnkgZGVmYXVsdCB3ZSBkbyBub3Qgd2FudCB0byBhbGxvdyBjcmVhdGUgbWVu dQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIH0KKyAgfSk7CisKKyAg fQorCisgIHJldHVybiBwZ0Jyb3dzZXIuTm9kZXNbJ2ZvcmVpZ24tdGFibGUn XTsKK30pOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90 YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjFfcGx1cy9j cmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVt cGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjFfcGx1cy9jcmVhdGUuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwZGYyOTYK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3Rh Ymxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuMV9wbHVzL2Ny ZWF0ZS5zcWwKQEAgLTAsMCArMSwzNyBAQAoreyUgaW1wb3J0ICdtYWNyb3Mv c2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaWYgZGF0YSAl fQorQ1JFQVRFIEZPUkVJR04gVEFCTEUge3sgY29ubnxxdElkZW50KGRhdGEu YmFzZW5zcCwgZGF0YS5uYW1lKSB9fQorICAgKHslIGlmIGRhdGEuY29sdW1u cyAlfQoreyUgZm9yIGMgaW4gZGF0YS5jb2x1bW5zICV9Cit7JSBpZiBub3Qg bG9vcC5maXJzdCV9ICAgIHslIGVuZGlmICV9e3tjb25ufHF0SWRlbnQoYy5h dHRuYW1lKX19IHt7IGNvbm58cXRUeXBlSWRlbnQoYy5kYXRhdHlwZSkgfX17 JSBpZiBjLnR5cGxlbiAlfSh7e2MudHlwbGVufX0geyUgaWYgYy5wcmVjaXNp b24gJX0sIHt7Yy5wcmVjaXNpb259fXslIGVuZGlmICV9KXslIGVuZGlmICV9 Cit7JSBpZiBjLmF0dG5vdG51bGwgJX0gTk9UIE5VTEx7JSBlbHNlICV9IE5V TEx7JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAlfSwKK3slIGVu ZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9CispCisgICAgU0VS VkVSIHt7IGNvbm58cXRJZGVudChkYXRhLmZ0c3J2bmFtZSkgfX07CisKK3sl IGlmIGRhdGEuZnRvcHRpb25zICV9Cit7JSBmb3IgbyBpbiBkYXRhLmZ0b3B0 aW9ucyAlfQoreyUgaWYgby5vcHRpb24gYW5kIG8udmFsdWUgJX0KK3slIGlm IGxvb3AuZmlyc3QgJX1PUFRJT05TICggeyUgZW5kaWYgJX0KK3slIGlmIG5v dCBsb29wLmZpcnN0ICV9LCB7JSBlbmRpZiAlfQore3tvLm9wdGlvbn19IHt7 by52YWx1ZXxxdExpdGVyYWx9fSAgeyUgaWYgbG9vcC5sYXN0ICV9KXslIGVu ZGlmICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAt JX0KKworeyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorQ09NTUVOVCBPTiBG T1JFSUdOIFRBQkxFIHt7IGNvbm58cXRJZGVudChkYXRhLmJhc2Vuc3AsIGRh dGEubmFtZSkgfX0KKyAgSVMgJ3t7IGRhdGEuZGVzY3JpcHRpb24gfX0nOwor eyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuc2VjbGFiZWxzICV9Cit7JSBm b3IgciBpbiBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYgci5sYWJlbCBhbmQg ci5wcm92aWRlciAlfQore3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ0ZPUkVJ R04gVEFCTEUnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIubGFiZWwpIH19 Cit7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUg ZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25f dGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4xX3BsdXMv ZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3Rl bXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4xX3BsdXMvZGVsZXRlLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMWJjNTNk Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90 YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjFfcGx1cy9k ZWxldGUuc3FsCkBAIC0wLDAgKzEsMTUgQEAKK3slIGlmIHNjaWQgYW5kIGZv aWQgJX0KK1NFTEVDVAorICAgIGMucmVsbmFtZSBBUyBuYW1lLCBuc3BuYW1l IGFzIGJhc2Vuc3AKK0ZST00KKyAgICBwZ19jbGFzcyBjCitMRUZUIE9VVEVS IEpPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIChuc3Aub2lkPWMucmVs bmFtZXNwYWNlKQorV0hFUkUKKyAgICBjLnJlbG5hbWVzcGFjZSA9IHt7c2Np ZH19OjpvaWQKKyAgICBBTkQgYy5vaWQgPSB7e2ZvaWR9fTo6b2lkOworeyUg ZW5kaWYgJX0KKworeyUgaWYgbmFtZSAlfQorRFJPUCBGT1JFSUdOIFRBQkxF IHt7IGNvbm58cXRJZGVudChiYXNlbnNwLCBuYW1lKSB9fXslIGlmIGNhc2Nh ZGUlfSBDQVNDQURFeyUgZW5kaWYgJX07Cit7JSBlbmRpZiAlfQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVz L2ZvcmVpZ25fdGFibGVzL3NxbC85LjFfcGx1cy9nZXRfY29sbGF0aW9ucy5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMv Zm9yZWlnbl90YWJsZXMvc3FsLzkuMV9wbHVzL2dldF9jb2xsYXRpb25zLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTljMTdk Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90 YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjFfcGx1cy9n ZXRfY29sbGF0aW9ucy5zcWwKQEAgLTAsMCArMSwxMCBAQAorU0VMRUNUIC0t bnNwbmFtZSwgY29sbG5hbWUsCisgICAgQ0FTRSBXSEVOIGxlbmd0aChuc3Bu YW1lKSA+IDAgQU5EIGxlbmd0aChjb2xsbmFtZSkgPiAwICBUSEVOCisgICAg Y29uY2F0KG5zcG5hbWUsICcuIicsIGNvbGxuYW1lLCciJykKKyAgICBFTFNF ICcnIEVORCBBUyBjb3B5X2NvbGxhdGlvbgorRlJPTQorICAgIHBnX2NvbGxh dGlvbiBjLCBwZ19uYW1lc3BhY2UgbgorV0hFUkUKKyAgICBjLmNvbGxuYW1l c3BhY2U9bi5vaWQKK09SREVSIEJZCisgICAgbnNwbmFtZSwgY29sbG5hbWU7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90 ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuMV9wbHVzL2dldF9jb2x1 bW5zLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBs YXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4xX3BsdXMvZ2V0X2NvbHVtbnMu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3MzNh M2MKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWdu X3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuMV9wbHVz L2dldF9jb2x1bW5zLnNxbApAQCAtMCwwICsxLDE2IEBACitTRUxFQ1QKKyAg ICBhdHRuYW1lLCBhdHRuZGltcywgYXR0dHlwbW9kLCBmb3JtYXRfdHlwZSh0 Lm9pZCxOVUxMKSBBUyBkYXRhdHlwZSwKKyAgICBmb3JtYXRfdHlwZSh0Lm9p ZCwgYXR0LmF0dHR5cG1vZCkgQVMgZnVsbHR5cGUsIGF0dG5vdG51bGwsIGF0 dG51bSwKKyAgICAoU0VMRUNUIENPVU5UKDEpIGZyb20gcGdfdHlwZSB0MiBX SEVSRSB0Mi50eXBuYW1lPXQudHlwbmFtZSkgPiAxIEFTIGlzZHVwCitGUk9N CisgICAgcGdfYXR0cmlidXRlIGF0dAorSk9JTgorICAgIHBnX3R5cGUgdCBP TiB0Lm9pZD1hdHR0eXBpZAorSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3Ag T04gdC50eXBuYW1lc3BhY2U9bnNwLm9pZAorTEVGVCBPVVRFUiBKT0lOCisg ICAgcGdfdHlwZSBiIE9OIHQudHlwZWxlbT1iLm9pZAorV0hFUkUKKyAgICBh dHQuYXR0cmVsaWQ9e3tmb2lkfX06Om9pZAorICAgIEFORCBhdHRudW0+MAor T1JERVIgYnkgYXR0bnVtOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv Zm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85 LjFfcGx1cy9nZXRfY29uc3RyYWludHMuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv Zm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85 LjFfcGx1cy9nZXRfY29uc3RyYWludHMuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLmZjOTM1NDkKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9y ZWlnbl90YWJsZXMvc3FsLzkuMV9wbHVzL2dldF9jb25zdHJhaW50cy5zcWwK QEAgLTAsMCArMSw3IEBACitTRUxFQ1QKKyAgICBjb25uYW1lLCBjb250eXBl LCBjb25zcmMKK0ZST00KKyAgICBwZ19jb25zdHJhaW50CitXSEVSRQorICAg IGNvbnJlbGlkPXt7Zm9pZH19OjpvaWQKK09SREVSIGJ5IGNvbm5hbWU7CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1w bGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuMV9wbHVzL2dldF9mb3JlaWdu X3NlcnZlcnMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMv dGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjFfcGx1cy9nZXRfZm9y ZWlnbl9zZXJ2ZXJzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi4xOTgwZjAyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVz L3NxbC85LjFfcGx1cy9nZXRfZm9yZWlnbl9zZXJ2ZXJzLnNxbApAQCAtMCww ICsxLDUgQEAKK1NFTEVDVAorICAgIHNydm5hbWUKK0ZST00KKyAgICBwZ19m b3JlaWduX3NlcnZlcgorT1JERVIgQlkgc3J2bmFtZTsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3Jl aWduX3RhYmxlcy9zcWwvOS4xX3BsdXMvZ2V0X29pZC5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJs ZXMvc3FsLzkuMV9wbHVzL2dldF9vaWQuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjU2MTQzNGIKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9y ZWlnbl90YWJsZXMvc3FsLzkuMV9wbHVzL2dldF9vaWQuc3FsCkBAIC0wLDAg KzEsOSBAQAorU0VMRUNUCisgICAgYy5vaWQsIGMucmVsbmFtZSBhcyBuYW1l CitGUk9NCisgICAgcGdfY2xhc3MgYworSk9JTgorICAgIHBnX25hbWVzcGFj ZSBibiBPTiBibi5vaWQ9Yy5yZWxuYW1lc3BhY2UKK1dIRVJFCisgICAgYm4u bnNwbmFtZSA9IHt7IGJhc2Vuc3B8cXRMaXRlcmFsIH19CisgICAgQU5EIGMu cmVsbmFtZT17eyBuYW1lfHF0TGl0ZXJhbCB9fQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25f dGFibGVzL3NxbC85LjFfcGx1cy9nZXRfc2NoZW1hcy5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJs ZXMvc3FsLzkuMV9wbHVzL2dldF9zY2hlbWFzLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjg3YTM3Ci0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVz L2ZvcmVpZ25fdGFibGVzL3NxbC85LjFfcGx1cy9nZXRfc2NoZW1hcy5zcWwK QEAgLTAsMCArMSwyMyBAQAorU0VMRUNUCisgICAgbnNwLm5zcG5hbWUKK0ZS T00KKyAgICBwZ19uYW1lc3BhY2UgbnNwCitMRUZUIE9VVEVSIEpPSU4KKyAg ICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9bnNwLm9pZCBB TkQgZGVzLmNsYXNzb2lkPSdwZ19uYW1lc3BhY2UnOjpyZWdjbGFzcykKK0xF RlQgT1VURVIgSk9JTgorICAgIHBnX2NhdGFsb2cucGdfZGVmYXVsdF9hY2wg ZGFjbCBPTiAoZGFjbC5kZWZhY2xuYW1lc3BhY2UgPSBuc3Aub2lkKQorV0hF UkUKKyAgICBOT1QgKChuc3BuYW1lID0gJ3BnX2NhdGFsb2cnIEFORCBFWElT VFMKKyAgICAgICAgKFNFTEVDVCAxIEZST00gcGdfY2xhc3MgV0hFUkUgcmVs bmFtZSA9ICdwZ19jbGFzcycgQU5EIHJlbG5hbWVzcGFjZSA9IG5zcC5vaWQg TElNSVQgMSkpIE9SCisgICAgKG5zcG5hbWUgPSAncGdhZ2VudCcgQU5EIEVY SVNUUworICAgICAgICAoU0VMRUNUIDEgRlJPTSBwZ19jbGFzcyBXSEVSRSBy ZWxuYW1lID0gJ3BnYV9qb2InIEFORCByZWxuYW1lc3BhY2UgPSBuc3Aub2lk IExJTUlUIDEpKSBPUgorICAgIChuc3BuYW1lID0gJ2luZm9ybWF0aW9uX3Nj aGVtYScgQU5EIEVYSVNUUworICAgICAgICAoU0VMRUNUIDEgRlJPTSBwZ19j bGFzcyBXSEVSRSByZWxuYW1lID0gJ3RhYmxlcycgQU5EIHJlbG5hbWVzcGFj ZSA9IG5zcC5vaWQgTElNSVQgMSkpIE9SCisgICAgKG5zcG5hbWUgTElLRSAn XyUnIEFORCBFWElTVFMKKyAgICAgIChTRUxFQ1QgMSBGUk9NIHBnX3Byb2Mg V0hFUkUgcHJvbmFtZT0nc2xvbnl2ZXJzaW9uJyBBTkQgcHJvbmFtZXNwYWNl ID0gbnNwLm9pZCBMSU1JVCAxKSkKKyAgICApIEFORAorICAgIG5zcG5hbWUg Tk9UIExJS0UgRSdwZ1xcdGVtcFxcJScgQU5ECisgICAgbnNwbmFtZSBOT1Qg TElLRSBFJ3BnXFx0b2FzdF90ZW1wXFwlJyBBTkQKKyAgICAtLSBBRERFRDog QmVjYXVzZSBXZSBuZWVkIHRvIG9taXQgc3lzdGVtIHNjaGVtYSBleGNlcHQg dGhlIG9uZSBvbiB3aGljaCB3ZSBhcmUgdHJ5aW5nIHRvICBjcmVhdGUgY29s bGF0aW9uCisgICAgKCBuc3Aub2lkID0ge3sgc2NpZCB9fSBPUiBuc3BuYW1l IE5PVCBMSUtFIEUncGdcXF8lJyApCitPUkRFUiBCWSBuc3BuYW1lOwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxh dGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjFfcGx1cy9nZXRfdHlwZXMuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2Zv cmVpZ25fdGFibGVzL3NxbC85LjFfcGx1cy9nZXRfdHlwZXMuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyY2ZhMjYKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90 ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuMV9wbHVzL2dldF90eXBl cy5zcWwKQEAgLTAsMCArMSwxNyBAQAorU0VMRUNUCisgICAgKgorRlJPTQor ICAgIChTRUxFQ1QgZm9ybWF0X3R5cGUodC5vaWQsTlVMTCkgQVMgdHlwbmFt ZSwgQ0FTRSBXSEVOIHR5cGVsZW0gPiAwIFRIRU4gdHlwZWxlbSBFTFNFIHQu b2lkIEVORCBhcyBlbGVtb2lkLCB0eXBsZW4sIHR5cHR5cGUsIHQub2lkLCBu c3BuYW1lLAorICAgIChTRUxFQ1QgQ09VTlQoMSkgRlJPTSBwZ190eXBlIHQy IFdIRVJFIHQyLnR5cG5hbWUgPSB0LnR5cG5hbWUpID4gMSBBUyBpc2R1cAor ICAgIEZST00KKyAgICAgICAgcGdfdHlwZSB0CisgICAgSk9JTgorICAgICAg ICBwZ19uYW1lc3BhY2UgbnNwIE9OIHR5cG5hbWVzcGFjZT1uc3Aub2lkCisg ICAgV0hFUkUKKyAgICAgICAgKE5PVCAodHlwbmFtZSA9ICd1bmtub3duJyBB TkQgbnNwbmFtZSA9ICdwZ19jYXRhbG9nJykpCisgICAgICAgIEFORCB0eXBp c2RlZmluZWQgQU5EIHR5cHR5cGUgSU4gKCdiJywgJ2MnLCAnZCcsICdlJywg J3InKQorICAgICAgICBBTkQgTk9UIEVYSVNUUyAoc2VsZWN0IDEgZnJvbSBw Z19jbGFzcyB3aGVyZSByZWxuYW1lc3BhY2U9dHlwbmFtZXNwYWNlIGFuZCBy ZWxuYW1lID0gdHlwbmFtZSBhbmQgcmVsa2luZCAhPSAnYycpCisgICAgICAg IEFORCAodHlwbmFtZSBub3QgbGlrZSAnXyUnIE9SIE5PVCBFWElTVFMgKHNl bGVjdCAxIGZyb20gcGdfY2xhc3Mgd2hlcmUgcmVsbmFtZXNwYWNlPXR5cG5h bWVzcGFjZSBhbmQgcmVsbmFtZSA9IHN1YnN0cmluZyh0eXBuYW1lIGZyb20g Mik6Om5hbWUgYW5kIHJlbGtpbmQgIT0gJ2MnKSkKKyAgICApIEFTIGR1bW15 CitPUkRFUiBCWQorICAgIG5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cnLCBuc3Bu YW1lIDw+ICdwdWJsaWMnLCBuc3BuYW1lLCAxOwpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25f dGFibGVzL3NxbC85LjFfcGx1cy9ub2RlLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwv OS4xX3BsdXMvbm9kZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uMmQzYTM4YgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxl cy9zcWwvOS4xX3BsdXMvbm9kZS5zcWwKQEAgLTAsMCArMSwxMiBAQAorU0VM RUNUCisgICAgYy5vaWQsIGMucmVsbmFtZSBBUyBuYW1lLCBwZ19nZXRfdXNl cmJ5aWQocmVsb3duZXIpIEFTIG93bmVyLAorICAgIGZ0b3B0aW9ucywgbnNw bmFtZSBhcyBiYXNlbnNwCitGUk9NCisgICAgcGdfY2xhc3MgYworSk9JTgor ICAgIHBnX2ZvcmVpZ25fdGFibGUgZnQgT04gYy5vaWQ9ZnQuZnRyZWxpZAor TEVGVCBPVVRFUiBKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiAobnNw Lm9pZD1jLnJlbG5hbWVzcGFjZSkKK1dIRVJFCisgICAgYy5yZWxuYW1lc3Bh Y2UgPSB7e3NjaWR9fTo6b2lkCitPUkRFUiBCWSBjLnJlbG5hbWU7CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0 ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2Zv cmVpZ25fdGFibGVzL3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTYxMzgwCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMv dGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjFfcGx1cy9wcm9wZXJ0 aWVzLnNxbApAQCAtMCwwICsxLDIxIEBACitTRUxFQ1QKKyAgICBjLm9pZCwg Yy5yZWxuYW1lIEFTIG5hbWUsIHBnX2dldF91c2VyYnlpZChyZWxvd25lcikg QVMgb3duZXIsCisgICAgZnRvcHRpb25zLCBzcnZuYW1lIEFTIGZ0c3J2bmFt ZSwgZGVzY3JpcHRpb24sIG5zcG5hbWUgYXMgYmFzZW5zcCwKKyAgICAoU0VM RUNUIGFycmF5X2FnZyhsYWJlbCkgRlJPTSBwZ19zZWNsYWJlbHMgc2wxIFdI RVJFIHNsMS5vYmpvaWQ9Yy5vaWQpIEFTIGxhYmVscywKKyAgICAoU0VMRUNU IGFycmF5X2FnZyhwcm92aWRlcikgRlJPTSBwZ19zZWNsYWJlbHMgc2wyIFdI RVJFIHNsMi5vYmpvaWQ9Yy5vaWQpIEFTIHByb3ZpZGVycworRlJPTQorICAg IHBnX2NsYXNzIGMKK0pPSU4KKyAgICBwZ19mb3JlaWduX3RhYmxlIGZ0IE9O IGMub2lkPWZ0LmZ0cmVsaWQKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Zv cmVpZ25fc2VydmVyIGZzIE9OIGZ0LmZ0c2VydmVyPWZzLm9pZAorTEVGVCBP VVRFUiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jq b2lkPWMub2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX2NsYXNzJzo6cmVnY2xh c3MpCitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9O IChuc3Aub2lkPWMucmVsbmFtZXNwYWNlKQorV0hFUkUKKyAgICBjLnJlbG5h bWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICB7JSBpZiBmb2lkICV9Cisg ICAgQU5EIGMub2lkID0ge3tmb2lkfX06Om9pZAorICAgIHslIGVuZGlmICV9 CitPUkRFUiBCWSBjLnJlbG5hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMv c3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3Jl aWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuMV9w bHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uY2Y5MDU2YgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9z cWwvOS4xX3BsdXMvdXBkYXRlLnNxbApAQCAtMCwwICsxLDEwMyBAQAoreyUg aW1wb3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAl fQoreyUgaWYgZGF0YSAlfQoreyUgc2V0IG5hbWUgPSBvX2RhdGEubmFtZSAl fQoreyUgaWYgZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgIT0gb19k YXRhLm5hbWUgJX0KK0FMVEVSIEZPUkVJR04gVEFCTEUge3sgY29ubnxxdElk ZW50KG9fZGF0YS5iYXNlbnNwLCBvX2RhdGEubmFtZSkgfX0KK1JFTkFNRSBU TyB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsKK3slIHNldCBuYW1l ID0gZGF0YS5uYW1lICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgLSV9CisK K3slIGlmIGRhdGEub3duZXIgJX0KKworQUxURVIgRk9SRUlHTiBUQUJMRSB7 eyBjb25ufHF0SWRlbnQob19kYXRhLmJhc2Vuc3AsIG5hbWUpIH19CitPV05F UiBUTyB7eyBkYXRhLm93bmVyIH19OworeyUgZW5kaWYgLSV9CisKK3slIGlm IGRhdGEuY29sdW1ucyAlfQoreyUgZm9yIGMgaW4gZGF0YS5jb2x1bW5zLmRl bGV0ZWQgJX0KKworQUxURVIgRk9SRUlHTiBUQUJMRSB7eyBjb25ufHF0SWRl bnQob19kYXRhLmJhc2Vuc3AsIG5hbWUpIH19CitEUk9QIENPTFVNTiB7e2Nv bm58cXRJZGVudChjLmF0dG5hbWUpfX07Cit7JSBlbmRmb3IgLSV9CisKK3sl IGZvciBjIGluIGRhdGEuY29sdW1ucy5hZGRlZCAlfQorCitBTFRFUiBGT1JF SUdOIFRBQkxFIHt7IGNvbm58cXRJZGVudChvX2RhdGEuYmFzZW5zcCwgbmFt ZSkgfX0KK0FERCBDT0xVTU4ge3tjb25ufHF0SWRlbnQoYy5hdHRuYW1lKX19 IHt7IGNvbm58cXRUeXBlSWRlbnQoYy5kYXRhdHlwZSkgfX17JSBpZiBjLnR5 cGxlbiAlfSh7e2MudHlwbGVufX0geyUgaWYgYy5wcmVjaXNpb24gJX0sIHt7 Yy5wcmVjaXNpb259fXslIGVuZGlmICV9KXslIGVuZGlmICV9Cit7JSBpZiBj LmF0dG5vdG51bGwgJX0gTk9UIE5VTEwgeyUgZWxzZSAlfSBOVUxMIHslIGVu ZGlmICV9Cit7JSBpZiBjLnR5cGRlZmF1bHQgJX0gREVGQVVMVCB7e2MudHlw ZGVmYXVsdHxxdExpdGVyYWx9fXslIGVuZGlmICV9Cit7JSBpZiBjLmNvbGxu YW1lICV9IENPTExBVEUge3tjLmNvbGxuYW1lfX17JSBlbmRpZiAlfTsKK3sl IGVuZGZvciAtJX0KKworeyUgZm9yIGMgaW4gZGF0YS5jb2x1bW5zLmNoYW5n ZWQgJX0KKworQUxURVIgRk9SRUlHTiBUQUJMRSB7eyBjb25ufHF0SWRlbnQo b19kYXRhLmJhc2Vuc3AsIG5hbWUpIH19CitEUk9QIENPTFVNTiB7e2Nvbm58 cXRJZGVudChvX2RhdGFbJ2NvbHVtbnMnXVtjLmF0dG51bV1bJ2F0dG5hbWUn XSl9fTsKKworQUxURVIgRk9SRUlHTiBUQUJMRSB7eyBjb25ufHF0SWRlbnQo b19kYXRhLmJhc2Vuc3AsIG5hbWUpIH19CitBREQgQ09MVU1OIHt7Y29ubnxx dElkZW50KGMuYXR0bmFtZSl9fSB7eyBjb25ufHF0VHlwZUlkZW50KGMuZGF0 YXR5cGUpIH19eyUgaWYgYy50eXBsZW4gJX0oe3tjLnR5cGxlbn19IHslIGlm IGMucHJlY2lzaW9uICV9LCB7e2MucHJlY2lzaW9ufX17JSBlbmRpZiAlfSl7 JSBlbmRpZiAlfQoreyUgaWYgYy5hdHRub3RudWxsICV9IE5PVCBOVUxMIHsl IGVsc2UgJX0gTlVMTCB7JSBlbmRpZiAlfQoreyUgaWYgYy50eXBkZWZhdWx0 ICV9IERFRkFVTFQge3tjLnR5cGRlZmF1bHR8cXRMaXRlcmFsfX17JSBlbmRp ZiAlfQoreyUgaWYgYy5jb2xsbmFtZSAlfSBDT0xMQVRFIHt7Yy5jb2xsbmFt ZX19eyUgZW5kaWYgJX07Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQor CisKK3slIGlmIGRhdGEuZnRvcHRpb25zICV9Cit7JSBmb3IgbyBpbiBkYXRh LmZ0b3B0aW9ucy5kZWxldGVkICV9Cit7JSBpZiBvLm9wdGlvbiBhbmQgby52 YWx1ZSAlfQorCitBTFRFUiBGT1JFSUdOIFRBQkxFIHt7IGNvbm58cXRJZGVu dChvX2RhdGEuYmFzZW5zcCwgbmFtZSkgfX0KK09QVElPTlMgKCBEUk9QIHt7 by5vcHRpb259fSB7e28udmFsdWV8cXRMaXRlcmFsfX0pOworeyUgZW5kaWYg JX0KK3slIGVuZGZvciAlfQorCit7JSBmb3IgbyBpbiBkYXRhLmZ0b3B0aW9u cy5hZGRlZCAlfQoreyUgaWYgby5vcHRpb24gYW5kIG8udmFsdWUgJX0KKwor QUxURVIgRk9SRUlHTiBUQUJMRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLmJh c2Vuc3AsIG5hbWUpIH19CitPUFRJT05TIChBREQge3tvLm9wdGlvbn19IHt7 by52YWx1ZXxxdExpdGVyYWx9fSk7Cit7JSBlbmRpZiAlfQoreyUgZW5kZm9y ICV9CisKK3slIGZvciBvIGluIGRhdGEuZnRvcHRpb25zLmNoYW5nZWQgJX0K K3slIGlmIG8ub3B0aW9uIGFuZCBvLnZhbHVlICV9CisKK0FMVEVSIEZPUkVJ R04gVEFCTEUge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1l KSB9fQorT1BUSU9OUyAoU0VUIHt7by5vcHRpb259fSB7e28udmFsdWV8cXRM aXRlcmFsfX0pOworeyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5k aWYgLSV9CisKKworeyUgc2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxz ICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJl bHMuZGVsZXRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJl bHMuZGVsZXRlZCAlfQore3sgU0VDTEFCTEUuRFJPUChjb25uLCAnRk9SRUlH TiBUQUJMRScsIGNvbm58cXRJZGVudChvX2RhdGEuYmFzZW5zcCwgbmFtZSks IHIucHJvdmlkZXIpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7 JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVk fGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAl fQore3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ0ZPUkVJR04gVEFCTEUnLCBj b25ufHF0SWRlbnQob19kYXRhLmJhc2Vuc3AsIG5hbWUpLCByLnByb3ZpZGVy LCByLmxhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUg aWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmNoYW5n ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmNoYW5n ZWQgJX0KK3t7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdGT1JFSUdOIFRBQkxF JywgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSwgci5wcm92 aWRlciwgci5sYWJlbCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9 CisKK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKworQ09NTUVOVCBPTiBG T1JFSUdOIFRBQkxFIHt7IGNvbm58cXRJZGVudChvX2RhdGEuYmFzZW5zcCwg bmFtZSkgfX0KKyAgICBJUyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJh bCB9fTsKK3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLmJhc2Vuc3AgJX0K K0FMVEVSIEZPUkVJR04gVEFCTEUge3sgY29ubnxxdElkZW50KG9fZGF0YS5i YXNlbnNwLCBuYW1lKSB9fQorU0VUIFNDSEVNQSB7eyBjb25ufHF0SWRlbnQo ZGF0YS5iYXNlbnNwKSB9fTsKK3slIGVuZGlmICV9CisKK3slIGVuZGlmICV9 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90 ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuM19wbHVzL2NyZWF0ZS5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMv Zm9yZWlnbl90YWJsZXMvc3FsLzkuM19wbHVzL2NyZWF0ZS5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjdjNDRjMQotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3Rl bXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4zX3BsdXMvY3JlYXRlLnNx bApAQCAtMCwwICsxLDM4IEBACit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0 eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpZiBkYXRhICV9CitDUkVB VEUgRk9SRUlHTiBUQUJMRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5iYXNlbnNw LCBkYXRhLm5hbWUpIH19CisgICAoeyUgaWYgZGF0YS5jb2x1bW5zICV9Cit7 JSBmb3IgYyBpbiBkYXRhLmNvbHVtbnMgJX0KK3slIGlmIG5vdCBsb29wLmZp cnN0JX0gICAgeyUgZW5kaWYgJX17e2Nvbm58cXRJZGVudChjLmF0dG5hbWUp fX0ge3sKK2Nvbm58cXRUeXBlSWRlbnQoYy5kYXRhdHlwZSkgfX17JSBpZiBj LnR5cGxlbiAlfSh7e2MudHlwbGVufX0geyUgaWYgYy5wcmVjaXNpb24gJX0s IHt7Yy5wcmVjaXNpb259fXslIGVuZGlmICV9KXslIGVuZGlmICV9eyUgaWYg Yy5hdHRub3RudWxsICV9CitOT1QgTlVMTCB7JSBlbHNlICV9IE5VTEx7JSBl bmRpZiAlfXslIGlmIGMudHlwZGVmYXVsdCAlfQorREVGQVVMVCB7e2MudHlw ZGVmYXVsdHxxdExpdGVyYWx9fXslIGVuZGlmICV9eyUgaWYgYy5jb2xsbmFt ZSAlfQorQ09MTEFURXt7Yy5jb2xsbmFtZX19eyUgZW5kaWYgJX0KK3slIGlm IG5vdCBsb29wLmxhc3QgJX0sCit7JSBlbmRpZiAlfQoreyUgZW5kZm9yIC0l fXslIGVuZGlmIC0lfSkKKyAgICBTRVJWRVIge3sgY29ubnxxdElkZW50KGRh dGEuZnRzcnZuYW1lKSB9fTsKKworeyUgaWYgZGF0YS5mdG9wdGlvbnMgJX0K K3slIGZvciBvIGluIGRhdGEuZnRvcHRpb25zICV9Cit7JSBpZiBvLm9wdGlv biBhbmQgby52YWx1ZSAlfQoreyUgaWYgbG9vcC5maXJzdCAlfU9QVElPTlMg KCB7JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AuZmlyc3QgJX0sIHslIGVu ZGlmICV9Cit7e28ub3B0aW9ufX0ge3tvLnZhbHVlfHF0TGl0ZXJhbH19IHsl IGlmIGxvb3AubGFzdCAlfSl7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KK3sl IGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuZGVzY3Jp cHRpb24gJX0KK0NPTU1FTlQgT04gRk9SRUlHTiBUQUJMRSB7eyBjb25ufHF0 SWRlbnQoZGF0YS5iYXNlbnNwLCBkYXRhLm5hbWUpIH19CisgICAgSVMgJ3t7 IGRhdGEuZGVzY3JpcHRpb24gfX0nOworeyUgZW5kaWYgLSV9CisKK3slIGlm IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBmb3IgciBpbiBkYXRhLnNlY2xhYmVs cyAlfQoreyUgaWYgci5sYWJlbCBhbmQgci5wcm92aWRlciAlfQore3sgU0VD TEFCTEUuQVBQTFkoY29ubiwgJ0ZPUkVJR04gVEFCTEUnLCBkYXRhLm5hbWUs IHIucHJvdmlkZXIsIHIubGFiZWwpIH19Cit7JSBlbmRpZiAlfQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3Jl aWduX3RhYmxlcy9zcWwvOS4zX3BsdXMvZGVsZXRlLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxl cy9zcWwvOS4zX3BsdXMvZGVsZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi41YmIwOTY5Ci0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVp Z25fdGFibGVzL3NxbC85LjNfcGx1cy9kZWxldGUuc3FsCkBAIC0wLDAgKzEs MTcgQEAKK3slIGlmIHNjaWQgYW5kIGZvaWQgJX0KK1NFTEVDVAorICAgIGMu cmVsbmFtZSBBUyBuYW1lLCBuc3BuYW1lIGFzIGJhc2Vuc3AKK0ZST00KKyAg ICBwZ19jbGFzcyBjCitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19uYW1lc3Bh Y2UgbnNwIE9OIChuc3Aub2lkPWMucmVsbmFtZXNwYWNlKQorV0hFUkUKKyAg ICBjLnJlbG5hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKK0FORAorICAgIGMu b2lkID0ge3tmb2lkfX06Om9pZDsKK3slIGVuZGlmICV9CisKKworeyUgaWYg bmFtZSAlfQorRFJPUCBGT1JFSUdOIFRBQkxFIHt7IGNvbm58cXRJZGVudChi YXNlbnNwLCBuYW1lKSB9fXslIGlmIGNhc2NhZGUlfSBDQVNDQURFeyUgZW5k aWYgJX07Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3Nx bC85LjNfcGx1cy9nZXRfY29sbGF0aW9ucy5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3Fs LzkuM19wbHVzL2dldF9jb2xsYXRpb25zLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi4xNGMzYjJlCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2Zv cmVpZ25fdGFibGVzL3NxbC85LjNfcGx1cy9nZXRfY29sbGF0aW9ucy5zcWwK QEAgLTAsMCArMSw5IEBACitTRUxFQ1QgLS1uc3BuYW1lLCBjb2xsbmFtZSwK KyAgQ0FTRSBXSEVOIGxlbmd0aChuc3BuYW1lKSA+IDAgQU5EIGxlbmd0aChj b2xsbmFtZSkgPiAwICBUSEVOCisgIGNvbmNhdChuc3BuYW1lLCAnLiInLCBj b2xsbmFtZSwnIicpCisgIEVMU0UgJycgRU5EIEFTIGNvcHlfY29sbGF0aW9u CitGUk9NCisgICAgcGdfY29sbGF0aW9uIGMsIHBnX25hbWVzcGFjZSBuCitX SEVSRQorICAgIGMuY29sbG5hbWVzcGFjZT1uLm9pZAorT1JERVIgQlkgbnNw bmFtZSwgY29sbG5hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m b3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzku M19wbHVzL2dldF9jb2x1bW5zLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVp Z25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4zX3Bs dXMvZ2V0X2NvbHVtbnMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmM2Y2ZhOTcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJs ZXMvc3FsLzkuM19wbHVzL2dldF9jb2x1bW5zLnNxbApAQCAtMCwwICsxLDIy IEBACitTRUxFQ1QKKyAgICBhdHRuYW1lLCBhdHRuZGltcywgYXR0dHlwbW9k LCBmb3JtYXRfdHlwZSh0Lm9pZCxOVUxMKSBBUyBkYXRhdHlwZSwKKyAgICBh dHRub3RudWxsLCBhdHRudW0sIGZvcm1hdF90eXBlKHQub2lkLCBhdHQuYXR0 dHlwbW9kKSBBUyBmdWxsdHlwZSwKKyAgICBDQVNFIFdIRU4gbGVuZ3RoKGNu Lm5zcG5hbWUpID4gMCBBTkQgbGVuZ3RoKGNsLmNvbGxuYW1lKSA+IDAgVEhF TgorICAgIGNvbmNhdChjbi5uc3BuYW1lLCAnLiInLCBjbC5jb2xsbmFtZSwn IicpIEVMU0UgJycgRU5EIEFTIGNvbGxuYW1lLAorICAgIChTRUxFQ1QgQ09V TlQoMSkgZnJvbSBwZ190eXBlIHQyIFdIRVJFIHQyLnR5cG5hbWU9dC50eXBu YW1lKSA+IDEgQVMgaXNkdXAKK0ZST00KKyAgICBwZ19hdHRyaWJ1dGUgYXR0 CitKT0lOCisgICAgcGdfdHlwZSB0IE9OIHQub2lkPWF0dHR5cGlkCitKT0lO CisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiB0LnR5cG5hbWVzcGFjZT1uc3Au b2lkCitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ190eXBlIGIgT04gdC50eXBl bGVtPWIub2lkCitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19jb2xsYXRpb24g Y2wgT04gdC50eXBjb2xsYXRpb249Y2wub2lkCitMRUZUIE9VVEVSIEpPSU4K KyAgICBwZ19uYW1lc3BhY2UgY24gT04gY2wuY29sbG5hbWVzcGFjZT1jbi5v aWQKK1dIRVJFCisgICAgYXR0LmF0dHJlbGlkPXt7Zm9pZH19OjpvaWQKKyAg ICBBTkQgYXR0bnVtPjAKK09SREVSIGJ5IGF0dG51bTsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3Jl aWduX3RhYmxlcy9zcWwvOS4zX3BsdXMvZ2V0X2NvbnN0cmFpbnRzLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3Jl aWduX3RhYmxlcy9zcWwvOS4zX3BsdXMvZ2V0X2NvbnN0cmFpbnRzLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzkzNTQ5Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJs ZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjNfcGx1cy9nZXRf Y29uc3RyYWludHMuc3FsCkBAIC0wLDAgKzEsNyBAQAorU0VMRUNUCisgICAg Y29ubmFtZSwgY29udHlwZSwgY29uc3JjCitGUk9NCisgICAgcGdfY29uc3Ry YWludAorV0hFUkUKKyAgICBjb25yZWxpZD17e2ZvaWR9fTo6b2lkCitPUkRF UiBieSBjb25uYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9y ZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjNf cGx1cy9nZXRfZm9yZWlnbl9zZXJ2ZXJzLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwv OS4zX3BsdXMvZ2V0X2ZvcmVpZ25fc2VydmVycy5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWM5NWNlNQotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRl cy9mb3JlaWduX3RhYmxlcy9zcWwvOS4zX3BsdXMvZ2V0X2ZvcmVpZ25fc2Vy dmVycy5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBzcnZuYW1l CitGUk9NCisgICAgcGdfZm9yZWlnbl9zZXJ2ZXIKK09SREVSIEJZCisgICAg c3J2bmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25f dGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4zX3BsdXMv Z2V0X29pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90 ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuM19wbHVzL2dldF9vaWQu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2MTQz NGIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWdu X3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuM19wbHVz L2dldF9vaWQuc3FsCkBAIC0wLDAgKzEsOSBAQAorU0VMRUNUCisgICAgYy5v aWQsIGMucmVsbmFtZSBhcyBuYW1lCitGUk9NCisgICAgcGdfY2xhc3MgYwor Sk9JTgorICAgIHBnX25hbWVzcGFjZSBibiBPTiBibi5vaWQ9Yy5yZWxuYW1l c3BhY2UKK1dIRVJFCisgICAgYm4ubnNwbmFtZSA9IHt7IGJhc2Vuc3B8cXRM aXRlcmFsIH19CisgICAgQU5EIGMucmVsbmFtZT17eyBuYW1lfHF0TGl0ZXJh bCB9fQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJs ZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjNfcGx1cy9nZXRf c2NoZW1hcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90 ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuM19wbHVzL2dldF9zY2hl bWFzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42 YjkyZDM3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9y ZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjNf cGx1cy9nZXRfc2NoZW1hcy5zcWwKQEAgLTAsMCArMSwyMyBAQAorU0VMRUNU CisgICAgbnNwLm5zcG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UgbnNw CisgTEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9O IChkZXMub2Jqb2lkPW5zcC5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfbmFt ZXNwYWNlJzo6cmVnY2xhc3MpCisgTEVGVCBPVVRFUiBKT0lOCisgICAgcGdf Y2F0YWxvZy5wZ19kZWZhdWx0X2FjbCBkYWNsIE9OIChkYWNsLmRlZmFjbG5h bWVzcGFjZSA9IG5zcC5vaWQpCitXSEVSRQorICAgIE5PVCAoKG5zcG5hbWUg PSAncGdfY2F0YWxvZycgQU5EIEVYSVNUUworICAgICAgICAoU0VMRUNUIDEg RlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3BnX2NsYXNzJyBBTkQg cmVsbmFtZXNwYWNlID0gbnNwLm9pZCBMSU1JVCAxKSkgT1IKKyAgICAobnNw bmFtZSA9ICdwZ2FnZW50JyBBTkQgRVhJU1RTCisgICAgICAgIChTRUxFQ1Qg MSBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAncGdhX2pvYicgQU5E IHJlbG5hbWVzcGFjZSA9IG5zcC5vaWQgTElNSVQgMSkpIE9SCisgICAgKG5z cG5hbWUgPSAnaW5mb3JtYXRpb25fc2NoZW1hJyBBTkQgRVhJU1RTCisgICAg ICAgIChTRUxFQ1QgMSBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAn dGFibGVzJyBBTkQgcmVsbmFtZXNwYWNlID0gbnNwLm9pZCBMSU1JVCAxKSkg T1IKKyAgICAobnNwbmFtZSBMSUtFICdfJScgQU5EIEVYSVNUUworICAgICAg ICAoU0VMRUNUIDEgRlJPTSBwZ19wcm9jIFdIRVJFIHByb25hbWU9J3Nsb255 dmVyc2lvbicgQU5EIHByb25hbWVzcGFjZSA9IG5zcC5vaWQgTElNSVQgMSkp CisgIClBTkQKKyAgbnNwbmFtZSBOT1QgTElLRSBFJ3BnXFx0ZW1wXFwlJyBB TkQKKyAgbnNwbmFtZSBOT1QgTElLRSBFJ3BnXFx0b2FzdF90ZW1wXFwlJyBB TkQKKyAgLS0gQURERUQ6IEJlY2F1c2UgV2UgbmVlZCB0byBvbWl0IHN5c3Rl bSBzY2hlbWEgZXhjZXB0IHRoZSBvbmUgb24gd2hpY2ggd2UgYXJlIHRyeWlu ZyB0byAgY3JlYXRlIGNvbGxhdGlvbgorICAoIG5zcC5vaWQgPSB7eyBzY2lk IH19IE9SIG5zcG5hbWUgTk9UIExJS0UgRSdwZ1xcXyUnICkKK09SREVSIEJZ IG5zcG5hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWdu X3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuM19wbHVz L2dldF90eXBlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxl cy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuM19wbHVzL2dldF90 eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u MWY1N2E4NQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Zv cmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4z X3BsdXMvZ2V0X3R5cGVzLnNxbApAQCAtMCwwICsxLDE1IEBACitTRUxFQ1QK KyAgICAqCitGUk9NCisgICAgKAorICAgICBTRUxFQ1QgZm9ybWF0X3R5cGUo dC5vaWQsTlVMTCkgQVMgdHlwbmFtZSwgQ0FTRSBXSEVOIHR5cGVsZW0gPiAw IFRIRU4gdHlwZWxlbSBFTFNFIHQub2lkIEVORCBhcyBlbGVtb2lkLCB0eXBs ZW4sIHR5cHR5cGUsIHQub2lkLCBuc3BuYW1lLAorICAgICAoU0VMRUNUIENP VU5UKDEpIEZST00gcGdfdHlwZSB0MiBXSEVSRSB0Mi50eXBuYW1lID0gdC50 eXBuYW1lKSA+IDEgQVMgaXNkdXAKKyAgICBGUk9NCisgICAgICAgIHBnX3R5 cGUgdAorICAgIEpPSU4KKyAgICAgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiB0 eXBuYW1lc3BhY2U9bnNwLm9pZAorICAgIFdIRVJFCisgICAgICAgIChOT1Qg KHR5cG5hbWUgPSAndW5rbm93bicgQU5EIG5zcG5hbWUgPSAncGdfY2F0YWxv ZycpKSBBTkQgdHlwaXNkZWZpbmVkIEFORCB0eXB0eXBlIElOICgnYicsICdj JywgJ2QnLCAnZScsICdyJylBTkQgTk9UIEVYSVNUUyAoc2VsZWN0IDEgZnJv bSBwZ19jbGFzcyB3aGVyZSByZWxuYW1lc3BhY2U9dHlwbmFtZXNwYWNlIGFu ZCByZWxuYW1lID0gdHlwbmFtZSBhbmQgcmVsa2luZCAhPSAnYycpIEFORCAo dHlwbmFtZSBub3QgbGlrZSAnXyUnIE9SIE5PVCBFWElTVFMgKHNlbGVjdCAx IGZyb20gcGdfY2xhc3Mgd2hlcmUgcmVsbmFtZXNwYWNlPXR5cG5hbWVzcGFj ZSBhbmQgcmVsbmFtZSA9IHN1YnN0cmluZyh0eXBuYW1lIGZyb20gMik6Om5h bWUgYW5kIHJlbGtpbmQgIT0gJ2MnKSkKKyAgICApIEFTIGR1bW15CitPUkRF UiBCWQorICAgIG5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cnLCBuc3BuYW1lIDw+ ICdwdWJsaWMnLCBuc3BuYW1lLCAxOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVz L3NxbC85LjNfcGx1cy9ub2RlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVp Z25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4zX3Bs dXMvbm9kZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMmQzYTM4YgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwv OS4zX3BsdXMvbm9kZS5zcWwKQEAgLTAsMCArMSwxMiBAQAorU0VMRUNUCisg ICAgYy5vaWQsIGMucmVsbmFtZSBBUyBuYW1lLCBwZ19nZXRfdXNlcmJ5aWQo cmVsb3duZXIpIEFTIG93bmVyLAorICAgIGZ0b3B0aW9ucywgbnNwbmFtZSBh cyBiYXNlbnNwCitGUk9NCisgICAgcGdfY2xhc3MgYworSk9JTgorICAgIHBn X2ZvcmVpZ25fdGFibGUgZnQgT04gYy5vaWQ9ZnQuZnRyZWxpZAorTEVGVCBP VVRFUiBKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiAobnNwLm9pZD1j LnJlbG5hbWVzcGFjZSkKK1dIRVJFCisgICAgYy5yZWxuYW1lc3BhY2UgPSB7 e3NjaWR9fTo6b2lkCitPUkRFUiBCWSBjLnJlbG5hbWU7CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9y ZWlnbl90YWJsZXMvc3FsLzkuM19wbHVzL3Byb3BlcnRpZXMuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25f dGFibGVzL3NxbC85LjNfcGx1cy9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjZjZWRjCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxh dGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjNfcGx1cy9wcm9wZXJ0aWVzLnNx bApAQCAtMCwwICsxLDIzIEBACitTRUxFQ1QKKyAgICBjLm9pZCwgYy5yZWxu YW1lIEFTIG5hbWUsIHBnX2dldF91c2VyYnlpZChyZWxvd25lcikgQVMgb3du ZXIsCisgICAgZnRvcHRpb25zLCBzcnZuYW1lIEFTIGZ0c3J2bmFtZSwgZGVz Y3JpcHRpb24sIG5zcG5hbWUgYXMgYmFzZW5zcCwgY29uc3JjLAorICAgIChT RUxFQ1QgYXJyYXlfYWdnKGxhYmVsKSBGUk9NIHBnX3NlY2xhYmVscyBzbDEg V0hFUkUgc2wxLm9iam9pZD1jLm9pZCkgQVMgbGFiZWxzLAorICAgIChTRUxF Q1QgYXJyYXlfYWdnKHByb3ZpZGVyKSBGUk9NIHBnX3NlY2xhYmVscyBzbDIg V0hFUkUgc2wyLm9iam9pZD1jLm9pZCkgQVMgcHJvdmlkZXJzCitGUk9NCisg ICAgcGdfY2xhc3MgYworSk9JTgorICAgIHBnX2ZvcmVpZ25fdGFibGUgZnQg T04gYy5vaWQ9ZnQuZnRyZWxpZAorTEVGVCBPVVRFUiBKT0lOCisgICAgcGdf Zm9yZWlnbl9zZXJ2ZXIgZnMgT04gZnQuZnRzZXJ2ZXI9ZnMub2lkCitMRUZU IE9VVEVSIEpPSU4KKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5v YmpvaWQ9Yy5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdj bGFzcykKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3Ag T04gKG5zcC5vaWQ9Yy5yZWxuYW1lc3BhY2UpCitMRUZUIE9VVEVSIEpPSU4K KyAgICBwZ19jb25zdHJhaW50IGNuIE9OIChjbi5jb25yZWxpZD1jLm9pZCkK K1dIRVJFCisgICAgYy5yZWxuYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisg ICAgeyUgaWYgZm9pZCAlfQorICAgIEFORCBjLm9pZCA9IHt7Zm9pZH19Ojpv aWQKKyAgICB7JSBlbmRpZiAlfQorT1JERVIgQlkgYy5yZWxuYW1lOwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxh dGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjNfcGx1cy91cGRhdGUuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVp Z25fdGFibGVzL3NxbC85LjNfcGx1cy91cGRhdGUuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4NWM0ZmEKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0 ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuM19wbHVzL3VwZGF0ZS5zcWwKQEAg LTAsMCArMSwxMTYgQEAKK3slIGltcG9ydCAnbWFjcm9zL3NlY3VyaXR5Lm1h Y3JvcycgYXMgU0VDTEFCTEUgJX0KK3slIGlmIGRhdGEgJX0KK3slIHNldCBu YW1lID0gb19kYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAlfQoreyUg aWYgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBGT1JFSUdO IFRBQkxFIHt7IGNvbm58cXRJZGVudChvX2RhdGEuYmFzZW5zcCwgb19kYXRh Lm5hbWUpIH19CitSRU5BTUUgVE8ge3sgY29ubnxxdElkZW50KGRhdGEubmFt ZSkgfX07Cit7JSBzZXQgbmFtZSA9IGRhdGEubmFtZSAlfQoreyUgZW5kaWYg JX0KK3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLm93bmVyICV9CisKK0FM VEVSIEZPUkVJR04gVEFCTEUge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNl bnNwLCBuYW1lKSB9fQorT1dORVIgVE8ge3sgZGF0YS5vd25lciB9fTsKK3sl IGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLmNvbHVtbnMgJX0KK3slIGZvciBj IGluIGRhdGEuY29sdW1ucy5kZWxldGVkICV9CisKK0FMVEVSIEZPUkVJR04g VEFCTEUge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSB9 fQorRFJPUCBDT0xVTU4ge3tjb25ufHF0SWRlbnQoYy5hdHRuYW1lKX19Owor eyUgZW5kZm9yIC0lfQorCit7JSBmb3IgYyBpbiBkYXRhLmNvbHVtbnMuYWRk ZWQgJX0KKworQUxURVIgRk9SRUlHTiBUQUJMRSB7eyBjb25ufHF0SWRlbnQo b19kYXRhLmJhc2Vuc3AsIG5hbWUpIH19CitBREQgQ09MVU1OIHt7Y29ubnxx dElkZW50KGMuYXR0bmFtZSl9fSB7eyBjb25ufHF0VHlwZUlkZW50KGMuZGF0 YXR5cGUpIH19eyUgaWYgYy50eXBsZW4gJX0oe3tjLnR5cGxlbn19IHslIGlm IGMucHJlY2lzaW9uICV9LCB7e2MucHJlY2lzaW9ufX17JSBlbmRpZiAlfSl7 JSBlbmRpZiAlfQoreyUgaWYgYy5hdHRub3RudWxsICV9IE5PVCBOVUxMIHsl IGVsc2UgJX0gTlVMTCB7JSBlbmRpZiAlfQoreyUgaWYgYy50eXBkZWZhdWx0 ICV9IERFRkFVTFQge3tjLnR5cGRlZmF1bHR8cXRMaXRlcmFsfX17JSBlbmRp ZiAlfQoreyUgaWYgYy5jb2xsbmFtZSAlfSBDT0xMQVRFIHt7Yy5jb2xsbmFt ZX19eyUgZW5kaWYgJX07Cit7JSBlbmRmb3IgLSV9CisKK3slIGZvciBjIGlu IGRhdGEuY29sdW1ucy5jaGFuZ2VkICV9CisKK0FMVEVSIEZPUkVJR04gVEFC TEUge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSB9fQor RFJPUCBDT0xVTU4ge3tjb25ufHF0SWRlbnQob19kYXRhWydjb2x1bW5zJ11b Yy5hdHRudW1dWydhdHRuYW1lJ10pfX07CisKK0FMVEVSIEZPUkVJR04gVEFC TEUge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSB9fQor QUREIENPTFVNTiB7e2Nvbm58cXRJZGVudChjLmF0dG5hbWUpfX0ge3sgY29u bnxxdFR5cGVJZGVudChjLmRhdGF0eXBlKSB9fXslIGlmIGMudHlwbGVuICV9 KHt7Yy50eXBsZW59fSB7JSBpZiBjLnByZWNpc2lvbiAlfSwge3tjLnByZWNp c2lvbn19eyUgZW5kaWYgJX0peyUgZW5kaWYgJX0KK3slIGlmIGMuYXR0bm90 bnVsbCAlfSBOT1QgTlVMTCB7JSBlbHNlICV9IE5VTEwgeyUgZW5kaWYgJX0K K3slIGlmIGMudHlwZGVmYXVsdCAlfSBERUZBVUxUIHt7Yy50eXBkZWZhdWx0 fHF0TGl0ZXJhbH19eyUgZW5kaWYgJX0KK3slIGlmIGMuY29sbG5hbWUgJX0g Q09MTEFURSB7e2MuY29sbG5hbWV9fXslIGVuZGlmICV9OworeyUgZW5kZm9y IC0lfQorCit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5jb25zdHJhaW50 cyAlfQoreyUgZm9yIGMgaW4gZGF0YS5jb25zdHJhaW50cy5kZWxldGVkICV9 CisKK0FMVEVSIEZPUkVJR04gVEFCTEUge3sgY29ubnxxdElkZW50KG9fZGF0 YS5iYXNlbnNwLCBuYW1lKSB9fQorRFJPUCBDT05TVFJBSU5UIHt7Y29ubnxx dElkZW50KGMuY29ubmFtZSl9fTsKK3slIGVuZGZvciAlfQorCit7JSBmb3Ig YyBpbiBkYXRhLmNvbnN0cmFpbnRzLmFkZGVkICV9CisKK0FMVEVSIEZPUkVJ R04gVEFCTEUge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1l KSB9fQorQUREIENPTlNUUkFJTlQge3tjb25ufHF0SWRlbnQoYy5jb25uYW1l KX19IHslIGlmIGMuY29uc3JjICV9IENIRUNLICh7e2MuY29uc3JjfX0peyUg ZW5kaWYgJX0geyUgaWYgYy5jb25ub2luaGVyaXQgJX0gTk8gSU5IRVJJVHsl IGVuZGlmICV9OworeyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKworeyUg aWYgZGF0YS5mdG9wdGlvbnMgJX0KK3slIGZvciBvIGluIGRhdGEuZnRvcHRp b25zLmRlbGV0ZWQgJX0KK3slIGlmIG8ub3B0aW9uIGFuZCBvLnZhbHVlICV9 CisKK0FMVEVSIEZPUkVJR04gVEFCTEUge3sgY29ubnxxdElkZW50KG9fZGF0 YS5iYXNlbnNwLCBuYW1lKSB9fQorT1BUSU9OUyAoIERST1Age3tvLm9wdGlv bn19IHt7by52YWx1ZXxxdExpdGVyYWx9fSk7Cit7JSBlbmRpZiAlfQoreyUg ZW5kZm9yICV9CisKK3slIGZvciBvIGluIGRhdGEuZnRvcHRpb25zLmFkZGVk ICV9Cit7JSBpZiBvLm9wdGlvbiBhbmQgby52YWx1ZSAlfQorCitBTFRFUiBG T1JFSUdOIFRBQkxFIHt7IGNvbm58cXRJZGVudChvX2RhdGEuYmFzZW5zcCwg bmFtZSkgfX0KK09QVElPTlMgKEFERCB7e28ub3B0aW9ufX0ge3tvLnZhbHVl fHF0TGl0ZXJhbH19KTsKK3slIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KKwor eyUgZm9yIG8gaW4gZGF0YS5mdG9wdGlvbnMuY2hhbmdlZCAlfQoreyUgaWYg by5vcHRpb24gYW5kIG8udmFsdWUgJX0KKworQUxURVIgRk9SRUlHTiBUQUJM RSB7eyBjb25ufHF0SWRlbnQob19kYXRhLmJhc2Vuc3AsIG5hbWUpIH19CitP UFRJT05TIChTRVQge3tvLm9wdGlvbn19IHt7by52YWx1ZXxxdExpdGVyYWx9 fSk7Cit7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0K KworeyUgc2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBp ZiAnZGVsZXRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRl ZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVsZXRl ZCAlfQore3sgU0VDTEFCTEUuRFJPUChjb25uLCAnRk9SRUlHTiBUQUJMRScs IGNvbm58cXRJZGVudChvX2RhdGEuYmFzZW5zcCwgbmFtZSksIHIucHJvdmlk ZXIpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnYWRk ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0aCA+ IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQore3sgU0VD TEFCTEUuQVBQTFkoY29ubiwgJ0ZPUkVJR04gVEFCTEUnLCBjb25ufHF0SWRl bnQob19kYXRhLmJhc2Vuc3AsIG5hbWUpLCByLnByb3ZpZGVyLCByLmxhYmVs KSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5n ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3Ro ID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KK3t7 IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdGT1JFSUdOIFRBQkxFJywgY29ubnxx dElkZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSwgci5wcm92aWRlciwgci5s YWJlbCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGlm IGRhdGEuZGVzY3JpcHRpb24gJX0KKworQ09NTUVOVCBPTiBGT1JFSUdOIFRB QkxFIHt7IGNvbm58cXRJZGVudChvX2RhdGEuYmFzZW5zcCwgbmFtZSkgfX0K KyAgICBJUyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJhbCB9fTsKK3sl IGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLmJhc2Vuc3AgJX0KK0FMVEVSIEZP UkVJR04gVEFCTEUge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBu YW1lKSB9fQorU0VUIFNDSEVNQSB7eyBjb25ufHF0SWRlbnQoZGF0YS5iYXNl bnNwKSB9fTsKK3slIGVuZGlmICV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMv Zm9yZWlnbl90YWJsZXMvc3FsLzkuNV9wbHVzL2NyZWF0ZS5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90 YWJsZXMvc3FsLzkuNV9wbHVzL2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uNjEyZGY0MAotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9m b3JlaWduX3RhYmxlcy9zcWwvOS41X3BsdXMvY3JlYXRlLnNxbApAQCAtMCww ICsxLDU3IEBACit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNyb3Mn IGFzIFNFQ0xBQkxFICV9Cit7JSBzZXQgaXNfY29sdW1ucyA9IFtdICV9Cit7 JSBpZiBkYXRhICV9CitDUkVBVEUgRk9SRUlHTiBUQUJMRSB7eyBjb25ufHF0 SWRlbnQoZGF0YS5iYXNlbnNwLCBkYXRhLm5hbWUpIH19CisgICAoeyUgaWYg ZGF0YS5jb2x1bW5zICV9Cit7JSBmb3IgYyBpbiBkYXRhLmNvbHVtbnMgJX0K K3slIGlmIChjLmluaGVyaXRlZGZyb20gPT0nJyBvciAgYy5pbmhlcml0ZWRm cm9tID09IE5vbmUgb3IgIGMuaW5oZXJpdGVkZnJvbSA9PSAnTm9uZScgKSAl fQoreyUgaWYgaXNfY29sdW1ucy5hcHBlbmQoJzEnKSAlfXslIGVuZGlmICV9 Cit7JSBpZiBub3QgbG9vcC5maXJzdCV9ICAgIHslIGVuZGlmICV9e3tjb25u fHF0SWRlbnQoYy5hdHRuYW1lKX19IHt7Y29ubnxxdFR5cGVJZGVudChjLmRh dGF0eXBlKSB9fXslIGlmIGMudHlwbGVuICV9KHt7Yy50eXBsZW59fSB7JSBp ZiBjLnByZWNpc2lvbiAlfSwge3tjLnByZWNpc2lvbn19eyUgZW5kaWYgJX0p eyUgZW5kaWYgJX0KK3slIGlmIGMuYXR0bm90bnVsbCAlfSBOT1QgTlVMTHsl IGVsc2UgJX0gTlVMTHslIGVuZGlmICV9Cit7JSBpZiBjLnR5cGRlZmF1bHQg JX0gREVGQVVMVHt7Yy50eXBkZWZhdWx0fHF0TGl0ZXJhbH19eyUgZW5kaWYg JX0KK3slIGlmIGMuY29sbG5hbWUgJX0gQ09MTEFURXt7Yy5jb2xsbmFtZX19 eyUgZW5kaWYgJX0KK3slIGlmIG5vdCBsb29wLmxhc3QgJX0sCit7JSBlbmRp ZiAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGZvciAtJX0KKworeyUgaWYgZGF0 YS5jb25zdHJhaW50cyAlfQoreyUgZm9yIGMgaW4gZGF0YS5jb25zdHJhaW50 cyAlfQoreyUgaWYgaXNfY29sdW1uc3xsZW5ndGggPiAwIGFuZCBsb29wLmZp cnN0ICV9LAoreyUgZW5kaWYgJX0KKyAgICBDT05TVFJBSU5UIHt7Y29ubnxx dElkZW50KGMuY29ubmFtZSl9fXslIGlmIGMuY29uc3JjICV9IENIRUNLICh7 e2MuY29uc3JjfX0peyUgZW5kaWYgJX17JSBpZiBjLmNvbm5vaW5oZXJpdCAl fSBOTyBJTkhFUklUeyUgZW5kaWYgJX0KK3slIGlmIG5vdCBsb29wLmxhc3Qg JX0sCit7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQor eyUgZW5kaWYgLSV9CispCisKK3slIGlmIGRhdGEuaW5oZXJpdHMgJX0KKyAg ICBJTkhFUklUUyAoeyUgZm9yIGkgaW4gZGF0YS5pbmhlcml0cyAlfXslIGlm IGkgJX17e2l9fXslIGlmIG5vdCBsb29wLmxhc3QgJX0sIHslIGVuZGlmICV9 eyUgZW5kaWYgJX17JSBlbmRmb3IgJX0pCit7JSBlbmRpZiAlfQorICAgIFNF UlZFUiB7eyBjb25ufHF0SWRlbnQoZGF0YS5mdHNydm5hbWUpIH19OworCit7 JSBpZiBkYXRhLmZ0b3B0aW9ucyAlfQoreyUgZm9yIG8gaW4gZGF0YS5mdG9w dGlvbnMgJX0KK3slIGlmIG8ub3B0aW9uIGFuZCBvLnZhbHVlICV9Cit7JSBp ZiBsb29wLmZpcnN0ICV9T1BUSU9OUyAoIHslIGVuZGlmICV9Cit7JSBpZiBu b3QgbG9vcC5maXJzdCAlfSwgeyUgZW5kaWYgJX0KK3t7by5vcHRpb259fSB7 e28udmFsdWV8cXRMaXRlcmFsfX0geyUgaWYgbG9vcC5sYXN0ICV9KXslIGVu ZGlmICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAt JX0KKworeyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorQ09NTUVOVCBPTiBG T1JFSUdOIFRBQkxFIHt7IGNvbm58cXRJZGVudChkYXRhLmJhc2Vuc3AsIGRh dGEubmFtZSkgfX0KKyAgICBJUyAne3sgZGF0YS5kZXNjcmlwdGlvbiB9fSc7 Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5zZWNsYWJlbHMgJX0KK3sl IGZvciByIGluIGRhdGEuc2VjbGFiZWxzICV9Cit7JSBpZiByLmxhYmVsIGFu ZCByLnByb3ZpZGVyICV9Cit7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnRk9S RUlHTiBUQUJMRScsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5sYWJlbCkg fX0KK3slIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7 JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWln bl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjVfcGx1 cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMv dGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjVfcGx1cy9kZWxldGUu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViYjA5 NjkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWdu X3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuNV9wbHVz L2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwxNyBAQAoreyUgaWYgc2NpZCBhbmQg Zm9pZCAlfQorU0VMRUNUCisgICAgYy5yZWxuYW1lIEFTIG5hbWUsIG5zcG5h bWUgYXMgYmFzZW5zcAorRlJPTQorICAgIHBnX2NsYXNzIGMKK0xFRlQgT1VU RVIgSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gKG5zcC5vaWQ9Yy5y ZWxuYW1lc3BhY2UpCitXSEVSRQorICAgIGMucmVsbmFtZXNwYWNlID0ge3tz Y2lkfX06Om9pZAorQU5ECisgICAgYy5vaWQgPSB7e2ZvaWR9fTo6b2lkOwor eyUgZW5kaWYgJX0KKworCit7JSBpZiBuYW1lICV9CitEUk9QIEZPUkVJR04g VEFCTEUge3sgY29ubnxxdElkZW50KGJhc2Vuc3AsIG5hbWUpIH19eyUgaWYg Y2FzY2FkZSV9IENBU0NBREV7JSBlbmRpZiAlfTsKK3slIGVuZGlmICV9CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1w bGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuNV9wbHVzL2dldF9jb2xsYXRp b25zLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBs YXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS41X3BsdXMvZ2V0X2NvbGxhdGlv bnMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4 ZDI3NGIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3Jl aWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuNV9w bHVzL2dldF9jb2xsYXRpb25zLnNxbApAQCAtMCwwICsxLDkgQEAKK1NFTEVD VCAtLW5zcG5hbWUsIGNvbGxuYW1lLAorICAgIENBU0UgV0hFTiBsZW5ndGgo bnNwbmFtZSkgPiAwIEFORCBsZW5ndGgoY29sbG5hbWUpID4gMCAgVEhFTgor ICAgIGNvbmNhdChuc3BuYW1lLCAnLiInLCBjb2xsbmFtZSwnIicpCisgICAg RUxTRSAnJyBFTkQgQVMgY29weV9jb2xsYXRpb24KK0ZST00KKyAgICBwZ19j b2xsYXRpb24gYywgcGdfbmFtZXNwYWNlIG4KK1dIRVJFCisgICAgYy5jb2xs bmFtZXNwYWNlPW4ub2lkCitPUkRFUiBCWSBuc3BuYW1lLCBjb2xsbmFtZTsK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3Rl bXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS41X3BsdXMvZ2V0X2NvbHVt bnMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxh dGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjVfcGx1cy9nZXRfY29sdW1ucy5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGRhNWEy YgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25f dGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS41X3BsdXMv Z2V0X2NvbHVtbnMuc3FsCkBAIC0wLDAgKzEsMzQgQEAKK1NFTEVDVAorICAg IGF0dC5hdHRuYW1lLCBhdHQuYXR0bmRpbXMsIGF0dC5hdHR0eXBtb2QsIGZv cm1hdF90eXBlKHQub2lkLE5VTEwpIEFTIGRhdGF0eXBlLAorICAgIGF0dC5h dHRub3RudWxsLCBhdHQuYXR0bnVtLCBmb3JtYXRfdHlwZSh0Lm9pZCwgYXR0 LmF0dHR5cG1vZCkgQVMgZnVsbHR5cGUsCisgICAgQ0FTRSBXSEVOIGxlbmd0 aChjbi5uc3BuYW1lKSA+IDAgQU5EIGxlbmd0aChjbC5jb2xsbmFtZSkgPiAw IFRIRU4KKyAgICBjb25jYXQoY24ubnNwbmFtZSwgJy4iJywgY2wuY29sbG5h bWUsJyInKQorICAgIEVMU0UgJycgRU5EIEFTIGNvbGxuYW1lLAorICAgIChT RUxFQ1QgY29uY2F0KG5tc3BfcGFyZW50Lm5zcG5hbWUsICcuJyxwYXJlbnQu cmVsbmFtZSApIGFzIGluaGVyaXRlZGZyb20KK0ZST00KKyAgICBwZ19hdHRy aWJ1dGUgYXQKK0pPSU4KKyAgICBwZ19pbmhlcml0cyBwaCBPTiBwaC5pbmhw YXJlbnQgPSBhdC5hdHRyZWxpZCBBTkQgcGguaW5ocmVsaWQgPSAge3tmb2lk fX06Om9pZAorSk9JTgorICAgIHBnX2NsYXNzIHBhcmVudCBPTiBwaC5pbmhw YXJlbnQgID0gcGFyZW50Lm9pZAorSk9JTgorICAgIHBnX25hbWVzcGFjZSBu bXNwX3BhcmVudCBPTiBubXNwX3BhcmVudC5vaWQgID0gcGFyZW50LnJlbG5h bWVzcGFjZQorICAgIFdIRVJFIGF0LmF0dG5hbWUgPSBhdHQuYXR0bmFtZQor ICAgICksCisgICAgKFNFTEVDVCBDT1VOVCgxKSBmcm9tIHBnX3R5cGUgdDIg V0hFUkUgdDIudHlwbmFtZT10LnR5cG5hbWUpID4gMSBBUyBpc2R1cAorRlJP TQorICAgIHBnX2F0dHJpYnV0ZSBhdHQKK0pPSU4KKyAgICBwZ190eXBlIHQg T04gdC5vaWQ9YXR0dHlwaWQKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNw IE9OIHQudHlwbmFtZXNwYWNlPW5zcC5vaWQKK0xFRlQgT1VURVIgSk9JTgor ICAgIHBnX3R5cGUgYiBPTiB0LnR5cGVsZW09Yi5vaWQKK0xFRlQgT1VURVIg Sk9JTgorICAgIHBnX2NvbGxhdGlvbiBjbCBPTiB0LnR5cGNvbGxhdGlvbj1j bC5vaWQKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX25hbWVzcGFjZSBjbiBP TiBjbC5jb2xsbmFtZXNwYWNlPWNuLm9pZAorV0hFUkUKKyAgICBhdHQuYXR0 cmVsaWQ9e3tmb2lkfX06Om9pZAorICAgIEFORCBhdHQuYXR0bnVtPjAKK09S REVSIGJ5IGF0dC5hdHRudW07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3Fs LzkuNV9wbHVzL2dldF9jb25zdHJhaW50cy5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3Fs LzkuNV9wbHVzL2dldF9jb25zdHJhaW50cy5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uZmM5MzU0OQotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9m b3JlaWduX3RhYmxlcy9zcWwvOS41X3BsdXMvZ2V0X2NvbnN0cmFpbnRzLnNx bApAQCAtMCwwICsxLDcgQEAKK1NFTEVDVAorICAgIGNvbm5hbWUsIGNvbnR5 cGUsIGNvbnNyYworRlJPTQorICAgIHBnX2NvbnN0cmFpbnQKK1dIRVJFCisg ICAgY29ucmVsaWQ9e3tmb2lkfX06Om9pZAorT1JERVIgYnkgY29ubmFtZTsK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3Rl bXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS41X3BsdXMvZ2V0X2ZvcmVp Z25fc2VydmVycy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxl cy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuNV9wbHVzL2dldF9m b3JlaWduX3NlcnZlcnMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjllYzNjMmYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJs ZXMvc3FsLzkuNV9wbHVzL2dldF9mb3JlaWduX3NlcnZlcnMuc3FsCkBAIC0w LDAgKzEsNiBAQAorU0VMRUNUCisgIHNydm5hbWUKK0ZST00KKyAgcGdfZm9y ZWlnbl9zZXJ2ZXIKK09SREVSCisgIEJZIHNydm5hbWUKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3Jl aWduX3RhYmxlcy9zcWwvOS41X3BsdXMvZ2V0X29pZC5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJs ZXMvc3FsLzkuNV9wbHVzL2dldF9vaWQuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLmU1YmU1ZmUKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9y ZWlnbl90YWJsZXMvc3FsLzkuNV9wbHVzL2dldF9vaWQuc3FsCkBAIC0wLDAg KzEsMjEgQEAKK3slIGlmIGJhc2Vuc3AgJX0KK1NFTEVDVAorICAgIGMub2lk LCBibi5vaWQgYXMgc2NpZAorRlJPTQorICAgIHBnX2NsYXNzIGMKK0pPSU4K KyAgICBwZ19uYW1lc3BhY2UgYm4gT04gYm4ub2lkPWMucmVsbmFtZXNwYWNl CitXSEVSRQorICAgIGJuLm5zcG5hbWUgPSB7eyBiYXNlbnNwfHF0TGl0ZXJh bCB9fQorICAgIEFORCBjLnJlbG5hbWU9e3sgbmFtZXxxdExpdGVyYWwgfX0K K3slIGVsc2UgJX0KK1NFTEVDVAorICAgIGMub2lkLCBibi5vaWQgYXMgc2Np ZAorRlJPTQorICAgIHBnX2NsYXNzIGMKK0pPSU4KKyAgICBwZ19uYW1lc3Bh Y2UgYm4gT04gYm4ub2lkPWMucmVsbmFtZXNwYWNlCitXSEVSRQorICAgIGMu cmVsbmFtZT17eyBuYW1lfHF0TGl0ZXJhbCB9fQorICAgIEFORCBibi5vaWQg PSB7e3NjaWR9fTo6b2lkCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25f dGFibGVzL3NxbC85LjVfcGx1cy9nZXRfc2NoZW1hcy5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJs ZXMvc3FsLzkuNV9wbHVzL2dldF9zY2hlbWFzLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTM3OTNjCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVz L2ZvcmVpZ25fdGFibGVzL3NxbC85LjVfcGx1cy9nZXRfc2NoZW1hcy5zcWwK QEAgLTAsMCArMSwyNiBAQAorU0VMRUNUCisgICAgbnNwLm5zcG5hbWUKK0ZS T00KKyAgICBwZ19uYW1lc3BhY2UgbnNwCitMRUZUIE9VVEVSIEpPSU4KKyAg ICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9bnNwLm9pZCBB TkQgZGVzLmNsYXNzb2lkPSdwZ19uYW1lc3BhY2UnOjpyZWdjbGFzcykKK0xF RlQgT1VURVIgSk9JTgorICAgIHBnX2NhdGFsb2cucGdfZGVmYXVsdF9hY2wg ZGFjbCBPTiAoZGFjbC5kZWZhY2xuYW1lc3BhY2UgPSBuc3Aub2lkKQorV0hF UkUKKyAgICBOT1QgKAorICAgIChuc3BuYW1lID0gJ3BnX2NhdGFsb2cnIEFO RCBFWElTVFMKKyAgICAoU0VMRUNUIDEgRlJPTSBwZ19jbGFzcyBXSEVSRSBy ZWxuYW1lID0gJ3BnX2NsYXNzJyBBTkQgcmVsbmFtZXNwYWNlID0gbnNwLm9p ZCBMSU1JVCAxKSkgT1IKKyAgICAobnNwbmFtZSA9ICdwZ2FnZW50JyBBTkQg RVhJU1RTCisgICAgKFNFTEVDVCAxIEZST00gcGdfY2xhc3MgV0hFUkUgcmVs bmFtZSA9ICdwZ2Ffam9iJyBBTkQgcmVsbmFtZXNwYWNlID0gbnNwLm9pZCBM SU1JVCAxKSkgT1IKKyAgICAobnNwbmFtZSA9ICdpbmZvcm1hdGlvbl9zY2hl bWEnIEFORCBFWElTVFMKKyAgICAoU0VMRUNUIDEgRlJPTSBwZ19jbGFzcyBX SEVSRSByZWxuYW1lID0gJ3RhYmxlcycgQU5EIHJlbG5hbWVzcGFjZSA9IG5z cC5vaWQgTElNSVQgMSkpIE9SCisgICAgKG5zcG5hbWUgTElLRSAnXyUnIEFO RCBFWElTVFMKKyAgICAgIChTRUxFQ1QgMSBGUk9NIHBnX3Byb2MgV0hFUkUg cHJvbmFtZT0nc2xvbnl2ZXJzaW9uJyBBTkQgcHJvbmFtZXNwYWNlID0gbnNw Lm9pZCBMSU1JVCAxKSkKKyAgICApCisgICAgQU5ECisgICAgbnNwbmFtZSBO T1QgTElLRSBFJ3BnXFx0ZW1wXFwlJyBBTkQKKyAgICBuc3BuYW1lIE5PVCBM SUtFIEUncGdcXHRvYXN0X3RlbXBcXCUnIEFORAorICAgIC0tIEFEREVEOiBC ZWNhdXNlIFdlIG5lZWQgdG8gb21pdCBzeXN0ZW0gc2NoZW1hIGV4Y2VwdCB0 aGUgb25lIG9uIHdoaWNoIHdlIGFyZSB0cnlpbmcgdG8gIGNyZWF0ZSBjb2xs YXRpb24KKyAgICAoIG5zcC5vaWQgPSB7eyBzY2lkIH19IE9SIG5zcG5hbWUg Tk9UIExJS0UgRSdwZ1xcXyUnICkKK09SREVSIEJZCisgICAgbnNwbmFtZTsK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3Rl bXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS41X3BsdXMvZ2V0X3RhYmxl X2NvbHVtbnMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMv dGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjVfcGx1cy9nZXRfdGFi bGVfY29sdW1ucy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZTE4ODJkYgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9z cWwvOS41X3BsdXMvZ2V0X3RhYmxlX2NvbHVtbnMuc3FsCkBAIC0wLDAgKzEs MTQgQEAKK3slIGlmIGF0dHJlbGlkICAlfQorU0VMRUNUCisgICAgYS5hdHRu YW1lLCBmb3JtYXRfdHlwZShhLmF0dHR5cGlkLCBOVUxMKSBBUyBkYXRhdHlw ZSwKKyAgICBxdW90ZV9pZGVudChuLm5zcG5hbWUpfHwnLid8fHF1b3RlX2lk ZW50KGMucmVsbmFtZSkgYXMgaW5oZXJpdGVkZnJvbSwKKyAgICBjLm9pZCBh cyBpbmhlcml0ZWRpZAorRlJPTQorICAgIHBnX2NsYXNzIGMKK0pPSU4KKyAg ICBwZ19uYW1lc3BhY2UgbiBPTiBjLnJlbG5hbWVzcGFjZT1uLm9pZAorSk9J TgorICAgIHBnX2F0dHJpYnV0ZSBhIE9OIGEuYXR0cmVsaWQgPSBjLm9pZCBB TkQgTk9UIGEuYXR0aXNkcm9wcGVkIEFORCBhLmF0dG51bT4wCitXSEVSRQor ICAgIGMub2lkID0ge3thdHRyZWxpZH19OjpPSUQKK3slIGVuZGlmICV9CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1w bGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuNV9wbHVzL2dldF90YWJsZXMu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVz L2ZvcmVpZ25fdGFibGVzL3NxbC85LjVfcGx1cy9nZXRfdGFibGVzLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDg1YTI2Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJs ZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjVfcGx1cy9nZXRf dGFibGVzLnNxbApAQCAtMCwwICsxLDE5IEBACit7JSBpZiBhdHRyZWxpZCAg JX0KK1NFTEVDVAorICAgIGFycmF5X2FnZyhxdW90ZV9pZGVudChuLm5zcG5h bWUpIHx8ICcuJyB8fCBxdW90ZV9pZGVudChjLnJlbG5hbWUpKSBhcyBpbmhl cml0cworRlJPTQorICAgIHBnX2NsYXNzIGMsIHBnX25hbWVzcGFjZSBuCitX SEVSRQorICAgIGMucmVsbmFtZXNwYWNlPW4ub2lkIEFORCBjLnJlbGtpbmQg SU4gKCdyJywgJ2YnKQorICAgIEFORCBjLm9pZCBpbiB7e2F0dHJlbGlkfX07 CisKK3slIGVsc2UgJX0KK1NFTEVDVAorICAgIGMub2lkIEFTIGlkLCBxdW90 ZV9pZGVudChuLm5zcG5hbWUpIHx8ICcuJyB8fCBxdW90ZV9pZGVudChjLnJl bG5hbWUpIGFzIHRleHQKK0ZST00KKyAgICBwZ19jbGFzcyBjLCBwZ19uYW1l c3BhY2UgbgorV0hFUkUKKyAgICBjLnJlbG5hbWVzcGFjZT1uLm9pZCBBTkQg Yy5yZWxraW5kIElOICgncicsICdmJykKK09SREVSIEJZCisgICAgbi5uc3Bu YW1lLCBjLnJlbG5hbWU7Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25f dGFibGVzL3NxbC85LjVfcGx1cy9nZXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVz L3NxbC85LjVfcGx1cy9nZXRfdHlwZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjVmNmM0ZmMKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9y ZWlnbl90YWJsZXMvc3FsLzkuNV9wbHVzL2dldF90eXBlcy5zcWwKQEAgLTAs MCArMSwxNiBAQAorU0VMRUNUCisgICAgKgorRlJPTQorICAgICgKKyAgICAg ICAgU0VMRUNUIGZvcm1hdF90eXBlKHQub2lkLE5VTEwpIEFTIHR5cG5hbWUs IENBU0UgV0hFTiB0eXBlbGVtID4gMCBUSEVOIHR5cGVsZW0gRUxTRSB0Lm9p ZCBFTkQgYXMgZWxlbW9pZCwgdHlwbGVuLCB0eXB0eXBlLCB0Lm9pZCwgbnNw bmFtZSwKKyAgICAgICAgKFNFTEVDVCBDT1VOVCgxKSBGUk9NIHBnX3R5cGUg dDIgV0hFUkUgdDIudHlwbmFtZSA9IHQudHlwbmFtZSkgPiAxIEFTIGlzZHVw CisgICAgICAgICBGUk9NCisgICAgICAgICAgICBwZ190eXBlIHQKKyAgICAg ICAgIEpPSU4KKyAgICAgICAgICAgICAgICBwZ19uYW1lc3BhY2UgbnNwIE9O IHR5cG5hbWVzcGFjZT1uc3Aub2lkCisgICAgICAgICBXSEVSRQorICAgICAg ICAgKE5PVCAodHlwbmFtZSA9ICd1bmtub3duJyBBTkQgbnNwbmFtZSA9ICdw Z19jYXRhbG9nJykpIEFORAorICAgICAgICAgICAgdHlwaXNkZWZpbmVkIEFO RCB0eXB0eXBlIElOICgnYicsICdjJywgJ2QnLCAnZScsICdyJylBTkQgTk9U IEVYSVNUUyAoc2VsZWN0IDEgZnJvbSBwZ19jbGFzcyB3aGVyZSByZWxuYW1l c3BhY2U9dHlwbmFtZXNwYWNlIGFuZCByZWxuYW1lID0gdHlwbmFtZSBhbmQg cmVsa2luZCAhPSAnYycpIEFORCAodHlwbmFtZSBub3QgbGlrZSAnXyUnIE9S IE5PVCBFWElTVFMgKHNlbGVjdCAxIGZyb20gcGdfY2xhc3Mgd2hlcmUgcmVs bmFtZXNwYWNlPXR5cG5hbWVzcGFjZSBhbmQgcmVsbmFtZSA9IHN1YnN0cmlu Zyh0eXBuYW1lIGZyb20gMik6Om5hbWUgYW5kIHJlbGtpbmQgIT0gJ2MnKSkK KyAgICAgKSBBUyBkdW1teQorT1JERVIgQlkKKyAgICBuc3BuYW1lIDw+ICdw Z19jYXRhbG9nJywgbnNwbmFtZSA8PiAncHVibGljJywgbnNwbmFtZSwgMTsK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3Rl bXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS41X3BsdXMvbm9kZS5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9y ZWlnbl90YWJsZXMvc3FsLzkuNV9wbHVzL25vZGUuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkM2EzOGIKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0 ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuNV9wbHVzL25vZGUuc3FsCkBAIC0w LDAgKzEsMTIgQEAKK1NFTEVDVAorICAgIGMub2lkLCBjLnJlbG5hbWUgQVMg bmFtZSwgcGdfZ2V0X3VzZXJieWlkKHJlbG93bmVyKSBBUyBvd25lciwKKyAg ICBmdG9wdGlvbnMsIG5zcG5hbWUgYXMgYmFzZW5zcAorRlJPTQorICAgIHBn X2NsYXNzIGMKK0pPSU4KKyAgICBwZ19mb3JlaWduX3RhYmxlIGZ0IE9OIGMu b2lkPWZ0LmZ0cmVsaWQKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX25hbWVz cGFjZSBuc3AgT04gKG5zcC5vaWQ9Yy5yZWxuYW1lc3BhY2UpCitXSEVSRQor ICAgIGMucmVsbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorT1JERVIgQlkg Yy5yZWxuYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWln bl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjVfcGx1 cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFi bGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS41X3BsdXMvcHJv cGVydGllcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMjJhNjlkNgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwv OS41X3BsdXMvcHJvcGVydGllcy5zcWwKQEAgLTAsMCArMSwyNCBAQAorU0VM RUNUCisgICAgYy5vaWQsIGMucmVsbmFtZSBBUyBuYW1lLCBwZ19nZXRfdXNl cmJ5aWQocmVsb3duZXIpIEFTIG93bmVyLAorICAgIGZ0b3B0aW9ucywgc3J2 bmFtZSBBUyBmdHNydm5hbWUsIGRlc2NyaXB0aW9uLCBuc3BuYW1lIGFzIGJh c2Vuc3AsCisgICAgKFNFTEVDVCBhcnJheV9hZ2cobGFiZWwpIEZST00gcGdf c2VjbGFiZWxzIHNsMSBXSEVSRSBzbDEub2Jqb2lkPWMub2lkKSBBUyBsYWJl bHMsCisgICAgKFNFTEVDVCBhcnJheV9hZ2cocHJvdmlkZXIpIEZST00gcGdf c2VjbGFiZWxzIHNsMiBXSEVSRSBzbDIub2Jqb2lkPWMub2lkKSBBUyBwcm92 aWRlcnMgeyUgaWYgZm9pZCAlfSwKKyAgICAoU0VMRUNUIGFycmF5X2FnZyhp LmluaHBhcmVudCkgRlJPTSBwZ19pbmhlcml0cyBpCitXSEVSRQorICAgIGku aW5ocmVsaWQgPSB7e2ZvaWR9fTo6b2lkIEdST1VQIEJZIGkuaW5ocmVsaWQp IGFzIGluaGVyaXRzIHslIGVuZGlmICV9CitGUk9NCisgICAgcGdfY2xhc3Mg YworSk9JTgorICAgIHBnX2ZvcmVpZ25fdGFibGUgZnQgT04gYy5vaWQ9ZnQu ZnRyZWxpZAorTEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZm9yZWlnbl9zZXJ2 ZXIgZnMgT04gZnQuZnRzZXJ2ZXI9ZnMub2lkCitMRUZUIE9VVEVSIEpPSU4K KyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9Yy5vaWQg QU5EIGRlcy5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykKK0xFRlQg T1VURVIgSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gKG5zcC5vaWQ9 Yy5yZWxuYW1lc3BhY2UpCitXSEVSRQorICAgIGMucmVsbmFtZXNwYWNlID0g e3tzY2lkfX06Om9pZAorICAgIHslIGlmIGZvaWQgJX0KKyAgICBBTkQgYy5v aWQgPSB7e2ZvaWR9fTo6b2lkCisgICAgeyUgZW5kaWYgJX0KK09SREVSIEJZ IGMucmVsbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVp Z25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS41X3Bs dXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVz L3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS41X3BsdXMvdXBkYXRl LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTQ1 M2IwCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWln bl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjVfcGx1 cy91cGRhdGUuc3FsCkBAIC0wLDAgKzEsMTM2IEBACit7JSBpbXBvcnQgJ21h Y3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpZiBk YXRhICV9Cit7JSBzZXQgbmFtZSA9IG9fZGF0YS5uYW1lICV9Cit7JSBpZiBk YXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAhPSBvX2RhdGEubmFtZSAl fQorQUxURVIgRk9SRUlHTiBUQUJMRSB7eyBjb25ufHF0SWRlbnQob19kYXRh LmJhc2Vuc3AsIG9fZGF0YS5uYW1lKSB9fQorUkVOQU1FIFRPIHt7IGNvbm58 cXRJZGVudChkYXRhLm5hbWUpIH19OworeyUgc2V0IG5hbWUgPSBkYXRhLm5h bWUgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0 YS5vd25lciAlfQorCitBTFRFUiBGT1JFSUdOIFRBQkxFIHt7IGNvbm58cXRJ ZGVudChvX2RhdGEuYmFzZW5zcCwgbmFtZSkgfX0KK09XTkVSIFRPIHt7IGRh dGEub3duZXIgfX07Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5jb2x1 bW5zICV9Cit7JSBmb3IgYyBpbiBkYXRhLmNvbHVtbnMuZGVsZXRlZCAlfQor CitBTFRFUiBGT1JFSUdOIFRBQkxFIHt7IGNvbm58cXRJZGVudChvX2RhdGEu YmFzZW5zcCwgbmFtZSkgfX0KK0RST1AgQ09MVU1OIHt7Y29ubnxxdElkZW50 KGMuYXR0bmFtZSl9fTsKK3slIGVuZGZvciAtJX0KKworeyUgZm9yIGMgaW4g ZGF0YS5jb2x1bW5zLmFkZGVkICV9Cit7JSBpZiAoYy5pbmhlcml0ZWRmcm9t ID09Jycgb3IgIGMuaW5oZXJpdGVkZnJvbSA9PSBOb25lIG9yICBjLmluaGVy aXRlZGZyb20gPT0gJ05vbmUnICkgJX0KKworQUxURVIgRk9SRUlHTiBUQUJM RSB7eyBjb25ufHF0SWRlbnQob19kYXRhLmJhc2Vuc3AsIG5hbWUpIH19CitB REQgQ09MVU1OIHt7Y29ubnxxdElkZW50KGMuYXR0bmFtZSl9fSB7eyBjb25u fHF0VHlwZUlkZW50KGMuZGF0YXR5cGUpIH19eyUgaWYgYy50eXBsZW4gJX0o e3tjLnR5cGxlbn19IHslIGlmIGMucHJlY2lzaW9uICV9LCB7e2MucHJlY2lz aW9ufX17JSBlbmRpZiAlfSl7JSBlbmRpZiAlfQoreyUgaWYgYy5hdHRub3Ru dWxsICV9IE5PVCBOVUxMIHslIGVsc2UgJX0gTlVMTCB7JSBlbmRpZiAlfQor eyUgaWYgYy50eXBkZWZhdWx0ICV9IERFRkFVTFQge3tjLnR5cGRlZmF1bHR8 cXRMaXRlcmFsfX17JSBlbmRpZiAlfQoreyUgaWYgYy5jb2xsbmFtZSAlfSBD T0xMQVRFIHt7Yy5jb2xsbmFtZX19eyUgZW5kaWYgJX07Cit7JSBlbmRpZiAl fQoreyUgZW5kZm9yIC0lfQorCit7JSBmb3IgYyBpbiBkYXRhLmNvbHVtbnMu Y2hhbmdlZCAlfQorCitBTFRFUiBGT1JFSUdOIFRBQkxFIHt7IGNvbm58cXRJ ZGVudChvX2RhdGEuYmFzZW5zcCwgbmFtZSkgfX0KK0RST1AgQ09MVU1OIHt7 Y29ubnxxdElkZW50KG9fZGF0YVsnY29sdW1ucyddW2MuYXR0bnVtXVsnYXR0 bmFtZSddKX19OworCitBTFRFUiBGT1JFSUdOIFRBQkxFIHt7IGNvbm58cXRJ ZGVudChvX2RhdGEuYmFzZW5zcCwgbmFtZSkgfX0KK0FERCBDT0xVTU4ge3tj b25ufHF0SWRlbnQoYy5hdHRuYW1lKX19IHt7IGNvbm58cXRUeXBlSWRlbnQo Yy5kYXRhdHlwZSkgfX17JSBpZiBjLnR5cGxlbiAlfSh7e2MudHlwbGVufX0g eyUgaWYgYy5wcmVjaXNpb24gJX0sIHt7Yy5wcmVjaXNpb259fXslIGVuZGlm ICV9KXslIGVuZGlmICV9Cit7JSBpZiBjLmF0dG5vdG51bGwgJX0gTk9UIE5V TEwgeyUgZWxzZSAlfSBOVUxMIHslIGVuZGlmICV9Cit7JSBpZiBjLnR5cGRl ZmF1bHQgJX0gREVGQVVMVCB7e2MudHlwZGVmYXVsdHxxdExpdGVyYWx9fXsl IGVuZGlmICV9Cit7JSBpZiBjLmNvbGxuYW1lICV9IENPTExBVEUge3tjLmNv bGxuYW1lfX17JSBlbmRpZiAlfTsKK3slIGVuZGZvciAlfQorCit7JSBlbmRp ZiAtJX0KKworeyUgaWYgZGF0YS5pbmhlcml0cyBhbmQgZGF0YS5pbmhlcml0 c3xsZW5ndGggPiAwJX0KK3slIGZvciBpIGluIGRhdGEuaW5oZXJpdHMgJX17 JSBpZiBpIG5vdCBpbiBvX2RhdGEuaW5oZXJpdHMgJX17JSBpZiBpICV9CisK K0FMVEVSIEZPUkVJR04gVEFCTEV7eyBjb25ufHF0SWRlbnQob19kYXRhLmJh c2Vuc3AsIG5hbWUpIH19IElOSEVSSVQge3tpfX07eyUgZW5kaWYgJX17JSBl bmRpZiAlfXslIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGlmIG9f ZGF0YS5pbmhlcml0cyBhbmQgJ2luaGVyaXRzJyBpbiBkYXRhICV9Cit7JSBp ZiBkYXRhLmluaGVyaXRzID09IE5vbmUgb3IgZGF0YS5pbmhlcml0cyA9PSAn Tm9uZScgJX0KK3slIHNldCBpbmhlcml0cyA9ICcnICV9Cit7JSBlbHNlICV9 Cit7JSBzZXQgaW5oZXJpdHMgPSBkYXRhLmluaGVyaXRzICV9Cit7JSBlbmRp ZiAlfQoreyUgZm9yIGkgaW4gb19kYXRhLmluaGVyaXRzICV9eyUgaWYgaSBu b3QgaW4gaW5oZXJpdHMgJX17JSBpZiBpICV9CisKK0FMVEVSIEZPUkVJR04g VEFCTEUge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSB9 fSBOTyBJTkhFUklUIHt7aX19O3slIGVuZGlmICV9eyUgZW5kaWYgJX17JSBl bmRmb3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLmNvbnN0cmFp bnRzICV9Cit7JSBmb3IgYyBpbiBkYXRhLmNvbnN0cmFpbnRzLmRlbGV0ZWQg JX0KKworQUxURVIgRk9SRUlHTiBUQUJMRSB7eyBjb25ufHF0SWRlbnQob19k YXRhLmJhc2Vuc3AsIG5hbWUpIH19CitEUk9QIENPTlNUUkFJTlQge3tjb25u fHF0SWRlbnQoYy5jb25uYW1lKX19OworeyUgZW5kZm9yIC0lfQorCit7JSBm b3IgYyBpbiBkYXRhLmNvbnN0cmFpbnRzLmFkZGVkICV9CisKK0FMVEVSIEZP UkVJR04gVEFCTEUge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBu YW1lKSB9fQorQUREIENPTlNUUkFJTlQge3tjb25ufHF0SWRlbnQoYy5jb25u YW1lKX19IHslIGlmIGMuY29uc3JjICV9IENIRUNLICh7e2MuY29uc3JjfX0p eyUgZW5kaWYgJX0geyUgaWYgYy5jb25ub2luaGVyaXQgJX0gTk8gSU5IRVJJ VHslIGVuZGlmICV9OworeyUgZW5kZm9yICV9CisKK3slIGVuZGlmIC0lfQor CisKK3slIGlmIGRhdGEuZnRvcHRpb25zICV9Cit7JSBmb3IgbyBpbiBkYXRh LmZ0b3B0aW9ucy5kZWxldGVkICV9Cit7JSBpZiBvLm9wdGlvbiBhbmQgby52 YWx1ZSAlfQorCitBTFRFUiBGT1JFSUdOIFRBQkxFIHt7IGNvbm58cXRJZGVu dChvX2RhdGEuYmFzZW5zcCwgbmFtZSkgfX0KK09QVElPTlMgKCBEUk9QIHt7 by5vcHRpb259fSB7e28udmFsdWV8cXRMaXRlcmFsfX0pOworeyUgZW5kaWYg JX0KK3slIGVuZGZvciAtJX0KKworeyUgZm9yIG8gaW4gZGF0YS5mdG9wdGlv bnMuYWRkZWQgJX0KK3slIGlmIG8ub3B0aW9uIGFuZCBvLnZhbHVlICV9CitB TFRFUiBGT1JFSUdOIFRBQkxFIHt7IGNvbm58cXRJZGVudChvX2RhdGEuYmFz ZW5zcCwgbmFtZSkgfX0KK09QVElPTlMgKEFERCB7e28ub3B0aW9ufX0ge3tv LnZhbHVlfHF0TGl0ZXJhbH19KTsKK3slIGVuZGlmICV9Cit7JSBlbmRmb3Ig JX0KKworeyUgZm9yIG8gaW4gZGF0YS5mdG9wdGlvbnMuY2hhbmdlZCAlfQor eyUgaWYgby5vcHRpb24gYW5kIG8udmFsdWUgJX0KK0FMVEVSIEZPUkVJR04g VEFCTEUge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSB9 fQorT1BUSU9OUyAoU0VUIHt7by5vcHRpb259fSB7e28udmFsdWV8cXRMaXRl cmFsfX0pOworeyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQorCit7JSBlbmRp ZiAtJX0KKworeyUgc2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9 Cit7JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMu ZGVsZXRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMu ZGVsZXRlZCAlfQore3sgU0VDTEFCTEUuRFJPUChjb25uLCAnRk9SRUlHTiBU QUJMRScsIGNvbm58cXRJZGVudChvX2RhdGEuYmFzZW5zcCwgbmFtZSksIHIu cHJvdmlkZXIpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBp ZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxl bmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQor e3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ0ZPUkVJR04gVEFCTEUnLCBjb25u fHF0SWRlbnQob19kYXRhLmJhc2Vuc3AsIG5hbWUpLCByLnByb3ZpZGVyLCBy LmxhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYg J2NoYW5nZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmNoYW5nZWR8 bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmNoYW5nZWQg JX0KK3t7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdGT1JFSUdOIFRBQkxFJywg Y29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSwgci5wcm92aWRl ciwgci5sYWJlbCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CisK K3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKworQ09NTUVOVCBPTiBGT1JF SUdOIFRBQkxFIHt7IGNvbm58cXRJZGVudChvX2RhdGEuYmFzZW5zcCwgbmFt ZSkgfX0KK0lTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFsIH19Owor eyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuYmFzZW5zcCAlfQorQUxURVIg Rk9SRUlHTiBUQUJMRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLmJhc2Vuc3As IG5hbWUpIH19CitTRVQgU0NIRU1BIHt7IGNvbm58cXRJZGVudChkYXRhLmJh c2Vuc3ApIH19OworeyUgZW5kaWYgJX0KKworeyUgZW5kaWYgJX0K --001a11c38c087da59e052c6fdbcf 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 --001a11c38c087da59e052c6fdbcf--