Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aqiSO-0007Bk-DQ for pgadmin-hackers@arkaria.postgresql.org; Thu, 14 Apr 2016 14:41:20 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1aqiSN-0003ba-AF for pgadmin-hackers@arkaria.postgresql.org; Thu, 14 Apr 2016 14:41:19 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1aqiSK-0003Zy-A2 for pgadmin-hackers@postgresql.org; Thu, 14 Apr 2016 14:41:16 +0000 Received: from mail-vk0-x231.google.com ([2607:f8b0:400c:c05::231]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1aqiSF-0004oR-8z for pgadmin-hackers@postgresql.org; Thu, 14 Apr 2016 14:41:15 +0000 Received: by mail-vk0-x231.google.com with SMTP id t129so111862475vkg.2 for ; Thu, 14 Apr 2016 07:41:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:date:message-id:subject:from:to; bh=9rkisMfHtauMaFJ/Kz83nQmySw1NuamjR4NBYYWBFAQ=; b=sFVjsjSTXVuhR5bFYy8JcbfAg6yAwaEcR1iODklj66b4GEIF+ruC7mSGuypOCtkoAs IlUM+G0AbaGg3LfUkwe9zVNCYH+2wURWAZUqIMM3zTOSK66b0zPleOxiJHTqUKyq8EFG A3qBNQ5GWHyCAxREtdkPicNjTeuLo1tiXp93ytXjrbRu7nohXx4HaoMDW0M/mJlpncfp Dupygl06LcP5tmIX6weV+mCbFGBRo4RN1o93pNXzGEWNBRbQrxp+2FBgUt9Ac3BL1GY7 +dvvUL23b6WsncVIZNgZwvGxfKZrp2/u5D0SYUJ3IIwX/f0t2rG5CB4THNWdUUXw5JJp cg3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to; bh=9rkisMfHtauMaFJ/Kz83nQmySw1NuamjR4NBYYWBFAQ=; b=OPlkyM9w+lxM5IlpDpFCsmviGdAlaovAbb0NHzJJ1vJ4AooDdUdvTeEly6vlwBGktW wDJNutPaU6nMoSplcNJaJsQt+D8IEaEgN67v+ex4UT/SXCvRUTfrffsA0PnH4/hIpShD HVCWTXFqt+jX2qOzeG7Sxsjz/w5ShBSuVx9M+WLm80lRGAPM8MOkAliSyJ9HKwIuaqIy WtumaGXNS4P5YEaeLTdEMPJttdL8k3ZprSV/hq4RrYNteQzWwHWZeJbOkgZSFYLm8FaS ldIk2+KJeSewpzAV9rxHMJibudvdFh6lg/77YeMBTefZV7E8qe9yjhavzjSPNp93eVFo rwFA== X-Gm-Message-State: AOPr4FVcmcYSpKtFNH6P8O3F/v7dVqdDZNgYYg8gskfwDbFn57imi9VS63UjBuj32jPCmV2pj1DV8YlzsIEFYKuy MIME-Version: 1.0 X-Received: by 10.31.147.82 with SMTP id v79mr7032336vkd.58.1460644869844; Thu, 14 Apr 2016 07:41:09 -0700 (PDT) Received: by 10.31.164.75 with HTTP; Thu, 14 Apr 2016 07:41:09 -0700 (PDT) Date: Thu, 14 Apr 2016 20:11:09 +0530 Message-ID: Subject: PATCH: FTS Dictionary From: Sanket Mehta To: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a1141dca29c6404053072e23e 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 --001a1141dca29c6404053072e23e Content-Type: multipart/alternative; boundary=001a1141dca29c63ff053072e23c --001a1141dca29c63ff053072e23c Content-Type: text/plain; charset=UTF-8 Hi, PFA patch for FTS Dictionaries. Please do review it and let me know in case of any issues. Regards, Sanket Mehta Sr Software engineer Enterprisedb --001a1141dca29c63ff053072e23c Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

PFA patch for FTS Dictionaries.
Please do review it and let me know in case of any issues.

Reg= ards,
Sanket Mehta
Sr Software engineer
Enterprised= b
--001a1141dca29c63ff053072e23c-- --001a1141dca29c6404053072e23e Content-Type: text/x-patch; charset=US-ASCII; name="fts_dictionaryv1.patch" Content-Disposition: attachment; filename="fts_dictionaryv1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_in0e8mq20 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9uYXJpZXMv X19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFyaWVz L19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjNmN2YyNzgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdHNfZGljdGlvbmFyaWVzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsODE4 IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0Fk bWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykg MjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNv ZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2Vu Y2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyIiIkRl ZmluZXMgdmlld3MgZm9yIG1hbmFnZW1lbnQgb2YgRnRzIERpY3Rpb25hcnkg bm9kZSIiIgorCitpbXBvcnQganNvbgorZnJvbSBmbGFzayBpbXBvcnQgcmVu ZGVyX3RlbXBsYXRlLCBtYWtlX3Jlc3BvbnNlLCBjdXJyZW50X2FwcCwgcmVx dWVzdCwganNvbmlmeQorZnJvbSBmbGFzay5leHQuYmFiZWwgaW1wb3J0IGdl dHRleHQgYXMgXworZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IG1h a2VfanNvbl9yZXNwb25zZSwgXAorICAgIG1ha2VfcmVzcG9uc2UgYXMgYWph eF9yZXNwb25zZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yLCBnb25lCitmcm9t IHBnYWRtaW4uYnJvd3Nlci51dGlscyBpbXBvcnQgUEdDaGlsZE5vZGVWaWV3 Citmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu ZGF0YWJhc2VzLnNjaGVtYXMudXRpbHMgXAorICAgIGltcG9ydCBTY2hlbWFD aGlsZE1vZHVsZQoraW1wb3J0IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMgYXMgc2NoZW1hcworZnJv bSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IHByZWNvbmRpdGlvbl9yZXF1 aXJlZAorZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2Ry aXZlcgorZnJvbSBjb25maWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCitm cm9tIGZ1bmN0b29scyBpbXBvcnQgd3JhcHMKKworCitjbGFzcyBGdHNEaWN0 aW9uYXJ5TW9kdWxlKFNjaGVtYUNoaWxkTW9kdWxlKToKKyAgICAiIiIKKyAg ICAgY2xhc3MgRnRzRGljdGlvbmFyeU1vZHVsZShTY2hlbWFDaGlsZE1vZHVs ZSkKKworICAgICAgICBBIG1vZHVsZSBjbGFzcyBmb3IgRlRTIERpY3Rpb25h cnkgbm9kZSBkZXJpdmVkIGZyb20gU2NoZW1hQ2hpbGRNb2R1bGUuCisKKyAg ICBNZXRob2RzOgorICAgIC0tLS0tLS0KKyAgICAqIF9faW5pdF9fKCphcmdz LCAqKmt3YXJncykKKyAgICAgIC0gTWV0aG9kIGlzIHVzZWQgdG8gaW5pdGlh bGl6ZSB0aGUgRnRzRGljdGlvbmFyeU1vZHVsZSBhbmQKKyAgICAgICAgaXQn cyBiYXNlIG1vZHVsZS4KKworICAgICogZ2V0X25vZGVzKGdpZCwgc2lkLCBk aWQsIHNjaWQpCisgICAgICAtIE1ldGhvZCBpcyB1c2VkIHRvIGdlbmVyYXRl IHRoZSBicm93c2VyIGNvbGxlY3Rpb24gbm9kZS4KKworICAgICogbm9kZV9p bm9kZSgpCisgICAgICAtIE1ldGhvZCBpcyBvdmVycmlkZGVuIGZyb20gaXRz IGJhc2UgY2xhc3MgdG8gbWFrZSB0aGUgbm9kZSBhcyBsZWFmIG5vZGUKKwor ICAgICogc2NyaXB0X2xvYWQoKQorICAgICAgLSBMb2FkIHRoZSBtb2R1bGUg c2NyaXB0IGZvciBGVFMgRGljdGlvbmFyeSwgd2hlbiBhbnkgb2YgdGhlIHNj aGVtYQorICAgICAgbm9kZSBpcyBpbml0aWFsaXplZC4KKyAgICAiIiIKKyAg ICBOT0RFX1RZUEUgPSAnZnRzX2RpY3Rpb25hcnknCisgICAgQ09MTEVDVElP Tl9MQUJFTCA9IF8oJ0ZUUyBEaWN0aW9uYXJpZXMnKQorCisgICAgZGVmIF9f aW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYu bWluX3ZlciA9IE5vbmUKKyAgICAgICAgc2VsZi5tYXhfdmVyID0gTm9uZQor ICAgICAgICBzZWxmLm1hbmFnZXIgPSBOb25lCisgICAgICAgIHN1cGVyKEZ0 c0RpY3Rpb25hcnlNb2R1bGUsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3 YXJncykKKworICAgIGRlZiBnZXRfbm9kZXMoc2VsZiwgZ2lkLCBzaWQsIGRp ZCwgc2NpZCk6CisgICAgICAgICIiIgorICAgICAgICBHZW5lcmF0ZSB0aGUg Y29sbGVjdGlvbiBub2RlCisgICAgICAgIDpwYXJhbSBnaWQ6IGdyb3VwIGlk CisgICAgICAgIDpwYXJhbSBzaWQ6IHNlcnZlciBpZAorICAgICAgICA6cGFy YW0gZGlkOiBkYXRhYmFzZSBpZAorICAgICAgICA6cGFyYW0gc2NpZDogc2No ZW1hIGlkCisgICAgICAgICIiIgorICAgICAgICB5aWVsZCBzZWxmLmdlbmVy YXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlKHNjaWQpCisKKyAgICBAcHJv cGVydHkKKyAgICBkZWYgbm9kZV9pbm9kZShzZWxmKToKKyAgICAgICAgIiIi CisgICAgICAgIE92ZXJyaWRlIHRoZSBwcm9wZXJ0eSB0byBtYWtlIHRoZSBu b2RlIGFzIGxlYWYgbm9kZQorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJu IEZhbHNlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc2NyaXB0X2xvYWQo c2VsZik6CisgICAgICAgICIiIgorICAgICAgICBMb2FkIHRoZSBtb2R1bGUg c2NyaXB0IGZvciBmdHMgdGVtcGxhdGUsIHdoZW4gYW55IG9mIHRoZSBzY2hl bWEKKyAgICAgICAgbm9kZSBpcyBpbml0aWFsaXplZC4KKyAgICAgICAgIiIi CisgICAgICAgIHJldHVybiBzY2hlbWFzLlNjaGVtYU1vZHVsZS5OT0RFX1RZ UEUKKworCitibHVlcHJpbnQgPSBGdHNEaWN0aW9uYXJ5TW9kdWxlKF9fbmFt ZV9fKQorCisKK2NsYXNzIEZ0c0RpY3Rpb25hcnlWaWV3KFBHQ2hpbGROb2Rl Vmlldyk6CisgICAgIiIiCisgICAgY2xhc3MgRnRzRGljdGlvbmFyeVZpZXco UEdDaGlsZE5vZGVWaWV3KQorCisgICAgICAgIEEgdmlldyBjbGFzcyBmb3Ig RlRTIERpY3Rpb25hcnkgbm9kZSBkZXJpdmVkIGZyb20gUEdDaGlsZE5vZGVW aWV3LgorICAgICAgICBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciBh bGwgdGhlIHN0dWZmIHJlbGF0ZWQgdG8gdmlldyBsaWtlCisgICAgICAgIGNy ZWF0ZS91cGRhdGUvZGVsZXRlIEZUUyBEaWN0aW9uYXJ5LAorICAgICAgICBz aG93aW5nIHByb3BlcnRpZXMgb2Ygbm9kZSwgc2hvd2luZyBzcWwgaW4gc3Fs IHBhbmUuCisKKyAgICBNZXRob2RzOgorICAgIC0tLS0tLS0KKyAgICAqIF9f aW5pdF9fKCoqa3dhcmdzKQorICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBp bml0aWFsaXplIHRoZSBGdHNEaWN0aW9uYXJ5VmlldyBhbmQgaXQncyBiYXNl IHZpZXcuCisKKyAgICAqIG1vZHVsZV9qcygpCisgICAgICAtIFRoaXMgcHJv cGVydHkgZGVmaW5lcyAoaWYgamF2YXNjcmlwdCkgZXhpc3RzIGZvciB0aGlz IG5vZGUuCisgICAgICAgIE92ZXJyaWRlIHRoaXMgcHJvcGVydHkgZm9yIHlv dXIgb3duIGxvZ2ljCisKKyAgICAqIGNoZWNrX3ByZWNvbmRpdGlvbigpCisg ICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0 b3Igd2hpY2ggd2lsbCBjaGVja3MKKyAgICAgICAgZGF0YWJhc2UgY29ubmVj dGlvbiBiZWZvcmUgcnVubmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNo ZXMKKyAgICAgICAgbWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9w ZXJ0aWVzIHRvIHNlbGYKKworICAgICogdG9rZW5pemVfb3B0aW9ucyhzZWxm LCBvcHRpb25fdmFsdWUpOgorICAgIC0gICBUaGlzIGZ1bmN0aW9uIHdpbGwg dG9rZW5pemUgdGhlIHN0cmluZyBzdG9yZWQgaW4gZGF0YWJhc2UKKyAgICAg ICAgZS5nLiBkYXRhYmFzZSBzdG9yZSB0aGUgdmFsdWUgYXMgYmVsb3cKKyAg ICAgICAga2V5MT12YWx1ZTEsIGtleTI9dmFsdWUyLCBrZXkzPXZhbHVlMywg Li4uLgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZXh0cmFjdCBrZXkg YW5kIHZhbHVlIGZyb20gYWJvdmUgc3RyaW5nCisKKyAgICAqIGxpc3QoKQor ICAgICAgLSBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gbGlzdCBhbGwgdGhl ICBub2RlcyB3aXRoaW4gdGhhdCBjb2xsZWN0aW9uLgorCisgICAgKiBub2Rl cygpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB1c2VkIHRvIGNy ZWF0ZSBhbGwgdGhlIGNoaWxkIG5vZGUgd2l0aGluIGNvbGxlY3Rpb24uCisg ICAgICAgIEhlcmUgaXQgd2lsbCBjcmVhdGUgYWxsIHRoZSBGVFMgRGljdGlv bmFyeSBub2Rlcy4KKworICAgICogbm9kZSgpCisgICAgICAtIFRoaXMgZnVu Y3Rpb24gd2lsbCBiZSB1c2VkIHRvIGNyZWF0ZSBhIG5vZGUgZ2l2ZW4gaXRz IG9pZAorICAgICAgICBIZXJlIGl0IHdpbGwgY3JlYXRlIHRoZSBGVFMgVGVt cGxhdGUgbm9kZSBiYXNlZCBvbiBpdHMgb2lkCisKKyAgICAqIHByb3BlcnRp ZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZGNpZCkKKyAgICAgIC0gVGhpcyBm dW5jdGlvbiB3aWxsIHNob3cgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNlbGVj dGVkIEZUUyBEaWN0aW9uYXJ5IG5vZGUKKworICAgICogY3JlYXRlKGdpZCwg c2lkLCBkaWQsIHNjaWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBj cmVhdGUgdGhlIG5ldyBGVFMgRGljdGlvbmFyeSBvYmplY3QKKworICAgICog dXBkYXRlKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRjaWQpCisgICAgICAtIFRo aXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgdGhlIGRhdGEgZm9yIHRoZSBzZWxl Y3RlZCBGVFMgRGljdGlvbmFyeSBub2RlCisKKyAgICAqIGRlbGV0ZShzZWxm LCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBkY2lkKToKKyAgICAgIC0gVGhpcyBm dW5jdGlvbiB3aWxsIGRyb3AgdGhlIEZUUyBEaWN0aW9uYXJ5IG9iamVjdAor CisgICAgKiBtc3FsKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRjaWQpCisgICAg ICAtIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byByZXR1cm4gbW9kaWZpZWQg U1FMIGZvciB0aGUgc2VsZWN0ZWQgbm9kZQorCisgICAgKiBnZXRfc3FsKGRh dGEsIGRjaWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0 ZSBzcWwgZnJvbSBtb2RlbCBkYXRhCisKKyAgICAqIHNxbChnaWQsIHNpZCwg ZGlkLCBzY2lkLCBkY2lkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxs IGdlbmVyYXRlIHNxbCB0byBzaG93IGluIHNxbCBwYW5lIGZvciBub2RlLgor CisgICAgKiBmZXRjaF90ZW1wbGF0ZXMoKToKKyAgICAgIC0gVGhpcyBmdW5j dGlvbiB3aWxsIGZldGNoIGFsbCB0ZW1wbGF0ZXMgcmVsYXRlZCB0byBub2Rl CisKKyAgICAqIGRlcGVuZGVudHMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZGNp ZCk6CisgICAgICAtIFRoaXMgZnVuY3Rpb24gZ2V0IHRoZSBkZXBlbmRlbnRz IGFuZCByZXR1cm4gYWpheCByZXNwb25zZSBmb3IgdGhlIG5vZGUuCisKKyAg ICAqIGRlcGVuZGVuY2llcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBk Y2lkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRlcGVuZGVu Y2llcyBhbmQgcmV0dXJuIGFqYXggcmVzcG9uc2UgZm9yIG5vZGUuCisKKyAg ICAiIiIKKworICAgIG5vZGVfdHlwZSA9IGJsdWVwcmludC5ub2RlX3R5cGUK KworICAgIHBhcmVudF9pZHMgPSBbCisgICAgICAgIHsndHlwZSc6ICdpbnQn LCAnaWQnOiAnZ2lkJ30sCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQn OiAnc2lkJ30sCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZGlk J30sCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnc2NpZCd9Cisg ICAgXQorICAgIGlkcyA9IFsKKyAgICAgICAgeyd0eXBlJzogJ2ludCcsICdp ZCc6ICdkY2lkJ30KKyAgICBdCisKKyAgICBvcGVyYXRpb25zID0gZGljdCh7 CisgICAgICAgICdvYmonOiBbCisgICAgICAgICAgICB7J2dldCc6ICdwcm9w ZXJ0aWVzJywgJ2RlbGV0ZSc6ICdkZWxldGUnLCAncHV0JzogJ3VwZGF0ZSd9 LAorICAgICAgICAgICAgeydnZXQnOiAnbGlzdCcsICdwb3N0JzogJ2NyZWF0 ZSd9CisgICAgICAgIF0sCisgICAgICAgICdjaGlsZHJlbic6IFt7CisgICAg ICAgICAgICAnZ2V0JzogJ2NoaWxkcmVuJworICAgICAgICB9XSwKKyAgICAg ICAgJ2RlbGV0ZSc6IFt7J2RlbGV0ZSc6ICdkZWxldGUnfV0sCisgICAgICAg ICdub2Rlcyc6IFt7J2dldCc6ICdub2RlJ30sIHsnZ2V0JzogJ25vZGVzJ31d LAorICAgICAgICAnc3FsJzogW3snZ2V0JzogJ3NxbCd9XSwKKyAgICAgICAg J21zcWwnOiBbeydnZXQnOiAnbXNxbCd9LCB7J2dldCc6ICdtc3FsJ31dLAor ICAgICAgICAnc3RhdHMnOiBbeydnZXQnOiAnc3RhdGlzdGljcyd9XSwKKyAg ICAgICAgJ2RlcGVuZGVuY3knOiBbeydnZXQnOiAnZGVwZW5kZW5jaWVzJ31d LAorICAgICAgICAnZGVwZW5kZW50JzogW3snZ2V0JzogJ2RlcGVuZGVudHMn fV0sCisgICAgICAgICdtb2R1bGUuanMnOiBbe30sIHt9LCB7J2dldCc6ICdt b2R1bGVfanMnfV0sCisgICAgICAgICdmZXRjaF90ZW1wbGF0ZXMnOiBbeydn ZXQnOiAnZmV0Y2hfdGVtcGxhdGVzJ30sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgeydnZXQnOiAnZmV0Y2hfdGVtcGxhdGVzJ31dLAorICAgIH0p CisKKyAgICBkZWYgX2luaXRfKHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAg c2VsZi5jb25uID0gTm9uZQorICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGgg PSBOb25lCisgICAgICAgIHNlbGYubWFuYWdlciA9IE5vbmUKKyAgICAgICAg c3VwZXIoRnRzRGljdGlvbmFyeVZpZXcsIHNlbGYpLl9faW5pdF9fKCoqa3dh cmdzKQorCisgICAgZGVmIG1vZHVsZV9qcyhzZWxmKToKKyAgICAgICAgIiIi CisgICAgICAgIExvYWQgSlMgZmlsZSAoZnRzX2RpY3Rpb25hcnkuanMpIGZv ciB0aGlzIG1vZHVsZS4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBt YWtlX3Jlc3BvbnNlKAorICAgICAgICAgICAgcmVuZGVyX3RlbXBsYXRlKAor ICAgICAgICAgICAgICAgICJmdHNfZGljdGlvbmFyeS9qcy9mdHNfZGljdGlv bmFyeS5qcyIsCisgICAgICAgICAgICAgICAgXz1fCisgICAgICAgICAgICAp LAorICAgICAgICAgICAgMjAwLCB7J0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNh dGlvbi94LWphdmFzY3JpcHQnfQorICAgICAgICApCisKKyAgICBkZWYgY2hl Y2tfcHJlY29uZGl0aW9uKGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhp cyBmdW5jdGlvbiB3aWxsIGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3 aWxsIGNoZWNrcworICAgICAgICBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9y ZSBydW5uaW5nIHZpZXcsIGl0IHdpbGwgYWxzbyBhdHRhY2hlcworICAgICAg ICBtYW5hZ2VyLGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8g c2VsZgorICAgICAgICAiIiIKKworICAgICAgICBAd3JhcHMoZikKKyAgICAg ICAgZGVmIHdyYXAoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgICMg SGVyZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYga3dhcmdzIHdpbGwgaG9s ZCBnaWQsc2lkLGRpZAorICAgICAgICAgICAgc2VsZiA9IGFyZ3NbMF0KKyAg ICAgICAgICAgIHNlbGYubWFuYWdlciA9IGdldF9kcml2ZXIoUEdfREVGQVVM VF9EUklWRVIpLmNvbm5lY3Rpb25fbWFuYWdlcigKKyAgICAgICAgICAgICAg ICBrd2FyZ3NbJ3NpZCddKQorICAgICAgICAgICAgc2VsZi5jb25uID0gc2Vs Zi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAg ICAgICAgICAjIElmIERCIG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1cm4gZXJy b3IgdG8gYnJvd3NlcgorICAgICAgICAgICAgaWYgbm90IHNlbGYuY29ubi5j b25uZWN0ZWQoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0 aW9uX3JlcXVpcmVkKAorICAgICAgICAgICAgICAgICAgICBfKCJDb25uZWN0 aW9uIHRvIHRoZSBzZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiKQorICAgICAgICAg ICAgICAgICkKKyAgICAgICAgICAgICMgd2Ugd2lsbCBzZXQgdGVtcGxhdGUg cGF0aCBmb3Igc3FsIHNjcmlwdHMgZGVwZW5kaW5nIHVwb24gc2VydmVyIHZl cnNpb24KKyAgICAgICAgICAgIHZlciA9IHNlbGYubWFuYWdlci52ZXJzaW9u CisgICAgICAgICAgICBpZiB2ZXIgPj0gOTAxMDA6CisgICAgICAgICAgICAg ICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gJ2Z0c19kaWN0aW9uYXJ5L3NxbC85 LjFfcGx1cycKKyAgICAgICAgICAgIHJldHVybiBmKCphcmdzLCAqKmt3YXJn cykKKworICAgICAgICByZXR1cm4gd3JhcAorCisgICAgZGVmIHRva2VuaXpl X29wdGlvbnMoc2VsZiwgb3B0aW9uX3ZhbHVlKToKKyAgICAgICAgIiIiCisg ICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCB0b2tlbml6ZSB0aGUgc3RyaW5n IHN0b3JlZCBpbiBkYXRhYmFzZQorICAgICAgICBlLmcuIGRhdGFiYXNlIHN0 b3JlIHRoZSB2YWx1ZSBhcyBiZWxvdworICAgICAgICBrZXkxPXZhbHVlMSwg a2V5Mj12YWx1ZTIsIGtleTM9dmFsdWUzLCAuLi4uCisgICAgICAgIFRoaXMg ZnVuY3Rpb24gd2lsbCBleHRyYWN0IGtleSBhbmQgdmFsdWUgZnJvbSBhYm92 ZSBzdHJpbmcKKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgb3B0aW9u X3ZhbHVlOiBrZXkgdmFsdWUgb3B0aW9uL3ZhbHVlIHBhaXIgcmVhZCBmcm9t IGRhdGFiYXNlCisgICAgICAgICIiIgorICAgICAgICBpZiBvcHRpb25fdmFs dWUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBvcHRpb25fc3RyID0gb3B0 aW9uX3ZhbHVlLnNwbGl0KCcsJykKKyAgICAgICAgICAgIG9wdGlvbnMgPSBb XQorICAgICAgICAgICAgZm9yIGZkd19vcHRpb24gaW4gb3B0aW9uX3N0cjoK KyAgICAgICAgICAgICAgICBrLCB2ID0gZmR3X29wdGlvbi5zcGxpdCgnPScs IDEpCisgICAgICAgICAgICAgICAgb3B0aW9ucy5hcHBlbmQoeydvcHRpb24n OiBrLCAndmFsdWUnOiB2fSkKKyAgICAgICAgICAgIHJldHVybiBvcHRpb25z CisKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbGlzdChz ZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAgICAgIiIiCisgICAg ICAgIExpc3QgYWxsIEZUUyBEaWN0aW9uYXJ5IG5vZGVzLgorCisgICAgICAg IEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJZAorICAg ICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRpZDogRGF0 YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAorICAgICAg ICAiIiIKKworICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAg ICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVy dGllcy5zcWwnXSksCisgICAgICAgICAgICBzY2lkPXNjaWQKKyAgICAgICAg KQorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2Rp Y3Qoc3FsKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykK KworICAgICAgICBmb3Igcm93IGluIHJlc1sncm93cyddOgorICAgICAgICAg ICAgaWYgcm93WydvcHRpb25zJ10gaXMgbm90IE5vbmU6CisgICAgICAgICAg ICAgICAgcm93WydvcHRpb25zJ10gPSBzZWxmLnRva2VuaXplX29wdGlvbnMo cm93WydvcHRpb25zJ10pCisKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9u c2UoCisgICAgICAgICAgICByZXNwb25zZT1yZXNbJ3Jvd3MnXSwKKyAgICAg ICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgQGNoZWNrX3By ZWNvbmRpdGlvbgorICAgIGRlZiBub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlk LCBzY2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiBhbGwgRlRT IERpY3Rpb25hcmllcyB0byBnZW5lcmF0ZSBub2Rlcy4KKworICAgICAgICBB cmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSWQKKyAgICAg ICAgICAgIHNpZDogU2VydmVyIElkCisgICAgICAgICAgICBkaWQ6IERhdGFi YXNlIElkCisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAg IiIiCisKKyAgICAgICAgcmVzID0gW10KKyAgICAgICAgc3FsID0gcmVuZGVy X3RlbXBsYXRlKAorICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxh dGVfcGF0aCwgJ25vZGVzLnNxbCddKSwKKyAgICAgICAgICAgIHNjaWQ9c2Np ZAorICAgICAgICApCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29u bi5leGVjdXRlXzJkYXJyYXkoc3FsKQorICAgICAgICBpZiBub3Qgc3RhdHVz OgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1yc2V0KQorCisgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93 cyddOgorICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAg ICBzZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAg ICAgICAgICAgICAgICAgIHJvd1snb2lkJ10sCisgICAgICAgICAgICAgICAg ICAgIGRpZCwKKyAgICAgICAgICAgICAgICAgICAgcm93WyduYW1lJ10sCisg ICAgICAgICAgICAgICAgICAgIGljb249Imljb24tZnRzX2RpY3Rpb25hcnki CisgICAgICAgICAgICAgICAgKSkKKworICAgICAgICByZXR1cm4gbWFrZV9q c29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgZGF0YT1yZXMsCisgICAgICAg ICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKworICAgIEBjaGVja19wcmVj b25kaXRpb24KKyAgICBkZWYgbm9kZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBz Y2lkLCBkY2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiBGVFMg RGljdGlvbmFyeSBub2RlIHRvIGdlbmVyYXRlIG5vZGUKKworICAgICAgICBB cmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSWQKKyAgICAg ICAgICAgIHNpZDogU2VydmVyIElkCisgICAgICAgICAgICBkaWQ6IERhdGFi YXNlIElkCisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAg ICAgIGRjaWQ6IGZ0cyBkaWN0aW9uYXJ5IGlkCisgICAgICAgICIiIgorCisg ICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICIv Ii5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdub2Rlcy5zcWwnXSksCisg ICAgICAgICAgICBkY2lkPWRjaWQKKyAgICAgICAgKQorICAgICAgICBzdGF0 dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KHNxbCkKKyAg ICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKworICAgICAgICBp ZiBsZW4ocnNldFsncm93cyddKSA9PSAwOgorICAgICAgICAgICAgcmV0dXJu IGdvbmUoXygiIiIKKyAgICAgICAgICAgICAgICBDb3VsZCBub3QgZmluZCB0 aGUgZnRzIGRpY3Rpb25hcnkgbm9kZS4KKyAgICAgICAgICAgICAgICAiIiIp KQorCisgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAg ICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAg ICAgICBkYXRhPXNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9k ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvd1snb2lkJ10sCisgICAg ICAgICAgICAgICAgICAgICAgICBkaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICByb3dbJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlj b249Imljb24tZnRzX2RpY3Rpb25hcnkiCisgICAgICAgICAgICAgICAgICAg ICksCisgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAg KQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBwcm9wZXJ0 aWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRjaWQpOgorICAgICAg ICAiIiIKKyAgICAgICAgU2hvdyBwcm9wZXJ0aWVzIG9mIEZUUyBEaWN0aW9u YXJ5IG5vZGUKKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBT ZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElkCisg ICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgICAgICBzY2lk OiBTY2hlbWEgSWQKKyAgICAgICAgICAgIGRjaWQ6IGZ0cyBkaWN0aW9uYXJ5 IGlkCisgICAgICAgICIiIgorCisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1w bGF0ZSgKKyAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3Bh dGgsICdwcm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAgIHNjaWQ9c2Np ZCwKKyAgICAgICAgICAgIGRjaWQ9ZGNpZAorICAgICAgICApCisgICAgICAg IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChzcWwpCisK KyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAg IGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgIHJldHVy biBnb25lKF8oIiIiCisgICAgICAgICAgICAgICAgQ291bGQgbm90IGZpbmQg dGhlIGZ0cyBkaWN0aW9uYXJ5IG5vZGUuCisgICAgICAgICAgICAgICAgIiIi KSkKKworICAgICAgICBpZiByZXNbJ3Jvd3MnXVswXVsnb3B0aW9ucyddIGlz IG5vdCBOb25lOgorICAgICAgICAgICAgcmVzWydyb3dzJ11bMF1bJ29wdGlv bnMnXSA9IHNlbGYudG9rZW5pemVfb3B0aW9ucyhyZXNbJ3Jvd3MnXVswXVsn b3B0aW9ucyddKQorCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAor ICAgICAgICAgICAgcmVzcG9uc2U9cmVzWydyb3dzJ11bMF0sCisgICAgICAg ICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKworICAgIEBjaGVja19wcmVj b25kaXRpb24KKyAgICBkZWYgY3JlYXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQs IHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3 aWxsIGNyZWF0ZXMgbmV3IHRoZSBGVFMgRGljdGlvbmFyeSBvYmplY3QKKyAg ICAgICAgOnBhcmFtIGdpZDogZ3JvdXAgaWQKKyAgICAgICAgOnBhcmFtIHNp ZDogc2VydmVyIGlkCisgICAgICAgIDpwYXJhbSBkaWQ6IGRhdGFiYXNlIGlk CisgICAgICAgIDpwYXJhbSBzY2lkOiBzY2hlbWEgaWQKKyAgICAgICAgIiIi CisKKyAgICAgICAgIyBNYW5kYXRvcnkgZmllbGRzIHRvIGNyZWF0ZSBhIG5l dyBGVFMgRGljdGlvbmFyeQorICAgICAgICByZXF1aXJlZF9hcmdzID0gWwor ICAgICAgICAgICAgJ3RlbXBsYXRlJywKKyAgICAgICAgICAgICdzY2hlbWEn LAorICAgICAgICAgICAgJ25hbWUnCisgICAgICAgIF0KKworICAgICAgICBk YXRhID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVlc3QuZm9ybSBlbHNlIGpzb24u bG9hZHMoCisgICAgICAgICAgICByZXF1ZXN0LmRhdGEuZGVjb2RlKCkpCisg ICAgICAgIGZvciBhcmcgaW4gcmVxdWlyZWRfYXJnczoKKyAgICAgICAgICAg IGlmIGFyZyBub3QgaW4gZGF0YToKKyAgICAgICAgICAgICAgICByZXR1cm4g bWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICAgICBzdGF0 dXM9NDEwLAorICAgICAgICAgICAgICAgICAgICBzdWNjZXNzPTAsCisgICAg ICAgICAgICAgICAgICAgIGVycm9ybXNnPV8oCisgICAgICAgICAgICAgICAg ICAgICAgICAiQ291bGRuJ3QgZmluZCB0aGUgcmVxdWlyZWQgcGFyYW1ldGVy ICglcykuIiAlIGFyZworICAgICAgICAgICAgICAgICAgICApCisgICAgICAg ICAgICAgICAgKQorICAgICAgICB0cnk6CisgICAgICAgICAgICAjIEZldGNo IHNjaGVtYSBuYW1lIGZyb20gc2NoZW1hIG9pZAorICAgICAgICAgICAgc3Fs ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3Bh dGgsICdzY2hlbWEuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRhdGE9ZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25uPXNlbGYuY29ubiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICApCisKKyAgICAgICAgICAgIHN0YXR1cywgc2No ZW1hID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKHNxbCkKKyAgICAgICAg ICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zY2hlbWEpCisKKyAgICAg ICAgICAgICMgUmVwbGFjZSBzY2hlbWEgb2lkIHdpdGggc2NoZW1hIG5hbWUg YmVmb3JlIHBhc3NpbmcgdG8gY3JlYXRlLnNxbAorICAgICAgICAgICAgIyBU byBnZW5lcmF0ZSBwcm9wZXIgc3FsIHF1ZXJ5CisgICAgICAgICAgICBuZXdf ZGF0YSA9IGRhdGEuY29weSgpCisgICAgICAgICAgICBuZXdfZGF0YVsnc2No ZW1hJ10gPSBzY2hlbWEKKyAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1w bGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnY3JlYXRlLnNx bCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRh PW5ld19kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbm49c2VsZi5jb25uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25u LmV4ZWN1dGVfc2NhbGFyKHNxbCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0 dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l cnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgICMgV2UgbmVlZCBk Y2lkIHRvIGFkZCBvYmplY3QgaW4gdHJlZSBhdCBicm93c2VyLAorICAgICAg ICAgICAgIyBCZWxvdyBzcWwgd2lsbCBnaXZlIHRoZSBzYW1lCisgICAgICAg ICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAg Ii8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3Fs J10pLAorICAgICAgICAgICAgICAgIG5hbWU9ZGF0YVsnbmFtZSddCisgICAg ICAgICAgICApCisgICAgICAgICAgICBzdGF0dXMsIGRjaWQgPSBzZWxmLmNv bm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQorICAgICAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPWRjaWQpCisKKyAgICAgICAgICAgIHJldHVybiBq c29uaWZ5KAorICAgICAgICAgICAgICAgIG5vZGU9c2VsZi5ibHVlcHJpbnQu Z2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAgICAgICAgICAgICAgICBk Y2lkLAorICAgICAgICAgICAgICAgICAgICBkaWQsCisgICAgICAgICAgICAg ICAgICAgIGRhdGFbJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgaWNv bj0iaWNvbi1mdHNfZGljdGlvbmFyeSIKKyAgICAgICAgICAgICAgICApCisg ICAgICAgICAgICApCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToK KyAgICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5leGNlcHRpb24oZSkK KyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAg IGRlZiB1cGRhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZGNpZCk6 CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBk YXRlIEZUUyBEaWN0aW9uYXJ5IG9iamVjdAorICAgICAgICA6cGFyYW0gZ2lk OiBncm91cCBpZAorICAgICAgICA6cGFyYW0gc2lkOiBzZXJ2ZXIgaWQKKyAg ICAgICAgOnBhcmFtIGRpZDogZGF0YWJhc2UgaWQKKyAgICAgICAgOnBhcmFt IHNjaWQ6IHNjaGVtYSBpZAorICAgICAgICA6cGFyYW0gZGNpZDogZnRzIGRp Y3Rpb25hcnkgaWQKKyAgICAgICAgIiIiCisgICAgICAgIGRhdGEgPSByZXF1 ZXN0LmZvcm0gaWYgcmVxdWVzdC5mb3JtIGVsc2UganNvbi5sb2FkcygKKyAg ICAgICAgICAgIHJlcXVlc3QuZGF0YS5kZWNvZGUoKSkKKworICAgICAgICAj IEZldGNoIHNxbCBxdWVyeSB0byB1cGRhdGUgZnRzIGRpY3Rpb25hcnkKKyAg ICAgICAgc3FsID0gc2VsZi5nZXRfc3FsKGdpZCwgc2lkLCBkaWQsIHNjaWQs IGRhdGEsIGRjaWQpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIHNx bCBhbmQgc3FsLnN0cmlwKCdcbicpIGFuZCBzcWwuc3RyaXAoJyAnKToKKyAg ICAgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRl X3NjYWxhcihzcWwpCisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoK KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l cnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgICAgICBpZiBkY2lk IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICBzcWwgPSByZW5k ZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgICAgICAgICAiLyIuam9p bihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGllcy5zcWwnXSksCisg ICAgICAgICAgICAgICAgICAgICAgICBkY2lkPWRjaWQsCisgICAgICAgICAg ICAgICAgICAgICAgICBzY2lkPXNjaWQKKyAgICAgICAgICAgICAgICAgICAg ICApCisKKyAgICAgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29u bi5leGVjdXRlX2RpY3Qoc3FsKQorICAgICAgICAgICAgICAgIGlmIG5vdCBz dGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9z ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICAgICAg aWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgorICAgICAgICAgICAgICAgICAg ICByZXR1cm4gZ29uZShfKCIiIgorICAgICAgICAgICAgICAgICAgICAgICAg Q291bGQgbm90IGZpbmQgdGhlIGZ0cyBkaWN0aW9uYXJ5IG5vZGUgdG8gdXBk YXRlLgorICAgICAgICAgICAgICAgICAgICAiIiIpKQorCisgICAgICAgICAg ICAgICAgZGF0YSA9IHJlc1sncm93cyddWzBdCisgICAgICAgICAgICAgICAg cmV0dXJuIGpzb25pZnkoCisgICAgICAgICAgICAgICAgICAgICAgICBub2Rl PXNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkY2lkLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkYXRhWyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWNvbj0iaWNvbi1mdHNfZGljdGlvbmFyeSIKKyAgICAgICAgICAgICAgICAg ICAgICAgICkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAjIElu IGNhc2UgRlRTIERpY3Rpb25hcnkgbm9kZSBpcyBub3QgcHJlc2VudAorICAg ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFrZV9q c29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICAgICBzdWNjZXNzPTEs CisgICAgICAgICAgICAgICAgICAgIGluZm89Ik5vdGhpbmcgdG8gdXBkYXRl IiwKKyAgICAgICAgICAgICAgICAgICAgZGF0YT17CisgICAgICAgICAgICAg ICAgICAgICAgICAnaWQnOiBkY2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgJ3NpZCc6IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdnaWQn OiBnaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnZGlkJzogZGlkLAor ICAgICAgICAgICAgICAgICAgICAgICAgJ3NjaWQnOiBzY2lkCisgICAgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAg ZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgY3VycmVudF9h cHAubG9nZ2VyLmV4Y2VwdGlvbihlKQorICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBA Y2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGRlbGV0ZShzZWxmLCBnaWQs IHNpZCwgZGlkLCBzY2lkLCBkY2lkKToKKyAgICAgICAgIiIiCisgICAgICAg IFRoaXMgZnVuY3Rpb24gd2lsbCBkcm9wIHRoZSBGVFMgRGljdGlvbmFyeSBv YmplY3QKKyAgICAgICAgOnBhcmFtIGdpZDogZ3JvdXAgaWQKKyAgICAgICAg OnBhcmFtIHNpZDogc2VydmVyIGlkCisgICAgICAgIDpwYXJhbSBkaWQ6IGRh dGFiYXNlIGlkCisgICAgICAgIDpwYXJhbSBzY2lkOiBzY2hlbWEgaWQKKyAg ICAgICAgOnBhcmFtIGRjaWQ6IEZUUyBEaWN0aW9uYXJ5IGlkCisgICAgICAg ICIiIgorICAgICAgICAjIEJlbG93IHdpbGwgZGVjaWRlIGlmIGl0J3Mgc2lt cGxlIGRyb3Agb3IgZHJvcCB3aXRoIGNhc2NhZGUgY2FsbAorICAgICAgICBp ZiBzZWxmLmNtZCA9PSAnZGVsZXRlJzoKKyAgICAgICAgICAgICMgVGhpcyBp cyBhIGNhc2NhZGUgb3BlcmF0aW9uCisgICAgICAgICAgICBjYXNjYWRlID0g VHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY2FzY2FkZSA9IEZh bHNlCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBHZXQgbmFtZSBm b3IgRlRTIERpY3Rpb25hcnkgZnJvbSBkY2lkCisgICAgICAgICAgICBzcWwg PSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0 aCwgJ2RlbGV0ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGNpZD1kY2lkKQorICAgICAgICAgICAgc3RhdHVzLCByZXMg PSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKyAgICAgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIGlm IGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgICAgICAgICAg cmV0dXJuIGdvbmUoXygiIiIKKyAgICAgICAgICAgICAgICAgICAgICAgIENv dWxkIG5vdCBmaW5kIHRoZSBmdHMgZGljdGlvbmFyeSBub2RlIHRvIGRlbGV0 ZS4KKyAgICAgICAgICAgICAgICAgICAgIiIiKSkKKworICAgICAgICAgICAg IyBEcm9wIEZUUyBEaWN0aW9uYXJ5CisgICAgICAgICAgICByZXN1bHQgPSBy ZXNbJ3Jvd3MnXVswXQorICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBs YXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdkZWxldGUuc3Fs J10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9 cmVzdWx0WyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2NoZW1hPXJlc3VsdFsnc2NoZW1hJ10sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY2FzY2FkZT1jYXNjYWRlCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorCisgICAgICAgICAgICBz dGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihzcWwpCisg ICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJl dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisg ICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAg ICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICBpbmZvPV8o IkZUUyBEaWN0aW9uYXJ5IGRyb3BwZWQiKSwKKyAgICAgICAgICAgICAgICBk YXRhPXsKKyAgICAgICAgICAgICAgICAgICAgJ2lkJzogZGNpZCwKKyAgICAg ICAgICAgICAgICAgICAgJ3NpZCc6IHNpZCwKKyAgICAgICAgICAgICAgICAg ICAgJ2dpZCc6IGdpZCwKKyAgICAgICAgICAgICAgICAgICAgJ2RpZCc6IGRp ZCwKKyAgICAgICAgICAgICAgICAgICAgJ3NjaWQnOiBzY2lkCisgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgKQorCisgICAgICAgIGV4Y2VwdCBF eGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dl ci5leGNlcHRpb24oZSkKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9z ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3By ZWNvbmRpdGlvbgorICAgIGRlZiBtc3FsKHNlbGYsIGdpZCwgc2lkLCBkaWQs IHNjaWQsIGRjaWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlz IGZ1bmN0aW9uIHJldHVybnMgbW9kaWZpZWQgU1FMCisgICAgICAgIDpwYXJh bSBnaWQ6IGdyb3VwIGlkCisgICAgICAgIDpwYXJhbSBzaWQ6IHNlcnZlciBp ZAorICAgICAgICA6cGFyYW0gZGlkOiBkYXRhYmFzZSBpZAorICAgICAgICA6 cGFyYW0gc2NpZDogc2NoZW1hIGlkCisgICAgICAgIDpwYXJhbSBkY2lkOiBG VFMgRGljdGlvbmFyeSBpZAorICAgICAgICAiIiIKKyAgICAgICAgI2RhdGEg PSByZXF1ZXN0LmFyZ3MKKyAgICAgICAgZGF0YSA9IHt9CisgICAgICAgIGZv ciBrLCB2IGluIHJlcXVlc3QuYXJncy5pdGVtcygpOgorICAgICAgICAgICAg dHJ5OgorICAgICAgICAgICAgICAgIGRhdGFba10gPSBqc29uLmxvYWRzKHYp CisgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAg ICAgICBkYXRhW2tdID0gdgorCisgICAgICAgICMgRmV0Y2ggc3FsIHF1ZXJ5 IGZvciBtb2RpZmllZCBkYXRhCisgICAgICAgIHNxbCA9IHNlbGYuZ2V0X3Nx bChnaWQsIHNpZCwgZGlkLCBzY2lkLCBkYXRhLCBkY2lkKQorCisgICAgICAg IGlmIGlzaW5zdGFuY2Uoc3FsLCBzdHIpIGFuZCBzcWwgYW5kIHNxbC5zdHJp cCgnXG4nKSBhbmQgc3FsLnN0cmlwKCcgJyk6CisgICAgICAgICAgICByZXR1 cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIGRhdGE9 c3FsLAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAg ICkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pz b25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgZGF0YT0iLS1tb2RpZmll ZCBTUUwiLAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAg ICAgICkKKworICAgIGRlZiBnZXRfc3FsKHNlbGYsIGdpZCwgc2lkLCBkaWQs IHNjaWQsIGRhdGEsIGRjaWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAg ICBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIFNRTCBmb3IgbW9kZWwgZGF0 YQorICAgICAgICA6cGFyYW0gZ2lkOiBncm91cCBpZAorICAgICAgICA6cGFy YW0gc2lkOiBzZXJ2ZXIgaWQKKyAgICAgICAgOnBhcmFtIGRpZDogZGF0YWJh c2UgaWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IHNjaGVtYSBpZAorICAgICAg ICA6cGFyYW0gZGNpZDogZnRzIGRpY3Rpb25hcnkgaWQKKyAgICAgICAgIiIi CisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgRmV0Y2ggc3FsIGZvciB1 cGRhdGUKKyAgICAgICAgICAgIGlmIGRjaWQgaXMgbm90IE5vbmU6CisgICAg ICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAg ICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJv cGVydGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgIGRjaWQ9ZGNp ZCwKKyAgICAgICAgICAgICAgICAgICAgc2NpZD1zY2lkCisgICAgICAgICAg ICAgICAgKQorCisgICAgICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxm LmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKyAgICAgICAgICAgICAgICBpZiBu b3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAg ICAgIGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIGdvbmUoXygiIiIKKyAgICAgICAgICAgICAgICAgICAg ICAgIENvdWxkIG5vdCBmaW5kIHRoZSBmdHMgZGljdGlvbmFyeSBub2RlLgor ICAgICAgICAgICAgICAgICAgICAiIiIpKQorCisgICAgICAgICAgICAgICAg b2xkX2RhdGEgPSByZXNbJ3Jvd3MnXVswXQorCisgICAgICAgICAgICAgICAg IyBJZiB1c2VyIGhhcyBjaGFuZ2VkIHRoZSBzY2hlbWEgdGhlbiBmZXRjaCBu ZXcgc2NoZW1hIGRpcmVjdGx5CisgICAgICAgICAgICAgICAgIyB1c2luZyBp dHMgb2lkIG90aGVyd2lzZSBmZXRjaCBvbGQgc2NoZW1hIG5hbWUgdXNpbmcg aXRzIG9pZAorICAgICAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0 ZSgKKyAgICAgICAgICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxh dGVfcGF0aCwgJ3NjaGVtYS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAg IGRhdGE9ZGF0YSkKKworICAgICAgICAgICAgICAgIHN0YXR1cywgbmV3X3Nj aGVtYSA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihzcWwpCisgICAgICAg ICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICAgICAg cmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1uZXdfc2No ZW1hKQorCisgICAgICAgICAgICAgICAgIyBSZXBsYWNlIHNjaGVtYSBvaWQg d2l0aCBzY2hlbWEgbmFtZQorICAgICAgICAgICAgICAgIG5ld19kYXRhID0g ZGF0YS5jb3B5KCkKKyAgICAgICAgICAgICAgICBpZiAnc2NoZW1hJyBpbiBu ZXdfZGF0YToKKyAgICAgICAgICAgICAgICAgICAgbmV3X2RhdGFbJ3NjaGVt YSddID0gbmV3X3NjaGVtYQorCisgICAgICAgICAgICAgICAgIyBGZXRjaCBv bGQgc2NoZW1hIG5hbWUgdXNpbmcgb2xkIHNjaGVtYSBvaWQKKyAgICAgICAg ICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAg ICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdzY2hlbWEu c3FsJ10pLAorICAgICAgICAgICAgICAgICAgICBkYXRhPW9sZF9kYXRhKQor CisgICAgICAgICAgICAgICAgc3RhdHVzLCBvbGRfc2NoZW1hID0gc2VsZi5j b25uLmV4ZWN1dGVfc2NhbGFyKHNxbCkKKyAgICAgICAgICAgICAgICBpZiBu b3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPW9sZF9zY2hlbWEpCisKKyAgICAg ICAgICAgICAgICAjIFJlcGxhY2Ugb2xkIHNjaGVtYSBvaWQgd2l0aCBvbGQg c2NoZW1hIG5hbWUKKyAgICAgICAgICAgICAgICBvbGRfZGF0YVsnc2NoZW1h J10gPSBvbGRfc2NoZW1hCisKKyAgICAgICAgICAgICAgICBzcWwgPSByZW5k ZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgICAgICIvIi5qb2luKFtz ZWxmLnRlbXBsYXRlX3BhdGgsICd1cGRhdGUuc3FsJ10pLAorICAgICAgICAg ICAgICAgICAgICBkYXRhPW5ld19kYXRhLCBvX2RhdGE9b2xkX2RhdGEKKyAg ICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgIyBGZXRjaCBzcWwg cXVlcnkgZm9yIG1vZGlmaWVkIGRhdGEKKyAgICAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgICAgIyBGZXRjaCBzY2hlbWEgbmFtZSBmcm9tIHNjaGVt YSBvaWQKKyAgICAgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUo Ii8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NjaGVtYS5zcWwnXSks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9 ZGF0YSkKKworICAgICAgICAgICAgICAgIHN0YXR1cywgc2NoZW1hID0gc2Vs Zi5jb25uLmV4ZWN1dGVfc2NhbGFyKHNxbCkKKyAgICAgICAgICAgICAgICBp ZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXNjaGVtYSkKKworICAgICAg ICAgICAgICAgICMgUmVwbGFjZSBzY2hlbWEgb2lkIHdpdGggc2NoZW1hIG5h bWUKKyAgICAgICAgICAgICAgICBuZXdfZGF0YSA9IGRhdGEuY29weSgpCisg ICAgICAgICAgICAgICAgbmV3X2RhdGFbJ3NjaGVtYSddID0gc2NoZW1hCisK KyAgICAgICAgICAgICAgICBpZiAndGVtcGxhdGUnIGluIG5ld19kYXRhIGFu ZCBcCisgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZScgaW4gbmV3X2Rh dGEgYW5kIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICdzY2hlbWEnIGlu IG5ld19kYXRhOgorICAgICAgICAgICAgICAgICAgICBzcWwgPSByZW5kZXJf dGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnY3JlYXRlLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRhdGE9bmV3X2RhdGEsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uPXNlbGYuY29ubgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQor ICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHNx bCA9ICItLSBpbmNvbXBsZXRlIGRlZmluaXRpb24iCisgICAgICAgICAgICBy ZXR1cm4gc3RyKHNxbC5zdHJpcCgnXG4nKSkKKworICAgICAgICBleGNlcHQg RXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19w cmVjb25kaXRpb24KKyAgICBkZWYgZmV0Y2hfdGVtcGxhdGVzKHNlbGYsIGdp ZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhp cyBmdW5jdGlvbiB3aWxsIHJldHVybiB0ZW1wbGF0ZXMgbGlzdCBmb3IgRlRT IERpY3Rpb25hcnkKKyAgICAgICAgOnBhcmFtIGdpZDogZ3JvdXAgaWQKKyAg ICAgICAgOnBhcmFtIHNpZDogc2VydmVyIGlkCisgICAgICAgIDpwYXJhbSBk aWQ6IGRhdGFiYXNlIGlkCisgICAgICAgIDpwYXJhbSBzY2lkOiBzY2hlbWEg aWQKKyAgICAgICAgIiIiCisgICAgICAgICMgRmV0Y2ggbGFzdCBzeXN0ZW0g b2lkCisgICAgICAgIGRhdGxhc3RzeXNvaWQgPSBzZWxmLm1hbmFnZXIuZGJf aW5mb1tkaWRdWydkYXRsYXN0c3lzb2lkJ10KKworICAgICAgICBzcWwgPSBy ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwg J3RlbXBsYXRlcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0ZW1wbGF0ZT1UcnVlKQorICAgICAgICBzdGF0dXMsIHJzZXQgPSBz ZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKworICAgICAgICBpZiBub3Qg c3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l cnJvcihlcnJvcm1zZz1yc2V0KQorCisgICAgICAgICMgRW1wdHkgc2V0IGlz IGFkZGVkIGJlZm9yZSBhY3R1YWwgbGlzdCBhcyBpbml0aWFsbHkgaXQgd2ls bCBiZSB2aXNpYmxlCisgICAgICAgICMgYXQgdGVtcGxhdGUgY29udHJvbCB3 aGlsZSBjcmVhdGluZyBhIG5ldyBGVFMgRGljdGlvbmFyeQorICAgICAgICBy ZXMgPSBbeydsYWJlbCc6ICcnLCAndmFsdWUnOiAnJ31dCisgICAgICAgIGZv ciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgaWYgcm93Wydz Y2hlbWFvaWQnXSA+IGRhdGxhc3RzeXNvaWQgOgorICAgICAgICAgICAgICAg IHJvd1sndG1wbG5hbWUnXSA9IHJvd1snbnNwbmFtZSddICsgJy4nICsgcm93 Wyd0bXBsbmFtZSddCisKKyAgICAgICAgICAgIHJlcy5hcHBlbmQoeydsYWJl bCc6IHJvd1sndG1wbG5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICd2YWx1ZSc6IHJvd1sndG1wbG5hbWUnXX0pCisgICAgICAgIHJldHVybiBt YWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICBkYXRhPXJlcywKKyAg ICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgQGNoZWNr X3ByZWNvbmRpdGlvbgorICAgIGRlZiBzcWwoc2VsZiwgZ2lkLCBzaWQsIGRp ZCwgc2NpZCwgZGNpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1 bmN0aW9uIHdpbGwgcmV2ZXJzZSBnZW5lcmF0ZSBzcWwgZm9yIHNxbCBwYW5l bAorICAgICAgICA6cGFyYW0gZ2lkOiBncm91cCBpZAorICAgICAgICA6cGFy YW0gc2lkOiBzZXJ2ZXIgaWQKKyAgICAgICAgOnBhcmFtIGRpZDogZGF0YWJh c2UgaWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IHNjaGVtYSBpZAorICAgICAg ICA6cGFyYW0gZGNpZDogRlRTIERpY3Rpb25hcnkgaWQKKyAgICAgICAgIiIi CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1w bGF0ZSgKKyAgICAgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLCAnc3FsLnNxbCddKSwKKyAgICAgICAgICAgICAgICBkY2lkPWRj aWQsCisgICAgICAgICAgICAgICAgc2NpZD1zY2lkLAorICAgICAgICAgICAg ICAgIGNvbm49c2VsZi5jb25uCisgICAgICAgICAgICApCisgICAgICAgICAg ICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihzcWwp CisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoCisgICAgICAgICAgICAg ICAgICAgIF8oCisgICAgICAgICAgICAgICAgICAgICAgICAiRVJST1I6IENv dWxkbid0IGdlbmVyYXRlIHJldmVyc2VkIGVuZ2luZWVyZWQgUXVlcnkgZm9y IHRoZSBGVFMgRGljdGlvbmFyeSFcbnswfSIpLmZvcm1hdCgKKyAgICAgICAg ICAgICAgICAgICAgICAgIHJlcworICAgICAgICAgICAgICAgICAgICApCisg ICAgICAgICAgICAgICAgKQorCisgICAgICAgICAgICBpZiByZXMgaXMgTm9u ZToKKyAgICAgICAgICAgICAgICByZXR1cm4gZ29uZSgKKyAgICAgICAgICAg ICAgICAgICAgXygKKyAgICAgICAgICAgICAgICAgICAgICAgICJFUlJPUjog Q291bGRuJ3QgZ2VuZXJhdGUgcmV2ZXJzZWQgZW5naW5lZXJlZCBRdWVyeSBm b3IgRlRTIERpY3Rpb25hcnkgbm9kZSEiKQorICAgICAgICAgICAgICAgICkK KworICAgICAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UocmVzcG9uc2U9 cmVzKQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAg ICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5leGNlcHRpb24oZSkKKyAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBk ZXBlbmRlbnRzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRjaWQpOgor ICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRl cGVuZGVudHMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNlCisgICAgICAgIGZv ciB0aGUgRlRTIERpY3Rpb25hcnkgbm9kZS4KKworICAgICAgICBBcmdzOgor ICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAg IHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElE CisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAgIGRj aWQ6IEZUUyBEaWN0aW9uYXJ5IElECisgICAgICAgICIiIgorICAgICAgICBk ZXBlbmRlbnRzX3Jlc3VsdCA9IHNlbGYuZ2V0X2RlcGVuZGVudHMoc2VsZi5j b25uLCBkY2lkKQorICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAg ICAgICAgICAgICAgICByZXNwb25zZT1kZXBlbmRlbnRzX3Jlc3VsdCwKKyAg ICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgKQor CisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBkZXBlbmRlbmNp ZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZGNpZCk6CisgICAgICAg ICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdldCB0aGUgZGVwZW5kZW5j aWVzIGFuZCByZXR1cm4gYWpheCByZXNwb25zZQorICAgICAgICBmb3IgdGhl IEZUUyBEaWN0aW9uYXJ5IG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAg ICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6 IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAg ICAgICAgICAgc2NpZDogU2NoZW1hIElECisgICAgICAgICAgICBkY2lkOiBG VFMgRGljdGlvbmFyeSBJRAorICAgICAgICAiIiIKKyAgICAgICAgZGVwZW5k ZW5jaWVzX3Jlc3VsdCA9IHNlbGYuZ2V0X2RlcGVuZGVuY2llcyhzZWxmLmNv bm4sIGRjaWQpCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAg ICAgICAgICAgICAgIHJlc3BvbnNlPWRlcGVuZGVuY2llc19yZXN1bHQsCisg ICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkK KworRnRzRGljdGlvbmFyeVZpZXcucmVnaXN0ZXJfbm9kZV92aWV3KGJsdWVw cmludCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9u YXJpZXMvc3RhdGljL2ltZy9jb2xsLWZ0c19kaWN0aW9uYXJ5LnBuZyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9uYXJpZXMvc3RhdGljL2ltZy9jb2xs LWZ0c19kaWN0aW9uYXJ5LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h OTdlYjQ5YWYyODYxY2U3MTJkZWY4ZGI1MzhmNTgzMzAxMzYxYzc5CkdJVCBi aW5hcnkgcGF0Y2gKbGl0ZXJhbCAzNjIKemNtZUFTQE4/KG9sSHlgdVZCcSFp YTB2cF4wd0IhNjM/d3lsYEdiTCFRLUR2MUUwQ1ZGPCl+RVVzdFpSLT9ZbFNr CnpFS1dWVStkZzlZNHkoP01mayhmKD8paGxEe2tfa0AmbjZxKlhzPiohd0Rf NmlvWDNMR0E5NzgpRk9ieUYrSUtnNwp6eyteIyUrZUx0O0ZxUT1RMXY1QjJ5 TzlSdWEyOXcoNzZXTXlGbV5rY1oza3E7ZCU4Rz1OTClAbUA2RmVzen5kVUkK elZiOTFJYztrUUEpfXdvNy0xeT5tWmJqJVReSTFLVykwRUY5JT5EakVIQz5X UEZnTCVrRzBFcGVZbWU5KVIkVUtLCnotNG5jPVo9TzBadHQ/WlNhSiFTYGw8 NVNBeDZGb1QmY0ZRcGZBPW9OYFRKT1J0VDU3ZzU0MXxQIzVKTk1DOXgjYwp6 RCFDe1hOSEd7MDcjaXByOHRFRHNoOFApR25IWER7bX1uY0FTe1dFdiV2Njtf KFU2OztsOV5UcyhPX1QrKSZOcCUKWVduYyE7YUI2eiE4bFZPU1BnZyZlYnhz TFEwSCVrMnROO0syCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFyaWVzL3N0YXRpYy9p bWcvZnRzX2RpY3Rpb25hcnkucG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2Rp Y3Rpb25hcmllcy9zdGF0aWMvaW1nL2Z0c19kaWN0aW9uYXJ5LnBuZwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwLi41NWE4ODBiN2EwZTE0ZGIxNDMzYjkwZjU1 OWJlZWZkZDFkMzA3MWZiCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA2MzQK emNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4wd0IhNjM/d3lsYEdYbDQ3ekcx LUxSXjh8d3NuVzREcHhKc2ViUkslCnpScFcoTVpQd2coK3h5OVJfZVlEUipO bTNqd3ExTVFiTj9zVHkmbzsrb2wodX1TSStJJXBMMVMmIUE8OGlIJEM9IQp6 YV5DUztKJTU2QmB6RDJ+S0d9PzNvI2p1SUNaQ3pMPEFsWXV7a0ZAbUpNOD5t SXslX2xjQXdVaTZGUkczWUFrPUQKenZnRW5rXnM4RSgrbChnZUhDdWV1VilJ K1F4dDkmcnpTM1V4UWhvVWc8dDVNTDdlMUFxX2U1Z1NXJWFoTCtDOTdWCno9 M0xmYV5HYSp3T1NOUyRsb21nZVRrdXFCP2h+PXVrM3s8fkRLJjNhPkRadyo/ U2tzaz1aY0ctJHU0KipJcnAqbgp6IzdtUnNxe31zSWw0O3J8Sk1vOyV7M251 PUU+RTE1YiRwWkNoNWdvJikkMnJTd31gYko+WXR1LWJlLTRQLVMmJCUKemdA eyhJS2VmJGl7PGBxU0hIWVN8aUpFandhVVU+SDcpeWZ1ZipCbTEtQURzK0kx NC0/aS1FS1U3YHZVIXdnV08yCnpjKUI9LU5MPGM2Y2FgckBmQj8mZCtuUll0 QDd9IXwrcjlocWV8ZUBtN2FXQVk8QCUrV2QhTStVJFBneEBkVElUaAp6TUx6 MlNSPFNUJWt5X2gjUy1NQlFAbnBgJUJEMzl4VXBDRWRJe3h9SWA8c0lTN0Q3 djlrMzh5MyhWQmJtKns5WT0KeihHZ1FsUDBkPCtGSnMjKypAaXQhWkA9Ym1U bHxzYiFPS1hvJVF0SF92Vl5fbntkdUJuYHwqYnJSK21NISM2TWhACnpLRVFH UlVnTDU5Qzk7OGs9Qmg3XjVfbmtQQD0rUCtSQEQ7TWg/MTFWbDJvaFlxRXNO b1V9UnV1cGxmS1BZaFZ+Kwp6V01FfXRZLU03aVpENDk7VXw9eSpSU3JjJVpo bEg7U3x2bi1maEFaMk5WUyFMOEFRWFc+N2k/WThXPW9Ye2FuXkwKSEJ7VHM1 K0xhWXUKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9uYXJpZXMvdGVtcGxhdGVzL2Z0c19k aWN0aW9uYXJ5L2pzL2Z0c19kaWN0aW9uYXJ5LmpzIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnRzX2RpY3Rpb25hcmllcy90ZW1wbGF0ZXMvZnRzX2RpY3Rpb25hcnkv anMvZnRzX2RpY3Rpb25hcnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uNzQyN2JkNwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z0c19kaWN0aW9uYXJpZXMvdGVtcGxhdGVzL2Z0c19kaWN0 aW9uYXJ5L2pzL2Z0c19kaWN0aW9uYXJ5LmpzCkBAIC0wLDAgKzEsMTgzIEBA CitkZWZpbmUoCisgICAgICAgIFsnanF1ZXJ5JywgJ3VuZGVyc2NvcmUnLCAn dW5kZXJzY29yZS5zdHJpbmcnLCAncGdhZG1pbicsCisgICAgICAgICAncGdh ZG1pbi5icm93c2VyJywgJ2FsZXJ0aWZ5JywgJ3BnYWRtaW4uYnJvd3Nlci5j b2xsZWN0aW9uJ10sCitmdW5jdGlvbigkLCBfLCBTLCBwZ0FkbWluLCBwZ0Jy b3dzZXIsIGFsZXJ0aWZ5KSB7CisKKyAgLy8gRXh0ZW5kIHRoZSBicm93c2Vy J3Mgbm9kZSBtb2RlbCBjbGFzcyB0byBjcmVhdGUgYSBvcHRpb24vdmFsdWUg cGFpcgorICB2YXIgT3B0aW9uTGFiZWxNb2RlbCA9IHBnQWRtaW4uQnJvd3Nl ci5Ob2RlLk1vZGVsLmV4dGVuZCh7CisgICAgICAgIGRlZmF1bHRzOiB7Cisg ICAgICAgICAgb3B0aW9uczogdW5kZWZpbmVkLAorICAgICAgICAgIHZhbHVl OiB1bmRlZmluZWQKKyAgICAgICAgfSwKKyAgICAgICAgLy8gRGVmaW5lIHRo ZSBzY2hlbWEgZm9yIHRoZSBPcHRpb25zCisgICAgICAgIHNjaGVtYTogWwor ICAgICAgICAgIHsKKyAgICAgICAgICAgIGlkOiAnb3B0aW9uJywgbGFiZWw6 J09wdGlvbicsIHR5cGU6J3RleHQnLCBncm91cDogbnVsbCwKKyAgICAgICAg ICAgIGNlbGxIZWFkZXJDbGFzc2VzOid3aWR0aF9wZXJjZW50XzUwJywgZWRp dGFibGU6IHRydWUKKyAgICAgICAgICB9LHsKKyAgICAgICAgICAgIGlkOiAn dmFsdWUnLCBsYWJlbDonVmFsdWUnLCB0eXBlOiAndGV4dCcsIGdyb3VwOm51 bGwsCisgICAgICAgICAgICBjZWxsSGVhZGVyQ2xhc3Nlczond2lkdGhfcGVy Y2VudF81MCcsIGVkaXRhYmxlOiB0cnVlCisgICAgICAgICAgICB9LAorICAg ICAgICBdLAorICAgICAgICB2YWxpZGF0ZTogZnVuY3Rpb24oKSB7CisgICAg ICAgICAgICAvLyBDbGVhciBhbnkgZXhpc3RpbmcgZXJyb3JzLgorICAgICAg ICAgICAgdGhpcy5lcnJvck1vZGVsLmNsZWFyKCkKKworICAgICAgICAgICAg aWYgKF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ29wdGlvbicpKSB8fAorICAg ICAgICAgICAgICAgIFN0cmluZyh0aGlzLmdldCgnb3B0aW9uJykpLnJlcGxh Y2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAgICAg ICB2YXIgbXNnID0gJ3t7IF8oJ09wdGlvbiBjYW4gbm90IGJlIGVtcHR5IScp IH19JzsKKyAgICAgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0KCdv cHRpb24nLG1zZyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1zZzsKKyAg ICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKHRo aXMuZ2V0KCd2YWx1ZScpKSB8fAorICAgICAgICAgICAgICAgIFN0cmluZyh0 aGlzLmdldCgndmFsdWUnKSkucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9 PSAnJykgeworICAgICAgICAgICAgICAgIHZhciBtc2cgPSAne3sgXygnVmFs dWUgY2FuIG5vdCBiZSBlbXB0eSEnKSB9fSc7CisgICAgICAgICAgICAgICAg dGhpcy5lcnJvck1vZGVsLnNldCgndmFsdWUnLG1zZyk7CisgICAgICAgICAg ICAgICAgcmV0dXJuIG1zZzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg IHJldHVybiBudWxsOworICAgICAgICB9CisgICAgfSk7CisKKyAgLy8gRXh0 ZW5kIHRoZSBjb2xsZWN0aW9uIGNsYXNzIGZvciBGVFMgRGljdGlvbmFyeQor ICBpZiAoIXBnQnJvd3Nlci5Ob2Rlc1snY29sbC1mdHNfZGljdGlvbmFyeSdd KSB7CisgICAgdmFyIGZ0c19kaWN0aW9uYXJpZXMgPSBwZ0FkbWluLkJyb3dz ZXIuTm9kZXNbJ2NvbGwtZnRzX2RpY3Rpb25hcnknXSA9CisgICAgICBwZ0Fk bWluLkJyb3dzZXIuQ29sbGVjdGlvbi5leHRlbmQoeworICAgICAgICBub2Rl OiAnZnRzX2RpY3Rpb25hcnknLAorICAgICAgICBsYWJlbDogJ3t7IF8oJ0ZU UyBEaWN0aW9uYXJpZXMnKSB9fScsCisgICAgICAgIHR5cGU6ICdjb2xsLWZ0 c19kaWN0aW9uYXJ5JywKKyAgICAgICAgY29sdW1uczogWyduYW1lJywgJ2Rl c2NyaXB0aW9uJ10KKyAgICAgIH0pOworICB9OworCisgIC8vIEV4dGVuZCB0 aGUgbm9kZSBjbGFzcyBmb3IgRlRTIERpY3Rpb25hcnkKKyAgaWYgKCFwZ0Jy b3dzZXIuTm9kZXNbJ2Z0c19kaWN0aW9uYXJ5J10pIHsKKyAgICBwZ0FkbWlu LkJyb3dzZXIuTm9kZXNbJ2Z0c19kaWN0aW9uYXJ5J10gPSBwZ0FkbWluLkJy b3dzZXIuTm9kZS5leHRlbmQoeworICAgICAgcGFyZW50X3R5cGU6IFsnc2No ZW1hJywgJ2NhdGFsb2cnXSwKKyAgICAgIHR5cGU6ICdmdHNfZGljdGlvbmFy eScsCisgICAgICBjYW5Ecm9wOiB0cnVlLAorICAgICAgY2FuRHJvcENhc2Nh ZGU6IHRydWUsCisgICAgICBsYWJlbDogJ3t7IF8oJ0ZUUyBkaWN0aW9uYXJp ZXMnKSB9fScsCisgICAgICBoYXNTUUw6IHRydWUsCisgICAgICBoYXNEZXBl bmRzOiB0cnVlLAorICAgICAgSW5pdDogZnVuY3Rpb24oKSB7CisKKyAgICAg ICAgLy8gQXZvaWQgbXVsdGlwbGUgcmVnaXN0cmF0aW9uIG9mIG1lbnVzCisg ICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKQorICAgICAgICAgIHJldHVy bjsKKworICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTsKKworICAg ICAgICAvLyBBZGQgY29udGV4dCBtZW51cyBmb3IgRlRTIERpY3Rpb25hcnkK KyAgICAgICAgcGdCcm93c2VyLmFkZF9tZW51cyhbeworICAgICAgICAgIG5h bWU6ICdjcmVhdGVfZnRzX2RpY3Rpb25hcnlfb25fc2NoZW1hJywgbm9kZTog J3NjaGVtYScsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBb J29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJv cGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlv cml0eTogNCwgbGFiZWw6ICd7e18oJ0ZUUyBEaWN0aW9uYXJ5Li4uJyl9fScs CisgICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLWZ0c19kaWN0aW9u YXJ5JywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZSd9CisgICAgICAgICAgfSx7 CisgICAgICAgICAgbmFtZTogJ2NyZWF0ZV9mdHNfZGljdGlvbmFyeV9vbl9j b2xsJywgbm9kZTogJ2NvbGwtZnRzX2RpY3Rpb25hcnknLAorICAgICAgICAg IG1vZHVsZTogdGhpcywgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCdd LCAgcHJpb3JpdHk6IDQsCisgICAgICAgICAgY2FsbGJhY2s6ICdzaG93X29i al9wcm9wZXJ0aWVzJywgY2F0ZWdvcnk6ICdjcmVhdGUnLAorICAgICAgICAg IGxhYmVsOiAne3sgXygnRlRTIERpY3Rpb25hcnkuLi4nKSB9fScsIGRhdGE6 IHthY3Rpb246ICdjcmVhdGUnfSwKKyAgICAgICAgICBpY29uOiAnd2NUYWJJ Y29uIGljb24tZnRzX2RpY3Rpb25hcnknCisgICAgICAgICAgfSx7CisgICAg ICAgICAgbmFtZTogJ2NyZWF0ZV9mdHNfZGljdGlvbmFyeScsIG5vZGU6ICdm dHNfZGljdGlvbmFyeScsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBs aWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19v YmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUn LCBwcmlvcml0eTogNCwgbGFiZWw6ICd7e18oJ0ZUUyBEaWN0aW9uYXJ5Li4u Jyl9fScsCisgICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLWZ0c19k aWN0aW9uYXJ5JywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZSd9CisgICAgICAg ICAgfV0pOworICAgICAgfSwKKworICAgICAgLy8gRGVmaW5pbmcgYmFja2Zv cm0gbW9kZWwgZm9yIEZUUyBEaWN0aW9uYXJ5IG5vZGUKKyAgICAgIG1vZGVs OiBwZ0FkbWluLkJyb3dzZXIuTm9kZS5Nb2RlbC5leHRlbmQoeworICAgICAg ICBkZWZhdWx0czogeworICAgICAgICAgIG5hbWU6IHVuZGVmaW5lZCwgICAg ICAgIC8vIEZUUyBEaWN0aW9uYXJ5IG5hbWUKKyAgICAgICAgICBvd25lcjog dW5kZWZpbmVkLCAgICAgICAvLyBGVFMgRGljdGlvbmFyeSBvd25lcgorICAg ICAgICAgIGRlc2NyaXB0aW9uOiB1bmRlZmluZWQsIC8vIENvbW1lbnQgb24g RlRTIERpY3Rpb25hcnkKKyAgICAgICAgICBzY2hlbWE6IHVuZGVmaW5lZCwg ICAgICAvLyBTY2hlbWEgbmFtZSBGVFMgZGljdGlvbmFyeSBiZWxvbmdzIHRv CisgICAgICAgICAgdGVtcGxhdGU6IHVuZGVmaW5lZCwgICAgLy8gVGVtcGxh dGUgbGlzdCBmb3IgRlRTIGRpY3Rpb25hcnkgbm9kZQorICAgICAgICAgIG9w dGlvbnM6IHVuZGVmaW5lZCAgICAgIC8vIG9wdGlvbi92YWx1ZSBwYWlyIGxp c3QgZm9yIEZUUyBEaWN0aW9uYXJ5CisgICAgICAgIH0sCisgICAgICAgIGlu aXRpYWxpemU6IGZ1bmN0aW9uKGF0dHJzLCBhcmdzKSB7CisgICAgICAgICAg dmFyIGlzTmV3ID0gKF8uc2l6ZShhdHRycykgPT09IDApOworCisgICAgICAg ICAgaWYgKGlzTmV3KSB7CisgICAgICAgICAgICB2YXIgdXNlckluZm8gPSBw Z0Jyb3dzZXIuc2VydmVySW5mb1thcmdzLm5vZGVfaW5mby5zZXJ2ZXIuX2lk XS51c2VyOworICAgICAgICAgICAgdGhpcy5zZXQoeydvd25lcic6IHVzZXJJ bmZvLm5hbWV9LCB7c2lsZW50OiB0cnVlfSk7CisgICAgICAgICAgfQorICAg ICAgICAgIHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLnByb3RvdHlwZS5p bml0aWFsaXplLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CisgICAgICAgICAg aWYgKF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ3NjaGVtYScpKSkgeworICAg ICAgICAgICAgICB0aGlzLnNldCgnc2NoZW1hJywgdGhpcy5ub2RlX2luZm8u c2NoZW1hLl9pZCk7CisgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAg ICAvLyBEZWZpbmluZyBzY2hlbWEgZm9yIGZ0cyBkaWN0aW9uYXJ5CisgICAg ICAgIHNjaGVtYTogW3sKKyAgICAgICAgICBpZDogJ25hbWUnLCBsYWJlbDog J3t7IF8oJ05hbWUnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAg IHR5cGU6ICd0ZXh0JywgY2VsbEhlYWRlckNsYXNzZXM6ICd3aWR0aF9wZXJj ZW50XzUwJworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ29pZCcsIGxh YmVsOid7eyBfKCdPSUQnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAg ICAgIGVkaXRhYmxlOiBmYWxzZSwgdHlwZTogJ3RleHQnLCBkaXNhYmxlZDog dHJ1ZSwgbW9kZTpbJ3Byb3BlcnRpZXMnXQorICAgICAgICB9LHsKKyAgICAg ICAgICBpZDogJ293bmVyJywgbGFiZWw6J3t7IF8oJ093bmVyJykgfX0nLCBj ZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIG1vZGU6 IFsncHJvcGVydGllcycsICdlZGl0JywnY3JlYXRlJ10sIG5vZGU6ICdyb2xl JywKKyAgICAgICAgICBjb250cm9sOiBCYWNrZm9ybS5Ob2RlTGlzdEJ5TmFt ZUNvbnRyb2wKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdzY2hlbWEn LCBsYWJlbDogJ3t7IF8oJ1NjaGVtYScpfX0nLCBjZWxsOiAnc3RyaW5nJywK KyAgICAgICAgICB0eXBlOiAndGV4dCcsIG1vZGU6IFsnY3JlYXRlJywnZWRp dCddLCBub2RlOiAnc2NoZW1hJywKKyAgICAgICAgICBjb250cm9sOiAnbm9k ZS1saXN0LWJ5LWlkJworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2Rl c2NyaXB0aW9uJywgbGFiZWw6J3t7IF8oJ0NvbW1lbnQnKSB9fScsIGNlbGw6 ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICdtdWx0aWxpbmUnLCBjZWxs SGVhZGVyQ2xhc3NlczogJ3dpZHRoX3BlcmNlbnRfNTAnCisgICAgICAgIH0s eworICAgICAgICAgIGlkOiAndGVtcGxhdGUnLCBsYWJlbDogJ3t7IF8oJ1Rl bXBsYXRlJyl9fScsdHlwZTogJ3RleHQnLAorICAgICAgICAgIGRpc2FibGVk OiBmdW5jdGlvbihtKSB7IHJldHVybiAhbS5pc05ldygpOyB9LCB1cmw6ICdm ZXRjaF90ZW1wbGF0ZXMnLAorICAgICAgICAgICBncm91cDogJ3t7IF8oJ0Rl ZmluaXRpb24nKSB9fScsY29udHJvbDogJ25vZGUtYWpheC1vcHRpb25zJwor ICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ29wdGlvbnMnLCBsYWJlbDog J3t7IF8oJ09wdGlvbicpIH19JywgdHlwZTogJ2NvbGxlY3Rpb24nLAorICAg ICAgICAgIGdyb3VwOiAne3sgXygnT3B0aW9ucycpIH19JywgY29udHJvbDog J3VuaXF1ZS1jb2wtY29sbGVjdGlvbicsCisgICAgICAgICAgbW9kZWw6IE9w dGlvbkxhYmVsTW9kZWwsIGNvbHVtbnM6IFsnb3B0aW9uJywgJ3ZhbHVlJ10s CisgICAgICAgICAgdW5pcXVlQ29sIDogWydvcHRpb24nXSwgbW9kZTogWydl ZGl0JywgJ2NyZWF0ZScsICdwcm9wZXJ0aWVzJ10sCisgICAgICAgICAgY2Fu QWRkOiB0cnVlLCBjYW5FZGl0OiBmYWxzZSxjYW5EZWxldGU6IHRydWUKKyAg ICAgICAgIH1dLAorCisgICAgICAgIC8qCisgICAgICAgICAqIFRyaWdnZXJz IGNvbnRyb2wgc3BlY2lmaWMgZXJyb3IgbWVzc2FnZXMgZm9yIGRpY3Rpb25h cnkgbmFtZSwKKyAgICAgICAgICogdGVtcGxhdGUgYW5kIHNjaGVtYSwgaWYg YW55IG9uZSBvZiB0aGVtIGlzIG5vdCBzcGVjaWZpZWQKKyAgICAgICAgICog d2hpbGUgY3JlYXRpbmcgbmV3IGZ0cyBkaWN0aW9uYXJ5CisgICAgICAgICAq LworICAgICAgICB2YWxpZGF0ZTogZnVuY3Rpb24oa2V5cyl7CisgICAgICAg ICAgdmFyIG5hbWUgPSB0aGlzLmdldCgnbmFtZScpOworICAgICAgICAgIHZh ciB0ZW1wbGF0ZSA9IHRoaXMuZ2V0KCd0ZW1wbGF0ZScpOzsKKyAgICAgICAg ICB2YXIgc2NoZW1hID0gdGhpcy5nZXQoJ3NjaGVtYScpOworCisgICAgICAg ICAgLy8gVmFsaWRhdGUgRlRTIERpY3Rpb25hcnkgbmFtZQorICAgICAgICAg IGlmIChfLmlzVW5kZWZpbmVkKG5hbWUpIHx8IF8uaXNOdWxsKG5hbWUpIHx8 IFN0cmluZyhuYW1lKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcn KSB7CisgICAgICAgICAgICB2YXIgbXNnID0gJ3t7IF8oJ05hbWUgbXVzdCBi ZSBzcGVjaWZpZWQhJykgfX0nOworICAgICAgICAgICAgdGhpcy5lcnJvck1v ZGVsLnNldCgnbmFtZScsIG1zZyk7CisgICAgICAgICAgICByZXR1cm4gbXNn OworICAgICAgICAgIH0KKworICAgICAgICAgIC8vIFZhbGlkYXRlIHRlbXBs YXRlIG5hbWUKKyAgICAgICAgICBlbHNlIGlmIChfLmlzVW5kZWZpbmVkKHRl bXBsYXRlKSB8fCBfLmlzTnVsbCh0ZW1wbGF0ZSkgfHwgU3RyaW5nKHRlbXBs YXRlKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAg ICAgICAgICB2YXIgbXNnID0gJ3t7IF8oJ1RlbXBsYXRlIG11c3QgYmUgc2Vs ZWN0ZWQhJykgfX0nOworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNl dCgndGVtcGxhdGUnLCBtc2cpOworICAgICAgICAgICAgcmV0dXJuIG1zZzsK KyAgICAgICAgICB9CisKKyAgICAgICAgICAvLyBWYWxpZGF0ZSBzY2hlbWEK KyAgICAgICAgICBlbHNlIGlmIChfLmlzVW5kZWZpbmVkKHNjaGVtYSkgfHwg Xy5pc051bGwoc2NoZW1hKSB8fCBTdHJpbmcoc2NoZW1hKS5yZXBsYWNlKC9e XHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgICB2YXIgbXNn ID0gJ3t7IF8oJ1NjaGVtYSBtdXN0IGJlIHNlbGVjdGVkIScpIH19JzsKKyAg ICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ3NjaGVtYScsIG1zZyk7 CisgICAgICAgICAgICByZXR1cm4gbXNnOworICAgICAgICAgIH0KKyAgICAg ICAgICBlbHNlIHRoaXMuZXJyb3JNb2RlbC5jbGVhcigpOworCisgICAgICAg ICAgdGhpcy50cmlnZ2VyKCdvbi1zdGF0dXMtY2xlYXInKTsKKyAgICAgICAg ICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgfSkKKyAgICB9KTsK KyAgfQorCityZXR1cm4gcGdCcm93c2VyLk5vZGVzWydjb2xsLWZ0c19kaWN0 aW9uYXJ5J107Cit9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFyaWVzL3Rl bXBsYXRlcy9mdHNfZGljdGlvbmFyeS9zcWwvOS4xX3BsdXMvY3JlYXRlLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9uYXJpZXMvdGVtcGxhdGVz L2Z0c19kaWN0aW9uYXJ5L3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkMTE4N2MKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFyaWVz L3RlbXBsYXRlcy9mdHNfZGljdGlvbmFyeS9zcWwvOS4xX3BsdXMvY3JlYXRl LnNxbApAQCAtMCwwICsxLDE0IEBACit7IyBDUkVBVEUgRlRTIERJQ1RJT05B UlkgU3RhdGVtZW50ICN9Cit7JSBpZiBkYXRhIGFuZCBkYXRhLnNjaGVtYSBh bmQgZGF0YS5uYW1lIGFuZCBkYXRhLnRlbXBsYXRlICV9CitDUkVBVEUgVEVY VCBTRUFSQ0ggRElDVElPTkFSWSB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hl bWEsIGRhdGEubmFtZSkgfX0gKAorICAgIFRFTVBMQVRFID0gZGF0YS50ZW1w bGF0ZSB7JSBmb3IgdmFyaWFibGUgaW4gZGF0YS5vcHRpb25zICV9CisgICAg eyUgaWYgIm9wdGlvbnMiIGluIHZhcmlhYmxlIGFuZCB2YXJpYWJsZS5vcHRp b25zICE9ICcnICV9CisgICAgLHt7IGNvbm58cXRJZGVudCh2YXJpYWJsZS5v cHRpb25zKSB9fT17e3ZhcmlhYmxlLnZhbHVlfHF0TGl0ZXJhbH19CisgICAg eyUgZW5kaWYgJX0KKyAgICB7JSBlbmRmb3IgJX0KKyk7Cit7IyBEZXNjcmlw dGlvbiBmb3IgRlRTX0RJQ1RJT05BUlkgI30KK3slIGlmIGRhdGEuZGVzY3Jp cHRpb24gJX0KK0NPTU1FTlQgT04gVEVYVCBTRUFSQ0ggRElDVElPTkFSWSB7 eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KKyAg ICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFsIH19OworeyUg ZW5kaWYgJX17JSBlbmRpZiAlfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9uYXJp ZXMvdGVtcGxhdGVzL2Z0c19kaWN0aW9uYXJ5L3NxbC85LjFfcGx1cy9kZWxl dGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2RpY3Rpb25hcmllcy90ZW1w bGF0ZXMvZnRzX2RpY3Rpb25hcnkvc3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzM0NGE3ZAot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9u YXJpZXMvdGVtcGxhdGVzL2Z0c19kaWN0aW9uYXJ5L3NxbC85LjFfcGx1cy9k ZWxldGUuc3FsCkBAIC0wLDAgKzEsMjMgQEAKK3sjIEZFVENIIEZUUyBESUNU SU9OQVJZIE5BTUUgU3RhdGVtZW50ICN9Cit7JSBpZiBkY2lkICV9CitTRUxF Q1QKKyAgICBkaWN0LmRpY3RuYW1lIGFzIG5hbWUsCisgICAgKAorICAgIFNF TEVDVAorICAgICAgICBuc3BuYW1lCisgICAgRlJPTQorICAgICAgICBwZ19u YW1lc3BhY2UKKyAgICBXSEVSRQorICAgICAgICBvaWQgPSBkaWN0LmRpY3Ru YW1lc3BhY2UKKyAgICApIGFzIHNjaGVtYQorRlJPTQorICAgIHBnX3RzX2Rp Y3QgZGljdCBMRUZUIE9VVEVSIEpPSU4gcGdfZGVzY3JpcHRpb24gZGVzCisg ICAgT04gKGRlcy5vYmpvaWQ9ZGljdC5vaWQgQU5EIGRlcy5jbGFzc29pZD0n cGdfdHNfZGljdCc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBkaWN0Lm9pZCA9 IHt7ZGNpZH19OjpPSUQ7Cit7JSBlbmRpZiAlfQorCit7IyBEUk9QIEZUUyBE SUNUSU9BTlJZIFN0YXRlbWVudCAjfQoreyUgaWYgc2NoZW1hIGFuZCBuYW1l ICV9CitEUk9QIFRFWFQgU0VBUkNIIERJQ1RJT05BUlkge3tjb25ufHF0SWRl bnQoc2NoZW1hKX19Lnt7Y29ubnxxdElkZW50KG5hbWUpfX0geyUgaWYgY2Fz Y2FkZSAlfUNBU0NBREV7JWVuZGlmJX07Cit7JSBlbmRpZiAlfQpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z0c19kaWN0aW9uYXJpZXMvdGVtcGxhdGVzL2Z0c19kaWN0aW9uYXJ5 L3NxbC85LjFfcGx1cy9ub2Rlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNf ZGljdGlvbmFyaWVzL3RlbXBsYXRlcy9mdHNfZGljdGlvbmFyeS9zcWwvOS4x X3BsdXMvbm9kZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjc4YWJkMGIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdHNfZGljdGlvbmFyaWVzL3RlbXBsYXRlcy9mdHNfZGljdGlvbmFy eS9zcWwvOS4xX3BsdXMvbm9kZXMuc3FsCkBAIC0wLDAgKzEsMTMgQEAKK3sj IEZFVENIIEZUUyBESUNUSU9OQVJZIG5hbWUgc3RhdGVtZW50ICN9CitTRUxF Q1QKKyAgICBvaWQsIGRpY3RuYW1lIGFzIG5hbWUKK0ZST00KKyAgICBwZ190 c19kaWN0IGRpY3QKK1dIRVJFCit7JSBpZiBzY2lkICV9CisgICAgZGljdC5k aWN0bmFtZXNwYWNlID0ge3tzY2lkfX06Ok9JRAoreyUgZWxpZiBkY2lkICV9 CisgICAgZGljdC5vaWQgPSB7e3BpZH19OjpPSUQKK3slIGVuZGlmICV9CisK K09SREVSIEJZIG5hbWUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFyaWVzL3Rl bXBsYXRlcy9mdHNfZGljdGlvbmFyeS9zcWwvOS4xX3BsdXMvcHJvcGVydGll cy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFyaWVzL3RlbXBs YXRlcy9mdHNfZGljdGlvbmFyeS9zcWwvOS4xX3BsdXMvcHJvcGVydGllcy5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZlNTY0 NAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0 aW9uYXJpZXMvdGVtcGxhdGVzL2Z0c19kaWN0aW9uYXJ5L3NxbC85LjFfcGx1 cy9wcm9wZXJ0aWVzLnNxbApAQCAtMCwwICsxLDI0IEBACit7IyBGRVRDSCBw cm9wZXJ0aWVzIGZvciBGVFMgRElDVElPTkFSWSAjfQorU0VMRUNUCisgICAg ZGljdC5vaWQsCisgICAgZGljdC5kaWN0bmFtZSBhcyBuYW1lLAorICAgIHBn X2dldF91c2VyYnlpZChkaWN0LmRpY3Rvd25lcikgYXMgb3duZXIsCisgICAg dC50bXBsbmFtZSBhcyB0ZW1wbGF0ZSwKKyAgICBkaWN0LmRpY3Rpbml0b3B0 aW9uIGFzIG9wdGlvbnMsCisgICAgZGljdC5kaWN0bmFtZXNwYWNlIGFzIHNj aGVtYSwKKyAgICBkZXMuZGVzY3JpcHRpb24KK0ZST00KKyAgICBwZ190c19k aWN0IGRpY3QKKyAgICBMRUZUIE9VVEVSIEpPSU4gcGdfdHNfdGVtcGxhdGUg dCBPTiB0Lm9pZD1kaWN0LmRpY3R0ZW1wbGF0ZQorICAgIExFRlQgT1VURVIg Sk9JTiBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9ZGljdC5v aWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfdHNfZGljdCc6OnJlZ2NsYXNzKQor V0hFUkUKK3slIGlmIHNjaWQgJX0KKyAgICBkaWN0LmRpY3RuYW1lc3BhY2Ug PSB7e3NjaWR9fTo6T0lECit7JSBlbGlmIG5hbWUgJX0KK2RpY3QuZGljdG5h bWUgPSB7e25hbWV8cXRMaXRlcmFsfX0KK3slIGVuZGlmICV9Cit7JSBpZiBk Y2lkICV9CisgICAgQU5EIGRpY3Qub2lkID0ge3tkY2lkfX06Ok9JRAoreyUg ZW5kaWYgJX0KK09SREVSIEJZCisgICAgZGljdC5kaWN0bmFtZQpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z0c19kaWN0aW9uYXJpZXMvdGVtcGxhdGVzL2Z0c19kaWN0aW9uYXJ5 L3NxbC85LjFfcGx1cy9zY2hlbWEuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRz X2RpY3Rpb25hcmllcy90ZW1wbGF0ZXMvZnRzX2RpY3Rpb25hcnkvc3FsLzku MV9wbHVzL3NjaGVtYS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uMmEzOGU3ZgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z0c19kaWN0aW9uYXJpZXMvdGVtcGxhdGVzL2Z0c19kaWN0aW9u YXJ5L3NxbC85LjFfcGx1cy9zY2hlbWEuc3FsCkBAIC0wLDAgKzEsMTkgQEAK K3sjIEZFVENIIHN0YXRlbWVudCBmb3IgU0NIRU1BIG5hbWUgI30KK3slIGlm IGRhdGEuc2NoZW1hICV9CitTRUxFQ1QKKyAgICBuc3BuYW1lCitGUk9NCisg ICAgcGdfbmFtZXNwYWNlCitXSEVSRQorICAgIG9pZCA9IHt7ZGF0YS5zY2hl bWF9fTo6T0lECisKK3slIGVsaWYgZGF0YS5pZCAlfQorU0VMRUNUCisgICAg bnNwbmFtZQorRlJPTQorICAgIHBnX25hbWVzcGFjZSBuc3AKKyAgICBMRUZU IEpPSU4gcGdfdHNfZGljdCBkaWN0CisgICAgT04gZGljdC5kaWN0bmFtZXNw YWNlID0gbnNwLm9pZAorV0hFUkUKKyAgICBkaWN0Lm9pZCA9IHt7ZGF0YS5p ZH19OjpPSUQKK3slIGVuZGlmICV9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2RpY3Rpb25h cmllcy90ZW1wbGF0ZXMvZnRzX2RpY3Rpb25hcnkvc3FsLzkuMV9wbHVzL3Nx bC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFyaWVzL3RlbXBs YXRlcy9mdHNfZGljdGlvbmFyeS9zcWwvOS4xX3BsdXMvc3FsLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MjUzN2Y2Ci0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2RpY3Rpb25hcmll cy90ZW1wbGF0ZXMvZnRzX2RpY3Rpb25hcnkvc3FsLzkuMV9wbHVzL3NxbC5z cWwKQEAgLTAsMCArMSw1MiBAQAoreyMgUkVWRVJTRUQgRU5HSU5FRVJFRCBT UUwgRk9SIEZUUyBESUNUSU9OQVJZICN9Cit7JSBpZiBkY2lkIGFuZCBzY2lk ICV9CitTRUxFQ1QKKyAgICBhcnJheV90b19zdHJpbmcoYXJyYXlfYWdnKHNx bCksIEUnXG5cbicpIGFzIHNxbAorRlJPTQorICAgICgKKyAgICBTRUxFQ1QK KyAgICAgICAgRSctLSBUZXh0IFNlYXJjaCBEaWN0aW9uYXJ5OiAnIHx8IG5z cG5hbWUgfHwgRScuJyB8fCBkaWN0LmRpY3RuYW1lIHx8CisgICAgICAgIEUn XG5cbi0tIERST1AgVEVYVCBTRUFSQ0ggRElDVElPTkFSWSAnIHx8IG5zcG5h bWUgfHwgRScuJyB8fCBkaWN0LmRpY3RuYW1lIHx8CisgICAgICAgIEUnXG5c bkNSRUFURSBURVhUIFNFQVJDSCBESUNUSU9OQVJZICcgfHwgbnNwbmFtZSB8 fCBFJy4nIHx8ICBkaWN0LmRpY3RuYW1lIHx8IEUnIChcbicgfHwKKyAgICAg ICAgRSdcdFRFTVBMQVRFID0gJyB8fCB0ZW1wbGF0ZSB8fAorICAgICAgICBD QVNFCisgICAgICAgICAgICBXSEVOIGRpY3QuZGljdGluaXRvcHRpb24gSVMg Tk9UIE5VTEwgVEhFTiBFJyxcblx0JyB8fCBkaWN0LmRpY3Rpbml0b3B0aW9u CisgICAgICAgICAgICBFTFNFICcnCisgICAgICAgIEVORCB8fAorICAgICAg ICBFJ1xuKTsnIHx8CisgICAgICAgIENBU0UKKyAgICAgICAgICAgIFdIRU4g ZGVzY3JpcHRpb24gSVMgTk9UIE5VTEwgVEhFTgorICAgICAgICAgICAgICAg IEUnXG5cbkNPTU1FTlQgT04gVEVYVCBTRUFSQ0ggVEVNUExBVEUgJyB8fCBu c3BuYW1lIHx8IEUnLicgfHwgZGljdC5kaWN0bmFtZSB8fAorICAgICAgICAg ICAgICAgIEUnIElTICcgfHwgcGdfY2F0YWxvZy5xdW90ZV9saXRlcmFsKGRl c2NyaXB0aW9uKSB8fCBFJzsnCisgICAgICAgICAgICBFTFNFICcnICBFTkQg YXMgc3FsCisgICAgRlJPTQorICAgICAgICBwZ190c19kaWN0IGRpY3QKKyAg ICBMRUZUIEpPSU4oCisgICAgICAgIFNFTEVDVAorICAgICAgICAgICAgdC50 bXBsbmFtZSBhcyB0ZW1wbGF0ZSwKKyAgICAgICAgICAgIHQub2lkIGFzIG9p ZAorICAgICAgICBGUk9NCisgICAgICAgICAgICBwZ190c190ZW1wbGF0ZSB0 CisgICAgKSBkIG9uIGQub2lkID0gZGljdC5kaWN0dGVtcGxhdGUKKyAgICBM RUZUIEpPSU4gKAorICAgICAgICBTRUxFQ1QKKyAgICAgICAgICAgIGRlcy5k ZXNjcmlwdGlvbiBhcyBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIGRlcy5v YmpvaWQgYXMgZGVzY29pZAorICAgICAgICBGUk9NCisgICAgICAgICAgICBw Z19kZXNjcmlwdGlvbiBkZXMKKyAgICAgICAgV0hFUkUKKyAgICAgICAgICAg IGRlcy5vYmpvaWQ9e3tkY2lkfX06Ok9JRCBBTkQgZGVzLmNsYXNzb2lkPSdw Z190c19kaWN0Jzo6cmVnY2xhc3MKKyAgICApIGEgT04gKGEuZGVzY29pZCA9 IGRpY3Qub2lkKQorICAgIExFRlQgSk9JTiAoCisgICAgICAgIFNFTEVDVAor ICAgICAgICAgICAgbnNwbmFtZSwKKyAgICAgICAgICAgIG5zcC5vaWQgYXMg bm9pZAorICAgICAgICBGUk9NCisgICAgICAgICAgICBwZ19uYW1lc3BhY2Ug bnNwCisgICAgICAgIFdIRVJFCisgICAgICAgICAgICBvaWQgPSB7e3NjaWR9 fTo6T0lECisgICAgKSBiIE9OIChiLm5vaWQgPSBkaWN0LmRpY3RuYW1lc3Bh Y2UpCitXSEVSRQorICAgIGRpY3Qub2lkPXt7ZGNpZH19OjpPSUQKKykgYXMg YzsKK3slIGVuZGlmICV9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2RpY3Rpb25hcmllcy90 ZW1wbGF0ZXMvZnRzX2RpY3Rpb25hcnkvc3FsLzkuMV9wbHVzL3RlbXBsYXRl cy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFyaWVzL3RlbXBs YXRlcy9mdHNfZGljdGlvbmFyeS9zcWwvOS4xX3BsdXMvdGVtcGxhdGVzLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzI3MGJh Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2RpY3Rp b25hcmllcy90ZW1wbGF0ZXMvZnRzX2RpY3Rpb25hcnkvc3FsLzkuMV9wbHVz L3RlbXBsYXRlcy5zcWwKQEAgLTAsMCArMSwxMSBAQAoreyMgRkVUQ0ggdGVt cGxhdGVzIGZvciBGVFMgRElDVElPTkFSWSAjfQoreyUgaWYgdGVtcGxhdGUg JX0KK1NFTEVDVAorICAgIHRtcGxuYW1lLAorICAgIG5zcG5hbWUsCisgICAg bi5vaWQgYXMgc2NoZW1hb2lkCitGUk9NCisgICAgcGdfdHNfdGVtcGxhdGUg Sk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBuLm9pZD10bXBsbmFtZXNwYWNlCitP UkRFUiBCWQorICAgIHRtcGxuYW1lCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2RpY3Rpb25hcmllcy90ZW1wbGF0ZXMv ZnRzX2RpY3Rpb25hcnkvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFyaWVzL3RlbXBsYXRlcy9mdHNfZGlj dGlvbmFyeS9zcWwvOS4xX3BsdXMvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZWYxZWI0Ci0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2RpY3Rpb25hcmllcy90ZW1wbGF0 ZXMvZnRzX2RpY3Rpb25hcnkvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwKQEAg LTAsMCArMSw0MyBAQAoreyMgVVBEQVRFIHN0YXRlbWVudCBmb3IgRlRTIERJ Q1RJT05BUlkgI30KK3slIGlmIGRhdGEgJX0KK3slIHNldCBuYW1lID0gb19k YXRhLm5hbWUgJX0KK3slIHNldCBzY2hlbWEgPSBvX2RhdGEuc2NoZW1hICV9 Cit7JSBpZiBkYXRhLm5hbWUgYW5kIGRhdGEubmFtZSAhPSBvX2RhdGEubmFt ZSAlfQoreyUgc2V0IG5hbWUgPSBkYXRhLm5hbWUgJX0KK0FMVEVSIFRFWFQg U0VBUkNIIERJQ1RJT05BUlkge3tjb25ufHF0SWRlbnQob19kYXRhLnNjaGVt YSl9fS57e2Nvbm58cXRJZGVudChvX2RhdGEubmFtZSl9fQorICAgIFJFTkFN RSBUTyB7e2RhdGEubmFtZX19OworeyUgZW5kaWYgJX0KK3slIGlmICdvcHRp b25zJyBpbiBkYXRhJX0KK3slIGlmJ2NoYW5nZWQnIGluIGRhdGEub3B0aW9u cyAlfQoreyUgZm9yIG9wdCBpbiBkYXRhLm9wdGlvbnMuY2hhbmdlZCAlfQor QUxURVIgVEVYVCBTRUFSQ0ggRElDVElPTkFSWSB7e2Nvbm58cXRJZGVudChv X2RhdGEuc2NoZW1hKX19Lnt7Y29ubnxxdElkZW50KG5hbWUpfX0KKyAgICAo e3tvcHQub3B0aW9ufX09e3tvcHQudmFsdWV9fSk7Cit7JSBlbmRmb3IgJX0K K3slIGVuZGlmICV9Cit7JSBpZidhZGRlZCcgaW4gZGF0YS5vcHRpb25zJX0K K3slIGZvciBvcHQgaW4gZGF0YS5vcHRpb25zLmFkZGVkICV9CitBTFRFUiBU RVhUIFNFQVJDSCBESUNUSU9OQVJZIHt7Y29ubnxxdElkZW50KG9fZGF0YS5z Y2hlbWEpfX0ue3tjb25ufHF0SWRlbnQobmFtZSl9fQorICAgICh7e29wdC5v cHRpb259fT17e29wdC52YWx1ZX19KTsKK3slIGVuZGZvciAlfQoreyUgZW5k aWYgJX0KK3slIGlmJ2RlbGV0ZWQnIGluIGRhdGEub3B0aW9ucyV9Cit7JSBm b3Igb3B0IGluIGRhdGEub3B0aW9ucy5kZWxldGVkICV9CitBTFRFUiBURVhU IFNFQVJDSCBESUNUSU9OQVJZIHt7Y29ubnxxdElkZW50KG9fZGF0YS5zY2hl bWEpfX0ue3tjb25ufHF0SWRlbnQobmFtZSl9fQorICAgICh7e29wdC5vcHRp b259fSk7Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAl fQoreyUgaWYgJ293bmVyJyBpbiBkYXRhIGFuZCBkYXRhLm93bmVyICE9IG9f ZGF0YS5vd25lciAlfQorQUxURVIgVEVYVCBTRUFSQ0ggRElDVElPTkFSWSB7 e2Nvbm58cXRJZGVudChvX2RhdGEuc2NoZW1hKX19Lnt7Y29ubnxxdElkZW50 KG5hbWUpfX0KKyAgICBPV05FUiBUTyB7e2RhdGEub3duZXJ9fTsKK3slIGVu ZGlmICV9Cit7JSBpZiAnc2NoZW1hJyBpbiBkYXRhIGFuZCBkYXRhLnNjaGVt YSAhPSBvX2RhdGEuc2NoZW1hICV9Cit7JSBzZXQgc2NoZW1hID0gZGF0YS5z Y2hlbWElfQorQUxURVIgVEVYVCBTRUFSQ0ggRElDVElPTkFSWSB7e2Nvbm58 cXRJZGVudChvX2RhdGEuc2NoZW1hKX19Lnt7Y29ubnxxdElkZW50KG5hbWUp fX0KKyAgICBTRVQgU0NIRU1BIHt7ZGF0YS5zY2hlbWF9fTsKK3slIGVuZGlm ICV9Cit7JSBpZiAnZGVzY3JpcHRpb24nIGluIGRhdGEgYW5kIGRhdGEuZGVz Y3JpcHRpb24gIT0gb19kYXRhLmRlc2NyaXB0aW9uICV9CitDT01NRU5UIE9O IFRFWFQgU0VBUkNIIERJQ1RJT05BUlkge3tjb25ufHF0SWRlbnQoc2NoZW1h KX19Lnt7Y29ubnxxdElkZW50KG5hbWUpfX0KKyAgICBJUyB7eyBkYXRhLmRl c2NyaXB0aW9ufHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmICV9Cit7JSBlbmRp ZiAlfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK --001a1141dca29c6404053072e23e 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 --001a1141dca29c6404053072e23e--