Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hVWjj-0003hm-RT for pgadmin-hackers@arkaria.postgresql.org; Tue, 28 May 2019 07:41:32 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1hVWji-0005Bt-LU for pgadmin-hackers@arkaria.postgresql.org; Tue, 28 May 2019 07:41:30 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hVWjh-0005Bl-SQ for pgadmin-hackers@lists.postgresql.org; Tue, 28 May 2019 07:41:30 +0000 Received: from mail-lj1-x234.google.com ([2a00:1450:4864:20::234]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hVWje-0004uv-3Z for pgadmin-hackers@postgresql.org; Tue, 28 May 2019 07:41:28 +0000 Received: by mail-lj1-x234.google.com with SMTP id z1so11227463ljb.3 for ; Tue, 28 May 2019 00:41:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=AGWqydJ0Gv43fOsUDjsNv4QqAOf5c+3uhlRC+e6G8q4=; b=orth6B9R7VHJVq39kzF9MFOp0pMMg2baqn0vOlwgCak3a7FXKErzzcNb8nhmTZRaKH LIk997ERGIZ2sfxlOJ4rZrE39oDaSXk4rx6Wsc3E3HVB6hKHRxx0UPTSr8V++77I2CP3 tDzlMIFvnNLVS4ZHiDVr43/7RbwoSOZRAIbQ0OniC2BGhLuNRMUDQOHRBBnppplpFvBL PJ15iFuezIW9TVHcxIzUPfmQSLpzsSP8C/8+xEniolerg9rfOQ550QWnoRX3zB9jX8in DYW7BKeaR/hX6Z/NiUs3DCNkU/wnLqKlB2hFZQK7YbG4Y3t+gJqgmYeMHNbLIepJW7Br BBcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=AGWqydJ0Gv43fOsUDjsNv4QqAOf5c+3uhlRC+e6G8q4=; b=trnGlK8towZiZ118MrPFV71tFeXe+Qv2243xAhREeIayESpcLcZ5eBKtCVok91X4pW d7pnRTZFNnsT7//kyYW6BzR6oCv5ajp1OSsijOozVHS+QllfgWm7Bb7itUTurWle8EBg 2Z2Dk07gHyW0f5pqmxlFeYagafEYfT4xJv6y9FRgJF+NYkKUfxuPgyEDOR2jI+zdp0iG XLx5LOe8vU1T+G4KMVU1/50UY5bfYc+W8ISO9uvtFqaeUpsjK6rZOOHBG9O71jd4qIx8 7oL+4VLj6K0+xOtaHAXGET1X+ZsglmonDOHdBAEEvIBJbatobtF6DRd/d/a3hXhQkykt Ei8Q== X-Gm-Message-State: APjAAAX4FK/2hP4Gs/ifSx07EBPaJPJyN7OP45uEO4hKi7ilo9hFS9Tq LaTDbEMxSTZNjy2RdlmIHjWNdkKYFJo0Fej94QENqw== X-Google-Smtp-Source: APXvYqxDdNFt9fUIWMHKs1HwBNBYaPeSVDvBe9xWVAVVEKNmb/SpGZ7eipvznHZMn0a9IQ9Pzj8YADkgHzdnq3iTGX4= X-Received: by 2002:a2e:89cc:: with SMTP id c12mr56432353ljk.90.1559029282652; Tue, 28 May 2019 00:41:22 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Aditya Toshniwal Date: Tue, 28 May 2019 13:10:46 +0530 Message-ID: Subject: Re: [pgAdmin][RM4195] Tab navigation is broken in Query tool (Accessibility) To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="0000000000009670a90589edcae2" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --0000000000009670a90589edcae2 Content-Type: multipart/alternative; boundary="0000000000009670a80589edcae0" --0000000000009670a80589edcae0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Thu, May 23, 2019 at 1:31 PM Dave Page wrote: > Hi, > > On further testing, this doesn't seem to be working as expected. > Alt+Shift+] or [ in the query tool are typing =E2=80=99 and =E2=80=9D and= not changing the > tab. If I switch to a non-input tab (e.g. History), they still don't work= . > I am not able to simulate the quotes problem, but I have made a few corrections to fix the switching. Attached is the updated patch, kindly review. > > Alt+Shift+Tab changes the panel successfully though, and does cause the > flash as expected. > > I'm using Chrome 74.0.3729.131 on Mojave. > > On Wed, May 22, 2019 at 6:53 AM Aditya Toshniwal < > aditya.toshniwal@enterprisedb.com> wrote: > >> Hi, >> >> Attached is the updated patch with doc changes. >> >> On Tue, May 21, 2019 at 5:42 PM Aditya Toshniwal < >> aditya.toshniwal@enterprisedb.com> wrote: >> >>> Hi, >>> >>> On Tue, May 21, 2019 at 5:32 PM Dave Page wrote: >>> >>>> Hi >>>> >>>> On Tue, May 21, 2019 at 10:01 AM Aditya Toshniwal < >>>> aditya.toshniwal@enterprisedb.com> wrote: >>>> >>>>> Hi Hackers, >>>>> >>>>> Attached is the patch to fix the accessibility issue in query tool. >>>>> >>>>> The query tool can be completely restructured unlike previously where >>>>> query tool used to stick at top and other tabs in the bottom. >>>>> - I have added a new shortcut to switch between frames if in query >>>>> tool the tab positions are changed. On switching the frames, the fram= e will >>>>> blink to show it is focussed. >>>>> - In the frame, you can switch tab same as previous. The tabs in SQL >>>>> editor are cyclic now, which means if you execute shortcut to go righ= t on >>>>> the last tab then it will cycle to first tab. >>>>> - I have also changed the default shortcut to switch between tabs fro= m >>>>> Shift+Ctrl+ArrowKeys to Shift+Ctrl+[ and ] similar to what we have in >>>>> browser tabs. >>>>> - Similar changes done for debugger also. >>>>> >>>> >>>> Shouldn't there be documentation changes to go with this? >>>> >>> Yes, definitely :P >>> Will send the updated patch. >>> >>>> >>>> Otherwise, it seems to work :-) >>>> >>>> -- >>>> Dave Page >>>> Blog: http://pgsnake.blogspot.com >>>> Twitter: @pgsnake >>>> >>>> EnterpriseDB UK: http://www.enterprisedb.com >>>> The Enterprise PostgreSQL Company >>>> >>> >>> >>> -- >>> Thanks and Regards, >>> Aditya Toshniwal >>> Software Engineer | EnterpriseDB India | Pune >>> "Don't Complain about Heat, Plant a TREE" >>> >> >> >> -- >> Thanks and Regards, >> Aditya Toshniwal >> Software Engineer | EnterpriseDB India | Pune >> "Don't Complain about Heat, Plant a TREE" >> > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --=20 Thanks and Regards, Aditya Toshniwal Software Engineer | EnterpriseDB India | Pune "Don't Complain about Heat, Plant a TREE" --0000000000009670a80589edcae0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

=
On Thu, May 23, 2019 at 1:31 PM Dave = Page <dpage@pgadmin.org> wro= te:
Hi,

On further te= sting, this doesn't seem to be working as expected. Alt+Shift+] or [ in= the query tool are typing=C2=A0=E2=80=99 and =E2=80=9D and not changing th= e tab. If I switch to a non-input tab (e.g. History), they still don't = work.=C2=A0
I am not able to simulate = the quotes problem, but I have made a few corrections to fix the switching.=
Attached is the updated patch, kindly review.=C2=A0

Alt+Shift+Tab changes the = panel successfully though, and does cause the flash as expected.=C2=A0

I'm using Chrome=C2=A074.0.3729.131 on Mojave.

On Wed, May 22, 2019 at 6:53 AM Aditya Toshniwal <aditya.tos= hniwal@enterprisedb.com> wrote:
Hi,

Attached is the updated patc= h with doc changes.

On Tue, May 21, 2019 at 5:42 PM Aditya Toshniwal &= lt;a= ditya.toshniwal@enterprisedb.com> wrote:
Hi,

On Tue, May 21, 2019 at 5:32= PM Dave Page <dp= age@pgadmin.org> wrote:
Hi

On Tue, May 21, 2019 at = 10:01 AM Aditya Toshniwal <aditya.toshniwal@enterprisedb.com> wrote:<= br>
Hi Hackers,

Attached is the patch to fix the access= ibility issue in query tool.

The query tool= can be completely restructured unlike previously where query tool used to = stick at top and other tabs in the bottom.=C2=A0
- I have added a new shortcut to switch between fr= ames if in query tool the tab positions are changed. On switching the frame= s, the frame will blink to show it is focussed.=C2=A0
- In the frame, you can switch tab same as pr= evious. The tabs in SQL editor are cyclic now, which means if you execute s= hortcut to go right on the last tab then it will cycle to first tab.
<= div style=3D"font-family:verdana,sans-serif">- I have also changed the defa= ult shortcut to switch between tabs from Shift+Ctrl+ArrowKeys to Shift+Ctrl= +[ and ] similar to what we have in browser tabs.
- Similar changes done for debugger also.

Shouldn't there be documentation c= hanges to go with this?=C2=A0
Yes, definitel= y :P
Will send the updated patch.=C2=A0

Otherwise, it seems to work :-)

--
Dave Page
Blog: http://pgsnake.blogspot.comTwitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterpris= e PostgreSQL Company


--
=
Thanks and Regards,
Aditya Toshniwal
Software Engineer |=C2=A0EnterpriseDB India |=C2=A0Pune
"Don't Compl= ain about Heat, Plant a TREE"


--
Thanks and Regards,=
Aditya Toshniwal<= /span>
Software Engi= neer |=C2=A0EnterpriseDB India |=C2=A0Pune
"Don't Complain about Heat, Plant a TR= EE"


--
Dave Page
Blog: http://pgsnake.blog= spot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.comThe Enterprise PostgreSQL Company


--
Adi= tya Toshniwal
Software Engineer |=C2=A0EnterpriseDB India |=C2=A0Pune
"Don't Complain a= bout Heat, Plant a TREE"
--0000000000009670a80589edcae0-- --0000000000009670a90589edcae2 Content-Type: application/octet-stream; name="RM4195_v3.patch" Content-Disposition: attachment; filename="RM4195_v3.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jw7hqqc20 ZGlmZiAtLWdpdCBhL2RvY3MvZW5fVVMva2V5Ym9hcmRfc2hvcnRjdXRzLnJzdCBiL2RvY3MvZW5f VVMva2V5Ym9hcmRfc2hvcnRjdXRzLnJzdAppbmRleCBhMGZmNTgwZC4uZWJlNmQ0ZWQgMTAwNjQ0 Ci0tLSBhL2RvY3MvZW5fVVMva2V5Ym9hcmRfc2hvcnRjdXRzLnJzdAorKysgYi9kb2NzL2VuX1VT L2tleWJvYXJkX3Nob3J0Y3V0cy5yc3QKQEAgLTE5MywyMyArMTkzLDI1IEBAIFdoZW4gdXNpbmcg dGhlIERlYnVnZ2VyLCB0aGUgZm9sbG93aW5nIHNob3J0Y3V0cyBhcmUgYXZhaWxhYmxlOgogICAg fCBBbHQgKyBTaGlmdCArIHEgICAgICAgICAgfCBBbHQgKyBTaGlmdCArIHEgICAgfCBFbnRlciBv ciBFZGl0IHZhbHVlcyBpbiBHcmlkICAgICAgfAogICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKwogCi1Jbm5lciBQYW5lbCBOYXZpZ2F0aW9uCi0qKioqKioqKioqKioqKioqKioqKioqCitJ bm5lciBUYWJzIGFuZCBQYW5lbHMgTmF2aWdhdGlvbgorKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKIAogV2hlbiB1c2luZyB0aGUgUXVlcnkgVG9vbCBhbmQgRGVidWdnZXIsIHRoZSBm b2xsb3dpbmcgc2hvcnRjdXRzIGFyZSBhdmFpbGFibGUKLWZvciBpbm5lciBwYW5lbCBuYXZpZ2F0 aW9uOgorZm9yIGlubmVyIHRhYnMgYW5kIHBhbmVscyBuYXZpZ2F0aW9uOgogCiAuLiB0YWJsZTo6 CiAgICA6Y2xhc3M6IGxvbmd0YWJsZQogICAgOndpZHRoczogMiAyIDMKIAotICAgKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0gICB8IFNob3J0Y3V0IChXaW5kb3dzL0xpbnV4KSB8IFNo b3J0Y3V0IChNYWMpICAgICAgICAgICAgfCBGdW5jdGlvbiAgICAgICAgICAgICAgICAgICAgIHwK LSAgICs9PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09 PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KwotICAgfCBBbHQgKyBTaGlmdCArIFJp Z2h0IEFycm93fCBBbHQgKyBTaGlmdCArIFJpZ2h0IEFycm93IHwgTW92ZSB0byBuZXh0IGlubmVy IHBhbmVsICAgICB8Ci0gICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLSAgIHwgQWx0 ICsgU2hpZnQgKyBMZWZ0IEFycm93IHwgQWx0ICsgU2hpZnQgKyBMZWZ0IEFycm93ICB8IE1vdmUg dG8gcHJldmlvdXMgaW5uZXIgcGFuZWwgfAotICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rCisgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgIHwgU2hvcnRj dXQgKFdpbmRvd3MvTGludXgpIHwgU2hvcnRjdXQgKE1hYykgICAgICAgICAgICB8IEZ1bmN0aW9u ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgKz09PT09PT09PT09PT09PT09PT09PT09 PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0rCisgICB8IEFsdCArIFNoaWZ0ICsgXSAgICAgICAgICB8IEFsdCArIFNoaWZ0 ICsgXSAgICAgICAgICAgfCBNb3ZlIHRvIG5leHQgdGFiIHdpdGhpbiBhIHBhbmVsICAgIHwKKyAg ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgfCBBbHQgKyBTaGlmdCAr IFsgICAgICAgICAgfCBBbHQgKyBTaGlmdCArIFsgICAgICAgICAgIHwgTW92ZSB0byBwcmV2aW91 cyB0YWIgd2l0aGluIGEgcGFuZWx8CisgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSsKKyAgIHwgQWx0ICsgU2hpZnQgKyBUYWIgICAgICAgIHwgQWx0ICsgU2hpZnQgKyBUYWIg ICAgICAgICB8IE1vdmUgYmV0d2VlbiBpbm5lciBwYW5lbHMgICAgICAgICAgfAorICAgKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAKIEFjY2VzcyBLZXkKICoqKioqKioqKioK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9rZXlib2FyZF9zaG9ydGN1dHMuanMg Yi93ZWIvcGdhZG1pbi9zdGF0aWMvanMva2V5Ym9hcmRfc2hvcnRjdXRzLmpzCmluZGV4IDAxNzUy OWI3Li5jNTY1Yjg2MiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2tleWJvYXJk X3Nob3J0Y3V0cy5qcworKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMva2V5Ym9hcmRfc2hvcnRj dXRzLmpzCkBAIC05LDYgKzksNyBAQAogCiBpbXBvcnQgJCBmcm9tICdqcXVlcnknOwogaW1wb3J0 IGdldHRleHQgZnJvbSAnc291cmNlcy9nZXR0ZXh0JzsKK2ltcG9ydCB7IGdldE1vZCB9IGZyb20g J3NvdXJjZXMvdXRpbHMnOwogCiBjb25zdCBQRVJJT0RfS0VZID0gMTkwLAogICBGV0RfU0xBU0hf S0VZID0gMTkxLApAQCAtMTE2LDkgKzExNyw1MiBAQCBmdW5jdGlvbiB2YWxpZGF0ZVNob3J0Y3V0 S2V5cyh1c2VyX2RlZmluZWRfc2hvcnRjdXQsIGV2ZW50KSB7CiAgICAgdXNlcl9kZWZpbmVkX3No b3J0Y3V0LmtleS5rZXlfY29kZSA9PSBrZXlDb2RlOwogfQogCisvLyBGaW5kcyB0aGUgZGVzaXJl ZCBwYW5lbCBvbiB3aGljaCB1c2VyIHdhbnRzIHRvIG5hdmlnYXRlIHRvCitmdW5jdGlvbiBmb2N1 c0RvY2tlclBhbmVsKGRvY2tlciwgb3ApIHsKKyAgaWYoIWRvY2tlcikgeworICAgIHJldHVybjsK KyAgfQorCisgIC8vIElmIG5vIGZyYW1lIGluIGZvY3VzLCBmb2N1cyB0aGUgZmlyc3Qgb25lCisg IGlmKCFkb2NrZXIuX2ZvY3VzRnJhbWUpIHsKKyAgICBpZihkb2NrZXIuX2ZyYW1lTGlzdC5sZW5n dGggPT0gMCAmJiBkb2NrZXIuX2ZyYW1lTGlzdFswXS5fcGFuZWxMaXN0Lmxlbmd0aCA9PSAwKSB7 CisgICAgICByZXR1cm47CisgICAgfQorICAgIGRvY2tlci5fZnJhbWVMaXN0WzBdLl9wYW5lbExp c3RbZG9ja2VyLl9mcmFtZUxpc3RbMF0uX2N1clRhYl0uZm9jdXMoKTsKKyAgfQorCisgIGxldCBm b2N1c19mcmFtZSA9IGRvY2tlci5fZm9jdXNGcmFtZSwKKyAgICBmb2N1c19pZCA9IDAsCisgICAg Zmxhc2ggPSBmYWxzZTsKKworICAvLyBNb2QgaXMgdXNlZCB0byBjeWNsZSB0aGUgb3AKKyAgaWYg KG9wID09ICdzd2l0Y2gnKSB7CisgICAgbGV0IGkgPSAwLCB0b3RhbF9mcmFtZXMgPSBkb2NrZXIu X2ZyYW1lTGlzdC5sZW5ndGg7CisKKyAgICBmb3IoaSA9IDA7IGkgPCB0b3RhbF9mcmFtZXM7IGkr KykgeworICAgICAgaWYoZm9jdXNfZnJhbWUgPT09IGRvY2tlci5fZnJhbWVMaXN0W2ldKSBicmVh azsKKyAgICB9CisgICAgZm9jdXNfZnJhbWUgPSBkb2NrZXIuX2ZyYW1lTGlzdFtnZXRNb2QoaSsx LHRvdGFsX2ZyYW1lcyldOworICAgIGZvY3VzX2lkID0gZm9jdXNfZnJhbWUuX2N1clRhYjsKKyAg ICBmbGFzaCA9IHRydWU7CisgIH0gZWxzZSBpZiAob3AgPT0gJ2xlZnQnKSB7CisgICAgZm9jdXNf aWQgPSBnZXRNb2QoZm9jdXNfZnJhbWUuX2N1clRhYi0xLCBmb2N1c19mcmFtZS5fcGFuZWxMaXN0 Lmxlbmd0aCk7CisgICAgZmxhc2ggPSBmYWxzZTsKKyAgfSBlbHNlIGlmIChvcCA9PSAncmlnaHQn KSB7CisgICAgZm9jdXNfaWQgPSBnZXRNb2QoZm9jdXNfZnJhbWUuX2N1clRhYisxLCBmb2N1c19m cmFtZS5fcGFuZWxMaXN0Lmxlbmd0aCk7CisgICAgZmxhc2ggPSBmYWxzZTsKKyAgfQorCisgIGxl dCBmb2N1c19wYW5lbCA9IGZvY3VzX2ZyYW1lLl9wYW5lbExpc3RbZm9jdXNfaWRdOworCisgIGZv Y3VzX3BhbmVsLiRjb250YWluZXIuZmluZCgnKlt0YWJpbmRleF06bm90KFt0YWJpbmRleD0iLTEi XSknKS50cmlnZ2VyKCdmb2N1cycpOworICBmb2N1c19wYW5lbC5mb2N1cyhmbGFzaCk7CisgIHJl dHVybiBmb2N1c19wYW5lbC5fdHlwZTsKK30KKwogLyogRGVidWdnZXI6IEtleWJvYXJkIFNob3J0 Y3V0cyBoYW5kbGluZyAqLwotZnVuY3Rpb24ga2V5Ym9hcmRTaG9ydGN1dHNEZWJ1Z2dlcigkZWws IGV2ZW50LCBwcmVmZXJlbmNlcykgewotICBsZXQgcGFuZWxfaWQsIHBhbmVsX2NvbnRlbnQsICRp bnB1dDsKK2Z1bmN0aW9uIGtleWJvYXJkU2hvcnRjdXRzRGVidWdnZXIoJGVsLCBldmVudCwgcHJl ZmVyZW5jZXMsIGRvY2tlcikgeworICBsZXQgcGFuZWxfdHlwZSA9ICcnLCBwYW5lbF9jb250ZW50 LCAkaW5wdXQ7CiAKICAgaWYodGhpcy52YWxpZGF0ZVNob3J0Y3V0S2V5cyhwcmVmZXJlbmNlcy5l ZGl0X2dyaWRfdmFsdWVzLCBldmVudCkpIHsKICAgICB0aGlzLl9zdG9wRXZlbnRQcm9wYWdhdGlv bihldmVudCk7CkBAIC0xMzIsNTQgKzE3NiwzMiBAQCBmdW5jdGlvbiBrZXlib2FyZFNob3J0Y3V0 c0RlYnVnZ2VyKCRlbCwgZXZlbnQsIHByZWZlcmVuY2VzKSB7CiAgICAgfQogICB9IGVsc2UgaWYo dGhpcy52YWxpZGF0ZVNob3J0Y3V0S2V5cyhwcmVmZXJlbmNlcy5tb3ZlX25leHQsIGV2ZW50KSkg ewogICAgIHRoaXMuX3N0b3BFdmVudFByb3BhZ2F0aW9uKGV2ZW50KTsKLSAgICBwYW5lbF9pZCA9 IHRoaXMuZ2V0SW5uZXJQYW5lbCgkZWwsICdyaWdodCcpOworICAgIHBhbmVsX3R5cGUgPSBmb2N1 c0RvY2tlclBhbmVsKGRvY2tlciwgJ3JpZ2h0Jyk7CiAgIH0gZWxzZSBpZih0aGlzLnZhbGlkYXRl U2hvcnRjdXRLZXlzKHByZWZlcmVuY2VzLm1vdmVfcHJldmlvdXMsIGV2ZW50KSkgewogICAgIHRo aXMuX3N0b3BFdmVudFByb3BhZ2F0aW9uKGV2ZW50KTsKLSAgICBwYW5lbF9pZCA9IHRoaXMuZ2V0 SW5uZXJQYW5lbCgkZWwsICdsZWZ0Jyk7Ci0gIH0KLSAgcmV0dXJuIHBhbmVsX2lkOwotfQotCi0v LyBGaW5kcyB0aGUgZGVzaXJlZCBwYW5lbCBvbiB3aGljaCB1c2VyIHdhbnRzIHRvIG5hdmlnYXRl IHRvCi1mdW5jdGlvbiBnZXRJbm5lclBhbmVsKCRlbCwgZGlyZWN0aW9uKSB7Ci0gIGlmKCEkZWwg fHwgISRlbC5sZW5ndGgpCi0gICAgcmV0dXJuIGZhbHNlOwotCi0gIGxldCB0b3RhbF9wYW5lbHMg PSAkZWwuZmluZCgnLndjUGFuZWxUYWInKTsKLSAgLy8gSWYgbm8gcGFuZWxzIGZvdW5kIE9SIGlm IHNpbmdsZSBwYW5lbAotICBpZiAoIXRvdGFsX3BhbmVscy5sZW5ndGggfHwgdG90YWxfcGFuZWxz Lmxlbmd0aCA9PSAxKQotICAgIHJldHVybiBmYWxzZTsKLQotICBsZXQgYWN0aXZlX3BhbmVsID0g JCh0b3RhbF9wYW5lbHMpLmZpbHRlcignLndjUGFuZWxUYWJBY3RpdmUnKSwKLSAgICBpZCA9IHBh cnNlSW50KCQoYWN0aXZlX3BhbmVsKS5hdHRyKCdpZCcpKSwKLSAgICBmaXN0X3BhbmVsID0gMCwK LSAgICBsYXN0X3BhbmVsID0gdG90YWxfcGFuZWxzLmxlbmd0aCAtIDE7Ci0KLSAgLy8gRmluZCBk ZXNpcmVkIHBhbmVsCi0gIGlmIChkaXJlY3Rpb24gPT0gJ2xlZnQnKSB7Ci0gICAgaWYoaWQgPiBm aXN0X3BhbmVsKQotICAgICAgaWQtLTsKLSAgfSBlbHNlIHsKLSAgICBpZiAoaWQgPCBsYXN0X3Bh bmVsKQotICAgICAgaWQrKzsKKyAgICBwYW5lbF90eXBlID0gZm9jdXNEb2NrZXJQYW5lbChkb2Nr ZXIsICdsZWZ0Jyk7CisgIH0gZWxzZSBpZih0aGlzLnZhbGlkYXRlU2hvcnRjdXRLZXlzKHByZWZl cmVuY2VzLnN3aXRjaF9wYW5lbCwgZXZlbnQpKSB7CisgICAgdGhpcy5fc3RvcEV2ZW50UHJvcGFn YXRpb24oZXZlbnQpOworICAgIHBhbmVsX3R5cGUgPSBmb2N1c0RvY2tlclBhbmVsKGRvY2tlciwg J3N3aXRjaCcpOwogICB9Ci0gIHJldHVybiBpZDsKKyAgcmV0dXJuIHBhbmVsX3R5cGU7CiB9CiAK IC8qIFF1ZXJ5IHRvb2w6IEtleWJvYXJkIFNob3J0Y3V0cyBoYW5kbGluZyAqLwogZnVuY3Rpb24g a2V5Ym9hcmRTaG9ydGN1dHNRdWVyeVRvb2woCi0gIHNxbEVkaXRvckNvbnRyb2xsZXIsIHF1ZXJ5 VG9vbEFjdGlvbnMsIGV2ZW50CisgIHNxbEVkaXRvckNvbnRyb2xsZXIsIHF1ZXJ5VG9vbEFjdGlv bnMsIGV2ZW50LCBkb2NrZXIKICkgewogICBpZiAoc3FsRWRpdG9yQ29udHJvbGxlci5pc1F1ZXJ5 UnVubmluZygpKSB7CiAgICAgcmV0dXJuOwogICB9Ci0gIGxldCBrZXlDb2RlID0gZXZlbnQud2hp Y2ggfHwgZXZlbnQua2V5Q29kZSwgcGFuZWxfaWQ7CisgIGxldCBrZXlDb2RlID0gZXZlbnQud2hp Y2ggfHwgZXZlbnQua2V5Q29kZSwgcGFuZWxfdHlwZSA9ICcnOwogICBsZXQgZXhlY3V0ZUtleXMg PSBzcWxFZGl0b3JDb250cm9sbGVyLnByZWZlcmVuY2VzLmV4ZWN1dGVfcXVlcnk7CiAgIGxldCBl eHBsYWluS2V5cyA9IHNxbEVkaXRvckNvbnRyb2xsZXIucHJlZmVyZW5jZXMuZXhwbGFpbl9xdWVy eTsKICAgbGV0IGV4cGxhaW5BbmFseXplS2V5cyA9IHNxbEVkaXRvckNvbnRyb2xsZXIucHJlZmVy ZW5jZXMuZXhwbGFpbl9hbmFseXplX3F1ZXJ5OwogICBsZXQgZG93bmxvYWRDc3ZLZXlzID0gc3Fs RWRpdG9yQ29udHJvbGxlci5wcmVmZXJlbmNlcy5kb3dubG9hZF9jc3Y7Ci0gIGxldCBuZXh0UGFu ZWxLZXlzID0gc3FsRWRpdG9yQ29udHJvbGxlci5wcmVmZXJlbmNlcy5tb3ZlX25leHQ7Ci0gIGxl dCBwcmV2aW91c1BhbmVsS2V5cyA9IHNxbEVkaXRvckNvbnRyb2xsZXIucHJlZmVyZW5jZXMubW92 ZV9wcmV2aW91czsKKyAgbGV0IG5leHRUYWJLZXlzID0gc3FsRWRpdG9yQ29udHJvbGxlci5wcmVm ZXJlbmNlcy5tb3ZlX25leHQ7CisgIGxldCBwcmV2aW91c1RhYktleXMgPSBzcWxFZGl0b3JDb250 cm9sbGVyLnByZWZlcmVuY2VzLm1vdmVfcHJldmlvdXM7CisgIGxldCBzd2l0Y2hQYW5lbEtleXMg PSBzcWxFZGl0b3JDb250cm9sbGVyLnByZWZlcmVuY2VzLnN3aXRjaF9wYW5lbDsKICAgbGV0IHRv Z2dsZUNhc2VLZXlzID0gc3FsRWRpdG9yQ29udHJvbGxlci5wcmVmZXJlbmNlcy50b2dnbGVfY2Fz ZTsKICAgbGV0IGNvbW1pdEtleXMgPSBzcWxFZGl0b3JDb250cm9sbGVyLnByZWZlcmVuY2VzLmNv bW1pdF90cmFuc2FjdGlvbjsKICAgbGV0IHJvbGxiYWNrS2V5cyA9IHNxbEVkaXRvckNvbnRyb2xs ZXIucHJlZmVyZW5jZXMucm9sbGJhY2tfdHJhbnNhY3Rpb247CkBAIC0yMzYsMTIgKzI1OCwxNSBA QCBmdW5jdGlvbiBrZXlib2FyZFNob3J0Y3V0c1F1ZXJ5VG9vbCgKICAgICAgICAgJiYgJChldmVu dC50YXJnZXQpLmNsb3Nlc3QoJy5kcm9wZG93bi1zdWJtZW51JykubGVuZ3RoID4gMCkgewogICAg ICAgJChldmVudC50YXJnZXQpLmNsb3Nlc3QoJy5kcm9wZG93bi1zdWJtZW51JykuZmluZCgnLmRy b3Bkb3duLW1lbnUnKS5yZW1vdmVDbGFzcygnc2hvdycpOwogICAgIH0KLSAgfSBlbHNlIGlmKHRo aXMudmFsaWRhdGVTaG9ydGN1dEtleXMobmV4dFBhbmVsS2V5cywgZXZlbnQpKSB7CisgIH0gZWxz ZSBpZih0aGlzLnZhbGlkYXRlU2hvcnRjdXRLZXlzKG5leHRUYWJLZXlzLCBldmVudCkpIHsKKyAg ICB0aGlzLl9zdG9wRXZlbnRQcm9wYWdhdGlvbihldmVudCk7CisgICAgcGFuZWxfdHlwZSA9IGZv Y3VzRG9ja2VyUGFuZWwoZG9ja2VyLCAncmlnaHQnKTsKKyAgfSBlbHNlIGlmKHRoaXMudmFsaWRh dGVTaG9ydGN1dEtleXMocHJldmlvdXNUYWJLZXlzLCBldmVudCkpIHsKICAgICB0aGlzLl9zdG9w RXZlbnRQcm9wYWdhdGlvbihldmVudCk7Ci0gICAgcGFuZWxfaWQgPSB0aGlzLmdldElubmVyUGFu ZWwoc3FsRWRpdG9yQ29udHJvbGxlci5jb250YWluZXIsICdyaWdodCcpOwotICB9IGVsc2UgaWYo dGhpcy52YWxpZGF0ZVNob3J0Y3V0S2V5cyhwcmV2aW91c1BhbmVsS2V5cywgZXZlbnQpKSB7Cisg ICAgcGFuZWxfdHlwZSA9IGZvY3VzRG9ja2VyUGFuZWwoZG9ja2VyLCAnbGVmdCcpOworICB9IGVs c2UgaWYodGhpcy52YWxpZGF0ZVNob3J0Y3V0S2V5cyhzd2l0Y2hQYW5lbEtleXMsIGV2ZW50KSkg ewogICAgIHRoaXMuX3N0b3BFdmVudFByb3BhZ2F0aW9uKGV2ZW50KTsKLSAgICBwYW5lbF9pZCA9 IHRoaXMuZ2V0SW5uZXJQYW5lbChzcWxFZGl0b3JDb250cm9sbGVyLmNvbnRhaW5lciwgJ2xlZnQn KTsKKyAgICBwYW5lbF90eXBlID0gZm9jdXNEb2NrZXJQYW5lbChkb2NrZXIsICdzd2l0Y2gnKTsK ICAgfSBlbHNlIGlmKGtleUNvZGUgPT09IFVQX0tFWSB8fCBrZXlDb2RlID09PSBET1dOX0tFWSkg ewogICAgIC8qQXBwbHkgb25seSBmb3IgZHJvcGRvd24qLwogICAgIGlmKCQoZXZlbnQudGFyZ2V0 KS5jbG9zZXN0KCcuZHJvcGRvd24tbWVudScpLmxlbmd0aCA+IDApIHsKQEAgLTI5MywxMyArMzE4 LDEzIEBAIGZ1bmN0aW9uIGtleWJvYXJkU2hvcnRjdXRzUXVlcnlUb29sKAogICAgIH0KICAgfQog Ci0gIHJldHVybiBwYW5lbF9pZDsKKyAgcmV0dXJuIHBhbmVsX3R5cGU7CiB9CiAKIGV4cG9ydCB7 CiAgIGtleWJvYXJkU2hvcnRjdXRzRGVidWdnZXIgYXMgcHJvY2Vzc0V2ZW50RGVidWdnZXIsCiAg IGtleWJvYXJkU2hvcnRjdXRzUXVlcnlUb29sIGFzIHByb2Nlc3NFdmVudFF1ZXJ5VG9vbCwKLSAg Z2V0SW5uZXJQYW5lbCwgdmFsaWRhdGVTaG9ydGN1dEtleXMsCisgIGZvY3VzRG9ja2VyUGFuZWws IHZhbGlkYXRlU2hvcnRjdXRLZXlzLAogICBfc3RvcEV2ZW50UHJvcGFnYXRpb24sIGlzTWFjLCBp c0tleUN0cmxBbHQsIGlzS2V5QWx0U2hpZnQsIGlzS2V5Q3RybFNoaWZ0LAogICBpc0tleUN0cmxB bHRTaGlmdCwgaXNBbHRTaGlmdEJvdGgsIGlzQ3RybFNoaWZ0Qm90aCwgaXNDdHJsQWx0Qm90aCwK ICAgc2hvcnRjdXRfa2V5LCBzaG9ydGN1dF90aXRsZSwgc2hvcnRjdXRfYWNjZXNza2V5X3RpdGxl LApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3V0aWxzLmpzIGIvd2ViL3BnYWRt aW4vc3RhdGljL2pzL3V0aWxzLmpzCmluZGV4IDZiMWVkOWFkLi4xYzU4YTllYiAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3V0aWxzLmpzCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRp Yy9qcy91dGlscy5qcwpAQCAtNzksMyArNzksNyBAQCBleHBvcnQgZnVuY3Rpb24gZ2V0R0NEKGlu cF9hcnIpIHsKIAogICByZXR1cm4gcmVzdWx0OwogfQorCitleHBvcnQgZnVuY3Rpb24gZ2V0TW9k KG5vLCBkaXZpc29yKSB7CisgIHJldHVybiAoKG5vICUgZGl2aXNvcikgKyBkaXZpc29yKSAlIGRp dmlzb3I7Cit9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9kZWJ1Z2dlci9fX2luaXRf Xy5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL19faW5pdF9fLnB5CmluZGV4IDQ0ZDU1 ZGE4Li5hMmM1OTJlMCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvZGVidWdnZXIvX19p bml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvZGVidWdnZXIvX19pbml0X18ucHkKQEAg LTE4NCw4ICsxODQsOCBAQCBjbGFzcyBEZWJ1Z2dlck1vZHVsZShQZ0FkbWluTW9kdWxlKToKICAg ICAgICAgICAgICAgICAnc2hpZnQnOiBUcnVlLAogICAgICAgICAgICAgICAgICdjb250cm9sJzog RmFsc2UsCiAgICAgICAgICAgICAgICAgJ2tleSc6IHsKLSAgICAgICAgICAgICAgICAgICAgJ2tl eV9jb2RlJzogMzcsCi0gICAgICAgICAgICAgICAgICAgICdjaGFyJzogJ0Fycm93TGVmdCcKKyAg ICAgICAgICAgICAgICAgICAgJ2tleV9jb2RlJzogOTEsCisgICAgICAgICAgICAgICAgICAgICdj aGFyJzogJ1snCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSwKICAgICAgICAgICAg IGNhdGVnb3J5X2xhYmVsPWdldHRleHQoJ0tleWJvYXJkIHNob3J0Y3V0cycpLApAQCAtMjAyLDgg KzIwMiwyNiBAQCBjbGFzcyBEZWJ1Z2dlck1vZHVsZShQZ0FkbWluTW9kdWxlKToKICAgICAgICAg ICAgICAgICAnc2hpZnQnOiBUcnVlLAogICAgICAgICAgICAgICAgICdjb250cm9sJzogRmFsc2Us CiAgICAgICAgICAgICAgICAgJ2tleSc6IHsKLSAgICAgICAgICAgICAgICAgICAgJ2tleV9jb2Rl JzogMzksCi0gICAgICAgICAgICAgICAgICAgICdjaGFyJzogJ0Fycm93UmlnaHQnCisgICAgICAg ICAgICAgICAgICAgICdrZXlfY29kZSc6IDkzLAorICAgICAgICAgICAgICAgICAgICAnY2hhcic6 ICddJworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjYXRl Z29yeV9sYWJlbD1nZXR0ZXh0KCdLZXlib2FyZCBzaG9ydGN1dHMnKSwKKyAgICAgICAgICAgIGZp ZWxkcz1zaG9ydGN1dF9maWVsZHMKKyAgICAgICAgKQorCisgICAgICAgIHNlbGYucHJlZmVyZW5j ZS5yZWdpc3RlcigKKyAgICAgICAgICAgICdrZXlib2FyZF9zaG9ydGN1dHMnLAorICAgICAgICAg ICAgJ3N3aXRjaF9wYW5lbCcsCisgICAgICAgICAgICBnZXR0ZXh0KCdTd2l0Y2ggUGFuZWwnKSwK KyAgICAgICAgICAgICdrZXlib2FyZHNob3J0Y3V0JywKKyAgICAgICAgICAgIHsKKyAgICAgICAg ICAgICAgICAnYWx0JzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAnc2hpZnQnOiBUcnVlLAorICAg ICAgICAgICAgICAgICdjb250cm9sJzogRmFsc2UsCisgICAgICAgICAgICAgICAgJ2tleSc6IHsK KyAgICAgICAgICAgICAgICAgICAgJ2tleV9jb2RlJzogOSwKKyAgICAgICAgICAgICAgICAgICAg J2NoYXInOiAnVGFiJwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0sCiAgICAgICAg ICAgICBjYXRlZ29yeV9sYWJlbD1nZXR0ZXh0KCdLZXlib2FyZCBzaG9ydGN1dHMnKSwKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3N0YXRpYy9qcy9kaXJlY3QuanMgYi93 ZWIvcGdhZG1pbi90b29scy9kZWJ1Z2dlci9zdGF0aWMvanMvZGlyZWN0LmpzCmluZGV4IDIzYjYx YzRjLi43N2VlNDVlYSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvZGVidWdnZXIvc3Rh dGljL2pzL2RpcmVjdC5qcworKysgYi93ZWIvcGdhZG1pbi90b29scy9kZWJ1Z2dlci9zdGF0aWMv anMvZGlyZWN0LmpzCkBAIC0xNTEzLDE3ICsxNTEzLDE3IEBAIGRlZmluZShbCiAgICAgICBjb250 cm9sbGVyLlN0ZXBfaW50byhwZ1Rvb2xzLkRpcmVjdERlYnVnLnRyYW5zX2lkKTsKICAgICB9LAog ICAgIGtleUFjdGlvbjogZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgICB2YXIgJGVsID0gdGhpcy4k ZWwsIHBhbmVsX2lkLCBhY3R1YWxfcGFuZWwsCi0gICAgICAgIHNlbGYgPSB0aGlzOworICAgICAg bGV0IHBhbmVsX3R5cGU9Jyc7CiAKLSAgICAgIHBhbmVsX2lkID0ga2V5Ym9hcmRTaG9ydGN1dHMu cHJvY2Vzc0V2ZW50RGVidWdnZXIoCi0gICAgICAgICRlbCwgZXZlbnQsIHNlbGYucHJlZmVyZW5j ZXMKKyAgICAgIHBhbmVsX3R5cGUgPSBrZXlib2FyZFNob3J0Y3V0cy5wcm9jZXNzRXZlbnREZWJ1 Z2dlcigKKyAgICAgICAgdGhpcy4kZWwsIGV2ZW50LCB0aGlzLnByZWZlcmVuY2VzLCBwZ1Rvb2xz LkRpcmVjdERlYnVnLmRvY2tlcgogICAgICAgKTsKIAotICAgICAgLy8gUGFuZWwgbmF2aWdhdGlv bgotICAgICAgaWYoIV8uaXNVbmRlZmluZWQocGFuZWxfaWQpICYmICFfLmlzTnVsbChwYW5lbF9p ZCkpIHsKLSAgICAgICAgYWN0dWFsX3BhbmVsID0gcGFuZWxfaWQgKyAxOwotICAgICAgICBwZ1Rv b2xzLkRpcmVjdERlYnVnLmRvY2tlci5maW5kUGFuZWxzKClbYWN0dWFsX3BhbmVsXS5mb2N1cygp OworCisgICAgICBpZighXy5pc051bGwocGFuZWxfdHlwZSkgJiYgIV8uaXNVbmRlZmluZWQocGFu ZWxfdHlwZSkgJiYgcGFuZWxfdHlwZSAhPSAnJykgeworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0 aW9uKCkgeworICAgICAgICAgIHBnQnJvd3Nlci5FdmVudHMudHJpZ2dlcihgcGdhZG1pbjpkZWJ1 Z2dlcjoke3BhbmVsX3R5cGV9OmZvY3VzYCk7CisgICAgICAgIH0sIDEwMCk7CiAgICAgICB9CiAg ICAgfSwKICAgfSk7CkBAIC0xODU2LDYgKzE4NTYsMTAgQEAgZGVmaW5lKFsKICAgICAgICAgfQog ICAgICAgfSk7CiAKKyAgICAgIHBnQnJvd3Nlci5FdmVudHMub24oJ3BnYWRtaW46ZGVidWdnZXI6 Y29kZTpmb2N1cycsICgpPT57CisgICAgICAgIHNlbGYuZWRpdG9yLmZvY3VzKCk7CisgICAgICB9 KTsKKwogICAgICAgLy8gT24gbG9hZGluZyB0aGUgZG9ja2VyLCByZWdpc3RlciB0aGUgY2FsbGJh Y2tzCiAgICAgICB2YXIgb25Mb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIHNlbGYuZG9ja2Vy LmZpbmlzaExvYWRpbmcoMTAwKTsKQEAgLTE5MDYsNiArMTkxMCwxNiBAQCBkZWZpbmUoWwogICAg ICAgLy8gQ3JlYXRlIHRoZSB0b29sYmFyIHZpZXcgZm9yIGRlYnVnZ2luZyB0aGUgZnVuY3Rpb24K ICAgICAgIHRoaXMudG9vbGJhclZpZXcgPSBuZXcgRGVidWdnZXJUb29sYmFyVmlldygpOwogCisg ICAgICAvKiB3Y0RvY2tlciBmb2N1c2VzIG9uIHdpbmRvdyBhbHdheXMsIGFuZCBhbGwgb3VyIHNo b3J0Y3V0cyBhcmUKKyAgICAgICAqIGJpbmQgdG8gZWRpdG9yLXBhbmVsLiBTbyB3aGVuIHdlIHVz ZSB3Y0RvY2tlciBmb2N1cywgZWRpdG9yLXBhbmVsCisgICAgICAgKiBsb3NlcyBmb2N1cyBhbmQg ZXZlbnRzIGRvbid0IHdvcmsuCisgICAgICAgKi8KKyAgICAgICQod2luZG93KS5vbigna2V5ZG93 bicsIChlKT0+eworICAgICAgICBpZihzZWxmLnRvb2xiYXJWaWV3LmtleUFjdGlvbikgeworICAg ICAgICAgIHNlbGYudG9vbGJhclZpZXcua2V5QWN0aW9uKGUpOworICAgICAgICB9CisgICAgICB9 KTsKKwogICAgICAgLyogQ2FjaGUgbWF5IHRha2UgdGltZSB0byBsb2FkIGZvciB0aGUgZmlyc3Qg dGltZQogICAgICAgICogS2VlcCB0cnlpbmcgdGlsbCBhdmFpbGFibGUKICAgICAgICAqLwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9zcWxlZGl0b3Iu anMgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL3NxbGVkaXRvci5qcwpp bmRleCBjYTc3YjhlOC4uZjMyMDcwOGMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3Nx bGVkaXRvci9zdGF0aWMvanMvc3FsZWRpdG9yLmpzCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3Nx bGVkaXRvci9zdGF0aWMvanMvc3FsZWRpdG9yLmpzCkBAIC0xOTUsOCArMTk1LDggQEAgZGVmaW5l KCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICAgICAgICAgICAnZmlsZW5hbWUnOiAnY3NzJywKICAg ICAgICAgICB9KSwKICAgICAgICAgICB0aGVtZTogJ3dlYmNhYmluLm92ZXJyaWRlcy5jc3MnLAot ICAgICAgICB9KTsKLQorICAgICAgICB9CisgICAgICApOwogCiAgICAgICAvLyBDcmVhdGUgdGhl IHBhbmVscwogICAgICAgdmFyIHNxbF9wYW5lbCA9IG5ldyBwZ0FkbWluLkJyb3dzZXIuUGFuZWwo ewpAQCAtMjE2LDcgKzIxNiw3IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgICAg ICBpc0Nsb3NlYWJsZTogZmFsc2UsCiAgICAgICAgIGlzUHJpdmF0ZTogdHJ1ZSwKICAgICAgICAg ZXh0cmFDbGFzc2VzOiAnaGlkZS12ZXJ0aWNhbC1zY3JvbGxiYXInLAotICAgICAgICBjb250ZW50 OiAnPGRpdiBpZCA9ImRhdGFncmlkIiBjbGFzcz0ic3FsLWVkaXRvci1ncmlkLWNvbnRhaW5lciB0 ZXh0LTEyIiB0YWJpbmRleDogIjAiPjwvZGl2PicsCisgICAgICAgIGNvbnRlbnQ6ICc8ZGl2IGlk ID0iZGF0YWdyaWQiIGNsYXNzPSJzcWwtZWRpdG9yLWdyaWQtY29udGFpbmVyIHRleHQtMTIiIHRh YmluZGV4PSIwIj48L2Rpdj4nLAogICAgICAgfSk7CiAKICAgICAgIHZhciBleHBsYWluID0gbmV3 IHBnQWRtaW4uQnJvd3Nlci5QYW5lbCh7CkBAIC0yMjYsNyArMjI2LDcgQEAgZGVmaW5lKCd0b29s cy5xdWVyeXRvb2wnLCBbCiAgICAgICAgIGhlaWdodDogJzEwMCUnLAogICAgICAgICBpc0Nsb3Nl YWJsZTogZmFsc2UsCiAgICAgICAgIGlzUHJpdmF0ZTogdHJ1ZSwKLSAgICAgICAgY29udGVudDog JzxkaXYgY2xhc3M9InNxbC1lZGl0b3ItZXhwbGFpbiIgdGFiaW5kZXg6ICIwIj48L2Rpdj4nLAor ICAgICAgICBjb250ZW50OiAnPGRpdiBjbGFzcz0ic3FsLWVkaXRvci1leHBsYWluIiB0YWJpbmRl eD0iMCI+PC9kaXY+JywKICAgICAgIH0pOwogCiAgICAgICB2YXIgbWVzc2FnZXMgPSBuZXcgcGdB ZG1pbi5Ccm93c2VyLlBhbmVsKHsKQEAgLTIzNiw3ICsyMzYsNyBAQCBkZWZpbmUoJ3Rvb2xzLnF1 ZXJ5dG9vbCcsIFsKICAgICAgICAgaGVpZ2h0OiAnMTAwJScsCiAgICAgICAgIGlzQ2xvc2VhYmxl OiBmYWxzZSwKICAgICAgICAgaXNQcml2YXRlOiB0cnVlLAotICAgICAgICBjb250ZW50OiAnPGRp diBjbGFzcz0ic3FsLWVkaXRvci1tZXNzYWdlIiB0YWJpbmRleDogIjAiPjwvZGl2PicsCisgICAg ICAgIGNvbnRlbnQ6ICc8ZGl2IGNsYXNzPSJzcWwtZWRpdG9yLW1lc3NhZ2UiIHRhYmluZGV4PSAi MCI+PC9kaXY+JywKICAgICAgIH0pOwogCiAgICAgICB2YXIgaGlzdG9yeSA9IG5ldyBwZ0FkbWlu LkJyb3dzZXIuUGFuZWwoewpAQCAtMjQ2LDcgKzI0Niw3IEBAIGRlZmluZSgndG9vbHMucXVlcnl0 b29sJywgWwogICAgICAgICBoZWlnaHQ6ICczMyUnLAogICAgICAgICBpc0Nsb3NlYWJsZTogZmFs c2UsCiAgICAgICAgIGlzUHJpdmF0ZTogdHJ1ZSwKLSAgICAgICAgY29udGVudDogJzxkaXYgaWQg PSJoaXN0b3J5X2dyaWQiIGNsYXNzPSJzcWwtZWRpdG9yLWhpc3RvcnktY29udGFpbmVyIiB0YWJp bmRleDogIjAiPjwvZGl2PicsCisgICAgICAgIGNvbnRlbnQ6ICc8ZGl2IGlkID0iaGlzdG9yeV9n cmlkIiBjbGFzcz0ic3FsLWVkaXRvci1oaXN0b3J5LWNvbnRhaW5lciIgdGFiaW5kZXg9ICIwIj48 L2Rpdj4nLAogICAgICAgfSk7CiAKICAgICAgIHZhciBzY3JhdGNoID0gbmV3IHBnQWRtaW4uQnJv d3Nlci5QYW5lbCh7CkBAIC0yNTYsNyArMjU2LDcgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wn LCBbCiAgICAgICAgIGhlaWdodDogJzMzJScsCiAgICAgICAgIGlzQ2xvc2VhYmxlOiB0cnVlLAog ICAgICAgICBpc1ByaXZhdGU6IGZhbHNlLAotICAgICAgICBjb250ZW50OiAnPGRpdiBjbGFzcz0i c3FsLXNjcmF0Y2giIHRhYmluZGV4OiAiMCI+PHRleHRhcmVhIHdyYXA9Im9mZiI+PC90ZXh0YXJl YT48L2Rpdj4nLAorICAgICAgICBjb250ZW50OiAnPGRpdiBjbGFzcz0ic3FsLXNjcmF0Y2giPjx0 ZXh0YXJlYSB3cmFwPSJvZmYiIHRhYmluZGV4PSAiMCI+PC90ZXh0YXJlYT48L2Rpdj4nLAogICAg ICAgfSk7CiAKICAgICAgIHZhciBub3RpZmljYXRpb25zID0gbmV3IHBnQWRtaW4uQnJvd3Nlci5Q YW5lbCh7CkBAIC0yNjYsNyArMjY2LDcgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAg ICAgICAgIGhlaWdodDogJzEwMCUnLAogICAgICAgICBpc0Nsb3NlYWJsZTogZmFsc2UsCiAgICAg ICAgIGlzUHJpdmF0ZTogdHJ1ZSwKLSAgICAgICAgY29udGVudDogJzxkaXYgaWQgPSJub3RpZmlj YXRpb25fZ3JpZCIgY2xhc3M9InNxbC1lZGl0b3Itbm90aWZpY2F0aW9ucyIgdGFiaW5kZXg6ICIw Ij48L2Rpdj4nLAorICAgICAgICBjb250ZW50OiAnPGRpdiBpZCA9Im5vdGlmaWNhdGlvbl9ncmlk IiBjbGFzcz0ic3FsLWVkaXRvci1ub3RpZmljYXRpb25zIiB0YWJpbmRleD0gIjAiPjwvZGl2Pics CiAgICAgICB9KTsKIAogICAgICAgdmFyIGdlb21ldHJ5X3ZpZXdlciA9IG5ldyBwZ0FkbWluLkJy b3dzZXIuUGFuZWwoewpAQCAtMjc2LDcgKzI3Niw3IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29s JywgWwogICAgICAgICBoZWlnaHQ6ICcxMDAlJywKICAgICAgICAgaXNDbG9zZWFibGU6IHRydWUs CiAgICAgICAgIGlzUHJpdmF0ZTogdHJ1ZSwKLSAgICAgICAgY29udGVudDogJzxkaXYgaWQgPSJn ZW9tZXRyeV92aWV3ZXJfcGFuZWwiIGNsYXNzPSJzcWwtZWRpdG9yLWdlb21ldHJ5LXZpZXdlciIg dGFiaW5kZXg6ICIwIj48L2Rpdj4nLAorICAgICAgICBjb250ZW50OiAnPGRpdiBpZCA9Imdlb21l dHJ5X3ZpZXdlcl9wYW5lbCIgY2xhc3M9InNxbC1lZGl0b3ItZ2VvbWV0cnktdmlld2VyIiB0YWJp bmRleD0gIjAiPjwvZGl2PicsCiAgICAgICB9KTsKIAogICAgICAgLy8gTG9hZCBhbGwgdGhlIGNy ZWF0ZWQgcGFuZWxzCkBAIC0zMTYsOCArMzE2LDggQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wn LCBbCiAgICAgICBzZWxmLnJlbmRlcl9oaXN0b3J5X2dyaWQoKTsKICAgICAgIHF1ZXJ5VG9vbE5v dGlmaWNhdGlvbnMucmVuZGVyTm90aWZpY2F0aW9uc0dyaWQoc2VsZi5ub3RpZmljYXRpb25zX3Bh bmVsKTsKIAotICAgICAgdmFyIHRleHRfY29udGFpbmVyID0gJCgnPHRleHRhcmVhIGlkPSJzcWxf cXVlcnlfdG9vbCIgdGFiaW5kZXg6ICItMSI+PC90ZXh0YXJlYT4nKTsKLSAgICAgIHZhciBvdXRw dXRfY29udGFpbmVyID0gJCgnPGRpdiBpZD0ib3V0cHV0LXBhbmVsIiB0YWJpbmRleDogIjAiPjwv ZGl2PicpLmFwcGVuZCh0ZXh0X2NvbnRhaW5lcik7CisgICAgICB2YXIgdGV4dF9jb250YWluZXIg PSAkKCc8dGV4dGFyZWEgaWQ9InNxbF9xdWVyeV90b29sIiB0YWJpbmRleD0iLTEiPjwvdGV4dGFy ZWE+Jyk7CisgICAgICB2YXIgb3V0cHV0X2NvbnRhaW5lciA9ICQoJzxkaXYgaWQ9Im91dHB1dC1w YW5lbCIgdGFiaW5kZXg9IjAiPjwvZGl2PicpLmFwcGVuZCh0ZXh0X2NvbnRhaW5lcik7CiAgICAg ICBzZWxmLnNxbF9wYW5lbF9vYmouJGNvbnRhaW5lci5maW5kKCcucGctcGFuZWwtY29udGVudCcp LmFwcGVuZChvdXRwdXRfY29udGFpbmVyKTsKIAogICAgICAgc2VsZi5xdWVyeV90b29sX29iaiA9 IENvZGVNaXJyb3IuZnJvbVRleHRBcmVhKHRleHRfY29udGFpbmVyLmdldCgwKSwgewpAQCAtMzQx LDYgKzM0MSwxMCBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgICAgc2Nyb2xs YmFyU3R5bGU6ICdzaW1wbGUnLAogICAgICAgfSk7CiAKKyAgICAgIHBnQnJvd3Nlci5FdmVudHMu b24oJ3BnYWRtaW46cXVlcnlfdG9vbDpzcWxfcGFuZWw6Zm9jdXMnLCAoKT0+eworICAgICAgICBz ZWxmLnF1ZXJ5X3Rvb2xfb2JqLmZvY3VzKCk7CisgICAgICB9KTsKKwogICAgICAgaWYgKCFzZWxm LnByZWZlcmVuY2VzLm5ld19icm93c2VyX3RhYikgewogICAgICAgICAvLyBMaXN0ZW4gb24gdGhl IHBhbmVsIGNsb3NlZCBldmVudCBhbmQgbm90aWZ5IHVzZXIgdG8gc2F2ZSBtb2RpZmljYXRpb25z LgogICAgICAgICBfLmVhY2god2luZG93LnRvcC5wZ0FkbWluLkJyb3dzZXIuZG9ja2VyLmZpbmRQ YW5lbHMoJ2ZybV9kYXRhZ3JpZCcpLCBmdW5jdGlvbihwKSB7CkBAIC0xODUxLDIzICsxODU1LDE5 IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgIH0sCiAKICAgICBrZXlBY3Rpb246 IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICB2YXIgcGFuZWxfaWQsIHNlbGYgPSB0aGlzOwotICAg ICAgcGFuZWxfaWQgPSBrZXlib2FyZFNob3J0Y3V0cy5wcm9jZXNzRXZlbnRRdWVyeVRvb2woCi0g ICAgICAgIHRoaXMuaGFuZGxlciwgcXVlcnlUb29sQWN0aW9ucywgZXZlbnQKKyAgICAgIHZhciBw YW5lbF90eXBlPScnOworCisgICAgICBwYW5lbF90eXBlID0ga2V5Ym9hcmRTaG9ydGN1dHMucHJv Y2Vzc0V2ZW50UXVlcnlUb29sKAorICAgICAgICB0aGlzLmhhbmRsZXIsIHF1ZXJ5VG9vbEFjdGlv bnMsIGV2ZW50LCB0aGlzLmRvY2tlcgogICAgICAgKTsKIAotICAgICAgLy8gSWYgaXQgcmV0dXJu IHBhbmVsIGlkIHRoZW4gZm9jdXMgaXQKLSAgICAgIGlmKCFfLmlzTnVsbChwYW5lbF9pZCkgJiYg IV8uaXNVbmRlZmluZWQocGFuZWxfaWQpKSB7Ci0gICAgICAgIC8vIFJldHVybmVkIHBhbmVsIGlu ZGV4LCBieSBpbmNyZW1lbnRpbmcgaXQgYnkgMSB3ZSB3aWxsIGdldCBhY3R1YWwgcGFuZWwKLSAg ICAgICAgcGFuZWxfaWQrKzsKLSAgICAgICAgdGhpcy5kb2NrZXIuZmluZFBhbmVscygpW3BhbmVs X2lkXS5mb2N1cygpOwotICAgICAgICAvLyBXZSBzZXQgZm9jdXMgb24gaGlzdG9yeSB0YWIgc28g d2UgbmVlZCB0byBzZXQgdGhlIGZvY3VzIG9uCi0gICAgICAgIC8vIGVkaXRvciBleHBsaWNpdGx5 Ci0gICAgICAgIGlmKHBhbmVsX2lkID09IDMpIHsKLSAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0 aW9uKCkgeyBzZWxmLnF1ZXJ5X3Rvb2xfb2JqLmZvY3VzKCk7IH0sIDEwMCk7Ci0gICAgICAgIH0K KyAgICAgIGlmKCFfLmlzTnVsbChwYW5lbF90eXBlKSAmJiAhXy5pc1VuZGVmaW5lZChwYW5lbF90 eXBlKSAmJiBwYW5lbF90eXBlICE9ICcnKSB7CisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o KSB7CisgICAgICAgICAgcGdCcm93c2VyLkV2ZW50cy50cmlnZ2VyKGBwZ2FkbWluOnF1ZXJ5X3Rv b2w6JHtwYW5lbF90eXBlfTpmb2N1c2ApOworICAgICAgICB9LCAxMDApOwogICAgICAgfQogICAg IH0sCisKICAgICAvLyBDYWxsYmFjayBmdW5jdGlvbiBmb3IgdGhlIGNvbW1pdCBidXR0b24gY2xp Y2suCiAgICAgb25fY29tbWl0X3RyYW5zYWN0aW9uOiBmdW5jdGlvbigpIHsKICAgICAgIHF1ZXJ5 VG9vbEFjdGlvbnMuZXhlY3V0ZUNvbW1pdCh0aGlzLmhhbmRsZXIpOwpAQCAtMjEyNSw2ICsyMTI1 LDE2IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgICAgICAvLyBSZW5kZXIgdGhl IGhlYWRlcgogICAgICAgICBzZWxmLmdyaWRWaWV3LnJlbmRlcigpOwogCisgICAgICAgIC8qIHdj RG9ja2VyIGZvY3VzZXMgb24gd2luZG93IGFsd2F5cywgYW5kIGFsbCBvdXIgc2hvcnRjdXRzIGFy ZQorICAgICAgICAgKiBiaW5kIHRvIGVkaXRvci1wYW5lbC4gU28gd2hlbiB3ZSB1c2Ugd2NEb2Nr ZXIgZm9jdXMsIGVkaXRvci1wYW5lbAorICAgICAgICAgKiBsb3NlcyBmb2N1cyBhbmQgZXZlbnRz IGRvbid0IHdvcmsuCisgICAgICAgICAqLworICAgICAgICAkKHdpbmRvdykub24oJ2tleWRvd24n LCAoZSk9PnsKKyAgICAgICAgICBpZihzZWxmLmdyaWRWaWV3LmtleUFjdGlvbikgeworICAgICAg ICAgICAgc2VsZi5ncmlkVmlldy5rZXlBY3Rpb24oZSk7CisgICAgICAgICAgfQorICAgICAgICB9 KTsKKwogICAgICAgICBpZiAoc2VsZi5pc19xdWVyeV90b29sKSB7CiAgICAgICAgICAgLy8gRmV0 Y2ggdGhlIFNRTCBmb3IgU2NyaXB0cyAoZWc6IENSRUFURS9VUERBVEUvREVMRVRFL1NFTEVDVCkK ICAgICAgICAgICAvLyBDYWxsIEFKQVggb25seSBpZiBzY3JpcHQgdHlwZSB1cmwgaXMgcHJlc2Vu dApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3V0aWxzL3F1ZXJ5X3Rv b2xfcHJlZmVyZW5jZXMucHkgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdXRpbHMvcXVl cnlfdG9vbF9wcmVmZXJlbmNlcy5weQppbmRleCA4ZmJjODhhYi4uMTVjNWQ4NzAgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy9xdWVyeV90b29sX3ByZWZlcmVu Y2VzLnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy9xdWVyeV90b29s X3ByZWZlcmVuY2VzLnB5CkBAIC0zNTQsOCArMzU0LDggQEAgZGVmIFJlZ2lzdGVyUXVlcnlUb29s UHJlZmVyZW5jZXMoc2VsZik6CiAgICAgICAgICAgICAnc2hpZnQnOiBUcnVlLAogICAgICAgICAg ICAgJ2NvbnRyb2wnOiBGYWxzZSwKICAgICAgICAgICAgICdrZXknOiB7Ci0gICAgICAgICAgICAg ICAgJ2tleV9jb2RlJzogMzcsCi0gICAgICAgICAgICAgICAgJ2NoYXInOiAnQXJyb3dMZWZ0Jwor ICAgICAgICAgICAgICAgICdrZXlfY29kZSc6IDkxLAorICAgICAgICAgICAgICAgICdjaGFyJzog J1snCiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCiAgICAgICAgIGNhdGVnb3J5X2xhYmVsPWdl dHRleHQoJ0tleWJvYXJkIHNob3J0Y3V0cycpLApAQCAtMzcyLDggKzM3MiwyNiBAQCBkZWYgUmVn aXN0ZXJRdWVyeVRvb2xQcmVmZXJlbmNlcyhzZWxmKToKICAgICAgICAgICAgICdzaGlmdCc6IFRy dWUsCiAgICAgICAgICAgICAnY29udHJvbCc6IEZhbHNlLAogICAgICAgICAgICAgJ2tleSc6IHsK LSAgICAgICAgICAgICAgICAna2V5X2NvZGUnOiAzOSwKLSAgICAgICAgICAgICAgICAnY2hhcic6 ICdBcnJvd1JpZ2h0JworICAgICAgICAgICAgICAgICdrZXlfY29kZSc6IDkzLAorICAgICAgICAg ICAgICAgICdjaGFyJzogJ10nCisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIGNh dGVnb3J5X2xhYmVsPWdldHRleHQoJ0tleWJvYXJkIHNob3J0Y3V0cycpLAorICAgICAgICBmaWVs ZHM9c2hvcnRjdXRfZmllbGRzCisgICAgKQorCisgICAgc2VsZi5wcmVmZXJlbmNlLnJlZ2lzdGVy KAorICAgICAgICAna2V5Ym9hcmRfc2hvcnRjdXRzJywKKyAgICAgICAgJ3N3aXRjaF9wYW5lbCcs CisgICAgICAgIGdldHRleHQoJ1N3aXRjaCBQYW5lbCcpLAorICAgICAgICAna2V5Ym9hcmRzaG9y dGN1dCcsCisgICAgICAgIHsKKyAgICAgICAgICAgICdhbHQnOiBUcnVlLAorICAgICAgICAgICAg J3NoaWZ0JzogVHJ1ZSwKKyAgICAgICAgICAgICdjb250cm9sJzogRmFsc2UsCisgICAgICAgICAg ICAna2V5JzogeworICAgICAgICAgICAgICAgICdrZXlfY29kZSc6IDksCisgICAgICAgICAgICAg ICAgJ2NoYXInOiAnVGFiJwogICAgICAgICAgICAgfQogICAgICAgICB9LAogICAgICAgICBjYXRl Z29yeV9sYWJlbD1nZXR0ZXh0KCdLZXlib2FyZCBzaG9ydGN1dHMnKSwKZGlmZiAtLWdpdCBhL3dl Yi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvY29tbW9uX2tleWJvYXJkX3Nob3J0Y3V0c19zcGVjLmpz IGIvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9jb21tb25fa2V5Ym9hcmRfc2hvcnRjdXRzX3Nw ZWMuanMKaW5kZXggYWJlNWJhYzUuLmE3NGYzY2U1IDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lv bi9qYXZhc2NyaXB0L2NvbW1vbl9rZXlib2FyZF9zaG9ydGN1dHNfc3BlYy5qcworKysgYi93ZWIv cmVncmVzc2lvbi9qYXZhc2NyaXB0L2NvbW1vbl9rZXlib2FyZF9zaG9ydGN1dHNfc3BlYy5qcwpA QCAtOCw2ICs4LDcgQEAKIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKIGltcG9ydCAqIGFzIGtleWJvYXJk U2hvcnRjdXRzIGZyb20gJ3NvdXJjZXMva2V5Ym9hcmRfc2hvcnRjdXRzJzsKK2ltcG9ydCAkIGZy b20gJ2pxdWVyeSc7CiAKIGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQgc2hvcnRjdXRzJywgKCkgPT4g ewogICBjb25zdCBGMV9LRVkgPSAxMTI7CkBAIC00NSw5ICs0NiwzMCBAQCBkZXNjcmliZSgndGhl IGtleWJvYXJkIHNob3J0Y3V0cycsICgpID0+IHsKICAgfSk7CiAKICAgZGVzY3JpYmUoJ3doZW4g dXNlciB3YW50cyB0byBnb3RvIG5leHQgcGFuZWwnLCBmdW5jdGlvbiAoKSB7Ci0KLSAgICBpdCgn cmV0dXJucyBwYW5lbCBpZCcsIGZ1bmN0aW9uICgpIHsKLSAgICAgIGV4cGVjdChrZXlib2FyZFNo b3J0Y3V0cy5nZXRJbm5lclBhbmVsKGRlYnVnZ2VyRWxlbWVudFNweSwgJ3JpZ2h0JykpLnRvRXF1 YWwoZmFsc2UpOworICAgIGxldCBkb2NrZXJTcHkgPSB7CisgICAgICAnX2ZvY3VzRnJhbWUnOiB7 CisgICAgICAgICdfY3VyVGFiJzogMCwKKyAgICAgICAgJ19wYW5lbExpc3QnOiBbCisgICAgICAg ICAgeyRjb250YWluZXI6ICQoJzxiLz4nKSwgJ190eXBlJzogJ3R5cGUxJywgJ2ZvY3VzJzogZnVu Y3Rpb24oKSB7cmV0dXJuIHRydWU7fX0sCisgICAgICAgICAgeyRjb250YWluZXI6ICQoJzxiLz4n KSwgJ190eXBlJzogJ3R5cGUyJywgJ2ZvY3VzJzogZnVuY3Rpb24oKSB7cmV0dXJuIHRydWU7fX0s CisgICAgICAgIF0sCisgICAgICB9LAorICAgIH07CisgICAgaXQoJ3JpZ2h0IGtleScsIGZ1bmN0 aW9uICgpIHsKKyAgICAgIGRvY2tlclNweS5fZm9jdXNGcmFtZS5fY3VyVGFiID0gMDsKKyAgICAg IGV4cGVjdChrZXlib2FyZFNob3J0Y3V0cy5mb2N1c0RvY2tlclBhbmVsKGRvY2tlclNweSwgJ3Jp Z2h0JykpLnRvRXF1YWwoJ3R5cGUyJyk7CisgICAgfSk7CisgICAgaXQoJ2xlZnQga2V5JywgZnVu Y3Rpb24gKCkgeworICAgICAgZG9ja2VyU3B5Ll9mb2N1c0ZyYW1lLl9jdXJUYWIgPSAxOworICAg ICAgZXhwZWN0KGtleWJvYXJkU2hvcnRjdXRzLmZvY3VzRG9ja2VyUGFuZWwoZG9ja2VyU3B5LCAn bGVmdCcpKS50b0VxdWFsKCd0eXBlMScpOworICAgIH0pOworICAgIGl0KCdsZWZ0IGtleSBjeWNs ZScsIGZ1bmN0aW9uICgpIHsKKyAgICAgIGRvY2tlclNweS5fZm9jdXNGcmFtZS5fY3VyVGFiID0g MDsKKyAgICAgIGV4cGVjdChrZXlib2FyZFNob3J0Y3V0cy5mb2N1c0RvY2tlclBhbmVsKGRvY2tl clNweSwgJ2xlZnQnKSkudG9FcXVhbCgndHlwZTInKTsKKyAgICB9KTsKKyAgICBpdCgncmlnaHQg a2V5IGN5Y2xlJywgZnVuY3Rpb24gKCkgeworICAgICAgZG9ja2VyU3B5Ll9mb2N1c0ZyYW1lLl9j dXJUYWIgPSAxOworICAgICAgZXhwZWN0KGtleWJvYXJkU2hvcnRjdXRzLmZvY3VzRG9ja2VyUGFu ZWwoZG9ja2VyU3B5LCAnbGVmdCcpKS50b0VxdWFsKCd0eXBlMScpOwogICAgIH0pOwogICB9KTsK IApkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9wZ2FkbWluX3V0aWxzX3Nw ZWMuanMgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3BnYWRtaW5fdXRpbHNfc3BlYy5qcwpp bmRleCAzOWZlODdkZi4uMDJiZDU0NzggMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL2phdmFz Y3JpcHQvcGdhZG1pbl91dGlsc19zcGVjLmpzCisrKyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3Jp cHQvcGdhZG1pbl91dGlsc19zcGVjLmpzCkBAIC03LDcgKzcsNyBAQAogLy8KIC8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKLWlt cG9ydCB7IGdldEVwb2NoLCBnZXRHQ0QgfSBmcm9tICdzb3VyY2VzL3V0aWxzJzsKK2ltcG9ydCB7 IGdldEVwb2NoLCBnZXRHQ0QsIGdldE1vZCB9IGZyb20gJ3NvdXJjZXMvdXRpbHMnOwogCiBkZXNj cmliZSgnZ2V0RXBvY2gnLCBmdW5jdGlvbiAoKSB7CiAgIGl0KCdzaG91bGQgcmV0dXJuIG5vbiB6 ZXJvJywgZnVuY3Rpb24gKCkgewpAQCAtMzMsMyArMzMsMjEgQEAgZGVzY3JpYmUoJ2dldEdDRCcs IGZ1bmN0aW9uICgpIHsKICAgICBleHBlY3QoZ2V0R0NEKG5vcykpLnRvRXF1YWwoMyk7CiAgIH0p OwogfSk7CisKK2Rlc2NyaWJlKCdnZXRNb2QnLCBmdW5jdGlvbiAoKSB7CisgIGl0KCdjb21wbGV0 ZSBkaXZpc2libGUnLCBmdW5jdGlvbiAoKSB7CisgICAgZXhwZWN0KGdldE1vZCg1LDUpKS50b0Vx dWFsKDApOworICB9KTsKKworICBpdCgnaW5jb21wbGV0ZSBkaXZpc2libGUgbGVzcyBkaXZpc29y JywgZnVuY3Rpb24gKCkgeworICAgIGV4cGVjdChnZXRNb2QoNyw1KSkudG9FcXVhbCgyKTsKKyAg fSk7CisKKyAgaXQoJ2luY29tcGxldGUgZGl2aXNpYmxlIGdyZWF0ZXIgZGl2aXNvcicsIGZ1bmN0 aW9uICgpIHsKKyAgICBleHBlY3QoZ2V0TW9kKDUsNykpLnRvRXF1YWwoNSk7CisgIH0pOworCisg IGl0KCduZWdhdGl2ZSBudW1iZXInLCBmdW5jdGlvbiAoKSB7CisgICAgZXhwZWN0KGdldE1vZCgt Nyw1KSkudG9FcXVhbCgzKTsKKyAgfSk7Cit9KTsK --0000000000009670a90589edcae2--