Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1aYVjk-0004Ub-IG for pgadmin-hackers@arkaria.postgresql.org; Wed, 24 Feb 2016 09:28:01 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aYVjj-0000WB-VY for pgadmin-hackers@arkaria.postgresql.org; Wed, 24 Feb 2016 09:28:00 +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 1aYVjf-0000PY-DE for pgadmin-hackers@postgresql.org; Wed, 24 Feb 2016 09:27:55 +0000 Received: from mail-lb0-x230.google.com ([2a00:1450:4010:c04::230]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1aYVjY-00063O-PX for pgadmin-hackers@postgresql.org; Wed, 24 Feb 2016 09:27:54 +0000 Received: by mail-lb0-x230.google.com with SMTP id x1so6797025lbj.3 for ; Wed, 24 Feb 2016 01:27:48 -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=RCUy+gvgYVx54xLadwVv7FgfJWmcFZvBKhiNooWqsaU=; b=aBnSG+YxHUbnw47cKnx353gCL1ptUZZ4T+AlOLKaWMZgS7tad4OIv68TftDy/vRM46 COifp44vve1T87ZWZrCpT05AMRvxtxawK69BZMhlRiWTk2o34NAPDiwxBE29EQvfPpiE 0fR4ZmWa4SNC6GrMNZuB6E6QEGpYAecqavg2diOc0ZUdVPAZPseT/3ma/i4XWaif/YLJ DFdLUFFqs8aYGVHR3jTrjKANv0gJQ412yIVC63N0qLrCTG5OxySmr5/fOwp3pAgsa6WJ Yj8cl0ovz2IBOa3ZlsxbqNw6gTh1Y4uAutHxCQz1P7QwFz7Qzs3ba80gDSk7kyaUWpZa sj9A== 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=RCUy+gvgYVx54xLadwVv7FgfJWmcFZvBKhiNooWqsaU=; b=Heke8lkDcRE2mQ9lmlzzonL/TD6w/8n/f0hyV0u0KMtmUSHNtcVS8hZOtj6PPuofqG LPs0v4KUPkJxWYwmzvxPNSsduortAw0wU56Ra6Va2ussK2+I5pQDjuOpQLmr/nnyTsqZ 7J7tZWwubZP1gHC+G6KSHLh3olAj8iX6nTkU4/MB+ZE9Ro68w8amBgWNxAMwwIAcwRQl SHyGEKLTH1KJxPnXl4Beul15NLwOD6i6rpHVFzx8DQmjsFENW86dPnCKzEb8y2K/WLxq 6jjWjrAZ+7zFoYU1FJqwTlKe9B1R1ehgqrVtSfADyihaxuSR+zeRjDCvprEXgVQOcJja V2eg== X-Gm-Message-State: AG10YORWFUVyn+WiVFmpHEjq8Whx9hTw0TwJXmblAEvPnk9fZ46DNsHQSrjCIwKF2RzXdjUpVLMQ+t71rRsr5iej MIME-Version: 1.0 X-Received: by 10.112.198.162 with SMTP id jd2mr11809763lbc.53.1456306066874; Wed, 24 Feb 2016 01:27:46 -0800 (PST) Received: by 10.25.159.85 with HTTP; Wed, 24 Feb 2016 01:27:46 -0800 (PST) In-Reply-To: References: Date: Wed, 24 Feb 2016 14:57:46 +0530 Message-ID: Subject: Re: [pgAdmin4] [Patch]: Foreign Table Module From: Khushboo Vashi To: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a11c349d6cd7145052c80adad 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 --001a11c349d6cd7145052c80adad Content-Type: multipart/alternative; boundary=001a11c349d6cd713f052c80adab --001a11c349d6cd713f052c80adab Content-Type: text/plain; charset=UTF-8 Hi, I have updated the Foreign Table module as below: - Used 'NodeByListControl' to get schemas, in the foreign_table.js file as suggested by Ashesh to avoid code redundancy. - Applied *'Security Label Macro'* Patch (Implemented by Harshal). To test the Foreign Table patch, 'Security Label Macro' patch must be applied first as that is not committed yet. Please find attached Foreign Table Patch. Thanks, Khushboo On Tue, Feb 23, 2016 at 6:53 PM, Khushboo Vashi < khushboo.vashi@enterprisedb.com> wrote: > Hi, > > Please find attached patch for the Foreign Table Module. > > The patch will be modified after Types module implementation as we need to > populate Base Type and some Type related validations from the Types module. > > Please review it and let me know the feedback. > > Thanks, > Khushboo > --001a11c349d6cd713f052c80adab Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

I have updated the Fo= reign Table module as below:

- Used 'NodeByList= Control' to get schemas, in the foreign_table.js file as suggested by A= shesh to avoid code redundancy.

- Applied 'Security Lab= el Macro'=C2=A0 Patch (Implemented by Harshal).
=C2=A0 To test= the Foreign Table patch, 'Security Label Macro' patch must be appl= ied first as that is not committed yet.

Please= find attached Foreign Table Patch.

Thanks,
Khus= hboo

On Tue,= Feb 23, 2016 at 6:53 PM, Khushboo Vashi <khushboo.vashi@ent= erprisedb.com> wrote:
Hi,

Please find attached patch for the Foreign Table Mod= ule.

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

Please review it and let me know the feedback.
Thanks,
Khushboo

--001a11c349d6cd713f052c80adab-- --001a11c349d6cd7145052c80adad Content-Type: text/x-patch; charset=US-ASCII; name="Foreign_table_ver_1.patch" Content-Disposition: attachment; filename="Foreign_table_ver_1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_il0myhjv1 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL19f aW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvX19p bml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u YmU5ZTY3MQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Zv cmVpZ25fdGFibGVzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsOTcyIEBACisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQg LSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAt IDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBz b2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNl bmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisiIiJU aGUgRm9yZWlnbiBUYWJsZSBNb2R1bGUuIiIiCisKK2ltcG9ydCBqc29uCitm cm9tIGZsYXNrIGltcG9ydCByZW5kZXJfdGVtcGxhdGUsIG1ha2VfcmVzcG9u c2UsIHJlcXVlc3QsIGpzb25pZnksIFwKKyAgICBjdXJyZW50X2FwcAorZnJv bSBmbGFzay5leHQuYmFiZWwgaW1wb3J0IGdldHRleHQKK2Zyb20gcGdhZG1p bi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2UsIFwKKyAg ICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UsIGludGVybmFsX3Nl cnZlcl9lcnJvcgorZnJvbSBwZ2FkbWluLmJyb3dzZXIudXRpbHMgaW1wb3J0 IFBHQ2hpbGROb2RlVmlldworZnJvbSBwZ2FkbWluLmJyb3dzZXIuY29sbGVj dGlvbiBpbXBvcnQgQ29sbGVjdGlvbk5vZGVNb2R1bGUKK2ltcG9ydCBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5z Y2hlbWFzIGFzIHNjaGVtYXMKK2Zyb20gcGdhZG1pbi51dGlscy5hamF4IGlt cG9ydCBwcmVjb25kaXRpb25fcmVxdWlyZWQKK2Zyb20gcGdhZG1pbi51dGls cy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20gY29uZmlnIGltcG9y dCBQR19ERUZBVUxUX0RSSVZFUgorZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHdy YXBzCitpbXBvcnQgc3lzCitpbXBvcnQgdHJhY2ViYWNrCisKKworY2xhc3Mg Rm9yZWlnblRhYmxlTW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxlKToKKyAg ICAiIiIKKyAgICBjbGFzcyBGb3JlaWduVGFibGVNb2R1bGUoQ29sbGVjdGlv bk5vZGVNb2R1bGUpOgorCisgICAgICAgIFRoaXMgY2xhc3MgcmVwcmVzZW50 cyBUaGUgRm9yZWlnbiBUYWJsZSBNb2R1bGUuCisKKyAgICBNZXRob2RzOgor ICAgIC0tLS0tLS0KKyAgICAqIF9faW5pdF9fKCphcmdzLCAqKmt3YXJncykK KyAgICAgIC0gSW5pdGlhbGl6ZSB0aGUgRm9yZWlnbiBUYWJsZSBNb2R1bGUu CisKKyAgICAqIGdldF9ub2RlcyhnaWQsIHNpZCwgZGlkLCBzY2lkKQorICAg ICAgLSBHZW5lcmF0ZSB0aGUgRm9yZWlnbiBUYWJsZSBjb2xsZWN0aW9uIG5v ZGUuCisKKyAgICAqIG5vZGVfaW5vZGUoKToKKyAgICAgIC0gT3ZlcnJpZGUg dGhpcyBwcm9wZXJ0eSB0byBtYWtlIHRoZSBGb3JlaWduIFRhYmxlIG5vZGUg YXMgbGVhZiBub2RlLgorCisgICAgKiBzY3JpcHRfbG9hZCgpCisgICAgICAt IExvYWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9yIEZvcmVpZ24gVGFibGUsIHdo ZW4gc2NoZW1hIG5vZGUgaXMKKyAgICAgICAgaW5pdGlhbGl6ZWQuCisgICAg IiIiCisgICAgTk9ERV9UWVBFID0gJ2ZvcmVpZ24tdGFibGUnCisgICAgQ09M TEVDVElPTl9MQUJFTCA9IGdldHRleHQoIkZvcmVpZ24gVGFibGVzIikKKwor ICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAg ICAgICBzdXBlcihGb3JlaWduVGFibGVNb2R1bGUsIHNlbGYpLl9faW5pdF9f KCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5taW5fdmVyID0gTm9u ZQorICAgICAgICBzZWxmLm1heF92ZXIgPSBOb25lCisKKyAgICBkZWYgZ2V0 X25vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgICAi IiIKKyAgICAgICAgR2VuZXJhdGUgdGhlIEZvcmVpZ24gVGFibGUgY29sbGVj dGlvbiBub2RlLgorICAgICAgICAiIiIKKyAgICAgICAgeWllbGQgc2VsZi5n ZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZShzY2lkKQorCisgICAg QHByb3BlcnR5CisgICAgZGVmIG5vZGVfaW5vZGUoc2VsZik6CisgICAgICAg ICIiIgorICAgICAgICBPdmVycmlkZSB0aGlzIHByb3BlcnR5IHRvIG1ha2Ug dGhlIG5vZGUgYXMgbGVhZiBub2RlLgorICAgICAgICAiIiIKKyAgICAgICAg cmV0dXJuIEZhbHNlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc2NyaXB0 X2xvYWQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBMb2FkIHRoZSBt b2R1bGUgc2NyaXB0IGZvciBmb3JlaWduIHRhYmxlLCB3aGVuIHRoZQorICAg ICAgICBzY2hlbWEgbm9kZSBpcyBpbml0aWFsaXplZC4KKyAgICAgICAgIiIi CisgICAgICAgIHJldHVybiBzY2hlbWFzLlNjaGVtYU1vZHVsZS5OT0RFX1RZ UEUKKworCitibHVlcHJpbnQgPSBGb3JlaWduVGFibGVNb2R1bGUoX19uYW1l X18pCisKKworY2xhc3MgRm9yZWlnblRhYmxlVmlldyhQR0NoaWxkTm9kZVZp ZXcpOgorICAgICIiIgorICAgIGNsYXNzIEZvcmVpZ25UYWJsZVZpZXcoUEdD aGlsZE5vZGVWaWV3KQorCisgICAgVGhpcyBjbGFzcyBpbmhlcml0cyBQR0No aWxkTm9kZVZpZXcgdG8gZ2V0IHRoZSBkaWZmZXJlbnQgcm91dGVzIGZvcgor ICAgIHRoZSBtb2R1bGUuCisKKyAgICBUaGUgY2xhc3MgaXMgcmVzcG9uc2li bGUgdG8gQ3JlYXRlLCBSZWFkLCBVcGRhdGUgYW5kIERlbGV0ZSBvcGVyYXRp b25zIGZvcgorICAgIHRoZSBGb3JlaWduIFRhYmxlLgorCisgICAgTWV0aG9k czoKKyAgICAtLS0tLS0tCisgICAgKiB2YWxpZGF0ZV9yZXF1ZXN0KGYpOgor ICAgICAgLSBXb3JrcyBhcyBhIGRlY29yYXRvci4KKyAgICAgICAgVmFsaWRh dGluZyByZXF1ZXN0IG9uIHRoZSByZXF1ZXN0IG9mIGNyZWF0ZSwgdXBkYXRl IGFuZCBtb2RpZmllZCBTUUwuCisKKyAgICAqIG1vZHVsZV9qcygpOgorICAg ICAgLSBPdmVycmlkZXMgdGhpcyBwcm9wZXJ0eSB0byBkZWZpbmUgamF2YXNj cmlwdCBmb3IgRm9yZWlnbiBUYWJsZSBub2RlLgorCisgICAgKiBjaGVja19w cmVjb25kaXRpb24oZik6CisgICAgICAtIFdvcmtzIGFzIGEgZGVjb3JhdG9y LgorICAgICAgLSBDaGVja3MgZGF0YWJhc2UgY29ubmVjdGlvbiBzdGF0dXMu CisgICAgICAtIEF0dGFjaCBjb25uZWN0aW9uIG9iamVjdCBhbmQgdGVtcGxh dGUgcGF0aC4KKworICAgICogbGlzdChnaWQsIHNpZCwgZGlkLCBzY2lkKToK KyAgICAgIC0gTGlzdCB0aGUgRm9yZWlnbiBUYWJsZS4KKworICAgICogbm9k ZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAtIFJldHVybnMgYWxs IHRoZSBGb3JlaWduIFRhYmxlIHRvIGdlbmVyYXRlIE5vZGVzIGluIHRoZSBi cm93c2VyLgorCisgICAgKiBwcm9wZXJ0aWVzKGdpZCwgc2lkLCBkaWQsIHNj aWQsIGZvaWQpOgorICAgICAgLSBSZXR1cm5zIHRoZSBGb3JlaWduIFRhYmxl IHByb3BlcnRpZXMuCisKKyAgICAqIGdldF9jb2xsYXRpb25zKGdpZCwgc2lk LCBkaWQsIHNjaWQsIGZvaWQ9Tm9uZSk6CisgICAgICAtIFJldHVybnMgQ29s bGF0aW9ucy4KKworICAgICogZ2V0X3R5cGVzKGdpZCwgc2lkLCBkaWQsIHNj aWQsIGZvaWQ9Tm9uZSk6CisgICAgICAtIFJldHVybnMgRGF0YSBUeXBlcy4K KworICAgICogZ2V0X2ZvcmVpZ25fc2VydmVycyhnaWQsIHNpZCwgZGlkLCBz Y2lkLCBmb2lkPU5vbmUpOgorICAgICAgLSBSZXR1cm5zIHRoZSBGb3JlaWdu IFNlcnZlcnMuCisKKyAgICAqIGdldF90YWJsZXMoZ2lkLCBzaWQsIGRpZCwg c2NpZCwgZm9pZD1Ob25lKToKKyAgICAgIC0gUmV0dXJucyB0aGUgRm9yZWln biBUYWJsZXMgYXMgd2VsbCBhcyBQbGFpbiBUYWJsZXMuCisKKyAgICAqIGdl dF9jb2x1bW5zKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZvaWQ9Tm9uZSk6Cisg ICAgICAtIFJldHVybnMgdGhlIFRhYmxlIENvbHVtbnMuCisKKyAgICAqIGNy ZWF0ZShnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAgIC0gQ3JlYXRlcyBh IG5ldyBGb3JlaWduIFRhYmxlIG9iamVjdC4KKworICAgICogdXBkYXRlKGdp ZCwgc2lkLCBkaWQsIHNjaWQsIGZvaWQpOgorICAgICAgLSBVcGRhdGVzIHRo ZSBGb3JlaWduIFRhYmxlIG9iamVjdC4KKworICAgICogZGVsZXRlKGdpZCwg c2lkLCBkaWQsIHNjaWQsIGZvaWQpOgorICAgICAgLSBEcm9wcyB0aGUgRm9y ZWlnbiBUYWJsZSBvYmplY3QuCisKKyAgICAqIHNxbChnaWQsIHNpZCwgZGlk LCBzY2lkLCBmb2lkKToKKyAgICAgIC0gUmV0dXJucyB0aGUgU1FMIGZvciB0 aGUgRm9yZWlnbiBUYWJsZSBvYmplY3QuCisKKyAgICAqIG1zcWwoZ2lkLCBz aWQsIGRpZCwgc2NpZCwgZm9pZD1Ob25lKToKKyAgICAgIC0gUmV0dXJucyB0 aGUgbW9kaWZpZWQgU1FMLgorCisgICAgKiBnZXRfc3FsKGdpZCwgc2lkLCBk YXRhLCBzY2lkLCBmb2lkPU5vbmUpOgorICAgICAgLSBHZW5lcmF0ZXMgdGhl IFNRTCBzdGF0ZW1lbnRzIHRvIGNyZWF0ZS91cGRhdGUgdGhlIEZvcmVpZ24g VGFibGUgb2JqZWN0LgorCisgICAgKiBkZXBlbmRlbnRzKGdpZCwgc2lkLCBk aWQsIHNjaWQsIGZvaWQpOgorICAgICAgLSBSZXR1cm5zIHRoZSBkZXBlbmRl bnRzIGZvciB0aGUgRm9yZWlnbiBUYWJsZSBvYmplY3QuCisKKyAgICAqIGRl cGVuZGVuY2llcyhnaWQsIHNpZCwgZGlkLCBzY2lkLCBmb2lkKToKKyAgICAg IC0gUmV0dXJucyB0aGUgZGVwZW5kZW5jaWVzIGZvciB0aGUgRm9yZWlnbiBU YWJsZSBvYmplY3QuCisKKyAgICAqIGdldF9wcm9wZXJ0aWVzKGdpZCwgc2lk LCBkaWQsIHNjaWQsIGZvaWQsIGluaGVyaXRzPUZhbHNlKToKKyAgICAgIC0g UmV0dXJucyB0aGUgRm9yZWlnbiBUYWJsZSBwcm9wZXJ0aWVzIHdoaWNoIHdp bGwgYmUgdXNlZCBpbgorICAgICAgICBwcm9wZXJ0aWVzLCBzcWwgYW5kIGdl dF9zcWwgZnVuY3Rpb25zLgorICAgICIiIgorCisgICAgbm9kZV90eXBlID0g Ymx1ZXByaW50Lm5vZGVfdHlwZQorCisgICAgcGFyZW50X2lkcyA9IFsKKyAg ICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdnaWQnfSwKKyAgICAgICAg eyd0eXBlJzogJ2ludCcsICdpZCc6ICdzaWQnfSwKKyAgICAgICAgeyd0eXBl JzogJ2ludCcsICdpZCc6ICdkaWQnfSwKKyAgICAgICAgeyd0eXBlJzogJ2lu dCcsICdpZCc6ICdzY2lkJ30KKyAgICBdCisgICAgaWRzID0gWworICAgICAg ICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ2ZvaWQnfQorICAgIF0KKworICAg IG9wZXJhdGlvbnMgPSBkaWN0KHsKKyAgICAgICAgJ29iaic6IFsKKyAgICAg ICAgICAgIHsnZ2V0JzogJ3Byb3BlcnRpZXMnLCAnZGVsZXRlJzogJ2RlbGV0 ZScsICdwdXQnOiAndXBkYXRlJ30sCisgICAgICAgICAgICB7J2dldCc6ICds aXN0JywgJ3Bvc3QnOiAnY3JlYXRlJ30KKyAgICAgICAgXSwKKyAgICAgICAg J2RlbGV0ZSc6IFt7J2RlbGV0ZSc6ICdkZWxldGUnfV0sCisgICAgICAgICdj aGlsZHJlbic6IFt7J2dldCc6ICdjaGlsZHJlbid9XSwKKyAgICAgICAgJ25v ZGVzJzogW3snZ2V0JzogJ25vZGUnfSwgeydnZXQnOiAnbm9kZXMnfV0sCisg ICAgICAgICdzcWwnOiBbeydnZXQnOiAnc3FsJ31dLAorICAgICAgICAnbXNx bCc6IFt7J2dldCc6ICdtc3FsJ30sIHsnZ2V0JzogJ21zcWwnfV0sCisgICAg ICAgICdzdGF0cyc6IFt7J2dldCc6ICdzdGF0aXN0aWNzJ31dLAorICAgICAg ICAnZGVwZW5kZW5jeSc6IFt7J2dldCc6ICdkZXBlbmRlbmNpZXMnfV0sCisg ICAgICAgICdkZXBlbmRlbnQnOiBbeydnZXQnOiAnZGVwZW5kZW50cyd9XSwK KyAgICAgICAgJ21vZHVsZS5qcyc6IFt7fSwge30sIHsnZ2V0JzogJ21vZHVs ZV9qcyd9XSwKKyAgICAgICAgJ2dldF9jb2xsYXRpb25zJzogWworICAgICAg ICAgICAgeydnZXQnOiAnZ2V0X2NvbGxhdGlvbnMnfSwKKyAgICAgICAgICAg IHsnZ2V0JzogJ2dldF9jb2xsYXRpb25zJ30KKyAgICAgICAgICAgIF0sCisg ICAgICAgICdnZXRfdHlwZXMnOiBbeydnZXQnOiAnZ2V0X3R5cGVzJ30sIHsn Z2V0JzogJ2dldF90eXBlcyd9XSwKKyAgICAgICAgJ2dldF9mb3JlaWduX3Nl cnZlcnMnOiBbeydnZXQnOiAnZ2V0X2ZvcmVpZ25fc2VydmVycyd9LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J2dldCc6ICdnZXRfZm9y ZWlnbl9zZXJ2ZXJzJ31dLAorICAgICAgICAnZ2V0X3RhYmxlcyc6IFt7J2dl dCc6ICdnZXRfdGFibGVzJ30sIHsnZ2V0JzogJ2dldF90YWJsZXMnfV0sCisg ICAgICAgICdnZXRfY29sdW1ucyc6IFt7J2dldCc6ICdnZXRfY29sdW1ucyd9 LCB7J2dldCc6ICdnZXRfY29sdW1ucyd9XQorICAgIH0pCisKKyAgICBkZWYg dmFsaWRhdGVfcmVxdWVzdChmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdv cmtzIGFzIGEgZGVjb3JhdG9yLgorICAgICAgICBWYWxpZGF0aW5nIHJlcXVl c3Qgb24gdGhlIHJlcXVlc3Qgb2YgY3JlYXRlLCB1cGRhdGUgYW5kIG1vZGlm aWVkIFNRTC4KKworICAgICAgICBSZXF1aXJlZCBBcmdzOgorICAgICAgICAg ICAgICAgICAgICBuYW1lOiBOYW1lIG9mIHRoZSBGb3JlaWduIFRhYmxlCisg ICAgICAgICAgICAgICAgICAgIGZ0c3J2bmFtZTogRm9yZWlnbiBTZXJ2ZXIg TmFtZQorCisgICAgICAgIEFib3ZlIGJvdGggdGhlIGFyZ3VtZW50cyB3aWxs IG5vdCBiZSB2YWxpZGF0ZWQgaW4gdGhlIHVwZGF0ZSBhY3Rpb24uCisgICAg ICAgICIiIgorICAgICAgICBAd3JhcHMoZikKKyAgICAgICAgZGVmIHdyYXAo c2VsZiwgKiprd2FyZ3MpOgorCisgICAgICAgICAgICBkYXRhID0ge30KKyAg ICAgICAgICAgIGlmIHJlcXVlc3QuZGF0YToKKyAgICAgICAgICAgICAgICBy ZXEgPSBqc29uLmxvYWRzKHJlcXVlc3QuZGF0YSkKKyAgICAgICAgICAgIGVs c2U6CisgICAgICAgICAgICAgICAgcmVxID0gcmVxdWVzdC5hcmdzIG9yIHJl cXVlc3QuZm9ybQorCisgICAgICAgICAgICBpZiAnZm9pZCcgbm90IGluIGt3 YXJnczoKKyAgICAgICAgICAgICAgICByZXF1aXJlZF9hcmdzID0gWworICAg ICAgICAgICAgICAgICAgICAnbmFtZScsCisgICAgICAgICAgICAgICAgICAg ICdmdHNydm5hbWUnCisgICAgICAgICAgICAgICAgXQorCisgICAgICAgICAg ICAgICAgZm9yIGFyZyBpbiByZXF1aXJlZF9hcmdzOgorICAgICAgICAgICAg ICAgICAgICBpZiBhcmcgbm90IGluIHJlcSBvciByZXFbYXJnXSA9PSAnJzoK KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVz cG9uc2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTQx MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzPTAsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Jtc2c9Z2V0dGV4dCgK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvdWxkbid0IGZp bmQgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciBcCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICglcykuIiAlIGFyZworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgICAgICkKKwor ICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGxpc3RfcGFyYW1z ID0gW10KKyAgICAgICAgICAgICAgICBpZiByZXF1ZXN0Lm1ldGhvZCA9PSAn R0VUJzoKKyAgICAgICAgICAgICAgICAgICAgbGlzdF9wYXJhbXMgPSBbJ2Nv bnN0cmFpbnRzJywgJ2NvbHVtbnMnLCAnZnRvcHRpb25zJywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NlY2xhYmVscycsICdpbmhl cml0cyddCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg ICAgICAgbGlzdF9wYXJhbXMgPSBbJ2luaGVyaXRzJ10KKworICAgICAgICAg ICAgICAgIGZvciBrZXkgaW4gcmVxOgorICAgICAgICAgICAgICAgICAgICBp ZiBrZXkgaW4gbGlzdF9wYXJhbXMgYW5kIHJlcVtrZXldICE9ICcnIFwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgcmVxW2tleV0gaXMgbm90 IE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICAjIENvdmVydHMgc3Ry aW5nIGludG8gcHl0aG9uIGxpc3QgYXMgZXhwZWN0ZWQuCisgICAgICAgICAg ICAgICAgICAgICAgICBkYXRhW2tleV0gPSBqc29uLmxvYWRzKHJlcVtrZXld KQorCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBrZXkgPT0gJ2luaGVy aXRzJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIENvbnZlcnQg VGFibGUgaWRzIGZyb20gdW5pY29kZS9zdHJpbmcgdG8gaW50CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIyBhbmQgbWFrZSB0dXBsZSBmb3IgJ0lO JyBxdWVyeS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmhlcml0 cyA9IHR1cGxlKFtpbnQoeCkgZm9yIHggaW4gZGF0YVtrZXldXSkKKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGxlbihpbmhlcml0cykgPT0g MToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBQeXRob24g dHVwcGxlIGhhcyAsIGFmdGVyIHRoZSBmaXJzdCBwYXJhbQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjIGluIGNhc2Ugb2Ygc2luZ2xlIHBh cmFtZXRlci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBT bywgd2UgbmVlZCB0byBtYWtlIGl0IHR1cGxlIGV4cGxpY2l0bHkuCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaGVyaXRzID0gIigiICsg c3RyKGluaGVyaXRzWzBdKSArICIpIgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIGluaGVyaXRzOgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjIEZldGNoIFRhYmxlIE5hbWVzIGZyb20gdGhlaXIgcmVzcGVj dGl2ZSBJZHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg YXMgd2UgbmVlZCBUYWJsZSBuYW1lcyB0byBnZW5lcmF0ZSB0aGUgU1FMLgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUUwgPSByZW5kZXJf dGVtcGxhdGUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZXRfdGFibGVz LnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGF0dHJlbGlkPWluaGVyaXRzKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qo U1FMKQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5v dCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykK KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAnaW5oZXJp dHMnIGluIHJlc1sncm93cyddWzBdOgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGF0YVtrZXldID0gcmVzWydyb3dzJ11bMF1bJ2lu aGVyaXRzJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFb a2V5XSA9IFtdCisKKyAgICAgICAgICAgICAgICAgICAgZWxpZiBrZXkgPT0g J3R5cG5vdG51bGwnOgorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtr ZXldID0gVHJ1ZSBpZiAocmVxW2tleV0gPT0gJ3RydWUnIG9yIHJlcVtrZXld CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpcyBUcnVlKSBlbHNlIEZhbHNlIGlmXAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChyZXFba2V5XSA9PSAnZmFsc2UnIG9yIHJlcVtrZXldKSBp cyBGYWxzZSBlbHNlICcnCisgICAgICAgICAgICAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2tleV0gPSByZXFba2V5XQor CisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1zdHIoZSkpCisKKyAgICAgICAgICAgIHNlbGYucmVxdWVzdCA9IGRhdGEK KyAgICAgICAgICAgIHJldHVybiBmKHNlbGYsICoqa3dhcmdzKQorCisgICAg ICAgIHJldHVybiB3cmFwCisKKyAgICBkZWYgbW9kdWxlX2pzKHNlbGYpOgor ICAgICAgICAiIiIKKyAgICAgICAgTG9hZCBKUyBmaWxlIChmb3JlaWduX3Rh Ymxlcy5qcykgZm9yIHRoaXMgbW9kdWxlLgorICAgICAgICAiIiIKKyAgICAg ICAgcmV0dXJuIG1ha2VfcmVzcG9uc2UoCisgICAgICAgICAgICByZW5kZXJf dGVtcGxhdGUoCisgICAgICAgICAgICAgICAgImZvcmVpZ25fdGFibGVzL2pz L2ZvcmVpZ25fdGFibGVzLmpzIiwKKyAgICAgICAgICAgICAgICBfPWdldHRl eHQKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAyMDAsIHsnQ29udGVu dC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCd9CisgICAgICAg ICkKKworICAgIGRlZiBjaGVja19wcmVjb25kaXRpb24oZik6CisgICAgICAg ICIiIgorICAgICAgICBXb3JrcyBhcyBhIGRlY29yYXRvci4KKyAgICAgICAg Q2hlY2tzIHRoZSBkYXRhYmFzZSBjb25uZWN0aW9uIHN0YXR1cy4KKyAgICAg ICAgQXR0YWNoZXMgdGhlIGNvbm5lY3Rpb24gb2JqZWN0IGFuZCB0ZW1wbGF0 ZSBwYXRoIHRvIHRoZSBjbGFzcyBvYmplY3QuCisgICAgICAgICIiIgorICAg ICAgICBAd3JhcHMoZikKKyAgICAgICAgZGVmIHdyYXAoKmFyZ3MsICoqa3dh cmdzKToKKyAgICAgICAgICAgIHNlbGYgPSBhcmdzWzBdCisgICAgICAgICAg ICBkcml2ZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKQorICAg ICAgICAgICAgc2VsZi5tYW5hZ2VyID0gZHJpdmVyLmNvbm5lY3Rpb25fbWFu YWdlcihrd2FyZ3NbJ3NpZCddKQorCisgICAgICAgICAgICAjIEdldCBkYXRh YmFzZSBjb25uZWN0aW9uCisgICAgICAgICAgICBzZWxmLmNvbm4gPSBzZWxm Lm1hbmFnZXIuY29ubmVjdGlvbihkaWQ9a3dhcmdzWydkaWQnXSkKKworICAg ICAgICAgICAgc2VsZi5xdElkZW50ID0gZHJpdmVyLnF0SWRlbnQKKworICAg ICAgICAgICAgaWYgbm90IHNlbGYuY29ubi5jb25uZWN0ZWQoKToKKyAgICAg ICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKAorICAg ICAgICAgICAgICAgICAgICBnZXR0ZXh0KAorICAgICAgICAgICAgICAgICAg ICAgICAgIkNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0 ISIKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICkK KworICAgICAgICAgICAgdmVyID0gc2VsZi5tYW5hZ2VyLnZlcnNpb24KKyAg ICAgICAgICAgIHNlcnZlcl90eXBlID0gc2VsZi5tYW5hZ2VyLnNlcnZlcl90 eXBlCisKKyAgICAgICAgICAgICMgU2V0IHRlbXBsYXRlIHBhdGggZm9yIHNx bCBzY3JpcHRzIGRlcGVuZGluZworICAgICAgICAgICAgIyBvbiB0aGUgc2Vy dmVyIHZlcnNpb24uCisKKyAgICAgICAgICAgIGlmIHZlciA+PSA5MDUwMDoK KyAgICAgICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGggPSAnZm9yZWln bl90YWJsZXMvc3FsLzkuNV9wbHVzJworICAgICAgICAgICAgZWxpZiB2ZXIg Pj0gOTAzMDA6CisgICAgICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRo ID0gJ2ZvcmVpZ25fdGFibGVzL3NxbC85LjNfcGx1cycKKyAgICAgICAgICAg IGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0g J2ZvcmVpZ25fdGFibGVzL3NxbC85LjFfcGx1cycKKworICAgICAgICAgICAg cmV0dXJuIGYoKmFyZ3MsICoqa3dhcmdzKQorCisgICAgICAgIHJldHVybiB3 cmFwCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGxpc3Qo c2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAgICIiIgorICAg ICAgICBMaXN0IGFsbCB0aGUgRm9yZWlnbiBUYWJsZXMuCisKKyAgICAgICAg QXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElkCisgICAg ICAgICAgICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAgICAgZGlkOiBEYXRh YmFzZSBJZAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElkCisgICAgICAg ICIiIgorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4o W3NlbGYudGVtcGxhdGVfcGF0aCwgJ25vZGUuc3FsJ10pLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2NpZD1zY2lkKQorICAgICAgICBzdGF0 dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorCisgICAg ICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgcmV0dXJu IGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25zZT1yZXNbJ3Jv d3MnXSwKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisg ICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBub2RlcyhzZWxmLCBn aWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIFJl dHVybnMgdGhlIEZvcmVpZ24gVGFibGVzIHRvIGdlbmVyYXRlIHRoZSBOb2Rl cy4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIg R3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElkCisgICAgICAg ICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgICAgICBzY2lkOiBTY2hl bWEgSWQKKyAgICAgICAgIiIiCisKKyAgICAgICAgcmVzID0gW10KKyAgICAg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBs YXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ25vZGUuc3FsJ10pLCBzY2lkPXNjaWQpCisgICAgICAgIHN0YXR1 cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQorCisg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJzZXQpCisKKyAgICAgICAg Zm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAgICByZXMuYXBw ZW5kKAorICAgICAgICAgICAgICAgIHNlbGYuYmx1ZXByaW50LmdlbmVyYXRl X2Jyb3dzZXJfbm9kZSgKKyAgICAgICAgICAgICAgICAgICAgcm93WydvaWQn XSwKKyAgICAgICAgICAgICAgICAgICAgc2NpZCwKKyAgICAgICAgICAgICAg ICAgICAgcm93WyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgIGljb249 Imljb24tZm9yZWlnbi10YWJsZSIKKyAgICAgICAgICAgICAgICApKQorCisg ICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAg ICBkYXRhPXJlcywKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAg KQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBwcm9wZXJ0 aWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZvaWQpOgorICAgICAg ICAiIiIKKyAgICAgICAgUmV0dXJucyB0aGUgRm9yZWlnbiBUYWJsZSBwcm9w ZXJ0aWVzLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNl cnZlciBHcm91cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAg ICAgICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6 IFNjaGVtYSBJZAorICAgICAgICAgICAgZm9pZDogRm9yZWlnbiBUYWJsZSBJ ZAorICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9IHNlbGYuZ2V0X3Byb3Bl cnRpZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm9pZCkKKworICAgICAgICBy ZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPWRh dGEsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKworICAg IEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZ2V0X2NvbGxhdGlvbnMo c2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm9pZD1Ob25lKToKKyAgICAg ICAgIiIiCisgICAgICAgIFJldHVybnMgdGhlIENvbGxhdGlvbnMuCisKKyAg ICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElk CisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAgICAgZGlk OiBEYXRhYmFzZSBJZAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElkCisg ICAgICAgICAgICBmb2lkOiBGb3JlaWduIFRhYmxlIElkCisgICAgICAgICIi IgorCisgICAgICAgIHJlcyA9IFt7J2xhYmVsJzogJycsICd2YWx1ZSc6ICcn fV0KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3Rl bXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZXRfY29s bGF0aW9ucy5zcWwnXSkpCisgICAgICAgICAgICBzdGF0dXMsIHJzZXQgPSBz ZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAgICAgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIGZv ciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgICAgIHJlcy5h cHBlbmQoCisgICAgICAgICAgICAgICAgICAgIHsnbGFiZWwnOiByb3dbJ2Nv cHlfY29sbGF0aW9uJ10sCisgICAgICAgICAgICAgICAgICAgICAndmFsdWUn OiByb3dbJ2NvcHlfY29sbGF0aW9uJ119CisgICAgICAgICAgICAgICAgKQor CisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAg ICAgICAgICAgICAgIGRhdGE9cmVzLAorICAgICAgICAgICAgICAgIHN0YXR1 cz0yMDAKKyAgICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0 aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25k aXRpb24KKyAgICBkZWYgZ2V0X3R5cGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQs IHNjaWQsIGZvaWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBSZXR1 cm5zIHRoZSBUeXBlcy4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAg Z2lkOiBTZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDogU2VydmVy IElkCisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgICAg ICBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgICAgIGZvaWQ6IEZvcmVpZ24g VGFibGUgSWQKKyAgICAgICAgIiIiCisgICAgICAgICMgVE9ETzogVGhpcyBm dW5jdGlvbiBzaG91bGQgYmUgcmVtb3ZlZCBvbmNlIFR5cGVzIG1vZHVsZQor ICAgICAgICAjIHdpbGwgYmUgY29tcGxldGVkLgorCisgICAgICAgIHJlcyA9 IFt7J2xhYmVsJzogJycsICd2YWx1ZSc6ICcnfV0KKyAgICAgICAgdHJ5Ogor ICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtz ZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICdnZXRfdHlwZXMuc3FsJ10pKQorICAgICAg ICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJh eShTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQorCisgICAgICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToK KyAgICAgICAgICAgICAgICByZXMuYXBwZW5kKAorICAgICAgICAgICAgICAg ICAgICB7J2xhYmVsJzogcm93Wyd0eXBuYW1lJ10sICd2YWx1ZSc6IHJvd1sn dHlwbmFtZSddfQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIHJl dHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgZGF0 YT1yZXMsCisgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAg ICAgKQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBn ZXRfZm9yZWlnbl9zZXJ2ZXJzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQs IGZvaWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIHRo ZSBGb3JlaWduIFNlcnZlcnMuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAg ICAgIGdpZDogU2VydmVyIEdyb3VwIElkCisgICAgICAgICAgICBzaWQ6IFNl cnZlciBJZAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJZAorICAgICAg ICAgICAgc2NpZDogU2NoZW1hIElkCisgICAgICAgICAgICBmb2lkOiBGb3Jl aWduIFRhYmxlIElkCisgICAgICAgICIiIgorICAgICAgICByZXMgPSBbeyds YWJlbCc6ICcnLCAndmFsdWUnOiAnJ31dCisgICAgICAgIHRyeToKKyAgICAg ICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnZ2V0X2ZvcmVpZ25fc2VydmVycy5zcWwnXSkpCisg ICAgICAgICAgICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8y ZGFycmF5KFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAg ICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJv cm1zZz1yZXMpCisKKyAgICAgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93 cyddOgorICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoCisgICAgICAgICAg ICAgICAgICAgIHsnbGFiZWwnOiByb3dbJ3Nydm5hbWUnXSwgJ3ZhbHVlJzog cm93WydzcnZuYW1lJ119CisgICAgICAgICAgICAgICAgKQorICAgICAgICAg ICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAg ICBkYXRhPXJlcywKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAg ICAgICAgICApCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgor ICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJv cm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAg ZGVmIGdldF90YWJsZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm9p ZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgdGhlIEZv cmVpZ24gVGFibGVzIGFzIHdlbGwgYXMgUGxhaW4gVGFibGVzLgorCisgICAg ICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJZAor ICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRpZDog RGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAorICAg ICAgICAgICAgZm9pZDogRm9yZWlnbiBUYWJsZSBJZAorICAgICAgICAiIiIK KyAgICAgICAgcmVzID0gW10KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg U1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRl X3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICdnZXRfdGFibGVzLnNxbCddKSkKKyAgICAgICAgICAgIHN0YXR1 cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAg ICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAg ICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAg ICAgICBkYXRhPXJzZXRbJ3Jvd3MnXSwKKyAgICAgICAgICAgICAgICBzdGF0 dXM9MjAwCisgICAgICAgICAgICApCisKKyAgICAgICAgZXhjZXB0OgorICAg ICAgICAgICAgZXhjX3R5cGUsIGV4Y192YWx1ZSwgZXhjX3RyYWNlYmFjayA9 IHN5cy5leGNfaW5mbygpCisgICAgICAgICAgICBjdXJyZW50X2FwcC5sb2dn ZXIuZXJyb3IoCisgICAgICAgICAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4 Y2VwdGlvbihleGNfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGV4Y192YWx1ZSwgZXhjX3RyYWNlYmFjaywgbGlt aXQ9MikpCisKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9c3RyKGV4Y192YWx1ZSkpCisKKyAgICBAY2hlY2tf cHJlY29uZGl0aW9uCisgICAgZGVmIGdldF9jb2x1bW5zKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHNjaWQsIGZvaWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAg ICAgICBSZXR1cm5zIHRoZSBUYWJsZSBDb2x1bW5zLgorCisgICAgICAgIEFy Z3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJZAorICAgICAg ICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRpZDogRGF0YWJh c2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAorICAgICAgICAg ICAgZm9pZDogRm9yZWlnbiBUYWJsZSBJZAorICAgICAgICAgICAgYXR0cmVs aWQ6IFRhYmxlIG9pZAorCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAg ICAgIEpTT04gQXJyYXkgd2l0aCBiZWxvdyBwYXJhbWV0ZXJzLgorICAgICAg ICAgICAgICBhdHRuYW1lOiBDb2x1bW4gTmFtZQorICAgICAgICAgICAgICBk YXRhdHlwZTogQ29sdW1uIERhdGEgVHlwZQorICAgICAgICAgICAgICBpbmhl cml0ZWRfZnJvbTogUGFyZW50IFRhYmxlIGZyb20gd2hpY2ggdGhlIHJlbGF0 ZWQgY29sdW1uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBp bmhlcml0dGVkLgorICAgICAgICAiIiIKKyAgICAgICAgcmVzID0gW10KKyAg ICAgICAgZGF0YSA9IHJlcXVlc3QuYXJncyBpZiByZXF1ZXN0LmFyZ3MgZWxz ZSBOb25lCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIGRhdGEgYW5k ICdhdHRyZWxpZCcgaW4gZGF0YToKKyAgICAgICAgICAgICAgICBTUUwgPSBy ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdnZXRfdGFibGVfY29sdW1ucy5zcWwnXSksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJlbGlkPWRhdGFbJ2F0dHJl bGlkJ10pCisgICAgICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNv bm4uZXhlY3V0ZV9kaWN0KFNRTCkKKworICAgICAgICAgICAgICAgIGlmIG5v dCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAgICAgICAg IHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAg ICAgIGRhdGE9cmVzWydyb3dzJ10sCisgICAgICAgICAgICAgICAgICAgIHN0 YXR1cz0yMDAKKyAgICAgICAgICAgICAgICApCisgICAgICAgIGV4Y2VwdDoK KyAgICAgICAgICAgIGV4Y190eXBlLCBleGNfdmFsdWUsIGV4Y190cmFjZWJh Y2sgPSBzeXMuZXhjX2luZm8oKQorICAgICAgICAgICAgY3VycmVudF9hcHAu bG9nZ2VyLmVycm9yKHRyYWNlYmFjay5wcmludF9leGNlcHRpb24oCisgICAg ICAgICAgICAgICAgZXhjX3R5cGUsCisgICAgICAgICAgICAgICAgZXhjX3Zh bHVlLAorICAgICAgICAgICAgICAgIGV4Y190cmFjZWJhY2ssCisgICAgICAg ICAgICAgICAgbGltaXQ9MgorICAgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgICkKKworICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l cnJvcihlcnJvcm1zZz1zdHIoZXhjX3ZhbHVlKSkKKworICAgIEBjaGVja19w cmVjb25kaXRpb24KKyAgICBAdmFsaWRhdGVfcmVxdWVzdAorICAgIGRlZiBj cmVhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAgICIi IgorICAgICAgICBDcmVhdGVzIGEgbmV3IEZvcmVpZ24gVGFibGUgb2JqZWN0 LgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBH cm91cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAg ICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVt YSBJZAorICAgICAgICAgICAgZm9pZDogRm9yZWlnbiBUYWJsZSBJZAorICAg ICAgICAgICAgbmFtZTogRm9yZWlnbiBUYWJsZSBOYW1lCisgICAgICAgICAg ICBiYXNlbnNwOiBTY2hlbWEgTmFtZQorICAgICAgICAgICAgZnRzcnZuYW1l OiBGb3JlaWduIFNlcnZlciBOYW1lCisKKyAgICAgICAgUmV0dXJuczoKKyAg ICAgICAgICAgIEZvcmVpZ24gVGFibGUgb2JqZWN0IGluIGpzb24gZm9ybWF0 LgorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBH ZXQgU1FMIHRvIGNyZWF0ZSBGb3JlaWduIFRhYmxlCisgICAgICAgICAgICBz dGF0dXMsIFNRTCA9IHNlbGYuZ2V0X3NxbChnaWQsIHNpZCwgZGlkLCBzY2lk LCBzZWxmLnJlcXVlc3QpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgor ICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9U1FMKQorCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNl bGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwpCisgICAgICAgICAgICBpZiBu b3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9z ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICAjIE5l ZWQgb2lkIHRvIGFkZCBvYmplY3QgaW4gdGhlIHRyZWUgYXQgYnJvd3Nlci4K KyAgICAgICAgICAgIGJhc2Vuc3AgPSBzZWxmLnJlcXVlc3RbJ2Jhc2Vuc3An XSBpZiAoJ2Jhc2Vuc3AnIGluIHNlbGYucmVxdWVzdCkgXAorICAgICAgICAg ICAgICAgIGVsc2UgTm9uZQorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3Rl bXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZXRfb2lk LnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi YXNlbnNwPWJhc2Vuc3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbmFtZT1zZWxmLnJlcXVlc3RbJ25hbWUnXSkKKyAgICAgICAgICAg IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwp CisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQor CisgICAgICAgICAgICBmb2lkLCBzY2lkID0gcmVzWydyb3dzJ11bMF0KKwor ICAgICAgICAgICAgcmV0dXJuIGpzb25pZnkoCisgICAgICAgICAgICAgICAg bm9kZT1zZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisg ICAgICAgICAgICAgICAgICAgIGZvaWQsCisgICAgICAgICAgICAgICAgICAg IHNjaWQsCisgICAgICAgICAgICAgICAgICAgIHNlbGYucmVxdWVzdFsnbmFt ZSddLAorICAgICAgICAgICAgICAgICAgICBpY29uPSJpY29uLWZvcmVpZ24t dGFibGUiCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAg ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVsZXRlKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZvaWQpOgorICAgICAgICAiIiIKKyAg ICAgICAgRHJvcHMgdGhlIEZvcmVpZ24gVGFibGUuCisKKyAgICAgICAgQXJn czoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElkCisgICAgICAg ICAgICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAgICAgZGlkOiBEYXRhYmFz ZSBJZAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElkCisgICAgICAgICAg ICBmb2lkOiBGb3JlaWduIFRhYmxlIElkCisgICAgICAgICIiIgorICAgICAg ICBpZiBzZWxmLmNtZCA9PSAnZGVsZXRlJzoKKyAgICAgICAgICAgICMgVGhp cyBpcyBhIGNhc2NhZGUgb3BlcmF0aW9uCisgICAgICAgICAgICBjYXNjYWRl ID0gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY2FzY2FkZSA9 IEZhbHNlCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBGZXRjaCBO YW1lIGFuZCBTY2hlbWEgTmFtZSB0byBkZWxldGUgdGhlIGZvcmVpZ24gdGFi bGUuCisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpv aW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnZGVsZXRlLnNxbCddKSwgc2NpZD1zY2lkLCBmb2lk PWZvaWQpCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5l eGVjdXRlXzJkYXJyYXkoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1 czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgbmFtZSwgYmFzZW5z cCA9IHJlc1sncm93cyddWzBdCisKKyAgICAgICAgICAgIFNRTCA9IHJlbmRl cl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVs ZXRlLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBuYW1lPW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYmFzZW5zcD1iYXNlbnNwLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNhc2NhZGU9Y2FzY2FkZSkKKyAgICAgICAgICAgIHN0YXR1 cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAg ICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAg ICAgICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAgIGluZm89Z2V0dGV4 dCgiRm9yZWlnbiBUYWJsZSBkcm9wcGVkIiksCisgICAgICAgICAgICAgICAg ZGF0YT17CisgICAgICAgICAgICAgICAgICAgICdpZCc6IGZvaWQsCisgICAg ICAgICAgICAgICAgICAgICdzY2lkJzogc2NpZCwKKyAgICAgICAgICAgICAg ICAgICAgJ3NpZCc6IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgJ2dpZCc6 IGdpZCwKKyAgICAgICAgICAgICAgICAgICAgJ2RpZCc6IGRpZAorICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICkKKworICAgICAgICBleGNlcHQg RXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19w cmVjb25kaXRpb24KKyAgICBAdmFsaWRhdGVfcmVxdWVzdAorICAgIGRlZiB1 cGRhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm9pZCk6CisgICAg ICAgICIiIgorICAgICAgICBVcGRhdGVzIHRoZSBGb3JlaWduIFRhYmxlLgor CisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91 cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAg IGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJ ZAorICAgICAgICAgICAgZm9pZDogRm9yZWlnbiBUYWJsZSBJZAorICAgICAg ICAiIiIKKyAgICAgICAgc3RhdHVzLCBTUUwgPSBzZWxmLmdldF9zcWwoZ2lk LCBzaWQsIGRpZCwgc2NpZCwgc2VsZi5yZXF1ZXN0LCBmb2lkKQorCisgICAg ICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPVNRTCkKKworICAgICAgICB0cnk6 CisgICAgICAgICAgICBpZiBTUUwgYW5kIFNRTC5zdHJpcCgnXG4nKSBhbmQg U1FMLnN0cmlwKCcgJyk6CisgICAgICAgICAgICAgICAgc3RhdHVzLCByZXMg PSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAgICAgICAg ICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAg ICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtz ZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X29pZC5zcWwnXSksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvaWQ9Zm9pZCkK KyAgICAgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVj dXRlXzJkYXJyYXkoU1FMKQorICAgICAgICAgICAgICAgIGlmIG5vdCBzdGF0 dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICAgICAgc2Np ZCA9IHJlc1sncm93cyddWzBdWydzY2lkJ10KKworICAgICAgICAgICAgICAg IHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAg ICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICAgICAgaW5mbz0iRm9y ZWlnbiBUYWJsZSB1cGRhdGVkIiwKKyAgICAgICAgICAgICAgICAgICAgZGF0 YT17CisgICAgICAgICAgICAgICAgICAgICAgICAnaWQnOiBmb2lkLAorICAg ICAgICAgICAgICAgICAgICAgICAgJ3NjaWQnOiBzY2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgJ3NpZCc6IHNpZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICdnaWQnOiBnaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAn ZGlkJzogZGlkCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICApCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJl dHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAg IHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICAgICAgaW5mbz0iTm90aGlu ZyB0byB1cGRhdGUiLAorICAgICAgICAgICAgICAgICAgICBkYXRhPXsKKyAg ICAgICAgICAgICAgICAgICAgICAgICdpZCc6IGZvaWQsCisgICAgICAgICAg ICAgICAgICAgICAgICAnc2NpZCc6IHNjaWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg J2dpZCc6IGdpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdkaWQnOiBk aWQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICkK KworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihl KSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgc3FsKHNl bGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZvaWQ9Tm9uZSk6CisgICAgICAg ICIiIgorICAgICAgICBSZXR1cm5zIHRoZSBTUUwgZm9yIHRoZSBGb3JlaWdu IFRhYmxlIG9iamVjdC4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAg Z2lkOiBTZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDogU2VydmVy IElkCisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgICAg ICBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgICAgIGZvaWQ6IEZvcmVpZ24g VGFibGUgSWQKKyAgICAgICAgIiIiCisgICAgICAgIGRhdGEgPSBzZWxmLmdl dF9wcm9wZXJ0aWVzKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZvaWQsIGluaGVy aXRzPVRydWUpCisKKyAgICAgICAgY29sX2RhdGEgPSBbXQorICAgICAgICBm b3IgYyBpbiBkYXRhWydjb2x1bW5zJ106CisgICAgICAgICAgICBpZiAobm90 ICdpbmhlcml0ZWRmcm9tJyBpbiBjKSBvciAoY1snaW5oZXJpdGVkZnJvbSdd IGlzIE5vbmUpOgorICAgICAgICAgICAgICAgIGNvbF9kYXRhLmFwcGVuZChj KQorCisgICAgICAgIGRhdGFbJ2NvbHVtbnMnXSA9IGNvbF9kYXRhCisKKyAg ICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRl bXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ2NyZWF0ZS5zcWwnXSksIGRhdGE9ZGF0YSkKKworICAgICAg ICByZXR1cm4gYWpheF9yZXNwb25zZShyZXNwb25zZT1TUUwpCisKKyAgICBA Y2hlY2tfcHJlY29uZGl0aW9uCisgICAgQHZhbGlkYXRlX3JlcXVlc3QKKyAg ICBkZWYgbXNxbChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBmb2lkPU5v bmUpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyB0aGUgbW9kaWZp ZWQgU1FMLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNl cnZlciBHcm91cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAg ICAgICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6 IFNjaGVtYSBJZAorICAgICAgICAgICAgZm9pZDogRm9yZWlnbiBUYWJsZSBJ ZAorICAgICAgICAgICAgbmFtZTogRm9yZWlnbiBUYWJsZSBOYW1lCisgICAg ICAgICAgICBmdHNydm5hbWU6IEZvcmVpZ24gU2VydmVyIE5hbWUKKworICAg ICAgICBSZXR1cm5zOgorICAgICAgICAgICAgU1FMIHN0YXRlbWVudHMgdG8g Y3JlYXRlL3VwZGF0ZSB0aGUgRm9yZWlnbiBUYWJsZS4KKyAgICAgICAgIiIi CisgICAgICAgIHN0YXR1cywgU1FMID0gc2VsZi5nZXRfc3FsKGdpZCwgc2lk LCBkaWQsIHNjaWQsIHNlbGYucmVxdWVzdCwgZm9pZCkKKyAgICAgICAgaWYg c3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25z ZSgKKyAgICAgICAgICAgICAgICBkYXRhPVNRTCwKKyAgICAgICAgICAgICAg ICBzdGF0dXM9MjAwCisgICAgICAgICAgICApCisgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICByZXR1cm4gU1FMCisKKyAgICBkZWYgZ2V0X3NxbChzZWxm LCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBkYXRhLCBmb2lkPU5vbmUpOgorICAg ICAgICAiIiIKKyAgICAgICAgR2VucmF0ZXMgdGhlIFNRTCBzdGF0ZW1lbnRz IHRvIGNyZWF0ZS91cGRhdGUgdGhlIEZvcmVpZ24gVGFibGUuCisKKyAgICAg ICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElkCisg ICAgICAgICAgICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAgICAgZGlkOiBE YXRhYmFzZSBJZAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElkCisgICAg ICAgICAgICBmb2lkOiBGb3JlaWduIFRhYmxlIElkCisgICAgICAgICIiIgor ICAgICAgICB0cnk6CisgICAgICAgICAgICBpZiBmb2lkIGlzIG5vdCBOb25l OgorICAgICAgICAgICAgICAgIG9sZF9kYXRhID0gc2VsZi5nZXRfcHJvcGVy dGllcyhnaWQsIHNpZCwgZGlkLCBzY2lkLCBmb2lkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmhlcml0cz1U cnVlKQorCisgICAgICAgICAgICAgICAgIyBQcmVwYXJlIGRpY3Qgb2YgY29s dW1ucyB3aXRoIGtleSA9IGNvbHVtbidzIGF0dG51bQorICAgICAgICAgICAg ICAgICMgV2lsbCB1c2UgdGhpcyBpbiB0aGUgdXBkYXRlIHRlbXBsYXRlIHdo ZW4gYW55IGNvbHVtbiBpcworICAgICAgICAgICAgICAgICMgY2hhbmdlZCwg dG8gaWRlbnRpZnkgdGhlIGNvbHVtbnMuCisgICAgICAgICAgICAgICAgY29s X2RhdGEgPSB7fQorICAgICAgICAgICAgICAgIGZvciBjIGluIG9sZF9kYXRh Wydjb2x1bW5zJ106CisgICAgICAgICAgICAgICAgICAgIGNvbF9kYXRhW2Nb J2F0dG51bSddXSA9IGMKKworICAgICAgICAgICAgICAgIG9sZF9kYXRhWydj b2x1bW5zJ10gPSBjb2xfZGF0YQorCisgICAgICAgICAgICAgICAgU1FMID0g cmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICAgICAiLyIuam9p bihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAndXBkYXRlLnNxbCddKSwKKyAgICAg ICAgICAgICAgICAgICAgZGF0YT1kYXRhLCBvX2RhdGE9b2xkX2RhdGEKKyAg ICAgICAgICAgICAgICApCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAg ICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJ2NyZWF0ZS5zcWwnXSksIGRhdGE9ZGF0YSkK KyAgICAgICAgICAgIHJldHVybiBUcnVlLCBTUUwKKworICAgICAgICBleGNl cHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gRmFsc2Us IGUKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVwZW5k ZW50cyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBmb2lkKToKKyAgICAg ICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2V0IHRoZSBkZXBlbmRl bnRzIGFuZCByZXR1cm4gYWpheCByZXNwb25zZQorICAgICAgICBmb3IgdGhl IEZvcmVpZ24gVGFibGUgb2JqZWN0LgorCisgICAgICAgIEFyZ3M6CisgICAg ICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJZAorICAgICAgICAgICAgc2lk OiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAg ICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAorICAgICAgICAgICAgZm9pZDog Rm9yZWlnbiBUYWJsZSBJZAorICAgICAgICAiIiIKKyAgICAgICAgZGVwZW5k ZW50c19yZXN1bHQgPSBzZWxmLmdldF9kZXBlbmRlbnRzKHNlbGYuY29ubiwg Zm9pZCkKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAg ICAgICByZXNwb25zZT1kZXBlbmRlbnRzX3Jlc3VsdCwKKyAgICAgICAgICAg IHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRp dGlvbgorICAgIGRlZiBkZXBlbmRlbmNpZXMoc2VsZiwgZ2lkLCBzaWQsIGRp ZCwgc2NpZCwgZm9pZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1 bmN0aW9uIGdldCB0aGUgZGVwZW5kZW5jaWVzIGFuZCByZXR1cm4gYWpheCBy ZXNwb25zZQorICAgICAgICBmb3IgdGhlICBGb3JlaWduIFRhYmxlIG9iamVj dC4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIg R3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElkCisgICAgICAg ICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgICAgICBzY2lkOiBTY2hl bWEgSWQKKyAgICAgICAgICAgIGZvaWQ6IEZvcmVpZ24gVGFibGUgSWQKKyAg ICAgICAgIiIiCisgICAgICAgIGRlcGVuZGVuY2llc19yZXN1bHQgPSBzZWxm LmdldF9kZXBlbmRlbmNpZXMoc2VsZi5jb25uLCBmb2lkKQorICAgICAgICBy ZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPWRl cGVuZGVuY2llc19yZXN1bHQsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisg ICAgICAgICkKKworICAgIGRlZiBnZXRfcHJvcGVydGllcyhzZWxmLCBnaWQs IHNpZCwgZGlkLCBzY2lkLCBmb2lkLCBpbmhlcml0cz1GYWxzZSk6CisgICAg ICAgICIiIgorICAgICAgICBSZXR1cm5zIHRoZSBGb3JlaWduIFRhYmxlIHBy b3BlcnRpZXMgd2hpY2ggd2lsbCBiZSB1c2VkIGluCisgICAgICAgIHByb3Bl cnRpZXMsIHNxbCBhbmQgZ2V0X3NxbCBmdW5jdGlvbnMuCisKKyAgICAgICAg QXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElkCisgICAg ICAgICAgICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAgICAgZGlkOiBEYXRh YmFzZSBJZAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElkCisgICAgICAg ICAgICBmb2lkOiBGb3JlaWduIFRhYmxlIElkCisgICAgICAgICAgICBpbmhl cml0czogSWYgVHJ1ZSB0aGVuIGluaGVyaXRlZCB0YWJsZSB3aWxsIGJlIGZl dGNoZWQgZnJvbQorICAgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNlCisK KyAgICAgICAgUmV0dXJuczoKKworICAgICAgICAiIiIKKyAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3Bh dGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2NpZD1zY2lkLCBmb2lkPWZvaWQpCisgICAgICAgIHN0YXR1cywg cmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICBkYXRhID0gcmVz Wydyb3dzJ11bMF0KKworICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUo Ii8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X2NvbnN0cmFpbnRzLnNx bCddKSwgZm9pZD1mb2lkKQorICAgICAgICBzdGF0dXMsIGNvbnMgPSBzZWxm LmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1 czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9Y29ucykKKworICAgICAgICBpZiBjb25zIGFuZCAncm93cycg aW4gY29uczoKKyAgICAgICAgICAgIGRhdGFbJ2NvbnN0cmFpbnRzJ10gPSBj b25zWydyb3dzJ10KKworICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUo Ii8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X2NvbHVtbnMuc3FsJ10p LCBmb2lkPWZvaWQpCisgICAgICAgIHN0YXR1cywgY29scyA9IHNlbGYuY29u bi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgor ICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJv cm1zZz1jb2xzKQorCisgICAgICAgICMgVGhlIExlbmd0aCBhbmQgdGhlIHBy ZWNpc2lvbiBvZiB0aGUgRGF0YXR5cGUgc2hvdWxkIGJlIHNlcGFyYXRlZC4K KyAgICAgICAgIyBUaGUgRm9ybWF0IHdlIGdldHRpbmcgZnJvbSBkYXRhYmFz ZSBpczogbnVtZXJpYygxLDEpCisgICAgICAgICMgU28sIHdlIG5lZWQgdG8g c2VwYXJhdGUgaXQgYXMgTGVuZ3RoOiAxLCBQcmVjaXNpb246IDEKKyAgICAg ICAgZm9yIGMgaW4gY29sc1sncm93cyddOgorICAgICAgICAgICAgaWYgY1sn ZnVsbHR5cGUnXSAhPSAnJyBhbmQgY1snZnVsbHR5cGUnXS5maW5kKCIoIikg PiAwOgorICAgICAgICAgICAgICAgIHN1YnN0ciA9IGNbJ2Z1bGx0eXBlJ11b Y1snZnVsbHR5cGUnXS5maW5kKCIoIikgKyAxOmxlbigKKyAgICAgICAgICAg ICAgICAgICAgY1snZnVsbHR5cGUnXSkgLSAxXQorICAgICAgICAgICAgICAg IHR5cGxlbiA9IHN1YnN0ci5zcGxpdCgiLCIpCisgICAgICAgICAgICAgICAg aWYgbGVuKHR5cGxlbikgPiAxOgorICAgICAgICAgICAgICAgICAgICBjWyd0 eXBsZW4nXSA9IHR5cGxlblswXQorICAgICAgICAgICAgICAgICAgICBjWydw cmVjaXNpb24nXSA9IHR5cGxlblsxXQorICAgICAgICAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgICAgICAgIGNbJ3R5cGxlbiddID0gdHlwbGVuCisg ICAgICAgICAgICAgICAgICAgIGNbJ3ByZWNpc2lvbiddID0gJycKKworICAg ICAgICBpZiBjb2xzIGFuZCAncm93cycgaW4gY29sczoKKyAgICAgICAgICAg IGRhdGFbJ2NvbHVtbnMnXSA9IGNvbHNbJ3Jvd3MnXQorCisgICAgICAgICMg R2V0IEluaGVyaXRlZCB0YWJsZSBuYW1lcyBmcm9tIHRoZWlyIE9JRAorICAg ICAgICBpZiBpbmhlcml0czoKKyAgICAgICAgICAgIGlmICdpbmhlcml0cycg aW4gZGF0YSBhbmQgZGF0YVsnaW5oZXJpdHMnXToKKyAgICAgICAgICAgICAg ICBpbmhlcml0cyA9IHR1cGxlKFtpbnQoeCkgZm9yIHggaW4gZGF0YVsnaW5o ZXJpdHMnXV0pCisgICAgICAgICAgICAgICAgaWYgbGVuKGluaGVyaXRzKSA9 PSAxOgorICAgICAgICAgICAgICAgICAgICBpbmhlcml0cyA9ICIoIiArIHN0 cihpbmhlcml0c1swXSkgKyAiKSIKKworICAgICAgICAgICAgICAgIFNRTCA9 IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRo LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ2dldF90YWJsZXMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhdHRyZWxpZD1pbmhlcml0cykKKyAgICAg ICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2Rp Y3QoU1FMKQorCisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgICAgICBpZiAnaW5oZXJp dHMnIGluIHJlc1sncm93cyddWzBdOgorICAgICAgICAgICAgICAgICAgICBk YXRhWydpbmhlcml0cyddID0gcmVzWydyb3dzJ11bMF1bJ2luaGVyaXRzJ10K KworICAgICAgICByZXR1cm4gZGF0YQorCitGb3JlaWduVGFibGVWaWV3LnJl Z2lzdGVyX25vZGVfdmlldyhibHVlcHJpbnQpCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy9zdGF0aWMvaW1nL2NvbGwtZm9y ZWlnbi10YWJsZS5wbmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxl cy9zdGF0aWMvaW1nL2NvbGwtZm9yZWlnbi10YWJsZS5wbmcKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMC4uZGMxZjc0MmJiY2EwNTk4MGYzYzRjYmYzYzE2YWYw ZTBjZjlhZmE0MQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNDkyCnpjbVY8 STBUY2QtUCk8aDszS3xMazAwMGUxTkpMVHEwMDBtRzAwMG1PMHt7UjNDQGx8 RDAwMDAxYjVjaF8wSXRwKQp6PT5QeCN4PT43MU1Qc0A0QShpS2YmaTw2b2BL e0lSJUd+UFM8TEJuKj1qUF8tI258Unt4IyUjUT0hbmghUW4yIX4KeikkUUhn LUdqXmlkZEI7MiExLTNQXkdVMWxKKkRrMnA2ZSU+PkU3UG5nVWtJJnRNRU9m P0lAWSktezBUajteTzF1Cno8S15ZJGhyczlIO05ZakhyPnZ+Mz9DazlCPyhY VTc+RVlxd3Jsekstc0htOzJ0KkBgST5nd3V7JUpiKnY9ai1lMQp6PTstTEZz ajJWcEBBMntSP2R8UVZzO2FRQ3UoR25VPG1CWT1AYkcpYWApfFBiRDRGUHFw VCMycDAwMDRXUWNoQzwKeks8M3pIMDAwMDFWb09JdjBFaCkwTkJ7cjszMjti UmF7dkdmNjk1MVU2OUU5NG9FUUtBMDAocVFPK15SVzB+ezQ3CnpDVmM7JWNL YHFZbz1IU09SMmI3OyYlRi05RmJxYn5kXkNhOUY1eT1RM0poVXRtUTFkTSF1 ITckUDc2WlI8SVIhZgp6ODJyWUpnR0ZXQ2EjaHoyQGY2eml6ZDxgUUBIMnpX JDI9bnVIQyUkND9UKG0yQWw3ZyQ9RTVZfGlBWGZLN3NFajsKelBMaWAySmM9 UXkwNHZzTT0rJl5kSCtZZERKQ2wrY0VRYnlVZUlIIThxfUwjRjFvazI/NFFr Tm5QVChxVGBYT1RRCmk8REg0OGtsTlVOWitgPU0oaFVtbUs7Ull0MDAwMDxN TlVNbkxTVFg9VGx2dWQKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3N0YXRpYy9p bWcvZm9yZWlnbi10YWJsZS5wbmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWdu X3RhYmxlcy9zdGF0aWMvaW1nL2ZvcmVpZ24tdGFibGUucG5nCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAuLjUzYzEzMzg4NWEwYzBjNzA1MGU0Yzg1ODBhZGZk NzVmOGNlYWE4NTIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDU2Mwp6Y21W LTMwP2hyMVApPGg7M0t8TGswMDBlMU5KTFRxMDAwbUcwMDBtTzB7e1IzQ0Bs fEQwMDAwMWI1Y2hfMEl0cCkKej0+UHgjKWxmYFNNZGFrPEEoaUtpKEVwT3Bg PVpuSnk0ZFp9LXw2NHU9akc8LT1IfSt3O3BNRSg9VlAoeEV9UTYhCnomO056 WXsoaXsoYjtKNT56VzhDZF9FeGc8T1JWcmZyfHZoUD5AQSQ/Q1liNGslPjhT PV8oNyliSGxnZTtvYShnSgp6PyVtenAtcm5CZC17MFdpO05qdW47Xk59dDxL eU0hPCVockw9Oy1MXz5GTVhePWMlY3d0Z05pOz9Da0NCP2VGakoKej5nd3ZK cj5DZj5zSTlIN3VkbERgPitBNkZAYmRFVj8oWGladEU7ZkV1KDdlUnZhKylB QCR2S1heWSEpaHdZOWJPCnpfVilQcl9fbnNUeFZYNllfeER0I0tSb35kMDBE R1RQRSFDdD1HYk5jMDAwNEVPR2lXaWh5QCk7MDAwMDlhN2JCbQp6MDAwWFUw MDBYVTBSV251N3l0a08yWHNrSU1GLW1oOTJGPWVsSldtcjAwMDJXTmtsPFo3 fUhoSC1FTStGNUMhMCEKeiFhYFNPRSE1JnFPTiYlKHc/SVRPYVQ5SF9HNHVa SzxTZXhwJmZSPURuYW1MYT9uVmQhND8hclNfKSkxKmc0KUNRCnpEYjFjSUZa cHlmVWtyKXlZbnJfPTZ6P0JAUCVmOSU9VzR6QWBjYEl1K2tXWDBqVH1IVktr V3VKQ0kmVE1ne25XYQp6dHV8eU1CSSs0QDl1MCpzQldzQ2FSbzhvQDAzZFh3 YlBWaEVxPzIrMWwzWnNhMkchSU1jUjVWVCRhTmw/b3JSZEYKejBMYUx0NEU2 YiE7fl9VSU5iK1pKKzsrV0BMKVNvaUBQcWsofDBfeXo2d3wmUVF7P352MDAy b3ZQREhMa1YxbkZoCkJDbkVwPQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVt cGxhdGVzL2ZvcmVpZ25fdGFibGVzL2pzL2ZvcmVpZ25fdGFibGVzLmpzIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVp Z25fdGFibGVzL2pzL2ZvcmVpZ25fdGFibGVzLmpzCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1YmM0ZTgKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMv Zm9yZWlnbl90YWJsZXMvanMvZm9yZWlnbl90YWJsZXMuanMKQEAgLTAsMCAr MSw1MDAgQEAKKy8qIENyZWF0ZSBhbmQgUmVnaXN0ZXIgRm9yZWlnbiBUYWJs ZSBDb2xsZWN0aW9uIGFuZCBOb2RlLiAqLworZGVmaW5lKAorICAgICAgICBb J2pxdWVyeScsICd1bmRlcnNjb3JlJywgJ3VuZGVyc2NvcmUuc3RyaW5nJywg J3BnYWRtaW4nLCAncGdhZG1pbi5icm93c2VyJywgJ2FsZXJ0aWZ5JywgJ3Bn YWRtaW4uYnJvd3Nlci5jb2xsZWN0aW9uJ10sCitmdW5jdGlvbigkLCBfLCBT LCBwZ0FkbWluLCBwZ0Jyb3dzZXIsIGFsZXJ0aWZ5KSB7CisKKyAgaWYgKCFw Z0Jyb3dzZXIuTm9kZXNbJ2NvbGwtZm9yZWlnbi10YWJsZSddKSB7CisgICAg dmFyIGZvcmVpZ250YWJsZSA9IHBnQWRtaW4uQnJvd3Nlci5Ob2Rlc1snY29s bC1mb3JlaWduLXRhYmxlJ10gPQorICAgICAgcGdBZG1pbi5Ccm93c2VyLkNv bGxlY3Rpb24uZXh0ZW5kKHsKKyAgICAgICAgbm9kZTogJ2ZvcmVpZ24tdGFi bGUnLAorICAgICAgICBsYWJlbDogJ3t7IF8oJ0ZvcmVpZ24gVGFibGVzJykg fX0nLAorICAgICAgICB0eXBlOiAnY29sbC1mb3JlaWduLXRhYmxlJywKKyAg ICAgICAgY29sdW1uczogWyduYW1lJywgJ293bmVyJywgJ2Rlc2NyaXB0aW9u J10KKyAgICAgIH0pOworICB9OworCisgIC8vIFNlY3VyaXR5IE1vZGVsCisg IHZhciBTZWN1cml0eU1vZGVsID0gQmFja2Zvcm0uU2VjdXJpdHlNb2RlbCA9 IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7CisgICAgZGVm YXVsdHM6IHsKKyAgICAgIHByb3ZpZGVyOiBudWxsLAorICAgICAgbGFiZWw6 IG51bGwKKyAgICB9LAorICAgIHNjaGVtYTogW3sKKyAgICAgIGlkOiAncHJv dmlkZXInLCBsYWJlbDogJ3t7IF8oJ1Byb3ZpZGVyJykgfX0nLAorICAgICAg dHlwZTogJ3RleHQnCisgICAgfSx7CisgICAgICBpZDogJ2xhYmVsJywgbGFi ZWw6ICd7eyBfKCdTZWN1cml0eSBMYWJlbCcpIH19JywKKyAgICAgIHR5cGU6 ICd0ZXh0JworICAgIH1dLAorICAgIHZhbGlkYXRlOiBmdW5jdGlvbigpIHsK KyAgICAgIHZhciBlcnIgPSB7fSwKKyAgICAgICAgICBlcnJtc2cgPSBudWxs LAorICAgICAgICAgIGRhdGEgPSB0aGlzLnRvSlNPTigpOworCisgICAgICBp ZiAoXy5pc1VuZGVmaW5lZChkYXRhLmxhYmVsKSB8fAorICAgICAgICBfLmlz TnVsbChkYXRhLmxhYmVsKSB8fAorICAgICAgICBTdHJpbmcoZGF0YS5sYWJl bCkucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAgICAg ICByZXR1cm4gXygiUGxlYXNlIHNwZWNpZnkgdGhlIHZhbHVlIGZvciBhbGwg dGhlIHNlY3VyaXR5IHByb3ZpZGVycy4iKTsKKyAgICAgIH0KKyAgICAgIHJl dHVybiBudWxsOworICAgIH0KKyAgfSk7CisKKworICAvLyBDb2x1bW5zIE1v ZGVsCisgIHZhciBDb2x1bW5zTW9kZWwgPSBwZ0FkbWluLkJyb3dzZXIuTm9k ZS5Nb2RlbC5leHRlbmQoeworICAgIGlkQXR0cmlidXRlOiAnYXR0bmFtZScs CisgICAgZGVmYXVsdHM6IHsKKyAgICAgIGF0dG5hbWU6IHVuZGVmaW5lZCwK KyAgICAgIGRhdGF0eXBlOiB1bmRlZmluZWQsCisgICAgICB0eXBsZW46IHVu ZGVmaW5lZCwKKyAgICAgIHByZWNpc2lvbjogdW5kZWZpbmVkLAorICAgICAg dHlwZGVmYXVsdDogdW5kZWZpbmVkLAorICAgICAgYXR0bm90bnVsbDogdW5k ZWZpbmVkLAorICAgICAgY29sbG5hbWU6IHVuZGVmaW5lZCwKKyAgICAgIGF0 dG51bTogdW5kZWZpbmVkLAorICAgICAgaW5oZXJpdGVkZnJvbTogdW5kZWZp bmVkLAorICAgICAgaW5oZXJpdGVkaWQ6IHVuZGVmaW5lZAorICAgIH0sCisg ICAgc2NoZW1hOiBbCisgICAgICAgIHtpZDogJ2F0dG5hbWUnLCBsYWJlbDon e3sgXygnTmFtZScpIH19JywgY2VsbDogJ3N0cmluZycsIHR5cGU6ICd0ZXh0 JyB9LAorICAgICAgICB7aWQ6ICdkYXRhdHlwZScsIGxhYmVsOid7eyBfKCdE YXRhIFR5cGUnKSB9fScsIGNlbGw6ICdzdHJpbmcnLCBjb250cm9sOiAnbm9k ZS1hamF4LW9wdGlvbnMnLCB0eXBlOiAndGV4dCcsIHVybDogJ2dldF90eXBl cyd9LAorICAgICAgICB7aWQ6ICd0eXBsZW4nLCBsYWJlbDone3sgXygnTGVu Z3RoJykgfX0nLCBjZWxsOiAnc3RyaW5nJyx0eXBlOiAndGV4dCd9LAorICAg ICAgICB7aWQ6ICdwcmVjaXNpb24nLCBsYWJlbDone3sgXygnUHJlY2lzaW9u JykgfX0nLCBjZWxsOiAnc3RyaW5nJyx0eXBlOiAndGV4dCd9LAorICAgICAg ICB7aWQ6ICd0eXBkZWZhdWx0JywgbGFiZWw6J3t7IF8oJ0RlZmF1bHQnKSB9 fScsIHR5cGU6ICd0ZXh0JywgY2VsbDogJ3N0cmluZycsIG1pbl92ZXJzaW9u OiA5MDMwMH0sCisgICAgICAgIHtpZDogJ2F0dG5vdG51bGwnLCBsYWJlbDon e3sgXygnTm90IE51bGwnKSB9fScsIGNlbGw6ICdib29sZWFuJyx0eXBlOiAn c3dpdGNoJ30sCisgICAgICAgIHtpZDogJ2NvbGxuYW1lJywgbGFiZWw6J3t7 IF8oJ0NvbGxhdGlvbicpIH19JywgY2VsbDogJ3N0cmluZycsIGNvbnRyb2w6 ICdub2RlLWFqYXgtb3B0aW9ucycsIHR5cGU6ICd0ZXh0JywgdXJsOiAnZ2V0 X2NvbGxhdGlvbnMnLCBtaW5fdmVyc2lvbjogOTAzMDB9LAorICAgICAgICB7 aWQ6ICdhdHRudW0nLCBjZWxsOiAnc3RyaW5nJyx0eXBlOiAndGV4dCcsIHZp c2libGU6IGZhbHNlfSwKKyAgICAgICAge2lkOiAnaW5oZXJpdGVkZnJvbScs IGxhYmVsOid7eyBfKCdJbmhlcml0ZWQgRnJvbScpIH19JywgY2VsbDogJ3N0 cmluZycsdHlwZTogJ3RleHQnLCB2aXNpYmxlOiBmYWxzZSwgbW9kZTogWydw cm9wZXJ0aWVzJ119CisgICAgXSwKKyAgICB2YWxpZGF0ZTogZnVuY3Rpb24o KSB7CisgICAgICAvLyBUT0RPOiBBZGQgdmFsaWRhdGlvbiBoZXJlCisgICAg fSwKKyAgICB0b0pTT046IEJhY2tib25lLk1vZGVsLnByb3RvdHlwZS50b0pT T04KKyAgfSk7CisKKyAgdmFyIGZvcm1hdE5vZGUgPSBmdW5jdGlvbihvcHQp IHsKKyAgICBpZiAoIW9wdC5pZCkgeworICAgICAgcmV0dXJuIG9wdC50ZXh0 OworICAgIH0KKworICAgIHZhciBvcHRpbWFnZSA9ICQob3B0LmVsZW1lbnQp LmRhdGEoJ2ltYWdlJyk7CisKKyAgICBpZighb3B0aW1hZ2UpeworICAgICAg cmV0dXJuIG9wdC50ZXh0OworICAgIH0gZWxzZSB7CisgICAgICByZXR1cm4g JCgKKyAgICAgICAgICAnPHNwYW4+PHNwYW4gY2xhc3M9IndjVGFiSWNvbiAn ICsgb3B0aW1hZ2UgKyAnIi8+JyArIG9wdC50ZXh0ICsgJzwvc3Bhbj4nCisg ICAgICAgICAgKTsKKyAgICB9CisgIH07CisKKworICAvKiBOb2RlQWpheE9w dGlvbnNNdWx0aXBsZUNvbnRyb2wgaXMgZm9yIG11bHRpcGxlIHNlbGVjdGlv biBvZiBDb21ib2JveC4KKyAgKiAgVGhpcyBjb250cm9sIGlzIHVzZWQgdG8g c2VsZWN0IE11bHRpcGxlIFBhcmVudCBUYWJsZXMgdG8gYmUgaW5oZXJpdGVk LgorICAqICBJdCBhbHNvIHBvcHVsYXRlcy92YWNhdGVzIENvbHVtbnMgb24g c2VsZWN0aW9uL2Rlc2VsZWN0aW9uIG9mIHRoZSBvcHRpb24gKGkuZS4gdGFi bGUgbmFtZSkuCisgICogIFRvIHBvcHVsYXRlcyB0aGUgY29sdW1uLCBpdCBj YWxscyB0aGUgc2VydmVyIGFuZCBmZXRjaCB0aGUgY29sdW1ucyBkYXRhCisg ICogIGZvciB0aGUgc2VsZWN0ZWQgdGFibGUuCisgICovCisKKyAgdmFyIE5v ZGVBamF4T3B0aW9uc011bHRpcGxlQ29udHJvbCA9IEJhY2tmb3JtLk5vZGVB amF4T3B0aW9uc011bHRpcGxlQ29udHJvbCA9IEJhY2tmb3JtLk5vZGVBamF4 T3B0aW9uc0NvbnRyb2wuZXh0ZW5kKHsKKyAgICB0ZW1wbGF0ZTogXy50ZW1w bGF0ZShbCisgICAgICAnPGxhYmVsIGNsYXNzPSI8JT1CYWNrZm9ybS5jb250 cm9sTGFiZWxDbGFzc05hbWUlPiI+PCU9bGFiZWwlPjwvbGFiZWw+JywKKyAg ICAgICc8ZGl2IGNsYXNzPSI8JT1CYWNrZm9ybS5jb250cm9sc0NsYXNzTmFt ZSU+IDwlPWV4dHJhQ2xhc3Nlcy5qb2luKFwnIFwnKSU+Ij4nLAorICAgICAg JyAgPHNlbGVjdCBjbGFzcz0icGdhZG1pbi1ub2RlLXNlbGVjdCBmb3JtLWNv bnRyb2wiIG5hbWU9IjwlPW5hbWUlPiIgc3R5bGU9IndpZHRoOjEwMCU7IiB2 YWx1ZT08JS12YWx1ZSU+IDwlPWRpc2FibGVkID8gImRpc2FibGVkIiA6ICIi JT4gPCU9cmVxdWlyZWQgPyAicmVxdWlyZWQiIDogIiIlPiA+JywKKyAgICAg ICcgIDwvc2VsZWN0PicsCisgICAgICAnPC9kaXY+J10uam9pbigiXG4iKSks CisgICAgZGVmYXVsdHM6IF8uZXh0ZW5kKAorICAgICAge30sIEJhY2tmb3Jt Lk5vZGVBamF4T3B0aW9uc0NvbnRyb2wucHJvdG90eXBlLmRlZmF1bHRzLAor ICAgICAgeworICAgICAgICBzZWxlY3QyOiB7CisgICAgICAgICAgYWxsb3dD bGVhcjogdHJ1ZSwKKyAgICAgICAgICBwbGFjZWhvbGRlcjogJ1NlbGVjdCBm cm9tIHRoZSBsaXN0JywKKyAgICAgICAgICB3aWR0aDogJ3N0eWxlJywKKyAg ICAgICAgICB0ZW1wbGF0ZVJlc3VsdDogZm9ybWF0Tm9kZSwKKyAgICAgICAg ICB0ZW1wbGF0ZVNlbGVjdGlvbjogZm9ybWF0Tm9kZQorICAgICAgICB9Cisg ICAgICB9KSwKKyAgICByZW5kZXI6IGZ1bmN0aW9uKCkgeworICAgICAgdmFy IGZpZWxkID0gXy5kZWZhdWx0cyh0aGlzLmZpZWxkLnRvSlNPTigpLCB0aGlz LmRlZmF1bHRzKSwKKyAgICAgICAgYXR0cmlidXRlcyA9IHRoaXMubW9kZWwu dG9KU09OKCksCisgICAgICAgIGF0dHJBcnIgPSBmaWVsZC5uYW1lLnNwbGl0 KCcuJyksCisgICAgICAgIG5hbWUgPSBhdHRyQXJyLnNoaWZ0KCksCisgICAg ICAgIHBhdGggPSBhdHRyQXJyLmpvaW4oJy4nKSwKKyAgICAgICAgcmF3VmFs dWUgPSB0aGlzLmtleVBhdGhBY2Nlc3NvcihhdHRyaWJ1dGVzW25hbWVdLCBw YXRoKSwKKyAgICAgICAgZGF0YSA9IF8uZXh0ZW5kKGZpZWxkLCB7CisgICAg ICAgICAgcmF3VmFsdWU6IHJhd1ZhbHVlLAorICAgICAgICAgIHZhbHVlOiB0 aGlzLmZvcm1hdHRlci5mcm9tUmF3KHJhd1ZhbHVlLCB0aGlzLm1vZGVsKSwK KyAgICAgICAgICBhdHRyaWJ1dGVzOiBhdHRyaWJ1dGVzLAorICAgICAgICAg IGZvcm1hdHRlcjogdGhpcy5mb3JtYXR0ZXIKKyAgICAgICAgfSksCisgICAg ICAgIGV2YWxGID0gZnVuY3Rpb24oZiwgZCwgbSkgeworICAgICAgICAgIHJl dHVybiAoXy5pc0Z1bmN0aW9uKGYpID8gISFmLmFwcGx5KGQsIFttXSkgOiAh IWYpOworICAgICAgICB9OworCisgICAgICAvLyBFdmFsdWF0ZSB0aGUgZGlz YWJsZWQsIHZpc2libGUsIGFuZCByZXF1aXJlZCBvcHRpb24KKyAgICAgIF8u ZXh0ZW5kKGRhdGEsIHsKKyAgICAgICAgZGlzYWJsZWQ6IGV2YWxGKGRhdGEu ZGlzYWJsZWQsIGRhdGEsIHRoaXMubW9kZWwpLAorICAgICAgICB2aXNpYmxl OiAgZXZhbEYoZGF0YS52aXNpYmxlLCBkYXRhLCB0aGlzLm1vZGVsKSwKKyAg ICAgICAgcmVxdWlyZWQ6IGV2YWxGKGRhdGEucmVxdWlyZWQsIGRhdGEsIHRo aXMubW9kZWwpCisgICAgICB9KTsKKworICAgICAgLy8gRXZhbHVhdGlvbiB0 aGUgb3B0aW9ucworICAgICAgaWYgKF8uaXNGdW5jdGlvbihkYXRhLm9wdGlv bnMpKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgZGF0YS5vcHRpb25z ID0gZGF0YS5vcHRpb25zLmFwcGx5KHRoaXMpCisgICAgICAgIH0gY2F0Y2go ZSkgeworICAgICAgICAgIC8vIERvIG5vdGhpbmcKKyAgICAgICAgICBkYXRh Lm9wdGlvbnMgPSBbXQorICAgICAgICAgIHRoaXMubW9kZWwudHJpZ2dlcign cGdhZG1pbi12aWV3OnRyYW5zZm9ybTplcnJvcicsIG0sIHNlbGYuZmllbGQs IGUpOworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIC8vIENsZWFuIHVw IGZpcnN0CisgICAgICB0aGlzLiRlbC5yZW1vdmVDbGFzcyhCYWNrZm9ybS5o aWRkZW5DbGFzc25hbWUpOworICAgICAgdGhpcy4kZWwuaHRtbCh0aGlzLnRl bXBsYXRlKGRhdGEpKS5hZGRDbGFzcyhmaWVsZC5uYW1lKTsKKworICAgICAg aWYgKCFkYXRhLnZpc2libGUpIHsKKyAgICAgICAgdGhpcy4kZWwuYWRkQ2xh c3MoQmFja2Zvcm0uaGlkZGVuQ2xhc3NuYW1lKTsKKyAgICAgIH0gZWxzZSB7 CisgICAgICAgIHZhciBvcHRzID0gXy5leHRlbmQoCisgICAgICAgICAge30s IHRoaXMuZGVmYXVsdHMuc2VsZWN0MiwgZGF0YS5zZWxlY3QyLAorICAgICAg ICAgIHsKKyAgICAgICAgICAgICdkYXRhJzogZGF0YS5vcHRpb25zCisgICAg ICAgICAgfSk7CisgICAgICAgIHRoaXMuJGVsLmZpbmQoInNlbGVjdCIpLnNl bGVjdDIob3B0cykudmFsKGRhdGEucmF3VmFsdWUpLnRyaWdnZXIoImNoYW5n ZSIpOworICAgICAgICB0aGlzLnVwZGF0ZUludmFsaWQoKTsKKyAgICAgIH0K KworICAgICAgcmV0dXJuIHRoaXM7CisgICAgfSwKKyAgICBvbkNoYW5nZTog ZnVuY3Rpb24oZSkgeworICAgICAgdmFyIG1vZGVsID0gdGhpcy5tb2RlbCwK KyAgICAgICAgICAkZWwgPSAkKGUudGFyZ2V0KSwKKyAgICAgICAgICBhdHRy QXJyID0gdGhpcy5maWVsZC5nZXQoIm5hbWUiKS5zcGxpdCgnLicpLAorICAg ICAgICAgIG5hbWUgPSBhdHRyQXJyLnNoaWZ0KCksCisgICAgICAgICAgcGF0 aCA9IGF0dHJBcnIuam9pbignLicpLAorICAgICAgICAgIHZhbHVlID0gdGhp cy5nZXRWYWx1ZUZyb21ET00oKSwKKyAgICAgICAgICBjaGFuZ2VzID0ge30s CisgICAgICAgICAgY29sX2NoYW5nZXMgPSB7fSwKKyAgICAgICAgICBjb2xf bW9kZWwgPSBfLmNsb25lKG1vZGVsLmdldCgnY29sdW1ucycpKTsKKyAgICAg ICAgICBjb2xfY2hhbmdlc1snY29sdW1ucyddID0gY29sX21vZGVsLnRvSlNP TigpOworCisgICAgICBpZiAodGhpcy5tb2RlbC5lcnJvck1vZGVsIGluc3Rh bmNlb2YgQmFja2JvbmUuTW9kZWwpIHsKKyAgICAgICAgaWYgKF8uaXNFbXB0 eShwYXRoKSkgeworICAgICAgICAgIHRoaXMubW9kZWwuZXJyb3JNb2RlbC51 bnNldChuYW1lKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICB2YXIg bmVzdGVkRXJyb3IgPSB0aGlzLm1vZGVsLmVycm9yTW9kZWwuZ2V0KG5hbWUp OworICAgICAgICAgIGlmIChuZXN0ZWRFcnJvcikgeworICAgICAgICAgICAg dGhpcy5rZXlQYXRoU2V0dGVyKG5lc3RlZEVycm9yLCBwYXRoLCBudWxsKTsK KyAgICAgICAgICAgIHRoaXMubW9kZWwuZXJyb3JNb2RlbC5zZXQobmFtZSwg bmVzdGVkRXJyb3IpOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg fQorCisgICAgICB2YXIgbSA9IG1vZGVsLmdldChuYW1lKSwKKyAgICAgICAg ICBzZWxmID0gdGhpczsKKworICAgICAgaWYgKHR5cGVvZihtKSAgPT0gInN0 cmluZyIpeyBtID0gSlNPTi5wYXJzZShtKTsgfQorCisgICAgICAvLyBSZW1v dmUgQ29sdW1ucyBpZiBvcHRpb24gaXMgZGVzZWxlY3RlZCBmcm9tIHRoZSBj b21ib2JveAorICAgICAgaWYoXy5zaXplKEpTT04ucGFyc2UodmFsdWUpKSA8 IF8uc2l6ZShtKSkgeworICAgICAgICB2YXIgZGlmID0gXy5kaWZmZXJlbmNl KG0sIEpTT04ucGFyc2UodmFsdWUpKTsKKyAgICAgICAgY29scyA9IF8uZmls dGVyKGNvbF9tb2RlbC50b0pTT04oKSwgZnVuY3Rpb24obykgeworICAgICAg ICAgICAgICAgICByZXR1cm4gb1siaW5oZXJpdGVkaWQiXSAhPSBkaWZbMF0K KyAgICAgICAgICAgICAgIH0pOworICAgICAgICBjb2xfY2hhbmdlc1snY29s dW1ucyddID0gY29sczsKKyAgICAgIH0KKyAgICAgIC8vIFBvcHVsYXRlIHRo ZSBDb2x1bW5zIG9uIHNlbGVjdGlvbiBvZiB0aGUgY29tYm9ib3gKKyAgICAg IGVsc2UgeworICAgICAgICAgXy5lYWNoKEpTT04ucGFyc2UodmFsdWUpLCBm dW5jdGlvbihpKSB7CisgICAgICAgICAgIGlmICghIF8uY29udGFpbnMobSwg cGFyc2VJbnQoaSkpKXsKKyAgICAgICAgICAgICAvLyBGZXRjaCBDb2x1bW5z IGZyb20gc2VydmVyCisgICAgICAgICAgICAgY29sdW1ucyA9IHNlbGYuZmV0 Y2hDb2x1bW5zKGkpOworICAgICAgICAgICAgIGNvbF9jaGFuZ2VzWydjb2x1 bW5zJ10gPSBfLnVuaW9uKGNvbF9jaGFuZ2VzWydjb2x1bW5zJ10sY29sdW1u cyk7CisgICAgICAgICAgIH0KKyAgICAgICAgIH0pOworICAgICAgfQorCisg ICAgICAvLyBTZXQgbW9kZWwgZm9yIHRoaXMgY29udHJvbCBhbmQgYWxzbyBm b3IgY29sdW1ucworICAgICAgY29sX21vZGVsLnNldChjb2xfY2hhbmdlc1sn Y29sdW1ucyddKTsKKyAgICAgIGNoYW5nZXNbbmFtZV0gPSBfLmlzRW1wdHko cGF0aCkgPyB2YWx1ZSA6IF8uY2xvbmUobW9kZWwuZ2V0KG5hbWUpKSB8fCB7 fTsKKworICAgICAgaWYgKCFfLmlzRW1wdHkocGF0aCkpIHRoaXMua2V5UGF0 aFNldHRlcihjaGFuZ2VzW25hbWVdLCBwYXRoLCB2YWx1ZSk7CisKKyAgICAg IHRoaXMuc3RvcExpc3RlbmluZyh0aGlzLm1vZGVsLCAiY2hhbmdlOiIgKyBu YW1lLCB0aGlzLnJlbmRlcik7CisgICAgICBtb2RlbC5zZXQoY2hhbmdlcyk7 CisKKyAgICAgIHRoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwgImNoYW5nZToi ICsgbmFtZSwgdGhpcy5yZW5kZXIpOworICAgIH0sCisgICAgZmV0Y2hDb2x1 bW5zOiBmdW5jdGlvbih0YWJsZV9pZCl7CisgICAgICB2YXIgc2VsZiA9IHRo aXMsCisgICAgICAgICAgdXJsID0gJ2dldF9jb2x1bW5zJywKKyAgICAgICAg ICBtID0gc2VsZi5tb2RlbC50b3AgfHwgc2VsZi5tb2RlbDsKKworICAgICAg aWYgKHVybCkgeworICAgICAgICB2YXIgbm9kZSA9IHRoaXMuZmllbGQuZ2V0 KCdzY2hlbWFfbm9kZScpLAorICAgICAgICAgICAgbm9kZV9pbmZvID0gdGhp cy5maWVsZC5nZXQoJ25vZGVfaW5mbycpLAorICAgICAgICAgICAgZnVsbF91 cmwgPSBub2RlLmdlbmVyYXRlX3VybC5hcHBseSgKKyAgICAgICAgICAgICAg bm9kZSwgWworICAgICAgICAgICAgICAgIG51bGwsIHVybCwgdGhpcy5maWVs ZC5nZXQoJ25vZGVfZGF0YScpLAorICAgICAgICAgICAgICAgIHRoaXMuZmll bGQuZ2V0KCd1cmxfd2l0aF9pZCcpIHx8IGZhbHNlLCBub2RlX2luZm8KKyAg ICAgICAgICAgICAgXSksCisgICAgICAgICAgICBjYWNoZV9sZXZlbCA9IHRo aXMuZmllbGQuZ2V0KCdjYWNoZV9sZXZlbCcpIHx8IG5vZGUudHlwZSwKKyAg ICAgICAgICAgIGNhY2hlX25vZGUgPSB0aGlzLmZpZWxkLmdldCgnY2FjaGVf bm9kZScpOworCisgICAgICAgIGNhY2hlX25vZGUgPSAoY2FjaGVfbm9kZSAm JiBwZ0FkbWluLkJyb3dzZXIuTm9kZXNbJ2NhY2hlX25vZGUnXSkgfHwgbm9k ZTsKKworICAgICAgICBtLnRyaWdnZXIoJ3BnYWRtaW46dmlldzpmZXRjaGlu ZycsIG0sIHNlbGYuZmllbGQpOworICAgICAgICBkYXRhID0ge2F0dHJlbGlk OiB0YWJsZV9pZH0KKworICAgICAgICAvLyBGZXRjaGluZyBDb2x1bW5zIGRh dGEgZm9yIHRoZSBzZWxlY3RlZCB0YWJsZS4KKyAgICAgICAgJC5hamF4KHsK KyAgICAgICAgICBhc3luYzogZmFsc2UsCisgICAgICAgICAgdXJsOiBmdWxs X3VybCwKKyAgICAgICAgICBkYXRhOiBkYXRhLAorICAgICAgICAgIHN1Y2Nl c3M6IGZ1bmN0aW9uKHJlcykgeworICAgICAgICAgICAgLyoKKyAgICAgICAg ICAgICAqIFdlIHdpbGwgY2FjaGUgdGhpcyBkYXRhIGZvciBzaG9ydCBwZXJp b2Qgb2YgdGltZSBmb3IgYXZvaWRpbmcKKyAgICAgICAgICAgICAqIHNhbWUg Y2FsbHMuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGRhdGEgPSBj YWNoZV9ub2RlLmNhY2hlKHVybCwgbm9kZV9pbmZvLCBjYWNoZV9sZXZlbCwg cmVzLmRhdGEpOworICAgICAgICAgIH0sCisgICAgICAgICAgZXJyb3I6IGZ1 bmN0aW9uKCkgeworICAgICAgICAgICAgbS50cmlnZ2VyKCdwZ2FkbWluOnZp ZXc6ZmV0Y2g6ZXJyb3InLCBtLCBzZWxmLmZpZWxkKTsKKyAgICAgICAgICB9 CisgICAgICAgIH0pOworICAgICAgICBtLnRyaWdnZXIoJ3BnYWRtaW46dmll dzpmZXRjaGVkJywgbSwgc2VsZi5maWVsZCk7CisKKyAgICAgICAgLy8gVG8g ZmV0Y2ggb25seSBvcHRpb25zIGZyb20gY2FjaGUsIHdlIGRvIG5vdCBuZWVk IHRpbWUgZnJvbSAnYXQnCisgICAgICAgIC8vIGF0dHJpYnV0ZSBidXQgb25s eSBvcHRpb25zLgorICAgICAgICAvLworICAgICAgICAvLyBJdCBpcyBmZWFz aWJsZSB0aGF0IHRoZSBkYXRhIG1heSBub3QgaGF2ZSBiZWVuIGZldGNoZWQu CisgICAgICAgIGRhdGEgPSAoZGF0YSAmJiBkYXRhLmRhdGEpIHx8IFtdOwor ICAgICAgICByZXR1cm4gZGF0YTsKKyAgICAgIH0KKyAgICB9LAorICB9KTsK KworCisgIC8vIENvbnN0cmFpbnRzIE1vZGVsCisgIHZhciBDb25zdHJhaW50 TW9kZWwgPSBwZ0FkbWluLkJyb3dzZXIuTm9kZS5Nb2RlbC5leHRlbmQoewor ICAgIGlkQXR0cmlidXRlOiAnY29ubmFtZScsCisgICAgZGVmYXVsdHM6IHsK KyAgICAgIGNvbm5hbWU6IHVuZGVmaW5lZCwKKyAgICAgIGNvbnNyYzogdW5k ZWZpbmVkLAorICAgICAgY29ubm9pbmhlcml0OiB1bmRlZmluZWQKKyAgICB9 LAorICAgIHNjaGVtYTogWworICAgICAgICB7aWQ6ICdjb25uYW1lJywgbGFi ZWw6J3t7IF8oJ05hbWUnKSB9fScsIHR5cGU6ICd0ZXh0JywgY2VsbDogJ3N0 cmluZycsIGdyb3VwOiAnRGVmaW5pdGlvbid9LAorICAgICAgICB7aWQ6ICdj b25zcmMnLCBsYWJlbDone3sgXygnQ2hlY2snKSB9fScsIHR5cGU6ICdtdWx0 aWxpbmUnLCBjZWxsOiAnc3RyaW5nJywgZ3JvdXA6ICdEZWZpbml0aW9uJ30s CisgICAgICAgIHtpZDogJ2Nvbm5vaW5oZXJpdCcsIGxhYmVsOid7eyBfKCdO byBJbmhlcml0JykgfX0nLCB0eXBlOiAnc3dpdGNoJywgY2VsbDogJ2Jvb2xl YW4nLCBncm91cDogJ0RlZmluaXRpb24nfQorCisgICAgXSwKKyAgICB2YWxp ZGF0ZTogZnVuY3Rpb24oKSB7CisgICAgICAvLyBUT0RPOiBBZGQgdmFsaWRh dGlvbiBoZXJlCisgICAgfSwKKyAgICB0b0pTT046IEJhY2tib25lLk1vZGVs LnByb3RvdHlwZS50b0pTT04KKyAgfSk7CisKKworICAvLyBPcHRpb25zIE1v ZGVsCisgIHZhciBPcHRpb25zTW9kZWwgPSBwZ0FkbWluLkJyb3dzZXIuTm9k ZS5Nb2RlbC5leHRlbmQoeworICAgIGRlZmF1bHRzOiB7CisgICAgICBvcHRp b246IHVuZGVmaW5lZCwKKyAgICAgIHZhbHVlOiB1bmRlZmluZWQKKyAgICB9 LAorICAgIHNjaGVtYTogWworICAgICAgICB7aWQ6ICdvcHRpb24nLCBsYWJl bDone3sgXygnT3B0aW9uJykgfX0nLCBjZWxsOiAnc3RyaW5nJywgdHlwZTog J3RleHQnfSwKKyAgICAgICAge2lkOiAndmFsdWUnLCBsYWJlbDone3sgXygn VmFsdWUnKSB9fScsIGNlbGw6ICdzdHJpbmcnLHR5cGU6ICd0ZXh0J30KKyAg ICBdLAorICAgIHZhbGlkYXRlOiBmdW5jdGlvbigpIHsKKyAgICAgIC8vIFRP RE86IEFkZCB2YWxpZGF0aW9uIGhlcmUKKyAgICB9LAorICAgIHRvSlNPTjog QmFja2JvbmUuTW9kZWwucHJvdG90eXBlLnRvSlNPTgorICB9KTsKKworCisg IGlmICghcGdCcm93c2VyLk5vZGVzWydmb3JlaWduLXRhYmxlJ10pIHsKKyAg ICBwZ0FkbWluLkJyb3dzZXIuTm9kZXNbJ2ZvcmVpZ24tdGFibGUnXSA9IHBn QnJvd3Nlci5Ob2RlLmV4dGVuZCh7CisgICAgICB0eXBlOiAnZm9yZWlnbi10 YWJsZScsCisgICAgICBsYWJlbDogJ3t7IF8oJ0ZvcmVpZ24gVGFibGUnKSB9 fScsCisgICAgICBjb2xsZWN0aW9uX3R5cGU6ICdjb2xsLWZvcmVpZ24tdGFi bGUnLAorICAgICAgaGFzU1FMOiB0cnVlLAorICAgICAgaGFzRGVwZW5kczog dHJ1ZSwKKyAgICAgIHBhcmVudF90eXBlOiBbJ3NjaGVtYSddLAorICAgICAg SW5pdDogZnVuY3Rpb24oKSB7CisgICAgICAgIC8qIEF2b2lkIG11bGl0cGxl IHJlZ2lzdHJhdGlvbiBvZiBtZW51cyAqLworICAgICAgICBpZiAodGhpcy5p bml0aWFsaXplZCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0 aGlzLmluaXRpYWxpemVkID0gdHJ1ZTsKKworICAgICAgICBwZ0Jyb3dzZXIu YWRkX21lbnVzKFt7CisgICAgICAgICAgbmFtZTogJ2NyZWF0ZV9mb3JlaWdu LXRhYmxlX29uX2NvbGwnLCBub2RlOiAnY29sbC1mb3JlaWduLXRhYmxlJywg bW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0Jywg J2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywK KyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0LCBs YWJlbDogJ3t7IF8oJ0ZvcmVpZ24gVGFibGUuLi4nKSB9fScsCisgICAgICAg ICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLWZvcmVpZ24tdGFibGUnLCBkYXRh OiB7YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6IHRydWV9LAorICAgICAgICAg IGVuYWJsZTogJ2NhbkNyZWF0ZScKKyAgICAgICAgfSx7CisgICAgICAgICAg bmFtZTogJ2NyZWF0ZV9mb3JlaWduLXRhYmxlJywgbm9kZTogJ2ZvcmVpZ24t dGFibGUnLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGllczogWydv YmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3Bl cnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3Jp dHk6IDQsIGxhYmVsOiAne3sgXygnRm9yZWlnbiBUYWJsZS4uLicpIH19JywK KyAgICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tZm9yZWlnbi10YWJs ZScsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUnLCBjaGVjazogdHJ1ZX0sCisg ICAgICAgICAgZW5hYmxlOiAnY2FuQ3JlYXRlJworICAgICAgICB9LHsKKyAg ICAgICAgICBuYW1lOiAnY3JlYXRlX2ZvcmVpZ24tdGFibGUnLCBub2RlOiAn c2NoZW1hJywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsn b2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9w ZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9y aXR5OiA0LCBsYWJlbDogJ3t7IF8oJ0ZvcmVpZ24gVGFibGUuLi4nKSB9fScs CisgICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLWZvcmVpZ24tdGFi bGUnLCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6IGZhbHNlfSwK KyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUnCisgICAgICAgIH0KKyAg ICAgICAgXSk7CisKKyAgICAgIH0sCisgICAgICBjYW5Ecm9wOiBwZ0Jyb3dz ZXIuTm9kZXNbJ3NjaGVtYSddLmNhbkNoaWxkRHJvcCwKKyAgICAgIGNhbkRy b3BDYXNjYWRlOiBwZ0Jyb3dzZXIuTm9kZXNbJ3NjaGVtYSddLmNhbkNoaWxk RHJvcCwKKyAgICAgIG1vZGVsOiBwZ0FkbWluLkJyb3dzZXIuTm9kZS5Nb2Rl bC5leHRlbmQoeworICAgICAgICBkZWZhdWx0czogeworICAgICAgICAgIG5h bWU6IHVuZGVmaW5lZCwKKyAgICAgICAgICBvaWQ6IHVuZGVmaW5lZCwKKyAg ICAgICAgICBvd25lcjogdW5kZWZpbmVkLAorICAgICAgICAgIGJhc2Vuc3A6 IHVuZGVmaW5lZCwKKyAgICAgICAgICBkZXNjcmlwdGlvbjogdW5kZWZpbmVk LAorICAgICAgICAgIGZ0c3J2bmFtZTogdW5kZWZpbmVkLAorICAgICAgICAg IGluaGVyaXRzOiBbXSwKKyAgICAgICAgICBjb2x1bW5zOiBbXSwKKyAgICAg ICAgICBjb25zdHJhaW50czogW10sCisgICAgICAgICAgZnRvcHRpb25zOiBb XSwKKyAgICAgICAgICBzZWNsYWJlbHM6IFtdCisgICAgICAgIH0sCisgICAg ICAgIHNjaGVtYTogW3sKKyAgICAgICAgICBpZDogJ25hbWUnLCBsYWJlbDog J3t7IF8oJ05hbWUnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAg IHR5cGU6ICd0ZXh0JywgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2NyZWF0ZScs ICdlZGl0J10KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdvaWQnLCBs YWJlbDone3sgXygnT2lkJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAg ICAgICB0eXBlOiAndGV4dCcgLCBtb2RlOiBbJ3Byb3BlcnRpZXMnXQorICAg ICAgICB9LHsKKyAgICAgICAgICBpZDogJ293bmVyJywgbGFiZWw6J3t7IF8o J093bmVyJykgfX0nLCBjZWxsOiAnc3RyaW5nJywgY29udHJvbDogQmFja2Zv cm0uTm9kZUxpc3RCeU5hbWVDb250cm9sLAorICAgICAgICAgIG5vZGU6ICdy b2xlJywgIHR5cGU6ICd0ZXh0JywgbW9kZTogWydlZGl0JywgJ3Byb3BlcnRp ZXMnXQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2Jhc2Vuc3AnLCBs YWJlbDone3sgXygnU2NoZW1hJykgfX0nLCBjZWxsOiAnbm9kZS1saXN0LWJ5 LW5hbWUnLAorICAgICAgICAgICBjb250cm9sOiAnbm9kZS1saXN0LWJ5LW5h bWUnLCBjYWNoZV9sZXZlbDogJ2RhdGFiYXNlJywgdHlwZTogJ3RleHQnLAor ICAgICAgICAgICBub2RlOiAnc2NoZW1hJworICAgICAgICB9LHsKKyAgICAg ICAgICBpZDogJ2Rlc2NyaXB0aW9uJywgbGFiZWw6J3t7IF8oJ0NvbW1lbnQn KSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICdtdWx0 aWxpbmUnCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnZnRzcnZuYW1l JywgbGFiZWw6J3t7IF8oJ0ZvcmVpZ24gU2VydmVyJykgfX0nLCBjZWxsOiAn c3RyaW5nJywgY29udHJvbDogJ25vZGUtYWpheC1vcHRpb25zJywKKyAgICAg ICAgICB0eXBlOiAndGV4dCcsIGdyb3VwOiAnRGVmaW5pdGlvbicsIHVybDog J2dldF9mb3JlaWduX3NlcnZlcnMnLCBkaXNhYmxlZDogZnVuY3Rpb24obSkg eyByZXR1cm4gIW0uaXNOZXcoKTsgfQorICAgICAgICB9LHsKKyAgICAgICAg ICBpZDogJ2luaGVyaXRzJywgbGFiZWw6J3t7IF8oJ0luaGVyaXRzJykgfX0n LCBjZWxsOiAnc3RyaW5nJywgZ3JvdXA6ICdEZWZpbml0aW9uJywKKyAgICAg ICAgICB0eXBlOiAnbGlzdCcsIG1pbl92ZXJzaW9uOiA5MDUwMCwgY29udHJv bDogJ25vZGUtYWpheC1vcHRpb25zLW11bHRpcGxlJywKKyAgICAgICAgICB1 cmw6ICdnZXRfdGFibGVzJywgc2VsZWN0Mjoge211bHRpcGxlOiB0cnVlfSwK KyAgICAgICAgICAnY2FjaGVfbGV2ZWwnOiAnZGF0YWJhc2UnCisgICAgICAg IH0seworICAgICAgICAgIGlkOiAnY29sdW1ucycsIGxhYmVsOid7eyBfKCdD b2x1bW5zJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBl OiAnY29sbGVjdGlvbicsIGdyb3VwOiAnQ29sdW1ucycsIHZpc2libGU6IGZh bHNlLCBtb2RlOiBbJ2VkaXQnLCAnY3JlYXRlJywgJ3Byb3BlcnRpZXMnXSwK KyAgICAgICAgICBtb2RlbDogQ29sdW1uc01vZGVsLCBjYW5BZGQ6IHRydWUs IGNhbkRlbGV0ZTogdHJ1ZSwgY2FuRWRpdDogdHJ1ZSwKKyAgICAgICAgICBj b2x1bW5zOiBbJ2F0dG5hbWUnLCAnZGF0YXR5cGUnLCAndHlwbGVuJywgJ3By ZWNpc2lvbicsICd0eXBkZWZhdWx0JywgJ2F0dG5vdG51bGwnLCAnY29sbG5h bWUnLCAnaW5oZXJpdGVkZnJvbSddCisgICAgICAgIH0sCisgICAgICAgIHsK KyAgICAgICAgICBpZDogJ2NvbnN0cmFpbnRzJywgbGFiZWw6J3t7IF8oJ0Nv bnN0cmFpbnRzJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0 eXBlOiAnY29sbGVjdGlvbicsIGdyb3VwOiAnQ29uc3RyYWludHMnLCB2aXNp YmxlOiBmYWxzZSwgbW9kZTogWydlZGl0JywgJ2NyZWF0ZScsICdwcm9wZXJ0 aWVzJ10sCisgICAgICAgICAgbW9kZWw6IENvbnN0cmFpbnRNb2RlbCwgY2Fu QWRkOiB0cnVlLCBjYW5EZWxldGU6IHRydWUsIGNhbkVkaXQ6IGZ1bmN0aW9u KG8pIHsKKyAgICAgICAgICAgIGlmIChvIGluc3RhbmNlb2YgQmFja2JvbmUu TW9kZWwpIHsKKyAgICAgICAgICAgICAgaWYgKG8gaW5zdGFuY2VvZiBDb25z dHJhaW50TW9kZWwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gby5pc05l dygpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAg ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICB9LCBtaW5fdmVyc2lvbjog OTA1MDAKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdmdG9wdGlvbnMn LCBsYWJlbDone3sgXygnT3B0aW9ucycpIH19JywgY2VsbDogJ3N0cmluZycs CisgICAgICAgICAgdHlwZTogJ2NvbGxlY3Rpb24nLCBncm91cDogJ09wdGlv bnMnLCB2aXNpYmxlOiBmYWxzZSwgbW9kZTogWydlZGl0JywgJ2NyZWF0ZScs ICdwcm9wZXJ0aWVzJ10sCisgICAgICAgICAgbW9kZWw6IE9wdGlvbnNNb2Rl bCwgY2FuQWRkOiB0cnVlLCBjYW5EZWxldGU6IHRydWUsIGNhbkVkaXQ6IHRy dWUKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdzZWNsYWJlbHMnLCBs YWJlbDogJ3t7IF8oJ1NlY3VyaXR5IExhYmVscycpIH19JywKKyAgICAgICAg ICBtb2RlbDogU2VjdXJpdHlNb2RlbCwgdHlwZTogJ2NvbGxlY3Rpb24nLAor ICAgICAgICAgIGdyb3VwOiAne3sgXygnU2VjdXJpdHknKSB9fScsIG1vZGU6 IFsnZWRpdCcsICdjcmVhdGUnXSwKKyAgICAgICAgICBtaW5fdmVyc2lvbjog OTAxMDAsIGNhbkFkZDogdHJ1ZSwKKyAgICAgICAgICBjYW5FZGl0OiB0cnVl LCBjYW5EZWxldGU6IHRydWUKKyAgICAgICAgfQorICAgICAgICBdLAorICAg ICAgICB2YWxpZGF0ZTogZnVuY3Rpb24oKQorICAgICAgICB7CisgICAgICAg ICAgdmFyIGVyciA9IHt9LAorICAgICAgICAgICAgICBlcnJtc2csCisgICAg ICAgICAgICAgIHNlY2xhYmVscyA9IHRoaXMuZ2V0KCdzZWNsYWJlbHMnKTsK KworICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCduYW1l JykpIHx8IFN0cmluZyh0aGlzLmdldCgnbmFtZScpKS5yZXBsYWNlKC9eXHMr fFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgICBlcnJbJ25hbWUn XSA9ICd7eyBfKCdOYW1lIGNhbiBub3QgYmUgZW1wdHkhJykgfX0nOworICAg ICAgICAgICAgZXJybXNnID0gZXJybXNnIHx8IGVyclsnbmFtZSddOworICAg ICAgICAgIH0KKworICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKHRoaXMu Z2V0KCdiYXNlbnNwJykpIHx8IFN0cmluZyh0aGlzLmdldCgnYmFzZW5zcCcp KQorICAgICAgICAgIC5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcn KSB7CisgICAgICAgICAgICBlcnJbJ2Jhc2Vuc3AnXSA9ICd7eyBfKCdTY2hl bWEgY2FuIG5vdCBiZSBlbXB0eSEnKSB9fSc7CisgICAgICAgICAgICBlcnJt c2cgPSBlcnJtc2cgfHwgZXJyWydiYXNlbnNwJ107CisgICAgICAgICAgfQor CisgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ2Z0c3J2 bmFtZScpKSB8fCBTdHJpbmcodGhpcy5nZXQoJ2Z0c3J2bmFtZScpKS5yZXBs YWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgICBl cnJbJ2Z0c3J2bmFtZSddID0gJ3t7IF8oJ0ZvcmVpZ24gU2VydmVyIGNhbiBu b3QgYmUgZW1wdHkhJykgfX0nOworICAgICAgICAgICAgZXJybXNnID0gZXJy bXNnIHx8IGVyclsnZnRzcnZuYW1lJ107CisgICAgICAgICAgfQorCisgICAg ICAgICAgaWYgKHNlY2xhYmVscykgeworICAgICAgICAgICAgdmFyIHNlY0xh YmVsc0VycjsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2Vj bGFiZWxzLm1vZGVscy5sZW5ndGggJiYgIXNlY0xhYmVsc0VycjsgaSsrKSB7 CisgICAgICAgICAgICAgIHNlY0xhYmVsc0VyciA9IChzZWNsYWJlbHMubW9k ZWxzW2ldKS52YWxpZGF0ZS5hcHBseShzZWNsYWJlbHMubW9kZWxzW2ldKTsK KyAgICAgICAgICAgICAgaWYgKHNlY0xhYmVsc0VycikgeworICAgICAgICAg ICAgICAgIGVyclsnc2VjbGFiZWxzJ10gPSBzZWNMYWJlbHNFcnI7CisgICAg ICAgICAgICAgICAgZXJybXNnID0gZXJybXNnIHx8IHNlY0xhYmVsc0VycjsK KyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgIH0K KworICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5jbGVhcigpLnNldChlcnIp OworCisgICAgICAgICAgaWYgKF8uc2l6ZShlcnIpKSB7CisgICAgICAgICAg ICB0aGlzLnRyaWdnZXIoJ29uLXN0YXR1cycsIHttc2c6IGVycm1zZ30pOwor ICAgICAgICAgICAgcmV0dXJuIGVycm1zZzsKKyAgICAgICAgICB9CisKKyAg ICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgfSksCisg ICAgICBjYW5DcmVhdGU6IGZ1bmN0aW9uKGl0ZW1EYXRhLCBpdGVtLCBkYXRh KSB7CisgICAgICAgIC8vSWYgY2hlY2sgaXMgZmFsc2UgdGhlbiAsIHdlIHdp bGwgYWxsb3cgY3JlYXRlIG1lbnUKKyAgICAgICAgaWYgKGRhdGEgJiYgZGF0 YS5jaGVjayA9PSBmYWxzZSkKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKwor ICAgICAgICB2YXIgdCA9IHBnQnJvd3Nlci50cmVlLCBpID0gaXRlbSwgZCA9 IGl0ZW1EYXRhOworICAgICAgICAvLyBUbyBpdGVyYXRlIG92ZXIgdHJlZSB0 byBjaGVjayBwYXJlbnQgbm9kZQorICAgICAgICB3aGlsZSAoaSkgeworICAg ICAgICAgIC8vIElmIGl0IGlzIHNjaGVtYSB0aGVuIGFsbG93IHVzZXIgdG8g Y3JlYXRlIGZvcmVpZ24gdGFibGUKKyAgICAgICAgICBpZiAoXy5pbmRleE9m KFsnc2NoZW1hJ10sIGQuX3R5cGUpID4gLTEpCisgICAgICAgICAgICByZXR1 cm4gdHJ1ZTsKKworICAgICAgICAgIGlmICgnY29sbC1mb3JlaWduLXRhYmxl JyA9PSBkLl90eXBlKSB7CisgICAgICAgICAgICAvL0NoZWNrIGlmIHdlIGFy ZSBub3QgY2hpbGQgb2YgY2F0YWxvZworICAgICAgICAgICAgcHJldl9pID0g dC5oYXNQYXJlbnQoaSkgPyB0LnBhcmVudChpKSA6IG51bGw7CisgICAgICAg ICAgICBwcmV2X2QgPSBwcmV2X2kgPyB0Lml0ZW1EYXRhKHByZXZfaSkgOiBu dWxsOworICAgICAgICAgICAgaWYoIHByZXZfZC5fdHlwZSA9PSAnY2F0YWxv ZycpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg ICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIGkgPSB0Lmhhc1Bh cmVudChpKSA/IHQucGFyZW50KGkpIDogbnVsbDsKKyAgICAgICAgICBkID0g aSA/IHQuaXRlbURhdGEoaSkgOiBudWxsOworICAgICAgICB9CisgICAgICAg IC8vIGJ5IGRlZmF1bHQgd2UgZG8gbm90IHdhbnQgdG8gYWxsb3cgY3JlYXRl IG1lbnUKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICB9CisgIH0pOwor CisgIH0KKworICByZXR1cm4gcGdCcm93c2VyLk5vZGVzWydmb3JlaWduLXRh YmxlJ107Cit9KTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVp Z25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4xX3Bs dXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVz L3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4xX3BsdXMvY3JlYXRl LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTI2 NDhlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWln bl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjFfcGx1 cy9jcmVhdGUuc3FsCkBAIC0wLDAgKzEsMzkgQEAKK3slIGltcG9ydCAnbWFj cm9zL3NjaGVtYXMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQor eyUgaWYgZGF0YSAlfQorQ1JFQVRFIEZPUkVJR04gVEFCTEUge3sgY29ubnxx dElkZW50KGRhdGEuYmFzZW5zcCwgZGF0YS5uYW1lKSB9fQorICAgKHslIGlm IGRhdGEuY29sdW1ucyAlfQoreyUgZm9yIGMgaW4gZGF0YS5jb2x1bW5zICV9 Cit7JSBpZiBub3QgbG9vcC5maXJzdCV9ICAgIHslIGVuZGlmICV9e3tjb25u fHF0SWRlbnQoYy5hdHRuYW1lKX19IHt7IGNvbm58cXRUeXBlSWRlbnQoYy5k YXRhdHlwZSkgfX17JSBpZiBjLnR5cGxlbiAlfSh7e2MudHlwbGVufX0geyUg aWYgYy5wcmVjaXNpb24gJX0sIHt7Yy5wcmVjaXNpb259fXslIGVuZGlmICV9 KXslIGVuZGlmICV9Cit7JSBpZiBjLmF0dG5vdG51bGwgJX0gTk9UIE5VTEx7 JSBlbHNlICV9IE5VTEx7JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFz dCAlfSwKK3slIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9 CispCisgICAgU0VSVkVSIHt7IGNvbm58cXRJZGVudChkYXRhLmZ0c3J2bmFt ZSkgfX07CisKK3slIGlmIGRhdGEuZnRvcHRpb25zICV9Cit7JSBmb3IgbyBp biBkYXRhLmZ0b3B0aW9ucyAlfQoreyUgaWYgby5vcHRpb24gYW5kIG8udmFs dWUgJX0KK3slIGlmIGxvb3AuZmlyc3QgJX1PUFRJT05TICggeyUgZW5kaWYg JX0KK3slIGlmIG5vdCBsb29wLmZpcnN0ICV9LCB7JSBlbmRpZiAlfQore3tv Lm9wdGlvbn19IHt7by52YWx1ZXxxdExpdGVyYWx9fSAgeyUgaWYgbG9vcC5s YXN0ICV9KXslIGVuZGlmICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9 Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQor CitDT01NRU5UIE9OIEZPUkVJR04gVEFCTEUge3sgY29ubnxxdElkZW50KGRh dGEuYmFzZW5zcCwgZGF0YS5uYW1lKSB9fQorICBJUyAne3sgZGF0YS5kZXNj cmlwdGlvbiB9fSc7Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5zZWNs YWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEuc2VjbGFiZWxzICV9Cit7JSBp ZiByLmxhYmVsIGFuZCByLnByb3ZpZGVyICV9CisKK3t7IFNFQ0xBQkxFLlNF VChjb25uLCAnRk9SRUlHTiBUQUJMRScsIGRhdGEubmFtZSwgci5wcm92aWRl ciwgci5sYWJlbCwgZGF0YS5iYXNlbnNwKSB9fQoreyUgZW5kaWYgJX0KK3sl IGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMv Zm9yZWlnbl90YWJsZXMvc3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90 YWJsZXMvc3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uYjFiYzUzZAotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9m b3JlaWduX3RhYmxlcy9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApAQCAtMCww ICsxLDE1IEBACit7JSBpZiBzY2lkIGFuZCBmb2lkICV9CitTRUxFQ1QKKyAg ICBjLnJlbG5hbWUgQVMgbmFtZSwgbnNwbmFtZSBhcyBiYXNlbnNwCitGUk9N CisgICAgcGdfY2xhc3MgYworTEVGVCBPVVRFUiBKT0lOCisgICAgcGdfbmFt ZXNwYWNlIG5zcCBPTiAobnNwLm9pZD1jLnJlbG5hbWVzcGFjZSkKK1dIRVJF CisgICAgYy5yZWxuYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5E IGMub2lkID0ge3tmb2lkfX06Om9pZDsKK3slIGVuZGlmICV9CisKK3slIGlm IG5hbWUgJX0KK0RST1AgRk9SRUlHTiBUQUJMRSB7eyBjb25ufHF0SWRlbnQo YmFzZW5zcCwgbmFtZSkgfX17JSBpZiBjYXNjYWRlJX0gQ0FTQ0FERXslIGVu ZGlmICV9OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9z cWwvOS4xX3BsdXMvZ2V0X2NvbGxhdGlvbnMuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3Nx bC85LjFfcGx1cy9nZXRfY29sbGF0aW9ucy5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uZTU5YzE3ZAotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9m b3JlaWduX3RhYmxlcy9zcWwvOS4xX3BsdXMvZ2V0X2NvbGxhdGlvbnMuc3Fs CkBAIC0wLDAgKzEsMTAgQEAKK1NFTEVDVCAtLW5zcG5hbWUsIGNvbGxuYW1l LAorICAgIENBU0UgV0hFTiBsZW5ndGgobnNwbmFtZSkgPiAwIEFORCBsZW5n dGgoY29sbG5hbWUpID4gMCAgVEhFTgorICAgIGNvbmNhdChuc3BuYW1lLCAn LiInLCBjb2xsbmFtZSwnIicpCisgICAgRUxTRSAnJyBFTkQgQVMgY29weV9j b2xsYXRpb24KK0ZST00KKyAgICBwZ19jb2xsYXRpb24gYywgcGdfbmFtZXNw YWNlIG4KK1dIRVJFCisgICAgYy5jb2xsbmFtZXNwYWNlPW4ub2lkCitPUkRF UiBCWQorICAgIG5zcG5hbWUsIGNvbGxuYW1lOwpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25f dGFibGVzL3NxbC85LjFfcGx1cy9nZXRfY29sdW1ucy5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJs ZXMvc3FsLzkuMV9wbHVzL2dldF9jb2x1bW5zLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzMzYTNjCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVz L2ZvcmVpZ25fdGFibGVzL3NxbC85LjFfcGx1cy9nZXRfY29sdW1ucy5zcWwK QEAgLTAsMCArMSwxNiBAQAorU0VMRUNUCisgICAgYXR0bmFtZSwgYXR0bmRp bXMsIGF0dHR5cG1vZCwgZm9ybWF0X3R5cGUodC5vaWQsTlVMTCkgQVMgZGF0 YXR5cGUsCisgICAgZm9ybWF0X3R5cGUodC5vaWQsIGF0dC5hdHR0eXBtb2Qp IEFTIGZ1bGx0eXBlLCBhdHRub3RudWxsLCBhdHRudW0sCisgICAgKFNFTEVD VCBDT1VOVCgxKSBmcm9tIHBnX3R5cGUgdDIgV0hFUkUgdDIudHlwbmFtZT10 LnR5cG5hbWUpID4gMSBBUyBpc2R1cAorRlJPTQorICAgIHBnX2F0dHJpYnV0 ZSBhdHQKK0pPSU4KKyAgICBwZ190eXBlIHQgT04gdC5vaWQ9YXR0dHlwaWQK K0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIHQudHlwbmFtZXNwYWNl PW5zcC5vaWQKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX3R5cGUgYiBPTiB0 LnR5cGVsZW09Yi5vaWQKK1dIRVJFCisgICAgYXR0LmF0dHJlbGlkPXt7Zm9p ZH19OjpvaWQKKyAgICBBTkQgYXR0bnVtPjAKK09SREVSIGJ5IGF0dG51bTsK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3Rl bXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4xX3BsdXMvZ2V0X2NvbnN0 cmFpbnRzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3Rl bXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4xX3BsdXMvZ2V0X2NvbnN0 cmFpbnRzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5mYzkzNTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv Zm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85 LjFfcGx1cy9nZXRfY29uc3RyYWludHMuc3FsCkBAIC0wLDAgKzEsNyBAQAor U0VMRUNUCisgICAgY29ubmFtZSwgY29udHlwZSwgY29uc3JjCitGUk9NCisg ICAgcGdfY29uc3RyYWludAorV0hFUkUKKyAgICBjb25yZWxpZD17e2ZvaWR9 fTo6b2lkCitPUkRFUiBieSBjb25uYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFi bGVzL3NxbC85LjFfcGx1cy9nZXRfZm9yZWlnbl9zZXJ2ZXJzLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWdu X3RhYmxlcy9zcWwvOS4xX3BsdXMvZ2V0X2ZvcmVpZ25fc2VydmVycy5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTk4MGYwMgot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFi bGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4xX3BsdXMvZ2V0 X2ZvcmVpZ25fc2VydmVycy5zcWwKQEAgLTAsMCArMSw1IEBACitTRUxFQ1QK KyAgICBzcnZuYW1lCitGUk9NCisgICAgcGdfZm9yZWlnbl9zZXJ2ZXIKK09S REVSIEJZIHNydm5hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m b3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzku MV9wbHVzL2dldF9vaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90 YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjFfcGx1cy9n ZXRfb2lkLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li45YTVmNWQxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv Zm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85 LjFfcGx1cy9nZXRfb2lkLnNxbApAQCAtMCwwICsxLDE5IEBACit7JSBpZiBi YXNlbnNwICV9CitTRUxFQ1QKKyAgICBjLm9pZCwgYm4ub2lkIGFzIHNjaWQK K0ZST00KKyAgICBwZ19jbGFzcyBjCitKT0lOCisgICAgcGdfbmFtZXNwYWNl IGJuIE9OIGJuLm9pZD1jLnJlbG5hbWVzcGFjZQorV0hFUkUKKyAgICBibi5u c3BuYW1lID0ge3sgYmFzZW5zcHxxdExpdGVyYWwgfX0KKyAgICBBTkQgYy5y ZWxuYW1lPXt7IG5hbWV8cXRMaXRlcmFsIH19OworCit7JSBlbGlmIGZvaWQg JX0KK1NFTEVDVAorICAgIGMucmVsbmFtZXNwYWNlIGFzIHNjaWQKK0ZST00K KyAgICBwZ19jbGFzcyBjCitXSEVSRQorICAgIGMub2lkID0ge3tmb2lkfX06 Om9pZDsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3Fs LzkuMV9wbHVzL2dldF9zY2hlbWFzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Zv cmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4x X3BsdXMvZ2V0X3NjaGVtYXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmJmODdhMzcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90 YWJsZXMvc3FsLzkuMV9wbHVzL2dldF9zY2hlbWFzLnNxbApAQCAtMCwwICsx LDIzIEBACitTRUxFQ1QKKyAgICBuc3AubnNwbmFtZQorRlJPTQorICAgIHBn X25hbWVzcGFjZSBuc3AKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rlc2Ny aXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1uc3Aub2lkIEFORCBkZXMuY2xh c3NvaWQ9J3BnX25hbWVzcGFjZSc6OnJlZ2NsYXNzKQorTEVGVCBPVVRFUiBK T0lOCisgICAgcGdfY2F0YWxvZy5wZ19kZWZhdWx0X2FjbCBkYWNsIE9OIChk YWNsLmRlZmFjbG5hbWVzcGFjZSA9IG5zcC5vaWQpCitXSEVSRQorICAgIE5P VCAoKG5zcG5hbWUgPSAncGdfY2F0YWxvZycgQU5EIEVYSVNUUworICAgICAg ICAoU0VMRUNUIDEgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3Bn X2NsYXNzJyBBTkQgcmVsbmFtZXNwYWNlID0gbnNwLm9pZCBMSU1JVCAxKSkg T1IKKyAgICAobnNwbmFtZSA9ICdwZ2FnZW50JyBBTkQgRVhJU1RTCisgICAg ICAgIChTRUxFQ1QgMSBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAn cGdhX2pvYicgQU5EIHJlbG5hbWVzcGFjZSA9IG5zcC5vaWQgTElNSVQgMSkp IE9SCisgICAgKG5zcG5hbWUgPSAnaW5mb3JtYXRpb25fc2NoZW1hJyBBTkQg RVhJU1RTCisgICAgICAgIChTRUxFQ1QgMSBGUk9NIHBnX2NsYXNzIFdIRVJF IHJlbG5hbWUgPSAndGFibGVzJyBBTkQgcmVsbmFtZXNwYWNlID0gbnNwLm9p ZCBMSU1JVCAxKSkgT1IKKyAgICAobnNwbmFtZSBMSUtFICdfJScgQU5EIEVY SVNUUworICAgICAgKFNFTEVDVCAxIEZST00gcGdfcHJvYyBXSEVSRSBwcm9u YW1lPSdzbG9ueXZlcnNpb24nIEFORCBwcm9uYW1lc3BhY2UgPSBuc3Aub2lk IExJTUlUIDEpKQorICAgICkgQU5ECisgICAgbnNwbmFtZSBOT1QgTElLRSBF J3BnXFx0ZW1wXFwlJyBBTkQKKyAgICBuc3BuYW1lIE5PVCBMSUtFIEUncGdc XHRvYXN0X3RlbXBcXCUnIEFORAorICAgIC0tIEFEREVEOiBCZWNhdXNlIFdl IG5lZWQgdG8gb21pdCBzeXN0ZW0gc2NoZW1hIGV4Y2VwdCB0aGUgb25lIG9u IHdoaWNoIHdlIGFyZSB0cnlpbmcgdG8gIGNyZWF0ZSBjb2xsYXRpb24KKyAg ICAoIG5zcC5vaWQgPSB7eyBzY2lkIH19IE9SIG5zcG5hbWUgTk9UIExJS0Ug RSdwZ1xcXyUnICkKK09SREVSIEJZIG5zcG5hbWU7CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWln bl90YWJsZXMvc3FsLzkuMV9wbHVzL2dldF90eXBlcy5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJs ZXMvc3FsLzkuMV9wbHVzL2dldF90eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uNzJjZmEyNgotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9m b3JlaWduX3RhYmxlcy9zcWwvOS4xX3BsdXMvZ2V0X3R5cGVzLnNxbApAQCAt MCwwICsxLDE3IEBACitTRUxFQ1QKKyAgICAqCitGUk9NCisgICAgKFNFTEVD VCBmb3JtYXRfdHlwZSh0Lm9pZCxOVUxMKSBBUyB0eXBuYW1lLCBDQVNFIFdI RU4gdHlwZWxlbSA+IDAgVEhFTiB0eXBlbGVtIEVMU0UgdC5vaWQgRU5EIGFz IGVsZW1vaWQsIHR5cGxlbiwgdHlwdHlwZSwgdC5vaWQsIG5zcG5hbWUsCisg ICAgKFNFTEVDVCBDT1VOVCgxKSBGUk9NIHBnX3R5cGUgdDIgV0hFUkUgdDIu dHlwbmFtZSA9IHQudHlwbmFtZSkgPiAxIEFTIGlzZHVwCisgICAgRlJPTQor ICAgICAgICBwZ190eXBlIHQKKyAgICBKT0lOCisgICAgICAgIHBnX25hbWVz cGFjZSBuc3AgT04gdHlwbmFtZXNwYWNlPW5zcC5vaWQKKyAgICBXSEVSRQor ICAgICAgICAoTk9UICh0eXBuYW1lID0gJ3Vua25vd24nIEFORCBuc3BuYW1l ID0gJ3BnX2NhdGFsb2cnKSkKKyAgICAgICAgQU5EIHR5cGlzZGVmaW5lZCBB TkQgdHlwdHlwZSBJTiAoJ2InLCAnYycsICdkJywgJ2UnLCAncicpCisgICAg ICAgIEFORCBOT1QgRVhJU1RTIChzZWxlY3QgMSBmcm9tIHBnX2NsYXNzIHdo ZXJlIHJlbG5hbWVzcGFjZT10eXBuYW1lc3BhY2UgYW5kIHJlbG5hbWUgPSB0 eXBuYW1lIGFuZCByZWxraW5kICE9ICdjJykKKyAgICAgICAgQU5EICh0eXBu YW1lIG5vdCBsaWtlICdfJScgT1IgTk9UIEVYSVNUUyAoc2VsZWN0IDEgZnJv bSBwZ19jbGFzcyB3aGVyZSByZWxuYW1lc3BhY2U9dHlwbmFtZXNwYWNlIGFu ZCByZWxuYW1lID0gc3Vic3RyaW5nKHR5cG5hbWUgZnJvbSAyKTo6bmFtZSBh bmQgcmVsa2luZCAhPSAnYycpKQorICAgICkgQVMgZHVtbXkKK09SREVSIEJZ CisgICAgbnNwbmFtZSA8PiAncGdfY2F0YWxvZycsIG5zcG5hbWUgPD4gJ3B1 YmxpYycsIG5zcG5hbWUsIDE7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3Fs LzkuMV9wbHVzL25vZGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90 YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjFfcGx1cy9u b2RlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4y ZDNhMzhiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9y ZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjFf cGx1cy9ub2RlLnNxbApAQCAtMCwwICsxLDEyIEBACitTRUxFQ1QKKyAgICBj Lm9pZCwgYy5yZWxuYW1lIEFTIG5hbWUsIHBnX2dldF91c2VyYnlpZChyZWxv d25lcikgQVMgb3duZXIsCisgICAgZnRvcHRpb25zLCBuc3BuYW1lIGFzIGJh c2Vuc3AKK0ZST00KKyAgICBwZ19jbGFzcyBjCitKT0lOCisgICAgcGdfZm9y ZWlnbl90YWJsZSBmdCBPTiBjLm9pZD1mdC5mdHJlbGlkCitMRUZUIE9VVEVS IEpPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIChuc3Aub2lkPWMucmVs bmFtZXNwYWNlKQorV0hFUkUKKyAgICBjLnJlbG5hbWVzcGFjZSA9IHt7c2Np ZH19OjpvaWQKK09SREVSIEJZIGMucmVsbmFtZTsKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWdu X3RhYmxlcy9zcWwvOS4xX3BsdXMvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJs ZXMvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1NjEzODAKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMv Zm9yZWlnbl90YWJsZXMvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCkBA IC0wLDAgKzEsMjEgQEAKK1NFTEVDVAorICAgIGMub2lkLCBjLnJlbG5hbWUg QVMgbmFtZSwgcGdfZ2V0X3VzZXJieWlkKHJlbG93bmVyKSBBUyBvd25lciwK KyAgICBmdG9wdGlvbnMsIHNydm5hbWUgQVMgZnRzcnZuYW1lLCBkZXNjcmlw dGlvbiwgbnNwbmFtZSBhcyBiYXNlbnNwLAorICAgIChTRUxFQ1QgYXJyYXlf YWdnKGxhYmVsKSBGUk9NIHBnX3NlY2xhYmVscyBzbDEgV0hFUkUgc2wxLm9i am9pZD1jLm9pZCkgQVMgbGFiZWxzLAorICAgIChTRUxFQ1QgYXJyYXlfYWdn KHByb3ZpZGVyKSBGUk9NIHBnX3NlY2xhYmVscyBzbDIgV0hFUkUgc2wyLm9i am9pZD1jLm9pZCkgQVMgcHJvdmlkZXJzCitGUk9NCisgICAgcGdfY2xhc3Mg YworSk9JTgorICAgIHBnX2ZvcmVpZ25fdGFibGUgZnQgT04gYy5vaWQ9ZnQu ZnRyZWxpZAorTEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZm9yZWlnbl9zZXJ2 ZXIgZnMgT04gZnQuZnRzZXJ2ZXI9ZnMub2lkCitMRUZUIE9VVEVSIEpPSU4K KyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9Yy5vaWQg QU5EIGRlcy5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykKK0xFRlQg T1VURVIgSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gKG5zcC5vaWQ9 Yy5yZWxuYW1lc3BhY2UpCitXSEVSRQorICAgIGMucmVsbmFtZXNwYWNlID0g e3tzY2lkfX06Om9pZAorICAgIHslIGlmIGZvaWQgJX0KKyAgICBBTkQgYy5v aWQgPSB7e2ZvaWR9fTo6b2lkCisgICAgeyUgZW5kaWYgJX0KK09SREVSIEJZ IGMucmVsbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVp Z25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4xX3Bs dXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVz L3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4xX3BsdXMvdXBkYXRl LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZmIz MWMxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWln bl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjFfcGx1 cy91cGRhdGUuc3FsCkBAIC0wLDAgKzEsMTA1IEBACit7JSBpbXBvcnQgJ21h Y3Jvcy9zY2hlbWFzL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0K K3slIGlmIGRhdGEgJX0KK3slIHNldCBuYW1lID0gb19kYXRhLm5hbWUgJX0K K3slIGlmIGRhdGEubmFtZSAlfQoreyUgaWYgZGF0YS5uYW1lICE9IG9fZGF0 YS5uYW1lICV9CitBTFRFUiBGT1JFSUdOIFRBQkxFIHt7IGNvbm58cXRJZGVu dChvX2RhdGEuYmFzZW5zcCwgb19kYXRhLm5hbWUpIH19CitSRU5BTUUgVE8g e3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX07Cit7JSBzZXQgbmFtZSA9 IGRhdGEubmFtZSAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmIC0lfQorCit7 JSBpZiBkYXRhLm93bmVyICV9CisKK0FMVEVSIEZPUkVJR04gVEFCTEUge3sg Y29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSB9fQorT1dORVIg VE8ge3sgZGF0YS5vd25lciB9fTsKK3slIGVuZGlmIC0lfQorCit7JSBpZiBk YXRhLmNvbHVtbnMgJX0KK3slIGZvciBjIGluIGRhdGEuY29sdW1ucy5kZWxl dGVkICV9CisKK0FMVEVSIEZPUkVJR04gVEFCTEUge3sgY29ubnxxdElkZW50 KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSB9fQorRFJPUCBDT0xVTU4ge3tjb25u fHF0SWRlbnQoYy5hdHRuYW1lKX19OworeyUgZW5kZm9yIC0lfQorCit7JSBm b3IgYyBpbiBkYXRhLmNvbHVtbnMuYWRkZWQgJX0KKworQUxURVIgRk9SRUlH TiBUQUJMRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLmJhc2Vuc3AsIG5hbWUp IH19CitBREQgQ09MVU1OIHt7Y29ubnxxdElkZW50KGMuYXR0bmFtZSl9fSB7 eyBjb25ufHF0VHlwZUlkZW50KGMuZGF0YXR5cGUpIH19eyUgaWYgYy50eXBs ZW4gJX0oe3tjLnR5cGxlbn19IHslIGlmIGMucHJlY2lzaW9uICV9LCB7e2Mu cHJlY2lzaW9ufX17JSBlbmRpZiAlfSl7JSBlbmRpZiAlfQoreyUgaWYgYy5h dHRub3RudWxsICV9IE5PVCBOVUxMIHslIGVsc2UgJX0gTlVMTCB7JSBlbmRp ZiAlfQoreyUgaWYgYy50eXBkZWZhdWx0ICV9IERFRkFVTFQge3tjLnR5cGRl ZmF1bHR8cXRMaXRlcmFsfX17JSBlbmRpZiAlfQoreyUgaWYgYy5jb2xsbmFt ZSAlfSBDT0xMQVRFIHt7Yy5jb2xsbmFtZX19eyUgZW5kaWYgJX07Cit7JSBl bmRmb3IgLSV9CisKK3slIGZvciBjIGluIGRhdGEuY29sdW1ucy5jaGFuZ2Vk ICV9CisKK0FMVEVSIEZPUkVJR04gVEFCTEUge3sgY29ubnxxdElkZW50KG9f ZGF0YS5iYXNlbnNwLCBuYW1lKSB9fQorRFJPUCBDT0xVTU4ge3tjb25ufHF0 SWRlbnQob19kYXRhWydjb2x1bW5zJ11bYy5hdHRudW1dWydhdHRuYW1lJ10p fX07CisKK0FMVEVSIEZPUkVJR04gVEFCTEUge3sgY29ubnxxdElkZW50KG9f ZGF0YS5iYXNlbnNwLCBuYW1lKSB9fQorQUREIENPTFVNTiB7e2Nvbm58cXRJ ZGVudChjLmF0dG5hbWUpfX0ge3sgY29ubnxxdFR5cGVJZGVudChjLmRhdGF0 eXBlKSB9fXslIGlmIGMudHlwbGVuICV9KHt7Yy50eXBsZW59fSB7JSBpZiBj LnByZWNpc2lvbiAlfSwge3tjLnByZWNpc2lvbn19eyUgZW5kaWYgJX0peyUg ZW5kaWYgJX0KK3slIGlmIGMuYXR0bm90bnVsbCAlfSBOT1QgTlVMTCB7JSBl bHNlICV9IE5VTEwgeyUgZW5kaWYgJX0KK3slIGlmIGMudHlwZGVmYXVsdCAl fSBERUZBVUxUIHt7Yy50eXBkZWZhdWx0fHF0TGl0ZXJhbH19eyUgZW5kaWYg JX0KK3slIGlmIGMuY29sbG5hbWUgJX0gQ09MTEFURSB7e2MuY29sbG5hbWV9 fXslIGVuZGlmICV9OworeyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKwor Cit7JSBpZiBkYXRhLmZ0b3B0aW9ucyAlfQoreyUgZm9yIG8gaW4gZGF0YS5m dG9wdGlvbnMuZGVsZXRlZCAlfQoreyUgaWYgby5vcHRpb24gYW5kIG8udmFs dWUgJX0KKworQUxURVIgRk9SRUlHTiBUQUJMRSB7eyBjb25ufHF0SWRlbnQo b19kYXRhLmJhc2Vuc3AsIG5hbWUpIH19CitPUFRJT05TICggRFJPUCB7e28u b3B0aW9ufX0ge3tvLnZhbHVlfHF0TGl0ZXJhbH19KTsKK3slIGVuZGlmICV9 Cit7JSBlbmRmb3IgJX0KKworeyUgZm9yIG8gaW4gZGF0YS5mdG9wdGlvbnMu YWRkZWQgJX0KK3slIGlmIG8ub3B0aW9uIGFuZCBvLnZhbHVlICV9CisKK0FM VEVSIEZPUkVJR04gVEFCTEUge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNl bnNwLCBuYW1lKSB9fQorT1BUSU9OUyAoQUREIHt7by5vcHRpb259fSB7e28u dmFsdWV8cXRMaXRlcmFsfX0pOworeyUgZW5kaWYgJX0KK3slIGVuZGZvciAl fQorCit7JSBmb3IgbyBpbiBkYXRhLmZ0b3B0aW9ucy5jaGFuZ2VkICV9Cit7 JSBpZiBvLm9wdGlvbiBhbmQgby52YWx1ZSAlfQorCitBTFRFUiBGT1JFSUdO IFRBQkxFIHt7IGNvbm58cXRJZGVudChvX2RhdGEuYmFzZW5zcCwgbmFtZSkg fX0KK09QVElPTlMgKFNFVCB7e28ub3B0aW9ufX0ge3tvLnZhbHVlfHF0TGl0 ZXJhbH19KTsKK3slIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlm IC0lfQorCisKK3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVscyAl fQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxz LmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxz LmRlbGV0ZWQgJX0KK3t7IFNFQ0xBQkxFLlVOU0VUKGNvbm4sICdGT1JFSUdO IFRBQkxFJywgbmFtZSwgci5wcm92aWRlciwgb19kYXRhLmJhc2Vuc3ApIH19 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2FkZGVkJyBp biBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5hZGRlZHxsZW5ndGggPiAwICV9 Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuYWRkZWQgJX0KKwore3sgU0VDTEFC TEUuU0VUKGNvbm4sICdGT1JFSUdOIFRBQkxFJywgbmFtZSwgci5wcm92aWRl ciwgci5sYWJlbCwgb19kYXRhLmJhc2Vuc3ApIH19Cit7JSBlbmRmb3IgJX0K K3slIGVuZGlmIC0lfQoreyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVscyBh bmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIg aW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KKwore3sgU0VDTEFCTEUuU0VUKGNv bm4sICdGT1JFSUdOIFRBQkxFJywgbmFtZSwgci5wcm92aWRlciwgci5sYWJl bCwgb19kYXRhLmJhc2Vuc3ApIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlm IC0lfQorCit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9CisKK0NPTU1FTlQg T04gRk9SRUlHTiBUQUJMRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLmJhc2Vu c3AsIG5hbWUpIH19CisgICAgSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxxdExp dGVyYWwgfX07Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5iYXNlbnNw ICV9CisKK0FMVEVSIEZPUkVJR04gVEFCTEUge3sgY29ubnxxdElkZW50KG9f ZGF0YS5iYXNlbnNwLCBuYW1lKSB9fQorICAgIFNFVCBTQ0hFTUEge3sgY29u bnxxdElkZW50KGRhdGEuYmFzZW5zcCkgfX07Cit7JSBlbmRpZiAlfQoreyUg ZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25f dGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4zX3BsdXMv Y3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3Rl bXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4zX3BsdXMvY3JlYXRlLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjM5ZmIy Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90 YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjNfcGx1cy9j cmVhdGUuc3FsCkBAIC0wLDAgKzEsNDAgQEAKK3slIGltcG9ydCAnbWFjcm9z L3NjaGVtYXMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUg aWYgZGF0YSAlfQorQ1JFQVRFIEZPUkVJR04gVEFCTEUge3sgY29ubnxxdElk ZW50KGRhdGEuYmFzZW5zcCwgZGF0YS5uYW1lKSB9fQorICAgKHslIGlmIGRh dGEuY29sdW1ucyAlfQoreyUgZm9yIGMgaW4gZGF0YS5jb2x1bW5zICV9Cit7 JSBpZiBub3QgbG9vcC5maXJzdCV9ICAgIHslIGVuZGlmICV9e3tjb25ufHF0 SWRlbnQoYy5hdHRuYW1lKX19IHt7Citjb25ufHF0VHlwZUlkZW50KGMuZGF0 YXR5cGUpIH19eyUgaWYgYy50eXBsZW4gJX0oe3tjLnR5cGxlbn19IHslIGlm IGMucHJlY2lzaW9uICV9LCB7e2MucHJlY2lzaW9ufX17JSBlbmRpZiAlfSl7 JSBlbmRpZiAlfXslIGlmIGMuYXR0bm90bnVsbCAlfQorTk9UIE5VTEwgeyUg ZWxzZSAlfSBOVUxMeyUgZW5kaWYgJX17JSBpZiBjLnR5cGRlZmF1bHQgJX0K K0RFRkFVTFQge3tjLnR5cGRlZmF1bHR8cXRMaXRlcmFsfX17JSBlbmRpZiAl fXslIGlmIGMuY29sbG5hbWUgJX0KK0NPTExBVEV7e2MuY29sbG5hbWV9fXsl IGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9LAoreyUgZW5kaWYg JX0KK3slIGVuZGZvciAtJX17JSBlbmRpZiAtJX0pCisgICAgU0VSVkVSIHt7 IGNvbm58cXRJZGVudChkYXRhLmZ0c3J2bmFtZSkgfX07CisKK3slIGlmIGRh dGEuZnRvcHRpb25zICV9Cit7JSBmb3IgbyBpbiBkYXRhLmZ0b3B0aW9ucyAl fQoreyUgaWYgby5vcHRpb24gYW5kIG8udmFsdWUgJX0KK3slIGlmIGxvb3Au Zmlyc3QgJX1PUFRJT05TICggeyUgZW5kaWYgJX0KK3slIGlmIG5vdCBsb29w LmZpcnN0ICV9LCB7JSBlbmRpZiAlfQore3tvLm9wdGlvbn19IHt7by52YWx1 ZXxxdExpdGVyYWx9fSB7JSBpZiBsb29wLmxhc3QgJX0peyUgZW5kaWYgJX0K K3slIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorCit7 JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9CisKK0NPTU1FTlQgT04gRk9SRUlH TiBUQUJMRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5iYXNlbnNwLCBkYXRhLm5h bWUpIH19CisgICAgSVMgJ3t7IGRhdGEuZGVzY3JpcHRpb24gfX0nOworeyUg ZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuc2VjbGFiZWxzICV9Cit7JSBmb3Ig ciBpbiBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYgci5sYWJlbCBhbmQgci5w cm92aWRlciAlfQorCit7eyBTRUNMQUJMRS5TRVQoY29ubiwgJ0ZPUkVJR04g VEFCTEUnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIubGFiZWwsIGRhdGEu YmFzZW5zcCkgfX0KK3slIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3Nx bC85LjNfcGx1cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWln bl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjNfcGx1 cy9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjViYjA5NjkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3Fs LzkuM19wbHVzL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwxNyBAQAoreyUgaWYg c2NpZCBhbmQgZm9pZCAlfQorU0VMRUNUCisgICAgYy5yZWxuYW1lIEFTIG5h bWUsIG5zcG5hbWUgYXMgYmFzZW5zcAorRlJPTQorICAgIHBnX2NsYXNzIGMK K0xFRlQgT1VURVIgSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gKG5z cC5vaWQ9Yy5yZWxuYW1lc3BhY2UpCitXSEVSRQorICAgIGMucmVsbmFtZXNw YWNlID0ge3tzY2lkfX06Om9pZAorQU5ECisgICAgYy5vaWQgPSB7e2ZvaWR9 fTo6b2lkOworeyUgZW5kaWYgJX0KKworCit7JSBpZiBuYW1lICV9CitEUk9Q IEZPUkVJR04gVEFCTEUge3sgY29ubnxxdElkZW50KGJhc2Vuc3AsIG5hbWUp IH19eyUgaWYgY2FzY2FkZSV9IENBU0NBREV7JSBlbmRpZiAlfTsKK3slIGVu ZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3Rh Ymxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuM19wbHVzL2dl dF9jb2xsYXRpb25zLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFi bGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4zX3BsdXMvZ2V0 X2NvbGxhdGlvbnMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjE0YzNiMmUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMv c3FsLzkuM19wbHVzL2dldF9jb2xsYXRpb25zLnNxbApAQCAtMCwwICsxLDkg QEAKK1NFTEVDVCAtLW5zcG5hbWUsIGNvbGxuYW1lLAorICBDQVNFIFdIRU4g bGVuZ3RoKG5zcG5hbWUpID4gMCBBTkQgbGVuZ3RoKGNvbGxuYW1lKSA+IDAg IFRIRU4KKyAgY29uY2F0KG5zcG5hbWUsICcuIicsIGNvbGxuYW1lLCciJykK KyAgRUxTRSAnJyBFTkQgQVMgY29weV9jb2xsYXRpb24KK0ZST00KKyAgICBw Z19jb2xsYXRpb24gYywgcGdfbmFtZXNwYWNlIG4KK1dIRVJFCisgICAgYy5j b2xsbmFtZXNwYWNlPW4ub2lkCitPUkRFUiBCWSBuc3BuYW1lLCBjb2xsbmFt ZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVz L3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4zX3BsdXMvZ2V0X2Nv bHVtbnMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVt cGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjNfcGx1cy9nZXRfY29sdW1u cy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzZj ZmE5NwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVp Z25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4zX3Bs dXMvZ2V0X2NvbHVtbnMuc3FsCkBAIC0wLDAgKzEsMjIgQEAKK1NFTEVDVAor ICAgIGF0dG5hbWUsIGF0dG5kaW1zLCBhdHR0eXBtb2QsIGZvcm1hdF90eXBl KHQub2lkLE5VTEwpIEFTIGRhdGF0eXBlLAorICAgIGF0dG5vdG51bGwsIGF0 dG51bSwgZm9ybWF0X3R5cGUodC5vaWQsIGF0dC5hdHR0eXBtb2QpIEFTIGZ1 bGx0eXBlLAorICAgIENBU0UgV0hFTiBsZW5ndGgoY24ubnNwbmFtZSkgPiAw IEFORCBsZW5ndGgoY2wuY29sbG5hbWUpID4gMCBUSEVOCisgICAgY29uY2F0 KGNuLm5zcG5hbWUsICcuIicsIGNsLmNvbGxuYW1lLCciJykgRUxTRSAnJyBF TkQgQVMgY29sbG5hbWUsCisgICAgKFNFTEVDVCBDT1VOVCgxKSBmcm9tIHBn X3R5cGUgdDIgV0hFUkUgdDIudHlwbmFtZT10LnR5cG5hbWUpID4gMSBBUyBp c2R1cAorRlJPTQorICAgIHBnX2F0dHJpYnV0ZSBhdHQKK0pPSU4KKyAgICBw Z190eXBlIHQgT04gdC5vaWQ9YXR0dHlwaWQKK0pPSU4KKyAgICBwZ19uYW1l c3BhY2UgbnNwIE9OIHQudHlwbmFtZXNwYWNlPW5zcC5vaWQKK0xFRlQgT1VU RVIgSk9JTgorICAgIHBnX3R5cGUgYiBPTiB0LnR5cGVsZW09Yi5vaWQKK0xF RlQgT1VURVIgSk9JTgorICAgIHBnX2NvbGxhdGlvbiBjbCBPTiB0LnR5cGNv bGxhdGlvbj1jbC5vaWQKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX25hbWVz cGFjZSBjbiBPTiBjbC5jb2xsbmFtZXNwYWNlPWNuLm9pZAorV0hFUkUKKyAg ICBhdHQuYXR0cmVsaWQ9e3tmb2lkfX06Om9pZAorICAgIEFORCBhdHRudW0+ MAorT1JERVIgYnkgYXR0bnVtOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3Nx bC85LjNfcGx1cy9nZXRfY29uc3RyYWludHMuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3Nx bC85LjNfcGx1cy9nZXRfY29uc3RyYWludHMuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjOTM1NDkKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMv Zm9yZWlnbl90YWJsZXMvc3FsLzkuM19wbHVzL2dldF9jb25zdHJhaW50cy5z cWwKQEAgLTAsMCArMSw3IEBACitTRUxFQ1QKKyAgICBjb25uYW1lLCBjb250 eXBlLCBjb25zcmMKK0ZST00KKyAgICBwZ19jb25zdHJhaW50CitXSEVSRQor ICAgIGNvbnJlbGlkPXt7Zm9pZH19OjpvaWQKK09SREVSIGJ5IGNvbm5hbWU7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90 ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuM19wbHVzL2dldF9mb3Jl aWduX3NlcnZlcnMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJs ZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjNfcGx1cy9nZXRf Zm9yZWlnbl9zZXJ2ZXJzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4xYzk1Y2U1Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFi bGVzL3NxbC85LjNfcGx1cy9nZXRfZm9yZWlnbl9zZXJ2ZXJzLnNxbApAQCAt MCwwICsxLDYgQEAKK1NFTEVDVAorICAgIHNydm5hbWUKK0ZST00KKyAgICBw Z19mb3JlaWduX3NlcnZlcgorT1JERVIgQlkKKyAgICBzcnZuYW1lOwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxh dGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjNfcGx1cy9nZXRfb2lkLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3Jl aWduX3RhYmxlcy9zcWwvOS4zX3BsdXMvZ2V0X29pZC5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWE1ZjVkMQotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBs YXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4zX3BsdXMvZ2V0X29pZC5zcWwK QEAgLTAsMCArMSwxOSBAQAoreyUgaWYgYmFzZW5zcCAlfQorU0VMRUNUCisg ICAgYy5vaWQsIGJuLm9pZCBhcyBzY2lkCitGUk9NCisgICAgcGdfY2xhc3Mg YworSk9JTgorICAgIHBnX25hbWVzcGFjZSBibiBPTiBibi5vaWQ9Yy5yZWxu YW1lc3BhY2UKK1dIRVJFCisgICAgYm4ubnNwbmFtZSA9IHt7IGJhc2Vuc3B8 cXRMaXRlcmFsIH19CisgICAgQU5EIGMucmVsbmFtZT17eyBuYW1lfHF0TGl0 ZXJhbCB9fTsKKworeyUgZWxpZiBmb2lkICV9CitTRUxFQ1QKKyAgICBjLnJl bG5hbWVzcGFjZSBhcyBzY2lkCitGUk9NCisgICAgcGdfY2xhc3MgYworV0hF UkUKKyAgICBjLm9pZCA9IHt7Zm9pZH19OjpvaWQ7Cit7JSBlbmRpZiAlfQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVt cGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjNfcGx1cy9nZXRfc2NoZW1h cy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0 ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuM19wbHVzL2dldF9zY2hlbWFzLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YjkyZDM3 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90 YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjNfcGx1cy9n ZXRfc2NoZW1hcy5zcWwKQEAgLTAsMCArMSwyMyBAQAorU0VMRUNUCisgICAg bnNwLm5zcG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UgbnNwCisgTEVG VCBPVVRFUiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMu b2Jqb2lkPW5zcC5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfbmFtZXNwYWNl Jzo6cmVnY2xhc3MpCisgTEVGVCBPVVRFUiBKT0lOCisgICAgcGdfY2F0YWxv Zy5wZ19kZWZhdWx0X2FjbCBkYWNsIE9OIChkYWNsLmRlZmFjbG5hbWVzcGFj ZSA9IG5zcC5vaWQpCitXSEVSRQorICAgIE5PVCAoKG5zcG5hbWUgPSAncGdf Y2F0YWxvZycgQU5EIEVYSVNUUworICAgICAgICAoU0VMRUNUIDEgRlJPTSBw Z19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3BnX2NsYXNzJyBBTkQgcmVsbmFt ZXNwYWNlID0gbnNwLm9pZCBMSU1JVCAxKSkgT1IKKyAgICAobnNwbmFtZSA9 ICdwZ2FnZW50JyBBTkQgRVhJU1RTCisgICAgICAgIChTRUxFQ1QgMSBGUk9N IHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAncGdhX2pvYicgQU5EIHJlbG5h bWVzcGFjZSA9IG5zcC5vaWQgTElNSVQgMSkpIE9SCisgICAgKG5zcG5hbWUg PSAnaW5mb3JtYXRpb25fc2NoZW1hJyBBTkQgRVhJU1RTCisgICAgICAgIChT RUxFQ1QgMSBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAndGFibGVz JyBBTkQgcmVsbmFtZXNwYWNlID0gbnNwLm9pZCBMSU1JVCAxKSkgT1IKKyAg ICAobnNwbmFtZSBMSUtFICdfJScgQU5EIEVYSVNUUworICAgICAgICAoU0VM RUNUIDEgRlJPTSBwZ19wcm9jIFdIRVJFIHByb25hbWU9J3Nsb255dmVyc2lv bicgQU5EIHByb25hbWVzcGFjZSA9IG5zcC5vaWQgTElNSVQgMSkpCisgIClB TkQKKyAgbnNwbmFtZSBOT1QgTElLRSBFJ3BnXFx0ZW1wXFwlJyBBTkQKKyAg bnNwbmFtZSBOT1QgTElLRSBFJ3BnXFx0b2FzdF90ZW1wXFwlJyBBTkQKKyAg LS0gQURERUQ6IEJlY2F1c2UgV2UgbmVlZCB0byBvbWl0IHN5c3RlbSBzY2hl bWEgZXhjZXB0IHRoZSBvbmUgb24gd2hpY2ggd2UgYXJlIHRyeWluZyB0byAg Y3JlYXRlIGNvbGxhdGlvbgorICAoIG5zcC5vaWQgPSB7eyBzY2lkIH19IE9S IG5zcG5hbWUgTk9UIExJS0UgRSdwZ1xcXyUnICkKK09SREVSIEJZIG5zcG5h bWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxl cy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuM19wbHVzL2dldF90 eXBlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1w bGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuM19wbHVzL2dldF90eXBlcy5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWY1N2E4 NQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25f dGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4zX3BsdXMv Z2V0X3R5cGVzLnNxbApAQCAtMCwwICsxLDE1IEBACitTRUxFQ1QKKyAgICAq CitGUk9NCisgICAgKAorICAgICBTRUxFQ1QgZm9ybWF0X3R5cGUodC5vaWQs TlVMTCkgQVMgdHlwbmFtZSwgQ0FTRSBXSEVOIHR5cGVsZW0gPiAwIFRIRU4g dHlwZWxlbSBFTFNFIHQub2lkIEVORCBhcyBlbGVtb2lkLCB0eXBsZW4sIHR5 cHR5cGUsIHQub2lkLCBuc3BuYW1lLAorICAgICAoU0VMRUNUIENPVU5UKDEp IEZST00gcGdfdHlwZSB0MiBXSEVSRSB0Mi50eXBuYW1lID0gdC50eXBuYW1l KSA+IDEgQVMgaXNkdXAKKyAgICBGUk9NCisgICAgICAgIHBnX3R5cGUgdAor ICAgIEpPSU4KKyAgICAgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiB0eXBuYW1l c3BhY2U9bnNwLm9pZAorICAgIFdIRVJFCisgICAgICAgIChOT1QgKHR5cG5h bWUgPSAndW5rbm93bicgQU5EIG5zcG5hbWUgPSAncGdfY2F0YWxvZycpKSBB TkQgdHlwaXNkZWZpbmVkIEFORCB0eXB0eXBlIElOICgnYicsICdjJywgJ2Qn LCAnZScsICdyJylBTkQgTk9UIEVYSVNUUyAoc2VsZWN0IDEgZnJvbSBwZ19j bGFzcyB3aGVyZSByZWxuYW1lc3BhY2U9dHlwbmFtZXNwYWNlIGFuZCByZWxu YW1lID0gdHlwbmFtZSBhbmQgcmVsa2luZCAhPSAnYycpIEFORCAodHlwbmFt ZSBub3QgbGlrZSAnXyUnIE9SIE5PVCBFWElTVFMgKHNlbGVjdCAxIGZyb20g cGdfY2xhc3Mgd2hlcmUgcmVsbmFtZXNwYWNlPXR5cG5hbWVzcGFjZSBhbmQg cmVsbmFtZSA9IHN1YnN0cmluZyh0eXBuYW1lIGZyb20gMik6Om5hbWUgYW5k IHJlbGtpbmQgIT0gJ2MnKSkKKyAgICApIEFTIGR1bW15CitPUkRFUiBCWQor ICAgIG5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cnLCBuc3BuYW1lIDw+ICdwdWJs aWMnLCBuc3BuYW1lLCAxOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv Zm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85 LjNfcGx1cy9ub2RlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFi bGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4zX3BsdXMvbm9k ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQz YTM4YgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVp Z25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4zX3Bs dXMvbm9kZS5zcWwKQEAgLTAsMCArMSwxMiBAQAorU0VMRUNUCisgICAgYy5v aWQsIGMucmVsbmFtZSBBUyBuYW1lLCBwZ19nZXRfdXNlcmJ5aWQocmVsb3du ZXIpIEFTIG93bmVyLAorICAgIGZ0b3B0aW9ucywgbnNwbmFtZSBhcyBiYXNl bnNwCitGUk9NCisgICAgcGdfY2xhc3MgYworSk9JTgorICAgIHBnX2ZvcmVp Z25fdGFibGUgZnQgT04gYy5vaWQ9ZnQuZnRyZWxpZAorTEVGVCBPVVRFUiBK T0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiAobnNwLm9pZD1jLnJlbG5h bWVzcGFjZSkKK1dIRVJFCisgICAgYy5yZWxuYW1lc3BhY2UgPSB7e3NjaWR9 fTo6b2lkCitPUkRFUiBCWSBjLnJlbG5hbWU7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90 YWJsZXMvc3FsLzkuM19wbHVzL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVz L3NxbC85LjNfcGx1cy9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi44ZjZjZWRjCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2Zv cmVpZ25fdGFibGVzL3NxbC85LjNfcGx1cy9wcm9wZXJ0aWVzLnNxbApAQCAt MCwwICsxLDIzIEBACitTRUxFQ1QKKyAgICBjLm9pZCwgYy5yZWxuYW1lIEFT IG5hbWUsIHBnX2dldF91c2VyYnlpZChyZWxvd25lcikgQVMgb3duZXIsCisg ICAgZnRvcHRpb25zLCBzcnZuYW1lIEFTIGZ0c3J2bmFtZSwgZGVzY3JpcHRp b24sIG5zcG5hbWUgYXMgYmFzZW5zcCwgY29uc3JjLAorICAgIChTRUxFQ1Qg YXJyYXlfYWdnKGxhYmVsKSBGUk9NIHBnX3NlY2xhYmVscyBzbDEgV0hFUkUg c2wxLm9iam9pZD1jLm9pZCkgQVMgbGFiZWxzLAorICAgIChTRUxFQ1QgYXJy YXlfYWdnKHByb3ZpZGVyKSBGUk9NIHBnX3NlY2xhYmVscyBzbDIgV0hFUkUg c2wyLm9iam9pZD1jLm9pZCkgQVMgcHJvdmlkZXJzCitGUk9NCisgICAgcGdf Y2xhc3MgYworSk9JTgorICAgIHBnX2ZvcmVpZ25fdGFibGUgZnQgT04gYy5v aWQ9ZnQuZnRyZWxpZAorTEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZm9yZWln bl9zZXJ2ZXIgZnMgT04gZnQuZnRzZXJ2ZXI9ZnMub2lkCitMRUZUIE9VVEVS IEpPSU4KKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9 Yy5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykK K0xFRlQgT1VURVIgSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gKG5z cC5vaWQ9Yy5yZWxuYW1lc3BhY2UpCitMRUZUIE9VVEVSIEpPSU4KKyAgICBw Z19jb25zdHJhaW50IGNuIE9OIChjbi5jb25yZWxpZD1jLm9pZCkKK1dIRVJF CisgICAgYy5yZWxuYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgeyUg aWYgZm9pZCAlfQorICAgIEFORCBjLm9pZCA9IHt7Zm9pZH19OjpvaWQKKyAg ICB7JSBlbmRpZiAlfQorT1JERVIgQlkgYy5yZWxuYW1lOwpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2Zv cmVpZ25fdGFibGVzL3NxbC85LjNfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFi bGVzL3NxbC85LjNfcGx1cy91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjU1N2M0OTUKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9y ZWlnbl90YWJsZXMvc3FsLzkuM19wbHVzL3VwZGF0ZS5zcWwKQEAgLTAsMCAr MSwxMTkgQEAKK3slIGltcG9ydCAnbWFjcm9zL3NjaGVtYXMvc2VjdXJpdHku bWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaWYgZGF0YSAlfQoreyUgc2V0 IG5hbWUgPSBvX2RhdGEubmFtZSAlfQoreyUgaWYgZGF0YS5uYW1lICV9Cit7 JSBpZiBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KK0FMVEVSIEZPUkVJ R04gVEFCTEUge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBvX2Rh dGEubmFtZSkgfX0KK1JFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5u YW1lKSB9fTsKK3slIHNldCBuYW1lID0gZGF0YS5uYW1lICV9Cit7JSBlbmRp ZiAlfQoreyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEub3duZXIgJX0KKwor QUxURVIgRk9SRUlHTiBUQUJMRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLmJh c2Vuc3AsIG5hbWUpIH19CitPV05FUiBUTyB7eyBkYXRhLm93bmVyIH19Owor eyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuY29sdW1ucyAlfQoreyUgZm9y IGMgaW4gZGF0YS5jb2x1bW5zLmRlbGV0ZWQgJX0KKworQUxURVIgRk9SRUlH TiBUQUJMRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLmJhc2Vuc3AsIG5hbWUp IH19CitEUk9QIENPTFVNTiB7e2Nvbm58cXRJZGVudChjLmF0dG5hbWUpfX07 Cit7JSBlbmRmb3IgLSV9CisKK3slIGZvciBjIGluIGRhdGEuY29sdW1ucy5h ZGRlZCAlfQorCitBTFRFUiBGT1JFSUdOIFRBQkxFIHt7IGNvbm58cXRJZGVu dChvX2RhdGEuYmFzZW5zcCwgbmFtZSkgfX0KK0FERCBDT0xVTU4ge3tjb25u fHF0SWRlbnQoYy5hdHRuYW1lKX19IHt7IGNvbm58cXRUeXBlSWRlbnQoYy5k YXRhdHlwZSkgfX17JSBpZiBjLnR5cGxlbiAlfSh7e2MudHlwbGVufX0geyUg aWYgYy5wcmVjaXNpb24gJX0sIHt7Yy5wcmVjaXNpb259fXslIGVuZGlmICV9 KXslIGVuZGlmICV9Cit7JSBpZiBjLmF0dG5vdG51bGwgJX0gTk9UIE5VTEwg eyUgZWxzZSAlfSBOVUxMIHslIGVuZGlmICV9Cit7JSBpZiBjLnR5cGRlZmF1 bHQgJX0gREVGQVVMVCB7e2MudHlwZGVmYXVsdHxxdExpdGVyYWx9fXslIGVu ZGlmICV9Cit7JSBpZiBjLmNvbGxuYW1lICV9IENPTExBVEUge3tjLmNvbGxu YW1lfX17JSBlbmRpZiAlfTsKK3slIGVuZGZvciAtJX0KKworeyUgZm9yIGMg aW4gZGF0YS5jb2x1bW5zLmNoYW5nZWQgJX0KKworQUxURVIgRk9SRUlHTiBU QUJMRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLmJhc2Vuc3AsIG5hbWUpIH19 CitEUk9QIENPTFVNTiB7e2Nvbm58cXRJZGVudChvX2RhdGFbJ2NvbHVtbnMn XVtjLmF0dG51bV1bJ2F0dG5hbWUnXSl9fTsKKworQUxURVIgRk9SRUlHTiBU QUJMRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLmJhc2Vuc3AsIG5hbWUpIH19 CitBREQgQ09MVU1OIHt7Y29ubnxxdElkZW50KGMuYXR0bmFtZSl9fSB7eyBj b25ufHF0VHlwZUlkZW50KGMuZGF0YXR5cGUpIH19eyUgaWYgYy50eXBsZW4g JX0oe3tjLnR5cGxlbn19IHslIGlmIGMucHJlY2lzaW9uICV9LCB7e2MucHJl Y2lzaW9ufX17JSBlbmRpZiAlfSl7JSBlbmRpZiAlfQoreyUgaWYgYy5hdHRu b3RudWxsICV9IE5PVCBOVUxMIHslIGVsc2UgJX0gTlVMTCB7JSBlbmRpZiAl fQoreyUgaWYgYy50eXBkZWZhdWx0ICV9IERFRkFVTFQge3tjLnR5cGRlZmF1 bHR8cXRMaXRlcmFsfX17JSBlbmRpZiAlfQoreyUgaWYgYy5jb2xsbmFtZSAl fSBDT0xMQVRFIHt7Yy5jb2xsbmFtZX19eyUgZW5kaWYgJX07Cit7JSBlbmRm b3IgLSV9CisKK3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLmNvbnN0cmFp bnRzICV9Cit7JSBmb3IgYyBpbiBkYXRhLmNvbnN0cmFpbnRzLmRlbGV0ZWQg JX0KKworQUxURVIgRk9SRUlHTiBUQUJMRSB7eyBjb25ufHF0SWRlbnQob19k YXRhLmJhc2Vuc3AsIG5hbWUpIH19CitEUk9QIENPTlNUUkFJTlQge3tjb25u fHF0SWRlbnQoYy5jb25uYW1lKX19OworeyUgZW5kZm9yICV9CisKK3slIGZv ciBjIGluIGRhdGEuY29uc3RyYWludHMuYWRkZWQgJX0KKworQUxURVIgRk9S RUlHTiBUQUJMRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLmJhc2Vuc3AsIG5h bWUpIH19CitBREQgQ09OU1RSQUlOVCB7e2Nvbm58cXRJZGVudChjLmNvbm5h bWUpfX0geyUgaWYgYy5jb25zcmMgJX0gQ0hFQ0sgKHt7Yy5jb25zcmN9fSl7 JSBlbmRpZiAlfSB7JSBpZiBjLmNvbm5vaW5oZXJpdCAlfSBOTyBJTkhFUklU eyUgZW5kaWYgJX07Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorCit7 JSBpZiBkYXRhLmZ0b3B0aW9ucyAlfQoreyUgZm9yIG8gaW4gZGF0YS5mdG9w dGlvbnMuZGVsZXRlZCAlfQoreyUgaWYgby5vcHRpb24gYW5kIG8udmFsdWUg JX0KKworQUxURVIgRk9SRUlHTiBUQUJMRSB7eyBjb25ufHF0SWRlbnQob19k YXRhLmJhc2Vuc3AsIG5hbWUpIH19CitPUFRJT05TICggRFJPUCB7e28ub3B0 aW9ufX0ge3tvLnZhbHVlfHF0TGl0ZXJhbH19KTsKK3slIGVuZGlmICV9Cit7 JSBlbmRmb3IgJX0KKworeyUgZm9yIG8gaW4gZGF0YS5mdG9wdGlvbnMuYWRk ZWQgJX0KK3slIGlmIG8ub3B0aW9uIGFuZCBvLnZhbHVlICV9CisKK0FMVEVS IEZPUkVJR04gVEFCTEUge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNw LCBuYW1lKSB9fQorT1BUSU9OUyAoQUREIHt7by5vcHRpb259fSB7e28udmFs dWV8cXRMaXRlcmFsfX0pOworeyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQor Cit7JSBmb3IgbyBpbiBkYXRhLmZ0b3B0aW9ucy5jaGFuZ2VkICV9Cit7JSBp ZiBvLm9wdGlvbiBhbmQgby52YWx1ZSAlfQorCitBTFRFUiBGT1JFSUdOIFRB QkxFIHt7IGNvbm58cXRJZGVudChvX2RhdGEuYmFzZW5zcCwgbmFtZSkgfX0K K09QVElPTlMgKFNFVCB7e28ub3B0aW9ufX0ge3tvLnZhbHVlfHF0TGl0ZXJh bH19KTsKK3slIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0l fQorCit7JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KK3sl IGlmICdkZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxl dGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5kZWxl dGVkICV9CisKK3t7IFNFQ0xBQkxFLlVOU0VUKGNvbm4sICdGT1JFSUdOIFRB QkxFJywgbmFtZSwgci5wcm92aWRlciwgb19kYXRhLmJhc2Vuc3ApIH19Cit7 JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2FkZGVkJyBpbiBz ZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5hZGRlZHxsZW5ndGggPiAwICV9Cit7 JSBmb3IgciBpbiBzZWNsYWJlbHMuYWRkZWQgJX0KKwore3sgU0VDTEFCTEUu U0VUKGNvbm4sICdGT1JFSUdOIFRBQkxFJywgbmFtZSwgci5wcm92aWRlciwg ci5sYWJlbCwgb19kYXRhLmJhc2Vuc3ApIH19Cit7JSBlbmRmb3IgJX0KK3sl IGVuZGlmIC0lfQoreyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVscyBhbmQg c2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4g c2VjbGFiZWxzLmNoYW5nZWQgJX0KKwore3sgU0VDTEFCTEUuU0VUKGNvbm4s ICdGT1JFSUdOIFRBQkxFJywgbmFtZSwgci5wcm92aWRlciwgci5sYWJlbCwg b19kYXRhLmJhc2Vuc3ApIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0l fQorCit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9CisKK0NPTU1FTlQgT04g Rk9SRUlHTiBUQUJMRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLmJhc2Vuc3As IG5hbWUpIH19CisgICAgSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVy YWwgfX07Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5iYXNlbnNwICV9 CisKK0FMVEVSIEZPUkVJR04gVEFCTEUge3sgY29ubnxxdElkZW50KG9fZGF0 YS5iYXNlbnNwLCBuYW1lKSB9fQorICAgIFNFVCBTQ0hFTUEge3sgY29ubnxx dElkZW50KGRhdGEuYmFzZW5zcCkgfX07Cit7JSBlbmRpZiAlfQoreyUgZW5k aWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFi bGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS41X3BsdXMvY3Jl YXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBs YXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS41X3BsdXMvY3JlYXRlLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTBiMzkyCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJs ZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjVfcGx1cy9jcmVh dGUuc3FsCkBAIC0wLDAgKzEsNTkgQEAKK3slIGltcG9ydCAnbWFjcm9zL3Nj aGVtYXMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgc2V0 IGlzX2NvbHVtbnMgPSBbXSAlfQoreyUgaWYgZGF0YSAlfQorQ1JFQVRFIEZP UkVJR04gVEFCTEUge3sgY29ubnxxdElkZW50KGRhdGEuYmFzZW5zcCwgZGF0 YS5uYW1lKSB9fQorICAgKHslIGlmIGRhdGEuY29sdW1ucyAlfQoreyUgZm9y IGMgaW4gZGF0YS5jb2x1bW5zICV9Cit7JSBpZiAoYy5pbmhlcml0ZWRmcm9t ID09Jycgb3IgIGMuaW5oZXJpdGVkZnJvbSA9PSBOb25lIG9yICBjLmluaGVy aXRlZGZyb20gPT0gJ05vbmUnICkgJX0KK3slIGlmIGlzX2NvbHVtbnMuYXBw ZW5kKCcxJykgJX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AuZmlyc3Ql fSAgICB7JSBlbmRpZiAlfXt7Y29ubnxxdElkZW50KGMuYXR0bmFtZSl9fSB7 e2Nvbm58cXRUeXBlSWRlbnQoYy5kYXRhdHlwZSkgfX17JSBpZiBjLnR5cGxl biAlfSh7e2MudHlwbGVufX0geyUgaWYgYy5wcmVjaXNpb24gJX0sIHt7Yy5w cmVjaXNpb259fXslIGVuZGlmICV9KXslIGVuZGlmICV9Cit7JSBpZiBjLmF0 dG5vdG51bGwgJX0gTk9UIE5VTEx7JSBlbHNlICV9IE5VTEx7JSBlbmRpZiAl fQoreyUgaWYgYy50eXBkZWZhdWx0ICV9IERFRkFVTFR7e2MudHlwZGVmYXVs dHxxdExpdGVyYWx9fXslIGVuZGlmICV9Cit7JSBpZiBjLmNvbGxuYW1lICV9 IENPTExBVEV7e2MuY29sbG5hbWV9fXslIGVuZGlmICV9Cit7JSBpZiBub3Qg bG9vcC5sYXN0ICV9LAoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7JSBl bmRmb3IgLSV9CisKK3slIGlmIGRhdGEuY29uc3RyYWludHMgJX0KK3slIGZv ciBjIGluIGRhdGEuY29uc3RyYWludHMgJX0KK3slIGlmIGlzX2NvbHVtbnN8 bGVuZ3RoID4gMCBhbmQgbG9vcC5maXJzdCAlfSwKK3slIGVuZGlmICV9Cisg ICAgQ09OU1RSQUlOVCB7e2Nvbm58cXRJZGVudChjLmNvbm5hbWUpfX17JSBp ZiBjLmNvbnNyYyAlfSBDSEVDSyAoe3tjLmNvbnNyY319KXslIGVuZGlmICV9 eyUgaWYgYy5jb25ub2luaGVyaXQgJX0gTk8gSU5IRVJJVHslIGVuZGlmICV9 Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9LAoreyUgZW5kaWYgJX0KK3slIGVu ZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmIC0lfQorKQorCit7JSBp ZiBkYXRhLmluaGVyaXRzICV9CisgICAgSU5IRVJJVFMgKHslIGZvciBpIGlu IGRhdGEuaW5oZXJpdHMgJX17JSBpZiBpICV9e3tpfX17JSBpZiBub3QgbG9v cC5sYXN0ICV9LCB7JSBlbmRpZiAlfXslIGVuZGlmICV9eyUgZW5kZm9yICV9 KQoreyUgZW5kaWYgJX0KKyAgICBTRVJWRVIge3sgY29ubnxxdElkZW50KGRh dGEuZnRzcnZuYW1lKSB9fTsKKworeyUgaWYgZGF0YS5mdG9wdGlvbnMgJX0K K3slIGZvciBvIGluIGRhdGEuZnRvcHRpb25zICV9Cit7JSBpZiBvLm9wdGlv biBhbmQgby52YWx1ZSAlfQoreyUgaWYgbG9vcC5maXJzdCAlfU9QVElPTlMg KCB7JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AuZmlyc3QgJX0sIHslIGVu ZGlmICV9Cit7e28ub3B0aW9ufX0ge3tvLnZhbHVlfHF0TGl0ZXJhbH19IHsl IGlmIGxvb3AubGFzdCAlfSl7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KK3sl IGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuZGVzY3Jp cHRpb24gJX0KKworQ09NTUVOVCBPTiBGT1JFSUdOIFRBQkxFIHt7IGNvbm58 cXRJZGVudChkYXRhLmJhc2Vuc3AsIGRhdGEubmFtZSkgfX0KKyAgICBJUyAn e3sgZGF0YS5kZXNjcmlwdGlvbiB9fSc7Cit7JSBlbmRpZiAtJX0KKworeyUg aWYgZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEuc2VjbGFi ZWxzICV9Cit7JSBpZiByLmxhYmVsIGFuZCByLnByb3ZpZGVyICV9CisKK3t7 IFNFQ0xBQkxFLlNFVChjb25uLCAnRk9SRUlHTiBUQUJMRScsIGRhdGEubmFt ZSwgci5wcm92aWRlciwgci5sYWJlbCwgZGF0YS5iYXNlbnNwKSB9fQoreyUg ZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlm ICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxl cy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuNV9wbHVzL2RlbGV0 ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0 ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuNV9wbHVzL2RlbGV0ZS5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWJiMDk2OQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVz L3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS41X3BsdXMvZGVsZXRl LnNxbApAQCAtMCwwICsxLDE3IEBACit7JSBpZiBzY2lkIGFuZCBmb2lkICV9 CitTRUxFQ1QKKyAgICBjLnJlbG5hbWUgQVMgbmFtZSwgbnNwbmFtZSBhcyBi YXNlbnNwCitGUk9NCisgICAgcGdfY2xhc3MgYworTEVGVCBPVVRFUiBKT0lO CisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiAobnNwLm9pZD1jLnJlbG5hbWVz cGFjZSkKK1dIRVJFCisgICAgYy5yZWxuYW1lc3BhY2UgPSB7e3NjaWR9fTo6 b2lkCitBTkQKKyAgICBjLm9pZCA9IHt7Zm9pZH19OjpvaWQ7Cit7JSBlbmRp ZiAlfQorCisKK3slIGlmIG5hbWUgJX0KK0RST1AgRk9SRUlHTiBUQUJMRSB7 eyBjb25ufHF0SWRlbnQoYmFzZW5zcCwgbmFtZSkgfX17JSBpZiBjYXNjYWRl JX0gQ0FTQ0FERXslIGVuZGlmICV9OworeyUgZW5kaWYgJX0KZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9m b3JlaWduX3RhYmxlcy9zcWwvOS41X3BsdXMvZ2V0X2NvbGxhdGlvbnMuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2Zv cmVpZ25fdGFibGVzL3NxbC85LjVfcGx1cy9nZXRfY29sbGF0aW9ucy5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZThkMjc0Ygot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFi bGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS41X3BsdXMvZ2V0 X2NvbGxhdGlvbnMuc3FsCkBAIC0wLDAgKzEsOSBAQAorU0VMRUNUIC0tbnNw bmFtZSwgY29sbG5hbWUsCisgICAgQ0FTRSBXSEVOIGxlbmd0aChuc3BuYW1l KSA+IDAgQU5EIGxlbmd0aChjb2xsbmFtZSkgPiAwICBUSEVOCisgICAgY29u Y2F0KG5zcG5hbWUsICcuIicsIGNvbGxuYW1lLCciJykKKyAgICBFTFNFICcn IEVORCBBUyBjb3B5X2NvbGxhdGlvbgorRlJPTQorICAgIHBnX2NvbGxhdGlv biBjLCBwZ19uYW1lc3BhY2UgbgorV0hFUkUKKyAgICBjLmNvbGxuYW1lc3Bh Y2U9bi5vaWQKK09SREVSIEJZIG5zcG5hbWUsIGNvbGxuYW1lOwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVz L2ZvcmVpZ25fdGFibGVzL3NxbC85LjVfcGx1cy9nZXRfY29sdW1ucy5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9y ZWlnbl90YWJsZXMvc3FsLzkuNV9wbHVzL2dldF9jb2x1bW5zLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZGE1YTJiCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMv dGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjVfcGx1cy9nZXRfY29s dW1ucy5zcWwKQEAgLTAsMCArMSwzNCBAQAorU0VMRUNUCisgICAgYXR0LmF0 dG5hbWUsIGF0dC5hdHRuZGltcywgYXR0LmF0dHR5cG1vZCwgZm9ybWF0X3R5 cGUodC5vaWQsTlVMTCkgQVMgZGF0YXR5cGUsCisgICAgYXR0LmF0dG5vdG51 bGwsIGF0dC5hdHRudW0sIGZvcm1hdF90eXBlKHQub2lkLCBhdHQuYXR0dHlw bW9kKSBBUyBmdWxsdHlwZSwKKyAgICBDQVNFIFdIRU4gbGVuZ3RoKGNuLm5z cG5hbWUpID4gMCBBTkQgbGVuZ3RoKGNsLmNvbGxuYW1lKSA+IDAgVEhFTgor ICAgIGNvbmNhdChjbi5uc3BuYW1lLCAnLiInLCBjbC5jb2xsbmFtZSwnIicp CisgICAgRUxTRSAnJyBFTkQgQVMgY29sbG5hbWUsCisgICAgKFNFTEVDVCBj b25jYXQobm1zcF9wYXJlbnQubnNwbmFtZSwgJy4nLHBhcmVudC5yZWxuYW1l ICkgYXMgaW5oZXJpdGVkZnJvbQorRlJPTQorICAgIHBnX2F0dHJpYnV0ZSBh dAorSk9JTgorICAgIHBnX2luaGVyaXRzIHBoIE9OIHBoLmluaHBhcmVudCA9 IGF0LmF0dHJlbGlkIEFORCBwaC5pbmhyZWxpZCA9ICB7e2ZvaWR9fTo6b2lk CitKT0lOCisgICAgcGdfY2xhc3MgcGFyZW50IE9OIHBoLmluaHBhcmVudCAg PSBwYXJlbnQub2lkCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5tc3BfcGFy ZW50IE9OIG5tc3BfcGFyZW50Lm9pZCAgPSBwYXJlbnQucmVsbmFtZXNwYWNl CisgICAgV0hFUkUgYXQuYXR0bmFtZSA9IGF0dC5hdHRuYW1lCisgICAgKSwK KyAgICAoU0VMRUNUIENPVU5UKDEpIGZyb20gcGdfdHlwZSB0MiBXSEVSRSB0 Mi50eXBuYW1lPXQudHlwbmFtZSkgPiAxIEFTIGlzZHVwCitGUk9NCisgICAg cGdfYXR0cmlidXRlIGF0dAorSk9JTgorICAgIHBnX3R5cGUgdCBPTiB0Lm9p ZD1hdHR0eXBpZAorSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gdC50 eXBuYW1lc3BhY2U9bnNwLm9pZAorTEVGVCBPVVRFUiBKT0lOCisgICAgcGdf dHlwZSBiIE9OIHQudHlwZWxlbT1iLm9pZAorTEVGVCBPVVRFUiBKT0lOCisg ICAgcGdfY29sbGF0aW9uIGNsIE9OIHQudHlwY29sbGF0aW9uPWNsLm9pZAor TEVGVCBPVVRFUiBKT0lOCisgICAgcGdfbmFtZXNwYWNlIGNuIE9OIGNsLmNv bGxuYW1lc3BhY2U9Y24ub2lkCitXSEVSRQorICAgIGF0dC5hdHRyZWxpZD17 e2ZvaWR9fTo6b2lkCisgICAgQU5EIGF0dC5hdHRudW0+MAorT1JERVIgYnkg YXR0LmF0dG51bTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVp Z25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS41X3Bs dXMvZ2V0X2NvbnN0cmFpbnRzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVp Z25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS41X3Bs dXMvZ2V0X2NvbnN0cmFpbnRzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5mYzkzNTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25f dGFibGVzL3NxbC85LjVfcGx1cy9nZXRfY29uc3RyYWludHMuc3FsCkBAIC0w LDAgKzEsNyBAQAorU0VMRUNUCisgICAgY29ubmFtZSwgY29udHlwZSwgY29u c3JjCitGUk9NCisgICAgcGdfY29uc3RyYWludAorV0hFUkUKKyAgICBjb25y ZWxpZD17e2ZvaWR9fTo6b2lkCitPUkRFUiBieSBjb25uYW1lOwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVz L2ZvcmVpZ25fdGFibGVzL3NxbC85LjVfcGx1cy9nZXRfZm9yZWlnbl9zZXJ2 ZXJzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBs YXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS41X3BsdXMvZ2V0X2ZvcmVpZ25f c2VydmVycy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uOWVjM2MyZgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwv OS41X3BsdXMvZ2V0X2ZvcmVpZ25fc2VydmVycy5zcWwKQEAgLTAsMCArMSw2 IEBACitTRUxFQ1QKKyAgc3J2bmFtZQorRlJPTQorICBwZ19mb3JlaWduX3Nl cnZlcgorT1JERVIKKyAgQlkgc3J2bmFtZQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFi bGVzL3NxbC85LjVfcGx1cy9nZXRfb2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwv OS41X3BsdXMvZ2V0X29pZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uOWE1ZjVkMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3Rh Ymxlcy9zcWwvOS41X3BsdXMvZ2V0X29pZC5zcWwKQEAgLTAsMCArMSwxOSBA QAoreyUgaWYgYmFzZW5zcCAlfQorU0VMRUNUCisgICAgYy5vaWQsIGJuLm9p ZCBhcyBzY2lkCitGUk9NCisgICAgcGdfY2xhc3MgYworSk9JTgorICAgIHBn X25hbWVzcGFjZSBibiBPTiBibi5vaWQ9Yy5yZWxuYW1lc3BhY2UKK1dIRVJF CisgICAgYm4ubnNwbmFtZSA9IHt7IGJhc2Vuc3B8cXRMaXRlcmFsIH19Cisg ICAgQU5EIGMucmVsbmFtZT17eyBuYW1lfHF0TGl0ZXJhbCB9fTsKKworeyUg ZWxpZiBmb2lkICV9CitTRUxFQ1QKKyAgICBjLnJlbG5hbWVzcGFjZSBhcyBz Y2lkCitGUk9NCisgICAgcGdfY2xhc3MgYworV0hFUkUKKyAgICBjLm9pZCA9 IHt7Zm9pZH19OjpvaWQ7Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25f dGFibGVzL3NxbC85LjVfcGx1cy9nZXRfc2NoZW1hcy5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJs ZXMvc3FsLzkuNV9wbHVzL2dldF9zY2hlbWFzLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTM3OTNjCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVz L2ZvcmVpZ25fdGFibGVzL3NxbC85LjVfcGx1cy9nZXRfc2NoZW1hcy5zcWwK QEAgLTAsMCArMSwyNiBAQAorU0VMRUNUCisgICAgbnNwLm5zcG5hbWUKK0ZS T00KKyAgICBwZ19uYW1lc3BhY2UgbnNwCitMRUZUIE9VVEVSIEpPSU4KKyAg ICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9bnNwLm9pZCBB TkQgZGVzLmNsYXNzb2lkPSdwZ19uYW1lc3BhY2UnOjpyZWdjbGFzcykKK0xF RlQgT1VURVIgSk9JTgorICAgIHBnX2NhdGFsb2cucGdfZGVmYXVsdF9hY2wg ZGFjbCBPTiAoZGFjbC5kZWZhY2xuYW1lc3BhY2UgPSBuc3Aub2lkKQorV0hF UkUKKyAgICBOT1QgKAorICAgIChuc3BuYW1lID0gJ3BnX2NhdGFsb2cnIEFO RCBFWElTVFMKKyAgICAoU0VMRUNUIDEgRlJPTSBwZ19jbGFzcyBXSEVSRSBy ZWxuYW1lID0gJ3BnX2NsYXNzJyBBTkQgcmVsbmFtZXNwYWNlID0gbnNwLm9p ZCBMSU1JVCAxKSkgT1IKKyAgICAobnNwbmFtZSA9ICdwZ2FnZW50JyBBTkQg RVhJU1RTCisgICAgKFNFTEVDVCAxIEZST00gcGdfY2xhc3MgV0hFUkUgcmVs bmFtZSA9ICdwZ2Ffam9iJyBBTkQgcmVsbmFtZXNwYWNlID0gbnNwLm9pZCBM SU1JVCAxKSkgT1IKKyAgICAobnNwbmFtZSA9ICdpbmZvcm1hdGlvbl9zY2hl bWEnIEFORCBFWElTVFMKKyAgICAoU0VMRUNUIDEgRlJPTSBwZ19jbGFzcyBX SEVSRSByZWxuYW1lID0gJ3RhYmxlcycgQU5EIHJlbG5hbWVzcGFjZSA9IG5z cC5vaWQgTElNSVQgMSkpIE9SCisgICAgKG5zcG5hbWUgTElLRSAnXyUnIEFO RCBFWElTVFMKKyAgICAgIChTRUxFQ1QgMSBGUk9NIHBnX3Byb2MgV0hFUkUg cHJvbmFtZT0nc2xvbnl2ZXJzaW9uJyBBTkQgcHJvbmFtZXNwYWNlID0gbnNw Lm9pZCBMSU1JVCAxKSkKKyAgICApCisgICAgQU5ECisgICAgbnNwbmFtZSBO T1QgTElLRSBFJ3BnXFx0ZW1wXFwlJyBBTkQKKyAgICBuc3BuYW1lIE5PVCBM SUtFIEUncGdcXHRvYXN0X3RlbXBcXCUnIEFORAorICAgIC0tIEFEREVEOiBC ZWNhdXNlIFdlIG5lZWQgdG8gb21pdCBzeXN0ZW0gc2NoZW1hIGV4Y2VwdCB0 aGUgb25lIG9uIHdoaWNoIHdlIGFyZSB0cnlpbmcgdG8gIGNyZWF0ZSBjb2xs YXRpb24KKyAgICAoIG5zcC5vaWQgPSB7eyBzY2lkIH19IE9SIG5zcG5hbWUg Tk9UIExJS0UgRSdwZ1xcXyUnICkKK09SREVSIEJZCisgICAgbnNwbmFtZTsK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3Rl bXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS41X3BsdXMvZ2V0X3RhYmxl X2NvbHVtbnMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMv dGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjVfcGx1cy9nZXRfdGFi bGVfY29sdW1ucy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZTE4ODJkYgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9z cWwvOS41X3BsdXMvZ2V0X3RhYmxlX2NvbHVtbnMuc3FsCkBAIC0wLDAgKzEs MTQgQEAKK3slIGlmIGF0dHJlbGlkICAlfQorU0VMRUNUCisgICAgYS5hdHRu YW1lLCBmb3JtYXRfdHlwZShhLmF0dHR5cGlkLCBOVUxMKSBBUyBkYXRhdHlw ZSwKKyAgICBxdW90ZV9pZGVudChuLm5zcG5hbWUpfHwnLid8fHF1b3RlX2lk ZW50KGMucmVsbmFtZSkgYXMgaW5oZXJpdGVkZnJvbSwKKyAgICBjLm9pZCBh cyBpbmhlcml0ZWRpZAorRlJPTQorICAgIHBnX2NsYXNzIGMKK0pPSU4KKyAg ICBwZ19uYW1lc3BhY2UgbiBPTiBjLnJlbG5hbWVzcGFjZT1uLm9pZAorSk9J TgorICAgIHBnX2F0dHJpYnV0ZSBhIE9OIGEuYXR0cmVsaWQgPSBjLm9pZCBB TkQgTk9UIGEuYXR0aXNkcm9wcGVkIEFORCBhLmF0dG51bT4wCitXSEVSRQor ICAgIGMub2lkID0ge3thdHRyZWxpZH19OjpPSUQKK3slIGVuZGlmICV9CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1w bGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuNV9wbHVzL2dldF90YWJsZXMu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVz L2ZvcmVpZ25fdGFibGVzL3NxbC85LjVfcGx1cy9nZXRfdGFibGVzLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDg1YTI2Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJs ZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjVfcGx1cy9nZXRf dGFibGVzLnNxbApAQCAtMCwwICsxLDE5IEBACit7JSBpZiBhdHRyZWxpZCAg JX0KK1NFTEVDVAorICAgIGFycmF5X2FnZyhxdW90ZV9pZGVudChuLm5zcG5h bWUpIHx8ICcuJyB8fCBxdW90ZV9pZGVudChjLnJlbG5hbWUpKSBhcyBpbmhl cml0cworRlJPTQorICAgIHBnX2NsYXNzIGMsIHBnX25hbWVzcGFjZSBuCitX SEVSRQorICAgIGMucmVsbmFtZXNwYWNlPW4ub2lkIEFORCBjLnJlbGtpbmQg SU4gKCdyJywgJ2YnKQorICAgIEFORCBjLm9pZCBpbiB7e2F0dHJlbGlkfX07 CisKK3slIGVsc2UgJX0KK1NFTEVDVAorICAgIGMub2lkIEFTIGlkLCBxdW90 ZV9pZGVudChuLm5zcG5hbWUpIHx8ICcuJyB8fCBxdW90ZV9pZGVudChjLnJl bG5hbWUpIGFzIHRleHQKK0ZST00KKyAgICBwZ19jbGFzcyBjLCBwZ19uYW1l c3BhY2UgbgorV0hFUkUKKyAgICBjLnJlbG5hbWVzcGFjZT1uLm9pZCBBTkQg Yy5yZWxraW5kIElOICgncicsICdmJykKK09SREVSIEJZCisgICAgbi5uc3Bu YW1lLCBjLnJlbG5hbWU7Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25f dGFibGVzL3NxbC85LjVfcGx1cy9nZXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVz L3NxbC85LjVfcGx1cy9nZXRfdHlwZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjVmNmM0ZmMKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9y ZWlnbl90YWJsZXMvc3FsLzkuNV9wbHVzL2dldF90eXBlcy5zcWwKQEAgLTAs MCArMSwxNiBAQAorU0VMRUNUCisgICAgKgorRlJPTQorICAgICgKKyAgICAg ICAgU0VMRUNUIGZvcm1hdF90eXBlKHQub2lkLE5VTEwpIEFTIHR5cG5hbWUs IENBU0UgV0hFTiB0eXBlbGVtID4gMCBUSEVOIHR5cGVsZW0gRUxTRSB0Lm9p ZCBFTkQgYXMgZWxlbW9pZCwgdHlwbGVuLCB0eXB0eXBlLCB0Lm9pZCwgbnNw bmFtZSwKKyAgICAgICAgKFNFTEVDVCBDT1VOVCgxKSBGUk9NIHBnX3R5cGUg dDIgV0hFUkUgdDIudHlwbmFtZSA9IHQudHlwbmFtZSkgPiAxIEFTIGlzZHVw CisgICAgICAgICBGUk9NCisgICAgICAgICAgICBwZ190eXBlIHQKKyAgICAg ICAgIEpPSU4KKyAgICAgICAgICAgICAgICBwZ19uYW1lc3BhY2UgbnNwIE9O IHR5cG5hbWVzcGFjZT1uc3Aub2lkCisgICAgICAgICBXSEVSRQorICAgICAg ICAgKE5PVCAodHlwbmFtZSA9ICd1bmtub3duJyBBTkQgbnNwbmFtZSA9ICdw Z19jYXRhbG9nJykpIEFORAorICAgICAgICAgICAgdHlwaXNkZWZpbmVkIEFO RCB0eXB0eXBlIElOICgnYicsICdjJywgJ2QnLCAnZScsICdyJylBTkQgTk9U IEVYSVNUUyAoc2VsZWN0IDEgZnJvbSBwZ19jbGFzcyB3aGVyZSByZWxuYW1l c3BhY2U9dHlwbmFtZXNwYWNlIGFuZCByZWxuYW1lID0gdHlwbmFtZSBhbmQg cmVsa2luZCAhPSAnYycpIEFORCAodHlwbmFtZSBub3QgbGlrZSAnXyUnIE9S IE5PVCBFWElTVFMgKHNlbGVjdCAxIGZyb20gcGdfY2xhc3Mgd2hlcmUgcmVs bmFtZXNwYWNlPXR5cG5hbWVzcGFjZSBhbmQgcmVsbmFtZSA9IHN1YnN0cmlu Zyh0eXBuYW1lIGZyb20gMik6Om5hbWUgYW5kIHJlbGtpbmQgIT0gJ2MnKSkK KyAgICAgKSBBUyBkdW1teQorT1JERVIgQlkKKyAgICBuc3BuYW1lIDw+ICdw Z19jYXRhbG9nJywgbnNwbmFtZSA8PiAncHVibGljJywgbnNwbmFtZSwgMTsK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3Rl bXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS41X3BsdXMvbm9kZS5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9y ZWlnbl90YWJsZXMvc3FsLzkuNV9wbHVzL25vZGUuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkM2EzOGIKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0 ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuNV9wbHVzL25vZGUuc3FsCkBAIC0w LDAgKzEsMTIgQEAKK1NFTEVDVAorICAgIGMub2lkLCBjLnJlbG5hbWUgQVMg bmFtZSwgcGdfZ2V0X3VzZXJieWlkKHJlbG93bmVyKSBBUyBvd25lciwKKyAg ICBmdG9wdGlvbnMsIG5zcG5hbWUgYXMgYmFzZW5zcAorRlJPTQorICAgIHBn X2NsYXNzIGMKK0pPSU4KKyAgICBwZ19mb3JlaWduX3RhYmxlIGZ0IE9OIGMu b2lkPWZ0LmZ0cmVsaWQKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX25hbWVz cGFjZSBuc3AgT04gKG5zcC5vaWQ9Yy5yZWxuYW1lc3BhY2UpCitXSEVSRQor ICAgIGMucmVsbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorT1JERVIgQlkg Yy5yZWxuYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWln bl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjVfcGx1 cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFi bGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS41X3BsdXMvcHJv cGVydGllcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMjJhNjlkNgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwv OS41X3BsdXMvcHJvcGVydGllcy5zcWwKQEAgLTAsMCArMSwyNCBAQAorU0VM RUNUCisgICAgYy5vaWQsIGMucmVsbmFtZSBBUyBuYW1lLCBwZ19nZXRfdXNl cmJ5aWQocmVsb3duZXIpIEFTIG93bmVyLAorICAgIGZ0b3B0aW9ucywgc3J2 bmFtZSBBUyBmdHNydm5hbWUsIGRlc2NyaXB0aW9uLCBuc3BuYW1lIGFzIGJh c2Vuc3AsCisgICAgKFNFTEVDVCBhcnJheV9hZ2cobGFiZWwpIEZST00gcGdf c2VjbGFiZWxzIHNsMSBXSEVSRSBzbDEub2Jqb2lkPWMub2lkKSBBUyBsYWJl bHMsCisgICAgKFNFTEVDVCBhcnJheV9hZ2cocHJvdmlkZXIpIEZST00gcGdf c2VjbGFiZWxzIHNsMiBXSEVSRSBzbDIub2Jqb2lkPWMub2lkKSBBUyBwcm92 aWRlcnMgeyUgaWYgZm9pZCAlfSwKKyAgICAoU0VMRUNUIGFycmF5X2FnZyhp LmluaHBhcmVudCkgRlJPTSBwZ19pbmhlcml0cyBpCitXSEVSRQorICAgIGku aW5ocmVsaWQgPSB7e2ZvaWR9fTo6b2lkIEdST1VQIEJZIGkuaW5ocmVsaWQp IGFzIGluaGVyaXRzIHslIGVuZGlmICV9CitGUk9NCisgICAgcGdfY2xhc3Mg YworSk9JTgorICAgIHBnX2ZvcmVpZ25fdGFibGUgZnQgT04gYy5vaWQ9ZnQu ZnRyZWxpZAorTEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZm9yZWlnbl9zZXJ2 ZXIgZnMgT04gZnQuZnRzZXJ2ZXI9ZnMub2lkCitMRUZUIE9VVEVSIEpPSU4K KyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9Yy5vaWQg QU5EIGRlcy5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykKK0xFRlQg T1VURVIgSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gKG5zcC5vaWQ9 Yy5yZWxuYW1lc3BhY2UpCitXSEVSRQorICAgIGMucmVsbmFtZXNwYWNlID0g e3tzY2lkfX06Om9pZAorICAgIHslIGlmIGZvaWQgJX0KKyAgICBBTkQgYy5v aWQgPSB7e2ZvaWR9fTo6b2lkCisgICAgeyUgZW5kaWYgJX0KK09SREVSIEJZ IGMucmVsbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVp Z25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS41X3Bs dXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVz L3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS41X3BsdXMvdXBkYXRl LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTEz NTE5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWln bl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjVfcGx1 cy91cGRhdGUuc3FsCkBAIC0wLDAgKzEsMTM4IEBACit7JSBpbXBvcnQgJ21h Y3Jvcy9zY2hlbWFzL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0K K3slIGlmIGRhdGEgJX0KK3slIHNldCBuYW1lID0gb19kYXRhLm5hbWUgJX0K K3slIGlmIGRhdGEubmFtZSAlfQoreyUgaWYgZGF0YS5uYW1lICE9IG9fZGF0 YS5uYW1lICV9CitBTFRFUiBGT1JFSUdOIFRBQkxFIHt7IGNvbm58cXRJZGVu dChvX2RhdGEuYmFzZW5zcCwgb19kYXRhLm5hbWUpIH19CitSRU5BTUUgVE8g e3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX07Cit7JSBzZXQgbmFtZSA9 IGRhdGEubmFtZSAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmIC0lfQorCit7 JSBpZiBkYXRhLm93bmVyICV9CisKK0FMVEVSIEZPUkVJR04gVEFCTEUge3sg Y29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSB9fQorT1dORVIg VE8ge3sgZGF0YS5vd25lciB9fTsKK3slIGVuZGlmIC0lfQorCit7JSBpZiBk YXRhLmNvbHVtbnMgJX0KK3slIGZvciBjIGluIGRhdGEuY29sdW1ucy5kZWxl dGVkICV9CisKK0FMVEVSIEZPUkVJR04gVEFCTEUge3sgY29ubnxxdElkZW50 KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSB9fQorRFJPUCBDT0xVTU4ge3tjb25u fHF0SWRlbnQoYy5hdHRuYW1lKX19OworeyUgZW5kZm9yIC0lfQorCit7JSBm b3IgYyBpbiBkYXRhLmNvbHVtbnMuYWRkZWQgJX0KK3slIGlmIChjLmluaGVy aXRlZGZyb20gPT0nJyBvciAgYy5pbmhlcml0ZWRmcm9tID09IE5vbmUgb3Ig IGMuaW5oZXJpdGVkZnJvbSA9PSAnTm9uZScgKSAlfQorCitBTFRFUiBGT1JF SUdOIFRBQkxFIHt7IGNvbm58cXRJZGVudChvX2RhdGEuYmFzZW5zcCwgbmFt ZSkgfX0KK0FERCBDT0xVTU4ge3tjb25ufHF0SWRlbnQoYy5hdHRuYW1lKX19 IHt7IGNvbm58cXRUeXBlSWRlbnQoYy5kYXRhdHlwZSkgfX17JSBpZiBjLnR5 cGxlbiAlfSh7e2MudHlwbGVufX0geyUgaWYgYy5wcmVjaXNpb24gJX0sIHt7 Yy5wcmVjaXNpb259fXslIGVuZGlmICV9KXslIGVuZGlmICV9Cit7JSBpZiBj LmF0dG5vdG51bGwgJX0gTk9UIE5VTEwgeyUgZWxzZSAlfSBOVUxMIHslIGVu ZGlmICV9Cit7JSBpZiBjLnR5cGRlZmF1bHQgJX0gREVGQVVMVCB7e2MudHlw ZGVmYXVsdHxxdExpdGVyYWx9fXslIGVuZGlmICV9Cit7JSBpZiBjLmNvbGxu YW1lICV9IENPTExBVEUge3tjLmNvbGxuYW1lfX17JSBlbmRpZiAlfTsKK3sl IGVuZGlmICV9Cit7JSBlbmRmb3IgLSV9CisKK3slIGZvciBjIGluIGRhdGEu Y29sdW1ucy5jaGFuZ2VkICV9CisKK0FMVEVSIEZPUkVJR04gVEFCTEUge3sg Y29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSB9fQorRFJPUCBD T0xVTU4ge3tjb25ufHF0SWRlbnQob19kYXRhWydjb2x1bW5zJ11bYy5hdHRu dW1dWydhdHRuYW1lJ10pfX07CisKK0FMVEVSIEZPUkVJR04gVEFCTEUge3sg Y29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSB9fQorQUREIENP TFVNTiB7e2Nvbm58cXRJZGVudChjLmF0dG5hbWUpfX0ge3sgY29ubnxxdFR5 cGVJZGVudChjLmRhdGF0eXBlKSB9fXslIGlmIGMudHlwbGVuICV9KHt7Yy50 eXBsZW59fSB7JSBpZiBjLnByZWNpc2lvbiAlfSwge3tjLnByZWNpc2lvbn19 eyUgZW5kaWYgJX0peyUgZW5kaWYgJX0KK3slIGlmIGMuYXR0bm90bnVsbCAl fSBOT1QgTlVMTCB7JSBlbHNlICV9IE5VTEwgeyUgZW5kaWYgJX0KK3slIGlm IGMudHlwZGVmYXVsdCAlfSBERUZBVUxUIHt7Yy50eXBkZWZhdWx0fHF0TGl0 ZXJhbH19eyUgZW5kaWYgJX0KK3slIGlmIGMuY29sbG5hbWUgJX0gQ09MTEFU RSB7e2MuY29sbG5hbWV9fXslIGVuZGlmICV9OworeyUgZW5kZm9yICV9CisK K3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLmluaGVyaXRzIGFuZCBkYXRh LmluaGVyaXRzfGxlbmd0aCA+IDAlfQoreyUgZm9yIGkgaW4gZGF0YS5pbmhl cml0cyAlfXslIGlmIGkgbm90IGluIG9fZGF0YS5pbmhlcml0cyAlfXslIGlm IGkgJX0KKworQUxURVIgRk9SRUlHTiBUQUJMRXt7IGNvbm58cXRJZGVudChv X2RhdGEuYmFzZW5zcCwgbmFtZSkgfX0gSU5IRVJJVCB7e2l9fTt7JSBlbmRp ZiAlfXslIGVuZGlmICV9eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKwor eyUgaWYgb19kYXRhLmluaGVyaXRzIGFuZCAnaW5oZXJpdHMnIGluIGRhdGEg JX0KK3slIGlmIGRhdGEuaW5oZXJpdHMgPT0gTm9uZSBvciBkYXRhLmluaGVy aXRzID09ICdOb25lJyAlfQoreyUgc2V0IGluaGVyaXRzID0gJycgJX0KK3sl IGVsc2UgJX0KK3slIHNldCBpbmhlcml0cyA9IGRhdGEuaW5oZXJpdHMgJX0K K3slIGVuZGlmICV9Cit7JSBmb3IgaSBpbiBvX2RhdGEuaW5oZXJpdHMgJX17 JSBpZiBpIG5vdCBpbiBpbmhlcml0cyAlfXslIGlmIGkgJX0KKworQUxURVIg Rk9SRUlHTiBUQUJMRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLmJhc2Vuc3As IG5hbWUpIH19IE5PIElOSEVSSVQge3tpfX07eyUgZW5kaWYgJX17JSBlbmRp ZiAlfXslIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEu Y29uc3RyYWludHMgJX0KK3slIGZvciBjIGluIGRhdGEuY29uc3RyYWludHMu ZGVsZXRlZCAlfQorCitBTFRFUiBGT1JFSUdOIFRBQkxFIHt7IGNvbm58cXRJ ZGVudChvX2RhdGEuYmFzZW5zcCwgbmFtZSkgfX0KK0RST1AgQ09OU1RSQUlO VCB7e2Nvbm58cXRJZGVudChjLmNvbm5hbWUpfX07Cit7JSBlbmRmb3IgLSV9 CisKK3slIGZvciBjIGluIGRhdGEuY29uc3RyYWludHMuYWRkZWQgJX0KKwor QUxURVIgRk9SRUlHTiBUQUJMRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLmJh c2Vuc3AsIG5hbWUpIH19CitBREQgQ09OU1RSQUlOVCB7e2Nvbm58cXRJZGVu dChjLmNvbm5hbWUpfX0geyUgaWYgYy5jb25zcmMgJX0gQ0hFQ0sgKHt7Yy5j b25zcmN9fSl7JSBlbmRpZiAlfSB7JSBpZiBjLmNvbm5vaW5oZXJpdCAlfSBO TyBJTkhFUklUeyUgZW5kaWYgJX07Cit7JSBlbmRmb3IgJX0KKworeyUgZW5k aWYgLSV9CisKKworeyUgaWYgZGF0YS5mdG9wdGlvbnMgJX0KK3slIGZvciBv IGluIGRhdGEuZnRvcHRpb25zLmRlbGV0ZWQgJX0KK3slIGlmIG8ub3B0aW9u IGFuZCBvLnZhbHVlICV9CisKK0FMVEVSIEZPUkVJR04gVEFCTEUge3sgY29u bnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSB9fQorT1BUSU9OUyAo IERST1Age3tvLm9wdGlvbn19IHt7by52YWx1ZXxxdExpdGVyYWx9fSk7Cit7 JSBlbmRpZiAlfQoreyUgZW5kZm9yIC0lfQorCit7JSBmb3IgbyBpbiBkYXRh LmZ0b3B0aW9ucy5hZGRlZCAlfQoreyUgaWYgby5vcHRpb24gYW5kIG8udmFs dWUgJX0KK0FMVEVSIEZPUkVJR04gVEFCTEUge3sgY29ubnxxdElkZW50KG9f ZGF0YS5iYXNlbnNwLCBuYW1lKSB9fQorT1BUSU9OUyAoQUREIHt7by5vcHRp b259fSB7e28udmFsdWV8cXRMaXRlcmFsfX0pOworeyUgZW5kaWYgJX0KK3sl IGVuZGZvciAlfQorCit7JSBmb3IgbyBpbiBkYXRhLmZ0b3B0aW9ucy5jaGFu Z2VkICV9Cit7JSBpZiBvLm9wdGlvbiBhbmQgby52YWx1ZSAlfQorQUxURVIg Rk9SRUlHTiBUQUJMRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLmJhc2Vuc3As IG5hbWUpIH19CitPUFRJT05TIChTRVQge3tvLm9wdGlvbn19IHt7by52YWx1 ZXxxdExpdGVyYWx9fSk7Cit7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9CisK K3slIGVuZGlmIC0lfQorCit7JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNs YWJlbHMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNl Y2xhYmVscy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNl Y2xhYmVscy5kZWxldGVkICV9Cit7eyBTRUNMQUJMRS5VTlNFVChjb25uLCAn Rk9SRUlHTiBUQUJMRScsIG5hbWUsIHIucHJvdmlkZXIsIG9fZGF0YS5iYXNl bnNwKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2Fk ZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5hZGRlZHxsZW5ndGgg PiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuYWRkZWQgJX0KKwore3sg U0VDTEFCTEUuU0VUKGNvbm4sICdGT1JFSUdOIFRBQkxFJywgbmFtZSwgci5w cm92aWRlciwgci5sYWJlbCwgb19kYXRhLmJhc2Vuc3ApIH19Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFi ZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBm b3IgciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQorCit7eyBTRUNMQUJMRS5T RVQoY29ubiwgJ0ZPUkVJR04gVEFCTEUnLCBuYW1lLCByLnByb3ZpZGVyLCBy LmxhYmVsLCBvX2RhdGEuYmFzZW5zcCkgfX0KK3slIGVuZGZvciAlfQoreyUg ZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKworQ09N TUVOVCBPTiBGT1JFSUdOIFRBQkxFIHt7IGNvbm58cXRJZGVudChvX2RhdGEu YmFzZW5zcCwgbmFtZSkgfX0KK0lTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRM aXRlcmFsIH19OworeyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuYmFzZW5z cCAlfQorCitBTFRFUiBGT1JFSUdOIFRBQkxFIHt7IGNvbm58cXRJZGVudChv X2RhdGEuYmFzZW5zcCwgbmFtZSkgfX0KKyAgICBTRVQgU0NIRU1BIHt7IGNv bm58cXRJZGVudChkYXRhLmJhc2Vuc3ApIH19OworeyUgZW5kaWYgJX0KK3sl IGVuZGlmICV9Cg== --001a11c349d6cd7145052c80adad 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 --001a11c349d6cd7145052c80adad--