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 1kKgKF-0005Qm-EB for pgadmin-hackers@arkaria.postgresql.org; Tue, 22 Sep 2020 11:19:11 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kKgKD-0003cn-1i for pgadmin-hackers@arkaria.postgresql.org; Tue, 22 Sep 2020 11:19:09 +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 1kKgKC-0003bk-M8 for pgadmin-hackers@lists.postgresql.org; Tue, 22 Sep 2020 11:19:08 +0000 Received: from mail-ed1-x531.google.com ([2a00:1450:4864:20::531]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1kKgK8-0000Wd-0a for pgadmin-hackers@postgresql.org; Tue, 22 Sep 2020 11:19:07 +0000 Received: by mail-ed1-x531.google.com with SMTP id w1so15823273edr.3 for ; Tue, 22 Sep 2020 04:19:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=I8+czJ/m1QYhji8o4Oj+1dwvYohB1dJ0y4V7KsnI8d8=; b=wIrw5yioG9HYzy9/ZnSnhaCJEKjkhdGZK7CPaoUuNI3azLW6inVESTC4HSb8mqWzEI 7V9Gjx1LpQif7oDobp4CrwWAH7B1kYvb6YUv7cao/I307j8dNyxnOdRJGXMmdtqC7DFK RUUX89pNUnglIyPUiT/T60lDZmA9Cj/fKNHYGV4cP8l6dgQcJXO1cxg0Y9pDielCkZE6 TrrM9qJlQxURxFh/QNpPP7fFXB6qdqX3D/hOrx6lAI0cDMUnqBjOgioQWOXslncJYXhZ Ox2BQ2kUgsLqRQ8nIQ06itZcVaFobAdSxRDn8Rl37pQThJNUrTW+RauMmQAnXcFhszeJ 0RIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=I8+czJ/m1QYhji8o4Oj+1dwvYohB1dJ0y4V7KsnI8d8=; b=cNZ7dJ9vj2PxKxwYzoWqSRgtoKAYjXQr+iZ2YzK3HeKzOFU0vYcL1RwouZqnuZjz8p eDHdyL0Gdj1gnyLn9Mxi20COb3PJMbsmfrrWB1luLzfar/BehbRhzzZGEqWr67bZo8MW j0jVzAoMyAbQQmm3qgNm3bEhqKtRXLY12K8w5WdEjcrQb/drGite2WdnZpjcb17HTzQ0 LfjrPht4WgY9c5syP+8aWyTxFz0A5NhoS7Ak9m1BGzOaq9tiHn4qvgL4y7unraFR8XBY 5+rSde1OzWPpVuohl23XArjAIRBN8FRo27YXXoF7T8c4OHvWA4wgBM65djgdje36PWpO iJtg== X-Gm-Message-State: AOAM531ONd8vprdzyNwVxvfYHdEek5uz5tT9iG73P3otUhLjI4x9WJTL PSwx9sl2mFCFoOb026LiXELfYYpnXKJ2IMuuki9dAXgQEb6MD/C9vzQjsq4kVv2twkWalw6y2VI IcGL7CZn7g4FW1E39R1nfrBCBDekiEN7awzvwJ578v0/tIq02YAeSZPrGIYr1UwhX9+b97ea0Hg +B6367Xv1SRjR4JYeDeFmOSF+j+D18Px2/ncBh2CdJ4lCPGWQaWcyflcNkcA== X-Google-Smtp-Source: ABdhPJz6gNHOt7ieeX6+T4AAGW9h0ILf7UWlFINqrl1uUuEO9g2puFulFi6KTahErmNVeP5J39Yajlq5MyW+7PnpWWc= X-Received: by 2002:a50:ec12:: with SMTP id g18mr3301055edr.309.1600773542449; Tue, 22 Sep 2020 04:19:02 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Aditya Toshniwal Date: Tue, 22 Sep 2020 16:48:26 +0530 Message-ID: Subject: Re: [pgAdmin][SonarQube] Reduce cognitive complexity To: Akshay Joshi Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="0000000000005d4ffc05afe522a7" 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 --0000000000005d4ffc05afe522a7 Content-Type: multipart/alternative; boundary="0000000000005d4ffa05afe522a5" --0000000000005d4ffa05afe522a5 Content-Type: text/plain; charset="UTF-8" Hi, Please find the updated patch. On Tue, Sep 22, 2020 at 2:56 PM Akshay Joshi wrote: > Hi Aditya > > The patch fixes only 1 code smell and introduce 1 new. Please fix those > and resend the patch. > > On Tue, Sep 22, 2020 at 11:04 AM Aditya Toshniwal < > aditya.toshniwal@enterprisedb.com> wrote: > >> Hi Hackers, >> >> Attached path will reduce the cognitive complexity as below:web/pgadmin/misc/file_manager/__init__.py >> 40 to 15; 43 to 15 >> >> Please review. >> >> >> -- >> Thanks, >> Aditya Toshniwal >> pgAdmin hacker | Sr. Software Engineer | *edbpostgres.com* >> >> "Don't Complain about Heat, Plant a TREE" >> > > > -- > *Thanks & Regards* > *Akshay Joshi* > *pgAdmin Hacker | Sr. Software Architect* > *EDB Postgres * > > *Mobile: +91 976-788-8246* > -- Thanks, Aditya Toshniwal pgAdmin hacker | Sr. Software Engineer | *edbpostgres.com* "Don't Complain about Heat, Plant a TREE" --0000000000005d4ffa05afe522a5 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

Please find the updated patch.

On Tue, Sep 22, 20= 20 at 2:56 PM Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:
Hi Aditya

=
The patch fixes only 1 code smell and introduce 1 new. Please fix thos= e and resend the patch.

On Tue, Sep 22, 2020 at 11:04 AM Aditya Toshn= iwal <aditya.toshniwal@enterprisedb.com> wrote:
Hi Hackers,
Attached path will= reduce the cognitive complexity as below:web/pgadmin/misc/file_mana= ger/__init__.py 40 to 15; 43 to 15

Please review= .


--
Thanks,
Aditya Toshniwal<= font size=3D"2" color=3D"#000000" face=3D"verdana, sans-serif">
<= /div>
= pgAdmin hacker=C2=A0| Sr. Software Engineer | edbpostgres.com
"Don't Co= mplain about Heat, Plant a TREE"
=


--
Thank= s & Regards
Akshay Joshi
pgAdmin Hacker | Sr. Software Ar= chitect
EDB Postgres=
Mobile: +91 976-788-8246



--
Thanks,
Aditya Toshniwal
pgAdmin hacker=C2=A0| Sr. Softwa= re Engineer | edbpostgres.com<= /font>
"Don't Complain about Heat, Plant a TREE&qu= ot;
--0000000000005d4ffa05afe522a5-- --0000000000005d4ffc05afe522a7 Content-Type: application/octet-stream; name="sonarqube.filemanagerv2.patch" Content-Disposition: attachment; filename="sonarqube.filemanagerv2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kfdv7n150 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2MvZmlsZV9tYW5hZ2VyL19faW5pdF9fLnB5IGIv d2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvX19pbml0X18ucHkKaW5kZXggOWVkZWRjMWIy Li42YTRmZGY4MTYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL21pc2MvZmlsZV9tYW5hZ2VyL19f aW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL21pc2MvZmlsZV9tYW5hZ2VyL19faW5pdF9fLnB5 CkBAIC05NSw3ICs5NSw4IEBAIGRlZiBpc19mb2xkZXJfaGlkZGVuKGZpbGVwYXRoKToKICAgICAg ICAgZXhjZXB0IChBdHRyaWJ1dGVFcnJvciwgQXNzZXJ0aW9uRXJyb3IpOgogICAgICAgICAgICAg cmVzdWx0ID0gRmFsc2UKICAgICAgICAgcmV0dXJuIHJlc3VsdAotICAgIHJldHVybiBGYWxzZQor ICAgIGVsc2U6CisgICAgICAgIHJldHVybiBvcy5wYXRoLmJhc2VuYW1lKGZpbGVwYXRoKS5zdGFy dHN3aXRoKCcuJykKIAogCiBjbGFzcyBGaWxlTWFuYWdlck1vZHVsZShQZ0FkbWluTW9kdWxlKToK QEAgLTMzOCw2ICszMzksMzUgQEAgY2xhc3MgRmlsZW1hbmFnZXIob2JqZWN0KToKICAgICAgICAg aWYgc2VsZi5kaXIgaXMgbm90IE5vbmUgYW5kIGlzaW5zdGFuY2Uoc2VsZi5kaXIsIGxpc3QpOgog ICAgICAgICAgICAgc2VsZi5kaXIgPSAiIgogCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBn ZXRfY2xvc2VzdF9wYXJlbnQoc3RvcmFnZV9kaXIsIGxhc3RfZGlyKToKKyAgICAgICAgIiIiCisg ICAgICAgIENoZWNrIGlmIHBhdGggZXhpc3RzIGFuZCBpZiBub3QgdGhlbiBnZXQgY2xvc2VzdCBw YXJlbnQgd2hpY2ggZXhpc3RzCisgICAgICAgIDpwYXJhbSBzdG9yYWdlX2RpcjogQmFzZSBkaXIK KyAgICAgICAgOnBhcmFtIGxhc3RfZGlyOiBjaGVjayBkaXIKKyAgICAgICAgOnJldHVybjogZXhp c3QgZGlyCisgICAgICAgICIiIgorICAgICAgICBpZiBsZW4obGFzdF9kaXIpID4gMSBhbmQgXAor ICAgICAgICAgICAgICAgIChsYXN0X2Rpci5lbmRzd2l0aCgnLycpIG9yIGxhc3RfZGlyLmVuZHN3 aXRoKCdcXCcpKToKKyAgICAgICAgICAgIGxhc3RfZGlyID0gbGFzdF9kaXJbOi0xXQorICAgICAg ICB3aGlsZSBsYXN0X2RpcjoKKyAgICAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHN0b3JhZ2Vf ZGlyIG9yICcnICsgbGFzdF9kaXIpOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAg ICBpbmRleCA9IG1heChsYXN0X2Rpci5yZmluZCgnXFwnKSwgbGFzdF9kaXIucmZpbmQoJy8nKSkg XAorICAgICAgICAgICAgICAgIGlmIF9wbGF0Zm9ybSA9PSAnd2luMzInIGVsc2UgbGFzdF9kaXIu cmZpbmQoJy8nKQorICAgICAgICAgICAgbGFzdF9kaXIgPSBsYXN0X2RpclswOmluZGV4XQorCisg ICAgICAgIGlmIF9wbGF0Zm9ybSA9PSAnd2luMzInOgorICAgICAgICAgICAgaWYgbm90IGxhc3Rf ZGlyLmVuZHN3aXRoKCdcXCcpOgorICAgICAgICAgICAgICAgIGxhc3RfZGlyICs9ICJcXCIKKwor ICAgICAgICAgICAgcmV0dXJuIGxhc3RfZGlyCisKKyAgICAgICAgaWYgbm90IGxhc3RfZGlyLmVu ZHN3aXRoKCcvJyk6CisgICAgICAgICAgICBsYXN0X2RpciArPSAiLyIKKworICAgICAgICByZXR1 cm4gbGFzdF9kaXIKKwogICAgIEBzdGF0aWNtZXRob2QKICAgICBkZWYgY3JlYXRlX25ld190cmFu c2FjdGlvbihwYXJhbXMpOgogICAgICAgICAiIiIKQEAgLTM1NywyOSArMzg3LDM4IEBAIGNsYXNz IEZpbGVtYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgICMgSXQgaXMgdXNlZCBpbiB1dGl0bGl0eSBq cyB0byBkZWNpZGUgdG8KICAgICAgICAgIyBzaG93IG9yIGhpZGUgc2VsZWN0IGZpbGUgdHlwZSBv cHRpb25zCiAgICAgICAgIHNob3dfdm9sdW1lcyA9IGlzaW5zdGFuY2Uoc3RvcmFnZV9kaXIsIGxp c3QpIG9yIG5vdCBzdG9yYWdlX2RpcgotICAgICAgICBzdXBwX3R5cGVzID0gYWxsb3dfdXBsb2Fk X2ZpbGVzID0gcGFyYW1zWydzdXBwb3J0ZWRfdHlwZXMnXSBcCi0gICAgICAgICAgICBpZiAnc3Vw cG9ydGVkX3R5cGVzJyBpbiBwYXJhbXMgZWxzZSBbXQotICAgICAgICBpZiBmbV90eXBlID09ICdz ZWxlY3RfZmlsZSc6Ci0gICAgICAgICAgICBjYXBhYmlsaXRpZXMgPSBbJ3NlbGVjdF9maWxlJywg J3JlbmFtZScsICd1cGxvYWQnLCAnY3JlYXRlJ10KLSAgICAgICAgICAgIGZpbGVzX29ubHkgPSBU cnVlCi0gICAgICAgICAgICBmb2xkZXJzX29ubHkgPSBGYWxzZQotICAgICAgICAgICAgdGl0bGUg PSBnZXR0ZXh0KCJTZWxlY3QgRmlsZSIpCi0gICAgICAgIGVsaWYgZm1fdHlwZSA9PSAnc2VsZWN0 X2ZvbGRlcic6Ci0gICAgICAgICAgICBjYXBhYmlsaXRpZXMgPSBbJ3NlbGVjdF9mb2xkZXInLCAn cmVuYW1lJywgJ2NyZWF0ZSddCi0gICAgICAgICAgICBmaWxlc19vbmx5ID0gRmFsc2UKLSAgICAg ICAgICAgIGZvbGRlcnNfb25seSA9IFRydWUKLSAgICAgICAgICAgIHRpdGxlID0gZ2V0dGV4dCgi U2VsZWN0IEZvbGRlciIpCi0gICAgICAgIGVsaWYgZm1fdHlwZSA9PSAnY3JlYXRlX2ZpbGUnOgot ICAgICAgICAgICAgY2FwYWJpbGl0aWVzID0gWydzZWxlY3RfZmlsZScsICdyZW5hbWUnLCAnY3Jl YXRlJ10KLSAgICAgICAgICAgIGZpbGVzX29ubHkgPSBUcnVlCi0gICAgICAgICAgICBmb2xkZXJz X29ubHkgPSBGYWxzZQotICAgICAgICAgICAgdGl0bGUgPSBnZXR0ZXh0KCJDcmVhdGUgRmlsZSIp Ci0gICAgICAgIGVsaWYgZm1fdHlwZSA9PSAnc3RvcmFnZV9kaWFsb2cnOgotICAgICAgICAgICAg Y2FwYWJpbGl0aWVzID0gWydzZWxlY3RfZm9sZGVyJywgJ3NlbGVjdF9maWxlJywgJ2Rvd25sb2Fk JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVuYW1lJywgJ2RlbGV0ZScsICd1cGxv YWQnLCAnY3JlYXRlJ10KLSAgICAgICAgICAgIGZpbGVzX29ubHkgPSBUcnVlCi0gICAgICAgICAg ICBmb2xkZXJzX29ubHkgPSBGYWxzZQotICAgICAgICAgICAgdGl0bGUgPSBnZXR0ZXh0KCJTdG9y YWdlIE1hbmFnZXIiKQorICAgICAgICBzdXBwX3R5cGVzID0gYWxsb3dfdXBsb2FkX2ZpbGVzID0g cGFyYW1zLmdldCgnc3VwcG9ydGVkX3R5cGVzJywgW10pCisKKyAgICAgICAgIyB0dXBsZXMgd2l0 aCAoY2FwYWJpbGl0aWVzLCBmaWxlc19vbmx5LCBmb2xkZXJzX29ubHksIHRpdGxlKQorICAgICAg ICBjYXBhYmlsaXR5X21hcCA9IHsKKyAgICAgICAgICAgICdzZWxlY3RfZmlsZSc6ICgKKyAgICAg ICAgICAgICAgICBbJ3NlbGVjdF9maWxlJywgJ3JlbmFtZScsICd1cGxvYWQnLCAnY3JlYXRlJ10s CisgICAgICAgICAgICAgICAgVHJ1ZSwKKyAgICAgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAg ICAgICAgICBnZXR0ZXh0KCJTZWxlY3QgRmlsZSIpCisgICAgICAgICAgICApLAorICAgICAgICAg ICAgJ3NlbGVjdF9mb2xkZXInOiAoCisgICAgICAgICAgICAgICAgWydzZWxlY3RfZm9sZGVyJywg J3JlbmFtZScsICdjcmVhdGUnXSwKKyAgICAgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAg ICAgICBUcnVlLAorICAgICAgICAgICAgICAgIGdldHRleHQoIlNlbGVjdCBGb2xkZXIiKQorICAg ICAgICAgICAgKSwKKyAgICAgICAgICAgICdjcmVhdGVfZmlsZSc6ICgKKyAgICAgICAgICAgICAg ICBbJ3NlbGVjdF9maWxlJywgJ3JlbmFtZScsICdjcmVhdGUnXSwKKyAgICAgICAgICAgICAgICBU cnVlLAorICAgICAgICAgICAgICAgIEZhbHNlLAorICAgICAgICAgICAgICAgIGdldHRleHQoIkNy ZWF0ZSBGaWxlIikKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAnc3RvcmFnZV9kaWFsb2cn OiAoCisgICAgICAgICAgICAgICAgWydzZWxlY3RfZm9sZGVyJywgJ3NlbGVjdF9maWxlJywgJ2Rv d25sb2FkJywKKyAgICAgICAgICAgICAgICAgJ3JlbmFtZScsICdkZWxldGUnLCAndXBsb2FkJywg J2NyZWF0ZSddLAorICAgICAgICAgICAgICAgIFRydWUsCisgICAgICAgICAgICAgICAgRmFsc2Us CisgICAgICAgICAgICAgICAgZ2V0dGV4dCgiU3RvcmFnZSBNYW5hZ2VyIikKKyAgICAgICAgICAg ICksCisgICAgICAgIH0KKworICAgICAgICBjYXBhYmlsaXRpZXMsIGZpbGVzX29ubHksIGZvbGRl cnNfb25seSwgdGl0bGUgPSBjYXBhYmlsaXR5X21hcFtmbV90eXBlXQogCiAgICAgICAgICMgVXNp bmcgb3MucGF0aC5qb2luIHRvIG1ha2Ugc3VyZSB3ZSBoYXZlIHRyYWlsaW5nICcvJyBvciAnXCcK ICAgICAgICAgaG9tZWRpciA9ICcvJyBpZiAoY29uZmlnLlNFUlZFUl9NT0RFKSBcCkBAIC0zODks NDMgKzQyOCwxNiBAQCBjbGFzcyBGaWxlbWFuYWdlcihvYmplY3QpOgogICAgICAgICAjIG9yZGVy IHRvIGZpbmQgY2xvc2VzdCBwYXJlbnQgZGlyZWN0b3J5CiAgICAgICAgIGxhc3RfZGlyID0gYmx1 ZXByaW50Lmxhc3RfZGlyZWN0b3J5X3Zpc2l0ZWQuZ2V0KCkKICAgICAgICAgY2hlY2tfZGlyX2V4 aXN0cyA9IEZhbHNlCi0gICAgICAgIGlmIHN0b3JhZ2VfZGlyIGlzIE5vbmU6Ci0gICAgICAgICAg ICBpZiBsYXN0X2RpciBpcyBOb25lOgotICAgICAgICAgICAgICAgIGxhc3RfZGlyID0gIi8iCi0g ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGNoZWNrX2Rpcl9leGlzdHMgPSBUcnVl CisgICAgICAgIGlmIGxhc3RfZGlyIGlzIE5vbmU6CisgICAgICAgICAgICBsYXN0X2RpciA9ICIv IgogICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgbGFzdF9kaXIgaXMgbm90IE5vbmU6Ci0g ICAgICAgICAgICAgICAgY2hlY2tfZGlyX2V4aXN0cyA9IFRydWUKLSAgICAgICAgICAgIGVsc2U6 Ci0gICAgICAgICAgICAgICAgbGFzdF9kaXIgPSAiLyIKKyAgICAgICAgICAgIGNoZWNrX2Rpcl9l eGlzdHMgPSBUcnVlCiAKICAgICAgICAgaWYgbm90IGNvbmZpZy5TRVJWRVJfTU9ERSBhbmQgbGFz dF9kaXIgPT0gIi8iIG9yIGxhc3RfZGlyID09ICIvIjoKICAgICAgICAgICAgIGxhc3RfZGlyID0g aG9tZWRpcgogCiAgICAgICAgIGlmIGNoZWNrX2Rpcl9leGlzdHM6Ci0gICAgICAgICAgICBpZiBs ZW4obGFzdF9kaXIpID4gMSBhbmQgXAotICAgICAgICAgICAgICAgICAgICAobGFzdF9kaXIuZW5k c3dpdGgoJy8nKSBvciBsYXN0X2Rpci5lbmRzd2l0aCgnXFwnKSk6Ci0gICAgICAgICAgICAgICAg bGFzdF9kaXIgPSBsYXN0X2Rpcls6LTFdCi0gICAgICAgICAgICB3aGlsZSBsYXN0X2RpcjoKLSAg ICAgICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cygKLSAgICAgICAgICAgICAgICAgICAgICAg IHN0b3JhZ2VfZGlyCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiBzdG9yYWdlX2RpciBpcyBu b3QgTm9uZSBlbHNlICcnICsgbGFzdF9kaXIpOgotICAgICAgICAgICAgICAgICAgICBicmVhawot ICAgICAgICAgICAgICAgIGlmIF9wbGF0Zm9ybSA9PSAnd2luMzInOgotICAgICAgICAgICAgICAg ICAgICBpbmRleCA9IG1heChsYXN0X2Rpci5yZmluZCgnXFwnKSwgbGFzdF9kaXIucmZpbmQoJy8n KSkKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGxh c3RfZGlyLnJmaW5kKCcvJykKLSAgICAgICAgICAgICAgICBsYXN0X2RpciA9IGxhc3RfZGlyWzA6 aW5kZXhdCi0gICAgICAgICAgICBpZiBub3QgbGFzdF9kaXI6Ci0gICAgICAgICAgICAgICAgbGFz dF9kaXIgPSAiLyIKLQotICAgICAgICAgICAgaWYgX3BsYXRmb3JtID09ICd3aW4zMic6Ci0gICAg ICAgICAgICAgICAgaWYgbm90IChsYXN0X2Rpci5lbmRzd2l0aCgnXFwnKSBvciBsYXN0X2Rpci5l bmRzd2l0aCgnLycpKToKLSAgICAgICAgICAgICAgICAgICAgbGFzdF9kaXIgKz0gIlxcIgotICAg ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBpZiBub3QgbGFzdF9kaXIuZW5kc3dpdGgo Jy8nKToKLSAgICAgICAgICAgICAgICAgICAgbGFzdF9kaXIgKz0gIi8iCisgICAgICAgICAgICBs YXN0X2RpciA9IEZpbGVtYW5hZ2VyLmdldF9jbG9zZXN0X3BhcmVudChzdG9yYWdlX2RpciwgbGFz dF9kaXIpCiAKICAgICAgICAgIyBjcmVhdGUgY29uZmlncyB1c2luZyBhYm92ZSBjb25maWdzCiAg ICAgICAgIGNvbmZpZ3MgPSB7CkBAIC01MDIsNyArNTE0LDcgQEAgY2xhc3MgRmlsZW1hbmFnZXIo b2JqZWN0KToKICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZShkYXRhPXsnc3RhdHVz JzogVHJ1ZX0pCiAKICAgICBAc3RhdGljbWV0aG9kCi0gICAgZGVmIF9nZXRfZHJpdmVzKGRyaXZl X25hbWU9Tm9uZSk6CisgICAgZGVmIF9nZXRfZHJpdmVzX3dpdGhfc2l6ZShkcml2ZV9uYW1lPU5v bmUpOgogICAgICAgICAiIiIKICAgICAgICAgVGhpcyBpcyBhIGdlbmVyaWMgZnVuY3Rpb24gd2hp Y2ggcmV0dXJucyB0aGUgZGVmYXVsdCBwYXRoIGZvciBzdG9yYWdlCiAgICAgICAgIG1hbmFnZXIg ZGlhbG9nIGlycmVzcGVjdGl2ZSBvZiBhbnkgUGxhdGZvcm0gdHlwZSB0byBsaXN0IGFsbApAQCAt NTEyLDIxICs1MjQsMjkgQEAgY2xhc3MgRmlsZW1hbmFnZXIob2JqZWN0KToKICAgICAgICAgUGxh dGZvcm0gdW5peDoKICAgICAgICAgaXQgcmV0dXJucyBwYXRoIHRvIHJvb3QgZGlyZWN0b3J5IGlm IG5vIHBhdGggaXMgc3BlY2lmaWVkLgogICAgICAgICAiIiIKKyAgICAgICAgZGVmIF9nZXRfZHJp dmVfc2l6ZShwYXRoKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBkcml2ZV9z aXplID0gZ2V0ZHJpdmVzaXplKHBhdGgpCisgICAgICAgICAgICAgICAgcmV0dXJuIHNpemVvZl9m bXQoZHJpdmVfc2l6ZSkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAg ICAgICAgcmV0dXJuIDAKKwogICAgICAgICBpZiBfcGxhdGZvcm0gPT0gIndpbjMyIjoKICAgICAg ICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBkcml2ZXMgPSBbXQogICAgICAgICAgICAgICAg IGJpdG1hc2sgPSBjdHlwZXMud2luZGxsLmtlcm5lbDMyLkdldExvZ2ljYWxEcml2ZXMoKQogICAg ICAgICAgICAgICAgIGZvciBsZXR0ZXIgaW4gc3RyaW5nLmFzY2lpX3VwcGVyY2FzZToKICAgICAg ICAgICAgICAgICAgICAgaWYgYml0bWFzayAmIDE6Ci0gICAgICAgICAgICAgICAgICAgICAgICBk cml2ZXMuYXBwZW5kKGxldHRlcikKKyAgICAgICAgICAgICAgICAgICAgICAgIGRyaXZlcy5hcHBl bmQoKGxldHRlciwgX2dldF9kcml2ZV9zaXplKGxldHRlcikpKQogICAgICAgICAgICAgICAgICAg ICBiaXRtYXNrID4+PSAxCiAgICAgICAgICAgICAgICAgaWYgKGRyaXZlX25hbWUgIT0gJycgYW5k IGRyaXZlX25hbWUgaXMgbm90IE5vbmUgYW5kCiAgICAgICAgICAgICAgICAgICAgICAgICBkcml2 ZV9uYW1lIGluIGRyaXZlcyk6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAiezB9ezF9Ii5m b3JtYXQoZHJpdmVfbmFtZSwgJzonKQorICAgICAgICAgICAgICAgICAgICBsZXR0ZXIgPSAiezB9 ezF9Ii5mb3JtYXQoZHJpdmVfbmFtZSwgJzonKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4g KGxldHRlciwgX2dldF9kcml2ZV9zaXplKGxldHRlcikpCiAgICAgICAgICAgICAgICAgZWxzZToK ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRyaXZlcyAgIyByZXR1cm4gZHJpdmVzIGlmIG5v IGFyZ3VtZW50IGlzIHBhc3NlZAogICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAg ICAgICAgICAgICByZXR1cm4gWydDOiddCisgICAgICAgICAgICAgICAgcmV0dXJuIFsoJ0M6Jywg X2dldF9kcml2ZV9zaXplKCdDOicpKV0KICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJldHVy biAnLycKIApAQCAtNTQ4LDYgKzU2OCw3OSBAQCBjbGFzcyBGaWxlbWFuYWdlcihvYmplY3QpOgog ICAgICAgICAgICAgIyBSZXN1bWUgd2luZG93cyBlcnJvcgogICAgICAgICAgICAga2VybmVsMzIu U2V0VGhyZWFkRXJyb3JNb2RlKG9sZG1vZGUsIGN0eXBlcy5ieXJlZihvbGRtb2RlKSkKIAorICAg IEBzdGF0aWNtZXRob2QKKyAgICBkZWYgX3NraXBfZmlsZV9leHRlbnNpb24oCisgICAgICAgICAg ICBmaWxlX3R5cGUsIHN1cHBvcnRlZF90eXBlcywgZm9sZGVyc19vbmx5LCBmaWxlX2V4dGVuc2lv bik6CisgICAgICAgICIiIgorICAgICAgICBVc2VkIGludGVybmFsbHkgYnkgZ2V0X2ZpbGVzX2lu X3BhdGggdG8gY2hlY2sgaWYKKyAgICAgICAgdGhlIGZpbGUgZXh0biB0byBiZSBza2lwcGVkCisg ICAgICAgICIiIgorICAgICAgICByZXR1cm4gZmlsZV90eXBlIGlzIG5vdCBOb25lIGFuZCBmaWxl X3R5cGUgIT0gIioiIGFuZCAoCisgICAgICAgICAgICBmb2xkZXJzX29ubHkgb3IgbGVuKHN1cHBv cnRlZF90eXBlcykgPiAwIGFuZAorICAgICAgICAgICAgZmlsZV9leHRlbnNpb24gbm90IGluIHN1 cHBvcnRlZF90eXBlcyBvcgorICAgICAgICAgICAgZmlsZV90eXBlICE9IGZpbGVfZXh0ZW5zaW9u KQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBnZXRfZmlsZXNfaW5fcGF0aCgKKyAgICAg ICAgc2hvd19oaWRkZW5fZmlsZXMsIGZpbGVzX29ubHksIGZvbGRlcnNfb25seSwgc3VwcG9ydGVk X3R5cGVzLAorICAgICAgICAgICAgZmlsZV90eXBlLCB1c2VyX2Rpciwgb3JpZ19wYXRoKToKKyAg ICAgICAgIiIiCisgICAgICAgIEdldCBsaXN0IG9mIGZpbGVzIGFuZCBkaXJzIGluIHRoZSBwYXRo CisgICAgICAgIDpwYXJhbSBzaG93X2hpZGRlbl9maWxlczogYm9vbGVhbgorICAgICAgICA6cGFy YW0gZmlsZXNfb25seTogYm9vbGVhbgorICAgICAgICA6cGFyYW0gZm9sZGVyc19vbmx5OiBib29s ZWFuCisgICAgICAgIDpwYXJhbSBzdXBwb3J0ZWRfdHlwZXM6IGFycmF5IG9mIHN1cHBvcnRlZCB0 eXBlcworICAgICAgICA6cGFyYW0gZmlsZV90eXBlOiBmaWxlIHR5cGUKKyAgICAgICAgOnBhcmFt IHVzZXJfZGlyOiBiYXNlIHVzZXIgZGlyCisgICAgICAgIDpwYXJhbSBvcmlnX3BhdGg6IHBhdGgg YWZ0ZXIgdXNlciBkaXIKKyAgICAgICAgOnJldHVybjoKKyAgICAgICAgIiIiCisgICAgICAgIGZp bGVzID0ge30KKworICAgICAgICBmb3IgZiBpbiBzb3J0ZWQob3MubGlzdGRpcihvcmlnX3BhdGgp KToKKyAgICAgICAgICAgIHN5c3RlbV9wYXRoID0gb3MucGF0aC5qb2luKG9zLnBhdGguam9pbihv cmlnX3BhdGgsIGYpKQorCisgICAgICAgICAgICAjIGNvbnRpbnVlIGlmIGZpbGUvZm9sZGVyIGlz IGhpZGRlbiAoYmFzZWQgb24gdXNlciBwcmVmZXJlbmNlKQorICAgICAgICAgICAgaWYgbm90IHNo b3dfaGlkZGVuX2ZpbGVzIGFuZCBpc19mb2xkZXJfaGlkZGVuKHN5c3RlbV9wYXRoKToKKyAgICAg ICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICB1c2VyX3BhdGggPSBvcy5wYXRoLmpv aW4ob3MucGF0aC5qb2luKHVzZXJfZGlyLCBmKSkKKyAgICAgICAgICAgIGNyZWF0ZWQgPSB0aW1l LmN0aW1lKG9zLnBhdGguZ2V0Y3RpbWUoc3lzdGVtX3BhdGgpKQorICAgICAgICAgICAgbW9kaWZp ZWQgPSB0aW1lLmN0aW1lKG9zLnBhdGguZ2V0bXRpbWUoc3lzdGVtX3BhdGgpKQorICAgICAgICAg ICAgZmlsZV9leHRlbnNpb24gPSBzdHIoc3BsaXRleHQoc3lzdGVtX3BhdGgpKQorCisgICAgICAg ICAgICAjIHNldCBwcm90ZWN0ZWQgdG8gMSBpZiBubyB3cml0ZSBvciByZWFkIHBlcm1pc3Npb24K KyAgICAgICAgICAgIHByb3RlY3RlZCA9IDAKKyAgICAgICAgICAgIGlmIChub3Qgb3MuYWNjZXNz KHN5c3RlbV9wYXRoLCBvcy5SX09LKSBvcgorICAgICAgICAgICAgICAgICAgICBub3Qgb3MuYWNj ZXNzKHN5c3RlbV9wYXRoLCBvcy5XX09LKSk6CisgICAgICAgICAgICAgICAgcHJvdGVjdGVkID0g MQorCisgICAgICAgICAgICAjIGxpc3QgZmlsZXMgb25seSBvciBmb2xkZXJzIG9ubHkKKyAgICAg ICAgICAgIGlmIG9zLnBhdGguaXNkaXIoc3lzdGVtX3BhdGgpOgorICAgICAgICAgICAgICAgIGlm IGZpbGVzX29ubHkgPT0gJ3RydWUnOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAg ICAgICAgICAgICAgIGZpbGVfZXh0ZW5zaW9uID0gImRpciIKKyAgICAgICAgICAgICAgICB1c2Vy X3BhdGggPSAiezB9LyIuZm9ybWF0KHVzZXJfcGF0aCkKKyAgICAgICAgICAgICMgZmlsdGVyIGZp bGVzIGJhc2VkIG9uIGZpbGVfdHlwZQorICAgICAgICAgICAgZWxpZiBGaWxlbWFuYWdlci5fc2tp cF9maWxlX2V4dGVuc2lvbigKKyAgICAgICAgICAgICAgICAgICAgZmlsZV90eXBlLCBzdXBwb3J0 ZWRfdHlwZXMsIGZvbGRlcnNfb25seSwgZmlsZV9leHRlbnNpb24pOgorICAgICAgICAgICAgICAg IGNvbnRpbnVlCisKKyAgICAgICAgICAgICMgY3JlYXRlIGEgbGlzdCBvZiBmaWxlcyBhbmQgZm9s ZGVycworICAgICAgICAgICAgZmlsZXNbZl0gPSB7CisgICAgICAgICAgICAgICAgIkZpbGVuYW1l IjogZiwKKyAgICAgICAgICAgICAgICAiUGF0aCI6IHVzZXJfcGF0aCwKKyAgICAgICAgICAgICAg ICAiZmlsZV90eXBlIjogZmlsZV9leHRlbnNpb24sCisgICAgICAgICAgICAgICAgIlByb3RlY3Rl ZCI6IHByb3RlY3RlZCwKKyAgICAgICAgICAgICAgICAiUHJvcGVydGllcyI6IHsKKyAgICAgICAg ICAgICAgICAgICAgIkRhdGUgQ3JlYXRlZCI6IGNyZWF0ZWQsCisgICAgICAgICAgICAgICAgICAg ICJEYXRlIE1vZGlmaWVkIjogbW9kaWZpZWQsCisgICAgICAgICAgICAgICAgICAgICJTaXplIjog c2l6ZW9mX2ZtdChnZXRzaXplKHN5c3RlbV9wYXRoKSkKKyAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZpbGVzCisKICAgICBAc3RhdGljbWV0aG9kCiAg ICAgZGVmIGxpc3RfZmlsZXN5c3RlbShpbl9kaXIsIHBhdGgsIHRyYW5zX2RhdGEsIGZpbGVfdHlw ZSwgc2hvd19oaWRkZW4pOgogICAgICAgICAiIiIKQEAgLTU3MiwyNSArNjY1LDE4IEBAIGNsYXNz IEZpbGVtYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIGZpbGVzID0ge30KICAgICAgICAgaWYgKF9w bGF0Zm9ybSA9PSAid2luMzIiIGFuZCAocGF0aCA9PSAnLycgb3IgcGF0aCA9PSAnXFwnKSlcCiAg ICAgICAgICAgICAgICAgYW5kIGluX2RpciBpcyBOb25lOgotICAgICAgICAgICAgZHJpdmVzID0g RmlsZW1hbmFnZXIuX2dldF9kcml2ZXMoKQotICAgICAgICAgICAgZm9yIGRyaXZlIGluIGRyaXZl czoKLSAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgPSAwCisgICAgICAgICAgICBkcml2ZXMgPSBG aWxlbWFuYWdlci5fZ2V0X2RyaXZlc193aXRoX3NpemUoKQorICAgICAgICAgICAgZm9yIGRyaXZl LCBkcml2ZV9zaXplIGluIGRyaXZlczoKICAgICAgICAgICAgICAgICBwYXRoID0gZmlsZV9uYW1l ID0gInswfToiLmZvcm1hdChkcml2ZSkKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAg ICAgICAgICAgIGRyaXZlX3NpemUgPSBnZXRkcml2ZXNpemUocGF0aCkKLSAgICAgICAgICAgICAg ICAgICAgZHJpdmVfc2l6ZV9pbl91bml0cyA9IHNpemVvZl9mbXQoZHJpdmVfc2l6ZSkKLSAgICAg ICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgICAgICAgICBkcml2ZV9z aXplID0gMAotICAgICAgICAgICAgICAgIHByb3RlY3RlZCA9IDEgaWYgZHJpdmVfc2l6ZSA9PSAw IGVsc2UgMAogICAgICAgICAgICAgICAgIGZpbGVzW2ZpbGVfbmFtZV0gPSB7CiAgICAgICAgICAg ICAgICAgICAgICJGaWxlbmFtZSI6IGZpbGVfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgIlBh dGgiOiBwYXRoLAogICAgICAgICAgICAgICAgICAgICAiZmlsZV90eXBlIjogJ2RyaXZlJywKLSAg ICAgICAgICAgICAgICAgICAgIlByb3RlY3RlZCI6IHByb3RlY3RlZCwKKyAgICAgICAgICAgICAg ICAgICAgIlByb3RlY3RlZCI6IDEgaWYgZHJpdmVfc2l6ZSA9PSAwIGVsc2UgMCwKICAgICAgICAg ICAgICAgICAgICAgIlByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAiRGF0 ZSBDcmVhdGVkIjogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAiRGF0ZSBNb2RpZmllZCI6 ICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgIlNpemUiOiBkcml2ZV9zaXplX2luX3VuaXRz CisgICAgICAgICAgICAgICAgICAgICAgICAiU2l6ZSI6IGRyaXZlX3NpemUKICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIEZpbGVtYW5hZ2VyLnJl c3VtZV93aW5kb3dzX3dhcm5pbmcoKQpAQCAtNjA2LDY4ICs2OTIsMjMgQEAgY2xhc3MgRmlsZW1h bmFnZXIob2JqZWN0KToKICAgICAgICAgICAgIH0KIAogICAgICAgICB1c2VyX2RpciA9IHBhdGgK LSAgICAgICAgZm9sZGVyc19vbmx5ID0gdHJhbnNfZGF0YVsnZm9sZGVyc19vbmx5J10gXAotICAg ICAgICAgICAgaWYgJ2ZvbGRlcnNfb25seScgaW4gdHJhbnNfZGF0YSBlbHNlICcnCi0gICAgICAg IGZpbGVzX29ubHkgPSB0cmFuc19kYXRhWydmaWxlc19vbmx5J10gXAotICAgICAgICAgICAgaWYg J2ZpbGVzX29ubHknIGluIHRyYW5zX2RhdGEgZWxzZSAnJwotICAgICAgICBzdXBwb3J0ZWRfdHlw ZXMgPSB0cmFuc19kYXRhWydzdXBwb3J0ZWRfdHlwZXMnXSBcCi0gICAgICAgICAgICBpZiAnc3Vw cG9ydGVkX3R5cGVzJyBpbiB0cmFuc19kYXRhIGVsc2UgW10KKyAgICAgICAgZm9sZGVyc19vbmx5 ID0gdHJhbnNfZGF0YS5nZXQoJ2ZvbGRlcnNfb25seScsICcnKQorICAgICAgICBmaWxlc19vbmx5 ID0gdHJhbnNfZGF0YS5nZXQoJ2ZpbGVzX29ubHknLCAnJykKKyAgICAgICAgc3VwcG9ydGVkX3R5 cGVzID0gdHJhbnNfZGF0YS5nZXQoJ3N1cHBvcnRlZF90eXBlcycsIFtdKQogCiAgICAgICAgIG9y aWdfcGF0aCA9IHVucXVvdGUob3JpZ19wYXRoKQogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBt eWxpc3QgPSBbeCBmb3IgeCBpbiBzb3J0ZWQob3MubGlzdGRpcihvcmlnX3BhdGgpKV0KLSAgICAg ICAgICAgIGZvciBmIGluIG15bGlzdDoKLSAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgPSAwCi0g ICAgICAgICAgICAgICAgc3lzdGVtX3BhdGggPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5qb2luKG9y aWdfcGF0aCwgZikpCi0KLSAgICAgICAgICAgICAgICAjIGNvbnRpbnVlIGlmIGZpbGUvZm9sZGVy IGlzIGhpZGRlbiAoYmFzZWQgb24gdXNlciBwcmVmZXJlbmNlKQotICAgICAgICAgICAgICAgIGlm IG5vdCBpc19zaG93X2hpZGRlbl9maWxlcyBhbmQgXAotICAgICAgICAgICAgICAgICAgICAgICAg KGlzX2ZvbGRlcl9oaWRkZW4oc3lzdGVtX3BhdGgpIG9yIGYuc3RhcnRzd2l0aCgnLicpKToKLSAg ICAgICAgICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICAgICAgICAgIHVzZXJfcGF0aCA9 IG9zLnBhdGguam9pbihvcy5wYXRoLmpvaW4odXNlcl9kaXIsIGYpKQotICAgICAgICAgICAgICAg IGNyZWF0ZWQgPSB0aW1lLmN0aW1lKG9zLnBhdGguZ2V0Y3RpbWUoc3lzdGVtX3BhdGgpKQotICAg ICAgICAgICAgICAgIG1vZGlmaWVkID0gdGltZS5jdGltZShvcy5wYXRoLmdldG10aW1lKHN5c3Rl bV9wYXRoKSkKLSAgICAgICAgICAgICAgICBmaWxlX2V4dGVuc2lvbiA9IHN0cihzcGxpdGV4dChz eXN0ZW1fcGF0aCkpCi0KLSAgICAgICAgICAgICAgICAjIHNldCBwcm90ZWN0ZWQgdG8gMSBpZiBu byB3cml0ZSBvciByZWFkIHBlcm1pc3Npb24KLSAgICAgICAgICAgICAgICBpZiAobm90IG9zLmFj Y2VzcyhzeXN0ZW1fcGF0aCwgb3MuUl9PSykgb3IKLSAgICAgICAgICAgICAgICAgICAgICAgIG5v dCBvcy5hY2Nlc3Moc3lzdGVtX3BhdGgsIG9zLldfT0spKToKLSAgICAgICAgICAgICAgICAgICAg cHJvdGVjdGVkID0gMQotCi0gICAgICAgICAgICAgICAgIyBsaXN0IGZpbGVzIG9ubHkgb3IgZm9s ZGVycyBvbmx5Ci0gICAgICAgICAgICAgICAgaWYgb3MucGF0aC5pc2RpcihzeXN0ZW1fcGF0aCk6 Ci0gICAgICAgICAgICAgICAgICAgIGlmIGZpbGVzX29ubHkgPT0gJ3RydWUnOgotICAgICAgICAg ICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICAgICAgZmlsZV9leHRlbnNp b24gPSAiZGlyIgotICAgICAgICAgICAgICAgICAgICB1c2VyX3BhdGggPSAiezB9LyIuZm9ybWF0 KHVzZXJfcGF0aCkKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAj IGZpbHRlciBmaWxlcyBiYXNlZCBvbiBmaWxlX3R5cGUKLSAgICAgICAgICAgICAgICAgICAgaWYg ZmlsZV90eXBlIGlzIG5vdCBOb25lIGFuZCBmaWxlX3R5cGUgIT0gIioiIGFuZCBcCi0gICAgICAg ICAgICAgICAgICAgICAgICAoZm9sZGVyc19vbmx5IG9yIGxlbihzdXBwb3J0ZWRfdHlwZXMpID4g MCBhbmQKLSAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlX2V4dGVuc2lvbiBub3QgaW4gc3Vw cG9ydGVkX3R5cGVzIG9yCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZV90eXBlICE9 IGZpbGVfZXh0ZW5zaW9uKToKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAg ICAgICAgICAgICAgICAjIGNyZWF0ZSBhIGxpc3Qgb2YgZmlsZXMgYW5kIGZvbGRlcnMKLSAgICAg ICAgICAgICAgICBmaWxlc1tmXSA9IHsKLSAgICAgICAgICAgICAgICAgICAgIkZpbGVuYW1lIjog ZiwKLSAgICAgICAgICAgICAgICAgICAgIlBhdGgiOiB1c2VyX3BhdGgsCi0gICAgICAgICAgICAg ICAgICAgICJmaWxlX3R5cGUiOiBmaWxlX2V4dGVuc2lvbiwKLSAgICAgICAgICAgICAgICAgICAg IlByb3RlY3RlZCI6IHByb3RlY3RlZCwKLSAgICAgICAgICAgICAgICAgICAgIlByb3BlcnRpZXMi OiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAiRGF0ZSBDcmVhdGVkIjogY3JlYXRlZCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICJEYXRlIE1vZGlmaWVkIjogbW9kaWZpZWQsCi0gICAgICAg ICAgICAgICAgICAgICAgICAiU2l6ZSI6IHNpemVvZl9mbXQoZ2V0c2l6ZShzeXN0ZW1fcGF0aCkp Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBm aWxlcyA9IEZpbGVtYW5hZ2VyLmdldF9maWxlc19pbl9wYXRoKAorICAgICAgICAgICAgICAgIGlz X3Nob3dfaGlkZGVuX2ZpbGVzLCBmaWxlc19vbmx5LCBmb2xkZXJzX29ubHksCisgICAgICAgICAg ICAgICAgc3VwcG9ydGVkX3R5cGVzLCBmaWxlX3R5cGUsIHVzZXJfZGlyLCBvcmlnX3BhdGgKKyAg ICAgICAgICAgICkKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAg RmlsZW1hbmFnZXIucmVzdW1lX3dpbmRvd3Nfd2FybmluZygpCisgICAgICAgICAgICBlcnJfbXNn ID0gc3RyKGUpCiAgICAgICAgICAgICBpZiAoaGFzYXR0cihlLCAnc3RyZXJyb3InKSBhbmQKICAg ICAgICAgICAgICAgICAgICAgZS5zdHJlcnJvciA9PSBnZXR0ZXh0KCdQZXJtaXNzaW9uIGRlbmll ZCcpKToKICAgICAgICAgICAgICAgICBlcnJfbXNnID0gc3RyKGUuc3RyZXJyb3IpCi0gICAgICAg ICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGVycl9tc2cgPSBzdHIoZSkKKwogICAgICAgICAg ICAgZmlsZXMgPSB7CiAgICAgICAgICAgICAgICAgJ0NvZGUnOiAwLAogICAgICAgICAgICAgICAg ICdFcnJvcic6IGVycl9tc2cK --0000000000005d4ffc05afe522a7--