Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84) (envelope-from ) id 1adHrC-0000Vx-Hx for pgadmin-hackers@arkaria.postgresql.org; Tue, 08 Mar 2016 13:39:27 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1adHrB-0004QQ-Vh for pgadmin-hackers@arkaria.postgresql.org; Tue, 08 Mar 2016 13:39:26 +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 1adHql-0003eQ-U3 for pgadmin-hackers@postgresql.org; Tue, 08 Mar 2016 13:39:00 +0000 Received: from mail-qk0-x232.google.com ([2607:f8b0:400d:c09::232]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1adHqh-0002LT-ES for pgadmin-hackers@postgresql.org; Tue, 08 Mar 2016 13:38:59 +0000 Received: by mail-qk0-x232.google.com with SMTP id s68so5638131qkh.3 for ; Tue, 08 Mar 2016 05:38:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=MaOsQCkcrvyPRM2s5csYoCSrER5WukTv5UdKGVUdAQQ=; b=K/0BLQJvLntXbDLhsJSV8NoUIh0w9+Ew7ZRxJlEmC7EGdcMdFT8gVQoXIUSYNEInmO 3VaoCDk4DxFwWesa+tl+oi//6fRmbYR42BKGtD7zG2kMCBXhp/Au2Y7rLOLIofRCXEuK QLIwNU260WLS7YaeEv59QMQNbWFaT43C1RYxIERbnoqYf7XO0aFleNbpveyM28dqJI1A DKN3e37PJbwlXxfd3XyhoGiUXBrkvy5OJWbRXSAfrNAJvAibbov2Zdw0PuG4R0rO/5SD nJpJQOVUsSUftEzqYaTKiPaXSbHh1Ct14UstTQSPvJ/9iyvx7QeUHZZV5+4fc8x0OJzu j8kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=MaOsQCkcrvyPRM2s5csYoCSrER5WukTv5UdKGVUdAQQ=; b=Z95PY2Eeq+qPtSej3eNpbhrC6XZp73t47WAWF0UWka6OTWrX7I8Grns78f3Y/XF+E4 Q2gUF98L/OFBz3bMpUIFbfXgtOZ6Zt/i/A/Mv8IO925NKP5EoeCW7PIItWZgQP6cqhkG 6URW9qR1tEW99IaVVCy0KB8BaIngVGF06TtafkW/SfhiFv/8k9ARKG6cC5cG9291U89o tqn48yXijkwhqQ7u7YBCDEBgZldYlhOAtJj6RzMZPnRpm597WDj0VjKR9N0Z2/Mj5p/0 Cm8YYgLzBWcP34+pa9NH+DwbBOs4SOxrUt9yNynvtZ0htyM02bHzkd5re5nh7kIZ2XxJ 38PA== X-Gm-Message-State: AD7BkJKRj4P7iKfd9rYR44pHMNd6ysTbt5kAxP2zlBw+4xL6ddxuQxyNpsLqjS6vIcU0JPudPxOoW6B4aAk0wLQt X-Received: by 10.55.71.143 with SMTP id u137mr35900742qka.1.1457444333775; Tue, 08 Mar 2016 05:38:53 -0800 (PST) MIME-Version: 1.0 Received: by 10.55.128.132 with HTTP; Tue, 8 Mar 2016 05:38:34 -0800 (PST) From: Murtuza Zabuawala Date: Tue, 8 Mar 2016 19:08:34 +0530 Message-ID: Subject: PATCH: Added Node Type & Catalog objects [pgAdmin4] To: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a114a9cbecc7cc5052d89b353 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 --001a114a9cbecc7cc5052d89b353 Content-Type: multipart/alternative; boundary=001a114a9cbecc7cc0052d89b351 --001a114a9cbecc7cc0052d89b351 Content-Type: text/plain; charset=UTF-8 Hi, PFA patch to add new nodes in pgAdmin4. 1) Type node 2) Catalog objects *Note:* Both above nodes depended on schema/catalog node, Please apply them after latest patch of schema/catalog from Ashesh. - Type node also depends on parse_priv_function_templates.patch (which I sent in separate email today) -- Regards, Murtuza Zabuawala EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company --001a114a9cbecc7cc0052d89b351 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

PFA patch to add new nodes in pgAdm= in4.
1) Type node
2) Catalog objects

Note: Both above nodes depended on schema/catalog node= , Please apply them after latest patch of schema/catalog from Ashesh.
=
- Type node also depends on parse_priv_function_templates.patch (which= I sent in separate email today)


--Regards,
Murtuza Zabuawala
EnterpriseDB:=C2= =A0http://www.enterprisedb.com=
The Enterprise PostgreSQL Company

--001a114a9cbecc7cc0052d89b351-- --001a114a9cbecc7cc5052d89b353 Content-Type: application/octet-stream; name="type_node_v1.patch" Content-Disposition: attachment; filename="type_node_v1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iljgo1i20 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL19faW5pdF9fLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvX19pbml0X18ucHkKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjlmOTYyYgotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL19faW5pdF9fLnB5CkBA IC0wLDAgKzEsMTE3MCBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBD b3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9w bWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIg dGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKKworIiIiIEltcGxlbWVudHMgVHlwZSBOb2RlICIiIgor CitpbXBvcnQganNvbgorZnJvbSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBs YXRlLCBtYWtlX3Jlc3BvbnNlLCByZXF1ZXN0LCBqc29uaWZ5Citmcm9tIGZs YXNrLmV4dC5iYWJlbCBpbXBvcnQgZ2V0dGV4dAorZnJvbSBwZ2FkbWluLnV0 aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25zZSwgXAorICAgIG1h a2VfcmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZSwgaW50ZXJuYWxfc2VydmVy X2Vycm9yCitmcm9tIHBnYWRtaW4uYnJvd3Nlci51dGlscyBpbXBvcnQgUEdD aGlsZE5vZGVWaWV3Citmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudXRpbHMgXAorICAgIGlt cG9ydCBTY2hlbWFDaGlsZE1vZHVsZQoraW1wb3J0IHBnYWRtaW4uYnJvd3Nl ci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzIGFzIGRhdGFiYXNl Citmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu dXRpbHMgaW1wb3J0IHBhcnNlX3ByaXZfZnJvbV9kYiwgXAorICAgIHBhcnNl X3ByaXZfdG9fZGIKK2Zyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBw cmVjb25kaXRpb25fcmVxdWlyZWQKK2Zyb20gcGdhZG1pbi51dGlscy5kcml2 ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20gY29uZmlnIGltcG9ydCBQR19E RUZBVUxUX0RSSVZFUgorZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHdyYXBzCisK KworY2xhc3MgVHlwZU1vZHVsZShTY2hlbWFDaGlsZE1vZHVsZSk6CisgICAg IiIiCisgICAgIGNsYXNzIFR5cGVNb2R1bGUoU2NoZW1hQ2hpbGRNb2R1bGUp CisKKyAgICAgICAgQSBtb2R1bGUgY2xhc3MgZm9yIFR5cGUgbm9kZSBkZXJp dmVkIGZyb20gU2NoZW1hQ2hpbGRNb2R1bGUKKworICAgIE1ldGhvZHM6Cisg ICAgLS0tLS0tLQorICAgICogX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQor ICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZSBUeXBl IGFuZCBpdCdzIGJhc2UgbW9kdWxlLgorCisgICAgKiBnZXRfbm9kZXMoZ2lk LCBzaWQsIGRpZCwgc2NpZCwgdGlkKQorICAgICAgLSBNZXRob2QgaXMgdXNl ZCB0byBnZW5lcmF0ZSB0aGUgYnJvd3NlciBjb2xsZWN0aW9uIG5vZGUuCisK KyAgICAqIG5vZGVfaW5vZGUoKQorICAgICAgLSBNZXRob2QgaXMgb3ZlcnJp ZGRlbiBmcm9tIGl0cyBiYXNlIGNsYXNzIHRvIG1ha2UgdGhlIG5vZGUgYXMg bGVhZiBub2RlLgorCisgICAgKiBzY3JpcHRfbG9hZCgpCisgICAgICAtIExv YWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9yIHNjaGVtYSwgd2hlbiBhbnkgb2Yg dGhlIHNlcnZlciBub2RlIGlzCisgICAgICAgIGluaXRpYWxpemVkLgorICAg ICIiIgorCisgICAgTk9ERV9UWVBFID0gJ3R5cGUnCisgICAgQ09MTEVDVElP Tl9MQUJFTCA9IGdldHRleHQoIlR5cGVzIikKKworICAgIGRlZiBfX2luaXRf XyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAg ICAgTWV0aG9kIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgVHlwZU1vZHVs ZSBhbmQgaXQncyBiYXNlIG1vZHVsZS4KKworICAgICAgICBBcmdzOgorICAg ICAgICAgICAgKmFyZ3M6CisgICAgICAgICAgICAqKmt3YXJnczoKKyAgICAg ICAgIiIiCisgICAgICAgIHN1cGVyKFR5cGVNb2R1bGUsIHNlbGYpLl9faW5p dF9fKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5taW5fdmVyID0g Tm9uZQorICAgICAgICBzZWxmLm1heF92ZXIgPSBOb25lCisKKyAgICBkZWYg Z2V0X25vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAg ICAiIiIKKyAgICAgICAgR2VuZXJhdGUgdGhlIGNvbGxlY3Rpb24gbm9kZQor ICAgICAgICAiIiIKKyAgICAgICAgeWllbGQgc2VsZi5nZW5lcmF0ZV9icm93 c2VyX2NvbGxlY3Rpb25fbm9kZShzY2lkKQorCisgICAgQHByb3BlcnR5Cisg ICAgZGVmIHNjcmlwdF9sb2FkKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAg ICAgTG9hZCB0aGUgbW9kdWxlIHNjcmlwdCBmb3IgZGF0YWJhc2UsIHdoZW4g YW55IG9mIHRoZSBkYXRhYmFzZSBub2RlIGlzCisgICAgICAgIGluaXRpYWxp emVkLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIGRhdGFiYXNlLkRh dGFiYXNlTW9kdWxlLk5PREVfVFlQRQorCisgICAgQHByb3BlcnR5CisgICAg ZGVmIG5vZGVfaW5vZGUoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBM b2FkIHRoZSBtb2R1bGUgbm9kZSBhcyBhIGxlYWYgbm9kZQorICAgICAgICAi IiIKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBAcHJvcGVydHkKKyAg ICBkZWYgc2hvd19zeXN0ZW1fb2JqZWN0cyhzZWxmKToKKyAgICAgICAgIiIi CisgICAgICAgIEZsYWcgdG8gc2V0IHNob3cgc3lzdGVtIFR5cGUKKyAgICAg ICAgIiIiCisgICAgICAgIHJldHVybiBUcnVlCisKK2JsdWVwcmludCA9IFR5 cGVNb2R1bGUoX19uYW1lX18pCisKKworY2xhc3MgVHlwZVZpZXcoUEdDaGls ZE5vZGVWaWV3KToKKyAgICAiIiIKKyAgICBUaGlzIGNsYXNzIGlzIHJlc3Bv bnNpYmxlIGZvciBnZW5lcmF0aW5nIHJvdXRlcyBmb3IgVHlwZSBub2RlCisK KyAgICBNZXRob2RzOgorICAgIC0tLS0tLS0KKyAgICAqIF9faW5pdF9fKCoq a3dhcmdzKQorICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXpl IHRoZSBUeXBlVmlldyBhbmQgaXQncyBiYXNlIHZpZXcuCisKKyAgICAqIGNo ZWNrX3ByZWNvbmRpdGlvbigpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2ls bCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVja3MKKyAg ICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUgcnVubmluZyB2aWV3 LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKKyAgICAgICAgbWFuYWdlcixjb25u ICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYKKworICAgICog bGlzdCgpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBsaXN0 IGFsbCB0aGUgVHlwZSBub2RlcyB3aXRoaW4gdGhhdAorICAgICAgY29sbGVj dGlvbi4KKworICAgICogbm9kZXMoKQorICAgICAgLSBUaGlzIGZ1bmN0aW9u IHdpbGwgdXNlZCB0byBjcmVhdGUgYWxsIHRoZSBjaGlsZCBub2RlIHdpdGhp biB0aGF0CisgICAgICAgIGNvbGxlY3Rpb24sIEhlcmUgaXQgd2lsbCBjcmVh dGUgYWxsIHRoZSBUeXBlIG5vZGUuCisKKyAgICAqIHByb3BlcnRpZXMoZ2lk LCBzaWQsIGRpZCwgc2NpZCwgdGlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9u IHdpbGwgc2hvdyB0aGUgcHJvcGVydGllcyBvZiB0aGUgc2VsZWN0ZWQgVHlw ZSBub2RlCisKKyAgICAqIGNyZWF0ZShnaWQsIHNpZCwgZGlkLCBzY2lkKQor ICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgY3JlYXRlIHRoZSBuZXcgVHlw ZSBvYmplY3QKKworICAgICogdXBkYXRlKGdpZCwgc2lkLCBkaWQsIHNjaWQs IHRpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0aGUg ZGF0YSBmb3IgdGhlIHNlbGVjdGVkIFR5cGUgbm9kZQorCisgICAgKiBkZWxl dGUoc2VsZiwgZ2lkLCBzaWQsIHNjaWQsIHRpZCk6CisgICAgICAtIFRoaXMg ZnVuY3Rpb24gd2lsbCBkcm9wIHRoZSBUeXBlIG9iamVjdAorCisgICAgKiBt c3FsKGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCkKKyAgICAgIC0gVGhpcyBm dW5jdGlvbiBpcyB1c2VkIHRvIHJldHVybiBtb2RpZmllZCBTUUwgZm9yIHRo ZSBzZWxlY3RlZAorICAgICAgICBUeXBlIG5vZGUKKworICAgICogZ2V0X3Nx bChkYXRhLCBzY2lkLCB0aWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2ls bCBnZW5lcmF0ZSBzcWwgZnJvbSBtb2RlbCBkYXRhCisKKyAgICAqIHNxbChn aWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3 aWxsIGdlbmVyYXRlIHNxbCB0byBzaG93IGl0IGluIHNxbCBwYW5lIGZvciB0 aGUKKyAgICAgICAgc2VsZWN0ZWQgVHlwZSBub2RlLgorCisgICAgKiBkZXBl bmRlbmN5KGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCk6CisgICAgICAtIFRo aXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBkZXBlbmRlbmN5IGxpc3Qgc2hv dyBpdCBpbiBkZXBlbmRlbmN5CisgICAgICAgIHBhbmUgZm9yIHRoZSBzZWxl Y3RlZCBUeXBlIG5vZGUuCisKKyAgICAqIGRlcGVuZGVudChnaWQsIHNpZCwg ZGlkLCBzY2lkLCB0aWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwg Z2VuZXJhdGUgZGVwZW5kZW50IGxpc3QgdG8gc2hvdyBpdCBpbiBkZXBlbmRl bnQKKyAgICAgICAgcGFuZSBmb3IgdGhlIHNlbGVjdGVkIFR5cGUgbm9kZS4K KworICAgICogYWRkaXRpb25hbF9wcm9wZXJ0aWVzKGNvcHlfZGljdCwgdGlk KToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCBhZGRpdGlvbmFs IHByb3BlcnRpZXMgaW4gcmVzcG9uc2UKKworICAgICogZ2V0X2NvbGxhdGlv bnMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkKToKKyAgICAgIC0gVGhpcyBm dW5jdGlvbiB3aWxsIHJldHVybiBsaXN0IG9mIGNvbGxhdGlvbiBpbiBhamF4 IHJlc3BvbnNlCisKKyAgICAqIGdldF90eXBlcyhnaWQsIHNpZCwgZGlkLCBz Y2lkLCB0aWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJu IGxpc3Qgb2YgdHlwZXMgaW4gYWpheCByZXNwb25zZQorCisgICAgKiBnZXRf c3VidHlwZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkKToKKyAgICAgIC0g VGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBsaXN0IG9mIHN1YnR5cGVzIGlu IGFqYXggcmVzcG9uc2UKKworICAgICogZ2V0X3N1YnR5cGVfb3BjbGFzcyhn aWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQpOgorICAgICAgLSBUaGlzIGZ1bmN0 aW9uIHdpbGwgcmV0dXJuIGxpc3Qgb2Ygc3VidHlwZSBvcGNsYXNzIGluIGFq YXggcmVzcG9uc2UKKworICAgICogZ2V0X3N1YnR5cGVfZGlmZihnaWQsIHNp ZCwgZGlkLCBzY2lkLCB0aWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdp bGwgcmV0dXJuIGxpc3Qgb2Ygc3VidHlwZSBkaWZmIGZ1bmN0aW9ucworICAg ICAgICBpbiBhamF4IHJlc3BvbnNlCisKKyAgICAqIGdldF9jYW5vbmljYWwo Z2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkKToKKyAgICAgIC0gVGhpcyBmdW5j dGlvbiB3aWxsIHJldHVybiBsaXN0IG9mIGNhbm9uaWNhbCBmdW5jdGlvbnMK KyAgICAgICAgaW4gYWpheCByZXNwb25zZQorCisgICAgKiBnZXRfZXh0ZXJu YWxfZnVuY3Rpb25zX2xpc3QoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkKToK KyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBsaXN0IG9mIGV4 dGVybmFsIGZ1bmN0aW9ucworICAgICAgICBpbiBhamF4IHJlc3BvbnNlCisg ICAgIiIiCisKKyAgICBub2RlX3R5cGUgPSBibHVlcHJpbnQubm9kZV90eXBl CisKKyAgICBwYXJlbnRfaWRzID0gWworICAgICAgICAgICAgeyd0eXBlJzog J2ludCcsICdpZCc6ICdnaWQnfSwKKyAgICAgICAgICAgIHsndHlwZSc6ICdp bnQnLCAnaWQnOiAnc2lkJ30sCisgICAgICAgICAgICB7J3R5cGUnOiAnaW50 JywgJ2lkJzogJ2RpZCd9LAorICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcs ICdpZCc6ICdzY2lkJ30KKyAgICAgICAgICAgIF0KKyAgICBpZHMgPSBbCisg ICAgICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3RpZCd9CisgICAg ICAgICAgICBdCisKKyAgICBvcGVyYXRpb25zID0gZGljdCh7CisgICAgICAg ICdvYmonOiBbCisgICAgICAgICAgICB7J2dldCc6ICdwcm9wZXJ0aWVzJywg J2RlbGV0ZSc6ICdkZWxldGUnLCAncHV0JzogJ3VwZGF0ZSd9LAorICAgICAg ICAgICAgeydnZXQnOiAnbGlzdCcsICdwb3N0JzogJ2NyZWF0ZSd9CisgICAg ICAgIF0sCisgICAgICAgICdkZWxldGUnOiBbeydkZWxldGUnOiAnZGVsZXRl J31dLAorICAgICAgICAnY2hpbGRyZW4nOiBbeydnZXQnOiAnY2hpbGRyZW4n fV0sCisgICAgICAgICdub2Rlcyc6IFt7J2dldCc6ICdub2RlJ30sIHsnZ2V0 JzogJ25vZGVzJ31dLAorICAgICAgICAnc3FsJzogW3snZ2V0JzogJ3NxbCd9 XSwKKyAgICAgICAgJ21zcWwnOiBbeydnZXQnOiAnbXNxbCd9LCB7J2dldCc6 ICdtc3FsJ31dLAorICAgICAgICAnc3RhdHMnOiBbeydnZXQnOiAnc3RhdGlz dGljcyd9XSwKKyAgICAgICAgJ2RlcGVuZGVuY3knOiBbeydnZXQnOiAnZGVw ZW5kZW5jaWVzJ31dLAorICAgICAgICAnZGVwZW5kZW50JzogW3snZ2V0Jzog J2RlcGVuZGVudHMnfV0sCisgICAgICAgICdtb2R1bGUuanMnOiBbe30sIHt9 LCB7J2dldCc6ICdtb2R1bGVfanMnfV0sCisgICAgICAgICdnZXRfdHlwZXMn OiBbeydnZXQnOiAnZ2V0X3R5cGVzJ30sIHsnZ2V0JzogJ2dldF90eXBlcyd9 XSwKKyAgICAgICAgJ2dldF9zdHlwZXMnOiBbeydnZXQnOiAnZ2V0X3N1YnR5 cGVzJ30sIHsnZ2V0JzogJ2dldF9zdWJ0eXBlcyd9XSwKKyAgICAgICAgJ2dl dF9zdWJvcGNsYXNzJzogW3snZ2V0JzogJ2dldF9zdWJ0eXBlX29wY2xhc3Mn fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHsnZ2V0JzogJ2dldF9z dWJ0eXBlX29wY2xhc3MnfV0sCisgICAgICAgICdnZXRfc3R5cGVkaWZmJzog W3snZ2V0JzogJ2dldF9zdWJ0eXBlX2RpZmYnfSwgeydnZXQnOiAnZ2V0X3N1 YnR5cGVfZGlmZid9XSwKKyAgICAgICAgJ2dldF9jYW5vbmljYWwnOiBbeydn ZXQnOiAnZ2V0X2Nhbm9uaWNhbCd9LCB7J2dldCc6ICdnZXRfY2Fub25pY2Fs J31dLAorICAgICAgICAnZ2V0X2NvbGxhdGlvbnMnOiBbeydnZXQnOiAnZ2V0 X2NvbGxhdGlvbnMnfSwgeydnZXQnOiAnZ2V0X2NvbGxhdGlvbnMnfV0sCisg ICAgICAgICdnZXRfZXh0ZXJuYWxfZnVuY3Rpb25zJzogW3snZ2V0JzogJ2dl dF9leHRlcm5hbF9mdW5jdGlvbnNfbGlzdCd9LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7J2dldCc6ICdnZXRfZXh0ZXJuYWxfZnVu Y3Rpb25zX2xpc3QnfV0KKyAgICB9KQorCisgICAgZGVmIGNoZWNrX3ByZWNv bmRpdGlvbihmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rp b24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVj a3MKKyAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUgcnVubmlu ZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKKyAgICAgICAgbWFuYWdl cixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYKKyAg ICAgICAgIiIiCisgICAgICAgIEB3cmFwcyhmKQorICAgICAgICBkZWYgd3Jh cCgqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAgIyBIZXJlIGFyZ3Nb MF0gd2lsbCBob2xkIHNlbGYgJiBrd2FyZ3Mgd2lsbCBob2xkIGdpZCxzaWQs ZGlkCisgICAgICAgICAgICBzZWxmID0gYXJnc1swXQorICAgICAgICAgICAg c2VsZi5tYW5hZ2VyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUiku Y29ubmVjdGlvbl9tYW5hZ2VyKGt3YXJnc1snc2lkJ10pCisgICAgICAgICAg ICBzZWxmLmNvbm4gPSBzZWxmLm1hbmFnZXIuY29ubmVjdGlvbihkaWQ9a3dh cmdzWydkaWQnXSkKKworICAgICAgICAgICAgIyBXZSBuZWVkIGRhdGxhc3Rz eXNvaWQgdG8gY2hlY2sgaWYgY3VycmVudCB0eXBlIGlzIHN5c3RlbSB0eXBl CisgICAgICAgICAgICBzZWxmLmRhdGxhc3RzeXNvaWQgPSBzZWxmLm1hbmFn ZXIuZGJfaW5mb1trd2FyZ3NbJ2RpZCddXVsnZGF0bGFzdHN5c29pZCddCisK KyAgICAgICAgICAgICMgSWYgREIgbm90IGNvbm5lY3RlZCB0aGVuIHJldHVy biBlcnJvciB0byBicm93c2VyCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5j b25uLmNvbm5lY3RlZCgpOgorICAgICAgICAgICAgICAgIHJldHVybiBwcmVj b25kaXRpb25fcmVxdWlyZWQoCisgICAgICAgICAgICAgICAgICAgIGdldHRl eHQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbm5lY3Rpb24g dG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0ISIKKyAgICAgICAgICAgICAg ICAgICAgKQorICAgICAgICAgICAgICAgICkKKworICAgICAgICAgICAgIyBE ZWNsYXJlIGFsbG93cyBhY2wgb24gdHlwZQorICAgICAgICAgICAgc2VsZi5h Y2wgPSBbJ1UnXQorCisgICAgICAgICAgICAjIHdlIHdpbGwgc2V0IHRlbXBs YXRlIHBhdGggZm9yIHNxbCBzY3JpcHRzCisgICAgICAgICAgICB2ZXIgPSBz ZWxmLm1hbmFnZXIudmVyc2lvbgorICAgICAgICAgICAgaWYgOTAwMDAgPj0g dmVyIDwgOTAxMDA6CisgICAgICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9w YXRoID0gJ3R5cGUvc3FsL3ByZV85LjEnCisgICAgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9ICd0eXBlL3Nx bC85LjFfcGx1cycKKyAgICAgICAgICAgIHJldHVybiBmKCphcmdzLCAqKmt3 YXJncykKKworICAgICAgICByZXR1cm4gd3JhcAorCisgICAgQGNoZWNrX3By ZWNvbmRpdGlvbgorICAgIGRlZiBsaXN0KHNlbGYsIGdpZCwgc2lkLCBkaWQs IHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBp cyB1c2VkIHRvIGxpc3QgYWxsIHRoZSBzY2hlbWEgbm9kZXMgd2l0aGluIHRo YXQgY29sbGVjdGlvbi4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAg Z2lkOiBTZXJ2ZXIgZ3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVy IElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAg ICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAgIHRpZDogVHlwZSBJRAor CisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBKU09OIG9mIGF2YWls YWJsZSBzY2hlbWEgbm9kZXMKKyAgICAgICAgIiIiCisKKyAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3Bh dGgsICdwcm9wZXJ0aWVzLnNxbCddKSwgc2NpZD1zY2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGF0bGFzdHN5c29pZD1zZWxmLmRhdGxh c3RzeXNvaWQpCisgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4 ZWN1dGVfZGljdChTUUwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9cmVzKQorICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAg ICAgICAgICAgICByZXNwb25zZT1yZXNbJ3Jvd3MnXSwKKyAgICAgICAgICAg ICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCisgICAgQGNo ZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBub2RlcyhzZWxmLCBnaWQsIHNp ZCwgZGlkLCBzY2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVu Y3Rpb24gd2lsbCB1c2VkIHRvIGNyZWF0ZSBhbGwgdGhlIGNoaWxkIG5vZGUg d2l0aGluIHRoYXQgY29sbGVjdGlvbi4KKyAgICAgICAgSGVyZSBpdCB3aWxs IGNyZWF0ZSBhbGwgdGhlIHNjaGVtYSBub2RlLgorCisgICAgICAgIEFyZ3M6 CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAg ICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2Ug SUQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAorICAgICAgICAgICAg dGlkOiBUeXBlIElECisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAg IEpTT04gb2YgYXZhaWxhYmxlIHR5cGUgY2hpbGQgbm9kZXMKKyAgICAgICAg IiIiCisKKyAgICAgICAgcmVzID0gW10KKyAgICAgICAgU1FMID0gcmVuZGVy X3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vZGVzLnNx bCddKSwgc2NpZD1zY2lkKQorICAgICAgICBzdGF0dXMsIHJzZXQgPSBzZWxm LmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoZXJyb3Jtc2c9cnNldCkKKworICAgICAgICBmb3Igcm93IGluIHJzZXRb J3Jvd3MnXToKKyAgICAgICAgICAgIHJlcy5hcHBlbmQoCisgICAgICAgICAg ICAgICAgICAgIHNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9k ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvd1snb2lkJ10sCisgICAg ICAgICAgICAgICAgICAgICAgICBzY2lkLAorICAgICAgICAgICAgICAgICAg ICAgICAgcm93WyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICBp Y29uPSJpY29uLXR5cGUiCisgICAgICAgICAgICAgICAgICAgICkpCisKKyAg ICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAg ICAgICBkYXRhPXJlcywKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisg ICAgICAgICAgICAgICAgKQorCisgICAgZGVmIGFkZGl0aW9uYWxfcHJvcGVy dGllcyhzZWxmLCBjb3B5X2RpY3QsIHRpZCk6CisgICAgICAgICIiIgorICAg ICAgICBXZSB3aWxsIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIGFkZCBhZGRpdGlv bmFsIHByb3BlcnRpZXMgYWNjb3JkaW5nIHRvIHR5cGUKKworICAgICAgICBS ZXR1cm5zOgorICAgICAgICAgICAgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIGZv ciB0eXBlIGxpa2UgcmFuZ2UvY29tcG9zaXRlL2VudW0KKworICAgICAgICAi IiIKKyAgICAgICAgIyBGZXRjaGluZyB0eXBlIG9mIHR5cGUKKyAgICAgICAg b2ZfdHlwZSA9IGNvcHlfZGljdFsndHlwdHlwZSddCisgICAgICAgIHJlcyA9 IGRpY3QoKQorICAgICAgICAjIElmIHR5cGUgaXMgb2YgQ29tcG9zaXRlIHRo ZW4gd2UgbmVlZCB0byBhZGQgbWVtYmVycyBsaXN0IGluIG91ciBvdXRwdXQK KyAgICAgICAgaWYgb2ZfdHlwZSA9PSAnYyc6CisgICAgICAgICAgICBTUUwg PSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0 aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ2FkZGl0aW9uYWxfcHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0nYycsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdHlwcmVsaWQ9Y29weV9kaWN0Wyd0 eXByZWxpZCddKQorICAgICAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5j b25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisgICAgICAgICAgICBpZiBub3Qg c3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICAjIFRvIGRp c3BsYXkgaW4gcHJvcGVydGllcworICAgICAgICAgICAgcHJvcGVydGllc19s aXN0ID0gW10KKyAgICAgICAgICAgICMgVG8gZGlzcGxheSBpbiBjb21wb3Np dGUgY29sbGVjdGlvbiBncmlkCisgICAgICAgICAgICBjb21wb3NpdGVfbHN0 ID0gW10KKworICAgICAgICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106 CisgICAgICAgICAgICAgICAgdHlwZWxpc3QgPSAnICcuam9pbihbcm93Wydh dHRuYW1lJ10sIHJvd1sndHlwbmFtZSddXSkKKyAgICAgICAgICAgICAgICBp ZiBub3Qgcm93Wydjb2xsbmFtZSddIG9yIChyb3dbJ2NvbGxuYW1lJ10gPT0g J2RlZmF1bHQnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYW5kIHJvd1snY29sbG5zcG5hbWUnXSA9PSAncGdfY2F0YWxv ZycpOgorICAgICAgICAgICAgICAgICAgICBmdWxsX2NvbGxhdGUgPSAnJwor ICAgICAgICAgICAgICAgICAgICBjb2xsYXRlID0gJycKKyAgICAgICAgICAg ICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBmdWxsX2NvbGxhdGUg PSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKS5xdElkZW50KAorICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb25uLCByb3dbJ2NvbGxuc3Bu YW1lJ10sIHJvd1snY29sbG5hbWUnXSkKKyAgICAgICAgICAgICAgICAgICAg Y29sbGF0ZSA9ICcgQ09MTEFURSAnICsgZnVsbF9jb2xsYXRlCisgICAgICAg ICAgICAgICAgdHlwZWxpc3QgKz0gY29sbGF0ZQorICAgICAgICAgICAgICAg IHByb3BlcnRpZXNfbGlzdC5hcHBlbmQodHlwZWxpc3QpCisKKyAgICAgICAg ICAgICAgICAjIEJlbG93IGxvZ2ljIHdpbGwgYWxsb3cgdXMgdG8gc3BsaXQg bGVuZ3RoLCBwcmVjaXNpb24gZnJvbSB0eXBlIG5hbWUgZm9yIGdyaWQKKyAg ICAgICAgICAgICAgICBpbXBvcnQgcmUKKyAgICAgICAgICAgICAgICBtYXRj aE9iaiA9IHJlLm1hdGNoKCByJyguKilcKCguKj8pLCguKj8pXCknLCByb3db J3R5cG5hbWUnXSkKKyAgICAgICAgICAgICAgICBpZiBtYXRjaE9iajoKKyAg ICAgICAgICAgICAgICAgICAgdF9uYW1lID0gbWF0Y2hPYmouZ3JvdXAoMSkK KyAgICAgICAgICAgICAgICAgICAgdF9sZW4gPSBtYXRjaE9iai5ncm91cCgy KQorICAgICAgICAgICAgICAgICAgICB0X3ByZWMgPSBtYXRjaE9iai5ncm91 cCgzKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg ICAgIHRfbmFtZSA9IHJvd1sndHlwbmFtZSddCisgICAgICAgICAgICAgICAg ICAgIHRfbGVuID0gTm9uZQorICAgICAgICAgICAgICAgICAgICB0X3ByZWMg PSBOb25lCisKKyAgICAgICAgICAgICAgICBjb21wb3NpdGVfbHN0LmFwcGVu ZCh7CisgICAgICAgICAgICAgICAgICAgICdtZW1iZXJfbmFtZSc6IHJvd1sn YXR0bmFtZSddLCAndHlwZSc6IHRfbmFtZSwgJ2NvbGxhdGlvbic6IGZ1bGxf Y29sbGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgJ3RsZW5ndGgnOiB0X2xl biwgJ3ByZWNpc2lvbic6IHRfcHJlYyB9KQorCisgICAgICAgICAgICAjIEFk ZGluZyBib3RoIHJlc3VsdHMKKyAgICAgICAgICAgIHJlc1snbWVtYmVyX2xp c3QnXSA9ICcsJy5qb2luKHByb3BlcnRpZXNfbGlzdCkKKyAgICAgICAgICAg IHJlc1snY29tcG9zaXRlJ10gPSBjb21wb3NpdGVfbHN0CisKKyAgICAgICAg IyBJZiB0eXBlIGlzIG9mIEVOVU0gdGhlbiB3ZSBuZWVkIHRvIGFkZCBsYWJl bHMgaW4gb3VyIG91dHB1dAorICAgICAgICBpZiBvZl90eXBlID09ICdlJzoK KyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnYWRkaXRpb25hbF9wcm9wZXJ0aWVzLnNx bCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBl PSdlJywgdGlkPXRpZCkKKyAgICAgICAgICAgIHN0YXR1cywgcnNldCA9IHNl bGYuY29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQorICAgICAgICAgICAgaWYg bm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgICAgICMgVG8g ZGlzcGxheSBpbiBwcm9wZXJ0aWVzCisgICAgICAgICAgICBwcm9wZXJ0aWVz X2xpc3QgPSBbXQorICAgICAgICAgICAgIyBUbyBkaXNwbGF5IGluIGVudW0g Z3JpZAorICAgICAgICAgICAgZW51bV9saXN0ID0gW10KKyAgICAgICAgICAg IGZvciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgICAgIHBy b3BlcnRpZXNfbGlzdC5hcHBlbmQocm93WydlbnVtbGFiZWwnXSkKKyAgICAg ICAgICAgICAgICBlbnVtX2xpc3QuYXBwZW5kKHsnbGFiZWwnOiByb3dbJ2Vu dW1sYWJlbCddfSkKKworICAgICAgICAgICAgIyBBZGRpbmcgYm90aCByZXN1 bHRzIGluIG91cHV0CisgICAgICAgICAgICByZXNbJ2VudW1fbGlzdCddID0g JywnLmpvaW4ocHJvcGVydGllc19saXN0KQorICAgICAgICAgICAgcmVzWydl bnVtJ10gPSBlbnVtX2xpc3QKKworICAgICAgICAjIElmIHR5cGUgaXMgb2Yg UmFuZ2UgdGhlbiB3ZSBuZWVkIHRvIGFkZCBjb2xsYXRpb24sc3VidHlwZSBl dGMgaW4gb3VyIG91dHB1dAorICAgICAgICBpZiBvZl90eXBlID09ICdyJzoK KyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnYWRkaXRpb25hbF9wcm9wZXJ0aWVzLnNx bCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBl PSdyJywgdGlkPXRpZCkKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2Vs Zi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisgICAgICAgICAgICBpZiBub3Qg c3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAgICAgcmFuZ2VfZGlj dCA9IGRpY3QocmVzWydyb3dzJ11bMF0pCisgICAgICAgICAgICByZXMudXBk YXRlKHJhbmdlX2RpY3QpCisKKyAgICAgICAgIyBSZXR1cm5pbmcgb25seSBh ZGRpdGlvbmFsIHByb3BlcnRpZXMgb25seQorICAgICAgICByZXR1cm4gcmVz CisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHByb3BlcnRp ZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkKToKKyAgICAgICAg IiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBzaG93IHRoZSBwcm9w ZXJ0aWVzIG9mIHRoZSBzZWxlY3RlZCBzY2hlbWEgbm9kZS4KKworICAgICAg ICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAg ICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6ICBE YXRhYmFzZSBJRAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElECisgICAg ICAgICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAgIHRpZDogVHlw ZSBJRAorCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBKU09OIG9m IHNlbGVjdGVkIHNjaGVtYSBub2RlCisgICAgICAgICIiIgorCisgICAgICAg IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdwcm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNjaWQ9c2NpZCwgdGlkPXRpZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRhdGxhc3RzeXNvaWQ9c2VsZi5kYXRsYXN0c3lz b2lkKQorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRl X2RpY3QoU1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAg ICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMp CisKKyAgICAgICAgIyBNYWtpbmcgY29weSBvZiBvdXRwdXQgZm9yIGZ1dHVy ZSB1c2UKKyAgICAgICAgY29weV9kaWN0ID0gZGljdChyZXNbJ3Jvd3MnXVsw XSkKKworICAgICAgICAjIFdlIG5lZWQgdG8gcGFyc2UgJiBjb252ZXJ0IEFD TCBjb21pbmcgZnJvbSBkYXRhYmFzZSB0byBqc29uIGZvcm1hdAorICAgICAg ICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxh dGVfcGF0aCwgJ2FjbC5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzY2lkPXNjaWQsIHRpZD10aWQpCisgICAgICAgIHN0YXR1cywg YWNsID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPWFjbCkKKworICAgICAgICAjIFdlIHdpbGwg c2V0IGdldCBwcml2aWxlZ2VzIGZyb20gYWNsIHNxbCBzbyB3ZSBkb24ndCBu ZWVkCisgICAgICAgICMgaXQgZnJvbSBwcm9wZXJ0aWVzIHNxbAorICAgICAg ICBjb3B5X2RpY3RbJ3R5cGFjbCddID0gW10KKworCisgICAgICAgIGZvciBy b3cgaW4gYWNsWydyb3dzJ106CisgICAgICAgICAgICBwcml2ID0gcGFyc2Vf cHJpdl9mcm9tX2RiKHJvdykKKyAgICAgICAgICAgIGlmIHJvd1snZGVmdHlw ZSddIGluIGNvcHlfZGljdDoKKyAgICAgICAgICAgICAgICBjb3B5X2RpY3Rb cm93WydkZWZ0eXBlJ11dLmFwcGVuZChwcml2KQorICAgICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICAgICBjb3B5X2RpY3Rbcm93WydkZWZ0eXBlJ11d ID0gW3ByaXZdCisKKyAgICAgICAgIyBDYWxsaW5nIGZ1bmN0aW9uIHRvIGNo ZWNrIGFuZCBhZGRpdGlvbmFsIHByb3BlcnRpZXMgaWYgYXZhaWxhYmxlCisg ICAgICAgIGNvcHlfZGljdC51cGRhdGUoc2VsZi5hZGRpdGlvbmFsX3Byb3Bl cnRpZXMoY29weV9kaWN0LCB0aWQpKQorCisgICAgICAgIHJldHVybiBhamF4 X3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIHJlc3BvbnNlPWNvcHlfZGlj dCwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAg ICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBnZXRf Y29sbGF0aW9ucyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQ9Tm9u ZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwg cmV0dXJuIGxpc3Qgb2YgY29sbGF0aW9uIGF2YWlsYWJsZQorICAgICAgICBh cyBBSkFYIHJlc3BvbnNlLgorICAgICAgICAiIiIKKyAgICAgICAgcmVzID0g W3snbGFiZWwnOiAnJywgJ3ZhbHVlJzogJyd9XQorICAgICAgICB0cnk6Cisg ICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3Nl bGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJ2dldF9jb2xsYXRpb25zLnNxbCddKSkKKyAg ICAgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlXzJk YXJyYXkoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y bXNnPXJlcykKKworICAgICAgICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dz J106CisgICAgICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7J2xhYmVsJzogcm93Wydjb2xsYXRpb24nXSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJzogcm93Wydj b2xsYXRpb24nXX0KKyAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAg ICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAg ICAgICAgICAgIGRhdGE9cmVzLAorICAgICAgICAgICAgICAgICAgICBzdGF0 dXM9MjAwCisgICAgICAgICAgICAgICAgICAgICkKKworICAgICAgICBleGNl cHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVj a19wcmVjb25kaXRpb24KKyAgICBkZWYgZ2V0X3R5cGVzKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHNjaWQsIHRpZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAg ICAgIFRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gbGlzdCBvZiB0eXBlcyBh dmFpbGFibGUKKyAgICAgICAgYXMgQUpBWCByZXNwb25zZS4KKyAgICAgICAg IiIiCisgICAgICAgIHJlcyA9IFtdCisgICAgICAgIHRyeToKKyAgICAgICAg ICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1w bGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnZ2V0X3R5cGVzLnNxbCddKSkKKyAgICAgICAgICAgIHN0 YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQor ICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKwor ICAgICAgICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAg ICAgICAgICAgIyBBdHRhY2hpbmcgcHJvcGVydGllcyBmb3IgcHJlY2Vzc2lv bgorICAgICAgICAgICAgICAgICMgJiBsZW5ndGggdmFsaWRhdGlvbiBmb3Ig Y3VycmVudCB0eXBlCisgICAgICAgICAgICAgICAgcHJlY2lzaW9uID0gRmFs c2UKKyAgICAgICAgICAgICAgICBsZW5ndGggPSBGYWxzZQorICAgICAgICAg ICAgICAgIG1pbl92YWwgPSAwCisgICAgICAgICAgICAgICAgbWF4X3ZhbCA9 IDAKKworICAgICAgICAgICAgICAgICMgQ2hlY2sgYWdhaW5zdCBQR09JRCBm b3Igc3BlY2lmaWMgdHlwZQorICAgICAgICAgICAgICAgIGlmIHJvd1snZWxl bW9pZCddOgorICAgICAgICAgICAgICAgICAgICBpZiByb3dbJ2VsZW1vaWQn XSBpbiAoMTU2MCwgMTU2MSwgMTU2MiwgMTU2MywgMTA0MiwgMTA0MywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMTQs IDEwMTUpOgorICAgICAgICAgICAgICAgICAgICAgICAgdHlwZXZhbCA9ICdM JworICAgICAgICAgICAgICAgICAgICBlbGlmIHJvd1snZWxlbW9pZCddIGlu ICgxMDgzLCAxMTE0LCAxMTE1LCAxMTgzLCAxMTg0LCAxMTg1LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMTg2LCAx MTg3LCAxMjY2LCAxMjcwKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5 cGV2YWwgPSAnRCcKKyAgICAgICAgICAgICAgICAgICAgZWxpZiByb3dbJ2Vs ZW1vaWQnXSBpbiAoMTIzMSwgMTcwMCk6CisgICAgICAgICAgICAgICAgICAg ICAgICB0eXBldmFsID0gJ1AnCisgICAgICAgICAgICAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBldmFsID0gJyAnCisKKyAg ICAgICAgICAgICAgICAjIExvZ2ljIHRvIHNldCBwcmVjaXNpb24gJiBsZW5n dGgvbWluL21heCB2YWx1ZXMKKyAgICAgICAgICAgICAgICBpZiB0eXBldmFs ID09ICdQJzoKKyAgICAgICAgICAgICAgICAgICAgcHJlY2lzaW9uID0gVHJ1 ZQorCisgICAgICAgICAgICAgICAgaWYgcHJlY2lzaW9uIG9yIHR5cGV2YWwg aW4gKCdMJywgJ0QnKToKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0g VHJ1ZQorICAgICAgICAgICAgICAgICAgICBtaW5fdmFsID0gMCBpZiB0eXBl dmFsID09ICdEJyBlbHNlIDEKKyAgICAgICAgICAgICAgICAgICAgaWYgcHJl Y2lzaW9uOgorICAgICAgICAgICAgICAgICAgICAgICAgbWF4X3ZhbCA9IDEw MDAKKyAgICAgICAgICAgICAgICAgICAgZWxpZiBtaW5fdmFsOgorICAgICAg ICAgICAgICAgICAgICAgICAgIyBNYXggb2YgaW50ZWdlciB2YWx1ZQorICAg ICAgICAgICAgICAgICAgICAgICAgbWF4X3ZhbCA9IDIxNDc0ODM2NDcKKyAg ICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAg ICAgIG1heF92YWwgPSAxMAorCisgICAgICAgICAgICAgICAgcmVzLmFwcGVu ZCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J2xhYmVsJzogcm93 Wyd0eXBuYW1lJ10sICd2YWx1ZSc6IHJvd1sndHlwbmFtZSddLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAndHlwdmFsJzogdHlwZXZhbCwgJ3By ZWNpc2lvbic6IHByZWNpc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ2xlbmd0aCc6IGxlbmd0aCwgJ21pbl92YWwnOiBtaW5fdmFsLCAn bWF4X3ZhbCc6IG1heF92YWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgKQorCisgICAgICAgICAg ICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAg ICAgICBkYXRhPXJlcywKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTIw MAorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgIGV4Y2VwdCBFeGNl cHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNv bmRpdGlvbgorICAgIGRlZiBnZXRfc3VidHlwZXMoc2VsZiwgZ2lkLCBzaWQs IGRpZCwgc2NpZCwgdGlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAg VGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBsaXN0IG9mIHN1YnR5cGVzIGF2 YWlsYWJsZQorICAgICAgICBhcyBBSkFYIHJlc3BvbnNlLgorICAgICAgICAi IiIKKyAgICAgICAgcmVzID0gW3snbGFiZWwnOiAnJywgJ3ZhbHVlJzogJyd9 XQorICAgICAgICB0cnk6CisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVt cGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9zdWJ0 eXBlcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3VidHlwZT1UcnVlKQorICAgICAgICAgICAgc3RhdHVzLCByc2V0ID0g c2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisgICAgICAgICAgICBp ZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICBm b3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgICAgICByZXMu YXBwZW5kKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsnbGFiZWwn OiByb3dbJ3N0eXBlJ10sICd2YWx1ZSc6IHJvd1snc3R5cGUnXSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ2lzX2NvbGxhdGUnOiByb3dbJ2lz X2NvbGxhdGUnXX0KKyAgICAgICAgICAgICAgICAgICAgICAgICkKKworICAg ICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAg ICAgICAgICAgICAgZGF0YT1yZXMsCisgICAgICAgICAgICAgICAgICAgIHN0 YXR1cz0yMDAKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICBleGNl cHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVj a19wcmVjb25kaXRpb24KKyAgICBkZWYgZ2V0X3N1YnR5cGVfb3BjbGFzcyhz ZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQ9Tm9uZSk6CisgICAgICAg ICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGxpc3Qg b2Ygc3VidHlwZSBvcGNsYXNzIGF2YWlsYWJsZQorICAgICAgICBhcyBBSkFY IHJlc3BvbnNlLgorICAgICAgICAiIiIKKyAgICAgICAgcmVzID0gW3snbGFi ZWwnOiAnJywgJ3ZhbHVlJzogJyd9XQorICAgICAgICBkYXRhID0gcmVxdWVz dC5hcmdzCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgU1FMID0gcmVu ZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdn ZXRfc3VidHlwZXMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN1YnR5cGVfb3BjbGFzcz1UcnVlLCBkYXRhPWRhdGEpCisg ICAgICAgICAgICBpZiBTUUw6CisgICAgICAgICAgICAgICAgc3RhdHVzLCBy c2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisgICAgICAg ICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICAgICAg cmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisK KyAgICAgICAgICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAg ICAgICAgICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgeydsYWJlbCc6IHJvd1snb3BjbmFtZSddLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJzogcm93 WydvcGNuYW1lJ119KQorCisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29u X3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICAgICBkYXRhPXJlcywKKyAg ICAgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAg ICAgICApCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVm IGdldF9zdWJ0eXBlX2RpZmYoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwg dGlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlv biB3aWxsIHJldHVybiBsaXN0IG9mIHN1YnR5cGVzIGRpZmYgZnVuY3Rpb25z IGF2YWlsYWJsZQorICAgICAgICBhcyBBSkFYIHJlc3BvbnNlLgorICAgICAg ICAiIiIKKyAgICAgICAgcmVzID0gW3snbGFiZWwnOiAnJywgJ3ZhbHVlJzog Jyd9XQorICAgICAgICBkYXRhID0gcmVxdWVzdC5hcmdzCisKKyAgICAgICAg dHJ5OgorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5q b2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdnZXRfc3VidHlwZXMuc3FsJ10p LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldF9vcGNp bnR5cGU9VHJ1ZSwgZGF0YT1kYXRhKQorICAgICAgICAgICAgaWYgU1FMOgor ICAgICAgICAgICAgICAgIHN0YXR1cywgb3BjaW50eXBlID0gc2VsZi5jb25u LmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgICAgICBpZiBub3Qg c3RhdHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPW9wY2ludHlwZSkKKyAgICAgICAgICAg ICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVt cGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdnZXRfc3VidHlwZXMuc3FsJ10pLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNpbnR5cGU9b3Bj aW50eXBlLCBjb25uPXNlbGYuY29ubikKKyAgICAgICAgICAgICAgICBzdGF0 dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAg ICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJl cykKKworICAgICAgICAgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cydd OgorICAgICAgICAgICAgICAgICAgICByZXMuYXBwZW5kKAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7J2xhYmVsJzogcm93WydzdHlwZGlm ZiddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVl Jzogcm93WydzdHlwZGlmZiddfQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICkKKworICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25z ZSgKKyAgICAgICAgICAgICAgICAgICAgZGF0YT1yZXMsCisgICAgICAgICAg ICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICAgICAgICAgKQor CisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUp KQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBnZXRfY2Fu b25pY2FsKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZD1Ob25lKToK KyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCByZXR1 cm4gbGlzdCBvZiBjYW5vbmljYWwgZnVuY3Rpb25zIGF2YWlsYWJsZQorICAg ICAgICBhcyBBSkFYIHJlc3BvbnNlLgorICAgICAgICAiIiIKKyAgICAgICAg cmVzID0gW3snbGFiZWwnOiAnJywgJ3ZhbHVlJzogJyd9XQorICAgICAgICBk YXRhID0gcmVxdWVzdC5hcmdzCisgICAgICAgIGNhbm9uaWNhbCA9IFRydWUK KworICAgICAgICB0cnk6CisgICAgICAgICAgICAjIFdlIHdhbnQgdG8gc2Vu ZCBkYXRhIG9ubHkgaWYgaW4gd2UgYXJlIGluIGVkaXQgbW9kZQorICAgICAg ICAgICAgIyBlbHNlIHdlIHdpbGwgZGlzYWJsZSB0aGUgY29tYm9ib3gKKyAg ICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2Vs Zi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnZ2V0X3N1YnR5cGVzLnNxbCddKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRvaWQ9VHJ1ZSwgZGF0 YT1kYXRhKQorICAgICAgICAgICAgaWYgU1FMOgorICAgICAgICAgICAgICAg IHN0YXR1cywgb2lkID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkK KyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PW9pZCkKKyAgICAgICAgICAgICAgICAjIElmIG9pZCBpcyBOb25lIHRoZW4g ZG8gbm90IHJ1biBTUUwKKyAgICAgICAgICAgICAgICBpZiBvaWQgaXMgTm9u ZToKKyAgICAgICAgICAgICAgICAgICAgY2Fub25pY2FsID0gRmFsc2UKKwor ICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtz ZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICdnZXRfc3VidHlwZXMuc3FsJ10pLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbm9uaWNhbD1jYW5v bmljYWwsIGNvbm49c2VsZi5jb25uLCBvaWQ9b2lkKQorICAgICAgICAgICAg aWYgU1FMOgorICAgICAgICAgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYu Y29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQorICAgICAgICAgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAg ICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAgICAg ICAgICAgIHJlcy5hcHBlbmQoCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsnbGFiZWwnOiByb3dbJ2Nhbm9uaWNhbCddLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJzogcm93WydjYW5vbmlj YWwnXX0pCisKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9u c2UoCisgICAgICAgICAgICAgICAgICAgIGRhdGE9cmVzLAorICAgICAgICAg ICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgICAgICkK KworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihl KSkKKworCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBnZXRf ZXh0ZXJuYWxfZnVuY3Rpb25zX2xpc3Qoc2VsZiwgZ2lkLCBzaWQsIGRpZCwg c2NpZCwgdGlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBm dW5jdGlvbiB3aWxsIHJldHVybiBsaXN0IG9mIGV4dGVybmFsIGZ1bmN0aW9u cyBhdmFpbGFibGUKKyAgICAgICAgYXMgQUpBWCByZXNwb25zZS4KKyAgICAg ICAgIiIiCisgICAgICAgIHJlcyA9IFt7J2xhYmVsJzogJycsICd2YWx1ZSc6 ICcnLCAnY2J0eXBlJzogJ2FsbCd9XQorCisgICAgICAgIHRyeToKKyAgICAg ICAgICAgICMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cgd2lsbCBwb3B1bGF0 ZSBJbnB1dC9PdXRwdXQvU2VuZC8KKyAgICAgICAgICAgICMgUmVjZWl2ZS9B bmFseXplL1R5cE1vZGVJTi9UeXBNb2RPVVQgY29tYm8gYm94CisgICAgICAg ICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVt cGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ2dldF9leHRlcm5hbF9mdW5jdGlvbnMuc3FsJ10pLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGZ1bmM9VHJ1 ZSkKKyAgICAgICAgICAgIGlmIFNRTDoKKyAgICAgICAgICAgICAgICBzdGF0 dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAg ICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJl cykKKworICAgICAgICAgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cydd OgorICAgICAgICAgICAgICAgICAgICByZXMuYXBwZW5kKAorICAgICAgICAg ICAgICAgICAgICAgICAgeydsYWJlbCc6IHJvd1snZnVuYyddLCAndmFsdWUn OiByb3dbJ2Z1bmMnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnY2J0 eXBlJzogJ2FsbCd9KQorCisgICAgICAgICAgICAjIFRoZSBTUUwgZ2VuZXJh dGVkIGJlbG93IHdpbGwgcG9wdWxhdGUgVHlwTW9kZUlOIGNvbWJvIGJveAor ICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtz ZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICdnZXRfZXh0ZXJuYWxfZnVuY3Rpb25zLnNx bCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBl bW9kaW49VHJ1ZSkKKyAgICAgICAgICAgIGlmIFNRTDoKKyAgICAgICAgICAg ICAgICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5 KFNRTCkKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXJlcykKKworICAgICAgICAgICAgICAgIGZvciByb3cgaW4gcnNl dFsncm93cyddOgorICAgICAgICAgICAgICAgICAgICByZXMuYXBwZW5kKAor ICAgICAgICAgICAgICAgICAgICAgICAgeydsYWJlbCc6IHJvd1snZnVuYydd LCAndmFsdWUnOiByb3dbJ2Z1bmMnXSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAnY2J0eXBlJzogJ3R5cG1vZGluJ30pCisKKyAgICAgICAgICAgICMg VGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cgd2lsbCBwb3B1bGF0ZSBUeXBNb2Rl SU4gY29tYm8gYm94CisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxh dGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9leHRlcm5h bF9mdW5jdGlvbnMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHR5cGVtb2RvdXQ9VHJ1ZSkKKyAgICAgICAgICAgIGlmIFNR TDoKKyAgICAgICAgICAgICAgICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4u ZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAgICAgICAgICAgICAgICBpZiBub3Qg c3RhdHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgICAg IGZvciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgICAgICAg ICByZXMuYXBwZW5kKAorICAgICAgICAgICAgICAgICAgICAgICAgeydsYWJl bCc6IHJvd1snZnVuYyddLCAndmFsdWUnOiByb3dbJ2Z1bmMnXSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAnY2J0eXBlJzogJ3R5cG1vZG91dCd9KQor CisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAg ICAgICAgICAgICAgIGRhdGE9cmVzLAorICAgICAgICAgICAgICAgIHN0YXR1 cz0yMDAKKyAgICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0 aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworCisgICAgQGNoZWNrX3ByZWNv bmRpdGlvbgorICAgIGRlZiBjcmVhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwg c2NpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdp bGwgY3JlYXRlcyBuZXcgdGhlIHNjaGVtYSBvYmplY3QKKworICAgICAgICAg QXJnczoKKyAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAg ICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgZGlkOiBEYXRhYmFz ZSBJRAorICAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAg dGlkOiBUeXBlIElECisgICAgICAgICIiIgorICAgICAgICBkYXRhID0gcmVx dWVzdC5mb3JtIGlmIHJlcXVlc3QuZm9ybSBlbHNlIGpzb24ubG9hZHMocmVx dWVzdC5kYXRhLmRlY29kZSgpKQorICAgICAgICByZXF1aXJlZF9hcmdzID0g eworICAgICAgICAgICAgJ25hbWUnOiAnTmFtZScsCisgICAgICAgICAgICAn dHlwdHlwZSc6ICdUeXBlJworICAgICAgICB9CisKKyAgICAgICAgZm9yIGFy ZyBpbiByZXF1aXJlZF9hcmdzOgorICAgICAgICAgICAgaWYgYXJnIG5vdCBp biBkYXRhOgorICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVz cG9uc2UoCisgICAgICAgICAgICAgICAgICAgIHN0YXR1cz00MTAsCisgICAg ICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MCwKKyAgICAgICAgICAgICAgICAg ICAgZXJyb3Jtc2c9Z2V0dGV4dCgKKyAgICAgICAgICAgICAgICAgICAgICAg ICJDb3VsZG4ndCBmaW5kIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgKCVzKS4i ICUKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkX2FyZ3NbYXJn XQorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKQor ICAgICAgICAgICAgIyBBZGRpdGlvbmFsIGNoZWNrcyBnb2VzIGhlcmUKKyAg ICAgICAgICAgICMgSWYgdHlwZSBpcyBjb21wb3NpdGUgdGhlbiBjaGVjayBp ZiBpdCBoYXMgdHdvIG1lbWJlcnMKKyAgICAgICAgICAgIGlmIGRhdGEgYW5k IGRhdGFbYXJnXSA9PSAnYyc6CisgICAgICAgICAgICAgICAgaWYgbGVuKGRh dGFbJ2NvbXBvc2l0ZSddKSA8IDI6CisgICAgICAgICAgICAgICAgICAgIHJl dHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAg ICAgICBzdGF0dXM9NDEwLAorICAgICAgICAgICAgICAgICAgICAgICAgc3Vj Y2Vzcz0wLAorICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Jtc2c9Z2V0 dGV4dCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ29tcG9zaXRl IHR5cGUgcmVxdWlyZXMgYXQgbGVhc3QgdHdvIG1lbWJlcnMnCisgICAgICAg ICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICkKKyAg ICAgICAgICAgICMgSWYgdHlwZSBpcyBlbnVtIHRoZW4gY2hlY2sgaWYgaXQg aGFzIG1pbmltdW0gb25lIGxhYmVsCisgICAgICAgICAgICBpZiBkYXRhIGFu ZCBkYXRhW2FyZ10gPT0gJ2UnOgorICAgICAgICAgICAgICAgIGlmIGxlbihk YXRhWydlbnVtJ10pIDwgMToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu IG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgICAg IHN0YXR1cz00MTAsCisgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNz PTAsCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcm1zZz1nZXR0ZXh0 KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdFbnVtZXJhdGlvbiB0 eXBlIHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBsYWJlbCcKKyAgICAgICAgICAg ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAg ICAgICAgIyBJZiB0eXBlIGlzIGVudW0gdGhlbiBjaGVjayBpZiBpdCBoYXMg bWluaW11bSBvbmUgbGFiZWwKKyAgICAgICAgICAgIGlmIGRhdGEgYW5kIGRh dGFbYXJnXSA9PSAncic6CisgICAgICAgICAgICAgICAgaWYgZGF0YVsndHlw bmFtZSddIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBt YWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgICAgICBz dGF0dXM9NDEwLAorICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0w LAorICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Jtc2c9Z2V0dGV4dCgK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnU3VidHlwZSBtdXN0IGJl IGRlZmluZWQgZm9yIHJhbmdlIHR5cGUnCisgICAgICAgICAgICAgICAgICAg ICAgICApCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICMg SWYgdHlwZSBpcyBleHRlcm5hbCB0aGVuIGNoZWNrIGlmIGlucHV0L291dHB1 dAorICAgICAgICAgICAgIyBjb252ZXJzaW9uIGZ1bmN0aW9uIGlzIGRlZmlu ZWQKKyAgICAgICAgICAgIGlmIGRhdGEgYW5kIGRhdGFbYXJnXSA9PSAneCc6 CisgICAgICAgICAgICAgICAgaWYgZGF0YVsndHlwaW5wdXQnXSBpcyBOb25l IG9yIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsn dHlwb3V0cHV0J10gaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAg ICAgIHN0YXR1cz00MTAsCisgICAgICAgICAgICAgICAgICAgICAgICBzdWNj ZXNzPTAsCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcm1zZz1nZXR0 ZXh0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdFeHRlcm5hbCB0 eXBlIHJlcXVpcmVzIGJvdGggSW5wdXQgJiBPdXRwdXQgY29udmVyc2lvbiBm dW5jdGlvbi4nCisgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAg ICAgICAgICAgICAgICkKKworICAgICAgICAjIFRvIGZvcm1hdCBwcml2aWxl Z2VzIGNvbWluZyBmcm9tIGNsaWVudAorICAgICAgICBpZiAndHlwYWNsJyBp biBkYXRhIGFuZCBkYXRhWyd0eXBhY2wnXSBpcyBub3QgTm9uZToKKyAgICAg ICAgICAgIGRhdGFbJ3R5cGFjbCddID0gcGFyc2VfcHJpdl90b19kYihkYXRh Wyd0eXBhY2wnXSwgc2VsZi5hY2wpCisKKyAgICAgICAgdHJ5OgorICAgICAg ICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRl bXBsYXRlX3BhdGgsICdjcmVhdGUuc3FsJ10pLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgY29ubj1zZWxmLmNvbm4p CisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRl X3NjYWxhcihTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAg ICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9cmVzKQorCisgICAgICAgICAgICAjIHdlIG5lZWQgb2lkIHRvIHRv IGFkZCBvYmplY3QgaW4gdHJlZSBhdCBicm93c2VyCisgICAgICAgICAgICBT UUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVf cGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ2dldF9vaWQuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNjaWQ9c2NpZCwgZGF0YT1kYXRhKQorICAgICAgICAg ICAgc3RhdHVzLCB0aWQgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FM KQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXRpZCkK KworICAgICAgICAgICAgcmV0dXJuIGpzb25pZnkoCisgICAgICAgICAgICAg ICAgbm9kZT1zZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUo CisgICAgICAgICAgICAgICAgICAgIHRpZCwKKyAgICAgICAgICAgICAgICAg ICAgc2NpZCwKKyAgICAgICAgICAgICAgICAgICAgZGF0YVsnbmFtZSddLAor ICAgICAgICAgICAgICAgICAgICBpY29uPSJpY29uLXR5cGUiCisgICAgICAg ICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICBleGNlcHQgRXhj ZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19wcmVj b25kaXRpb24KKyAgICBkZWYgdXBkYXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQs IHNjaWQsIHRpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0 aW9uIHdpbGwgdXBkYXRlcyBleGlzdGluZyB0aGUgdHlwZSBvYmplY3QKKwor ICAgICAgICAgQXJnczoKKyAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAg SUQKKyAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgZGlk OiBEYXRhYmFzZSBJRAorICAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQKKyAg ICAgICAgICAgdGlkOiBUeXBlIElECisgICAgICAgICIiIgorCisgICAgICAg IGRhdGEgPSByZXF1ZXN0LmZvcm0gaWYgcmVxdWVzdC5mb3JtIGVsc2UganNv bi5sb2FkcyhyZXF1ZXN0LmRhdGEuZGVjb2RlKCkpCisgICAgICAgIHRyeToK KyAgICAgICAgICAgIFNRTCA9IHNlbGYuZ2V0X3NxbChnaWQsIHNpZCwgZGF0 YSwgc2NpZCwgdGlkKQorICAgICAgICAgICAgaWYgU1FMIGFuZCBTUUwuc3Ry aXAoJ1xuJykgYW5kIFNRTC5zdHJpcCgnICcpOgorICAgICAgICAgICAgICAg IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkK KyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJlcykKKworICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVz cG9uc2UoCisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAg ICAgICAgICAgICAgICAgaW5mbz0iVHlwZSB1cGRhdGVkIiwKKyAgICAgICAg ICAgICAgICAgICAgZGF0YT17CisgICAgICAgICAgICAgICAgICAgICAgICAn aWQnOiB0aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2NpZCc6IHNj aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2lkJzogc2lkLAorICAg ICAgICAgICAgICAgICAgICAgICAgJ2dpZCc6IGdpZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICdkaWQnOiBkaWQKKyAgICAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIGVsc2U6CisgICAg ICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAg ICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAgICAg ICBpbmZvPSJOb3RoaW5nIHRvIHVwZGF0ZSIsCisgICAgICAgICAgICAgICAg ICAgIGRhdGE9eworICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJzogdGlk LAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NjaWQnOiBzY2lkLAorICAg ICAgICAgICAgICAgICAgICAgICAgJ3NpZCc6IHNpZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICdnaWQnOiBnaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAnZGlkJzogZGlkCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICApCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBl OgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1zdHIoZSkpCisKKworICAgIEBjaGVja19wcmVjb25kaXRpb24K KyAgICBkZWYgZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRp ZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwg dXBkYXRlcyBleGlzdGluZyB0aGUgc2NoZW1hIG9iamVjdAorCisgICAgICAg ICBBcmdzOgorICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAg ICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICBkaWQ6IERhdGFi YXNlIElECisgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAorICAgICAgICAg ICB0aWQ6IFR5cGUgSUQKKyAgICAgICAgIiIiCisKKyAgICAgICAgIyBCZWxv dyB3aWxsIGRlY2lkZSBpZiBpdCdzIHNpbXBsZSBkcm9wIG9yIGRyb3Agd2l0 aCBjYXNjYWRlIGNhbGwKKyAgICAgICAgaWYgc2VsZi5jbWQgPT0gJ2RlbGV0 ZSc6CisgICAgICAgICAgICAjIFRoaXMgaXMgYSBjYXNjYWRlIG9wZXJhdGlv bgorICAgICAgICAgICAgY2FzY2FkZSA9IFRydWUKKyAgICAgICAgZWxzZToK KyAgICAgICAgICAgIGNhc2NhZGUgPSBGYWxzZQorCisgICAgICAgIHRyeToK KyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLCAnZ2V0X25hbWUuc3FsJ10pLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaWQ9c2NpZCwgdGlkPXRp ZCkKKyAgICAgICAgICAgIHN0YXR1cywgbmFtZSA9IHNlbGYuY29ubi5leGVj dXRlX3NjYWxhcihTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgor ICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9bmFtZSkKKworICAgICAgICAgICAgU1FMID0gcmVuZGVyX3Rl bXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdkZWxldGUu c3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5h bWU9bmFtZSwgY2FzY2FkZT1jYXNjYWRlLCBjb25uPXNlbGYuY29ubikKKyAg ICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2Nh bGFyKFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1yZXMpCisKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9u c2UoCisgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAg ICAgIGluZm89Z2V0dGV4dCgiVHlwZSBkcm9wcGVkIiksCisgICAgICAgICAg ICAgICAgZGF0YT17CisgICAgICAgICAgICAgICAgICAgICdpZCc6IHRpZCwK KyAgICAgICAgICAgICAgICAgICAgJ3NjaWQnOiBzY2lkLAorICAgICAgICAg ICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAgICAgICAgICAn Z2lkJzogZ2lkLAorICAgICAgICAgICAgICAgICAgICAnZGlkJzogZGlkCisg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKQorCisgICAgICAgIGV4 Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisKKyAgICBA Y2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIG1zcWwoc2VsZiwgZ2lkLCBz aWQsIGRpZCwgc2NpZCwgdGlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAg ICAgVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlcyBtb2RpZmllZCBzcWwg Zm9yIHR5cGUgb2JqZWN0CisKKyAgICAgICAgIEFyZ3M6CisgICAgICAgICAg IGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgIHNpZDogU2VydmVy IElECisgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAg c2NpZDogU2NoZW1hIElECisgICAgICAgICAgIHRpZDogVHlwZSBJRAorICAg ICAgICAiIiIKKyAgICAgICAgcmVxID0gcmVxdWVzdC5hcmdzCisgICAgICAg IGRhdGEgPSBkaWN0KCkKKworICAgICAgICAjIGNvbnZlcnRpbmcgbmVzdGVk IHJlcXVlc3QgZGF0YSBpbiBwcm9wZXIganNvbiBmb3JtYXQKKyAgICAgICAg Zm9yIGtleSx2YWwgaW4gcmVxLml0ZW1zKCk6CisgICAgICAgICAgICBpZiBr ZXkgaW4gWydjb21wb3NpdGUnLCAnZW51bScsICdzZWNsYWJlbHMnLCAndHlw YWNsJ106CisgICAgICAgICAgICAgICAgZGF0YVtrZXldID0ganNvbi5sb2Fk cyh2YWwpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGRh dGFba2V5XSA9IHZhbAorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIFNR TCA9IHNlbGYuZ2V0X3NxbChnaWQsIHNpZCwgZGF0YSwgc2NpZCwgdGlkKQor CisgICAgICAgICAgICBpZiBTUUwgYW5kIFNRTC5zdHJpcCgnXG4nKSBhbmQg U1FMLnN0cmlwKCcgJyk6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2Vf anNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9 U1FMLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAg ICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICBleGNlcHQgRXhjZXB0 aW9uIGFzIGU6CisgICAgICAgICAgICBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgZGVmIGdldF9zcWwoc2VsZiwgZ2lk LCBzaWQsIGRhdGEsIHNjaWQsIHRpZD1Ob25lKToKKyAgICAgICAgIiIiCisg ICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5yYXRlIHNxbCBmcm9tIG1v ZGVsIGRhdGEKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHRpZCBpcyBub3Qg Tm9uZToKKworICAgICAgICAgICAgZm9yIGtleSBpbiBbJ3R5cGFjbCddOgor ICAgICAgICAgICAgICAgIGlmIGtleSBpbiBkYXRhIGFuZCBkYXRhW2tleV0g aXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGlmICdhZGRlZCcg aW4gZGF0YVtrZXldOgorICAgICAgICAgICAgICAgICAgICAgIGRhdGFba2V5 XVsnYWRkZWQnXSA9IHBhcnNlX3ByaXZfdG9fZGIoZGF0YVtrZXldWydhZGRl ZCddLCBzZWxmLmFjbCkKKyAgICAgICAgICAgICAgICAgICAgaWYgJ2NoYW5n ZWQnIGluIGRhdGFba2V5XToKKyAgICAgICAgICAgICAgICAgICAgICBkYXRh W2tleV1bJ2NoYW5nZWQnXSA9IHBhcnNlX3ByaXZfdG9fZGIoZGF0YVtrZXld WydjaGFuZ2VkJ10sIHNlbGYuYWNsKQorICAgICAgICAgICAgICAgICAgICBp ZiAnZGVsZXRlZCcgaW4gZGF0YVtrZXldOgorICAgICAgICAgICAgICAgICAg ICAgIGRhdGFba2V5XVsnZGVsZXRlZCddID0gcGFyc2VfcHJpdl90b19kYihk YXRhW2tleV1bJ2RlbGV0ZWQnXSwgc2VsZi5hY2wpCisKKyAgICAgICAgICAg IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLCAncHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2NpZD1zY2lkLCB0aWQ9dGlkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGxhc3RzeXNvaWQ9c2Vs Zi5kYXRsYXN0c3lzb2lkKQorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBz ZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgICAgIGlmIG5v dCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3Nl cnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgICMgTWFr aW5nIGNvcHkgb2Ygb3V0cHV0IGZvciBmdXR1cmUgdXNlCisgICAgICAgICAg ICBvbGRfZGF0YSA9IGRpY3QocmVzWydyb3dzJ11bMF0pCisKKyAgICAgICAg ICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1w bGF0ZV9wYXRoLCAnYWNsLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzY2lkPXNjaWQsIHRpZD10aWQpCisgICAgICAgICAg ICBzdGF0dXMsIGFjbCA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQor ICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPWFjbCkKKwor ICAgICAgICAgICAgIyBXZSB3aWxsIHNldCBnZXQgcHJpdmlsZWdlcyBmcm9t IGFjbCBzcWwgc28gd2UgZG9uJ3QgbmVlZAorICAgICAgICAgICAgIyBpdCBm cm9tIHByb3BlcnRpZXMgc3FsCisgICAgICAgICAgICBvbGRfZGF0YVsndHlw YWNsJ10gPSBbXQorCisgICAgICAgICAgICBmb3Igcm93IGluIGFjbFsncm93 cyddOgorICAgICAgICAgICAgICAgIHByaXYgPSBwYXJzZV9wcml2X2Zyb21f ZGIocm93KQorICAgICAgICAgICAgICAgIGlmIHJvd1snZGVmdHlwZSddIGlu IG9sZF9kYXRhOgorICAgICAgICAgICAgICAgICAgICBvbGRfZGF0YVtyb3db J2RlZnR5cGUnXV0uYXBwZW5kKHByaXYpCisgICAgICAgICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICAgICAgICAgb2xkX2RhdGFbcm93WydkZWZ0eXBl J11dID0gW3ByaXZdCisKKyAgICAgICAgICAgICMgQ2FsbGluZyBmdW5jdGlv biB0byBjaGVjayBhbmQgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIGlmIGF2YWls YWJsZQorICAgICAgICAgICAgb2xkX2RhdGEudXBkYXRlKHNlbGYuYWRkaXRp b25hbF9wcm9wZXJ0aWVzKG9sZF9kYXRhLCB0aWQpKQorCisgICAgICAgICAg ICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgIi8i LmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3VwZGF0ZS5zcWwnXSksCisg ICAgICAgICAgICAgICAgZGF0YT1kYXRhLCBvX2RhdGE9b2xkX2RhdGEsIGNv bm49c2VsZi5jb25uCisgICAgICAgICAgICAgICAgKQorICAgICAgICBlbHNl OgorICAgICAgICAgICAgcmVxdWlyZWRfYXJncyA9IFsKKyAgICAgICAgICAg ICAgICAnbmFtZScsCisgICAgICAgICAgICAgICAgJ3R5cHR5cGUnCisgICAg ICAgICAgICBdCisKKyAgICAgICAgICAgIGZvciBhcmcgaW4gcmVxdWlyZWRf YXJnczoKKyAgICAgICAgICAgICAgICBpZiBhcmcgbm90IGluIGRhdGE6Cisg ICAgICAgICAgICAgICAgICAgIHJldHVybiAiIC0tZGVmaW5pdGlvbiBpbmNv bXBsZXRlIgorCisgICAgICAgICAgICAjIFByaXZpbGVnZXMKKyAgICAgICAg ICAgIGlmICd0eXBhY2wnIGluIGRhdGEgYW5kIGRhdGFbJ3R5cGFjbCddIGlz IG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGRhdGFbJ3R5cGFjbCddID0g cGFyc2VfcHJpdl90b19kYihkYXRhWyd0eXBhY2wnXSwgc2VsZi5hY2wpCisK KyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnY3JlYXRlLnNxbCddKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWRhdGEsIGNvbm49c2Vs Zi5jb25uKQorCisgICAgICAgIHJldHVybiBTUUwKKworCisgICAgQGNoZWNr X3ByZWNvbmRpdGlvbgorICAgIGRlZiBzcWwoc2VsZiwgZ2lkLCBzaWQsIGRp ZCwgc2NpZCwgdGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVu Y3Rpb24gd2lsbCBnZW5lcmF0ZXMgcmV2ZXJzZSBlbmdpbmVlcmVkIHNxbCBm b3Igc2NoZW1hIG9iamVjdAorCisgICAgICAgICBBcmdzOgorICAgICAgICAg ICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICBzaWQ6IFNlcnZl ciBJRAorICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAg IHNjaWQ6IFNjaGVtYSBJRAorICAgICAgICAgICB0aWQ6IFR5cGUgSUQKKyAg ICAgICAgIiIiCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIu am9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGllcy5zcWwnXSks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2lkPXNjaWQsIHRp ZD10aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRsYXN0 c3lzb2lkPXNlbGYuZGF0bGFzdHN5c29pZCkKKyAgICAgICAgc3RhdHVzLCBy ZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgaWYg bm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICMgTWFraW5nIGNv cHkgb2Ygb3V0cHV0IGZvciBmdXR1cmUgdXNlCisgICAgICAgIGRhdGEgPSBk aWN0KHJlc1sncm93cyddWzBdKQorCisgICAgICAgIFNRTCA9IHJlbmRlcl90 ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnYWNsLnNx bCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaWQ9c2Np ZCwgdGlkPXRpZCkKKyAgICAgICAgc3RhdHVzLCBhY2wgPSBzZWxmLmNvbm4u ZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9YWNsKQorCisgICAgICAgICMgV2Ugd2lsbCBzZXQgZ2V0IHByaXZpbGVn ZXMgZnJvbSBhY2wgc3FsIHNvIHdlIGRvbid0IG5lZWQKKyAgICAgICAgIyBp dCBmcm9tIHByb3BlcnRpZXMgc3FsCisgICAgICAgIGRhdGFbJ3R5cGFjbCdd ID0gW10KKworICAgICAgICBmb3Igcm93IGluIGFjbFsncm93cyddOgorICAg ICAgICAgICAgcHJpdiA9IHBhcnNlX3ByaXZfZnJvbV9kYihyb3cpCisgICAg ICAgICAgICBpZiByb3dbJ2RlZnR5cGUnXSBpbiBkYXRhOgorICAgICAgICAg ICAgICAgIGRhdGFbcm93WydkZWZ0eXBlJ11dLmFwcGVuZChwcml2KQorICAg ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBkYXRhW3Jvd1snZGVm dHlwZSddXSA9IFtwcml2XQorCisgICAgICAgICMgUHJpdmlsZWdlcworICAg ICAgICBpZiAndHlwYWNsJyBpbiBkYXRhIGFuZCBkYXRhWyd0eXBhY2wnXSBp cyBub3QgTm9uZToKKyAgICAgICAgICAgIGRhdGFbJ25zcGFjbCddID0gcGFy c2VfcHJpdl90b19kYihkYXRhWyd0eXBhY2wnXSwgc2VsZi5hY2wpCisKKyAg ICAgICAgIyBDYWxsaW5nIGZ1bmN0aW9uIHRvIGNoZWNrIGFuZCBhZGRpdGlv bmFsIHByb3BlcnRpZXMgaWYgYXZhaWxhYmxlCisgICAgICAgIGRhdGEudXBk YXRlKHNlbGYuYWRkaXRpb25hbF9wcm9wZXJ0aWVzKGRhdGEsIHRpZCkpCisK KyAgICAgICAgIyBXZSBkbyBub3Qgd2FudCB0byBkaXNwbGF5IHRhYmxlIHdo aWNoIGhhcyAnLScgdmFsdWUKKyAgICAgICAgIyBzZXR0aW5nIHRoZW0gdG8g Tm9uZSBzbyB0aGF0IGppbmphIGF2b2lkIGRpc3BsYXlpbmcgdGhlbQorICAg ICAgICBmb3IgayBpbiBkYXRhOgorICAgICAgICAgICAgaWYgZGF0YVtrXSA9 PSAnLSc6CisgICAgICAgICAgICAgICAgZGF0YVtrXSA9IE5vbmUKKworICAg ICAgICBTUUwgPSBzZWxmLmdldF9zcWwoZ2lkLCBzaWQsIGRhdGEsIHNjaWQs IHRpZD1Ob25lKQorCisgICAgICAgICMgV2UgYXJlIGFwcGVuZGluZyBoZWFk ZXJzIGhlcmUgZm9yIHNxbCBwYW5lbAorICAgICAgICBzcWxfaGVhZGVyID0g Ii0tIFR5cGU6IHswfVxuXG4tLSAiLmZvcm1hdChkYXRhWyduYW1lJ10pCisg ICAgICAgIHNxbF9oZWFkZXIgKz0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2lu KFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVsZXRlLnNxbCddKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1kYXRh WyduYW1lJ10sIGNvbm49c2VsZi5jb25uKQorICAgICAgICBTUUwgPSBzcWxf aGVhZGVyICsgJ1xuJyArIFNRTAorCisgICAgICAgIHJldHVybiBhamF4X3Jl c3BvbnNlKHJlc3BvbnNlPVNRTCkKKworICAgIEBjaGVja19wcmVjb25kaXRp b24KKyAgICBkZWYgZGVwZW5kZW50cyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBz Y2lkLCB0aWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlv biBnZXQgdGhlIGRlcGVuZGVudHMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNl CisgICAgICAgIGZvciB0aGUgdHlwZSBub2RlLgorCisgICAgICAgIEFyZ3M6 CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAg ICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2Ug SUQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAorICAgICAgICAgICAg dGlkOiBUeXBlIElECisgICAgICAgICIiIgorICAgICAgICBkZXBlbmRlbnRz X3Jlc3VsdCA9IHNlbGYuZ2V0X2RlcGVuZGVudHMoCisgICAgICAgICAgICBz ZWxmLmNvbm4sIHRpZAorICAgICAgICApCisKKyAgICAgICAgcmV0dXJuIGFq YXhfcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgcmVzcG9uc2U9ZGVwZW5k ZW50c19yZXN1bHQsCisgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAg ICAgICAgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAg ICBkZWYgZGVwZW5kZW5jaWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQs IHRpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdl dCB0aGUgZGVwZW5kZW5jaWVzIGFuZCByZXR1cm4gYWpheCByZXNwb25zZQor ICAgICAgICBmb3IgdGhlIHR5cGUgbm9kZS4KKworICAgICAgICBBcmdzOgor ICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAg IHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElE CisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAgIHRp ZDogVHlwZSBJRAorICAgICAgICAiIiIKKyAgICAgICAgZGVwZW5kZW5jaWVz X3Jlc3VsdCA9IHNlbGYuZ2V0X2RlcGVuZGVuY2llcygKKyAgICAgICAgICAg IHNlbGYuY29ubiwgdGlkCisgICAgICAgICkKKworICAgICAgICByZXR1cm4g YWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZXNwb25zZT1kZXBl bmRlbmNpZXNfcmVzdWx0LAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAK KyAgICAgICAgICAgICAgICApCisKK1R5cGVWaWV3LnJlZ2lzdGVyX25vZGVf dmlldyhibHVlcHJpbnQpClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvc3RhdGljL2ltZy9j b2xsLXR5cGUucG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvc3RhdGljL2lt Zy9jb2xsLXR5cGUucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiMDIw ZDdkOTlmODQ0MzkwNDZkMjg4NjE1ZTg2NWVlMWZiZGI4MTUKR0lUIGJpbmFy eSBwYXRjaApsaXRlcmFsIDMyOQp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZw XjB3QiE3Mz8kIyllRlBGdjNHZk1WMT0zTmNYST1hTT5mSGFRVEBROTEKemBo UzFSe35PRXhVITM7O01FbX4obUgmNjx7b2xOMy1jREpkST53Uzl6aEROM1hF KU0tOUxAcmQkWUxQdjBtZzE4Cnp2K2FQNDcqN3wrNVJVNyVYUU8hPTQwemxn b153byRFVSFNeSMzaihrcyp9TFQ5ZFVyXm5GVip4YDxMZkVYTFUmewp6TlRf UVope3AxMWpyOEJSSmYqSjl0MXEkRCVYNkZLKHF9dUlrNGBPVl8mdit0QVpG KTxjfl8pIXxOTXtWPWUjV1gKek4jSjl2RzArfj42NCF7NWwqRSEkdEtfMG9B ak0jMFV9JklnWHJ5YWs3LUQyI1dueWUpVnliT21ZR3EoQkAxNVElCnE2Yi1y Z0RWYkBONURmO0ZVPTJYa0NSUFMhNURsbE1ocHF1P1ZETlBIYjZNdzwmOyRV WiQ4Kk8zCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90eXBlcy9zdGF0aWMvaW1nL3R5cGUucG5nIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdHlwZXMvc3RhdGljL2ltZy90eXBlLnBuZwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwLi42YzE2NzY0ZTdkMDhjNTY5MjJhOTdhMmYwYzZj YzA2NDU1Yzg2YTU2CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzMjUKemNt ZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4wd0IhNzM/JCMpZUZQRnY1QVg/YjE9 OH4jOUVtelQ+KVFXVT1sKHhFCnpgdjJqc3xGX3J0emRZfiVuRjtAb0h2UWpR eyhwUGt8SU1rKTBAKjtOajNxJlMhMystMVpsblBAb0NPfHsjWCNCdgp6ak5N TFYrV3tHJm8tVTNkOU1fVyo0ek1fUklWfDh2KFU0fHQ2cjhafDVmaDdfTHRC PUgwMUttSlI7SSVRbVhzQ0sKem5IXy09N2EzVzY5b25BeEQ5bTY8JHltJE88 bSVBJkVsPVNGT1VqRW1qN2BvNCs5RGZuQEdfajxCZmFyflotKSFlCnowQFZg Tmg/MTFWbDJvaFlxRXNOb1V9UnV1cGxmS1BZaFZ+K1dNRX10WS1NN3FaRDQ5 O1VALTVVLVlPSWd4JW54WAprWF9YS1MyOXt0QUstREh6MjQpWnFyPjJMbDBj djNJYm9GeXQ9YWtSezAxaDUmcXlQV18KCmxpdGVyYWwgMApIY21WP2QwMDAw MQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRl cy90eXBlL2pzL3R5cGUuanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZW1w bGF0ZXMvdHlwZS9qcy90eXBlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmY5MGU5ZWIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0ZXMvdHlwZS9qcy90eXBlLmpzCkBA IC0wLDAgKzEsODQxIEBACitkZWZpbmUoCisgICAgICAgIFsnanF1ZXJ5Jywg J3VuZGVyc2NvcmUnLCAndW5kZXJzY29yZS5zdHJpbmcnLCAncGdhZG1pbics CisgICAgICAgICAncGdhZG1pbi5icm93c2VyJywgJ2FsZXJ0aWZ5JywgJ2Jh Y2tncmlkJywgJ3BnYWRtaW4uYmFja2dyaWQnLAorICAgICAgICAgICdwZ2Fk bWluLmJyb3dzZXIuY29sbGVjdGlvbiddLAorZnVuY3Rpb24oJCwgXywgUywg cGdBZG1pbiwgcGdCcm93c2VyLCBhbGVydGlmeSwgQmFja2dyaWQpIHsKKwor ICBpZiAoIXBnQnJvd3Nlci5Ob2Rlc1snY29sbC10eXBlJ10pIHsKKyAgICB2 YXIgZGF0YWJhc2VzID0gcGdBZG1pbi5Ccm93c2VyLk5vZGVzWydjb2xsLXR5 cGUnXSA9CisgICAgICBwZ0FkbWluLkJyb3dzZXIuQ29sbGVjdGlvbi5leHRl bmQoeworICAgICAgICBub2RlOiAndHlwZScsCisgICAgICAgIGxhYmVsOiAn e3sgXygnVHlwZXMnKSB9fScsCisgICAgICAgIHR5cGU6ICdjb2xsLXR5cGUn LAorICAgICAgICBjb2x1bW5zOiBbJ25hbWUnLCAnb2lkJywgJ2Rlc2NyaXB0 aW9uJ10KKyAgICAgIH0pOworICB9OworCisgIC8vIFN3aXRjaCBvcHRpb25z IHRvIHNhdmUgc3BhY2UgaW4gbW9kZWwncyBmaWVsZAorICB2YXIgc3dpdGNo T3B0aW9ucyA9IHsKKyAgICAnb25UZXh0JzogJ1llcycsICdvZmZUZXh0Jzog J05vJywKKyAgICAnb25Db2xvcic6ICdzdWNjZXNzJywgJ29mZkNvbG9yJzog J2RlZmF1bHQnLAorICAgICdzaXplJzogJ3NtYWxsJworICB9OworCisgIC8v IFNlY3VyaXR5IGxhYmVsIG1vZGVsIGRlY2xhcmF0aW9uCisgIHZhciBTZWN1 cml0eU1vZGVsID0gQmFja2Zvcm0uU2VjdXJpdHlNb2RlbCA9IHBnQWRtaW4u QnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7CisgICAgZGVmYXVsdHM6IHsK KyAgICAgIHByb3ZpZGVyOiBudWxsLAorICAgICAgc2VjdXJpdHlfbGFiZWw6 IG51bGwKKyAgICB9LAorICAgIHNjaGVtYTogW3sKKyAgICAgIGlkOiAncHJv dmlkZXInLCBsYWJlbDogJ3t7IF8oJ1Byb3ZpZGVyJykgfX0nLAorICAgICAg dHlwZTogJ3RleHQnLCBkaXNhYmxlZDogZmFsc2UKKyAgICB9LHsKKyAgICAg IGlkOiAnc2VjdXJpdHlfbGFiZWwnLCBsYWJlbDogJ3t7IF8oJ1NlY3VyaXR5 IExhYmVsJykgfX0nLAorICAgICAgdHlwZTogJ3RleHQnLCBkaXNhYmxlZDog ZmFsc2UKKyAgICB9XSwKKyAgICB2YWxpZGF0ZTogZnVuY3Rpb24oKSB7Cisg ICAgICB2YXIgZXJyID0ge30sCisgICAgICAgICAgZXJybXNnID0gbnVsbCwK KyAgICAgICAgICBkYXRhID0gdGhpcy50b0pTT04oKTsKKworICAgICAgaWYg KF8uaXNVbmRlZmluZWQoZGF0YS5sYWJlbCkgfHwKKyAgICAgICAgXy5pc051 bGwoZGF0YS5sYWJlbCkgfHwKKyAgICAgICAgU3RyaW5nKGRhdGEubGFiZWwp LnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAg ICAgIGVycm1zZyA9IF8oIlBsZWFzZSBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3Ig YWxsIHRoZSBzZWN1cml0eSBwcm92aWRlcnMuIik7CisgICAgICAgICAgICB0 aGlzLmVycm9yTW9kZWwuc2V0KCdzZWN1cml0eV9sYWJlbCcsIGVycm1zZyk7 CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuZXJyb3JN b2RlbC51bnNldCgnc2VjdXJpdHlfbGFiZWwnKTsKKyAgICAgICAgICB9Cisg ICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgIH0pOworCisgIC8vIENvbXBv c2l0ZSB0eXBlIG1vZGVsIGRlY2xhcmF0aW9uCisgIHZhciBDb21wb3NpdGVN b2RlbCA9IEJhY2tmb3JtLkNvbXBvc2l0ZU1vZGVsID0gcGdBZG1pbi5Ccm93 c2VyLk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICBkZWZhdWx0czogeworICAg ICAgbWVtYmVyX25hbWU6IHVuZGVmaW5lZCwKKyAgICAgIHR5cGU6IHVuZGVm aW5lZCwKKyAgICAgIHRsZW5ndGg6IHVuZGVmaW5lZCwKKyAgICAgIGlzX3Rs ZW5ndGg6IGZhbHNlLAorICAgICAgcHJlY2lzaW9uOiB1bmRlZmluZWQsCisg ICAgICBpc19wcmVjaXNpb246IGZhbHNlLAorICAgICAgY29sbGF0aW9uOiB1 bmRlZmluZWQsCisgICAgICBtaW5fdmFsOiB1bmRlZmluZWQsCisgICAgICBt YXhfdmFsOiB1bmRlZmluZWQsCisgICAgfSwKKyAgICB0eXBlX29wdGlvbnM6 IHVuZGVmaW5lZCwKKyAgICBzdWJ0eXBlczogdW5kZWZpbmVkLAorICAgIHNj aGVtYTogW3sKKyAgICAgIGlkOiAnbWVtYmVyX25hbWUnLCBsYWJlbDogJ3t7 IF8oJ01lbWJlciBOYW1lJykgfX0nLAorICAgICAgdHlwZTogJ3RleHQnLCAg ZGlzYWJsZWQ6IGZhbHNlLCBlZGl0YWJsZTogZmFsc2UKKyAgICB9LHsKKyAg ICAgIGlkOiAndHlwZScsIGxhYmVsOiAne3sgXygnVHlwZScpIH19JywgY29u dHJvbDogJ25vZGUtYWpheC1vcHRpb25zJywKKyAgICAgIHR5cGU6ICd0ZXh0 JywgdXJsOiAnZ2V0X3R5cGVzJywgZGlzYWJsZWQ6IGZhbHNlLCBub2RlOiAn dHlwZScsCisgICAgICBlZGl0YWJsZTogZmFsc2UsCisgICAgICB0cmFuc2Zv cm06IGZ1bmN0aW9uKGQpeworICAgICAgICB0aGlzLm1vZGVsLnR5cGVfb3B0 aW9ucyA9ICBkOworICAgICAgICByZXR1cm4gZDsKKyAgICAgIH0KKyAgICB9 LHsKKyAgICAgIGlkOiAndGxlbmd0aCcsIGxhYmVsOiAne3sgXygnTGVuZ3Ro JykgfX0nLCBkZXBzOiBbJ3R5cGUnXSwgdHlwZTogJ3RleHQnLAorICAgICAg ZWRpdGFibGU6IGZhbHNlLAorICAgICAgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0p IHsKKyAgICAgICAgLy8gV2Ugd2lsbCBzdG9yZSB0eXBlIGZyb20gc2VsZWN0 ZWQgZnJvbSBjb21ib2JveAorICAgICAgICB2YXIgb2ZfdHlwZSA9IG0uZ2V0 KCd0eXBlJyk7CisgICAgICAgIGlmKG0udHlwZV9vcHRpb25zKSB7CisgICAg ICAgICAgLy8gaXRlcmF0aW5nIG92ZXIgYWxsIHRoZSB0eXBlcworICAgICAg ICAgIF8uZWFjaChtLnR5cGVfb3B0aW9ucywgZnVuY3Rpb24obykgeworICAg ICAgICAgICAgLy8gaWYgdHlwZSBmcm9tIHNlbGVjdGVkIGZyb20gY29tYm9i b3ggbWF0Y2hlcyBpbiBvcHRpb25zCisgICAgICAgICAgICBpZiAoIG9mX3R5 cGUgPT0gby52YWx1ZSApIHsKKyAgICAgICAgICAgICAgICAvLyBpZiBsZW5n dGggaXMgYWxsb3dlZCBmb3Igc2VsZWN0ZWQgdHlwZQorICAgICAgICAgICAg ICAgIGlmKG8ubGVuZ3RoKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAg ICAgICAgICAgIC8vIHNldCB0aGUgdmFsdWVzIGluIG1vZGVsCisgICAgICAg ICAgICAgICAgICBtLnNldCgnaXNfdGxlbmd0aCcsIHRydWUsIHtzaWxlbnQ6 IHRydWV9KTsKKyAgICAgICAgICAgICAgICAgIG0uc2V0KCdtaW5fdmFsJywg by5taW5fdmFsLCB7c2lsZW50OiB0cnVlfSk7CisgICAgICAgICAgICAgICAg ICBtLnNldCgnbWF4X3ZhbCcsIG8ubWF4X3ZhbCwge3NpbGVudDogdHJ1ZX0p OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAg ICB9KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gIW0uZ2V0KCdpc190 bGVuZ3RoJyk7CisgICAgICB9CisgICAgfSx7CisgICAgICBpZDogJ3ByZWNp c2lvbicsIGxhYmVsOiAne3sgXygnUHJlY2lzaW9uJykgfX0nLCBkZXBzOiBb J3R5cGUnXSwKKyAgICAgIHR5cGU6ICd0ZXh0JywgZWRpdGFibGU6IGZhbHNl LAorICAgICAgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgLy8g V2Ugd2lsbCBzdG9yZSB0eXBlIGZyb20gc2VsZWN0ZWQgZnJvbSBjb21ib2Jv eAorICAgICAgICB2YXIgb2ZfdHlwZSA9IG0uZ2V0KCd0eXBlJyk7CisgICAg ICAgIGlmKG0udHlwZV9vcHRpb25zKSB7CisgICAgICAgICAgLy8gaXRlcmF0 aW5nIG92ZXIgYWxsIHRoZSB0eXBlcworICAgICAgICAgIF8uZWFjaChtLnR5 cGVfb3B0aW9ucywgZnVuY3Rpb24obykgeworICAgICAgICAgICAgLy8gaWYg dHlwZSBmcm9tIHNlbGVjdGVkIGZyb20gY29tYm9ib3ggbWF0Y2hlcyBpbiBv cHRpb25zCisgICAgICAgICAgICBpZiAoIG9mX3R5cGUgPT0gby52YWx1ZSAp IHsKKyAgICAgICAgICAgICAgICAvLyBpZiBwcmVjZXNzaW9uIGlzIGFsbG93 ZWQgZm9yIHNlbGVjdGVkIHR5cGUKKyAgICAgICAgICAgICAgICBpZihvLnBy ZWNpc2lvbikKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg ICAvLyBzZXQgdGhlIHZhbHVlcyBpbiBtb2RlbAorICAgICAgICAgICAgICAg ICAgbS5zZXQoJ2lzX3ByZWNpc2lvbicsIHRydWUsIHtzaWxlbnQ6IHRydWV9 KTsKKyAgICAgICAgICAgICAgICAgIG0uc2V0KCdtaW5fdmFsJywgby5taW5f dmFsLCB7c2lsZW50OiB0cnVlfSk7CisgICAgICAgICAgICAgICAgICBtLnNl dCgnbWF4X3ZhbCcsIG8ubWF4X3ZhbCwge3NpbGVudDogdHJ1ZX0pOworICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9KTsK KyAgICAgICAgfQorICAgICAgICByZXR1cm4gIW0uZ2V0KCdpc19wcmVjaXNp b24nKTsKKyAgICAgIH0KKyAgICB9LHsKKyAgICAgIGlkOiAnY29sbGF0aW9u JywgbGFiZWw6ICd7eyBfKCdDb2xsYXRpb24nKSB9fScsCisgICAgICBjb250 cm9sOiAnbm9kZS1hamF4LW9wdGlvbnMnLCBlZGl0YWJsZTogZmFsc2UsCisg ICAgICB0eXBlOiAndGV4dCcsIGRpc2FibGVkOiBmYWxzZSwgdXJsOiAnZ2V0 X2NvbGxhdGlvbnMnLCBub2RlOiAndHlwZScKKyAgICB9XSwKKyAgICB2YWxp ZGF0ZTogZnVuY3Rpb24oKSB7CisgICAgICB2YXIgZXJyID0ge30sCisgICAg ICAgICAgZXJybXNnID0gbnVsbCwKKyAgICAgICAgICBkYXRhID0gdGhpcy50 b0pTT04oKTsKKyAgICAgIC8vIFZhbGlkYXRpb24gZm9yIG1lbWJlciBuYW1l CisgICAgICBpZiAoXy5pc1VuZGVmaW5lZChkYXRhLm1lbWJlcl9uYW1lKSB8 fAorICAgICAgICBfLmlzTnVsbChkYXRhLm1lbWJlcl9uYW1lKSB8fAorICAg ICAgICBTdHJpbmcoZGF0YS5tZW1iZXJfbmFtZSkucmVwbGFjZSgvXlxzK3xc cyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgIGVycm1zZyA9IF8oIlBs ZWFzZSBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgbWVtYmVyIG5hbWUuIikKKyAg ICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0KCdtZW1iZXJfbmFtZScsIGVy cm1zZykKKyAgICAgICAgICByZXR1cm4gZXJybXNnOworICAgICAgfSBlbHNl IHsKKyAgICAgICAgdGhpcy5lcnJvck1vZGVsLnVuc2V0KCdtZW1iZXJfbmFt ZScpOworICAgICAgfQorCisgICAgICAvLyBWYWxpZGF0aW9uIGZvciBMZW5n dGggZmllbGQKKyAgICAgIGlmIChkYXRhLmlzX3RsZW5ndGggJiYgIV8uaXNV bmRlZmluZWQoZGF0YS50bGVuZ3RoKSkgeworICAgICAgICBpZiAoZGF0YS50 bGVuZ3RoIDwgZGF0YS5taW5fdmFsICkKKyAgICAgICAgICBlcnJtc2cgPSBf KCJMZW5ndGggc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gIiArIGRhdGEubWlu X3ZhbCkKKyAgICAgICAgaWYgKGRhdGEudGxlbmd0aCA+IGRhdGEubWF4X3Zh bCApCisgICAgICAgICAgZXJybXNnID0gXygiTGVuZ3RoIHNob3VsZCBub3Qg YmUgZ3JlYXRlciB0aGFuICIgKyBkYXRhLm1heF92YWwpCisgICAgICAgIC8v IElmIHdlIGhhdmUgYW55IGVycm9yIHNldCB0aGVuIHRocm93IGl0IHRvIHVz ZXIKKyAgICAgICAgaWYoZXJybXNnKSB7CisgICAgICAgICAgdGhpcy5lcnJv ck1vZGVsLnNldCgndGxlbmd0aCcsIGVycm1zZykKKyAgICAgICAgICByZXR1 cm4gZXJybXNnOworICAgICAgICB9CisgICAgICB9IGVsc2UgeworICAgICAg ICB0aGlzLmVycm9yTW9kZWwudW5zZXQoJ3RsZW5ndGgnKTsKKyAgICAgIH0K KworICAgICAgLy8gVmFsaWRhdGlvbiBmb3IgcHJlY2lzaW9uIGZpZWxkCisg ICAgICBpZiAoZGF0YS5pc19wcmVjaXNpb24gJiYgIV8uaXNVbmRlZmluZWQo ZGF0YS5wcmVjaXNpb24pKSB7CisgICAgICAgIGlmIChkYXRhLnByZWNpc2lv biA8IGRhdGEubWluX3ZhbCApCisgICAgICAgICAgZXJybXNnID0gXygiUHJl Y2lzaW9uIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuICIgKyBkYXRhLm1pbl92 YWwpCisgICAgICAgIGlmIChkYXRhLnByZWNpc2lvbiA+IGRhdGEubWF4X3Zh bCApCisgICAgICAgICAgZXJybXNnID0gXygiUHJlY2lzaW9uIHNob3VsZCBu b3QgYmUgZ3JlYXRlciB0aGFuICIgKyBkYXRhLm1heF92YWwpCisgICAgICAg IC8vIElmIHdlIGhhdmUgYW55IGVycm9yIHNldCB0aGVuIHRocm93IGl0IHRv IHVzZXIKKyAgICAgICAgaWYoZXJybXNnKSB7CisgICAgICAgICAgdGhpcy5l cnJvck1vZGVsLnNldCgncHJlY2lzaW9uJywgZXJybXNnKQorICAgICAgICAg IHJldHVybiBlcnJtc2c7CisgICAgICAgIH0KKyAgICAgIH0gZWxzZSB7Cisg ICAgICAgIHRoaXMuZXJyb3JNb2RlbC51bnNldCgncHJlY2lzaW9uJyk7Cisg ICAgICB9CisKKyAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgfSk7CisK KyAgdmFyIEVudW1Nb2RlbCA9IEJhY2tmb3JtLkVudW1Nb2RlbCA9IHBnQWRt aW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7CisgICAgZGVmYXVsdHM6 IHsKKyAgICAgIGxhYmVsOiBudWxsLAorICAgIH0sCisgICAgc2NoZW1hOiBb eworICAgICAgaWQ6ICdsYWJlbCcsIGxhYmVsOiAne3sgXygnTGFiZWwnKSB9 fScsdHlwZTogJ3RleHQnLCBkaXNhYmxlZDogZmFsc2UsCisgICAgICBjZWxs SGVhZGVyQ2xhc3NlczogJ3dpZHRoX3BlcmNlbnRfOTknCisgICAgfV0sCisg ICAgdmFsaWRhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGVyciA9IHt9 LAorICAgICAgICAgIGVycm1zZyA9IG51bGwsCisgICAgICAgICAgZGF0YSA9 IHRoaXMudG9KU09OKCk7CisKKyAgICAgIGlmIChfLmlzVW5kZWZpbmVkKGRh dGEubGFiZWwpIHx8CisgICAgICAgIF8uaXNOdWxsKGRhdGEubGFiZWwpIHx8 CisgICAgICAgIFN0cmluZyhkYXRhLmxhYmVsKS5yZXBsYWNlKC9eXHMrfFxz KyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgZXJybXNnID0gXygiUGxl YXNlIHNwZWNpZnkgdGhlIHZhbHVlIGZvciBsYWJlbC4iKTsKKyAgICAgICAg ICB0aGlzLmVycm9yTW9kZWwuc2V0KCdsYWJlbCcsIGVycm1zZykKKyAgICAg ICAgICByZXR1cm4gZXJybXNnOworICAgICAgfSBlbHNlIHsKKyAgICAgICAg dGhpcy5lcnJvck1vZGVsLnVuc2V0KCdsYWJlbCcpOworICAgICAgfQorCisK KyAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgfSk7CisKKyAgaWYgKCFw Z0Jyb3dzZXIuTm9kZXNbJ3R5cGUnXSkgeworICAgIHBnQWRtaW4uQnJvd3Nl ci5Ob2Rlc1sndHlwZSddID0gcGdCcm93c2VyLk5vZGUuZXh0ZW5kKHsKKyAg ICAgIHR5cGU6ICd0eXBlJywKKyAgICAgIGxhYmVsOiAne3sgXygnVHlwZScp IH19JywKKyAgICAgIGNvbGxlY3Rpb25fdHlwZTogJ2NvbGwtdHlwZScsCisg ICAgICBoYXNTUUw6IHRydWUsCisgICAgICBoYXNEZXBlbmRzOiB0cnVlLAor ICAgICAgcGFyZW50X3R5cGU6IFsnc2NoZW1hJywgJ2NhdGFsb2cnXSwKKyAg ICAgIEluaXQ6IGZ1bmN0aW9uKCkgeworICAgICAgICAvKiBBdm9pZCBtdWxp dHBsZSByZWdpc3RyYXRpb24gb2YgbWVudXMgKi8KKyAgICAgICAgaWYgKHRo aXMuaW5pdGlhbGl6ZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg ICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7CisKKyAgICAgICAgcGdCcm93 c2VyLmFkZF9tZW51cyhbeworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfdHlw ZV9vbl9jb2xsJywgbm9kZTogJ2NvbGwtdHlwZScsIG1vZHVsZTogdGhpcywK KyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNh bGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0 ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdU eXBlLi4uJykgfX0nLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNv bi10eXBlJywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZScsIGNoZWNrOiB0cnVl fSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUnCisgICAgICAgIH0s eworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfdHlwZScsIG5vZGU6ICd0eXBl JywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0 JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVz JywKKyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0 LCBsYWJlbDogJ3t7IF8oJ1R5cGUuLi4nKSB9fScsCisgICAgICAgICAgaWNv bjogJ3djVGFiSWNvbiBpY29uLXR5cGUnLCBkYXRhOiB7YWN0aW9uOiAnY3Jl YXRlJywgY2hlY2s6IHRydWV9LAorICAgICAgICAgIGVuYWJsZTogJ2NhbkNy ZWF0ZScKKyAgICAgICAgfSx7CisgICAgICAgICAgbmFtZTogJ2NyZWF0ZV90 eXBlJywgbm9kZTogJ3NjaGVtYScsIG1vZHVsZTogdGhpcywKKyAgICAgICAg ICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAn c2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdj cmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdUeXBlLi4uJykg fX0nLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi10eXBlJywg ZGF0YToge2FjdGlvbjogJ2NyZWF0ZScsIGNoZWNrOiBmYWxzZX0sCisgICAg ICAgICAgZW5hYmxlOiAnY2FuQ3JlYXRlJworICAgICAgICB9CisgICAgICAg IF0pOworCisgICAgICB9LAorICAgICAgY2FuRHJvcDogcGdCcm93c2VyLk5v ZGVzWydzY2hlbWEnXS5jYW5DaGlsZERyb3AsCisgICAgICBjYW5Ecm9wQ2Fz Y2FkZTogcGdCcm93c2VyLk5vZGVzWydzY2hlbWEnXS5jYW5DaGlsZERyb3As CisgICAgICBleHRfZnVuY3M6IHVuZGVmaW5lZCwKKyAgICAgIG1vZGVsOiBw Z0FkbWluLkJyb3dzZXIuTm9kZS5Nb2RlbC5leHRlbmQoeworICAgICAgICBk ZWZhdWx0czogeworICAgICAgICAgIG5hbWU6IHVuZGVmaW5lZCwKKyAgICAg ICAgICBvaWQ6IHVuZGVmaW5lZCwKKyAgICAgICAgICBpc19zeXNfdHlwZTog ZmFsc2UsCisgICAgICAgICAgdHlwdHlwZTogdW5kZWZpbmVkCisgICAgICAg fSwKKyAgICAgICAgc2NoZW1hOiBbeworICAgICAgICAgIGlkOiAnbmFtZScs IGxhYmVsOiAne3sgXygnTmFtZScpIH19JywgY2VsbDogJ3N0cmluZycsCisg ICAgICAgICAgdHlwZTogJ3RleHQnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAn Y3JlYXRlJywgJ2VkaXQnXSwKKyAgICAgICAgICBkaXNhYmxlZDogJ2luU2No ZW1hJworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ29pZCcsIGxhYmVs Oid7eyBfKCdPaWQnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAg IHR5cGU6ICd0ZXh0JyAsIG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0J10s IGRpc2FibGVkOiB0cnVlCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAn dHlwZW93bmVyJywgbGFiZWw6J3t7IF8oJ093bmVyJykgfX0nLCBjZWxsOiAn c3RyaW5nJywKKyAgICAgICAgICBjb250cm9sOiAnbm9kZS1saXN0LWJ5LW5h bWUnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgbW9kZTogWydwcm9wZXJ0 aWVzJywgJ2NyZWF0ZScsICdlZGl0J10sIG5vZGU6ICdyb2xlJywKKyAgICAg ICAgICBkaXNhYmxlZDogJ2luU2NoZW1hJworICAgICAgICB9LHsKKyAgICAg ICAgICBpZDogJ3NjaGVtYScsIGxhYmVsOid7eyBfKCdTY2hlbWEnKSB9fScs IGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgbW9k ZTogWydjcmVhdGUnLCAnZWRpdCddLCBub2RlOiAnc2NoZW1hJywKKyAgICAg ICAgICBkaXNhYmxlZDogJ2luU2NoZW1hJywgZmlsdGVyOiBmdW5jdGlvbihk KSB7CisgICAgICAgICAgICAvLyBJZiBzY2hlbWEgbmFtZSBzdGFydCB3aXRo IHBnXyogdGhlbiB3ZSBuZWVkIHRvIGV4Y2x1ZGUgdGhlbQorICAgICAgICAg ICAgaWYoZCAmJiBkLmxhYmVsLm1hdGNoKC9ecGdfLykpCisgICAgICAgICAg ICB7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg IH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgIH0sCisg ICAgICAgICAgY29udHJvbDogQmFja2Zvcm0uTm9kZUxpc3RCeU5hbWVDb250 cm9sLmV4dGVuZCh7CisgICAgICAgICAgICByZW5kZXI6IGZ1bmN0aW9uKCl7 CisgICAgICAgICAgICAvLyBJbml0aWFsaXplIHBhcmVudCdzIHJlbmRlciBt ZXRob2QKKyAgICAgICAgICAgIEJhY2tmb3JtLk5vZGVMaXN0QnlOYW1lQ29u dHJvbC5wcm90b3R5cGUucmVuZGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7 CisKKyAgICAgICAgICAgIC8vIFNldCBzY2hlbWEgZGVmYXVsdCB2YWx1ZSB0 byBpdHMgcGFyZW50IFNjaGVtYQorICAgICAgICAgICAgaWYodGhpcy5tb2Rl bC5pc05ldygpKXsKKyAgICAgICAgICAgIHRoaXMubW9kZWwuc2V0KHsnc2No ZW1hJzogdGhpcy5tb2RlbC5ub2RlX2luZm8uc2NoZW1hLmxhYmVsfSk7Cisg ICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAg ICAgICAgIH0KKyAgICAgICAgICB9KQorICAgICAgICB9LHsKKyAgICAgICAg ICBpZDogJ3R5cHR5cGUnLCBsYWJlbDone3sgXygnVHlwZScpIH19JywKKyAg ICAgICAgICBtb2RlOiBbJ2NyZWF0ZScsJ2VkaXQnXSwgZGlzYWJsZWQ6ICdp blNjaGVtYVdpdGhNb2RlbENoZWNrJywKKyAgICAgICAgICBncm91cDogJ3t7 IF8oJ1R5cGUgRGVmaW5pdGlvbicpIH19JywKKyAgICAgICAgICBtb2RlOiBb J2VkaXQnLCAnY3JlYXRlJ10sCisgICAgICAgICAgc2VsZWN0MjogeyB3aWR0 aDogIjUwJSIgfSwKKyAgICAgICAgICBvcHRpb25zOiBbCisgICAgICAgICAg ICB7bGFiZWw6ICJDb21wb3NpdGUiLCB2YWx1ZTogImMifSwKKyAgICAgICAg ICAgIHtsYWJlbDogIkVudW1yYXRpb24iLCB2YWx1ZTogImUifSwKKyAgICAg ICAgICAgIHtsYWJlbDogIkV4dGVybmFsIiwgdmFsdWU6ICJ4In0sCisgICAg ICAgICAgICB7bGFiZWw6ICJSYW5nZSIsIHZhbHVlOiAiciJ9LAorICAgICAg ICAgIF0sCisgICAgICAgICAgZGlzYWJsZWQ6ICdpblNjaGVtYVdpdGhNb2Rl bENoZWNrJywKKyAgICAgICAgICAvLyBJZiBjcmVhdGUgbW9kZSB0aGVuIGJ5 IGRlZmF1bHQgb3BlbiBjb21wb3NpdGUgdHlwZQorICAgICAgICAgIGNvbnRy b2w6IEJhY2tmb3JtLlNlbGVjdDJDb250cm9sLmV4dGVuZCh7CisgICAgICAg ICAgICByZW5kZXI6IGZ1bmN0aW9uKCl7CisgICAgICAgICAgICAgIC8vIElu aXRpYWxpemUgcGFyZW50J3MgcmVuZGVyIG1ldGhvZAorICAgICAgICAgICAg ICBCYWNrZm9ybS5TZWxlY3QyQ29udHJvbC5wcm90b3R5cGUucmVuZGVyLmFw cGx5KHRoaXMsIGFyZ3VtZW50cyk7CisgICAgICAgICAgICAgIGlmKHRoaXMu bW9kZWwuaXNOZXcoKSkgeworICAgICAgICAgICAgICAgIHRoaXMubW9kZWwu c2V0KHsndHlwdHlwZSc6ICdjJ30pOworICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICAgICAgfQorICAgICAg ICAgIH0pCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnY29tcG9zaXRl JywgbGFiZWw6ICd7eyBfKCdDb21wb3NpdGUgVHlwZScpIH19JywKKyAgICAg ICAgICBtb2RlbDogQ29tcG9zaXRlTW9kZWwsIGVkaXRhYmxlOiB0cnVlLCB0 eXBlOiAnY29sbGVjdGlvbicsCisgICAgICAgICAgZ3JvdXA6ICd7eyBfKCdU eXBlIERlZmluaXRpb24nKSB9fScsIG1vZGU6IFsnZWRpdCcsICdjcmVhdGUn XSwKKyAgICAgICAgICBjb250cm9sOiAndW5pcXVlLWNvbC1jb2xsZWN0aW9u JywgdW5pcXVlQ29sIDogWydtZW1iZXJfbmFtZSddLAorICAgICAgICAgIGNh bkFkZDogdHJ1ZSwgY2FuRWRpdDogdHJ1ZSwgY2FuRGVsZXRlOiB0cnVlLCBk aXNhYmxlZDogJ2luU2NoZW1hJywKKyAgICAgICAgICBkZXBzOiBbJ3R5cHR5 cGUnXSwgZGVwczogWyd0eXB0eXBlJ10sCisgICAgICAgICAgdmlzaWJsZTog ZnVuY3Rpb24obSkgeworICAgICAgICAgICBpZiAobS5nZXQoJ3R5cHR5cGUn KSA9PT0gJ2MnKSB7CisgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg ICAgICAgIH0KKyAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg IH0KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdlbnVtJywgbGFiZWw6 ICd7eyBfKCdFbnVtcmF0aW9uIFR5cGUnKSB9fScsCisgICAgICAgICAgbW9k ZWw6IEVudW1Nb2RlbCwgZWRpdGFibGU6IHRydWUsIHR5cGU6ICdjb2xsZWN0 aW9uJywKKyAgICAgICAgICBncm91cDogJ3t7IF8oJ1R5cGUgRGVmaW5pdGlv bicpIH19JywgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICAg IGNhbkFkZDogdHJ1ZSwgY2FuRWRpdDogZmFsc2UsIGNhbkRlbGV0ZTogZnVu Y3Rpb24obSkgeworICAgICAgICAgICAgICAvLyBXZSB3aWxsIGRpc2FibGUg aXQgaWYgaXQncyBpbiAnZWRpdCcgbW9kZQorICAgICAgICAgICAgICBpZiAo bS5pc05ldygpKSB7CisgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK KyAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgIHJl dHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9LAorICAg ICAgICAgIGRpc2FibGVkOiAnaW5TY2hlbWEnLCBkZXBzOiBbJ3R5cHR5cGUn XSwKKyAgICAgICAgICBjb250cm9sOiAndW5pcXVlLWNvbC1jb2xsZWN0aW9u JywgdW5pcXVlQ29sIDogWydsYWJlbCddLAorICAgICAgICAgIHZpc2libGU6 IGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgICAgcmV0dXJuIG0uZ2V0KCd0eXB0 eXBlJykgPT09ICdlJzsKKyAgICAgICAgICB9CisgICAgICAgIH0seworICAg ICAgICAgIC8vIFdlIHdpbGwgZGlzYWJsZSByYW5nZSB0eXBlIGNvbnRyb2wg aW4gZWRpdCBtb2RlCisgICAgICAgICAgdHlwZTogJ25lc3RlZCcsIGNvbnRy b2w6ICdmaWVsZHNldCcsIGdyb3VwOiAne3sgXygnVHlwZSBEZWZpbml0aW9u JykgfX0nLAorICAgICAgICAgIG1vZGU6IFsnZWRpdCcsICdjcmVhdGUnXSwK KyAgICAgICAgICB2aXNpYmxlOiBmdW5jdGlvbihtKSB7CisgICAgICAgICAg ICByZXR1cm4gbS5nZXQoJ3R5cHR5cGUnKSA9PT0gJ3InOworICAgICAgICAg IH0sIGRlcHM6IFsndHlwdHlwZSddLCBsYWJlbDogJ3t7IF8oJ1JhbmdlIFR5 cGUnKSB9fScsCisgICAgICAgICAgc2NoZW1hOlt7CisgICAgICAgICAgICBp ZDogJ3R5cG5hbWUnLCBsYWJlbDone3sgXygnU3VidHlwZScpIH19JywgY2Vs bDogJ3N0cmluZycsCisgICAgICAgICAgICBjb250cm9sOiAnbm9kZS1hamF4 LW9wdGlvbnMnLAorICAgICAgICAgICAgdXJsOiAnZ2V0X3N0eXBlcycsIHR5 cGU6ICd0ZXh0JywgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2NyZWF0ZScsICdl ZGl0J10sCisgICAgICAgICAgICBncm91cDogJ3t7IF8oJ1JhbmdlIFR5cGUn KSB9fScsIGRpc2FibGVkOiAnaW5TY2hlbWFXaXRoTW9kZWxDaGVjaycsCisg ICAgICAgICAgICB0cmFuc2Zvcm06IGZ1bmN0aW9uKGQpeworICAgICAgICAg ICAgICB0aGlzLm1vZGVsLnN1YnR5cGVzID0gIGQ7CisgICAgICAgICAgICAg IHJldHVybiBkOworICAgICAgICAgICAgfQorICAgICAgICAgIH0seworICAg ICAgICAgICAgICBpZDogJ29wY25hbWUnLCBsYWJlbDone3sgXygnU3VidHlw ZSBPcENsYXNzJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICAg ICAgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2NyZWF0ZScsICdlZGl0J10sIGdy b3VwOiAne3sgXygnUmFuZ2UgVHlwZScpIH19JywKKyAgICAgICAgICAgICAg ZGlzYWJsZWQ6ICdpblNjaGVtYVdpdGhNb2RlbENoZWNrJywgZGVwczogWyd0 eXBuYW1lJ10sCisgICAgICAgICAgICAgIGNvbnRyb2w6ICdzZWxlY3QnLCBv cHRpb25zOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB2YXIgbF90 eXBuYW1lID0gdGhpcy5tb2RlbC5nZXQoJ3R5cG5hbWUnKSwKKyAgICAgICAg ICAgICAgICAgIHNlbGYgPSB0aGlzLAorICAgICAgICAgICAgICAgICAgcmVz dWx0ID0gW107CisgICAgICAgICAgICAgICAgaWYoIV8uaXNVbmRlZmluZWQo bF90eXBuYW1lKSAmJiBsX3R5cG5hbWUgIT0gJycpCisgICAgICAgICAgICAg ICAgeworICAgICAgICAgICAgICAgICAgdmFyIG5vZGUgPSB0aGlzLmZpZWxk LmdldCgnc2NoZW1hX25vZGUnKSwKKyAgICAgICAgICAgICAgICAgIF91cmwg PSBub2RlLmdlbmVyYXRlX3VybC5hcHBseSgKKyAgICAgICAgICAgICAgICAg ICAgbm9kZSwgWworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGws ICdnZXRfc3Vib3BjbGFzcycsIHRoaXMuZmllbGQuZ2V0KCdub2RlX2RhdGEn KSwgZmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5m aWVsZC5nZXQoJ25vZGVfaW5mbycpCisgICAgICAgICAgICAgICAgICAgIF0p OworICAgICAgICAgICAgICAgICAgJC5hamF4KHsKKyAgICAgICAgICAgICAg ICAgICAgYXN5bmM6IGZhbHNlLAorICAgICAgICAgICAgICAgICAgICB1cmw6 IF91cmwsCisgICAgICAgICAgICAgICAgICAgIGNhY2hlOiBmYWxzZSwKKyAg ICAgICAgICAgICAgICAgICAgZGF0YTogeyd0eXBuYW1lJyA6IGxfdHlwbmFt ZX0sCisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKHJl cykgeworICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlcy5kYXRh OworICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAg ICBlcnJvcjogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAg c2VsZi5tb2RlbC50cmlnZ2VyKCdwZ2FkbWluOnZpZXc6ZmV0Y2g6ZXJyb3In LCBzZWxmLm1vZGVsLCBzZWxmLmZpZWxkKTsKKyAgICAgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg ICAgIC8vCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJl dHVybiByZXN1bHQ7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0s eworICAgICAgICAgICAgICBpZDogJ2NvbGxuYW1lJywgbGFiZWw6J3t7IF8o J0NvbGxhdGlvbicpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAg ICAgIHR5cGU6ICd0ZXh0JywgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2NyZWF0 ZScsICdlZGl0J10sCisgICAgICAgICAgICAgIGdyb3VwOiAne3sgXygnUmFu Z2UgVHlwZScpIH19JywKKyAgICAgICAgICAgICAgZGVwczogWyd0eXBuYW1l J10sIGNvbnRyb2w6ICdub2RlLWFqYXgtb3B0aW9ucycsIHVybDogJ2dldF9j b2xsYXRpb25zJywKKyAgICAgICAgICAgICAgZGlzYWJsZWQ6IGZ1bmN0aW9u KG0pIHsKKyAgICAgICAgICAgICAgICBpZih0aGlzLm5vZGVfaW5mbyAmJiAg J2NhdGFsb2cnIGluIHRoaXMubm9kZV9pbmZvKQorICAgICAgICAgICAgICAg IHsKKyAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAg ICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIERpc2JhbGUgaW4gZWRp dCBtb2RlCisgICAgICAgICAgICAgICAgaWYgKCFtLmlzTmV3KCkpIHsKKyAg ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAg IH0KKworICAgICAgICAgICAgICAgIC8vIFRvIGNoZWNrIGlmIGNvbGxhdGlv biBpcyBhbGxvd2VkPworICAgICAgICAgICAgICAgIHZhciBvZl9zdWJ0eXBl ID0gbS5nZXQoJ3R5cG5hbWUnKSwKKyAgICAgICAgICAgICAgICAgIGlzX2Nv bGxhdGUgPSB1bmRlZmluZWQ7CisgICAgICAgICAgICAgICAgaWYoIV8uaXNV bmRlZmluZWQob2Zfc3VidHlwZSkpIHsKKyAgICAgICAgICAgICAgICAgIC8v IGl0ZXJhdGluZyBvdmVyIGFsbCB0aGUgdHlwZXMKKyAgICAgICAgICAgICAg ICAgIF8uZWFjaChtLnN1YnR5cGVzLCBmdW5jdGlvbihzKSB7CisgICAgICAg ICAgICAgICAgICAgIC8vIGlmIHN1YnR5cGUgZnJvbSBzZWxlY3RlZCBmcm9t IGNvbWJvYm94IG1hdGNoZXMKKyAgICAgICAgICAgICAgICAgICAgaWYgKCBv Zl9zdWJ0eXBlID09PSBzLmxhYmVsICkgeworICAgICAgICAgICAgICAgICAg ICAgICAgLy8gaWYgY29sbGF0aW9uIGlzIGFsbG93ZWQgZm9yIHNlbGVjdGVk IHN1YnR5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZW4gZW5h YmxlIGl0IGVsc2UgZGlzYWJsZSBpdAorICAgICAgICAgICAgICAgICAgICAg ICAgaXNfY29sbGF0ZSA9IHMuaXNfY29sbGF0ZTsKKyAgICAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgIC8vIElmIGlzX2NvbGxhdGUgaXMgdHJ1 ZSB0aGVuIGRvIG5vdCBkaXNhYmxlCisgICAgICAgICAgICAgICAgcmV0dXJu IGlzX2NvbGxhdGUgPyBmYWxzZSA6IHRydWU7CisgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgIH0seworICAgICAgICAgICAgICBpZDogJ3JuZ2Nhbm9u aWNhbCcsIGxhYmVsOid7eyBfKCdDYW5vbmljYWwnKSB9fScsIGNlbGw6ICdz dHJpbmcnLAorICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsIG1vZGU6IFsn cHJvcGVydGllcycsICdjcmVhdGUnLCAnZWRpdCddLAorICAgICAgICAgICAg ICBncm91cDogJ3t7IF8oJ1JhbmdlIFR5cGUnKSB9fScsCisgICAgICAgICAg ICAgIGRpc2FibGVkOiAnaW5TY2hlbWFXaXRoTW9kZWxDaGVjaycsIGRlcHM6 IFsnbmFtZScsICd0eXBuYW1lJ10sCisgICAgICAgICAgICAgIGNvbnRyb2w6 ICdzZWxlY3QnLCBvcHRpb25zOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg ICAgICB2YXIgbmFtZSA9IHRoaXMubW9kZWwuZ2V0KCduYW1lJyksCisgICAg ICAgICAgICAgICAgIHNlbGYgPSB0aGlzLAorICAgICAgICAgICAgICAgICBy ZXN1bHQgPSBbXTsKKworICAgICAgICAgICAgICAgIGlmKCFfLmlzVW5kZWZp bmVkKG5hbWUpICYmIG5hbWUgIT0gJycpCisgICAgICAgICAgICAgICAgewor ICAgICAgICAgICAgICAgICAgdmFyIG5vZGUgPSB0aGlzLmZpZWxkLmdldCgn c2NoZW1hX25vZGUnKSwKKyAgICAgICAgICAgICAgICAgIF91cmwgPSBub2Rl LmdlbmVyYXRlX3VybC5hcHBseSgKKyAgICAgICAgICAgICAgICAgICAgbm9k ZSwgWworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsICdnZXRf Y2Fub25pY2FsJywgdGhpcy5maWVsZC5nZXQoJ25vZGVfZGF0YScpLCBmYWxz ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmdl dCgnbm9kZV9pbmZvJykKKyAgICAgICAgICAgICAgICAgICAgXSk7CisgICAg ICAgICAgICAgICAgICAkLmFqYXgoeworICAgICAgICAgICAgICAgICAgICBh c3luYzogZmFsc2UsCisgICAgICAgICAgICAgICAgICAgIHVybDogX3VybCwK KyAgICAgICAgICAgICAgICAgICAgY2FjaGU6IGZhbHNlLAorICAgICAgICAg ICAgICAgICAgICBkYXRhOiB7Im5hbWUiIDogbmFtZX0sCisgICAgICAgICAg ICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykgeworICAgICAgICAg ICAgICAgICAgICAgIHJlc3VsdCA9IHJlcy5kYXRhOworICAgICAgICAgICAg ICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBlcnJvcjogZnVuY3Rp b24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgc2VsZi5tb2RlbC50cmln Z2VyKCdwZ2FkbWluOnZpZXc6ZmV0Y2g6ZXJyb3InLAorICAgICAgICAgICAg ICAgICAgICAgIHNlbGYubW9kZWwsIHNlbGYuZmllbGQpOworICAgICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0seworICAgICAgICAgICAgICBp ZDogJ3JuZ3N1YmRpZmYnLCBsYWJlbDone3sgXygnU3ViVHlwZSBkaWZmJykg fX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICAgICAgdHlwZTogJ3Rl eHQnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnY3JlYXRlJywgJ2VkaXQnXSwK KyAgICAgICAgICAgICAgZ3JvdXA6ICd7eyBfKCdSYW5nZSBUeXBlJykgfX0n LAorICAgICAgICAgICAgICBkaXNhYmxlZDogJ2luU2NoZW1hV2l0aE1vZGVs Q2hlY2snLCBkZXBzOiBbJ29wY25hbWUnXSwKKyAgICAgICAgICAgICAgY29u dHJvbDogJ3NlbGVjdCcsIG9wdGlvbnM6IGZ1bmN0aW9uKCkgeworICAgICAg ICAgICAgICAgIHZhciBsX3R5cG5hbWUgPSB0aGlzLm1vZGVsLmdldCgndHlw bmFtZScpLAorICAgICAgICAgICAgICAgICAgbF9vcGNuYW1lID0gdGhpcy5t b2RlbC5nZXQoJ29wY25hbWUnKSwKKyAgICAgICAgICAgICAgICAgIHNlbGYg PSB0aGlzLAorICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gW107CisKKyAg ICAgICAgICAgICAgICBpZighXy5pc1VuZGVmaW5lZChsX3R5cG5hbWUpICYm IGxfdHlwbmFtZSAhPSAnJyAmJgorICAgICAgICAgICAgICAgICFfLmlzVW5k ZWZpbmVkKGxfb3BjbmFtZSkgJiYgbF9vcGNuYW1lICE9ICcnKSB7CisgICAg ICAgICAgICAgICAgICB2YXIgbm9kZSA9IHRoaXMuZmllbGQuZ2V0KCdzY2hl bWFfbm9kZScpLAorICAgICAgICAgICAgICAgICAgX3VybCA9IG5vZGUuZ2Vu ZXJhdGVfdXJsLmFwcGx5KAorICAgICAgICAgICAgICAgICAgICBub2RlLCBb CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgJ2dldF9zdHlw ZWRpZmYnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmll bGQuZ2V0KCdub2RlX2RhdGEnKSwgZmFsc2UsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGhpcy5maWVsZC5nZXQoJ25vZGVfaW5mbycpCisgICAg ICAgICAgICAgICAgICAgIF0pOworICAgICAgICAgICAgICAgICAgJC5hamF4 KHsKKyAgICAgICAgICAgICAgICAgICAgYXN5bmM6IGZhbHNlLAorICAgICAg ICAgICAgICAgICAgICB1cmw6IF91cmwsCisgICAgICAgICAgICAgICAgICAg IGNhY2hlOiBmYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgZGF0YTogeyd0 eXBuYW1lJyA6IGxfdHlwbmFtZSwgJ29wY25hbWUnOiBsX29wY25hbWV9LAor ICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihyZXMpIHsK KyAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXMuZGF0YTsKKyAg ICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgZXJy b3I6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgIHNlbGYu bW9kZWwudHJpZ2dlcigncGdhZG1pbjp2aWV3OmZldGNoOmVycm9yJywKKyAg ICAgICAgICAgICAgICAgICAgICBzZWxmLm1vZGVsLCBzZWxmLmZpZWxkKTsK KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9 KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIHJldHVybiBy ZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgfV0KKyAgICAgICAg fSx7CisgICAgICAgICAgdHlwZTogJ25lc3RlZCcsIGNvbnRyb2w6ICd0YWIn LCBncm91cDogJ3t7IF8oJ1R5cGUgRGVmaW5pdGlvbicpIH19JywKKyAgICAg ICAgICBsYWJlbDogJ3t7IF8oJ0V4dGVybmFsIFR5cGUnKSB9fScsIGRlcHM6 IFsndHlwdHlwZSddLAorICAgICAgICAgIG1vZGU6IFsnY3JlYXRlJywgJ2Vk aXQnXSwKKyAgICAgICAgICB2aXNpYmxlOiBmdW5jdGlvbihtKSB7CisgICAg ICAgICAgICByZXR1cm4gbS5nZXQoJ3R5cHR5cGUnKSA9PT0gJ3gnOworICAg ICAgICAgIH0sCisgICAgICAgICAgc2NoZW1hOlt7CisgICAgICAgICAgICBp ZDogJ3R5cGlucHV0JywgbGFiZWw6J3t7IF8oJ0lucHV0IGZ1bmN0aW9uJykg fX0nLAorICAgICAgICAgICAgY2VsbDogJ3N0cmluZycsdHlwZTogJ3RleHQn LAorICAgICAgICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2NyZWF0ZScs ICdlZGl0J10sIGdyb3VwOiAnUmVxdWlyZWQnLAorICAgICAgICAgICAgZGlz YWJsZWQ6ICdpblNjaGVtYVdpdGhNb2RlbENoZWNrJywKKyAgICAgICAgICAg IGNvbnRyb2w6ICdub2RlLWFqYXgtb3B0aW9ucycsIHVybDogJ2dldF9leHRl cm5hbF9mdW5jdGlvbnMnLAorICAgICAgICAgICAgdHJhbnNmb3JtOiAnZXh0 ZXJuYWxfZnVuY19jb21ibycKKyAgICAgICAgICB9LHsKKyAgICAgICAgICAg IGlkOiAndHlwb3V0cHV0JywgbGFiZWw6J3t7IF8oJ091dHB1dCBmdW5jdGlv bicpIH19JywKKyAgICAgICAgICAgIGNlbGw6ICdzdHJpbmcnLAorICAgICAg ICAgICAgdHlwZTogJ3RleHQnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnY3Jl YXRlJywgJ2VkaXQnXSwKKyAgICAgICAgICAgIGdyb3VwOiAnUmVxdWlyZWQn LAorICAgICAgICAgICAgZGlzYWJsZWQ6ICdpblNjaGVtYVdpdGhNb2RlbENo ZWNrJworICAgICAgICAgICAgLGNvbnRyb2w6ICdub2RlLWFqYXgtb3B0aW9u cycsIHVybDogJ2dldF9leHRlcm5hbF9mdW5jdGlvbnMnLAorICAgICAgICAg ICAgdHJhbnNmb3JtOiAnZXh0ZXJuYWxfZnVuY19jb21ibycKKyAgICAgICAg ICB9LHsKKyAgICAgICAgICAgIGlkOiAndHlwcmVjZWl2ZScsIGxhYmVsOid7 eyBfKCdSZWNlaXZlIGZ1bmN0aW9uJykgfX0nLAorICAgICAgICAgICAgY2Vs bDogJ3N0cmluZycsIHR5cGU6ICd0ZXh0JywgZ3JvdXA6ICdPcHRpb25hbC0x JywKKyAgICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcycsICdjcmVhdGUn LCAnZWRpdCddLAorICAgICAgICAgICAgZGlzYWJsZWQ6ICdpblNjaGVtYVdp dGhNb2RlbENoZWNrJworICAgICAgICAgICAgLGNvbnRyb2w6ICdub2RlLWFq YXgtb3B0aW9ucycsIHVybDogJ2dldF9leHRlcm5hbF9mdW5jdGlvbnMnLAor ICAgICAgICAgICAgdHJhbnNmb3JtOiAnZXh0ZXJuYWxfZnVuY19jb21ibycK KyAgICAgICAgICB9LHsKKyAgICAgICAgICAgIGlkOiAndHlwc2VuZCcsIGxh YmVsOid7eyBfKCdTZW5kIGZ1bmN0aW9uJykgfX0nLAorICAgICAgICAgICAg Y2VsbDogJ3N0cmluZycsIGdyb3VwOiAnT3B0aW9uYWwtMScsCisgICAgICAg ICAgICB0eXBlOiAndGV4dCcsIG1vZGU6IFsncHJvcGVydGllcycsICdjcmVh dGUnLCAnZWRpdCddLAorICAgICAgICAgICAgZGlzYWJsZWQ6ICdpblNjaGVt YVdpdGhNb2RlbENoZWNrJworICAgICAgICAgICAgLGNvbnRyb2w6ICdub2Rl LWFqYXgtb3B0aW9ucycsIHVybDogJ2dldF9leHRlcm5hbF9mdW5jdGlvbnMn LAorICAgICAgICAgICAgdHJhbnNmb3JtOiAnZXh0ZXJuYWxfZnVuY19jb21i bycKKyAgICAgICAgICB9LHsKKyAgICAgICAgICAgIGlkOiAndHlwbW9kaW4n LCBsYWJlbDone3sgXygnVHlwbW9kIGluIGZ1bmN0aW9uJykgfX0nLAorICAg ICAgICAgICAgY2VsbDogJ3N0cmluZycsIHR5cGU6ICd0ZXh0JywKKyAgICAg ICAgICAgIG1vZGU6IFsncHJvcGVydGllcycsICdjcmVhdGUnLCAnZWRpdCdd LCBncm91cDogJ09wdGlvbmFsLTEnLAorICAgICAgICAgICAgZGlzYWJsZWQ6 ICdpblNjaGVtYVdpdGhNb2RlbENoZWNrJworICAgICAgICAgICAgLGNvbnRy b2w6ICdub2RlLWFqYXgtb3B0aW9ucycsIHVybDogJ2dldF9leHRlcm5hbF9m dW5jdGlvbnMnLAorICAgICAgICAgICAgdHJhbnNmb3JtOiBmdW5jdGlvbihk KSB7CisgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBbe2xhYmVsIDoiIiwg dmFsdWUgOiAiIn1dOworICAgICAgICAgICAgICBfLmVhY2goZCwgZnVuY3Rp b24oaXRlbSkgeworICAgICAgICAgICAgICAvLyBpZiB0eXBlIGZyb20gc2Vs ZWN0ZWQgZnJvbSBjb21ib2JveCBtYXRjaGVzIGluIG9wdGlvbnMKKyAgICAg ICAgICAgICAgaWYgKCBpdGVtLmNidHlwZSA9PT0gJ3R5cG1vZGluJyB8fCBp dGVtLmNidHlwZSA9PT0gJ2FsbCcpIHsKKyAgICAgICAgICAgICAgICByZXN1 bHQucHVzaChpdGVtKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAg IH0pOworICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAg ICB9CisgICAgICAgICAgfSx7CisgICAgICAgICAgICBpZDogJ3R5cG1vZG91 dCcsIGxhYmVsOid7eyBfKCdUeXBtb2Qgb3V0IGZ1bmN0aW9uJykgfX0nLAor ICAgICAgICAgICAgY2VsbDogJ3N0cmluZycsIGdyb3VwOiAnT3B0aW9uYWwt MScsCisgICAgICAgICAgICB0eXBlOiAndGV4dCcsIG1vZGU6IFsncHJvcGVy dGllcycsICdjcmVhdGUnLCAnZWRpdCddLAorICAgICAgICAgICAgZGlzYWJs ZWQ6ICdpblNjaGVtYVdpdGhNb2RlbENoZWNrJworICAgICAgICAgICAgLGNv bnRyb2w6ICdub2RlLWFqYXgtb3B0aW9ucycsIHVybDogJ2dldF9leHRlcm5h bF9mdW5jdGlvbnMnLAorICAgICAgICAgICAgdHJhbnNmb3JtOiBmdW5jdGlv bihkKSB7CisgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBbe2xhYmVsIDoi IiwgdmFsdWUgOiAiIn1dOworICAgICAgICAgICAgICBfLmVhY2goZCwgZnVu Y3Rpb24oaXRlbSkgeworICAgICAgICAgICAgICAvLyBpZiB0eXBlIGZyb20g c2VsZWN0ZWQgZnJvbSBjb21ib2JveCBtYXRjaGVzIGluIG9wdGlvbnMKKyAg ICAgICAgICAgICAgaWYgKCBpdGVtLmNidHlwZSA9PT0gJ3R5cG1vZG91dCcg fHwgaXRlbS5jYnR5cGUgPT09ICdhbGwnKSB7CisgICAgICAgICAgICAgICAg cmVzdWx0LnB1c2goaXRlbSk7CisgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICB9KTsKKyAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg ICAgICAgfQorICAgICAgICAgIH0seworICAgICAgICAgICAgaWQ6ICd0eXBs ZW4nLCBsYWJlbDone3sgXygnSW50ZXJuYWwgbGVuZ3RoJykgfX0nLAorICAg ICAgICAgICAgY2VsbDogJ2ludGVnZXInLCBncm91cDogJ09wdGlvbmFsLTEn LAorICAgICAgICAgICAgdHlwZTogJ2ludCcsIG1vZGU6IFsncHJvcGVydGll cycsICdjcmVhdGUnLCAnZWRpdCddLAorICAgICAgICAgICAgZGlzYWJsZWQ6 ICdpblNjaGVtYVdpdGhNb2RlbENoZWNrJworICAgICAgICAgIH0seworICAg ICAgICAgICAgaWQ6ICd2YXJpYWJsZScsIGxhYmVsOid7eyBfKCdWYXJpYWJs ZScpIH19JywgY2VsbDogJ3N3aXRjaCcsCisgICAgICAgICAgICBncm91cDog J09wdGlvbmFsLTEnLCB0eXBlOiAnc3dpdGNoJywKKyAgICAgICAgICAgIG1v ZGU6IFsnY3JlYXRlJywnZWRpdCddLCBvcHRpb25zOiBzd2l0Y2hPcHRpb25z LAorICAgICAgICAgICAgZGlzYWJsZWQ6ICdpblNjaGVtYVdpdGhNb2RlbENo ZWNrJworICAgICAgICAgIH0seworICAgICAgICAgICAgaWQ6ICd0eXBkZWZh dWx0JywgbGFiZWw6J3t7IF8oJ0RlZmF1bHQnKSB9fScsCisgICAgICAgICAg ICBjZWxsOiAnc3RyaW5nJywgZ3JvdXA6ICdPcHRpb25hbC0xJywKKyAgICAg ICAgICAgIHR5cGU6ICd0ZXh0JywgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2Ny ZWF0ZScsJ2VkaXQnXSwKKyAgICAgICAgICAgIGRpc2FibGVkOiAnaW5TY2hl bWFXaXRoTW9kZWxDaGVjaycKKyAgICAgICAgICB9LHsKKyAgICAgICAgICAg IGlkOiAndHlwYW5hbHl6ZScsIGxhYmVsOid7eyBfKCdBbmFseXplIGZ1bmN0 aW9uJykgfX0nLAorICAgICAgICAgICAgY2VsbDogJ3N0cmluZycsIGdyb3Vw OiAnT3B0aW9uYWwtMScsCisgICAgICAgICAgICB0eXBlOiAndGV4dCcsIG1v ZGU6IFsncHJvcGVydGllcycsICdjcmVhdGUnLCdlZGl0J10sCisgICAgICAg ICAgICBkaXNhYmxlZDogJ2luU2NoZW1hV2l0aE1vZGVsQ2hlY2snCisgICAg ICAgICAgICAsY29udHJvbDogJ25vZGUtYWpheC1vcHRpb25zJywgdXJsOiAn Z2V0X2V4dGVybmFsX2Z1bmN0aW9ucycsCisgICAgICAgICAgICB0cmFuc2Zv cm06ICdleHRlcm5hbF9mdW5jX2NvbWJvJworICAgICAgICAgIH0seworICAg ICAgICAgICAgaWQ6ICd0eXBjYXRlZ29yeScsIGxhYmVsOid7eyBfKCdDYXRl Z29yeScpIH19JywKKyAgICAgICAgICAgIGNlbGw6ICdzdHJpbmcnLCBncm91 cDogJ09wdGlvbmFsLTEnLAorICAgICAgICAgICAgdHlwZTogJ3RleHQnLCBt b2RlOiBbJ3Byb3BlcnRpZXMnLCAnY3JlYXRlJywnZWRpdCddLAorICAgICAg ICAgICAgZGlzYWJsZWQ6ICdpblNjaGVtYVdpdGhNb2RlbENoZWNrJywgY29u dHJvbDogJ3NlbGVjdDInLAorICAgICAgICAgICAgc2VsZWN0MjogeyBwbGFj ZWhvbGRlcjogIlNlbGVjdCBjYXRlZ29yeSIsIGFsbG93Q2xlYXI6IHRydWUs CisgICAgICAgICAgICAgd2lkdGg6ICIxMDAlIiB9LAorICAgICAgICAgICAg b3B0aW9uczogWworICAgICAgICAgICAgICB7bGFiZWwgOiIiLCB2YWx1ZSA6 ICIifSwKKyAgICAgICAgICAgICAge2xhYmVsIDoiQXJyYXkgdHlwZXMiLCB2 YWx1ZSA6ICJBIn0sCisgICAgICAgICAgICAgIHtsYWJlbCA6IkJvb2xlYW4g dHlwZXMiLCB2YWx1ZSA6ICJCIn0sCisgICAgICAgICAgICAgIHtsYWJlbCA6 IkNvbXBvc2l0ZSB0eXBlcyIsIHZhbHVlIDogIkMifSwKKyAgICAgICAgICAg ICAge2xhYmVsIDoiRGF0ZS90aW1lIHR5cGVzIiwgdmFsdWUgOiAiRCJ9LAor ICAgICAgICAgICAgICB7bGFiZWwgOiJFbnVtIHR5cGVzIiwgdmFsdWUgOiAi RSJ9LAorICAgICAgICAgICAgICB7bGFiZWwgOiJHZW9tZXRyaWMgdHlwZXMi LCB2YWx1ZSA6ICJHIn0sCisgICAgICAgICAgICAgIHtsYWJlbCA6Ik5ldHdv cmsgYWRkcmVzcyB0eXBlcyIsIHZhbHVlIDogIkkifSwKKyAgICAgICAgICAg ICAge2xhYmVsIDoiTnVtZXJpYyB0eXBlcyIsIHZhbHVlIDogIk4ifSwKKyAg ICAgICAgICAgICAge2xhYmVsIDoiUHNldWRvLXR5cGVzIiwgdmFsdWUgOiAi UCJ9LAorICAgICAgICAgICAgICB7bGFiZWwgOiJTdHJpbmcgdHlwZXMiLCB2 YWx1ZSA6ICJTIn0sCisgICAgICAgICAgICAgIHtsYWJlbCA6IlRpbWVzcGFu IHR5cGVzIiwgdmFsdWUgOiAiVCJ9LAorICAgICAgICAgICAgICB7bGFiZWwg OiJVc2VyLWRlZmluZWQgdHlwZXMiLCB2YWx1ZSA6ICJVIn0sCisgICAgICAg ICAgICAgIHtsYWJlbCA6IkJpdC1zdHJpbmcgdHlwZXMiLCB2YWx1ZSA6ICJW In0sCisgICAgICAgICAgICAgIHtsYWJlbCA6InVua25vd24gdHlwZSIsIHZh bHVlIDogIlgifQorICAgICAgICAgICAgXQorICAgICAgICAgIH0seworICAg ICAgICAgICAgaWQ6ICd0eXBpc3ByZWZlcnJlZCcsIGxhYmVsOid7eyBfKCdQ cmVmZXJlZCcpIH19JywgY2VsbDogJ3N3aXRjaCcsCisgICAgICAgICAgICB0 eXBlOiAnc3dpdGNoJywgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2NyZWF0ZScs J2VkaXQnXSwKKyAgICAgICAgICAgIG9wdGlvbnM6IHN3aXRjaE9wdGlvbnMs IGRpc2FibGVkOiAnaW5TY2hlbWFXaXRoTW9kZWxDaGVjaycsCisgICAgICAg ICAgICBncm91cDogJ09wdGlvbmFsLTEnCisgICAgICAgICAgfSx7CisgICAg ICAgICAgICBpZDogJ2VsZW1lbnQnLCBsYWJlbDone3sgXygnRWxlbWVudCcp IH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgICBjb250cm9sOiAn bm9kZS1hamF4LW9wdGlvbnMnLCBncm91cDogJ09wdGlvbmFsLTInLAorICAg ICAgICAgICAgdHlwZTogJ3RleHQnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAn Y3JlYXRlJywgJ2VkaXQnXSwKKyAgICAgICAgICAgIGRpc2FibGVkOiAnaW5T Y2hlbWFXaXRoTW9kZWxDaGVjaycsIHVybDogJ2dldF90eXBlcycKKyAgICAg ICAgICB9LHsKKyAgICAgICAgICAgIGlkOiAndHlwZGVsaW0nLCBsYWJlbDon e3sgXygnRGVsaW1pdGVyJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAg ICAgICAgIHR5cGU6ICd0ZXh0JywgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2Ny ZWF0ZScsICdlZGl0J10sCisgICAgICAgICAgICBncm91cDogJ09wdGlvbmFs LTInLCBkaXNhYmxlZDogJ2luU2NoZW1hV2l0aE1vZGVsQ2hlY2snCisgICAg ICAgICAgfSx7CisgICAgICAgICAgICBpZDogJ3R5cGFsaWduJywgbGFiZWw6 J3t7IF8oJ0FsaWdubWVudCcpIH19JywKKyAgICAgICAgICAgIGNlbGw6ICdz dHJpbmcnLCBncm91cDogJ09wdGlvbmFsLTInLAorICAgICAgICAgICAgdHlw ZTogJ3RleHQnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnY3JlYXRlJywgJ2Vk aXQnXSwKKyAgICAgICAgICAgIGRpc2FibGVkOiAnaW5TY2hlbWFXaXRoTW9k ZWxDaGVjaycsIGNvbnRyb2w6ICdzZWxlY3QyJywKKyAgICAgICAgICAgIHNl bGVjdDI6IHsgcGxhY2Vob2xkZXI6ICJTZWxlY3QgYWxpZ25tZW50IiwgYWxs b3dDbGVhcjogdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRo OiAiMTAwJSIgfSwKKyAgICAgICAgICAgIG9wdGlvbnM6IFsKKyAgICAgICAg ICAgICAge2xhYmVsIDoiIiwgdmFsdWUgOiAiIn0sCisgICAgICAgICAgICAg IHtsYWJlbDogImNoYXIiLCB2YWx1ZTogImMifSwKKyAgICAgICAgICAgICAg e2xhYmVsOiAiaW50MiIsIHZhbHVlOiAicyJ9LAorICAgICAgICAgICAgICB7 bGFiZWw6ICJpbjQiLCB2YWx1ZTogImkifSwKKyAgICAgICAgICAgICAge2xh YmVsOiAiZG91YmxlIiwgdmFsdWU6ICJkIn0sCisgICAgICAgICAgICBdCisg ICAgICAgICAgfSx7CisgICAgICAgICAgICBpZDogJ3R5cHN0b3JhZ2UnLCBs YWJlbDone3sgXygnU3RvcmFnZScpIH19JywKKyAgICAgICAgICAgIHR5cGU6 ICd0ZXh0JywgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2NyZWF0ZScsICdlZGl0 J10sCisgICAgICAgICAgICBncm91cDogJ09wdGlvbmFsLTInLCBjZWxsOiAn c3RyaW5nJywKKyAgICAgICAgICAgIGRpc2FibGVkOiAnaW5TY2hlbWFXaXRo TW9kZWxDaGVjaycsIGNvbnRyb2w6ICdzZWxlY3QyJywKKyAgICAgICAgICAg IHNlbGVjdDI6IHsgcGxhY2Vob2xkZXI6ICJTZWxlY3Qgc3RvcmFnZSIsIGFs bG93Q2xlYXI6IHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0 aDogIjEwMCUiIH0sCisgICAgICAgICAgICBvcHRpb25zOiBbCisgICAgICAg ICAgICAgIHtsYWJlbCA6IiIsIHZhbHVlIDogIiJ9LAorICAgICAgICAgICAg ICB7bGFiZWw6ICJQTEFJTiIsIHZhbHVlOiAicCJ9LAorICAgICAgICAgICAg ICB7bGFiZWw6ICJNQUlOIiwgdmFsdWU6ICJlIn0sCisgICAgICAgICAgICAg IHtsYWJlbDogIkVYVEVSTkFMIiwgdmFsdWU6ICJtIn0sCisgICAgICAgICAg ICAgIHtsYWJlbDogIkVYVEVOREVEIiwgdmFsdWU6ICJ4In0sCisgICAgICAg ICAgICAgXQorICAgICAgICAgIH0seworICAgICAgICAgICAgaWQ6ICd0eXBi eXZhbCcsIGxhYmVsOid7eyBfKCdQYXNzZWQgYnkgVmFsdWU/JykgfX0nLAor ICAgICAgICAgICAgY2VsbDogJ3N3aXRjaCcsIG9wdGlvbnM6IHN3aXRjaE9w dGlvbnMsCisgICAgICAgICAgICB0eXBlOiAnc3dpdGNoJywgbW9kZTogWydw cm9wZXJ0aWVzJywgJ2NyZWF0ZScsICdlZGl0J10sCisgICAgICAgICAgICBk aXNhYmxlZDogJ2luU2NoZW1hV2l0aE1vZGVsQ2hlY2snLCBncm91cDogJ09w dGlvbmFsLTInLAorICAgICAgICAgIH0seworICAgICAgICAgICAgaWQ6ICdp c19jb2xsYXRhYmxlJywgbGFiZWw6J3t7IF8oJ0NvbGxhdGFibGU/JykgfX0n LAorICAgICAgICAgICAgY2VsbDogJ3N3aXRjaCcsICBtaW5fdmVyc2lvbjog OTAxMDAsIGdyb3VwOiAnT3B0aW9uYWwtMicsCisgICAgICAgICAgICB0eXBl OiAnc3dpdGNoJywgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2NyZWF0ZScsICdl ZGl0J10sCisgICAgICAgICAgICBvcHRpb25zOiBzd2l0Y2hPcHRpb25zLCBk aXNhYmxlZDogJ2luU2NoZW1hV2l0aE1vZGVsQ2hlY2snCisgICAgICAgICAg Ly8gRW5kIG9mIGV4dGVuc2lvbiB0YWIKKyAgICAgICAgfV0KKyAgICAgICAg fSx7CisgICAgICAgICAgaWQ6ICdhbGlhcycsIGxhYmVsOid7eyBfKCdBbGlh cycpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ3Rl eHQnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwKKyAgICAgICAgICBkaXNhYmxl ZDogJ2luU2NoZW1hJworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3R5 cGVfYWNsJywgbGFiZWw6J3t7IF8oJ0FDTCcpIH19JywgY2VsbDogJ3N0cmlu ZycsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBtb2RlOiBbJ3Byb3BlcnRp ZXMnXSwKKyAgICAgICAgICBkaXNhYmxlZDogJ2luU2NoZW1hJworICAgICAg ICB9LHsKKyAgICAgICAgICBpZDogJ21lbWJlcl9saXN0JywgbGFiZWw6J3t7 IF8oJ01lbWJlcnMnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAg IHR5cGU6ICd0ZXh0JywgbW9kZTogWydwcm9wZXJ0aWVzJ10sCisgICAgICAg ICAgZGlzYWJsZWQ6ICdpblNjaGVtYScsIHZpc2libGU6IGZ1bmN0aW9uKG0p IHsKKyAgICAgICAgICAgIGlmKG0uZ2V0KCd0eXB0eXBlJykgPT09ICdjJykg eworICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0K KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICB9CisgICAg ICAgIH0seworICAgICAgICAgIGlkOiAnZW51bV9saXN0JywgbGFiZWw6J3t7 IF8oJ0xhYmVscycpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAg dHlwZTogJ3RleHQnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwKKyAgICAgICAg ICBkaXNhYmxlZDogJ2luU2NoZW1hJywgdmlzaWJsZTogZnVuY3Rpb24obSkg eworICAgICAgICAgICAgaWYobS5nZXQoJ3R5cHR5cGUnKSA9PT0gJ2UnKSB7 CisgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQor ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgIH0KKyAgICAg ICAgfSx7CisgICAgICAgICAgaWQ6ICdpc19zeXNfdHlwZScsIGxhYmVsOid7 eyBfKCdTeXN0ZW0gdHlwZT8nKSB9fScsIGNlbGw6ICdzd2l0Y2gnLAorICAg ICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwg b3B0aW9uczogc3dpdGNoT3B0aW9ucywKKyAgICAgICAgICBkaXNhYmxlZDog J2luU2NoZW1hJworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2Rlc2Ny aXB0aW9uJywgbGFiZWw6J3t7IF8oJ0NvbW1lbnQnKSB9fScsIGNlbGw6ICdz dHJpbmcnLAorICAgICAgICAgIHR5cGU6ICdtdWx0aWxpbmUnLCBtb2RlOiBb J3Byb3BlcnRpZXMnLCAnY3JlYXRlJywgJ2VkaXQnXSwKKyAgICAgICAgICBk aXNhYmxlZDogJ2luU2NoZW1hJworICAgICAgICB9LHsKKyAgICAgICAgICBp ZDogJ3R5cGFjbCcsIGxhYmVsOiAnUHJpdmlsZWdlcycsIHR5cGU6ICdjb2xs ZWN0aW9uJywKKyAgICAgICAgICBncm91cDogJ3t7IF8oJ1NlY3VyaXR5Jykg fX0nLCBjb250cm9sOiAndW5pcXVlLWNvbC1jb2xsZWN0aW9uJywKKyAgICAg ICAgICBtb2RlbDogcGdBZG1pbi5Ccm93c2VyLk5vZGUuUHJpdmlsZWdlUm9s ZU1vZGVsLmV4dGVuZCh7cHJpdmlsZWdlczogWydVJ119KSwKKyAgICAgICAg ICBtb2RlOiBbJ2VkaXQnLCAnY3JlYXRlJ10sIGNhbkFkZDogdHJ1ZSwgY2Fu RGVsZXRlOiB0cnVlLAorICAgICAgICAgIHVuaXF1ZUNvbCA6IFsnZ3JhbnRl ZSddLAorICAgICAgICAgIGNvbHVtbnM6IFsnZ3JhbnRlZScsICdncmFudG9y JywgJ3ByaXZpbGVnZXMnXQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDog J3NlY2xhYmVscycsIGxhYmVsOiAne3sgXygnU2VjdXJpdHkgTGFiZWxzJykg fX0nLAorICAgICAgICAgIG1vZGVsOiBTZWN1cml0eU1vZGVsLCBlZGl0YWJs ZTogZmFsc2UsIHR5cGU6ICdjb2xsZWN0aW9uJywKKyAgICAgICAgICBncm91 cDogJ3t7IF8oJ1NlY3VyaXR5JykgfX0nLCBtb2RlOiBbJ2VkaXQnLCAnY3Jl YXRlJ10sCisgICAgICAgICAgbWluX3ZlcnNpb246IDkwMjAwLCBjYW5BZGQ6 IHRydWUsCisgICAgICAgICAgY2FuRWRpdDogZmFsc2UsIGNhbkRlbGV0ZTog dHJ1ZSwgY29udHJvbDogJ3VuaXF1ZS1jb2wtY29sbGVjdGlvbicKKyAgICAg ICAgfV0sCisgICAgICAgIHZhbGlkYXRlOiBmdW5jdGlvbigpIHsKKyAgICAg ICAgLy8gVmFsaWRhdGlvbiBjb2RlIGZvciByZXF1aXJlZCBmaWVsZHMKKyAg ICAgICAgICB2YXIgY2hhbmdlZEF0dHJzID0gdGhpcy5zZXNzQXR0cnMsCisg ICAgICAgICAgICAgIG1zZyA9IHVuZGVmaW5lZDsKKworICAgICAgICAgIGlm IChfLmhhcyhjaGFuZ2VkQXR0cnMsICduYW1lJykgJiYKKyAgICAgICAgICAg ICAgICAoXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgnbmFtZScpKQorICAgICAg ICAgICAgICB8fCBTdHJpbmcodGhpcy5nZXQoJ25hbWUnKSkucmVwbGFjZSgv XlxzK3xccyskL2csICcnKSA9PSAnJykpIHsKKyAgICAgICAgICAgIG1zZyA9 ICd7eyBfKCdOYW1lIGNhbiBub3QgYmUgZW1wdHkhJykgfX0nOworICAgICAg ICAgICAgdGhpcy5lcnJvck1vZGVsLnNldCgnbmFtZScsIG1zZyk7CisgICAg ICAgICAgfSBlbHNlIGlmIChfLmhhcyhjaGFuZ2VkQXR0cnMsICdzY2hlbWEn KSAmJgorICAgICAgICAgICAgICAgIChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0 KCdzY2hlbWEnKSkKKyAgICAgICAgICAgICAgfHwgU3RyaW5nKHRoaXMuZ2V0 KCdzY2hlbWEnKSkucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykp IHsKKyAgICAgICAgICAgIG1zZyA9ICd7eyBfKCdTY2hlbWEgY2FuIG5vdCBi ZSBlbXB0eSEnKSB9fSc7CisgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwu c2V0KCdzY2hlbWEnLCBtc2cpOworICAgICAgICAgIH0gZWxzZSBpZiAoXy5o YXMoY2hhbmdlZEF0dHJzLCAndHlwdHlwZScpICYmCisgICAgICAgICAgICAg ICAgKF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ3R5cHR5cGUnKSkKKyAgICAg ICAgICAgICAgfHwgU3RyaW5nKHRoaXMuZ2V0KCduYW1lJykpLnJlcGxhY2Uo L15ccyt8XHMrJC9nLCAnJykgPT0gJycpKSB7CisgICAgICAgICAgICBtc2cg PSAne3sgXygnVHlwZSBjYW4gbm90IGJlIGVtcHR5IScpIH19JzsKKyAgICAg ICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ3R5cHR5cGUnLCBtc2cpOwor ICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5nZXQoJ3R5cHR5cGUnKSA9PSAn cicgJiYKKyAgICAgICAgICAgICAgICBfLmhhcyhjaGFuZ2VkQXR0cnMsICd0 eXBuYW1lJykKKyAgICAgICAgICAgICAgJiYgKF8uaXNVbmRlZmluZWQodGhp cy5nZXQoJ3R5cG5hbWUnKSkKKyAgICAgICAgICAgICAgfHwgU3RyaW5nKHRo aXMuZ2V0KCd0eXBuYW1lJykpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykg PT0gJycpKSB7CisgICAgICAgICAgICBtc2cgPSAne3sgXygnU3VidHlwZSBO YW1lIGNhbiBub3QgYmUgZW1wdHkhJykgfX0nOworICAgICAgICAgICAgdGhp cy5lcnJvck1vZGVsLnNldCgndHlwbmFtZScsIG1zZyk7CisgICAgICAgICAg fSBlbHNlIGlmICh0aGlzLmdldCgndHlwdHlwZScpID09ICd4JyAmJgorICAg ICAgICAgICAgICAgIF8uaGFzKGNoYW5nZWRBdHRycywgJ3R5cGlucHV0JykK KyAgICAgICAgICAgICAgJiYgKF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ3R5 cGlucHV0JykpCisgICAgICAgICAgICAgIHx8IFN0cmluZyh0aGlzLmdldCgn dHlwaW5wdXQnKSkucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykp IHsKKyAgICAgICAgICAgIG1zZyA9ICd7eyBfKCdJbnB1dCBmdW5jdGlvbiBj YW4gbm90IGJlIGVtcHR5IScpIH19JzsKKyAgICAgICAgICAgIHRoaXMuZXJy b3JNb2RlbC5zZXQoJ3R5cGlucHV0JywgbXNnKTsKKyAgICAgICAgICB9IGVs c2UgaWYgKHRoaXMuZ2V0KCd0eXB0eXBlJykgPT0gJ3gnICYmCisgICAgICAg ICAgICAgICAgXy5oYXMoY2hhbmdlZEF0dHJzLCAndHlwb3V0cHV0JykKKyAg ICAgICAgICAgICAgJiYgKF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ3R5cG91 dHB1dCcpKQorICAgICAgICAgICAgICB8fCBTdHJpbmcodGhpcy5nZXQoJ3R5 cG91dHB1dCcpKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSkg eworICAgICAgICAgICAgbXNnID0gJ3t7IF8oJ091dHB1dCBmdW5jdGlvbiBj YW4gbm90IGJlIGVtcHR5IScpIH19JzsKKyAgICAgICAgICAgIHRoaXMuZXJy b3JNb2RlbC5zZXQoJ3R5cG91dHB1dCcsIG1zZyk7CisgICAgICAgICAgfSBl bHNlIHsKKyAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC51bnNldCgnbmFt ZScpOworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnVuc2V0KCdzY2hl bWEnKTsKKyAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC51bnNldCgndHlw dHlwZScpOworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnVuc2V0KCd0 eXBuYW1lJyk7CisgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwudW5zZXQo J3R5cGlucHV0Jyk7CisgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwudW5z ZXQoJ3R5cG91dHB1dCcpOworICAgICAgICAgIH0KKyAgICAgICAgICByZXR1 cm4gbnVsbDsKKyAgICAgICAgfSwKKyAgICAgICAgLy8gV2Ugd2lsbCBkaXNh YmxlIGV2ZXJ5dGhpbmcgaWYgd2UgYXJlIHVuZGVyIGNhdGFsb2cgbm9kZQor ICAgICAgICBpblNjaGVtYTogZnVuY3Rpb24oKSB7CisgICAgICAgICAgaWYo dGhpcy5ub2RlX2luZm8gJiYgICdjYXRhbG9nJyBpbiB0aGlzLm5vZGVfaW5m bykKKyAgICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg ICAgICAgICB9CisgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9 LAorICAgICAgICAvLyBXZSB3aWxsIGNoZWNrIGlmIHdlIGFyZSB1bmRlciBz Y2hlbWEgbm9kZSAmIGluICdjcmVhdGUnIG1vZGUKKyAgICAgICAgaW5TY2hl bWFXaXRoTW9kZWxDaGVjazogZnVuY3Rpb24obSkgeworICAgICAgICAgIGlm KHRoaXMubm9kZV9pbmZvICYmICAnc2NoZW1hJyBpbiB0aGlzLm5vZGVfaW5m bykKKyAgICAgICAgICB7CisgICAgICAgICAgICAvLyBXZSB3aWxsIGRpc2Jh bGUgY29udHJvbCBpZiBpdCdzIGluICdlZGl0JyBtb2RlCisgICAgICAgICAg ICBpZiAobS5pc05ldygpKSB7CisgICAgICAgICAgICAgIHJldHVybiBmYWxz ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIHJldHVy biB0cnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgfQorICAgICAg ICAgIHJldHVybiB0cnVlOworICAgICAgICB9LAorICAgICAgICAvLyBXZSB3 YW50IHRvIGVuYWJsZSBvbmx5IGluIGVkaXQgbW9kZQorICAgICAgICBpblNj aGVtYVdpdGhFZGl0TW9kZTogZnVuY3Rpb24obSkgeworICAgICAgICAgIGlm KHRoaXMubm9kZV9pbmZvICYmICAnc2NoZW1hJyBpbiB0aGlzLm5vZGVfaW5m bykKKyAgICAgICAgICB7CisgICAgICAgICAgICAvLyBXZSB3aWxsIGRpc2Jh bGUgY29udHJvbCBpZiBpdCdzIGluICdlZGl0JyBtb2RlCisgICAgICAgICAg ICBpZiAobS5pc05ldygpKSB7CisgICAgICAgICAgICAgIHJldHVybiB0cnVl OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgcmV0dXJu IGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgfQorICAgICAg ICAgIHJldHVybiB0cnVlOworICAgICAgICB9LAorICAgICAgICAvLyBGdW5j dGlvbiB3aWxsIGhlbHAgdXMgdG8gZmlsbCBjb21ib2JveAorICAgICAgICBl eHRlcm5hbF9mdW5jX2NvbWJvOiBmdW5jdGlvbihkKSB7CisgICAgICAgICAg IHZhciByZXN1bHQgPSBbXTsKKyAgICAgICAgICAgXy5lYWNoKGQsIGZ1bmN0 aW9uKGl0ZW0pIHsKKyAgICAgICAgICAgICAvLyBpZiB0eXBlIGZyb20gc2Vs ZWN0ZWQgZnJvbSBjb21ib2JveCBtYXRjaGVzIGluIG9wdGlvbnMKKyAgICAg ICAgICAgICBpZiAoIGl0ZW0uY2J0eXBlID09ICdhbGwnICkgeworICAgICAg ICAgICAgICAgcmVzdWx0LnB1c2goaXRlbSk7CisgICAgICAgICAgICAgfQor ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg ICAgICAgfQorICAgICAgfSksCisgICAgICBjYW5DcmVhdGU6IGZ1bmN0aW9u KGl0ZW1EYXRhLCBpdGVtLCBkYXRhKSB7CisgICAgICAgICAgLy9JZiBjaGVj ayBpcyBmYWxzZSB0aGVuICwgd2Ugd2lsbCBhbGxvdyBjcmVhdGUgbWVudQor ICAgICAgICAgIGlmIChkYXRhICYmIGRhdGEuY2hlY2sgPT0gZmFsc2UpCisg ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgIHZhciB0ID0g cGdCcm93c2VyLnRyZWUsIGkgPSBpdGVtLCBkID0gaXRlbURhdGE7CisgICAg ICAgICAgLy8gVG8gaXRlcmF0ZSBvdmVyIHRyZWUgdG8gY2hlY2sgcGFyZW50 IG5vZGUKKyAgICAgICAgICB3aGlsZSAoaSkgeworICAgICAgICAgICAgLy8g SWYgaXQgaXMgc2NoZW1hIHRoZW4gYWxsb3cgdXNlciB0byBjcmVhdGUgdGFi bGUKKyAgICAgICAgICAgIGlmIChfLmluZGV4T2YoWydzY2hlbWEnXSwgZC5f dHlwZSkgPiAtMSkKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg ICAgICAgICAgIGlmICgnY29sbC10eXBlJyA9PSBkLl90eXBlKSB7CisgICAg ICAgICAgICAgIC8vQ2hlY2sgaWYgd2UgYXJlIG5vdCBjaGlsZCBvZiBjYXRh bG9nCisgICAgICAgICAgICAgIHByZXZfaSA9IHQuaGFzUGFyZW50KGkpID8g dC5wYXJlbnQoaSkgOiBudWxsOworICAgICAgICAgICAgICBwcmV2X2QgPSBw cmV2X2kgPyB0Lml0ZW1EYXRhKHByZXZfaSkgOiBudWxsOworICAgICAgICAg ICAgICBpZiggcHJldl9kLl90eXBlID09ICdjYXRhbG9nJykgeworICAgICAg ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgfSBlbHNl IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaSA9IHQuaGFzUGFy ZW50KGkpID8gdC5wYXJlbnQoaSkgOiBudWxsOworICAgICAgICAgICAgZCA9 IGkgPyB0Lml0ZW1EYXRhKGkpIDogbnVsbDsKKyAgICAgICAgICB9CisgICAg ICAgICAgLy8gYnkgZGVmYXVsdCB3ZSBkbyBub3Qgd2FudCB0byBhbGxvdyBj cmVhdGUgbWVudQorICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgfQor ICB9KTsKKyAgfQorICByZXR1cm4gcGdCcm93c2VyLk5vZGVzWyd0eXBlJ107 Cit9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwvOS4x X3BsdXMvYWNsLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRl cy90eXBlL3NxbC85LjFfcGx1cy9hY2wuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjNjY2Y4ZTcKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwvOS4x X3BsdXMvYWNsLnNxbApAQCAtMCwwICsxLDI5IEBACitTRUxFQ1QgJ3R5cGFj bCcgYXMgZGVmdHlwZSwgQ09BTEVTQ0UoZ3Qucm9sbmFtZSwgJ3B1YmxpYycp IGdyYW50ZWUsIGcucm9sbmFtZSBncmFudG9yLCBhcnJheV9hZ2cocHJpdmls ZWdlX3R5cGUpIGFzIHByaXZpbGVnZXMsIGFycmF5X2FnZyhpc19ncmFudGFi bGUpIGFzIGdyYW50YWJsZQorRlJPTQorICAoU0VMRUNUCisgICAgZC5ncmFu dGVlLCBkLmdyYW50b3IsIGQuaXNfZ3JhbnRhYmxlLAorICAgIENBU0UgZC5w cml2aWxlZ2VfdHlwZQorICAgIFdIRU4gJ1VTQUdFJyBUSEVOICdVJworICAg IEVMU0UgJ1VOS05PV04nCisgICAgRU5EIEFTIHByaXZpbGVnZV90eXBlCisg IEZST00KKyAgICAoU0VMRUNUIHQudHlwYWNsCisgICAgICAgIEZST00gcGdf dHlwZSB0CisgICAgICAgIExFRlQgT1VURVIgSk9JTiBwZ190eXBlIGUgT04g ZS5vaWQ9dC50eXBlbGVtCisgICAgICAgIExFRlQgT1VURVIgSk9JTiBwZ19j bGFzcyBjdCBPTiBjdC5vaWQ9dC50eXByZWxpZCBBTkQgY3QucmVsa2luZCA8 PiAnYycKKyAgICAgICAgTEVGVCBPVVRFUiBKT0lOIHBnX2Rlc2NyaXB0aW9u IGRlcyBPTiAoZGVzLm9iam9pZD10Lm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdw Z190eXBlJzo6cmVnY2xhc3MpCisgICAgICAgIFdIRVJFIHQudHlwdHlwZSAh PSAnZCcgQU5EIHQudHlwbmFtZSBOT1QgTElLRSBFJ1xcXyUnIEFORCB0LnR5 cG5hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICAgICAgeyUgaWYgdGlk ICV9CisgICAgICAgIEFORCB0Lm9pZCA9IHt7dGlkfX06Om9pZAorICAgICAg ICB7JSBlbmRpZiAlfQorICAgICkgYWNsLAorICAgIChTRUxFQ1QgKGQpLmdy YW50ZWUgQVMgZ3JhbnRlZSwgKGQpLmdyYW50b3IgQVMgZ3JhbnRvciwgKGQp LmlzX2dyYW50YWJsZQorICAgICAgICBBUyBpc19ncmFudGFibGUsIChkKS5w cml2aWxlZ2VfdHlwZSBBUyBwcml2aWxlZ2VfdHlwZSBGUk9NIChTRUxFQ1QK KyAgICAgICAgYWNsZXhwbG9kZSh0LnR5cGFjbCkgYXMgZCBGUk9NIHBnX3R5 cGUgdCBXSEVSRSB0Lm9pZCA9IHt7dGlkfX06Om9pZCkgYSkgZAorICAgICkg ZAorICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBnIE9OIChkLmdy YW50b3IgPSBnLm9pZCkKKyAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9s ZXMgZ3QgT04gKGQuZ3JhbnRlZSA9IGd0Lm9pZCkKK0dST1VQIEJZIGcucm9s bmFtZSwgZ3Qucm9sbmFtZQorCisKKwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdHlwZXMvdGVtcGxhdGVzL3R5cGUvc3FsLzkuMV9wbHVzL2FkZGl0 aW9uYWxfcHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90 ZW1wbGF0ZXMvdHlwZS9zcWwvOS4xX3BsdXMvYWRkaXRpb25hbF9wcm9wZXJ0 aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5k NzI4NzRmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlw ZXMvdGVtcGxhdGVzL3R5cGUvc3FsLzkuMV9wbHVzL2FkZGl0aW9uYWxfcHJv cGVydGllcy5zcWwKQEAgLTAsMCArMSw0MCBAQAoreyMgVGhlIFNRTCBnaXZl biBiZWxvdyB3aWxsIGZldGNoIGNvbXBvc2l0ZSB0eXBlI30KK3slIGlmIHR5 cGUgPT0gJ2MnICV9CitTRUxFQ1QgYXR0bmFtZSwgZm9ybWF0X3R5cGUodC5v aWQsTlVMTCkgQVMgdHlwbmFtZSwgYXR0bmRpbXMsIGF0dHR5cG1vZCwgbnNw Lm5zcG5hbWUsCisoU0VMRUNUIENPVU5UKDEpIGZyb20gcGdfdHlwZSB0MiBX SEVSRSB0Mi50eXBuYW1lPXQudHlwbmFtZSkgPiAxIEFTIGlzZHVwCistLSBN aW4gOS4xIHN0YXJ0CissY29sbG5hbWUsIG5zcGMubnNwbmFtZSBhcyBjb2xs bnNwbmFtZQorLS0gRW5kCissIGF0dC5hdHRyZWxpZAorRlJPTSBwZ19hdHRy aWJ1dGUgYXR0CitKT0lOIHBnX3R5cGUgdCBPTiB0Lm9pZD1hdHR0eXBpZAor Sk9JTiBwZ19uYW1lc3BhY2UgbnNwIE9OIHQudHlwbmFtZXNwYWNlPW5zcC5v aWQKK0xFRlQgT1VURVIgSk9JTiBwZ190eXBlIGIgT04gdC50eXBlbGVtPWIu b2lkCistLSBNaW4gOS4xIHN0YXJ0CitMRUZUIE9VVEVSIEpPSU4gcGdfY29s bGF0aW9uIGMgT04gYXR0LmF0dGNvbGxhdGlvbj1jLm9pZAorTEVGVCBPVVRF UiBKT0lOIHBnX25hbWVzcGFjZSBuc3BjIE9OIGMuY29sbG5hbWVzcGFjZT1u c3BjLm9pZAorLS0gRW5kCitXSEVSRSBhdHQuYXR0cmVsaWQgPSB7e3R5cHJl bGlkfX06Om9pZAorT1JERVIgYnkgYXR0bnVtOworeyUgZW5kaWYgJX0KK3sj IFRoZSBTUUwgZ2l2ZW4gYmVsb3cgd2lsbCBmZXRjaCBlbnVtIHR5cGUjfQor eyUgaWYgdHlwZSA9PSAnZScgJX0KK1NFTEVDVCBlbnVtbGFiZWwgRlJPTSBw Z19lbnVtIFdIRVJFIGVudW10eXBpZD17e3RpZH19OjpvaWQKKy0tIE1pbiA5 LjEKK09SREVSIGJ5IGVudW1zb3J0b3JkZXIKKy0tRW5kCistLSBlbHNlCist LSBPUkRFUiBieSBvaWQKK3slIGVuZGlmICV9Cit7IyBUaGUgU1FMIGdpdmVu IGJlbG93IHdpbGwgZmV0Y2ggcmFuZ2UgdHlwZSN9Cit7JSBpZiB0eXBlID09 ICdyJyAlfQorU0VMRUNUIHJuZ3N1YnR5cGUsIHN0LnR5cG5hbWUsCitybmdj b2xsYXRpb24sIGNvbC5jb2xsbmFtZSwKK3JuZ3N1Ym9wYywgb3BjLm9wY25h bWUsCitybmdjYW5vbmljYWwsIHJuZ3N1YmRpZmYKK0ZST00gcGdfcmFuZ2UK K0xFRlQgSk9JTiBwZ190eXBlIHN0IE9OIHN0Lm9pZD1ybmdzdWJ0eXBlCitM RUZUIEpPSU4gcGdfY29sbGF0aW9uIGNvbCBPTiBjb2wub2lkPXJuZ2NvbGxh dGlvbgorTEVGVCBKT0lOIHBnX29wY2xhc3Mgb3BjIE9OIG9wYy5vaWQ9cm5n c3Vib3BjCitXSEVSRSBybmd0eXBpZD17e3RpZH19OjpvaWQ7Cit7JSBlbmRp ZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVtcGxh dGVzL3R5cGUvc3FsLzkuMV9wbHVzL2JhY2tlbmRfc3VwcG9ydC5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwvOS4xX3Bs dXMvYmFja2VuZF9zdXBwb3J0LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi4wMGI3ZmI0Ci0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdHlwZXMvdGVtcGxhdGVzL3R5cGUvc3FsLzkuMV9wbHVz L2JhY2tlbmRfc3VwcG9ydC5zcWwKQEAgLTAsMCArMSwxOCBAQAorU0VMRUNU CisgQ0FTRSBXSEVOIG5zcC5uc3BuYW1lIElOICgnc3lzJywgJ2RibycsICdp bmZvcm1hdGlvbl9zY2hlbWEnKSBUSEVOIHRydWUgRUxTRSBmYWxzZSBFTkQg QVMgZGJTdXBwb3J0CitGUk9NIHBnX25hbWVzcGFjZSBuc3AKK1dIRVJFIG5z cC5vaWQ9e3tzY2lkfX06OmludAorQU5EICgKKwkobnNwbmFtZSA9ICdwZ19j YXRhbG9nJyBBTkQgRVhJU1RTCisJICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChTRUxFQ1QgMSBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUg PSAncGdfY2xhc3MnIEFORCByZWxuYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlU IDEpKQorCU9SIChuc3BuYW1lID0gJ3BnYWdlbnQnIEFORCBFWElTVFMKKwkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFNFTEVDVCAxIEZST00g cGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICdwZ2Ffam9iJyBBTkQgcmVsbmFt ZXNwYWNlID0gbnNwLm9pZCBMSU1JVCAxKSkKKwlPUiAobnNwbmFtZSA9ICdp bmZvcm1hdGlvbl9zY2hlbWEnIEFORCBFWElTVFMKKwkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKFNFTEVDVCAxIEZST00gcGdfY2xhc3MgV0hF UkUgcmVsbmFtZSA9ICd0YWJsZXMnIEFORCByZWxuYW1lc3BhY2UgPSBuc3Au b2lkIExJTUlUIDEpKQorCU9SIChuc3BuYW1lIExJS0UgJ18lJyBBTkQgRVhJ U1RTCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTRUxFQ1Qg MSBGUk9NIHBnX3Byb2MgV0hFUkUgcHJvbmFtZT0nc2xvbnl2ZXJzaW9uJyBB TkQgcHJvbmFtZXNwYWNlID0gbnNwLm9pZCBMSU1JVCAxKSkKKykKK0FORAor IG5zcG5hbWUgTk9UIExJS0UgRSdwZ1xcdGVtcFxcJScKK0FORAorIG5zcG5h bWUgTk9UIExJS0UgRSdwZ1xcdG9hc3RfdGVtcFxcJScKXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRlcy90eXBlL3NxbC85LjFf cGx1cy9jcmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjcwNmYyNjQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwvOS4xX3BsdXMvY3JlYXRl LnNxbApAQCAtMCwwICsxLDY5IEBACit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1 cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jv cy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3sjIyMgIENv bXBvc2l0ZSBUeXBlICMjI30KK3slIGlmIGRhdGEgYW5kIGRhdGEudHlwdHlw ZSA9PSAnYycgJX0KK0NSRUFURSBUWVBFIHslIGlmIGRhdGEuc2NoZW1hICV9 e3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19eyUg ZWxzZSAlfXt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19eyUgZW5kaWYg JX0gQVMKKyh7JSBpZiBkYXRhLmNvbXBvc2l0ZSAlfXslIGZvciBkIGluIGRh dGEuY29tcG9zaXRlICV9eyUgaWYgbG9vcC5pbmRleCAhPSAxICV9LCB7JSBl bmRpZiAlfXt7IGNvbm58cXRJZGVudChkLm1lbWJlcl9uYW1lKSB9fSB7eyBk LnR5cGUgfX17JSBpZiBkLmlzX3RsZW5ndGggYW5kIGQudGxlbmd0aCAlfSh7 e2QudGxlbmd0aH19eyUgaWYgZC5pc19wcmVjaXNpb24gYW5kIGQucHJlY2lz aW9uICV9LHt7ZC5wcmVjaXNpb259fXslIGVuZGlmICV9KXslIGVuZGlmICV9 eyUgaWYgZC5jb2xsYXRpb24gJX0gQ09MTEFURSB7e2QuY29sbGF0aW9ufX17 JSBlbmRpZiAlfXslIGVuZGZvciAlfXslIGVuZGlmICV9KTsKK3slIGVuZGlm ICV9Cit7IyMjICBFbnVtIFR5cGUgIyMjfQoreyUgaWYgZGF0YSBhbmQgZGF0 YS50eXB0eXBlID09ICdlJyAlfQorQ1JFQVRFIFRZUEUgeyUgaWYgZGF0YS5z Y2hlbWEgJX17eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFt ZSkgfX17JSBlbHNlICV9e3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX17 JSBlbmRpZiAlfSBBUyBFTlVNCisoeyUgZm9yIGUgaW4gZGF0YS5lbnVtICV9 eyUgaWYgbG9vcC5pbmRleCAhPSAxICV9LCB7JSBlbmRpZiAlfXt7IGUubGFi ZWx8cXRMaXRlcmFsIH19eyUgZW5kZm9yICV9KTsKK3slIGVuZGlmICV9Cit7 IyMjICBSYW5nZSBUeXBlICMjI30KK3slIGlmIGRhdGEgYW5kIGRhdGEudHlw dHlwZSA9PSAncicgJX0KK0NSRUFURSBUWVBFIHslIGlmIGRhdGEuc2NoZW1h ICV9e3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19 eyUgZWxzZSAlfXt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19eyUgZW5k aWYgJX0gQVMgUkFOR0UKKyh7JSBpZiBkYXRhLnR5cG5hbWUgJX0gU1VCVFlQ RT17eyBjb25ufHF0VHlwZUlkZW50KGRhdGEudHlwbmFtZSkgfX17JSBlbmRp ZiAlfXslIGlmIGRhdGEuY29sbG5hbWUgJX0KKywgQ09MTEFUSU9OID0ge3sg ZGF0YS5jb2xsbmFtZSB9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5vcGNuYW1l ICAlfQorLCBTVUJUWVBFX09QQ0xBU1MgPSB7eyBkYXRhLm9wY25hbWUgfX17 JSBlbmRpZiAlfXslIGlmIGRhdGEucm5nY2Fub25pY2FsICV9CissIENBTk9O SUNBTCA9IHt7IGRhdGEucm5nY2Fub25pY2FsIH19eyUgZW5kaWYgJX17JSBp ZiBkYXRhLnJuZ3N1YmRpZmYgJX0KKywgU1VCVFlQRV9ESUZGID0ge3sgZGF0 YS5ybmdzdWJkaWZmIH19eyUgZW5kaWYgJX0gKTsKK3slIGVuZGlmICV9Cit7 IyMjICBFeHRlcm5hbCBUeXBlICMjI30KK3slIGlmIGRhdGEgYW5kIGRhdGEu dHlwdHlwZSA9PSAneCcgJX0KK0NSRUFURSBUWVBFIHslIGlmIGRhdGEuc2No ZW1hICV9e3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUp IH19eyUgZWxzZSAlfXt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19eyUg ZW5kaWYgJX0gQVMKKyggeyUgaWYgZGF0YS50eXBpbnB1dCAlfQorSU5QVVQg PSB7e2RhdGEudHlwaW5wdXR9fXslIGVuZGlmICV9eyUgaWYgZGF0YS50eXBv dXRwdXQgJX0KKyxPVVRQVVQgPSB7eyBkYXRhLnR5cG91dHB1dCB9fXslIGVu ZGlmICV9eyUgaWYgZGF0YS50eXByZWNlaXZlICV9CissUkVDRUlWRSA9IHt7 ZGF0YS50eXByZWNlaXZlfX17JSBlbmRpZiAlfXslIGlmIGRhdGEudHlwbmFt ZSAlfQorLFNFTkQgPSB7e2RhdGEudHlwc2VuZH19eyUgZW5kaWYgJX17JSBp ZiBkYXRhLnR5cG1vZGluICV9CissVFlQTU9EX0lOID0ge3tkYXRhLnR5cG1v ZGlufX17JSBlbmRpZiAlfXslIGlmIGRhdGEudHlwbW9kb3V0ICV9CissVFlQ TU9EX09VVCA9IHt7ZGF0YS50eXBtb2RvdXR9fXslIGVuZGlmICV9eyUgaWYg ZGF0YS50eXBhbmFseXplICV9CissQU5BTFlaRSA9IHt7ZGF0YS50eXBhbmFs eXplfX17JSBlbmRpZiAlfXslIGlmIGRhdGEudHlwbGVuICV9CissSU5URVJO QUxMRU5HVEggPSB7e2RhdGEudHlwbGVufX17JSBlbmRpZiAlfXslIGlmIGRh dGEudHlwYnl2YWwgJX0KKyxQQVNTRURCWVZBTFVFeyUgZW5kaWYgJX17JSBp ZiBkYXRhLnR5cGFsaWduICV9CissQUxJR05NRU5UID0gIHt7ZGF0YS50eXBh bGlnbn19eyUgZW5kaWYgJX17JSBpZiBkYXRhLnR5cHN0b3JhZ2UgJX0KKyxT VE9SQUdFID0gIHt7ZGF0YS50eXBzdG9yYWdlfX17JSBlbmRpZiAlfXslIGlm IGRhdGEudHlwY2F0ZWdvcnkgJX0KKyxDQVRFR09SWSA9IHt7ZGF0YS50eXBj YXRlZ29yeX19eyUgZW5kaWYgJX17JSBpZiBkYXRhLnR5cGlzcHJlZmVycmVk ICV9CissUFJFRkVSUkVEID0gIHt7ZGF0YS50eXBpc3ByZWZlcnJlZH19eyUg ZW5kaWYgJX17JSBpZiBkYXRhLnR5cGRlZmF1bHQgJX0KKyxERUZBVUxUID0g e3tkYXRhLnR5cGRlZmF1bHR9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5lbGVt ZW50ICV9CissRUxFTUVOVCA9IHt7ZGF0YS5lbGVtZW50fX17JSBlbmRpZiAl fXslIGlmIGRhdGEudHlwZGVsaW0gJX0KKyxERUxJTUlURVIgPSB7e2RhdGEu dHlwZGVsaW18cXRMaXRlcmFsfX17JSBlbmRpZiAlfXslIGlmIGRhdGEuaXNf Y29sbGF0YWJsZSAlfQorLENPTExBVEFCTEUgPSB7e2RhdGEuaXNfY29sbGF0 YWJsZX19eyUgZW5kaWYgJX0gKTsKK3slIGVuZGlmICV9Cit7IyMjICBUeXBl IE93bmVyICMjI30KK3slIGlmIGRhdGEgYW5kIGRhdGEudHlwZW93bmVyICV9 CisKK0FMVEVSIFRZUEUgeyUgaWYgZGF0YS5zY2hlbWEgJX17eyBjb25ufHF0 SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX17JSBlbHNlICV9e3sg Y29ubnxxdElkZW50KGRhdGEubmFtZSkgfX17JSBlbmRpZiAlfQorICAgIE9X TkVSIFRPIHt7ZGF0YS50eXBlb3duZXJ9fTsKK3slIGVuZGlmICV9Cit7IyMj ICBUeXBlIENvbW1lbnRzICMjI30KK3slIGlmIGRhdGEgYW5kIGRhdGEuZGVz Y3JpcHRpb24gJX0KKworQ09NTUVOVCBPTiBUWVBFIHslIGlmIGRhdGEuc2No ZW1hICV9e3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUp IH19eyUgZWxzZSAlfXt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19eyUg ZW5kaWYgJX0KKyAgICBJUyB7e2RhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFs fX07Cit7JSBlbmRpZiAlfQoreyMjIyAgU2VjdXJpdHkgTGFibGVzICMjI30K K3slIGlmIGRhdGEuc2VjbGFiZWxzICV9CisKK3slIGZvciByIGluIGRhdGEu c2VjbGFiZWxzICV9Cit7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnVFlQRScs IGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCkgfX0K K3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3sjIyMgIEFDTCAjIyN9Cit7 JSBpZiBkYXRhLnR5cGFjbCAlfQorCit7JSBmb3IgcHJpdiBpbiBkYXRhLnR5 cGFjbCAlfQore3sgUFJJVklMRUdFLkFQUExZKGNvbm4sICdUWVBFJywgcHJp di5ncmFudGVlLCBkYXRhLm5hbWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJp di53aXRoX2dyYW50KSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRlcy90eXBlL3NxbC85LjFfcGx1cy9k ZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVtcGxhdGVzL3R5 cGUvc3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uMTdkNGRhMQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRlcy90eXBlL3NxbC85LjFf cGx1cy9kZWxldGUuc3FsCkBAIC0wLDAgKzEgQEAKK0RST1AgVFlQRSB7eyBj b25ufHF0SWRlbnQobmFtZSkgfX17JSBpZiBjYXNjYWRlJX0gQ0FTQ0FERXsl IGVuZGlmICV9OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRlcy90eXBlL3Nx bC85LjFfcGx1cy9nZXRfY29sbGF0aW9ucy5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwvOS4xX3BsdXMvZ2V0X2NvbGxh dGlvbnMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmQxYzI5YmIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwvOS4xX3BsdXMvZ2V0X2NvbGxhdGlv bnMuc3FsCkBAIC0wLDAgKzEsNyBAQAorU0VMRUNUIC0tbnNwbmFtZSwgY29s bG5hbWUsCisJQ0FTRSBXSEVOIGxlbmd0aChuc3BuYW1lKSA+IDAgQU5EIGxl bmd0aChjb2xsbmFtZSkgPiAwICBUSEVOCisJICBjb25jYXQocXVvdGVfaWRl bnQobnNwbmFtZSksICcuJywgcXVvdGVfaWRlbnQoY29sbG5hbWUpKQorCUVM U0UgJycgRU5EIEFTIGNvbGxhdGlvbgorRlJPTSBwZ19jb2xsYXRpb24gYywg cGdfbmFtZXNwYWNlIG4KK1dIRVJFIGMuY29sbG5hbWVzcGFjZT1uLm9pZAor T1JERVIgQlkgbnNwbmFtZSwgY29sbG5hbWU7ClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMv dGVtcGxhdGVzL3R5cGUvc3FsLzkuMV9wbHVzL2dldF9leHRlcm5hbF9mdW5j dGlvbnMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVtcGxhdGVzL3R5 cGUvc3FsLzkuMV9wbHVzL2dldF9leHRlcm5hbF9mdW5jdGlvbnMuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiNzZlZDUKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0 ZXMvdHlwZS9zcWwvOS4xX3BsdXMvZ2V0X2V4dGVybmFsX2Z1bmN0aW9ucy5z cWwKQEAgLTAsMCArMSw0MCBAQAoreyMjIyBJbnB1dC9PdXRwdXQvU2VuZC9S ZWNlaXZlL0FuYWx5emUgZnVuY3Rpb24gbGlzdCBhbHNvIGFwcGVuZCBpbnRv IFR5cE1vZGVJTi9UeXBNb2RPVVQgIyMjfQoreyUgaWYgZXh0ZnVuYyAlfQor U0VMRUNUIHByb25hbWUsIG5zcG5hbWUsCisgICAgQ0FTRSBXSEVOIGxlbmd0 aChuc3BuYW1lKSA+IDAgQU5EIGxlbmd0aChwcm9uYW1lKSA+IDAgIFRIRU4K KwkgIGNvbmNhdChxdW90ZV9pZGVudChuc3BuYW1lKSwgJy4nLCBxdW90ZV9p ZGVudChwcm9uYW1lKSkKKwlFTFNFICcnIEVORCBBUyBmdW5jCitGUk9NICgK KyBTRUxFQ1QgcHJvbmFtZSwgbnNwbmFtZSwgbWF4KHByb2FyZ3R5cGVzWzBd KSBBUyBhcmcwLCBtYXgocHJvYXJndHlwZXNbMV0pIEFTIGFyZzEKK0ZST00g cGdfcHJvYyBwCisgSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBuLm9pZD1wcm9u YW1lc3BhY2UKK0dST1VQIEJZIHByb25hbWUsIG5zcG5hbWUKKyBIQVZJTkcg Y291bnQocHJvbmFtZSkgPSAxICAgKSBBUyB1bmlxdWVmdW5jCisgV0hFUkUg YXJnMCA8PiAwIEFORCBhcmcxID0gMDsKK3slIGVuZGlmICV9Cit7IyMjIFR5 cG1vZElOIGxpc3QgIyMjfQoreyUgaWYgdHlwZW1vZGluICV9CitTRUxFQ1Qg cHJvbmFtZSwgbnNwbmFtZSwKKyAgICBDQVNFIFdIRU4gbGVuZ3RoKG5zcG5h bWUpID4gMCBBTkQgbGVuZ3RoKHByb25hbWUpID4gMCAgVEhFTgorCSAgY29u Y2F0KHF1b3RlX2lkZW50KG5zcG5hbWUpLCAnLicsIHF1b3RlX2lkZW50KHBy b25hbWUpKQorCUVMU0UgJycgRU5EIEFTIGZ1bmMKKyAgRlJPTSBwZ19wcm9j IHAKKyAgSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBuLm9pZD1wcm9uYW1lc3Bh Y2UKKyAgV0hFUkUgcHJvcmV0dHlwZT0oU0VMRUNUIG9pZCBGUk9NIHBnX3R5 cGUgV0hFUkUgdHlwbmFtZT0naW50NCcpCisgICAgQU5EIHByb2FyZ3R5cGVz WzBdPShTRUxFQ1Qgb2lkIEZST00gcGdfdHlwZSBXSEVSRSB0eXBuYW1lPSdf Y3N0cmluZycpCisgICAgQU5EIHByb2FyZ3R5cGVzWzFdIElTIE5VTEwKKyAg T1JERVIgQlkgbnNwbmFtZSwgcHJvbmFtZTsKK3slIGVuZGlmICV9Cit7IyMj IFR5cG1vZE9VVCBsaXN0ICMjI30KK3slIGlmIHR5cGVtb2RvdXQgJX0KK1NF TEVDVCBwcm9uYW1lLCBuc3BuYW1lLAorICAgIENBU0UgV0hFTiBsZW5ndGgo bnNwbmFtZSkgPiAwIEFORCBsZW5ndGgocHJvbmFtZSkgPiAwICBUSEVOCisJ ICBjb25jYXQocXVvdGVfaWRlbnQobnNwbmFtZSksICcuJywgcXVvdGVfaWRl bnQocHJvbmFtZSkpCisJRUxTRSAnJyBFTkQgQVMgZnVuYworICBGUk9NIHBn X3Byb2MgcAorICBKT0lOIHBnX25hbWVzcGFjZSBuIE9OIG4ub2lkPXByb25h bWVzcGFjZQorICBXSEVSRSBwcm9yZXR0eXBlPShTRUxFQ1Qgb2lkIEZST00g cGdfdHlwZSBXSEVSRSB0eXBuYW1lPSdjc3RyaW5nJykKKyAgICBBTkQgcHJv YXJndHlwZXNbMF09KFNFTEVDVCBvaWQgRlJPTSBwZ190eXBlIFdIRVJFIHR5 cG5hbWU9J2ludDQnKQorICAgIEFORCBwcm9hcmd0eXBlc1sxXSBJUyBOVUxM CisgIE9SREVSIEJZIG5zcG5hbWUsIHByb25hbWU7Cit7JSBlbmRpZiAlfQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVtcGxhdGVzL3R5 cGUvc3FsLzkuMV9wbHVzL2dldF9uYW1lLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3R5cGVzL3RlbXBsYXRlcy90eXBlL3NxbC85LjFfcGx1cy9nZXRfbmFtZS5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDM2OGYw ZgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3Rl bXBsYXRlcy90eXBlL3NxbC85LjFfcGx1cy9nZXRfbmFtZS5zcWwKQEAgLTAs MCArMSwzIEBACitTRUxFQ1QgdC50eXBuYW1lIEFTIG5hbWUKK0ZST00gcGdf dHlwZSB0CitXSEVSRSB0Lm9pZCA9IHt7dGlkfX06Om9pZDsKXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwvOS4xX3BsdXMvZ2V0X29pZC5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwv OS4xX3BsdXMvZ2V0X29pZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMmRkODFjMAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRlcy90eXBlL3NxbC85LjFfcGx1cy9n ZXRfb2lkLnNxbApAQCAtMCwwICsxLDExIEBACit7IyBCZWxvdyB3aWxsIHBy b3ZpZGUgb2lkIGZvciBuZXdseSBjcmVhdGVkIHR5cGUgI30KK1NFTEVDVCB0 Lm9pZAorRlJPTSBwZ190eXBlIHQKK0xFRlQgT1VURVIgSk9JTiBwZ190eXBl IGUgT04gZS5vaWQ9dC50eXBlbGVtCitMRUZUIE9VVEVSIEpPSU4gcGdfY2xh c3MgY3QgT04gY3Qub2lkPXQudHlwcmVsaWQgQU5EIGN0LnJlbGtpbmQgPD4g J2MnCitMRUZUIE9VVEVSIEpPSU4gcGdfZGVzY3JpcHRpb24gZGVzIE9OIChk ZXMub2Jqb2lkPXQub2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX3R5cGUnOjpy ZWdjbGFzcykKK1dIRVJFIHQudHlwdHlwZSAhPSAnZCcgQU5EIHQudHlwbmFt ZSBOT1QgTElLRSBFJ1xcXyUnIEFORCB0LnR5cG5hbWVzcGFjZSA9IHt7c2Np ZH19OjpvaWQKK3slIGlmIGRhdGEgJX0KK0FORCAgdC50eXBuYW1lID0ge3tk YXRhLm5hbWV8cXRMaXRlcmFsfX0KK3slIGVuZGlmICV9CitPUkRFUiBCWSB0 LnR5cG5hbWU7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVtcGxhdGVzL3R5cGUvc3Fs LzkuMV9wbHVzL2dldF9zdWJ0eXBlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwvOS4xX3BsdXMvZ2V0X3N1YnR5cGVz LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTM4 YmE0Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMv dGVtcGxhdGVzL3R5cGUvc3FsLzkuMV9wbHVzL2dldF9zdWJ0eXBlcy5zcWwK QEAgLTAsMCArMSw1NiBAQAoreyMjIyBUbyBmaWxsIHN1YnR5cGUgY29tYm9i b3ggIyMjfQoreyUgaWYgc3VidHlwZSAlfQorU0VMRUNUIERJU1RJTkNUIHR5 cC50eXBuYW1lIEFTIHN0eXBlLAorICAgICAgIChDQVNFIFdIRU4gdHlwLnR5 cGNvbGxhdGlvbiA+IDAgVEhFTiB0cnVlIEVMU0UgZmFsc2UgRU5EKSBBUyBp c19jb2xsYXRlCitGUk9NIHBnX29wY2xhc3Mgb3BjCitKT0lOIHBnX3R5cGUg dHlwIE9OIG9wYy5vcGNpbnR5cGUgPSB0eXAub2lkCitXSEVSRSBvcGMub3Bj bWV0aG9kID0gNDAzCitPUkRFUiBCWSAxCit7JSBlbmRpZiAlfQoreyMjIyBU byBmaWxsIHN1YnR5cGUgb3BjbGFzcyBjb21ib2JveCAjIyN9Cit7JSBpZiBz dWJ0eXBlX29wY2xhc3MgYW5kIGRhdGEgYW5kIGRhdGEudHlwbmFtZSAlfQor U0VMRUNUIG9wYy5vcGNuYW1lCitGUk9NIHBnX29wY2xhc3Mgb3BjCitKT0lO IHBnX3R5cGUgdHlwIE9OIG9wYy5vcGNpbnR5cGU9dHlwLm9pZAorQU5EIHR5 cC50eXBuYW1lID0ge3sgZGF0YS50eXBuYW1lfHF0TGl0ZXJhbCB9fQorV0hF UkUgb3BjLm9wY21ldGhvZCA9IDQwMworT1JERVIgQlkgb3BjbmFtZTsKK3sl IGVuZGlmICV9Cit7IyMjIFRvIGZldGNoIG9wY2ludHR5cGUgZnJvbSBzdWJ0 eXBlIG9wY2xhc3MgIyMjfQoreyUgaWYgZ2V0X29wY2ludHlwZSBhbmQgZGF0 YSBhbmQgZGF0YS50eXBuYW1lIGFuZCBkYXRhLm9wY25hbWUgJX0KK1NFTEVD VCBvcGMub3BjaW50eXBlCitGUk9NIHBnX29wY2xhc3Mgb3BjCitKT0lOIHBn X3R5cGUgdHlwIE9OIG9wYy5vcGNpbnR5cGU9dHlwLm9pZAorQU5EIHR5cC50 eXBuYW1lID0ge3sgZGF0YS50eXBuYW1lfHF0TGl0ZXJhbCB9fQorV0hFUkUg b3BjLm9wY21ldGhvZCA9IDQwMworQU5EIG9wYy5vcGNuYW1lID0ge3sgZGF0 YS5vcGNuYW1lfHF0TGl0ZXJhbCB9fQorT1JERVIgQlkgb3BjbmFtZTsKK3sl IGVuZGlmICV9Cit7IyMjIFRvIGZpbGwgc3VidHlwZSBkaWZmIGZ1bmN0aW9u IGNvbWJvYm94ICMjI30KK3slIGlmIG9wY2ludHlwZSAlfQorU0VMRUNUIHBy b25hbWUsIG5zcG5hbWUsCisgICAgQ0FTRSBXSEVOIGxlbmd0aChuc3BuYW1l KSA+IDAgQU5EIGxlbmd0aChwcm9uYW1lKSA+IDAgIFRIRU4KKwkgIGNvbmNh dChxdW90ZV9pZGVudChuc3BuYW1lKSwgJy4nLCBxdW90ZV9pZGVudChwcm9u YW1lKSkKKwlFTFNFICcnIEVORCBBUyBzdHlwZGlmZgorRlJPTSBwZ19wcm9j CitKT0lOIHBnX25hbWVzcGFjZSBuIE9OIG4ub2lkPXByb25hbWVzcGFjZQor V0hFUkUgcHJvcmV0dHlwZSA9IDcwMQorQU5EIHByb2FyZ3R5cGVzID0gJ3t7 b3BjaW50eXBlfX0ge3tvcGNpbnR5cGV9fScKK09SREVSIEJZIHByb25hbWU7 Cit7JSBlbmRpZiAlfQoreyMjIyBUbyBmaWxsIGNhbm9uaWNhbCBjb21ib2Jv eCAjIyN9Cit7JSBpZiBnZXRvaWQgJX0KK1NFTEVDVCBvaWQgRlJPTSBwZ190 eXBlCitXSEVSRSB0eXBuYW1lID0ge3sgZGF0YS5uYW1lfHF0TGl0ZXJhbCB9 fQoreyUgZW5kaWYgJX0KK3slIGlmIGNhbm9uaWNhbCBhbmQgb2lkICV9CitT RUxFQ1QgcHJvbmFtZSwgbnNwbmFtZSwKKyAgICBDQVNFIFdIRU4gbGVuZ3Ro KG5zcG5hbWUpID4gMCBBTkQgbGVuZ3RoKHByb25hbWUpID4gMCAgVEhFTgor CSAgY29uY2F0KHF1b3RlX2lkZW50KG5zcG5hbWUpLCAnLicsIHF1b3RlX2lk ZW50KHByb25hbWUpKQorCUVMU0UgJycgRU5EIEFTIGNhbm9uaWNhbAorRlJP TSBwZ19wcm9jCitKT0lOIHBnX25hbWVzcGFjZSBuIE9OIG4ub2lkPXByb25h bWVzcGFjZQorV0hFUkUgcHJvcmV0dHlwZT0ge3sgb2lkIH19CitBTkQgcHJv YXJndHlwZXMgPSAne3sgb2lkIH19JworT1JERVIgQlkgcHJvbmFtZTsKK3sl IGVuZGlmICV9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVtcGxhdGVzL3R5cGUvc3Fs LzkuMV9wbHVzL2dldF90eXBlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBl cy90ZW1wbGF0ZXMvdHlwZS9zcWwvOS4xX3BsdXMvZ2V0X3R5cGVzLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjJjYTcwCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVtcGxh dGVzL3R5cGUvc3FsLzkuMV9wbHVzL2dldF90eXBlcy5zcWwKQEAgLTAsMCAr MSwxMCBAQAorU0VMRUNUICogRlJPTQorICAoU0VMRUNUIGZvcm1hdF90eXBl KHQub2lkLE5VTEwpIEFTIHR5cG5hbWUsCisgIENBU0UgV0hFTiB0eXBlbGVt ID4gMCBUSEVOIHR5cGVsZW0gRUxTRSB0Lm9pZCBFTkQgQVMgZWxlbW9pZAor ICAsdHlwbGVuLCB0eXB0eXBlLCB0Lm9pZCwgbnNwbmFtZSwKKyAgKFNFTEVD VCBDT1VOVCgxKSBGUk9NIHBnX3R5cGUgdDIgV0hFUkUgdDIudHlwbmFtZSA9 IHQudHlwbmFtZSkgPiAxIEFTIGlzZHVwCitGUk9NIHBnX3R5cGUgdAorIEpP SU4gcGdfbmFtZXNwYWNlIG5zcCBPTiB0eXBuYW1lc3BhY2U9bnNwLm9pZAor V0hFUkUgKE5PVCAodHlwbmFtZSA9ICd1bmtub3duJyBBTkQgbnNwbmFtZSA9 ICdwZ19jYXRhbG9nJykpIEFORCB0eXBpc2RlZmluZWQgQU5EIHR5cHR5cGUg SU4gKCdiJywgJ2MnLCAnZCcsICdlJywgJ3InKUFORCBOT1QgRVhJU1RTIChz ZWxlY3QgMSBmcm9tIHBnX2NsYXNzIHdoZXJlIHJlbG5hbWVzcGFjZT10eXBu YW1lc3BhY2UgYW5kIHJlbG5hbWUgPSB0eXBuYW1lIGFuZCByZWxraW5kICE9 ICdjJykgQU5EICh0eXBuYW1lIG5vdCBsaWtlICdfJScgT1IgTk9UIEVYSVNU UyAoc2VsZWN0IDEgZnJvbSBwZ19jbGFzcyB3aGVyZSByZWxuYW1lc3BhY2U9 dHlwbmFtZXNwYWNlIGFuZCByZWxuYW1lID0gc3Vic3RyaW5nKHR5cG5hbWUg ZnJvbSAyKTo6bmFtZSBhbmQgcmVsa2luZCAhPSAnYycpKSAgQU5EIG5zcC5u c3BuYW1lICE9ICdpbmZvcm1hdGlvbl9zY2hlbWEnCisgKSBBUyBkdW1teQor ICAgT1JERVIgQlkgbnNwbmFtZSA8PiAncGdfY2F0YWxvZycsIG5zcG5hbWUg PD4gJ3B1YmxpYycsIG5zcG5hbWUsIDEKXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZW1w bGF0ZXMvdHlwZS9zcWwvOS4xX3BsdXMvbm9kZXMuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdHlwZXMvdGVtcGxhdGVzL3R5cGUvc3FsLzkuMV9wbHVzL25vZGVz LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OGNj MzRhCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMv dGVtcGxhdGVzL3R5cGUvc3FsLzkuMV9wbHVzL25vZGVzLnNxbApAQCAtMCww ICsxLDcgQEAKK1NFTEVDVCB0Lm9pZCwgdC50eXBuYW1lIEFTIG5hbWUKK0ZS T00gcGdfdHlwZSB0CitMRUZUIE9VVEVSIEpPSU4gcGdfdHlwZSBlIE9OIGUu b2lkPXQudHlwZWxlbQorTEVGVCBPVVRFUiBKT0lOIHBnX2NsYXNzIGN0IE9O IGN0Lm9pZD10LnR5cHJlbGlkIEFORCBjdC5yZWxraW5kIDw+ICdjJworTEVG VCBPVVRFUiBKT0lOIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZCA9IHQu dHlwbmFtZXNwYWNlCitXSEVSRSB0LnR5cHR5cGUgIT0gJ2QnIEFORCB0LnR5 cG5hbWUgTk9UIExJS0UgRSdcXF8lJyBBTkQgdC50eXBuYW1lc3BhY2UgPSB7 e3NjaWR9fTo6b2lkCitPUkRFUiBCWSB0LnR5cG5hbWU7ClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dHlwZXMvdGVtcGxhdGVzL3R5cGUvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVtcGxhdGVzL3R5cGUvc3Fs LzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjU2YWI3OTMKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwvOS4xX3Bs dXMvcHJvcGVydGllcy5zcWwKQEAgLTAsMCArMSwyMSBAQAorU0VMRUNUIHQu b2lkLCB0LnR5cG5hbWUgQVMgbmFtZQorICAgCSwoQ0FTRSBXSEVOIENBU1Qo Y29hbGVzY2UodC50eXBjb2xsYXRpb24sICcwJykgQVMgaW50ZWdlcikgPSAx MDAgVEhFTiB0cnVlIEVsU0UgZmFsc2UgRU5EKSBBUyBpc19jb2xsYXRhYmxl CisgICAJLHQudHlwYWNsIEFTIHR5cGVfYWNsCisgICAJLHQuKiwgZm9ybWF0 X3R5cGUodC5vaWQsIG51bGwpIEFTIGFsaWFzCisJLHBnX2dldF91c2VyYnlp ZCh0LnR5cG93bmVyKSBhcyB0eXBlb3duZXIsIGUudHlwbmFtZSBhcyBlbGVt ZW50CisJLGRlc2NyaXB0aW9uLCBjdC5vaWQgQVMgdGFib2lkCisJLG5zcC5u c3BuYW1lIEFTIHNjaGVtYQorCS0tTWluaW11bVZlcnNpb24gOS4xIFNUQVJU CisJLChTRUxFQ1QgYXJyYXlfYWdnKHByb3ZpZGVyIHx8ICc9JyB8fCBsYWJl bCkgRlJPTSBwZ19zaHNlY2xhYmVsIHNsMSBXSEVSRSBzbDEub2Jqb2lkPXQu b2lkKSBBUyBzZWNsYWJlbHMKKwktLSBFTkQKKwksKENBU0UgV0hFTiAodC5v aWQgPD0ge3sgZGF0bGFzdHN5c29pZH19OjpvaWQgT1IgY3Qub2lkICE9IDAp IFRIRU4gdHJ1ZSBFbFNFIGZhbHNlIEVORCkgQVMgaXNfc3lzX3R5cGUKK0ZS T00gcGdfdHlwZSB0CitMRUZUIE9VVEVSIEpPSU4gcGdfdHlwZSBlIE9OIGUu b2lkPXQudHlwZWxlbQorTEVGVCBPVVRFUiBKT0lOIHBnX2NsYXNzIGN0IE9O IGN0Lm9pZD10LnR5cHJlbGlkIEFORCBjdC5yZWxraW5kIDw+ICdjJworTEVG VCBPVVRFUiBKT0lOIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9p ZD10Lm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ190eXBlJzo6cmVnY2xhc3Mp CitMRUZUIE9VVEVSIEpPSU4gcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lk ID0gdC50eXBuYW1lc3BhY2UKK1dIRVJFIHQudHlwdHlwZSAhPSAnZCcgQU5E IHQudHlwbmFtZSBOT1QgTElLRSBFJ1xcXyUnIEFORCB0LnR5cG5hbWVzcGFj ZSA9IHt7c2NpZH19OjpvaWQKK3slIGlmIHRpZCAlfQorQU5EIHQub2lkID0g e3t0aWR9fTo6b2lkCit7JSBlbmRpZiAlfQorT1JERVIgQlkgdC50eXBuYW1l OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRlcy90eXBlL3NxbC85LjFfcGx1 cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVtcGxhdGVz L3R5cGUvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uMTZiNzJiYwotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRlcy90eXBlL3NxbC85 LjFfcGx1cy91cGRhdGUuc3FsCkBAIC0wLDAgKzEsMTI5IEBACit7JSBpbXBv cnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7 JSBpbXBvcnQgJ21hY3Jvcy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxF R0UgJX0KK3slIGlmIGRhdGEgJX0KK3sjPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0jfQoreyMgQmVsb3cgd2lsbCBjaGFuZ2Ugb2Jq ZWN0IG93bmVyICN9Cit7JSBpZiBkYXRhLnR5cGVvd25lciBhbmQgZGF0YS50 eXBlb3duZXIgIT0gb19kYXRhLnR5cGVvd25lciAlfQorQUxURVIgVFlQRSB7 eyBjb25ufHF0SWRlbnQob19kYXRhLnNjaGVtYSwgb19kYXRhLm5hbWUpIH19 CisgICAgT1dORVIgVE8ge3sgZGF0YS50eXBlb3duZXIgfX07CisKK3slIGVu ZGlmICV9Cit7Iz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09I30KK3sjIEJlbG93IHdpbGwgY2hhbmdlIG9iamVjdHMgY29tbWVudCAg I30KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gYW5kIGRhdGEuZGVzY3JpcHRp b24gIT0gb19kYXRhLmRlc2NyaXB0aW9uICV9CitDT01NRU5UIE9OIFRZUEUg e3sgY29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIG9fZGF0YS5uYW1lKSB9 fQorICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFsIH19Owor Cit7JSBlbmRpZiAlfQoreyM9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PSN9Cit7IyMjIFRoZSBzcWwgZ2l2ZW4gYmVsb3cgd2lsbCB1 cGRhdGUgY29tcG9zaXRlIHR5cGUgIyMjfQoreyUgaWYgZGF0YS5jb21wb3Np dGUgYW5kIGRhdGEuY29tcG9zaXRlfGxlbmd0aCA+IDAgJX0KK3slIHNldCBj b21wb3NpdGUgPSBkYXRhLmNvbXBvc2l0ZSAlfQoreyUgaWYgJ2RlbGV0ZWQn IGluIGNvbXBvc2l0ZSBhbmQgY29tcG9zaXRlLmRlbGV0ZWR8bGVuZ3RoID4g MCAlfQoreyUgZm9yIHIgaW4gY29tcG9zaXRlLmRlbGV0ZWQgJX0KK0FMVEVS IFRZUEUge3sgY29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIG9fZGF0YS5u YW1lKSB9fQorICAgIERST1AgQVRUUklCVVRFIHt7Y29ubnxxdElkZW50KHIu bWVtYmVyX25hbWUpfX07Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7 JSBpZiAnYWRkZWQnIGluIGNvbXBvc2l0ZSBhbmQgY29tcG9zaXRlLmFkZGVk fGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIGNvbXBvc2l0ZS5hZGRlZCAl fQorQUxURVIgVFlQRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLnNjaGVtYSwg b19kYXRhLm5hbWUpIH19CisgICAgQUREIEFUVFJJQlVURSB7e2Nvbm58cXRJ ZGVudChyLm1lbWJlcl9uYW1lKX19IHt7Y29ubnxxdElkZW50KHIudHlwZSl9 fXslIGlmIHIuaXNfdGxlbmd0aCBhbmQgci50bGVuZ3RoICV9Cisoe3tyLnRs ZW5ndGh9fXslIGlmIHIuaXNfcHJlY2lzaW9uIGFuZCByLnByZWNpc2lvbiAl fSx7e3IucHJlY2lzaW9ufX17JSBlbmRpZiAlfSl7JSBlbmRpZiAlfXslIGlm IHIuY29sbGF0aW9uICV9CisgQ09MTEFURSB7e3IuY29sbGF0aW9ufX17JSBl bmRpZiAlfTsKK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdj aGFuZ2VkJyBpbiBjb21wb3NpdGUgYW5kIGNvbXBvc2l0ZS5jaGFuZ2VkfGxl bmd0aCA+IDAgJX0KK3slIGZvciByIGluIGNvbXBvc2l0ZS5jaGFuZ2VkICV9 CitBTFRFUiBUWVBFIHt7IGNvbm58cXRJZGVudChvX2RhdGEuc2NoZW1hLCBv X2RhdGEubmFtZSkgfX0KKyAgICBBTFRFUiBBVFRSSUJVVEUge3tjb25ufHF0 SWRlbnQoci5tZW1iZXJfbmFtZSl9fSBTRVQgREFUQSBUWVBFIHt7Y29ubnxx dElkZW50KHIudHlwZSl9fXslIGlmIHIuaXNfdGxlbmd0aCBhbmQgci50bGVu Z3RoICV9Cisoe3tyLnRsZW5ndGh9fXslIGlmIHIuaXNfcHJlY2lzaW9uIGFu ZCByLnByZWNpc2lvbiAlfSx7e3IucHJlY2lzaW9ufX17JSBlbmRpZiAlfSl7 JSBlbmRpZiAlfXslIGlmIHIuY29sbGF0aW9uICV9CisgQ09MTEFURSB7e3Iu Y29sbGF0aW9ufX17JSBlbmRpZiAlfTsKK3slIGVuZGZvciAlfQoreyUgZW5k aWYgJX0KKworeyUgZW5kaWYgJX0KK3sjPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0jfQoreyMjIyBUaGUgc3FsIGdpdmVuIGJlbG93 IHdpbGwgdXBkYXRlIGVudW0gdHlwZSAjIyN9Cit7JSBpZiBkYXRhLmVudW0g YW5kIGRhdGEuZW51bXxsZW5ndGggPiAwICV9Cit7JSBzZXQgZW51bSA9IGRh dGEuZW51bSAlfQoreyUgc2V0IG9fZW51bV9sZW4gPSBvX2RhdGEuZW51bXxs ZW5ndGggJX0KK3sjIFdlIG5lZWQgYWN0dWFsIGxpc3QgaW5kZXggZnJvbSBs ZW5ndGggI30KK3slIHNldCBvX2VudW1fbGVuID0gb19lbnVtX2xlbiAtIDEg JX0KK3slIGlmICdhZGRlZCcgaW4gZW51bSBhbmQgZW51bS5hZGRlZHxsZW5n dGggPiAwICV9Cit7JSBmb3IgciBpbiBlbnVtLmFkZGVkICV9Cit7JSBzZXQg Y19pZHggPSBsb29wLmluZGV4ICV9Cit7JSBpZiBjX2lkeCA9PSAxICV9Cit7 IyBpZiBmaXJzdCBuZXcgZWxlbWVudCB0aGVuIGFkZCBpdCBhZnRlciBvbGQg ZGF0YSBlbnVtIGxpc3QjfQorQUxURVIgVFlQRSB7eyBjb25ufHF0SWRlbnQo b19kYXRhLnNjaGVtYSwgb19kYXRhLm5hbWUpIH19CisgICAgQUREIFZBTFVF IHt7ci5sYWJlbHxxdExpdGVyYWx9fSBBRlRFUiB7e29fZGF0YS5lbnVtW29f ZW51bV9sZW5dLmxhYmVsfHF0TGl0ZXJhbCB9fTsKK3slIGVsc2UgJX0KK3sj IGlmIGZpcnN0IG5ldyBlbGVtZW50IHRoZW4gYWRkIGl0IGFmdGVyIG5ldyBk YXRhIGVudW0gbGlzdCN9Cit7JSBzZXQgcF9pZHggPSBsb29wLmluZGV4IC0g MiAlfQorQUxURVIgVFlQRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLnNjaGVt YSwgb19kYXRhLm5hbWUpIH19CisgICAgQUREIFZBTFVFIHt7ci5sYWJlbHxx dExpdGVyYWx9fSBBRlRFUiB7e2VudW0uYWRkZWRbcF9pZHhdLmxhYmVsfHF0 TGl0ZXJhbH19OworeyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5k aWYgJX0KKworeyUgZW5kaWYgJX0KK3sjPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0jfQoreyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVs b3cgd2lsbCBjaGFuZ2UgU2VjdXJpdHkgTGFiZWwgI30KK3slIGlmIGRhdGEu c2VjbGFiZWxzIGFuZCBkYXRhLnNlY2xhYmVsc3xsZW5ndGggPiAwICV9Cit7 JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KK3slIHNldCBu YW1lID0gIGNvbm58cXRJZGVudChvX2RhdGEuc2NoZW1hLCBvX2RhdGEubmFt ZSkgJX0KK3slIGlmICdkZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xh YmVscy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xh YmVscy5kZWxldGVkICV9Cit7eyBTRUNMQUJMRS5EUk9QKGNvbm4sICdUWVBF JywgbmFtZSwgci5wcm92aWRlcikgfX0KK3slIGVuZGZvciAlfQoreyUgZW5k aWYgJX0KK3slIGlmICdhZGRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJl bHMuYWRkZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxz LmFkZGVkICV9Cit7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnVFlQRScsIG5h bWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFi ZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBm b3IgciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQore3sgU0VDTEFCTEUuQVBQ TFkoY29ubiwgJ1RZUEUnLCBuYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5 X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQorCit7JSBl bmRpZiAlfQoreyM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PSN9Cit7IyBDaGFuZ2UgdGhlIHByaXZpbGVnZXMgI30KK3slIGlmIGRh dGEudHlwYWNsIGFuZCBkYXRhLnR5cGFjbHxsZW5ndGggPiAwICV9Cit7JSBz ZXQgbmFtZSA9ICBjb25ufHF0SWRlbnQob19kYXRhLnNjaGVtYSwgb19kYXRh Lm5hbWUpICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS50eXBhY2wgJX0K K3slIGZvciBwcml2IGluIGRhdGEudHlwYWNsLmRlbGV0ZWQgJX0KK3t7IFBS SVZJTEVHRS5SRVNFVEFMTChjb25uLCAnVFlQRScsIHByaXYuZ3JhbnRlZSwg bmFtZSkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdj aGFuZ2VkJyBpbiBkYXRhLnR5cGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0 YS50eXBhY2wuY2hhbmdlZCAlfQore3sgUFJJVklMRUdFLlJFU0VUQUxMKGNv bm4sICdUWVBFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUpIH19Cit7eyBQ UklWSUxFR0UuQVBQTFkoY29ubiwgJ1RZUEUnLCBwcml2LmdyYW50ZWUsIG5h bWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50KSB9fQor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2FkZGVkJyBpbiBk YXRhLnR5cGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS50eXBhY2wuYWRk ZWQgJX0KK3t7IFBSSVZJTEVHRS5BUFBMWShjb25uLCAnVFlQRScsIHByaXYu Z3JhbnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhf Z3JhbnQpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRp ZiAlfQoreyM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PSN9Cit7IyBCZWxvdyB3aWxsIGNoYW5nZSBvYmplY3QgbmFtZSAjfQoreyUg aWYgZGF0YS5uYW1lIGFuZCBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0K K0FMVEVSIFRZUEUge3sgY29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIG9f ZGF0YS5uYW1lKSB9fQorICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQo ZGF0YS5uYW1lKSB9fTsKKworeyUgZW5kaWYgJX0KK3sjPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0jfQoreyMgQmVsb3cgd2lsbCBj aGFuZ2UgdGhlIHNjaGVtYSBmb3Igb2JqZWN0ICN9Cit7IyB3aXRoIGV4dHJh IGlmIGNvbmRpdGlvbiB3ZSB3aWxsIGFsc28gbWFrZSBzdXJlIHRoYXQgb2Jq ZWN0IGhhcyBjb3JyZWN0IG5hbWUgI30KK3slIGlmIGRhdGEuc2NoZW1hIGFu ZCBkYXRhLnNjaGVtYSAhPSBvX2RhdGEuc2NoZW1hICV9CitBTFRFUiBUWVBF IHslIGlmIGRhdGEubmFtZSAhPSBvX2RhdGEubmFtZSAlfXt7IGNvbm58cXRJ ZGVudChvX2RhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19Cit7JSBlbHNlICV9 e3sgY29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIG9fZGF0YS5uYW1lKSB9 fXslIGVuZGlmICV9CisgICAgU0VUIFNDSEVNQSB7eyBjb25ufHF0SWRlbnQo ZGF0YS5zY2hlbWEpIH19OworCit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0K XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwvcG9zdGdyZXNf aW5idWl0X3R5cGVzLnR4dCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBs YXRlcy90eXBlL3NxbC9wb3N0Z3Jlc19pbmJ1aXRfdHlwZXMudHh0Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhNjE2YjYKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0ZXMv dHlwZS9zcWwvcG9zdGdyZXNfaW5idWl0X3R5cGVzLnR4dApAQCAtMCwwICsx LDUzIEBACisiIiIKK0hlcmUgYXJlIHRoZSBsaXN0IG9mIFBvc3RncmVzIGlu YnVpbHQgdHlwZXMgJiB0aGVpciBPSUQncworV2Ugd2lsbCB1c2UgdGhlc2Ug dHlwZSB0byBjaGVjayBmb3IgdmFsaWRhdGlvbnMKKworIyMgIFBHT0lEX1RZ UEVfU0VSSUFMICAgICAgICAgICAgICAgICAgIC00MkwKKyMjICBQR09JRF9U WVBFX1NFUklBTDggICAgICAgICAgICAgICAgICAtNDNMCisjIyAgUEdPSURf VFlQRV9TRVJJQUwyICAgICAgICAgICAgICAgICAgLTQ0TAorIyMgIFBHT0lE X1RZUEVfQk9PTCAgICAgICAgICAgICAgICAgICAgIDE2TAorIyMgIFBHT0lE X1RZUEVfQllURUEgICAgICAgICAgICAgICAgICAgIDE3TAorIyMgIFBHT0lE X1RZUEVfQ0hBUiAgICAgICAgICAgICAgICAgICAgIDE4TAorIyMgIFBHT0lE X1RZUEVfTkFNRSAgICAgICAgICAgICAgICAgICAgIDE5TAorIyMgIFBHT0lE X1RZUEVfSU5UOCAgICAgICAgICAgICAgICAgICAgIDIwTAorIyMgIFBHT0lE X1RZUEVfSU5UMiAgICAgICAgICAgICAgICAgICAgIDIxTAorIyMgIFBHT0lE X1RZUEVfSU5UNCAgICAgICAgICAgICAgICAgICAgIDIzTAorIyMgIFBHT0lE X1RZUEVfVEVYVCAgICAgICAgICAgICAgICAgICAgIDI1TAorIyMgIFBHT0lE X1RZUEVfT0lEICAgICAgICAgICAgICAgICAgICAgIDI2TAorIyMgIFBHT0lE X1RZUEVfVElEICAgICAgICAgICAgICAgICAgICAgIDI3TAorIyMgIFBHT0lE X1RZUEVfWElEICAgICAgICAgICAgICAgICAgICAgIDI4TAorIyMgIFBHT0lE X1RZUEVfQ0lEICAgICAgICAgICAgICAgICAgICAgIDI5TAorIyMgIFBHT0lE X1RZUEVfRkxPQVQ0ICAgICAgICAgICAgICAgICAgIDcwMEwKKyMjICBQR09J RF9UWVBFX0ZMT0FUOCAgICAgICAgICAgICAgICAgICA3MDFMCisjIyAgUEdP SURfVFlQRV9NT05FWSAgICAgICAgICAgICAgICAgICAgNzkwTAorIyMgIFBH T0lEX1RZUEVfQ0hBUl9BUlJBWSAgICAgICAgICAgICAgIDEwMDJMCisjIyAg UEdPSURfVFlQRV9URVhUX0FSUkFZICAgICAgICAgICAgICAgMTAwOUwKKyMj ICBQR09JRF9UWVBFX0JQQ0hBUl9BUlJBWSAgICAgICAgICAgICAxMDE0TAor IyMgIFBHT0lEX1RZUEVfVkFSQ0hBUl9BUlJBWSAgICAgICAgICAgIDEwMTVM CisjIyAgUEdPSURfVFlQRV9CUENIQVIgICAgICAgICAgICAgICAgICAgMTA0 MkwKKyMjICBQR09JRF9UWVBFX1ZBUkNIQVIgICAgICAgICAgICAgICAgICAx MDQzTAorIyMgIFBHT0lEX1RZUEVfREFURSAgICAgICAgICAgICAgICAgICAg IDEwODJMCisjIyAgUEdPSURfVFlQRV9USU1FICAgICAgICAgICAgICAgICAg ICAgMTA4M0wKKyMjICBQR09JRF9UWVBFX1RJTUVTVEFNUCAgICAgICAgICAg ICAgICAxMTE0TAorIyMgIFBHT0lEX1RZUEVfVElNRVNUQU1QX0FSUkFZICAg ICAgICAgIDExMTVMCisjIyAgUEdPSURfVFlQRV9USU1FX0FSUkFZICAgICAg ICAgICAgICAgMTE4M0wKKyMjICBQR09JRF9UWVBFX1RJTUVTVEFNUFRaICAg ICAgICAgICAgICAxMTg0TAorIyMgIFBHT0lEX1RZUEVfVElNRVNUQU1QVFpf QVJSQVkgICAgICAgIDExODVMCisjIyAgUEdPSURfVFlQRV9JTlRFUlZBTCAg ICAgICAgICAgICAgICAgMTE4NkwKKyMjICBQR09JRF9UWVBFX0lOVEVSVkFM X0FSUkFZICAgICAgICAgICAxMTg3TAorIyMgIFBHT0lEX1RZUEVfTlVNRVJJ Q19BUlJBWSAgICAgICAgICAgIDEyMzFMCisjIyAgUEdPSURfVFlQRV9USU1F VFogICAgICAgICAgICAgICAgICAgMTI2NkwKKyMjICBQR09JRF9UWVBFX1RJ TUVUWl9BUlJBWSAgICAgICAgICAgICAxMjcwTAorIyMgIFBHT0lEX1RZUEVf QklUICAgICAgICAgICAgICAgICAgICAgIDE1NjBMCisjIyAgUEdPSURfVFlQ RV9CSVRfQVJSQVkgICAgICAgICAgICAgICAgMTU2MUwKKyMjICBQR09JRF9U WVBFX1ZBUkJJVCAgICAgICAgICAgICAgICAgICAxNTYyTAorIyMgIFBHT0lE X1RZUEVfVkFSQklUX0FSUkFZICAgICAgICAgICAgIDE1NjNMCisjIyAgUEdP SURfVFlQRV9OVU1FUklDICAgICAgICAgICAgICAgICAgMTcwMEwKKyMjICBQ R09JRF9UWVBFX0NTVFJJTkcgICAgICAgICAgICAgICAgICAyMjc1TAorIyMg IFBHT0lEX1RZUEVfQU5ZICAgICAgICAgICAgICAgICAgICAgIDIyNzZMCisj IyAgUEdPSURfVFlQRV9WT0lEICAgICAgICAgICAgICAgICAgICAgMjI3OEwK KyMjICBQR09JRF9UWVBFX1RSSUdHRVIgICAgICAgICAgICAgICAgICAyMjc5 TAorIyMgIFBHT0lEX1RZUEVfTEFOR1VBR0VfSEFORExFUiAgICAgICAgIDIy ODBMCisjIyAgUEdPSURfVFlQRV9JTlRFUk5BTCAgICAgICAgICAgICAgICAg MjI4MUwKKyMjICBQR09JRF9UWVBFX0hBTkRMRVIgICAgICAgICAgICAgICAg ICAzMTE1TAorIiIiClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVtcGxhdGVzL3R5cGUv c3FsL3ByZV85LjEvYWNsLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3Rl bXBsYXRlcy90eXBlL3NxbC9wcmVfOS4xL2FjbC5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2NjZjhlNwotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRlcy90eXBlL3Nx bC9wcmVfOS4xL2FjbC5zcWwKQEAgLTAsMCArMSwyOSBAQAorU0VMRUNUICd0 eXBhY2wnIGFzIGRlZnR5cGUsIENPQUxFU0NFKGd0LnJvbG5hbWUsICdwdWJs aWMnKSBncmFudGVlLCBnLnJvbG5hbWUgZ3JhbnRvciwgYXJyYXlfYWdnKHBy aXZpbGVnZV90eXBlKSBhcyBwcml2aWxlZ2VzLCBhcnJheV9hZ2coaXNfZ3Jh bnRhYmxlKSBhcyBncmFudGFibGUKK0ZST00KKyAgKFNFTEVDVAorICAgIGQu Z3JhbnRlZSwgZC5ncmFudG9yLCBkLmlzX2dyYW50YWJsZSwKKyAgICBDQVNF IGQucHJpdmlsZWdlX3R5cGUKKyAgICBXSEVOICdVU0FHRScgVEhFTiAnVScK KyAgICBFTFNFICdVTktOT1dOJworICAgIEVORCBBUyBwcml2aWxlZ2VfdHlw ZQorICBGUk9NCisgICAgKFNFTEVDVCB0LnR5cGFjbAorICAgICAgICBGUk9N IHBnX3R5cGUgdAorICAgICAgICBMRUZUIE9VVEVSIEpPSU4gcGdfdHlwZSBl IE9OIGUub2lkPXQudHlwZWxlbQorICAgICAgICBMRUZUIE9VVEVSIEpPSU4g cGdfY2xhc3MgY3QgT04gY3Qub2lkPXQudHlwcmVsaWQgQU5EIGN0LnJlbGtp bmQgPD4gJ2MnCisgICAgICAgIExFRlQgT1VURVIgSk9JTiBwZ19kZXNjcmlw dGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9dC5vaWQgQU5EIGRlcy5jbGFzc29p ZD0ncGdfdHlwZSc6OnJlZ2NsYXNzKQorICAgICAgICBXSEVSRSB0LnR5cHR5 cGUgIT0gJ2QnIEFORCB0LnR5cG5hbWUgTk9UIExJS0UgRSdcXF8lJyBBTkQg dC50eXBuYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgICAgIHslIGlm IHRpZCAlfQorICAgICAgICBBTkQgdC5vaWQgPSB7e3RpZH19OjpvaWQKKyAg ICAgICAgeyUgZW5kaWYgJX0KKyAgICApIGFjbCwKKyAgICAoU0VMRUNUIChk KS5ncmFudGVlIEFTIGdyYW50ZWUsIChkKS5ncmFudG9yIEFTIGdyYW50b3Is IChkKS5pc19ncmFudGFibGUKKyAgICAgICAgQVMgaXNfZ3JhbnRhYmxlLCAo ZCkucHJpdmlsZWdlX3R5cGUgQVMgcHJpdmlsZWdlX3R5cGUgRlJPTSAoU0VM RUNUCisgICAgICAgIGFjbGV4cGxvZGUodC50eXBhY2wpIGFzIGQgRlJPTSBw Z190eXBlIHQgV0hFUkUgdC5vaWQgPSB7e3RpZH19OjpvaWQpIGEpIGQKKyAg ICApIGQKKyAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZyBPTiAo ZC5ncmFudG9yID0gZy5vaWQpCisgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBn X3JvbGVzIGd0IE9OIChkLmdyYW50ZWUgPSBndC5vaWQpCitHUk9VUCBCWSBn LnJvbG5hbWUsIGd0LnJvbG5hbWUKKworCisKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRlcy90eXBlL3NxbC9wcmVfOS4xL2Fk ZGl0aW9uYWxfcHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBl cy90ZW1wbGF0ZXMvdHlwZS9zcWwvcHJlXzkuMS9hZGRpdGlvbmFsX3Byb3Bl cnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmQ3Mjg3NGYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwvcHJlXzkuMS9hZGRpdGlvbmFsX3By b3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEsNDAgQEAKK3sjIFRoZSBTUUwgZ2l2 ZW4gYmVsb3cgd2lsbCBmZXRjaCBjb21wb3NpdGUgdHlwZSN9Cit7JSBpZiB0 eXBlID09ICdjJyAlfQorU0VMRUNUIGF0dG5hbWUsIGZvcm1hdF90eXBlKHQu b2lkLE5VTEwpIEFTIHR5cG5hbWUsIGF0dG5kaW1zLCBhdHR0eXBtb2QsIG5z cC5uc3BuYW1lLAorKFNFTEVDVCBDT1VOVCgxKSBmcm9tIHBnX3R5cGUgdDIg V0hFUkUgdDIudHlwbmFtZT10LnR5cG5hbWUpID4gMSBBUyBpc2R1cAorLS0g TWluIDkuMSBzdGFydAorLGNvbGxuYW1lLCBuc3BjLm5zcG5hbWUgYXMgY29s bG5zcG5hbWUKKy0tIEVuZAorLCBhdHQuYXR0cmVsaWQKK0ZST00gcGdfYXR0 cmlidXRlIGF0dAorSk9JTiBwZ190eXBlIHQgT04gdC5vaWQ9YXR0dHlwaWQK K0pPSU4gcGdfbmFtZXNwYWNlIG5zcCBPTiB0LnR5cG5hbWVzcGFjZT1uc3Au b2lkCitMRUZUIE9VVEVSIEpPSU4gcGdfdHlwZSBiIE9OIHQudHlwZWxlbT1i Lm9pZAorLS0gTWluIDkuMSBzdGFydAorTEVGVCBPVVRFUiBKT0lOIHBnX2Nv bGxhdGlvbiBjIE9OIGF0dC5hdHRjb2xsYXRpb249Yy5vaWQKK0xFRlQgT1VU RVIgSk9JTiBwZ19uYW1lc3BhY2UgbnNwYyBPTiBjLmNvbGxuYW1lc3BhY2U9 bnNwYy5vaWQKKy0tIEVuZAorV0hFUkUgYXR0LmF0dHJlbGlkID0ge3t0eXBy ZWxpZH19OjpvaWQKK09SREVSIGJ5IGF0dG51bTsKK3slIGVuZGlmICV9Cit7 IyBUaGUgU1FMIGdpdmVuIGJlbG93IHdpbGwgZmV0Y2ggZW51bSB0eXBlI30K K3slIGlmIHR5cGUgPT0gJ2UnICV9CitTRUxFQ1QgZW51bWxhYmVsIEZST00g cGdfZW51bSBXSEVSRSBlbnVtdHlwaWQ9e3t0aWR9fTo6b2lkCistLSBNaW4g OS4xCitPUkRFUiBieSBlbnVtc29ydG9yZGVyCistLUVuZAorLS0gZWxzZQor LS0gT1JERVIgYnkgb2lkCit7JSBlbmRpZiAlfQoreyMgVGhlIFNRTCBnaXZl biBiZWxvdyB3aWxsIGZldGNoIHJhbmdlIHR5cGUjfQoreyUgaWYgdHlwZSA9 PSAncicgJX0KK1NFTEVDVCBybmdzdWJ0eXBlLCBzdC50eXBuYW1lLAorcm5n Y29sbGF0aW9uLCBjb2wuY29sbG5hbWUsCitybmdzdWJvcGMsIG9wYy5vcGNu YW1lLAorcm5nY2Fub25pY2FsLCBybmdzdWJkaWZmCitGUk9NIHBnX3Jhbmdl CitMRUZUIEpPSU4gcGdfdHlwZSBzdCBPTiBzdC5vaWQ9cm5nc3VidHlwZQor TEVGVCBKT0lOIHBnX2NvbGxhdGlvbiBjb2wgT04gY29sLm9pZD1ybmdjb2xs YXRpb24KK0xFRlQgSk9JTiBwZ19vcGNsYXNzIG9wYyBPTiBvcGMub2lkPXJu Z3N1Ym9wYworV0hFUkUgcm5ndHlwaWQ9e3t0aWR9fTo6b2lkOworeyUgZW5k aWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBs YXRlcy90eXBlL3NxbC9wcmVfOS4xL2JhY2tlbmRfc3VwcG9ydC5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwvcHJlXzku MS9iYWNrZW5kX3N1cHBvcnQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjAwYjdmYjQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwvcHJlXzkuMS9i YWNrZW5kX3N1cHBvcnQuc3FsCkBAIC0wLDAgKzEsMTggQEAKK1NFTEVDVAor IENBU0UgV0hFTiBuc3AubnNwbmFtZSBJTiAoJ3N5cycsICdkYm8nLCAnaW5m b3JtYXRpb25fc2NoZW1hJykgVEhFTiB0cnVlIEVMU0UgZmFsc2UgRU5EIEFT IGRiU3VwcG9ydAorRlJPTSBwZ19uYW1lc3BhY2UgbnNwCitXSEVSRSBuc3Au b2lkPXt7c2NpZH19OjppbnQKK0FORCAoCisJKG5zcG5hbWUgPSAncGdfY2F0 YWxvZycgQU5EIEVYSVNUUworCSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoU0VMRUNUIDEgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0g J3BnX2NsYXNzJyBBTkQgcmVsbmFtZXNwYWNlID0gbnNwLm9pZCBMSU1JVCAx KSkKKwlPUiAobnNwbmFtZSA9ICdwZ2FnZW50JyBBTkQgRVhJU1RTCisJICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTRUxFQ1QgMSBGUk9NIHBn X2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAncGdhX2pvYicgQU5EIHJlbG5hbWVz cGFjZSA9IG5zcC5vaWQgTElNSVQgMSkpCisJT1IgKG5zcG5hbWUgPSAnaW5m b3JtYXRpb25fc2NoZW1hJyBBTkQgRVhJU1RTCisJICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChTRUxFQ1QgMSBGUk9NIHBnX2NsYXNzIFdIRVJF IHJlbG5hbWUgPSAndGFibGVzJyBBTkQgcmVsbmFtZXNwYWNlID0gbnNwLm9p ZCBMSU1JVCAxKSkKKwlPUiAobnNwbmFtZSBMSUtFICdfJScgQU5EIEVYSVNU UworCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU0VMRUNUIDEg RlJPTSBwZ19wcm9jIFdIRVJFIHByb25hbWU9J3Nsb255dmVyc2lvbicgQU5E IHByb25hbWVzcGFjZSA9IG5zcC5vaWQgTElNSVQgMSkpCispCitBTkQKKyBu c3BuYW1lIE5PVCBMSUtFIEUncGdcXHRlbXBcXCUnCitBTkQKKyBuc3BuYW1l IE5PVCBMSUtFIEUncGdcXHRvYXN0X3RlbXBcXCUnClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlw ZXMvdGVtcGxhdGVzL3R5cGUvc3FsL3ByZV85LjEvY3JlYXRlLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRlcy90eXBlL3NxbC9wcmVfOS4x L2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNDEzNmQ5MQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3R5cGVzL3RlbXBsYXRlcy90eXBlL3NxbC9wcmVfOS4xL2NyZWF0ZS5zcWwK QEAgLTAsMCArMSw2MSBAQAoreyUgaW1wb3J0ICdtYWNyb3MvcHJpdmlsZWdl Lm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7IyMjICBDb21wb3NpdGUgVHlw ZSAjIyN9Cit7JSBpZiBkYXRhIGFuZCBkYXRhLnR5cHR5cGUgPT0gJ2MnICV9 CitDUkVBVEUgVFlQRSB7JSBpZiBkYXRhLnNjaGVtYSAlfXt7IGNvbm58cXRJ ZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fXslIGVsc2UgJX17eyBj b25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fXslIGVuZGlmICV9IEFTCisoeyUg aWYgZGF0YS5jb21wb3NpdGUgJX17JSBmb3IgZCBpbiBkYXRhLmNvbXBvc2l0 ZSAlfXslIGlmIGxvb3AuaW5kZXggIT0gMSAlfSwgeyUgZW5kaWYgJX17eyBj b25ufHF0SWRlbnQoZC5tZW1iZXJfbmFtZSkgfX0ge3sgZC50eXBlIH19eyUg aWYgZC5pc190bGVuZ3RoIGFuZCBkLnRsZW5ndGggJX0oe3tkLnRsZW5ndGh9 fXslIGlmIGQuaXNfcHJlY2lzaW9uIGFuZCBkLnByZWNpc2lvbiAlfSx7e2Qu cHJlY2lzaW9ufX17JSBlbmRpZiAlfSl7JSBlbmRpZiAlfXslIGlmIGQuY29s bGF0aW9uICV9IENPTExBVEUge3tkLmNvbGxhdGlvbn19eyUgZW5kaWYgJX17 JSBlbmRmb3IgJX17JSBlbmRpZiAlfSk7Cit7JSBlbmRpZiAlfQoreyMjIyAg RW51bSBUeXBlICMjI30KK3slIGlmIGRhdGEgYW5kIGRhdGEudHlwdHlwZSA9 PSAnZScgJX0KK0NSRUFURSBUWVBFIHslIGlmIGRhdGEuc2NoZW1hICV9e3sg Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19eyUgZWxz ZSAlfXt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19eyUgZW5kaWYgJX0g QVMgRU5VTQorKHslIGZvciBlIGluIGRhdGEuZW51bSAlfXslIGlmIGxvb3Au aW5kZXggIT0gMSAlfSwgeyUgZW5kaWYgJX17eyBlLmxhYmVsfHF0TGl0ZXJh bCB9fXslIGVuZGZvciAlfSk7Cit7JSBlbmRpZiAlfQoreyMjIyAgUmFuZ2Ug VHlwZSAjIyN9Cit7JSBpZiBkYXRhIGFuZCBkYXRhLnR5cHR5cGUgPT0gJ3In ICV9CitDUkVBVEUgVFlQRSB7JSBpZiBkYXRhLnNjaGVtYSAlfXt7IGNvbm58 cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fXslIGVsc2UgJX17 eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fXslIGVuZGlmICV9IEFTIFJB TkdFCisoeyUgaWYgZGF0YS50eXBuYW1lICV9IFNVQlRZUEU9e3sgY29ubnxx dFR5cGVJZGVudChkYXRhLnR5cG5hbWUpIH19eyUgZW5kaWYgJX17JSBpZiBk YXRhLmNvbGxuYW1lICV9CissIENPTExBVElPTiA9IHt7IGRhdGEuY29sbG5h bWUgfX17JSBlbmRpZiAlfXslIGlmIGRhdGEub3BjbmFtZSAgJX0KKywgU1VC VFlQRV9PUENMQVNTID0ge3sgZGF0YS5vcGNuYW1lIH19eyUgZW5kaWYgJX17 JSBpZiBkYXRhLnJuZ2Nhbm9uaWNhbCAlfQorLCBDQU5PTklDQUwgPSB7eyBk YXRhLnJuZ2Nhbm9uaWNhbCB9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5ybmdz dWJkaWZmICV9CissIFNVQlRZUEVfRElGRiA9IHt7IGRhdGEucm5nc3ViZGlm ZiB9fXslIGVuZGlmICV9ICk7Cit7JSBlbmRpZiAlfQoreyMjIyAgRXh0ZXJu YWwgVHlwZSAjIyN9Cit7JSBpZiBkYXRhIGFuZCBkYXRhLnR5cHR5cGUgPT0g J3gnICV9CitDUkVBVEUgVFlQRSB7JSBpZiBkYXRhLnNjaGVtYSAlfXt7IGNv bm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fXslIGVsc2Ug JX17eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fXslIGVuZGlmICV9IEFT CisoIHslIGlmIGRhdGEudHlwaW5wdXQgJX0KK0lOUFVUID0ge3tkYXRhLnR5 cGlucHV0fX17JSBlbmRpZiAlfXslIGlmIGRhdGEudHlwb3V0cHV0ICV9Ciss T1VUUFVUID0ge3sgZGF0YS50eXBvdXRwdXQgfX17JSBlbmRpZiAlfXslIGlm IGRhdGEudHlwcmVjZWl2ZSAlfQorLFJFQ0VJVkUgPSB7e2RhdGEudHlwcmVj ZWl2ZX19eyUgZW5kaWYgJX17JSBpZiBkYXRhLnR5cG5hbWUgJX0KKyxTRU5E ID0ge3tkYXRhLnR5cHNlbmR9fXslIGVuZGlmICV9eyUgaWYgZGF0YS50eXBt b2RpbiAlfQorLFRZUE1PRF9JTiA9IHt7ZGF0YS50eXBtb2Rpbn19eyUgZW5k aWYgJX17JSBpZiBkYXRhLnR5cG1vZG91dCAlfQorLFRZUE1PRF9PVVQgPSB7 e2RhdGEudHlwbW9kb3V0fX17JSBlbmRpZiAlfXslIGlmIGRhdGEudHlwYW5h bHl6ZSAlfQorLEFOQUxZWkUgPSB7e2RhdGEudHlwYW5hbHl6ZX19eyUgZW5k aWYgJX17JSBpZiBkYXRhLnR5cGxlbiAlfQorLElOVEVSTkFMTEVOR1RIID0g e3tkYXRhLnR5cGxlbn19eyUgZW5kaWYgJX17JSBpZiBkYXRhLnR5cGJ5dmFs ICV9CissUEFTU0VEQllWQUxVRXslIGVuZGlmICV9eyUgaWYgZGF0YS50eXBh bGlnbiAlfQorLEFMSUdOTUVOVCA9ICB7e2RhdGEudHlwYWxpZ259fXslIGVu ZGlmICV9eyUgaWYgZGF0YS50eXBzdG9yYWdlICV9CissU1RPUkFHRSA9ICB7 e2RhdGEudHlwc3RvcmFnZX19eyUgZW5kaWYgJX17JSBpZiBkYXRhLnR5cGNh dGVnb3J5ICV9CissQ0FURUdPUlkgPSB7e2RhdGEudHlwY2F0ZWdvcnl9fXsl IGVuZGlmICV9eyUgaWYgZGF0YS50eXBpc3ByZWZlcnJlZCAlfQorLFBSRUZF UlJFRCA9ICB7e2RhdGEudHlwaXNwcmVmZXJyZWR9fXslIGVuZGlmICV9eyUg aWYgZGF0YS50eXBkZWZhdWx0ICV9CissREVGQVVMVCA9IHt7ZGF0YS50eXBk ZWZhdWx0fX17JSBlbmRpZiAlfXslIGlmIGRhdGEuZWxlbWVudCAlfQorLEVM RU1FTlQgPSB7e2RhdGEuZWxlbWVudH19eyUgZW5kaWYgJX17JSBpZiBkYXRh LnR5cGRlbGltICV9CissREVMSU1JVEVSID0ge3tkYXRhLnR5cGRlbGltfHF0 TGl0ZXJhbH19eyUgZW5kaWYgJX17JSBpZiBkYXRhLmlzX2NvbGxhdGFibGUg JX0KKyxDT0xMQVRBQkxFID0ge3tkYXRhLmlzX2NvbGxhdGFibGV9fXslIGVu ZGlmICV9ICk7Cit7JSBlbmRpZiAlfQoreyMjIyAgVHlwZSBPd25lciAjIyN9 Cit7JSBpZiBkYXRhIGFuZCBkYXRhLnR5cGVvd25lciAlfQorCitBTFRFUiBU WVBFIHslIGlmIGRhdGEuc2NoZW1hICV9e3sgY29ubnxxdElkZW50KGRhdGEu c2NoZW1hLCBkYXRhLm5hbWUpIH19eyUgZWxzZSAlfXt7IGNvbm58cXRJZGVu dChkYXRhLm5hbWUpIH19eyUgZW5kaWYgJX0KKyAgICBPV05FUiBUTyB7e2Rh dGEudHlwZW93bmVyfX07Cit7JSBlbmRpZiAlfQoreyMjIyAgVHlwZSBDb21t ZW50cyAjIyN9Cit7JSBpZiBkYXRhIGFuZCBkYXRhLmRlc2NyaXB0aW9uICV9 CisKK0NPTU1FTlQgT04gVFlQRSB7JSBpZiBkYXRhLnNjaGVtYSAlfXt7IGNv bm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fXslIGVsc2Ug JX17eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fXslIGVuZGlmICV9Cisg ICAgSVMge3tkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJhbH19OworeyUgZW5k aWYgJX0KK3sjIyMgIEFDTCAjIyN9Cit7JSBpZiBkYXRhLnR5cGFjbCAlfQor Cit7JSBmb3IgcHJpdiBpbiBkYXRhLnR5cGFjbCAlfQore3sgUFJJVklMRUdF LkFQUExZKGNvbm4sICdUWVBFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUs IHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50KSB9fQoreyUg ZW5kZm9yICV9Cit7JSBlbmRpZiAlfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBs YXRlcy90eXBlL3NxbC9wcmVfOS4xL2RlbGV0ZS5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwvcHJlXzkuMS9kZWxldGUu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2YTI3 OWUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90 ZW1wbGF0ZXMvdHlwZS9zcWwvcHJlXzkuMS9kZWxldGUuc3FsCkBAIC0wLDAg KzEsOCBAQAoreyUgaWYgc2NpZCBhbmQgdGlkICV9CitTRUxFQ1QgdC50eXBu YW1lIEFTIG5hbWUKK0ZST00gcGdfdHlwZSB0CitXSEVSRSB0Lm9pZCA9IHt7 dGlkfX06Om9pZAoreyUgZW5kaWYgJX0KK3slIGlmIG5hbWUgJX0KK0RST1Ag VFlQRSB7eyBjb25ufHF0SWRlbnQobmFtZSkgfX17JSBpZiBjYXNjYWRlJX0g Q0FTQ0FERXslIGVuZGlmICV9OworeyUgZW5kaWYgJX0KXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwvcHJlXzkuMS9nZXRfY29sbGF0aW9u cy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0ZXMvdHlwZS9z cWwvcHJlXzkuMS9nZXRfY29sbGF0aW9ucy5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uZDFjMjliYgotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRlcy90eXBlL3NxbC9w cmVfOS4xL2dldF9jb2xsYXRpb25zLnNxbApAQCAtMCwwICsxLDcgQEAKK1NF TEVDVCAtLW5zcG5hbWUsIGNvbGxuYW1lLAorCUNBU0UgV0hFTiBsZW5ndGgo bnNwbmFtZSkgPiAwIEFORCBsZW5ndGgoY29sbG5hbWUpID4gMCAgVEhFTgor CSAgY29uY2F0KHF1b3RlX2lkZW50KG5zcG5hbWUpLCAnLicsIHF1b3RlX2lk ZW50KGNvbGxuYW1lKSkKKwlFTFNFICcnIEVORCBBUyBjb2xsYXRpb24KK0ZS T00gcGdfY29sbGF0aW9uIGMsIHBnX25hbWVzcGFjZSBuCitXSEVSRSBjLmNv bGxuYW1lc3BhY2U9bi5vaWQKK09SREVSIEJZIG5zcG5hbWUsIGNvbGxuYW1l OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRlcy90eXBlL3NxbC9wcmVfOS4x L2dldF9leHRlcm5hbF9mdW5jdGlvbnMuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dHlwZXMvdGVtcGxhdGVzL3R5cGUvc3FsL3ByZV85LjEvZ2V0X2V4dGVybmFs X2Z1bmN0aW9ucy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uN2I3NmVkNQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3R5cGVzL3RlbXBsYXRlcy90eXBlL3NxbC9wcmVfOS4xL2dldF9leHRl cm5hbF9mdW5jdGlvbnMuc3FsCkBAIC0wLDAgKzEsNDAgQEAKK3sjIyMgSW5w dXQvT3V0cHV0L1NlbmQvUmVjZWl2ZS9BbmFseXplIGZ1bmN0aW9uIGxpc3Qg YWxzbyBhcHBlbmQgaW50byBUeXBNb2RlSU4vVHlwTW9kT1VUICMjI30KK3sl IGlmIGV4dGZ1bmMgJX0KK1NFTEVDVCBwcm9uYW1lLCBuc3BuYW1lLAorICAg IENBU0UgV0hFTiBsZW5ndGgobnNwbmFtZSkgPiAwIEFORCBsZW5ndGgocHJv bmFtZSkgPiAwICBUSEVOCisJICBjb25jYXQocXVvdGVfaWRlbnQobnNwbmFt ZSksICcuJywgcXVvdGVfaWRlbnQocHJvbmFtZSkpCisJRUxTRSAnJyBFTkQg QVMgZnVuYworRlJPTSAoCisgU0VMRUNUIHByb25hbWUsIG5zcG5hbWUsIG1h eChwcm9hcmd0eXBlc1swXSkgQVMgYXJnMCwgbWF4KHByb2FyZ3R5cGVzWzFd KSBBUyBhcmcxCitGUk9NIHBnX3Byb2MgcAorIEpPSU4gcGdfbmFtZXNwYWNl IG4gT04gbi5vaWQ9cHJvbmFtZXNwYWNlCitHUk9VUCBCWSBwcm9uYW1lLCBu c3BuYW1lCisgSEFWSU5HIGNvdW50KHByb25hbWUpID0gMSAgICkgQVMgdW5p cXVlZnVuYworIFdIRVJFIGFyZzAgPD4gMCBBTkQgYXJnMSA9IDA7Cit7JSBl bmRpZiAlfQoreyMjIyBUeXBtb2RJTiBsaXN0ICMjI30KK3slIGlmIHR5cGVt b2RpbiAlfQorU0VMRUNUIHByb25hbWUsIG5zcG5hbWUsCisgICAgQ0FTRSBX SEVOIGxlbmd0aChuc3BuYW1lKSA+IDAgQU5EIGxlbmd0aChwcm9uYW1lKSA+ IDAgIFRIRU4KKwkgIGNvbmNhdChxdW90ZV9pZGVudChuc3BuYW1lKSwgJy4n LCBxdW90ZV9pZGVudChwcm9uYW1lKSkKKwlFTFNFICcnIEVORCBBUyBmdW5j CisgIEZST00gcGdfcHJvYyBwCisgIEpPSU4gcGdfbmFtZXNwYWNlIG4gT04g bi5vaWQ9cHJvbmFtZXNwYWNlCisgIFdIRVJFIHByb3JldHR5cGU9KFNFTEVD VCBvaWQgRlJPTSBwZ190eXBlIFdIRVJFIHR5cG5hbWU9J2ludDQnKQorICAg IEFORCBwcm9hcmd0eXBlc1swXT0oU0VMRUNUIG9pZCBGUk9NIHBnX3R5cGUg V0hFUkUgdHlwbmFtZT0nX2NzdHJpbmcnKQorICAgIEFORCBwcm9hcmd0eXBl c1sxXSBJUyBOVUxMCisgIE9SREVSIEJZIG5zcG5hbWUsIHByb25hbWU7Cit7 JSBlbmRpZiAlfQoreyMjIyBUeXBtb2RPVVQgbGlzdCAjIyN9Cit7JSBpZiB0 eXBlbW9kb3V0ICV9CitTRUxFQ1QgcHJvbmFtZSwgbnNwbmFtZSwKKyAgICBD QVNFIFdIRU4gbGVuZ3RoKG5zcG5hbWUpID4gMCBBTkQgbGVuZ3RoKHByb25h bWUpID4gMCAgVEhFTgorCSAgY29uY2F0KHF1b3RlX2lkZW50KG5zcG5hbWUp LCAnLicsIHF1b3RlX2lkZW50KHByb25hbWUpKQorCUVMU0UgJycgRU5EIEFT IGZ1bmMKKyAgRlJPTSBwZ19wcm9jIHAKKyAgSk9JTiBwZ19uYW1lc3BhY2Ug biBPTiBuLm9pZD1wcm9uYW1lc3BhY2UKKyAgV0hFUkUgcHJvcmV0dHlwZT0o U0VMRUNUIG9pZCBGUk9NIHBnX3R5cGUgV0hFUkUgdHlwbmFtZT0nY3N0cmlu ZycpCisgICAgQU5EIHByb2FyZ3R5cGVzWzBdPShTRUxFQ1Qgb2lkIEZST00g cGdfdHlwZSBXSEVSRSB0eXBuYW1lPSdpbnQ0JykKKyAgICBBTkQgcHJvYXJn dHlwZXNbMV0gSVMgTlVMTAorICBPUkRFUiBCWSBuc3BuYW1lLCBwcm9uYW1l OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5 cGVzL3RlbXBsYXRlcy90eXBlL3NxbC9wcmVfOS4xL2dldF9uYW1lLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRlcy90eXBlL3NxbC9wcmVf OS4xL2dldF9uYW1lLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5kMzY4ZjBmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdHlwZXMvdGVtcGxhdGVzL3R5cGUvc3FsL3ByZV85LjEvZ2V0X25h bWUuc3FsCkBAIC0wLDAgKzEsMyBAQAorU0VMRUNUIHQudHlwbmFtZSBBUyBu YW1lCitGUk9NIHBnX3R5cGUgdAorV0hFUkUgdC5vaWQgPSB7e3RpZH19Ojpv aWQ7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVtcGxhdGVzL3R5cGUvc3FsL3ByZV85 LjEvZ2V0X29pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0 ZXMvdHlwZS9zcWwvcHJlXzkuMS9nZXRfb2lkLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZGQ4MWMwCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVtcGxhdGVzL3R5cGUvc3Fs L3ByZV85LjEvZ2V0X29pZC5zcWwKQEAgLTAsMCArMSwxMSBAQAoreyMgQmVs b3cgd2lsbCBwcm92aWRlIG9pZCBmb3IgbmV3bHkgY3JlYXRlZCB0eXBlICN9 CitTRUxFQ1QgdC5vaWQKK0ZST00gcGdfdHlwZSB0CitMRUZUIE9VVEVSIEpP SU4gcGdfdHlwZSBlIE9OIGUub2lkPXQudHlwZWxlbQorTEVGVCBPVVRFUiBK T0lOIHBnX2NsYXNzIGN0IE9OIGN0Lm9pZD10LnR5cHJlbGlkIEFORCBjdC5y ZWxraW5kIDw+ICdjJworTEVGVCBPVVRFUiBKT0lOIHBnX2Rlc2NyaXB0aW9u IGRlcyBPTiAoZGVzLm9iam9pZD10Lm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdw Z190eXBlJzo6cmVnY2xhc3MpCitXSEVSRSB0LnR5cHR5cGUgIT0gJ2QnIEFO RCB0LnR5cG5hbWUgTk9UIExJS0UgRSdcXF8lJyBBTkQgdC50eXBuYW1lc3Bh Y2UgPSB7e3NjaWR9fTo6b2lkCit7JSBpZiBkYXRhICV9CitBTkQgIHQudHlw bmFtZSA9IHt7ZGF0YS5uYW1lfHF0TGl0ZXJhbH19Cit7JSBlbmRpZiAlfQor T1JERVIgQlkgdC50eXBuYW1lOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRl cy90eXBlL3NxbC9wcmVfOS4xL2dldF9zY2hlbWFzLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3R5cGVzL3RlbXBsYXRlcy90eXBlL3NxbC9wcmVfOS4xL2dldF9z Y2hlbWFzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5mNjRiNjhhCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dHlwZXMvdGVtcGxhdGVzL3R5cGUvc3FsL3ByZV85LjEvZ2V0X3NjaGVtYXMu c3FsCkBAIC0wLDAgKzEsMjUgQEAKK1NFTEVDVAorCW5zcC5uc3BuYW1lCitG Uk9NCisJcGdfbmFtZXNwYWNlIG5zcAorCUxFRlQgT1VURVIgSk9JTiBwZ19k ZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9bnNwLm9pZCBBTkQgZGVz LmNsYXNzb2lkPSdwZ19uYW1lc3BhY2UnOjpyZWdjbGFzcykKKwlMRUZUIE9V VEVSIEpPSU4gcGdfY2F0YWxvZy5wZ19kZWZhdWx0X2FjbCBkYWNsIE9OIChk YWNsLmRlZmFjbG5hbWVzcGFjZSA9IG5zcC5vaWQpCitXSEVSRQorCU5PVCAo KG5zcG5hbWUgPSAncGdfY2F0YWxvZycgQU5EIEVYSVNUUworCQkoU0VMRUNU IDEgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3BnX2NsYXNzJyBB TkQgcmVsbmFtZXNwYWNlID0gbnNwLm9pZCBMSU1JVCAxKSkgT1IKKwkobnNw bmFtZSA9ICdwZ2FnZW50JyBBTkQgRVhJU1RTCisJKFNFTEVDVCAxIEZST00g cGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICdwZ2Ffam9iJyBBTkQgcmVsbmFt ZXNwYWNlID0gbnNwLm9pZCBMSU1JVCAxKSkgT1IKKwkobnNwbmFtZSA9ICdp bmZvcm1hdGlvbl9zY2hlbWEnIEFORCBFWElTVFMKKwkJKFNFTEVDVCAxIEZS T00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICd0YWJsZXMnIEFORCByZWxu YW1lc3BhY2UgPSBuc3Aub2lkIExJTUlUIDEpKSBPUgorCShuc3BuYW1lIExJ S0UgJ18lJyBBTkQgRVhJU1RTCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKFNFTEVDVCAxIEZST00gcGdfcHJvYyBXSEVSRSBwcm9uYW1lPSdz bG9ueXZlcnNpb24nIEFORCBwcm9uYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlU IDEpKSBPUgorCShuc3BuYW1lID0gJ2RibycgT1IgbnNwbmFtZSA9ICdzeXMn KQorCSlBTkQKKwluc3BuYW1lIE5PVCBMSUtFIEUncGdcXHRlbXBcXCUnIEFO RAorCW5zcG5hbWUgTk9UIExJS0UgRSdwZ1xcdG9hc3RfdGVtcFxcJScgQU5E CisJLS0gQURERUQ6IEJlY2F1c2UgV2UgbmVlZCB0byBvbWl0IHN5c3RlbSBz Y2hlbWEgZXhjZXB0IHRoZSBvbmUgb24gd2hpY2ggd2UgYXJlIHRyeWluZyB0 byAgY3JlYXRlIGNvbGxhdGlvbgorCSggbnNwLm9pZCA9IHt7IHNjaWQgfX0g T1IgbnNwbmFtZSBOT1QgTElLRSBFJ3BnXFxfJScgKSBBTkQKKwktLSBTcGVj aWZpYyBjb2RlIGZvciBFREIgUFBBUworCW5zcC5uc3BwYXJlbnQgPSAwIEFO RCBOT1QKKwkJKG5zcG5hbWUgPSAnZGJtc19qb2JfcHJvY2VkdXJlJyBBTkQg RVhJU1RTKFNFTEVDVCAxIEZST00gcGdfcHJvYyBXSEVSRSBwcm9uYW1lc3Bh Y2UgPSBuc3Aub2lkIGFuZCBwcm9uYW1lID0gJ3J1bl9qb2InIExJTUlUIDEp KQorT1JERVIgQlkgbnNwbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3R5cGVzL3RlbXBsYXRlcy90eXBlL3NxbC9wcmVfOS4xL2dldF9zdWJ0 eXBlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0ZXMvdHlw ZS9zcWwvcHJlXzkuMS9nZXRfc3VidHlwZXMuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMzhiYTQKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwv cHJlXzkuMS9nZXRfc3VidHlwZXMuc3FsCkBAIC0wLDAgKzEsNTYgQEAKK3sj IyMgVG8gZmlsbCBzdWJ0eXBlIGNvbWJvYm94ICMjI30KK3slIGlmIHN1YnR5 cGUgJX0KK1NFTEVDVCBESVNUSU5DVCB0eXAudHlwbmFtZSBBUyBzdHlwZSwK KyAgICAgICAoQ0FTRSBXSEVOIHR5cC50eXBjb2xsYXRpb24gPiAwIFRIRU4g dHJ1ZSBFTFNFIGZhbHNlIEVORCkgQVMgaXNfY29sbGF0ZQorRlJPTSBwZ19v cGNsYXNzIG9wYworSk9JTiBwZ190eXBlIHR5cCBPTiBvcGMub3BjaW50eXBl ID0gdHlwLm9pZAorV0hFUkUgb3BjLm9wY21ldGhvZCA9IDQwMworT1JERVIg QlkgMQoreyUgZW5kaWYgJX0KK3sjIyMgVG8gZmlsbCBzdWJ0eXBlIG9wY2xh c3MgY29tYm9ib3ggIyMjfQoreyUgaWYgc3VidHlwZV9vcGNsYXNzIGFuZCBk YXRhIGFuZCBkYXRhLnR5cG5hbWUgJX0KK1NFTEVDVCBvcGMub3BjbmFtZQor RlJPTSBwZ19vcGNsYXNzIG9wYworSk9JTiBwZ190eXBlIHR5cCBPTiBvcGMu b3BjaW50eXBlPXR5cC5vaWQKK0FORCB0eXAudHlwbmFtZSA9IHt7IGRhdGEu dHlwbmFtZXxxdExpdGVyYWwgfX0KK1dIRVJFIG9wYy5vcGNtZXRob2QgPSA0 MDMKK09SREVSIEJZIG9wY25hbWU7Cit7JSBlbmRpZiAlfQoreyMjIyBUbyBm ZXRjaCBvcGNpbnR0eXBlIGZyb20gc3VidHlwZSBvcGNsYXNzICMjI30KK3sl IGlmIGdldF9vcGNpbnR5cGUgYW5kIGRhdGEgYW5kIGRhdGEudHlwbmFtZSBh bmQgZGF0YS5vcGNuYW1lICV9CitTRUxFQ1Qgb3BjLm9wY2ludHlwZQorRlJP TSBwZ19vcGNsYXNzIG9wYworSk9JTiBwZ190eXBlIHR5cCBPTiBvcGMub3Bj aW50eXBlPXR5cC5vaWQKK0FORCB0eXAudHlwbmFtZSA9IHt7IGRhdGEudHlw bmFtZXxxdExpdGVyYWwgfX0KK1dIRVJFIG9wYy5vcGNtZXRob2QgPSA0MDMK K0FORCBvcGMub3BjbmFtZSA9IHt7IGRhdGEub3BjbmFtZXxxdExpdGVyYWwg fX0KK09SREVSIEJZIG9wY25hbWU7Cit7JSBlbmRpZiAlfQoreyMjIyBUbyBm aWxsIHN1YnR5cGUgZGlmZiBmdW5jdGlvbiBjb21ib2JveCAjIyN9Cit7JSBp ZiBvcGNpbnR5cGUgJX0KK1NFTEVDVCBwcm9uYW1lLCBuc3BuYW1lLAorICAg IENBU0UgV0hFTiBsZW5ndGgobnNwbmFtZSkgPiAwIEFORCBsZW5ndGgocHJv bmFtZSkgPiAwICBUSEVOCisJICBjb25jYXQocXVvdGVfaWRlbnQobnNwbmFt ZSksICcuJywgcXVvdGVfaWRlbnQocHJvbmFtZSkpCisJRUxTRSAnJyBFTkQg QVMgc3R5cGRpZmYKK0ZST00gcGdfcHJvYworSk9JTiBwZ19uYW1lc3BhY2Ug biBPTiBuLm9pZD1wcm9uYW1lc3BhY2UKK1dIRVJFIHByb3JldHR5cGUgPSA3 MDEKK0FORCBwcm9hcmd0eXBlcyA9ICd7e29wY2ludHlwZX19IHt7b3BjaW50 eXBlfX0nCitPUkRFUiBCWSBwcm9uYW1lOworeyUgZW5kaWYgJX0KK3sjIyMg VG8gZmlsbCBjYW5vbmljYWwgY29tYm9ib3ggIyMjfQoreyUgaWYgZ2V0b2lk ICV9CitTRUxFQ1Qgb2lkIEZST00gcGdfdHlwZQorV0hFUkUgdHlwbmFtZSA9 IHt7IGRhdGEubmFtZXxxdExpdGVyYWwgfX0KK3slIGVuZGlmICV9Cit7JSBp ZiBjYW5vbmljYWwgYW5kIG9pZCAlfQorU0VMRUNUIHByb25hbWUsIG5zcG5h bWUsCisgICAgQ0FTRSBXSEVOIGxlbmd0aChuc3BuYW1lKSA+IDAgQU5EIGxl bmd0aChwcm9uYW1lKSA+IDAgIFRIRU4KKwkgIGNvbmNhdChxdW90ZV9pZGVu dChuc3BuYW1lKSwgJy4nLCBxdW90ZV9pZGVudChwcm9uYW1lKSkKKwlFTFNF ICcnIEVORCBBUyBjYW5vbmljYWwKK0ZST00gcGdfcHJvYworSk9JTiBwZ19u YW1lc3BhY2UgbiBPTiBuLm9pZD1wcm9uYW1lc3BhY2UKK1dIRVJFIHByb3Jl dHR5cGU9IHt7IG9pZCB9fQorQU5EIHByb2FyZ3R5cGVzID0gJ3t7IG9pZCB9 fScKK09SREVSIEJZIHByb25hbWU7Cit7JSBlbmRpZiAlfQpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3R5cGVzL3RlbXBsYXRlcy90eXBlL3NxbC9wcmVfOS4xL2dldF90eXBlcy5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwv cHJlXzkuMS9nZXRfdHlwZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjJmMmNhNzAKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwvcHJlXzkuMS9n ZXRfdHlwZXMuc3FsCkBAIC0wLDAgKzEsMTAgQEAKK1NFTEVDVCAqIEZST00K KyAgKFNFTEVDVCBmb3JtYXRfdHlwZSh0Lm9pZCxOVUxMKSBBUyB0eXBuYW1l LAorICBDQVNFIFdIRU4gdHlwZWxlbSA+IDAgVEhFTiB0eXBlbGVtIEVMU0Ug dC5vaWQgRU5EIEFTIGVsZW1vaWQKKyAgLHR5cGxlbiwgdHlwdHlwZSwgdC5v aWQsIG5zcG5hbWUsCisgIChTRUxFQ1QgQ09VTlQoMSkgRlJPTSBwZ190eXBl IHQyIFdIRVJFIHQyLnR5cG5hbWUgPSB0LnR5cG5hbWUpID4gMSBBUyBpc2R1 cAorRlJPTSBwZ190eXBlIHQKKyBKT0lOIHBnX25hbWVzcGFjZSBuc3AgT04g dHlwbmFtZXNwYWNlPW5zcC5vaWQKK1dIRVJFIChOT1QgKHR5cG5hbWUgPSAn dW5rbm93bicgQU5EIG5zcG5hbWUgPSAncGdfY2F0YWxvZycpKSBBTkQgdHlw aXNkZWZpbmVkIEFORCB0eXB0eXBlIElOICgnYicsICdjJywgJ2QnLCAnZScs ICdyJylBTkQgTk9UIEVYSVNUUyAoc2VsZWN0IDEgZnJvbSBwZ19jbGFzcyB3 aGVyZSByZWxuYW1lc3BhY2U9dHlwbmFtZXNwYWNlIGFuZCByZWxuYW1lID0g dHlwbmFtZSBhbmQgcmVsa2luZCAhPSAnYycpIEFORCAodHlwbmFtZSBub3Qg bGlrZSAnXyUnIE9SIE5PVCBFWElTVFMgKHNlbGVjdCAxIGZyb20gcGdfY2xh c3Mgd2hlcmUgcmVsbmFtZXNwYWNlPXR5cG5hbWVzcGFjZSBhbmQgcmVsbmFt ZSA9IHN1YnN0cmluZyh0eXBuYW1lIGZyb20gMik6Om5hbWUgYW5kIHJlbGtp bmQgIT0gJ2MnKSkgIEFORCBuc3AubnNwbmFtZSAhPSAnaW5mb3JtYXRpb25f c2NoZW1hJworICkgQVMgZHVtbXkKKyAgIE9SREVSIEJZIG5zcG5hbWUgPD4g J3BnX2NhdGFsb2cnLCBuc3BuYW1lIDw+ICdwdWJsaWMnLCBuc3BuYW1lLCAx ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdHlwZXMvdGVtcGxhdGVzL3R5cGUvc3FsL3ByZV85LjEv bm9kZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVtcGxhdGVzL3R5 cGUvc3FsL3ByZV85LjEvbm9kZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjg4Y2MzNGEKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwvcHJlXzku MS9ub2Rlcy5zcWwKQEAgLTAsMCArMSw3IEBACitTRUxFQ1QgdC5vaWQsIHQu dHlwbmFtZSBBUyBuYW1lCitGUk9NIHBnX3R5cGUgdAorTEVGVCBPVVRFUiBK T0lOIHBnX3R5cGUgZSBPTiBlLm9pZD10LnR5cGVsZW0KK0xFRlQgT1VURVIg Sk9JTiBwZ19jbGFzcyBjdCBPTiBjdC5vaWQ9dC50eXByZWxpZCBBTkQgY3Qu cmVsa2luZCA8PiAnYycKK0xFRlQgT1VURVIgSk9JTiBwZ19uYW1lc3BhY2Ug bnNwIE9OIG5zcC5vaWQgPSB0LnR5cG5hbWVzcGFjZQorV0hFUkUgdC50eXB0 eXBlICE9ICdkJyBBTkQgdC50eXBuYW1lIE5PVCBMSUtFIEUnXFxfJScgQU5E IHQudHlwbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorT1JERVIgQlkgdC50 eXBuYW1lOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRlcy90eXBlL3NxbC9w cmVfOS4xL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMv dGVtcGxhdGVzL3R5cGUvc3FsL3ByZV85LjEvcHJvcGVydGllcy5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI2YWM3YwotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRl cy90eXBlL3NxbC9wcmVfOS4xL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEs MTYgQEAKK1NFTEVDVCB0Lm9pZCwgdC50eXBuYW1lIEFTIG5hbWUKKyAgIAks KENBU0UgV0hFTiBDQVNUKGNvYWxlc2NlKHQudHlwY29sbGF0aW9uLCAnMCcp IEFTIGludGVnZXIpID0gMTAwIFRIRU4gdHJ1ZSBFbFNFIGZhbHNlIEVORCkg QVMgaXNfY29sbGF0YWJsZQorICAgCSx0LnR5cGFjbCBBUyB0eXBlX2FjbAor ICAgCSx0LiosIGZvcm1hdF90eXBlKHQub2lkLCBudWxsKSBBUyBhbGlhcwor CSxwZ19nZXRfdXNlcmJ5aWQodC50eXBvd25lcikgYXMgdHlwZW93bmVyLCBl LnR5cG5hbWUgYXMgZWxlbWVudAorCSxkZXNjcmlwdGlvbiwgY3Qub2lkIEFT IHRhYm9pZAorCSwoQ0FTRSBXSEVOICh0Lm9pZCA8PSB7eyBkYXRsYXN0c3lz b2lkfX06Om9pZCBPUiBjdC5vaWQgIT0gMCkgVEhFTiB0cnVlIEVsU0UgZmFs c2UgRU5EKSBBUyBpc19zeXNfdHlwZQorRlJPTSBwZ190eXBlIHQKK0xFRlQg T1VURVIgSk9JTiBwZ190eXBlIGUgT04gZS5vaWQ9dC50eXBlbGVtCitMRUZU IE9VVEVSIEpPSU4gcGdfY2xhc3MgY3QgT04gY3Qub2lkPXQudHlwcmVsaWQg QU5EIGN0LnJlbGtpbmQgPD4gJ2MnCitMRUZUIE9VVEVSIEpPSU4gcGdfZGVz Y3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPXQub2lkIEFORCBkZXMuY2xh c3NvaWQ9J3BnX3R5cGUnOjpyZWdjbGFzcykKK1dIRVJFIHQudHlwdHlwZSAh PSAnZCcgQU5EIHQudHlwbmFtZSBOT1QgTElLRSBFJ1xcXyUnIEFORCB0LnR5 cG5hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKK3slIGlmIHRpZCAlfQorQU5E IHQub2lkID0ge3t0aWR9fTo6b2lkCit7JSBlbmRpZiAlfQorT1JERVIgQlkg dC50eXBuYW1lOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRlcy90eXBlL3Nx bC9wcmVfOS4xL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90 ZW1wbGF0ZXMvdHlwZS9zcWwvcHJlXzkuMS91cGRhdGUuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmMjY2M2EKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0ZXMvdHlw ZS9zcWwvcHJlXzkuMS91cGRhdGUuc3FsCkBAIC0wLDAgKzEsMTA3IEBACit7 JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxF ICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQ UklWSUxFR0UgJX0KK3slIGlmIGRhdGEgJX0KK3sjPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0jfQoreyMgQmVsb3cgd2lsbCBjaGFu Z2Ugb2JqZWN0IG93bmVyICN9Cit7JSBpZiBkYXRhLnR5cGVvd25lciBhbmQg ZGF0YS50eXBlb3duZXIgIT0gb19kYXRhLnR5cGVvd25lciAlfQorQUxURVIg VFlQRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLnNjaGVtYSwgb19kYXRhLm5h bWUpIH19CisgICAgT1dORVIgVE8ge3sgZGF0YS50eXBlb3duZXIgfX07CisK K3slIGVuZGlmICV9Cit7Iz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09I30KK3sjIEJlbG93IHdpbGwgY2hhbmdlIG9iamVjdHMgY29t bWVudCAgI30KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gYW5kIGRhdGEuZGVz Y3JpcHRpb24gIT0gb19kYXRhLmRlc2NyaXB0aW9uICV9CitDT01NRU5UIE9O IFRZUEUge3sgY29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIG9fZGF0YS5u YW1lKSB9fQorICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFs IH19OworCit7JSBlbmRpZiAlfQoreyM9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PSN9Cit7IyMjIFRoZSBzcWwgZ2l2ZW4gYmVsb3cg d2lsbCB1cGRhdGUgY29tcG9zaXRlIHR5cGUgIyMjfQoreyUgaWYgZGF0YS5j b21wb3NpdGUgYW5kIGRhdGEuY29tcG9zaXRlfGxlbmd0aCA+IDAgJX0KK3sl IHNldCBjb21wb3NpdGUgPSBkYXRhLmNvbXBvc2l0ZSAlfQoreyUgaWYgJ2Rl bGV0ZWQnIGluIGNvbXBvc2l0ZSBhbmQgY29tcG9zaXRlLmRlbGV0ZWR8bGVu Z3RoID4gMCAlfQoreyUgZm9yIHIgaW4gY29tcG9zaXRlLmRlbGV0ZWQgJX0K K0FMVEVSIFRZUEUge3sgY29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIG9f ZGF0YS5uYW1lKSB9fQorICAgIERST1AgQVRUUklCVVRFIHt7Y29ubnxxdElk ZW50KHIubWVtYmVyX25hbWUpfX07Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlm ICV9Cit7JSBpZiAnYWRkZWQnIGluIGNvbXBvc2l0ZSBhbmQgY29tcG9zaXRl LmFkZGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIGNvbXBvc2l0ZS5h ZGRlZCAlfQorQUxURVIgVFlQRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLnNj aGVtYSwgb19kYXRhLm5hbWUpIH19CisgICAgQUREIEFUVFJJQlVURSB7e2Nv bm58cXRJZGVudChyLm1lbWJlcl9uYW1lKX19IHt7Y29ubnxxdElkZW50KHIu dHlwZSl9fXslIGlmIHIuaXNfdGxlbmd0aCBhbmQgci50bGVuZ3RoICV9Ciso e3tyLnRsZW5ndGh9fXslIGlmIHIuaXNfcHJlY2lzaW9uIGFuZCByLnByZWNp c2lvbiAlfSx7e3IucHJlY2lzaW9ufX17JSBlbmRpZiAlfSl7JSBlbmRpZiAl fXslIGlmIHIuY29sbGF0aW9uICV9CisgQ09MTEFURSB7e3IuY29sbGF0aW9u fX17JSBlbmRpZiAlfTsKK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3sl IGlmICdjaGFuZ2VkJyBpbiBjb21wb3NpdGUgYW5kIGNvbXBvc2l0ZS5jaGFu Z2VkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIGNvbXBvc2l0ZS5jaGFu Z2VkICV9CitBTFRFUiBUWVBFIHt7IGNvbm58cXRJZGVudChvX2RhdGEuc2No ZW1hLCBvX2RhdGEubmFtZSkgfX0KKyAgICBBTFRFUiBBVFRSSUJVVEUge3tj b25ufHF0SWRlbnQoci5tZW1iZXJfbmFtZSl9fSBTRVQgREFUQSBUWVBFIHt7 Y29ubnxxdElkZW50KHIudHlwZSl9fXslIGlmIHIuaXNfdGxlbmd0aCBhbmQg ci50bGVuZ3RoICV9Cisoe3tyLnRsZW5ndGh9fXslIGlmIHIuaXNfcHJlY2lz aW9uIGFuZCByLnByZWNpc2lvbiAlfSx7e3IucHJlY2lzaW9ufX17JSBlbmRp ZiAlfSl7JSBlbmRpZiAlfXslIGlmIHIuY29sbGF0aW9uICV9CisgQ09MTEFU RSB7e3IuY29sbGF0aW9ufX17JSBlbmRpZiAlfTsKK3slIGVuZGZvciAlfQor eyUgZW5kaWYgJX0KKworeyUgZW5kaWYgJX0KK3sjPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0jfQoreyMjIyBUaGUgc3FsIGdpdmVu IGJlbG93IHdpbGwgdXBkYXRlIGVudW0gdHlwZSAjIyN9Cit7JSBpZiBkYXRh LmVudW0gYW5kIGRhdGEuZW51bXxsZW5ndGggPiAwICV9Cit7JSBzZXQgZW51 bSA9IGRhdGEuZW51bSAlfQoreyUgc2V0IG9fZW51bV9sZW4gPSBvX2RhdGEu ZW51bXxsZW5ndGggJX0KK3sjIFdlIG5lZWQgYWN0dWFsIGxpc3QgaW5kZXgg ZnJvbSBsZW5ndGggI30KK3slIHNldCBvX2VudW1fbGVuID0gb19lbnVtX2xl biAtIDEgJX0KK3slIGlmICdhZGRlZCcgaW4gZW51bSBhbmQgZW51bS5hZGRl ZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBlbnVtLmFkZGVkICV9Cit7 JSBzZXQgY19pZHggPSBsb29wLmluZGV4ICV9Cit7JSBpZiBjX2lkeCA9PSAx ICV9Cit7IyBpZiBmaXJzdCBuZXcgZWxlbWVudCB0aGVuIGFkZCBpdCBhZnRl ciBvbGQgZGF0YSBlbnVtIGxpc3QjfQorQUxURVIgVFlQRSB7eyBjb25ufHF0 SWRlbnQob19kYXRhLnNjaGVtYSwgb19kYXRhLm5hbWUpIH19CisgICAgQURE IFZBTFVFIHt7ci5sYWJlbHxxdExpdGVyYWx9fSBBRlRFUiB7e29fZGF0YS5l bnVtW29fZW51bV9sZW5dLmxhYmVsfHF0TGl0ZXJhbCB9fTsKK3slIGVsc2Ug JX0KK3sjIGlmIGZpcnN0IG5ldyBlbGVtZW50IHRoZW4gYWRkIGl0IGFmdGVy IG5ldyBkYXRhIGVudW0gbGlzdCN9Cit7JSBzZXQgcF9pZHggPSBsb29wLmlu ZGV4IC0gMiAlfQorQUxURVIgVFlQRSB7eyBjb25ufHF0SWRlbnQob19kYXRh LnNjaGVtYSwgb19kYXRhLm5hbWUpIH19CisgICAgQUREIFZBTFVFIHt7ci5s YWJlbHxxdExpdGVyYWx9fSBBRlRFUiB7e2VudW0uYWRkZWRbcF9pZHhdLmxh YmVsfHF0TGl0ZXJhbH19OworeyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQor eyUgZW5kaWYgJX0KKworeyUgZW5kaWYgJX0KK3sjPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0jfQoreyMgQ2hhbmdlIHRoZSBwcml2 aWxlZ2VzICN9Cit7JSBpZiBkYXRhLnR5cGFjbCAlfQoreyUgaWYgJ2RlbGV0 ZWQnIGluIGRhdGEudHlwYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLnR5 cGFjbC5kZWxldGVkICV9Cit7eyBQUklWSUxFR0UuUkVTRVRBTEwoY29ubiwg J1RZUEUnLCBwcml2LmdyYW50ZWUsIG9fZGF0YS5uYW1lKSB9fQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEu dHlwYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLnR5cGFjbC5jaGFuZ2Vk ICV9Cit7eyBQUklWSUxFR0UuUkVTRVRBTEwoY29ubiwgJ1RZUEUnLCBwcml2 LmdyYW50ZWUsIGRhdGEubmFtZSkgfX0KK3t7IFBSSVZJTEVHRS5BUFBMWShj b25uLCAnVFlQRScsIHByaXYuZ3JhbnRlZSwgb19kYXRhLm5hbWUsIHByaXYu d2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50KSB9fQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2FkZGVkJyBpbiBkYXRhLnR5cGFj bCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS50eXBhY2wuYWRkZWQgJX0KK3t7 IFBSSVZJTEVHRS5BUFBMWShjb25uLCAnVFlQRScsIHByaXYuZ3JhbnRlZSwg b19kYXRhLm5hbWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dy YW50KSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQorCit7JSBlbmRp ZiAlfQoreyM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PSN9Cit7IyBCZWxvdyB3aWxsIGNoYW5nZSBvYmplY3QgbmFtZSAjfQoreyUg aWYgZGF0YS5uYW1lIGFuZCBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0K K0FMVEVSIFRZUEUge3sgY29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIG9f ZGF0YS5uYW1lKSB9fQorICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQo ZGF0YS5uYW1lKSB9fTsKKworeyUgZW5kaWYgJX0KK3sjPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0jfQoreyMgQmVsb3cgd2lsbCBj aGFuZ2UgdGhlIHNjaGVtYSBmb3Igb2JqZWN0ICN9Cit7IyB3aXRoIGV4dHJh IGlmIGNvbmRpdGlvbiB3ZSB3aWxsIGFsc28gbWFrZSBzdXJlIHRoYXQgb2Jq ZWN0IGhhcyBjb3JyZWN0IG5hbWUgI30KK3slIGlmIGRhdGEuc2NoZW1hIGFu ZCBkYXRhLnNjaGVtYSAhPSBvX2RhdGEuc2NoZW1hICV9CitBTFRFUiBUWVBF IHslIGlmIGRhdGEubmFtZSAhPSBvX2RhdGEubmFtZSAlfXt7IGNvbm58cXRJ ZGVudChvX2RhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19Cit7JSBlbHNlICV9 e3sgY29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIG9fZGF0YS5uYW1lKSB9 fXslIGVuZGlmICV9CisgICAgU0VUIFNDSEVNQSB7eyBjb25ufHF0SWRlbnQo ZGF0YS5zY2hlbWEpIH19OworCit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0K XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg== --001a114a9cbecc7cc5052d89b353 Content-Type: application/octet-stream; name="catalog_objects_node_v4.patch" Content-Disposition: attachment; filename="catalog_objects_node_v4.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iljgobwb1 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NhdGFsb2dvYmplY3RzL19f aW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY2F0YWxvZ29iamVjdHMvX19p bml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NDA4ZWNkMwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Nh dGFsb2dvYmplY3RzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMzE0IEBACisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQg LSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAt IDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBz b2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNl bmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisiIiIg SW1wbGVtZW50cyBDYXRhbG9nIG9iamVjdHMgTm9kZSAiIiIKKworZnJvbSBm bGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlCitmcm9tIGZsYXNrLmV4dC5i YWJlbCBpbXBvcnQgZ2V0dGV4dAorZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXgg aW1wb3J0IG1ha2VfanNvbl9yZXNwb25zZSwgXAorICAgIG1ha2VfcmVzcG9u c2UgYXMgYWpheF9yZXNwb25zZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yCitm cm9tIHBnYWRtaW4uYnJvd3Nlci51dGlscyBpbXBvcnQgUEdDaGlsZE5vZGVW aWV3Citmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnNjaGVtYXMudXRpbHMgXAorICAgIGltcG9ydCBTY2hl bWFDaGlsZE1vZHVsZQoraW1wb3J0IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJf Z3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzIGFzIGRhdGFiYXNlCitmcm9tIHBn YWRtaW4udXRpbHMuYWpheCBpbXBvcnQgcHJlY29uZGl0aW9uX3JlcXVpcmVk Citmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVy Citmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKK2Zyb20g ZnVuY3Rvb2xzIGltcG9ydCB3cmFwcworCisKK2NsYXNzIENhdGFsb2dPYmpl Y3RNb2R1bGUoU2NoZW1hQ2hpbGRNb2R1bGUpOgorICAgICIiIgorICAgICBj bGFzcyBDYXRhbG9nT2JqZWN0TW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxl KQorCisgICAgICAgIEEgbW9kdWxlIGNsYXNzIGZvciBDYXRhbG9nIG9iamVj dHMgbm9kZSBkZXJpdmVkIGZyb20gQ29sbGVjdGlvbk5vZGVNb2R1bGUuCisK KyAgICBNZXRob2RzOgorICAgIC0tLS0tLS0KKyAgICAqIF9faW5pdF9fKCph cmdzLCAqKmt3YXJncykKKyAgICAgIC0gTWV0aG9kIGlzIHVzZWQgdG8gaW5p dGlhbGl6ZSB0aGUgQ2F0YWxvZyBvYmplY3RzIGFuZCBpdCdzIGJhc2UgbW9k dWxlLgorCisgICAgKiBnZXRfbm9kZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwg Y29pZCkKKyAgICAgIC0gTWV0aG9kIGlzIHVzZWQgdG8gZ2VuZXJhdGUgdGhl IGJyb3dzZXIgY29sbGVjdGlvbiBub2RlLgorCisgICAgKiBub2RlX2lub2Rl KCkKKyAgICAgIC0gTWV0aG9kIGlzIG92ZXJyaWRkZW4gZnJvbSBpdHMgYmFz ZSBjbGFzcyB0byBtYWtlIHRoZSBub2RlIGFzIGxlYWYgbm9kZS4KKworICAg ICogc2NyaXB0X2xvYWQoKQorICAgICAgLSBMb2FkIHRoZSBtb2R1bGUgc2Ny aXB0IGZvciBDYXRhbG9nIG9iamVjdHMsIHdoZW4gYW55IG9mIHRoZSBzZXJ2 ZXIgbm9kZSBpcworICAgICAgICBpbml0aWFsaXplZC4KKyAgICAiIiIKKyAg ICBOT0RFX1RZUEUgPSAnY2F0YWxvZ29iamVjdCcKKyAgICBDT0xMRUNUSU9O X0xBQkVMID0gZ2V0dGV4dCgiQ2F0YWxvZyBPYmplY3RzIikKKworICAgICMg RmxhZyBmb3Igbm90IHRvIHNob3cgbm9kZSB1bmRlciBTY2hlbWEvQ2F0YWxv ZyBub2RlCisgICAgIyBCeSBkZWZhdWx0IGl0cyBzZXQgdG8gVHJ1ZSB0byBk aXNwbGF5IG5vZGUgaW4gc2NoZW1hL2NhdGFsb2cKKyAgICAjIFdlIGRvIG5v dCB3YW50IHRvIGRpc3BsYXkgJ0NhdGFsb2cgT2JqZWN0cycgdW5kZXIgU2No ZW1hL0NhdGFsb2cKKyAgICAjIGJ1dCBvbmx5IGluIGluZm9ybWF0aW9uX3Nj aGVtYS9zeXMvZGJvCisgICAgQ0FUQUxPR19EQl9TVVBQT1JURUQgPSBGYWxz ZQorICAgIFNVUFBPUlRFRF9TQ0hFTUFTID0gWydpbmZvcm1hdGlvbl9zY2hl bWEnLCAnc3lzJywgJ2RibyddCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwg KmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiCisgICAgICAgIE1ldGhv ZCBpcyB1c2VkIHRvIGluaXRpYWxpemUgdGhlIENhdGFsb2dPYmplY3RNb2R1 bGUgYW5kIGl0J3MgYmFzZSBtb2R1bGUuCisKKyAgICAgICAgQXJnczoKKyAg ICAgICAgICAgICphcmdzOgorICAgICAgICAgICAgKiprd2FyZ3M6CisgICAg ICAgICIiIgorICAgICAgICBzdXBlcihDYXRhbG9nT2JqZWN0TW9kdWxlLCBz ZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAgIHNlbGYu bWluX3ZlciA9IE5vbmUKKyAgICAgICAgc2VsZi5tYXhfdmVyID0gTm9uZQor CisgICAgZGVmIGdldF9ub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lk KToKKyAgICAgICAgIiIiCisgICAgICAgIEdlbmVyYXRlIHRoZSBjb2xsZWN0 aW9uIG5vZGUKKyAgICAgICAgIiIiCisgICAgICAgIHlpZWxkIHNlbGYuZ2Vu ZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9uX25vZGUoc2NpZCkKKworICAgIEBw cm9wZXJ0eQorICAgIGRlZiBzY3JpcHRfbG9hZChzZWxmKToKKyAgICAgICAg IiIiCisgICAgICAgIExvYWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9yIHNlcnZl ciwgd2hlbiBhbnkgb2YgdGhlIGRhdGFiYXNlIG5vZGUgaXMKKyAgICAgICAg aW5pdGlhbGl6ZWQuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gZGF0 YWJhc2UuRGF0YWJhc2VNb2R1bGUuTk9ERV9UWVBFCisKK2JsdWVwcmludCA9 IENhdGFsb2dPYmplY3RNb2R1bGUoX19uYW1lX18pCisKKworY2xhc3MgQ2F0 YWxvZ09iamVjdFZpZXcoUEdDaGlsZE5vZGVWaWV3KToKKyAgICAiIiIKKyAg ICBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciBnZW5lcmF0aW5nIHJv dXRlcyBmb3IgQ2F0YWxvZyBvYmplY3RzIG5vZGUKKworICAgIE1ldGhvZHM6 CisgICAgLS0tLS0tLQorICAgICogX19pbml0X18oKiprd2FyZ3MpCisgICAg ICAtIE1ldGhvZCBpcyB1c2VkIHRvIGluaXRpYWxpemUgdGhlIENhdGFsb2dP YmplY3RWaWV3IGFuZCBpdCdzIGJhc2Ugdmlldy4KKworICAgICogY2hlY2tf cHJlY29uZGl0aW9uKCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGJl aGF2ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNoZWNrcworICAgICAg ICBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9yZSBydW5uaW5nIHZpZXcsIGl0 IHdpbGwgYWxzbyBhdHRhY2hlcworICAgICAgICBtYW5hZ2VyLGNvbm4gJiB0 ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8gc2VsZgorCisgICAgKiBsaXN0 KCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGxpc3QgYWxs IHRoZSBDYXRhbG9nIG9iamVjdHMgbm9kZXMgd2l0aGluIHRoYXQKKyAgICAg IGNvbGxlY3Rpb24uCisKKyAgICAqIG5vZGVzKCkKKyAgICAgIC0gVGhpcyBm dW5jdGlvbiB3aWxsIHVzZWQgdG8gY3JlYXRlIGFsbCB0aGUgY2hpbGQgbm9k ZSB3aXRoaW4gdGhhdAorICAgICAgICBjb2xsZWN0aW9uLCBIZXJlIGl0IHdp bGwgY3JlYXRlIGFsbCB0aGUgQ2F0YWxvZyBvYmplY3RzIG5vZGUuCisKKyAg ICAqIHByb3BlcnRpZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgY29pZCkKKyAg ICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIHNob3cgdGhlIHByb3BlcnRpZXMg b2YgdGhlIHNlbGVjdGVkCisgICAgICBDYXRhbG9nIG9iamVjdHMgbm9kZQor CisgICAgKiBkZXBlbmRlbmN5KGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAg ICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgZGVwZW5kZW5jeSBs aXN0IHNob3cgaXQgaW4gZGVwZW5kZW5jeQorICAgICAgICBwYW5lIGZvciB0 aGUgc2VsZWN0ZWQgQ2F0YWxvZyBvYmplY3RzIG5vZGUuCisKKyAgICAqIGRl cGVuZGVudChnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAgIC0gVGhpcyBm dW5jdGlvbiB3aWxsIGdlbmVyYXRlIGRlcGVuZGVudCBsaXN0IHRvIHNob3cg aXQgaW4gZGVwZW5kZW50CisgICAgICAgIHBhbmUgZm9yIHRoZSBzZWxlY3Rl ZCBDYXRhbG9nIG9iamVjdHMgbm9kZS4KKworICAgICIiIgorICAgIG5vZGVf dHlwZSA9IGJsdWVwcmludC5ub2RlX3R5cGUKKworICAgIHBhcmVudF9pZHMg PSBbCisgICAgICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ2dpZCd9 LAorICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdzaWQnfSwK KyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZGlkJ30sCisg ICAgICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3NjaWQnfQorICAg ICAgICAgICAgXQorICAgIGlkcyA9IFsKKyAgICAgICAgICAgIHsndHlwZSc6 ICdpbnQnLCAnaWQnOiAnY29pZCd9CisgICAgICAgICAgICBdCisKKyAgICBv cGVyYXRpb25zID0gZGljdCh7CisgICAgICAgICdvYmonOiBbCisgICAgICAg ICAgICB7J2dldCc6ICdwcm9wZXJ0aWVzJywgJ2RlbGV0ZSc6ICdkZWxldGUn LCAncHV0JzogJ3VwZGF0ZSd9LAorICAgICAgICAgICAgeydnZXQnOiAnbGlz dCcsICdwb3N0JzogJ2NyZWF0ZSd9CisgICAgICAgIF0sCisgICAgICAgICdj aGlsZHJlbic6IFt7J2dldCc6ICdjaGlsZHJlbid9XSwKKyAgICAgICAgJ25v ZGVzJzogW3snZ2V0JzogJ25vZGUnfSwgeydnZXQnOiAnbm9kZXMnfV0sCisg ICAgICAgICdzcWwnOiBbeydnZXQnOiAnc3FsJ31dLAorICAgICAgICAnbXNx bCc6IFt7J2dldCc6ICdtc3FsJ30sIHsnZ2V0JzogJ21zcWwnfV0sCisgICAg ICAgICdzdGF0cyc6IFt7J2dldCc6ICdzdGF0aXN0aWNzJ31dLAorICAgICAg ICAnZGVwZW5kZW5jeSc6IFt7J2dldCc6ICdkZXBlbmRlbmNpZXMnfV0sCisg ICAgICAgICdkZXBlbmRlbnQnOiBbeydnZXQnOiAnZGVwZW5kZW50cyd9XSwK KyAgICAgICAgJ21vZHVsZS5qcyc6IFt7fSwge30sIHsnZ2V0JzogJ21vZHVs ZV9qcyd9XSwKKyAgICAgICAgJ2NvbmZpZ3MnOiBbeydnZXQnOiAnY29uZmln cyd9XQorICAgIH0pCisKKyAgICBkZWYgY2hlY2tfcHJlY29uZGl0aW9uKGYp OgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGJl aGF2ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNoZWNrcworICAgICAg ICBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9yZSBydW5uaW5nIHZpZXcsIGl0 IHdpbGwgYWxzbyBhdHRhY2hlcworICAgICAgICBtYW5hZ2VyLGNvbm4gJiB0 ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8gc2VsZgorICAgICAgICAiIiIK KyAgICAgICAgQHdyYXBzKGYpCisgICAgICAgIGRlZiB3cmFwKCphcmdzLCAq Kmt3YXJncyk6CisgICAgICAgICAgICAjIEhlcmUgYXJnc1swXSB3aWxsIGhv bGQgc2VsZiAmIGt3YXJncyB3aWxsIGhvbGQgZ2lkLHNpZCxkaWQKKyAgICAg ICAgICAgIHNlbGYgPSBhcmdzWzBdCisgICAgICAgICAgICBzZWxmLm1hbmFn ZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKS5jb25uZWN0aW9u X21hbmFnZXIoCisgICAgICAgICAgICAgICAga3dhcmdzWydzaWQnXQorICAg ICAgICAgICAgKQorICAgICAgICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5h Z2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAgICAgICAg ICAjIElmIERCIG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1cm4gZXJyb3IgdG8g YnJvd3NlcgorICAgICAgICAgICAgaWYgbm90IHNlbGYuY29ubi5jb25uZWN0 ZWQoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3Jl cXVpcmVkKAorICAgICAgICAgICAgICAgICAgICBnZXR0ZXh0KAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJDb25uZWN0aW9uIHRvIHRoZSBzZXJ2 ZXIgaGFzIGJlZW4gbG9zdCEiCisgICAgICAgICAgICAgICAgICAgICkKKyAg ICAgICAgICAgICAgICApCisKKyAgICAgICAgICAgIHNlbGYudGVtcGxhdGVf cGF0aCA9ICdjYXRhbG9nb2JqZWN0L3NxbC85LjFfcGx1cycKKworICAgICAg ICAgICAgcmV0dXJuIGYoKmFyZ3MsICoqa3dhcmdzKQorCisgICAgICAgIHJl dHVybiB3cmFwCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVm IGxpc3Qoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAgICIi IgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gbGlzdCBhbGwg dGhlIGNhdGFsb2cgb2JqZWN0cworICAgICAgICBub2RlcyB3aXRoaW4gdGhh dCBjb2xsZWN0aW9uLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBn aWQ6IFNlcnZlciBncm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIg SUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAg IHNjaWQ6IFNjaGVtYSBJRAorCisgICAgICAgIFJldHVybnM6CisgICAgICAg ICAgICBKU09OIG9mIGF2YWlsYWJsZSBjYXRhbG9nIG9iamVjdHMgbm9kZXMK KyAgICAgICAgIiIiCisKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRl KCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb3BlcnRpZXMuc3FsJ10p LCBzY2lkPXNjaWQpCisgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25u LmV4ZWN1dGVfZGljdChTUUwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoK KyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9cmVzKQorICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAg ICAgICAgICAgICAgICByZXNwb25zZT1yZXNbJ3Jvd3MnXSwKKyAgICAgICAg ICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCisgICAg QGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBub2RlcyhzZWxmLCBnaWQs IHNpZCwgZGlkLCBzY2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMg ZnVuY3Rpb24gd2lsbCB1c2VkIHRvIGNyZWF0ZSBhbGwgdGhlIGNoaWxkIG5v ZGUgd2l0aGluIHRoYXQgY29sbGVjdGlvbi4KKyAgICAgICAgSGVyZSBpdCB3 aWxsIGNyZWF0ZSBhbGwgdGhlIGNhdGFsb2cgb2JqZWN0cyBub2RlLgorCisg ICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJ RAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRp ZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAor CisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBKU09OIG9mIGF2YWls YWJsZSBjYXRhbG9nIG9iamVjdHMgY2hpbGQgbm9kZXMKKyAgICAgICAgIiIi CisgICAgICAgIHJlcyA9IFtdCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1w bGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdub2Rlcy5zcWwnXSks IHNjaWQ9c2NpZCkKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25u LmV4ZWN1dGVfMmRhcnJheShTUUwpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6 CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXJzZXQpCisKKyAgICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dz J106CisgICAgICAgICAgICByZXMuYXBwZW5kKAorICAgICAgICAgICAgICAg ICAgICBzZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisg ICAgICAgICAgICAgICAgICAgICAgICByb3dbJ29pZCddLAorICAgICAgICAg ICAgICAgICAgICAgICAgc2NpZCwKKyAgICAgICAgICAgICAgICAgICAgICAg IHJvd1snbmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj0i aWNvbi1jYXRhbG9nb2JqZWN0IgorICAgICAgICAgICAgICAgICAgICApKQor CisgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAg ICAgICAgICAgZGF0YT1yZXMsCisgICAgICAgICAgICAgICAgc3RhdHVzPTIw MAorICAgICAgICAgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRp b24KKyAgICBkZWYgcHJvcGVydGllcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBz Y2lkLCBjb2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rp b24gd2lsbCBzaG93IHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBzZWxlY3RlZAor ICAgICAgICBjYXRhbG9nIG9iamVjdHMgbm9kZS4KKworICAgICAgICBBcmdz OgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAg ICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6ICBEYXRhYmFz ZSBJRAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElECisgICAgICAgICAg ICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAgIGNvaWQ6IENhdGFsb2cg b2JqZWN0IElECisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIEpT T04gb2Ygc2VsZWN0ZWQgY2F0YWxvZyBvYmplY3RzIG5vZGUKKyAgICAgICAg IiIiCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdwcm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNjaWQ9c2NpZCwgY29pZD1jb2lkKQor ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qo U1FMKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKwor ICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAg ICByZXNwb25zZT1yZXNbJ3Jvd3MnXVswXSwKKyAgICAgICAgICAgICAgICBz dGF0dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCisgICAgQGNoZWNrX3By ZWNvbmRpdGlvbgorICAgIGRlZiBkZXBlbmRlbnRzKHNlbGYsIGdpZCwgc2lk LCBkaWQsIHNjaWQsIGNvaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhp cyBmdW5jdGlvbiBnZXQgdGhlIGRlcGVuZGVudHMgYW5kIHJldHVybiBhamF4 IHJlc3BvbnNlCisgICAgICAgIGZvciB0aGUgY2F0YWxvZyBvYmplY3RzIG5v ZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVy IEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAg ICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgICAgc2NpZDogU2No ZW1hIElECisgICAgICAgICAgICBjb2lkOiBjYXRhbG9nIG9iamVjdHMgSUQK KyAgICAgICAgIiIiCisgICAgICAgIGRlcGVuZGVudHNfcmVzdWx0ID0gc2Vs Zi5nZXRfZGVwZW5kZW50cygKKyAgICAgICAgICAgIHNlbGYuY29ubiwgY29p ZAorICAgICAgICApCisKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2Uo CisgICAgICAgICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW50c19yZXN1bHQs CisgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAg ICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVwZW5k ZW5jaWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGNvaWQpOgorICAg ICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRlcGVu ZGVuY2llcyBhbmQgcmV0dXJuIGFqYXggcmVzcG9uc2UKKyAgICAgICAgZm9y IHRoZSBjYXRhbG9nIG9iamVjdHMgbm9kZS4KKworICAgICAgICBBcmdzOgor ICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAg IHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElE CisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAgIGNv aWQ6IGNhdGFsb2cgb2JqZWN0cyBJRAorICAgICAgICAiIiIKKyAgICAgICAg ZGVwZW5kZW5jaWVzX3Jlc3VsdCA9IHNlbGYuZ2V0X2RlcGVuZGVuY2llcygK KyAgICAgICAgICAgIHNlbGYuY29ubiwgY29pZAorICAgICAgICApCisKKyAg ICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICAgICAg cmVzcG9uc2U9ZGVwZW5kZW5jaWVzX3Jlc3VsdCwKKyAgICAgICAgICAgICAg ICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCitDYXRhbG9nT2Jq ZWN0Vmlldy5yZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50KQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvY2F0YWxvZ29iamVjdHMvY29sdW1ucy9f X2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NhdGFsb2dvYmplY3RzL2Nv bHVtbnMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZDdkOTJhYQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2NhdGFsb2dvYmplY3RzL2NvbHVtbnMvX19pbml0X18ucHkKQEAg LTAsMCArMSwzNTUgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29w eXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1l bnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRo ZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisKKyIiIiBJbXBsZW1lbnRzIENvbHVtbnMgTm9kZSAoRm9y IENhdGFsb2cgb2JqZWN0cykgIiIiCisKK2Zyb20gZmxhc2sgaW1wb3J0IHJl bmRlcl90ZW1wbGF0ZSwgbWFrZV9yZXNwb25zZSwgcmVxdWVzdCwganNvbmlm eQorZnJvbSBmbGFzay5leHQuYmFiZWwgaW1wb3J0IGdldHRleHQKK2Zyb20g cGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2Us IFwKKyAgICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UsIGludGVy bmFsX3NlcnZlcl9lcnJvcgorZnJvbSBwZ2FkbWluLmJyb3dzZXIudXRpbHMg aW1wb3J0IFBHQ2hpbGROb2RlVmlldworZnJvbSBwZ2FkbWluLmJyb3dzZXIu Y29sbGVjdGlvbiBpbXBvcnQgQ29sbGVjdGlvbk5vZGVNb2R1bGUKK2ltcG9y dCBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcyBhcyBkYXRhYmFzZQorZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1w b3J0IHByZWNvbmRpdGlvbl9yZXF1aXJlZAorZnJvbSBwZ2FkbWluLnV0aWxz LmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgorZnJvbSBjb25maWcgaW1wb3J0 IFBHX0RFRkFVTFRfRFJJVkVSCitmcm9tIGZ1bmN0b29scyBpbXBvcnQgd3Jh cHMKKworCitjbGFzcyBDb2x1bW5zTW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9k dWxlKToKKyAgICAiIiIKKyAgICAgY2xhc3MgQ29sdW1uTW9kdWxlKENvbGxl Y3Rpb25Ob2RlTW9kdWxlKQorCisgICAgICAgIEEgbW9kdWxlIGNsYXNzIGZv ciBjb2x1bW4gbm9kZSBkZXJpdmVkIGZyb20gQ29sbGVjdGlvbk5vZGVNb2R1 bGUuCisKKyAgICBNZXRob2RzOgorICAgIC0tLS0tLS0KKyAgICAqIF9faW5p dF9fKCphcmdzLCAqKmt3YXJncykKKyAgICAgIC0gTWV0aG9kIGlzIHVzZWQg dG8gaW5pdGlhbGl6ZSB0aGUgY29sdW1uIGFuZCBpdCdzIGJhc2UgbW9kdWxl LgorCisgICAgKiBnZXRfbm9kZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgY29p ZCkKKyAgICAgIC0gTWV0aG9kIGlzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGJy b3dzZXIgY29sbGVjdGlvbiBub2RlLgorCisgICAgKiBub2RlX2lub2RlKCkK KyAgICAgIC0gTWV0aG9kIGlzIG92ZXJyaWRkZW4gZnJvbSBpdHMgYmFzZSBj bGFzcyB0byBtYWtlIHRoZSBub2RlIGFzIGxlYWYgbm9kZS4KKworICAgICog c2NyaXB0X2xvYWQoKQorICAgICAgLSBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0 IGZvciBjb2x1bW4sIHdoZW4gYW55IG9mIHRoZSBzZXJ2ZXIgbm9kZSBpcwor ICAgICAgICBpbml0aWFsaXplZC4KKyAgICAiIiIKKworICAgIE5PREVfVFlQ RSA9ICdjb2x1bW5zJworICAgIENPTExFQ1RJT05fTEFCRUwgPSBnZXR0ZXh0 KCJDb2x1bW5zIikKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywg Kiprd2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAgICAgTWV0aG9kIGlzIHVz ZWQgdG8gaW5pdGlhbGl6ZSB0aGUgQ29sdW1uTW9kdWxlIGFuZCBpdCdzIGJh c2UgbW9kdWxlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICAqYXJn czoKKyAgICAgICAgICAgICoqa3dhcmdzOgorICAgICAgICAiIiIKKyAgICAg ICAgc3VwZXIoQ29sdW1uc01vZHVsZSwgc2VsZikuX19pbml0X18oKmFyZ3Ms ICoqa3dhcmdzKQorICAgICAgICBzZWxmLm1pbl92ZXIgPSBOb25lCisgICAg ICAgIHNlbGYubWF4X3ZlciA9IE5vbmUKKworICAgIGRlZiBnZXRfbm9kZXMo c2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgY29pZCk6CisgICAgICAgICIi IgorICAgICAgICBHZW5lcmF0ZSB0aGUgY29sbGVjdGlvbiBub2RlCisgICAg ICAgICIiIgorICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJf Y29sbGVjdGlvbl9ub2RlKGNvaWQpCisKKyAgICBAcHJvcGVydHkKKyAgICBk ZWYgc2NyaXB0X2xvYWQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBM b2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBzZXJ2ZXIsIHdoZW4gYW55IG9m IHRoZSBkYXRhYmFzZSBub2RlIGlzCisgICAgICAgIGluaXRpYWxpemVkLgor ICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIGRhdGFiYXNlLkRhdGFiYXNl TW9kdWxlLk5PREVfVFlQRQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG5v ZGVfaW5vZGUoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBMb2FkIHRo ZSBtb2R1bGUgbm9kZSBhcyBhIGxlYWYgbm9kZQorICAgICAgICAiIiIKKyAg ICAgICAgcmV0dXJuIEZhbHNlCisKK2JsdWVwcmludCA9IENvbHVtbnNNb2R1 bGUoX19uYW1lX18pCisKKworY2xhc3MgQ29sdW1uc1ZpZXcoUEdDaGlsZE5v ZGVWaWV3KToKKyAgICAiIiIKKyAgICBUaGlzIGNsYXNzIGlzIHJlc3BvbnNp YmxlIGZvciBnZW5lcmF0aW5nIHJvdXRlcyBmb3IgY29sdW1uIG5vZGUKKwor ICAgIE1ldGhvZHM6CisgICAgLS0tLS0tLQorICAgICogX19pbml0X18oKipr d2FyZ3MpCisgICAgICAtIE1ldGhvZCBpcyB1c2VkIHRvIGluaXRpYWxpemUg dGhlIENvbHVtblZpZXcgYW5kIGl0J3MgYmFzZSB2aWV3LgorCisgICAgKiBj aGVja19wcmVjb25kaXRpb24oKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdp bGwgYmVoYXZlIGFzIGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwgY2hlY2tzCisg ICAgICAgIGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVmb3JlIHJ1bm5pbmcgdmll dywgaXQgd2lsbCBhbHNvIGF0dGFjaGVzCisgICAgICAgIG1hbmFnZXIsY29u biAmIHRlbXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxmCisKKyAgICAq IGxpc3QoKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gbGlz dCBhbGwgdGhlIGNvbHVtbiBub2RlcyB3aXRoaW4gdGhhdAorICAgICAgY29s bGVjdGlvbi4KKworICAgICogbm9kZXMoKQorICAgICAgLSBUaGlzIGZ1bmN0 aW9uIHdpbGwgdXNlZCB0byBjcmVhdGUgYWxsIHRoZSBjaGlsZCBub2RlIHdp dGhpbiB0aGF0CisgICAgICAgIGNvbGxlY3Rpb24sIEhlcmUgaXQgd2lsbCBj cmVhdGUgYWxsIHRoZSBjb2x1bW4gbm9kZS4KKworICAgICogcHJvcGVydGll cyhnaWQsIHNpZCwgZGlkLCBzY2lkLCBjb2lkLCBjbGlkKQorICAgICAgLSBU aGlzIGZ1bmN0aW9uIHdpbGwgc2hvdyB0aGUgcHJvcGVydGllcyBvZiB0aGUg c2VsZWN0ZWQKKyAgICAgIGNvbHVtbiBub2RlCisKKyAgICAqIGRlcGVuZGVu Y3koZ2lkLCBzaWQsIGRpZCwgc2NpZCwgY29pZCwgY2xpZCk6CisgICAgICAt IFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBkZXBlbmRlbmN5IGxpc3Qg c2hvdyBpdCBpbiBkZXBlbmRlbmN5CisgICAgICAgIHBhbmUgZm9yIHRoZSBz ZWxlY3RlZCBjb2x1bW4gbm9kZS4KKworICAgICogZGVwZW5kZW50KGdpZCwg c2lkLCBkaWQsIHNjaWQsIGNvaWQsIGNsaWQpOgorICAgICAgLSBUaGlzIGZ1 bmN0aW9uIHdpbGwgZ2VuZXJhdGUgZGVwZW5kZW50IGxpc3QgdG8gc2hvdyBp dCBpbiBkZXBlbmRlbnQKKyAgICAgICAgcGFuZSBmb3IgdGhlIHNlbGVjdGVk IGNvbHVtbiBub2RlLgorCisgICAgIiIiCisKKyAgICBub2RlX3R5cGUgPSBi bHVlcHJpbnQubm9kZV90eXBlCisKKyAgICBwYXJlbnRfaWRzID0gWworICAg ICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdnaWQnfSwKKyAgICAg ICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnc2lkJ30sCisgICAgICAg ICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ2RpZCd9LAorICAgICAgICAg ICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdzY2lkJ30sCisgICAgICAgICAg ICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ2NvaWQnfQorICAgICAgICAgICAg XQorICAgIGlkcyA9IFsKKyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAn aWQnOiAnY2xpZCd9CisgICAgICAgICAgICBdCisKKyAgICBvcGVyYXRpb25z ID0gZGljdCh7CisgICAgICAgICdvYmonOiBbCisgICAgICAgICAgICB7J2dl dCc6ICdwcm9wZXJ0aWVzJywgJ2RlbGV0ZSc6ICdkZWxldGUnLCAncHV0Jzog J3VwZGF0ZSd9LAorICAgICAgICAgICAgeydnZXQnOiAnbGlzdCcsICdwb3N0 JzogJ2NyZWF0ZSd9CisgICAgICAgIF0sCisgICAgICAgICdjaGlsZHJlbic6 IFt7J2dldCc6ICdjaGlsZHJlbid9XSwKKyAgICAgICAgJ25vZGVzJzogW3sn Z2V0JzogJ25vZGUnfSwgeydnZXQnOiAnbm9kZXMnfV0sCisgICAgICAgICdz cWwnOiBbeydnZXQnOiAnc3FsJ31dLAorICAgICAgICAnbXNxbCc6IFt7J2dl dCc6ICdtc3FsJ30sIHsnZ2V0JzogJ21zcWwnfV0sCisgICAgICAgICdzdGF0 cyc6IFt7J2dldCc6ICdzdGF0aXN0aWNzJ31dLAorICAgICAgICAnZGVwZW5k ZW5jeSc6IFt7J2dldCc6ICdkZXBlbmRlbmNpZXMnfV0sCisgICAgICAgICdk ZXBlbmRlbnQnOiBbeydnZXQnOiAnZGVwZW5kZW50cyd9XSwKKyAgICAgICAg J21vZHVsZS5qcyc6IFt7fSwge30sIHsnZ2V0JzogJ21vZHVsZV9qcyd9XSwK KyAgICAgICAgJ2NvbmZpZ3MnOiBbeydnZXQnOiAnY29uZmlncyd9XQorICAg IH0pCisKKyAgICBkZWYgY2hlY2tfcHJlY29uZGl0aW9uKGYpOgorICAgICAg ICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGJlaGF2ZSBhcyBh IGRlY29yYXRvciB3aGljaCB3aWxsIGNoZWNrcworICAgICAgICBkYXRhYmFz ZSBjb25uZWN0aW9uIGJlZm9yZSBydW5uaW5nIHZpZXcsIGl0IHdpbGwgYWxz byBhdHRhY2hlcworICAgICAgICBtYW5hZ2VyLGNvbm4gJiB0ZW1wbGF0ZV9w YXRoIHByb3BlcnRpZXMgdG8gc2VsZgorICAgICAgICAiIiIKKyAgICAgICAg QHdyYXBzKGYpCisgICAgICAgIGRlZiB3cmFwKCphcmdzLCAqKmt3YXJncyk6 CisgICAgICAgICAgICAjIEhlcmUgYXJnc1swXSB3aWxsIGhvbGQgc2VsZiAm IGt3YXJncyB3aWxsIGhvbGQgZ2lkLHNpZCxkaWQKKyAgICAgICAgICAgIHNl bGYgPSBhcmdzWzBdCisgICAgICAgICAgICBzZWxmLm1hbmFnZXIgPSBnZXRf ZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKS5jb25uZWN0aW9uX21hbmFnZXIo CisgICAgICAgICAgICAgICAga3dhcmdzWydzaWQnXQorICAgICAgICAgICAg KQorICAgICAgICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5l Y3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAgICAgICAgICAjIElmIERC IG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1cm4gZXJyb3IgdG8gYnJvd3Nlcgor ICAgICAgICAgICAgaWYgbm90IHNlbGYuY29ubi5jb25uZWN0ZWQoKToKKyAg ICAgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKAor ICAgICAgICAgICAgICAgICAgICBnZXR0ZXh0KAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJDb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgaGFzIGJl ZW4gbG9zdCEiCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAg ICAgICApCisKKyAgICAgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9ICdj b2x1bW5zL3NxbC85LjFfcGx1cycKKworICAgICAgICAgICAgcmV0dXJuIGYo KmFyZ3MsICoqa3dhcmdzKQorCisgICAgICAgIHJldHVybiB3cmFwCisKKyAg ICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGxpc3Qoc2VsZiwgZ2lk LCBzaWQsIGRpZCwgc2NpZCwgY29pZCk6CisgICAgICAgICIiIgorICAgICAg ICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gbGlzdCBhbGwgdGhlIGNvbHVt bgorICAgICAgICBub2RlcyB3aXRoaW4gdGhhdCBjb2xsZWN0aW9uLgorCisg ICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBncm91cCBJ RAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRp ZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAor ICAgICAgICAgICAgY29pZDogQ2F0YWxvZyBvYmplY3RzIElECisKKyAgICAg ICAgUmV0dXJuczoKKyAgICAgICAgICAgIEpTT04gb2YgYXZhaWxhYmxlIGNv bHVtbiBub2RlcworICAgICAgICAiIiIKKyAgICAgICAgU1FMID0gcmVuZGVy X3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb3BlcnRp ZXMuc3FsJ10pLCBjb2lkPWNvaWQpCisgICAgICAgIHN0YXR1cywgcmVzID0g c2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisKKyAgICAgICAgaWYgbm90 IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICByZXR1cm4gYWpheF9yZXNw b25zZSgKKyAgICAgICAgICAgICAgICByZXNwb25zZT1yZXNbJ3Jvd3MnXSwK KyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAg KQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBub2Rlcyhz ZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBjb2lkKToKKyAgICAgICAgIiIi CisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCB1c2VkIHRvIGNyZWF0ZSBh bGwgdGhlIGNoaWxkIG5vZGUgd2l0aGluIHRoYXQgY29sbGVjdGlvbi4KKyAg ICAgICAgSGVyZSBpdCB3aWxsIGNyZWF0ZSBhbGwgdGhlIGNvbHVtbiBub2Rl LgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBH cm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAg ICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVt YSBJRAorICAgICAgICAgICAgY29pZDogQ2F0YWxvZyBvYmplY3RzIElECisK KyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIEpTT04gb2YgYXZhaWxh YmxlIGNvbHVtbiBjaGlsZCBub2RlcworICAgICAgICAiIiIKKyAgICAgICAg cmVzID0gW10KKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5q b2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ25vZGVzLnNxbCddKSwgY29pZD1jb2lk KQorICAgICAgICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8y ZGFycmF5KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNl dCkKKworICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAg ICAgICAgIHJlcy5hcHBlbmQoCisgICAgICAgICAgICAgICAgICAgIHNlbGYu Ymx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgKKyAgICAgICAgICAg ICAgICAgICAgICAgIHJvd1snYXR0dHlwaWQnXSwKKyAgICAgICAgICAgICAg ICAgICAgICAgIGNvaWQsCisgICAgICAgICAgICAgICAgICAgICAgICByb3db J2F0dG5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGljb249Imlj b24tY29sdW1uIgorICAgICAgICAgICAgICAgICAgICApKQorCisgICAgICAg IHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAg ZGF0YT1yZXMsCisgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAg ICAgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBk ZWYgcHJvcGVydGllcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBjb2lk LCBjbGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24g d2lsbCBzaG93IHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBzZWxlY3RlZAorICAg ICAgICBjb2x1bW4gbm9kZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAg ICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2Vy dmVyIElECisgICAgICAgICAgICBkaWQ6ICBEYXRhYmFzZSBJRAorICAgICAg ICAgICAgc2NpZDogU2NoZW1hIElECisgICAgICAgICAgICBzY2lkOiBTY2hl bWEgSUQKKyAgICAgICAgICAgIGNvaWQ6IENhdGFsb2cgb2JqZWN0IElECisg ICAgICAgICAgICBjbGlkOiBDb2x1bW4gSUQKKworICAgICAgICBSZXR1cm5z OgorICAgICAgICAgICAgSlNPTiBvZiBzZWxlY3RlZCBjb2x1bW4gbm9kZQor ICAgICAgICAiIiIKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIv Ii5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb3BlcnRpZXMuc3FsJ10pLGNv aWQ9Y29pZCwgY2xpZD1jbGlkKQorICAgICAgICBzdGF0dXMsIHJlcyA9IHNl bGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorCisgICAgICAgIGlmIG5vdCBz dGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICByZXR1cm4gYWpheF9yZXNw b25zZSgKKyAgICAgICAgICAgICAgICByZXNwb25zZT1yZXNbJ3Jvd3MnXVsw XSwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAg ICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBkZXBl bmRlbnRzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGNvaWQsIGNsaWQp OgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBnZXQgdGhl IGRlcGVuZGVudHMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNlCisgICAgICAg IGZvciB0aGUgY29sdW1uIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAg ICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6 IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAg ICAgICAgICAgc2NpZDogU2NoZW1hIElECisgICAgICAgICAgICBjb2lkOiBD YXRhbG9nIG9iamVjdCBJRAorICAgICAgICAgICAgY2xpZDogQ29sdW1uIElE CisgICAgICAgICIiIgorICAgICAgICAjIFNwZWNpZmljIGNvbmRpdGlvbiBm b3IgY29sdW1uIHdoaWNoIHdlIG5lZWQgdG8gYXBwZW5kCisgICAgICAgIHdo ZXJlID0gIldIRVJFIGRlcC5yZWZvYmppZD17MH06Ok9JRCBBTkQgZGVwLnJl Zm9ianN1YmlkPXsxfSIuZm9ybWF0KAorICAgICAgICAgICAgY29pZCwgY2xp ZAorICAgICAgICApCisKKyAgICAgICAgZGVwZW5kZW50c19yZXN1bHQgPSBz ZWxmLmdldF9kZXBlbmRlbnRzKAorICAgICAgICAgICAgc2VsZi5jb25uLCBj bGlkLCB3aGVyZT13aGVyZQorICAgICAgICApCisKKyAgICAgICAgIyBTcGVj aWZpYyBzcWwgdG8gcnVuIGFnYWludCBjb2x1bW4gdG8gZmV0Y2ggZGVwZW5k ZW50cworICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4o W3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnZGVwZW5kLnNxbCddKSwgd2hlcmU9d2hlcmUp CisKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9k aWN0KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQor CisgICAgICAgIGZvciByb3cgaW4gcmVzWydyb3dzJ106CisgICAgICAgICAg ICByZWZfbmFtZSA9IHJvd1sncmVmbmFtZSddCisgICAgICAgICAgICBpZiBy ZWZfbmFtZSBpcyBOb25lOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisK KyAgICAgICAgICAgIGRlcF90eXBlID0gJycKKyAgICAgICAgICAgIGRlcF9z dHIgPSByb3dbJ2RlcHR5cGUnXQorICAgICAgICAgICAgaWYgZGVwX3N0ciA9 PSAnYSc6CisgICAgICAgICAgICAgICAgZGVwX3R5cGUgPSAnYXV0bycKKyAg ICAgICAgICAgIGVsaWYgZGVwX3N0ciA9PSAnbic6CisgICAgICAgICAgICAg ICAgZGVwX3R5cGUgPSAnbm9ybWFsJworICAgICAgICAgICAgZWxpZiBkZXBf c3RyID09ICdpJzoKKyAgICAgICAgICAgICAgICBkZXBfdHlwZSA9ICdpbnRl cm5hbCcKKworICAgICAgICAgICAgZGVwZW5kZW50c19yZXN1bHQuYXBwZW5k KHsndHlwZSc6ICdzZXF1ZW5jZScsICduYW1lJzogcmVmX25hbWUsICdmaWVs ZCc6IGRlcF90eXBlfSkKKworICAgICAgICByZXR1cm4gYWpheF9yZXNwb25z ZSgKKyAgICAgICAgICAgICAgICByZXNwb25zZT1kZXBlbmRlbnRzX3Jlc3Vs dCwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAg ICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBkZXBl bmRlbmNpZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgY29pZCwgY2xp ZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdldCB0 aGUgZGVwZW5kZW5jaWVzIGFuZCByZXR1cm4gYWpheCByZXNwb25zZQorICAg ICAgICBmb3IgdGhlIGNvbHVtbiBub2RlLgorCisgICAgICAgIEFyZ3M6Cisg ICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAg c2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQK KyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAorICAgICAgICAgICAgY29p ZDogQ2F0YWxvZyBvYmplY3RzIElECisgICAgICAgICAgICBjbGlkOiBDb2x1 bW4gSUQKKworICAgICAgICAiIiIKKyAgICAgICAgIyBTcGVjaWZpYyBjb25k aXRpb24gZm9yIGNvbHVtbiB3aGljaCB3ZSBuZWVkIHRvIGFwcGVuZAorICAg ICAgICB3aGVyZSA9ICJXSEVSRSBkZXAub2JqaWQ9ezB9OjpPSUQgQU5EIGRl cC5vYmpzdWJpZD17MX0iLmZvcm1hdCgKKyAgICAgICAgICAgIGNvaWQsIGNs aWQKKyAgICAgICAgKQorCisgICAgICAgIGRlcGVuZGVuY2llc19yZXN1bHQg PSBzZWxmLmdldF9kZXBlbmRlbmNpZXMoCisgICAgICAgICAgICBzZWxmLmNv bm4sIGNsaWQsIHdoZXJlPXdoZXJlCisgICAgICAgICkKKworICAgICAgICBy ZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZXNwb25z ZT1kZXBlbmRlbmNpZXNfcmVzdWx0LAorICAgICAgICAgICAgICAgIHN0YXR1 cz0yMDAKKyAgICAgICAgICAgICAgICApCisKKworQ29sdW1uc1ZpZXcucmVn aXN0ZXJfbm9kZV92aWV3KGJsdWVwcmludCkKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9jYXRhbG9n b2JqZWN0cy9jb2x1bW5zL3N0YXRpYy9pbWcvY29sbC1jb2x1bW5zLnBuZyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2NhdGFsb2dvYmplY3RzL2NvbHVtbnMvc3RhdGlj L2ltZy9jb2xsLWNvbHVtbnMucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu Ljg5ZDc1ODgzNGQ0MTc2YzFkZjI1NDhkYjEwYjQ2YjFmNmIyZTRlYzUKR0lU IGJpbmFyeSBwYXRjaApsaXRlcmFsIDQwMAp6Y21lQVNATj8ob2xIeWB1VkJx IWlhMHZwXjB3QiE2Mz93eWxgR2JLfWN6e29jRTA5KjRgaDNFdiZzKG0meUw8 UVUKeikyQzBMSiR1JV58OVNHPDxNLX59ZC0oOS12U3JLT3ltXzszLU1XYEFV Iz91YWFfIW8rPih7UztfM0c5MD1nJUtKCnpjPH1vNT5rbDczZUVhcm8kQnJF dkhmLTNxYXBVKnotYH5Ee1RhdGdNNktGSkpOc3dQS2dUdTJNWCtSRVZmayRM OQp6a29FdiR4MEJnK0t0X1M1aShgbnk8PUZHP1Zoc3ZCdGB9VzRFQFpRZ19f cDZxbUBuYnk7cXJHMWowX0lAY14oO3IKenVoUCkyWDxEX1A/ZHRpMiR2enl2 KGsoVipvP2Y/SDxpP2dYaVJBKW1oVFVwd29mUW4qUDhgfExXdz1NY05hWFEh Cnp5K3FAQFlkMG0xeWxGM2Z7KEFuXy1FViQhUDRMXiNfYDA5dmgrPWNXOD0m MilDOVYtQURUeVZpUj4/KUZLI0laMAp6enxjVX4mYDgoN0Z2UTVmJUVae3Aj NjtWYClYS29YVnkzRGJpaVhfJGwrM2hCaHowe291bStIN0QrNG8jaEV2bCsK Uio4bnZ6YylJJHp0YUQwZTBzI0JZciFAY28KCmxpdGVyYWwgMApIY21WP2Qw MDAwMQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NhdGFsb2dvYmpl Y3RzL2NvbHVtbnMvc3RhdGljL2ltZy9jb2x1bW5zLnBuZyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2NhdGFsb2dvYmplY3RzL2NvbHVtbnMvc3RhdGljL2ltZy9jb2x1 bW5zLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDlmODFkZjk4ZmUy N2Q4MWFkZTUxNDRkNjZiM2IwOWI5NjEyM2MxCkdJVCBiaW5hcnkgcGF0Y2gK bGl0ZXJhbCA0MzUKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4wd0IhNjM/ d3lsYEdiS31YQEYwTkUwOSo0YGgzRXYmcyhtJnlMPFFVCnp5P2dpVy1AcEkj PkM8UD1wMCkzUHpISGdEPWcqKE5jPTYpUm4+WHYkdCRYP008O3M7U1NGQmpF Y0oxMnI+KHs/fQp6XzNGV2MyTS1AVWVEdnRpPmVaeyl0WFo+WikyMHN9S0Q+ VllgcVFVUnBGZTs4YHR8RiNae0skOCpzKT41aEsoQ0gKemUqZ2FjP2MyQlMt bzQ5ZUtlIVpWRj1JKVBVb2VCaXZtMHFaNHJoVCFXSEZIVDBBc2g0Kj4qcmlz aSV1JGh7V2FFCnpeQjBBaDZhLW9tNFJtLWl1VjMrWDxvMnJtP3x3JH0/ISFl Tl95MCpkY1RfT1JiNng3QT17NmN1PF42WH1rWTJJYgp6WjBUTUhyaWgxSV5D VWheZCVAPHkpM1R2T3YmSzZpSH4tUkNUZFZVNmN6TWU5Kmh+MWx7VlMxXyhE M345UDZfcTQKemdYaSspKSE2RV58OXhmckIqR3pJLVRBKV49bTZDYypOQnBv I0ZBOTI8ZjJweyNiOUokWHJPQ29xLSRVcFZxez10CnpWcipxJXFIU1BtV25m QDJRJmtRe0x2RFViVz9DZ2dnTWxTajE0eS0lZmYrPUBzcCs5PmZFcE0pVUh4 M3ZJVkNnIQpFME5ScW5afnk9UgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY2F0YWxvZ29iamVjdHMvY29s dW1ucy90ZW1wbGF0ZXMvY29sdW1ucy9qcy9jb2x1bW5zLmpzIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvY2F0YWxvZ29iamVjdHMvY29sdW1ucy90ZW1wbGF0ZXMvY29s dW1ucy9qcy9jb2x1bW5zLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmY0YTZhYjcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9jYXRhbG9nb2JqZWN0cy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1 bW5zL2pzL2NvbHVtbnMuanMKQEAgLTAsMCArMSw3MiBAQAorZGVmaW5lKAor ICAgICAgICBbJ2pxdWVyeScsICd1bmRlcnNjb3JlJywgJ3VuZGVyc2NvcmUu c3RyaW5nJywgJ3BnYWRtaW4nLCAncGdhZG1pbi5icm93c2VyJywgJ2FsZXJ0 aWZ5JywgJ3BnYWRtaW4uYnJvd3Nlci5jb2xsZWN0aW9uJ10sCitmdW5jdGlv bigkLCBfLCBTLCBwZ0FkbWluLCBwZ0Jyb3dzZXIsIGFsZXJ0aWZ5KSB7CisK KyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwtY29sdW1ucyddKSB7Cisg ICAgdmFyIGRhdGFiYXNlcyA9IHBnQWRtaW4uQnJvd3Nlci5Ob2Rlc1snY29s bC1jb2x1bW5zJ10gPQorICAgICAgcGdBZG1pbi5Ccm93c2VyLkNvbGxlY3Rp b24uZXh0ZW5kKHsKKyAgICAgICAgbm9kZTogJ2NvbHVtbnMnLAorICAgICAg ICBsYWJlbDogJ3t7IF8oJ0NvbHVtbnMnKSB9fScsCisgICAgICAgIHR5cGU6 ICdjb2xsLWNvbHVtbnMnCisgICAgICB9KTsKKyAgfTsKKworICBpZiAoIXBn QnJvd3Nlci5Ob2Rlc1snY29sdW1ucyddKSB7CisgICAgcGdBZG1pbi5Ccm93 c2VyLk5vZGVzWydjb2x1bW5zJ10gPSBwZ0FkbWluLkJyb3dzZXIuTm9kZS5l eHRlbmQoeworICAgICAgcGFyZW50X3R5cGU6ICdjYXRhbG9nb2JqZWN0JywK KyAgICAgIHR5cGU6ICdjb2x1bW5zJywKKyAgICAgIGxhYmVsOiAne3sgXygn Q29sdW1ucycpIH19JywKKyAgICAgIGhhc1NRTDogIGZhbHNlLAorICAgICAg aGFzRGVwZW5kczogdHJ1ZSwKKyAgICAgIEluaXQ6IGZ1bmN0aW9uKCkgewor ICAgICAgICAvKiBBdm9pZCBtdWxpdHBsZSByZWdpc3RyYXRpb24gb2YgbWVu dXMgKi8KKyAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpCisgICAgICAg ICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRy dWU7CisKKyAgICAgIH0sCisgICAgICBtb2RlbDogcGdBZG1pbi5Ccm93c2Vy Lk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICAgICAgZGVmYXVsdHM6IHsKKyAg ICAgICAgICBhdHRuYW1lOiB1bmRlZmluZWQsCisgICAgICAgICAgYXR0b3du ZXI6IHVuZGVmaW5lZCwKKyAgICAgICAgICBhdHR0eXBpZDogdW5kZWZpbmVk LAorICAgICAgICAgIGF0dG51bTogdW5kZWZpbmVkLAorICAgICAgICAgIGNs dHlwZTogdW5kZWZpbmVkLAorICAgICAgICAgIGNvbGxzcGNuYW1lOiB1bmRl ZmluZWQsCisgICAgICAgICAgYXR0YWNsOiB1bmRlZmluZWQsCisgICAgICAg ICAgZGVzY3JpcHRpb246IHVuZGVmaW5lZAorICAgICAgICB9LAorICAgICAg ICBzY2hlbWE6IFt7CisgICAgICAgICAgaWQ6ICdhdHRuYW1lJywgbGFiZWw6 ICd7eyBfKCdDb2x1bW4nKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAg ICAgIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6IHRydWUKKyAgICAgICAgfSx7 CisgICAgICAgICAgaWQ6ICdhdHR0eXBpZCcsIGxhYmVsOiAne3sgXygnT2lk JykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAndGV4 dCcsIGRpc2FibGVkOiB0cnVlCisgICAgICAgIH0seworICAgICAgICAgIGlk OiAnYXR0b3duZXInLCBsYWJlbDogJ3t7IF8oJ093bmVyJykgfX0nLCBjZWxs OiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIGRpc2FibGVk OiB0cnVlCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnYXR0bnVtJywg bGFiZWw6J3t7IF8oJ1Bvc2l0aW9uJykgfX0nLCBjZWxsOiAnc3RyaW5nJywK KyAgICAgICAgICB0eXBlOiAndGV4dCcsIGRpc2FibGVkOiB0cnVlCisgICAg ICAgIH0seworICAgICAgICAgIGlkOiAnY2x0eXBlJywgbGFiZWw6J3t7IF8o J0RhdGEgdHlwZScpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAg dHlwZTogJ3RleHQnLCBkaXNhYmxlZDogdHJ1ZQorICAgICAgICB9LHsKKyAg ICAgICAgICBpZDogJ2NvbGxzcGNuYW1lJywgbGFiZWw6J3t7IF8oJ0NvbGxh dGlvbicpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTog J3RleHQnLCBkaXNhYmxlZDogdHJ1ZQorICAgICAgICB9LHsKKyAgICAgICAg ICBpZDogJ2F0dGFjbCcsIGxhYmVsOid7eyBfKCdBQ0wnKSB9fScsIGNlbGw6 ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6 IHRydWUKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdkZXNjcmlwdGlv bicsIGxhYmVsOid7eyBfKCdDb21tZW50JykgfX0nLCBjZWxsOiAnc3RyaW5n JywKKyAgICAgICAgICB0eXBlOiAnbXVsdGlsaW5lJywgZGlzYWJsZWQ6IHRy dWUKKyAgICAgICAgfQorICAgICAgICBdCisgICAgICB9KQorICB9KTsKKwor ICB9CisKKyAgcmV0dXJuIHBnQnJvd3Nlci5Ob2Rlc1snY29sdW1ucyddOwor fSk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9jYXRhbG9nb2JqZWN0 cy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW5zL3NxbC85LjFfcGx1cy9kZXBl bmQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY2F0YWxvZ29iamVjdHMvY29sdW1u cy90ZW1wbGF0ZXMvY29sdW1ucy9zcWwvOS4xX3BsdXMvZGVwZW5kLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xM2M5MjI5Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY2F0YWxvZ29iamVj dHMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1ucy9zcWwvOS4xX3BsdXMvZGVw ZW5kLnNxbApAQCAtMCwwICsxLDkgQEAKK1NFTEVDVAorICAgIHJlZi5yZWxu YW1lIEFTIHJlZm5hbWUsIGQyLnJlZmNsYXNzaWQsIGRlcC5kZXB0eXBlIEFT IGRlcHR5cGUKK0ZST00gcGdfZGVwZW5kIGRlcAorTEVGVCBKT0lOIHBnX2Rl cGVuZCBkMiBPTiBkZXAub2JqaWQ9ZDIub2JqaWQgQU5EIGRlcC5yZWZvYmpp ZCAhPSBkMi5yZWZvYmppZAorTEVGVCBKT0lOIHBnX2NsYXNzIHJlZiBPTiBy ZWYub2lkPWQyLnJlZm9iamlkCitMRUZUIEpPSU4gcGdfYXR0cmlidXRlIGF0 dCBPTiBkMi5yZWZjbGFzc2lkPWF0dC5hdHRyZWxpZCBBTkQgZDIucmVmb2Jq c3ViaWQ9YXR0LmF0dG51bQore3sgd2hlcmUgfX0gQU5ECitkZXAuY2xhc3Np ZD0oU0VMRUNUIG9pZCBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWU9J3Bn X2F0dHJkZWYnKSBBTkQKK2RlcC5yZWZvYmppZCBOT1QgSU4gKFNFTEVDVCBk My5yZWZvYmppZCBGUk9NIHBnX2RlcGVuZCBkMyBXSEVSRSBkMy5vYmppZD1k Mi5yZWZvYmppZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NhdGFs b2dvYmplY3RzL2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbnMvc3FsLzkuMV9w bHVzL25vZGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NhdGFsb2dvYmplY3Rz L2NvbHVtbnMvdGVtcGxhdGVzL2NvbHVtbnMvc3FsLzkuMV9wbHVzL25vZGVz LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzE5 YjdmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY2F0YWxv Z29iamVjdHMvY29sdW1ucy90ZW1wbGF0ZXMvY29sdW1ucy9zcWwvOS4xX3Bs dXMvbm9kZXMuc3FsCkBAIC0wLDAgKzEsMTAgQEAKK1NFTEVDVCBhdHR0eXBp ZCwgYXR0bmFtZQorRlJPTSBwZ19hdHRyaWJ1dGUgYXR0CisgIEpPSU4gcGdf dHlwZSB0eSBPTiB0eS5vaWQ9YXR0dHlwaWQKKyAgSk9JTiBwZ19uYW1lc3Bh Y2UgdG4gT04gdG4ub2lkPXR5LnR5cG5hbWVzcGFjZQorICBKT0lOIHBnX2Ns YXNzIGNsIE9OIGNsLm9pZD1hdHQuYXR0cmVsaWQKKyAgSk9JTiBwZ19uYW1l c3BhY2UgbmEgT04gbmEub2lkPWNsLnJlbG5hbWVzcGFjZQorV0hFUkUgYXR0 LmF0dHJlbGlkID0ge3tjb2lkfX06Om9pZAorICBBTkQgYXR0LmF0dG51bSA+ IDAKKyAgQU5EIGF0dC5hdHRpc2Ryb3BwZWQgSVMgRkFMU0UKK09SREVSIEJZ IGF0dC5hdHRudW0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9jYXRhbG9nb2JqZWN0cy9jb2x1bW5z L3RlbXBsYXRlcy9jb2x1bW5zL3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2NhdGFsb2dvYmplY3RzL2NvbHVtbnMvdGVt cGxhdGVzL2NvbHVtbnMvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzNjJiY2IKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9jYXRhbG9nb2JqZWN0 cy9jb2x1bW5zL3RlbXBsYXRlcy9jb2x1bW5zL3NxbC85LjFfcGx1cy9wcm9w ZXJ0aWVzLnNxbApAQCAtMCwwICsxLDM5IEBACitTRUxFQ1QgYXR0LiosIGRl Zi4qLCBwZ19jYXRhbG9nLnBnX2dldF9leHByKGRlZi5hZGJpbiwgZGVmLmFk cmVsaWQpIEFTIGRlZnZhbCwKKyAgICAgICAgQ0FTRSBXSEVOIGF0dC5hdHRu ZGltcyA+IDAgVEhFTiAxIEVMU0UgMCBFTkQgQVMgaXNhcnJheSwKKyAgICAg ICAgZm9ybWF0X3R5cGUodHkub2lkLE5VTEwpIEFTIHR5cG5hbWUsCisgICAg ICAgIGZvcm1hdF90eXBlKHR5Lm9pZCxhdHQuYXR0dHlwbW9kKSBBUyBkaXNw bGF5dHlwbmFtZSwKKyAgICAgICAgdG4ubnNwbmFtZSBhcyB0eXBuc3BuYW1l LCBldC50eXBuYW1lIGFzIGVsZW10eXBuYW1lLAorICAgICAgICB0eS50eXBz dG9yYWdlIEFTIGRlZmF1bHRzdG9yYWdlLCBjbC5yZWxuYW1lLCBuYS5uc3Bu YW1lLAorCWF0dC5hdHRzdGF0dGFyZ2V0LCBkZXNjcmlwdGlvbiwgY3MucmVs bmFtZSBBUyBzZXJuYW1lLAorCW5zLm5zcG5hbWUgQVMgc2Vyc2NoZW1hLAor CShTRUxFQ1QgY291bnQoMSkgRlJPTSBwZ190eXBlIHQyIFdIRVJFIHQyLnR5 cG5hbWU9dHkudHlwbmFtZSkgPiAxIEFTIGlzZHVwLAorCWluZGtleSwgY29s bC5jb2xsbmFtZSwgbnNwYy5uc3BuYW1lIGFzIGNvbGxuc3BuYW1lICwgYXR0 b3B0aW9ucywKKwktLSBTdGFydCBwZ0FkbWluNCwgYWRkZWQgdG8gc2F2ZSB0 aW1lIG9uIGNsaWVudCBzaWRlIHBhcnNpbmcKKwlDQVNFIFdIRU4gbGVuZ3Ro KGNvbGwuY29sbG5hbWUpID4gMCBBTkQgbGVuZ3RoKG5zcGMubnNwbmFtZSkg PiAwICBUSEVOCisJICBjb25jYXQoY29sbC5jb2xsbmFtZSwnLiInLG5zcGMu bnNwbmFtZSwnIicpCisJRUxTRSAnJyBFTkQgQVMgY29sbHNwY25hbWUsCisJ Q0FTRSBXSEVOIHN0cnBvcyhmb3JtYXRfdHlwZSh0eS5vaWQsYXR0LmF0dHR5 cG1vZCksICcuJykgPiAwIFRIRU4KKwkgIHNwbGl0X3BhcnQoZm9ybWF0X3R5 cGUodHkub2lkLGF0dC5hdHR0eXBtb2QpLCAnLicsIDIpCisJRUxTRSBmb3Jt YXRfdHlwZSh0eS5vaWQsYXR0LmF0dHR5cG1vZCkgRU5EIEFTIGNsdHlwZSwK KwktLSBFbmQgcGdBZG1pbjQKKwlFWElTVFMoU0VMRUNUIDEgRlJPTSBwZ19j b25zdHJhaW50IFdIRVJFIGNvbnJlbGlkPWF0dC5hdHRyZWxpZCBBTkQgY29u dHlwZT0nZicgQU5EIGF0dC5hdHRudW09QU5ZKGNvbmtleSkpIEFzIGlzZmss CisJKFNFTEVDVCBhcnJheV9hZ2cobGFiZWwpIEZST00gcGdfc2VjbGFiZWxz IHNsMSBXSEVSRSBzbDEub2Jqb2lkPWF0dC5hdHRyZWxpZCBBTkQgc2wxLm9i anN1YmlkPWF0dC5hdHRudW0pIEFTIGxhYmVscywKKwkoU0VMRUNUIGFycmF5 X2FnZyhwcm92aWRlcikgRlJPTSBwZ19zZWNsYWJlbHMgc2wyIFdIRVJFIHNs Mi5vYmpvaWQ9YXR0LmF0dHJlbGlkIEFORCBzbDIub2Jqc3ViaWQ9YXR0LmF0 dG51bSkgQVMgcHJvdmlkZXJzCitGUk9NIHBnX2F0dHJpYnV0ZSBhdHQKKyAg Sk9JTiBwZ190eXBlIHR5IE9OIHR5Lm9pZD1hdHR0eXBpZAorICBKT0lOIHBn X25hbWVzcGFjZSB0biBPTiB0bi5vaWQ9dHkudHlwbmFtZXNwYWNlCisgIEpP SU4gcGdfY2xhc3MgY2wgT04gY2wub2lkPWF0dC5hdHRyZWxpZAorICBKT0lO IHBnX25hbWVzcGFjZSBuYSBPTiBuYS5vaWQ9Y2wucmVsbmFtZXNwYWNlCisg IExFRlQgT1VURVIgSk9JTiBwZ190eXBlIGV0IE9OIGV0Lm9pZD10eS50eXBl bGVtCisgIExFRlQgT1VURVIgSk9JTiBwZ19hdHRyZGVmIGRlZiBPTiBhZHJl bGlkPWF0dC5hdHRyZWxpZCBBTkQgYWRudW09YXR0LmF0dG51bQorICBMRUZU IE9VVEVSIEpPSU4gcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lk PWF0dC5hdHRyZWxpZCBBTkQgZGVzLm9ianN1YmlkPWF0dC5hdHRudW0gQU5E IGRlcy5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykKKyAgTEVGVCBP VVRFUiBKT0lOIChwZ19kZXBlbmQgSk9JTiBwZ19jbGFzcyBjcyBPTiBvYmpp ZD1jcy5vaWQgQU5EIGNzLnJlbGtpbmQ9J1MnKSBPTiByZWZvYmppZD1hdHQu YXR0cmVsaWQgQU5EIHJlZm9ianN1YmlkPWF0dC5hdHRudW0KKyAgTEVGVCBP VVRFUiBKT0lOIHBnX25hbWVzcGFjZSBucyBPTiBucy5vaWQ9Y3MucmVsbmFt ZXNwYWNlCisgIExFRlQgT1VURVIgSk9JTiBwZ19pbmRleCBwaSBPTiBwaS5p bmRyZWxpZD1hdHQuYXR0cmVsaWQgQU5EIGluZGlzcHJpbWFyeQorICBMRUZU IE9VVEVSIEpPSU4gcGdfY29sbGF0aW9uIGNvbGwgT04gYXR0LmF0dGNvbGxh dGlvbj1jb2xsLm9pZAorICBMRUZUIE9VVEVSIEpPSU4gcGdfbmFtZXNwYWNl IG5zcGMgT04gY29sbC5jb2xsbmFtZXNwYWNlPW5zcGMub2lkCitXSEVSRSBh dHQuYXR0cmVsaWQgPSB7e2NvaWR9fTo6b2lkCisgIHslIGlmIGNsaWQgJX1B TkQgYXR0LmF0dHR5cGlkID0ge3tjbGlkfX06Om9pZHslIGVuZGlmICV9Cisg IEFORCBhdHQuYXR0bnVtID4gMAorICBBTkQgYXR0LmF0dGlzZHJvcHBlZCBJ UyBGQUxTRQorT1JERVIgQlkgYXR0LmF0dG51bQpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NhdGFs b2dvYmplY3RzL3N0YXRpYy9pbWcvY2F0YWxvZ29iamVjdC5wbmcgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9jYXRhbG9nb2JqZWN0cy9zdGF0aWMvaW1nL2NhdGFsb2dv YmplY3QucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0ZWQ3Mzg5YzEy OGZkY2RjZDg2YmM1MDQzMTFiOWVkNjJlODkwZmYKR0lUIGJpbmFyeSBwYXRj aApsaXRlcmFsIDQwOQp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXjB3QiE2 Mz93eWxgR2JLfVFHaWN+RTA5KjRgbj5uVHw0SFk2RlNgNzcKeipOd0xxQDR2 a05gMSNYayYhMFZlY0kpQk9IUnFsdVoreExRYCRoTnB8RSp7Syl0JmZMZGlZ bil6OHtHQHpKK2MyCno/N2lsTCF9NTNMMypQOT9kOElidlckVCYwKzUzSnRF Xy1MVEBRdlBfUzZpO1ZgfXU4SmB+SyYqakBiV3ZLai0oJgp6bzQrcXluNHlf ODJXVHJ9TnN3UEtnVHUyTVgrUkVWZmskTDlrb0V2JHgwQmcrS3RgT1dpKGBu eTw+WjZ9N2UqYykKem8qdGh3SSV7Jj8kanE0JmJIYD9uMDs2M1dxb1pQP1Y0 el9rcntATVBKNTVIJSVtb2NTWWgrdjs7dSFmdjRsOzNoCnpGejc4e2FXaTA0 UlMwTzlhT0xgPEhIJilJeHImQiVaXzt2TXhjWndSKEA7MjlfcU9mXnBpUWJK dGBRfEVpNnlDNAp6JHdqRl5pb3dYaCZfTEpGTll9dEgjS14kUCNNc0tqTUJC akIlRH0qNHJtN3JAaFRReT0lKE9+fjFfTWo1MjlSbmkKWTEyYyQqUWAxQSYw NXZkcHk4NX1TYjRxOWUwTGZeZTM7K05DCgpsaXRlcmFsIDAKSGNtVj9kMDAw MDEKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9jYXRhbG9nb2JqZWN0 cy9zdGF0aWMvaW1nL2NvbGwtY2F0YWxvZ29iamVjdC5wbmcgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9jYXRhbG9nb2JqZWN0cy9zdGF0aWMvaW1nL2NvbGwtY2F0YWxv Z29iamVjdC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODViODlmMWU3 NWMzYmE5MTllMGYzZjYzMjM1ZDE0ZmI3YmM1ODk0MApHSVQgYmluYXJ5IHBh dGNoCmxpdGVyYWwgNDE5CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeMHdC ITYzP3d5bGBHYkt9V2BJd0tFMDkqNGBuPkRoemJXVGB1RCR4ewp6KVNYeE45 elRFZntRMHdJJnlMPUJSPGBxbiFKSFF6WGE1Q2xfX1g9eituP1gySEp8PWhi P2tUa2Z1RzRjemxDbDMKej83OH1iP2I1ZX5eSW9nWmVBI15adU5SUUo8Z0xj Y20rYzNoLSNUSkg7bmU0OWttNFUyR2hhTTtgVFlkWUdSQmYxCnp6aEROM1hF KU0tOUxAcmQkWUxQdjBtZzE4dithUDRMUWZhUjVRKXBOZVZsdl4zT3A8Oyl3 UjBKPVQtZHFLWEY9RAp6Ozd4JWBLNTNJdktlUG9OX31weUpXJEF6RTRWJShg WVh1cDB1SCVkXkVqVFZ7dUhLY29KQn5NaiFEPXolPHV6ajUKelQkITdyOGtS M3BtdFV9ekBkeEFXWk1RY1YtayFzeXs1KkshJjtNTGppfCs4PkRtPXQwRTV1 Y3lGN256OFh0YD5NCnpZZVkjKFZvOW8xYSMxUmZWbFhsPUd8KTlQKGxzeSlG KjJ8K0Z9NS0+KEtheChHQkJ7MXNWYXd9QXZacklHcCFQJApmIU4zeCUwaUBj Pnp6bXx7KWIhOWJLbilDQHU2ezEtb0QhTTxhRWh1agoKbGl0ZXJhbCAwCkhj bVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY2F0YWxv Z29iamVjdHMvdGVtcGxhdGVzL2NhdGFsb2dvYmplY3QvanMvY2F0YWxvZ29i amVjdC5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NhdGFsb2dvYmplY3RzL3RlbXBs YXRlcy9jYXRhbG9nb2JqZWN0L2pzL2NhdGFsb2dvYmplY3QuanMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDZmNjAxYQotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NhdGFsb2dvYmplY3RzL3Rl bXBsYXRlcy9jYXRhbG9nb2JqZWN0L2pzL2NhdGFsb2dvYmplY3QuanMKQEAg LTAsMCArMSw1NiBAQAorZGVmaW5lKAorICAgICAgICBbJ2pxdWVyeScsICd1 bmRlcnNjb3JlJywgJ3VuZGVyc2NvcmUuc3RyaW5nJywgJ3BnYWRtaW4nLCAn cGdhZG1pbi5icm93c2VyJywgJ2FsZXJ0aWZ5JywgJ3BnYWRtaW4uYnJvd3Nl ci5jb2xsZWN0aW9uJ10sCitmdW5jdGlvbigkLCBfLCBTLCBwZ0FkbWluLCBw Z0Jyb3dzZXIsIGFsZXJ0aWZ5KSB7CisKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9k ZXNbJ2NvbGwtY2F0YWxvZ29iamVjdCddKSB7CisgICAgdmFyIGRhdGFiYXNl cyA9IHBnQWRtaW4uQnJvd3Nlci5Ob2Rlc1snY29sbC1jYXRhbG9nb2JqZWN0 J10gPQorICAgICAgcGdBZG1pbi5Ccm93c2VyLkNvbGxlY3Rpb24uZXh0ZW5k KHsKKyAgICAgICAgbm9kZTogJ2NhdGFsb2dvYmplY3QnLAorICAgICAgICBs YWJlbDogJ3t7IF8oJ0NhdGFsb2cgT2JqZWN0cycpIH19JywKKyAgICAgICAg dHlwZTogJ2NvbGwtY2F0YWxvZ29iamVjdCcKKyAgICAgIH0pOworICB9Owor CisgIGlmICghcGdCcm93c2VyLk5vZGVzWydjYXRhbG9nb2JqZWN0J10pIHsK KyAgICBwZ0FkbWluLkJyb3dzZXIuTm9kZXNbJ2NhdGFsb2dvYmplY3QnXSA9 IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLmV4dGVuZCh7CisgICAgICBwYXJlbnRf dHlwZTogJ2NhdGFsb2cnLAorICAgICAgdHlwZTogJ2NhdGFsb2dvYmplY3Qn LAorICAgICAgbGFiZWw6ICd7eyBfKCdDYXRhbG9nIE9iamVjdCcpIH19JywK KyAgICAgIGhhc1NRTDogIGZhbHNlLAorICAgICAgaGFzRGVwZW5kczogdHJ1 ZSwKKyAgICAgIEluaXQ6IGZ1bmN0aW9uKCkgeworICAgICAgICAvKiBBdm9p ZCBtdWxpdHBsZSByZWdpc3RyYXRpb24gb2YgbWVudXMgKi8KKyAgICAgICAg aWYgKHRoaXMuaW5pdGlhbGl6ZWQpCisgICAgICAgICAgICByZXR1cm47CisK KyAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7CisKKyAgICAgIH0s CisgICAgICBtb2RlbDogcGdBZG1pbi5Ccm93c2VyLk5vZGUuTW9kZWwuZXh0 ZW5kKHsKKyAgICAgICAgZGVmYXVsdHM6IHsKKyAgICAgICAgICBuYW1lOiB1 bmRlZmluZWQsCisgICAgICAgICAgbmFtZXNwYWNlb3duZXI6IHVuZGVmaW5l ZCwKKyAgICAgICAgICBuc3BhY2w6IHVuZGVmaW5lZCwKKyAgICAgICAgICBk ZXNjcmlwdGlvbjogdW5kZWZpbmVkLAorICAgICAgICB9LAorICAgICAgICBz Y2hlbWE6IFt7CisgICAgICAgICAgaWQ6ICduYW1lJywgbGFiZWw6ICd7eyBf KCdOYW1lJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBl OiAndGV4dCcsIGRpc2FibGVkOiB0cnVlCisgICAgICAgIH0seworICAgICAg ICAgIGlkOiAnb2lkJywgbGFiZWw6J3t7IF8oJ09pZCcpIH19JywgY2VsbDog J3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBkaXNhYmxlZDog dHJ1ZQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ293bmVyJywgbGFi ZWw6J3t7IF8oJ093bmVyJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAg ICAgICB0eXBlOiAndGV4dCcsIGRpc2FibGVkOiB0cnVlCisgICAgICAgIH0s eworICAgICAgICAgIGlkOiAnZGVzY3JpcHRpb24nLCBsYWJlbDone3sgXygn Q29tbWVudCcpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlw ZTogJ211bHRpbGluZScgLCAgZGlzYWJsZWQ6IHRydWUKKyAgICAgICAgfQor ICAgICAgICBdCisgICAgICB9KQorICB9KTsKKworICB9CisKKyAgcmV0dXJu IHBnQnJvd3Nlci5Ob2Rlc1snY2F0YWxvZ29iamVjdCddOworfSk7ClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvY2F0YWxvZ29iamVjdHMvdGVtcGxhdGVzL2NhdGFsb2dvYmplY3Qv c3FsLzkuMV9wbHVzL2JhY2tlbmRfc3VwcG9ydC5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9jYXRhbG9nb2JqZWN0cy90ZW1wbGF0ZXMvY2F0YWxvZ29iamVjdC9z cWwvOS4xX3BsdXMvYmFja2VuZF9zdXBwb3J0LnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWI5NTY0Ci0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvY2F0YWxvZ29iamVjdHMvdGVtcGxhdGVz L2NhdGFsb2dvYmplY3Qvc3FsLzkuMV9wbHVzL2JhY2tlbmRfc3VwcG9ydC5z cWwKQEAgLTAsMCArMSwxOCBAQAorU0VMRUNUCisgQ0FTRSBXSEVOIG5zcC5u c3BuYW1lIElOICgnc3lzJywgJ2RibycsICdpbmZvcm1hdGlvbl9zY2hlbWEn KSBUSEVOIHRydWUgRUxTRSBmYWxzZSBFTkQgQVMgZGJTdXBwb3J0CitGUk9N IHBnX25hbWVzcGFjZSBuc3AKK1dIRVJFIG5zcC5vaWQ9e3tzY2lkfX06Omlu dAorQU5EICgKKwkobnNwbmFtZSA9ICdwZ19jYXRhbG9nJyBBTkQgRVhJU1RT CisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTRUxFQ1QgMSBG Uk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAncGdfY2xhc3MnIEFORCBy ZWxuYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlUIDEpKQorCU9SIChuc3BuYW1l ID0gJ3BnYWdlbnQnIEFORCBFWElTVFMKKwkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKFNFTEVDVCAxIEZST00gcGdfY2xhc3MgV0hFUkUgcmVs bmFtZSA9ICdwZ2Ffam9iJyBBTkQgcmVsbmFtZXNwYWNlID0gbnNwLm9pZCBM SU1JVCAxKSkKKwlPUiAobnNwbmFtZSA9ICdpbmZvcm1hdGlvbl9zY2hlbWEn IEFORCBFWElTVFMKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KFNFTEVDVCAxIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICd0YWJs ZXMnIEFORCByZWxuYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlUIDEpKQorCU9S IChuc3BuYW1lIExJS0UgJ18lJyBBTkQgRVhJU1RTCisJICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChTRUxFQ1QgMSBGUk9NIHBnX3Byb2MgV0hF UkUgcHJvbmFtZT0nc2xvbnl2ZXJzaW9uJyBBTkQgcHJvbmFtZXNwYWNlID0g bnNwLm9pZCBMSU1JVCAxKSkKKykKK0FORAorIG5zcG5hbWUgTk9UIExJS0Ug RSdwZ1xcdGVtcFxcJScKK0FORAorIG5zcG5hbWUgTk9UIExJS0UgRSdwZ1xc dG9hc3RfdGVtcFxcJScKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9jYXRhbG9nb2JqZWN0cy90ZW1w bGF0ZXMvY2F0YWxvZ29iamVjdC9zcWwvOS4xX3BsdXMvbm9kZXMuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvY2F0YWxvZ29iamVjdHMvdGVtcGxhdGVzL2NhdGFs b2dvYmplY3Qvc3FsLzkuMV9wbHVzL25vZGVzLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi4xM2E2ZGI3Ci0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvY2F0YWxvZ29iamVjdHMvdGVtcGxhdGVz L2NhdGFsb2dvYmplY3Qvc3FsLzkuMV9wbHVzL25vZGVzLnNxbApAQCAtMCww ICsxLDkgQEAKK1NFTEVDVCBjLm9pZCwgYy5yZWxuYW1lIGFzIG5hbWUKKyBG Uk9NIHBnX2NsYXNzIGMKK1dIRVJFIHJlbG5hbWVzcGFjZSA9IHt7c2NpZH19 OjppbnQKK09SICAoLS0gT24gRW50ZXJwcmlzZURCIHdlIG5lZWQgdG8gaWdu b3JlIHNvbWUgb2JqZWN0cyBpbiB0aGUgY2F0YWxvZywgbmFtZWx5LCBfKiwg ZHVhbCBhbmQgdHlwZV9vYmplY3Rfc291cmNlLgorCXNlbGVjdCAnc3lzJyB+ IChTRUxFQ1QgbnNwLm5zcG5hbWUgRlJPTSBwZ19uYW1lc3BhY2UgbnNwIFdI RVJFIG5zcC5vaWQgPSB7e3NjaWR9fTo6aW50KQorCUFORAorCShjLnJlbG5h bWUgTk9UIExJS0UgJ1xcXyUnIEFORCBjLnJlbG5hbWUgPSAnZHVhbCcgQU5E ICBjLnJlbG5hbWUgPSAndHlwZV9vYmplY3Rfc291cmNlJykKKyAgICApCitP UkRFUiBCWSByZWxuYW1lOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NhdGFsb2dvYmplY3RzL3Rl bXBsYXRlcy9jYXRhbG9nb2JqZWN0L3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVz LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NhdGFsb2dvYmplY3RzL3RlbXBsYXRl cy9jYXRhbG9nb2JqZWN0L3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Y2YzZTk2Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY2F0YWxvZ29iamVj dHMvdGVtcGxhdGVzL2NhdGFsb2dvYmplY3Qvc3FsLzkuMV9wbHVzL3Byb3Bl cnRpZXMuc3FsCkBAIC0wLDAgKzEsMTMgQEAKK1NFTEVDVCBjLm9pZCwgYy5y ZWxuYW1lIGFzIG5hbWUsIHBnX2dldF91c2VyYnlpZChyZWxvd25lcikgQVMg b3duZXIsIGRlc2NyaXB0aW9uCisgRlJPTSBwZ19jbGFzcyBjCitMRUZUIE9V VEVSIEpPSU4gcGdfZGVzY3JpcHRpb24gZCBPTiAoZC5vYmpvaWQ9Yy5vaWQg QU5EIGQuY2xhc3NvaWQ9J3BnX2NsYXNzJzo6cmVnY2xhc3MpCitXSEVSRSBy ZWxuYW1lc3BhY2UgPSB7e3NjaWR9fTo6aW50Cit7JSBpZiBjb2lkICV9CitB TkQgYy5vaWQgPSB7e2NvaWR9fTo6aW50Cit7JSBlbmRpZiAlfQorT1IgICgt LSBPbiBFbnRlcnByaXNlREIgd2UgbmVlZCB0byBpZ25vcmUgc29tZSBvYmpl Y3RzIGluIHRoZSBjYXRhbG9nLCBuYW1lbHksIF8qLCBkdWFsIGFuZCB0eXBl X29iamVjdF9zb3VyY2UuCisJc2VsZWN0ICdzeXMnIH4gKFNFTEVDVCBuc3Au bnNwbmFtZSBGUk9NIHBnX25hbWVzcGFjZSBuc3AgV0hFUkUgbnNwLm9pZCA9 IHt7c2NpZH19OjppbnQpCisJQU5ECisJKGMucmVsbmFtZSBOT1QgTElLRSAn XFxfJScgQU5EIGMucmVsbmFtZSA9ICdkdWFsJyBBTkQgIGMucmVsbmFtZSA9 ICd0eXBlX29iamVjdF9zb3VyY2UnKQorICAgICkKK09SREVSIEJZIHJlbG5h bWU7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo= --001a114a9cbecc7cc5052d89b353 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 --001a114a9cbecc7cc5052d89b353--