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 1hYUsb-0007dW-BQ for pgadmin-hackers@arkaria.postgresql.org; Wed, 05 Jun 2019 12:18:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1hYUsa-00019n-04 for pgadmin-hackers@arkaria.postgresql.org; Wed, 05 Jun 2019 12:18:56 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hYUsZ-00019g-Iv for pgadmin-hackers@lists.postgresql.org; Wed, 05 Jun 2019 12:18:55 +0000 Received: from mail-lf1-x141.google.com ([2a00:1450:4864:20::141]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hYUsV-0000W9-4S for pgadmin-hackers@postgresql.org; Wed, 05 Jun 2019 12:18:55 +0000 Received: by mail-lf1-x141.google.com with SMTP id y17so18911152lfe.0 for ; Wed, 05 Jun 2019 05:18:50 -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=OqtjpClJwOzOjh/7JilFZZKW8hgW42z/ZYRArlgqyhE=; b=QXdA06E9jd69Bi8Nhg7W1y+dd5Wxbe49sLmxTFSeGTJ+beH0yqowPq8kM2rohZhhKn Pd8UyejXfMpbAixB6bvEXR97XpgdGeIAjoprdyVzeI0jrx3NuMBufgA+UiYnAxk581wO KBu5CvVkKRKhX9GKFB2Kwdd0wZNfLs4n0QGPFHsCl3qQZQ9Vl7wnZ3+dE1ZZfetG6Wru Eha1VlcBeckvnBYjXRIoOo6d+6wkrLOKLsVXFU1/IgETeEKL+4ql9YLQNrVK0cMg/lhG GLiOt3Z1R34BYvhUX9cmNgpJgvArG+y0uiCGzYUJLcpfJx6qTzYlW6jfUrdtZWbv6Swe uSbg== 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=OqtjpClJwOzOjh/7JilFZZKW8hgW42z/ZYRArlgqyhE=; b=HCI6PqCRkce0hsiFLh7rHPcPZvZ8RjIiyAdt40h25siYrbdHnGRWVXaV64BGW7B1Tt gXHJn4r6cIzMB5uUTEnx2mgrR1rJ39FxfejluXf/Eif/jjPcEyqXJiuHQ/LO++upiG1N ovjfrpy24NgcxdDEV6w0/e/SlZvEUSwR2xkf/dMYPyH9c+Uy3man/aMSUgB7V14Qjom9 i0ezRFoXFAt+2uSbfZX7WpUCCH+EVUHCuHcvp+IYQ8hubt4sR/9XkeKVsJG7e5GTGTM5 bgO7le0QBulPQAm2PzGLetfJQOhgpwSeEQ/xK0V7hLyk0360KDZDXntDF0pbWmCnhNbg iGQA== X-Gm-Message-State: APjAAAU+bOyAz3deqHQG6DUblRwA8lAgW1iIJvpoz8Rh8CfD7Dc0KFLr xoBDVPsFY8tm4zksaiADjMwcK0PrUbg86Na7g9pyIWz33Mk= X-Google-Smtp-Source: APXvYqwAZ3ORxydfkwoBeQ6/HbxKof29zAjcitS8GGRzLGE9owJF5w0xq3G3I8bdmE8qr9Rf9u3ckZj7dbm9FuL4BFY= X-Received: by 2002:ac2:4c84:: with SMTP id d4mr19806224lfl.1.1559737129944; Wed, 05 Jun 2019 05:18:49 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Aditya Toshniwal Date: Wed, 5 Jun 2019 17:48:13 +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="000000000000930b1e058a92999e" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000930b1e058a92999e Content-Type: multipart/alternative; boundary="000000000000930b1b058a92999c" --000000000000930b1b058a92999c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Hackers, Attached is the updated, rebased patch. I was using the wrong key code for "[" and "]" while registering, but strangely it was working for me. I have corrected that. Plus, I found a bug in Preferences. If a preference name is same in two different modules, then it was registered only once in SQLiteDB. (eg- move_previous in Debugger and SQLEditor). Fixed that. Kindly review. On Thu, May 30, 2019 at 7:36 PM Dave Page wrote: > Hi > > On Thu, May 30, 2019 at 4:40 AM Aditya Toshniwal < > aditya.toshniwal@enterprisedb.com> wrote: > >> Hi, >> >> On Thu, May 30, 2019 at 1:38 AM Dave Page wrote: >> >>> Hi >>> >>> On Tue, May 28, 2019 at 3:41 AM Aditya Toshniwal < >>> aditya.toshniwal@enterprisedb.com> wrote: >>> >>>> 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+[ (or ]) don[t work at all for me now :-( >>> >> Did you restart the server after applying the patch ? What shortcut doe= s >> preferences show ? >> > > Yes, did that, rebuilt the bundle and hard-reloaded the browser, all > multiple times. > > The shortcut preferences show the expected keys. > > >> >>> >>>> >>>>> 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 too= l. >>>>>>>>> >>>>>>>>> The query tool can be completely restructured unlike previously >>>>>>>>> where query tool used to stick at top and other tabs in the botto= m. >>>>>>>>> - I have added a new shortcut to switch between frames if in quer= y >>>>>>>>> tool the tab positions are changed. On switching the frames, the = frame 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 right >>>>>>>>> on the last tab then it will cycle to first tab. >>>>>>>>> - I have also changed the default shortcut to switch between tabs >>>>>>>>> from Shift+Ctrl+ArrowKeys to Shift+Ctrl+[ and ] similar to what w= e 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 >>>>> >>>> >>>> >>>> -- >>>> 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 >>> >> >> >> -- >> 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" --000000000000930b1b058a92999c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

Attached is the updated, rebased patch. I was = using the wrong key code for "[" and "]" while register= ing, but strangely it was working for me. I have corrected that.
Plus,= I found a bug in Preferences. If a preference name is same in two differen= t modules, then it was registered only once in SQLiteDB. (eg- move_previous= in Debugger and SQLEditor). Fixed that.

Kindl= y review.


On Thu, May 30, 2019 at 7:36 PM Dave= Page <dpage@pgadmin.org> wr= ote:
Hi

On Thu, May 30, 2019 at 4:40 AM Aditya Toshniwal &= lt;a= ditya.toshniwal@enterprisedb.com> wrote:
Hi,=C2=A0

On Thu, May 30, 2019= at 1:38 AM Dave Page <dpage@pgadmin.org> wrote:
Hi

On Tue, May 28, 2019 at 3:41= AM Aditya Toshniwal <aditya.toshniwal@enterprisedb.com> wrote:
Hi,
<= br>
On Thu,= May 23, 2019 at 1:31 PM Dave Page <dpage@pgadmin.org> wrote:
Hi,

On further testing, this doesn't see= m 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 the tab. If I switch to a no= n-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+[ (or ]) don[t work at all for me now :-(
Did you restart the server after applying the= patch ?=C2=A0 What shortcut does preferences show ?=C2=A0

Yes, did that, rebuilt the bundle = and hard-reloaded the browser, all multiple times.

The shortcut preferences show the expected keys.
=C2=A0
=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.toshniwal@e= nterprisedb.com> wrote:
Hi,

Attached is the updated patch with d= oc changes.

On Tue, May 21, 2019 at 5:42 PM Aditya Toshniwal <aditya.to= shniwal@enterprisedb.com> wrote:
Hi,

=
On Tue, May 21, 2019 at 5:32 PM Dave = Page <dpage@pgadm= in.org> 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 iss= ue in query tool.

The query tool can be com= pletely restructured unlike previously where query tool used to stick at to= p and other tabs in the bottom.=C2=A0
- 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.=C2=A0
- 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 right on the last tab then it will cycle to first tab.
- I have also changed the default short= cut 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 changes to= go with this?=C2=A0
Yes, definitely :P
Will send the updated patch.=C2=A0

Otherwise, it seems to work :-)

<= /div>--
Dave Pa= ge
Blog: http:= //pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterpris= edb.com
The Enterprise PostgreSQL Company


--
Thanks and Regards,
Aditya Toshniwal
Software Engineer |=C2=A0En= terpriseDB India |=C2=A0Pune=
"Don't Complain about Heat, Plant a TREE"


--
Thanks and Regards,
Aditya Toshniwal
Software Engineer |=C2=A0EnterpriseDB India |=C2=A0Pune
<= font color=3D"#38761d" face=3D"verdana, sans-serif" size=3D"1">"Don= 9;t Complain about Heat, Plant a TREE"
<= /div>


--
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 |=C2=A0Enterpr= iseDB India |=C2=A0Pune
"Don't Complain about Heat, Plant a TREE"


--
Dave Page
Blog: http://pgsnake.blogspot.com
Twi= tter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise Pos= tgreSQL Company


--
Thanks and Regards= ,
Aditya Toshniwal
Software E= ngineer |=C2=A0EnterpriseDB India |=C2=A0Pune
"Don't Complain about Heat, Plant a= TREE"


--
Dave Page
Blog: <= a href=3D"http://pgsnake.blogspot.com" target=3D"_blank">http://pgsnake.blo= gspot.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"
--000000000000930b1b058a92999c-- --000000000000930b1e058a92999e Content-Type: application/octet-stream; name="RM4195_v4.patch" Content-Disposition: attachment; filename="RM4195_v4.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jwj76bx00 ZGlmZiAtLWdpdCBhL2RvY3MvZW5fVVMva2V5Ym9hcmRfc2hvcnRjdXRzLnJzdCBiL2RvY3MvZW5f VVMva2V5Ym9hcmRfc2hvcnRjdXRzLnJzdAppbmRleCA2YjE5M2ZkZC4uZDRlMjNkY2QgMTAwNjQ0 Ci0tLSBhL2RvY3MvZW5fVVMva2V5Ym9hcmRfc2hvcnRjdXRzLnJzdAorKysgYi9kb2NzL2VuX1VT L2tleWJvYXJkX3Nob3J0Y3V0cy5yc3QKQEAgLTE5Myw4ICsxOTMsOCBAQCBXaGVuIHVzaW5nIHRo ZSBEZWJ1Z2dlciwgdGhlIGZvbGxvd2luZyBzaG9ydGN1dHMgYXJlIGF2YWlsYWJsZToKICAgIHwg QWx0ICsgU2hpZnQgKyBxICAgICAgICAgIHwgT3B0aW9uICsgU2hpZnQgKyBxIHwgRW50ZXIgb3Ig RWRpdCB2YWx1ZXMgaW4gR3JpZCAgICAgIHwKICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSsKIAotSW5uZXIgUGFuZWwgTmF2aWdhdGlvbgotKioqKioqKioqKioqKioqKioqKioqKgorSW5u ZXIgVGFicyBhbmQgUGFuZWxzIE5hdmlnYXRpb24KKyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCiAKIFdoZW4gdXNpbmcgdGhlIFF1ZXJ5IFRvb2wgYW5kIERlYnVnZ2VyLCB0aGUgZm9s bG93aW5nIHNob3J0Y3V0cyBhcmUgYXZhaWxhYmxlCiBmb3IgaW5uZXIgcGFuZWwgbmF2aWdhdGlv bjoKQEAgLTIwMywxMyArMjAzLDE1IEBAIGZvciBpbm5lciBwYW5lbCBuYXZpZ2F0aW9uOgogICAg OmNsYXNzOiBsb25ndGFibGUKICAgIDp3aWR0aHM6IDIgMiAzCiAKLSAgICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKwotICAgfCBTaG9ydGN1dCAoV2luZG93cy9MaW51eCkgfCBTaG9ydGN1dCAoTWFj KSAgICAgIHwgRnVuY3Rpb24gICAgICAgICAgICAgICAgICAgICB8Ci0gICArPT09PT09PT09PT09 PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PSsKLSAgIHwgQWx0ICsgU2hpZnQgKyBSaWdodCAgICAgIHwgQWx0ICsgU2hpZnQg KyBSaWdodCB8IE1vdmUgdG8gbmV4dCBpbm5lciBwYW5lbCAgICAgfAotICAgKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rCi0gICB8IEFsdCArIFNoaWZ0ICsgTGVmdCAgICAgICB8IEFsdCArIFNoaWZ0 ICsgTGVmdCAgfCBNb3ZlIHRvIHByZXZpb3VzIGlubmVyIHBhbmVsIHwKLSAgICstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKworICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisg ICB8IFNob3J0Y3V0IChXaW5kb3dzL0xpbnV4KSB8IFNob3J0Y3V0IChNYWMpICAgICAgICAgICAg fCBGdW5jdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICs9PT09PT09PT09PT09 PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09KworICAgfCBBbHQgKyBTaGlmdCArIF0gICAgICAgICAgfCBB bHQgKyBTaGlmdCArIF0gICAgICAgICAgIHwgTW92ZSB0byBuZXh0IHRhYiB3aXRoaW4gYSBwYW5l bCAgICB8CisgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgIHwgQWx0 ICsgU2hpZnQgKyBbICAgICAgICAgIHwgQWx0ICsgU2hpZnQgKyBbICAgICAgICAgICB8IE1vdmUg dG8gcHJldmlvdXMgdGFiIHdpdGhpbiBhIHBhbmVsfAorICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rCisgICB8IEFsdCArIFNoaWZ0ICsgVGFiICAgICAgICB8IEFsdCArIFNo aWZ0ICsgVGFiICAgICAgICAgfCBNb3ZlIGJldHdlZW4gaW5uZXIgcGFuZWxzICAgICAgICAgIHwK KyAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCiBBY2Nlc3MgS2V5CiAq KioqKioqKioqCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMva2V5Ym9hcmRfc2hv cnRjdXRzLmpzIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2tleWJvYXJkX3Nob3J0Y3V0cy5qcwpp bmRleCAwMTc1MjliNy4uYzU2NWI4NjIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy9rZXlib2FyZF9zaG9ydGN1dHMuanMKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2tleWJv YXJkX3Nob3J0Y3V0cy5qcwpAQCAtOSw2ICs5LDcgQEAKIAogaW1wb3J0ICQgZnJvbSAnanF1ZXJ5 JzsKIGltcG9ydCBnZXR0ZXh0IGZyb20gJ3NvdXJjZXMvZ2V0dGV4dCc7CitpbXBvcnQgeyBnZXRN b2QgfSBmcm9tICdzb3VyY2VzL3V0aWxzJzsKIAogY29uc3QgUEVSSU9EX0tFWSA9IDE5MCwKICAg RldEX1NMQVNIX0tFWSA9IDE5MSwKQEAgLTExNiw5ICsxMTcsNTIgQEAgZnVuY3Rpb24gdmFsaWRh dGVTaG9ydGN1dEtleXModXNlcl9kZWZpbmVkX3Nob3J0Y3V0LCBldmVudCkgewogICAgIHVzZXJf ZGVmaW5lZF9zaG9ydGN1dC5rZXkua2V5X2NvZGUgPT0ga2V5Q29kZTsKIH0KIAorLy8gRmluZHMg dGhlIGRlc2lyZWQgcGFuZWwgb24gd2hpY2ggdXNlciB3YW50cyB0byBuYXZpZ2F0ZSB0bworZnVu Y3Rpb24gZm9jdXNEb2NrZXJQYW5lbChkb2NrZXIsIG9wKSB7CisgIGlmKCFkb2NrZXIpIHsKKyAg ICByZXR1cm47CisgIH0KKworICAvLyBJZiBubyBmcmFtZSBpbiBmb2N1cywgZm9jdXMgdGhlIGZp cnN0IG9uZQorICBpZighZG9ja2VyLl9mb2N1c0ZyYW1lKSB7CisgICAgaWYoZG9ja2VyLl9mcmFt ZUxpc3QubGVuZ3RoID09IDAgJiYgZG9ja2VyLl9mcmFtZUxpc3RbMF0uX3BhbmVsTGlzdC5sZW5n dGggPT0gMCkgeworICAgICAgcmV0dXJuOworICAgIH0KKyAgICBkb2NrZXIuX2ZyYW1lTGlzdFsw XS5fcGFuZWxMaXN0W2RvY2tlci5fZnJhbWVMaXN0WzBdLl9jdXJUYWJdLmZvY3VzKCk7CisgIH0K KworICBsZXQgZm9jdXNfZnJhbWUgPSBkb2NrZXIuX2ZvY3VzRnJhbWUsCisgICAgZm9jdXNfaWQg PSAwLAorICAgIGZsYXNoID0gZmFsc2U7CisKKyAgLy8gTW9kIGlzIHVzZWQgdG8gY3ljbGUgdGhl IG9wCisgIGlmIChvcCA9PSAnc3dpdGNoJykgeworICAgIGxldCBpID0gMCwgdG90YWxfZnJhbWVz ID0gZG9ja2VyLl9mcmFtZUxpc3QubGVuZ3RoOworCisgICAgZm9yKGkgPSAwOyBpIDwgdG90YWxf ZnJhbWVzOyBpKyspIHsKKyAgICAgIGlmKGZvY3VzX2ZyYW1lID09PSBkb2NrZXIuX2ZyYW1lTGlz dFtpXSkgYnJlYWs7CisgICAgfQorICAgIGZvY3VzX2ZyYW1lID0gZG9ja2VyLl9mcmFtZUxpc3Rb Z2V0TW9kKGkrMSx0b3RhbF9mcmFtZXMpXTsKKyAgICBmb2N1c19pZCA9IGZvY3VzX2ZyYW1lLl9j dXJUYWI7CisgICAgZmxhc2ggPSB0cnVlOworICB9IGVsc2UgaWYgKG9wID09ICdsZWZ0Jykgewor ICAgIGZvY3VzX2lkID0gZ2V0TW9kKGZvY3VzX2ZyYW1lLl9jdXJUYWItMSwgZm9jdXNfZnJhbWUu X3BhbmVsTGlzdC5sZW5ndGgpOworICAgIGZsYXNoID0gZmFsc2U7CisgIH0gZWxzZSBpZiAob3Ag PT0gJ3JpZ2h0JykgeworICAgIGZvY3VzX2lkID0gZ2V0TW9kKGZvY3VzX2ZyYW1lLl9jdXJUYWIr MSwgZm9jdXNfZnJhbWUuX3BhbmVsTGlzdC5sZW5ndGgpOworICAgIGZsYXNoID0gZmFsc2U7Cisg IH0KKworICBsZXQgZm9jdXNfcGFuZWwgPSBmb2N1c19mcmFtZS5fcGFuZWxMaXN0W2ZvY3VzX2lk XTsKKworICBmb2N1c19wYW5lbC4kY29udGFpbmVyLmZpbmQoJypbdGFiaW5kZXhdOm5vdChbdGFi aW5kZXg9Ii0xIl0pJykudHJpZ2dlcignZm9jdXMnKTsKKyAgZm9jdXNfcGFuZWwuZm9jdXMoZmxh c2gpOworICByZXR1cm4gZm9jdXNfcGFuZWwuX3R5cGU7Cit9CisKIC8qIERlYnVnZ2VyOiBLZXli b2FyZCBTaG9ydGN1dHMgaGFuZGxpbmcgKi8KLWZ1bmN0aW9uIGtleWJvYXJkU2hvcnRjdXRzRGVi dWdnZXIoJGVsLCBldmVudCwgcHJlZmVyZW5jZXMpIHsKLSAgbGV0IHBhbmVsX2lkLCBwYW5lbF9j b250ZW50LCAkaW5wdXQ7CitmdW5jdGlvbiBrZXlib2FyZFNob3J0Y3V0c0RlYnVnZ2VyKCRlbCwg ZXZlbnQsIHByZWZlcmVuY2VzLCBkb2NrZXIpIHsKKyAgbGV0IHBhbmVsX3R5cGUgPSAnJywgcGFu ZWxfY29udGVudCwgJGlucHV0OwogCiAgIGlmKHRoaXMudmFsaWRhdGVTaG9ydGN1dEtleXMocHJl ZmVyZW5jZXMuZWRpdF9ncmlkX3ZhbHVlcywgZXZlbnQpKSB7CiAgICAgdGhpcy5fc3RvcEV2ZW50 UHJvcGFnYXRpb24oZXZlbnQpOwpAQCAtMTMyLDU0ICsxNzYsMzIgQEAgZnVuY3Rpb24ga2V5Ym9h cmRTaG9ydGN1dHNEZWJ1Z2dlcigkZWwsIGV2ZW50LCBwcmVmZXJlbmNlcykgewogICAgIH0KICAg fSBlbHNlIGlmKHRoaXMudmFsaWRhdGVTaG9ydGN1dEtleXMocHJlZmVyZW5jZXMubW92ZV9uZXh0 LCBldmVudCkpIHsKICAgICB0aGlzLl9zdG9wRXZlbnRQcm9wYWdhdGlvbihldmVudCk7Ci0gICAg cGFuZWxfaWQgPSB0aGlzLmdldElubmVyUGFuZWwoJGVsLCAncmlnaHQnKTsKKyAgICBwYW5lbF90 eXBlID0gZm9jdXNEb2NrZXJQYW5lbChkb2NrZXIsICdyaWdodCcpOwogICB9IGVsc2UgaWYodGhp cy52YWxpZGF0ZVNob3J0Y3V0S2V5cyhwcmVmZXJlbmNlcy5tb3ZlX3ByZXZpb3VzLCBldmVudCkp IHsKICAgICB0aGlzLl9zdG9wRXZlbnRQcm9wYWdhdGlvbihldmVudCk7Ci0gICAgcGFuZWxfaWQg PSB0aGlzLmdldElubmVyUGFuZWwoJGVsLCAnbGVmdCcpOwotICB9Ci0gIHJldHVybiBwYW5lbF9p ZDsKLX0KLQotLy8gRmluZHMgdGhlIGRlc2lyZWQgcGFuZWwgb24gd2hpY2ggdXNlciB3YW50cyB0 byBuYXZpZ2F0ZSB0bwotZnVuY3Rpb24gZ2V0SW5uZXJQYW5lbCgkZWwsIGRpcmVjdGlvbikgewot ICBpZighJGVsIHx8ICEkZWwubGVuZ3RoKQotICAgIHJldHVybiBmYWxzZTsKLQotICBsZXQgdG90 YWxfcGFuZWxzID0gJGVsLmZpbmQoJy53Y1BhbmVsVGFiJyk7Ci0gIC8vIElmIG5vIHBhbmVscyBm b3VuZCBPUiBpZiBzaW5nbGUgcGFuZWwKLSAgaWYgKCF0b3RhbF9wYW5lbHMubGVuZ3RoIHx8IHRv dGFsX3BhbmVscy5sZW5ndGggPT0gMSkKLSAgICByZXR1cm4gZmFsc2U7Ci0KLSAgbGV0IGFjdGl2 ZV9wYW5lbCA9ICQodG90YWxfcGFuZWxzKS5maWx0ZXIoJy53Y1BhbmVsVGFiQWN0aXZlJyksCi0g ICAgaWQgPSBwYXJzZUludCgkKGFjdGl2ZV9wYW5lbCkuYXR0cignaWQnKSksCi0gICAgZmlzdF9w YW5lbCA9IDAsCi0gICAgbGFzdF9wYW5lbCA9IHRvdGFsX3BhbmVscy5sZW5ndGggLSAxOwotCi0g IC8vIEZpbmQgZGVzaXJlZCBwYW5lbAotICBpZiAoZGlyZWN0aW9uID09ICdsZWZ0JykgewotICAg IGlmKGlkID4gZmlzdF9wYW5lbCkKLSAgICAgIGlkLS07Ci0gIH0gZWxzZSB7Ci0gICAgaWYgKGlk IDwgbGFzdF9wYW5lbCkKLSAgICAgIGlkKys7CisgICAgcGFuZWxfdHlwZSA9IGZvY3VzRG9ja2Vy UGFuZWwoZG9ja2VyLCAnbGVmdCcpOworICB9IGVsc2UgaWYodGhpcy52YWxpZGF0ZVNob3J0Y3V0 S2V5cyhwcmVmZXJlbmNlcy5zd2l0Y2hfcGFuZWwsIGV2ZW50KSkgeworICAgIHRoaXMuX3N0b3BF dmVudFByb3BhZ2F0aW9uKGV2ZW50KTsKKyAgICBwYW5lbF90eXBlID0gZm9jdXNEb2NrZXJQYW5l bChkb2NrZXIsICdzd2l0Y2gnKTsKICAgfQotICByZXR1cm4gaWQ7CisgIHJldHVybiBwYW5lbF90 eXBlOwogfQogCiAvKiBRdWVyeSB0b29sOiBLZXlib2FyZCBTaG9ydGN1dHMgaGFuZGxpbmcgKi8K IGZ1bmN0aW9uIGtleWJvYXJkU2hvcnRjdXRzUXVlcnlUb29sKAotICBzcWxFZGl0b3JDb250cm9s bGVyLCBxdWVyeVRvb2xBY3Rpb25zLCBldmVudAorICBzcWxFZGl0b3JDb250cm9sbGVyLCBxdWVy eVRvb2xBY3Rpb25zLCBldmVudCwgZG9ja2VyCiApIHsKICAgaWYgKHNxbEVkaXRvckNvbnRyb2xs ZXIuaXNRdWVyeVJ1bm5pbmcoKSkgewogICAgIHJldHVybjsKICAgfQotICBsZXQga2V5Q29kZSA9 IGV2ZW50LndoaWNoIHx8IGV2ZW50LmtleUNvZGUsIHBhbmVsX2lkOworICBsZXQga2V5Q29kZSA9 IGV2ZW50LndoaWNoIHx8IGV2ZW50LmtleUNvZGUsIHBhbmVsX3R5cGUgPSAnJzsKICAgbGV0IGV4 ZWN1dGVLZXlzID0gc3FsRWRpdG9yQ29udHJvbGxlci5wcmVmZXJlbmNlcy5leGVjdXRlX3F1ZXJ5 OwogICBsZXQgZXhwbGFpbktleXMgPSBzcWxFZGl0b3JDb250cm9sbGVyLnByZWZlcmVuY2VzLmV4 cGxhaW5fcXVlcnk7CiAgIGxldCBleHBsYWluQW5hbHl6ZUtleXMgPSBzcWxFZGl0b3JDb250cm9s bGVyLnByZWZlcmVuY2VzLmV4cGxhaW5fYW5hbHl6ZV9xdWVyeTsKICAgbGV0IGRvd25sb2FkQ3N2 S2V5cyA9IHNxbEVkaXRvckNvbnRyb2xsZXIucHJlZmVyZW5jZXMuZG93bmxvYWRfY3N2OwotICBs ZXQgbmV4dFBhbmVsS2V5cyA9IHNxbEVkaXRvckNvbnRyb2xsZXIucHJlZmVyZW5jZXMubW92ZV9u ZXh0OwotICBsZXQgcHJldmlvdXNQYW5lbEtleXMgPSBzcWxFZGl0b3JDb250cm9sbGVyLnByZWZl cmVuY2VzLm1vdmVfcHJldmlvdXM7CisgIGxldCBuZXh0VGFiS2V5cyA9IHNxbEVkaXRvckNvbnRy b2xsZXIucHJlZmVyZW5jZXMubW92ZV9uZXh0OworICBsZXQgcHJldmlvdXNUYWJLZXlzID0gc3Fs RWRpdG9yQ29udHJvbGxlci5wcmVmZXJlbmNlcy5tb3ZlX3ByZXZpb3VzOworICBsZXQgc3dpdGNo UGFuZWxLZXlzID0gc3FsRWRpdG9yQ29udHJvbGxlci5wcmVmZXJlbmNlcy5zd2l0Y2hfcGFuZWw7 CiAgIGxldCB0b2dnbGVDYXNlS2V5cyA9IHNxbEVkaXRvckNvbnRyb2xsZXIucHJlZmVyZW5jZXMu dG9nZ2xlX2Nhc2U7CiAgIGxldCBjb21taXRLZXlzID0gc3FsRWRpdG9yQ29udHJvbGxlci5wcmVm ZXJlbmNlcy5jb21taXRfdHJhbnNhY3Rpb247CiAgIGxldCByb2xsYmFja0tleXMgPSBzcWxFZGl0 b3JDb250cm9sbGVyLnByZWZlcmVuY2VzLnJvbGxiYWNrX3RyYW5zYWN0aW9uOwpAQCAtMjM2LDEy ICsyNTgsMTUgQEAgZnVuY3Rpb24ga2V5Ym9hcmRTaG9ydGN1dHNRdWVyeVRvb2woCiAgICAgICAg ICYmICQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KCcuZHJvcGRvd24tc3VibWVudScpLmxlbmd0aCA+ IDApIHsKICAgICAgICQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KCcuZHJvcGRvd24tc3VibWVudScp LmZpbmQoJy5kcm9wZG93bi1tZW51JykucmVtb3ZlQ2xhc3MoJ3Nob3cnKTsKICAgICB9Ci0gIH0g ZWxzZSBpZih0aGlzLnZhbGlkYXRlU2hvcnRjdXRLZXlzKG5leHRQYW5lbEtleXMsIGV2ZW50KSkg eworICB9IGVsc2UgaWYodGhpcy52YWxpZGF0ZVNob3J0Y3V0S2V5cyhuZXh0VGFiS2V5cywgZXZl bnQpKSB7CisgICAgdGhpcy5fc3RvcEV2ZW50UHJvcGFnYXRpb24oZXZlbnQpOworICAgIHBhbmVs X3R5cGUgPSBmb2N1c0RvY2tlclBhbmVsKGRvY2tlciwgJ3JpZ2h0Jyk7CisgIH0gZWxzZSBpZih0 aGlzLnZhbGlkYXRlU2hvcnRjdXRLZXlzKHByZXZpb3VzVGFiS2V5cywgZXZlbnQpKSB7CiAgICAg dGhpcy5fc3RvcEV2ZW50UHJvcGFnYXRpb24oZXZlbnQpOwotICAgIHBhbmVsX2lkID0gdGhpcy5n ZXRJbm5lclBhbmVsKHNxbEVkaXRvckNvbnRyb2xsZXIuY29udGFpbmVyLCAncmlnaHQnKTsKLSAg fSBlbHNlIGlmKHRoaXMudmFsaWRhdGVTaG9ydGN1dEtleXMocHJldmlvdXNQYW5lbEtleXMsIGV2 ZW50KSkgeworICAgIHBhbmVsX3R5cGUgPSBmb2N1c0RvY2tlclBhbmVsKGRvY2tlciwgJ2xlZnQn KTsKKyAgfSBlbHNlIGlmKHRoaXMudmFsaWRhdGVTaG9ydGN1dEtleXMoc3dpdGNoUGFuZWxLZXlz LCBldmVudCkpIHsKICAgICB0aGlzLl9zdG9wRXZlbnRQcm9wYWdhdGlvbihldmVudCk7Ci0gICAg cGFuZWxfaWQgPSB0aGlzLmdldElubmVyUGFuZWwoc3FsRWRpdG9yQ29udHJvbGxlci5jb250YWlu ZXIsICdsZWZ0Jyk7CisgICAgcGFuZWxfdHlwZSA9IGZvY3VzRG9ja2VyUGFuZWwoZG9ja2VyLCAn c3dpdGNoJyk7CiAgIH0gZWxzZSBpZihrZXlDb2RlID09PSBVUF9LRVkgfHwga2V5Q29kZSA9PT0g RE9XTl9LRVkpIHsKICAgICAvKkFwcGx5IG9ubHkgZm9yIGRyb3Bkb3duKi8KICAgICBpZigkKGV2 ZW50LnRhcmdldCkuY2xvc2VzdCgnLmRyb3Bkb3duLW1lbnUnKS5sZW5ndGggPiAwKSB7CkBAIC0y OTMsMTMgKzMxOCwxMyBAQCBmdW5jdGlvbiBrZXlib2FyZFNob3J0Y3V0c1F1ZXJ5VG9vbCgKICAg ICB9CiAgIH0KIAotICByZXR1cm4gcGFuZWxfaWQ7CisgIHJldHVybiBwYW5lbF90eXBlOwogfQog CiBleHBvcnQgewogICBrZXlib2FyZFNob3J0Y3V0c0RlYnVnZ2VyIGFzIHByb2Nlc3NFdmVudERl YnVnZ2VyLAogICBrZXlib2FyZFNob3J0Y3V0c1F1ZXJ5VG9vbCBhcyBwcm9jZXNzRXZlbnRRdWVy eVRvb2wsCi0gIGdldElubmVyUGFuZWwsIHZhbGlkYXRlU2hvcnRjdXRLZXlzLAorICBmb2N1c0Rv Y2tlclBhbmVsLCB2YWxpZGF0ZVNob3J0Y3V0S2V5cywKICAgX3N0b3BFdmVudFByb3BhZ2F0aW9u LCBpc01hYywgaXNLZXlDdHJsQWx0LCBpc0tleUFsdFNoaWZ0LCBpc0tleUN0cmxTaGlmdCwKICAg aXNLZXlDdHJsQWx0U2hpZnQsIGlzQWx0U2hpZnRCb3RoLCBpc0N0cmxTaGlmdEJvdGgsIGlzQ3Ry bEFsdEJvdGgsCiAgIHNob3J0Y3V0X2tleSwgc2hvcnRjdXRfdGl0bGUsIHNob3J0Y3V0X2FjY2Vz c2tleV90aXRsZSwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy91dGlscy5qcyBi L3dlYi9wZ2FkbWluL3N0YXRpYy9qcy91dGlscy5qcwppbmRleCA2YjFlZDlhZC4uMWM1OGE5ZWIg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy91dGlscy5qcworKysgYi93ZWIvcGdh ZG1pbi9zdGF0aWMvanMvdXRpbHMuanMKQEAgLTc5LDMgKzc5LDcgQEAgZXhwb3J0IGZ1bmN0aW9u IGdldEdDRChpbnBfYXJyKSB7CiAKICAgcmV0dXJuIHJlc3VsdDsKIH0KKworZXhwb3J0IGZ1bmN0 aW9uIGdldE1vZChubywgZGl2aXNvcikgeworICByZXR1cm4gKChubyAlIGRpdmlzb3IpICsgZGl2 aXNvcikgJSBkaXZpc29yOworfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvZGVidWdn ZXIvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi90b29scy9kZWJ1Z2dlci9fX2luaXRfXy5weQpp bmRleCA0NGQ1NWRhOC4uMTJlMDQzMzQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL2Rl YnVnZ2VyL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL19faW5p dF9fLnB5CkBAIC0xODQsOCArMTg0LDggQEAgY2xhc3MgRGVidWdnZXJNb2R1bGUoUGdBZG1pbk1v ZHVsZSk6CiAgICAgICAgICAgICAgICAgJ3NoaWZ0JzogVHJ1ZSwKICAgICAgICAgICAgICAgICAn Y29udHJvbCc6IEZhbHNlLAogICAgICAgICAgICAgICAgICdrZXknOiB7Ci0gICAgICAgICAgICAg ICAgICAgICdrZXlfY29kZSc6IDM3LAotICAgICAgICAgICAgICAgICAgICAnY2hhcic6ICdBcnJv d0xlZnQnCisgICAgICAgICAgICAgICAgICAgICdrZXlfY29kZSc6IDIxOSwKKyAgICAgICAgICAg ICAgICAgICAgJ2NoYXInOiAnWycKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9LAog ICAgICAgICAgICAgY2F0ZWdvcnlfbGFiZWw9Z2V0dGV4dCgnS2V5Ym9hcmQgc2hvcnRjdXRzJyks CkBAIC0yMDIsOCArMjAyLDI2IEBAIGNsYXNzIERlYnVnZ2VyTW9kdWxlKFBnQWRtaW5Nb2R1bGUp OgogICAgICAgICAgICAgICAgICdzaGlmdCc6IFRydWUsCiAgICAgICAgICAgICAgICAgJ2NvbnRy b2wnOiBGYWxzZSwKICAgICAgICAgICAgICAgICAna2V5JzogewotICAgICAgICAgICAgICAgICAg ICAna2V5X2NvZGUnOiAzOSwKLSAgICAgICAgICAgICAgICAgICAgJ2NoYXInOiAnQXJyb3dSaWdo dCcKKyAgICAgICAgICAgICAgICAgICAgJ2tleV9jb2RlJzogMjIxLAorICAgICAgICAgICAgICAg ICAgICAnY2hhcic6ICddJworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAg ICAgICAgICBjYXRlZ29yeV9sYWJlbD1nZXR0ZXh0KCdLZXlib2FyZCBzaG9ydGN1dHMnKSwKKyAg ICAgICAgICAgIGZpZWxkcz1zaG9ydGN1dF9maWVsZHMKKyAgICAgICAgKQorCisgICAgICAgIHNl bGYucHJlZmVyZW5jZS5yZWdpc3RlcigKKyAgICAgICAgICAgICdrZXlib2FyZF9zaG9ydGN1dHMn LAorICAgICAgICAgICAgJ3N3aXRjaF9wYW5lbCcsCisgICAgICAgICAgICBnZXR0ZXh0KCdTd2l0 Y2ggUGFuZWwnKSwKKyAgICAgICAgICAgICdrZXlib2FyZHNob3J0Y3V0JywKKyAgICAgICAgICAg IHsKKyAgICAgICAgICAgICAgICAnYWx0JzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAnc2hpZnQn OiBUcnVlLAorICAgICAgICAgICAgICAgICdjb250cm9sJzogRmFsc2UsCisgICAgICAgICAgICAg ICAgJ2tleSc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ2tleV9jb2RlJzogOSwKKyAgICAgICAg ICAgICAgICAgICAgJ2NoYXInOiAnVGFiJwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg IH0sCiAgICAgICAgICAgICBjYXRlZ29yeV9sYWJlbD1nZXR0ZXh0KCdLZXlib2FyZCBzaG9ydGN1 dHMnKSwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3N0YXRpYy9qcy9k aXJlY3QuanMgYi93ZWIvcGdhZG1pbi90b29scy9kZWJ1Z2dlci9zdGF0aWMvanMvZGlyZWN0Lmpz CmluZGV4IDIzYjYxYzRjLi43N2VlNDVlYSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMv ZGVidWdnZXIvc3RhdGljL2pzL2RpcmVjdC5qcworKysgYi93ZWIvcGdhZG1pbi90b29scy9kZWJ1 Z2dlci9zdGF0aWMvanMvZGlyZWN0LmpzCkBAIC0xNTEzLDE3ICsxNTEzLDE3IEBAIGRlZmluZShb CiAgICAgICBjb250cm9sbGVyLlN0ZXBfaW50byhwZ1Rvb2xzLkRpcmVjdERlYnVnLnRyYW5zX2lk KTsKICAgICB9LAogICAgIGtleUFjdGlvbjogZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgICB2YXIg JGVsID0gdGhpcy4kZWwsIHBhbmVsX2lkLCBhY3R1YWxfcGFuZWwsCi0gICAgICAgIHNlbGYgPSB0 aGlzOworICAgICAgbGV0IHBhbmVsX3R5cGU9Jyc7CiAKLSAgICAgIHBhbmVsX2lkID0ga2V5Ym9h cmRTaG9ydGN1dHMucHJvY2Vzc0V2ZW50RGVidWdnZXIoCi0gICAgICAgICRlbCwgZXZlbnQsIHNl bGYucHJlZmVyZW5jZXMKKyAgICAgIHBhbmVsX3R5cGUgPSBrZXlib2FyZFNob3J0Y3V0cy5wcm9j ZXNzRXZlbnREZWJ1Z2dlcigKKyAgICAgICAgdGhpcy4kZWwsIGV2ZW50LCB0aGlzLnByZWZlcmVu Y2VzLCBwZ1Rvb2xzLkRpcmVjdERlYnVnLmRvY2tlcgogICAgICAgKTsKIAotICAgICAgLy8gUGFu ZWwgbmF2aWdhdGlvbgotICAgICAgaWYoIV8uaXNVbmRlZmluZWQocGFuZWxfaWQpICYmICFfLmlz TnVsbChwYW5lbF9pZCkpIHsKLSAgICAgICAgYWN0dWFsX3BhbmVsID0gcGFuZWxfaWQgKyAxOwot ICAgICAgICBwZ1Rvb2xzLkRpcmVjdERlYnVnLmRvY2tlci5maW5kUGFuZWxzKClbYWN0dWFsX3Bh bmVsXS5mb2N1cygpOworCisgICAgICBpZighXy5pc051bGwocGFuZWxfdHlwZSkgJiYgIV8uaXNV bmRlZmluZWQocGFuZWxfdHlwZSkgJiYgcGFuZWxfdHlwZSAhPSAnJykgeworICAgICAgICBzZXRU aW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgIHBnQnJvd3Nlci5FdmVudHMudHJpZ2dlcihg cGdhZG1pbjpkZWJ1Z2dlcjoke3BhbmVsX3R5cGV9OmZvY3VzYCk7CisgICAgICAgIH0sIDEwMCk7 CiAgICAgICB9CiAgICAgfSwKICAgfSk7CkBAIC0xODU2LDYgKzE4NTYsMTAgQEAgZGVmaW5lKFsK ICAgICAgICAgfQogICAgICAgfSk7CiAKKyAgICAgIHBnQnJvd3Nlci5FdmVudHMub24oJ3BnYWRt aW46ZGVidWdnZXI6Y29kZTpmb2N1cycsICgpPT57CisgICAgICAgIHNlbGYuZWRpdG9yLmZvY3Vz KCk7CisgICAgICB9KTsKKwogICAgICAgLy8gT24gbG9hZGluZyB0aGUgZG9ja2VyLCByZWdpc3Rl ciB0aGUgY2FsbGJhY2tzCiAgICAgICB2YXIgb25Mb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgICAg IHNlbGYuZG9ja2VyLmZpbmlzaExvYWRpbmcoMTAwKTsKQEAgLTE5MDYsNiArMTkxMCwxNiBAQCBk ZWZpbmUoWwogICAgICAgLy8gQ3JlYXRlIHRoZSB0b29sYmFyIHZpZXcgZm9yIGRlYnVnZ2luZyB0 aGUgZnVuY3Rpb24KICAgICAgIHRoaXMudG9vbGJhclZpZXcgPSBuZXcgRGVidWdnZXJUb29sYmFy VmlldygpOwogCisgICAgICAvKiB3Y0RvY2tlciBmb2N1c2VzIG9uIHdpbmRvdyBhbHdheXMsIGFu ZCBhbGwgb3VyIHNob3J0Y3V0cyBhcmUKKyAgICAgICAqIGJpbmQgdG8gZWRpdG9yLXBhbmVsLiBT byB3aGVuIHdlIHVzZSB3Y0RvY2tlciBmb2N1cywgZWRpdG9yLXBhbmVsCisgICAgICAgKiBsb3Nl cyBmb2N1cyBhbmQgZXZlbnRzIGRvbid0IHdvcmsuCisgICAgICAgKi8KKyAgICAgICQod2luZG93 KS5vbigna2V5ZG93bicsIChlKT0+eworICAgICAgICBpZihzZWxmLnRvb2xiYXJWaWV3LmtleUFj dGlvbikgeworICAgICAgICAgIHNlbGYudG9vbGJhclZpZXcua2V5QWN0aW9uKGUpOworICAgICAg ICB9CisgICAgICB9KTsKKwogICAgICAgLyogQ2FjaGUgbWF5IHRha2UgdGltZSB0byBsb2FkIGZv ciB0aGUgZmlyc3QgdGltZQogICAgICAgICogS2VlcCB0cnlpbmcgdGlsbCBhdmFpbGFibGUKICAg ICAgICAqLwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9q cy9zcWxlZGl0b3IuanMgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL3Nx bGVkaXRvci5qcwppbmRleCA5NDQyNTk1Yi4uYTgwODA1MjQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvc3FsZWRpdG9yLmpzCisrKyBiL3dlYi9wZ2Fk bWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvc3FsZWRpdG9yLmpzCkBAIC0xOTUsOCArMTk1 LDggQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICAgICAgICAgICAnZmlsZW5hbWUn OiAnY3NzJywKICAgICAgICAgICB9KSwKICAgICAgICAgICB0aGVtZTogJ3dlYmNhYmluLm92ZXJy aWRlcy5jc3MnLAotICAgICAgICB9KTsKLQorICAgICAgICB9CisgICAgICApOwogCiAgICAgICAv LyBDcmVhdGUgdGhlIHBhbmVscwogICAgICAgdmFyIHNxbF9wYW5lbCA9IG5ldyBwZ0FkbWluLkJy b3dzZXIuUGFuZWwoewpAQCAtMjE2LDcgKzIxNiw3IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29s JywgWwogICAgICAgICBpc0Nsb3NlYWJsZTogZmFsc2UsCiAgICAgICAgIGlzUHJpdmF0ZTogdHJ1 ZSwKICAgICAgICAgZXh0cmFDbGFzc2VzOiAnaGlkZS12ZXJ0aWNhbC1zY3JvbGxiYXInLAotICAg ICAgICBjb250ZW50OiAnPGRpdiBpZCA9ImRhdGFncmlkIiBjbGFzcz0ic3FsLWVkaXRvci1ncmlk LWNvbnRhaW5lciB0ZXh0LTEyIiB0YWJpbmRleDogIjAiPjwvZGl2PicsCisgICAgICAgIGNvbnRl bnQ6ICc8ZGl2IGlkID0iZGF0YWdyaWQiIGNsYXNzPSJzcWwtZWRpdG9yLWdyaWQtY29udGFpbmVy IHRleHQtMTIiIHRhYmluZGV4PSIwIj48L2Rpdj4nLAogICAgICAgfSk7CiAKICAgICAgIHZhciBl eHBsYWluID0gbmV3IHBnQWRtaW4uQnJvd3Nlci5QYW5lbCh7CkBAIC0yMjYsNyArMjI2LDcgQEAg ZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICAgICAgIGhlaWdodDogJzEwMCUnLAogICAg ICAgICBpc0Nsb3NlYWJsZTogZmFsc2UsCiAgICAgICAgIGlzUHJpdmF0ZTogdHJ1ZSwKLSAgICAg ICAgY29udGVudDogJzxkaXYgY2xhc3M9InNxbC1lZGl0b3ItZXhwbGFpbiIgdGFiaW5kZXg6ICIw Ij48L2Rpdj4nLAorICAgICAgICBjb250ZW50OiAnPGRpdiBjbGFzcz0ic3FsLWVkaXRvci1leHBs YWluIiB0YWJpbmRleD0iMCI+PC9kaXY+JywKICAgICAgIH0pOwogCiAgICAgICB2YXIgbWVzc2Fn ZXMgPSBuZXcgcGdBZG1pbi5Ccm93c2VyLlBhbmVsKHsKQEAgLTIzNiw3ICsyMzYsNyBAQCBkZWZp bmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgICAgaGVpZ2h0OiAnMTAwJScsCiAgICAgICAg IGlzQ2xvc2VhYmxlOiBmYWxzZSwKICAgICAgICAgaXNQcml2YXRlOiB0cnVlLAotICAgICAgICBj b250ZW50OiAnPGRpdiBjbGFzcz0ic3FsLWVkaXRvci1tZXNzYWdlIiB0YWJpbmRleDogIjAiPjwv ZGl2PicsCisgICAgICAgIGNvbnRlbnQ6ICc8ZGl2IGNsYXNzPSJzcWwtZWRpdG9yLW1lc3NhZ2Ui IHRhYmluZGV4PSAiMCI+PC9kaXY+JywKICAgICAgIH0pOwogCiAgICAgICB2YXIgaGlzdG9yeSA9 IG5ldyBwZ0FkbWluLkJyb3dzZXIuUGFuZWwoewpAQCAtMjQ2LDcgKzI0Niw3IEBAIGRlZmluZSgn dG9vbHMucXVlcnl0b29sJywgWwogICAgICAgICBoZWlnaHQ6ICczMyUnLAogICAgICAgICBpc0Ns b3NlYWJsZTogZmFsc2UsCiAgICAgICAgIGlzUHJpdmF0ZTogdHJ1ZSwKLSAgICAgICAgY29udGVu dDogJzxkaXYgaWQgPSJoaXN0b3J5X2dyaWQiIGNsYXNzPSJzcWwtZWRpdG9yLWhpc3RvcnktY29u dGFpbmVyIiB0YWJpbmRleDogIjAiPjwvZGl2PicsCisgICAgICAgIGNvbnRlbnQ6ICc8ZGl2IGlk ID0iaGlzdG9yeV9ncmlkIiBjbGFzcz0ic3FsLWVkaXRvci1oaXN0b3J5LWNvbnRhaW5lciIgdGFi aW5kZXg9ICIwIj48L2Rpdj4nLAogICAgICAgfSk7CiAKICAgICAgIHZhciBzY3JhdGNoID0gbmV3 IHBnQWRtaW4uQnJvd3Nlci5QYW5lbCh7CkBAIC0yNTYsNyArMjU2LDcgQEAgZGVmaW5lKCd0b29s cy5xdWVyeXRvb2wnLCBbCiAgICAgICAgIGhlaWdodDogJzMzJScsCiAgICAgICAgIGlzQ2xvc2Vh YmxlOiB0cnVlLAogICAgICAgICBpc1ByaXZhdGU6IGZhbHNlLAotICAgICAgICBjb250ZW50OiAn PGRpdiBjbGFzcz0ic3FsLXNjcmF0Y2giIHRhYmluZGV4OiAiMCI+PHRleHRhcmVhIHdyYXA9Im9m ZiI+PC90ZXh0YXJlYT48L2Rpdj4nLAorICAgICAgICBjb250ZW50OiAnPGRpdiBjbGFzcz0ic3Fs LXNjcmF0Y2giPjx0ZXh0YXJlYSB3cmFwPSJvZmYiIHRhYmluZGV4PSAiMCI+PC90ZXh0YXJlYT48 L2Rpdj4nLAogICAgICAgfSk7CiAKICAgICAgIHZhciBub3RpZmljYXRpb25zID0gbmV3IHBnQWRt aW4uQnJvd3Nlci5QYW5lbCh7CkBAIC0yNjYsNyArMjY2LDcgQEAgZGVmaW5lKCd0b29scy5xdWVy eXRvb2wnLCBbCiAgICAgICAgIGhlaWdodDogJzEwMCUnLAogICAgICAgICBpc0Nsb3NlYWJsZTog ZmFsc2UsCiAgICAgICAgIGlzUHJpdmF0ZTogdHJ1ZSwKLSAgICAgICAgY29udGVudDogJzxkaXYg aWQgPSJub3RpZmljYXRpb25fZ3JpZCIgY2xhc3M9InNxbC1lZGl0b3Itbm90aWZpY2F0aW9ucyIg dGFiaW5kZXg6ICIwIj48L2Rpdj4nLAorICAgICAgICBjb250ZW50OiAnPGRpdiBpZCA9Im5vdGlm aWNhdGlvbl9ncmlkIiBjbGFzcz0ic3FsLWVkaXRvci1ub3RpZmljYXRpb25zIiB0YWJpbmRleD0g IjAiPjwvZGl2PicsCiAgICAgICB9KTsKIAogICAgICAgdmFyIGdlb21ldHJ5X3ZpZXdlciA9IG5l dyBwZ0FkbWluLkJyb3dzZXIuUGFuZWwoewpAQCAtMjc3LDcgKzI3Nyw3IEBAIGRlZmluZSgndG9v bHMucXVlcnl0b29sJywgWwogICAgICAgICBpc0Nsb3NlYWJsZTogdHJ1ZSwKICAgICAgICAgaXNQ cml2YXRlOiB0cnVlLAogICAgICAgICBpc0xheW91dE1lbWJlcjogZmFsc2UsCi0gICAgICAgIGNv bnRlbnQ6ICc8ZGl2IGlkID0iZ2VvbWV0cnlfdmlld2VyX3BhbmVsIiBjbGFzcz0ic3FsLWVkaXRv ci1nZW9tZXRyeS12aWV3ZXIiIHRhYmluZGV4OiAiMCI+PC9kaXY+JywKKyAgICAgICAgY29udGVu dDogJzxkaXYgaWQgPSJnZW9tZXRyeV92aWV3ZXJfcGFuZWwiIGNsYXNzPSJzcWwtZWRpdG9yLWdl b21ldHJ5LXZpZXdlciIgdGFiaW5kZXg9ICIwIj48L2Rpdj4nLAogICAgICAgfSk7CiAKICAgICAg IC8vIExvYWQgYWxsIHRoZSBjcmVhdGVkIHBhbmVscwpAQCAtMzE3LDggKzMxNyw4IEBAIGRlZmlu ZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgICAgc2VsZi5yZW5kZXJfaGlzdG9yeV9ncmlkKCk7 CiAgICAgICBxdWVyeVRvb2xOb3RpZmljYXRpb25zLnJlbmRlck5vdGlmaWNhdGlvbnNHcmlkKHNl bGYubm90aWZpY2F0aW9uc19wYW5lbCk7CiAKLSAgICAgIHZhciB0ZXh0X2NvbnRhaW5lciA9ICQo Jzx0ZXh0YXJlYSBpZD0ic3FsX3F1ZXJ5X3Rvb2wiIHRhYmluZGV4OiAiLTEiPjwvdGV4dGFyZWE+ Jyk7Ci0gICAgICB2YXIgb3V0cHV0X2NvbnRhaW5lciA9ICQoJzxkaXYgaWQ9Im91dHB1dC1wYW5l bCIgdGFiaW5kZXg6ICIwIj48L2Rpdj4nKS5hcHBlbmQodGV4dF9jb250YWluZXIpOworICAgICAg dmFyIHRleHRfY29udGFpbmVyID0gJCgnPHRleHRhcmVhIGlkPSJzcWxfcXVlcnlfdG9vbCIgdGFi aW5kZXg9Ii0xIj48L3RleHRhcmVhPicpOworICAgICAgdmFyIG91dHB1dF9jb250YWluZXIgPSAk KCc8ZGl2IGlkPSJvdXRwdXQtcGFuZWwiIHRhYmluZGV4PSIwIj48L2Rpdj4nKS5hcHBlbmQodGV4 dF9jb250YWluZXIpOwogICAgICAgc2VsZi5zcWxfcGFuZWxfb2JqLiRjb250YWluZXIuZmluZCgn LnBnLXBhbmVsLWNvbnRlbnQnKS5hcHBlbmQob3V0cHV0X2NvbnRhaW5lcik7CiAKICAgICAgIHNl bGYucXVlcnlfdG9vbF9vYmogPSBDb2RlTWlycm9yLmZyb21UZXh0QXJlYSh0ZXh0X2NvbnRhaW5l ci5nZXQoMCksIHsKQEAgLTM0Miw2ICszNDIsMTAgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wn LCBbCiAgICAgICAgIHNjcm9sbGJhclN0eWxlOiAnc2ltcGxlJywKICAgICAgIH0pOwogCisgICAg ICBwZ0Jyb3dzZXIuRXZlbnRzLm9uKCdwZ2FkbWluOnF1ZXJ5X3Rvb2w6c3FsX3BhbmVsOmZvY3Vz JywgKCk9PnsKKyAgICAgICAgc2VsZi5xdWVyeV90b29sX29iai5mb2N1cygpOworICAgICAgfSk7 CisKICAgICAgIGlmICghc2VsZi5wcmVmZXJlbmNlcy5uZXdfYnJvd3Nlcl90YWIpIHsKICAgICAg ICAgLy8gTGlzdGVuIG9uIHRoZSBwYW5lbCBjbG9zZWQgZXZlbnQgYW5kIG5vdGlmeSB1c2VyIHRv IHNhdmUgbW9kaWZpY2F0aW9ucy4KICAgICAgICAgXy5lYWNoKHdpbmRvdy50b3AucGdBZG1pbi5C cm93c2VyLmRvY2tlci5maW5kUGFuZWxzKCdmcm1fZGF0YWdyaWQnKSwgZnVuY3Rpb24ocCkgewpA QCAtMTg1MiwyMyArMTg1NiwxOSBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICB9 LAogCiAgICAga2V5QWN0aW9uOiBmdW5jdGlvbihldmVudCkgewotICAgICAgdmFyIHBhbmVsX2lk LCBzZWxmID0gdGhpczsKLSAgICAgIHBhbmVsX2lkID0ga2V5Ym9hcmRTaG9ydGN1dHMucHJvY2Vz c0V2ZW50UXVlcnlUb29sKAotICAgICAgICB0aGlzLmhhbmRsZXIsIHF1ZXJ5VG9vbEFjdGlvbnMs IGV2ZW50CisgICAgICB2YXIgcGFuZWxfdHlwZT0nJzsKKworICAgICAgcGFuZWxfdHlwZSA9IGtl eWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKKyAgICAgICAgdGhpcy5oYW5k bGVyLCBxdWVyeVRvb2xBY3Rpb25zLCBldmVudCwgdGhpcy5kb2NrZXIKICAgICAgICk7CiAKLSAg ICAgIC8vIElmIGl0IHJldHVybiBwYW5lbCBpZCB0aGVuIGZvY3VzIGl0Ci0gICAgICBpZighXy5p c051bGwocGFuZWxfaWQpICYmICFfLmlzVW5kZWZpbmVkKHBhbmVsX2lkKSkgewotICAgICAgICAv LyBSZXR1cm5lZCBwYW5lbCBpbmRleCwgYnkgaW5jcmVtZW50aW5nIGl0IGJ5IDEgd2Ugd2lsbCBn ZXQgYWN0dWFsIHBhbmVsCi0gICAgICAgIHBhbmVsX2lkKys7Ci0gICAgICAgIHRoaXMuZG9ja2Vy LmZpbmRQYW5lbHMoKVtwYW5lbF9pZF0uZm9jdXMoKTsKLSAgICAgICAgLy8gV2Ugc2V0IGZvY3Vz IG9uIGhpc3RvcnkgdGFiIHNvIHdlIG5lZWQgdG8gc2V0IHRoZSBmb2N1cyBvbgotICAgICAgICAv LyBlZGl0b3IgZXhwbGljaXRseQotICAgICAgICBpZihwYW5lbF9pZCA9PSAzKSB7Ci0gICAgICAg ICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgc2VsZi5xdWVyeV90b29sX29iai5mb2N1cygpOyB9 LCAxMDApOwotICAgICAgICB9CisgICAgICBpZighXy5pc051bGwocGFuZWxfdHlwZSkgJiYgIV8u aXNVbmRlZmluZWQocGFuZWxfdHlwZSkgJiYgcGFuZWxfdHlwZSAhPSAnJykgeworICAgICAgICBz ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgIHBnQnJvd3Nlci5FdmVudHMudHJpZ2dl cihgcGdhZG1pbjpxdWVyeV90b29sOiR7cGFuZWxfdHlwZX06Zm9jdXNgKTsKKyAgICAgICAgfSwg MTAwKTsKICAgICAgIH0KICAgICB9LAorCiAgICAgLy8gQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRo ZSBjb21taXQgYnV0dG9uIGNsaWNrLgogICAgIG9uX2NvbW1pdF90cmFuc2FjdGlvbjogZnVuY3Rp b24oKSB7CiAgICAgICBxdWVyeVRvb2xBY3Rpb25zLmV4ZWN1dGVDb21taXQodGhpcy5oYW5kbGVy KTsKQEAgLTIxMjYsNiArMjEyNiwxNiBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAg ICAgICAgLy8gUmVuZGVyIHRoZSBoZWFkZXIKICAgICAgICAgc2VsZi5ncmlkVmlldy5yZW5kZXIo KTsKIAorICAgICAgICAvKiB3Y0RvY2tlciBmb2N1c2VzIG9uIHdpbmRvdyBhbHdheXMsIGFuZCBh bGwgb3VyIHNob3J0Y3V0cyBhcmUKKyAgICAgICAgICogYmluZCB0byBlZGl0b3ItcGFuZWwuIFNv IHdoZW4gd2UgdXNlIHdjRG9ja2VyIGZvY3VzLCBlZGl0b3ItcGFuZWwKKyAgICAgICAgICogbG9z ZXMgZm9jdXMgYW5kIGV2ZW50cyBkb24ndCB3b3JrLgorICAgICAgICAgKi8KKyAgICAgICAgJCh3 aW5kb3cpLm9uKCdrZXlkb3duJywgKGUpPT57CisgICAgICAgICAgaWYoc2VsZi5ncmlkVmlldy5r ZXlBY3Rpb24pIHsKKyAgICAgICAgICAgIHNlbGYuZ3JpZFZpZXcua2V5QWN0aW9uKGUpOworICAg ICAgICAgIH0KKyAgICAgICAgfSk7CisKICAgICAgICAgaWYgKHNlbGYuaXNfcXVlcnlfdG9vbCkg ewogICAgICAgICAgIC8vIEZldGNoIHRoZSBTUUwgZm9yIFNjcmlwdHMgKGVnOiBDUkVBVEUvVVBE QVRFL0RFTEVURS9TRUxFQ1QpCiAgICAgICAgICAgLy8gQ2FsbCBBSkFYIG9ubHkgaWYgc2NyaXB0 IHR5cGUgdXJsIGlzIHByZXNlbnQKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVk aXRvci91dGlscy9xdWVyeV90b29sX3ByZWZlcmVuY2VzLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMv c3FsZWRpdG9yL3V0aWxzL3F1ZXJ5X3Rvb2xfcHJlZmVyZW5jZXMucHkKaW5kZXggOGZiYzg4YWIu LmNhMDllYWVjIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdXRpbHMv cXVlcnlfdG9vbF9wcmVmZXJlbmNlcy5weQorKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0 b3IvdXRpbHMvcXVlcnlfdG9vbF9wcmVmZXJlbmNlcy5weQpAQCAtMzU0LDggKzM1NCw4IEBAIGRl ZiBSZWdpc3RlclF1ZXJ5VG9vbFByZWZlcmVuY2VzKHNlbGYpOgogICAgICAgICAgICAgJ3NoaWZ0 JzogVHJ1ZSwKICAgICAgICAgICAgICdjb250cm9sJzogRmFsc2UsCiAgICAgICAgICAgICAna2V5 JzogewotICAgICAgICAgICAgICAgICdrZXlfY29kZSc6IDM3LAotICAgICAgICAgICAgICAgICdj aGFyJzogJ0Fycm93TGVmdCcKKyAgICAgICAgICAgICAgICAna2V5X2NvZGUnOiAyMTksCisgICAg ICAgICAgICAgICAgJ2NoYXInOiAnWycKICAgICAgICAgICAgIH0KICAgICAgICAgfSwKICAgICAg ICAgY2F0ZWdvcnlfbGFiZWw9Z2V0dGV4dCgnS2V5Ym9hcmQgc2hvcnRjdXRzJyksCkBAIC0zNzIs OCArMzcyLDI2IEBAIGRlZiBSZWdpc3RlclF1ZXJ5VG9vbFByZWZlcmVuY2VzKHNlbGYpOgogICAg ICAgICAgICAgJ3NoaWZ0JzogVHJ1ZSwKICAgICAgICAgICAgICdjb250cm9sJzogRmFsc2UsCiAg ICAgICAgICAgICAna2V5JzogewotICAgICAgICAgICAgICAgICdrZXlfY29kZSc6IDM5LAotICAg ICAgICAgICAgICAgICdjaGFyJzogJ0Fycm93UmlnaHQnCisgICAgICAgICAgICAgICAgJ2tleV9j b2RlJzogMjIxLAorICAgICAgICAgICAgICAgICdjaGFyJzogJ10nCisgICAgICAgICAgICB9Cisg ICAgICAgIH0sCisgICAgICAgIGNhdGVnb3J5X2xhYmVsPWdldHRleHQoJ0tleWJvYXJkIHNob3J0 Y3V0cycpLAorICAgICAgICBmaWVsZHM9c2hvcnRjdXRfZmllbGRzCisgICAgKQorCisgICAgc2Vs Zi5wcmVmZXJlbmNlLnJlZ2lzdGVyKAorICAgICAgICAna2V5Ym9hcmRfc2hvcnRjdXRzJywKKyAg ICAgICAgJ3N3aXRjaF9wYW5lbCcsCisgICAgICAgIGdldHRleHQoJ1N3aXRjaCBQYW5lbCcpLAor ICAgICAgICAna2V5Ym9hcmRzaG9ydGN1dCcsCisgICAgICAgIHsKKyAgICAgICAgICAgICdhbHQn OiBUcnVlLAorICAgICAgICAgICAgJ3NoaWZ0JzogVHJ1ZSwKKyAgICAgICAgICAgICdjb250cm9s JzogRmFsc2UsCisgICAgICAgICAgICAna2V5JzogeworICAgICAgICAgICAgICAgICdrZXlfY29k ZSc6IDksCisgICAgICAgICAgICAgICAgJ2NoYXInOiAnVGFiJwogICAgICAgICAgICAgfQogICAg ICAgICB9LAogICAgICAgICBjYXRlZ29yeV9sYWJlbD1nZXR0ZXh0KCdLZXlib2FyZCBzaG9ydGN1 dHMnKSwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3V0aWxzL3ByZWZlcmVuY2VzLnB5IGIvd2Vi L3BnYWRtaW4vdXRpbHMvcHJlZmVyZW5jZXMucHkKaW5kZXggZWM0ODRkMmUuLjE1MzBjMWE4IDEw MDY0NAotLS0gYS93ZWIvcGdhZG1pbi91dGlscy9wcmVmZXJlbmNlcy5weQorKysgYi93ZWIvcGdh ZG1pbi91dGlscy9wcmVmZXJlbmNlcy5weQpAQCAtNzgsNyArNzgsNyBAQCBjbGFzcyBfUHJlZmVy ZW5jZShvYmplY3QpOgogICAgICAgICAjIExvb2sgaW50byB0aGUgY29uZmlndXJhdGlvbiB0YWJs ZSB0byBmaW5kIG91dCB0aGUgaWQgb2YgdGhlIHNwZWNpZmljCiAgICAgICAgICMgcHJlZmVyZW5j ZS4KICAgICAgICAgcmVzID0gUHJlZlRhYmxlLnF1ZXJ5LmZpbHRlcl9ieSgKLSAgICAgICAgICAg IG5hbWU9bmFtZQorICAgICAgICAgICAgbmFtZT1uYW1lLCBjaWQ9Y2lkCiAgICAgICAgICkuZmly c3QoKQogCiAgICAgICAgIGlmIHJlcyBpcyBOb25lOgpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Np b24vamF2YXNjcmlwdC9jb21tb25fa2V5Ym9hcmRfc2hvcnRjdXRzX3NwZWMuanMgYi93ZWIvcmVn cmVzc2lvbi9qYXZhc2NyaXB0L2NvbW1vbl9rZXlib2FyZF9zaG9ydGN1dHNfc3BlYy5qcwppbmRl eCBhYmU1YmFjNS4uYTc0ZjNjZTUgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3Jp cHQvY29tbW9uX2tleWJvYXJkX3Nob3J0Y3V0c19zcGVjLmpzCisrKyBiL3dlYi9yZWdyZXNzaW9u L2phdmFzY3JpcHQvY29tbW9uX2tleWJvYXJkX3Nob3J0Y3V0c19zcGVjLmpzCkBAIC04LDYgKzgs NyBAQAogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAogaW1wb3J0ICogYXMga2V5Ym9hcmRTaG9ydGN1dHMg ZnJvbSAnc291cmNlcy9rZXlib2FyZF9zaG9ydGN1dHMnOworaW1wb3J0ICQgZnJvbSAnanF1ZXJ5 JzsKIAogZGVzY3JpYmUoJ3RoZSBrZXlib2FyZCBzaG9ydGN1dHMnLCAoKSA9PiB7CiAgIGNvbnN0 IEYxX0tFWSA9IDExMjsKQEAgLTQ1LDkgKzQ2LDMwIEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQg c2hvcnRjdXRzJywgKCkgPT4gewogICB9KTsKIAogICBkZXNjcmliZSgnd2hlbiB1c2VyIHdhbnRz IHRvIGdvdG8gbmV4dCBwYW5lbCcsIGZ1bmN0aW9uICgpIHsKLQotICAgIGl0KCdyZXR1cm5zIHBh bmVsIGlkJywgZnVuY3Rpb24gKCkgewotICAgICAgZXhwZWN0KGtleWJvYXJkU2hvcnRjdXRzLmdl dElubmVyUGFuZWwoZGVidWdnZXJFbGVtZW50U3B5LCAncmlnaHQnKSkudG9FcXVhbChmYWxzZSk7 CisgICAgbGV0IGRvY2tlclNweSA9IHsKKyAgICAgICdfZm9jdXNGcmFtZSc6IHsKKyAgICAgICAg J19jdXJUYWInOiAwLAorICAgICAgICAnX3BhbmVsTGlzdCc6IFsKKyAgICAgICAgICB7JGNvbnRh aW5lcjogJCgnPGIvPicpLCAnX3R5cGUnOiAndHlwZTEnLCAnZm9jdXMnOiBmdW5jdGlvbigpIHty ZXR1cm4gdHJ1ZTt9fSwKKyAgICAgICAgICB7JGNvbnRhaW5lcjogJCgnPGIvPicpLCAnX3R5cGUn OiAndHlwZTInLCAnZm9jdXMnOiBmdW5jdGlvbigpIHtyZXR1cm4gdHJ1ZTt9fSwKKyAgICAgICAg XSwKKyAgICAgIH0sCisgICAgfTsKKyAgICBpdCgncmlnaHQga2V5JywgZnVuY3Rpb24gKCkgewor ICAgICAgZG9ja2VyU3B5Ll9mb2N1c0ZyYW1lLl9jdXJUYWIgPSAwOworICAgICAgZXhwZWN0KGtl eWJvYXJkU2hvcnRjdXRzLmZvY3VzRG9ja2VyUGFuZWwoZG9ja2VyU3B5LCAncmlnaHQnKSkudG9F cXVhbCgndHlwZTInKTsKKyAgICB9KTsKKyAgICBpdCgnbGVmdCBrZXknLCBmdW5jdGlvbiAoKSB7 CisgICAgICBkb2NrZXJTcHkuX2ZvY3VzRnJhbWUuX2N1clRhYiA9IDE7CisgICAgICBleHBlY3Qo a2V5Ym9hcmRTaG9ydGN1dHMuZm9jdXNEb2NrZXJQYW5lbChkb2NrZXJTcHksICdsZWZ0JykpLnRv RXF1YWwoJ3R5cGUxJyk7CisgICAgfSk7CisgICAgaXQoJ2xlZnQga2V5IGN5Y2xlJywgZnVuY3Rp b24gKCkgeworICAgICAgZG9ja2VyU3B5Ll9mb2N1c0ZyYW1lLl9jdXJUYWIgPSAwOworICAgICAg ZXhwZWN0KGtleWJvYXJkU2hvcnRjdXRzLmZvY3VzRG9ja2VyUGFuZWwoZG9ja2VyU3B5LCAnbGVm dCcpKS50b0VxdWFsKCd0eXBlMicpOworICAgIH0pOworICAgIGl0KCdyaWdodCBrZXkgY3ljbGUn LCBmdW5jdGlvbiAoKSB7CisgICAgICBkb2NrZXJTcHkuX2ZvY3VzRnJhbWUuX2N1clRhYiA9IDE7 CisgICAgICBleHBlY3Qoa2V5Ym9hcmRTaG9ydGN1dHMuZm9jdXNEb2NrZXJQYW5lbChkb2NrZXJT cHksICdsZWZ0JykpLnRvRXF1YWwoJ3R5cGUxJyk7CiAgICAgfSk7CiAgIH0pOwogCmRpZmYgLS1n aXQgYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3BnYWRtaW5fdXRpbHNfc3BlYy5qcyBiL3dl Yi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvcGdhZG1pbl91dGlsc19zcGVjLmpzCmluZGV4IDM5ZmU4 N2RmLi4wMmJkNTQ3OCAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9wZ2Fk bWluX3V0aWxzX3NwZWMuanMKKysrIGIvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9wZ2FkbWlu X3V0aWxzX3NwZWMuanMKQEAgLTcsNyArNyw3IEBACiAvLwogLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAotaW1wb3J0IHsgZ2V0 RXBvY2gsIGdldEdDRCB9IGZyb20gJ3NvdXJjZXMvdXRpbHMnOworaW1wb3J0IHsgZ2V0RXBvY2gs IGdldEdDRCwgZ2V0TW9kIH0gZnJvbSAnc291cmNlcy91dGlscyc7CiAKIGRlc2NyaWJlKCdnZXRF cG9jaCcsIGZ1bmN0aW9uICgpIHsKICAgaXQoJ3Nob3VsZCByZXR1cm4gbm9uIHplcm8nLCBmdW5j dGlvbiAoKSB7CkBAIC0zMywzICszMywyMSBAQCBkZXNjcmliZSgnZ2V0R0NEJywgZnVuY3Rpb24g KCkgewogICAgIGV4cGVjdChnZXRHQ0Qobm9zKSkudG9FcXVhbCgzKTsKICAgfSk7CiB9KTsKKwor ZGVzY3JpYmUoJ2dldE1vZCcsIGZ1bmN0aW9uICgpIHsKKyAgaXQoJ2NvbXBsZXRlIGRpdmlzaWJs ZScsIGZ1bmN0aW9uICgpIHsKKyAgICBleHBlY3QoZ2V0TW9kKDUsNSkpLnRvRXF1YWwoMCk7Cisg IH0pOworCisgIGl0KCdpbmNvbXBsZXRlIGRpdmlzaWJsZSBsZXNzIGRpdmlzb3InLCBmdW5jdGlv biAoKSB7CisgICAgZXhwZWN0KGdldE1vZCg3LDUpKS50b0VxdWFsKDIpOworICB9KTsKKworICBp dCgnaW5jb21wbGV0ZSBkaXZpc2libGUgZ3JlYXRlciBkaXZpc29yJywgZnVuY3Rpb24gKCkgewor ICAgIGV4cGVjdChnZXRNb2QoNSw3KSkudG9FcXVhbCg1KTsKKyAgfSk7CisKKyAgaXQoJ25lZ2F0 aXZlIG51bWJlcicsIGZ1bmN0aW9uICgpIHsKKyAgICBleHBlY3QoZ2V0TW9kKC03LDUpKS50b0Vx dWFsKDMpOworICB9KTsKK30pOwo= --000000000000930b1e058a92999e--