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 1hg1MG-00019a-Ji for pgadmin-hackers@arkaria.postgresql.org; Wed, 26 Jun 2019 06:24:41 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1hg1MF-0007n8-Ep for pgadmin-hackers@arkaria.postgresql.org; Wed, 26 Jun 2019 06:24:39 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hg1ME-0007n1-Rn for pgadmin-hackers@lists.postgresql.org; Wed, 26 Jun 2019 06:24:39 +0000 Received: from mail-lj1-x22d.google.com ([2a00:1450:4864:20::22d]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hg1MC-0006Mr-59 for pgadmin-hackers@postgresql.org; Wed, 26 Jun 2019 06:24:37 +0000 Received: by mail-lj1-x22d.google.com with SMTP id 131so932957ljf.4 for ; Tue, 25 Jun 2019 23:24:35 -0700 (PDT) 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=Hda5LktwiS7BiIltB4c0G+KjSEcNm8gHV6hmtxGzvzY=; b=RlbnWYgJ3LK+5yrOPrs373jQVibJTSuNjbAPiQro4g8fmU71LMx+doSDcCMZ5UOWY5 3YtNwyQ4E2IOgQy98X5E3EzMnWMBdXQUCG80bLLIHKQ4Z6goYeSTlATsOY9USpsz7b43 U4/AXNyIGEbIqbwxzdSlbADdOFlB7E3uLHNwNX/EKBseUgJHl4CfnKp2p0J7y+E/xToU GAR55vrQ/FaIuqlw2wcDRXQcN8g74TT8NerLhOOBPJLxzJTPR1jFinQGYHuzyunLm66R eIWSu/hziBWQd3O4BHAn6BTXf1mpNcgbCLTE0LJWsFroK9144fE1Uf6LbvPdmvYi0dCU Glrw== 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=Hda5LktwiS7BiIltB4c0G+KjSEcNm8gHV6hmtxGzvzY=; b=jghV54z9P3+6fFRKDfj8gigpSkfwoT4EPH0tf9W/Hu9f2Lt4/eM7J0nmMyWdyLlb1m hskB58VO+J7auVwweZqoAW4MmKttqF/GnnX3ME3iuQKwoWW56wBbUXhTS99m+yrFz4kk fzMbG/k4J2mw/N+rxQegaveSAfghdkHW4NicdqlxhmvR+IR3T9aFN6oFp/7vrm5Io0dx ze6uRvybDDqxyoxt90KatiQXiTAcd297NZMEa/brs5qy2F6t91DDZ+gVi00UgTxvIDLs kAWfeYFyo00Of52o9fI29jsMbirIdYTNOR7juZUmjSx4ZMvjPWJBEZ/JKuZwjW02USwO iwcw== X-Gm-Message-State: APjAAAUJYadasqkfF4JDj1ZcMb1WaPrdErOgsJrrSusQ+uZpGRa7iP1P Zj88mIrrcvULxEI4h+V3mEC5huypgBUJAJoopt+kOrLibqo= X-Google-Smtp-Source: APXvYqy4pC2pzYpulfAgnBZ3IP1HZslOFqQg+b3NynW/1ymWuCYAk3jFX3XAc88GpxxfgdiwCSIq5ObcToAH2vXi70c= X-Received: by 2002:a2e:5c09:: with SMTP id q9mr1734143ljb.120.1561530272908; Tue, 25 Jun 2019 23:24:32 -0700 (PDT) MIME-Version: 1.0 From: Aditya Toshniwal Date: Wed, 26 Jun 2019 11:53:57 +0530 Message-ID: Subject: [pgAdmin][RM4139] Drag and drop object names in Query Editor from Browser Tree To: pgadmin-hackers Content-Type: multipart/mixed; boundary="00000000000039c893058c3419a2" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --00000000000039c893058c3419a2 Content-Type: multipart/alternative; boundary="00000000000039c88f058c3419a0" --00000000000039c88f058c3419a0 Content-Type: text/plain; charset="UTF-8" Hi Hackers, Attached is the patch to allow tree nodes to be dragged and dropped in query editor wherever you take the drop cursor. The drop text will be fully qualified and double quoted if required. For functions/procedures it will drop the the label stripping away the parameter names, with empty pair of round brackets. It will also set the focus cursor inside the brackets if there were params otherwiser to the end of text. For adding a node type, you need to register it in browser.js along with a callback function which will return drop text along with cursor positioning and selection. Currently, I have registered for "table partition type sequence package view mview foreign_table edbvar schema column edbfunc function edbproc procedure". Please note, the drag design customisation is not supported in IE. Kindly review. -- Thanks and Regards, Aditya Toshniwal Software Engineer | EnterpriseDB India | Pune "Don't Complain about Heat, Plant a TREE" --00000000000039c88f058c3419a0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

Attached is the patch to allow tree nodes to b= e dragged and dropped in query editor wherever you take the drop cursor. Th= e drop text will be fully qualified and double quoted if required.
For func= tions/procedures it will drop the the label stripping away the parameter na= mes, with empty pair of round brackets. It will also set the focus cursor i= nside the brackets if there were params otherwiser to the end of text.
For adding a node type, you need to register it in browser.js = along with a callback function which will return drop text along with curso= r positioning and selection. Currently, I have=C2=A0registered for "table partition type sequence packa= ge view mview foreign_table edbvar schema column edbfunc function edbproc p= rocedure".

Please note, the drag design c= ustomisation is not supported in IE.

Kindly re= view.

--
Thanks and Regards,
Aditya Toshniwal
Software Engineer |=C2=A0En= terpriseDB India |=C2=A0Pune=
"Don't Complain about Heat, Plant a TREE"
--00000000000039c88f058c3419a0-- --00000000000039c893058c3419a2 Content-Type: application/octet-stream; name="RM4139.patch" Content-Disposition: attachment; filename="RM4139.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jxcuqmx00 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL2Jyb3dzZXIuanMgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9icm93c2VyLmpzCmluZGV4IDI5YzExYzJlLi44 YzBmOWE1YSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvYnJvd3Nl ci5qcworKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9icm93c2VyLmpzCkBAIC0x Miw3ICsxMiw3IEBAIGRlZmluZSgncGdhZG1pbi5icm93c2VyJywgWwogICAnc291cmNlcy9nZXR0 ZXh0JywgJ3NvdXJjZXMvdXJsX2ZvcicsICdyZXF1aXJlJywgJ2pxdWVyeScsICd1bmRlcnNjb3Jl JywgJ3VuZGVyc2NvcmUuc3RyaW5nJywKICAgJ2Jvb3RzdHJhcCcsICdzb3VyY2VzL3BnYWRtaW4n LCAncGdhZG1pbi5hbGVydGlmeWpzJywgJ2J1bmRsZWRfY29kZW1pcnJvcicsCiAgICdzb3VyY2Vz L2NoZWNrX25vZGVfdmlzaWJpbGl0eScsICcuL3Rvb2xiYXInLCAncGdhZG1pbi5oZWxwJywKLSAg J3NvdXJjZXMvY3NyZicsICdwZ2FkbWluLmJyb3dzZXIudXRpbHMnLAorICAnc291cmNlcy9jc3Jm JywgJ3NvdXJjZXMvdXRpbHMnLCAncGdhZG1pbi5icm93c2VyLnV0aWxzJywKICAgJ3djZG9ja2Vy JywgJ2pxdWVyeS5jb250ZXh0bWVudScsICdqcXVlcnkuYWNpcGx1Z2luJywgJ2pxdWVyeS5hY2l0 cmVlJywKICAgJ3BnYWRtaW4uYnJvd3Nlci5wcmVmZXJlbmNlcycsICdwZ2FkbWluLmJyb3dzZXIu bWVzc2FnZXMnLAogICAncGdhZG1pbi5icm93c2VyLm1lbnUnLCAncGdhZG1pbi5icm93c2VyLnBh bmVsJywgJ3BnYWRtaW4uYnJvd3Nlci5sYXlvdXQnLApAQCAtMjQsNyArMjQsNyBAQCBkZWZpbmUo J3BnYWRtaW4uYnJvd3NlcicsIFsKICAgdHJlZSwKICAgZ2V0dGV4dCwgdXJsX2ZvciwgcmVxdWly ZSwgJCwgXywgUywKICAgQm9vdHN0cmFwLCBwZ0FkbWluLCBBbGVydGlmeSwgY29kZW1pcnJvciwK LSAgY2hlY2tOb2RlVmlzaWJpbGl0eSwgdG9vbEJhciwgaGVscCwgY3NyZlRva2VuCisgIGNoZWNr Tm9kZVZpc2liaWxpdHksIHRvb2xCYXIsIGhlbHAsIGNzcmZUb2tlbiwgcGdhZG1pblV0aWxzLAog KSB7CiAgIHdpbmRvdy5qUXVlcnkgPSB3aW5kb3cuJCA9ICQ7CiAgIC8vIFNvbWUgc2NyaXB0cyBk byBleHBvcnQgdGhlaXIgb2JqZWN0IGluIHRoZSB3aW5kb3cgb25seS4KQEAgLTEwMiw2ICsxMDIs MzggQEAgZGVmaW5lKCdwZ2FkbWluLmJyb3dzZXInLCBbCiAKICAgICAgIGIudHJlZSA9ICQoJyN0 cmVlJykuYWNpVHJlZSgnYXBpJyk7CiAgICAgICBiLnRyZWVNZW51LnJlZ2lzdGVyKCQoJyN0cmVl JykpOworCisgICAgICBiLnRyZWVNZW51LnJlZ2lzdGVyRHJhZ2dhYmxlVHlwZSh7CisgICAgICAg ICd0YWJsZSBwYXJ0aXRpb24gdHlwZSBzZXF1ZW5jZSBwYWNrYWdlIHZpZXcgbXZpZXcgZm9yZWln bl90YWJsZSBlZGJ2YXInIDogKGRhdGEsIGl0ZW0pPT57CisgICAgICAgICAgcmV0dXJuIHBnYWRt aW5VdGlscy5mdWxseV9xdWFsaWZ5KGIsIGRhdGEsIGl0ZW0pOworICAgICAgICB9LAorICAgICAg ICAnc2NoZW1hIGNvbHVtbicgOiAoZGF0YSk9PnsKKyAgICAgICAgICByZXR1cm4gcGdhZG1pblV0 aWxzLnF1b3RlX2lkZW50KGRhdGEubGFiZWwpOworICAgICAgICB9LAorICAgICAgICAnZWRiZnVu YyBmdW5jdGlvbiBlZGJwcm9jIHByb2NlZHVyZScgOiAoZGF0YSwgaXRlbSk9PnsKKyAgICAgICAg ICBsZXQgbmV3RGF0YSA9IHsKKyAgICAgICAgICAgICAgLi4uZGF0YSwKKyAgICAgICAgICAgIH0s CisgICAgICAgICAgICBicmFja2V0UG9zID0gbmV3RGF0YS5sYWJlbC5sYXN0SW5kZXhPZignKCcp OworCisgICAgICAgICAgLyogU3RyaXAgdGhlIGJyYWNrZXQgKi8KKyAgICAgICAgICBuZXdEYXRh LmxhYmVsID0gbmV3RGF0YS5sYWJlbC5zdWJzdHIoMCwgYnJhY2tldFBvcyk7CisgICAgICAgICAg bGV0IGRyb3BWYWwgPSBwZ2FkbWluVXRpbHMuZnVsbHlfcXVhbGlmeShiLCBuZXdEYXRhLCBpdGVt KTsKKyAgICAgICAgICBkcm9wVmFsID0gZHJvcFZhbCArICcoKSc7CisKKyAgICAgICAgICBsZXQg Y3VyUG9zID0gZHJvcFZhbC5sZW5ndGg7CisgICAgICAgICAgLyogSWYgaXQgaGFzIHBhcmFtcyAq LworICAgICAgICAgIGlmKGRhdGEubGFiZWwuc3Vic3RyKGJyYWNrZXRQb3MpLmxlbmd0aCA+IDIp IHsKKyAgICAgICAgICAgIGN1clBvcyA9IGN1clBvcyAtIDE7CisgICAgICAgICAgfQorICAgICAg ICAgIHJldHVybiB7CisgICAgICAgICAgICB0ZXh0OiBkcm9wVmFsLAorICAgICAgICAgICAgY3Vy OiB7CisgICAgICAgICAgICAgIGZyb206IGN1clBvcywgdG86IGN1clBvcywKKyAgICAgICAgICAg IH0sCisgICAgICAgICAgfTsKKyAgICAgICAgfSwKKyAgICAgIH0pOwogICAgIH07CiAKICAgLy8g RXh0ZW5kIHRoZSBicm93c2VyIGNsYXNzIGF0dHJpYnV0ZXMKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL3N0YXRpYy9qcy90cmVlL3RyZWUuanMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvdHJlZS90 cmVlLmpzCmluZGV4IDc4MmY0ZDU5Li45OTM5N2VmNCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v c3RhdGljL2pzL3RyZWUvdHJlZS5qcworKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvdHJlZS90 cmVlLmpzCkBAIC04LDYgKzgsNyBAQAogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAogaW1wb3J0IHtpc1Zh bGlkRGF0YX0gZnJvbSAnc291cmNlcy91dGlscyc7CitpbXBvcnQgJCBmcm9tICdqcXVlcnknOwog CiBleHBvcnQgY2xhc3MgVHJlZU5vZGUgewogICBjb25zdHJ1Y3RvcihpZCwgZGF0YSwgZG9tTm9k ZSwgcGFyZW50KSB7CkBAIC05Nyw2ICs5OCw4NyBAQCBleHBvcnQgY2xhc3MgVHJlZSB7CiAgIGNv bnN0cnVjdG9yKCkgewogICAgIHRoaXMucm9vdE5vZGUgPSBuZXcgVHJlZU5vZGUodW5kZWZpbmVk LCB7fSk7CiAgICAgdGhpcy5hY2lUcmVlQXBpID0gdW5kZWZpbmVkOworICAgIHRoaXMuZHJhZ2dh YmxlVHlwZXMgPSB7fTsKKyAgfQorCisgIC8qCisgICAqCisgICAqIFRoZSBkcm9wRGV0YWlsc0Z1 bmMgc2hvdWxkIHJldHVybiBhbiBvYmplY3Qgb2Ygc2FtcGxlCisgICAqIHt0ZXh0OiAneHl6Jywg Y3VyOiB7ZnJvbTowLCB0bzowfSB3aGVyZSB0ZXh0IGlzIHRoZSBkcm9wIHRleHQgYW5kCisgICAq IGN1ciBpcyBzZWxlY3Rpb24gcmFuZ2Ugb2YgdGV4dCBhZnRlciBkcm9wcGluZy4gSWYgcmV0dXJu ZWQgYXMKKyAgICogc3RyaW5nLCBieSBkZWZhdWx0IGN1cnNvciB3aWxsIGJlIHNldCB0byB0aGUg ZW5kIG9mIHRleHQKKyAgICovCisgIHJlZ2lzdGVyRHJhZ2dhYmxlVHlwZSh0eXBlT3JUeXBlRGlj dCwgZHJvcERldGFpbHNGdW5jPW51bGwpIHsKKyAgICBpZih0eXBlb2YgdHlwZU9yVHlwZURpY3Qg PT0gJ29iamVjdCcpIHsKKyAgICAgIE9iamVjdC5rZXlzKHR5cGVPclR5cGVEaWN0KS5mb3JFYWNo KCh0eXBlKT0+eworICAgICAgICB0aGlzLnJlZ2lzdGVyRHJhZ2dhYmxlVHlwZSh0eXBlLCB0eXBl T3JUeXBlRGljdFt0eXBlXSk7CisgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgaWYoZHJv cERldGFpbHNGdW5jICE9IG51bGwpIHsKKyAgICAgICAgdHlwZU9yVHlwZURpY3QucmVwbGFjZSgv ICsvLCAnICcpLnNwbGl0KCcgJykuZm9yRWFjaCgodHlwZSk9PnsKKyAgICAgICAgICB0aGlzLmRy YWdnYWJsZVR5cGVzW3R5cGVdID0gZHJvcERldGFpbHNGdW5jOworICAgICAgICB9KTsKKyAgICAg IH0KKyAgICB9CisgIH0KKworICBnZXREcmFnZ2FibGUodHlwZSkgeworICAgIGlmKHRoaXMuZHJh Z2dhYmxlVHlwZXNbdHlwZV0pIHsKKyAgICAgIHJldHVybiB0aGlzLmRyYWdnYWJsZVR5cGVzW3R5 cGVdOworICAgIH0gZWxzZSB7CisgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgIH0KKworICBw cmVwYXJlRHJhZ2dhYmxlKGRhdGEsIGl0ZW0pIHsKKyAgICBsZXQgZHJvcERldGFpbHNGdW5jID0g dGhpcy5nZXREcmFnZ2FibGUoZGF0YS5fdHlwZSk7CisKKyAgICBpZihkcm9wRGV0YWlsc0Z1bmMg IT0gbnVsbCkgeworICAgICAgaXRlbS5maW5kKCcuYWNpVHJlZUl0ZW0nKQorICAgICAgICAuYXR0 cignZHJhZ2dhYmxlJywgdHJ1ZSkKKyAgICAgICAgLm9uKCdkcmFnc3RhcnQnLCAoZSk9PiB7Cisg ICAgICAgICAgbGV0IGRyb3BEZXRhaWxzID0gZHJvcERldGFpbHNGdW5jKGRhdGEsIGl0ZW0pOwor ICAgICAgICAgIGxldCBvcmlnRXZlbnQgPSBlLm9yaWdpbmFsRXZlbnQ7CisKKyAgICAgICAgICBp Zih0eXBlb2YgZHJvcERldGFpbHMgPT0gJ3N0cmluZycpIHsKKyAgICAgICAgICAgIGRyb3BEZXRh aWxzID0geworICAgICAgICAgICAgICB0ZXh0OmRyb3BEZXRhaWxzLAorICAgICAgICAgICAgICBj dXI6eworICAgICAgICAgICAgICAgIGZyb206ZHJvcERldGFpbHMubGVuZ3RoLAorICAgICAgICAg ICAgICAgIHRvOiBkcm9wRGV0YWlscy5sZW5ndGgsCisgICAgICAgICAgICAgIH0sCisgICAgICAg ICAgICB9OworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZighZHJvcERldGFpbHMu Y3VyKSB7CisgICAgICAgICAgICAgIGRyb3BEZXRhaWxzID0geworICAgICAgICAgICAgICAgIC4u LmRyb3BEZXRhaWxzLAorICAgICAgICAgICAgICAgIGN1cjp7CisgICAgICAgICAgICAgICAgICBm cm9tOmRyb3BEZXRhaWxzLnRleHQubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgdG86IGRyb3BE ZXRhaWxzLnRleHQubGVuZ3RoLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIH07 CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorCisgICAgICAgICAgb3JpZ0V2ZW50LmRhdGFU cmFuc2Zlci5zZXREYXRhKCd0ZXh0JywgSlNPTi5zdHJpbmdpZnkoZHJvcERldGFpbHMpKTsKKwor ICAgICAgICAgIC8qIHNldERyYWdJbWFnZSBpcyBub3Qgc3VwcG9ydGVkIGluIElFLiBXZSBsZWF2 ZSBpdCB0bworICAgICAgICAgICAqIGl0cyBkZWZhdWx0IGxvb2sgYW5kIGZlZWwKKyAgICAgICAg ICAgKi8KKyAgICAgICAgICBpZihvcmlnRXZlbnQuZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZSkg eworICAgICAgICAgICAgbGV0IGRyYWdJdGVtID0gJChgCisgICAgICAgICAgICAgIDxkaXYgY2xh c3M9ImRyYWctdHJlZS1ub2RlIj4KKyAgICAgICAgICAgICAgICA8c3Bhbj4ke2Ryb3BEZXRhaWxz LnRleHR9PC9zcGFuPgorICAgICAgICAgICAgICA8L2Rpdj5gCisgICAgICAgICAgICApOworCisg ICAgICAgICAgICAkKCdib2R5IC5kcmFnLXRyZWUtbm9kZScpLnJlbW92ZSgpOworICAgICAgICAg ICAgJCgnYm9keScpLmFwcGVuZChkcmFnSXRlbSk7CisKKyAgICAgICAgICAgIG9yaWdFdmVudC5k YXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlKGRyYWdJdGVtWzBdLCAwLCAwKTsKKyAgICAgICAgICB9 CisgICAgICAgIH0pOworICAgIH0KICAgfQogCiAgIGFkZE5ld05vZGUoaWQsIGRhdGEsIGRvbU5v ZGUsIHBhcmVudFBhdGgpIHsKQEAgLTE2Myw2ICsyNDUsOSBAQCBleHBvcnQgY2xhc3MgVHJlZSB7 CiAgICAgICAgIGlmIChldmVudE5hbWUgPT09ICdhZGRlZCcpIHsKICAgICAgICAgICBjb25zdCBp ZCA9IGFwaS5nZXRJZChpdGVtKTsKICAgICAgICAgICBjb25zdCBkYXRhID0gYXBpLml0ZW1EYXRh KGl0ZW0pOworCisgICAgICAgICAgdGhpcy5wcmVwYXJlRHJhZ2dhYmxlKGRhdGEsIGl0ZW0pOwor CiAgICAgICAgICAgY29uc3QgcGFyZW50SWQgPSB0aGlzLnRyYW5zbGF0ZVRyZWVOb2RlSWRGcm9t QUNJVHJlZShhcGkucGFyZW50KGl0ZW0pKTsKICAgICAgICAgICB0aGlzLmFkZE5ld05vZGUoaWQs IGRhdGEsIGl0ZW0sIHBhcmVudElkKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vc3RhdGljL2pzL3V0aWxzLmpzIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3V0aWxzLmpzCmlu ZGV4IDFjNThhOWViLi41YzkwOGFmYiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL2pz L3V0aWxzLmpzCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy91dGlscy5qcwpAQCAtOCw2ICs4 LDcgQEAKIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKIGltcG9ydCBfIGZyb20gJ3VuZGVyc2NvcmUnOwor aW1wb3J0IHsgZ2V0VHJlZU5vZGVIaWVyYXJjaHlGcm9tSWRlbnRpZmllciB9IGZyb20gJ3NvdXJj ZXMvdHJlZS9wZ2FkbWluX3RyZWVfbm9kZSc7CiAKIGV4cG9ydCBmdW5jdGlvbiBwYXJzZVNob3J0 Y3V0VmFsdWUob2JqKSB7CiAgIHZhciBzaG9ydGN1dCA9ICcnOwpAQCAtODMsMyArODQsNTAgQEAg ZXhwb3J0IGZ1bmN0aW9uIGdldEdDRChpbnBfYXJyKSB7CiBleHBvcnQgZnVuY3Rpb24gZ2V0TW9k KG5vLCBkaXZpc29yKSB7CiAgIHJldHVybiAoKG5vICUgZGl2aXNvcikgKyBkaXZpc29yKSAlIGRp dmlzb3I7CiB9CisKK2V4cG9ydCBmdW5jdGlvbiBxdW90ZV9pZGVudCh2YWx1ZSkgeworICAvKiBj aGVjayBpZiB0aGUgc3RyaW5nIGlzIG51bWJlciBvciBub3QgKi8KKyAgbGV0IHF1b3RlSXQgPSBm YWxzZTsKKyAgaWYgKCFpc05hTihwYXJzZUludCh2YWx1ZSkpKXsKKyAgICBxdW90ZUl0ID0gdHJ1 ZTsKKyAgfQorCisgIGlmKHZhbHVlLnNlYXJjaCgvW15hLXowLTlfXS9nKSA+IC0xKSB7CisgICAg cXVvdGVJdCA9IHRydWU7CisgIH0KKworICBpZihxdW90ZUl0KSB7CisgICAgcmV0dXJuIGAiJHt2 YWx1ZX0iYDsKKyAgfSBlbHNlIHsKKyAgICByZXR1cm4gdmFsdWU7CisgIH0KK30KKworZXhwb3J0 IGZ1bmN0aW9uIGZ1bGx5X3F1YWxpZnkocGdCcm93c2VyLCBkYXRhLCBpdGVtKSB7CisgIGNvbnN0 IHBhcmVudERhdGEgPSBnZXRUcmVlTm9kZUhpZXJhcmNoeUZyb21JZGVudGlmaWVyLmNhbGwocGdC cm93c2VyLCBpdGVtKTsKKyAgbGV0IG5hbWVzcGFjZSA9ICcnOworCisgIGlmIChwYXJlbnREYXRh LnNjaGVtYSAhPT0gdW5kZWZpbmVkKSB7CisgICAgbmFtZXNwYWNlID0gcXVvdGVfaWRlbnQocGFy ZW50RGF0YS5zY2hlbWEubGFiZWwpOworICB9CisgIGVsc2UgaWYgKHBhcmVudERhdGEudmlldyAh PT0gdW5kZWZpbmVkKSB7CisgICAgbmFtZXNwYWNlID0gcXVvdGVfaWRlbnQocGFyZW50RGF0YS52 aWV3LmxhYmVsKTsKKyAgfQorICBlbHNlIGlmIChwYXJlbnREYXRhLmNhdGFsb2cgIT09IHVuZGVm aW5lZCkgeworICAgIG5hbWVzcGFjZSA9IHF1b3RlX2lkZW50KHBhcmVudERhdGEuY2F0YWxvZy5s YWJlbCk7CisgIH0KKworICBpZiAocGFyZW50RGF0YS5wYWNrYWdlICE9PSB1bmRlZmluZWQgJiYg ZGF0YS5fdHlwZSAhPSAncGFja2FnZScpIHsKKyAgICBpZihuYW1lc3BhY2UgPT0gJycpIHsKKyAg ICAgIG5hbWVzcGFjZSA9IHF1b3RlX2lkZW50KHBhcmVudERhdGEucGFja2FnZS5sYWJlbCk7Cisg ICAgfSBlbHNlIHsKKyAgICAgIG5hbWVzcGFjZSArPSAnLicgKyBxdW90ZV9pZGVudChwYXJlbnRE YXRhLnBhY2thZ2UubGFiZWwpOworICAgIH0KKyAgfQorCisgIGlmKG5hbWVzcGFjZSAhPSAnJykg eworICAgIHJldHVybiBuYW1lc3BhY2UgKyAnLicgKyBxdW90ZV9pZGVudChkYXRhLmxhYmVsKTsK KyAgfSBlbHNlIHsKKyAgICByZXR1cm4gcXVvdGVfaWRlbnQoZGF0YS5sYWJlbCk7CisgIH0KK30K ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9zY3NzL19wZ2FkbWluLnN0eWxlLnNjc3Mg Yi93ZWIvcGdhZG1pbi9zdGF0aWMvc2Nzcy9fcGdhZG1pbi5zdHlsZS5zY3NzCmluZGV4IGVkNDI2 NTQ1Li5mNWE4ODc3YyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL3Njc3MvX3BnYWRt aW4uc3R5bGUuc2NzcworKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvc2Nzcy9fcGdhZG1pbi5zdHls ZS5zY3NzCkBAIC05ODMsMyArOTgzLDE1IEBAIHRhYmxlLnRhYmxlLWVtcHR5LXJvd3N7CiAgIHBh ZGRpbmc6IDBweCAhaW1wb3J0YW50OwogICBwb3NpdGlvbjogYWJzb2x1dGU7CiB9CisKKy5kcmFn LXRyZWUtbm9kZSB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgdG9wOi0xMDBweDsKKyAgbGVm dDowOworICB6LWluZGV4OiA5OTk5OTsKKyAgY29sb3I6ICRpbnB1dC1mb2N1cy1jb2xvcjsKKyAg YmFja2dyb3VuZDogJGlucHV0LWJnOworICBib3JkZXI6ICRpbnB1dC1ib3JkZXItd2lkdGggc29s aWQgJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjsKKyAgYm9yZGVyLXJhZGl1czogJGlucHV0LWJv cmRlci1yYWRpdXM7CisgIHBhZGRpbmc6ICRpbnB1dC1idG4tcGFkZGluZy15ICRpbnB1dC1idG4t cGFkZGluZy14OworfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0 YXRpYy9qcy9zcWxlZGl0b3IuanMgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGlj L2pzL3NxbGVkaXRvci5qcwppbmRleCBhODU2MDU3NC4uZWY0NjhmNjMgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvc3FsZWRpdG9yLmpzCisrKyBiL3dl Yi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvc3FsZWRpdG9yLmpzCkBAIC0zNDEs OCArMzQxLDMxIEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgICAgICBndXR0ZXJz OiBbJ0NvZGVNaXJyb3ItbGluZW51bWJlcnMnLCAnQ29kZU1pcnJvci1mb2xkZ3V0dGVyJ10sCiAg ICAgICAgIGV4dHJhS2V5czogcGdCcm93c2VyLmVkaXRvcl9zaG9ydGN1dF9rZXlzLAogICAgICAg ICBzY3JvbGxiYXJTdHlsZTogJ3NpbXBsZScsCisgICAgICAgIGRyYWdEcm9wOiBmYWxzZSwKICAg ICAgIH0pOwogCisgICAgICBpZihzZWxmLmhhbmRsZXIuaXNfcXVlcnlfdG9vbCkgeworICAgICAg ICBzZWxmLnF1ZXJ5X3Rvb2xfb2JqLnNldE9wdGlvbignZHJhZ0Ryb3AnLCB0cnVlKTsKKyAgICAg ICAgc2VsZi5xdWVyeV90b29sX29iai5vbignZHJvcCcsIChlZGl0b3IsIGUpID0+IHsKKyAgICAg ICAgICB2YXIgY3Vyc29yID0gZWRpdG9yLmNvb3Jkc0NoYXIoeworICAgICAgICAgICAgbGVmdDog ZS54LAorICAgICAgICAgICAgdG9wOiBlLnksCisgICAgICAgICAgfSk7CisgICAgICAgICAgdmFy IGRyb3BEZXRhaWxzID0gSlNPTi5wYXJzZShlLmRhdGFUcmFuc2Zlci5nZXREYXRhKCd0ZXh0Jykp OworICAgICAgICAgIGUuY29kZW1pcnJvcklnbm9yZSA9IHRydWU7CisgICAgICAgICAgZS5kYXRh VHJhbnNmZXIuY2xlYXJEYXRhKCd0ZXh0Jyk7CisgICAgICAgICAgZWRpdG9yLnJlcGxhY2VSYW5n ZShkcm9wRGV0YWlscy50ZXh0LCBjdXJzb3IpOworICAgICAgICAgIGVkaXRvci5mb2N1cygpOwor ICAgICAgICAgIGVkaXRvci5zZXRTZWxlY3Rpb24oeworICAgICAgICAgICAgLi4uY3Vyc29yLAor ICAgICAgICAgICAgY2g6IGN1cnNvci5jaCArIGRyb3BEZXRhaWxzLmN1ci5mcm9tLAorICAgICAg ICAgIH0seworICAgICAgICAgICAgLi4uY3Vyc29yLAorICAgICAgICAgICAgY2g6IGN1cnNvci5j aCArZHJvcERldGFpbHMuY3VyLnRvLAorICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICAg IH0KKwogICAgICAgcGdCcm93c2VyLkV2ZW50cy5vbigncGdhZG1pbjpxdWVyeV90b29sOnNxbF9w YW5lbDpmb2N1cycsICgpPT57CiAgICAgICAgIHNlbGYucXVlcnlfdG9vbF9vYmouZm9jdXMoKTsK ICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9wZ2FkbWlu X3V0aWxzX3NwZWMuanMgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3BnYWRtaW5fdXRpbHNf c3BlYy5qcwppbmRleCAwMmJkNTQ3OC4uN2RmNzhkMjkgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNz aW9uL2phdmFzY3JpcHQvcGdhZG1pbl91dGlsc19zcGVjLmpzCisrKyBiL3dlYi9yZWdyZXNzaW9u L2phdmFzY3JpcHQvcGdhZG1pbl91dGlsc19zcGVjLmpzCkBAIC03LDcgKzcsNyBAQAogLy8KIC8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vCiAKLWltcG9ydCB7IGdldEVwb2NoLCBnZXRHQ0QsIGdldE1vZCB9IGZyb20gJ3NvdXJjZXMv dXRpbHMnOworaW1wb3J0IHsgZ2V0RXBvY2gsIGdldEdDRCwgZ2V0TW9kLCBxdW90ZV9pZGVudCB9 IGZyb20gJ3NvdXJjZXMvdXRpbHMnOwogCiBkZXNjcmliZSgnZ2V0RXBvY2gnLCBmdW5jdGlvbiAo KSB7CiAgIGl0KCdzaG91bGQgcmV0dXJuIG5vbiB6ZXJvJywgZnVuY3Rpb24gKCkgewpAQCAtNTEs MyArNTEsMjAgQEAgZGVzY3JpYmUoJ2dldE1vZCcsIGZ1bmN0aW9uICgpIHsKICAgICBleHBlY3Qo Z2V0TW9kKC03LDUpKS50b0VxdWFsKDMpOwogICB9KTsKIH0pOworCitkZXNjcmliZSgncXVvdGVf aWRlbnQnLCBmdW5jdGlvbiAoKSB7CisgIGl0KCdub3JtYWwgc3RyaW5nJywgZnVuY3Rpb24gKCkg eworICAgIGV4cGVjdChxdW90ZV9pZGVudCgnYWJjZCcpKS50b0VxdWFsKCdhYmNkJyk7CisgIH0p OworCisgIGl0KCdjb250YWlucyBjZXJ0YWluIGNoYXJhY3RlcnMgc3RyaW5nJywgZnVuY3Rpb24g KCkgeworICAgIGV4cGVjdChxdW90ZV9pZGVudCgnQWJjZCcpKS50b0VxdWFsKCciQWJjZCInKTsK KyAgICBleHBlY3QocXVvdGVfaWRlbnQoJ2FiYyRkJykpLnRvRXF1YWwoJyJhYmMkZCInKTsKKyAg ICBleHBlY3QocXVvdGVfaWRlbnQoJ2FiIGNkJykpLnRvRXF1YWwoJyJhYiBjZCInKTsKKyAgfSk7 CisKKyAgaXQoJ3N0YXJ0cyB3aXRoIG51bWJlcicsIGZ1bmN0aW9uICgpIHsKKyAgICBleHBlY3Qo cXVvdGVfaWRlbnQoJzFhJykpLnRvRXF1YWwoJyIxYSInKTsKKyAgICBleHBlY3QocXVvdGVfaWRl bnQoJ2ExJykpLnRvRXF1YWwoJ2ExJyk7CisgIH0pOworfSk7Cg== --00000000000039c893058c3419a2--