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 1kmCmL-0002cD-8Z for pgadmin-hackers@arkaria.postgresql.org; Mon, 07 Dec 2020 09:25:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kmCmK-00039A-6t for pgadmin-hackers@arkaria.postgresql.org; Mon, 07 Dec 2020 09:25:56 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kmCmJ-00038k-Kg for pgadmin-hackers@lists.postgresql.org; Mon, 07 Dec 2020 09:25:56 +0000 Received: from mail-qv1-xf31.google.com ([2607:f8b0:4864:20::f31]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1kmCmH-00020J-4Z for pgadmin-hackers@postgresql.org; Mon, 07 Dec 2020 09:25:54 +0000 Received: by mail-qv1-xf31.google.com with SMTP id p12so6156982qvj.13 for ; Mon, 07 Dec 2020 01:25:52 -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=wjzCP9OqOoxEM+Fa/iV4tvP8QrWnHrwqkMbUzO5msIo=; b=NAiFWGBwHP/yQvAcvux2sLDl8LOhsnwrUOMq6oHZ6Qh6hGkWms2TTeiJgZg4qwbgmO N3K91JfdGzEcssIlvPeAeOQOwcTNNW879t1DYel5WbBZXPvO5MXjUfHNPQVjhwezIn4v Jiwxx7W0rGmzQIlyfF+QEFZSQm4K4vRju+3GOkX/7FPBJHuXEPqPJdLgf9SMr3hIn64N JqgDd5WyHRqDp1N5NPLKgJTAlwh6GCjfWEBdGUgEnn6JHBElJCyoZT4nXod/wZsQy8mT LwwIoyoOdlrr4V7bZn1dR4nE8RVGre2uxFLTWFuzVbe1g6K2+QSSA4QBbJfBDkp6ATqX 4jYg== 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=wjzCP9OqOoxEM+Fa/iV4tvP8QrWnHrwqkMbUzO5msIo=; b=Fj2OTRCt7bU0eayP1jKzrcV0XS+aOzJ4SgHHSzxK6G+hZaK3+yMl6T92i4aeQmiB+F p0pjPfGMV1er8FK307Lp7my3U1EmG6FzE5THNW4QkhkZfLuONxa93R/vpISjaT+vy9+M U3JMdOLO8cc4he38zenK8h7c8uk1allqZzS5FOwBjP//St7NTzL7+wHetj9qTwKEmrzV axYqv1YgoKiMuYJr8Rcq6e05alu9P3PBMI35th8aNiQj0MKWzGJEKTMv8570vj36Vbt+ 2iSZ6jjw1I4cDsqpD6FSMQKqtha/U7FIE8u0IbgSuGJIDmtaTXZAuwYLWX1U2wHNkiCe b0HQ== X-Gm-Message-State: AOAM533Ho4Cussm/BYIRTUK6YX3zd2SPQKDKhrAH8D8KFsoSR1iI7LAj t4Wq8xTl6LroVSw7gaCOJEsqTcsA49J26j6TFTZlnHo07zaKpimeTbj8BV920p1McM3WWhe3lS4 7UULowpeZ7X9dKCfeXV4+g/9Uq6WBLpU+yrtKMQJuCbUkdwfPceyVRUaUaNe1bHvV+MFB7pZpIC XhkUdW0OlGoUb+voFT333YlOopXSYyT87/aEr2/saq2fZyP2Sd1jGM43Us/FwzreIcv3cn X-Google-Smtp-Source: ABdhPJz4gjIR1UyAiKiNI5scaNcI/ri3O/rOALT7i3LNylU8xEsl1sjdiwfczj71fojeiwvxDO9UHU0duPRTBXDDg3Y= X-Received: by 2002:a0c:c2c3:: with SMTP id c3mr18634416qvi.39.1607333151450; Mon, 07 Dec 2020 01:25:51 -0800 (PST) MIME-Version: 1.0 From: Rahul Shirsat Date: Mon, 7 Dec 2020 14:55:15 +0530 Message-ID: Subject: [pgAdmin4] RM5965 Couldn't download file of Marcos query results To: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000876d8805b5dc6999" 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 --000000000000876d8805b5dc6999 Content-Type: multipart/alternative; boundary="000000000000876d8605b5dc6997" --000000000000876d8605b5dc6997 Content-Type: text/plain; charset="UTF-8" Hi Hackers, Please find the attached patch which resolves the issue of macros query results download, have used async cursor to achieve this functionality, where for downloading the results, cursor is scrolled back to 0 and end of the records, and reset again while user scrolling on Data Output table. QA/Reviewer needs to observe below issues if it occurs: 1. If records are more like 5000 or 10000, try to fetch records by scrolling at least (2000), now save the results by clicking the download button, it should save the file, and now try scrolling again, the data should be shown continuously and not any abrupt end or unexpected records order. 2. Also, the download button is now "Save results to CSV/TXT" where it will only get enabled when there are valid records in the Data Output. Also a minor fix of the add folder icon issue is also added into this patch. -- *Rahul Shirsat* Senior Software Engineer | EnterpriseDB Corporation. --000000000000876d8605b5dc6997 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

Please find the attached pa= tch which resolves the issue of macros query results download, have used as= ync cursor to achieve this functionality, where for downloading the results= , cursor is scrolled back to 0 and end of the records, and reset again whil= e user scrolling on Data Output table.

QA/Reviewer= needs to observe below issues if it occurs:
  1. If records a= re more like 5000 or 10000, try to fetch records by scrolling at least=C2= =A0(2000), now save the results by clicking the download button, it should = save the file, and now try scrolling again, the data should be shown contin= uously and not any abrupt end or unexpected records order.
  2. Also, th= e download button is now "Save results to CSV/TXT" where it will = only get enabled when there are valid records in the Data Output.
=

Also a minor fix of the add folder icon issue is = also added into this patch.

--
Rahu= l Shirsat
Senior Software Engineer=C2=A0|=C2= =A0EnterpriseDB=C2=A0Corporation.
--000000000000876d8605b5dc6997-- --000000000000876d8805b5dc6999 Content-Type: application/octet-stream; name="RM5965.patch" Content-Disposition: attachment; filename="RM5965.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kiecjtqe0 ZGlmZiAtLWdpdCBhL2RvY3MvZW5fVVMvcXVlcnlfdG9vbF90b29sYmFyLnJzdCBiL2RvY3MvZW5f VVMvcXVlcnlfdG9vbF90b29sYmFyLnJzdAppbmRleCAyMTY4YzM5MzAuLmE2YzJjNmFjNSAxMDA2 NDQKLS0tIGEvZG9jcy9lbl9VUy9xdWVyeV90b29sX3Rvb2xiYXIucnN0CisrKyBiL2RvY3MvZW5f VVMvcXVlcnlfdG9vbF90b29sYmFyLnJzdApAQCAtMTc5LDEwICsxNzksMTAgQEAgUXVlcnkgRXhl Y3V0aW9uCiAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwKICAgIHwgICAgICAgICAgICAg ICAgICAgICAgfCAgKiBTZWxlY3QgKkNsZWFyIEhpc3RvcnkqIHRvIGVyYXNlIHRoZSBjb250ZW50 IG9mIHRoZSAqSGlzdG9yeSogdGFiLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgfAogICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCi0gICB8ICpEb3du bG9hZCBhcyBDU1YvVFhUKnwgQ2xpY2sgdGhlICpEb3dubG9hZCBhcyBDU1YvVFhUKiBpY29uIHRv IGRvd25sb2FkIHRoZSByZXN1bHQgc2V0IG9mIHRoZSBjdXJyZW50IHF1ZXJ5IGFzIGEgKi5jc3Yq ICB8IEY4ICAgICAgICAgICAgIHwKLSAgIHwgICAgICAgICAgICAgICAgICAgICAgfCBvciBhcyBh ICoudHh0KiBmaWxlLiBpZiAqQ1NWIGZpZWxkIHNlcGVyYXRvciogc2V0IHRvIGNvbW1hKCwpIGVs c2UgYXMgYSAqLnR4dCogZmlsZS4gICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfAotICAg fCAgICAgICAgICAgICAgICAgICAgICB8IFlvdSBjYW4gc3BlY2lmeSB0aGUgQ1NWL1RYVCBzZXR0 aW5ncyB0aHJvdWdoICpQcmVmZXJlbmNlcyAtPiBTUUwgRWRpdG9yIC0+IENTVi9UWFQgb3V0cHV0 KiAgICAgICAgfCAgICAgICAgICAgICAgICB8Ci0gICB8ICAgICAgICAgICAgICAgICAgICAgIHwg ZGlhbG9ndWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg IHwKKyAgIHwgKlNhdmUgcmVzdWx0cyB0byogICAgfCBDbGljayB0aGUgKlNhdmUgcmVzdWx0cyB0 byBmaWxlIGFzIENTVi9UWFQqIGljb24gdG8gZG93bmxvYWQgdGhlIHJlc3VsdCBzZXQgb2YgdGhl IGN1cnJlbnQgcXVlcnkgIHwgRjggICAgICAgICAgICAgfAorICAgfCAgKmZpbGUgYXMgQ1NWL1RY VCogICB8IGFzIGEgKi5jc3YqIG9yIGFzIGEgKi50eHQqIGZpbGUuIGlmICpDU1YgZmllbGQgc2Vw ZXJhdG9yKiBzZXQgdG8gY29tbWEoLCkgZWxzZSBhcyBhICoudHh0KiBmaWxlLiAgfCAgICAgICAg ICAgICAgICB8CisgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgQnV0dG9uIHdpbGwgb25seSBi ZSBlbmFibGVkIHdoZW4gdGhlcmUgYXJlIHJlc3VsdHMgdG8gc2F2ZS4gWW91IGNhbiBzcGVjaWZ5 IHRoZSBDU1YvVFhUIHNldHRpbmdzICB8ICAgICAgICAgICAgICAgIHwKKyAgIHwgICAgICAgICAg ICAgICAgICAgICAgfCB0aHJvdWdoICpQcmVmZXJlbmNlcyAtPiBTUUwgRWRpdG9yIC0+IENTVi9U WFQgb3V0cHV0KiBkaWFsb2d1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgfAogICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCiAgICB8ICpN YWNyb3MqICAgICAgICAgICAgIHwgQ2xpY2sgdGhlICpNYWNyb3MqIGljb24gdG8gbWFuYWdlIHRo ZSBtYWNyb3MuIFlvdSBjYW4gY3JlYXRlLCBlZGl0IG9yIGNsZWFyIHRoZSBtYWNyb3MgdGhyb3Vn aCAgICB8ICAgICAgICAgICAgICAgIHwKICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCB0aGUg Kk1hbmFnZSBNYWNyb3MqIG9wdGlvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfApk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvc3RhdGljL3Njc3MvX2Zp bGVfbWFuYWdlci5zY3NzIGIvd2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvc3RhdGljL3Nj c3MvX2ZpbGVfbWFuYWdlci5zY3NzCmluZGV4IGQyNjgyZjY4Ni4uNGQxNWMzNDhjIDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi9taXNjL2ZpbGVfbWFuYWdlci9zdGF0aWMvc2Nzcy9fZmlsZV9tYW5h Z2VyLnNjc3MKKysrIGIvd2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvc3RhdGljL3Njc3Mv X2ZpbGVfbWFuYWdlci5zY3NzCkBAIC0zMzMsNyArMzMzLDcgQEAKICAgdG9wOiAtOHB4OwogICBs ZWZ0OiAtNnB4OwogICBmb250LXNpemU6IDhweDsKLSAgbWFyZ2luLXJpZ2h0OiAtOHB4OworICBt YXJnaW4tcmlnaHQ6IC03cHg7CiB9CiAKIHRhYmxlLnRhYmxlc29ydGVyIHsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9rZXlib2FyZF9zaG9ydGN1dHMuanMgYi93ZWIvcGdhZG1p bi9zdGF0aWMvanMva2V5Ym9hcmRfc2hvcnRjdXRzLmpzCmluZGV4IGFiZGE4ZDhmMi4uMDU5ZGYw NjI4IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMva2V5Ym9hcmRfc2hvcnRjdXRz LmpzCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9rZXlib2FyZF9zaG9ydGN1dHMuanMKQEAg LTIxMSw4ICsyMTEsMTAgQEAgZnVuY3Rpb24ga2V5Ym9hcmRTaG9ydGN1dHNRdWVyeVRvb2woCiAg ICAgdGhpcy5fc3RvcEV2ZW50UHJvcGFnYXRpb24oZXZlbnQpOwogICAgIHF1ZXJ5VG9vbEFjdGlv bnMuZXhwbGFpbkFuYWx5emUoc3FsRWRpdG9yQ29udHJvbGxlcik7CiAgIH0gZWxzZSBpZiAodGhp cy52YWxpZGF0ZVNob3J0Y3V0S2V5cyhkb3dubG9hZENzdktleXMsIGV2ZW50KSkgewotICAgIHRo aXMuX3N0b3BFdmVudFByb3BhZ2F0aW9uKGV2ZW50KTsKLSAgICBxdWVyeVRvb2xBY3Rpb25zLmRv d25sb2FkKHNxbEVkaXRvckNvbnRyb2xsZXIpOworICAgIGlmKCFzcWxFZGl0b3JDb250cm9sbGVy LmlzX3NhdmVfcmVzdWx0c190b19maWxlX2Rpc2FibGVkKSB7CisgICAgICB0aGlzLl9zdG9wRXZl bnRQcm9wYWdhdGlvbihldmVudCk7CisgICAgICBxdWVyeVRvb2xBY3Rpb25zLmRvd25sb2FkKHNx bEVkaXRvckNvbnRyb2xsZXIpOworICAgIH0KICAgfSBlbHNlIGlmICh0aGlzLnZhbGlkYXRlU2hv cnRjdXRLZXlzKHRvZ2dsZUNhc2VLZXlzLCBldmVudCkpIHsKICAgICB0aGlzLl9zdG9wRXZlbnRQ cm9wYWdhdGlvbihldmVudCk7CiAgICAgcXVlcnlUb29sQWN0aW9ucy50b2dnbGVDYXNlT2ZTZWxl Y3RlZFRleHQoc3FsRWRpdG9yQ29udHJvbGxlcik7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9z dGF0aWMvanMvc3FsZWRpdG9yL2NhbGxfcmVuZGVyX2FmdGVyX3BvbGwuanMgYi93ZWIvcGdhZG1p bi9zdGF0aWMvanMvc3FsZWRpdG9yL2NhbGxfcmVuZGVyX2FmdGVyX3BvbGwuanMKaW5kZXggZDhk MzY0NzIyLi4yYzUyYmFmMTAgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxl ZGl0b3IvY2FsbF9yZW5kZXJfYWZ0ZXJfcG9sbC5qcworKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMv anMvc3FsZWRpdG9yL2NhbGxfcmVuZGVyX2FmdGVyX3BvbGwuanMKQEAgLTQzLDYgKzQzLDcgQEAg ZXhwb3J0IGZ1bmN0aW9uIGNhbGxSZW5kZXJBZnRlclBvbGwoc3FsRWRpdG9yLCBhbGVydGlmeSwg cmVzKSB7CiAgICAgaWYgKGlzTm90aWZpY2F0aW9uRW5hYmxlZChzcWxFZGl0b3IpKSB7CiAgICAg ICBhbGVydGlmeS5zdWNjZXNzKG1zZywgc3FsRWRpdG9yLmluZm9fbm90aWZpZXJfdGltZW91dCk7 CiAgICAgfQorICAgIHNxbEVkaXRvci5lbmFibGVfZGlzYWJsZV9kb3dubG9hZF9idG4odHJ1ZSk7 CiAgIH0KIAogICBpZiAoaXNRdWVyeVRvb2woc3FsRWRpdG9yKSkgewpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9leGVjdXRlX3F1ZXJ5LmpzIGIvd2ViL3BnYWRt aW4vc3RhdGljL2pzL3NxbGVkaXRvci9leGVjdXRlX3F1ZXJ5LmpzCmluZGV4IDZjNDA2OWQyNC4u Mzg5NjU1ZmE5IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL2V4 ZWN1dGVfcXVlcnkuanMKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9leGVj dXRlX3F1ZXJ5LmpzCkBAIC04Myw2ICs4Myw3IEBAIGNsYXNzIEV4ZWN1dGVRdWVyeSB7CiAgICAg ICAgIH0gZWxzZSB7CiAgICAgICAgICAgc2VsZi5sb2FkaW5nU2NyZWVuLmhpZGUoKTsKICAgICAg ICAgICBzZWxmLmVuYWJsZVNRTEVkaXRvckJ1dHRvbnMoKTsKKyAgICAgICAgICBzZWxmLmRpc2Fi bGVEb3dubG9hZEJ1dHRvbigpOwogICAgICAgICAgIC8vIEVuYWJsZS9EaXNhYmxlIGNvbW1pdCBh bmQgcm9sbGJhY2sgYnV0dG9uLgogICAgICAgICAgIGlmIChyZXN1bHQuZGF0YS5kYXRhLnRyYW5z YWN0aW9uX3N0YXR1cyA9PSBxdWVyeVR4blN0YXR1cy5UUkFOU0FDVElPTl9TVEFUVVNfSU5UUkFO UwogICAgICAgICAgICAgfHwgcmVzdWx0LmRhdGEuZGF0YS50cmFuc2FjdGlvbl9zdGF0dXMgPT0g cXVlcnlUeG5TdGF0dXMuVFJBTlNBQ1RJT05fU1RBVFVTX0lORVJST1IpIHsKQEAgLTIwMSw3ICsy MDIsNyBAQCBjbGFzcyBFeGVjdXRlUXVlcnkgewogICAgIHRoaXMubG9hZGluZ1NjcmVlbi5zaG93 KGdldHRleHQoJ1J1bm5pbmcgcXVlcnkuLi4nKSk7CiAKICAgICAkKCcjYnRuLWZsYXNoJykucHJv cCgnZGlzYWJsZWQnLCB0cnVlKTsKLSAgICAkKCcjYnRuLWRvd25sb2FkJykucHJvcCgnZGlzYWJs ZWQnLCB0cnVlKTsKKyAgICB0aGlzLmRpc2FibGVEb3dubG9hZEJ1dHRvbigpOwogCiAgICAgdGhp cy5zcWxTZXJ2ZXJPYmplY3QucXVlcnlfc3RhcnRfdGltZSA9IG5ldyBEYXRlKCk7CiAgICAgaWYg KHR5cGVvZiBzcWxTdGF0ZW1lbnQgPT09ICdvYmplY3QnKSB7CkBAIC0yODEsNiArMjgyLDEwIEBA IGNsYXNzIEV4ZWN1dGVRdWVyeSB7CiAgICAgfQogICB9CiAKKyAgZGlzYWJsZURvd25sb2FkQnV0 dG9uKCkgeworICAgIHRoaXMuc3FsU2VydmVyT2JqZWN0LmVuYWJsZV9kaXNhYmxlX2Rvd25sb2Fk X2J0bih0cnVlKQorICB9CisKICAgZW5hYmxlU1FMRWRpdG9yQnV0dG9ucygpIHsKICAgICB0aGlz LnNxbFNlcnZlck9iamVjdC5kaXNhYmxlX3Rvb2xfYnV0dG9ucyhmYWxzZSk7CiAgIH0KZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3IvcXVlcnlfdG9vbF9hY3Rpb25z LmpzIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9xdWVyeV90b29sX2FjdGlvbnMu anMKaW5kZXggODE5MzcwNThjLi5hM2UxNmJkZmYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3N0 YXRpYy9qcy9zcWxlZGl0b3IvcXVlcnlfdG9vbF9hY3Rpb25zLmpzCisrKyBiL3dlYi9wZ2FkbWlu L3N0YXRpYy9qcy9zcWxlZGl0b3IvcXVlcnlfdG9vbF9hY3Rpb25zLmpzCkBAIC04MSwxMyArODEs NyBAQCBsZXQgcXVlcnlUb29sQWN0aW9ucyA9IHsKICAgfSwKIAogICBkb3dubG9hZDogZnVuY3Rp b24gKHNxbEVkaXRvckNvbnRyb2xsZXIpIHsKLSAgICBsZXQgc3FsUXVlcnkgPSBzcWxFZGl0b3JD b250cm9sbGVyLmdyaWRWaWV3LnF1ZXJ5X3Rvb2xfb2JqLmdldFNlbGVjdGlvbigpOwogCi0gICAg aWYgKCFzcWxRdWVyeSkgewotICAgICAgc3FsUXVlcnkgPSBzcWxFZGl0b3JDb250cm9sbGVyLmdy aWRWaWV3LnF1ZXJ5X3Rvb2xfb2JqLmdldFZhbHVlKCk7Ci0gICAgfQotCi0gICAgaWYgKCFzcWxR dWVyeSkgcmV0dXJuOwogICAgIGxldCBleHRlbnNpb24gPSBzcWxFZGl0b3JDb250cm9sbGVyLnBy ZWZlcmVuY2VzLmNzdl9maWVsZF9zZXBhcmF0b3IgPT09ICcsJyA/ICcuY3N2JzogJy50eHQnOwog ICAgIGxldCBmaWxlbmFtZSA9ICdkYXRhLScgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIGV4dGVu c2lvbjsKIApAQCAtOTUsNyArODksNyBAQCBsZXQgcXVlcnlUb29sQWN0aW9ucyA9IHsKICAgICAg IGZpbGVuYW1lID0gc3FsRWRpdG9yQ29udHJvbGxlci50YWJsZV9uYW1lICsgZXh0ZW5zaW9uOwog ICAgIH0KIAotICAgIHNxbEVkaXRvckNvbnRyb2xsZXIudHJpZ2dlcl9jc3ZfZG93bmxvYWQoc3Fs UXVlcnksIGZpbGVuYW1lKTsKKyAgICBzcWxFZGl0b3JDb250cm9sbGVyLnRyaWdnZXJfY3N2X2Rv d25sb2FkKGZpbGVuYW1lKTsKICAgfSwKIAogICBjb21tZW50QmxvY2tDb2RlOiBmdW5jdGlvbiAo c3FsRWRpdG9yQ29udHJvbGxlcikgewpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pz L3NxbGVkaXRvci9xdWVyeV90b29sX3ByZWZlcmVuY2VzLmpzIGIvd2ViL3BnYWRtaW4vc3RhdGlj L2pzL3NxbGVkaXRvci9xdWVyeV90b29sX3ByZWZlcmVuY2VzLmpzCmluZGV4IGJhNGU3Yzg4Mi4u ZTJkNGE2NWNhIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL3F1 ZXJ5X3Rvb2xfcHJlZmVyZW5jZXMuanMKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVk aXRvci9xdWVyeV90b29sX3ByZWZlcmVuY2VzLmpzCkBAIC0xMTIsMTEgKzExMiwxMSBAQCBmdW5j dGlvbiB1cGRhdGVVSVByZWZlcmVuY2VzKHNxbEVkaXRvcikgewogICAgIC5hdHRyKCdhcmlhLWxh YmVsJywKICAgICAgIHNob3J0Y3V0X3RpdGxlKGdldHRleHQoJ0V4cGxhaW4gQW5hbHl6ZScpLHBy ZWZlcmVuY2VzLmV4cGxhaW5fYW5hbHl6ZV9xdWVyeSkpOwogCi0gICRlbC5maW5kKCcjYnRuLWRv d25sb2FkJykKKyAgJGVsLmZpbmQoJyNidG4tc2F2ZS1yZXN1bHRzLXRvLWZpbGUnKQogICAgIC5h dHRyKCd0aXRsZScsCi0gICAgICBzaG9ydGN1dF90aXRsZShnZXR0ZXh0KCdEb3dubG9hZCBhcyBD U1YvVFhUJykscHJlZmVyZW5jZXMuZG93bmxvYWRfY3N2KSkKKyAgICAgIHNob3J0Y3V0X3RpdGxl KGdldHRleHQoJ1NhdmUgcmVzdWx0cyB0byBmaWxlIGFzIENTVi9UWFQnKSxwcmVmZXJlbmNlcy5k b3dubG9hZF9jc3YpKQogICAgIC5hdHRyKCdhcmlhLWxhYmVsJywKLSAgICAgIHNob3J0Y3V0X3Rp dGxlKGdldHRleHQoJ0Rvd25sb2FkIGFzIENTVi9UWFQnKSxwcmVmZXJlbmNlcy5kb3dubG9hZF9j c3YpKTsKKyAgICAgIHNob3J0Y3V0X3RpdGxlKGdldHRleHQoJ1NhdmUgcmVzdWx0cyB0byBmaWxl IGFzIENTVi9UWFQnKSxwcmVmZXJlbmNlcy5kb3dubG9hZF9jc3YpKTsKIAogICAkZWwuZmluZCgn I2J0bi1zYXZlLWRhdGEnKQogICAgIC5hdHRyKCd0aXRsZScsCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi90b29scy9kYXRhZ3JpZC90ZW1wbGF0ZXMvZGF0YWdyaWQvaW5kZXguaHRtbCBiL3dlYi9w Z2FkbWluL3Rvb2xzL2RhdGFncmlkL3RlbXBsYXRlcy9kYXRhZ3JpZC9pbmRleC5odG1sCmluZGV4 IGNiZWU5ODIyMi4uZDlkMGQyMjU0IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9kYXRh Z3JpZC90ZW1wbGF0ZXMvZGF0YWdyaWQvaW5kZXguaHRtbAorKysgYi93ZWIvcGdhZG1pbi90b29s cy9kYXRhZ3JpZC90ZW1wbGF0ZXMvZGF0YWdyaWQvaW5kZXguaHRtbApAQCAtMzc0LDkgKzM3NCw5 IEBACiAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAg ICAgPGRpdiBjbGFzcz0iYnRuLWdyb3VwIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iIj4KLSAg ICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZG93bmxvYWQiIHR5cGU9ImJ1dHRvbiIgY2xh c3M9ImJ0biBidG4tc20gYnRuLXByaW1hcnktaWNvbiIKKyAgICAgICAgICAgICAgICA8YnV0dG9u IGlkPSJidG4tc2F2ZS1yZXN1bHRzLXRvLWZpbGUiIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBi dG4tc20gYnRuLXByaW1hcnktaWNvbiIKICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSIi Ci0gICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD0iMCI+CisgICAgICAgICAgICAgICAg ICAgICAgICB0YWJpbmRleD0iMCIgZGlzYWJsZWQ+CiAgICAgICAgICAgICAgICAgICAgIDxpIGNs YXNzPSJmYSBmYS1kb3dubG9hZCBzcWwtaWNvbi1sZyIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9 ImltZyI+PC9pPgogICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgPC9kaXY+ CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvX19pbml0X18ucHkgYi93 ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvX19pbml0X18ucHkKaW5kZXggMDc4NGM1NDY4Li5h OWY1NjI3YzYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9fX2luaXRf Xy5weQorKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvX19pbml0X18ucHkKQEAgLTEz MzYsNyArMTMzNiw3IEBAIGRlZiBzdGFydF9xdWVyeV9kb3dubG9hZF90b29sKHRyYW5zX2lkKToK ICAgICAgICAgKQogCiAgICAgZGF0YSA9IHJlcXVlc3QudmFsdWVzIGlmIHJlcXVlc3QudmFsdWVz IGVsc2UgTm9uZQotICAgIGlmIGRhdGEgaXMgTm9uZSBvciAoZGF0YSBhbmQgJ3F1ZXJ5JyBub3Qg aW4gZGF0YSk6CisgICAgaWYgZGF0YSBpcyBOb25lOgogICAgICAgICByZXR1cm4gbWFrZV9qc29u X3Jlc3BvbnNlKAogICAgICAgICAgICAgc3RhdHVzPTQxMCwKICAgICAgICAgICAgIHN1Y2Nlc3M9 MCwKQEAgLTEzNDYsMTIgKzEzNDYsOSBAQCBkZWYgc3RhcnRfcXVlcnlfZG93bmxvYWRfdG9vbCh0 cmFuc19pZCk6CiAgICAgICAgICkKIAogICAgIHRyeToKLSAgICAgICAgc3FsID0gZGF0YVsncXVl cnknXQogCiAgICAgICAgICMgVGhpcyByZXR1cm5zIGdlbmVyYXRvciBvZiByZWNvcmRzLgotICAg ICAgICBzdGF0dXMsIGdlbiA9IHN5bmNfY29ubi5leGVjdXRlX29uX3NlcnZlcl9hc19jc3YoCi0g ICAgICAgICAgICBzcWwsIHJlY29yZHM9MjAwMAotICAgICAgICApCisgICAgICAgIHN0YXR1cywg Z2VuID0gc3luY19jb25uLmV4ZWN1dGVfb25fc2VydmVyX2FzX2NzdihyZWNvcmRzPTIwMDApCiAK ICAgICAgICAgaWYgbm90IHN0YXR1czoKICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVz cG9uc2UoCkBAIC0xMzYyLDYgKzEzNTksNyBAQCBkZWYgc3RhcnRfcXVlcnlfZG93bmxvYWRfdG9v bCh0cmFuc19pZCk6CiAKICAgICAgICAgciA9IFJlc3BvbnNlKAogICAgICAgICAgICAgZ2VuKAor ICAgICAgICAgICAgICAgIHRyYW5zX29iaiwKICAgICAgICAgICAgICAgICBxdW90ZT1ibHVlcHJp bnQuY3N2X3F1b3RpbmcuZ2V0KCksCiAgICAgICAgICAgICAgICAgcXVvdGVfY2hhcj1ibHVlcHJp bnQuY3N2X3F1b3RlX2NoYXIuZ2V0KCksCiAgICAgICAgICAgICAgICAgZmllbGRfc2VwYXJhdG9y PWJsdWVwcmludC5jc3ZfZmllbGRfc2VwYXJhdG9yLmdldCgpLApkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9zcWxlZGl0b3IuanMgYi93ZWIvcGdhZG1p bi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL3NxbGVkaXRvci5qcwppbmRleCAwMDc5MWZiMmMu LjJmMGIyYzk5MiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRp Yy9qcy9zcWxlZGl0b3IuanMKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRp Yy9qcy9zcWxlZGl0b3IuanMKQEAgLTEzNiw3ICsxMzYsNyBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5 dG9vbCcsIFsKICAgICAgICdjbGljayAjYnRuLWZsYXNoJzogJ29uX2ZsYXNoJywKICAgICAgICdj bGljayAjYnRuLWZsYXNoLW1lbnUnOiAnb25fZmxhc2gnLAogICAgICAgJ2NsaWNrICNidG4tY2Fu Y2VsLXF1ZXJ5JzogJ29uX2NhbmNlbF9xdWVyeScsCi0gICAgICAnY2xpY2sgI2J0bi1kb3dubG9h ZCc6ICdvbl9kb3dubG9hZCcsCisgICAgICAnY2xpY2sgI2J0bi1zYXZlLXJlc3VsdHMtdG8tZmls ZSc6ICdvbl9kb3dubG9hZCcsCiAgICAgICAnY2xpY2sgI2J0bi1jbGVhcic6ICdvbl9jbGVhcics CiAgICAgICAnY2xpY2sgI2J0bi1hdXRvLWNvbW1pdCc6ICdvbl9hdXRvX2NvbW1pdCcsCiAgICAg ICAnY2xpY2sgI2J0bi1hdXRvLXJvbGxiYWNrJzogJ29uX2F1dG9fcm9sbGJhY2snLApAQCAtMTM1 OCw3ICsxMzU4LDcgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICAgICBzZWxmLmhh bmRsZXIuZmV0Y2hpbmdfcm93cyA9IHRydWU7CiAKICAgICAgICQoJyNidG4tZmxhc2gnKS5wcm9w KCdkaXNhYmxlZCcsIHRydWUpOwotICAgICAgJCgnI2J0bi1kb3dubG9hZCcpLnByb3AoJ2Rpc2Fi bGVkJywgdHJ1ZSk7CisgICAgICBzZWxmLmVuYWJsZV9kaXNhYmxlX2Rvd25sb2FkX2J0bih0cnVl KTsKIAogICAgICAgaWYgKGZldGNoX2FsbCkgewogICAgICAgICBzZWxmLmhhbmRsZXIudHJpZ2dl cigKQEAgLTEzODIsNyArMTM4Miw3IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAg ICAgICAuZG9uZShmdW5jdGlvbihyZXMpIHsKICAgICAgICAgICBzZWxmLmhhbmRsZXIuaGFzX21v cmVfcm93cyA9IHJlcy5kYXRhLmhhc19tb3JlX3Jvd3M7CiAgICAgICAgICAgJCgnI2J0bi1mbGFz aCcpLnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpOwotICAgICAgICAgICQoJyNidG4tZG93bmxvYWQn KS5wcm9wKCdkaXNhYmxlZCcsIGZhbHNlKTsKKyAgICAgICAgICBzZWxmLmVuYWJsZV9kaXNhYmxl X2Rvd25sb2FkX2J0bihmYWxzZSk7CiAgICAgICAgICAgc2VsZi5oYW5kbGVyLnRyaWdnZXIoJ3Bn YWRtaW4tc3FsZWRpdG9yOmxvYWRpbmctaWNvbjpoaWRlJyk7CiAgICAgICAgICAgc2VsZi51cGRh dGVfZ3JpZF9kYXRhKHJlcy5kYXRhLnJlc3VsdCk7CiAgICAgICAgICAgc2VsZi5oYW5kbGVyLmZl dGNoaW5nX3Jvd3MgPSBmYWxzZTsKQEAgLTEzOTIsNyArMTM5Miw3IEBAIGRlZmluZSgndG9vbHMu cXVlcnl0b29sJywgWwogICAgICAgICB9KQogICAgICAgICAuZmFpbChmdW5jdGlvbihlKSB7CiAg ICAgICAgICAgJCgnI2J0bi1mbGFzaCcpLnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpOwotICAgICAg ICAgICQoJyNidG4tZG93bmxvYWQnKS5wcm9wKCdkaXNhYmxlZCcsIGZhbHNlKTsKKyAgICAgICAg ICBzZWxmLmVuYWJsZV9kaXNhYmxlX2Rvd25sb2FkX2J0bihmYWxzZSk7CiAgICAgICAgICAgc2Vs Zi5oYW5kbGVyLnRyaWdnZXIoJ3BnYWRtaW4tc3FsZWRpdG9yOmxvYWRpbmctaWNvbjpoaWRlJyk7 CiAgICAgICAgICAgc2VsZi5oYW5kbGVyLmhhc19tb3JlX3Jvd3MgPSBmYWxzZTsKICAgICAgICAg ICBzZWxmLmhhbmRsZXIuZmV0Y2hpbmdfcm93cyA9IGZhbHNlOwpAQCAtMjUzNCw2ICsyNTM0LDcg QEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICAgICAgIHNlbGYuc2VydmVyX3R5cGUg PSB1cmxfcGFyYW1zLnNlcnZlcl90eXBlOwogICAgICAgICBzZWxmLnVybF9wYXJhbXMgPSB1cmxf cGFyYW1zOwogICAgICAgICBzZWxmLmlzX3RyYW5zYWN0aW9uX2J1dHRvbnNfZGlzYWJsZWQgPSB0 cnVlOworICAgICAgICBzZWxmLmlzX3NhdmVfcmVzdWx0c190b19maWxlX2Rpc2FibGVkID0gdHJ1 ZTsKIAogICAgICAgICAvLyBXZSBkbyBub3QgYWxsb3cgdG8gY2FsbCB0aGUgc3RhcnQgbXVsdGlw bGUgdGltZXMuCiAgICAgICAgIGlmIChzZWxmLmdyaWRWaWV3KQpAQCAtMjc4Myw3ICsyNzg0LDcg QEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICAgICAgICk7CiAKICAgICAgICAgJCgn I2J0bi1mbGFzaCcpLnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSk7Ci0gICAgICAgICQoJyNidG4tZG93 bmxvYWQnKS5wcm9wKCdkaXNhYmxlZCcsIHRydWUpOworICAgICAgICBzZWxmLmVuYWJsZV9kaXNh YmxlX2Rvd25sb2FkX2J0bih0cnVlKTsKIAogICAgICAgICBzZWxmLnRyaWdnZXIoCiAgICAgICAg ICAgJ3BnYWRtaW4tc3FsZWRpdG9yOmxvYWRpbmctaWNvbjptZXNzYWdlJywKQEAgLTMwNTgsNyAr MzA1OSwxMiBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgICAgICAgIC8vIEhp ZGUgdGhlIGxvYWRpbmcgaWNvbgogICAgICAgICAgICAgc2VsZl9jb2wudHJpZ2dlcigncGdhZG1p bi1zcWxlZGl0b3I6bG9hZGluZy1pY29uOmhpZGUnKTsKICAgICAgICAgICAgICQoJyNidG4tZmxh c2gnKS5wcm9wKCdkaXNhYmxlZCcsIGZhbHNlKTsKLSAgICAgICAgICAgICQoJyNidG4tZG93bmxv YWQnKS5wcm9wKCdkaXNhYmxlZCcsIGZhbHNlKTsKKyAgICAgICAgICAgIGlmICghXy5pc1VuZGVm aW5lZChkYXRhKSAmJiBBcnJheS5pc0FycmF5KGRhdGEucmVzdWx0KSAmJiBkYXRhLnJlc3VsdC5s ZW5ndGggPiAwKSB7CisgICAgICAgICAgICAgIHNlbGYuZW5hYmxlX2Rpc2FibGVfZG93bmxvYWRf YnRuKGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAg ICAgICBzZWxmLmVuYWJsZV9kaXNhYmxlX2Rvd25sb2FkX2J0bih0cnVlKTsKKyAgICAgICAgICAg IH0KICAgICAgICAgICB9LmJpbmQoc2VsZikKICAgICAgICAgKTsKICAgICAgIH0sCkBAIC0zMjM5 LDcgKzMyNDUsNiBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKIAogICAgICAgICBpZiAo c3RhdHVzICE9ICdCdXN5JykgewogICAgICAgICAgICQoJyNidG4tZmxhc2gnKS5wcm9wKCdkaXNh YmxlZCcsIGZhbHNlKTsKLSAgICAgICAgICAkKCcjYnRuLWRvd25sb2FkJykucHJvcCgnZGlzYWJs ZWQnLCBmYWxzZSk7CiAgICAgICAgICAgc2VsZi50cmlnZ2VyKCdwZ2FkbWluLXNxbGVkaXRvcjps b2FkaW5nLWljb246aGlkZScpOwogCiAgICAgICAgICAgaWYoIXNlbGYudG90YWxfdGltZSkgewpA QCAtMzMwMSw2ICszMzA2LDEyIEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgICAg ICByZXR1cm4gKHNlbGYuZ2V0KCdjYW5fZWRpdCcpKTsKICAgICAgIH0sCiAKKyAgICAgIGVuYWJs ZV9kaXNhYmxlX2Rvd25sb2FkX2J0bjogZnVuY3Rpb24oaXNfc2F2ZV9yZXN1bHRzX3RvX2ZpbGVf ZGlzYWJsZWQpIHsKKyAgICAgICAgdmFyIHNlbGYgPSB0aGlzOworICAgICAgICBzZWxmLmlzX3Nh dmVfcmVzdWx0c190b19maWxlX2Rpc2FibGVkID0gaXNfc2F2ZV9yZXN1bHRzX3RvX2ZpbGVfZGlz YWJsZWQ7CisgICAgICAgICQoJyNidG4tc2F2ZS1yZXN1bHRzLXRvLWZpbGUnKS5wcm9wKCdkaXNh YmxlZCcsIGlzX3NhdmVfcmVzdWx0c190b19maWxlX2Rpc2FibGVkKTsKKyAgICAgIH0sCisKICAg ICAgIHJvd3NfdG9fZGVsZXRlOiBmdW5jdGlvbihkYXRhKSB7CiAgICAgICAgIGxldCBzZWxmID0g dGhpczsKICAgICAgICAgbGV0IHRtcF9rZXlzID0gc2VsZi5wcmltYXJ5X2tleXM7CkBAIC00Mzcx LDcgKzQzODIsNiBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgICAgICAgIGlm KCFfLmlzVW5kZWZpbmVkKHNlbGYuZG93bmxvYWRfY3N2X29iaikpIHsKICAgICAgICAgICAgICAg c2VsZi5kb3dubG9hZF9jc3Zfb2JqLmFib3J0KCk7CiAgICAgICAgICAgICAgICQoJyNidG4tZmxh c2gnKS5wcm9wKCdkaXNhYmxlZCcsIGZhbHNlKTsKLSAgICAgICAgICAgICAgJCgnI2J0bi1kb3du bG9hZCcpLnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpOwogICAgICAgICAgICAgICBzZWxmLnRyaWdn ZXIoCiAgICAgICAgICAgICAgICAgJ3BnYWRtaW4tc3FsZWRpdG9yOmxvYWRpbmctaWNvbjpoaWRl Jyk7CiAgICAgICAgICAgICB9CkBAIC00Mzg5LDE2ICs0Mzk5LDE2IEBAIGRlZmluZSgndG9vbHMu cXVlcnl0b29sJywgWwogICAgICAgfSwKIAogICAgICAgLy8gVHJpZ2dlciBxdWVyeSByZXN1bHQg ZG93bmxvYWQgdG8gY3N2LgotICAgICAgdHJpZ2dlcl9jc3ZfZG93bmxvYWQ6IGZ1bmN0aW9uKHF1 ZXJ5LCBmaWxlbmFtZSkgeworICAgICAgdHJpZ2dlcl9jc3ZfZG93bmxvYWQ6IGZ1bmN0aW9uKGZp bGVuYW1lKSB7CiAgICAgICAgIHZhciBzZWxmID0gdGhpcywKICAgICAgICAgICB1cmwgPSB1cmxf Zm9yKCdzcWxlZGl0b3IucXVlcnlfdG9vbF9kb3dubG9hZCcsIHsKICAgICAgICAgICAgICd0cmFu c19pZCc6IHNlbGYudHJhbnNJZCwKICAgICAgICAgICB9KSwKLSAgICAgICAgICBkYXRhID0geyBx dWVyeTogcXVlcnksIGZpbGVuYW1lOiBmaWxlbmFtZSB9OworICAgICAgICAgIGRhdGEgPSB7IGZp bGVuYW1lOiBmaWxlbmFtZSB9OwogCiAgICAgICAgIC8vIERpc2FibGUgdGhlIEV4ZWN1dGUgYnV0 dG9uCiAgICAgICAgICQoJyNidG4tZmxhc2gnKS5wcm9wKCdkaXNhYmxlZCcsIHRydWUpOwotICAg ICAgICAkKCcjYnRuLWRvd25sb2FkJykucHJvcCgnZGlzYWJsZWQnLCB0cnVlKTsKKyAgICAgICAg c2VsZi5lbmFibGVfZGlzYWJsZV9kb3dubG9hZF9idG4odHJ1ZSk7CiAgICAgICAgIHNlbGYuZGlz YWJsZV90b29sX2J1dHRvbnModHJ1ZSk7CiAgICAgICAgIHNlbGYuc2V0X3NxbF9tZXNzYWdlKCcn KTsKICAgICAgICAgc2VsZi50cmlnZ2VyKApAQCAtNDQ0MywxNCArNDQ1MywxNCBAQCBkZWZpbmUo J3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKIAogICAgICAgICAgIC8vIEVuYWJsZSB0aGUgZXhlY3V0ZSBi dXR0b24KICAgICAgICAgICAkKCcjYnRuLWZsYXNoJykucHJvcCgnZGlzYWJsZWQnLCBmYWxzZSk7 Ci0gICAgICAgICAgJCgnI2J0bi1kb3dubG9hZCcpLnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpOwor ICAgICAgICAgIHNlbGYuZW5hYmxlX2Rpc2FibGVfZG93bmxvYWRfYnRuKGZhbHNlKTsKICAgICAg ICAgICBzZWxmLmRpc2FibGVfdG9vbF9idXR0b25zKGZhbHNlKTsKICAgICAgICAgICBzZWxmLnRy aWdnZXIoJ3BnYWRtaW4tc3FsZWRpdG9yOmxvYWRpbmctaWNvbjpoaWRlJyk7CiAgICAgICAgIH0p LmZhaWwoZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgICAgbGV0IG1zZyA9ICcnOwogICAgICAgICAg IC8vIEVuYWJsZSB0aGUgZXhlY3V0ZSBidXR0b24KICAgICAgICAgICAkKCcjYnRuLWZsYXNoJyku cHJvcCgnZGlzYWJsZWQnLCBmYWxzZSk7Ci0gICAgICAgICAgJCgnI2J0bi1kb3dubG9hZCcpLnBy b3AoJ2Rpc2FibGVkJywgZmFsc2UpOworICAgICAgICAgIHNlbGYuZW5hYmxlX2Rpc2FibGVfZG93 bmxvYWRfYnRuKGZhbHNlKTsKICAgICAgICAgICBzZWxmLmRpc2FibGVfdG9vbF9idXR0b25zKGZh bHNlKTsKICAgICAgICAgICBzZWxmLnRyaWdnZXIoJ3BnYWRtaW4tc3FsZWRpdG9yOmxvYWRpbmct aWNvbjpoaWRlJyk7CiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3lj b3BnMi9jb25uZWN0aW9uLnB5IGIvd2ViL3BnYWRtaW4vdXRpbHMvZHJpdmVyL3BzeWNvcGcyL2Nv bm5lY3Rpb24ucHkKaW5kZXggNGY0MGU2NTJiLi5mN2ViOTU3ZTQgMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL3V0aWxzL2RyaXZlci9wc3ljb3BnMi9jb25uZWN0aW9uLnB5CisrKyBiL3dlYi9wZ2Fk bWluL3V0aWxzL2RyaXZlci9wc3ljb3BnMi9jb25uZWN0aW9uLnB5CkBAIC03MjgsMTAgKzcyOCw4 IEBAIFdIRVJFIGRiLmRhdG5hbWUgPSBjdXJyZW50X2RhdGFiYXNlKCkiIiIpCiAgICAgICAgIGlm IHNlbGYuYXN5bmNfID09IDE6CiAgICAgICAgICAgICBzZWxmLl93YWl0KGN1ci5jb25uZWN0aW9u KQogCi0gICAgZGVmIGV4ZWN1dGVfb25fc2VydmVyX2FzX2NzdihzZWxmLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcXVlcnksIHBhcmFtcz1Ob25lLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkX2V4Y2VwdGlvbl9tc2c9RmFsc2UsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmRzPTIwMDApOgorICAgIGRlZiBleGVjdXRl X29uX3NlcnZlcl9hc19jc3Yoc2VsZiwgcGFyYW1zPU5vbmUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmb3JtYXR0ZWRfZXhjZXB0aW9uX21zZz1GYWxzZSwgcmVjb3Jkcz0yMDAw KToKICAgICAgICAgIiIiCiAgICAgICAgIFRvIGZldGNoIHF1ZXJ5IHJlc3VsdCBhbmQgZ2VuZXJh dGUgQ1NWIG91dHB1dAogCkBAIC03NDMsMzkgKzc0MSwzNiBAQCBXSEVSRSBkYi5kYXRuYW1lID0g Y3VycmVudF9kYXRhYmFzZSgpIiIiKQogICAgICAgICBSZXR1cm5zOgogICAgICAgICAgICAgR2Vu ZXJhdG9yIHJlc3BvbnNlCiAgICAgICAgICIiIgotICAgICAgICBzdGF0dXMsIGN1ciA9IHNlbGYu X19jdXJzb3IoKQotICAgICAgICBzZWxmLnJvd19jb3VudCA9IDAKKyAgICAgICAgY3VyID0gc2Vs Zi5fX2FzeW5jX2N1cnNvcgorICAgICAgICBpZiBub3QgY3VyOgorICAgICAgICAgICAgcmV0dXJu IEZhbHNlLCBzZWxmLkNVUlNPUl9OT1RfRk9VTkQKIAotICAgICAgICBpZiBub3Qgc3RhdHVzOgot ICAgICAgICAgICAgcmV0dXJuIEZhbHNlLCBzdHIoY3VyKQotICAgICAgICBxdWVyeV9pZCA9IHJh bmRvbS5yYW5kaW50KDEsIDk5OTk5OTkpCisgICAgICAgIGlmIHNlbGYuY29ubi5pc2V4ZWN1dGlu ZygpOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlLCBnZXR0ZXh0KAorICAgICAgICAgICAgICAg ICJBc3luY2hyb25vdXMgcXVlcnkgZXhlY3V0aW9uL29wZXJhdGlvbiB1bmRlcndheS4iCisgICAg ICAgICAgICApCiAKICAgICAgICAgY3VycmVudF9hcHAubG9nZ2VyLmxvZygKICAgICAgICAgICAg IDI1LAogICAgICAgICAgICAgIkV4ZWN1dGUgKHdpdGggc2VydmVyIGN1cnNvcikgZm9yIHNlcnZl ciAje3NlcnZlcl9pZH0gLSAiCi0gICAgICAgICAgICAie2Nvbm5faWR9IChRdWVyeS1pZDoge3F1 ZXJ5X2lkfSk6XG57cXVlcnl9Ii5mb3JtYXQoCi0gICAgICAgICAgICAgICAgc2VydmVyX2lkPXNl bGYubWFuYWdlci5zaWQsCi0gICAgICAgICAgICAgICAgY29ubl9pZD1zZWxmLmNvbm5faWQsCi0g ICAgICAgICAgICAgICAgcXVlcnk9cXVlcnksCi0gICAgICAgICAgICAgICAgcXVlcnlfaWQ9cXVl cnlfaWQKLSAgICAgICAgICAgICkKKyAgICAgICAgICAgICJ7Y29ubl9pZH0iLmZvcm1hdChzZXJ2 ZXJfaWQ9c2VsZi5tYW5hZ2VyLnNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25uX2lkPXNlbGYuY29ubl9pZCkKICAgICAgICAgKQogICAgICAgICB0cnk6CiAgICAgICAgICAg ICAjIFVucmVnaXN0ZXJpbmcgdHlwZSBjYXN0aW5nIGZvciBsYXJnZSBzaXplIGRhdGEgdHlwZXMu CiAgICAgICAgICAgICB1bnJlZ2lzdGVyX251bWVyaWNfdHlwZWNhc3RlcnMoc2VsZi5jb25uKQot ICAgICAgICAgICAgc2VsZi5fX2ludGVybmFsX2Jsb2NraW5nX2V4ZWN1dGUoY3VyLCBxdWVyeSwg cGFyYW1zKQorICAgICAgICAgICAgaWYgc2VsZi5hc3luY18gPT0gMToKKyAgICAgICAgICAgICAg ICBzZWxmLl93YWl0KGN1ci5jb25uZWN0aW9uKQogICAgICAgICBleGNlcHQgcHN5Y29wZzIuRXJy b3IgYXMgcGU6CiAgICAgICAgICAgICBjdXIuY2xvc2UoKQogICAgICAgICAgICAgZXJybXNnID0g c2VsZi5fZm9ybWF0dGVkX2V4Y2VwdGlvbl9tc2cocGUsIGZvcm1hdHRlZF9leGNlcHRpb25fbXNn KQogICAgICAgICAgICAgY3VycmVudF9hcHAubG9nZ2VyLmVycm9yKAogICAgICAgICAgICAgICAg ICJmYWlsZWQgdG8gZXhlY3V0ZSBxdWVyeSAoKHdpdGggc2VydmVyIGN1cnNvcikgIgogICAgICAg ICAgICAgICAgICJmb3IgdGhlIHNlcnZlciAje3NlcnZlcl9pZH0gLSB7Y29ubl9pZH0gIgotICAg ICAgICAgICAgICAgICIocXVlcnktaWQ6IHtxdWVyeV9pZH0pOlxuIgotICAgICAgICAgICAgICAg ICJlcnJvciBtZXNzYWdlOntlcnJtc2d9Ii5mb3JtYXQoCisgICAgICAgICAgICAgICAgIlxuZXJy b3IgbWVzc2FnZTp7ZXJybXNnfSIuZm9ybWF0KAogICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJf aWQ9c2VsZi5tYW5hZ2VyLnNpZCwKICAgICAgICAgICAgICAgICAgICAgY29ubl9pZD1zZWxmLmNv bm5faWQsCiAgICAgICAgICAgICAgICAgICAgIGVycm1zZz1lcnJtc2csCi0gICAgICAgICAgICAg ICAgICAgIHF1ZXJ5X2lkPXF1ZXJ5X2lkCiAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAg KQogICAgICAgICAgICAgcmV0dXJuIEZhbHNlLCBlcnJtc2cKQEAgLTgwOSwxMyArODA0LDEyIEBA IFdIRVJFIGRiLmRhdG5hbWUgPSBjdXJyZW50X2RhdGFiYXNlKCkiIiIpCiAKICAgICAgICAgICAg IHJldHVybiByZXN1bHRzCiAKLSAgICAgICAgZGVmIGdlbihxdW90ZT0nc3RyaW5ncycsIHF1b3Rl X2NoYXI9IiciLCBmaWVsZF9zZXBhcmF0b3I9JywnLAotICAgICAgICAgICAgICAgIHJlcGxhY2Vf bnVsbHNfd2l0aD1Ob25lKToKKyAgICAgICAgZGVmIGdlbih0cmFuc19vYmosIHF1b3RlPSdzdHJp bmdzJywgcXVvdGVfY2hhcj0iJyIsCisgICAgICAgICAgICAgICAgZmllbGRfc2VwYXJhdG9yPScs JywgcmVwbGFjZV9udWxsc193aXRoPU5vbmUpOgogCisgICAgICAgICAgICBjdXIuc2Nyb2xsKDAs IG1vZGU9J2Fic29sdXRlJykKICAgICAgICAgICAgIHJlc3VsdHMgPSBjdXIuZmV0Y2htYW55KHJl Y29yZHMpCiAgICAgICAgICAgICBpZiBub3QgcmVzdWx0czoKLSAgICAgICAgICAgICAgICBpZiBu b3QgY3VyLmNsb3NlZDoKLSAgICAgICAgICAgICAgICAgICAgY3VyLmNsb3NlKCkKICAgICAgICAg ICAgICAgICB5aWVsZCBnZXR0ZXh0KCdUaGUgcXVlcnkgZXhlY3V0ZWQgZGlkIG5vdCByZXR1cm4g YW55IGRhdGEuJykKICAgICAgICAgICAgICAgICByZXR1cm4KIApAQCAtODU3LDggKzg1MSw2IEBA IFdIRVJFIGRiLmRhdG5hbWUgPSBjdXJyZW50X2RhdGFiYXNlKCkiIiIpCiAgICAgICAgICAgICAg ICAgcmVzdWx0cyA9IGN1ci5mZXRjaG1hbnkocmVjb3JkcykKIAogICAgICAgICAgICAgICAgIGlm IG5vdCByZXN1bHRzOgotICAgICAgICAgICAgICAgICAgICBpZiBub3QgY3VyLmNsb3NlZDoKLSAg ICAgICAgICAgICAgICAgICAgICAgIGN1ci5jbG9zZSgpCiAgICAgICAgICAgICAgICAgICAgIGJy ZWFrCiAgICAgICAgICAgICAgICAgcmVzX2lvID0gU3RyaW5nSU8oKQogCkBAIC04NzQsOSArODY2 LDIxIEBAIFdIRVJFIGRiLmRhdG5hbWUgPSBjdXJyZW50X2RhdGFiYXNlKCkiIiIpCiAgICAgICAg ICAgICAgICAgICAgIHJlc3VsdHMgPSBoYW5kbGVfbnVsbF92YWx1ZXMocmVzdWx0cywgcmVwbGFj ZV9udWxsc193aXRoKQogICAgICAgICAgICAgICAgIGNzdl93cml0ZXIud3JpdGVyb3dzKHJlc3Vs dHMpCiAgICAgICAgICAgICAgICAgeWllbGQgcmVzX2lvLmdldHZhbHVlKCkKKworICAgICAgICAg ICAgdHJ5OgorICAgICAgICAgICAgICAgICMgdHJ5IHRvIHJlc2V0IHRoZSBjdXJzb3Igc2Nyb2xs IGJhY2sgdG8gd2hlcmUgaXQgd2FzLAorICAgICAgICAgICAgICAgICMgYnlwYXNzIGVycm9yLCBp ZiBjYW5ub3Qgc2Nyb2xsIGJhY2sKKyAgICAgICAgICAgICAgICByb3dzX2ZldGNoZWRfZnJvbSA9 IHRyYW5zX29iai5nZXRfZmV0Y2hlZF9yb3dfY250KCkKKyAgICAgICAgICAgICAgICBjdXIuc2Ny b2xsKHJvd3NfZmV0Y2hlZF9mcm9tLCBtb2RlPSdhYnNvbHV0ZScpCisgICAgICAgICAgICBleGNl cHQgcHN5Y29wZzIuRXJyb3I6CisgICAgICAgICAgICAgICAgIyBieXBhc3NpbmcgdGhlIGVycm9y IGFzIGN1cnNvciB0cmllZCB0byBzY3JvbGwgb24gdGhlIHNwZWNpZmllZAorICAgICAgICAgICAg ICAgICMgcG9zaXRpb24sIGJ1dCBlbmQgb2YgcmVjb3JkcyBmb3VuZAorICAgICAgICAgICAgICAg IHBhc3MKKwogICAgICAgICAjIFJlZ2lzdGVyaW5nIGJhY2sgdHlwZSBjYXN0ZXIgZm9yIGxhcmdl IHNpemUgZGF0YSB0eXBlcyB0byBzdHJpbmcKICAgICAgICAgIyB3aGljaCB3YXMgdW5yZWdpc3Rl cmVkIGF0IHN0YXJ0aW5nCiAgICAgICAgIHJlZ2lzdGVyX3N0cmluZ190eXBlY2FzdGVycyhzZWxm LmNvbm4pCisgICAgICAgICMgc2VsZi5jb25uLmF1dG9jb21taXQgPSBGYWxzZQogICAgICAgICBy ZXR1cm4gVHJ1ZSwgZ2VuCiAKICAgICBkZWYgZXhlY3V0ZV9zY2FsYXIoc2VsZiwgcXVlcnksIHBh cmFtcz1Ob25lLApAQCAtMTIyNCw2ICsxMjI4LDcgQEAgV0hFUkUgZGIuZGF0bmFtZSA9IGN1cnJl bnRfZGF0YWJhc2UoKSIiIikKICAgICAgICAgQXJnczoKICAgICAgICAgICByZWNvcmRzOiBubyBv ZiByZWNvcmRzIHRvIGZldGNoLiB1c2UgLTEgdG8gZmV0Y2hhbGwuCiAgICAgICAgICAgZm9ybWF0 dGVkX2V4Y2VwdGlvbl9tc2c6CisgICAgICAgICAgZm9yX2Rvd25sb2FkOiBpZiBUcnVlLCB3aWxs IGZldGNoIGFsbCByZWNvcmRzIGFuZCByZXNldCB0aGUgY3Vyc29yCiAKICAgICAgICAgUmV0dXJu czoKIApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdXRpbHMvZHJpdmVyL3BzeWNvcGcyL2N1cnNv ci5weSBiL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3ljb3BnMi9jdXJzb3IucHkKaW5kZXgg ODJlYzNkNTkyLi5iNzQwNzUwYjYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZl ci9wc3ljb3BnMi9jdXJzb3IucHkKKysrIGIvd2ViL3BnYWRtaW4vdXRpbHMvZHJpdmVyL3BzeWNv cGcyL2N1cnNvci5weQpAQCAtMjI4LDYgKzIyOCwxMyBAQCBjbGFzcyBEaWN0Q3Vyc29yKF9jdXJz b3IpOgogICAgICAgICBpZiB0dXBsZXMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICByZXR1cm4g W3NlbGYuX2RpY3RfdHVwbGUodCkgZm9yIHQgaW4gdHVwbGVzXQogCisgICAgZGVmIHJvbGxiYWNr KHNlbGYpOgorICAgICAgICAiIiIKKworICAgICAgICA6cmV0dXJuOgorICAgICAgICAiIiIKKyAg ICAgICAgX2N1cnNvci5yb2xsYmFjaygpCisKICAgICBkZWYgX19pdGVyX18oc2VsZik6CiAgICAg ICAgIGl0ID0gX2N1cnNvci5fX2l0ZXJfXyhzZWxmKQogICAgICAgICB0cnk6Cg== --000000000000876d8805b5dc6999--