Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1aYDGi-0001D0-5P for pgadmin-hackers@arkaria.postgresql.org; Tue, 23 Feb 2016 13:44:48 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aYDGh-0001t1-O9 for pgadmin-hackers@arkaria.postgresql.org; Tue, 23 Feb 2016 13:44:47 +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) (envelope-from ) id 1aYDGR-0001LF-OM for pgadmin-hackers@postgresql.org; Tue, 23 Feb 2016 13:44:32 +0000 Received: from mail-yw0-x22e.google.com ([2607:f8b0:4002:c05::22e]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1aYDGN-0004yp-QZ for pgadmin-hackers@postgresql.org; Tue, 23 Feb 2016 13:44:30 +0000 Received: by mail-yw0-x22e.google.com with SMTP id g127so146512657ywf.2 for ; Tue, 23 Feb 2016 05:44:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=ewyqFwW/SY/SB7wzRkjALH++u1CecHDs1Uiuu8xmipo=; b=K7Ku+H/I51QyycbuLwebic8d+qI5I72C/YrmdB0SkAH156tMZprEPkxl3LcfG4kNFS beGavaTmTIe3JYfOWzgPT3kK8GmGsEi8mU72lYrw2YEPuwLUyIsXXYfA0gFM/lxupqvc 2qBnyluamC9YjMoA96KoYGZJKOX0jrK9rNuhFENab3rcsPcX4MIJ9PnKTXrjeaMwlD0o JiO5zxhaKylnJpMVwGWLXpTHF+0ZFBxFXscKW4T+ccVhULTl/h2X7VzsckrjbAFmEwBg wr8MSDKbdIUePUitdltE1f6pu/wgTFT1vqem3QS7F5ustPcEnBBkIW1CgD4t0C+51s5d jBKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=ewyqFwW/SY/SB7wzRkjALH++u1CecHDs1Uiuu8xmipo=; b=KE1JsOb8rAH2WFGAyNkBOLiETq2GD/inpR0t2MFQ04SdWN0uSdvfhX815VhKrMmSIM udiyMzEq7s1i+pncLubBRW0LvdKe4UQ5qW6hGhsFuBq9H4/QIleKm/cdjbCcyKLkdixL +4sYL54vvAuxMGVatCfB5K546yEyICfo6nHRdVQf8zeSgR5m8APgdRfFhb3Kg4VCC0ZF U0+USpR0FB6L4xOsUM6CVsJi9973cPCsdJR+mWYptMz4+GqH+srFSDA0pDJ3HR4EL350 5+vW3/r7tAtokkQGFTPxY3DbxbGEa7agfbKFJiedhZ0wXLDavhYf2KAXR1TXcqvQihGz OKTA== X-Gm-Message-State: AG10YOQi2k1uLJiQPCUUFsCNTJjVl8BUbrOFb/jd0Hn3qLMwjljek2fpkNs0bX+u7GMeTgpu64HkJyWGFzx5y3Pz MIME-Version: 1.0 X-Received: by 10.129.82.15 with SMTP id g15mr16547203ywb.344.1456235067015; Tue, 23 Feb 2016 05:44:27 -0800 (PST) Received: by 10.13.207.199 with HTTP; Tue, 23 Feb 2016 05:44:26 -0800 (PST) In-Reply-To: References: Date: Tue, 23 Feb 2016 19:14:26 +0530 Message-ID: Subject: Re: PATCH: PGADMIN 4 - FTS templates node From: Sanket Mehta To: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a114dac44e15fa6052c70253d 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 --001a114dac44e15fa6052c70253d Content-Type: multipart/alternative; boundary=001a114dac44e15f9c052c70253b --001a114dac44e15f9c052c70253b Content-Type: text/plain; charset=UTF-8 Hi, PFA the revised patch for fts template node which includes dependency and dependent route handling code. Please do review it and if found proper please do commit it. Regards, Sanket Mehta Sr Software engineer Enterprisedb On Thu, Jan 28, 2016 at 7:21 PM, Sanket Mehta wrote: > Hi, > > I have created patch for "FTS Template" node in pgadmin4. > Please do review it and let me know in case anything is missing. > > Regards, > Sanket Mehta > Sr Software engineer > Enterprisedb > --001a114dac44e15f9c052c70253b Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

PFA the revised patch for fts t= emplate node which includes dependency and dependent route handling code.
Please do review it and if found proper please do commit it.

Regards,
Sanket Mehta
Sr Software e= ngineer
Enterprisedb

On Thu, Jan 28, 2016 at 7:21 PM, Sanket Meht= a <sanket.mehta@enterprisedb.com> wrote:
Hi,

I ha= ve created patch for "FTS Template" node in pgadmin4.
Pl= ease do review it and let me know in case anything is missing.

Regards,
Sanket Meht= a
Sr Software engineer
Enterprisedb

--001a114dac44e15f9c052c70253b-- --001a114dac44e15fa6052c70253d Content-Type: text/x-patch; charset=US-ASCII; name="fts_templatev2.patch" Content-Disposition: attachment; filename="fts_templatev2.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ikzgr8d71 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvX19p bml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL19faW5p dF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1 MzUwNDAKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNf dGVtcGxhdGVzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNzAwIEBACisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxNiwgVGhl IHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlz IHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyIiIkRlZmluZXMgdmll d3MgZm9yIG1hbmFnZW1lbnQgb2YgRnRzIFRlbXBsYXRlIG5vZGUiIiIKKwor aW1wb3J0IGpzb24KK2Zyb20gZmxhc2sgaW1wb3J0IHJlbmRlcl90ZW1wbGF0 ZSwgbWFrZV9yZXNwb25zZSwgY3VycmVudF9hcHAsIHJlcXVlc3QsIGpzb25p ZnkKK2Zyb20gZmxhc2suZXh0LmJhYmVsIGltcG9ydCBnZXR0ZXh0Citmcm9t IHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNl LCBcCisgICAgbWFrZV9yZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlLCBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IKK2Zyb20gcGdhZG1pbi5icm93c2VyLnV0aWxz IGltcG9ydCBQR0NoaWxkTm9kZVZpZXcKK2Zyb20gcGdhZG1pbi5icm93c2Vy LmNvbGxlY3Rpb24gaW1wb3J0IENvbGxlY3Rpb25Ob2RlTW9kdWxlCitpbXBv cnQgcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMuc2NoZW1hcyBhcyBzY2hlbWFzCitmcm9tIHBnYWRtaW4udXRpbHMu YWpheCBpbXBvcnQgcHJlY29uZGl0aW9uX3JlcXVpcmVkCitmcm9tIHBnYWRt aW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCitmcm9tIGNvbmZp ZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKK2Zyb20gZnVuY3Rvb2xzIGlt cG9ydCB3cmFwcworCisKK2NsYXNzIEZ0c1RlbXBsYXRlTW9kdWxlKENvbGxl Y3Rpb25Ob2RlTW9kdWxlKToKKyAgICAiIiIKKyAgICAgY2xhc3MgRnRzVGVt cGxhdGVNb2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUpCisKKyAgICAgICAg QSBtb2R1bGUgY2xhc3MgZm9yIEZUUyBUZW1wbGF0ZSBub2RlIGRlcml2ZWQg ZnJvbSBDb2xsZWN0aW9uTm9kZU1vZHVsZS4KKworICAgIE1ldGhvZHM6Cisg ICAgLS0tLS0tLQorICAgICogX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQor ICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZSBGdHNU ZW1wbGF0ZU1vZHVsZSBhbmQgaXQncyBiYXNlIG1vZHVsZS4KKworICAgICog Z2V0X25vZGVzKGdpZCwgc2lkLCBkaWQsIHNjaWQpCisgICAgICAtIE1ldGhv ZCBpcyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBicm93c2VyIGNvbGxlY3Rpb24g bm9kZS4KKworICAgICogbm9kZV9pbm9kZSgpCisgICAgICAtIE1ldGhvZCBp cyBvdmVycmlkZGVuIGZyb20gaXRzIGJhc2UgY2xhc3MgdG8gbWFrZSB0aGUg bm9kZSBhcyBsZWFmIG5vZGUuCisKKyAgICAqIHNjcmlwdF9sb2FkKCkKKyAg ICAgIC0gTG9hZCB0aGUgbW9kdWxlIHNjcmlwdCBmb3IgRlRTIFRlbXBsYXRl LCB3aGVuIGFueSBvZiB0aGUgc2NoZW1hIG5vZGUgaXMKKyAgICAgICAgaW5p dGlhbGl6ZWQuCisgICAgIiIiCisgICAgTk9ERV9UWVBFID0gJ2Z0c190ZW1w bGF0ZScKKyAgICBDT0xMRUNUSU9OX0xBQkVMID0gZ2V0dGV4dCgnRnRzIFRl bXBsYXRlcycpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoq a3dhcmdzKToKKyAgICAgICAgc2VsZi5taW5fdmVyID0gTm9uZQorICAgICAg ICBzZWxmLm1heF92ZXIgPSBOb25lCisgICAgICAgIHN1cGVyKEZ0c1RlbXBs YXRlTW9kdWxlLCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisK KyAgICBkZWYgZ2V0X25vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQp OgorICAgICAgICAiIiIKKyAgICAgICAgR2VuZXJhdGUgdGhlIGNvbGxlY3Rp b24gbm9kZQorICAgICAgICA6cGFyYW0gZ2lkOiBncm91cCBpZAorICAgICAg ICA6cGFyYW0gc2lkOiBzZXJ2ZXIgaWQKKyAgICAgICAgOnBhcmFtIGRpZDog ZGF0YWJhc2UgaWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IHNjaGVtYSBpZAor ICAgICAgICAiIiIKKyAgICAgICAgeWllbGQgc2VsZi5nZW5lcmF0ZV9icm93 c2VyX2NvbGxlY3Rpb25fbm9kZShzY2lkKQorCisgICAgQHByb3BlcnR5Cisg ICAgZGVmIG5vZGVfaW5vZGUoc2VsZik6CisgICAgICAgICIiIgorICAgICAg ICBPdmVycmlkZSB0aGUgcHJvcGVydHkgdG8gbWFrZSB0aGUgbm9kZSBhcyBs ZWFmIG5vZGUKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBGYWxzZQor CisgICAgQHByb3BlcnR5CisgICAgZGVmIHNjcmlwdF9sb2FkKHNlbGYpOgor ICAgICAgICAiIiIKKyAgICAgICAgTG9hZCB0aGUgbW9kdWxlIHNjcmlwdCBm b3IgZnRzIHRlbXBsYXRlLCB3aGVuIGFueSBvZiB0aGUgc2NoZW1hIG5vZGUg aXMKKyAgICAgICAgaW5pdGlhbGl6ZWQuCisgICAgICAgICIiIgorICAgICAg ICByZXR1cm4gc2NoZW1hcy5TY2hlbWFNb2R1bGUuTk9ERV9UWVBFCisKKwor Ymx1ZXByaW50ID0gRnRzVGVtcGxhdGVNb2R1bGUoX19uYW1lX18pCisKKwor Y2xhc3MgRnRzVGVtcGxhdGVWaWV3KFBHQ2hpbGROb2RlVmlldyk6CisgICAg IiIiCisgICAgY2xhc3MgRnRzVGVtcGxhdGVWaWV3KFBHQ2hpbGROb2RlVmll dykKKworICAgICAgICBBIHZpZXcgY2xhc3MgZm9yIEZUUyBUZW1wYWx0ZSBu b2RlIGRlcml2ZWQgZnJvbSBQR0NoaWxkTm9kZVZpZXcuIFRoaXMgY2xhc3Mg aXMKKyAgICAgICAgcmVzcG9uc2libGUgZm9yIGFsbCB0aGUgc3R1ZmYgcmVs YXRlZCB0byB2aWV3IGxpa2UgY3JlYXRlL3VwZGF0ZS9kZWxldGUKKyAgICAg ICAgRlRTIHRlbXBsYXRlLCBzaG93aW5nIHByb3BlcnRpZXMgb2Ygbm9kZSwg c2hvd2luZyBzcWwgaW4gc3FsIHBhbmUuCisKKyAgICBNZXRob2RzOgorICAg IC0tLS0tLS0KKyAgICAqIF9faW5pdF9fKCoqa3dhcmdzKQorICAgICAgLSBN ZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZSBGdHNUZW1wbGF0ZVZp ZXcgYW5kIGl0J3MgYmFzZSB2aWV3LgorCisgICAgKiBtb2R1bGVfanMoKQor ICAgICAgLSBUaGlzIHByb3BlcnR5IGRlZmluZXMgKGlmIGphdmFzY3JpcHQp IGV4aXN0cyBmb3IgdGhpcyBub2RlLgorICAgICAgICBPdmVycmlkZSB0aGlz IHByb3BlcnR5IGZvciB5b3VyIG93biBsb2dpYworCisgICAgKiBjaGVja19w cmVjb25kaXRpb24oKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgYmVo YXZlIGFzIGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwgY2hlY2tzCisgICAgICAg IGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVmb3JlIHJ1bm5pbmcgdmlldywgaXQg d2lsbCBhbHNvIGF0dGFjaGVzCisgICAgICAgIG1hbmFnZXIsY29ubiAmIHRl bXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxmCisKKyAgICAqIGxpc3Qo KQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gbGlzdCBhbGwg dGhlICBub2RlcyB3aXRoaW4gdGhhdCBjb2xsZWN0aW9uLgorCisgICAgKiBu b2RlcygpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCB1c2VkIHRvIGNy ZWF0ZSBhbGwgdGhlIGNoaWxkIG5vZGUgd2l0aGluIHRoYXQgY29sbGVjdGlv bi4KKyAgICAgICAgSGVyZSBpdCB3aWxsIGNyZWF0ZSBhbGwgdGhlIEZUUyBU ZW1wbGF0ZSBub2Rlcy4KKworICAgICogcHJvcGVydGllcyhnaWQsIHNpZCwg ZGlkLCByZ19pZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIHNob3cg dGhlIHByb3BlcnRpZXMgb2YgdGhlIHNlbGVjdGVkIEZUUyBUZW1wbGF0ZSBu b2RlCisKKyAgICAqIGNyZWF0ZShnaWQsIHNpZCwgZGlkLCByZ19pZCkKKyAg ICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZSB0aGUgbmV3IEZUUyBU ZW1wbGF0ZSBvYmplY3QKKworICAgICogdXBkYXRlKGdpZCwgc2lkLCBkaWQs IHJnX2lkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHRo ZSBkYXRhIGZvciB0aGUgc2VsZWN0ZWQgRlRTIFRlbXBsYXRlIG5vZGUKKwor ICAgICogZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCByZ19pZCk6CisgICAgICAt IFRoaXMgZnVuY3Rpb24gd2lsbCBkcm9wIHRoZSBGVFMgVGVtcGxhdGUgb2Jq ZWN0CisKKyAgICAqIG1zcWwoZ2lkLCBzaWQsIGRpZCwgcmdfaWQpCisgICAg ICAtIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byByZXR1cm4gbW9kaWZpZWQg U1FMIGZvciB0aGUgc2VsZWN0ZWQgRlRTIFRlbXBsYXRlIG5vZGUKKworICAg ICogZ2V0X3NxbChkYXRhLCByZ19pZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlv biB3aWxsIGdlbmVyYXRlIHNxbCBmcm9tIG1vZGVsIGRhdGEKKworICAgICog c3FsKGdpZCwgc2lkLCBkaWQsIHJnX2lkKToKKyAgICAgIC0gVGhpcyBmdW5j dGlvbiB3aWxsIGdlbmVyYXRlIHNxbCB0byBzaG93IGl0IGluIHNxbCBwYW5l IGZvciB0aGUgc2VsZWN0ZWQgRlRTIFRlbXBsYXRlIG5vZGUuCisKKyAgICAq IGdldF90eXBlKCk6CisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBmZXRj aCBhbGwgdGhlIHR5cGVzIGZvciBzb3VyY2UgYW5kIHRhcmdldCB0eXBlcyBz ZWxlY3QgY29udHJvbC4KKworICAgICogZ2V0X2Z1bmN0aW9ucygpOgorICAg ICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggYXNzb2NpYXRlZCBmdW5j dGlvbnMgbGlzdCBkZXBlbmRpbmcgb24gc2VsZWN0ZWQgc291cmNlCisgICAg ICAgIGFuZCB0YXJnZXQgdHlwZXMgd2hpbGUgY3JlYXRpbmcgYSBuZXcgRlRT IFRlbXBsYXRlIG5vZGUuCisKKyAgICAqIGRlcGVuZGVudHMoZ2lkLCBzaWQs IGRpZCwgbGlkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRl cGVuZGVudHMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNlIGZvciB0aGUgRnRz IFRlbXBhbHRlIG5vZGUuCisKKyAgICAqIGRlcGVuZGVuY2llcyhzZWxmLCBn aWQsIHNpZCwgZGlkLCBsaWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIGdl dCB0aGUgZGVwZW5kZW5jaWVzIGFuZCByZXR1cm4gYWpheCByZXNwb25zZSBm b3IgdGhlIEZUUyBUZW1wYWx0ZSBub2RlLgorCisgICAgIiIiCisKKyAgICBu b2RlX3R5cGUgPSBibHVlcHJpbnQubm9kZV90eXBlCisKKyAgICBwYXJlbnRf aWRzID0gWworICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ2dpZCd9 LAorICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3NpZCd9LAorICAg ICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ2RpZCd9LAorICAgICAgICB7 J3R5cGUnOiAnaW50JywgJ2lkJzogJ3NjaWQnfQorICAgIF0KKyAgICBpZHMg PSBbCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAndGlkJ30KKyAg ICBdCisKKyAgICBvcGVyYXRpb25zID0gZGljdCh7CisgICAgICAgICdvYmon OiBbCisgICAgICAgICAgICB7J2dldCc6ICdwcm9wZXJ0aWVzJywgJ2RlbGV0 ZSc6ICdkZWxldGUnLCAncHV0JzogJ3VwZGF0ZSd9LAorICAgICAgICAgICAg eydnZXQnOiAnbGlzdCcsICdwb3N0JzogJ2NyZWF0ZSd9CisgICAgICAgIF0s CisgICAgICAgICdjaGlsZHJlbic6IFt7CisgICAgICAgICAgICAnZ2V0Jzog J2NoaWxkcmVuJworICAgICAgICB9XSwKKyAgICAgICAgJ2RlbGV0ZSc6IFt7 J2RlbGV0ZSc6ICdkZWxldGUnfV0sCisgICAgICAgICdub2Rlcyc6IFt7J2dl dCc6ICdub2RlJ30sIHsnZ2V0JzogJ25vZGVzJ31dLAorICAgICAgICAnc3Fs JzogW3snZ2V0JzogJ3NxbCd9XSwKKyAgICAgICAgJ21zcWwnOiBbeydnZXQn OiAnbXNxbCd9LCB7J2dldCc6ICdtc3FsJ31dLAorICAgICAgICAnc3RhdHMn OiBbeydnZXQnOiAnc3RhdGlzdGljcyd9XSwKKyAgICAgICAgJ2RlcGVuZGVu Y3knOiBbeydnZXQnOiAnZGVwZW5kZW5jaWVzJ31dLAorICAgICAgICAnZGVw ZW5kZW50JzogW3snZ2V0JzogJ2RlcGVuZGVudHMnfV0sCisgICAgICAgICdt b2R1bGUuanMnOiBbe30sIHt9LCB7J2dldCc6ICdtb2R1bGVfanMnfV0sCisg ICAgICAgICdnZXRfbGV4aXplJzogW3snZ2V0JzogJ2dldF9sZXhpemUnfSwg eydnZXQnOiAnZ2V0X2xleGl6ZSd9XSwKKyAgICAgICAgJ2dldF9pbml0Jzog W3snZ2V0JzogJ2dldF9pbml0J30sIHsnZ2V0JzogJ2dldF9pbml0J31dLAor ICAgIH0pCisKKyAgICBkZWYgX2luaXRfKHNlbGYsICoqa3dhcmdzKToKKyAg ICAgICAgc2VsZi5jb25uID0gTm9uZQorICAgICAgICBzZWxmLnRlbXBsYXRl X3BhdGggPSBOb25lCisgICAgICAgIHNlbGYubWFuYWdlciA9IE5vbmUKKyAg ICAgICAgc3VwZXIoRnRzVGVtcGxhdGVWaWV3LCBzZWxmKS5fX2luaXRfXygq Kmt3YXJncykKKworICAgIGRlZiBtb2R1bGVfanMoc2VsZik6CisgICAgICAg ICIiIgorICAgICAgICBUaGlzIHByb3BlcnR5IGRlZmluZXMgd2hldGhlciBq YXZhc2NyaXB0IGV4aXN0cyBmb3IgdGhpcyBub2RlLgorICAgICAgICAiIiIK KyAgICAgICAgcmV0dXJuIG1ha2VfcmVzcG9uc2UoCisgICAgICAgICAgICBy ZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgImZ0c190ZW1wbGF0 ZS9qcy9mdHNfdGVtcGxhdGVzLmpzIiwKKyAgICAgICAgICAgICAgICBfPWdl dHRleHQKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAyMDAsIHsnQ29u dGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCd9CisgICAg ICAgICkKKworICAgIGRlZiBjaGVja19wcmVjb25kaXRpb24oZik6CisgICAg ICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgYmVoYXZlIGFz IGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwgY2hlY2tzCisgICAgICAgIGRhdGFi YXNlIGNvbm5lY3Rpb24gYmVmb3JlIHJ1bm5pbmcgdmlldywgaXQgd2lsbCBh bHNvIGF0dGFjaGVzCisgICAgICAgIG1hbmFnZXIsY29ubiAmIHRlbXBsYXRl X3BhdGggcHJvcGVydGllcyB0byBzZWxmCisgICAgICAgICIiIgorCisgICAg ICAgIEB3cmFwcyhmKQorICAgICAgICBkZWYgd3JhcCgqYXJncywgKiprd2Fy Z3MpOgorICAgICAgICAgICAgIyBIZXJlIGFyZ3NbMF0gd2lsbCBob2xkIHNl bGYgJiBrd2FyZ3Mgd2lsbCBob2xkIGdpZCxzaWQsZGlkCisgICAgICAgICAg ICBzZWxmID0gYXJnc1swXQorICAgICAgICAgICAgc2VsZi5tYW5hZ2VyID0g Z2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikuY29ubmVjdGlvbl9tYW5h Z2VyKAorICAgICAgICAgICAgICAgIGt3YXJnc1snc2lkJ10pCisgICAgICAg ICAgICBzZWxmLmNvbm4gPSBzZWxmLm1hbmFnZXIuY29ubmVjdGlvbihkaWQ9 a3dhcmdzWydkaWQnXSkKKyAgICAgICAgICAgICMgSWYgREIgbm90IGNvbm5l Y3RlZCB0aGVuIHJldHVybiBlcnJvciB0byBicm93c2VyCisgICAgICAgICAg ICBpZiBub3Qgc2VsZi5jb25uLmNvbm5lY3RlZCgpOgorICAgICAgICAgICAg ICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVxdWlyZWQoCisgICAgICAgICAg ICAgICAgICAgIGdldHRleHQoCisgICAgICAgICAgICAgICAgICAgICAgICAi Q29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGxvc3QhIgorICAg ICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKQorICAgICAg ICAgICAgIyB3ZSB3aWxsIHNldCB0ZW1wbGF0ZSBwYXRoIGZvciBzcWwgc2Ny aXB0cyBkZXBlbmRpbmcgdXBvbiBzZXJ2ZXIgdmVyc2lvbgorICAgICAgICAg ICAgdmVyID0gc2VsZi5tYW5hZ2VyLnZlcnNpb24KKyAgICAgICAgICAgIGlm IHZlciA+PSA5MDEwMDoKKyAgICAgICAgICAgICAgICBzZWxmLnRlbXBsYXRl X3BhdGggPSAnZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cycKKyAgICAgICAg ICAgIHJldHVybiBmKCphcmdzLCAqKmt3YXJncykKKworICAgICAgICByZXR1 cm4gd3JhcAorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBs aXN0KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgICBzcWwg PSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAiLyIuam9pbihbc2Vs Zi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGllcy5zcWwnXSksCisgICAgICAg ICAgICBzY2lkPXNjaWQKKyAgICAgICAgKQorICAgICAgICBzdGF0dXMsIHJl cyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorCisgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICByZXR1cm4gYWph eF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPXJlc1sncm93cydd LAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBA Y2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIG5vZGVzKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHNjaWQpOgorICAgICAgICByZXMgPSBbXQorICAgICAgICBz cWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGllcy5zcWwnXSksCisgICAg ICAgICAgICBzY2lkPXNjaWQKKyAgICAgICAgKQorICAgICAgICBzdGF0dXMs IHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KHNxbCkKKyAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKworICAgICAgICBmb3Ig cm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgIHJlcy5hcHBlbmQo CisgICAgICAgICAgICAgICAgc2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJv d3Nlcl9ub2RlKAorICAgICAgICAgICAgICAgICAgICByb3dbJ29pZCddLAor ICAgICAgICAgICAgICAgICAgICBkaWQsCisgICAgICAgICAgICAgICAgICAg IHJvd1sndG1wbG5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgaWNvbj0i aWNvbi1mdHNfdGVtcGxhdGUiCisgICAgICAgICAgICAgICAgKSkKKworICAg ICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAg ZGF0YT1yZXMsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkK KworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgcHJvcGVydGll cyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQpOgorICAgICAgICBz cWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGllcy5zcWwnXSksCisgICAg ICAgICAgICBzY2lkPXNjaWQsCisgICAgICAgICAgICB0aWQ9dGlkCisgICAg ICAgICkKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0 ZV9kaWN0KHNxbCkKKworICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1y ZXMpCisKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAg ICAgICByZXNwb25zZT1yZXNbJ3Jvd3MnXVswXSwKKyAgICAgICAgICAgIHN0 YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlv bgorICAgIGRlZiBjcmVhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6 CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgY3Jl YXRlcyBuZXcgdGhlIGZ0c190ZW1wbGF0ZSBvYmplY3QKKyAgICAgICAgOnBh cmFtIGdpZDogZ3JvdXAgaWQKKyAgICAgICAgOnBhcmFtIHNpZDogc2VydmVy IGlkCisgICAgICAgIDpwYXJhbSBkaWQ6IGRhdGFiYXNlIGlkCisgICAgICAg IDpwYXJhbSBzY2lkOiBzY2hlbWEgaWQKKyAgICAgICAgIiIiCisKKyAgICAg ICAgIyBNYW5kYXRvcnkgZmllbGRzIHRvIGNyZWF0ZSBhIG5ldyBmdHMgdGVt cGxhdGUKKyAgICAgICAgcmVxdWlyZWRfYXJncyA9IFsKKyAgICAgICAgICAg ICd0bXBsbGV4aXplJywKKyAgICAgICAgICAgICdzY2hlbWEnLAorICAgICAg ICAgICAgJ3RtcGxuYW1lJworICAgICAgICBdCisKKyAgICAgICAgZGF0YSA9 IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZvcm0gZWxzZSBqc29uLmxvYWRz KAorICAgICAgICAgICAgcmVxdWVzdC5kYXRhLmRlY29kZSgpKQorICAgICAg ICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICAgICBpZiBh cmcgbm90IGluIGRhdGE6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2Vf anNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTQx MCwKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0wLAorICAgICAgICAg ICAgICAgICAgICBlcnJvcm1zZz1nZXR0ZXh0KAorICAgICAgICAgICAgICAg ICAgICAgICAgIkNvdWxkbid0IGZpbmQgdGhlIHJlcXVpcmVkIHBhcmFtZXRl ciAoJXMpLiIgJSBhcmcKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAg ICAgICAgICAgICkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBGZXRj aCBzY2hlbWEgbmFtZSBmcm9tIHNjaGVtYSBvaWQKKyAgICAgICAgICAgIHNx bCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9w YXRoLCAnc2NoZW1hLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkYXRhPWRhdGEsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29ubj1zZWxmLmNvbm4sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKQorCisgICAgICAgICAgICBzdGF0dXMsIHNj aGVtYSA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihzcWwpCisgICAgICAg ICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c2NoZW1hKQorCisgICAg ICAgICAgICAjIHJlcGxhY2Ugc2NoZW1hIG9pZCB3aXRoIHNjaGVtYSBuYW1l IGJlZm9yZSBwYXNzaW5nIHRvIGNyZWF0ZS5zcWwKKyAgICAgICAgICAgICMg dG8gZ2VuZXJhdGUgcHJvcGVyIHNxbCBxdWVyeQorICAgICAgICAgICAgbmV3 X2RhdGEgPSBkYXRhLmNvcHkoKQorICAgICAgICAgICAgbmV3X2RhdGFbJ3Nj aGVtYSddID0gc2NoZW1hCisgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVt cGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2NyZWF0ZS5z cWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YT1uZXdfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25uPXNlbGYuY29ubiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICApCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29u bi5leGVjdXRlX3NjYWxhcihzcWwpCisgICAgICAgICAgICBpZiBub3Qgc3Rh dHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICAjIHdlIG5lZWQg ZnRzX3RlbXBsYXRlIGlkIHRvIHRvIGFkZCBvYmplY3QgaW4gdHJlZSBhdCBi cm93c2VyLAorICAgICAgICAgICAgIyBiZWxvdyBzcWwgd2lsbCBnaXZlIHRo ZSBzYW1lCisgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisg ICAgICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwg J3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAgICAgICAgIG5hbWU9ZGF0 YVsndG1wbG5hbWUnXQorICAgICAgICAgICAgKQorICAgICAgICAgICAgc3Rh dHVzLCB0aWQgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQorICAg ICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXRpZCkKKworICAg ICAgICAgICAgcmV0dXJuIGpzb25pZnkoCisgICAgICAgICAgICAgICAgbm9k ZT1zZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAg ICAgICAgICAgICAgICAgIHRpZCwKKyAgICAgICAgICAgICAgICAgICAgZGlk LAorICAgICAgICAgICAgICAgICAgICBkYXRhWyd0bXBsbmFtZSddLAorICAg ICAgICAgICAgICAgICAgICBpY29uPSJpY29uLWZ0c190ZW1wbGF0ZSIKKyAg ICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgIGV4Y2Vw dCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNr X3ByZWNvbmRpdGlvbgorICAgIGRlZiB1cGRhdGUoc2VsZiwgZ2lkLCBzaWQs IGRpZCwgc2NpZCwgdGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMg ZnVuY3Rpb24gd2lsbCB1cGRhdGUgdGV4dCBzZWFyY2ggdGVtcGxhdGUgb2Jq ZWN0CisgICAgICAgIDpwYXJhbSBnaWQ6IGdyb3VwIGlkCisgICAgICAgIDpw YXJhbSBzaWQ6IHNlcnZlciBpZAorICAgICAgICA6cGFyYW0gZGlkOiBkYXRh YmFzZSBpZAorICAgICAgICA6cGFyYW0gc2NpZDogc2NoZW1hIGlkCisgICAg ICAgIDpwYXJhbSB0aWQ6IGZ0cyB0ZW1wYXRlIGlkCisgICAgICAgICIiIgor ICAgICAgICBkYXRhID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVlc3QuZm9ybSBl bHNlIGpzb24ubG9hZHMoCisgICAgICAgICAgICByZXF1ZXN0LmRhdGEuZGVj b2RlKCkpCisKKyAgICAgICAgIyBGZXRjaCBzcWwgcXVlcnkgdG8gdXBkYXRl IGZ0cyB0ZW1wbGF0ZQorICAgICAgICBzcWwgPSBzZWxmLmdldF9zcWwoZ2lk LCBzaWQsIGRpZCwgc2NpZCwgZGF0YSwgdGlkKQorICAgICAgICB0cnk6Cisg ICAgICAgICAgICBpZiBzcWwgYW5kIHNxbC5zdHJpcCgnXG4nKSBhbmQgc3Fs LnN0cmlwKCcgJyk6CisgICAgICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBz ZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQorICAgICAgICAgICAgICAg IGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAg ICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAg ICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAgICAgICBp bmZvPSJGVFMgVGVtcGxhdGUgdXBkYXRlZCIsCisgICAgICAgICAgICAgICAg ICAgIGRhdGE9eworICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJzogdGlk LAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NpZCc6IHNpZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICdnaWQnOiBnaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAnZGlkJzogZGlkLAorICAgICAgICAgICAgICAgICAgICAg ICAgJ3NjaWQnOiBzY2lkCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICApCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg ICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAg ICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICAgICAgaW5mbz0i Tm90aGluZyB0byB1cGRhdGUiLAorICAgICAgICAgICAgICAgICAgICBkYXRh PXsKKyAgICAgICAgICAgICAgICAgICAgICAgICdpZCc6IHRpZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICdzaWQnOiBzaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAnZ2lkJzogZ2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgJ2RpZCc6IGRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdzY2lk Jzogc2NpZAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg ICAgKQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBk ZWxldGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkKToKKyAgICAg ICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBkcm9wIHRoZSBm dHNfdGVtcGxhdGUgb2JqZWN0CisgICAgICAgIDpwYXJhbSBnaWQ6IGdyb3Vw IGlkCisgICAgICAgIDpwYXJhbSBzaWQ6IHNlcnZlciBpZAorICAgICAgICA6 cGFyYW0gZGlkOiBkYXRhYmFzZSBpZAorICAgICAgICA6cGFyYW0gc2NpZDog c2NoZW1hIGlkCisgICAgICAgIDpwYXJhbSB0aWQ6IGZ0cyB0ZW1wYXRlIGlk CisgICAgICAgICIiIgorICAgICAgICAjIEJlbG93IHdpbGwgZGVjaWRlIGlm IGl0J3Mgc2ltcGxlIGRyb3Agb3IgZHJvcCB3aXRoIGNhc2NhZGUgY2FsbAor ICAgICAgICBpZiBzZWxmLmNtZCA9PSAnZGVsZXRlJzoKKyAgICAgICAgICAg ICMgVGhpcyBpcyBhIGNhc2NhZGUgb3BlcmF0aW9uCisgICAgICAgICAgICBj YXNjYWRlID0gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY2Fz Y2FkZSA9IEZhbHNlCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBH ZXQgbmFtZSBmb3IgdGVtcGxhdGUgZnJvbSB0aWQKKyAgICAgICAgICAgIHNx bCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9w YXRoLCAnZGVsZXRlLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0aWQ9dGlkKQorICAgICAgICAgICAgc3RhdHVzLCByZXMg PSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKyAgICAgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgICMg RHJvcCBmdHMgdGVtcGxhdGUKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlc1sn cm93cyddWzBdCisgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUo Ii8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2RlbGV0ZS5zcWwnXSks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1yZXN1 bHRbJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzY2hlbWE9cmVzdWx0WydzY2hlbWEnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjYXNjYWRlPWNhc2NhZGUKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICApCisKKyAgICAgICAgICAgIHN0YXR1 cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKHNxbCkKKyAgICAg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAg ICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAg ICAgICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAgIGluZm89Z2V0dGV4 dCgiRnRzIHRlbXBsYXRlIGRyb3BwZWQiKSwKKyAgICAgICAgICAgICAgICBk YXRhPXsKKyAgICAgICAgICAgICAgICAgICAgJ2lkJzogdGlkLAorICAgICAg ICAgICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAgICAgICAg ICAnZ2lkJzogZ2lkLAorICAgICAgICAgICAgICAgICAgICAnZGlkJzogZGlk LAorICAgICAgICAgICAgICAgICAgICAnc2NpZCc6IHNjaWQKKyAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICApCisKKyAgICAgICAgZXhjZXB0IEV4 Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3Nl cnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJl Y29uZGl0aW9uCisgICAgZGVmIG1zcWwoc2VsZiwgZ2lkLCBzaWQsIGRpZCwg c2NpZCwgdGlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBm dW5jdGlvbiByZXR1cm5zIG1vZGlmaWVkIFNRTAorICAgICAgICA6cGFyYW0g Z2lkOiBncm91cCBpZAorICAgICAgICA6cGFyYW0gc2lkOiBzZXJ2ZXIgaWQK KyAgICAgICAgOnBhcmFtIGRpZDogZGF0YWJhc2UgaWQKKyAgICAgICAgOnBh cmFtIHNjaWQ6IHNjaGVtYSBpZAorICAgICAgICA6cGFyYW0gdGlkOiBmdHMg dGVtcGF0ZSBpZAorICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9IHJlcXVl c3QuYXJncworCisgICAgICAgICMgRmV0Y2ggc3FsIHF1ZXJ5IGZvciBtb2Rp ZmllZCBkYXRhCisgICAgICAgIHNxbCA9IHNlbGYuZ2V0X3NxbChnaWQsIHNp ZCwgZGlkLCBzY2lkLCBkYXRhLCB0aWQpCisKKyAgICAgICAgaWYgaXNpbnN0 YW5jZShzcWwsIHN0cikgYW5kIHNxbCBhbmQgc3FsLnN0cmlwKCdcbicpIGFu ZCBzcWwuc3RyaXAoJyAnKToKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pz b25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgZGF0YT1zcWwsCisgICAg ICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgKQorICAgICAg ICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25z ZSgKKyAgICAgICAgICAgICAgICBkYXRhPSItLW1vZGlmaWVkIFNRTCIsCisg ICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgKQorCisg ICAgZGVmIGdldF9zcWwoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZGF0 YSwgdGlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5j dGlvbiB3aWxsIHJldHVybiBTUUwgZm9yIG1vZGVsIGRhdGEKKyAgICAgICAg OnBhcmFtIGdpZDogZ3JvdXAgaWQKKyAgICAgICAgOnBhcmFtIHNpZDogc2Vy dmVyIGlkCisgICAgICAgIDpwYXJhbSBkaWQ6IGRhdGFiYXNlIGlkCisgICAg ICAgIDpwYXJhbSBzY2lkOiBzY2hlbWEgaWQKKyAgICAgICAgOnBhcmFtIHRp ZDogZnRzIHRlbXBhdGUgaWQKKyAgICAgICAgIiIiCisgICAgICAgIHRyeToK KyAgICAgICAgICAgICMgRmV0Y2ggc3FsIGZvciB1cGRhdGUKKyAgICAgICAg ICAgIGlmIHRpZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBzcWwg PSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgICAgICIvIi5q b2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVzLnNxbCddKSwK KyAgICAgICAgICAgICAgICAgICAgdGlkPXRpZCwKKyAgICAgICAgICAgICAg ICAgICAgc2NpZD1zY2lkCisgICAgICAgICAgICAgICAgKQorCisgICAgICAg ICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0 KHNxbCkKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXJlcykKKworICAgICAgICAgICAgICAgIG9sZF9kYXRhID0gcmVz Wydyb3dzJ11bMF0KKworICAgICAgICAgICAgICAgICMgSWYgdXNlciBoYXMg Y2hhbmdlZCB0aGUgc2NoZW1hIHRoZW4gZmV0Y2ggbmV3IHNjaGVtYSBkaXJl Y3RseQorICAgICAgICAgICAgICAgICMgdXNpbmcgaXRzIG9pZCBvdGhlcndp c2UgZmV0Y2ggb2xkIHNjaGVtYSBuYW1lIHVzaW5nIGZ0cyB0ZW1wbGF0ZSBv aWQKKyAgICAgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisg ICAgICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3Bh dGgsICdzY2hlbWEuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICBkYXRh PWRhdGEpCisKKyAgICAgICAgICAgICAgICBzdGF0dXMsIG5ld19zY2hlbWEg PSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQorICAgICAgICAgICAg ICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9bmV3X3NjaGVtYSkK KworICAgICAgICAgICAgICAgICMgUmVwbGFjZSBzY2hlbWEgb2lkIHdpdGgg c2NoZW1hIG5hbWUKKyAgICAgICAgICAgICAgICBuZXdfZGF0YSA9IGRhdGEu Y29weSgpCisgICAgICAgICAgICAgICAgaWYgJ3NjaGVtYScgaW4gbmV3X2Rh dGE6CisgICAgICAgICAgICAgICAgICAgIG5ld19kYXRhWydzY2hlbWEnXSA9 IG5ld19zY2hlbWEKKworICAgICAgICAgICAgICAgICMgRmV0Y2ggb2xkIHNj aGVtYSBuYW1lIHVzaW5nIG9sZCBzY2hlbWEgb2lkCisgICAgICAgICAgICAg ICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICAg ICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnc2NoZW1hLnNxbCdd KSwKKyAgICAgICAgICAgICAgICAgICAgZGF0YT1vbGRfZGF0YSkKKworICAg ICAgICAgICAgICAgIHN0YXR1cywgb2xkX3NjaGVtYSA9IHNlbGYuY29ubi5l eGVjdXRlX3NjYWxhcihzcWwpCisgICAgICAgICAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3Nl cnZlcl9lcnJvcihlcnJvcm1zZz1vbGRfc2NoZW1hKQorCisgICAgICAgICAg ICAgICAgIyBSZXBsYWNlIG9sZCBzY2hlbWEgb2lkIHdpdGggb2xkIHNjaGVt YSBuYW1lCisgICAgICAgICAgICAgICAgb2xkX2RhdGFbJ3NjaGVtYSddID0g b2xkX3NjaGVtYQorCisgICAgICAgICAgICAgICAgc3FsID0gcmVuZGVyX3Rl bXBsYXRlKAorICAgICAgICAgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLCAndXBkYXRlLnNxbCddKSwKKyAgICAgICAgICAgICAg ICAgICAgZGF0YT1uZXdfZGF0YSwgb19kYXRhPW9sZF9kYXRhCisgICAgICAg ICAgICAgICAgKQorICAgICAgICAgICAgICAgICMgRmV0Y2ggc3FsIHF1ZXJ5 IGZvciBtb2RpZmllZCBkYXRhCisgICAgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgICAgICMgRmV0Y2ggc2NoZW1hIG5hbWUgZnJvbSBzY2hlbWEgb2lk CisgICAgICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5q b2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdzY2hlbWEuc3FsJ10pLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWRhdGEp CisKKyAgICAgICAgICAgICAgICBzdGF0dXMsIHNjaGVtYSA9IHNlbGYuY29u bi5leGVjdXRlX3NjYWxhcihzcWwpCisgICAgICAgICAgICAgICAgaWYgbm90 IHN0YXR1czoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zY2hlbWEpCisKKyAgICAgICAgICAg ICAgICAjIFJlcGxhY2Ugc2NoZW1hIG9pZCB3aXRoIHNjaGVtYSBuYW1lCisg ICAgICAgICAgICAgICAgbmV3X2RhdGEgPSBkYXRhLmNvcHkoKQorICAgICAg ICAgICAgICAgIG5ld19kYXRhWydzY2hlbWEnXSA9IHNjaGVtYQorCisgICAg ICAgICAgICAgICAgaWYgJ3RtcGxsZXhpemUnIGluIG5ld19kYXRhIGFuZCBc CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0bXBsbmFtZScg aW4gbmV3X2RhdGEgYW5kIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ3NjaGVtYScgaW4gbmV3X2RhdGE6CisgICAgICAgICAgICAgICAg ICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1w bGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICdjcmVhdGUuc3FsJ10pLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1uZXdfZGF0 YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbm49c2VsZi5jb25uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICAgICAgICAgc3FsID0gIi0tIGluY29tcGxldGUgZGVmaW5pdGlv biIKKyAgICAgICAgICAgIHJldHVybiBzcWwKKworICAgICAgICBleGNlcHQg RXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19w cmVjb25kaXRpb24KKyAgICBkZWYgZ2V0X2xleGl6ZShzZWxmLCBnaWQsIHNp ZCwgZGlkLCBzY2lkLCB0aWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAg ICBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGxleGl6ZSBmdW5jdGlvbnMg bGlzdCBmb3IgZnRzIHRlbXBsYXRlCisgICAgICAgIDpwYXJhbSBnaWQ6IGdy b3VwIGlkCisgICAgICAgIDpwYXJhbSBzaWQ6IHNlcnZlciBpZAorICAgICAg ICA6cGFyYW0gZGlkOiBkYXRhYmFzZSBpZAorICAgICAgICA6cGFyYW0gc2Np ZDogc2NoZW1hIGlkCisgICAgICAgIDpwYXJhbSB0aWQ6IGZ0cyB0ZW1wYXRl IGlkCisgICAgICAgICIiIgorICAgICAgICBkYXRhID0gcmVxdWVzdC5hcmdz CisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2Vs Zi50ZW1wbGF0ZV9wYXRoLCAnZnVuY3Rpb25zLnNxbCddKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxleGl6ZT1UcnVlKQorICAgICAgICBz dGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKwor ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yc2V0KQorCisgICAgICAg ICMgRW1wdHkgc2V0IGlzIGFkZGVkIGJlZm9yZSBhY3R1YWwgbGlzdCBhcyBp bml0aWFsbHkgaXQgd2lsbCBiZSB2aXNpYmxlCisgICAgICAgICMgYXQgbGV4 aXplIHNlbGVjdCBjb250cm9sIHdoaWxlIGNyZWF0aW5nIGEgbmV3IGZ0cyB0 ZW1wbGF0ZQorICAgICAgICByZXMgPSBbeydsYWJlbCc6ICcnLCAndmFsdWUn OiAnJ31dCisgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cyddOgorICAg ICAgICAgICAgcmVzLmFwcGVuZCh7J2xhYmVsJzogcm93Wydwcm9uYW1lJ10s CisgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWUnOiByb3dbJ3Byb25h bWUnXX0pCisgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisg ICAgICAgICAgICBkYXRhPXJlcywKKyAgICAgICAgICAgIHN0YXR1cz0yMDAK KyAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRl ZiBnZXRfaW5pdChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQ9Tm9u ZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwg cmV0dXJuIGluaXQgZnVuY3Rpb25zIGxpc3QgZm9yIGZ0cyB0ZW1wbGF0ZQor ICAgICAgICA6cGFyYW0gZ2lkOiBncm91cCBpZAorICAgICAgICA6cGFyYW0g c2lkOiBzZXJ2ZXIgaWQKKyAgICAgICAgOnBhcmFtIGRpZDogZGF0YWJhc2Ug aWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IHNjaGVtYSBpZAorICAgICAgICA6 cGFyYW0gdGlkOiBmdHMgdGVtcGF0ZSBpZAorICAgICAgICAiIiIKKyAgICAg ICAgZGF0YSA9IHJlcXVlc3QuYXJncworICAgICAgICBzcWwgPSByZW5kZXJf dGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2Z1bmN0 aW9ucy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bml0PVRydWUpCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5l eGVjdXRlX2RpY3Qoc3FsKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6Cisg ICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y bXNnPXJzZXQpCisKKyAgICAgICAgIyBXZSBoYXZlIGFkZGVkIHRoaXMgdG8g bWFwIGFnYWluc3QgJy0nIHdoaWNoIGlzIGNvbWluZyBmcm9tIHNlcnZlcgor ICAgICAgICByZXMgPSBbeydsYWJlbCc6ICcnLCAndmFsdWUnOiAnLSd9XQor ICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAg IHJlcy5hcHBlbmQoeydsYWJlbCc6IHJvd1sncHJvbmFtZSddLAorICAgICAg ICAgICAgICAgICAgICAgICAgJ3ZhbHVlJzogcm93Wydwcm9uYW1lJ119KQor ICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAg ICAgZGF0YT1yZXMsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAg ICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgc3FsKHNl bGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCk6CisgICAgICAgICIiIgor ICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV2ZXJzZSBnZW5lcmF0ZSBz cWwgZm9yIHNxbCBwYW5lbAorICAgICAgICA6cGFyYW0gZ2lkOiBncm91cCBp ZAorICAgICAgICA6cGFyYW0gc2lkOiBzZXJ2ZXIgaWQKKyAgICAgICAgOnBh cmFtIGRpZDogZGF0YWJhc2UgaWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IHNj aGVtYSBpZAorICAgICAgICA6cGFyYW0gdGlkOiBmdHMgdGVtcGF0ZSBpZAor ICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc3FsID0g cmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICIvIi5qb2luKFtz ZWxmLnRlbXBsYXRlX3BhdGgsICdzcWwuc3FsJ10pLAorICAgICAgICAgICAg ICAgIHRpZD10aWQsCisgICAgICAgICAgICAgICAgc2NpZD1zY2lkLAorICAg ICAgICAgICAgICAgIGNvbm49c2VsZi5jb25uCisgICAgICAgICAgICApCisg ICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3Nj YWxhcihzcWwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoCisgICAg ICAgICAgICAgICAgICAgIF8oCisgICAgICAgICAgICAgICAgICAgICAgICAi RVJST1I6IENvdWxkbid0IGdlbmVyYXRlIHJldmVyc2VkIGVuZ2luZWVyZWQg UXVlcnkgZm9yIHRoZSBmdHMgdGVtcGxhdGUhXG57MH0iKS5mb3JtYXQoCisg ICAgICAgICAgICAgICAgICAgICAgICByZXMKKyAgICAgICAgICAgICAgICAg ICAgKQorICAgICAgICAgICAgICAgICkKKworICAgICAgICAgICAgaWYgcmVz IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmV0dXJuIGdvbmUoCisgICAg ICAgICAgICAgICAgICAgIF8oCisgICAgICAgICAgICAgICAgICAgICAgICAi RVJST1I6IENvdWxkbid0IGdlbmVyYXRlIHJldmVyc2VkIGVuZ2luZWVyZWQg UXVlcnkgZm9yIGZ0cyB0ZW1wbGF0ZSBub2RlISIpCisgICAgICAgICAgICAg ICAgKQorCisgICAgICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZShyZXNw b25zZT1yZXMpCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgor ICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJv cm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAg ZGVmIGRlcGVuZGVudHMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlk KToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2V0IHRo ZSBkZXBlbmRlbnRzIGFuZCByZXR1cm4gYWpheCByZXNwb25zZQorICAgICAg ICBmb3IgdGhlIEZUUyBUZW1wbGF0ZSBub2RlLgorCisgICAgICAgIEFyZ3M6 CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAg ICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2Ug SUQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJRAorICAgICAgICAgICAg dGlkOiBGVFMgVGVtcGxhdGUgSUQKKyAgICAgICAgIiIiCisgICAgICAgIGRl cGVuZGVudHNfcmVzdWx0ID0gc2VsZi5nZXRfZGVwZW5kZW50cyhzZWxmLmNv bm4sIHRpZCkKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAg ICAgICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW50c19yZXN1bHQsCisgICAg ICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkKKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVwZW5kZW5jaWVz KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCk6CisgICAgICAgICIi IgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdldCB0aGUgZGVwZW5kZW5jaWVz IGFuZCByZXR1cm4gYWpheCByZXNwb25zZQorICAgICAgICBmb3IgdGhlIEZU UyBUZW1wbGF0ZSBub2RlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAg ICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2 ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAg ICAgIHNjaWQ6IFNjaGVtYSBJRAorICAgICAgICAgICAgdGlkOiBGVFMgVGVt cGFsdGUgSUQKKyAgICAgICAgIiIiCisgICAgICAgIGRlcGVuZGVuY2llc19y ZXN1bHQgPSBzZWxmLmdldF9kZXBlbmRlbmNpZXMoc2VsZi5jb25uLCB0aWQp CisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAgICAgICAg ICAgIHJlc3BvbnNlPWRlcGVuZGVuY2llc19yZXN1bHQsCisgICAgICAgICAg ICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkKKworRnRzVGVt cGxhdGVWaWV3LnJlZ2lzdGVyX25vZGVfdmlldyhibHVlcHJpbnQpCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3N0YXRpYy9p bWcvY29sbC1mdHNfdGVtcGxhdGUucG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRz X3RlbXBsYXRlcy9zdGF0aWMvaW1nL2NvbGwtZnRzX3RlbXBsYXRlLnBuZwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWJkNDdkYTdhZTI3YjA0YjBiZmQz OGE3YjFlZTlmNmMxYTc0ZDJjCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA2 MDEKemNtWSs5WWUtVzg2dnl1aiEhNT83ekRTPTdmP1FuSkVadjhpd1hJRVoq bWpFdyVINz11SUxwaXBMODdiJG1PYW9ZCnpHXjU5SUNPUzsqS3wmOGh2fXFF e0EmIXVjR0JBcDhjbFdqWFVOYDtKaHlWR1YxTHBfbHZ7a3pnPXlqV1EwMDhK Kwp6UE1iJCU7bEM4RFF8bVVQIUs7Rj1KX3ktV0NhMFBjQDUqenpSNHpCQ0Q2 QCs0TnRVTjJYO1BCaj1XX0dXWmt3VmMKeldjaDxBelVLTC1JMVZZd1hCPEJ5 JVRwTlVtWlVLaHRyVWI4OTJiJTA4Q2l9Pyh6cXpUNn4kM09jK1ReSzlNe0xQ Cnp3PXR8cjZ5SiNBRD91M0hgNTRETktAY207Y0dHbUxBaU5aV1ZWKW8weE0o KX1mTXZURjxgJT07SysqamkqT1NmTwp6WFczNE0+N2VPcmV0IylOd1Bkc1JT b1JMWHc5fEFPTU9+KC0zbmJaYCQlT3A9R01jXnUhKUEmKTU1cig0NlpIOXQK ejM4SWRvRXxLSXBsNUVPazhWUkRGQU9oKCRvPSYzK0xRT3pAVUs4QFR5P31O MzMkNn5AMklzTSRPNk9gRUFNNXQwCnpPXyQ0NzBUczw1Sn5YVXh0T3RGNTlM SGV7YFN9ZUU+bCk1UldBSVhpY1ZoQi1VdSZEOE8yMjhaXlhBMSEkSD4rRwp6 eUpiI21VYSFNYmRFOVp0ZU53WH1RczlhOTQpKDxRaDh9QS0mZ0tteVFfMTxj LUptJjcyYnxEQiRTSHBTdVpMXiUKenBCNDRUN3ZpYko7JkBWOTQwd00wU15C LWFeOEh0U2FJQUIqZWZVdn0pbUkxczZJMFV3S3JiMzFVbFNYZSlEeVJjCno+ XzxaPTlLdEx9QmM9aXtmaEN9XiNBRjBaQVFOYVlAM2ZkcHd9WWg/NVBaMEBC bGUkZ2BWM2wmSD9JamBgS3E5OQpZbj1SbjNIRFJYZkBTckxIRjF5PHt3OWdt KjMjYzc1ZGpKM2MKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvc3RhdGljL2ltZy9m dHNfdGVtcGxhdGUucG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRl cy9zdGF0aWMvaW1nL2Z0c190ZW1wbGF0ZS5wbmcKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMC4uZWI3ODBiZjBiYjBmNWQ3NzdlOGE3MjcyMGI1ZWQwZTJhZDQ4 YmM0NQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNjk2CnpjbVkrQ1M0PmpA Nm96a2NxPndRNSFHTGsjQ0x6VTNTKW9RIVlyJGVGVTwtdCRjSEtxLWgoYmRe UTJ+aC1NSWpNbwp6Qk8pUkoxVD0wJT5XR1hlVk0lPF5fKyZJdWRpVEQhVWc2 MXl8TlE0cSZpQ0A/KVRBVUdAYnl7bTB8MDw7cUUyZyYKekptODw/RTJKNXNA SFlhMD5gO242SEN+RHtWYFduI3VeIUtZJDFeWEF2IVhhSGlrfTJ3UVZfOz97 PU1Ddj1KQ3dnCno/TTZ8WWZ9cTJLRmIrWTxKcFRyUV5jP3A+NmxYOzdxYWFL TyFVdnZ6JWshZmdfbWJuRHZneys0OXA/RldKbiFQVAp6Un4rfEBXZ29OYjFC U1Y4dnVTQyVvOTlQMz9tNWRvVmNDWmFHc3JNfkc8fXoqWiZPcXxOakJTVEkr aChgbjB9aD4KenEzSkcpPlklNj1sRHVpTHMwaVhKIXdmTFlKKHw4bFFNVnxu bF9WUVVAO1g2VyF8fV5GZWk2Zn1YdTh2Q2pVJms+CnpsNThNfEkpYj1APENr IyEwKXx6WCV9Tnc0Q0NNOEVRQk0lSElQUyNwWTdERXl1KEsjeWhOMn0xUWo4 I2xJOV9BMQp6TTR7K3V2bCVwKjZmaigxR0tJcU1hU1NfO3FHdTRxZmdxPDQ8 T0JAbyFFbW5JWkZqcUVabnQkK3h3bDN0Uk9UPXcKejgzRlo9RkxvKC1wVlZh Kk9SaWZ8IWJEITJ2fihxRV9vVzhUU3hxaldSeGZ3UypQMU09ejFGMmltLXI9 eD9Re1kkCnp7PH1BaVImPkA2JWVDcjtXUE9ndGE0OygmLUVYVUZPVU9gWFp9 Jmh+VXl0OUtmWjZIISpAYzxVYjFgN0dkXnw5eQp6d1cqfiFKMG1NfHxIfU9R S2ZnQ19YbTJ9YF5FS0ZPYVp8XzlaKml+QmlMJU9vJUZnZmcpNUVaSHkhVTZJ UT1RK0kKenR1RUklRVFUVDxaRSV6VitgQkN6YmtEQXNJYDk1dGF2NHppRGA7 V0J4YyVQOz9RcTBySUJhR0lxX1AlNGteeEZFCno5OGBvVzY8fk8oNT4hUC1z M04wNiE2KzM3Yn1XWVZ7UmIyaitIJm4+JUsjWD0xVzREQkRsbUUobX4yY05r Tl9ZdApMSzFuO01GOylFcTA0OHlOCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEK CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3Rl bXBsYXRlcy9mdHNfdGVtcGxhdGUvanMvZnRzX3RlbXBsYXRlcy5qcyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1w bGF0ZS9qcy9mdHNfdGVtcGxhdGVzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjUwOWQ3NWYKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVt cGxhdGUvanMvZnRzX3RlbXBsYXRlcy5qcwpAQCAtMCwwICsxLDEzNyBAQAor ZGVmaW5lKAorICAgICAgICBbJ2pxdWVyeScsICd1bmRlcnNjb3JlJywgJ3Vu ZGVyc2NvcmUuc3RyaW5nJywgJ3BnYWRtaW4nLCAncGdhZG1pbi5icm93c2Vy JywgJ2FsZXJ0aWZ5JywgJ3BnYWRtaW4uYnJvd3Nlci5jb2xsZWN0aW9uJ10s CitmdW5jdGlvbigkLCBfLCBTLCBwZ0FkbWluLCBwZ0Jyb3dzZXIsIGFsZXJ0 aWZ5KSB7CisKKyAgLy8gRXh0ZW5kIHRoZSBjb2xsZWN0aW9uIGNsYXNzIGZv ciBmdHMgdGVtcGxhdGUKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwt ZnRzX3RlbXBsYXRlJ10pIHsKKyAgICB2YXIgZnRzX3RlbXBsYXRlcyA9IHBn QWRtaW4uQnJvd3Nlci5Ob2Rlc1snY29sbC1mdHNfdGVtcGxhdGUnXSA9Cisg ICAgICBwZ0FkbWluLkJyb3dzZXIuQ29sbGVjdGlvbi5leHRlbmQoeworICAg ICAgICBub2RlOiAnZnRzX3RlbXBsYXRlJywKKyAgICAgICAgbGFiZWw6ICd7 eyBfKCdGVFMgVGVtcGxhdGVzJykgfX0nLAorICAgICAgICB0eXBlOiAnY29s bC1mdHNfdGVtcGxhdGUnLAorICAgICAgICBjb2x1bW5zOiBbJ3RtcGxuYW1l JywgJ2Rlc2NyaXB0aW9uJ10KKyAgICAgIH0pOworICB9OworCisgIC8vIEV4 dGVuZCB0aGUgbm9kZSBjbGFzcyBmb3IgZnRzIHRlbXBsYXRlCisgIGlmICgh cGdCcm93c2VyLk5vZGVzWydmdHNfdGVtcGxhdGUnXSkgeworICAgIHBnQWRt aW4uQnJvd3Nlci5Ob2Rlc1snZnRzX3RlbXBsYXRlJ10gPSBwZ0FkbWluLkJy b3dzZXIuTm9kZS5leHRlbmQoeworICAgICAgcGFyZW50X3R5cGU6ICdzY2hl bWEnLAorICAgICAgdHlwZTogJ2Z0c190ZW1wbGF0ZScsCisgICAgICBjYW5E cm9wOiB0cnVlLAorICAgICAgY2FuRHJvcENhc2NhZGU6IHRydWUsCisgICAg ICBsYWJlbDogJ3t7IF8oJ0ZUUyBUZW1wbGF0ZXMnKSB9fScsCisgICAgICBo YXNTUUw6IHRydWUsCisgICAgICBoYXNEZXBlbmRzOiB0cnVlLAorICAgICAg SW5pdDogZnVuY3Rpb24oKSB7CisKKyAgICAgICAgLy8gQXZvaWQgbXVsdGlw bGUgcmVnaXN0cmF0aW9uIG9mIG1lbnVzCisgICAgICAgIGlmICh0aGlzLmlu aXRpYWxpemVkKQorICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlz LmluaXRpYWxpemVkID0gdHJ1ZTsKKworICAgICAgICAvLyBBZGQgY29udGV4 dCBtZW51cyBmb3IgZnRzIHRlbXBsYXRlCisgICAgICAgIHBnQnJvd3Nlci5h ZGRfbWVudXMoW3sKKyAgICAgICAgICBuYW1lOiAnY3JlYXRlX2Z0c190ZW1w bGF0ZV9vbl9zY2hlbWEnLCBub2RlOiAnc2NoZW1hJywgbW9kdWxlOiB0aGlz LAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwg Y2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAgICAgICBj YXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJlbDogJ3t7IF8o J0ZUUyBUZW1wbGF0ZS4uLicpIH19JywKKyAgICAgICAgICBpY29uOiAnd2NU YWJJY29uIGljb24tZnRzX3RlbXBsYXRlJywgZGF0YToge2FjdGlvbjogJ2Ny ZWF0ZSd9CisgICAgICAgICAgfSx7CisgICAgICAgICAgbmFtZTogJ2NyZWF0 ZV9mdHNfdGVtcGxhdGVfb25fY29sbCcsIG5vZGU6ICdjb2xsLWZ0c190ZW1w bGF0ZScsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29i amVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVy dGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0 eTogNCwgbGFiZWw6ICd7eyBfKCdGVFMgVGVtcGxhdGUuLi4nKSB9fScsCisg ICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLWZ0c190ZW1wbGF0ZScs IGRhdGE6IHthY3Rpb246ICdjcmVhdGUnfQorICAgICAgICAgIH0seworICAg ICAgICAgIG5hbWU6ICdjcmVhdGVfZnRzX3RlbXBsYXRlJywgbm9kZTogJ2Z0 c190ZW1wbGF0ZScsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVz OiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpf cHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBw cmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdGVFMgVGVtcGxhdGUuLi4nKSB9 fScsCisgICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLWZ0c190ZW1w bGF0ZScsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUnfQorICAgICAgICAgIH1d KTsKKworICAgICAgfSwKKworICAgICAgLy8gRGVmaW5pbmcgYmFja2Zvcm0g bW9kZWwgZm9yIGZ0cyB0ZW1wbGF0ZSBub2RlCisgICAgICBtb2RlbDogcGdB ZG1pbi5Ccm93c2VyLk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICAgICAgZGVm YXVsdHM6IHsKKyAgICAgICAgICB0bXBsbmFtZTogdW5kZWZpbmVkLCAgICAg IC8vIEZ0cyB0ZW1wbGF0ZSBuYW1lCisgICAgICAgICAgZGVzY3JpcHRpb246 IHVuZGVmaW5lZCwgICAvLyBDb21tZW50IG9uIHRlbXBsYXRlCisgICAgICAg ICAgc2NoZW1hOiB1bmRlZmluZWQsICAgICAgICAvLyBTY2hlbWEgbmFtZSB0 byB3aGljaCB0ZW1wbGF0ZSBiZWxvbmdzCisgICAgICAgICAgdG1wbGluaXQ6 IHVuZGVmaW5lZCwgICAgICAvLyBJbml0IGZ1bmN0aW9uIGZvciBmdHMgdGVt cGxhdGUKKyAgICAgICAgICB0bXBsbGV4aXplOiB1bmRlZmluZWQgICAgIC8v IExleGl6ZSBmdW5jdGlvbiBmb3IgZnRzIHRlbXBsYXRlCisgICAgICAgIH0s CisgICAgICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKCkgeworICAgICAgICAg ICAgcGdBZG1pbi5Ccm93c2VyLk5vZGUuTW9kZWwucHJvdG90eXBlLmluaXRp YWxpemUuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKKyAgICAgICAgICAgIGlm IChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCdzY2hlbWEnKSkpIHsKKyAgICAg ICAgICAgICAgICB0aGlzLnNldCgnc2NoZW1hJywgdGhpcy5ub2RlX2luZm8u c2NoZW1hLl9pZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAg ICAgIC8vIERlZmluaW5nIHNjaGVtYSBmb3IgZnRzIHRlbXBsYXRlCisgICAg ICAgIHNjaGVtYTogW3sKKyAgICAgICAgICBpZDogJ3RtcGxuYW1lJywgbGFi ZWw6ICd7eyBfKCdOYW1lJykgfX0nLCBjZWxsOiAnc3RyaW5nJywgZ3JvdXA6 ICdEZWZpbml0aW9uJywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIGNlbGxI ZWFkZXJDbGFzc2VzOiAnd2lkdGhfcGVyY2VudF81MCcKKyAgICAgICAgfSx7 CisgICAgICAgICAgaWQ6ICdvaWQnLCBsYWJlbDone3sgXygnT2lkJykgfX0n LCBjZWxsOiAnc3RyaW5nJywgZ3JvdXA6ICdEZWZpbml0aW9uJywKKyAgICAg ICAgICBlZGl0YWJsZTogZmFsc2UsIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6 IHRydWUKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdkZXNjcmlwdGlv bicsIGxhYmVsOid7eyBfKCdDb21tZW50JykgfX0nLCBjZWxsOiAnc3RyaW5n JywgZ3JvdXA6ICdEZWZpbml0aW9uJywKKyAgICAgICAgICB0eXBlOiAnbXVs dGlsaW5lJywgY2VsbEhlYWRlckNsYXNzZXM6ICd3aWR0aF9wZXJjZW50XzUw JworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3RtcGxpbml0JywgbGFi ZWw6ICd7eyBfKCdJbml0Jyl9fScsIGdyb3VwOiAnRGVmaW5pdGlvbicsCisg ICAgICAgICAgdHlwZTogJ3RleHQnLCBkaXNhYmxlZDogZnVuY3Rpb24obSkg eyByZXR1cm4gIW0uaXNOZXcoKTsgfSwKKyAgICAgICAgICBjb250cm9sOiAn bm9kZS1hamF4LW9wdGlvbnMnLCB1cmw6ICdnZXRfaW5pdCcKKyAgICAgICAg fSx7CisgICAgICAgICAgaWQ6ICd0bXBsbGV4aXplJywgbGFiZWw6ICd7eyBf KCdMZXhpemUnKX19JywgZ3JvdXA6ICdEZWZpbml0aW9uJywKKyAgICAgICAg ICB0eXBlOiAndGV4dCcsIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7IHJldHVy biAhbS5pc05ldygpOyB9LAorICAgICAgICAgIGNvbnRyb2w6ICdub2RlLWFq YXgtb3B0aW9ucycsIHVybDogJ2dldF9sZXhpemUnCisgICAgICAgIH0sewor ICAgICAgICAgIGlkOiAnc2NoZW1hJywgbGFiZWw6ICd7eyBfKCdTY2hlbWEn KX19JywgY2VsbDogJ3N0cmluZycsIGdyb3VwOiAnRGVmaW5pdGlvbicsCisg ICAgICAgICAgdHlwZTogJ3RleHQnLCBtb2RlOiBbJ2NyZWF0ZScsJ2VkaXQn XSwgbm9kZTogJ3NjaGVtYScsCisgICAgICAgICAgY29udHJvbDogJ25vZGUt bGlzdC1ieS1pZCcKKyAgICAgICAgfV0sCisKKyAgICAgICAgLyoKKyAgICAg ICAgICogVHJpZ2dlcnMgY29udHJvbCBzcGVjaWZpYyBlcnJvciBtZXNzYWdl cyBmb3IgdGVtcGxhdGUgbmFtZSwKKyAgICAgICAgICogbGV4aXplIGZ1bmN0 aW9uIGFuZCBzY2hlbWEsIGlmIGFueSBvbmUgb2YgdGhlbSBpcyBub3Qgc3Bl Y2lmaWVkCisgICAgICAgICAqIHdoaWxlIGNyZWF0aW5nIG5ldyBmdHMgdGVt cGxhdGUKKyAgICAgICAgICovCisgICAgICAgIHZhbGlkYXRlOiBmdW5jdGlv bihrZXlzKXsKKyAgICAgICAgICB2YXIgbmFtZSA9IHRoaXMuZ2V0KCd0bXBs bmFtZScpOworICAgICAgICAgIHZhciBsZXhpemUgPSB0aGlzLmdldCgndG1w bGxleGl6ZScpOworICAgICAgICAgIHZhciBzY2hlbWEgPSB0aGlzLmdldCgn c2NoZW1hJyk7CisKKyAgICAgICAgICAvLyBWYWxpZGF0ZSBmdHMgdGVtcGxh dGUgbmFtZQorICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKG5hbWUpIHx8 IF8uaXNOdWxsKG5hbWUpIHx8IFN0cmluZyhuYW1lKS5yZXBsYWNlKC9eXHMr fFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgICB2YXIgbXNnID0g J3t7IF8oJ05hbWUgbXVzdCBiZSBzcGVjaWZpZWQhJykgfX0nOworICAgICAg ICAgICAgdGhpcy5lcnJvck1vZGVsLnNldCgnbmFtZScsIG1zZyk7CisgICAg ICAgICAgICByZXR1cm4gbXNnOworICAgICAgICAgIH0KKworICAgICAgICAg IC8vIFZhbGlkYXRlIGxleGl6ZSBmdW5jdGlvbiBjb250cm9sCisgICAgICAg ICAgZWxzZSBpZiAoXy5pc1VuZGVmaW5lZChsZXhpemUpIHx8IF8uaXNOdWxs KGxleGl6ZSkgfHwgU3RyaW5nKGxleGl6ZSkucmVwbGFjZSgvXlxzK3xccysk L2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgdmFyIG1zZyA9ICd7eyBf KCdMZXhpemUgZnVuY3Rpb24gbXVzdCBiZSBzZWxlY3RlZCEnKSB9fSc7Cisg ICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0KCd0bXBsbGV4aXplJywg bXNnKTsKKyAgICAgICAgICAgIHJldHVybiBtc2c7CisgICAgICAgICAgfQor CisgICAgICAgICAgLy8gVmFsaWRhdGUgc2NoZW1hIGZvciBmdHMgdGVtcGxh dGUKKyAgICAgICAgICBlbHNlIGlmIChfLmlzVW5kZWZpbmVkKHNjaGVtYSkg fHwgXy5pc051bGwoc2NoZW1hKSB8fCBTdHJpbmcoc2NoZW1hKS5yZXBsYWNl KC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgICB2YXIg bXNnID0gJ3t7IF8oJ1NjaGVtYSBtdXN0IGJlIHNlbGVjdGVkIScpIH19JzsK KyAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ3NjaGVtYScsIG1z Zyk7CisgICAgICAgICAgICByZXR1cm4gbXNnOworICAgICAgICAgIH0KKwor ICAgICAgICAgIGVsc2UKKyAgICAgICAgICB7CisgICAgICAgICAgICB0aGlz LmVycm9yTW9kZWwudW5zZXQoJ3RtcGxsZXhpemUnKTsKKyAgICAgICAgICAg IHRoaXMuZXJyb3JNb2RlbC51bnNldCgnc2NoZW1hJyk7CisgICAgICAgICAg fQorICAgICAgICAgIHRoaXMudHJpZ2dlcignb24tc3RhdHVzLWNsZWFyJyk7 CisgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgIH0p CisgICAgfSk7CisgIH0KKworcmV0dXJuIHBnQnJvd3Nlci5Ob2Rlc1snY29s bC1mdHNfdGVtcGxhdGUnXTsKK30pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0 ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9zcWwvOS4xX3BsdXMvY3JlYXRl LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVz L2Z0c190ZW1wbGF0ZS9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTc2MTMyCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1w bGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsCkBA IC0wLDAgKzEsMTIgQEAKK3sjIENSRUFURSBURVhUIFNFQVJDSCBURU1QTEFU RSBTdGF0ZW1lbnQgI30KK3slIGlmIGRhdGEgYW5kIGRhdGEuc2NoZW1hIGFu ZCBkYXRhLnRtcGxuYW1lIGFuZCBkYXRhLnRtcGxsZXhpemUgJX0KKworQ1JF QVRFIFRFWFQgU0VBUkNIIFRFTVBMQVRFIHt7IGNvbm58cXRJZGVudChkYXRh LnNjaGVtYSwgZGF0YS50bXBsbmFtZSkgfX0gKAoreyUgaWYgZGF0YS50bXBs aW5pdCBhbmQgZGF0YS50bXBsaW5pdCAhPSAnLSclfSAgSU5JVCA9IHt7ZGF0 YS50bXBsaW5pdH19LHslIGVuZGlmICV9CisgIExFWElaRSA9IHt7ZGF0YS50 bXBsbGV4aXplfX0KKyk7Cit7IyBEZXNjcmlwdGlvbiBmb3IgVEVYVCBTRUFS Q0ggVEVNUExBVEUgI30KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KK0NP TU1FTlQgT04gVEVYVCBTRUFSQ0ggVEVNUExBVEUge3sgY29ubnxxdElkZW50 KGRhdGEuc2NoZW1hLCBkYXRhLnRtcGxuYW1lKSB9fQorICAgICAgSVMge3sg ZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAlfXsl IGVuZGlmICV9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMv ZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9kZWxldGUuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRl L3NxbC85LjFfcGx1cy9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmY3NmRlYzAKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVt cGxhdGUvc3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwyMSBA QAoreyMgRkVUQ0ggVEVYVCBTRUFSQ0ggVEVNUExBVEUgTkFNRSBTdGF0ZW1l bnQgI30KK3slIGlmIHRpZCAlfQorU0VMRUNUCisgICAgdC50bXBsbmFtZSBB UyBuYW1lLAorICAgIChTRUxFQ1QKKyAgICAgICAgbnNwbmFtZQorICAgIEZS T00KKyAgICAgICAgcGdfbmFtZXNwYWNlCisgICAgV0hFUkUKKyAgICAgICAg b2lkID0gdC50bXBsbmFtZXNwYWNlKSBhcyBzY2hlbWEKK0ZST00KKyAgICBw Z190c190ZW1wbGF0ZSB0IExFRlQgSk9JTiBwZ19kZXNjcmlwdGlvbiBkCisg ICAgT04gZC5vYmpvaWQ9dC5vaWQgQU5EIGQuY2xhc3NvaWQ9J3BnX3RzX3Rl bXBsYXRlJzo6cmVnY2xhc3MKK1dIRVJFCisgICAgdC5vaWQgPSB7e3RpZH19 OjpPSUQ7Cit7JSBlbmRpZiAlfQorCit7IyBEUk9QIFRFWFQgU0VBUkNIIFRF TVBMQVRFIFN0YXRlbWVudCAjfQoreyUgaWYgc2NoZW1hIGFuZCBuYW1lICV9 CitEUk9QIFRFWFQgU0VBUkNIIFRFTVBMQVRFIHt7Y29ubnxxdElkZW50KHNj aGVtYSl9fS57e2Nvbm58cXRJZGVudChuYW1lKX19IHslIGlmIGNhc2NhZGUg JX1DQVNDQURFeyVlbmRpZiV9OworeyUgZW5kaWYgJX0KXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9w bHVzL2Z1bmN0aW9ucy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxh dGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL2Z1bmN0 aW9ucy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NzNjZTllMgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0 c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9zcWwvOS4xX3Bs dXMvZnVuY3Rpb25zLnNxbApAQCAtMCwwICsxLDIyIEBACit7IyBGRVRDSCBs ZXhpemUgZnVuY3Rpb25zIGZvciBURVhUIFNFQVJDSCBURU1QTEFURSAjfQor eyUgaWYgbGV4aXplICV9CitTRUxFQ1QKKyAgICBwcm9uYW1lLCBuc3BuYW1l CitGUk9NCisgICAgcGdfcHJvYyBKT0lOIHBnX25hbWVzcGFjZSBuIE9OIG4u b2lkPXByb25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9yZXR0eXBlPTIyODEK KyAgICBBTkQgcHJvYXJndHlwZXM9JzIyODEgMjI4MSAyMjgxIDIyODEnCitP UkRFUiBCWSBwcm9uYW1lOworeyUgZW5kaWYgJX0KKworeyMgRkVUQ0ggaW5p dCBmdW5jdGlvbnMgZm9yIFRFWFQgU0VBUkNIIFRFTVBMQVRFICN9Cit7JSBp ZiBpbml0ICV9CitTRUxFQ1QKKyAgICBwcm9uYW1lLCBuc3BuYW1lCitGUk9N CisgICAgcGdfcHJvYyBKT0lOIHBnX25hbWVzcGFjZSBuIE9OIG4ub2lkPXBy b25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9yZXR0eXBlPTIyODEgYW5kIHBy b2FyZ3R5cGVzPScyMjgxJworT1JERVIgQlkgcHJvbmFtZTsKK3slIGVuZGlm ICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVz L3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL3Byb3BlcnRp ZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0 ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDE3NGI4Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRl cy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9wcm9wZXJ0 aWVzLnNxbApAQCAtMCwwICsxLDIzIEBACit7IyBHZXQgcHJvcGVydGllcyBm b3IgRlRTIFRFTVBMQVRFICN9CitTRUxFQ1QKKyAgICB0bXBsLm9pZCwKKyAg ICB0bXBsLnRtcGxuYW1lLAorICAgIHRtcGwudG1wbGluaXQsCisgICAgdG1w bC50bXBsbGV4aXplLAorICAgIGRlc2NyaXB0aW9uLAorICAgIHRtcGwudG1w bG5hbWVzcGFjZSBBUyBzY2hlbWEKK0ZST00KKyAgICBwZ190c190ZW1wbGF0 ZSB0bXBsIExFRlQgT1VURVIgSk9JTiBwZ19kZXNjcmlwdGlvbiBkZXMKK09O CisgICAgKGRlcy5vYmpvaWQ9dG1wbC5vaWQgQU5EIGRlcy5jbGFzc29pZD0n cGdfdHNfdGVtcGxhdGUnOjpyZWdjbGFzcykKK1dIRVJFCit7JSBpZiBzY2lk ICV9CisgICAgdG1wbC50bXBsbmFtZXNwYWNlID0ge3tzY2lkfX06Ok9JRAor eyUgZWxpZiBuYW1lICV9CisgICAgdG1wbC50bXBsbmFtZSA9IHt7bmFtZXxx dExpdGVyYWx9fQoreyUgZW5kaWYgJX0KK3slIGlmIHRpZCAlfQorICAgIEFO RCB0bXBsLm9pZCA9IHt7dGlkfX06Ok9JRAoreyUgZW5kaWYgJX0KK09SREVS IEJZCit0bXBsLnRtcGxuYW1lClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90 ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9zY2hlbWEuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRz X3RlbXBsYXRlL3NxbC85LjFfcGx1cy9zY2hlbWEuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiZDIwZTYKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRl cy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL3NjaGVtYS5zcWwKQEAgLTAs MCArMSwxOCBAQAoreyMgU0NIRU1BIG5hbWUgRkVUQ0ggc3RhdGVtZW50ICN9 Cit7JSBpZiBkYXRhLnNjaGVtYSAlfQorU0VMRUNUCisgICAgbnNwbmFtZQor RlJPTQorICAgIHBnX25hbWVzcGFjZQorV0hFUkUKKyAgICBvaWQgPSB7e2Rh dGEuc2NoZW1hfX06Ok9JRAorCit7JSBlbGlmIGRhdGEuaWQgJX0KK1NFTEVD VAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UgbnNwIExF RlQgSk9JTiBwZ190c190ZW1wbGF0ZSB0cworICAgIE9OIHRzLnRtcGxuYW1l c3BhY2UgPSBuc3Aub2lkCitXSEVSRQorICAgIHRzLm9pZCA9IHt7ZGF0YS5p ZH19OjpPSUQKK3slIGVuZGlmICV9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRl cy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9zcWwuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRz X3RlbXBsYXRlL3NxbC85LjFfcGx1cy9zcWwuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5NTk0NDIKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9m dHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL3NxbC5zcWwKQEAgLTAsMCArMSwz OSBAQAoreyMgUmV2ZXJzZSBlbmdpbmVlcmVkIHNxbCBmb3IgRlRTIFRFTVBM QVRFICN9CitTRUxFQ1QKKyAgICBhcnJheV90b19zdHJpbmcoYXJyYXlfYWdn KHNxbCksIEUnXG5cbicpIGFzIHNxbAorRlJPTQorKFNFTEVDVAorICAgIEUn LS0gVGV4dCBTZWFyY2ggVGVtcGxhdGU6ICcgfHwgbnNwbmFtZSB8fCBFJy4n IHx8CisgICAgdG1wbC50bXBsbmFtZSB8fAorICAgIEUnXG5cbi0tIERST1Ag VEVYVCBTRUFSQ0ggVEVNUExBVEUgJyB8fCBuc3BuYW1lIHx8IEUnLicgfHwg dG1wbC50bXBsbmFtZSB8fAorICAgIEUnXG5cbiAgQ1JFQVRFIFRFWFQgU0VB UkNIIFRFTVBMQVRFICcgfHwgbnNwbmFtZSB8fCBFJy4nIHx8ICB0bXBsLnRt cGxuYW1lIHx8IEUnKFxuJyB8fAorICAgIENBU0UgV0hFTiB0bXBsLnRtcGxp bml0ICE9ICctJzo6cmVnY2xhc3MgVEhFTgorICAgIEUnXHRJTklUID0gJyB8 fCB0bXBsLnRtcGxpbml0IHx8IEUnLFxuJyBFTFNFICcnIEVORCB8fAorICAg IEUnXHRMRVhJWkUgPSAnIHx8IHRtcGwudG1wbGxleGl6ZSB8fCBFJ1xuKTsn IHx8CisgICAgQ0FTRSBXSEVOIGEuZGVzY3JpcHRpb24gSVMgTk9UIE5VTEwg VEhFTgorICAgICAgICBFJ1xuXG5DT01NRU5UIE9OIFRFWFQgU0VBUkNIIFRF TVBMQVRFICcgfHwgbnNwbmFtZSB8fCBFJy4nIHx8IHRtcGwudG1wbG5hbWUg fHwKKyAgICAgICAgRScgSVMgJyB8fCBwZ19jYXRhbG9nLnF1b3RlX2xpdGVy YWwoZGVzY3JpcHRpb24pIHx8IEUnOycKKyAgICBFTFNFICcnICBFTkQgYXMg c3FsCitGUk9NCisgICAgcGdfdHNfdGVtcGxhdGUgdG1wbAorICAgIExFRlQg Sk9JTiAoCisgICAgICAgIFNFTEVDVAorICAgICAgICAgICAgZGVzLmRlc2Ny aXB0aW9uIGFzIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgZGVzLm9iam9p ZCBhcyBkZXNjb2lkCisgICAgICAgIEZST00KKyAgICAgICAgICAgIHBnX2Rl c2NyaXB0aW9uIGRlcworICAgICAgICBXSEVSRQorICAgICAgICAgICAgZGVz Lm9iam9pZD17e3RpZH19OjpPSUQgQU5EIGRlcy5jbGFzc29pZD0ncGdfdHNf dGVtcGxhdGUnOjpyZWdjbGFzcworICAgICkgYSBPTiAoYS5kZXNjb2lkID0g dG1wbC5vaWQpCisgICAgTEVGVCBKT0lOICgKKyAgICAgICAgU0VMRUNUCisg ICAgICAgICAgICBuc3BuYW1lLAorICAgICAgICAgICAgbnNwLm9pZCBhcyBu b2lkCisgICAgICAgIEZST00KKyAgICAgICAgICAgIHBnX25hbWVzcGFjZSBu c3AKKyAgICAgICAgV0hFUkUKKyAgICAgICAgICAgIG9pZCA9IHt7c2NpZH19 OjpPSUQKKyAgICApIGIgT04gKGIubm9pZCA9IHRtcGwudG1wbG5hbWVzcGFj ZSkKK1dIRVJFCisgICAgdG1wbC5vaWQ9e3t0aWR9fTo6T0lECispIGFzIGM7 ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3RlbXBs YXRlL3NxbC85LjFfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFf cGx1cy91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjA4ZGYyOTIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3Fs LzkuMV9wbHVzL3VwZGF0ZS5zcWwKQEAgLTAsMCArMSwxNSBAQAoreyMgVVBE QVRFIHN0YXRlbWVudCBmb3IgVEVYVCBTRUFSQ0ggVEVNUExBVEUgI30KK3sl IGlmIGRhdGEgJX0KK3slIGlmIGRhdGEudG1wbG5hbWUgYW5kIGRhdGEudG1w bG5hbWUgIT0gb19kYXRhLnRtcGxuYW1lICV9CisgIEFMVEVSIFRFWFQgU0VB UkNIIFRFTVBMQVRFIHt7Y29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEpfX0u e3tjb25ufHF0SWRlbnQob19kYXRhLnRtcGxuYW1lKX19CisgICAgICBSRU5B TUUgVE8ge3tkYXRhLnRtcGxuYW1lfX07Cit7JSBlbmRpZiAlfQoreyUgaWYg ZGF0YS5zY2hlbWEgYW5kIGRhdGEuc2NoZW1hICE9IG9fZGF0YS5zY2hlbWEg JX0KKyAgQUxURVIgVEVYVCBTRUFSQ0ggVEVNUExBVEUge3tjb25ufHF0SWRl bnQob19kYXRhLnNjaGVtYSl9fS57e2Nvbm58cXRJZGVudChvX2RhdGEudG1w bG5hbWUpfX0KKyAgICAgIFNFVCBTQ0hFTUEge3tkYXRhLnNjaGVtYX19Owor eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gYW5kIGRhdGEu ZGVzY3JpcHRpb24gIT0gb19kYXRhLmRlc2NyaXB0aW9uICV9CisgIENPTU1F TlQgT04gVEVYVCBTRUFSQ0ggVEVNUExBVEUge3tjb25ufHF0SWRlbnQob19k YXRhLnNjaGVtYSl9fS57e2Nvbm58cXRJZGVudChvX2RhdGEudG1wbG5hbWUp fX0KKyAgICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFsIH19 OworeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9ClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQo= --001a114dac44e15fa6052c70253d 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 --001a114dac44e15fa6052c70253d--