Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84) (envelope-from ) id 1aeQFE-0007iT-1h for pgadmin-hackers@arkaria.postgresql.org; Fri, 11 Mar 2016 16:48:56 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aeQFD-0007tu-Hf for pgadmin-hackers@arkaria.postgresql.org; Fri, 11 Mar 2016 16:48:55 +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 1aeQEF-0006wE-9T for pgadmin-hackers@postgresql.org; Fri, 11 Mar 2016 16:47:55 +0000 Received: from mail-ig0-x22c.google.com ([2607:f8b0:4001:c05::22c]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1aeQEA-0005nn-Du for pgadmin-hackers@postgresql.org; Fri, 11 Mar 2016 16:47:54 +0000 Received: by mail-ig0-x22c.google.com with SMTP id ig19so15771404igb.1 for ; Fri, 11 Mar 2016 08:47:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pgadmin-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=K97h9sxkWwntSZKy7SuhYBSITkY/xKd1AbVnCDHv/ZI=; b=Lvkq9S4L7I3RSfJqDJ2t/skC6QZiYmcBaiD0VwJfGpaeoWkZGIJCijFceRblpSt4Jb 3kLiEBcpXZdTs4Jd3mGnFCKEZ9QZpJxpLoHZmm7OLJcvgaIJgs37uLW4ROgJBdIJjb8M 5ED5jjucq6DM5i03A1sYkBtSfJDvPU/gX43QQy1v+AtIf6hRj9BtUznhVuXsD4tMWm76 j+enxshl/2ZIIHO4YBsdr0Te6hlv7d9va8Skhd4v3W8koBoP+I8qjvJqxW14eZMyzr28 LIJ0rxD9ERCJI50QEJIAWmEK3W1HogsyGJbVbYswtWv3bLlje9dyQKFbPdQ+mde0m72G JXDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=K97h9sxkWwntSZKy7SuhYBSITkY/xKd1AbVnCDHv/ZI=; b=R7tGigN8Xqt5zYIU8w9cJeC/9ah/p3Yzc1MrU1A0soNc/UZtiZHORIcTA7e+58GYXQ CSuEFQ+2dAwXnpZOWX8Qpg4Fh4IEbbRE8MSOI1tN0L/2PtRxMhXqvcurtIHvAyVg4i/O 7fuhxL9EEUzC0KeSWtQ/SsD7IwHawwrjTifAYJsIdGXE6LB31LYY7eYog6nV7QG4Qcvw 9ajUZFRFUS/wW7XxPxsLhfO+5tNaHy/j2OuZwi4619FSHI6eJ5MCV/9yWRYTh3/y68xb GhVFrq37fPXtAgOF/cr7K2C7eQigTF+1+K3FuzOx6XYdrezhCxGyrJOEfr37XI8H6yPO /MKg== X-Gm-Message-State: AD7BkJJHKsEpa7R8qyKy6ExDPd7SfQb2wSQfpYwHvSTnFwIoKJ9RM+gm+40TND8mWsPeCGTbHb1Vwi6FhPzz1Q== MIME-Version: 1.0 X-Received: by 10.50.73.133 with SMTP id l5mr4845819igv.69.1457714868360; Fri, 11 Mar 2016 08:47:48 -0800 (PST) Received: by 10.64.213.73 with HTTP; Fri, 11 Mar 2016 08:47:48 -0800 (PST) In-Reply-To: References: Date: Fri, 11 Mar 2016 16:47:48 +0000 Message-ID: Subject: Re: [pgAdmin4][Patch]: Functions/Procedures Module From: Dave Page To: Khushboo Vashi Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=089e0129483aeace6f052dc8b026 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 --089e0129483aeace6f052dc8b026 Content-Type: text/plain; charset=UTF-8 Hi On Fri, Mar 11, 2016 at 9:34 AM, Khushboo Vashi wrote: > Hi, > > Please find attached patch for the Functions/Procedures Module. > > To test this patch, "Unique collection Control and Variable Control Fixes" > Patch submitted by me needs to be applied first. Hi, This is looking pretty good. I did a little bit of cleanup of the SQL formatting, however I think a little more is needed; - When creating a function, we might get the following: ===== CREATE FUNCTION pem.whee(INOUT foo bigint DEFAULT 123) RETURNS bigint AS $BODY$SELECT $1;$BODY$ LANGUAGE 'sql' NOT LEAKPROOF SET backslash_quote='on'; ALTER FUNCTION pem.whee(INOUT foo bigint ) OWNER TO postgres; GRANT ALL ON FUNCTION pem.whee(INOUT foo bigint ) TO pem_user; COMMENT ON FUNCTION pem.whee(INOUT foo bigint ) IS 'whee func'; ===== - Remove the spaces after the argument lists, before the ) - Remove the double blank lines - The opening $BODY$ should be indented - LANGUAGE should be indented - The are two spaces between 'sql' and NOT. - Reverse engineered SQL may look like: ===== -- FUNCTION: pem.whee(INOUT foo bigint) -- DROP FUNCTION pem.whee(INOUT foo bigint); CREATE OR REPLACE FUNCTION pem.whee(INOUT foo bigint DEFAULT 123) RETURNS bigint LANGUAGE sql SET backslash_quote TO 'on' AS $function$SELECT $1;$function$ ===== - We should be consistent with our heredoc markers ($BODY$ vs. $function$) - There's a 1 space indent - This formatting (bar the issues above) is much nicer that the CREATE formatting. I haven't found anything else of note yet, that I haven't fixed in passing (though I have yet to test with PPAS). Updated patch attached. Thanks. -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company --089e0129483aeace6f052dc8b026 Content-Type: application/octet-stream; name="pgadmin4_functions-dave.patch" Content-Disposition: attachment; filename="pgadmin4_functions-dave.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ilnxt35b1 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9fX2luaXRf Xy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9fX2luaXRfXy5weQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzZhZjY2Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL19f aW5pdF9fLnB5CkBAIC0wLDAgKzEsMTI2NiBAQAorIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBU b29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdB ZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVs ZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIiIiSW1wbGVtZW50cyBGdW5j dGlvbnMvUHJvY2VkdXJlcyBOb2RlLiIiIgorCitpbXBvcnQganNvbgoraW1w b3J0IHN5cworaW1wb3J0IHRyYWNlYmFjaworaW1wb3J0IGNvcHkKK2ltcG9y dCByZQorZnJvbSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlLCBtYWtl X3Jlc3BvbnNlLCByZXF1ZXN0LCBqc29uaWZ5LCBcCisgICAgY3VycmVudF9h cHAsIHVybF9mb3IKK2Zyb20gZmxhc2suZXh0LmJhYmVsIGltcG9ydCBnZXR0 ZXh0Citmcm9tIGZ1bmN0b29scyBpbXBvcnQgd3JhcHMKK2Zyb20gcGdhZG1p bi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2UsIFwKKyAg ICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UsIGludGVybmFsX3Nl cnZlcl9lcnJvcgorZnJvbSBwZ2FkbWluLmJyb3dzZXIudXRpbHMgaW1wb3J0 IFBHQ2hpbGROb2RlVmlldworZnJvbSBwZ2FkbWluLmJyb3dzZXIuY29sbGVj dGlvbiBpbXBvcnQgQ29sbGVjdGlvbk5vZGVNb2R1bGUKK2ltcG9ydCBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5z Y2hlbWFzIGFzIHNjaGVtYXMKK2Zyb20gcGdhZG1pbi51dGlscy5hamF4IGlt cG9ydCBwcmVjb25kaXRpb25fcmVxdWlyZWQKK2Zyb20gcGdhZG1pbi51dGls cy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy51dGlscyBpbXBvcnQgcGFyc2Vf cHJpdl9mcm9tX2RiLCBcCisgICAgcGFyc2VfcHJpdl90b19kYgorZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy5zY2hlbWFzLnV0aWxzIGltcG9ydCBcCisgICAgU2NoZW1hQ2hpbGRNb2R1 bGUKK2Zyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUgorZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy51dGlscyBpbXBvcnQgXAorICAgIHBhcnNlX3NlY19sYWJlbHNfZnJv bV9kYiwgcGFyc2VfdmFyaWFibGVzX2Zyb21fZGIKKworCitjbGFzcyBGdW5j dGlvbk1vZHVsZShTY2hlbWFDaGlsZE1vZHVsZSk6CisgICAgIiIiCisgICAg Y2xhc3MgRnVuY3Rpb25Nb2R1bGUoU2NoZW1hQ2hpbGRNb2R1bGUpOgorCisg ICAgICAgIFRoaXMgY2xhc3MgcmVwcmVzZW50cyBUaGUgRnVuY3Rpb25zIE1v ZHVsZS4KKworICAgIE1ldGhvZHM6CisgICAgLS0tLS0tLQorICAgICogX19p bml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAgICAgLSBJbml0aWFsaXplIHRo ZSBGdW5jdGlvbnMgTW9kdWxlLgorCisgICAgKiBnZXRfbm9kZXMoZ2lkLCBz aWQsIGRpZCwgc2NpZCkKKyAgICAgIC0gR2VuZXJhdGUgdGhlIEZ1bmN0aW9u cyBjb2xsZWN0aW9uIG5vZGUuCisKKyAgICAqIG5vZGVfaW5vZGUoKToKKyAg ICAgIC0gUmV0dXJucyBGdW5jdGlvbnMgbm9kZSBhcyBsZWFmIG5vZGUuCisK KyAgICAqIHNjcmlwdF9sb2FkKCkKKyAgICAgIC0gTG9hZCB0aGUgbW9kdWxl IHNjcmlwdCBmb3IgRnVuY3Rpb25zLCB3aGVuIHNjaGVtYSBub2RlIGlzCisg ICAgICAgIGluaXRpYWxpemVkLgorCisgICAgKiBjc3NzbmlwcGV0cygpCisg ICAgICAtIFJldHVybnMgYSBzbmlwcGV0IG9mIGNzcy4KKyAgICAiIiIKKwor ICAgIE5PREVfVFlQRSA9ICdmdW5jdGlvbicKKyAgICBDT0xMRUNUSU9OX0xB QkVMID0gZ2V0dGV4dCgiRnVuY3Rpb25zIikKKworICAgIGRlZiBfX2luaXRf XyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAg ICAgSW5pdGlhbGl6ZSB0aGUgRnVuY3Rpb24gTW9kdWxlLgorICAgICAgICBB cmdzOgorICAgICAgICAgICAgKmFyZ3M6CisgICAgICAgICAgICAqKmt3YXJn czoKKyAgICAgICAgIiIiCisgICAgICAgIHN1cGVyKEZ1bmN0aW9uTW9kdWxl LCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisKKyAgICAgICAg c2VsZi5taW5fdmVyID0gOTAxMDAKKyAgICAgICAgc2VsZi5tYXhfdmVyID0g Tm9uZQorICAgICAgICBzZWxmLnNlcnZlcl90eXBlID0gTm9uZQorCisgICAg ZGVmIGdldF9ub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAg ICAgICAgIiIiCisgICAgICAgIEdlbmVyYXRlIEZ1bmN0aW9ucyBjb2xsZWN0 aW9uIG5vZGUuCisgICAgICAgICIiIgorICAgICAgICB5aWVsZCBzZWxmLmdl bmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlKHNjaWQpCisKKyAgICBA cHJvcGVydHkKKyAgICBkZWYgbm9kZV9pbm9kZShzZWxmKToKKyAgICAgICAg IiIiCisgICAgICAgIE1ha2UgdGhlIG5vZGUgYXMgbGVhZiBub2RlLgorICAg ICAgICBSZXR1cm5zOgorICAgICAgICAgICAgRmFsc2UgYXMgdGhpcyBub2Rl IGRvZXNuJ3QgaGF2ZSBjaGlsZCBub2Rlcy4KKyAgICAgICAgIiIiCisgICAg ICAgIHJldHVybiBGYWxzZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHNj cmlwdF9sb2FkKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgTG9hZCB0 aGUgbW9kdWxlIHNjcmlwdCBmb3IgRnVuY3Rpb25zLCB3aGVuIHRoZQorICAg ICAgICBzY2hlbWEgbm9kZSBpcyBpbml0aWFsaXplZC4KKyAgICAgICAgIiIi CisgICAgICAgIHJldHVybiBzY2hlbWFzLlNjaGVtYU1vZHVsZS5OT0RFX1RZ UEUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBjc3NzbmlwcGV0cyhzZWxm KToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgYSBzbmlwcGV0IG9m IGNzcworICAgICAgICAiIiIKKyAgICAgICAgc25pcHBldHMgPSBbCisgICAg ICAgICAgICByZW5kZXJfdGVtcGxhdGUoImZ1bmN0aW9uL2Nzcy9mdW5jdGlv bi5jc3MiKQorICAgICAgICBdCisgICAgICAgIHNuaXBwZXRzLmV4dGVuZCgK KyAgICAgICAgICAgIHN1cGVyKFNjaGVtYUNoaWxkTW9kdWxlLCBzZWxmKS5j c3NzbmlwcGV0cworICAgICAgICApCisKKyAgICAgICAgcmV0dXJuIHNuaXBw ZXRzCisKK2JsdWVwcmludCA9IEZ1bmN0aW9uTW9kdWxlKF9fbmFtZV9fKQor CisKK2NsYXNzIEZ1bmN0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcpOgorICAg ICIiIgorICAgIGNsYXNzIEZ1bmN0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcp CisKKyAgICBUaGlzIGNsYXNzIGluaGVyaXRzIFBHQ2hpbGROb2RlVmlldyB0 byBnZXQgdGhlIGRpZmZlcmVudCByb3V0ZXMgZm9yCisgICAgdGhlIG1vZHVs ZS4KKworICAgIFRoZSBjbGFzcyBpcyByZXNwb25zaWJsZSB0byBDcmVhdGUs IFJlYWQsIFVwZGF0ZSBhbmQgRGVsZXRlIG9wZXJhdGlvbnMgZm9yCisgICAg dGhlIEZ1bmN0aW9ucy4KKworICAgIE1ldGhvZHM6CisgICAgLS0tLS0tLQor ICAgICogdmFsaWRhdGVfcmVxdWVzdChmKToKKyAgICAgIC0gV29ya3MgYXMg YSBkZWNvcmF0b3IuCisgICAgICAgIFZhbGlkYXRpbmcgcmVxdWVzdCBvbiB0 aGUgcmVxdWVzdCBvZiBjcmVhdGUsIHVwZGF0ZSBhbmQgbW9kaWZpZWQgU1FM LgorCisgICAgKiBtb2R1bGVfanMoKToKKyAgICAgIC0gT3ZlcnJpZGVzIHRo aXMgcHJvcGVydHkgdG8gZGVmaW5lIGphdmFzY3JpcHQgZm9yIEZ1bmN0aW9u cyBub2RlLgorCisgICAgKiBjaGVja19wcmVjb25kaXRpb24oZik6CisgICAg ICAtIFdvcmtzIGFzIGEgZGVjb3JhdG9yLgorICAgICAgLSBDaGVja3MgZGF0 YWJhc2UgY29ubmVjdGlvbiBzdGF0dXMuCisgICAgICAtIEF0dGFjaCBjb25u ZWN0aW9uIG9iamVjdCBhbmQgdGVtcGxhdGUgcGF0aC4KKworICAgICogbGlz dChnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAgIC0gTGlzdCB0aGUgRnVu Y3Rpb25zLgorCisgICAgKiBub2RlcyhnaWQsIHNpZCwgZGlkLCBzY2lkKToK KyAgICAgIC0gUmV0dXJucyBhbGwgdGhlIEZ1bmN0aW9ucyB0byBnZW5lcmF0 ZSBOb2RlcyBpbiB0aGUgYnJvd3Nlci4KKworICAgICogcHJvcGVydGllcyhn aWQsIHNpZCwgZGlkLCBzY2lkLCBmbmlkKToKKyAgICAgIC0gUmV0dXJucyB0 aGUgRnVuY3Rpb25zIHByb3BlcnRpZXMuCisKKyAgICAqIGNyZWF0ZShnaWQs IHNpZCwgZGlkLCBzY2lkKToKKyAgICAgIC0gQ3JlYXRlcyBhIG5ldyBGdW5j dGlvbnMgb2JqZWN0LgorCisgICAgKiB1cGRhdGUoZ2lkLCBzaWQsIGRpZCwg c2NpZCwgZm5pZCk6CisgICAgICAtIFVwZGF0ZXMgdGhlIEZ1bmN0aW9ucyBv YmplY3QuCisKKyAgICAqIGRlbGV0ZShnaWQsIHNpZCwgZGlkLCBzY2lkLCBm bmlkKToKKyAgICAgIC0gRHJvcHMgdGhlIEZ1bmN0aW9ucyBvYmplY3QuCisK KyAgICAqIHNxbChnaWQsIHNpZCwgZGlkLCBzY2lkLCBmbmlkKToKKyAgICAg IC0gUmV0dXJucyB0aGUgU1FMIGZvciB0aGUgRnVuY3Rpb25zIG9iamVjdC4K KworICAgICogbXNxbChnaWQsIHNpZCwgZGlkLCBzY2lkLCBmbmlkPU5vbmUp OgorICAgICAgLSBSZXR1cm5zIHRoZSBtb2RpZmllZCBTUUwuCisKKyAgICAq IGRlcGVuZGVudHMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm5pZCk6CisgICAg ICAtIFJldHVybnMgdGhlIGRlcGVuZGVudHMgZm9yIHRoZSBGdW5jdGlvbnMg b2JqZWN0LgorCisgICAgKiBkZXBlbmRlbmNpZXMoZ2lkLCBzaWQsIGRpZCwg c2NpZCwgZm5pZCk6CisgICAgICAtIFJldHVybnMgdGhlIGRlcGVuZGVuY2ll cyBmb3IgdGhlIEZ1bmN0aW9ucyBvYmplY3QuCisKKyAgICAqIGdldF9sYW5n dWFnZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm5pZD1Ob25lKToKKyAgICAg IC0gUmV0dXJucyBsYW5ndWFnZXMuCisKKyAgICAqIGdldF90eXBlcyhnaWQs IHNpZCwgZGlkLCBzY2lkLCBmbmlkPU5vbmUpOgorICAgICAgLSBSZXR1cm5z IERhdGEgVHlwZXMuCisgICAgIiIiCisKKyAgICBub2RlX3R5cGUgPSBibHVl cHJpbnQubm9kZV90eXBlCisKKyAgICBwYXJlbnRfaWRzID0gWworICAgICAg ICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ2dpZCd9LAorICAgICAgICB7J3R5 cGUnOiAnaW50JywgJ2lkJzogJ3NpZCd9LAorICAgICAgICB7J3R5cGUnOiAn aW50JywgJ2lkJzogJ2RpZCd9LAorICAgICAgICB7J3R5cGUnOiAnaW50Jywg J2lkJzogJ3NjaWQnfQorICAgIF0KKyAgICBpZHMgPSBbCisgICAgICAgIHsn dHlwZSc6ICdpbnQnLCAnaWQnOiAnZm5pZCd9CisgICAgXQorCisgICAgb3Bl cmF0aW9ucyA9IGRpY3QoeworICAgICAgICAnb2JqJzogWworICAgICAgICAg ICAgeydnZXQnOiAncHJvcGVydGllcycsICdkZWxldGUnOiAnZGVsZXRlJywg J3B1dCc6ICd1cGRhdGUnfSwKKyAgICAgICAgICAgIHsnZ2V0JzogJ2xpc3Qn LCAncG9zdCc6ICdjcmVhdGUnfQorICAgICAgICBdLAorICAgICAgICAnZGVs ZXRlJzogW3snZGVsZXRlJzogJ2RlbGV0ZSd9XSwKKyAgICAgICAgJ2NoaWxk cmVuJzogW3snZ2V0JzogJ2NoaWxkcmVuJ31dLAorICAgICAgICAnbm9kZXMn OiBbeydnZXQnOiAnbm9kZSd9LCB7J2dldCc6ICdub2Rlcyd9XSwKKyAgICAg ICAgJ3NxbCc6IFt7J2dldCc6ICdzcWwnfV0sCisgICAgICAgICdtc3FsJzog W3snZ2V0JzogJ21zcWwnfSwgeydnZXQnOiAnbXNxbCd9XSwKKyAgICAgICAg J3N0YXRzJzogW3snZ2V0JzogJ3N0YXRpc3RpY3MnfV0sCisgICAgICAgICdk ZXBlbmRlbmN5JzogW3snZ2V0JzogJ2RlcGVuZGVuY2llcyd9XSwKKyAgICAg ICAgJ2RlcGVuZGVudCc6IFt7J2dldCc6ICdkZXBlbmRlbnRzJ31dLAorICAg ICAgICAnbW9kdWxlLmpzJzogW3t9LCB7fSwgeydnZXQnOiAnbW9kdWxlX2pz J31dLAorICAgICAgICAnZ2V0X3R5cGVzJzogW3snZ2V0JzogJ2dldF90eXBl cyd9LCB7J2dldCc6ICdnZXRfdHlwZXMnfV0sCisgICAgICAgICdnZXRfbGFu Z3VhZ2VzJzogW3snZ2V0JzogJ2dldF9sYW5ndWFnZXMnfSwgeydnZXQnOiAn Z2V0X2xhbmd1YWdlcyd9XSwKKyAgICAgICAgJ3ZvcHRzJzogW3t9LCB7J2dl dCc6ICd2YXJpYWJsZV9vcHRpb25zJ31dCisgICAgfSkKKworICAgIEBwcm9w ZXJ0eQorICAgIGRlZiByZXF1aXJlZF9hcmdzKHNlbGYpOgorICAgICAgICAi IiIKKyAgICAgICAgUmV0dXJucyBSZXF1aXJlZCBhcmd1bWVudHMgZm9yIGZ1 bmN0aW9ucyBub2RlLgorICAgICAgICBXaGVyZQorICAgICAgICAgICAgUmVx dWlyZWQgQXJnczoKKyAgICAgICAgICAgICAgICBuYW1lOiAgICAgICAgICAg TmFtZSBvZiB0aGUgRnVuY3Rpb24KKyAgICAgICAgICAgICAgICBmdW5jb3du ZXI6ICAgICAgRnVuY3Rpb24gT3duZXIKKyAgICAgICAgICAgICAgICBwcm9u YW1lc3BhY2U6ICAgRnVuY3Rpb24gTmFtZXNwYWNlCisgICAgICAgICAgICAg ICAgcHJvcmV0dHlwZW5hbWU6IEZ1bmN0aW9uIFJldHVybiBUeXBlCisgICAg ICAgICAgICAgICAgbGFubmFtZTogICAgICAgIEZ1bmN0aW9uIExhbmd1YWdl IE5hbWUKKyAgICAgICAgICAgICAgICBwcm9zcmM6ICAgICAgICAgRnVuY3Rp b24gQ29kZQorICAgICAgICAgICAgICAgIHByb2JpbjogICAgICAgICBGdW5j dGlvbiBPYmplY3QgRmlsZQorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJu IFsKKyAgICAgICAgICAgICduYW1lJywKKyAgICAgICAgICAgICdmdW5jb3du ZXInLAorICAgICAgICAgICAgJ3Byb25hbWVzcGFjZScsCisgICAgICAgICAg ICAncHJvcmV0dHlwZW5hbWUnLAorICAgICAgICAgICAgJ2xhbm5hbWUnLAor ICAgICAgICAgICAgJ3Byb3NyYycsCisgICAgICAgICAgICAncHJvYmluJwor ICAgICAgICBdCisKKyAgICBkZWYgdmFsaWRhdGVfcmVxdWVzdChmKToKKyAg ICAgICAgIiIiCisgICAgICAgIFdvcmtzIGFzIGEgZGVjb3JhdG9yLgorICAg ICAgICBWYWxpZGF0aW5nIHJlcXVlc3Qgb24gdGhlIHJlcXVlc3Qgb2YgY3Jl YXRlLCB1cGRhdGUgYW5kIG1vZGlmaWVkIFNRTC4KKyAgICAgICAgIiIiCisK KyAgICAgICAgQHdyYXBzKGYpCisgICAgICAgIGRlZiB3cmFwKHNlbGYsICoq a3dhcmdzKToKKworICAgICAgICAgICAgZGF0YSA9IHt9CisgICAgICAgICAg ICBpZiByZXF1ZXN0LmRhdGE6CisgICAgICAgICAgICAgICAgcmVxID0ganNv bi5sb2FkcyhyZXF1ZXN0LmRhdGEpCisgICAgICAgICAgICBlbHNlOgorICAg ICAgICAgICAgICAgIHJlcSA9IHJlcXVlc3QuYXJncyBvciByZXF1ZXN0LmZv cm0KKworICAgICAgICAgICAgaWYgJ2ZuaWQnIG5vdCBpbiBrd2FyZ3M6CisK KyAgICAgICAgICAgICAgICBmb3IgYXJnIGluIHNlbGYucmVxdWlyZWRfYXJn czoKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFyZyBub3QgaW4gcmVxIG9y IHJlcVthcmddID09ICcnKSBvclwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoYXJnID09ICdwcm9iaW4nIGFuZCByZXFbJ2xhbm5hbWUnXSA9PSAn YycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIChhcmcgbm90 IGluIHJlcSBvciByZXFbYXJnXSA9PSAnJykpOgorICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdGF0dXM9NDEwLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBlcnJvcm1zZz1nZXR0ZXh0KAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiQ291bGRuJ3QgZmluZCB0aGUgcmVxdWlyZWQg cGFyYW1ldGVyIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KCVzKS4iICUgYXJnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQor ICAgICAgICAgICAgICAgICAgICAgICAgKQorCisgICAgICAgICAgICB0cnk6 CisgICAgICAgICAgICAgICAgbGlzdF9wYXJhbXMgPSBbXQorICAgICAgICAg ICAgICAgIGlmIHJlcXVlc3QubWV0aG9kID09ICdHRVQnOgorICAgICAgICAg ICAgICAgICAgICBsaXN0X3BhcmFtcyA9IFsnYXJndW1lbnRzJywgJ3Zhcmlh YmxlcycsICdwcm9hY2wnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnc2VjbGFiZWxzJywgJ2FjbCddCisKKyAgICAgICAgICAgICAg ICBmb3Iga2V5IGluIHJlcToKKyAgICAgICAgICAgICAgICAgICAgaWYga2V5 IGluIGxpc3RfcGFyYW1zIGFuZCByZXFba2V5XSAhPSAnJyBcCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYW5kIHJlcVtrZXldIGlzIG5vdCBOb25l OgorICAgICAgICAgICAgICAgICAgICAgICAgIyBDb3ZlcnRzIHN0cmluZyBp bnRvIHB5dGhvbiBsaXN0IGFzIGV4cGVjdGVkLgorICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YVtrZXldID0ganNvbi5sb2FkcyhyZXFba2V5XSkKKyAg ICAgICAgICAgICAgICAgICAgZWxpZiAoCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAga2V5ID09ICdwcm9yZXRzZXQnIG9yIGtleSA9PSAncHJvaXNz dHJpY3QnIG9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID09 ICdwcm9zZWNkZWYnIG9yIGtleSA9PSAncHJvaXN3aW5kb3cnIG9yCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAga2V5ID09ICdwcm9sZWFrcHJvb2Yn CisgICAgICAgICAgICAgICAgICAgICk6CisgICAgICAgICAgICAgICAgICAg ICAgICBkYXRhW2tleV0gPSBUcnVlIGlmICgKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXFba2V5XSA9PSAndHJ1ZScgb3IgcmVxW2tleV0gaXMg VHJ1ZSlcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBGYWxz ZSBpZiAocmVxW2tleV0gPT0gJ2ZhbHNlJyBvcgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcVtrZXldIGlzIEZhbHNl KSBlbHNlICcnCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAg ICAgICAgICAgICAgICAgICBkYXRhW2tleV0gPSByZXFba2V5XQorCisgICAg ICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAg ICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIo ZSkpCisKKyAgICAgICAgICAgIHNlbGYucmVxdWVzdCA9IGRhdGEKKyAgICAg ICAgICAgIHJldHVybiBmKHNlbGYsICoqa3dhcmdzKQorCisgICAgICAgIHJl dHVybiB3cmFwCisKKyAgICBkZWYgbW9kdWxlX2pzKHNlbGYpOgorICAgICAg ICAiIiIKKyAgICAgICAgTG9hZCBKUyBmaWxlIChmdW5jdGlvbnMuanMpIGZv ciB0aGlzIG1vZHVsZS4KKyAgICAgICAgIiIiCisKKyAgICAgICAgcmV0dXJu IG1ha2VfcmVzcG9uc2UoCisgICAgICAgICAgICByZW5kZXJfdGVtcGxhdGUo CisgICAgICAgICAgICAgICAgImZ1bmN0aW9uL2pzL2Z1bmN0aW9ucy5qcyIs CisgICAgICAgICAgICAgICAgXz1nZXR0ZXh0CisgICAgICAgICAgICApLAor ICAgICAgICAgICAgMjAwLCB7J0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlv bi94LWphdmFzY3JpcHQnfQorICAgICAgICApCisKKyAgICBkZWYgY2hlY2tf cHJlY29uZGl0aW9uKGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV29ya3Mg YXMgYSBkZWNvcmF0b3IuCisgICAgICAgIENoZWNrcyB0aGUgZGF0YWJhc2Ug Y29ubmVjdGlvbiBzdGF0dXMuCisgICAgICAgIEF0dGFjaGVzIHRoZSBjb25u ZWN0aW9uIG9iamVjdCBhbmQgdGVtcGxhdGUgcGF0aCB0byB0aGUgY2xhc3Mg b2JqZWN0LgorICAgICAgICAiIiIKKworICAgICAgICBAd3JhcHMoZikKKyAg ICAgICAgZGVmIHdyYXAoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAg IHNlbGYgPSBhcmdzWzBdCisgICAgICAgICAgICBkcml2ZXIgPSBnZXRfZHJp dmVyKFBHX0RFRkFVTFRfRFJJVkVSKQorICAgICAgICAgICAgc2VsZi5tYW5h Z2VyID0gZHJpdmVyLmNvbm5lY3Rpb25fbWFuYWdlcihrd2FyZ3NbJ3NpZCdd KQorCisgICAgICAgICAgICAjIEdldCBkYXRhYmFzZSBjb25uZWN0aW9uCisg ICAgICAgICAgICBzZWxmLmNvbm4gPSBzZWxmLm1hbmFnZXIuY29ubmVjdGlv bihkaWQ9a3dhcmdzWydkaWQnXSkKKworICAgICAgICAgICAgc2VsZi5xdElk ZW50ID0gZHJpdmVyLnF0SWRlbnQKKyAgICAgICAgICAgIHNlbGYucXRMaXRl cmFsID0gZHJpdmVyLnF0TGl0ZXJhbAorCisgICAgICAgICAgICBpZiBub3Qg c2VsZi5jb25uLmNvbm5lY3RlZCgpOgorICAgICAgICAgICAgICAgIHJldHVy biBwcmVjb25kaXRpb25fcmVxdWlyZWQoCisgICAgICAgICAgICAgICAgICAg IGdldHRleHQoCisgICAgICAgICAgICAgICAgICAgICAgICAiQ29ubmVjdGlv biB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGxvc3QhIgorICAgICAgICAgICAg ICAgICAgICApCisgICAgICAgICAgICAgICAgKQorCisgICAgICAgICAgICB2 ZXIgPSBzZWxmLm1hbmFnZXIudmVyc2lvbgorCisgICAgICAgICAgICAjIFNl dCB0ZW1wbGF0ZSBwYXRoIGZvciBzcWwgc2NyaXB0cyBkZXBlbmRpbmcKKyAg ICAgICAgICAgICMgb24gdGhlIHNlcnZlciB2ZXJzaW9uLgorICAgICAgICAg ICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gIi8iLmpvaW4oWworICAgICAgICAg ICAgICAgIHNlbGYubm9kZV90eXBlCisgICAgICAgICAgICBdKQorICAgICAg ICAgICAgc2VsZi5zcWxfdGVtcGxhdGVfcGF0aCA9ICIvIi5qb2luKFsKKyAg ICAgICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAg ICAgICAgc2VsZi5tYW5hZ2VyLnNlcnZlcl90eXBlLAorICAgICAgICAgICAg ICAgICdzcWwnLAorICAgICAgICAgICAgICAgICc5LjVfcGx1cycgaWYgdmVy ID49IDkwNTAwIGVsc2UKKyAgICAgICAgICAgICAgICAnOS4yX3BsdXMnIGlm IHZlciA+PSA5MDIwMCBlbHNlCisgICAgICAgICAgICAgICAgJzkuMV9wbHVz JworICAgICAgICAgICAgICAgIF0pCisKKyAgICAgICAgICAgIHJldHVybiBm KCphcmdzLCAqKmt3YXJncykKKworICAgICAgICByZXR1cm4gd3JhcAorCisg ICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBsaXN0KHNlbGYsIGdp ZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgTGlz dCBhbGwgdGhlIEZ1bmN0aW9ucy4KKworICAgICAgICBBcmdzOgorICAgICAg ICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDog U2VydmVyIElkCisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAg ICAgICAgICBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgIiIiCisKKyAgICAg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnNxbF90 ZW1wbGF0ZV9wYXRoLCAnbm9kZS5zcWwnXSksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzY2lkPXNjaWQpCisgICAgICAgIHN0YXR1cywgcmVz ID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisKKyAgICAgICAgaWYg bm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICByZXR1cm4gYWpheF9y ZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPXJlc1sncm93cyddLAor ICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBAY2hl Y2tfcHJlY29uZGl0aW9uCisgICAgZGVmIG5vZGVzKHNlbGYsIGdpZCwgc2lk LCBkaWQsIHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBh bGwgdGhlIEZ1bmN0aW9ucyB0byBnZW5lcmF0ZSB0aGUgTm9kZXMuCisKKyAg ICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElk CisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAgICAgZGlk OiBEYXRhYmFzZSBJZAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElkCisg ICAgICAgICIiIgorCisgICAgICAgIHJlcyA9IFtdCisgICAgICAgIFNRTCA9 IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi5zcWxfdGVtcGxhdGVf cGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnbm9kZS5zcWwnXSksIHNjaWQ9c2NpZCkKKyAgICAgICAgc3RhdHVzLCBy c2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisKKyAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKworICAgICAgICBmb3Ig cm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgIHJlcy5hcHBlbmQo CisgICAgICAgICAgICAgICAgc2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJv d3Nlcl9ub2RlKAorICAgICAgICAgICAgICAgICAgICByb3dbJ29pZCddLAor ICAgICAgICAgICAgICAgICAgICBzY2lkLAorICAgICAgICAgICAgICAgICAg ICByb3dbJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgaWNvbj0iaWNv bi0iICsgc2VsZi5ub2RlX3R5cGUsCisgICAgICAgICAgICAgICAgICAgIGZ1 bmNvd25lcj1yb3dbJ2Z1bmNvd25lciddLAorICAgICAgICAgICAgICAgICAg ICBsYW5ndWFnZT1yb3dbJ2xhbm5hbWUnXQorICAgICAgICAgICAgICAgICkp CisKKyAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAg ICAgICAgIGRhdGE9cmVzLAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAg ICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHBy b3BlcnRpZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm5pZD1Ob25l KToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgdGhlIEZ1bmN0aW9u IHByb3BlcnRpZXMuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdp ZDogU2VydmVyIEdyb3VwIElkCisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJ ZAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICAgICAg c2NpZDogU2NoZW1hIElkCisgICAgICAgICAgICBmbmlkOiBGdW5jdGlvbiBJ ZAorICAgICAgICAiIiIKKworICAgICAgICByZXNwX2RhdGEgPSBzZWxmLl9m ZXRjaF9wcm9wZXJ0aWVzKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZuaWQpCisK KyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICBy ZXNwb25zZT1yZXNwX2RhdGEsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisg ICAgICAgICkKKworICAgIGRlZiBfZm9ybWF0X2FyZ3VtZW50c19mcm9tX2Ri KHNlbGYsIGRhdGEpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRlIEFy Z3VtZW50IGxpc3Qgb2YgdGhlIEZ1bmN0aW9uLgorCisgICAgICAgIEFyZ3M6 CisgICAgICAgICAgICBkYXRhOiBGdW5jdGlvbiBEYXRhCisKKyAgICAgICAg UmV0dXJuczoKKyAgICAgICAgICAgIEZ1bmN0aW9uIEFyZ3VtZW50cyBpbiB0 aGUgZm9sbG93aW5nIGZvcm1hdC4KKyAgICAgICAgICAgICAgICBbCisgICAg ICAgICAgICAgICAgeydwcm9hcmd0eXBlcyc6ICdpbnRlZ2VyJywgJ3Byb2Fy Z21vZGVzOiAnSU4nLAorICAgICAgICAgICAgICAgICdwcm9hcmduYW1lcyc6 ICdjb2x1bW4xJywgJ3Byb2FyZ2RlZmF1bHR2YWxzJzogMX0sIHsuLi59Cisg ICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgV2hlcmUKKyAgICAgICAg ICAgICAgICBBcmd1bWVudHM6CisgICAgICAgICAgICAgICAgICAgIHByb2Fy Z3R5cGVzOiBBcmd1bWVudCBUeXBlcyAoRGF0YSBUeXBlKQorICAgICAgICAg ICAgICAgICAgICBwcm9hcmdtb2RlczogQXJndW1lbnQgTW9kZXMgW0lOLCBP VVQsIElOT1VULCBWQVJJQURJQ10KKyAgICAgICAgICAgICAgICAgICAgcHJv YXJnbmFtZXM6IEFyZ3VtZW50IE5hbWUKKyAgICAgICAgICAgICAgICAgICAg cHJvYXJnZGVmYXVsdHZhbHM6IERlZmF1bHQgVmFsdWUgb2YgdGhlIEFyZ3Vt ZW50CisgICAgICAgICIiIgorICAgICAgICBwcm9hcmd0eXBlcyA9IFtwdHlw ZSBmb3IgcHR5cGUgaW4gZGF0YVsncHJvYXJndHlwZW5hbWVzJ10uc3BsaXQo IiwiKV1cCisgICAgICAgICAgICBpZiBkYXRhWydwcm9hcmd0eXBlbmFtZXMn XSBlbHNlIFtdCisgICAgICAgIHByb2FyZ21vZGVzID0gZGF0YVsncHJvYXJn bW9kZXMnXSBpZiBkYXRhWydwcm9hcmdtb2RlcyddIGVsc2UgW10KKyAgICAg ICAgcHJvYXJnbmFtZXMgPSBkYXRhWydwcm9hcmduYW1lcyddIGlmIGRhdGFb J3Byb2FyZ25hbWVzJ10gZWxzZSBbXQorICAgICAgICBwcm9hcmdkZWZhdWx0 dmFscyA9IFtwdHlwZSBmb3IgcHR5cGUgaW4KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGF0YVsncHJvYXJnZGVmYXVsdHZhbHMnXS5zcGxpdCgi LCIpXSBcCisgICAgICAgICAgICBpZiBkYXRhWydwcm9hcmdkZWZhdWx0dmFs cyddIGVsc2UgW10KKyAgICAgICAgcHJvYWxsYXJndHlwZXMgPSBkYXRhWydw cm9hbGxhcmd0eXBlcyddIFwKKyAgICAgICAgICAgIGlmIGRhdGFbJ3Byb2Fs bGFyZ3R5cGVzJ10gZWxzZSBbXQorCisgICAgICAgIHByb2FyZ291dCA9IFtd CisgICAgICAgIHByb2FyZ2lkID0gW10KKyAgICAgICAgcHJvYXJnbW9kZW5h bWVzID0geydpJzogJ0lOJywgJ28nOiAnT1VUJywgJ2InOiAnSU5PVVQnLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3YnOiAnVkFSSUFESUMnLCAn dCc6ICdUQUJMRSd9CisKKyAgICAgICAgIyBUaGUgcHJvYXJndHlwZXMgZG9l c24ndCBnaXZlIE9VVCBwYXJhbXMsIHNvIHdlIG5lZWQgdG8gZmV0Y2gKKyAg ICAgICAgIyB0aG9zZSBmcm9tIGRhdGFiYXNlIGV4cGxpY2l0bHksIGJlbG93 IGNvZGUgaXMgd3JpdHRlbiBmb3IgdGhpcworICAgICAgICAjIHB1cnBvc2Uu CisgICAgICAgICMKKyAgICAgICAgIyBwcm9hbGxhcmd0eXBlcyBnaXZlcyBh bGwgdGhlIEZ1bmN0aW9uJ3MgYXJndW1lbnQgaW5jbHVkaW5nIE9VVCwKKyAg ICAgICAgIyBidXQgd2UgaGF2ZSBub3QgdXNlZCB0aGF0IGNvbHVtbjsgYXMg dGhlIGRhdGEgdHlwZSBvZiB0aGlzCisgICAgICAgICMgY29sdW1uIChpLmUu IG9pZFtdKSBpcyBub3Qgc3VwcG9ydGVkIGJ5IG9pZHZlY3RvcnR5cGVzKG9p ZHZlY3RvcikKKyAgICAgICAgIyBmdW5jdGlvbiB3aGljaCB3ZSBoYXZlIHVz ZWQgdG8gZmV0Y2ggdGhlIGRhdGF0eXBlcworICAgICAgICAjIG9mIHRoZSBv dGhlciBwYXJhbWV0ZXJzLgorCisgICAgICAgIHByb2FyZ21vZGVzX2ZsdHJk ID0gY29weS5kZWVwY29weShwcm9hcmdtb2RlcykKKyAgICAgICAgcHJvYXJn bmFtZXNfZmx0cmQgPSBbXQorICAgICAgICBjbnQgPSAwCisgICAgICAgIGZv ciBtIGluIHByb2FyZ21vZGVzOgorICAgICAgICAgICAgaWYgbSA9PSAnbyc6 ICAjIE91dCBNb2RlCisgICAgICAgICAgICAgICAgU1FMID0gcmVuZGVyX3Rl bXBsYXRlKCIvIi5qb2luKFtzZWxmLnNxbF90ZW1wbGF0ZV9wYXRoLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J2dldF9vdXRfdHlwZXMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvdXRfYXJnX29pZD1wcm9hbGxhcmd0eXBlc1tj bnRdKQorICAgICAgICAgICAgICAgIHN0YXR1cywgb3V0X2FyZ190eXBlID0g c2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgICAg ICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPW91dF9hcmdfdHlwZSkK KworICAgICAgICAgICAgICAgICMgSW5zZXJ0IG91dCBwYXJhbWV0ZXIgZGF0 YXR5cGUKKyAgICAgICAgICAgICAgICBwcm9hcmd0eXBlcy5pbnNlcnQoY250 LCBvdXRfYXJnX3R5cGUpCisgICAgICAgICAgICAgICAgcHJvYXJnZGVmYXVs dHZhbHMuaW5zZXJ0KGNudCwgJycpCisgICAgICAgICAgICBlbGlmIG0gPT0g J3YnOiAgIyBWYXJpYWRpYyBNb2RlCisgICAgICAgICAgICAgICAgcHJvYXJn ZGVmYXVsdHZhbHMuaW5zZXJ0KGNudCwgJycpCisgICAgICAgICAgICBlbGlm IG0gPT0gJ3QnOiAgIyBUYWJsZSBNb2RlCisgICAgICAgICAgICAgICAgcHJv YXJnbW9kZXNfZmx0cmQucmVtb3ZlKG0pCisgICAgICAgICAgICAgICAgcHJv YXJnbmFtZXNfZmx0cmQuYXBwZW5kKHByb2FyZ25hbWVzW2NudF0pCisKKyAg ICAgICAgICAgIGNudCArPSAxCisKKyAgICAgICAgY250ID0gMAorICAgICAg ICAjIE1hcCBwYXJhbSdzIHNob3J0IGZvcm0gdG8gaXRzIGFjdHVhbCBuYW1l LiAoZXg6ICdpJyB0byAnSU4nKQorICAgICAgICBmb3IgbSBpbiBwcm9hcmdt b2Rlc19mbHRyZDoKKyAgICAgICAgICAgIHByb2FyZ21vZGVzX2ZsdHJkW2Nu dF0gPSBwcm9hcmdtb2RlbmFtZXNbbV0KKyAgICAgICAgICAgIGNudCArPSAx CisKKyAgICAgICAgIyBSZW1vdmVzIEFyZ3VtZW50IE5hbWVzIGZyb20gdGhl IGxpc3QgaWYgdGhhdCBhcmd1bWVudCBpcyByZW1vdmVkCisgICAgICAgICMg ZnJvbSB0aGUgbGlzdAorICAgICAgICBmb3IgaSBpbiBwcm9hcmduYW1lc19m bHRyZDoKKyAgICAgICAgICAgIHByb2FyZ25hbWVzLnJlbW92ZShpKQorCisg ICAgICAgICMgSW5zZXJ0IG51bGwgdmFsdWUgYWdhaW5zdCB0aGUgcGFyYW1l dGVycyB3aGljaCBkbyBub3QgaGF2ZQorICAgICAgICAjIGRlZmF1bHQgdmFs dWVzLgorICAgICAgICBpZiBsZW4ocHJvYXJnbW9kZXNfZmx0cmQpID4gbGVu KHByb2FyZ2RlZmF1bHR2YWxzKToKKyAgICAgICAgICAgIGRpZiA9IGxlbihw cm9hcmdtb2Rlc19mbHRyZCkgLSBsZW4ocHJvYXJnZGVmYXVsdHZhbHMpCisg ICAgICAgICAgICB3aGlsZSAoZGlmID4gMCk6CisgICAgICAgICAgICAgICAg cHJvYXJnZGVmYXVsdHZhbHMuaW5zZXJ0KDAsICcnKQorICAgICAgICAgICAg ICAgIGRpZiA9IGRpZiAtIDEKKworICAgICAgICAjIFByZXBhcmUgbGlzdCBv ZiBBcmd1bWVudCBsaXN0IGRpY3QgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBE YXRhIEdyaWQuCisgICAgICAgIHBhcmFtcyA9IHsiYXJndW1lbnRzIjogbWFw KAorICAgICAgICAgICAgbGFtYmRhIGFyZ2lkLCBhcmd0eXBlLCBhcmdtb2Rl LCBhcmduYW1lLCBhcmdkZWZ2YWw6IHsKKyAgICAgICAgICAgICAgICAiYXJn aWQiOiBhcmdpZCwKKyAgICAgICAgICAgICAgICAiYXJndHlwZSI6IGFyZ3R5 cGUuc3RyaXAoKSBpZiBhcmd0eXBlIGlzIG5vdCBOb25lIGVsc2UgJycsCisg ICAgICAgICAgICAgICAgImFyZ21vZGUiOiBhcmdtb2RlLAorICAgICAgICAg ICAgICAgICJhcmduYW1lIjogYXJnbmFtZSwKKyAgICAgICAgICAgICAgICAi YXJnZGVmdmFsIjogYXJnZGVmdmFsCisgICAgICAgICAgICB9LCByYW5nZShs ZW4ocHJvYXJndHlwZXMpKSwgcHJvYXJndHlwZXMsIHByb2FyZ21vZGVzX2Zs dHJkLAorICAgICAgICAgICAgcHJvYXJnbmFtZXMsIHByb2FyZ2RlZmF1bHR2 YWxzKX0KKworICAgICAgICAjIFByZXBhcmUgc3RyaW5nIGZvcm1hdHRlZCBB cmd1bWVudCB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIFByb3BlcnRpZXMKKyAg ICAgICAgIyBwYW5lbC4KKyAgICAgICAgcHJvYXJncyA9IG1hcChzZWxmLl9t YXBfYXJndW1lbnRzLCBwcm9hcmdtb2Rlc19mbHRyZCwgcHJvYXJnbmFtZXMs CisgICAgICAgICAgICAgICAgICAgICAgcHJvYXJndHlwZXMsIHByb2FyZ2Rl ZmF1bHR2YWxzKQorCisgICAgICAgIHByb2FyZ3MgPSB7InByb2FyZ3MiOiAi LCAiLmpvaW4ocHJvYXJncyl9CisKKyAgICAgICAgcmV0dXJuIHBhcmFtcywg cHJvYXJncworCisgICAgZGVmIF9tYXBfYXJndW1lbnRzKHNlbGYsIGFyZ21v ZGUsIGFyZ25hbWUsIGFyZ3R5cGUsIGFyZ2RlZik6CisgICAgICAgICIiIgor ICAgICAgICBSZXR1cm5zIGZvcm1hdHRlZCBBcmd1bWVudHMuCisgICAgICAg IEFyZ3M6CisgICAgICAgICAgICBhcmdtb2RlOiBBcmd1bWVudCBNb2RlCisg ICAgICAgICAgICBhcmduYW1lOiBBcmd1bWVudCBOYW1lCisgICAgICAgICAg ICBhcmd0eXBlOiBBcmd1bWVudCBUeXBlCisgICAgICAgICAgICBhcmdkZWY6 IEFyZ3VtZW50IERlZmF1bHQgVmFsdWUKKyAgICAgICAgIiIiCisgICAgICAg IGFyZyA9ICcnCisKKyAgICAgICAgaWYgYXJnbW9kZToKKyAgICAgICAgICAg IGFyZyArPSBhcmdtb2RlICsgIiAiCisgICAgICAgIGlmIGFyZ25hbWU6Cisg ICAgICAgICAgICBhcmcgKz0gYXJnbmFtZSArICIgIgorICAgICAgICBpZiBh cmd0eXBlOgorICAgICAgICAgICAgYXJnICs9IGFyZ3R5cGUgKyAiICIKKyAg ICAgICAgaWYgYXJnZGVmOgorICAgICAgICAgICAgYXJnICs9ICIgREVGQVVM VCAiICsgYXJnZGVmCisKKyAgICAgICAgcmV0dXJuIGFyZworCisgICAgZGVm IF9mb3JtYXRfcHJvYWNsX2Zyb21fZGIoc2VsZiwgcHJvYWNsKToKKyAgICAg ICAgIiIiCisgICAgICAgIFJldHVybnMgcHJpdmlsZWdlcy4KKyAgICAgICAg QXJnczoKKyAgICAgICAgICAgIHByb2FjbDogUHJpdmlsZWdlcyBEaWN0Cisg ICAgICAgICIiIgorICAgICAgICBwcml2aWxlZ2VzID0gW10KKyAgICAgICAg Zm9yIHJvdyBpbiBwcm9hY2w6CisgICAgICAgICAgICBwcml2ID0gcGFyc2Vf cHJpdl9mcm9tX2RiKHJvdykKKyAgICAgICAgICAgIHByaXZpbGVnZXMuYXBw ZW5kKHByaXYpCisKKyAgICAgICAgcmV0dXJuIHsiYWNsIjogcHJpdmlsZWdl c30KKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZ2V0X3R5 cGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZuaWQ9Tm9uZSk6Cisg ICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIHRoZSBUeXBlcy4KKworICAg ICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSWQK KyAgICAgICAgICAgIHNpZDogU2VydmVyIElkCisgICAgICAgICAgICBkaWQ6 IERhdGFiYXNlIElkCisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSWQKKyAg ICAgICAgICAgIGZuaWQ6IEZ1bmN0aW9uIElkCisgICAgICAgICIiIgorICAg ICAgICAjIFRPRE86IFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIHJlbW92ZWQg b25jZSBUeXBlcyBtb2R1bGUKKyAgICAgICAgIyB3aWxsIGJlIGNvbXBsZXRl ZC4KKworICAgICAgICByZXMgPSBbeydsYWJlbCc6ICcnLCAndmFsdWUnOiAn J31dCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90 ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi5zcWxfdGVtcGxhdGVfcGF0aCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dl dF90eXBlcy5zcWwnXSkpCisgICAgICAgICAgICBzdGF0dXMsIHJzZXQgPSBz ZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAgICAgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIGZv ciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgICAgIHJlcy5h cHBlbmQoCisgICAgICAgICAgICAgICAgICAgIHsnbGFiZWwnOiByb3dbJ3R5 cG5hbWUnXSwgJ3ZhbHVlJzogcm93Wyd0eXBuYW1lJ119CisgICAgICAgICAg ICAgICAgKQorCisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3Bv bnNlKAorICAgICAgICAgICAgICAgIGRhdGE9cmVzLAorICAgICAgICAgICAg ICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICkKKworICAgICAgICBleGNl cHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVj a19wcmVjb25kaXRpb24KKyAgICBkZWYgZ2V0X2xhbmd1YWdlcyhzZWxmLCBn aWQsIHNpZCwgZGlkLCBzY2lkLCBmbmlkPU5vbmUpOgorICAgICAgICAiIiIK KyAgICAgICAgUmV0dXJucyB0aGUgTGFuZ3VhZ2VzIGxpc3QuCisKKyAgICAg ICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElkCisg ICAgICAgICAgICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAgICAgZGlkOiBE YXRhYmFzZSBJZAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElkCisgICAg ICAgICAgICBmbmlkOiBGdW5jdGlvbiBJZAorICAgICAgICAiIiIKKworICAg ICAgICByZXMgPSBbeydsYWJlbCc6ICcnLCAndmFsdWUnOiAnJ31dCisgICAg ICAgIHRyeToKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgi LyIuam9pbihbc2VsZi5zcWxfdGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9sYW5ndWFn ZXMuc3FsJ10pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KQorICAgICAgICAgICAgc3RhdHVzLCByb3dzID0gc2VsZi5jb25uLmV4ZWN1 dGVfZGljdChTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAg ICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9cmVzKQorCisgICAgICAgICAgICByZXMgPSByZXMgKyByb3dzWydy b3dzJ10KKworICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25z ZSgKKyAgICAgICAgICAgICAgICBkYXRhPXJlcywKKyAgICAgICAgICAgICAg ICBzdGF0dXM9MjAwCisgICAgICAgICAgICApCisgICAgICAgIGV4Y2VwdDoK KyAgICAgICAgICAgIGV4Y190eXBlLCBleGNfdmFsdWUsIGV4Y190cmFjZWJh Y2sgPSBzeXMuZXhjX2luZm8oKQorICAgICAgICAgICAgY3VycmVudF9hcHAu bG9nZ2VyLmVycm9yKHRyYWNlYmFjay5wcmludF9leGNlcHRpb24oCisgICAg ICAgICAgICAgICAgZXhjX3R5cGUsCisgICAgICAgICAgICAgICAgZXhjX3Zh bHVlLAorICAgICAgICAgICAgICAgIGV4Y190cmFjZWJhY2ssCisgICAgICAg ICAgICAgICAgbGltaXQ9MgorICAgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgICkKKworICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l cnJvcihlcnJvcm1zZz1zdHIoZXhjX3ZhbHVlKSkKKworICAgIEBjaGVja19w cmVjb25kaXRpb24KKyAgICBkZWYgdmFyaWFibGVfb3B0aW9ucyhzZWxmLCBn aWQsIHNpZCwgZGlkLCBzY2lkLCBmbmlkPU5vbmUpOgorICAgICAgICAiIiIK KyAgICAgICAgUmV0dXJucyB0aGUgdmFyaWFibGVzLgorCisgICAgICAgIEFy Z3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJZAorICAgICAg ICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRpZDogRGF0YWJh c2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAorICAgICAgICAg ICAgZm5pZDogRnVuY3Rpb24gSWQKKworICAgICAgICBSZXR1cm5zOgorICAg ICAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBsaXN0IG9mIHZh cmlhYmxlcyBhdmFpbGFibGUgZm9yCisgICAgICAgICAgICB0YWJsZSBzcGFj ZXMuCisgICAgICAgICIiIgorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxh dGUoCisgICAgICAgICAgICAiLyIuam9pbihbc2VsZi5zcWxfdGVtcGxhdGVf cGF0aCwgJ3ZhcmlhYmxlcy5zcWwnXSkKKyAgICAgICAgICAgICkKKyAgICAg ICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwp CisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKworICAg ICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAg ZGF0YT1yc2V0Wydyb3dzJ10sCisgICAgICAgICAgICBzdGF0dXM9MjAwCisg ICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBAdmFs aWRhdGVfcmVxdWVzdAorICAgIGRlZiBjcmVhdGUoc2VsZiwgZ2lkLCBzaWQs IGRpZCwgc2NpZCk6CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGUgYSBu ZXcgRnVuY3Rpb24gb2JqZWN0LgorCisgICAgICAgIEFyZ3M6CisgICAgICAg ICAgICBnaWQ6IFNlcnZlciBHcm91cCBJZAorICAgICAgICAgICAgc2lkOiBT ZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAg ICAgICAgIHNjaWQ6IFNjaGVtYSBJZAorICAgICAgICAgICAgZm5pZDogRnVu Y3Rpb24gSWQKKworICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgRnVu Y3Rpb24gb2JqZWN0IGluIGpzb24gZm9ybWF0LgorICAgICAgICAiIiIKKwor ICAgICAgICB0cnk6CisgICAgICAgICAgICAjIEdldCBTUUwgdG8gY3JlYXRl IEZ1bmN0aW9uCisgICAgICAgICAgICBzdGF0dXMsIFNRTCA9IHNlbGYuX2dl dF9zcWwoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgc2VsZi5yZXF1ZXN0KQorICAg ICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPVNRTCkKKworICAg ICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2Fs YXIoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJlcykKKworICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIv Ii5qb2luKFtzZWxmLnNxbF90ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X29pZC5zcWwn XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnNwbmFt ZT1zZWxmLnJlcXVlc3RbJ3Byb25hbWVzcGFjZSddLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG5hbWU9c2VsZi5yZXF1ZXN0WyduYW1l J10pCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVj dXRlX2RpY3QoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXJlcykKKworICAgICAgICAgICAgcmVzID0gcmVzWydyb3dzJ11b MF0KKworICAgICAgICAgICAgcmV0dXJuIGpzb25pZnkoCisgICAgICAgICAg ICAgICAgbm9kZT1zZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25v ZGUoCisgICAgICAgICAgICAgICAgICAgIHJlc1snb2lkJ10sCisgICAgICAg ICAgICAgICAgICAgIHNlbGYucmVxdWVzdFsncHJvbmFtZXNwYWNlJ10sCisg ICAgICAgICAgICAgICAgICAgIHJlc1snbmFtZSddLAorICAgICAgICAgICAg ICAgICAgICBpY29uPSJpY29uLSIgKyBzZWxmLm5vZGVfdHlwZSwKKyAgICAg ICAgICAgICAgICAgICAgbGFuZ3VhZ2U9cmVzWydsYW5uYW1lJ10sCisgICAg ICAgICAgICAgICAgICAgIGZ1bmNvd25lcj1yZXNbJ2Z1bmNvd25lciddCisg ICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICBleGNl cHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVj a19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVsZXRlKHNlbGYsIGdpZCwgc2lk LCBkaWQsIHNjaWQsIGZuaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgRHJv cCB0aGUgRnVuY3Rpb24uCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAg IGdpZDogU2VydmVyIEdyb3VwIElkCisgICAgICAgICAgICBzaWQ6IFNlcnZl ciBJZAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICAg ICAgc2NpZDogU2NoZW1hIElkCisgICAgICAgICAgICBmbmlkOiBGdW5jdGlv biBJZAorICAgICAgICAiIiIKKworICAgICAgICBpZiBzZWxmLmNtZCA9PSAn ZGVsZXRlJzoKKyAgICAgICAgICAgICMgVGhpcyBpcyBhIGNhc2NhZGUgb3Bl cmF0aW9uCisgICAgICAgICAgICBjYXNjYWRlID0gVHJ1ZQorICAgICAgICBl bHNlOgorICAgICAgICAgICAgY2FzY2FkZSA9IEZhbHNlCisKKyAgICAgICAg dHJ5OgorICAgICAgICAgICAgIyBGZXRjaCBOYW1lIGFuZCBTY2hlbWEgTmFt ZSB0byBkZWxldGUgdGhlIEZ1bmN0aW9uLgorICAgICAgICAgICAgU1FMID0g cmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnNxbF90ZW1wbGF0ZV9w YXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWxl dGUuc3FsJ10pLCBzY2lkPXNjaWQsIGZuaWQ9Zm5pZCkKKyAgICAgICAgICAg IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwp CisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQor CisgICAgICAgICAgICBuYW1lLCBmdW5jX2FyZ3MsIG5zcG5hbWUgPSByZXNb J3Jvd3MnXVswXQorCisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxh dGUoIi8iLmpvaW4oW3NlbGYuc3FsX3RlbXBsYXRlX3BhdGgsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWxldGUu c3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5h bWU9bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm dW5jX2FyZ3M9ZnVuY19hcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG5zcG5hbWU9bnNwbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjYXNjYWRlPWNhc2NhZGUpCisgICAgICAgICAg ICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwp CisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQor CisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAg ICAgICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICBpbmZv PWdldHRleHQoIkZ1bmN0aW9uIERyb3BwZWQuIiksCisgICAgICAgICAgICAg ICAgZGF0YT17CisgICAgICAgICAgICAgICAgICAgICdpZCc6IGZuaWQsCisg ICAgICAgICAgICAgICAgICAgICdzY2lkJzogc2NpZCwKKyAgICAgICAgICAg ICAgICAgICAgJ3NpZCc6IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgJ2dp ZCc6IGdpZCwKKyAgICAgICAgICAgICAgICAgICAgJ2RpZCc6IGRpZAorICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICkKKworICAgICAgICBleGNl cHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVj a19wcmVjb25kaXRpb24KKyAgICBAdmFsaWRhdGVfcmVxdWVzdAorICAgIGRl ZiB1cGRhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm5pZCk6Cisg ICAgICAgICIiIgorICAgICAgICBVcGRhdGUgdGhlIEZ1bmN0aW9uLgorCisg ICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJ ZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRp ZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAor ICAgICAgICAgICAgZm5pZDogRnVuY3Rpb24gSWQKKyAgICAgICAgIiIiCisK KyAgICAgICAgc3RhdHVzLCBTUUwgPSBzZWxmLl9nZXRfc3FsKGdpZCwgc2lk LCBkaWQsIHNjaWQsIHNlbGYucmVxdWVzdCwgZm5pZCkKKworICAgICAgICBp ZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3Nl cnZlcl9lcnJvcihlcnJvcm1zZz1TUUwpCisKKyAgICAgICAgdHJ5OgorICAg ICAgICAgICAgaWYgU1FMIGFuZCBTUUwuc3RyaXAoJ1xuJykgYW5kIFNRTC5z dHJpcCgnICcpOgorICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2Vs Zi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgICAgICBp ZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAg ICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAg ICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICAgICAgaW5m bz0iRnVuY3Rpb24gVXBkYXRlZC4iLAorICAgICAgICAgICAgICAgICAgICBk YXRhPXsKKyAgICAgICAgICAgICAgICAgICAgICAgICdpZCc6IGZuaWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAnc2NpZCc6IHNjaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAgICAg ICAgICAgICAgJ2dpZCc6IGdpZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICdkaWQnOiBkaWQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgICAgICkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg cmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAg ICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAgICAgICBpbmZvPSJOb3Ro aW5nIHRvIHVwZGF0ZS4iLAorICAgICAgICAgICAgICAgICAgICBkYXRhPXsK KyAgICAgICAgICAgICAgICAgICAgICAgICdpZCc6IGZuaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAnc2NpZCc6IHNjaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgJ2dpZCc6IGdpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdkaWQn OiBkaWQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg ICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0 cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgc3Fs KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZuaWQ9Tm9uZSk6CisgICAg ICAgICIiIgorICAgICAgICBSZXR1cm5zIHRoZSBTUUwgZm9yIHRoZSBGdW5j dGlvbiBvYmplY3QuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdp ZDogU2VydmVyIEdyb3VwIElkCisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJ ZAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICAgICAg c2NpZDogU2NoZW1hIElkCisgICAgICAgICAgICBmbmlkOiBGdW5jdGlvbiBJ ZAorICAgICAgICAiIiIKKworICAgICAgICAjIEZldGNoIHRoZSBmdW5jdGlv biBkZWZpbml0aW9uLgorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUo Ii8iLmpvaW4oW3NlbGYuc3FsX3RlbXBsYXRlX3BhdGgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnZ2V0X2RlZmluaXRpb24uc3FsJ10pLCBm bmlkPWZuaWQsIHNjaWQ9c2NpZCkKKyAgICAgICAgc3RhdHVzLCByZXMgPSBz ZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAgICAgICAgaWYgbm90 IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgIGZ1bmNfZGVmLCBuYW1l ID0gcmVzWydyb3dzJ11bMF0KKyAgICAgICAgc3FsX2hlYWRlciA9ICIiIi0t IHswfTogezF9CisKKy0tIERST1AgezB9IHsxfTsKKworIiIiLmZvcm1hdChz ZWxmLm5vZGVfdHlwZS51cHBlcigpLCBuYW1lKQorCisgICAgICAgIFNRTCA9 IHNxbF9oZWFkZXIgKyBmdW5jX2RlZgorCisgICAgICAgIHJldHVybiBhamF4 X3Jlc3BvbnNlKHJlc3BvbnNlPVNRTCkKKworICAgIEBjaGVja19wcmVjb25k aXRpb24KKyAgICBAdmFsaWRhdGVfcmVxdWVzdAorICAgIGRlZiBtc3FsKHNl bGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZuaWQ9Tm9uZSk6CisgICAgICAg ICIiIgorICAgICAgICBSZXR1cm5zIHRoZSBtb2RpZmllZCBTUUwuCisKKyAg ICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElk CisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAgICAgZGlk OiBEYXRhYmFzZSBJZAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElkCisg ICAgICAgICAgICBmbmlkOiBGdW5jdGlvbiBJZAorICAgICAgICBSZXR1cm5z OgorICAgICAgICAgICAgU1FMIHN0YXRlbWVudHMgdG8gY3JlYXRlL3VwZGF0 ZSB0aGUgRG9tYWluLgorICAgICAgICAiIiIKKworICAgICAgICBzdGF0dXMs IFNRTCA9IHNlbGYuX2dldF9zcWwoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgc2Vs Zi5yZXF1ZXN0LCBmbmlkKQorICAgICAgICBpZiBzdGF0dXM6CisgICAgICAg ICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAg ICAgIGRhdGE9U1FMLAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAg ICAgICAgICAgICkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVy biBTUUwKKworICAgIGRlZiBfZ2V0X3NxbChzZWxmLCBnaWQsIHNpZCwgZGlk LCBzY2lkLCBkYXRhLCBmbmlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAg ICAgR2VuZXJhdGVzIHRoZSBTUUwgc3RhdGVtZW50cyB0byBjcmVhdGUvdXBk YXRlIHRoZSBGdW5jdGlvbi4KKworICAgICAgICBBcmdzOgorICAgICAgICAg ICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDogU2Vy dmVyIElkCisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAg ICAgICBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgICAgIGRhdGE6IEZ1bmN0 aW9uIGRhdGEKKyAgICAgICAgICAgIGZuaWQ6IEZ1bmN0aW9uIElkCisgICAg ICAgICIiIgorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgR2V0IFNj aGVtYSBOYW1lIGZyb20gaXRzIE9JRC4KKyAgICAgICAgICAgIGlmICdwcm9u YW1lc3BhY2UnIGluIGRhdGE6CisgICAgICAgICAgICAgICAgZGF0YVsncHJv bmFtZXNwYWNlJ10gPSBzZWxmLl9nZXRfc2NoZW1hKGRhdGFbCisgICAgICAg ICAgICAgICAgICAgICdwcm9uYW1lc3BhY2UnXSkKKyAgICAgICAgICAgIGlm ICdwcm92b2xhdGlsZScgaW4gZGF0YToKKyAgICAgICAgICAgICAgICB2b2xf ZGljdCA9IHsndic6ICdWT0xBVElMRScsICdzJzogJ1NUQUJMRScsICdpJzog J0lNTVVUQUJMRSd9CisgICAgICAgICAgICAgICAgZGF0YVsncHJvdm9sYXRp bGUnXSA9IHZvbF9kaWN0W2RhdGFbJ3Byb3ZvbGF0aWxlJ11dCisKKyAgICAg ICAgICAgIGlmIGZuaWQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAg IyBFZGl0IE1vZGUKKworICAgICAgICAgICAgICAgICMgRmV0Y2ggT2xkIERh dGEgZnJvbSBkYXRhYmFzZS4KKyAgICAgICAgICAgICAgICBvbGRfZGF0YSA9 IHNlbGYuX2ZldGNoX3Byb3BlcnRpZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwg Zm5pZCkKKworICAgICAgICAgICAgICAgICMgR2V0IFNjaGVtYSBOYW1lCisg ICAgICAgICAgICAgICAgb2xkX2RhdGFbJ3Byb25hbWVzcGFjZSddID0gc2Vs Zi5fZ2V0X3NjaGVtYShvbGRfZGF0YVsKKyAgICAgICAgICAgICAgICAgICAg J3Byb25hbWVzcGFjZSddKQorCisgICAgICAgICAgICAgICAgIyBJZiBhbnkg b2YgdGhlIGJlbG93IGFyZ3VtZW50IGlzIGNoYW5nZWQsCisgICAgICAgICAg ICAgICAgIyB0aGVuIENSRUFURSBPUiBSRVBMQUNFIFNRTCBzdGF0ZW1lbnQg c2hvdWxkIGJlIGNhbGxlZAorICAgICAgICAgICAgICAgIGZ1bl9jaGFuZ2Vf YXJncyA9IFsnbGFubmFtZScsICdwcm9zcmMnLCAncHJvYmluJywgJ3Byb3Ny Y19jJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3By b3ZvbGF0aWxlJywgJ3Byb2lzc3RyaWN0JywgJ3Byb3NlY2RlZicsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9jb3N0JywgJ3By b2xlYWtwcm9vZicsICdhcmd1bWVudHMnXQorCisgICAgICAgICAgICAgICAg ZGF0YVsnY2hhbmdlX2Z1bmMnXSA9IEZhbHNlCisgICAgICAgICAgICAgICAg Zm9yIGFyZyBpbiBmdW5fY2hhbmdlX2FyZ3M6CisgICAgICAgICAgICAgICAg ICAgIGlmIGFyZyA9PSAnYXJndW1lbnRzJyBhbmQgYXJnIGluIGRhdGEgYW5k IGxlbihkYXRhW2FyZ10pIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICA+IDA6CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWydjaGFuZ2Vf ZnVuYyddID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICBlbGlmIGFyZyBp biBkYXRhOgorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsnY2hhbmdl X2Z1bmMnXSA9IFRydWUKKworICAgICAgICAgICAgICAgICMgSWYgRnVuY3Rp b24gRGVmaW5pdGlvbi9Bcmd1bWVudHMgYXJlIGNoYW5nZWQgdGhlbiBtZXJn ZSBvbGQKKyAgICAgICAgICAgICAgICAjICBBcmd1bWVudHMgd2l0aCBjaGFu Z2VkIG9uZXMgZm9yIENyZWF0ZS9SZXBsYWNlIEZ1bmN0aW9uCisgICAgICAg ICAgICAgICAgIyBTUUwgc3RhdGVtZW50CisgICAgICAgICAgICAgICAgaWYg J2FyZ3VtZW50cycgaW4gZGF0YSBhbmQgbGVuKGRhdGFbJ2FyZ3VtZW50cydd KSA+IDA6CisgICAgICAgICAgICAgICAgICAgIGZvciBhcmcgaW4gZGF0YVsn YXJndW1lbnRzJ11bJ2NoYW5nZWQnXToKKyAgICAgICAgICAgICAgICAgICAg ICAgIGZvciBvbGRfYXJnIGluIG9sZF9kYXRhWydhcmd1bWVudHMnXToKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBhcmdbJ2FyZ2lkJ10gPT0g b2xkX2FyZ1snYXJnaWQnXToKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgb2xkX2FyZy51cGRhdGUoYXJnKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICBkYXRh Wydhcmd1bWVudHMnXSA9IG9sZF9kYXRhWydhcmd1bWVudHMnXQorICAgICAg ICAgICAgICAgIGVsaWYgZGF0YVsnY2hhbmdlX2Z1bmMnXToKKyAgICAgICAg ICAgICAgICAgICAgZGF0YVsnYXJndW1lbnRzJ10gPSBvbGRfZGF0YVsnYXJn dW1lbnRzJ10KKworICAgICAgICAgICAgICAgICMgUGFyc2UgUHJpdmlsZWdl cworICAgICAgICAgICAgICAgIGlmICdhY2wnIGluIGRhdGE6CisgICAgICAg ICAgICAgICAgICAgIGZvciBrZXkgaW4gWydhZGRlZCcsICdkZWxldGVkJywg J2NoYW5nZWQnXToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGtleSBp biBkYXRhWydhY2wnXToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBk YXRhWydhY2wnXVtrZXldID0gcGFyc2VfcHJpdl90b19kYigKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsnYWNsJ11ba2V5XSwgWyJY Il0pCisKKyAgICAgICAgICAgICAgICAjIFBhcnNlIFZhcmlhYmxlcworICAg ICAgICAgICAgICAgIGNobmdkX3ZhcmlhYmxlcyA9IHt9CisgICAgICAgICAg ICAgICAgZGF0YVsnbWVyZ2VkX3ZhcmlhYmxlcyddID0gW10KKyAgICAgICAg ICAgICAgICBvbGRfZGF0YVsnY2huZ2RfdmFyaWFibGVzJ10gPSB7fQorICAg ICAgICAgICAgICAgIGRlbF92YXJpYWJsZXMgPSB7fQorCisgICAgICAgICAg ICAgICAgIyBJZiBGdW5jdGlvbiBEZWZpbml0aW9uL0FyZ3VtZW50cyBhcmUg Y2hhbmdlZCB0aGVuLAorICAgICAgICAgICAgICAgICMgTWVyZ2Ugb2xkLCBu ZXcgKGFkZGVkLCBjaGFuZ2VkLCBkZWxldGVkKSB2YXJpYWJsZXMsCisgICAg ICAgICAgICAgICAgIyB3aGljaCB3aWxsIGJlIHVzZWQgaW4gdGhlIENSRUFU RSBvciBSRVBMQUNFIEZ1bmN0aW9uIHNxbAorICAgICAgICAgICAgICAgICMg c3RhdGVtZW50CisKKyAgICAgICAgICAgICAgICBpZiBkYXRhWydjaGFuZ2Vf ZnVuYyddOgorICAgICAgICAgICAgICAgICAgICAjIFRvIGNvbXBhcmUgb2xk IGFuZCBuZXcgdmFyaWFibGVzLCBwcmVwYXJpbmcgbmFtZSA6CisgICAgICAg ICAgICAgICAgICAgICMgdmFsdWUgZGljdAorCisgICAgICAgICAgICAgICAg ICAgICMgRGVsZXRlZCBWYXJpYWJsZXMKKyAgICAgICAgICAgICAgICAgICAg aWYgJ3ZhcmlhYmxlcycgaW4gZGF0YSBhbmQgJ2RlbGV0ZWQnIGluIGRhdGFb J3ZhcmlhYmxlcyddOgorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHYg aW4gZGF0YVsndmFyaWFibGVzJ11bJ2RlbGV0ZWQnXToKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkZWxfdmFyaWFibGVzW3ZbJ25hbWUnXV0gPSB2 Wyd2YWx1ZSddCisKKyAgICAgICAgICAgICAgICAgICAgaWYgJ3ZhcmlhYmxl cycgaW4gZGF0YSBhbmQgJ2NoYW5nZWQnIGluIGRhdGFbJ3ZhcmlhYmxlcydd OgorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHYgaW4gZGF0YVsndmFy aWFibGVzJ11bJ2NoYW5nZWQnXToKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjaG5nZF92YXJpYWJsZXNbdlsnbmFtZSddXSA9IHZbJ3ZhbHVlJ10K KworICAgICAgICAgICAgICAgICAgICBpZiAndmFyaWFibGVzJyBpbiBkYXRh IGFuZCAnYWRkZWQnIGluIGRhdGFbJ3ZhcmlhYmxlcyddOgorICAgICAgICAg ICAgICAgICAgICAgICAgZm9yIHYgaW4gZGF0YVsndmFyaWFibGVzJ11bJ2Fk ZGVkJ106CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2huZ2RfdmFy aWFibGVzW3ZbJ25hbWUnXV0gPSB2Wyd2YWx1ZSddCisKKyAgICAgICAgICAg ICAgICAgICAgZm9yIHYgaW4gb2xkX2RhdGFbJ3ZhcmlhYmxlcyddOgorICAg ICAgICAgICAgICAgICAgICAgICAgb2xkX2RhdGFbJ2NobmdkX3ZhcmlhYmxl cyddW3ZbJ25hbWUnXV0gPSB2Wyd2YWx1ZSddCisKKyAgICAgICAgICAgICAg ICAgICAgIyBQcmVwYXJlIGZpbmFsIGRpY3Qgb2YgbmV3IGFuZCBvbGQgdmFy aWFibGVzCisgICAgICAgICAgICAgICAgICAgIGZvciBuYW1lLCB2YWwgaW4g b2xkX2RhdGFbJ2NobmdkX3ZhcmlhYmxlcyddLml0ZW1zKCk6CisgICAgICAg ICAgICAgICAgICAgICAgICBpZiBuYW1lIG5vdCBpbiBjaG5nZF92YXJpYWJs ZXMgYW5kIG5hbWUgbm90IGluIFwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGVsX3ZhcmlhYmxlczoKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjaG5nZF92YXJpYWJsZXNbbmFtZV0gPSB2YWwKKworICAgICAg ICAgICAgICAgICAgICAjIFByZXBhcmUgZGljdCBpbiBbeyduYW1lJzogdmFy X25hbWUsICd2YWx1ZSc6IHZhcl92YWx9LC4uXQorICAgICAgICAgICAgICAg ICAgICAjIGZvcm1hdAorICAgICAgICAgICAgICAgICAgICBmb3IgbmFtZSwg dmFsIGluIGNobmdkX3ZhcmlhYmxlcy5pdGVtcygpOgorICAgICAgICAgICAg ICAgICAgICAgICAgZGF0YVsnbWVyZ2VkX3ZhcmlhYmxlcyddLmFwcGVuZCh7 J25hbWUnOiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJzogdmFsfSkKKyAg ICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBpZiAn dmFyaWFibGVzJyBpbiBkYXRhIGFuZCAnY2hhbmdlZCcgaW4gZGF0YVsndmFy aWFibGVzJ106CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgdiBpbiBk YXRhWyd2YXJpYWJsZXMnXVsnY2hhbmdlZCddOgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGFbJ21lcmdlZF92YXJpYWJsZXMnXS5hcHBlbmQo dikKKworICAgICAgICAgICAgICAgICAgICBpZiAndmFyaWFibGVzJyBpbiBk YXRhIGFuZCAnYWRkZWQnIGluIGRhdGFbJ3ZhcmlhYmxlcyddOgorICAgICAg ICAgICAgICAgICAgICAgICAgZm9yIHYgaW4gZGF0YVsndmFyaWFibGVzJ11b J2FkZGVkJ106CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsn bWVyZ2VkX3ZhcmlhYmxlcyddLmFwcGVuZCh2KQorCisgICAgICAgICAgICAg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICAg ICAiLyIuam9pbihbc2VsZi5zcWxfdGVtcGxhdGVfcGF0aCwgJ3VwZGF0ZS5z cWwnXSksCisgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgb19kYXRh PW9sZF9kYXRhCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICAgICAjIFBhcnNlIFByaXZpbGVnZXMKKyAgICAg ICAgICAgICAgICBpZiAnYWNsJyBpbiBkYXRhOgorICAgICAgICAgICAgICAg ICAgICBkYXRhWydhY2wnXSA9IHBhcnNlX3ByaXZfdG9fZGIoZGF0YVsnYWNs J10sIFsiWCJdKQorCisgICAgICAgICAgICAgICAgYXJncyA9ICcnCisgICAg ICAgICAgICAgICAgY250ID0gMQorICAgICAgICAgICAgICAgIGlmICdhcmd1 bWVudHMnIGluIGRhdGE6CisgICAgICAgICAgICAgICAgICAgIGZvciBhIGlu IGRhdGFbJ2FyZ3VtZW50cyddOgorICAgICAgICAgICAgICAgICAgICAgICAg aWYgKCgnYXJnbW9kZScgaW4gYSBhbmQgYVsnYXJnbW9kZSddICE9ICdPVVQn IGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFbJ2FyZ21vZGUn XSBpcyBub3QgTm9uZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAp IG9yICdhcmdub2RlJyBub3QgaW4gYSk6CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgJ2FyZ21vZGUnIGluIGE6CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFyZ3MgKz0gYVsnYXJnbW9kZSddICsgIiAiCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgJ2FyZ25hbWUnIGluIGEg YW5kIGFbJ2FyZ25hbWUnXSAhPSAnJ1wKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFuZCBhWydhcmduYW1lJ10gaXMgbm90IE5vbmU6 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgKz0gc2Vs Zi5xdElkZW50KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5jb25uLCBhWydhcmduYW1lJ10pICsgIiAiCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgJ2FyZ3R5cGUnIGluIGE6CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgKz0gYVsnYXJndHlwZSdd ICsgIiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgY250IDwg bGVuKGRhdGFbJ2FyZ3VtZW50cyddKToKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXJncyArPSAnLCAnCisgICAgICAgICAgICAgICAgICAg ICAgICBjbnQgKz0gMQorCisgICAgICAgICAgICAgICAgZGF0YVsnZnVuY19h cmdzJ10gPSBhcmdzCisgICAgICAgICAgICAgICAgIyBDcmVhdGUgbW9kZQor ICAgICAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9p bihbc2VsZi5zcWxfdGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjcmVhdGUuc3FsJ10p LCBkYXRhPWRhdGEpCisgICAgICAgICAgICByZXR1cm4gVHJ1ZSwgU1FMCisK KyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAg cmV0dXJuIEZhbHNlLCBlCisKKyAgICBkZWYgX2ZldGNoX3Byb3BlcnRpZXMo c2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm5pZD1Ob25lKToKKyAgICAg ICAgIiIiCisgICAgICAgIFJldHVybiBGdW5jdGlvbiBQcm9wZXJ0aWVzIHdo aWNoIHdpbGwgYmUgdXNlZCBpbiBwcm9wZXJ0aWVzLAorICAgICAgICBtc3Fs IGZ1bmN0aW9uLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6 IFNlcnZlciBHcm91cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQK KyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNj aWQ6IFNjaGVtYSBJZAorICAgICAgICAgICAgZm5pZDogRnVuY3Rpb24gSWQK KyAgICAgICAgIiIiCisKKyAgICAgICAgcmVzcF9kYXRhID0ge30KKworICAg ICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYuc3Fs X3RlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2NpZD1zY2lkLCBmbmlkPWZuaWQpCisgICAg ICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwp CisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAg ICByZXNwX2RhdGEgPSByZXNbJ3Jvd3MnXVswXQorCisgICAgICAgICMgR2V0 IGZvcm1hdHRlZCBBcmd1bWVudHMKKyAgICAgICAgZnJtdGRfcGFyYW1zLCBm cm10ZF9wcm9hcmdzID0gc2VsZi5fZm9ybWF0X2FyZ3VtZW50c19mcm9tX2Ri KHJlc3BfZGF0YSkKKyAgICAgICAgcmVzcF9kYXRhLnVwZGF0ZShmcm10ZF9w YXJhbXMpCisgICAgICAgIHJlc3BfZGF0YS51cGRhdGUoZnJtdGRfcHJvYXJn cykKKworICAgICAgICAjIEZldGNoIHByaXZpbGVnZXMKKyAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnNxbF90ZW1wbGF0 ZV9wYXRoLCAnYWNsLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZuaWQ9Zm5pZCkKKyAgICAgICAgc3RhdHVzLCBwcm9hY2xyZXMg PSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgaWYgbm90 IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICMgR2V0IEZvcm1hdHRl ZCBQcml2aWxlZ2VzCisgICAgICAgIHJlc3BfZGF0YS51cGRhdGUoc2VsZi5f Zm9ybWF0X3Byb2FjbF9mcm9tX2RiKHByb2FjbHJlc1sncm93cyddKSkKKwor ICAgICAgICAjIFNldCBTeXN0ZW0gRnVuY3Rpb25zIFN0YXR1cworICAgICAg ICByZXNwX2RhdGFbJ3N5c2Z1bmMnXSA9IEZhbHNlCisgICAgICAgIGlmIGZu aWQgPD0gc2VsZi5tYW5hZ2VyLmRiX2luZm9bZGlkXVsnZGF0bGFzdHN5c29p ZCddOgorICAgICAgICAgICAgcmVzcF9kYXRhWydzeXNmdW5jJ10gPSBUcnVl CisKKyAgICAgICAgIyBHZXQgZm9ybWF0dGVkIFNlY3VyaXR5IExhYmVscwor ICAgICAgICBpZiAnc2VjbGFiZWxzJyBpbiByZXNwX2RhdGE6CisgICAgICAg ICAgICByZXNwX2RhdGEudXBkYXRlKHBhcnNlX3NlY19sYWJlbHNfZnJvbV9k YihyZXNwX2RhdGFbJ3NlY2xhYmVscyddKSkKKworICAgICAgICAjIEdldCBm b3JtYXR0ZWQgVmFyaWFibGUKKyAgICAgICAgcmVzcF9kYXRhLnVwZGF0ZShw YXJzZV92YXJpYWJsZXNfZnJvbV9kYihbCisgICAgICAgICAgICB7InNldGNv bmZpZyI6IHJlc3BfZGF0YVsncHJvY29uZmlnJ119XSkpCisKKyAgICAgICAg cmV0dXJuIHJlc3BfZGF0YQorCisgICAgZGVmIF9nZXRfc2NoZW1hKHNlbGYs IHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBTY2hlbWEg TmFtZSBmcm9tIGl0cyBPSUQuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAg ICAgIHNjaWQ6IFNjaGVtYSBJZAorICAgICAgICAiIiIKKyAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnNxbF90ZW1wbGF0 ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9z Y2hlbWEuc3FsJ10pLCBzY2lkPXNjaWQpCisKKyAgICAgICAgc3RhdHVzLCBz Y2hlbWFfbmFtZSA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwpCisK KyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c2NoZW1hX25hbWUpCisK KyAgICAgICAgcmV0dXJuIHNjaGVtYV9uYW1lCisKKyAgICBAY2hlY2tfcHJl Y29uZGl0aW9uCisgICAgZGVmIGRlcGVuZGVudHMoc2VsZiwgZ2lkLCBzaWQs IGRpZCwgc2NpZCwgZm5pZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlz IGZ1bmN0aW9uIGdldCB0aGUgZGVwZW5kZW50cyBhbmQgcmV0dXJuIGFqYXgg cmVzcG9uc2UKKyAgICAgICAgZm9yIHRoZSBGdW5jdGlvbiBub2RlLgorCisg ICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJ ZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRp ZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAor ICAgICAgICAgICAgZG9pZDogRnVuY3Rpb24gSWQKKyAgICAgICAgIiIiCisg ICAgICAgIGRlcGVuZGVudHNfcmVzdWx0ID0gc2VsZi5nZXRfZGVwZW5kZW50 cyhzZWxmLmNvbm4sIGZuaWQpCisgICAgICAgIHJldHVybiBhamF4X3Jlc3Bv bnNlKAorICAgICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW50c19yZXN1bHQs CisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKworICAgIEBj aGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVwZW5kZW5jaWVzKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZuaWQpOgorICAgICAgICAiIiIKKyAg ICAgICAgVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRlcGVuZGVuY2llcyBhbmQg cmV0dXJuIGFqYXggcmVzcG9uc2UKKyAgICAgICAgZm9yIHRoZSBGdW5jdGlv biBub2RlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNl cnZlciBHcm91cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAg ICAgICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6 IFNjaGVtYSBJZAorICAgICAgICAgICAgZG9pZDogRnVuY3Rpb24gSWQKKyAg ICAgICAgIiIiCisgICAgICAgIGRlcGVuZGVuY2llc19yZXN1bHQgPSBzZWxm LmdldF9kZXBlbmRlbmNpZXMoc2VsZi5jb25uLCBmbmlkKQorICAgICAgICBy ZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPWRl cGVuZGVuY2llc19yZXN1bHQsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisg ICAgICAgICkKKworRnVuY3Rpb25WaWV3LnJlZ2lzdGVyX25vZGVfdmlldyhi bHVlcHJpbnQpCisKKworY2xhc3MgUHJvY2VkdXJlTW9kdWxlKFNjaGVtYUNo aWxkTW9kdWxlKToKKyAgICAiIiIKKyAgICBjbGFzcyBQcm9jZWR1cmVNb2R1 bGUoU2NoZW1hQ2hpbGRNb2R1bGUpOgorCisgICAgICAgIFRoaXMgY2xhc3Mg cmVwcmVzZW50cyBUaGUgUHJvY2VkdXJlcyBNb2R1bGUuCisKKyAgICBNZXRo b2RzOgorICAgIC0tLS0tLS0KKyAgICAqIF9faW5pdF9fKCphcmdzLCAqKmt3 YXJncykKKyAgICAgIC0gSW5pdGlhbGl6ZSB0aGUgUHJvY2VkdXJlcyBNb2R1 bGUuCisKKyAgICAqIGdldF9ub2RlcyhnaWQsIHNpZCwgZGlkLCBzY2lkKQor ICAgICAgLSBHZW5lcmF0ZSB0aGUgUHJvY2VkdXJlcyBjb2xsZWN0aW9uIG5v ZGUuCisKKyAgICAqIG5vZGVfaW5vZGUoKToKKyAgICAgIC0gUmV0dXJucyBQ cm9jZWR1cmVzIG5vZGUgYXMgbGVhZiBub2RlLgorCisgICAgKiBzY3JpcHRf bG9hZCgpCisgICAgICAtIExvYWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9yIFBy b2NlZHVyZXMsIHdoZW4gc2NoZW1hIG5vZGUgaXMKKyAgICAgICAgaW5pdGlh bGl6ZWQuCisKKyAgICAiIiIKKworICAgIE5PREVfVFlQRSA9ICdwcm9jZWR1 cmUnCisgICAgQ09MTEVDVElPTl9MQUJFTCA9IGdldHRleHQoIlByb2NlZHVy ZXMiKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJn cyk6CisgICAgICAgICIiIgorICAgICAgICBJbml0aWFsaXplIHRoZSBQcm9j ZWR1cmUgTW9kdWxlLgorICAgICAgICBBcmdzOgorICAgICAgICAgICAgKmFy Z3M6CisgICAgICAgICAgICAqKmt3YXJnczoKKyAgICAgICAgIiIiCisgICAg ICAgIHN1cGVyKFByb2NlZHVyZU1vZHVsZSwgc2VsZikuX19pbml0X18oKmFy Z3MsICoqa3dhcmdzKQorCisgICAgICAgIHNlbGYubWluX3ZlciA9IDkwMTAw CisgICAgICAgIHNlbGYubWF4X3ZlciA9IE5vbmUKKyAgICAgICAgc2VsZi5z ZXJ2ZXJfdHlwZSA9IFsncHBhcyddCisKKyAgICBkZWYgZ2V0X25vZGVzKHNl bGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgICAiIiIKKyAgICAg ICAgR2VuZXJhdGUgUHJvY2VkdXJlcyBjb2xsZWN0aW9uIG5vZGUuCisgICAg ICAgICIiIgorICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJf Y29sbGVjdGlvbl9ub2RlKHNjaWQpCisKKyAgICBAcHJvcGVydHkKKyAgICBk ZWYgbm9kZV9pbm9kZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIE1h a2UgdGhlIG5vZGUgYXMgbGVhZiBub2RlLgorICAgICAgICBSZXR1cm5zOgor ICAgICAgICAgICAgRmFsc2UgYXMgdGhpcyBub2RlIGRvZXNuJ3QgaGF2ZSBj aGlsZCBub2Rlcy4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBGYWxz ZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHNjcmlwdF9sb2FkKHNlbGYp OgorICAgICAgICAiIiIKKyAgICAgICAgTG9hZCB0aGUgbW9kdWxlIHNjcmlw dCBmb3IgUHJvY2VkdXJlcywgd2hlbiB0aGUKKyAgICAgICAgc2NoZW1hIG5v ZGUgaXMgaW5pdGlhbGl6ZWQuCisgICAgICAgICIiIgorICAgICAgICByZXR1 cm4gc2NoZW1hcy5TY2hlbWFNb2R1bGUuTk9ERV9UWVBFCisKKworcHJvY2Vk dXJlX2JsdWVwcmludCA9IFByb2NlZHVyZU1vZHVsZShfX25hbWVfXykKKwor CitjbGFzcyBQcm9jZWR1cmVWaWV3KEZ1bmN0aW9uVmlldyk6CisKKyAgICBu b2RlX3R5cGUgPSBwcm9jZWR1cmVfYmx1ZXByaW50Lm5vZGVfdHlwZQorCisg ICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAg ICAgICIiIgorICAgICAgICBJbml0aWFsaXplIHRoZSBGdW5jdGlvbiBNb2R1 bGUuCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICAqYXJnczoKKyAgICAg ICAgICAgICoqa3dhcmdzOgorICAgICAgICAiIiIKKyAgICAgICAgc3VwZXIo UHJvY2VkdXJlVmlldywgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdz KQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHJlcXVpcmVkX2FyZ3Moc2Vs Zik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIFJlcXVpcmVkIGFy Z3VtZW50cyBmb3IgcHJvY2VkdXJlcyBub2RlLgorICAgICAgICBXaGVyZQor ICAgICAgICAgICAgUmVxdWlyZWQgQXJnczoKKyAgICAgICAgICAgICAgICBu YW1lOiAgICAgICAgICAgTmFtZSBvZiB0aGUgRnVuY3Rpb24KKyAgICAgICAg ICAgICAgICBwcm9uYW1lc3BhY2U6ICAgRnVuY3Rpb24gTmFtZXNwYWNlCisg ICAgICAgICAgICAgICAgbGFubmFtZTogICAgICAgIEZ1bmN0aW9uIExhbmd1 YWdlIE5hbWUKKyAgICAgICAgICAgICAgICBwcm9zcmM6ICAgICAgICAgRnVu Y3Rpb24gQ29kZQorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIFsnbmFt ZScsCisgICAgICAgICAgICAgICAgJ3Byb25hbWVzcGFjZScsCisgICAgICAg ICAgICAgICAgJ2xhbm5hbWUnLAorICAgICAgICAgICAgICAgICdwcm9zcmMn XQorCisgICAgZGVmIG1vZHVsZV9qcyhzZWxmKToKKyAgICAgICAgIiIiCisg ICAgICAgIExvYWQgSlMgZmlsZSAocHJvY2VkdXJlcy5qcykgZm9yIHRoaXMg bW9kdWxlLgorICAgICAgICAiIiIKKworICAgICAgICByZXR1cm4gbWFrZV9y ZXNwb25zZSgKKyAgICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAg ICAgICAgICAgICAicHJvY2VkdXJlL2pzL3Byb2NlZHVyZXMuanMiLAorICAg ICAgICAgICAgICAgIF89Z2V0dGV4dAorICAgICAgICAgICAgKSwKKyAgICAg ICAgICAgIDIwMCwgeydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC1q YXZhc2NyaXB0J30KKyAgICAgICAgKQorCitQcm9jZWR1cmVWaWV3LnJlZ2lz dGVyX25vZGVfdmlldyhwcm9jZWR1cmVfYmx1ZXByaW50KQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3N0YXRpYy9pbWcvY29sbC1m dW5jdGlvbi5wbmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvc3RhdGlj L2ltZy9jb2xsLWZ1bmN0aW9uLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw Li5jNDQ4NzRlNTU3NGU2MjRjMjY4NzY4OWFjNzVmM2JhNGVkNjllODExCkdJ VCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzNDkKemNtZUFTQE4/KG9sSHlgdVZC cSFpYTB2cF4wd0IhNjM/d3lsYEdiTCFhZXo7VkUwQ1ZMPTg7Iz8qYC0oaF5z Umk5CnoqPiZ+YykzNFBGP31wYzBvT31GVCZlWXBnMyFsQ0p7e1FwdUtQbH1H YXdiME4rVnRYcnkmKWVeOClIZTNVb2VCaQp6dm0wcVo0cmhUIVdIRkhUMEFz aDQqPipyaXFOal52aHtXYUNlc3toRDF7XkZPdD9xdlB6ckkofnZGekVnRUVh Q1QKektuOCZmQ2N8VEBvSHlEd3wzMCFJblh+VnA9RERRQHxFfVNpV05EZjFk NW97dk9TOV48akg2SlElIXtYQTY4fj1UCnpVVkhVLShXUilfelpaWjFfeHQo eGpofnJYVy17fUJjJDs0aHZgbj9jSEtIVVh1X1Y8aHhoTkcjRiZHJmI4dE5K dAp6PktkN2I3QEFyY218R2NgWTgja1k4NWw1RG9ffm08QXZacklHcCFQJiE5 ZHIqNX53R3ska0B1biNMQj0tK1dASDMKVTtNRFpjSDkhcHZwMDBpXz56b3By MDZLU3FjbU16WgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3N0YXRpYy9pbWcvY29sbC1w cm9jZWR1cmUucG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3N0YXRp Yy9pbWcvY29sbC1wcm9jZWR1cmUucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAuLjdjMTNhOWJjNzNhNzgyYjUxMzkwOTVhZjU5NmUxNWQ3YjY4ZGQyMGMK R0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDMzNwp6Y21lQVNATj8ob2xIeWB1 VkJxIWlhMHZwXjB3QiE3Mz8kIyllRlBGdjVBWD9iMT05RUMlc0NibV5uVU4m ZHNDKWQKeiVnJW0oPyVjSk9tVUJeMiYpMlRLUiRUbzVgfWI/cil4NmV4Jnd4 cjlPTT83QDg2Mk03TkNSPj4zcF5yPWZ3VHUwCnp5UGVGbzEyUGdsVF52ST10 fHVvWGdhb0I5RnNtZ2lHYTU3cHhfWE1iYUJGSHhPMHpPWldAV3pBQHspM0Jk IzFFdgp6Zj5uUz13UnlsKTBnc0lEWUskOE0xVD5taih3R2phRVU8al8pTHtY S1ZkaG4oMkBpWGB0a007KDhTYj1qJXglOE8KeiYmS2R6bVopUndHek1Sd1d2 VjV2NWhXPiFDODxgKU1YNWxGIU58YlNQfWpndipUXikpKEEzSm4reylOWSty WjRxCnp6K2opO3JUSGl0YWBSSSUoPCh0NDQwSGBGZnFGdVdqSUImZXRQRnF9 ZkkxQ01PJUdpSSlXRzJCPmdUZX5EV000ZgpEQyZGcSEKCmxpdGVyYWwgMApI Y21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy9zdGF0aWMvaW1nL2Z1bmN0aW9uLnBuZyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy9zdGF0aWMvaW1nL2Z1bmN0aW9uLnBuZwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwLi42NTY4NTRhMDE5MWI1ZGQ1ZDQ2NWY5MGNmYmNlZWJk YzM5MTNmMWEyCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzMjUKemNtZUFT QE4/KG9sSHlgdVZCcSFpYTB2cF4wd0IhNzM/JCMpZUZQSEYzaClWVzE9M1Uz Sm58fCF5WSRNUmhhZG17Cnp7cn5VWT1idX5kZTRjZ3FaUzlpaD17KmxxSXYk a0dlJHYwPVd5K294K2ttUFdPTT83QDg2Mk03TkNSPj4zcF5yPQp6ZndUdTB5 UGVGbzEyVGQ8VF52ST10fHVvckZnYk16JW5IMmUhRWgjX3NJWmE0YTgoLXtX Mj9sfUROYDw4WUg7Iy0KenN0fS1aO0pfNnxIWkMzP1c1PExeMz13Qm5nKGw/ byt9ZHM0JGVVelUlJEMqblBMKGxhX1hQJXFpbHhHYms3c0IhCnowWm1zZWFn OFdSTmkwZFZOLWp6VFFWZDIwaDZjS1pNIUUpdUF3fnZQQ2RPN0tyckhMa1J0 NSgxLXMhREUoVTY7OwpsbDleVHMoT19UKykmTnYoVnI1X2soUXM7ZD1vKzh+ MjJXUSVtdnY0Rk8jc0drYUFnMWgKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9zdGF0aWMv aW1nL3Byb2NlZHVyZS5wbmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv c3RhdGljL2ltZy9wcm9jZWR1cmUucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAuLjhiNjVkZmY5ZWIyYzM3M2RmMDMxNjY5YWRiYTdhODJjMGFlMmFhYTYK R0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDMyMgp6Y21lQVNATj8ob2xIeWB1 VkJxIWlhMHZwXjB3QiE3Mz8kIyllRlBGdjVBWD9iMT05Q3Mle21xb15tNkNV QTFffH4KenxOSG1icWVyank/UiZJciswRXxtT0ohdmppO0olfUg8dUxNeSRu PiFTUTZ3SCU7NTBzTWpEWEFTPk8+XzQ1VTU0CnoqeklKdDlncT5ePkVhbHxh WG1TfmZ5dD4kVXs+SHc0fjg9ZE1UTHpWaE82NHg3K1dRI1BNTEQpUWlHR3ZR LXVKUAp6MHwlfSF2VF5iRjcmfDZSVnUoMXFEbHtSdD1oa2xYTSYyWj1WeiNX bE1IM2lTI2J6KXQjNksxSz9zdTxvOHFqcHIKejY0IXs1bCpFISR0S18wb0Fq TSMwVX0mZ29WNW48azhlKFdfV25nWSlZXkg1c1dAVFdvUHd2dXU2Yi1yZ0RW YkBOCnBBUG9rKDI5YGlRQXg2ZWxDTUgkfUtuKn5oMkIpVG50XnNPYkBPMVRh Uz84M3sxT1FoI1pGVD92CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1 bmN0aW9uL2Nzcy9mdW5jdGlvbi5jc3MgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL2Nzcy9mdW5jdGlvbi5jc3MKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZiMmU3MQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vY3NzL2Z1bmN0aW9uLmNzcwpAQCAtMCwwICsxLDMg QEAKKy5mdW5jdGlvbnNfY29kZSB7CisgICAgaGVpZ2h0OiAxMzBweCAhaW1w b3J0YW50OworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVu Y3Rpb24vanMvZnVuY3Rpb25zLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9qcy9mdW5jdGlvbnMuanMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2VjZWMxNQotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vanMvZnVuY3Rpb25zLmpzCkBAIC0wLDAgKzEsNDM3IEBA CisvKiBDcmVhdGUgYW5kIFJlZ2lzdGVyIEZ1bmN0aW9uIENvbGxlY3Rpb24g YW5kIE5vZGUuICovCitkZWZpbmUoCisgICAgICAgIFsnanF1ZXJ5JywgJ3Vu ZGVyc2NvcmUnLCAndW5kZXJzY29yZS5zdHJpbmcnLAorICAgICAgICAgJ3Bn YWRtaW4nLCAncGdhZG1pbi5icm93c2VyJywgJ2FsZXJ0aWZ5JywKKyAgICAg ICAgICAncGdhZG1pbi5icm93c2VyLmNvbGxlY3Rpb24nLCAncGdhZG1pbi5i cm93c2VyLnNlcnZlci5wcml2aWxlZ2UnXSwKK2Z1bmN0aW9uKCQsIF8sIFMs IHBnQWRtaW4sIHBnQnJvd3NlciwgYWxlcnRpZnkpIHsKKworICBpZiAoIXBn QnJvd3Nlci5Ob2Rlc1snY29sbC1mdW5jdGlvbiddKSB7CisgICAgdmFyIGZ1 bmN0aW9ucyA9IHBnQWRtaW4uQnJvd3Nlci5Ob2Rlc1snY29sbC1mdW5jdGlv biddID0KKyAgICAgIHBnQWRtaW4uQnJvd3Nlci5Db2xsZWN0aW9uLmV4dGVu ZCh7CisgICAgICAgIG5vZGU6ICdmdW5jdGlvbicsCisgICAgICAgIGxhYmVs OiAne3sgXygnRnVuY3Rpb25zJykgfX0nLAorICAgICAgICB0eXBlOiAnY29s bC1mdW5jdGlvbicsCisgICAgICAgIGNvbHVtbnM6IFsnbmFtZScsICdmdW5j b3duZXInLCAnZGVzY3JpcHRpb24nXQorICAgICAgfSk7CisgIH07CisKKyAg Ly8gU2VjdXJpdHkgTW9kZWwKKyAgdmFyIFNlY3VyaXR5TW9kZWwgPSBCYWNr Zm9ybS5TZWN1cml0eU1vZGVsID0gcGdBZG1pbi5Ccm93c2VyLk5vZGUuTW9k ZWwuZXh0ZW5kKHsKKyAgICBkZWZhdWx0czogeworICAgICAgcHJvdmlkZXI6 IG51bGwsCisgICAgICBsYWJlbDogbnVsbAorICAgIH0sCisgICAgc2NoZW1h OiBbeworICAgICAgaWQ6ICdwcm92aWRlcicsIGxhYmVsOiAne3sgXygnUHJv dmlkZXInKSB9fScsCisgICAgICB0eXBlOiAndGV4dCcKKyAgICB9LHsKKyAg ICAgIGlkOiAnbGFiZWwnLCBsYWJlbDogJ3t7IF8oJ1NlY3VyaXR5IExhYmVs JykgfX0nLAorICAgICAgdHlwZTogJ3RleHQnCisgICAgfV0sCisgICAgdmFs aWRhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGVyciA9IHt9LAorICAg ICAgICAgIGVycm1zZyA9IG51bGwsCisgICAgICAgICAgZGF0YSA9IHRoaXMu dG9KU09OKCk7CisKKyAgICAgIGlmIChfLmlzVW5kZWZpbmVkKGRhdGEubGFi ZWwpIHx8CisgICAgICAgIF8uaXNOdWxsKGRhdGEubGFiZWwpIHx8CisgICAg ICAgIFN0cmluZyhkYXRhLmxhYmVsKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywg JycpID09ICcnKSB7CisgICAgICAgIHJldHVybiBfKCJQbGVhc2Ugc3BlY2lm eSB0aGUgdmFsdWUgZm9yIGFsbCB0aGUgc2VjdXJpdHkgcHJvdmlkZXJzLiIp OworICAgICAgfQorICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICB9KTsK KworICAvLyBBcmd1bWVudCBNb2RlbAorICB2YXIgQXJndW1lbnRNb2RlbCA9 IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7CisgICAgaWRB dHRyaWJ1dGU6ICdhcmdpZCcsCisgICAgZGVmYXVsdHM6IHsKKyAgICAgIGFy Z2lkOiB1bmRlZmluZWQsCisgICAgICBhcmd0eXBlOiB1bmRlZmluZWQsCisg ICAgICBhcmdtb2RlOiB1bmRlZmluZWQsCisgICAgICBhcmduYW1lOiB1bmRl ZmluZWQsCisgICAgICBhcmdkZWZ2YWw6IHVuZGVmaW5lZAorICAgIH0sCisg ICAgc2NoZW1hOiBbeworICAgICAgaWQ6ICdhcmdpZCcsIHZpc2libGU6IGZh bHNlLCB0eXBlOiAndGV4dCcsCisgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMn LCAnZWRpdCcsJ2NyZWF0ZSddCisgICAgICB9LHsKKyAgICAgICAgaWQ6ICdh cmd0eXBlJywgbGFiZWw6J3t7IF8oJ0RhdGEgVHlwZScpIH19JywgY2VsbDoK KyAgICAgICAgJ25vZGUtYWpheC1vcHRpb25zJywgY2VsbEhlYWRlckNsYXNz ZXM6ICd3aWR0aF9wZXJjZW50XzMwJywKKyAgICAgICAgY29udHJvbDogJ25v ZGUtYWpheC1vcHRpb25zJywgdHlwZTogJ3RleHQnLCB1cmw6ICdnZXRfdHlw ZXMnLAorICAgICAgICBlZGl0YWJsZTogZnVuY3Rpb24obSkgeworICAgICAg ICAgIHJldHVybiBfLmlzVW5kZWZpbmVkKG0uaXNOZXcpID8gdHJ1ZSA6IG0u aXNOZXcoKTsKKyAgICAgICAgfQorICAgICAgfSx7CisgICAgICAgIGlkOiAn YXJnbW9kZScsIGxhYmVsOid7eyBfKCdNb2RlJykgfX0nLCB0eXBlOiAnb3B0 aW9ucycsCisgICAgICAgIGNvbnRyb2w6ICdub2RlLWFqYXgtb3B0aW9ucycs IGNlbGxIZWFkZXJDbGFzc2VzOid3aWR0aF9wZXJjZW50XzIwJywKKyAgICAg ICAgb3B0aW9uczpbCisgICAgICAgICAgeydsYWJlbCc6ICdJTicsICd2YWx1 ZSc6ICdJTid9LAorICAgICAgICAgIHsnbGFiZWwnOiAnT1VUJywgJ3ZhbHVl JzogJ09VVCd9LAorICAgICAgICAgIHsnbGFiZWwnOiAnSU5PVVQnLCAndmFs dWUnOiAnSU5PVVQnfSwKKyAgICAgICAgICB7J2xhYmVsJzogJ1ZBUklBRElD JywgJ3ZhbHVlJzogJ1ZBUklBRElDJ30KKyAgICAgICAgXSwgZWRpdGFibGU6 IGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgICAgIHJldHVybiBfLmlzVW5kZWZp bmVkKG0uaXNOZXcpID8gdHJ1ZSA6IG0uaXNOZXcoKTsKKyAgICAgICAgICAg fQorICAgICAgfSx7CisgICAgICAgIGlkOiAnYXJnbmFtZScsIGxhYmVsOid7 eyBfKCdBcmd1bWVudCBOYW1lJykgfX0nLCB0eXBlOiAndGV4dCcsCisgICAg ICAgIGNlbGw6ICdzdHJpbmcnLCBlZGl0YWJsZTogdHJ1ZSwgY2VsbEhlYWRl ckNsYXNzZXM6J3dpZHRoX3BlcmNlbnRfMzAnLAorICAgICAgfSx7CisgICAg ICAgIGlkOiAnYXJnZGVmdmFsJywgbGFiZWw6J3t7IF8oJ0RlZmF1bHQgVmFs dWUnKSB9fScsIHR5cGU6ICd0ZXh0JywKKyAgICAgICAgY2VsbDogJ3N0cmlu ZycsIGVkaXRhYmxlOiB0cnVlLCAgY2VsbEhlYWRlckNsYXNzZXM6J3dpZHRo X3BlcmNlbnRfMjAnCisgICAgICB9CisgICAgXSwKKyAgICB0b0pTT046IEJh Y2tib25lLk1vZGVsLnByb3RvdHlwZS50b0pTT04KKyAgfSk7CisKKyAgaWYg KCFwZ0Jyb3dzZXIuTm9kZXNbJ2Z1bmN0aW9uJ10pIHsKKyAgICBwZ0FkbWlu LkJyb3dzZXIuTm9kZXNbJ2Z1bmN0aW9uJ10gPSBwZ0Jyb3dzZXIuTm9kZS5l eHRlbmQoeworICAgICAgdHlwZTogJ2Z1bmN0aW9uJywKKyAgICAgIGxhYmVs OiAne3sgXygnRnVuY3Rpb24nKSB9fScsCisgICAgICBjb2xsZWN0aW9uX3R5 cGU6ICdjb2xsLWZ1bmN0aW9uJywKKyAgICAgIGhhc1NRTDogdHJ1ZSwKKyAg ICAgIGhhc0RlcGVuZHM6IHRydWUsCisgICAgICBwYXJlbnRfdHlwZTogWydz Y2hlbWEnXSwKKyAgICAgIEluaXQ6IGZ1bmN0aW9uKGFyZ3MpIHsKKyAgICAg ICAgLyogQXZvaWQgbXVsaXRwbGUgcmVnaXN0cmF0aW9uIG9mIG1lbnVzICov CisgICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKQorICAgICAgICAgICAg cmV0dXJuOworCisgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlOwor CisgICAgICAgIHBnQnJvd3Nlci5hZGRfbWVudXMoW3sKKyAgICAgICAgICBu YW1lOiAnY3JlYXRlX2Z1bmN0aW9uX29uX2NvbGwnLCBub2RlOiAnY29sbC1m dW5jdGlvbicsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBb J29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJv cGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlv cml0eTogNCwgbGFiZWw6ICd7eyBfKCdGdW5jdGlvbi4uLicpIH19JywKKyAg ICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tZnVuY3Rpb24nLCBkYXRh OiB7YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6IHRydWV9LAorICAgICAgICAg IGVuYWJsZTogJ2NhbkNyZWF0ZScKKyAgICAgICAgfSx7CisgICAgICAgICAg bmFtZTogJ2NyZWF0ZV9mdW5jdGlvbicsIG5vZGU6ICdmdW5jdGlvbicsIG1v ZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdj b250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisg ICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFi ZWw6ICd7eyBfKCdGdW5jdGlvbi4uLicpIH19JywKKyAgICAgICAgICBpY29u OiAnd2NUYWJJY29uIGljb24tZnVuY3Rpb24nLCBkYXRhOiB7YWN0aW9uOiAn Y3JlYXRlJywgY2hlY2s6IHRydWV9LAorICAgICAgICAgIGVuYWJsZTogJ2Nh bkNyZWF0ZScKKyAgICAgICAgfSx7CisgICAgICAgICAgbmFtZTogJ2NyZWF0 ZV9mdW5jdGlvbicsIG5vZGU6ICdzY2hlbWEnLCBtb2R1bGU6IHRoaXMsCisg ICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxs YmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVn b3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygnRnVu Y3Rpb24uLi4nKSB9fScsCisgICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBp Y29uLWZ1bmN0aW9uJywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZScsIGNoZWNr OiBmYWxzZX0sCisgICAgICAgICAgZW5hYmxlOiAnY2FuQ3JlYXRlJworICAg ICAgICB9CisgICAgICAgIF0pOworCisgICAgICB9LAorICAgICAgY2FuRHJv cDogcGdCcm93c2VyLk5vZGVzWydzY2hlbWEnXS5jYW5DaGlsZERyb3AsCisg ICAgICBjYW5Ecm9wQ2FzY2FkZTogcGdCcm93c2VyLk5vZGVzWydzY2hlbWEn XS5jYW5DaGlsZERyb3AsCisgICAgICBtb2RlbDogcGdBZG1pbi5Ccm93c2Vy Lk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICAgICAgaW5pdGlhbGl6ZTogZnVu Y3Rpb24oYXR0cnMsIGFyZ3MpIHsKKyAgICAgICAgICB2YXIgaXNOZXcgPSAo Xy5zaXplKGF0dHJzKSA9PT0gMCk7CisgICAgICAgICAgaWYgKGlzTmV3KSB7 CisgICAgICAgICAgICAvLyBTZXQgU2VsZWN0ZWQgU2NoZW1hCisgICAgICAg ICAgICBzY2hlbWFfaWQgPSBhcmdzLm5vZGVfaW5mby5zY2hlbWEuX2lkCisg ICAgICAgICAgICB0aGlzLnNldCh7J3Byb25hbWVzcGFjZSc6IHNjaGVtYV9p ZH0sIHtzaWxlbnQ6IHRydWV9KTsKKworICAgICAgICAgICAgLy8gU2V0IEN1 cnJlbnQgVXNlcgorICAgICAgICAgICAgdmFyIHVzZXJJbmZvID0gcGdCcm93 c2VyLnNlcnZlckluZm9bYXJncy5ub2RlX2luZm8uc2VydmVyLl9pZF0udXNl cjsKKyAgICAgICAgICAgIHRoaXMuc2V0KHsnZnVuY293bmVyJzogdXNlcklu Zm8ubmFtZX0sIHtzaWxlbnQ6IHRydWV9KTsKKyAgICAgICAgICB9CisgICAg ICAgICAgcGdBZG1pbi5Ccm93c2VyLk5vZGUuTW9kZWwucHJvdG90eXBlLmlu aXRpYWxpemUuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKKyAgICAgICAgfSwK KyAgICAgICAgZGVmYXVsdHM6IHsKKyAgICAgICAgICBuYW1lOiB1bmRlZmlu ZWQsCisgICAgICAgICAgb2lkOiB1bmRlZmluZWQsCisgICAgICAgICAgeG1p bjogdW5kZWZpbmVkLAorICAgICAgICAgIGZ1bmNvd25lcjogdW5kZWZpbmVk LAorICAgICAgICAgIHByb25hbWVzcGFjZTogdW5kZWZpbmVkLAorICAgICAg ICAgIGRlc2NyaXB0aW9uOiB1bmRlZmluZWQsCisgICAgICAgICAgcHJvbmFy Z3M6IHVuZGVmaW5lZCwgLyogQXJndW1lbnQgQ291bnQgKi8KKyAgICAgICAg ICBwcm9hcmdzOiB1bmRlZmluZWQsIC8qIEFyZ3VtZW50cyAqLworICAgICAg ICAgIHByb2FyZ3R5cGVuYW1lczogdW5kZWZpbmVkLCAvKiBBcmd1bWVudCBT aWduYXR1cmUgKi8KKyAgICAgICAgICBwcm9yZXR0eXBlbmFtZTogdW5kZWZp bmVkLCAvKiBSZXR1cm4gVHlwZSAqLworICAgICAgICAgIGxhbm5hbWU6ICdz cWwnLCAvKiBMYW5ndWFnZSBOYW1lIGluIHdoaWNoIGZ1bmN0aW9uIGlzIGJl aW5nIHdyaXR0ZW4gKi8KKyAgICAgICAgICBwcm92b2xhdGlsZTogdW5kZWZp bmVkLCAvKiBWb2xhdGlsaXR5ICovCisgICAgICAgICAgcHJvcmV0c2V0OiB1 bmRlZmluZWQsIC8qIFJldHVybiBTZXQgKi8KKyAgICAgICAgICBwcm9pc3N0 cmljdDogdW5kZWZpbmVkLAorICAgICAgICAgIHByb3NlY2RlZjogdW5kZWZp bmVkLCAvKiBTZWN1cml0eSBvZiBkZWZpbmVyICovCisgICAgICAgICAgcHJv aXN3aW5kb3c6IHVuZGVmaW5lZCwgLyogV2luZG93IEZ1bmN0aW9uID8gKi8K KyAgICAgICAgICBwcm9jb3N0OiB1bmRlZmluZWQsIC8qIEVzdGltYXRlZCBl eGVjdXRpb24gQ29zdCAqLworICAgICAgICAgIHByb3Jvd3M6IHVuZGVmaW5l ZCwgLyogRXN0aW1hdGVkIG51bWJlciBvZiByb3dzICovCisgICAgICAgICAg cHJvbGVha3Byb29mOiB1bmRlZmluZWQsCisgICAgICAgICAgYXJndW1lbnRz OiBbXSwKKyAgICAgICAgICBwcm9zcmM6IHVuZGVmaW5lZCwKKyAgICAgICAg ICBwcm9zcmNfYzogdW5kZWZpbmVkLAorICAgICAgICAgIHByb2JpbjogJyRs aWJkaXIvJywKKyAgICAgICAgICBvcHRpb25zOiBbXSwKKyAgICAgICAgICB2 YXJpYWJsZXM6IFtdLAorICAgICAgICAgIHByb2FjbDogdW5kZWZpbmVkLAor ICAgICAgICAgIHNlY2xhYmVsczogW10sCisgICAgICAgICAgYWNsOiBbXSwK KyAgICAgICAgICBzeXNmdW5jOiB1bmRlZmluZWQKKyAgICAgICAgfSwKKyAg ICAgICAgc2NoZW1hOiBbeworICAgICAgICAgIGlkOiAnbmFtZScsIGxhYmVs OiAne3sgXygnTmFtZScpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAg ICAgdHlwZTogJ3RleHQnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnY3JlYXRl JywgJ2VkaXQnXQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ29pZCcs IGxhYmVsOiAne3sgXygnT0lEJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAg ICAgICAgICB0eXBlOiAndGV4dCcgLCBtb2RlOiBbJ3Byb3BlcnRpZXMnXQor ICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2Z1bmNvd25lcicsIGxhYmVs OiAne3sgXygnT3duZXInKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAg ICAgIGNvbnRyb2w6IEJhY2tmb3JtLk5vZGVMaXN0QnlOYW1lQ29udHJvbCwg bm9kZTogJ3JvbGUnLCAgdHlwZToKKyAgICAgICAgICAndGV4dCcsIGRpc2Fi bGVkOiAnaXNEaXNhYmxlZCcKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6 ICdwcm9uYW1lc3BhY2UnLCBsYWJlbDogJ3t7IF8oJ1NjaGVtYScpIH19Jywg Y2VsbDogJ3N0cmluZycsCisgICAgICAgICAgY29udHJvbDogJ25vZGUtbGlz dC1ieS1pZCcsIHR5cGU6ICd0ZXh0JywgY2FjaGVfbGV2ZWw6ICdkYXRhYmFz ZScsCisgICAgICAgICAgbm9kZTogJ3NjaGVtYScKKyAgICAgICAgfSx7Cisg ICAgICAgICAgaWQ6ICdzeXNmdW5jJywgbGFiZWw6ICd7eyBfKCdTeXN0ZW0g RnVuY3Rpb24/JykgfX0nLAorICAgICAgICAgICBjZWxsOidib29sZWFuJywg dHlwZTogJ3N3aXRjaCcsCisgICAgICAgICAgIG1vZGU6IFsncHJvcGVydGll cyddCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnZGVzY3JpcHRpb24n LCBsYWJlbDogJ3t7IF8oJ0NvbW1lbnQnKSB9fScsIGNlbGw6ICdzdHJpbmcn LAorICAgICAgICAgIHR5cGU6ICdtdWx0aWxpbmUnCisgICAgICAgIH0sewor ICAgICAgICAgIGlkOiAncHJvbmFyZ3MnLCBsYWJlbDogJ3t7IF8oJ0FyZ3Vt ZW50IENvdW50JykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0 eXBlOiAndGV4dCcsIGdyb3VwOiAne3sgXygnRGVmaW5pdGlvbicpIH19Jywg bW9kZTogWydwcm9wZXJ0aWVzJ10KKyAgICAgICAgfSx7CisgICAgICAgICAg aWQ6ICdwcm9hcmdzJywgbGFiZWw6ICd7eyBfKCdBcmd1bWVudHMnKSB9fScs IGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZ3Jv dXA6ICd7eyBfKCdEZWZpbml0aW9uJykgfX0nLCBtb2RlOiBbJ3Byb3BlcnRp ZXMnLCAnZWRpdCddLAorICAgICAgICAgIGRpc2FibGVkOiAnaXNEaXNhYmxl ZCcKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdwcm9hcmd0eXBlbmFt ZXMnLCBsYWJlbDogJ3t7IF8oJ1NpZ25hdHVyZSBBcmd1bWVudHMnKSB9fScs IGNlbGw6CisgICAgICAgICAgJ3N0cmluZycsIHR5cGU6ICd0ZXh0JywgZ3Jv dXA6ICd7eyBfKCdEZWZpbml0aW9uJykgfX0nLCBtb2RlOiBbJ3Byb3BlcnRp ZXMnXSwKKyAgICAgICAgICBkaXNhYmxlZDogJ2lzRGlzYWJsZWQnCisgICAg ICAgIH0seworICAgICAgICAgIGlkOiAncHJvcmV0dHlwZW5hbWUnLCBsYWJl bDogJ3t7IF8oJ1JldHVybiBUeXBlJykgfX0nLCBjZWxsOiAnc3RyaW5nJywK KyAgICAgICAgICBjb250cm9sOiAnbm9kZS1hamF4LW9wdGlvbnMnLCB0eXBl OiAndGV4dCcsIGdyb3VwOiAne3sgXygnRGVmaW5pdGlvbicpIH19JywKKyAg ICAgICAgICB1cmw6ICdnZXRfdHlwZXMnLCBkaXNhYmxlZDogJ2lzRGlzYWJs ZWQnLAorICAgICAgICAgIG1vZGU6IFsnY3JlYXRlJ10KKyAgICAgICAgfSx7 CisgICAgICAgICAgaWQ6ICdwcm9yZXR0eXBlbmFtZScsIGxhYmVsOiAne3sg XygnUmV0dXJuIFR5cGUnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAg ICAgIHR5cGU6ICd0ZXh0JywgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykg fX0nLCBkaXNhYmxlZDogdHJ1ZSwKKyAgICAgICAgICBtb2RlOiBbJ3Byb3Bl cnRpZXMnLCAnZWRpdCddCisgICAgICAgIH0sICB7CisgICAgICAgICAgaWQ6 ICdsYW5uYW1lJywgbGFiZWw6ICd7eyBfKCdMYW5ndWFnZScpIH19JywgY2Vs bDogJ3N0cmluZycsCisgICAgICAgICAgY29udHJvbDogJ25vZGUtYWpheC1v cHRpb25zJywgdHlwZTogJ3RleHQnLCBncm91cDogJ3t7IF8oJ0RlZmluaXRp b24nKSB9fScsCisgICAgICAgICAgdXJsOiAnZ2V0X2xhbmd1YWdlcycsIGRp c2FibGVkOiAnaXNEaXNhYmxlZCcKKyAgICAgICAgfSx7CisgICAgICAgICAg aWQ6ICdwcm9zcmMnLCBsYWJlbDogJ3t7IF8oJ0NvZGUnKSB9fScsIGNlbGw6 ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICdtdWx0aWxpbmUnLCBncm91 cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScsIGRlcHM6IFsnbGFubmFtZSdd LCAgdmlzaWJsZToKKyAgICAgICAgICBmdW5jdGlvbihtKSB7CisgICAgICAg ICAgICBpZiAobS5nZXQoJ2xhbm5hbWUnKSA9PSAnYycpIHsKKyAgICAgICAg ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAg ICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgfSwgbWF4bGVuZ3RoOiAnJywg ZXh0cmFDbGFzc2VzOiBbJ2Z1bmN0aW9uc19jb2RlJ10KKyAgICAgICAgfSx7 CisgICAgICAgICAgaWQ6ICdwcm9iaW4nLCBsYWJlbDogJ3t7IF8oJ09iamVj dCBGaWxlJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBl OiAndGV4dCcsIGdyb3VwOiAne3sgXygnRGVmaW5pdGlvbicpIH19JywgZGVw czogWydsYW5uYW1lJ10sIHZpc2libGU6CisgICAgICAgICAgZnVuY3Rpb24o bSkgeworICAgICAgICAgICAgaWYgKG0uZ2V0KCdsYW5uYW1lJykgPT0gJ2Mn KSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7 CisgICAgICAgICAgfQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3By b3NyY19jJywgbGFiZWw6ICd7eyBfKCdMaW5rIFN5bWJvbCcpIH19JywgY2Vs bDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBncm91cDog J3t7IF8oJ0RlZmluaXRpb24nKSB9fScsICBkZXBzOiBbJ2xhbm5hbWUnXSwg dmlzaWJsZToKKyAgICAgICAgICBmdW5jdGlvbihtKSB7CisgICAgICAgICAg ICBpZiAobS5nZXQoJ2xhbm5hbWUnKSA9PSAnYycpIHsgcmV0dXJuIHRydWU7 IH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICB9Cisg ICAgICAgIH0seworICAgICAgICAgIGlkOiAncHJvdm9sYXRpbGUnLCBsYWJl bDogJ3t7IF8oJ1ZvbGF0aWxpdHknKSB9fScsIGNlbGw6ICdzdHJpbmcnLAor ICAgICAgICAgIGNvbnRyb2w6ICdub2RlLWFqYXgtb3B0aW9ucycsIHR5cGU6 ICd0ZXh0JywgZ3JvdXA6ICd7eyBfKCdPcHRpb25zJykgfX0nLAorICAgICAg ICAgIG9wdGlvbnM6WworICAgICAgICAgICAgeydsYWJlbCc6ICdWT0xBVElM RScsICd2YWx1ZSc6ICd2J30sCisgICAgICAgICAgICB7J2xhYmVsJzogJ1NU QUJMRScsICd2YWx1ZSc6ICdzJ30sCisgICAgICAgICAgICB7J2xhYmVsJzog J0lNTVVUQUJMRScsICd2YWx1ZSc6ICdpJ30sCisgICAgICAgICAgXSwgZGlz YWJsZWQ6ICdpc0Rpc2FibGVkJworICAgICAgICB9LHsKKyAgICAgICAgICBp ZDogJ3Byb3JldHNldCcsIGxhYmVsOiAne3sgXygnUmV0dXJucyBhIFNldD8n KSB9fScsIGdyb3VwOiAne3sgXygnT3B0aW9ucycpIH19JywKKyAgICAgICAg ICBjZWxsOidib29sZWFuJywgdHlwZTogJ3N3aXRjaCcsICBkaXNhYmxlZDog J2lzRGlzYWJsZWQnCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAncHJv aXNzdHJpY3QnLCBsYWJlbDogJ3t7IF8oJ1N0cmljdD8nKSB9fScsIGdyb3Vw OiAne3sgXworICAgICAgICAgICgnT3B0aW9ucycpIH19JywKKyAgICAgICAg ICBjZWxsOidib29sZWFuJywgdHlwZTogJ3N3aXRjaCcsIGRpc2FibGVkOiAn aXNEaXNhYmxlZCcKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdwcm9z ZWNkZWYnLCBsYWJlbDogJ3t7IF8oJ1NlY3VyaXR5IG9mIGRlZmluZXI/Jykg fX0nLAorICAgICAgICAgICBncm91cDogJ3t7IF8oJ09wdGlvbnMnKSB9fScs IGNlbGw6J2Jvb2xlYW4nLCB0eXBlOiAnc3dpdGNoJywKKyAgICAgICAgICAg ZGlzYWJsZWQ6ICdpc0Rpc2FibGVkJworICAgICAgICB9LHsKKyAgICAgICAg ICBpZDogJ3Byb2lzd2luZG93JywgbGFiZWw6ICd7eyBfKCdXaW5kb3c/Jykg fX0nLAorICAgICAgICAgICBncm91cDogJ3t7IF8oJ09wdGlvbnMnKSB9fScs IGNlbGw6J2Jvb2xlYW4nLCB0eXBlOiAnc3dpdGNoJywKKyAgICAgICAgICAg IGRpc2FibGVkOiAnaXNEaXNhYmxlZCcKKyAgICAgICAgfSx7CisgICAgICAg ICAgaWQ6ICdwcm9jb3N0JywgbGFiZWw6ICd7eyBfKCdFc3RpbWF0ZWQgQ29z dCcpIH19JywgZ3JvdXA6ICd7eyBfKCdPcHRpb25zJykgfX0nLAorICAgICAg ICAgIGNlbGw6J3N0cmluZycsIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6ICdp c0Rpc2FibGVkJworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3Byb3Jv d3MnLCBsYWJlbDogJ3t7IF8oJ0VzdGltYXRlZCBSb3dzJykgfX0nLCBncm91 cDogJ3t7IF8KKyAgICAgICAgICAoJ09wdGlvbnMnKSB9fScsCisgICAgICAg ICAgY2VsbDonc3RyaW5nJywgdHlwZTogJ3RleHQnLCBkaXNhYmxlZDogJ2lz RGlzYWJsZWQnLAorICAgICAgICAgIGRlcHM6IFsncHJvcmV0c2V0J10KKyAg ICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdwcm9sZWFrcHJvb2YnLCBsYWJl bDogJ3t7IF8oJ0xlYWsgcHJvb2Y/JykgfX0nLAorICAgICAgICAgIGdyb3Vw OiAne3sgXygnT3B0aW9ucycpIH19JywgY2VsbDonYm9vbGVhbicsIHR5cGU6 ICdzd2l0Y2gnLCBtaW5fdmVyc2lvbjogOTAyMDAsCisgICAgICAgICAgZGlz YWJsZWQ6ICdpc0Rpc2FibGVkJworICAgICAgICB9LHsKKyAgICAgICAgICBp ZDogJ3Byb2FjbCcsIGxhYmVsOiAne3sgXygnUHJpdmlsZWdlcycpIH19JywK KyAgICAgICAgICAgZ3JvdXA6ICd7eyBfKCdTZWN1cml0eScpIH19JywgY2Vs bDonYm9vbGVhbicsIHR5cGU6ICd0ZXh0JywgY2VsbDogJ3N0cmluZycsCisg ICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcyddCisgICAgICAgIH0sewor ICAgICAgICAgIGlkOiAnYXJndW1lbnRzJywgbGFiZWw6ICd7eyBfKCdQYXJh bWV0ZXJzJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICBncm91 cDogJ1BhcmFtZXRlcnMnLCB0eXBlOiAnY29sbGVjdGlvbicsIGNhbkFkZDog ZnVuY3Rpb24obSl7CisgICAgICAgICAgICByZXR1cm4gbS5pc05ldygpOwor ICAgICAgICAgIH0sCisgICAgICAgICAgY2FuRGVsZXRlOiB0cnVlLCBtb2Rl bDogQXJndW1lbnRNb2RlbCwgbW9kZToKKyAgICAgICAgICBbJ2NyZWF0ZScs ICdlZGl0J10sIGVkaXRhYmxlOiBmYWxzZSwKKyAgICAgICAgICBjb2x1bW5z OiBbJ2FyZ3R5cGUnLCAnYXJnbW9kZScsICdhcmduYW1lJywgJ2FyZ2RlZnZh bCddCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAndmFyaWFibGVzJywg bGFiZWw6ICd7eyBfKCdWYXJpYWJsZXMnKSB9fScsIHR5cGU6ICdjb2xsZWN0 aW9uJywKKyAgICAgICAgICBncm91cDogJ3t7IF8oJ1ZhcmlhYmxlcycpIH19 JywgY29udHJvbDogJ3ZhcmlhYmxlLWNvbGxlY3Rpb24nLAorICAgICAgICAg IG1vZGVsOiBwZ0FkbWluLkJyb3dzZXIuTm9kZS5WYXJpYWJsZU1vZGVsLAor ICAgICAgICAgIG1vZGU6IFsnZWRpdCcsICdjcmVhdGUnXSwgY2FuQWRkOiAn Y2FuVmFyQWRkJywgY2FuRWRpdDogZmFsc2UsCisgICAgICAgICAgY2FuRGVs ZXRlOiB0cnVlLCBkaXNhYmxlZDogJ2lzRGlzYWJsZWQnCisgICAgICAgICB9 LHsKKyAgICAgICAgICBpZDogJ2FjbCcsIGxhYmVsOiAne3sgXygnUHJpdmls ZWdlcycpIH19JywgbW9kZWw6IHBnQWRtaW4KKyAgICAgICAgICAuQnJvd3Nl ci5Ob2RlLlByaXZpbGVnZVJvbGVNb2RlbC5leHRlbmQoCisgICAgICAgICAg ICB7cHJpdmlsZWdlczogWydYJ119KSwgdW5pcXVlQ29sIDogWydncmFudGVl JywgJ2dyYW50b3InXSwKKyAgICAgICAgICBlZGl0YWJsZTogZmFsc2UsIHR5 cGU6ICdjb2xsZWN0aW9uJywgZ3JvdXA6ICd7eyBfKCdTZWN1cml0eScpIH19 JywKKyAgICAgICAgICBtb2RlOiBbJ2VkaXQnLCAnY3JlYXRlJ10sCisgICAg ICAgICAgY2FuQWRkOiB0cnVlLCBjYW5EZWxldGU6IHRydWUsIGNvbnRyb2w6 ICd1bmlxdWUtY29sLWNvbGxlY3Rpb24nLAorICAgICAgICB9LAorICAgICAg ICB7CisgICAgICAgICAgaWQ6ICdzZWNsYWJlbHMnLCBsYWJlbDogJ3t7IF8o J1NlY3VyaXR5IExhYmVscycpIH19JywKKyAgICAgICAgICBtb2RlbDogU2Vj dXJpdHlNb2RlbCwgdHlwZTogJ2NvbGxlY3Rpb24nLAorICAgICAgICAgIGdy b3VwOiAne3sgXygnU2VjdXJpdHknKSB9fScsIG1vZGU6IFsnZWRpdCcsICdj cmVhdGUnXSwKKyAgICAgICAgICBtaW5fdmVyc2lvbjogOTAxMDAsIGNhbkFk ZDogdHJ1ZSwKKyAgICAgICAgICBjYW5FZGl0OiB0cnVlLCBjYW5EZWxldGU6 IHRydWUKKyAgICAgICAgfQorICAgICAgICBdLAorICAgICAgICB2YWxpZGF0 ZTogZnVuY3Rpb24oKQorICAgICAgICB7CisgICAgICAgICAgdmFyIGVyciA9 IHt9LAorICAgICAgICAgICAgICBlcnJtc2csCisgICAgICAgICAgICAgIHNl Y2xhYmVscyA9IHRoaXMuZ2V0KCdzZWNsYWJlbHMnKTsKKworICAgICAgICAg IGlmIChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCduYW1lJykpIHx8IFN0cmlu Zyh0aGlzLmdldCgnbmFtZScpKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycp ID09ICcnKSB7CisgICAgICAgICAgICBlcnJbJ25hbWUnXSA9ICd7eyBfKCdO YW1lIGNhbiBub3QgYmUgZW1wdHkhJykgfX0nOworICAgICAgICAgICAgZXJy bXNnID0gZXJybXNnIHx8IGVyclsnbmFtZSddOworICAgICAgICAgIH0KKwor ICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCdmdW5jb3du ZXInKSkgfHwgU3RyaW5nKHRoaXMuZ2V0KCdmdW5jb3duZXInKSkucmVwbGFj ZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgZXJy WydmdW5jb3duZXInXSA9ICd7eyBfKCdPd25lciBjYW4gbm90IGJlIGVtcHR5 IScpIH19JzsKKyAgICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8fCBlcnJb J2Z1bmNvd25lciddOworICAgICAgICAgIH0KKworICAgICAgICAgIGlmIChf LmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCdwcm9uYW1lc3BhY2UnKSkgfHwgU3Ry aW5nKHRoaXMuZ2V0KCdwcm9uYW1lc3BhY2UnKSkucmVwbGFjZSgvXlxzK3xc cyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgZXJyWydwcm9uYW1l c3BhY2UnXSA9ICd7eyBfKCdTY2hlbWEgY2FuIG5vdCBiZSBlbXB0eSEnKSB9 fSc7CisgICAgICAgICAgICBlcnJtc2cgPSBlcnJtc2cgfHwgZXJyWydwcm9u YW1lc3BhY2UnXTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBpZiAoXy5p c1VuZGVmaW5lZCh0aGlzLmdldCgncHJvcmV0dHlwZW5hbWUnKSkgfHwgU3Ry aW5nKHRoaXMuZ2V0KCdwcm9yZXR0eXBlbmFtZScpKS5yZXBsYWNlKC9eXHMr fFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgICBlcnJbJ3Byb3Jl dHR5cGVuYW1lJ10gPSAne3sgXygnUmV0dXJuIFR5cGUgY2FuIG5vdCBiZSBl bXB0eSEnKSB9fSc7CisgICAgICAgICAgICBlcnJtc2cgPSBlcnJtc2cgfHwg ZXJyWydwcm9yZXR0eXBlbmFtZSddOworICAgICAgICAgIH0KKworICAgICAg ICAgIGlmIChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCdsYW5uYW1lJykpIHx8 IFN0cmluZyh0aGlzLmdldCgnbGFubmFtZScpKS5yZXBsYWNlKC9eXHMrfFxz KyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgICBlcnJbJ2xhbm5hbWUn XSA9ICd7eyBfKCdMYW5ndWFnZSBjYW4gbm90IGJlIGVtcHR5IScpIH19JzsK KyAgICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8fCBlcnJbJ2xhbm5hbWUn XTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBpZiAoU3RyaW5nKHRoaXMu Z2V0KCdsYW5uYW1lJykpID09ICdjJykgeworICAgICAgICAgICAgaWYgKF8u aXNVbmRlZmluZWQodGhpcy5nZXQoJ3Byb2JpbicpKSB8fCBTdHJpbmcodGhp cy5nZXQoJ3Byb2JpbicpKQorICAgICAgICAgICAgICAucmVwbGFjZSgvXlxz K3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgICBlcnJbJ3By b2JpbiddID0gJ3t7IF8oJ09iamVjdCBGaWxlIGNhbiBub3QgYmUgZW1wdHkh JykgfX0nOworICAgICAgICAgICAgICBlcnJtc2cgPSBlcnJtc2cgfHwgZXJy Wydwcm9iaW4nXTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYg KF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ3Byb3NyY19jJykpIHx8IFN0cmlu Zyh0aGlzLmdldCgncHJvc3JjX2MnKSkucmVwbGFjZSgvXlxzK3xccyskL2cs ICcnKSA9PSAnJykgeworICAgICAgICAgICAgICBlcnJbJ3Byb3NyY19jJ10g PSAne3sgXygnTGluayBTeW1ib2wgY2FuIG5vdCBiZSBlbXB0eSEnKSB9fSc7 CisgICAgICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8fCBlcnJbJ3Byb3Ny Y19jJ107CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAg IGVsc2UgeworICAgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy5n ZXQoJ3Byb3NyYycpKSB8fCBTdHJpbmcodGhpcy5nZXQoJ3Byb3NyYycpKS5y ZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAg ICAgIGVyclsncHJvc3JjJ10gPSAne3sgXygnQ29kZSBjYW4gbm90IGJlIGVt cHR5IScpIH19JzsKKyAgICAgICAgICAgICAgZXJybXNnID0gZXJybXNnIHx8 IGVyclsncHJvc3JjJ107CisgICAgICAgICAgICB9CisgICAgICAgICAgfQor CisgICAgICAgICAgaWYgKHNlY2xhYmVscykgeworICAgICAgICAgICAgdmFy IHNlY0xhYmVsc0VycjsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBp IDwgc2VjbGFiZWxzLm1vZGVscy5sZW5ndGggJiYgIXNlY0xhYmVsc0Vycjsg aSsrKSB7CisgICAgICAgICAgICAgIHNlY0xhYmVsc0VyciA9IChzZWNsYWJl bHMubW9kZWxzW2ldKS52YWxpZGF0ZS5hcHBseShzZWNsYWJlbHMubW9kZWxz W2ldKTsKKyAgICAgICAgICAgICAgaWYgKHNlY0xhYmVsc0VycikgeworICAg ICAgICAgICAgICAgIGVyclsnc2VjbGFiZWxzJ10gPSBzZWNMYWJlbHNFcnI7 CisgICAgICAgICAgICAgICAgZXJybXNnID0gZXJybXNnIHx8IHNlY0xhYmVs c0VycjsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAg ICAgIH0KKworICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5jbGVhcigpLnNl dChlcnIpOworCisgICAgICAgICAgaWYgKF8uc2l6ZShlcnIpKSB7CisgICAg ICAgICAgICB0aGlzLnRyaWdnZXIoJ29uLXN0YXR1cycsIHttc2c6IGVycm1z Z30pOworICAgICAgICAgICAgcmV0dXJuIGVycm1zZzsKKyAgICAgICAgICB9 CisKKyAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfSwKKyAgICAg ICAgaXNEaXNhYmxlZDogZnVuY3Rpb24obSl7CisgICAgICAgICAgbmFtZSA9 IHRoaXMubmFtZTsKKyAgICAgICAgICBzd2l0Y2gobmFtZSl7CisgICAgICAg ICAgICBjYXNlICdwcm9hcmdzJzoKKyAgICAgICAgICAgIGNhc2UgJ3Byb2Fy Z3R5cGVuYW1lcyc6CisgICAgICAgICAgICBjYXNlICdwcm9yZXRzZXQnOgor ICAgICAgICAgICAgY2FzZSAncHJvaXN3aW5kb3cnOgorICAgICAgICAgICAg ICByZXR1cm4gIW0uaXNOZXcoKTsKKyAgICAgICAgICAgICAgYnJlYWs7Cisg ICAgICAgICAgICBjYXNlICdwcm9yb3dzJzoKKyAgICAgICAgICAgICAgaWYo bS5nZXQoJ3Byb3JldHNldCcpID09IHRydWUpIHsKKyAgICAgICAgICAgICAg ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg ICBkZWZhdWx0OgorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg ICAgICAgICAgIGJyZWFrOworICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAg ICAgICAgY2FuVmFyQWRkOiBmdW5jdGlvbihtKSB7CisgICAgICAgICByZXR1 cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgfSksCisgICAgICBjYW5DcmVh dGU6IGZ1bmN0aW9uKGl0ZW1EYXRhLCBpdGVtLCBkYXRhKSB7CisgICAgICAg IC8vSWYgY2hlY2sgaXMgZmFsc2UgdGhlbiAsIHdlIHdpbGwgYWxsb3cgY3Jl YXRlIG1lbnUKKyAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5jaGVjayA9PSBm YWxzZSkKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICB2YXIg dCA9IHBnQnJvd3Nlci50cmVlLCBpID0gaXRlbSwgZCA9IGl0ZW1EYXRhOwor ICAgICAgICAvLyBUbyBpdGVyYXRlIG92ZXIgdHJlZSB0byBjaGVjayBwYXJl bnQgbm9kZQorICAgICAgICB3aGlsZSAoaSkgeworICAgICAgICAgIC8vIElm IGl0IGlzIHNjaGVtYSB0aGVuIGFsbG93IHVzZXIgdG8gY3JlYXRlIEZ1bmN0 aW9uCisgICAgICAgICAgaWYgKF8uaW5kZXhPZihbJ3NjaGVtYSddLCBkLl90 eXBlKSA+IC0xKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAg ICAgICBpZiAoJ2NvbGwtZnVuY3Rpb24nID09IGQuX3R5cGUpIHsKKyAgICAg ICAgICAgIC8vQ2hlY2sgaWYgd2UgYXJlIG5vdCBjaGlsZCBvZiBjYXRhbG9n CisgICAgICAgICAgICBwcmV2X2kgPSB0Lmhhc1BhcmVudChpKSA/IHQucGFy ZW50KGkpIDogbnVsbDsKKyAgICAgICAgICAgIHByZXZfZCA9IHByZXZfaSA/ IHQuaXRlbURhdGEocHJldl9pKSA6IG51bGw7CisgICAgICAgICAgICBpZigg cHJldl9kLl90eXBlID09ICdjYXRhbG9nJykgeworICAgICAgICAgICAgICBy ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9 CisgICAgICAgICAgaSA9IHQuaGFzUGFyZW50KGkpID8gdC5wYXJlbnQoaSkg OiBudWxsOworICAgICAgICAgIGQgPSBpID8gdC5pdGVtRGF0YShpKSA6IG51 bGw7CisgICAgICAgIH0KKyAgICAgICAgLy8gYnkgZGVmYXVsdCB3ZSBkbyBu b3Qgd2FudCB0byBhbGxvdyBjcmVhdGUgbWVudQorICAgICAgICByZXR1cm4g dHJ1ZTsKKyAgICAgIH0KKyAgfSk7CisKKyAgfQorCisgIHJldHVybiBwZ0Jy b3dzZXIuTm9kZXNbJ2Z1bmN0aW9uJ107Cit9KTsKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcv c3FsLzkuMV9wbHVzL2FjbC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9hY2wuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkM2UwZDEK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9hY2wuc3FsCkBA IC0wLDAgKzEsMzUgQEAKK1NFTEVDVAorICAgIENPQUxFU0NFKGd0LnJvbG5h bWUsICdwdWJsaWMnKSBBUyBncmFudGVlLAorICAgIGcucm9sbmFtZSBBUyBn cmFudG9yLCBhcnJheV9hZ2cocHJpdmlsZWdlX3R5cGUpIEFTIHByaXZpbGVn ZXMsCisgICAgYXJyYXlfYWdnKGlzX2dyYW50YWJsZSkgQVMgZ3JhbnRhYmxl CitGUk9NCisgICAgKFNFTEVDVAorICAgICAgICBkLmdyYW50ZWUsIGQuZ3Jh bnRvciwgZC5pc19ncmFudGFibGUsCisgICAgICAgIENBU0UgZC5wcml2aWxl Z2VfdHlwZQorICAgICAgICBXSEVOICdDT05ORUNUJyBUSEVOICdjJworICAg ICAgICBXSEVOICdDUkVBVEUnIFRIRU4gJ0MnCisgICAgICAgIFdIRU4gJ0RF TEVURScgVEhFTiAnZCcKKyAgICAgICAgV0hFTiAnRVhFQ1VURScgVEhFTiAn WCcKKyAgICAgICAgV0hFTiAnSU5TRVJUJyBUSEVOICdhJworICAgICAgICBX SEVOICdSRUZFUkVOQ0VTJyBUSEVOICd4JworICAgICAgICBXSEVOICdTRUxF Q1QnIFRIRU4gJ3InCisgICAgICAgIFdIRU4gJ1RFTVBPUkFSWScgVEhFTiAn VCcKKyAgICAgICAgV0hFTiAnVFJJR0dFUicgVEhFTiAndCcKKyAgICAgICAg V0hFTiAnVFJVTkNBVEUnIFRIRU4gJ0QnCisgICAgICAgIFdIRU4gJ1VQREFU RScgVEhFTiAndycKKyAgICAgICAgV0hFTiAnVVNBR0UnIFRIRU4gJ1UnCisg ICAgICAgIEVMU0UgJ1VOS05PV04nCisgICAgICAgIEVORCBBUyBwcml2aWxl Z2VfdHlwZQorICAgIEZST00KKyAgICAgICAgKFNFTEVDVAorICAgICAgICAg ICAgKGQpLmdyYW50ZWUgQVMgZ3JhbnRlZSwgKGQpLmdyYW50b3IgQVMgZ3Jh bnRvciwKKyAgICAgICAgICAgIChkKS5pc19ncmFudGFibGUgQVMgaXNfZ3Jh bnRhYmxlLAorICAgICAgICAgICAgKGQpLnByaXZpbGVnZV90eXBlIEFTIHBy aXZpbGVnZV90eXBlCisgICAgICAgIEZST00KKyAgICAgICAgICAgIChTRUxF Q1QgYWNsZXhwbG9kZShkYi5wcm9hY2wpIEFTIGQgRlJPTSBwZ19wcm9jIGRi CisgICAgICAgICAgICBXSEVSRSBkYi5vaWQgPSB7e2ZuaWR9fTo6T0lEKSBh CisgICAgICAgICkgZAorICAgICkgZAorICAgIExFRlQgSk9JTiBwZ19jYXRh bG9nLnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRvciA9IGcub2lkKQorICAgIExF RlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGd0IE9OIChkLmdyYW50ZWUg PSBndC5vaWQpCitHUk9VUCBCWSBnLnJvbG5hbWUsIGd0LnJvbG5hbWU7CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwv OS4xX3BsdXMvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5lYTQzMTcyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwv OS4xX3BsdXMvY3JlYXRlLnNxbApAQCAtMCwwICsxLDY2IEBACit7JSBpbXBv cnQgJ21hY3Jvcy9mdW5jdGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNM QUJMRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVn ZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3Mv ZnVuY3Rpb25zL3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX0KK3sl IHNldCBpc19jb2x1bW5zID0gW10gJX0KK3slIGlmIGRhdGEgJX0KK0NSRUFU RSBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2Us IGRhdGEubmFtZSkgfX0oeyUgaWYgZGF0YQorLmFyZ3VtZW50cyAlfQoreyUg Zm9yIHAgaW4gZGF0YS5hcmd1bWVudHMgJX17e3AuYXJnbW9kZX19IHslIGlm IHAuYXJnbmFtZSAlfXt7IGNvbm58cXRJZGVudChwCisuYXJnbmFtZSl9fXsl IGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9IHt7cC5hcmd0eXBlfX17JSBl bmRpZiAlfXslCitpZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxUIHt7cC5hcmdk ZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9LHsl IGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorICAgICkg UkVUVVJOU3slIGlmIGRhdGEucHJvcmV0c2V0ICV9IFNFVE9GeyUgZW5kaWYg JX0ge3sgY29ubnxxdFR5cGVJZGVudChkYXRhCisgICAgLnByb3JldHR5cGVu YW1lKSB9fSBBUworeyUgaWYgZGF0YS5sYW5uYW1lID09ICdjJyAlfQore3sg ZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19LCB7eyBkYXRhLnByb3NyY19jfHF0 TGl0ZXJhbCB9fQoreyUgZWxzZSAlfQorJEJPRFkke3sgZGF0YS5wcm9zcmMg fX0kQk9EWSQKK3slIGVuZGlmICV9CitMQU5HVUFHRSB7eyBkYXRhLmxhbm5h bWV8cXRMaXRlcmFsIH19IHt7IGRhdGEucHJvdm9sYXRpbGUgfX17JSBpZiBk YXRhLnByb2lzc3RyaWN0ICV9IFNUUklDVHslIGVuZGlmICV9Cit7JSBpZiBk YXRhLnByb3NlY2RlZiAlfSBTRUNVUklUWSBERUZJTkVSeyUgZW5kaWYgJX0K K3slIGlmIGRhdGEucHJvaXN3aW5kb3cgJX0gV0lORE9XeyUgZW5kaWYgJX17 JSBpZiBkYXRhLnByb2Nvc3QgJX0KKworQ09TVCB7e2RhdGEucHJvY29zdH19 eyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb3Jvd3MgJX0KKworUk9XUyB7e2Rh dGEucHJvcm93c319eyUgZW5kaWYgLSV9eyUgaWYgZGF0YS52YXJpYWJsZXMg JX0KKworeyUgZm9yIHYgaW4gZGF0YS52YXJpYWJsZXMgJX0KKworU0VUIHt7 IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8cXRMaXRlcmFs IH19eyUgZW5kZm9yIC0lfQoreyUgZW5kaWYgLSV9OworCit7JSBpZiBkYXRh LmZ1bmNvd25lciAlfQorCitBTFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRl bnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX0oe3tkYXRhCisu ZnVuY19hcmdzfX0pCisgICAgT1dORVIgVE8ge3sgZGF0YS5mdW5jb3duZXIg fX07Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5hY2wgJX0KK3slIGZv ciBwIGluIGRhdGEuYWNsICV9CisKK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwg IkZVTkNUSU9OIiwgcC5ncmFudGVlLCBkYXRhLm5hbWUsIHAud2l0aG91dF9n cmFudCwgcAorLndpdGhfZ3JhbnQsIGRhdGEucHJvbmFtZXNwYWNlLCBkYXRh LmZ1bmNfYXJncyl9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKwor eyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorCitDT01NRU5UIE9OIEZVTkNU SU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5u YW1lKSB9fSh7e2RhdGEKKy5mdW5jX2FyZ3N9fSkKKyAgICBJUyAne3sgZGF0 YS5kZXNjcmlwdGlvbiB9fSc7Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0 YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEuc2VjbGFiZWxzICV9 Cit7JSBpZiByLmxhYmVsIGFuZCByLnByb3ZpZGVyICV9CisKK3t7IFNFQ0xB QkxFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBkYXRhLm5hbWUsIHIucHJvdmlk ZXIsIHIubGFiZWwsIGRhdGEKKy5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19h cmdzKSB9fQoreyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYg LSV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1 cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDZiZWMxCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApAQCAt MCwwICsxLDIxIEBACit7JSBpZiBzY2lkIGFuZCBmbmlkICV9CitTRUxFQ1QK KyAgICBwci5wcm9uYW1lIGFzIG5hbWUsICcoJyB8fCBDT0FMRVNDRShwZ19j YXRhbG9nCisgICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVu dHMocHIub2lkKSwgJycpIHx8ICcpJyBhcyBmdW5jX2FyZ3MsCisgICAgbnNw bmFtZQorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBl IHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19uYW1l c3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNlCitXSEVSRQor ICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0g e3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdn ZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIHByLm9pZCA9IHt7Zm5p ZH19OworeyUgZW5kaWYgJX0KKworeyUgaWYgbmFtZSAlfQorRFJPUCBGVU5D VElPTiB7eyBjb25ufHF0SWRlbnQobnNwbmFtZSwgbmFtZSkgfX17e2Z1bmNf YXJnc319eyUgaWYgY2FzY2FkZSAlfSBDQVNDQURFeyUgZW5kaWYgJX07Cit7 JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvZ2V0X2Rl ZmluaXRpb24uc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvZ2V0X2RlZmluaXRpb24u c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4OWVj Y2UKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9nZXRfZGVm aW5pdGlvbi5zcWwKQEAgLTAsMCArMSwxMSBAQAorU0VMRUNUCisgICAgcGdf Z2V0X2Z1bmN0aW9uZGVmKHt7Zm5pZH19OjpvaWQpIEFTIGZ1bmNfZGVmLAor ICAgIG5zcG5hbWUgfHwgJy4nIHx8IHByLnByb25hbWUgfHwgJygnIHx8IENP QUxFU0NFKHBnX2NhdGFsb2cucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2Fy Z3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIG5hbWUKK0ZST00KKyAg ICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBu c3Aub2lkPXByLnByb25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9 IEZBTFNFCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQK KyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX06Om9pZDsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuMV9wbHVzL2dldF9sYW5ndWFnZXMuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4x X3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uZjgxZGRmYgotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcv c3FsLzkuMV9wbHVzL2dldF9sYW5ndWFnZXMuc3FsCkBAIC0wLDAgKzEsNCBA QAorU0VMRUNUCisgICAgbGFubmFtZSBhcyBsYWJlbCwgbGFubmFtZSBhcyB2 YWx1ZQorRlJPTQorICAgIHBnX2xhbmd1YWdlOwpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9z cWwvOS4xX3BsdXMvZ2V0X29pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9nZXRf b2lkLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4y YmM3NmEyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvZ2V0 X29pZC5zcWwKQEAgLTAsMCArMSwxNyBAQAorU0VMRUNUCisgICAgcHIub2lk LCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nCisg ICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lk KSwgJycpIHx8ICcpJyBhcyBuYW1lLAorICAgIGxhbm5hbWUsIHBnX2dldF91 c2VyYnlpZChwcm9vd25lcikgYXMgZnVuY293bmVyCitGUk9NCisgICAgcGdf cHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJv cmV0dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lk PXByb2xhbmcKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5v aWQ9cHIucHJvbmFtZXNwYWNlCisgICAgQU5EIG5zcC5uc3BuYW1lPXt7IG5z cG5hbWV8cXRMaXRlcmFsIH19CitXSEVSRQorICAgIHByb2lzYWdnID0gRkFM U0UKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50 X3RyaWdnZXInKQorICAgIEFORCBwci5wcm9uYW1lID0ge3sgbmFtZXxxdExp dGVyYWwgfX07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9nZXRfb3V0 X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVzL2dldF9vdXRfdHlwZXMuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0YTExODcK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9nZXRfb3V0X3R5 cGVzLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIGZvcm1hdF90 eXBlKG9pZCwgTlVMTCkgQVMgb3V0X2FyZ190eXBlCitGUk9NCisgICAgcGdf dHlwZQorV0hFUkUKKyAgICBvaWQgPSB7eyBvdXRfYXJnX29pZCB9fTo6b2lk OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvZ2V0X3NjaGVtYS5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BnL3NxbC85LjFfcGx1cy9nZXRfc2NoZW1hLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjdkNGI5Ci0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wZy9zcWwvOS4xX3BsdXMvZ2V0X3NjaGVtYS5zcWwKQEAgLTAsMCAr MSw2IEBACitTRUxFQ1QKKyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdfbmFt ZXNwYWNlCitXSEVSRQorICAgIG9pZCA9IHt7IHNjaWQgfX06Om9pZDsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVzL2dldF90eXBlcy5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3Nx bC85LjFfcGx1cy9nZXRfdHlwZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjJhNTU4MmUKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bn L3NxbC85LjFfcGx1cy9nZXRfdHlwZXMuc3FsCkBAIC0wLDAgKzEsMjAgQEAK K1NFTEVDVAorICAgICoKK0ZST00KKyAgICAoU0VMRUNUCisgICAgICAgIGZv cm1hdF90eXBlKHQub2lkLE5VTEwpIEFTIHR5cG5hbWUsCisgICAgICAgIENB U0UgV0hFTiB0eXBlbGVtID4gMCBUSEVOIHR5cGVsZW0gRUxTRSB0Lm9pZCBF TkQgYXMgZWxlbW9pZCwgdHlwbGVuLCB0eXB0eXBlLCB0Lm9pZCwgbnNwbmFt ZSwKKyAgICAgICAgKFNFTEVDVCBDT1VOVCgxKSBGUk9NIHBnX3R5cGUgdDIg V0hFUkUgdDIudHlwbmFtZSA9IHQudHlwbmFtZSkgPiAxIEFTIGlzZHVwCisg ICAgRlJPTQorICAgICAgICBwZ190eXBlIHQKKyAgICBKT0lOCisgICAgICAg IHBnX25hbWVzcGFjZSBuc3AgT04gdHlwbmFtZXNwYWNlPW5zcC5vaWQKKyAg ICBXSEVSRQorICAgICAgICAoTk9UICh0eXBuYW1lID0gJ3Vua25vd24nIEFO RCBuc3BuYW1lID0gJ3BnX2NhdGFsb2cnKSkKKyAgICBBTkQKKyAgICAgICAg KAorICAgICAgICAgICAgdHlwdHlwZSBJTiAoJ2InLCAnYycsICdkJywgJ2Un LCAncCcsICdyJykKKyAgICAgICAgICAgIEFORCB0eXBuYW1lIE5PVCBJTiAo J2FueScsICd0cmlnZ2VyJywgJ2xhbmd1YWdlX2hhbmRsZXInLCAnZXZlbnRf dHJpZ2dlcicpCisgICAgICAgICkKKyAgICApIEFTIGR1bW15CitPUkRFUiBC WSBuc3BuYW1lIDw+ICdwZ19jYXRhbG9nJywgbnNwbmFtZSA8PiAncHVibGlj JywgbnNwbmFtZSwgMTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVzL25v ZGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvbm9kZS5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmI2ZWM5ZAotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVu Y3Rpb24vcGcvc3FsLzkuMV9wbHVzL25vZGUuc3FsCkBAIC0wLDAgKzEsMTcg QEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIucHJvbmFtZSB8fCAnKCcgfHwg Q09BTEVTQ0UocGdfY2F0YWxvZy5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlf YXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMgbmFtZSwKKyAgICBs YW5uYW1lLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIGFzIGZ1bmNvd25l ciwgZGVzY3JpcHRpb24KK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisg ICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisg ICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworTEVGVCBP VVRFUiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jq b2lkPXByLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19wcm9jJzo6cmVnY2xh c3MpCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJv bmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5P VCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCitPUkRFUiBCWQor ICAgIHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9wcm9w ZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllOGE4YmEKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNx bApAQCAtMCwwICsxLDMxIEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnht aW4sIHByLiosIHByLnByb3NyYyBBUyBwcm9zcmNfYywKKyAgICBwci5wcm9u YW1lIEFTIG5hbWUsIHBnX2dldF9mdW5jdGlvbl9yZXN1bHQocHIub2lkKSBB UyBwcm9yZXR0eXBlbmFtZSwKKyAgICB0eXBucy5uc3BuYW1lIEFTIHR5cG5z cCwgbGFubmFtZSwgcHJvYXJnbmFtZXMsIG9pZHZlY3RvcnR5cGVzKHByb2Fy Z3R5cGVzKSBBUyBwcm9hcmd0eXBlbmFtZXMsCisgICAgcGdfZ2V0X2V4cHIo cHJvYXJnZGVmYXVsdHMsICdwZ19jYXRhbG9nLnBnX2NsYXNzJzo6cmVnY2xh c3MpIEFTIHByb2FyZ2RlZmF1bHR2YWxzLAorICAgIHByb25hcmdkZWZhdWx0 cywgcHJvY29uZmlnLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIEFTIGZ1 bmNvd25lciwgZGVzY3JpcHRpb24sCisgICAgKFNFTEVDVAorICAgICAgICBh cnJheV9hZ2cocHJvdmlkZXIgfHwgJz0nIHx8IGxhYmVsKQorICAgIEZST00K KyAgICAgICAgcGdfc2VjbGFiZWwgc2wxCisgICAgV0hFUkUKKyAgICAgICAg c2wxLm9iam9pZD1wci5vaWQpIEFTIHNlY2xhYmVscworRlJPTQorICAgIHBn X3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXBy b3JldHR5cGUKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgdHlwbnMgT04gdHlw bnMub2lkPXR5cC50eXBuYW1lc3BhY2UKK0pPSU4KKyAgICBwZ19sYW5ndWFn ZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitMRUZUIE9VVEVSIEpPSU4KKyAg ICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9cHIub2lkIEFO RCBkZXMuY2xhc3NvaWQ9J3BnX3Byb2MnOjpyZWdjbGFzcykKK1dIRVJFCisg ICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7 e3NjaWR9fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dl cicsICdldmVudF90cmlnZ2VyJykKK3slIGlmIGZuaWQgJX0KKyAgICBBTkQg cHIub2lkID0ge3tmbmlkfX06Om9pZAoreyUgZW5kaWYgJX0KK09SREVSIEJZ CisgICAgcHJvbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVzL3Vw ZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy91cGRhdGUuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1ODQ1NGIKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy91cGRhdGUuc3FsCkBAIC0wLDAg KzEsMTMyIEBACit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvc2VjdXJp dHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNyb3Mv ZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQor eyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ZhcmlhYmxlLm1hY3Jvcycg YXMgVkFSSUFCTEUgJX17JSBpZiBkYXRhICV9Cit7JSBzZXQgbmFtZSA9IG9f ZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEu bmFtZSAhPSBvX2RhdGEubmFtZSAlfQorQUxURVIgRlVOQ1RJT04ge3sgY29u bnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5uYW1lKSB9 fSh7eworb19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBSRU5BTUUg VE8ge3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX07Cit7JSBzZXQgbmFt ZSA9IGRhdGEubmFtZSAlfQoreyUgZW5kaWYgJX0KKworeyUgZW5kaWYgLSV9 Cit7JSBpZiBkYXRhLmNoYW5nZV9mdW5jICAlfQorQ1JFQVRFIE9SIFJFUExB Q0UgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3Bh Y2UsIG5hbWUpIH19KHslIGlmIGRhdGEuYXJndW1lbnRzICV9Cit7JSBmb3Ig cCBpbiBkYXRhLmFyZ3VtZW50cyAlfXslIGlmIHAuYXJnbW9kZSAlfSB7e3Au YXJnbW9kZX19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ25hbWUgJX0ge3sgY29u bnxxdElkZW50KHAuYXJnbmFtZSkgfX17JSBlbmRpZiAlfXslIGlmIHAuYXJn dHlwZSAlfSB7e3AKKyAuYXJndHlwZX19eyUgZW5kaWYgJX17JSBpZiBwLmFy Z2RlZnZhbCAlfSBERUZBVUxUIHt7cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9 Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9LCB7JSBlbmRpZiAlfQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAtJX0KKykgUkVUVVJOUyB7eyBvX2RhdGEucHJv cmV0dHlwZW5hbWUgfX0gQVMKK3slIGlmICdsYW5uYW1lJyBpbiBsYW5uYW1l IGFuZCBkYXRhLmxhbm5hbWUgPT0gJ2MnICV9Cit7eyBkYXRhLnByb2Jpbnxx dExpdGVyYWwgfX0sIHt7IGRhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19Cit7 JSBlbGlmICdsYW5uYW1lJyBpbiBkYXRhIGFuZCAncHJvc3JjJyBpbiBkYXRh ICV9CiskQk9EWSR7eyBkYXRhLnByb3NyYyB9fSRCT0RZJAoreyUgZWxpZiBv X2RhdGEubGFubmFtZSA9PSAnYycgJX0KK3t7IG9fZGF0YS5wcm9iaW58cXRM aXRlcmFsIH19LCB7eyBvX2RhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19Cit7 JSBlbHNlICV9CiskQk9EWSR7eyBvX2RhdGEucHJvc3JjIH19JEJPRFkkCit7 JSBlbmRpZiAtJX0KKworeyUgaWYgJ2xhbm5hbWUnIGluIGRhdGEgJX0KK0xB TkdVQUdFIHt7IGRhdGEubGFubmFtZXxxdExpdGVyYWwgfX17JSBlbHNlICV9 CitMQU5HVUFHRSB7eyBvX2RhdGEubGFubmFtZXxxdExpdGVyYWwgfX17JSBl bmRpZiAtJX17JSBpZiAoJ3Byb2lzc3RyaWN0JyBpbiBkYXRhIGFuZCBkYXRh LnByb2lzc3RyaWN0KSBvciAoJ3Byb2lzc3RyaWN0JyBub3QgaW4gZGF0YSBh bmQgb19kYXRhLnByb2lzc3RyaWN0KSAlfSBTVFJJQ1R7JSBlbmRpZiAlfQor eyUgaWYgKCdwcm9zZWNkZWYnIGluIGRhdGEgYW5kIGRhdGEucHJvc2VjZGVm KSBvciAoJ3Byb3NlY2RlZicgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9z ZWNkZWYpICV9IFNFQ1VSSVRZIERFRklORVJ7JSBlbmRpZiAlfQoreyUgaWYg KCdwcm9pc3dpbmRvdycgaW4gZGF0YSBhbmQgZGF0YS5wcm9pc3dpbmRvdykg b3IgKCdwcm9pc3dpbmRvdycgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9p c3dpbmRvdykgJX0gV0lORE9XeyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb2Nv c3QgJX0KKworQ09TVCB7e2RhdGEucHJvY29zdH19eyUgZWxpZiBvX2RhdGEu cHJvY29zdCAlfSBDT1NUIHt7b19kYXRhLnByb2Nvc3R9fSB7JSBlbmRpZiAl fXslIGlmIGRhdGEucHJvcm93cyAlfQorCitST1dTIHt7ZGF0YS5wcm9yb3dz fX0geyUgZWxpZiBvX2RhdGEucHJvcm93cyAlfSBST1dTIHt7b19kYXRhLnBy b3Jvd3N9fSB7JQorZW5kaWYgLSV9eyUgaWYgZGF0YS5tZXJnZWRfdmFyaWFi bGVzICV9CisKK3slIGZvciB2IGluIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAl fQorCitTRVQge3sgY29ubnxxdElkZW50KHYubmFtZSkgfX09e3sgdi52YWx1 ZXxxdExpdGVyYWwgfX17JSBlbmRmb3IgLSV9Cit7JSBlbmRpZiAtJX07Cit7 JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5mdW5jb3duZXIgJX0KKworQUxU RVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3Bh Y2UsIG5hbWUpIH19KHt7CitvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQor ICAgIE9XTkVSIFRPIHt7IGRhdGEuZnVuY293bmVyIH19OworeyUgZW5kaWYg LSV9CisKKworeyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cgd2lsbCBjaGFu Z2UgcHJpdmlsZWRnZXMgI30KK3slIGlmIGRhdGEuYWNsICV9CisKK3slIGlm ICdkZWxldGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0 YS5hY2wuZGVsZXRlZCAlfQore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4s ICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgb19kYXRhCisucHJv bmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgJ2NoYW5nZWQnIGluIGRh dGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5jaGFuZ2Vk ICV9CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnRlVOQ1RJT04n LCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0YQorLnByb25hbWVzcGFjZSwg b19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3t7IFBSSVZJTEVHRS5TRVQo Y29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBwcml2Lndp dGhvdXRfZ3JhbnQsCisgcHJpdi53aXRoX2dyYW50LCBvX2RhdGEucHJvbmFt ZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmFj bCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuYWRkZWQgJX0KK3t7IFBS SVZJTEVHRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBu YW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsCisgcHJpdi53aXRoX2dyYW50LCBv X2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9 fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgLSV9CisK K3slIGlmIGRhdGEuY2hhbmdlX2Z1bmMgPT0gRmFsc2UgJX0KK3slIGlmIGRh dGEudmFyaWFibGVzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS52YXJp YWJsZXMgYW5kIGRhdGEudmFyaWFibGVzLmRlbGV0ZWR8bGVuZ3RoID4gMCAl fQorCit7eyBWQVJJQUJMRS5VTlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1l LCBkYXRhLnZhcmlhYmxlcy5kZWxldGVkLCBvX2RhdGEucHJvbmFtZXNwYWNl LCBvX2RhdGEucHJvYXJndHlwZW5hbWVzICkgfX0KK3slIGVuZGlmIC0lfQor eyUgaWYgJ21lcmdlZF92YXJpYWJsZXMnIGluIGRhdGEgYW5kIGRhdGEubWVy Z2VkX3ZhcmlhYmxlc3xsZW5ndGggPiAwICV9CisKK3t7IFZBUklBQkxFLlNF VChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCBkYXRhLm1lcmdlZF92YXJpYWJs ZXMsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFt ZXMgKSB9fQoreyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0KK3slIGVuZGlm IC0lfQorCit7JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0K K3slIGlmICdkZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5k ZWxldGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5k ZWxldGVkICV9CisKK3t7IFNFQ0xBQkxFLlVOU0VUKGNvbm4sICdGVU5DVElP TicsIG5hbWUsIHIucHJvdmlkZXIsIG9fZGF0YS5wcm9uYW1lc3BhY2UpIH19 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2FkZGVkJyBp biBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5hZGRlZHxsZW5ndGggPiAwICV9 Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuYWRkZWQgJX0KKwore3sgU0VDTEFC TEUuU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIHIucHJvdmlkZXIsIHIu c2VjdXJpdHlfbGFiZWwsIG9fZGF0YS5wcm9uYW1lc3BhY2UpIH19Cit7JSBl bmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2NoYW5nZWQnIGluIHNl Y2xhYmVscyBhbmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQor eyUgZm9yIHIgaW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KKwore3sgU0VDTEFC TEUuU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIHIucHJvdmlkZXIsIHIu c2VjdXJpdHlfbGFiZWwsIG9fZGF0YS5wcm9uYW1lc3BhY2UpIH19Cit7JSBl bmRmb3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLmRlc2NyaXB0 aW9uICV9CisKK0NPTU1FTlQgT04gRlVOQ1RJT04ge3sgY29ubnxxdElkZW50 KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7CitvX2RhdGEucHJv YXJndHlwZW5hbWVzIH19KQorICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258 cXRMaXRlcmFsIH19OworeyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEucHJv bmFtZXNwYWNlICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVu dChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7eworb19kYXRhLnBy b2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBTRVQgU0NIRU1BIHt7IGNvbm58cXRJ ZGVudChkYXRhLnByb25hbWVzcGFjZSkgfX07Cit7JSBlbmRpZiAtJX0KKwor eyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVzL3Zhcmlh Ymxlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy92YXJpYWJsZXMuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyMzNjNzEKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy92YXJpYWJsZXMuc3FsCkBA IC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgbmFtZSwgdmFydHlwZSwgbWlu X3ZhbCwgbWF4X3ZhbCwgZW51bXZhbHMKK0ZST00KKyAgICBwZ19zZXR0aW5n cworV0hFUkUKKyAgICBjb250ZXh0IGluICgndXNlcicsICdzdXBlcnVzZXIn KTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2FjbC5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3Nx bC85LjJfcGx1cy9hY2wuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmFkM2UwZDEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjJfcGx1cy9hY2wuc3FsCkBAIC0wLDAgKzEsMzUgQEAKK1NFTEVDVAorICAg IENPQUxFU0NFKGd0LnJvbG5hbWUsICdwdWJsaWMnKSBBUyBncmFudGVlLAor ICAgIGcucm9sbmFtZSBBUyBncmFudG9yLCBhcnJheV9hZ2cocHJpdmlsZWdl X3R5cGUpIEFTIHByaXZpbGVnZXMsCisgICAgYXJyYXlfYWdnKGlzX2dyYW50 YWJsZSkgQVMgZ3JhbnRhYmxlCitGUk9NCisgICAgKFNFTEVDVAorICAgICAg ICBkLmdyYW50ZWUsIGQuZ3JhbnRvciwgZC5pc19ncmFudGFibGUsCisgICAg ICAgIENBU0UgZC5wcml2aWxlZ2VfdHlwZQorICAgICAgICBXSEVOICdDT05O RUNUJyBUSEVOICdjJworICAgICAgICBXSEVOICdDUkVBVEUnIFRIRU4gJ0Mn CisgICAgICAgIFdIRU4gJ0RFTEVURScgVEhFTiAnZCcKKyAgICAgICAgV0hF TiAnRVhFQ1VURScgVEhFTiAnWCcKKyAgICAgICAgV0hFTiAnSU5TRVJUJyBU SEVOICdhJworICAgICAgICBXSEVOICdSRUZFUkVOQ0VTJyBUSEVOICd4Jwor ICAgICAgICBXSEVOICdTRUxFQ1QnIFRIRU4gJ3InCisgICAgICAgIFdIRU4g J1RFTVBPUkFSWScgVEhFTiAnVCcKKyAgICAgICAgV0hFTiAnVFJJR0dFUicg VEhFTiAndCcKKyAgICAgICAgV0hFTiAnVFJVTkNBVEUnIFRIRU4gJ0QnCisg ICAgICAgIFdIRU4gJ1VQREFURScgVEhFTiAndycKKyAgICAgICAgV0hFTiAn VVNBR0UnIFRIRU4gJ1UnCisgICAgICAgIEVMU0UgJ1VOS05PV04nCisgICAg ICAgIEVORCBBUyBwcml2aWxlZ2VfdHlwZQorICAgIEZST00KKyAgICAgICAg KFNFTEVDVAorICAgICAgICAgICAgKGQpLmdyYW50ZWUgQVMgZ3JhbnRlZSwg KGQpLmdyYW50b3IgQVMgZ3JhbnRvciwKKyAgICAgICAgICAgIChkKS5pc19n cmFudGFibGUgQVMgaXNfZ3JhbnRhYmxlLAorICAgICAgICAgICAgKGQpLnBy aXZpbGVnZV90eXBlIEFTIHByaXZpbGVnZV90eXBlCisgICAgICAgIEZST00K KyAgICAgICAgICAgIChTRUxFQ1QgYWNsZXhwbG9kZShkYi5wcm9hY2wpIEFT IGQgRlJPTSBwZ19wcm9jIGRiCisgICAgICAgICAgICBXSEVSRSBkYi5vaWQg PSB7e2ZuaWR9fTo6T0lEKSBhCisgICAgICAgICkgZAorICAgICkgZAorICAg IExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRv ciA9IGcub2lkKQorICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVz IGd0IE9OIChkLmdyYW50ZWUgPSBndC5vaWQpCitHUk9VUCBCWSBnLnJvbG5h bWUsIGd0LnJvbG5hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9j cmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvY3JlYXRlLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MGE0Njc2Ci0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvY3JlYXRlLnNxbApAQCAtMCww ICsxLDY4IEBACit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvc2VjdXJp dHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNyb3Mv ZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQor eyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ZhcmlhYmxlLm1hY3Jvcycg YXMgVkFSSUFCTEUgJX0KK3slIHNldCBpc19jb2x1bW5zID0gW10gJX0KK3sl IGlmIGRhdGEgJX0KK0NSRUFURSBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQo ZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX0oeyUgaWYgZGF0YQor LmFyZ3VtZW50cyAlfQoreyUgZm9yIHAgaW4gZGF0YS5hcmd1bWVudHMgJX17 e3AuYXJnbW9kZX19IHslIGlmIHAuYXJnbmFtZSAlfXt7IGNvbm58cXRJZGVu dChwCisuYXJnbmFtZSl9fXslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9 IHt7cC5hcmd0eXBlfX17JSBlbmRpZiAlfXslCitpZiBwLmFyZ2RlZnZhbCAl fSBERUZBVUxUIHt7cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBu b3QgbG9vcC5sYXN0ICV9LHslIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3sl IGVuZGlmIC0lfQorICAgICkgUkVUVVJOU3slIGlmIGRhdGEucHJvcmV0c2V0 ICV9IFNFVE9GeyUgZW5kaWYgJX0ge3sgY29ubnxxdFR5cGVJZGVudChkYXRh CisgICAgLnByb3JldHR5cGVuYW1lKSB9fSBBUworeyUgaWYgZGF0YS5sYW5u YW1lID09ICdjJyAlfQore3sgZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19LCB7 eyBkYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fQoreyUgZWxzZSAlfQorJEJP RFkke3sgZGF0YS5wcm9zcmMgfX0kQk9EWSQKK3slIGVuZGlmICV9CitMQU5H VUFHRSB7eyBkYXRhLmxhbm5hbWV8cXRMaXRlcmFsIH19IHt7IGRhdGEucHJv dm9sYXRpbGUgfX17JSBpZiBkYXRhCisucHJvbGVha3Byb29mICV9IExFQUtQ Uk9PRnslIGVsc2UgJX0gTk9UIExFQUtQUk9PRnslIGVuZGlmICV9Cit7JSBp ZiBkYXRhLnByb2lzc3RyaWN0ICV9IFNUUklDVHslIGVuZGlmICV9Cit7JSBp ZiBkYXRhLnByb3NlY2RlZiAlfSBTRUNVUklUWSBERUZJTkVSeyUgZW5kaWYg JX0KK3slIGlmIGRhdGEucHJvaXN3aW5kb3cgJX0gV0lORE9XeyUgZW5kaWYg JX17JSBpZiBkYXRhLnByb2Nvc3QgJX0KKworQ09TVCB7e2RhdGEucHJvY29z dH19eyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb3Jvd3MgJX0KKworUk9XUyB7 e2RhdGEucHJvcm93c319eyUgZW5kaWYgLSV9eyUgaWYgZGF0YS52YXJpYWJs ZXMgJX0KKworeyUgZm9yIHYgaW4gZGF0YS52YXJpYWJsZXMgJX0KKworU0VU IHt7IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8cXRMaXRl cmFsIH19eyUgZW5kZm9yIC0lfQoreyUgZW5kaWYgLSV9OworCit7JSBpZiBk YXRhLmZ1bmNvd25lciAlfQorCitBTFRFUiBGVU5DVElPTiB7eyBjb25ufHF0 SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX0oe3tkYXRh CisuZnVuY19hcmdzfX0pCisgICAgT1dORVIgVE8ge3sgZGF0YS5mdW5jb3du ZXIgfX07Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5hY2wgJX0KK3sl IGZvciBwIGluIGRhdGEuYWNsICV9CisKK3t7IFBSSVZJTEVHRS5TRVQoY29u biwgIkZVTkNUSU9OIiwgcC5ncmFudGVlLCBkYXRhLm5hbWUsIHAud2l0aG91 dF9ncmFudCwgcAorLndpdGhfZ3JhbnQsIGRhdGEucHJvbmFtZXNwYWNlLCBk YXRhLmZ1bmNfYXJncyl9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0K KworeyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorCitDT01NRU5UIE9OIEZV TkNUSU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0 YS5uYW1lKSB9fSh7e2RhdGEKKy5mdW5jX2FyZ3N9fSkKKyAgICBJUyAne3sg ZGF0YS5kZXNjcmlwdGlvbiB9fSc7Cit7JSBlbmRpZiAtJX0KKworeyUgaWYg ZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEuc2VjbGFiZWxz ICV9Cit7JSBpZiByLmxhYmVsIGFuZCByLnByb3ZpZGVyICV9CisKK3t7IFNF Q0xBQkxFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBkYXRhLm5hbWUsIHIucHJv dmlkZXIsIHIubGFiZWwsIGRhdGEKKy5wcm9uYW1lc3BhY2UsIGRhdGEuZnVu Y19hcmdzKSB9fQoreyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5k aWYgLSV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJf cGx1cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvZGVsZXRlLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDZiZWMxCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvZGVsZXRlLnNxbApA QCAtMCwwICsxLDIxIEBACit7JSBpZiBzY2lkIGFuZCBmbmlkICV9CitTRUxF Q1QKKyAgICBwci5wcm9uYW1lIGFzIG5hbWUsICcoJyB8fCBDT0FMRVNDRShw Z19jYXRhbG9nCisgICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1 bWVudHMocHIub2lkKSwgJycpIHx8ICcpJyBhcyBmdW5jX2FyZ3MsCisgICAg bnNwbmFtZQorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190 eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19u YW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNlCitXSEVS RQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJvbmFtZXNwYWNl ID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3Ry aWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIHByLm9pZCA9IHt7 Zm5pZH19OworeyUgZW5kaWYgJX0KKworeyUgaWYgbmFtZSAlfQorRFJPUCBG VU5DVElPTiB7eyBjb25ufHF0SWRlbnQobnNwbmFtZSwgbmFtZSkgfX17e2Z1 bmNfYXJnc319eyUgaWYgY2FzY2FkZSAlfSBDQVNDQURFeyUgZW5kaWYgJX07 Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvZ2V0 X2RlZmluaXRpb24uc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvZ2V0X2RlZmluaXRp b24uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4 OWVjY2UKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9nZXRf ZGVmaW5pdGlvbi5zcWwKQEAgLTAsMCArMSwxMSBAQAorU0VMRUNUCisgICAg cGdfZ2V0X2Z1bmN0aW9uZGVmKHt7Zm5pZH19OjpvaWQpIEFTIGZ1bmNfZGVm LAorICAgIG5zcG5hbWUgfHwgJy4nIHx8IHByLnByb25hbWUgfHwgJygnIHx8 IENPQUxFU0NFKHBnX2NhdGFsb2cucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5 X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIG5hbWUKK0ZST00K KyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBP TiBuc3Aub2lkPXByLnByb25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9pc2Fn ZyA9IEZBTFNFCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19Ojpv aWQKKyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX06Om9pZDsKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcGcvc3FsLzkuMl9wbHVzL2dldF9sYW5ndWFnZXMuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwv OS4yX3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uZjgxZGRmYgotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuMl9wbHVzL2dldF9sYW5ndWFnZXMuc3FsCkBAIC0wLDAgKzEs NCBAQAorU0VMRUNUCisgICAgbGFubmFtZSBhcyBsYWJlbCwgbGFubmFtZSBh cyB2YWx1ZQorRlJPTQorICAgIHBnX2xhbmd1YWdlOwpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9w Zy9zcWwvOS4yX3BsdXMvZ2V0X29pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9n ZXRfb2lkLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li4yYmM3NmEyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMv Z2V0X29pZC5zcWwKQEAgLTAsMCArMSwxNyBAQAorU0VMRUNUCisgICAgcHIu b2lkLCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9n CisgICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIu b2lkKSwgJycpIHx8ICcpJyBhcyBuYW1lLAorICAgIGxhbm5hbWUsIHBnX2dl dF91c2VyYnlpZChwcm9vd25lcikgYXMgZnVuY293bmVyCitGUk9NCisgICAg cGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9 cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcu b2lkPXByb2xhbmcKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5z cC5vaWQ9cHIucHJvbmFtZXNwYWNlCisgICAgQU5EIG5zcC5uc3BuYW1lPXt7 IG5zcG5hbWV8cXRMaXRlcmFsIH19CitXSEVSRQorICAgIHByb2lzYWdnID0g RkFMU0UKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2 ZW50X3RyaWdnZXInKQorICAgIEFORCBwci5wcm9uYW1lID0ge3sgbmFtZXxx dExpdGVyYWwgfX07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9nZXRf b3V0X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2dldF9vdXRfdHlwZXMu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0YTEx ODcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9nZXRfb3V0 X3R5cGVzLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIGZvcm1h dF90eXBlKG9pZCwgTlVMTCkgQVMgb3V0X2FyZ190eXBlCitGUk9NCisgICAg cGdfdHlwZQorV0hFUkUKKyAgICBvaWQgPSB7eyBvdXRfYXJnX29pZCB9fTo6 b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvZ2V0X3NjaGVtYS5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BnL3NxbC85LjJfcGx1cy9nZXRfc2NoZW1hLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjdkNGI5Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvZ2V0X3NjaGVtYS5zcWwKQEAgLTAs MCArMSw2IEBACitTRUxFQ1QKKyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdf bmFtZXNwYWNlCitXSEVSRQorICAgIG9pZCA9IHt7IHNjaWQgfX06Om9pZDsK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2dldF90eXBlcy5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bn L3NxbC85LjJfcGx1cy9nZXRfdHlwZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjJhNTU4MmUKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BnL3NxbC85LjJfcGx1cy9nZXRfdHlwZXMuc3FsCkBAIC0wLDAgKzEsMjAg QEAKK1NFTEVDVAorICAgICoKK0ZST00KKyAgICAoU0VMRUNUCisgICAgICAg IGZvcm1hdF90eXBlKHQub2lkLE5VTEwpIEFTIHR5cG5hbWUsCisgICAgICAg IENBU0UgV0hFTiB0eXBlbGVtID4gMCBUSEVOIHR5cGVsZW0gRUxTRSB0Lm9p ZCBFTkQgYXMgZWxlbW9pZCwgdHlwbGVuLCB0eXB0eXBlLCB0Lm9pZCwgbnNw bmFtZSwKKyAgICAgICAgKFNFTEVDVCBDT1VOVCgxKSBGUk9NIHBnX3R5cGUg dDIgV0hFUkUgdDIudHlwbmFtZSA9IHQudHlwbmFtZSkgPiAxIEFTIGlzZHVw CisgICAgRlJPTQorICAgICAgICBwZ190eXBlIHQKKyAgICBKT0lOCisgICAg ICAgIHBnX25hbWVzcGFjZSBuc3AgT04gdHlwbmFtZXNwYWNlPW5zcC5vaWQK KyAgICBXSEVSRQorICAgICAgICAoTk9UICh0eXBuYW1lID0gJ3Vua25vd24n IEFORCBuc3BuYW1lID0gJ3BnX2NhdGFsb2cnKSkKKyAgICBBTkQKKyAgICAg ICAgKAorICAgICAgICAgICAgdHlwdHlwZSBJTiAoJ2InLCAnYycsICdkJywg J2UnLCAncCcsICdyJykKKyAgICAgICAgICAgIEFORCB0eXBuYW1lIE5PVCBJ TiAoJ2FueScsICd0cmlnZ2VyJywgJ2xhbmd1YWdlX2hhbmRsZXInLCAnZXZl bnRfdHJpZ2dlcicpCisgICAgICAgICkKKyAgICApIEFTIGR1bW15CitPUkRF UiBCWSBuc3BuYW1lIDw+ICdwZ19jYXRhbG9nJywgbnNwbmFtZSA8PiAncHVi bGljJywgbnNwbmFtZSwgMTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVz L25vZGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvbm9kZS5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmI2ZWM5ZAotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL25vZGUuc3FsCkBAIC0wLDAgKzEs MTcgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIucHJvbmFtZSB8fCAnKCcg fHwgQ09BTEVTQ0UocGdfY2F0YWxvZy5wZ19nZXRfZnVuY3Rpb25faWRlbnRp dHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMgbmFtZSwKKyAg ICBsYW5uYW1lLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIGFzIGZ1bmNv d25lciwgZGVzY3JpcHRpb24KK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lO CisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lO CisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworTEVG VCBPVVRFUiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMu b2Jqb2lkPXByLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19wcm9jJzo6cmVn Y2xhc3MpCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQg cHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1l IE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCitPUkRFUiBC WQorICAgIHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9w cm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL3Byb3BlcnRpZXMuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmNzgyOTgK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9wcm9wZXJ0aWVz LnNxbApAQCAtMCwwICsxLDMxIEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHBy LnhtaW4sIHByLiosIHByLnByb3NyYyBBUyBwcm9zcmNfYywKKyAgICBwci5w cm9uYW1lIEFTIG5hbWUsIHBnX2dldF9mdW5jdGlvbl9yZXN1bHQocHIub2lk KSBBUyBwcm9yZXR0eXBlbmFtZSwKKyAgICB0eXBucy5uc3BuYW1lIEFTIHR5 cG5zcCwgbGFubmFtZSwgcHJvYXJnbmFtZXMsIG9pZHZlY3RvcnR5cGVzKHBy b2FyZ3R5cGVzKSBBUyBwcm9hcmd0eXBlbmFtZXMsCisgICAgcGdfZ2V0X2V4 cHIocHJvYXJnZGVmYXVsdHMsICdwZ19jYXRhbG9nLnBnX2NsYXNzJzo6cmVn Y2xhc3MpIEFTIHByb2FyZ2RlZmF1bHR2YWxzLAorICAgIHByb25hcmdkZWZh dWx0cywgcHJvY29uZmlnLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIEFT IGZ1bmNvd25lciwgZGVzY3JpcHRpb24sCisgICAgKFNFTEVDVAorICAgICAg ICBhcnJheV9hZ2cocHJvdmlkZXIgfHwgJz0nIHx8IGxhYmVsKQorICAgIEZS T00KKyAgICAgICAgcGdfc2hzZWNsYWJlbCBzbDEKKyAgICBXSEVSRQorICAg ICAgICBzbDEub2Jqb2lkPXByLm9pZCkgQVMgc2VjbGFiZWxzCitGUk9NCisg ICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5v aWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX25hbWVzcGFjZSB0eXBucyBP TiB0eXBucy5vaWQ9dHlwLnR5cG5hbWVzcGFjZQorSk9JTgorICAgIHBnX2xh bmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9J TgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5v aWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hF UkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHByb25hbWVzcGFj ZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0 cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQoreyUgaWYgZm5pZCAlfQorICAg IEFORCBwci5vaWQgPSB7e2ZuaWR9fTo6b2lkCit7JSBlbmRpZiAlfQorT1JE RVIgQlkKKyAgICBwcm9uYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3Bs dXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL3VwZGF0ZS5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2IxZjA4MQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL3VwZGF0ZS5zcWwKQEAg LTAsMCArMSwxMzIgQEAKK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9z ZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21h Y3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdF ICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUubWFj cm9zJyBhcyBWQVJJQUJMRSAlfXslIGlmIGRhdGEgJX0KK3slIHNldCBuYW1l ID0gb19kYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAlfQoreyUgaWYg ZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBGVU5DVElPTiB7 eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLm5h bWUpIH19KHt7CitvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIFJF TkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsKK3slIHNl dCBuYW1lID0gZGF0YS5uYW1lICV9Cit7JSBlbmRpZiAlfQorCit7JSBlbmRp ZiAtJX0KK3slIGlmIGRhdGEuY2hhbmdlX2Z1bmMgICV9CitDUkVBVEUgT1Ig UkVQTEFDRSBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25h bWVzcGFjZSwgbmFtZSkgfX0oeyUgaWYgZGF0YS5hcmd1bWVudHMgJX0KK3sl IGZvciBwIGluIGRhdGEuYXJndW1lbnRzICV9eyUgaWYgcC5hcmdtb2RlICV9 e3twLmFyZ21vZGV9fXslIGVuZGlmICV9eyUgaWYgcC5hcmduYW1lICV9IHt7 Y29ubnxxdElkZW50KHAuYXJnbmFtZSl9fXslIGVuZGlmICV9eyUgaWYgcC5h cmd0eXBlICV9IHt7cC5hcmd0eXBlfX17JSBlbmRpZiAlfXslIGlmIHAuYXJn ZGVmdmFsICV9IERFRkFVTFQge3twLmFyZ2RlZnZhbH19eyUgZW5kaWYgJX0K K3slIGlmIG5vdCBsb29wLmxhc3QgJX0sIHslIGVuZGlmICV9Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmIC0lfQorKSBSRVRVUk5TIHt7IG9fZGF0YS5wcm9y ZXR0eXBlbmFtZSB9fSBBUworeyUgaWYgJ2xhbm5hbWUnIGluIGxhbm5hbWUg YW5kIGRhdGEubGFubmFtZSA9PSAnYycgJX0KK3t7IGRhdGEucHJvYmlufHF0 TGl0ZXJhbCB9fSwge3sgZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX0KK3sl IGVsaWYgJ2xhbm5hbWUnIGluIGRhdGEgYW5kICdwcm9zcmMnIGluIGRhdGEg JX0KKyRCT0RZJHt7IGRhdGEucHJvc3JjIH19JEJPRFkkCit7JSBlbGlmIG9f ZGF0YS5sYW5uYW1lID09ICdjJyAlfQore3sgb19kYXRhLnByb2JpbnxxdExp dGVyYWwgfX0sIHt7IG9fZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX0KK3sl IGVsc2UgJX0KKyRCT0RZJHt7IG9fZGF0YS5wcm9zcmMgfX0kQk9EWSQKK3sl IGVuZGlmIC0lfQorCit7JSBpZiAnbGFubmFtZScgaW4gZGF0YSAlfQorTEFO R1VBR0Uge3sgZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fXslIGVsc2UgJX0K K0xBTkdVQUdFIHt7IG9fZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fXslIGVu ZGlmIC0lfXslIGlmICgncHJvbGVha3Byb29mJyBpbiBkYXRhIGFuZCBkYXRh LnByb2xlYWtwcm9vZikgb3IgKCdwcm9sZWFrcHJvb2YnIG5vdCBpbiBkYXRh IGFuZCBvX2RhdGEucHJvbGVha3Byb29mKSAlfSBMRUFLUFJPT0Z7JSBlbHNl ICV9IE5PVCBMRUFLUFJPT0Z7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9pc3N0 cmljdCcgaW4gZGF0YSBhbmQgZGF0YS5wcm9pc3N0cmljdCkgb3IgKCdwcm9p c3N0cmljdCcgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9pc3N0cmljdCkg JX0gU1RSSUNUeyUgZW5kaWYgJX0KK3slIGlmICgncHJvc2VjZGVmJyBpbiBk YXRhIGFuZCBkYXRhLnByb3NlY2RlZikgb3IgKCdwcm9zZWNkZWYnIG5vdCBp biBkYXRhIGFuZCBvX2RhdGEucHJvc2VjZGVmKSAlfSBTRUNVUklUWSBERUZJ TkVSeyUgZW5kaWYgJX0KK3slIGlmICgncHJvaXN3aW5kb3cnIGluIGRhdGEg YW5kIGRhdGEucHJvaXN3aW5kb3cpIG9yICgncHJvaXN3aW5kb3cnIG5vdCBp biBkYXRhIGFuZCBvX2RhdGEucHJvaXN3aW5kb3cpICV9IFdJTkRPV3slIGVu ZGlmICV9eyUgaWYgZGF0YS5wcm9jb3N0ICV9CisKK0NPU1Qge3tkYXRhLnBy b2Nvc3R9fXslIGVsaWYgb19kYXRhLnByb2Nvc3QgJX0gQ09TVCB7e29fZGF0 YS5wcm9jb3N0fX0geyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb3Jvd3MgJX0K KworUk9XUyB7e2RhdGEucHJvcm93c319IHslIGVsaWYgb19kYXRhLnByb3Jv d3MgJX0gUk9XUyB7e29fZGF0YS5wcm9yb3dzfX0geyUKK2VuZGlmIC0lfXsl IGlmIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAlfQorCit7JSBmb3IgdiBpbiBk YXRhLm1lcmdlZF92YXJpYWJsZXMgJX0KKworU0VUIHt7IGNvbm58cXRJZGVu dCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8cXRMaXRlcmFsIH19eyUgZW5kZm9y IC0lfQoreyUgZW5kaWYgLSV9OworeyUgZW5kaWYgLSV9CisKK3slIGlmIGRh dGEuZnVuY293bmVyICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJ ZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7eworb19kYXRh LnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBPV05FUiBUTyB7eyBkYXRhLmZ1 bmNvd25lciB9fTsKK3slIGVuZGlmIC0lfQorCisKK3sjIFRoZSBTUUwgZ2Vu ZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIHByaXZpbGVkZ2VzICN9Cit7JSBp ZiBkYXRhLmFjbCAlfQorCit7JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS5hY2wg JX0KK3slIGZvciBwcml2IGluIGRhdGEuYWNsLmRlbGV0ZWQgJX0KK3t7IFBS SVZJTEVHRS5VTlNFVEFMTChjb25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50 ZWUsIG5hbWUsIG9fZGF0YQorLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2Fy Z3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CisK K3slIGlmICdjaGFuZ2VkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHBy aXYgaW4gZGF0YS5hY2wuY2hhbmdlZCAlfQorCit7eyBQUklWSUxFR0UuVU5T RVRBTEwoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBv X2RhdGEKKy5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMp IH19Cit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdGVU5DVElPTicsIHByaXYu Z3JhbnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50LAorIHByaXYud2l0 aF9ncmFudCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5 cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CisKK3sl IGlmICdhZGRlZCcgaW4gZGF0YS5hY2wgJX0KK3slIGZvciBwcml2IGluIGRh dGEuYWNsLmFkZGVkICV9Cit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdGVU5D VElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50 LAorIHByaXYud2l0aF9ncmFudCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19k YXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5k aWYgJX0KK3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLmNoYW5nZV9mdW5j ID09IEZhbHNlICV9Cit7JSBpZiBkYXRhLnZhcmlhYmxlcyAlfQoreyUgaWYg J2RlbGV0ZWQnIGluIGRhdGEudmFyaWFibGVzIGFuZCBkYXRhLnZhcmlhYmxl cy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KKwore3sgVkFSSUFCTEUuVU5TRVQo Y29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgZGF0YS52YXJpYWJsZXMuZGVsZXRl ZCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1l cyApIH19Cit7JSBlbmRpZiAtJX0KK3slIGlmICdtZXJnZWRfdmFyaWFibGVz JyBpbiBkYXRhIGFuZCBkYXRhLm1lcmdlZF92YXJpYWJsZXN8bGVuZ3RoID4g MCAlfQorCit7eyBWQVJJQUJMRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFt ZSwgZGF0YS5tZXJnZWRfdmFyaWFibGVzLCBvX2RhdGEucHJvbmFtZXNwYWNl LCBvX2RhdGEucHJvYXJndHlwZW5hbWVzICkgfX0KK3slIGVuZGlmIC0lfQor eyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0KKworeyUgc2V0IHNlY2xhYmVs cyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gc2Vj bGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRlZHxsZW5ndGggPiAwICV9Cit7 JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVsZXRlZCAlfQorCit7eyBTRUNMQUJM RS5VTlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCBv X2RhdGEucHJvbmFtZXNwYWNlKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAtJX0KK3slIGlmICdhZGRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJl bHMuYWRkZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxz LmFkZGVkICV9CisKK3t7IFNFQ0xBQkxFLlNFVChjb25uLCAnRlVOQ1RJT04n LCBuYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBvX2RhdGEu cHJvbmFtZXNwYWNlKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0K K3slIGlmICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5j aGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5j aGFuZ2VkICV9CisKK3t7IFNFQ0xBQkxFLlNFVChjb25uLCAnRlVOQ1RJT04n LCBuYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBvX2RhdGEu cHJvbmFtZXNwYWNlKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0K KworeyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorCitDT01NRU5UIE9OIEZV TkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBu YW1lKSB9fSh7eworb19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBJ UyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlm IC0lfQorCit7JSBpZiBkYXRhLnByb25hbWVzcGFjZSAlfQorCitBTFRFUiBG VU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwg bmFtZSkgfX0oe3sKK29fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAg U0VUIFNDSEVNQSB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2Up IH19OworeyUgZW5kaWYgLSV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BnL3NxbC85LjJfcGx1cy92YXJpYWJsZXMuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3Bs dXMvdmFyaWFibGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi41MjMzYzcxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4y X3BsdXMvdmFyaWFibGVzLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAor ICAgIG5hbWUsIHZhcnR5cGUsIG1pbl92YWwsIG1heF92YWwsIGVudW12YWxz CitGUk9NCisgICAgcGdfc2V0dGluZ3MKK1dIRVJFCisgICAgY29udGV4dCBp biAoJ3VzZXInLCAnc3VwZXJ1c2VyJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjVfcGx1cy9hY2wuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvYWNsLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDNlMGQxCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvYWNsLnNxbApAQCAtMCww ICsxLDM1IEBACitTRUxFQ1QKKyAgICBDT0FMRVNDRShndC5yb2xuYW1lLCAn cHVibGljJykgQVMgZ3JhbnRlZSwKKyAgICBnLnJvbG5hbWUgQVMgZ3JhbnRv ciwgYXJyYXlfYWdnKHByaXZpbGVnZV90eXBlKSBBUyBwcml2aWxlZ2VzLAor ICAgIGFycmF5X2FnZyhpc19ncmFudGFibGUpIEFTIGdyYW50YWJsZQorRlJP TQorICAgIChTRUxFQ1QKKyAgICAgICAgZC5ncmFudGVlLCBkLmdyYW50b3Is IGQuaXNfZ3JhbnRhYmxlLAorICAgICAgICBDQVNFIGQucHJpdmlsZWdlX3R5 cGUKKyAgICAgICAgV0hFTiAnQ09OTkVDVCcgVEhFTiAnYycKKyAgICAgICAg V0hFTiAnQ1JFQVRFJyBUSEVOICdDJworICAgICAgICBXSEVOICdERUxFVEUn IFRIRU4gJ2QnCisgICAgICAgIFdIRU4gJ0VYRUNVVEUnIFRIRU4gJ1gnCisg ICAgICAgIFdIRU4gJ0lOU0VSVCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAn UkVGRVJFTkNFUycgVEhFTiAneCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBU SEVOICdyJworICAgICAgICBXSEVOICdURU1QT1JBUlknIFRIRU4gJ1QnCisg ICAgICAgIFdIRU4gJ1RSSUdHRVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4g J1RSVU5DQVRFJyBUSEVOICdEJworICAgICAgICBXSEVOICdVUERBVEUnIFRI RU4gJ3cnCisgICAgICAgIFdIRU4gJ1VTQUdFJyBUSEVOICdVJworICAgICAg ICBFTFNFICdVTktOT1dOJworICAgICAgICBFTkQgQVMgcHJpdmlsZWdlX3R5 cGUKKyAgICBGUk9NCisgICAgICAgIChTRUxFQ1QKKyAgICAgICAgICAgIChk KS5ncmFudGVlIEFTIGdyYW50ZWUsIChkKS5ncmFudG9yIEFTIGdyYW50b3Is CisgICAgICAgICAgICAoZCkuaXNfZ3JhbnRhYmxlIEFTIGlzX2dyYW50YWJs ZSwKKyAgICAgICAgICAgIChkKS5wcml2aWxlZ2VfdHlwZSBBUyBwcml2aWxl Z2VfdHlwZQorICAgICAgICBGUk9NCisgICAgICAgICAgICAoU0VMRUNUIGFj bGV4cGxvZGUoZGIucHJvYWNsKSBBUyBkIEZST00gcGdfcHJvYyBkYgorICAg ICAgICAgICAgV0hFUkUgZGIub2lkID0ge3tmbmlkfX06Ok9JRCkgYQorICAg ICAgICApIGQKKyAgICApIGQKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5w Z19yb2xlcyBnIE9OIChkLmdyYW50b3IgPSBnLm9pZCkKKyAgICBMRUZUIEpP SU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBndCBPTiAoZC5ncmFudGVlID0gZ3Qu b2lkKQorR1JPVVAgQlkgZy5yb2xuYW1lLCBndC5yb2xuYW1lOwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wZy9zcWwvOS41X3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9w bHVzL2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uMWQ3ZjQ2NQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9w bHVzL2NyZWF0ZS5zcWwKQEAgLTAsMCArMSw2NyBAQAoreyUgaW1wb3J0ICdt YWNyb3MvZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUg JX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFj cm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0 aW9ucy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9Cit7JSBzZXQg aXNfY29sdW1ucyA9IFtdICV9Cit7JSBpZiBkYXRhICV9CitDUkVBVEUgRlVO Q1RJT04ge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRh Lm5hbWUpIH19KHslIGlmIGRhdGEKKy5hcmd1bWVudHMgJX0KK3slIGZvciBw IGluIGRhdGEuYXJndW1lbnRzICV9e3twLmFyZ21vZGV9fSB7JSBpZiBwLmFy Z25hbWUgJX17eyBjb25ufHF0SWRlbnQocC5hcmduYW1lKX19eyUgZW5kaWYg JX17JSBpZiBwLmFyZ3R5cGUgJX0ge3twLmFyZ3R5cGV9fXslIGVuZGlmICV9 eyUKK2lmIHAuYXJnZGVmdmFsICV9IERFRkFVTFQge3twLmFyZ2RlZnZhbH19 eyUgZW5kaWYgJX0KK3slIGlmIG5vdCBsb29wLmxhc3QgJX0seyUgZW5kaWYg JX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CisgICAgKSBSRVRVUk5T eyUgaWYgZGF0YS5wcm9yZXRzZXQgJX0gU0VUT0Z7JSBlbmRpZiAlfSB7eyBj b25ufHF0VHlwZUlkZW50KGRhdGEKKyAgICAucHJvcmV0dHlwZW5hbWUpIH19 IEFTCit7JSBpZiBkYXRhLmxhbm5hbWUgPT0gJ2MnICV9Cit7eyBkYXRhLnBy b2JpbnxxdExpdGVyYWwgfX0sIHt7IGRhdGEucHJvc3JjX2N8cXRMaXRlcmFs IH19Cit7JSBlbHNlICV9CiskQk9EWSR7eyBkYXRhLnByb3NyYyB9fSRCT0RZ JAoreyUgZW5kaWYgJX0KK0xBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxxdExp dGVyYWwgfX0ge3sgZGF0YS5wcm92b2xhdGlsZSB9fXslIGlmIGRhdGEKKy5w cm9sZWFrcHJvb2YgJX0gTEVBS1BST09GeyUgZWxzZSAlfSBOT1QgTEVBS1BS T09GeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvaXNzdHJpY3QgJX0gU1RS SUNUeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvc2VjZGVmICV9IFNFQ1VS SVRZIERFRklORVJ7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5wcm9pc3dpbmRv dyAlfSBXSU5ET1d7JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvY29zdCAlfQor CitDT1NUIHt7ZGF0YS5wcm9jb3N0fX17JSBlbmRpZiAlfXslIGlmIGRhdGEu cHJvcm93cyAlfQorCitST1dTIHt7ZGF0YS5wcm9yb3dzfX17JSBlbmRpZiAt JX17JSBpZiBkYXRhLnZhcmlhYmxlcyAlfQorCit7JSBmb3IgdiBpbiBkYXRh LnZhcmlhYmxlcyAlfQorCitTRVQge3sgY29ubnxxdElkZW50KHYubmFtZSkg fX09e3sgdi52YWx1ZXxxdExpdGVyYWwgfX17JSBlbmRmb3IgLSV9Cit7JSBl bmRpZiAtJX07CisKK3slIGlmIGRhdGEuZnVuY293bmVyICV9CisKK0FMVEVS IEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwg ZGF0YS5uYW1lKSB9fSh7e2RhdGEKKy5mdW5jX2FyZ3N9fSkKKyAgICBPV05F UiBUTyB7eyBkYXRhLmZ1bmNvd25lciB9fTsKK3slIGVuZGlmIC0lfQorCit7 JSBpZiBkYXRhLmFjbCAlfQoreyUgZm9yIHAgaW4gZGF0YS5hY2wgJX0KKwor e3sgUFJJVklMRUdFLlNFVChjb25uLCAiRlVOQ1RJT04iLCBwLmdyYW50ZWUs IGRhdGEubmFtZSwgcC53aXRob3V0X2dyYW50LCBwCisud2l0aF9ncmFudCwg ZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19hcmdzKX19Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLmRlc2NyaXB0aW9u ICV9CisKK0NPTU1FTlQgT04gRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KGRh dGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19KHt7ZGF0YQorLmZ1bmNf YXJnc319KQorICAgIElTICd7eyBkYXRhLmRlc2NyaXB0aW9uIH19JzsKK3sl IGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLnNlY2xhYmVscyAlfQoreyUgZm9y IHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmIHIubGFiZWwgYW5kIHIu cHJvdmlkZXIgJX0KKwore3sgU0VDTEFCTEUuU0VUKGNvbm4sICdGVU5DVElP TicsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5sYWJlbCwgZGF0YQorLnBy b25hbWVzcGFjZSwgZGF0YS5mdW5jX2FyZ3MpIH19Cit7JSBlbmRpZiAlfQor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKworeyUgZW5kaWYgJX0KZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL2RlbGV0ZS5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjVfcGx1cy9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjI0NmJlYzEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjVfcGx1cy9kZWxldGUuc3FsCkBAIC0wLDAgKzEsMjEgQEAKK3slIGlmIHNj aWQgYW5kIGZuaWQgJX0KK1NFTEVDVAorICAgIHByLnByb25hbWUgYXMgbmFt ZSwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1 bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJykn IGFzIGZ1bmNfYXJncywKKyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdfcHJv YyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0 dHlwZQorSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1w ci5wcm9uYW1lc3BhY2UKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQor ICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5E IHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykK KyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX07Cit7JSBlbmRpZiAlfQorCit7 JSBpZiBuYW1lICV9CitEUk9QIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChu c3BuYW1lLCBuYW1lKSB9fXt7ZnVuY19hcmdzfX17JSBpZiBjYXNjYWRlICV9 IENBU0NBREV7JSBlbmRpZiAlfTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BnL3NxbC85LjVfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjVfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNTg5ZWNjZQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuNV9wbHVzL2dldF9kZWZpbml0aW9uLnNxbApAQCAtMCwwICsx LDExIEBACitTRUxFQ1QKKyAgICBwZ19nZXRfZnVuY3Rpb25kZWYoe3tmbmlk fX06Om9pZCkgQVMgZnVuY19kZWYsCisgICAgbnNwbmFtZSB8fCAnLicgfHwg cHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZy5wZ19n ZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8 fCAnKScgYXMgbmFtZQorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAg ICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNl CitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJvbmFt ZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCBwci5vaWQgPSB7e2Zu aWR9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvZ2V0X2xh bmd1YWdlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9nZXRfbGFuZ3VhZ2VzLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODFkZGZi Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvZ2V0X2xhbmd1 YWdlcy5zcWwKQEAgLTAsMCArMSw0IEBACitTRUxFQ1QKKyAgICBsYW5uYW1l IGFzIGxhYmVsLCBsYW5uYW1lIGFzIHZhbHVlCitGUk9NCisgICAgcGdfbGFu Z3VhZ2U7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9nZXRfb2lkLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcGcvc3FsLzkuNV9wbHVzL2dldF9vaWQuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiYzc2YTIKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BnL3NxbC85LjVfcGx1cy9nZXRfb2lkLnNxbApAQCAtMCwwICsxLDE3 IEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnByb25hbWUgfHwgJygnIHx8 IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lk ZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIG5hbWUs CisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBhcyBm dW5jb3duZXIKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdf dHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdf bGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworSk9JTgorICAgIHBn X25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UKKyAg ICBBTkQgbnNwLm5zcG5hbWU9e3sgbnNwbmFtZXxxdExpdGVyYWwgfX0KK1dI RVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCB0eXBuYW1lIE5P VCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIHBy LnByb25hbWUgPSB7eyBuYW1lfHF0TGl0ZXJhbCB9fTsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuNV9wbHVzL2dldF9vdXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41 X3BsdXMvZ2V0X291dF90eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uNjRhMTE4NwotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcv c3FsLzkuNV9wbHVzL2dldF9vdXRfdHlwZXMuc3FsCkBAIC0wLDAgKzEsNiBA QAorU0VMRUNUCisgICAgZm9ybWF0X3R5cGUob2lkLCBOVUxMKSBBUyBvdXRf YXJnX3R5cGUKK0ZST00KKyAgICBwZ190eXBlCitXSEVSRQorICAgIG9pZCA9 IHt7IG91dF9hcmdfb2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjVfcGx1cy9nZXRfc2NoZW1hLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL2dldF9z Y2hlbWEuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjEyN2Q0YjkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9n ZXRfc2NoZW1hLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIG5z cG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UKK1dIRVJFCisgICAgb2lk ID0ge3sgc2NpZCB9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3Bs dXMvZ2V0X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL2dldF90eXBlcy5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE1NTgy ZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL2dldF90eXBl cy5zcWwKQEAgLTAsMCArMSwyMCBAQAorU0VMRUNUCisgICAgKgorRlJPTQor ICAgIChTRUxFQ1QKKyAgICAgICAgZm9ybWF0X3R5cGUodC5vaWQsTlVMTCkg QVMgdHlwbmFtZSwKKyAgICAgICAgQ0FTRSBXSEVOIHR5cGVsZW0gPiAwIFRI RU4gdHlwZWxlbSBFTFNFIHQub2lkIEVORCBhcyBlbGVtb2lkLCB0eXBsZW4s IHR5cHR5cGUsIHQub2lkLCBuc3BuYW1lLAorICAgICAgICAoU0VMRUNUIENP VU5UKDEpIEZST00gcGdfdHlwZSB0MiBXSEVSRSB0Mi50eXBuYW1lID0gdC50 eXBuYW1lKSA+IDEgQVMgaXNkdXAKKyAgICBGUk9NCisgICAgICAgIHBnX3R5 cGUgdAorICAgIEpPSU4KKyAgICAgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiB0 eXBuYW1lc3BhY2U9bnNwLm9pZAorICAgIFdIRVJFCisgICAgICAgIChOT1Qg KHR5cG5hbWUgPSAndW5rbm93bicgQU5EIG5zcG5hbWUgPSAncGdfY2F0YWxv ZycpKQorICAgIEFORAorICAgICAgICAoCisgICAgICAgICAgICB0eXB0eXBl IElOICgnYicsICdjJywgJ2QnLCAnZScsICdwJywgJ3InKQorICAgICAgICAg ICAgQU5EIHR5cG5hbWUgTk9UIElOICgnYW55JywgJ3RyaWdnZXInLCAnbGFu Z3VhZ2VfaGFuZGxlcicsICdldmVudF90cmlnZ2VyJykKKyAgICAgICAgKQor ICAgICkgQVMgZHVtbXkKK09SREVSIEJZIG5zcG5hbWUgPD4gJ3BnX2NhdGFs b2cnLCBuc3BuYW1lIDw+ICdwdWJsaWMnLCBuc3BuYW1lLCAxOwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wZy9zcWwvOS41X3BsdXMvbm9kZS5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1 cy9ub2RlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5iYjZlYzlkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMv bm9kZS5zcWwKQEAgLTAsMCArMSwxNyBAQAorU0VMRUNUCisgICAgcHIub2lk LCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nLnBn X2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycp IHx8ICcpJyBhcyBuYW1lLAorICAgIGxhbm5hbWUsIHBnX2dldF91c2VyYnlp ZChwcm9vd25lcikgYXMgZnVuY293bmVyLCBkZXNjcmlwdGlvbgorRlJPTQor ICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAu b2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04g bG5nLm9pZD1wcm9sYW5nCitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19kZXNj cmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9cHIub2lkIEFORCBkZXMuY2xh c3NvaWQ9J3BnX3Byb2MnOjpyZWdjbGFzcykKK1dIRVJFCisgICAgcHJvaXNh Z2cgPSBGQUxTRQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6 b2lkCisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVu dF90cmlnZ2VyJykKK09SREVSIEJZCisgICAgcHJvbmFtZTsKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcGcvc3FsLzkuNV9wbHVzL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41 X3BsdXMvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uZmY3ODI5OAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3Fs LzkuNV9wbHVzL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEsMzEgQEAKK1NF TEVDVAorICAgIHByLm9pZCwgcHIueG1pbiwgcHIuKiwgcHIucHJvc3JjIEFT IHByb3NyY19jLAorICAgIHByLnByb25hbWUgQVMgbmFtZSwgcGdfZ2V0X2Z1 bmN0aW9uX3Jlc3VsdChwci5vaWQpIEFTIHByb3JldHR5cGVuYW1lLAorICAg IHR5cG5zLm5zcG5hbWUgQVMgdHlwbnNwLCBsYW5uYW1lLCBwcm9hcmduYW1l cywgb2lkdmVjdG9ydHlwZXMocHJvYXJndHlwZXMpIEFTIHByb2FyZ3R5cGVu YW1lcywKKyAgICBwZ19nZXRfZXhwcihwcm9hcmdkZWZhdWx0cywgJ3BnX2Nh dGFsb2cucGdfY2xhc3MnOjpyZWdjbGFzcykgQVMgcHJvYXJnZGVmYXVsdHZh bHMsCisgICAgcHJvbmFyZ2RlZmF1bHRzLCBwcm9jb25maWcsIHBnX2dldF91 c2VyYnlpZChwcm9vd25lcikgQVMgZnVuY293bmVyLCBkZXNjcmlwdGlvbiwK KyAgICAoU0VMRUNUCisgICAgICAgIGFycmF5X2FnZyhwcm92aWRlciB8fCAn PScgfHwgbGFiZWwpCisgICAgRlJPTQorICAgICAgICBwZ19zaHNlY2xhYmVs IHNsMQorICAgIFdIRVJFCisgICAgICAgIHNsMS5vYmpvaWQ9cHIub2lkKSBB UyBzZWNsYWJlbHMKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAg cGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAg cGdfbmFtZXNwYWNlIHR5cG5zIE9OIHR5cG5zLm9pZD10eXAudHlwbmFtZXNw YWNlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJv bGFuZworTEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVz IE9OIChkZXMub2Jqb2lkPXByLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19w cm9jJzo6cmVnY2xhc3MpCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UK KyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFO RCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicp Cit7JSBpZiBmbmlkICV9CisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19Ojpv aWQKK3slIGVuZGlmICV9CitPUkRFUiBCWQorICAgIHByb25hbWU7CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1 bmN0aW9uL3BnL3NxbC85LjVfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41 X3BsdXMvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi44YjI4MTM0Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41 X3BsdXMvdXBkYXRlLnNxbApAQCAtMCwwICsxLDEzMiBAQAoreyUgaW1wb3J0 ICdtYWNyb3MvZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFC TEUgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2Uu bWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1 bmN0aW9ucy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9eyUgaWYg ZGF0YSAlfQoreyUgc2V0IG5hbWUgPSBvX2RhdGEubmFtZSAlfQoreyUgaWYg ZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUg JX0KK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJv bmFtZXNwYWNlLCBvX2RhdGEubmFtZSkgfX0oe3sKK29fZGF0YS5wcm9hcmd0 eXBlbmFtZXMgfX0pCisgICAgUkVOQU1FIFRPIHt7IGNvbm58cXRJZGVudChk YXRhLm5hbWUpIH19OworeyUgc2V0IG5hbWUgPSBkYXRhLm5hbWUgJX0KK3sl IGVuZGlmICV9CisKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5jaGFuZ2Vf ZnVuYyAgJX0KK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHt7IGNvbm58 cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7JSBpZiBk YXRhLmFyZ3VtZW50cyAlfQoreyUgZm9yIHAgaW4gZGF0YS5hcmd1bWVudHMg JX17JSBpZiBwLmFyZ21vZGUgJX17e3AuYXJnbW9kZX19eyUgZW5kaWYgJX17 JSBpZiBwLmFyZ25hbWUgJX0ge3sgY29ubnxxdElkZW50KHAuYXJnbmFtZSkg fX17JSBlbmRpZiAlfXslIGlmIHAuYXJndHlwZSAlfSB7e3AuYXJndHlwZX19 eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxUIHt7cC5h cmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9 LHslIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorKSBS RVRVUk5TIHt7IG9fZGF0YS5wcm9yZXR0eXBlbmFtZSB9fSBBUworeyUgaWYg J2xhbm5hbWUnIGluIGxhbm5hbWUgYW5kIGRhdGEubGFubmFtZSA9PSAnYycg JX0KK3t7IGRhdGEucHJvYmlufHF0TGl0ZXJhbCB9fSwge3sgZGF0YS5wcm9z cmNfY3xxdExpdGVyYWwgfX0KK3slIGVsaWYgJ2xhbm5hbWUnIGluIGRhdGEg YW5kICdwcm9zcmMnIGluIGRhdGEgJX0KKyRCT0RZJHt7IGRhdGEucHJvc3Jj IH19JEJPRFkkCit7JSBlbGlmIG9fZGF0YS5sYW5uYW1lID09ICdjJyAlfQor e3sgb19kYXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7IG9fZGF0YS5wcm9z cmNfY3xxdExpdGVyYWwgfX0KK3slIGVsc2UgJX0KKyRCT0RZJHt7IG9fZGF0 YS5wcm9zcmMgfX0kQk9EWSQKK3slIGVuZGlmIC0lfQorCit7JSBpZiAnbGFu bmFtZScgaW4gZGF0YSAlfQorTEFOR1VBR0Uge3sgZGF0YS5sYW5uYW1lfHF0 TGl0ZXJhbCB9fXslIGVsc2UgJX0KK0xBTkdVQUdFIHt7IG9fZGF0YS5sYW5u YW1lfHF0TGl0ZXJhbCB9fXslIGVuZGlmIC0lfXslIGlmICgncHJvbGVha3By b29mJyBpbiBkYXRhIGFuZCBkYXRhLnByb2xlYWtwcm9vZikgb3IgKCdwcm9s ZWFrcHJvb2YnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvbGVha3Byb29m KSAlfSBMRUFLUFJPT0Z7JSBlbHNlICV9IE5PVCBMRUFLUFJPT0Z7JSBlbmRp ZiAlfQoreyUgaWYgKCdwcm9pc3N0cmljdCcgaW4gZGF0YSBhbmQgZGF0YS5w cm9pc3N0cmljdCkgb3IgKCdwcm9pc3N0cmljdCcgbm90IGluIGRhdGEgYW5k IG9fZGF0YS5wcm9pc3N0cmljdCkgJX0gU1RSSUNUeyUgZW5kaWYgJX0KK3sl IGlmICgncHJvc2VjZGVmJyBpbiBkYXRhIGFuZCBkYXRhLnByb3NlY2RlZikg b3IgKCdwcm9zZWNkZWYnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvc2Vj ZGVmKSAlfSBTRUNVUklUWSBERUZJTkVSeyUgZW5kaWYgJX0KK3slIGlmICgn cHJvaXN3aW5kb3cnIGluIGRhdGEgYW5kIGRhdGEucHJvaXN3aW5kb3cpIG9y ICgncHJvaXN3aW5kb3cnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvaXN3 aW5kb3cpICV9IFdJTkRPV3slIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9jb3N0 ICV9CisKK0NPU1Qge3tkYXRhLnByb2Nvc3R9fXslIGVsaWYgb19kYXRhLnBy b2Nvc3QgJX0gQ09TVCB7e29fZGF0YS5wcm9jb3N0fX0geyUgZW5kaWYgJX17 JSBpZiBkYXRhLnByb3Jvd3MgJX0KKworUk9XUyB7e2RhdGEucHJvcm93c319 IHslIGVsaWYgb19kYXRhLnByb3Jvd3MgJX0gUk9XUyB7e29fZGF0YS5wcm9y b3dzfX0geyUKK2VuZGlmIC0lfXslIGlmIGRhdGEubWVyZ2VkX3ZhcmlhYmxl cyAlfQorCit7JSBmb3IgdiBpbiBkYXRhLm1lcmdlZF92YXJpYWJsZXMgJX0K KworU0VUIHt7IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8 cXRMaXRlcmFsIH19eyUgZW5kZm9yIC0lfQoreyUgZW5kaWYgLSV9OworeyUg ZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuZnVuY293bmVyICV9CisKK0FMVEVS IEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNl LCBuYW1lKSB9fSh7eworb19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAg ICBPV05FUiBUTyB7eyBkYXRhLmZ1bmNvd25lciB9fTsKK3slIGVuZGlmIC0l fQorCisKK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdl IHByaXZpbGVkZ2VzICN9Cit7JSBpZiBkYXRhLmFjbCAlfQorCit7JSBpZiAn ZGVsZXRlZCcgaW4gZGF0YS5hY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEu YWNsLmRlbGV0ZWQgJX0KK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAn RlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0YQorLnByb25h bWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZv ciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGlmICdjaGFuZ2VkJyBpbiBkYXRh LmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuY2hhbmdlZCAl fQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ0ZVTkNUSU9OJywg cHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEKKy5wcm9uYW1lc3BhY2UsIG9f ZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7eyBQUklWSUxFR0UuU0VUKGNv bm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53aXRo b3V0X2dyYW50LAorIHByaXYud2l0aF9ncmFudCwgb19kYXRhLnByb25hbWVz cGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAl fQoreyUgZW5kaWYgLSV9CisKK3slIGlmICdhZGRlZCcgaW4gZGF0YS5hY2wg JX0KK3slIGZvciBwcml2IGluIGRhdGEuYWNsLmFkZGVkICV9Cit7eyBQUklW SUxFR0UuU0VUKGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFt ZSwgcHJpdi53aXRob3V0X2dyYW50LAorIHByaXYud2l0aF9ncmFudCwgb19k YXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0K K3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmIC0lfQorCit7 JSBpZiBkYXRhLmNoYW5nZV9mdW5jID09IEZhbHNlICV9Cit7JSBpZiBkYXRh LnZhcmlhYmxlcyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEudmFyaWFi bGVzIGFuZCBkYXRhLnZhcmlhYmxlcy5kZWxldGVkfGxlbmd0aCA+IDAgJX0K Kwore3sgVkFSSUFCTEUuVU5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwg ZGF0YS52YXJpYWJsZXMuZGVsZXRlZCwgb19kYXRhLnByb25hbWVzcGFjZSwg b19kYXRhLnByb2FyZ3R5cGVuYW1lcyApIH19Cit7JSBlbmRpZiAtJX0KK3sl IGlmICdtZXJnZWRfdmFyaWFibGVzJyBpbiBkYXRhIGFuZCBkYXRhLm1lcmdl ZF92YXJpYWJsZXN8bGVuZ3RoID4gMCAlfQorCit7eyBWQVJJQUJMRS5TRVQo Y29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgZGF0YS5tZXJnZWRfdmFyaWFibGVz LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVz ICkgfX0KK3slIGVuZGlmIC0lfQoreyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAt JX0KKworeyUgc2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7 JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVs ZXRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVs ZXRlZCAlfQorCit7eyBTRUNMQUJMRS5VTlNFVChjb25uLCAnRlVOQ1RJT04n LCBuYW1lLCByLnByb3ZpZGVyLCBvX2RhdGEucHJvbmFtZXNwYWNlKSB9fQor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdhZGRlZCcgaW4g c2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAlfQor eyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9CisKK3t7IFNFQ0xBQkxF LlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCByLnNl Y3VyaXR5X2xhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlKSB9fQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBzZWNs YWJlbHMgYW5kIHNlY2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3sl IGZvciByIGluIHNlY2xhYmVscy5jaGFuZ2VkICV9CisKK3t7IFNFQ0xBQkxF LlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCByLnNl Y3VyaXR5X2xhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlKSB9fQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5kZXNjcmlwdGlv biAlfQorCitDT01NRU5UIE9OIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChv X2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7eworb19kYXRhLnByb2Fy Z3R5cGVuYW1lcyB9fSkKKyAgICBJUyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0 TGl0ZXJhbCB9fTsKK3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLnByb25h bWVzcGFjZSAlfQorCitBTFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQo b19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oe3sKK29fZGF0YS5wcm9h cmd0eXBlbmFtZXMgfX0pCisgICAgU0VUIFNDSEVNQSB7eyBjb25ufHF0SWRl bnQoZGF0YS5wcm9uYW1lc3BhY2UpIH19OworeyUgZW5kaWYgLSV9CisKK3sl IGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy92YXJpYWJs ZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvdmFyaWFibGVzLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjMzYzcxCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvdmFyaWFibGVzLnNxbApAQCAt MCwwICsxLDYgQEAKK1NFTEVDVAorICAgIG5hbWUsIHZhcnR5cGUsIG1pbl92 YWwsIG1heF92YWwsIGVudW12YWxzCitGUk9NCisgICAgcGdfc2V0dGluZ3MK K1dIRVJFCisgICAgY29udGV4dCBpbiAoJ3VzZXInLCAnc3VwZXJ1c2VyJyk7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2FjbC5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMv c3FsLzkuMV9wbHVzL2FjbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uYWQzZTBkMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9z cWwvOS4xX3BsdXMvYWNsLnNxbApAQCAtMCwwICsxLDM1IEBACitTRUxFQ1QK KyAgICBDT0FMRVNDRShndC5yb2xuYW1lLCAncHVibGljJykgQVMgZ3JhbnRl ZSwKKyAgICBnLnJvbG5hbWUgQVMgZ3JhbnRvciwgYXJyYXlfYWdnKHByaXZp bGVnZV90eXBlKSBBUyBwcml2aWxlZ2VzLAorICAgIGFycmF5X2FnZyhpc19n cmFudGFibGUpIEFTIGdyYW50YWJsZQorRlJPTQorICAgIChTRUxFQ1QKKyAg ICAgICAgZC5ncmFudGVlLCBkLmdyYW50b3IsIGQuaXNfZ3JhbnRhYmxlLAor ICAgICAgICBDQVNFIGQucHJpdmlsZWdlX3R5cGUKKyAgICAgICAgV0hFTiAn Q09OTkVDVCcgVEhFTiAnYycKKyAgICAgICAgV0hFTiAnQ1JFQVRFJyBUSEVO ICdDJworICAgICAgICBXSEVOICdERUxFVEUnIFRIRU4gJ2QnCisgICAgICAg IFdIRU4gJ0VYRUNVVEUnIFRIRU4gJ1gnCisgICAgICAgIFdIRU4gJ0lOU0VS VCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAnUkVGRVJFTkNFUycgVEhFTiAn eCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAgICAgICBX SEVOICdURU1QT1JBUlknIFRIRU4gJ1QnCisgICAgICAgIFdIRU4gJ1RSSUdH RVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1RSVU5DQVRFJyBUSEVOICdE JworICAgICAgICBXSEVOICdVUERBVEUnIFRIRU4gJ3cnCisgICAgICAgIFdI RU4gJ1VTQUdFJyBUSEVOICdVJworICAgICAgICBFTFNFICdVTktOT1dOJwor ICAgICAgICBFTkQgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICBGUk9NCisgICAg ICAgIChTRUxFQ1QKKyAgICAgICAgICAgIChkKS5ncmFudGVlIEFTIGdyYW50 ZWUsIChkKS5ncmFudG9yIEFTIGdyYW50b3IsCisgICAgICAgICAgICAoZCku aXNfZ3JhbnRhYmxlIEFTIGlzX2dyYW50YWJsZSwKKyAgICAgICAgICAgIChk KS5wcml2aWxlZ2VfdHlwZSBBUyBwcml2aWxlZ2VfdHlwZQorICAgICAgICBG Uk9NCisgICAgICAgICAgICAoU0VMRUNUIGFjbGV4cGxvZGUoZGIucHJvYWNs KSBBUyBkIEZST00gcGdfcHJvYyBkYgorICAgICAgICAgICAgV0hFUkUgZGIu b2lkID0ge3tmbmlkfX06Ok9JRCkgYQorICAgICAgICApIGQKKyAgICApIGQK KyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBnIE9OIChkLmdy YW50b3IgPSBnLm9pZCkKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19y b2xlcyBndCBPTiAoZC5ncmFudGVlID0gZ3Qub2lkKQorR1JPVVAgQlkgZy5y b2xuYW1lLCBndC5yb2xuYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFf cGx1cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9jcmVhdGUuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmMTlhZjIK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2NyZWF0ZS5z cWwKQEAgLTAsMCArMSw2NiBAQAoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rp b25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0KK3slIGltcG9y dCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklW SUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy92YXJpYWJs ZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9Cit7JSBzZXQgaXNfY29sdW1ucyA9 IFtdICV9Cit7JSBpZiBkYXRhICV9CitDUkVBVEUgRlVOQ1RJT04ge3sgY29u bnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19KHsl IGlmIGRhdGEKKy5hcmd1bWVudHMgJX0KK3slIGZvciBwIGluIGRhdGEuYXJn dW1lbnRzICV9e3twLmFyZ21vZGV9fSB7JSBpZiBwLmFyZ25hbWUgJX17eyBj b25ufHF0SWRlbnQocC5hcmduYW1lKX19eyUgZW5kaWYgJX17JSBpZiBwLmFy Z3R5cGUgJX0ge3twLmFyZ3R5cGV9fXslIGVuZGlmICV9eyUgaWYgcC5hcmdk ZWZ2YWwgJX0gREVGQVVMVCB7e3AuYXJnZGVmdmFsfX17JSBlbmRpZiAlfQor eyUgaWYgbm90IGxvb3AubGFzdCAlfSx7JSBlbmRpZiAlfQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAtJX0KKyAgICApIFJFVFVSTlN7JSBpZiBkYXRhLnBy b3JldHNldCAlfSBTRVRPRnslIGVuZGlmICV9IHt7IGNvbm58cXRUeXBlSWRl bnQoZGF0YQorICAgIC5wcm9yZXR0eXBlbmFtZSkgfX0gQVMKK3slIGlmIGRh dGEubGFubmFtZSA9PSAnYycgJX0KK3t7IGRhdGEucHJvYmlufHF0TGl0ZXJh bCB9fSwge3sgZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX0KK3slIGVsc2Ug JX0KKyRCT0RZJHt7IGRhdGEucHJvc3JjIH19JEJPRFkkCit7JSBlbmRpZiAl fQorTEFOR1VBR0Uge3sgZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fSB7eyBk YXRhLnByb3ZvbGF0aWxlIH19eyUgaWYgZGF0YQorLnByb2xlYWtwcm9vZiAl fSBMRUFLUFJPT0Z7JSBlbHNlICV9IE5PVCBMRUFLUFJPT0Z7JSBlbmRpZiAl fQoreyUgaWYgZGF0YS5wcm9pc3N0cmljdCAlfSBTVFJJQ1R7JSBlbmRpZiAl fQoreyUgaWYgZGF0YS5wcm9zZWNkZWYgJX0gU0VDVVJJVFkgREVGSU5FUnsl IGVuZGlmICV9Cit7JSBpZiBkYXRhLnByb2lzd2luZG93ICV9IFdJTkRPV3sl IGVuZGlmICV9eyUgaWYgZGF0YS5wcm9jb3N0ICV9CisKK0NPU1Qge3tkYXRh LnByb2Nvc3R9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9yb3dzICV9CisK K1JPV1Mge3tkYXRhLnByb3Jvd3N9fXslIGVuZGlmIC0lfXslIGlmIGRhdGEu dmFyaWFibGVzICV9CisKK3slIGZvciB2IGluIGRhdGEudmFyaWFibGVzICV9 CisKK1NFVCB7eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9fT17eyB2LnZhbHVl fHF0TGl0ZXJhbCB9fXslIGVuZGZvciAtJX0KK3slIGVuZGlmIC0lfTsKKwor eyUgaWYgZGF0YS5mdW5jb3duZXIgJX0KKworQUxURVIgRlVOQ1RJT04ge3sg Y29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19 KHt7ZGF0YQorLmZ1bmNfYXJnc319KQorICAgIE9XTkVSIFRPIHt7IGRhdGEu ZnVuY293bmVyIH19OworeyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuYWNs ICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFjbCAlfQorCit7eyBQUklWSUxFR0Uu U0VUKGNvbm4sICJGVU5DVElPTiIsIHAuZ3JhbnRlZSwgZGF0YS5uYW1lLCBw LndpdGhvdXRfZ3JhbnQsIHAKKy53aXRoX2dyYW50LCBkYXRhLnByb25hbWVz cGFjZSwgZGF0YS5mdW5jX2FyZ3MpfX0KK3slIGVuZGZvciAlfQoreyUgZW5k aWYgLSV9CisKK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKworQ09NTUVO VCBPTiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3Bh Y2UsIGRhdGEubmFtZSkgfX0oe3tkYXRhCisuZnVuY19hcmdzfX0pCisgICAg SVMgJ3t7IGRhdGEuZGVzY3JpcHRpb24gfX0nOworeyUgZW5kaWYgLSV9CisK K3slIGlmIGRhdGEuc2VjbGFiZWxzICV9Cit7JSBmb3IgciBpbiBkYXRhLnNl Y2xhYmVscyAlfQoreyUgaWYgci5sYWJlbCBhbmQgci5wcm92aWRlciAlfQor Cit7eyBTRUNMQUJMRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgZGF0YS5uYW1l LCByLnByb3ZpZGVyLCByLmxhYmVsLCBkYXRhCisucHJvbmFtZXNwYWNlLCBk YXRhLmZ1bmNfYXJncykgfX0KK3slIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0K K3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFz L3NxbC85LjFfcGx1cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9k ZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjI0NmJlYzEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVz L2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwyMSBAQAoreyUgaWYgc2NpZCBhbmQg Zm5pZCAlfQorU0VMRUNUCisgICAgcHIucHJvbmFtZSBhcyBuYW1lLCAnKCcg fHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRfZnVuY3Rpb25f aWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMgZnVu Y19hcmdzLAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19wcm9jIHByCitK T0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitK T0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnByb25h bWVzcGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5E IHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgdHlwbmFt ZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQorICAgIEFO RCBwci5vaWQgPSB7e2ZuaWR9fTsKK3slIGVuZGlmICV9CisKK3slIGlmIG5h bWUgJX0KK0RST1AgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG5zcG5hbWUs IG5hbWUpIH19e3tmdW5jX2FyZ3N9fXslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FE RXslIGVuZGlmICV9OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9z cWwvOS4xX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFf cGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uNTg5ZWNjZQotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBh cy9zcWwvOS4xX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsCkBAIC0wLDAgKzEs MTEgQEAKK1NFTEVDVAorICAgIHBnX2dldF9mdW5jdGlvbmRlZih7e2ZuaWR9 fTo6b2lkKSBBUyBmdW5jX2RlZiwKKyAgICBuc3BuYW1lIHx8ICcuJyB8fCBw ci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nLnBnX2dl dF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8 ICcpJyBhcyBuYW1lCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAg IHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UK K1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9uYW1l c3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHByLm9pZCA9IHt7Zm5p ZH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9s YW5ndWFnZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9nZXRfbGFuZ3VhZ2Vz LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODFk ZGZiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9nZXRf bGFuZ3VhZ2VzLnNxbApAQCAtMCwwICsxLDQgQEAKK1NFTEVDVAorICAgIGxh bm5hbWUgYXMgbGFiZWwsIGxhbm5hbWUgYXMgdmFsdWUKK0ZST00KKyAgICBw Z19sYW5ndWFnZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvZ2V0 X29pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9vaWQuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiYzc2YTIKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9vaWQuc3FsCkBA IC0wLDAgKzEsMTcgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIucHJvbmFt ZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRf ZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAn KScgYXMgbmFtZSwKKyAgICBsYW5uYW1lLCBwZ19nZXRfdXNlcmJ5aWQocHJv b3duZXIpIGFzIGZ1bmNvd25lcgorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pP SU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pP SU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitK T0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnByb25h bWVzcGFjZQorICAgIEFORCBuc3AubnNwbmFtZT17eyBuc3BuYW1lfHF0TGl0 ZXJhbCB9fQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5E IHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykK KyAgICBBTkQgcHIucHJvbmFtZSA9IHt7IG5hbWV8cXRMaXRlcmFsIH19Owpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9nZXRfb3V0X3R5cGVzLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X291dF90eXBlcy5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjRhMTE4NwotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X291dF90eXBlcy5z cWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBmb3JtYXRfdHlwZShv aWQsIE5VTEwpIEFTIG91dF9hcmdfdHlwZQorRlJPTQorICAgIHBnX3R5cGUK K1dIRVJFCisgICAgb2lkID0ge3sgb3V0X2FyZ19vaWQgfX06Om9pZDsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X3NjaGVtYS5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bw YXMvc3FsLzkuMV9wbHVzL2dldF9zY2hlbWEuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyN2Q0YjkKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9zY2hlbWEuc3FsCkBAIC0wLDAg KzEsNiBAQAorU0VMRUNUCisgICAgbnNwbmFtZQorRlJPTQorICAgIHBnX25h bWVzcGFjZQorV0hFUkUKKyAgICBvaWQgPSB7eyBzY2lkIH19OjpvaWQ7CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2dldF90eXBlcy5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bw YXMvc3FsLzkuMV9wbHVzL2dldF90eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uMmE1NTgyZQotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X3R5cGVzLnNxbApAQCAtMCwwICsx LDIwIEBACitTRUxFQ1QKKyAgICAqCitGUk9NCisgICAgKFNFTEVDVAorICAg ICAgICBmb3JtYXRfdHlwZSh0Lm9pZCxOVUxMKSBBUyB0eXBuYW1lLAorICAg ICAgICBDQVNFIFdIRU4gdHlwZWxlbSA+IDAgVEhFTiB0eXBlbGVtIEVMU0Ug dC5vaWQgRU5EIGFzIGVsZW1vaWQsIHR5cGxlbiwgdHlwdHlwZSwgdC5vaWQs IG5zcG5hbWUsCisgICAgICAgIChTRUxFQ1QgQ09VTlQoMSkgRlJPTSBwZ190 eXBlIHQyIFdIRVJFIHQyLnR5cG5hbWUgPSB0LnR5cG5hbWUpID4gMSBBUyBp c2R1cAorICAgIEZST00KKyAgICAgICAgcGdfdHlwZSB0CisgICAgSk9JTgor ICAgICAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIHR5cG5hbWVzcGFjZT1uc3Au b2lkCisgICAgV0hFUkUKKyAgICAgICAgKE5PVCAodHlwbmFtZSA9ICd1bmtu b3duJyBBTkQgbnNwbmFtZSA9ICdwZ19jYXRhbG9nJykpCisgICAgQU5ECisg ICAgICAgICgKKyAgICAgICAgICAgIHR5cHR5cGUgSU4gKCdiJywgJ2MnLCAn ZCcsICdlJywgJ3AnLCAncicpCisgICAgICAgICAgICBBTkQgdHlwbmFtZSBO T1QgSU4gKCdhbnknLCAndHJpZ2dlcicsICdsYW5ndWFnZV9oYW5kbGVyJywg J2V2ZW50X3RyaWdnZXInKQorICAgICAgICApCisgICAgKSBBUyBkdW1teQor T1JERVIgQlkgbnNwbmFtZSA8PiAncGdfY2F0YWxvZycsIG5zcG5hbWUgPD4g J3B1YmxpYycsIG5zcG5hbWUsIDE7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzku MV9wbHVzL25vZGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9ub2RlLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jN2Y0MTU5Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9ub2RlLnNxbApA QCAtMCwwICsxLDE4IEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnByb25h bWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cucGdfZ2V0X2Z1bmN0 aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIEFT IG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJieWlkKHByb293bmVy KSBBUyBmdW5jb3duZXIsIGRlc2NyaXB0aW9uCitGUk9NCisgICAgcGdfcHJv YyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0 dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lkPXBy b2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0aW9uIGRl cyBPTiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdf cHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNF CisgICAgQU5EIHByLnByb3R5cGUgPSAnMCc6OmNoYXIKKyAgICBBTkQgcHJv bmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5P VCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCitPUkRFUiBCWQor ICAgIHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL3By b3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZThhOGJh Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9wcm9wZXJ0 aWVzLnNxbApAQCAtMCwwICsxLDMxIEBACitTRUxFQ1QKKyAgICBwci5vaWQs IHByLnhtaW4sIHByLiosIHByLnByb3NyYyBBUyBwcm9zcmNfYywKKyAgICBw ci5wcm9uYW1lIEFTIG5hbWUsIHBnX2dldF9mdW5jdGlvbl9yZXN1bHQocHIu b2lkKSBBUyBwcm9yZXR0eXBlbmFtZSwKKyAgICB0eXBucy5uc3BuYW1lIEFT IHR5cG5zcCwgbGFubmFtZSwgcHJvYXJnbmFtZXMsIG9pZHZlY3RvcnR5cGVz KHByb2FyZ3R5cGVzKSBBUyBwcm9hcmd0eXBlbmFtZXMsCisgICAgcGdfZ2V0 X2V4cHIocHJvYXJnZGVmYXVsdHMsICdwZ19jYXRhbG9nLnBnX2NsYXNzJzo6 cmVnY2xhc3MpIEFTIHByb2FyZ2RlZmF1bHR2YWxzLAorICAgIHByb25hcmdk ZWZhdWx0cywgcHJvY29uZmlnLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIp IEFTIGZ1bmNvd25lciwgZGVzY3JpcHRpb24sCisgICAgKFNFTEVDVAorICAg ICAgICBhcnJheV9hZ2cocHJvdmlkZXIgfHwgJz0nIHx8IGxhYmVsKQorICAg IEZST00KKyAgICAgICAgcGdfc2VjbGFiZWwgc2wxCisgICAgV0hFUkUKKyAg ICAgICAgc2wxLm9iam9pZD1wci5vaWQpIEFTIHNlY2xhYmVscworRlJPTQor ICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAu b2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgdHlwbnMg T04gdHlwbnMub2lkPXR5cC50eXBuYW1lc3BhY2UKK0pPSU4KKyAgICBwZ19s YW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitMRUZUIE9VVEVSIEpP SU4KKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9cHIu b2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX3Byb2MnOjpyZWdjbGFzcykKK1dI RVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9uYW1lc3Bh Y2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgn dHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKK3slIGlmIGZuaWQgJX0KKyAg ICBBTkQgcHIub2lkID0ge3tmbmlkfX06Om9pZAoreyUgZW5kaWYgJX0KK09S REVSIEJZCisgICAgcHJvbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4x X3BsdXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvdXBkYXRlLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzhkNTVk Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy91cGRhdGUu c3FsCkBAIC0wLDAgKzEsMTMxIEBACit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5j dGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1w b3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBS SVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3Zhcmlh YmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX17JSBpZiBkYXRhICV9Cit7JSBz ZXQgbmFtZSA9IG9fZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgJX0K K3slIGlmIGRhdGEubmFtZSAhPSBvX2RhdGEubmFtZSAlfQorQUxURVIgRlVO Q1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9f ZGF0YS5uYW1lKSB9fSh7eworb19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkK KyAgICBSRU5BTUUgVE8ge3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX07 Cit7JSBzZXQgbmFtZSA9IGRhdGEubmFtZSAlfQoreyUgZW5kaWYgJX0KKwor eyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmNoYW5nZV9mdW5jICAlfQorQ1JF QVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0 YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHslIGlmIGRhdGEuYXJndW1lbnRz ICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFyZ3VtZW50cyAlfXslIGlmIHAuYXJn bW9kZSAlfXt7cC5hcmdtb2RlfX17JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFt ZSAlfSB7eyBjb25ufHF0SWRlbnQocC5hcmduYW1lKSB9fXslIGVuZGlmICV9 eyUgaWYgcC5hcmd0eXBlICV9IHt7cC5hcmd0eXBlfX17JSBlbmRpZiAlfXsl IGlmIHAuYXJnZGVmdmFsICV9IERFRkFVTFQge3twLmFyZ2RlZnZhbH19eyUg ZW5kaWYgJX0KK3slIGlmIG5vdCBsb29wLmxhc3QgJX0sIHslIGVuZGlmICV9 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorKSBSRVRVUk5TIHt7IG9f ZGF0YS5wcm9yZXR0eXBlbmFtZSB9fSBBUworeyUgaWYgJ2xhbm5hbWUnIGlu IGxhbm5hbWUgYW5kIGRhdGEubGFubmFtZSA9PSAnYycgJX0KK3t7IGRhdGEu cHJvYmlufHF0TGl0ZXJhbCB9fSwge3sgZGF0YS5wcm9zcmNfY3xxdExpdGVy YWwgfX0KK3slIGVsaWYgJ2xhbm5hbWUnIGluIGRhdGEgYW5kICdwcm9zcmMn IGluIGRhdGEgJX0KKyRCT0RZJHt7IGRhdGEucHJvc3JjIH19JEJPRFkkCit7 JSBlbGlmIG9fZGF0YS5sYW5uYW1lID09ICdjJyAlfQore3sgb19kYXRhLnBy b2JpbnxxdExpdGVyYWwgfX0sIHt7IG9fZGF0YS5wcm9zcmNfY3xxdExpdGVy YWwgfX0KK3slIGVsc2UgJX0KKyRCT0RZJHt7IG9fZGF0YS5wcm9zcmMgfX0k Qk9EWSQKK3slIGVuZGlmIC0lfQorCit7JSBpZiAnbGFubmFtZScgaW4gZGF0 YSAlfQorTEFOR1VBR0Uge3sgZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fXsl IGVsc2UgJX0KK0xBTkdVQUdFIHt7IG9fZGF0YS5sYW5uYW1lfHF0TGl0ZXJh bCB9fXslIGVuZGlmIC0lfXslIGlmICgncHJvaXNzdHJpY3QnIGluIGRhdGEg YW5kIGRhdGEucHJvaXNzdHJpY3QpIG9yICgncHJvaXNzdHJpY3QnIG5vdCBp biBkYXRhIGFuZCBvX2RhdGEucHJvaXNzdHJpY3QpICV9IFNUUklDVHslIGVu ZGlmICV9Cit7JSBpZiAoJ3Byb3NlY2RlZicgaW4gZGF0YSBhbmQgZGF0YS5w cm9zZWNkZWYpIG9yICgncHJvc2VjZGVmJyBub3QgaW4gZGF0YSBhbmQgb19k YXRhLnByb3NlY2RlZikgJX0gU0VDVVJJVFkgREVGSU5FUnslIGVuZGlmICV9 Cit7JSBpZiAoJ3Byb2lzd2luZG93JyBpbiBkYXRhIGFuZCBkYXRhLnByb2lz d2luZG93KSBvciAoJ3Byb2lzd2luZG93JyBub3QgaW4gZGF0YSBhbmQgb19k YXRhLnByb2lzd2luZG93KSAlfSBXSU5ET1d7JSBlbmRpZiAlfXslIGlmIGRh dGEucHJvY29zdCAlfQorCitDT1NUIHt7ZGF0YS5wcm9jb3N0fX17JSBlbGlm IG9fZGF0YS5wcm9jb3N0ICV9IENPU1Qge3tvX2RhdGEucHJvY29zdH19IHsl IGVuZGlmICV9eyUgaWYgZGF0YS5wcm9yb3dzICV9CisKK1JPV1Mge3tkYXRh LnByb3Jvd3N9fSB7JSBlbGlmIG9fZGF0YS5wcm9yb3dzICV9IFJPV1Mge3tv X2RhdGEucHJvcm93c319IHslCitlbmRpZiAtJX17JSBpZiBkYXRhLm1lcmdl ZF92YXJpYWJsZXMgJX0KKworeyUgZm9yIHYgaW4gZGF0YS5tZXJnZWRfdmFy aWFibGVzICV9CisKK1NFVCB7eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9fT17 eyB2LnZhbHVlfHF0TGl0ZXJhbCB9fXslIGVuZGZvciAtJX0KK3slIGVuZGlm IC0lfTsKK3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLmZ1bmNvd25lciAl fQorCitBTFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnBy b25hbWVzcGFjZSwgbmFtZSkgfX0oe3sKK29fZGF0YS5wcm9hcmd0eXBlbmFt ZXMgfX0pCisgICAgT1dORVIgVE8ge3sgZGF0YS5mdW5jb3duZXIgfX07Cit7 JSBlbmRpZiAtJX0KKworCit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3 aWxsIGNoYW5nZSBwcml2aWxlZGdlcyAjfQoreyUgaWYgZGF0YS5hY2wgJX0K KworeyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJp diBpbiBkYXRhLmFjbC5kZWxldGVkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRB TEwoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2Rh dGEKKy5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBpZiAnY2hhbmdl ZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuYWNs LmNoYW5nZWQgJX0KKwore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICdG VU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgb19kYXRhCisucHJvbmFt ZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQore3sgUFJJVklM RUdFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUs IHByaXYud2l0aG91dF9ncmFudCwKKyBwcml2LndpdGhfZ3JhbnQsIG9fZGF0 YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7 JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBpZiAnYWRkZWQnIGlu IGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5hZGRlZCAl fQore3sgUFJJVklMRUdFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBwcml2Lmdy YW50ZWUsIG5hbWUsIHByaXYud2l0aG91dF9ncmFudCwKKyBwcml2LndpdGhf Z3JhbnQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBl bmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRp ZiAtJX0KKworeyUgaWYgZGF0YS5jaGFuZ2VfZnVuYyA9PSBGYWxzZSAlfQor eyUgaWYgZGF0YS52YXJpYWJsZXMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBk YXRhLnZhcmlhYmxlcyBhbmQgZGF0YS52YXJpYWJsZXMuZGVsZXRlZHxsZW5n dGggPiAwICV9CisKK3t7IFZBUklBQkxFLlVOU0VUKGNvbm4sICdGVU5DVElP TicsIG5hbWUsIGRhdGEudmFyaWFibGVzLmRlbGV0ZWQsIG9fZGF0YS5wcm9u YW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgKSB9fQoreyUgZW5k aWYgLSV9Cit7JSBpZiAnbWVyZ2VkX3ZhcmlhYmxlcycgaW4gZGF0YSBhbmQg ZGF0YS5tZXJnZWRfdmFyaWFibGVzfGxlbmd0aCA+IDAgJX0KKwore3sgVkFS SUFCTEUuU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIGRhdGEubWVyZ2Vk X3ZhcmlhYmxlcywgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2Fy Z3R5cGVuYW1lcyApIH19Cit7JSBlbmRpZiAtJX0KK3slIGVuZGlmIC0lfQor eyUgZW5kaWYgLSV9CisKK3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xh YmVscyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2Vj bGFiZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2Vj bGFiZWxzLmRlbGV0ZWQgJX0KKwore3sgU0VDTEFCTEUuVU5TRVQoY29ubiwg J0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgb19kYXRhLnByb25hbWVz cGFjZSkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAn YWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0 aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQorCit7 eyBTRUNMQUJMRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92 aWRlciwgci5zZWN1cml0eV9sYWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSkg fX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnY2hhbmdl ZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGgg PiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQorCit7 eyBTRUNMQUJMRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92 aWRlciwgci5zZWN1cml0eV9sYWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSkg fX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEu ZGVzY3JpcHRpb24gJX0KKworQ09NTUVOVCBPTiBGVU5DVElPTiB7eyBjb25u fHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oe3sKK29f ZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgSVMge3sgZGF0YS5kZXNj cmlwdGlvbnxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAtJX0KKworeyUgaWYg ZGF0YS5wcm9uYW1lc3BhY2UgJX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29u bnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7Citv X2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIFNFVCBTQ0hFTUEge3sg Y29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlKSB9fTsKK3slIGVuZGlm IC0lfQorCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFf cGx1cy92YXJpYWJsZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy92YXJpYWJs ZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUy MzNjNzEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL3Zh cmlhYmxlcy5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBuYW1l LCB2YXJ0eXBlLCBtaW5fdmFsLCBtYXhfdmFsLCBlbnVtdmFscworRlJPTQor ICAgIHBnX3NldHRpbmdzCitXSEVSRQorICAgIGNvbnRleHQgaW4gKCd1c2Vy JywgJ3N1cGVydXNlcicpOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1 cy9hY2wuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9hY2wuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkM2UwZDEKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2FjbC5zcWwKQEAgLTAsMCAr MSwzNSBAQAorU0VMRUNUCisgICAgQ09BTEVTQ0UoZ3Qucm9sbmFtZSwgJ3B1 YmxpYycpIEFTIGdyYW50ZWUsCisgICAgZy5yb2xuYW1lIEFTIGdyYW50b3Is IGFycmF5X2FnZyhwcml2aWxlZ2VfdHlwZSkgQVMgcHJpdmlsZWdlcywKKyAg ICBhcnJheV9hZ2coaXNfZ3JhbnRhYmxlKSBBUyBncmFudGFibGUKK0ZST00K KyAgICAoU0VMRUNUCisgICAgICAgIGQuZ3JhbnRlZSwgZC5ncmFudG9yLCBk LmlzX2dyYW50YWJsZSwKKyAgICAgICAgQ0FTRSBkLnByaXZpbGVnZV90eXBl CisgICAgICAgIFdIRU4gJ0NPTk5FQ1QnIFRIRU4gJ2MnCisgICAgICAgIFdI RU4gJ0NSRUFURScgVEhFTiAnQycKKyAgICAgICAgV0hFTiAnREVMRVRFJyBU SEVOICdkJworICAgICAgICBXSEVOICdFWEVDVVRFJyBUSEVOICdYJworICAg ICAgICBXSEVOICdJTlNFUlQnIFRIRU4gJ2EnCisgICAgICAgIFdIRU4gJ1JF RkVSRU5DRVMnIFRIRU4gJ3gnCisgICAgICAgIFdIRU4gJ1NFTEVDVCcgVEhF TiAncicKKyAgICAgICAgV0hFTiAnVEVNUE9SQVJZJyBUSEVOICdUJworICAg ICAgICBXSEVOICdUUklHR0VSJyBUSEVOICd0JworICAgICAgICBXSEVOICdU UlVOQ0FURScgVEhFTiAnRCcKKyAgICAgICAgV0hFTiAnVVBEQVRFJyBUSEVO ICd3JworICAgICAgICBXSEVOICdVU0FHRScgVEhFTiAnVScKKyAgICAgICAg RUxTRSAnVU5LTk9XTicKKyAgICAgICAgRU5EIEFTIHByaXZpbGVnZV90eXBl CisgICAgRlJPTQorICAgICAgICAoU0VMRUNUCisgICAgICAgICAgICAoZCku Z3JhbnRlZSBBUyBncmFudGVlLCAoZCkuZ3JhbnRvciBBUyBncmFudG9yLAor ICAgICAgICAgICAgKGQpLmlzX2dyYW50YWJsZSBBUyBpc19ncmFudGFibGUs CisgICAgICAgICAgICAoZCkucHJpdmlsZWdlX3R5cGUgQVMgcHJpdmlsZWdl X3R5cGUKKyAgICAgICAgRlJPTQorICAgICAgICAgICAgKFNFTEVDVCBhY2xl eHBsb2RlKGRiLnByb2FjbCkgQVMgZCBGUk9NIHBnX3Byb2MgZGIKKyAgICAg ICAgICAgIFdIRVJFIGRiLm9pZCA9IHt7Zm5pZH19OjpPSUQpIGEKKyAgICAg ICAgKSBkCisgICAgKSBkCisgICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdf cm9sZXMgZyBPTiAoZC5ncmFudG9yID0gZy5vaWQpCisgICAgTEVGVCBKT0lO IHBnX2NhdGFsb2cucGdfcm9sZXMgZ3QgT04gKGQuZ3JhbnRlZSA9IGd0Lm9p ZCkKK0dST1VQIEJZIGcucm9sbmFtZSwgZ3Qucm9sbmFtZTsKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcHBhcy9zcWwvOS4yX3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4y X3BsdXMvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi42OWFlM2I5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85 LjJfcGx1cy9jcmVhdGUuc3FsCkBAIC0wLDAgKzEsNjYgQEAKK3slIGltcG9y dCAnbWFjcm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xB QkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdl Lm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9m dW5jdGlvbnMvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAlfQoreyUg c2V0IGlzX2NvbHVtbnMgPSBbXSAlfQoreyUgaWYgZGF0YSAlfQorQ1JFQVRF IEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwg ZGF0YS5uYW1lKSB9fSh7JSBpZiBkYXRhCisuYXJndW1lbnRzICV9Cit7JSBm b3IgcCBpbiBkYXRhLmFyZ3VtZW50cyAlfXt7cC5hcmdtb2RlfX0geyUgaWYg cC5hcmduYW1lICV9e3sgY29ubnxxdElkZW50KHAuYXJnbmFtZSl9fXslIGVu ZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9IHt7cC5hcmd0eXBlfX17JSBlbmRp ZiAlfXslIGlmIHAuYXJnZGVmdmFsICV9IERFRkFVTFQge3twLmFyZ2RlZnZh bH19eyUgZW5kaWYgJX0KK3slIGlmIG5vdCBsb29wLmxhc3QgJX0seyUgZW5k aWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CisgICAgKSBSRVRV Uk5TeyUgaWYgZGF0YS5wcm9yZXRzZXQgJX0gU0VUT0Z7JSBlbmRpZiAlfSB7 eyBjb25ufHF0VHlwZUlkZW50KGRhdGEKKyAgICAucHJvcmV0dHlwZW5hbWUp IH19IEFTCit7JSBpZiBkYXRhLmxhbm5hbWUgPT0gJ2MnICV9Cit7eyBkYXRh LnByb2JpbnxxdExpdGVyYWwgfX0sIHt7IGRhdGEucHJvc3JjX2N8cXRMaXRl cmFsIH19Cit7JSBlbHNlICV9CiskQk9EWSR7eyBkYXRhLnByb3NyYyB9fSRC T0RZJAoreyUgZW5kaWYgJX0KK0xBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxx dExpdGVyYWwgfX0ge3sgZGF0YS5wcm9uYXJncyB9fXslIGlmIGRhdGEKKy5w cm9sZWFrcHJvb2YgJX0gTEVBS1BST09GeyUgZWxzZSAlfSBOT1QgTEVBS1BS T09GeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvaXNzdHJpY3QgJX0gU1RS SUNUeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvc2VjZGVmICV9IFNFQ1VS SVRZIERFRklORVJ7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5wcm9pc3dpbmRv dyAlfSBXSU5ET1d7JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvY29zdCAlfQor CitDT1NUIHt7ZGF0YS5wcm9jb3N0fX17JSBlbmRpZiAlfXslIGlmIGRhdGEu cHJvcm93cyAlfQorCitST1dTIHt7ZGF0YS5wcm9yb3dzfX17JSBlbmRpZiAt JX17JSBpZiBkYXRhLnZhcmlhYmxlcyAlfQorCit7JSBmb3IgdiBpbiBkYXRh LnZhcmlhYmxlcyAlfQorCitTRVQge3sgY29ubnxxdElkZW50KHYubmFtZSkg fX09e3sgdi52YWx1ZXxxdExpdGVyYWwgfX17JSBlbmRmb3IgLSV9Cit7JSBl bmRpZiAtJX07CisKK3slIGlmIGRhdGEuZnVuY293bmVyICV9CisKK0FMVEVS IEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwg ZGF0YS5uYW1lKSB9fSh7e2RhdGEKKy5mdW5jX2FyZ3N9fSkKKyAgICBPV05F UiBUTyB7eyBkYXRhLmZ1bmNvd25lciB9fTsKK3slIGVuZGlmIC0lfQorCit7 JSBpZiBkYXRhLmFjbCAlfQoreyUgZm9yIHAgaW4gZGF0YS5hY2wgJX0KKwor e3sgUFJJVklMRUdFLlNFVChjb25uLCAiRlVOQ1RJT04iLCBwLmdyYW50ZWUs IGRhdGEubmFtZSwgcC53aXRob3V0X2dyYW50LCBwCisud2l0aF9ncmFudCwg ZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19hcmdzKX19Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLmRlc2NyaXB0aW9u ICV9CisKK0NPTU1FTlQgT04gRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KGRh dGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19KHt7ZGF0YQorLmZ1bmNf YXJnc319KQorICAgIElTICd7eyBkYXRhLmRlc2NyaXB0aW9uIH19JzsKK3sl IGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLnNlY2xhYmVscyAlfQoreyUgZm9y IHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmIHIubGFiZWwgYW5kIHIu cHJvdmlkZXIgJX0KKwore3sgU0VDTEFCTEUuU0VUKGNvbm4sICdGVU5DVElP TicsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5sYWJlbCwgZGF0YQorLnBy b25hbWVzcGFjZSwgZGF0YS5mdW5jX2FyZ3MpIH19Cit7JSBlbmRpZiAlfQor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKworeyUgZW5kaWYgJX0KZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvZGVsZXRlLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9z cWwvOS4yX3BsdXMvZGVsZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5jMjQ5NzBjCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFz L3NxbC85LjJfcGx1cy9kZWxldGUuc3FsCkBAIC0wLDAgKzEsMjIgQEAKK3sl IGlmIHNjaWQgYW5kIGZuaWQgJX0KK1NFTEVDVAorICAgIHByLnByb25hbWUg YXMgbmFtZSwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdf Z2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykg fHwgJyknIGFzIGZ1bmNfYXJncywKKyAgICBuc3BuYW1lCitGUk9NCisgICAg cGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9 cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNw Lm9pZD1wci5wcm9uYW1lc3BhY2UKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBG QUxTRQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisg ICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmln Z2VyJykKKyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX07Cit7JSBlbmRpZiAl fQorCit7JSBpZiBuYW1lICV9CitEUk9QIEZVTkNUSU9OIHt7IGNvbm58cXRJ ZGVudChuc3BuYW1lLCBuYW1lKSB9fXt7ZnVuY19hcmdzfX17JSBpZiBjYXNj YWRlJX0gQ0FTQ0FERXslCitlbmRpZiAlfTsKK3slIGVuZGlmICV9CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1 bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9kZWZpbml0aW9uLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cHBhcy9zcWwvOS4yX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4OWVjY2UKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9kZWZpbml0aW9uLnNx bApAQCAtMCwwICsxLDExIEBACitTRUxFQ1QKKyAgICBwZ19nZXRfZnVuY3Rp b25kZWYoe3tmbmlkfX06Om9pZCkgQVMgZnVuY19kZWYsCisgICAgbnNwbmFt ZSB8fCAnLicgfHwgcHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdf Y2F0YWxvZy5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHBy Lm9pZCksICcnKSB8fCAnKScgYXMgbmFtZQorRlJPTQorICAgIHBnX3Byb2Mg cHIKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIu cHJvbmFtZXNwYWNlCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAg ICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCBw ci5vaWQgPSB7e2ZuaWR9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85 LjJfcGx1cy9nZXRfbGFuZ3VhZ2VzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMv Z2V0X2xhbmd1YWdlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZjgxZGRmYgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwv OS4yX3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwKQEAgLTAsMCArMSw0IEBACitT RUxFQ1QKKyAgICBsYW5uYW1lIGFzIGxhYmVsLCBsYW5uYW1lIGFzIHZhbHVl CitGUk9NCisgICAgcGdfbGFuZ3VhZ2U7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3Fs LzkuMl9wbHVzL2dldF9vaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9nZXRf b2lkLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4y YmM3NmEyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9n ZXRfb2lkLnNxbApAQCAtMCwwICsxLDE3IEBACitTRUxFQ1QKKyAgICBwci5v aWQsIHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cK KyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5v aWQpLCAnJykgfHwgJyknIGFzIG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0 X3VzZXJieWlkKHByb293bmVyKSBhcyBmdW5jb3duZXIKK0ZST00KKyAgICBw Z19wcm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1w cm9yZXR0eXBlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5v aWQ9cHJvbGFuZworSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNw Lm9pZD1wci5wcm9uYW1lc3BhY2UKKyAgICBBTkQgbnNwLm5zcG5hbWU9e3sg bnNwbmFtZXxxdExpdGVyYWwgfX0KK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBG QUxTRQorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZl bnRfdHJpZ2dlcicpCisgICAgQU5EIHByLnByb25hbWUgPSB7eyBuYW1lfHF0 TGl0ZXJhbCB9fTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvZ2V0 X291dF90eXBlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9vdXRfdHlw ZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0 YTExODcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dl dF9vdXRfdHlwZXMuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAg Zm9ybWF0X3R5cGUob2lkLCBOVUxMKSBBUyBvdXRfYXJnX3R5cGUKK0ZST00K KyAgICBwZ190eXBlCitXSEVSRQorICAgIG9pZCA9IHt7IG91dF9hcmdfb2lk IH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9z Y2hlbWEuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9nZXRfc2NoZW1hLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjdkNGI5Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9nZXRfc2NoZW1h LnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIG5zcG5hbWUKK0ZS T00KKyAgICBwZ19uYW1lc3BhY2UKK1dIRVJFCisgICAgb2lkID0ge3sgc2Np ZCB9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9nZXRf dHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9nZXRfdHlwZXMuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNTU4MmUKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF90eXBlcy5z cWwKQEAgLTAsMCArMSwyMCBAQAorU0VMRUNUCisgICAgKgorRlJPTQorICAg IChTRUxFQ1QKKyAgICAgICAgZm9ybWF0X3R5cGUodC5vaWQsTlVMTCkgQVMg dHlwbmFtZSwKKyAgICAgICAgQ0FTRSBXSEVOIHR5cGVsZW0gPiAwIFRIRU4g dHlwZWxlbSBFTFNFIHQub2lkIEVORCBhcyBlbGVtb2lkLCB0eXBsZW4sIHR5 cHR5cGUsIHQub2lkLCBuc3BuYW1lLAorICAgICAgICAoU0VMRUNUIENPVU5U KDEpIEZST00gcGdfdHlwZSB0MiBXSEVSRSB0Mi50eXBuYW1lID0gdC50eXBu YW1lKSA+IDEgQVMgaXNkdXAKKyAgICBGUk9NCisgICAgICAgIHBnX3R5cGUg dAorICAgIEpPSU4KKyAgICAgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiB0eXBu YW1lc3BhY2U9bnNwLm9pZAorICAgIFdIRVJFCisgICAgICAgIChOT1QgKHR5 cG5hbWUgPSAndW5rbm93bicgQU5EIG5zcG5hbWUgPSAncGdfY2F0YWxvZycp KQorICAgIEFORAorICAgICAgICAoCisgICAgICAgICAgICB0eXB0eXBlIElO ICgnYicsICdjJywgJ2QnLCAnZScsICdwJywgJ3InKQorICAgICAgICAgICAg QU5EIHR5cG5hbWUgTk9UIElOICgnYW55JywgJ3RyaWdnZXInLCAnbGFuZ3Vh Z2VfaGFuZGxlcicsICdldmVudF90cmlnZ2VyJykKKyAgICAgICAgKQorICAg ICkgQVMgZHVtbXkKK09SREVSIEJZIG5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cn LCBuc3BuYW1lIDw+ICdwdWJsaWMnLCBuc3BuYW1lLCAxOwpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlv bi9wcGFzL3NxbC85LjJfcGx1cy9ub2RlLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3Bs dXMvbm9kZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uYzdmNDE1OQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3Bs dXMvbm9kZS5zcWwKQEAgLTAsMCArMSwxOCBAQAorU0VMRUNUCisgICAgcHIu b2lkLCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9n LnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwg JycpIHx8ICcpJyBBUyBuYW1lLAorICAgIGxhbm5hbWUsIHBnX2dldF91c2Vy YnlpZChwcm9vd25lcikgQVMgZnVuY293bmVyLCBkZXNjcmlwdGlvbgorRlJP TQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0 eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcg T04gbG5nLm9pZD1wcm9sYW5nCitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19k ZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9cHIub2lkIEFORCBkZXMu Y2xhc3NvaWQ9J3BnX3Byb2MnOjpyZWdjbGFzcykKK1dIRVJFCisgICAgcHJv aXNhZ2cgPSBGQUxTRQorICAgIEFORCBwci5wcm90eXBlID0gJzAnOjpjaGFy CisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBB TkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXIn KQorT1JERVIgQlkKKyAgICBwcm9uYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3Nx bC85LjJfcGx1cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMv cHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZmY3ODI5OAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4y X3BsdXMvcHJvcGVydGllcy5zcWwKQEAgLTAsMCArMSwzMSBAQAorU0VMRUNU CisgICAgcHIub2lkLCBwci54bWluLCBwci4qLCBwci5wcm9zcmMgQVMgcHJv c3JjX2MsCisgICAgcHIucHJvbmFtZSBBUyBuYW1lLCBwZ19nZXRfZnVuY3Rp b25fcmVzdWx0KHByLm9pZCkgQVMgcHJvcmV0dHlwZW5hbWUsCisgICAgdHlw bnMubnNwbmFtZSBBUyB0eXBuc3AsIGxhbm5hbWUsIHByb2FyZ25hbWVzLCBv aWR2ZWN0b3J0eXBlcyhwcm9hcmd0eXBlcykgQVMgcHJvYXJndHlwZW5hbWVz LAorICAgIHBnX2dldF9leHByKHByb2FyZ2RlZmF1bHRzLCAncGdfY2F0YWxv Zy5wZ19jbGFzcyc6OnJlZ2NsYXNzKSBBUyBwcm9hcmdkZWZhdWx0dmFscywK KyAgICBwcm9uYXJnZGVmYXVsdHMsIHByb2NvbmZpZywgcGdfZ2V0X3VzZXJi eWlkKHByb293bmVyKSBBUyBmdW5jb3duZXIsIGRlc2NyaXB0aW9uLAorICAg IChTRUxFQ1QKKyAgICAgICAgYXJyYXlfYWdnKHByb3ZpZGVyIHx8ICc9JyB8 fCBsYWJlbCkKKyAgICBGUk9NCisgICAgICAgIHBnX3Noc2VjbGFiZWwgc2wx CisgICAgV0hFUkUKKyAgICAgICAgc2wxLm9iam9pZD1wci5vaWQpIEFTIHNl Y2xhYmVscworRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190 eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19u YW1lc3BhY2UgdHlwbnMgT04gdHlwbnMub2lkPXR5cC50eXBuYW1lc3BhY2UK K0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5n CitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04g KGRlcy5vYmpvaWQ9cHIub2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX3Byb2Mn OjpyZWdjbGFzcykKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAg IEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHR5 cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKK3sl IGlmIGZuaWQgJX0KKyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX06Om9pZAor eyUgZW5kaWYgJX0KK09SREVSIEJZCisgICAgcHJvbmFtZTsKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcHBhcy9zcWwvOS4yX3BsdXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4y X3BsdXMvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5kMmEzYWE4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85 LjJfcGx1cy91cGRhdGUuc3FsCkBAIC0wLDAgKzEsMTMyIEBACit7JSBpbXBv cnQgJ21hY3Jvcy9mdW5jdGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNM QUJMRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVn ZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3Mv ZnVuY3Rpb25zL3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX17JSBp ZiBkYXRhICV9Cit7JSBzZXQgbmFtZSA9IG9fZGF0YS5uYW1lICV9Cit7JSBp ZiBkYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAhPSBvX2RhdGEubmFt ZSAlfQorQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5w cm9uYW1lc3BhY2UsIG9fZGF0YS5uYW1lKSB9fSh7eworb19kYXRhLnByb2Fy Z3R5cGVuYW1lcyB9fSkKKyAgICBSRU5BTUUgVE8ge3sgY29ubnxxdElkZW50 KGRhdGEubmFtZSkgfX07Cit7JSBzZXQgbmFtZSA9IGRhdGEubmFtZSAlfQor eyUgZW5kaWYgJX0KKworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmNoYW5n ZV9mdW5jICAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04ge3sgY29u bnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHslIGlm IGRhdGEuYXJndW1lbnRzICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFyZ3VtZW50 cyAlfXslIGlmIHAuYXJnbW9kZSAlfXt7cC5hcmdtb2RlfX17JSBlbmRpZiAl fXslIGlmIHAuYXJnbmFtZSAlfSB7eyBjb25ufHF0SWRlbnQocC5hcmduYW1l KSB9fXslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9IHt7cC5hcmd0eXBl fX17JSBlbmRpZiAlfXslIGlmIHAuYXJnZGVmdmFsICV9IERFRkFVTFQge3tw LmFyZ2RlZnZhbH19eyUgZW5kaWYgJX0KK3slIGlmIG5vdCBsb29wLmxhc3Qg JX0sIHslIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQor KSBSRVRVUk5TIHt7IG9fZGF0YS5wcm9yZXR0eXBlbmFtZSB9fSBBUworeyUg aWYgJ2xhbm5hbWUnIGluIGxhbm5hbWUgYW5kIGRhdGEubGFubmFtZSA9PSAn YycgJX0KK3t7IGRhdGEucHJvYmlufHF0TGl0ZXJhbCB9fSwge3sgZGF0YS5w cm9zcmNfY3xxdExpdGVyYWwgfX0KK3slIGVsaWYgJ2xhbm5hbWUnIGluIGRh dGEgYW5kICdwcm9zcmMnIGluIGRhdGEgJX0KKyRCT0RZJHt7IGRhdGEucHJv c3JjIH19JEJPRFkkCit7JSBlbGlmIG9fZGF0YS5sYW5uYW1lID09ICdjJyAl fQore3sgb19kYXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7IG9fZGF0YS5w cm9zcmNfY3xxdExpdGVyYWwgfX0KK3slIGVsc2UgJX0KKyRCT0RZJHt7IG9f ZGF0YS5wcm9zcmMgfX0kQk9EWSQKK3slIGVuZGlmIC0lfQorCit7JSBpZiAn bGFubmFtZScgaW4gZGF0YSAlfQorTEFOR1VBR0Uge3sgZGF0YS5sYW5uYW1l fHF0TGl0ZXJhbCB9fXslIGVsc2UgJX0KK0xBTkdVQUdFIHt7IG9fZGF0YS5s YW5uYW1lfHF0TGl0ZXJhbCB9fXslIGVuZGlmIC0lfXslIGlmICgncHJvbGVh a3Byb29mJyBpbiBkYXRhIGFuZCBkYXRhLnByb2xlYWtwcm9vZikgb3IgKCdw cm9sZWFrcHJvb2YnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvbGVha3By b29mKSAlfSBMRUFLUFJPT0Z7JSBlbHNlICV9IE5PVCBMRUFLUFJPT0Z7JSBl bmRpZiAlfQoreyUgaWYgKCdwcm9pc3N0cmljdCcgaW4gZGF0YSBhbmQgZGF0 YS5wcm9pc3N0cmljdCkgb3IgKCdwcm9pc3N0cmljdCcgbm90IGluIGRhdGEg YW5kIG9fZGF0YS5wcm9pc3N0cmljdCkgJX0gU1RSSUNUeyUgZW5kaWYgJX0K K3slIGlmICgncHJvc2VjZGVmJyBpbiBkYXRhIGFuZCBkYXRhLnByb3NlY2Rl Zikgb3IgKCdwcm9zZWNkZWYnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJv c2VjZGVmKSAlfSBTRUNVUklUWSBERUZJTkVSeyUgZW5kaWYgJX0KK3slIGlm ICgncHJvaXN3aW5kb3cnIGluIGRhdGEgYW5kIGRhdGEucHJvaXN3aW5kb3cp IG9yICgncHJvaXN3aW5kb3cnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJv aXN3aW5kb3cpICV9IFdJTkRPV3slIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9j b3N0ICV9CisKK0NPU1Qge3tkYXRhLnByb2Nvc3R9fXslIGVsaWYgb19kYXRh LnByb2Nvc3QgJX0gQ09TVCB7e29fZGF0YS5wcm9jb3N0fX0geyUgZW5kaWYg JX17JSBpZiBkYXRhLnByb3Jvd3MgJX0KKworUk9XUyB7e2RhdGEucHJvcm93 c319IHslIGVsaWYgb19kYXRhLnByb3Jvd3MgJX0gUk9XUyB7e29fZGF0YS5w cm9yb3dzfX0geyUKK2VuZGlmIC0lfXslIGlmIGRhdGEubWVyZ2VkX3Zhcmlh YmxlcyAlfQorCit7JSBmb3IgdiBpbiBkYXRhLm1lcmdlZF92YXJpYWJsZXMg JX0KKworU0VUIHt7IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYudmFs dWV8cXRMaXRlcmFsIH19eyUgZW5kZm9yIC0lfQoreyUgZW5kaWYgLSV9Owor eyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuZnVuY293bmVyICV9CisKK0FM VEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNw YWNlLCBuYW1lKSB9fSh7eworb19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkK KyAgICBPV05FUiBUTyB7eyBkYXRhLmZ1bmNvd25lciB9fTsKK3slIGVuZGlm IC0lfQorCisKK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hh bmdlIHByaXZpbGVkZ2VzICN9Cit7JSBpZiBkYXRhLmFjbCAlfQorCit7JSBp ZiAnZGVsZXRlZCcgaW4gZGF0YS5hY2wgJX0KK3slIGZvciBwcml2IGluIGRh dGEuYWNsLmRlbGV0ZWQgJX0KK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25u LCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0YQorLnBy b25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVu ZGZvciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGlmICdjaGFuZ2VkJyBpbiBk YXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuY2hhbmdl ZCAlfQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ0ZVTkNUSU9O JywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEKKy5wcm9uYW1lc3BhY2Us IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7eyBQUklWSUxFR0UuU0VU KGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53 aXRob3V0X2dyYW50LAorIHByaXYud2l0aF9ncmFudCwgb19kYXRhLnByb25h bWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZv ciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGlmICdhZGRlZCcgaW4gZGF0YS5h Y2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuYWNsLmFkZGVkICV9Cit7eyBQ UklWSUxFR0UuU0VUKGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwg bmFtZSwgcHJpdi53aXRob3V0X2dyYW50LAorIHByaXYud2l0aF9ncmFudCwg b19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykg fX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmIC0lfQor Cit7JSBpZiBkYXRhLmNoYW5nZV9mdW5jID09IEZhbHNlICV9Cit7JSBpZiBk YXRhLnZhcmlhYmxlcyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEudmFy aWFibGVzIGFuZCBkYXRhLnZhcmlhYmxlcy5kZWxldGVkfGxlbmd0aCA+IDAg JX0KKwore3sgVkFSSUFCTEUuVU5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFt ZSwgZGF0YS52YXJpYWJsZXMuZGVsZXRlZCwgb19kYXRhLnByb25hbWVzcGFj ZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyApIH19Cit7JSBlbmRpZiAtJX0K K3slIGlmICdtZXJnZWRfdmFyaWFibGVzJyBpbiBkYXRhIGFuZCBkYXRhLm1l cmdlZF92YXJpYWJsZXN8bGVuZ3RoID4gMCAlfQorCit7eyBWQVJJQUJMRS5T RVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgZGF0YS5tZXJnZWRfdmFyaWFi bGVzLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5h bWVzICkgfX0KK3slIGVuZGlmIC0lfQoreyUgZW5kaWYgLSV9Cit7JSBlbmRp ZiAtJX0KKworeyUgc2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9 Cit7JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMu ZGVsZXRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMu ZGVsZXRlZCAlfQorCit7eyBTRUNMQUJMRS5VTlNFVChjb25uLCAnRlVOQ1RJ T04nLCBuYW1lLCByLnByb3ZpZGVyLCBvX2RhdGEucHJvbmFtZXNwYWNlKSB9 fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdhZGRlZCcg aW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAl fQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9CisKK3t7IFNFQ0xB QkxFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCBy LnNlY3VyaXR5X2xhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlKSB9fQoreyUg ZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBz ZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0K K3slIGZvciByIGluIHNlY2xhYmVscy5jaGFuZ2VkICV9CisKK3t7IFNFQ0xB QkxFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCBy LnNlY3VyaXR5X2xhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlKSB9fQoreyUg ZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5kZXNjcmlw dGlvbiAlfQorCitDT01NRU5UIE9OIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVu dChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7eworb19kYXRhLnBy b2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBJUyB7eyBkYXRhLmRlc2NyaXB0aW9u fHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLnBy b25hbWVzcGFjZSAlfQorCitBTFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRl bnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oe3sKK29fZGF0YS5w cm9hcmd0eXBlbmFtZXMgfX0pCisgICAgU0VUIFNDSEVNQSB7eyBjb25ufHF0 SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UpIH19OworeyUgZW5kaWYgLSV9CisK K3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL3Zh cmlhYmxlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL3ZhcmlhYmxlcy5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTIzM2M3MQot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvdmFyaWFibGVz LnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIG5hbWUsIHZhcnR5 cGUsIG1pbl92YWwsIG1heF92YWwsIGVudW12YWxzCitGUk9NCisgICAgcGdf c2V0dGluZ3MKK1dIRVJFCisgICAgY29udGV4dCBpbiAoJ3VzZXInLCAnc3Vw ZXJ1c2VyJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2FjbC5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2FjbC5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uYWQzZTBkMQotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcHBhcy9zcWwvOS41X3BsdXMvYWNsLnNxbApAQCAtMCwwICsxLDM1IEBA CitTRUxFQ1QKKyAgICBDT0FMRVNDRShndC5yb2xuYW1lLCAncHVibGljJykg QVMgZ3JhbnRlZSwKKyAgICBnLnJvbG5hbWUgQVMgZ3JhbnRvciwgYXJyYXlf YWdnKHByaXZpbGVnZV90eXBlKSBBUyBwcml2aWxlZ2VzLAorICAgIGFycmF5 X2FnZyhpc19ncmFudGFibGUpIEFTIGdyYW50YWJsZQorRlJPTQorICAgIChT RUxFQ1QKKyAgICAgICAgZC5ncmFudGVlLCBkLmdyYW50b3IsIGQuaXNfZ3Jh bnRhYmxlLAorICAgICAgICBDQVNFIGQucHJpdmlsZWdlX3R5cGUKKyAgICAg ICAgV0hFTiAnQ09OTkVDVCcgVEhFTiAnYycKKyAgICAgICAgV0hFTiAnQ1JF QVRFJyBUSEVOICdDJworICAgICAgICBXSEVOICdERUxFVEUnIFRIRU4gJ2Qn CisgICAgICAgIFdIRU4gJ0VYRUNVVEUnIFRIRU4gJ1gnCisgICAgICAgIFdI RU4gJ0lOU0VSVCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAnUkVGRVJFTkNF UycgVEhFTiAneCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJwor ICAgICAgICBXSEVOICdURU1QT1JBUlknIFRIRU4gJ1QnCisgICAgICAgIFdI RU4gJ1RSSUdHRVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1RSVU5DQVRF JyBUSEVOICdEJworICAgICAgICBXSEVOICdVUERBVEUnIFRIRU4gJ3cnCisg ICAgICAgIFdIRU4gJ1VTQUdFJyBUSEVOICdVJworICAgICAgICBFTFNFICdV TktOT1dOJworICAgICAgICBFTkQgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICBG Uk9NCisgICAgICAgIChTRUxFQ1QKKyAgICAgICAgICAgIChkKS5ncmFudGVl IEFTIGdyYW50ZWUsIChkKS5ncmFudG9yIEFTIGdyYW50b3IsCisgICAgICAg ICAgICAoZCkuaXNfZ3JhbnRhYmxlIEFTIGlzX2dyYW50YWJsZSwKKyAgICAg ICAgICAgIChkKS5wcml2aWxlZ2VfdHlwZSBBUyBwcml2aWxlZ2VfdHlwZQor ICAgICAgICBGUk9NCisgICAgICAgICAgICAoU0VMRUNUIGFjbGV4cGxvZGUo ZGIucHJvYWNsKSBBUyBkIEZST00gcGdfcHJvYyBkYgorICAgICAgICAgICAg V0hFUkUgZGIub2lkID0ge3tmbmlkfX06Ok9JRCkgYQorICAgICAgICApIGQK KyAgICApIGQKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBn IE9OIChkLmdyYW50b3IgPSBnLm9pZCkKKyAgICBMRUZUIEpPSU4gcGdfY2F0 YWxvZy5wZ19yb2xlcyBndCBPTiAoZC5ncmFudGVlID0gZ3Qub2lkKQorR1JP VVAgQlkgZy5yb2xuYW1lLCBndC5yb2xuYW1lOwpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFz L3NxbC85LjVfcGx1cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9j cmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjY5YWUzYjkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVz L2NyZWF0ZS5zcWwKQEAgLTAsMCArMSw2NiBAQAoreyUgaW1wb3J0ICdtYWNy b3MvZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0K K3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9z JyBhcyBQUklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9u cy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9Cit7JSBzZXQgaXNf Y29sdW1ucyA9IFtdICV9Cit7JSBpZiBkYXRhICV9CitDUkVBVEUgRlVOQ1RJ T04ge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5h bWUpIH19KHslIGlmIGRhdGEKKy5hcmd1bWVudHMgJX0KK3slIGZvciBwIGlu IGRhdGEuYXJndW1lbnRzICV9e3twLmFyZ21vZGV9fSB7JSBpZiBwLmFyZ25h bWUgJX17eyBjb25ufHF0SWRlbnQocC5hcmduYW1lKX19eyUgZW5kaWYgJX17 JSBpZiBwLmFyZ3R5cGUgJX0ge3twLmFyZ3R5cGV9fXslIGVuZGlmICV9eyUg aWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7e3AuYXJnZGVmdmFsfX17JSBl bmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAlfSx7JSBlbmRpZiAlfQor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKyAgICApIFJFVFVSTlN7JSBp ZiBkYXRhLnByb3JldHNldCAlfSBTRVRPRnslIGVuZGlmICV9IHt7IGNvbm58 cXRUeXBlSWRlbnQoZGF0YQorICAgIC5wcm9yZXR0eXBlbmFtZSkgfX0gQVMK K3slIGlmIGRhdGEubGFubmFtZSA9PSAnYycgJX0KK3t7IGRhdGEucHJvYmlu fHF0TGl0ZXJhbCB9fSwge3sgZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX0K K3slIGVsc2UgJX0KKyRCT0RZJHt7IGRhdGEucHJvc3JjIH19JEJPRFkkCit7 JSBlbmRpZiAlfQorTEFOR1VBR0Uge3sgZGF0YS5sYW5uYW1lfHF0TGl0ZXJh bCB9fSB7eyBkYXRhLnByb25hcmdzIH19eyUgaWYgZGF0YQorLnByb2xlYWtw cm9vZiAlfSBMRUFLUFJPT0Z7JSBlbHNlICV9IE5PVCBMRUFLUFJPT0Z7JSBl bmRpZiAlfQoreyUgaWYgZGF0YS5wcm9pc3N0cmljdCAlfSBTVFJJQ1R7JSBl bmRpZiAlfQoreyUgaWYgZGF0YS5wcm9zZWNkZWYgJX0gU0VDVVJJVFkgREVG SU5FUnslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnByb2lzd2luZG93ICV9IFdJ TkRPV3slIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9jb3N0ICV9CisKK0NPU1Qg e3tkYXRhLnByb2Nvc3R9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9yb3dz ICV9CisKK1JPV1Mge3tkYXRhLnByb3Jvd3N9fXslIGVuZGlmIC0lfXslIGlm IGRhdGEudmFyaWFibGVzICV9CisKK3slIGZvciB2IGluIGRhdGEudmFyaWFi bGVzICV9CisKK1NFVCB7eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9fT17eyB2 LnZhbHVlfHF0TGl0ZXJhbCB9fXslIGVuZGZvciAtJX0KK3slIGVuZGlmIC0l fTsKKworeyUgaWYgZGF0YS5mdW5jb3duZXIgJX0KKworQUxURVIgRlVOQ1RJ T04ge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5h bWUpIH19KHt7ZGF0YQorLmZ1bmNfYXJnc319KQorICAgIE9XTkVSIFRPIHt7 IGRhdGEuZnVuY293bmVyIH19OworeyUgZW5kaWYgLSV9CisKK3slIGlmIGRh dGEuYWNsICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFjbCAlfQorCit7eyBQUklW SUxFR0UuU0VUKGNvbm4sICJGVU5DVElPTiIsIHAuZ3JhbnRlZSwgZGF0YS5u YW1lLCBwLndpdGhvdXRfZ3JhbnQsIHAKKy53aXRoX2dyYW50LCBkYXRhLnBy b25hbWVzcGFjZSwgZGF0YS5mdW5jX2FyZ3MpfX0KK3slIGVuZGZvciAlfQor eyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKwor Q09NTUVOVCBPTiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9u YW1lc3BhY2UsIGRhdGEubmFtZSkgfX0oe3tkYXRhCisuZnVuY19hcmdzfX0p CisgICAgSVMgJ3t7IGRhdGEuZGVzY3JpcHRpb24gfX0nOworeyUgZW5kaWYg LSV9CisKK3slIGlmIGRhdGEuc2VjbGFiZWxzICV9Cit7JSBmb3IgciBpbiBk YXRhLnNlY2xhYmVscyAlfQoreyUgaWYgci5sYWJlbCBhbmQgci5wcm92aWRl ciAlfQorCit7eyBTRUNMQUJMRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgZGF0 YS5uYW1lLCByLnByb3ZpZGVyLCByLmxhYmVsLCBkYXRhCisucHJvbmFtZXNw YWNlLCBkYXRhLmZ1bmNfYXJncykgfX0KK3slIGVuZGlmICV9Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlv bi9wcGFzL3NxbC85LjVfcGx1cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVf cGx1cy9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjI0NmJlYzEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzku NV9wbHVzL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwyMSBAQAoreyUgaWYgc2Np ZCBhbmQgZm5pZCAlfQorU0VMRUNUCisgICAgcHIucHJvbmFtZSBhcyBuYW1l LCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRfZnVu Y3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScg YXMgZnVuY19hcmdzLAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19wcm9j IHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0 eXBlCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXBy LnByb25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisg ICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQg dHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQor ICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTsKK3slIGVuZGlmICV9CisKK3sl IGlmIG5hbWUgJX0KK0RST1AgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG5z cG5hbWUsIG5hbWUpIH19e3tmdW5jX2FyZ3N9fXslIGlmIGNhc2NhZGUgJX0g Q0FTQ0FERXslIGVuZGlmICV9OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cHBhcy9zcWwvOS41X3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3Nx bC85LjVfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uNTg5ZWNjZQotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcHBhcy9zcWwvOS41X3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsCkBAIC0w LDAgKzEsMTEgQEAKK1NFTEVDVAorICAgIHBnX2dldF9mdW5jdGlvbmRlZih7 e2ZuaWR9fTo6b2lkKSBBUyBmdW5jX2RlZiwKKyAgICBuc3BuYW1lIHx8ICcu JyB8fCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9n LnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwg JycpIHx8ICcpJyBhcyBuYW1lCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9J TgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1l c3BhY2UKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBw cm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHByLm9pZCA9 IHt7Zm5pZH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVz L2dldF9sYW5ndWFnZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9nZXRfbGFu Z3VhZ2VzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5mODFkZGZiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1 cy9nZXRfbGFuZ3VhZ2VzLnNxbApAQCAtMCwwICsxLDQgQEAKK1NFTEVDVAor ICAgIGxhbm5hbWUgYXMgbGFiZWwsIGxhbm5hbWUgYXMgdmFsdWUKK0ZST00K KyAgICBwZ19sYW5ndWFnZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3Bs dXMvZ2V0X29pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2dldF9vaWQuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiYzc2YTIK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2dldF9vaWQu c3FsCkBAIC0wLDAgKzEsMTcgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIu cHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5w Z19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcn KSB8fCAnKScgYXMgbmFtZSwKKyAgICBsYW5uYW1lLCBwZ19nZXRfdXNlcmJ5 aWQocHJvb3duZXIpIGFzIGZ1bmNvd25lcgorRlJPTQorICAgIHBnX3Byb2Mg cHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5 cGUKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9s YW5nCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXBy LnByb25hbWVzcGFjZQorICAgIEFORCBuc3AubnNwbmFtZT17eyBuc3BuYW1l fHF0TGl0ZXJhbCB9fQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisg ICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmln Z2VyJykKKyAgICBBTkQgcHIucHJvbmFtZSA9IHt7IG5hbWV8cXRMaXRlcmFs IH19OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9nZXRfb3V0X3R5 cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvZ2V0X291dF90eXBlcy5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjRhMTE4Nwot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvZ2V0X291dF90 eXBlcy5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBmb3JtYXRf dHlwZShvaWQsIE5VTEwpIEFTIG91dF9hcmdfdHlwZQorRlJPTQorICAgIHBn X3R5cGUKK1dIRVJFCisgICAgb2lkID0ge3sgb3V0X2FyZ19vaWQgfX06Om9p ZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvZ2V0X3NjaGVtYS5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2dldF9zY2hlbWEuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyN2Q0YjkKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2dldF9zY2hlbWEuc3FsCkBA IC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgbnNwbmFtZQorRlJPTQorICAg IHBnX25hbWVzcGFjZQorV0hFUkUKKyAgICBvaWQgPSB7eyBzY2lkIH19Ojpv aWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2dldF90eXBlcy5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2dldF90eXBlcy5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE1NTgyZQotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvZ2V0X3R5cGVzLnNxbApAQCAt MCwwICsxLDIwIEBACitTRUxFQ1QKKyAgICAqCitGUk9NCisgICAgKFNFTEVD VAorICAgICAgICBmb3JtYXRfdHlwZSh0Lm9pZCxOVUxMKSBBUyB0eXBuYW1l LAorICAgICAgICBDQVNFIFdIRU4gdHlwZWxlbSA+IDAgVEhFTiB0eXBlbGVt IEVMU0UgdC5vaWQgRU5EIGFzIGVsZW1vaWQsIHR5cGxlbiwgdHlwdHlwZSwg dC5vaWQsIG5zcG5hbWUsCisgICAgICAgIChTRUxFQ1QgQ09VTlQoMSkgRlJP TSBwZ190eXBlIHQyIFdIRVJFIHQyLnR5cG5hbWUgPSB0LnR5cG5hbWUpID4g MSBBUyBpc2R1cAorICAgIEZST00KKyAgICAgICAgcGdfdHlwZSB0CisgICAg Sk9JTgorICAgICAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIHR5cG5hbWVzcGFj ZT1uc3Aub2lkCisgICAgV0hFUkUKKyAgICAgICAgKE5PVCAodHlwbmFtZSA9 ICd1bmtub3duJyBBTkQgbnNwbmFtZSA9ICdwZ19jYXRhbG9nJykpCisgICAg QU5ECisgICAgICAgICgKKyAgICAgICAgICAgIHR5cHR5cGUgSU4gKCdiJywg J2MnLCAnZCcsICdlJywgJ3AnLCAncicpCisgICAgICAgICAgICBBTkQgdHlw bmFtZSBOT1QgSU4gKCdhbnknLCAndHJpZ2dlcicsICdsYW5ndWFnZV9oYW5k bGVyJywgJ2V2ZW50X3RyaWdnZXInKQorICAgICAgICApCisgICAgKSBBUyBk dW1teQorT1JERVIgQlkgbnNwbmFtZSA8PiAncGdfY2F0YWxvZycsIG5zcG5h bWUgPD4gJ3B1YmxpYycsIG5zcG5hbWUsIDE7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMv c3FsLzkuNV9wbHVzL25vZGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9ub2Rl LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jN2Y0 MTU5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9ub2Rl LnNxbApAQCAtMCwwICsxLDE4IEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHBy LnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cucGdfZ2V0 X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwg JyknIEFTIG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJieWlkKHBy b293bmVyKSBBUyBmdW5jb3duZXIsIGRlc2NyaXB0aW9uCitGUk9NCisgICAg cGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9 cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcu b2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0 aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29p ZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBwcm9pc2FnZyA9 IEZBTFNFCisgICAgQU5EIHByLnByb3R5cGUgPSAnMCc6OmNoYXIKKyAgICBB TkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBu YW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCitPUkRF UiBCWQorICAgIHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9w bHVzL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9wcm9wZXJ0 aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5m Zjc4Mjk4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9w cm9wZXJ0aWVzLnNxbApAQCAtMCwwICsxLDMxIEBACitTRUxFQ1QKKyAgICBw ci5vaWQsIHByLnhtaW4sIHByLiosIHByLnByb3NyYyBBUyBwcm9zcmNfYywK KyAgICBwci5wcm9uYW1lIEFTIG5hbWUsIHBnX2dldF9mdW5jdGlvbl9yZXN1 bHQocHIub2lkKSBBUyBwcm9yZXR0eXBlbmFtZSwKKyAgICB0eXBucy5uc3Bu YW1lIEFTIHR5cG5zcCwgbGFubmFtZSwgcHJvYXJnbmFtZXMsIG9pZHZlY3Rv cnR5cGVzKHByb2FyZ3R5cGVzKSBBUyBwcm9hcmd0eXBlbmFtZXMsCisgICAg cGdfZ2V0X2V4cHIocHJvYXJnZGVmYXVsdHMsICdwZ19jYXRhbG9nLnBnX2Ns YXNzJzo6cmVnY2xhc3MpIEFTIHByb2FyZ2RlZmF1bHR2YWxzLAorICAgIHBy b25hcmdkZWZhdWx0cywgcHJvY29uZmlnLCBwZ19nZXRfdXNlcmJ5aWQocHJv b3duZXIpIEFTIGZ1bmNvd25lciwgZGVzY3JpcHRpb24sCisgICAgKFNFTEVD VAorICAgICAgICBhcnJheV9hZ2cocHJvdmlkZXIgfHwgJz0nIHx8IGxhYmVs KQorICAgIEZST00KKyAgICAgICAgcGdfc2hzZWNsYWJlbCBzbDEKKyAgICBX SEVSRQorICAgICAgICBzbDEub2Jqb2lkPXByLm9pZCkgQVMgc2VjbGFiZWxz CitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlw IE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX25hbWVzcGFj ZSB0eXBucyBPTiB0eXBucy5vaWQ9dHlwLnR5cG5hbWVzcGFjZQorSk9JTgor ICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQg T1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9i am9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6OnJlZ2Ns YXNzKQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHBy b25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgdHlwbmFtZSBO T1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQoreyUgaWYgZm5p ZCAlfQorICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTo6b2lkCit7JSBlbmRp ZiAlfQorT1JERVIgQlkKKyAgICBwcm9uYW1lOwpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFz L3NxbC85LjVfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy91 cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjNiZjMyZGEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVz L3VwZGF0ZS5zcWwKQEAgLTAsMCArMSwxMzIgQEAKK3slIGltcG9ydCAnbWFj cm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9 Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3Jv cycgYXMgUFJJVklMRUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlv bnMvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAlfXslIGlmIGRhdGEg JX0KK3slIHNldCBuYW1lID0gb19kYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEu bmFtZSAlfQoreyUgaWYgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitB TFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVz cGFjZSwgb19kYXRhLm5hbWUpIH19KHt7CitvX2RhdGEucHJvYXJndHlwZW5h bWVzIH19KQorICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5u YW1lKSB9fTsKK3slIHNldCBuYW1lID0gZGF0YS5uYW1lICV9Cit7JSBlbmRp ZiAlfQorCit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuY2hhbmdlX2Z1bmMg ICV9CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB7eyBjb25ufHF0SWRl bnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oeyUgaWYgZGF0YS5h cmd1bWVudHMgJX0KK3slIGZvciBwIGluIGRhdGEuYXJndW1lbnRzICV9eyUg aWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9fXslIGVuZGlmICV9eyUgaWYg cC5hcmduYW1lICV9IHt7IGNvbm58cXRJZGVudChwLmFyZ25hbWUpfX17JSBl bmRpZiAlfXslIGlmIHAuYXJndHlwZSAlfSB7e3AuYXJndHlwZX19eyUgZW5k aWYgJX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxUIHt7cC5hcmdkZWZ2 YWx9fXslIGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9LCB7JSBl bmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKykgUkVUVVJO UyB7eyBvX2RhdGEucHJvcmV0dHlwZW5hbWUgfX0gQVMKK3slIGlmICdsYW5u YW1lJyBpbiBsYW5uYW1lIGFuZCBkYXRhLmxhbm5hbWUgPT0gJ2MnICV9Cit7 eyBkYXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7IGRhdGEucHJvc3JjX2N8 cXRMaXRlcmFsIH19Cit7JSBlbGlmICdsYW5uYW1lJyBpbiBkYXRhIGFuZCAn cHJvc3JjJyBpbiBkYXRhICV9CiskQk9EWSR7eyBkYXRhLnByb3NyYyB9fSRC T0RZJAoreyUgZWxpZiBvX2RhdGEubGFubmFtZSA9PSAnYycgJX0KK3t7IG9f ZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19LCB7eyBvX2RhdGEucHJvc3JjX2N8 cXRMaXRlcmFsIH19Cit7JSBlbHNlICV9CiskQk9EWSR7eyBvX2RhdGEucHJv c3JjIH19JEJPRFkkCit7JSBlbmRpZiAtJX0KKworeyUgaWYgJ2xhbm5hbWUn IGluIGRhdGEgJX0KK0xBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxxdExpdGVy YWwgfX17JSBlbHNlICV9CitMQU5HVUFHRSB7eyBvX2RhdGEubGFubmFtZXxx dExpdGVyYWwgfX17JSBlbmRpZiAtJX17JSBpZiAoJ3Byb2xlYWtwcm9vZicg aW4gZGF0YSBhbmQgZGF0YS5wcm9sZWFrcHJvb2YpIG9yICgncHJvbGVha3By b29mJyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb2xlYWtwcm9vZikgJX0g TEVBS1BST09GeyUgZWxzZSAlfSBOT1QgTEVBS1BST09GeyUgZW5kaWYgJX0K K3slIGlmICgncHJvaXNzdHJpY3QnIGluIGRhdGEgYW5kIGRhdGEucHJvaXNz dHJpY3QpIG9yICgncHJvaXNzdHJpY3QnIG5vdCBpbiBkYXRhIGFuZCBvX2Rh dGEucHJvaXNzdHJpY3QpICV9IFNUUklDVHslIGVuZGlmICV9Cit7JSBpZiAo J3Byb3NlY2RlZicgaW4gZGF0YSBhbmQgZGF0YS5wcm9zZWNkZWYpIG9yICgn cHJvc2VjZGVmJyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb3NlY2RlZikg JX0gU0VDVVJJVFkgREVGSU5FUnslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb2lz d2luZG93JyBpbiBkYXRhIGFuZCBkYXRhLnByb2lzd2luZG93KSBvciAoJ3By b2lzd2luZG93JyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb2lzd2luZG93 KSAlfSBXSU5ET1d7JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvY29zdCAlfQor CitDT1NUIHt7ZGF0YS5wcm9jb3N0fX17JSBlbGlmIG9fZGF0YS5wcm9jb3N0 ICV9IENPU1Qge3tvX2RhdGEucHJvY29zdH19IHslIGVuZGlmICV9eyUgaWYg ZGF0YS5wcm9yb3dzICV9CisKK1JPV1Mge3tkYXRhLnByb3Jvd3N9fSB7JSBl bGlmIG9fZGF0YS5wcm9yb3dzICV9IFJPV1Mge3tvX2RhdGEucHJvcm93c319 IHslCitlbmRpZiAtJX17JSBpZiBkYXRhLm1lcmdlZF92YXJpYWJsZXMgJX0K KworeyUgZm9yIHYgaW4gZGF0YS5tZXJnZWRfdmFyaWFibGVzICV9CisKK1NF VCB7eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9fT17eyB2LnZhbHVlfHF0TGl0 ZXJhbCB9fXslIGVuZGZvciAtJX0KK3slIGVuZGlmIC0lfTsKK3slIGVuZGlm IC0lfQorCit7JSBpZiBkYXRhLmZ1bmNvd25lciAlfQorCitBTFRFUiBGVU5D VElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFt ZSkgfX0oe3sKK29fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgT1dO RVIgVE8ge3sgZGF0YS5mdW5jb3duZXIgfX07Cit7JSBlbmRpZiAtJX0KKwor Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBwcml2 aWxlZGdlcyAjfQoreyUgaWYgZGF0YS5hY2wgJX0KKworeyUgaWYgJ2RlbGV0 ZWQnIGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5k ZWxldGVkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ0ZVTkNU SU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEKKy5wcm9uYW1lc3Bh Y2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0K K3slIGVuZGlmIC0lfQorCit7JSBpZiAnY2hhbmdlZCcgaW4gZGF0YS5kYXRh Y2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuYWNsLmNoYW5nZWQgJX0KKwor e3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICdGVU5DVElPTicsIHByaXYu Z3JhbnRlZSwgbmFtZSwgb19kYXRhCisucHJvbmFtZXNwYWNlLCBvX2RhdGEu cHJvYXJndHlwZW5hbWVzKSB9fQore3sgUFJJVklMRUdFLlNFVChjb25uLCAn RlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIHByaXYud2l0aG91dF9n cmFudCwKKyBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9uYW1lc3BhY2Us IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3sl IGVuZGlmIC0lfQorCit7JSBpZiAnYWRkZWQnIGluIGRhdGEuYWNsICV9Cit7 JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5hZGRlZCAlfQore3sgUFJJVklMRUdF LlNFVChjb25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIHBy aXYud2l0aG91dF9ncmFudCwKKyBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5w cm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBl bmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAtJX0KKworeyUgaWYg ZGF0YS5jaGFuZ2VfZnVuYyA9PSBGYWxzZSAlfQoreyUgaWYgZGF0YS52YXJp YWJsZXMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBkYXRhLnZhcmlhYmxlcyBh bmQgZGF0YS52YXJpYWJsZXMuZGVsZXRlZHxsZW5ndGggPiAwICV9CisKK3t7 IFZBUklBQkxFLlVOU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIGRhdGEu dmFyaWFibGVzLmRlbGV0ZWQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0 YS5wcm9hcmd0eXBlbmFtZXMgKSB9fQoreyUgZW5kaWYgLSV9Cit7JSBpZiAn bWVyZ2VkX3ZhcmlhYmxlcycgaW4gZGF0YSBhbmQgZGF0YS5tZXJnZWRfdmFy aWFibGVzfGxlbmd0aCA+IDAgJX0KKwore3sgVkFSSUFCTEUuU0VUKGNvbm4s ICdGVU5DVElPTicsIG5hbWUsIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcywgb19k YXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyApIH19 Cit7JSBlbmRpZiAtJX0KK3slIGVuZGlmIC0lfQoreyUgZW5kaWYgLSV9CisK K3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYg J2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8 bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQg JX0KKwore3sgU0VDTEFCTEUuVU5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFt ZSwgci5wcm92aWRlciwgb19kYXRhLnByb25hbWVzcGFjZSkgfX0KK3slIGVu ZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnYWRkZWQnIGluIHNlY2xh YmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0KK3slIGZv ciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQorCit7eyBTRUNMQUJMRS5TRVQo Y29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0 eV9sYWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSkgfX0KK3slIGVuZGZvciAl fQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxz IGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBmb3Ig ciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQorCit7eyBTRUNMQUJMRS5TRVQo Y29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0 eV9sYWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSkgfX0KK3slIGVuZGZvciAl fQoreyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0K KworQ09NTUVOVCBPTiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRh LnByb25hbWVzcGFjZSwgbmFtZSkgfX0oe3sKK29fZGF0YS5wcm9hcmd0eXBl bmFtZXMgfX0pCisgICAgSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVy YWwgfX07Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5wcm9uYW1lc3Bh Y2UgJX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0 YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7CitvX2RhdGEucHJvYXJndHlw ZW5hbWVzIH19KQorICAgIFNFVCBTQ0hFTUEge3sgY29ubnxxdElkZW50KGRh dGEucHJvbmFtZXNwYWNlKSB9fTsKK3slIGVuZGlmIC0lfQorCit7JSBlbmRp ZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy92YXJpYWJsZXMu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wcGFzL3NxbC85LjVfcGx1cy92YXJpYWJsZXMuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyMzNjNzEKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL3ZhcmlhYmxlcy5zcWwKQEAg LTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBuYW1lLCB2YXJ0eXBlLCBtaW5f dmFsLCBtYXhfdmFsLCBlbnVtdmFscworRlJPTQorICAgIHBnX3NldHRpbmdz CitXSEVSRQorICAgIGNvbnRleHQgaW4gKCd1c2VyJywgJ3N1cGVydXNlcicp OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9wcm9jZWR1cmUvanMvcHJvY2VkdXJlcy5qcyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL2pzL3Byb2NlZHVy ZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjUw ZmZlOQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL2pzL3Byb2NlZHVyZXMuanMKQEAg LTAsMCArMSwxNzEgQEAKKy8qIENyZWF0ZSBhbmQgUmVnaXN0ZXIgUHJvY2Vk dXJlIENvbGxlY3Rpb24gYW5kIE5vZGUuICovCitkZWZpbmUoCisgICAgICAg IFsnanF1ZXJ5JywgJ3VuZGVyc2NvcmUnLCAndW5kZXJzY29yZS5zdHJpbmcn LAorICAgICAgICAgJ3BnYWRtaW4nLCAncGdhZG1pbi5icm93c2VyJywgJ2Fs ZXJ0aWZ5JywKKyAgICAgICAgICdwZ2FkbWluLm5vZGUuZnVuY3Rpb24nLCAn cGdhZG1pbi5icm93c2VyLmNvbGxlY3Rpb24nLAorICAgICAgICAgJ3BnYWRt aW4uYnJvd3Nlci5zZXJ2ZXIucHJpdmlsZWdlJ10sCitmdW5jdGlvbigkLCBf LCBTLCBwZ0FkbWluLCBwZ0Jyb3dzZXIsIGFsZXJ0aWZ5LCBGdW5jdGlvbikg eworCisgIGlmICghcGdCcm93c2VyLk5vZGVzWydjb2xsLXByb2NlZHVyZSdd KSB7CisgICAgdmFyIHByb2NlZHVyZXMgPSBwZ0FkbWluLkJyb3dzZXIuTm9k ZXNbJ2NvbGwtcHJvY2VkdXJlJ10gPQorICAgICAgcGdBZG1pbi5Ccm93c2Vy LkNvbGxlY3Rpb24uZXh0ZW5kKHsKKyAgICAgICAgbm9kZTogJ3Byb2NlZHVy ZScsCisgICAgICAgIGxhYmVsOiAne3sgXygnUHJvY2VkdXJlcycpIH19JywK KyAgICAgICAgdHlwZTogJ2NvbGwtcHJvY2VkdXJlJywKKyAgICAgICAgY29s dW1uczogWyduYW1lJywgJ2Z1bmNvd25lcicsICdkZXNjcmlwdGlvbiddCisg ICAgICB9KTsKKyAgfTsKKworICBwZ1NjaGVtYU5vZGUgPSBwZ0Jyb3dzZXIu Tm9kZXNbJ3NjaGVtYSddOworCisgIC8vIEluaGVyaXQgRnVuY3Rpb25zIE5v ZGUKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ3Byb2NlZHVyZSddKSB7Cisg ICAgcGdBZG1pbi5Ccm93c2VyLk5vZGVzWydwcm9jZWR1cmUnXSA9IEZ1bmN0 aW9uLmV4dGVuZCh7CisgICAgICB0eXBlOiAncHJvY2VkdXJlJywKKyAgICAg IGxhYmVsOiAne3sgXygnUHJvY2VkdXJlJykgfX0nLAorICAgICAgY29sbGVj dGlvbl90eXBlOiAnY29sbC1wcm9jZWR1cmUnLAorICAgICAgaGFzU1FMOiB0 cnVlLAorICAgICAgaGFzRGVwZW5kczogdHJ1ZSwKKyAgICAgIHBhcmVudF90 eXBlOiBbJ3NjaGVtYSddLAorICAgICAgSW5pdDogZnVuY3Rpb24oKSB7Cisg ICAgICAgIC8qIEF2b2lkIG11bGl0cGxlIHJlZ2lzdHJhdGlvbiBvZiBtZW51 cyAqLworICAgICAgICBpZiAodGhpcy5wcm9jX2luaXRpYWxpemVkKQorICAg ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMucHJvY19pbml0aWFs aXplZCA9IHRydWU7CisKKyAgICAgICAgcGdCcm93c2VyLmFkZF9tZW51cyhb eworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfcHJvY2VkdXJlX29uX2NvbGwn LCBub2RlOiAnY29sbC1wcm9jZWR1cmUnLCBtb2R1bGU6CisgICAgICAgICAg dGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0 J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAg ICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7 eyBfKCdQcm9jZWR1cmUuLi4nKSB9fScsCisgICAgICAgICAgaWNvbjogJ3dj VGFiSWNvbiBpY29uLXByb2NlZHVyZScsIGRhdGE6IHthY3Rpb246ICdjcmVh dGUnLCBjaGVjazoKKyAgICAgICAgICBmYWxzZX0KKyAgICAgICAgfSx7Cisg ICAgICAgICAgbmFtZTogJ2NyZWF0ZV9wcm9jZWR1cmUnLCBub2RlOiAncHJv Y2VkdXJlJywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsn b2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9w ZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9y aXR5OiA0LCBsYWJlbDogJ3t7IF8oJ1Byb2NlZHVyZS4uLicpIH19JywKKyAg ICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tcHJvY2VkdXJlJywgZGF0 YToge2FjdGlvbjogJ2NyZWF0ZScsIGNoZWNrOgorICAgICAgICAgIHRydWV9 LAorICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAnY3JlYXRlX3Byb2Nl ZHVyZScsIG5vZGU6ICdzY2hlbWEnLCBtb2R1bGU6IHRoaXMsCisgICAgICAg ICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazog J3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAn Y3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygnUHJvY2VkdXJl Li4uJykgfX0nLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1w cm9jZWR1cmUnLCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6Cisg ICAgICAgICAgdHJ1ZX0sIGVuYWJsZTogJ2NhbkNyZWF0ZVByb2MnCisgICAg ICAgIH0KKyAgICAgICAgXSk7CisgICAgICB9LAorICAgICAgY2FuRHJvcDog cGdTY2hlbWFOb2RlLmNhbkNoaWxkRHJvcCwKKyAgICAgIGNhbkRyb3BDYXNj YWRlOiBwZ1NjaGVtYU5vZGUuY2FuQ2hpbGREcm9wLAorICAgICAgbW9kZWw6 IEZ1bmN0aW9uLm1vZGVsLmV4dGVuZCh7CisgICAgICAgIGRlZmF1bHRzOiBf LmV4dGVuZCh7fSwKKyAgICAgICAgICBGdW5jdGlvbi5tb2RlbC5wcm90b3R5 cGUuZGVmYXVsdHMsCisgICAgICAgICAgeworICAgICAgICAgICAgbGFubmFt ZTogJ2VkYnNwbCcKKyAgICAgICAgICB9CisgICAgICAgICksCisgICAgICAg IGNhblZhckFkZDogZnVuY3Rpb24obSl7CisgICAgICAgICAgdmFyIHNlcnZl ciA9IHRoaXMubm9kZV9pbmZvLnNlcnZlcjsKKyAgICAgICAgICAgIGlmIChz ZXJ2ZXIudmVyc2lvbiA8IDkwNTAwKSB7CisgICAgICAgICAgICAgIHJldHVy biBmYWxzZTsKKyAgICAgICAgICAgfQorICAgICAgICAgICBlbHNlIHsKKyAg ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgfQorICAgICAg ICB9LAorICAgICAgICBpc0Rpc2FibGVkOiBmdW5jdGlvbihtKSB7CisgICAg ICAgICAgbmFtZSA9IHRoaXMubmFtZTsKKyAgICAgICAgICBzd2l0Y2gobmFt ZSl7CisgICAgICAgICAgICBjYXNlICdwcm92b2xhdGlsaXR5JzoKKyAgICAg ICAgICAgIGNhc2UgJ3Byb2lzc3RyaWN0JzoKKyAgICAgICAgICAgIGNhc2Ug J3Byb3NlY2RlZic6CisgICAgICAgICAgICBjYXNlICdwcm9jb3N0JzoKKyAg ICAgICAgICAgIGNhc2UgJ3Byb2xlYWtwcm9vZic6CisgICAgICAgICAgICBj YXNlICd2YXJpYWJsZXMnOgorICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9 IHRoaXMubm9kZV9pbmZvLnNlcnZlcjsKKyAgICAgICAgICAgICAgIGlmIChz ZXJ2ZXIudmVyc2lvbiA8IDkwNTAwKSB7CisgICAgICAgICAgICAgICAgIHJl dHVybiB0cnVlOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg ZWxzZSB7CisgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg ICAgY2FzZSAncHJvcm93cyc6CisgICAgICAgICAgICAgIHZhciBzZXJ2ZXIg PSB0aGlzLm5vZGVfaW5mby5zZXJ2ZXI7CisgICAgICAgICAgICAgIGlmKHNl cnZlci52ZXJzaW9uID49IDkwNTAwICYmIG0uZ2V0KCdwcm9yZXRzZXQnKSA9 PSB0cnVlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAg ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgIGJyZWFrOworICAg ICAgICAgIH0KKyAgICAgICB9LAorICAgICAgIHZhbGlkYXRlOiBmdW5jdGlv bigpCisgICAgICAgIHsKKyAgICAgICAgICB2YXIgZXJyID0ge30sCisgICAg ICAgICAgICAgIGVycm1zZywKKyAgICAgICAgICAgICAgc2VjbGFiZWxzID0g dGhpcy5nZXQoJ3NlY2xhYmVscycpOworCisgICAgICAgICAgaWYgKF8uaXNV bmRlZmluZWQodGhpcy5nZXQoJ25hbWUnKSkgfHwgU3RyaW5nKHRoaXMuZ2V0 KCduYW1lJykpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsK KyAgICAgICAgICAgIGVyclsnbmFtZSddID0gJ3t7IF8oJ05hbWUgY2FuIG5v dCBiZSBlbXB0eSEnKSB9fSc7CisgICAgICAgICAgICBlcnJtc2cgPSBlcnJt c2cgfHwgZXJyWyduYW1lJ107CisgICAgICAgICAgfQorCisgICAgICAgICAg aWYgKF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ3Byb25hbWVzcGFjZScpKSB8 fCBTdHJpbmcodGhpcy5nZXQoJ3Byb25hbWVzcGFjZScpKS5yZXBsYWNlKC9e XHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgICBlcnJbJ3By b25hbWVzcGFjZSddID0gJ3t7IF8oJ1NjaGVtYSBjYW4gbm90IGJlIGVtcHR5 IScpIH19JzsKKyAgICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8fCBlcnJb J3Byb25hbWVzcGFjZSddOworICAgICAgICAgIH0KKworICAgICAgICAgIGlm IChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCdsYW5uYW1lJykpIHx8IFN0cmlu Zyh0aGlzLmdldCgnbGFubmFtZScpKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywg JycpID09ICcnKSB7CisgICAgICAgICAgICBlcnJbJ2xhbm5hbWUnXSA9ICd7 eyBfKCdMYW5ndWFnZSBjYW4gbm90IGJlIGVtcHR5IScpIH19JzsKKyAgICAg ICAgICAgIGVycm1zZyA9IGVycm1zZyB8fCBlcnJbJ2xhbm5hbWUnXTsKKyAg ICAgICAgICB9CisKKyAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZCh0aGlz LmdldCgncHJvc3JjJykpIHx8IFN0cmluZyh0aGlzLmdldCgncHJvc3JjJykp LnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAg ICAgIGVyclsncHJvc3JjJ10gPSAne3sgXygnQ29kZSBjYW4gbm90IGJlIGVt cHR5IScpIH19JzsKKyAgICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8fCBl cnJbJ3Byb3NyYyddOworICAgICAgICAgIH0KKworCisgICAgICAgICAgaWYg KHNlY2xhYmVscykgeworICAgICAgICAgICAgdmFyIHNlY0xhYmVsc0VycjsK KyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VjbGFiZWxzLm1v ZGVscy5sZW5ndGggJiYgIXNlY0xhYmVsc0VycjsgaSsrKSB7CisgICAgICAg ICAgICAgIHNlY0xhYmVsc0VyciA9IChzZWNsYWJlbHMubW9kZWxzW2ldKS52 YWxpZGF0ZS5hcHBseShzZWNsYWJlbHMubW9kZWxzW2ldKTsKKyAgICAgICAg ICAgICAgaWYgKHNlY0xhYmVsc0VycikgeworICAgICAgICAgICAgICAgIGVy clsnc2VjbGFiZWxzJ10gPSBzZWNMYWJlbHNFcnI7CisgICAgICAgICAgICAg ICAgZXJybXNnID0gZXJybXNnIHx8IHNlY0xhYmVsc0VycjsKKyAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgIH0KKworICAgICAg ICAgIHRoaXMuZXJyb3JNb2RlbC5jbGVhcigpLnNldChlcnIpOworCisgICAg ICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0sCisgICAgICB9CisgICAg ICApLAorICAgICAgY2FuQ3JlYXRlUHJvYzogZnVuY3Rpb24oaXRlbURhdGEs IGl0ZW0sIGRhdGEpIHsKKyAgICAgICAgdmFyIG5vZGVfaGllcmFyY2h5ID0g dGhpcy5nZXRUcmVlTm9kZUhpZXJhcmNoeS5hcHBseSh0aGlzLCBbaXRlbV0p OworCisgICAgICAgIC8vIERvIG5vdCBwcm92aWRlIENyZWF0ZSBvcHRpb24g aW4gY2F0YWxvZworICAgICAgICBpZiAoJ2NhdGFsb2cnIGluIG5vZGVfaGll cmFyY2h5KQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAv LyBQcm9jZWR1cmVzIHN1cHBvcnRlZCBvbmx5IGluIFBQQVMKKyAgICAgICAg aWYgKCdzZXJ2ZXInIGluIG5vZGVfaGllcmFyY2h5ICYmIG5vZGVfaGllcmFy Y2h5WydzZXJ2ZXInXS50eXBlID09ICJwcGFzIikKKyAgICAgICAgICByZXR1 cm4gdHJ1ZTsKKworICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIH0K KyAgfSk7CisKKyAgfQorCisgIHJldHVybiBwZ0Jyb3dzZXIuTm9kZXNbJ3By b2NlZHVyZSddOworfSk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1 cy9hY2wuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvYWNsLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDNlMGQxCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvYWNsLnNxbApAQCAtMCww ICsxLDM1IEBACitTRUxFQ1QKKyAgICBDT0FMRVNDRShndC5yb2xuYW1lLCAn cHVibGljJykgQVMgZ3JhbnRlZSwKKyAgICBnLnJvbG5hbWUgQVMgZ3JhbnRv ciwgYXJyYXlfYWdnKHByaXZpbGVnZV90eXBlKSBBUyBwcml2aWxlZ2VzLAor ICAgIGFycmF5X2FnZyhpc19ncmFudGFibGUpIEFTIGdyYW50YWJsZQorRlJP TQorICAgIChTRUxFQ1QKKyAgICAgICAgZC5ncmFudGVlLCBkLmdyYW50b3Is IGQuaXNfZ3JhbnRhYmxlLAorICAgICAgICBDQVNFIGQucHJpdmlsZWdlX3R5 cGUKKyAgICAgICAgV0hFTiAnQ09OTkVDVCcgVEhFTiAnYycKKyAgICAgICAg V0hFTiAnQ1JFQVRFJyBUSEVOICdDJworICAgICAgICBXSEVOICdERUxFVEUn IFRIRU4gJ2QnCisgICAgICAgIFdIRU4gJ0VYRUNVVEUnIFRIRU4gJ1gnCisg ICAgICAgIFdIRU4gJ0lOU0VSVCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAn UkVGRVJFTkNFUycgVEhFTiAneCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBU SEVOICdyJworICAgICAgICBXSEVOICdURU1QT1JBUlknIFRIRU4gJ1QnCisg ICAgICAgIFdIRU4gJ1RSSUdHRVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4g J1RSVU5DQVRFJyBUSEVOICdEJworICAgICAgICBXSEVOICdVUERBVEUnIFRI RU4gJ3cnCisgICAgICAgIFdIRU4gJ1VTQUdFJyBUSEVOICdVJworICAgICAg ICBFTFNFICdVTktOT1dOJworICAgICAgICBFTkQgQVMgcHJpdmlsZWdlX3R5 cGUKKyAgICBGUk9NCisgICAgICAgIChTRUxFQ1QKKyAgICAgICAgICAgIChk KS5ncmFudGVlIEFTIGdyYW50ZWUsIChkKS5ncmFudG9yIEFTIGdyYW50b3Is CisgICAgICAgICAgICAoZCkuaXNfZ3JhbnRhYmxlIEFTIGlzX2dyYW50YWJs ZSwKKyAgICAgICAgICAgIChkKS5wcml2aWxlZ2VfdHlwZSBBUyBwcml2aWxl Z2VfdHlwZQorICAgICAgICBGUk9NCisgICAgICAgICAgICAoU0VMRUNUIGFj bGV4cGxvZGUoZGIucHJvYWNsKSBBUyBkIEZST00gcGdfcHJvYyBkYgorICAg ICAgICAgICAgV0hFUkUgZGIub2lkID0ge3tmbmlkfX06Ok9JRCkgYQorICAg ICAgICApIGQKKyAgICApIGQKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5w Z19yb2xlcyBnIE9OIChkLmdyYW50b3IgPSBnLm9pZCkKKyAgICBMRUZUIEpP SU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBndCBPTiAoZC5ncmFudGVlID0gZ3Qu b2lkKQorR1JPVVAgQlkgZy5yb2xuYW1lLCBndC5yb2xuYW1lOwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3Fs LzkuMV9wbHVzL2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uNGFjYmM1OAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwKQEAgLTAsMCArMSw0MiBAQAoreyUg aW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMg U0VDTEFCTEUgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2 aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFj cm9zL2Z1bmN0aW9ucy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9 Cit7JSBzZXQgaXNfY29sdW1ucyA9IFtdICV9Cit7JSBpZiBkYXRhICV9CitD UkVBVEUgUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVz cGFjZSwgZGF0YS5uYW1lKSB9fXslIGlmIGRhdGEKKy5hcmd1bWVudHMgJX0o Cit7JSBmb3IgcCBpbiBkYXRhLmFyZ3VtZW50cyAlfXt7cC5hcmdtb2RlfX17 JSBpZiBwLmFyZ25hbWUgJX0ge3sgY29ubnxxdElkZW50KHAuYXJnbmFtZSl9 fXslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9IHt7cC5hcmd0eXBlfX17 JSBlbmRpZiAlfXslIGlmIHAuYXJnZGVmdmFsICV9IERFRkFVTFQge3twLmFy Z2RlZnZhbH19eyUgZW5kaWYgJX0KK3slIGlmIG5vdCBsb29wLmxhc3QgJX0s eyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfSkKK3slIGVuZGlmICV9CisKK0FT Cit7eyBkYXRhLnByb3NyYyB9fTsKKworeyUgaWYgZGF0YS5hY2wgJX0KK3sl IGZvciBwIGluIGRhdGEuYWNsICV9CisKK3t7IFBSSVZJTEVHRS5TRVQoY29u biwgIlBST0NFRFVSRSIsIHAuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwLndpdGhv dXRfZ3JhbnQsIHAKKy53aXRoX2dyYW50LCBkYXRhLnByb25hbWVzcGFjZSwg ZGF0YS5mdW5jX2FyZ3MpfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9 CisKK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKworQ09NTUVOVCBPTiBQ Uk9DRURVUkUge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBk YXRhLm5hbWUpIH19eyUgaWYKK2RhdGEuZnVuY19hcmdzICV9KHt7ZGF0YS5m dW5jX2FyZ3N9fSkgeyUgZW5kaWYgJX0KKworICAgIElTICd7eyBkYXRhLmRl c2NyaXB0aW9uIH19JzsKK3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLnNl Y2xhYmVscyAlfQoreyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0KK3sl IGlmIHIubGFiZWwgYW5kIHIucHJvdmlkZXIgJX0KKwore3sgU0VDTEFCTEUu U0VUKGNvbm4sICdQUk9DRURVUkUnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIs IHIubGFiZWwsIGRhdGEKKy5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19hcmdz KSB9fQoreyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9 CisKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1 cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODcwMWVjCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZGVsZXRlLnNx bApAQCAtMCwwICsxLDIxIEBACit7JSBpZiBzY2lkIGFuZCBmbmlkICV9CitT RUxFQ1QKKyAgICBwci5wcm9uYW1lIGFzIG5hbWUsICcoJyB8fCBDT0FMRVND RShwZ19jYXRhbG9nCisgICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9h cmd1bWVudHMocHIub2lkKSwgJycpIHx8ICcpJyBhcyBmdW5jX2FyZ3MsCisg ICAgbnNwbmFtZQorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBw Z190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBw Z19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNlCitX SEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJvbmFtZXNw YWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAo J3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIHByLm9pZCA9 IHt7Zm5pZH19OworeyUgZW5kaWYgJX0KKworeyUgaWYgbmFtZSAlfQorRFJP UCBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KG5zcG5hbWUsIG5hbWUpIH19 e3tmdW5jX2FyZ3N9fXslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FERXslIGVuZGlm ICV9OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9w bHVzL2dldF9kZWZpbml0aW9uLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL2dl dF9kZWZpbml0aW9uLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5jNjM1ZjFlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwv OS4xX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsCkBAIC0wLDAgKzEsMTIgQEAK K1NFTEVDVAorICAgIHBnX2dldF9mdW5jdGlvbmRlZih7e2ZuaWR9fTo6b2lk KSBBUyBmdW5jX2RlZiwKKyAgICBuc3BuYW1lIHx8ICcuJyB8fCBwci5wcm9u YW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nCisgICAgLnBnX2dl dF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8 ICcpJyBhcyBuYW1lCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAg IHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UK K1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9uYW1l c3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHByLm9pZCA9IHt7Zm5p ZH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9nZXRf bGFuZ3VhZ2VzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9sYW5ndWFn ZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4 MWRkZmIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9n ZXRfbGFuZ3VhZ2VzLnNxbApAQCAtMCwwICsxLDQgQEAKK1NFTEVDVAorICAg IGxhbm5hbWUgYXMgbGFiZWwsIGxhbm5hbWUgYXMgdmFsdWUKK0ZST00KKyAg ICBwZ19sYW5ndWFnZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVz L2dldF9vaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X29pZC5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmJjNzZhMgot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9vaWQu c3FsCkBAIC0wLDAgKzEsMTcgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIu cHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5w Z19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcn KSB8fCAnKScgYXMgbmFtZSwKKyAgICBsYW5uYW1lLCBwZ19nZXRfdXNlcmJ5 aWQocHJvb3duZXIpIGFzIGZ1bmNvd25lcgorRlJPTQorICAgIHBnX3Byb2Mg cHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5 cGUKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9s YW5nCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXBy LnByb25hbWVzcGFjZQorICAgIEFORCBuc3AubnNwbmFtZT17eyBuc3BuYW1l fHF0TGl0ZXJhbCB9fQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisg ICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmln Z2VyJykKKyAgICBBTkQgcHIucHJvbmFtZSA9IHt7IG5hbWV8cXRMaXRlcmFs IH19OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X291dF90 eXBlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9nZXRfb3V0X3R5cGVzLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NGExMTg3 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X291 dF90eXBlcy5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBmb3Jt YXRfdHlwZShvaWQsIE5VTEwpIEFTIG91dF9hcmdfdHlwZQorRlJPTQorICAg IHBnX3R5cGUKK1dIRVJFCisgICAgb2lkID0ge3sgb3V0X2FyZ19vaWQgfX06 Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9zY2hl bWEuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9w cm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X3NjaGVtYS5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI3ZDRiOQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9zY2hlbWEu c3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgbnNwbmFtZQorRlJP TQorICAgIHBnX25hbWVzcGFjZQorV0hFUkUKKyAgICBvaWQgPSB7eyBzY2lk IH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9nZXRf dHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X3R5cGVzLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTU1ODJlCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X3R5cGVz LnNxbApAQCAtMCwwICsxLDIwIEBACitTRUxFQ1QKKyAgICAqCitGUk9NCisg ICAgKFNFTEVDVAorICAgICAgICBmb3JtYXRfdHlwZSh0Lm9pZCxOVUxMKSBB UyB0eXBuYW1lLAorICAgICAgICBDQVNFIFdIRU4gdHlwZWxlbSA+IDAgVEhF TiB0eXBlbGVtIEVMU0UgdC5vaWQgRU5EIGFzIGVsZW1vaWQsIHR5cGxlbiwg dHlwdHlwZSwgdC5vaWQsIG5zcG5hbWUsCisgICAgICAgIChTRUxFQ1QgQ09V TlQoMSkgRlJPTSBwZ190eXBlIHQyIFdIRVJFIHQyLnR5cG5hbWUgPSB0LnR5 cG5hbWUpID4gMSBBUyBpc2R1cAorICAgIEZST00KKyAgICAgICAgcGdfdHlw ZSB0CisgICAgSk9JTgorICAgICAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIHR5 cG5hbWVzcGFjZT1uc3Aub2lkCisgICAgV0hFUkUKKyAgICAgICAgKE5PVCAo dHlwbmFtZSA9ICd1bmtub3duJyBBTkQgbnNwbmFtZSA9ICdwZ19jYXRhbG9n JykpCisgICAgQU5ECisgICAgICAgICgKKyAgICAgICAgICAgIHR5cHR5cGUg SU4gKCdiJywgJ2MnLCAnZCcsICdlJywgJ3AnLCAncicpCisgICAgICAgICAg ICBBTkQgdHlwbmFtZSBOT1QgSU4gKCdhbnknLCAndHJpZ2dlcicsICdsYW5n dWFnZV9oYW5kbGVyJywgJ2V2ZW50X3RyaWdnZXInKQorICAgICAgICApCisg ICAgKSBBUyBkdW1teQorT1JERVIgQlkgbnNwbmFtZSA8PiAncGdfY2F0YWxv ZycsIG5zcG5hbWUgPD4gJ3B1YmxpYycsIG5zcG5hbWUsIDE7CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2Nl ZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9ub2RlLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzku MV9wbHVzL25vZGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjMwY2FiOGQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85 LjFfcGx1cy9ub2RlLnNxbApAQCAtMCwwICsxLDE5IEBACitTRUxFQ1QKKyAg ICBwci5vaWQsIHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2Nh dGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50 cyhwci5vaWQpLCAnJykgfHwgJyknIEFTIG5hbWUsCisgICAgbGFubmFtZSwg cGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBBUyBmdW5jb3duZXIsIGRlc2Ny aXB0aW9uCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5 cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX2xh bmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9J TgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5v aWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hF UkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHByLnByb3R5cGUg PSAnMSc6OmNoYXIKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06 Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZl bnRfdHJpZ2dlcicpCitPUkRFUiBCWQorICAgIHByb25hbWU7CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2Nl ZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjllOGE4YmEKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVy ZS9wcGFzL3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbApAQCAtMCwwICsx LDMxIEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnhtaW4sIHByLiosIHBy LnByb3NyYyBBUyBwcm9zcmNfYywKKyAgICBwci5wcm9uYW1lIEFTIG5hbWUs IHBnX2dldF9mdW5jdGlvbl9yZXN1bHQocHIub2lkKSBBUyBwcm9yZXR0eXBl bmFtZSwKKyAgICB0eXBucy5uc3BuYW1lIEFTIHR5cG5zcCwgbGFubmFtZSwg cHJvYXJnbmFtZXMsIG9pZHZlY3RvcnR5cGVzKHByb2FyZ3R5cGVzKSBBUyBw cm9hcmd0eXBlbmFtZXMsCisgICAgcGdfZ2V0X2V4cHIocHJvYXJnZGVmYXVs dHMsICdwZ19jYXRhbG9nLnBnX2NsYXNzJzo6cmVnY2xhc3MpIEFTIHByb2Fy Z2RlZmF1bHR2YWxzLAorICAgIHByb25hcmdkZWZhdWx0cywgcHJvY29uZmln LCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIEFTIGZ1bmNvd25lciwgZGVz Y3JpcHRpb24sCisgICAgKFNFTEVDVAorICAgICAgICBhcnJheV9hZ2cocHJv dmlkZXIgfHwgJz0nIHx8IGxhYmVsKQorICAgIEZST00KKyAgICAgICAgcGdf c2VjbGFiZWwgc2wxCisgICAgV0hFUkUKKyAgICAgICAgc2wxLm9iam9pZD1w ci5vaWQpIEFTIHNlY2xhYmVscworRlJPTQorICAgIHBnX3Byb2MgcHIKK0pP SU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pP SU4KKyAgICBwZ19uYW1lc3BhY2UgdHlwbnMgT04gdHlwbnMub2lkPXR5cC50 eXBuYW1lc3BhY2UKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5n Lm9pZD1wcm9sYW5nCitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19kZXNjcmlw dGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9cHIub2lkIEFORCBkZXMuY2xhc3Nv aWQ9J3BnX3Byb2MnOjpyZWdjbGFzcykKK1dIRVJFCisgICAgcHJvaXNhZ2cg PSBGQUxTRQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lk CisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90 cmlnZ2VyJykKK3slIGlmIGZuaWQgJX0KKyAgICBBTkQgcHIub2lkID0ge3tm bmlkfX06Om9pZAoreyUgZW5kaWYgJX0KK09SREVSIEJZCisgICAgcHJvbmFt ZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVy ZS9wcGFzL3NxbC85LjFfcGx1cy91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4NWU1MmEKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2Nl ZHVyZS9wcGFzL3NxbC85LjFfcGx1cy91cGRhdGUuc3FsCkBAIC0wLDAgKzEs OTcgQEAKK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5t YWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5j dGlvbnMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9eyUgaWYg ZGF0YSAlfQoreyUgc2V0IG5hbWUgPSBvX2RhdGEubmFtZSAlfQoreyUgaWYg ZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUg JX0KK0FMVEVSIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLnBy b25hbWVzcGFjZSwgb19kYXRhLm5hbWUpIH19eyUgaWYgb19kYXRhLnByb2Fy Z3R5cGVuYW1lcyAlfSh7eyBvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KXsl IGVuZGlmICV9CisKKyAgICBSRU5BTUUgVE8ge3sgY29ubnxxdElkZW50KGRh dGEubmFtZSkgfX07Cit7JSBzZXQgbmFtZSA9IGRhdGEubmFtZSAlfQoreyUg ZW5kaWYgJX0KKworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmNoYW5nZV9m dW5jICAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgUFJPQ0VEVVJFIHt7IGNvbm58 cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fXslIGlmIGRh dGEuYXJndW1lbnRzICV9KAoreyUgZm9yIHAgaW4gZGF0YS5hcmd1bWVudHMg JX17JSBpZiBwLmFyZ21vZGUgJX17e3AuYXJnbW9kZX19eyUgZW5kaWYgJX17 JSBpZiBwLmFyZ25hbWUgJX0ge3sgY29ubnxxdElkZW50KHAuYXJnbmFtZSkg fX17JSBlbmRpZiAlfXslIGlmIHAuYXJndHlwZSAlfSB7e3AuYXJndHlwZX19 eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxUIHt7cC5h cmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9 LCB7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9CispCit7JSBlbmRpZiAlfQor CitBUworeyUgaWYgZGF0YS5wcm9zcmMgJX17eyBkYXRhLnByb3NyYyB9fXsl IGVsc2UgJX17eyBvX2RhdGEucHJvc3JjIH19eyUgZW5kaWYgLSV9OworeyUg ZW5kaWYgLSV9CisKKworeyUgaWYgZGF0YS5mdW5jb3duZXIgJX0KKworQUxU RVIgUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNw YWNlLCBuYW1lKSB9fXslIGlmIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgJX0o e3sgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSl7JSBlbmRpZiAlfQorICAg IE9XTkVSIFRPIHt7IGRhdGEuZnVuY293bmVyIH19OworeyUgZW5kaWYgLSV9 CisKKworeyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cgd2lsbCBjaGFuZ2Ug cHJpdmlsZWRnZXMgI30KK3slIGlmIGRhdGEuYWNsICV9CisKK3slIGlmICdk ZWxldGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5h Y2wuZGVsZXRlZCAlfQore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICdQ Uk9DRURVUkUnLCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0YQorLnByb25h bWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZv ciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGlmICdjaGFuZ2VkJyBpbiBkYXRh LmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuY2hhbmdlZCAl fQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ1BST0NFRFVSRScs IHByaXYuZ3JhbnRlZSwgbmFtZSwgb19kYXRhCisucHJvbmFtZXNwYWNlLCBv X2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQore3sgUFJJVklMRUdFLlNFVChj b25uLCAnUFJPQ0VEVVJFJywgcHJpdi5ncmFudGVlLCBuYW1lLCBwcml2Lndp dGhvdXRfZ3JhbnQsCisgcHJpdi53aXRoX2dyYW50LCBvX2RhdGEucHJvbmFt ZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmFj bCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuYWRkZWQgJX0KK3t7IFBS SVZJTEVHRS5TRVQoY29ubiwgJ1BST0NFRFVSRScsIHByaXYuZ3JhbnRlZSwg bmFtZSwgcHJpdi53aXRob3V0X2dyYW50LAorIHByaXYud2l0aF9ncmFudCwg b19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykg fX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmIC0lfQor Cit7JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlm ICdkZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxldGVk fGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5kZWxldGVk ICV9CisKK3t7IFNFQ0xBQkxFLlVOU0VUKGNvbm4sICdQUk9DRURVUkUnLCBu YW1lLCByLnByb3ZpZGVyLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEu cHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAt JX0KK3slIGlmICdhZGRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMu YWRkZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFk ZGVkICV9CisKK3t7IFNFQ0xBQkxFLlNFVChjb25uLCAnUFJPQ0VEVVJFJywg bmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCwgb19kYXRhCisu cHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUg ZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBz ZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0K K3slIGZvciByIGluIHNlY2xhYmVscy5jaGFuZ2VkICV9CisKK3t7IFNFQ0xB QkxFLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgbmFtZSwgci5wcm92aWRlciwg ci5zZWN1cml0eV9sYWJlbCwgb19kYXRhCisucHJvbmFtZXNwYWNlLCBvX2Rh dGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAtJX0KKworeyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorCitDT01NRU5U IE9OIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVz cGFjZSwgbmFtZSkgfX17JSBpZiBvX2RhdGEucHJvYXJndHlwZW5hbWVzICV9 KHt7IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0peyUgZW5kaWYgJX0KKwor ICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFsIH19OworeyUg ZW5kaWYgLSV9CisKK3slIGlmIGRhdGEucHJvbmFtZXNwYWNlICV9CisKK0FM VEVSIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVz cGFjZSwgbmFtZSkgfX17JSBpZiBvX2RhdGEucHJvYXJndHlwZW5hbWVzICV9 KHt7IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0peyUgZW5kaWYgJX0KKwor ICAgIFNFVCBTQ0hFTUEge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNw YWNlKSB9fTsKK3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAlfQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvdmFyaWFibGVzLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuMV9wbHVzL3ZhcmlhYmxlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNTIzM2M3MQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJl L3BwYXMvc3FsLzkuMV9wbHVzL3ZhcmlhYmxlcy5zcWwKQEAgLTAsMCArMSw2 IEBACitTRUxFQ1QKKyAgICBuYW1lLCB2YXJ0eXBlLCBtaW5fdmFsLCBtYXhf dmFsLCBlbnVtdmFscworRlJPTQorICAgIHBnX3NldHRpbmdzCitXSEVSRQor ICAgIGNvbnRleHQgaW4gKCd1c2VyJywgJ3N1cGVydXNlcicpOwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvYWNsLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzku Ml9wbHVzL2FjbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uYWQzZTBkMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzku Ml9wbHVzL2FjbC5zcWwKQEAgLTAsMCArMSwzNSBAQAorU0VMRUNUCisgICAg Q09BTEVTQ0UoZ3Qucm9sbmFtZSwgJ3B1YmxpYycpIEFTIGdyYW50ZWUsCisg ICAgZy5yb2xuYW1lIEFTIGdyYW50b3IsIGFycmF5X2FnZyhwcml2aWxlZ2Vf dHlwZSkgQVMgcHJpdmlsZWdlcywKKyAgICBhcnJheV9hZ2coaXNfZ3JhbnRh YmxlKSBBUyBncmFudGFibGUKK0ZST00KKyAgICAoU0VMRUNUCisgICAgICAg IGQuZ3JhbnRlZSwgZC5ncmFudG9yLCBkLmlzX2dyYW50YWJsZSwKKyAgICAg ICAgQ0FTRSBkLnByaXZpbGVnZV90eXBlCisgICAgICAgIFdIRU4gJ0NPTk5F Q1QnIFRIRU4gJ2MnCisgICAgICAgIFdIRU4gJ0NSRUFURScgVEhFTiAnQycK KyAgICAgICAgV0hFTiAnREVMRVRFJyBUSEVOICdkJworICAgICAgICBXSEVO ICdFWEVDVVRFJyBUSEVOICdYJworICAgICAgICBXSEVOICdJTlNFUlQnIFRI RU4gJ2EnCisgICAgICAgIFdIRU4gJ1JFRkVSRU5DRVMnIFRIRU4gJ3gnCisg ICAgICAgIFdIRU4gJ1NFTEVDVCcgVEhFTiAncicKKyAgICAgICAgV0hFTiAn VEVNUE9SQVJZJyBUSEVOICdUJworICAgICAgICBXSEVOICdUUklHR0VSJyBU SEVOICd0JworICAgICAgICBXSEVOICdUUlVOQ0FURScgVEhFTiAnRCcKKyAg ICAgICAgV0hFTiAnVVBEQVRFJyBUSEVOICd3JworICAgICAgICBXSEVOICdV U0FHRScgVEhFTiAnVScKKyAgICAgICAgRUxTRSAnVU5LTk9XTicKKyAgICAg ICAgRU5EIEFTIHByaXZpbGVnZV90eXBlCisgICAgRlJPTQorICAgICAgICAo U0VMRUNUCisgICAgICAgICAgICAoZCkuZ3JhbnRlZSBBUyBncmFudGVlLCAo ZCkuZ3JhbnRvciBBUyBncmFudG9yLAorICAgICAgICAgICAgKGQpLmlzX2dy YW50YWJsZSBBUyBpc19ncmFudGFibGUsCisgICAgICAgICAgICAoZCkucHJp dmlsZWdlX3R5cGUgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICAgICAgRlJPTQor ICAgICAgICAgICAgKFNFTEVDVCBhY2xleHBsb2RlKGRiLnByb2FjbCkgQVMg ZCBGUk9NIHBnX3Byb2MgZGIKKyAgICAgICAgICAgIFdIRVJFIGRiLm9pZCA9 IHt7Zm5pZH19OjpPSUQpIGEKKyAgICAgICAgKSBkCisgICAgKSBkCisgICAg TEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZyBPTiAoZC5ncmFudG9y ID0gZy5vaWQpCisgICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMg Z3QgT04gKGQuZ3JhbnRlZSA9IGd0Lm9pZCkKK0dST1VQIEJZIGcucm9sbmFt ZSwgZ3Qucm9sbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVz L2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9jcmVhdGUuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyOGMzNzEKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9jcmVhdGUuc3Fs CkBAIC0wLDAgKzEsNDEgQEAKK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9u cy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQg J21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklM RUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUu bWFjcm9zJyBhcyBWQVJJQUJMRSAlfQoreyUgc2V0IGlzX2NvbHVtbnMgPSBb XSAlfQoreyUgaWYgZGF0YSAlfQorQ1JFQVRFIFBST0NFRFVSRSB7eyBjb25u fHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX17JSBp ZiBkYXRhLmFyZ3VtZW50cyAlfQorKHslIGZvciBwIGluIGRhdGEuYXJndW1l bnRzICV9eyUgaWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9fXslIGVuZGlm ICV9eyUgaWYgcC5hcmduYW1lICV9IHt7IGNvbm58cXRJZGVudChwLmFyZ25h bWUpfX17JSBlbmRpZiAlfXslIGlmIHAuYXJndHlwZSAlfSB7e3AuYXJndHlw ZX19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxUIHt7 cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5sYXN0 ICV9LCB7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9KQoreyUgZW5kaWYgJX0K KworQVMKK3t7IGRhdGEucHJvc3JjIH19OworCit7JSBpZiBkYXRhLmFjbCAl fQoreyUgZm9yIHAgaW4gZGF0YS5hY2wgJX0KKwore3sgUFJJVklMRUdFLlNF VChjb25uLCAiUFJPQ0VEVVJFIiwgcC5ncmFudGVlLCBkYXRhLm5hbWUsIHAu d2l0aG91dF9ncmFudCwgcAorLndpdGhfZ3JhbnQsIGRhdGEucHJvbmFtZXNw YWNlLCBkYXRhLmZ1bmNfYXJncyl9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAtJX0KKworeyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorCitDT01NRU5U IE9OIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3Bh Y2UsIGRhdGEubmFtZSkgfX17JSBpZgorZGF0YS5mdW5jX2FyZ3MgJX0oe3tk YXRhLmZ1bmNfYXJnc319KSB7JSBlbmRpZiAlfQorCisgICAgSVMgJ3t7IGRh dGEuZGVzY3JpcHRpb24gfX0nOworeyUgZW5kaWYgLSV9CisKK3slIGlmIGRh dGEuc2VjbGFiZWxzICV9Cit7JSBmb3IgciBpbiBkYXRhLnNlY2xhYmVscyAl fQoreyUgaWYgci5sYWJlbCBhbmQgci5wcm92aWRlciAlfQorCit7eyBTRUNM QUJMRS5TRVQoY29ubiwgJ1BST0NFRFVSRScsIGRhdGEubmFtZSwgci5wcm92 aWRlciwgci5sYWJlbCwgZGF0YQorLnByb25hbWVzcGFjZSwgZGF0YS5mdW5j X2FyZ3MpIH19Cit7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAtJX0KKworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzku Ml9wbHVzL2RlbGV0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9kZWxldGUu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4NzAx ZWMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9kZWxl dGUuc3FsCkBAIC0wLDAgKzEsMjEgQEAKK3slIGlmIHNjaWQgYW5kIGZuaWQg JX0KK1NFTEVDVAorICAgIHByLnByb25hbWUgYXMgbmFtZSwgJygnIHx8IENP QUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50 aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIGZ1bmNfYXJn cywKKyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgor ICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgor ICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3Bh Y2UKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9u YW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9U IElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKKyAgICBBTkQgcHIu b2lkID0ge3tmbmlkfX07Cit7JSBlbmRpZiAlfQorCit7JSBpZiBuYW1lICV9 CitEUk9QIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQobnNwbmFtZSwgbmFt ZSkgfX17e2Z1bmNfYXJnc319eyUgaWYgY2FzY2FkZSAlfSBDQVNDQURFeyUg ZW5kaWYgJX07Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwv OS4yX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3Bs dXMvZ2V0X2RlZmluaXRpb24uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmM2MzVmMWUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFz L3NxbC85LjJfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwKQEAgLTAsMCArMSwx MiBAQAorU0VMRUNUCisgICAgcGdfZ2V0X2Z1bmN0aW9uZGVmKHt7Zm5pZH19 OjpvaWQpIEFTIGZ1bmNfZGVmLAorICAgIG5zcG5hbWUgfHwgJy4nIHx8IHBy LnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAu cGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAn JykgfHwgJyknIGFzIG5hbWUKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lO CisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnByb25hbWVz cGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHBy b25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgcHIub2lkID0g e3tmbmlkfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVz L2dldF9sYW5ndWFnZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X2xh bmd1YWdlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uZjgxZGRmYgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9w bHVzL2dldF9sYW5ndWFnZXMuc3FsCkBAIC0wLDAgKzEsNCBAQAorU0VMRUNU CisgICAgbGFubmFtZSBhcyBsYWJlbCwgbGFubmFtZSBhcyB2YWx1ZQorRlJP TQorICAgIHBnX2xhbmd1YWdlOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4y X3BsdXMvZ2V0X29pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9nZXRfb2lk LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYmM3 NmEyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvZ2V0 X29pZC5zcWwKQEAgLTAsMCArMSwxNyBAQAorU0VMRUNUCisgICAgcHIub2lk LCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nCisg ICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lk KSwgJycpIHx8ICcpJyBhcyBuYW1lLAorICAgIGxhbm5hbWUsIHBnX2dldF91 c2VyYnlpZChwcm9vd25lcikgYXMgZnVuY293bmVyCitGUk9NCisgICAgcGdf cHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJv cmV0dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lk PXByb2xhbmcKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5v aWQ9cHIucHJvbmFtZXNwYWNlCisgICAgQU5EIG5zcC5uc3BuYW1lPXt7IG5z cG5hbWV8cXRMaXRlcmFsIH19CitXSEVSRQorICAgIHByb2lzYWdnID0gRkFM U0UKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50 X3RyaWdnZXInKQorICAgIEFORCBwci5wcm9uYW1lID0ge3sgbmFtZXxxdExp dGVyYWwgfX07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9nZXRf b3V0X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9vdXRfdHlw ZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0 YTExODcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9n ZXRfb3V0X3R5cGVzLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAg IGZvcm1hdF90eXBlKG9pZCwgTlVMTCkgQVMgb3V0X2FyZ190eXBlCitGUk9N CisgICAgcGdfdHlwZQorV0hFUkUKKyAgICBvaWQgPSB7eyBvdXRfYXJnX29p ZCB9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvZ2V0 X3NjaGVtYS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9nZXRfc2NoZW1hLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjdkNGI5 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X3Nj aGVtYS5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBuc3BuYW1l CitGUk9NCisgICAgcGdfbmFtZXNwYWNlCitXSEVSRQorICAgIG9pZCA9IHt7 IHNjaWQgfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVz L2dldF90eXBlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9nZXRfdHlwZXMu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNTU4 MmUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9nZXRf dHlwZXMuc3FsCkBAIC0wLDAgKzEsMjAgQEAKK1NFTEVDVAorICAgICoKK0ZS T00KKyAgICAoU0VMRUNUCisgICAgICAgIGZvcm1hdF90eXBlKHQub2lkLE5V TEwpIEFTIHR5cG5hbWUsCisgICAgICAgIENBU0UgV0hFTiB0eXBlbGVtID4g MCBUSEVOIHR5cGVsZW0gRUxTRSB0Lm9pZCBFTkQgYXMgZWxlbW9pZCwgdHlw bGVuLCB0eXB0eXBlLCB0Lm9pZCwgbnNwbmFtZSwKKyAgICAgICAgKFNFTEVD VCBDT1VOVCgxKSBGUk9NIHBnX3R5cGUgdDIgV0hFUkUgdDIudHlwbmFtZSA9 IHQudHlwbmFtZSkgPiAxIEFTIGlzZHVwCisgICAgRlJPTQorICAgICAgICBw Z190eXBlIHQKKyAgICBKT0lOCisgICAgICAgIHBnX25hbWVzcGFjZSBuc3Ag T04gdHlwbmFtZXNwYWNlPW5zcC5vaWQKKyAgICBXSEVSRQorICAgICAgICAo Tk9UICh0eXBuYW1lID0gJ3Vua25vd24nIEFORCBuc3BuYW1lID0gJ3BnX2Nh dGFsb2cnKSkKKyAgICBBTkQKKyAgICAgICAgKAorICAgICAgICAgICAgdHlw dHlwZSBJTiAoJ2InLCAnYycsICdkJywgJ2UnLCAncCcsICdyJykKKyAgICAg ICAgICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ2FueScsICd0cmlnZ2VyJywg J2xhbmd1YWdlX2hhbmRsZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgICAg ICkKKyAgICApIEFTIGR1bW15CitPUkRFUiBCWSBuc3BuYW1lIDw+ICdwZ19j YXRhbG9nJywgbnNwbmFtZSA8PiAncHVibGljJywgbnNwbmFtZSwgMTsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv cHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL25vZGUuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9z cWwvOS4yX3BsdXMvbm9kZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMzBjYWI4ZAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuMl9wbHVzL25vZGUuc3FsCkBAIC0wLDAgKzEsMTkgQEAKK1NFTEVD VAorICAgIHByLm9pZCwgcHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0Uo cGdfY2F0YWxvZworICAgIC5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJn dW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgQVMgbmFtZSwKKyAgICBsYW5u YW1lLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIEFTIGZ1bmNvd25lciwg ZGVzY3JpcHRpb24KK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAg cGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAg cGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworTEVGVCBPVVRF UiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lk PXByLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19wcm9jJzo6cmVnY2xhc3Mp CitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHIucHJv dHlwZSA9ICcxJzo6Y2hhcgorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3Nj aWR9fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcics ICdldmVudF90cmlnZ2VyJykKK09SREVSIEJZCisgICAgcHJvbmFtZTsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv cHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL3Byb3BlcnRpZXMuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUv cHBhcy9zcWwvOS4yX3BsdXMvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmY3ODI5OAotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJv Y2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL3Byb3BlcnRpZXMuc3FsCkBAIC0w LDAgKzEsMzEgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIueG1pbiwgcHIu KiwgcHIucHJvc3JjIEFTIHByb3NyY19jLAorICAgIHByLnByb25hbWUgQVMg bmFtZSwgcGdfZ2V0X2Z1bmN0aW9uX3Jlc3VsdChwci5vaWQpIEFTIHByb3Jl dHR5cGVuYW1lLAorICAgIHR5cG5zLm5zcG5hbWUgQVMgdHlwbnNwLCBsYW5u YW1lLCBwcm9hcmduYW1lcywgb2lkdmVjdG9ydHlwZXMocHJvYXJndHlwZXMp IEFTIHByb2FyZ3R5cGVuYW1lcywKKyAgICBwZ19nZXRfZXhwcihwcm9hcmdk ZWZhdWx0cywgJ3BnX2NhdGFsb2cucGdfY2xhc3MnOjpyZWdjbGFzcykgQVMg cHJvYXJnZGVmYXVsdHZhbHMsCisgICAgcHJvbmFyZ2RlZmF1bHRzLCBwcm9j b25maWcsIHBnX2dldF91c2VyYnlpZChwcm9vd25lcikgQVMgZnVuY293bmVy LCBkZXNjcmlwdGlvbiwKKyAgICAoU0VMRUNUCisgICAgICAgIGFycmF5X2Fn Zyhwcm92aWRlciB8fCAnPScgfHwgbGFiZWwpCisgICAgRlJPTQorICAgICAg ICBwZ19zaHNlY2xhYmVsIHNsMQorICAgIFdIRVJFCisgICAgICAgIHNsMS5v YmpvaWQ9cHIub2lkKSBBUyBzZWNsYWJlbHMKK0ZST00KKyAgICBwZ19wcm9j IHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0 eXBlCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIHR5cG5zIE9OIHR5cG5zLm9p ZD10eXAudHlwbmFtZXNwYWNlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5n IE9OIGxuZy5vaWQ9cHJvbGFuZworTEVGVCBPVVRFUiBKT0lOCisgICAgcGdf ZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPXByLm9pZCBBTkQgZGVz LmNsYXNzb2lkPSdwZ19wcm9jJzo6cmVnY2xhc3MpCitXSEVSRQorICAgIHBy b2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lk fX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAn ZXZlbnRfdHJpZ2dlcicpCit7JSBpZiBmbmlkICV9CisgICAgQU5EIHByLm9p ZCA9IHt7Zm5pZH19OjpvaWQKK3slIGVuZGlmICV9CitPUkRFUiBCWQorICAg IHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy91cGRh dGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9w cm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvdXBkYXRlLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODVlNTJhCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvdXBkYXRlLnNxbApAQCAt MCwwICsxLDk3IEBACit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvc2Vj dXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNy b3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAl fXslIGlmIGRhdGEgJX0KK3slIHNldCBuYW1lID0gb19kYXRhLm5hbWUgJX0K K3slIGlmIGRhdGEubmFtZSAlfQoreyUgaWYgZGF0YS5uYW1lICE9IG9fZGF0 YS5uYW1lICV9CitBTFRFUiBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KG9f ZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5uYW1lKSB9fXslIGlmIG9fZGF0 YS5wcm9hcmd0eXBlbmFtZXMgJX0oe3sgb19kYXRhLnByb2FyZ3R5cGVuYW1l cyB9fSl7JSBlbmRpZiAlfQorCisgICAgUkVOQU1FIFRPIHt7IGNvbm58cXRJ ZGVudChkYXRhLm5hbWUpIH19OworeyUgc2V0IG5hbWUgPSBkYXRhLm5hbWUg JX0KK3slIGVuZGlmICV9CisKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5j aGFuZ2VfZnVuYyAgJX0KK0NSRUFURSBPUiBSRVBMQUNFIFBST0NFRFVSRSB7 eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX17 JSBpZiBkYXRhLmFyZ3VtZW50cyAlfSgKK3slIGZvciBwIGluIGRhdGEuYXJn dW1lbnRzICV9eyUgaWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9fXslIGVu ZGlmICV9eyUgaWYgcC5hcmduYW1lICV9IHt7IGNvbm58cXRJZGVudChwLmFy Z25hbWUpIH19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUgJX0ge3twLmFy Z3R5cGV9fXslIGVuZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVM VCB7e3AuYXJnZGVmdmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3Au bGFzdCAlfSwgeyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQorKQoreyUgZW5k aWYgJX0KKworQVMKK3slIGlmIGRhdGEucHJvc3JjICV9e3sgZGF0YS5wcm9z cmMgfX17JSBlbHNlICV9e3sgb19kYXRhLnByb3NyYyB9fXslIGVuZGlmIC0l fTsKK3slIGVuZGlmIC0lfQorCisKK3slIGlmIGRhdGEuZnVuY293bmVyICV9 CisKK0FMVEVSIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLnBy b25hbWVzcGFjZSwgbmFtZSkgfX17JSBpZiBvX2RhdGEucHJvYXJndHlwZW5h bWVzICV9KHt7IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0peyUgZW5kaWYg JX0KKyAgICBPV05FUiBUTyB7eyBkYXRhLmZ1bmNvd25lciB9fTsKK3slIGVu ZGlmIC0lfQorCisKK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwg Y2hhbmdlIHByaXZpbGVkZ2VzICN9Cit7JSBpZiBkYXRhLmFjbCAlfQorCit7 JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS5hY2wgJX0KK3slIGZvciBwcml2IGlu IGRhdGEuYWNsLmRlbGV0ZWQgJX0KK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChj b25uLCAnUFJPQ0VEVVJFJywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEK Ky5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7 JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBpZiAnY2hhbmdlZCcg aW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuYWNsLmNo YW5nZWQgJX0KKwore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICdQUk9D RURVUkUnLCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0YQorLnByb25hbWVz cGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3t7IFBSSVZJTEVH RS5TRVQoY29ubiwgJ1BST0NFRFVSRScsIHByaXYuZ3JhbnRlZSwgbmFtZSwg cHJpdi53aXRob3V0X2dyYW50LAorIHByaXYud2l0aF9ncmFudCwgb19kYXRh LnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3sl IGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGlmICdhZGRlZCcgaW4g ZGF0YS5hY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuYWNsLmFkZGVkICV9 Cit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdQUk9DRURVUkUnLCBwcml2Lmdy YW50ZWUsIG5hbWUsIHByaXYud2l0aG91dF9ncmFudCwKKyBwcml2LndpdGhf Z3JhbnQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBl bmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRp ZiAtJX0KKworeyUgc2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9 Cit7JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMu ZGVsZXRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMu ZGVsZXRlZCAlfQorCit7eyBTRUNMQUJMRS5VTlNFVChjb25uLCAnUFJPQ0VE VVJFJywgbmFtZSwgci5wcm92aWRlciwgb19kYXRhLnByb25hbWVzcGFjZSwg b19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUg ZW5kaWYgLSV9Cit7JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2Vj bGFiZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xh YmVscy5hZGRlZCAlfQorCit7eyBTRUNMQUJMRS5TRVQoY29ubiwgJ1BST0NF RFVSRScsIG5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIG9f ZGF0YQorLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykg fX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnY2hhbmdl ZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGgg PiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQorCit7 eyBTRUNMQUJMRS5TRVQoY29ubiwgJ1BST0NFRFVSRScsIG5hbWUsIHIucHJv dmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIG9fZGF0YQorLnByb25hbWVzcGFj ZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQor eyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKwor Q09NTUVOVCBPTiBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KG9fZGF0YS5w cm9uYW1lc3BhY2UsIG5hbWUpIH19eyUgaWYgb19kYXRhLnByb2FyZ3R5cGVu YW1lcyAlfSh7eyBvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KXslIGVuZGlm ICV9CisKKyAgICBJUyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJhbCB9 fTsKK3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLnByb25hbWVzcGFjZSAl fQorCitBTFRFUiBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KG9fZGF0YS5w cm9uYW1lc3BhY2UsIG5hbWUpIH19eyUgaWYgb19kYXRhLnByb2FyZ3R5cGVu YW1lcyAlfSh7eyBvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KXslIGVuZGlm ICV9CisKKyAgICBTRVQgU0NIRU1BIHt7IGNvbm58cXRJZGVudChkYXRhLnBy b25hbWVzcGFjZSkgfX07Cit7JSBlbmRpZiAtJX0KKworeyUgZW5kaWYgJX0K ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL3ZhcmlhYmxlcy5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVy ZS9wcGFzL3NxbC85LjJfcGx1cy92YXJpYWJsZXMuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyMzNjNzEKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3By b2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy92YXJpYWJsZXMuc3FsCkBAIC0w LDAgKzEsNiBAQAorU0VMRUNUCisgICAgbmFtZSwgdmFydHlwZSwgbWluX3Zh bCwgbWF4X3ZhbCwgZW51bXZhbHMKK0ZST00KKyAgICBwZ19zZXR0aW5ncwor V0hFUkUKKyAgICBjb250ZXh0IGluICgndXNlcicsICdzdXBlcnVzZXInKTsK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL2FjbC5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFz L3NxbC85LjVfcGx1cy9hY2wuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmFkM2UwZDEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFz L3NxbC85LjVfcGx1cy9hY2wuc3FsCkBAIC0wLDAgKzEsMzUgQEAKK1NFTEVD VAorICAgIENPQUxFU0NFKGd0LnJvbG5hbWUsICdwdWJsaWMnKSBBUyBncmFu dGVlLAorICAgIGcucm9sbmFtZSBBUyBncmFudG9yLCBhcnJheV9hZ2cocHJp dmlsZWdlX3R5cGUpIEFTIHByaXZpbGVnZXMsCisgICAgYXJyYXlfYWdnKGlz X2dyYW50YWJsZSkgQVMgZ3JhbnRhYmxlCitGUk9NCisgICAgKFNFTEVDVAor ICAgICAgICBkLmdyYW50ZWUsIGQuZ3JhbnRvciwgZC5pc19ncmFudGFibGUs CisgICAgICAgIENBU0UgZC5wcml2aWxlZ2VfdHlwZQorICAgICAgICBXSEVO ICdDT05ORUNUJyBUSEVOICdjJworICAgICAgICBXSEVOICdDUkVBVEUnIFRI RU4gJ0MnCisgICAgICAgIFdIRU4gJ0RFTEVURScgVEhFTiAnZCcKKyAgICAg ICAgV0hFTiAnRVhFQ1VURScgVEhFTiAnWCcKKyAgICAgICAgV0hFTiAnSU5T RVJUJyBUSEVOICdhJworICAgICAgICBXSEVOICdSRUZFUkVOQ0VTJyBUSEVO ICd4JworICAgICAgICBXSEVOICdTRUxFQ1QnIFRIRU4gJ3InCisgICAgICAg IFdIRU4gJ1RFTVBPUkFSWScgVEhFTiAnVCcKKyAgICAgICAgV0hFTiAnVFJJ R0dFUicgVEhFTiAndCcKKyAgICAgICAgV0hFTiAnVFJVTkNBVEUnIFRIRU4g J0QnCisgICAgICAgIFdIRU4gJ1VQREFURScgVEhFTiAndycKKyAgICAgICAg V0hFTiAnVVNBR0UnIFRIRU4gJ1UnCisgICAgICAgIEVMU0UgJ1VOS05PV04n CisgICAgICAgIEVORCBBUyBwcml2aWxlZ2VfdHlwZQorICAgIEZST00KKyAg ICAgICAgKFNFTEVDVAorICAgICAgICAgICAgKGQpLmdyYW50ZWUgQVMgZ3Jh bnRlZSwgKGQpLmdyYW50b3IgQVMgZ3JhbnRvciwKKyAgICAgICAgICAgIChk KS5pc19ncmFudGFibGUgQVMgaXNfZ3JhbnRhYmxlLAorICAgICAgICAgICAg KGQpLnByaXZpbGVnZV90eXBlIEFTIHByaXZpbGVnZV90eXBlCisgICAgICAg IEZST00KKyAgICAgICAgICAgIChTRUxFQ1QgYWNsZXhwbG9kZShkYi5wcm9h Y2wpIEFTIGQgRlJPTSBwZ19wcm9jIGRiCisgICAgICAgICAgICBXSEVSRSBk Yi5vaWQgPSB7e2ZuaWR9fTo6T0lEKSBhCisgICAgICAgICkgZAorICAgICkg ZAorICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQu Z3JhbnRvciA9IGcub2lkKQorICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBn X3JvbGVzIGd0IE9OIChkLmdyYW50ZWUgPSBndC5vaWQpCitHUk9VUCBCWSBn LnJvbG5hbWUsIGd0LnJvbG5hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85 LjVfcGx1cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvY3JlYXRl LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDlm MTZlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvY3Jl YXRlLnNxbApAQCAtMCwwICsxLDU1IEBACit7JSBpbXBvcnQgJ21hY3Jvcy9m dW5jdGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUg aW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3MnIGFz IFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3Zh cmlhYmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX0KK3slIHNldCBpc19jb2x1 bW5zID0gW10gJX0KK3slIGlmIGRhdGEgJX0KK0NSRUFURSBQUk9DRURVUkUg e3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUp IH19eyUgaWYgZGF0YQorLmFyZ3VtZW50cyAlfSgKK3slIGZvciBwIGluIGRh dGEuYXJndW1lbnRzICV9e3twLmFyZ21vZGV9fXslIGlmIHAuYXJnbmFtZSAl fSB7eyBjb25ufHF0SWRlbnQocC5hcmduYW1lKX19eyUgZW5kaWYgJX17JSBp ZiBwLmFyZ3R5cGUgJX0ge3twLmFyZ3R5cGV9fXslIGVuZGlmICV9eyUgaWYg cC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7e3AuYXJnZGVmdmFsfX17JSBlbmRp ZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAlfSx7JSBlbmRpZiAlfQoreyUg ZW5kZm9yICV9KQoreyUgZW5kaWYgJX0KKwore3sgZGF0YS5wcm92b2xhdGls ZSB9fXslIGlmIGRhdGEucHJvbGVha3Byb29mICV9IExFQUtQUk9PRnslIGVs c2UgJX0gTk9UIExFQUtQUk9PRnslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnBy b2lzc3RyaWN0ICV9IFNUUklDVHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnBy b3NlY2RlZiAlfSBTRUNVUklUWSBERUZJTkVSeyUgZW5kaWYgJX17JSBpZiBk YXRhLnByb2Nvc3QgJX0KKworQ09TVCB7e2RhdGEucHJvY29zdHxxdExpdGVy YWx9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9yb3dzICV9CisKK1JPV1Mg e3tkYXRhLnByb3Jvd3N8cXRMaXRlcmFsfX17JSBlbmRpZiAtJX17JSBpZiBk YXRhLnZhcmlhYmxlcyAlfQorCit7JSBmb3IgdiBpbiBkYXRhLnZhcmlhYmxl cyAlfQorCitTRVQge3sgY29ubnxxdElkZW50KHYubmFtZSkgfX09e3sgdi52 YWx1ZXxxdExpdGVyYWwgfX17JSBlbmRmb3IgLSV9Cit7JSBlbmRpZiAlfQor CitBUwore3sgZGF0YS5wcm9zcmMgfX07CisKK3slIGlmIGRhdGEuYWNsICV9 Cit7JSBmb3IgcCBpbiBkYXRhLmFjbCAlfQorCit7eyBQUklWSUxFR0UuU0VU KGNvbm4sICJQUk9DRURVUkUiLCBwLmdyYW50ZWUsIGRhdGEubmFtZSwgcC53 aXRob3V0X2dyYW50LCBwCisud2l0aF9ncmFudCwgZGF0YS5wcm9uYW1lc3Bh Y2UsIGRhdGEuZnVuY19hcmdzKX19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlm IC0lfQorCit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9CisKK0NPTU1FTlQg T04gUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFj ZSwgZGF0YS5uYW1lKSB9fXslIGlmCitkYXRhLmZ1bmNfYXJncyAlfSh7e2Rh dGEuZnVuY19hcmdzfX0pIHslIGVuZGlmICV9CisKKyAgICBJUyAne3sgZGF0 YS5kZXNjcmlwdGlvbiB9fSc7Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0 YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEuc2VjbGFiZWxzICV9 Cit7JSBpZiByLmxhYmVsIGFuZCByLnByb3ZpZGVyICV9CisKK3t7IFNFQ0xB QkxFLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgZGF0YS5uYW1lLCByLnByb3Zp ZGVyLCByLmxhYmVsLCBkYXRhCisucHJvbmFtZXNwYWNlLCBkYXRhLmZ1bmNf YXJncykgfX0KK3slIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlm IC0lfQorCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41 X3BsdXMvZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL2RlbGV0ZS5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTg3MDFl YwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL2RlbGV0 ZS5zcWwKQEAgLTAsMCArMSwyMSBAQAoreyUgaWYgc2NpZCBhbmQgZm5pZCAl fQorU0VMRUNUCisgICAgcHIucHJvbmFtZSBhcyBuYW1lLCAnKCcgfHwgQ09B TEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRfZnVuY3Rpb25faWRlbnRp dHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMgZnVuY19hcmdz LAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisg ICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisg ICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnByb25hbWVzcGFj ZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHByb25h bWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgdHlwbmFtZSBOT1Qg SU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQorICAgIEFORCBwci5v aWQgPSB7e2ZuaWR9fTsKK3slIGVuZGlmICV9CisKK3slIGlmIG5hbWUgJX0K K0RST1AgUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChuc3BuYW1lLCBuYW1l KSB9fXt7ZnVuY19hcmdzfX17JSBpZiBjYXNjYWRlICV9IENBU0NBREV7JSBl bmRpZiAlfTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85 LjVfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1 cy9nZXRfZGVmaW5pdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uYzYzNWYxZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuNV9wbHVzL2dldF9kZWZpbml0aW9uLnNxbApAQCAtMCwwICsxLDEy IEBACitTRUxFQ1QKKyAgICBwZ19nZXRfZnVuY3Rpb25kZWYoe3tmbmlkfX06 Om9pZCkgQVMgZnVuY19kZWYsCisgICAgbnNwbmFtZSB8fCAnLicgfHwgcHIu cHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5w Z19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcn KSB8fCAnKScgYXMgbmFtZQorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4K KyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNw YWNlCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJv bmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCBwci5vaWQgPSB7 e2ZuaWR9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMv Z2V0X2xhbmd1YWdlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy9nZXRfbGFu Z3VhZ2VzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5mODFkZGZiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3Bs dXMvZ2V0X2xhbmd1YWdlcy5zcWwKQEAgLTAsMCArMSw0IEBACitTRUxFQ1QK KyAgICBsYW5uYW1lIGFzIGxhYmVsLCBsYW5uYW1lIGFzIHZhbHVlCitGUk9N CisgICAgcGdfbGFuZ3VhZ2U7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVf cGx1cy9nZXRfb2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL2dldF9vaWQu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiYzc2 YTIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy9nZXRf b2lkLnNxbApAQCAtMCwwICsxLDE3IEBACitTRUxFQ1QKKyAgICBwci5vaWQs IHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAg ICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQp LCAnJykgfHwgJyknIGFzIG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3Vz ZXJieWlkKHByb293bmVyKSBhcyBmdW5jb3duZXIKK0ZST00KKyAgICBwZ19w cm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9y ZXR0eXBlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9 cHJvbGFuZworSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9p ZD1wci5wcm9uYW1lc3BhY2UKKyAgICBBTkQgbnNwLm5zcG5hbWU9e3sgbnNw bmFtZXxxdExpdGVyYWwgfX0KK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxT RQorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRf dHJpZ2dlcicpCisgICAgQU5EIHByLnByb25hbWUgPSB7eyBuYW1lfHF0TGl0 ZXJhbCB9fTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL2dldF9v dXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvZ2V0X291dF90eXBl cy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjRh MTE4NwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL2dl dF9vdXRfdHlwZXMuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAg Zm9ybWF0X3R5cGUob2lkLCBOVUxMKSBBUyBvdXRfYXJnX3R5cGUKK0ZST00K KyAgICBwZ190eXBlCitXSEVSRQorICAgIG9pZCA9IHt7IG91dF9hcmdfb2lk IH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy9nZXRf c2NoZW1hLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL2dldF9zY2hlbWEuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyN2Q0YjkK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy9nZXRfc2No ZW1hLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIG5zcG5hbWUK K0ZST00KKyAgICBwZ19uYW1lc3BhY2UKK1dIRVJFCisgICAgb2lkID0ge3sg c2NpZCB9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMv Z2V0X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL2dldF90eXBlcy5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE1NTgy ZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL2dldF90 eXBlcy5zcWwKQEAgLTAsMCArMSwyMCBAQAorU0VMRUNUCisgICAgKgorRlJP TQorICAgIChTRUxFQ1QKKyAgICAgICAgZm9ybWF0X3R5cGUodC5vaWQsTlVM TCkgQVMgdHlwbmFtZSwKKyAgICAgICAgQ0FTRSBXSEVOIHR5cGVsZW0gPiAw IFRIRU4gdHlwZWxlbSBFTFNFIHQub2lkIEVORCBhcyBlbGVtb2lkLCB0eXBs ZW4sIHR5cHR5cGUsIHQub2lkLCBuc3BuYW1lLAorICAgICAgICAoU0VMRUNU IENPVU5UKDEpIEZST00gcGdfdHlwZSB0MiBXSEVSRSB0Mi50eXBuYW1lID0g dC50eXBuYW1lKSA+IDEgQVMgaXNkdXAKKyAgICBGUk9NCisgICAgICAgIHBn X3R5cGUgdAorICAgIEpPSU4KKyAgICAgICAgcGdfbmFtZXNwYWNlIG5zcCBP TiB0eXBuYW1lc3BhY2U9bnNwLm9pZAorICAgIFdIRVJFCisgICAgICAgIChO T1QgKHR5cG5hbWUgPSAndW5rbm93bicgQU5EIG5zcG5hbWUgPSAncGdfY2F0 YWxvZycpKQorICAgIEFORAorICAgICAgICAoCisgICAgICAgICAgICB0eXB0 eXBlIElOICgnYicsICdjJywgJ2QnLCAnZScsICdwJywgJ3InKQorICAgICAg ICAgICAgQU5EIHR5cG5hbWUgTk9UIElOICgnYW55JywgJ3RyaWdnZXInLCAn bGFuZ3VhZ2VfaGFuZGxlcicsICdldmVudF90cmlnZ2VyJykKKyAgICAgICAg KQorICAgICkgQVMgZHVtbXkKK09SREVSIEJZIG5zcG5hbWUgPD4gJ3BnX2Nh dGFsb2cnLCBuc3BuYW1lIDw+ICdwdWJsaWMnLCBuc3BuYW1lLCAxOwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9w cm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvbm9kZS5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3Nx bC85LjVfcGx1cy9ub2RlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4zMGNhYjhkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9z cWwvOS41X3BsdXMvbm9kZS5zcWwKQEAgLTAsMCArMSwxOSBAQAorU0VMRUNU CisgICAgcHIub2lkLCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShw Z19jYXRhbG9nCisgICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1 bWVudHMocHIub2lkKSwgJycpIHx8ICcpJyBBUyBuYW1lLAorICAgIGxhbm5h bWUsIHBnX2dldF91c2VyYnlpZChwcm9vd25lcikgQVMgZnVuY293bmVyLCBk ZXNjcmlwdGlvbgorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBw Z190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBw Z19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitMRUZUIE9VVEVS IEpPSU4KKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9 cHIub2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX3Byb2MnOjpyZWdjbGFzcykK K1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBwci5wcm90 eXBlID0gJzEnOjpjaGFyCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2Np ZH19OjpvaWQKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywg J2V2ZW50X3RyaWdnZXInKQorT1JERVIgQlkKKyAgICBwcm9uYW1lOwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9w cm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvcHJvcGVydGllcy5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9w cGFzL3NxbC85LjVfcGx1cy9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjc4Mjk4Ci0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvcHJvcGVydGllcy5zcWwKQEAgLTAs MCArMSwzMSBAQAorU0VMRUNUCisgICAgcHIub2lkLCBwci54bWluLCBwci4q LCBwci5wcm9zcmMgQVMgcHJvc3JjX2MsCisgICAgcHIucHJvbmFtZSBBUyBu YW1lLCBwZ19nZXRfZnVuY3Rpb25fcmVzdWx0KHByLm9pZCkgQVMgcHJvcmV0 dHlwZW5hbWUsCisgICAgdHlwbnMubnNwbmFtZSBBUyB0eXBuc3AsIGxhbm5h bWUsIHByb2FyZ25hbWVzLCBvaWR2ZWN0b3J0eXBlcyhwcm9hcmd0eXBlcykg QVMgcHJvYXJndHlwZW5hbWVzLAorICAgIHBnX2dldF9leHByKHByb2FyZ2Rl ZmF1bHRzLCAncGdfY2F0YWxvZy5wZ19jbGFzcyc6OnJlZ2NsYXNzKSBBUyBw cm9hcmdkZWZhdWx0dmFscywKKyAgICBwcm9uYXJnZGVmYXVsdHMsIHByb2Nv bmZpZywgcGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBBUyBmdW5jb3duZXIs IGRlc2NyaXB0aW9uLAorICAgIChTRUxFQ1QKKyAgICAgICAgYXJyYXlfYWdn KHByb3ZpZGVyIHx8ICc9JyB8fCBsYWJlbCkKKyAgICBGUk9NCisgICAgICAg IHBnX3Noc2VjbGFiZWwgc2wxCisgICAgV0hFUkUKKyAgICAgICAgc2wxLm9i am9pZD1wci5vaWQpIEFTIHNlY2xhYmVscworRlJPTQorICAgIHBnX3Byb2Mg cHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5 cGUKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgdHlwbnMgT04gdHlwbnMub2lk PXR5cC50eXBuYW1lc3BhY2UKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcg T04gbG5nLm9pZD1wcm9sYW5nCitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19k ZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9cHIub2lkIEFORCBkZXMu Y2xhc3NvaWQ9J3BnX3Byb2MnOjpyZWdjbGFzcykKK1dIRVJFCisgICAgcHJv aXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9 fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdl dmVudF90cmlnZ2VyJykKK3slIGlmIGZuaWQgJX0KKyAgICBBTkQgcHIub2lk ID0ge3tmbmlkfX06Om9pZAoreyUgZW5kaWYgJX0KK09SREVSIEJZCisgICAg cHJvbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL3VwZGF0 ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3By b2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy91cGRhdGUuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiZjY3NzAKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy91cGRhdGUuc3FsCkBAIC0w LDAgKzEsMTI4IEBACit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvc2Vj dXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNy b3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAl fQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ZhcmlhYmxlLm1hY3Jv cycgYXMgVkFSSUFCTEUgJX17JSBpZiBkYXRhICV9Cit7JSBzZXQgbmFtZSA9 IG9fZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgJX0KK3slIGlmIGRh dGEubmFtZSAhPSBvX2RhdGEubmFtZSAlfQorQUxURVIgUFJPQ0VEVVJFIHt7 IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEubmFt ZSkgfX17JSBpZiBvX2RhdGEucHJvYXJndHlwZW5hbWVzICV9KHt7IG9fZGF0 YS5wcm9hcmd0eXBlbmFtZXMgfX0peyUgZW5kaWYgJX0KKworICAgIFJFTkFN RSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsKK3slIHNldCBu YW1lID0gZGF0YS5uYW1lICV9Cit7JSBlbmRpZiAlfQorCit7JSBlbmRpZiAt JX0KK3slIGlmIGRhdGEuY2hhbmdlX2Z1bmMgICV9CitDUkVBVEUgT1IgUkVQ TEFDRSBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1l c3BhY2UsIG5hbWUpIH19eyUgaWYgZGF0YS5hcmd1bWVudHMgJX0oCit7JSBm b3IgcCBpbiBkYXRhLmFyZ3VtZW50cyAlfXslIGlmIHAuYXJnbW9kZSAlfXt7 cC5hcmdtb2RlfX17JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFtZSAlfSB7eyBj b25ufHF0SWRlbnQocC5hcmduYW1lKSB9fXslIGVuZGlmICV9eyUgaWYgcC5h cmd0eXBlICV9IHt7cC5hcmd0eXBlfX17JSBlbmRpZiAlfXslIGlmIHAuYXJn ZGVmdmFsICV9IERFRkFVTFQge3twLmFyZ2RlZnZhbH19eyUgZW5kaWYgJX0K K3slIGlmIG5vdCBsb29wLmxhc3QgJX0sIHslIGVuZGlmICV9Cit7JSBlbmRm b3IgJX0KKykKK3slIGVuZGlmICV9CisKK3slIGlmICgncHJvbGVha3Byb29m JyBpbiBkYXRhIGFuZCBkYXRhLnByb2xlYWtwcm9vZikgb3IgKCdwcm9sZWFr cHJvb2YnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvbGVha3Byb29mKSAl fUxFQUtQUk9PRnslIGVsc2UgJX1OT1QgTEVBS1BST09GeyUgZW5kaWYgJX0K K3slIGlmICgncHJvaXNzdHJpY3QnIGluIGRhdGEgYW5kIGRhdGEucHJvaXNz dHJpY3QpIG9yICgncHJvaXNzdHJpY3QnIG5vdCBpbiBkYXRhIGFuZCBvX2Rh dGEucHJvaXNzdHJpY3QpICV9IFNUUklDVHslIGVuZGlmICV9Cit7JSBpZiAo J3Byb3NlY2RlZicgaW4gZGF0YSBhbmQgZGF0YS5wcm9zZWNkZWYpIG9yICgn cHJvc2VjZGVmJyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb3NlY2RlZikg JX0gU0VDVVJJVFkgREVGSU5FUnslIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9j b3N0ICV9CisKK0NPU1Qge3tkYXRhLnByb2Nvc3R9fXslIGVsaWYgb19kYXRh LnByb2Nvc3QgJX0gQ09TVCB7e29fZGF0YQorLnByb2Nvc3R9fSB7JSBlbmRp ZiAlfXslIGlmIGRhdGEucHJvcm93cyAlfQorCitST1dTIHt7ZGF0YS5wcm9y b3dzfX0geyUgZWxpZiBvX2RhdGEucHJvcm93cyAlfSBST1dTIHt7b19kYXRh CisucHJvcm93c319IHslIGVuZGlmIC0lfXslIGlmIGRhdGEubWVyZ2VkX3Zh cmlhYmxlcyAlfQorCit7JSBmb3IgdiBpbiBkYXRhLm1lcmdlZF92YXJpYWJs ZXMgJX0KKworU0VUIHt7IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYu dmFsdWV8cXRMaXRlcmFsIH19eyUgZW5kZm9yIC0lfQoreyUgZW5kaWYgJX0K KworQVMKK3slIGlmIGRhdGEucHJvc3JjICV9e3sgZGF0YS5wcm9zcmMgfX17 JSBlbHNlICV9e3sgb19kYXRhLnByb3NyYyB9fXslIGVuZGlmIC0lfTsKK3sl IGVuZGlmIC0lfQorCisKK3slIGlmIGRhdGEuZnVuY293bmVyICV9CisKK0FM VEVSIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVz cGFjZSwgbmFtZSkgfX17JSBpZiBvX2RhdGEucHJvYXJndHlwZW5hbWVzICV9 KHt7IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0peyUgZW5kaWYgJX0KKyAg ICBPV05FUiBUTyB7eyBkYXRhLmZ1bmNvd25lciB9fTsKK3slIGVuZGlmIC0l fQorCisKK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdl IHByaXZpbGVkZ2VzICN9Cit7JSBpZiBkYXRhLmFjbCAlfQorCit7JSBpZiAn ZGVsZXRlZCcgaW4gZGF0YS5hY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEu YWNsLmRlbGV0ZWQgJX0KK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAn UFJPQ0VEVVJFJywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEKKy5wcm9u YW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBpZiAnY2hhbmdlZCcgaW4gZGF0 YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuYWNsLmNoYW5nZWQg JX0KKwore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICdQUk9DRURVUkUn LCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0YQorLnByb25hbWVzcGFjZSwg b19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3t7IFBSSVZJTEVHRS5TRVQo Y29ubiwgJ1BST0NFRFVSRScsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53 aXRob3V0X2dyYW50LAorIHByaXYud2l0aF9ncmFudCwgb19kYXRhLnByb25h bWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZv ciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGlmICdhZGRlZCcgaW4gZGF0YS5h Y2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuYWNsLmFkZGVkICV9Cit7eyBQ UklWSUxFR0UuU0VUKGNvbm4sICdQUk9DRURVUkUnLCBwcml2LmdyYW50ZWUs IG5hbWUsIHByaXYud2l0aG91dF9ncmFudCwKKyBwcml2LndpdGhfZ3JhbnQs IG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMp IH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAtJX0K KworCit7JSBpZiBkYXRhLmNoYW5nZV9mdW5jID09IEZhbHNlICV9Cit7JSBp ZiBkYXRhLnZhcmlhYmxlcyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEu dmFyaWFibGVzIGFuZCBkYXRhLnZhcmlhYmxlcy5kZWxldGVkfGxlbmd0aCA+ IDAgJX0KKwore3sgVkFSSUFCTEUuVU5TRVQoY29ubiwgJ1BST0NFRFVSRScs IG5hbWUsIGRhdGEudmFyaWFibGVzLmRlbGV0ZWQsIG9fZGF0YQorLnByb25h bWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGlm IC0lfQoreyUgaWYgJ21lcmdlZF92YXJpYWJsZXMnIGluIGRhdGEgYW5kIGRh dGEubWVyZ2VkX3ZhcmlhYmxlc3xsZW5ndGggPiAwICV9CisKK3t7IFZBUklB QkxFLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgbmFtZSwgZGF0YS5tZXJnZWRf dmFyaWFibGVzLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJn dHlwZW5hbWVzKSB9fQoreyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0KK3sl IGVuZGlmIC0lfQorCit7JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJl bHMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xh YmVscy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xh YmVscy5kZWxldGVkICV9CisKK3t7IFNFQ0xBQkxFLlVOU0VUKGNvbm4sICdQ Uk9DRURVUkUnLCBuYW1lLCByLnByb3ZpZGVyLCBvX2RhdGEucHJvbmFtZXNw YWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9 Cit7JSBlbmRpZiAtJX0KK3slIGlmICdhZGRlZCcgaW4gc2VjbGFiZWxzIGFu ZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4g c2VjbGFiZWxzLmFkZGVkICV9CisKK3t7IFNFQ0xBQkxFLlNFVChjb25uLCAn UFJPQ0VEVVJFJywgbmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJl bCwgb19kYXRhCisucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5h bWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdj aGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5jaGFuZ2VkfGxl bmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5jaGFuZ2VkICV9 CisKK3t7IFNFQ0xBQkxFLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgbmFtZSwg ci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCwgb19kYXRhCisucHJvbmFt ZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAl fQorCitDT01NRU5UIE9OIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQob19k YXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX17JSBpZiBvX2RhdGEucHJvYXJn dHlwZW5hbWVzICV9KHt7IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0peyUg ZW5kaWYgJX0KKworICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRMaXRl cmFsIH19OworeyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEucHJvbmFtZXNw YWNlICV9CisKK0FMVEVSIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQob19k YXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX17JSBpZiBvX2RhdGEucHJvYXJn dHlwZW5hbWVzICV9KHt7IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0peyUg ZW5kaWYgJX0KKworICAgIFNFVCBTQ0hFTUEge3sgY29ubnxxdElkZW50KGRh dGEucHJvbmFtZXNwYWNlKSB9fTsKK3slIGVuZGlmIC0lfQorCit7JSBlbmRp ZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvdmFyaWFibGVz LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJv Y2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL3ZhcmlhYmxlcy5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTIzM2M3MQotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL3ZhcmlhYmxlcy5zcWwK QEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBuYW1lLCB2YXJ0eXBlLCBt aW5fdmFsLCBtYXhfdmFsLCBlbnVtdmFscworRlJPTQorICAgIHBnX3NldHRp bmdzCitXSEVSRQorICAgIGNvbnRleHQgaW4gKCd1c2VyJywgJ3N1cGVydXNl cicpOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVtcGxhdGVzL21h Y3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUubWFjcm9zIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGVtcGxhdGVzL21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUubWFjcm9z CmluZGV4IDAyZjMzMDcuLjA4ZDllNWIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RlbXBsYXRlcy9tYWNyb3MvZnVuY3Rpb25zL3ZhcmlhYmxlLm1h Y3JvcworKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90ZW1wbGF0ZXMvbWFjcm9zL2Z1 bmN0aW9ucy92YXJpYWJsZS5tYWNyb3MKQEAgLTIsMTIgKzIsMTMgQEAKIHsj IE1hY3JvcyBmb3IgVmFyaWFibGVzIChmdW5jdGlvbnMgbW9kdWxlKSAgICAg ICN9CiB7IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjfQogeyUgbWFjcm8gU0VUKGNvbm4sIG9iamVjdF90eXBlLCBv YmplY3RfbmFtZSwgb3B0aW9ucywgc2NoZW1hLCBmdW5jX2FyZ3MpIC0lfQot QUxURVIge3tvYmplY3RfdHlwZX19IHt7IGNvbm58cXRJZGVudChzY2hlbWEs IG9iamVjdF9uYW1lKSB9fSh7e2Z1bmNfYXJnc319KQotICAgIFNFVCAoeyUg Zm9yIG9wdCBpbiBvcHRpb25zICV9eyUgaWYgbG9vcC5pbmRleCAhPSAxICV9 Ci0sIHslIGVuZGlmICV9e3sgY29ubnxxdElkZW50KG9wdC5uYW1lKSB9fT17 eyBvcHQudmFsdWV8cXRMaXRlcmFsIH19eyUgZW5kZm9yICV9KTsKK0FMVEVS IHt7b2JqZWN0X3R5cGV9fSB7eyBjb25ufHF0SWRlbnQoc2NoZW1hLCBvYmpl Y3RfbmFtZSkgfX0oe3tmdW5jX2FyZ3N9fSl7JSBmb3Igb3B0IGluIG9wdGlv bnMgJX0KKworICAgIFNFVCB7eyBjb25ufHF0SWRlbnQob3B0Lm5hbWUpIH19 PXt7IG9wdC52YWx1ZXxxdExpdGVyYWwgfX17JQorZW5kZm9yICV9OwogeyUt IGVuZG1hY3JvICV9CiB7JSBtYWNybyBVTlNFVChjb25uLCBvYmplY3RfdHlw ZSwgb2JqZWN0X25hbWUsIG9wdGlvbnMsIHNjaGVtYSwgZnVuY19hcmdzKSAt JX0KIEFMVEVSIHt7b2JqZWN0X3R5cGV9fSB7eyBjb25ufHF0SWRlbnQoc2No ZW1hLCBvYmplY3RfbmFtZSkgfX0oe3tmdW5jX2FyZ3N9fSkKLSAgICBSRVNF VCAoeyUgZm9yIG9wdCBpbiBvcHRpb25zICV9eyUgaWYgbG9vcC5pbmRleCAh PSAxICV9Ci0sIHslIGVuZGlmICV9e3sgY29ubnxxdElkZW50KG9wdC5uYW1l KSB9fXslIGVuZGZvciAlfSk7CisgICAgUkVTRVQgeyUgZm9yIG9wdCBpbiBv cHRpb25zICV9eyUgaWYgbG9vcC5pbmRleCAhPSAxICV9CissIHslIGVuZGlm ICV9e3sgY29ubnxxdElkZW50KG9wdC5uYW1lKSB9fXslIGVuZGZvciAlfTsK IHslLSBlbmRtYWNybyAlfQo= --089e0129483aeace6f052dc8b026 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 --089e0129483aeace6f052dc8b026--