Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1aLkho-0001sp-QT for pgadmin-hackers@arkaria.postgresql.org; Wed, 20 Jan 2016 04:49:17 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aLkhn-0004JF-SZ for pgadmin-hackers@arkaria.postgresql.org; Wed, 20 Jan 2016 04:49:15 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1aLkhj-0004If-NU for pgadmin-hackers@postgresql.org; Wed, 20 Jan 2016 04:49:11 +0000 Received: from mail-lb0-x232.google.com ([2a00:1450:4010:c04::232]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1aLkhZ-000118-Tt for pgadmin-hackers@postgresql.org; Wed, 20 Jan 2016 04:49:10 +0000 Received: by mail-lb0-x232.google.com with SMTP id x4so119361676lbm.0 for ; Tue, 19 Jan 2016 20:49:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:date:message-id:subject:from:to:content-type; bh=tXekIp6jAmNoz2hBSa215LMEy3tdVDrlwfK1OLfeI0g=; b=DKESFI3swRBPvFv93akHx/pwUZxdrKtBTDxN4+tAX3Hf/uHd98y/kxo6bcEk3ilhDF n46PqDSpw66h6RDDDfoyIuSpsA9kqLMG9r1o3q/jJDwgGUCMFOg083jfL/hIO1Fy8Oi3 QwrQ3G+AcPyiGTFqLFOxEpltR1csCDYO2GVTn/oMt0g8CT2HvdM9+sxaV6mHP2rX6qqH AKbOISkBHh7VlvZwJ44wqjLLEP9yFkYMz52aucI+AEj8i1GIWrPnm+AroU/KoaGhFAia edBhZb/B2ZsQGahKSzdQO54lyQbGijWog0WcRornH8eH3qPOylZ5bwDQmjh6vDKqPvcD IrXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=tXekIp6jAmNoz2hBSa215LMEy3tdVDrlwfK1OLfeI0g=; b=MQSaG2523T1MNmJAQB1Ms96UnkwO56TA0Hz2V6nR3C5zdZ6mpZyAhujTGR5gl2fFDC 8jBSVc9xNG04cLRh8SRq/pfwled3NRBe4V5CWsFFXwQt6XhOL0M2AjX0q1SaSgSpsSFZ 1i87kq1/w3qCGKwlIP30zf1TbZugcqZbBOo8gqt9UZGtHH5fx62nMrVKyaBnQ3s15plA X/GGfxdyDSOFo2mNBChMvlF8wIuxdlF1COttDbpTAABt/7VyVpSwVDQAnFElcqG/pTkx HvMKFZ8FPf9jGnn3Ke7/8BBzhbhER5STzw+0+ex2ev8bOKJfHL1p+uwrFR1qNrm3w2hA wZ8Q== X-Gm-Message-State: ALoCoQkRBgrIBcs12vnDucCseNR4Pl1I5pUBuFHgcxvtYX6FpdzpX9XzZ6nmJgJQ7bJkXQFc1niVtVPUrFGWCxnebNjFn+Dt2fnzHOO8SCKEnhCHR1tr4Zs= MIME-Version: 1.0 X-Received: by 10.112.170.200 with SMTP id ao8mr9880214lbc.84.1453265340251; Tue, 19 Jan 2016 20:49:00 -0800 (PST) Received: by 10.25.42.138 with HTTP; Tue, 19 Jan 2016 20:48:59 -0800 (PST) Date: Wed, 20 Jan 2016 10:18:59 +0530 Message-ID: Subject: pgAdmin4 PATCH: Domain Module From: Khushboo Vashi To: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a11c3780c5f46640529bcb4ca 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 --001a11c3780c5f46640529bcb4ca Content-Type: multipart/alternative; boundary=001a11c3780c5f46530529bcb4c8 --001a11c3780c5f46530529bcb4c8 Content-Type: text/plain; charset=UTF-8 Hi, Please find attached patch for the Domain 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 --001a11c3780c5f46530529bcb4c8 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

Please find attached = patch for the Domain Module.

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 r= eview it and let me know the feedback.

Thanks,
<= /div>Khushboo
--001a11c3780c5f46530529bcb4c8-- --001a11c3780c5f46640529bcb4ca Content-Type: text/x-patch; charset=US-ASCII; name="domains.patch" Content-Disposition: attachment; filename="domains.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ijmckcbp0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvX19pbml0X18u cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL19faW5pdF9fLnB5Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1MGE2NjUKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL19faW5pdF9f LnB5CkBAIC0wLDAgKzEsNTEwIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisj CisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERl dmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1 bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworaW1wb3J0IGpzb24KK2Zyb20gZmxhc2sgaW1w b3J0IHJlbmRlcl90ZW1wbGF0ZSwgbWFrZV9yZXNwb25zZSwgcmVxdWVzdCwg anNvbmlmeQorZnJvbSBmbGFzay5leHQuYmFiZWwgaW1wb3J0IGdldHRleHQK K2Zyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVz cG9uc2UsIFwKKyAgICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2Us IGludGVybmFsX3NlcnZlcl9lcnJvcgorZnJvbSBwZ2FkbWluLmJyb3dzZXIu dXRpbHMgaW1wb3J0IFBHQ2hpbGROb2RlVmlldworZnJvbSBwZ2FkbWluLmJy b3dzZXIuY29sbGVjdGlvbiBpbXBvcnQgQ29sbGVjdGlvbk5vZGVNb2R1bGUK K2ltcG9ydCBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy5zY2hlbWFzIGFzIHNjaGVtYXMKK2Zyb20gcGdhZG1pbi51 dGlscy5hamF4IGltcG9ydCBwcmVjb25kaXRpb25fcmVxdWlyZWQKK2Zyb20g cGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20g Y29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUgorZnJvbSBmdW5jdG9v bHMgaW1wb3J0IHdyYXBzCisKK2NsYXNzIERvbWFpbk1vZHVsZShDb2xsZWN0 aW9uTm9kZU1vZHVsZSk6CisgICAgTk9ERV9UWVBFID0gJ2RvbWFpbicKKyAg ICBDT0xMRUNUSU9OX0xBQkVMID0gZ2V0dGV4dCgiRG9tYWlucyIpCisKKyAg ICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAg ICAgc2VsZi5taW5fdmVyID0gTm9uZQorICAgICAgICBzZWxmLm1heF92ZXIg PSBOb25lCisgICAgICAgIHN1cGVyKERvbWFpbk1vZHVsZSwgc2VsZikuX19p bml0X18oKmFyZ3MsICoqa3dhcmdzKQorCisgICAgIyBCZWZvcmUgbG9hZGlu ZyB0aGlzIG1vZHVsZSB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHNjaWQg aXMgc2NoZW1hIG9iamVjdAorICAgIGRlZiBCYWNrZW5kU3VwcG9ydGVkKHNl bGYsIG1hbmFnZXIsICoqa3dhcmdzKToKKyAgICAgICAgIiIiCisgICAgICAg IFRoaXMgZnVuY3Rpb24gd2lsbCB2YWxpZGF0ZSBzY2hlbWEgbmFtZSAmIHNj aWQgYWdhaW5zdCBjYXRhbG9ncyB0aGVuIGFsbG93IHVzIHRvCisgICAgICAg IG1ha2UgZGVjaXNpb24gaWYgd2Ugd2FudCB0byBsb2FkIHRoaXMgbW9kdWxl IG9yIG5vdCBmb3IgdGhlIHNjaGVtYQorICAgICAgICAiIiIKKyAgICAgICAg aWYgc3VwZXIoRG9tYWluTW9kdWxlLCBzZWxmKS5CYWNrZW5kU3VwcG9ydGVk KG1hbmFnZXIsICoqa3dhcmdzKToKKyAgICAgICAgICAgIGNvbm4gPSBtYW5h Z2VyLmNvbm5lY3Rpb24oKQorICAgICAgICAgICAgIyBJZiBEQiBpcyBub3Qg Y29ubmVjdGVkIHRoZW4gcmV0dXJuIGVycm9yIHRvIGJyb3dzZXIKKyAgICAg ICAgICAgIGlmIG5vdCBjb25uLmNvbm5lY3RlZCgpOgorICAgICAgICAgICAg ICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVxdWlyZWQoCisgICAgICAgICAg ICAgICAgICAgIGdldHRleHQoCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIkNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0ISIK KyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICkKKyAg ICAgICAgICAgIHZlciA9IG1hbmFnZXIudmVyc2lvbgorICAgICAgICAgICAg c2VydmVyX3R5cGUgPSBtYW5hZ2VyLnNlcnZlcl90eXBlCisgICAgICAgICAg ICAjIHdlIHdpbGwgc2V0IHRlbXBsYXRlIHBhdGggZm9yIHNxbCBzY3JpcHRz CisgICAgICAgICAgICBpZiB2ZXIgPj0gOTAxMDA6CisgICAgICAgICAgICAg ICAgdGVtcGxhdGVfcGF0aCA9ICdkb21haW5zL3NxbC85LjFfcGx1cycKKyAg ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBOb3RlOiBEb21h aW4gaXMgbm90IHN1cHBvcnRlZCBiZWxvdyBwb3N0Z3JlcyB2ZXJzaW9uIDku MQorICAgICAgICAgICAgICAgICMgSGVuY2Ugd2Ugd2lsbCBub3QgbG9hZCB0 aGlzIG1vZHVsZQorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisg ICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3Rl bXBsYXRlX3BhdGgsICdiYWNrZW5kX3N1cHBvcnQuc3FsJ10pLCBzY2lkPWt3 YXJnc1snc2NpZCddKQorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBjb25u LmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgICMgY2hlY2sgaWYg YW55IGVycm9ycworICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y bXNnPXJlcykKKyAgICAgICAgICAgICMgQ2hlY2sgc2NpZCBpcyBjYXRhbG9n IGFuZCBmcm9tICdzeXMnLCAnZGJvJywgJ2luZm9ybWF0aW9uX3NjaGVtYScs CisgICAgICAgICAgICAjIHRoZW4gRmFsc2UgKERvIG5vdCBsb2FkIHRoaXMg bW9kdWxlKSwgb3RoZXdpc2UgVHJ1ZQorICAgICAgICAgICAgaWYgcmVzIGlz IFRydWU6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAg ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAg ICBkZWYgZ2V0X25vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgor ICAgICAgICAiIiIKKyAgICAgICAgR2VuZXJhdGUgdGhlIGNvbGxlY3Rpb24g bm9kZQorICAgICAgICAiIiIKKyAgICAgICAgeWllbGQgc2VsZi5nZW5lcmF0 ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZShzY2lkKQorCisgICAgQHByb3Bl cnR5CisgICAgZGVmIHNjcmlwdF9sb2FkKHNlbGYpOgorICAgICAgICAiIiIK KyAgICAgICAgTG9hZCB0aGUgbW9kdWxlIHNjcmlwdCBmb3IgZGF0YWJhc2Us IHdoZW4gYW55IG9mIHRoZSBkYXRhYmFzZSBub2RlIGlzCisgICAgICAgIGlu aXRpYWxpemVkLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNjaGVt YXMuU2NoZW1hTW9kdWxlLk5PREVfVFlQRQorCisKK2JsdWVwcmludCA9IERv bWFpbk1vZHVsZShfX25hbWVfXykKKworCitjbGFzcyBEb21haW5WaWV3KFBH Q2hpbGROb2RlVmlldyk6CisgICAgbm9kZV90eXBlID0gYmx1ZXByaW50Lm5v ZGVfdHlwZQorCisgICAgcGFyZW50X2lkcyA9IFsKKyAgICAgICAgICAgIHsn dHlwZSc6ICdpbnQnLCAnaWQnOiAnZ2lkJ30sCisgICAgICAgICAgICB7J3R5 cGUnOiAnaW50JywgJ2lkJzogJ3NpZCd9LAorICAgICAgICAgICAgeyd0eXBl JzogJ2ludCcsICdpZCc6ICdkaWQnfSwKKyAgICAgICAgICAgIHsndHlwZSc6 ICdpbnQnLCAnaWQnOiAnc2NpZCd9CisgICAgICAgICAgICBdCisgICAgaWRz ID0gWworICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdkb2lk J30KKyAgICAgICAgICAgIF0KKworICAgIG9wZXJhdGlvbnMgPSBkaWN0KHsK KyAgICAgICAgJ29iaic6IFsKKyAgICAgICAgICAgIHsnZ2V0JzogJ3Byb3Bl cnRpZXMnLCAnZGVsZXRlJzogJ2RlbGV0ZScsICdwdXQnOiAndXBkYXRlJ30s CisgICAgICAgICAgICB7J2dldCc6ICdsaXN0JywgJ3Bvc3QnOiAnY3JlYXRl J30KKyAgICAgICAgXSwKKyAgICAgICAgJ2RlbGV0ZSc6IFt7J2RlbGV0ZSc6 ICdkZWxldGUnfV0sCisgICAgICAgICdjaGlsZHJlbic6IFt7J2dldCc6ICdj aGlsZHJlbid9XSwKKyAgICAgICAgJ25vZGVzJzogW3snZ2V0JzogJ25vZGUn fSwgeydnZXQnOiAnbm9kZXMnfV0sCisgICAgICAgICdzcWwnOiBbeydnZXQn OiAnc3FsJ31dLAorICAgICAgICAnbXNxbCc6IFt7J2dldCc6ICdtc3FsJ30s IHsnZ2V0JzogJ21zcWwnfV0sCisgICAgICAgICdzdGF0cyc6IFt7J2dldCc6 ICdzdGF0aXN0aWNzJ31dLAorICAgICAgICAnZGVwZW5kZW5jeSc6IFt7J2dl dCc6ICdkZXBlbmRlbmNpZXMnfV0sCisgICAgICAgICdkZXBlbmRlbnQnOiBb eydnZXQnOiAnZGVwZW5kZW50cyd9XSwKKyAgICAgICAgJ21vZHVsZS5qcyc6 IFt7fSwge30sIHsnZ2V0JzogJ21vZHVsZV9qcyd9XSwKKyAgICAgICAgJ2dl dF9zY2hlbWFzJzogW3snZ2V0JzogJ2dldF9zY2hlbWFzJ30sIHsnZ2V0Jzog J2dldF9zY2hlbWFzJ31dLAorICAgICAgICAnZ2V0X2NvbGxhdGlvbnMnOiBb eydnZXQnOiAnZ2V0X2NvbGxhdGlvbnMnfSwgeydnZXQnOiAnZ2V0X2NvbGxh dGlvbnMnfV0sCisgICAgICAgICdnZXRfdHlwZXMnOiBbeydnZXQnOiAnZ2V0 X3R5cGVzJ30sIHsnZ2V0JzogJ2dldF90eXBlcyd9XQorICAgIH0pCisKKwor ICAgIGRlZiBtb2R1bGVfanMoc2VsZik6CisgICAgICAgIHJldHVybiBtYWtl X3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZSgK KyAgICAgICAgICAgICAgICAgICAgImRvbWFpbnMvanMvZG9tYWlucy5qcyIs CisgICAgICAgICAgICAgICAgICAgIF89Z2V0dGV4dAorICAgICAgICAgICAg ICAgICAgICApLAorICAgICAgICAgICAgICAgIDIwMCwgeydDb250ZW50LVR5 cGUnOiAnYXBwbGljYXRpb24veC1qYXZhc2NyaXB0J30KKyAgICAgICAgICAg ICAgICApCisKKworICAgIGRlZiBjaGVja19wcmVjb25kaXRpb24oZik6Cisg ICAgICAgICIiIgorICAgICAgICBXb3JrcyBhcyBhIGRlY29yYXRvci4KKyAg ICAgICAgQ2hlY2tzIGRhdGFiYXNlIGNvbm5lY3Rpb24gc3RhdHVzLgorICAg ICAgICBBdHRhY2ggY29ubmVjdGlvbiBvYmplY3QgYW5kIHRlbXBsYXRlIHBh dGguCisgICAgICAgICIiIgorICAgICAgICBAd3JhcHMoZikKKyAgICAgICAg ZGVmIHdyYXAoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgICMgSGVy ZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYga3dhcmdzIHdpbGwgaG9sZCBn aWQsc2lkLGRpZAorICAgICAgICAgICAgc2VsZiA9IGFyZ3NbMF0KKyAgICAg ICAgICAgIGRyaXZlciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklWRVIp CisgICAgICAgICAgICBzZWxmLm1hbmFnZXIgPSBkcml2ZXIuY29ubmVjdGlv bl9tYW5hZ2VyKGt3YXJnc1snc2lkJ10pCisgICAgICAgICAgICAjIEdldCBk YXRhYmFzZSBjb25uZWN0aW9uCisgICAgICAgICAgICBzZWxmLmNvbm4gPSBz ZWxmLm1hbmFnZXIuY29ubmVjdGlvbihkaWQ9a3dhcmdzWydkaWQnXSkKKyAg ICAgICAgICAgIHNlbGYucXRJZGVudCA9IGRyaXZlci5xdElkZW50CisKKyAg ICAgICAgICAgICMgSWYgZGF0YWJhc2UgaXMgbm90IGNvbm5lY3RlZCB0aGVu IHJldHVybiBlcnJvcgorICAgICAgICAgICAgaWYgbm90IHNlbGYuY29ubi5j b25uZWN0ZWQoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0 aW9uX3JlcXVpcmVkKAorICAgICAgICAgICAgICAgICAgICBnZXR0ZXh0KAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb25uZWN0aW9uIHRvIHRo ZSBzZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiCisgICAgICAgICAgICAgICAgICAg ICkKKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgICAgIHZlciA9IHNl bGYubWFuYWdlci52ZXJzaW9uCisgICAgICAgICAgICBzZXJ2ZXJfdHlwZSA9 IHNlbGYubWFuYWdlci5zZXJ2ZXJfdHlwZQorCisgICAgICAgICAgICAjIHdl IHdpbGwgc2V0IHRlbXBsYXRlIHBhdGggZm9yIHNxbCBzY3JpcHRzCisgICAg ICAgICAgICBpZiB2ZXIgPj0gOTAxMDA6CisgICAgICAgICAgICAgICAgc2Vs Zi50ZW1wbGF0ZV9wYXRoID0gJ2RvbWFpbnMvc3FsLzkuMV9wbHVzJworICAg ICAgICAgICAgcmV0dXJuIGYoKmFyZ3MsICoqa3dhcmdzKQorCisgICAgICAg IHJldHVybiB3cmFwCisKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAg ICBkZWYgbGlzdChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAg ICAgIiIiTGlzdCB0aGUgRG9tYWlucy4iIiIKKworICAgICAgICBTUUwgPSBy ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwg J3Byb3BlcnRpZXMuc3FsJ10pLCBzY2lkPXNjaWQpCisgICAgICAgIHN0YXR1 cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisKKyAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICByZXR1cm4g YWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZXNwb25zZT1yZXNb J3Jvd3MnXSwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAg ICAgICAgICAgKQorCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAg ZGVmIG5vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAg ICAiIiJSZXR1cm5zIGFsbCB0aGUgRG9tYWlucy4iIiIKKworICAgICAgICBy ZXMgPSBbXQorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpv aW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLCBz Y2lkPXNjaWQpCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5l eGVjdXRlXzJkYXJyYXkoU1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgor ICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJv cm1zZz1yc2V0KQorCisgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cydd OgorICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAg ICAgc2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAg ICAgICAgICAgICAgICAgICAgICAgcm93WydvaWQnXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgIHJvd1snbmFtZSddLAorICAgICAgICAgICAgICAgICAg ICAgICAgaWNvbj0iaWNvbi1kb21haW4iCisgICAgICAgICAgICAgICAgICAg ICkpCisKKyAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAg ICAgICAgICAgICAgICBkYXRhPXJlcywKKyAgICAgICAgICAgICAgICBzdGF0 dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCisKKyAgICBAY2hlY2tfcHJl Y29uZGl0aW9uCisgICAgZGVmIHByb3BlcnRpZXMoc2VsZiwgZ2lkLCBzaWQs IGRpZCwgc2NpZCwgZG9pZCk6CisgICAgICAgICIiIlJldHVybnMgRG9tYWlu IHByb3BlcnRpZXMuIiIiCisKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBs YXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVz LnNxbCddKSxzY2lkPXNjaWQsIGRvaWQ9ZG9pZCkKKyAgICAgICAgc3RhdHVz LCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAg aWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9z ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgIGRhdGEgPSBy ZXNbJ3Jvd3MnXVswXQorCisgICAgICAgICMgR2V0IERvbWFpbiBDb25zdHJh aW50cworICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4o W3NlbGYudGVtcGxhdGVfcGF0aCwgJ2dldF9jb25zdHJhaW50cy5zcWwnXSks ZG9pZD1kb2lkKQorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5l eGVjdXRlX2RpY3QoU1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1yZXMpCisKKworICAgICAgICBkYXRhWydjb25zdHJhaW50cyddID0gcmVz Wydyb3dzJ10KKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAg ICAgICAgICAgICAgcmVzcG9uc2U9ZGF0YSwKKyAgICAgICAgICAgICAgICBz dGF0dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCisKKyAgICBAY2hlY2tf cHJlY29uZGl0aW9uCisgICAgZGVmIGdldF9zY2hlbWFzKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHNjaWQsIGRvaWQ9Tm9uZSk6CisgICAgICAgICIiIlJldHVy bnMgU2NoZW1hcyBmb3IgcGFydGljdWxhciBkYXRhYmFzZS4iIiIKKworICAg ICAgICByZXMgPSBbeyAnbGFiZWwnOiAnJywgJ3ZhbHVlJzogJycgfV0KKyAg ICAgICAgdHJ5OgorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRl KCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdnZXRfc2NoZW1hcy5z cWwnXSksIHNjaWQ9c2NpZCkKKyAgICAgICAgICAgIHN0YXR1cywgcnNldCA9 IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQorICAgICAgICAgICAg aWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAg Zm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAgICAgICAgcmVz LmFwcGVuZCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICdsYWJl bCc6IHJvd1snbnNwbmFtZSddLCAndmFsdWUnOiByb3dbJ25zcG5hbWUnXSB9 CisgICAgICAgICAgICAgICAgICAgICAgICApCisKKyAgICAgICAgICAgIHJl dHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAg IGRhdGE9cmVzLAorICAgICAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisg ICAgICAgICAgICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0 aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworCisgICAgQGNoZWNrX3ByZWNv bmRpdGlvbgorICAgIGRlZiBnZXRfY29sbGF0aW9ucyhzZWxmLCBnaWQsIHNp ZCwgZGlkLCBzY2lkLCBkb2lkPU5vbmUpOgorICAgICAgICAiIiJSZXR1cm5z IENvbGxhdGlvbnMuIiIiCisKKyAgICAgICAgcmVzID0gW3sgJ2xhYmVsJzog JycsICd2YWx1ZSc6ICcnIH1dCisgICAgICAgIHRyeToKKyAgICAgICAgICAg IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLCAnZ2V0X2NvbGxhdGlvbnMuc3FsJ10pKQorICAgICAgICAgICAg c3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwp CisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQor CisgICAgICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAg ICAgICAgICAgICByZXMuYXBwZW5kKAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsgJ2xhYmVsJzogcm93Wydjb3B5X2NvbGxhdGlvbiddLCAndmFs dWUnOiByb3dbJ2NvcHlfY29sbGF0aW9uJ10gfQorICAgICAgICAgICAgICAg ICAgICAgICAgKQorCisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jl c3BvbnNlKAorICAgICAgICAgICAgICAgICAgICBkYXRhPXJlcywKKyAgICAg ICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICAg ICApCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1z dHIoZSkpCisKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYg Z2V0X3R5cGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRvaWQ9Tm9u ZSk6CisgICAgICAgICIiIlJldHVybnMgVHlwZXMuIiIiCisgICAgICAgICMg VE9ETzogVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgcmVtb3ZlZCBvbmNlIFR5 cGVzIG1vZHVsZSB3aWxsIGJlIGNvbXBsZXRlZC4KKworICAgICAgICByZXMg PSBbeyAnbGFiZWwnOiAnJywgJ3ZhbHVlJzogJycgfV0KKyAgICAgICAgdHJ5 OgorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2lu KFtzZWxmLnRlbXBsYXRlX3BhdGgsICdnZXRfdHlwZXMuc3FsJ10pKQorICAg ICAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRh cnJheShTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9cmVzKQorCisgICAgICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3Mn XToKKyAgICAgICAgICAgICAgICByZXMuYXBwZW5kKAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsgJ2xhYmVsJzogcm93Wyd0eXBuYW1lJ10sICd2 YWx1ZSc6IHJvd1sndHlwbmFtZSddIH0KKyAgICAgICAgICAgICAgICAgICAg ICAgICkKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2Uo CisgICAgICAgICAgICAgICAgICAgIGRhdGE9cmVzLAorICAgICAgICAgICAg ICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgICAgICkKKwor ICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkK KworCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBjcmVhdGUo c2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAgICIiIgorICAg ICAgICBDcmVhdGVzIG5ldyBkb21haW4gb2JqZWN0LgorCisgICAgICAgIEV4 cGVjdGVkIFBhcmFtZXRlcnM6CisgICAgICAgICAgICBuYW1lOiBEb21haW4g TmFtZQorICAgICAgICAgICAgb3duZXI6IE93bmVyIE5hbWUKKyAgICAgICAg ICAgIGJhc2Vuc3A6IFNjaGVtYSBOYW1lCisgICAgICAgICAgICBiYXNldHlw ZTogRG9tYWluIEJhc2UgVHlwZQorCisgICAgICAgIEV4cGVjdGVkIFJlc3Bv bnNlOgorICAgICAgICAgICAgRG9tYWluIG9iamVjdCBpbiBqc29uIGZvcm1h dC4KKyAgICAgICAgIiIiCisKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuZm9y bSBpZiByZXF1ZXN0LmZvcm0gZWxzZSBqc29uLmxvYWRzKHJlcXVlc3QuZGF0 YS5kZWNvZGUoKSkKKyAgICAgICAgcmVxdWlyZWRfYXJncyA9IFsKKyAgICAg ICAgICAgICduYW1lJywKKyAgICAgICAgICAgICdvd25lcicsCisgICAgICAg ICAgICAnYmFzZW5zcCcsCisgICAgICAgICAgICAnYmFzZXR5cGUnCisgICAg ICAgIF0KKworICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6Cisg ICAgICAgICAgICBpZiBhcmcgbm90IGluIGRhdGEgb3IgZGF0YVthcmddID09 ICcnOgorICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9u c2UoCisgICAgICAgICAgICAgICAgICAgIHN0YXR1cz00MTAsCisgICAgICAg ICAgICAgICAgICAgIHN1Y2Nlc3M9MCwKKyAgICAgICAgICAgICAgICAgICAg ZXJyb3Jtc2c9Z2V0dGV4dCgKKyAgICAgICAgICAgICAgICAgICAgICAgICJD b3VsZG4ndCBmaW5kIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgKCVzKS4iICUg YXJnCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAp CisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3Rl bXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdjcmVhdGUu c3FsJ10pLCBkYXRhPWRhdGEsIHF0SWRlbnQ9c2VsZi5xdElkZW50KQorICAg ICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2Fs YXIoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJlcykKKworICAgICAgICAgICAgIyB3ZSBuZWVkIG9pZCB0byB0byBhZGQg b2JqZWN0IGluIHRyZWUgYXQgYnJvd3NlciwgYmVsb3cgc3FsIHdpbGwgZ2l2 ZXMgdGhlIHNhbWUKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0 ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnZ2V0X29pZC5zcWwn XSksIGJhc2Vuc3A9ZGF0YVsnYmFzZW5zcCddLCBuYW1lPWRhdGFbJ25hbWUn XSkKKyAgICAgICAgICAgIHN0YXR1cywgZG9pZCA9IHNlbGYuY29ubi5leGVj dXRlX3NjYWxhcihTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgor ICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9ZG9pZCkKKworICAgICAgICAgICAgcmV0dXJuIGpzb25pZnko CisgICAgICAgICAgICAgICAgbm9kZT1zZWxmLmJsdWVwcmludC5nZW5lcmF0 ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAgICAgICAgIGRvaWQsCisg ICAgICAgICAgICAgICAgICAgIGRhdGFbJ25hbWUnXSwKKyAgICAgICAgICAg ICAgICAgICAgaWNvbj0iaWNvbi1kb21haW4iCisgICAgICAgICAgICAgICAg KQorICAgICAgICAgICAgKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFz IGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPXN0cihlKSkKKworCisgICAgQGNoZWNrX3ByZWNvbmRpdGlv bgorICAgIGRlZiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwg ZG9pZCk6CisgICAgICAgICIiIgorICAgICAgICBEcm9wIHRoZSBEb21haW4u CisgICAgICAgICIiIgorICAgICAgICAjIEJlbG93IHdpbGwgZGVjaWRlIGlm IGl0J3Mgc2ltcGxlIGRyb3Agb3IgZHJvcCB3aXRoIGNhc2NhZGUgY2FsbAor ICAgICAgICBpZiBzZWxmLmNtZCA9PSAnZGVsZXRlJzoKKyAgICAgICAgICAg ICMgVGhpcyBpcyBhIGNhc2NhZGUgb3BlcmF0aW9uCisgICAgICAgICAgICBj YXNjYWRlID0gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY2Fz Y2FkZSA9IEZhbHNlCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3Bh dGgsICdkZWxldGUuc3FsJ10pLCBzY2lkPXNjaWQsIGRvaWQ9ZG9pZCkKKyAg ICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRh cnJheShTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9bmFtZSkKKworICAgICAgICAgICAgbmFtZSwgYmFzZW5zcCA9IHJlc1sn cm93cyddWzBdCisKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0 ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnZGVsZXRlLnNxbCdd KSwgbmFtZT1uYW1lLCBiYXNlbnNwPWJhc2Vuc3AsIGNhc2NhZGU9Y2FzY2Fk ZSkKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1 dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6Cisg ICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25f cmVzcG9uc2UoCisgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAgICAg ICAgICAgICAgIGluZm89Z2V0dGV4dCgiRG9tYWluIGRyb3BwZWQiKSwKKyAg ICAgICAgICAgICAgICBkYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgJ2lk JzogZG9pZCwKKyAgICAgICAgICAgICAgICAgICAgJ3NjaWQnOiBzY2lkLAor ICAgICAgICAgICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAg ICAgICAgICAnZ2lkJzogZ2lkLAorICAgICAgICAgICAgICAgICAgICAnZGlk JzogZGlkCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKQorCisg ICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJl dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQor CisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiB1cGRhdGUoc2Vs ZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZG9pZCk6CisgICAgICAgICIiIgor ICAgICAgICBVcGRhdGUgdGhlIERvbWFpbi4KKyAgICAgICAgIiIiCisgICAg ICAgIGRhdGEgPSByZXF1ZXN0LmZvcm0gaWYgcmVxdWVzdC5mb3JtIGVsc2Ug anNvbi5sb2FkcyhyZXF1ZXN0LmRhdGEuZGVjb2RlKCkpCisKKyAgICAgICAg c3RhdHVzLCBTUUwgPSBzZWxmLmdldFNRTChnaWQsIHNpZCwgZGF0YSwgc2Np ZCwgZG9pZCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9U1FMKQor CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIFNRTCBhbmQgU1FMLnN0 cmlwKCdcbicpIGFuZCBTUUwuc3RyaXAoJyAnKToKKyAgICAgICAgICAgICAg ICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwp CisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1yZXMpCisKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jl c3BvbnNlKAorICAgICAgICAgICAgICAgICAgICBzdWNjZXNzPTEsCisgICAg ICAgICAgICAgICAgICAgIGluZm89IkRvbWFpbiB1cGRhdGVkIiwKKyAgICAg ICAgICAgICAgICAgICAgZGF0YT17CisgICAgICAgICAgICAgICAgICAgICAg ICAnaWQnOiBkb2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NjaWQn OiBzY2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NpZCc6IHNpZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICdnaWQnOiBnaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAnZGlkJzogZGlkCisgICAgICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisg ICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAg ICAgICAgaW5mbz0iTm90aGluZyB0byB1cGRhdGUiLAorICAgICAgICAgICAg ICAgICAgICBkYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgICAgICdpZCc6 IGRvaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2NpZCc6IHNjaWQs CisgICAgICAgICAgICAgICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAg ICAgICAgICAgICAgICAgICAgJ2dpZCc6IGdpZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICdkaWQnOiBkaWQKKyAgICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9u IGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRp b24KKyAgICBkZWYgbXNxbChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBk b2lkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyB0aGUg bW9kaWZpZWQgU1FMLgorCisgICAgICAgIEV4cGVjdGVkIFBhcmFtZXRlcnM6 CisgICAgICAgICAgICBuYW1lOiBEb21haW4gTmFtZQorICAgICAgICAgICAg b3duZXI6IE93bmVyIE5hbWUKKyAgICAgICAgICAgIGJhc2Vuc3A6IFNjaGVt YSBOYW1lCisgICAgICAgICAgICBiYXNldHlwZTogRG9tYWluIEJhc2UgVHlw ZQorCisgICAgICAgIEV4cGVjdGVkIFJlc3BvbnNlOgorICAgICAgICAgICAg U1FMIHN0YXRlbWVudHMgdG8gY3JlYXRlL3VwZGF0ZSB0aGUgRG9tYWluLgor ICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuYXJncworICAg ICAgICBpZiBkb2lkIGlzIE5vbmU6CisgICAgICAgICAgICByZXF1aXJlZF9h cmdzID0gWworICAgICAgICAgICAgICAgICduYW1lJywKKyAgICAgICAgICAg ICAgICAnb3duZXInLAorICAgICAgICAgICAgICAgICdiYXNlbnNwJywKKyAg ICAgICAgICAgICAgICAnYmFzZXR5cGUnCisgICAgICAgICAgICBdCisKKwor ICAgICAgICAgICAgZm9yIGFyZyBpbiByZXF1aXJlZF9hcmdzOgorICAgICAg ICAgICAgICAgIGlmIGFyZyBub3QgaW4gZGF0YToKKyAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAg ICAgICAgICAgICAgIHN0YXR1cz00MTAsCisgICAgICAgICAgICAgICAgICAg ICAgICBzdWNjZXNzPTAsCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJv cm1zZz1nZXR0ZXh0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJD b3VsZG4ndCBmaW5kIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgKCVzKS4iICUg YXJnCisgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAg ICAgICAgICkKKyAgICAgICAgU1FMID0gc2VsZi5nZXRTUUwoZ2lkLCBzaWQs IGRhdGEsIHNjaWQsIGRvaWQpCisgICAgICAgIGlmIGlzaW5zdGFuY2UoU1FM LCBzdHIpIGFuZCBTUUwgYW5kIFNRTC5zdHJpcCgnXG4nKSBhbmQgU1FMLnN0 cmlwKCcgJyk6CisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3Bv bnNlKAorICAgICAgICAgICAgICAgICAgICBkYXRhPVNRTCwKKyAgICAgICAg ICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICAgICAp CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gU1FMCisKKwor ICAgIGRlZiBnZXRTUUwoc2VsZiwgZ2lkLCBzaWQsIGRhdGEsIHNjaWQsIGRv aWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBHZW5yYXRlcyB0aGUg U1FMIHN0YXRlbWVudHMgdG8gY3JlYXRlL3VwZGF0ZSB0aGUgRG9tYWluLgor ICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgZG9p ZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBTUUwgPSByZW5kZXJf dGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3Bl cnRpZXMuc3FsJ10pLCBzY2lkPXNjaWQsIGRvaWQ9ZG9pZCkKKyAgICAgICAg ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qo U1FMKQorCisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlLCBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICAgICAgb2xkX2Rh dGEgPSByZXNbJ3Jvd3MnXVswXQorICAgICAgICAgICAgICAgIFNRTCA9IHJl bmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgIi8iLmpvaW4o W3NlbGYudGVtcGxhdGVfcGF0aCwndXBkYXRlLnNxbCddKSwKKyAgICAgICAg ICAgICAgICAgICAgZGF0YT1kYXRhLCBvX2RhdGE9b2xkX2RhdGEsIGNvbm49 c2VsZi5jb25uLCBxdElkZW50PXNlbGYucXRJZGVudAorICAgICAgICAgICAg ICAgICAgICApCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLCAnY3JlYXRlLnNxbCddKSwgZGF0YT1kYXRhLCBjb25uPXNlbGYu Y29ubiwgcXRJZGVudD1zZWxmLnF0SWRlbnQpCisgICAgICAgICAgICByZXR1 cm4gVHJ1ZSxTUUwKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6 CisgICAgICAgICAgICByZXR1cm4gRmFsc2UsIGUKKworRG9tYWluVmlldy5y ZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50KQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZG9tYWlucy9kb21haW4tY29uc3RyYWludHMvX19pbml0 X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFpbi1jb25zdHJh aW50cy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi43ZjA1NzViCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZG9tYWlucy9kb21haW4tY29uc3RyYWludHMvX19pbml0X18ucHkK QEAgLTAsMCArMSwzOTAgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMg Q29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxv cG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVy IHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCitpbXBvcnQganNvbgorZnJvbSBmbGFzayBpbXBvcnQg cmVuZGVyX3RlbXBsYXRlLCBtYWtlX3Jlc3BvbnNlLCByZXF1ZXN0LCBqc29u aWZ5Citmcm9tIGZsYXNrLmV4dC5iYWJlbCBpbXBvcnQgZ2V0dGV4dAorZnJv bSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25z ZSwgXAorICAgIG1ha2VfcmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZSwgaW50 ZXJuYWxfc2VydmVyX2Vycm9yCitmcm9tIHBnYWRtaW4uYnJvd3Nlci51dGls cyBpbXBvcnQgTm9kZVZpZXcKK2Zyb20gcGdhZG1pbi5icm93c2VyLmNvbGxl Y3Rpb24gaW1wb3J0IENvbGxlY3Rpb25Ob2RlTW9kdWxlCitpbXBvcnQgcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu c2NoZW1hcy5kb21haW5zIGFzIGRvbWFpbnMKK2Zyb20gcGdhZG1pbi51dGls cy5hamF4IGltcG9ydCBwcmVjb25kaXRpb25fcmVxdWlyZWQKK2Zyb20gcGdh ZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20gY29u ZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUgorZnJvbSBmdW5jdG9vbHMg aW1wb3J0IHdyYXBzCisKK2NsYXNzIERvbWFpbkNvbnN0cmFpbnRNb2R1bGUo Q29sbGVjdGlvbk5vZGVNb2R1bGUpOgorICAgIE5PREVfVFlQRSA9ICdkb21h aW4tY29uc3RyYWludHMnCisgICAgQ09MTEVDVElPTl9MQUJFTCA9IGdldHRl eHQoIkRvbWFpbiBDb25zdHJhaW50cyIpCisKKyAgICBkZWYgX19pbml0X18o c2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5taW5fdmVy ID0gTm9uZQorICAgICAgICBzZWxmLm1heF92ZXIgPSBOb25lCisgICAgICAg IHN1cGVyKERvbWFpbkNvbnN0cmFpbnRNb2R1bGUsIHNlbGYpLl9faW5pdF9f KCphcmdzLCAqKmt3YXJncykKKworICAgIGRlZiBnZXRfbm9kZXMoc2VsZiwg Z2lkLCBzaWQsIGRpZCwgc2NpZCwgZG9pZCk6CisgICAgICAgICIiIgorICAg ICAgICBHZW5lcmF0ZSB0aGUgY29sbGVjdGlvbiBub2RlCisgICAgICAgICIi IgorICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVj dGlvbl9ub2RlKGRvaWQpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbm9k ZV9pbm9kZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIE92ZXJyaWRl IHRoaXMgcHJvcGVydHkgdG8gbWFrZSB0aGUgbm9kZSBhcyBsZWFmIG5vZGUu CisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gRmFsc2UKKworCisgICAg QHByb3BlcnR5CisgICAgZGVmIHNjcmlwdF9sb2FkKHNlbGYpOgorICAgICAg ICAiIiIKKyAgICAgICAgTG9hZCB0aGUgbW9kdWxlIHNjcmlwdCBmb3IgZGF0 YWJhc2UsIHdoZW4gYW55IG9mIHRoZSBkYXRhYmFzZSBub2RlIGlzCisgICAg ICAgIGluaXRpYWxpemVkLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJu IGRvbWFpbnMuRG9tYWluTW9kdWxlLk5PREVfVFlQRQorCisKK2JsdWVwcmlu dCA9IERvbWFpbkNvbnN0cmFpbnRNb2R1bGUoX19uYW1lX18pCisKKworY2xh c3MgRG9tYWluQ29uc3RyYWludFZpZXcoTm9kZVZpZXcpOgorICAgIG5vZGVf dHlwZSA9IGJsdWVwcmludC5ub2RlX3R5cGUKKworICAgIHBhcmVudF9pZHMg PSBbCisgICAgICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ2dpZCd9 LAorICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdzaWQnfSwK KyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZGlkJ30sCisg ICAgICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3NjaWQnfSwKKyAg ICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZG9pZCd9CisgICAg ICAgICAgICBdCisgICAgaWRzID0gWworICAgICAgICAgICAgeyd0eXBlJzog J2ludCcsICdpZCc6ICdjb2lkJ30KKyAgICAgICAgICAgIF0KKworICAgIG9w ZXJhdGlvbnMgPSBkaWN0KHsKKyAgICAgICAgJ29iaic6IFsKKyAgICAgICAg ICAgIHsnZ2V0JzogJ3Byb3BlcnRpZXMnLCAnZGVsZXRlJzogJ2RlbGV0ZScs ICdwdXQnOiAndXBkYXRlJ30sCisgICAgICAgICAgICB7J2dldCc6ICdsaXN0 JywgJ3Bvc3QnOiAnY3JlYXRlJ30KKyAgICAgICAgXSwKKyAgICAgICAgJ2Rl bGV0ZSc6IFt7J2RlbGV0ZSc6ICdkZWxldGUnfV0sCisgICAgICAgICdjaGls ZHJlbic6IFt7J2dldCc6ICdjaGlsZHJlbid9XSwKKyAgICAgICAgJ25vZGVz JzogW3snZ2V0JzogJ25vZGUnfSwgeydnZXQnOiAnbm9kZXMnfV0sCisgICAg ICAgICdzcWwnOiBbeydnZXQnOiAnc3FsJ31dLAorICAgICAgICAnbXNxbCc6 IFt7J2dldCc6ICdtc3FsJ30sIHsnZ2V0JzogJ21zcWwnfV0sCisgICAgICAg ICdzdGF0cyc6IFt7J2dldCc6ICdzdGF0aXN0aWNzJ31dLAorICAgICAgICAn ZGVwZW5kZW5jeSc6IFt7J2dldCc6ICdkZXBlbmRlbmNpZXMnfV0sCisgICAg ICAgICdkZXBlbmRlbnQnOiBbeydnZXQnOiAnZGVwZW5kZW50cyd9XSwKKyAg ICAgICAgJ21vZHVsZS5qcyc6IFt7fSwge30sIHsnZ2V0JzogJ21vZHVsZV9q cyd9XQorICAgIH0pCisKKyAgICBkZWYgbW9kdWxlX2pzKHNlbGYpOgorICAg ICAgICAiIiIKKyAgICAgICAgVGhpcyBwcm9wZXJ0eSBkZWZpbmVzIChpZiBq YXZhc2NyaXB0KSBleGlzdHMgZm9yIHRoaXMgbm9kZS4KKyAgICAgICAgT3Zl cnJpZGUgdGhpcyBwcm9wZXJ0eSBmb3IgeW91ciBvd24gbG9naWMuCisgICAg ICAgICIiIgorICAgICAgICByZXR1cm4gbWFrZV9yZXNwb25zZSgKKyAgICAg ICAgICAgICAgICByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAg ICAgICJkb21haW4tY29uc3RyYWludHMvanMvZG9tYWluLWNvbnN0cmFpbnRz LmpzIiwKKyAgICAgICAgICAgICAgICAgICAgXz1nZXR0ZXh0CisgICAgICAg ICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgMjAwLCB7J0NvbnRl bnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQnfQorICAgICAg ICAgICAgICAgICkKKworICAgIGRlZiBjaGVja19wcmVjb25kaXRpb24oZik6 CisgICAgICAgICIiIgorICAgICAgICBXb3JrcyBhcyBhIGRlY29yYXRvci4K KyAgICAgICAgQ2hlY2tzIGRhdGFiYXNlIGNvbm5lY3Rpb24gc3RhdHVzLgor ICAgICAgICBBdHRhY2ggY29ubmVjdGlvbiBvYmplY3QgYW5kIHRlbXBsYXRl IHBhdGguCisgICAgICAgICIiIgorICAgICAgICBAd3JhcHMoZikKKyAgICAg ICAgZGVmIHdyYXAoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgICMg SGVyZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYga3dhcmdzIHdpbGwgaG9s ZCBnaWQsc2lkLGRpZAorICAgICAgICAgICAgc2VsZiA9IGFyZ3NbMF0KKyAg ICAgICAgICAgIGRyaXZlciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklW RVIpCisgICAgICAgICAgICBzZWxmLm1hbmFnZXIgPSBkcml2ZXIuY29ubmVj dGlvbl9tYW5hZ2VyKGt3YXJnc1snc2lkJ10pCisgICAgICAgICAgICBzZWxm LmNvbm4gPSBzZWxmLm1hbmFnZXIuY29ubmVjdGlvbihkaWQ9a3dhcmdzWydk aWQnXSkKKyAgICAgICAgICAgIHNlbGYucXRJZGVudCA9IGRyaXZlci5xdElk ZW50CisKKyAgICAgICAgICAgICMgSWYgREIgbm90IGNvbm5lY3RlZCB0aGVu IHJldHVybiBlcnJvciB0byBicm93c2VyCisgICAgICAgICAgICBpZiBub3Qg c2VsZi5jb25uLmNvbm5lY3RlZCgpOgorICAgICAgICAgICAgICAgIHJldHVy biBwcmVjb25kaXRpb25fcmVxdWlyZWQoCisgICAgICAgICAgICAgICAgICAg IGdldHRleHQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbm5l Y3Rpb24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0ISIKKyAgICAgICAg ICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICkKKworICAgICAgICAg ICAgdmVyID0gc2VsZi5tYW5hZ2VyLnZlcnNpb24KKyAgICAgICAgICAgIHNl cnZlcl90eXBlID0gc2VsZi5tYW5hZ2VyLnNlcnZlcl90eXBlCisKKyAgICAg ICAgICAgICMgd2Ugd2lsbCBzZXQgdGVtcGxhdGUgcGF0aCBmb3Igc3FsIHNj cmlwdHMKKyAgICAgICAgICAgIGlmIHZlciA+PSA5MDEwMDoKKyAgICAgICAg ICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGggPSAnZG9tYWluLWNvbnN0cmFp bnRzL3NxbC85LjFfcGx1cycKKyAgICAgICAgICAgIHJldHVybiBmKCphcmdz LCAqKmt3YXJncykKKworICAgICAgICByZXR1cm4gd3JhcAorCisKKyAgICBA Y2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGxpc3Qoc2VsZiwgZ2lkLCBz aWQsIGRpZCwgc2NpZCwgZG9pZCk6CisgICAgICAgICIiIgorICAgICAgICBM aXN0IHRoZSBEb21haW4gQ29uc3RyYWludHMuCisgICAgICAgICIiIgorICAg ICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVt cGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLCBkb2lkPWRvaWQpCisg ICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChT UUwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJl dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAg ICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBy ZXNwb25zZT1yZXNbJ3Jvd3MnXSwKKyAgICAgICAgICAgICAgICBzdGF0dXM9 MjAwCisgICAgICAgICAgICAgICAgKQorCisKKyAgICBAY2hlY2tfcHJlY29u ZGl0aW9uCisgICAgZGVmIG5vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNj aWQsIGRvaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBhbGwg dGhlIERvbWFpbiBDb25zdHJhaW50cy4KKyAgICAgICAgIiIiCisgICAgICAg IHJlcyA9IFtdCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIu am9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGllcy5zcWwnXSks IGRvaWQ9ZG9pZCkKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25u LmV4ZWN1dGVfMmRhcnJheShTUUwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1 czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9cnNldCkKKworICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jv d3MnXToKKyAgICAgICAgICAgIHJlcy5hcHBlbmQoCisgICAgICAgICAgICAg ICAgICAgIHNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgK KyAgICAgICAgICAgICAgICAgICAgICAgIHJvd1snb2lkJ10sCisgICAgICAg ICAgICAgICAgICAgICAgICByb3dbJ2Nvbm5hbWUnXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgIGljb249Imljb24tZG9tYWluLWNvbnN0cmFpbnRzIgor ICAgICAgICAgICAgICAgICAgICApKQorCisgICAgICAgIHJldHVybiBtYWtl X2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgZGF0YT1yZXMsCisg ICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkK KworCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBwcm9wZXJ0 aWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRvaWQsIGNvaWQpOgor ICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyB0aGUgRG9tYWluIENvbnN0 cmFpbnRzIHByb3BlcnR5LgorICAgICAgICAiIiIKKworICAgICAgICBTUUwg PSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0 aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLGRvaWQ9ZG9pZCwgY29pZD1jb2lkKQor ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qo U1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAg ICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICAgICAg cmVzcG9uc2U9cmVzWydyb3dzJ11bMF0sCisgICAgICAgICAgICAgICAgc3Rh dHVzPTIwMAorICAgICAgICAgICAgICAgICkKKworCisgICAgQGNoZWNrX3By ZWNvbmRpdGlvbgorICAgIGRlZiBjcmVhdGUoc2VsZiwgZ2lkLCBzaWQsIGRp ZCwgc2NpZCwgZG9pZCk6CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGVz IG5ldyB0aGUgRG9tYWluIENvbnN0cmFpbnRzLgorCisgICAgICAgIEV4cGVj dGVkIFBhcmFtZXRlcnM6CisgICAgICAgICAgICBjb25uYW1lOiBDb25zdHJh aW50cyBOYW1lCisgICAgICAgICAgICBjb25zcmM6IENvbnN0cmFpbnRzIENo ZWNrCisKKyAgICAgICAgRXhwZWN0ZWQgUmVzcG9uc2U6CisgICAgICAgICAg ICBEb21haW4gQ29uc3RyYWludCBvYmplY3QgaW4ganNvbiBmb3JtYXQuCisg ICAgICAgICIiIgorCisgICAgICAgIGRhdGEgPSByZXF1ZXN0LmZvcm0gaWYg cmVxdWVzdC5mb3JtIGVsc2UganNvbi5sb2FkcyhyZXF1ZXN0LmRhdGEuZGVj b2RlKCkpCisgICAgICAgIHJlcXVpcmVkX2FyZ3MgPSBbCisgICAgICAgICAg ICAnY29ubmFtZScsCisgICAgICAgICAgICAnY29uc3JjJworICAgICAgICBd CisKKyAgICAgICAgZm9yIGFyZyBpbiByZXF1aXJlZF9hcmdzOgorICAgICAg ICAgICAgaWYgYXJnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgIHJl dHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAg IHN0YXR1cz00MTAsCisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MCwK KyAgICAgICAgICAgICAgICAgICAgZXJyb3Jtc2c9Z2V0dGV4dCgKKyAgICAg ICAgICAgICAgICAgICAgICAgICJDb3VsZG4ndCBmaW5kIHRoZSByZXF1aXJl ZCBwYXJhbWV0ZXIgKCVzKS4iICUgYXJnCisgICAgICAgICAgICAgICAgICAg ICkKKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgdHJ5OgorICAgICAg ICAgICAgIyBHZXQgU2NoZW1hIGFuZCBEb21haW4uCisgICAgICAgICAgICBT UUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVf cGF0aCwgJ2dldF9kb21haW4uc3FsJ10pLCBkb2lkPWRvaWQpCisgICAgICAg ICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXko U1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPW5h bWUpCisKKyAgICAgICAgICAgIGRvbWFpbiwgc2NoZW1hID0gcmVzWydyb3dz J11bMF0KKworICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIv Ii5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdjcmVhdGUuc3FsJ10pLCBk YXRhPWRhdGEsIGRvbWFpbj1kb21haW4sIHNjaGVtYT1zY2hlbWEsIHF0SWRl bnQ9c2VsZi5xdElkZW50KQorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBz ZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAgICAgICAgaWYg bm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgIyBH ZXQgdGhlIHJlY2VudGx5IGFkZGVkIGNvbnN0cmFpbnRzIG9pZAorICAgICAg ICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRl bXBsYXRlX3BhdGgsICdnZXRfb2lkLnNxbCddKSwgZG9pZD1kb2lkLCBuYW1l PWRhdGFbJ2Nvbm5hbWUnXSkKKyAgICAgICAgICAgIHN0YXR1cywgY29pZCA9 IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwpCisgICAgICAgICAgICBp ZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9ZG9pZCkKKworICAgICAgICAgICAg cmV0dXJuIGpzb25pZnkoCisgICAgICAgICAgICAgICAgbm9kZT1zZWxmLmJs dWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAg ICAgICAgIGNvaWQsCisgICAgICAgICAgICAgICAgICAgIGRhdGFbJ2Nvbm5h bWUnXSwKKyAgICAgICAgICAgICAgICAgICAgaWNvbj0iaWNvbi1kb21haW4i CisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICBl eGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworCisgICAg QGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBkZWxldGUoc2VsZiwgZ2lk LCBzaWQsIGRpZCwgc2NpZCwgZG9pZCwgY29pZCk6CisgICAgICAgICIiIgor ICAgICAgICBEcm9wIHRoZSBEb21hbiBDb25zdHJhaW50cy4KKyAgICAgICAg IiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90 ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVy dGllcy5zcWwnXSksIGRvaWQ9ZG9pZCwgY29pZD1jb2lkKQorICAgICAgICAg ICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkK KworICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykK KyAgICAgICAgICAgIGRhdGEgPSByZXNbJ3Jvd3MnXVswXQorCisgICAgICAg ICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVt cGxhdGVfcGF0aCwgJ2RlbGV0ZS5zcWwnXSksIGRhdGE9ZGF0YSkKKyAgICAg ICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFy KFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1y ZXMpCisKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2Uo CisgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAg IGluZm89Z2V0dGV4dCgiRG9tYWluIGRyb3BwZWQiKSwKKyAgICAgICAgICAg ICAgICBkYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgJ2lkJzogZG9pZCwK KyAgICAgICAgICAgICAgICAgICAgJ3NjaWQnOiBzY2lkLAorICAgICAgICAg ICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAgICAgICAgICAn Z2lkJzogZ2lkLAorICAgICAgICAgICAgICAgICAgICAnZGlkJzogZGlkCisg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKQorCisgICAgICAgIGV4 Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisKKyAgICBA Y2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHVwZGF0ZShzZWxmLCBnaWQs IHNpZCwgZGlkLCBzY2lkLCBkb2lkLCBjb2lkKToKKyAgICAgICAgIiIiCisg ICAgICAgIFVwZGF0ZSB0aGUgRG9tYWluIENvbnN0cmFpbnRzLgorICAgICAg ICAiIiIKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0 LmZvcm0gZWxzZSBqc29uLmxvYWRzKHJlcXVlc3QuZGF0YS5kZWNvZGUoKSkK KworICAgICAgICBTUUwgPSBzZWxmLmdldFNRTChnaWQsIHNpZCwgZGF0YSwg c2NpZCwgZG9pZCwgY29pZCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg aWYgU1FMIGFuZCBTUUwuc3RyaXAoJ1xuJykgYW5kIFNRTC5zdHJpcCgnICcp OgorICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4 ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3Rh dHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgICAgIHJl dHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAg IHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICAgICAgaW5mbz0iRG9tYWlu IHVwZGF0ZWQiLAorICAgICAgICAgICAgICAgICAgICBkYXRhPXsKKyAgICAg ICAgICAgICAgICAgICAgICAgICdpZCc6IGRvaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAnc2NpZCc6IHNjaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2dp ZCc6IGdpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdkaWQnOiBkaWQK KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICkKKyAg ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2Vf anNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0x LAorICAgICAgICAgICAgICAgICAgICBpbmZvPSJOb3RoaW5nIHRvIHVwZGF0 ZSIsCisgICAgICAgICAgICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAg ICAgICAgICAgICAgJ2lkJzogZG9pZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICdzY2lkJzogc2NpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdz aWQnOiBzaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnZ2lkJzogZ2lk LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RpZCc6IGRpZAorICAgICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKQorCisgICAgICAg IGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisKKyAg ICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIG1zcWwoc2VsZiwgZ2lk LCBzaWQsIGRpZCwgc2NpZCwgZG9pZD1Ob25lKToKKyAgICAgICAgIiIiCisg ICAgICAgIFJldHVybnMgdGhlIG1vZGlmaWVkIFNRTC4KKworICAgICAgICBF eHBlY3RlZCBQYXJhbWV0ZXJzOgorICAgICAgICAgICAgY29ubmFtZTogQ29u c3RyYWludHMgTmFtZQorICAgICAgICAgICAgY29uc3JjOiBDb25zdHJhaW50 cyBDaGVjaworCisgICAgICAgIEV4cGVjdGVkIFJlc3BvbnNlOgorICAgICAg ICAgICAgRG9tYWluIENvbnN0cmFpbnQgb2JqZWN0IGluIGpzb24gZm9ybWF0 LgorICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuYXJncwor ICAgICAgICBpZiBkb2lkIGlzIE5vbmU6CisgICAgICAgICAgICByZXF1aXJl ZF9hcmdzID0gWworICAgICAgICAgICAgICAgICdjb25uYW1lJywKKyAgICAg ICAgICAgICAgICAnY29uc3JjJworICAgICAgICAgICAgXQorCisgICAgICAg ICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICAgICAg ICAgaWYgYXJnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICAg ICAgICAgc3RhdHVzPTQxMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1 Y2Nlc3M9MCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ybXNnPWdl dHRleHQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvdWxkbid0 IGZpbmQgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAoJXMpLiIgJSBhcmcKKyAg ICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAg KQorICAgICAgICBTUUwgPSBzZWxmLmdldFNRTChnaWQsIHNpZCwgZGF0YSwg c2NpZCwgZG9pZCkKKyAgICAgICAgaWYgaXNpbnN0YW5jZShTUUwsIHN0cikg YW5kIFNRTCBhbmQgU1FMLnN0cmlwKCdcbicpIGFuZCBTUUwuc3RyaXAoJyAn KToKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisg ICAgICAgICAgICAgICAgICAgIGRhdGE9U1FMLAorICAgICAgICAgICAgICAg ICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAg ICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBTUUwKKworCisgICAgZGVm IGdldFNRTChzZWxmLCBnaWQsIHNpZCwgZGF0YSwgc2NpZCwgZG9pZCwgY29p ZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIEdlbnJhdGVzIHRoZSBT UUwgc3RhdGVtZW50cyB0byBjcmVhdGUvdXBkYXRlIHRoZSBEb21haW4gQ29u c3RyYWludC4KKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAg ICAgIGlmIGNvaWQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3Bh dGgsICdwcm9wZXJ0aWVzLnNxbCddKSwgZG9pZD1kb2lkLCBjb2lkPWNvaWQp CisgICAgICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhl Y3V0ZV9kaWN0KFNRTCkKKworICAgICAgICAgICAgICAgIGlmIG5vdCBzdGF0 dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAgICAgICAgIG9sZF9k YXRhID0gcmVzWydyb3dzJ11bMF0KKworICAgICAgICAgICAgICAgIFNRTCA9 IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgIi8iLmpv aW4oW3NlbGYudGVtcGxhdGVfcGF0aCwndXBkYXRlLnNxbCddKSwKKyAgICAg ICAgICAgICAgICAgICAgZGF0YT1kYXRhLCBvX2RhdGE9b2xkX2RhdGEsIGNv bm49c2VsZi5jb25uCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBs YXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdjcmVhdGUuc3Fs J10pLCBkYXRhPWRhdGEsIGNvbm49c2VsZi5jb25uKQorICAgICAgICAgICAg cmV0dXJuIFNRTAorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Cisg ICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y bXNnPXN0cihlKSkKKworRG9tYWluQ29uc3RyYWludFZpZXcucmVnaXN0ZXJf bm9kZV92aWV3KGJsdWVwcmludCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2RvbWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL3N0YXRpYy9pbWcvY29s bC1kb21haW4tY29uc3RyYWludHMucG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9t YWlucy9kb21haW4tY29uc3RyYWludHMvc3RhdGljL2ltZy9jb2xsLWRvbWFp bi1jb25zdHJhaW50cy5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZDYyZTEzNwpCaW5hcnkgZmlsZXMgL2Rldi9udWxsIGFuZCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL3N0 YXRpYy9pbWcvY29sbC1kb21haW4tY29uc3RyYWludHMucG5nIGRpZmZlcgpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9kb21haW4tY29u c3RyYWludHMvc3RhdGljL2ltZy9kb21haW4tY29uc3RyYWludHMtYmFkLnBu ZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9tYWluLWNvbnN0cmFpbnRz L3N0YXRpYy9pbWcvZG9tYWluLWNvbnN0cmFpbnRzLWJhZC5wbmcKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzJhMDQ1YgpCaW5hcnkg ZmlsZXMgL2Rldi9udWxsIGFuZCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMv ZG9tYWluLWNvbnN0cmFpbnRzL3N0YXRpYy9pbWcvZG9tYWluLWNvbnN0cmFp bnRzLWJhZC5wbmcgZGlmZmVyCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9kb21haW5zL2RvbWFpbi1jb25zdHJhaW50cy9zdGF0aWMvaW1nL2RvbWFp bi1jb25zdHJhaW50cy5wbmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2Rv bWFpbi1jb25zdHJhaW50cy9zdGF0aWMvaW1nL2RvbWFpbi1jb25zdHJhaW50 cy5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQx ZDJhMApCaW5hcnkgZmlsZXMgL2Rldi9udWxsIGFuZCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2RvbWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL3N0YXRpYy9pbWcvZG9t YWluLWNvbnN0cmFpbnRzLnBuZyBkaWZmZXIKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2RvbWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL3RlbXBsYXRl cy9kb21haW4tY29uc3RyYWludHMvY3NzL2RvbWFpbi1jb25zdHJhaW50cy5j c3MgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFpbi1jb25zdHJhaW50 cy90ZW1wbGF0ZXMvZG9tYWluLWNvbnN0cmFpbnRzL2Nzcy9kb21haW4tY29u c3RyYWludHMuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjY4Y2Q2MjIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9kb21haW5zL2RvbWFpbi1jb25zdHJhaW50cy90ZW1wbGF0ZXMvZG9tYWlu LWNvbnN0cmFpbnRzL2Nzcy9kb21haW4tY29uc3RyYWludHMuY3NzCkBAIC0w LDAgKzEsOSBAQAorLnBnLWljb24tZG9tYWluLWNvbnN0cmFpbnRzIHsKKyAg YmFja2dyb3VuZC1pbWFnZTogdXJsKCd7eyB1cmxfZm9yKCdOT0RFLWRvbWFp bi1jb25zdHJhaW50cy5zdGF0aWMnLCBmaWxlbmFtZT0naW1nL2RvbWFpbi1j b25zdHJhaW50cy5wbmcnKSB9fScpICFpbXBvcnRhbnQ7CisgIGJvcmRlci1y YWRpdXM6IDEwcHg7CisgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7 CisgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsKKyAgdmVydGljYWwtYWxpZ246 IG1pZGRsZTsKKyAgaGVpZ2h0OiAxLjNlbTsKK30KKwpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9kb21haW4tY29uc3RyYWludHMvdGVt cGxhdGVzL2RvbWFpbi1jb25zdHJhaW50cy9qcy9kb21haW4tY29uc3RyYWlu dHMuanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFpbi1jb25zdHJh aW50cy90ZW1wbGF0ZXMvZG9tYWluLWNvbnN0cmFpbnRzL2pzL2RvbWFpbi1j b25zdHJhaW50cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5mYjNkZTdkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZG9tYWlucy9kb21haW4tY29uc3RyYWludHMvdGVtcGxhdGVzL2RvbWFp bi1jb25zdHJhaW50cy9qcy9kb21haW4tY29uc3RyYWludHMuanMKQEAgLTAs MCArMSw5NSBAQAorZGVmaW5lKAorICAgICAgICBbJ2pxdWVyeScsICd1bmRl cnNjb3JlJywgJ3VuZGVyc2NvcmUuc3RyaW5nJywgJ3BnYWRtaW4nLCAncGdh ZG1pbi5icm93c2VyJywgJ2FsZXJ0aWZ5JywgJ3BnYWRtaW4uYnJvd3Nlci5j b2xsZWN0aW9uJ10sCitmdW5jdGlvbigkLCBfLCBTLCBwZ0FkbWluLCBwZ0Jy b3dzZXIsIGFsZXJ0aWZ5KSB7CisKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNb J2NvbGwtZG9tYWluLWNvbnN0cmFpbnRzJ10pIHsKKyAgICB2YXIgZGF0YWJh c2VzID0gcGdBZG1pbi5Ccm93c2VyLk5vZGVzWydjb2xsLWRvbWFpbi1jb25z dHJhaW50cyddID0KKyAgICAgIHBnQWRtaW4uQnJvd3Nlci5Db2xsZWN0aW9u LmV4dGVuZCh7CisgICAgICAgIG5vZGU6ICdkb21haW4tY29uc3RyYWludHMn LAorICAgICAgICBsYWJlbDogJ3t7IF8oJ0RvbWFpbiBDb25zdHJhaW50cycp IH19JywKKyAgICAgICAgdHlwZTogJ2NvbGwtZG9tYWluLWNvbnN0cmFpbnRz JworICAgICAgfSk7CisgIH07CisKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNb J2RvbWFpbi1jb25zdHJhaW50cyddKSB7CisgICAgcGdBZG1pbi5Ccm93c2Vy Lk5vZGVzWydkb21haW4tY29uc3RyYWludHMnXSA9IHBnQnJvd3Nlci5Ob2Rl LmV4dGVuZCh7CisgICAgICB0eXBlOiAnZG9tYWluLWNvbnN0cmFpbnRzJywK KyAgICAgIGxhYmVsOiAne3sgXygnRG9tYWluIENvbnN0cmFpbnRzJykgfX0n LAorICAgICAgY29sbGVjdGlvbl90eXBlOiAnY29sbC1kb21haW4tY29uc3Ry YWludHMnLAorICAgICAgaGFzU1FMOiB0cnVlLAorICAgICAgcGFyZW50X3R5 cGU6IFsnZG9tYWluJ10sCisgICAgICBJbml0OiBmdW5jdGlvbigpIHsKKyAg ICAgICAgLyogQXZvaWQgbXVsaXRwbGUgcmVnaXN0cmF0aW9uIG9mIG1lbnVz ICovCisgICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKQorICAgICAgICAg ICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVl OworCisgICAgICAgIHBnQnJvd3Nlci5hZGRfbWVudXMoW3sKKyAgICAgICAg ICBuYW1lOiAnY3JlYXRlX2RvbWFpbl9vbl9jb2xsJywgbm9kZTogJ2NvbGwt ZG9tYWluLWNvbnN0cmFpbnRzJywgbW9kdWxlOiB0aGlzLAorICAgICAgICAg IGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdz aG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2Ny ZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJlbDogJ3t7IF8oJ0RvbWFpbiBDb25z dHJhaW50Li4uJykgfX0nLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24g aWNvbi1kb21haW4tY29uc3RyYWludHMnLCBkYXRhOiB7YWN0aW9uOiAnY3Jl YXRlJywgY2hlY2s6IHRydWV9LAorICAgICAgICAgIGVuYWJsZTogJ2NhbkNy ZWF0ZScKKyAgICAgICAgfSx7CisgICAgICAgICAgbmFtZTogJ2NyZWF0ZV9k b21haW4tY29uc3RyYWludHMnLCBub2RlOiAnZG9tYWluLWNvbnN0cmFpbnRz JywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0 JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVz JywKKyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0 LCBsYWJlbDogJ3t7IF8oJ0RvbWFpbiBDb25zdHJhaW50Li4uJykgfX0nLAor ICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1kb21haW4tY29uc3Ry YWludHMnLCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6IHRydWV9 LAorICAgICAgICAgIGVuYWJsZTogJ2NhbkNyZWF0ZScKKyAgICAgICAgfSx7 CisgICAgICAgICAgbmFtZTogJ2NyZWF0ZV9kb21haW4tY29uc3RyYWludHMn LCBub2RlOiAnZG9tYWluJywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFw cGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93 X29ial9wcm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0 ZScsIHByaW9yaXR5OiA0LCBsYWJlbDogJ3t7IF8oJ0RvbWFpbiBDb25zdHJh aW50Li4uJykgfX0nLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNv bi1kb21haW4tY29uc3RyYWludHMnLCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRl JywgY2hlY2s6IGZhbHNlfSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVh dGUnCisgICAgICAgIH0KKyAgICAgICAgXSk7CisKKyAgICAgIH0sCisgICAg ICBjYW5Ecm9wOiBwZ0Jyb3dzZXIuTm9kZXNbJ3NjaGVtYSddLmNhbkNoaWxk RHJvcCwKKyAgICAgIG1vZGVsOiBwZ0FkbWluLkJyb3dzZXIuTm9kZS5Nb2Rl bC5leHRlbmQoeworICAgICAgICBkZWZhdWx0czogeworICAgICAgICAgIGNv bm5hbWU6IHVuZGVmaW5lZCwKKyAgICAgICAgICBkZXNjcmlwdGlvbjogdW5k ZWZpbmVkLAorICAgICAgICAgIGNvbnNyYzogdW5kZWZpbmVkLAorICAgICAg ICAgIGNvbm5vaW5oZXJpdDogdW5kZWZpbmVkLAorICAgICAgICAgIGNvbnZh bGlkYXRlZDogdW5kZWZpbmVkCisgICAgICAgIH0sCisgICAgICAgIHNjaGVt YTogW3tpZDogJ2Nvbm5hbWUnLCBsYWJlbDonTmFtZScsIHR5cGU6J3RleHQn LCBjZWxsOidzdHJpbmcnfSwKKyAgICAgICAge2lkOiAnZGVzY3JpcHRpb24n LCBsYWJlbDonQ29tbWVudCcsIHR5cGU6ICdtdWx0aWxpbmUnLCBjZWxsOiAn c3RyaW5nJywgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2NyZWF0ZScsICdlZGl0 J10sIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7IHJldHVybiAhbS5pc05ldygp OyB9fSwKKyAgICAgICAge2lkOiAnY29uc3JjJywgbGFiZWw6J0NoZWNrJywg dHlwZTogJ211bHRpbGluZScsIGNlbDogJ3N0cmluZycsIGdyb3VwOiAnRGVm aW5pdGlvbicsIG1vZGU6IFsncHJvcGVydGllcycsICdjcmVhdGUnLCAnZWRp dCddLCBkaXNhYmxlZDogZnVuY3Rpb24obSkgeyByZXR1cm4gIW0uaXNOZXco KTsgfX0sCisgICAgICAgIHtpZDogJ2Nvbm5vaW5oZXJpdCcsIGxhYmVsOidO byBJbmhlcml0JywgdHlwZTogJ3N3aXRjaCcsIGNlbGw6ICdib29sZWFuJywg Z3JvdXA6ICdEZWZpbml0aW9uJywgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2Ny ZWF0ZScsICdlZGl0J10sIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7IHJldHVy biAhbS5pc05ldygpOyB9fSwKKyAgICAgICAge2lkOiAnY29udmFsaWRhdGVk JywgbGFiZWw6IkRvbid0IFZhbGlkYXRlIiwgdHlwZTogJ3N3aXRjaCcsIGNl bGw6ICdib29sZWFuJywgZ3JvdXA6ICdEZWZpbml0aW9uJ30KKyAgICAgICAg XSwKKyAgICAgICAgdmFsaWRhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgICAg IHZhciBlcnIgPSB7fSwKKyAgICAgICAgICAgICAgZXJybXNnOworCisgICAg ICAgICAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ2Nvbm5hbWUnKSkg fHwgU3RyaW5nKHRoaXMuZ2V0KCdjb25uYW1lJykpLnJlcGxhY2UoL15ccyt8 XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAgIGVyclsnY29ubmFt ZSddID0gJ3t7IF8oJ05hbWUgY2FuIG5vdCBiZSBlbXB0eSEnKSB9fSc7Cisg ICAgICAgICAgICBlcnJtc2cgPSBlcnJtc2cgfHwgZXJyWydjb25uYW1lJ107 CisgICAgICAgICAgfQorCisgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQo dGhpcy5nZXQoJ2NvbnNyYycpKSB8fCBTdHJpbmcodGhpcy5nZXQoJ2NvbnNy YycpKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAg ICAgICAgICBlcnJbJ2NvbnNyYyddID0gJ3t7IF8oJ0NoZWNrIGNhbiBub3Qg YmUgZW1wdHkhJykgfX0nOworICAgICAgICAgICAgZXJybXNnID0gZXJybXNn IHx8IGVyclsnY29uc3JjJ107CisgICAgICAgICAgfQorCisgICAgICAgICAg dGhpcy5lcnJvck1vZGVsLmNsZWFyKCkuc2V0KGVycik7CisKKyAgICAgICAg ICBpZiAoXy5zaXplKGVycikpIHsKKyAgICAgICAgICAgIHRoaXMudHJpZ2dl cignb24tc3RhdHVzJywge21zZzogZXJybXNnfSk7CisgICAgICAgICAgICBy ZXR1cm4gZXJybXNnOworICAgICAgICAgIH0KKworICAgICAgICAgIHJldHVy biBudWxsOworCisgICAgICAgIH0sCisgICAgICB9KSwKKyAgfSk7CisKKyAg fQorCisgIHJldHVybiBwZ0Jyb3dzZXIuTm9kZXNbJ2RvbWFpbiddOworfSk7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFpbi1j b25zdHJhaW50cy90ZW1wbGF0ZXMvZG9tYWluLWNvbnN0cmFpbnRzL3NxbC85 LjFfcGx1cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9k b21haW4tY29uc3RyYWludHMvdGVtcGxhdGVzL2RvbWFpbi1jb25zdHJhaW50 cy9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5lZDI2MTBkCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9kb21haW4tY29uc3RyYWludHMvdGVt cGxhdGVzL2RvbWFpbi1jb25zdHJhaW50cy9zcWwvOS4xX3BsdXMvY3JlYXRl LnNxbApAQCAtMCwwICsxLDYgQEAKK3slIGlmIGRhdGEgYW5kIHNjaGVtYSBh bmQgZG9tYWluICV9CisgIEFMVEVSIERPTUFJTiB7eyBjb25ufHF0SWRlbnQo c2NoZW1hLCBkb21haW4pIH19CisgIEFERCBDT05TVFJBSU5UIHt7IGRhdGEu Y29ubmFtZSB9fSBDSEVDSyAoe3sgZGF0YS5jb25zcmMgfX0gKQorICB7JSBp ZiBkYXRhLmNvbnZhbGlkYXRlZCAlfSBOT1QgVkFMSUQgeyUgZW5kaWYgJX0g eyUgaWYgZGF0YS5jb25ub2luaGVyaXQgJX0gTk8gSU5IRVJJVCB7JSBlbmRp ZiAlfTsKK3slIGVuZGlmICV9CisKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2RvbWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL3RlbXBsYXRlcy9kb21h aW4tY29uc3RyYWludHMvc3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9kb21haW5zL2RvbWFpbi1jb25zdHJhaW50cy90ZW1wbGF0 ZXMvZG9tYWluLWNvbnN0cmFpbnRzL3NxbC85LjFfcGx1cy9kZWxldGUuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhNTY1ODMK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2Rv bWFpbi1jb25zdHJhaW50cy90ZW1wbGF0ZXMvZG9tYWluLWNvbnN0cmFpbnRz L3NxbC85LjFfcGx1cy9kZWxldGUuc3FsCkBAIC0wLDAgKzEsNCBAQAoreyUg aWYgZGF0YSAlfQorICBBTFRFUiBET01BSU4ge3sgY29ubnxxdElkZW50KGRh dGEubnNwbmFtZSwgZGF0YS5yZWxuYW1lKSB9fQorICBEUk9QIENPTlNUUkFJ TlQge3sgZGF0YS5jb25uYW1lIH19Cit7JSBlbmRpZiAlfQpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2RvbWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL3RlbXBsYXRlcy9kb21haW4t Y29uc3RyYWludHMvc3FsLzkuMV9wbHVzL2dldF9kb21haW4uc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZG9tYWlucy9kb21haW4tY29uc3RyYWludHMvdGVtcGxh dGVzL2RvbWFpbi1jb25zdHJhaW50cy9zcWwvOS4xX3BsdXMvZ2V0X2RvbWFp bi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTE5 OWM1YwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFp bnMvZG9tYWluLWNvbnN0cmFpbnRzL3RlbXBsYXRlcy9kb21haW4tY29uc3Ry YWludHMvc3FsLzkuMV9wbHVzL2dldF9kb21haW4uc3FsCkBAIC0wLDAgKzEs NyBAQAorU0VMRUNUIGQudHlwbmFtZSBhcyBkb21haW4sIGJuLm5zcG5hbWUg YXMgc2NoZW1hCitGUk9NCisgIHBnX3R5cGUgZAorSk9JTgorICBwZ19uYW1l c3BhY2UgYm4gT04gYm4ub2lkPWQudHlwbmFtZXNwYWNlCitXSEVSRQorICBk Lm9pZCA9IHt7ZG9pZH19CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9k b21haW5zL2RvbWFpbi1jb25zdHJhaW50cy90ZW1wbGF0ZXMvZG9tYWluLWNv bnN0cmFpbnRzL3NxbC85LjFfcGx1cy9nZXRfb2lkLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2RvbWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL3RlbXBsYXRlcy9k b21haW4tY29uc3RyYWludHMvc3FsLzkuMV9wbHVzL2dldF9vaWQuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0NGFiY2MKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFp bi1jb25zdHJhaW50cy90ZW1wbGF0ZXMvZG9tYWluLWNvbnN0cmFpbnRzL3Nx bC85LjFfcGx1cy9nZXRfb2lkLnNxbApAQCAtMCwwICsxLDQgQEAKK1NFTEVD VCBvaWQsIGNvbm5hbWUgYXMgbmFtZQorICBGUk9NIHBnX2NvbnN0cmFpbnQK K1dIRVJFIGNvbnR5cGlkID0ge3tkb2lkfX06Om9pZAorICBBTkQgY29ubmFt ZT17eyBuYW1lfHF0TGl0ZXJhbCB9fTsKXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2Rv bWFpbi1jb25zdHJhaW50cy90ZW1wbGF0ZXMvZG9tYWluLWNvbnN0cmFpbnRz L3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2RvbWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL3RlbXBsYXRlcy9kb21haW4t Y29uc3RyYWludHMvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlZDIxZDkKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFpbi1j b25zdHJhaW50cy90ZW1wbGF0ZXMvZG9tYWluLWNvbnN0cmFpbnRzL3NxbC85 LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbApAQCAtMCwwICsxLDE4IEBACitTRUxF Q1QgJ1RBQkxFJyBBUyBvYmplY3RraW5kLCBjLm9pZCwgY29ubmFtZSwgcmVs bmFtZSwgbnNwbmFtZSwgZGVzY3JpcHRpb24sCisgIHBnX2dldF9leHByKGNv bmJpbiwgY29ucmVsaWQsIHRydWUpIGFzIGNvbnNyYywgY29ubm9pbmhlcml0 LCBjb252YWxpZGF0ZWQKK0ZST00gcGdfY29uc3RyYWludCBjCitKT0lOIHBn X2NsYXNzIGNsIE9OIGNsLm9pZD1jb25yZWxpZAorSk9JTiBwZ19uYW1lc3Bh Y2UgbmwgT04gbmwub2lkPXJlbG5hbWVzcGFjZQorTEVGVCBPVVRFUiBKT0lO IHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1jLm9pZCBBTkQg ZGVzLmNsYXNzb2lkPSdwZ19jb25zdHJhaW50Jzo6cmVnY2xhc3MpCitXSEVS RSBjb250eXBlID0gJ2MnIEFORCBjb25yZWxpZCA9ICB7e2RvaWR9fTo6b2lk CitVTklPTgorU0VMRUNUICdET01BSU4nIEFTIG9iamVjdGtpbmQsIGMub2lk LCBjb25uYW1lLCB0eXBuYW1lIGFzIHJlbG5hbWUsIG5zcG5hbWUsIGRlc2Ny aXB0aW9uLAorICAgICAgIHJlZ2V4cF9yZXBsYWNlKHBnX2dldF9jb25zdHJh aW50ZGVmKGMub2lkLCB0cnVlKSwgRSdDSEVDSyBcXCgoLiopXFwpLionLCBF J1xcMScpIGFzIGNvbnNyYworLCBjb25ub2luaGVyaXQsIGNvbnZhbGlkYXRl ZCAgRlJPTSBwZ19jb25zdHJhaW50IGMKKyAgSk9JTiBwZ190eXBlIHQgT04g dC5vaWQ9Y29udHlwaWQKKyAgSk9JTiBwZ19uYW1lc3BhY2UgbmwgT04gbmwu b2lkPXR5cG5hbWVzcGFjZQorICBMRUZUIE9VVEVSIEpPSU4gcGdfZGVzY3Jp cHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPXQub2lkIEFORCBkZXMuY2xhc3Nv aWQ9J3BnX2NvbnN0cmFpbnQnOjpyZWdjbGFzcykKKyBXSEVSRSBjb250eXBl ID0gJ2MnIEFORCBjb250eXBpZCA9ICB7e2RvaWR9fTo6b2lkCit7JSBpZiBj b2lkICV9CisgIEFORCBjLm9pZCA9IHt7IGNvaWQgfX0KK3slIGVuZGlmICV9 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFpbi1j b25zdHJhaW50cy90ZW1wbGF0ZXMvZG9tYWluLWNvbnN0cmFpbnRzL3NxbC85 LjFfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9k b21haW4tY29uc3RyYWludHMvdGVtcGxhdGVzL2RvbWFpbi1jb25zdHJhaW50 cy9zcWwvOS4xX3BsdXMvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi45YTJjOGQ3Ci0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9kb21haW4tY29uc3RyYWludHMvdGVt cGxhdGVzL2RvbWFpbi1jb25zdHJhaW50cy9zcWwvOS4xX3BsdXMvdXBkYXRl LnNxbApAQCAtMCwwICsxLDQgQEAKK3slIGlmIGRhdGEuY29ubmFtZSAlfQor ICBBTFRFUiBET01BSU4ge3sgY29ubnxxdElkZW50KG9fZGF0YS5uc3BuYW1l LCBvX2RhdGEucmVsbmFtZSkgfX0KKyAgICBSRU5BTUUgQ09OU1RSQUlOVCB7 eyBvX2RhdGEuY29ubmFtZSB9fSBUTyB7eyBkYXRhLmNvbm5hbWUgfX07Cit7 JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlu cy9zdGF0aWMvaW1nL2NvbGwtZG9tYWluLnBuZyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2RvbWFpbnMvc3RhdGljL2ltZy9jb2xsLWRvbWFpbi5wbmcKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTU2MjE1MgpCaW5hcnkgZmls ZXMgL2Rldi9udWxsIGFuZCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvc3Rh dGljL2ltZy9jb2xsLWRvbWFpbi5wbmcgZGlmZmVyCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9kb21haW5zL3N0YXRpYy9pbWcvZG9tYWluLXNtLnBu ZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvc3RhdGljL2ltZy9kb21haW4t c20ucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1 MjFjZGQKQmluYXJ5IGZpbGVzIC9kZXYvbnVsbCBhbmQgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9kb21haW5zL3N0YXRpYy9pbWcvZG9tYWluLXNtLnBuZyBkaWZmZXIK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvc3RhdGljL2lt Zy9kb21haW4ucG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9zdGF0aWMv aW1nL2RvbWFpbi5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uNDJjYTkyOQpCaW5hcnkgZmlsZXMgL2Rldi9udWxsIGFuZCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2RvbWFpbnMvc3RhdGljL2ltZy9kb21haW4ucG5nIGRp ZmZlcgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1w bGF0ZXMvZG9tYWlucy9jc3MvZG9tYWlucy5jc3MgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL2Nzcy9kb21haW5zLmNzcwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDRmYWQwCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1w bGF0ZXMvZG9tYWlucy9jc3MvZG9tYWlucy5jc3MKQEAgLTAsMCArMSw5IEBA CisucGctaWNvbi1kb21haW4geworICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwo J3t7IHVybF9mb3IoJ05PREUtZG9tYWluLnN0YXRpYycsIGZpbGVuYW1lPSdp bWcvZG9tYWluLnBuZycpIH19JykgIWltcG9ydGFudDsKKyAgYm9yZGVyLXJh ZGl1czogMTBweDsKKyAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsK KyAgYWxpZ24tY29udGVudDogY2VudGVyOworICB2ZXJ0aWNhbC1hbGlnbjog bWlkZGxlOworICBoZWlnaHQ6IDEuM2VtOworfQorCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL2pzL2Rv bWFpbnMuanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9k b21haW5zL2pzL2RvbWFpbnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uOGZjZjUwNwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVzL2RvbWFpbnMvanMvZG9tYWlu cy5qcwpAQCAtMCwwICsxLDIzNiBAQAorLyogQ3JlYXRlIGFuZCBSZWdpc3Rl ciBEb21haW4gQ29sbGVjdGlvbiBhbmQgRG9tYWluIE5vZGUuICovCisKK2Rl ZmluZSgKKyAgICAgICAgWydqcXVlcnknLCAndW5kZXJzY29yZScsICd1bmRl cnNjb3JlLnN0cmluZycsICdwZ2FkbWluJywgJ3BnYWRtaW4uYnJvd3Nlcics ICdhbGVydGlmeScsICdwZ2FkbWluLmJyb3dzZXIuY29sbGVjdGlvbiddLAor ZnVuY3Rpb24oJCwgXywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBhbGVydGlm eSkgeworCisgIGlmICghcGdCcm93c2VyLk5vZGVzWydjb2xsLWRvbWFpbidd KSB7CisgICAgdmFyIGRhdGFiYXNlcyA9IHBnQWRtaW4uQnJvd3Nlci5Ob2Rl c1snY29sbC1kb21haW4nXSA9CisgICAgICBwZ0FkbWluLkJyb3dzZXIuQ29s bGVjdGlvbi5leHRlbmQoeworICAgICAgICBub2RlOiAnZG9tYWluJywKKyAg ICAgICAgbGFiZWw6ICd7eyBfKCdEb21haW5zJykgfX0nLAorICAgICAgICB0 eXBlOiAnY29sbC1kb21haW4nCisgICAgICB9KTsKKyAgfTsKKworICB2YXIg U2VjdXJpdHlNb2RlbCA9IEJhY2tmb3JtLlNlY3VyaXR5TW9kZWwgPSBwZ0Fk bWluLkJyb3dzZXIuTm9kZS5Nb2RlbC5leHRlbmQoeworICAgIGRlZmF1bHRz OiB7CisgICAgICBwcm92aWRlcjogbnVsbCwKKyAgICAgIHNlY3VyaXR5X2xh YmVsOiBudWxsCisgICAgfSwKKyAgICBzY2hlbWE6IFt7CisgICAgICBpZDog J3Byb3ZpZGVyJywgbGFiZWw6ICd7eyBfKCdQcm92aWRlcicpIH19JywKKyAg ICAgIHR5cGU6ICd0ZXh0JworICAgIH0seworICAgICAgaWQ6ICdzZWN1cml0 eV9sYWJlbCcsIGxhYmVsOiAne3sgXygnU2VjdXJpdHkgTGFiZWwnKSB9fScs CisgICAgICB0eXBlOiAndGV4dCcKKyAgICB9XSwKKyAgICB2YWxpZGF0ZTog ZnVuY3Rpb24oKSB7CisgICAgICB2YXIgZXJyID0ge30sCisgICAgICAgICAg ZXJybXNnID0gbnVsbCwKKyAgICAgICAgICBkYXRhID0gdGhpcy50b0pTT04o KTsKKworICAgICAgaWYgKF8uaXNVbmRlZmluZWQoZGF0YS5sYWJlbCkgfHwK KyAgICAgICAgXy5pc051bGwoZGF0YS5sYWJlbCkgfHwKKyAgICAgICAgU3Ry aW5nKGRhdGEubGFiZWwpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0g JycpIHsKKyAgICAgICAgcmV0dXJuIF8oIlBsZWFzZSBzcGVjaWZ5IHRoZSB2 YWx1ZSBmb3IgYWxsIHRoZSBzZWN1cml0eSBwcm92aWRlcnMuIik7CisgICAg ICB9CisgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgIH0pOworCisgIHZh ciBDb25zdHJhaW50c01vZGVsID0gcGdBZG1pbi5Ccm93c2VyLk5vZGUuTW9k ZWwuZXh0ZW5kKHsKKyAgICBkZWZhdWx0czogeworICAgICAgY29ubmFtZTog dW5kZWZpbmVkLAorICAgICAgZGVzY3JpcHRpb246IHVuZGVmaW5lZCwKKyAg ICAgIHNsb255OiB1bmRlZmluZWQsCisgICAgICBjb25zcmM6IHVuZGVmaW5l ZCwKKyAgICAgIGNvbm5vaW5oZXJpdDogdW5kZWZpbmVkLAorICAgICAgY29u dmFsaWRhdGVkOiB1bmRlZmluZWQKKyAgICB9LAorICAgIHNjaGVtYTogWwor ICAgICAge2lkOiAnY29ubmFtZScsIGxhYmVsOidOYW1lJywgdHlwZTondGV4 dCcsIGNlbGw6J3N0cmluZyd9LAorICAgICAge2lkOiAnZGVzY3JpcHRpb24n LCBsYWJlbDonQ29tbWVudCcsIHR5cGU6ICdtdWx0aWxpbmUnLCBjZWxsOiAn c3RyaW5nJ30sCisgICAgICB7aWQ6ICdzbG9ueScsIGxhYmVsOidVc2UgU2xv bnknLCB0eXBlOiAndGV4dCcsIGNlbGw6ICdzdHJpbmcnfSwKKyAgICAgIHtp ZDogJ2NvbnNyYycsIGxhYmVsOidDaGVjaycsIHR5cGU6ICdtdWx0aWxpbmUn LCBjZWw6ICdzdHJpbmcnLCBncm91cDogJ2RlZmluaXRpb24nfSwKKyAgICAg IHtpZDogJ2Nvbm5vaW5oZXJpdCcsIGxhYmVsOidObyBJbmhlcml0JywgdHlw ZTogJ3N3aXRjaCcsIGNlbGw6ICdib29sZWFuJywgZ3JvdXA6ICdkZWZpbml0 aW9uJ30sCisgICAgICB7aWQ6ICdjb252YWxpZGF0ZWQnLCBsYWJlbDoiRG9u J3QgVmFsaWRhdGUiLCB0eXBlOiAnc3dpdGNoJywgY2VsbDogJ2Jvb2xlYW4n LCBncm91cDogJ2RlZmluaXRpb24nfQorICAgIF0sCisgICAgdmFsaWRhdGU6 IGZ1bmN0aW9uKCkgeworICAgICAgLy8gVE9ETzogQWRkIHZhbGlkYXRpb24g aGVyZQorICAgIH0sCisgICAgdG9KU09OOiBCYWNrYm9uZS5Nb2RlbC5wcm90 b3R5cGUudG9KU09OCisgIH0pOworCisKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9k ZXNbJ2RvbWFpbiddKSB7CisgICAgcGdBZG1pbi5Ccm93c2VyLk5vZGVzWydk b21haW4nXSA9IHBnQnJvd3Nlci5Ob2RlLmV4dGVuZCh7CisgICAgICB0eXBl OiAnZG9tYWluJywKKyAgICAgIGxhYmVsOiAne3sgXygnRG9tYWluJykgfX0n LAorICAgICAgY29sbGVjdGlvbl90eXBlOiAnY29sbC1kb21haW4nLAorICAg ICAgaGFzU1FMOiB0cnVlLAorICAgICAgcGFyZW50X3R5cGU6IFsnc2NoZW1h J10sCisgICAgICBJbml0OiBmdW5jdGlvbigpIHsKKyAgICAgICAgLyogQXZv aWQgbXVsaXRwbGUgcmVnaXN0cmF0aW9uIG9mIG1lbnVzICovCisgICAgICAg IGlmICh0aGlzLmluaXRpYWxpemVkKQorICAgICAgICAgICAgcmV0dXJuOwor CisgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlOworCisgICAgICAg IHBnQnJvd3Nlci5hZGRfbWVudXMoW3sKKyAgICAgICAgICBuYW1lOiAnY3Jl YXRlX2RvbWFpbl9vbl9jb2xsJywgbm9kZTogJ2NvbGwtZG9tYWluJywgbW9k dWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2Nv bnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAg ICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJl bDogJ3t7IF8oJ0RvbWFpbi4uLicpIH19JywKKyAgICAgICAgICBpY29uOiAn d2NUYWJJY29uIGljb24tZG9tYWluJywgZGF0YToge2FjdGlvbjogJ2NyZWF0 ZScsIGNoZWNrOiB0cnVlfSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVh dGUnCisgICAgICAgIH0seworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfZG9t YWluJywgbm9kZTogJ2RvbWFpbicsIG1vZHVsZTogdGhpcywKKyAgICAgICAg ICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAn c2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdj cmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdEb21haW4uLi4n KSB9fScsCisgICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLWRvbWFp bicsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUnLCBjaGVjazogdHJ1ZX0sCisg ICAgICAgICAgZW5hYmxlOiAnY2FuQ3JlYXRlJworICAgICAgICB9LHsKKyAg ICAgICAgICBuYW1lOiAnY3JlYXRlX2RvbWFpbicsIG5vZGU6ICdzY2hlbWEn LCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGllczogWydvYmplY3Qn LCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMn LAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQs IGxhYmVsOiAne3sgXygnRG9tYWluLi4uJykgfX0nLAorICAgICAgICAgIGlj b246ICd3Y1RhYkljb24gaWNvbi1kb21haW4nLCBkYXRhOiB7YWN0aW9uOiAn Y3JlYXRlJywgY2hlY2s6IGZhbHNlfSwKKyAgICAgICAgICBlbmFibGU6ICdj YW5DcmVhdGUnCisgICAgICAgIH0KKyAgICAgICAgXSk7CisKKyAgICAgIH0s CisgICAgICBjYW5Ecm9wOiBwZ0Jyb3dzZXIuTm9kZXNbJ3NjaGVtYSddLmNh bkNoaWxkRHJvcCwKKyAgICAgIGNhbkRyb3BDYXNjYWRlOiBwZ0Jyb3dzZXIu Tm9kZXNbJ3NjaGVtYSddLmNhbkNoaWxkRHJvcCwKKyAgICAgIG1vZGVsOiBw Z0FkbWluLkJyb3dzZXIuTm9kZS5Nb2RlbC5leHRlbmQoeworICAgICAgICBk ZWZhdWx0czogeworICAgICAgICAgIG5hbWU6IHVuZGVmaW5lZCwKKyAgICAg ICAgICBvaWQ6IHVuZGVmaW5lZCwgCisgICAgICAgICAgb3duZXI6IHVuZGVm aW5lZCwKKyAgICAgICAgICBiYXNlbnNwOiB1bmRlZmluZWQsCisgICAgICAg ICAgZGVzY3JpcHRpb246IHVuZGVmaW5lZCwKKyAgICAgICAgICBiYXNldHlw ZTogdW5kZWZpbmVkLAorICAgICAgICAgIHR5cGxlbjogdW5kZWZpbmVkLAor ICAgICAgICAgIHByZWNpc2lvbjogdW5kZWZpbmVkLAorICAgICAgICAgIHR5 cGRlZmF1bHQ6IHVuZGVmaW5lZCwKKyAgICAgICAgICB0eXBub3RudWxsOiB1 bmRlZmluZWQsCisgICAgICAgICAgY29sbG5hbWU6IHVuZGVmaW5lZCwKKyAg ICAgICAgICBjb25zdHJhaW50czogW10sCisgICAgICAgICAgc2VjbGFiZWxz OiBbXQorICAgICAgICB9LAorICAgICAgICBzY2hlbWE6IFt7CisgICAgICAg ICAgaWQ6ICduYW1lJywgbGFiZWw6ICd7eyBfKCdOYW1lJykgfX0nLCBjZWxs OiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIG1vZGU6IFsn cHJvcGVydGllcycsICdjcmVhdGUnLCAnZWRpdCddCisgICAgICAgIH0sewor ICAgICAgICAgIGlkOiAnb2lkJywgbGFiZWw6J3t7IF8oJ09pZCcpIH19Jywg Y2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ3RleHQnICwgbW9k ZTogWydwcm9wZXJ0aWVzJ10KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6 ICdvd25lcicsIGxhYmVsOid7eyBfKCdPd25lcicpIH19JywgY2VsbDogJ3N0 cmluZycsIGNvbnRyb2w6IEJhY2tmb3JtLk5vZGVMaXN0QnlOYW1lQ29udHJv bCwKKyAgICAgICAgICBub2RlOiAncm9sZScsICB0eXBlOiAndGV4dCcsIG1v ZGU6IFsnZWRpdCcsICdjcmVhdGUnLCAncHJvcGVydGllcyddCisgICAgICAg IH0seworICAgICAgICAgIGlkOiAnYmFzZW5zcCcsIGxhYmVsOid7eyBfKCdT Y2hlbWEnKSB9fScsIGNlbGw6ICdzdHJpbmcnLCBjb250cm9sOiAnbm9kZS1h amF4LW9wdGlvbnMnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgdXJsOiAn Z2V0X3NjaGVtYXMnCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnZGVz Y3JpcHRpb24nLCBsYWJlbDone3sgXygnQ29tbWVudCcpIH19JywgY2VsbDog J3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ211bHRpbGluZScKKyAgICAg ICAgfSx7CisgICAgICAgICAgaWQ6ICdiYXNldHlwZScsIGxhYmVsOid7eyBf KCdCYXNlIFR5cGUnKSB9fScsIGNlbGw6ICdzdHJpbmcnLCBjb250cm9sOiAn bm9kZS1hamF4LW9wdGlvbnMnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0Jywg bW9kZTpbJ3Byb3BlcnRpZXMnLCAnY3JlYXRlJywgJ2VkaXQnXSwgZ3JvdXA6 ICdEZWZpbml0aW9uJywgdXJsOiAnZ2V0X3R5cGVzJywKKyAgICAgICAgICBk aXNhYmxlZDogZnVuY3Rpb24obSkgeyByZXR1cm4gIW0uaXNOZXcoKTsgfQor ICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3R5cGxlbicsIGxhYmVsOid7 eyBfKCdMZW5ndGgnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAg IHR5cGU6ICd0ZXh0JywgZ3JvdXA6ICdEZWZpbml0aW9uJywgZGlzYWJsZWQ6 IGZ1bmN0aW9uKG0pIHsgcmV0dXJuICFtLmlzTmV3KCk7IH0KKyAgICAgICAg fSx7CisgICAgICAgICAgaWQ6ICdwcmVjaXNpb24nLCBsYWJlbDone3sgXygn UHJlY2lzaW9uJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0 eXBlOiAndGV4dCcsIGdyb3VwOiAnRGVmaW5pdGlvbicsIGRpc2FibGVkOiBm dW5jdGlvbihtKSB7IHJldHVybiAhbS5pc05ldygpOyB9CisgICAgICAgIH0s eworICAgICAgICAgIGlkOiAndHlwZGVmYXVsdCcsIGxhYmVsOid7eyBfKCdE ZWZhdWx0JykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBl OiAndGV4dCcsIGdyb3VwOiAnRGVmaW5pdGlvbicKKyAgICAgICAgfSx7Cisg ICAgICAgICAgaWQ6ICd0eXBub3RudWxsJywgbGFiZWw6J3t7IF8oJ05vdCBO dWxsJykgfX0nLCBjZWxsOiAnYm9vbGVhbicsCisgICAgICAgICAgdHlwZTog J3N3aXRjaCcsIGdyb3VwOiAnRGVmaW5pdGlvbicKKyAgICAgICAgfSx7Cisg ICAgICAgICAgaWQ6ICdjb2xsbmFtZScsIGxhYmVsOid7eyBfKCdDb2xsYXRp b24nKSB9fScsIGNlbGw6ICdzdHJpbmcnLCBjb250cm9sOiAnbm9kZS1hamF4 LW9wdGlvbnMnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZ3JvdXA6ICdE ZWZpbml0aW9uJywgdXJsOiAnZ2V0X2NvbGxhdGlvbnMnLCBkaXNhYmxlZDog ZnVuY3Rpb24obSkgeyByZXR1cm4gIW0uaXNOZXcoKTsgfQorICAgICAgICB9 LHsKKyAgICAgICAgICBpZDogJ2NvbnN0cmFpbnRzJywgbGFiZWw6J3t7IF8o J0NvbnN0cmFpbnRzJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAg ICB0eXBlOiAnY29sbGVjdGlvbicsIGdyb3VwOiAnQ29uc3RyYWludHMnLCB2 aXNpYmxlOiBmYWxzZSwgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLAorICAg ICAgICAgIG1vZGVsOiBDb25zdHJhaW50c01vZGVsLCBjYW5BZGQ6IHRydWUs IGNhbkRlbGV0ZTogZmFsc2UsIGNhbkVkaXQ6IGZhbHNlCisgICAgICAgIH0s eworICAgICAgICAgIGlkOiAnc2VjbGFiZWxzJywgbGFiZWw6ICd7eyBfKCdT ZWN1cml0eSBMYWJlbHMnKSB9fScsCisgICAgICAgICAgbW9kZWw6IFNlY3Vy aXR5TW9kZWwsIGVkaXRhYmxlOiBmYWxzZSwgdHlwZTogJ2NvbGxlY3Rpb24n LAorICAgICAgICAgIGdyb3VwOiAne3sgXygnU2VjdXJpdHknKSB9fScsIG1v ZGU6IFsnZWRpdCcsICdjcmVhdGUnXSwKKyAgICAgICAgICBtaW5fdmVyc2lv bjogOTAxMDAsIGNhbkFkZDogdHJ1ZSwKKyAgICAgICAgICBjYW5FZGl0OiBm YWxzZSwgY2FuRGVsZXRlOiB0cnVlLCBjb250cm9sOiAndW5pcXVlLWNvbC1j b2xsZWN0aW9uJworICAgICAgICB9CisgICAgICAgIF0sCisgICAgICAgIHZh bGlkYXRlOiBmdW5jdGlvbigpCisgICAgICAgIHsKKyAgICAgICAgICB2YXIg ZXJyID0ge30sCisgICAgICAgICAgICAgIGVycm1zZywKKyAgICAgICAgICAg ICAgc2VjbGFiZWxzID0gdGhpcy5nZXQoJ3NlY2xhYmVscycpOworCisgICAg ICAgICAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ25hbWUnKSkgfHwg U3RyaW5nKHRoaXMuZ2V0KCduYW1lJykpLnJlcGxhY2UoL15ccyt8XHMrJC9n LCAnJykgPT0gJycpIHsKKyAgICAgICAgICAgIGVyclsnbmFtZSddID0gJ3t7 IF8oJ05hbWUgY2FuIG5vdCBiZSBlbXB0eSEnKSB9fSc7CisgICAgICAgICAg ICBlcnJtc2cgPSBlcnJtc2cgfHwgZXJyWyduYW1lJ107CisgICAgICAgICAg fQorCisgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ2Jh c2V0eXBlJykpIHx8IFN0cmluZyh0aGlzLmdldCgnYmFzZXR5cGUnKSkucmVw bGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAg ZXJyWydiYXNldHlwZSddID0gJ3t7IF8oJ0Jhc2UgVHlwZSBjYW4gbm90IGJl IGVtcHR5IScpIH19JzsKKyAgICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8 fCBlcnJbJ2Jhc2V0eXBlJ107CisgICAgICAgICAgfQorCisgICAgICAgICAg aWYgKHNlY2xhYmVscykgeworICAgICAgICAgICAgdmFyIHNlY0xhYmVsc0Vy cjsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VjbGFiZWxz Lm1vZGVscy5sZW5ndGggJiYgIXNlY0xhYmVsc0VycjsgaSsrKSB7CisgICAg ICAgICAgICAgIHNlY0xhYmVsc0VyciA9IChzZWNsYWJlbHMubW9kZWxzW2ld KS52YWxpZGF0ZS5hcHBseShzZWNsYWJlbHMubW9kZWxzW2ldKTsKKyAgICAg ICAgICAgICAgaWYgKHNlY0xhYmVsc0VycikgeworICAgICAgICAgICAgICAg IGVyclsnc2VjbGFiZWxzJ10gPSBzZWNMYWJlbHNFcnI7CisgICAgICAgICAg ICAgICAgZXJybXNnID0gZXJybXNnIHx8IHNlY0xhYmVsc0VycjsKKyAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgIH0KKworICAg ICAgICAgIHRoaXMuZXJyb3JNb2RlbC5jbGVhcigpLnNldChlcnIpOworCisg ICAgICAgICAgaWYgKF8uc2l6ZShlcnIpKSB7CisgICAgICAgICAgICB0aGlz LnRyaWdnZXIoJ29uLXN0YXR1cycsIHttc2c6IGVycm1zZ30pOworICAgICAg ICAgICAgcmV0dXJuIGVycm1zZzsKKyAgICAgICAgICB9CisKKyAgICAgICAg ICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgfSksCisgICAgICBj YW5DcmVhdGU6IGZ1bmN0aW9uKGl0ZW1EYXRhLCBpdGVtLCBkYXRhKSB7Cisg ICAgICAgIC8vSWYgY2hlY2sgaXMgZmFsc2UgdGhlbiAsIHdlIHdpbGwgYWxs b3cgY3JlYXRlIG1lbnUKKyAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5jaGVj ayA9PSBmYWxzZSkKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAg ICB2YXIgdCA9IHBnQnJvd3Nlci50cmVlLCBpID0gaXRlbSwgZCA9IGl0ZW1E YXRhOworICAgICAgICAvLyBUbyBpdGVyYXRlIG92ZXIgdHJlZSB0byBjaGVj ayBwYXJlbnQgbm9kZQorICAgICAgICB3aGlsZSAoaSkgeworICAgICAgICAg IC8vIElmIGl0IGlzIHNjaGVtYSB0aGVuIGFsbG93IHVzZXIgdG8gY3JlYXRl IGRvbWFpbgorICAgICAgICAgIGlmIChfLmluZGV4T2YoWydzY2hlbWEnXSwg ZC5fdHlwZSkgPiAtMSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisg ICAgICAgICAgaWYgKCdjb2xsLWRvbWFpbicgPT0gZC5fdHlwZSkgeworICAg ICAgICAgICAgLy9DaGVjayBpZiB3ZSBhcmUgbm90IGNoaWxkIG9mIGNhdGFs b2cKKyAgICAgICAgICAgIHByZXZfaSA9IHQuaGFzUGFyZW50KGkpID8gdC5w YXJlbnQoaSkgOiBudWxsOworICAgICAgICAgICAgcHJldl9kID0gcHJldl9p ID8gdC5pdGVtRGF0YShwcmV2X2kpIDogbnVsbDsKKyAgICAgICAgICAgIGlm KCBwcmV2X2QuX3R5cGUgPT0gJ2NhdGFsb2cnKSB7CisgICAgICAgICAgICAg IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAg IH0KKyAgICAgICAgICBpID0gdC5oYXNQYXJlbnQoaSkgPyB0LnBhcmVudChp KSA6IG51bGw7CisgICAgICAgICAgZCA9IGkgPyB0Lml0ZW1EYXRhKGkpIDog bnVsbDsKKyAgICAgICAgfQorICAgICAgICAvLyBieSBkZWZhdWx0IHdlIGRv IG5vdCB3YW50IHRvIGFsbG93IGNyZWF0ZSBtZW51CisgICAgICAgIHJldHVy biB0cnVlOworICAgICAgfQorICB9KTsKKworICB9CisKKyAgcmV0dXJuIHBn QnJvd3Nlci5Ob2Rlc1snZG9tYWluJ107Cit9KTsKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVzL2RvbWFpbnMvc3FsLzku MV9wbHVzL2JhY2tlbmRfc3VwcG9ydC5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9k b21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85LjFfcGx1cy9iYWNrZW5k X3N1cHBvcnQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjc0MTdiNDMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85LjFfcGx1cy9iYWNr ZW5kX3N1cHBvcnQuc3FsCkBAIC0wLDAgKzEsMjAgQEAKK1NFTEVDVAorICBD QVNFIFdIRU4gbnNwLm5zcG5hbWUgSU4gKCdzeXMnLCAnZGJvJywgJ2luZm9y bWF0aW9uX3NjaGVtYScpIFRIRU4gdHJ1ZSBFTFNFIGZhbHNlIEVORCBBUyBk YlN1cHBvcnQKK0ZST00KKyAgcGdfbmFtZXNwYWNlIG5zcAorV0hFUkUKKyAg bnNwLm9pZD17e3NjaWR9fTo6aW50CisgIEFORCAoCisgICAgKG5zcG5hbWUg PSAncGdfY2F0YWxvZycgQU5EIEVYSVNUUyAKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKFNFTEVDVCAxIEZST00gcGdfY2xhc3MgV0hF UkUgcmVsbmFtZSA9ICdwZ19jbGFzcycgQU5EIHJlbG5hbWVzcGFjZSA9IG5z cC5vaWQgTElNSVQgMSkpCisgICAgT1IgKG5zcG5hbWUgPSAncGdhZ2VudCcg QU5EIEVYSVNUUworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoU0VMRUNUIDEgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3Bn YV9qb2InIEFORCByZWxuYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlUIDEpKQor ICAgIE9SIChuc3BuYW1lID0gJ2luZm9ybWF0aW9uX3NjaGVtYScgQU5EIEVY SVNUUyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFNF TEVDVCAxIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICd0YWJsZXMn IEFORCByZWxuYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlUIDEpKQorICAgIE9S IChuc3BuYW1lIExJS0UgJ18lJyBBTkQgRVhJU1RTIAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoU0VMRUNUIDEgRlJPTSBwZ19wcm9j IFdIRVJFIHByb25hbWU9J3Nsb255dmVyc2lvbicgQU5EIHByb25hbWVzcGFj ZSA9IG5zcC5vaWQgTElNSVQgMSkpCisgICAgKQorICBBTkQKKyAgIG5zcG5h bWUgTk9UIExJS0UgRSdwZ1xcdGVtcFxcJScKKyAgQU5ECisgICBuc3BuYW1l IE5PVCBMSUtFIEUncGdcXHRvYXN0X3RlbXBcXCUnClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9t YWlucy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4xX3BsdXMvY3JlYXRlLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVzL2RvbWFpbnMv c3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uZDRjZGZlMAotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVzL2RvbWFpbnMvc3FsLzku MV9wbHVzL2NyZWF0ZS5zcWwKQEAgLTAsMCArMSwzMiBAQAoreyUgaW1wb3J0 ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQorCit7 JSBpZiBkYXRhICV9CisgIENSRUFURSBET01BSU4ge3sgY29ubnxxdElkZW50 KGRhdGEuYmFzZW5zcCwgZGF0YS5uYW1lKSB9fQorICAgIEFTIHt7IGRhdGEu YmFzZXR5cGUgfX0KKyAgeyUgaWYgZGF0YS5jb2xsbmFtZSAlfQorICAgIENP TExBVEUge3sgZGF0YS5jb2xsbmFtZSB9fQorICB7JSBlbmRpZiAlfQorCisg IHslIGlmIGRhdGEudHlwbm90bnVsbCAlfQorICAgIE5PVCBOVUxMCisgIHsl IGVuZGlmICV9CisgIDsKKworICB7JSBpZiBkYXRhLmNvbnN0cmFpbnRzICV9 CisgICAgeyUgZm9yIGMgaW4gZGF0YS5jb25zdHJhaW50cyAlfQorICAgICAg QUxURVIgRE9NQUlOIHt7IGNvbm58cXRJZGVudChkYXRhLmJhc2Vuc3AsIGRh dGEubmFtZSkgfX0KKyAgICAgIEFERCBDT05TVFJBSU5UIHt7IGMuY29ubmFt ZSB9fSBDSEVDSyAoe3sgYy5jb25zcmMgfX0gKQorICAgICAgeyUgaWYgYy5j b252YWxpZGF0ZWQgJX0gTk9UIFZBTElEIHslIGVuZGlmICV9IHslIGlmIGMu Y29ubm9pbmhlcml0ICV9IE5PIElOSEVSSVQgeyUgZW5kaWYgJX07CisgICAg eyUgZW5kZm9yICV9CisgIHslIGVuZGlmICV9CisKKyAgQUxURVIgRE9NQUlO IHt7IGNvbm58cXRJZGVudChkYXRhLmJhc2Vuc3AsIGRhdGEubmFtZSkgfX0g T1dORVIgVE8ge3sgZGF0YS5vd25lciB9fTsKKyAgeyUgaWYgZGF0YS5kZXNj cmlwdGlvbiAlfQorICAgIENPTU1FTlQgT04gRE9NQUlOIHt7IGNvbm58cXRJ ZGVudChkYXRhLmJhc2Vuc3AsIGRhdGEubmFtZSkgfX0KKyAgICBJUyAne3sg ZGF0YS5kZXNjcmlwdGlvbiB9fSc7CisgIHslIGVuZGlmICV9CisKKyAgeyUg Zm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0KKyAgICB7eyBTRUNMQUJMRS5B UFBMWShjb25uLCAnRE9NQUlOJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCBy LmxhYmVsKSB9fQorICB7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9ClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4xX3BsdXMv ZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVz L2RvbWFpbnMvc3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc0MGY0ZgotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVzL2RvbWFp bnMvc3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwxMSBAQAor eyUgaWYgc2NpZCBhbmQgZG9pZCAlfQorICBTRUxFQ1QgZC50eXBuYW1lIGFz IG5hbWUsIGJuLm5zcG5hbWUgYXMgYmFzZW5zcAorICBGUk9NIHBnX3R5cGUg ZAorICBKT0lOIHBnX25hbWVzcGFjZSBibiBPTiBibi5vaWQ9ZC50eXBuYW1l c3BhY2UKKyAgV0hFUkUgZC50eXBuYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lk CisgIEFORCBkLm9pZD17e2RvaWR9fTo6aW50OworeyUgZW5kaWYgJX0KKwor eyUgaWYgbmFtZSAlfQorICBEUk9QIERPTUFJTiB7eyBjb25ufHF0SWRlbnQo YmFzZW5zcCwgbmFtZSkgfX17JSBpZiBjYXNjYWRlJX0gQ0FTQ0FERXslIGVu ZGlmICV9Cit7JSBlbmRpZiAlfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxh dGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL2dldF9jb2xsYXRpb25zLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVzL2RvbWFpbnMvc3Fs LzkuMV9wbHVzL2dldF9jb2xsYXRpb25zLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi42YTEzYTY1Ci0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlucy9z cWwvOS4xX3BsdXMvZ2V0X2NvbGxhdGlvbnMuc3FsCkBAIC0wLDAgKzEsNyBA QAorU0VMRUNUIC0tbnNwbmFtZSwgY29sbG5hbWUsCisgIENBU0UgV0hFTiBs ZW5ndGgobnNwbmFtZSkgPiAwIEFORCBsZW5ndGgoY29sbG5hbWUpID4gMCAg VEhFTgorICBjb25jYXQobnNwbmFtZSwgJy4iJywgY29sbG5hbWUsJyInKQor ICBFTFNFICcnIEVORCBBUyBjb3B5X2NvbGxhdGlvbgorRlJPTSBwZ19jb2xs YXRpb24gYywgcGdfbmFtZXNwYWNlIG4KK1dIRVJFIGMuY29sbG5hbWVzcGFj ZT1uLm9pZAorT1JERVIgQlkgbnNwbmFtZSwgY29sbG5hbWU7CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5z L3NxbC85LjFfcGx1cy9nZXRfY29uc3RyYWludHMuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4xX3BsdXMv Z2V0X2NvbnN0cmFpbnRzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5lMjY5OThmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4xX3Bs dXMvZ2V0X2NvbnN0cmFpbnRzLnNxbApAQCAtMCwwICsxLDE4IEBACitTRUxF Q1QgJ1RBQkxFJyBBUyBvYmplY3RraW5kLCBjLm9pZCwgY29ubmFtZSwgcmVs bmFtZSwgbnNwbmFtZSwgZGVzY3JpcHRpb24sCisgIHBnX2dldF9leHByKGNv bmJpbiwgY29ucmVsaWQsIHRydWUpIGFzIGNvbnNyYywgY29ubm9pbmhlcml0 LCBjb252YWxpZGF0ZWQgIEZST00gcGdfY29uc3RyYWludCBjCitKT0lOIHBn X2NsYXNzIGNsIE9OIGNsLm9pZD1jb25yZWxpZAorSk9JTiBwZ19uYW1lc3Bh Y2UgbmwgT04gbmwub2lkPXJlbG5hbWVzcGFjZQorTEVGVCBPVVRFUiBKT0lO IHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1jLm9pZCBBTkQg ZGVzLmNsYXNzb2lkPSdwZ19jb25zdHJhaW50Jzo6cmVnY2xhc3MpCitXSEVS RSBjb250eXBlID0gJ2MnIEFORCBjb25yZWxpZCA9ICB7e2RvaWR9fTo6b2lk CitVTklPTgorU0VMRUNUICdET01BSU4nIEFTIG9iamVjdGtpbmQsIGMub2lk LCBjb25uYW1lLCB0eXBuYW1lIGFzIHJlbG5hbWUsIG5zcG5hbWUsIGRlc2Ny aXB0aW9uLAorICByZWdleHBfcmVwbGFjZShwZ19nZXRfY29uc3RyYWludGRl ZihjLm9pZCwgdHJ1ZSksIEUnQ0hFQ0sgXFwoKC4qKVxcKS4qJywgRSdcXDEn KSBhcyBjb25zcmMKKywgY29ubm9pbmhlcml0LCBjb252YWxpZGF0ZWQKK0ZS T00gcGdfY29uc3RyYWludCBjCitKT0lOIHBnX3R5cGUgdCBPTiB0Lm9pZD1j b250eXBpZAorSk9JTiBwZ19uYW1lc3BhY2UgbmwgT04gbmwub2lkPXR5cG5h bWVzcGFjZQorCitMRUZUIE9VVEVSIEpPSU4gcGdfZGVzY3JpcHRpb24gZGVz IE9OIChkZXMub2Jqb2lkPXQub2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX2Nv bnN0cmFpbnQnOjpyZWdjbGFzcykKKworIFdIRVJFIGNvbnR5cGUgPSAnYycg QU5EIGNvbnR5cGlkID0gIHt7ZG9pZH19OjpvaWQKK09SREVSIEJZIGNvbm5h bWUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85 LjFfcGx1cy9nZXRfb2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMv dGVtcGxhdGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL2dldF9vaWQuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjMjZkNmIKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBs YXRlcy9kb21haW5zL3NxbC85LjFfcGx1cy9nZXRfb2lkLnNxbApAQCAtMCww ICsxLDEwIEBACitTRUxFQ1QKKyAgZC5vaWQsIGQudHlwbmFtZSBhcyBuYW1l CitGUk9NCisgIHBnX3R5cGUgZAorSk9JTgorICBwZ19uYW1lc3BhY2UgYm4g T04gYm4ub2lkPWQudHlwbmFtZXNwYWNlCitXSEVSRQorICBibi5uc3BuYW1l ID0ge3sgYmFzZW5zcHxxdExpdGVyYWwgfX0KKyAgQU5EIGQudHlwbmFtZT17 eyBuYW1lfHF0TGl0ZXJhbCB9fQorCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85LjFfcGx1cy9n ZXRfc2NoZW1hcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBs YXRlcy9kb21haW5zL3NxbC85LjFfcGx1cy9nZXRfc2NoZW1hcy5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODJkY2ZjYgotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxh dGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL2dldF9zY2hlbWFzLnNxbApAQCAt MCwwICsxLDIxIEBACitTRUxFQ1QKKyAgbnNwLm5zcG5hbWUKK0ZST00KKyAg cGdfbmFtZXNwYWNlIG5zcAorICBMRUZUIE9VVEVSIEpPSU4gcGdfZGVzY3Jp cHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPW5zcC5vaWQgQU5EIGRlcy5jbGFz c29pZD0ncGdfbmFtZXNwYWNlJzo6cmVnY2xhc3MpCisgIExFRlQgT1VURVIg Sk9JTiBwZ19jYXRhbG9nLnBnX2RlZmF1bHRfYWNsIGRhY2wgT04gKGRhY2wu ZGVmYWNsbmFtZXNwYWNlID0gbnNwLm9pZCkKK1dIRVJFCisgIE5PVCAoKG5z cG5hbWUgPSAncGdfY2F0YWxvZycgQU5EIEVYSVNUUworICAgIChTRUxFQ1Qg MSBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAncGdfY2xhc3MnIEFO RCByZWxuYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlUIDEpKSBPUgorICAobnNw bmFtZSA9ICdwZ2FnZW50JyBBTkQgRVhJU1RTCisgICAgKFNFTEVDVCAxIEZS T00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICdwZ2Ffam9iJyBBTkQgcmVs bmFtZXNwYWNlID0gbnNwLm9pZCBMSU1JVCAxKSkgT1IKKyAgKG5zcG5hbWUg PSAnaW5mb3JtYXRpb25fc2NoZW1hJyBBTkQgRVhJU1RTCisgICAgKFNFTEVD VCAxIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICd0YWJsZXMnIEFO RCByZWxuYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlUIDEpKSBPUgorICAobnNw bmFtZSBMSUtFICdfJScgQU5EIEVYSVNUUworICAgICAgKFNFTEVDVCAxIEZS T00gcGdfcHJvYyBXSEVSRSBwcm9uYW1lPSdzbG9ueXZlcnNpb24nIEFORCBw cm9uYW1lc3BhY2UgPSBuc3Aub2lkIExJTUlUIDEpKQorICApQU5ECisgIG5z cG5hbWUgTk9UIExJS0UgRSdwZ1xcdGVtcFxcJScgQU5ECisgIG5zcG5hbWUg Tk9UIExJS0UgRSdwZ1xcdG9hc3RfdGVtcFxcJScgQU5ECisgIC0tIEFEREVE OiBCZWNhdXNlIFdlIG5lZWQgdG8gb21pdCBzeXN0ZW0gc2NoZW1hIGV4Y2Vw dCB0aGUgb25lIG9uIHdoaWNoIHdlIGFyZSB0cnlpbmcgdG8gIGNyZWF0ZSBj b2xsYXRpb24KKyAgKCBuc3Aub2lkID0ge3sgc2NpZCB9fSBPUiBuc3BuYW1l IE5PVCBMSUtFIEUncGdcXF8lJyApCitPUkRFUiBCWSBuc3BuYW1lOwpcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVz L2dldF90eXBlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBs YXRlcy9kb21haW5zL3NxbC85LjFfcGx1cy9nZXRfdHlwZXMuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0NzMwNTYKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRl cy9kb21haW5zL3NxbC85LjFfcGx1cy9nZXRfdHlwZXMuc3FsCkBAIC0wLDAg KzEsNyBAQAorU0VMRUNUICogRlJPTSAoU0VMRUNUIGZvcm1hdF90eXBlKHQu b2lkLE5VTEwpIEFTIHR5cG5hbWUsIENBU0UgV0hFTiB0eXBlbGVtID4gMCBU SEVOIHR5cGVsZW0gRUxTRSB0Lm9pZCBFTkQgYXMgZWxlbW9pZCwgdHlwbGVu LCB0eXB0eXBlLCB0Lm9pZCwgbnNwbmFtZSwKKyAgICAgICAoU0VMRUNUIENP VU5UKDEpIEZST00gcGdfdHlwZSB0MiBXSEVSRSB0Mi50eXBuYW1lID0gdC50 eXBuYW1lKSA+IDEgQVMgaXNkdXAKKyAgRlJPTSBwZ190eXBlIHQKKyAgSk9J TiBwZ19uYW1lc3BhY2UgbnNwIE9OIHR5cG5hbWVzcGFjZT1uc3Aub2lkCisg V0hFUkUgKE5PVCAodHlwbmFtZSA9ICd1bmtub3duJyBBTkQgbnNwbmFtZSA9 ICdwZ19jYXRhbG9nJykpIEFORCB0eXBpc2RlZmluZWQgQU5EIHR5cHR5cGUg SU4gKCdiJywgJ2MnLCAnZScsICdyJylBTkQgTk9UIEVYSVNUUworIChzZWxl Y3QgMSBmcm9tIHBnX2NsYXNzIHdoZXJlIHJlbG5hbWVzcGFjZT10eXBuYW1l c3BhY2UgYW5kIHJlbG5hbWUgPSB0eXBuYW1lIGFuZCByZWxraW5kICE9ICdj JykgQU5EICh0eXBuYW1lIG5vdCBsaWtlICdfJScgT1IgTk9UIEVYSVNUUyAo c2VsZWN0IDEgZnJvbSBwZ19jbGFzcyB3aGVyZSByZWxuYW1lc3BhY2U9dHlw bmFtZXNwYWNlIGFuZCByZWxuYW1lID0gc3Vic3RyaW5nKHR5cG5hbWUgZnJv bSAyKTo6bmFtZSBhbmQgcmVsa2luZCAhPSAnYycpKSAKKyAgKSBBUyBkdW1t eSBPUkRFUiBCWSBuc3BuYW1lIDw+ICdwZ19jYXRhbG9nJywgbnNwbmFtZSA8 PiAncHVibGljJywgbnNwbmFtZSwgMQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4xX3BsdXMv cHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBs YXRlcy9kb21haW5zL3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MDFkMDUzCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1wbGF0 ZXMvZG9tYWlucy9zcWwvOS4xX3BsdXMvcHJvcGVydGllcy5zcWwKQEAgLTAs MCArMSwyMCBAQAorU0VMRUNUIGQub2lkLCBkLnR5cG5hbWUgYXMgbmFtZSwg ZC50eXBiYXNldHlwZSwgZm9ybWF0X3R5cGUoYi5vaWQsTlVMTCkgYXMgYmFz ZXR5cGUsIHBnX2dldF91c2VyYnlpZChkLnR5cG93bmVyKSBhcyBvd25lciwK KyAgYy5vaWQgQVMgY29sbG9pZCwKKyAgQ0FTRSBXSEVOIGxlbmd0aChjbi5u c3BuYW1lKSA+IDAgQU5EIGxlbmd0aChjLmNvbGxuYW1lKSA+IDAgVEhFTgor ICBjb25jYXQoY24ubnNwbmFtZSwgJy4iJywgYy5jb2xsbmFtZSwnIicpCisg IEVMU0UgJycgRU5EIEFTIGNvbGxuYW1lLAorICBkLnR5cGxlbiwgZC50eXB0 eXBtb2QsIGQudHlwbm90bnVsbCwgZC50eXBkZWZhdWx0LCBkLnR5cG5kaW1z LCBkLnR5cGRlbGltLCBibi5uc3BuYW1lIGFzIGJhc2Vuc3AsCisgIGRlc2Ny aXB0aW9uLCAoU0VMRUNUIENPVU5UKDEpIEZST00gcGdfdHlwZSB0MiBXSEVS RSB0Mi50eXBuYW1lPWQudHlwbmFtZSkgPiAxIEFTIGRvbWlzZHVwLAorICAo U0VMRUNUIENPVU5UKDEpIEZST00gcGdfdHlwZSB0MyBXSEVSRSB0My50eXBu YW1lPWIudHlwbmFtZSkgPiAxIEFTIGJhc2Vpc2R1cCwKKyAgKFNFTEVDVCBh cnJheV9hZ2cocHJvdmlkZXIgfHwgJz0nIHx8IGxhYmVsKSBGUk9NIHBnX3No c2VjbGFiZWwgc2wxIFdIRVJFIHNsMS5vYmpvaWQ9ZC5vaWQpIEFTIHNlY2xh YmVscworRlJPTSBwZ190eXBlIGQKKyAgSk9JTiBwZ190eXBlIGIgT04gYi5v aWQgPSBkLnR5cGJhc2V0eXBlCisgIEpPSU4gcGdfbmFtZXNwYWNlIGJuIE9O IGJuLm9pZD1kLnR5cG5hbWVzcGFjZQorICBMRUZUIE9VVEVSIEpPSU4gcGdf ZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPWQub2lkIEFORCBkZXMu Y2xhc3NvaWQ9J3BnX3R5cGUnOjpyZWdjbGFzcykKKyAgTEVGVCBPVVRFUiBK T0lOIHBnX2NvbGxhdGlvbiBjIE9OIGQudHlwY29sbGF0aW9uPWMub2lkCisg IExFRlQgT1VURVIgSk9JTiBwZ19uYW1lc3BhY2UgY24gT04gYy5jb2xsbmFt ZXNwYWNlPWNuLm9pZAorV0hFUkUgZC50eXBuYW1lc3BhY2UgPSB7e3NjaWR9 fTo6b2lkCit7JSBpZiBkb2lkICV9CisgIEFORCBkLm9pZD17e2RvaWR9fTo6 aW50Cit7JSBlbmRpZiAlfQorT1JERVIgQlkgZC50eXBuYW1lCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5z L3NxbC85LjFfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9t YWlucy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4xX3BsdXMvdXBkYXRlLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjljMDhm Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90 ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4xX3BsdXMvdXBkYXRlLnNxbApAQCAt MCwwICsxLDYxIEBACit7JSBpZiBkYXRhICV9CisgIHslIHNldCBuYW1lID0g b19kYXRhLm5hbWUgJX0KKyAgeyUgaWYgZGF0YS5uYW1lICV9CisgICAgeyUg aWYgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CisgICAgICBBTFRFUiBE T01BSU4ge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBvX2RhdGEu bmFtZSkgfX0KKyAgICAgICAgUkVOQU1FIFRPIHt7IGNvbm58cXRJZGVudChk YXRhLm5hbWUpIH19OworICAgICAgICB7JSBzZXQgbmFtZSA9IGRhdGEubmFt ZSAlfQorICAgIHslIGVuZGlmICV9CisgIHslIGVuZGlmICV9CisKKyAgeyUg aWYgbm90IGRhdGEudHlwbm90bnVsbCAlfQorICAgIEFMVEVSIERPTUFJTiB7 eyBjb25ufHF0SWRlbnQob19kYXRhLmJhc2Vuc3AsIG5hbWUpIH19CisgICAg ICBEUk9QIE5PVCBOVUxMOworICB7JSBlbmRpZiAlfQorCisgIHslIGlmIGRh dGEudHlwZGVmYXVsdCAlfQorICAgIEFMVEVSIERPTUFJTiB7eyBjb25ufHF0 SWRlbnQob19kYXRhLmJhc2Vuc3AsIG5hbWUpIH19CisgICAgICBTRVQgREVG QVVMVCB7eyBkYXRhLnR5cGRlZmF1bHR8cXRMaXRlcmFsIH19OworICB7JSBl bmRpZiAlfQorCisgIHslIGlmIGRhdGEub3duZXIgJX0KKyAgICBBTFRFUiBE T01BSU4ge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSB9 fQorICAgICAgT1dORVIgVE8ge3sgZGF0YS5vd25lciB9fTsKKyAgeyUgZW5k aWYgJX0KKworICB7JSBpZiBkYXRhLmNvbnN0cmFpbnRzICV9CisgICAgeyUg Zm9yIGMgaW4gZGF0YS5jb25zdHJhaW50cy5hZGRlZCAlfQorICAgICAgICBB TFRFUiBET01BSU4ge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBu YW1lKSB9fQorICAgICAgICBBREQgQ09OU1RSQUlOVCB7eyBjLmNvbm5hbWUg fX0gQ0hFQ0sgKHt7IGMuY29uc3JjIH19ICkKKyAgICAgICAgeyUgaWYgYy5j b252YWxpZGF0ZWQgJX0gTk9UIFZBTElEIHslIGVuZGlmICV9IHslIGlmIGMu Y29ubm9pbmhlcml0ICV9IE5PIElOSEVSSVQgeyUgZW5kaWYgJX07CisgICAg eyUgZW5kZm9yICV9CisgIHslIGVuZGlmICV9CisKKyAgeyUgc2V0IHNlY2xh YmVscyA9IGRhdGEuc2VjbGFiZWxzICV9CisgIHslIGlmICdkZWxldGVkJyBp biBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxldGVkfGxlbmd0aCA+IDAg JX0KKyAgICB7JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVsZXRlZCAlfQorICAg IHt7IFNFQ0xBQkxFLkRST1AoY29ubiwgJ0RPTUFJTicsIGNvbm58cXRJZGVu dChvX2RhdGEuYmFzZW5zcCwgbmFtZSksIHIucHJvdmlkZXIpIH19CisgICAg eyUgZW5kZm9yICV9CisgIHslIGVuZGlmICV9CisgIHslIGlmICdhZGRlZCcg aW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAl fQorICAgIHslIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQorICAgIHt7 IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdET01BSU4nLCBjb25ufHF0SWRlbnQo b19kYXRhLmJhc2Vuc3AsIG5hbWUpLCByLnByb3ZpZGVyLCByLmxhYmVsKSB9 fQorICAgIHslIGVuZGZvciAlfQorICB7JSBlbmRpZiAlfQorICB7JSBpZiAn Y2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxs ZW5ndGggPiAwICV9CisgICAgeyUgZm9yIHIgaW4gc2VjbGFiZWxzLmNoYW5n ZWQgJX0KKyAgICB7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnRE9NQUlOJywg Y29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSwgci5wcm92aWRl ciwgci5sYWJlbCkgfX0KKyAgICB7JSBlbmRmb3IgJX0KKyAgeyUgZW5kaWYg JX0KKworICB7JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9CisgICAgQ09NTUVO VCBPTiBET01BSU4ge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBu YW1lKSB9fQorICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFs IH19OworICB7JSBlbmRpZiAlfQorCisgIHslIGlmIGRhdGEuYmFzZW5zcCAl fQorICAgIEFMVEVSIERPTUFJTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLmJh c2Vuc3AsIG5hbWUpIH19CisgICAgICBTRVQgU0NIRU1BIHt7IGNvbm58cXRJ ZGVudChkYXRhLmJhc2Vuc3ApIH19OworICB7JSBlbmRpZiAlfQorCit7JSBl bmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2Jh Y2tmb3JtLnBnYWRtaW4uanMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvYmFj a2Zvcm0ucGdhZG1pbi5qcwppbmRleCA4ODM3ZmE5Li42N2E4NzA1IDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvYmFja2Zvcm0ucGdhZG1p bi5qcworKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvYmFja2Zvcm0ucGdh ZG1pbi5qcwpAQCAtOTk4LDkgKzk5OCw5IEBACiAgICAgICB9CiAKICAgICAg IC8vIEluc2VydCBFZGl0IENlbGwgaW50byBHcmlkCi0gICAgICBpZiAoZGF0 YS5kaXNhYmxlZCA9PSBmYWxzZSAmJiBkYXRhLmNhbkVkaXQpIHsKKyAgICAg IGlmIChkYXRhLmRpc2FibGVkID09IGZhbHNlICYmIGRhdGEuY2FuRWRpdCB8 fCBkYXRhLmNhbkFkZCkgewogICAgICAgICAgIHZhciBlZGl0Q2VsbCA9IEJh Y2tncmlkLkV4dGVuc2lvbi5PYmplY3RDZWxsLmV4dGVuZCh7Ci0gICAgICAg ICAgICBzY2hlbWE6IGdyaWRTY2hlbWEuc2NoZW1hCisgICAgICAgICAgICBz Y2hlbWE6IGdyaWRTY2hlbWEuc2NoZW1hLCBlZGl0YWJsZTogZmFsc2UKICAg ICAgICAgICB9KTsKIAogICAgICAgICAgIGdyaWRTY2hlbWEuY29sdW1ucy51 bnNoaWZ0KHsKQEAgLTEwNDMsNiArMTA0Myw3IEBACiAgICAgICAgIGUucHJl dmVudERlZmF1bHQoKTsKICAgICAgICAgZ3JpZC5pbnNlcnRSb3coe30pOwog ICAgICAgICB2YXIgbmV3Um93ID0gJChncmlkLmJvZHkucm93c1tjb2xsZWN0 aW9uLmxlbmd0aCAtIDFdLiRlbCk7CisgICAgICAgIGNvbnNvbGUubG9nKG5l d1Jvdyk7CiAgICAgICAgIG5ld1Jvdy5hdHRyKCJjbGFzcyIsICJuZXciKS5j bGljayhmdW5jdGlvbihlKSB7CiAgICAgICAgICAgJCh0aGlzKS5hdHRyKCJj bGFzcyIsICIiKTsKICAgICAgICAgfSk7Cg== --001a11c3780c5f46640529bcb4ca 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 --001a11c3780c5f46640529bcb4ca--