Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fYuAo-0003E0-IG for pgadmin-hackers@arkaria.postgresql.org; Fri, 29 Jun 2018 14:14:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fYuAm-00063B-Tu for pgadmin-hackers@arkaria.postgresql.org; Fri, 29 Jun 2018 14:14:52 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fYuAm-000634-KX for pgadmin-hackers@lists.postgresql.org; Fri, 29 Jun 2018 14:14:52 +0000 Received: from mail-lj1-x230.google.com ([2a00:1450:4864:20::230]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1fYuAi-0006y4-Nq for pgadmin-hackers@postgresql.org; Fri, 29 Jun 2018 14:14:52 +0000 Received: by mail-lj1-x230.google.com with SMTP id i125-v6so7443252lji.2 for ; Fri, 29 Jun 2018 07:14:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=dKa/aBeZ6JQc8NJnjukPgxn19ZI+HeRuY3BFf+nAx78=; b=MiFN/5B+NkvFeW+7GWwYP9Vunl/CA63JYIux+VjIlOJ9cKL3sa24tN/+h2YZqxR6gM flAt+KclDCEB6Bm6/eD8vV+X9NBwSzsA/qRumxmPfFMxtqThF+QlXgqHeQnMKfVRIPip 47+MZwDArYbNBZZgiBCHhsrBkO3PwtMtFiGIeuIWccIIOaKyZyyVlQj0cMzN0sUc/Era t//16UmTKbnIMA2728avNn2e+k0LwVtT+Ay0kR6nGwvch1bRQiiAkpRhrWzSZJLqOEMq SnOWiZ0DWI4yCAaNjpJNd5FaiSRv5IY+Q/vifnj5r8XhB7AgYWFVD3fRPZwzn7OpvhfA NbXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=dKa/aBeZ6JQc8NJnjukPgxn19ZI+HeRuY3BFf+nAx78=; b=M+uZ8rmaPp4xN1t4HqE+aNQWPpllDXipUm9knql3sU6pVW42g7BOhF//i7XOP2FGL/ TAVGNgM5wlHXsSy1/GkeqiIxb/YGsHppEaf9iHwyTP9tasFcmKf5edvnrN7Gzgbs1FRn QGhT6E0e3WBwSgppZ958gjg7wKjbC337+b+vVh5daB/5selSeMfyjtbQfuO8O8gsRPA8 kllyrvx+zfhXN3rvCYVodsT/TPStvwo7AcnoiFGB2ryH3nWOFrYW9OUJ1/t3oJCbl0Su GHUVWStGip0jXDqPsNh8YHnHET2nrv1J9v3ClRITTw6qUgCHM2hQtKPeaqvgFCYKM3Jp eJyw== X-Gm-Message-State: APt69E18oTw36sCMpEzhvQ1SXPdV3UDyz8KROf6H28RNDdhn4ATZtbCE OEg2EXRdFNO7yi9+DFPkiE8Iznlw0WX9OpYP/ZW5sg== X-Google-Smtp-Source: ADUXVKKFfi4lGdfNLpNf5UaJYWKWT2ItTLoUDeqTq6zYvLIMFtwZGr2ICPpjYK8P+/JXBO2PnYLQ4zI0QUOY+6Y8a3I= X-Received: by 2002:a2e:750d:: with SMTP id q13-v6mr10118984ljc.56.1530281687486; Fri, 29 Jun 2018 07:14:47 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a2e:850b:0:0:0:0:0 with HTTP; Fri, 29 Jun 2018 07:14:46 -0700 (PDT) In-Reply-To: References: From: Aditya Toshniwal Date: Fri, 29 Jun 2018 19:44:46 +0530 Message-ID: Subject: Re: [pgAdmin4][RM3294] User need to reset the layout to see the changed preferences parameters To: Akshay Joshi Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="0000000000006497e3056fc87809" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --0000000000006497e3056fc87809 Content-Type: multipart/alternative; boundary="0000000000006497e0056fc87807" --0000000000006497e0056fc87807 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Hackers, Attached is the updated patch. On Fri, Jun 29, 2018 at 4:46 PM, Aditya Toshniwal < aditya.toshniwal@enterprisedb.com> wrote: > Hi Akshay, > > On Fri, Jun 29, 2018 at 3:42 PM, Akshay Joshi < > akshay.joshi@enterprisedb.com> wrote: > >> Hi Aditya >> >> I have applied your patch and run pgAdmin4. I have found following two >> issue in the browser: >> >> - Found error while open Preferences dialog. Refer >> Open_Preferences_Dialog.png >> >> =E2=80=8BThis error occurs even with the latest pull without changes.=E2= =80=8B > > >> >> - Set the preferences setting "Open in new browser tab" to True and >> open the query tool. Refer "Open_In_New_Broswer.png". >> >> =E2=80=8BWill look into this.=E2=80=8B > > >> I haven't review the code. >> >> On Thu, Jun 28, 2018 at 8:04 PM, Aditya Toshniwal < >> aditya.toshniwal@enterprisedb.com> wrote: >> >>> Hi Hackers, >>> >>> Attached is the patch for making preferences realtime and applying >>> without reseting the layout. Please note, the patch is only for one mod= ule >>> - SQL Editor and is the first part for the RM. There are lot of changes= to >>> be done to cover all and hence sending in parts. This will not affect/b= reak >>> existing code. Further patches will cover other modules. >>> >>> Highlights of this patch include: >>> - Changes will affect SQL Editors in Create dialog boxes, SQL tab of th= e >>> main screen, Query tool, History entries in the query tool, Query tool >>> opened in New Tab/Window >>> - All the components of SQL editor will refer to single source of >>> preferences which is cached in the Browser object. All other redundant = ajax >>> get preference calls are removed. >>> - SQL editor will not refer template JS variables anymore, once all the >>> references are removed the template variables will also be removed. >>> - Code refactoring wherever possible. >>> - Covered JS test cases wherever possible. >>> >>> Request you to kindly review. >>> >>> -- >>> Thanks and Regards, >>> Aditya Toshniwal >>> Software Engineer | EnterpriseDB Software Solutions | Pune >>> "Don't Complain about Heat, Plant a tree" >>> >> >> >> >> -- >> *Akshay Joshi* >> >> *Sr. Software Architect * >> >> >> >> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >> > > > > -- > Thanks and Regards, > Aditya Toshniwal > Software Engineer | EnterpriseDB Software Solutions | Pune > "Don't Complain about Heat, Plant a tree" > --=20 Thanks and Regards, Aditya Toshniwal Software Engineer | EnterpriseDB Software Solutions | Pune "Don't Complain about Heat, Plant a tree" --0000000000006497e0056fc87807 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,=C2=A0

Attached is the updated patch.

On Fri, Jun 29= , 2018 at 4:46 PM, Aditya Toshniwal <aditya.toshniwal@ente= rprisedb.com> wrote:
Hi Akshay,

On Fri, Jun 29, 2018 at 3:42 PM, Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:
Hi Aditya=C2=A0

= I have applied your patch and run pgAdmin4. I have found following two issu= e in the browser:
  • Found error while open Preferences dial= og. Refer Open_Preferences_Dialog.png
=E2=80=8BThis error occurs even with the latest pull wit= hout changes.=E2=80=8B
=C2=A0
  • Set the preferences setting &qu= ot;Open in new browser tab" to True and open the query tool. Refer &qu= ot;Open_In_New_Broswer.png".
=
=E2=80=8BWill look into this.=E2=80=8B
=C2=A0
I h= aven't review the code.

On Thu, J= un 28, 2018 at 8:04 PM, Aditya Toshniwal <aditya.toshniwal= @enterprisedb.com> wrote:
Hi Hacke= rs,

Attached is the patch for making prefer= ences realtime and applying without reseting the layout. Please note, the p= atch is only for one module - SQL Editor and is the first part for the RM. = There are lot of changes to be done to cover all and hence sending in parts= . This will not affect/break existing code. Further patches will cover othe= r modules.

Highlights of this patch include= :
- Changes will affect = SQL Editors in Create dialog boxes, SQL tab of the main screen, Query tool,= History entries in the query tool, Query tool opened in New Tab/Window
- All the components of SQL= editor will refer to single source of preferences which is cached in the B= rowser object. All other redundant ajax get preference calls are removed.
-=C2=A0SQL editor will = not refer template JS variables anymore, once all the references are remove= d the template variables will also be removed.
- Code refactoring wherever possible.
- Covered JS test cases whereve= r possible.

Request you to kindly review.

--
Thanks and Regards,=
Aditya Toshniwal<= /div>
Software Engineer |= =C2=A0EnterpriseDB Software Solutions |=C2=A0Pune
"Don't Complain about Heat, Plant a tree"



--
Akshay Joshi
Sr. So= ftware Architect
<= b>

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



--
<= font face=3D"trebuchet ms, sans-serif" size=3D"2" color=3D"#000000">Thanks = and Regards,
<= font face=3D"trebuchet ms, sans-serif" size=3D"2" color=3D"#000000">Aditya = Toshniwal
Software Engineer |=C2=A0EnterpriseDB Software Solutions |=C2=A0<= /span>Pune
"Don't Complain about Heat, Plant a tree"=



--
Thanks and Regards,
Aditya Toshniwal
Software Engineer |=C2=A0EnterpriseDB Software Sol= utions |=C2=A0Pune
"Don't Complain about Heat, Plant a tr= ee"
--0000000000006497e0056fc87807-- --0000000000006497e3056fc87809 Content-Type: application/octet-stream; name="0001-RM3294.patch" Content-Disposition: attachment; filename="0001-RM3294.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jj027a5g0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvX19pbml0X18ucHkgYi93ZWIvcGdhZG1p bi9icm93c2VyL19faW5pdF9fLnB5CmluZGV4IDM3NDFkOWQzLi5mYjFlYjdkYiAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL19faW5pdF9fLnB5CkBAIC02ODAsMTcgKzY4MCw2IEBAIGRlZiBicm93c2VyX2NzcygpOgog ICAgICIiIlJlbmRlciBhbmQgcmV0dXJuIENTUyBzbmlwcGV0cyBmcm9tIHRoZSBub2RlcyBhbmQg bW9kdWxlcy4iIiIKICAgICBzbmlwcGV0cyA9IFtdCiAKLSAgICAjIEdldCBjb25maWd1cmFibGUg b3B0aW9ucwotICAgIHByZWZzID0gUHJlZmVyZW5jZXMubW9kdWxlKCdzcWxlZGl0b3InKQotCi0g ICAgc3FsX2ZvbnRfc2l6ZV9wcmVmID0gcHJlZnMucHJlZmVyZW5jZSgnc3FsX2ZvbnRfc2l6ZScp Ci0gICAgc3FsX2ZvbnRfc2l6ZSA9IHJvdW5kKGZsb2F0KHNxbF9mb250X3NpemVfcHJlZi5nZXQo KSksIDIpCi0KLSAgICBpZiBzcWxfZm9udF9zaXplICE9IDA6Ci0gICAgICAgIHNuaXBwZXRzLmFw cGVuZCgKLSAgICAgICAgICAgICcuQ29kZU1pcnJvciB7IGZvbnQtc2l6ZTogJXNlbTsgfScgJSBz dHIoc3FsX2ZvbnRfc2l6ZSkKLSAgICAgICAgKQotCiAgICAgZm9yIHN1Ym1vZHVsZSBpbiBibHVl cHJpbnQuc3VibW9kdWxlczoKICAgICAgICAgc25pcHBldHMuZXh0ZW5kKHN1Ym1vZHVsZS5jc3Nz bmlwcGV0cykKICAgICByZXR1cm4gbWFrZV9yZXNwb25zZSgKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc3RhdGljL2Nzcy9icm93c2VyLmNzcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c3RhdGljL2Nzcy9icm93c2VyLmNzcwppbmRleCAzYmEzMzBkMy4uMWIyZTA2ZTcgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2Nzcy9icm93c2VyLmNzcworKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3N0YXRpYy9jc3MvYnJvd3Nlci5jc3MKQEAgLTEsMyArMSw2IEBACis6 cm9vdCB7CisgIC0tY29kZW1pcnJvci1mb250LXNpemUgOiAxZW07Cit9CiAvKiBTdHlsZXMgZm9y IHRoZSBtYWluIGJyb3dzZXIgKi8KIC5icm93c2VyLXBhbmUtY29udGFpbmVyIHsKICAgICBwb3Np dGlvbjogYWJzb2x1dGU7CkBAIC02NiwzICs2OSw4IEBAIHNhbXAsCiAucGctbG9naW4taWNvbiB7 CiAgIGZvbnQtc2l6ZTogMTZweDsKIH0KKworLkNvZGVNaXJyb3IgeworICBmb250LXNpemU6IHZh cigtLWNvZGVtaXJyb3ItZm9udC1zaXplLCAnMWVtJyk7Cit9CisKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL2Jyb3dzZXIuanMgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3N0YXRpYy9qcy9icm93c2VyLmpzCmluZGV4IGIyNjczOGNmLi5jMzMwYTg3MSAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvYnJvd3Nlci5qcworKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3N0YXRpYy9qcy9icm93c2VyLmpzCkBAIC0yLDggKzIsOCBAQCBkZWZpbmUo J3BnYWRtaW4uYnJvd3NlcicsIFsKICAgJ3NvdXJjZXMvdHJlZS90cmVlJywKICAgJ3NvdXJjZXMv Z2V0dGV4dCcsICdzb3VyY2VzL3VybF9mb3InLCAncmVxdWlyZScsICdqcXVlcnknLCAndW5kZXJz Y29yZScsICd1bmRlcnNjb3JlLnN0cmluZycsCiAgICdib290c3RyYXAnLCAnc291cmNlcy9wZ2Fk bWluJywgJ3BnYWRtaW4uYWxlcnRpZnlqcycsICdidW5kbGVkX2NvZGVtaXJyb3InLAotICAnc291 cmNlcy9jaGVja19ub2RlX3Zpc2liaWxpdHknLCAnc291cmNlcy9tb2RpZnlfYW5pbWF0aW9uJywg J3BnYWRtaW4uYnJvd3Nlci51dGlscycsICd3Y2RvY2tlcicsCi0gICdqcXVlcnkuY29udGV4dG1l bnUnLCAnanF1ZXJ5LmFjaXBsdWdpbicsICdqcXVlcnkuYWNpdHJlZScsCisgICdzb3VyY2VzL2No ZWNrX25vZGVfdmlzaWJpbGl0eScsICdwZ2FkbWluLmJyb3dzZXIudXRpbHMnLCAnd2Nkb2NrZXIn LAorICAnanF1ZXJ5LmNvbnRleHRtZW51JywgJ2pxdWVyeS5hY2lwbHVnaW4nLCAnanF1ZXJ5LmFj aXRyZWUnLCAncGdhZG1pbi5icm93c2VyLnByZWZlcmVuY2VzJywKICAgJ3BnYWRtaW4uYnJvd3Nl ci5tZXNzYWdlcycsCiAgICdwZ2FkbWluLmJyb3dzZXIubWVudScsICdwZ2FkbWluLmJyb3dzZXIu cGFuZWwnLAogICAncGdhZG1pbi5icm93c2VyLmVycm9yJywgJ3BnYWRtaW4uYnJvd3Nlci5mcmFt ZScsCkBAIC0xMyw3ICsxMyw3IEBAIGRlZmluZSgncGdhZG1pbi5icm93c2VyJywgWwogXSwgZnVu Y3Rpb24oCiAgIHRyZWUsCiAgIGdldHRleHQsIHVybF9mb3IsIHJlcXVpcmUsICQsIF8sIFMsIEJv b3RzdHJhcCwgcGdBZG1pbiwgQWxlcnRpZnksCi0gIGNvZGVtaXJyb3IsIGNoZWNrTm9kZVZpc2li aWxpdHksIG1vZGlmeUFuaW1hdGlvbgorICBjb2RlbWlycm9yLCBjaGVja05vZGVWaXNpYmlsaXR5 CiApIHsKICAgd2luZG93LmpRdWVyeSA9IHdpbmRvdy4kID0gJDsKICAgLy8gU29tZSBzY3JpcHRz IGRvIGV4cG9ydCB0aGVpciBvYmplY3QgaW4gdGhlIHdpbmRvdyBvbmx5LgpAQCAtMzQyLDcgKzM0 Miw3IEBAIGRlZmluZSgncGdhZG1pbi5icm93c2VyJywgWwogCiAgICAgICAvLyBDYWNoZSBwcmVm ZXJlbmNlcwogICAgICAgb2JqLmNhY2hlX3ByZWZlcmVuY2VzKCk7Ci0gICAgICB0aGlzLmFkZF9w YW5lbHMoKTsKKyAgICAgIG9iai5hZGRfcGFuZWxzKCk7CiAgICAgICAvLyBJbml0aWFsaXplIHRo ZSBEb2NrZXIKICAgICAgIG9iai5kb2NrZXIgPSBuZXcgd2NEb2NrZXIoCiAgICAgICAgICcjZG9j a2VyQ29udGFpbmVyJywgewpAQCAtNDAwLDExICs0MDAsMjIgQEAgZGVmaW5lKCdwZ2FkbWluLmJy b3dzZXInLCBbCiAgICAgICAgICAgbW9kZTogJ3RleHQveC1wZ3NxbCcsCiAgICAgICAgICAgcmVh ZE9ubHk6IHRydWUsCiAgICAgICAgICAgZXh0cmFLZXlzOiBwZ0FkbWluLkJyb3dzZXIuZWRpdG9y X3Nob3J0Y3V0X2tleXMsCi0gICAgICAgICAgdGFiU2l6ZTogcGdBZG1pbi5Ccm93c2VyLmVkaXRv cl9vcHRpb25zLnRhYlNpemUsCi0gICAgICAgICAgbGluZVdyYXBwaW5nOiBwZ0FkbWluLkJyb3dz ZXIuZWRpdG9yX29wdGlvbnMud3JhcENvZGUsCi0gICAgICAgICAgYXV0b0Nsb3NlQnJhY2tldHM6 IHBnQWRtaW4uQnJvd3Nlci5lZGl0b3Jfb3B0aW9ucy5pbnNlcnRfcGFpcl9icmFja2V0cywKLSAg ICAgICAgICBtYXRjaEJyYWNrZXRzOiBwZ0FkbWluLkJyb3dzZXIuZWRpdG9yX29wdGlvbnMuYnJh Y2VfbWF0Y2hpbmcsCiAgICAgICAgIH0pOworICAgICAgLyogQ2FjaGUgbWF5IHRha2UgdGltZSB0 byBsb2FkIGZvciB0aGUgZmlyc3QgdGltZQorICAgICAgICogUmVmbGVjdCB0aGUgY2hhbmdlcyBv bmNlIGNhY2hlIGlzIGF2YWlsYWJsZQorICAgICAgICovCisgICAgICBsZXQgY2FjaGVJbnRlcnZh bElkID0gc2V0SW50ZXJ2YWwoKCk9PiB7CisgICAgICAgIGxldCBzcWxFZGl0UHJlZmVyZW5jZXMg PSBvYmouZ2V0X3ByZWZlcmVuY2VzX2Zvcl9tb2R1bGUoJ3NxbGVkaXRvcicpOworICAgICAgICBp ZihzcWxFZGl0UHJlZmVyZW5jZXMpIHsKKyAgICAgICAgICBjbGVhckludGVydmFsKGNhY2hlSW50 ZXJ2YWxJZCk7CisgICAgICAgICAgb2JqLnJlZmxlY3RQcmVmZXJlbmNlcygnc3FsZWRpdG9yJyk7 CisgICAgICAgIH0KKyAgICAgIH0sIDUwMCk7CisKKyAgICAgIC8qIENoZWNrIGZvciBzcWwgZWRp dG9yIHByZWZlcmVuY2UgY2hhbmdlcyAqLworICAgICAgb2JqLm9uUHJlZmVyZW5jZXNDaGFuZ2Uo J3NxbGVkaXRvcicsIGZ1bmN0aW9uKCkgeworICAgICAgICBvYmoucmVmbGVjdFByZWZlcmVuY2Vz KCdzcWxlZGl0b3InKTsKKyAgICAgIH0pOwogCiAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg ewogICAgICAgICBvYmouZWRpdG9yLnNldFZhbHVlKCctLSAnICsgc2VsZWN0X29iamVjdF9tc2cp OwpAQCAtNTE0LDEwICs1MjUsNiBAQCBkZWZpbmUoJ3BnYWRtaW4uYnJvd3NlcicsIFsKICAgICAg IH07CiAgICAgfSwKIAotICAgIC8vIFRoaXMgd2lsbCBob2xkIHByZWZlcmVuY2UgZGF0YSAoV29y a3MgYXMgYSBjYWNoZSBvYmplY3QpCi0gICAgLy8gSGVyZSBub2RlIHdpbGwgYmUgYSBrZXkgYW5k IGl0J3MgcHJlZmVyZW5jZSBkYXRhIHdpbGwgYmUgdmFsdWUKLSAgICBwcmVmZXJlbmNlc19jYWNo ZToge30sCi0KICAgICAvLyBBZGQgbWVudXMgb2YgbW9kdWxlL2V4dGVuc2lvbiBhdCBhcHByb3By aWF0ZSBtZW51CiAgICAgYWRkX21lbnVzOiBmdW5jdGlvbihtZW51cykgewogICAgICAgdmFyIHNl bGYgPSB0aGlzLApAQCAtNjYxLDQ2ICs2NjgsNiBAQCBkZWZpbmUoJ3BnYWRtaW4uYnJvd3Nlcics IFsKICAgICAgICAgfQogICAgICAgfQogICAgIH0sCi0KLSAgICAvLyBHZXQgcHJlZmVyZW5jZSB2 YWx1ZSBmcm9tIGNhY2hlCi0gICAgZ2V0X3ByZWZlcmVuY2U6IGZ1bmN0aW9uKG1vZHVsZSwgcHJl ZmVyZW5jZSkgewotICAgICAgdmFyIHNlbGYgPSB0aGlzOwotICAgICAgLy8gSWYgY2FjaGUgaXMg bm90IHlldCBsb2FkZWQgdGhlbiBrZWVwIGNoZWNraW5nCi0gICAgICBpZihfLnNpemUoc2VsZi5w cmVmZXJlbmNlc19jYWNoZSkgPT0gMCkgewotICAgICAgICB2YXIgY2hlY2tfcHJlZmVyZW5jZSA9 IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgaWYoXy5zaXplKHNlbGYucHJlZmVyZW5jZXNfY2Fj aGUpID4gMCkgewotICAgICAgICAgICAgICBjbGVhckludGVydmFsKHByZWZlcmVuY2VUaW1lb3V0 KTsKLSAgICAgICAgICAgICAgcmV0dXJuIF8uZmluZFdoZXJlKAotICAgICAgICAgICAgICBzZWxm LnByZWZlcmVuY2VzX2NhY2hlLCB7J21vZHVsZSc6IG1vZHVsZSwgJ25hbWUnOiBwcmVmZXJlbmNl fQotICAgICAgICAgICAgKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9LAotICAgICAgICAg IHByZWZlcmVuY2VUaW1lb3V0ID0gc2V0SW50ZXJ2YWwoY2hlY2tfcHJlZmVyZW5jZSwgMTAwMCk7 Ci0gICAgICB9Ci0gICAgICBlbHNlIHsKLSAgICAgICAgcmV0dXJuIF8uZmluZFdoZXJlKAotICAg ICAgICAgIHNlbGYucHJlZmVyZW5jZXNfY2FjaGUsIHsnbW9kdWxlJzogbW9kdWxlLCAnbmFtZSc6 IHByZWZlcmVuY2V9Ci0gICAgICAgICk7Ci0gICAgICB9Ci0gICAgfSwKLQotICAgIC8vIEdldCBh bmQgY2FjaGUgdGhlIHByZWZlcmVuY2VzCi0gICAgY2FjaGVfcHJlZmVyZW5jZXM6IGZ1bmN0aW9u ICgpIHsKLSAgICAgIHZhciBzZWxmID0gdGhpczsKLSAgICAgICQuYWpheCh7Ci0gICAgICAgIHVy bDogdXJsX2ZvcigncHJlZmVyZW5jZXMuZ2V0X2FsbCcpLAotICAgICAgICBzdWNjZXNzOiBmdW5j dGlvbihyZXMpIHsKLSAgICAgICAgICBzZWxmLnByZWZlcmVuY2VzX2NhY2hlID0gcmVzOwotICAg ICAgICAgIHBnQnJvd3Nlci5rZXlib2FyZE5hdmlnYXRpb24uaW5pdCgpOwotICAgICAgICAgIG1v ZGlmeUFuaW1hdGlvbi5tb2RpZnlBY2l0cmVlQW5pbWF0aW9uKHNlbGYpOwotICAgICAgICAgIG1v ZGlmeUFuaW1hdGlvbi5tb2RpZnlBbGVydGlmeUFuaW1hdGlvbihzZWxmKTsKLSAgICAgICAgfSwK LSAgICAgICAgZXJyb3I6IGZ1bmN0aW9uKHhociwgc3RhdHVzLCBlcnJvcikgewotICAgICAgICAg IEFsZXJ0aWZ5LnBnUmVzcEVycm9yTm90aWZ5KHhociwgZXJyb3IpOwotICAgICAgICB9LAotICAg ICAgfSk7Ci0gICAgfSwKLQogICAgIF9maW5kVHJlZUNoaWxkTm9kZTogZnVuY3Rpb24oX2ksIF9k LCBfbykgewogICAgICAgdmFyIGxvYWRlZCA9IF9vLnQud2FzTG9hZChfaSksCiAgICAgICAgIG9u TG9hZCA9IGZ1bmN0aW9uKCkgewpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zdGF0 aWMvanMvcHJlZmVyZW5jZXMuanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9wcmVm ZXJlbmNlcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uNmQ4MDg3NGYK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9wcmVmZXJl bmNlcy5qcwpAQCAtMCwwICsxLDEzNSBAQAoraW1wb3J0IHBnQWRtaW4gZnJvbSAnc291cmNlcy9w Z2FkbWluJzsKK2ltcG9ydCB1cmxfZm9yIGZyb20gJ3NvdXJjZXMvdXJsX2Zvcic7CitpbXBvcnQg KiBhcyBtb2RpZnlBbmltYXRpb24gZnJvbSAnc291cmNlcy9tb2RpZnlfYW5pbWF0aW9uJzsKK2lt cG9ydCAkIGZyb20gJ2pxdWVyeSc7CitpbXBvcnQgKiBhcyBBbGVydGlmeSBmcm9tICdwZ2FkbWlu LmFsZXJ0aWZ5anMnOworaW1wb3J0ICogYXMgU3FsRWRpdG9yVXRpbHMgZnJvbSAnc291cmNlcy9z cWxlZGl0b3JfdXRpbHMnOworCitjb25zdCBwZ0Jyb3dzZXIgPSBwZ0FkbWluLkJyb3dzZXIgPSBw Z0FkbWluLkJyb3dzZXIgfHwge307CisKKy8qIEFkZCBjYWNoZSByZWxhdGVkIG1ldGhvZHMgYW5k IHByb3BlcnRpZXMgKi8KK18uZXh0ZW5kKHBnQnJvd3NlciwgeworICAvKiBUaGlzIHdpbGwgaG9s ZCBwcmVmZXJlbmNlIGRhdGEgKFdvcmtzIGFzIGEgY2FjaGUgb2JqZWN0KQorICAgKiBIZXJlIG5v ZGUgd2lsbCBiZSBhIGtleSBhbmQgaXQncyBwcmVmZXJlbmNlIGRhdGEgd2lsbCBiZSB2YWx1ZQor ICAgKi8KKyAgcHJlZmVyZW5jZXNfY2FjaGU6IFtdLAorCisgIC8qIFRoaXMgd2lsbCBiZSB1c2Vk IGJ5IHBvbGxlciBvZiBuZXcgdGFicy93aW5kb3dzIHRvIGNoZWNrCisgICAqIGlmIHByZWZlcmVu Y2UgY2FjaGUgaXMgdXBkYXRlZCBpbiBwYXJlbnQvd2luZG93Lm9wZW5lci4KKyAgICovCisgIHBy ZWZjYWNoZV92ZXJzaW9uOiAwLAorCisgIHByZWZlcmVuY2VfdmVyc2lvbjogZnVuY3Rpb24odmVy c2lvbikgeworICAgIGlmKHZlcnNpb24pIHsKKyAgICAgIHRoaXMucHJlZmNhY2hlX3ZlcnNpb24g PSB2ZXJzaW9uOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgIHJldHVybiB0aGlzLnByZWZjYWNo ZV92ZXJzaW9uOworICAgIH0KKyAgfSwKKworICAvKiBHZXQgY2FjaGVkIHByZWZlcmVuY2UgKi8K KyAgZ2V0X3ByZWZlcmVuY2U6IGZ1bmN0aW9uKG1vZHVsZSwgcHJlZmVyZW5jZSl7CisgICAgY29u c3Qgc2VsZiA9IHRoaXM7CisgICAgLy8gSWYgY2FjaGUgaXMgbm90IHlldCBsb2FkZWQgdGhlbiBr ZWVwIGNoZWNraW5nCisgICAgaWYoXy5zaXplKHNlbGYucHJlZmVyZW5jZXNfY2FjaGUpID09IDAp IHsKKyAgICAgIHZhciBjaGVja19wcmVmZXJlbmNlID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAg aWYoc2VsZi5wcmVmZXJlbmNlc19jYWNoZS5sZW5ndGggPiAwKSB7CisgICAgICAgICAgICBjbGVh ckludGVydmFsKHByZWZlcmVuY2VUaW1lb3V0KTsKKyAgICAgICAgICAgIHJldHVybiBfLmZpbmRX aGVyZSgKKyAgICAgICAgICAgIHNlbGYucHJlZmVyZW5jZXNfY2FjaGUsIHsnbW9kdWxlJzogbW9k dWxlLCAnbmFtZSc6IHByZWZlcmVuY2V9CisgICAgICAgICAgKTsKKyAgICAgICAgICB9CisgICAg ICAgIH0sCisgICAgICAgIHByZWZlcmVuY2VUaW1lb3V0ID0gc2V0SW50ZXJ2YWwoY2hlY2tfcHJl ZmVyZW5jZSwgMTAwMCk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgcmV0dXJuIF8uZmluZFdo ZXJlKAorICAgICAgICBzZWxmLnByZWZlcmVuY2VzX2NhY2hlLCB7J21vZHVsZSc6IG1vZHVsZSwg J25hbWUnOiBwcmVmZXJlbmNlfQorICAgICAgKTsKKyAgICB9CisgIH0sCisKKyAgLyogR2V0IGFs bCB0aGUgcHJlZmVyZW5jZXMgb2YgYSBtb2R1bGUgKi8KKyAgZ2V0X3ByZWZlcmVuY2VzX2Zvcl9t b2R1bGU6IGZ1bmN0aW9uKG1vZHVsZSkgeworICAgIHZhciBzZWxmID0gdGhpczsKKyAgICBsZXQg cHJlZmVyZW5jZXMgPSB7fTsKKyAgICBfLmVhY2goCisgICAgICBfLndoZXJlKHNlbGYucHJlZmVy ZW5jZXNfY2FjaGUsIHsnbW9kdWxlJzogbW9kdWxlfSksCisgICAgICAocHJlZmVyZW5jZSkgPT4g eworICAgICAgICBwcmVmZXJlbmNlc1twcmVmZXJlbmNlLm5hbWVdID0gcHJlZmVyZW5jZS52YWx1 ZTsKKyAgICAgIH0KKyAgICApOworICAgIHJldHVybiBwcmVmZXJlbmNlczsKKyAgfSwKKworICAv KiBHZXQgcHJlZmVyZW5jZSBvZiBhbiBpZCwgaWQgaXMgbnVtZXJpYyAqLworICBnZXRfcHJlZmVy ZW5jZV9mb3JfaWQgOiBmdW5jdGlvbihpZCkgeworICAgIHZhciBzZWxmID0gdGhpczsKKyAgICBy ZXR1cm4gXy5maW5kV2hlcmUoc2VsZi5wcmVmZXJlbmNlc19jYWNoZSwgeydpZCc6IGlkfSk7Cisg IH0sCisKKyAgLy8gR2V0IGFuZCBjYWNoZSB0aGUgcHJlZmVyZW5jZXMKKyAgY2FjaGVfcHJlZmVy ZW5jZXM6IGZ1bmN0aW9uIChtb2R1bGVzQ2hhbmdlZCkgeworICAgIHZhciBzZWxmID0gdGhpczsK KyAgICByZXR1cm4gJC5hamF4KHsKKyAgICAgIHVybDogdXJsX2ZvcigncHJlZmVyZW5jZXMuZ2V0 X2FsbCcpLAorICAgICAgc3VjY2VzczogZnVuY3Rpb24ocmVzKSB7CisgICAgICAgIHNlbGYucHJl ZmVyZW5jZXNfY2FjaGUgPSByZXM7CisgICAgICAgIHNlbGYucHJlZmVyZW5jZV92ZXJzaW9uKChu ZXcgRGF0ZSgpKS5nZXRUaW1lKCkpOworCisgICAgICAgIHBnQnJvd3Nlci5rZXlib2FyZE5hdmln YXRpb24uaW5pdCgpOworICAgICAgICBpZihwZ0Jyb3dzZXIudHJlZSkgeworICAgICAgICAgIG1v ZGlmeUFuaW1hdGlvbi5tb2RpZnlBY2l0cmVlQW5pbWF0aW9uKHNlbGYpOworICAgICAgICAgIG1v ZGlmeUFuaW1hdGlvbi5tb2RpZnlBbGVydGlmeUFuaW1hdGlvbihzZWxmKTsKKyAgICAgICAgfQor CisgICAgICAgIC8qIE9uY2UgdGhlIGNhY2hlIGlzIGxvYWRlZCBhZnRlciBjaGFuZ2luZyB0aGUg cHJlZmVyZW5jZXMsCisgICAgICAgICAqIG5vdGlmeSB0aGUgbW9kdWxlcyBvZiB0aGUgY2hhbmdl CisgICAgICAgICAqLworICAgICAgICBpZihtb2R1bGVzQ2hhbmdlZCkgeworICAgICAgICAgIF8u ZWFjaChtb2R1bGVzQ2hhbmdlZCwgKHZhbCwga2V5KT0+IHsKKyAgICAgICAgICAgICQuZXZlbnQu dHJpZ2dlcigncHJlZmNoYW5nZTonK2tleSk7CisgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAg ICAgIH0sCisgICAgICBlcnJvcjogZnVuY3Rpb24oeGhyLCBzdGF0dXMsIGVycm9yKSB7CisgICAg ICAgIEFsZXJ0aWZ5LnBnUmVzcEVycm9yTm90aWZ5KHhociwgZXJyb3IpOworICAgICAgfSwKKyAg ICB9KTsKKyAgfSwKKworICByZWZsZWN0UHJlZmVyZW5jZXM6IGZ1bmN0aW9uKG1vZHVsZSkgewor ICAgIGxldCBvYmogPSB0aGlzOworCisgICAgaWYobW9kdWxlID09PSAnc3FsZWRpdG9yJyB8fCBt b2R1bGUgPT09IG51bGwgfHwgdHlwZW9mIG1vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHsKKyAgICAg IGxldCBzcWxFZGl0UHJlZmVyZW5jZXMgPSBvYmouZ2V0X3ByZWZlcmVuY2VzX2Zvcl9tb2R1bGUo J3NxbGVkaXRvcicpOworCisgICAgICAkKG9iai5lZGl0b3IuZ2V0V3JhcHBlckVsZW1lbnQoKSku Y3NzKAorICAgICAgICAnZm9udC1zaXplJyxTcWxFZGl0b3JVdGlscy5jYWxjRm9udFNpemUoc3Fs RWRpdFByZWZlcmVuY2VzLnNxbF9mb250X3NpemUpCisgICAgICApOworICAgICAgb2JqLmVkaXRv ci5zZXRPcHRpb24oJ3RhYlNpemUnLCBzcWxFZGl0UHJlZmVyZW5jZXMudGFiX3NpemUpOworICAg ICAgb2JqLmVkaXRvci5zZXRPcHRpb24oJ2xpbmVXcmFwcGluZycsIHNxbEVkaXRQcmVmZXJlbmNl cy53cmFwX2NvZGUpOworICAgICAgb2JqLmVkaXRvci5zZXRPcHRpb24oJ2F1dG9DbG9zZUJyYWNr ZXRzJywgc3FsRWRpdFByZWZlcmVuY2VzLmluc2VydF9wYWlyX2JyYWNrZXRzKTsKKyAgICAgIG9i ai5lZGl0b3Iuc2V0T3B0aW9uKCdtYXRjaEJyYWNrZXRzJywgc3FsRWRpdFByZWZlcmVuY2VzLmJy YWNlX21hdGNoaW5nKTsKKyAgICAgIG9iai5lZGl0b3IucmVmcmVzaCgpOworICAgIH0KKyAgfSwK KworICBvblByZWZlcmVuY2VzQ2hhbmdlOiBmdW5jdGlvbihtb2R1bGUsIGV2ZW50SGFuZGxlcikg eworICAgIHdpbmRvdy5wYXJlbnQuJChwYXJlbnQuZG9jdW1lbnQpLm9uKCdwcmVmY2hhbmdlOicr bW9kdWxlLCBmdW5jdGlvbihldmVudCkgeworICAgICAgLyogSWYgYSBzcWxlZGl0b3IgaXMgY2xv c2VkLCBldmVudCBoYW5kbGVyIHdpbGwgYmUgY2FsbGVkCisgICAgICAgKiBidXQgdGhlIHdpbmRv dy50b3Agd2lsbCBiZSBudWxsLiBVbmJpbmQgdGhlIGV2ZW50IGhhbmRsZXIKKyAgICAgICAqLwor ICAgICAgaWYod2luZG93LnRvcCA9PT0gbnVsbCkgeworICAgICAgICB3aW5kb3cuJChkb2N1bWVu dCkub2ZmKGV2ZW50KTsKKyAgICAgIH0KKyAgICAgIGVsc2UgeworICAgICAgICBldmVudEhhbmRs ZXIoZXZlbnQpOworICAgICAgfQorICAgIH0pOworICB9LAorCit9KTsKKworZXhwb3J0IHtwZ0Jy b3dzZXJ9OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vcHJlZmVyZW5jZXMvc3RhdGljL2pzL3By ZWZlcmVuY2VzLmpzIGIvd2ViL3BnYWRtaW4vcHJlZmVyZW5jZXMvc3RhdGljL2pzL3ByZWZlcmVu Y2VzLmpzCmluZGV4IGNkYmRhMGNkLi43ZjIxZjgwYyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v cHJlZmVyZW5jZXMvc3RhdGljL2pzL3ByZWZlcmVuY2VzLmpzCisrKyBiL3dlYi9wZ2FkbWluL3By ZWZlcmVuY2VzL3N0YXRpYy9qcy9wcmVmZXJlbmNlcy5qcwpAQCAtNDM5LDggKzQzOSwyMCBAQCBk ZWZpbmUoJ3BnYWRtaW4ucHJlZmVyZW5jZXMnLCBbCiAKICAgICAgICAgICAgIGlmIChlLmJ1dHRv bi50ZXh0ID09IGdldHRleHQoJ09LJykpIHsKICAgICAgICAgICAgICAgcHJlZmVyZW5jZXMudXBk YXRlQWxsKCk7CisKKyAgICAgICAgICAgICAgLyogRmluZCB0aGUgbW9kdWxlcyBjaGFuZ2VkICov CisgICAgICAgICAgICAgIGxldCBtb2R1bGVzQ2hhbmdlZCA9IHt9OworICAgICAgICAgICAgICBf LmVhY2goY2hhbmdlZCwgKHZhbCwga2V5KT0+IHsKKyAgICAgICAgICAgICAgICBsZXQgcHJlZiA9 IHBnQnJvd3Nlci5nZXRfcHJlZmVyZW5jZV9mb3JfaWQoTnVtYmVyKGtleSkpOworICAgICAgICAg ICAgICAgIGlmKCFtb2R1bGVzQ2hhbmdlZFtwcmVmLm1vZHVsZV0pIHsKKyAgICAgICAgICAgICAg ICAgIG1vZHVsZXNDaGFuZ2VkW3ByZWYubW9kdWxlXSA9IHRydWU7CisgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICB9KTsKKwogICAgICAgICAgICAgICAvLyBSZWZyZXNoIHByZWZlcmVu Y2VzIGNhY2hlCi0gICAgICAgICAgICAgIHNldFRpbWVvdXQocGdCcm93c2VyLmNhY2hlX3ByZWZl cmVuY2VzKCksIDIwMDApOworICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpPT4geworICAgICAg ICAgICAgICAgIHBnQnJvd3Nlci5jYWNoZV9wcmVmZXJlbmNlcyhtb2R1bGVzQ2hhbmdlZCk7Cisg ICAgICAgICAgICAgIH0sIDUwMCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgfSwKICAgICAg ICAgICBidWlsZDogZnVuY3Rpb24oKSB7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMv anMvYmFja2Zvcm0ucGdhZG1pbi5qcyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9iYWNrZm9ybS5w Z2FkbWluLmpzCmluZGV4IGM3Yjk4NDk2Li43MDk2ZWU3YiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vc3RhdGljL2pzL2JhY2tmb3JtLnBnYWRtaW4uanMKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGlj L2pzL2JhY2tmb3JtLnBnYWRtaW4uanMKQEAgLTEsMTAgKzEsMTEgQEAKIGRlZmluZShbCiAgICdz b3VyY2VzL2dldHRleHQnLCAndW5kZXJzY29yZScsICd1bmRlcnNjb3JlLnN0cmluZycsICdqcXVl cnknLAotICAnYmFja2JvbmUnLCAnYmFja2Zvcm0nLCAnYmFja2dyaWQnLCAnY29kZW1pcnJvcics ICdzcGVjdHJ1bScsCi0gICdwZ2FkbWluLmJhY2tncmlkJywgJ3NlbGVjdDInLAotXSwgZnVuY3Rp b24oZ2V0dGV4dCwgXywgUywgJCwgQmFja2JvbmUsIEJhY2tmb3JtLCBCYWNrZ3JpZCwgQ29kZU1p cnJvcikgeworICAnYmFja2JvbmUnLCAnYmFja2Zvcm0nLCAnYmFja2dyaWQnLCAnY29kZW1pcnJv cicsICdzb3VyY2VzL3NxbGVkaXRvcl91dGlscycsCisgICdzcGVjdHJ1bScsICdwZ2FkbWluLmJh Y2tncmlkJywgJ3NlbGVjdDInLAorXSwgZnVuY3Rpb24oZ2V0dGV4dCwgXywgUywgJCwgQmFja2Jv bmUsIEJhY2tmb3JtLCBCYWNrZ3JpZCwgQ29kZU1pcnJvciwgU3FsRWRpdG9yVXRpbHMpIHsKIAot ICB2YXIgcGdBZG1pbiA9ICh3aW5kb3cucGdBZG1pbiA9IHdpbmRvdy5wZ0FkbWluIHx8IHt9KTsK KyAgdmFyIHBnQWRtaW4gPSAod2luZG93LnBnQWRtaW4gPSB3aW5kb3cucGdBZG1pbiB8fCB7fSks CisgICAgcGdCcm93c2VyID0gcGdBZG1pbi5Ccm93c2VyOwogCiAgIHBnQWRtaW4uZWRpdGFibGVD ZWxsID0gZnVuY3Rpb24oKSB7CiAgICAgaWYgKHRoaXMuYXR0cmlidXRlcyAmJiAhXy5pc1VuZGVm aW5lZCh0aGlzLmF0dHJpYnV0ZXMuZGlzYWJsZWQpICYmCkBAIC0xMjU5LDggKzEyNjAsNyBAQCBk ZWZpbmUoWwogICAgICAgdmFyIHN1Ym5vZGUgPSBkYXRhLnN1Ym5vZGUuc2NoZW1hID8gZGF0YS5z dWJub2RlIDogZGF0YS5zdWJub2RlLnByb3RvdHlwZSwKICAgICAgICAgZ3JpZFNjaGVtYSA9IEJh Y2tmb3JtLmdlbmVyYXRlR3JpZENvbHVtbnNGcm9tTW9kZWwoCiAgICAgICAgICAgZGF0YS5ub2Rl X2luZm8sIHN1Ym5vZGUsIHRoaXMuZmllbGQuZ2V0KCdtb2RlJyksIGRhdGEuY29sdW1ucywgZGF0 YS5zY2hlbWFfbm9kZQotICAgICAgICApLAotICAgICAgICBwZ0Jyb3dzZXIgPSB3aW5kb3cucGdB ZG1pbi5Ccm93c2VyOworICAgICAgICApOwogCiAgICAgICAvLyBDbGVhbiB1cCBleGlzdGluZyBn cmlkIGlmIGFueSAoaW4gY2FzZSBvZiByZS1yZW5kZXIpCiAgICAgICBpZiAoc2VsZi5ncmlkKSB7 CkBAIC0xNDI4LDYgKzE0MjgsMjMgQEAgZGVmaW5lKFsKICAgICBnZXRWYWx1ZUZyb21ET006IGZ1 bmN0aW9uKCkgewogICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0dGVyLnRvUmF3KHRoaXMuJGVsLmZp bmQoJ3RleHRhcmVhJykudmFsKCksIHRoaXMubW9kZWwpOwogICAgIH0sCisKKyAgICByZWZsZWN0 UHJlZmVyZW5jZXM6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHNlbGYgPSB0aGlzOworICAgICAg Lyogc2VsZi5zcWxDdHJsIGlzIG51bGwgd2hlbiBTUUwgdGFiIGlzIG5vdCBhY3RpdmUgKi8KKyAg ICAgIGlmKHNlbGYuc3FsQ3RybCkgeworICAgICAgICBsZXQgc3FsRWRpdFByZWZlcmVuY2VzID0g cGdBZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNlc19mb3JfbW9kdWxlKCdzcWxlZGl0b3InKTsK KworICAgICAgICAkKHNlbGYuc3FsQ3RybC5nZXRXcmFwcGVyRWxlbWVudCgpKS5jc3MoCisgICAg ICAgICAgJ2ZvbnQtc2l6ZScsU3FsRWRpdG9yVXRpbHMuY2FsY0ZvbnRTaXplKHNxbEVkaXRQcmVm ZXJlbmNlcy5zcWxfZm9udF9zaXplKQorICAgICAgICApOworICAgICAgICBzZWxmLnNxbEN0cmwu c2V0T3B0aW9uKCd0YWJTaXplJywgc3FsRWRpdFByZWZlcmVuY2VzLnRhYl9zaXplKTsKKyAgICAg ICAgc2VsZi5zcWxDdHJsLnNldE9wdGlvbignbGluZVdyYXBwaW5nJywgc3FsRWRpdFByZWZlcmVu Y2VzLndyYXBfY29kZSk7CisgICAgICAgIHNlbGYuc3FsQ3RybC5zZXRPcHRpb24oJ2F1dG9DbG9z ZUJyYWNrZXRzJywgc3FsRWRpdFByZWZlcmVuY2VzLmluc2VydF9wYWlyX2JyYWNrZXRzKTsKKyAg ICAgICAgc2VsZi5zcWxDdHJsLnNldE9wdGlvbignbWF0Y2hCcmFja2V0cycsIHNxbEVkaXRQcmVm ZXJlbmNlcy5icmFjZV9tYXRjaGluZyk7CisgICAgICAgIHNlbGYuc3FsQ3RybC5yZWZyZXNoKCk7 CisgICAgICB9CisgICAgfSwKICAgICByZW5kZXI6IGZ1bmN0aW9uKCkgewogICAgICAgaWYgKHRo aXMuc3FsQ3RybCkgewogICAgICAgICB0aGlzLnNxbEN0cmwudG9UZXh0QXJlYSgpOwpAQCAtMTQ0 NiwxMiArMTQ2MywxNiBAQCBkZWZpbmUoWwogICAgICAgICAgIG1vZGU6ICd0ZXh0L3gtcGdzcWwn LAogICAgICAgICAgIHJlYWRPbmx5OiB0cnVlLAogICAgICAgICAgIGV4dHJhS2V5czogcGdBZG1p bi5Ccm93c2VyLmVkaXRvcl9zaG9ydGN1dF9rZXlzLAotICAgICAgICAgIHRhYlNpemU6IHBnQWRt aW4uQnJvd3Nlci5lZGl0b3Jfb3B0aW9ucy50YWJTaXplLAotICAgICAgICAgIGxpbmVXcmFwcGlu ZzogcGdBZG1pbi5Ccm93c2VyLmVkaXRvcl9vcHRpb25zLndyYXBDb2RlLAotICAgICAgICAgIGF1 dG9DbG9zZUJyYWNrZXRzOiBwZ0FkbWluLkJyb3dzZXIuZWRpdG9yX29wdGlvbnMuaW5zZXJ0X3Bh aXJfYnJhY2tldHMsCi0gICAgICAgICAgbWF0Y2hCcmFja2V0czogcGdBZG1pbi5Ccm93c2VyLmVk aXRvcl9vcHRpb25zLmJyYWNlX21hdGNoaW5nLAogICAgICAgICB9KTsKIAorICAgICAgdGhpcy5y ZWZsZWN0UHJlZmVyZW5jZXMoKTsKKworICAgICAgLyogQ2hlY2sgZm9yIHNxbCBlZGl0b3IgcHJl ZmVyZW5jZSBjaGFuZ2VzICovCisgICAgICBsZXQgc2VsZiA9IHRoaXM7CisgICAgICBwZ0Jyb3dz ZXIub25QcmVmZXJlbmNlc0NoYW5nZSgnc3FsZWRpdG9yJywgZnVuY3Rpb24oKSB7CisgICAgICAg IHNlbGYucmVmbGVjdFByZWZlcmVuY2VzKCk7CisgICAgICB9KTsKKwogICAgICAgLyoKICAgICAg ICAqIFdlIHdpbGwgbGlzdGVuIHRvIHRoZSB0YWIgY2hhbmdlIGV2ZW50IHRvIGNoZWNrLCBpZiB0 aGUgU1FMIHRhYiBoYXMKICAgICAgICAqIGJlZW4gY2xpY2tlZCBvciwgbm90LgpAQCAtMTU3MSw3 ICsxNTkyLDYgQEAgZGVmaW5lKFsKICAgKSB7CiAgICAgdmFyIHByb3RvID0gKE1vZGVsICYmIE1v ZGVsLnByb3RvdHlwZSkgfHwgTW9kZWwsCiAgICAgICBzY2hlbWEgPSBzdWJzY2hlbWEgfHwgKHBy b3RvICYmIHByb3RvLnNjaGVtYSksCi0gICAgICBwZ0Jyb3dzZXIgPSB3aW5kb3cucGdBZG1pbi5C cm93c2VyLAogICAgICAgZmllbGRzID0gW10sCiAgICAgICBncm91cEluZm8gPSB7fTsKIApAQCAt MjA1MSw2ICsyMDcxLDI1IEBAIGRlZmluZShbCiAgICAgICByZXR1cm4gdGhpcy5zcWxDdHJsLmdl dFZhbHVlKCk7CiAgICAgfSwKIAorICAgIHJlZmxlY3RQcmVmZXJlbmNlczogZnVuY3Rpb24oKSB7 CisgICAgICB2YXIgc2VsZiA9IHRoaXM7CisgICAgICAvKiBzZWxmLnNxbEN0cmwgaXMgbnVsbCB3 aGVuIERlZmluaXRpb24gdGFiIGlzIG5vdCBhY3RpdmUgKi8KKyAgICAgIGlmKHNlbGYuc3FsQ3Ry bCkgeworICAgICAgICBsZXQgc3FsRWRpdFByZWZlcmVuY2VzID0gcGdBZG1pbi5Ccm93c2VyLmdl dF9wcmVmZXJlbmNlc19mb3JfbW9kdWxlKCdzcWxlZGl0b3InKTsKKworICAgICAgICAkKHNlbGYu c3FsQ3RybC5nZXRXcmFwcGVyRWxlbWVudCgpKS5jc3MoCisgICAgICAgICAgJ2ZvbnQtc2l6ZScs U3FsRWRpdG9yVXRpbHMuY2FsY0ZvbnRTaXplKHNxbEVkaXRQcmVmZXJlbmNlcy5zcWxfZm9udF9z aXplKQorICAgICAgICApOworICAgICAgICBzZWxmLnNxbEN0cmwuc2V0T3B0aW9uKCdpbmRlbnRX aXRoVGFicycsICFzcWxFZGl0UHJlZmVyZW5jZXMudXNlX3NwYWNlcyk7CisgICAgICAgIHNlbGYu c3FsQ3RybC5zZXRPcHRpb24oJ2luZGVudFVuaXQnLCBzcWxFZGl0UHJlZmVyZW5jZXMudGFiX3Np emUpOworICAgICAgICBzZWxmLnNxbEN0cmwuc2V0T3B0aW9uKCd0YWJTaXplJywgc3FsRWRpdFBy ZWZlcmVuY2VzLnRhYl9zaXplKTsKKyAgICAgICAgc2VsZi5zcWxDdHJsLnNldE9wdGlvbignbGlu ZVdyYXBwaW5nJywgc3FsRWRpdFByZWZlcmVuY2VzLndyYXBfY29kZSk7CisgICAgICAgIHNlbGYu c3FsQ3RybC5zZXRPcHRpb24oJ2F1dG9DbG9zZUJyYWNrZXRzJywgc3FsRWRpdFByZWZlcmVuY2Vz Lmluc2VydF9wYWlyX2JyYWNrZXRzKTsKKyAgICAgICAgc2VsZi5zcWxDdHJsLnNldE9wdGlvbign bWF0Y2hCcmFja2V0cycsIHNxbEVkaXRQcmVmZXJlbmNlcy5icmFjZV9tYXRjaGluZyk7CisgICAg ICAgIHNlbGYuc3FsQ3RybC5yZWZyZXNoKCk7CisgICAgICB9CisgICAgfSwKKwogICAgIHJlbmRl cjogZnVuY3Rpb24oKSB7CiAgICAgICAvLyBDbGVhbiB1cCB0aGUgZXhpc3Rpbmcgc3FsIGNvbnRy b2wKICAgICAgIGlmICh0aGlzLnNxbEN0cmwpIHsKQEAgLTIwOTMsMTQgKzIxMzIsMTQgQEAgZGVm aW5lKFsKICAgICAgICAgICBsaW5lTnVtYmVyczogdHJ1ZSwKICAgICAgICAgICBtb2RlOiAndGV4 dC94LXBnc3FsJywKICAgICAgICAgICBleHRyYUtleXM6IHBnQWRtaW4uQnJvd3Nlci5lZGl0b3Jf c2hvcnRjdXRfa2V5cywKLSAgICAgICAgICBpbmRlbnRXaXRoVGFiczogcGdBZG1pbi5Ccm93c2Vy LmVkaXRvcl9vcHRpb25zLmluZGVudF93aXRoX3RhYnMsCi0gICAgICAgICAgaW5kZW50VW5pdDog cGdBZG1pbi5Ccm93c2VyLmVkaXRvcl9vcHRpb25zLnRhYlNpemUsCi0gICAgICAgICAgdGFiU2l6 ZTogcGdBZG1pbi5Ccm93c2VyLmVkaXRvcl9vcHRpb25zLnRhYlNpemUsCi0gICAgICAgICAgbGlu ZVdyYXBwaW5nOiBwZ0FkbWluLkJyb3dzZXIuZWRpdG9yX29wdGlvbnMud3JhcENvZGUsCi0gICAg ICAgICAgYXV0b0Nsb3NlQnJhY2tldHM6IHBnQWRtaW4uQnJvd3Nlci5lZGl0b3Jfb3B0aW9ucy5p bnNlcnRfcGFpcl9icmFja2V0cywKLSAgICAgICAgICBtYXRjaEJyYWNrZXRzOiBwZ0FkbWluLkJy b3dzZXIuZWRpdG9yX29wdGlvbnMuYnJhY2VfbWF0Y2hpbmcsCiAgICAgICAgIH0pOwogCisgICAg ICBzZWxmLnJlZmxlY3RQcmVmZXJlbmNlcygpOworICAgICAgLyogQ2hlY2sgZm9yIHNxbCBlZGl0 b3IgcHJlZmVyZW5jZSBjaGFuZ2VzICovCisgICAgICBwZ0Jyb3dzZXIub25QcmVmZXJlbmNlc0No YW5nZSgnc3FsZWRpdG9yJywgZnVuY3Rpb24oKSB7CisgICAgICAgIHNlbGYucmVmbGVjdFByZWZl cmVuY2VzKCk7CisgICAgICB9KTsKKwogICAgICAgLy8gRGlzYWJsZSBlZGl0b3IKICAgICAgIGlm IChpc0Rpc2FibGVkKSB7CiAgICAgICAgIC8vIHNldCByZWFkIG9ubHkgbW9kZSB0byB0cnVlIGlu c3RlYWQgb2YgJ25vY3Vyc29yJywgYW5kIGhpZGUgY3Vyc29yIHVzaW5nIGEgY2xhc3Mgc28gdGhh dCBjb3B5aW5nIGlzIGVuYWJsZWQKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9r ZXlib2FyZF9zaG9ydGN1dHMuanMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMva2V5Ym9hcmRfc2hv cnRjdXRzLmpzCmluZGV4IDFmZTA3ZTliLi41N2Q4YTMwMyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vc3RhdGljL2pzL2tleWJvYXJkX3Nob3J0Y3V0cy5qcworKysgYi93ZWIvcGdhZG1pbi9zdGF0 aWMvanMva2V5Ym9hcmRfc2hvcnRjdXRzLmpzCkBAIC04LDYgKzgsNyBAQAogLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8KIAogaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JzsKK2ltcG9ydCBnZXR0ZXh0IGZyb20gJ3Nv dXJjZXMvZ2V0dGV4dCc7CiAKIGNvbnN0IFBFUklPRF9LRVkgPSAxOTAsCiAgIEZXRF9TTEFTSF9L RVkgPSAxOTEsCkBAIC00OSw2ICs1MCw1MiBAQCBmdW5jdGlvbiBpc0N0cmxBbHRCb3RoKGV2ZW50 KSB7CiAgIHJldHVybiBldmVudC5jdHJsS2V5ICYmIGV2ZW50LmFsdEtleSAmJiAhZXZlbnQuc2hp ZnRLZXk7CiB9CiAKKy8qIFJldHVybnMgdGhlIGtleSBvZiBzaG9ydGN1dCAqLworZnVuY3Rpb24g c2hvcnRjdXRfa2V5KHNob3J0Y3V0KSB7CisgIGxldCBrZXkgPSAnJzsKKyAgaWYoc2hvcnRjdXRb J2tleSddICYmIHNob3J0Y3V0WydrZXknXVsnY2hhciddKSB7CisgICAga2V5ID0gc2hvcnRjdXRb J2tleSddWydjaGFyJ10udG9VcHBlckNhc2UoKTsKKyAgfQorICByZXR1cm4ga2V5OworfQorCisv KiBDb252ZXJ0cyBzaG9ydGN1dCBvYmplY3QgdG8gdGl0bGUgcmVwcmVzZW50YXRpb24KKyAqIFNo b3J0Y3V0IG9iamVjdCBpcyBicm93c2VyLmdldF9wcmVmZXJlbmNlKCkudmFsdWUKKyAqLworZnVu Y3Rpb24gc2hvcnRjdXRfdGl0bGUodGl0bGUsIHNob3J0Y3V0KSB7CisgIGxldCB0ZXh0X3JlcHJl c2VudGF0aW9uID0gJyc7CisKKyAgaWYgKHR5cGVvZiBzaG9ydGN1dCA9PT0gJ3VuZGVmaW5lZCcg fHwgc2hvcnRjdXQgPT09IG51bGwpIHsKKyAgICByZXR1cm4gdGV4dF9yZXByZXNlbnRhdGlvbjsK KyAgfQorICBpZihzaG9ydGN1dFsnYWx0J10pIHsKKyAgICB0ZXh0X3JlcHJlc2VudGF0aW9uID0g Z2V0dGV4dCgnQWx0JykgKyAnKyc7CisgIH0KKyAgaWYoc2hvcnRjdXRbJ3NoaWZ0J10pIHsKKyAg ICB0ZXh0X3JlcHJlc2VudGF0aW9uICs9IGdldHRleHQoJ1NoaWZ0JykgKyAnKyc7CisgIH0KKyAg aWYoc2hvcnRjdXRbJ2NvbnRyb2wnXSkgeworICAgIHRleHRfcmVwcmVzZW50YXRpb24gKz0gZ2V0 dGV4dCgnQ3RybCcpICsgJysnOworICB9CisgIHRleHRfcmVwcmVzZW50YXRpb24gKz0gc2hvcnRj dXRfa2V5KHNob3J0Y3V0KTsKKworICByZXR1cm4gZ2V0dGV4dCgnJSh0aXRsZSlzICglKHRleHRf cmVwcmVzZW50YXRpb24pcyknLHsKKyAgICAndGl0bGUnOiB0aXRsZSwKKyAgICAndGV4dF9yZXBy ZXNlbnRhdGlvbic6IHRleHRfcmVwcmVzZW50YXRpb24sCisgIH0pOworfQorCisvKiBSZXR1cm5z IHRoZSBrZXkgY2hhciBvZiBzaG9ydGN1dAorICogc2hvcnRjdXQgb2JqZWN0IGlzIGJyb3dzZXIu Z2V0X3ByZWZlcmVuY2UoKS52YWx1ZQorICovCitmdW5jdGlvbiBzaG9ydGN1dF9hY2Nlc3NrZXlf dGl0bGUodGl0bGUsIHNob3J0Y3V0KSB7CisgIHJldHVybiBnZXR0ZXh0KCclKHRpdGxlKXMgKGFj Y2Vzc2tleSArICUoa2V5KXMpJyx7CisgICAgJ3RpdGxlJzogdGl0bGUsCisgICAgJ2tleSc6IHNo b3J0Y3V0X2tleShzaG9ydGN1dCksCisgIH0pOworfQorCisKIGZ1bmN0aW9uIF9zdG9wRXZlbnRQ cm9wYWdhdGlvbihldmVudCkgewogICBldmVudC5jYW5jZWxCdWJibGUgPSB0cnVlOwogICBldmVu dC5wcmV2ZW50RGVmYXVsdCgpOwpAQCAtMTI0LDE5ICsxNzEsMTkgQEAgZnVuY3Rpb24gZ2V0SW5u ZXJQYW5lbCgkZWwsIGRpcmVjdGlvbikgewogCiAvKiBRdWVyeSB0b29sOiBLZXlib2FyZCBTaG9y dGN1dHMgaGFuZGxpbmcgKi8KIGZ1bmN0aW9uIGtleWJvYXJkU2hvcnRjdXRzUXVlcnlUb29sKAot ICBzcWxFZGl0b3JDb250cm9sbGVyLCBrZXlib2FyZFNob3J0Y3V0Q29uZmlnLCBxdWVyeVRvb2xB Y3Rpb25zLCBldmVudAorICBzcWxFZGl0b3JDb250cm9sbGVyLCBxdWVyeVRvb2xBY3Rpb25zLCBl dmVudAogKSB7CiAgIGlmIChzcWxFZGl0b3JDb250cm9sbGVyLmlzUXVlcnlSdW5uaW5nKCkpIHsK ICAgICByZXR1cm47CiAgIH0KICAgbGV0IGtleUNvZGUgPSBldmVudC53aGljaCB8fCBldmVudC5r ZXlDb2RlLCBwYW5lbF9pZDsKLSAgbGV0IGV4ZWN1dGVLZXlzID0ga2V5Ym9hcmRTaG9ydGN1dENv bmZpZ1snZXhlY3V0ZSddOwotICBsZXQgZXhwbGFpbktleXMgPSBrZXlib2FyZFNob3J0Y3V0Q29u ZmlnWydleHBsYWluJ107Ci0gIGxldCBleHBsYWluQW5hbHl6ZUtleXMgPSBrZXlib2FyZFNob3J0 Y3V0Q29uZmlnWydleHBsYWluX2FuYWx5emUnXTsKLSAgbGV0IGRvd25sb2FkQ3N2S2V5cyA9IGtl eWJvYXJkU2hvcnRjdXRDb25maWdbJ2Rvd25sb2FkX2NzdiddOwotICBsZXQgbmV4dFBhbmVsS2V5 cyA9IGtleWJvYXJkU2hvcnRjdXRDb25maWdbJ21vdmVfbmV4dCddOwotICBsZXQgcHJldmlvdXNQ YW5lbEtleXMgPSBrZXlib2FyZFNob3J0Y3V0Q29uZmlnWydtb3ZlX3ByZXZpb3VzJ107Ci0gIGxl dCB0b2dnbGVDYXNlS2V5cyA9IGtleWJvYXJkU2hvcnRjdXRDb25maWdbJ3RvZ2dsZV9jYXNlJ107 CisgIGxldCBleGVjdXRlS2V5cyA9IHNxbEVkaXRvckNvbnRyb2xsZXIucHJlZmVyZW5jZXMuZXhl Y3V0ZV9xdWVyeTsKKyAgbGV0IGV4cGxhaW5LZXlzID0gc3FsRWRpdG9yQ29udHJvbGxlci5wcmVm ZXJlbmNlcy5leHBsYWluX3F1ZXJ5OworICBsZXQgZXhwbGFpbkFuYWx5emVLZXlzID0gc3FsRWRp dG9yQ29udHJvbGxlci5wcmVmZXJlbmNlcy5leHBsYWluX2FuYWx5emVfcXVlcnk7CisgIGxldCBk b3dubG9hZENzdktleXMgPSBzcWxFZGl0b3JDb250cm9sbGVyLnByZWZlcmVuY2VzLmRvd25sb2Fk X2NzdjsKKyAgbGV0IG5leHRQYW5lbEtleXMgPSBzcWxFZGl0b3JDb250cm9sbGVyLnByZWZlcmVu Y2VzLm1vdmVfbmV4dDsKKyAgbGV0IHByZXZpb3VzUGFuZWxLZXlzID0gc3FsRWRpdG9yQ29udHJv bGxlci5wcmVmZXJlbmNlcy5tb3ZlX3ByZXZpb3VzOworICBsZXQgdG9nZ2xlQ2FzZUtleXMgPSBz cWxFZGl0b3JDb250cm9sbGVyLnByZWZlcmVuY2VzLnRvZ2dsZV9jYXNlOwogCiAgIGlmICh0aGlz LnZhbGlkYXRlU2hvcnRjdXRLZXlzKGV4ZWN1dGVLZXlzLCBldmVudCkpIHsKICAgICB0aGlzLl9z dG9wRXZlbnRQcm9wYWdhdGlvbihldmVudCk7CkBAIC0yNDUsNCArMjkyLDcgQEAgbW9kdWxlLmV4 cG9ydHMgPSB7CiAgIGlzQWx0U2hpZnRCb3RoOiBpc0FsdFNoaWZ0Qm90aCwKICAgaXNDdHJsU2hp ZnRCb3RoOiBpc0N0cmxTaGlmdEJvdGgsCiAgIGlzQ3RybEFsdEJvdGg6IGlzQ3RybEFsdEJvdGgs CisgIHNob3J0Y3V0X2tleSA6IHNob3J0Y3V0X2tleSwKKyAgc2hvcnRjdXRfdGl0bGUgOiBzaG9y dGN1dF90aXRsZSwKKyAgc2hvcnRjdXRfYWNjZXNza2V5X3RpdGxlIDogc2hvcnRjdXRfYWNjZXNz a2V5X3RpdGxlLAogfTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0 b3IvcXVlcnlfdG9vbF9hY3Rpb25zLmpzIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRv ci9xdWVyeV90b29sX2FjdGlvbnMuanMKaW5kZXggNDExYzZlZDUuLjZjYmJjZTBmIDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2xfYWN0aW9ucy5q cworKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2xfYWN0aW9u cy5qcwpAQCAtMTE5LDU4ICsxMTksNiBAQCBsZXQgcXVlcnlUb29sQWN0aW9ucyA9IHsKICAgICB3 aW5kb3cudG9wLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1cigpOwogICB9LAogCi0gIGdldEtl eWJvYXJkU2hvcnRjdXRzOiBmdW5jdGlvbiAoc3FsRWRpdG9yQ29udHJvbGxlcikgewotICAgIGxl dCBleGVjdXRlUXVlcnlQcmVmID0gd2luZG93LnRvcC5wZ0FkbWluLkJyb3dzZXIuZ2V0X3ByZWZl cmVuY2UoCi0gICAgICAnc3FsZWRpdG9yJywgJ2V4ZWN1dGVfcXVlcnknKTsKLSAgICBsZXQgZXhw bGFpblF1ZXJ5UHJlZiA9IHdpbmRvdy50b3AucGdBZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNl KAotICAgICAgJ3NxbGVkaXRvcicsICdleHBsYWluX3F1ZXJ5Jyk7Ci0gICAgbGV0IGV4cGxhaW5B bmFseXplUXVlcnlQcmVmID0gd2luZG93LnRvcC5wZ0FkbWluLkJyb3dzZXIuZ2V0X3ByZWZlcmVu Y2UoCi0gICAgICAnc3FsZWRpdG9yJywgJ2V4cGxhaW5fYW5hbHl6ZV9xdWVyeScpOwotICAgIGxl dCBkb3dubG9hZENzdlByZWYgPSB3aW5kb3cudG9wLnBnQWRtaW4uQnJvd3Nlci5nZXRfcHJlZmVy ZW5jZSgKLSAgICAgICdzcWxlZGl0b3InLCAnZG93bmxvYWRfY3N2Jyk7Ci0gICAgbGV0IG5leHRQ YW5lbFBlcmYgPSB3aW5kb3cudG9wLnBnQWRtaW4uQnJvd3Nlci5nZXRfcHJlZmVyZW5jZSgKLSAg ICAgICdzcWxlZGl0b3InLCAnbW92ZV9uZXh0Jyk7Ci0gICAgbGV0IHByZXZpb3VzUGFuZWxQZXJm ID0gd2luZG93LnRvcC5wZ0FkbWluLkJyb3dzZXIuZ2V0X3ByZWZlcmVuY2UoCi0gICAgICAnc3Fs ZWRpdG9yJywgJ21vdmVfcHJldmlvdXMnKTsKLSAgICBsZXQgdG9nZ2xlQ2FzZVBlcmYgPSB3aW5k b3cudG9wLnBnQWRtaW4uQnJvd3Nlci5nZXRfcHJlZmVyZW5jZSgKLSAgICAgICdzcWxlZGl0b3In LCAndG9nZ2xlX2Nhc2UnKTsKLQotICAgIGlmKCFleGVjdXRlUXVlcnlQcmVmICYmIHNxbEVkaXRv ckNvbnRyb2xsZXIuaGFuZGxlci5pc19uZXdfYnJvd3Nlcl90YWIpIHsKLSAgICAgIGV4ZWN1dGVR dWVyeVByZWYgPSB3aW5kb3cub3BlbmVyLnBnQWRtaW4uQnJvd3Nlci5nZXRfcHJlZmVyZW5jZSgK LSAgICAgICAgJ3NxbGVkaXRvcicsICdleGVjdXRlX3F1ZXJ5JwotICAgICAgKSwKLSAgICAgIGV4 cGxhaW5RdWVyeVByZWYgPSB3aW5kb3cub3BlbmVyLnBnQWRtaW4uQnJvd3Nlci5nZXRfcHJlZmVy ZW5jZSgKLSAgICAgICAgJ3NxbGVkaXRvcicsICdleHBsYWluX3F1ZXJ5JwotICAgICAgKSwKLSAg ICAgIGV4cGxhaW5BbmFseXplUXVlcnlQcmVmID0gd2luZG93Lm9wZW5lci5wZ0FkbWluLkJyb3dz ZXIuZ2V0X3ByZWZlcmVuY2UoCi0gICAgICAgICdzcWxlZGl0b3InLCAnZXhwbGFpbl9hbmFseXpl X3F1ZXJ5JwotICAgICAgKSwKLSAgICAgIGRvd25sb2FkQ3N2UHJlZiA9IHdpbmRvdy5vcGVuZXIu cGdBZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNlKAotICAgICAgICAnc3FsZWRpdG9yJywgJ2Rv d25sb2FkX2NzdicKLSAgICAgICksCi0gICAgICBuZXh0UGFuZWxQZXJmID0gd2luZG93Lm9wZW5l ci5wZ0FkbWluLkJyb3dzZXIuZ2V0X3ByZWZlcmVuY2UoCi0gICAgICAgICdzcWxlZGl0b3InLCAn bW92ZV9uZXh0JwotICAgICAgKSwKLSAgICAgIHByZXZpb3VzUGFuZWxQZXJmID0gd2luZG93Lm9w ZW5lci5wZ0FkbWluLkJyb3dzZXIuZ2V0X3ByZWZlcmVuY2UoCi0gICAgICAgICdzcWxlZGl0b3In LCAnbW92ZV9wcmV2aW91cycKLSAgICAgICksCi0gICAgICB0b2dnbGVDYXNlUGVyZiA9IHdpbmRv dy5vcGVuZXIucGdBZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNlKAotICAgICAgICAnc3FsZWRp dG9yJywgJ3RvZ2dsZV9jYXNlJwotICAgICAgKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gewotICAg ICAgJ2V4ZWN1dGUnOiBleGVjdXRlUXVlcnlQcmVmLnZhbHVlLAotICAgICAgJ2V4cGxhaW4nOiBl eHBsYWluUXVlcnlQcmVmLnZhbHVlLAotICAgICAgJ2V4cGxhaW5fYW5hbHl6ZSc6IGV4cGxhaW5B bmFseXplUXVlcnlQcmVmLnZhbHVlLAotICAgICAgJ2Rvd25sb2FkX2Nzdic6IGRvd25sb2FkQ3N2 UHJlZi52YWx1ZSwKLSAgICAgICdtb3ZlX25leHQnOiBuZXh0UGFuZWxQZXJmLnZhbHVlLAotICAg ICAgJ21vdmVfcHJldmlvdXMnOiBwcmV2aW91c1BhbmVsUGVyZi52YWx1ZSwKLSAgICAgICd0b2dn bGVfY2FzZSc6IHRvZ2dsZUNhc2VQZXJmLnZhbHVlLAotICAgIH07Ci0KLSAgfSwKLQogICB0b2dn bGVDYXNlT2ZTZWxlY3RlZFRleHQ6IGZ1bmN0aW9uIChzcWxFZGl0b3JDb250cm9sbGVyKSB7CiAg ICAgbGV0IGNvZGVNaXJyb3JPYmogPSBzcWxFZGl0b3JDb250cm9sbGVyLmdyaWRWaWV3LnF1ZXJ5 X3Rvb2xfb2JqOwogICAgIGxldCBzZWxlY3RlZFRleHQgPSBjb2RlTWlycm9yT2JqLmdldFNlbGVj dGlvbigpOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9xdWVy eV90b29sX3ByZWZlcmVuY2VzLmpzIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9x dWVyeV90b29sX3ByZWZlcmVuY2VzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwLi4zZWUyZjBiYwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9z cWxlZGl0b3IvcXVlcnlfdG9vbF9wcmVmZXJlbmNlcy5qcwpAQCAtMCwwICsxLDE3OSBAQAoraW1w b3J0IHtzaG9ydGN1dF9rZXksIHNob3J0Y3V0X2FjY2Vzc2tleV90aXRsZSwgc2hvcnRjdXRfdGl0 bGV9CisgIGZyb20gJ3NvdXJjZXMva2V5Ym9hcmRfc2hvcnRjdXRzJzsKK2ltcG9ydCAqIGFzIFNx bEVkaXRvclV0aWxzIGZyb20gJ3NvdXJjZXMvc3FsZWRpdG9yX3V0aWxzJzsKK2ltcG9ydCAkIGZy b20gJ2pxdWVyeSc7CisKK2Z1bmN0aW9uIHJlZmxlY3RQcmVmZXJlbmNlcyhzcWxFZGl0b3IpIHsK KyAgbGV0ICRlbCA9IHNxbEVkaXRvci4kZWwsCisgICAgcHJlZmVyZW5jZXMgPSBzcWxFZGl0b3Iu cHJlZmVyZW5jZXM7CisKKyAgaWYoc3FsRWRpdG9yLmhhbmRsZXIuc2xpY2tncmlkKSB7CisgICAg c3FsRWRpdG9yLmhhbmRsZXIuc2xpY2tncmlkLkNTVk9wdGlvbnMgPSB7CisgICAgICBxdW90aW5n OiBzcWxFZGl0b3IucHJlZmVyZW5jZXMucmVzdWx0c19ncmlkX3F1b3RpbmcsCisgICAgICBxdW90 ZV9jaGFyOiBzcWxFZGl0b3IucHJlZmVyZW5jZXMucmVzdWx0c19ncmlkX3F1b3RlX2NoYXIsCisg ICAgICBmaWVsZF9zZXBhcmF0b3I6IHNxbEVkaXRvci5wcmVmZXJlbmNlcy5yZXN1bHRzX2dyaWRf ZmllbGRfc2VwYXJhdG9yLAorICAgIH07CisgIH0KKworICAvKiBBY2Nlc3NlZCB1c2luZyBhY2Nl c3NrZXkgZGlyZWN0IHcvbyBjdHJsLGF0bCxzaGlmdCAqLworICAkZWwuZmluZCgnI2J0bi1sb2Fk LWZpbGUnKQorICAgIC5hdHRyKCd0aXRsZScsIHNob3J0Y3V0X2FjY2Vzc2tleV90aXRsZSgnT3Bl biBGaWxlJyxwcmVmZXJlbmNlcy5idG5fb3Blbl9maWxlKSkKKyAgICAuYXR0cignYWNjZXNza2V5 Jywgc2hvcnRjdXRfa2V5KHByZWZlcmVuY2VzLmJ0bl9vcGVuX2ZpbGUpKTsKKworICAkZWwuZmlu ZCgnI2J0bi1zYXZlJykKKyAgICAuYXR0cigndGl0bGUnLCBzaG9ydGN1dF9hY2Nlc3NrZXlfdGl0 bGUoJ1NhdmUgRmlsZScscHJlZmVyZW5jZXMuYnRuX3NhdmVfZmlsZSkpCisgICAgLmF0dHIoJ2Fj Y2Vzc2tleScsIHNob3J0Y3V0X2tleShwcmVmZXJlbmNlcy5idG5fc2F2ZV9maWxlKSk7CisKKyAg JGVsLmZpbmQoJyNidG4tZmluZC1tZW51LWRyb3Bkb3duJykKKyAgICAuYXR0cigndGl0bGUnLCBz aG9ydGN1dF9hY2Nlc3NrZXlfdGl0bGUoJ0ZpbmQnLHByZWZlcmVuY2VzLmJ0bl9maW5kX29wdGlv bnMpKQorICAgIC5hdHRyKCdhY2Nlc3NrZXknLCBzaG9ydGN1dF9rZXkocHJlZmVyZW5jZXMuYnRu X2ZpbmRfb3B0aW9ucykpOworCisgICRlbC5maW5kKCcjYnRuLWNvcHktcm93JykKKyAgICAuYXR0 cigndGl0bGUnLCBzaG9ydGN1dF9hY2Nlc3NrZXlfdGl0bGUoJ0NvcHknLHByZWZlcmVuY2VzLmJ0 bl9jb3B5X3JvdykpCisgICAgLmF0dHIoJ2FjY2Vzc2tleScsIHNob3J0Y3V0X2tleShwcmVmZXJl bmNlcy5idG5fY29weV9yb3cpKTsKKworICAkZWwuZmluZCgnI2J0bi1wYXN0ZS1yb3cnKQorICAg IC5hdHRyKCd0aXRsZScsIHNob3J0Y3V0X2FjY2Vzc2tleV90aXRsZSgnUGFzdGUnLHByZWZlcmVu Y2VzLmJ0bl9wYXN0ZV9yb3cpKQorICAgIC5hdHRyKCdhY2Nlc3NrZXknLCBzaG9ydGN1dF9rZXko cHJlZmVyZW5jZXMuYnRuX3Bhc3RlX3JvdykpOworCisgICRlbC5maW5kKCcjYnRuLWRlbGV0ZS1y b3cnKQorICAgIC5hdHRyKCd0aXRsZScsIHNob3J0Y3V0X2FjY2Vzc2tleV90aXRsZSgnRGVsZXRl JyxwcmVmZXJlbmNlcy5idG5fZGVsZXRlX3JvdykpCisgICAgLmF0dHIoJ2FjY2Vzc2tleScsIHNo b3J0Y3V0X2tleShwcmVmZXJlbmNlcy5idG5fZGVsZXRlX3JvdykpOworCisgICRlbC5maW5kKCcj YnRuLWZpbHRlcicpCisgICAgLmF0dHIoJ3RpdGxlJywgc2hvcnRjdXRfYWNjZXNza2V5X3RpdGxl KCdGaWx0ZXInLHByZWZlcmVuY2VzLmJ0bl9maWx0ZXJfZGlhbG9nKSkKKyAgICAuYXR0cignYWNj ZXNza2V5Jywgc2hvcnRjdXRfa2V5KHByZWZlcmVuY2VzLmJ0bl9maWx0ZXJfZGlhbG9nKSk7CisK KyAgJGVsLmZpbmQoJyNidG4tZmlsdGVyLWRyb3Bkb3duJykKKyAgICAuYXR0cigndGl0bGUnLCBz aG9ydGN1dF9hY2Nlc3NrZXlfdGl0bGUoJ0ZpbHRlciBvcHRpb25zJyxwcmVmZXJlbmNlcy5idG5f ZmlsdGVyX29wdGlvbnMpKQorICAgIC5hdHRyKCdhY2Nlc3NrZXknLCBzaG9ydGN1dF9rZXkocHJl ZmVyZW5jZXMuYnRuX2ZpbHRlcl9vcHRpb25zKSk7CisKKyAgJGVsLmZpbmQoJyNidG4tcm93cy1s aW1pdCcpCisgICAgLmF0dHIoJ3RpdGxlJywgc2hvcnRjdXRfYWNjZXNza2V5X3RpdGxlKCdSb3dz IGxpbWl0JyxwcmVmZXJlbmNlcy5idG5fcm93c19saW1pdCkpCisgICAgLmF0dHIoJ2FjY2Vzc2tl eScsIHNob3J0Y3V0X2tleShwcmVmZXJlbmNlcy5idG5fcm93c19saW1pdCkpOworCisgICRlbC5m aW5kKCcjYnRuLXF1ZXJ5LWRyb3Bkb3duJykKKyAgICAuYXR0cigndGl0bGUnLCBzaG9ydGN1dF9h Y2Nlc3NrZXlfdGl0bGUoJ0V4ZWN1dGUgb3B0aW9ucycscHJlZmVyZW5jZXMuYnRuX2V4ZWN1dGVf b3B0aW9ucykpCisgICAgLmF0dHIoJ2FjY2Vzc2tleScsIHNob3J0Y3V0X2tleShwcmVmZXJlbmNl cy5idG5fZXhlY3V0ZV9vcHRpb25zKSk7CisKKyAgJGVsLmZpbmQoJyNidG4tY2FuY2VsLXF1ZXJ5 JykKKyAgICAuYXR0cigndGl0bGUnLCBzaG9ydGN1dF9hY2Nlc3NrZXlfdGl0bGUoJ0NhbmNlbCBx dWVyeScscHJlZmVyZW5jZXMuYnRuX2NhbmNlbF9xdWVyeSkpCisgICAgLmF0dHIoJ2FjY2Vzc2tl eScsIHNob3J0Y3V0X2tleShwcmVmZXJlbmNlcy5idG5fY2FuY2VsX3F1ZXJ5KSk7CisKKyAgJGVs LmZpbmQoJyNidG4tY2xlYXItZHJvcGRvd24nKQorICAgIC5hdHRyKCd0aXRsZScsIHNob3J0Y3V0 X2FjY2Vzc2tleV90aXRsZSgnQ2xlYXInLHByZWZlcmVuY2VzLmJ0bl9jbGVhcl9vcHRpb25zKSkK KyAgICAuYXR0cignYWNjZXNza2V5Jywgc2hvcnRjdXRfa2V5KHByZWZlcmVuY2VzLmJ0bl9jbGVh cl9vcHRpb25zKSk7CisKKyAgJGVsLmZpbmQoJyNidG4tY29ubi1zdGF0dXMnKQorICAgIC5hdHRy KCdhY2Nlc3NrZXknLCBzaG9ydGN1dF9rZXkocHJlZmVyZW5jZXMuYnRuX2Nvbm5fc3RhdHVzKSkK KyAgICAuZmluZCgnaScpCisgICAgLmF0dHIoJ3RpdGxlJywKKyAgICAgIHNob3J0Y3V0X2FjY2Vz c2tleV90aXRsZSgnQ29ubmVjdGlvbiBzdGF0dXMgKGNsaWNrIGZvciBkZXRhaWxzKScsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcHJlZmVyZW5jZXMuYnRuX2Nvbm5fc3RhdHVzKSk7CisK KyAgLyogQWNjZXNzZWQgdXNpbmcgY3RybCxhdGwsc2hpZnQgYW5kIGtleSAqLworICAkZWwuZmlu ZCgnI2J0bi1mbGFzaCcpCisgICAgLmF0dHIoJ3RpdGxlJywKKyAgICAgIHNob3J0Y3V0X3RpdGxl KCdFeGVjdXRlL1JlZnJlc2gnLHByZWZlcmVuY2VzLmV4ZWN1dGVfcXVlcnkpKTsKKworICAkZWwu ZmluZCgnI2J0bi1mbGFzaC1tZW51IHNwYW4nKQorICAgIC50ZXh0KHNob3J0Y3V0X3RpdGxlKCdF eGVjdXRlL1JlZnJlc2gnLHByZWZlcmVuY2VzLmV4ZWN1dGVfcXVlcnkpKTsKKworICAkZWwuZmlu ZCgnI2J0bi1leHBsYWluIHNwYW4nKQorICAgIC50ZXh0KHNob3J0Y3V0X3RpdGxlKCdFeHBsYWlu JyxwcmVmZXJlbmNlcy5leHBsYWluX3F1ZXJ5KSk7CisKKyAgJGVsLmZpbmQoJyNidG4tZXhwbGFp bi1hbmFseXplIHNwYW4nKQorICAgIC50ZXh0KHNob3J0Y3V0X3RpdGxlKCdFeHBsYWluIEFuYWx5 emUnLHByZWZlcmVuY2VzLmV4cGxhaW5fYW5hbHl6ZV9xdWVyeSkpOworCisgICRlbC5maW5kKCcj YnRuLWRvd25sb2FkJykKKyAgICAuYXR0cigndGl0bGUnLAorICAgICAgc2hvcnRjdXRfdGl0bGUo J0Rvd25sb2FkIGFzIENTVicscHJlZmVyZW5jZXMuZG93bmxvYWRfY3N2KSk7CisKKyAgLyogU2V0 IEF1dG8tY29tbWl0IGFuZCBhdXRvLXJvbGxiYWNrIG9uIHF1ZXJ5IGVkaXRvciAqLworICBpZiAo cHJlZmVyZW5jZXMuYXV0b19jb21taXQpIHsKKyAgICAkZWwuZmluZCgnLmF1dG8tY29tbWl0Jyku cmVtb3ZlQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7CisgIH0KKyAgZWxzZSB7CisgICAgJGVs LmZpbmQoJy5hdXRvLWNvbW1pdCcpLmFkZENsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOworICB9 CisgIGlmIChwcmVmZXJlbmNlcy5hdXRvX3JvbGxiYWNrKSB7CisgICAgJGVsLmZpbmQoJy5hdXRv LXJvbGxiYWNrJykucmVtb3ZlQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7CisgIH0KKyAgZWxz ZSB7CisgICAgJGVsLmZpbmQoJy5hdXRvLXJvbGxiYWNrJykuYWRkQ2xhc3MoJ3Zpc2liaWxpdHkt aGlkZGVuJyk7CisgIH0KKworICAvKiBTZXQgZXhwbGFpbiBvcHRpb25zIG9uIHF1ZXJ5IGVkaXRv ciAqLworICBpZiAocHJlZmVyZW5jZXMuZXhwbGFpbl92ZXJib3NlKXsKKyAgICAkZWwuZmluZCgn LmV4cGxhaW4tdmVyYm9zZScpLnJlbW92ZUNsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOworICB9 CisgIGVsc2UgeworICAgICRlbC5maW5kKCcuZXhwbGFpbi12ZXJib3NlJykuYWRkQ2xhc3MoJ3Zp c2liaWxpdHktaGlkZGVuJyk7CisgIH0KKworICBpZiAocHJlZmVyZW5jZXMuZXhwbGFpbl9jb3N0 cyl7CisgICAgJGVsLmZpbmQoJy5leHBsYWluLWNvc3RzJykucmVtb3ZlQ2xhc3MoJ3Zpc2liaWxp dHktaGlkZGVuJyk7CisgIH0KKyAgZWxzZSB7CisgICAgJGVsLmZpbmQoJy5leHBsYWluLWNvc3Rz JykuYWRkQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7CisgIH0KKworICBpZiAocHJlZmVyZW5j ZXMuZXhwbGFpbl9idWZmZXJzKXsKKyAgICAkZWwuZmluZCgnLmV4cGxhaW4tYnVmZmVycycpLnJl bW92ZUNsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOworICB9CisgIGVsc2UgeworICAgICRlbC5m aW5kKCcuZXhwbGFpbi1idWZmZXJzJykuYWRkQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7Cisg IH0KKworICBpZiAocHJlZmVyZW5jZXMuZXhwbGFpbl90aW1pbmcpIHsKKyAgICAkZWwuZmluZCgn LmV4cGxhaW4tdGltaW5nJykucmVtb3ZlQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7CisgIH0K KyAgZWxzZSB7CisgICAgJGVsLmZpbmQoJy5leHBsYWluLXRpbWluZycpLmFkZENsYXNzKCd2aXNp YmlsaXR5LWhpZGRlbicpOworICB9CisKKyAgLyogQ29ubmVjdGlvbiBzdGF0dXMgY2hlY2sgKi8K KyAgLyogcmVtb3ZlIHRoZSBzdGF0dXMgY2hlY2tlciBpZiBwcmVzZW50ICovCisgIGlmKHNxbEVk aXRvci5jb25uSW50ZXJ2YWxJZCAhPSBudWxsKSB7CisgICAgY2xlYXJJbnRlcnZhbChzcWxFZGl0 b3IuY29ubkludGVydmFsSWQpOworICAgIHNxbEVkaXRvci5jb25uSW50ZXJ2YWxJZCA9IG51bGw7 CisgIH0KKyAgaWYgKHByZWZlcmVuY2VzLmNvbm5lY3Rpb25fc3RhdHVzKSB7CisgICAgbGV0ICRj b25uX3N0YXR1cyA9ICRlbC5maW5kKCcjYnRuLWNvbm4tc3RhdHVzJyksCisgICAgICAkc3RhdHVz X2VsID0gJGNvbm5fc3RhdHVzLmZpbmQoJ2knKTsKKyAgICAkY29ubl9zdGF0dXMucG9wb3Zlcigp OworCisgICAgJGNvbm5fc3RhdHVzLnJlbW92ZUNsYXNzKCdjb25uZWN0aW9uLXN0YXR1cy1oaWRl Jyk7CisgICAgJGVsLmZpbmQoJy5lZGl0b3ItdGl0bGUnKS5hZGRDbGFzcygnZWRpdG9yLXRpdGxl LWNvbm5lY3Rpb24nKTsKKworICAgIC8vIFRvIHNldCBpbml0aWFsIGNvbm5lY3Rpb24KKyAgICBT cWxFZGl0b3JVdGlscy5mZXRjaENvbm5lY3Rpb25TdGF0dXMoc3FsRWRpdG9yLmhhbmRsZXIsICRj b25uX3N0YXR1cywgJHN0YXR1c19lbCk7CisKKyAgICAvLyBDYWxsaW5nIGl0IGFnYWluIGluIHNw ZWNpZmllZCBpbnRlcnZhbAorICAgIHNxbEVkaXRvci5jb25uSW50ZXJ2YWxJZCA9ICBzZXRJbnRl cnZhbCgKKyAgICAgICAgU3FsRWRpdG9yVXRpbHMuZmV0Y2hDb25uZWN0aW9uU3RhdHVzLmJpbmQo bnVsbCwgc3FsRWRpdG9yLmhhbmRsZXIsICRjb25uX3N0YXR1cywgJHN0YXR1c19lbCksCisgICAg ICAgIHByZWZlcmVuY2VzLmNvbm5lY3Rpb25fc3RhdHVzX2ZldGNoX3RpbWUgKiAxMDAwCisgICAg KTsKKyAgfQorICBlbHNlIHsKKyAgICAkZWwuZmluZCgnI2J0bi1jb25uLXN0YXR1cycpLmFkZENs YXNzKCdjb25uZWN0aW9uLXN0YXR1cy1oaWRlJyk7CisgICAgJGVsLmZpbmQoJy5lZGl0b3ItdGl0 bGUnKS5yZW1vdmVDbGFzcygnZWRpdG9yLXRpdGxlLWNvbm5lY3Rpb24nKTsKKyAgfQorCisgIC8q IENvZGUgTWlycm9yIFByZWZlcmVuY2VzICovCisgIGxldCBzcWxfZm9udF9zaXplID0gU3FsRWRp dG9yVXRpbHMuY2FsY0ZvbnRTaXplKHByZWZlcmVuY2VzLnNxbF9mb250X3NpemUpOworICAkKHNx bEVkaXRvci5xdWVyeV90b29sX29iai5nZXRXcmFwcGVyRWxlbWVudCgpKS5jc3MoJ2ZvbnQtc2l6 ZScsIHNxbF9mb250X3NpemUpOworCisgIHNxbEVkaXRvci5xdWVyeV90b29sX29iai5zZXRPcHRp b24oJ2luZGVudFdpdGhUYWJzJywgIXByZWZlcmVuY2VzLnVzZV9zcGFjZXMpOworICBzcWxFZGl0 b3IucXVlcnlfdG9vbF9vYmouc2V0T3B0aW9uKCdpbmRlbnRVbml0JywgcHJlZmVyZW5jZXMudGFi X3NpemUpOworICBzcWxFZGl0b3IucXVlcnlfdG9vbF9vYmouc2V0T3B0aW9uKCd0YWJTaXplJywg cHJlZmVyZW5jZXMudGFiX3NpemUpOworICBzcWxFZGl0b3IucXVlcnlfdG9vbF9vYmouc2V0T3B0 aW9uKCdsaW5lV3JhcHBpbmcnLCBwcmVmZXJlbmNlcy53cmFwX2NvZGUpOworICBzcWxFZGl0b3Iu cXVlcnlfdG9vbF9vYmouc2V0T3B0aW9uKCdhdXRvQ2xvc2VCcmFja2V0cycsIHByZWZlcmVuY2Vz Lmluc2VydF9wYWlyX2JyYWNrZXRzKTsKKyAgc3FsRWRpdG9yLnF1ZXJ5X3Rvb2xfb2JqLnNldE9w dGlvbignbWF0Y2hCcmFja2V0cycsIHByZWZlcmVuY2VzLmJyYWNlX21hdGNoaW5nKTsKKyAgc3Fs RWRpdG9yLnF1ZXJ5X3Rvb2xfb2JqLnJlZnJlc2goKTsKKworICAvKiBSZW5kZXIgaGlzdG9yeSB0 byByZWZsZWN0IEZvbnQgc2l6ZSBjaGFuZ2UgKi8KKyAgc3FsRWRpdG9yLnJlbmRlcl9oaXN0b3J5 X2dyaWQoKTsKK30KKworZXhwb3J0IHtyZWZsZWN0UHJlZmVyZW5jZXN9OwpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvcl91dGlscy5qcyBiL3dlYi9wZ2FkbWluL3N0 YXRpYy9qcy9zcWxlZGl0b3JfdXRpbHMuanMKaW5kZXggYmU0MTU2NmYuLjBmZmYxZDk1IDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yX3V0aWxzLmpzCisrKyBiL3dl Yi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3JfdXRpbHMuanMKQEAgLTE3OCwyNCArMTc4LDYg QEAgZGVmaW5lKFsnanF1ZXJ5JywgJ3NvdXJjZXMvZ2V0dGV4dCcsICdzb3VyY2VzL3VybF9mb3In XSwKICAgICAgICAgfSk7CiAgICAgICB9LAogCi0gICAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwg dXBkYXRlIHRoZSBjb25uZWN0aW9uIHN0YXR1cwotICAgICAgdXBkYXRlQ29ubmVjdGlvblN0YXR1 czogZnVuY3Rpb24odGFyZ2V0LCBwb2xsX3RpbWUpIHsKLSAgICAgICAgdmFyICRlbCA9ICQodGFy Z2V0LmdyaWRWaWV3LiRlbC5maW5kKCcuY29ubmVjdGlvbl9zdGF0dXMnKSksCi0gICAgICAgICAg JHN0YXR1c19lbCA9ICQoJGVsLmZpbmQoJy5mYS1jdXN0b20nKSk7Ci0KLSAgICAgICAgLy8gQXBw bHkgcG9wb3ZlciBvbiBlbGVtZW50Ci0gICAgICAgICRlbC5wb3BvdmVyKCk7Ci0KLSAgICAgICAg Ly8gVG8gc2V0IGluaXRpYWwgY29ubmVjdGlvbiBzdGF0dXNzb3VyY2UkZWwucG9wb3ZlcigpCi0g ICAgICAgIHNxbEVkaXRvclV0aWxzLmZldGNoQ29ubmVjdGlvblN0YXR1cyh0YXJnZXQsICRlbCwg JHN0YXR1c19lbCk7Ci0KLSAgICAgICAgLy8gQ2FsbGluZyBpdCBhZ2FpbiBpbiBzcGVjaWZpZWQg aW50ZXJ2YWwKLSAgICAgICAgc2V0SW50ZXJ2YWwoCi0gICAgICAgICAgc3FsRWRpdG9yVXRpbHMu ZmV0Y2hDb25uZWN0aW9uU3RhdHVzLmJpbmQobnVsbCwgdGFyZ2V0LCAkZWwsICRzdGF0dXNfZWwp LAotICAgICAgICAgIHBvbGxfdGltZSAqIDEwMDAKLSAgICAgICAgKTsKLSAgICAgIH0sCi0KICAg ICAgIC8vIFVwZGF0ZXMgdGhlIGZsYWcgZm9yIGNvbm5lY3Rpb24gc3RhdHVzIHBvbGwKICAgICAg IHVwZGF0ZUNvbm5lY3Rpb25TdGF0dXNGbGFnOiBmdW5jdGlvbihzdGF0dXMpIHsKICAgICAgICAg dmFyICRlbCA9ICQoJy5jb25uZWN0aW9uX3N0YXR1cycpOwpAQCAtMjAzLDYgKzE4NSwxNSBAQCBk ZWZpbmUoWydqcXVlcnknLCAnc291cmNlcy9nZXR0ZXh0JywgJ3NvdXJjZXMvdXJsX2ZvciddLAog ICAgICAgICAgICRlbC5kYXRhKCdwYW5lbC12aXNpYmxlJywgc3RhdHVzKTsKICAgICAgICAgfQog ICAgICAgfSwKKworICAgICAgY2FsY0ZvbnRTaXplOiBmdW5jdGlvbihmb250U2l6ZSkgeworICAg ICAgICBpZihmb250U2l6ZSkgeworICAgICAgICAgIHJldHVybiBOdW1iZXIoKE1hdGgucm91bmQo Zm9udFNpemUgKyAnZSsyJykgKyAnZS0yJykpICsgJ2VtJzsKKyAgICAgICAgfQorICAgICAgICBl bHNlIHsKKyAgICAgICAgICByZXR1cm4gJzBlbSc7CisgICAgICAgIH0KKyAgICAgIH0sCiAgICAg fTsKICAgICByZXR1cm4gc3FsRWRpdG9yVXRpbHM7CiAgIH0pOwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vc3RhdGljL2pzeC9oaXN0b3J5L2RldGFpbC9jb2RlX21pcnJvci5qc3ggYi93ZWIvcGdh ZG1pbi9zdGF0aWMvanN4L2hpc3RvcnkvZGV0YWlsL2NvZGVfbWlycm9yLmpzeAppbmRleCA2ZTk4 MjEyOC4uMDM4Y2MyMDAgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qc3gvaGlzdG9y eS9kZXRhaWwvY29kZV9taXJyb3IuanN4CisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qc3gvaGlz dG9yeS9kZXRhaWwvY29kZV9taXJyb3IuanN4CkBAIC01MCw2ICs1MCwxMSBAQCBleHBvcnQgZGVm YXVsdCBjbGFzcyBDb2RlTWlycm9yIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKICAgICBPYmpl Y3Qua2V5cyhwcm9wcy5vcHRpb25zIHx8IHt9KS5mb3JFYWNoKGtleSA9PiB0aGlzLmVkaXRvci5z ZXRPcHRpb24oa2V5LCBwcm9wcy5vcHRpb25zW2tleV0pKTsKIAogICAgIHRoaXMuZWRpdG9yLnNl dFZhbHVlKHByb3BzLnZhbHVlIHx8ICcnKTsKKworICAgIGlmKHByb3BzLnNxbEZvbnRTaXplKSB7 CisgICAgICAkKHRoaXMuZWRpdG9yLmdldFdyYXBwZXJFbGVtZW50KCkpLmNzcygnZm9udC1zaXpl JywgcHJvcHMuc3FsRm9udFNpemUpOworICAgIH0KKwogICAgIHRoaXMuZWRpdG9yLnJlZnJlc2go KTsKICAgfQogCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanN4L2hpc3RvcnkvZGV0 YWlsL2hpc3RvcnlfZGV0YWlsX3F1ZXJ5LmpzeCBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qc3gvaGlz dG9yeS9kZXRhaWwvaGlzdG9yeV9kZXRhaWxfcXVlcnkuanN4CmluZGV4IGRjZTM0NjA3Li5lYWU1 NWRlZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzeC9oaXN0b3J5L2RldGFpbC9o aXN0b3J5X2RldGFpbF9xdWVyeS5qc3gKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzeC9oaXN0 b3J5L2RldGFpbC9oaXN0b3J5X2RldGFpbF9xdWVyeS5qc3gKQEAgLTY0LDYgKzY0LDcgQEAgZXhw b3J0IGRlZmF1bHQgY2xhc3MgSGlzdG9yeURldGFpbFF1ZXJ5IGV4dGVuZHMgUmVhY3QuQ29tcG9u ZW50IHsKICAgICAgICAgICAgIG1vZGU6ICd0ZXh0L3gtcGdzcWwnLAogICAgICAgICAgICAgcmVh ZE9ubHk6IHRydWUsCiAgICAgICAgICAgfX0KKyAgICAgICAgICBzcWxGb250U2l6ZT0ge3RoaXMu cHJvcHMuc3FsRWRpdG9yUHJlZi5zcWxfZm9udF9zaXplfQogICAgICAgICAvPgogICAgICAgPC9k aXY+KTsKICAgfQpAQCAtNzEsNCArNzIsNSBAQCBleHBvcnQgZGVmYXVsdCBjbGFzcyBIaXN0b3J5 RGV0YWlsUXVlcnkgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewogCiBIaXN0b3J5RGV0YWlsUXVl cnkucHJvcFR5cGVzID0gewogICBoaXN0b3J5RW50cnk6IFNoYXBlcy5oaXN0b3J5RGV0YWlsLAor ICBzcWxFZGl0b3JQcmVmOiBTaGFwZXMuc3FsRWRpdG9yUHJlZk9iaiwKIH07CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9zdGF0aWMvanN4L2hpc3RvcnkvcXVlcnlfaGlzdG9yeS5qc3ggYi93ZWIv cGdhZG1pbi9zdGF0aWMvanN4L2hpc3RvcnkvcXVlcnlfaGlzdG9yeS5qc3gKaW5kZXggM2MwN2I1 YmQuLjhiNWZmZDJhIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvanN4L2hpc3Rvcnkv cXVlcnlfaGlzdG9yeS5qc3gKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzeC9oaXN0b3J5L3F1 ZXJ5X2hpc3RvcnkuanN4CkBAIC05NywxMyArOTcsMTYgQEAgZXhwb3J0IGRlZmF1bHQgY2xhc3Mg UXVlcnlIaXN0b3J5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKICAgICAgICAgICBzZWxlY3Rl ZEVudHJ5PXt0aGlzLnN0YXRlLnNlbGVjdGVkRW50cnl9CiAgICAgICAgICAgb25TZWxlY3RFbnRy eT17dGhpcy5zZWxlY3RIaXN0b3J5RW50cnl9CiAgICAgICAgIC8+Ci0gICAgICAgIDxRdWVyeUhp c3RvcnlEZXRhaWwgaGlzdG9yeUVudHJ5PXt0aGlzLnN0YXRlLmN1cnJlbnRIaXN0b3J5RGV0YWls fS8+CisgICAgICAgIDxRdWVyeUhpc3RvcnlEZXRhaWwgaGlzdG9yeUVudHJ5PXt0aGlzLnN0YXRl LmN1cnJlbnRIaXN0b3J5RGV0YWlsfQorICAgICAgICAgICAgc3FsRWRpdG9yUHJlZj17dGhpcy5w cm9wcy5zcWxFZGl0b3JQcmVmfQorICAgICAgICAvPgogICAgICAgPC9TcGxpdFBhbmU+KTsKICAg fQogfQogCiBRdWVyeUhpc3RvcnkucHJvcFR5cGVzID0gewogICBoaXN0b3J5Q29sbGVjdGlvbjog U2hhcGVzLmhpc3RvcnlDb2xsZWN0aW9uQ2xhc3MuaXNSZXF1aXJlZCwKKyAgc3FsRWRpdG9yUHJl ZjogU2hhcGVzLnNxbEVkaXRvclByZWZPYmosCiB9OwogCiBleHBvcnQgewpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vc3RhdGljL2pzeC9yZWFjdF9zaGFwZXMuanN4IGIvd2ViL3BnYWRtaW4vc3Rh dGljL2pzeC9yZWFjdF9zaGFwZXMuanN4CmluZGV4IDQ1NGFiNDQ2Li5mODk0OGI1ZiAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzeC9yZWFjdF9zaGFwZXMuanN4CisrKyBiL3dlYi9w Z2FkbWluL3N0YXRpYy9qc3gvcmVhY3Rfc2hhcGVzLmpzeApAQCAtMjUsNyArMjUsMTMgQEAgbGV0 IGhpc3RvcnlDb2xsZWN0aW9uQ2xhc3MgPQogICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5p c1JlcXVpcmVkLAogICB9KTsKIAorbGV0IHNxbEVkaXRvclByZWZPYmogPQorICBQcm9wVHlwZXMu c2hhcGUoeworICAgIHNxbF9mb250X3NpemU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCwK KyAgfSk7CisKIGV4cG9ydCBkZWZhdWx0IHsKICAgaGlzdG9yeURldGFpbCwKICAgaGlzdG9yeUNv bGxlY3Rpb25DbGFzcywKKyAgc3FsRWRpdG9yUHJlZk9iaiwKIH07CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi90b29scy9kYXRhZ3JpZC9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL2Rh dGFncmlkL19faW5pdF9fLnB5CmluZGV4IGQzYzNiZjljLi4wNGUyYTY4MyAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4v dG9vbHMvZGF0YWdyaWQvX19pbml0X18ucHkKQEAgLTI0LDEyICsyNCw5IEBAIGZyb20gcGdhZG1p bi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2UsIGJhZF9yZXF1ZXN0LCBcCiAg ICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yCiAKIGZyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxU X0RSSVZFUgotZnJvbSBwZ2FkbWluLnV0aWxzLnByZWZlcmVuY2VzIGltcG9ydCBQcmVmZXJlbmNl cwogZnJvbSBwZ2FkbWluLm1vZGVsIGltcG9ydCBTZXJ2ZXIKIGZyb20gcGdhZG1pbi51dGlscy5k cml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKIGZyb20gcGdhZG1pbi51dGlscy5leGNlcHRpb24gaW1w b3J0IENvbm5lY3Rpb25Mb3N0LCBTU0hUdW5uZWxDb25uZWN0aW9uTG9zdAotZnJvbSBwZ2FkbWlu LnRvb2xzLnNxbGVkaXRvci51dGlscy5xdWVyeV90b29sX3ByZWZlcmVuY2VzIGltcG9ydCBcCi0g ICAgZ2V0X3F1ZXJ5X3Rvb2xfa2V5Ym9hcmRfc2hvcnRjdXRzLCBnZXRfdGV4dF9yZXByZXNlbnRh dGlvbl9vZl9zaG9ydGN1dAogCiAKIGNsYXNzIERhdGFHcmlkTW9kdWxlKFBnQWRtaW5Nb2R1bGUp OgpAQCAtMTg0LDEzICsxODEsOSBAQCBkZWYgaW5pdGlhbGl6ZV9kYXRhZ3JpZChjbWRfdHlwZSwg b2JqX3R5cGUsIHNnaWQsIHNpZCwgZGlkLCBvYmpfaWQpOgogICAgICMgU3RvcmUgdGhlIGdyaWQg ZGljdGlvbmFyeSBpbnRvIHRoZSBzZXNzaW9uIHZhcmlhYmxlCiAgICAgc2Vzc2lvblsnZ3JpZERh dGEnXSA9IHNxbF9ncmlkX2RhdGEKIAotICAgIHByZWYgPSBQcmVmZXJlbmNlcy5tb2R1bGUoJ3Nx bGVkaXRvcicpCi0gICAgbmV3X2Jyb3dzZXJfdGFiID0gcHJlZi5wcmVmZXJlbmNlKCduZXdfYnJv d3Nlcl90YWInKS5nZXQoKQotCiAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKICAgICAg ICAgZGF0YT17Ci0gICAgICAgICAgICAnZ3JpZFRyYW5zSWQnOiB0cmFuc19pZCwKLSAgICAgICAg ICAgICduZXdCcm93c2VyVGFiJzogbmV3X2Jyb3dzZXJfdGFiCisgICAgICAgICAgICAnZ3JpZFRy YW5zSWQnOiB0cmFuc19pZAogICAgICAgICB9CiAgICAgKQogCkBAIC0yNDYsMTIgKzIzOSw2IEBA IGRlZiBwYW5lbCh0cmFuc19pZCwgaXNfcXVlcnlfdG9vbCwgZWRpdG9yX3RpdGxlKToKICAgICBp ZiAibGludXgiIGluIF9wbGF0Zm9ybToKICAgICAgICAgaXNfbGludXhfcGxhdGZvcm0gPSBUcnVl CiAKLSAgICBwcmVmID0gUHJlZmVyZW5jZXMubW9kdWxlKCdzcWxlZGl0b3InKQotICAgIGlmIHBy ZWYucHJlZmVyZW5jZSgnbmV3X2Jyb3dzZXJfdGFiJykuZ2V0KCk6Ci0gICAgICAgIG5ld19icm93 c2VyX3RhYiA9ICd0cnVlJwotICAgIGVsc2U6Ci0gICAgICAgIG5ld19icm93c2VyX3RhYiA9ICdm YWxzZScKLQogICAgICMgRmV0Y2ggdGhlIHNlcnZlciBkZXRhaWxzCiAgICAgYmdjb2xvciA9IE5v bmUKICAgICBmZ2NvbG9yID0gTm9uZQpAQCAtMjcxLDE2ICsyNTgsMTAgQEAgZGVmIHBhbmVsKHRy YW5zX2lkLCBpc19xdWVyeV90b29sLCBlZGl0b3JfdGl0bGUpOgogCiAgICAgdXJsX3BhcmFtcyA9 IGRpY3QoKQogICAgIGlmIGlzX3F1ZXJ5X3Rvb2wgPT0gJ3RydWUnOgotICAgICAgICBwcm9tcHRf c2F2ZV9jaGFuZ2VzID0gcHJlZi5wcmVmZXJlbmNlKAotICAgICAgICAgICAgJ3Byb21wdF9zYXZl X3F1ZXJ5X2NoYW5nZXMnCi0gICAgICAgICkuZ2V0KCkKICAgICAgICAgdXJsX3BhcmFtc1snc2dp ZCddID0gdHJhbnNfb2JqLnNnaWQKICAgICAgICAgdXJsX3BhcmFtc1snc2lkJ10gPSB0cmFuc19v Ymouc2lkCiAgICAgICAgIHVybF9wYXJhbXNbJ2RpZCddID0gdHJhbnNfb2JqLmRpZAogICAgIGVs c2U6Ci0gICAgICAgIHByb21wdF9zYXZlX2NoYW5nZXMgPSBwcmVmLnByZWZlcmVuY2UoCi0gICAg ICAgICAgICAncHJvbXB0X3NhdmVfZGF0YV9jaGFuZ2VzJwotICAgICAgICApLmdldCgpCiAgICAg ICAgIHVybF9wYXJhbXNbJ2NtZF90eXBlJ10gPSB0cmFuc19vYmouY21kX3R5cGUKICAgICAgICAg dXJsX3BhcmFtc1snb2JqX3R5cGUnXSA9IHRyYW5zX29iai5vYmplY3RfdHlwZQogICAgICAgICB1 cmxfcGFyYW1zWydzZ2lkJ10gPSB0cmFuc19vYmouc2dpZApAQCAtMjg4LDkgKzI2OSw2IEBAIGRl ZiBwYW5lbCh0cmFuc19pZCwgaXNfcXVlcnlfdG9vbCwgZWRpdG9yX3RpdGxlKToKICAgICAgICAg dXJsX3BhcmFtc1snZGlkJ10gPSB0cmFuc19vYmouZGlkCiAgICAgICAgIHVybF9wYXJhbXNbJ29i al9pZCddID0gdHJhbnNfb2JqLm9ial9pZAogCi0gICAgZGlzcGxheV9jb25uZWN0aW9uX3N0YXR1 cyA9IHByZWYucHJlZmVyZW5jZSgnY29ubmVjdGlvbl9zdGF0dXMnKS5nZXQoKQotICAgIHF1ZXJ5 VG9vbFNob3J0Y3V0cyA9IGdldF9xdWVyeV90b29sX2tleWJvYXJkX3Nob3J0Y3V0cygpCi0KICAg ICByZXR1cm4gcmVuZGVyX3RlbXBsYXRlKAogICAgICAgICAiZGF0YWdyaWQvaW5kZXguaHRtbCIs CiAgICAgICAgIF89Z2V0dGV4dCwKQEAgLTMwMCwxOSArMjc4LDExIEBAIGRlZiBwYW5lbCh0cmFu c19pZCwgaXNfcXVlcnlfdG9vbCwgZWRpdG9yX3RpdGxlKToKICAgICAgICAgc2NyaXB0X3R5cGVf dXJsPXNVUkwsCiAgICAgICAgIGlzX2Rlc2t0b3BfbW9kZT1hcHAuUEdBRE1JTl9SVU5USU1FLAog ICAgICAgICBpc19saW51eD1pc19saW51eF9wbGF0Zm9ybSwKLSAgICAgICAgaXNfbmV3X2Jyb3dz ZXJfdGFiPW5ld19icm93c2VyX3RhYiwKICAgICAgICAgc2VydmVyX3R5cGU9c2VydmVyX3R5cGUs CiAgICAgICAgIGNsaWVudF9wbGF0Zm9ybT11c2VyX2FnZW50LnBsYXRmb3JtLAogICAgICAgICBi Z2NvbG9yPWJnY29sb3IsCiAgICAgICAgIGZnY29sb3I9Zmdjb2xvciwKLSAgICAgICAgIyBjb252 ZXJ0IHB5dGhvbiBib29sZWFuIHZhbHVlIHRvIGVxdWl2YWxlbnQganMgYm9vbGVhbiBsaXRlcmFs Ci0gICAgICAgICMgYmVmb3JlIHBhc3NpbmcgaXQgdG8gaHRtbCB0ZW1wbGF0ZS4KLSAgICAgICAg cHJvbXB0X3NhdmVfY2hhbmdlcz0ndHJ1ZScgaWYgcHJvbXB0X3NhdmVfY2hhbmdlcyBlbHNlICdm YWxzZScsCi0gICAgICAgIGRpc3BsYXlfY29ubmVjdGlvbl9zdGF0dXM9ZGlzcGxheV9jb25uZWN0 aW9uX3N0YXR1cywKLSAgICAgICAgdXJsX3BhcmFtcz1qc29uLmR1bXBzKHVybF9wYXJhbXMpLAot ICAgICAgICBrZXk9cXVlcnlUb29sU2hvcnRjdXRzLmdldCgna2V5cycpLAotICAgICAgICBzaG9y dGN1dHM9cXVlcnlUb29sU2hvcnRjdXRzLmdldCgnc2hvcnRjdXRzJyksCi0gICAgICAgIGdldF9z aG9ydGN1dF90ZXh0PWdldF90ZXh0X3JlcHJlc2VudGF0aW9uX29mX3Nob3J0Y3V0CisgICAgICAg IHVybF9wYXJhbXM9anNvbi5kdW1wcyh1cmxfcGFyYW1zKQogICAgICkKIAogCkBAIC0zODcsMTMg KzM1Nyw5IEBAIGRlZiBpbml0aWFsaXplX3F1ZXJ5X3Rvb2woc2dpZCwgc2lkLCBkaWQ9Tm9uZSk6 CiAgICAgIyBTdG9yZSB0aGUgZ3JpZCBkaWN0aW9uYXJ5IGludG8gdGhlIHNlc3Npb24gdmFyaWFi bGUKICAgICBzZXNzaW9uWydncmlkRGF0YSddID0gc3FsX2dyaWRfZGF0YQogCi0gICAgcHJlZiA9 IFByZWZlcmVuY2VzLm1vZHVsZSgnc3FsZWRpdG9yJykKLSAgICBuZXdfYnJvd3Nlcl90YWIgPSBw cmVmLnByZWZlcmVuY2UoJ25ld19icm93c2VyX3RhYicpLmdldCgpCi0KICAgICByZXR1cm4gbWFr ZV9qc29uX3Jlc3BvbnNlKAogICAgICAgICBkYXRhPXsKLSAgICAgICAgICAgICdncmlkVHJhbnNJ ZCc6IHRyYW5zX2lkLAotICAgICAgICAgICAgJ25ld0Jyb3dzZXJUYWInOiBuZXdfYnJvd3Nlcl90 YWIKKyAgICAgICAgICAgICdncmlkVHJhbnNJZCc6IHRyYW5zX2lkCiAgICAgICAgIH0KICAgICAp CiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3N0YXRpYy9qcy9kYXRh Z3JpZC5qcyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3N0YXRpYy9qcy9kYXRhZ3JpZC5q cwppbmRleCBjNzMwYjE4MC4uNGNkZGRmMzggMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xz L2RhdGFncmlkL3N0YXRpYy9qcy9kYXRhZ3JpZC5qcworKysgYi93ZWIvcGdhZG1pbi90b29scy9k YXRhZ3JpZC9zdGF0aWMvanMvZGF0YWdyaWQuanMKQEAgLTI5LDYgKzI5LDIzIEBAIGRlZmluZSgn cGdhZG1pbi5kYXRhZ3JpZCcsIFsKICAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7CiAg ICAgICAgIHRoaXMudGl0bGVfaW5kZXggPSAxOwogCisKKyAgICAgICAgbGV0IHNlbGYgPSB0aGlz OworICAgICAgICAvKiBDYWNoZSBtYXkgdGFrZSB0aW1lIHRvIGxvYWQgZm9yIHRoZSBmaXJzdCB0 aW1lCisgICAgICAgICAqIEtlZXAgdHJ5aW5nIHRpbGwgYXZhaWxhYmxlCisgICAgICAgICAqLwor ICAgICAgICBsZXQgY2FjaGVJbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7Cisg ICAgICAgICAgaWYocGdCcm93c2VyLnByZWZlcmVuY2VfdmVyc2lvbigpID4gMCkgeworICAgICAg ICAgICAgc2VsZi5wcmVmZXJlbmNlcyA9IHBnQnJvd3Nlci5nZXRfcHJlZmVyZW5jZXNfZm9yX21v ZHVsZSgnc3FsZWRpdG9yJyk7CisgICAgICAgICAgICBjbGVhckludGVydmFsKGNhY2hlSW50ZXJ2 YWxJZCk7CisgICAgICAgICAgfQorICAgICAgICB9LDApOworCisgICAgICAgIHBnQnJvd3Nlci5v blByZWZlcmVuY2VzQ2hhbmdlKCdzcWxlZGl0b3InLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICBz ZWxmLnByZWZlcmVuY2VzID0gcGdCcm93c2VyLmdldF9wcmVmZXJlbmNlc19mb3JfbW9kdWxlKCdz cWxlZGl0b3InKTsKKyAgICAgICAgfSk7CisKKwogICAgICAgICB0aGlzLnNwaW5uZXJfZWwgPSAn PGRpdiBjbGFzcz0id2NMb2FkaW5nQ29udGFpbmVyIj4nKwogICAgICAgICAgICAgICAnPGRpdiBj bGFzcz0id2NMb2FkaW5nQmFja2dyb3VuZCI+PC9kaXY+JysKICAgICAgICAgICAgICAgICAnPGRp diBjbGFzcz0id2NMb2FkaW5nSWNvbkNvbnRhaW5lciI+JysKQEAgLTI3OSwxMiArMjk2LDEyIEBA IGRlZmluZSgncGdhZG1pbi5kYXRhZ3JpZCcsIFsKICAgICAgICAgICAgICAgICAgIGxpbmVOdW1i ZXJzOiB0cnVlLAogICAgICAgICAgICAgICAgICAgbW9kZTogJ3RleHQveC1wZ3NxbCcsCiAgICAg ICAgICAgICAgICAgICBleHRyYUtleXM6IHBnQnJvd3Nlci5lZGl0b3Jfc2hvcnRjdXRfa2V5cywK LSAgICAgICAgICAgICAgICAgIGluZGVudFdpdGhUYWJzOiBwZ0FkbWluLkJyb3dzZXIuZWRpdG9y X29wdGlvbnMuaW5kZW50X3dpdGhfdGFicywKLSAgICAgICAgICAgICAgICAgIGluZGVudFVuaXQ6 IHBnQWRtaW4uQnJvd3Nlci5lZGl0b3Jfb3B0aW9ucy50YWJTaXplLAotICAgICAgICAgICAgICAg ICAgdGFiU2l6ZTogcGdCcm93c2VyLmVkaXRvcl9vcHRpb25zLnRhYlNpemUsCi0gICAgICAgICAg ICAgICAgICBsaW5lV3JhcHBpbmc6IHBnQWRtaW4uQnJvd3Nlci5lZGl0b3Jfb3B0aW9ucy53cmFw Q29kZSwKLSAgICAgICAgICAgICAgICAgIGF1dG9DbG9zZUJyYWNrZXRzOiBwZ0FkbWluLkJyb3dz ZXIuZWRpdG9yX29wdGlvbnMuaW5zZXJ0X3BhaXJfYnJhY2tldHMsCi0gICAgICAgICAgICAgICAg ICBtYXRjaEJyYWNrZXRzOiBwZ0FkbWluLkJyb3dzZXIuZWRpdG9yX29wdGlvbnMuYnJhY2VfbWF0 Y2hpbmcsCisgICAgICAgICAgICAgICAgICBpbmRlbnRXaXRoVGFiczogIXRoaXMucHJlZmVyZW5j ZXMudXNlX3NwYWNlcywKKyAgICAgICAgICAgICAgICAgIGluZGVudFVuaXQ6IHRoaXMucHJlZmVy ZW5jZXMudGFiX3NpemUsCisgICAgICAgICAgICAgICAgICB0YWJTaXplOiB0aGlzLnByZWZlcmVu Y2VzLnRhYl9zaXplLAorICAgICAgICAgICAgICAgICAgbGluZVdyYXBwaW5nOiB0aGlzLnByZWZl cmVuY2VzLndyYXBfY29kZSwKKyAgICAgICAgICAgICAgICAgIGF1dG9DbG9zZUJyYWNrZXRzOiB0 aGlzLnByZWZlcmVuY2VzLmluc2VydF9wYWlyX2JyYWNrZXRzLAorICAgICAgICAgICAgICAgICAg bWF0Y2hCcmFja2V0czogdGhpcy5wcmVmZXJlbmNlcy5icmFjZV9tYXRjaGluZywKICAgICAgICAg ICAgICAgICB9KTsKIAogICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CkBA IC00MTUsMTMgKzQzMiwyMCBAQCBkZWZpbmUoJ3BnYWRtaW4uZGF0YWdyaWQnLCBbCiAgICAgICAg ICAgfQogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHRyYW5zX29iai5uZXdCcm93c2VyVGFiKSB7 CisgICAgICAgIGlmIChzZWxmLnByZWZlcmVuY2VzLm5ld19icm93c2VyX3RhYikgewogICAgICAg ICAgIHZhciBuZXdXaW4gPSB3aW5kb3cub3BlbihiYXNlVXJsLCAnX2JsYW5rJyk7CiAKICAgICAg ICAgICAvLyBhZGQgYSBsb2FkIGxpc3RlbmVyIHRvIHRoZSB3aW5kb3cgc28gdGhhdCB0aGUgdGl0 bGUgZ2V0cyBjaGFuZ2VkIG9uIHBhZ2UgbG9hZAogICAgICAgICAgIG5ld1dpbi5hZGRFdmVudExp c3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBuZXdXaW4uZG9jdW1lbnQu dGl0bGUgPSBwYW5lbF90aXRsZTsKKworICAgICAgICAgICAgLyogU2V0IHRoZSBpbml0aWFsIHZl cnNpb24gb2YgcHJlZiBjYWNoZSB0aGUgbmV3IHdpbmRvdyBpcyBoYXZpbmcKKyAgICAgICAgICAg ICAqIFRoaXMgd2lsbCBiZSB1c2VkIGJ5IHRoZSBwb2xsZXIgdG8gY29tcGFyZSB3aXRoIHdpbmRv dyBvcGVuZXJzCisgICAgICAgICAgICAgKiBwcmVmIGNhY2hlIHZlcnNpb24KKyAgICAgICAgICAg ICAqLworICAgICAgICAgICAgLy9uZXdXaW4ucGdBZG1pbi5Ccm93c2VyLnByZWZlcmVuY2VfdmVy c2lvbihwZ0Jyb3dzZXIucHJlZmVyZW5jZV92ZXJzaW9uKCkpOwogICAgICAgICAgIH0pOworCiAg ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgLyogT24gc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemF0 aW9uIGZpbmQgdGhlIGRhc2hib2FyZCBwYW5lbCwKICAgICAgICAgICAgKiBjcmVhdGUgbmV3IHBh bmVsIGFuZCBhZGQgaXQgdG8gdGhlIGRhc2hib2FyZCBwYW5lbC4KZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL3Rvb2xzL2RhdGFncmlkL3RlbXBsYXRlcy9kYXRhZ3JpZC9pbmRleC5odG1sIGIvd2Vi L3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVtcGxhdGVzL2RhdGFncmlkL2luZGV4Lmh0bWwKaW5k ZXggYWQwOTAyNjIuLjM3MTg3ZTQ1IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9kYXRh Z3JpZC90ZW1wbGF0ZXMvZGF0YWdyaWQvaW5kZXguaHRtbAorKysgYi93ZWIvcGdhZG1pbi90b29s cy9kYXRhZ3JpZC90ZW1wbGF0ZXMvZGF0YWdyaWQvaW5kZXguaHRtbApAQCAtMTAsMTMgKzEwLDYg QEAKICAgICAuYWxlcnRpZnkgLmFqcy1kaWFsb2cuYWpzLXNoYWtley13ZWJraXQtYW5pbWF0aW9u LW5hbWU6IG5vbmU7fQogICAgIC5zcWwtZWRpdG9yLWJ1c3ktaWNvbi5mYS1wdWxzZXstd2Via2l0 LWFuaW1hdGlvbjogbm9uZTt9CiAgICAgeyUgZW5kaWYgJX0KLQotICAgIHsjIE5vdGU6IElmIHdl IHdpbGwgZGlzcGxheSBjb25uZWN0aW9uIHN0YXR1cyB0aGVuIHdlIGhhdmUgdG8gcHJvdmlkZSBz b21lCi0gICAgc3BhY2UgdG8gZGlzcGxheSBzdGF0dXMgaWNvbiBlbHNlIHdlIGNhbiB1c2UgYWxs IHRoZSBzcGFjZSBhdmFpbGFibGUgI30KLSAgICAuZWRpdG9yLXRpdGxlIHsKLSAgICAgIHdpZHRo OnslIGlmIGRpc3BsYXlfY29ubmVjdGlvbl9zdGF0dXMgLSV9IGNhbGMoMTAwJSAtIDQzcHgpCi0g ICAgeyUgZWxzZSAlfSAxMDAlIHslLSBlbmRpZiAlfTsKLSAgICB9CiA8L3N0eWxlPgogPGRpdiBp ZD0ibWFpbi1lZGl0b3JfcGFuZWwiPgogICAgIDxkaXYgaWQ9ImZldGNoaW5nX2RhdGEiIGNsYXNz PSJ3Y0xvYWRpbmdJY29uQ29udGFpbmVyIHNxbC1lZGl0b3ItYnVzeS1mZXRjaGluZyBoaWRlIj4K QEAgLTI4LDE0ICsyMSwxNCBAQAogICAgICAgICA8ZGl2IGlkPSJidG4tdG9vbGJhciIgY2xhc3M9 InBnLXByb3AtYnRuLWdyb3VwIGJnLWdyYXktMiBib3JkZXItZ3JheS0zIiByb2xlPSJ0b29sYmFy IiBhcmlhLWxhYmVsPSIiPgogICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuLWdyb3VwIiByb2xl PSJncm91cCIgYXJpYS1sYWJlbD0iIj4KICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4t bG9hZC1maWxlIiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgYnRuLWxvYWQt ZmlsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSJ7eyBfKCdPcGVuIEZpbGUnKSB9 fXt7IF8oJyAoYWNjZXNza2V5K3swfSknLmZvcm1hdChrZXkub3Blbl9maWxlLnVwcGVyKCkpKSB9 fSIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0ie3trZXkub3Blbl9maWxlfX0i CisgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0iIgorICAgICAgICAgICAgICAgICAgICAg ICAgYWNjZXNza2V5PSIiCiAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD0iMCI+CiAg ICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1mb2xkZXItb3Blbi1vIiBhcmlhLWhp ZGRlbj0idHJ1ZSI+PC9pPgogICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAg ICAgIDxidXR0b24gaWQ9ImJ0bi1zYXZlIiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRl ZmF1bHQiCi0gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0ie3sgXygnU2F2ZScpIH19e3sg XygnIChhY2Nlc3NrZXkrezB9KScuZm9ybWF0KGtleS5zYXZlX2ZpbGUudXBwZXIoKSkpIH19Igot ICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSJ7e2tleS5zYXZlX2ZpbGV9fSIKKyAg ICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSIiCisgICAgICAgICAgICAgICAgICAgICAgICBh Y2Nlc3NrZXk9IiIKICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPgogICAgICAgICAg ICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtZmxvcHB5LW8iIGFyaWEtaGlkZGVuPSJ0cnVlIiB0 YWJpbmRleD0iMCI+PC9pPgogICAgICAgICAgICAgICAgIDwvYnV0dG9uPgpAQCAtNjMsOCArNTYs OCBAQAogICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgIDxidXR0b24g aWQ9ImJ0bi1maW5kLW1lbnUtZHJvcGRvd24iIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4t ZGVmYXVsdCBkcm9wZG93bi10b2dnbGUiCiAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRv Z2dsZT0iZHJvcGRvd24iIGFyaWEtaGFzcG9wdXA9InRydWUiIGFyaWEtZXhwYW5kZWQ9ImZhbHNl IgotICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9Int7IF8oJ0ZpbmQgb3B0aW9ucycpIH19 e3sgXygnIChhY2Nlc3NrZXkrezB9KScuZm9ybWF0KGtleS5maW5kX29wdGlvbnMudXBwZXIoKSkp IH19IgotICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSJ7e2tleS5maW5kX29wdGlv bnN9fSIKKyAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSIiCisgICAgICAgICAgICAgICAg ICAgICAgICBhY2Nlc3NrZXk9IiIKICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSIw Ij4KICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmV0Ij48L3NwYW4+IDxzcGFu IGNsYXNzPSJzci1vbmx5Ij5Ub2dnbGUgRHJvcGRvd248L3NwYW4+CiAgICAgICAgICAgICAgICAg PC9idXR0b24+CkBAIC0xMjIsMjIgKzExNSwyMiBAQAogICAgICAgICAgICAgPC9kaXY+CiAgICAg ICAgICAgICA8ZGl2IGNsYXNzPSJidG4tZ3JvdXAiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSIi PgogICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1jb3B5LXJvdyIgdHlwZT0iYnV0dG9u IiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IgotICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9 Int7IF8oJ0NvcHknKSB9fXt7IF8oJyAoYWNjZXNza2V5K3swfSknLmZvcm1hdChrZXkuY29weV9y b3cudXBwZXIoKSkpIH19IgotICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSJ7e2tl eS5jb3B5X3Jvd319IgorICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IiIKKyAgICAgICAg ICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0iIgogICAgICAgICAgICAgICAgICAgICAgICAgdGFi aW5kZXg9IjAiIGRpc2FibGVkPgogICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEt ZmlsZXMtbyIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4KICAgICAgICAgICAgICAgICA8L2J1dHRv bj4KICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tcGFzdGUtcm93IiB0eXBlPSJidXR0 b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiCi0gICAgICAgICAgICAgICAgICAgICAgICB0aXRs ZT0ie3sgXygnUGFzdGUnKSB9fXt7IF8oJyAoYWNjZXNza2V5K3swfSknLmZvcm1hdChrZXkucGFz dGVfcm93LnVwcGVyKCkpKSB9fSIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0i e3trZXkucGFzdGVfcm93fX0iCisgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0iIgorICAg ICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSIiCiAgICAgICAgICAgICAgICAgICAgICAg ICB0YWJpbmRleD0iMCIgZGlzYWJsZWQ+CiAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJm YSBmYS1jbGlwYm9hcmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+CiAgICAgICAgICAgICAgICAg PC9idXR0b24+CiAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0 bi1ncm91cCIgcm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWw9IiI+CiAgICAgICAgICAgICAgICAgPGJ1 dHRvbiBpZD0iYnRuLWRlbGV0ZS1yb3ciIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVm YXVsdCIKLSAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSJ7eyBfKCdEZWxldGUnKSB9fXt7 IF8oJyAoYWNjZXNza2V5K3swfSknLmZvcm1hdChrZXkuZGVsZXRlX3Jvdy51cHBlcigpKSkgfX0i Ci0gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NrZXk9Int7a2V5LmRlbGV0ZV9yb3d9fSIK KyAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSIiCisgICAgICAgICAgICAgICAgICAgICAg ICBhY2Nlc3NrZXk9IiIKICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSIwIiBkaXNh YmxlZD4KICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRyYXNoIiBhcmlhLWhp ZGRlbj0idHJ1ZSI+PC9pPgogICAgICAgICAgICAgICAgIDwvYnV0dG9uPgpAQCAtMTg4LDE1ICsx ODEsMTUgQEAKICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRu LWdyb3VwIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iIj4KICAgICAgICAgICAgICAgICA8YnV0 dG9uIGlkPSJidG4tZmlsdGVyIiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQi Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0ie3sgXygnRmlsdGVyJykgfX17eyBfKCcg KGFjY2Vzc2tleSt7MH0pJy5mb3JtYXQoa2V5LmZpbHRlcl9kaWFsb2cudXBwZXIoKSkpIH19Igot ICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSJ7e2tleS5maWx0ZXJfZGlhbG9nfX0i CisgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0iIgorICAgICAgICAgICAgICAgICAgICAg ICAgYWNjZXNza2V5PSIiCiAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD0iMCIgZGlz YWJsZWQ+CiAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1maWx0ZXIiIGFyaWEt aGlkZGVuPSJ0cnVlIj48L2k+CiAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAg ICAgICAgPGJ1dHRvbiBpZD0iYnRuLWZpbHRlci1kcm9wZG93biIgdHlwZT0iYnV0dG9uIiBjbGFz cz0iYnRuIGJ0bi1kZWZhdWx0IGRyb3Bkb3duLXRvZ2dsZSIKICAgICAgICAgICAgICAgICAgICAg ICAgIGRhdGEtdG9nZ2xlPSJkcm9wZG93biIgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgYXJpYS1leHBh bmRlZD0iZmFsc2UiCi0gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0ie3sgXygnRmlsdGVy IG9wdGlvbnMnKSB9fXt7IF8oJyAoYWNjZXNza2V5K3swfSknLmZvcm1hdChrZXkuZmlsdGVyX29w dGlvbnMudXBwZXIoKSkpIH19IgotICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSJ7 e2tleS5maWx0ZXJfb3B0aW9uc319IgorICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IiIK KyAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0iIgogICAgICAgICAgICAgICAgICAg ICAgICAgZGlzYWJsZWQgdGFiaW5kZXg9IjAiPgogICAgICAgICAgICAgICAgICAgICA8c3BhbiBj bGFzcz0iY2FyZXQiPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InNyLW9ubHkiPnt7IF8oJ1RvZ2dsZSBE cm9wZG93bicpIH19PC9zcGFuPgogICAgICAgICAgICAgICAgIDwvYnV0dG9uPgpAQCAtMjEwLDkg KzIwMyw5IEBACiAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgIDwvZGl2PgogICAg ICAgICAgICAgPGRpdiBjbGFzcz0iYnRuLWdyb3VwIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0i Ij4KLSAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPSJsaW1pdCIgc3R5bGU9ImhlaWdodDog MzBweDsgd2lkdGg6IDkwcHg7IiBkaXNhYmxlZAotICAgICAgICAgICAgICAgICAgICAgICAgdGl0 bGU9Int7IF8oJ1Jvd3MgbGltaXQnKSB9fXt7IF8oJyAoYWNjZXNza2V5K3swfSknLmZvcm1hdChr ZXkucm93c19saW1pdC51cHBlcigpKSkgfX0iCi0gICAgICAgICAgICAgICAgICAgICAgICBhY2Nl c3NrZXk9Int7a2V5LnJvd3NfbGltaXR9fSIKKyAgICAgICAgICAgICAgICA8c2VsZWN0IGlkPSJi dG4tcm93cy1saW1pdCIgY2xhc3M9ImxpbWl0IiBzdHlsZT0iaGVpZ2h0OiAzMHB4OyB3aWR0aDog OTBweDsiIGRpc2FibGVkCisgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0iIgorICAgICAg ICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSIiCiAgICAgICAgICAgICAgICAgICAgICAgICB0 YWJpbmRleD0iMCI+CiAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ii0xIj57eyBf KCdObyBsaW1pdCcpIH19PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFs dWU9IjEwMDAiPnt7IF8oJzEwMDAgcm93cycpIH19PC9vcHRpb24+CkBAIC0yMjMsMzEgKzIxNiwz MSBAQAogCiAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidG4tZ3JvdXAiIHJvbGU9Imdyb3VwIiBh cmlhLWxhYmVsPSIiPgogICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1mbGFzaCIgZGF0 YS10ZXN0LXNlbGVjdG9yPSJleGVjdXRlLXJlZnJlc2gtYnV0dG9uIiB0eXBlPSJidXR0b24iIGNs YXNzPSJidG4gYnRuLWRlZmF1bHQiIHN0eWxlPSJ3aWR0aDogNDBweDsiCi0gICAgICAgICAgICAg ICAgICAgICAgICB0aXRsZT0ie3sgXygnRXhlY3V0ZS9SZWZyZXNoJykgfX17eyBfKCcgKHswfSkn LmZvcm1hdChnZXRfc2hvcnRjdXRfdGV4dChzaG9ydGN1dHMuZXhlY3V0ZV9xdWVyeSkpKSB9fSIK KyAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSIiCiAgICAgICAgICAgICAgICAgICAgICAg ICB0YWJpbmRleD0iMCI+CiAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1ib2x0 IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPgogICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAg ICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1xdWVyeS1kcm9wZG93biIgdHlwZT0iYnV0dG9u IiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IGRyb3Bkb3duLXRvZ2dsZSIKICAgICAgICAgICAgICAg ICAgICAgICAgIGRhdGEtdG9nZ2xlPSJkcm9wZG93biIgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgYXJp YS1leHBhbmRlZD0iZmFsc2UiCi0gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NrZXk9Int7 a2V5LmV4ZWN1dGVfb3B0aW9uc319IgotICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9Int7 IF8oJ0V4ZWN1dGUgb3B0aW9ucycpIH19e3sgXygnIChhY2Nlc3NrZXkrezB9KScuZm9ybWF0KGtl eS5leGVjdXRlX29wdGlvbnMudXBwZXIoKSkpIH19IgorICAgICAgICAgICAgICAgICAgICAgICAg YWNjZXNza2V5PSIiCisgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0iIgogICAgICAgICAg ICAgICAgICAgICAgICAgdGFiaW5kZXg9IjAiPgogICAgICAgICAgICAgICAgICAgICA8c3BhbiBj bGFzcz0iY2FyZXQiPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InNyLW9ubHkiPnt7IF8oJ1RvZ2dsZSBE cm9wZG93bicpIH19PC9zcGFuPgogICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAg ICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSIgcm9sZT0ibWVudSI+CiAgICAgICAgICAg ICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGlkPSJidG4tZmxhc2gt bWVudSIgaHJlZj0iIyIgdGFiaW5kZXg9IjAiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAg IDxzcGFuPnt7IF8oJ0V4ZWN1dGUvUmVmcmVzaCcpIH19e3sgXygnICh7MH0pJy5mb3JtYXQoZ2V0 X3Nob3J0Y3V0X3RleHQoc2hvcnRjdXRzLmV4ZWN1dGVfcXVlcnkpKSkgfX08L3NwYW4+CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgICAg ICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAg ICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICA8YSBpZD0iYnRuLWV4cGxhaW4iIGhyZWY9 IiMiIHRhYmluZGV4PSIwIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBf KCdFeHBsYWluJykgfX17eyBfKCcgKHswfSknLmZvcm1hdChnZXRfc2hvcnRjdXRfdGV4dChzaG9y dGN1dHMuZXhwbGFpbl9xdWVyeSkpKSB9fTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8c3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAg ICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAg ICAgICAgICAgICAgIDxhIGlkPSJidG4tZXhwbGFpbi1hbmFseXplIiBocmVmPSIjIiB0YWJpbmRl eD0iMCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgXygnRXhwbGFpbiBB bmFseXplJykgfX17eyBfKCcgKHswfSknLmZvcm1hdChnZXRfc2hvcnRjdXRfdGV4dChzaG9ydGN1 dHMuZXhwbGFpbl9hbmFseXplX3F1ZXJ5KSkpIH19PC9zcGFuPgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDxzcGFuPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAg ICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJk aXZpZGVyIj48L2xpPgpAQCAtMjk1LDggKzI4OCw4IEBACiAgICAgICAgICAgICAgICAgICAgIDwv bGk+CiAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJi dG4tY2FuY2VsLXF1ZXJ5IiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiCi0g ICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0ie3sgXygnQ2FuY2VsIHF1ZXJ5JykgfX17eyBf KCcgKGFjY2Vzc2tleSt7MH0pJy5mb3JtYXQoa2V5LmNhbmNlbF9xdWVyeS51cHBlcigpKSkgfX0i Ci0gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NrZXk9Int7a2V5LmNhbmNlbF9xdWVyeX19 IgorICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IiIKKyAgICAgICAgICAgICAgICAgICAg ICAgIGFjY2Vzc2tleT0iIgogICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9IjAiIGRp c2FibGVkID4KICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXN0b3AiIGFyaWEt aGlkZGVuPSJ0cnVlIj48L2k+CiAgICAgICAgICAgICAgICAgPC9idXR0b24+CkBAIC0zMDQsOCAr Mjk3LDggQEAKICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0bi1ncm91cCIgcm9sZT0iZ3JvdXAi IGFyaWEtbGFiZWw9IiI+CiAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWNsZWFyLWRy b3Bkb3duIiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgZHJvcGRvd24tdG9n Z2xlIgogICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10b2dnbGU9ImRyb3Bkb3duIiBhcmlh LWhhc3BvcHVwPSJ0cnVlIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIKLSAgICAgICAgICAgICAgICAg ICAgICAgIHRpdGxlPSJ7eyBfKCdDbGVhcicpIH19e3sgXygnIChhY2Nlc3NrZXkrezB9KScuZm9y bWF0KGtleS5jbGVhcl9vcHRpb25zLnVwcGVyKCkpKSB9fSIKLSAgICAgICAgICAgICAgICAgICAg ICAgIGFjY2Vzc2tleT0ie3trZXkuY2xlYXJfb3B0aW9uc319IgorICAgICAgICAgICAgICAgICAg ICAgICAgdGl0bGU9IiIKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0iIgogICAg ICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9IjAiPgogICAgICAgICAgICAgICAgICAgICA8 aSBjbGFzcz0iZmEgZmEtZXJhc2VyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPgogICAgICAgICAg ICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZXQiPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InNyLW9u bHkiPnt7IF8oJ1RvZ2dsZSBEcm9wZG93bicpIH19PC9zcGFuPgpAQCAtMzI1LDcgKzMxOCw3IEBA CiAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0bi1ncm91cCIg cm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWw9IiI+CiAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0i YnRuLWRvd25sb2FkIiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiCi0gICAg ICAgICAgICAgICAgICAgICAgICB0aXRsZT0ie3sgXygnRG93bmxvYWQgYXMgQ1NWJykgfX17eyBf KCcgKHswfSknLmZvcm1hdChnZXRfc2hvcnRjdXRfdGV4dChzaG9ydGN1dHMuZG93bmxvYWRfY3N2 KSkpIH19IgorICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IiIKICAgICAgICAgICAgICAg ICAgICAgICAgIHRhYmluZGV4PSIwIj4KICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZh IGZhLWRvd25sb2FkIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPgogICAgICAgICAgICAgICAgIDwv YnV0dG9uPgpAQCAtMzMzLDIxICszMjYsMTcgQEAKICAgICAgICAgPC9kaXY+CiAKICAgICAgICAg PGRpdiBjbGFzcz0iY29ubmVjdGlvbl9zdGF0dXNfd3JhcHBlciI+Ci0gICAgICAgICAgICB7JSBp ZiBkaXNwbGF5X2Nvbm5lY3Rpb25fc3RhdHVzICV9Ci0gICAgICAgICAgICA8ZGl2IHN0eWxlPSJk aXNwbGF5OiBpbmxpbmUtYmxvY2s7IgotICAgICAgICAgICAgICAgICB0aXRsZT0ie3sgXygnQ29u bmVjdGlvbiBzdGF0dXMgKGNsaWNrIGZvciBkZXRhaWxzKSAoYWNjZXNza2V5K3swfSknLmZvcm1h dChrZXkuY29ubl9zdGF0dXMudXBwZXIoKSkpIH19Ij4KLSAgICAgICAgICAgICAgICA8ZGl2IGNs YXNzPSJjb25uZWN0aW9uX3N0YXR1cyIgZGF0YS1jb250YWluZXI9ImJvZHkiCi0gICAgICAgICAg ICAgICAgICAgICBkYXRhLXRvZ2dsZT0icG9wb3ZlciIgZGF0YS1wbGFjZW1lbnQ9ImJvdHRvbSIK LSAgICAgICAgICAgICAgICAgICAgIGRhdGEtY29udGVudD0iIgotICAgICAgICAgICAgICAgICAg ICAgZGF0YS1wYW5lbC12aXNpYmxlPSJ2aXNpYmxlIgotICAgICAgICAgICAgICAgICAgICAgYWNj ZXNza2V5PSJ7e2tleS5jb25uX3N0YXR1c319IgotICAgICAgICAgICAgICAgICAgICAgdGFiaW5k ZXg9IjAiPgotICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEtY3VzdG9tIGZhLXF1ZXJ5 LXRvb2wtZGlzY29ubmVjdGVkIiBhcmlhLWhpZGRlbj0idHJ1ZSIKLSAgICAgICAgICAgICAgICAg ICAgICAgIHRpdGxlPSJ7eyBfKCdDb25uZWN0aW9uIHN0YXR1cyAoY2xpY2sgZm9yIGRldGFpbHMp IChhY2Nlc3NrZXkrezB9KScuZm9ybWF0KGtleS5jb25uX3N0YXR1cy51cHBlcigpKSkgfX0iPgot ICAgICAgICAgICAgICAgICAgICA8L2k+Ci0gICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAg ICAgICA8ZGl2IGlkPSJidG4tY29ubi1zdGF0dXMiCisgICAgICAgICAgICAgICAgIGNsYXNzPSJj b25uZWN0aW9uX3N0YXR1cyBjb25uZWN0aW9uLXN0YXR1cy1zaG93IiBkYXRhLWNvbnRhaW5lcj0i Ym9keSIKKyAgICAgICAgICAgICAgICAgZGF0YS10b2dnbGU9InBvcG92ZXIiIGRhdGEtcGxhY2Vt ZW50PSJib3R0b20iCisgICAgICAgICAgICAgICAgIGRhdGEtY29udGVudD0iIgorICAgICAgICAg ICAgICAgICBkYXRhLXBhbmVsLXZpc2libGU9InZpc2libGUiCisgICAgICAgICAgICAgICAgIGFj Y2Vzc2tleT0iIgorICAgICAgICAgICAgICAgICB0YWJpbmRleD0iMCI+CisgICAgICAgICAgICAg ICAgPGkgY2xhc3M9ImZhLWN1c3RvbSBmYS1xdWVyeS10b29sLWRpc2Nvbm5lY3RlZCIgYXJpYS1o aWRkZW49InRydWUiCisgICAgICAgICAgICAgICAgICAgIHRpdGxlPSIiPgorICAgICAgICAgICAg ICAgIDwvaT4KICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgeyUgZW5kaWYgJX0KICAg ICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci10aXRsZSIKICAgICAgICAgICAgICAgICAgc3R5 bGU9ImJhY2tncm91bmQtY29sb3I6IHslIGlmIGZnY29sb3IgJX17eyBiZ2NvbG9yIG9yICcjRkZG RkZGJyB9fXslIGVsc2UgJX17eyBiZ2NvbG9yIG9yICcjMkM3NkI0JyB9fXslIGVuZGlmICV9OyBj b2xvcjoge3sgZmdjb2xvciBvciAnd2hpdGUnIH19OyI+PC9kaXY+CiAgICAgICAgIDwvZGl2PgpA QCAtMzk4LDkgKzM4Nyw3IEBACiAgICAgICAgIHt7IGlzX3F1ZXJ5X3Rvb2wgfX0sCiAgICAgICAg ICJ7eyBlZGl0b3JfdGl0bGUgfX0iLAogICAgICAgICBzY3JpcHRfdHlwZV91cmwsCi0gICAgICAg IHt7IGlzX25ld19icm93c2VyX3RhYiB9fSwKICAgICAgICAgInt7IHNlcnZlcl90eXBlIH19IiwK LSAgICAgICAge3sgcHJvbXB0X3NhdmVfY2hhbmdlcyB9fSwKICAgICAgICAge3sgdXJsX3BhcmFt c3xzYWZlfX0KICAgICApOwogfSk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxl ZGl0b3Ivc3RhdGljL2Nzcy9zcWxlZGl0b3IuY3NzIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRp dG9yL3N0YXRpYy9jc3Mvc3FsZWRpdG9yLmNzcwppbmRleCBjNTQ1OTBkMy4uYmQ5YjMwOTEgMTAw NjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvY3NzL3NxbGVkaXRv ci5jc3MKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9jc3Mvc3FsZWRp dG9yLmNzcwpAQCAtNjI1LDMgKzYyNSwyMCBAQCBpbnB1dC5lZGl0b3ItY2hlY2tib3g6Zm9jdXMg ewogLmRhdGFfc29ydGluZ19kaWFsb2cgLmRhdGFfc29ydGluZyB7CiAgIHBhZGRpbmc6IDEwcHgg MHB4OwogfQorCisuZWRpdG9yLXRpdGxlIHsKKyAgd2lkdGg6MTAwJTsKK30KKworLmVkaXRvci10 aXRsZS1jb25uZWN0aW9uIHsKKyAgd2lkdGg6Y2FsYygxMDAlIC0gNDNweCk7Cit9CisKKy5jb25u ZWN0aW9uLXN0YXR1cy1zaG93IHsKKyAgZGlzcGxheTogaW5saW5lLWJsb2NrOworfQorCisuY29u bmVjdGlvbi1zdGF0dXMtaGlkZSB7CisgIGRpc3BsYXk6IG5vbmU7Cit9CisKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvc3FsZWRpdG9yLmpzIGIvd2Vi L3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9zcWxlZGl0b3IuanMKaW5kZXggY2Uz OTc2OTIuLmY0Y2ZkOWRjIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Iv c3RhdGljL2pzL3NxbGVkaXRvci5qcworKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Iv c3RhdGljL2pzL3NxbGVkaXRvci5qcwpAQCAtMTYsNyArMTYsNyBAQCBkZWZpbmUoJ3Rvb2xzLnF1 ZXJ5dG9vbCcsIFsKICAgJ3NvdXJjZXMvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2xfaHR0cF9lcnJvcl9o YW5kbGVyJywKICAgJ3NvdXJjZXMvc3FsZWRpdG9yL2ZpbHRlcl9kaWFsb2cnLAogICAnc291cmNl cy9oaXN0b3J5L2luZGV4LmpzJywKLSAgJ3NvdXJjZXMvLi4vanN4L2hpc3RvcnkvcXVlcnlfaGlz dG9yeScsCisgICdzb3VyY2VzanN4L2hpc3RvcnkvcXVlcnlfaGlzdG9yeScsCiAgICdyZWFjdCcs ICdyZWFjdC1kb20nLAogICAnc291cmNlcy9rZXlib2FyZF9zaG9ydGN1dHMnLAogICAnc291cmNl cy9zcWxlZGl0b3IvcXVlcnlfdG9vbF9hY3Rpb25zJywKQEAgLTI1LDYgKzI1LDcgQEAgZGVmaW5l KCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICdzb3VyY2VzL21vZGlmeV9hbmltYXRpb24nLAogICAn c291cmNlcy9zcWxlZGl0b3IvY2FsY3VsYXRlX3F1ZXJ5X3J1bl90aW1lJywKICAgJ3NvdXJjZXMv c3FsZWRpdG9yL2NhbGxfcmVuZGVyX2FmdGVyX3BvbGwnLAorICAnc291cmNlcy9zcWxlZGl0b3Iv cXVlcnlfdG9vbF9wcmVmZXJlbmNlcycsCiAgICdzb3VyY2VzLy4uL2J1bmRsZS9zbGlja2dyaWQn LAogICAncGdhZG1pbi5maWxlX21hbmFnZXInLAogICAnYmFja2dyaWQuc2l6ZWFibGUuY29sdW1u cycsCkBAIC0zOCw3ICszOSw3IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICBYQ2Vs bFNlbGVjdGlvbk1vZGVsLCBzZXRTdGFnZWRSb3dzLCBTcWxFZGl0b3JVdGlscywgRXhlY3V0ZVF1 ZXJ5LCBodHRwRXJyb3JIYW5kbGVyLCBGaWx0ZXJIYW5kbGVyLAogICBIaXN0b3J5QnVuZGxlLCBx dWVyeUhpc3RvcnksIFJlYWN0LCBSZWFjdERPTSwKICAga2V5Ym9hcmRTaG9ydGN1dHMsIHF1ZXJ5 VG9vbEFjdGlvbnMsIHF1ZXJ5VG9vbE5vdGlmaWNhdGlvbnMsIERhdGFncmlkLAotICBtb2RpZnlB bmltYXRpb24sIGNhbGN1bGF0ZVF1ZXJ5UnVuVGltZSwgY2FsbFJlbmRlckFmdGVyUG9sbCkgewor ICBtb2RpZnlBbmltYXRpb24sIGNhbGN1bGF0ZVF1ZXJ5UnVuVGltZSwgY2FsbFJlbmRlckFmdGVy UG9sbCwgcXVlcnlUb29sUHJlZikgewogICAvKiBSZXR1cm4gYmFjaywgdGhpcyBoYXMgYmVlbiBj YWxsZWQgbW9yZSB0aGFuIG9uY2UgKi8KICAgaWYgKHBnQWRtaW4uU3FsRWRpdG9yKQogICAgIHJl dHVybiBwZ0FkbWluLlNxbEVkaXRvcjsKQEAgLTU4LDYgKzU5LDExIEBAIGRlZmluZSgndG9vbHMu cXVlcnl0b29sJywgWwogICAgICAgdGhpcy4kZWwgPSBvcHRzLmVsOwogICAgICAgdGhpcy5oYW5k bGVyID0gb3B0cy5oYW5kbGVyOwogICAgICAgdGhpcy5oYW5kbGVyWydjb2xfc2l6ZSddID0ge307 CisgICAgICBsZXQgYnJvd3NlciA9IHdpbmRvdy5vcGVuZXIgPworICAgICAgICAgICAgICB3aW5k b3cub3BlbmVyLnBnQWRtaW4uQnJvd3NlciA6IHdpbmRvdy50b3AucGdBZG1pbi5Ccm93c2VyOwor ICAgICAgdGhpcy5wcmVmZXJlbmNlcyA9IGJyb3dzZXIuZ2V0X3ByZWZlcmVuY2VzX2Zvcl9tb2R1 bGUoJ3NxbGVkaXRvcicpOworICAgICAgdGhpcy5oYW5kbGVyLnByZWZlcmVuY2VzID0gdGhpcy5w cmVmZXJlbmNlczsKKyAgICAgIHRoaXMuY29ubkludGVydmFsSWQgPSBudWxsOwogICAgIH0sCiAK ICAgICAvLyBCaW5kIGFsbCB0aGUgZXZlbnRzCkBAIC0xMTcsMTAgKzEyMyw2IEBAIGRlZmluZSgn dG9vbHMucXVlcnl0b29sJywgWwogICAgICAgdmFyIHNlbGYgPSB0aGlzOwogCiAgICAgICAkKCcu ZWRpdG9yLXRpdGxlJykudGV4dChfLnVuZXNjYXBlKHNlbGYuZWRpdG9yX3RpdGxlKSk7Ci0gICAg ICBzZWxmLmNoZWNrQ29ubmVjdGlvblN0YXR1cygpOwotCi0gICAgICAvLyBGZXRjaCBhbmQgYXNz aWduIHRoZSBzaG9ydGN1dHMgdG8gY3VycmVudCBpbnN0YW5jZQotICAgICAgc2VsZi5rZXlib2Fy ZFNob3J0Y3V0Q29uZmlnID0gcXVlcnlUb29sQWN0aW9ucy5nZXRLZXlib2FyZFNob3J0Y3V0cyhz ZWxmKTsKIAogICAgICAgLy8gVXBkYXRlcyBjb25uZWN0aW9uIHN0YXR1cyBmbGFnCiAgICAgICBz ZWxmLmdhaW5fZm9jdXMgPSBmdW5jdGlvbigpIHsKQEAgLTE4MywxMyArMTg1LDcgQEAgZGVmaW5l KCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICAgICAgIH0sCiAgICAgICAgIGd1dHRlcnM6IFsnQ29k ZU1pcnJvci1saW5lbnVtYmVycycsICdDb2RlTWlycm9yLWZvbGRndXR0ZXInXSwKICAgICAgICAg ZXh0cmFLZXlzOiBwZ0Jyb3dzZXIuZWRpdG9yX3Nob3J0Y3V0X2tleXMsCi0gICAgICAgIGluZGVu dFdpdGhUYWJzOiBwZ0FkbWluLkJyb3dzZXIuZWRpdG9yX29wdGlvbnMuaW5kZW50X3dpdGhfdGFi cywKLSAgICAgICAgaW5kZW50VW5pdDogcGdBZG1pbi5Ccm93c2VyLmVkaXRvcl9vcHRpb25zLnRh YlNpemUsCi0gICAgICAgIHRhYlNpemU6IHBnQWRtaW4uQnJvd3Nlci5lZGl0b3Jfb3B0aW9ucy50 YWJTaXplLAotICAgICAgICBsaW5lV3JhcHBpbmc6IHBnQWRtaW4uQnJvd3Nlci5lZGl0b3Jfb3B0 aW9ucy53cmFwQ29kZSwKICAgICAgICAgc2Nyb2xsYmFyU3R5bGU6ICdzaW1wbGUnLAotICAgICAg ICBhdXRvQ2xvc2VCcmFja2V0czogcGdBZG1pbi5Ccm93c2VyLmVkaXRvcl9vcHRpb25zLmluc2Vy dF9wYWlyX2JyYWNrZXRzLAotICAgICAgICBtYXRjaEJyYWNrZXRzOiBwZ0FkbWluLkJyb3dzZXIu ZWRpdG9yX29wdGlvbnMuYnJhY2VfbWF0Y2hpbmcsCiAgICAgICB9KTsKIAogICAgICAgLy8gUmVm cmVzaCBDb2RlIG1pcnJvciBvbiBTUUwgcGFuZWwgcmVzaXplIHRvCkBAIC0yNzAsMzIgKzI2Niwz MiBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgIHNlbGYucmVuZGVyX2hpc3Rv cnlfZ3JpZCgpOwogICAgICAgcXVlcnlUb29sTm90aWZpY2F0aW9ucy5yZW5kZXJOb3RpZmljYXRp b25zR3JpZChzZWxmLm5vdGlmaWNhdGlvbnNfcGFuZWwpOwogCi0gICAgICBpZiAoIXNlbGYuaGFu ZGxlci5pc19uZXdfYnJvd3Nlcl90YWIpIHsKKyAgICAgIGlmICghc2VsZi5wcmVmZXJlbmNlcy5u ZXdfYnJvd3Nlcl90YWIpIHsKICAgICAgICAgLy8gTGlzdGVuIG9uIHRoZSBwYW5lbCBjbG9zZWQg ZXZlbnQgYW5kIG5vdGlmeSB1c2VyIHRvIHNhdmUgbW9kaWZpY2F0aW9ucy4KICAgICAgICAgXy5l YWNoKHdpbmRvdy50b3AucGdBZG1pbi5Ccm93c2VyLmRvY2tlci5maW5kUGFuZWxzKCdmcm1fZGF0 YWdyaWQnKSwgZnVuY3Rpb24ocCkgewogICAgICAgICAgIGlmIChwLmlzVmlzaWJsZSgpKSB7Ci0g ICAgICAgICAgICBpZiAoc2VsZi5oYW5kbGVyLnByb21wdF9zYXZlX2NoYW5nZXMpIHsKLSAgICAg ICAgICAgICAgcC5vbih3Y0RvY2tlci5FVkVOVC5DTE9TSU5HLCBmdW5jdGlvbigpIHsKLSAgICAg ICAgICAgICAgICAvLyBPbmx5IGlmIHdlIGNhbiBlZGl0IGRhdGEgdGhlbiBwZXJmb3JtIHRoaXMg Y2hlY2sKLSAgICAgICAgICAgICAgICB2YXIgbm90aWZ5ID0gZmFsc2UsCi0gICAgICAgICAgICAg ICAgICBtc2c7Ci0gICAgICAgICAgICAgICAgaWYgKHNlbGYuaGFuZGxlci5jYW5fZWRpdCkgewot ICAgICAgICAgICAgICAgICAgdmFyIGRhdGFfc3RvcmUgPSBzZWxmLmhhbmRsZXIuZGF0YV9zdG9y ZTsKLSAgICAgICAgICAgICAgICAgIGlmIChkYXRhX3N0b3JlICYmIChfLnNpemUoZGF0YV9zdG9y ZS5hZGRlZCkgfHwKLSAgICAgICAgICAgICAgICAgICAgICBfLnNpemUoZGF0YV9zdG9yZS51cGRh dGVkKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgbXNnID0gZ2V0dGV4dCgnVGhlIGRhdGEgaGFz IGNoYW5nZWQuIERvIHlvdSB3YW50IHRvIHNhdmUgY2hhbmdlcz8nKTsKLSAgICAgICAgICAgICAg ICAgICAgbm90aWZ5ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg ICB9IGVsc2UgaWYgKHNlbGYuaGFuZGxlci5pc19xdWVyeV90b29sICYmIHNlbGYuaGFuZGxlci5p c19xdWVyeV9jaGFuZ2VkKSB7Ci0gICAgICAgICAgICAgICAgICBtc2cgPSBnZXR0ZXh0KCdUaGUg dGV4dCBoYXMgY2hhbmdlZC4gRG8geW91IHdhbnQgdG8gc2F2ZSBjaGFuZ2VzPycpOworICAgICAg ICAgICAgcC5vbih3Y0RvY2tlci5FVkVOVC5DTE9TSU5HLCBmdW5jdGlvbigpIHsKKyAgICAgICAg ICAgICAgLy8gT25seSBpZiB3ZSBjYW4gZWRpdCBkYXRhIHRoZW4gcGVyZm9ybSB0aGlzIGNoZWNr CisgICAgICAgICAgICAgIHZhciBub3RpZnkgPSBmYWxzZSwKKyAgICAgICAgICAgICAgICBtc2c7 CisgICAgICAgICAgICAgIGlmIChzZWxmLmhhbmRsZXIuY2FuX2VkaXQKKyAgICAgICAgICAgICAg ICAgICYmIHNlbGYucHJlZmVyZW5jZXMucHJvbXB0X3NhdmVfZGF0YV9jaGFuZ2VzKSB7CisgICAg ICAgICAgICAgICAgdmFyIGRhdGFfc3RvcmUgPSBzZWxmLmhhbmRsZXIuZGF0YV9zdG9yZTsKKyAg ICAgICAgICAgICAgICBpZiAoZGF0YV9zdG9yZSAmJiAoXy5zaXplKGRhdGFfc3RvcmUuYWRkZWQp IHx8CisgICAgICAgICAgICAgICAgICAgIF8uc2l6ZShkYXRhX3N0b3JlLnVwZGF0ZWQpKSkgewor ICAgICAgICAgICAgICAgICAgbXNnID0gZ2V0dGV4dCgnVGhlIGRhdGEgaGFzIGNoYW5nZWQuIERv IHlvdSB3YW50IHRvIHNhdmUgY2hhbmdlcz8nKTsKICAgICAgICAgICAgICAgICAgIG5vdGlmeSA9 IHRydWU7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChub3RpZnkpIHsK LSAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnVzZXJfY29uZmlybWF0aW9uKHAsIG1zZyk7 Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAg ICAgICAgICB9KTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfSBlbHNlIGlmIChzZWxm LmhhbmRsZXIuaXNfcXVlcnlfdG9vbCAmJiBzZWxmLmhhbmRsZXIuaXNfcXVlcnlfY2hhbmdlZAor ICAgICAgICAgICAgICAgICAgICAgICAgICYmIHNlbGYucHJlZmVyZW5jZXMucHJvbXB0X3NhdmVf cXVlcnlfY2hhbmdlcykgeworICAgICAgICAgICAgICAgIG1zZyA9IGdldHRleHQoJ1RoZSB0ZXh0 IGhhcyBjaGFuZ2VkLiBEbyB5b3Ugd2FudCB0byBzYXZlIGNoYW5nZXM/Jyk7CisgICAgICAgICAg ICAgICAgbm90aWZ5ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBpZiAo bm90aWZ5KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYudXNlcl9jb25maXJtYXRpb24o cCwgbXNnKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg ICAgICAgICAgIH0pOwogCiAgICAgICAgICAgICAvLyBTZXQgZm9jdXMgb24gcXVlcnkgdG9vbCBv ZiBhY3RpdmUgcGFuZWwKICAgICAgICAgICAgIHAub24od2NEb2NrZXIuRVZFTlQuR0FJTl9GT0NV UywgZnVuY3Rpb24oKSB7CkBAIC00ODMsMzMgKzQ3OSwzNiBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5 dG9vbCcsIFsKICAgICAgICAgICB9LmJpbmQoY3R4KSwKICAgICAgICAgfTsKICAgICAgIH0pOwot ICAgIH0sCiAKLSAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgY2hlY2sgdGhlIGNvbm5lY3Rpb24g c3RhdHVzIGF0IHNwZWNpZmljCi0gICAgLy8gaW50ZXJ2YWwgZGVmaW5lZCBieSB0aGUgdXNlciBp biBwcmVmZXJlbmNlCi0gICAgY2hlY2tDb25uZWN0aW9uU3RhdHVzOiBmdW5jdGlvbigpIHsKLSAg ICAgIHZhciBzZWxmID0gdGhpcywKLSAgICAgICAgcHJlZmVyZW5jZSA9IHdpbmRvdy50b3AucGdB ZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNlKAotICAgICAgICAgICdzcWxlZGl0b3InLCAnY29u bmVjdGlvbl9zdGF0dXNfZmV0Y2hfdGltZScKLSAgICAgICAgKSwKLSAgICAgICAgZGlzcGxheV9z dGF0dXMgPSB3aW5kb3cudG9wLnBnQWRtaW4uQnJvd3Nlci5nZXRfcHJlZmVyZW5jZSgKLSAgICAg ICAgICAnc3FsZWRpdG9yJywgJ2Nvbm5lY3Rpb25fc3RhdHVzJwotICAgICAgICApOwotICAgICAg aWYoIXByZWZlcmVuY2UgJiYgc2VsZi5oYW5kbGVyLmlzX25ld19icm93c2VyX3RhYikgewotICAg ICAgICBwcmVmZXJlbmNlID0gd2luZG93Lm9wZW5lci5wZ0FkbWluLkJyb3dzZXIuZ2V0X3ByZWZl cmVuY2UoCi0gICAgICAgICAgJ3NxbGVkaXRvcicsICdjb25uZWN0aW9uX3N0YXR1c19mZXRjaF90 aW1lJwotICAgICAgICApOwotICAgICAgICBkaXNwbGF5X3N0YXR1cyA9IHdpbmRvdy5vcGVuZXIu cGdBZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNlKAotICAgICAgICAgICdzcWxlZGl0b3InLCAn Y29ubmVjdGlvbl9zdGF0dXMnCi0gICAgICAgICk7Ci0gICAgICB9CiAKLSAgICAgIC8vIE9ubHkg ZW5hYmxlIHBvb2xpbmcgaWYgaXQgaXMgZW5hYmxlZAotICAgICAgaWYgKGRpc3BsYXlfc3RhdHVz ICYmIGRpc3BsYXlfc3RhdHVzLnZhbHVlKSB7Ci0gICAgICAgIFNxbEVkaXRvclV0aWxzLnVwZGF0 ZUNvbm5lY3Rpb25TdGF0dXMoCi0gICAgICAgICAgc2VsZi5oYW5kbGVyLAotICAgICAgICAgIHBy ZWZlcmVuY2UudmFsdWUKLSAgICAgICAgKTsKKyAgICAgIHF1ZXJ5VG9vbFByZWYucmVmbGVjdFBy ZWZlcmVuY2VzKHNlbGYpOworICAgICAgLyogUmVnaXN0ZXIgZm9yIHByZWZlcmVuY2UgY2hhbmdl ZCBldmVudCBicm9hZGNhc3RlZCBpbiBwYXJlbnQKKyAgICAgICAqIHRvIHJlbG9hZCB0aGUgc2hv cmN1dHMuIEFzIHNxbGVkaXRvciBpcyBpbiBpRnJhbWUgb2Ygd2NEb2NrZXIKKyAgICAgICAqIHdp bmRvdyBwYXJlbnQgaXMgcmVmZXJyZWQKKyAgICAgICAqLworICAgICAgcGdCcm93c2VyLm9uUHJl ZmVyZW5jZXNDaGFuZ2UoJ3NxbGVkaXRvcicsIGZ1bmN0aW9uKCkgeworICAgICAgICBsZXQgYnJv d3NlciA9IHdpbmRvdy5vcGVuZXIgPworICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuZXIucGdB ZG1pbi5Ccm93c2VyIDogd2luZG93LnRvcC5wZ0FkbWluLkJyb3dzZXI7CisgICAgICAgIHNlbGYu cHJlZmVyZW5jZXMgPSBicm93c2VyLmdldF9wcmVmZXJlbmNlc19mb3JfbW9kdWxlKCdzcWxlZGl0 b3InKTsKKyAgICAgICAgc2VsZi5oYW5kbGVyLnByZWZlcmVuY2VzID0gc2VsZi5wcmVmZXJlbmNl czsKKyAgICAgICAgcXVlcnlUb29sUHJlZi5yZWZsZWN0UHJlZmVyZW5jZXMoc2VsZik7CisgICAg ICB9KTsKKworICAgICAgLyogSWYgc3FsIGVkaXRvciBpcyBpbiBhIG5ldyB0YWIsIGV2ZW50IGZp cmVkIGlzIG5vdCBhdmFpbGFibGUKKyAgICAgICAqIGluc3RlYWQsIGEgcG9sbGVyIGlzIHNldCB1 cCB3aG8gd2lsbCBjaGVjayBpZiB0aGUgd2luZG93Lm9wZW5lcgorICAgICAgICogcHJlZmNhY2hl X3ZlcnNpb24gaXMgdXBkYXRlZC4gSWYgdXBkYXRlZCwgdGhlIG5ldyB0YWIgd2lsbCB1cGRhdGUg aXRzCisgICAgICAgKiBwcmVmZXJlbmNlcyBhbmQgcmVmbGVjdCBpdAorICAgICAgICovCisgICAg ICBpZihzZWxmLnByZWZlcmVuY2VzLm5ld19icm93c2VyX3RhYikgeworICAgICAgICBzZXRJbnRl cnZhbCgoKT0+eworICAgICAgICAgIGlmKHdpbmRvdy5vcGVuZXIucGdBZG1pbiAmJgorICAgICAg ICAgICAgIHBnQnJvd3Nlci5wcmVmZXJlbmNlX3ZlcnNpb24oKSA8IHdpbmRvdy5vcGVuZXIucGdB ZG1pbi5Ccm93c2VyLnByZWZlcmVuY2VfdmVyc2lvbigpKQorICAgICAgICAgIHsKKyAgICAgICAg ICAgIHBnQnJvd3Nlci5wcmVmZXJlbmNlX3ZlcnNpb24od2luZG93Lm9wZW5lci5wZ0FkbWluLkJy b3dzZXIucHJlZmVyZW5jZV92ZXJzaW9uKCkpOworICAgICAgICAgICAgc2VsZi5wcmVmZXJlbmNl cyA9IHdpbmRvdy5vcGVuZXIucGdBZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNlc19mb3JfbW9k dWxlKCdzcWxlZGl0b3InKTsKKyAgICAgICAgICAgIHF1ZXJ5VG9vbFByZWYucmVmbGVjdFByZWZl cmVuY2VzKHNlbGYpOworICAgICAgICAgIH0KKyAgICAgICAgfSwgMTAwMCk7CiAgICAgICB9CiAg ICAgfSwKIApAQCAtODA1LDYgKzgwNCwxMSBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsK ICAgICAgIH07CiAKICAgICAgIHNlbGYuaGFuZGxlci5zbGlja2dyaWQgPSBncmlkOworICAgICAg c2VsZi5oYW5kbGVyLnNsaWNrZ3JpZC5DU1ZPcHRpb25zID0geworICAgICAgICBxdW90aW5nOiBz ZWxmLnByZWZlcmVuY2VzLnJlc3VsdHNfZ3JpZF9xdW90aW5nLAorICAgICAgICBxdW90ZV9jaGFy OiBzZWxmLnByZWZlcmVuY2VzLnJlc3VsdHNfZ3JpZF9xdW90ZV9jaGFyLAorICAgICAgICBmaWVs ZF9zZXBhcmF0b3I6IHNlbGYucHJlZmVyZW5jZXMucmVzdWx0c19ncmlkX2ZpZWxkX3NlcGFyYXRv ciwKKyAgICAgIH07CiAKICAgICAgIC8vIExpc3RlbmVyIGZ1bmN0aW9uIHRvIHdhdGNoIHNlbGVj dGVkIHJvd3MgZnJvbSBncmlkCiAgICAgICBpZiAoZWRpdG9yX2RhdGEuc2VsZWN0aW9uKSB7CkBA IC05MDMsMjkgKzkwNyw2IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgICAgICAg ICAgaGFuZGxlUXVlcnlPdXRwdXRLZXlib2FyZEV2ZW50KGV2ZW50LCBhcmdzKTsKICAgICAgICAg ICB9KTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB2YXIgcHJlZl9jYWNoZSA9IHVuZGVm aW5lZDsKLSAgICAgICAgICBhcmdzLmdyaWQuQ1NWT3B0aW9ucyA9IHt9OwotCi0gICAgICAgICAg aWYgKHNlbGYuaGFuZGxlci5pc19uZXdfYnJvd3Nlcl90YWIpIHsKLSAgICAgICAgICAgIHByZWZf Y2FjaGUgPSB3aW5kb3cub3BlbmVyLnBnQWRtaW4uQnJvd3Nlci5wcmVmZXJlbmNlc19jYWNoZTsK LSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHJlZl9jYWNoZSA9IHdpbmRvdy50b3Au cGdBZG1pbi5Ccm93c2VyLnByZWZlcmVuY2VzX2NhY2hlOwotICAgICAgICAgIH0KLQotICAgICAg ICAgIC8vIEdldCBDU1Ygb3B0aW9ucyBmcm9tIHByZWZlcmVuY2VzIGNhY2hlCi0gICAgICAgICAg YXJncy5ncmlkLkNTVk9wdGlvbnMucXVvdGluZyA9IF8uZmluZFdoZXJlKHByZWZfY2FjaGUsIHsK LSAgICAgICAgICAgICdtb2R1bGUnOiAnc3FsZWRpdG9yJywKLSAgICAgICAgICAgICduYW1lJzog J3Jlc3VsdHNfZ3JpZF9xdW90aW5nJywKLSAgICAgICAgICB9KS52YWx1ZTsKLSAgICAgICAgICBh cmdzLmdyaWQuQ1NWT3B0aW9ucy5xdW90ZV9jaGFyID0gXy5maW5kV2hlcmUocHJlZl9jYWNoZSwg ewotICAgICAgICAgICAgJ21vZHVsZSc6ICdzcWxlZGl0b3InLAotICAgICAgICAgICAgJ25hbWUn OiAncmVzdWx0c19ncmlkX3F1b3RlX2NoYXInLAotICAgICAgICAgIH0pLnZhbHVlOwotICAgICAg ICAgIGFyZ3MuZ3JpZC5DU1ZPcHRpb25zLmZpZWxkX3NlcGFyYXRvciA9IF8uZmluZFdoZXJlKHBy ZWZfY2FjaGUsIHsKLSAgICAgICAgICAgICdtb2R1bGUnOiAnc3FsZWRpdG9yJywKLSAgICAgICAg ICAgICduYW1lJzogJ3Jlc3VsdHNfZ3JpZF9maWVsZF9zZXBhcmF0b3InLAotICAgICAgICAgIH0p LnZhbHVlOwotCiAgICAgICAgICAgaGFuZGxlUXVlcnlPdXRwdXRLZXlib2FyZEV2ZW50KGV2ZW50 LCBhcmdzKTsKICAgICAgICAgfQogICAgICAgfSk7CkBAIC0xMTk2LDcgKzExNzcsMTAgQEAgZGVm aW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICAgcmVuZGVyX2hpc3RvcnlfZ3JpZDogZnVuY3Rp b24oKSB7CiAgICAgICB2YXIgc2VsZiA9IHRoaXM7CiAKLSAgICAgIHNlbGYuaGlzdG9yeV9jb2xs ZWN0aW9uID0gbmV3IEhpc3RvcnlCdW5kbGUuSGlzdG9yeUNvbGxlY3Rpb24oW10pOworICAgICAg LyogU2hvdWxkIG5vdCByZXNldCBpZiBmdW5jdGlvbiBjYWxsZWQgYWdhaW4gKi8KKyAgICAgIGlm KCFzZWxmLmhpc3RvcnlfY29sbGVjdGlvbikgeworICAgICAgICBzZWxmLmhpc3RvcnlfY29sbGVj dGlvbiA9IG5ldyBIaXN0b3J5QnVuZGxlLkhpc3RvcnlDb2xsZWN0aW9uKFtdKTsKKyAgICAgIH0K IAogICAgICAgdmFyIGhpc3RvcnlDb21wb25lbnQ7CiAgICAgICB2YXIgaGlzdG9yeUNvbGxlY3Rp b25SZWFjdEVsZW1lbnQgPSBSZWFjdC5jcmVhdGVFbGVtZW50KApAQCAtMTIwNSw5ICsxMTg5LDEz IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgICAgICAgIHJlZjogZnVuY3Rpb24o Y29tcG9uZW50KSB7CiAgICAgICAgICAgICBoaXN0b3J5Q29tcG9uZW50ID0gY29tcG9uZW50Owog ICAgICAgICAgIH0sCisgICAgICAgICAgc3FsRWRpdG9yUHJlZjogeworICAgICAgICAgICAgc3Fs X2ZvbnRfc2l6ZTogU3FsRWRpdG9yVXRpbHMuY2FsY0ZvbnRTaXplKHRoaXMucHJlZmVyZW5jZXMu c3FsX2ZvbnRfc2l6ZSksCisgICAgICAgICAgfSwKICAgICAgICAgfSk7CiAgICAgICBSZWFjdERP TS5yZW5kZXIoaGlzdG9yeUNvbGxlY3Rpb25SZWFjdEVsZW1lbnQsICQoJyNoaXN0b3J5X2dyaWQn KVswXSk7CiAKKyAgICAgIHNlbGYuaGlzdG9yeV9wYW5lbC5vZmYod2NEb2NrZXIuRVZFTlQuVklT SUJJTElUWV9DSEFOR0VEKTsKICAgICAgIHNlbGYuaGlzdG9yeV9wYW5lbC5vbih3Y0RvY2tlci5F VkVOVC5WSVNJQklMSVRZX0NIQU5HRUQsIGZ1bmN0aW9uKCkgewogICAgICAgICBoaXN0b3J5Q29t cG9uZW50LnJlZm9jdXMoKTsKICAgICAgIH0pOwpAQCAtMTQxNiwyOSArMTQwNCw3IEBAIGRlZmlu ZSgndG9vbHMucXVlcnl0b29sJywgWwogCiAgICAgLy8gQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIGNv cHkgYnV0dG9uIGNsaWNrLgogICAgIG9uX2NvcHlfcm93OiBmdW5jdGlvbigpIHsKLSAgICAgIHZh ciBzZWxmID0gdGhpcywKLSAgICAgICAgcHJlZl9jYWNoZSA9IHVuZGVmaW5lZDsKLSAgICAgIHNl bGYuZ3JpZC5DU1ZPcHRpb25zID0ge307Ci0KLSAgICAgIGlmIChzZWxmLmhhbmRsZXIuaXNfbmV3 X2Jyb3dzZXJfdGFiKSB7Ci0gICAgICAgIHByZWZfY2FjaGUgPSB3aW5kb3cub3BlbmVyLnBnQWRt aW4uQnJvd3Nlci5wcmVmZXJlbmNlc19jYWNoZTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHBy ZWZfY2FjaGUgPSB3aW5kb3cudG9wLnBnQWRtaW4uQnJvd3Nlci5wcmVmZXJlbmNlc19jYWNoZTsK LSAgICAgIH0KLQotICAgICAgLy8gR2V0IENTViBvcHRpb25zIGZyb20gcHJlZmVyZW5jZXMgY2Fj aGUKLSAgICAgIHNlbGYuZ3JpZC5DU1ZPcHRpb25zLnF1b3RpbmcgPSBfLmZpbmRXaGVyZShwcmVm X2NhY2hlLCB7Ci0gICAgICAgICdtb2R1bGUnOiAnc3FsZWRpdG9yJywKLSAgICAgICAgJ25hbWUn OiAncmVzdWx0c19ncmlkX3F1b3RpbmcnLAotICAgICAgfSkudmFsdWU7Ci0gICAgICBzZWxmLmdy aWQuQ1NWT3B0aW9ucy5xdW90ZV9jaGFyID0gXy5maW5kV2hlcmUocHJlZl9jYWNoZSwgewotICAg ICAgICAnbW9kdWxlJzogJ3NxbGVkaXRvcicsCi0gICAgICAgICduYW1lJzogJ3Jlc3VsdHNfZ3Jp ZF9xdW90ZV9jaGFyJywKLSAgICAgIH0pLnZhbHVlOwotICAgICAgc2VsZi5ncmlkLkNTVk9wdGlv bnMuZmllbGRfc2VwYXJhdG9yID0gXy5maW5kV2hlcmUocHJlZl9jYWNoZSwgewotICAgICAgICAn bW9kdWxlJzogJ3NxbGVkaXRvcicsCi0gICAgICAgICduYW1lJzogJ3Jlc3VsdHNfZ3JpZF9maWVs ZF9zZXBhcmF0b3InLAotICAgICAgfSkudmFsdWU7CisgICAgICB2YXIgc2VsZiA9IHRoaXM7CiAK ICAgICAgIC8vIFRyaWdnZXIgdGhlIGNvcHkgc2lnbmFsIHRvIHRoZSBTcWxFZGl0b3JDb250cm9s bGVyIGNsYXNzCiAgICAgICBzZWxmLmhhbmRsZXIudHJpZ2dlcigKQEAgLTE3MDgsNyArMTY3NCw3 IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgIGtleUFjdGlvbjogZnVuY3Rpb24o ZXZlbnQpIHsKICAgICAgIHZhciBwYW5lbF9pZCwgc2VsZiA9IHRoaXM7CiAgICAgICBwYW5lbF9p ZCA9IGtleWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgdGhp cy5oYW5kbGVyLCB0aGlzLmtleWJvYXJkU2hvcnRjdXRDb25maWcsIHF1ZXJ5VG9vbEFjdGlvbnMs IGV2ZW50CisgICAgICAgIHRoaXMuaGFuZGxlciwgcXVlcnlUb29sQWN0aW9ucywgZXZlbnQKICAg ICAgICk7CiAKICAgICAgIC8vIElmIGl0IHJldHVybiBwYW5lbCBpZCB0aGVuIGZvY3VzIGl0CkBA IC0xOTMzLDIzICsxODk5LDE3IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgICAg ICogaGVhZGVyIGFuZCBsb2FkaW5nIGljb24gYW5kIHN0YXJ0IGV4ZWN1dGlvbiBvZiB0aGUgc3Fs IHF1ZXJ5LgogICAgICAgICovCiAgICAgICBzdGFydDogZnVuY3Rpb24odHJhbnNJZCwgaXNfcXVl cnlfdG9vbCwgZWRpdG9yX3RpdGxlLCBzY3JpcHRfdHlwZV91cmwsCi0gICAgICAgICAgaXNfbmV3 X2Jyb3dzZXJfdGFiLCBzZXJ2ZXJfdHlwZSwgcHJvbXB0X3NhdmVfY2hhbmdlcywgdXJsX3BhcmFt cworICAgICAgICBzZXJ2ZXJfdHlwZSwgdXJsX3BhcmFtcwogICAgICAgKSB7CiAgICAgICAgIHZh ciBzZWxmID0gdGhpczsKIAogICAgICAgICBzZWxmLmlzX3F1ZXJ5X3Rvb2wgPSBpc19xdWVyeV90 b29sOwogICAgICAgICBzZWxmLnJvd3NfYWZmZWN0ZWQgPSAwOwogICAgICAgICBzZWxmLm1hcmtl ZF9saW5lX25vID0gMDsKLSAgICAgICAgc2VsZi5leHBsYWluX3ZlcmJvc2UgPSBmYWxzZTsKLSAg ICAgICAgc2VsZi5leHBsYWluX2Nvc3RzID0gZmFsc2U7Ci0gICAgICAgIHNlbGYuZXhwbGFpbl9i dWZmZXJzID0gZmFsc2U7Ci0gICAgICAgIHNlbGYuZXhwbGFpbl90aW1pbmcgPSBmYWxzZTsKLSAg ICAgICAgc2VsZi5pc19uZXdfYnJvd3Nlcl90YWIgPSBpc19uZXdfYnJvd3Nlcl90YWI7CiAgICAg ICAgIHNlbGYuaGFzX21vcmVfcm93cyA9IGZhbHNlOwogICAgICAgICBzZWxmLmZldGNoaW5nX3Jv d3MgPSBmYWxzZTsKICAgICAgICAgc2VsZi5jbG9zZV9vbl9zYXZlID0gZmFsc2U7CiAgICAgICAg IHNlbGYuc2VydmVyX3R5cGUgPSBzZXJ2ZXJfdHlwZTsKLSAgICAgICAgc2VsZi5wcm9tcHRfc2F2 ZV9jaGFuZ2VzID0gcHJvbXB0X3NhdmVfY2hhbmdlczsKICAgICAgICAgc2VsZi51cmxfcGFyYW1z ID0gdXJsX3BhcmFtczsKICAgICAgICAgc2VsZi5zY3JpcHRfdHlwZV91cmwgPSBzY3JpcHRfdHlw ZV91cmw7CiAKQEAgLTIwMjIsNyArMTk4Miw2IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywg WwogICAgICAgICAvLyBMaXN0ZW4gdG8gdGhlIGNvZGVtaXJyb3Igb24gdGV4dCBjaGFuZ2UgZXZl bnQKICAgICAgICAgLy8gb25seSBpbiBxdWVyeSBlZGl0b3IgdG9vbAogICAgICAgICBpZiAoc2Vs Zi5pc19xdWVyeV90b29sKSB7Ci0gICAgICAgICAgc2VsZi5nZXRfcHJlZmVyZW5jZXMoKTsKICAg ICAgICAgICBzZWxmLmdyaWRWaWV3LnF1ZXJ5X3Rvb2xfb2JqLm9uKCdjaGFuZ2UnLCBzZWxmLl9v bl9xdWVyeV9jaGFuZ2UuYmluZChzZWxmKSk7CiAgICAgICAgIH0KIApAQCAtMjgzMCw3ICsyNzg5 LDcgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICAgICBzZXRUaXRsZTogZnVuY3Rp b24odGl0bGUsIHVuc2FmZSkgewogICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CiAKLSAgICAgICAg aWYgKHNlbGYuaXNfbmV3X2Jyb3dzZXJfdGFiKSB7CisgICAgICAgIGlmIChzZWxmLnByZWZlcmVu Y2VzLm5ld19icm93c2VyX3RhYikgewogICAgICAgICAgIHdpbmRvdy5kb2N1bWVudC50aXRsZSA9 IHRpdGxlOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgIF8uZWFjaCh3aW5kb3cudG9wLnBn QWRtaW4uQnJvd3Nlci5kb2NrZXIuZmluZFBhbmVscygnZnJtX2RhdGFncmlkJyksIGZ1bmN0aW9u KHApIHsKQEAgLTI5OTIsNyArMjk1MSw3IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwog ICAgICAgICAgICAgdmFyIHRpdGxlID0gc2VsZi5ncmlkVmlldy5jdXJyZW50X2ZpbGUucmVwbGFj ZSgvXi4qW1xcXC9dL2csICcnKSArICcgKic7CiAgICAgICAgICAgICBzZWxmLnNldFRpdGxlKHRp dGxlLCB0cnVlKTsKICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKHNlbGYuaXNf bmV3X2Jyb3dzZXJfdGFiKSB7CisgICAgICAgICAgICBpZiAoc2VsZi5wcmVmZXJlbmNlcy5uZXdf YnJvd3Nlcl90YWIpIHsKICAgICAgICAgICAgICAgdGl0bGUgPSB3aW5kb3cuZG9jdW1lbnQudGl0 bGUgKyAnIConOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgLy8gRmluZCB0 aGUgdGl0bGUgb2YgdGhlIHZpc2libGUgcGFuZWwKQEAgLTM1NzAsMjIgKzM1MjksOCBAQCBkZWZp bmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgICAgfSk7CiAgICAgICB9LAogCi0gICAgICAv LyBUaGlzIGZ1bmN0aW9uIHdpbGwgdG9nZ2xlICJ2ZXJib3NlIiBvcHRpb24gaW4gZXhwbGFpbgot ICAgICAgX2V4cGxhaW5fdmVyYm9zZTogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBzZWxmID0g dGhpczsKLSAgICAgICAgaWYgKCQoJy5leHBsYWluLXZlcmJvc2UnKS5oYXNDbGFzcygndmlzaWJp bGl0eS1oaWRkZW4nKSA9PT0gdHJ1ZSkgewotICAgICAgICAgICQoJy5leHBsYWluLXZlcmJvc2Un KS5yZW1vdmVDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgICAgICAgICBzZWxmLmV4cGxh aW5fdmVyYm9zZSA9IHRydWU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgJCgnLmV4cGxh aW4tdmVyYm9zZScpLmFkZENsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwotICAgICAgICAgIHNl bGYuZXhwbGFpbl92ZXJib3NlID0gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBTZXQg dGhpcyBvcHRpb24gaW4gcHJlZmVyZW5jZXMKLSAgICAgICAgdmFyIGRhdGEgPSB7Ci0gICAgICAg ICAgJ2V4cGxhaW5fdmVyYm9zZSc6IHNlbGYuZXhwbGFpbl92ZXJib3NlLAotICAgICAgICB9Owot CisgICAgICBleHBsYWluUHJlZmVyZW5jZVVwZGF0ZTogIGZ1bmN0aW9uKHN1Ykl0ZW0sIGRhdGEs IGNhbGxlcikgeworICAgICAgICBsZXQgc2VsZiA9IHRoaXM7CiAgICAgICAgICQuYWpheCh7CiAg ICAgICAgICAgdXJsOiB1cmxfZm9yKCdzcWxlZGl0b3IucXVlcnlfdG9vbF9wcmVmZXJlbmNlcycs IHsKICAgICAgICAgICAgICd0cmFuc19pZCc6IHNlbGYudHJhbnNJZCwKQEAgLTM1OTYsMTMzICsz NTQxLDk0IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgICAgICAgIHN1Y2Nlc3M6 IGZ1bmN0aW9uKHJlcykgewogICAgICAgICAgICAgaWYgKHJlcy5zdWNjZXNzID09IHVuZGVmaW5l ZCB8fCAhcmVzLnN1Y2Nlc3MpIHsKICAgICAgICAgICAgICAgYWxlcnRpZnkuYWxlcnQoZ2V0dGV4 dCgnRXhwbGFpbiBvcHRpb25zIGVycm9yJyksCi0gICAgICAgICAgICAgICAgZ2V0dGV4dCgnRXJy b3Igb2NjdXJyZWQgd2hpbGUgc2V0dGluZyB2ZXJib3NlIG9wdGlvbiBpbiBleHBsYWluLicpCisg ICAgICAgICAgICAgICAgZ2V0dGV4dCgnRXJyb3Igb2NjdXJyZWQgd2hpbGUgc2V0dGluZyAlKHN1 Ykl0ZW0pcyBvcHRpb24gaW4gZXhwbGFpbi4nLAorICAgICAgICAgICAgICAgICAgICAgICAge3N1 Ykl0ZW0gOiBzdWJJdGVtfSkKICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgIH0KICAgICAg ICAgICB9LAogICAgICAgICAgIGVycm9yOiBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICBsZXQg bXNnID0gaHR0cEVycm9ySGFuZGxlci5oYW5kbGVRdWVyeVRvb2xBamF4RXJyb3IoCi0gICAgICAg ICAgICAgIHBnQWRtaW4sIHNlbGYsIGUsICdfZXhwbGFpbl92ZXJib3NlJywgW10sIHRydWUKKyAg ICAgICAgICAgICAgcGdBZG1pbiwgc2VsZiwgZSwgY2FsbGVyLCBbXSwgdHJ1ZQogICAgICAgICAg ICAgKTsKICAgICAgICAgICAgIGFsZXJ0aWZ5LmFsZXJ0KGdldHRleHQoJ0V4cGxhaW4gb3B0aW9u cyBlcnJvcicpLCBtc2cpOwogICAgICAgICAgIH0sCiAgICAgICAgIH0pOwogICAgICAgfSwKIAor ICAgICAgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIHRvZ2dsZSAidmVyYm9zZSIgb3B0aW9uIGluIGV4 cGxhaW4KKyAgICAgIF9leHBsYWluX3ZlcmJvc2U6IGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIg c2VsZiA9IHRoaXM7CisgICAgICAgIGxldCBleHBsYWluX3ZlcmJvc2UgPSBmYWxzZTsKKyAgICAg ICAgaWYgKCQoJy5leHBsYWluLXZlcmJvc2UnKS5oYXNDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4n KSA9PT0gdHJ1ZSkgeworICAgICAgICAgICQoJy5leHBsYWluLXZlcmJvc2UnKS5yZW1vdmVDbGFz cygndmlzaWJpbGl0eS1oaWRkZW4nKTsKKyAgICAgICAgICBleHBsYWluX3ZlcmJvc2UgPSB0cnVl OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICQoJy5leHBsYWluLXZlcmJvc2UnKS5hZGRD bGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKKyAgICAgICAgICBleHBsYWluX3ZlcmJvc2UgPSBm YWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHNlbGYuZXhwbGFpblByZWZlcmVuY2VVcGRhdGUo CisgICAgICAgICAgJ3ZlcmJvc2UnLCB7CisgICAgICAgICAgICAnZXhwbGFpbl92ZXJib3NlJzog ZXhwbGFpbl92ZXJib3NlLAorICAgICAgICAgIH0sICdfZXhwbGFpbl92ZXJib3NlJworICAgICAg ICApOworICAgICAgfSwKKwogICAgICAgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIHRvZ2dsZSAiY29z dHMiIG9wdGlvbiBpbiBleHBsYWluCiAgICAgICBfZXhwbGFpbl9jb3N0czogZnVuY3Rpb24oKSB7 CiAgICAgICAgIHZhciBzZWxmID0gdGhpczsKKyAgICAgICAgbGV0IGV4cGxhaW5fY29zdHMgPSBm YWxzZTsKICAgICAgICAgaWYgKCQoJy5leHBsYWluLWNvc3RzJykuaGFzQ2xhc3MoJ3Zpc2liaWxp dHktaGlkZGVuJykgPT09IHRydWUpIHsKICAgICAgICAgICAkKCcuZXhwbGFpbi1jb3N0cycpLnJl bW92ZUNsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwotICAgICAgICAgIHNlbGYuZXhwbGFpbl9j b3N0cyA9IHRydWU7CisgICAgICAgICAgZXhwbGFpbl9jb3N0cyA9IHRydWU7CiAgICAgICAgIH0g ZWxzZSB7CiAgICAgICAgICAgJCgnLmV4cGxhaW4tY29zdHMnKS5hZGRDbGFzcygndmlzaWJpbGl0 eS1oaWRkZW4nKTsKLSAgICAgICAgICBzZWxmLmV4cGxhaW5fY29zdHMgPSBmYWxzZTsKKyAgICAg ICAgICBleHBsYWluX2Nvc3RzID0gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBTZXQg dGhpcyBvcHRpb24gaW4gcHJlZmVyZW5jZXMKLSAgICAgICAgdmFyIGRhdGEgPSB7Ci0gICAgICAg ICAgJ2V4cGxhaW5fY29zdHMnOiBzZWxmLmV4cGxhaW5fY29zdHMsCi0gICAgICAgIH07Ci0KLSAg ICAgICAgJC5hamF4KHsKLSAgICAgICAgICB1cmw6IHVybF9mb3IoJ3NxbGVkaXRvci5xdWVyeV90 b29sX3ByZWZlcmVuY2VzJywgewotICAgICAgICAgICAgJ3RyYW5zX2lkJzogc2VsZi50cmFuc0lk LAotICAgICAgICAgIH0pLAotICAgICAgICAgIG1ldGhvZDogJ1BVVCcsCi0gICAgICAgICAgY29u dGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJywKLSAgICAgICAgICBkYXRhOiBKU09OLnN0cmlu Z2lmeShkYXRhKSwKLSAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihyZXMpIHsKLSAgICAgICAg ICAgIGlmIChyZXMuc3VjY2VzcyA9PSB1bmRlZmluZWQgfHwgIXJlcy5zdWNjZXNzKSB7Ci0gICAg ICAgICAgICAgIGFsZXJ0aWZ5LmFsZXJ0KGdldHRleHQoJ0V4cGxhaW4gb3B0aW9ucyBlcnJvcicp LAotICAgICAgICAgICAgICAgIGdldHRleHQoJ0Vycm9yIG9jY3VycmVkIHdoaWxlIHNldHRpbmcg Y29zdHMgb3B0aW9uIGluIGV4cGxhaW4uJykKLSAgICAgICAgICAgICAgKTsKLSAgICAgICAgICAg IH0KLSAgICAgICAgICB9LAotICAgICAgICAgIGVycm9yOiBmdW5jdGlvbihlKSB7Ci0gICAgICAg ICAgICBsZXQgbXNnID0gaHR0cEVycm9ySGFuZGxlci5oYW5kbGVRdWVyeVRvb2xBamF4RXJyb3Io Ci0gICAgICAgICAgICAgIHBnQWRtaW4sIHNlbGYsIGUsICdfZXhwbGFpbl9jb3N0cycsIFtdLCB0 cnVlCi0gICAgICAgICAgICApOwotICAgICAgICAgICAgYWxlcnRpZnkuYWxlcnQoZ2V0dGV4dCgn RXhwbGFpbiBvcHRpb25zIGVycm9yJyksIG1zZyk7Ci0gICAgICAgICAgfSwKLSAgICAgICAgfSk7 CisgICAgICAgIHNlbGYuZXhwbGFpblByZWZlcmVuY2VVcGRhdGUoCisgICAgICAgICAgJ2Nvc3Rz JywgeworICAgICAgICAgICAgJ2V4cGxhaW5fY29zdHMnOiBleHBsYWluX2Nvc3RzLAorICAgICAg ICAgIH0sICdfZXhwbGFpbl9jb3N0cycKKyAgICAgICAgKTsKICAgICAgIH0sCiAKICAgICAgIC8v IFRoaXMgZnVuY3Rpb24gd2lsbCB0b2dnbGUgImJ1ZmZlcnMiIG9wdGlvbiBpbiBleHBsYWluCiAg ICAgICBfZXhwbGFpbl9idWZmZXJzOiBmdW5jdGlvbigpIHsKICAgICAgICAgdmFyIHNlbGYgPSB0 aGlzOworICAgICAgICBsZXQgZXhwbGFpbl9idWZmZXJzID0gZmFsc2U7CiAgICAgICAgIGlmICgk KCcuZXhwbGFpbi1idWZmZXJzJykuaGFzQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJykgPT09IHRy dWUpIHsKICAgICAgICAgICAkKCcuZXhwbGFpbi1idWZmZXJzJykucmVtb3ZlQ2xhc3MoJ3Zpc2li aWxpdHktaGlkZGVuJyk7Ci0gICAgICAgICAgc2VsZi5leHBsYWluX2J1ZmZlcnMgPSB0cnVlOwor ICAgICAgICAgIGV4cGxhaW5fYnVmZmVycyA9IHRydWU7CiAgICAgICAgIH0gZWxzZSB7CiAgICAg ICAgICAgJCgnLmV4cGxhaW4tYnVmZmVycycpLmFkZENsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicp OwotICAgICAgICAgIHNlbGYuZXhwbGFpbl9idWZmZXJzID0gZmFsc2U7CisgICAgICAgICAgZXhw bGFpbl9idWZmZXJzID0gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBTZXQgdGhpcyBv cHRpb24gaW4gcHJlZmVyZW5jZXMKLSAgICAgICAgdmFyIGRhdGEgPSB7Ci0gICAgICAgICAgJ2V4 cGxhaW5fYnVmZmVycyc6IHNlbGYuZXhwbGFpbl9idWZmZXJzLAotICAgICAgICB9OwotCi0gICAg ICAgICQuYWpheCh7Ci0gICAgICAgICAgdXJsOiB1cmxfZm9yKCdzcWxlZGl0b3IucXVlcnlfdG9v bF9wcmVmZXJlbmNlcycsIHsKLSAgICAgICAgICAgICd0cmFuc19pZCc6IHNlbGYudHJhbnNJZCwK LSAgICAgICAgICB9KSwKLSAgICAgICAgICBtZXRob2Q6ICdQVVQnLAotICAgICAgICAgIGNvbnRl bnRUeXBlOiAnYXBwbGljYXRpb24vanNvbicsCi0gICAgICAgICAgZGF0YTogSlNPTi5zdHJpbmdp ZnkoZGF0YSksCi0gICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24ocmVzKSB7Ci0gICAgICAgICAg ICBpZiAocmVzLnN1Y2Nlc3MgPT0gdW5kZWZpbmVkIHx8ICFyZXMuc3VjY2VzcykgewotICAgICAg ICAgICAgICBhbGVydGlmeS5hbGVydChnZXR0ZXh0KCdFeHBsYWluIG9wdGlvbnMgZXJyb3InKSwK LSAgICAgICAgICAgICAgICBnZXR0ZXh0KCdFcnJvciBvY2N1cnJlZCB3aGlsZSBzZXR0aW5nIGJ1 ZmZlcnMgb3B0aW9uIGluIGV4cGxhaW4uJykKLSAgICAgICAgICAgICAgKTsKLSAgICAgICAgICAg IH0KLSAgICAgICAgICB9LAotICAgICAgICAgIGVycm9yOiBmdW5jdGlvbihlKSB7Ci0gICAgICAg ICAgICBsZXQgbXNnID0gaHR0cEVycm9ySGFuZGxlci5oYW5kbGVRdWVyeVRvb2xBamF4RXJyb3Io Ci0gICAgICAgICAgICAgIHBnQWRtaW4sIHNlbGYsIGUsICdfZXhwbGFpbl9idWZmZXJzJywgW10s IHRydWUKLSAgICAgICAgICAgICk7Ci0gICAgICAgICAgICBhbGVydGlmeS5hbGVydChnZXR0ZXh0 KCdFeHBsYWluIG9wdGlvbnMgZXJyb3InKSwgbXNnKTsKLSAgICAgICAgICB9LAotICAgICAgICB9 KTsKKyAgICAgICAgc2VsZi5leHBsYWluUHJlZmVyZW5jZVVwZGF0ZSgKKyAgICAgICAgICAnYnVm ZmVycycsIHsKKyAgICAgICAgICAgICdleHBsYWluX2J1ZmZlcnMnOiBleHBsYWluX2J1ZmZlcnMs CisgICAgICAgICAgfSwgJ19leHBsYWluX2J1ZmZlcnMnCisgICAgICAgICk7CiAgICAgICB9LAog CiAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgdG9nZ2xlICJ0aW1pbmciIG9wdGlvbiBpbiBl eHBsYWluCiAgICAgICBfZXhwbGFpbl90aW1pbmc6IGZ1bmN0aW9uKCkgewogICAgICAgICB2YXIg c2VsZiA9IHRoaXM7CisgICAgICAgIGxldCBleHBsYWluX3RpbWluZyA9IGZhbHNlOwogICAgICAg ICBpZiAoJCgnLmV4cGxhaW4tdGltaW5nJykuaGFzQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJykg PT09IHRydWUpIHsKICAgICAgICAgICAkKCcuZXhwbGFpbi10aW1pbmcnKS5yZW1vdmVDbGFzcygn dmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgICAgICAgICBzZWxmLmV4cGxhaW5fdGltaW5nID0gdHJ1 ZTsKKyAgICAgICAgICBleHBsYWluX3RpbWluZyA9IHRydWU7CiAgICAgICAgIH0gZWxzZSB7CiAg ICAgICAgICAgJCgnLmV4cGxhaW4tdGltaW5nJykuYWRkQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVu Jyk7Ci0gICAgICAgICAgc2VsZi5leHBsYWluX3RpbWluZyA9IGZhbHNlOworICAgICAgICAgIGV4 cGxhaW5fdGltaW5nID0gZmFsc2U7CiAgICAgICAgIH0KLSAgICAgICAgLy8gU2V0IHRoaXMgb3B0 aW9uIGluIHByZWZlcmVuY2VzCi0gICAgICAgIHZhciBkYXRhID0gewotICAgICAgICAgICdleHBs YWluX3RpbWluZyc6IHNlbGYuZXhwbGFpbl90aW1pbmcsCi0gICAgICAgIH07CiAKLSAgICAgICAg JC5hamF4KHsKLSAgICAgICAgICB1cmw6IHVybF9mb3IoJ3NxbGVkaXRvci5xdWVyeV90b29sX3By ZWZlcmVuY2VzJywgewotICAgICAgICAgICAgJ3RyYW5zX2lkJzogc2VsZi50cmFuc0lkLAotICAg ICAgICAgIH0pLAotICAgICAgICAgIG1ldGhvZDogJ1BVVCcsCi0gICAgICAgICAgY29udGVudFR5 cGU6ICdhcHBsaWNhdGlvbi9qc29uJywKLSAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShk YXRhKSwKLSAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihyZXMpIHsKLSAgICAgICAgICAgIGlm IChyZXMuc3VjY2VzcyA9PSB1bmRlZmluZWQgfHwgIXJlcy5zdWNjZXNzKSB7Ci0gICAgICAgICAg ICAgIGFsZXJ0aWZ5LmFsZXJ0KGdldHRleHQoJ0V4cGxhaW4gb3B0aW9ucyBlcnJvcicpLAotICAg ICAgICAgICAgICAgIGdldHRleHQoJ0Vycm9yIG9jY3VycmVkIHdoaWxlIHNldHRpbmcgdGltaW5n IG9wdGlvbiBpbiBleHBsYWluLicpCi0gICAgICAgICAgICAgICk7Ci0gICAgICAgICAgICB9Ci0g ICAgICAgICAgfSwKLSAgICAgICAgICBlcnJvcjogZnVuY3Rpb24oZSkgewotICAgICAgICAgICAg bGV0IG1zZyA9IGh0dHBFcnJvckhhbmRsZXIuaGFuZGxlUXVlcnlUb29sQWpheEVycm9yKAotICAg ICAgICAgICAgICBwZ0FkbWluLCBzZWxmLCBlLCAnX2V4cGxhaW5fdGltaW5nJywgW10sIHRydWUK LSAgICAgICAgICAgICk7Ci0gICAgICAgICAgICBhbGVydGlmeS5hbGVydChnZXR0ZXh0KCdFeHBs YWluIG9wdGlvbnMgZXJyb3InKSwgbXNnKTsKLSAgICAgICAgICB9LAotICAgICAgICB9KTsKKyAg ICAgICAgc2VsZi5leHBsYWluUHJlZmVyZW5jZVVwZGF0ZSgKKyAgICAgICAgICAndGltaW5nJywg eworICAgICAgICAgICAgJ2V4cGxhaW5fdGltaW5nJzogZXhwbGFpbl90aW1pbmcsCisgICAgICAg ICAgfSwgJ19leHBsYWluX3RpbWluZycKKyAgICAgICAgKTsKICAgICAgIH0sCiAKICAgICAgIC8q CkBAIC0zNzUxLDg1ICszNjU3LDYgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICAg ICAgIGlzX3F1ZXJ5X3J1bm5pbmcgPSB2YWx1ZTsKICAgICAgIH0sCiAKLSAgICAgIC8qCi0gICAg ICAgKiBUaGlzIGZ1bmN0aW9uIGdldCBleHBsYWluIG9wdGlvbnMgYW5kIGF1dG8gcm9sbGJhY2sv YXV0byBjb21taXQKLSAgICAgICAqIHZhbHVlcyBmcm9tIHByZWZlcmVuY2VzCi0gICAgICAgKi8K LSAgICAgIGdldF9wcmVmZXJlbmNlczogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBzZWxmID0g dGhpcywKLSAgICAgICAgICBleHBsYWluX3ZlcmJvc2UgPSBmYWxzZSwKLSAgICAgICAgICBleHBs YWluX2Nvc3RzID0gZmFsc2UsCi0gICAgICAgICAgZXhwbGFpbl9idWZmZXJzID0gZmFsc2UsCi0g ICAgICAgICAgZXhwbGFpbl90aW1pbmcgPSBmYWxzZSwKLSAgICAgICAgICBhdXRvX2NvbW1pdCA9 IHRydWUsCi0gICAgICAgICAgYXV0b19yb2xsYmFjayA9IGZhbHNlLAotICAgICAgICAgIHVwZGF0 ZVVJID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAvLyBTZXQgQXV0by1jb21taXQgYW5kIGF1 dG8tcm9sbGJhY2sgb24gcXVlcnkgZWRpdG9yCi0gICAgICAgICAgICBpZiAoYXV0b19jb21taXQg JiYKLSAgICAgICAgICAgICAgJCgnLmF1dG8tY29tbWl0JykuaGFzQ2xhc3MoJ3Zpc2liaWxpdHkt aGlkZGVuJykgPT09IHRydWUpCi0gICAgICAgICAgICAgICQoJy5hdXRvLWNvbW1pdCcpLnJlbW92 ZUNsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAg ICAgICAgICQoJy5hdXRvLWNvbW1pdCcpLmFkZENsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwot ICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGF1dG9fcm9sbGJhY2sgJiYKLSAgICAgICAg ICAgICAgJCgnLmF1dG8tcm9sbGJhY2snKS5oYXNDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKSA9 PT0gdHJ1ZSkKLSAgICAgICAgICAgICAgJCgnLmF1dG8tcm9sbGJhY2snKS5yZW1vdmVDbGFzcygn dmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAk KCcuYXV0by1yb2xsYmFjaycpLmFkZENsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwotICAgICAg ICAgICAgfQotCi0gICAgICAgICAgICAvLyBTZXQgZXhwbGFpbiBvcHRpb25zIG9uIHF1ZXJ5IGVk aXRvcgotICAgICAgICAgICAgaWYgKGV4cGxhaW5fdmVyYm9zZSAmJgotICAgICAgICAgICAgICAk KCcuZXhwbGFpbi12ZXJib3NlJykuaGFzQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJykgPT09IHRy dWUpCi0gICAgICAgICAgICAgICQoJy5leHBsYWluLXZlcmJvc2UnKS5yZW1vdmVDbGFzcygndmlz aWJpbGl0eS1oaWRkZW4nKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAkKCcu ZXhwbGFpbi12ZXJib3NlJykuYWRkQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7Ci0gICAgICAg ICAgICB9Ci0gICAgICAgICAgICBpZiAoZXhwbGFpbl9jb3N0cyAmJgotICAgICAgICAgICAgICAk KCcuZXhwbGFpbi1jb3N0cycpLmhhc0NsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpID09PSB0cnVl KQotICAgICAgICAgICAgICAkKCcuZXhwbGFpbi1jb3N0cycpLnJlbW92ZUNsYXNzKCd2aXNpYmls aXR5LWhpZGRlbicpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICQoJy5leHBs YWluLWNvc3RzJykuYWRkQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7Ci0gICAgICAgICAgICB9 Ci0gICAgICAgICAgICBpZiAoZXhwbGFpbl9idWZmZXJzICYmCi0gICAgICAgICAgICAgICQoJy5l eHBsYWluLWJ1ZmZlcnMnKS5oYXNDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKSA9PT0gdHJ1ZSkK LSAgICAgICAgICAgICAgJCgnLmV4cGxhaW4tYnVmZmVycycpLnJlbW92ZUNsYXNzKCd2aXNpYmls aXR5LWhpZGRlbicpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICQoJy5leHBs YWluLWJ1ZmZlcnMnKS5hZGRDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgICAgICAgICAg IH0KLSAgICAgICAgICAgIGlmIChleHBsYWluX3RpbWluZyAmJgotICAgICAgICAgICAgICAkKCcu ZXhwbGFpbi10aW1pbmcnKS5oYXNDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKSA9PT0gdHJ1ZSkK LSAgICAgICAgICAgICAgJCgnLmV4cGxhaW4tdGltaW5nJykucmVtb3ZlQ2xhc3MoJ3Zpc2liaWxp dHktaGlkZGVuJyk7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgJCgnLmV4cGxh aW4tdGltaW5nJykuYWRkQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7Ci0gICAgICAgICAgICB9 Ci0gICAgICAgICAgfTsKLQotICAgICAgICAkLmFqYXgoewotICAgICAgICAgIHVybDogdXJsX2Zv cignc3FsZWRpdG9yLnF1ZXJ5X3Rvb2xfcHJlZmVyZW5jZXMnLCB7Ci0gICAgICAgICAgICAndHJh bnNfaWQnOiBzZWxmLnRyYW5zSWQsCi0gICAgICAgICAgfSksCi0gICAgICAgICAgbWV0aG9kOiAn R0VUJywKLSAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihyZXMpIHsKLSAgICAgICAgICAgIGlm IChyZXMuZGF0YSkgewotICAgICAgICAgICAgICBleHBsYWluX3ZlcmJvc2UgPSByZXMuZGF0YS5l eHBsYWluX3ZlcmJvc2U7Ci0gICAgICAgICAgICAgIGV4cGxhaW5fY29zdHMgPSByZXMuZGF0YS5l eHBsYWluX2Nvc3RzOwotICAgICAgICAgICAgICBleHBsYWluX2J1ZmZlcnMgPSByZXMuZGF0YS5l eHBsYWluX2J1ZmZlcnM7Ci0gICAgICAgICAgICAgIGV4cGxhaW5fdGltaW5nID0gcmVzLmRhdGEu ZXhwbGFpbl90aW1pbmc7Ci0gICAgICAgICAgICAgIGF1dG9fY29tbWl0ID0gcmVzLmRhdGEuYXV0 b19jb21taXQ7Ci0gICAgICAgICAgICAgIGF1dG9fcm9sbGJhY2sgPSByZXMuZGF0YS5hdXRvX3Jv bGxiYWNrOwotICAgICAgICAgICAgICB1cGRhdGVVSSgpOwotICAgICAgICAgICAgfQotICAgICAg ICAgIH0sCi0gICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGxldCBt c2cgPSBodHRwRXJyb3JIYW5kbGVyLmhhbmRsZVF1ZXJ5VG9vbEFqYXhFcnJvcigKLSAgICAgICAg ICAgICAgcGdBZG1pbiwgc2VsZiwgZSwgJ2dldF9wcmVmZXJlbmNlcycsIFtdLCB0cnVlCi0gICAg ICAgICAgICApOwotICAgICAgICAgICAgdXBkYXRlVUkoKTsKLSAgICAgICAgICAgIGFsZXJ0aWZ5 LmFsZXJ0KGdldHRleHQoJ0dldCBQcmVmZXJlbmNlcyBlcnJvcicpLCBtc2cpOwotICAgICAgICAg IH0sCi0gICAgICAgIH0pOwotICAgICAgfSwKICAgICAgIGNsb3NlOiBmdW5jdGlvbigpIHsKICAg ICAgICAgdmFyIHNlbGYgPSB0aGlzOwogCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9z cWxlZGl0b3IvdGVzdHMvdGVzdF9wcmVmX3V0aWxpdGllcy5weSBiL3dlYi9wZ2FkbWluL3Rvb2xz L3NxbGVkaXRvci90ZXN0cy90ZXN0X3ByZWZfdXRpbGl0aWVzLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCBjYmQxNDFiMC4uMDAwMDAwMDAKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMv c3FsZWRpdG9yL3Rlc3RzL3Rlc3RfcHJlZl91dGlsaXRpZXMucHkKKysrIC9kZXYvbnVsbApAQCAt MSwxMDAgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgcGdBZG1pbiA0IC0gUG9zdGdy ZVNRTCBUb29scwotIwotIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE4LCBUaGUgcGdBZG1pbiBE ZXZlbG9wbWVudCBUZWFtCi0jIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBv c3RncmVTUUwgTGljZW5jZQotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLWZyb20gcGdhZG1pbi51dGls cy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcGdhZG1pbi50b29scy5zcWxl ZGl0b3IudXRpbHMucXVlcnlfdG9vbF9wcmVmZXJlbmNlcyBpbXBvcnQgXAotICAgIGdldF90ZXh0 X3JlcHJlc2VudGF0aW9uX29mX3Nob3J0Y3V0Ci0KLQotY2xhc3MgVGVzdFF1ZXJ5VG9vbFByZWZl cmVuY2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIgotICAgIEVuc3VyZXMgdGhhdCB3ZSBh cmUgYWJsZSB0byBmZXRjaCBwcmVmZXJlbmNlcyBwcm9wZXJseQotICAgICIiIgotICAgIHNjZW5h cmlvcyA9IFsKLSAgICAgICAgKCdDaGVjayB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIGEgdmFsaWQg c2hvcnRjdXRzJywgZGljdCgKLSAgICAgICAgICAgIGZldGNoX3ByZWY9VHJ1ZSwKLSAgICAgICAg ICAgIHNhbXBsZV9zaG9ydGN1dD1kaWN0KAotICAgICAgICAgICAgICAgIGFsdD1GYWxzZSwKLSAg ICAgICAgICAgICAgICBzaGlmdD1GYWxzZSwKLSAgICAgICAgICAgICAgICBjb250cm9sPUZhbHNl LAotICAgICAgICAgICAgICAgIGtleT1kaWN0KAotICAgICAgICAgICAgICAgICAgICBjaGFyPSdh JywKLSAgICAgICAgICAgICAgICAgICAga2V5Q29kZT02NQotICAgICAgICAgICAgICAgICkKLSAg ICAgICAgICAgICksCi0gICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9J2EnCi0gICAgICAgICkp LAotCi0gICAgICAgICgnQ2hlY2sgdGV4dCByZXByZXNlbnRhdGlvbiBvZiBhIHZhbGlkIHNob3J0 Y3V0cycsIGRpY3QoCi0gICAgICAgICAgICBmZXRjaF9wcmVmPVRydWUsCi0gICAgICAgICAgICBz YW1wbGVfc2hvcnRjdXQ9ZGljdCgKLSAgICAgICAgICAgICAgICBhbHQ9VHJ1ZSwKLSAgICAgICAg ICAgICAgICBzaGlmdD1GYWxzZSwKLSAgICAgICAgICAgICAgICBjb250cm9sPUZhbHNlLAotICAg ICAgICAgICAgICAgIGtleT1kaWN0KAotICAgICAgICAgICAgICAgICAgICBjaGFyPSdhJywKLSAg ICAgICAgICAgICAgICAgICAga2V5Q29kZT02NQotICAgICAgICAgICAgICAgICkKLSAgICAgICAg ICAgICksCi0gICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9J0FsdCthJwotICAgICAgICApKSwK LQotICAgICAgICAoJ0NoZWNrIHRleHQgcmVwcmVzZW50YXRpb24gb2YgYSB2YWxpZCBzaG9ydGN1 dHMnLCBkaWN0KAotICAgICAgICAgICAgZmV0Y2hfcHJlZj1UcnVlLAotICAgICAgICAgICAgc2Ft cGxlX3Nob3J0Y3V0PWRpY3QoCi0gICAgICAgICAgICAgICAgYWx0PVRydWUsCi0gICAgICAgICAg ICAgICAgc2hpZnQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICBjb250cm9sPVRydWUsCi0gICAgICAg ICAgICAgICAga2V5PWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIGNoYXI9J2EnLAotICAgICAg ICAgICAgICAgICAgICBrZXlDb2RlPTY1Ci0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAg KSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0nQWx0K1NoaWZ0K0N0cmwrYScKLSAgICAg ICAgKSksCi0KLSAgICAgICAgKCdDaGVjayB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIGEgdmFsaWQg c2hvcnRjdXRzJywgZGljdCgKLSAgICAgICAgICAgIGZldGNoX3ByZWY9VHJ1ZSwKLSAgICAgICAg ICAgIHNhbXBsZV9zaG9ydGN1dD1kaWN0KAotICAgICAgICAgICAgICAgIGFsdD1GYWxzZSwKLSAg ICAgICAgICAgICAgICBzaGlmdD1UcnVlLAotICAgICAgICAgICAgICAgIGNvbnRyb2w9RmFsc2Us Ci0gICAgICAgICAgICAgICAga2V5PWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIGNoYXI9J2En LAotICAgICAgICAgICAgICAgICAgICBrZXlDb2RlPTY1Ci0gICAgICAgICAgICAgICAgKQotICAg ICAgICAgICAgKSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0nU2hpZnQrYScKLSAgICAg ICAgKSksCi0KLSAgICAgICAgKCdDaGVjayB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIGEgdmFsaWQg c2hvcnRjdXRzJywgZGljdCgKLSAgICAgICAgICAgIGZldGNoX3ByZWY9VHJ1ZSwKLSAgICAgICAg ICAgIHNhbXBsZV9zaG9ydGN1dD1kaWN0KAotICAgICAgICAgICAgICAgIGFsdD1UcnVlLAotICAg ICAgICAgICAgICAgIHNoaWZ0PVRydWUsCi0gICAgICAgICAgICAgICAgY29udHJvbD1GYWxzZSwK LSAgICAgICAgICAgICAgICBrZXk9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgY2hhcj0nYScs Ci0gICAgICAgICAgICAgICAgICAgIGtleUNvZGU9NjUKLSAgICAgICAgICAgICAgICApCi0gICAg ICAgICAgICApLAotICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PSdBbHQrU2hpZnQrYScKLSAg ICAgICAgKSksCi0KLSAgICAgICAgKCdDaGVjayB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIGEgaW52 YWxpZCBzaG9ydGN1dHMnLCBkaWN0KAotICAgICAgICAgICAgZmV0Y2hfcHJlZj1UcnVlLAotICAg ICAgICAgICAgc2FtcGxlX3Nob3J0Y3V0PU5vbmUsCi0gICAgICAgICAgICBleHBlY3RlZF9yZXN1 bHQ9JycKLSAgICAgICAgKSkKLQotICAgIF0KLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAg ICAgICAiIiJDaGVjayBjb3JyZWN0IGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBoYW5kbGUgdG8gcnVu IHF1ZXJ5LiIiIgotICAgICAgICByZXN1bHQgPSBnZXRfdGV4dF9yZXByZXNlbnRhdGlvbl9vZl9z aG9ydGN1dChzZWxmLnNhbXBsZV9zaG9ydGN1dCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo cmVzdWx0LCBzZWxmLmV4cGVjdGVkX3Jlc3VsdCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rv b2xzL3NxbGVkaXRvci91dGlscy9xdWVyeV90b29sX3ByZWZlcmVuY2VzLnB5IGIvd2ViL3BnYWRt aW4vdG9vbHMvc3FsZWRpdG9yL3V0aWxzL3F1ZXJ5X3Rvb2xfcHJlZmVyZW5jZXMucHkKaW5kZXgg YTVhN2JjYjguLjVlMmE4ZWYxIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0 b3IvdXRpbHMvcXVlcnlfdG9vbF9wcmVmZXJlbmNlcy5weQorKysgYi93ZWIvcGdhZG1pbi90b29s cy9zcWxlZGl0b3IvdXRpbHMvcXVlcnlfdG9vbF9wcmVmZXJlbmNlcy5weQpAQCAtNTYwLDEyMyAr NTYwLDMgQEAgZGVmIFJlZ2lzdGVyUXVlcnlUb29sUHJlZmVyZW5jZXMoc2VsZik6CiAgICAgICAg IGhlbHBfc3RyPWdldHRleHQoJ0lmIHNldCB0byBUcnVlLCBLZXl3b3JkcyB3aWxsIGJlIGRpc3Bs YXllZCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luIHVwcGVyIGNhc2UgZm9yIGF1dG8g Y29tcGxldGlvbi4nKQogICAgICkKLQotCi1kZWYgZ2V0X3F1ZXJ5X3Rvb2xfa2V5Ym9hcmRfc2hv cnRjdXRzKCk6Ci0KLSAgICAiIiIKLSAgICBGZXRjaCBhbGwgdGhlIHF1ZXJ5IHRvb2wgc2hvcnRj dXQgcHJlZmVyZW5jZXMKLQotICAgIFJldHVybnM6Ci0gICAgICAgIExpc3Qgb2YgcXVlcnkgdG9v bCBzaG9ydGN1dCBwcmVmZXJlbmNlcwotICAgICIiIgotICAgIHF0X3BlcmYgPSBQcmVmZXJlbmNl cy5tb2R1bGUoJ3NxbGVkaXRvcicpCi0gICAgY29ubl9zdGF0dXMgPSBxdF9wZXJmLnByZWZlcmVu Y2UoJ2J0bl9jb25uX3N0YXR1cycpLmdldCgpCi0gICAgY2xlYXJfb3B0aW9ucyA9IHF0X3BlcmYu cHJlZmVyZW5jZSgnYnRuX2NsZWFyX29wdGlvbnMnKS5nZXQoKQotICAgIGNhbmNlbF9xdWVyeSA9 IHF0X3BlcmYucHJlZmVyZW5jZSgnYnRuX2NhbmNlbF9xdWVyeScpLmdldCgpCi0gICAgZXhlY3V0 ZV9vcHRpb25zID0gcXRfcGVyZi5wcmVmZXJlbmNlKCdidG5fZXhlY3V0ZV9vcHRpb25zJykuZ2V0 KCkKLSAgICBmaWx0ZXJfb3B0aW9ucyA9IHF0X3BlcmYucHJlZmVyZW5jZSgnYnRuX2ZpbHRlcl9v cHRpb25zJykuZ2V0KCkKLSAgICByb3dzX2xpbWl0ID0gcXRfcGVyZi5wcmVmZXJlbmNlKCdidG5f cm93c19saW1pdCcpLmdldCgpCi0gICAgZmlsdGVyX2RpYWxvZyA9IHF0X3BlcmYucHJlZmVyZW5j ZSgnYnRuX2ZpbHRlcl9kaWFsb2cnKS5nZXQoKQotICAgIGRlbGV0ZV9yb3cgPSBxdF9wZXJmLnBy ZWZlcmVuY2UoJ2J0bl9kZWxldGVfcm93JykuZ2V0KCkKLSAgICBwYXN0ZV9yb3cgPSBxdF9wZXJm LnByZWZlcmVuY2UoJ2J0bl9wYXN0ZV9yb3cnKS5nZXQoKQotICAgIGNvcHlfcm93ID0gcXRfcGVy Zi5wcmVmZXJlbmNlKCdidG5fY29weV9yb3cnKS5nZXQoKQotICAgIHNhdmVfZmlsZSA9IHF0X3Bl cmYucHJlZmVyZW5jZSgnYnRuX3NhdmVfZmlsZScpLmdldCgpCi0gICAgb3Blbl9maWxlID0gcXRf cGVyZi5wcmVmZXJlbmNlKCdidG5fb3Blbl9maWxlJykuZ2V0KCkKLSAgICBtb3ZlX25leHQgPSBx dF9wZXJmLnByZWZlcmVuY2UoJ21vdmVfbmV4dCcpLmdldCgpCi0gICAgbW92ZV9wcmV2aW91cyA9 IHF0X3BlcmYucHJlZmVyZW5jZSgnbW92ZV9wcmV2aW91cycpLmdldCgpCi0gICAgZG93bmxvYWRf Y3N2ID0gcXRfcGVyZi5wcmVmZXJlbmNlKCdkb3dubG9hZF9jc3YnKS5nZXQoKQotICAgIGV4ZWN1 dGVfcXVlcnkgPSBxdF9wZXJmLnByZWZlcmVuY2UoJ2V4ZWN1dGVfcXVlcnknKS5nZXQoKQotICAg IGV4cGxhaW5fcXVlcnkgPSBxdF9wZXJmLnByZWZlcmVuY2UoJ2V4cGxhaW5fcXVlcnknKS5nZXQo KQotICAgIGV4cGxhaW5fYW5hbHl6ZV9xdWVyeSA9IHF0X3BlcmYucHJlZmVyZW5jZSgnZXhwbGFp bl9hbmFseXplX3F1ZXJ5JykuZ2V0KCkKLSAgICBmaW5kX29wdGlvbnMgPSBxdF9wZXJmLnByZWZl cmVuY2UoJ2J0bl9maW5kX29wdGlvbnMnKS5nZXQoKQotICAgIHRvZ2dsZV9jYXNlID0gcXRfcGVy Zi5wcmVmZXJlbmNlKCd0b2dnbGVfY2FzZScpLmdldCgpCi0KLSAgICByZXR1cm4gewotICAgICAg ICAna2V5cyc6IHsKLSAgICAgICAgICAgICdjb25uX3N0YXR1cyc6IGNvbm5fc3RhdHVzLmdldCgn a2V5JykuZ2V0KCdjaGFyJyksCi0gICAgICAgICAgICAnY2xlYXJfb3B0aW9ucyc6IGNsZWFyX29w dGlvbnMuZ2V0KCdrZXknKS5nZXQoJ2NoYXInKSwKLSAgICAgICAgICAgICdjYW5jZWxfcXVlcnkn OiBjYW5jZWxfcXVlcnkuZ2V0KCdrZXknKS5nZXQoJ2NoYXInKSwKLSAgICAgICAgICAgICdleGVj dXRlX29wdGlvbnMnOiBleGVjdXRlX29wdGlvbnMuZ2V0KCdrZXknKS5nZXQoJ2NoYXInKSwKLSAg ICAgICAgICAgICdmaWx0ZXJfb3B0aW9ucyc6IGZpbHRlcl9vcHRpb25zLmdldCgna2V5JykuZ2V0 KCdjaGFyJyksCi0gICAgICAgICAgICAncm93c19saW1pdCc6IHJvd3NfbGltaXQuZ2V0KCdrZXkn KS5nZXQoJ2NoYXInKSwKLSAgICAgICAgICAgICdmaWx0ZXJfZGlhbG9nJzogZmlsdGVyX2RpYWxv Zy5nZXQoJ2tleScpLmdldCgnY2hhcicpLAotICAgICAgICAgICAgJ2RlbGV0ZV9yb3cnOiBkZWxl dGVfcm93LmdldCgna2V5JykuZ2V0KCdjaGFyJyksCi0gICAgICAgICAgICAncGFzdGVfcm93Jzog cGFzdGVfcm93LmdldCgna2V5JykuZ2V0KCdjaGFyJyksCi0gICAgICAgICAgICAnY29weV9yb3cn OiBjb3B5X3Jvdy5nZXQoJ2tleScpLmdldCgnY2hhcicpLAotICAgICAgICAgICAgJ3NhdmVfZmls ZSc6IHNhdmVfZmlsZS5nZXQoJ2tleScpLmdldCgnY2hhcicpLAotICAgICAgICAgICAgJ29wZW5f ZmlsZSc6IG9wZW5fZmlsZS5nZXQoJ2tleScpLmdldCgnY2hhcicpLAotICAgICAgICAgICAgJ21v dmVfbmV4dCc6IG1vdmVfbmV4dC5nZXQoJ2tleScpLmdldCgnY2hhcicpLAotICAgICAgICAgICAg J21vdmVfcHJldmlvdXMnOiBtb3ZlX3ByZXZpb3VzLmdldCgna2V5JykuZ2V0KCdjaGFyJyksCi0g ICAgICAgICAgICAnZG93bmxvYWRfY3N2JzogZG93bmxvYWRfY3N2LmdldCgna2V5JykuZ2V0KCdj aGFyJyksCi0gICAgICAgICAgICAnZXhlY3V0ZV9xdWVyeSc6IGV4ZWN1dGVfcXVlcnkuZ2V0KCdr ZXknKS5nZXQoJ2NoYXInKSwKLSAgICAgICAgICAgICdleHBsYWluX3F1ZXJ5JzogZXhwbGFpbl9x dWVyeS5nZXQoJ2tleScpLmdldCgnY2hhcicpLAotICAgICAgICAgICAgJ2V4cGxhaW5fYW5hbHl6 ZV9xdWVyeSc6IGV4cGxhaW5fYW5hbHl6ZV9xdWVyeS5nZXQoJ2tleScpLmdldCgKLSAgICAgICAg ICAgICAgICAnY2hhcicKLSAgICAgICAgICAgICksCi0gICAgICAgICAgICAnZmluZF9vcHRpb25z JzogZmluZF9vcHRpb25zLmdldCgna2V5JykuZ2V0KCdjaGFyJyksCi0gICAgICAgICAgICAndG9n Z2xlX2Nhc2UnOiB0b2dnbGVfY2FzZS5nZXQoJ2tleScpLmdldCgnY2hhcicpCi0gICAgICAgIH0s Ci0gICAgICAgICdzaG9ydGN1dHMnOiB7Ci0gICAgICAgICAgICAnY29ubl9zdGF0dXMnOiBjb25u X3N0YXR1cywKLSAgICAgICAgICAgICdjbGVhcl9vcHRpb25zJzogY2xlYXJfb3B0aW9ucywKLSAg ICAgICAgICAgICdjYW5jZWxfcXVlcnknOiBjYW5jZWxfcXVlcnksCi0gICAgICAgICAgICAnZXhl Y3V0ZV9vcHRpb25zJzogZXhlY3V0ZV9vcHRpb25zLAotICAgICAgICAgICAgJ2ZpbHRlcl9vcHRp b25zJzogZmlsdGVyX29wdGlvbnMsCi0gICAgICAgICAgICAncm93c19saW1pdCc6IHJvd3NfbGlt aXQsCi0gICAgICAgICAgICAnZmlsdGVyX2RpYWxvZyc6IGZpbHRlcl9kaWFsb2csCi0gICAgICAg ICAgICAnZGVsZXRlX3Jvdyc6IGRlbGV0ZV9yb3csCi0gICAgICAgICAgICAncGFzdGVfcm93Jzog cGFzdGVfcm93LAotICAgICAgICAgICAgJ2NvcHlfcm93JzogY29weV9yb3csCi0gICAgICAgICAg ICAnc2F2ZV9maWxlJzogc2F2ZV9maWxlLAotICAgICAgICAgICAgJ29wZW5fZmlsZSc6IG9wZW5f ZmlsZSwKLSAgICAgICAgICAgICdtb3ZlX25leHQnOiBtb3ZlX25leHQsCi0gICAgICAgICAgICAn bW92ZV9wcmV2aW91cyc6IG1vdmVfcHJldmlvdXMsCi0gICAgICAgICAgICAnZG93bmxvYWRfY3N2 JzogZG93bmxvYWRfY3N2LAotICAgICAgICAgICAgJ2V4ZWN1dGVfcXVlcnknOiBleGVjdXRlX3F1 ZXJ5LAotICAgICAgICAgICAgJ2V4cGxhaW5fcXVlcnknOiBleHBsYWluX3F1ZXJ5LAotICAgICAg ICAgICAgJ2V4cGxhaW5fYW5hbHl6ZV9xdWVyeSc6IGV4cGxhaW5fYW5hbHl6ZV9xdWVyeSwKLSAg ICAgICAgICAgICdmaW5kX29wdGlvbnMnOiBmaW5kX29wdGlvbnMsCi0gICAgICAgICAgICAndG9n Z2xlX2Nhc2UnOiB0b2dnbGVfY2FzZQotICAgICAgICB9LAotICAgIH0KLQotCi1kZWYgZ2V0X3Rl eHRfcmVwcmVzZW50YXRpb25fb2Zfc2hvcnRjdXQoc2hvcnRjdXQpOgotICAgICIiIgotICAgIENv dmVydHMgc2hvcnRjdXQgb2JqZWN0IHRvIHRleHQgcmVwcmVzZW50YXRpb24KLQotICAgIEFyZ3M6 Ci0gICAgICAgIHNob3J0Y3V0OiBTaG9ydGN1dCBvYmplY3QKLQotICAgIFJldHVybnM6Ci0gICAg ICAgIFRleHQgcmVwcmVzZW50YXRpb24gb2YgZ2l2ZW4gc2hvcnRjdXQKLSAgICAiIiIKLSAgICB0 ZXh0X3JlcHJlc2VudGF0aW9uID0gJycKLSAgICBpc19wbHVzX3JlcXVpcmVkID0gRmFsc2UKLQot ICAgIGlmIG5vdCBzaG9ydGN1dDoKLSAgICAgICAgcmV0dXJuIHRleHRfcmVwcmVzZW50YXRpb24K LQotICAgIGlmIHNob3J0Y3V0WydhbHQnXToKLSAgICAgICAgdGV4dF9yZXByZXNlbnRhdGlvbiA9 IGdldHRleHQoJ0FsdCcpCi0gICAgICAgIGlzX3BsdXNfcmVxdWlyZWQgPSBUcnVlCi0KLSAgICBp ZiBzaG9ydGN1dFsnc2hpZnQnXToKLSAgICAgICAgaWYgaXNfcGx1c19yZXF1aXJlZDoKLSAgICAg ICAgICAgIHRleHRfcmVwcmVzZW50YXRpb24gKz0gJysnCi0gICAgICAgIHRleHRfcmVwcmVzZW50 YXRpb24gKz0gZ2V0dGV4dCgnU2hpZnQnKQotICAgICAgICBpc19wbHVzX3JlcXVpcmVkID0gVHJ1 ZQotCi0gICAgaWYgc2hvcnRjdXRbJ2NvbnRyb2wnXToKLSAgICAgICAgaWYgaXNfcGx1c19yZXF1 aXJlZDoKLSAgICAgICAgICAgIHRleHRfcmVwcmVzZW50YXRpb24gKz0gJysnCi0gICAgICAgIHRl eHRfcmVwcmVzZW50YXRpb24gKz0gZ2V0dGV4dCgnQ3RybCcpCi0gICAgICAgIGlzX3BsdXNfcmVx dWlyZWQgPSBUcnVlCi0KLSAgICBpZiBzaG9ydGN1dFsna2V5J10gYW5kIHNob3J0Y3V0WydrZXkn XVsnY2hhciddOgotICAgICAgICBpZiBpc19wbHVzX3JlcXVpcmVkOgotICAgICAgICAgICAgdGV4 dF9yZXByZXNlbnRhdGlvbiArPSAnKycKLSAgICAgICAgdGV4dF9yZXByZXNlbnRhdGlvbiArPSAn ezB9Jy5mb3JtYXQoc2hvcnRjdXRbJ2tleSddWydjaGFyJ10pCi0KLSAgICByZXR1cm4gdGV4dF9y ZXByZXNlbnRhdGlvbgpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9icm93 c2VyL3ByZWZlcmVuY2VzX3NwZWMuanMgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L2Jyb3dz ZXIvcHJlZmVyZW5jZXNfc3BlYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MC4uOTU2YjJjMzYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0 L2Jyb3dzZXIvcHJlZmVyZW5jZXNfc3BlYy5qcwpAQCAtMCwwICsxLDE0MCBAQAoraW1wb3J0IHtw Z0Jyb3dzZXJ9IGZyb20gJ3BnYWRtaW4uYnJvd3Nlci5wcmVmZXJlbmNlcyc7CitpbXBvcnQgJCBm cm9tICdqcXVlcnknOworCit2YXIgZHVtbXlfY2FjaGUgPSBbCisgIHsKKyAgICBpZDogMSwKKyAg ICBtaWQ6IDEsCisgICAgbW9kdWxlOidtb2R1bGUxJywKKyAgICBuYW1lOidwcmVmMScsCisgICAg dmFsdWU6eworICAgICAgYWx0OiBmYWxzZSwKKyAgICAgIHNoaWZ0OiBmYWxzZSwKKyAgICAgIGNv bnRyb2w6IGZhbHNlLAorICAgICAga2V5OiB7CisgICAgICAgIGNoYXI6ICdhJywKKyAgICAgICAg a2V5X2NvZGU6IDY1LAorICAgICAgfSwKKyAgICB9LAorICB9LHsKKyAgICBpZDogMiwKKyAgICBt aWQ6IDEsCisgICAgbW9kdWxlOidtb2R1bGUxJywKKyAgICBuYW1lOidwcmVmMicsCisgICAgdmFs dWU6IDEyMywKKyAgfSx7CisgICAgaWQ6IDMsCisgICAgbWlkOiAyLAorICAgIG1vZHVsZTonbW9k dWxlMicsCisgICAgbmFtZToncHJlZjInLAorICAgIHZhbHVlOiB0cnVlLAorICB9LAorXTsKKwor ZGVzY3JpYmUoJ3ByZWZlcmVuY2VzIHJlbGF0ZWQgZnVuY3Rpb25zIHRlc3QnLCBmdW5jdGlvbigp IHsKKyAgZGVzY3JpYmUoJ2dldCBwcmVmZXJlbmNlIGRhdGEgcmVsYXRlZCBmdW5jdGlvbnMnLCBm dW5jdGlvbigpeworICAgIGJlZm9yZUVhY2goZnVuY3Rpb24oKXsKKyAgICAgIHBnQnJvd3Nlci5w cmVmZXJlbmNlc19jYWNoZSA9IGR1bW15X2NhY2hlOworICAgIH0pOworCisgICAgaXQoJ2dldF9w cmVmZXJlbmNlJywgZnVuY3Rpb24oKXsKKyAgICAgIGV4cGVjdChwZ0Jyb3dzZXIuZ2V0X3ByZWZl cmVuY2UoJ21vZHVsZTEnLCdwcmVmMScpKS50b0VxdWFsKHsKKyAgICAgICAgaWQ6IDEsCisgICAg ICAgIG1pZDogMSwKKyAgICAgICAgbW9kdWxlOidtb2R1bGUxJywKKyAgICAgICAgbmFtZToncHJl ZjEnLAorICAgICAgICB2YWx1ZTp7CisgICAgICAgICAgYWx0OiBmYWxzZSwKKyAgICAgICAgICBz aGlmdDogZmFsc2UsCisgICAgICAgICAgY29udHJvbDogZmFsc2UsCisgICAgICAgICAga2V5OiB7 CisgICAgICAgICAgICBjaGFyOiAnYScsCisgICAgICAgICAgICBrZXlfY29kZTogNjUsCisgICAg ICAgICAgfSwKKyAgICAgICAgfSwKKyAgICAgIH0pOworICAgIH0pOworCisgICAgaXQoJ2dldF9w cmVmZXJlbmNlc19mb3JfbW9kdWxlJywgZnVuY3Rpb24oKSB7CisgICAgICBleHBlY3QocGdCcm93 c2VyLmdldF9wcmVmZXJlbmNlc19mb3JfbW9kdWxlKCdtb2R1bGUxJykpLnRvRXF1YWwoeworICAg ICAgICAncHJlZjEnOnsKKyAgICAgICAgICBhbHQ6IGZhbHNlLAorICAgICAgICAgIHNoaWZ0OiBm YWxzZSwKKyAgICAgICAgICBjb250cm9sOiBmYWxzZSwKKyAgICAgICAgICBrZXk6IHsKKyAgICAg ICAgICAgIGNoYXI6ICdhJywKKyAgICAgICAgICAgIGtleV9jb2RlOiA2NSwKKyAgICAgICAgICB9 LAorICAgICAgICB9LAorICAgICAgICAncHJlZjInOiAxMjMsCisgICAgICB9KTsKKyAgICB9KTsK KworICAgIGl0KCdnZXRfcHJlZmVyZW5jZV9mb3JfaWQnLCBmdW5jdGlvbigpIHsKKyAgICAgIGV4 cGVjdChwZ0Jyb3dzZXIuZ2V0X3ByZWZlcmVuY2VfZm9yX2lkKDMpKS50b0VxdWFsKHsKKyAgICAg ICAgaWQ6IDMsCisgICAgICAgIG1pZDogMiwKKyAgICAgICAgbW9kdWxlOidtb2R1bGUyJywKKyAg ICAgICAgbmFtZToncHJlZjInLAorICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAgIH0pOworICAg IH0pOworCisgICAgaXQoJ3JlZmxlY3RQcmVmZXJlbmNlcycsIGZ1bmN0aW9uKCkgeworCisgICAg ICBsZXQgZWRpdG9yT3B0aW9ucyA9IHsKKyAgICAgICAgJ3RhYlNpemUnOjIsCisgICAgICAgICds aW5lV3JhcHBpbmcnOmZhbHNlLAorICAgICAgICAnYXV0b0Nsb3NlQnJhY2tldHMnOnRydWUsCisg ICAgICAgICdtYXRjaEJyYWNrZXRzJzp0cnVlLAorICAgICAgfTsKKyAgICAgIHBnQnJvd3Nlci5w cmVmZXJlbmNlc19jYWNoZS5wdXNoKHsKKyAgICAgICAgaWQ6IDQsIG1pZDogMywgbW9kdWxlOidz cWxlZGl0b3InLCBuYW1lOidzcWxfZm9udF9zaXplJywgdmFsdWU6IDEuNDU2LAorICAgICAgfSk7 CisgICAgICBwZ0Jyb3dzZXIucHJlZmVyZW5jZXNfY2FjaGUucHVzaCh7CisgICAgICAgIGlkOiA0 LCBtaWQ6IDMsIG1vZHVsZTonc3FsZWRpdG9yJywgbmFtZTondGFiX3NpemUnLCB2YWx1ZTogZWRp dG9yT3B0aW9ucy50YWJTaXplLAorICAgICAgfSk7CisgICAgICBwZ0Jyb3dzZXIucHJlZmVyZW5j ZXNfY2FjaGUucHVzaCh7CisgICAgICAgIGlkOiA0LCBtaWQ6IDMsIG1vZHVsZTonc3FsZWRpdG9y JywgbmFtZTond3JhcF9jb2RlJywgdmFsdWU6IGVkaXRvck9wdGlvbnMubGluZVdyYXBwaW5nLAor ICAgICAgfSk7CisgICAgICBwZ0Jyb3dzZXIucHJlZmVyZW5jZXNfY2FjaGUucHVzaCh7CisgICAg ICAgIGlkOiA0LCBtaWQ6IDMsIG1vZHVsZTonc3FsZWRpdG9yJywgbmFtZTonaW5zZXJ0X3BhaXJf YnJhY2tldHMnLCB2YWx1ZTogZWRpdG9yT3B0aW9ucy5hdXRvQ2xvc2VCcmFja2V0cywKKyAgICAg IH0pOworICAgICAgcGdCcm93c2VyLnByZWZlcmVuY2VzX2NhY2hlLnB1c2goeworICAgICAgICBp ZDogNCwgbWlkOiAzLCBtb2R1bGU6J3NxbGVkaXRvcicsIG5hbWU6J2JyYWNlX21hdGNoaW5nJywg dmFsdWU6IGVkaXRvck9wdGlvbnMubWF0Y2hCcmFja2V0cywKKyAgICAgIH0pOworCisgICAgICAv KiBTcGllcyAqLworICAgICAgcGdCcm93c2VyLmVkaXRvciA9IGphc21pbmUuY3JlYXRlU3B5T2Jq KAorICAgICAgICAnQ29kZU1pcnJvcicsIFsnc2V0T3B0aW9uJywncmVmcmVzaCcsJ2dldFdyYXBw ZXJFbGVtZW50J10KKyAgICAgICk7CisgICAgICBzcHlPbigkLmZuLCAnY3NzJyk7CisKKyAgICAg IC8qIENhbGwgKi8KKyAgICAgIHBnQnJvd3Nlci5yZWZsZWN0UHJlZmVyZW5jZXMoKTsKKworICAg ICAgLyogVGVzdHMgKi8KKyAgICAgIGV4cGVjdChwZ0Jyb3dzZXIuZWRpdG9yLmdldFdyYXBwZXJF bGVtZW50KS50b0hhdmVCZWVuQ2FsbGVkKCk7CisgICAgICBleHBlY3QoJC5mbi5jc3MpLnRvSGF2 ZUJlZW5DYWxsZWRXaXRoKCdmb250LXNpemUnLCAnMS40NmVtJyk7CisKKyAgICAgIGxldCBzZXRP cHRpb25DYWxscyA9IHBnQnJvd3Nlci5lZGl0b3Iuc2V0T3B0aW9uLmNhbGxzOworICAgICAgZXhw ZWN0KHNldE9wdGlvbkNhbGxzLmNvdW50KCkpLnRvQmUoT2JqZWN0LmtleXMoZWRpdG9yT3B0aW9u cykubGVuZ3RoKTsKKworICAgICAgZm9yKGxldCBpID0gMDsgaSA8IE9iamVjdC5rZXlzKGVkaXRv ck9wdGlvbnMpLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGxldCBvcHRpb24gPSBPYmplY3Qua2V5 cyhlZGl0b3JPcHRpb25zKVtpXTsKKyAgICAgICAgZXhwZWN0KHNldE9wdGlvbkNhbGxzLmFyZ3NG b3IoaSkpLnRvRXF1YWwoW29wdGlvbiwgZWRpdG9yT3B0aW9uc1tvcHRpb25dXSk7CisgICAgICB9 CisgICAgICBleHBlY3QocGdCcm93c2VyLmVkaXRvci5yZWZyZXNoKS50b0hhdmVCZWVuQ2FsbGVk KCk7CisgICAgfSk7CisKKyAgICBpdCgnb25QcmVmZXJlbmNlc0NoYW5nZScsIGZ1bmN0aW9uKCkg eworCisgICAgICB3aW5kb3cucGFyZW50LiQgPSAkOworICAgICAgc3B5T24oJC5mbiwgJ29uJyk7 CisKKyAgICAgIHZhciBldmVudEhhbmRsZXIgPSBqYXNtaW5lLmNyZWF0ZVNweSgnZXZlbnRIYW5k bGVyJyk7CisgICAgICBwZ0Jyb3dzZXIub25QcmVmZXJlbmNlc0NoYW5nZSgnc29tZW1vZHVsZScs IGV2ZW50SGFuZGxlcik7CisgICAgICBleHBlY3QoJC5mbi5vbi5jYWxscy5tb3N0UmVjZW50KCku YXJnc1swXSkudG9FcXVhbCgncHJlZmNoYW5nZTpzb21lbW9kdWxlJyk7CisgICAgfSk7CisgIH0p OworfSk7CmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L2hpc3RvcnkvcXVl cnlfaGlzdG9yeV9zcGVjLmpzeCBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvaGlzdG9yeS9x dWVyeV9oaXN0b3J5X3NwZWMuanN4CmluZGV4IGM0OWIxOWYwLi5iOTBkMmEzMCAxMDA2NDQKLS0t IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9oaXN0b3J5L3F1ZXJ5X2hpc3Rvcnlfc3BlYy5q c3gKKysrIGIvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9oaXN0b3J5L3F1ZXJ5X2hpc3Rvcnlf c3BlYy5qc3gKQEAgLTI5LDcgKzI5LDcgQEAgaW1wb3J0ICcuLi9oZWxwZXIvZW56eW1lLmhlbHBl cic7CiBkZXNjcmliZSgnUXVlcnlIaXN0b3J5JywgKCkgPT4gewogICBsZXQgaGlzdG9yeUNvbGxl Y3Rpb247CiAgIGxldCBoaXN0b3J5V3JhcHBlcjsKLQorICBsZXQgc3FsRWRpdG9yUHJlZiA9IHtz cWxfZm9udF9zaXplOiAnMWVtJ307CiAgIGJlZm9yZUVhY2goKCkgPT4gewogICAgIGphc21pbmVF bnp5bWUoKTsKICAgfSk7CkBAIC0zNyw3ICszNyw5IEBAIGRlc2NyaWJlKCdRdWVyeUhpc3Rvcnkn LCAoKSA9PiB7CiAgIGRlc2NyaWJlKCd3aGVuIHRoZXJlIGlzIG5vIGhpc3RvcnknLCAoKSA9PiB7 CiAgICAgYmVmb3JlRWFjaCgoKSA9PiB7CiAgICAgICBoaXN0b3J5Q29sbGVjdGlvbiA9IG5ldyBI aXN0b3J5Q29sbGVjdGlvbihbXSk7Ci0gICAgICBoaXN0b3J5V3JhcHBlciA9IG1vdW50KDxRdWVy eUhpc3RvcnkgaGlzdG9yeUNvbGxlY3Rpb249e2hpc3RvcnlDb2xsZWN0aW9ufS8+KTsKKyAgICAg IGhpc3RvcnlXcmFwcGVyID0gbW91bnQoPFF1ZXJ5SGlzdG9yeSBoaXN0b3J5Q29sbGVjdGlvbj17 aGlzdG9yeUNvbGxlY3Rpb259CisgICAgICAgIHNxbEVkaXRvclByZWY9e3NxbEVkaXRvclByZWZ9 CisgICAgICAvPik7CiAgICAgfSk7CiAKICAgICBkZXNjcmliZSgnd2hlbiB3ZSBzd2l0Y2ggdG8g dGhlIHF1ZXJ5IGhpc3RvcnkgdGFiJywgKCkgPT4gewpAQCAtODksOCArOTEsOSBAQCBkZXNjcmli ZSgnUXVlcnlIaXN0b3J5JywgKCkgPT4gewogICAgICAgICAgIG1lc3NhZ2U6ICdzb21ldGhpbmcg aW1wb3J0YW50IEVSUk9SOiAgbWVzc2FnZSBmcm9tIHNlY29uZCBzcWwgcXVlcnknLAogICAgICAg ICB9XTsKICAgICAgICAgaGlzdG9yeUNvbGxlY3Rpb24gPSBuZXcgSGlzdG9yeUNvbGxlY3Rpb24o aGlzdG9yeU9iamVjdHMpOwotCi0gICAgICAgIGhpc3RvcnlXcmFwcGVyID0gbW91bnQoPFF1ZXJ5 SGlzdG9yeSBoaXN0b3J5Q29sbGVjdGlvbj17aGlzdG9yeUNvbGxlY3Rpb259Lz4pOworICAgICAg ICBoaXN0b3J5V3JhcHBlciA9IG1vdW50KDxRdWVyeUhpc3RvcnkgaGlzdG9yeUNvbGxlY3Rpb249 e2hpc3RvcnlDb2xsZWN0aW9ufQorICAgICAgICAgICAgc3FsRWRpdG9yUHJlZj17c3FsRWRpdG9y UHJlZn0KKyAgICAgICAgLz4pOwogCiAgICAgICAgIHF1ZXJ5SGlzdG9yeUVudHJpZXNDb21wb25l bnQgPSBoaXN0b3J5V3JhcHBlci5maW5kKFF1ZXJ5SGlzdG9yeUVudHJpZXMpOwogICAgICAgICBp c0ludmlzaWJsZVNweSA9IHNweU9uKHF1ZXJ5SGlzdG9yeUVudHJpZXNDb21wb25lbnQuaW5zdGFu Y2UoKSwgJ2lzSW52aXNpYmxlJykKQEAgLTQ3OSw3ICs0ODIsOSBAQCBkZXNjcmliZSgnUXVlcnlI aXN0b3J5JywgKCkgPT4gewogICAgICAgICB9XTsKICAgICAgICAgaGlzdG9yeUNvbGxlY3Rpb24g PSBuZXcgSGlzdG9yeUNvbGxlY3Rpb24oaGlzdG9yeU9iamVjdHMpOwogCi0gICAgICAgIGhpc3Rv cnlXcmFwcGVyID0gbW91bnQoPFF1ZXJ5SGlzdG9yeSBoaXN0b3J5Q29sbGVjdGlvbj17aGlzdG9y eUNvbGxlY3Rpb259Lz4pOworICAgICAgICBoaXN0b3J5V3JhcHBlciA9IG1vdW50KDxRdWVyeUhp c3RvcnkgaGlzdG9yeUNvbGxlY3Rpb249e2hpc3RvcnlDb2xsZWN0aW9ufQorICAgICAgICAgICAg c3FsRWRpdG9yUHJlZj17c3FsRWRpdG9yUHJlZn0KKyAgICAgICAgLz4pOwogCiAgICAgICAgIGNv bnN0IHF1ZXJ5SGlzdG9yeUVudHJpZXNDb21wb25lbnQgPSBoaXN0b3J5V3JhcHBlci5maW5kKFF1 ZXJ5SGlzdG9yeUVudHJpZXMpOwogICAgICAgICBpc0ludmlzaWJsZVNweSA9IHNweU9uKHF1ZXJ5 SGlzdG9yeUVudHJpZXNDb21wb25lbnQuaW5zdGFuY2UoKSwgJ2lzSW52aXNpYmxlJykKZGlmZiAt LWdpdCBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvc3FsZWRpdG9yL2tleWJvYXJkX3Nob3J0 Y3V0c19zcGVjLmpzIGIvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zcWxlZGl0b3Iva2V5Ym9h cmRfc2hvcnRjdXRzX3NwZWMuanMKaW5kZXggMDY1ODZkMzQuLjBlNzc0ODE0IDEwMDY0NAotLS0g YS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3NxbGVkaXRvci9rZXlib2FyZF9zaG9ydGN1dHNf c3BlYy5qcworKysgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3NxbGVkaXRvci9rZXlib2Fy ZF9zaG9ydGN1dHNfc3BlYy5qcwpAQCAtOSw2ICs5LDcgQEAKIAogaW1wb3J0IGtleWJvYXJkU2hv cnRjdXRzIGZyb20gJ3NvdXJjZXMva2V5Ym9hcmRfc2hvcnRjdXRzJzsKIGltcG9ydCB7cXVlcnlU b29sQWN0aW9uc30gZnJvbSAnc291cmNlcy9zcWxlZGl0b3IvcXVlcnlfdG9vbF9hY3Rpb25zJzsK K2ltcG9ydCBnZXR0ZXh0IGZyb20gJ3NvdXJjZXMvZ2V0dGV4dCc7CiAKIGRlc2NyaWJlKCd0aGUg a2V5Ym9hcmQgc2hvcnRjdXRzJywgKCkgPT4gewogICBjb25zdCBGMV9LRVkgPSAxMTIsCkBAIC0x OCw3ICsxOSw3IEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQgc2hvcnRjdXRzJywgKCkgPT4gewog ICAgIFBFUklPRF9LRVkgPSAxOTAsCiAgICAgRldEX1NMQVNIX0tFWSA9IDE5MTsKIAotICBsZXQg c3FsRWRpdG9yQ29udHJvbGxlclNweSwgZXZlbnQsIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIHF1ZXJ5 VG9vbGtleWJvYXJkU2hvcnRjdXRzQ29uZmlnOworICBsZXQgc3FsRWRpdG9yQ29udHJvbGxlclNw eSwgZXZlbnQsIHF1ZXJ5VG9vbEFjdGlvbnNTcHk7CiAgIGJlZm9yZUVhY2goKCkgPT4gewogICAg IGV2ZW50ID0gewogICAgICAgc2hpZnQ6IGZhbHNlLApAQCAtMjksOCArMzAsMjIgQEAgZGVzY3Jp YmUoJ3RoZSBrZXlib2FyZCBzaG9ydGN1dHMnLCAoKSA9PiB7CiAgICAgICBzdG9wSW1tZWRpYXRl UHJvcGFnYXRpb246IGphc21pbmUuY3JlYXRlU3B5KCdzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24n KSwKICAgICB9OwogCi0gICAgcXVlcnlUb29sa2V5Ym9hcmRTaG9ydGN1dHNDb25maWcgPSB7Ci0g ICAgICBleGVjdXRlOiB7CisgICAgbGV0IGdyaWRWaWV3ID0geworICAgICAgcXVlcnlfdG9vbF9v Ymo6IHsKKyAgICAgICAgZ2V0U2VsZWN0aW9uOiBqYXNtaW5lLmNyZWF0ZVNweSgnZ2V0U2VsZWN0 aW9uJyksCisgICAgICAgIGdldFZhbHVlOiBqYXNtaW5lLmNyZWF0ZVNweSgnZ2V0VmFsdWUnKSwK KyAgICAgIH0sCisgICAgfTsKKworICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHkgPSBqYXNtaW5l LmNyZWF0ZVNweU9iaignU3FsRWRpdG9yQ29udHJvbGxlcicsIFsKKyAgICAgICdpc1F1ZXJ5UnVu bmluZycsCisgICAgICAnZXhlY3V0ZScsCisgICAgXSk7CisKKyAgICBzcWxFZGl0b3JDb250cm9s bGVyU3B5LmdyaWRWaWV3ID0gZ3JpZFZpZXc7CisKKyAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5 LnByZWZlcmVuY2VzID0geworICAgICAgZXhlY3V0ZV9xdWVyeTogewogICAgICAgICBhbHQ6IGZh bHNlLAogICAgICAgICBzaGlmdDogZmFsc2UsCiAgICAgICAgIGNvbnRyb2w6IGZhbHNlLApAQCAt MzgsNyArNTMsNyBAQCBkZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0Y3V0cycsICgpID0+IHsK ICAgICAgICAgICBrZXlfY29kZTogRjVfS0VZLAogICAgICAgICB9LAogICAgICAgfSwKLSAgICAg IGV4cGxhaW46IHsKKyAgICAgIGV4cGxhaW5fcXVlcnk6IHsKICAgICAgICAgYWx0OiBmYWxzZSwK ICAgICAgICAgc2hpZnQ6IGZhbHNlLAogICAgICAgICBjb250cm9sOiBmYWxzZSwKQEAgLTQ2LDcg KzYxLDcgQEAgZGVzY3JpYmUoJ3RoZSBrZXlib2FyZCBzaG9ydGN1dHMnLCAoKSA9PiB7CiAgICAg ICAgICAga2V5X2NvZGU6IEY3X0tFWSwKICAgICAgICAgfSwKICAgICAgIH0sCi0gICAgICBleHBs YWluX2FuYWx5emU6IHsKKyAgICAgIGV4cGxhaW5fYW5hbHl6ZV9xdWVyeTogewogICAgICAgICBh bHQ6IGZhbHNlLAogICAgICAgICBzaGlmdDogdHJ1ZSwKICAgICAgICAgY29udHJvbDogZmFsc2Us CkBAIC04MCwyMCArOTUsNiBAQCBkZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0Y3V0cycsICgp ID0+IHsKICAgICAgIH0sCiAgICAgfTsKIAotICAgIGxldCBncmlkVmlldyA9IHsKLSAgICAgIHF1 ZXJ5X3Rvb2xfb2JqOiB7Ci0gICAgICAgIGdldFNlbGVjdGlvbjogamFzbWluZS5jcmVhdGVTcHko J2dldFNlbGVjdGlvbicpLAotICAgICAgICBnZXRWYWx1ZTogamFzbWluZS5jcmVhdGVTcHkoJ2dl dFZhbHVlJyksCi0gICAgICB9LAotICAgIH07Ci0KLSAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5 ID0gamFzbWluZS5jcmVhdGVTcHlPYmooJ1NxbEVkaXRvckNvbnRyb2xsZXInLCBbCi0gICAgICAn aXNRdWVyeVJ1bm5pbmcnLAotICAgICAgJ2V4ZWN1dGUnLAotICAgIF0pOwotCi0gICAgc3FsRWRp dG9yQ29udHJvbGxlclNweS5ncmlkVmlldyA9IGdyaWRWaWV3OwotCiAgICAgcXVlcnlUb29sQWN0 aW9uc1NweSA9IGphc21pbmUuY3JlYXRlU3B5T2JqKHF1ZXJ5VG9vbEFjdGlvbnMsIFsKICAgICAg ICdleHBsYWluQW5hbHl6ZScsCiAgICAgICAnZXhwbGFpbicsCkBAIC0xMTAsOCArMTExLDcgQEAg ZGVzY3JpYmUoJ3RoZSBrZXlib2FyZCBzaG9ydGN1dHMnLCAoKSA9PiB7CiAgICAgYmVmb3JlRWFj aCgoKSA9PiB7CiAgICAgICBldmVudC53aGljaCA9IEYxX0tFWTsKICAgICAgIGtleWJvYXJkU2hv cnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxl clNweSwgcXVlcnlUb29sa2V5Ym9hcmRTaG9ydGN1dHNDb25maWcsCi0gICAgICAgIHF1ZXJ5VG9v bEFjdGlvbnNTcHksIGV2ZW50CisgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5 VG9vbEFjdGlvbnNTcHksIGV2ZW50CiAgICAgICApOwogICAgIH0pOwogCkBAIC0xMjgsOCArMTI4 LDcgQEAgZGVzY3JpYmUoJ3RoZSBrZXlib2FyZCBzaG9ydGN1dHMnLCAoKSA9PiB7CiAgICAgICAg IGV2ZW50LnNoaWZ0S2V5ID0gZmFsc2U7CiAgICAgICAgIGV2ZW50LmN0cmxLZXkgPSBmYWxzZTsK ICAgICAgICAga2V5Ym9hcmRTaG9ydGN1dHMucHJvY2Vzc0V2ZW50UXVlcnlUb29sKAotICAgICAg ICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbGtleWJvYXJkU2hvcnRjdXRzQ29u ZmlnLAotICAgICAgICAgIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CisgICAgICAgICAgc3Fs RWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKICAgICAgICAg KTsKICAgICAgIH0pOwogCkBAIC0xNTEsOCArMTUwLDcgQEAgZGVzY3JpYmUoJ3RoZSBrZXlib2Fy ZCBzaG9ydGN1dHMnLCAoKSA9PiB7CiAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHkuaXNR dWVyeVJ1bm5pbmcuYW5kLnJldHVyblZhbHVlKHRydWUpOwogCiAgICAgICAgIGtleWJvYXJkU2hv cnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgICBzcWxFZGl0b3JDb250cm9s bGVyU3B5LCBxdWVyeVRvb2xrZXlib2FyZFNob3J0Y3V0c0NvbmZpZywKLSAgICAgICAgICBxdWVy eVRvb2xBY3Rpb25zU3B5LCBldmVudAorICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHks IHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CiAgICAgICAgICk7CiAKICAgICAgICAgZXhwZWN0 KHF1ZXJ5VG9vbEFjdGlvbnNTcHkuZXhlY3V0ZVF1ZXJ5KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgp OwpAQCAtMTY4LDggKzE2Niw3IEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQgc2hvcnRjdXRzJywg KCkgPT4gewogICAgICAgICBldmVudC5zaGlmdEtleSA9IGZhbHNlOwogICAgICAgICBldmVudC5j dHJsS2V5ID0gZmFsc2U7CiAgICAgICAgIGtleWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1 ZXJ5VG9vbCgKLSAgICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xrZXli b2FyZFNob3J0Y3V0c0NvbmZpZywKLSAgICAgICAgICBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVu dAorICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbEFjdGlvbnNTcHks IGV2ZW50CiAgICAgICAgICk7CiAgICAgICB9KTsKIApAQCAtMTg5LDggKzE4Niw3IEBAIGRlc2Ny aWJlKCd0aGUga2V5Ym9hcmQgc2hvcnRjdXRzJywgKCkgPT4gewogICAgICAgICBzcWxFZGl0b3JD b250cm9sbGVyU3B5LmlzUXVlcnlSdW5uaW5nLmFuZC5yZXR1cm5WYWx1ZSh0cnVlKTsKIAogICAg ICAgICBrZXlib2FyZFNob3J0Y3V0cy5wcm9jZXNzRXZlbnRRdWVyeVRvb2woCi0gICAgICAgICAg c3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sa2V5Ym9hcmRTaG9ydGN1dHNDb25maWcs Ci0gICAgICAgICAgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKKyAgICAgICAgICBzcWxFZGl0 b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAogICAgICAgICApOwog CiAgICAgICAgIGV4cGVjdChxdWVyeVRvb2xBY3Rpb25zU3B5LmV4cGxhaW4pLm5vdC50b0hhdmVC ZWVuQ2FsbGVkKCk7CkBAIC0yMDYsOCArMjAyLDcgQEAgZGVzY3JpYmUoJ3RoZSBrZXlib2FyZCBz aG9ydGN1dHMnLCAoKSA9PiB7CiAgICAgICAgIGV2ZW50LmFsdEtleSA9IGZhbHNlOwogICAgICAg ICBldmVudC5jdHJsS2V5ID0gZmFsc2U7CiAgICAgICAgIGtleWJvYXJkU2hvcnRjdXRzLnByb2Nl c3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVy eVRvb2xrZXlib2FyZFNob3J0Y3V0c0NvbmZpZywKLSAgICAgICAgICBxdWVyeVRvb2xBY3Rpb25z U3B5LCBldmVudAorICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbEFj dGlvbnNTcHksIGV2ZW50CiAgICAgICAgICk7CiAgICAgICB9KTsKIApAQCAtMjI4LDggKzIyMyw3 IEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQgc2hvcnRjdXRzJywgKCkgPT4gewogICAgICAgICBz cWxFZGl0b3JDb250cm9sbGVyU3B5LmlzUXVlcnlSdW5uaW5nLmFuZC5yZXR1cm5WYWx1ZSh0cnVl KTsKIAogICAgICAgICBrZXlib2FyZFNob3J0Y3V0cy5wcm9jZXNzRXZlbnRRdWVyeVRvb2woCi0g ICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sa2V5Ym9hcmRTaG9ydGN1 dHNDb25maWcsCi0gICAgICAgICAgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKKyAgICAgICAg ICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAogICAg ICAgICApOwogCiAgICAgICAgIGV4cGVjdChxdWVyeVRvb2xBY3Rpb25zU3B5LmV4cGxhaW5BbmFs eXplKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpOwpAQCAtMjQ2LDggKzI0MCw3IEBAIGRlc2NyaWJl KCd0aGUga2V5Ym9hcmQgc2hvcnRjdXRzJywgKCkgPT4gewogICAgICAgICBldmVudC5jdHJsS2V5 ID0gZmFsc2U7CiAKICAgICAgICAga2V5Ym9hcmRTaG9ydGN1dHMucHJvY2Vzc0V2ZW50UXVlcnlU b29sKAotICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbGtleWJvYXJk U2hvcnRjdXRzQ29uZmlnLAotICAgICAgICAgIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50Cisg ICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZl bnQKICAgICAgICAgKTsKICAgICAgIH0pOwogCkBAIC0yNzAsOCArMjYzLDcgQEAgZGVzY3JpYmUo J3RoZSBrZXlib2FyZCBzaG9ydGN1dHMnLCAoKSA9PiB7CiAgICAgICAgIHNxbEVkaXRvckNvbnRy b2xsZXJTcHkuaXNRdWVyeVJ1bm5pbmcuYW5kLnJldHVyblZhbHVlKHRydWUpOwogCiAgICAgICAg IGtleWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgICBzcWxF ZGl0b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xrZXlib2FyZFNob3J0Y3V0c0NvbmZpZywKLSAg ICAgICAgICBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAorICAgICAgICAgIHNxbEVkaXRvckNv bnRyb2xsZXJTcHksIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CiAgICAgICAgICk7CiAKICAg ICAgICAgZXhwZWN0KHF1ZXJ5VG9vbEFjdGlvbnNTcHkuZG93bmxvYWQpLm5vdC50b0hhdmVCZWVu Q2FsbGVkKCk7CkBAIC0yODYsOCArMjc4LDcgQEAgZGVzY3JpYmUoJ3RoZSBrZXlib2FyZCBzaG9y dGN1dHMnLCAoKSA9PiB7CiAgICAgICAgICAgbWFjS2V5c1NldHVwKCk7CiAgICAgICAgICAgZXZl bnQud2hpY2ggPSBGV0RfU0xBU0hfS0VZOwogICAgICAgICAgIGtleWJvYXJkU2hvcnRjdXRzLnBy b2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHks IHF1ZXJ5VG9vbGtleWJvYXJkU2hvcnRjdXRzQ29uZmlnLAotICAgICAgICAgICAgcXVlcnlUb29s QWN0aW9uc1NweSwgZXZlbnQKKyAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1 ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CiAgICAgICAgICAgKTsKICAgICAgICAgfSk7CiAKQEAg LTMwMyw4ICsyOTQsNyBAQCBkZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0Y3V0cycsICgpID0+ IHsKICAgICAgICAgICB3aW5kb3dzS2V5c1NldHVwKCk7CiAgICAgICAgICAgZXZlbnQud2hpY2gg PSBGV0RfU0xBU0hfS0VZOwogICAgICAgICAgIGtleWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVu dFF1ZXJ5VG9vbCgKLSAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9v bGtleWJvYXJkU2hvcnRjdXRzQ29uZmlnLAotICAgICAgICAgICAgcXVlcnlUb29sQWN0aW9uc1Nw eSwgZXZlbnQKKyAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbEFj dGlvbnNTcHksIGV2ZW50CiAgICAgICAgICAgKTsKICAgICAgICAgfSk7CiAKQEAgLTMyOCw4ICsz MTgsNyBAQCBkZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0Y3V0cycsICgpID0+IHsKIAogICAg ICAgICBpdCgnZG9lcyBub3RoaW5nJywgKCkgPT4gewogICAgICAgICAgIGtleWJvYXJkU2hvcnRj dXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xs ZXJTcHksIHF1ZXJ5VG9vbGtleWJvYXJkU2hvcnRjdXRzQ29uZmlnLAotICAgICAgICAgICAgcXVl cnlUb29sQWN0aW9uc1NweSwgZXZlbnQKKyAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJT cHksIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CiAgICAgICAgICAgKTsKIAogICAgICAgICAg IGV4cGVjdChxdWVyeVRvb2xBY3Rpb25zU3B5LmNvbW1lbnRMaW5lQ29kZSkubm90LnRvSGF2ZUJl ZW5DYWxsZWQoKTsKQEAgLTM0NCw4ICszMzMsNyBAQCBkZXNjcmliZSgndGhlIGtleWJvYXJkIHNo b3J0Y3V0cycsICgpID0+IHsKIAogICAgICAgICBpdCgnZG9lcyBub3RoaW5nJywgKCkgPT4gewog ICAgICAgICAgIGtleWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAg ICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbGtleWJvYXJkU2hvcnRjdXRz Q29uZmlnLAotICAgICAgICAgICAgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKKyAgICAgICAg ICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CiAg ICAgICAgICAgKTsKIAogICAgICAgICAgIGV4cGVjdChxdWVyeVRvb2xBY3Rpb25zU3B5LmNvbW1l bnRMaW5lQ29kZSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTsKQEAgLTM2MSw4ICszNDksNyBAQCBk ZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0Y3V0cycsICgpID0+IHsKICAgICAgICAgICBtYWNL ZXlzU2V0dXAoKTsKICAgICAgICAgICBldmVudC53aGljaCA9IFBFUklPRF9LRVk7CiAgICAgICAg ICAga2V5Ym9hcmRTaG9ydGN1dHMucHJvY2Vzc0V2ZW50UXVlcnlUb29sKAotICAgICAgICAgICAg c3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sa2V5Ym9hcmRTaG9ydGN1dHNDb25maWcs Ci0gICAgICAgICAgICBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAorICAgICAgICAgICAgc3Fs RWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKICAgICAgICAg ICApOwogICAgICAgICB9KTsKIApAQCAtMzc3LDggKzM2NCw3IEBAIGRlc2NyaWJlKCd0aGUga2V5 Ym9hcmQgc2hvcnRjdXRzJywgKCkgPT4gewogICAgICAgICAgIHdpbmRvd3NLZXlzU2V0dXAoKTsK ICAgICAgICAgICBldmVudC53aGljaCA9IFBFUklPRF9LRVk7CiAgICAgICAgICAga2V5Ym9hcmRT aG9ydGN1dHMucHJvY2Vzc0V2ZW50UXVlcnlUb29sKAotICAgICAgICAgICAgc3FsRWRpdG9yQ29u dHJvbGxlclNweSwgcXVlcnlUb29sa2V5Ym9hcmRTaG9ydGN1dHNDb25maWcsCi0gICAgICAgICAg ICBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAorICAgICAgICAgICAgc3FsRWRpdG9yQ29udHJv bGxlclNweSwgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKICAgICAgICAgICApOwogICAgICAg ICB9KTsKIApAQCAtNDAyLDggKzM4OCw3IEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQgc2hvcnRj dXRzJywgKCkgPT4gewogCiAgICAgICAgIGl0KCdkb2VzIG5vdGhpbmcnLCAoKSA9PiB7CiAgICAg ICAgICAga2V5Ym9hcmRTaG9ydGN1dHMucHJvY2Vzc0V2ZW50UXVlcnlUb29sKAotICAgICAgICAg ICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sa2V5Ym9hcmRTaG9ydGN1dHNDb25m aWcsCi0gICAgICAgICAgICBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAorICAgICAgICAgICAg c3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKICAgICAg ICAgICApOwogICAgICAgICAgIGV4cGVjdChxdWVyeVRvb2xBY3Rpb25zU3B5LnVuY29tbWVudExp bmVDb2RlKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpOwogICAgICAgICB9KTsKQEAgLTQxNiw4ICs0 MDEsNyBAQCBkZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0Y3V0cycsICgpID0+IHsKIAogICAg ICAgICBpdCgnZG9lcyBub3RoaW5nJywgKCkgPT4gewogICAgICAgICAgIGtleWJvYXJkU2hvcnRj dXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xs ZXJTcHksIHF1ZXJ5VG9vbGtleWJvYXJkU2hvcnRjdXRzQ29uZmlnLAotICAgICAgICAgICAgcXVl cnlUb29sQWN0aW9uc1NweSwgZXZlbnQKKyAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJT cHksIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CiAgICAgICAgICAgKTsKIAogICAgICAgICAg IGV4cGVjdChxdWVyeVRvb2xBY3Rpb25zU3B5LnVuY29tbWVudExpbmVDb2RlKS5ub3QudG9IYXZl QmVlbkNhbGxlZCgpOwpAQCAtNDM0LDggKzQxOCw3IEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQg c2hvcnRjdXRzJywgKCkgPT4gewogICAgICAgICAgIGV2ZW50LndoaWNoID0gRldEX1NMQVNIX0tF WTsKICAgICAgICAgICBldmVudC5zaGlmdEtleSA9IHRydWU7CiAgICAgICAgICAga2V5Ym9hcmRT aG9ydGN1dHMucHJvY2Vzc0V2ZW50UXVlcnlUb29sKAotICAgICAgICAgICAgc3FsRWRpdG9yQ29u dHJvbGxlclNweSwgcXVlcnlUb29sa2V5Ym9hcmRTaG9ydGN1dHNDb25maWcsCi0gICAgICAgICAg ICBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAorICAgICAgICAgICAgc3FsRWRpdG9yQ29udHJv bGxlclNweSwgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKICAgICAgICAgICApOwogICAgICAg ICB9KTsKIApAQCAtNDU0LDggKzQzNyw3IEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQgc2hvcnRj dXRzJywgKCkgPT4gewogICAgICAgICAgIGV2ZW50LndoaWNoID0gRldEX1NMQVNIX0tFWTsKICAg ICAgICAgICBldmVudC5zaGlmdEtleSA9IHRydWU7CiAgICAgICAgICAga2V5Ym9hcmRTaG9ydGN1 dHMucHJvY2Vzc0V2ZW50UXVlcnlUb29sKAotICAgICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxl clNweSwgcXVlcnlUb29sa2V5Ym9hcmRTaG9ydGN1dHNDb25maWcsCi0gICAgICAgICAgICBxdWVy eVRvb2xBY3Rpb25zU3B5LCBldmVudAorICAgICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNw eSwgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKICAgICAgICAgICApOwogICAgICAgICB9KTsK IApAQCAtNDc3LDggKzQ1OSw3IEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQgc2hvcnRjdXRzJywg KCkgPT4gewogICAgICAgICAgIGV2ZW50LndoaWNoID0gRldEX1NMQVNIX0tFWTsKICAgICAgICAg ICBldmVudC5zaGlmdEtleSA9IHRydWU7CiAgICAgICAgICAga2V5Ym9hcmRTaG9ydGN1dHMucHJv Y2Vzc0V2ZW50UXVlcnlUb29sKAotICAgICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwg cXVlcnlUb29sa2V5Ym9hcmRTaG9ydGN1dHNDb25maWcsCi0gICAgICAgICAgICBxdWVyeVRvb2xB Y3Rpb25zU3B5LCBldmVudAorICAgICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVl cnlUb29sQWN0aW9uc1NweSwgZXZlbnQKICAgICAgICAgICApOwogICAgICAgICB9KTsKICAgICAg ICAgaXQoJ2RvZXMgbm90aGluZycsICgpID0+IHsKQEAgLTQ5MSw4ICs0NzIsNyBAQCBkZXNjcmli ZSgndGhlIGtleWJvYXJkIHNob3J0Y3V0cycsICgpID0+IHsKICAgICAgICAgICBldmVudC53aGlj aCA9IEZXRF9TTEFTSF9LRVk7CiAgICAgICAgICAgZXZlbnQuc2hpZnRLZXkgPSB0cnVlOwogICAg ICAgICAgIGtleWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAg ICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbGtleWJvYXJkU2hvcnRjdXRzQ29u ZmlnLAotICAgICAgICAgICAgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKKyAgICAgICAgICAg IHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CiAgICAg ICAgICAgKTsKICAgICAgICAgfSk7CiAgICAgICAgIGl0KCdkb2VzIG5vdGhpbmcnLCAoKSA9PiB7 CkBAIC01MDIsNiArNDgyLDQ1IEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQgc2hvcnRjdXRzJywg KCkgPT4gewogICAgIH0pOwogICB9KTsKIAorICBkZXNjcmliZSgnc2hvcnRjdXQgdG8gdGV4dCBj b252ZXJ0ZXJzJywgKCk9PiB7CisgICAgdmFyIHNob3J0Y3V0ID0geworICAgICAgYWx0OiBmYWxz ZSwKKyAgICAgIHNoaWZ0OiBmYWxzZSwKKyAgICAgIGNvbnRyb2w6IGZhbHNlLAorICAgICAga2V5 OiB7CisgICAgICAgIGNoYXI6ICdhJywKKyAgICAgICAga2V5X2NvZGU6IDY1LAorICAgICAgfSwK KyAgICB9OworCisgICAgaXQoJ3Nob3J0Y3V0X2tleScsKCk9PnsKKyAgICAgIGV4cGVjdChrZXli b2FyZFNob3J0Y3V0cy5zaG9ydGN1dF9rZXkoc2hvcnRjdXQpKS50b0JlKCdBJyk7CisgICAgfSk7 CisKKyAgICBpdCgnc2hvcnRjdXRfYWNjZXNza2V5X3RpdGxlJywoKT0+eworICAgICAgZXhwZWN0 KGtleWJvYXJkU2hvcnRjdXRzLnNob3J0Y3V0X2FjY2Vzc2tleV90aXRsZSgKKyAgICAgICAgJ1Rp dGxlJywgc2hvcnRjdXQpKS50b0JlKGdldHRleHQoJ1RpdGxlIChhY2Nlc3NrZXkgKyBBKScpKTsK KyAgICB9KTsKKworICAgIGl0KCdzaG9ydGN1dF90aXRsZScsKCk9PnsKKyAgICAgIHNob3J0Y3V0 LmFsdCA9IHRydWUsIHNob3J0Y3V0LnNoaWZ0ID0gZmFsc2UsIHNob3J0Y3V0LmNvbnRyb2wgPSBm YWxzZTsKKyAgICAgIGV4cGVjdChrZXlib2FyZFNob3J0Y3V0cy5zaG9ydGN1dF90aXRsZSgKKyAg ICAgICAgJ1RpdGxlJywgc2hvcnRjdXQpKS50b0JlKGdldHRleHQoJ1RpdGxlIChBbHQrQSknKSk7 CisKKyAgICAgIHNob3J0Y3V0LmFsdCA9IGZhbHNlLCBzaG9ydGN1dC5zaGlmdCA9IHRydWUsIHNo b3J0Y3V0LmNvbnRyb2wgPSBmYWxzZTsKKyAgICAgIGV4cGVjdChrZXlib2FyZFNob3J0Y3V0cy5z aG9ydGN1dF90aXRsZSgKKyAgICAgICAgJ1RpdGxlJywgc2hvcnRjdXQpKS50b0JlKGdldHRleHQo J1RpdGxlIChTaGlmdCtBKScpKTsKKworICAgICAgc2hvcnRjdXQuYWx0ID0gZmFsc2UsIHNob3J0 Y3V0LnNoaWZ0ID0gZmFsc2UsIHNob3J0Y3V0LmNvbnRyb2wgPSB0cnVlOworICAgICAgZXhwZWN0 KGtleWJvYXJkU2hvcnRjdXRzLnNob3J0Y3V0X3RpdGxlKAorICAgICAgICAnVGl0bGUnLCBzaG9y dGN1dCkpLnRvQmUoZ2V0dGV4dCgnVGl0bGUgKEN0cmwrQSknKSk7CisKKyAgICAgIHNob3J0Y3V0 LmFsdCA9IHRydWUsIHNob3J0Y3V0LnNoaWZ0ID0gdHJ1ZSwgc2hvcnRjdXQuY29udHJvbCA9IHRy dWU7CisgICAgICBleHBlY3Qoa2V5Ym9hcmRTaG9ydGN1dHMuc2hvcnRjdXRfdGl0bGUoCisgICAg ICAgICdUaXRsZScsIHNob3J0Y3V0KSkudG9CZShnZXR0ZXh0KCdUaXRsZSAoQWx0K1NoaWZ0K0N0 cmwrQSknKSk7CisgICAgfSk7CisgIH0pOworCiAgIGZ1bmN0aW9uIGV4cGVjdEV2ZW50UHJvcGFn YXRpb25Ub1N0b3AoKSB7CiAgICAgZGVzY3JpYmUoJ3N0b3BzIGFsbCBldmVudCBwcm9wb2dhdGlv bicsICgpID0+IHsKIApkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zcWxl ZGl0b3JfdXRpbHNfc3BlYy5qcyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvc3FsZWRpdG9y X3V0aWxzX3NwZWMuanMKaW5kZXggYzczOGY4MmEuLjc1YzM0YWZjIDEwMDY0NAotLS0gYS93ZWIv cmVncmVzc2lvbi9qYXZhc2NyaXB0L3NxbGVkaXRvcl91dGlsc19zcGVjLmpzCisrKyBiL3dlYi9y ZWdyZXNzaW9uL2phdmFzY3JpcHQvc3FsZWRpdG9yX3V0aWxzX3NwZWMuanMKQEAgLTI4LDUgKzI4 LDEzIEBAIGZ1bmN0aW9uIChTcWxFZGl0b3JVdGlscykgewogICAgICAgICBleHBlY3QoU3FsRWRp dG9yVXRpbHMuY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKCdjcmVhdGUgc2NyaXB0JykpLnRvRXF1YWwo J0NyZWF0ZSBzY3JpcHQnKTsKICAgICAgIH0pOwogICAgIH0pOworCisgICAgZGVzY3JpYmUoJ0Nh bGN1bGF0ZSBmb250IHNpemUgb2YgaW5wdXQgbnVtYmVyIHBhc3NlZCcsIGZ1bmN0aW9uICgpIHsK KyAgICAgIGl0KCdjYWxjRm9udFNpemUnLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGV4cGVjdChT cWxFZGl0b3JVdGlscy5jYWxjRm9udFNpemUoMS40NTYpKS50b0VxdWFsKCcxLjQ2ZW0nKTsKKyAg ICAgICAgZXhwZWN0KFNxbEVkaXRvclV0aWxzLmNhbGNGb250U2l6ZSgpKS50b0VxdWFsKCcwZW0n KTsKKyAgICAgICAgZXhwZWN0KFNxbEVkaXRvclV0aWxzLmNhbGNGb250U2l6ZSgyKSkudG9FcXVh bCgnMmVtJyk7CisgICAgICB9KTsKKyAgICB9KTsKICAgfSk7CiB9KTsKZGlmZiAtLWdpdCBhL3dl Yi93ZWJwYWNrLnNoaW0uanMgYi93ZWIvd2VicGFjay5zaGltLmpzCmluZGV4IGMxMmU3ZjNiLi40 MWJmMTAzMyAxMDA2NDQKLS0tIGEvd2ViL3dlYnBhY2suc2hpbS5qcworKysgYi93ZWIvd2VicGFj ay5zaGltLmpzCkBAIC0xMjQsNiArMTI0LDcgQEAgdmFyIHdlYnBhY2tTaGltQ29uZmlnID0gewog ICAgICdidW5kbGVkX2NvZGVtaXJyb3InOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWlu L3N0YXRpYy9idW5kbGUvY29kZW1pcnJvcicpLAogICAgICdidW5kbGVkX2Jyb3dzZXInOiBwYXRo LmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL3N0YXRpYy9idW5kbGUvYnJvd3NlcicpLAogICAg ICdzb3VyY2VzJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1pbi9zdGF0aWMvanMnKSwK KyAgICAnc291cmNlc2pzeCc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vc3RhdGlj L2pzeCcpLAogICAgICdwZ2FkbWluJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1pbi9z dGF0aWMvanMvcGdhZG1pbicpLAogICAgICd0cmFuc2xhdGlvbnMnOiBwYXRoLmpvaW4oX19kaXJu YW1lLCAnLi9wZ2FkbWluL3Rvb2xzL3RlbXBsYXRlcy9qcy90cmFuc2xhdGlvbnMnKSwKICAgICAn c291cmNlcy9nZXR0ZXh0JzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1pbi9zdGF0aWMv anMvZ2V0dGV4dCcpLApAQCAtMTc5LDYgKzE4MCw3IEBAIHZhciB3ZWJwYWNrU2hpbUNvbmZpZyA9 IHsKICAgICAncGdhZG1pbi5icm93c2VyLmVycm9yJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4v cGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9lcnJvcicpLAogICAgICdwZ2FkbWluLmJyb3dzZXIu ZnJhbWUnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pz L2ZyYW1lJyksCiAgICAgJ3BnYWRtaW4uYnJvd3Nlci5rZXlib2FyZCc6IHBhdGguam9pbihfX2Rp cm5hbWUsICcuL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMva2V5Ym9hcmQnKSwKKyAgICAncGdh ZG1pbi5icm93c2VyLnByZWZlcmVuY2VzJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1p bi9icm93c2VyL3N0YXRpYy9qcy9wcmVmZXJlbmNlcycpLAogICAgICdwZ2FkbWluLmJyb3dzZXIu bWVudSc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMv bWVudScpLAogICAgICdwZ2FkbWluLmJyb3dzZXIubWVzc2FnZXMnOiAnL2Jyb3dzZXIvanMvbWVz c2FnZXMnLAogICAgICdwZ2FkbWluLmJyb3dzZXIubm9kZSc6IHBhdGguam9pbihfX2Rpcm5hbWUs ICcuL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvbm9kZScpLApkaWZmIC0tZ2l0IGEvd2ViL3dl YnBhY2sudGVzdC5jb25maWcuanMgYi93ZWIvd2VicGFjay50ZXN0LmNvbmZpZy5qcwppbmRleCBl Zjg5M2UwYi4uNzU3MTA3Y2EgMTAwNjQ0Ci0tLSBhL3dlYi93ZWJwYWNrLnRlc3QuY29uZmlnLmpz CisrKyBiL3dlYi93ZWJwYWNrLnRlc3QuY29uZmlnLmpzCkBAIC04Myw2ICs4Myw3IEBAIG1vZHVs ZS5leHBvcnRzID0gewogICAgICAgJ3BnYWRtaW4uYmFja2Zvcm0nOiBzb3VyY2VzRGlyICsgJy9q cy9iYWNrZm9ybS5wZ2FkbWluJywKICAgICAgICdwZ2Jyb3dzZXInOiBwYXRoLnJlc29sdmUoX19k aXJuYW1lLCAncmVncmVzc2lvbi9qYXZhc2NyaXB0L2Zha2VfYnJvd3NlcicpLAogICAgICAgJ3Bn YWRtaW4uc2NoZW1hLmRpcic6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICdwZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3N0YXRpYy9qcycpLAor ICAgICAgJ3BnYWRtaW4uYnJvd3Nlci5wcmVmZXJlbmNlcyc6IHBhdGguam9pbihfX2Rpcm5hbWUs ICcuL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvcHJlZmVyZW5jZXMnKSwKICAgICB9LAogICB9 LAogfTsK --0000000000006497e3056fc87809--