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 1fb1OE-0006K1-Fa for pgadmin-hackers@arkaria.postgresql.org; Thu, 05 Jul 2018 10:21:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fb1OA-0008AL-Vu for pgadmin-hackers@arkaria.postgresql.org; Thu, 05 Jul 2018 10:21:26 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fb1OA-0008AE-Pi for pgadmin-hackers@lists.postgresql.org; Thu, 05 Jul 2018 10:21:26 +0000 Received: from mail-pl0-x244.google.com ([2607:f8b0:400e:c01::244]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1fb1O6-0006I9-7A for pgadmin-hackers@postgresql.org; Thu, 05 Jul 2018 10:21:26 +0000 Received: by mail-pl0-x244.google.com with SMTP id 6-v6so1036941plb.0 for ; Thu, 05 Jul 2018 03:21:21 -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=+D1AD6MhOgzNM5pb3e2KHxtgprg5/j1fXRLHfYPxQiM=; b=N6Gqott+95/iSRuuLJJjw0hlztQOyIQRzSlUnvKYPGI1xzlvZbrbFGtpXbErOicvuU FhLAgEPWSlJsG+o761EpvZkqkjFPqJk8t77w8RtQz2rGrH90KMdX6HGGzxoXUmspKMqn sKQqhb5vLuwtawUWt6ZYwqReg5w/zVBqGGAPWtOI5/UGDQTeOmmI9rALiAIjig1qOomG us2KN1mSseBR8d9QEzTQjGbmGiD+1Ywz1jERm5f+PIxUWxKaISQTSeXzHF0f23LP7dv6 FNZZUsjubBI7Imh069ORbptnvNhfccwCnmTqksIUCrsDo1/mM5CmABjpng2cmQoG3y/W ARpg== 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=+D1AD6MhOgzNM5pb3e2KHxtgprg5/j1fXRLHfYPxQiM=; b=l5Ujht8KE+PqDbr+kWbBjT2/O4kY81n4d7ASkxuR9yKuH5PkIXhEHZRKkE2qSP0jAF 5w83DuCUzpMQh4zuhBJWsU2rIaSKkjt0zgwzpbrXjThhYltnKbHTaul5vdizhlO3zTu0 xUhXO3XsZuyDVS5jThmBPIhgUJzG9PMK6Ktl5NvrHBpTBvj6eqckou88a3dQbcBs/9/F msD7bAbo/fCiy/P8c/2bEf7ZPHpNXaLoBG3xM4JK/KgmP94mjsabLAY+CNjzoPWukQg+ h/aCqPpYQSz/zAVPHmQjJHs3ofKDTYh7FYv2AoxWovzLJBxStixTgxQ0EhwlumLk4AYP RvQQ== X-Gm-Message-State: APt69E3ZJoW2G/CGrSXu7HVKGJOCTR0eFGsz6DjquF2pCeFRwgaSgb2b 2QPI7tn2r0hEQdALI25Canf5wSnjqcp5p+EKCEPD9w== X-Google-Smtp-Source: AAOMgpc8ZYYwxR7cxpv0hGnKbeNOTOwYXmzukjMaSqQ4V+OwzyvGb2YMWunNWM5JVIt/xOjQTUuKeeYt+dRwTycuPs4= X-Received: by 2002:a17:902:8209:: with SMTP id x9-v6mr5606341pln.150.1530786079644; Thu, 05 Jul 2018 03:21:19 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a17:90a:8c86:0:0:0:0 with HTTP; Thu, 5 Jul 2018 03:21:18 -0700 (PDT) In-Reply-To: References: From: Akshay Joshi Date: Thu, 5 Jul 2018 15:51:18 +0530 Message-ID: Subject: Re: [pgAdmin4][Patch]: RM #3397 Add support for JIT stats in EXPLAIN output in PG11 To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000814eb805703de836" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000814eb805703de836 Content-Type: multipart/alternative; boundary="000000000000814eb705703de834" --000000000000814eb705703de834 Content-Type: text/plain; charset="UTF-8" Hi Dave As per discussion attached is the modified patch with following review comments has been fixed : - Hide statistics button if not applicable(no statistics to show). - Extract 'StatisticsModel' into a separate file and added jasmine test for this. On Tue, Jul 3, 2018 at 6:40 PM, Akshay Joshi wrote: > Hi Dave, > > Please ignore the previous patch, I have made some more changes related to > background colour on enabled/disabled state. > Attached is the modified patch. Please review it. > > On Tue, Jul 3, 2018 at 12:35 PM, Akshay Joshi < > akshay.joshi@enterprisedb.com> wrote: > >> Hi Dave, >> >> On Mon, Jul 2, 2018 at 4:10 PM, Dave Page wrote: >> >>> Hi >>> >>> On Sat, Jun 30, 2018 at 9:15 AM, Akshay Joshi < >>> akshay.joshi@enterprisedb.com> wrote: >>> >>>> Hi Dave >>>> >>>> On Fri, Jun 29, 2018 at 7:45 PM, Dave Page wrote: >>>> >>>>> >>>>> >>>>> On Fri, Jun 29, 2018 at 3:12 PM, Akshay Joshi < >>>>> akshay.joshi@enterprisedb.com> wrote: >>>>> >>>>>> Hi Dave >>>>>> >>>>>> On Fri, Jun 29, 2018 at 6:56 PM, Dave Page wrote: >>>>>> >>>>>>> Hi >>>>>>> >>>>>>> On Fri, Jun 29, 2018 at 9:55 AM, Akshay Joshi < >>>>>>> akshay.joshi@enterprisedb.com> wrote: >>>>>>> >>>>>>>> Hi Hackers, >>>>>>>> >>>>>>>> Attached is the patch to fix the RM #3397 Add support for JIT >>>>>>>> stats in EXPLAIN output in PG11. Please review it. >>>>>>>> >>>>>>> >>>>>>> A couple of immediate thoughts: >>>>>>> >>>>>>> - When the canvas is first rendered, there's a vertical scrollbar >>>>>>> now. As soon as I mouseover the new icon, it vanishes and the icon jumps to >>>>>>> the right. >>>>>>> >>>>>> >>>>>> Will look into it. Vertical scrollbar comes even if you remove >>>>>> my patch and try to hover any image. >>>>>> >>>>>>> >>>>>>> - The icon seems lighter than the other controls on the left. >>>>>>> >>>>>> >>>>>> Same css has been applied, only difference is button is >>>>>> disabled. >>>>>> >>>>>>> >>>>>>> - The icon isn't disabled when there is no info to show. >>>>>>> >>>>>> >>>>>> Button is always disabled, I have just change the opacity. >>>>>> >>>>>>> >>>>>>> Thanks. >>>>>>> >>>>>> >>>>> Maybe - but I can still click it and it reacts as if it's active. It >>>>> may be lighter to indicate that it's disabled, but its not behaving as >>>>> such. >>>>> >>>> >>>> Attached is the modified patch. Please review it. >>>> >>> >>> The button still changes foreground colour on mouseover when disabled. >>> I think it needs to be completely non-reactive when disabled. It should >>> also be a noticably lighter shade when disabled; right now it seems to be >>> darker than the other buttons (see attached). >>> >> >> Attached is the modified patch. Please review it. >> >>> >>> -- >>> Dave Page >>> Blog: http://pgsnake.blogspot.com >>> Twitter: @pgsnake >>> >>> EnterpriseDB UK: http://www.enterprisedb.com >>> The Enterprise PostgreSQL Company >>> >> >> >> >> -- >> *Akshay Joshi* >> >> *Sr. Software Architect * >> >> >> >> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >> > > > > -- > *Akshay Joshi* > > *Sr. Software Architect * > > > > *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* > -- *Akshay Joshi* *Sr. Software Architect * *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* --000000000000814eb705703de834 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Dave

As per discussion attached is t= he modified patch with following review comments has been fixed :
  • Hide statistics button if not applicable(no statistics to show).
  • Extract 'StatisticsModel' into a separate file and added jas= mine test for this.=C2=A0=C2=A0



On Tue, J= ul 3, 2018 at 6:40 PM, Akshay Joshi <akshay.joshi@enterprisedb= .com> wrote:
Hi Dave,

Please ignore the previous patch, I have mad= e some more changes related to background colour on enabled/disabled state.= =C2=A0
Attached is the modified patch. Please re= view it.=C2=A0 =C2=A0

On Tue, Jul = 3, 2018 at 12:35 PM, Akshay Joshi <akshay.joshi@enterprisedb.c= om> wrote:
Hi Dave,

On Mon, Jul 2, 2018 at 4:10 PM, D= ave Page <dpage@pgadmin.org> wrote:
Hi

On Sat, Jun 30, 2018 at 9:15 AM, Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:
Hi Dave
On Fri, Jun 29, 2018 at 7:45 PM, Dave Pag= e <dpage@pgadmin.org> wrote:


On Fri, Jun 29, 2018 at 3:12 PM, Akshay Joshi <ak= shay.joshi@enterprisedb.com> wrote:
Hi Dave

On Fri, Jun 29, 2018 at 6:56 PM, Dave Page <dpa= ge@pgadmin.org> wrote:
Hi

On Fri, Jun 29, 2018 at 9:55 AM, Akshay Joshi <akshay.josh= i@enterprisedb.com> wrote:
Hi Hackers,

Attached is the patch = to fix the RM #3397=C2=A0Add support for JIT stats in EXPLAIN output in PG11. Please review it.
=

A couple of immediate thought= s:

- When the canvas is first rendered, there'= s a vertical scrollbar now. As soon as I mouseover the new icon, it vanishe= s and the icon jumps to the right.

=C2=A0 =C2=A0 =C2=A0Will look into it. Vertical scro= llbar comes even if you remove my patch and try to hover any image.=C2=A0

- The icon seems l= ighter than the other controls on the left.

=C2=A0 =C2=A0 =C2=A0Same css has been appli= ed, only difference is button is disabled.=C2=A0

- The icon isn't disabled when there is= no info to show.

=C2=A0 =C2=A0 =C2=A0Button is always disabled, I have just change the= opacity.=C2=A0 =C2=A0=C2=A0
Thanks.=C2=A0
=

Maybe - but I can still= click it and it reacts as if it's active. It may be lighter to indicat= e that it's disabled, but its not behaving as such.=C2=A0

=C2=A0 =C2=A0 Attached is= the modified patch. Please review it.=C2=A0=C2=A0
<= /blockquote>

The button still changes foreground = colour on mouseover when disabled.=C2=A0 I think it needs to be completely = non-reactive when disabled. It should also be a noticably lighter shade whe= n disabled; right now it seems to be darker than the other buttons (see att= ached).

=C2=A0 =C2= =A0Attached is the modified patch. Please review it.=C2=A0
=
--
Dav= e Page
Blog: h= ttp://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK:= http://www.enter= prisedb.com
The Enterprise PostgreSQL Company



-= -
Akshay Joshi=
Sr. Software Architect


<= b>Phone: +91 20-3058-9517
Mobile: +91 976-788= -8246



--
<= span style=3D"color:rgb(0,0,0);font-family:arial,sans-serif;font-size:13px;= border-collapse:collapse">Akshay Joshi
Sr. Software Architect


Phone: += 91 20-3058-9517
Mobile: +91 976-788-8246



--
=
Akshay Joshi
Sr. Software Architect
<= /font>

=

Phone: +91 20-3058= -9517
Mobile: +91 976-788-8246
= --000000000000814eb705703de834-- --000000000000814eb805703de836 Content-Type: application/octet-stream; name="RM_3397_v5.patch" Content-Disposition: attachment; filename="RM_3397_v5.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jj8ei6dr1 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvcXVlcnlfdG9vbF90ZXN0cy5w eSBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvcXVlcnlfdG9vbF90ZXN0cy5weQppbmRleCBh YzQ2M2QzLi4yMjZiMzIzIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3F1 ZXJ5X3Rvb2xfdGVzdHMucHkKKysrIGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9xdWVyeV90 b29sX3Rlc3RzLnB5CkBAIC0xMDQsNiArMTA0LDE2IEBAIGNsYXNzIFF1ZXJ5VG9vbEZlYXR1cmVU ZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgIHNlbGYuX3F1ZXJ5X3Rvb2xfbm90aWZ5X3N0 YXRlbWVudHMoKQogICAgICAgICBzZWxmLl9jbGVhcl9xdWVyeV90b29sKCkKIAorICAgICAgICAj IGV4cGxhaW4gcXVlcnkgd2l0aCBKSVQgc3RhdHMKKyAgICAgICAgcHJpbnQoIkV4cGxhaW4gcXVl cnkgd2l0aCBKSVQgc3RhdHMuLi4gIiwKKyAgICAgICAgICAgICAgZmlsZT1zeXMuc3RkZXJyLCBl bmQ9IiIpCisgICAgICAgIGlmIHNlbGYuX3N1cHBvcnRlZF9qaXRfb25fc2VydmVyKCk6CisgICAg ICAgICAgICBzZWxmLl9xdWVyeV90b29sX2V4cGxhaW5fY2hlY2tfaml0X3N0YXRzKCkKKyAgICAg ICAgICAgIHByaW50KCJPSy4iLCBmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgICAgICBzZWxmLl9j bGVhcl9xdWVyeV90b29sKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByaW50KCJTa2lw cGVkLiIsIGZpbGU9c3lzLnN0ZGVycikKKwogICAgIGRlZiBhZnRlcihzZWxmKToKICAgICAgICAg c2VsZi5wYWdlLnJlbW92ZV9zZXJ2ZXIoc2VsZi5zZXJ2ZXIpCiAgICAgICAgIGNvbm5lY3Rpb24g PSB0ZXN0X3V0aWxzLmdldF9kYl9jb25uZWN0aW9uKApAQCAtNjYwLDkgKzY3MCw2MiBAQCBTRUxF Q1QgMSwgcGdfc2xlZXAoMzAwKSIiIgogICAgICAgICAgICAgd2FpdC51bnRpbChXYWl0Rm9yQW55 RWxlbWVudFdpdGhUZXh0KAogICAgICAgICAgICAgICAgIChCeS5DU1NfU0VMRUNUT1IsICd0ZC5w YXlsb2FkJyksICJIZWxsbyIpKQogICAgICAgICAgICAgcHJpbnQoIk9LLiIsIGZpbGU9c3lzLnN0 ZGVycikKKyAgICAgICAgICAgIHNlbGYuX2NsZWFyX3F1ZXJ5X3Rvb2woKQogICAgICAgICBlbHNl OgogICAgICAgICAgICAgcHJpbnQoIlNraXBwZWQuIiwgZmlsZT1zeXMuc3RkZXJyKQogCisgICAg ZGVmIF9zdXBwb3J0ZWRfaml0X29uX3NlcnZlcihzZWxmKToKKyAgICAgICAgY29ubmVjdGlvbiA9 IHRlc3RfdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oCisgICAgICAgICAgICBzZWxmLnNlcnZlclsn ZGInXSwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAg c2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICBzZWxmLnNlcnZlclsnaG9z dCddLAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3BvcnQnXSwKKyAgICAgICAgICAgIHNlbGYu c2VydmVyWydzc2xtb2RlJ10KKyAgICAgICAgKQorCisgICAgICAgIHBnX2N1cnNvciA9IGNvbm5l Y3Rpb24uY3Vyc29yKCkKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoJ3NlbGVjdCB2ZXJzaW9u KCknKQorICAgICAgICB2ZXJzaW9uX3N0cmluZyA9IHBnX2N1cnNvci5mZXRjaG9uZSgpCisKKyAg ICAgICAgaXNfZWRiID0gRmFsc2UKKyAgICAgICAgaWYgbGVuKHZlcnNpb25fc3RyaW5nKSA+IDA6 CisgICAgICAgICAgICBpc19lZGIgPSAnRW50ZXJwcmlzZURCJyBpbiB2ZXJzaW9uX3N0cmluZ1sw XQorCisgICAgICAgIGNvbm5lY3Rpb24uY2xvc2UoKQorCisgICAgICAgIHJldHVybiBjb25uZWN0 aW9uLnNlcnZlcl92ZXJzaW9uID49IDExMDAwMCBhbmQgbm90IGlzX2VkYgorCisgICAgZGVmIF9x dWVyeV90b29sX2V4cGxhaW5fY2hlY2tfaml0X3N0YXRzKHNlbGYpOgorICAgICAgICB3YWl0ID0g V2ViRHJpdmVyV2FpdChzZWxmLnBhZ2UuZHJpdmVyLCAxMCkKKworICAgICAgICBzZWxmLnBhZ2Uu ZmlsbF9jb2RlbWlycm9yX2FyZWFfd2l0aCgiU0VUIGppdF9hYm92ZV9jb3N0PTEwOyIpCisgICAg ICAgIHNlbGYucGFnZS5maW5kX2J5X2lkKCJidG4tZmxhc2giKS5jbGljaygpCisgICAgICAgIHNl bGYucGFnZS53YWl0X2Zvcl9xdWVyeV90b29sX2xvYWRpbmdfaW5kaWNhdG9yX3RvX2Rpc2FwcGVh cigpCisgICAgICAgIHNlbGYuX2NsZWFyX3F1ZXJ5X3Rvb2woKQorCisgICAgICAgIHNlbGYucGFn ZS5maWxsX2NvZGVtaXJyb3JfYXJlYV93aXRoKCJTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19jbGFz czsiKQorICAgICAgICBxdWVyeV9vcCA9IHNlbGYucGFnZS5maW5kX2J5X2lkKCJidG4tcXVlcnkt ZHJvcGRvd24iKQorICAgICAgICBxdWVyeV9vcC5jbGljaygpCisgICAgICAgIEFjdGlvbkNoYWlu cyhzZWxmLmRyaXZlcikubW92ZV90b19lbGVtZW50KAorICAgICAgICAgICAgcXVlcnlfb3AuZmlu ZF9lbGVtZW50X2J5X3hwYXRoKAorICAgICAgICAgICAgICAgICIvL2xpW2NvbnRhaW5zKC4sJ0V4 cGxhaW4gT3B0aW9ucycpXSIpKS5wZXJmb3JtKCkKKworICAgICAgICBzZWxmLnBhZ2UuZmluZF9i eV9pZCgiYnRuLWV4cGxhaW4tdmVyYm9zZSIpLmNsaWNrKCkKKyAgICAgICAgc2VsZi5wYWdlLmZp bmRfYnlfaWQoImJ0bi1leHBsYWluLWNvc3RzIikuY2xpY2soKQorICAgICAgICBzZWxmLnBhZ2Uu ZmluZF9ieV9pZCgiYnRuLWV4cGxhaW4tYW5hbHl6ZSIpLmNsaWNrKCkKKworICAgICAgICBzZWxm LnBhZ2Uud2FpdF9mb3JfcXVlcnlfdG9vbF9sb2FkaW5nX2luZGljYXRvcl90b19kaXNhcHBlYXIo KQorICAgICAgICBzZWxmLnBhZ2UuY2xpY2tfdGFiKCdEYXRhIE91dHB1dCcpCisKKyAgICAgICAg Y2FudmFzID0gd2FpdC51bnRpbChFQy5wcmVzZW5jZV9vZl9lbGVtZW50X2xvY2F0ZWQoCisgICAg ICAgICAgICAoQnkuQ1NTX1NFTEVDVE9SLCAiI2RhdGFncmlkIC5zbGljay12aWV3cG9ydCAuZ3Jp ZC1jYW52YXMiKSkKKyAgICAgICAgKQorICAgICAgICAjIFNlYXJjaCBmb3IgJ091dHB1dCcgd29y ZCBpbiByZXN1bHQgKHZlcmJvc2Ugb3B0aW9uKQorICAgICAgICBjYW52YXMuZmluZF9lbGVtZW50 X2J5X3hwYXRoKCIvLypbY29udGFpbnMoc3RyaW5nKCksICdKSVQnKV0iKQorCisgICAgICAgIHNl bGYuX2NsZWFyX3F1ZXJ5X3Rvb2woKQorCiAKIGNsYXNzIFdhaXRGb3JBbnlFbGVtZW50V2l0aFRl eHQob2JqZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9jYXRvciwgdGV4dCk6CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2Nzcy9leHBsYWluLmNzcyBi L3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vY3NzL2V4cGxhaW4uY3NzCmluZGV4IGQ1 NDlmODUuLmQwYTQ0MDkgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxh aW4vY3NzL2V4cGxhaW4uY3NzCisrKyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4v Y3NzL2V4cGxhaW4uY3NzCkBAIC0xNyw2ICsxNywxOSBAQAogICAgb3BhY2l0eTogMTsKIH0KIAor LnBnLWV4cGxhaW4tc3RhdHMtYXJlYSB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOiA1 cHg7CisgIHJpZ2h0OiAyNXB4OworICBvcGFjaXR5OiAwLjU7Cit9CisKKy5wZy1leHBsYWluLXN0 YXRzLWJ0biB7CisgIHRvcDogNXB4OworICBtaW4td2lkdGg6IDI1cHg7CisgIGJvcmRlcjogMXB4 IHNvbGlkIHRyYW5zcGFyZW50OworfQorCiAuZXhwbGFpbi10b29sdGlwIHsKICAgZGlzcGxheTog dGFibGUtY2VsbDsKICAgdGV4dC1hbGlnbjogbGVmdDsKQEAgLTM3LDggKzUwLDYgQEAgdGQuZXhw bGFpbi10b29sdGlwLXZhbCB7CiAKIC5wZ2FkbWluLWV4cGxhaW4tdG9vbHRpcCB7CiAgIHBvc2l0 aW9uOiBhYnNvbHV0ZTsKLSAgcGFkZGluZzo1cHg7Ci0gIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRl OwogICBvcGFjaXR5OjA7CiAgIGNvbG9yOiBjb3Juc2lsazsKICAgYmFja2dyb3VuZC1jb2xvcjog IzAxMDEyNTsKQEAgLTU1LDQgKzY2LDQgQEAgdGQuZXhwbGFpbi10b29sdGlwLXZhbCB7CiAgIGhl aWdodDogMTAwJTsKICAgd2lkdGg6IDEwMCU7CiAgIG92ZXJmbG93OiBhdXRvOwotfQpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKK30KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mvc3Rh dGljL2V4cGxhaW4vanMvZXhwbGFpbi5qcyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxh aW4vanMvZXhwbGFpbi5qcwppbmRleCBlMDI4Nzc0Li4zNDFjYTk5IDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2pzL2V4cGxhaW4uanMKKysrIGIvd2ViL3BnYWRt aW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9qcy9leHBsYWluLmpzCkBAIC0xLDcgKzEsNyBAQAogZGVm aW5lKCdwZ2FkbWluLm1pc2MuZXhwbGFpbicsIFsKICAgJ3NvdXJjZXMvdXJsX2ZvcicsICdqcXVl cnknLCAndW5kZXJzY29yZScsICd1bmRlcnNjb3JlLnN0cmluZycsCi0gICdzb3VyY2VzL3BnYWRt aW4nLCAnYmFja2JvbmUnLCAnc25hcHN2ZycsCi1dLCBmdW5jdGlvbih1cmxfZm9yLCAkLCBfLCBT LCBwZ0FkbWluLCBCYWNrYm9uZSwgU25hcCkgeworICAnc291cmNlcy9wZ2FkbWluJywgJ2JhY2ti b25lJywgJ3NuYXBzdmcnLCAnZXhwbGFpbl9zdGF0aXN0aWNzJywKK10sIGZ1bmN0aW9uKHVybF9m b3IsICQsIF8sIFMsIHBnQWRtaW4sIEJhY2tib25lLCBTbmFwLCBTdGF0aXN0aWNzTW9kZWwpIHsK IAogICBwZ0FkbWluID0gcGdBZG1pbiB8fCB3aW5kb3cucGdBZG1pbiB8fCB7fTsKIApAQCAtNjE1 LDYgKzYxNSw5IEBAIGRlZmluZSgncGdhZG1pbi5taXNjLmV4cGxhaW4nLCBbCiAgICAgICAgIH0p OwogICAgICAgICB0b29sVGlwQ29udGFpbmVyLmNzcygnbGVmdCcsIHRvb2xUaXBYKTsKICAgICAg ICAgdG9vbFRpcENvbnRhaW5lci5jc3MoJ3RvcCcsIHRvb2xUaXBZKTsKKworICAgICAgICAkKCcu cGdhZG1pbi1leHBsYWluLXRvb2x0aXAnKS5jc3MoJ3BhZGRpbmcnLCAnNXB4Jyk7CisgICAgICAg ICQoJy5wZ2FkbWluLWV4cGxhaW4tdG9vbHRpcCcpLmNzcygnYm9yZGVyJywgJzFweCBzb2xpZCB3 aGl0ZScpOwogICAgICAgfSk7CiAKICAgICAgIC8vIFJlbW92ZSB0b29sdGlwIHdoZW4gbW91c2Ug aXMgb3V0IGZyb20gbm9kZSdzIGFyZWEKQEAgLTY5Niw2ICs2OTksNyBAQCBkZWZpbmUoJ3BnYWRt aW4ubWlzYy5leHBsYWluJywgWwogICAgIH0sCiAgICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oKSB7 CiAgICAgICB0aGlzLnNldCgnUGxhbicsIG5ldyBQbGFuTW9kZWwoKSk7CisgICAgICB0aGlzLnNl dCgnU3RhdGlzdGljcycsIG5ldyBTdGF0aXN0aWNzTW9kZWwoKSk7CiAgICAgfSwKIAogICAgIC8v IFBhcnNlIHRoZSBKU09OIGRhdGEgYW5kIGZldGNoIGl0cyBjaGlsZHJlbiBwbGFucwpAQCAtNzE4 LDYgKzcyMiwxNyBAQCBkZWZpbmUoJ3BnYWRtaW4ubWlzYy5leHBsYWluJywgWwogICAgICAgICBk ZWxldGUgZGF0YVsnUGxhbiddOwogICAgICAgfQogCisgICAgICB2YXIgc3RhdGlzdGljcyA9IHRo aXMuZ2V0KCdTdGF0aXN0aWNzJyk7CisgICAgICBpZiAoZGF0YSAmJiAnSklUJyBpbiBkYXRhKSB7 CisgICAgICAgIHN0YXRpc3RpY3Muc2V0KCdKSVQnLCBkYXRhWydKSVQnXSk7CisgICAgICAgIGRl bGV0ZSBkYXRhIFsnSklUJ107CisgICAgICB9CisKKyAgICAgIGlmIChkYXRhICYmICdUcmlnZ2Vy cycgaW4gZGF0YSkgeworICAgICAgICBzdGF0aXN0aWNzLnNldCgnVHJpZ2dlcnMnLCBkYXRhWydU cmlnZ2VycyddKTsKKyAgICAgICAgZGVsZXRlIGRhdGEgWydUcmlnZ2VycyddOworICAgICAgfQor CiAgICAgICByZXR1cm4gZGF0YTsKICAgICB9LAogICAgIHRvSlNPTjogZnVuY3Rpb24oKSB7CkBA IC03NDUsNiArNzYwLDEwIEBAIGRlZmluZSgncGdhZG1pbi5taXNjLmV4cGxhaW4nLCBbCiAgICAg ICBwbGFuLmRyYXcoCiAgICAgICAgIGcsIHhwb3MsIHlwb3MsIHVuZGVmaW5lZCwgdW5kZWZpbmVk LCBncmFwaENvbnRhaW5lciwgdG9vbFRpcENvbnRhaW5lcgogICAgICAgKTsKKworICAgICAgLy9T ZXQgdGhlIFN0YXRpc3RpY3MgYXMgdG9vbHRpcAorICAgICAgdmFyIHN0YXRpc3RpY3MgPSB0aGlz LmdldCgnU3RhdGlzdGljcycpOworICAgICAgc3RhdGlzdGljcy5zZXRfc3RhdGlzdGljcyh0b29s VGlwQ29udGFpbmVyKTsKICAgICB9LAogICB9KTsKIApAQCAtNzg0LDYgKzgwMywyMiBAQCBkZWZp bmUoJ3BnYWRtaW4ubWlzYy5leHBsYWluJywgWwogICAgICAgICAgICAgY2xhc3M6ICdmYSBmYS1z ZWFyY2gtbWludXMnLAogICAgICAgICAgIH0pKTsKIAorICAgICAgdmFyIHN0YXRzQXJlYSA9ICQo JzxkaXY+PC9kaXY+JywgeworICAgICAgICBjbGFzczogJ3BnLWV4cGxhaW4tc3RhdHMtYXJlYSBi dG4tZ3JvdXAgaGlkZGVuJywKKyAgICAgICAgcm9sZTogJ2dyb3VwJywKKyAgICAgIH0pLmFwcGVu ZFRvKGNvbnRhaW5lcik7CisKKyAgICAgICQoJzxidXR0b24+PC9idXR0b24+JywgeworICAgICAg ICBpZDogJ2J0bi1leHBsYWluLXN0YXRzJywKKyAgICAgICAgY2xhc3M6ICdidG4gcGctZXhwbGFp bi1zdGF0cy1idG4gYmFkZ2UnLAorICAgICAgICB0aXRsZTogJ1N0YXRpc3RpY3MnLAorICAgICAg ICB0YWJpbmRleDogMCwKKyAgICAgICAgZGlzYWJsZWQ6ICdkaXNhYmxlZCcsCisgICAgICB9KS5h cHBlbmRUbyhzdGF0c0FyZWEpLmFwcGVuZCgKKyAgICAgICAgJCgnPGk+PC9pPicsIHsKKyAgICAg ICAgICBjbGFzczogJ2ZhIGZhLWxpbmUtY2hhcnQnLAorICAgICAgICB9KSk7CisKICAgICAgIC8v IE1haW4gZGl2IHRvIGJlIGRyYXduIGFsbCBpbWFnZXMgb24KICAgICAgIHZhciBwbGFuRGl2ID0g JCgnPGRpdj48L2Rpdj4nLCB7CiAgICAgICAgICAgY2xhc3M6ICdwZ2FkbWluLWV4cGxhaW4tY29u dGFpbmVyJywKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vanMv ZXhwbGFpbl9zdGF0aXN0aWNzLmpzIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9q cy9leHBsYWluX3N0YXRpc3RpY3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMzY5YTY3MQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4 cGxhaW4vanMvZXhwbGFpbl9zdGF0aXN0aWNzLmpzCkBAIC0wLDAgKzEsOTAgQEAKK2ltcG9ydCAk IGZyb20gJ2pxdWVyeSc7CitpbXBvcnQgQmFja2JvbmUgZnJvbSAnYmFja2JvbmUnOworCisvLyBC YWNrYm9uZSBtb2RlbCBmb3Igb3RoZXIgc3RhdGlzdGljcworbGV0IFN0YXRpc3RpY3NNb2RlbCA9 IEJhY2tib25lLk1vZGVsLmV4dGVuZCh7CisgIGRlZmF1bHRzOiB7CisgICAgSklUOiBbXSwKKyAg ICBUcmlnZ2VyczogW10sCisgIH0sCisKKyAgc2V0X3N0YXRpc3RpY3M6IGZ1bmN0aW9uKHRvb2xU aXBDb250YWluZXIpIHsKKyAgICB2YXIgaml0X3N0YXRzID0gdGhpcy5nZXQoJ0pJVCcpLAorICAg ICAgdHJpZ2dlcnNfc3RhdHMgPSB0aGlzLmdldCgnVHJpZ2dlcnMnKTsKKworICAgIGlmIChPYmpl Y3Qua2V5cyhqaXRfc3RhdHMpLmxlbmd0aCA+IDAgfHwKKyAgICAgICAgT2JqZWN0LmtleXModHJp Z2dlcnNfc3RhdHMpLmxlbmd0aCA+IDApIHsKKyAgICAgICQoJy5wZy1leHBsYWluLXN0YXRzLWFy ZWEnKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7CisgICAgfQorCisgICAgJCgnLnBnLWV4cGxhaW4t c3RhdHMtYXJlYScpLm9uKCdtb3VzZW92ZXInLCAoKSA9PiB7CisKKyAgICAgIC8vIEVtcHR5IHRo ZSB0b29sdGlwIGNvbnRlbnQgaWYgaXQgaGFzIGFueSBhbmQgYWRkIG5ldyBkYXRhCisgICAgICB0 b29sVGlwQ29udGFpbmVyLmVtcHR5KCk7CisgICAgICBpZiAoT2JqZWN0LmtleXMoaml0X3N0YXRz KS5sZW5ndGggPT0gMCAmJgorICAgICAgICBPYmplY3Qua2V5cyh0cmlnZ2Vyc19zdGF0cykubGVu Z3RoID09IDApIHsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICB2YXIgdG9vbHRp cCA9ICQoJzx0YWJsZT48L3RhYmxlPicsIHsKKyAgICAgICAgY2xhc3M6ICdwZ2FkbWluLXRvb2x0 aXAtdGFibGUnLAorICAgICAgfSkuYXBwZW5kVG8odG9vbFRpcENvbnRhaW5lcik7CisKKyAgICAg IGlmIChPYmplY3Qua2V5cyhqaXRfc3RhdHMpLmxlbmd0aCA+IDApeworICAgICAgICB0b29sdGlw LmFwcGVuZCgnPHRyPjx0ZCBjbGFzcz0ibGFiZWwgZXhwbGFpbi10b29sdGlwIj5KSVQ6PC90ZD48 L3RyPicpOworICAgICAgICBfLmVhY2goaml0X3N0YXRzLCBmdW5jdGlvbih2YWx1ZSwga2V5KSB7 CisgICAgICAgICAgdG9vbHRpcC5hcHBlbmQoJzx0cj48dGQgY2xhc3M9ImxhYmVsIGV4cGxhaW4t dG9vbHRpcCI+Jm5ic3AmbmJzcCcKKyAgICAgICAgICArIGtleSArICc8L3RkPjx0ZCBjbGFzcz0i bGFiZWwgZXhwbGFpbi10b29sdGlwLXZhbCI+JworICAgICAgICAgICsgdmFsdWUgKyAnPC90ZD48 L3RyPicpOworICAgICAgICB9KTsKKyAgICAgIH0KKworICAgICAgaWYgKE9iamVjdC5rZXlzKHRy aWdnZXJzX3N0YXRzKS5sZW5ndGggPiAwKXsKKyAgICAgICAgdG9vbHRpcC5hcHBlbmQoJzx0cj48 dGQgY2xhc3M9ImxhYmVsIGV4cGxhaW4tdG9vbHRpcCI+VHJpZ2dlcnM6PC90ZD48L3RyPicpOwor ICAgICAgICBfLmVhY2godHJpZ2dlcnNfc3RhdHMsIGZ1bmN0aW9uKHRyaWdnZXJzLCBrZXlfaWQp IHsKKyAgICAgICAgICBpZiAodHJpZ2dlcnMgaW5zdGFuY2VvZiBPYmplY3QpIHsKKyAgICAgICAg ICAgIF8uZWFjaCh0cmlnZ2VycywgZnVuY3Rpb24odmFsdWUsIGtleSkgeworICAgICAgICAgICAg ICBpZiAoa2V5ID09PSAnVHJpZ2dlciBOYW1lJykgeworICAgICAgICAgICAgICAgIHRvb2x0aXAu YXBwZW5kKCc8dHI+PHRkIGNsYXNzPSJsYWJlbCBleHBsYWluLXRvb2x0aXAiPiZuYnNwOyZuYnNw OycKKyAgICAgICAgICAgICAgICArIGtleSArICc8L3RkPjx0ZCBjbGFzcz0ibGFiZWwgZXhwbGFp bi10b29sdGlwLXZhbCI+JworICAgICAgICAgICAgICAgICsgdmFsdWUgKyAnPC90ZD48L3RyPicp OworICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRvb2x0aXAuYXBwZW5k KCc8dHI+PHRkIGNsYXNzPSJsYWJlbCBleHBsYWluLXRvb2x0aXAiPiZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOycKKyAgICAgICAgICAgICAgICArIGtleSArICc8L3RkPjx0ZCBjbGFzcz0ibGFiZWwg ZXhwbGFpbi10b29sdGlwLXZhbCI+JworICAgICAgICAgICAgICAgICsgdmFsdWUgKyAnPC90ZD48 L3RyPicpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICB9Cisg ICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0b29sdGlwLmFwcGVuZCgnPHRyPjx0ZCBjbGFz cz0ibGFiZWwgZXhwbGFpbi10b29sdGlwIj4mbmJzcDsmbmJzcDsnCisgICAgICAgICAgICArIGtl eV9pZCArICc8L3RkPjx0ZCBjbGFzcz0ibGFiZWwgZXhwbGFpbi10b29sdGlwLXZhbCI+JworICAg ICAgICAgICAgKyB0cmlnZ2VycyArICc8L3RkPjwvdHI+Jyk7CisgICAgICAgICAgfQorICAgICAg ICB9KTsKKyAgICAgIH0KKworICAgICAgLy8gU2hvdyB0b29sVGlwIGF0IHJlc3BlY3RpdmUgeCx5 IGNvb3JkaW5hdGVzCisgICAgICB0b29sVGlwQ29udGFpbmVyLmNzcyh7CisgICAgICAgICdvcGFj aXR5JzogJzAuOCcsCisgICAgICAgICdsZWZ0JzogJycsCisgICAgICAgICdyaWdodCc6ICc2NXB4 JywKKyAgICAgICAgJ3RvcCc6ICcxNXB4JywKKyAgICAgIH0pOworCisgICAgICAkKCcucGdhZG1p bi1leHBsYWluLXRvb2x0aXAnKS5jc3MoJ3BhZGRpbmcnLCAnNXB4Jyk7CisgICAgICAkKCcucGdh ZG1pbi1leHBsYWluLXRvb2x0aXAnKS5jc3MoJ2JvcmRlcicsICcxcHggc29saWQgd2hpdGUnKTsK KyAgICB9KTsKKworICAgIC8vIFJlbW92ZSB0b29sdGlwIHdoZW4gbW91c2UgaXMgb3V0IGZyb20g bm9kZSdzIGFyZWEKKyAgICAkKCcucGctZXhwbGFpbi1zdGF0cy1hcmVhJykub24oJ21vdXNlb3V0 JywgKCkgPT4geworICAgICAgdG9vbFRpcENvbnRhaW5lci5lbXB0eSgpOworICAgICAgdG9vbFRp cENvbnRhaW5lci5jc3MoeworICAgICAgICAnb3BhY2l0eSc6ICcwJywKKyAgICAgICAgJ2xlZnQn OiAwLAorICAgICAgICAndG9wJzogMCwKKyAgICAgIH0pOworICAgIH0pOworICB9LAorfSk7CisK K21vZHVsZS5leHBvcnRzID0gU3RhdGlzdGljc01vZGVsOwpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jl c3Npb24vamF2YXNjcmlwdC9taXNjL2V4cGxhaW4vZXhwbGFpbl9zdGF0aXN0aWNzX3NwZWMuanMg Yi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L21pc2MvZXhwbGFpbi9leHBsYWluX3N0YXRpc3Rp Y3Nfc3BlYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYjJlYzY3Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9taXNjL2V4cGxhaW4v ZXhwbGFpbl9zdGF0aXN0aWNzX3NwZWMuanMKQEAgLTAsMCArMSw4NyBAQAoraW1wb3J0IFN0YXRp c3RpY3NNb2RlbCBmcm9tICcuLi8uLi8uLi8uLi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4v anMvZXhwbGFpbl9zdGF0aXN0aWNzJzsKK2ltcG9ydCAkIGZyb20gJ2pxdWVyeSc7CisKK2Rlc2Ny aWJlKCdFeHBsYWluU3RhdGlzdGljcycsICgpID0+IHsKKyAgbGV0IHN0YXRzTW9kZWw7CisgIGxl dCBzdGF0c0RpdjsKKyAgbGV0IHRvb2x0aXBDb250YWluZXI7CisKKyAgYmVmb3JlRWFjaChmdW5j dGlvbigpIHsKKyAgICBzdGF0c01vZGVsID0gbmV3IFN0YXRpc3RpY3NNb2RlbCgpOworICAgIHN0 YXRzRGl2ID0gJzxkaXYgY2xhc3M9InBnLWV4cGxhaW4tc3RhdHMtYXJlYSBidG4tZ3JvdXAgaGlk ZGVuIj48L2Rpdj4nOworICAgIHRvb2x0aXBDb250YWluZXIgPSAkKCc8ZGl2PjwvZGl2PicsIHsK KyAgICAgIGlkOiAndG9vbFRpcCcsCisgICAgICBjbGFzczogJ3BnYWRtaW4tZXhwbGFpbi10b29s dGlwJywKKyAgICB9KTsKKyAgfSk7CisKKyAgZGVzY3JpYmUoJ05vIFN0YXRpc3RpY3MnLCAoKSA9 PiB7CisgICAgaXQoJ1N0YXRpc3RpY3MgYnV0dG9uIHNob3VsZCBiZSBoaWRkZW4nLCAoKSA9PiB7 CisgICAgICAkKCdib2R5JykuYXBwZW5kKHN0YXRzRGl2KTsKKworICAgICAgc3RhdHNNb2RlbC5z ZXQoJ0pJVCcsIFtdKTsKKyAgICAgIHN0YXRzTW9kZWwuc2V0KCdUcmlnZ2VycycsIFtdKTsKKyAg ICAgIHN0YXRzTW9kZWwuc2V0X3N0YXRpc3RpY3ModG9vbHRpcENvbnRhaW5lcik7CisKKyAgICAg IGV4cGVjdCgkKCcucGctZXhwbGFpbi1zdGF0cy1hcmVhJykuaGFzQ2xhc3MoJ2hpZGRlbicpKS50 b0JlKHRydWUpOworICAgIH0pOworICB9KTsKKworICBkZXNjcmliZSgnSklUIFN0YXRpc3RpY3Mn LCAoKSA9PiB7CisgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsKKyAgICAgICQoJ2JvZHknKS5h cHBlbmQoc3RhdHNEaXYpOworICAgICAgc3RhdHNNb2RlbC5zZXQoJ0pJVCcsIFt7J2Nvc3QnOiAn MTAwJ31dKTsKKyAgICAgIHN0YXRzTW9kZWwuc2V0KCdUcmlnZ2VycycsIFtdKTsKKyAgICAgIHN0 YXRzTW9kZWwuc2V0X3N0YXRpc3RpY3ModG9vbHRpcENvbnRhaW5lcik7CisgICAgfSk7CisKKyAg ICBpdCgnU3RhdGlzdGljcyBidXR0b24gc2hvdWxkIGJlIHZpc2libGUnLCAoKSA9PiB7CisgICAg ICBleHBlY3QoJCgnLnBnLWV4cGxhaW4tc3RhdHMtYXJlYScpLmhhc0NsYXNzKCdoaWRkZW4nKSku dG9CZShmYWxzZSk7CisgICAgfSk7CisKKyAgICBpdCgnTW91c2Ugb3ZlciBldmVudCBzaG91bGQg YmUgdHJpZ2dlcicsICgpID0+IHsKKyAgICAgIC8vIFRyaWdnZXIgbW91c2Ugb3ZlciBldmVudAor ICAgICAgdmFyIGhvdmVyRXZlbnQgPSBuZXcgJC5FdmVudCgnbW91c2VvdmVyJyk7CisgICAgICAk KCcucGctZXhwbGFpbi1zdGF0cy1hcmVhJykudHJpZ2dlcihob3ZlckV2ZW50KTsKKworICAgICAg ZXhwZWN0KHRvb2x0aXBDb250YWluZXIuY3NzKCdvcGFjaXR5JykpLnRvQmUoJzAuOCcpOworICAg IH0pOworCisgICAgaXQoJ01vdXNlIG91dCBldmVudCBzaG91bGQgYmUgdHJpZ2dlcicsICgpID0+ IHsKKyAgICAgIC8vIFRyaWdnZXIgbW91c2Ugb3V0IGV2ZW50CisgICAgICB2YXIgaG92ZXJFdmVu dCA9IG5ldyAkLkV2ZW50KCdtb3VzZW91dCcpOworICAgICAgJCgnLnBnLWV4cGxhaW4tc3RhdHMt YXJlYScpLnRyaWdnZXIoaG92ZXJFdmVudCk7CisKKyAgICAgIGV4cGVjdCh0b29sdGlwQ29udGFp bmVyLmNzcygnb3BhY2l0eScpKS50b0JlKCcwJyk7CisgICAgfSk7CisgIH0pOworCisgIGRlc2Ny aWJlKCdUcmlnZ2VycyBTdGF0aXN0aWNzJywgKCkgPT4geworICAgIGJlZm9yZUVhY2goZnVuY3Rp b24oKSB7CisgICAgICAkKCdib2R5JykuYXBwZW5kKHN0YXRzRGl2KTsKKyAgICAgIHN0YXRzTW9k ZWwuc2V0KCdKSVQnLCBbXSk7CisgICAgICBzdGF0c01vZGVsLnNldCgnVHJpZ2dlcnMnLCBbeydu YW1lJzogJ3Rlc3RfdHJpZ2dlcid9XSk7CisgICAgICBzdGF0c01vZGVsLnNldF9zdGF0aXN0aWNz KHRvb2x0aXBDb250YWluZXIpOworICAgIH0pOworCisgICAgaXQoJ1N0YXRpc3RpY3MgYnV0dG9u IHNob3VsZCBiZSB2aXNpYmxlJywgKCkgPT4geworICAgICAgZXhwZWN0KCQoJy5wZy1leHBsYWlu LXN0YXRzLWFyZWEnKS5oYXNDbGFzcygnaGlkZGVuJykpLnRvQmUoZmFsc2UpOworICAgIH0pOwor CisgICAgaXQoJ01vdXNlIG92ZXIgZXZlbnQgc2hvdWxkIGJlIHRyaWdnZXInLCAoKSA9PiB7Cisg ICAgICAvLyBUcmlnZ2VyIG1vdXNlIG92ZXIgZXZlbnQKKyAgICAgIHZhciBob3ZlckV2ZW50ID0g bmV3ICQuRXZlbnQoJ21vdXNlb3ZlcicpOworICAgICAgJCgnLnBnLWV4cGxhaW4tc3RhdHMtYXJl YScpLnRyaWdnZXIoaG92ZXJFdmVudCk7CisKKyAgICAgIGV4cGVjdCh0b29sdGlwQ29udGFpbmVy LmNzcygnb3BhY2l0eScpKS50b0JlKCcwLjgnKTsKKyAgICB9KTsKKworICAgIGl0KCdNb3VzZSBv dXQgZXZlbnQgc2hvdWxkIGJlIHRyaWdnZXInLCAoKSA9PiB7CisgICAgICAvLyBUcmlnZ2VyIG1v dXNlIG91dCBldmVudAorICAgICAgdmFyIGhvdmVyRXZlbnQgPSBuZXcgJC5FdmVudCgnbW91c2Vv dXQnKTsKKyAgICAgICQoJy5wZy1leHBsYWluLXN0YXRzLWFyZWEnKS50cmlnZ2VyKGhvdmVyRXZl bnQpOworCisgICAgICBleHBlY3QodG9vbHRpcENvbnRhaW5lci5jc3MoJ29wYWNpdHknKSkudG9C ZSgnMCcpOworICAgIH0pOworICB9KTsKK30pOwo= --000000000000814eb805703de836--