Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kyv3Z-0002fY-9K for pgadmin-hackers@arkaria.postgresql.org; Mon, 11 Jan 2021 11:08:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kyv3Y-0001eV-6E for pgadmin-hackers@arkaria.postgresql.org; Mon, 11 Jan 2021 11:08:16 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kyv3X-0001eN-UT for pgadmin-hackers@lists.postgresql.org; Mon, 11 Jan 2021 11:08:16 +0000 Received: from mail-lf1-x12e.google.com ([2a00:1450:4864:20::12e]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1kyv3T-0007qd-UX for pgadmin-hackers@postgresql.org; Mon, 11 Jan 2021 11:08:15 +0000 Received: by mail-lf1-x12e.google.com with SMTP id o17so37166322lfg.4 for ; Mon, 11 Jan 2021 03:08:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=oAoeS9zA2BnLQUgYR9RxjFLON+jBIOwnhR2mPE6Vpnc=; b=hJKIMz1sej9pk302nGkumW8ZhG9rnzD+UzNOtlLCVb6YWdW0tEljT4XhH6uoCMgRsW Duu9j+2ESnxFOlyI0i5MgA/RrDEpjN0vAPY+LPcvcCFM87BWECmrITetA754Wbg+sF6O 9Nhg3IXdD1cYd0kxlatpTu9HPdWdjgqtr+KiZIS7/eZqqICSMwqT8zjuGDTzDG/WX2Rd DhmhNIwSYwHz0w1azlyF8ez2yZkSsvL+7qMb4RWQRK3H4gjaE2TTE42OG5Y3hz+8Hr9V aLL+SygqGB76sYCwLE2781KnAI2V21oWH4q84s+yRdkk7fsK9EZ0eLWwIzHL2Z/EbDXs teQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=oAoeS9zA2BnLQUgYR9RxjFLON+jBIOwnhR2mPE6Vpnc=; b=YJWBmcfyEX4n0yoCS+BQG1++nWrM/sSpAWDyS2PYTVMjpbpoSZ3fb+7yJ8hc3eR5Pw nOEwWyeEuMfk5/nRrf7xzB2gHoWn7ZOv//tolANFy3fF2ghEbmIUo5wnq4IYsvrfE9w1 biFPGqWh3w0EAmm8tWLKx8XIM0GeedivEV4Nm8jzTWrC8XS8mveRgEbGuFpfSPQGsyh+ 72GEaWgFmqgZnf90WebQX2b9LOHtz+QxqZqq6rb1RnOe8aY3CdOef6EbIu4o1sp32VNU 6XrM8H8l4kvSzEI33v1flzg1dMKuuvKb1YcL7I1F27Al0OyuT6OSvdkWdv2TNRxti4CJ BL9w== X-Gm-Message-State: AOAM530IuacNFr9+6UZs32mr1ZGD4nmttkFR/umk27XGdRh479ryKpPc 9Ty/3YsFxClpKX7WzIEkj1rIDCXYA5560RpUMCBsRPjU6mTe/p9yZlakhxweIgQ5+RDx5SPg4O6 3XQmaFQQeUeiB+nxVU/etJ4M+2lkxPWcZWf6eKfn6FCQ4SkA9BEWgA/o9bG9yJVsNyegP2bRwT+ WGeL7iBU8ymn16uBcqsXUwlls8k6xNhY1zqjk+pmZJvhcjn9+hVQ4u0K5pZIKsdEPzXg== X-Google-Smtp-Source: ABdhPJzt3ZLrkiUdELPcXMmevoTdPyPCBbPqgzgQjN9CphgFiiOvFLV6KoGp0jSTlQ4k6+jYhfIZSafwycy3UXPPk7I= X-Received: by 2002:a05:6512:74e:: with SMTP id c14mr7509505lfs.529.1610363290256; Mon, 11 Jan 2021 03:08:10 -0800 (PST) MIME-Version: 1.0 From: Aditya Toshniwal Date: Mon, 11 Jan 2021 16:37:34 +0530 Message-ID: Subject: [pgAdmin][RM5488] Tooltip information does not display properly if user check all options under explain analyze To: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000e0334505b89deb99" X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000e0334505b89deb99 Content-Type: multipart/alternative; boundary="000000000000e0334305b89deb97" --000000000000e0334305b89deb97 Content-Type: text/plain; charset="UTF-8" Hi Hackers, Attached patch improves the way explain plan details tooltip for a node is shown. With the change, popup with details will be shown upon clicking a node, and it will remain open until explicitly closed. Please review. -- Thanks, Aditya Toshniwal pgAdmin hacker | Sr. Software Engineer | *edbpostgres.com* "Don't Complain about Heat, Plant a TREE" --000000000000e0334305b89deb97 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

Attached patch improves the way explain plan d= etails tooltip for a node is shown. With the change, popup with details wil= l be shown upon clicking a node, and it will remain=C2=A0open until=C2=A0ex= plicitly closed.

Please review.

--
Thanks= ,
Aditya Toshniwal
pgAdmin hacker=C2=A0| Sr. Software Engineer | edbpostgres.com
"Don'= t Complain about Heat, Plant a TREE"
--000000000000e0334305b89deb97-- --000000000000e0334505b89deb99 Content-Type: application/octet-stream; name="RM5488.patch" Content-Disposition: attachment; filename="RM5488.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kjsgoi570 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vanMvZXhwbGFpbi5q cyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vanMvZXhwbGFpbi5qcwppbmRleCAw Y2Y3OGFiZmYuLmRhNTk1ZTZiMyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMv ZXhwbGFpbi9qcy9leHBsYWluLmpzCisrKyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxh aW4vanMvZXhwbGFpbi5qcwpAQCAtNzUzLDYgKzc1MywxMiBAQCBkZWZpbmUoJ3BnYWRtaW4ubWlz Yy5leHBsYWluJywgWwogICAgICAgcmV0dXJuIGRhdGE7CiAgICAgfSwKIAorICAgIGdldExhYmVs OiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiB0aGlzLmdldCgnU2NoZW1hJykgPT0gdW5kZWZp bmVkID8KKyAgICAgICAgdGhpcy5nZXQoJ2ltYWdlX3RleHQnKSA6CisgICAgICAgICh0aGlzLmdl dCgnU2NoZW1hJykgKyAnLicgKyB0aGlzLmdldCgnaW1hZ2VfdGV4dCcpKTsKKyAgICB9LAorCiAg ICAgLy8gRHJhdyBpbWFnZSwgaXRzIG5hbWUgYW5kIGl0cyB0b29sdGlwCiAgICAgZHJhdzogZnVu Y3Rpb24oCiAgICAgICBzLCB4cG9zLCB5cG9zLCBwWHBvcywgcFlwb3MsIGdyYXBoQ29udGFpbmVy LCB0b29sVGlwQ29udGFpbmVyLApAQCAtODAyLDkgKzgwOCw3IEBAIGRlZmluZSgncGdhZG1pbi5t aXNjLmV4cGxhaW4nLCBbCiAKIAogICAgICAgLy8gRHJhdyB0ZXh0IGJlbG93IHRoZSBub2RlCi0g ICAgICB2YXIgbm9kZV9sYWJlbCA9IHRoaXMuZ2V0KCdTY2hlbWEnKSA9PSB1bmRlZmluZWQgPwot ICAgICAgICB0aGlzLmdldCgnaW1hZ2VfdGV4dCcpIDoKLSAgICAgICAgKHRoaXMuZ2V0KCdTY2hl bWEnKSArICcuJyArIHRoaXMuZ2V0KCdpbWFnZV90ZXh0JykpOworICAgICAgdmFyIG5vZGVfbGFi ZWwgPSB0aGlzLmdldExhYmVsKCk7CiAgICAgICBnLm11bHRpdGV4dCgKICAgICAgICAgY3VycmVu dFhwb3MgKyAocFdJRFRIIC8gMikgKyBUWFRfQUxJR04sCiAgICAgICAgIGN1cnJlbnRZcG9zICsg cEhFSUdIVCAtIFRYVF9BTElHTiwKQEAgLTk0MywzNCArOTQ3LDI5IEBAIGRlZmluZSgncGdhZG1p bi5taXNjLmV4cGxhaW4nLCBbCiAgICAgICAgIElNQUdFX1dJRFRILAogICAgICAgICBJTUFHRV9I RUlHSFQKICAgICAgICk7CisgICAgICBpbWFnZS5hdHRyKHtzdHlsZTogJ2N1cnNvcjogcG9pbnRl cid9KTsKIAogICAgICAgLy8gRHJhdyB0b29sdGlwCi0gICAgICB2YXIgaW1hZ2VfZGF0YSA9IHRo aXMudG9KU09OKCk7Ci0gICAgICB2YXIgdGl0bGUgPSAnPHRpdGxlPic7Ci0gICAgICBfLmVhY2go aW1hZ2VfZGF0YSwgZnVuY3Rpb24odmFsdWUsIGtleSkgewotICAgICAgICBpZiAoa2V5ICE9PSAn aW1hZ2UnICYmIGtleSAhPT0gJ1BsYW5zJyAmJgotICAgICAgICAgIGtleSAhPT0gJ2xldmVsJyAm JiBrZXkgIT09ICdpbWFnZScgJiYKLSAgICAgICAgICBrZXkgIT09ICdpbWFnZV90ZXh0JyAmJiBr ZXkgIT09ICd4cG9zJyAmJgotICAgICAgICAgIGtleSAhPT0gJ3lwb3MnICYmIGtleSAhPT0gJ3dp ZHRoJyAmJgotICAgICAgICAgIGtleSAhPT0gJ2hlaWdodCcpIHsKLSAgICAgICAgICB0aXRsZSAr PSBgJHtrZXl9OiAke3ZhbHVlfVxuYDsKLSAgICAgICAgfQotICAgICAgfSk7Ci0KLSAgICAgIHRp dGxlICs9ICc8L3RpdGxlPic7Ci0KLSAgICAgIGltYWdlLmFwcGVuZChTbmFwLnBhcnNlKHRpdGxl KSk7Ci0KLSAgICAgIGltYWdlLm1vdXNlb3ZlcigoKSA9PiB7CisgICAgICB2YXIgaW1hZ2VfZGF0 YSA9IHRoaXMudG9KU09OKCksCisgICAgICAgIG5vZGVMYWJlbCA9IHRoaXMuZ2V0TGFiZWwoKTsK KyAgICAgIGltYWdlLmNsaWNrKCgpID0+IHsKICAgICAgICAgLy8gRW1wdHkgdGhlIHRvb2x0aXAg Y29udGVudCBpZiBpdCBoYXMgYW55IGFuZCBhZGQgbmV3IGRhdGEKLSAgICAgICAgdG9vbFRpcENv bnRhaW5lci5lbXB0eSgpOworICAgICAgICBsZXQgdG9vbFRpcEJvZHkgPSB0b29sVGlwQ29udGFp bmVyLmZpbmQoJy5kZXRhaWxzLWJvZHknKTsKKyAgICAgICAgbGV0IHRvb2xUaXBUaXRsZSA9IHRv b2xUaXBDb250YWluZXIuZmluZCgnLmRldGFpbHMtdGl0bGUnKTsKKyAgICAgICAgdG9vbFRpcFRp dGxlLnRleHQobm9kZUxhYmVsKTsKKworICAgICAgICB0b29sVGlwQm9keS5lbXB0eSgpOwogCiAg ICAgICAgIC8vIFJlbW92ZSB0aGUgdGl0bGUgY29udGVudCBzbyB0aGF0IHdlIGNhbiBzaG93IG91 ciBjdXN0b20gYnVpbGQgdG9vbHRpcHMuCiAgICAgICAgIGltYWdlLm5vZGUudGV4dENvbnRlbnQg PSAnJzsKIAotICAgICAgICB2YXIgdG9vbHRpcCA9ICQoJzx0YWJsZT48L3RhYmxlPicsIHsKLSAg ICAgICAgICBjbGFzczogJ3BnYWRtaW4tdG9vbHRpcC10YWJsZScsCi0gICAgICAgIH0pLmFwcGVu ZFRvKHRvb2xUaXBDb250YWluZXIpOworICAgICAgICB2YXIgdG9vbHRpcFRhYmxlID0gJChgCisg ICAgICAgICAgPHRhYmxlIGNsYXNzPSdwZ2FkbWluLXRvb2x0aXAtdGFibGUgdGFibGUgdGFibGUt Ym9yZGVyZWQgdGFibGUtbm9vdXRlci1ib3JkZXIgdGFibGUtYm90dG9tLWJvcmRlciB0YWJsZS1o b3Zlcic+CisgICAgICAgICAgICA8dGJvZHk+PC90Ym9keT4KKyAgICAgICAgICA8L3RhYmxlPmAK KyAgICAgICAgKS5hcHBlbmRUbyh0b29sVGlwQm9keSk7CisgICAgICAgIHZhciB0b29sdGlwID0g dG9vbHRpcFRhYmxlLmZpbmQoJ3Rib2R5Jyk7CisKICAgICAgICAgXy5lYWNoKGltYWdlX2RhdGEs IGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHsKICAgICAgICAgICBpZiAoa2V5ICE9PSAnaW1hZ2UnICYm IGtleSAhPT0gJ1BsYW5zJyAmJgogICAgICAgICAgICAga2V5ICE9PSAnbGV2ZWwnICYmIGtleSAh PT0gJ2ltYWdlJyAmJgpAQCAtOTg3LDQyICs5ODYsOCBAQCBkZWZpbmUoJ3BnYWRtaW4ubWlzYy5l eHBsYWluJywgWwogICAgICAgICAgICAgYCk7CiAgICAgICAgICAgfQogICAgICAgICB9KTsKLQot ICAgICAgICB2YXIgem9vbUZhY3RvciA9IGdyYXBoQ29udGFpbmVyLmRhdGEoJ3pvb20tZmFjdG9y Jyk7Ci0KLSAgICAgICAgLy8gQ2FsY3VsYXRlIGNvLW9yZGluYXRlcyBmb3IgdG9vbHRpcAotICAg ICAgICB2YXIgdG9vbFRpcFggPSAoKGN1cnJlbnRYcG9zICsgcFdJRFRIKSAqIHpvb21GYWN0b3Ig LSBncmFwaENvbnRhaW5lci5zY3JvbGxMZWZ0KCkpOwotICAgICAgICB2YXIgdG9vbFRpcFkgPSAo KGN1cnJlbnRZcG9zKSAqIHpvb21GYWN0b3IgLSBncmFwaENvbnRhaW5lci5zY3JvbGxUb3AoKSk7 Ci0KLSAgICAgICAgdG9vbFRpcFggPSB0b29sVGlwWCA8IDAgPyAwIDogKHRvb2xUaXBYKTsKLSAg ICAgICAgdG9vbFRpcFkgPSB0b29sVGlwWSA8IDAgPyAwIDogKHRvb2xUaXBZKTsKLQotICAgICAg ICB0b29sVGlwWCA9IHRvb2xUaXBYID4gZ3JhcGhDb250YWluZXIud2lkdGgoKSAtIHRvb2xUaXBD b250YWluZXJbMF0uY2xpZW50V2lkdGggPyB0b29sVGlwWCAtICh0b29sVGlwQ29udGFpbmVyWzBd LmNsaWVudFdpZHRoKyhwV0lEVEgqIHpvb21GYWN0b3IpKSA6IHRvb2xUaXBYOwotICAgICAgICB0 b29sVGlwWSA9IHRvb2xUaXBZID4gZ3JhcGhDb250YWluZXIuaGVpZ2h0KCkgLSB0b29sVGlwQ29u dGFpbmVyWzBdLmNsaWVudEhlaWdodCA/IGdyYXBoQ29udGFpbmVyLmhlaWdodCgpIC0gdG9vbFRp cENvbnRhaW5lclswXS5jbGllbnRIZWlnaHQgOiB0b29sVGlwWTsKLQotICAgICAgICAvLyBTaG93 IHRvb2xUaXAgYXQgcmVzcGVjdGl2ZSB4LHkgY29vcmRpbmF0ZXMKLSAgICAgICAgdG9vbFRpcENv bnRhaW5lci5jc3MoewotICAgICAgICAgICdvcGFjaXR5JzogJzAuOCcsCi0gICAgICAgIH0pOwot ICAgICAgICB0b29sVGlwQ29udGFpbmVyLmNzcygnbGVmdCcsIHRvb2xUaXBYKTsKLSAgICAgICAg dG9vbFRpcENvbnRhaW5lci5jc3MoJ3RvcCcsIHRvb2xUaXBZKTsKLQotICAgICAgICAkKCcucGdh ZG1pbi1leHBsYWluLXRvb2x0aXAnKS5jc3MoJ3BhZGRpbmcnLCAnNXB4Jyk7Ci0gICAgICAgICQo Jy5wZ2FkbWluLWV4cGxhaW4tdG9vbHRpcCcpLmNzcygnYm9yZGVyJywgJzFweCBzb2xpZCB3aGl0 ZScpOwotICAgICAgfSk7Ci0KLSAgICAgIC8vIFJlbW92ZSB0b29sdGlwIHdoZW4gbW91c2UgaXMg b3V0IGZyb20gbm9kZSdzIGFyZWEKLSAgICAgIGltYWdlLm1vdXNlb3V0KCgpID0+IHsKLSAgICAg ICAgLyogQXBwZW5kIHRoZSB0aXRsZSBhZ2FpbiB3aGljaCB3ZSBoYXZlIHJlbW92ZWQgb24gbW91 c2Ugb3ZlciBldmVudCwgc28KLSAgICAgICAgICogdGhhdCBvdXIgY3VzdG9tIHRvb2x0aXAgc2hv dWxkIGJlIHZpc2libGUuCi0gICAgICAgICAqLwotICAgICAgICBpbWFnZS5hcHBlbmQoU25hcC5w YXJzZSh0aXRsZSkpOwotICAgICAgICB0b29sVGlwQ29udGFpbmVyLmVtcHR5KCk7Ci0gICAgICAg IHRvb2xUaXBDb250YWluZXIuY3NzKHsKLSAgICAgICAgICAnb3BhY2l0eSc6ICcwJywKLSAgICAg ICAgfSk7Ci0gICAgICAgIHRvb2xUaXBDb250YWluZXIuY3NzKCdsZWZ0JywgMCk7Ci0gICAgICAg IHRvb2xUaXBDb250YWluZXIuY3NzKCd0b3AnLCAwKTsKKyAgICAgICAgdG9vbFRpcENvbnRhaW5l ci5yZW1vdmVDbGFzcygnZC1ub25lJyk7CisgICAgICAgIHRvb2xUaXBCb2R5LnNjcm9sbFRvcCgw KTsKICAgICAgIH0pOwogICAgIH0sCiAgIH0pOwpAQCAtMTM2MiwxNiArMTMyNywyMyBAQCBkZWZp bmUoJ3BnYWRtaW4ubWlzYy5leHBsYWluJywgWwogCiAgICAgICAvLyBNYWluIGRpdiB0byBiZSBk cmF3biBhbGwgaW1hZ2VzIG9uCiAgICAgICB2YXIgcGxhbkRpdiA9ICQoJzxkaXY+PC9kaXY+Jywg ewotICAgICAgICAgIGNsYXNzOiAncGdhZG1pbi1leHBsYWluLWNvbnRhaW5lciB3LTEwMCBoLTEw MCBvdmVyZmxvdy1hdXRvJywKLSAgICAgICAgfSkuYXBwZW5kVG8oZ3JhcGhpY2FsQ29udGFpbmVy KSwKLSAgICAgICAgLy8gRGl2IHRvIGRyYXcgdG9vbC10aXAgb24KLSAgICAgICAgdG9vbFRpcCA9 ICQoJzxkaXY+PC9kaXY+JywgewotICAgICAgICAgIGlkOiAndG9vbFRpcCcsCi0gICAgICAgICAg Y2xhc3M6ICdwZ2FkbWluLWV4cGxhaW4tdG9vbHRpcCcsCi0gICAgICAgIH0pLmFwcGVuZFRvKGdy YXBoaWNhbENvbnRhaW5lcik7Ci0gICAgICB0b29sVGlwLmVtcHR5KCk7CisgICAgICAgIGNsYXNz OiAncGdhZG1pbi1leHBsYWluLWNvbnRhaW5lciB3LTEwMCBoLTEwMCBvdmVyZmxvdy1hdXRvJywK KyAgICAgIH0pLmFwcGVuZFRvKGdyYXBoaWNhbENvbnRhaW5lcik7CiAgICAgICBwbGFuRGl2LmRh dGEoJ3pvb20tZmFjdG9yJywgY3Vycl96b29tX2ZhY3Rvcik7CiAKKyAgICAgIHZhciBleHBsYWlu RGV0YWlscyA9ICQoCisgICAgICAgIGA8ZGl2IGNsYXNzPSJwZ2FkbWluLWV4cGxhaW4tZGV0YWls cyBjYXJkIGQtbm9uZSIgZGF0YS1icy1iYWNrZHJvcD0iZmFsc2UiIHRhYmluZGV4PSItMSIgYXJp YS1oaWRkZW49InRydWUiPgorICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWRlciBkZXRhaWxz LWhlYWRlciBkLWZsZXgiPgorICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbHMtdGl0bGUgbXkt YXV0byI+PC9kaXY+CisgICAgICAgICAgPGRpdiBjbGFzcz0ibWwtYXV0byI+PGJ1dHRvbiBjbGFz cz0iYnRuIGJ0bi1zbSBmYSBmYS10aW1lcyBtbC1hdXRvIGRldGFpbHMtY2xvc2UiLz48L2Rpdj4K KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtYm9keSBkZXRhaWxzLWJv ZHkiPjwvZGl2PgorICAgICAgIDwvZGl2PmAKKyAgICAgICkuYXBwZW5kVG8oZ3JhcGhpY2FsQ29u dGFpbmVyKTsKKyAgICAgIGV4cGxhaW5EZXRhaWxzLmZpbmQoJy5kZXRhaWxzLWNsb3NlJykub24o J2NsaWNrJywgKCk9PnsKKyAgICAgICAgZXhwbGFpbkRldGFpbHMuYWRkQ2xhc3MoJ2Qtbm9uZScp OworICAgICAgfSk7CisKICAgICAgIHZhciB3ID0gMCwKICAgICAgICAgaCA9IHlNYXJnaW47CiAK QEAgLTE0MjAsNyArMTM5Miw3IEBAIGRlZmluZSgncGdhZG1pbi5taXNjLmV4cGxhaW4nLCBbCiAg ICAgICAgIHZhciBzID0gU25hcCh3LCBoKSwKICAgICAgICAgICAkc3ZnID0gJChzLm5vZGUpLmRl dGFjaCgpOwogICAgICAgICBwbGFuRGl2LmFwcGVuZCgkc3ZnKTsKLSAgICAgICAgbWFpbl9wbGFu LmRyYXcocywgdyAtIHhNYXJnaW4sIHlNYXJnaW4sIHBsYW5EaXYsIHRvb2xUaXAsIGN0eCk7Cisg ICAgICAgIG1haW5fcGxhbi5kcmF3KHMsIHcgLSB4TWFyZ2luLCB5TWFyZ2luLCBwbGFuRGl2LCBl eHBsYWluRGV0YWlscywgY3R4KTsKIAogICAgICAgICB2YXIgaW5pdFBhbmVsV2lkdGggPSBwbGFu RGl2LndpZHRoKCk7CiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxh aW4vanMvZXhwbGFpbl9zdGF0aXN0aWNzLmpzIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhw bGFpbi9qcy9leHBsYWluX3N0YXRpc3RpY3MuanMKaW5kZXggNmY0ZGQzMDZkLi5iOTE4ZmU5OGYg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vanMvZXhwbGFpbl9z dGF0aXN0aWNzLmpzCisrKyBiL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vanMvZXhw bGFpbl9zdGF0aXN0aWNzLmpzCkBAIC0zMCwxMiArMzAsMTUgQEAgbGV0IFN0YXRpc3RpY3NNb2Rl bCA9IEJhY2tib25lLk1vZGVsLmV4dGVuZCh7CiAgICAgICAkKCcucGctZXhwbGFpbi1zdGF0cy1h cmVhJykucmVtb3ZlQ2xhc3MoJ2Qtbm9uZScpOwogICAgIH0KIAotICAgIHZhciB0b29sdGlwID0g JCgnPHRhYmxlPjwvdGFibGU+JywgewotICAgICAgY2xhc3M6ICdwZ2FkbWluLXRvb2x0aXAtdGFi bGUnLAotICAgIH0pOworICAgIHZhciB0b29sdGlwVGFibGUgPSAkKGAKKyAgICAgIDx0YWJsZSBj bGFzcz0ncGdhZG1pbi10b29sdGlwLXRhYmxlIHRhYmxlIHRhYmxlLWJvcmRlcmVkIHRhYmxlLW5v b3V0ZXItYm9yZGVyIHRhYmxlLWJvdHRvbS1ib3JkZXIgdGFibGUtaG92ZXInPgorICAgICAgICA8 dGJvZHk+PC90Ym9keT4KKyAgICAgIDwvdGFibGU+YAorICAgICk7CisgICAgdmFyIHRvb2x0aXAg PSB0b29sdGlwVGFibGUuZmluZCgndGJvZHknKTsKIAogICAgIGlmIChPYmplY3Qua2V5cyhqaXRf c3RhdHMpLmxlbmd0aCA+IDApewotICAgICAgdG9vbHRpcC5hcHBlbmQoJzx0cj48dGQgY2xhc3M9 ImxhYmVsIGV4cGxhaW4tdG9vbHRpcCI+JyArIGdldHRleHQoJ0pJVDonKSArICc8L3RkPjwvdHI+ Jyk7CisgICAgICB0b29sdGlwLmFwcGVuZCgnPHRyPjx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibGFi ZWwgZXhwbGFpbi10b29sdGlwIj4nICsgZ2V0dGV4dCgnSklUOicpICsgJzwvdGQ+PC90cj4nKTsK ICAgICAgIF8uZWFjaChqaXRfc3RhdHMsIGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHsKICAgICAgICAg a2V5ID0gXy5lc2NhcGUoa2V5KTsKICAgICAgICAgdmFsdWUgPSBfLmVzY2FwZSh2YWx1ZSk7CkBA IC00OSw3ICs1Miw3IEBAIGxldCBTdGF0aXN0aWNzTW9kZWwgPSBCYWNrYm9uZS5Nb2RlbC5leHRl bmQoewogICAgIH0KIAogICAgIGlmIChPYmplY3Qua2V5cyh0cmlnZ2Vyc19zdGF0cykubGVuZ3Ro ID4gMCl7Ci0gICAgICB0b29sdGlwLmFwcGVuZCgnPHRyPjx0ZCBjbGFzcz0ibGFiZWwgZXhwbGFp bi10b29sdGlwIj4nICsgZ2V0dGV4dCgnVHJpZ2dlcnM6JykgKyAnPC90ZD48L3RyPicpOworICAg ICAgdG9vbHRpcC5hcHBlbmQoJzx0cj48dGQgY29sc3Bhbj0iMiIgY2xhc3M9ImxhYmVsIGV4cGxh aW4tdG9vbHRpcCI+JyArIGdldHRleHQoJ1RyaWdnZXJzOicpICsgJzwvdGQ+PC90cj4nKTsKICAg ICAgIF8uZWFjaCh0cmlnZ2Vyc19zdGF0cywgZnVuY3Rpb24odHJpZ2dlcnMsIGtleV9pZCkgewog ICAgICAgICBpZiAodHJpZ2dlcnMgaW5zdGFuY2VvZiBPYmplY3QpIHsKICAgICAgICAgICBfLmVh Y2godHJpZ2dlcnMsIGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHsKQEAgLTg4LDcgKzkxLDcgQEAgbGV0 IFN0YXRpc3RpY3NNb2RlbCA9IEJhY2tib25lLk1vZGVsLmV4dGVuZCh7CiAgICAgfQogCiAgICAg aWYgKE9iamVjdC5rZXlzKHN1bW1hcnkpLmxlbmd0aCA+IDApewotICAgICAgdG9vbHRpcC5hcHBl bmQoJzx0cj48dGQgY2xhc3M9ImxhYmVsIGV4cGxhaW4tdG9vbHRpcCI+JyArIGdldHRleHQoJ1N1 bW1hcnk6JykgKyAnPC90ZD48L3RyPicpOworICAgICAgdG9vbHRpcC5hcHBlbmQoJzx0cj48dGQg Y29sc3Bhbj0iMiIgY2xhc3M9ImxhYmVsIGV4cGxhaW4tdG9vbHRpcCI+JyArIGdldHRleHQoJ1N1 bW1hcnk6JykgKyAnPC90ZD48L3RyPicpOwogICAgICAgXy5lYWNoKHN1bW1hcnksIGZ1bmN0aW9u KHZhbHVlLCBrZXkpIHsKICAgICAgICAga2V5ID0gXy5lc2NhcGUoa2V5KTsKICAgICAgICAgdmFs dWUgPSBfLmVzY2FwZSh2YWx1ZSk7CkBAIC0xMDEsNyArMTA0LDcgQEAgbGV0IFN0YXRpc3RpY3NN b2RlbCA9IEJhY2tib25lLk1vZGVsLmV4dGVuZCh7CiAgICAgICB9KTsKICAgICB9CiAKLSAgICAk KCcucGctZXhwbGFpbi1zdGF0cy1hcmVhJykub2ZmKCdtb3VzZW92ZXInKS5vbignbW91c2VvdmVy JywgKCkgPT4geworICAgICQoJy5wZy1leHBsYWluLXN0YXRzLWFyZWEnKS5vZmYoJ2NsaWNrJyku b24oJ2NsaWNrJywgKCkgPT4gewogICAgICAgLy8gRW1wdHkgdGhlIHRvb2x0aXAgY29udGVudCBp ZiBpdCBoYXMgYW55IGFuZCBhZGQgbmV3IGRhdGEKIAogICAgICAgaWYgKE9iamVjdC5rZXlzKGpp dF9zdGF0cykubGVuZ3RoID09IDAgJiYKQEAgLTExMCwzMCArMTEzLDE1IEBAIGxldCBTdGF0aXN0 aWNzTW9kZWwgPSBCYWNrYm9uZS5Nb2RlbC5leHRlbmQoewogICAgICAgICByZXR1cm47CiAgICAg ICB9CiAKLSAgICAgIHRvb2xUaXBDb250YWluZXIuZW1wdHkoKTsKLSAgICAgIHRvb2xUaXBDb250 YWluZXIuYXBwZW5kKHRvb2x0aXApOworICAgICAgbGV0IHRvb2xUaXBCb2R5ID0gdG9vbFRpcENv bnRhaW5lci5maW5kKCcuZGV0YWlscy1ib2R5Jyk7CisgICAgICBsZXQgdG9vbFRpcFRpdGxlID0g dG9vbFRpcENvbnRhaW5lci5maW5kKCcuZGV0YWlscy10aXRsZScpOworICAgICAgdG9vbFRpcFRp dGxlLnRleHQoJ1N0YXRpc3RpY3MnKTsKIAotICAgICAgLy8gU2hvdyB0b29sVGlwIGF0IHJlc3Bl Y3RpdmUgeCx5IGNvb3JkaW5hdGVzCi0gICAgICB0b29sVGlwQ29udGFpbmVyLmNzcyh7Ci0gICAg ICAgICdvcGFjaXR5JzogJzAuOCcsCi0gICAgICAgICdsZWZ0JzogJycsCi0gICAgICAgICdyaWdo dCc6ICc2NXB4JywKLSAgICAgICAgJ3RvcCc6ICcxNXB4JywKLSAgICAgIH0pOworICAgICAgdG9v bFRpcEJvZHkuZW1wdHkoKTsKKyAgICAgIHRvb2xUaXBCb2R5LmFwcGVuZCh0b29sdGlwVGFibGUp OwogCi0gICAgICAkKCcucGdhZG1pbi1leHBsYWluLXRvb2x0aXAnKS5jc3MoJ3BhZGRpbmcnLCAn NXB4Jyk7Ci0gICAgICAkKCcucGdhZG1pbi1leHBsYWluLXRvb2x0aXAnKS5jc3MoJ2JvcmRlcics ICcxcHggc29saWQgd2hpdGUnKTsKLSAgICB9KTsKLQotICAgIC8vIFJlbW92ZSB0b29sdGlwIHdo ZW4gbW91c2UgaXMgb3V0IGZyb20gbm9kZSdzIGFyZWEKLSAgICAkKCcucGctZXhwbGFpbi1zdGF0 cy1hcmVhJykub2ZmKCdtb3VzZW91dCcpLm9uKCdtb3VzZW91dCcsICgpID0+IHsKLSAgICAgIHRv b2xUaXBDb250YWluZXIuZW1wdHkoKTsKLSAgICAgIHRvb2xUaXBDb250YWluZXIuY3NzKHsKLSAg ICAgICAgJ29wYWNpdHknOiAnMCcsCi0gICAgICAgICdsZWZ0JzogMCwKLSAgICAgICAgJ3RvcCc6 IDAsCi0gICAgICAgICdyaWdodCc6ICcnLAotICAgICAgfSk7CisgICAgICB0b29sVGlwQ29udGFp bmVyLnJlbW92ZUNsYXNzKCdkLW5vbmUnKTsKKyAgICAgIHRvb2xUaXBCb2R5LnNjcm9sbFRvcCgw KTsKICAgICB9KTsKICAgfSwKIH0pOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0 aWMvZXhwbGFpbi9zY3NzL19leHBsYWluLnNjc3MgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9l eHBsYWluL3Njc3MvX2V4cGxhaW4uc2NzcwppbmRleCAwOTUzNzJlYzUuLjQ1OGRjYTA3NSAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9zY3NzL19leHBsYWluLnNj c3MKKysrIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9zY3NzL19leHBsYWluLnNj c3MKQEAgLTEsMTIgKzEsMjkgQEAKLS5wZ2FkbWluLWV4cGxhaW4tdG9vbHRpcCB7CisucGdhZG1p bi1leHBsYWluLWRldGFpbHMgeworICBtaW4td2lkdGg6IDIwMHB4OworICBtYXgtd2lkdGg6IDMw MHB4OwogICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gIG9wYWNpdHk6IDA7Ci0gIGNvbG9yOiAkcG9w b3Zlci1ib2R5LWNvbG9yOwotICBiYWNrZ3JvdW5kLWNvbG9yOiAkcG9wb3Zlci1iZzsKKyAgdG9w OiAwLjI1cmVtOworICBib3R0b206IDAuMjVyZW07CisgIHJpZ2h0OiAwLjI1cmVtOwogICBib3Jk ZXItY29sb3I6ICRwb3BvdmVyLWJvcmRlci1jb2xvcjsKICAgYm94LXNoYWRvdzogJHBvcG92ZXIt Ym94LXNoYWRvdzsKKyAgd29yZC1icmVhazogYnJlYWstYWxsOworICBkaXNwbGF5OiBmbGV4Owor ICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOworICB6LWluZGV4OiA5OTsKKworICAuZGV0YWlscy1o ZWFkZXIgeworICAgIHBhZGRpbmc6IDAuMjVyZW07CisgICAgZm9udC13ZWlnaHQ6IHVuc2V0Owor ICB9CisKKyAgLmRldGFpbHMtYm9keSB7CisgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgZmxleC1n cm93OiAxOworICB9CiB9CiAKKwogLnNxbC1lZGl0b3ItZXhwbGFpbiB7CiAgIC5iYWNrZm9ybS10 YWIgewogICAgIC50YWItY29udGVudCB7CmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9qYXZh c2NyaXB0L21pc2MvZXhwbGFpbi9leHBsYWluX3N0YXRpc3RpY3Nfc3BlYy5qcyBiL3dlYi9yZWdy ZXNzaW9uL2phdmFzY3JpcHQvbWlzYy9leHBsYWluL2V4cGxhaW5fc3RhdGlzdGljc19zcGVjLmpz CmluZGV4IGUzMzE5NGJkYS4uNWFkMTQ2NzY1IDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9q YXZhc2NyaXB0L21pc2MvZXhwbGFpbi9leHBsYWluX3N0YXRpc3RpY3Nfc3BlYy5qcworKysgYi93 ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L21pc2MvZXhwbGFpbi9leHBsYWluX3N0YXRpc3RpY3Nf c3BlYy5qcwpAQCAtMTgsMTAgKzE4LDE0IEBAIGRlc2NyaWJlKCdFeHBsYWluU3RhdGlzdGljcycs ICgpID0+IHsKICAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHsKICAgICBzdGF0c01vZGVsID0gbmV3 IFN0YXRpc3RpY3NNb2RlbCgpOwogICAgIHN0YXRzRGl2ID0gJzxkaXYgY2xhc3M9InBnLWV4cGxh aW4tc3RhdHMtYXJlYSBidG4tZ3JvdXAgZC1ub25lIj48L2Rpdj4nOwotICAgIHRvb2x0aXBDb250 YWluZXIgPSAkKCc8ZGl2PjwvZGl2PicsIHsKLSAgICAgIGlkOiAndG9vbFRpcCcsCi0gICAgICBj bGFzczogJ3BnYWRtaW4tZXhwbGFpbi10b29sdGlwJywKLSAgICB9KTsKKyAgICB0b29sdGlwQ29u dGFpbmVyID0gJCgKKyAgICAgIGA8ZGl2IGNsYXNzPSJwZ2FkbWluLWV4cGxhaW4tZGV0YWlscyBk LW5vbmUiPgorICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbHMtaGVhZGVyIj4KKyAgICAgICAgIDxk aXYgY2xhc3M9ImRldGFpbHMtdGl0bGUiPjwvZGl2PgorICAgICAgIDwvZGl2PgorICAgICAgIDxk aXYgY2xhc3M9ImRldGFpbHMtYm9keSI+PC9kaXY+CisgICAgIDwvZGl2PmAKKyAgICApOwogICB9 KTsKIAogICBkZXNjcmliZSgnTm8gU3RhdGlzdGljcycsICgpID0+IHsKQEAgLTQ5LDIwICs1Mywx MiBAQCBkZXNjcmliZSgnRXhwbGFpblN0YXRpc3RpY3MnLCAoKSA9PiB7CiAgICAgICBleHBlY3Qo JCgnLnBnLWV4cGxhaW4tc3RhdHMtYXJlYScpLmhhc0NsYXNzKCdkLW5vbmUnKSkudG9FcXVhbChm YWxzZSk7CiAgICAgfSk7CiAKLSAgICBpdCgnTW91c2Ugb3ZlciBldmVudCBzaG91bGQgYmUgdHJp Z2dlcicsICgpID0+IHsKKyAgICBpdCgnTW91c2UgY2xpY2sgZXZlbnQgc2hvdWxkIGJlIHRyaWdn ZXInLCAoKSA9PiB7CiAgICAgICAvLyBUcmlnZ2VyIG1vdXNlIG92ZXIgZXZlbnQKLSAgICAgIHZh ciBob3ZlckV2ZW50ID0gbmV3ICQuRXZlbnQoJ21vdXNlb3ZlcicpOwotICAgICAgJCgnLnBnLWV4 cGxhaW4tc3RhdHMtYXJlYScpLnRyaWdnZXIoaG92ZXJFdmVudCk7CisgICAgICB2YXIgY2xpY2tF dmVudCA9IG5ldyAkLkV2ZW50KCdjbGljaycpOworICAgICAgJCgnLnBnLWV4cGxhaW4tc3RhdHMt YXJlYScpLnRyaWdnZXIoY2xpY2tFdmVudCk7CiAKLSAgICAgIGV4cGVjdCh0b29sdGlwQ29udGFp bmVyLmNzcygnb3BhY2l0eScpKS50b0VxdWFsKCcwLjgnKTsKLSAgICB9KTsKLQotICAgIGl0KCdN b3VzZSBvdXQgZXZlbnQgc2hvdWxkIGJlIHRyaWdnZXInLCAoKSA9PiB7Ci0gICAgICAvLyBUcmln Z2VyIG1vdXNlIG91dCBldmVudAotICAgICAgdmFyIGhvdmVyRXZlbnQgPSBuZXcgJC5FdmVudCgn bW91c2VvdXQnKTsKLSAgICAgICQoJy5wZy1leHBsYWluLXN0YXRzLWFyZWEnKS50cmlnZ2VyKGhv dmVyRXZlbnQpOwotCi0gICAgICBleHBlY3QodG9vbHRpcENvbnRhaW5lci5jc3MoJ29wYWNpdHkn KSkudG9FcXVhbCgnMCcpOworICAgICAgZXhwZWN0KHRvb2x0aXBDb250YWluZXIuaGFzQ2xhc3Mo J2Qtbm9uZScpKS50b0JlKGZhbHNlKTsKICAgICB9KTsKICAgfSk7CiAKQEAgLTc4LDIwICs3NCwx MiBAQCBkZXNjcmliZSgnRXhwbGFpblN0YXRpc3RpY3MnLCAoKSA9PiB7CiAgICAgICBleHBlY3Qo JCgnLnBnLWV4cGxhaW4tc3RhdHMtYXJlYScpLmhhc0NsYXNzKCdkLW5vbmUnKSkudG9FcXVhbChm YWxzZSk7CiAgICAgfSk7CiAKLSAgICBpdCgnTW91c2Ugb3ZlciBldmVudCBzaG91bGQgYmUgdHJp Z2dlcicsICgpID0+IHsKKyAgICBpdCgnTW91c2UgY2xpY2sgZXZlbnQgc2hvdWxkIGJlIHRyaWdn ZXInLCAoKSA9PiB7CiAgICAgICAvLyBUcmlnZ2VyIG1vdXNlIG92ZXIgZXZlbnQKLSAgICAgIHZh ciBob3ZlckV2ZW50ID0gbmV3ICQuRXZlbnQoJ21vdXNlb3ZlcicpOwotICAgICAgJCgnLnBnLWV4 cGxhaW4tc3RhdHMtYXJlYScpLnRyaWdnZXIoaG92ZXJFdmVudCk7Ci0KLSAgICAgIGV4cGVjdCh0 b29sdGlwQ29udGFpbmVyLmNzcygnb3BhY2l0eScpKS50b0VxdWFsKCcwLjgnKTsKLSAgICB9KTsK LQotICAgIGl0KCdNb3VzZSBvdXQgZXZlbnQgc2hvdWxkIGJlIHRyaWdnZXInLCAoKSA9PiB7Ci0g ICAgICAvLyBUcmlnZ2VyIG1vdXNlIG91dCBldmVudAotICAgICAgdmFyIGhvdmVyRXZlbnQgPSBu ZXcgJC5FdmVudCgnbW91c2VvdXQnKTsKLSAgICAgICQoJy5wZy1leHBsYWluLXN0YXRzLWFyZWEn KS50cmlnZ2VyKGhvdmVyRXZlbnQpOworICAgICAgdmFyIGNsaWNrRXZlbnQgPSBuZXcgJC5FdmVu dCgnY2xpY2snKTsKKyAgICAgICQoJy5wZy1leHBsYWluLXN0YXRzLWFyZWEnKS50cmlnZ2VyKGNs aWNrRXZlbnQpOwogCi0gICAgICBleHBlY3QodG9vbHRpcENvbnRhaW5lci5jc3MoJ29wYWNpdHkn KSkudG9FcXVhbCgnMCcpOworICAgICAgZXhwZWN0KHRvb2x0aXBDb250YWluZXIuaGFzQ2xhc3Mo J2Qtbm9uZScpKS50b0JlKGZhbHNlKTsKICAgICB9KTsKICAgfSk7CiAKQEAgLTExMSwyMCArOTks MTIgQEAgZGVzY3JpYmUoJ0V4cGxhaW5TdGF0aXN0aWNzJywgKCkgPT4gewogICAgICAgZXhwZWN0 KCQoJy5wZy1leHBsYWluLXN0YXRzLWFyZWEnKS5oYXNDbGFzcygnZC1ub25lJykpLnRvRXF1YWwo ZmFsc2UpOwogICAgIH0pOwogCi0gICAgaXQoJ01vdXNlIG92ZXIgZXZlbnQgc2hvdWxkIGJlIHRy aWdnZXInLCAoKSA9PiB7CisgICAgaXQoJ01vdXNlIGNsaWNrIGV2ZW50IHNob3VsZCBiZSB0cmln Z2VyJywgKCkgPT4gewogICAgICAgLy8gVHJpZ2dlciBtb3VzZSBvdmVyIGV2ZW50Ci0gICAgICB2 YXIgaG92ZXJFdmVudCA9IG5ldyAkLkV2ZW50KCdtb3VzZW92ZXInKTsKLSAgICAgICQoJy5wZy1l eHBsYWluLXN0YXRzLWFyZWEnKS50cmlnZ2VyKGhvdmVyRXZlbnQpOwotCi0gICAgICBleHBlY3Qo dG9vbHRpcENvbnRhaW5lci5jc3MoJ29wYWNpdHknKSkudG9FcXVhbCgnMC44Jyk7Ci0gICAgfSk7 Ci0KLSAgICBpdCgnTW91c2Ugb3V0IGV2ZW50IHNob3VsZCBiZSB0cmlnZ2VyJywgKCkgPT4gewot ICAgICAgLy8gVHJpZ2dlciBtb3VzZSBvdXQgZXZlbnQKLSAgICAgIHZhciBob3ZlckV2ZW50ID0g bmV3ICQuRXZlbnQoJ21vdXNlb3V0Jyk7Ci0gICAgICAkKCcucGctZXhwbGFpbi1zdGF0cy1hcmVh JykudHJpZ2dlcihob3ZlckV2ZW50KTsKKyAgICAgIHZhciBjbGlja0V2ZW50ID0gbmV3ICQuRXZl bnQoJ2NsaWNrJyk7CisgICAgICAkKCcucGctZXhwbGFpbi1zdGF0cy1hcmVhJykudHJpZ2dlcihj bGlja0V2ZW50KTsKIAotICAgICAgZXhwZWN0KHRvb2x0aXBDb250YWluZXIuY3NzKCdvcGFjaXR5 JykpLnRvRXF1YWwoJzAnKTsKKyAgICAgIGV4cGVjdCh0b29sdGlwQ29udGFpbmVyLmhhc0NsYXNz KCdkLW5vbmUnKSkudG9CZShmYWxzZSk7CiAgICAgfSk7CiAgIH0pOwogfSk7Cg== --000000000000e0334505b89deb99--