Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kD4Hw-0003mG-Sy for pgadmin-hackers@arkaria.postgresql.org; Tue, 01 Sep 2020 11:17:21 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kD4Hv-0002gn-Qv for pgadmin-hackers@arkaria.postgresql.org; Tue, 01 Sep 2020 11:17:19 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kD4Hu-0002gd-KE for pgadmin-hackers@lists.postgresql.org; Tue, 01 Sep 2020 11:17:19 +0000 Received: from mail-pj1-x1044.google.com ([2607:f8b0:4864:20::1044]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1kD4Hq-00071r-W8 for pgadmin-hackers@postgresql.org; Tue, 01 Sep 2020 11:17:17 +0000 Received: by mail-pj1-x1044.google.com with SMTP id ds1so464396pjb.1 for ; Tue, 01 Sep 2020 04:17:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=n2rAjTNYc64xFH7pNyU+PGP7/z1YDQGsWCefD+ORnnY=; b=BveHe8+ZJsPer1zGCFOAC8Cpc4suZnivTRlBqgVV+B1KOubpajZbin/IdmZr9+69bf jadn2OipSPlLJN0Zjq12Zr43V1WukSAkl/aBHKqRvpyqXgopZ7ceJA/KmWrzJJsfwM3k FaaFMrfeXyZMKUtdPP6RXDmiSUUNpWg19sHyFFkRAf+YQANFXqRr7c++WP8FajX8E1Mo ndQ5ocd/z96V4jqRrv9Np4o8sR08bA98SX4+QMIQtmy7a5khggTENM/u7hM5EryxCAQf yMVVHdliwxqtufSZVM5lwAAHlNvc7lHT5L3UOTfEUz6239W2/WolqL3URi6C93I+1KVU kzgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=n2rAjTNYc64xFH7pNyU+PGP7/z1YDQGsWCefD+ORnnY=; b=EK1yqpUj4zJb7F/3hFiPeodw4A5ObifLY6YhUPE9HltBupEQUtOxUA6ih1TnOJyjRJ RSL8Oqu2dFANUdUtrWLRoj7oNRhhyloMzBcs8jM6maIzrRoYuohmlow3YNfBO9mkanae rgeiY/k+4eyqMVeQ4OTtwYxFOKUJV+b/9Xdzg0qIw6cER2vFJzBFSK5Yz4hxV2EFsVkS tDIcnnWez2Iic2O+YUA1KDuBZRfXUsqgQMxXD++sUHceCsaiM2mwppmtlAhqdUlTnUya F8vuEDq6tkop4rx9fst5BHRIkA1YSBNlEU1NiuXtUOwprDTwu2nzEqtgyaI+qz6Ek5O7 yJaQ== X-Gm-Message-State: AOAM531zlxXMGoXyczqz+4UTTZuj8MFrkUX7zcYGvAFFsk9zcHYkSPJZ bGFoWIiX1MaMufJYtWw4ZrsqLyCVcAKlXQjrEnY6OESkXyqRQdRoULuI4fkPSVq1EylS1foYXjF JLvLPRDUJVvvzA6jmtgs3QWusTycx398TNqfSKHoU/P0JnHHne07nm9JMN3JttnhcoY2ZwWQ8QA zVEadEMseAdOHl4jFu1WOMF4vYJd2yuwq88t9Reo7vI+Rh0XT9SEICfEOtzA== X-Google-Smtp-Source: ABdhPJyWaxibxc71HtJGX4V6+MlGNslQJQ5JCryLpZ7XqQUtWPaE7oamiCHz+pT6r3G0GcS8UOI06nNgLjEA4Mr3Lq4= X-Received: by 2002:a17:90b:4ac7:: with SMTP id mh7mr1045335pjb.99.1598959032618; Tue, 01 Sep 2020 04:17:12 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Pradip Parkale Date: Tue, 1 Sep 2020 16:47:01 +0530 Message-ID: Subject: Re: [pgAdmin][RM4979]: Configuration files for data sources or similar. To: Akshay Joshi Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000271e6205ae3ea9ab" X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000271e6205ae3ea9ab Content-Type: multipart/related; boundary="000000000000271e6105ae3ea9aa" --000000000000271e6105ae3ea9aa Content-Type: multipart/alternative; boundary="000000000000271e5f05ae3ea9a9" --000000000000271e5f05ae3ea9a9 Content-Type: text/plain; charset="UTF-8" Hi Akshay, Please find the updated patch. On Tue, Aug 25, 2020 at 5:53 PM Akshay Joshi wrote: > Hi Pradip > > Following are the GUI review comments: > *Testing Scenario*: I have three users U1 and U2 are Admin and U3 is a > normal user. Login from U1 first time and pgAdmin4 discover all the local > servers. Steps that I perform: > > - Shared one server. > - Create a group 'Test' and move one server to that group. > - Share the server of the 'Test' group as well. > > [image: Screenshot 2020-08-25 at 4.38.32 PM.png] > *Issues:* > > - When login using U2 or U3 PostgreSQL 9.2 and 10 shown twice which > should not. Refer below screenshot > [image: Screenshot 2020-08-25 at 4.30.22 PM.png] > > Fixed. If the server is auto-discovered and U1 shared the auto-discovered server(PostgreSQL 9.2 in the above example) and then log in using U2, in this case, shared server(PostgreSQL 9.2) will not visible to U2 as the same server will be auto-discovered for U2. > > - > - When expanding the server or clicking on the 'Connect Server' menu > of the shared server, it opens the properties dialog. > > This is expected. Properties dialogue will open the first time for a shared server where the user has to enter server details. This will happen for the user who is not the owner of the server. > > - Try to update the IPAddress, Port it is not updating for the shared > server. Check other properties too. > > Fixed. > > - > - When we set "Hide shared server?" setting to true/false. A complete > browser tree should be refreshed. With the current implementation, each > group needs to be refreshed individually and the server group still visible > while refreshing the complete page Browser Tree looks perfect. > > Fixed. > > - When there is only one server in a group and we expanded the group > 'Connect to server' dialog appears which should not. (*This may be an old > issue) > > This is expected and its an old behavior. > > - > - Schema Diff shared servers are not visible inside the appropriate > group in the source and target server list. > > Fixed > > - Documentation changes required (Create a new Redmine). > > Done. > > - > - SonarQube shows 1 new Bug and 4 new code smell. (Fixed the Bug, code > smell can be fixed later) > > Fixed. > > - 'pgAdmin4_test_non_admin_credentials' should be added in ' > test_config.json.in' file. > > Fixed. > > - For Desktop mode shared server test cases should be skipped. It is > failing at the moment. > > Fixed. > Code review still remains :) > > On Fri, Aug 21, 2020 at 6:00 PM Pradip Parkale < > pradip.parkale@enterprisedb.com> wrote: > >> Hi Akshay, >> Please find the updated patch. >> >> On Fri, Aug 21, 2020 at 1:55 PM Akshay Joshi < >> akshay.joshi@enterprisedb.com> wrote: >> >>> Hi Pradip >>> >>> The patch is not applied, can you please rebase and send it again. >>> >>> On Thu, Aug 20, 2020 at 3:58 PM Pradip Parkale < >>> pradip.parkale@enterprisedb.com> wrote: >>> >>>> Hi Hackers, >>>> >>>> Please find the attached patch for the shared server implementation. >>>> >>>> Few key points: >>>> >>>> 1. The admin who is the owner of the server user can share the >>>> server with other users. >>>> 2. This option will be available only for admin users. >>>> 3. If the user doesn't want to see the shared server then the >>>> option to hide the shared server is available in preferences. >>>> 4. The user who is not the owner of the server, can't delete the >>>> shared server and server group. >>>> 5. This option is only available in server mode. >>>> >>>> >>>> -- >>>> Thanks & Regards, >>>> Pradip Parkale >>>> Software Engineer | EnterpriseDB Corporation >>>> >>> >>> >>> -- >>> *Thanks & Regards* >>> *Akshay Joshi* >>> *pgAdmin Hacker | Sr. Software Architect* >>> *EDB Postgres * >>> >>> *Mobile: +91 976-788-8246* >>> >> >> >> -- >> Thanks & Regards, >> Pradip Parkale >> Software Engineer | EnterpriseDB Corporation >> > > > -- > *Thanks & Regards* > *Akshay Joshi* > *pgAdmin Hacker | Sr. Software Architect* > *EDB Postgres * > > *Mobile: +91 976-788-8246* > -- Thanks & Regards, Pradip Parkale Software Engineer | EnterpriseDB Corporation --000000000000271e5f05ae3ea9a9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Akshay,

Please find the updated patch.

On Tue, Aug 25, 2020 at 5:53 PM A= kshay Joshi <akshay.joshi@enterprisedb.com> wrote:
Hi Pradip

Following= are the GUI review comments:
Testing Scenario: I have thr= ee users U1 and U2 are Admin and U3 is a normal user. Login from U1 first t= ime and pgAdmin4 discover all the local servers. Steps that I perform:
  • Shared one server.
  • Create a group 'Test' and = move one server to that group.
  • Share the server of the 'Test= 9; group as well.
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =3D"Screenshot
Issues:
  • When login using U2 or U3 PostgreSQL 9.2 and 10 shown twice whic= h should not. Refer below screenshot
    =C2=A03D"Screenshot
Fixed. If the server is auto-discovered and U1 shared the auto-discovered= server(PostgreSQL 9.2 in the above example) and then log in using U2, in t= his case, shared server(PostgreSQL 9.2) will not visible to U2 as the same = server will be auto-discovered for U2.=C2=A0
  • When expanding the server or clic= king on the 'Connect Server' menu of the shared server, it opens th= e properties dialog.
This is expecte= d. Properties dialogue will open the first time for a shared server where t= he user has to enter server details. This will happen for the user who is n= ot the owner of the server.=C2=A0
  • Try to update the IPAddress, Port it is not updating for the sha= red server. Check other properties too.
Fixed.=C2=A0
  • When we set "Hide shared server?" setting to true/false. A= complete browser tree should be refreshed. With the current implementation= , each group needs to be refreshed individually and the server group still = visible while refreshing the complete page Browser Tree looks perfect.
  • =
Fixed.=C2=A0
  • When there is only one server in a group and we ex= panded the group 'Connect to server' dialog appears which should no= t. (*This may be an old issue)
= This is expected and its an old behavior.
  • Schema Diff shared servers are not visible insi= de the appropriate group in the source and target server list.
Fixed=C2=A0
  • Documentation changes required (Create a new Redmine).
    =
Done.
  • SonarQube shows 1 new Bug and 4 new code sm= ell. (Fixed the Bug, code smell can be fixed later)
Fixed.=C2=A0
=
Fixed.
  • For Desktop mode shared server t= est cases should be skipped. It is failing at the moment.
Fixed.=C2=A0
<= div>Code review still remains :)

On Fri, Aug 21, 2020 at 6:00 PM P= radip Parkale <pradip.parkale@enterprisedb.com> wrote:
Hi Akshay,
Please find the updated patch.

On Fri, Aug 21, 2020 at 1:55 PM Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:

=
Hi Hackers,

Please find the attached pat= ch for the shared server implementation.

Few key points:
  1. The admin who is the owner of the server user can share the server with ot= her users.=C2=A0
  2. This optio= n will be available only for admin users.=C2=A0
  3. If the user doesn't want to see the shared serve= r then the option to hide the shared server is available=C2=A0in preference= s.
  4. The user who is not the = owner of the server, can't delete the shared server and server group.
  5. This option is only availabl= e in server mode.

--
Thanks & Regards,<= br>
Pradip Parkale
Software Enginee= r | EnterpriseDB Corporation


--
Thanks & R= egards
Akshay Joshi
pgAdmin Hacker | Sr. Software Architect=
= EDB Postgres
Mobile: +91 976-788-8246



--
Thanks & Regards,
=
Pradip Parkale
Software Engineer |= EnterpriseDB Corporation


--
Thanks & R= egards
Akshay Joshi
pgAdmin Hacker | Sr. Software Architect=
= EDB Postgres
Mobile: +91 976-788-8246



--
Thanks & Regards,
=
Pradip Parkale
Software Engineer |= EnterpriseDB Corporation
--000000000000271e5f05ae3ea9a9-- --000000000000271e6105ae3ea9aa Content-Type: image/png; name="Screenshot 2020-08-25 at 4.30.22 PM.png" Content-Disposition: inline; filename="Screenshot 2020-08-25 at 4.30.22 PM.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_ke9unayt0 iVBORw0KGgoAAAANSUhEUgAAAZQAAAIaCAYAAAAHl7uVAAAMSGlDQ1BJQ0MgUHJvZmlsZQAASImV VwdYU8kWnltSSWiBUKSE3kQRpEsJoUUQkCrYCEkgocSYEETsyqKCaxcRsKGrIi66FkDWirrWRbG7 lhcLKivrYsGGypsU0NXvvfe9k2/u/e+ZM/8pmTt3BgC9Wp5Umo/qA1AgKZQlRoWxxqVnsEiPAAJ/ VGACqDy+XMpOSIgFUAbu/5Q316EtlCvuKq7v+/+rGAiEcj4ASALEWQI5vwDi/QDgpXyprBAAoh/U 200rlKrwBIiNZDBAiKUqnKPBpSqcpcFVapvkRA7EuwAg03g8WQ4Aui1Qzyri50Ae3ZsQe0gEYgkA emSIg/kingDiaIiHFhRMUWFoB5yzvuLJ+Qdn1iAnj5cziDW5qIUcLpZL83nT/89y/G8pyFcM+HCE jSaSRSeqcoZ1u5k3JUaFaRB3S7Li4iE2hPidWKC2hxilihTRKRp71IIv58CaASbEHgJeeAzEFhBH SvLjYrX6rGxxJBdiOEPQYnEhN1k7dpFQHpGk5ayVTUmMH8DZMg5bO7aRJ1P7VdmfVOSlsLX8N0VC 7gD/6xJRcpomZoxaJE6Ng1gXYqY8LylGY4PZl4g4cQM2MkWiKn57iAOEkqgwDT82KVsWmai1lxXI B/LFFonE3Dgtri4UJUdreXbxeer4TSFuEUrYKQM8Qvm42IFcBMLwCE3u2CWhJEWbL6aUFoYlase+ lOYnaO1xqjA/SqW3hdhCXpSkHYsHF8IJqeHH46SFCcmaOPGsXN7oBE08eDGIBRwQDlhAAVsWmAJy gbi9u7kbPml6IgEPyEAOEAJ3rWZgRJq6RwKvSaAE/AWREMgHx4Wpe4WgCOo/DWo1V3eQre4tUo/I A48hLgAxIB8+K9SjJIPeUsEjqBF/550PY82HTdX3vY4NNbFajWKAl6U3YEmMIIYTo4mRRBfcHA/G A/FYeA2FzRP3w/0Hov1iT3hM6CA8IFwjKAm3Jovny77JhwXGACX0EKnNOevrnHFHyOqNh+FBkB9y 40zcHLjjI6EnNh4CfXtDLUcbuSr7b7n/kcNXVdfaUTwoKMWEEkpx/nakrquu9yCLqqZfV0gTa9Zg XTmDPd/653xVaQG8x3xriS3C9mGnsePYWewQ1gxY2FGsBbuAHVbhwVn0SD2LBrwlquPJgzzi7/zx tD5VlZR7NHh0eXzU9BUKi1XrI+BMkU6XiXNEhSw2XPmFLK6EP2woy9PD0wMA1XdEs0y9Yqq/Dwjz 3BfdAioAQZL+/v5DX3QxHwDYbwMAVflF53QZLgdwrT+zgq+QFWl0uOpCgF8nPfhGmQErYAecYT6e wAcEglAQAUaDeJAM0sEkWGURnM8yMA3MBPNAGagAy8EaUA02gi1gB/gZ7AXN4BA4Dn4D58ElcA3c hrOnEzwDPeAN6EMQhITQEQZihlgjDogb4on4IcFIBBKLJCLpSCaSg0gQBTITWYBUICuRamQzUo/8 ghxEjiNnkQ7kFnIf6UJeIh9QDKWhRqgl6ogOR/1QNhqDJqMT0Rx0KlqClqJL0Sq0Dt2FNqHH0fPo NVSJPkN7MYDpYEzMBnPH/DAOFo9lYNmYDJuNlWOVWB3WiLXC//kKpsS6sfc4EWfgLNwdzuBoPAXn 41Px2fgSvBrfgTfhJ/Er+H28B/9MoBMsCG6EAAKXMI6QQ5hGKCNUErYRDhBOwbepk/CGSCQyiU5E X/g2phNziTOIS4jribuJx4gdxIfEXhKJZEZyIwWR4kk8UiGpjLSOtIt0lHSZ1El6R9YhW5M9yZHk DLKEPJ9cSd5JPkK+TH5C7qPoUxwoAZR4ioAynbKMspXSSrlI6aT0UQ2oTtQgajI1lzqPWkVtpJ6i 3qG+0tHRsdXx1xmrI9aZq1Ols0fnjM59nfc0Q5orjUObQFPQltK2047RbtFe0el0R3ooPYNeSF9K r6efoN+jv9Nl6A7T5eoKdOfo1ug26V7Wfa5H0XPQY+tN0ivRq9Tbp3dRr1ufou+oz9Hn6c/Wr9E/ qH9Dv9eAYTDCIN6gwGCJwU6DswZPDUmGjoYRhgLDUsMthicMHzIwhh2Dw+AzFjC2Mk4xOo2IRk5G XKNcowqjn43ajXqMDY1HGqcaFxvXGB82VjIxpiOTy8xnLmPuZV5nfjCxNGGbCE0WmzSaXDZ5azrE NNRUaFpuutv0mukHM5ZZhFme2QqzZrO75ri5q/lY82nmG8xPmXcPMRoSOIQ/pHzI3iF/WKAWrhaJ FjMstlhcsOi1tLKMspRarrM8YdltxbQKtcq1Wm11xKrLmmEdbC22Xm191PpPljGLzcpnVbFOsnps LGyibRQ2m23abfpsnWxTbOfb7ra9a0e187PLtltt12bXY29tP8Z+pn2D/R8OFAc/B5HDWofTDm8d nRzTHBc6Njs+dTJ14jqVODU43XGmO4c4T3Wuc77qQnTxc8lzWe9yyRV19XYVuda4XnRD3XzcxG7r 3TqGEob6D5UMrRt6w53mznYvcm9wvz+MOSx22PxhzcOeD7cfnjF8xfDTwz97eHvke2z1uD3CcMTo EfNHtI546enqyfes8bzqRfeK9Jrj1eL1YqTbSOHIDSNvejO8x3gv9G7z/uTj6yPzafTp8rX3zfSt 9b3hZ+SX4LfE74w/wT/Mf47/If/3AT4BhQF7A/4OdA/MC9wZ+HSU0yjhqK2jHgbZBvGCNgcpg1nB mcGbgpUhNiG8kLqQB6F2oYLQbaFP2C7sXPYu9vMwjzBZ2IGwt5wAzizOsXAsPCq8PLw9wjAiJaI6 4l6kbWROZENkT5R31IyoY9GE6JjoFdE3uJZcPree2zPad/Ss0SdjaDFJMdUxD2JdY2WxrWPQMaPH rBpzJ84hThLXHA/iufGr4u8mOCVMTfh1LHFswtiasY8TRyTOTDydxEianLQz6U1yWPKy5NspzimK lLZUvdQJqfWpb9PC01amKccNHzdr3Pl083RxeksGKSM1Y1tG7/iI8WvGd07wnlA24fpEp4nFE89O Mp+UP+nwZL3JvMn7MgmZaZk7Mz/y4nl1vN4sblZtVg+fw1/LfyYIFawWdAmDhCuFT7KDsldmP80J ylmV0yUKEVWKusUccbX4RW507sbct3nxedvz+vPT8ncXkAsyCw5KDCV5kpNTrKYUT+mQuknLpMqp AVPXTO2Rxci2yRH5RHlLoRHcsF9QOCt+UNwvCi6qKXo3LXXavmKDYknxhemu0xdPf1ISWfLTDHwG f0bbTJuZ82ben8WetXk2MjtrdtscuzmlczrnRs3dMY86L2/e7/M95q+c/3pB2oLWUsvSuaUPf4j6 oaFMt0xWdmNh4MKNi/BF4kXti70Wr1v8uVxQfq7Co6Ky4uMS/pJzP474serH/qXZS9uX+SzbsJy4 XLL8+oqQFTtWGqwsWflw1ZhVTatZq8tXv14zec3ZypGVG9dS1yrWKqtiq1rW2a9bvu5jtaj6Wk1Y ze5ai9rFtW/XC9Zf3hC6oXGj5caKjR82iTfd3By1uanOsa5yC3FL0ZbHW1O3nv7J76f6bebbKrZ9 2i7ZrtyRuONkvW99/U6Lncsa0AZFQ9euCbsu/Rz+c0uje+Pm3czdFXvAHsWeP3/J/OX63pi9bfv8 9jXud9hfe4BxoLwJaZre1NMsala2pLd0HBx9sK01sPXAr8N+3X7I5lDNYePDy45Qj5Qe6T9acrT3 mPRY9/Gc4w/bJrfdPjHuxNWTY0+2n4o5dea3yN9OnGafPnom6MyhswFnD57zO9d83ud80wXvCwd+ 9/79QLtPe9NF34stl/wvtXaM6jhyOeTy8SvhV367yr16/lrctY7rKddv3phwQ3lTcPPprfxbL/4o +qPv9tw7hDvld/XvVt6zuFf3L5d/7Vb6KA/fD79/4UHSg9sP+Q+fPZI/+thZ+pj+uPKJ9ZP6p55P D3VFdl36c/yfnc+kz/q6y/4y+Kv2ufPz/X+H/n2hZ1xP5wvZi/6XS16Zvdr+euTrtt6E3ntvCt70 vS1/Z/Zux3u/96c/pH140jftI+lj1SeXT62fYz7f6S/o75fyZDz1VgCDDc3OBuDldgDo6QAwLsH9 w3jNOU8tiOZsqkbgP2HNWVAtPgA0wptqu845BsAe2BznQm7YVFv15FCAenkNNq3Is708NVw0eOIh vOvvf2UJAKkVgE+y/v6+9f39n7bCYG8BcGyq5nypEiI8G2wKVaFrplkD/gfl3/5mf27cNipMAAAA CXBIWXMAABYlAAAWJQFJUiTwAAABnWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0 YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8 cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRh eC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4 bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDxleGlm OlBpeGVsWERpbWVuc2lvbj40MDQ8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhp ZjpQaXhlbFlEaW1lbnNpb24+NTM4PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6 RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CqXB5tsAAAAcaURPVAAAAAIA AAAAAAABDQAAACgAAAENAAABDQAAhrE6H4VMAABAAElEQVR4AeydCdwV0xvHH1tFRakoRCF7ZctS RMlWkTVE9jX7P/u+7/u+V7YIpdKGNm0oVEJKilBKokWLmP/zPXXG3Lkz9869921573uez2femTnb nHnOfc/vPNuZtebOneuttdZaYil4TZq9t+dgWlSdpOXC7QTr2XbDZbKlx7URrBe8zrV8sK69Lok2 bFvu7DjgOOA4UJo5sJYDlMKGzwFKYfxztR0HHAeKhwNrjR0/USWU/14oPEHa+7UkpdB/FfTKliEx 7jqcF74P9oE8SynPtYmcIyoEnx0sGneda/modkqijah2XZrjgOOA40Bp44ADlAJHzAFKgQx01R0H HAeKhgNO5VXgUDpAKZCBrrrjgONA0XDAAUqBQ+kApUAGuuqOA44DRcMBBygFDqUDlAIZ6Ko7DjgO FA0HHKAUOJQOUApkoKvuOOA4UDQccIBS4FA6QCmQga6644DjQNFwwAFKgUPpAKVABrrqjgOOA0XD gaIDlKVL/5bJU3+UX3/9TZYu+zvLQP0XW1NuvfWk5qbVpV7dLaVcufWy1Psv2wHKf7xwV44DjgNl mwNFBSh//71MevYfIgsW/pX3qG5cdSNpedB+iUHFAUrerHYVHQccB4qMA0UFKMM/+UK+mzpdqmxY SXbcrq6UW2/djMMVBoOvvp0qs+fMlXpbbyn777N7xro2M9yGTXdnxwHHAceBssaBogKUt3t/aKST Noc2lfWygAkDHQYDJJw+A0dI+XLlpG2bQxL9FsJtJKrkCpU4B8aMGSOff/65nHvuuXm3/d1330mP Hj3kf//7n6yzzjp5t+MqOg6UVQ4UFaB0fqOXGcfjWjc3554DPkob18Z71pca1aqa9CgwGDLycyOl nNnuqLS6UQlRbUSVc2krjwO9evWSK664QnbeeWcDCPk+qWfPngZM9t9/f3nhhRdk3XUzS7j5PsfV cxwoVg44QAmNbL6AsnDhQnnnnXdk0qRJ8sMPP0iVKlWkYcOGsttuu0n9+vXVJlMu9CR3WxIc+Oyz z+SUU06RDTbYQLp27SrbbbddbLN//fWX9O3bVypWrCiHH354ZLnbbrtNunTpIm3btpW77747soxL dBxwHIjmQFEBilV5WQkl+pX/S42SLgCURYuX5KTyeuONN+SBBx4Q/RTAf40HrurVqycvvfSSbLbZ ZoFUd1koB/7++29p1qyZzJw5U958803ZY4890pr0PE8++eQTefvtt2XAgAECqJx33nly1VVXpZUl 4Z9//pGjjjpKvv76a3nyySflsMMOiyznEh0HHAfSOVBUgGKN8tvW3UJ23Tl+pWrZEAaUn2fOlpGj x+dklO/Tp49ceumlpslNN91UmjZtao4KFSoIOvnOnTurC/OvQh5qlJ122sk+3p0L5EC3bt3k2muv lVatWsljjz2W0tovv/wib731lnTv3l1++umnlLxMgEJBpB4kFMaqd+/eKXXdjeOA40A8B4oKUDCq 9+g7SP5atNgY3FmdJiXAhfIbqYfYEYcckMhteMmSJbLnnnvKokWLpEWLFvLMM8+kGfpZER9//PEy ceJE2WqrreTDDz+UtddeO2m3XLkYDiBJHHzwwQYs3n//falTp05KyZtvvlleffVVkwaYH3nkkQYc kGayAQqVDj30ULMg6NSpk1kgpDTubhwHHAciOVBUgDL3j3kmDiXyTRMmEuDYssV+QjxKNsKriJUs hEoFe0kUjRgxQk499VST9frrr8vee+8dVcykAWphySm2cCAj33qBJtIuC2kzW91s+WmdCSW89957 RjI84IADjDoxlC333HOPzJo1S44++mhp3Lix8dqyIJEEUJ5//nnTxl577WVsM+H23b3jgONAOgdy AhSMzXfccYdZ7bHisxScAMPX/GOOHTvW1Nt4441tFXMOl03JXHETLBPMj0ofNOxT+fHnmVJni5rS UFVe2VyHw22M/WqSTP5+umy5RS1p0TR+0rf9wMB7ySWXmFskj7p169qslPO8efPkpJNOMmkXX3xx ml7+jz/+MJMikyTqmU022UR23HFHadeunbERpDSmN6QvXbpUOnbsKDgDYJ+Bxy1btpSLLrrIeDxR h0l12223DVc3KrgLL7zQpN9yyy2yyy67+GWWLVtmwBHgmzJlipQvX1522GEHI4GdccYZaWCHm+1r r70mW2yxhdx1111y5513yvDhw+W3336Td999V7AfQQAI/Hr55ZdNu/CEOrvuuqvAkzje+R0LXaDm Quq79dZbjVE+lB15mwugzJ49W5o0aWJsKqjWouwzkQ9xiY4DZZgDOQEKE9b06dPNpMJEdOyxxxrW BSfm4DV67WeffdaU4Z8TG0KQgmWD13FlsqW//k4/WaqGWmuU/2Pe/GAV/7rKhpXNddQz+3w4Qpap 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 cuWVV2atEy6wYMECoxJjkoPwVkKFZlfwrKCvueaalGro9lG3YTD+4IMPzKRHAdRu8BtD9Y8//mjA ztp3gg288sorwvhVrVpVPv744xT3WNxvAQkIz7R///1XebzM3ONO+/jjjxs1kUnQPzwPW0TNmjVl 8803TzGGY3+gr7wLQNqvXz9bzbQNKELEfDzyyCNmkvcLZLjACM/vCfroo4/MczMUT8tinLp3755m ewkXbN++vTpnjJTzzjtPrrrqqnC2u3cccBwIcSAnQLn88suNDcBO3BZU7D1t2+tHH31UnnvuOf9x Z555ZtqEa8sG6/kVVlwEy9i8vv1GyCeffGlvA+eSkVBosNmBjaR580aBtqMvzz33XBk0aJDJRCcP j6pVqxZdOJTKRA1fUInhYswKf/vttzdSB8Z8eMiEHtbjW0Chua233tpMxLgnAxC0Qz3AHOmgf//+ oaeKcZEFSJgwGUNLtl6NGjVMX3AwAAyQvq6//noNJv0zDTgtoNAGK36k13333ddIWUgfG264oXHj vfnmm81jAEekC3g0dOhQ8xv54osvDJBiC6lVq5btTuz5k08+MdIbktyoUaNiy0VlAEaoyeA9oAK/ 4ujGG2803l8spABSR44DjgNZOIDbsKpc/EMnDS94qGrC45g/f743Z84cT33+PVVP+If67HuqdvEP NUJ76r/v51NWV3ce6YsXL045dJXt2UNXq17Uoa6hXvi49rrHveuuf9wbNvwzb+bMXz3eIfwewXeK uw6+J9ezZs32ho/43Lv+hifMoZO5l+3guTqJejqxm0PjIDwFCU8nK8M3nZBjSVflps4+++wTWfa6 664z+W3atElpQ9VhJl1X6Z56M6XkcTN16lSTT58mT56ckv/77797CjQmX21Afp5OzCZNVWReMN0W 0KA/k6/BgynPVEcE/1lPP/20LZ5yPuuss0wZBdyUdG7gHzyjr/AsCambtimv7r1JiqeUUdA2ddX2 lZIedfPEE0+YskcccURUtktzHHAcCHGA2AkfTJh4w5NsEFAsqOjKNgUwgqASByaqxkkBE8DFggnn KDAhLQwmkydP8wCUhx951QcS3iH8HnEgEkwPv6u9f+TR1wygTJkyPSugwE9d7XpMrLvvvruZgCy4 qLThdejQwRs/fnyI7ctv1fvLlFdJLjJ/woQJfnsAgSULKGq7sElpZ1VHmroqqaTkabyGST/wwANT 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 --000000000000271e6105ae3ea9aa Content-Type: image/png; name="Screenshot 2020-08-25 at 4.38.32 PM.png" Content-Disposition: inline; filename="Screenshot 2020-08-25 at 4.38.32 PM.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_ke9x2uu71 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 9jXud9hfe4BxoLwJaZre1NMsala2pLd0HBx9sK01sPXAr8N+3X7I5lDNYePDy45Qj5Qe6T9acrT3 mPRY9/Gc4w/bJrfdPjHuxNWTY0+2n4o5dea3yN9OnGafPnom6MyhswFnD57zO9d83ud80wXvCwd+ 9/79QLtPe9NF34stl/wvtXaM6jhyOeTy8SvhV367yr16/lrctY7rKddv3phwQ3lTcPPprfxbL/4o +qPv9tw7hDvld/XvVt6zuFf3L5d/7Vb6KA/fD79/4UHSg9sP+Q+fPZI/+thZ+pj+uPKJ9ZP6p55P D3VFdl36c/yfnc+kz/q6y/4y+Kv2ufPz/X+H/n2hZ1xP5wvZi/6XS16Zvdr+euTrtt6E3ntvCt70 vS1/Z/Zux3u/96c/pH140jftI+lj1SeXT62fYz7f6S/o75fyZDz1VgCDDc3OBuDldgDo6QAwLsH9 w3jNOU8tiOZsqkbgP2HNWVAtPgA0wptqu845BsAe2BznQm7YVFv15FCAenkNNq3Is708NVw0eOIh vOvvf2UJAKkVgE+y/v6+9f39n7bCYG8BcGyq5nypEiI8G2wKVaFrplkD/gfl3/5mf27cNipMAAAA CXBIWXMAABYlAAAWJQFJUiTwAAABnWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0 YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8 cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRh eC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4 bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDxleGlm OlBpeGVsWERpbWVuc2lvbj4zNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhp ZjpQaXhlbFlEaW1lbnNpb24+NDEyPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6 RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CnprJ0oAAAAcaURPVAAAAAIA AAAAAAAAzgAAACgAAADOAAAAzgAAbjxv0lVRAABAAElEQVR4AeydCdwW0xfHD/4qVEQhZN9ChYTK UsnSIktokwpZsste2RLKrqxZCokolEoIWQppI1kqISqhUFFZnv/53rrjPvPMPO+zvXjf957P53lm 5s69d2bOzPzuub9z7p11pn/4aWKddSSQddwNTbXb60hSpiA/KzZPuvXwvvB26LDsNpJ0XJvIMqKA ex5u1rj1bPNH1VOIOqLq9WleA14DZU8D63hAzu+me0DOT3++tNeA18DfGlhnypffq4X8t/XrrpPN btulmxZUE1PeLWPKuVa2U3dknWsrD9exNtlbyIEi/IrXgNdAadGAB+Q872Rsg5Fnvb6414DXQNnT gAfkPO+5B+Q8FeiLew14DQQa8IAcqCK3FQ/IuenNl/Ia8BpI1YAH5FSdZJXiATkrdfnMXgNeA2k0 4AE5jXIy2eUBORMt+TxeA14DmWjAA3ImWkqTxwNyGuX4XV4DXgNZaaDEAvLvq3+XJT/8GLrYv8P3 QjsiN8NgunrlKilXobxsWm0zKVe+XGSZcGK4jvB+v+014DXgNZCpBkokIC/5/kd5feSrsmLZstB1 ZgvIoeJrN9cvV06aHHOEbFljq+gMTqoHZEcZftVrwGsgLw2USEAe/vBQBeMVUq1aFdlllxqBApzx KUFa+pVUAJ89e758//1S2ahSJTmha7v0xXWvB+QiVfSPZJg5fYrMmjFNTup0es7H+/qLOfLq6Bek 8zkXyrrrrpdzPb6g10CuGihxgLz8l2Uy/OGnpXLljeSsM49Luu5swTEu/513PSWrlRJpfXo7qVi5 UtIxwhtxdYTz+e3i08DrL42Sfr0ul51r7iH9H3s25wO9NnaU9O15idQ98CC5/q4H5H//+1/OdfmC XgO5aKDEAfKibxbIuGfGSI0aW0i7tofL52rRfvPNYnPtLjg2aVy3SH24+d3Mo8dMlI8/nitHntiy SNrC1vHbryvk5ZEj5Cu1shbM/0oqVd5Ydq9VR397y6419xJoEC+F18DHM6bK5Wd1kgoVNpBbHxoi 2++0S+xBEomEfPv1VzL3s1kyb87ncvIZ56aA7n239JHnn3pMjjr2BLmoV5/YuvwOr4Hi0ECpAOQX XpiwVjdrKIgNNigv5517YpH6smAazvj2OzNk4sQPMwbksc8Nk0cH3C4//7Q0XJXZ3k5B4oa7H5TN tyyak46swCdGauCP33+XzsccLj8sXiS3Pfyk7Fln38h8v69eLQPv6qcN5nD57ddfgzwjJ86Q8uUr BNus/Pnnn3Jex9YK2p9Ir353y0GHHZm03294DRSnBko8IM+Z802kflxuOTKDJsYBcjYW8oSXx8hN V11sDlF18y2kbv2DZL8Gh+iLXl6t5bny/NDB8uP3i2WzaptL77selJ12qxl3Oj49Sw289Pyzckfv HnLoEc3lqpvuiCy98Nv50ufyC2T2Jx+b/TvsspvsqL8aO+ykfHNXWW+9VK4Yq/viU9vJzrvtIfc8 +VxkvT7Ra6A4NFDiANlyyOU1LO2C809K0kkcwCZlcjbi8lsOud05ndOGv61evUpObHKgrFr5m9Q/ tIlcc9u9KSC/8rff5MIubWTe7M9kqxrbySMjXpJ11l3XOQu/mosG/vrrTznt+Gby3YJvZOCzY2Xr bbdLqeaXn3+SLsceLst/+UWqb11DzrvqWsMPp2SMSOh6YgvByden/0PawB4ckcMneQ0UXgMlDpBR wagnRsjSH5ZIOeVld9Uoi403rmg0k2+Uxc8/Lzec9Grt4lapupm0OqV1Wo3j1b/4tDWRGHcOelpq Kl8cJdPemyhXdOtidt3y4ONSu+7+UdlMGjxnXEMRW0h35FquuOos6nyK2p/uvNj3xrjRpmdSr+Eh SgcNjMw+6J47ZOgj9xuq6IFho2TDjdY8J5GZQ4nPPv6wDLyzn9Tat57cOvCJ0F6/6TVQPBrICpC/ /fpreeD2G6XxUUdLk2Yt/z4jBwldMGGdB/uTD2fIBVddJxtX2fTvMroWzpu0c+2Gm8fuJw75nXFv KijnOzDE1pi83GLr6rJ/4way6eabJe8Ibb356kty4xUXmtSHR4yTbbbbPpRjzebyZb/IJV1PNhsn dz0nhZfEknvuycEGZLD4Nq26uey46+7S8oS2sv9BjVLqvPSMjgIv2vmciwwnOmLIo/LpRzPk4MOP kg6nnyO3XH2ZKXPxNTfKtto1DwsUSu9LzzPJ51x+texSc88gyx9//CGvjBohLz77lMyfN1fW157I jrvsrj2Aw+S49p2S7hmFxmuY2KhnnpQtt95GLujRW5+Pm2Tqe+/ITz/+KP0ff1bgzxEA+C3V1wtP PS7zv/xC0MkWW20ju+9VWzp0PTdWd6ZwxN9ZbVuZXse5V1wjR5/YPiUHVvHJLRrJyt9+lZvufVT2 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 G+UCMkAc9WHTPA8hFaZNk0rPPRdZjQfjSLX4RK+BEqkBD8h53jYXkPkaMpPT83l6PuFUSFl4992y csyYpCrXWW892bN/f6nauHFSut/wGvAaKJka8ICc531zAfmZZ56RDTbYQA499NA8a00u/tObb8rc Sy5JTly75Tr6ojIMHDhQftTQuCipUqWKaTz4Dh0/L/lrgA+ujtGGc/r06eYL4Xwduk6dOrLPPvvI 3nvvLRtvvHGRB4H24ln67LPPZNGiRcKXymnkjzvuONl1111jy8+aNUtGjhxp9vOR10J905EKv/76 a9P7owe4atUqqV27thxyyCFSq1at2PMpasdtt91mDJh0+fbbbz9p2rRpuiylap8H5DxvZxiQN910 U9l///3ll19+kZkzZ0oikUg6wgEHHJDV59vTgbGtOB0o8zDPmzfPZo1dNmnSRK688krZcccdY/P8 UzsWL14sf/75pwGUihUr/lOHzfs4H3zwgfTs2VNmz54dWRcAed9990n9+vUj9/Os3HHHHUIjunr1 6sg8Rx55pNxyyy2Rn/MaNWqUXLg2KodvO2655ZaRdWSbyPncfPPNKcXW0x4az0yXLl1S9hWVwAd7 99prr6KySefOnaVXr15F5istGUotIONU69atm3mpecj5Jl1YXDAN78t0260Dq8YF5Cg+GYDkU/WZ yG9z58qsdu2Ssv6lAFWpeXNZMWxYUnrF3XaT/ZQyCYsFZKw0vlbtCo3GJ598Im9ruByWHTp64YUX /nVQxvKCj+/evbu5h+45/1fXv/jiCzn++ONlmQ7S4duHDRo0kEaNGkmNGjWMdfn000/LRx99ZL4W Drgde+yxKZdyifaCnlvrK9hdBwKhh930vs6fP1+mTJkib731limzxx57yJNPPpliARcHIL/44osG 5Gks2mjEz1FHHWWMjBEjRgj7kB49esipp55q1jP9++qrrwQjADn66KNj34mDDjooUleZHqek5Su1 gEzL/eyzz5r7gcVKKx8GZRdMc71xbh0uZUFXNU4yBeQlL78s89TisrKOdneXKEDvf8IJst7778un V11ld5llgwkTpNzmmyelWUBup+VuuOGGpH1240MNr+OFWrp0qeypkRqAAtbPvyUlEZBPPvlkmaQR MdvowB0atfCXwQE0gAtgRrfjNUQRsLYC1XDRRReZTYDv+uuvTwGpp556Sq7WcEd6Dx06dDB5bHmW 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 f96nzjh37sy9c+98v3y/957n9bp3Zs6cc2bmMzOf85znec6ZMsuWLUuUKVNGjNjrpJlts7TTgspE zeevxy5n6vXnyZRu17FixQq59NJLpVKlSnL//fdLhQoV7OJ63c6fsjNigl3Hb7/9JpMmTZLVq1dH LJ1dts0220yaN28uNWrUiFywdevWMm/ePDn11FPljjvuiFzOznjXXXfJc889p5OqVKkie+65p/z0 00+63kQiIYcccoj07t1bNt10U7uYjBs3Tq644goPj/r16wvlp0+fLn/++afO+7///U8uuuiipHJP PPGE9OzZU6dVq1ZNqlevLn379pVtttlGp61bt07OOeccjTUJW265peywww4ye/Zs+eOPPzQ+v/zy i877wQcfSK1atfT6008/Lffdd5/eJj1Mrr/+enn11Vf17sqVK8vuu+8u3NtZs2bJ33//LVxHv379 ZNttt/Wq+OuvvwScOE+kXLlysv3228tWW20lixYtkoULF+r0TTbZRB577DE56qij9Lb9x/l37dpV Y0s6zxbHWLx4sb4u0ij/4IMPSocOHdhMkhEjRsjll1+elBa2AZY8q1GE82/RooVwjUYqVqwot9xy ixx//PEmKWnJvT/vvPN0Grh07Ngxaf+qVaukW7duYu7DjjvuKNzrr776StasWaPf10cffVQOP/zw pHL5vlEmXwk5yo2zyTRK/qA8dh0TJkwQiGDzzTeXmjVrCgRaVPLzzz/LypUrdZ3t2rWLXHdREDLX MH78eLn33ntl7ty53osJEZ544oly5ZVXalIMulZI5s4779QkvHz5ci/LTjvtpIn4mGOO8dLMyu+/ /y6XXHKJgKeR999/X2rXrm029TnQwAwdOlTjwg7O5/TTT5cDDjhAunTpovNCOobIoxIyBceOHasb cq4XEkbq1Kkj++23n/To0UOqVq2q0/x/Y8aMkWHDhunrhciMlC9fXtq2bauvuV69eiY5Zbl06VLp 06ePDBgwQDcC/gwQMo3YBRdc4N8lxUXINCatWrUS7tkuu+wiu+66q7Rp00a22267lHMwCd99952c cMIJ+j7ReDVq1Mjs8pYQPA3v4MGD9XvDDq6vcePG+pnheIUmjpBj3nGbkAcNGqRro1UvSjI2p4g2 ASkfdthhWWnJpnxRLNeuXSvffvutJj9eSDTBqLJgwQKBlNEc0ZQzCUSAdkj+rbfeOjA7GvqcOXP0 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 6RAo/Qg4Qo55D4uTkIPI+O9qW0vZpb8mnXU6p96zytn366/J+U3hqlWryg477CA77bST/pl0t8wd gb///ltGjRoln332mXz33Xfy559/SiPldG3cuLHss88+6uO5W2Ws/JdffpFBgwbJN998I4sWLZKt t95a36fjjz9edt5559DyM2fOlOHDh+v9F110kVQqJicv5zR06FBp1aqV7LLLLqHnY3ZMmTJF+H35 5Zfyh3Jk77bbbhqP1q1bmyxuuREBR8gxH4VsCNmYLIyGnOnQ0w49VP5es8bLtuWee8rPp3aRxJRJ Umn4YC+dlbCwNx76efPmJeUN2uDluu6666R+/fpBu//VtMWLF8tff/2lCaVixYr/6rHjHIwPv/JF 7tmzZwdWA0E++eSTcuCBBwbuTyQS8tBDDwmN6Pr1/g/4bihy1FFHyf333y9bbrllSh0jRoyQyy+/ XKd/8MEHUqtWrZQ8uSasW7dO3nrrLRmsBiNRNw1Pnz59pEWLFqFVkqdnz576moMyHXPMMXLXXXfJ 5ptvHrS7INPylpB/++036datm36peci32GKLlBucDZmmFN6YkE0dxqnXsH4d2WePcE3HHGuW0nJW Tp2qNyHjLa/rIR+qL243rF9X6n87MykWOWxgiCFktLQjjzzSVK2XK1asEL7+/P777+sXDIyGDRv2 n5MyL/mPP/4o3VVsNfewNMjcuXPlhBNOkJUrV2qyPOigg+Swww6TOnXqyPfffy+vvvqqzJgxQ/kO NpN77rlHjjvuuJTLulKNxkTzRHbddVdNdmigCxYskE8++UTee+89vW/33XfXX+z2a8DFQciff/65 1tbfULHvXJstmQj5iSee0IRMmTPPPFOOOOIIff0QOvtodMGMBsbJBgTylpDR9l577TV9lc2aNdNa h5+UsyHTsAcmmzoIexsycpz8vmat+kJ2GUEjSiebrFopW48brbMsbd1W/tyyomylIjQ6HHmolCu3 mUQZOm0I+dRTT5U77rgj8HDTp0+Xrl27yrJly2QPFbkBKWyyySaBef+NxNJIyKeffrpMnjxZtt9+ e92oVdk4otLgxb3u0aOHJmawHTdunCZrsx9TwxVXXKE3O3bsKLfddptsumlyFM4rr7wiN910kyay 0047Tecx5VkWByGjkX/77bf6MDQSPE+PP/643k5HyJhqDj74YMH8cvHFF3vXpguqvyFDhshVV12l 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 --000000000000271e6105ae3ea9aa-- --000000000000271e6205ae3ea9ab Content-Type: application/octet-stream; name="RM4979_v3.patch" Content-Disposition: attachment; filename="RM4979_v3.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kejuva0i2 ZGlmZiAtLWdpdCBhL3dlYi9taWdyYXRpb25zL3ZlcnNpb25zL2EwOTFjOTYxMWQyMF8ucHkgYi93 ZWIvbWlncmF0aW9ucy92ZXJzaW9ucy9hMDkxYzk2MTFkMjBfLnB5Cm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMC4uZDlkYTJiMTBmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL21p Z3JhdGlvbnMvdmVyc2lvbnMvYTA5MWM5NjExZDIwXy5weQpAQCAtMCwwICsxLDcyIEBACisKKyIi ImVtcHR5IG1lc3NhZ2UKKworUmV2aXNpb24gSUQ6IGEwOTFjOTYxMWQyMAorUmV2aXNlczogODQ3 MDAxMzliZWIwCitDcmVhdGUgRGF0ZTogMjAyMC0wNy0xNCAxNzoyMDoyMi43MDU3MzcKKworIiIi Citmcm9tIHBnYWRtaW4ubW9kZWwgaW1wb3J0IGRiCisKKworIyByZXZpc2lvbiBpZGVudGlmaWVy cywgdXNlZCBieSBBbGVtYmljLgorcmV2aXNpb24gPSAnYTA5MWM5NjExZDIwJworZG93bl9yZXZp c2lvbiA9ICc4NDcwMDEzOWJlYjAnCiticmFuY2hfbGFiZWxzID0gTm9uZQorZGVwZW5kc19vbiA9 IE5vbmUKKworCitkZWYgdXBncmFkZSgpOgorICAgIGRiLmVuZ2luZS5leGVjdXRlKAorICAgICAg ICAnQUxURVIgVEFCTEUgc2VydmVyIEFERCBDT0xVTU4gc2hhcmVkIEJPT0xFQU4nCisgICAgKQor CisgICAgZGIuZW5naW5lLmV4ZWN1dGUoIiIiCisgICAgICAgICAgICBDUkVBVEUgVEFCTEUgc2hh cmVkc2VydmVyICgKKyAgICAgICAgICAgIGlkCUlOVEVHRVIgTk9UIE5VTEwsCisgICAgICAgICAg ICB1c2VyX2lkCUlOVEVHRVIgTk9UIE5VTEwsCisgICAgICAgICAgICBzZXJ2ZXJfb3duZXIgVkFS Q0hBUig2NCksCisgICAgICAgICAgICBzZXJ2ZXJncm91cF9pZAlJTlRFR0VSIE5PVCBOVUxMLAor ICAgICAgICAgICAgbmFtZQlWQVJDSEFSKDEyOCkgTk9UIE5VTEwsCisgICAgICAgICAgICBob3N0 CVZBUkNIQVIoMTI4KSwKKyAgICAgICAgICAgIHBvcnQJSU5URUdFUiBOT1QgTlVMTCBDSEVDSyhw b3J0ID49IDEgQU5EIHBvcnQgPD0gNjU1MzQpLAorICAgICAgICAgICAgbWFpbnRlbmFuY2VfZGIJ VkFSQ0hBUig2NCksCisgICAgICAgICAgICB1c2VybmFtZQlWQVJDSEFSKDY0KSwKKyAgICAgICAg ICAgIHBhc3N3b3JkCVZBUkNIQVIoNjQpLAorICAgICAgICAgICAgcm9sZQlWQVJDSEFSKDY0KSwK KyAgICAgICAgICAgIHNzbF9tb2RlCVZBUkNIQVIoMTYpIE5PVCBOVUxMIENIRUNLKHNzbF9tb2Rl IElOCisgICAgICAgICAgICAgICAgKCAnYWxsb3cnICwgJ3ByZWZlcicgLCAncmVxdWlyZScgLCAn ZGlzYWJsZScgLAorICAgICAgICAgICAgICAgICAgJ3ZlcmlmeS1jYScgLCAndmVyaWZ5LWZ1bGwn ICkKKyAgICAgICAgICAgICksCisgICAgICAgICAgICBjb21tZW50CVZBUkNIQVIoMTAyNCksCisg ICAgICAgICAgICBkaXNjb3ZlcnlfaWQJVkFSQ0hBUigxMjgpLAorICAgICAgICAgICAgaG9zdGFk ZHIJVEVYVCgxMDI0KSwKKyAgICAgICAgICAgIGRiX3JlcwlURVhULAorICAgICAgICAgICAgcGFz c2ZpbGUJVEVYVCwKKyAgICAgICAgICAgIHNzbGNlcnQJVEVYVCwKKyAgICAgICAgICAgIHNzbGtl eQlURVhULAorICAgICAgICAgICAgc3Nscm9vdGNlcnQJVEVYVCwKKyAgICAgICAgICAgIHNzbGNy bAlURVhULAorICAgICAgICAgICAgc3NsY29tcHJlc3Npb24JSU5URUdFUiBERUZBVUxUIDAsCisg ICAgICAgICAgICBiZ2NvbG9yIFRFWFQoMTApLAorICAgICAgICAgICAgZmdjb2xvciBURVhUKDEw KSwKKyAgICAgICAgICAgIHNlcnZpY2UgVEVYVCwKKyAgICAgICAgICAgIHVzZV9zc2hfdHVubmVs IElOVEVHRVIgREVGQVVMVCAwLAorICAgICAgICAgICAgdHVubmVsX2hvc3QgVEVYVCwKKyAgICAg ICAgICAgIHR1bm5lbF9wb3J0IFRFWFQsCisgICAgICAgICAgICB0dW5uZWxfdXNlcm5hbWUgVEVY VCwKKyAgICAgICAgICAgIHR1bm5lbF9hdXRoZW50aWNhdGlvbiBJTlRFR0VSIERFRkFVTFQgMCwK KyAgICAgICAgICAgIHR1bm5lbF9pZGVudGl0eV9maWxlIFRFWFQsCisgICAgICAgICAgICBzaGFy ZWQgQk9PTEVBTiBOT1QgTlVMTCwKKyAgICAgICAgICAgIHNhdmVfcGFzc3dvcmQgQk9PTEVBTiBO T1QgTlVMTCwKKyAgICAgICAgICAgIHR1bm5lbF9wYXNzd29yZCBWQVJDSEFSKDY0KSwKKyAgICAg ICAgICAgIGNvbm5lY3RfdGltZW91dCBJTlRFR0VSICwKKyAgICAgICAgICAgIFBSSU1BUlkgS0VZ KGlkKSwKKyAgICAgICAgICAgIEZPUkVJR04gS0VZKHVzZXJfaWQpIFJFRkVSRU5DRVMgdXNlcihp ZCksCisgICAgICAgICAgICBGT1JFSUdOIEtFWShzZXJ2ZXJncm91cF9pZCkgUkVGRVJFTkNFUyBz ZXJ2ZXJncm91cChpZCkKKyAgICAgICAgKTsKKyAgICAiIiIpCisKKworZGVmIGRvd25ncmFkZSgp OgorICAgIHBhc3MKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL19faW5pdF9fLnB5IGIvd2ViL3Bn YWRtaW4vX19pbml0X18ucHkKaW5kZXggNTE2YmEyYzRkLi4xYTcxMjE1MWEgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL19faW5pdF9fLnB5CkBA IC0yOCw3ICsyOCw3IEBAIGZyb20gd2Vya3pldWcuZGF0YXN0cnVjdHVyZXMgaW1wb3J0IEltbXV0 YWJsZURpY3QKIGZyb20gd2Vya3pldWcubG9jYWwgaW1wb3J0IExvY2FsUHJveHkKIGZyb20gd2Vy a3pldWcudXRpbHMgaW1wb3J0IGZpbmRfbW9kdWxlcwogCi1mcm9tIHBnYWRtaW4ubW9kZWwgaW1w b3J0IGRiLCBSb2xlLCBTZXJ2ZXIsIFNlcnZlckdyb3VwLCBcCitmcm9tIHBnYWRtaW4ubW9kZWwg aW1wb3J0IGRiLCBSb2xlLCBTZXJ2ZXIsIFNoYXJlZFNlcnZlciwgU2VydmVyR3JvdXAsIFwKICAg ICBVc2VyLCBLZXlzLCBWZXJzaW9uLCBTQ0hFTUFfVkVSU0lPTiBhcyBDVVJSRU5UX1NDSEVNQV9W RVJTSU9OCiBmcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IFBnQWRtaW5Nb2R1bGUsIGRyaXZlciwg S2V5TWFuYWdlcgogZnJvbSBwZ2FkbWluLnV0aWxzLnByZWZlcmVuY2VzIGltcG9ydCBQcmVmZXJl bmNlcwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9yZWdpc3Rlcl9icm93c2VyX3By ZWZlcmVuY2VzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9yZWdpc3Rlcl9icm93c2VyX3ByZWZl cmVuY2VzLnB5CmluZGV4IDk0OGJlNDFiOC4uMjE1NDIxY2JmIDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3JlZ2lzdGVyX2Jyb3dzZXJfcHJlZmVyZW5jZXMucHkKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9yZWdpc3Rlcl9icm93c2VyX3ByZWZlcmVuY2VzLnB5CkBAIC05LDYgKzks NyBAQAogZnJvbSBmbGFza19iYWJlbGV4IGltcG9ydCBnZXR0ZXh0CiBmcm9tIHBnYWRtaW4udXRp bHMuY29uc3RhbnRzIGltcG9ydCBQUkVGX0xBQkVMX0RJU1BMQVksXAogICAgIFBSRUZfTEFCRUxf S0VZQk9BUkRfU0hPUlRDVVRTCitpbXBvcnQgY29uZmlnCiAKIExPQ0tfTEFZT1VUX0xFVkVMID0g ewogICAgICdQUkVWRU5UX0RPQ0tJTkcnOiAnZG9ja2luZycsCkBAIC0yMyw2ICsyNCwxNSBAQCBk ZWYgcmVnaXN0ZXJfYnJvd3Nlcl9wcmVmZXJlbmNlcyhzZWxmKToKICAgICAgICAgZ2V0dGV4dCgi U2hvdyBzeXN0ZW0gb2JqZWN0cz8iKSwgJ2Jvb2xlYW4nLCBGYWxzZSwKICAgICAgICAgY2F0ZWdv cnlfbGFiZWw9UFJFRl9MQUJFTF9ESVNQTEFZCiAgICAgKQorICAgIGlmIGNvbmZpZy5TRVJWRVJf TU9ERToKKyAgICAgICAgc2VsZi5oaWRlX3NoYXJlZF9zZXJ2ZXIgPSBzZWxmLnByZWZlcmVuY2Uu cmVnaXN0ZXIoCisgICAgICAgICAgICAnZGlzcGxheScsICdoaWRlX3NoYXJlZF9zZXJ2ZXInLAor ICAgICAgICAgICAgZ2V0dGV4dCgiSGlkZSBzaGFyZWQgc2VydmVyPyIpLCAnYm9vbGVhbicsIEZh bHNlLAorICAgICAgICAgICAgY2F0ZWdvcnlfbGFiZWw9Z2V0dGV4dCgnRGlzcGxheScpLAorICAg ICAgICAgICAgaGVscF9zdHI9Z2V0dGV4dCgKKyAgICAgICAgICAgICAgICAnSWYgc2V0IHRvIHRy dWUsIHRoZW4gYWxsIHNoYXJlZCBzZXJ2ZXIgd2lsbCBiZSBoaWRkZW4nCisgICAgICAgICAgICAp CisgICAgICAgICkKIAogICAgIHNlbGYucHJlZmVyZW5jZS5yZWdpc3RlcigKICAgICAgICAgJ2Rp c3BsYXknLCAnZW5hYmxlX2FjaXRyZWVfYW5pbWF0aW9uJywKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9fX2luaXRfXy5weQppbmRleCA3MTc3OTViZGUuLjlmMGIxNWZmMyAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL19faW5pdF9fLnB5 CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9fX2luaXRfXy5weQpAQCAt MTMsNyArMTMsNyBAQCBpbXBvcnQgc2ltcGxlanNvbiBhcyBqc29uCiBmcm9tIGFiYyBpbXBvcnQg QUJDTWV0YSwgYWJzdHJhY3RtZXRob2QKIAogaW1wb3J0IHNpeAotZnJvbSBmbGFzayBpbXBvcnQg cmVxdWVzdCwganNvbmlmeQorZnJvbSBmbGFzayBpbXBvcnQgcmVxdWVzdCwganNvbmlmeSwgcmVu ZGVyX3RlbXBsYXRlCiBmcm9tIGZsYXNrX2JhYmVsZXggaW1wb3J0IGdldHRleHQKIGZyb20gZmxh c2tfc2VjdXJpdHkgaW1wb3J0IGN1cnJlbnRfdXNlciwgbG9naW5fcmVxdWlyZWQKIGZyb20gcGdh ZG1pbi5icm93c2VyIGltcG9ydCBCcm93c2VyUGx1Z2luTW9kdWxlCkBAIC0yMiw3ICsyMiwyNyBA QCBmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNlLCBnb25l LCBcCiAgICAgbWFrZV9yZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlLCBiYWRfcmVxdWVzdAogZnJv bSBwZ2FkbWluLnV0aWxzLm1lbnUgaW1wb3J0IE1lbnVJdGVtCiBmcm9tIHNxbGFsY2hlbXkgaW1w b3J0IGV4YwotZnJvbSBwZ2FkbWluLm1vZGVsIGltcG9ydCBkYiwgU2VydmVyR3JvdXAKK2Zyb20g cGdhZG1pbi5tb2RlbCBpbXBvcnQgZGIsIFNlcnZlckdyb3VwLCBTZXJ2ZXIKK2ltcG9ydCBjb25m aWcKK2Zyb20gcGdhZG1pbi51dGlscy5wcmVmZXJlbmNlcyBpbXBvcnQgUHJlZmVyZW5jZXMKKwor CitkZWYgZ2V0X2ljb25fY3NzX2NsYXNzKGdyb3VwX2lkLCBncm91cF91c2VyX2lkLAorICAgICAg ICAgICAgICAgICAgICAgICBkZWZhdWx0X3ZhbD0naWNvbi1zZXJ2ZXJfZ3JvdXAnKToKKyAgICAi IiIKKyAgICBSZXR1cm5zIGNzcyB2YWx1ZQorICAgIDpwYXJhbSBncm91cF9pZDoKKyAgICA6cGFy YW0gZ3JvdXBfdXNlcl9pZDoKKyAgICA6cGFyYW0gZGVmYXVsdF92YWw6CisgICAgOnJldHVybjog ZGVmYXVsdF92YWwKKyAgICAiIiIKKyAgICBpZiAoY29uZmlnLlNFUlZFUl9NT0RFIGFuZAorICAg ICAgICBncm91cF91c2VyX2lkICE9IGN1cnJlbnRfdXNlci5pZCBhbmQKKyAgICAgICAgICAgIFNl cnZlckdyb3VwTW9kdWxlLmhhc19zaGFyZWRfc2VydmVyKGdyb3VwX2lkKSk6CisgICAgICAgIGRl ZmF1bHRfdmFsID0gJ2ljb24tc2VydmVyX2dyb3VwX3NoYXJlZCcKKworICAgIHJldHVybiBkZWZh dWx0X3ZhbAorCiAKIFNHX05PVF9GT1VORF9FUlJPUiA9ICdUaGUgc3BlY2lmaWVkIHNlcnZlciBn cm91cCBjb3VsZCBub3QgYmUgZm91bmQuJwogCkBAIC0zMSwxOSArNTEsNjMgQEAgY2xhc3MgU2Vy dmVyR3JvdXBNb2R1bGUoQnJvd3NlclBsdWdpbk1vZHVsZSk6CiAgICAgX05PREVfVFlQRSA9ICJz ZXJ2ZXJfZ3JvdXAiCiAgICAgbm9kZV9pY29uID0gImljb24tJXMiICUgX05PREVfVFlQRQogCisg ICAgQHByb3BlcnR5CisgICAgZGVmIGNzc3NuaXBwZXRzKHNlbGYpOgorICAgICAgICAiIiIKKyAg ICAgICAgUmV0dXJucyBhIHNuaXBwZXQgb2YgY3NzIHRvIGluY2x1ZGUgaW4gdGhlIHBhZ2UKKyAg ICAgICAgIiIiCisgICAgICAgIHNuaXBwZXRzID0gW3JlbmRlcl90ZW1wbGF0ZSgiY3NzL3NlcnZl cl9ncm91cC5jc3MiKV0KKworICAgICAgICBmb3Igc3VibW9kdWxlIGluIHNlbGYuc3VibW9kdWxl czoKKyAgICAgICAgICAgIHNuaXBwZXRzLmV4dGVuZChzdWJtb2R1bGUuY3Nzc25pcHBldHMpCisK KyAgICAgICAgcmV0dXJuIHNuaXBwZXRzCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGhh c19zaGFyZWRfc2VydmVyKGdpZCk6CisgICAgICAgICIiIgorICAgICAgICBUbyBjaGVjayB3aGV0 aGVyIGdpdmVuIHNlcnZlciBncm91cCBjb250YWlucyBzaGFyZWQgc2VydmVyIG9yIG5vdAorICAg ICAgICA6cGFyYW0gZ2lkOgorICAgICAgICA6cmV0dXJuOiBUcnVlIGlmIHNlcnZlcmdyb3VwIGNv bnRhaW5zIHNoYXJlZCBzZXJ2ZXIgZWxzZSBmYWxzZQorICAgICAgICAiIiIKKyAgICAgICAgc2Vy dmVycyA9IFNlcnZlci5xdWVyeS5maWx0ZXJfYnkoc2VydmVyZ3JvdXBfaWQ9Z2lkKQorICAgICAg ICBmb3IgcyBpbiBzZXJ2ZXJzOgorICAgICAgICAgICAgaWYgcy5zaGFyZWQ6CisgICAgICAgICAg ICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKICAgICBkZWYgZ2V0X25v ZGVzKHNlbGYsICphcmcsICoqa3dhcmdzKToKICAgICAgICAgIiIiUmV0dXJuIGEgSlNPTiBkb2N1 bWVudCBsaXN0aW5nIHRoZSBzZXJ2ZXIgZ3JvdXBzIGZvciB0aGUgdXNlciIiIgotICAgICAgICBn cm91cHMgPSBTZXJ2ZXJHcm91cC5xdWVyeS5maWx0ZXJfYnkoCi0gICAgICAgICAgICB1c2VyX2lk PWN1cnJlbnRfdXNlci5pZAotICAgICAgICApLm9yZGVyX2J5KCJpZCIpCisKKyAgICAgICAgaGlk ZV9zaGFyZWRfc2VydmVyID0gTm9uZQorICAgICAgICBpZiBjb25maWcuU0VSVkVSX01PREU6Cisg ICAgICAgICAgICBwcmVmID0gUHJlZmVyZW5jZXMubW9kdWxlKCdicm93c2VyJykKKyAgICAgICAg ICAgIGhpZGVfc2hhcmVkX3NlcnZlciA9IHByZWYucHJlZmVyZW5jZSgnaGlkZV9zaGFyZWRfc2Vy dmVyJykuZ2V0KCkKKworICAgICAgICBpZiBjb25maWcuU0VSVkVSX01PREU6CisgICAgICAgICAg ICBzZXJ2ZXJfZ3JvdXBzID0gU2VydmVyR3JvdXAucXVlcnkuYWxsKCkKKyAgICAgICAgICAgIGdy b3VwcyA9IFtdCisgICAgICAgICAgICBmb3IgZ3JvdXAgaW4gc2VydmVyX2dyb3VwczoKKyAgICAg ICAgICAgICAgICBpZiBoaWRlX3NoYXJlZF9zZXJ2ZXIgYW5kIHNlbGYuaGFzX3NoYXJlZF9zZXJ2 ZXIoCisgICAgICAgICAgICAgICAgICAgICAgICBncm91cC5pZCkgYW5kIGdyb3VwLnVzZXJfaWQg IT0gY3VycmVudF91c2VyLmlkOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAg ICAgICAgICAgIGlmIGdyb3VwLnVzZXJfaWQgPT0gY3VycmVudF91c2VyLmlkIG9yIFwKKyAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuaGFzX3NoYXJlZF9zZXJ2ZXIoZ3JvdXAuaWQpOgorICAg ICAgICAgICAgICAgICAgICBncm91cHMuYXBwZW5kKGdyb3VwKQorICAgICAgICBlbHNlOgorICAg ICAgICAgICAgZ3JvdXBzID0gU2VydmVyR3JvdXAucXVlcnkuZmlsdGVyX2J5KAorICAgICAgICAg ICAgICAgIHVzZXJfaWQ9Y3VycmVudF91c2VyLmlkCisgICAgICAgICAgICApLm9yZGVyX2J5KCJp ZCIpCisKICAgICAgICAgZm9yIGlkeCwgZ3JvdXAgaW4gZW51bWVyYXRlKGdyb3Vwcyk6CiAgICAg ICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgKICAgICAgICAgICAgICAg ICAiJWQiICUgKGdyb3VwLmlkKSwgTm9uZSwKICAgICAgICAgICAgICAgICBncm91cC5uYW1lLAot ICAgICAgICAgICAgICAgIHNlbGYubm9kZV9pY29uLAorICAgICAgICAgICAgICAgIGdldF9pY29u X2Nzc19jbGFzcyhncm91cC5pZCwgZ3JvdXAudXNlcl9pZCksCiAgICAgICAgICAgICAgICAgVHJ1 ZSwKICAgICAgICAgICAgICAgICBzZWxmLm5vZGVfdHlwZSwKLSAgICAgICAgICAgICAgICBjYW5f ZGVsZXRlPVRydWUgaWYgaWR4ID4gMCBlbHNlIEZhbHNlCisgICAgICAgICAgICAgICAgY2FuX2Rl bGV0ZT1UcnVlIGlmIGlkeCA+IDAgZWxzZSBGYWxzZSwKKyAgICAgICAgICAgICAgICB1c2VyX2lk PWdyb3VwLnVzZXJfaWQKICAgICAgICAgICAgICkKIAogICAgIEBwcm9wZXJ0eQpAQCAtMTk2LDcg KzI2MCw3IEBAIGNsYXNzIFNlcnZlckdyb3VwVmlldyhOb2RlVmlldyk6CiAgICAgICAgICAgICAg ICAgZ2lkLAogICAgICAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgICAgICAgc2VydmVyZ3Jv dXAubmFtZSwKLSAgICAgICAgICAgICAgICBzZWxmLm5vZGVfaWNvbiwKKyAgICAgICAgICAgICAg ICBnZXRfaWNvbl9jc3NfY2xhc3MoZ2lkLCBzZXJ2ZXJncm91cC51c2VyX2lkKSwKICAgICAgICAg ICAgICAgICBUcnVlLAogICAgICAgICAgICAgICAgIHNlbGYubm9kZV90eXBlLAogICAgICAgICAg ICAgICAgIGNhbl9kZWxldGU9VHJ1ZSAgIyBUaGlzIGlzIHVzZXIgY3JlYXRlZCBoZW5jZSBjYW4g ZGVsZXRlZApAQCAtMjA3LDEwICsyNzEsNyBAQCBjbGFzcyBTZXJ2ZXJHcm91cFZpZXcoTm9kZVZp ZXcpOgogICAgIGRlZiBwcm9wZXJ0aWVzKHNlbGYsIGdpZCk6CiAgICAgICAgICIiIlVwZGF0ZSB0 aGUgc2VydmVyLWdyb3VwIHByb3BlcnRpZXMiIiIKIAotICAgICAgICAjIFRoZXJlIGNhbiBiZSBv bmx5IG9uZSByZWNvcmQgYXQgbW9zdAotICAgICAgICBzZyA9IFNlcnZlckdyb3VwLnF1ZXJ5LmZp bHRlcl9ieSgKLSAgICAgICAgICAgIHVzZXJfaWQ9Y3VycmVudF91c2VyLmlkLAotICAgICAgICAg ICAgaWQ9Z2lkKS5maXJzdCgpCisgICAgICAgIHNnID0gU2VydmVyR3JvdXAucXVlcnkuZmlsdGVy KFNlcnZlckdyb3VwLmlkID09IGdpZCkuZmlyc3QoKQogCiAgICAgICAgIGlmIHNnIGlzIE5vbmU6 CiAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKApAQCAtMjIwLDcgKzI4MSw3 IEBAIGNsYXNzIFNlcnZlckdyb3VwVmlldyhOb2RlVmlldyk6CiAgICAgICAgICAgICApCiAgICAg ICAgIGVsc2U6CiAgICAgICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKLSAgICAgICAgICAg ICAgICByZXNwb25zZT17J2lkJzogc2cuaWQsICduYW1lJzogc2cubmFtZX0sCisgICAgICAgICAg ICAgICAgcmVzcG9uc2U9eydpZCc6IHNnLmlkLCAnbmFtZSc6IHNnLm5hbWUsICd1c2VyX2lkJzog c2cudXNlcl9pZH0sCiAgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAogICAgICAgICAgICAgKQog CkBAIC0yNDYsNyArMzA3LDcgQEAgY2xhc3MgU2VydmVyR3JvdXBWaWV3KE5vZGVWaWV3KToKICAg ICAgICAgICAgICAgICAgICAgICAgICIlZCIgJSBzZy5pZCwKICAgICAgICAgICAgICAgICAgICAg ICAgIE5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICBzZy5uYW1lLAotICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5ub2RlX2ljb24sCisgICAgICAgICAgICAgICAgICAgICAgICBnZXRf aWNvbl9jc3NfY2xhc3Moc2cuaWQsIHNnLnVzZXJfaWQpLAogICAgICAgICAgICAgICAgICAgICAg ICAgVHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubm9kZV90eXBlLAogICAgICAg ICAgICAgICAgICAgICAgICAgIyBUaGlzIGlzIHVzZXIgY3JlYXRlZCBoZW5jZSBjYW4gZGVsZXRl ZApAQCAtMjk2LDkgKzM1NywyNSBAQCBjbGFzcyBTZXJ2ZXJHcm91cFZpZXcoTm9kZVZpZXcpOgog ICAgIGRlZiBub2RlcyhzZWxmLCBnaWQ9Tm9uZSk6CiAgICAgICAgICIiIlJldHVybiBhIEpTT04g ZG9jdW1lbnQgbGlzdGluZyB0aGUgc2VydmVyIGdyb3VwcyBmb3IgdGhlIHVzZXIiIiIKICAgICAg ICAgbm9kZXMgPSBbXQorICAgICAgICBoaWRlX3NoYXJlZF9zZXJ2ZXIgPSBOb25lCisgICAgICAg IGlmIGNvbmZpZy5TRVJWRVJfTU9ERToKKyAgICAgICAgICAgIHByZWYgPSBQcmVmZXJlbmNlcy5t b2R1bGUoJ2Jyb3dzZXInKQorICAgICAgICAgICAgaGlkZV9zaGFyZWRfc2VydmVyID0gcHJlZi5w cmVmZXJlbmNlKCdoaWRlX3NoYXJlZF9zZXJ2ZXInKS5nZXQoKQogCiAgICAgICAgIGlmIGdpZCBp cyBOb25lOgotICAgICAgICAgICAgZ3JvdXBzID0gU2VydmVyR3JvdXAucXVlcnkuZmlsdGVyX2J5 KHVzZXJfaWQ9Y3VycmVudF91c2VyLmlkKQorICAgICAgICAgICAgaWYgY29uZmlnLlNFUlZFUl9N T0RFOgorICAgICAgICAgICAgICAgIHNlcnZlcl9ncm91cHMgPSBTZXJ2ZXJHcm91cC5xdWVyeS5h bGwoKQorICAgICAgICAgICAgICAgIGdyb3VwcyA9IFtdCisgICAgICAgICAgICAgICAgZm9yIGdy b3VwIGluIHNlcnZlcl9ncm91cHM6CisgICAgICAgICAgICAgICAgICAgIGlmIGhpZGVfc2hhcmVk X3NlcnZlciBhbmQgXAorICAgICAgICAgICAgICAgICAgICAgICAgU2VydmVyR3JvdXBNb2R1bGUu aGFzX3NoYXJlZF9zZXJ2ZXIoZ3JvdXAuaWQpIGFuZCBcCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ3JvdXAudXNlcl9pZCAhPSBjdXJyZW50X3VzZXIuaWQ6CisgICAgICAgICAgICAgICAg ICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgICAgICBpZiBncm91cC51c2VyX2lkID09 IGN1cnJlbnRfdXNlci5pZCBvciBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VydmVy R3JvdXBNb2R1bGUuaGFzX3NoYXJlZF9zZXJ2ZXIoZ3JvdXAuaWQpOgorICAgICAgICAgICAgICAg ICAgICAgICAgZ3JvdXBzLmFwcGVuZChncm91cCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAg ICAgICAgICAgZ3JvdXBzID0gU2VydmVyR3JvdXAucXVlcnkuZmlsdGVyX2J5KHVzZXJfaWQ9Y3Vy cmVudF91c2VyLmlkKQogCiAgICAgICAgICAgICBmb3IgZ3JvdXAgaW4gZ3JvdXBzOgogICAgICAg ICAgICAgICAgIG5vZGVzLmFwcGVuZCgKQEAgLTMwNiwxNCArMzgzLDE0IEBAIGNsYXNzIFNlcnZl ckdyb3VwVmlldyhOb2RlVmlldyk6CiAgICAgICAgICAgICAgICAgICAgICAgICAiJWQiICUgZ3Jv dXAuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICBOb25lLAogICAgICAgICAgICAgICAgICAg ICAgICAgZ3JvdXAubmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubm9kZV9pY29u LAorICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2ljb25fY3NzX2NsYXNzKGdyb3VwLmlkLCBn cm91cC51c2VyX2lkKSwKICAgICAgICAgICAgICAgICAgICAgICAgIFRydWUsCiAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLm5vZGVfdHlwZQogICAgICAgICAgICAgICAgICAgICApCiAgICAg ICAgICAgICAgICAgKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgZ3JvdXAgPSBTZXJ2ZXJH cm91cC5xdWVyeS5maWx0ZXJfYnkodXNlcl9pZD1jdXJyZW50X3VzZXIuaWQsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1naWQpLmZpcnN0KCkKKyAg ICAgICAgICAgIGdyb3VwID0gU2VydmVyR3JvdXAucXVlcnkuZmlsdGVyKFNlcnZlckdyb3VwLmlk ID09IGdpZCkuZmlyc3QoKQorCiAgICAgICAgICAgICBpZiBub3QgZ3JvdXA6CiAgICAgICAgICAg ICAgICAgcmV0dXJuIGdvbmUoCiAgICAgICAgICAgICAgICAgICAgIGVycm9ybXNnPWdldHRleHQo IkNvdWxkIG5vdCBmaW5kIHRoZSBzZXJ2ZXIgZ3JvdXAuIikKQEAgLTMyMiw3ICszOTksNyBAQCBj bGFzcyBTZXJ2ZXJHcm91cFZpZXcoTm9kZVZpZXcpOgogICAgICAgICAgICAgbm9kZXMgPSBzZWxm LmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCiAgICAgICAgICAgICAgICAgIiVkIiAl IChncm91cC5pZCksIE5vbmUsCiAgICAgICAgICAgICAgICAgZ3JvdXAubmFtZSwKLSAgICAgICAg ICAgICAgICBzZWxmLm5vZGVfaWNvbiwKKyAgICAgICAgICAgICAgICBnZXRfaWNvbl9jc3NfY2xh c3MoZ3JvdXAuaWQsIGdyb3VwLnVzZXJfaWQpLAogICAgICAgICAgICAgICAgIFRydWUsCiAgICAg ICAgICAgICAgICAgc2VsZi5ub2RlX3R5cGUKICAgICAgICAgICAgICkKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL19faW5pdF9fLnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvX19pbml0X18ucHkKaW5kZXgg MmViMDU4YTQwLi44YjE0ODZjYWMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL19faW5pdF9fLnB5CkBAIC0yMyw3ICsyMyw3IEBAIGZyb20g cGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMucXVlcnlfaGlzdG9yeSBpbXBvcnQgUXVlcnlI aXN0b3J5CiAKIGltcG9ydCBjb25maWcKIGZyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RS SVZFUgotZnJvbSBwZ2FkbWluLm1vZGVsIGltcG9ydCBkYiwgU2VydmVyLCBTZXJ2ZXJHcm91cCwg VXNlcgorZnJvbSBwZ2FkbWluLm1vZGVsIGltcG9ydCBkYiwgU2VydmVyLCBTZXJ2ZXJHcm91cCwg VXNlciwgU2hhcmVkU2VydmVyCiBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRf ZHJpdmVyCiBmcm9tIHBnYWRtaW4udXRpbHMubWFzdGVyX3Bhc3N3b3JkIGltcG9ydCBnZXRfY3J5 cHRfa2V5CiBmcm9tIHBnYWRtaW4udXRpbHMuZXhjZXB0aW9uIGltcG9ydCBDcnlwdEtleU1pc3Np bmcKQEAgLTMyLDYgKzMyLDggQEAgZnJvbSBwc3ljb3BnMiBpbXBvcnQgRXJyb3IgYXMgcHN5Y29w ZzJfRXJyb3IsIE9wZXJhdGlvbmFsRXJyb3IKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy51dGlscyBpbXBvcnQgaXNfdmFsaWRfaXBhZGRyZXNzCiBmcm9tIHBnYWRt aW4udXRpbHMuY29uc3RhbnRzIGltcG9ydCBVTkFVVEhfUkVRLCBNSU1FVFlQRV9BUFBfSlMsIFwK ICAgICBTRVJWRVJfQ09OTkVDVElPTl9DTE9TRUQKK2Zyb20gc3FsYWxjaGVteSBpbXBvcnQgb3Jf Citmcm9tIHBnYWRtaW4udXRpbHMucHJlZmVyZW5jZXMgaW1wb3J0IFByZWZlcmVuY2VzCiAKIAog ZGVmIGhhc19hbnkoZGF0YSwga2V5cyk6CkBAIC05Miw2ICs5NCwxMCBAQCBkZWYgc2VydmVyX2lj b25fYW5kX2JhY2tncm91bmQoaXNfY29ubmVjdGVkLCBtYW5hZ2VyLCBzZXJ2ZXIpOgogICAgICAg ICByZXR1cm4gJ2ljb24tezB9ezF9Jy5mb3JtYXQoCiAgICAgICAgICAgICBtYW5hZ2VyLnNlcnZl cl90eXBlLCBzZXJ2ZXJfYmFja2dyb3VuZF9jb2xvcgogICAgICAgICApCisgICAgZWxpZiBzZXJ2 ZXIuc2hhcmVkIGFuZCBjb25maWcuU0VSVkVSX01PREU6CisgICAgICAgIHJldHVybiAnaWNvbi1z aGFyZWQtc2VydmVyLW5vdC1jb25uZWN0ZWR7MH0nLmZvcm1hdCgKKyAgICAgICAgICAgIHNlcnZl cl9iYWNrZ3JvdW5kX2NvbG9yCisgICAgICAgICkKICAgICBlbHNlOgogICAgICAgICByZXR1cm4g J2ljb24tc2VydmVyLW5vdC1jb25uZWN0ZWR7MH0nLmZvcm1hdCgKICAgICAgICAgICAgIHNlcnZl cl9iYWNrZ3JvdW5kX2NvbG9yCkBAIC0xMTQsMTUgKzEyMCw2MSBAQCBjbGFzcyBTZXJ2ZXJNb2R1 bGUoc2cuU2VydmVyR3JvdXBQbHVnaW5Nb2R1bGUpOgogICAgICAgICAiIiIKICAgICAgICAgcmV0 dXJuIHNnLlNlcnZlckdyb3VwTW9kdWxlLm5vZGVfdHlwZQogCisgICAgQHN0YXRpY21ldGhvZAor ICAgIGRlZiBnZXRfc2hhcmVkX3NlcnZlcl9wcm9wZXJ0aWVzKHNlcnZlciwgc2hhcmVkc2VydmVy KToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiBzaGFyZWQgc2VydmVyIHByb3BlcnRpZXMK KyAgICAgICAgOnBhcmFtIHNlcnZlcjoKKyAgICAgICAgOnBhcmFtIHNoYXJlZHNlcnZlcjoKKyAg ICAgICAgOnJldHVybjoKKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VydmVyLmJnY29sb3IgPSBz aGFyZWRzZXJ2ZXIuYmdjb2xvcgorICAgICAgICBzZXJ2ZXIuZmdjb2xvciA9IHNoYXJlZHNlcnZl ci5mZ2NvbG9yCisgICAgICAgIHNlcnZlci5uYW1lID0gc2hhcmVkc2VydmVyLm5hbWUKKyAgICAg ICAgc2VydmVyLnJvbGUgPSBzaGFyZWRzZXJ2ZXIucm9sZQorICAgICAgICBzZXJ2ZXIudHVubmVs X3VzZXJuYW1lID0gc2hhcmVkc2VydmVyLnR1bm5lbF91c2VybmFtZQorICAgICAgICBzZXJ2ZXIu dHVubmVsX3Bhc3N3b3JkID0gc2hhcmVkc2VydmVyLnR1bm5lbF9wYXNzd29yZAorICAgICAgICBz ZXJ2ZXIuc2F2ZV9wYXNzd29yZCA9IHNoYXJlZHNlcnZlci5zYXZlX3Bhc3N3b3JkCisgICAgICAg IHNlcnZlci5wYXNzZmlsZSA9IHNoYXJlZHNlcnZlci5wYXNzZmlsZQorICAgICAgICBzZXJ2ZXIu c2VydmVyZ3JvdXBfaWQgPSBzaGFyZWRzZXJ2ZXIuc2VydmVyZ3JvdXBfaWQKKyAgICAgICAgc2Vy dmVyLnNzbGNlcnQgPSBzaGFyZWRzZXJ2ZXIuc3NsY2VydAorICAgICAgICBzZXJ2ZXIudXNlcm5h bWUgPSBzaGFyZWRzZXJ2ZXIudXNlcm5hbWUKKyAgICAgICAgc2VydmVyLnNlcnZlcl9vd25lciA9 IHNoYXJlZHNlcnZlci5zZXJ2ZXJfb3duZXIKKworICAgICAgICByZXR1cm4gc2VydmVyCisKICAg ICBAbG9naW5fcmVxdWlyZWQKICAgICBkZWYgZ2V0X25vZGVzKHNlbGYsIGdpZCk6CiAgICAgICAg ICIiIlJldHVybiBhIEpTT04gZG9jdW1lbnQgbGlzdGluZyB0aGUgc2VydmVyIGdyb3VwcyBmb3Ig dGhlIHVzZXIiIiIKLSAgICAgICAgc2VydmVycyA9IFNlcnZlci5xdWVyeS5maWx0ZXJfYnkodXNl cl9pZD1jdXJyZW50X3VzZXIuaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlcnZlcmdyb3VwX2lkPWdpZCkKKworICAgICAgICBoaWRlX3NoYXJlZF9zZXJ2ZXIg PSBOb25lCisgICAgICAgIGF1dG9fZGV0ZWN0ZWRfc2VydmVyID0gTm9uZQorICAgICAgICBpZiBj b25maWcuU0VSVkVSX01PREU6CisgICAgICAgICAgICBwcmVmID0gUHJlZmVyZW5jZXMubW9kdWxl KCdicm93c2VyJykKKyAgICAgICAgICAgIGhpZGVfc2hhcmVkX3NlcnZlciA9IHByZWYucHJlZmVy ZW5jZSgnaGlkZV9zaGFyZWRfc2VydmVyJykuZ2V0KCkKKworICAgICAgICBzZXJ2ZXJzID0gU2Vy dmVyLnF1ZXJ5LmZpbHRlcigKKyAgICAgICAgICAgIG9yXyhTZXJ2ZXIudXNlcl9pZCA9PSBjdXJy ZW50X3VzZXIuaWQsIFNlcnZlci5zaGFyZWQpLAorICAgICAgICAgICAgU2VydmVyLnNlcnZlcmdy b3VwX2lkID09IGdpZCkKIAogICAgICAgICBkcml2ZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRf RFJJVkVSKQogCiAgICAgICAgIGZvciBzZXJ2ZXIgaW4gc2VydmVyczoKKyAgICAgICAgICAgIGlm IHNlcnZlci5zaGFyZWQgYW5kIHNlcnZlci5kaXNjb3ZlcnlfaWQ6CisgICAgICAgICAgICAgICAg YXV0b19kZXRlY3RlZF9zZXJ2ZXIgPSBzZXJ2ZXIubmFtZQorICAgICAgICAgICAgaWYgc2VydmVy LnNoYXJlZCBhbmQgc2VydmVyLnVzZXJfaWQgIT0gY3VycmVudF91c2VyLmlkOgorICAgICAgICAg ICAgICAgICMgRG9uJ3QgaW5jbHVkZSBzaGFyZWQgc2VydmVyIGlmIGhpZGUgc2hhcmVkIHNlcnZl ciBpcworICAgICAgICAgICAgICAgICMgc2V0IHRvIHRydWUKKyAgICAgICAgICAgICAgICBpZiBo aWRlX3NoYXJlZF9zZXJ2ZXI6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAg ICAgICAgICAgc2hhcmVkX3NlcnZlciA9IHNlbGYuZ2V0X3NoYXJlZF9zZXJ2ZXIoc2VydmVyLCBn aWQpCisKKyAgICAgICAgICAgICAgICBpZiBzaGFyZWRfc2VydmVyLm5hbWUgPT0gYXV0b19kZXRl Y3RlZF9zZXJ2ZXI6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAg ICAgc2VydmVyID0gc2VsZi5nZXRfc2hhcmVkX3NlcnZlcl9wcm9wZXJ0aWVzKHNlcnZlciwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2hhcmVkX3NlcnZlcikKKwogICAgICAgICAgICAgY29ubmVjdGVkID0gRmFsc2UKICAgICAgICAg ICAgIG1hbmFnZXIgPSBOb25lCiAgICAgICAgICAgICBlcnJtc2cgPSBOb25lCkBAIC0xNTgsNyAr MjEwLDEwIEBAIGNsYXNzIFNlcnZlck1vZHVsZShzZy5TZXJ2ZXJHcm91cFBsdWdpbk1vZHVsZSk6 CiAgICAgICAgICAgICAgICAgaXNfdHVubmVsX3Bhc3N3b3JkX3NhdmVkPVRydWUKICAgICAgICAg ICAgICAgICBpZiBzZXJ2ZXIudHVubmVsX3Bhc3N3b3JkIGlzIG5vdCBOb25lIGVsc2UgRmFsc2Us CiAgICAgICAgICAgICAgICAgd2FzX2Nvbm5lY3RlZD13YXNfY29ubmVjdGVkLAotICAgICAgICAg ICAgICAgIGVycm1zZz1lcnJtc2cKKyAgICAgICAgICAgICAgICBlcnJtc2c9ZXJybXNnLAorICAg ICAgICAgICAgICAgIHVzZXJfaWQ9c2VydmVyLnVzZXJfaWQsCisgICAgICAgICAgICAgICAgdXNl cl9uYW1lPXNlcnZlci51c2VybmFtZSwKKyAgICAgICAgICAgICAgICBzaGFyZWQ9c2VydmVyLnNo YXJlZAogICAgICAgICAgICAgKQogCiAgICAgQHByb3BlcnR5CkBAIC0yMzAsNiArMjg1LDc5IEBA IGNsYXNzIFNlcnZlck1vZHVsZShzZy5TZXJ2ZXJHcm91cFBsdWdpbk1vZHVsZSk6CiAgICAgZGVm IGdldF9leHBvc2VkX3VybF9lbmRwb2ludHMoc2VsZik6CiAgICAgICAgIHJldHVybiBbJ05PREUt c2VydmVyLmNvbm5lY3RfaWQnXQogCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBjcmVhdGVf c2hhcmVkX3NlcnZlcihkYXRhLCBnaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRlIHNo YXJlZCBzZXJ2ZXIKKyAgICAgICAgOnBhcmFtIGRhdGE6CisgICAgICAgIDpwYXJhbSBnaWQ6Cisg ICAgICAgIDpyZXR1cm46IE5vbmUKKyAgICAgICAgIiIiCisKKyAgICAgICAgc2hhcmVkX3NlcnZl ciA9IE5vbmUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdXNlciA9IFVzZXIucXVlcnkuZmls dGVyX2J5KGlkPWRhdGEudXNlcl9pZCkuZmlyc3QoKQorICAgICAgICAgICAgc2hhcmVkX3NlcnZl ciA9IFNoYXJlZFNlcnZlcigKKyAgICAgICAgICAgICAgICB1c2VyX2lkPWN1cnJlbnRfdXNlci5p ZCwKKyAgICAgICAgICAgICAgICBzZXJ2ZXJfb3duZXI9dXNlci51c2VybmFtZSwKKyAgICAgICAg ICAgICAgICBzZXJ2ZXJncm91cF9pZD1naWQsCisgICAgICAgICAgICAgICAgbmFtZT1kYXRhLm5h bWUsCisgICAgICAgICAgICAgICAgaG9zdD1kYXRhLmhvc3QsCisgICAgICAgICAgICAgICAgaG9z dGFkZHI9ZGF0YS5ob3N0YWRkciwKKyAgICAgICAgICAgICAgICBwb3J0PWRhdGEucG9ydCwKKyAg ICAgICAgICAgICAgICBtYWludGVuYW5jZV9kYj1Ob25lLAorICAgICAgICAgICAgICAgIHVzZXJu YW1lPU5vbmUsCisgICAgICAgICAgICAgICAgc2F2ZV9wYXNzd29yZD0wLAorICAgICAgICAgICAg ICAgIHNzbF9tb2RlPWRhdGEuc3NsX21vZGUsCisgICAgICAgICAgICAgICAgY29tbWVudD1Ob25l LAorICAgICAgICAgICAgICAgIHJvbGU9ZGF0YS5yb2xlLAorICAgICAgICAgICAgICAgIHNzbGNl cnQ9Tm9uZSwKKyAgICAgICAgICAgICAgICBzc2xrZXk9Tm9uZSwKKyAgICAgICAgICAgICAgICBz c2xyb290Y2VydD1Ob25lLAorICAgICAgICAgICAgICAgIHNzbGNybD1Ob25lLAorICAgICAgICAg ICAgICAgIGJnY29sb3I9ZGF0YS5iZ2NvbG9yIGlmIGRhdGEuYmdjb2xvciBlbHNlIE5vbmUsCisg ICAgICAgICAgICAgICAgZmdjb2xvcj1kYXRhLmZnY29sb3IgaWYgZGF0YS5mZ2NvbG9yIGVsc2Ug Tm9uZSwKKyAgICAgICAgICAgICAgICBzZXJ2aWNlPWRhdGEuc2VydmljZSBpZiBkYXRhLnNlcnZp Y2UgZWxzZSBOb25lLAorICAgICAgICAgICAgICAgIGNvbm5lY3RfdGltZW91dD0wLAorICAgICAg ICAgICAgICAgIHVzZV9zc2hfdHVubmVsPTAsCisgICAgICAgICAgICAgICAgdHVubmVsX2hvc3Q9 Tm9uZSwKKyAgICAgICAgICAgICAgICB0dW5uZWxfcG9ydD0yMiwKKyAgICAgICAgICAgICAgICB0 dW5uZWxfdXNlcm5hbWU9Tm9uZSwKKyAgICAgICAgICAgICAgICB0dW5uZWxfYXV0aGVudGljYXRp b249MCwKKyAgICAgICAgICAgICAgICB0dW5uZWxfaWRlbnRpdHlfZmlsZT1Ob25lLAorICAgICAg ICAgICAgICAgIHNoYXJlZD1kYXRhLnNoYXJlZCBpZiBkYXRhLnNoYXJlZCBlbHNlIE5vbmUKKyAg ICAgICAgICAgICkKKyAgICAgICAgICAgIGRiLnNlc3Npb24uYWRkKHNoYXJlZF9zZXJ2ZXIpCisg ICAgICAgICAgICBkYi5zZXNzaW9uLmNvbW1pdCgpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24g YXMgZToKKyAgICAgICAgICAgIGlmIHNoYXJlZF9zZXJ2ZXI6CisgICAgICAgICAgICAgICAgZGIu c2Vzc2lvbi5kZWxldGUoc2hhcmVkX3NlcnZlcikKKyAgICAgICAgICAgICAgICBkYi5zZXNzaW9u LmNvbW1pdCgpCisKKyAgICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5leGNlcHRpb24oZSkK KyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUp KQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBnZXRfc2hhcmVkX3NlcnZlcihzZXJ2ZXIs IGdpZCk6CisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gdGhlIHNoYXJlZCBzZXJ2ZXIKKyAg ICAgICAgOnBhcmFtIHNlcnZlcjoKKyAgICAgICAgOnBhcmFtIGdpZDoKKyAgICAgICAgOnJldHVy bjogc2hhcmVkX3NlcnZlcgorICAgICAgICAiIiIKKyAgICAgICAgc2hhcmVkX3NlcnZlciA9IFNo YXJlZFNlcnZlci5xdWVyeS5maWx0ZXJfYnkoCisgICAgICAgICAgICBuYW1lPXNlcnZlci5uYW1l LCB1c2VyX2lkPWN1cnJlbnRfdXNlci5pZCwKKyAgICAgICAgICAgIHNlcnZlcmdyb3VwX2lkPWdp ZCkuZmlyc3QoKQorCisgICAgICAgIGlmIHNoYXJlZF9zZXJ2ZXIgaXMgTm9uZToKKyAgICAgICAg ICAgIFNlcnZlck1vZHVsZS5jcmVhdGVfc2hhcmVkX3NlcnZlcihzZXJ2ZXIsIGdpZCkKKworICAg ICAgICAgICAgc2hhcmVkX3NlcnZlciA9IFNoYXJlZFNlcnZlci5xdWVyeS5maWx0ZXJfYnkoCisg ICAgICAgICAgICAgICAgbmFtZT1zZXJ2ZXIubmFtZSwgdXNlcl9pZD1jdXJyZW50X3VzZXIuaWQs CisgICAgICAgICAgICAgICAgc2VydmVyZ3JvdXBfaWQ9Z2lkKS5maXJzdCgpCisKKyAgICAgICAg cmV0dXJuIHNoYXJlZF9zZXJ2ZXIKKwogCiBjbGFzcyBTZXJ2ZXJNZW51SXRlbShNZW51SXRlbSk6 CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToKQEAgLTMyNywxMiArNDU1LDE5IEBA IGNsYXNzIFNlcnZlck5vZGUoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgUmV0dXJuIGEgSlNP TiBkb2N1bWVudCBsaXN0aW5nIHRoZSBzZXJ2ZXJzIHVuZGVyIHRoaXMgc2VydmVyIGdyb3VwCiAg ICAgICAgIGZvciB0aGUgdXNlci4KICAgICAgICAgIiIiCi0gICAgICAgIHNlcnZlcnMgPSBTZXJ2 ZXIucXVlcnkuZmlsdGVyX2J5KHVzZXJfaWQ9Y3VycmVudF91c2VyLmlkLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJncm91cF9pZD1naWQpCisgICAgICAg IHNlcnZlcnMgPSBTZXJ2ZXIucXVlcnkuZmlsdGVyKAorICAgICAgICAgICAgb3JfKFNlcnZlci51 c2VyX2lkID09IGN1cnJlbnRfdXNlci5pZCwKKyAgICAgICAgICAgICAgICBTZXJ2ZXIuc2hhcmVk KSwKKyAgICAgICAgICAgIFNlcnZlci5zZXJ2ZXJncm91cF9pZCA9PSBnaWQpCiAKICAgICAgICAg ZHJpdmVyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikKIAogICAgICAgICBmb3Igc2Vy dmVyIGluIHNlcnZlcnM6CisgICAgICAgICAgICBpZiBzZXJ2ZXIuc2hhcmVkIGFuZCBzZXJ2ZXIu dXNlcl9pZCAhPSBjdXJyZW50X3VzZXIuaWQ6CisgICAgICAgICAgICAgICAgc2hhcmVkX3NlcnZl ciA9IFNlcnZlck1vZHVsZS5nZXRfc2hhcmVkX3NlcnZlcihzZXJ2ZXIsIGdpZCkKKyAgICAgICAg ICAgICAgICBzZXJ2ZXIgPSBcCisgICAgICAgICAgICAgICAgICAgIFNlcnZlck1vZHVsZS5nZXRf c2hhcmVkX3NlcnZlcl9wcm9wZXJ0aWVzKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkX3NlcnZlcikKICAg ICAgICAgICAgIG1hbmFnZXIgPSBkcml2ZXIuY29ubmVjdGlvbl9tYW5hZ2VyKHNlcnZlci5pZCkK ICAgICAgICAgICAgIGNvbm4gPSBtYW5hZ2VyLmNvbm5lY3Rpb24oKQogICAgICAgICAgICAgY29u bmVjdGVkID0gY29ubi5jb25uZWN0ZWQoKQpAQCAtMzY1LDcgKzUwMCw5IEBAIGNsYXNzIFNlcnZl ck5vZGUoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgICAgICAgICAgaXNfcGFzc3dvcmRf c2F2ZWQ9Ym9vbChzZXJ2ZXIuc2F2ZV9wYXNzd29yZCksCiAgICAgICAgICAgICAgICAgICAgIGlz X3R1bm5lbF9wYXNzd29yZF9zYXZlZD1UcnVlCiAgICAgICAgICAgICAgICAgICAgIGlmIHNlcnZl ci50dW5uZWxfcGFzc3dvcmQgaXMgbm90IE5vbmUgZWxzZSBGYWxzZSwKLSAgICAgICAgICAgICAg ICAgICAgZXJybXNnPWVycm1zZworICAgICAgICAgICAgICAgICAgICBlcnJtc2c9ZXJybXNnLAor ICAgICAgICAgICAgICAgICAgICB1c2VyX25hbWU9c2VydmVyLnVzZXJuYW1lLAorICAgICAgICAg ICAgICAgICAgICBzaGFyZWQ9c2VydmVyLnNoYXJlZAogICAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgICkKIApAQCAtMzc5LDkgKzUxNiwxMiBAQCBjbGFzcyBTZXJ2ZXJOb2RlKFBHQ2hpbGRO b2RlVmlldyk6CiAgICAgQGxvZ2luX3JlcXVpcmVkCiAgICAgZGVmIG5vZGUoc2VsZiwgZ2lkLCBz aWQpOgogICAgICAgICAiIiJSZXR1cm4gYSBKU09OIGRvY3VtZW50IGxpc3RpbmcgdGhlIHNlcnZl ciBncm91cHMgZm9yIHRoZSB1c2VyIiIiCi0gICAgICAgIHNlcnZlciA9IFNlcnZlci5xdWVyeS5m aWx0ZXJfYnkodXNlcl9pZD1jdXJyZW50X3VzZXIuaWQsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VydmVyZ3JvdXBfaWQ9Z2lkLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlkPXNpZCkuZmlyc3QoKQorICAgICAgICBzZXJ2ZXIgPSBT ZXJ2ZXIucXVlcnkuZmlsdGVyX2J5KGlkPXNpZCkuZmlyc3QoKQorCisgICAgICAgIGlmIHNlcnZl ci5zaGFyZWQgYW5kIHNlcnZlci51c2VyX2lkICE9IGN1cnJlbnRfdXNlci5pZDoKKyAgICAgICAg ICAgIHNoYXJlZF9zZXJ2ZXIgPSBTZXJ2ZXJNb2R1bGUuZ2V0X3NoYXJlZF9zZXJ2ZXIoc2VydmVy LCBnaWQpCisgICAgICAgICAgICBzZXJ2ZXIgPSBTZXJ2ZXJNb2R1bGUuZ2V0X3NoYXJlZF9zZXJ2 ZXJfcHJvcGVydGllcyhzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZWRfc2VydmVyKQogCiAgICAgICAgIGlm IHNlcnZlciBpcyBOb25lOgogICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgK QEAgLTQyNiwxNCArNTY2LDM3IEBAIGNsYXNzIFNlcnZlck5vZGUoUEdDaGlsZE5vZGVWaWV3KToK ICAgICAgICAgICAgICAgICBpc19wYXNzd29yZF9zYXZlZD1ib29sKHNlcnZlci5zYXZlX3Bhc3N3 b3JkKSwKICAgICAgICAgICAgICAgICBpc190dW5uZWxfcGFzc3dvcmRfc2F2ZWQ9VHJ1ZQogICAg ICAgICAgICAgICAgIGlmIHNlcnZlci50dW5uZWxfcGFzc3dvcmQgaXMgbm90IE5vbmUgZWxzZSBG YWxzZSwKLSAgICAgICAgICAgICAgICBlcnJtc2c9ZXJybXNnCisgICAgICAgICAgICAgICAgZXJy bXNnPWVycm1zZywKKyAgICAgICAgICAgICAgICBzaGFyZWQ9c2VydmVyLnNoYXJlZCwKKyAgICAg ICAgICAgICAgICB1c2VyX25hbWU9c2VydmVyLnVzZXJuYW1lCiAgICAgICAgICAgICApLAogICAg ICAgICApCiAKKyAgICBkZWYgZGVsZXRlX3NoYXJlZF9zZXJ2ZXIoc2VsZiwgc2VydmVyX25hbWUs IGdpZCk6CisgICAgICAgICIiIgorICAgICAgICBEZWxldGUgdGhlIHNoYXJlZCBzZXJ2ZXIKKyAg ICAgICAgOnBhcmFtIHNlcnZlcl9uYW1lOgorICAgICAgICA6cmV0dXJuOgorICAgICAgICAiIiIK KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2hhcmVkX3NlcnZlciA9IFNoYXJlZFNlcnZlci5x dWVyeS5maWx0ZXJfYnkobmFtZT1zZXJ2ZXJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcmdyb3VwX2lkPWdpZCkKKyAg ICAgICAgICAgIGZvciBzIGluIHNoYXJlZF9zZXJ2ZXI6CisgICAgICAgICAgICAgICAgZ2V0X2Ry aXZlcihQR19ERUZBVUxUX0RSSVZFUikuZGVsZXRlX21hbmFnZXIocy5pZCkKKyAgICAgICAgICAg ICAgICBkYi5zZXNzaW9uLmRlbGV0ZShzKQorICAgICAgICAgICAgZGIuc2Vzc2lvbi5jb21taXQo KQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIGN1cnJlbnRf YXBwLmxvZ2dlci5leGNlcHRpb24oZSkKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVz cG9uc2UoCisgICAgICAgICAgICAgICAgc3VjY2Vzcz0wLAorICAgICAgICAgICAgICAgIGVycm9y bXNnPWUubWVzc2FnZSkKKwogICAgIEBsb2dpbl9yZXF1aXJlZAogICAgIGRlZiBkZWxldGUoc2Vs ZiwgZ2lkLCBzaWQpOgogICAgICAgICAiIiJEZWxldGUgYSBzZXJ2ZXIgbm9kZSBpbiB0aGUgc2V0 dGluZ3MgZGF0YWJhc2UuIiIiCiAgICAgICAgIHNlcnZlcnMgPSBTZXJ2ZXIucXVlcnkuZmlsdGVy X2J5KHVzZXJfaWQ9Y3VycmVudF91c2VyLmlkLCBpZD1zaWQpCisgICAgICAgIHNlcnZlcl9uYW1l ID0gTm9uZQogCiAgICAgICAgICMgVE9ETzo6IEEgc2VydmVyLCB3aGljaCBpcyBjb25uZWN0ZWQs IGNhbm5vdCBiZSBkZWxldGVkCiAgICAgICAgIGlmIHNlcnZlcnMgaXMgTm9uZToKQEAgLTQ0OSwx MCArNjEyLDExIEBAIGNsYXNzIFNlcnZlck5vZGUoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAg ZWxzZToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBmb3IgcyBpbiBzZXJ2ZXJz OgorICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfbmFtZSA9IHMubmFtZQogICAgICAgICAgICAg ICAgICAgICBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKS5kZWxldGVfbWFuYWdlcihzLmlk KQogICAgICAgICAgICAgICAgICAgICBkYi5zZXNzaW9uLmRlbGV0ZShzKQogICAgICAgICAgICAg ICAgIGRiLnNlc3Npb24uY29tbWl0KCkKLQorICAgICAgICAgICAgICAgIHNlbGYuZGVsZXRlX3No YXJlZF9zZXJ2ZXIoc2VydmVyX25hbWUsIGdpZCkKICAgICAgICAgICAgICAgICBRdWVyeUhpc3Rv cnkuY2xlYXJfaGlzdG9yeShjdXJyZW50X3VzZXIuaWQsIHNpZCkKIAogICAgICAgICAgICAgZXhj ZXB0IEV4Y2VwdGlvbiBhcyBlOgpAQCAtNDY3LDggKzYzMSw4IEBAIGNsYXNzIFNlcnZlck5vZGUo UEdDaGlsZE5vZGVWaWV3KToKICAgICBAbG9naW5fcmVxdWlyZWQKICAgICBkZWYgdXBkYXRlKHNl bGYsIGdpZCwgc2lkKToKICAgICAgICAgIiIiVXBkYXRlIHRoZSBzZXJ2ZXIgc2V0dGluZ3MiIiIK LSAgICAgICAgc2VydmVyID0gU2VydmVyLnF1ZXJ5LmZpbHRlcl9ieSgKLSAgICAgICAgICAgIHVz ZXJfaWQ9Y3VycmVudF91c2VyLmlkLCBpZD1zaWQpLmZpcnN0KCkKKyAgICAgICAgc2VydmVyID0g U2VydmVyLnF1ZXJ5LmZpbHRlcl9ieShpZD1zaWQpLmZpcnN0KCkKKyAgICAgICAgc2hhcmVkc2Vy dmVyID0gTm9uZQogCiAgICAgICAgIGlmIHNlcnZlciBpcyBOb25lOgogICAgICAgICAgICAgcmV0 dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKQEAgLTQ3Nyw2ICs2NDEsMTAgQEAgY2xhc3MgU2VydmVy Tm9kZShQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAgICAgICAgIGVycm9ybXNnPWdldHRleHQo IkNvdWxkIG5vdCBmaW5kIHRoZSByZXF1aXJlZCBzZXJ2ZXIuIikKICAgICAgICAgICAgICkKIAor ICAgICAgICBpZiBjb25maWcuU0VSVkVSX01PREUgYW5kIHNlcnZlci5zaGFyZWQgYW5kIFwKKyAg ICAgICAgICAgICAgICBzZXJ2ZXIudXNlcl9pZCAhPSBjdXJyZW50X3VzZXIuaWQ6CisgICAgICAg ICAgICBzaGFyZWRzZXJ2ZXIgPSBTZXJ2ZXJNb2R1bGUuZ2V0X3NoYXJlZF9zZXJ2ZXIoc2VydmVy LCBnaWQpCisKICAgICAgICAgIyBOb3QgYWxsIHBhcmFtZXRlcnMgY2FuIGJlIG1vZGlmaWVkLCB3 aGlsZSB0aGUgc2VydmVyIGlzIGNvbm5lY3RlZAogICAgICAgICBjb25maWdfcGFyYW1fbWFwID0g ewogICAgICAgICAgICAgJ25hbWUnOiAnbmFtZScsCkBAIC01MDYsMTEgKzY3NCwxMiBAQCBjbGFz cyBTZXJ2ZXJOb2RlKFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICAgICAndHVubmVsX3VzZXJu YW1lJzogJ3R1bm5lbF91c2VybmFtZScsCiAgICAgICAgICAgICAndHVubmVsX2F1dGhlbnRpY2F0 aW9uJzogJ3R1bm5lbF9hdXRoZW50aWNhdGlvbicsCiAgICAgICAgICAgICAndHVubmVsX2lkZW50 aXR5X2ZpbGUnOiAndHVubmVsX2lkZW50aXR5X2ZpbGUnLAorICAgICAgICAgICAgJ3NoYXJlZCc6 ICdzaGFyZWQnCiAgICAgICAgIH0KIAogICAgICAgICBkaXNwX2xibCA9IHsKICAgICAgICAgICAg ICduYW1lJzogZ2V0dGV4dCgnbmFtZScpLAotICAgICAgICAgICAgJ2hvc3QnOiBnZXR0ZXh0KCdI b3N0IG5hbWUvYWRkcmVzcycpLAorICAgICAgICAgICAgJ2hvc3RhZGRyJzogZ2V0dGV4dCgnSG9z dCBuYW1lL2FkZHJlc3MnKSwKICAgICAgICAgICAgICdwb3J0JzogZ2V0dGV4dCgnUG9ydCcpLAog ICAgICAgICAgICAgJ2RiJzogZ2V0dGV4dCgnTWFpbnRlbmFuY2UgZGF0YWJhc2UnKSwKICAgICAg ICAgICAgICd1c2VybmFtZSc6IGdldHRleHQoJ1VzZXJuYW1lJyksCkBAIC01NDEsNyArNzEwLDgg QEAgY2xhc3MgU2VydmVyTm9kZShQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICBzZWxmLl9zZXJ2 ZXJfbW9kaWZ5X2Rpc2FsbG93ZWRfd2hlbl9jb25uZWN0ZWQoCiAgICAgICAgICAgICBjb25uZWN0 ZWQsIGRhdGEsIGRpc3BfbGJsKQogCi0gICAgICAgIGlkeCA9IHNlbGYuX3NldF92YWxpZF9hdHRy X3ZhbHVlKGRhdGEsIGNvbmZpZ19wYXJhbV9tYXAsIHNlcnZlcikKKyAgICAgICAgaWR4ID0gc2Vs Zi5fc2V0X3ZhbGlkX2F0dHJfdmFsdWUoZ2lkLCBkYXRhLCBjb25maWdfcGFyYW1fbWFwLCBzZXJ2 ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZHNlcnZl cikKIAogICAgICAgICBpZiBpZHggPT0gMDoKICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25f cmVzcG9uc2UoCkBAIC01NjgsNyArNzM4LDExIEBAIGNsYXNzIFNlcnZlck5vZGUoUEdDaGlsZE5v ZGVWaWV3KToKICAgICAgICAgICAgIG5vZGU9c2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nl cl9ub2RlKAogICAgICAgICAgICAgICAgICIlZCIgJSAoc2VydmVyLmlkKSwgc2VydmVyLnNlcnZl cmdyb3VwX2lkLAogICAgICAgICAgICAgICAgIHNlcnZlci5uYW1lLAotICAgICAgICAgICAgICAg IHNlcnZlcl9pY29uX2FuZF9iYWNrZ3JvdW5kKGNvbm5lY3RlZCwgbWFuYWdlciwgc2VydmVyKSwK KyAgICAgICAgICAgICAgICBzZXJ2ZXJfaWNvbl9hbmRfYmFja2dyb3VuZCgKKyAgICAgICAgICAg ICAgICAgICAgY29ubmVjdGVkLCBtYW5hZ2VyLCBzaGFyZWRzZXJ2ZXIpCisgICAgICAgICAgICAg ICAgaWYgc2VydmVyLnNoYXJlZCBhbmQgc2VydmVyLnVzZXJfaWQgIT0gY3VycmVudF91c2VyLmlk CisgICAgICAgICAgICAgICAgZWxzZSBzZXJ2ZXJfaWNvbl9hbmRfYmFja2dyb3VuZCgKKyAgICAg ICAgICAgICAgICAgICAgY29ubmVjdGVkLCBtYW5hZ2VyLCBzZXJ2ZXIpLAogICAgICAgICAgICAg ICAgIFRydWUsCiAgICAgICAgICAgICAgICAgc2VsZi5ub2RlX3R5cGUsCiAgICAgICAgICAgICAg ICAgY29ubmVjdGVkPWNvbm5lY3RlZCwKQEAgLTU3Nyw3ICs3NTEsOCBAQCBjbGFzcyBTZXJ2ZXJO b2RlKFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICAgICApCiAgICAgICAgICkKIAotICAgIGRl ZiBfc2V0X3ZhbGlkX2F0dHJfdmFsdWUoc2VsZiwgZGF0YSwgY29uZmlnX3BhcmFtX21hcCwgc2Vy dmVyKToKKyAgICBkZWYgX3NldF92YWxpZF9hdHRyX3ZhbHVlKHNlbGYsIGdpZCwgZGF0YSwgY29u ZmlnX3BhcmFtX21hcCwgc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hh cmVkc2VydmVyKToKIAogICAgICAgICBpZHggPSAwCiAgICAgICAgIGZvciBhcmcgaW4gY29uZmln X3BhcmFtX21hcDoKQEAgLTU4NSw5ICs3NjAsMTcgQEAgY2xhc3MgU2VydmVyTm9kZShQR0NoaWxk Tm9kZVZpZXcpOgogICAgICAgICAgICAgICAgIHZhbHVlID0gZGF0YVthcmddCiAgICAgICAgICAg ICAgICAgIyBzcWxpdGUzIGRvIG5vdCBoYXZlIGJvb2xlYW4gdHlwZSBzbyB3ZSBuZWVkIHRvIGNv bnZlcnQKICAgICAgICAgICAgICAgICAjIGl0IG1hbnVhbGx5IHRvIGludGVnZXIKKyAgICAgICAg ICAgICAgICBpZiAnc2hhcmVkJyBpbiBkYXRhIGFuZCBub3QgZGF0YVsnc2hhcmVkJ106CisgICAg ICAgICAgICAgICAgICAgICMgRGVsZXRlIHRoZSBzaGFyZWQgc2VydmVyIGZyb20gREIgaWYgc2Vy dmVyCisgICAgICAgICAgICAgICAgICAgICMgb3duZXIgdW5jaGVjayBzaGFyZWQgcHJvcGVydHkK KyAgICAgICAgICAgICAgICAgICAgc2VsZi5kZWxldGVfc2hhcmVkX3NlcnZlcihzZXJ2ZXIubmFt ZSwgZ2lkKQogICAgICAgICAgICAgICAgIGlmIGFyZyA9PSAnc3NsY29tcHJlc3Npb24nOgogICAg ICAgICAgICAgICAgICAgICB2YWx1ZSA9IDEgaWYgdmFsdWUgZWxzZSAwCi0gICAgICAgICAgICAg ICAgc2V0YXR0cihzZXJ2ZXIsIGNvbmZpZ19wYXJhbV9tYXBbYXJnXSwgdmFsdWUpCisgICAgICAg ICAgICAgICAgIyBzZXRhdHRyKHNlcnZlciwgY29uZmlnX3BhcmFtX21hcFthcmddLCB2YWx1ZSkK KyAgICAgICAgICAgICAgICBpZiBzZXJ2ZXIuc2hhcmVkIGFuZCBzZXJ2ZXIudXNlcl9pZCAhPSBj dXJyZW50X3VzZXIuaWQ6CisgICAgICAgICAgICAgICAgICAgIHNldGF0dHIoc2hhcmVkc2VydmVy LCBjb25maWdfcGFyYW1fbWFwW2FyZ10sIHZhbHVlKQorICAgICAgICAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgICAgICAgIHNldGF0dHIoc2VydmVyLCBjb25maWdfcGFyYW1fbWFwW2FyZ10s IHZhbHVlKQogICAgICAgICAgICAgICAgIGlkeCArPSAxCiAKICAgICAgICAgcmV0dXJuIGlkeApA QCAtNjEzLDExICs3OTYsMTEgQEAgY2xhc3MgU2VydmVyTm9kZShQR0NoaWxkTm9kZVZpZXcpOgog ICAgICAgICAiIiIKICAgICAgICAgUmV0dXJuIGxpc3Qgb2YgYXR0cmlidXRlcyBvZiBhbGwgc2Vy dmVycy4KICAgICAgICAgIiIiCi0gICAgICAgIHNlcnZlcnMgPSBTZXJ2ZXIucXVlcnkuZmlsdGVy X2J5KAotICAgICAgICAgICAgdXNlcl9pZD1jdXJyZW50X3VzZXIuaWQsCi0gICAgICAgICAgICBz ZXJ2ZXJncm91cF9pZD1naWQpLm9yZGVyX2J5KFNlcnZlci5uYW1lKQorICAgICAgICBzZXJ2ZXJz ID0gU2VydmVyLnF1ZXJ5LmZpbHRlcigKKyAgICAgICAgICAgIG9yXyhTZXJ2ZXIudXNlcl9pZCA9 PSBjdXJyZW50X3VzZXIuaWQsCisgICAgICAgICAgICAgICAgU2VydmVyLnNoYXJlZCksCisgICAg ICAgICAgICBTZXJ2ZXIuc2VydmVyZ3JvdXBfaWQgPT0gZ2lkKS5vcmRlcl9ieShTZXJ2ZXIubmFt ZSkKICAgICAgICAgc2cgPSBTZXJ2ZXJHcm91cC5xdWVyeS5maWx0ZXJfYnkoCi0gICAgICAgICAg ICB1c2VyX2lkPWN1cnJlbnRfdXNlci5pZCwKICAgICAgICAgICAgIGlkPWdpZAogICAgICAgICAp LmZpcnN0KCkKICAgICAgICAgcmVzID0gW10KQEAgLTYyNSw2ICs4MDgsMTEgQEAgY2xhc3MgU2Vy dmVyTm9kZShQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICBkcml2ZXIgPSBnZXRfZHJpdmVyKFBH X0RFRkFVTFRfRFJJVkVSKQogCiAgICAgICAgIGZvciBzZXJ2ZXIgaW4gc2VydmVyczoKKyAgICAg ICAgICAgIGlmIHNlcnZlci5zaGFyZWQgYW5kIHNlcnZlci51c2VyX2lkICE9IGN1cnJlbnRfdXNl ci5pZDoKKyAgICAgICAgICAgICAgICBzaGFyZWRfc2VydmVyID0gU2VydmVyTW9kdWxlLmdldF9z aGFyZWRfc2VydmVyKHNlcnZlciwgZ2lkKQorICAgICAgICAgICAgICAgIHNlcnZlciA9IFwKKyAg ICAgICAgICAgICAgICAgICAgU2VydmVyTW9kdWxlLmdldF9zaGFyZWRfc2VydmVyX3Byb3BlcnRp ZXMoc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzaGFyZWRfc2VydmVyKQogICAgICAgICAgICAgbWFuYWdlciA9IGRy aXZlci5jb25uZWN0aW9uX21hbmFnZXIoc2VydmVyLmlkKQogICAgICAgICAgICAgY29ubiA9IG1h bmFnZXIuY29ubmVjdGlvbigpCiAgICAgICAgICAgICBjb25uZWN0ZWQgPSBjb25uLmNvbm5lY3Rl ZCgpCkBAIC02NTQsNyArODQyLDYgQEAgY2xhc3MgU2VydmVyTm9kZShQR0NoaWxkTm9kZVZpZXcp OgogICAgIGRlZiBwcm9wZXJ0aWVzKHNlbGYsIGdpZCwgc2lkKToKICAgICAgICAgIiIiUmV0dXJu IGxpc3Qgb2YgYXR0cmlidXRlcyBvZiBhIHNlcnZlciIiIgogICAgICAgICBzZXJ2ZXIgPSBTZXJ2 ZXIucXVlcnkuZmlsdGVyX2J5KAotICAgICAgICAgICAgdXNlcl9pZD1jdXJyZW50X3VzZXIuaWQs CiAgICAgICAgICAgICBpZD1zaWQpLmZpcnN0KCkKIAogICAgICAgICBpZiBzZXJ2ZXIgaXMgTm9u ZToKQEAgLTY2Myw5ICs4NTAsNyBAQCBjbGFzcyBTZXJ2ZXJOb2RlKFBHQ2hpbGROb2RlVmlldyk6 CiAgICAgICAgICAgICAgICAgc3VjY2Vzcz0wLAogICAgICAgICAgICAgICAgIGVycm9ybXNnPXNl bGYubm90X2ZvdW5kX2Vycm9yX21zZygpCiAgICAgICAgICAgICApCi0KICAgICAgICAgc2cgPSBT ZXJ2ZXJHcm91cC5xdWVyeS5maWx0ZXJfYnkoCi0gICAgICAgICAgICB1c2VyX2lkPWN1cnJlbnRf dXNlci5pZCwKICAgICAgICAgICAgIGlkPXNlcnZlci5zZXJ2ZXJncm91cF9pZAogICAgICAgICAp LmZpcnN0KCkKIApAQCAtNjc3LDUwICs4NjIsNjEgQEAgY2xhc3MgU2VydmVyTm9kZShQR0NoaWxk Tm9kZVZpZXcpOgogCiAgICAgICAgIGlzX3NzbCA9IFRydWUgaWYgc2VydmVyLnNzbF9tb2RlIGlu IHNlbGYuU1NMX01PREVTIGVsc2UgRmFsc2UKIAotICAgICAgICByZXR1cm4gYWpheF9yZXNwb25z ZSgKLSAgICAgICAgICAgIHJlc3BvbnNlPXsKLSAgICAgICAgICAgICAgICAnaWQnOiBzZXJ2ZXIu aWQsCi0gICAgICAgICAgICAgICAgJ25hbWUnOiBzZXJ2ZXIubmFtZSwKLSAgICAgICAgICAgICAg ICAnaG9zdCc6IHNlcnZlci5ob3N0LAotICAgICAgICAgICAgICAgICdob3N0YWRkcic6IHNlcnZl ci5ob3N0YWRkciwKLSAgICAgICAgICAgICAgICAncG9ydCc6IHNlcnZlci5wb3J0LAotICAgICAg ICAgICAgICAgICdkYic6IHNlcnZlci5tYWludGVuYW5jZV9kYiwKLSAgICAgICAgICAgICAgICAn dXNlcm5hbWUnOiBzZXJ2ZXIudXNlcm5hbWUsCi0gICAgICAgICAgICAgICAgJ2dpZCc6IHN0cihz ZXJ2ZXIuc2VydmVyZ3JvdXBfaWQpLAotICAgICAgICAgICAgICAgICdncm91cC1uYW1lJzogc2cu bmFtZSwKLSAgICAgICAgICAgICAgICAnY29tbWVudCc6IHNlcnZlci5jb21tZW50LAotICAgICAg ICAgICAgICAgICdyb2xlJzogc2VydmVyLnJvbGUsCi0gICAgICAgICAgICAgICAgJ2Nvbm5lY3Rl ZCc6IGNvbm5lY3RlZCwKLSAgICAgICAgICAgICAgICAndmVyc2lvbic6IG1hbmFnZXIudmVyLAot ICAgICAgICAgICAgICAgICdzc2xtb2RlJzogc2VydmVyLnNzbF9tb2RlLAotICAgICAgICAgICAg ICAgICdzZXJ2ZXJfdHlwZSc6IG1hbmFnZXIuc2VydmVyX3R5cGUgaWYgY29ubmVjdGVkIGVsc2Ug J3BnJywKLSAgICAgICAgICAgICAgICAnYmdjb2xvcic6IHNlcnZlci5iZ2NvbG9yLAotICAgICAg ICAgICAgICAgICdmZ2NvbG9yJzogc2VydmVyLmZnY29sb3IsCi0gICAgICAgICAgICAgICAgJ2Ri X3Jlcyc6IHNlcnZlci5kYl9yZXMuc3BsaXQoJywnKSBpZiBzZXJ2ZXIuZGJfcmVzIGVsc2UgTm9u ZSwKLSAgICAgICAgICAgICAgICAncGFzc2ZpbGUnOiBzZXJ2ZXIucGFzc2ZpbGUgaWYgc2VydmVy LnBhc3NmaWxlIGVsc2UgTm9uZSwKLSAgICAgICAgICAgICAgICAnc3NsY2VydCc6IHNlcnZlci5z c2xjZXJ0IGlmIGlzX3NzbCBlbHNlIE5vbmUsCi0gICAgICAgICAgICAgICAgJ3NzbGtleSc6IHNl cnZlci5zc2xrZXkgaWYgaXNfc3NsIGVsc2UgTm9uZSwKLSAgICAgICAgICAgICAgICAnc3Nscm9v dGNlcnQnOiBzZXJ2ZXIuc3Nscm9vdGNlcnQgaWYgaXNfc3NsIGVsc2UgTm9uZSwKLSAgICAgICAg ICAgICAgICAnc3NsY3JsJzogc2VydmVyLnNzbGNybCBpZiBpc19zc2wgZWxzZSBOb25lLAotICAg ICAgICAgICAgICAgICdzc2xjb21wcmVzc2lvbic6IFRydWUgaWYgaXNfc3NsIGFuZCBzZXJ2ZXIu c3NsY29tcHJlc3Npb24KLSAgICAgICAgICAgICAgICBlbHNlIEZhbHNlLAotICAgICAgICAgICAg ICAgICdzZXJ2aWNlJzogc2VydmVyLnNlcnZpY2UgaWYgc2VydmVyLnNlcnZpY2UgZWxzZSBOb25l LAotICAgICAgICAgICAgICAgICdjb25uZWN0X3RpbWVvdXQnOgotICAgICAgICAgICAgICAgICAg ICBzZXJ2ZXIuY29ubmVjdF90aW1lb3V0IGlmIHNlcnZlci5jb25uZWN0X3RpbWVvdXQgZWxzZSAw LAotICAgICAgICAgICAgICAgICd1c2Vfc3NoX3R1bm5lbCc6IHNlcnZlci51c2Vfc3NoX3R1bm5l bAotICAgICAgICAgICAgICAgIGlmIHNlcnZlci51c2Vfc3NoX3R1bm5lbCBlbHNlIDAsCi0gICAg ICAgICAgICAgICAgJ3R1bm5lbF9ob3N0Jzogc2VydmVyLnR1bm5lbF9ob3N0IGlmIHNlcnZlci50 dW5uZWxfaG9zdAotICAgICAgICAgICAgICAgIGVsc2UgTm9uZSwKLSAgICAgICAgICAgICAgICAn dHVubmVsX3BvcnQnOiBzZXJ2ZXIudHVubmVsX3BvcnQgaWYgc2VydmVyLnR1bm5lbF9wb3J0Ci0g ICAgICAgICAgICAgICAgZWxzZSAyMiwKLSAgICAgICAgICAgICAgICAndHVubmVsX3VzZXJuYW1l Jzogc2VydmVyLnR1bm5lbF91c2VybmFtZQotICAgICAgICAgICAgICAgIGlmIHNlcnZlci50dW5u ZWxfdXNlcm5hbWUgZWxzZSBOb25lLAotICAgICAgICAgICAgICAgICd0dW5uZWxfaWRlbnRpdHlf ZmlsZSc6IHNlcnZlci50dW5uZWxfaWRlbnRpdHlfZmlsZQotICAgICAgICAgICAgICAgIGlmIHNl cnZlci50dW5uZWxfaWRlbnRpdHlfZmlsZSBlbHNlIE5vbmUsCi0gICAgICAgICAgICAgICAgJ3R1 bm5lbF9hdXRoZW50aWNhdGlvbic6IHNlcnZlci50dW5uZWxfYXV0aGVudGljYXRpb24KLSAgICAg ICAgICAgICAgICBpZiBzZXJ2ZXIudHVubmVsX2F1dGhlbnRpY2F0aW9uIGVsc2UgMAotICAgICAg ICAgICAgfQotICAgICAgICApCisgICAgICAgICMgaWYgc2VydmVyLnNoYXJlZCBhbmQgbm90IGN1 cnJlbnRfdXNlci5oYXNfcm9sZSgiQWRtaW5pc3RyYXRvciIpOgorICAgICAgICBpZiBzZXJ2ZXIu c2hhcmVkIGFuZCBzZXJ2ZXIudXNlcl9pZCAhPSBjdXJyZW50X3VzZXIuaWQ6CisgICAgICAgICAg ICBzaGFyZWRfc2VydmVyID0gU2VydmVyTW9kdWxlLmdldF9zaGFyZWRfc2VydmVyKHNlcnZlciwg Z2lkKQorICAgICAgICAgICAgc2VydmVyID0gU2VydmVyTW9kdWxlLmdldF9zaGFyZWRfc2VydmVy X3Byb3BlcnRpZXMoc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkX3NlcnZlcikKKworICAgICAgICByZXNw b25zZSA9IHsKKyAgICAgICAgICAgICdpZCc6IHNlcnZlci5pZCwKKyAgICAgICAgICAgICduYW1l Jzogc2VydmVyLm5hbWUsCisgICAgICAgICAgICAnc2VydmVyX293bmVyJzogc2VydmVyLnNlcnZl cl9vd25lciBpZiAoCisgICAgICAgICAgICAgICAgc2VydmVyLnNoYXJlZCBhbmQgbm90IGN1cnJl bnRfdXNlci5oYXNfcm9sZSgKKyAgICAgICAgICAgICAgICAgICAgIkFkbWluaXN0cmF0b3IiKSkg ZWxzZSBOb25lLAorICAgICAgICAgICAgJ3VzZXJfaWQnOiBzZXJ2ZXIudXNlcl9pZCwKKyAgICAg ICAgICAgICdob3N0Jzogc2VydmVyLmhvc3QsCisgICAgICAgICAgICAnaG9zdGFkZHInOiBzZXJ2 ZXIuaG9zdGFkZHIsCisgICAgICAgICAgICAncG9ydCc6IHNlcnZlci5wb3J0LAorICAgICAgICAg ICAgJ2RiJzogc2VydmVyLm1haW50ZW5hbmNlX2RiLAorICAgICAgICAgICAgJ3NoYXJlZCc6IHNl cnZlci5zaGFyZWQgaWYgY29uZmlnLlNFUlZFUl9NT0RFIGVsc2UgTm9uZSwKKyAgICAgICAgICAg ICd1c2VybmFtZSc6IHNlcnZlci51c2VybmFtZSwKKyAgICAgICAgICAgICdnaWQnOiBzdHIoc2Vy dmVyLnNlcnZlcmdyb3VwX2lkKSwKKyAgICAgICAgICAgICdncm91cC1uYW1lJzogc2cubmFtZSwK KyAgICAgICAgICAgICdjb21tZW50Jzogc2VydmVyLmNvbW1lbnQsCisgICAgICAgICAgICAncm9s ZSc6IHNlcnZlci5yb2xlLAorICAgICAgICAgICAgJ2Nvbm5lY3RlZCc6IGNvbm5lY3RlZCwKKyAg ICAgICAgICAgICd2ZXJzaW9uJzogbWFuYWdlci52ZXIsCisgICAgICAgICAgICAnc3NsbW9kZSc6 IHNlcnZlci5zc2xfbW9kZSwKKyAgICAgICAgICAgICdzZXJ2ZXJfdHlwZSc6IG1hbmFnZXIuc2Vy dmVyX3R5cGUgaWYgY29ubmVjdGVkIGVsc2UgJ3BnJywKKyAgICAgICAgICAgICdiZ2NvbG9yJzog c2VydmVyLmJnY29sb3IsCisgICAgICAgICAgICAnZmdjb2xvcic6IHNlcnZlci5mZ2NvbG9yLAor ICAgICAgICAgICAgJ2RiX3Jlcyc6IHNlcnZlci5kYl9yZXMuc3BsaXQoJywnKSBpZiBzZXJ2ZXIu ZGJfcmVzIGVsc2UgTm9uZSwKKyAgICAgICAgICAgICdwYXNzZmlsZSc6IHNlcnZlci5wYXNzZmls ZSBpZiBzZXJ2ZXIucGFzc2ZpbGUgZWxzZSBOb25lLAorICAgICAgICAgICAgJ3NzbGNlcnQnOiBz ZXJ2ZXIuc3NsY2VydCBpZiBpc19zc2wgZWxzZSBOb25lLAorICAgICAgICAgICAgJ3NzbGtleSc6 IHNlcnZlci5zc2xrZXkgaWYgaXNfc3NsIGVsc2UgTm9uZSwKKyAgICAgICAgICAgICdzc2xyb290 Y2VydCc6IHNlcnZlci5zc2xyb290Y2VydCBpZiBpc19zc2wgZWxzZSBOb25lLAorICAgICAgICAg ICAgJ3NzbGNybCc6IHNlcnZlci5zc2xjcmwgaWYgaXNfc3NsIGVsc2UgTm9uZSwKKyAgICAgICAg ICAgICdzc2xjb21wcmVzc2lvbic6IFRydWUgaWYgaXNfc3NsIGFuZCBzZXJ2ZXIuc3NsY29tcHJl c3Npb24KKyAgICAgICAgICAgIGVsc2UgRmFsc2UsCisgICAgICAgICAgICAnc2VydmljZSc6IHNl cnZlci5zZXJ2aWNlIGlmIHNlcnZlci5zZXJ2aWNlIGVsc2UgTm9uZSwKKyAgICAgICAgICAgICdj b25uZWN0X3RpbWVvdXQnOgorICAgICAgICAgICAgICAgIHNlcnZlci5jb25uZWN0X3RpbWVvdXQg aWYgc2VydmVyLmNvbm5lY3RfdGltZW91dCBlbHNlIDAsCisgICAgICAgICAgICAndXNlX3NzaF90 dW5uZWwnOiBzZXJ2ZXIudXNlX3NzaF90dW5uZWwKKyAgICAgICAgICAgIGlmIHNlcnZlci51c2Vf c3NoX3R1bm5lbCBlbHNlIDAsCisgICAgICAgICAgICAndHVubmVsX2hvc3QnOiBzZXJ2ZXIudHVu bmVsX2hvc3QgaWYgc2VydmVyLnR1bm5lbF9ob3N0CisgICAgICAgICAgICBlbHNlIE5vbmUsCisg ICAgICAgICAgICAndHVubmVsX3BvcnQnOiBzZXJ2ZXIudHVubmVsX3BvcnQgaWYgc2VydmVyLnR1 bm5lbF9wb3J0CisgICAgICAgICAgICBlbHNlIDIyLAorICAgICAgICAgICAgJ3R1bm5lbF91c2Vy bmFtZSc6IHNlcnZlci50dW5uZWxfdXNlcm5hbWUKKyAgICAgICAgICAgIGlmIHNlcnZlci50dW5u ZWxfdXNlcm5hbWUgZWxzZSBOb25lLAorICAgICAgICAgICAgJ3R1bm5lbF9pZGVudGl0eV9maWxl Jzogc2VydmVyLnR1bm5lbF9pZGVudGl0eV9maWxlCisgICAgICAgICAgICBpZiBzZXJ2ZXIudHVu bmVsX2lkZW50aXR5X2ZpbGUgZWxzZSBOb25lLAorICAgICAgICAgICAgJ3R1bm5lbF9hdXRoZW50 aWNhdGlvbic6IHNlcnZlci50dW5uZWxfYXV0aGVudGljYXRpb24KKyAgICAgICAgICAgIGlmIHNl cnZlci50dW5uZWxfYXV0aGVudGljYXRpb24gZWxzZSAwCisgICAgICAgIH0KKworICAgICAgICBy ZXR1cm4gYWpheF9yZXNwb25zZShyZXNwb25zZSkKIAogICAgIEBsb2dpbl9yZXF1aXJlZAogICAg IGRlZiBjcmVhdGUoc2VsZiwgZ2lkKToKQEAgLTgwMiwxMSArOTk4LDExIEBAIGNsYXNzIFNlcnZl ck5vZGUoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgICAgICB0dW5uZWxfcG9ydD1kYXRh LmdldCgndHVubmVsX3BvcnQnLCAyMiksCiAgICAgICAgICAgICAgICAgdHVubmVsX3VzZXJuYW1l PWRhdGEuZ2V0KCd0dW5uZWxfdXNlcm5hbWUnLCBOb25lKSwKICAgICAgICAgICAgICAgICB0dW5u ZWxfYXV0aGVudGljYXRpb249ZGF0YS5nZXQoJ3R1bm5lbF9hdXRoZW50aWNhdGlvbicsIDApLAot ICAgICAgICAgICAgICAgIHR1bm5lbF9pZGVudGl0eV9maWxlPWRhdGEuZ2V0KCd0dW5uZWxfaWRl bnRpdHlfZmlsZScsIE5vbmUpCisgICAgICAgICAgICAgICAgdHVubmVsX2lkZW50aXR5X2ZpbGU9 ZGF0YS5nZXQoJ3R1bm5lbF9pZGVudGl0eV9maWxlJywgTm9uZSksCisgICAgICAgICAgICAgICAg c2hhcmVkPWRhdGEuZ2V0KCdzaGFyZWQnLCBOb25lKQogICAgICAgICAgICAgKQogICAgICAgICAg ICAgZGIuc2Vzc2lvbi5hZGQoc2VydmVyKQogICAgICAgICAgICAgZGIuc2Vzc2lvbi5jb21taXQo KQotCiAgICAgICAgICAgICBjb25uZWN0ZWQgPSBGYWxzZQogICAgICAgICAgICAgdXNlciA9IE5v bmUKICAgICAgICAgICAgIG1hbmFnZXIgPSBOb25lCkBAIC0xMDA2LDkgKzEyMDIsMjIgQEAgY2xh c3MgU2VydmVyTm9kZShQR0NoaWxkTm9kZVZpZXcpOgogCiAgICAgICAgICMgRmV0Y2ggU2VydmVy IERldGFpbHMKICAgICAgICAgc2VydmVyID0gU2VydmVyLnF1ZXJ5LmZpbHRlcl9ieShpZD1zaWQp LmZpcnN0KCkKKyAgICAgICAgc2hhcmVkX3NlcnZlciA9IE5vbmUKKyAgICAgICAgaWYgc2VydmVy LnNoYXJlZCBhbmQgc2VydmVyLnVzZXJfaWQgIT0gY3VycmVudF91c2VyLmlkOgorICAgICAgICAg ICAgc2hhcmVkX3NlcnZlciA9IFNlcnZlck1vZHVsZS5nZXRfc2hhcmVkX3NlcnZlcihzZXJ2ZXIs IGdpZCkKKyAgICAgICAgICAgIHNlcnZlciA9IFNlcnZlck1vZHVsZS5nZXRfc2hhcmVkX3NlcnZl cl9wcm9wZXJ0aWVzKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZF9zZXJ2ZXIpCiAgICAgICAgIGlmIHNl cnZlciBpcyBOb25lOgogICAgICAgICAgICAgcmV0dXJuIGJhZF9yZXF1ZXN0KHNlbGYubm90X2Zv dW5kX2Vycm9yX21zZygpKQogCisgICAgICAgICMgUmV0dXJuIGlmIHVzZXJuYW1lIGlzIGJsYW5r CisgICAgICAgIGlmIHNlcnZlci51c2VybmFtZSBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJu IG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwLAorICAgICAg ICAgICAgICAgIHN1Y2Nlc3M9MCwKKyAgICAgICAgICAgICAgICBlcnJvcm1zZz1nZXR0ZXh0KAor ICAgICAgICAgICAgICAgICAgICB1IlBsZWFzZSBlbnRlciB0aGUgc2VydmVyIGRldGFpbHMgdG8g Y29ubmVjdCIpCisgICAgICAgICAgICApCiAgICAgICAgIGlmIGN1cnJlbnRfdXNlciBhbmQgaGFz YXR0cihjdXJyZW50X3VzZXIsICdpZCcpOgogICAgICAgICAgICAgIyBGZXRjaCBVc2VyIERldGFp bHMuCiAgICAgICAgICAgICB1c2VyID0gVXNlci5xdWVyeS5maWx0ZXJfYnkoaWQ9Y3VycmVudF91 c2VyLmlkKS5maXJzdCgpCkBAIC0xMDYzLDcgKzEyNzIsNiBAQCBjbGFzcyBTZXJ2ZXJOb2RlKFBH Q2hpbGROb2RlVmlldyk6CiAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgog ICAgICAgICAgICAgICAgICAgICBjdXJyZW50X2FwcC5sb2dnZXIuZXhjZXB0aW9uKGUpCiAgICAg ICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3Ry KGUpKQotCiAgICAgICAgIGlmICdwYXNzd29yZCcgbm90IGluIGRhdGE6CiAgICAgICAgICAgICBj b25uX3Bhc3N3ZCA9IGdldGF0dHIoY29ubiwgJ3Bhc3N3b3JkJywgTm9uZSkKICAgICAgICAgICAg IGlmIGNvbm5fcGFzc3dkIGlzIE5vbmUgYW5kIG5vdCBzZXJ2ZXIuc2F2ZV9wYXNzd29yZCBhbmQg XApAQCAtMTEyNSwxMCArMTMzMywxOCBAQCBjbGFzcyBTZXJ2ZXJOb2RlKFBHQ2hpbGROb2RlVmll dyk6CiAgICAgICAgICAgICAgICAgICAgICMgZXZlcnkgdGltZSB1c2VyIHRyeSB0byBjb25uZWN0 CiAgICAgICAgICAgICAgICAgICAgICMgMSBpcyBUcnVlIGluIFNRTGl0ZSBhcyBubyBib29sZWFu IHR5cGUKICAgICAgICAgICAgICAgICAgICAgc2V0YXR0cihzZXJ2ZXIsICdzYXZlX3Bhc3N3b3Jk JywgMSkKKyAgICAgICAgICAgICAgICAgICAgaWYgc2VydmVyLnNoYXJlZCBhbmQgc2VydmVyLnVz ZXJfaWQgIT0gY3VycmVudF91c2VyLmlkOgorICAgICAgICAgICAgICAgICAgICAgICAgc2V0YXR0 cihzaGFyZWRfc2VydmVyLCAnc2F2ZV9wYXNzd29yZCcsIDEpCisgICAgICAgICAgICAgICAgICAg IGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRhdHRyKHNlcnZlciwgJ3NhdmVfcGFz c3dvcmQnLCAxKQorCiAgICAgICAgICAgICAgICAgICAgICMgU2F2ZSB0aGUgZW5jcnlwdGVkIHBh c3N3b3JkIHVzaW5nIHRoZSB1c2VyJ3MgbG9naW4KICAgICAgICAgICAgICAgICAgICAgIyBwYXNz d29yZCBrZXksIGlmIHRoZXJlIGlzIGFueSBwYXNzd29yZCB0byBzYXZlCiAgICAgICAgICAgICAg ICAgICAgIGlmIHBhc3N3b3JkOgotICAgICAgICAgICAgICAgICAgICAgICAgc2V0YXR0cihzZXJ2 ZXIsICdwYXNzd29yZCcsIHBhc3N3b3JkKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2Vy dmVyLnNoYXJlZCBhbmQgc2VydmVyLnVzZXJfaWQgIT0gY3VycmVudF91c2VyLmlkOgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNldGF0dHIoc2hhcmVkX3NlcnZlciwgJ3Bhc3N3b3JkJywg cGFzc3dvcmQpCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNldGF0dHIoc2VydmVyLCAncGFzc3dvcmQnLCBwYXNzd29yZCkKICAgICAg ICAgICAgICAgICAgICAgZGIuc2Vzc2lvbi5jb21taXQoKQogICAgICAgICAgICAgICAgIGV4Y2Vw dCBFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgICAgICAgICAgIyBSZWxlYXNlIENvbm5lY3Rp b24KQEAgLTE1NjAsMjEgKzE3NzYsMzkgQEAgY2xhc3MgU2VydmVyTm9kZShQR0NoaWxkTm9kZVZp ZXcpOgogICAgICAgICA6cmV0dXJuOgogICAgICAgICAiIiIKICAgICAgICAgdHJ5OgotICAgICAg ICAgICAgc2VydmVyID0gU2VydmVyLnF1ZXJ5LmZpbHRlcl9ieSgKLSAgICAgICAgICAgICAgICB1 c2VyX2lkPWN1cnJlbnRfdXNlci5pZCwgaWQ9c2lkCi0gICAgICAgICAgICApLmZpcnN0KCkKLQor ICAgICAgICAgICAgc2VydmVyID0gU2VydmVyLnF1ZXJ5LmZpbHRlcl9ieShpZD1zaWQpLmZpcnN0 KCkKKyAgICAgICAgICAgIHNoYXJlZF9zZXJ2ZXIgPSBOb25lCiAgICAgICAgICAgICBpZiBzZXJ2 ZXIgaXMgTm9uZToKICAgICAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAog ICAgICAgICAgICAgICAgICAgICBzdWNjZXNzPTAsCiAgICAgICAgICAgICAgICAgICAgIGluZm89 c2VsZi5ub3RfZm91bmRfZXJyb3JfbXNnKCkKICAgICAgICAgICAgICAgICApCiAKLSAgICAgICAg ICAgIHNldGF0dHIoc2VydmVyLCAncGFzc3dvcmQnLCBOb25lKQorICAgICAgICAgICAgaWYgc2Vy dmVyLnNoYXJlZCBhbmQgc2VydmVyLnVzZXJfaWQgIT0gY3VycmVudF91c2VyLmlkOgorICAgICAg ICAgICAgICAgIHNoYXJlZF9zZXJ2ZXIgPSBTaGFyZWRTZXJ2ZXIucXVlcnkuZmlsdGVyX2J5KAor ICAgICAgICAgICAgICAgICAgICBuYW1lPXNlcnZlci5uYW1lLCB1c2VyX2lkPWN1cnJlbnRfdXNl ci5pZCwKKyAgICAgICAgICAgICAgICAgICAgc2VydmVyZ3JvdXBfaWQ9Z2lkKS5maXJzdCgpCisK KyAgICAgICAgICAgICAgICBpZiBzaGFyZWRfc2VydmVyIGlzIE5vbmU6CisgICAgICAgICAgICAg ICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgICAg ICBzdWNjZXNzPTAsCisgICAgICAgICAgICAgICAgICAgICAgICBpbmZvPWdldHRleHQoIkNvdWxk IG5vdCBmaW5kIHRoZSByZXF1aXJlZCBzZXJ2ZXIuIikKKyAgICAgICAgICAgICAgICAgICAgKQor ICAgICAgICAgICAgICAgIHNlcnZlciA9IFNlcnZlck1vZHVsZS4gXAorICAgICAgICAgICAgICAg ICAgICBnZXRfc2hhcmVkX3NlcnZlcl9wcm9wZXJ0aWVzKHNlcnZlciwgc2hhcmVkX3NlcnZlcikK KworICAgICAgICAgICAgaWYgc2VydmVyLnNoYXJlZCBhbmQgc2VydmVyLnVzZXJfaWQgIT0gY3Vy cmVudF91c2VyLmlkOgorICAgICAgICAgICAgICAgIHNldGF0dHIoc2hhcmVkX3NlcnZlciwgJ3Nh dmVfcGFzc3dvcmQnLCBOb25lKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBz ZXRhdHRyKHNlcnZlciwgJ3NhdmVfcGFzc3dvcmQnLCBOb25lKQorCiAgICAgICAgICAgICAjIElm IHBhc3N3b3JkIHdhcyBzYXZlZCB0aGVuIGNsZWFyIHRoZSBmbGFnIGFsc28KICAgICAgICAgICAg ICMgMCBpcyBGYWxzZSBpbiBTUUxpdGUgZGIKICAgICAgICAgICAgIGlmIHNlcnZlci5zYXZlX3Bh c3N3b3JkOgotICAgICAgICAgICAgICAgIHNldGF0dHIoc2VydmVyLCAnc2F2ZV9wYXNzd29yZCcs IDApCisgICAgICAgICAgICAgICAgaWYgc2VydmVyLnNoYXJlZCBhbmQgc2VydmVyLnVzZXJfaWQg IT0gY3VycmVudF91c2VyLmlkOgorICAgICAgICAgICAgICAgICAgICBzZXRhdHRyKHNoYXJlZF9z ZXJ2ZXIsICdzYXZlX3Bhc3N3b3JkJywgMCkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgICAgICAgICBzZXRhdHRyKHNlcnZlciwgJ3NhdmVfcGFzc3dvcmQnLCAwKQogICAgICAg ICAgICAgZGIuc2Vzc2lvbi5jb21taXQoKQogICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6 CiAgICAgICAgICAgICBjdXJyZW50X2FwcC5sb2dnZXIuZXJyb3IoCkBAIC0xNTk5LDEwICsxODMz LDcgQEAgY2xhc3MgU2VydmVyTm9kZShQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICA6cmV0dXJu OgogICAgICAgICAiIiIKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VydmVyID0gU2VydmVy LnF1ZXJ5LmZpbHRlcl9ieSgKLSAgICAgICAgICAgICAgICB1c2VyX2lkPWN1cnJlbnRfdXNlci5p ZCwgaWQ9c2lkCi0gICAgICAgICAgICApLmZpcnN0KCkKLQorICAgICAgICAgICAgc2VydmVyID0g U2VydmVyLnF1ZXJ5LmZpbHRlcl9ieShpZD1zaWQpLmZpcnN0KCkKICAgICAgICAgICAgIGlmIHNl cnZlciBpcyBOb25lOgogICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2Uo CiAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MCwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3N0YXRpYy9pbWcvc2hhcmVkc2VydmVyYmFk LnN2ZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3N0YXRpYy9p bWcvc2hhcmVkc2VydmVyYmFkLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAuLjQ0NTUwODlhYwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL3N0YXRpYy9pbWcvc2hhcmVkc2VydmVyYmFkLnN2ZwpAQCAtMCww ICsxLDQ1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBH ZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI0LjIuMiwgU1ZHIEV4cG9ydCBQbHVnLUluIC4g U1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJM YXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJo dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKKwkgdmlld0JveD0i MCAwIDE2IDE2IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxNiAxNjsiIHhtbDpz cGFjZT0icHJlc2VydmUiPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKwkuc3Qwe2ZpbGw6I0Yy RjJGMjt9CisJLnN0MXtmaWxsOiM5QkE1QjA7fQorCS5zdDJ7ZmlsbDpub25lO3N0cm9rZTojOUJB NUIwO3N0cm9rZS13aWR0aDowLjc1O3N0cm9rZS1taXRlcmxpbWl0OjE7fQorCS5zdDN7ZmlsbDoj RjdGN0Y3O30KKwkuc3Q0e2ZpbGw6IzM1NEE1Rjt9CisJLnN0NXtmaWxsOm5vbmU7c3Ryb2tlOiNE MDAyMUI7c3Ryb2tlLXdpZHRoOjEuNTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpv aW46cm91bmQ7fQorPC9zdHlsZT4KKzxnPgorCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik02LjcsMi4x aDQuNmMwLjYsMCwxLjEsMC41LDEuMSwxLjF2MC44YzAsMC42LTAuNSwxLjEtMS4xLDEuMUg2Ljdj LTAuNiwwLTEuMS0wLjUtMS4xLTEuMVYzLjIKKwkJQzUuNiwyLjYsNi4xLDIuMSw2LjcsMi4xeiIv PgorCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xMS4zLDIuNWMwLjQsMCwwLjgsMC4zLDAuOCwwLjh2 MC44YzAsMC40LTAuMywwLjgtMC44LDAuOEg2LjdDNi4zLDQuOCw2LDQuNSw2LDQuMVYzLjIKKwkJ YzAtMC40LDAuMy0wLjcsMC44LTAuN0gxMS4zIE0xMS4zLDEuN0g2LjdjLTAuOCwwLTEuNSwwLjct MS41LDEuNXYwLjhjMCwwLjgsMC43LDEuNSwxLjUsMS41aDQuNmMwLjgsMCwxLjUtMC43LDEuNS0x LjVWMy4yCisJCUMxMi44LDIuNCwxMi4xLDEuNywxMS4zLDEuN0wxMS4zLDEuN3oiLz4KKwk8bGlu ZSBjbGFzcz0ic3QyIiB4MT0iOC45IiB5MT0iMy42IiB4Mj0iNi44IiB5Mj0iMy42Ii8+CisJPHBh dGggY2xhc3M9InN0MCIgZD0iTTYuNyw1LjJoNC42YzAuNiwwLDEuMSwwLjUsMS4xLDEuMXYwLjhj MCwwLjYtMC41LDEuMS0xLjEsMS4xSDYuN2MtMC42LDAtMS4xLTAuNS0xLjEtMS4xVjYuMworCQlD NS42LDUuNyw2LjEsNS4yLDYuNyw1LjJ6Ii8+CisJPHBhdGggY2xhc3M9InN0MSIgZD0iTTExLjMs NS42YzAuNCwwLDAuOCwwLjMsMC44LDAuOHYwLjhjMCwwLjQtMC4zLDAuOC0wLjgsMC44SDYuN0M2 LjMsNy45LDYsNy42LDYsNy4xVjYuMworCQljMC0wLjQsMC4zLTAuNywwLjgtMC43SDExLjMgTTEx LjMsNC44SDYuN2MtMC44LDAtMS41LDAuNy0xLjUsMS41djAuOGMwLDAuOCwwLjcsMS41LDEuNSwx LjVoNC42YzAuOCwwLDEuNS0wLjcsMS41LTEuNVY2LjMKKwkJQzEyLjgsNS41LDEyLjEsNC44LDEx LjMsNC44TDExLjMsNC44eiIvPgorCTxsaW5lIGNsYXNzPSJzdDIiIHgxPSI4LjkiIHkxPSI2Ljci IHgyPSI2LjgiIHkyPSI2LjciLz4KKwk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNi43LDguM2g0LjZj MC42LDAsMS4xLDAuNSwxLjEsMS4xdjAuOWMwLDAuNi0wLjUsMS4xLTEuMSwxLjFjMCwwLDAsMCww LDBINi43Yy0wLjYsMC0xLjEtMC41LTEuMS0xLjFsMCwwCisJCVY5LjRDNS42LDguOCw2LjEsOC4z LDYuNyw4LjNDNi43LDguMyw2LjcsOC4zLDYuNyw4LjN6Ii8+CisJPHBhdGggY2xhc3M9InN0MSIg ZD0iTTExLjMsOC43YzAuNCwwLDAuOCwwLjMsMC44LDAuOHYwLjhjMCwwLjQtMC4zLDAuOC0wLjgs MC44SDYuN0M2LjMsMTEsNiwxMC43LDYsMTAuM1Y5LjRDNiw5LDYuMyw4LjcsNi43LDguNworCQlI MTEuMyBNMTEuMyw3LjlINi43Yy0wLjgsMC0xLjUsMC43LTEuNSwxLjV2MC44YzAsMC44LDAuNywx LjUsMS41LDEuNWg0LjZjMC44LDAsMS41LTAuNywxLjUtMS41VjkuNEMxMi44LDguNiwxMi4xLDcu OSwxMS4zLDcuOXoKKwkJIi8+CisJPGxpbmUgY2xhc3M9InN0MiIgeDE9IjguOSIgeTE9IjkuOCIg eDI9IjYuOCIgeTI9IjkuOCIvPgorPC9nPgorPHBhdGggY2xhc3M9InN0MyIgZD0iTTExLjYsMTAu NWMtMC42LDAuMy0wLjgsMC4xLTEuMS0wLjJjLTAuMS0wLjItMC4zLTAuNC0wLjYtMC41TDcuMSw4 LjVDNi44LDguNCw2LjQsOC4zLDYuMSw4LjMKKwlDNS4xLDguMSw0LjIsOC40LDMuNCw5bC0xLjQs MS4xdjIuN2gwLjl2LTAuMmwzLjcsMS44YzAuNCwwLjIsMC43LDAuMywxLjEsMC4zYzAuMywwLDAu Ny0wLjEsMS0wLjJsNi4xLTIuNgorCWMwLjMtMC4xLDAuNi0wLjQsMC43LTAuN2MwLjEtMC4zLDAu MS0wLjcsMC0xYy0wLjMtMC42LTEuMS0wLjktMS43LTAuNmwtMC40LDAuMkwxMS42LDEwLjUiLz4K KzxwYXRoIGNsYXNzPSJzdDQiIGQ9Ik0xNS41LDEwLjJjLTAuMy0wLjYtMS4xLTAuOS0xLjctMC42 bC0wLjQsMC4ybC0xLjgsMC44bDAuMywwLjhsMS44LTAuOGwwLjQtMC4yYzAuMi0wLjEsMC41LDAs MC42LDAuMgorCWMwLjEsMC4xLDAuMSwwLjIsMCwwLjNjMCwwLjEtMC4xLDAuMi0wLjIsMC4ybC02 LjEsMi42Yy0wLjUsMC4yLTEsMC4yLTEuNCwwbC00LjEtMnYtMS4ybDEtMC44QzQuNSw5LjIsNS4y LDksNiw5LjEKKwljMC4zLDAsMC42LDAuMSwwLjgsMC4ybDIuOCwxLjJjMC4xLDAsMC4xLDAuMSww LjIsMC4yYzAuMSwwLjEsMC4xLDAuMywwLDAuNGMwLDAsMCwwLjEtMC4xLDAuMWMtMC4xLDAuMS0w LjMsMC4yLTAuNSwwLjFsLTIuMi0xCisJbC0wLjQsMC44bDIuMiwxYzAuMiwwLjEsMC40LDAuMSww LjUsMC4xYzAuNCwwLDAuNy0wLjIsMS0wLjRjMC4xLTAuMSwwLjItMC4yLDAuMi0wLjNjMC4yLTAu NCwwLjEtMC45LTAuMS0xLjIKKwljLTAuMS0wLjItMC4zLTAuNC0wLjYtMC41TDcuMSw4LjVDNi44 LDguNCw2LjQsOC4zLDYuMSw4LjNDNS4xLDguMSw0LjIsOC40LDMuNCw5TDIuOSw5LjRWOS4zYzAt MC42LTAuNC0xLTEtMUgxLjQKKwljLTAuNiwwLTEsMC40LTEsMXY0LjFjMCwwLjYsMC40LDEsMSwx aDAuNWMwLjYsMCwxLTAuNCwxLTF2LTAuNmgwdi0wLjJsMy43LDEuOGMwLjQsMC4yLDAuNywwLjMs MS4xLDAuM2MwLjMsMCwwLjctMC4xLDEtMC4yCisJbDYuMS0yLjZjMC4zLTAuMSwwLjYtMC40LDAu Ny0wLjdDMTUuNywxMC45LDE1LjcsMTAuNSwxNS41LDEwLjJ6IE0xLjksMTMuNEgxLjRWOS4zaDAu NUwxLjksMTMuNHoiLz4KKzxsaW5lIGNsYXNzPSJzdDUiIHgxPSIxMy44IiB5MT0iMS4zIiB4Mj0i MTAuOCIgeTI9IjQuMyIvPgorPGxpbmUgY2xhc3M9InN0NSIgeDE9IjEzLjgiIHkxPSI0LjMiIHgy PSIxMC44IiB5Mj0iMS4zIi8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3N0YXRpYy9qcy9zZXJ2ZXIuanMgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9zdGF0aWMvanMvc2VydmVyLmpzCmluZGV4 IDhjNDNhNTVmNy4uZjYxOTdlZGUyIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9zdGF0aWMvanMvc2VydmVyLmpzCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3N0YXRpYy9qcy9zZXJ2ZXIuanMKQEAgLTU2 LDcgKzU2LDEyIEBAIGRlZmluZSgncGdhZG1pbi5ub2RlLnNlcnZlcicsIFsKICAgICAgIHR5cGU6 ICdzZXJ2ZXInLAogICAgICAgZGlhbG9nSGVscDogdXJsX2ZvcignaGVscC5zdGF0aWMnLCB7J2Zp bGVuYW1lJzogJ3NlcnZlcl9kaWFsb2cuaHRtbCd9KSwKICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdT ZXJ2ZXInKSwKLSAgICAgIGNhbkRyb3A6IHRydWUsCisgICAgICBjYW5Ecm9wOiBmdW5jdGlvbihu b2RlKXsKKyAgICAgICAgdmFyIHNlcnZlck93bmVyID0gbm9kZS51c2VyX2lkOworICAgICAgICBp ZiAoc2VydmVyT3duZXIgIT0gY3VycmVudF91c2VyLmlkKQorICAgICAgICAgIHJldHVybiBmYWxz ZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICB9LAogICAgICAgZHJvcEFzUmVtb3ZlOiB0 cnVlLAogICAgICAgZHJvcFByaW9yaXR5OiA1LAogICAgICAgaGFzU3RhdGlzdGljczogdHJ1ZSwK QEAgLTc1LDEyICs4MCwxMiBAQCBkZWZpbmUoJ3BnYWRtaW4ubm9kZS5zZXJ2ZXInLCBbCiAgICAg ICAgICAgbmFtZTogJ2NyZWF0ZV9zZXJ2ZXJfb25fc2cnLCBub2RlOiAnc2VydmVyX2dyb3VwJywg bW9kdWxlOiB0aGlzLAogICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwg Y2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKICAgICAgICAgICBjYXRlZ29yeTogJ2Ny ZWF0ZScsIHByaW9yaXR5OiAxLCBsYWJlbDogZ2V0dGV4dCgnU2VydmVyLi4uJyksCi0gICAgICAg ICAgZGF0YToge2FjdGlvbjogJ2NyZWF0ZSd9LCBpY29uOiAnd2NUYWJJY29uIGljb24tc2VydmVy JywKKyAgICAgICAgICBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJ30sIGljb246ICd3Y1RhYkljb24g aWNvbi1zZXJ2ZXInLCBlbmFibGU6ICdjYW5DcmVhdGUnLAogICAgICAgICB9LHsKICAgICAgICAg ICBuYW1lOiAnY3JlYXRlX3NlcnZlcicsIG5vZGU6ICdzZXJ2ZXInLCBtb2R1bGU6IHRoaXMsCiAg ICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3df b2JqX3Byb3BlcnRpZXMnLAogICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6 IDMsIGxhYmVsOiBnZXR0ZXh0KCdTZXJ2ZXIuLi4nKSwKLSAgICAgICAgICBkYXRhOiB7YWN0aW9u OiAnY3JlYXRlJ30sIGljb246ICd3Y1RhYkljb24gaWNvbi1zZXJ2ZXInLAorICAgICAgICAgIGRh dGE6IHthY3Rpb246ICdjcmVhdGUnfSwgaWNvbjogJ3djVGFiSWNvbiBpY29uLXNlcnZlcicsIGVu YWJsZTogJ2NhbkNyZWF0ZScsCiAgICAgICAgIH0sewogICAgICAgICAgIG5hbWU6ICdjb25uZWN0 X3NlcnZlcicsIG5vZGU6ICdzZXJ2ZXInLCBtb2R1bGU6IHRoaXMsCiAgICAgICAgICAgYXBwbGll czogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ2Nvbm5lY3Rfc2VydmVyJywKQEAg LTE1MCw2ICsxNTUsMTMgQEAgZGVmaW5lKCdwZ2FkbWluLm5vZGUuc2VydmVyJywgWwogICAgICAg aXNfbm90X2Nvbm5lY3RlZDogZnVuY3Rpb24obm9kZSkgewogICAgICAgICByZXR1cm4gKG5vZGUg JiYgbm9kZS5jb25uZWN0ZWQgIT0gdHJ1ZSk7CiAgICAgICB9LAorICAgICAgY2FuQ3JlYXRlOiBm dW5jdGlvbihub2RlKXsKKyAgICAgICAgdmFyIHNlcnZlck93bmVyID0gbm9kZS51c2VyX2lkOwor ICAgICAgICBpZiAoc2VydmVyT3duZXIgPT0gY3VycmVudF91c2VyLmlkIHx8IF8uaXNVbmRlZmlu ZWQoc2VydmVyT3duZXIpKQorICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4g ZmFsc2U7CisKKyAgICAgIH0sCiAgICAgICBpc19jb25uZWN0ZWQ6IGZ1bmN0aW9uKG5vZGUpIHsK ICAgICAgICAgcmV0dXJuIChub2RlICYmIG5vZGUuY29ubmVjdGVkID09IHRydWUpOwogICAgICAg fSwKQEAgLTIyNiwyOCArMjM4LDI1IEBAIGRlZmluZSgncGdhZG1pbi5ub2RlLnNlcnZlcicsIFsK ICAgICAgICAgICAgICAgICAgICAgZCA9IHQuaXRlbURhdGEoaSk7CiAgICAgICAgICAgICAgICAg ICAgIHQucmVtb3ZlSWNvbihpKTsKICAgICAgICAgICAgICAgICAgICAgZC5jb25uZWN0ZWQgPSBm YWxzZTsKLSAgICAgICAgICAgICAgICAgICAgZC5pY29uID0gJ2ljb24tc2VydmVyLW5vdC1jb25u ZWN0ZWQnOworICAgICAgICAgICAgICAgICAgICBpZiAoZC5zaGFyZWQpeworICAgICAgICAgICAg ICAgICAgICAgIGQuaWNvbiA9ICdpY29uLXNoYXJlZC1zZXJ2ZXItbm90LWNvbm5lY3RlZCc7Cisg ICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgIGQuaWNvbiA9 ICdpY29uLXNlcnZlci1ub3QtY29ubmVjdGVkJzsKKyAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICB0LmFkZEljb24oaSwge2ljb246IGQuaWNvbn0pOwogICAgICAgICAg ICAgICAgICAgICBvYmouY2FsbGJhY2tzLnJlZnJlc2guYXBwbHkob2JqLCBbbnVsbCwgaV0pOwog ICAgICAgICAgICAgICAgICAgICBpZiAocGdCcm93c2VyLnNlcnZlckluZm8gJiYgZC5faWQgaW4g cGdCcm93c2VyLnNlcnZlckluZm8pIHsKICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgcGdC cm93c2VyLnNlcnZlckluZm9bZC5faWRdOwogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg ICAgICAgICAgICAgIHBnQnJvd3Nlci5lbmFibGVfZGlzYWJsZV9tZW51cyhpKTsKLSAgICAgICAg ICAgICAgICAgICAgLy8gVHJpZ2dlciBzZXJ2ZXIgZGlzY29ubmVjdCBldmVudAotICAgICAgICAg ICAgICAgICAgICBwZ0Jyb3dzZXIuRXZlbnRzLnRyaWdnZXIoCi0gICAgICAgICAgICAgICAgICAg ICAgJ3BnYWRtaW46c2VydmVyOmRpc2Nvbm5lY3QnLAotICAgICAgICAgICAgICAgICAgICAgIHtp dGVtOiBpLCBkYXRhOiBkfSwgZmFsc2UKLSAgICAgICAgICAgICAgICAgICAgKTsKLSAgICAgICAg ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAg ICB0cnkgewotICAgICAgICAgICAgICAgICAgICAgIEFsZXJ0aWZ5LmVycm9yKHJlcy5lcnJvcm1z Zyk7Ci0gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgICAg ICAgICBjb25zb2xlLndhcm4oZS5zdGFjayB8fCBlKTsKKyAgICAgICAgICAgICAgICAgICAgZWxz ZSB7CisgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAg IEFsZXJ0aWZ5LmVycm9yKHJlcy5lcnJvcm1zZyk7CisgICAgICAgICAgICAgICAgICAgICAgfSBj YXRjaCAoZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGUuc3RhY2sg fHwgZSk7CisgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgIHQu dW5sb2FkKGkpOwogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHQu dW5sb2FkKGkpOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0pCisgICAg ICAgICAgICAgICAgICB9fSkKICAgICAgICAgICAgICAgICAuZmFpbChmdW5jdGlvbih4aHIsIHN0 YXR1cywgZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgIEFsZXJ0aWZ5LnBnUmVzcEVycm9yTm90 aWZ5KHhociwgZXJyb3IpOwogICAgICAgICAgICAgICAgICAgdC51bmxvYWQoaSk7CkBAIC03NDUs MTIgKzc1NCwxNyBAQCBkZWZpbmUoJ3BnYWRtaW4ubm9kZS5zZXJ2ZXInLCBbCiAgICAgICAgICAg aWQ6ICdpZCcsIGxhYmVsOiBnZXR0ZXh0KCdJRCcpLCB0eXBlOiAnaW50JywgbW9kZTogWydwcm9w ZXJ0aWVzJ10sCiAgICAgICAgIH0sewogICAgICAgICAgIGlkOiAnbmFtZScsIGxhYmVsOiBnZXR0 ZXh0KCdOYW1lJyksIHR5cGU6ICd0ZXh0JywKLSAgICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMn LCAnZWRpdCcsICdjcmVhdGUnXSwKLSAgICAgICAgfSx7CisgICAgICAgICAgbW9kZTogWydwcm9w ZXJ0aWVzJywgJ2VkaXQnLCAnY3JlYXRlJ10sIGRpc2FibGVkOiAnaXNTaGFyZWQnLAorICAgICAg ICB9LAorICAgICAgICB7CiAgICAgICAgICAgaWQ6ICdnaWQnLCBsYWJlbDogZ2V0dGV4dCgnU2Vy dmVyIGdyb3VwJyksIHR5cGU6ICdpbnQnLAogICAgICAgICAgIGNvbnRyb2w6ICdub2RlLWxpc3Qt YnktaWQnLCBub2RlOiAnc2VydmVyX2dyb3VwJywKLSAgICAgICAgICBtb2RlOiBbJ2NyZWF0ZScs ICdlZGl0J10sIHNlbGVjdDI6IHthbGxvd0NsZWFyOiBmYWxzZX0sCi0gICAgICAgIH0seworICAg ICAgICAgIG1vZGU6IFsnY3JlYXRlJywgJ2VkaXQnXSwgc2VsZWN0Mjoge2FsbG93Q2xlYXI6IGZh bHNlfSwgdmlzaWJsZTogJ2lzVmlzaWJsZScsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg ICAgICBpZDogJ3NlcnZlcl9vd25lcicsIGxhYmVsOiBnZXR0ZXh0KCdTaGFyZWQgU2VydmVyIE93 bmVyJyksIHR5cGU6ICd0ZXh0JywgbW9kZTogWydwcm9wZXJ0aWVzJ10sCisgICAgICAgIH0sCisg ICAgICAgIHsKICAgICAgICAgICBpZDogJ3NlcnZlcl90eXBlJywgbGFiZWw6IGdldHRleHQoJ1Nl cnZlciB0eXBlJyksIHR5cGU6ICdvcHRpb25zJywKICAgICAgICAgICBtb2RlOiBbJ3Byb3BlcnRp ZXMnXSwgdmlzaWJsZTogJ2lzQ29ubmVjdGVkJywKICAgICAgICAgICAnb3B0aW9ucyc6IHN1cHBv cnRlZF9zZXJ2ZXJzLApAQCAtNzczLDExICs3ODcsMjcgQEAgZGVmaW5lKCdwZ2FkbWluLm5vZGUu c2VydmVyJywgWwogICAgICAgICAgIGlkOiAnY29ubmVjdF9ub3cnLCBjb250cm9sTGFiZWw6IGdl dHRleHQoJ0Nvbm5lY3Qgbm93PycpLCB0eXBlOiAnY2hlY2tib3gnLAogICAgICAgICAgIGdyb3Vw OiBudWxsLCBtb2RlOiBbJ2NyZWF0ZSddLAogICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3No YXJlZCcsIGxhYmVsOiBnZXR0ZXh0KCdTaGFyZWQgd2l0aCBhbGw/JyksIHR5cGU6ICdzd2l0Y2gn LAorICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcycsICdjcmVhdGUnLCAnZWRpdCddLCAnb3B0 aW9ucyc6IHsnc2l6ZSc6ICdtaW5pJ30sCisgICAgICAgICAgcmVhZG9ubHk6IGZ1bmN0aW9uKG1v ZGVsKXsKKyAgICAgICAgICAgIHZhciBzZXJ2ZXJPd25lciA9IG1vZGVsLmF0dHJpYnV0ZXMudXNl cl9pZDsKKyAgICAgICAgICAgIGlmICghbW9kZWwuaXNOZXcoKSAmJiBzZXJ2ZXJPd25lciAhPSBj dXJyZW50X3VzZXIuaWQpeworICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAg IH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICB9LHZpc2libGU6IGZ1bmN0 aW9uKCl7CisgICAgICAgICAgICBpZiAoY3VycmVudF91c2VyLmlzX2FkbWluICYmIHBnQWRtaW4u c2VydmVyX21vZGUgPT0gJ1RydWUnKQorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgIH0sCisgICAgICAgIH0sCisgICAgICAg IHsKICAgICAgICAgICBpZDogJ2NvbW1lbnQnLCBsYWJlbDogZ2V0dGV4dCgnQ29tbWVudHMnKSwg dHlwZTogJ211bHRpbGluZScsIGdyb3VwOiBudWxsLAogICAgICAgICAgIG1vZGU6IFsncHJvcGVy dGllcycsICdlZGl0JywgJ2NyZWF0ZSddLAogICAgICAgICB9LHsKICAgICAgICAgICBpZDogJ2hv c3QnLCBsYWJlbDogZ2V0dGV4dCgnSG9zdCBuYW1lL2FkZHJlc3MnKSwgdHlwZTogJ3RleHQnLCBn cm91cDogZ2V0dGV4dCgnQ29ubmVjdGlvbicpLAotICAgICAgICAgIG1vZGU6IFsncHJvcGVydGll cycsICdlZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcycsICdl ZGl0JywgJ2NyZWF0ZSddLGRpc2FibGVkOiAnaXNTaGFyZWQnLAogICAgICAgICAgIGNvbnRyb2w6 IEJhY2tmb3JtLklucHV0Q29udHJvbC5leHRlbmQoewogICAgICAgICAgICAgb25DaGFuZ2U6IGZ1 bmN0aW9uKCkgewogICAgICAgICAgICAgICBCYWNrZm9ybS5JbnB1dENvbnRyb2wucHJvdG90eXBl Lm9uQ2hhbmdlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CkBAIC03OTgsNyArODI4LDcgQEAgZGVm aW5lKCdwZ2FkbWluLm5vZGUuc2VydmVyJywgWwogICAgICAgICAgIH0pLAogICAgICAgICB9LHsK ICAgICAgICAgICBpZDogJ3BvcnQnLCBsYWJlbDogZ2V0dGV4dCgnUG9ydCcpLCB0eXBlOiAnaW50 JywgZ3JvdXA6IGdldHRleHQoJ0Nvbm5lY3Rpb24nKSwKLSAgICAgICAgICBtb2RlOiBbJ3Byb3Bl cnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwgbWluOiAxLCBtYXg6IDY1NTM1LAorICAgICAgICAg IG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0JywgJ2NyZWF0ZSddLCBtaW46IDEsIG1heDogNjU1 MzUsIGRpc2FibGVkOiAnaXNTaGFyZWQnLAogICAgICAgICAgIGNvbnRyb2w6IEJhY2tmb3JtLklu cHV0Q29udHJvbC5leHRlbmQoewogICAgICAgICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uKCkgewog ICAgICAgICAgICAgICBCYWNrZm9ybS5JbnB1dENvbnRyb2wucHJvdG90eXBlLm9uQ2hhbmdlLmFw cGx5KHRoaXMsIGFyZ3VtZW50cyk7CkBAIC04MTksNyArODQ5LDcgQEAgZGVmaW5lKCdwZ2FkbWlu Lm5vZGUuc2VydmVyJywgWwogICAgICAgICAgIH0pLAogICAgICAgICB9LHsKICAgICAgICAgICBp ZDogJ2RiJywgbGFiZWw6IGdldHRleHQoJ01haW50ZW5hbmNlIGRhdGFiYXNlJyksIHR5cGU6ICd0 ZXh0JywgZ3JvdXA6IGdldHRleHQoJ0Nvbm5lY3Rpb24nKSwKLSAgICAgICAgICBtb2RlOiBbJ3By b3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwgcmVhZG9ubHk6ICdpc0Nvbm5lY3RlZCcsCisg ICAgICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2VkaXQnLCAnY3JlYXRlJ10sIHJlYWRvbmx5 OiAnaXNDb25uZWN0ZWQnLGRpc2FibGVkOiAnaXNTaGFyZWQnLAogICAgICAgICB9LHsKICAgICAg ICAgICBpZDogJ3VzZXJuYW1lJywgbGFiZWw6IGdldHRleHQoJ1VzZXJuYW1lJyksIHR5cGU6ICd0 ZXh0JywgZ3JvdXA6IGdldHRleHQoJ0Nvbm5lY3Rpb24nKSwKICAgICAgICAgICBtb2RlOiBbJ3By b3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwKQEAgLTEwNTcsNiArMTA4NywyMSBAQCBkZWZp bmUoJ3BnYWRtaW4ubm9kZS5zZXJ2ZXInLCBbCiAgICAgICAgICAgbW9kZTogWydwcm9wZXJ0aWVz JywgJ2VkaXQnLCAnY3JlYXRlJ10sIHJlYWRvbmx5OiAnaXNDb25uZWN0ZWQnLAogICAgICAgICAg IG1pbjogMCwKICAgICAgICAgfV0sCisgICAgICAgIGlzVmlzaWJsZTogZnVuY3Rpb24obW9kZWwp eworICAgICAgICAgIHZhciBzZXJ2ZXJPd25lciA9IG1vZGVsLmF0dHJpYnV0ZXMudXNlcl9pZDsK KyAgICAgICAgICBpZiAoIW1vZGVsLmlzTmV3KCkgJiYgc2VydmVyT3duZXIgIT0gY3VycmVudF91 c2VyLmlkKXsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICB9CisgICAgICAg ICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgfSwKKyAgICAgICAgaXNTaGFyZWQ6IGZ1bmN0aW9u KG1vZGVsKXsKKyAgICAgICAgICAgIHZhciBzZXJ2ZXJPd25lciA9IG1vZGVsLmF0dHJpYnV0ZXMu dXNlcl9pZDsKKyAgICAgICAgICAgIGlmICghbW9kZWwuaXNOZXcoKSAmJiBzZXJ2ZXJPd25lciAh PSBjdXJyZW50X3VzZXIuaWQgJiYgbW9kZWwuYXR0cmlidXRlcy5zaGFyZWQpeworICAgICAgICAg ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICByZXR1cm4gZmFsc2U7 CisgICAgICAgIH0sCiAgICAgICAgIHZhbGlkYXRlOiBmdW5jdGlvbigpIHsKICAgICAgICAgICBj b25zdCB2YWxpZGF0ZU1vZGVsID0gbmV3IG1vZGVsVmFsaWRhdGlvbi5Nb2RlbFZhbGlkYXRpb24o dGhpcyk7CiAgICAgICAgICAgcmV0dXJuIHZhbGlkYXRlTW9kZWwudmFsaWRhdGUoKTsKQEAgLTEx NTMsNyArMTE5OCwzNiBAQCBkZWZpbmUoJ3BnYWRtaW4ubm9kZS5zZXJ2ZXInLCBbCiAgICAgICAg IH0KICAgICAgIH0sCiAgICAgfSk7CisKICAgICB2YXIgY29ubmVjdF90b19zZXJ2ZXIgPSBmdW5j dGlvbihvYmosIGRhdGEsIHRyZWUsIGl0ZW0sIHJlY29ubmVjdCkgeworICAgIC8vIE9wZW4gcHJv cGVydGllcyBkaWFsb2cgaW4gZWRpdCBtb2RlCisgICAgICBjb25zdCBzZWxlY3RlZFRyZWVOb2Rl ID0gdHJlZS5zZWxlY3RlZCgpLmxlbmd0aCA+IDAgPyB0cmVlLnNlbGVjdGVkKCkgOiB0cmVlLmZp cnN0KCk7CisgICAgICBjb25zdCBzZWxlY3RlZFRyZWVOb2RlRGF0YSA9IHNlbGVjdGVkVHJlZU5v ZGUgJiYgc2VsZWN0ZWRUcmVlTm9kZS5sZW5ndGggPT09IDEgPyB0cmVlLml0ZW1EYXRhKHNlbGVj dGVkVHJlZU5vZGUpIDogdW5kZWZpbmVkOworICAgICAgdmFyIHNlcnZlcl91cmwgPSBvYmouZ2Vu ZXJhdGVfdXJsKGl0ZW0sICdvYmonLCBkYXRhLCB0cnVlKTsKKyAgICAgIC8vIEZldGNoIHRoZSB1 cGRhdGVkIGRhdGEKKyAgICAgICQuZ2V0KHNlcnZlcl91cmwpCisgICAgICAgIC5kb25lKGZ1bmN0 aW9uKHJlcykgeworICAgICAgICAgIGlmIChyZXMuc2hhcmVkICYmIF8uaXNOdWxsKHJlcy51c2Vy bmFtZSkgJiYgZGF0YS51c2VyX2lkICE9IGN1cnJlbnRfdXNlci5pZCl7CisgICAgICAgICAgICBp ZiAoc2VsZWN0ZWRUcmVlTm9kZURhdGEuX3R5cGUgPT0gJ3NlcnZlcicpeworICAgICAgICAgICAg ICAgIHBnQWRtaW4uQnJvd3Nlci5Ob2RlLmNhbGxiYWNrcy5zaG93X29ial9wcm9wZXJ0aWVzLmNh bGwoCisgICAgICAgICAgICAgICAgICBwZ0FkbWluLkJyb3dzZXIuTm9kZXNbdHJlZS5pdGVtRGF0 YShpdGVtKS5fdHlwZV0sIHthY3Rpb246ICdlZGl0J30KKyAgICAgICAgICAgICAgICApOworICAg ICAgICAgICAgICAgIGRhdGEuaXNfY29ubmVjdGluZyA9IGZhbHNlOworICAgICAgICAgICAgICAg IHRyZWUudW5sb2FkKGl0ZW0pOworICAgICAgICAgICAgICAgIHRyZWUuc2V0SW5vZGUoaXRlbSk7 CisgICAgICAgICAgICAgICAgdHJlZS5hZGRJY29uKGl0ZW0sIHtpY29uOiAnaWNvbi1zaGFyZWQt c2VydmVyLW5vdC1jb25uZWN0ZWQnfSk7CisgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBk YXRhLmlzX2Nvbm5lY3RpbmcgPSBmYWxzZTsKKyAgICAgICAgICAgIHRyZWUudW5sb2FkKGl0ZW0p OworICAgICAgICAgICAgdHJlZS5zZXRJbm9kZShpdGVtKTsKKyAgICAgICAgICAgIHRyZWUuYWRk SWNvbihpdGVtLCB7aWNvbjogJ2ljb24tc2hhcmVkLXNlcnZlci1ub3QtY29ubmVjdGVkJ30pOwor ICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAgcmV0dXJuOworICAgICAgICB9KS5h bHdheXMoZnVuY3Rpb24oKXsKKyAgICAgICAgICBkYXRhLmlzX2Nvbm5lY3RpbmcgPSBmYWxzZTsK KyAgICAgICAgfSk7CisKICAgICAgIHZhciB3YXNDb25uZWN0ZWQgPSByZWNvbm5lY3QgfHwgZGF0 YS5jb25uZWN0ZWQsCiAgICAgICAgIG9uRmFpbHVyZSA9IGZ1bmN0aW9uKAogICAgICAgICAgIHho ciwgc3RhdHVzLCBlcnJvciwgX25vZGUsIF9kYXRhLCBfdHJlZSwgX2l0ZW0sIF93YXNDb25uZWN0 ZWQKQEAgLTExNjQsNyArMTIzOCwxMiBAQCBkZWZpbmUoJ3BnYWRtaW4ubm9kZS5zZXJ2ZXInLCBb CiAgICAgICAgICAgLy8gTGV0J3Mgbm90IGNoYW5nZSB0aGUgc3RhdHVzIG9mIHRoZSB0cmVlIG5v ZGUgbm93LgogICAgICAgICAgIGlmICghX3dhc0Nvbm5lY3RlZCkgewogICAgICAgICAgICAgdHJl ZS5zZXRJbm9kZShfaXRlbSk7Ci0gICAgICAgICAgICB0cmVlLmFkZEljb24oX2l0ZW0sIHtpY29u OiAnaWNvbi1zZXJ2ZXItbm90LWNvbm5lY3RlZCd9KTsKKyAgICAgICAgICAgIGlmIChkYXRhLnNo YXJlZCl7CisgICAgICAgICAgICAgIHRyZWUuYWRkSWNvbihfaXRlbSwge2ljb246ICdpY29uLXNo YXJlZC1zZXJ2ZXItbm90LWNvbm5lY3RlZCd9KTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAg ICAgICAgICB0cmVlLmFkZEljb24oX2l0ZW0sIHtpY29uOiAnaWNvbi1zZXJ2ZXItbm90LWNvbm5l Y3RlZCd9KTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgIH0KIAogICAgICAgICAgIEFsZXJ0 aWZ5LnBnTm90aWZpZXIoJ2Vycm9yJywgeGhyLCBlcnJvciwgZnVuY3Rpb24obXNnKSB7CkBAIC0x MzIxLDcgKzE0MDAsMTEgQEAgZGVmaW5lKCdwZ2FkbWluLm5vZGUuc2VydmVyJywgWwogICAgICAg ICBfdHJlZS51bmxvYWQoX2l0ZW0pOwogICAgICAgICBfdHJlZS5zZXRJbm9kZShfaXRlbSk7CiAg ICAgICAgIF90cmVlLnJlbW92ZUljb24oX2l0ZW0pOwotICAgICAgICBfdHJlZS5hZGRJY29uKF9p dGVtLCB7aWNvbjogJ2ljb24tc2VydmVyLW5vdC1jb25uZWN0ZWQnfSk7CisgICAgICAgIGlmIChf ZGF0YS5zaGFyZWQpeworICAgICAgICAgIF90cmVlLmFkZEljb24oX2l0ZW0sIHtpY29uOiAnaWNv bi1zaGFyZWQtc2VydmVyLW5vdC1jb25uZWN0ZWQnfSk7CisgICAgICAgIH1lbHNleworICAgICAg ICAgIF90cmVlLmFkZEljb24oX2l0ZW0sIHtpY29uOiAnaWNvbi1zZXJ2ZXItbm90LWNvbm5lY3Rl ZCd9KTsKKyAgICAgICAgfQogICAgICAgICBvYmoudHJpZ2dlcignY29ubmVjdDpjYW5jZWxsZWQn LCBkYXRhLl9pZCwgZGF0YS5kYiwgb2JqLCBfaXRlbSwgX2RhdGEpOwogICAgICAgICBwZ0Jyb3dz ZXIuRXZlbnRzLnRyaWdnZXIoCiAgICAgICAgICAgJ3BnYWRtaW46c2VydmVyOmNvbm5lY3Q6Y2Fu Y2VsbGVkJywgZGF0YS5faWQsIF9pdGVtLCBfZGF0YSwgb2JqCkBAIC0xMzg3LDcgKzE0NzAsMTEg QEAgZGVmaW5lKCdwZ2FkbWluLm5vZGUuc2VydmVyJywgWwogICAgICAgICB9KQogICAgICAgICAu ZmFpbChmdW5jdGlvbih4aHIsIHN0YXR1cywgZXJyb3IpIHsKICAgICAgICAgICB0cmVlLnNldElu b2RlKGl0ZW0pOwotICAgICAgICAgIHRyZWUuYWRkSWNvbihpdGVtLCB7aWNvbjogJ2ljb24tc2Vy dmVyLW5vdC1jb25uZWN0ZWQnfSk7CisgICAgICAgICAgaWYgKGRhdGEuc2hhcmVkKXsKKyAgICAg ICAgICAgIHRyZWUuYWRkSWNvbihpdGVtLCB7aWNvbjogJ2ljb24tc2hhcmVkLXNlcnZlci1ub3Qt Y29ubmVjdGVkJ30pOworICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgdHJlZS5hZGRJY29u KGl0ZW0sIHtpY29uOiAnaWNvbi1zZXJ2ZXItbm90LWNvbm5lY3RlZCd9KTsKKyAgICAgICAgICB9 CiAgICAgICAgICAgQWxlcnRpZnkucGdSZXNwRXJyb3JOb3RpZnkoeGhyLCBlcnJvcik7CiAgICAg ICAgIH0pOwogICAgIH07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy90ZW1wbGF0ZXMvY3NzL3NlcnZlcnMuY3NzIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVtcGxhdGVzL2Nzcy9zZXJ2ZXJzLmNzcwppbmRl eCA5M2M0NTM2ZDQuLjgyOWMyNzNhYSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVtcGxhdGVzL2Nzcy9zZXJ2ZXJzLmNzcworKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZW1wbGF0ZXMvY3NzL3NlcnZl cnMuY3NzCkBAIC0xNSwzICsxNSwyMSBAQAogICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICBo ZWlnaHQ6IDEuM2VtOwogfQorCisuaWNvbi1zaGFyZWQtc2VydmVyLW5vdC1jb25uZWN0ZWQgewor ICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3t7IHVybF9mb3IoJ05PREUtc2VydmVyLnN0YXRpYycs IGZpbGVuYW1lPSdpbWcvc2hhcmVkc2VydmVyYmFkLnN2ZycpIH19JykgIWltcG9ydGFudDsKKyAg YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKKyAgYmFja2dyb3VuZC1zaXplOiAyMHB4ICFp bXBvcnRhbnQ7CisgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsKKyAgdmVydGljYWwtYWxpZ246IG1p ZGRsZTsKKyAgaGVpZ2h0OiAxLjNlbTsKK30KKworLmljb24tc2hhcmVkLXNlcnZlci1ub3QtY29u bmVjdGVkIHsKKyAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCd7eyB1cmxfZm9yKCdOT0RFLXNlcnZl ci5zdGF0aWMnLCBmaWxlbmFtZT0naW1nL3NoYXJlZHNlcnZlcmJhZC5zdmcnKSB9fScpICFpbXBv cnRhbnQ7CisgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgIGJhY2tncm91bmQtc2l6 ZTogMjBweCAhaW1wb3J0YW50OworICBhbGlnbi1jb250ZW50OiBjZW50ZXI7CisgIHZlcnRpY2Fs LWFsaWduOiBtaWRkbGU7CisgIGhlaWdodDogMS4zZW07Cit9CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy9zZXJ2ZXJzX3Rlc3RfZGF0 YS5qc29uIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMv c2VydmVyc190ZXN0X2RhdGEuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAuLjExN2EyOTgyYgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3NlcnZlcnNfdGVzdF9kYXRhLmpzb24KQEAgLTAsMCAr MSw4NjIgQEAKK3sKKyAgImFkZF9zZXJ2ZXIiOiBbCisgICAgeworICAgICAgIm5hbWUiOiAiQWRk IHNlcnZlciB3aXRoIHNlcnZpY2UgaWQiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIv b2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAib3duZXJfc2Vy dmVyIjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJzZXJ2aWNlIjogIlRl c3REQiIKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAg Im1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0 dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiVGVz dCBkZWZhdWx0IHNlcnZlciB1cmwiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIvb2Jq LyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAib3duZXJfc2VydmVy IjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICB9LAorICAgICAgIm1vY2tpbmdf cmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3Rl ZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAor ICAgIHsKKyAgICAgICJuYW1lIjogIkFkZCBzZXJ2ZXIgd2l0aCBjb25uZWN0IHRpbWVvdXQiLAor ICAgICAgInVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIvb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVf dGVzdCI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAiY29ubmVjdF90aW1l b3V0IjogNQorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAg ICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0 YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJB ZGQgc2VydmVyIHVzaW5nIFNTSCB0dW5uZWwgd2l0aCBwYXNzd29yZCIsCisgICAgICAidXJsIjog Ii9icm93c2VyL3NlcnZlci9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwK KyAgICAgICJzc2hfdHVubmVsIjogdHJ1ZSwKKyAgICAgICJ3aXRoX3Bhc3N3b3JkIjogdHJ1ZSwK KyAgICAgICJzYXZlX3Bhc3N3b3JkIjogZmFsc2UsCisgICAgICAidGVzdF9kYXRhIjogeworICAg ICAgICAidXNlX3NzaF90dW5uZWwiOiAxLAorICAgICAgICAidHVubmVsX2hvc3QiOiAiMTI3LjAu MC4xIiwKKyAgICAgICAgInR1bm5lbF9wb3J0IjogMjIsCisgICAgICAgICJ0dW5uZWxfdXNlcm5h bWUiOiAidXNlciIsCisgICAgICAgICJ0dW5uZWxfYXV0aGVudGljYXRpb24iOiAxLAorICAgICAg ICAidHVubmVsX2lkZW50aXR5X2ZpbGUiOiAicGtleV9yc2EiCisgICAgICB9LAorICAgICAgIm1v Y2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJl eHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAg ICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkFkZCBzZXJ2ZXIgdXNpbmcgU1NIIHR1bm5lbCB3 aXRoIGlkZW50aXR5IGZpbGUiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIvb2JqLyIs CisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAic3NoX3R1bm5lbCI6IHRy dWUsCisgICAgICAid2l0aF9wYXNzd29yZCI6IGZhbHNlLAorICAgICAgInNhdmVfcGFzc3dvcmQi OiBmYWxzZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJ1c2Vfc3NoX3R1bm5lbCI6 IDEsCisgICAgICAgICJ0dW5uZWxfaG9zdCI6ICIxMjcuMC4wLjEiLAorICAgICAgICAidHVubmVs X3BvcnQiOiAyMiwKKyAgICAgICAgInR1bm5lbF91c2VybmFtZSI6ICJ1c2VyIiwKKyAgICAgICAg InR1bm5lbF9hdXRoZW50aWNhdGlvbiI6IDEsCisgICAgICAgICJ0dW5uZWxfaWRlbnRpdHlfZmls ZSI6ICJwa2V5X3JzYSIKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNl LAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAg ICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5h bWUiOiAiQWRkIHNlcnZlciB1c2luZyBTU0ggdHVubmVsIHdpdGggcGFzc3dvcmQgYW5kIHNhdmVk IGl0IiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL29iai8iLAorICAgICAgImlzX3Bv c2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgInNzaF90dW5uZWwiOiB0cnVlLAorICAgICAgIndp dGhfcGFzc3dvcmQiOiB0cnVlLAorICAgICAgInNhdmVfcGFzc3dvcmQiOiB0cnVlLAorICAgICAg InRlc3RfZGF0YSI6IHsKKyAgICAgICAgInVzZV9zc2hfdHVubmVsIjogMSwKKyAgICAgICAgInR1 bm5lbF9ob3N0IjogIjEyNy4wLjAuMSIsCisgICAgICAgICJ0dW5uZWxfcG9ydCI6IDIyLAorICAg ICAgICAidHVubmVsX3VzZXJuYW1lIjogInVzZXIiLAorICAgICAgICAidHVubmVsX2F1dGhlbnRp Y2F0aW9uIjogMCwKKyAgICAgICAgInR1bm5lbF9wYXNzd29yZCI6ICIxMjM0NTYiCisgICAgICB9 LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7 fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAK KyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkFkZCBzZXJ2ZXIgdXNpbmcg U1NIIHR1bm5lbCB3aXRoIGlkZW50aXR5IGZpbGUgYW5kIHNhdmUgdGhlIHBhc3N3b3JkIiwKKyAg ICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rl c3QiOiB0cnVlLAorICAgICAgInNzaF90dW5uZWwiOiB0cnVlLAorICAgICAgIndpdGhfcGFzc3dv cmQiOiBmYWxzZSwKKyAgICAgICJzYXZlX3Bhc3N3b3JkIjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2Rh dGEiOiB7CisgICAgICAgICJ1c2Vfc3NoX3R1bm5lbCI6IDEsCisgICAgICAgICJ0dW5uZWxfaG9z dCI6ICIxMjcuMC4wLjEiLAorICAgICAgICAidHVubmVsX3BvcnQiOiAyMiwKKyAgICAgICAgInR1 bm5lbF91c2VybmFtZSI6ICJ1c2VyIiwKKyAgICAgICAgInR1bm5lbF9hdXRoZW50aWNhdGlvbiI6 IDEsCisgICAgICAgICJ0dW5uZWxfaWRlbnRpdHlfZmlsZSI6ICJwa2V5X3JzYSIsCisgICAgICAg ICJ0dW5uZWxfcGFzc3dvcmQiOiAiMTIzNDU2IgorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3Jl cXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRf ZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAg ICB7CisgICAgICAibmFtZSI6ICJBZGQgc2VydmVyIHdpdGggcGFzc3dvcmQgYW5kIHNhdmUgcGFz c3dvcmQgdG8gdHJ1ZSIsCisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9vYmovIiwKKyAg ICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJ3aXRoX3B3ZCI6IHRydWUsCisg ICAgICAid2l0aF9zYXZlIjogdHJ1ZSwKKyAgICAgICJvd25lcl9zZXJ2ZXIiOiB0cnVlLAorICAg ICAgInRlc3RfZGF0YSI6IHsKKyAgICAgICAgInNlcnZpY2UiOiAiVGVzdERCIgorICAgICAgfSwK KyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30s CisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisg ICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJBZGQgc2VydmVyIHdpdGggcGFz c3dvcmQgYW5kIHNhdmUgcGFzc3dvcmQgdG8gZmFsc2UiLAorICAgICAgInVybCI6ICIvYnJvd3Nl ci9zZXJ2ZXIvb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAi d2l0aF9wd2QiOiB0cnVlLAorICAgICAgIndpdGhfc2F2ZSI6IGZhbHNlLAorICAgICAgIm93bmVy X3NlcnZlciI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAic2VydmljZSI6 ICJUZXN0REIiCisgICAgICB9LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAg ICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAi c3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjog IkFkZCBzZXJ2ZXIgd2l0aG91dCBwYXNzd29yZCBhbmQgc2F2ZSBwYXNzd29yZCB0byB0cnVlIiwK KyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZl X3Rlc3QiOiB0cnVlLAorICAgICAgIndpdGhfcHdkIjogZmFsc2UsCisgICAgICAid2l0aF9zYXZl IjogdHJ1ZSwKKyAgICAgICJvd25lcl9zZXJ2ZXIiOiB0cnVlLAorICAgICAgInRlc3RfZGF0YSI6 IHsKKyAgICAgICAgInNlcnZpY2UiOiAiVGVzdERCIgorICAgICAgfSwKKyAgICAgICJtb2NraW5n X3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0 ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwK KyAgICB7CisgICAgICAibmFtZSI6ICJBZGQgc2VydmVyIHdpdGggY29ubmVjdCBub3ciLAorICAg ICAgInVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIvb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVz dCI6IHRydWUsCisgICAgICAib3duZXJfc2VydmVyIjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEi OiB7CisgICAgICAgICJzZXJ2aWNlIjogIlRlc3REQiIKKyAgICAgIH0sCisgICAgICAibW9ja2lu Z19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVj dGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0K KyAgXSwKKyAgImlzX3Bhc3N3b3JkX3NhdmVkIjogWworICAgIHsKKyAgICAgICJuYW1lIjogIkNv bm5lY3Qgc2VydmVyIHdpdGggJ3NhdmUgcGFzc3dvcmQiLAorICAgICAgInVybCI6ICIvYnJvd3Nl ci9zZXJ2ZXIvY29ubmVjdC8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAg ICAgInRlc3RfZGF0YSI6IHsKKyAgICAgICAgImlzX3Bhc3N3b3JkX3NhdmVkIjogdHJ1ZQorICAg ICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRh Ijoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjog MjAwLAorICAgICAgICAibWVzc2FnZSI6ICJTZXJ2ZXIgY29ubmVjdGVkLiIKKyAgICAgIH0KKyAg ICB9CisgIF0sCisgICJnZXRfc2VydmVyIjogWworICAgIHsKKyAgICAgICJuYW1lIjogIkdldCBh IHNlcnZlciBVUkwiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIvb2JqLyIsCisgICAg ICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZh bHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7Cisg ICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAg Im5hbWUiOiAiUmVsb2FkIGEgc2VydmVyIGNvbmZpZ3VyYXRpb24iLAorICAgICAgInVybCI6ICIv YnJvd3Nlci9zZXJ2ZXIvcmVsb2FkLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUs CisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9 LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAor ICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiR2V0IGEgc2VydmVyIFVSTCB1 c2luZyB3cm9uZyBzZXJ2ZXIgaWQiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIvb2Jq LyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAiaW5jb3JyZWN0X3Nl cnZlcl9pZCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAg Im1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0 dXNfY29kZSI6IDQxMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiR2V0 IGEgc2VydmVyIE5vZGUgZGVwZW5kYW50cyIsCisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZl ci9kZXBlbmRlbnQvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJt b2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAi ZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9Cisg ICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJHZXQgYSBzZXJ2ZXIgTm9kZSBkZXBlbmRlbmN5 IiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL2RlcGVuZGVuY3kvIiwKKyAgICAgICJp c19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2Us CisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAg ICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFt ZSI6ICJHZXQgYSBzZXJ2ZXIgTm9kZSBzcWwiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zZXJ2 ZXIvc3FsLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2lu Z19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVj dGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0s CisgICAgeworICAgICAgIm5hbWUiOiAiR2V0IGEgc2VydmVyIE5vZGUgbXNxbCIsCisgICAgICAi dXJsIjogIi9icm93c2VyL3NlcnZlci9tc3FsLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6 IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0 YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6 IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiR2V0IGEgc2VydmVy IE5vZGUgc3RhdGlzdGljcyIsCisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9zdGF0cy8i LAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWly ZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRh IjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsK KyAgICAgICJuYW1lIjogIkdldCBhIHNlcnZlciBwZ3Bhc3MgZGV0YWlscyIsCisgICAgICAidXJs IjogIi9icm93c2VyL3NlcnZlci9jaGVja19wZ3Bhc3MvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90 ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9j a19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19j b2RlIjogNDEwCisgICAgICB9CisgICAgfQorICBdLAorICAiZ2V0X3NoYXJlZF9zZXJ2ZXIiOiBb CisgICAgeworICAgICAgIm5hbWUiOiAiR2V0IGEgc2hhcmVkIHNlcnZlciIsCisgICAgICAidXJs IjogIi9icm93c2VyL3NlcnZlci9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1 ZSwKKyAgICAgICJzaGFyZWQiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxz ZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAg ICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJu YW1lIjogIkdldCBhIGFsbCBzaGFyZWQgc2VydmVyIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIv c2VydmVyL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgInNo YXJlZCI6IHRydWUsCisgICAgICAibm9fc2VydmVyX2lkIjogdHJ1ZSwKKyAgICAgICJtb2NraW5n X3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0 ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwK KyAgICB7CisgICAgICAibmFtZSI6ICJHZXQgdGhlIGFsbCBhdmFpbGFibGUgc2hhcmVkIHNlcnZl ciIsCisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9vYmovIiwKKyAgICAgICJpc19wb3Np dGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJub19zZXJ2ZXJfaWQiOiB0cnVlLAorICAgICAgInNo YXJlZCI6IHRydWUsCisgICAgICAic2VydmVyX2xpc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdf cmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7CisgICAgICB9LAorICAgICAg ImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQor ICAgIH0KKyAgXSwKKyAgImdldF9hbGxfc2VydmVyIjogWworICAgIHsKKyAgICAgICJuYW1lIjog IkdldCB0aGUgYWxsIGNoaWxkcmVuIG9mIHNlcnZlciIsCisgICAgICAidXJsIjogIi9icm93c2Vy L3NlcnZlci9jaGlsZHJlbi8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAg ICAgImNoaWxkcmVuIjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisg ICAgICAibW9ja19kYXRhIjogeworICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogewor ICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAg ICJuYW1lIjogIkdldCB0aGUgYWxsIGF2YWlsYWJsZSBzZXJ2ZXJzIiwKKyAgICAgICJ1cmwiOiAi L2Jyb3dzZXIvc2VydmVyL25vZGVzLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUs CisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHsK KyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2Rl IjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJHZXQgdGhlIGFs bCBhdmFpbGFibGUgc2VydmVyIG9mIHNlcnZlciBncm91cCIsCisgICAgICAidXJsIjogIi9icm93 c2VyL3NlcnZlci9ub2Rlcy8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAg ICAgInNlcnZlcl9saXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2Us CisgICAgICAibW9ja19kYXRhIjogeworICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjog eworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAg ICAgICJuYW1lIjogIkdldCB0aGUgYWxsIGF2YWlsYWJsZSBzZXJ2ZXIgb2Ygc2VydmVyIGdyb3Vw IiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL25vZGVzLyIsCisgICAgICAiaXNfcG9z aXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAic2VydmVyX2xpc3QiOiB0cnVlLAorICAgICAgInNl cnZlcnMiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJt b2NrX2RhdGEiOiB7CisgICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAg ICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUi OiAiR2V0IHRoZSBhbGwgY29ubmVjdGVkIHNlcnZlcnMiLAorICAgICAgInVybCI6ICIvYnJvd3Nl ci9zZXJ2ZXIvbm9kZXMvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAg ICJzZXJ2ZXJfbGlzdCI6IHRydWUsCisgICAgICAic2VydmVycyI6IHRydWUsCisgICAgICAiY29u bmVjdGVkIjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAi bW9ja19kYXRhIjogeworICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAg ICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9CisgIF0sCisgICJjb25uZWN0X3Nl cnZlciI6IFsKKyAgICB7CisgICAgICAibmFtZSI6ICJHZXQgYSBzZXJ2ZXIgY29ubmVjdGlvbiIs CisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9jb25uZWN0LyIsCisgICAgICAiaXNfcG9z aXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAg ICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJz dGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAi Y29ubmVjdCB0byBhIHNlcnZlciB1c2luZyBwYXNzd29yZCIsCisgICAgICAidXJsIjogIi9icm93 c2VyL3NlcnZlci9jb25uZWN0LyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisg ICAgICAiY29ubmVjdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAor ICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAg ICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUi OiAiRGlzY29ubmVjdCBzZXJ2ZXIgdGVzdCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZl ci9jb25uZWN0LyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAiZGlz Y29ubmVjdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAg Im1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0 dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiRGlz Y29ubmVjdCBzZXJ2ZXIgd2hlbiB3cm9uZyBzZXJ2ZXIgaWQgcGFzc2VkIiwKKyAgICAgICJ1cmwi OiAiL2Jyb3dzZXIvc2VydmVyL2Nvbm5lY3QvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0Ijog dHJ1ZSwKKyAgICAgICJkaXNjb25uZWN0IjogdHJ1ZSwKKyAgICAgICJ3cm9uZ19zZXJ2ZXJfaWQi OiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2Rh dGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUi OiA0MDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIlJlbG9hZCBhIHNl cnZlciBjb25maWd1cmF0aW9uIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL3JlbG9h ZC8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVx dWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9k YXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAg IHsKKyAgICAgICJuYW1lIjogIkVycm9yIHdoaWxlIGNyZWF0aW5nIHNlcnZlciByZXN0b3JlIHBv aW50IiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL3Jlc3RvcmVfcG9pbnQvIiwKKyAg ICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJyZXN0b3JlX3BvaW50IjogdHJ1 ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJOYW1lZCByZXN0b3JlIHBvaW50IGNy ZWF0ZWQiOiAiUExBQ0VfSE9MREVSIgorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVk IjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6 IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICB9CisgICAgfQorICBdLAorICAi ZGVsZXRlX3NlcnZlciI6IFsKKyAgICB7CisgICAgICAibmFtZSI6ICJEZWxldGUgYSBzZXJ2ZXIg VVJMIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL29iai8iLAorICAgICAgImlzX3Bv c2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAg ICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAi c3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjog IkRpc2Nvbm5lY3Qgc2VydmVyIHRlc3QiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIv Y29ubmVjdC8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tp bmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBl Y3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9 LAorICAgIHsKKyAgICAgICJuYW1lIjogIkVycm9yIHdoaWxlIGZldGNoaW5nIGEgc2VydmVyIHRv IGRlbGV0ZSIsCisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9vYmovIiwKKyAgICAgICJp c19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IHRydWUs CisgICAgICAibW9ja19kYXRhIjogeworICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWlu LnV0aWxzLmRyaXZlci5wc3ljb3BnMi5jb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV9kaWN0 IiwKKyAgICAgICAgInJldHVybl92YWx1ZSI6ICIoVHJ1ZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2 ZXIgRXJyb3InKSIKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAg InN0YXR1c19jb2RlIjogNTAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6 ICJzZXJ2ZXIgbm90IGZvdW5kIHdoaWxlIGRlbGV0aW5nIGEgc2VydmVyIiwKKyAgICAgICJ1cmwi OiAiL2Jyb3dzZXIvc2VydmVyL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVl LAorICAgICAgImludmFsaWRfc2VydmVyX2lkIjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVp cmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0 YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNDEwCisgICAgICB9CisgICAgfQorICBdLAor ICAidXBkYXRlX3NlcnZlciI6IFsKKyAgICB7CisgICAgICAibmFtZSI6ICJ1cGRhdGUgYSBzZXJ2 ZXIgbmFtZSIsCisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9vYmovIiwKKyAgICAgICJp c19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJj b21tZW50IjogIlBMQUNFX0hPTERFUiIsCisgICAgICAgICJpZCI6ICJQTEFDRV9IT0xERVIiLAor ICAgICAgICAic3NsY29tcHJlc3Npb24iOiAxCisgICAgICB9LAorICAgICAgIm1vY2tpbmdfcmVx dWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9k YXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAg IHsKKyAgICAgICJuYW1lIjogInVwZGF0ZSBhIHNlcnZlciBkZXRhaWxzIHdpdGhvdXQgZGF0YSIs CisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2 ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7fSwKKyAgICAgICJtb2NraW5nX3Jl cXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRf ZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAg ICB7CisgICAgICAibmFtZSI6ICJVcGRhdGUgc2VydmVyIHdpdGggd3Jvbmcgc2VydmVyIGlkIiwK KyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZl X3Rlc3QiOiBmYWxzZSwKKyAgICAgICJjbGVhcl9zYXZlX3Bhc3N3b3JkIjogdHJ1ZSwKKyAgICAg ICJ3cm9uZ19zZXJ2ZXJfaWQiOiB0cnVlLAorICAgICAgInRlc3RfZGF0YSI6IHsKKyAgICAgICAg ImNvbW1lbnQiOiAiUExBQ0VfSE9MREVSIiwKKyAgICAgICAgImlkIjogIlBMQUNFX0hPTERFUiIK KyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tf ZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29k ZSI6IDQxMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiVXBkYXRlIHNl cnZlciB3aXRoIGluY29ycmVjdCBob3N0YWRkciIsCisgICAgICAidXJsIjogIi9icm93c2VyL3Nl cnZlci9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJ0ZXN0 X2RhdGEiOiB7CisgICAgICAgICJjb21tZW50IjogIlBMQUNFX0hPTERFUiIsCisgICAgICAgICJo b3N0YWRkciI6ICJQTEFDRV9IT0xERVIiLAorICAgICAgICAiZGJfcmVzIjogIlBMQUNFX0hPTERF UiIsCisgICAgICAgICJpZCI6ICJQTEFDRV9IT0xERVIiCisgICAgICB9LAorICAgICAgIm1vY2tp bmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBl Y3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiA0MDAKKyAgICAgIH0KKyAgICB9 LAorICAgIHsKKyAgICAgICJuYW1lIjogInVwZGF0ZSBhIHNlcnZlciAsIG1ha2Ugc2VydmVyIHNo YXJlZCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9vYmovIiwKKyAgICAgICJpc19w b3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJvd25lcl9zZXJ2ZXIiOiB0cnVlLAorICAgICAg InRlc3RfZGF0YSI6IHsKKyAgICAgICAgImNvbW1lbnQiOiAiUExBQ0VfSE9MREVSIiwKKyAgICAg ICAgImlkIjogIlBMQUNFX0hPTERFUiIsCisgICAgICAgICJzaGFyZWQiOiB0cnVlCisgICAgICB9 LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7 fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAK KyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkNsZWFyIHNhdmVkIHBhc3N3 b3JkIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL2NsZWFyX3NhdmVkX3Bhc3N3b3Jk LyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAiY2xlYXJfc2F2ZV9w YXNzd29yZCI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAiY29tbWVudCI6 ICJQTEFDRV9IT0xERVIiLAorICAgICAgICAiaWQiOiAiUExBQ0VfSE9MREVSIiwKKyAgICAgICAg ImlzX3Bhc3N3b3JkX3NhdmVkIjogZmFsc2UKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1 aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2Rh dGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAg eworICAgICAgIm5hbWUiOiAiQ2xlYXIgc2F2ZWQgcGFzc3dvcmQgd2l0aCB3cm9uZyBzZXJ2ZXIg aWQiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIvY2xlYXJfc2F2ZWRfcGFzc3dvcmQv IiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAiY2xlYXJfc2F2ZV9w YXNzd29yZCI6IHRydWUsCisgICAgICAid3Jvbmdfc2VydmVyX2lkIjogdHJ1ZSwKKyAgICAgICJ0 ZXN0X2RhdGEiOiB7CisgICAgICAgICJjb21tZW50IjogIlBMQUNFX0hPTERFUiIsCisgICAgICAg ICJpZCI6ICJQTEFDRV9IT0xERVIiLAorICAgICAgICAiaXNfcGFzc3dvcmRfc2F2ZWQiOiBmYWxz ZQorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9j a19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19j b2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJ3YWwgcmVw bGF5IiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL3dhbF9yZXBsYXkvIiwKKyAgICAg ICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAg ICJjb21tZW50IjogIlBMQUNFX0hPTERFUiIsCisgICAgICAgICJpZCI6ICJQTEFDRV9IT0xERVIi LAorICAgICAgICAiaXNfcGFzc3dvcmRfc2F2ZWQiOiBmYWxzZQorICAgICAgfSwKKyAgICAgICJt b2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAi ZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNDEwCisgICAgICB9Cisg ICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJDbGVhciBzc2ggdHVubmVsIHBhc3N3b3JkIiwK KyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL2NsZWFyX3NzaHR1bm5lbF9wYXNzd29yZC8i LAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgImNsZWFyX3NhdmVfcGFz c3dvcmQiOiB0cnVlLAorICAgICAgInRlc3RfZGF0YSI6IHsKKyAgICAgICAgImNvbW1lbnQiOiAi UExBQ0VfSE9MREVSIiwKKyAgICAgICAgImlkIjogIlBMQUNFX0hPTERFUiIsCisgICAgICAgICJp c19wYXNzd29yZF9zYXZlZCI6IGZhbHNlCisgICAgICB9LAorICAgICAgIm1vY2tpbmdfcmVxdWly ZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRh IjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsK KyAgICAgICJuYW1lIjogIkNsZWFyIHNzaCB0dW5uZWwgcGFzc3dvcmQgd2l0aCB3cm9uZyBzZXJ2 ZXIgaWQiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIvY2xlYXJfc3NodHVubmVsX3Bh c3N3b3JkLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAorICAgICAgImNsZWFy X3NhdmVfcGFzc3dvcmQiOiB0cnVlLAorICAgICAgIndyb25nX3NlcnZlcl9pZCI6IHRydWUsCisg ICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAiY29tbWVudCI6ICJQTEFDRV9IT0xERVIiLAor ICAgICAgICAiaWQiOiAiUExBQ0VfSE9MREVSIiwKKyAgICAgICAgImlzX3Bhc3N3b3JkX3NhdmVk IjogZmFsc2UKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAg ICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJz dGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAi ZXJyb3Igd2hpbGUgY2xlYXJpbmcgYSBzc2ggcGFzc3dvcmQiLAorICAgICAgInVybCI6ICIvYnJv d3Nlci9zZXJ2ZXIvY2xlYXJfc3NodHVubmVsX3Bhc3N3b3JkLyIsCisgICAgICAiaXNfcG9zaXRp dmVfdGVzdCI6IGZhbHNlLAorICAgICAgImVycm9yX2NsZWFyaW5nX3Bhc3N3b3JkIjogdHJ1ZSwK KyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJjb21tZW50IjogIlBMQUNFX0hPTERFUiIs CisgICAgICAgICJpZCI6ICJQTEFDRV9IT0xERVIiLAorICAgICAgICAiaXNfcGFzc3dvcmRfc2F2 ZWQiOiBmYWxzZQorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisg ICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAg InN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfQorICBdLAorICAidXBkYXRlX3NoYXJl ZF9zZXJ2ZXIiOiBbCisgICAgeworICAgICAgIm5hbWUiOiAidXBkYXRlIGEgc2VydmVyIG5hbWUi LAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIvb2JqLyIsCisgICAgICAiaXNfcG9zaXRp dmVfdGVzdCI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAiY29tbWVudCI6 ICJQTEFDRV9IT0xERVIiLAorICAgICAgICAiaWQiOiAiUExBQ0VfSE9MREVSIiwKKyAgICAgICAg InNzbGNvbXByZXNzaW9uIjogMQorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjog ZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsK KyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAg ICAibmFtZSI6ICJ1cGRhdGUgYSBzZXJ2ZXIgZGV0YWlscyB3aXRob3V0IGRhdGEiLAorICAgICAg InVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIvb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6 IHRydWUsCisgICAgICAidGVzdF9kYXRhIjoge30sCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6 IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7 CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAg ICAgIm5hbWUiOiAiVXBkYXRlIHNlcnZlciB3aXRoIHdyb25nIHNlcnZlciBpZCIsCisgICAgICAi dXJsIjogIi9icm93c2VyL3NlcnZlci9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0Ijog ZmFsc2UsCisgICAgICAiY2xlYXJfc2F2ZV9wYXNzd29yZCI6IHRydWUsCisgICAgICAid3Jvbmdf c2VydmVyX2lkIjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJjb21tZW50 IjogIlBMQUNFX0hPTERFUiIsCisgICAgICAgICJpZCI6ICJQTEFDRV9IT0xERVIiCisgICAgICB9 LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7 fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiA0MTAK KyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIlVwZGF0ZSBzZXJ2ZXIgd2l0 aCBpbmNvcnJlY3QgaG9zdGFkZHIiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIvb2Jq LyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjog eworICAgICAgICAiY29tbWVudCI6ICJQTEFDRV9IT0xERVIiLAorICAgICAgICAiaG9zdGFkZHIi OiAiUExBQ0VfSE9MREVSIiwKKyAgICAgICAgImRiX3JlcyI6ICJQTEFDRV9IT0xERVIiLAorICAg ICAgICAiaWQiOiAiUExBQ0VfSE9MREVSIgorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVp cmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0 YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNDAwCisgICAgICB9CisgICAgfSwKKyAgICB7 CisgICAgICAibmFtZSI6ICJ1cGRhdGUgYSBzZXJ2ZXIgLCBtYWtlIHNlcnZlciBzaGFyZWQiLAor ICAgICAgInVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIvb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVf dGVzdCI6IHRydWUsCisgICAgICAib3duZXJfc2VydmVyIjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2Rh dGEiOiB7CisgICAgICAgICJjb21tZW50IjogIlBMQUNFX0hPTERFUiIsCisgICAgICAgICJpZCI6 ICJQTEFDRV9IT0xERVIiLAorICAgICAgICAic2hhcmVkIjogdHJ1ZQorICAgICAgfSwKKyAgICAg ICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAg ICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9 CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJDbGVhciBzYXZlZCBwYXNzd29yZCB3aGVu IGxvZ2luIHVzZXIgaXMgbm90IG93bmVyIG9mIHNlcnZlciIsCisgICAgICAidXJsIjogIi9icm93 c2VyL3NlcnZlci9jbGVhcl9zYXZlZF9wYXNzd29yZC8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rl c3QiOiB0cnVlLAorICAgICAgImNsZWFyX3NhdmVfcGFzc3dvcmQiOiB0cnVlLAorICAgICAgInRl c3RfZGF0YSI6IHsKKyAgICAgICAgImNvbW1lbnQiOiAiUExBQ0VfSE9MREVSIiwKKyAgICAgICAg ImlkIjogIlBMQUNFX0hPTERFUiIsCisgICAgICAgICJpc19wYXNzd29yZF9zYXZlZCI6IGZhbHNl CisgICAgICB9LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2Nr X2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2Nv ZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkNsZWFyIHNh dmVkIHBhc3N3b3JkIHdpdGggd3Jvbmcgc2VydmVyIGlkIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dz ZXIvc2VydmVyL2NsZWFyX3NhdmVkX3Bhc3N3b3JkLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVz dCI6IGZhbHNlLAorICAgICAgImNsZWFyX3NhdmVfcGFzc3dvcmQiOiB0cnVlLAorICAgICAgIndy b25nX3NlcnZlcl9pZCI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAiY29t bWVudCI6ICJQTEFDRV9IT0xERVIiLAorICAgICAgICAiaWQiOiAiUExBQ0VfSE9MREVSIiwKKyAg ICAgICAgImlzX3Bhc3N3b3JkX3NhdmVkIjogZmFsc2UKKyAgICAgIH0sCisgICAgICAibW9ja2lu Z19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVj dGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0s CisgICAgeworICAgICAgIm5hbWUiOiAiQ2xlYXIgc3NoIHR1bm5lbCBwYXNzd29yZCIsCisgICAg ICAidXJsIjogIi9icm93c2VyL3NlcnZlci9jbGVhcl9zc2h0dW5uZWxfcGFzc3dvcmQvIiwKKyAg ICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJjbGVhcl9zYXZlX3Bhc3N3b3Jk IjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJjb21tZW50IjogIlBMQUNF X0hPTERFUiIsCisgICAgICAgICJpZCI6ICJQTEFDRV9IT0xERVIiLAorICAgICAgICAiaXNfcGFz c3dvcmRfc2F2ZWQiOiBmYWxzZQorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjog ZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsK KyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAg ICAibmFtZSI6ICJDbGVhciBzc2ggdHVubmVsIHBhc3N3b3JkIHdpdGggd3Jvbmcgc2VydmVyIGlk IiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL2NsZWFyX3NzaHR1bm5lbF9wYXNzd29y ZC8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiBmYWxzZSwKKyAgICAgICJjbGVhcl9zYXZl X3Bhc3N3b3JkIjogdHJ1ZSwKKyAgICAgICJ3cm9uZ19zZXJ2ZXJfaWQiOiB0cnVlLAorICAgICAg InRlc3RfZGF0YSI6IHsKKyAgICAgICAgImNvbW1lbnQiOiAiUExBQ0VfSE9MREVSIiwKKyAgICAg ICAgImlkIjogIlBMQUNFX0hPTERFUiIsCisgICAgICAgICJpc19wYXNzd29yZF9zYXZlZCI6IGZh bHNlCisgICAgICB9LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJt b2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVz X2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImVycm9y IHdoaWxlIGNsZWFyaW5nIGEgc3NoIHBhc3N3b3JkIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIv c2VydmVyL2NsZWFyX3NzaHR1bm5lbF9wYXNzd29yZC8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rl c3QiOiBmYWxzZSwKKyAgICAgICJlcnJvcl9jbGVhcmluZ19wYXNzd29yZCI6IHRydWUsCisgICAg ICAidGVzdF9kYXRhIjogeworICAgICAgICAiY29tbWVudCI6ICJQTEFDRV9IT0xERVIiLAorICAg ICAgICAiaWQiOiAiUExBQ0VfSE9MREVSIiwKKyAgICAgICAgImlzX3Bhc3N3b3JkX3NhdmVkIjog ZmFsc2UKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAg Im1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0 dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0KKyAgXSwKKyAgImRlbGV0ZV9tdWx0aXBsZV9z ZXJ2ZXIiOiBbCisgICAgeworICAgICAgIm5hbWUiOiAiRGVsZXRlIG11bHRpcGxlIHNlcnZlciIs CisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2 ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAi bW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1 c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfQorICBdCit9CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2FkZF9zZXJ2ZXIu cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0 X2FkZF9zZXJ2ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4xYjIz ZmNkYjgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy90ZXN0cy90ZXN0X2FkZF9zZXJ2ZXIucHkKQEAgLTAsMCArMSw4NCBAQAorIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBD b3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisj IFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQor IworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IGpzb24KKworZnJvbSBwZ2FkbWluLnV0aWxz LnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90 ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxz IGFzIHNlcnZlcnNfdXRpbHMKKworCitjbGFzcyBBZGRTZXJ2ZXJUZXN0KEJhc2VUZXN0R2VuZXJh dG9yKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCB0aGUgc2VydmVycyB1bmRlciBkZWZh dWx0IHNlcnZlciBncm91cC4gIiIiCisKKyAgICBzY2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9z Y2VuYXJpb3MoJ2FkZF9zZXJ2ZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZXJ2ZXJzX3V0aWxzLnRlc3RfY2FzZXMpCisKKyAgICBkZWYgc2V0VXAoc2VsZik6 CisgICAgICAgIHBhc3MKKworICAgIGRlZiBjcmVhdGVfc2VydmVyKHNlbGYsIHVybCk6CisgICAg ICAgIHJldHVybiBzZWxmLnRlc3Rlci5wb3N0KAorICAgICAgICAgICAgdXJsLAorICAgICAgICAg ICAgZGF0YT1qc29uLmR1bXBzKHNlbGYuc2VydmVyKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlw ZT0naHRtbC9qc29uJworICAgICAgICApCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAg ICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgdGhlIHNlcnZlciB1bmRlciBkZWZhdWx0IHNl cnZlciBncm91cC4iIiIKKyAgICAgICAgdXJsID0gInswfXsxfS8iLmZvcm1hdChzZWxmLnVybCwg dXRpbHMuU0VSVkVSX0dST1VQKQorCisgICAgICAgICMgQWRkIHNlcnZpY2UgbmFtZSBpbiB0aGUg Y29uZmlnCisgICAgICAgIGlmICdjb25uZWN0X3RpbWVvdXQnIGluIHNlbGYudGVzdF9kYXRhOgor ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2Nvbm5lY3RfdGltZW91dCddID0gc2VsZi50ZXN0X2Rh dGFbJ2Nvbm5lY3RfdGltZW91dCddCisgICAgICAgIGVsaWYgJ3NoYXJlZCcgaW4gc2VsZi50ZXN0 X2RhdGE6CisgICAgICAgICAgICBzZWxmLnNlcnZlclsnc2hhcmVkJ10gPSBzZWxmLnRlc3RfZGF0 YVsnc2hhcmVkJ10KKyAgICAgICAgZWxpZiAnc2VydmljZScgaW4gc2VsZi50ZXN0X2RhdGE6Cisg ICAgICAgICAgICBzZWxmLnNlcnZlclsnc2VydmljZSddID0gc2VsZi50ZXN0X2RhdGFbJ3NlcnZp Y2UnXQorCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ3NzaF90dW5uZWwnKToKKyAgICAgICAg ICAgIHNlbGYuc2VydmVyWyd1c2Vfc3NoX3R1bm5lbCddID0gc2VsZi50ZXN0X2RhdGFbJ3VzZV9z c2hfdHVubmVsJ10KKyAgICAgICAgICAgIHNlbGYuc2VydmVyWyd0dW5uZWxfaG9zdCddID0gc2Vs Zi50ZXN0X2RhdGFbJ3R1bm5lbF9ob3N0J10KKyAgICAgICAgICAgIHNlbGYuc2VydmVyWyd0dW5u ZWxfcG9ydCddID0gc2VsZi50ZXN0X2RhdGFbJ3R1bm5lbF9wb3J0J10KKyAgICAgICAgICAgIHNl bGYuc2VydmVyWyd0dW5uZWxfdXNlcm5hbWUnXSA9IHNlbGYudGVzdF9kYXRhWyd0dW5uZWxfdXNl cm5hbWUnXQorCisgICAgICAgICAgICBpZiBzZWxmLndpdGhfcGFzc3dvcmQ6CisgICAgICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJbJ3R1bm5lbF9hdXRoZW50aWNhdGlvbiddID0gc2VsZi50ZXN0X2Rh dGFbCisgICAgICAgICAgICAgICAgICAgICd0dW5uZWxfYXV0aGVudGljYXRpb24nXQorICAgICAg ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsndHVubmVsX2F1dGhlbnRp Y2F0aW9uJ10gPSAxCisgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3R1bm5lbF9pZGVudGl0 eV9maWxlJ10gPSAncGtleV9yc2EnCisKKyAgICAgICAgICAgIGlmIHNlbGYuc2F2ZV9wYXNzd29y ZDoKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsndHVubmVsX3Bhc3N3b3JkJ10gPSBzZWxm LnRlc3RfZGF0YVsKKyAgICAgICAgICAgICAgICAgICAgJ3R1bm5lbF9wYXNzd29yZCddCisgICAg ICAgIGlmICdjb25uZWN0X25vdycgaW4gc2VsZi50ZXN0X2RhdGE6CisgICAgICAgICAgICBzZWxm LnNlcnZlclsnY29ubmVjdF9ub3cnXSA9IHNlbGYudGVzdF9kYXRhWydjb25uZWN0X25vdyddCisg ICAgICAgICAgICBzZWxmLnNlcnZlclsncGFzc3dvcmQnXSA9IHNlbGYuc2VydmVyWydkYl9wYXNz d29yZCddCisKKyAgICAgICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAg aWYgaGFzYXR0cihzZWxmLCAnd2l0aF9zYXZlJyk6CisgICAgICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJbJ3NhdmVfcGFzc3dvcmQnXSA9IHNlbGYud2l0aF9zYXZlCisgICAgICAgICAgICBpZiBoYXNh dHRyKHNlbGYsICd3aXRoX3B3ZCcpIGFuZCBub3Qgc2VsZi53aXRoX3B3ZDoKKyAgICAgICAgICAg ICAgICAjIFJlbW92ZSB0aGUgcGFzc3dvcmQgZnJvbSBzZXJ2ZXIgb2JqZWN0CisgICAgICAgICAg ICAgICAgZGJfcGFzc3dvcmQgPSBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXQorICAgICAgICAg ICAgICAgIGRlbCBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXQorICAgICAgICAgICAgcmVzcG9u c2UgPSBzZWxmLmNyZWF0ZV9zZXJ2ZXIodXJsKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhy ZXNwb25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHBl Y3RlZF9kYXRhWyJzdGF0dXNfY29kZSJdKQorICAgICAgICByZXNwb25zZV9kYXRhID0ganNvbi5s b2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkKKyAgICAgICAgc2VsZi5zZXJ2ZXJf aWQgPSByZXNwb25zZV9kYXRhWydub2RlJ11bJ19pZCddCisKKyAgICAgICAgaWYgaGFzYXR0cihz ZWxmLCAnd2l0aF9wd2QnKSBhbmQgbm90IHNlbGYud2l0aF9wd2Q6CisgICAgICAgICAgICAjIFJl bW92ZSB0aGUgcGFzc3dvcmQgZnJvbSBzZXJ2ZXIgb2JqZWN0CisgICAgICAgICAgICBzZWxmLnNl cnZlclsnZGJfcGFzc3dvcmQnXSA9IGRiX3Bhc3N3b3JkCisKKyAgICBkZWYgdGVhckRvd24oc2Vs Zik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlIHRoZSBzZXJ2ZXIgZnJvbSBTUUxp dGUgIiIiCisgICAgICAgIHV0aWxzLmRlbGV0ZV9zZXJ2ZXJfd2l0aF9hcGkoc2VsZi50ZXN0ZXIs IHNlbGYuc2VydmVyX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9hZGRfc2VydmVyX3dpdGhfY29ubmVjdF90aW1lb3V0 LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVz dF9hZGRfc2VydmVyX3dpdGhfY29ubmVjdF90aW1lb3V0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCA5NGQ1NTU2MTcuLjAwMDAwMDAwMAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2FkZF9zZXJ2ZXJfd2l0aF9jb25uZWN0 X3RpbWVvdXQucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0jIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwotIwotIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCi0jCi0jIENvcHlyaWdodCAo QykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KLSMgVGhpcyBzb2Z0 d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCi0jCi0jIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIwotCi1pbXBvcnQganNvbgotCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1w b3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMg aW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKLQotCi1jbGFzcyBTZXJ2ZXJzV2l0aENvbm5lY3RU aW1lb3V0QWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNz IHdpbGwgYWRkIHRoZSBzZXJ2ZXJzIHVuZGVyIGRlZmF1bHQgc2VydmVyIGdyb3VwLiAiIiIKLQot ICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaCB0aGUgZGVmYXVsdCB1cmwgZm9yIHNl cnZlciBvYmplY3QKLSAgICAgICAgKAotICAgICAgICAgICAgJ0RlZmF1bHQgU2VydmVyIE5vZGUg dXJsJywgZGljdCgKLSAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL3NlcnZlci9vYmovJwot ICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgXQotCi0gICAgZGVmIHNldFVwKHNlbGYpOgot ICAgICAgICBwYXNzCi0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMg ZnVuY3Rpb24gd2lsbCBhZGQgdGhlIHNlcnZlciB1bmRlciBkZWZhdWx0IHNlcnZlciBncm91cC4i IiIKLSAgICAgICAgdXJsID0gInswfXsxfS8iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VSVkVS X0dST1VQKQotICAgICAgICAjIEFkZCBzZXJ2aWNlIG5hbWUgaW4gdGhlIGNvbmZpZwotICAgICAg ICBzZWxmLnNlcnZlclsnY29ubmVjdF90aW1lb3V0J10gPSA1Ci0gICAgICAgIHJlc3BvbnNlID0g c2VsZi50ZXN0ZXIucG9zdCgKLSAgICAgICAgICAgIHVybCwKLSAgICAgICAgICAgIGRhdGE9anNv bi5kdW1wcyhzZWxmLnNlcnZlciksCi0gICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNv bicKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1c19j b2RlLCAyMDApCi0gICAgICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRh dGEuZGVjb2RlKCd1dGYtOCcpKQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHJlc3BvbnNlX2Rh dGFbJ25vZGUnXVsnX2lkJ10KLQotICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIi VGhpcyBmdW5jdGlvbiBkZWxldGUgdGhlIHNlcnZlciBmcm9tIFNRTGl0ZSAiIiIKLSAgICAgICAg dXRpbHMuZGVsZXRlX3NlcnZlcl93aXRoX2FwaShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQp CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90 ZXN0cy90ZXN0X2FkZF9zZXJ2ZXJfd2l0aF9zZXJ2aWNlX2lkLnB5IGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9hZGRfc2VydmVyX3dpdGhfc2Vy dmljZV9pZC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWI0ZDRkMzc3Li4wMDAw MDAwMDAKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVz dHMvdGVzdF9hZGRfc2VydmVyX3dpdGhfc2VydmljZV9pZC5weQorKysgL2Rldi9udWxsCkBAIC0x LDQ3ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIHBnQWRtaW4gNCAtIFBvc3RncmVT UUwgVG9vbHMKLSMKLSMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2 ZWxvcG1lbnQgVGVhbQotIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0 Z3JlU1FMIExpY2VuY2UKLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLWltcG9ydCBqc29uCi0KLWZy b20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVn cmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwotCi0K LWNsYXNzIFNlcnZlcnNXaXRoU2VydmljZUlEQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3Ip OgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgYWRkIHRoZSBzZXJ2ZXJzIHVuZGVyIGRlZmF1bHQg c2VydmVyIGdyb3VwLiAiIiIKLQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaCB0 aGUgZGVmYXVsdCB1cmwgZm9yIHNlcnZlciBvYmplY3QKLSAgICAgICAgKAotICAgICAgICAgICAg J0RlZmF1bHQgU2VydmVyIE5vZGUgdXJsJywgZGljdCgKLSAgICAgICAgICAgICAgICB1cmw9Jy9i cm93c2VyL3NlcnZlci9vYmovJwotICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgXQotCi0g ICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgcnVuVGVzdChzZWxm KToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgdGhlIHNlcnZlciB1bmRlciBk ZWZhdWx0IHNlcnZlciBncm91cC4iIiIKLSAgICAgICAgdXJsID0gInswfXsxfS8iLmZvcm1hdChz ZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dST1VQKQotICAgICAgICAjIEFkZCBzZXJ2aWNlIG5hbWUg aW4gdGhlIGNvbmZpZwotICAgICAgICBzZWxmLnNlcnZlclsnc2VydmljZSddID0gIlRlc3REQiIK LSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAotICAgICAgICAgICAgdXJsLAot ICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYuc2VydmVyKSwKLSAgICAgICAgICAgIGNv bnRlbnRfdHlwZT0naHRtbC9qc29uJwotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWwocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLSAgICAgICAgcmVzcG9uc2VfZGF0YSA9IGpz b24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCi0gICAgICAgIHNlbGYuc2Vy dmVyX2lkID0gcmVzcG9uc2VfZGF0YVsnbm9kZSddWydfaWQnXQotCi0gICAgZGVmIHRlYXJEb3du KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgc2VydmVyIGZyb20g U1FMaXRlICIiIgotICAgICAgICB1dGlscy5kZWxldGVfc2VydmVyX3dpdGhfYXBpKHNlbGYudGVz dGVyLCBzZWxmLnNlcnZlcl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfYWRkX3NlcnZlcl93aXRoX3NzaF90dW5uZWwu cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0 X2FkZF9zZXJ2ZXJfd2l0aF9zc2hfdHVubmVsLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCA3YzBiMDA1ZDkuLjAwMDAwMDAwMAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2FkZF9zZXJ2ZXJfd2l0aF9zc2hfdHVubmVsLnB5 CisrKyAvZGV2L251bGwKQEAgLTEsODIgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMg cGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwotIwotIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAy MDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCi0jIFRoaXMgc29mdHdhcmUgaXMgcmVs ZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQotIwotIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK LQotaW1wb3J0IGpzb24KLQotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVz dEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0 X3V0aWxzIGFzIHV0aWxzCi0KLQotY2xhc3MgU2VydmVyc1dpdGhTU0hUdW5uZWxBZGRUZXN0Q2Fz ZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBhZGQgdGhlIHNl cnZlcnMgdW5kZXIgZGVmYXVsdCBzZXJ2ZXIgZ3JvdXAuICIiIgotCi0gICAgc2NlbmFyaW9zID0g WwotICAgICAgICAoCi0gICAgICAgICAgICAnQWRkIHNlcnZlciB1c2luZyBTU0ggdHVubmVsIHdp dGggcGFzc3dvcmQnLCBkaWN0KAotICAgICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvc2VydmVy L29iai8nLAotICAgICAgICAgICAgICAgIHdpdGhfcGFzc3dvcmQ9VHJ1ZSwKLSAgICAgICAgICAg ICAgICBzYXZlX3Bhc3N3b3JkPUZhbHNlLAotICAgICAgICAgICAgKQotICAgICAgICApLAotICAg ICAgICAoCi0gICAgICAgICAgICAnQWRkIHNlcnZlciB1c2luZyBTU0ggdHVubmVsIHdpdGggaWRl bnRpdHkgZmlsZScsIGRpY3QoCi0gICAgICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9zZXJ2ZXIv b2JqLycsCi0gICAgICAgICAgICAgICAgd2l0aF9wYXNzd29yZD1GYWxzZSwKLSAgICAgICAgICAg ICAgICBzYXZlX3Bhc3N3b3JkPUZhbHNlLAotICAgICAgICAgICAgKQotICAgICAgICApLAotICAg ICAgICAoCi0gICAgICAgICAgICAnQWRkIHNlcnZlciB1c2luZyBTU0ggdHVubmVsIHdpdGggcGFz c3dvcmQgYW5kIHNhdmVkIGl0JywgZGljdCgKLSAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2Vy L3NlcnZlci9vYmovJywKLSAgICAgICAgICAgICAgICB3aXRoX3Bhc3N3b3JkPVRydWUsCi0gICAg ICAgICAgICAgICAgc2F2ZV9wYXNzd29yZD1UcnVlLAotICAgICAgICAgICAgKQotICAgICAgICAp LAotICAgICAgICAoCi0gICAgICAgICAgICAnQWRkIHNlcnZlciB1c2luZyBTU0ggdHVubmVsIHdp dGggaWRlbnRpdHkgZmlsZSBhbmQgc2F2ZSB0aGUgJwotICAgICAgICAgICAgJ3Bhc3N3b3JkJywg ZGljdCgKLSAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL3NlcnZlci9vYmovJywKLSAgICAg ICAgICAgICAgICB3aXRoX3Bhc3N3b3JkPUZhbHNlLAotICAgICAgICAgICAgICAgIHNhdmVfcGFz c3dvcmQ9VHJ1ZSwKLSAgICAgICAgICAgICkKLSAgICAgICAgKSwKLSAgICBdCi0KLSAgICBkZWYg c2V0VXAoc2VsZik6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAg ICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCB0aGUgc2VydmVyIHVuZGVyIGRlZmF1bHQg c2VydmVyIGdyb3VwLiIiIgotICAgICAgICB1cmwgPSAiezB9ezF9LyIuZm9ybWF0KHNlbGYudXJs LCB1dGlscy5TRVJWRVJfR1JPVVApCi0gICAgICAgICMgQWRkIHNlcnZpY2UgbmFtZSBpbiB0aGUg Y29uZmlnCi0gICAgICAgIHNlbGYuc2VydmVyWyd1c2Vfc3NoX3R1bm5lbCddID0gMQotICAgICAg ICBzZWxmLnNlcnZlclsndHVubmVsX2hvc3QnXSA9ICcxMjcuMC4wLjEnCi0gICAgICAgIHNlbGYu c2VydmVyWyd0dW5uZWxfcG9ydCddID0gMjIKLSAgICAgICAgc2VsZi5zZXJ2ZXJbJ3R1bm5lbF91 c2VybmFtZSddID0gJ3VzZXInCi0gICAgICAgIGlmIHNlbGYud2l0aF9wYXNzd29yZDoKLSAgICAg ICAgICAgIHNlbGYuc2VydmVyWyd0dW5uZWxfYXV0aGVudGljYXRpb24nXSA9IDAKLSAgICAgICAg ZWxzZToKLSAgICAgICAgICAgIHNlbGYuc2VydmVyWyd0dW5uZWxfYXV0aGVudGljYXRpb24nXSA9 IDEKLSAgICAgICAgICAgIHNlbGYuc2VydmVyWyd0dW5uZWxfaWRlbnRpdHlfZmlsZSddID0gJ3Br ZXlfcnNhJwotCi0gICAgICAgIGlmIHNlbGYuc2F2ZV9wYXNzd29yZDoKLSAgICAgICAgICAgIHNl bGYuc2VydmVyWyd0dW5uZWxfcGFzc3dvcmQnXSA9ICcxMjM0NTYnCi0KLSAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5wb3N0KAotICAgICAgICAgICAgdXJsLAotICAgICAgICAgICAgZGF0 YT1qc29uLmR1bXBzKHNlbGYuc2VydmVyKSwKLSAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRt bC9qc29uJwotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2Uuc3Rh dHVzX2NvZGUsIDIwMCkKLSAgICAgICAgcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9u c2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gcmVzcG9u c2VfZGF0YVsnbm9kZSddWydfaWQnXQotCi0gICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAg ICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgc2VydmVyIGZyb20gU1FMaXRlICIiIgotICAg ICAgICB1dGlscy5kZWxldGVfc2VydmVyX3dpdGhfYXBpKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZl cl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3Rlc3RzL3Rlc3RfYWxsX3NlcnZlcl9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2FsbF9zZXJ2ZXJfZ2V0LnB5Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uY2QzNWE3YTA1Ci0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9h bGxfc2VydmVyX2dldC5weQpAQCAtMCwwICsxLDc4IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIwor IyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAt IDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyBy ZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworaW1wb3J0IHJhbmRvbQorCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zy b20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGls cworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBzZXJ2ZXJzX3V0aWxzCisKKworY2xhc3MgQWxsU2Vy dmVyc0dldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIKKyAgICBUaGlzIGNs YXNzIHdpbGwgZmV0Y2ggYWRkZWQgc2VydmVycyB1bmRlciBkZWZhdWx0IHNlcnZlciBncm91cAor ICAgIGJ5IHJlc3BvbnNlIGNvZGUuCisgICAgIiIiCisKKyAgICBzY2VuYXJpb3MgPSB1dGlscy5n ZW5lcmF0ZV9zY2VuYXJpb3MoJ2dldF9hbGxfc2VydmVyJywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VydmVyc191dGlscy50ZXN0X2Nhc2VzKQorCisgICAgZGVm IHNldFVwKHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGFkZCB0aGUgc2VydmVyIHRv IHRlc3QgdGhlIEdFVCBBUEkiIiIKKyAgICAgICAgc2VsZi5zZXJ2ZXJbJ3Bhc3N3b3JkJ10gPSAn ZWRiJworICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHV0aWxzLmNyZWF0ZV9zZXJ2ZXIoc2VsZi5z ZXJ2ZXIpCisgICAgICAgIHNlcnZlcl9kaWN0ID0geyJzZXJ2ZXJfaWQiOiBzZWxmLnNlcnZlcl9p ZH0KKyAgICAgICAgdXRpbHMud3JpdGVfbm9kZV9pbmZvKCJzaWQiLCBzZXJ2ZXJfZGljdCkKKwor ICAgIGRlZiBnZXRfc2VydmVyKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi50ZXN0ZXIuZ2V0 KHNlbGYudXJsLCBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisKKyAgICBkZWYgY29ubmVjdF90b19z ZXJ2ZXIoc2VsZiwgdXJsKToKKyAgICAgICAgcmV0dXJuIHNlbGYudGVzdGVyLnBvc3QoCisgICAg ICAgICAgICB1cmwsCisgICAgICAgICAgICBkYXRhPXNlbGYuc2VydmVyLAorICAgICAgICAgICAg Y29udGVudF90eXBlPSdodG1sL2pzb24nCisgICAgICAgICkKKworICAgIGRlZiBydW5UZXN0KHNl bGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIHRoZSBhZGRlZCBzZXJ2 ZXJzIHRvIG9iamVjdCBicm93c2VyLiAiIiIKKyAgICAgICAgc2VydmVyX2lkID0gcGFyZW50X25v ZGVfZGljdFsic2VydmVyIl1bLTFdWyJzZXJ2ZXJfaWQiXQorICAgICAgICBpZiBub3Qgc2VydmVy X2lkOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJTZXJ2ZXIgbm90IGZvdW5kIHRvIHRl c3QgR0VUIEFQSSIpCisgICAgICAgIHJlc3BvbnNlID0gTm9uZQorICAgICAgICBpZiBzZWxmLmlz X3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdpbnZhbGlkX3Nl cnZlcl9ncm91cCcpOgorICAgICAgICAgICAgICAgIHNlbGYudXJsID0gc2VsZi51cmwgKyAnezB9 L3sxfT9fPXsxfScuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JP VVAsIHJhbmRvbS5yYW5kaW50KDEsIDk5OTk5OTkpKQorICAgICAgICAgICAgZWxpZiBoYXNhdHRy KHNlbGYsICdjaGlsZHJlbicpOgorCisgICAgICAgICAgICAgICAgc2VsZi51cmwgPSBzZWxmLnVy bCArICd7MH0vezF9Jy5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9H Uk9VUCwgc2VydmVyX2lkKQorICAgICAgICAgICAgZWxpZiBoYXNhdHRyKHNlbGYsICdzZXJ2ZXJf bGlzdCcpOgorICAgICAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ3NlcnZlcnMnKToKKyAg ICAgICAgICAgICAgICAgICAgc2VydmVyX2lkID0gJycKKyAgICAgICAgICAgICAgICBzZWxmLnVy bCA9IHNlbGYudXJsICsgJ3swfS97MX0nLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgdXRp bHMuU0VSVkVSX0dST1VQLCBzZXJ2ZXJfaWQpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAg ICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgImNvbm5lY3RlZCIpOgorICAgICAgICAgICAgICAgICAg ICB1cmwgPSAnL2Jyb3dzZXIvc2VydmVyL2Nvbm5lY3QvJyArICd7MH0vezF9Jy5mb3JtYXQoCisg ICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJbJ3Bhc3N3b3JkJ10gPSAnZWRiJworCisgICAgICAgICAgICAgICAgICAgIHNlbGYuY29ubmVj dF90b19zZXJ2ZXIodXJsKQorICAgICAgICAgICAgICAgIHNlbGYudXJsID0gc2VsZi51cmwgKyAn ezB9L3sxfT9fPXsyfScuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJf R1JPVVAsIHNlcnZlcl9pZCwgcmFuZG9tLnJhbmRpbnQoMSwgOTk5OTk5OSkpCisgICAgICAgICAg ICByZXNwb25zZSA9IHNlbGYuZ2V0X3NlcnZlcigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz KHJlc3BvbnNlLnN0YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4 cGVjdGVkX2RhdGFbInN0YXR1c19jb2RlIl0pCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6Cisg ICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlIHRoZSBzZXJ2ZXIgZnJvbSBTUUxpdGUgIiIi CisgICAgICAgIHV0aWxzLmRlbGV0ZV9zZXJ2ZXJfd2l0aF9hcGkoc2VsZi50ZXN0ZXIsIHNlbGYu c2VydmVyX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvdGVzdHMvdGVzdF9jaGVja19jb25uZWN0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9jaGVja19jb25uZWN0LnB5Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNmQ0OWNlYTdiCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVz dF9jaGVja19jb25uZWN0LnB5CkBAIC0wLDAgKzEsMTA3IEBACisjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor IworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAx MyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBp cyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y Citmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcmVncmVzc2lv bi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGlt cG9ydCB1dGlscyBhcyBzZXJ2ZXJzX3V0aWxzCitpbXBvcnQganNvbgorCisKK2NsYXNzIFNlcnZl cnNDb25uZWN0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIgorICAgIFRoaXMg Y2xhc3Mgd2lsbCBmZXRjaCBhZGRlZCBzZXJ2ZXJzIHVuZGVyIGRlZmF1bHQgc2VydmVyIGdyb3Vw CisgICAgYnkgcmVzcG9uc2UgY29kZS4KKyAgICAiIiIKKworICAgIHNjZW5hcmlvcyA9IHV0aWxz LmdlbmVyYXRlX3NjZW5hcmlvcygnY29ubmVjdF9zZXJ2ZXInLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJzX3V0aWxzLnRlc3RfY2FzZXMpCisKKyAgICBk ZWYgZ2V0X3NzaF90dW5uZWwoc2VsZik6CisgICAgICAgIHByaW50KCJpbl9nZXRfc3NoIikKKyAg ICAgICAgc2VsZi5zZXJ2ZXJbJ3VzZV9zc2hfdHVubmVsJ10gPSAxCisgICAgICAgIHNlbGYuc2Vy dmVyWyd0dW5uZWxfaG9zdCddID0gJzEyNy4wLjAuMScKKyAgICAgICAgc2VsZi5zZXJ2ZXJbJ3R1 bm5lbF9wb3J0J10gPSAyMgorICAgICAgICBzZWxmLnNlcnZlclsndHVubmVsX3VzZXJuYW1lJ10g PSAndXNlcicKKyAgICAgICAgaWYgc2VsZi53aXRoX3Bhc3N3b3JkOgorICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJbJ3R1bm5lbF9hdXRoZW50aWNhdGlvbiddID0gMAorICAgICAgICBlbHNlOgorICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3R1bm5lbF9hdXRoZW50aWNhdGlvbiddID0gMQorICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJbJ3R1bm5lbF9pZGVudGl0eV9maWxlJ10gPSAncGtleV9yc2EnCisK KyAgICAgICAgaWYgc2VsZi5zYXZlX3Bhc3N3b3JkOgorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJb J3R1bm5lbF9wYXNzd29yZCddID0gJzEyMzQ1NicKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAg ICAgICAgIiIiVGhpcyBmdW5jdGlvbiBhZGQgdGhlIHNlcnZlciB0byB0ZXN0IHRoZSBHRVQgQVBJ IiIiCisKKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSB1dGlscy5jcmVhdGVfc2VydmVyKHNlbGYu c2VydmVyKQorICAgICAgICBzZXJ2ZXJfZGljdCA9IHsic2VydmVyX2lkIjogc2VsZi5zZXJ2ZXJf aWR9CisgICAgICAgIHV0aWxzLndyaXRlX25vZGVfaW5mbygic2lkIiwgc2VydmVyX2RpY3QpCisK KyAgICBkZWYgZ2V0X3NlcnZlcl9jb25uZWN0aW9uKHNlbGYsIHNlcnZlcl9pZCk6CisgICAgICAg IHJldHVybiBzZWxmLnRlc3Rlci5nZXQoc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQ KSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQor CisgICAgZGVmIHNlcnZlcl9kaXNvbm5lY3Qoc2VsZiwgc2VydmVyX2lkKToKKyAgICAgICAgcmV0 dXJuIHNlbGYudGVzdGVyLmRlbGV0ZShzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVAp ICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VydmVyX2lk KSkKKworICAgIGRlZiBjb25uZWN0X3RvX3NlcnZlcihzZWxmLCB1cmwpOgorICAgICAgICByZXR1 cm4gc2VsZi50ZXN0ZXIucG9zdCgKKyAgICAgICAgICAgIHVybCwKKyAgICAgICAgICAgIGRhdGE9 anNvbi5kdW1wcyhzZWxmLnNlcnZlciksCisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwv anNvbicKKyAgICAgICAgKQorCisgICAgZGVmIGFkZF9zZXJ2ZXJfZGV0YWlscyhzZWxmLCB1cmwp OgorICAgICAgICByZXR1cm4gc2VsZi50ZXN0ZXIucG9zdCgKKyAgICAgICAgICAgIHVybCwKKyAg ICAgICAgICAgIGRhdGE9c3RyKHNlbGYudGVzdF9kYXRhKSwKKyAgICAgICAgICAgIGNvbnRlbnRf dHlwZT0naHRtbC9qc29uJworICAgICAgICApCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAg ICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCB0aGUgYWRkZWQgc2VydmVycyB0byBv YmplY3QgYnJvd3Nlci4gIiIiCisgICAgICAgIHNlcnZlcl9pZCA9IHBhcmVudF9ub2RlX2RpY3Rb InNlcnZlciJdWy0xXVsic2VydmVyX2lkIl0KKyAgICAgICAgaWYgbm90IHNlcnZlcl9pZDoKKyAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiU2VydmVyIG5vdCBmb3VuZCB0byB0ZXN0IEdFVCBB UEkiKQorICAgICAgICByZXNwb25zZSA9IE5vbmUKKyAgICAgICAgaWYgc2VsZi5pc19wb3NpdGl2 ZV90ZXN0OgorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnZGlzY29ubmVjdCcpOgorICAg ICAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ3dyb25nX3NlcnZlcl9pZCcpOgorICAgICAg ICAgICAgICAgICAgICBzZXJ2ZXJfaWQgPSA5OTk5OQorICAgICAgICAgICAgICAgIHJlc3BvbnNl ID0gc2VsZi5zZXJ2ZXJfZGlzb25uZWN0KHNlcnZlcl9pZCkKKyAgICAgICAgICAgIGVsaWYgaGFz YXR0cihzZWxmLCAiY29ubmVjdCIpOgorICAgICAgICAgICAgICAgIHVybCA9IHNlbGYudXJsICsg J3swfS97MX0nLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQ LAorICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCkKKyAgICAgICAgICAgICAgICBz ZWxmLnNlcnZlclsncGFzc3dvcmQnXSA9IHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddCisgICAg ICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmNvbm5lY3RfdG9fc2VydmVyKHVybCkKKyAgICAg ICAgICAgIGVsaWYgaGFzYXR0cihzZWxmLCAncmVzdG9yZV9wb2ludCcpIG9yIGhhc2F0dHIoc2Vs ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ2NoYW5nZV9wYXNzd29yZCcpOgorICAgICAgICAgICAgICAgIGNvbm5lY3RfdXJsID0g Jy9icm93c2VyL3NlcnZlci9jb25uZWN0L3swfS97MX0nLmZvcm1hdCgKKyAgICAgICAgICAgICAg ICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZl cl9pZCkKKyAgICAgICAgICAgICAgICB1cmwgPSBzZWxmLnVybCArICd7MH0vezF9Jy5mb3JtYXQo CisgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQpCisKKyAgICAgICAgICAgICAgICBzZWxmLmNvbm5lY3RfdG9f c2VydmVyKGNvbm5lY3RfdXJsKQorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5hZGRf c2VydmVyX2RldGFpbHModXJsKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBy ZXNwb25zZSA9IHNlbGYuZ2V0X3NlcnZlcl9jb25uZWN0aW9uKHNlcnZlcl9pZCkKKworICAgICAg ICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5leHBlY3RlZF9kYXRhWyJzdGF0dXNfY29kZSJdKQorCisgICAgZGVm IHRlYXJEb3duKHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgc2Vy dmVyIGZyb20gU1FMaXRlICIiIgorICAgICAgICB1dGlscy5kZWxldGVfc2VydmVyX3dpdGhfYXBp KHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfaXNfcGFzc3dvcmRfc2F2ZWQu cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0 X2lzX3Bhc3N3b3JkX3NhdmVkLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MC4uN2QxNDRkM2Q3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9pc19wYXNzd29yZF9zYXZlZC5weQpAQCAtMCww ICsxLDUyIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FM IFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVs b3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdy ZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQganNvbgorCitmcm9t IHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jl c3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20g LiBpbXBvcnQgdXRpbHMgYXMgc2VydmVyc191dGlscworCisKK2NsYXNzIElzUGFzc3dvcmRTYXZl ZChCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCB0ZXN0IHRoZSBz YXZlIHBhc3N3b3JkIGZ1bmN0aW9uYWxpdHkuICIiIgorCisgICAgc2NlbmFyaW9zID0gdXRpbHMu Z2VuZXJhdGVfc2NlbmFyaW9zKCdpc19wYXNzd29yZF9zYXZlZCcsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcnNfdXRpbHMudGVzdF9jYXNlcykKKworICAg IGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSB1dGlscy5jcmVhdGVf c2VydmVyKHNlbGYuc2VydmVyKQorICAgICAgICBzZXJ2ZXJfZGljdCA9IHsic2VydmVyX2lkIjog c2VsZi5zZXJ2ZXJfaWR9CisgICAgICAgIHV0aWxzLndyaXRlX25vZGVfaW5mbygic2lkIiwgc2Vy dmVyX2RpY3QpCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5j dGlvbiB3aWxsIGV4ZWN1dGUgdGhlIGNvbm5lY3Qgc2VydmVyIEFQSXMiIiIKKyAgICAgICAgcmVz cG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRp bHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0cihzZWxmLnNlcnZlcl9pZCksCisgICAgICAgICAg ICBkYXRhPWRpY3QoCisgICAgICAgICAgICAgICAgcGFzc3dvcmQ9c2VsZi5zZXJ2ZXJbJ2RiX3Bh c3N3b3JkJ10sCisgICAgICAgICAgICAgICAgc2F2ZV9wYXNzd29yZD0nb24nKSwKKyAgICAgICAg ICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKworICAgICAgICBleHBlY3RlZF9zdGF0dXNfY29k ZSA9IHNlbGYuZXhwZWN0ZWRfZGF0YVsic3RhdHVzX2NvZGUiXQorICAgICAgICBhY3R1YWxfc3Rh dHVzX2NvZGUgPSByZXNwb25zZS5zdGF0dXNfY29kZQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs cyhhY3R1YWxfc3RhdHVzX2NvZGUsIGV4cGVjdGVkX3N0YXR1c19jb2RlKQorICAgICAgICByZXNw b25zZV9kYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkKKwor ICAgICAgICBleHBlY3RlZF9tZXNzYWdlID0gc2VsZi5leHBlY3RlZF9kYXRhWyJtZXNzYWdlIl0K KyAgICAgICAgYWN0dWFsX21lc3NhZ2UgPSByZXNwb25zZV9kYXRhWyJpbmZvIl0KKyAgICAgICAg c2VsZi5hc3NlcnRFcXVhbHMoYWN0dWFsX21lc3NhZ2UsIGV4cGVjdGVkX21lc3NhZ2UpCisKKyAg ICAgICAgZXhwZWN0ZWRfaXNfcGFzc3dvcmRfc2F2ZWQgPSBzZWxmLnRlc3RfZGF0YVsiaXNfcGFz c3dvcmRfc2F2ZWQiXQorICAgICAgICBhY3R1YWxfaXNfcGFzc3dvcmRfc2F2ZWQgPSByZXNwb25z ZV9kYXRhWyJkYXRhIl1bImlzX3Bhc3N3b3JkX3NhdmVkIl0KKyAgICAgICAgc2VsZi5hc3NlcnRF cXVhbHMoYWN0dWFsX2lzX3Bhc3N3b3JkX3NhdmVkLCBleHBlY3RlZF9pc19wYXNzd29yZF9zYXZl ZCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBk ZWxldGUgdGhlIHNlcnZlciBmcm9tIFNRTGl0ZSAiIiIKKyAgICAgICAgdXRpbHMuZGVsZXRlX3Nl cnZlcl93aXRoX2FwaShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQpCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZl cl9hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0 cy90ZXN0X3NlcnZlcl9hZGQucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg0NDRl MWQ3Mi4uMDAwMDAwMDAwCi0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2FkZC5weQorKysgL2Rldi9udWxsCkBAIC0xLDg2ICsw LDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9v bHMKLSMKLSMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1l bnQgVGVhbQotIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FM IExpY2VuY2UKLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLWltcG9ydCBqc29uCi1pbXBvcnQgY29w eQotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJv bSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxz Ci0KLQotY2xhc3MgU2VydmVyc0FkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAi IiIgVGhpcyBjbGFzcyB3aWxsIGFkZCB0aGUgc2VydmVycyB1bmRlciBkZWZhdWx0IHNlcnZlciBn cm91cC4gIiIiCi0KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2ggdGhlIGRlZmF1 bHQgdXJsIGZvciBzZXJ2ZXIgb2JqZWN0Ci0gICAgICAgICgnRGVmYXVsdCBTZXJ2ZXIgTm9kZSB1 cmwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvc2VydmVyL29iai8nKSkKLSAgICBdCi0KLSAgICBkZWYg c2V0VXAoc2VsZik6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAg ICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCB0aGUgc2VydmVyIHVuZGVyIGRlZmF1bHQg c2VydmVyIGdyb3VwLiIiIgotICAgICAgICB1cmwgPSAiezB9ezF9LyIuZm9ybWF0KHNlbGYudXJs LCB1dGlscy5TRVJWRVJfR1JPVVApCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9z dCh1cmwsIGRhdGE9anNvbi5kdW1wcyhzZWxmLnNlcnZlciksCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCi0gICAgICAgIHNlbGYu YXNzZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLSAgICAgICAgcmVzcG9uc2Vf ZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCi0gICAgICAg IHNlbGYuc2VydmVyX2lkID0gcmVzcG9uc2VfZGF0YVsnbm9kZSddWydfaWQnXQotICAgICAgICBz ZXJ2ZXJfZGljdCA9IHsic2VydmVyX2lkIjogaW50KHNlbGYuc2VydmVyX2lkKX0KLSAgICAgICAg dXRpbHMud3JpdGVfbm9kZV9pbmZvKCJzaWQiLCBzZXJ2ZXJfZGljdCkKLQotICAgIGRlZiB0ZWFy RG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhlIHNlcnZlciBm cm9tIFNRTGl0ZSAiIiIKLSAgICAgICAgdXRpbHMuZGVsZXRlX3NlcnZlcl93aXRoX2FwaShzZWxm LnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQpCi0KLQotY2xhc3MgQWRkU2VydmVyc1dpdGhTYXZlUGFz c3dvcmRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2ls bCBhZGQgdGhlIHNlcnZlcnMgdW5kZXIgZGVmYXVsdCBzZXJ2ZXIgZ3JvdXAuICIiIgotCi0gICAg c2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoIHRoZSBkZWZhdWx0IHVybCBmb3Igc2VydmVy IG9iamVjdAotICAgICAgICAoJ0FkZCBzZXJ2ZXIgd2l0aCBwYXNzd29yZCBhbmQgc2F2ZSBwYXNz d29yZCB0byB0cnVlJywKLSAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci9zZXJ2ZXIvb2JqLycs IHdpdGhfcHdkPVRydWUsIHdpdGhfc2F2ZT1UcnVlKSksCi0gICAgICAgICgnQWRkIHNlcnZlciB3 aXRoIHBhc3N3b3JkIGFuZCBzYXZlIHBhc3N3b3JkIHRvIGZhbHNlJywKLSAgICAgICAgIGRpY3Qo dXJsPScvYnJvd3Nlci9zZXJ2ZXIvb2JqLycsIHdpdGhfcHdkPVRydWUsIHdpdGhfc2F2ZT1GYWxz ZSkpLAotICAgICAgICAoJ0FkZCBzZXJ2ZXIgd2l0aG91dCBwYXNzd29yZCBhbmQgc2F2ZSBwYXNz d29yZCB0byB0cnVlJywKLSAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci9zZXJ2ZXIvb2JqLycs IHdpdGhfcHdkPUZhbHNlLCB3aXRoX3NhdmU9VHJ1ZSkpLAotICAgIF0KLQotICAgIGRlZiBzZXRV cChzZWxmKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAg ICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIHRoZSBzZXJ2ZXIgdW5kZXIgZGVmYXVsdCBzZXJ2 ZXIgZ3JvdXAuIiIiCi0gICAgICAgIHVybCA9ICJ7MH17MX0vIi5mb3JtYXQoc2VsZi51cmwsIHV0 aWxzLlNFUlZFUl9HUk9VUCkKLSAgICAgICAgX3NlcnZlciA9IGNvcHkuZGVlcGNvcHkoc2VsZi5z ZXJ2ZXIpCi0gICAgICAgICMgVXBkYXRlIHRoZSBmbGFnIGFzIHJlcXVpcmVkCi0gICAgICAgIF9z ZXJ2ZXJbJ3NhdmVfcGFzc3dvcmQnXSA9IHNlbGYud2l0aF9zYXZlCi0gICAgICAgIGlmIG5vdCBz ZWxmLndpdGhfcHdkOgotICAgICAgICAgICAgIyBSZW1vdmUgdGhlIHBhc3N3b3JkIGZyb20gc2Vy dmVyIG9iamVjdAotICAgICAgICAgICAgZGVsIF9zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10KLQotICAg ICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QodXJsLCBkYXRhPWpzb24uZHVtcHMoX3Nl cnZlciksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9 J2h0bWwvanNvbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2Nv ZGUsIDIwMCkKLSAgICAgICAgcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0 YS5kZWNvZGUoJ3V0Zi04JykpCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gcmVzcG9uc2VfZGF0 YVsnbm9kZSddWydfaWQnXQotICAgICAgICBzZXJ2ZXJfZGljdCA9IHsic2VydmVyX2lkIjogaW50 KHNlbGYuc2VydmVyX2lkKX0KLSAgICAgICAgIyBGZXRjaCB0aGUgbm9kZSBpbmZvIHRvIGNoZWNr IGlmIHBhc3N3b3JkIHdhcyBzYXZlZCBvciBub3QKLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRl c3Rlci5nZXQoc2VsZi51cmwucmVwbGFjZSgnb2JqJywgJ25vZGVzJykgKwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCksCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkK LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotICAg ICAgICBzZWxmLmFzc2VydFRydWUoJ2lzX3Bhc3N3b3JkX3NhdmVkJyBpbiByZXNwb25zZS5qc29u WydyZXN1bHQnXSkKLSAgICAgICAgdXRpbHMud3JpdGVfbm9kZV9pbmZvKCJzaWQiLCBzZXJ2ZXJf ZGljdCkKLQotICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlv biBkZWxldGUgdGhlIHNlcnZlciBmcm9tIFNRTGl0ZSAiIiIKLSAgICAgICAgdXRpbHMuZGVsZXRl X3NlcnZlcl93aXRoX2FwaShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQpCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3Nl cnZlcl9kZWxldGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy90ZXN0cy90ZXN0X3NlcnZlcl9kZWxldGUucHkKaW5kZXggMzA5MTdiZDNjLi43ODkxMWY1YTgg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rl c3RzL3Rlc3Rfc2VydmVyX2RlbGV0ZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9kZWxldGUucHkKQEAgLTksMTUgKzks MTQgQEAKIAogZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRv cgogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFz IHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHNlcnZlcnNfdXRpbHMKIAogCiBjbGFzcyBT ZXJ2ZXJEZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgIiIiIFRoaXMgY2xh c3Mgd2lsbCBkZWxldGUgdGhlIGxhc3Qgc2VydmVyIHByZXNlbnQgdW5kZXIgdHJlZSBub2RlLiIi IgogCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIHRoZSBkZWZhdWx0IHVy bCBmb3Igc2VydmVyIG5vZGUKLSAgICAgICAgKCdEZWZhdWx0IFNlcnZlciBOb2RlIHVybCcsIGRp Y3QodXJsPScvYnJvd3Nlci9zZXJ2ZXIvb2JqLycpKQotICAgIF0KKyAgICBzY2VuYXJpb3MgPSB1 dGlscy5nZW5lcmF0ZV9zY2VuYXJpb3MoJ2RlbGV0ZV9zZXJ2ZXInLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJzX3V0aWxzLnRlc3RfY2FzZXMpCiAKICAg ICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gYWRkIHRoZSBzZXJ2 ZXIgdG8gdGVzdCB0aGUgREVMRVRFIEFQSSIiIgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfZ2V0LnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJf Z2V0LnB5CmluZGV4IDBiNGRjMTgzYi4uNWE4M2UyYTA4IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9nZXQucHkK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVz dF9zZXJ2ZXJfZ2V0LnB5CkBAIC0xMCw2ICsxMCw4IEBACiBmcm9tIHBnYWRtaW4udXRpbHMucm91 dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVu dF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVz dF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBzZXJ2ZXJzX3V0aWxzCitp bXBvcnQganNvbgogCiAKIGNsYXNzIFNlcnZlcnNHZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRv cik6CkBAIC0xOCwyNiArMjAsNTAgQEAgY2xhc3MgU2VydmVyc0dldFRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKICAgICBieSByZXNwb25zZSBjb2RlLgogICAgICIiIgogCi0gICAgc2NlbmFy aW9zID0gWwotICAgICAgICAjIEZldGNoIHRoZSBkZWZhdWx0IHVybCBmb3Igc2VydmVyIG5vZGUK LSAgICAgICAgKCdEZWZhdWx0IFNlcnZlciBOb2RlIHVybCcsIGRpY3QodXJsPScvYnJvd3Nlci9z ZXJ2ZXIvb2JqLycpKQotICAgIF0KKyAgICBzY2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2Vu YXJpb3MoJ2dldF9zZXJ2ZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZXJ2ZXJzX3V0aWxzLnRlc3RfY2FzZXMpCiAKICAgICBkZWYgc2V0VXAoc2VsZik6CiAg ICAgICAgICIiIlRoaXMgZnVuY3Rpb24gYWRkIHRoZSBzZXJ2ZXIgdG8gdGVzdCB0aGUgR0VUIEFQ SSIiIgotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHV0aWxzLmNyZWF0ZV9zZXJ2ZXIoc2VsZi5z ZXJ2ZXIpCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ3NoYXJlZCcpOgorCisgICAgICAgICAg ICBzZWxmLnNlcnZlclsnc2hhcmVkJ10gPSBUcnVlCisgICAgICAgICAgICB1cmwgPSAiezB9ezF9 LyIuZm9ybWF0KHNlbGYudXJsLCB1dGlscy5TRVJWRVJfR1JPVVApCisgICAgICAgICAgICByZXNw b25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCisgICAgICAgICAgICAgICAgdXJsLAorICAgICAgICAg ICAgICAgIGRhdGE9anNvbi5kdW1wcyhzZWxmLnNlcnZlciksCisgICAgICAgICAgICAgICAgY29u dGVudF90eXBlPSdodG1sL2pzb24nCisgICAgICAgICAgICApCisgICAgICAgICAgICByZXNwb25z ZV9kYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkKKyAgICAg ICAgICAgIHNlbGYuc2VydmVyX2lkID0gcmVzcG9uc2VfZGF0YVsnbm9kZSddWydfaWQnXQorICAg ICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSB1dGlscy5jcmVhdGVfc2Vy dmVyKHNlbGYuc2VydmVyKQogICAgICAgICBzZXJ2ZXJfZGljdCA9IHsic2VydmVyX2lkIjogc2Vs Zi5zZXJ2ZXJfaWR9CiAgICAgICAgIHV0aWxzLndyaXRlX25vZGVfaW5mbygic2lkIiwgc2VydmVy X2RpY3QpCiAKKyAgICBkZWYgZ2V0X3NlcnZlcihzZWxmLCBzZXJ2ZXJfaWQpOgorICAgICAgICBy ZXR1cm4gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkg KyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKwog ICAgIGRlZiBydW5UZXN0KHNlbGYpOgogICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGZl dGNoIHRoZSBhZGRlZCBzZXJ2ZXJzIHRvIG9iamVjdCBicm93c2VyLiAiIiIKICAgICAgICAgc2Vy dmVyX2lkID0gcGFyZW50X25vZGVfZGljdFsic2VydmVyIl1bLTFdWyJzZXJ2ZXJfaWQiXQogICAg ICAgICBpZiBub3Qgc2VydmVyX2lkOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJTZXJ2 ZXIgbm90IGZvdW5kIHRvIHRlc3QgR0VUIEFQSSIpCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50 ZXN0ZXIuZ2V0KHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VydmVyX2lkKSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAg ICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIHJl c3BvbnNlID0gTm9uZQorICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAg ICAgICBpZiBoYXNhdHRyKHNlbGYsICJpbmNvcnJlY3Rfc2VydmVyX2lkIik6CisgICAgICAgICAg ICAgICAgc2VydmVyX2lkID0gOTk5OQorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAic2Vy dmVyX2xpc3QiKToKKyAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQgPSAnJworICAgICAgICAgICAg aWYgaGFzYXR0cihzZWxmLCAic2VydmVyX25vZGUiKToKKyAgICAgICAgICAgICAgICBzZXJ2ZXJf aWQgPSAnJworICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnc2hhcmVkJyk6CisgICAgICAg ICAgICAgICAgc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfaWQKKyAgICAgICAgICAgIHJlc3BvbnNl ID0gc2VsZi5nZXRfc2VydmVyKHNlcnZlcl9pZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo cmVzcG9uc2Uuc3RhdHVzX2NvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhw ZWN0ZWRfZGF0YVsic3RhdHVzX2NvZGUiXSkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAg ICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhlIHNlcnZlciBmcm9tIFNRTGl0ZSAiIiIK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rl c3RzL3Rlc3Rfc2VydmVyX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX3B1dC5weQppbmRleCAzMWM3YTQ3NmUuLjc0Njc0 YzdjYiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvdGVzdHMvdGVzdF9zZXJ2ZXJfcHV0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX3B1dC5weQpAQCAtMTEsMzIgKzEx LDYxIEBAIGltcG9ydCBqc29uCiAKIGZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFz ZVRlc3RHZW5lcmF0b3IKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQg dGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBzZXJ2ZXJzX3V0aWxz CiAKIAogY2xhc3MgU2VydmVyVXBkYXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAg ICIiIiBUaGlzIGNsYXNzIHdpbGwgdXBkYXRlIHNlcnZlcidzIGNvbW1lbnQgZmllbGQuICIiIgog Ci0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIHRoZSBkZWZhdWx0IHVybCBm b3Igc2VydmVyIG5vZGUKLSAgICAgICAgKCdEZWZhdWx0IFNlcnZlciBOb2RlIHVybCcsIGRpY3Qo dXJsPScvYnJvd3Nlci9zZXJ2ZXIvb2JqLycpKQotICAgIF0KKyAgICBzY2VuYXJpb3MgPSB1dGls cy5nZW5lcmF0ZV9zY2VuYXJpb3MoJ3VwZGF0ZV9zZXJ2ZXInLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJzX3V0aWxzLnRlc3RfY2FzZXMpCiAKICAgICBk ZWYgc2V0VXAoc2VsZik6CiAgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gYWRkIHRoZSBzZXJ2ZXIg dG8gdGVzdCB0aGUgUFVUIEFQSSIiIgotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHV0aWxzLmNy ZWF0ZV9zZXJ2ZXIoc2VsZi5zZXJ2ZXIpCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ2NsZWFy X3NhdmVfcGFzc3dvcmQnKToKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWydzYXZlX3Bhc3N3b3Jk J10gPSAxCisgICAgICAgIGNyZWF0ZV9zZXJ2ZXJfdXJsID0gIi9icm93c2VyL3NlcnZlci9vYmov ezB9LyIuZm9ybWF0KAorICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQKQorCisgICAgICAg IHNlbGYuc2VydmVyX2lkID0gXAorICAgICAgICAgICAgc2VydmVyc191dGlscy5jcmVhdGVfc2Vy dmVyX3dpdGhfYXBpKHNlbGYsIGNyZWF0ZV9zZXJ2ZXJfdXJsKQogICAgICAgICBzZXJ2ZXJfZGlj dCA9IHsic2VydmVyX2lkIjogc2VsZi5zZXJ2ZXJfaWR9CiAgICAgICAgIHV0aWxzLndyaXRlX25v ZGVfaW5mbygic2lkIiwgc2VydmVyX2RpY3QpCiAKKyAgICBkZWYgdXBkYXRlX3NlcnZlcihzZWxm KToKKyAgICAgICAgcmV0dXJuIHNlbGYudGVzdGVyLnB1dCgKKyAgICAgICAgICAgIHNlbGYudXJs ICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYu c2VydmVyX2lkKSwgZGF0YT1qc29uLmR1bXBzKHNlbGYudGVzdF9kYXRhKSwKKyAgICAgICAgICAg IGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAgIGRlZiBjb25uZWN0X3RvX3NlcnZlcihz ZWxmLCB1cmwpOgorICAgICAgICByZXR1cm4gc2VsZi50ZXN0ZXIucG9zdCgKKyAgICAgICAgICAg IHVybCwKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhzZWxmLnNlcnZlciksCisgICAgICAg ICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKKyAgICAgICAgKQorCiAgICAgZGVmIHJ1blRl c3Qoc2VsZik6CiAgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gdXBkYXRlIHRoZSBzZXJ2ZXIgZGV0 YWlscyIiIgogICAgICAgICBpZiBub3Qgc2VsZi5zZXJ2ZXJfaWQ6CiAgICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIk5vIHNlcnZlciB0byB1cGRhdGUuIikKLSAgICAgICAgZGF0YSA9IHsiY29t bWVudCI6IHNlbGYuc2VydmVyWydjb21tZW50J10sICJpZCI6IHNlbGYuc2VydmVyX2lkfQotICAg ICAgICBwdXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoCi0gICAgICAgICAgICBzZWxmLnVy bCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKLSAgICAgICAgICAgIHN0cihzZWxm LnNlcnZlcl9pZCksIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKLSAgICAgICAgICAgIGNvbnRlbnRf dHlwZT0naHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwdXRfcmVzcG9uc2Uu c3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgaWYgJ2NvbW1lbnQnIGluIHNlbGYudGVzdF9kYXRh OgorICAgICAgICAgICAgc2VsZi50ZXN0X2RhdGFbImNvbW1lbnQiXSA9IHNlbGYuc2VydmVyWydj b21tZW50J10KKyAgICAgICAgc2VsZi50ZXN0X2RhdGFbImlkIl0gPSBzZWxmLnNlcnZlcl9pZAor ICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAgICAgICBpZiBoYXNhdHRy KHNlbGYsICdzZXJ2ZXJfY29ubmVjdGVkJyk6CisgICAgICAgICAgICAgICAgdXJsID0gJy9icm93 c2VyL3NlcnZlci9jb25uZWN0L3swfS97MX0nLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAg dXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCkK KyAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsncGFzc3dvcmQnXSA9IHNlbGYuc2VydmVyWydk Yl9wYXNzd29yZCddCisgICAgICAgICAgICAgICAgc2VsZi5jb25uZWN0X3RvX3NlcnZlcih1cmwp CisgICAgICAgICAgICBwdXRfcmVzcG9uc2UgPSBzZWxmLnVwZGF0ZV9zZXJ2ZXIoKQorICAgICAg ICBlbHNlOgorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnd3Jvbmdfc2VydmVyX2lkJyk6 CisgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSA5OTk5CisgICAgICAgICAgICBwdXRf cmVzcG9uc2UgPSBzZWxmLnVwZGF0ZV9zZXJ2ZXIoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs cyhwdXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZXhwZWN0ZWRfZGF0YVsic3RhdHVzX2NvZGUiXSkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxm KToKICAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhlIHNlcnZlciBmcm9tIFNRTGl0 ZSIiIgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvdGVzdHMvdGVzdF9zaGFyZWRfc2VydmVyLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zaGFyZWRfc2VydmVyLnB5Cm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYjNmODIxNWE0Ci0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zaGFy ZWRfc2VydmVyLnB5CkBAIC0wLDAgKzEsMTM0IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBw Z0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIw MjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxl YXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor Citmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9t IHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcmVncmVzc2lvbi5weXRo b25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1 dGlscyBhcyBzZXJ2ZXJzX3V0aWxzCitpbXBvcnQganNvbgorZnJvbSByZWdyZXNzaW9uLnRlc3Rf c2V0dXAgaW1wb3J0IGNvbmZpZ19kYXRhCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRp bHMudGVzdF91dGlscyBpbXBvcnQgXAorICAgIGNyZWF0ZV91c2VyX3dpc2VfdGVzdF9jbGllbnQK K2ltcG9ydCBjb25maWcKKwordGVzdF91c2VyX2RldGFpbHMgPSBjb25maWdfZGF0YVsKKyAgICAn cGdBZG1pbjRfdGVzdF9ub25fYWRtaW5fY3JlZGVudGlhbHMnXQorCisKK2NsYXNzIFNoYXJlZFNl cnZlcnNHZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiCisgICAgVGhpcyBj bGFzcyB3aWxsIGZldGNoIGFkZGVkIHNlcnZlcnMgdW5kZXIgZGVmYXVsdCBzZXJ2ZXIgZ3JvdXAK KyAgICBieSByZXNwb25zZSBjb2RlLgorICAgICIiIgorCisgICAgc2NlbmFyaW9zID0gdXRpbHMu Z2VuZXJhdGVfc2NlbmFyaW9zKCdnZXRfc2hhcmVkX3NlcnZlcicsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcnNfdXRpbHMudGVzdF9jYXNlcykKKworICAg IGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBhZGQgdGhlIHNlcnZl ciB0byB0ZXN0IHRoZSBHRVQgQVBJIiIiCisKKyAgICAgICAgaWYgY29uZmlnLlNFUlZFUl9NT0RF IGlzIEZhbHNlOgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgKKyAgICAgICAgICAgICAgICAi Q2FuIG5vdCBydW4gc2hhcmVkIHNlcnZlcnMgdGVzdCBjYXNlcyBpbiB0aGUgU0VSVkVSIG1vZGUu IgorICAgICAgICAgICAgKQorICAgICAgICBzZWxmLnNlcnZlclsnc2hhcmVkJ10gPSBUcnVlCisg ICAgICAgIHVybCA9ICJ7MH17MX0vIi5mb3JtYXQoc2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9V UCkKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAorICAgICAgICAgICAgdXJs LAorICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYuc2VydmVyKSwKKyAgICAgICAgICAg IGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICApCisgICAgICAgIHJlc3BvbnNlX2Rh dGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQorICAgICAgICBz ZWxmLnNlcnZlcl9pZCA9IHJlc3BvbnNlX2RhdGFbJ25vZGUnXVsnX2lkJ10KKworICAgICAgICBz ZXJ2ZXJfZGljdCA9IHsic2VydmVyX2lkIjogc2VsZi5zZXJ2ZXJfaWR9CisgICAgICAgIHV0aWxz LndyaXRlX25vZGVfaW5mbygic2lkIiwgc2VydmVyX2RpY3QpCisKKyAgICBkZWYgZ2V0X3NlcnZl cihzZWxmLCBzZXJ2ZXJfaWQpOgorICAgICAgICByZXR1cm4gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYu dXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKworICAgIEBjcmVhdGVfdXNlcl93aXNlX3Rlc3Rf Y2xpZW50KHRlc3RfdXNlcl9kZXRhaWxzKQorICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAg ICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIHRoZSBhZGRlZCBzZXJ2ZXJzIHRvIG9iamVj dCBicm93c2VyLiAiIiIKKyAgICAgICAgaWYgbm90IHNlbGYuc2VydmVyX2lkOgorICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJTZXJ2ZXIgbm90IGZvdW5kIHRvIHRlc3QgR0VUIEFQSSIpCisg ICAgICAgIHJlc3BvbnNlID0gTm9uZQorICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6 CisgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdub19zZXJ2ZXJfaWQnKToKKyAgICAgICAg ICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdzZXJ2ZXJfbGlzdCcpOgorICAgICAgICAgICAgICAg ICAgICBzZWxmLnVybCA9ICcvYnJvd3Nlci9zZXJ2ZXIvbm9kZXMvJworICAgICAgICAgICAgICAg IHNlcnZlcl9pZCA9ICcnCisgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmdldF9zZXJ2 ZXIoc2VydmVyX2lkKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXNwb25z ZSA9IHNlbGYuZ2V0X3NlcnZlcihzZWxmLnNlcnZlcl9pZCkKKyAgICAgICAgc2VsZi5hc3NlcnRF cXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZXhwZWN0ZWRfZGF0YVsic3RhdHVzX2NvZGUiXSkKKworICAgIGRlZiB0ZWFyRG93bihzZWxm KToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhlIHNlcnZlciBmcm9tIFNRTGl0 ZSAiIiIKKyAgICAgICAgdXRpbHMuZGVsZXRlX3NlcnZlcl93aXRoX2FwaShzZWxmLnRlc3Rlciwg c2VsZi5zZXJ2ZXJfaWQpCisKKworY2xhc3MgU2hhcmVkU2VydmVyVXBkYXRlVGVzdENhc2UoQmFz ZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgdXBkYXRlIHNlcnZlcidz IGNvbW1lbnQgZmllbGQuICIiIgorCisgICAgc2NlbmFyaW9zID0gdXRpbHMuZ2VuZXJhdGVfc2Nl bmFyaW9zKCd1cGRhdGVfc2hhcmVkX3NlcnZlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlcnZlcnNfdXRpbHMudGVzdF9jYXNlcykKKworICAgIGRlZiBzZXRV cChzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBhZGQgdGhlIHNlcnZlciB0byB0ZXN0 IHRoZSBQVVQgQVBJIiIiCisgICAgICAgIGlmIGNvbmZpZy5TRVJWRVJfTU9ERSBpcyBGYWxzZToK KyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoCisgICAgICAgICAgICAgICAgIkNhbiBub3QgcnVu IHNoYXJlZCBzZXJ2ZXJzIHRlc3QgY2FzZXMgaW4gdGhlIERlc2t0b3AgbW9kZS4iCisgICAgICAg ICAgICApCisgICAgICAgIHNlbGYuc2VydmVyWydzaGFyZWQnXSA9IFRydWUKKyAgICAgICAgaWYg aGFzYXR0cihzZWxmLCAnY2xlYXJfc2F2ZV9wYXNzd29yZCcpOgorICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJbJ3NhdmVfcGFzc3dvcmQnXSA9IDEKKyAgICAgICAgY3JlYXRlX3NlcnZlcl91cmwgPSAi L2Jyb3dzZXIvc2VydmVyL29iai97MH0vIi5mb3JtYXQoCisgICAgICAgICAgICB1dGlscy5TRVJW RVJfR1JPVVApCisKKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBcCisgICAgICAgICAgICBzZXJ2 ZXJzX3V0aWxzLmNyZWF0ZV9zZXJ2ZXJfd2l0aF9hcGkoc2VsZiwgY3JlYXRlX3NlcnZlcl91cmwp CisgICAgICAgIHNlcnZlcl9kaWN0ID0geyJzZXJ2ZXJfaWQiOiBzZWxmLnNlcnZlcl9pZH0KKyAg ICAgICAgdXRpbHMud3JpdGVfbm9kZV9pbmZvKCJzaWQiLCBzZXJ2ZXJfZGljdCkKKworICAgIGRl ZiB1cGRhdGVfc2VydmVyKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi50ZXN0ZXIucHV0KAor ICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisg ICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpLCBkYXRhPWpzb24uZHVtcHMoc2VsZi50ZXN0 X2RhdGEpLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAgZGVm IGNvbm5lY3RfdG9fc2VydmVyKHNlbGYsIHVybCk6CisgICAgICAgIHJldHVybiBzZWxmLnRlc3Rl ci5wb3N0KAorICAgICAgICAgICAgdXJsLAorICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNl bGYuc2VydmVyKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAg ICApCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB1 cGRhdGUgdGhlIHNlcnZlciBkZXRhaWxzIiIiCisgICAgICAgIGlmIG5vdCBzZWxmLnNlcnZlcl9p ZDoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8gc2VydmVyIHRvIHVwZGF0ZS4iKQor ICAgICAgICBpZiAnY29tbWVudCcgaW4gc2VsZi50ZXN0X2RhdGE6CisgICAgICAgICAgICBzZWxm LnRlc3RfZGF0YVsiY29tbWVudCJdID0gc2VsZi5zZXJ2ZXJbJ2NvbW1lbnQnXQorICAgICAgICBz ZWxmLnRlc3RfZGF0YVsiaWQiXSA9IHNlbGYuc2VydmVyX2lkCisgICAgICAgIGlmIHNlbGYuaXNf cG9zaXRpdmVfdGVzdDoKKyAgICAgICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudXBkYXRlX3Nl cnZlcigpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICd3cm9u Z19zZXJ2ZXJfaWQnKToKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IDk5OTkKKyAg ICAgICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudXBkYXRlX3NlcnZlcigpCisgICAgICAgIHNl bGYuYXNzZXJ0RXF1YWxzKHB1dF9yZXNwb25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5leHBlY3RlZF9kYXRhWyJzdGF0dXNfY29kZSJdKQorCisgICAgZGVm IHRlYXJEb3duKHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgc2Vy dmVyIGZyb20gU1FMaXRlIiIiCisgICAgICAgIHV0aWxzLmRlbGV0ZV9zZXJ2ZXJfd2l0aF9hcGko c2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdXRpbHMucHkgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy91dGlscy5weQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjg2ODBiMjlmYgotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3V0aWxzLnB5CkBA IC0wLDAgKzEsNTIgQEAKK2ltcG9ydCBvcworaW1wb3J0IGpzb24KK2ltcG9ydCBzcWxpdGUzCitp bXBvcnQgY29uZmlnCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRl c3RfdXRpbHMgYXMgdXRpbHMKKworCitDVVJSRU5UX1BBVEggPSBvcy5wYXRoLmRpcm5hbWUob3Mu cGF0aC5yZWFscGF0aChfX2ZpbGVfXykpCit3aXRoIG9wZW4oQ1VSUkVOVF9QQVRIICsgIi9zZXJ2 ZXJzX3Rlc3RfZGF0YS5qc29uIikgYXMgZGF0YV9maWxlOgorICAgIHRlc3RfY2FzZXMgPSBqc29u LmxvYWQoZGF0YV9maWxlKQorCisKK2RlZiBjcmVhdGVfc2VydmVyKHNlcnZlciwgU0VSVkVSX0dS T1VQKToKKyAgICAiIiJUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gY3JlYXRlIHNlcnZlciIiIgor ICAgIHRyeToKKyAgICAgICAgY29ubiA9IHNxbGl0ZTMuY29ubmVjdChjb25maWcuVEVTVF9TUUxJ VEVfUEFUSCkKKyAgICAgICAgIyBDcmVhdGUgdGhlIHNlcnZlcgorICAgICAgICBjdXIgPSBjb25u LmN1cnNvcigpCisgICAgICAgIGlmICdzaGFyZWQnIG5vdCBpbiBzZXJ2ZXI6CisgICAgICAgICAg ICBzZXJ2ZXJbJ3NoYXJlZCddID0gRmFsc2UKKyAgICAgICAgc2VydmVyX2RldGFpbHMgPSAoMSwg U0VSVkVSX0dST1VQLCBzZXJ2ZXJbJ25hbWUnXSwgc2VydmVyWydob3N0J10sCisgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlcnZlclsncG9ydCddLCBzZXJ2ZXJbJ2RiJ10sIHNlcnZlclsndXNl cm5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydyb2xlJ10sIHNlcnZl clsnc3NsbW9kZSddLCBzZXJ2ZXJbJ2NvbW1lbnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VydmVyWydzaGFyZWQnXSkKKyAgICAgICAgY3VyLmV4ZWN1dGUoJ0lOU0VSVCBJTlRPIHNl cnZlciAodXNlcl9pZCwgc2VydmVyZ3JvdXBfaWQsIG5hbWUsIGhvc3QsICcKKyAgICAgICAgICAg ICAgICAgICAgJ3BvcnQsIG1haW50ZW5hbmNlX2RiLCB1c2VybmFtZSwgcm9sZSwgc3NsX21vZGUs JworICAgICAgICAgICAgICAgICAgICAnIGNvbW1lbnQsIHNoYXJlZCkgVkFMVUVTICg/LD8sPyw/ LD8sPyw/LD8sPyw/LD8pJywKKyAgICAgICAgICAgICAgICAgICAgc2VydmVyX2RldGFpbHMpCisg ICAgICAgIHNlcnZlcl9pZCA9IGN1ci5sYXN0cm93aWQKKyAgICAgICAgY29ubi5jb21taXQoKQor ICAgICAgICBjb25uLmNsb3NlKCkKKworICAgICAgICB0eXBlID0gdXRpbHMuZ2V0X3NlcnZlcl90 eXBlKHNlcnZlcikKKyAgICAgICAgc2VydmVyWyd0eXBlJ10gPSB0eXBlCisKKyAgICAgICAgcmV0 dXJuIHNlcnZlcl9pZAorICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXhjZXB0aW9uOgorICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkVycm9yIHdoaWxlIGNyZWF0aW5nIHNlcnZlci4gJXMiICUgZXhj ZXB0aW9uKQorCisKK2RlZiBjcmVhdGVfc2VydmVyX3dpdGhfYXBpKHNlbGYsIHVybCk6CisgICAg dHJ5OgorICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCisgICAgICAgICAgICB1 cmwsCisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoc2VsZi5zZXJ2ZXIpLAorICAgICAgICAg ICAgY29udGVudF90eXBlPSdodG1sL2pzb24nCisgICAgICAgICkKKyAgICAgICAgcmVzcG9uc2Vf ZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCisgICAgICAg IHNlcnZlcl9pZCA9IHJlc3BvbnNlX2RhdGFbJ25vZGUnXVsnX2lkJ10KKyAgICAgICAgcmV0dXJu IHNlcnZlcl9pZAorICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXhjZXB0aW9uOgorICAgICAgICBy YWlzZSBFeGNlcHRpb24oIkVycm9yIHdoaWxlIGNyZWF0aW5nIHNlcnZlci4gJXMiICUgZXhjZXB0 aW9uKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3N0YXRp Yy9pbWcvc2VydmVyX2dyb3VwX3NoYXJlZC5zdmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc3RhdGljL2ltZy9zZXJ2ZXJfZ3JvdXBfc2hhcmVkLnN2ZwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjZhNGUyMmJmOAotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zdGF0aWMvaW1nL3NlcnZlcl9ncm91cF9z aGFyZWQuc3ZnCkBAIC0wLDAgKzEsNDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9 InV0Zi04Ij8+Cis8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjQuMi4zLCBTVkcg RXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+Cis8c3ZnIHZl cnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2 ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0i MHB4IgorCSB2aWV3Qm94PSIwIDAgMTYgMTYiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcg MCAwIDE2IDE2OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3Mi PgorCS5zdDB7ZmlsbDojRjJGMkYyO30KKwkuc3Qxe2ZpbGw6IzlCQTVCMDt9CisJLnN0MntmaWxs Om5vbmU7c3Ryb2tlOiM5QkE1QjA7c3Ryb2tlLXdpZHRoOjAuNzU7c3Ryb2tlLW1pdGVybGltaXQ6 MTt9CisJLnN0M3tmaWxsOiNGN0Y3Rjc7fQorCS5zdDR7ZmlsbDojMzU0QTVGO30KKzwvc3R5bGU+ Cis8Zz4KKwk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNi43LDIuMWg0LjZjMC42LDAsMS4xLDAuNSwx LjEsMS4xVjRjMCwwLjYtMC41LDEuMS0xLjEsMS4xSDYuN0M2LjEsNS4xLDUuNiw0LjYsNS42LDRW My4yCisJCUM1LjYsMi42LDYuMSwyLjEsNi43LDIuMXoiLz4KKwk8cGF0aCBjbGFzcz0ic3QxIiBk PSJNMTEuMywyLjVjMC40LDAsMC44LDAuMywwLjgsMC44djAuOGMwLDAuNC0wLjMsMC44LTAuOCww LjhINi43QzYuMyw0LjgsNiw0LjUsNiw0LjFWMy4yCisJCWMwLTAuNCwwLjMtMC43LDAuOC0wLjdI MTEuMyBNMTEuMywxLjdINi43Yy0wLjgsMC0xLjUsMC43LTEuNSwxLjVWNGMwLDAuOCwwLjcsMS41 LDEuNSwxLjVoNC42YzAuOCwwLDEuNS0wLjcsMS41LTEuNVYzLjIKKwkJQzEyLjgsMi40LDEyLjEs MS43LDExLjMsMS43TDExLjMsMS43eiIvPgorCTxsaW5lIGNsYXNzPSJzdDIiIHgxPSI4LjkiIHkx PSIzLjYiIHgyPSI2LjgiIHkyPSIzLjYiLz4KKwk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNi43LDUu Mmg0LjZjMC42LDAsMS4xLDAuNSwxLjEsMS4xdjAuOGMwLDAuNi0wLjUsMS4xLTEuMSwxLjFINi43 Yy0wLjYsMC0xLjEtMC41LTEuMS0xLjFWNi4zCisJCUM1LjYsNS43LDYuMSw1LjIsNi43LDUuMnoi Lz4KKwk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTEuMyw1LjZjMC40LDAsMC44LDAuMywwLjgsMC44 djAuOGMwLDAuNC0wLjMsMC44LTAuOCwwLjhINi43QzYuMyw3LjksNiw3LjYsNiw3LjFWNi4zCisJ CWMwLTAuNCwwLjMtMC43LDAuOC0wLjdMMTEuMyw1LjYgTTExLjMsNC44SDYuN2MtMC44LDAtMS41 LDAuNy0xLjUsMS41djAuOGMwLDAuOCwwLjcsMS41LDEuNSwxLjVoNC42YzAuOCwwLDEuNS0wLjcs MS41LTEuNVY2LjMKKwkJQzEyLjgsNS41LDEyLjEsNC44LDExLjMsNC44TDExLjMsNC44eiIvPgor CTxsaW5lIGNsYXNzPSJzdDIiIHgxPSI4LjkiIHkxPSI2LjciIHgyPSI2LjgiIHkyPSI2LjciLz4K Kwk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNi43LDguM2g0LjZjMC42LDAsMS4xLDAuNSwxLjEsMS4x djAuOWMwLDAuNi0wLjUsMS4xLTEuMSwxLjFsMCwwSDYuN2MtMC42LDAtMS4xLTAuNS0xLjEtMS4x bDAsMFY5LjQKKwkJQzUuNiw4LjgsNi4xLDguMyw2LjcsOC4zTDYuNyw4LjN6Ii8+CisJPHBhdGgg Y2xhc3M9InN0MSIgZD0iTTExLjMsOC43YzAuNCwwLDAuOCwwLjMsMC44LDAuOHYwLjhjMCwwLjQt MC4zLDAuOC0wLjgsMC44SDYuN0M2LjMsMTEsNiwxMC43LDYsMTAuM1Y5LjRDNiw5LDYuMyw4Ljcs Ni43LDguNworCQlIMTEuMyBNMTEuMyw3LjlINi43Yy0wLjgsMC0xLjUsMC43LTEuNSwxLjV2MC44 YzAsMC44LDAuNywxLjUsMS41LDEuNWg0LjZjMC44LDAsMS41LTAuNywxLjUtMS41VjkuNEMxMi44 LDguNiwxMi4xLDcuOSwxMS4zLDcuOXoKKwkJIi8+CisJPGxpbmUgY2xhc3M9InN0MiIgeDE9Ijgu OSIgeTE9IjkuOCIgeDI9IjYuOCIgeTI9IjkuOCIvPgorPC9nPgorPHBhdGggY2xhc3M9InN0MyIg ZD0iTTExLjYsMTAuNWMtMC42LDAuMy0wLjgsMC4xLTEuMS0wLjJjLTAuMS0wLjItMC4zLTAuNC0w LjYtMC41TDcuMSw4LjVjLTAuMy0wLjEtMC43LTAuMi0xLTAuMgorCUM1LjEsOC4xLDQuMiw4LjQs My40LDlMMiwxMC4xdjIuN2gwLjl2LTAuMmwzLjcsMS44YzAuNCwwLjIsMC43LDAuMywxLjEsMC4z YzAuMywwLDAuNy0wLjEsMS0wLjJsNi4xLTIuNmMwLjMtMC4xLDAuNi0wLjQsMC43LTAuNworCWMw LjEtMC4zLDAuMS0wLjcsMC0xYy0wLjMtMC42LTEuMS0wLjktMS43LTAuNmwtMC40LDAuMkwxMS42 LDEwLjUiLz4KKzxwYXRoIGNsYXNzPSJzdDQiIGQ9Ik0xNS41LDEwLjJjLTAuMy0wLjYtMS4xLTAu OS0xLjctMC42bC0wLjQsMC4ybC0xLjgsMC44bDAuMywwLjhsMS44LTAuOGwwLjQtMC4yYzAuMi0w LjEsMC41LDAsMC42LDAuMgorCWMwLjEsMC4xLDAuMSwwLjIsMCwwLjNjMCwwLjEtMC4xLDAuMi0w LjIsMC4ybC02LjEsMi42Yy0wLjUsMC4yLTEsMC4yLTEuNCwwbC00LjEtMnYtMS4ybDEtMC44QzQu NSw5LjIsNS4yLDksNiw5LjEKKwljMC4zLDAsMC42LDAuMSwwLjgsMC4ybDIuOCwxLjJjMC4xLDAs MC4xLDAuMSwwLjIsMC4yYzAuMSwwLjEsMC4xLDAuMywwLDAuNGMwLDAsMCwwLjEtMC4xLDAuMWMt MC4xLDAuMS0wLjMsMC4yLTAuNSwwLjFsLTIuMi0xCisJbC0wLjQsMC44bDIuMiwxYzAuMiwwLjEs MC40LDAuMSwwLjUsMC4xYzAuNCwwLDAuNy0wLjIsMS0wLjRjMC4xLTAuMSwwLjItMC4yLDAuMi0w LjNjMC4yLTAuNCwwLjEtMC45LTAuMS0xLjIKKwljLTAuMS0wLjItMC4zLTAuNC0wLjYtMC41TDcu MSw4LjVjLTAuMy0wLjEtMC43LTAuMi0xLTAuMkM1LjEsOC4xLDQuMiw4LjQsMy40LDlMMi45LDku NFY5LjNjMC0wLjYtMC40LTEtMS0xSDEuNGMtMC42LDAtMSwwLjQtMSwxCisJdjQuMWMwLDAuNiww LjQsMSwxLDFoMC41YzAuNiwwLDEtMC40LDEtMXYtMC42bDAsMHYtMC4ybDMuNywxLjhjMC40LDAu MiwwLjcsMC4zLDEuMSwwLjNjMC4zLDAsMC43LTAuMSwxLTAuMmw2LjEtMi42CisJYzAuMy0wLjEs MC42LTAuNCwwLjctMC43QzE1LjcsMTAuOSwxNS43LDEwLjUsMTUuNSwxMC4yeiBNMS45LDEzLjRI MS40VjkuM2gwLjVWMTMuNHoiLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3N0YXRpYy9qcy9zZXJ2ZXJfZ3JvdXAuanMgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc3RhdGljL2pzL3NlcnZlcl9ncm91cC5qcwppbmRleCA5 YmQ3ZGYwZjMuLmFjMWEwYzgyMSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3N0YXRpYy9qcy9zZXJ2ZXJfZ3JvdXAuanMKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3N0YXRpYy9qcy9zZXJ2ZXJfZ3JvdXAuanMKQEAgLTksOCArOSw4 IEBACiAKIGRlZmluZSgncGdhZG1pbi5ub2RlLnNlcnZlcl9ncm91cCcsIFsKICAgJ3NvdXJjZXMv Z2V0dGV4dCcsICdzb3VyY2VzL3VybF9mb3InLCAnanF1ZXJ5JywgJ3VuZGVyc2NvcmUnLAotICAn c291cmNlcy9wZ2FkbWluJywgJ3BnYWRtaW4uYnJvd3NlcicsICdwZ2FkbWluLmJyb3dzZXIubm9k ZScsCi1dLCBmdW5jdGlvbihnZXR0ZXh0LCB1cmxfZm9yLCAkLCBfLCBwZ0FkbWluKSB7CisgICdz b3VyY2VzL3BnYWRtaW4nLCAncGdhZG1pbi51c2VyX21hbmFnZW1lbnQuY3VycmVudF91c2VyJywg J3BnYWRtaW4uYnJvd3NlcicsICdwZ2FkbWluLmJyb3dzZXIubm9kZScsCitdLCBmdW5jdGlvbihn ZXR0ZXh0LCB1cmxfZm9yLCAkLCBfLCBwZ0FkbWluLCBjdXJyZW50X3VzZXIpIHsKIAogICBpZiAo IXBnQWRtaW4uQnJvd3Nlci5Ob2Rlc1snc2VydmVyX2dyb3VwJ10pIHsKICAgICBwZ0FkbWluLkJy b3dzZXIuTm9kZXNbJ3NlcnZlcl9ncm91cCddID0gcGdBZG1pbi5Ccm93c2VyLk5vZGUuZXh0ZW5k KHsKQEAgLTM5LDE0ICszOSwyNSBAQCBkZWZpbmUoJ3BnYWRtaW4ubm9kZS5zZXJ2ZXJfZ3JvdXAn LCBbCiAgICAgICAgIGRlZmF1bHRzOiB7CiAgICAgICAgICAgaWQ6IHVuZGVmaW5lZCwKICAgICAg ICAgICBuYW1lOiBudWxsLAorICAgICAgICAgIHVzZXJfaWQ6IHVuZGVmaW5lZCwKICAgICAgICAg fSwKICAgICAgICAgc2NoZW1hOiBbCiAgICAgICAgICAgewogICAgICAgICAgICAgaWQ6ICdpZCcs IGxhYmVsOiBnZXR0ZXh0KCdJRCcpLCB0eXBlOiAnaW50JywgZ3JvdXA6IG51bGwsCiAgICAgICAg ICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwKKyAgICAgICAgICAgIHZpc2libGU6IGZ1bmN0aW9u KG1vZGVsKXsKKyAgICAgICAgICAgICAgaWYgKG1vZGVsLmF0dHJpYnV0ZXMudXNlcl9pZCAhPSBj dXJyZW50X3VzZXIuaWQgJiYgIWN1cnJlbnRfdXNlci5pc19hZG1pbikKKyAgICAgICAgICAgICAg ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAg fSwKICAgICAgICAgICB9LHsKICAgICAgICAgICAgIGlkOiAnbmFtZScsIGxhYmVsOiBnZXR0ZXh0 KCdOYW1lJyksIHR5cGU6ICd0ZXh0JywgZ3JvdXA6IG51bGwsCiAgICAgICAgICAgICBtb2RlOiBb J3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwKKyAgICAgICAgICAgIGRpc2FibGVkOiBm dW5jdGlvbihtb2RlbCl7CisgICAgICAgICAgICAgIGlmIChtb2RlbC5hdHRyaWJ1dGVzLnVzZXJf aWQgIT0gY3VycmVudF91c2VyLmlkICYmICFfLmlzVW5kZWZpbmVkKG1vZGVsLmF0dHJpYnV0ZXMu dXNlcl9pZCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgIHJl dHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0sCiAgICAgICAgICAgfSwKICAgICAgICAgXSwKICAg ICAgICAgdmFsaWRhdGU6IGZ1bmN0aW9uKCkgewpAQCAtNjksNyArODAsMTIgQEAgZGVmaW5lKCdw Z2FkbWluLm5vZGUuc2VydmVyX2dyb3VwJywgWwogICAgICAgICAgIHJldHVybiBudWxsOwogICAg ICAgICB9LAogICAgICAgfSksCi0gICAgICBjYW5Ecm9wOiBmdW5jdGlvbihpdGVtRGF0YSkgeyBy ZXR1cm4gaXRlbURhdGEuY2FuX2RlbGV0ZTsgfSwKKworICAgICAgY2FuRHJvcDogZnVuY3Rpb24o aXRlbURhdGEpIHsKKyAgICAgICAgdmFyIHNlcnZlck93bmVyID0gaXRlbURhdGEudXNlcl9pZDsK KyAgICAgICAgaWYgKHNlcnZlck93bmVyICE9IGN1cnJlbnRfdXNlci5pZCkKKyAgICAgICAgICBy ZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOyB9LAogICAgICAgZHJvcEFzUmVtb3Zl OiB0cnVlLAogICAgICAgY2FuRGVsZXRlOiBmdW5jdGlvbihpKSB7CiAgICAgICAgIHZhciBzID0g cGdBZG1pbi5Ccm93c2VyLnRyZWUuc2libGluZ3MoaSwgdHJ1ZSk7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvdGVtcGxhdGVzL2Nzcy9zZXJ2ZXJfZ3JvdXAu Y3NzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3RlbXBsYXRlcy9jc3Mvc2Vy dmVyX2dyb3VwLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjNiNWI4 ZTU4YQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy90ZW1wbGF0ZXMvY3NzL3NlcnZlcl9ncm91cC5jc3MKQEAgLTAsMCArMSwxNyBAQAorLmljb24t c2VydmVyX2dyb3VwIHsKKyAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCd7eyB1cmxfZm9yKCdOT0RF LXNlcnZlcl9ncm91cC5zdGF0aWMnLCBmaWxlbmFtZT0naW1nL3NlcnZlcl9ncm91cC5zdmcnKSB9 fScpICFpbXBvcnRhbnQ7CisgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgIGJhY2tn cm91bmQtc2l6ZTogMjBweCAhaW1wb3J0YW50OworICBhbGlnbi1jb250ZW50OiBjZW50ZXI7Cisg IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CisgIGhlaWdodDogMS4zZW07Cit9CisKKy5pY29uLXNl cnZlcl9ncm91cF9zaGFyZWQgeworICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3t7IHVybF9mb3Io J05PREUtc2VydmVyX2dyb3VwLnN0YXRpYycsIGZpbGVuYW1lPSdpbWcvc2VydmVyX2dyb3VwX3No YXJlZC5zdmcnKSB9fScpICFpbXBvcnRhbnQ7CisgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBl YXQ7CisgIGJhY2tncm91bmQtc2l6ZTogMjBweCAhaW1wb3J0YW50OworICBhbGlnbi1jb250ZW50 OiBjZW50ZXI7CisgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CisgIGhlaWdodDogMS4zZW07Cit9 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9icm93c2VyLmpzIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvYnJvd3Nlci5qcwppbmRleCBmNWFiMDkzOTku LjBlYjc4NDBiMCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvYnJv d3Nlci5qcworKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9icm93c2VyLmpzCkBA IC0xOSw3ICsxOSw3IEBAIGRlZmluZSgncGdhZG1pbi5icm93c2VyJywgWwogICAncGdhZG1pbi5i cm93c2VyLmVycm9yJywgJ3BnYWRtaW4uYnJvd3Nlci5mcmFtZScsCiAgICdwZ2FkbWluLmJyb3dz ZXIubm9kZScsICdwZ2FkbWluLmJyb3dzZXIuY29sbGVjdGlvbicsICdwZ2FkbWluLmJyb3dzZXIu YWN0aXZpdHknLAogICAnc291cmNlcy9jb2RlbWlycm9yL2FkZG9uL2ZvbGQvcGdhZG1pbi1zcWxm b2xkY29kZScsCi0gICdwZ2FkbWluLmJyb3dzZXIua2V5Ym9hcmQnLCAnc291cmNlcy90cmVlL3Bn YWRtaW5fdHJlZV9zYXZlX3N0YXRlJywKKyAgJ3BnYWRtaW4uYnJvd3Nlci5rZXlib2FyZCcsICdz b3VyY2VzL3RyZWUvcGdhZG1pbl90cmVlX3NhdmVfc3RhdGUnLCdqcXVlcnkuYWNpc29ydGFibGUn LCAnanF1ZXJ5LmFjaWZyYWdtZW50JywKIF0sIGZ1bmN0aW9uKAogICB0cmVlLAogICBnZXR0ZXh0 LCB1cmxfZm9yLCByZXF1aXJlLCAkLCBfLApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci90ZW1wbGF0ZXMvYnJvd3Nlci9qcy91dGlscy5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVt cGxhdGVzL2Jyb3dzZXIvanMvdXRpbHMuanMKaW5kZXggMzNkZDY4MDllLi41MTZiNjI2OTcgMTAw NjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVtcGxhdGVzL2Jyb3dzZXIvanMvdXRpbHMu anMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZW1wbGF0ZXMvYnJvd3Nlci9qcy91dGlscy5q cwpAQCAtNDQsNiArNDQsNyBAQCBkZWZpbmUoJ3BnYWRtaW4uYnJvd3Nlci51dGlscycsCiAKICAg cGdBZG1pblsnY3NyZl90b2tlbl9oZWFkZXInXSA9ICd7eyBjdXJyZW50X2FwcC5jb25maWcuZ2V0 KCdXVEZfQ1NSRl9IRUFERVJTJylbMF0gfX0nOwogICBwZ0FkbWluWydjc3JmX3Rva2VuJ10gPSAn e3sgY3NyZl90b2tlbigpIH19JzsKKyAgcGdBZG1pblsnc2VydmVyX21vZGUnXSA9ICd7eyBjdXJy ZW50X2FwcC5jb25maWcuZ2V0KCdTRVJWRVJfTU9ERScpIH19JzsKIAogICAvKiBHZXQgdGhlIGlu YWN0aXZpdHkgcmVsYXRlZCBjb25maWcgKi8KICAgcGdBZG1pblsndXNlcl9pbmFjdGl2aXR5X3Rp bWVvdXQnXSA9IHt7IGN1cnJlbnRfYXBwLmNvbmZpZy5nZXQoJ1VTRVJfSU5BQ1RJVklUWV9USU1F T1VUJykgfX07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9tb2RlbC9fX2luaXRfXy5weSBiL3dl Yi9wZ2FkbWluL21vZGVsL19faW5pdF9fLnB5CmluZGV4IDAzNjgxZTEyMC4uYjMzYWRjMDYyIDEw MDY0NAotLS0gYS93ZWIvcGdhZG1pbi9tb2RlbC9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1p bi9tb2RlbC9fX2luaXRfXy5weQpAQCAtMjksNyArMjksNyBAQCBmcm9tIGZsYXNrX3NxbGFsY2hl bXkgaW1wb3J0IFNRTEFsY2hlbXkKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKLVNDSEVNQV9WRVJT SU9OID0gMjUKK1NDSEVNQV9WRVJTSU9OID0gMjYKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMKQEAg LTE3Myw2ICsxNzMsNyBAQCBjbGFzcyBTZXJ2ZXIoZGIuTW9kZWwpOgogICAgICkKICAgICB0dW5u ZWxfaWRlbnRpdHlfZmlsZSA9IGRiLkNvbHVtbihkYi5TdHJpbmcoNjQpLCBudWxsYWJsZT1UcnVl KQogICAgIHR1bm5lbF9wYXNzd29yZCA9IGRiLkNvbHVtbihkYi5TdHJpbmcoNjQpLCBudWxsYWJs ZT1UcnVlKQorICAgIHNoYXJlZCA9IGRiLkNvbHVtbihkYi5Cb29sZWFuKCksIG51bGxhYmxlPUZh bHNlKQogCiAKIGNsYXNzIE1vZHVsZVByZWZlcmVuY2UoZGIuTW9kZWwpOgpAQCAtMzA1LDMgKzMw Niw4OCBAQCBjbGFzcyBEYXRhYmFzZShkYi5Nb2RlbCk6CiAgICAgICAgIG51bGxhYmxlPUZhbHNl LAogICAgICAgICBwcmltYXJ5X2tleT1UcnVlCiAgICAgKQorCisKK2NsYXNzIFNoYXJlZFNlcnZl cihkYi5Nb2RlbCk6CisgICAgIiIiRGVmaW5lIGEgc2hhcmVkIFBvc3RncmVzIHNlcnZlciIiIgor CisgICAgX190YWJsZW5hbWVfXyA9ICdzaGFyZWRzZXJ2ZXInCisgICAgaWQgPSBkYi5Db2x1bW4o ZGIuSW50ZWdlciwgcHJpbWFyeV9rZXk9VHJ1ZSkKKyAgICB1c2VyX2lkID0gZGIuQ29sdW1uKAor ICAgICAgICBkYi5JbnRlZ2VyLAorICAgICAgICBkYi5Gb3JlaWduS2V5KCd1c2VyLmlkJykKKyAg ICApCisgICAgc2VydmVyX293bmVyID0gZGIuQ29sdW1uKAorICAgICAgICBkYi5TdHJpbmcoMTI4 KSwKKyAgICAgICAgZGIuRm9yZWlnbktleSgndXNlci51c2VybmFtZScpCisgICAgKQorICAgIHNl cnZlcmdyb3VwX2lkID0gZGIuQ29sdW1uKAorICAgICAgICBkYi5JbnRlZ2VyLAorICAgICAgICBk Yi5Gb3JlaWduS2V5KCdzZXJ2ZXJncm91cC5pZCcpLAorICAgICAgICBudWxsYWJsZT1GYWxzZQor ICAgICkKKyAgICBuYW1lID0gZGIuQ29sdW1uKGRiLlN0cmluZygxMjgpLCBudWxsYWJsZT1GYWxz ZSkKKyAgICBob3N0ID0gZGIuQ29sdW1uKGRiLlN0cmluZygxMjgpLCBudWxsYWJsZT1UcnVlKQor ICAgIGhvc3RhZGRyID0gZGIuQ29sdW1uKGRiLlN0cmluZygxMjgpLCBudWxsYWJsZT1UcnVlKQor ICAgIHBvcnQgPSBkYi5Db2x1bW4oCisgICAgICAgIGRiLkludGVnZXIoKSwKKyAgICAgICAgZGIu Q2hlY2tDb25zdHJhaW50KCdwb3J0ID49IDEgQU5EIHBvcnQgPD0gNjU1MzQnKSwKKyAgICAgICAg bnVsbGFibGU9RmFsc2UpCisgICAgbWFpbnRlbmFuY2VfZGIgPSBkYi5Db2x1bW4oZGIuU3RyaW5n KDY0KSwgbnVsbGFibGU9VHJ1ZSkKKyAgICB1c2VybmFtZSA9IGRiLkNvbHVtbihkYi5TdHJpbmco NjQpLCBudWxsYWJsZT1GYWxzZSkKKyAgICBwYXNzd29yZCA9IGRiLkNvbHVtbihkYi5TdHJpbmco NjQpLCBudWxsYWJsZT1UcnVlKQorICAgIHNhdmVfcGFzc3dvcmQgPSBkYi5Db2x1bW4oCisgICAg ICAgIGRiLkludGVnZXIoKSwKKyAgICAgICAgZGIuQ2hlY2tDb25zdHJhaW50KCdzYXZlX3Bhc3N3 b3JkID49IDAgQU5EIHNhdmVfcGFzc3dvcmQgPD0gMScpLAorICAgICAgICBudWxsYWJsZT1GYWxz ZQorICAgICkKKyAgICByb2xlID0gZGIuQ29sdW1uKGRiLlN0cmluZyg2NCksIG51bGxhYmxlPVRy dWUpCisgICAgc3NsX21vZGUgPSBkYi5Db2x1bW4oCisgICAgICAgIGRiLlN0cmluZygxNiksCisg ICAgICAgIGRiLkNoZWNrQ29uc3RyYWludCgKKyAgICAgICAgICAgICJzc2xfbW9kZSBJTiAoJ2Fs bG93JywgJ3ByZWZlcicsICdyZXF1aXJlJywgJ2Rpc2FibGUnLCAiCisgICAgICAgICAgICAiJ3Zl cmlmeS1jYScsICd2ZXJpZnktZnVsbCcpIgorICAgICAgICApLAorICAgICAgICBudWxsYWJsZT1G YWxzZSkKKyAgICBjb21tZW50ID0gZGIuQ29sdW1uKGRiLlN0cmluZygxMDI0KSwgbnVsbGFibGU9 VHJ1ZSkKKyAgICBkaXNjb3ZlcnlfaWQgPSBkYi5Db2x1bW4oZGIuU3RyaW5nKDEyOCksIG51bGxh YmxlPVRydWUpCisgICAgc2VydmVycyA9IGRiLnJlbGF0aW9uc2hpcCgKKyAgICAgICAgJ1NlcnZl ckdyb3VwJywKKyAgICAgICAgYmFja3JlZj1kYi5iYWNrcmVmKCdzaGFyZWRzZXJ2ZXInLCBjYXNj YWRlPSJhbGwsIGRlbGV0ZS1vcnBoYW4iKSwKKyAgICAgICAgbGF6eT0nam9pbmVkJworICAgICkK KyAgICBkYl9yZXMgPSBkYi5Db2x1bW4oZGIuVGV4dCgpLCBudWxsYWJsZT1UcnVlKQorICAgIHBh c3NmaWxlID0gZGIuQ29sdW1uKGRiLlRleHQoKSwgbnVsbGFibGU9VHJ1ZSkKKyAgICBzc2xjZXJ0 ID0gZGIuQ29sdW1uKGRiLlRleHQoKSwgbnVsbGFibGU9VHJ1ZSkKKyAgICBzc2xrZXkgPSBkYi5D b2x1bW4oZGIuVGV4dCgpLCBudWxsYWJsZT1UcnVlKQorICAgIHNzbHJvb3RjZXJ0ID0gZGIuQ29s dW1uKGRiLlRleHQoKSwgbnVsbGFibGU9VHJ1ZSkKKyAgICBzc2xjcmwgPSBkYi5Db2x1bW4oZGIu VGV4dCgpLCBudWxsYWJsZT1UcnVlKQorICAgIHNzbGNvbXByZXNzaW9uID0gZGIuQ29sdW1uKAor ICAgICAgICBkYi5JbnRlZ2VyKCksCisgICAgICAgIGRiLkNoZWNrQ29uc3RyYWludCgnc3NsY29t cHJlc3Npb24gPj0gMCBBTkQgc3NsY29tcHJlc3Npb24gPD0gMScpLAorICAgICAgICBudWxsYWJs ZT1GYWxzZQorICAgICkKKyAgICBiZ2NvbG9yID0gZGIuQ29sdW1uKGRiLlRleHQoMTApLCBudWxs YWJsZT1UcnVlKQorICAgIGZnY29sb3IgPSBkYi5Db2x1bW4oZGIuVGV4dCgxMCksIG51bGxhYmxl PVRydWUpCisgICAgc2VydmljZSA9IGRiLkNvbHVtbihkYi5UZXh0KCksIG51bGxhYmxlPVRydWUp CisgICAgY29ubmVjdF90aW1lb3V0ID0gZGIuQ29sdW1uKGRiLkludGVnZXIoKSwgbnVsbGFibGU9 RmFsc2UpCisgICAgdXNlX3NzaF90dW5uZWwgPSBkYi5Db2x1bW4oCisgICAgICAgIGRiLkludGVn ZXIoKSwKKyAgICAgICAgZGIuQ2hlY2tDb25zdHJhaW50KCd1c2Vfc3NoX3R1bm5lbCA+PSAwIEFO RCB1c2Vfc3NoX3R1bm5lbCA8PSAxJyksCisgICAgICAgIG51bGxhYmxlPUZhbHNlCisgICAgKQor ICAgIHR1bm5lbF9ob3N0ID0gZGIuQ29sdW1uKGRiLlN0cmluZygxMjgpLCBudWxsYWJsZT1UcnVl KQorICAgIHR1bm5lbF9wb3J0ID0gZGIuQ29sdW1uKAorICAgICAgICBkYi5JbnRlZ2VyKCksCisg ICAgICAgIGRiLkNoZWNrQ29uc3RyYWludCgncG9ydCA8PSA2NTUzNCcpLAorICAgICAgICBudWxs YWJsZT1UcnVlKQorICAgIHR1bm5lbF91c2VybmFtZSA9IGRiLkNvbHVtbihkYi5TdHJpbmcoNjQp LCBudWxsYWJsZT1UcnVlKQorICAgIHR1bm5lbF9hdXRoZW50aWNhdGlvbiA9IGRiLkNvbHVtbigK KyAgICAgICAgZGIuSW50ZWdlcigpLAorICAgICAgICBkYi5DaGVja0NvbnN0cmFpbnQoJ3R1bm5l bF9hdXRoZW50aWNhdGlvbiA+PSAwIEFORCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAn dHVubmVsX2F1dGhlbnRpY2F0aW9uIDw9IDEnKSwKKyAgICAgICAgbnVsbGFibGU9RmFsc2UKKyAg ICApCisgICAgdHVubmVsX2lkZW50aXR5X2ZpbGUgPSBkYi5Db2x1bW4oZGIuU3RyaW5nKDY0KSwg bnVsbGFibGU9VHJ1ZSkKKyAgICB0dW5uZWxfcGFzc3dvcmQgPSBkYi5Db2x1bW4oZGIuU3RyaW5n KDY0KSwgbnVsbGFibGU9VHJ1ZSkKKyAgICBzaGFyZWQgPSBkYi5Db2x1bW4oZGIuQm9vbGVhbigp LCBudWxsYWJsZT1GYWxzZSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3ByZWZlcmVuY2VzL19f aW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vcHJlZmVyZW5jZXMvX19pbml0X18ucHkKaW5kZXggNjIx MmY2M2Y4Li5kYjExZDFkMDkgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3ByZWZlcmVuY2VzL19f aW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL3ByZWZlcmVuY2VzL19faW5pdF9fLnB5CkBAIC0y Myw2ICsyMyw3IEBAIGZyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBzdWNjZXNzX3JldHVy biwgXAogZnJvbSBwZ2FkbWluLnV0aWxzLm1lbnUgaW1wb3J0IE1lbnVJdGVtCiBmcm9tIHBnYWRt aW4udXRpbHMucHJlZmVyZW5jZXMgaW1wb3J0IFByZWZlcmVuY2VzCiBmcm9tIHBnYWRtaW4udXRp bHMuY29uc3RhbnRzIGltcG9ydCBNSU1FVFlQRV9BUFBfSlMKK2Zyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMgaW1wb3J0IFNlcnZlckdyb3VwTW9kdWxlIGFzIHNnbQogCiBNT0RVTEVf TkFNRSA9ICdwcmVmZXJlbmNlcycKIApAQCAtMjAzLDYgKzIwNCw3IEBAIGRlZiBzYXZlKHBpZCk6 CiAKICAgICByZXMsIG1zZyA9IFByZWZlcmVuY2VzLnNhdmUoCiAgICAgICAgIGRhdGFbJ21pZCdd LCBkYXRhWydjYXRlZ29yeV9pZCddLCBkYXRhWydpZCddLCBkYXRhWyd2YWx1ZSddKQorICAgIHNn bS5nZXRfbm9kZXMoc2dtKQogCiAgICAgaWYgbm90IHJlczoKICAgICAgICAgcmV0dXJuIGludGVy bmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1tc2cpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9w cmVmZXJlbmNlcy9zdGF0aWMvanMvcHJlZmVyZW5jZXMuanMgYi93ZWIvcGdhZG1pbi9wcmVmZXJl bmNlcy9zdGF0aWMvanMvcHJlZmVyZW5jZXMuanMKaW5kZXggNjJlZGE3YWE2Li45MDg3Yzk1ODkg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3ByZWZlcmVuY2VzL3N0YXRpYy9qcy9wcmVmZXJlbmNl cy5qcworKysgYi93ZWIvcGdhZG1pbi9wcmVmZXJlbmNlcy9zdGF0aWMvanMvcHJlZmVyZW5jZXMu anMKQEAgLTQ3Nyw2ICs0NzcsMjggQEAgZGVmaW5lKCdwZ2FkbWluLnByZWZlcmVuY2VzJywgWwog ICAgICAgICAgICAgICAgIGlmKHByZWYubmFtZSA9PSAndGhlbWUnKSB7CiAgICAgICAgICAgICAg ICAgICByZXF1aXJlc19yZWZyZXNoID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9CisKKyAgICAg ICAgICAgICAgICBpZihwcmVmLm5hbWUgPT0gJ2hpZGVfc2hhcmVkX3NlcnZlcicpIHsKKyAgICAg ICAgICAgICAgICAgIEFsZXJ0aWZ5LmNvbmZpcm0oCisgICAgICAgICAgICAgICAgICAgIGdldHRl eHQoJ0Jyb3dzZXIgdHJlZSByZWZyZXNoIHJlcXVpcmVkJyksCisgICAgICAgICAgICAgICAgICAg IGdldHRleHQoJ0EgYnJvd3NlciB0cmVlIHJlZnJlc2ggaXMgcmVxdWlyZWQuIERvIHlvdSB3aXNo IHRvIHJlZnJlc2ggdGhlIHRyZWU/JyksCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkg eworICAgICAgICAgICAgICAgICAgICAgIHBnQWRtaW4uQnJvd3Nlci50cmVlLmRlc3Ryb3koewor ICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24oKSB7CisgICAgICAgICAg ICAgICAgICAgICAgICAgIHBnQWRtaW4uQnJvd3Nlci5pbml0aWFsaXplQnJvd3NlclRyZWUocGdB ZG1pbi5Ccm93c2VyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgIH0pOworICAg ICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsKKyAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgICAgKS5zZXQoJ2xhYmVscycsIHsKKyAgICAgICAgICAgICAgICAgICAg b2s6IGdldHRleHQoJ1JlZnJlc2gnKSwKKyAgICAgICAgICAgICAgICAgICAgY2FuY2VsOiBnZXR0 ZXh0KCdMYXRlcicpLAorICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQor CiAgICAgICAgICAgICAgIH0pOwogCiAgICAgICAgICAgICAgIGlmKHJlcXVpcmVzX3JlZnJlc2gp IHsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZmL19faW5pdF9fLnB5 IGIvd2ViL3BnYWRtaW4vdG9vbHMvc2NoZW1hX2RpZmYvX19pbml0X18ucHkKaW5kZXggYTMyNWU5 YTAxLi4wM2QzNDc4YjYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZm L19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZmL19faW5pdF9f LnB5CkBAIC0yNyw2ICsyNyw3IEBAIGZyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZF UgogZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgogZnJvbSBwZ2Fk bWluLnV0aWxzLnByZWZlcmVuY2VzIGltcG9ydCBQcmVmZXJlbmNlcwogZnJvbSBwZ2FkbWluLnV0 aWxzLmNvbnN0YW50cyBpbXBvcnQgUFJFRl9MQUJFTF9ESVNQTEFZLCBNSU1FVFlQRV9BUFBfSlMK K2Zyb20gc3FsYWxjaGVteSBpbXBvcnQgb3JfCiAKIE1PRFVMRV9OQU1FID0gJ3NjaGVtYV9kaWZm JwogCkBAIC0yNzYsOCArMjc3LDExIEBAIGRlZiBzZXJ2ZXJzKCk6CiAKICAgICAgICAgZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzIGltcG9ydFwKICAgICAgICAgICAg IHNlcnZlcl9pY29uX2FuZF9iYWNrZ3JvdW5kCisgICAgICAgIFNlcnZlci5xdWVyeS5maWx0ZXIo CisgICAgICAgICAgICBvcl8oU2VydmVyLnVzZXJfaWQgPT0gY3VycmVudF91c2VyLmlkLCBTZXJ2 ZXIuc2hhcmVkKSkKIAotICAgICAgICBmb3Igc2VydmVyIGluIFNlcnZlci5xdWVyeS5maWx0ZXJf YnkodXNlcl9pZD1jdXJyZW50X3VzZXIuaWQpOgorICAgICAgICBmb3Igc2VydmVyIGluIFNlcnZl ci5xdWVyeS5maWx0ZXIoCisgICAgICAgICAgICAgICAgb3JfKFNlcnZlci51c2VyX2lkID09IGN1 cnJlbnRfdXNlci5pZCwgU2VydmVyLnNoYXJlZCkpOgogICAgICAgICAgICAgbWFuYWdlciA9IGRy aXZlci5jb25uZWN0aW9uX21hbmFnZXIoc2VydmVyLmlkKQogICAgICAgICAgICAgY29ubiA9IG1h bmFnZXIuY29ubmVjdGlvbigpCiAgICAgICAgICAgICBjb25uZWN0ZWQgPSBjb25uLmNvbm5lY3Rl ZCgpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi9zdGF0aWMvanMv c2NoZW1hX2RpZmYuYmFja2Zvcm0uanMgYi93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi9z dGF0aWMvanMvc2NoZW1hX2RpZmYuYmFja2Zvcm0uanMKaW5kZXggNTVlZjFlNWY0Li4xYjA5NWRi OTggMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZmL3N0YXRpYy9qcy9z Y2hlbWFfZGlmZi5iYWNrZm9ybS5qcworKysgYi93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlm Zi9zdGF0aWMvanMvc2NoZW1hX2RpZmYuYmFja2Zvcm0uanMKQEAgLTE3NSw3ICsxNzUsNyBAQCBs ZXQgU2NoZW1hRGlmZlNlbGVjdDJDb250cm9sID0KICAgICAgIGxldCBzcGFuID0gdGhpcy4kZWwu ZmluZCgnLnNlbGVjdDItc2VsZWN0aW9uIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQgc3Bh bi53Y1RhYkljb24nKSwKICAgICAgICAgc2VsU3BhbiA9IHRoaXMuJGVsLmZpbmQoJ29wdGlvbjpz ZWxlY3RlZCcpOwogCi0gICAgICBpZiAoc3Bhbi5oYXNDbGFzcygnaWNvbi1zZXJ2ZXItbm90LWNv bm5lY3RlZCcpKSB7CisgICAgICBpZiAoc3Bhbi5oYXNDbGFzcygnaWNvbi1zZXJ2ZXItbm90LWNv bm5lY3RlZCcpIHx8IHNwYW4uaGFzQ2xhc3MoJ2ljb24tc2hhcmVkLXNlcnZlci1ub3QtY29ubmVj dGVkJykpIHsKICAgICAgICAgbGV0IGljb24gPSAoZGF0YS5pY29uKSA/IGRhdGEuaWNvbiA6ICdp Y29uLXBnJzsKICAgICAgICAgc3Bhbi5yZW1vdmVDbGFzcygnaWNvbi1zZXJ2ZXItbm90LWNvbm5l Y3RlZCcpOwogICAgICAgICBzcGFuLmFkZENsYXNzKGljb24pOwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vdXRpbHMvZHJpdmVyL3BzeWNvcGcyL3NlcnZlcl9tYW5hZ2VyLnB5IGIvd2ViL3BnYWRt aW4vdXRpbHMvZHJpdmVyL3BzeWNvcGcyL3NlcnZlcl9tYW5hZ2VyLnB5CmluZGV4IGMzNWEzNzI2 Zi4uNmQzY2UyNWZmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi91dGlscy9kcml2ZXIvcHN5Y29w ZzIvc2VydmVyX21hbmFnZXIucHkKKysrIGIvd2ViL3BnYWRtaW4vdXRpbHMvZHJpdmVyL3BzeWNv cGcyL3NlcnZlcl9tYW5hZ2VyLnB5CkBAIC02Niw2ICs2Niw3IEBAIGNsYXNzIFNlcnZlck1hbmFn ZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5ob3N0YWRkciA9IHNlcnZlci5ob3N0YWRkcgogICAg ICAgICBzZWxmLnBvcnQgPSBzZXJ2ZXIucG9ydAogICAgICAgICBzZWxmLmRiID0gc2VydmVyLm1h aW50ZW5hbmNlX2RiCisgICAgICAgIHNlbGYuc2hhcmVkID0gc2VydmVyLnNoYXJlZAogICAgICAg ICBzZWxmLmRpZCA9IE5vbmUKICAgICAgICAgc2VsZi51c2VyID0gc2VydmVyLnVzZXJuYW1lCiAg ICAgICAgIHNlbGYucGFzc3dvcmQgPSBzZXJ2ZXIucGFzc3dvcmQKZGlmZiAtLWdpdCBhL3dlYi9y ZWdyZXNzaW9uL3B5dGhvbl90ZXN0X3V0aWxzL3Rlc3RfdXRpbHMucHkgYi93ZWIvcmVncmVzc2lv bi9weXRob25fdGVzdF91dGlscy90ZXN0X3V0aWxzLnB5CmluZGV4IDZkNjZhZjE1YS4uNDkxYmRk YmQxIDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9weXRob25fdGVzdF91dGlscy90ZXN0X3V0 aWxzLnB5CisrKyBiL3dlYi9yZWdyZXNzaW9uL3B5dGhvbl90ZXN0X3V0aWxzL3Rlc3RfdXRpbHMu cHkKQEAgLTM2LDYgKzM2LDggQEAgZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3NldHVwCiAK IGZyb20gcGdhZG1pbi51dGlscy5wcmVmZXJlbmNlcyBpbXBvcnQgUHJlZmVyZW5jZXMKIAorZnJv bSBmdW5jdG9vbHMgaW1wb3J0IHdyYXBzCisKIENVUlJFTlRfUEFUSCA9IG9zLnBhdGguYWJzcGF0 aChvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKAogICAgIG9zLnBhdGgucmVhbHBhdGgoX19m aWxlX18pKSwgIi4uLyIpKQogCkBAIC0xNTk4LDMgKzE2MDAsMjE3IEBAIGRlZiBnZXRfc2VsZW5v aWRfYnJvd3NlcnNfbGlzdChhcmd1bWVudHMpOgogICAgICAgICBsaXN0X29mX2Jyb3dzZXJzID0g dGVzdF9zZXR1cC5jb25maWdfZGF0YVsnc2VsZW5vaWRfY29uZmlnJ11bCiAgICAgICAgICAgICAn YnJvd3NlcnNfbGlzdCddCiAgICAgcmV0dXJuIGxpc3Rfb2ZfYnJvd3NlcnMKKworCitkZWYgbG9n aW5fdXNpbmdfdXNlcl9hY2NvdW50KHRlc3Rlcik6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlv biBsb2dpbiB0aGUgdGVzdCBjbGllbnQgdXNlcm5hbWUgYW5kIHBhc3N3b3JkCisgICAgOnBhcmFt IHRlc3RlcjogdGVzdCBjbGllbnQKKyAgICA6dHlwZSB0ZXN0ZXI6IGZsYXNrIHRlc3QgY2xpZW50 IG9iamVjdAorICAgIDpyZXR1cm46IE5vbmUKKyAgICAiIiIKKyAgICB1c2VybmFtZSA9IHRlc3Rl ci50ZXN0X2NvbmZpZ19kYXRhWydsb2dpbl91c2VybmFtZSddCisgICAgcGFzc3dvcmQgPSB0ZXN0 ZXIudGVzdF9jb25maWdfZGF0YVsnbG9naW5fcGFzc3dvcmQnXQorICAgIHJlc3BvbnNlID0gdGVz dGVyLmxvZ2luKHVzZXJuYW1lLCBwYXNzd29yZCkKKworICAgIGlmIHJlc3BvbnNlLnN0YXR1c19j b2RlICE9IDMwMjoKKyAgICAgICAgcHJpbnQoIlVuYWJsZSB0byBsb2dpbiB0ZXN0IGNsaWVudCwg ZW1haWwgYW5kIHBhc3N3b3JkIG5vdCBmb3VuZC4iLAorICAgICAgICAgICAgICBmaWxlPXN5cy5z dGRlcnIpCisgICAgICAgIHN5cy5leGl0KDEpCisKKworZGVmIGxvZ291dF90ZXN0ZXJfYWNjb3Vu dCh0ZXN0ZXIpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gbG9nb3V0IHRoZSB0ZXN0IGFj Y291bnQKKyAgICA6cGFyYW0gdGVzdGVyOiB0ZXN0IGNsaWVudAorICAgIDp0eXBlIHRlc3Rlcjog Zmxhc2sgdGVzdCBjbGllbnQgb2JqZWN0CisgICAgOnJldHVybjogTm9uZQorICAgICIiIgorICAg IHRlc3Rlci5sb2dvdXQoKQorCisKK2RlZiBjcmVhdGVfdXNlcih1c2VyX2RldGFpbHMpOgorICAg IHRyeToKKyAgICAgICAgY29ubiA9IHNxbGl0ZTMuY29ubmVjdChjb25maWcuVEVTVF9TUUxJVEVf UEFUSCkKKyAgICAgICAgIyBDcmVhdGUgdGhlIHNlcnZlcgorICAgICAgICBjdXIgPSBjb25uLmN1 cnNvcigpCisgICAgICAgIHVzZXJfZGV0YWlscyA9ICgKKyAgICAgICAgICAgIHVzZXJfZGV0YWls c1snbG9naW5fdXNlcm5hbWUnXSwgdXNlcl9kZXRhaWxzWydsb2dpbl91c2VybmFtZSddLAorICAg ICAgICAgICAgdXNlcl9kZXRhaWxzWydsb2dpbl9wYXNzd29yZCddLCAxKQorCisgICAgICAgIGN1 ci5leGVjdXRlKAorICAgICAgICAgICAgJ3NlbGVjdCAqIGZyb20gdXNlciB3aGVyZSB1c2VybmFt ZSA9ICIlcyInICUgdXNlcl9kZXRhaWxzWzBdKQorICAgICAgICB1c2VyID0gY3VyLmZldGNob25l KCkKKyAgICAgICAgaWYgdXNlciBpcyBOb25lOgorICAgICAgICAgICAgY3VyLmV4ZWN1dGUoJ0lO U0VSVCBJTlRPIHVzZXIgKHVzZXJuYW1lLCBlbWFpbCwgcGFzc3dvcmQsIGFjdGl2ZSkgJworICAg ICAgICAgICAgICAgICAgICAgICAgJ1ZBTFVFUyAoPyw/LD8sPyknLCB1c2VyX2RldGFpbHMpCisg ICAgICAgICAgICB1c2VyX2lkID0gY3VyLmxhc3Ryb3dpZAorICAgICAgICAgICAgY29ubi5jb21t aXQoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdXNlcl9pZCA9IHVzZXJbMF0KKyAgICAg ICAgY29ubi5jbG9zZSgpCisKKyAgICAgICAgcmV0dXJuIHVzZXJfaWQKKyAgICBleGNlcHQgRXhj ZXB0aW9uIGFzIGV4Y2VwdGlvbjoKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJFcnJvciB3aGls ZSBjcmVhdGluZyBzZXJ2ZXIuICVzIiAlIGV4Y2VwdGlvbikKKworCitkZWYgZ2V0X3Rlc3RfdXNl cihzZWxmLCB1c2VyX2RldGFpbHMsCisgICAgICAgICAgICAgICAgICBpc19hcGk9VHJ1ZSwgY3Jl YXRlX2Nvbm49VHJ1ZSk6CisgICAgIyBhc3NlcnQgaWQgPT0gMSBvciBpZCA9PSAwCisgICAgdGVz dF9jbGllbnQgPSBzZWxmLmFwcC50ZXN0X2NsaWVudCgpCisgICAgaWYgdXNlcl9kZXRhaWxzIGlz IE5vbmU6CisgICAgICAgIHJldHVybiBOb25lLCBOb25lCisKKyAgICBpZiBpc19hcGkgaXMgVHJ1 ZToKKworICAgICAgICAjIENyZWF0ZSB0ZXN0X2NsaWVudCBmb3IgdGhpcyB1c2VyLCBhbmQgbG9n aW4gdGhyb3VnaCBpdC4KKyAgICAgICAgdGVzdF9jbGllbnQgPSBzZWxmLmFwcC50ZXN0X2NsaWVu dCgpCisgICAgICAgIHVzZXIgPSBjcmVhdGVfdXNlcih1c2VyX2RldGFpbHMpCisgICAgICAgIGlm IHVzZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICB0ZXN0X2NsaWVudC50ZXN0X2NvbmZpZ19k YXRhID0gZGljdCh7CisgICAgICAgICAgICAgICAgImxvZ2luX3VzZXJuYW1lIjogdXNlcl9kZXRh aWxzWydsb2dpbl91c2VybmFtZSddLAorICAgICAgICAgICAgICAgICJsb2dpbl9wYXNzd29yZCI6 IHVzZXJfZGV0YWlsc1snbG9naW5fcGFzc3dvcmQnXQorICAgICAgICAgICAgfSkKKyAgICAgICAg ZWxzZToKKyAgICAgICAgICAgIHJldHVybiAiVXNlciBub3QgY3JlYXRlZCIKKyAgICAgICAgbG9n aW5fdXNpbmdfdXNlcl9hY2NvdW50KHRlc3RfY2xpZW50KQorICAgICAgICB1c2VyID0gdGVzdF9j bGllbnQKKworICAgIHJldHVybiB1c2VyCisKKworZGVmIGNyZWF0ZV91c2VyX3dpc2VfdGVzdF9j bGllbnQodXNlcik6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiBjcmVhdGVzIG5ldyB0ZXN0 IGNsaWVudCBhbmQgcGVtIGRhdGFiYXNlIGNvbm5lY3Rpb24gYXMgcGVyCisgICAgcHJvdmlkZWQg dXNlciBhbmQgZXhlY3V0ZSB0aGUgdGVzdCBjYXNlcy4KKyAgICA6cmV0dXJuOiBOb25lCisgICAg IiIiCisKKyAgICBkZWYgbXVsdGlfdXNlcl9kZWNvcmF0b3IoZnVuYyk6CisgICAgICAgIEB3cmFw cyhmdW5jKQorICAgICAgICBkZWYgd3JhcHBlcihzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAg ICAgICAgICAgIyBzZWxmLnVzZXIgPSB1c2VyCisgICAgICAgICAgICBtYWluX3Rlc3RlciA9IHNl bGYuX19jbGFzc19fLnRlc3RlcgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICMg TG9naW4gd2l0aCBub24tYWRtaW5fdXNlcgorICAgICAgICAgICAgICAgIHRlc3RfdXNlciA9IGdl dF90ZXN0X3VzZXIoc2VsZiwgdXNlcikKKyAgICAgICAgICAgICAgICBzZWxmLnNldFRlc3RDbGll bnQodGVzdF91c2VyKQorICAgICAgICAgICAgICAgICMgc2VsZi5zZXRUZXN0Q2xpZW50KHRlc3Rf dXNlclsndGVzdGVyJ10pCisKKyAgICAgICAgICAgICAgICAjIENhbGwgJ3J1blRlc3QnIHdpdGgg bmV3IHRlc3QgY2xpZW50CisgICAgICAgICAgICAgICAgZnVuYyhzZWxmLCAqYXJncywgKiprd2Fy Z3MpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgICMgUmVzdG9yZSB0aGUg b3JpZ2luYWwgdXNlciBhbmQgZHJpdmVyCisgICAgICAgICAgICAgICAgc2VsZi5fX2NsYXNzX18u dGVzdGVyID0gbWFpbl90ZXN0ZXIKKworICAgICAgICByZXR1cm4gd3JhcHBlcgorCisgICAgcmV0 dXJuIG11bHRpX3VzZXJfZGVjb3JhdG9yCisKKworZGVmIGxvZ2luX3VzaW5nX3VzZXJfYWNjb3Vu dCh0ZXN0ZXIpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gbG9naW4gdGhlIHRlc3QgY2xp ZW50IHVzZXJuYW1lIGFuZCBwYXNzd29yZAorICAgIDpwYXJhbSB0ZXN0ZXI6IHRlc3QgY2xpZW50 CisgICAgOnR5cGUgdGVzdGVyOiBmbGFzayB0ZXN0IGNsaWVudCBvYmplY3QKKyAgICA6cmV0dXJu OiBOb25lCisgICAgIiIiCisgICAgdXNlcm5hbWUgPSB0ZXN0ZXIudGVzdF9jb25maWdfZGF0YVsn bG9naW5fdXNlcm5hbWUnXQorICAgIHBhc3N3b3JkID0gdGVzdGVyLnRlc3RfY29uZmlnX2RhdGFb J2xvZ2luX3Bhc3N3b3JkJ10KKyAgICByZXNwb25zZSA9IHRlc3Rlci5sb2dpbih1c2VybmFtZSwg cGFzc3dvcmQpCisKKyAgICBpZiByZXNwb25zZS5zdGF0dXNfY29kZSAhPSAzMDI6CisgICAgICAg IHByaW50KCJVbmFibGUgdG8gbG9naW4gdGVzdCBjbGllbnQsIGVtYWlsIGFuZCBwYXNzd29yZCBu b3QgZm91bmQuIiwKKyAgICAgICAgICAgICAgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICBzeXMu ZXhpdCgxKQorCisKK2RlZiBsb2dvdXRfdGVzdGVyX2FjY291bnQodGVzdGVyKToKKyAgICAiIiIK KyAgICBUaGlzIGZ1bmN0aW9uIGxvZ291dCB0aGUgdGVzdCBhY2NvdW50CisgICAgOnBhcmFtIHRl c3RlcjogdGVzdCBjbGllbnQKKyAgICA6dHlwZSB0ZXN0ZXI6IGZsYXNrIHRlc3QgY2xpZW50IG9i amVjdAorICAgIDpyZXR1cm46IE5vbmUKKyAgICAiIiIKKyAgICB0ZXN0ZXIubG9nb3V0KCkKKwor CitkZWYgY3JlYXRlX3VzZXIodXNlcl9kZXRhaWxzKToKKyAgICB0cnk6CisgICAgICAgIGNvbm4g PSBzcWxpdGUzLmNvbm5lY3QoY29uZmlnLlRFU1RfU1FMSVRFX1BBVEgpCisgICAgICAgICMgQ3Jl YXRlIHRoZSBzZXJ2ZXIKKyAgICAgICAgY3VyID0gY29ubi5jdXJzb3IoKQorICAgICAgICB1c2Vy X2RldGFpbHMgPSAoCisgICAgICAgICAgICB1c2VyX2RldGFpbHNbJ2xvZ2luX3VzZXJuYW1lJ10s IHVzZXJfZGV0YWlsc1snbG9naW5fdXNlcm5hbWUnXSwKKyAgICAgICAgICAgIHVzZXJfZGV0YWls c1snbG9naW5fcGFzc3dvcmQnXSwgMSkKKworICAgICAgICBjdXIuZXhlY3V0ZSgKKyAgICAgICAg ICAgICdzZWxlY3QgKiBmcm9tIHVzZXIgd2hlcmUgdXNlcm5hbWUgPSAiJXMiJyAlIHVzZXJfZGV0 YWlsc1swXSkKKyAgICAgICAgdXNlciA9IGN1ci5mZXRjaG9uZSgpCisgICAgICAgIGlmIHVzZXIg aXMgTm9uZToKKyAgICAgICAgICAgIGN1ci5leGVjdXRlKCdJTlNFUlQgSU5UTyB1c2VyICh1c2Vy bmFtZSwgZW1haWwsIHBhc3N3b3JkLCBhY3RpdmUpICcKKyAgICAgICAgICAgICAgICAgICAgICAg ICdWQUxVRVMgKD8sPyw/LD8pJywgdXNlcl9kZXRhaWxzKQorICAgICAgICAgICAgdXNlcl9pZCA9 IGN1ci5sYXN0cm93aWQKKyAgICAgICAgICAgIGNvbm4uY29tbWl0KCkKKyAgICAgICAgZWxzZToK KyAgICAgICAgICAgIHVzZXJfaWQgPSB1c2VyWzBdCisgICAgICAgIGNvbm4uY2xvc2UoKQorCisg ICAgICAgIHJldHVybiB1c2VyX2lkCisgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleGNlcHRpb246 CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiRXJyb3Igd2hpbGUgY3JlYXRpbmcgc2VydmVyLiAl cyIgJSBleGNlcHRpb24pCisKKworZGVmIGdldF90ZXN0X3VzZXIoc2VsZiwgdXNlcl9kZXRhaWxz LAorICAgICAgICAgICAgICAgICAgaXNfYXBpPVRydWUsIGNyZWF0ZV9jb25uPVRydWUpOgorICAg ICMgYXNzZXJ0IGlkID09IDEgb3IgaWQgPT0gMAorICAgIHRlc3RfY2xpZW50ID0gc2VsZi5hcHAu dGVzdF9jbGllbnQoKQorICAgIGlmIHVzZXJfZGV0YWlscyBpcyBOb25lOgorICAgICAgICByZXR1 cm4gTm9uZSwgTm9uZQorCisgICAgaWYgaXNfYXBpIGlzIFRydWU6CisKKyAgICAgICAgIyBDcmVh dGUgdGVzdF9jbGllbnQgZm9yIHRoaXMgdXNlciwgYW5kIGxvZ2luIHRocm91Z2ggaXQuCisgICAg ICAgIHRlc3RfY2xpZW50ID0gc2VsZi5hcHAudGVzdF9jbGllbnQoKQorICAgICAgICB1c2VyID0g Y3JlYXRlX3VzZXIodXNlcl9kZXRhaWxzKQorICAgICAgICBpZiB1c2VyIGlzIG5vdCBOb25lOgor ICAgICAgICAgICAgdGVzdF9jbGllbnQudGVzdF9jb25maWdfZGF0YSA9IGRpY3QoeworICAgICAg ICAgICAgICAgICJsb2dpbl91c2VybmFtZSI6IHVzZXJfZGV0YWlsc1snbG9naW5fdXNlcm5hbWUn XSwKKyAgICAgICAgICAgICAgICAibG9naW5fcGFzc3dvcmQiOiB1c2VyX2RldGFpbHNbJ2xvZ2lu X3Bhc3N3b3JkJ10KKyAgICAgICAgICAgIH0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBy ZXR1cm4gIlVzZXIgbm90IGNyZWF0ZWQiCisgICAgICAgIGxvZ2luX3VzaW5nX3VzZXJfYWNjb3Vu dCh0ZXN0X2NsaWVudCkKKyAgICAgICAgdXNlciA9IHRlc3RfY2xpZW50CisKKyAgICByZXR1cm4g dXNlcgorCisKK2RlZiBjcmVhdGVfdXNlcl93aXNlX3Rlc3RfY2xpZW50KHVzZXIpOgorICAgICIi IgorICAgIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBuZXcgdGVzdCBjbGllbnQgYW5kIHBlbSBkYXRh YmFzZSBjb25uZWN0aW9uIGFzIHBlcgorICAgIHByb3ZpZGVkIHVzZXIgYW5kIGV4ZWN1dGUgdGhl IHRlc3QgY2FzZXMuCisgICAgOnJldHVybjogTm9uZQorICAgICIiIgorCisgICAgZGVmIG11bHRp X3VzZXJfZGVjb3JhdG9yKGZ1bmMpOgorICAgICAgICBAd3JhcHMoZnVuYykKKyAgICAgICAgZGVm IHdyYXBwZXIoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgICMgc2VsZi51c2Vy ID0gdXNlcgorICAgICAgICAgICAgbWFpbl90ZXN0ZXIgPSBzZWxmLl9fY2xhc3NfXy50ZXN0ZXIK KyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAjIExvZ2luIHdpdGggbm9uLWFkbWlu X3VzZXIKKyAgICAgICAgICAgICAgICB0ZXN0X3VzZXIgPSBnZXRfdGVzdF91c2VyKHNlbGYsIHVz ZXIpCisgICAgICAgICAgICAgICAgc2VsZi5zZXRUZXN0Q2xpZW50KHRlc3RfdXNlcikKKyAgICAg ICAgICAgICAgICAjIHNlbGYuc2V0VGVzdENsaWVudCh0ZXN0X3VzZXJbJ3Rlc3RlciddKQorCisg ICAgICAgICAgICAgICAgIyBDYWxsICdydW5UZXN0JyB3aXRoIG5ldyB0ZXN0IGNsaWVudAorICAg ICAgICAgICAgICAgIGZ1bmMoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICAgICAgZmlu YWxseToKKyAgICAgICAgICAgICAgICAjIFJlc3RvcmUgdGhlIG9yaWdpbmFsIHVzZXIgYW5kIGRy aXZlcgorICAgICAgICAgICAgICAgIHNlbGYuX19jbGFzc19fLnRlc3RlciA9IG1haW5fdGVzdGVy CisKKyAgICAgICAgcmV0dXJuIHdyYXBwZXIKKworICAgIHJldHVybiBtdWx0aV91c2VyX2RlY29y YXRvcgpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vdGVzdF9jb25maWcuanNvbi5pbiBiL3dl Yi9yZWdyZXNzaW9uL3Rlc3RfY29uZmlnLmpzb24uaW4KaW5kZXggNjkwZjQ2YzFjLi4zOTNiZTZh ODQgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL3Rlc3RfY29uZmlnLmpzb24uaW4KKysrIGIv d2ViL3JlZ3Jlc3Npb24vdGVzdF9jb25maWcuanNvbi5pbgpAQCAtMTEsNiArMTEsMTEgQEAKICAg ICAibG9naW5fcGFzc3dvcmQiOiAiUEFTU1dPUkQiLAogICAgICJsb2dpbl91c2VybmFtZSI6ICJV U0VSMkBFWEFNUExFLkNPTSIKICAgfSwKKyAgInBnQWRtaW40X3Rlc3Rfbm9uX2FkbWluX2NyZWRl bnRpYWxzIjogeworICAgICJuZXdfcGFzc3dvcmQiOiAiTkVXUEFTU1dPUkQiLAorICAgICJsb2dp bl9wYXNzd29yZCI6ICJQQVNTV09SRCIsCisgICAgImxvZ2luX3VzZXJuYW1lIjogIlVTRVJARVhB TVBMRS5DT00iCisgIH0sCiAgICJwZ0FkbWluNF9sZGFwX2NyZWRlbnRpYWxzIjogewogICAgICJs b2dpbl9wYXNzd29yZCI6ICJQQVNTV09SRCIsCiAgICAgImxvZ2luX3VzZXJuYW1lIjogIlVTRVJO QU1FIgpkaWZmIC0tZ2l0IGEvd2ViL3NldHVwLnB5IGIvd2ViL3NldHVwLnB5CmluZGV4IGM4OGM0 ZTFmYS4uOTNhZTI1MjY0IDEwMDY0NAotLS0gYS93ZWIvc2V0dXAucHkKKysrIGIvd2ViL3NldHVw LnB5CkBAIC0xMTAsNiArMTEwLDcgQEAgZGVmIGR1bXBfc2VydmVycyhhcmdzKToKICAgICAgICAg ICAgICAgICBhZGRfdmFsdWUoYXR0cl9kaWN0LCAiUm9sZSIsIHNlcnZlci5yb2xlKQogICAgICAg ICAgICAgICAgIGFkZF92YWx1ZShhdHRyX2RpY3QsICJTU0xNb2RlIiwgc2VydmVyLnNzbF9tb2Rl KQogICAgICAgICAgICAgICAgIGFkZF92YWx1ZShhdHRyX2RpY3QsICJDb21tZW50Iiwgc2VydmVy LmNvbW1lbnQpCisgICAgICAgICAgICAgICAgYWRkX3ZhbHVlKGF0dHJfZGljdCwgIlNoYXJlZCIs IHNlcnZlci5zaGFyZWQpCiAgICAgICAgICAgICAgICAgYWRkX3ZhbHVlKGF0dHJfZGljdCwgIkRC UmVzdHJpY3Rpb24iLCBzZXJ2ZXIuZGJfcmVzKQogICAgICAgICAgICAgICAgIGFkZF92YWx1ZShh dHRyX2RpY3QsICJQYXNzRmlsZSIsIHNlcnZlci5wYXNzZmlsZSkKICAgICAgICAgICAgICAgICBh ZGRfdmFsdWUoYXR0cl9kaWN0LCAiU1NMQ2VydCIsIHNlcnZlci5zc2xjZXJ0KQpAQCAtMjQ4LDYg KzI0OSwxNCBAQCBkZWYgbG9hZF9zZXJ2ZXJzKGFyZ3MpOgogICAgICAgICAgICAgICAgICAgICBw cmludF9zdW1tYXJ5KCkKICAgICAgICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKIAorICAgICAg ICAgICAgIyBDaGVjayBpZiBzZXJ2ZXIgaXMgc2hhcmVkLldvbid0IGltcG9ydCBpZiB1c2VyIGlz IG5vbi1hZG1pbgorICAgICAgICAgICAgaWYgJ1NoYXJlZCcgaW4gb2JqOgorICAgICAgICAgICAg ICAgIGlmIG9ialsnU2hhcmVkJ10gYW5kIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vdCB1 c2VyLmhhc19yb2xlKCJBZG1pbmlzdHJhdG9yIik6CisgICAgICAgICAgICAgICAgICAgIHByaW50 KCJDYW4ndCBpbXBvcnQgdGhlIHNlcnZlciAnJXMnIGFzIGl0IGlzIHNoYXJlZCAiICUKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgb2JqWyJOYW1lIl0pCisgICAgICAgICAgICAgICAgICAgIGNv bnRpbnVlCisKICAgICAgICAgICAgICMgR2V0IHRoZSBncm91cC4gQ3JlYXRlIGlmIG5lY2Vzc2Fy eQogICAgICAgICAgICAgZ3JvdXBfaWQgPSAtMQogICAgICAgICAgICAgZm9yIGcgaW4gZ3JvdXBz Ogo= --000000000000271e6205ae3ea9ab--