Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fSdRH-0000EL-8S for pgadmin-hackers@arkaria.postgresql.org; Tue, 12 Jun 2018 07:09:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fSdRF-0005nn-9g for pgadmin-hackers@arkaria.postgresql.org; Tue, 12 Jun 2018 07:09:57 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fSdRE-0005nd-Dx for pgadmin-hackers@lists.postgresql.org; Tue, 12 Jun 2018 07:09:57 +0000 Received: from mail-ot0-x242.google.com ([2607:f8b0:4003:c0f::242]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1fSdR8-0000Uq-13 for pgadmin-hackers@postgresql.org; Tue, 12 Jun 2018 07:09:54 +0000 Received: by mail-ot0-x242.google.com with SMTP id q17-v6so26867176otg.2 for ; Tue, 12 Jun 2018 00:09:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=OEbp39T2TF7JCQ0QX+ME9TvM1JLGCbeXRLB1LxQZSV4=; b=nCumGmzjbZzgkB89h02g70wTlCkGZngTGxgW0f0TZ8tf2uRInD8fU386FqnjM7S2WW I24yBDO/lqpzD+BJI46apu4TspGFdb194IhyGlSm21LB7sZY7F0Egl+iw08K30Hkh5V8 3NFjwYuphhZjh8vsLqTLUA/hCDODvJ2VlD0uUtR77u5iRnn8U+zmJJIKrmhxjM2i2Nyc fv/gZuaaH96uE4NVYH/Yb1H60+gQLue/9HQVQSN+iqS47o/WcJGr469jvC3bdEnKJUll cg0U4jJ7rTJ7EAqWkxBPDHnrJoQBMci2hd0R/ZjCnbrmV8Yr5fA0r+hXGcUUTzHEilID zbgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=OEbp39T2TF7JCQ0QX+ME9TvM1JLGCbeXRLB1LxQZSV4=; b=jaI87RpZa3fOdMGGpk08sp2vFCwXgUmfekqM01azwBrpcOfaYkS6sGXpIh62+5i8cL sggskS+sTVTjN3Rw2Ois9sUupLpFv1LXNfEoOpLyJ6Ei6n8WGE/ChD5T0VSSDdvq3/Lb ORbyDk8bOl6UMh+8NyzyjhiHNAIeN+z8W+lWHM9i0DhNwU0fQP5XS1bdIw/AiUiETgTe WFIOG4u4XpTlOQQJ+tlMROxKjGZxgaprhaPqEU4cNKd/ILK/JF5sx7i+zQD0Aa0Y0+kG rd3sLui51bYaaDIE94c1Sdf2sbtuQ++MM500aTSfk2ECw6cPXHMrxv0NYkKKVIMQxIKU LXgg== X-Gm-Message-State: APt69E3mrRiJD+dGx/g5SLFeLc5UDeC/htdA6hGQxwiuaIyD96EuwLIT TcEkoLuPTgVadZCaUZeLGkuFV3oCKkzxAIbeRXnM9Q== X-Google-Smtp-Source: ADUXVKJr6S3lzH/4ZpSxCdwuePAdm3YRq69rzRvdv9SSehRApwgwWQ/7rT0HeFUHSjFsDfdrnpS1SrR34DvZWlUdSbU= X-Received: by 2002:a9d:428c:: with SMTP id r12-v6mr1485760ote.296.1528787389252; Tue, 12 Jun 2018 00:09:49 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a4a:4081:0:0:0:0:0 with HTTP; Tue, 12 Jun 2018 00:09:48 -0700 (PDT) In-Reply-To: References: From: Khushboo Vashi Date: Tue, 12 Jun 2018 12:39:48 +0530 Message-ID: Subject: Re: [pgAdmin4][Patch]: RM 3362 - Fix the functions for PG v11, and add support procedure for PG v11 To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="00000000000046932e056e6c8d32" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --00000000000046932e056e6c8d32 Content-Type: multipart/alternative; boundary="00000000000046932b056e6c8d30" --00000000000046932b056e6c8d30 Content-Type: text/plain; charset="UTF-8" Hi, Please find the attached updated patch. On Fri, Jun 8, 2018 at 2:21 PM, Dave Page wrote: > Hi > > On Thu, Jun 7, 2018 at 11:27 AM, Khushboo Vashi < > khushboo.vashi@enterprisedb.com> wrote: > >> Hi, >> >> Please ignore my previous patch, find the attached updated one. >> > > I found a couple of issues with this: > > - Clicking the + button on the Parameters tab does nothing in either > Create or Edit modes > > Fixed > - The debugger fails to start (though, perhaps that's because the plugin > doesn't have Ashesh's latest patches in it). > > FYI, I was trying to test the debugger with: > > -- PROCEDURE: public.dummy_proc(integer) > > -- DROP PROCEDURE public.dummy_proc(integer); > > CREATE OR REPLACE PROCEDURE public.dummy_proc( > id integer) > LANGUAGE 'plpgsql' > > AS $BODY$BEGIN > raise notice 'id is %', id; > END;$BODY$; > > Fixed. Tested with the latest code of the plugin. > Thanks! > > Thanks, Khushboo > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --00000000000046932b056e6c8d30 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

Please find the attached= updated patch.

On Fri, Jun 8, 2018 at 2:21 PM, Dave Page <dpage@pgadmin.org> wrote:
Hi

On Th= u, Jun 7, 2018 at 11:27 AM, Khushboo Vashi <khushboo.vashi@e= nterprisedb.com> wrote:
Hi,

Please ignore my previous patch, find the attached updated one.<= /div>

I found a couple of issu= es with this:

- Clicking the + button on the Param= eters tab does nothing in either Create or Edit modes

<= /div>
Fixed=C2=A0
- The debugger fails to start (though, perhaps that'= ;s because the plugin doesn't have Ashesh's latest patches in it).<= /div>

FYI, I was trying to test the debugger with:
=

-- PROCEDURE: public.dummy_proc(integer)

-- DROP PROCEDURE public.dummy_proc(integer);
CREATE OR REPLACE=C2=A0 PROCEDURE public.dummy_proc(
= id integer)
LANGUAGE= 'plpgsql'

AS $BODY$BEGIN
=C2=A0= raise notice 'id is %', id;
END;$BODY$;
=
Fixed. Tested with the latest= code of the plugin.
<= div class=3D"gmail_extra">
Thanks= !

=
Thanks,
Khushboo=C2= =A0
--
<= div class=3D"m_-8139800853423521114gmail_signature">Dave Page
Blog: http://pgsnake.blogsp= ot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
T= he Enterprise PostgreSQL Company

--00000000000046932b056e6c8d30-- --00000000000046932e056e6c8d32 Content-Type: text/x-patch; charset="US-ASCII"; name="RM_3362_ver2.patch" Content-Disposition: attachment; filename="RM_3362_ver2.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jibcic7f0 ZGlmZiAtLWdpdCBhL2RvY3MvZW5fVVMvcHJvY2VkdXJlX2RpYWxvZy5yc3QgYi9kb2NzL2VuX1VT L3Byb2NlZHVyZV9kaWFsb2cucnN0CmluZGV4IGRhNWYzNGYuLjgyYzIyMjcgMTAwNjQ0Ci0tLSBh L2RvY3MvZW5fVVMvcHJvY2VkdXJlX2RpYWxvZy5yc3QKKysrIGIvZG9jcy9lbl9VUy9wcm9jZWR1 cmVfZGlhbG9nLnJzdApAQCAtNCw3ICs0LDcgQEAKIFRoZSBQcm9jZWR1cmUgRGlhbG9nCiAqKioq KioqKioqKioqKioqKioqKgogCi1Vc2UgdGhlICpQcm9jZWR1cmUqIGRpYWxvZyB0byBjcmVhdGUg YSBwcm9jZWR1cmU7IHByb2NlZHVyZXMgYXJlIHN1cHBvcnRlZCBieSBFREIgUG9zdGdyZXMgQWR2 YW5jZWQgU2VydmVyLiBUaGUgKlByb2NlZHVyZSogZGlhbG9nIGFsbG93cyB5b3UgdG8gaW1wbGVt ZW50IG9wdGlvbnMgb2YgdGhlIENSRUFURSBQUk9DRURVUkUgY29tbWFuZDsgZm9yIG1vcmUgaW5m b3JtYXRpb24gYWJvdXQgdGhlIENSRUFURSBQUk9DRURVUkUgU1FMIGNvbW1hbmQsIHBsZWFzZSBz ZWUgdGhlIERhdGFiYXNlIENvbXBhdGliaWxpdHkgZm9yIE9yYWNsZSBEZXZlbG9wZXIncywgYXZh aWxhYmxlIGF0OgorVXNlIHRoZSAqUHJvY2VkdXJlKiBkaWFsb2cgdG8gY3JlYXRlIGEgcHJvY2Vk dXJlOyBwcm9jZWR1cmVzIGFyZSBzdXBwb3J0ZWQgYnkgUG9zdGdyZVNRTCB2MTEgYW5kIEVEQiBQ b3N0Z3JlcyBBZHZhbmNlZCBTZXJ2ZXIuIFRoZSAqUHJvY2VkdXJlKiBkaWFsb2cgYWxsb3dzIHlv dSB0byBpbXBsZW1lbnQgb3B0aW9ucyBvZiB0aGUgQ1JFQVRFIFBST0NFRFVSRSBjb21tYW5kOyBm b3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgQ1JFQVRFIFBST0NFRFVSRSBTUUwgY29tbWFu ZCwgcGxlYXNlIHNlZSB0aGUgRGF0YWJhc2UgQ29tcGF0aWJpbGl0eSBmb3IgT3JhY2xlIERldmVs b3BlcidzLCBhdmFpbGFibGUgYXQ6CiAKICAgICAgaHR0cDovL3d3dy5lbnRlcnByaXNlZGIuY29t CiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9f X2luaXRfXy5weQppbmRleCBkOGU3YTY4Li43YjJiYTJkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL19faW5pdF9fLnB5CkBAIC0xNTAyLDcg KzE1MDIsMTAgQEAgY2xhc3MgRnVuY3Rpb25WaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVS ZWFkZXIpOgogICAgICAgICAgICAgbmFtZSA9IG5hbWUucmVwbGFjZShhcmcsIGZvcm1hdHRlZF9h cmcpCiAKICAgICAgICAgbmFtZSA9IG5hbWUucmVwbGFjZSgnKScsICdcbiknKQotICAgICAgICBz cWwgPSAiRVhFQyB7MH0iLmZvcm1hdChuYW1lKQorICAgICAgICBpZiBzZWxmLm1hbmFnZXIuc2Vy dmVyX3R5cGUgPT0gJ3BnJzoKKyAgICAgICAgICAgIHNxbCA9ICJDQUxMIHswfSIuZm9ybWF0KG5h bWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzcWwgPSAiRVhFQyB7MH0iLmZvcm1hdChu YW1lKQogCiAgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKHJlc3BvbnNlPXNxbCkKIApAQCAt MTU5MiwxMCArMTU5NSwxMSBAQCBjbGFzcyBQcm9jZWR1cmVNb2R1bGUoU2NoZW1hQ2hpbGRNb2R1 bGUpOgogICAgICAgICAiIiIKICAgICAgICAgc3VwZXIoUHJvY2VkdXJlTW9kdWxlLCBzZWxmKS5f X2luaXRfXygqYXJncywgKiprd2FyZ3MpCiAKLSAgICAgICAgc2VsZi5taW5fdmVyID0gOTAxMDAK KyAgICAgICAgc2VsZi5taW5fdmVyID0gMTEwMDAwCiAgICAgICAgIHNlbGYubWF4X3ZlciA9IE5v bmUKKyAgICAgICAgc2VsZi5taW5fcHBhc3ZlciA9IDkwMTAwCiAgICAgICAgIHNlbGYubWluX2dw ZGJ2ZXIgPSAxMDAwMDAwMDAwCi0gICAgICAgIHNlbGYuc2VydmVyX3R5cGUgPSBbJ3BwYXMnXQor ICAgICAgICBzZWxmLnNlcnZlcl90eXBlID0gWydwZycsICdwcGFzJ10KIAogICAgIGRlZiBnZXRf bm9kZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CiAgICAgICAgICIiIgpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3N0YXRpYy9qcy9wcm9jZWR1cmUuanMgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvc3Rh dGljL2pzL3Byb2NlZHVyZS5qcwppbmRleCAwNDFiNTA5Li4zYzZiNjg2IDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvc3RhdGljL2pzL3Byb2NlZHVyZS5qcworKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvc3Rh dGljL2pzL3Byb2NlZHVyZS5qcwpAQCAtNzEsMTEgKzcxLDcgQEAgZGVmaW5lKCdwZ2FkbWluLm5v ZGUucHJvY2VkdXJlJywgWwogICAgICAgICBpZiAoJ2NhdGFsb2cnIGluIG5vZGVfaGllcmFyY2h5 KQogICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICAvLyBQcm9jZWR1cmVzIHN1cHBv cnRlZCBvbmx5IGluIFBQQVMKLSAgICAgICAgcmV0dXJuICgKLSAgICAgICAgICAnc2VydmVyJyBp biBub2RlX2hpZXJhcmNoeSAmJgotICAgICAgICAgICAgbm9kZV9oaWVyYXJjaHlbJ3NlcnZlcidd LnNlcnZlcl90eXBlID09ICdwcGFzJwotICAgICAgICApOworICAgICAgICByZXR1cm4gdHJ1ZTsK ICAgICAgIH0sCiAgICAgICBtb2RlbDogRnVuY3Rpb24ubW9kZWwuZXh0ZW5kKHsKICAgICAgICAg ZGVmYXVsdHM6IF8uZXh0ZW5kKHt9LApAQCAtMTAzLDIwICs5OSwyNCBAQCBkZWZpbmUoJ3BnYWRt aW4ubm9kZS5wcm9jZWR1cmUnLCBbCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg ICB9CiAgICAgICAgICAgc3dpdGNoKHRoaXMubmFtZSl7Ci0gICAgICAgICAgY2FzZSAncHJvdm9s YXRpbGl0eSc6CisgICAgICAgICAgY2FzZSAncHJvdm9sYXRpbGUnOgogICAgICAgICAgIGNhc2Ug J3Byb2lzc3RyaWN0JzoKLSAgICAgICAgICBjYXNlICdwcm9zZWNkZWYnOgogICAgICAgICAgIGNh c2UgJ3Byb2Nvc3QnOgogICAgICAgICAgIGNhc2UgJ3Byb2xlYWtwcm9vZic6CisgICAgICAgICAg ICByZXR1cm4gKHRoaXMubm9kZV9pbmZvLnNlcnZlci52ZXJzaW9uIDwgOTA1MDAgfHwgdGhpcy5u b2RlX2luZm8uc2VydmVyLnNlcnZlcl90eXBlICE9ICdwcGFzJyk7CiAgICAgICAgICAgY2FzZSAn dmFyaWFibGVzJzoKKyAgICAgICAgICBjYXNlICdwcm9zZWNkZWYnOgogICAgICAgICAgICAgcmV0 dXJuIHRoaXMubm9kZV9pbmZvLnNlcnZlci52ZXJzaW9uIDwgOTA1MDA7CiAgICAgICAgICAgY2Fz ZSAncHJvcm93cyc6CiAgICAgICAgICAgICB2YXIgc2VydmVyID0gdGhpcy5ub2RlX2luZm8uc2Vy dmVyOwogICAgICAgICAgICAgcmV0dXJuICEoc2VydmVyLnZlcnNpb24gPj0gOTA1MDAgJiYgbS5n ZXQoJ3Byb3JldHNldCcpID09IHRydWUpOwogICAgICAgICAgIGNhc2UgJ2Z1bmNvd25lcic6Ci0g ICAgICAgICAgY2FzZSAnbGFubmFtZSc6CiAgICAgICAgICAgY2FzZSAncHJvYXJncyc6CiAgICAg ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICBjYXNlICdwcm9wYXJhbGxlbCc6CisgICAg ICAgICAgICByZXR1cm4gKHRoaXMubm9kZV9pbmZvLnNlcnZlci52ZXJzaW9uIDwgOTA2MDAgfHwg dGhpcy5ub2RlX2luZm8uc2VydmVyLnNlcnZlcl90eXBlICE9ICdwcGFzJyk7CisgICAgICAgICAg Y2FzZSAnbGFubmFtZSc6CisgICAgICAgICAgICByZXR1cm4gdGhpcy5ub2RlX2luZm8uc2VydmVy LnZlcnNpb24gPCAxMTAwMDA7CiAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVy biBmYWxzZTsKICAgICAgICAgICB9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL2NvbGxfc3RhdHMuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9jb2xsX3N0YXRzLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYzRmNzM0Ci0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9jb2xsX3N0YXRzLnNx bApAQCAtMCwwICsxLDIwIEBACitTRUxFQ1QKKyAgICBmdW5jbmFtZSBBUyB7eyBjb25ufHF0SWRl bnQoXygnTmFtZScpKSB9fSwKKyAgICBjYWxscyBBUyB7eyBjb25ufHF0SWRlbnQoXygnTnVtYmVy IG9mIGNhbGxzJykpIH19LAorICAgIHRvdGFsX3RpbWUgQVMge3sgY29ubnxxdElkZW50KF8oJ1Rv dGFsIHRpbWUnKSkgfX0sCisgICAgc2VsZl90aW1lIEFTIHt7IGNvbm58cXRJZGVudChfKCdTZWxm IHRpbWUnKSkgfX0KK0ZST00KKyAgICBwZ19zdGF0X3VzZXJfZnVuY3Rpb25zCitXSEVSRQorICAg IHNjaGVtYW5hbWUgPSB7e3NjaGVtYV9uYW1lfHF0TGl0ZXJhbH19CisgICAgQU5EIGZ1bmNpZCBJ TiAoCisgICAgICAgIFNFTEVDVCBwLm9pZAorICAgICAgICBGUk9NCisgICAgICAgICAgICBwZ19w cm9jIHAKKyAgICAgICAgSk9JTgorICAgICAgICAgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1w LnByb3JldHR5cGUKKyAgICAgICAgV0hFUkUKKyAgICAgICAgICAgIHAucHJva2luZCBJTiAoJ2Yn LCAndycpCisgICAgICAgICAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50 X3RyaWdnZXInKQorICAgICkKK09SREVSIEJZIGZ1bmNuYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9jcmVhdGUuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9jcmVhdGUuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxY2RmNTEKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL2NyZWF0 ZS5zcWwKQEAgLTAsMCArMSw3MCBAQAoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3NlY3Vy aXR5Lm1hY3JvcycgYXMgU0VDTEFCRUwgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9w cml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0 aW9ucy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9Cit7JSBzZXQgaXNfY29sdW1ucyA9 IFtdICV9Cit7JSBpZiBkYXRhICV9Cit7JSBpZiBxdWVyeV9mb3IgPT0gJ3NxbF9wYW5lbCcgYW5k IGZ1bmNfZGVmIGlzIGRlZmluZWQgJX0KK0NSRUFURXslIGlmIHF1ZXJ5X3R5cGUgaXMgZGVmaW5l ZCAlfXt7JyBPUiBSRVBMQUNFJ319eyUgZW5kaWYgJX0gRlVOQ1RJT04ge3tmdW5jX2RlZn19Cit7 JSBlbHNlICV9CitDUkVBVEV7JSBpZiBxdWVyeV90eXBlIGlzIGRlZmluZWQgJX17eycgT1IgUkVQ TEFDRSd9fXslIGVuZGlmICV9IEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVz cGFjZSwgZGF0YS5uYW1lKSB9fSh7JSBpZiBkYXRhLmFyZ3VtZW50cyAlfQoreyUgZm9yIHAgaW4g ZGF0YS5hcmd1bWVudHMgJX17JSBpZiBwLmFyZ21vZGUgJX17e3AuYXJnbW9kZX19IHslIGVuZGlm ICV9eyUgaWYgcC5hcmduYW1lICV9e3sgY29ubnxxdElkZW50KHAuYXJnbmFtZSkgfX0geyUgZW5k aWYgJX17JSBpZiBwLmFyZ3R5cGUgJX17eyBjb25ufHF0VHlwZUlkZW50KHAuYXJndHlwZSkgfX17 JSBlbmRpZiAlfXslIGlmIHAuYXJnZGVmdmFsICV9IERFRkFVTFQge3twLmFyZ2RlZnZhbH19eyUg ZW5kaWYgJX0KK3slIGlmIG5vdCBsb29wLmxhc3QgJX0sIHslIGVuZGlmICV9Cit7JSBlbmRmb3Ig JX0KK3slIGVuZGlmIC0lfQorKQoreyUgZW5kaWYgJX0KKyAgICBSRVRVUk5TeyUgaWYgZGF0YS5w cm9yZXRzZXQgYW5kIChkYXRhLnByb3JldHR5cGVuYW1lLnN0YXJ0c3dpdGgoJ1NFVE9GICcpIG9y IGRhdGEucHJvcmV0dHlwZW5hbWUuc3RhcnRzd2l0aCgnVEFCTEUnKSkgJX0ge3sgZGF0YS5wcm9y ZXR0eXBlbmFtZSB9fSB7JSBlbGlmIGRhdGEucHJvcmV0c2V0ICV9IFNFVE9GIHt7IGNvbm58cXRU eXBlSWRlbnQoZGF0YS5wcm9yZXR0eXBlbmFtZSkgfX17JSBlbHNlICV9IHt7IGNvbm58cXRUeXBl SWRlbnQoZGF0YS5wcm9yZXR0eXBlbmFtZSkgfX17JSBlbmRpZiAlfQorCisgICAgTEFOR1VBR0Ug e3sgZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fQoreyUgaWYgZGF0YS5wcm9jb3N0ICV9CisKKyAg ICBDT1NUIHt7ZGF0YS5wcm9jb3N0fX0KK3slIGVuZGlmICV9CisgICAgeyUgaWYgZGF0YS5wcm92 b2xhdGlsZSAlfXslIGlmIGRhdGEucHJvdm9sYXRpbGUgPT0gJ2knICV9SU1NVVRBQkxFeyUgZWxp ZiBkYXRhLnByb3ZvbGF0aWxlID09ICdzJyAlfVNUQUJMRXslIGVsc2UgJX1WT0xBVElMRXslIGVu ZGlmICV9IHslIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9sZWFrcHJvb2YgJX1MRUFLUFJPT0YgeyUg ZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvaXNzdHJpY3QgJX1TVFJJQ1QgeyUgZW5kaWYgJX0KK3sl IGlmIGRhdGEucHJvc2VjZGVmICV9U0VDVVJJVFkgREVGSU5FUiB7JSBlbmRpZiAlfQoreyUgaWYg ZGF0YS5wcm9pc3dpbmRvdyAlfVdJTkRPVyB7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5wcm9wYXJh bGxlbCBhbmQgKGRhdGEucHJvcGFyYWxsZWwgPT0gJ3InIG9yIGRhdGEucHJvcGFyYWxsZWwgPT0g J3MnKSAlfQoreyUgaWYgZGF0YS5wcm9wYXJhbGxlbCA9PSAncicgJX1QQVJBTExFTCBSRVNUUklD VEVEeyUgZWxpZiBkYXRhLnByb3BhcmFsbGVsID09ICdzJyAlfVBBUkFMTEVMIFNBRkV7JSBlbmRp ZiAlfXslIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5wcm9yb3dzIGFuZCAoZGF0YS5wcm9yb3dzIHwg aW50KSA+IDAgJX0KKworICAgIFJPV1Mge3tkYXRhLnByb3Jvd3N9fXslIGVuZGlmIC0lfXslIGlm IGRhdGEudmFyaWFibGVzICV9eyUgZm9yIHYgaW4gZGF0YS52YXJpYWJsZXMgJX0KKworICAgIFNF VCB7eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9fT17eyB2LnZhbHVlfHF0TGl0ZXJhbCB9fXslIGVu ZGZvciAlfQoreyUgZW5kaWYgJX0KKworQVMgeyUgaWYgZGF0YS5sYW5uYW1lID09ICdjJyAlfQor e3sgZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19LCB7eyBkYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9 fQoreyUgZWxzZSAlfQorJEJPRFkkCit7eyBkYXRhLnByb3NyYyB9fQorJEJPRFkkeyUgZW5kaWYg LSV9OworeyUgaWYgZGF0YS5mdW5jb3duZXIgJX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29ubnxx dElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19KHt7ZGF0YS5mdW5jX2FyZ3Nf d2l0aG91dH19KQorICAgIE9XTkVSIFRPIHt7IGNvbm58cXRJZGVudChkYXRhLmZ1bmNvd25lcikg fX07Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuYWNsICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFj bCAlfQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICJGVU5DVElPTiIsIHAuZ3JhbnRlZSwgZGF0 YS5uYW1lLCBwLndpdGhvdXRfZ3JhbnQsIHAud2l0aF9ncmFudCwgZGF0YS5wcm9uYW1lc3BhY2Us IGRhdGEuZnVuY19hcmdzX3dpdGhvdXQpfX0KK3slIGVuZGZvciAlfXslIGVuZGlmICV9Cit7JSBp ZiBkYXRhLnJldm9rZV9hbGwgJX0KKwore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICJGVU5D VElPTiIsICJQVUJMSUMiLCBkYXRhLm5hbWUsIGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLmZ1bmNf YXJnc193aXRob3V0KX19Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQor CitDT01NRU5UIE9OIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwg ZGF0YS5uYW1lKSB9fSh7e2RhdGEuZnVuY19hcmdzX3dpdGhvdXR9fSkKKyAgICBJUyB7eyBkYXRh LmRlc2NyaXB0aW9ufHF0TGl0ZXJhbCAgfX07Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuc2Vj bGFiZWxzICV9Cit7JSBmb3IgciBpbiBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYgci5sYWJlbCBh bmQgci5wcm92aWRlciAlfQorCit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgZGF0 YS5uYW1lLCByLnByb3ZpZGVyLCByLmxhYmVsLCBkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5mdW5j X2FyZ3Nfd2l0aG91dCkgfX0KK3slIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0l fQorCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wZy9zcWwvMTFfcGx1cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjU0MDA0NGMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwyMSBA QAoreyUgaWYgc2NpZCBhbmQgZm5pZCAlfQorU0VMRUNUCisgICAgcHIucHJvbmFtZSBhcyBuYW1l LCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRfZnVuY3Rpb25faWRlbnRp dHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMgZnVuY19hcmdzLAorICAgIG5zcG5h bWUKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9p ZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnBy b25hbWVzcGFjZQorV0hFUkUKKyAgICBwci5wcm9raW5kIElOICgnZicsICd3JykKKyAgICBBTkQg cHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3Ry aWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19OworeyUg ZW5kaWYgJX0KKworeyUgaWYgbmFtZSAlfQorRFJPUCBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQo bnNwbmFtZSwgbmFtZSkgfX17e2Z1bmNfYXJnc319eyUgaWYgY2FzY2FkZSAlfSBDQVNDQURFeyUg ZW5kaWYgJX07Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL2dldF9kZWZpbml0aW9uLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjI1ZGJmCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9nZXRf ZGVmaW5pdGlvbi5zcWwKQEAgLTAsMCArMSwxNSBAQAorU0VMRUNUCisgICAgcGdfZ2V0X2Z1bmN0 aW9uZGVmKHt7Zm5pZH19OjpvaWQpIEFTIGZ1bmNfZGVmLAorICAgIENPQUxFU0NFKHBnX2NhdGFs b2cucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgYXMKKyAg ICBmdW5jX3dpdGhfaWRlbnRpdHlfYXJndW1lbnRzLAorICAgIG5zcG5hbWUsCisgICAgcHIucHJv bmFtZSBhcyBwcm9uYW1lLAorICAgIENPQUxFU0NFKHBnX2NhdGFsb2cucGdfZ2V0X2Z1bmN0aW9u X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgYXMgZnVuY19hcmdzCitGUk9NCisgICAgcGdfcHJvYyBw cgorSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UK K1dIRVJFCisgICAgcHIucHJva2luZCBJTiAoJ2YnLCAndycpCisgICAgQU5EIHByb25hbWVzcGFj ZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX06Om9pZDsKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvZ2V0 X29pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVz L2dldF9vaWQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzYTIxMDcK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3Nx bC8xMV9wbHVzL2dldF9vaWQuc3FsCkBAIC0wLDAgKzEsMTcgQEAKK1NFTEVDVAorICAgIHByLm9p ZCwgcHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRf ZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMgbmFtZSwK KyAgICBsYW5uYW1lLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIGFzIGZ1bmNvd25lciwgcHIu cHJvbmFtZXNwYWNlIGFzIG5zcAorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190 eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcg T04gbG5nLm9pZD1wcm9sYW5nCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lk PXByLnByb25hbWVzcGFjZQorICAgIEFORCBuc3AubnNwbmFtZT17eyBuc3BuYW1lfHF0TGl0ZXJh bCB9fQorV0hFUkUKKyAgICBwci5wcm9raW5kIElOICgnZicsICd3JykKKyAgICBBTkQgdHlwbmFt ZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQorICAgIEFORCBwci5wcm9uYW1l ID0ge3sgbmFtZXxxdExpdGVyYWwgfX07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL25vZGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9ub2RlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi41ZGFlOGQxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9ub2RlLnNxbApAQCAtMCwwICsxLDIy IEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBn X2NhdGFsb2cucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykg fHwgJyknIGFzIG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBh cyBmdW5jb3duZXIsIGRlc2NyaXB0aW9uCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAg IHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdl IGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0 aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6 OnJlZ2NsYXNzKQorV0hFUkUKKyAgIHByLnByb2tpbmQgSU4gKCdmJywgJ3cnKQoreyUgaWYgZm5p ZCAlfQorICAgIEFORCBwci5vaWQgPSB7eyBmbmlkfHF0TGl0ZXJhbCB9fQoreyUgZW5kaWYgJX0K K3slIGlmIHNjaWQgJX0KKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAoreyUg ZW5kaWYgJX0KKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdn ZXInKQorT1JERVIgQlkKKyAgICBwcm9uYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvcHJvcGVydGllcy5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTBjMmNhMAotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvcHJvcGVy dGllcy5zcWwKQEAgLTAsMCArMSwzMyBAQAorU0VMRUNUCisgICAgcHIub2lkLCBwci54bWluLCBw ci4qLCBwci5wcm9zcmMgQVMgcHJvc3JjX2MsCisgICAgcHIucHJvbmFtZSBBUyBuYW1lLCBwZ19n ZXRfZnVuY3Rpb25fcmVzdWx0KHByLm9pZCkgQVMgcHJvcmV0dHlwZW5hbWUsCisgICAgdHlwbnMu bnNwbmFtZSBBUyB0eXBuc3AsIGxhbm5hbWUsIHByb2FyZ25hbWVzLCBvaWR2ZWN0b3J0eXBlcyhw cm9hcmd0eXBlcykgQVMgcHJvYXJndHlwZW5hbWVzLAorICAgIHBnX2dldF9leHByKHByb2FyZ2Rl ZmF1bHRzLCAncGdfY2F0YWxvZy5wZ19jbGFzcyc6OnJlZ2NsYXNzKSBBUyBwcm9hcmdkZWZhdWx0 dmFscywKKyAgICBwcm9uYXJnZGVmYXVsdHMsIHByb2NvbmZpZywgcGdfZ2V0X3VzZXJieWlkKHBy b293bmVyKSBBUyBmdW5jb3duZXIsIGRlc2NyaXB0aW9uLAorICAgIENBU0UgV0hFTiBwci5wcm9r aW5kID0gJ3cnIFRIRU4gVFJVRSBFTFNFIEZBTFNFIEVORCBBUyBwcm9pc3dpbmRvdywKKyAgICAo U0VMRUNUCisgICAgICAgIGFycmF5X2FnZyhwcm92aWRlciB8fCAnPScgfHwgbGFiZWwpCisgICAg RlJPTQorICAgICAgICBwZ19zZWNsYWJlbCBzbDEKKyAgICBXSEVSRQorICAgICAgICBzbDEub2Jq b2lkPXByLm9pZCkgQVMgc2VjbGFiZWxzCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAg IHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX25hbWVzcGFj ZSB0eXBucyBPTiB0eXBucy5vaWQ9dHlwLnR5cG5hbWVzcGFjZQorSk9JTgorICAgIHBnX2xhbmd1 YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rlc2Ny aXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfcHJv Yyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBwci5wcm9raW5kIElOICgnZicsICd3JykKK3slIGlm IGZuaWQgJX0KKyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX06Om9pZAoreyUgZWxzZSAlfQorICAg IEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCit7JSBlbmRpZiAlfQorICAgIEFORCB0 eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCitPUkRFUiBCWQorICAg IHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bn L3NxbC8xMV9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BnL3NxbC8xMV9wbHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uOTJiZDI0YgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvdXBkYXRlLnNxbApAQCAtMCwwICsxLDExNiBAQAoreyUg aW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCRUwgJX0K K3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxF R0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy92YXJpYWJsZS5tYWNyb3MnIGFzIFZB UklBQkxFICV9eyUgaWYgZGF0YSAlfQoreyUgc2V0IG5hbWUgPSBvX2RhdGEubmFtZSAlfQoreyUg aWYgZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KK0FMVEVS IEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEubmFt ZSkgfX0oe3sKK29fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgUkVOQU1FIFRPIHt7IGNv bm58cXRJZGVudChkYXRhLm5hbWUpIH19OworeyUgc2V0IG5hbWUgPSBkYXRhLm5hbWUgJX0KK3sl IGVuZGlmICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuY2hhbmdlX2Z1bmMgICV9CisKK0NS RUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNw YWNlLCBuYW1lKSB9fSh7JSBpZiBkYXRhLmFyZ3VtZW50cyAlfQoreyUgZm9yIHAgaW4gZGF0YS5h cmd1bWVudHMgJX17JSBpZiBwLmFyZ21vZGUgJX17e3AuYXJnbW9kZX19IHslIGVuZGlmICV9eyUg aWYgcC5hcmduYW1lICV9e3sgY29ubnxxdElkZW50KHAuYXJnbmFtZSkgfX0geyUgZW5kaWYgJX17 JSBpZiBwLmFyZ3R5cGUgJX17eyBjb25ufHF0VHlwZUlkZW50KHAuYXJndHlwZSkgfX17JSBlbmRp ZiAlfXslIGlmIHAuYXJnZGVmdmFsICV9IERFRkFVTFQge3twLmFyZ2RlZnZhbH19eyUgZW5kaWYg JX0KK3slIGlmIG5vdCBsb29wLmxhc3QgJX0seyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUg ZW5kaWYgLSV9CispCisgICAgUkVUVVJOUyB7eyBvX2RhdGEucHJvcmV0dHlwZW5hbWUgfX0KK3sl IGlmICdsYW5uYW1lJyBpbiBkYXRhICV9CisgICAgTEFOR1VBR0Uge3sgZGF0YS5sYW5uYW1lfHF0 TGl0ZXJhbCB9fSB7JSBlbHNlICV9CisgICAgTEFOR1VBR0Uge3sgb19kYXRhLmxhbm5hbWV8cXRM aXRlcmFsIH19CisgICAgeyUgZW5kaWYgJX17JSBpZiAncHJvdm9sYXRpbGUnIGluIGRhdGEgYW5k IGRhdGEucHJvdm9sYXRpbGUgJX17eyBkYXRhLnByb3ZvbGF0aWxlIH19IHslIGVsaWYgJ3Byb3Zv bGF0aWxlJyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb3ZvbGF0aWxlICV9e3sgb19kYXRhLnBy b3ZvbGF0aWxlIH19eyUgZW5kaWYgJX0KK3slIGlmICgncHJvbGVha3Byb29mJyBpbiBkYXRhIGFu ZCBkYXRhLnByb2xlYWtwcm9vZikgb3IgKCdwcm9sZWFrcHJvb2YnIG5vdCBpbiBkYXRhIGFuZCBv X2RhdGEucHJvbGVha3Byb29mKSAlfSBMRUFLUFJPT0Z7JSBlbGlmICdwcm9sZWFrcHJvb2YnIGlu IGRhdGEgYW5kIG5vdCBkYXRhLnByb2xlYWtwcm9vZiAlfSBOT1QgTEVBS1BST09GeyUgZW5kaWYg JX0KK3slIGlmICgncHJvaXNzdHJpY3QnIGluIGRhdGEgYW5kIGRhdGEucHJvaXNzdHJpY3QpIG9y ICgncHJvaXNzdHJpY3QnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvaXNzdHJpY3QpICV9IFNU UklDVHslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb3NlY2RlZicgaW4gZGF0YSBhbmQgZGF0YS5wcm9z ZWNkZWYpIG9yICgncHJvc2VjZGVmJyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb3NlY2RlZikg JX0gU0VDVVJJVFkgREVGSU5FUnslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb2lzd2luZG93JyBpbiBk YXRhIGFuZCBkYXRhLnByb2lzd2luZG93KSBvciAoJ3Byb2lzd2luZG93JyBub3QgaW4gZGF0YSBh bmQgb19kYXRhLnByb2lzd2luZG93KSAlfSBXSU5ET1d7JSBlbmRpZiAlfQorCisgICAgeyUgaWYg J3Byb3BhcmFsbGVsJyBpbiBkYXRhIGFuZCBkYXRhLnByb3BhcmFsbGVsICV9UEFSQUxMRUwge3sg ZGF0YS5wcm9wYXJhbGxlbCB9fXslIGVsaWYgJ3Byb3BhcmFsbGVsJyBub3QgaW4gZGF0YSBhbmQg b19kYXRhLnByb3BhcmFsbGVsICV9UEFSQUxMRUwge3sgb19kYXRhLnByb3BhcmFsbGVsIH19eyUg ZW5kaWYgJX0KKworICAgIHslIGlmIGRhdGEucHJvY29zdCAlfUNPU1Qge3tkYXRhLnByb2Nvc3R9 fXslIGVsaWYgb19kYXRhLnByb2Nvc3QgJX1DT1NUIHt7b19kYXRhLnByb2Nvc3R9fXslIGVuZGlm ICV9eyUgaWYgZGF0YS5wcm9yb3dzICV9CisKKyAgICBST1dTIHt7ZGF0YS5wcm9yb3dzfX17JSBl bGlmIGRhdGEucHJvcm93cyBpcyBub3QgZGVmaW5lZCBhbmQgb19kYXRhLnByb3Jvd3MgYW5kIG9f ZGF0YS5wcm9yb3dzICE9ICcwJyAlfSAgICBST1dTIHt7b19kYXRhLnByb3Jvd3N9fSB7JWVuZGlm IC0lfXslIGlmIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAlfXslIGZvciB2IGluIGRhdGEubWVyZ2Vk X3ZhcmlhYmxlcyAlfQorCisgICAgU0VUIHt7IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYu dmFsdWV8cXRMaXRlcmFsIH19eyUgZW5kZm9yIC0lfQorICAgIHslIGVuZGlmICV9CisKK0FTIHsl IGlmICdwcm9iaW4nIGluIGRhdGEgb3IgJ3Byb3NyY19jJyBpbiBkYXRhICV9Cit7JSBpZiAncHJv YmluJyBpbiBkYXRhICV9e3sgZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19eyUgZWxzZSAlfXt7IG9f ZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19eyUgZW5kaWYgJX0sIHslIGlmICdwcm9zcmNfYycgaW4g ZGF0YSAlfXt7IGRhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19eyUgZWxzZSAlfXt7IG9fZGF0YS5w cm9zcmNfY3xxdExpdGVyYWwgfX17JSBlbmRpZiAlfXslIGVsaWYgJ3Byb3NyYycgaW4gZGF0YSAl fQorJEJPRFkke3sgZGF0YS5wcm9zcmMgfX0kQk9EWSR7JSBlbGlmIG9fZGF0YS5sYW5uYW1lID09 ICdjJyAlfQore3sgb19kYXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7IG9fZGF0YS5wcm9zcmNf Y3xxdExpdGVyYWwgfX17JSBlbHNlICV9CiskQk9EWSR7eyBvX2RhdGEucHJvc3JjIH19JEJPRFkk eyUgZW5kaWYgLSV9OworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmZ1bmNvd25lciAlfQorCitB TFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkg fX0oe3tvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIE9XTkVSIFRPIHt7IGNvbm58cXRJ ZGVudChkYXRhLmZ1bmNvd25lcikgfX07Cit7JSBlbmRpZiAtJX0KK3sjIFRoZSBTUUwgZ2VuZXJh dGVkIGJlbG93IHdpbGwgY2hhbmdlIHByaXZpbGVkZ2VzICN9Cit7JSBpZiBkYXRhLmFjbCAlfQor eyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5k ZWxldGVkICV9CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnRlVOQ1RJT04nLCBwcml2 LmdyYW50ZWUsIG5hbWUsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFt ZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2NoYW5nZWQnIGluIGRh dGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5jaGFuZ2VkICV9CisKK3t7IFBS SVZJTEVHRS5VTlNFVEFMTChjb25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIG9f ZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19CisKK3t7IFBSSVZJ TEVHRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBwcml2LndpdGhv dXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnBy b2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnYWRk ZWQnIGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5hZGRlZCAlfQorCit7 eyBQUklWSUxFR0UuU0VUKGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJp di53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9f ZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX17JSBlbmRpZiAtJX0KK3slIGVu ZGlmIC0lfQoreyUgaWYgZGF0YS5jaGFuZ2VfZnVuYyA9PSBGYWxzZSAlfQoreyUgaWYgZGF0YS52 YXJpYWJsZXMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBkYXRhLnZhcmlhYmxlcyBhbmQgZGF0YS52 YXJpYWJsZXMuZGVsZXRlZHxsZW5ndGggPiAwICV9CisKK3t7IFZBUklBQkxFLlVOU0VUKGNvbm4s ICdGVU5DVElPTicsIG5hbWUsIGRhdGEudmFyaWFibGVzLmRlbGV0ZWQsIG9fZGF0YS5wcm9uYW1l c3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRpZiAtJX0KK3slIGlmICdt ZXJnZWRfdmFyaWFibGVzJyBpbiBkYXRhIGFuZCBkYXRhLm1lcmdlZF92YXJpYWJsZXN8bGVuZ3Ro ID4gMCAlfQorCit7eyBWQVJJQUJMRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgZGF0YS5t ZXJnZWRfdmFyaWFibGVzLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5h bWVzKSB9fQoreyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0KK3slIGVuZGlmIC0lfQoreyUgc2V0 IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFi ZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNs YWJlbHMuZGVsZXRlZCAlfQorCit7eyBTRUNMQUJFTC5VTlNFVChjb25uLCAnRlVOQ1RJT04nLCBu YW1lLCByLnByb3ZpZGVyLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5h bWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdhZGRlZCcgaW4gc2Vj bGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2Vj bGFiZWxzLmFkZGVkICV9CisKK3t7IFNFQ0xBQkVMLlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1l LCByLnByb3ZpZGVyLCByLmxhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJn dHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdjaGFuZ2Vk JyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3slIGZv ciByIGluIHNlY2xhYmVscy5jaGFuZ2VkICV9CisKK3t7IFNFQ0xBQkVMLlNFVChjb25uLCAnRlVO Q1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCByLmxhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBv X2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3sl IGlmIGRhdGEuZGVzY3JpcHRpb24gaXMgZGVmaW5lZCBhbmQgZGF0YS5kZXNjcmlwdGlvbiAhPSBv X2RhdGEuZGVzY3JpcHRpb24lfQorCitDT01NRU5UIE9OIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVu dChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7e29fZGF0YS5wcm9hcmd0eXBlbmFtZXMg fX0pCisgICAgSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAt JX0KKworeyUgaWYgZGF0YS5wcm9uYW1lc3BhY2UgJX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29u bnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7b19kYXRhLnByb2FyZ3R5 cGVuYW1lcyB9fSkKKyAgICBTRVQgU0NIRU1BIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVz cGFjZSkgfX07Cit7JSBlbmRpZiAtJX0KKworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvY3JlYXRlLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvY3JlYXRl LnNxbAppbmRleCAyMTM2NTJjLi4xNmMwODhmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2NyZWF0ZS5zcWwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9jcmVhdGUuc3FsCkBA IC0xMyw3ICsxMyw3IEBAIENSRUFURXslIGlmIHF1ZXJ5X3R5cGUgaXMgZGVmaW5lZCAlfXt7JyBP UiBSRVBMQUNFJ319eyUgZW5kaWYgJX0gRlVOQ1RJT04ge3sgY29uCiB7JSBlbmRpZiAtJX0KICkK IHslIGVuZGlmIC0lfQotICAgIFJFVFVSTlN7JSBpZiBkYXRhLnByb3JldHNldCAoZGF0YS5wcm9y ZXR0eXBlbmFtZS5zdGFydHN3aXRoKCdTRVRPRiAnKSBvciBkYXRhLnByb3JldHR5cGVuYW1lLnN0 YXJ0c3dpdGgoJ1RBQkxFJykpICV9IHt7IGRhdGEucHJvcmV0dHlwZW5hbWUgfX0geyUgZWxpZiBk YXRhLnByb3JldHNldCAlfSBTRVRPRiB7eyBjb25ufHF0VHlwZUlkZW50KGRhdGEucHJvcmV0dHlw ZW5hbWUpIH19eyUgZWxzZSAlfSB7eyBjb25ufHF0VHlwZUlkZW50KGRhdGEucHJvcmV0dHlwZW5h bWUpIH19eyUgZW5kaWYgJX0KKyAgICBSRVRVUk5TeyUgaWYgZGF0YS5wcm9yZXRzZXQgYW5kIChk YXRhLnByb3JldHR5cGVuYW1lLnN0YXJ0c3dpdGgoJ1NFVE9GICcpIG9yIGRhdGEucHJvcmV0dHlw ZW5hbWUuc3RhcnRzd2l0aCgnVEFCTEUnKSkgJX0ge3sgZGF0YS5wcm9yZXR0eXBlbmFtZSB9fSB7 JSBlbGlmIGRhdGEucHJvcmV0c2V0ICV9IFNFVE9GIHt7IGNvbm58cXRUeXBlSWRlbnQoZGF0YS5w cm9yZXR0eXBlbmFtZSkgfX17JSBlbHNlICV9IHt7IGNvbm58cXRUeXBlSWRlbnQoZGF0YS5wcm9y ZXR0eXBlbmFtZSkgfX17JSBlbmRpZiAlfQogCiAgICAgTEFOR1VBR0Uge3sgZGF0YS5sYW5uYW1l fHF0TGl0ZXJhbCB9fQogeyUgaWYgZGF0YS5wcm9jb3N0ICV9CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9hY2wuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvYWNsLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZTdhYWU1Ci0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvYWNsLnNxbApA QCAtMCwwICsxLDM1IEBACitTRUxFQ1QKKyAgICBDT0FMRVNDRShndC5yb2xuYW1lLCAnUFVCTElD JykgQVMgZ3JhbnRlZSwKKyAgICBnLnJvbG5hbWUgQVMgZ3JhbnRvciwgYXJyYXlfYWdnKHByaXZp bGVnZV90eXBlKSBBUyBwcml2aWxlZ2VzLAorICAgIGFycmF5X2FnZyhpc19ncmFudGFibGUpIEFT IGdyYW50YWJsZQorRlJPTQorICAgIChTRUxFQ1QKKyAgICAgICAgZC5ncmFudGVlLCBkLmdyYW50 b3IsIGQuaXNfZ3JhbnRhYmxlLAorICAgICAgICBDQVNFIGQucHJpdmlsZWdlX3R5cGUKKyAgICAg ICAgV0hFTiAnQ09OTkVDVCcgVEhFTiAnYycKKyAgICAgICAgV0hFTiAnQ1JFQVRFJyBUSEVOICdD JworICAgICAgICBXSEVOICdERUxFVEUnIFRIRU4gJ2QnCisgICAgICAgIFdIRU4gJ0VYRUNVVEUn IFRIRU4gJ1gnCisgICAgICAgIFdIRU4gJ0lOU0VSVCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAn UkVGRVJFTkNFUycgVEhFTiAneCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAg ICAgICBXSEVOICdURU1QT1JBUlknIFRIRU4gJ1QnCisgICAgICAgIFdIRU4gJ1RSSUdHRVInIFRI RU4gJ3QnCisgICAgICAgIFdIRU4gJ1RSVU5DQVRFJyBUSEVOICdEJworICAgICAgICBXSEVOICdV UERBVEUnIFRIRU4gJ3cnCisgICAgICAgIFdIRU4gJ1VTQUdFJyBUSEVOICdVJworICAgICAgICBF TFNFICdVTktOT1dOJworICAgICAgICBFTkQgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICBGUk9NCisg ICAgICAgIChTRUxFQ1QKKyAgICAgICAgICAgIChkKS5ncmFudGVlIEFTIGdyYW50ZWUsIChkKS5n cmFudG9yIEFTIGdyYW50b3IsCisgICAgICAgICAgICAoZCkuaXNfZ3JhbnRhYmxlIEFTIGlzX2dy YW50YWJsZSwKKyAgICAgICAgICAgIChkKS5wcml2aWxlZ2VfdHlwZSBBUyBwcml2aWxlZ2VfdHlw ZQorICAgICAgICBGUk9NCisgICAgICAgICAgICAoU0VMRUNUIGFjbGV4cGxvZGUoZGIucHJvYWNs KSBBUyBkIEZST00gcGdfcHJvYyBkYgorICAgICAgICAgICAgV0hFUkUgZGIub2lkID0ge3tmbmlk fX06Ok9JRCkgYQorICAgICAgICApIGQKKyAgICApIGQKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxv Zy5wZ19yb2xlcyBnIE9OIChkLmdyYW50b3IgPSBnLm9pZCkKKyAgICBMRUZUIEpPSU4gcGdfY2F0 YWxvZy5wZ19yb2xlcyBndCBPTiAoZC5ncmFudGVlID0gZ3Qub2lkKQorR1JPVVAgQlkgZy5yb2xu YW1lLCBndC5yb2xuYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcGcvc3FsL2RlZmF1bHQvY29sbF9zdGF0cy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9jb2xsX3N0YXRzLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTI0Njc5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvY29sbF9zdGF0cy5zcWwK QEAgLTAsMCArMSwyMCBAQAorU0VMRUNUCisgICAgZnVuY25hbWUgQVMge3sgY29ubnxxdElkZW50 KF8oJ05hbWUnKSkgfX0sCisgICAgY2FsbHMgQVMge3sgY29ubnxxdElkZW50KF8oJ051bWJlciBv ZiBjYWxscycpKSB9fSwKKyAgICB0b3RhbF90aW1lIEFTIHt7IGNvbm58cXRJZGVudChfKCdUb3Rh bCB0aW1lJykpIH19LAorICAgIHNlbGZfdGltZSBBUyB7eyBjb25ufHF0SWRlbnQoXygnU2VsZiB0 aW1lJykpIH19CitGUk9NCisgICAgcGdfc3RhdF91c2VyX2Z1bmN0aW9ucworV0hFUkUKKyAgICBz Y2hlbWFuYW1lID0ge3tzY2hlbWFfbmFtZXxxdExpdGVyYWx9fQorICAgIEFORCBmdW5jaWQgSU4g KAorICAgICAgICBTRUxFQ1QgcC5vaWQKKyAgICAgICAgRlJPTQorICAgICAgICAgICAgcGdfcHJv YyBwCisgICAgICAgIEpPSU4KKyAgICAgICAgICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cC5w cm9yZXR0eXBlCisgICAgICAgIFdIRVJFCisgICAgICAgICAgICBwLnByb2tpbmQgPSAncCc6OmNo YXIKKyAgICAgICAgICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJp Z2dlcicpCisgICAgKQorT1JERVIgQlkgZnVuY25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9jcmVhdGUuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvY3JlYXRlLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjkxNTFmCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvY3JlYXRl LnNxbApAQCAtMCwwICsxLDUwIEBACit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvc2VjdXJp dHkubWFjcm9zJyBhcyBTRUNMQUJFTCAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3By aXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rp b25zL3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX0KK3slIHNldCBpc19jb2x1bW5zID0g W10gJX0KK3slIGlmIGRhdGEgJX0KK3slIGlmIHF1ZXJ5X2ZvciA9PSAnc3FsX3BhbmVsJyBhbmQg ZnVuY19kZWYgaXMgZGVmaW5lZCAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgIFBST0NFRFVSRSB7e2Z1 bmNfZGVmfX0KK3slIGVsc2UgJX0KK0NSRUFURSBPUiBSRVBMQUNFIFBST0NFRFVSRSB7eyBjb25u fHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX17JSBpZiBkYXRhLmFyZ3Vt ZW50cyBpcyBkZWZpbmVkICV9CisoeyUgZm9yIHAgaW4gZGF0YS5hcmd1bWVudHMgJX17JSBpZiBw LmFyZ21vZGUgJX17e3AuYXJnbW9kZX19IHslIGVuZGlmICV9eyUgaWYgcC5hcmduYW1lICV9e3sg Y29ubnxxdElkZW50KHAuYXJnbmFtZSl9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJndHlwZSAlfXt7 IGNvbm58cXRUeXBlSWRlbnQocC5hcmd0eXBlKSB9fXslIGVuZGlmICV9eyUgaWYgcC5hcmdkZWZ2 YWwgJX0gREVGQVVMVCB7e3AuYXJnZGVmdmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3Au bGFzdCAlfSwgeyUgZW5kaWYgJX0KK3slIGVuZGZvciAtJX0KK3slIGVuZGlmICV9CispCit7JSBl bmRpZiAlfQorTEFOR1VBR0Uge3sgZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fQoreyUgaWYgZGF0 YS5wcm9zZWNkZWYgJX1TRUNVUklUWSBERUZJTkVSIHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnZh cmlhYmxlcyAlfXslIGZvciB2IGluIGRhdGEudmFyaWFibGVzICV9CisKK1NFVCB7eyBjb25ufHF0 SWRlbnQodi5uYW1lKSB9fT17eyB2LnZhbHVlfHF0TGl0ZXJhbCB9fXslIGVuZGZvciAtJX0KK3sl IGVuZGlmICV9CisKK0FTIHslIGlmIGRhdGEubGFubmFtZSA9PSAnYycgJX0KK3t7IGRhdGEucHJv YmlufHF0TGl0ZXJhbCB9fSwge3sgZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX0KK3slIGVsc2Ug JX0KKyRCT0RZJHt7IGRhdGEucHJvc3JjIH19JEJPRFkkeyUgZW5kaWYgLSV9OworeyUgaWYgZGF0 YS5hY2wgYW5kIG5vdCBpc19zcWwgJX0KK3slIGZvciBwIGluIGRhdGEuYWNsICV9CisKK3t7IFBS SVZJTEVHRS5TRVQoY29ubiwgIlBST0NFRFVSRSIsIHAuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwLndp dGhvdXRfZ3JhbnQsIHAud2l0aF9ncmFudCwgZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19h cmdzX3dpdGhvdXQpfX0KK3slIGVuZGZvciAlfXslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnJldm9r ZV9hbGwgJX0KKwore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICJQUk9DRURVUkUiLCAiUFVC TElDIiwgZGF0YS5uYW1lLCBkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5mdW5jX2FyZ3Nfd2l0aG91 dCl9fQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKworQ09NTUVOVCBP TiBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUp IH19CisgICAgSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVyYWwgIH19OworeyUgZW5kaWYg LSV9Cit7JSBpZiBkYXRhLnNlY2xhYmVscyAlfQoreyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMg JX0KK3slIGlmIHIubGFiZWwgYW5kIHIucHJvdmlkZXIgJX0KKwore3sgU0VDTEFCRUwuU0VUKGNv bm4sICdQUk9DRURVUkUnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIubGFiZWwsIGRhdGEucHJv bmFtZXNwYWNlLCBkYXRhLmZ1bmNfYXJnc193aXRob3V0KSB9fQoreyUgZW5kaWYgJX0KK3slIGVu ZGZvciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9kZWxldGUuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvZGVsZXRlLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNGZjZGMyCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvZGVs ZXRlLnNxbApAQCAtMCwwICsxLDIxIEBACit7JSBpZiBzY2lkIGFuZCBmbmlkICV9CitTRUxFQ1QK KyAgICBwci5wcm9uYW1lIGFzIG5hbWUsICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nCisgICAg LnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8ICcpJyBh cyBmdW5jX2FyZ3MsCisgICAgbnNwbmFtZQorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAg ICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19uYW1lc3Bh Y2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNlCitXSEVSRQorICAgIHByLnByb2tpbmQg PSAncCc6OmNoYXIKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFO RCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIHBy Lm9pZCA9IHt7Zm5pZH19OworeyUgZW5kaWYgJX0KKworeyUgaWYgbmFtZSAlfQorRFJPUCBQUk9D RURVUkUge3sgY29ubnxxdElkZW50KG5zcG5hbWUsIG5hbWUpIH19OworeyUgZW5kaWYgJX0KZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0 L2dldF9kZWZpbml0aW9uLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3Bn L3NxbC9kZWZhdWx0L2dldF9kZWZpbml0aW9uLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi40YzJlOWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvZ2V0X2RlZmluaXRpb24uc3FsCkBAIC0wLDAg KzEsMTUgQEAKK1NFTEVDVAorICAgIHBnX2dldF9mdW5jdGlvbmRlZih7e2ZuaWR9fTo6b2lkKSBB UyBmdW5jX2RlZiwKKyAgICBDT0FMRVNDRShwZ19jYXRhbG9nLnBnX2dldF9mdW5jdGlvbl9pZGVu dGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIGFzCisgICAgZnVuY193aXRoX2lkZW50aXR5X2Fy Z3VtZW50cywKKyAgICBuc3BuYW1lLAorICAgIHByLnByb25hbWUgYXMgcHJvbmFtZSwKKyAgICBD T0FMRVNDRShwZ19jYXRhbG9nLnBnX2dldF9mdW5jdGlvbl9hcmd1bWVudHMocHIub2lkKSwgJycp IGFzIGZ1bmNfYXJncworRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ19uYW1lc3Bh Y2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNlCitXSEVSRQorICAgIHByLnByb2tpbmQg PSAncCc6OmNoYXIKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFO RCBwci5vaWQgPSB7e2ZuaWR9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvZ2V0X2xhbmd1YWdlcy5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9nZXRfbGFuZ3VhZ2VzLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODFkZGZiCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQv Z2V0X2xhbmd1YWdlcy5zcWwKQEAgLTAsMCArMSw0IEBACitTRUxFQ1QKKyAgICBsYW5uYW1lIGFz IGxhYmVsLCBsYW5uYW1lIGFzIHZhbHVlCitGUk9NCisgICAgcGdfbGFuZ3VhZ2U7CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9nZXRf b2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0 L2dldF9vaWQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlOThiNTMK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9z cWwvZGVmYXVsdC9nZXRfb2lkLnNxbApAQCAtMCwwICsxLDE3IEBACitTRUxFQ1QKKyAgICBwci5v aWQsIHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0 X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIG5hbWUs CisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBhcyBmdW5jb3duZXIsIHBy LnByb25hbWVzcGFjZSBBUyBuc3AKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdf dHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5n IE9OIGxuZy5vaWQ9cHJvbGFuZworSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9p ZD1wci5wcm9uYW1lc3BhY2UKKyAgICBBTkQgbnNwLm5zcG5hbWU9e3sgbnNwbmFtZXxxdExpdGVy YWwgfX0KK1dIRVJFCisgICAgcHIucHJva2luZCA9ICdwJzo6Y2hhcgorICAgIEFORCB0eXBuYW1l IE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIHByLnByb25hbWUg PSB7eyBuYW1lfHF0TGl0ZXJhbCB9fTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L2dldF9vdXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvZ2V0X291dF90eXBlcy5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjRhMTE4NwotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L2dl dF9vdXRfdHlwZXMuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgZm9ybWF0X3R5cGUo b2lkLCBOVUxMKSBBUyBvdXRfYXJnX3R5cGUKK0ZST00KKyAgICBwZ190eXBlCitXSEVSRQorICAg IG9pZCA9IHt7IG91dF9hcmdfb2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9nZXRfc2NoZW1hLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L2dldF9zY2hlbWEuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyN2Q0YjkKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9n ZXRfc2NoZW1hLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIG5zcG5hbWUKK0ZST00K KyAgICBwZ19uYW1lc3BhY2UKK1dIRVJFCisgICAgb2lkID0ge3sgc2NpZCB9fTo6b2lkOwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQv Z2V0X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9k ZWZhdWx0L2dldF90eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u MmE1NTgyZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2Vk dXJlL3BnL3NxbC9kZWZhdWx0L2dldF90eXBlcy5zcWwKQEAgLTAsMCArMSwyMCBAQAorU0VMRUNU CisgICAgKgorRlJPTQorICAgIChTRUxFQ1QKKyAgICAgICAgZm9ybWF0X3R5cGUodC5vaWQsTlVM TCkgQVMgdHlwbmFtZSwKKyAgICAgICAgQ0FTRSBXSEVOIHR5cGVsZW0gPiAwIFRIRU4gdHlwZWxl bSBFTFNFIHQub2lkIEVORCBhcyBlbGVtb2lkLCB0eXBsZW4sIHR5cHR5cGUsIHQub2lkLCBuc3Bu YW1lLAorICAgICAgICAoU0VMRUNUIENPVU5UKDEpIEZST00gcGdfdHlwZSB0MiBXSEVSRSB0Mi50 eXBuYW1lID0gdC50eXBuYW1lKSA+IDEgQVMgaXNkdXAKKyAgICBGUk9NCisgICAgICAgIHBnX3R5 cGUgdAorICAgIEpPSU4KKyAgICAgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiB0eXBuYW1lc3BhY2U9 bnNwLm9pZAorICAgIFdIRVJFCisgICAgICAgIChOT1QgKHR5cG5hbWUgPSAndW5rbm93bicgQU5E IG5zcG5hbWUgPSAncGdfY2F0YWxvZycpKQorICAgIEFORAorICAgICAgICAoCisgICAgICAgICAg ICB0eXB0eXBlIElOICgnYicsICdjJywgJ2QnLCAnZScsICdwJywgJ3InKQorICAgICAgICAgICAg QU5EIHR5cG5hbWUgTk9UIElOICgnYW55JywgJ3RyaWdnZXInLCAnbGFuZ3VhZ2VfaGFuZGxlcics ICdldmVudF90cmlnZ2VyJykKKyAgICAgICAgKQorICAgICkgQVMgZHVtbXkKK09SREVSIEJZIG5z cG5hbWUgPD4gJ3BnX2NhdGFsb2cnLCBuc3BuYW1lIDw+ICdwdWJsaWMnLCBuc3BuYW1lLCAxOwpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1 bHQvbm9kZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVm YXVsdC9ub2RlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWRjNzY4 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcv c3FsL2RlZmF1bHQvbm9kZS5zcWwKQEAgLTAsMCArMSwyOSBAQAorU0VMRUNUCisgICAgcHIub2lk LAorICAgIENBU0UgV0hFTgorICAgICAgICBwZ19jYXRhbG9nLnBnX2dldF9mdW5jdGlvbl9pZGVu dGl0eV9hcmd1bWVudHMocHIub2lkKSA8PiAnJworICAgIFRIRU4KKyAgICAgICAgcHIucHJvbmFt ZSB8fCAnKCcgfHwgcGdfY2F0YWxvZy5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRz KHByLm9pZCkgfHwgJyknCisgICAgRUxTRQorICAgICAgICBwci5wcm9uYW1lCisgICAgRU5EIEFT IG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBBUyBmdW5jb3du ZXIsIGRlc2NyaXB0aW9uCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUg dHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBs bmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBP TiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6OnJlZ2NsYXNz KQorV0hFUkUKKyAgICBwci5wcm9raW5kID0gJ3AnOjpjaGFyCit7JSBpZiBmbmlkICV9CisgICAg QU5EIHByLm9pZCA9IHt7IGZuaWR8cXRMaXRlcmFsIH19Cit7JSBlbmRpZiAlfQoreyUgaWYgc2Np ZCAlfQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCit7JSBlbmRpZiAlfQor ICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCitPUkRF UiBCWQorICAgIHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3By b2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5YmVhODYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9wcm9wZXJ0aWVzLnNx bApAQCAtMCwwICsxLDM5IEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnhtaW4sIHByLiosIHBy LnByb3NyYyBBUyBwcm9zcmNfYywKKyAgICBwci5wcm9uYW1lIEFTIG5hbWUsIHBnX2dldF9mdW5j dGlvbl9yZXN1bHQocHIub2lkKSBBUyBwcm9yZXR0eXBlbmFtZSwKKyAgICB0eXBucy5uc3BuYW1l IEFTIHR5cG5zcCwgbGFubmFtZSwgcHJvYXJnbmFtZXMsIG9pZHZlY3RvcnR5cGVzKHByb2FyZ3R5 cGVzKSBBUyBwcm9hcmd0eXBlbmFtZXMsCisgICAgcGdfZ2V0X2V4cHIocHJvYXJnZGVmYXVsdHMs ICdwZ19jYXRhbG9nLnBnX2NsYXNzJzo6cmVnY2xhc3MpIEFTIHByb2FyZ2RlZmF1bHR2YWxzLAor ICAgIHByb25hcmdkZWZhdWx0cywgcHJvY29uZmlnLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIp IEFTIGZ1bmNvd25lciwgZGVzY3JpcHRpb24sCisgICAgKENBU0UgV0hFTgorICAgICAgICBwZ19j YXRhbG9nLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSA8PiAnJwor ICAgIFRIRU4KKyAgICAgICAgcHIucHJvbmFtZSB8fCAnKCcgfHwgcGdfY2F0YWxvZy5wZ19nZXRf ZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCkgfHwgJyknCisgICAgRUxTRQorICAg ICAgICBwci5wcm9uYW1lCisgICAgRU5EKSBBUyBuYW1lX3dpdGhfYXJncywKKyAgICAoU0VMRUNU CisgICAgICAgIGFycmF5X2FnZyhwcm92aWRlciB8fCAnPScgfHwgbGFiZWwpCisgICAgRlJPTQor ICAgICAgICBwZ19zZWNsYWJlbCBzbDEKKyAgICBXSEVSRQorICAgICAgICBzbDEub2Jqb2lkPXBy Lm9pZCkgQVMgc2VjbGFiZWxzCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5 cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX25hbWVzcGFjZSB0eXBu cyBPTiB0eXBucy5vaWQ9dHlwLnR5cG5hbWVzcGFjZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxu ZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0aW9u IGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6OnJl Z2NsYXNzKQorV0hFUkUKKyAgICBwci5wcm9raW5kID0gJ3AnCisgICAgQU5EIHR5cG5hbWUgTk9U IElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKK3slIGlmIGZuaWQgJX0KKyAgICBBTkQg cHIub2lkID0ge3tmbmlkfX06Om9pZAoreyUgZWxzZSAlfQorICAgIEFORCBwcm9uYW1lc3BhY2Ug PSB7e3NjaWR9fTo6b2lkCit7JSBlbmRpZiAlfQorT1JERVIgQlkKKyAgICBwcm9uYW1lOwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQv c3RhdHMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1 bHQvc3RhdHMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlMjc2YjYK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9z cWwvZGVmYXVsdC9zdGF0cy5zcWwKQEAgLTAsMCArMSw4IEBACitTRUxFQ1QKKyAgICBjYWxscyBB UyB7eyBjb25ufHF0SWRlbnQoXygnTnVtYmVyIG9mIGNhbGxzJykpIH19LAorICAgIHRvdGFsX3Rp bWUgQVMge3sgY29ubnxxdElkZW50KF8oJ1RvdGFsIHRpbWUnKSkgfX0sCisgICAgc2VsZl90aW1l IEFTIHt7IGNvbm58cXRJZGVudChfKCdTZWxmIHRpbWUnKSkgfX0KK0ZST00KKyAgICBwZ19zdGF0 X3VzZXJfZnVuY3Rpb25zCitXSEVSRQorICAgIGZ1bmNpZCA9IHt7Zm5pZH19OjpPSUQKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L3Vw ZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVs dC91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxNjI5ZTkK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9z cWwvZGVmYXVsdC91cGRhdGUuc3FsCkBAIC0wLDAgKzEsMTA2IEBACit7JSBpbXBvcnQgJ21hY3Jv cy9mdW5jdGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJFTCAlfQoreyUgaW1wb3J0ICdt YWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfXslIGlmIGRh dGEgJX0KK3slIHNldCBuYW1lID0gb19kYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAlfQor eyUgaWYgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBQUk9DRURVUkUge3sgY29u bnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5uYW1lKSB9fXslIGlmIG9fZGF0 YS5wcm9hcmd0eXBlbmFtZXMgJX0oe3sgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSl7JSBlbmRp ZiAlfQorCisgICAgUkVOQU1FIFRPIHt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19OworeyUg c2V0IG5hbWUgPSBkYXRhLm5hbWUgJX0KK3slIGVuZGlmICV9CisKK3slIGVuZGlmIC0lfQoreyUg aWYgZGF0YS5jaGFuZ2VfZnVuYyAgJX0KK0NSRUFURSBPUiBSRVBMQUNFIFBST0NFRFVSRSB7eyBj b25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oeyUgaWYgZGF0YS5hcmd1 bWVudHMgJX17JSBmb3IgcCBpbiBkYXRhLmFyZ3VtZW50cyAlfXslIGlmIHAuYXJnbW9kZSAlfXt7 cC5hcmdtb2RlfX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ25hbWUgJX17eyBjb25ufHF0SWRlbnQo cC5hcmduYW1lKSB9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJndHlwZSAlfXt7IGNvbm58cXRUeXBl SWRlbnQocC5hcmd0eXBlKSB9fXslIGVuZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVM VCB7e3AuYXJnZGVmdmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAlfSwgeyUg ZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KKykKK3slIGlmICdsYW5uYW1lJyBp biBkYXRhICV9CisgICAgTEFOR1VBR0Uge3sgZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fSB7JSBl bHNlICV9CisgICAgTEFOR1VBR0Uge3sgb19kYXRhLmxhbm5hbWV8cXRMaXRlcmFsIH19CisgICAg eyUgZW5kaWYgJX0KK3slIGlmICgncHJvc2VjZGVmJyBpbiBkYXRhIGFuZCBkYXRhLnByb3NlY2Rl Zikgb3IgKCdwcm9zZWNkZWYnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvc2VjZGVmKSAlfVNF Q1VSSVRZIERFRklORVJ7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5tZXJnZWRfdmFyaWFibGVzICV9 eyUgZm9yIHYgaW4gZGF0YS5tZXJnZWRfdmFyaWFibGVzICV9CisKKyAgICBTRVQge3sgY29ubnxx dElkZW50KHYubmFtZSkgfX09e3sgdi52YWx1ZXxxdExpdGVyYWwgfX17JSBlbmRmb3IgLSV9Cisg ICAgeyUgZW5kaWYgJX0KKworQVMgeyUgaWYgJ3Byb2JpbicgaW4gZGF0YSBvciAncHJvc3JjX2Mn IGluIGRhdGEgJX0KK3slIGlmICdwcm9iaW4nIGluIGRhdGEgJX17eyBkYXRhLnByb2JpbnxxdExp dGVyYWwgfX17JSBlbHNlICV9e3sgb19kYXRhLnByb2JpbnxxdExpdGVyYWwgfX17JSBlbmRpZiAl fSwgeyUgaWYgJ3Byb3NyY19jJyBpbiBkYXRhICV9e3sgZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwg fX17JSBlbHNlICV9e3sgb19kYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fXslIGVuZGlmICV9eyUg ZWxpZiAncHJvc3JjJyBpbiBkYXRhICV9CiskQk9EWSR7eyBkYXRhLnByb3NyYyB9fSRCT0RZJHsl IGVsaWYgb19kYXRhLmxhbm5hbWUgPT0gJ2MnICV9Cit7eyBvX2RhdGEucHJvYmlufHF0TGl0ZXJh bCB9fSwge3sgb19kYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fXslIGVsc2UgJX0KKyRCT0RZJHt7 IG9fZGF0YS5wcm9zcmMgfX0kQk9EWSR7JSBlbmRpZiAtJX07Cit7JSBlbmRpZiAtJX0KK3slIGlm IGRhdGEuZnVuY293bmVyICV9CisKK0FMVEVSIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQob19k YXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX17JSBpZiBvX2RhdGEucHJvYXJndHlwZW5hbWVzICV9 KHt7IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0peyUgZW5kaWYgJX0KKyAgICBPV05FUiBUTyB7 eyBkYXRhLmZ1bmNvd25lciB9fTsKK3slIGVuZGlmIC0lfQoreyMgVGhlIFNRTCBnZW5lcmF0ZWQg YmVsb3cgd2lsbCBjaGFuZ2UgcHJpdmlsZWRnZXMgI30KK3slIGlmIGRhdGEuYWNsICV9Cit7JSBp ZiAnZGVsZXRlZCcgaW4gZGF0YS5hY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuYWNsLmRlbGV0 ZWQgJX0KKwore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICdQUk9DRURVUkUnLCBwcml2Lmdy YW50ZWUsIG5hbWUsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMp IH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEu ZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5jaGFuZ2VkICV9CisKK3t7IFBSSVZJ TEVHRS5VTlNFVEFMTChjb25uLCAnUFJPQ0VEVVJFJywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2Rh dGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQorCit7eyBQUklWSUxF R0UuU0VUKGNvbm4sICdQUk9DRURVUkUnLCBwcml2LmdyYW50ZWUsIG5hbWUsIHByaXYud2l0aG91 dF9ncmFudCwKKyBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5w cm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2Fk ZGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuYWRkZWQgJX0KKwor e3sgUFJJVklMRUdFLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgcHJpdi5ncmFudGVlLCBuYW1lLCBw cml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwgb19kYXRhLnByb25hbWVzcGFjZSwg b19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3sl IGVuZGlmIC0lfQoreyUgaWYgZGF0YS5jaGFuZ2VfZnVuYyA9PSBGYWxzZSAlfQoreyUgaWYgZGF0 YS52YXJpYWJsZXMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBkYXRhLnZhcmlhYmxlcyBhbmQgZGF0 YS52YXJpYWJsZXMuZGVsZXRlZHxsZW5ndGggPiAwICV9CisKK3t7IFZBUklBQkxFLlVOU0VUKGNv bm4sICdGVU5DVElPTicsIG5hbWUsIGRhdGEudmFyaWFibGVzLmRlbGV0ZWQsIG9fZGF0YS5wcm9u YW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRpZiAtJX0KK3slIGlm ICdtZXJnZWRfdmFyaWFibGVzJyBpbiBkYXRhIGFuZCBkYXRhLm1lcmdlZF92YXJpYWJsZXN8bGVu Z3RoID4gMCAlfQorCit7eyBWQVJJQUJMRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgZGF0 YS5tZXJnZWRfdmFyaWFibGVzLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlw ZW5hbWVzKSB9fQoreyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0KK3slIGVuZGlmIC0lfQoreyUg c2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gc2Vj bGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBz ZWNsYWJlbHMuZGVsZXRlZCAlfQorCit7eyBTRUNMQUJFTC5VTlNFVChjb25uLCAnUFJPQ0VEVVJF JywgbmFtZSwgci5wcm92aWRlciwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5 cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnYWRkZWQnIGlu IHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGlu IHNlY2xhYmVscy5hZGRlZCAlfQorCit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ1BST0NFRFVSRScs IG5hbWUsIHIucHJvdmlkZXIsIHIubGFiZWwsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5w cm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2No YW5nZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQor eyUgZm9yIHIgaW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KKwore3sgU0VDTEFCRUwuU0VUKGNvbm4s ICdQUk9DRURVUkUnLCBuYW1lLCByLnByb3ZpZGVyLCByLmxhYmVsLCBvX2RhdGEucHJvbmFtZXNw YWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAt JX0KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gaXMgZGVmaW5lZCBhbmQgZGF0YS5kZXNjcmlwdGlv biAhPSBvX2RhdGEuZGVzY3JpcHRpb24lfQorCitDT01NRU5UIE9OIFBST0NFRFVSRSB7eyBjb25u fHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0KKyAgICBJUyB7eyBkYXRhLmRl c2NyaXB0aW9ufHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5wcm9uYW1l c3BhY2UgJX0KKworQUxURVIgUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFt ZXNwYWNlLCBuYW1lKSB9fQorICAgIFNFVCBTQ0hFTUEge3sgY29ubnxxdElkZW50KGRhdGEucHJv bmFtZXNwYWNlKSB9fTsKK3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvdmFyaWFibGVz LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L3Zh cmlhYmxlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTIzM2M3MQot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3Nx bC9kZWZhdWx0L3ZhcmlhYmxlcy5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBuYW1l LCB2YXJ0eXBlLCBtaW5fdmFsLCBtYXhfdmFsLCBlbnVtdmFscworRlJPTQorICAgIHBnX3NldHRp bmdzCitXSEVSRQorICAgIGNvbnRleHQgaW4gKCd1c2VyJywgJ3N1cGVydXNlcicpOwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9uL3BnL3NxbC8xMV9w bHVzL2NvbGxfc3RhdHMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1bmN0 aW9uL3BnL3NxbC8xMV9wbHVzL2NvbGxfc3RhdHMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmNkOGNlY2QKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL3RyaWdnZXJfZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvY29sbF9zdGF0cy5zcWwKQEAg LTAsMCArMSwyMCBAQAorU0VMRUNUCisgICAgZnVuY25hbWUgQVMge3sgY29ubnxxdElkZW50KF8o J05hbWUnKSkgfX0sCisgICAgY2FsbHMgQVMge3sgY29ubnxxdElkZW50KF8oJ051bWJlciBvZiBj YWxscycpKSB9fSwKKyAgICB0b3RhbF90aW1lIEFTIHt7IGNvbm58cXRJZGVudChfKCdUb3RhbCB0 aW1lJykpIH19LAorICAgIHNlbGZfdGltZSBBUyB7eyBjb25ufHF0SWRlbnQoXygnU2VsZiB0aW1l JykpIH19CitGUk9NCisgICAgcGdfc3RhdF91c2VyX2Z1bmN0aW9ucworV0hFUkUKKyAgICBzY2hl bWFuYW1lID0ge3tzY2hlbWFfbmFtZXxxdExpdGVyYWx9fQorICAgIEFORCBmdW5jaWQgSU4gKAor ICAgICAgICBTRUxFQ1QgcC5vaWQKKyAgICAgICAgRlJPTQorICAgICAgICAgICAgcGdfcHJvYyBw CisgICAgICAgIEpPSU4KKyAgICAgICAgICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cC5wcm9y ZXR0eXBlCisgICAgICAgIFdIRVJFCisgICAgICAgICAgICBwLnByb2tpbmQgSU4gKCdmJywgJ3cn KQorICAgICAgICAgICAgQU5EIHR5cG5hbWUgPSAndHJpZ2dlcicKKyAgICApCitPUkRFUiBCWSBm dW5jbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5j dGlvbi9wZy9zcWwvMTFfcGx1cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90 cmlnZ2VyX2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uMjA0OTlhOQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9jcmVhdGUuc3Fs CkBAIC0wLDAgKzEsNTcgQEAKK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5t YWNyb3MnIGFzIFNFQ0xBQkVMICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvcHJpdmls ZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMv dmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAlfQoreyUgc2V0IGlzX2NvbHVtbnMgPSBbXSAl fQoreyUgaWYgZGF0YSAlfQorQ1JFQVRFIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnBy b25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9fSh7JSBpZiBkYXRhLnByb2FyZ25hbWVzICV9e3tkYXRh LnByb2FyZ25hbWVzfX17JSBlbmRpZiAlfSkKKyAgICBSRVRVUk5TeyUgaWYgZGF0YS5wcm9yZXRz ZXQgJX0gU0VUT0Z7JSBlbmRpZiAlfSB7eyBjb25ufHF0VHlwZUlkZW50KGRhdGEucHJvcmV0dHlw ZW5hbWUpIH19CisgICAgTEFOR1VBR0Uge3sgZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fQoreyUg aWYgZGF0YS5wcm9jb3N0ICV9CisgICAgQ09TVCB7e2RhdGEucHJvY29zdH19Cit7JSBlbmRpZiAl fQorICAgIHslIGlmIGRhdGEucHJvdm9sYXRpbGUgJX17JSBpZiBkYXRhLnByb3ZvbGF0aWxlID09 ICdpJyAlfUlNTVVUQUJMRXslIGVsaWYgZGF0YS5wcm92b2xhdGlsZSA9PSAncycgJX1TVEFCTEV7 JSBlbHNlICV9Vk9MQVRJTEV7JSBlbmRpZiAlfSB7JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvbGVh a3Byb29mICV9TEVBS1BST09GIHslIGVsc2UgJX1OT1QgTEVBS1BST09GIHslIGVuZGlmICV9Cit7 JSBpZiBkYXRhLnByb2lzc3RyaWN0ICV9U1RSSUNUIHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnBy b3NlY2RlZiAlfVNFQ1VSSVRZIERFRklORVIgeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvaXN3 aW5kb3cgJX1XSU5ET1d7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5wcm9yb3dzIGFuZCAoZGF0YS5w cm9yb3dzIHwgaW50KSA+IDAgJX0KKworICAgIFJPV1Mge3tkYXRhLnByb3Jvd3N9fXslIGVuZGlm IC0lfXslIGlmIGRhdGEudmFyaWFibGVzICV9eyUgZm9yIHYgaW4gZGF0YS52YXJpYWJsZXMgJX0K KworICAgIFNFVCB7eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9fT17eyB2LnZhbHVlfHF0TGl0ZXJh bCB9fXslIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KKworQVMgeyUgaWYgZGF0YS5sYW5uYW1lID09 ICdjJyAlfQore3sgZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19LCB7eyBkYXRhLnByb3NyY19jfHF0 TGl0ZXJhbCB9fQoreyUgZWxzZSAlfQorJEJPRFkkCit7eyBkYXRhLnByb3NyYyB9fQorJEJPRFkk eyUgZW5kaWYgLSV9OworeyUgaWYgZGF0YS5mdW5jb3duZXIgJX0KKworQUxURVIgRlVOQ1RJT04g e3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19KHt7ZGF0YS5m dW5jX2FyZ3N9fSkKKyAgICBPV05FUiBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5mdW5jb3duZXIp IH19OworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmFjbCAlfQoreyUgZm9yIHAgaW4gZGF0YS5h Y2wgJX0KKwore3sgUFJJVklMRUdFLlNFVChjb25uLCAiRlVOQ1RJT04iLCBwLmdyYW50ZWUsIGRh dGEubmFtZSwgcC53aXRob3V0X2dyYW50LCBwLndpdGhfZ3JhbnQsIGRhdGEucHJvbmFtZXNwYWNl LCBkYXRhLmZ1bmNfYXJncyl9fQoreyUgZW5kZm9yICV9eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEu cmV2b2tlX2FsbCAlfQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgIkZVTkNUSU9OIiwg IlBVQkxJQyIsIGRhdGEubmFtZSwgZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19hcmdzX3dp dGhvdXQpfX0KK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9CisKK0NPTU1F TlQgT04gRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5h bWUpIH19KHt7ZGF0YS5mdW5jX2FyZ3N9fSkKKyAgICBJUyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0 TGl0ZXJhbCAgfX07Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuc2VjbGFiZWxzICV9Cit7JSBm b3IgciBpbiBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYgci5sYWJlbCBhbmQgci5wcm92aWRlciAl fQorCit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgZGF0YS5uYW1lLCByLnByb3Zp ZGVyLCByLmxhYmVsLCBkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5mdW5jX2FyZ3MpIH19Cit7JSBl bmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKworeyUgZW5kaWYgJX0KZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFf cGx1cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9u L3BnL3NxbC8xMV9wbHVzL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZjdmOTA2YgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv dHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9kZWxldGUuc3FsCkBAIC0wLDAgKzEsMjEg QEAKK3slIGlmIHNjaWQgYW5kIGZuaWQgJX0KK1NFTEVDVAorICAgIHByLnByb25hbWUgYXMgbmFt ZSwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50 aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIGZ1bmNfYXJncywKKyAgICBuc3Bu YW1lCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5v aWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5w cm9uYW1lc3BhY2UKK1dIRVJFCisgICAgcHIucHJva2luZCBJTiAoJ2YnLCAndycpCisgICAgQU5E IHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgdHlwbmFtZSBJTiAoJ3RyaWdn ZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19OworeyUgZW5k aWYgJX0KKworeyUgaWYgbmFtZSAlfQorRFJPUCBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQobnNw bmFtZSwgbmFtZSkgfX17e2Z1bmNfYXJnc319eyUgaWYgY2FzY2FkZSAlfSBDQVNDQURFeyUgZW5k aWYgJX07Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90 cmlnZ2VyX2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL2dldF9kZWZpbml0aW9uLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9nZXRfZGVm aW5pdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWIyNWRiZgot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlv bi9wZy9zcWwvMTFfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwKQEAgLTAsMCArMSwxNSBAQAorU0VM RUNUCisgICAgcGdfZ2V0X2Z1bmN0aW9uZGVmKHt7Zm5pZH19OjpvaWQpIEFTIGZ1bmNfZGVmLAor ICAgIENPQUxFU0NFKHBnX2NhdGFsb2cucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50 cyhwci5vaWQpLCAnJykgYXMKKyAgICBmdW5jX3dpdGhfaWRlbnRpdHlfYXJndW1lbnRzLAorICAg IG5zcG5hbWUsCisgICAgcHIucHJvbmFtZSBhcyBwcm9uYW1lLAorICAgIENPQUxFU0NFKHBnX2Nh dGFsb2cucGdfZ2V0X2Z1bmN0aW9uX2FyZ3VtZW50cyhwci5vaWQpLCAnJykgYXMgZnVuY19hcmdz CitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNw Lm9pZD1wci5wcm9uYW1lc3BhY2UKK1dIRVJFCisgICAgcHIucHJva2luZCBJTiAoJ2YnLCAndycp CisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgcHIub2lkID0g e3tmbmlkfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dl cl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9nZXRfb2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9nZXRfb2lkLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTNkZjkxCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL2dl dF9vaWQuc3FsCkBAIC0wLDAgKzEsMTggQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIucHJvbmFt ZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRfZnVuY3Rpb25faWRl bnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMgbmFtZSwKKyAgICBsYW5uYW1l LCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIGFzIGZ1bmNvd25lciwgcHIucHJvbmFtZXNwYWNl IEFTIG5zcAorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0 eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1w cm9sYW5nCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnByb25hbWVz cGFjZQorICAgIEFORCBuc3AubnNwbmFtZT17eyBuc3BuYW1lfHF0TGl0ZXJhbCB9fQorV0hFUkUK KyAgICBwci5wcm9raW5kIElOICgnZicsICd3JykKKyAgICBBTkQgdHlwbmFtZSBJTiAoJ3RyaWdn ZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIGxhbm5hbWUgTk9UIElOICgnZWRic3BsJywg J3NxbCcsICdpbnRlcm5hbCcpCisgICAgQU5EIHByLnByb25hbWUgPSB7eyBuYW1lfHF0TGl0ZXJh bCB9fTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlv bi9wZy9zcWwvMTFfcGx1cy9ub2RlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dl cl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9ub2RlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi41NWQ3YzU0Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL25vZGUuc3FsCkBAIC0wLDAg KzEsMjMgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIucHJvbmFtZSB8fCAnKCknIGFzIG5hbWUs CisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBhcyBmdW5jb3duZXIsIGRl c2NyaXB0aW9uCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9O IHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lk PXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVz Lm9iam9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hF UkUKKyAgICBwci5wcm9raW5kIElOICgnZicsICd3JykKK3slIGlmIGZuaWQgJX0KKyAgICBBTkQg cHIub2lkID0ge3sgZm5pZHxxdExpdGVyYWwgfX0KK3slIGVuZGlmICV9Cit7JSBpZiBzY2lkICV9 CisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKK3slIGVuZGlmICV9CisgICAg QU5EIHR5cG5hbWUgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQorICAgIEFORCBsYW5u YW1lIE5PVCBJTiAoJ2VkYnNwbCcsICdzcWwnLCAnaW50ZXJuYWwnKQorT1JERVIgQlkKKyAgICBw cm9uYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1bmN0 aW9uL3BnL3NxbC8xMV9wbHVzL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy90cmlnZ2VyX2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5ZDc4NjYKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL3RyaWdnZXJfZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvcHJv cGVydGllcy5zcWwKQEAgLTAsMCArMSwzMyBAQAorU0VMRUNUCisgICAgcHIub2lkLCBwci54bWlu LCBwci4qLCBwci5wcm9zcmMgQVMgcHJvc3JjX2MsCisgICAgcHIucHJvbmFtZSBBUyBuYW1lLCBw Z19nZXRfZnVuY3Rpb25fcmVzdWx0KHByLm9pZCkgQVMgcHJvcmV0dHlwZW5hbWUsCisgICAgdHlw bnMubnNwbmFtZSBBUyB0eXBuc3AsIGxhbm5hbWUsIHByb2FyZ25hbWVzLCBvaWR2ZWN0b3J0eXBl cyhwcm9hcmd0eXBlcykgQVMgcHJvYXJndHlwZW5hbWVzLAorICAgIHBnX2dldF9leHByKHByb2Fy Z2RlZmF1bHRzLCAncGdfY2F0YWxvZy5wZ19jbGFzcyc6OnJlZ2NsYXNzKSBBUyBwcm9hcmdkZWZh dWx0dmFscywKKyAgICBwcm9uYXJnZGVmYXVsdHMsIHByb2NvbmZpZywgcGdfZ2V0X3VzZXJieWlk KHByb293bmVyKSBBUyBmdW5jb3duZXIsIGRlc2NyaXB0aW9uLAorICAgIChTRUxFQ1QKKyAgICAg ICAgYXJyYXlfYWdnKHByb3ZpZGVyIHx8ICc9JyB8fCBsYWJlbCkKKyAgICBGUk9NCisgICAgICAg IHBnX3NlY2xhYmVsIHNsMQorICAgIFdIRVJFCisgICAgICAgIHNsMS5vYmpvaWQ9cHIub2lkKSBB UyBzZWNsYWJlbHMKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAg T04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIHR5cG5zIE9OIHR5 cG5zLm9pZD10eXAudHlwbmFtZXNwYWNlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxu Zy5vaWQ9cHJvbGFuZworTEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9O IChkZXMub2Jqb2lkPXByLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19wcm9jJzo6cmVnY2xhc3Mp CitXSEVSRQorICAgIHByLnByb2tpbmQgSU4gKCdmJywgJ3cnKQorICAgIEFORCB0eXBuYW1lIElO ICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKKyAgICBBTkQgbGFubmFtZSBOT1QgSU4gKCdl ZGJzcGwnLCAnc3FsJywgJ2ludGVybmFsJykKK3slIGlmIGZuaWQgJX0KKyAgICBBTkQgcHIub2lk ID0ge3tmbmlkfX06Om9pZAoreyUgZWxzZSAlfQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3Nj aWR9fTo6b2lkCit7JSBlbmRpZiAlfQorT1JERVIgQlkKKyAgICBwcm9uYW1lOwpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVz L3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3RyaWdnZXJfZnVuY3Rpb24vcGcv c3FsLzExX3BsdXMvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li40MTNiZTYyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmln Z2VyX2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL3VwZGF0ZS5zcWwKQEAgLTAsMCArMSwxMDkgQEAK K3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkVM ICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJ VklMRUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUubWFjcm9zJyBh cyBWQVJJQUJMRSAlfXslIGlmIGRhdGEgJX0KK3slIHNldCBuYW1lID0gb19kYXRhLm5hbWUgJX0K K3slIGlmIGRhdGEubmFtZSAlfQoreyUgaWYgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitB TFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRh Lm5hbWUpIH19KHt7CitvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIFJFTkFNRSBUTyB7 eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsKK3slIHNldCBuYW1lID0gZGF0YS5uYW1lICV9 Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmNoYW5nZV9mdW5jICAlfQor CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25h bWVzcGFjZSwgbmFtZSkgfX0oKQorICAgIFJFVFVSTlMge3sgb19kYXRhLnByb3JldHR5cGVuYW1l IH19Cit7JSBpZiAnbGFubmFtZScgaW4gZGF0YSAlfQorICAgIExBTkdVQUdFIHt7IGRhdGEubGFu bmFtZXxxdExpdGVyYWwgfX0geyUgZWxzZSAlfQorICAgIExBTkdVQUdFIHt7IG9fZGF0YS5sYW5u YW1lfHF0TGl0ZXJhbCB9fQorICAgIHslIGVuZGlmICV9eyUgaWYgJ3Byb3ZvbGF0aWxlJyBpbiBk YXRhIGFuZCBkYXRhLnByb3ZvbGF0aWxlICV9e3sgZGF0YS5wcm92b2xhdGlsZSB9fSB7JSBlbGlm ICdwcm92b2xhdGlsZScgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm92b2xhdGlsZSAlfXt7IG9f ZGF0YS5wcm92b2xhdGlsZSB9fXslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb2xlYWtwcm9vZicgaW4g ZGF0YSBhbmQgZGF0YS5wcm9sZWFrcHJvb2YpIG9yICgncHJvbGVha3Byb29mJyBub3QgaW4gZGF0 YSBhbmQgb19kYXRhLnByb2xlYWtwcm9vZikgJX0gTEVBS1BST09GeyUgZWxpZiAncHJvbGVha3By b29mJyBpbiBkYXRhIGFuZCBub3QgZGF0YS5wcm9sZWFrcHJvb2YgJX0gTk9UIExFQUtQUk9PRnsl IGVuZGlmICV9Cit7JSBpZiAoJ3Byb2lzc3RyaWN0JyBpbiBkYXRhIGFuZCBkYXRhLnByb2lzc3Ry aWN0KSBvciAoJ3Byb2lzc3RyaWN0JyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb2lzc3RyaWN0 KSAlfSBTVFJJQ1R7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9zZWNkZWYnIGluIGRhdGEgYW5kIGRh dGEucHJvc2VjZGVmKSBvciAoJ3Byb3NlY2RlZicgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9z ZWNkZWYpICV9IFNFQ1VSSVRZIERFRklORVJ7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9pc3dpbmRv dycgaW4gZGF0YSBhbmQgZGF0YS5wcm9pc3dpbmRvdykgb3IgKCdwcm9pc3dpbmRvdycgbm90IGlu IGRhdGEgYW5kIG9fZGF0YS5wcm9pc3dpbmRvdykgJX0gV0lORE9XeyUgZW5kaWYgJX0KKworICAg IHslIGlmIGRhdGEucHJvY29zdCAlfUNPU1Qge3tkYXRhLnByb2Nvc3R9fXslIGVsaWYgb19kYXRh LnByb2Nvc3QgJX1DT1NUIHt7b19kYXRhLnByb2Nvc3R9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5w cm9yb3dzICV9CisKKyAgICBST1dTIHt7ZGF0YS5wcm9yb3dzfX17JSBlbGlmIGRhdGEucHJvcm93 cyBpcyBub3QgZGVmaW5lZCBhbmQgb19kYXRhLnByb3Jvd3MgYW5kIG9fZGF0YS5wcm9yb3dzICE9 ICcwJyAlfSAgICBST1dTIHt7b19kYXRhLnByb3Jvd3N9fSB7JWVuZGlmIC0lfXslIGlmIGRhdGEu bWVyZ2VkX3ZhcmlhYmxlcyAlfXslIGZvciB2IGluIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAlfQor CisgICAgU0VUIHt7IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8cXRMaXRlcmFs IH19eyUgZW5kZm9yIC0lfQorICAgIHslIGVuZGlmICV9CisKK0FTIHslIGlmICdwcm9iaW4nIGlu IGRhdGEgb3IgJ3Byb3NyY19jJyBpbiBkYXRhICV9Cit7JSBpZiAncHJvYmluJyBpbiBkYXRhICV9 e3sgZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19eyUgZWxzZSAlfXt7IG9fZGF0YS5wcm9iaW58cXRM aXRlcmFsIH19eyUgZW5kaWYgJX0sIHslIGlmICdwcm9zcmNfYycgaW4gZGF0YSAlfXt7IGRhdGEu cHJvc3JjX2N8cXRMaXRlcmFsIH19eyUgZWxzZSAlfXt7IG9fZGF0YS5wcm9zcmNfY3xxdExpdGVy YWwgfX17JSBlbmRpZiAlfXslIGVsaWYgJ3Byb3NyYycgaW4gZGF0YSAlfQorJEJPRFkke3sgZGF0 YS5wcm9zcmMgfX0kQk9EWSR7JSBlbGlmIG9fZGF0YS5sYW5uYW1lID09ICdjJyAlfQore3sgb19k YXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7IG9fZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX17 JSBlbHNlICV9CiskQk9EWSR7eyBvX2RhdGEucHJvc3JjIH19JEJPRFkkeyUgZW5kaWYgLSV9Owor eyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmZ1bmNvd25lciAlfQorCitBTFRFUiBGVU5DVElPTiB7 eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oe3tvX2RhdGEucHJv YXJndHlwZW5hbWVzIH19KQorICAgIE9XTkVSIFRPIHt7IGNvbm58cXRJZGVudChkYXRhLmZ1bmNv d25lcikgfX07Cit7JSBlbmRpZiAtJX0KK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwg Y2hhbmdlIHByaXZpbGVkZ2VzICN9Cit7JSBpZiBkYXRhLmFjbCAlfQoreyUgaWYgJ2RlbGV0ZWQn IGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5kZWxldGVkICV9CisKK3t7 IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUs IG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7 JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5jaGFuZ2VkICV9CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFM TChjb25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0YS5wcm9uYW1lc3Bh Y2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19CisKK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwg J0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYu d2l0aF9ncmFudCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykg fX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnYWRkZWQnIGluIGRhdGEuYWNs ICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5hZGRlZCAlfQorCit7eyBQUklWSUxFR0UuU0VU KGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50 LCBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBl bmFtZXMpIH19Cit7JSBlbmRmb3IgJX17JSBlbmRpZiAtJX0KK3slIGVuZGlmIC0lfQoreyUgaWYg ZGF0YS5jaGFuZ2VfZnVuYyA9PSBGYWxzZSAlfQoreyUgaWYgZGF0YS52YXJpYWJsZXMgJX0KK3sl IGlmICdkZWxldGVkJyBpbiBkYXRhLnZhcmlhYmxlcyBhbmQgZGF0YS52YXJpYWJsZXMuZGVsZXRl ZHxsZW5ndGggPiAwICV9CisKK3t7IFZBUklBQkxFLlVOU0VUKGNvbm4sICdGVU5DVElPTicsIG5h bWUsIGRhdGEudmFyaWFibGVzLmRlbGV0ZWQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5w cm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRpZiAtJX0KK3slIGlmICdtZXJnZWRfdmFyaWFibGVz JyBpbiBkYXRhIGFuZCBkYXRhLm1lcmdlZF92YXJpYWJsZXN8bGVuZ3RoID4gMCAlfQorCit7eyBW QVJJQUJMRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgZGF0YS5tZXJnZWRfdmFyaWFibGVz LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5k aWYgLSV9Cit7JSBlbmRpZiAtJX0KK3slIGVuZGlmIC0lfQoreyUgc2V0IHNlY2xhYmVscyA9IGRh dGEuc2VjbGFiZWxzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJl bHMuZGVsZXRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVsZXRlZCAl fQorCit7eyBTRUNMQUJFTC5VTlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVy LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdhZGRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNs YWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9 CisKK3t7IFNFQ0xBQkVMLlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCBy LmxhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMg YW5kIHNlY2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVs cy5jaGFuZ2VkICV9CisKK3t7IFNFQ0xBQkVMLlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCBy LnByb3ZpZGVyLCByLmxhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlw ZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuZGVzY3Jp cHRpb24gaXMgZGVmaW5lZCBhbmQgZGF0YS5kZXNjcmlwdGlvbiAhPSBvX2RhdGEuZGVzY3JpcHRp b24lfQorCitDT01NRU5UIE9OIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFt ZXNwYWNlLCBuYW1lKSB9fSh7e29fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgSVMge3sg ZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0 YS5wcm9uYW1lc3BhY2UgJX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0 YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7b19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAg ICBTRVQgU0NIRU1BIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSkgfX07Cit7JSBl bmRpZiAtJX0KKworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90 ZXN0X2Z1bmN0aW9uX2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1bmN0aW9uX2Fk ZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MWVlMjg1Ci0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fYWRkLnB5CkBAIC0w LDAgKzEsODAgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVT UUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxOCwgVGhlIHBnQWRtaW4gRGV2 ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0 Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCBqc29uCitpbXBv cnQgdXVpZAorCisKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJv bSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdy ZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9t IC4gaW1wb3J0IHV0aWxzIGFzIGZ1bmNzX3V0aWxzCisKKworY2xhc3MgRnVuY3Rpb25BZGRUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBhZGQgbmV3 IGZ1bmN0aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKyAgICBzY2VuYXJpb3MgPSBbCisgICAg ICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGZ1bmN0aW9uIG5vZGUuCisgICAgICAgICgn RmV0Y2ggRnVuY3Rpb24gTm9kZSBVUkwnLCBkaWN0KAorICAgICAgICAgICAgdXJsPScvYnJvd3Nl ci9mdW5jdGlvbi9vYmovJykpCisgICAgXQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAg ICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIGZ1bmN0aW9uIHVuZGVyIHNjaGVtYSBub2Rl LiAiIiIKKyAgICAgICAgc3VwZXIoRnVuY3Rpb25BZGRUZXN0Q2FzZSwgc2VsZikucnVuVGVzdCgp CisgICAgICAgIHNlbGYgPSBmdW5jc191dGlscy5zZXRfdXAoc2VsZikKKyAgICAgICAgZGJfdXNl ciA9IHNlbGYuc2VydmVyWyJ1c2VybmFtZSJdCisgICAgICAgIGRhdGEgPSB7CisgICAgICAgICAg ICAiYWNsIjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImdyYW50 ZWUiOiBkYl91c2VyLAorICAgICAgICAgICAgICAgICAgICAiZ3JhbnRvciI6IGRiX3VzZXIsCisg ICAgICAgICAgICAgICAgICAgICJwcml2aWxlZ2VzIjoKKyAgICAgICAgICAgICAgICAgICAgICAg IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJwcml2aWxlZ2VfdHlwZSI6ICJYIiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgInByaXZpbGVnZSI6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJ3aXRoX2dyYW50IjogVHJ1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBd LAorICAgICAgICAgICAgImFyZ3VtZW50cyI6IFtdLAorICAgICAgICAgICAgImZ1bmNvd25lciI6 IGRiX3VzZXIsCisgICAgICAgICAgICAibGFubmFtZSI6ICJzcWwiLAorICAgICAgICAgICAgIm5h bWUiOiAidGVzdF9mdW5jdGlvbiIsCisgICAgICAgICAgICAib3B0aW9ucyI6IFtdLAorICAgICAg ICAgICAgInByb2xlYWtwcm9vZiI6IFRydWUsCisgICAgICAgICAgICAicHJvbmFtZXNwYWNlIjog MjIwMCwKKyAgICAgICAgICAgICJwcm9yZXR0eXBlbmFtZSI6ICJpbnRlZ2VyIiwKKyAgICAgICAg ICAgICJwcm9zZWNkZWYiOiBUcnVlLAorICAgICAgICAgICAgInByb3NyYyI6ICJTRUxFQ1QgMTsi LAorICAgICAgICAgICAgInByb2JpbiI6ICIkbGliZGlyLyIsCisgICAgICAgICAgICAicHJvdm9s YXRpbGUiOiAicyIsCisgICAgICAgICAgICAic2VjbGFiZWxzIjogW10sCisgICAgICAgICAgICAi dmFyaWFibGVzIjogW10KKyAgICAgICAgfQorCisgICAgICAgIGRhdGFbIm5hbWUiXSA9ICJ0ZXN0 X2Z1bmN0aW9uX2FkZF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAgICAgIGlmIHNl bGYuc2NoZW1hX2lkOgorICAgICAgICAgICAgZGF0YVsncHJvbmFtZXNwYWNlJ10gPSBzZWxmLnNj aGVtYV9pZAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBkYXRh Wydwcm9uYW1lc3BhY2UnXQorICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCisg ICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAg ICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKwor ICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJywKKyAgICAgICAgICAg IGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9q c29uJworICAgICAgICApCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3Rh dHVzX2NvZGUsIDIwMCkKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAgICAg ICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lk LCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rp b25fZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fZGVsZXRlLnB5 Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5YTg5ZmEKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9kZWxldGUucHkKQEAgLTAs MCArMSw0OSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNR TCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE4LCBUaGUgcGdBZG1pbiBEZXZl bG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3Rn cmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IHV1aWQKKworZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBp bXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMu cm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rl c3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMg YXMgZnVuY3NfdXRpbHMKKworCitjbGFzcyBGdW5jdGlvbkRlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSB0aGUgZnVuY3Rpb24g dW5kZXIgc2NoZW1hIG5vZGUuICIiIgorICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRj aGluZyBkZWZhdWx0IFVSTCBmb3IgZnVuY3Rpb24gbm9kZS4KKyAgICAgICAgKCdGZXRjaCBGdW5j dGlvbiBOb2RlIFVSTCcsCisgICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vb2Jq LycpKQorICAgIF0KKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBm dW5jdGlvbiB3aWxsIGRlbGV0ZSBmdW5jdGlvbiB1bmRlciBkYXRhYmFzZSBub2RlLiAiIiIKKyAg ICAgICAgc3VwZXIoRnVuY3Rpb25EZWxldGVUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQorICAgICAg ICBzZWxmID0gZnVuY3NfdXRpbHMuc2V0X3VwKHNlbGYpCisKKyAgICAgICAgZnVuY19uYW1lID0g InRlc3RfZnVuY3Rpb25fZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAg ICAgZnVuY3Rpb25faW5mbyA9IGZ1bmNzX3V0aWxzLmNyZWF0ZV9mdW5jdGlvbigKKyAgICAgICAg ICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIGZ1bmNfbmFt ZSkKKworICAgICAgICBmdW5jX2lkID0gZnVuY3Rpb25faW5mb1swXQorICAgICAgICByZXNwb25z ZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxz LlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSAr ICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAgICAgICAgICAg c3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArIHN0cihmdW5jX2lkKSwKKyAgICAgICAgICAgIGNv bnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgICMgRGlzY29ubmVjdCB0aGUg ZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxm LCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToK KyAgICAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rp b25fZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fZ2V0LnB5Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyYTU1ODUKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9nZXQucHkKQEAgLTAsMCArMSw0OSBA QAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwor IworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE4LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBU ZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGlj ZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IHV1aWQKKworZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRp bHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1w b3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMg aW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnVuY3Nf dXRpbHMKKworCitjbGFzcyBGdW5jdGlvbkdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToK KyAgICAiIiJUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggYWRkZWQgZnVuY3Rpb24gdW5kZXIgc2NoZW1h IG5vZGUuIiIiCisgICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCisgICAgc2NlbmFyaW9z ID0gWworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBmdW5jdGlvbiBub2RlLgor ICAgICAgICAoJ0ZldGNoIEZ1bmN0aW9uIE5vZGUgVVJMJywKKyAgICAgICAgIGRpY3QodXJsPScv YnJvd3Nlci9mdW5jdGlvbi9vYmovJykpCisgICAgXQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6 CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIGZ1bmN0aW9uIHVuZGVyIGRh dGFiYXNlIG5vZGUuICIiIgorICAgICAgICBzdXBlcihGdW5jdGlvbkdldFRlc3RDYXNlLCBzZWxm KS5zZXRVcCgpCisgICAgICAgIHNlbGYgPSBmdW5jc191dGlscy5zZXRfdXAoc2VsZikKKworICAg ICAgICBmdW5jX25hbWUgPSAidGVzdF9mdW5jdGlvbl9nZXRfJXMiICUgc3RyKHV1aWQudXVpZDQo KSlbMTo4XQorICAgICAgICBmdW5jdGlvbl9pbmZvID0gZnVuY3NfdXRpbHMuY3JlYXRlX2Z1bmN0 aW9uKAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFf bmFtZSwgZnVuY19uYW1lKQorCisgICAgICAgIHRyaWdnZXJfZnVuY19pZCA9IGZ1bmN0aW9uX2lu Zm9bMF0KKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCisgICAgICAgICAgICBz ZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0 cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsg Jy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKyBzdHIodHJpZ2dl cl9mdW5jX2lkKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKyAgICAg ICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAg IyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25u ZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorCisgICAgZGVm IHRlYXJEb3duKHNlbGYpOgorICAgICAgICBwYXNzCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVzdHMvdGVzdF9mdW5jdGlvbl9wdXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5j dGlvbl9wdXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODU2NTY4Nwot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1bmN0aW9uX3B1dC5w eQpAQCAtMCwwICsxLDU3IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTgsIFRoZSBwZ0Fk bWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0 aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQganNv bgoraW1wb3J0IHV1aWQKKworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxz Citmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9t IHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMK K2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnVuY3NfdXRpbHMKKworCitjbGFzcyBGdW5jdGlvblB1 dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIHVw ZGF0ZSBuZXcgZnVuY3Rpb24gdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorICAgIHNraXBfb25fZGF0 YWJhc2UgPSBbJ2dwZGInXQorICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBk ZWZhdWx0IFVSTCBmb3IgZnVuY3Rpb24gbm9kZS4KKyAgICAgICAgKCdGZXRjaCBGdW5jdGlvbiBO b2RlIFVSTCcsCisgICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vb2JqLycpKQor ICAgIF0KKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlv biB3aWxsIHVwZGF0ZSBmdW5jdGlvbiB1bmRlciBkYXRhYmFzZSBub2RlLiAiIiIKKyAgICAgICAg c3VwZXIoRnVuY3Rpb25QdXRUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQorICAgICAgICBzZWxmID0g ZnVuY3NfdXRpbHMuc2V0X3VwKHNlbGYpCisKKyAgICAgICAgZnVuY19uYW1lID0gInRlc3RfZXZl bnRfZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgZnVuY3Rpb25f aW5mbyA9IGZ1bmNzX3V0aWxzLmNyZWF0ZV9mdW5jdGlvbigKKyAgICAgICAgICAgIHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIGZ1bmNfbmFtZSkKKworICAgICAg ICBmdW5jX2lkID0gZnVuY3Rpb25faW5mb1swXQorCisgICAgICAgIGRhdGEgPSB7CisgICAgICAg ICAgICAiZGVzY3JpcHRpb24iOiAiVGhpcyBpcyBhIHByb2NlZHVyZSB1cGRhdGUgY29tbWVudCIs CisgICAgICAgICAgICAiaWQiOiBmdW5jX2lkCisgICAgICAgIH0KKworICAgICAgICBwdXRfcmVz cG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGls cy5TRVJWRVJfR1JPVVApICsKKyAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNlcnZlcl9pZCkg KyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2No ZW1hX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoZnVuY19pZCksCisgICAgICAgICAgICBk YXRhPWpzb24uZHVtcHMoZGF0YSksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUp CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHB1dF9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAw KQorICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0 aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQp CisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3Byb2NlZHVyZV9hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVz dHMvdGVzdF9wcm9jZWR1cmVfYWRkLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmI1Y2RmMTcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9w cm9jZWR1cmVfYWRkLnB5CkBAIC0wLDAgKzEsOTAgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisj IHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0g MjAxOCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJl bGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisKK2ltcG9ydCBqc29uCitpbXBvcnQgdXVpZAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAg ZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91 dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBmdW5jc191dGlscworCisKK2Ns YXNzIFByb2NlZHVyZUFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhp cyBjbGFzcyB3aWxsIGFkZCBuZXcgcHJvY2VkdXJlIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKyAg ICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAg ICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHByb2NlZHVyZSBub2RlLgorICAgICAgICAoJ0Zl dGNoIFByb2NlZHVyZSBOb2RlIFVSTCcsIGRpY3QoCisgICAgICAgICAgICB1cmw9Jy9icm93c2Vy L3Byb2NlZHVyZS9vYmovJykpCisgICAgXQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAg ICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIHByb2NlZHVyZSB1bmRlciBzY2hlbWEgbm9k ZS4gIiIiCisgICAgICAgIHN1cGVyKFByb2NlZHVyZUFkZFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgp CisgICAgICAgIHNlbGYgPSBmdW5jc191dGlscy5zZXRfdXAoc2VsZikKKworICAgICAgICBpZiBz ZWxmLnNlcnZlcl90eXBlID09ICJwZyIgYW5kXAorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy X3ZlcnNpb24gPCAxMTAwMDA6CisgICAgICAgICAgICBtZXNzYWdlID0gIlByb2NlZHVyZXMgYXJl IG5vdCBzdXBwb3J0ZWQgYnkgUEcgPCAxMTAwMDAuIgorICAgICAgICAgICAgc2VsZi5za2lwVGVz dChtZXNzYWdlKQorCisgICAgICAgIGRiX3VzZXIgPSBzZWxmLnNlcnZlclsidXNlcm5hbWUiXQor ICAgICAgICBkYXRhID0geworICAgICAgICAgICAgImFjbCI6IFsKKyAgICAgICAgICAgICAgICB7 CisgICAgICAgICAgICAgICAgICAgICJncmFudGVlIjogZGJfdXNlciwKKyAgICAgICAgICAgICAg ICAgICAgImdyYW50b3IiOiBkYl91c2VyLAorICAgICAgICAgICAgICAgICAgICAicHJpdmlsZWdl cyI6CisgICAgICAgICAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJpdmlsZWdlX3R5cGUiOiAi WCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcml2aWxlZ2UiOiBUcnVlLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2l0aF9ncmFudCI6IFRydWUKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBdCisgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJhcmd1bWVudHMiOiBb XSwKKyAgICAgICAgICAgICJmdW5jb3duZXIiOiBkYl91c2VyLAorICAgICAgICAgICAgImxhbm5h bWUiOiAic3FsIiwKKyAgICAgICAgICAgICJuYW1lIjogInRlc3RfcGdfMTFfcHJvYyIsCisgICAg ICAgICAgICAib3B0aW9ucyI6IFtdLAorICAgICAgICAgICAgInByb2xlYWtwcm9vZiI6IFRydWUs CisgICAgICAgICAgICAicHJvbmFtZXNwYWNlIjogMjIwMCwKKyAgICAgICAgICAgICJwcm9zZWNk ZWYiOiBUcnVlLAorICAgICAgICAgICAgInByb3NyYyI6ICJCRUdJTiBSQUlTRSBFWENFUFRJT04g J2NvbW1hbmQgJSBpcyBkaXNhYmxlZCcsIgorICAgICAgICAgICAgICAgICAgICAgICIgdGdfdGFn OyBFTkQ7IiwKKyAgICAgICAgICAgICJzZWNsYWJlbHMiOiBbXSwKKyAgICAgICAgICAgICJ2YXJp YWJsZXMiOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6 ICJlbmFibGVfc29ydCIsCisgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFRydWUKKyAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgIH0KKworICAgICAgICBkYXRhWyJu YW1lIl0gPSAidGVzdF9wcm9jX2FkZF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAg ICAgIGlmIHNlbGYuc2VydmVyX3R5cGUgPT0gJ3BnJzoKKyAgICAgICAgICAgIGRhdGFbJ3Byb3Ny YyddID0gJ1NFTEVDVCAxOycKKyAgICAgICAgaWYgc2VsZi5zY2hlbWFfaWQ6CisgICAgICAgICAg ICBkYXRhWydwcm9uYW1lc3BhY2UnXSA9IHNlbGYuc2NoZW1hX2lkCisgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IGRhdGFbJ3Byb25hbWVzcGFjZSddCisgICAgICAg IHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3Ry KHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVy X2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2Vs Zi5zY2hlbWFfaWQpICsgJy8nLCBkYXRhPWpzb24uZHVtcHMoZGF0YSksCisgICAgICAgICAgICBj b250ZW50X3R5cGU9J2h0bWwvanNvbicKKyAgICAgICAgKQorCisgICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgICMgRGlzY29ubmVjdCB0 aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShz ZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZXN0cy90ZXN0X3Byb2NlZHVyZV9kZWxldGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVz dF9wcm9jZWR1cmVfZGVsZXRlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjQ1NTZiOWYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9wcm9j ZWR1cmVfZGVsZXRlLnB5CkBAIC0wLDAgKzEsNTYgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisj IHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0g MjAxOCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJl bGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisKK2ltcG9ydCB1dWlkCisKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2Vy dmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGls cworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJv bSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxz Citmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZ1bmNzX3V0aWxzCisKKworY2xhc3MgcHJvY2VkdXJl RGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIiBUaGlzIGNsYXNzIHdp bGwgZGVsZXRlIHRoZSBwcm9jZWR1cmUgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorICAgIHNraXBf b25fZGF0YWJhc2UgPSBbJ2dwZGInXQorICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRj aGluZyBkZWZhdWx0IFVSTCBmb3IgcHJvY2VkdXJlIG5vZGUuCisgICAgICAgICgnRmV0Y2ggUHJv Y2VkdXJlIE5vZGUgVVJMJywKKyAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci9wcm9jZWR1cmUv b2JqLycpKQorICAgIF0KKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhp cyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBwcm9jZWR1cmUgdW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIi CisgICAgICAgIHN1cGVyKHByb2NlZHVyZURlbGV0ZVRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCisg ICAgICAgIHNlbGYgPSBmdW5jc191dGlscy5zZXRfdXAoc2VsZikKKworICAgICAgICBpZiBzZWxm LnNlcnZlcl90eXBlID09ICJwZyIgYW5kXAorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX3Zl cnNpb24gPCAxMTAwMDA6CisgICAgICAgICAgICBtZXNzYWdlID0gIlByb2NlZHVyZXMgYXJlIG5v dCBzdXBwb3J0ZWQgYnkgUEcgPCAxMTAwMDAuIgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCht ZXNzYWdlKQorCisgICAgICAgIGZ1bmNfbmFtZSA9ICJ0ZXN0X3Byb2NlZHVyZV9kZWxldGVfJXMi ICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBwcm9jX2luZm8gPSBmdW5jc191dGls cy5jcmVhdGVfcHJvY2VkdXJlKAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFt ZSwgc2VsZi5zY2hlbWFfbmFtZSwgZnVuY19uYW1lLAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJf dHlwZSkKKworICAgICAgICBwcm9jX2lkID0gcHJvY19pbmZvWzBdCisgICAgICAgIHJlc3BvbnNl ID0gc2VsZi50ZXN0ZXIuZGVsZXRlKAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMu U0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsg Jy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArCisgICAgICAgICAgICBz dHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsgc3RyKHByb2NfaWQpLAorICAgICAgICAgICAgY29u dGVudF90eXBlPSdodG1sL2pzb24nCisgICAgICAgICkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh bHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBk YXRhYmFzZQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYs IHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgor ICAgICAgICBwYXNzCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9wcm9jZWR1 cmVfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfcHJvY2VkdXJlX2dldC5weQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjE1ODc4Ci0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfcHJvY2VkdXJlX2dldC5weQpAQCAtMCwwICsxLDU1 IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xz CisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTgsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50 IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBM aWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQgdXVpZAorCitmcm9tIHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1 dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBp bXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGls cyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBmdW5j c191dGlscworCisKK2NsYXNzIFByb2NlZHVyZUdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9y KToKKyAgICAiIiJUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggYWRkZWQgcHJvY2VkdXJlIHVuZGVyIHNj aGVtYSBub2RlLiIiIgorICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQorICAgIHNjZW5h cmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgcHJvY2VkdXJlIG5v ZGUuCisgICAgICAgICgnRmV0Y2ggUHJvY2VkdXJlIE5vZGUgVVJMJywKKyAgICAgICAgIGRpY3Qo dXJsPScvYnJvd3Nlci9wcm9jZWR1cmUvb2JqLycpKQorICAgIF0KKworICAgIGRlZiBydW5UZXN0 KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGdldCBwcm9jZWR1cmUgdW5k ZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCisgICAgICAgIHN1cGVyKFByb2NlZHVyZUdldFRlc3RDYXNl LCBzZWxmKS5zZXRVcCgpCisgICAgICAgIHNlbGYgPSBmdW5jc191dGlscy5zZXRfdXAoc2VsZikK KworICAgICAgICBpZiBzZWxmLnNlcnZlcl90eXBlID09ICJwZyIgYW5kXAorICAgICAgICAgICAg ICAgIHNlbGYuc2VydmVyX3ZlcnNpb24gPCAxMTAwMDA6CisgICAgICAgICAgICBtZXNzYWdlID0g IlByb2NlZHVyZXMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgUEcgPCAxMTAwMDAuIgorICAgICAgICAg ICAgc2VsZi5za2lwVGVzdChtZXNzYWdlKQorCisgICAgICAgIGZ1bmNfbmFtZSA9ICJ0ZXN0X3By b2NlZHVyZV9nZXRfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBwcm9jX2lu Zm8gPSBmdW5jc191dGlscy5jcmVhdGVfcHJvY2VkdXJlKAorICAgICAgICAgICAgc2VsZi5zZXJ2 ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgZnVuY19uYW1lLAorICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJfdHlwZSkKKworICAgICAgICBwcm9jX2lkID0gcHJvY19pbmZvWzBdCisg ICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAorICAgICAgICAgICAgc2VsZi51cmwg KyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5z ZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArCisg ICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsgc3RyKHByb2NfaWQpLAorICAg ICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorICAgICAgICBzZWxmLmFzc2VydEVx dWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAgICAgICAjIERpc2Nvbm5lY3QgdGhl IGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2Vs Ziwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6 CisgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3Byb2Nl ZHVyZV9wdXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9wcm9jZWR1cmVfcHV0LnB5Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczYmExYWUKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9wcm9jZWR1cmVfcHV0LnB5CkBAIC0wLDAgKzEs NjIgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9v bHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxOCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1l bnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FM IExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCBqc29uCitpbXBvcnQgdXVp ZAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2Vz LnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1p bi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbi5w eXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9y dCB1dGlscyBhcyBmdW5jc191dGlscworCisKK2NsYXNzIFByb2NlZHVyZVB1dFRlc3RDYXNlKEJh c2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIHVwZGF0ZSBuZXcgcHJv Y2VkdXJlIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKyAgICBza2lwX29uX2RhdGFiYXNlID0gWydn cGRiJ10KKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwg Zm9yIHByb2NlZHVyZSBub2RlLgorICAgICAgICAoJ0ZldGNoIFByb2NlZHVyZSBOb2RlIFVSTCcs CisgICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvcHJvY2VkdXJlL29iai8nKSkKKyAgICBdCisK KyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCB1 cGRhdGUgcHJvY2VkdXJlIHVuZGVyIGRhdGFiYXNlIG5vZGUuICIiIgorICAgICAgICBzdXBlcihQ cm9jZWR1cmVQdXRUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQorICAgICAgICBzZWxmID0gZnVuY3Nf dXRpbHMuc2V0X3VwKHNlbGYpCisKKyAgICAgICAgaWYgc2VsZi5zZXJ2ZXJfdHlwZSA9PSAicGci IGFuZFwKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl92ZXJzaW9uIDwgMTEwMDAwOgorICAg ICAgICAgICAgbWVzc2FnZSA9ICJQcm9jZWR1cmVzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IFBHIDwg MTEwMDAwLiIKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QobWVzc2FnZSkKKworICAgICAgICBm dW5jX25hbWUgPSAidGVzdF9wcm9jZWR1cmVfcHV0XyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6 OF0KKyAgICAgICAgcHJvY19pbmZvID0gZnVuY3NfdXRpbHMuY3JlYXRlX3Byb2NlZHVyZSgKKyAg ICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIGZ1 bmNfbmFtZSwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyX3R5cGUpCisKKyAgICAgICAgcHJvY19p ZCA9IHByb2NfaW5mb1swXQorICAgICAgICBkYXRhID0geworICAgICAgICAgICAgImRlc2NyaXB0 aW9uIjogIlRoaXMgaXMgcHJvY2VkdXJlIHVwZGF0ZSBjb21tZW50IiwKKyAgICAgICAgICAgICJp ZCI6IHByb2NfaWQKKyAgICAgICAgfQorCisgICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVz dGVyLnB1dCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkg KworICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxm LmRiX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsK KyAgICAgICAgICAgIHN0cihwcm9jX2lkKSwKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhk YXRhKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKyAgICAgICAgc2VsZi5h c3NlcnRFcXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgICMgRGlz Y29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9k YXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKworICAgIGRlZiB0ZWFy RG93bihzZWxmKToKKyAgICAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3Rz L3Rlc3RfdHJpZ2dlcl9mdW5jX2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3RyaWdn ZXJfZnVuY19hZGQucHkKaW5kZXggZDIzOGJmMC4uZTk5ZjdjMyAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5jX2FkZC5weQorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfYWRkLnB5CkBAIC0xMCwxNCArMTAsMTEgQEAKIGltcG9y dCBqc29uCiBpbXBvcnQgdXVpZAogCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKLSAgICB1dGlscyBhcyBz Y2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAgICBkYXRhYmFzZV91dGlscwotZnJv bSBwZ2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVyX3V0aWxzCiBmcm9t IHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jl c3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVz dF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBh cyBmdW5jc191dGlscwogCiAKIGNsYXNzIFRyaWdnZXJGdW5jQWRkVGVzdENhc2UoQmFzZVRlc3RH ZW5lcmF0b3IpOgpAQCAtMzIsMzAgKzI5LDcgQEAgY2xhc3MgVHJpZ2dlckZ1bmNBZGRUZXN0Q2Fz ZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6CiAgICAgICAgICIi IiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIHRyaWdnZXIgZnVuY3Rpb24gdW5kZXIgc2NoZW1hIG5v ZGUuICIiIgogICAgICAgICBzdXBlcihUcmlnZ2VyRnVuY0FkZFRlc3RDYXNlLCBzZWxmKS5ydW5U ZXN0KCkKLSAgICAgICAgZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFd WyJkYl9uYW1lIl0KLSAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hl bWEiXVstMV0KLSAgICAgICAgc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0g ICAgICAgIGRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgcHJvcmV0dHlwZW5h bWUgPSAiZXZlbnRfdHJpZ2dlci90cmlnZ2VyIgotICAgICAgICBzZXJ2ZXJfY29uID0gc2VydmVy X3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNlcnZlcl9pZCkKLSAgICAgICAgaWYgbm90IHNl cnZlcl9jb25bImluZm8iXSA9PSAiU2VydmVyIGNvbm5lY3RlZC4iOgotICAgICAgICAgICAgcmFp c2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBzZXJ2ZXIgdG8gYWRkIHJlc291cmNl ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZ3JvdXBzLiIpCi0gICAgICAgIGlmICJ0 eXBlIiBpbiBzZXJ2ZXJfY29uWyJkYXRhIl06Ci0gICAgICAgICAgICBpZiBzZXJ2ZXJfY29uWyJk YXRhIl1bInZlcnNpb24iXSA8IDkwMzAwOgotICAgICAgICAgICAgICAgIHByb3JldHR5cGVuYW1l ID0gInRyaWdnZXIiCi0KLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9k YXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLCBkYl9pZCkKLSAgICAgICAgaWYg bm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIGEgZnVuY3Rpb24uIikK LSAgICAgICAgc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNj aGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KLSAgICAgICAgc2NoZW1hX3Jl c3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNj aGVtYV9uYW1lKQotICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAg cmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBhIGZ1bmN0 aW9uLiIpCisgICAgICAgIHNlbGYgPSBmdW5jc191dGlscy5zZXRfdXAoc2VsZikKICAgICAgICAg ZGJfdXNlciA9IHNlbGYuc2VydmVyWyJ1c2VybmFtZSJdCiAgICAgICAgIGRhdGEgPSB7CiAgICAg ICAgICAgICAiYWNsIjogWwpAQCAtNzksNyArNTMsNyBAQCBjbGFzcyBUcmlnZ2VyRnVuY0FkZFRl c3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICJvcHRpb25zIjogW10sCiAg ICAgICAgICAgICAicHJvbGVha3Byb29mIjogVHJ1ZSwKICAgICAgICAgICAgICJwcm9uYW1lc3Bh Y2UiOiAyMjAwLAotICAgICAgICAgICAgInByb3JldHR5cGVuYW1lIjogcHJvcmV0dHlwZW5hbWUs CisgICAgICAgICAgICAicHJvcmV0dHlwZW5hbWUiOiBzZWxmLnByb3JldHR5cGVuYW1lLAogICAg ICAgICAgICAgInByb3NlY2RlZiI6IFRydWUsCiAgICAgICAgICAgICAicHJvc3JjIjogIkJFR0lO IFJBSVNFIEVYQ0VQVElPTiAnY29tbWFuZCAlIGlzIGRpc2FibGVkJywiCiAgICAgICAgICAgICAg ICAgICAgICAgIiB0Z190YWc7IEVORDsiLApAQCAtOTgsMTYgKzcyLDE3IEBAIGNsYXNzIFRyaWdn ZXJGdW5jQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICBmb3IgZnVuY190 eXBlIGluIHRyaWdnZXJfZnVuY190eXBlczoKICAgICAgICAgICAgIGRhdGFbJ3Byb3JldHR5cGVu YW1lJ10gPSBmdW5jX3R5cGUKICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICJ0ZXN0X2V2ZW50 X2FkZF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCi0gICAgICAgICAgICBpZiBzY2hlbWFf aWQ6Ci0gICAgICAgICAgICAgICAgZGF0YVsncHJvbmFtZXNwYWNlJ10gPSBzY2hlbWFfaWQKKyAg ICAgICAgICAgIGlmIHNlbGYuc2NoZW1hX2lkOgorICAgICAgICAgICAgICAgIGRhdGFbJ3Byb25h bWVzcGFjZSddID0gc2VsZi5zY2hlbWFfaWQKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg ICAgICAgc2NoZW1hX2lkID0gZGF0YVsncHJvbmFtZXNwYWNlJ10KKyAgICAgICAgICAgICAgICBz ZWxmLnNjaGVtYV9pZCA9IGRhdGFbJ3Byb25hbWVzcGFjZSddCiAgICAgICAgICAgICByZXNwb25z ZSA9IHNlbGYudGVzdGVyLnBvc3QoCiAgICAgICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRp bHMuU0VSVkVSX0dST1VQKSArICcvJyArCi0gICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkg KyAnLycgKyBzdHIoZGJfaWQpICsgJy8nICsgc3RyKHNjaGVtYV9pZCkgKworICAgICAgICAgICAg ICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKworICAgICAg ICAgICAgICAgICcvJyArIHN0cihzZWxmLnNjaGVtYV9pZCkgKwogICAgICAgICAgICAgICAgICcv JywgZGF0YT1qc29uLmR1bXBzKGRhdGEpLCBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKICAgICAg ICAgICAgICkKIAogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVz X2NvZGUsIDIwMCkKICAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBk YXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlcnZlcl9pZCwgZGJfaWQp CisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5z ZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVz dF90cmlnZ2VyX2Z1bmNfZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dl cl9mdW5jX2RlbGV0ZS5weQppbmRleCAzZDFmZTlmLi5mNzIyNDcwIDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19kZWxldGUucHkKQEAgLTksMTMgKzksOSBAQAog CiBpbXBvcnQgdXVpZAogCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKLSAgICB1dGlscyBhcyBzY2hlbWFf dXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFz ZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2Fk bWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVyX3V0aWxzCiBmcm9tIHBnYWRt aW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24g aW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGls cyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyB0cmln Z2VyX2Z1bmNzX3V0aWxzCiAKQEAgLTI5LDQ5ICsyNSwyNyBAQCBjbGFzcyBUcmlnZ2VyRnVuY0Rl bGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgIGRpY3QodXJsPScvYnJv d3Nlci90cmlnZ2VyX2Z1bmN0aW9uL29iai8nKSkKICAgICBdCiAKLSAgICBkZWYgc2V0VXAoc2Vs Zik6Ci0gICAgICAgIHN1cGVyKFRyaWdnZXJGdW5jRGVsZXRlVGVzdENhc2UsIHNlbGYpLnNldFVw KCkKLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVst MV1bImRiX25hbWUiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gcGFyZW50X25vZGVfZGlj dFsic2NoZW1hIl1bLTFdWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0g cGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdWyJzY2hlbWFfaWQiXQotCiAgICAgZGVmIHJ1 blRlc3Qoc2VsZik6CiAgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHRyaWdn ZXIgZnVuY3Rpb24gdW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCi0gICAgICAgIHNjaGVtYV9pbmZv ID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlcnZlcl9pZCA9IHNj aGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBkYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9p ZCJdCisgICAgICAgIHN1cGVyKFRyaWdnZXJGdW5jRGVsZXRlVGVzdENhc2UsIHNlbGYpLnNldFVw KCkKKyAgICAgICAgc2VsZiA9IHRyaWdnZXJfZnVuY3NfdXRpbHMuc2V0X3VwKHNlbGYpCisKICAg ICAgICAgZnVuY19uYW1lID0gInRlc3RfZXZlbnRfZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0 KCkpWzE6OF0KLSAgICAgICAgc2VydmVyX2NvbiA9IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZl cihzZWxmLCBzZXJ2ZXJfaWQpCi0gICAgICAgIGlmIG5vdCBzZXJ2ZXJfY29uWyJpbmZvIl0gPT0g IlNlcnZlciBjb25uZWN0ZWQuIjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQg bm90IGNvbm5lY3QgdG8gc2VydmVyIHRvIGFkZCByZXNvdXJjZSAiCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgImdyb3Vwcy4iKQotICAgICAgICBzZXJ2ZXJfdmVyc2lvbiA9IDAKLSAgICAg ICAgaWYgInR5cGUiIGluIHNlcnZlcl9jb25bImRhdGEiXToKLSAgICAgICAgICAgIGlmIHNlcnZl cl9jb25bImRhdGEiXVsidmVyc2lvbiJdIDwgOTAzMDA6Ci0gICAgICAgICAgICAgICAgc2VydmVy X3ZlcnNpb24gPSBzZXJ2ZXJfY29uWyJkYXRhIl1bInZlcnNpb24iXQotICAgICAgICBzZWxmLmZ1 bmN0aW9uX2luZm8gPSB0cmlnZ2VyX2Z1bmNzX3V0aWxzLmNyZWF0ZV90cmlnZ2VyX2Z1bmN0aW9u KAorICAgICAgICBmdW5jdGlvbl9pbmZvID0gdHJpZ2dlcl9mdW5jc191dGlscy5jcmVhdGVfdHJp Z2dlcl9mdW5jdGlvbigKICAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNl bGYuc2NoZW1hX25hbWUsIGZ1bmNfbmFtZSwKLSAgICAgICAgICAgIHNlcnZlcl92ZXJzaW9uKQor ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfdmVyc2lvbikKIAotICAgICAgICBkYl9jb24gPSBkYXRh YmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQs IGRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0 byBhZGQgY29sbGF0aW9uLiIpCi0gICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGls cy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUp Ci0gICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIHRoZSBjb2xsYXRpb24uIikK LSAgICAgICAgdHJpZ2dlcl9mdW5jX2lkID0gc2VsZi5mdW5jdGlvbl9pbmZvWzBdCisgICAgICAg IHRyaWdnZXJfZnVuY19pZCA9IGZ1bmN0aW9uX2luZm9bMF0KICAgICAgICAgcmVzcG9uc2UgPSBz ZWxmLnRlc3Rlci5kZWxldGUoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJW RVJfR1JPVVApICsgJy8nICsgc3RyKHNlcnZlcl9pZCkgKyAnLycgKwotICAgICAgICAgICAgc3Ry KGRiX2lkKSArICcvJyArCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJf R1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKwor ICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxm LnNjaGVtYV9pZCkgKyAnLycgKyBzdHIodHJpZ2dlcl9mdW5jX2lkKSwKICAgICAgICAgICAgIGNv bnRlbnRfdHlwZT0naHRtbC9qc29uJwogICAgICAgICApCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAgICAgICAgICMgRGlzY29ubmVjdCB0aGUg ZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxm LCBzZXJ2ZXJfaWQsIGRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2Rh dGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQogCiAgICAgZGVmIHRlYXJE b3duKHNlbGYpOgogICAgICAgICBwYXNzCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMv dGVzdF90cmlnZ2VyX2Z1bmNfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dl cl9mdW5jX2dldC5weQppbmRleCA3ZWIwZDJhLi4xNWFlMWJhIDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfZ2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19nZXQucHkKQEAgLTksMTMgKzksOSBAQAogCiBpbXBvcnQg dXVpZAogCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJh c2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKLSAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMg aW1wb3J0IHV0aWxzIGFzIFwKICAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxz IGltcG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVyX3V0aWxzCiBmcm9tIHBnYWRtaW4udXRpbHMu cm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBh cmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQg dGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyB0cmlnZ2VyX2Z1bmNz X3V0aWxzCiAKQEAgLTI5LDQ5ICsyNSwyNiBAQCBjbGFzcyBUcmlnZ2VyRnVuY0dldFRlc3RDYXNl KEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci90cmlnZ2Vy X2Z1bmN0aW9uL29iai8nKSkKICAgICBdCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAg IHN1cGVyKFRyaWdnZXJGdW5jR2V0VGVzdENhc2UsIHNlbGYpLnNldFVwKCkKLSAgICAgICAgc2Vs Zi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQot ICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFd WyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gcGFyZW50X25vZGVfZGlj dFsic2NoZW1hIl1bLTFdWyJzY2hlbWFfaWQiXQotCiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6CiAg ICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHRyaWdnZXIgZnVuY3Rpb24gdW5k ZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVf ZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2 ZXJfaWQiXQotICAgICAgICBkYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGZ1 bmNfbmFtZSA9ICJ0ZXN0X2V2ZW50X2dldF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCi0g ICAgICAgIGRiX3VzZXIgPSBzZWxmLnNlcnZlclsidXNlcm5hbWUiXQotICAgICAgICBzZXJ2ZXJf Y29uID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNlcnZlcl9pZCkKLSAgICAg ICAgaWYgbm90IHNlcnZlcl9jb25bImluZm8iXSA9PSAiU2VydmVyIGNvbm5lY3RlZC4iOgotICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBzZXJ2ZXIgdG8g YWRkIHJlc291cmNlICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZ3JvdXBzLiIpCi0g ICAgICAgIHNlcnZlcl92ZXJzaW9uID0gMAotICAgICAgICBpZiAidHlwZSIgaW4gc2VydmVyX2Nv blsiZGF0YSJdOgotICAgICAgICAgICAgaWYgc2VydmVyX2NvblsiZGF0YSJdWyJ2ZXJzaW9uIl0g PCA5MDMwMDoKLSAgICAgICAgICAgICAgICBzZXJ2ZXJfdmVyc2lvbiA9IHNlcnZlcl9jb25bImRh dGEiXVsidmVyc2lvbiJdCi0gICAgICAgIHNlbGYuZnVuY3Rpb25faW5mbyA9IHRyaWdnZXJfZnVu Y3NfdXRpbHMuY3JlYXRlX3RyaWdnZXJfZnVuY3Rpb24oCisgICAgICAgIHN1cGVyKFRyaWdnZXJG dW5jR2V0VGVzdENhc2UsIHNlbGYpLnNldFVwKCkKKyAgICAgICAgc2VsZiA9IHRyaWdnZXJfZnVu Y3NfdXRpbHMuc2V0X3VwKHNlbGYpCisKKyAgICAgICAgZnVuY19uYW1lID0gInRlc3RfZXZlbnRf ZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgZnVuY3Rpb25faW5m byA9IHRyaWdnZXJfZnVuY3NfdXRpbHMuY3JlYXRlX3RyaWdnZXJfZnVuY3Rpb24oCiAgICAgICAg ICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBmdW5jX25h bWUsCi0gICAgICAgICAgICBzZXJ2ZXJfdmVyc2lvbikKKyAgICAgICAgICAgIHNlbGYuc2VydmVy X3ZlcnNpb24pCiAKLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRh YmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLCBkYl9pZCkKLSAgICAgICAgaWYgbm90 IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIGNvbGxhdGlvbi4iKQotICAg ICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5z ZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQotICAgICAgICBpZiBub3Qgc2NoZW1h X3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0 aGUgc2NoZW1hIHRvIGFkZCB0aGUgY29sbGF0aW9uLiIpCi0gICAgICAgIHRyaWdnZXJfZnVuY19p ZCA9IHNlbGYuZnVuY3Rpb25faW5mb1swXQorICAgICAgICB0cmlnZ2VyX2Z1bmNfaWQgPSBmdW5j dGlvbl9pbmZvWzBdCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAotICAgICAg ICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0cihzZXJ2 ZXJfaWQpICsgJy8nICsKLSAgICAgICAgICAgIHN0cihkYl9pZCkgKyAnLycgKworICAgICAgICAg ICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAg ICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLmRiX2lk KSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsgc3RyKHRy aWdnZXJfZnVuY19pZCksCiAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCiAg ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAgICAg ICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlz Y29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZXJ2ZXJfaWQsIGRiX2lkKQorICAgICAgICBkYXRhYmFz ZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRi X2lkKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgICBwYXNzCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfcHV0LnB5IGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5jX3B1dC5weQppbmRleCA2M2Q0YzA4Li43OGRkYzhm IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfcHV0LnB5 CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19wdXQucHkKQEAgLTEw LDEzICsxMCw5IEBACiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAotZnJvbSBwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9y dCBcCi0gICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAg ZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzIGFz IHNlcnZlcl91dGlscwogZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdl bmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJl Z3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZy b20gLiBpbXBvcnQgdXRpbHMgYXMgdHJpZ2dlcl9mdW5jc191dGlscwogCkBAIC0zMCw2MyArMjYs MzMgQEAgY2xhc3MgVHJpZ2dlckZ1bmNQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAg ICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvdHJpZ2dlcl9mdW5jdGlvbi9vYmovJykpCiAgICAg XQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzdXBlcihUcmlnZ2VyRnVuY1B1dFRl c3RDYXNlLCBzZWxmKS5zZXRVcCgpCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2Rl X2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFt ZSA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXVsic2NoZW1hX25hbWUiXQotICAgICAg ICBzZWxmLnNjaGVtYV9pZCA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXVsic2NoZW1h X2lkIl0KLQogICAgIGRlZiBydW5UZXN0KHNlbGYpOgogICAgICAgICAiIiIgVGhpcyBmdW5jdGlv biB3aWxsIHVwZGF0ZSB0cmlnZ2VyIGZ1bmN0aW9uIHVuZGVyIGRhdGFiYXNlIG5vZGUuICIiIgot ICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQotICAg ICAgICBzZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgZGJfaWQg PSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAgICBmdW5jX25hbWUgPSAidGVzdF9ldmVudF9w dXRfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQotICAgICAgICBzZXJ2ZXJfY29uID0gc2Vy dmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNlcnZlcl9pZCkKLSAgICAgICAgaWYgbm90 IHNlcnZlcl9jb25bImluZm8iXSA9PSAiU2VydmVyIGNvbm5lY3RlZC4iOgotICAgICAgICAgICAg cmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBzZXJ2ZXIgdG8gYWRkIHJlc291 cmNlICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZ3JvdXBzLiIpCi0gICAgICAgIHNl cnZlcl92ZXJzaW9uID0gMAotICAgICAgICBpZiAidHlwZSIgaW4gc2VydmVyX2NvblsiZGF0YSJd OgotICAgICAgICAgICAgaWYgc2VydmVyX2NvblsiZGF0YSJdWyJ2ZXJzaW9uIl0gPCA5MDMwMDoK LSAgICAgICAgICAgICAgICBzZXJ2ZXJfdmVyc2lvbiA9IHNlcnZlcl9jb25bImRhdGEiXVsidmVy c2lvbiJdCi0gICAgICAgIHNlbGYuZnVuY3Rpb25faW5mbyA9IHRyaWdnZXJfZnVuY3NfdXRpbHMu Y3JlYXRlX3RyaWdnZXJfZnVuY3Rpb24oCisgICAgICAgIHN1cGVyKFRyaWdnZXJGdW5jUHV0VGVz dENhc2UsIHNlbGYpLnNldFVwKCkKKyAgICAgICAgc2VsZiA9IHRyaWdnZXJfZnVuY3NfdXRpbHMu c2V0X3VwKHNlbGYpCisKKyAgICAgICAgZnVuY19uYW1lID0gInRlc3RfZXZlbnRfZGVsZXRlXyVz IiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgZnVuY3Rpb25faW5mbyA9IHRyaWdn ZXJfZnVuY3NfdXRpbHMuY3JlYXRlX3RyaWdnZXJfZnVuY3Rpb24oCiAgICAgICAgICAgICBzZWxm LnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBmdW5jX25hbWUsCi0gICAg ICAgICAgICBzZXJ2ZXJfdmVyc2lvbikKLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMu Y29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLCBkYl9pZCkKLSAg ICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIGNvbGxh dGlvbi4iKQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3Nj aGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQotICAgICAgICBp ZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3Vs ZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCB0aGUgY29sbGF0aW9uLiIpCi0gICAgICAgIGZ1 bmNfbmFtZSA9IHNlbGYuZnVuY3Rpb25faW5mb1sxXQotICAgICAgICBmdW5jX3Jlc3BvbnNlID0g dHJpZ2dlcl9mdW5jc191dGlscy52ZXJpZnlfdHJpZ2dlcl9mdW5jdGlvbigKLSAgICAgICAgICAg IHNlbGYuc2VydmVyLAotICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgZnVu Y19uYW1lKQotICAgICAgICBpZiBub3QgZnVuY19yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHRyaWdnZXIgZnVuY3Rpb24gdG8gdXBkYXRl IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgaXQncyBkZXRhaWxzLiIpCisgICAgICAg ICAgICBzZWxmLnNlcnZlcl92ZXJzaW9uKQorCisgICAgICAgIHRyaWdnZXJfZnVuY19pZCA9IGZ1 bmN0aW9uX2luZm9bMF0KIAotICAgICAgICB0cmlnZ2VyX2Z1bmNfaWQgPSBzZWxmLmZ1bmN0aW9u X2luZm9bMF0KICAgICAgICAgZGF0YSA9IHsKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJU aGlzIGlzIHRyaWdnZXIgZnVuY3Rpb24gdXBkYXRlIGNvbW1lbnQiLAorICAgICAgICAgICAgImRl c2NyaXB0aW9uIjogIlRoaXMgaXMgYSB0cmlnZ2VyIGZ1bmN0aW9uIHVwZGF0ZSBjb21tZW50IiwK ICAgICAgICAgICAgICJpZCI6IHRyaWdnZXJfZnVuY19pZAogICAgICAgICB9CiAKICAgICAgICAg cHV0X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KAogICAgICAgICAgICAgc2VsZi51cmwgKyBz dHIodXRpbHMuU0VSVkVSX0dST1VQKSArCi0gICAgICAgICAgICAnLycgKyBzdHIoc2VydmVyX2lk KSArICcvJyArIHN0cihkYl9pZCkgKyAnLycgKworICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYu c2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArICcvJyArCiAgICAgICAgICAgICBz dHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsKICAgICAgICAgICAgIHN0cih0cmlnZ2VyX2Z1bmNf aWQpLAogICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAogICAgICAgICAgICAgZm9s bG93X3JlZGlyZWN0cz1UcnVlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwdXRfcmVzcG9u c2Uuc3RhdHVzX2NvZGUsIDIwMCkKICAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQot ICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlcnZlcl9p ZCwgZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2Vs Ziwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6 CiAgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy91dGlscy5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZXN0cy91dGlscy5weQppbmRleCA0ZmFjZjYwLi4zNjA2YjQ1IDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdXRpbHMucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl c3RzL3V0aWxzLnB5CkBAIC0xMyw2ICsxMywxMSBAQCBpbXBvcnQgc3lzCiBpbXBvcnQgdHJhY2Vi YWNrCiAKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGls cyBhcyB1dGlscworZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2Vy dmVyX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0 YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMK K2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVz dHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscwogCiAKIGRlZiBjcmVhdGVf dHJpZ2dlcl9mdW5jdGlvbihzZXJ2ZXIsIGRiX25hbWUsIHNjaGVtYV9uYW1lLCBmdW5jX25hbWUs CkBAIC05MiwzICs5NywxMTggQEAgZGVmIHZlcmlmeV90cmlnZ2VyX2Z1bmN0aW9uKHNlcnZlciwg ZGJfbmFtZSwgZnVuY19uYW1lKToKICAgICBmdW5jdGlvbnMgPSBwZ19jdXJzb3IuZmV0Y2hvbmUo KQogICAgIGNvbm5lY3Rpb24uY2xvc2UoKQogICAgIHJldHVybiBmdW5jdGlvbnMKKworCitkZWYg Y3JlYXRlX3Byb2NlZHVyZShzZXJ2ZXIsIGRiX25hbWUsIHNjaGVtYV9uYW1lLCBmdW5jX25hbWUs IHNfdHlwZSk6CisgICAgIiIiVGhpcyBmdW5jdGlvbiBhZGQgdGhlIHByb2NlZHVyZSB0byBzY2hl bWEiIiIKKyAgICB0cnk6CisgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVj dGlvbihkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VydmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VydmVyWydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydob3N0J10sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3BvcnQnXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnc3NsbW9kZSddKQorICAg ICAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgIGlmIHNfdHlwZSA9 PSAncGcnOgorICAgICAgICAgICAgcXVlcnkgPSAiQ1JFQVRFIFBST0NFRFVSRSAiICsgc2NoZW1h X25hbWUgKyAiLiIgKyBmdW5jX25hbWUgKyBcCisgICAgICAgICAgICAgICAgICAgICIoKSIgXAor ICAgICAgICAgICAgICAgICAgICAiIExBTkdVQUdFICdzcWwnIiBcCisgICAgICAgICAgICAgICAg ICAgICIgU0VDVVJJVFkgREVGSU5FUiBBUyAkJCIgXAorICAgICAgICAgICAgICAgICAgICAiIFNF TEVDVCAxOyAkJDsiCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBxdWVyeSA9ICJDUkVBVEUg UFJPQ0VEVVJFICIgKyBzY2hlbWFfbmFtZSArICIuIiArIGZ1bmNfbmFtZSArIFwKKyAgICAgICAg ICAgICAgICAgICAgIigpIiBcCisgICAgICAgICAgICAgICAgICAgICIgU0VDVVJJVFkgREVGSU5F UiBBUyAkQk9EWSQgQkVHSU4iIFwKKyAgICAgICAgICAgICAgICAgICAgIiBOVUxMOyBFTkQ7ICRC T0RZJCIKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUocXVlcnkpCisgICAgICAgIGNvbm5lY3Rp b24uY29tbWl0KCkKKyAgICAgICAgIyBHZXQgJ29pZCcgZnJvbSBuZXdseSBjcmVhdGVkIGZ1bmN0 aW9uCisgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKCJTRUxFQ1QgcHJvLm9pZCwgcHJvLnByb25h bWUgRlJPTSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiBwZ19wcm9jIHBybyBXSEVSRSBw cm8ucHJvbmFtZT0nJXMnIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmNfbmFtZSkK KyAgICAgICAgZnVuY3Rpb25zID0gcGdfY3Vyc29yLmZldGNob25lKCkKKyAgICAgICAgY29ubmVj dGlvbi5jbG9zZSgpCisgICAgICAgIHJldHVybiBmdW5jdGlvbnMKKyAgICBleGNlcHQgRXhjZXB0 aW9uOgorICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9c3lzLnN0ZGVycikKKworCitk ZWYgY3JlYXRlX2Z1bmN0aW9uKHNlcnZlciwgZGJfbmFtZSwgc2NoZW1hX25hbWUsIGZ1bmNfbmFt ZSk6CisgICAgIiIiVGhpcyBmdW5jdGlvbiBhZGQgdGhlIHByb2NlZHVyZSB0byBzY2hlbWEiIiIK KyAgICB0cnk6CisgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihk Yl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vy dmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyWydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VydmVyWydob3N0J10sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3BvcnQnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnc3NsbW9kZSddKQorICAgICAgICBw Z19jdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgIHF1ZXJ5ID0gIkNSRUFURSBG VU5DVElPTiAiICsgc2NoZW1hX25hbWUgKyAiLiIgKyBmdW5jX25hbWUgKyBcCisgICAgICAgICAg ICAgICAgIigpIiBcCisgICAgICAgICAgICAgICAgIiBSRVRVUk5TIGludGVnZXIgTEFOR1VBR0Ug J3NxbCcgU1RBQkxFIExFQUtQUk9PRiIgXAorICAgICAgICAgICAgICAgICIgU0VDVVJJVFkgREVG SU5FUiBBUyAkJCIgXAorICAgICAgICAgICAgICAgICIgU0VMRUNUIDE7ICQkOyIKKyAgICAgICAg cGdfY3Vyc29yLmV4ZWN1dGUocXVlcnkpCisgICAgICAgIGNvbm5lY3Rpb24uY29tbWl0KCkKKyAg ICAgICAgIyBHZXQgJ29pZCcgZnJvbSBuZXdseSBjcmVhdGVkIGZ1bmN0aW9uCisgICAgICAgIHBn X2N1cnNvci5leGVjdXRlKCJTRUxFQ1QgcHJvLm9pZCwgcHJvLnByb25hbWUgRlJPTSIKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIiBwZ19wcm9jIHBybyBXSEVSRSBwcm8ucHJvbmFtZT0nJXMn IiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmNfbmFtZSkKKyAgICAgICAgZnVuY3Rp b25zID0gcGdfY3Vyc29yLmZldGNob25lKCkKKyAgICAgICAgY29ubmVjdGlvbi5jbG9zZSgpCisg ICAgICAgIHJldHVybiBmdW5jdGlvbnMKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICB0 cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9c3lzLnN0ZGVycikKKworCitkZWYgdmVyaWZ5X3Byb2Nl ZHVyZShzZXJ2ZXIsIGRiX25hbWUsIHByb2NfbmFtZSk6CisgICAgIiIiVGhpcyBmdW5jdGlvbiB2 ZXJpZmllcyB0aGUgcHJvY2VkdXJlIGluIGRiIiIiCisgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdl dF9kYl9jb25uZWN0aW9uKGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VydmVyWydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2hvc3QnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydwb3J0J10sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnc3NsbW9kZSddKQorICAgIHBnX2N1cnNv ciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICBwZ19jdXJzb3IuZXhlY3V0ZSgiU0VMRUNUIHBy by5vaWQsIHByby5wcm9uYW1lIEZST00iCisgICAgICAgICAgICAgICAgICAgICAgIiBwZ19wcm9j IHBybyBXSEVSRSBwcm8ucHJvbmFtZT0nJXMnIiAlCisgICAgICAgICAgICAgICAgICAgICAgcHJv Y19uYW1lKQorICAgIHByb2NzID0gcGdfY3Vyc29yLmZldGNob25lKCkKKyAgICBjb25uZWN0aW9u LmNsb3NlKCkKKyAgICByZXR1cm4gcHJvY3MKKworCitkZWYgc2V0X3VwKG9iaik6CisgICAgIiIi Q29tbW9uIHNldCB1cCBmdW5jdGlvbiIiIgorICAgIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFy ZW50X25vZGVfZGljdAorCisgICAgb2JqLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRh YmFzZSJdWy0xXVsiZGJfbmFtZSJdCisgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0 WyJzY2hlbWEiXVstMV0KKyAgICBvYmouc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9p ZCJdCisgICAgb2JqLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KKyAgICBvYmoucHJvcmV0 dHlwZW5hbWUgPSAiZXZlbnRfdHJpZ2dlci90cmlnZ2VyIgorICAgIHNlcnZlcl9jb24gPSBzZXJ2 ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIob2JqLCBvYmouc2VydmVyX2lkKQorCisgICAgaWYgbm90 IHNlcnZlcl9jb25bImluZm8iXSA9PSAiU2VydmVyIGNvbm5lY3RlZC4iOgorICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIHNlcnZlci4iKQorICAgIGlmICJ2ZXJz aW9uIiBpbiBzZXJ2ZXJfY29uWyJkYXRhIl06CisgICAgICAgIG9iai5zZXJ2ZXJfdmVyc2lvbiA9 IHNlcnZlcl9jb25bImRhdGEiXVsidmVyc2lvbiJdCisgICAgICAgIGlmIHNlcnZlcl9jb25bImRh dGEiXVsidmVyc2lvbiJdIDwgOTAzMDA6CisgICAgICAgICAgICBvYmoucHJvcmV0dHlwZW5hbWUg PSAidHJpZ2dlciIKKyAgICBpZiAidHlwZSIgaW4gc2VydmVyX2NvblsiZGF0YSJdOgorICAgICAg ICBvYmouc2VydmVyX3R5cGUgPSBzZXJ2ZXJfY29uWyJkYXRhIl1bInR5cGUiXQorCisgICAgZGJf Y29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShvYmosIHV0aWxzLlNFUlZFUl9H Uk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iai5z ZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv YmouZGJfaWQpCisgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKyAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQorICAg IG9iai5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICBvYmouc2NoZW1h X25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQorICAgIHNjaGVtYV9yZXNwb25zZSA9 IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhvYmouc2VydmVyLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmouZGJfbmFtZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqLnNjaGVtYV9uYW1l KQorICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQorCisgICAgcmV0dXJuIG9iagpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci91dGlscy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdXRp bHMucHkKaW5kZXggMDBhNzJkZC4uN2Y2ZjE5YyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJv d3Nlci91dGlscy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3V0aWxzLnB5CkBAIC01MSw3 ICs1MSw5IEBAIGNsYXNzIFBHQ2hpbGRNb2R1bGUob2JqZWN0KToKIAogICAgIGRlZiBfX2luaXRf XyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgogICAgICAgICBzZWxmLm1pbl92ZXIgPSAwCi0gICAg ICAgIHNlbGYubWF4X3ZlciA9IDEwMDAwMDAwMDAKKyAgICAgICAgc2VsZi5tYXhfdmVyID0gMTEw MDAwMDAwMAorICAgICAgICBzZWxmLm1pbl9wcGFzdmVyID0gMAorICAgICAgICBzZWxmLm1heF9w cGFzdmVyID0gMTEwMDAwMDAwMAogICAgICAgICBzZWxmLnNlcnZlcl90eXBlID0gTm9uZQogICAg ICAgICBzZWxmLm1pbl9ncGRidmVyID0gODAzMjMKICAgICAgICAgc2VsZi5tYXhfZ3BkYnZlciA9 IDEwMDAwMDAwMDAKQEAgLTcyLDYgKzc0LDkgQEAgY2xhc3MgUEdDaGlsZE1vZHVsZShvYmplY3Qp OgogICAgICAgICBpZiBzZWxmLnNlcnZlcl90eXBlIGlzIE5vbmUgb3IgbWFuYWdlci5zZXJ2ZXJf dHlwZSBpbiBzZWxmLnNlcnZlcl90eXBlOgogICAgICAgICAgICAgbWluX3NlcnZlcl92ZXJzaW9u ID0gc2VsZi5taW5fdmVyCiAgICAgICAgICAgICBtYXhfc2VydmVyX3ZlcnNpb24gPSBzZWxmLm1h eF92ZXIKKyAgICAgICAgICAgIGlmIG1hbmFnZXIuc2VydmVyX3R5cGUgPT0gJ3BwYXMnOgorICAg ICAgICAgICAgICAgIG1pbl9zZXJ2ZXJfdmVyc2lvbiA9IHNlbGYubWluX3BwYXN2ZXIKKyAgICAg ICAgICAgICAgICBtYXhfc2VydmVyX3ZlcnNpb24gPSBzZWxmLm1heF9wcGFzdmVyCiAgICAgICAg ICAgICBpZiBtYW5hZ2VyLnNlcnZlcl90eXBlID09ICdncGRiJzoKICAgICAgICAgICAgICAgICBt aW5fc2VydmVyX3ZlcnNpb24gPSBzZWxmLm1pbl9ncGRidmVyCiAgICAgICAgICAgICAgICAgbWF4 X3NlcnZlcl92ZXJzaW9uID0gc2VsZi5tYXhfZ3BkYnZlcgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vdG9vbHMvZGVidWdnZXIvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi90b29scy9kZWJ1Z2dl ci9fX2luaXRfXy5weQppbmRleCBjMGU4OWY1Li4xYmY3OTdjIDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi90b29scy9kZWJ1Z2dlci9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi90b29scy9k ZWJ1Z2dlci9fX2luaXRfXy5weQpAQCAtMzY1LDggKzM2NSwxMSBAQCBkZWYgaW5pdF9mdW5jdGlv bihub2RlX3R5cGUsIHNpZCwgZGlkLCBzY2lkLCBmaWQsIHRyaWQ9Tm9uZSk6CiAKICAgICAjIENo ZWNrIHNlcnZlciB0eXBlIGlzIHBwYXMgb3Igbm90CiAgICAgcHBhc19zZXJ2ZXIgPSBGYWxzZQor ICAgIGlzX3Byb2Nfc3VwcG9ydGVkID0gRmFsc2UKICAgICBpZiBzZXJ2ZXJfdHlwZSA9PSAncHBh cyc6CiAgICAgICAgIHBwYXNfc2VydmVyID0gVHJ1ZQorICAgIGVsc2U6CisgICAgICAgIGlzX3By b2Nfc3VwcG9ydGVkID0gVHJ1ZSBpZiBtYW5hZ2VyLnZlcnNpb24gPj0gMTEwMDAwIGVsc2UgRmFs c2UKIAogICAgICMgU2V0IHRoZSB0ZW1wbGF0ZSBwYXRoIHJlcXVpcmVkIHRvIHJlYWQgdGhlIHNx bCBmaWxlcwogICAgIHRlbXBsYXRlX3BhdGggPSAnZGVidWdnZXIvc3FsJwpAQCAtMzk1LDcgKzM5 OCwxMCBAQCBkZWYgaW5pdF9mdW5jdGlvbihub2RlX3R5cGUsIHNpZCwgZGlkLCBzY2lkLCBmaWQs IHRyaWQ9Tm9uZSk6CiAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAogICAgICAgICAiLyIuam9p bihbdGVtcGxhdGVfcGF0aCwgJ2dldF9mdW5jdGlvbl9kZWJ1Z19pbmZvLnNxbCddKSwKICAgICAg ICAgaXNfcHBhc19kYXRhYmFzZT1wcGFzX3NlcnZlciwKLSAgICAgICAgaGFzRmVhdHVyZUZ1bmN0 aW9uRGVmYXVsdHM9VHJ1ZSwgZmlkPWZpZAorICAgICAgICBoYXNGZWF0dXJlRnVuY3Rpb25EZWZh dWx0cz1UcnVlLAorICAgICAgICBmaWQ9ZmlkLAorICAgICAgICBpc19wcm9jX3N1cHBvcnRlZD1p c19wcm9jX3N1cHBvcnRlZAorCiAgICAgKQogICAgIHN0YXR1cywgcl9zZXQgPSBjb25uLmV4ZWN1 dGVfZGljdChzcWwpCiAgICAgaWYgbm90IHN0YXR1czoKQEAgLTUwOSw2ICs1MTUsNyBAQCBkZWYg aW5pdF9mdW5jdGlvbihub2RlX3R5cGUsIHNpZCwgZGlkLCBzY2lkLCBmaWQsIHRyaWQ9Tm9uZSk6 CiAgICAgICAgICdvaWQnOiBmaWQsCiAgICAgICAgICduYW1lJzogcl9zZXRbJ3Jvd3MnXVswXVsn bmFtZSddLAogICAgICAgICAnaXNfZnVuYyc6IHJfc2V0Wydyb3dzJ11bMF1bJ2lzZnVuYyddLAor ICAgICAgICAnaXNfcHBhc19kYXRhYmFzZSc6IHBwYXNfc2VydmVyLAogICAgICAgICAnaXNfY2Fs bGFibGUnOiBGYWxzZSwKICAgICAgICAgJ3NjaGVtYSc6IHJfc2V0Wydyb3dzJ11bMF1bJ3NjaGVt YW5hbWUnXSwKICAgICAgICAgJ2xhbmd1YWdlJzogcl9zZXRbJ3Jvd3MnXVswXVsnbGFubmFtZSdd LApAQCAtNzY1LDYgKzc3Miw3IEBAIGRlZiBpbml0aWFsaXplX3RhcmdldChkZWJ1Z190eXBlLCBz aWQsIGRpZCwgc2NpZCwgZnVuY19pZCwgdHJpX2lkPU5vbmUpOgogICAgICAgICAnb2lkJzogZnVu Y19kYXRhWydvaWQnXSwKICAgICAgICAgJ25hbWUnOiBmdW5jX2RhdGFbJ25hbWUnXSwKICAgICAg ICAgJ2lzX2Z1bmMnOiBmdW5jX2RhdGFbJ2lzX2Z1bmMnXSwKKyAgICAgICAgJ2lzX3BwYXNfZGF0 YWJhc2UnOiBmdW5jX2RhdGFbJ2lzX3BwYXNfZGF0YWJhc2UnXSwKICAgICAgICAgJ2lzX2NhbGxh YmxlJzogZnVuY19kYXRhWydpc19jYWxsYWJsZSddLAogICAgICAgICAnc2NoZW1hJzogZnVuY19k YXRhWydzY2hlbWEnXSwKICAgICAgICAgJ2xhbmd1YWdlJzogZnVuY19kYXRhWydsYW5ndWFnZSdd LApAQCAtMTA2Miw3ICsxMDcwLDggQEAgZGVmIHN0YXJ0X2RlYnVnZ2VyX2xpc3RlbmVyKHRyYW5z X2lkKToKICAgICAgICAgICAgICAgICAgICAgZnVuY19uYW1lPWZ1bmNfbmFtZSwKICAgICAgICAg ICAgICAgICAgICAgaXNfZnVuYz1zZXNzaW9uX2Z1bmN0aW9uX2RhdGFbJ2lzX2Z1bmMnXSwKICAg ICAgICAgICAgICAgICAgICAgcmV0X3R5cGU9c2Vzc2lvbl9mdW5jdGlvbl9kYXRhWydyZXR1cm5f dHlwZSddLAotICAgICAgICAgICAgICAgICAgICBkYXRhPXNlc3Npb25fZnVuY3Rpb25fZGF0YVsn YXJnc192YWx1ZSddCisgICAgICAgICAgICAgICAgICAgIGRhdGE9c2Vzc2lvbl9mdW5jdGlvbl9k YXRhWydhcmdzX3ZhbHVlJ10sCisgICAgICAgICAgICAgICAgICAgIGlzX3BwYXNfZGF0YWJhc2U9 c2Vzc2lvbl9mdW5jdGlvbl9kYXRhWydpc19wcGFzX2RhdGFiYXNlJ10KICAgICAgICAgICAgICAg ICApCiAKICAgICAgICAgICAgIHN0YXR1cywgcmVzdWx0ID0gY29ubi5leGVjdXRlX2FzeW5jKHN0 cl9xdWVyeSkKQEAgLTE5NDYsOCArMTk1NSw5IEBAIGRlZiBwb2xsX2VuZF9leGVjdXRpb25fcmVz dWx0KHRyYW5zX2lkKToKICAgICAgICAgc3RhdHVzLCByZXN1bHQgPSBjb25uLnBvbGwoKQogICAg ICAgICBzZXNzaW9uX2Z1bmN0aW9uX2RhdGEgPSBzZXNzaW9uWydmdW5jdGlvbkRhdGEnXVtzdHIo dHJhbnNfaWQpXQogICAgICAgICBpZiBzdGF0dXMgPT0gQVNZTkNfT0sgYW5kIFwKLSAgICAgICAg ICAgICAgICBub3Qgc2Vzc2lvbl9mdW5jdGlvbl9kYXRhWydpc19mdW5jJ10gYW5kIFwKLSAgICAg ICAgICAgICAgICBzZXNzaW9uX2Z1bmN0aW9uX2RhdGFbJ2xhbmd1YWdlJ10gPT0gJ2VkYnNwbCc6 CisgICAgICAgICAgICBub3Qgc2Vzc2lvbl9mdW5jdGlvbl9kYXRhWydpc19mdW5jJ10gYW5kXAor ICAgICAgICAgICAgKHNlc3Npb25fZnVuY3Rpb25fZGF0YVsnbGFuZ3VhZ2UnXSA9PSAnZWRic3Bs JyBvcgorICAgICAgICAgICAgICAgIHNlc3Npb25fZnVuY3Rpb25fZGF0YVsnbGFuZ3VhZ2UnXSA9 PSAncGxwZ3NxbCcpOgogICAgICAgICAgICAgc3RhdHVzID0gJ1N1Y2Nlc3MnCiAgICAgICAgICAg ICBhZGRpdGlvbmFsX21zZ3MgPSBjb25uLm1lc3NhZ2VzKCkKICAgICAgICAgICAgIGlmIGxlbihh ZGRpdGlvbmFsX21zZ3MpID4gMDoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVn Z2VyL3RlbXBsYXRlcy9kZWJ1Z2dlci9zcWwvZXhlY3V0ZV9wbHBnc3FsLnNxbCBiL3dlYi9wZ2Fk bWluL3Rvb2xzL2RlYnVnZ2VyL3RlbXBsYXRlcy9kZWJ1Z2dlci9zcWwvZXhlY3V0ZV9wbHBnc3Fs LnNxbAppbmRleCBiODI1NzhiLi4xMzRhMTdmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29s cy9kZWJ1Z2dlci90ZW1wbGF0ZXMvZGVidWdnZXIvc3FsL2V4ZWN1dGVfcGxwZ3NxbC5zcWwKKysr IGIvd2ViL3BnYWRtaW4vdG9vbHMvZGVidWdnZXIvdGVtcGxhdGVzL2RlYnVnZ2VyL3NxbC9leGVj dXRlX3BscGdzcWwuc3FsCkBAIC0xLDYgKzEsOCBAQAogeyMjIyBDcmVhdGUgZXhlY3V0ZXIgZnVu Y3Rpb24gZm9yIHBscGdzcWwgZnVuY3Rpb24gZGVidWdnaW5nICMjI30KLXslIGlmIG5vdCBpc19m dW5jICV9Cit7JSBpZiBpc19wcGFzX2RhdGFiYXNlIGFuZCBub3QgaXNfZnVuYyAlfQogICAgIEVY RUMge3sgZnVuY19uYW1lIH19ICgKK3slIGVsaWYgbm90IGlzX2Z1bmMgJX0KKyAgICBDQUxMIHt7 IGZ1bmNfbmFtZSB9fSAoCiB7JSBlbGlmIHJldF90eXBlID09ICdyZWNvcmQnICV9CiAgICAgU0VM RUNUIHt7IGZ1bmNfbmFtZSB9fSAoCiB7JSBlbHNlICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi90b29scy9kZWJ1Z2dlci90ZW1wbGF0ZXMvZGVidWdnZXIvc3FsL2dldF9mdW5jdGlvbl9kZWJ1 Z19pbmZvLnNxbCBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3RlbXBsYXRlcy9kZWJ1Z2dl ci9zcWwvZ2V0X2Z1bmN0aW9uX2RlYnVnX2luZm8uc3FsCmluZGV4IDcwMWY1ZWUuLjI4MDdjYWQg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3RlbXBsYXRlcy9kZWJ1Z2dl ci9zcWwvZ2V0X2Z1bmN0aW9uX2RlYnVnX2luZm8uc3FsCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xz L2RlYnVnZ2VyL3RlbXBsYXRlcy9kZWJ1Z2dlci9zcWwvZ2V0X2Z1bmN0aW9uX2RlYnVnX2luZm8u c3FsCkBAIC00MSw3ICs0MSwxMSBAQCBTRUxFQ1QKICAgICAgICAgMCBBUyBwa2djb25zb2lkLAog ICAgICAgICBuLm9pZCAgICAgQVMgc2NoZW1hLAogICAgICAgICBuLm5zcG5hbWUgQVMgc2NoZW1h bmFtZSwKLSAgICAgICAgdHJ1ZSBBUyBpc2Z1bmMsCisgICAgICAgIHslIGlmIGlzX3Byb2Nfc3Vw cG9ydGVkICV9CisgICAgICAgIENBU0UgV0hFTiBwLnByb2tpbmQgaW4gKCdmJywgJ3cnKSBUSEVO IFRSVUUgRUxTRSBGQUxTRSBFTkQgQVMgaXNmdW5jLAorICAgICAgICB7JSBlbHNlICV9CisgICAg ICAgIFRSVUUgQVMgaXNmdW5jLAorICAgICAgICB7JSBlbmRpZiAlfQogICAgIHslZW5kaWYlfQog ICAgIHBnX2NhdGFsb2cucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwLm9pZCkg QVMgc2lnbmF0dXJlLAogCkBAIC02MSw0ICs2NSw0IEBAIEZST00KIHslIGVuZGlmICV9CiB7JSBp ZiBmaWQgJX0KIFdIRVJFIHAub2lkID0ge3tmaWR9fTo6b2lkOwoteyUgZW5kaWYgJX0KXCBObyBu ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vdXRpbHMvdmVyc2lvbmVkX3RlbXBsYXRlX2xvYWRlci5weSBiL3dlYi9wZ2FkbWluL3V0aWxz L3ZlcnNpb25lZF90ZW1wbGF0ZV9sb2FkZXIucHkKaW5kZXggMzQ4MTk3OC4uZGFkYWViYSAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vdXRpbHMvdmVyc2lvbmVkX3RlbXBsYXRlX2xvYWRlci5weQor KysgYi93ZWIvcGdhZG1pbi91dGlscy92ZXJzaW9uZWRfdGVtcGxhdGVfbG9hZGVyLnB5CkBAIC03 NSw3ICs3NSw4IEBAIGRlZiBnZXRfdmVyc2lvbl9tYXBwaW5nKHRlbXBsYXRlKToKICAgICAgICAg ICAgIHsnbmFtZSc6ICJkZWZhdWx0IiwgJ251bWJlcic6IDB9CiAgICAgICAgICkKIAotICAgIHJl dHVybiAoeyduYW1lJzogIjEwX3BsdXMiLCAnbnVtYmVyJzogMTAwMDAwfSwKKyAgICByZXR1cm4g KHsnbmFtZSc6ICIxMV9wbHVzIiwgJ251bWJlcic6IDExMDAwMH0sCisgICAgICAgICAgICB7J25h bWUnOiAiMTBfcGx1cyIsICdudW1iZXInOiAxMDAwMDB9LAogICAgICAgICAgICAgeyduYW1lJzog IjkuNl9wbHVzIiwgJ251bWJlcic6IDkwNjAwfSwKICAgICAgICAgICAgIHsnbmFtZSc6ICI5LjVf cGx1cyIsICdudW1iZXInOiA5MDUwMH0sCiAgICAgICAgICAgICB7J25hbWUnOiAiOS40X3BsdXMi LCAnbnVtYmVyJzogOTA0MDB9LAo= --00000000000046932e056e6c8d32--