Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bB0xE-000056-RC for pgadmin-hackers@arkaria.postgresql.org; Thu, 09 Jun 2016 14:29:05 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1bB0xE-0004jM-9T for pgadmin-hackers@arkaria.postgresql.org; Thu, 09 Jun 2016 14:29:04 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1bAzDL-0004im-69 for pgadmin-hackers@postgresql.org; Thu, 09 Jun 2016 12:37:35 +0000 Received: from mail-qg0-x231.google.com ([2607:f8b0:400d:c04::231]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1bAzDG-00078I-F3 for pgadmin-hackers@postgresql.org; Thu, 09 Jun 2016 12:37:34 +0000 Received: by mail-qg0-x231.google.com with SMTP id q32so19293341qgq.3 for ; Thu, 09 Jun 2016 05:37:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=AB8dWRd9lyHYv9fmcP0nEdStkkk9ESqBie68/4f+2Q0=; b=JoX6MxnV8FU5L83nuvVRtf6dMd5BKuyPiGyiVy4Gw0cJ+vkSOwB1O9fwTELGDhxGrN tf3GdgL9bF1ZhNFlmQmrpl1GZQXEk8w+BfwtwIq/yiAts34m27S2GX4eMaqqJEsR0TDQ MpEdMXPZXvStiA74QnraTuN7MUaK0UNBYN/kZa02JUUKnBmbPgyLEHEHUz4mt2kOH6TV tYrWbUAAbcoFVpMmHxltpyjtsY+7I57aE9YaJEYRSDHbrVDqz3bfqDIfDmPNpFLd/L/W QFoAoOw/AuRCuKs9r/bKHYHispjr4yzQZ2QBfKhGeM/rsTEM0Eu3rUvpoukxKRHNHkYL mKeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=AB8dWRd9lyHYv9fmcP0nEdStkkk9ESqBie68/4f+2Q0=; b=agHJqLL7R4aB9rh1oSoFMs9eivZvgmQeKJoDILqqJp+6D0g2Zr8DKgg0O0/hB0yYLV XqjAXqv9Bcca8WvFZRe15otBvvSzr5fZ/m4/Mribvvv63AuHyQwQ+jMyXluf3D5ADQFI CUZKdby2xtLxNMxHn8GuTX+QEtL8fzz3hibCrn2ueqjGpmaYG3N7AaV7/q/4spcHdTlG V+lUxQQny3/2Z24F2FQkvMl3iJjdsvJT6oiqMm95EnW0Ra+4HGM7hyiYwgMr5OHGE7Ri HctiYlSGctIPY6xbwTbdWt5P3qS3YA2HsXV8rEm+ZJjkbFjOqJzlkXjAYn8xywRY8SH5 qOvQ== X-Gm-Message-State: ALyK8tLJCFEj0P1JT72ClK1enaphTP/Xv9kIGvXl61taOuWr23rssHcnLrY3Uo+Xrt2+38GsHYimLEM1nloH7ySp X-Received: by 10.141.28.204 with SMTP id f195mr9695655qhe.97.1465475848619; Thu, 09 Jun 2016 05:37:28 -0700 (PDT) MIME-Version: 1.0 Received: by 10.237.45.165 with HTTP; Thu, 9 Jun 2016 05:37:08 -0700 (PDT) In-Reply-To: References: From: Priyanka Shendge Date: Thu, 9 Jun 2016 18:07:08 +0530 Message-ID: Subject: Re: pgAdmin IV API test cases patch To: Dave Page Cc: pgadmin-hackers , Kanchan Mohitey Content-Type: multipart/mixed; boundary=001a11423d2862bc8a0534d7afcd X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a11423d2862bc8a0534d7afcd Content-Type: multipart/alternative; boundary=001a11423d2862bc870534d7afcb --001a11423d2862bc870534d7afcb Content-Type: text/plain; charset=UTF-8 Hi Dave, PFA updated patch. I have made changes suggested by you. Kindly, review and let me know for more changes. On 6 June 2016 at 14:09, Priyanka Shendge wrote: > > > On 6 June 2016 at 14:03, Dave Page wrote: > >> Hi >> >> On Sun, Jun 5, 2016 at 6:56 PM, Priyanka Shendge >> wrote: >> > Hi, >> > >> > PFA patch for API test cases for tree nodes/modules. This patch does not >> > include >> > api tests for following modules: >> > >> > 1. Type >> > 2. Table child nodes >> > 3. FTS modules >> > >> > Kindly, review the same and let me know for any modification. >> >> I took a very quick look at the patch and immediately saw a serious >> problem I'm afraid - you cannot hard-code paths like this: >> >> + if >> os.path.isfile('/home/edb/Downloads/pgadmin4/web/regression/' >> + 'parent_id.pkl'): >> + exst_server_id = open('/home/edb/Downloads/pgadmin4/web' >> + '/regression/''parent_id.pkl', >> 'rb') >> >> You need to dynamically generate such paths so this will work on any >> machine. Look at line 19 of web/pgAdmin4.py to see how to get the >> patch to the current file as an example. >> > Sure, i'll check and update accordingly. > >> >> Also; despite this not being part of the end-user interface, please >> try to follow the standards for messages, e.g. instead of: >> >> No event trigger(s) to update!!! >> >> use >> >> No event trigger(s) to update. >> > Noted. I will update for all applicable files. > >> >> There is likely more to change of course, but please fix these issues >> first. >> > Sure. > > Thank you. > >> >> Thanks! >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> > > > > -- > Best, > Priyanka > > EnterpriseDB Corporation > The Enterprise PostgreSQL Company > -- Best, Priyanka EnterpriseDB Corporation The Enterprise PostgreSQL Company --001a11423d2862bc870534d7afcb Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Dave,

PFA updated patch. I have made= changes suggested by you.

Kindly, review and let = me know for more changes.

On 6 June 2016 at 14:09, Priyanka Shendge <priyanka.shendge@enterprisedb.com> wrote:


On 6 June 2016 at 14:03, Dave Page= <dpage@pgadmin.org> wrote:
= priyanka.shendge@enterprisedb.com> wrote:
> Hi,
>
> PFA patch for API test cases for tree nodes/modules. This patch does n= ot
> include
> api tests for following modules:
>
> 1. Type
> 2. Table child nodes
> 3. FTS modules
>
> Kindly, review the same and let me know for any modification.

I took a very quick look at the patch and immediately saw a serious<= br> problem I'm afraid - you cannot hard-code paths like this:

+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if os.path.isfile('/home/edb= /Downloads/pgadmin4/web/regression/'
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 'parent_id.pkl'):
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 exst_server_id =3D= open('/home/edb/Downloads/pgadmin4/web'
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 '/regressio= n/''parent_id.pkl', 'rb')

You need to dynamically generate such paths so this will work on any
machine. Look at line 19 of web/pgAdmin4.py to see how to get the
patch to the current file as an example.
Sure, = i'll check and update accordingly.=C2=A0

Also; despite this not being part of the end-user interface, please
try to follow the standards for messages, e.g. instead of:

No event trigger(s) to update!!!

use

No event trigger(s) to update.
Noted. I will up= date for all applicable files.=C2=A0

There is likely more to change of course, but please fix these issues first= .
Sure.=C2=A0

Thank yo= u.

Thanks!

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Best,
Priyanka

EnterpriseDB Corporation
The Enterprise PostgreSQL C= ompany




--
Best,
Priyanka

EnterpriseDB Corporation
The Enterprise PostgreSQL Company
--001a11423d2862bc870534d7afcb-- --001a11423d2862bc8a0534d7afcd Content-Type: application/octet-stream; name="pgadmin_api_test2.patch" Content-Disposition: attachment; filename="pgadmin_api_test2.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ip8af1jk0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvX19pbml0X18ucHkKaW5kZXggNmYzNDUz Yi4uNDg5ZDMyNCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvX19pbml0X18ucHkKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvX19pbml0X18u cHkKQEAgLTE0LDEyICsxNCwxMiBAQCBmcm9tIGZsYXNrLmV4dC5zZWN1cml0 eSBpbXBvcnQgY3VycmVudF91c2VyCiBmcm9tIHBnYWRtaW4ubW9kZWwgaW1w b3J0IGRiLCBTZXJ2ZXIsIFNlcnZlckdyb3VwLCBVc2VyCiBmcm9tIHBnYWRt aW4udXRpbHMubWVudSBpbXBvcnQgTWVudUl0ZW0KIGZyb20gcGdhZG1pbi51 dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2UsIGJhZF9yZXF1 ZXN0LCBmb3JiaWRkZW4sIFwKLSAgICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhf cmVzcG9uc2UsIGludGVybmFsX3NlcnZlcl9lcnJvciwgdW5hdXRob3JpemVk LCBnb25lCisgICAgbWFrZV9yZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlLCBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IsIHVuYXV0aG9yaXplZAogZnJvbSBwZ2Fk bWluLmJyb3dzZXIudXRpbHMgaW1wb3J0IFBHQ2hpbGROb2RlVmlldwogaW1w b3J0IHRyYWNlYmFjawogZnJvbSBmbGFzay5leHQuYmFiZWwgaW1wb3J0IGdl dHRleHQKIGltcG9ydCBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3VwcyBh cyBzZwotZnJvbSBwZ2FkbWluLnV0aWxzLmNyeXB0byBpbXBvcnQgZW5jcnlw dCwgZGVjcnlwdCwgcHFlbmNyeXB0cGFzc3dvcmQKK2Zyb20gcGdhZG1pbi51 dGlscy5jcnlwdG8gaW1wb3J0IGVuY3J5cHQKIGZyb20gY29uZmlnIGltcG9y dCBQR19ERUZBVUxUX0RSSVZFUgogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLnR5cGVzIGltcG9ydCBTZXJ2ZXJUeXBlCiBp bXBvcnQgY29uZmlnCkBAIC03MCwyMiArNzAsMTQgQEAgY2xhc3MgU2VydmVy TW9kdWxlKHNnLlNlcnZlckdyb3VwUGx1Z2luTW9kdWxlKToKICAgICAgICAg ICAgIGNvbm4gPSBtYW5hZ2VyLmNvbm5lY3Rpb24oKQogICAgICAgICAgICAg Y29ubmVjdGVkID0gY29ubi5jb25uZWN0ZWQoKQogICAgICAgICAgICAgaWYg Y29ubmVjdGVkOgotICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzdWx0ID0g Y29ubi5leGVjdXRlX2RpY3QoIiIiCisgICAgICAgICAgICAgICAgc3RhdHVz LCBpbl9yZWNvdmVyeSA9IGNvbm4uZXhlY3V0ZV9zY2FsYXIoIiIiCiAgICAg ICAgICAgICAgICAgICAgIFNFTEVDVCBDQVNFIFdIRU4gdXNlc3VwZXIKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRIRU4gcGdfaXNfaW5fcmVjb3Zl cnkoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRUxTRSBGQUxTRQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgRU5EIGFzIGlucmVjb3Zlcnks Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBDQVNFIFdIRU4gdXNlc3Vw ZXIgQU5EIHBnX2lzX2luX3JlY292ZXJ5KCkKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgIFRIRU4gcGdfaXNfeGxvZ19yZXBsYXlfcGF1c2VkKCkKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgIEVMU0UgRkFMU0UKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVORCBhcyBpc3JlcGxheXBhdXNlZAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgRU5EIGFzIGlucmVjb3ZlcnkKICAg ICAgICAgICAgICAgICAgICAgRlJPTSBwZ191c2VyIFdIRVJFIHVzZW5hbWU9 Y3VycmVudF91c2VyIiIiKQotCi0gICAgICAgICAgICAgICAgaW5fcmVjb3Zl cnkgPSByZXN1bHRbJ3Jvd3MnXVswXVsnaW5yZWNvdmVyeSddOwotICAgICAg ICAgICAgICAgIHdhbF9wYXVzZWQgPSByZXN1bHRbJ3Jvd3MnXVswXVsnaXNy ZXBsYXlwYXVzZWQnXQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAg ICAgICBpbl9yZWNvdmVyeSA9IE5vbmUKLSAgICAgICAgICAgICAgICB3YWxf cGF1c2VkID0gTm9uZQogCiAgICAgICAgICAgICB5aWVsZCBzZWxmLmdlbmVy YXRlX2Jyb3dzZXJfbm9kZSgKICAgICAgICAgICAgICAgICAgICAgIiVkIiAl IChzZXJ2ZXIuaWQpLApAQCAtMTAwLDggKzkyLDcgQEAgY2xhc3MgU2VydmVy TW9kdWxlKHNnLlNlcnZlckdyb3VwUGx1Z2luTW9kdWxlKToKICAgICAgICAg ICAgICAgICAgICAgdmVyc2lvbj1tYW5hZ2VyLnZlcnNpb24sCiAgICAgICAg ICAgICAgICAgICAgIGRiPW1hbmFnZXIuZGIsCiAgICAgICAgICAgICAgICAg ICAgIHVzZXI9bWFuYWdlci51c2VyX2luZm8gaWYgY29ubmVjdGVkIGVsc2Ug Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgaW5fcmVjb3Zlcnk9aW5fcmVj b3ZlcnksCi0gICAgICAgICAgICAgICAgICAgIHdhbF9wYXVzZT13YWxfcGF1 c2VkCisgICAgICAgICAgICAgICAgICAgIGluX3JlY292ZXJ5PWluX3JlY292 ZXJ5CiAgICAgICAgICAgICAgICAgICAgICkKIAogICAgIEBwcm9wZXJ0eQpA QCAtMTcwLDcgKzE2MSw3IEBAIGNsYXNzIFNlcnZlck1vZHVsZShzZy5TZXJ2 ZXJHcm91cFBsdWdpbk1vZHVsZSk6CiAgICAgICAgIE92ZXJyaWRlIGl0IHNv IHRoYXQgLSBpdCBkb2VzIG5vdCByZWdpc3RlciB0aGUgc2hvd19ub2RlIHBy ZWZlcmVuY2UgZm9yCiAgICAgICAgIHNlcnZlciB0eXBlLgogICAgICAgICAi IiIKLSAgICAgICAgU2VydmVyVHlwZS5yZWdpc3Rlcl9wcmVmZXJlbmNlcygp CisgICAgICAgIHBhc3MKIAogY2xhc3MgU2VydmVyTWVudUl0ZW0oTWVudUl0 ZW0pOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6CkBAIC0y MDQsMTEgKzE5NSw3IEBAIGNsYXNzIFNlcnZlck5vZGUoUEdDaGlsZE5vZGVW aWV3KToKICAgICAgICAgICAgIFt7J3Bvc3QnOiAnY3JlYXRlX3Jlc3RvcmVf cG9pbnQnfV0sCiAgICAgICAgICdjb25uZWN0JzogW3sKICAgICAgICAgICAg ICdnZXQnOiAnY29ubmVjdF9zdGF0dXMnLCAncG9zdCc6ICdjb25uZWN0Jywg J2RlbGV0ZSc6ICdkaXNjb25uZWN0JwotICAgICAgICAgICAgfV0sCi0gICAg ICAgICdjaGFuZ2VfcGFzc3dvcmQnOiBbeydwb3N0JzogJ2NoYW5nZV9wYXNz d29yZCd9XSwKLSAgICAgICAgJ3dhbF9yZXBsYXknOiBbewotICAgICAgICAg ICAgJ2RlbGV0ZSc6ICdwYXVzZV93YWxfcmVwbGF5JywgJ3B1dCc6ICdyZXN1 bWVfd2FsX3JlcGxheScKLSAgICAgICAgfV0KKyAgICAgICAgICAgIH1dCiAg ICAgfSkKIAogICAgIGRlZiBub2RlcyhzZWxmLCBnaWQpOgpAQCAtMjI4LDI0 ICsyMTUsNiBAQCBjbGFzcyBTZXJ2ZXJOb2RlKFBHQ2hpbGROb2RlVmlldyk6 CiAgICAgICAgICAgICBjb25uID0gbWFuYWdlci5jb25uZWN0aW9uKCkKICAg ICAgICAgICAgIGNvbm5lY3RlZCA9IGNvbm4uY29ubmVjdGVkKCkKIAotICAg ICAgICAgICAgaWYgY29ubmVjdGVkOgotICAgICAgICAgICAgICAgIHN0YXR1 cywgcmVzdWx0ID0gY29ubi5leGVjdXRlX2RpY3QoIiIiCi0gICAgICAgICAg ICAgICAgICAgIFNFTEVDVCBDQVNFIFdIRU4gdXNlc3VwZXIKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgIFRIRU4gcGdfaXNfaW5fcmVjb3ZlcnkoKQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgRUxTRSBGQUxTRQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgRU5EIGFzIGlucmVjb3ZlcnksCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICBDQVNFIFdIRU4gdXNlc3VwZXIgQU5E IHBnX2lzX2luX3JlY292ZXJ5KCkKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRIRU4gcGdfaXNfeGxvZ19yZXBsYXlfcGF1c2VkKCkKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVMU0UgRkFMU0UKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVORCBhcyBpc3JlcGxheXBhdXNlZAotICAgICAgICAg ICAgICAgICAgICBGUk9NIHBnX3VzZXIgV0hFUkUgdXNlbmFtZT1jdXJyZW50 X3VzZXIiIiIpCi0KLSAgICAgICAgICAgICAgICBpbl9yZWNvdmVyeSA9IHJl c3VsdFsncm93cyddWzBdWydpbnJlY292ZXJ5J107Ci0gICAgICAgICAgICAg ICAgd2FsX3BhdXNlZCA9IHJlc3VsdFsncm93cyddWzBdWydpc3JlcGxheXBh dXNlZCddCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGlu X3JlY292ZXJ5ID0gTm9uZQotICAgICAgICAgICAgICAgIHdhbF9wYXVzZWQg PSBOb25lCi0KICAgICAgICAgICAgIHJlcy5hcHBlbmQoCiAgICAgICAgICAg ICAgICAgc2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAog ICAgICAgICAgICAgICAgICAgICAiJWQiICUgKHNlcnZlci5pZCksCkBAIC0y NTksOSArMjI4LDcgQEAgY2xhc3MgU2VydmVyTm9kZShQR0NoaWxkTm9kZVZp ZXcpOgogICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfdHlwZT1tYW5hZ2Vy LnNlcnZlcl90eXBlIGlmIGNvbm5lY3RlZCBlbHNlICdwZycsCiAgICAgICAg ICAgICAgICAgICAgIHZlcnNpb249bWFuYWdlci52ZXJzaW9uLAogICAgICAg ICAgICAgICAgICAgICBkYj1tYW5hZ2VyLmRiLAotICAgICAgICAgICAgICAg ICAgICB1c2VyPW1hbmFnZXIudXNlcl9pbmZvIGlmIGNvbm5lY3RlZCBlbHNl IE5vbmUsCi0gICAgICAgICAgICAgICAgICAgIGluX3JlY292ZXJ5PWluX3Jl Y292ZXJ5LAotICAgICAgICAgICAgICAgICAgICB3YWxfcGF1c2U9d2FsX3Bh dXNlZAorICAgICAgICAgICAgICAgICAgICB1c2VyPW1hbmFnZXIudXNlcl9p bmZvIGlmIGNvbm5lY3RlZCBlbHNlIE5vbmUKICAgICAgICAgICAgICAgICAg ICAgKQogICAgICAgICAgICAgICAgICkKICAgICAgICAgcmV0dXJuIG1ha2Vf anNvbl9yZXNwb25zZShyZXN1bHQ9cmVzKQpAQCAtMjg4LDI0ICsyNTUsNiBA QCBjbGFzcyBTZXJ2ZXJOb2RlKFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAg IGNvbm4gPSBtYW5hZ2VyLmNvbm5lY3Rpb24oKQogICAgICAgICBjb25uZWN0 ZWQgPSBjb25uLmNvbm5lY3RlZCgpCiAKLSAgICAgICAgaWYgY29ubmVjdGVk OgotICAgICAgICAgICAgc3RhdHVzLCByZXN1bHQgPSBjb25uLmV4ZWN1dGVf ZGljdCgiIiIKLSAgICAgICAgICAgICAgICBTRUxFQ1QgQ0FTRSBXSEVOIHVz ZXN1cGVyCi0gICAgICAgICAgICAgICAgICAgIFRIRU4gcGdfaXNfaW5fcmVj b3ZlcnkoKQotICAgICAgICAgICAgICAgICAgICBFTFNFIEZBTFNFCi0gICAg ICAgICAgICAgICAgICAgIEVORCBhcyBpbnJlY292ZXJ5LAotICAgICAgICAg ICAgICAgICAgICBDQVNFIFdIRU4gdXNlc3VwZXIgQU5EIHBnX2lzX2luX3Jl Y292ZXJ5KCkKLSAgICAgICAgICAgICAgICAgICAgVEhFTiBwZ19pc194bG9n X3JlcGxheV9wYXVzZWQoKQotICAgICAgICAgICAgICAgICAgICBFTFNFIEZB TFNFCi0gICAgICAgICAgICAgICAgICAgIEVORCBhcyBpc3JlcGxheXBhdXNl ZAotICAgICAgICAgICAgICAgIEZST00gcGdfdXNlciBXSEVSRSB1c2VuYW1l PWN1cnJlbnRfdXNlciIiIikKLQotICAgICAgICAgICAgaW5fcmVjb3Zlcnkg PSByZXN1bHRbJ3Jvd3MnXVswXVsnaW5yZWNvdmVyeSddOwotICAgICAgICAg ICAgd2FsX3BhdXNlZCA9IHJlc3VsdFsncm93cyddWzBdWydpc3JlcGxheXBh dXNlZCddCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpbl9yZWNvdmVy eSA9IE5vbmUKLSAgICAgICAgICAgIHdhbF9wYXVzZWQgPSBOb25lCi0KICAg ICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKICAgICAgICAgICAg ICAgICByZXN1bHQ9c2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9u b2RlKAogICAgICAgICAgICAgICAgICAgICAiJWQiICUgKHNlcnZlci5pZCks CkBAIC0zMTksOSArMjY4LDcgQEAgY2xhc3MgU2VydmVyTm9kZShQR0NoaWxk Tm9kZVZpZXcpOgogICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfdHlwZT1t YW5hZ2VyLnNlcnZlcl90eXBlIGlmIGNvbm5lY3RlZCBlbHNlICdwZycsCiAg ICAgICAgICAgICAgICAgICAgIHZlcnNpb249bWFuYWdlci52ZXJzaW9uLAog ICAgICAgICAgICAgICAgICAgICBkYj1tYW5hZ2VyLmRiLAotICAgICAgICAg ICAgICAgICAgICB1c2VyPW1hbmFnZXIudXNlcl9pbmZvIGlmIGNvbm5lY3Rl ZCBlbHNlIE5vbmUsCi0gICAgICAgICAgICAgICAgICAgIGluX3JlY292ZXJ5 PWluX3JlY292ZXJ5LAotICAgICAgICAgICAgICAgICAgICB3YWxfcGF1c2U9 d2FsX3BhdXNlZAorICAgICAgICAgICAgICAgICAgICB1c2VyPW1hbmFnZXIu dXNlcl9pbmZvIGlmIGNvbm5lY3RlZCBlbHNlIE5vbmUKICAgICAgICAgICAg ICAgICAgICAgKQogICAgICAgICAgICAgICAgICkKIApAQCAtMzUwLDE0ICsy OTcsMTQgQEAgY2xhc3MgU2VydmVyTm9kZShQR0NoaWxkTm9kZVZpZXcpOgog ICAgICAgICAgICAgICAgICAgICBzdWNjZXNzPTAsCiAgICAgICAgICAgICAg ICAgICAgIGVycm9ybXNnPWUubWVzc2FnZSkKIAotICAgICAgICB0cnk6Ci0g ICAgICAgICAgICBpbmZvID0gdHJhY2ViYWNrLmZvcm1hdF9leGMoKQotICAg ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBjdXJy ZW50X2FwcC5sb2dnZXIuZXhjZXB0aW9uKGUpCi0gICAgICAgICAgICBpbmZv ID0gc3RyKGUpCisgICAgICAgICMgdHJ5OgorICAgICAgICAjICAgICBpbmZv ID0gdHJhY2ViYWNrLmZvcm1hdF9leGMoKQorICAgICAgICAjIGV4Y2VwdCBF eGNlcHRpb24gYXMgZToKKyAgICAgICAgIyAgICAgY3VycmVudF9hcHAubG9n Z2VyLmV4Y2VwdGlvbihlKQorICAgICAgICAjICAgICBpbmZvID0gc3RyKGUp CiAKICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZShzdWNjZXNz PTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mbz1p bmZvKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm89 ICJzdWNjZXNzIikKIAogICAgIGRlZiB1cGRhdGUoc2VsZiwgZ2lkLCBzaWQp OgogICAgICAgICAiIiJVcGRhdGUgdGhlIHNlcnZlciBzZXR0aW5ncyIiIgpA QCAtNzgyLDI0ICs3MjksNiBAQCBjbGFzcyBTZXJ2ZXJOb2RlKFBHQ2hpbGRO b2RlVmlldyk6CiAKICAgICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5p bmZvKCdDb25uZWN0aW9uIEVzdGFibGlzaGVkIGZvciBzZXJ2ZXI6IFwKICAg ICAgICAgICAgICAgICAlcyAtICVzJyAlIChzZXJ2ZXIuaWQsIHNlcnZlci5u YW1lKSkKLSAgICAgICAgICAgICMgVXBkYXRlIHRoZSByZWNvdmVyeSBhbmQg d2FsIHBhdXNlIG9wdGlvbiBmb3IgdGhlIHNlcnZlciBpZiBjb25uZWN0ZWQg c3VjY2Vzc2Z1bGx5Ci0gICAgICAgICAgICBzdGF0dXMsIHJlc3VsdCA9IGNv bm4uZXhlY3V0ZV9kaWN0KCIiIgotICAgICAgICAgICAgICAgICAgICBTRUxF Q1QgQ0FTRSBXSEVOIHVzZXN1cGVyCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICBUSEVOIHBnX2lzX2luX3JlY292ZXJ5KCkKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVMU0UgRkFMU0UKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgIEVORCBhcyBpbnJlY292ZXJ5LAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ0FTRSBXSEVOIHVzZXN1cGVyIEFORCBwZ19pc19pbl9yZWNv dmVyeSgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBUSEVOIHBnX2lz X3hsb2dfcmVwbGF5X3BhdXNlZCgpCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICBFTFNFIEZBTFNFCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBF TkQgYXMgaXNyZXBsYXlwYXVzZWQKLSAgICAgICAgICAgICAgICAgICAgRlJP TSBwZ191c2VyIFdIRVJFIHVzZW5hbWU9Y3VycmVudF91c2VyIiIiKQotICAg ICAgICAgICAgaWYgc3RhdHVzOgotICAgICAgICAgICAgICAgIGluX3JlY292 ZXJ5ID0gcmVzdWx0Wydyb3dzJ11bMF1bJ2lucmVjb3ZlcnknXTsKLSAgICAg ICAgICAgICAgICB3YWxfcGF1c2VkID0gcmVzdWx0Wydyb3dzJ11bMF1bJ2lz cmVwbGF5cGF1c2VkJ10KLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg ICAgICAgaW5fcmVjb3ZlcnkgPSBOb25lCi0gICAgICAgICAgICAgICAgd2Fs X3BhdXNlZCA9IE5vbmUKLQogICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNv bl9yZXNwb25zZSgKICAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9 MSwKICAgICAgICAgICAgICAgICAgICAgICAgIGluZm89Z2V0dGV4dCgiU2Vy dmVyIGNvbm5lY3RlZC4iKSwKQEAgLTgxMSw5ICs3NDAsNyBAQCBjbGFzcyBT ZXJ2ZXJOb2RlKFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ3R5cGUnOiBtYW5hZ2VyLnNlcnZlcl90eXBlLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJzaW9uJzogbWFuYWdlci52 ZXJzaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYic6IG1h bmFnZXIuZGIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZXIn OiBtYW5hZ2VyLnVzZXJfaW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnaW5fcmVjb3ZlcnknOiBpbl9yZWNvdmVyeSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnd2FsX3BhdXNlJzogd2FsX3BhdXNlZAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICd1c2VyJzogbWFuYWdlci51c2Vy X2luZm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICApCiAKQEAgLTkxMSwxNzcgKzgzOCw0IEBAIGNs YXNzIFNlcnZlck5vZGUoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAg ICkKICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9c3RyKGUpKQogCi0gICAgZGVmIGNoYW5nZV9wYXNzd29yZChz ZWxmLCBnaWQsIHNpZCk6Ci0gICAgICAgICIiIgotICAgICAgICBUaGlzIGZ1 bmN0aW9uIGlzIHVzZWQgdG8gY2hhbmdlIHRoZSBwYXNzd29yZCBvZiB0aGUK LSAgICAgICAgRGF0YWJhc2UgU2VydmVyLgotCi0gICAgICAgIEFyZ3M6Ci0g ICAgICAgICAgICBnaWQ6IEdyb3VwIGlkCi0gICAgICAgICAgICBzaWQ6IFNl cnZlciBpZAotICAgICAgICAiIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAg ICAgZGF0YSA9IGpzb24ubG9hZHMocmVxdWVzdC5mb3JtWydkYXRhJ10pCi0g ICAgICAgICAgICBpZiBkYXRhIGFuZCAoJ3Bhc3N3b3JkJyBub3QgaW4gZGF0 YSBvcgotICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbJ3Bhc3N3b3Jk J10gPT0gJycgb3IKLSAgICAgICAgICAgICAgICAgICAgICAgICAnbmV3UGFz c3dvcmQnIG5vdCBpbiBkYXRhIG9yCi0gICAgICAgICAgICAgICAgICAgICAg ICAgZGF0YVsnbmV3UGFzc3dvcmQnXSA9PSAnJyBvcgotICAgICAgICAgICAg ICAgICAgICAgICAgICdjb25maXJtUGFzc3dvcmQnIG5vdCBpbiBkYXRhIG9y Ci0gICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsnY29uZmlybVBhc3N3 b3JkJ10gPT0gJycpOgotICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pz b25fcmVzcG9uc2UoCi0gICAgICAgICAgICAgICAgICAgIHN0YXR1cz00MDAs Ci0gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MCwKLSAgICAgICAgICAg ICAgICAgICAgZXJyb3Jtc2c9Z2V0dGV4dCgKLSAgICAgICAgICAgICAgICAg ICAgICAgICJDb3VsZG4ndCBmaW5kIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIo cykuIgotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAg KQotCi0gICAgICAgICAgICBpZiBkYXRhWyduZXdQYXNzd29yZCddICE9IGRh dGFbJ2NvbmZpcm1QYXNzd29yZCddOgotICAgICAgICAgICAgICAgIHJldHVy biBtYWtlX2pzb25fcmVzcG9uc2UoCi0gICAgICAgICAgICAgICAgICAgIHN0 YXR1cz0yMDAsCi0gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MCwKLSAg ICAgICAgICAgICAgICAgICAgZXJyb3Jtc2c9Z2V0dGV4dCgKLSAgICAgICAg ICAgICAgICAgICAgICAgICJQYXNzd29yZHMgZG8gbm90IG1hdGNoLiIKLSAg ICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgICkKLQotICAg ICAgICAgICAgIyBGZXRjaCBTZXJ2ZXIgRGV0YWlscwotICAgICAgICAgICAg c2VydmVyID0gU2VydmVyLnF1ZXJ5LmZpbHRlcl9ieShpZD1zaWQpLmZpcnN0 KCkKLSAgICAgICAgICAgIGlmIHNlcnZlciBpcyBOb25lOgotICAgICAgICAg ICAgICAgIHJldHVybiBiYWRfcmVxdWVzdChnZXR0ZXh0KCJTZXJ2ZXIgbm90 IGZvdW5kLiIpKQotCi0gICAgICAgICAgICAjIEZldGNoIFVzZXIgRGV0YWls cy4KLSAgICAgICAgICAgIHVzZXIgPSBVc2VyLnF1ZXJ5LmZpbHRlcl9ieShp ZD1jdXJyZW50X3VzZXIuaWQpLmZpcnN0KCkKLSAgICAgICAgICAgIGlmIHVz ZXIgaXMgTm9uZToKLSAgICAgICAgICAgICAgICByZXR1cm4gdW5hdXRob3Jp emVkKGdldHRleHQoIlVuYXV0aG9yaXplZCByZXF1ZXN0LiIpKQotCi0gICAg ICAgICAgICBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRf ZHJpdmVyCi0gICAgICAgICAgICBtYW5hZ2VyID0gZ2V0X2RyaXZlcihQR19E RUZBVUxUX0RSSVZFUikuY29ubmVjdGlvbl9tYW5hZ2VyKHNpZCkKLSAgICAg ICAgICAgIGNvbm4gPSBtYW5hZ2VyLmNvbm5lY3Rpb24oKQotCi0gICAgICAg ICAgICBkZWNyeXB0ZWRfcGFzc3dvcmQgPSBkZWNyeXB0KG1hbmFnZXIucGFz c3dvcmQsIHVzZXIucGFzc3dvcmQpCi0KLSAgICAgICAgICAgIGlmIGlzaW5z dGFuY2UoZGVjcnlwdGVkX3Bhc3N3b3JkLCBieXRlcyk6Ci0gICAgICAgICAg ICAgICAgZGVjcnlwdGVkX3Bhc3N3b3JkID0gZGVjcnlwdGVkX3Bhc3N3b3Jk LmRlY29kZSgpCi0KLSAgICAgICAgICAgIHBhc3N3b3JkID0gZGF0YVsncGFz c3dvcmQnXQotCi0gICAgICAgICAgICAjIFZhbGlkYXRlIG9sZCBwYXNzd29y ZCBiZWZvcmUgc2V0dGluZyBuZXcuCi0gICAgICAgICAgICBpZiBwYXNzd29y ZCAhPSBkZWNyeXB0ZWRfcGFzc3dvcmQ6Ci0gICAgICAgICAgICAgICAgcmV0 dXJuIHVuYXV0aG9yaXplZChnZXR0ZXh0KCJJbmNvcnJlY3QgcGFzc3dvcmQu IikpCi0KLSAgICAgICAgICAgICMgSGFzaCBuZXcgcGFzc3dvcmQgYmVmb3Jl IHNhdmluZyBpdC4KLSAgICAgICAgICAgIHBhc3N3b3JkID0gcHFlbmNyeXB0 cGFzc3dvcmQoZGF0YVsnbmV3UGFzc3dvcmQnXSwgbWFuYWdlci51c2VyKQot Ci0gICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4o WwotICAgICAgICAgICAgICAgICAgICAgICAgJ3NlcnZlcnMvc3FsJywKLSAg ICAgICAgICAgICAgICAgICAgICAgICc5LjJfcGx1cycgaWYgbWFuYWdlci52 ZXJzaW9uID49IDkwMjAwIGVsc2UgJzkuMV9wbHVzJywKLSAgICAgICAgICAg ICAgICAgICAgICAgICdjaGFuZ2VfcGFzc3dvcmQuc3FsJwotICAgICAgICAg ICAgICAgICAgICAgICAgXSksCi0gICAgICAgICAgICAgICAgY29ubj1jb25u LCBfPWdldHRleHQsCi0gICAgICAgICAgICAgICAgdXNlcj1tYW5hZ2VyLnVz ZXIsIGVuY3J5cHRlZF9wYXNzd29yZD1wYXNzd29yZCkKLQotICAgICAgICAg ICAgc3RhdHVzLCByZXMgPSBjb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKLQot ICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKLQot ICAgICAgICAgICAgcGFzc3dvcmQgPSBlbmNyeXB0KGRhdGFbJ25ld1Bhc3N3 b3JkJ10sIHVzZXIucGFzc3dvcmQpCi0gICAgICAgICAgICAjIENoZWNrIGlm IG9sZCBwYXNzd29yZCB3YXMgc3RvcmVkIGluIHBnYWRtaW40IHNxbGl0ZSBk YXRhYmFzZS4KLSAgICAgICAgICAgICMgSWYgeWVzIHRoZW4gdXBkYXRlIHRo YXQgcGFzc3dvcmQuCi0gICAgICAgICAgICBpZiBzZXJ2ZXIucGFzc3dvcmQg aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgc2V0YXR0cihzZXJ2ZXIs ICdwYXNzd29yZCcsIHBhc3N3b3JkKQotICAgICAgICAgICAgICAgIGRiLnNl c3Npb24uY29tbWl0KCkKLSAgICAgICAgICAgICMgQWxzbyB1cGRhdGUgcGFz c3dvcmQgaW4gY29ubmVjdGlvbiBtYW5hZ2VyLgotICAgICAgICAgICAgbWFu YWdlci5wYXNzd29yZCA9IHBhc3N3b3JkCi0gICAgICAgICAgICBtYW5hZ2Vy LnVwZGF0ZV9zZXNzaW9uKCkKLQotICAgICAgICAgICAgcmV0dXJuIG1ha2Vf anNvbl9yZXNwb25zZSgKLSAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTIw MCwKLSAgICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAotICAgICAgICAg ICAgICAgICAgICBpbmZvPWdldHRleHQoCi0gICAgICAgICAgICAgICAgICAg ICAgICAiUGFzc3dvcmQgY2hhbmdlZCBzdWNjZXNzZnVsbHkuIgotICAgICAg ICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgKQotCi0gICAgICAg IGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQotCi0gICAg ZGVmIHdhbF9yZXBsYXkoc2VsZiwgc2lkLCBwYXVzZT1UcnVlKToKLSAgICAg ICAgIiIiCi0gICAgICAgIFV0aWxpdHkgZnVuY3Rpb24gZm9yIHdhbF9yZXBs YXkgZm9yIHJlc3VtZS9wYXVzZS4KLSAgICAgICAgIiIiCi0gICAgICAgIHNl cnZlciA9IFNlcnZlci5xdWVyeS5maWx0ZXJfYnkoCi0gICAgICAgICAgICB1 c2VyX2lkPWN1cnJlbnRfdXNlci5pZCwgaWQ9c2lkCi0gICAgICAgICkuZmly c3QoKQotCi0gICAgICAgIGlmIHNlcnZlciBpcyBOb25lOgotICAgICAgICAg ICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKLSAgICAgICAgICAgICAg ICBzdWNjZXNzPTAsCi0gICAgICAgICAgICAgICAgZXJyb3Jtc2c9Z2V0dGV4 dCgiQ291bGQgbm90IGZpbmQgdGhlIHJlcXVpcmVkIHNlcnZlci4iKQotICAg ICAgICAgICAgKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGZyb20g cGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKLSAgICAg ICAgICAgIG1hbmFnZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVS KS5jb25uZWN0aW9uX21hbmFnZXIoc2lkKQotICAgICAgICAgICAgY29ubiA9 IG1hbmFnZXIuY29ubmVjdGlvbigpCi0KLSAgICAgICAgICAgICMgRXhlY3V0 ZSBTUUwgdG8gcGF1c2Ugb3IgcmVzdW1lIFdBTCByZXBsYXkKLSAgICAgICAg ICAgIGlmIGNvbm4uY29ubmVjdGVkKCk6Ci0gICAgICAgICAgICAgICAgaWYg cGF1c2U6Ci0gICAgICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gY29u bi5leGVjdXRlX3NjYWxhcigKLSAgICAgICAgICAgICAgICAgICAgICAgICJT RUxFQ1QgcGdfeGxvZ19yZXBsYXlfcGF1c2UoKTsiCi0gICAgICAgICAgICAg ICAgICAgICkKLSAgICAgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoK LSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Jt c2c9c3RyKHJlcykKLSAgICAgICAgICAgICAgICAgICAgICAgICkKLSAgICAg ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBzdGF0dXMs IHJlcyA9IGNvbm4uZXhlY3V0ZV9zY2FsYXIoCi0gICAgICAgICAgICAgICAg ICAgICAgICAiU0VMRUNUIHBnX3hsb2dfcmVwbGF5X3Jlc3VtZSgpOyIKLSAg ICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgICAgICBpZiBu b3Qgc3RhdHVzOgotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlcnJvcm1zZz1zdHIocmVzKQotICAgICAgICAgICAgICAgICAgICAg ICAgKQotICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9u c2UoCi0gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MSwKLSAgICAgICAg ICAgICAgICAgICAgaW5mbz1nZXR0ZXh0KCdXQUwgcmVwbGF5IHBhdXNlZCcp LAotICAgICAgICAgICAgICAgICAgICBkYXRhPXsnaW5fcmVjb3ZlcnknOiBU cnVlLCAnd2FsX3BhdXNlJzogcGF1c2V9Ci0gICAgICAgICAgICAgICAgKQot ICAgICAgICAgICAgcmV0dXJuIGdvbmUoZXJyb3Jtc2c9XygnUGxlYXNlIGNv bm5lY3QgdGhlIHNlcnZlciEnKSkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlv biBhcyBlOgotICAgICAgICAgICAgY3VycmVudF9hcHAubG9nZ2VyLmVycm9y KAotICAgICAgICAgICAgICAgICdXQUwgcmVwbGF5IHBhdXNlL3Jlc3VtZSBm YWlsZWQnCi0gICAgICAgICAgICApCi0gICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKLQotICAgIGRl ZiByZXN1bWVfd2FsX3JlcGxheShzZWxmLCBnaWQsIHNpZCk6Ci0gICAgICAg ICIiIgotICAgICAgICBUaGlzIG1ldGhvZCB3aWxsIHJlc3VtZSBXQUwgcmVw bGF5Ci0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGdpZDogU2VydmVy IGdyb3VwIElECi0gICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAotCi0gICAg ICAgIFJldHVybnM6Ci0gICAgICAgICAgICBOb25lCi0gICAgICAgICIiIgot ICAgICAgICByZXR1cm4gc2VsZi53YWxfcmVwbGF5KHNpZCwgRmFsc2UpCi0K LSAgICBkZWYgcGF1c2Vfd2FsX3JlcGxheShzZWxmLCBnaWQsIHNpZCk6Ci0g ICAgICAgICIiIgotICAgICAgICBUaGlzIG1ldGhvZCB3aWxsIHBhdXNlIFdB TCByZXBsYXkKLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgZ2lkOiBT ZXJ2ZXIgZ3JvdXAgSUQKLSAgICAgICAgICAgIHNpZDogU2VydmVyIElECi0K LSAgICAgICAgUmV0dXJuczoKLSAgICAgICAgICAgIE5vbmUKLSAgICAgICAg IiIiCi0gICAgICAgIHJldHVybiBzZWxmLndhbF9yZXBsYXkoc2lkLCBUcnVl KQotCi0KLQogU2VydmVyTm9kZS5yZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXBy aW50KQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3Rlc3RzL19faW5pdF9f LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL2Nhc3RzL3Rlc3RzL19faW5pdF9fLnB5Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmYjAyNjMKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvY2FzdHMvdGVzdHMvX19pbml0X18ucHkKQEAg LTAsMCArMSwxNiBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBw Z0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAo QykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0K KyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdy ZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitm cm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJh dG9yCisKKworY2xhc3MgQ2FzdFRlc3RHZW5lcmF0b3IoQmFzZVRlc3RHZW5l cmF0b3IpOgorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgcmV0 dXJuIFtdCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2FzdHMvdGVzdHMvdGVzdF9j YXN0X2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZXN0cy90ZXN0X2Nhc3RfYWRk LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmMjJm ODQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2FzdHMvdGVzdHMvdGVz dF9jYXN0X2FkZC5weQpAQCAtMCwwICsxLDc3IEBACisjICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMK KyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4g RGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2Vk IHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisKK2Zyb20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0 IGNvbmZpZ19kYXRhLCBwaWNrbGVfcGF0aAorZnJvbSBwZ2FkbWluLmJyb3dz ZXIudGVzdHMudGVzdF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0Q2FzZQoraW1w b3J0IGpzb24sIHBpY2tsZSwgb3MKK2Zyb20gcmVncmVzc2lvbi50ZXN0X3V0 aWxzIGltcG9ydCBnZXRfaWRzCitmcm9tIHJlZ3Jlc3Npb24udGVzdF9ub2Rl cyBpbXBvcnQgdGVzdF9nZXRub2RlcworCisKK2NsYXNzIENhc3RzQWRkVGVz dENhc2UoTG9naW5UZXN0Q2FzZSk6CisgICAgIiIiVGhpcyBjbGFzcyB3aWxs IGFkZCBjYXN0IHVuZGVyIGRhdGFiYXNlIG5vZGUuICIiIgorCisgICAgcHJp b3JpdHkgPSAxOQorCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZl dGNoaW5nIGRlZmF1bHQgVVJMIGZvciBjYXN0IG5vZGUuCisgICAgICAgICgn Q2hlY2sgQ2FzdCBOb2RlJywgZGljdCh1cmw9Jy9icm93c2VyL2Nhc3Qvb2Jq LycpKQorICAgIF0KKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAg ICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCBjYXN0IHVuZGVyIDFzdCBz ZXJ2ZXIgb2YgdHJlZSBub2RlLiAiIiIKKworICAgICAgICBhbGxfaWQgPSBn ZXRfaWRzKCkKKworICAgICAgICBzZXJ2ZXJfaWQgPSBhbGxfaWRbInNpZCJd WzBdCisgICAgICAgIGRiX2lkID0gYWxsX2lkWyJkaWQiXVswXQorICAgICAg ICBzcnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10K KworICAgICAgICBkYl9jb24gPSB0ZXN0X2dldG5vZGVzKG5vZGU9c2VsZikK KworICAgICAgICBpZiBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisK KyAgICAgICAgICAgIGRhdGEgPVwKKyAgICAgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICAgICAgICJjYXN0Y29udGV4dCI6IGNvbmZpZ19kYXRhWyd0 ZXN0X2Nhc3RzX2NyZWRlbnRpYWxzJ10KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfY2FzdF9jb250ZXh0 J10sCisgICAgICAgICAgICAgICAgICAgICJlbmNvZGluZyI6IGNvbmZpZ19k YXRhWyd0ZXN0X2Nhc3RzX2NyZWRlbnRpYWxzJ10KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfZW5jb2Rpbmcn XSwKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiBjb25maWdfZGF0YVsn dGVzdF9jYXN0c19jcmVkZW50aWFscyddCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfbmFtZSddLAorICAgICAgICAg ICAgICAgICAgICAic3JjdHlwIjogY29uZmlnX2RhdGFbJ3Rlc3RfY2FzdHNf Y3JlZGVudGlhbHMnXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBbJ3Rlc3Rfc291cmNlX3R5cGUnXSwKKyAgICAgICAgICAg ICAgICAgICAgInRyZ3R5cCI6IGNvbmZpZ19kYXRhWyd0ZXN0X2Nhc3RzX2Ny ZWRlbnRpYWxzJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgWyd0ZXN0X3RhcmdldF90eXBlJ10KKworICAgICAgICAgICAg ICAgIH0KKworICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5w b3N0KHNlbGYudXJsICsgc3RyKHNydl9ncnApICsgJy8nICsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VydmVyX2lk KSArICcvJyArIHN0cihkYl9pZCkgKyAnLycsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEp LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAgICAgICAgICAgc2VsZi5h c3NlcnRUcnVlKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICAg ICAgICAgIHJlc3BkYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRl Y29kZSgpKQorCisgICAgICAgICAgICBjYXN0X2lkID0gcmVzcGRhdGFbJ25v ZGUnXVsnX2lkJ10KKworICAgICAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUo cGlja2xlX3BhdGgpOgorICAgICAgICAgICAgICAgIGV4c3Rfc2VydmVyX2lk ID0gb3BlbihwaWNrbGVfcGF0aCwgJ3JiJykKKyAgICAgICAgICAgICAgICBh bGxfaWQgPSBwaWNrbGUubG9hZChleHN0X3NlcnZlcl9pZCkKKyAgICAgICAg ICAgICAgICBwaWNrbGVfaWRfZGljdCA9IGFsbF9pZAorCisgICAgICAgICAg ICBwaWNrbGVfaWRfZGljdFsiY2lkIl0uYXBwZW5kKGNhc3RfaWQpCisKKyAg ICAgICAgICAgIGNhc3Rfb3V0cHV0ID0gb3BlbihwaWNrbGVfcGF0aCwgJ3di JykKKyAgICAgICAgICAgIHBpY2tsZS5kdW1wKHBpY2tsZV9pZF9kaWN0LCBj YXN0X291dHB1dCkKKyAgICAgICAgICAgIGNhc3Rfb3V0cHV0LmNsb3NlKCkK KworCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2FzdHMvdGVzdHMvdGVzdF9jYXN0 X2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZXN0cy90ZXN0X2Nhc3RfZGVs ZXRlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAz NDBiNDIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2FzdHMvdGVzdHMv dGVzdF9jYXN0X2RlbGV0ZS5weQpAQCAtMCwwICsxLDYyIEBACisjICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwg VG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBn QWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJl bGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20gcmVncmVzc2lvbi5jb25maWcg aW1wb3J0IGNvbmZpZ19kYXRhCitmcm9tIHBnYWRtaW4uYnJvd3Nlci50ZXN0 cy50ZXN0X2xvZ2luIGltcG9ydCBMb2dpblRlc3RDYXNlCitpbXBvcnQganNv bgorZnJvbSByZWdyZXNzaW9uLnRlc3RfdXRpbHMgaW1wb3J0IGdldF9pZHMK K2Zyb20gcmVncmVzc2lvbi50ZXN0X25vZGVzIGltcG9ydCB0ZXN0X2dldG5v ZGVzCisKKworY2xhc3MgQ2FzdHNEZWxldGVUZXN0Q2FzZShMb2dpblRlc3RD YXNlKToKKyAgICAiIiIKKyAgICBUaGlzIGNsYXNzIHdpbGwgZGVsZXRlIGNh c3Qgbm9kZSBwcmVzZW50IG9uIHRoZSBvYmplY3QgYnJvd3NlcidzCisgICAg dHJlZSBub2RlIGJ5IHJlc3BvbnNlIGNvZGUuCisgICAgIiIiCisKKyAgICBw cmlvcml0eSA9IDIyCisKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMg RmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGNhc3Qgbm9kZS4KKyAgICAgICAg KCdDaGVjayBDYXN0IE5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIvY2FzdC9v YmovJykpCisgICAgXQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAg ICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIGFkZGVkIGNhc3Qg bm9kZSB1bmRlciBkYXRhYmFzZSBub2RlLiAiIiIKKworICAgICAgICBhbGxf aWQgPSBnZXRfaWRzKCkKKworICAgICAgICBzZXJ2ZXJfaWQgPSBhbGxfaWRb InNpZCJdWzBdCisgICAgICAgIGRiX2lkID0gYWxsX2lkWyJkaWQiXVswXQor ICAgICAgICBjYXN0X2lkID0gYWxsX2lkWyJjaWQiXVswXQorICAgICAgICBz cnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKwor ICAgICAgICBkYl9jb24gPSB0ZXN0X2dldG5vZGVzKG5vZGU9c2VsZikKKwor ICAgICAgICBpZiBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisKKyAg ICAgICAgICAgICMgRmV0Y2ggYWRkZWQgY2FzdCBub2RlLgorICAgICAgICAg ICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoc2VsZi51cmwgKyBzdHIo c3J2X2dycCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJfaWQp ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcv JyArIHN0cihjYXN0X2lkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAg ICAgICAgICAgcmVzcGRhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEu ZGVjb2RlKCkpCisKKyAgICAgICAgICAgIGlmIGxlbihyZXNwZGF0YSkgPT0g MDoKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5vIGNhc3Qo cykgdG8gZGVsZXRlLiIpCisKKyAgICAgICAgICAgIGRlbF9yZXNwb25zZSA9 IHNlbGYudGVzdGVyLmRlbGV0ZShzZWxmLnVybCArIHN0cihzcnZfZ3JwKSAr ICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihkYl9pZCkg KyAnLycgKyBzdHIoY2FzdF9pZCksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVl KQorCisgICAgICAgICAgICBkZWxfcmVzcGRhdGEgPSBqc29uLmxvYWRzKGRl bF9yZXNwb25zZS5kYXRhLmRlY29kZSgpKQorCisgICAgICAgICAgICBzZWxm LmFzc2VydFRydWUoZGVsX3Jlc3BkYXRhWydzdWNjZXNzJ10sIDEpClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nh c3RzL3Rlc3RzL3Rlc3RfY2FzdF9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2FzdHMvdGVz dHMvdGVzdF9jYXN0X2dldC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi41NjAzNzA3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L2Nhc3RzL3Rlc3RzL3Rlc3RfY2FzdF9nZXQucHkKQEAgLTAsMCArMSw0NiBA QAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIw MTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0 d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNl CisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHJlZ3Jlc3Np b24uY29uZmlnIGltcG9ydCBjb25maWdfZGF0YQorZnJvbSBwZ2FkbWluLmJy b3dzZXIudGVzdHMudGVzdF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0Q2FzZQor ZnJvbSByZWdyZXNzaW9uLnRlc3RfdXRpbHMgaW1wb3J0IGdldF9pZHMKK2Zy b20gcmVncmVzc2lvbi50ZXN0X25vZGVzIGltcG9ydCB0ZXN0X2dldG5vZGVz CisKKworY2xhc3MgQ2FzdHNHZXRUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToK KyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGZldGNoIHRoZSBjYXN0IG5vZGUg YWRkZWQgdW5kZXIgZGF0YWJhc2UuICIiIgorCisgICAgcHJpb3JpdHkgPSAy MAorCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5nIGRl ZmF1bHQgVVJMIGZvciBjYXN0IG5vZGUuCisgICAgICAgICgnQ2hlY2sgQ2Fz dCBOb2RlJywgZGljdCh1cmw9Jy9icm93c2VyL2Nhc3Qvb2JqLycpKQorICAg IF0KKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhp cyBmdW5jdGlvbiB3aWxsIGdldCBjYXN0IHVuZGVyIDFzdCBzZXJ2ZXIgb2Yg dHJlZSBub2RlLiAiIiIKKworICAgICAgICBhbGxfaWQgPSBnZXRfaWRzKCkK KworICAgICAgICBzZXJ2ZXJfaWQgPSBhbGxfaWRbInNpZCJdWzBdCisgICAg ICAgIGRiX2lkID0gYWxsX2lkWyJkaWQiXVswXQorICAgICAgICBjYXN0X2lk ID0gYWxsX2lkWyJjaWQiXVswXQorICAgICAgICBzcnZfZ3JwID0gY29uZmln X2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKworICAgICAgICBkYl9jb24g PSB0ZXN0X2dldG5vZGVzKG5vZGU9c2VsZikKKworICAgICAgICBpZiBkYl9j b25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisKKyAgICAgICAgICAgIHJlc3Bv bnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYudXJsICsgc3RyKHNydl9ncnAp ICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKGRiX2lkKSArCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLycgKyBzdHIo Y2FzdF9pZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKyAgICAgICAgICAg IHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDAp CisKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZXN0cy90ZXN0X2Nhc3Rf cHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3Rlc3RzL3Rlc3RfY2FzdF9wdXQucHkK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDMyZWM4ZQot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZXN0cy90ZXN0X2Nh c3RfcHV0LnB5CkBAIC0wLDAgKzEsNjcgQEAKKyMgIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIwor IyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZl bG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5k ZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKworZnJvbSByZWdyZXNzaW9uLmNvbmZpZyBpbXBvcnQgY29u ZmlnX2RhdGEKK2Zyb20gcGdhZG1pbi5icm93c2VyLnRlc3RzLnRlc3RfbG9n aW4gaW1wb3J0IExvZ2luVGVzdENhc2UKK2ltcG9ydCBqc29uCitmcm9tIHJl Z3Jlc3Npb24udGVzdF91dGlscyBpbXBvcnQgZ2V0X2lkcworZnJvbSByZWdy ZXNzaW9uLnRlc3Rfbm9kZXMgaW1wb3J0IHRlc3RfZ2V0bm9kZXMKKworCitj bGFzcyBDYXN0c1VwZGF0ZVRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgorICAg ICIiIgorICAgIFRoaXMgY2xhc3Mgd2lsbCB1cGRhdGUgY2FzdCBub2RlIHBy ZXNlbnQgb24gdGhlIG9iamVjdCBicm93c2VyJ3MKKyAgICB0cmVlIG5vZGUg YnkgcmVzcG9uc2UgY29kZS4KKyAgICAiIiIKKyAgICBwcmlvcml0eSA9IDIx CisKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVm YXVsdCBVUkwgZm9yIGNhc3Qgbm9kZS4KKyAgICAgICAgKCdDaGVjayBDYXN0 IE5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIvY2FzdC9vYmovJykpCisgICAg XQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlz IGZ1bmN0aW9uIHdpbGwgdXBkYXRlIGNhc3QgdW5kZXIgMXN0IHNlcnZlciBv ZiB0cmVlIG5vZGUuICIiIgorCisgICAgICAgIGFsbF9pZCA9IGdldF9pZHMo KQorCisgICAgICAgIHNlcnZlcl9pZCA9IGFsbF9pZFsic2lkIl1bMF0KKyAg ICAgICAgZGJfaWQgPSBhbGxfaWRbImRpZCJdWzBdCisgICAgICAgIGNhc3Rf aWQgPSBhbGxfaWRbImNpZCJdWzBdCisgICAgICAgIHNydl9ncnAgPSBjb25m aWdfZGF0YVsndGVzdF9zZXJ2ZXJfZ3JvdXAnXQorCisgICAgICAgIGRiX2Nv biA9IHRlc3RfZ2V0bm9kZXMobm9kZT1zZWxmKQorCisgICAgICAgIGlmIGRi X2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKworICAgICAgICAgICAgIyBG ZXRjaCBhZGRlZCBjYXN0IG5vZGUuCisgICAgICAgICAgICByZXNwb25zZSA9 IHNlbGYudGVzdGVyLmdldChzZWxmLnVybCArIHN0cihzcnZfZ3JwKSArICcv JyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHIoc2VydmVyX2lkKSArICcvJyArIHN0cihkYl9pZCkgKworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8nICsgc3RyKGNhc3Rf aWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAgICAgICAgICByZXNw ZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKwor ICAgICAgICAgICAgaWYgbGVuKHJlc3BkYXRhKSA9PSAwOgorICAgICAgICAg ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8gY2FzdChzKSB0byB1cGRhdGUu IikKKworICAgICAgICAgICAgZGF0YSA9IHsKKyAgICAgICAgICAgICAgICAi ZGVzY3JpcHRpb24iOiBjb25maWdfZGF0YVsidGVzdF9jYXN0X3VwZGF0ZV9k YXRhIl0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJ0 ZXN0X2NvbW1lbnQiXSwKKyAgICAgICAgICAgICAgICAiaWQiOiBjYXN0X2lk CisgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1dF9yZXNwb25z ZSA9IHNlbGYudGVzdGVyLnB1dChzZWxmLnVybCArIHN0cihzcnZfZ3JwKSAr ICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJfaWQpICsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLycg KyBzdHIoY2FzdF9pZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19y ZWRpcmVjdHM9VHJ1ZSkKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh bHMocHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9ldmVudF90cmlnZ2Vycy90ZXN0cy9fX2luaXRfXy5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9ldmVudF90cmlnZ2Vycy90ZXN0cy9fX2luaXRfXy5weQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjhkZjA2Ci0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V2ZW50X3RyaWdnZXJzL3Rlc3RzL19f aW5pdF9fLnB5CkBAIC0wLDAgKzEsMTYgQEAKKyMgIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIwor IyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZl bG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5k ZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBC YXNlVGVzdEdlbmVyYXRvcgorCisKK2NsYXNzIEV2ZW50VHJpZ2dlckdlbmVy YXRvclRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKworICAgIGRlZiBy dW5UZXN0KHNlbGYpOgorICAgICAgICByZXR1cm4gW10KXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXZlbnRfdHJp Z2dlcnMvdGVzdHMvdGVzdF9ldmVudF90cmlnZ2VyX2FkZC5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9ldmVudF90cmlnZ2Vycy90ZXN0cy90ZXN0X2V2ZW50X3RyaWdnZXJfYWRk LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxYTdl ZDkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXZlbnRfdHJpZ2dlcnMv dGVzdHMvdGVzdF9ldmVudF90cmlnZ2VyX2FkZC5weQpAQCAtMCwwICsxLDc3 IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAt IFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0g MjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNv ZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2Vu Y2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20gcmVncmVz c2lvbi5jb25maWcgaW1wb3J0IGNvbmZpZ19kYXRhLCBwaWNrbGVfcGF0aAor ZnJvbSBwZ2FkbWluLmJyb3dzZXIudGVzdHMudGVzdF9sb2dpbiBpbXBvcnQg TG9naW5UZXN0Q2FzZQorZnJvbSByZWdyZXNzaW9uLnRlc3RfdXRpbHMgaW1w b3J0IGdldF9pZHMKK2Zyb20gcmVncmVzc2lvbi50ZXN0X25vZGVzIGltcG9y dCB0ZXN0X2dldG5vZGVzCitpbXBvcnQganNvbgoraW1wb3J0IHBpY2tsZQor aW1wb3J0IG9zCisKKworY2xhc3MgRXZlbnRUcmlnZ2VyQWRkVGVzdENhc2Uo TG9naW5UZXN0Q2FzZSk6CisgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBhZGQg bmV3IGV2ZW50IHRyaWdnZXIgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorCisg ICAgcHJpb3JpdHkgPSAzOQorCisgICAgc2NlbmFyaW9zID0gWworICAgICAg ICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBldmVudCB0cmlnZ2VyIG5v ZGUuCisgICAgICAgICgnRmV0Y2ggRXZlbnQgVHJpZ2dlciBOb2RlIFVSTCcs CisgICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvZXZlbnRfdHJpZ2dlci9v YmovJykpCisgICAgICAgIF0KKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgor ICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCBldmVudCB0cmln Z2VyIHVuZGVyIGRhdGFiYXNlIG5vZGUuICIiIgorCisgICAgICAgIGFsbF9p ZCA9IGdldF9pZHMoKQorCisgICAgICAgIHNlcnZlcl9pZCA9IGFsbF9pZFsi c2lkIl1bMF0KKyAgICAgICAgZGJfaWQgPSBhbGxfaWRbImRpZCJdWzBdCisg ICAgICAgIHNydl9ncnAgPSBjb25maWdfZGF0YVsndGVzdF9zZXJ2ZXJfZ3Jv dXAnXQorCisgICAgICAgIGRiX2NvbiA9IHRlc3RfZ2V0bm9kZXMobm9kZT1z ZWxmKQorCisgICAgICAgIGlmIGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQi XToKKworICAgICAgICAgICAgZGF0YSA9IFwKKyAgICAgICAgICAgICAgICB7 CisgICAgICAgICAgICAgICAgICAgICJlbmFibGVkIjogY29uZmlnX2RhdGFb J3Rlc3RfZXZlbnRfdHJpZ2dlcl9jcmVkZW50aWFscyddCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfZW5hYmxl J10sCisgICAgICAgICAgICAgICAgICAgICJldmVudGZ1bm5hbWUiOiBjb25m aWdfZGF0YVsndGVzdF9ldmVudF90cmlnZ2VyX2NyZWRlbnRpYWxzJ10KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Wyd0ZXN0X2V2ZW50X2Z1bmMnXSwKKyAgICAgICAgICAgICAgICAgICAgImV2 ZW50bmFtZSI6IGNvbmZpZ19kYXRhWyd0ZXN0X2V2ZW50X3RyaWdnZXJfY3Jl ZGVudGlhbHMnXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBbJ3Rlc3RfZXZlbnRfbmFtZSddLAorICAgICAgICAgICAg ICAgICAgICAiZXZlbnRvd25lciI6IGNvbmZpZ19kYXRhWyd0ZXN0X2V2ZW50 X3RyaWdnZXJfY3JlZGVudGlhbHMnXQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X2V2ZW50X293bmVyJ10s CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogY29uZmlnX2RhdGFbJ3Rl c3RfZXZlbnRfdHJpZ2dlcl9jcmVkZW50aWFscyddCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfbmFtZSddLAorICAg ICAgICAgICAgICAgICAgICAicHJvdmlkZXJzIjogY29uZmlnX2RhdGFbJ3Rl c3RfZXZlbnRfdHJpZ2dlcl9jcmVkZW50aWFscyddCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsndGVzdF9wcm92aWRl ciddCisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXNwb25z ZSA9IHNlbGYudGVzdGVyLnBvc3Qoc2VsZi51cmwgKyBzdHIoc3J2X2dycCkg KyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKGRiX2lkKSArCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8nLCBkYXRh PWpzb24uZHVtcHMoZGF0YSksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisg ICAgICAgICAgICByZXNwZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0 YS5kZWNvZGUoKSkKKworICAgICAgICAgICAgZXZlbnRfdHJpZ2dlcl9pZCA9 IHJlc3BkYXRhWydub2RlJ11bJ19pZCddCisKKyAgICAgICAgICAgIGlmIG9z LnBhdGguaXNmaWxlKHBpY2tsZV9wYXRoKToKKyAgICAgICAgICAgICAgICBl eHN0X3NlcnZlcl9pZCA9IG9wZW4ocGlja2xlX3BhdGgsICdyYicpCisgICAg ICAgICAgICAgICAgYWxsX2lkID0gcGlja2xlLmxvYWQoZXhzdF9zZXJ2ZXJf aWQpCisgICAgICAgICAgICAgICAgcGlja2xlX2lkX2RpY3QgPSBhbGxfaWQK KworICAgICAgICAgICAgcGlja2xlX2lkX2RpY3RbImV0aWQiXS5hcHBlbmQo ZXZlbnRfdHJpZ2dlcl9pZCkKKworICAgICAgICAgICAgZXZlbnRfdHJpZ2dl cl9vdXRwdXQgPSBvcGVuKHBpY2tsZV9wYXRoLCAnd2InKQorICAgICAgICAg ICAgcGlja2xlLmR1bXAocGlja2xlX2lkX2RpY3QsIGV2ZW50X3RyaWdnZXJf b3V0cHV0KQorICAgICAgICAgICAgZXZlbnRfdHJpZ2dlcl9vdXRwdXQuY2xv c2UoKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V2ZW50X3RyaWdnZXJzL3Rlc3Rz L3Rlc3RfZXZlbnRfdHJpZ2dlcl9kZWxldGUucHkgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXZlbnRf dHJpZ2dlcnMvdGVzdHMvdGVzdF9ldmVudF90cmlnZ2VyX2RlbGV0ZS5weQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MDgxZTUyCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V2ZW50X3RyaWdnZXJzL3Rlc3Rz L3Rlc3RfZXZlbnRfdHJpZ2dlcl9kZWxldGUucHkKQEAgLTAsMCArMSw2MSBA QAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIw MTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0 d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNl CisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHJlZ3Jlc3Np b24uY29uZmlnIGltcG9ydCBjb25maWdfZGF0YQorZnJvbSBwZ2FkbWluLmJy b3dzZXIudGVzdHMudGVzdF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0Q2FzZQor ZnJvbSByZWdyZXNzaW9uLnRlc3RfdXRpbHMgaW1wb3J0IGdldF9pZHMKK2Zy b20gcmVncmVzc2lvbi50ZXN0X25vZGVzIGltcG9ydCB0ZXN0X2dldG5vZGVz CitpbXBvcnQganNvbgorCisKK2NsYXNzIEV2ZW50VHJpZ2dlckRlbGV0ZVRl c3RDYXNlKExvZ2luVGVzdENhc2UpOgorICAgICIiIiBUaGlzIGNsYXNzIHdp bGwgZGVsZXRlIGFkZGVkIGV2ZW50IHRyaWdnZXIgdW5kZXIgZGF0YWJhc2Ug bm9kZS4gIiIiCisKKyAgICBwcmlvcml0eSA9IDQyCisKKyAgICBzY2VuYXJp b3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGV2 ZW50IHRyaWdnZXIgIG5vZGUuCisgICAgICAgICgnRmV0Y2ggRXZlbnQgVHJp Z2dlciBOb2RlIFVSTCcsCisgICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIv ZXZlbnRfdHJpZ2dlci9vYmovJykpCisgICAgICAgIF0KKworICAgIGRlZiBy dW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxs IGRlbGV0ZSBldmVudCB0cmlnZ2VyIHVuZGVyIGRhdGFiYXNlIG5vZGUuICIi IgorCisgICAgICAgIGFsbF9pZCA9IGdldF9pZHMoKQorCisgICAgICAgIHNl cnZlcl9pZCA9IGFsbF9pZFsic2lkIl1bMF0KKyAgICAgICAgZGJfaWQgPSBh bGxfaWRbImRpZCJdWzBdCisgICAgICAgIGV2ZW50X3RyaWdnZXJfaWQgPSBh bGxfaWRbImV0aWQiXVswXQorICAgICAgICBzcnZfZ3JwID0gY29uZmlnX2Rh dGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKworICAgICAgICBkYl9jb24gPSB0 ZXN0X2dldG5vZGVzKG5vZGU9c2VsZikKKworICAgICAgICBpZiBkYl9jb25b J2RhdGEnXVsiY29ubmVjdGVkIl06CisKKyAgICAgICAgICAgICMgRmV0Y2gg YWRkZWQgZXZlbnQgdHJpZ2dlciBub2RlLgorICAgICAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5nZXQoc2VsZi51cmwgKyBzdHIoc3J2X2dycCkg KyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJfaWQpICsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvJyArIHN0cihl dmVudF90cmlnZ2VyX2lkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAg ICAgICAgICAgcmVzcGRhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEu ZGVjb2RlKCkpCisKKyAgICAgICAgICAgIGlmIGxlbihyZXNwZGF0YSkgPT0g MDoKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5vIGV2ZW50 IHRyaWdnZXIocykgdG8gZGVsZXRlLiIpCisKKyAgICAgICAgICAgIGRlbF9y ZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZShzZWxmLnVybCArIHN0cihz cnZfZ3JwKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cihkYl9pZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cihldmVudF90cmlnZ2VyX2lkKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm b2xsb3dfcmVkaXJlY3RzPVRydWUpCisKKyAgICAgICAgICAgIGRlbF9yZXNw ZGF0YSA9IGpzb24ubG9hZHMoZGVsX3Jlc3BvbnNlLmRhdGEuZGVjb2RlKCkp CisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShkZWxfcmVzcGRhdGFb J3N1Y2Nlc3MnXSwgMSkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvZXZlbnRfdHJpZ2dlcnMvdGVzdHMvdGVzdF9l dmVudF90cmlnZ2VyX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9ldmVudF90cmlnZ2Vycy90 ZXN0cy90ZXN0X2V2ZW50X3RyaWdnZXJfZ2V0LnB5Cm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyYjQxN2IKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvZXZlbnRfdHJpZ2dlcnMvdGVzdHMvdGVzdF9ldmVudF90 cmlnZ2VyX2dldC5weQpAQCAtMCwwICsxLDQ3IEBACisjICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMK KyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4g RGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2Vk IHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisKK2Zyb20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0 IGNvbmZpZ19kYXRhCitmcm9tIHBnYWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0 X2xvZ2luIGltcG9ydCBMb2dpblRlc3RDYXNlCitmcm9tIHJlZ3Jlc3Npb24u dGVzdF91dGlscyBpbXBvcnQgZ2V0X2lkcworZnJvbSByZWdyZXNzaW9uLnRl c3Rfbm9kZXMgaW1wb3J0IHRlc3RfZ2V0bm9kZXMKKworCitjbGFzcyBFdmVu dFRyaWdnZXJHZXRUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToKKyAgICAiIiIg VGhpcyBjbGFzcyB3aWxsIGZldGNoIGFkZGVkIGV2ZW50IHRyaWdnZXIgdW5k ZXIgc2NoZW1hIG5vZGUuICIiIgorCisgICAgcHJpb3JpdHkgPSA0MAorCisg ICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQg VVJMIGZvciBldmVudCB0cmlnZ2VyICBub2RlLgorICAgICAgICAoJ0ZldGNo IEV2ZW50IFRyaWdnZXIgTm9kZSBVUkwnLAorICAgICAgICAgZGljdCh1cmw9 Jy9icm93c2VyL2V2ZW50X3RyaWdnZXIvb2JqLycpKQorICAgICAgICBdCisK KyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVu Y3Rpb24gd2lsbCBmZXRjaCBldmVudCB0cmlnZ2VyIHVuZGVyIGRhdGFiYXNl IG5vZGUuICIiIgorCisgICAgICAgIGFsbF9pZCA9IGdldF9pZHMoKQorCisg ICAgICAgIHNlcnZlcl9pZCA9IGFsbF9pZFsic2lkIl1bMF0KKyAgICAgICAg ZGJfaWQgPSBhbGxfaWRbImRpZCJdWzBdCisgICAgICAgIGV2ZW50X3RyaWdn ZXJfaWQgPSBhbGxfaWRbImV0aWQiXVswXQorICAgICAgICBzcnZfZ3JwID0g Y29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKworICAgICAgICBk Yl9jb24gPSB0ZXN0X2dldG5vZGVzKG5vZGU9c2VsZikKKworICAgICAgICBp ZiBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisKKyAgICAgICAgICAg IHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYudXJsICsgc3RyKHNy dl9ncnApICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKGRiX2lkKSAr CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLycg KyBzdHIoZXZlbnRfdHJpZ2dlcl9pZCksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicp CisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0 YXR1c19jb2RlLCAyMDApCisKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9ldmVudF90 cmlnZ2Vycy90ZXN0cy90ZXN0X2V2ZW50X3RyaWdnZXJfcHV0LnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL2V2ZW50X3RyaWdnZXJzL3Rlc3RzL3Rlc3RfZXZlbnRfdHJpZ2dlcl9w dXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmNm ZDA0YwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9ldmVudF90cmlnZ2Vy cy90ZXN0cy90ZXN0X2V2ZW50X3RyaWdnZXJfcHV0LnB5CkBAIC0wLDAgKzEs NjYgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0 IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMg LSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMg c29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGlj ZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZnJvbSByZWdy ZXNzaW9uLmNvbmZpZyBpbXBvcnQgY29uZmlnX2RhdGEKK2Zyb20gcGdhZG1p bi5icm93c2VyLnRlc3RzLnRlc3RfbG9naW4gaW1wb3J0IExvZ2luVGVzdENh c2UKK2Zyb20gcmVncmVzc2lvbi50ZXN0X3V0aWxzIGltcG9ydCBnZXRfaWRz Citmcm9tIHJlZ3Jlc3Npb24udGVzdF9ub2RlcyBpbXBvcnQgdGVzdF9nZXRu b2RlcworaW1wb3J0IGpzb24KKworCitjbGFzcyBFdmVudFRyaWdnZXJQdXRU ZXN0Q2FzZShMb2dpblRlc3RDYXNlKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3 aWxsIHVwZGF0ZSBhZGRlZCBldmVudCB0cmlnZ2VyIHVuZGVyIHNjaGVtYSBu b2RlLiAiIiIKKworICAgIHByaW9yaXR5ID0gNDEKKworICAgIHNjZW5hcmlv cyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZXZl bnQgdHJpZ2dlciAgbm9kZS4KKyAgICAgICAgKCdGZXRjaCBFdmVudCBUcmln Z2VyIE5vZGUgVVJMJywKKyAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci9l dmVudF90cmlnZ2VyL29iai8nKSkKKyAgICAgICAgXQorCisgICAgZGVmIHJ1 blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwg dXBkYXRlIGV2ZW50IHRyaWdnZXIgdW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIi CisKKyAgICAgICAgYWxsX2lkID0gZ2V0X2lkcygpCisKKyAgICAgICAgc2Vy dmVyX2lkID0gYWxsX2lkWyJzaWQiXVswXQorICAgICAgICBkYl9pZCA9IGFs bF9pZFsiZGlkIl1bMF0KKyAgICAgICAgZXZlbnRfdHJpZ2dlcl9pZCA9IGFs bF9pZFsiZXRpZCJdWzBdCisgICAgICAgIHNydl9ncnAgPSBjb25maWdfZGF0 YVsndGVzdF9zZXJ2ZXJfZ3JvdXAnXQorCisgICAgICAgIGRiX2NvbiA9IHRl c3RfZ2V0bm9kZXMobm9kZT1zZWxmKQorCisgICAgICAgIGlmIGRiX2Nvblsn ZGF0YSddWyJjb25uZWN0ZWQiXToKKworICAgICAgICAgICAgIyBGZXRjaCBh ZGRlZCBldmVudCB0cmlnZ2VyIG5vZGUuCisgICAgICAgICAgICByZXNwb25z ZSA9IHNlbGYudGVzdGVyLmdldChzZWxmLnVybCArIHN0cihzcnZfZ3JwKSAr ICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHIoc2VydmVyX2lkKSArICcvJyArIHN0cihkYl9pZCkgKworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8nICsgc3RyKGV2 ZW50X3RyaWdnZXJfaWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAg ICAgICAgICByZXNwZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5k ZWNvZGUoKSkKKworICAgICAgICAgICAgaWYgbGVuKHJlc3BkYXRhKSA9PSAw OgorICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8gZXZlbnQg dHJpZ2dlcihzKSB0byB1cGRhdGUuIikKKworICAgICAgICAgICAgZGF0YSA9 IFwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJj b21tZW50IjogY29uZmlnX2RhdGFbJ3Rlc3RfZXZlbnRfdHJpZ2dlcl91cGRh dGVfZGF0YSddCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBbJ3Rlc3RfY29tbWVudCddLAorICAgICAgICAgICAgICAgICAg ICAiaWQiOiBldmVudF90cmlnZ2VyX2lkCisgICAgICAgICAgICAgICAgfQor CisgICAgICAgICAgICBwdXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQo c2VsZi51cmwgKyBzdHIoc3J2X2dycCkgKyAnLycgKworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQp ICsgJy8nICsgc3RyKGRiX2lkKSArCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJy8nICsgc3RyKGV2ZW50X3RyaWdnZXJf aWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRy dWUpCisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHB1dF9yZXNw b25zZS5zdGF0dXNfY29kZSwgMjAwKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4 dGVuc2lvbnMvdGVzdHMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9u cy90ZXN0cy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4wMjViNTdlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L2V4dGVuc2lvbnMvdGVzdHMvX19pbml0X18ucHkKQEAgLTAsMCArMSwxNiBA QAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIw MTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0 d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNl CisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHBnYWRtaW4u dXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCisKKworY2xh c3MgRXh0ZW5zaW9uR2VuZXJhdG9yVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0 b3IpOgorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgIHJldHVy biBbXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9leHRlbnNpb25zL3Rlc3RzL3Rlc3RfZXh0ZW5zaW9uX2FkZC5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9leHRlbnNpb25zL3Rlc3RzL3Rlc3RfZXh0ZW5zaW9uX2Fk ZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMWM2 MWMyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVuc2lvbnMvdGVz dHMvdGVzdF9leHRlbnNpb25fYWRkLnB5CkBAIC0wLDAgKzEsNzQgQEAKKyMg IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdy ZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBU aGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUg aXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIwor IyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZnJvbSByZWdyZXNzaW9uLmNv bmZpZyBpbXBvcnQgY29uZmlnX2RhdGEsIHBpY2tsZV9wYXRoCitmcm9tIHBn YWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2luIGltcG9ydCBMb2dpblRl c3RDYXNlCitpbXBvcnQganNvbgoraW1wb3J0IHBpY2tsZQoraW1wb3J0IG9z Citmcm9tIHJlZ3Jlc3Npb24udGVzdF91dGlscyBpbXBvcnQgZ2V0X2lkcwor ZnJvbSByZWdyZXNzaW9uLnRlc3Rfbm9kZXMgaW1wb3J0IHRlc3RfZ2V0bm9k ZXMKKworCitjbGFzcyBFeHRlbnNpb25zQWRkVGVzdENhc2UoTG9naW5UZXN0 Q2FzZSk6CisgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBhZGQgbmV3IGV4dGVu c2lvbiB1bmRlciBleHRlbnNpb24gbm9kZS4gIiIiCisgICAgcHJpb3JpdHkg PSAzMworCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5n IGRlZmF1bHQgVVJMIGZvciBleHRlbnNpb24gbm9kZS4KKyAgICAgICAgKCdD aGVjayBFeHRlbnNpb24gTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci9leHRl bnNpb24vb2JqLycpKQorICAgIF0KKworICAgIGRlZiBydW5UZXN0KHNlbGYp OgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCBleHRlbnNp b24gdW5kZXIgMXN0IHNlcnZlciBvZiB0cmVlIG5vZGUuICIiIgorCisgICAg ICAgIGFsbF9pZCA9IGdldF9pZHMoKQorCisgICAgICAgIHNlcnZlcl9pZCA9 IGFsbF9pZFsic2lkIl1bMF0KKyAgICAgICAgZGJfaWQgPSBhbGxfaWRbImRp ZCJdWzBdCisgICAgICAgIHNydl9ncnAgPSBjb25maWdfZGF0YVsndGVzdF9z ZXJ2ZXJfZ3JvdXAnXQorCisgICAgICAgIGRiX2NvbiA9IHRlc3RfZ2V0bm9k ZXMobm9kZT1zZWxmKQorCisgICAgICAgIGlmIGRiX2NvblsnZGF0YSddWyJj b25uZWN0ZWQiXToKKworICAgICAgICAgICAgZGF0YSA9XAorICAgICAgICAg ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiBjb25maWdf ZGF0YVsndGVzdF9leHRlbnNpb25fY3JlZGVudGlhbHMnXQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsndGVzdF9u YW1lJ10sCisgICAgICAgICAgICAgICAgICAgICJyZWxvY2F0YWJsZSI6IGNv bmZpZ19kYXRhWyd0ZXN0X2V4dGVuc2lvbl9jcmVkZW50aWFscyddCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0 X3JlbG9jYXRlJ10sCisgICAgICAgICAgICAgICAgICAgICJzY2hlbWEiOiBj b25maWdfZGF0YVsndGVzdF9leHRlbnNpb25fY3JlZGVudGlhbHMnXQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X3Nj aGVtYSddLAorICAgICAgICAgICAgICAgICAgICAidmVyc2lvbiI6IGNvbmZp Z19kYXRhWyd0ZXN0X2V4dGVuc2lvbl9jcmVkZW50aWFscyddCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsndGVzdF92ZXJz aW9uJ10KKworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVz cG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KHNlbGYudXJsICsgc3RyKHNydl9n cnApICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHIoc2VydmVyX2lkKSArICcvJyArIHN0cihkYl9pZCkgKyAn LycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykK KworICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3BvbnNlLnN0YXR1 c19jb2RlLCAyMDApCisKKyAgICAgICAgICAgIHJlc3BkYXRhID0ganNvbi5s b2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgpKQorCisgICAgICAgICAgICBl eHRlbnNpb25faWQgPSByZXNwZGF0YVsnbm9kZSddWydfaWQnXQorCisgICAg ICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShwaWNrbGVfcGF0aCk6CisgICAg ICAgICAgICAgICAgZXhzdF9zZXJ2ZXJfaWQgPSBvcGVuKHBpY2tsZV9wYXRo LCAncmInKQorICAgICAgICAgICAgICAgIGFsbF9pZCA9IHBpY2tsZS5sb2Fk KGV4c3Rfc2VydmVyX2lkKQorICAgICAgICAgICAgICAgIHBpY2tsZV9pZF9k aWN0ID0gYWxsX2lkCisKKyAgICAgICAgICAgIHBpY2tsZV9pZF9kaWN0WyJl aWQiXS5hcHBlbmQoZXh0ZW5zaW9uX2lkKQorCisgICAgICAgICAgICBleHRl bnNpb25fb3V0cHV0ID0gb3BlbihwaWNrbGVfcGF0aCwgJ3diJykKKyAgICAg ICAgICAgIHBpY2tsZS5kdW1wKHBpY2tsZV9pZF9kaWN0LCBleHRlbnNpb25f b3V0cHV0KQorICAgICAgICAgICAgZXh0ZW5zaW9uX291dHB1dC5jbG9zZSgp ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL2V4dGVuc2lvbnMvdGVzdHMvdGVzdF9leHRlbnNpb25fZGVsZXRlLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL2V4dGVuc2lvbnMvdGVzdHMvdGVzdF9leHRlbnNpb25fZGVs ZXRlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3 NzVjOGUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9ucy90 ZXN0cy90ZXN0X2V4dGVuc2lvbl9kZWxldGUucHkKQEAgLTAsMCArMSw2MCBA QAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIw MTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0 d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNl CisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHJlZ3Jlc3Np b24uY29uZmlnIGltcG9ydCBjb25maWdfZGF0YQorZnJvbSBwZ2FkbWluLmJy b3dzZXIudGVzdHMudGVzdF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0Q2FzZQor aW1wb3J0IGpzb24KK2Zyb20gcmVncmVzc2lvbi50ZXN0X3V0aWxzIGltcG9y dCBnZXRfaWRzCitmcm9tIHJlZ3Jlc3Npb24udGVzdF9ub2RlcyBpbXBvcnQg dGVzdF9nZXRub2RlcworCisKK2NsYXNzIEV4dGVuc2lvbkRlbGV0ZVRlc3RD YXNlKExvZ2luVGVzdENhc2UpOgorICAgICIiIiBUaGlzIGNsYXNzIHdpbGwg ZGVsZXRlIGV4dGVuc2lvbiBub2RlIGFkZGVkIHVuZGVyIGRhdGFiYXNlIG5v ZGUuICIiIgorCisgICAgcHJpb3JpdHkgPSA5NgorCisgICAgc2NlbmFyaW9z ID0gWworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBleHRl bnNpb24gbm9kZS4KKyAgICAgICAgKCdDaGVjayBDYXN0IE5vZGUnLCBkaWN0 KHVybD0nL2Jyb3dzZXIvZXh0ZW5zaW9uL29iai8nKSkKKyAgICBdCisKKyAg ICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rp b24gd2lsbCBkZWxldGUgYWRkZWQgZXh0ZW5zaW9uIHVuZGVyIGRhdGFiYXNl IG5vZGUuICIiIgorCisgICAgICAgIGFsbF9pZCA9IGdldF9pZHMoKQorCisg ICAgICAgIHNlcnZlcl9pZCA9IGFsbF9pZFsic2lkIl1bMF0KKyAgICAgICAg ZGJfaWQgPSBhbGxfaWRbImRpZCJdWzBdCisgICAgICAgIGV4dGVuc2lvbl9p ZCA9IGFsbF9pZFsiZWlkIl1bMF0KKyAgICAgICAgc3J2X2dycCA9IGNvbmZp Z19kYXRhWyd0ZXN0X3NlcnZlcl9ncm91cCddCisKKyAgICAgICAgZGJfY29u ID0gdGVzdF9nZXRub2Rlcyhub2RlPXNlbGYpCisKKyAgICAgICAgaWYgZGJf Y29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorCisgICAgICAgICAgICAjIEZl dGNoIGFkZGVkIGV4dGVuc2lvbiBub2RlLgorICAgICAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5nZXQoc2VsZi51cmwgKyBzdHIoc3J2X2dycCkg KyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RyKGRiX2lkKSArICcvJyArIHN0cihl eHRlbnNpb25faWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAgICAg ICAgICByZXNwZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNv ZGUoKSkKKworICAgICAgICAgICAgaWYgbGVuKHJlc3BkYXRhKSA9PSAwOgor ICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8gZXh0ZW5zaW9u KHMpIHRvIGRlbGV0ZS4iKQorCisgICAgICAgICAgICBkZWxfcmVzcG9uc2Ug PSBzZWxmLnRlc3Rlci5kZWxldGUoc2VsZi51cmwgKyBzdHIoc3J2X2dycCkg KyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoZGJfaWQp ICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHIoZXh0ZW5zaW9uX2lkKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJl Y3RzPVRydWUpCisKKyAgICAgICAgICAgIGRlbF9yZXNwZGF0YSA9IGpzb24u bG9hZHMoZGVsX3Jlc3BvbnNlLmRhdGEuZGVjb2RlKCkpCisKKyAgICAgICAg ICAgIHNlbGYuYXNzZXJ0VHJ1ZShkZWxfcmVzcGRhdGFbJ3N1Y2Nlc3MnXSwg MSkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvZXh0ZW5zaW9ucy90ZXN0cy90ZXN0X2V4dGVuc2lvbl9nZXQucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvZXh0ZW5zaW9ucy90ZXN0cy90ZXN0X2V4dGVuc2lvbl9nZXQu cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGZiYTJj NwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlbnNpb25zL3Rlc3Rz L3Rlc3RfZXh0ZW5zaW9uX2dldC5weQpAQCAtMCwwICsxLDQ1IEBACisjICMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVT UUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhl IHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlz IHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMg IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20gcmVncmVzc2lvbi5jb25m aWcgaW1wb3J0IGNvbmZpZ19kYXRhCitmcm9tIHBnYWRtaW4uYnJvd3Nlci50 ZXN0cy50ZXN0X2xvZ2luIGltcG9ydCBMb2dpblRlc3RDYXNlCitmcm9tIHJl Z3Jlc3Npb24udGVzdF91dGlscyBpbXBvcnQgZ2V0X2lkcworZnJvbSByZWdy ZXNzaW9uLnRlc3Rfbm9kZXMgaW1wb3J0IHRlc3RfZ2V0bm9kZXMKKworCitj bGFzcyBFeHRlbnNpb25HZXRUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToKKyAg ICAiIiIgVGhpcyBjbGFzcyB3aWxsIGZldGNoIHRoZSBleHRlbnNpb24gbm9k ZSBhZGRlZCB1bmRlciBkYXRhYmFzZS4gIiIiCisKKyAgICBwcmlvcml0eSA9 IDM0ICMyNAorCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNo aW5nIGRlZmF1bHQgVVJMIGZvciBleHRlbnNpb24gbm9kZS4KKyAgICAgICAg KCdDaGVjayBleHRlbnNpb24gTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci9l eHRlbnNpb24vb2JqLycpKQorICAgIF0KKworICAgIGRlZiBydW5UZXN0KHNl bGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIGFk ZGVkIGV4dGVuc2lvbiB1bmRlciBkYXRhYmFzZSBub2RlLiAiIiIKKworICAg ICAgICBhbGxfaWQgPSBnZXRfaWRzKCkKKworICAgICAgICBzZXJ2ZXJfaWQg PSBhbGxfaWRbInNpZCJdWzBdCisgICAgICAgIGRiX2lkID0gYWxsX2lkWyJk aWQiXVswXQorICAgICAgICBleHRlbnNpb25faWQgPSBhbGxfaWRbImVpZCJd WzBdCisgICAgICAgIHNydl9ncnAgPSBjb25maWdfZGF0YVsndGVzdF9zZXJ2 ZXJfZ3JvdXAnXQorCisgICAgICAgIGRiX2NvbiA9IHRlc3RfZ2V0bm9kZXMo bm9kZT1zZWxmKQorCisgICAgICAgIGlmIGRiX2NvblsnZGF0YSddWyJjb25u ZWN0ZWQiXToKKworICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5nZXQoc2VsZi51cmwgKyBzdHIoc3J2X2dycCkgKyAnLycgKworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9p ZCkgKyAnLycgKyBzdHIoZGJfaWQpICsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICcvJyArIHN0cihleHRlbnNpb25faWQpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVu dF90eXBlPSdodG1sL2pzb24nKQorCisgICAgICAgICAgICBzZWxmLmFzc2Vy dEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL2V4dGVuc2lvbnMvdGVzdHMvdGVzdF9leHRlbnNpb25fcHV0 LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL2V4dGVuc2lvbnMvdGVzdHMvdGVzdF9leHRlbnNpb25f cHV0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2 NDVhZjMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9ucy90 ZXN0cy90ZXN0X2V4dGVuc2lvbl9wdXQucHkKQEAgLTAsMCArMSw2NyBAQAor IyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0 Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYs IFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2Fy ZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisj CisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHJlZ3Jlc3Npb24u Y29uZmlnIGltcG9ydCBjb25maWdfZGF0YQorZnJvbSBwZ2FkbWluLmJyb3dz ZXIudGVzdHMudGVzdF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0Q2FzZQoraW1w b3J0IGpzb24KK2Zyb20gcmVncmVzc2lvbi50ZXN0X3V0aWxzIGltcG9ydCBn ZXRfaWRzCitmcm9tIHJlZ3Jlc3Npb24udGVzdF9ub2RlcyBpbXBvcnQgdGVz dF9nZXRub2RlcworCisKK2NsYXNzIEV4dGVuc2lvblB1dFRlc3RDYXNlKExv Z2luVGVzdENhc2UpOgorICAgICIiIgorICAgIFRoaXMgY2xhc3Mgd2lsbCB1 cGRhdGUgZXh0ZW5zaW9uIG5vZGUgcHJlc2VudCBvbiB0aGUgb2JqZWN0IGJy b3dzZXIncworICAgIHRyZWUgbm9kZSBieSByZXNwb25zZSBjb2RlLgorICAg ICIiIgorICAgIHByaW9yaXR5ID0gMzUKKworICAgIHNjZW5hcmlvcyA9IFsK KyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZXh0ZW5zaW9u IG5vZGUuCisgICAgICAgICgnQ2hlY2sgZXh0ZW5zaW9uIE5vZGUnLCBkaWN0 KHVybD0nL2Jyb3dzZXIvZXh0ZW5zaW9uL29iai8nKSkKKyAgICBdCisKKyAg ICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rp b24gd2lsbCB1cGRhdGUgZXh0ZW5zaW9uIG5vZGUuICIiIgorCisgICAgICAg IGFsbF9pZCA9IGdldF9pZHMoKQorCisgICAgICAgIHNlcnZlcl9pZCA9IGFs bF9pZFsic2lkIl1bMF0KKyAgICAgICAgZGJfaWQgPSBhbGxfaWRbImRpZCJd WzBdCisgICAgICAgIGV4dGVuc2lvbl9pZCA9IGFsbF9pZFsiZWlkIl1bMF0K KyAgICAgICAgc3J2X2dycCA9IGNvbmZpZ19kYXRhWyd0ZXN0X3NlcnZlcl9n cm91cCddCisKKyAgICAgICAgZGJfY29uID0gdGVzdF9nZXRub2Rlcyhub2Rl PXNlbGYpCisKKyAgICAgICAgaWYgZGJfY29uWydkYXRhJ11bImNvbm5lY3Rl ZCJdOgorCisgICAgICAgICAgICAjIEZldGNoIGFkZGVkIGV4dGVuc2lvbiBu b2RlLgorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQo c2VsZi51cmwgKyBzdHIoc3J2X2dycCkgKyAnLycgKworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAn LycgKyBzdHIoZGJfaWQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICcvJyArIHN0cihleHRlbnNpb25faWQpLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBl PSdodG1sL2pzb24nKQorCisgICAgICAgICAgICByZXNwZGF0YSA9IGpzb24u bG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKworICAgICAgICAgICAg aWYgbGVuKHJlc3BkYXRhKSA9PSAwOgorICAgICAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiTm8gZXh0ZW5zaW9uKHMpIHRvIHVwZGF0ZS4iKQorCisg ICAgICAgICAgICBkYXRhID0gXAorICAgICAgICAgICAgICAgIHsKKyAgICAg ICAgICAgICAgICAgICAgImlkIjogZXh0ZW5zaW9uX2lkLAorICAgICAgICAg ICAgICAgICAgICAic2NoZW1hIjogY29uZmlnX2RhdGFbInRlc3RfZXh0ZW5z aW9uX3VwZGF0ZV9kYXRhIl0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgWyJ0ZXN0X3NjaGVtYSJdCisgICAgICAgICAgICAg ICAgfQorCisgICAgICAgICAgICBwdXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5wdXQoc2VsZi51cmwgKyBzdHIoc3J2X2dycCkgKyAnLycgKworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZXJ2 ZXJfaWQpICsgJy8nICsgc3RyKGRiX2lkKSArCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8nICsgc3RyKGV4dGVuc2lv bl9pZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9 VHJ1ZSkKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocHV0X3Jl c3BvbnNlLnN0YXR1c19jb2RlLCAyMDApClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2xhbmd1YWdlcy90ZXN0cy9f X2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9sYW5ndWFnZXMvdGVzdHMvX19pbml0X18u cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjVhMjQw ZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9sYW5ndWFnZXMvdGVzdHMv X19pbml0X18ucHkKQEAgLTAsMCArMSwxNiBAQAorIyAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisj CisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERl dmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1 bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0 IEJhc2VUZXN0R2VuZXJhdG9yCisKKworY2xhc3MgTGFuZ3VhZ2VUZXN0R2Vu ZXJhdG9yKEJhc2VUZXN0R2VuZXJhdG9yKToKKworICAgZGVmIGdlbmVyYXRl X3Rlc3RzKHNlbGYpOgorICAgICAgIHJldHVybiBbXQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL2xhbmd1YWdlcy90ZXN0cy90ZXN0X2xhbmd1YWdlX2dldC5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9sYW5ndWFnZXMvdGVzdHMvdGVzdF9sYW5ndWFnZV9nZXQucHkK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTRlYzQyZAot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9sYW5ndWFnZXMvdGVzdHMvdGVz dF9sYW5ndWFnZV9nZXQucHkKQEAgLTAsMCArMSw0NyBAQAorIyAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRv b2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0Fk bWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxl YXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGlt cG9ydCBjb25maWdfZGF0YQorZnJvbSBwZ2FkbWluLmJyb3dzZXIudGVzdHMu dGVzdF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0Q2FzZQorZnJvbSByZWdyZXNz aW9uLnRlc3Rfbm9kZXMgaW1wb3J0IHRlc3RfZ2V0bm9kZXMKK2Zyb20gcmVn cmVzc2lvbi50ZXN0X3V0aWxzIGltcG9ydCBnZXRfaWRzCisKKworY2xhc3Mg TGFuZ3VhZ2VHZXRUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToKKyAgICAiIiIK KyAgICBUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggZGVmYXVsdCBsYW5ndWFnZSBu b2RlIGF2YWlsYWJsZSB1bmRlciBkYXRhYmFzZSBub2RlLgorICAgICIiIgor ICAgIHByaW9yaXR5ID0gMzEKKworICAgIHNjZW5hcmlvcyA9IFsKKyAgICAg ICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgbGFuZ3VhZ2Ugbm9kZS4K KyAgICAgICAgKCdDaGVjayBsYW5ndWFnZSBOb2RlJywgZGljdCh1cmw9Jy9i cm93c2VyL2xhbmd1YWdlL29iai8nKSkKKyAgICBdCisKKyAgICBkZWYgcnVu VGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBm ZXRjaCBkZWZhdWx0IGxhbmd1YWdlIG5vZGUgcHJlc2VudCB1bmRlcgorICAg ICAgICBkYXRhYmFzZS4gIiIiCisKKyAgICAgICAgYWxsX2lkID0gZ2V0X2lk cygpCisKKyAgICAgICAgc2VydmVyX2lkID0gYWxsX2lkWyJzaWQiXVswXQor ICAgICAgICBkYl9pZCA9IGFsbF9pZFsiZGlkIl1bMF0KKyAgICAgICAgbGFu Z19pZCA9IGFsbF9pZFsibGlkIl1bMF0KKyAgICAgICAgc3J2X2dycCA9IGNv bmZpZ19kYXRhWyd0ZXN0X3NlcnZlcl9ncm91cCddCisKKyAgICAgICAgZGJf Y29uID0gdGVzdF9nZXRub2Rlcyhub2RlPXNlbGYpCisKKyAgICAgICAgaWYg ZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorCisgICAgICAgICAgICBy ZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldChzZWxmLnVybCArIHN0cihzcnZf Z3JwKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHIoc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoZGJfaWQpICsgJy8nICsg c3RyKGxhbmdfaWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAgICAg ICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwg MjAwKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2xhbmd1YWdlcy90ZXN0cy90ZXN0 X2xhbmd1YWdlX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9sYW5ndWFnZXMvdGVzdHMvdGVz dF9sYW5ndWFnZV9wdXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uNjNmYWI2MwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9s YW5ndWFnZXMvdGVzdHMvdGVzdF9sYW5ndWFnZV9wdXQucHkKQEAgLTAsMCAr MSw2NCBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWlu IDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAx MyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhp cyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBM aWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHJl Z3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25maWdfZGF0YQorZnJvbSBwZ2Fk bWluLmJyb3dzZXIudGVzdHMudGVzdF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0 Q2FzZQoraW1wb3J0IGpzb24KK2Zyb20gcmVncmVzc2lvbi50ZXN0X3V0aWxz IGltcG9ydCBnZXRfaWRzCitmcm9tIHJlZ3Jlc3Npb24udGVzdF9ub2RlcyBp bXBvcnQgdGVzdF9nZXRub2RlcworCisKK2NsYXNzIExhbmd1YWdlVXBkYXRl VGVzdENhc2UoTG9naW5UZXN0Q2FzZSk6CisgICAgIiIiIFRoaXMgY2xhc3Mg d2lsbCB1cGRhdGUgYXZhaWxhYmxlIGxhbmd1YWdlIG5vZGUgdW5kZXIgZGF0 YWJhc2Ugbm9kZS4gIiIiCisKKyAgICBwcmlvcml0eSA9IDMyCisKKyAgICBz Y2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwg Zm9yIGNhc3Qgbm9kZS4KKyAgICAgICAgKCdDaGVjayBMYW5ndWFnZSBOb2Rl IFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9sYW5ndWFnZS9vYmovJykpCisg ICAgXQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBU aGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIGxhbmd1YWdlIG5vZGUncyBjb21t ZW50cyBmaWVsZC4gIiIiCisKKyAgICAgICAgYWxsX2lkID0gZ2V0X2lkcygp CisKKyAgICAgICAgc2VydmVyX2lkID0gYWxsX2lkWyJzaWQiXVswXQorICAg ICAgICBkYl9pZCA9IGFsbF9pZFsiZGlkIl1bMF0KKyAgICAgICAgbGFuZ19p ZCA9IGFsbF9pZFsibGlkIl1bMF0KKyAgICAgICAgc3J2X2dycCA9IGNvbmZp Z19kYXRhWyd0ZXN0X3NlcnZlcl9ncm91cCddCisKKyAgICAgICAgZGJfY29u ID0gdGVzdF9nZXRub2Rlcyhub2RlPXNlbGYpCisKKyAgICAgICAgaWYgZGJf Y29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorCisgICAgICAgICAgICAjIEZl dGNoIGF2YWlsYWJsZSBsYW5ndWFnZSBub2RlLgorICAgICAgICAgICAgcmVz cG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoc2VsZi51cmwgKyBzdHIoc3J2X2dy cCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJfaWQpICsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvJyArIHN0 cihsYW5nX2lkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAgICAgICAg ICAgcmVzcGRhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2Rl KCkpCisKKyAgICAgICAgICAgIGlmIGxlbihyZXNwZGF0YSkgPT0gMDoKKyAg ICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5vIGxhbmd1YWdlKHMp IHRvIHVwZGF0ZS4iKQorCisgICAgICAgICAgICBkYXRhID0geworICAgICAg ICAgICAgICAgICJkZXNjcmlwdGlvbiI6IGNvbmZpZ19kYXRhWyJ0ZXN0X2xh bmd1YWdlX3VwZGF0ZV9kYXRhIl0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgWyJ0ZXN0X2NvbW1lbnQiXSwKKyAgICAgICAgICAgICAg ICAiaWQiOiBsYW5nX2lkCisgICAgICAgICAgICAgICB9CisKKyAgICAgICAg ICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dChzZWxmLnVybCAr IHN0cihzcnZfZ3JwKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBz dHIoZGJfaWQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnLycgKyBzdHIobGFuZ19pZCksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBz KGRhdGEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKworICAgICAgICAgICAg c2VsZi5hc3NlcnRFcXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAy MDApClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvY29sbGF0aW9ucy90ZXN0cy9fX2luaXRfXy5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2NvbGxhdGlvbnMvdGVzdHMvX19pbml0X18ucHkK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmE3OGNiMQot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NvbGxhdGlvbnMv dGVzdHMvX19pbml0X18ucHkKQEAgLTAsMCArMSwxNiBAQAorIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdy ZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBU aGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUg aXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIwor IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZnJvbSBwZ2FkbWlu LnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorCisKK2Ns YXNzIENvbGxhdGlvblRlc3RHZW5lcmF0b3IoQmFzZVRlc3RHZW5lcmF0b3Ip OgorCisgICBkZWYgZ2VuZXJhdGVfdGVzdHMoc2VsZik6CisgICAgICAgcmV0 dXJuIFtdCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9jb2xsYXRpb25z L3Rlc3RzL3Rlc3RfY29sbGF0aW9uX2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2NvbGxhdGlvbnMvdGVzdHMvdGVzdF9jb2xsYXRpb25fYWRkLnB5Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkY2M1NjUKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9jb2xsYXRpb25zL3Rlc3Rz L3Rlc3RfY29sbGF0aW9uX2FkZC5weQpAQCAtMCwwICsxLDgwIEBACisjICMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVT UUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhl IHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlz IHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMg IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20gcmVncmVzc2lvbi5jb25m aWcgaW1wb3J0IGNvbmZpZ19kYXRhLCBwaWNrbGVfcGF0aAorZnJvbSBwZ2Fk bWluLmJyb3dzZXIudGVzdHMudGVzdF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0 Q2FzZQorZnJvbSByZWdyZXNzaW9uLnRlc3RfdXRpbHMgaW1wb3J0IGdldF9p ZHMKK2Zyb20gcmVncmVzc2lvbi50ZXN0X25vZGVzIGltcG9ydCB0ZXN0X2dl dG5vZGVzCitpbXBvcnQganNvbgoraW1wb3J0IHBpY2tsZQoraW1wb3J0IG9z CisKKworY2xhc3MgQ29sbGF0aW9uQWRkVGVzdENhc2UoTG9naW5UZXN0Q2Fz ZSk6CisgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBhZGQgbmV3IGNvbGxhdGlv biB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCisKKyAgICBwcmlvcml0eSA9IDQ4 CisKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVm YXVsdCBVUkwgZm9yIGNvbGxhdGlvbiBub2RlLgorICAgICAgICAoJ0RlZmF1 bHQgTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvY29sbGF0aW9uL29i ai8nKSkKKyAgICBdCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAg ICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgY29sbGF0aW9uIHVuZGVy IHNjaGVtYSBub2RlLiAiIiIKKworICAgICAgICBhbGxfaWQgPSBnZXRfaWRz KCkKKworICAgICAgICBzZXJ2ZXJfaWQgPSBhbGxfaWRbInNpZCJdWzBdCisg ICAgICAgIGRiX2lkID0gYWxsX2lkWyJkaWQiXVswXQorICAgICAgICBzY2hl bWFfaWQgPSBhbGxfaWRbInNjaWQiXVswXQorICAgICAgICBzcnZfZ3JwID0g Y29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKworICAgICAgICBk Yl9jb24gPSB0ZXN0X2dldG5vZGVzKG5vZGU9c2VsZikKKworICAgICAgICBp ZiBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisKKyAgICAgICAgICAg ICMgRmV0Y2ggYWRkZWQgc2NoZW1hIG5vZGUuCisgICAgICAgICAgICByZXNw b25zZSA9IHNlbGYudGVzdGVyLmdldCgnL2Jyb3dzZXIvc2NoZW1hL29iai8n ICsgc3RyKHNydl9ncnApICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICcvJyArIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihkYl9p ZCkgKyAnLycgKyBzdHIoc2NoZW1hX2lkKSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29u JykKKworICAgICAgICAgICAgZGF0YSA9IFwKKyAgICAgICAgICAgICAgICB7 CisgICAgICAgICAgICAgICAgICAgICJjb3B5X2NvbGxhdGlvbiI6IGNvbmZp Z19kYXRhWyd0ZXN0X2NvbGxhdGlvbl9jcmVkZW50aWFscyddCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyd0 ZXN0X2NvcHlfY29sbGF0aW9uJ10sCisgICAgICAgICAgICAgICAgICAgICJu YW1lIjogY29uZmlnX2RhdGFbJ3Rlc3RfY29sbGF0aW9uX2NyZWRlbnRpYWxz J10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsn dGVzdF9uYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICJvd25lciI6IGNv bmZpZ19kYXRhWyd0ZXN0X2NvbGxhdGlvbl9jcmVkZW50aWFscyddCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X293 bmVyJ10sCisgICAgICAgICAgICAgICAgICAgICJzY2hlbWEiOiBjb25maWdf ZGF0YVsndGVzdF9jb2xsYXRpb25fY3JlZGVudGlhbHMnXQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3Rfc2NoZW1h J10KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJlc3BvbnNl ID0gc2VsZi50ZXN0ZXIucG9zdChzZWxmLnVybCArIHN0cihzcnZfZ3JwKSAr ICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJfaWQpICsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLycgKyBzdHIo c2NoZW1hX2lkKSArICcvJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBl PSdodG1sL2pzb24nKQorCisgICAgICAgICAgICByZXNwZGF0YSA9IGpzb24u bG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKworICAgICAgICAgICAg Y29sbGF0aW9uX2lkID0gcmVzcGRhdGFbJ25vZGUnXVsnX2lkJ10KKworICAg ICAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUocGlja2xlX3BhdGgpOgorICAg ICAgICAgICAgICAgIGV4c3Rfc2VydmVyX2lkID0gb3BlbihwaWNrbGVfcGF0 aCwgJ3JiJykKKyAgICAgICAgICAgICAgICBhbGxfaWQgPSBwaWNrbGUubG9h ZChleHN0X3NlcnZlcl9pZCkKKyAgICAgICAgICAgICAgICBwaWNrbGVfaWRf ZGljdCA9IGFsbF9pZAorCisgICAgICAgICAgICBwaWNrbGVfaWRfZGljdFsi Y29pZCJdLmFwcGVuZChjb2xsYXRpb25faWQpCisKKyAgICAgICAgICAgIGNv bGxhdGlvbl9vdXRwdXQgPSBvcGVuKHBpY2tsZV9wYXRoLCAnd2InKQorICAg ICAgICAgICAgcGlja2xlLmR1bXAocGlja2xlX2lkX2RpY3QsIGNvbGxhdGlv bl9vdXRwdXQpCisgICAgICAgICAgICBjb2xsYXRpb25fb3V0cHV0LmNsb3Nl KCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NvbGxhdGlvbnMvdGVz dHMvdGVzdF9jb2xsYXRpb25fZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv Y29sbGF0aW9ucy90ZXN0cy90ZXN0X2NvbGxhdGlvbl9kZWxldGUucHkKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTE4N2M1YQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NvbGxhdGlvbnMvdGVz dHMvdGVzdF9jb2xsYXRpb25fZGVsZXRlLnB5CkBAIC0wLDAgKzEsNzMgQEAK KyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9z dGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2 LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdh cmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQor IworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZnJvbSByZWdyZXNzaW9u LmNvbmZpZyBpbXBvcnQgY29uZmlnX2RhdGEKK2Zyb20gcGdhZG1pbi5icm93 c2VyLnRlc3RzLnRlc3RfbG9naW4gaW1wb3J0IExvZ2luVGVzdENhc2UKK2Zy b20gcmVncmVzc2lvbi50ZXN0X3V0aWxzIGltcG9ydCBnZXRfaWRzCitmcm9t IHJlZ3Jlc3Npb24udGVzdF9ub2RlcyBpbXBvcnQgdGVzdF9nZXRub2Rlcwor aW1wb3J0IGpzb24KKworCitjbGFzcyBDb2xsYXRpb25EZWxldGVUZXN0Q2Fz ZShMb2dpblRlc3RDYXNlKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGRl bGV0ZSBhZGRlZCBjb2xsYXRpb24gdW5kZXIgc2NoZW1hIG5vZGUuICIiIgor CisgICAgcHJpb3JpdHkgPSA1MQorCisgICAgc2NlbmFyaW9zID0gWworICAg ICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBjb2xsYXRpb24gbm9k ZS4KKyAgICAgICAgKCdGZXRjaCBjb2xsYXRpb24gTm9kZSBVUkwnLCBkaWN0 KHVybD0nL2Jyb3dzZXIvY29sbGF0aW9uL29iai8nKSkKKyAgICBdCisKKyAg ICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rp b24gd2lsbCBkZWxldGUgY29sbGF0aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAi IiIKKworICAgICAgICBhbGxfaWQgPSBnZXRfaWRzKCkKKworICAgICAgICBz ZXJ2ZXJfaWQgPSBhbGxfaWRbInNpZCJdWzBdCisgICAgICAgIGRiX2lkID0g YWxsX2lkWyJkaWQiXVswXQorICAgICAgICBzY2hlbWFfaWQgPSBhbGxfaWRb InNjaWQiXVswXQorICAgICAgICBjb2xsYXRpb25faWQgPSBhbGxfaWRbImNv aWQiXVswXQorICAgICAgICBzcnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rf c2VydmVyX2dyb3VwJ10KKworICAgICAgICBkYl9jb24gPSB0ZXN0X2dldG5v ZGVzKG5vZGU9c2VsZikKKworICAgICAgICBpZiBkYl9jb25bJ2RhdGEnXVsi Y29ubmVjdGVkIl06CisKKyAgICAgICAgICAgICMgRmV0Y2ggYWRkZWQgc2No ZW1hIG5vZGUuCisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVy LmdldCgnL2Jyb3dzZXIvc2NoZW1hL29iai8nCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnezB9L3sxfS97Mn0vezN9Jy5mb3Jt YXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChz cnZfZ3JwLCBzZXJ2ZXJfaWQsIGRiX2lkLCBzY2hlbWFfaWQpLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBl PSdodG1sL2pzb24nKQorCisgICAgICAgICAgICByZXNwZGF0YSA9IGpzb24u bG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKworICAgICAgICAgICAg aWYgbGVuKHJlc3BkYXRhKSAhPSAwOgorCisgICAgICAgICAgICAgICAgZ2V0 X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYudXJsICsgc3RyKHNy dl9ncnApICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHIoZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RyKHNjaGVtYV9pZCkgKyAnLycgKwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHIoY29sbGF0aW9uX2lkKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pz b24nKQorCisgICAgICAgICAgICAgICAgZ2V0X3Jlc3BkYXRhID0ganNvbi5s b2FkcyhnZXRfcmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKworICAgICAgICAg ICAgICAgIGlmIGxlbihnZXRfcmVzcGRhdGEpID09IDA6CisgICAgICAgICAg ICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5vIGNvbGxhdGlvbiBu b2RlIHRvIGRlbGV0ZS4iKQorCisgICAgICAgICAgICAgICAgZGVsX3Jlc3Bv bnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKHNlbGYudXJsICsgc3RyKHNydl9n cnApICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJy8nICsgc3RyKHNlcnZlcl9pZCkgKyAnLycgKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHIoZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNjaGVtYV9pZCkgKyAn LycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHIoY29sbGF0aW9uX2lkKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3Jl ZGlyZWN0cz1UcnVlKQorCisgICAgICAgICAgICAgICAgZGVsX3Jlc3BkYXRh ID0ganNvbi5sb2FkcyhkZWxfcmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKwor ICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShkZWxfcmVzcGRhdGFb J3N1Y2Nlc3MnXSwgMSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Nv bGxhdGlvbnMvdGVzdHMvdGVzdF9jb2xsYXRpb25fZ2V0LnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvY29sbGF0aW9ucy90ZXN0cy90ZXN0X2NvbGxhdGlvbl9nZXQu cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGM5NTkx NQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NvbGxhdGlv bnMvdGVzdHMvdGVzdF9jb2xsYXRpb25fZ2V0LnB5CkBAIC0wLDAgKzEsNTkg QEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0g UG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAy MDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29m dHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5j ZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZnJvbSByZWdyZXNz aW9uLmNvbmZpZyBpbXBvcnQgY29uZmlnX2RhdGEKK2Zyb20gcGdhZG1pbi5i cm93c2VyLnRlc3RzLnRlc3RfbG9naW4gaW1wb3J0IExvZ2luVGVzdENhc2UK K2Zyb20gcmVncmVzc2lvbi50ZXN0X3V0aWxzIGltcG9ydCBnZXRfaWRzCitm cm9tIHJlZ3Jlc3Npb24udGVzdF9ub2RlcyBpbXBvcnQgdGVzdF9nZXRub2Rl cworaW1wb3J0IGpzb24KKworCitjbGFzcyBDb2xsYXRpb25HZXRUZXN0Q2Fz ZShMb2dpblRlc3RDYXNlKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGZl dGNoIG5ldyBjb2xsYXRpb24gdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorCisg ICAgcHJpb3JpdHkgPSA0OQorCisgICAgc2NlbmFyaW9zID0gWworICAgICAg ICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBjb2xsYXRpb24gbm9kZS4K KyAgICAgICAgKCdGZWN0aCBjb2xsYXRpb24gTm9kZSBVUkwnLCBkaWN0KHVy bD0nL2Jyb3dzZXIvY29sbGF0aW9uL29iai8nKSkKKyAgICBdCisKKyAgICBk ZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24g d2lsbCBmZXRjaCBjb2xsYXRpb24gdW5kZXIgc2NoZW1hIG5vZGUuICIiIgor CisgICAgICAgIGFsbF9pZCA9IGdldF9pZHMoKQorCisgICAgICAgIHNlcnZl cl9pZCA9IGFsbF9pZFsic2lkIl1bMF0KKyAgICAgICAgZGJfaWQgPSBhbGxf aWRbImRpZCJdWzBdCisgICAgICAgIHNjaGVtYV9pZCA9IGFsbF9pZFsic2Np ZCJdWzBdCisgICAgICAgIGNvbGxhdGlvbl9pZCA9IGFsbF9pZFsiY29pZCJd WzBdCisgICAgICAgIHNydl9ncnAgPSBjb25maWdfZGF0YVsndGVzdF9zZXJ2 ZXJfZ3JvdXAnXQorCisgICAgICAgIGRiX2NvbiA9IHRlc3RfZ2V0bm9kZXMo bm9kZT1zZWxmKQorCisgICAgICAgIGlmIGRiX2NvblsnZGF0YSddWyJjb25u ZWN0ZWQiXToKKworICAgICAgICAgICAgIyBGZXRjaCBhZGRlZCBzY2hlbWEg bm9kZS4KKyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0 KCcvYnJvd3Nlci9zY2hlbWEvb2JqLycKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICd7MH0vezF9L3syfS97M30nLmZvcm1hdAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNydl9n cnAsIHNlcnZlcl9pZCwgZGJfaWQsIHNjaGVtYV9pZCksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0 bWwvanNvbicpCisKKyAgICAgICAgICAgIHJlc3BkYXRhID0ganNvbi5sb2Fk cyhyZXNwb25zZS5kYXRhLmRlY29kZSgpKQorCisgICAgICAgICAgICBpZiBs ZW4ocmVzcGRhdGEpICE9IDA6CisKKyAgICAgICAgICAgICAgICBnZXRfcmVz cG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoc2VsZi51cmwgKyBzdHIoc3J2X2dy cCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHIoc2VydmVyX2lkKSArICcvJyArCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihk Yl9pZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHIoc2NoZW1hX2lkKSArICcvJyArCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cihjb2xsYXRpb25faWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicp CisKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhnZXRfcmVz cG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2NvbGxhdGlvbnMvdGVzdHMvdGVzdF9jb2xsYXRpb25fcHV0LnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvY29sbGF0aW9ucy90ZXN0cy90ZXN0X2NvbGxh dGlvbl9wdXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMDY5ZDIyZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2NvbGxhdGlvbnMvdGVzdHMvdGVzdF9jb2xsYXRpb25fcHV0LnB5CkBAIC0w LDAgKzEsNzkgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdB ZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMp IDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisj IFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVT UUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZnJv bSByZWdyZXNzaW9uLmNvbmZpZyBpbXBvcnQgY29uZmlnX2RhdGEKK2Zyb20g cGdhZG1pbi5icm93c2VyLnRlc3RzLnRlc3RfbG9naW4gaW1wb3J0IExvZ2lu VGVzdENhc2UKK2Zyb20gcmVncmVzc2lvbi50ZXN0X3V0aWxzIGltcG9ydCBn ZXRfaWRzCitmcm9tIHJlZ3Jlc3Npb24udGVzdF9ub2RlcyBpbXBvcnQgdGVz dF9nZXRub2RlcworaW1wb3J0IGpzb24KKworCitjbGFzcyBDb2xsYXRpb25Q dXRUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToKKyAgICAiIiIgVGhpcyBjbGFz cyB3aWxsIHVwZGF0ZSBhZGRlZCBjb2xsYXRpb24gdW5kZXIgc2NoZW1hIG5v ZGUuICIiIgorCisgICAgcHJpb3JpdHkgPSA1MAorCisgICAgc2NlbmFyaW9z ID0gWworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBjb2xs YXRpb24gbm9kZS4KKyAgICAgICAgKCdGZXRjaCBjb2xsYXRpb24gTm9kZSBV UkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvY29sbGF0aW9uL29iai8nKSkKKyAg ICBdCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRo aXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgY29sbGF0aW9uIHVuZGVyIHNjaGVt YSBub2RlLiAiIiIKKworICAgICAgICBhbGxfaWQgPSBnZXRfaWRzKCkKKwor ICAgICAgICBzZXJ2ZXJfaWQgPSBhbGxfaWRbInNpZCJdWzBdCisgICAgICAg IGRiX2lkID0gYWxsX2lkWyJkaWQiXVswXQorICAgICAgICBzY2hlbWFfaWQg PSBhbGxfaWRbInNjaWQiXVswXQorICAgICAgICBjb2xsYXRpb25faWQgPSBh bGxfaWRbImNvaWQiXVswXQorICAgICAgICBzcnZfZ3JwID0gY29uZmlnX2Rh dGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKworICAgICAgICBkYl9jb24gPSB0 ZXN0X2dldG5vZGVzKG5vZGU9c2VsZikKKworICAgICAgICBpZiBkYl9jb25b J2RhdGEnXVsiY29ubmVjdGVkIl06CisKKyAgICAgICAgICAgICMgRmV0Y2gg YWRkZWQgc2NoZW1hIG5vZGUuCisgICAgICAgICAgICByZXNwb25zZSA9IHNl bGYudGVzdGVyLmdldCgnL2Jyb3dzZXIvc2NoZW1hL29iai8nCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnezB9L3sxfS97Mn0v ezN9Jy5mb3JtYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChzcnZfZ3JwLCBzZXJ2ZXJfaWQsIGRiX2lkLCBzY2hlbWFfaWQp LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u dGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAgICAgICAgICByZXNwZGF0 YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKworICAg ICAgICAgICAgaWYgbGVuKHJlc3BkYXRhKSAhPSAwOgorCisgICAgICAgICAg ICAgICAgZ2V0X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYudXJs ICsgc3RyKHNydl9ncnApICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAn LycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHIoZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNjaGVtYV9pZCkg KyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHIoY29sbGF0aW9uX2lkKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBl PSdodG1sL2pzb24nKQorCisgICAgICAgICAgICAgICAgZ2V0X3Jlc3BkYXRh ID0ganNvbi5sb2FkcyhnZXRfcmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKwor ICAgICAgICAgICAgICAgIGlmIGxlbihnZXRfcmVzcGRhdGEpID09IDA6Cisg ICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5vIGNv bGxhdGlvbiBub2RlIHRvIHVwZGF0ZS4iKQorCisgICAgICAgICAgICAgICAg ZGF0YSA9IFwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgICAgICAgICJkZXNjcmlwdGlvbiI6IGNvbmZpZ19kYXRhWyd0ZXN0X2Nv bGxhdGlvbl91cGRhdGVfZGF0YSddCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfY29tbWVudCddLAor ICAgICAgICAgICAgICAgICAgICAgICJpZCI6IGNvbGxhdGlvbl9pZCwKKyAg ICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcHV0X3Jl c3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KHNlbGYudXJsICsgc3RyKHNydl9n cnApICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIo ZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RyKHNjaGVtYV9pZCkgKyAnLycgKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHIoY29sbGF0aW9uX2lkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisKKyAgICAgICAgICAgICAgICBz ZWxmLmFzc2VydEVxdWFscyhwdXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIw MCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVzdHMv X19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3Rlc3RzL19f aW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjdkY2EyMDQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9k b21haW5zL3Rlc3RzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTYgQEAKKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAt IFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0g MjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNv ZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2Vu Y2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20g cGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IK KworCitjbGFzcyBEb21haW5UZXN0R2VuZXJhdG9yKEJhc2VUZXN0R2VuZXJh dG9yKToKKworICAgZGVmIGdlbmVyYXRlX3Rlc3RzKHNlbGYpOgorICAgICAg IHJldHVybiBbXQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlu cy90ZXN0cy90ZXN0X2RvbWFpbl9hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9k b21haW5zL3Rlc3RzL3Rlc3RfZG9tYWluX2FkZC5weQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi42MDUxOGU2Ci0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZXN0cy90ZXN0X2RvbWFp bl9hZGQucHkKQEAgLTAsMCArMSw5NiBAQAorIyAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisj IENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVs b3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRl ciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworCitmcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25m aWdfZGF0YSwgcGlja2xlX3BhdGgKK2Zyb20gcGdhZG1pbi5icm93c2VyLnRl c3RzLnRlc3RfbG9naW4gaW1wb3J0IExvZ2luVGVzdENhc2UKK2Zyb20gcmVn cmVzc2lvbi50ZXN0X3V0aWxzIGltcG9ydCBnZXRfaWRzCitmcm9tIHJlZ3Jl c3Npb24udGVzdF9ub2RlcyBpbXBvcnQgdGVzdF9nZXRub2RlcworaW1wb3J0 IGpzb24KK2ltcG9ydCBwaWNrbGUKK2ltcG9ydCBvcworCisKK2NsYXNzIERv bWFpbkFkZFRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgorICAgICIiIiBUaGlz IGNsYXNzIHdpbGwgYWRkIG5ldyBkb21haW4gdW5kZXIgc2NoZW1hIG5vZGUu ICIiIgorCisgICAgcHJpb3JpdHkgPSA1MgorCisgICAgc2NlbmFyaW9zID0g WworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBkb21haW4g bm9kZS4KKyAgICAgICAgKCdGZWN0aCBkb21haW4gTm9kZSBVUkwnLCBkaWN0 KHVybD0nL2Jyb3dzZXIvZG9tYWluL29iai8nKSkKKyAgICBdCisKKyAgICBk ZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24g d2lsbCBhZGQgZG9tYWluIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKworICAg ICAgICBhbGxfaWQgPSBnZXRfaWRzKCkKKworICAgICAgICBzZXJ2ZXJfaWQg PSBhbGxfaWRbInNpZCJdWzBdCisgICAgICAgIGRiX2lkID0gYWxsX2lkWyJk aWQiXVswXQorICAgICAgICBzY2hlbWFfaWQgPSBhbGxfaWRbInNjaWQiXVsw XQorICAgICAgICBzcnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVy X2dyb3VwJ10KKworICAgICAgICBkYl9jb24gPSB0ZXN0X2dldG5vZGVzKG5v ZGU9c2VsZikKKworICAgICAgICBpZiBkYl9jb25bJ2RhdGEnXVsiY29ubmVj dGVkIl06CisKKyAgICAgICAgICAgICMgRmV0Y2ggYWRkZWQgc2NoZW1hIG5v ZGUuCisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgn L2Jyb3dzZXIvc2NoZW1hL29iai8nCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnezB9L3sxfS97Mn0vezN9Jy5mb3JtYXQKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzcnZfZ3Jw LCBzZXJ2ZXJfaWQsIGRiX2lkLCBzY2hlbWFfaWQpLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1s L2pzb24nKQorCisgICAgICAgICAgICBkYXRhID0gXAorICAgICAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImJhc2Vuc3AiOiBjb25maWdf ZGF0YVsndGVzdF9kb21haW5fZGF0YSddCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3Rfc2NoZW1hJ10sCisgICAg ICAgICAgICAgICAgICAgICJiYXNldHlwZSI6IGNvbmZpZ19kYXRhWyd0ZXN0 X2RvbWFpbl9kYXRhJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBbJ3Rlc3RfYmFzZXR5cGUnXSwKKyAgICAgICAgICAg ICAgICAgICAgImNvbGxuYW1lIjogY29uZmlnX2RhdGFbJ3Rlc3RfZG9tYWlu X2RhdGEnXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFsndGVzdF9jb2xsYXRpb24nXSwKKyAgICAgICAgICAgICAgICAg ICAgImNvbnN0cmFpbnRzIjogY29uZmlnX2RhdGFbJ3Rlc3RfZG9tYWluX2Rh dGEnXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFsndGVzdF9jb25zdHJhaW50cyddLAorICAgICAgICAgICAgICAg ICAgICAiaXNfdGxlbmd0aCI6IGNvbmZpZ19kYXRhWyd0ZXN0X2RvbWFpbl9k YXRhJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFsndGVzdF9sZW5naHQnXSwKKyAgICAgICAgICAgICAgICAgICAg Im1heF92YWwiOiBjb25maWdfZGF0YVsndGVzdF9kb21haW5fZGF0YSddCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3Rl c3RfbWF4X3ZhbHVlJ10sCisgICAgICAgICAgICAgICAgICAgICJtaW5fdmFs IjogY29uZmlnX2RhdGFbJ3Rlc3RfZG9tYWluX2RhdGEnXQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X21pbl92 YWx1ZSddLAorICAgICAgICAgICAgICAgICAgICAibmFtZSI6IGNvbmZpZ19k YXRhWyd0ZXN0X2RvbWFpbl9kYXRhJ10KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFsndGVzdF9uYW1lJ10sCisgICAgICAgICAg ICAgICAgICAgICJvd25lciI6IGNvbmZpZ19kYXRhWyd0ZXN0X2RvbWFpbl9k YXRhJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBbJ3Rlc3Rfb3duZXInXSwKKyAgICAgICAgICAgICAgICAgICAgInNlY2xh YmVscyI6IGNvbmZpZ19kYXRhWyd0ZXN0X2RvbWFpbl9kYXRhJ10KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0 X3NlY3VyaXR5J10sCisgICAgICAgICAgICAgICAgICAgICJ0eXBkZWZhdWx0 IjogY29uZmlnX2RhdGFbJ3Rlc3RfZG9tYWluX2RhdGEnXQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X2Rl ZmFsdF90eXBlJ10sCisgICAgICAgICAgICAgICAgICAgICJ0eXBsZW4iOiBj b25maWdfZGF0YVsndGVzdF9kb21haW5fZGF0YSddCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsndGVzdF90eXBlX2xlbidd LAorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVzcG9uc2Ug PSBzZWxmLnRlc3Rlci5wb3N0KHNlbGYudXJsICsgc3RyKHNydl9ncnApICsg Jy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHIoc2VydmVyX2lkKSArICcvJyArIHN0cihkYl9pZCkgKworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvJyArIHN0cihz Y2hlbWFfaWQpICsgJy8nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9 J2h0bWwvanNvbicpCisKKyAgICAgICAgICAgIHJlc3BkYXRhID0ganNvbi5s b2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgpKQorCisgICAgICAgICAgICBk b21haW5faWQgPSByZXNwZGF0YVsnbm9kZSddWydfaWQnXQorCisgICAgICAg ICAgICBpZiBvcy5wYXRoLmlzZmlsZShwaWNrbGVfcGF0aCk6CisgICAgICAg ICAgICAgICAgZXhzdF9zZXJ2ZXJfaWQgPSBvcGVuKHBpY2tsZV9wYXRoLCAn cmInKQorICAgICAgICAgICAgICAgIGFsbF9pZCA9IHBpY2tsZS5sb2FkKGV4 c3Rfc2VydmVyX2lkKQorICAgICAgICAgICAgICAgIHBpY2tsZV9pZF9kaWN0 ID0gYWxsX2lkCisKKyAgICAgICAgICAgIHBpY2tsZV9pZF9kaWN0WyJkb2lk Il0uYXBwZW5kKGRvbWFpbl9pZCkKKworICAgICAgICAgICAgZG9tYWluX291 dHB1dCA9IG9wZW4ocGlja2xlX3BhdGgsICd3YicpCisgICAgICAgICAgICBw aWNrbGUuZHVtcChwaWNrbGVfaWRfZGljdCwgZG9tYWluX291dHB1dCkKKyAg ICAgICAgICAgIGRvbWFpbl9vdXRwdXQuY2xvc2UoKQpcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Rv bWFpbnMvdGVzdHMvdGVzdF9kb21haW5fZGVsZXRlLnB5IGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZG9tYWlucy90ZXN0cy90ZXN0X2RvbWFpbl9kZWxldGUucHkKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTA2ZWU0NQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVzdHMv dGVzdF9kb21haW5fZGVsZXRlLnB5CkBAIC0wLDAgKzEsNzIgQEAKKyMgIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNR TCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUg cGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMg cmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZnJvbSByZWdyZXNzaW9uLmNvbmZp ZyBpbXBvcnQgY29uZmlnX2RhdGEKK2Zyb20gcGdhZG1pbi5icm93c2VyLnRl c3RzLnRlc3RfbG9naW4gaW1wb3J0IExvZ2luVGVzdENhc2UKK2Zyb20gcmVn cmVzc2lvbi50ZXN0X3V0aWxzIGltcG9ydCBnZXRfaWRzCitmcm9tIHJlZ3Jl c3Npb24udGVzdF9ub2RlcyBpbXBvcnQgdGVzdF9nZXRub2RlcworaW1wb3J0 IGpzb24KKworCitjbGFzcyBEb21haW5EZWxldGVUZXN0Q2FzZShMb2dpblRl c3RDYXNlKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSBuZXcg ZG9tYWluIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKworICAgIHByaW9yaXR5 ID0gNTUKKworICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGlu ZyBkZWZhdWx0IFVSTCBmb3IgZG9tYWluIG5vZGUuCisgICAgICAgICgnRmVj dGggZG9tYWluIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL2RvbWFp bi9vYmovJykpCisgICAgXQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6Cisg ICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIGRvbWFpbiB1 bmRlciBzY2hlbWEgbm9kZS4gIiIiCisKKyAgICAgICAgYWxsX2lkID0gZ2V0 X2lkcygpCisKKyAgICAgICAgc2VydmVyX2lkID0gYWxsX2lkWyJzaWQiXVsw XQorICAgICAgICBkYl9pZCA9IGFsbF9pZFsiZGlkIl1bMF0KKyAgICAgICAg c2NoZW1hX2lkID0gYWxsX2lkWyJzY2lkIl1bMF0KKyAgICAgICAgZG9tYWlu X2lkPSBhbGxfaWRbImRvaWQiXVswXQorICAgICAgICBzcnZfZ3JwID0gY29u ZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKworICAgICAgICBkYl9j b24gPSB0ZXN0X2dldG5vZGVzKG5vZGU9c2VsZikKKworICAgICAgICBpZiBk Yl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisKKyAgICAgICAgICAgICMg RmV0Y2ggYWRkZWQgc2NoZW1hIG5vZGUuCisgICAgICAgICAgICByZXNwb25z ZSA9IHNlbGYudGVzdGVyLmdldCgnL2Jyb3dzZXIvc2NoZW1hL29iai8nCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnezB9L3sx fS97Mn0vezN9Jy5mb3JtYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChzcnZfZ3JwLCBzZXJ2ZXJfaWQsIGRiX2lkLCBzY2hl bWFfaWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAgICAgICAgICBy ZXNwZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkK KworICAgICAgICAgICAgaWYgbGVuKHJlc3BkYXRhKSAhPSAwOgorICAgICAg ICAgICAgICAgIGdldF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldChzZWxm LnVybCArIHN0cihzcnZfZ3JwKSArICcvJyArCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQp ICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RyKGRiX2lkKSArICcvJyArCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzY2hlbWFf aWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RyKGRvbWFpbl9pZCksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlw ZT0naHRtbC9qc29uJykKKworICAgICAgICAgICAgICAgIGdldF9yZXNwZGF0 YSA9IGpzb24ubG9hZHMoZ2V0X3Jlc3BvbnNlLmRhdGEuZGVjb2RlKCkpCisK KyAgICAgICAgICAgICAgICBpZiBsZW4oZ2V0X3Jlc3BkYXRhKSA9PSAwOgor ICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyBk b21haW4gbm9kZSB0byBkZWxldGUuIikKKworICAgICAgICAgICAgICAgIGRl bF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZShzZWxmLnVybCArIHN0 cihzcnZfZ3JwKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICcvJyArIHN0cihzZXJ2ZXJfaWQpICsgJy8n ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RyKGRiX2lkKSArICcvJyArCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzY2hlbWFf aWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RyKGRvbWFpbl9pZCksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxv d19yZWRpcmVjdHM9VHJ1ZSkKKworICAgICAgICAgICAgICAgIGRlbF9yZXNw ZGF0YSA9IGpzb24ubG9hZHMoZGVsX3Jlc3BvbnNlLmRhdGEuZGVjb2RlKCkp CisKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoZGVsX3Jlc3Bk YXRhWydzdWNjZXNzJ10sIDEpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9kb21haW5zL3Rlc3RzL3Rlc3RfZG9tYWluX2dldC5weSBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2RvbWFpbnMvdGVzdHMvdGVzdF9kb21haW5fZ2V0LnB5Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjMGZlNWMKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3Rlc3RzL3Rl c3RfZG9tYWluX2dldC5weQpAQCAtMCwwICsxLDU5IEBACisjICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9v bHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRt aW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVh c2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCisKK2Zyb20gcmVncmVzc2lvbi5jb25maWcgaW1w b3J0IGNvbmZpZ19kYXRhCitmcm9tIHBnYWRtaW4uYnJvd3Nlci50ZXN0cy50 ZXN0X2xvZ2luIGltcG9ydCBMb2dpblRlc3RDYXNlCitmcm9tIHJlZ3Jlc3Np b24udGVzdF91dGlscyBpbXBvcnQgZ2V0X2lkcworZnJvbSByZWdyZXNzaW9u LnRlc3Rfbm9kZXMgaW1wb3J0IHRlc3RfZ2V0bm9kZXMKK2ltcG9ydCBqc29u CisKKworY2xhc3MgRG9tYWluR2V0VGVzdENhc2UoTG9naW5UZXN0Q2FzZSk6 CisgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBmZXRjaCBuZXcgY29sbGF0aW9u IHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKworICAgIHByaW9yaXR5ID0gNTMK KworICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZh dWx0IFVSTCBmb3IgZG9tYWluIG5vZGUuCisgICAgICAgICgnRmV0Y2ggZG9t YWluIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL2RvbWFpbi9vYmov JykpCisgICAgXQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAg ICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIGRvbWFpbiB1bmRlciBzY2hl bWEgbm9kZS4gIiIiCisKKyAgICAgICAgYWxsX2lkID0gZ2V0X2lkcygpCisK KyAgICAgICAgc2VydmVyX2lkID0gYWxsX2lkWyJzaWQiXVswXQorICAgICAg ICBkYl9pZCA9IGFsbF9pZFsiZGlkIl1bMF0KKyAgICAgICAgc2NoZW1hX2lk ID0gYWxsX2lkWyJzY2lkIl1bMF0KKyAgICAgICAgZG9tYWluX2lkPSBhbGxf aWRbImRvaWQiXVswXQorICAgICAgICBzcnZfZ3JwID0gY29uZmlnX2RhdGFb J3Rlc3Rfc2VydmVyX2dyb3VwJ10KKworICAgICAgICBkYl9jb24gPSB0ZXN0 X2dldG5vZGVzKG5vZGU9c2VsZikKKworICAgICAgICBpZiBkYl9jb25bJ2Rh dGEnXVsiY29ubmVjdGVkIl06CisKKyAgICAgICAgICAgICMgRmV0Y2ggYWRk ZWQgc2NoZW1hIG5vZGUuCisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYu dGVzdGVyLmdldCgnL2Jyb3dzZXIvc2NoZW1hL29iai8nCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnezB9L3sxfS97Mn0vezN9 Jy5mb3JtYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChzcnZfZ3JwLCBzZXJ2ZXJfaWQsIGRiX2lkLCBzY2hlbWFfaWQpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVu dF90eXBlPSdodG1sL2pzb24nKQorCisgICAgICAgICAgICByZXNwZGF0YSA9 IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKworICAgICAg ICAgICAgaWYgbGVuKHJlc3BkYXRhKSAhPSAwOgorCisgICAgICAgICAgICAg ICAgZ2V0X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYudXJsICsg c3RyKHNydl9ncnApICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycg KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHIoZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNjaGVtYV9pZCkgKyAn LycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHIoZG9tYWluX2lkKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1s L2pzb24nKQorCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo cmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2RvbWFpbnMvdGVzdHMvdGVzdF9kb21haW5fcHV0LnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZXN0cy90ZXN0X2RvbWFpbl9wdXQu cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjJhYjk3 MgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMv dGVzdHMvdGVzdF9kb21haW5fcHV0LnB5CkBAIC0wLDAgKzEsNzkgQEAKKyMg IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdy ZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBU aGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUg aXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIwor IyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZnJvbSByZWdyZXNzaW9uLmNv bmZpZyBpbXBvcnQgY29uZmlnX2RhdGEKK2Zyb20gcGdhZG1pbi5icm93c2Vy LnRlc3RzLnRlc3RfbG9naW4gaW1wb3J0IExvZ2luVGVzdENhc2UKK2Zyb20g cmVncmVzc2lvbi50ZXN0X3V0aWxzIGltcG9ydCBnZXRfaWRzCitmcm9tIHJl Z3Jlc3Npb24udGVzdF9ub2RlcyBpbXBvcnQgdGVzdF9nZXRub2RlcworaW1w b3J0IGpzb24KKworCitjbGFzcyBEb21haW5QdXRUZXN0Q2FzZShMb2dpblRl c3RDYXNlKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGZldGNoIG5ldyBj b2xsYXRpb24gdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorCisgICAgcHJpb3Jp dHkgPSA1NAorCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNo aW5nIGRlZmF1bHQgVVJMIGZvciBkb21haW4gbm9kZS4KKyAgICAgICAgKCdG ZWN0aCBkb21haW4gTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvZG9t YWluL29iai8nKSkKKyAgICBdCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToK KyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgZG9tYWlu IHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKworICAgICAgICBhbGxfaWQgPSBn ZXRfaWRzKCkKKworICAgICAgICBzZXJ2ZXJfaWQgPSBhbGxfaWRbInNpZCJd WzBdCisgICAgICAgIGRiX2lkID0gYWxsX2lkWyJkaWQiXVswXQorICAgICAg ICBzY2hlbWFfaWQgPSBhbGxfaWRbInNjaWQiXVswXQorICAgICAgICBkb21h aW5faWQ9IGFsbF9pZFsiZG9pZCJdWzBdCisgICAgICAgIHNydl9ncnAgPSBj b25maWdfZGF0YVsndGVzdF9zZXJ2ZXJfZ3JvdXAnXQorCisgICAgICAgIGRi X2NvbiA9IHRlc3RfZ2V0bm9kZXMobm9kZT1zZWxmKQorCisgICAgICAgIGlm IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKworICAgICAgICAgICAg IyBGZXRjaCBhZGRlZCBzY2hlbWEgbm9kZS4KKyAgICAgICAgICAgIHJlc3Bv bnNlID0gc2VsZi50ZXN0ZXIuZ2V0KCcvYnJvd3Nlci9zY2hlbWEvb2JqLycK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd7MH0v ezF9L3syfS97M30nLmZvcm1hdAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHNydl9ncnAsIHNlcnZlcl9pZCwgZGJfaWQsIHNj aGVtYV9pZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKyAgICAgICAgICAg IHJlc3BkYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgp KQorCisgICAgICAgICAgICBpZiBsZW4ocmVzcGRhdGEpICE9IDA6CisKKyAg ICAgICAgICAgICAgICBnZXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQo c2VsZi51cmwgKyBzdHIoc3J2X2dycCkgKyAnLycgKworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VydmVy X2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cihkYl9pZCkgKyAnLycgKworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2No ZW1hX2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cihkb21haW5faWQpLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50 X3R5cGU9J2h0bWwvanNvbicpCisKKyAgICAgICAgICAgICAgICBnZXRfcmVz cGRhdGEgPSBqc29uLmxvYWRzKGdldF9yZXNwb25zZS5kYXRhLmRlY29kZSgp KQorCisgICAgICAgICAgICAgICAgaWYgbGVuKGdldF9yZXNwZGF0YSkgPT0g MDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Tm8gZG9tYWluIG5vZGUgdG8gdXBkYXRlLiIpCisKKyAgICAgICAgICAgICAg ICBkYXRhID0gXAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IGNvbmZpZ19kYXRhWyd0 ZXN0X2RvbWFpbl91cGRhdGVfZGF0YSddCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X2NvbW1l bnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImlkIjogZG9tYWlu X2lkLAorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1 dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dChzZWxmLnVybCArIHN0cihz cnZfZ3JwKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihkYl9p ZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cihzY2hlbWFfaWQpICsgJy8nICsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoZG9tYWluX2lk KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVl KQorCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwdXRfcmVzcG9u c2Uuc3RhdHVzX2NvZGUsIDIwMCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZXN0cy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi4wM2JmM2Y2Ci0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL19faW5pdF9f LnB5CkBAIC0wLDAgKzEsMTYgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMK KyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2 ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVu ZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCisKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBp bXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKKworCitjbGFzcyBUcmlnZ2VyRnVu Y3Rpb25UZXN0R2VuZXJhdG9yKEJhc2VUZXN0R2VuZXJhdG9yKToKKworICAg ZGVmIGdlbmVyYXRlX3Rlc3RzKHNlbGYpOgorICAgICAgIHJldHVybiBbXQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rl c3RfdHJpZ2dlcl9mdW5jX2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19hZGQucHkKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzY1MjQ4YgotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0 X3RyaWdnZXJfZnVuY19hZGQucHkKQEAgLTAsMCArMSwxMDkgQEAKKyMgIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNR TCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUg cGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMg cmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZnJvbSByZWdyZXNzaW9uLmNvbmZp ZyBpbXBvcnQgY29uZmlnX2RhdGEsIHBpY2tsZV9wYXRoCitmcm9tIHBnYWRt aW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2luIGltcG9ydCBMb2dpblRlc3RD YXNlCitmcm9tIHJlZ3Jlc3Npb24udGVzdF91dGlscyBpbXBvcnQgZ2V0X2lk cworZnJvbSByZWdyZXNzaW9uLnRlc3Rfbm9kZXMgaW1wb3J0IHRlc3RfZ2V0 bm9kZXMKK2ltcG9ydCBqc29uCitpbXBvcnQgcGlja2xlCitpbXBvcnQgb3MK KworCitjbGFzcyBUcmlnZ2VyRnVuY0FkZFRlc3RDYXNlKExvZ2luVGVzdENh c2UpOgorICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgYWRkIG5ldyB0cmlnZ2Vy IGZ1bmN0aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKworICAgIHByaW9y aXR5ID0gMzYKKworICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRj aGluZyBkZWZhdWx0IFVSTCBmb3IgdHJpZ2dlciBmdW5jdGlvbiBub2RlLgor ICAgICAgICAoJ0ZlY3RoIFRyaWdnZXIgRnVuY3Rpb24gTm9kZSBVUkwnLAor ICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL3RyaWdnZXJfZnVuY3Rpb24v b2JqLycpKQorICAgIF0KKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAg ICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCB0cmlnZ2VyIGZ1bmN0 aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKworICAgICAgICBhbGxfaWQg PSBnZXRfaWRzKCkKKworICAgICAgICBzZXJ2ZXJfaWQgPSBhbGxfaWRbInNp ZCJdWzBdCisgICAgICAgIGRiX2lkID0gYWxsX2lkWyJkaWQiXVswXQorICAg ICAgICBzY2hlbWFfaWQgPSBhbGxfaWRbInNjaWQiXVswXQorICAgICAgICBz cnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKwor ICAgICAgICBkYl9jb24gPSB0ZXN0X2dldG5vZGVzKG5vZGU9c2VsZikKKwor ICAgICAgICBpZiBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisKKyAg ICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KCcvYnJvd3Nl ci9zY2hlbWEvb2JqLycgKyBzdHIoc3J2X2dycCkgKworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8nICsgc3RyKHNlcnZlcl9p ZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RyKGRiX2lkKSArICcvJyArIHN0cihzY2hlbWFfaWQpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90 eXBlPSdodG1sL2pzb24nKQorCisgICAgICAgICAgICBkYXRhID0gXAorICAg ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImFjbCI6IGNv bmZpZ19kYXRhCisgICAgICAgICAgICAgICAgICAgIFsndGVzdF90cmlnZ2Vy X2Z1bmN0aW9uX2NyZWRlbnRpYWxzJ11bJ3Rlc3RfYWNsJ10sCisgICAgICAg ICAgICAgICAgICAgICJhcmd1bWVudHMiOiBjb25maWdfZGF0YQorICAgICAg ICAgICAgICAgICAgICBbJ3Rlc3RfdHJpZ2dlcl9mdW5jdGlvbl9jcmVkZW50 aWFscyddWyd0ZXN0X2FyZ3MnXSwKKyAgICAgICAgICAgICAgICAgICAgImZ1 bmNvd25lciI6IGNvbmZpZ19kYXRhCisgICAgICAgICAgICAgICAgICAgIFsn dGVzdF90cmlnZ2VyX2Z1bmN0aW9uX2NyZWRlbnRpYWxzJ11bJ3Rlc3RfZnVu X293bmVyJ10sCisgICAgICAgICAgICAgICAgICAgICJsYW5uYW1lIjogY29u ZmlnX2RhdGEKKyAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X3RyaWdnZXJf ZnVuY3Rpb25fY3JlZGVudGlhbHMnXVsndGVzdF9sYW5ndWFnZSddLAorICAg ICAgICAgICAgICAgICAgICAibmFtZSI6IGNvbmZpZ19kYXRhCisgICAgICAg ICAgICAgICAgICAgIFsndGVzdF90cmlnZ2VyX2Z1bmN0aW9uX2NyZWRlbnRp YWxzJ11bJ3Rlc3RfbmFtZSddLAorICAgICAgICAgICAgICAgICAgICAib3B0 aW9ucyI6IGNvbmZpZ19kYXRhCisgICAgICAgICAgICAgICAgICAgIFsndGVz dF90cmlnZ2VyX2Z1bmN0aW9uX2NyZWRlbnRpYWxzJ11bJ3Rlc3Rfb3B0aW9u cyddLAorICAgICAgICAgICAgICAgICAgICAicHJvYmluIjogY29uZmlnX2Rh dGEKKyAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X3RyaWdnZXJfZnVuY3Rp b25fY3JlZGVudGlhbHMnXVsndGVzdF9wcm9iZSddLAorICAgICAgICAgICAg ICAgICAgICAicHJvbGVha3Byb29mIjogY29uZmlnX2RhdGEKKyAgICAgICAg ICAgICAgICAgICAgWyd0ZXN0X3RyaWdnZXJfZnVuY3Rpb25fY3JlZGVudGlh bHMnXVsndGVzdF9sZWFrX3Byb29mJ10sCisgICAgICAgICAgICAgICAgICAg ICJwcm9uYW1lc3BhY2UiOiBjb25maWdfZGF0YQorICAgICAgICAgICAgICAg ICAgICBbJ3Rlc3RfdHJpZ2dlcl9mdW5jdGlvbl9jcmVkZW50aWFscyddWyd0 ZXN0X25hbWVzcGFjZSddLAorICAgICAgICAgICAgICAgICAgICAicHJvcmV0 dHlwZW5hbWUiOiBjb25maWdfZGF0YQorICAgICAgICAgICAgICAgICAgICBb J3Rlc3RfdHJpZ2dlcl9mdW5jdGlvbl9jcmVkZW50aWFscyddWyd0ZXN0X3R5 cGUnXSwKKyAgICAgICAgICAgICAgICAgICAgInByb3NlY2RlZiI6IGNvbmZp Z19kYXRhCisgICAgICAgICAgICAgICAgICAgIFsndGVzdF90cmlnZ2VyX2Z1 bmN0aW9uX2NyZWRlbnRpYWxzJ11bJ3Rlc3Rfc2VjX2RlZiddLAorICAgICAg ICAgICAgICAgICAgICAicHJvc3JjIjogY29uZmlnX2RhdGEKKyAgICAgICAg ICAgICAgICAgICAgWyd0ZXN0X3RyaWdnZXJfZnVuY3Rpb25fY3JlZGVudGlh bHMnXVsndGVzdF9jb2RlJ10sCisgICAgICAgICAgICAgICAgICAgICJwcm92 b2xhdGlsZSI6IGNvbmZpZ19kYXRhCisgICAgICAgICAgICAgICAgICAgIFsn dGVzdF90cmlnZ2VyX2Z1bmN0aW9uX2NyZWRlbnRpYWxzJ11bJ3Rlc3Rfdm9s aXRpbGUnXSwKKyAgICAgICAgICAgICAgICAgICAgInNlY2xhYmVscyI6IGNv bmZpZ19kYXRhCisgICAgICAgICAgICAgICAgICAgIFsndGVzdF90cmlnZ2Vy X2Z1bmN0aW9uX2NyZWRlbnRpYWxzJ11bJ3Rlc3Rfc2VjX2xhYmVsJ10sCisg ICAgICAgICAgICAgICAgICAgICJ2YXJpYWJsZXMiOiBjb25maWdfZGF0YQor ICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfdHJpZ2dlcl9mdW5jdGlvbl9j cmVkZW50aWFscyddWyd0ZXN0X1ZhcmlhYmxlJ10KKyAgICAgICAgICAgICAg ICB9CisKKyAgICAgICAgICAgIGlmIHNjaGVtYV9pZDoKKyAgICAgICAgICAg ICAgICBkYXRhWydwcm9uYW1lc3BhY2UnXSA9IHNjaGVtYV9pZAorICAgICAg ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzY2hlbWFfaWQgPSBkYXRh Wydwcm9uYW1lc3BhY2UnXQorCisgICAgICAgICAgICByZXNwb25zZSA9IHNl bGYudGVzdGVyLnBvc3Qoc2VsZi51cmwgKyBzdHIoc3J2X2dycCkgKyAnLycg KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKGRiX2lkKSArCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8nICsgc3RyKHNjaGVt YV9pZCkgKyAnLycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRt bC9qc29uJykKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3Bv bnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICAgICAgICAgIHJlc3BkYXRh ID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgpKQorCisgICAg ICAgICAgICB0cmdfZnVuY19faWQgPSByZXNwZGF0YVsnbm9kZSddWydfaWQn XQorCisgICAgICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShwaWNrbGVfcGF0 aCk6CisgICAgICAgICAgICAgICAgZXhzdF9zZXJ2ZXJfaWQgPSBvcGVuKHBp Y2tsZV9wYXRoLCAncmInKQorICAgICAgICAgICAgICAgIGFsbF9pZCA9IHBp Y2tsZS5sb2FkKGV4c3Rfc2VydmVyX2lkKQorICAgICAgICAgICAgICAgIHBp Y2tsZV9pZF9kaWN0ID0gYWxsX2lkCisKKyAgICAgICAgICAgIHBpY2tsZV9p ZF9kaWN0WyJ0Zm5pZCJdLmFwcGVuZCh0cmdfZnVuY19faWQpCisKKyAgICAg ICAgICAgIGV4dGVuc2lvbl9vdXRwdXQgPSBvcGVuKHBpY2tsZV9wYXRoLCAn d2InKQorICAgICAgICAgICAgcGlja2xlLmR1bXAocGlja2xlX2lkX2RpY3Qs IGV4dGVuc2lvbl9vdXRwdXQpCisgICAgICAgICAgICBleHRlbnNpb25fb3V0 cHV0LmNsb3NlKCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19kZWxldGUucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNf ZGVsZXRlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmE2NGNkNWYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfZGVsZXRlLnB5CkBA IC0wLDAgKzEsNzQgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMg cGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQg KEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFt CisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3Rn cmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKwor ZnJvbSByZWdyZXNzaW9uLmNvbmZpZyBpbXBvcnQgY29uZmlnX2RhdGEKK2Zy b20gcGdhZG1pbi5icm93c2VyLnRlc3RzLnRlc3RfbG9naW4gaW1wb3J0IExv Z2luVGVzdENhc2UKK2Zyb20gcmVncmVzc2lvbi50ZXN0X3V0aWxzIGltcG9y dCBnZXRfaWRzCitmcm9tIHJlZ3Jlc3Npb24udGVzdF9ub2RlcyBpbXBvcnQg dGVzdF9nZXRub2RlcworaW1wb3J0IGpzb24KKworCitjbGFzcyBUcmlnZ2Vy RnVuY0RlbGV0ZVRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgorICAgICIiIiBU aGlzIGNsYXNzIHdpbGwgYWRkIG5ldyB0cmlnZ2VyIGZ1bmN0aW9uIHVuZGVy IHNjaGVtYSBub2RlLiAiIiIKKworICAgIHByaW9yaXR5ID0gNDMKKworICAg IHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVS TCBmb3IgdHJpZ2dlciBmdW5jdGlvbiBub2RlLgorICAgICAgICAoJ0ZldGNo IFRyaWdnZXIgRnVuY3Rpb24gTm9kZSBVUkwnLAorICAgICAgICAgZGljdCh1 cmw9Jy9icm93c2VyL3RyaWdnZXJfZnVuY3Rpb24vb2JqLycpKQorICAgIF0K KworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBm dW5jdGlvbiB3aWxsIGRlbGV0ZSB0cmlnZ2VyIGZ1bmN0aW9uIHVuZGVyIGRh dGFiYXNlIG5vZGUuICIiIgorCisgICAgICAgIGFsbF9pZCA9IGdldF9pZHMo KQorCisgICAgICAgIHNlcnZlcl9pZCA9IGFsbF9pZFsic2lkIl1bMF0KKyAg ICAgICAgZGJfaWQgPSBhbGxfaWRbImRpZCJdWzBdCisgICAgICAgIHNjaGVt YV9pZCA9IGFsbF9pZFsic2NpZCJdWzBdCisgICAgICAgIHRyZ19mdW5jX19p ZCA9IGFsbF9pZFsidGZuaWQiXVswXQorICAgICAgICBzcnZfZ3JwID0gY29u ZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKworICAgICAgICBkYl9j b24gPSB0ZXN0X2dldG5vZGVzKG5vZGU9c2VsZikKKworICAgICAgICBpZiBk Yl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisKKyAgICAgICAgICAgICMg RmV0Y2ggYWRkZWQgc2NoZW1hIG5vZGUuCisgICAgICAgICAgICByZXNwb25z ZSA9IHNlbGYudGVzdGVyLmdldCgnL2Jyb3dzZXIvc2NoZW1hL29iai8nCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnezB9L3sx fS97Mn0vezN9Jy5mb3JtYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChzcnZfZ3JwLCBzZXJ2ZXJfaWQsIGRiX2lkLCBzY2hl bWFfaWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAgICAgICAgICBy ZXNwZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkK KworICAgICAgICAgICAgaWYgbGVuKHJlc3BkYXRhKSAhPSAwOgorICAgICAg ICAgICAgICAgIGdldF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldChzZWxm LnVybCArIHN0cihzcnZfZ3JwKSArICcvJyArCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQp ICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RyKGRiX2lkKSArICcvJyArCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzY2hlbWFf aWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RyKHRyZ19mdW5jX19pZCksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRf dHlwZT0naHRtbC9qc29uJykKKworICAgICAgICAgICAgICAgIHJlc3BkYXRh ID0ganNvbi5sb2FkcyhnZXRfcmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKwor ICAgICAgICAgICAgICAgIGlmIGxlbihyZXNwZGF0YSkgPT0gMDoKKyAgICAg ICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyB0cmlnZ2VyIGZ1 bmN0aW9uKHMpIHRvIGRlbGV0ZS4iKQorCisgICAgICAgICAgICAgICAgZGVs X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKHNlbGYudXJsICsgc3Ry KHNydl9ncnApICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJy8nICsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkg KyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHIoZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNj aGVtYV9pZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHIodHJnX2Z1bmNfX2lkKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorCisgICAgICAgICAgICAgICAg ZGVsX3Jlc3BkYXRhID0ganNvbi5sb2FkcyhkZWxfcmVzcG9uc2UuZGF0YS5k ZWNvZGUoKSkKKworICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShk ZWxfcmVzcGRhdGFbJ3N1Y2Nlc3MnXSwgMSkKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfZ2V0LnB5IGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5jX2dldC5w eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjA1ZmUw Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5jX2dldC5weQpAQCAtMCwwICsxLDYx IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAt IFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0g MjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNv ZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2Vu Y2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20gcmVncmVz c2lvbi5jb25maWcgaW1wb3J0IGNvbmZpZ19kYXRhCitmcm9tIHBnYWRtaW4u YnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2luIGltcG9ydCBMb2dpblRlc3RDYXNl Citmcm9tIHJlZ3Jlc3Npb24udGVzdF91dGlscyBpbXBvcnQgZ2V0X2lkcwor ZnJvbSByZWdyZXNzaW9uLnRlc3Rfbm9kZXMgaW1wb3J0IHRlc3RfZ2V0bm9k ZXMKK2ltcG9ydCBqc29uCisKKworY2xhc3MgVHJpZ2dlckZ1bmNHZXRUZXN0 Q2FzZShMb2dpblRlc3RDYXNlKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxs IGZldGNoIGFkZGVkIHRyaWdnZXIgZnVuY3Rpb24gdW5kZXIgc2NoZW1hIG5v ZGUuICIiIgorCisgICAgcHJpb3JpdHkgPSAzNworCisgICAgc2NlbmFyaW9z ID0gWworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciB0cmln Z2VyIGZ1bmN0aW9uIG5vZGUuCisgICAgICAgICgnRmV0Y2ggVHJpZ2dlciBG dW5jdGlvbiBOb2RlIFVSTCcsCisgICAgICAgICBkaWN0KHVybD0nL2Jyb3dz ZXIvdHJpZ2dlcl9mdW5jdGlvbi9vYmovJykpCisgICAgXQorCisgICAgZGVm IHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdp bGwgZmV0Y2ggdHJpZ2dlciBmdW5jdGlvbiB1bmRlciBkYXRhYmFzZSBub2Rl LiAiIiIKKworICAgICAgICBhbGxfaWQgPSBnZXRfaWRzKCkKKworICAgICAg ICBzZXJ2ZXJfaWQgPSBhbGxfaWRbInNpZCJdWzBdCisgICAgICAgIGRiX2lk ID0gYWxsX2lkWyJkaWQiXVswXQorICAgICAgICBzY2hlbWFfaWQgPSBhbGxf aWRbInNjaWQiXVswXQorICAgICAgICB0cmdfZnVuY19faWQgPSBhbGxfaWRb InRmbmlkIl1bMF0KKyAgICAgICAgc3J2X2dycCA9IGNvbmZpZ19kYXRhWyd0 ZXN0X3NlcnZlcl9ncm91cCddCisKKyAgICAgICAgZGJfY29uID0gdGVzdF9n ZXRub2Rlcyhub2RlPXNlbGYpCisKKyAgICAgICAgaWYgZGJfY29uWydkYXRh J11bImNvbm5lY3RlZCJdOgorCisgICAgICAgICAgICAjIEdldCBzY2hlbWEg aWQKKyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KCcv YnJvd3Nlci9zY2hlbWEvb2JqLycKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICd7MH0vezF9L3syfS97M30nLmZvcm1hdAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNydl9ncnAs IHNlcnZlcl9pZCwgZGJfaWQsIHNjaGVtYV9pZCksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwv anNvbicpCisKKyAgICAgICAgICAgIHJlc3BkYXRhID0ganNvbi5sb2Fkcyhy ZXNwb25zZS5kYXRhLmRlY29kZSgpKQorCisgICAgICAgICAgICBpZiBsZW4o cmVzcGRhdGEpICE9IDA6CisKKyAgICAgICAgICAgICAgICBnZXRfcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5nZXQoc2VsZi51cmwgKyBzdHIoc3J2X2dycCkg KyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHIoc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihkYl9p ZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHIoc2NoZW1hX2lkKSArICcvJyArCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cih0 cmdfZnVuY19faWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisK KyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5z dGF0dXNfY29kZSwgMjAwKQorCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfcHV0LnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9m dW5jX3B1dC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li42MTlmNGVhCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5jX3B1dC5weQpAQCAt MCwwICsxLDgwIEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBn QWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChD KSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQor IyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3Jl U1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zy b20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0IGNvbmZpZ19kYXRhCitmcm9t IHBnYWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2luIGltcG9ydCBMb2dp blRlc3RDYXNlCitmcm9tIHJlZ3Jlc3Npb24udGVzdF91dGlscyBpbXBvcnQg Z2V0X2lkcworZnJvbSByZWdyZXNzaW9uLnRlc3Rfbm9kZXMgaW1wb3J0IHRl c3RfZ2V0bm9kZXMKK2ltcG9ydCBqc29uCisKKworY2xhc3MgVHJpZ2dlckZ1 bmNQdXRUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToKKyAgICAiIiIgVGhpcyBj bGFzcyB3aWxsIHVwZGF0ZSBuZXcgdHJpZ2dlciBmdW5jdGlvbiB1bmRlciBz Y2hlbWEgbm9kZS4gIiIiCisKKyAgICBwcmlvcml0eSA9IDM4CisKKyAgICBz Y2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwg Zm9yIHRyaWdnZXIgZnVuY3Rpb24gbm9kZS4KKyAgICAgICAgKCdGZWN0aCBU cmlnZ2VyIEZ1bmN0aW9uIE5vZGUgVVJMJywKKyAgICAgICAgIGRpY3QodXJs PScvYnJvd3Nlci90cmlnZ2VyX2Z1bmN0aW9uL29iai8nKSkKKyAgICBdCisK KyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVu Y3Rpb24gd2lsbCB1cGRhdGUgdHJpZ2dlciBmdW5jdGlvbiB1bmRlciBkYXRh YmFzZSBub2RlLiAiIiIKKworICAgICAgICBhbGxfaWQgPSBnZXRfaWRzKCkK KworICAgICAgICBzZXJ2ZXJfaWQgPSBhbGxfaWRbInNpZCJdWzBdCisgICAg ICAgIGRiX2lkID0gYWxsX2lkWyJkaWQiXVswXQorICAgICAgICBzY2hlbWFf aWQgPSBhbGxfaWRbInNjaWQiXVswXQorICAgICAgICB0cmdfZnVuY19faWQg PSBhbGxfaWRbInRmbmlkIl1bMF0KKyAgICAgICAgc3J2X2dycCA9IGNvbmZp Z19kYXRhWyd0ZXN0X3NlcnZlcl9ncm91cCddCisKKyAgICAgICAgZGJfY29u ID0gdGVzdF9nZXRub2Rlcyhub2RlPXNlbGYpCisKKyAgICAgICAgaWYgZGJf Y29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorCisgICAgICAgICAgICAjIEdl dCBzY2hlbWEgaWQKKyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0 ZXIuZ2V0KCcvYnJvd3Nlci9zY2hlbWEvb2JqLycKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICd7MH0vezF9L3syfS97M30nLmZv cm1hdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHNydl9ncnAsIHNlcnZlcl9pZCwgZGJfaWQsIHNjaGVtYV9pZCksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5 cGU9J2h0bWwvanNvbicpCisKKyAgICAgICAgICAgIHJlc3BkYXRhID0ganNv bi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgpKQorCisgICAgICAgICAg ICBpZiBsZW4ocmVzcGRhdGEpICE9IDA6CisgICAgICAgICAgICAgICAgZ2V0 X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYudXJsICsgc3RyKHNy dl9ncnApICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHIoZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RyKHNjaGVtYV9pZCkgKyAnLycgKwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHIodHJnX2Z1bmNfX2lkKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pz b24nKQorCisgICAgICAgICAgICAgICAgcmVzcGRhdGEgPSBqc29uLmxvYWRz KGdldF9yZXNwb25zZS5kYXRhLmRlY29kZSgpKQorCisgICAgICAgICAgICAg ICAgaWYgbGVuKHJlc3BkYXRhKSA9PSAwOgorICAgICAgICAgICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIk5vIHRyaWdnZXIgZnVuY3Rpb24ocykgdG8g dXBkYXRlLiIpCisKKyAgICAgICAgICAgICAgICBkYXRhID0gXAorICAgICAg ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAiZGVz Y3JpcHRpb24iOiBjb25maWdfZGF0YQorICAgICAgICAgICAgICAgICAgICAg ICAgWyd0ZXN0X3RyaWdnZXJfZnVuY191cGRhdGVfZGF0YSddWyd0ZXN0X2Nv bW1lbnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJpZCI6IHRyZ19m dW5jX19pZAorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg ICAgICBwdXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoc2VsZi51cmwg KyBzdHIoc3J2X2dycCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VydmVyX2lkKSArICcv JyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cihkYl9pZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2NoZW1hX2lkKSAr ICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cih0cmdfZnVuY19faWQpLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWpzb24uZHVt cHMoZGF0YSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKworICAgICAg ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHB1dF9yZXNwb25zZS5zdGF0 dXNfY29kZSwgMjAwKQorCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9z ZXF1ZW5jZXMvdGVzdHMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9z ZXF1ZW5jZXMvdGVzdHMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uZmYxMWUzZQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3NlcXVlbmNlcy90ZXN0cy9fX2luaXRfXy5weQpA QCAtMCwwICsxLDE2IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENv cHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3Bt ZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0 aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0 IEJhc2VUZXN0R2VuZXJhdG9yCisKKworY2xhc3MgU2VxdWVuY2VUZXN0R2Vu ZXJhdG9yKEJhc2VUZXN0R2VuZXJhdG9yKToKKworICAgZGVmIGdlbmVyYXRl X3Rlc3RzKHNlbGYpOgorICAgICAgIHJldHVybiBbXQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvc2VxdWVuY2VzL3Rlc3RzL3Rlc3Rfc2VxdWVuY2Vf YWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvc2VxdWVuY2VzL3Rlc3RzL3Rlc3Rf c2VxdWVuY2VfYWRkLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmI4MzM5NzIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9zZXF1ZW5jZXMvdGVzdHMvdGVzdF9zZXF1ZW5jZV9hZGQucHkKQEAg LTAsMCArMSw5NCBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBw Z0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAo QykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0K KyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdy ZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitm cm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25maWdfZGF0YSwgcGlj a2xlX3BhdGgKK2Zyb20gcGdhZG1pbi5icm93c2VyLnRlc3RzLnRlc3RfbG9n aW4gaW1wb3J0IExvZ2luVGVzdENhc2UKK2Zyb20gcmVncmVzc2lvbi50ZXN0 X3V0aWxzIGltcG9ydCBnZXRfaWRzCitmcm9tIHJlZ3Jlc3Npb24udGVzdF9u b2RlcyBpbXBvcnQgdGVzdF9nZXRub2RlcworaW1wb3J0IGpzb24KK2ltcG9y dCBwaWNrbGUKK2ltcG9ydCBvcworCisKK2NsYXNzIFNlcXVlbmNlQWRkVGVz dENhc2UoTG9naW5UZXN0Q2FzZSk6CisgICAgIiIiIFRoaXMgY2xhc3Mgd2ls bCBhZGQgbmV3IGNvbGxhdGlvbiB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCisK KyAgICBwcmlvcml0eSA9IDU2CisKKyAgICBzY2VuYXJpb3MgPSBbCisgICAg ICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHNlcXVlbmNlIG5vZGUu CisgICAgICAgICgnRmV0Y2ggc2VxdWVuY2UgTm9kZSBVUkwnLCBkaWN0KHVy bD0nL2Jyb3dzZXIvc2VxdWVuY2Uvb2JqLycpKQorICAgIF0KKworICAgIGRl ZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3 aWxsIGFkZCBzZXF1ZW5jZSB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCisKKyAg ICAgICAgYWxsX2lkID0gZ2V0X2lkcygpCisKKyAgICAgICAgc2VydmVyX2lk ID0gYWxsX2lkWyJzaWQiXVswXQorICAgICAgICBkYl9pZCA9IGFsbF9pZFsi ZGlkIl1bMF0KKyAgICAgICAgc2NoZW1hX2lkID0gYWxsX2lkWyJzY2lkIl1b MF0KKyAgICAgICAgc3J2X2dycCA9IGNvbmZpZ19kYXRhWyd0ZXN0X3NlcnZl cl9ncm91cCddCisKKyAgICAgICAgZGJfY29uID0gdGVzdF9nZXRub2Rlcyhu b2RlPXNlbGYpCisKKyAgICAgICAgaWYgZGJfY29uWydkYXRhJ11bImNvbm5l Y3RlZCJdOgorCisgICAgICAgICAgICAjIEdldCBzY2hlbWEgaWQKKyAgICAg ICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KCcvYnJvd3Nlci9z Y2hlbWEvb2JqLycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICd7MH0vezF9L3syfS97M30nLmZvcm1hdAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNydl9ncnAsIHNlcnZlcl9p ZCwgZGJfaWQsIHNjaGVtYV9pZCksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisK KyAgICAgICAgICAgIGRhdGEgPSBcCisgICAgICAgICAgICAgICAgeworICAg ICAgICAgICAgICAgICAgICAiY2FjaGUiOiBjb25maWdfZGF0YVsndGVzdF9z ZXF1ZW5jZV9jcmVkZW50aWFscyddCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgWyd0ZXN0X2NhY2hlJ10sCisgICAgICAgICAg ICAgICAgICAgICJjeWNsZWQiOiBjb25maWdfZGF0YVsndGVzdF9zZXF1ZW5j ZV9jcmVkZW50aWFscyddCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFsndGVzdF9jeWNsZWQnXSwKKyAgICAgICAgICAgICAg ICAgICAgImluY3JlbWVudCI6IGNvbmZpZ19kYXRhWyd0ZXN0X3NlcXVlbmNl X2NyZWRlbnRpYWxzJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgWyd0ZXN0X2luY3JlbWVudCddLAorICAgICAgICAg ICAgICAgICAgICAibWF4aW11bSI6IGNvbmZpZ19kYXRhWyd0ZXN0X3NlcXVl bmNlX2NyZWRlbnRpYWxzJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFsndGVzdF9tYXhfdmFsdWUnXSwKKyAgICAgICAg ICAgICAgICAgICAgIm1pbmltdW0iOiBjb25maWdfZGF0YVsndGVzdF9zZXF1 ZW5jZV9jcmVkZW50aWFscyddCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBbJ3Rlc3RfbWluX3ZhbHVlJ10sCisgICAgICAg ICAgICAgICAgICAgICJuYW1lIjogY29uZmlnX2RhdGFbJ3Rlc3Rfc2VxdWVu Y2VfY3JlZGVudGlhbHMnXQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgWyd0ZXN0X25hbWUnXSwKKyAgICAgICAgICAgICAgICAg ICAgInJlbGFjbCI6IGNvbmZpZ19kYXRhWyd0ZXN0X3NlcXVlbmNlX2NyZWRl bnRpYWxzJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgWyd0ZXN0X2FjbCddLAorICAgICAgICAgICAgICAgICAgICAic2No ZW1hIjogY29uZmlnX2RhdGFbJ3Rlc3Rfc2VxdWVuY2VfY3JlZGVudGlhbHMn XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb J3Rlc3Rfc2NoZW1hX25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgInNl Y3VyaXRpZXMiOiBjb25maWdfZGF0YVsndGVzdF9zZXF1ZW5jZV9jcmVkZW50 aWFscyddCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBbJ3Rlc3Rfc2VjdXJpdHknXSwKKyAgICAgICAgICAgICAgICAg ICAgInNlcW93bmVyIjogY29uZmlnX2RhdGFbJ3Rlc3Rfc2VxdWVuY2VfY3Jl ZGVudGlhbHMnXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFsndGVzdF9vd25lciddLAorICAgICAgICAgICAgICAgICAg ICAic3RhcnQiOiBjb25maWdfZGF0YVsndGVzdF9zZXF1ZW5jZV9jcmVkZW50 aWFscyddCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgWyd0ZXN0X3N0YXJ0X3ZhbCddCisgICAgICAgICAgICAgICAgfQorCisg ICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3Qoc2VsZi51 cmwgKyBzdHIoc3J2X2dycCkgKyAnLycgKworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsg c3RyKGRiX2lkKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJy8nICsgc3RyKHNjaGVtYV9pZCkgKyAnLycsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1qc29uLmR1 bXBzKGRhdGEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAgICAgICAg ICAgcmVzcGRhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2Rl KCkpCisKKyAgICAgICAgICAgIHNlcXVlbmNlX2lkID0gcmVzcGRhdGFbJ25v ZGUnXVsnX2lkJ10KKworICAgICAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUo cGlja2xlX3BhdGgpOgorICAgICAgICAgICAgICAgIGV4c3Rfc2VydmVyX2lk ID0gb3BlbihwaWNrbGVfcGF0aCwgJ3JiJykKKyAgICAgICAgICAgICAgICBh bGxfaWQgPSBwaWNrbGUubG9hZChleHN0X3NlcnZlcl9pZCkKKyAgICAgICAg ICAgICAgICBwaWNrbGVfaWRfZGljdCA9IGFsbF9pZAorCisgICAgICAgICAg ICBwaWNrbGVfaWRfZGljdFsic2VpZCJdLmFwcGVuZChzZXF1ZW5jZV9pZCkK KworICAgICAgICAgICAgc2VxdWVuY2Vfb3V0cHV0ID0gb3BlbihwaWNrbGVf cGF0aCwgJ3diJykKKyAgICAgICAgICAgIHBpY2tsZS5kdW1wKHBpY2tsZV9p ZF9kaWN0LCBzZXF1ZW5jZV9vdXRwdXQpCisgICAgICAgICAgICBzZXF1ZW5j ZV9vdXRwdXQuY2xvc2UoKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3NlcXVlbmNlcy90ZXN0cy90 ZXN0X3NlcXVlbmNlX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3NlcXVl bmNlcy90ZXN0cy90ZXN0X3NlcXVlbmNlX2RlbGV0ZS5weQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjk1MmU0Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvc2VxdWVuY2VzL3Rlc3RzL3Rlc3Rf c2VxdWVuY2VfZGVsZXRlLnB5CkBAIC0wLDAgKzEsNzMgQEAKKyMgIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBU b29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdB ZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVs ZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyAjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKworZnJvbSByZWdyZXNzaW9uLmNvbmZpZyBp bXBvcnQgY29uZmlnX2RhdGEKK2Zyb20gcGdhZG1pbi5icm93c2VyLnRlc3Rz LnRlc3RfbG9naW4gaW1wb3J0IExvZ2luVGVzdENhc2UKK2Zyb20gcmVncmVz c2lvbi50ZXN0X3V0aWxzIGltcG9ydCBnZXRfaWRzCitmcm9tIHJlZ3Jlc3Np b24udGVzdF9ub2RlcyBpbXBvcnQgdGVzdF9nZXRub2RlcworaW1wb3J0IGpz b24KKworCitjbGFzcyBTZXF1ZW5jZURlbGV0ZVRlc3RDYXNlKExvZ2luVGVz dENhc2UpOgorICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgZGVsZXRlIGFkZGVk IHNlcXVlbmNlIG5vZGUgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorCisgICAg cHJpb3JpdHkgPSA1OQorCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAj IEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBzZXF1ZW5jZSBub2RlLgorICAg ICAgICAoJ0ZlY3RoIHNlcXVlbmNlIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9i cm93c2VyL3NlcXVlbmNlL29iai8nKSkKKyAgICBdCisKKyAgICBkZWYgcnVu VGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBk ZWxldGUgYWRkZWQgc2VxdWVuY2UgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgor CisgICAgICAgIGFsbF9pZCA9IGdldF9pZHMoKQorCisgICAgICAgIHNlcnZl cl9pZCA9IGFsbF9pZFsic2lkIl1bMF0KKyAgICAgICAgZGJfaWQgPSBhbGxf aWRbImRpZCJdWzBdCisgICAgICAgIHNjaGVtYV9pZCA9IGFsbF9pZFsic2Np ZCJdWzBdCisgICAgICAgIHNlcXVlbmNlX2lkID0gYWxsX2lkWyJzZWlkIl1b MF0KKyAgICAgICAgc3J2X2dycCA9IGNvbmZpZ19kYXRhWyd0ZXN0X3NlcnZl cl9ncm91cCddCisKKyAgICAgICAgZGJfY29uID0gdGVzdF9nZXRub2Rlcyhu b2RlPXNlbGYpCisKKyAgICAgICAgaWYgZGJfY29uWydkYXRhJ11bImNvbm5l Y3RlZCJdOgorCisgICAgICAgICAgICAjIEZldGNoIGFkZGVkIHNjaGVtYSBu b2RlLgorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQo Jy9icm93c2VyL3NjaGVtYS9vYmovJworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJ3swfS97MX0vezJ9L3szfScuZm9ybWF0Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3J2X2dy cCwgc2VydmVyX2lkLCBkYl9pZCwgc2NoZW1hX2lkKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRt bC9qc29uJykKKworICAgICAgICAgICAgcmVzcGRhdGEgPSBqc29uLmxvYWRz KHJlc3BvbnNlLmRhdGEuZGVjb2RlKCkpCisKKyAgICAgICAgICAgIGlmIGxl bihyZXNwZGF0YSkgIT0gMDoKKworICAgICAgICAgICAgICAgIGdldF9yZXNw b25zZSA9IHNlbGYudGVzdGVyLmdldChzZWxmLnVybCArIHN0cihzcnZfZ3Jw KSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKGRi X2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cihzY2hlbWFfaWQpICsgJy8nICsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry KHNlcXVlbmNlX2lkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQor CisgICAgICAgICAgICAgICAgZ2V0X3Jlc3BkYXRhID0ganNvbi5sb2Fkcyhn ZXRfcmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKworICAgICAgICAgICAgICAg IGlmIGxlbihnZXRfcmVzcGRhdGEpID09IDA6CisgICAgICAgICAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8gc2VxdWVuY2Ugbm9kZSB0byBkZWxl dGUuIikKKworICAgICAgICAgICAgICAgIGRlbF9yZXNwb25zZSA9IHNlbGYu dGVzdGVyLmRlbGV0ZShzZWxmLnVybCArIHN0cihzcnZfZ3JwKSArCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICcvJyArIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKGRiX2lk KSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cihzY2hlbWFfaWQpICsgJy8nICsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RyKHNlcXVlbmNlX2lkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVl KQorCisgICAgICAgICAgICAgICAgZGVsX3Jlc3BkYXRhID0ganNvbi5sb2Fk cyhkZWxfcmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKworICAgICAgICAgICAg ICAgIHNlbGYuYXNzZXJ0VHJ1ZShkZWxfcmVzcGRhdGFbJ3N1Y2Nlc3MnXSwg MSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3NlcXVlbmNlcy90ZXN0 cy90ZXN0X3NlcXVlbmNlX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3NlcXVl bmNlcy90ZXN0cy90ZXN0X3NlcXVlbmNlX2dldC5weQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5mM2I2ZjEwCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvc2VxdWVuY2VzL3Rlc3RzL3Rlc3Rfc2Vx dWVuY2VfZ2V0LnB5CkBAIC0wLDAgKzEsNTkgQEAKKyMgIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwor IworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBE ZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQg dW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKKworZnJvbSByZWdyZXNzaW9uLmNvbmZpZyBpbXBvcnQg Y29uZmlnX2RhdGEKK2Zyb20gcGdhZG1pbi5icm93c2VyLnRlc3RzLnRlc3Rf bG9naW4gaW1wb3J0IExvZ2luVGVzdENhc2UKK2Zyb20gcmVncmVzc2lvbi50 ZXN0X3V0aWxzIGltcG9ydCBnZXRfaWRzCitmcm9tIHJlZ3Jlc3Npb24udGVz dF9ub2RlcyBpbXBvcnQgdGVzdF9nZXRub2RlcworaW1wb3J0IGpzb24KKwor CitjbGFzcyBTZXF1ZW5jZUdldFRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgor ICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgYWRkIG5ldyBjb2xsYXRpb24gdW5k ZXIgc2NoZW1hIG5vZGUuICIiIgorCisgICAgcHJpb3JpdHkgPSA1NworCisg ICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQg VVJMIGZvciBzZXF1ZW5jZSBub2RlLgorICAgICAgICAoJ0ZldGNoIHNlcXVl bmNlIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL3NlcXVlbmNlL29i ai8nKSkKKyAgICBdCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAg ICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCBhZGRlZCBzZXF1ZW5j ZSB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCisKKyAgICAgICAgYWxsX2lkID0g Z2V0X2lkcygpCisKKyAgICAgICAgc2VydmVyX2lkID0gYWxsX2lkWyJzaWQi XVswXQorICAgICAgICBkYl9pZCA9IGFsbF9pZFsiZGlkIl1bMF0KKyAgICAg ICAgc2NoZW1hX2lkID0gYWxsX2lkWyJzY2lkIl1bMF0KKyAgICAgICAgc2Vx dWVuY2VfaWQgPSBhbGxfaWRbInNlaWQiXVswXQorICAgICAgICBzcnZfZ3Jw ID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKworICAgICAg ICBkYl9jb24gPSB0ZXN0X2dldG5vZGVzKG5vZGU9c2VsZikKKworICAgICAg ICBpZiBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisKKyAgICAgICAg ICAgICMgRmV0Y2ggYWRkZWQgc2NoZW1hIG5vZGUuCisgICAgICAgICAgICBy ZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgnL2Jyb3dzZXIvc2NoZW1hL29i ai8nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn ezB9L3sxfS97Mn0vezN9Jy5mb3JtYXQKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChzcnZfZ3JwLCBzZXJ2ZXJfaWQsIGRiX2lk LCBzY2hlbWFfaWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAgICAg ICAgICByZXNwZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNv ZGUoKSkKKworICAgICAgICAgICAgaWYgbGVuKHJlc3BkYXRhKSAhPSAwOgor CisgICAgICAgICAgICAgICAgZ2V0X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIu Z2V0KHNlbGYudXJsICsgc3RyKHNydl9ncnApICsgJy8nICsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNl cnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHIoZGJfaWQpICsgJy8nICsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry KHNjaGVtYV9pZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VxdWVuY2VfaWQpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKyAgICAgICAgICAgICAgICBz ZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3NlcXVlbmNlcy90ZXN0cy90ZXN0X3NlcXVlbmNlX3B1dC5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3NlcXVlbmNlcy90ZXN0cy90ZXN0X3NlcXVl bmNlX3B1dC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li4wMzUzMTVmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv c2VxdWVuY2VzL3Rlc3RzL3Rlc3Rfc2VxdWVuY2VfcHV0LnB5CkBAIC0wLDAg KzEsODAgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1p biA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIw MTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRo aXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwg TGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZnJvbSBy ZWdyZXNzaW9uLmNvbmZpZyBpbXBvcnQgY29uZmlnX2RhdGEKK2Zyb20gcGdh ZG1pbi5icm93c2VyLnRlc3RzLnRlc3RfbG9naW4gaW1wb3J0IExvZ2luVGVz dENhc2UKK2Zyb20gcmVncmVzc2lvbi50ZXN0X3V0aWxzIGltcG9ydCBnZXRf aWRzCitmcm9tIHJlZ3Jlc3Npb24udGVzdF9ub2RlcyBpbXBvcnQgdGVzdF9n ZXRub2RlcworaW1wb3J0IGpzb24KKworCitjbGFzcyBTZXF1ZW5jZVVwZGF0 ZVRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgorICAgICIiIiBUaGlzIGNsYXNz IHdpbGwgdXBkYXRlIG5ldyBzZXF1ZW5jZSBub2RlIHVuZGVyIHNjaGVtYSBu b2RlLiAiIiIKKworICAgIHByaW9yaXR5ID0gNTgKKworICAgIHNjZW5hcmlv cyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3Igc2Vx dWVuY2Ugbm9kZS4KKyAgICAgICAgKCdGZXRjaCBzZXF1ZW5jZSBOb2RlIFVS TCcsIGRpY3QodXJsPScvYnJvd3Nlci9zZXF1ZW5jZS9vYmovJykpCisgICAg XQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlz IGZ1bmN0aW9uIHdpbGwgdXBkYXRlIGFkZGVkIHNlcXVlbmNlIHVuZGVyIHNj aGVtYSBub2RlLiAiIiIKKworICAgICAgICBhbGxfaWQgPSBnZXRfaWRzKCkK KworICAgICAgICBzZXJ2ZXJfaWQgPSBhbGxfaWRbInNpZCJdWzBdCisgICAg ICAgIGRiX2lkID0gYWxsX2lkWyJkaWQiXVswXQorICAgICAgICBzY2hlbWFf aWQgPSBhbGxfaWRbInNjaWQiXVswXQorICAgICAgICBzZXF1ZW5jZV9pZCA9 IGFsbF9pZFsic2VpZCJdWzBdCisgICAgICAgIHNydl9ncnAgPSBjb25maWdf ZGF0YVsndGVzdF9zZXJ2ZXJfZ3JvdXAnXQorCisgICAgICAgIGRiX2NvbiA9 IHRlc3RfZ2V0bm9kZXMobm9kZT1zZWxmKQorCisgICAgICAgIGlmIGRiX2Nv blsnZGF0YSddWyJjb25uZWN0ZWQiXToKKworICAgICAgICAgICAgIyBGZXRj aCBhZGRlZCBzY2hlbWEgbm9kZS4KKyAgICAgICAgICAgIHJlc3BvbnNlID0g c2VsZi50ZXN0ZXIuZ2V0KCcvYnJvd3Nlci9zY2hlbWEvb2JqLycKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd7MH0vezF9L3sy fS97M30nLmZvcm1hdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKHNydl9ncnAsIHNlcnZlcl9pZCwgZGJfaWQsIHNjaGVtYV9p ZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKyAgICAgICAgICAgIHJlc3Bk YXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgpKQorCisg ICAgICAgICAgICBpZiBsZW4ocmVzcGRhdGEpICE9IDA6CisKKyAgICAgICAg ICAgICAgICBnZXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoc2VsZi51 cmwgKyBzdHIoc3J2X2dycCkgKyAnLycgKworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VydmVyX2lkKSAr ICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cihkYl9pZCkgKyAnLycgKworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2NoZW1hX2lk KSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cihzZXF1ZW5jZV9pZCksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlw ZT0naHRtbC9qc29uJykKKworICAgICAgICAgICAgICAgIGdldF9yZXNwZGF0 YSA9IGpzb24ubG9hZHMoZ2V0X3Jlc3BvbnNlLmRhdGEuZGVjb2RlKCkpCisK KyAgICAgICAgICAgICAgICBpZiBsZW4oZ2V0X3Jlc3BkYXRhKSA9PSAwOgor ICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5vIHNlcXVl bmNlIG5vZGUgdG8gdXBkYXRlLiIpCisKKyAgICAgICAgICAgICAgICBkYXRh ID1cCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg ICAgICAgICJjb21tZW50IjogY29uZmlnX2RhdGFbJ3Rlc3Rfc2VxdW5jZV91 cGRhdGVfZGF0YSddCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgWyd0ZXN0X2NvbW1lbnQnXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICJpZCI6IHNlcXVlbmNlX2lkCisgICAgICAgICAgICAg ICAgICAgIH0KKworICAgICAgICAgICAgICAgIHB1dF9yZXNwb25zZSA9IHNl bGYudGVzdGVyLnB1dChzZWxmLnVybCArIHN0cihzcnZfZ3JwKSArICcvJyAr CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKGRiX2lkKSArICcv JyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cihzY2hlbWFfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcXVlbmNl X2lkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVk aXJlY3RzPVRydWUpCisKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVx dWFscyhwdXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL19faW5pdF9fLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL19faW5pdF9fLnB5Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0NTBlZGIKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMv X19pbml0X18ucHkKQEAgLTAsMCArMSwxNiBAQAorIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBU b29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdB ZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVs ZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZnJvbSBwZ2FkbWluLnV0aWxz LnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorCisKK2NsYXNzIFRh YmxlVGVzdEdlbmVyYXRvcihCYXNlVGVzdEdlbmVyYXRvcik6CisKKyAgIGRl ZiBnZW5lcmF0ZV90ZXN0cyhzZWxmKToKKyAgICAgICByZXR1cm4gW10KZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3Rh YmxlX2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0 X3RhYmxlX2FkZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi40MjAxMWMyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVfYWRkLnB5CkBAIC0wLDAgKzEs MTEzIEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4g NCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEz IC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlz IHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExp Y2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20gcmVn cmVzc2lvbi5jb25maWcgaW1wb3J0IGNvbmZpZ19kYXRhLCBwaWNrbGVfcGF0 aAorZnJvbSBwZ2FkbWluLmJyb3dzZXIudGVzdHMudGVzdF9sb2dpbiBpbXBv cnQgTG9naW5UZXN0Q2FzZQorZnJvbSByZWdyZXNzaW9uLnRlc3RfdXRpbHMg aW1wb3J0IGdldF9pZHMKK2Zyb20gcmVncmVzc2lvbi50ZXN0X25vZGVzIGlt cG9ydCB0ZXN0X2dldG5vZGVzCitpbXBvcnQganNvbgoraW1wb3J0IHBpY2ts ZQoraW1wb3J0IG9zCisKKworY2xhc3MgVGFibGVBZGRUZXN0Q2FzZShMb2dp blRlc3RDYXNlKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCBuZXcg Y29sbGF0aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKworICAgIHByaW9y aXR5ID0gNjAKKworICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRj aGluZyBkZWZhdWx0IFVSTCBmb3IgdGFibGUgbm9kZS4KKyAgICAgICAgKCdG ZWN0aCB0YWJsZSBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci90YWJs ZS9vYmovJykpCisgICAgXQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6Cisg ICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIHRhYmxlIHVuZGVy IHNjaGVtYSBub2RlLiAiIiIKKworICAgICAgICBhbGxfaWQgPSBnZXRfaWRz KCkKKworICAgICAgICBzZXJ2ZXJfaWQgPSBhbGxfaWRbInNpZCJdWzBdCisg ICAgICAgIGRiX2lkID0gYWxsX2lkWyJkaWQiXVswXQorICAgICAgICBzY2hl bWFfaWQgPSBhbGxfaWRbInNjaWQiXVswXQorICAgICAgICBzcnZfZ3JwID0g Y29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKworICAgICAgICBk Yl9jb24gPSB0ZXN0X2dldG5vZGVzKG5vZGU9c2VsZikKKworICAgICAgICBp ZiBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisKKyAgICAgICAgICAg ICMgRmV0Y2ggYWRkZWQgc2NoZW1hIG5vZGUuCisgICAgICAgICAgICByZXNw b25zZSA9IHNlbGYudGVzdGVyLmdldCgnL2Jyb3dzZXIvc2NoZW1hL29iai8n CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnezB9 L3sxfS97Mn0vezN9Jy5mb3JtYXQKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChzcnZfZ3JwLCBzZXJ2ZXJfaWQsIGRiX2lkLCBz Y2hlbWFfaWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorICAgICAgICAgICAg ZGF0YSA9IFwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg ICAgICJjaGVja19jb25zdHJhaW50IjogY29uZmlnX2RhdGEKKyAgICAgICAg ICAgICAgICAgICAgWyd0ZXN0X3RhYmxlX2NyZWRlbnRpYWxzJ11bJ3Rlc3Rf Y29uc3RyYWludCddLAorICAgICAgICAgICAgICAgICAgICAiY29sbF9pbmhl cml0cyI6IGNvbmZpZ19kYXRhCisgICAgICAgICAgICAgICAgICAgIFsndGVz dF90YWJsZV9jcmVkZW50aWFscyddWyd0ZXN0X2NvbF9pbmhlcml0J10sCisg ICAgICAgICAgICAgICAgICAgICJjb2x1bW5zIjogY29uZmlnX2RhdGEKKyAg ICAgICAgICAgICAgICAgICAgWyd0ZXN0X3RhYmxlX2NyZWRlbnRpYWxzJ11b J3Rlc3RfY29sdW1ucyddLAorICAgICAgICAgICAgICAgICAgICAiZXhjbHVk ZV9jb25zdHJhaW50IjogY29uZmlnX2RhdGEKKyAgICAgICAgICAgICAgICAg ICAgWyd0ZXN0X3RhYmxlX2NyZWRlbnRpYWxzJ11bJ3Rlc3RfaGFzX2NvbnN0 cmFpbnQnXSwKKyAgICAgICAgICAgICAgICAgICAgImZpbGxmYWN0b3IiOiBj b25maWdfZGF0YQorICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfdGFibGVf Y3JlZGVudGlhbHMnXVsndGVzdF9maWxsZmFjdG9yJ10sCisgICAgICAgICAg ICAgICAgICAgICJmb3JlaWduX2tleSI6IGNvbmZpZ19kYXRhCisgICAgICAg ICAgICAgICAgICAgIFsndGVzdF90YWJsZV9jcmVkZW50aWFscyddWyd0ZXN0 X2hhc19GSyddLAorICAgICAgICAgICAgICAgICAgICAiaGFzdG9hc3R0YWJs ZSI6IGNvbmZpZ19kYXRhCisgICAgICAgICAgICAgICAgICAgIFsndGVzdF90 YWJsZV9jcmVkZW50aWFscyddWyd0ZXN0X2hhc190b2FzdF90YmwnXSwKKyAg ICAgICAgICAgICAgICAgICAgImxpa2VfY29uc3RyYWludHMiOiBjb25maWdf ZGF0YQorICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfdGFibGVfY3JlZGVu dGlhbHMnXVsndGVzdF9saWtlX2NvbnN0cmFpbnQnXSwKKyAgICAgICAgICAg ICAgICAgICAgImxpa2VfZGVmYXVsdF92YWx1ZSI6IGNvbmZpZ19kYXRhCisg ICAgICAgICAgICAgICAgICAgIFsndGVzdF90YWJsZV9jcmVkZW50aWFscydd Wyd0ZXN0X2xpa2VfZGVmYXVsdF92YWx1ZSddLAorICAgICAgICAgICAgICAg ICAgICAibGlrZV9yZWxhdGlvbiI6IGNvbmZpZ19kYXRhCisgICAgICAgICAg ICAgICAgICAgIFsndGVzdF90YWJsZV9jcmVkZW50aWFscyddWyd0ZXN0X2xp a2VfcmVsYXRpb24nXSwKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiBj b25maWdfZGF0YQorICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfdGFibGVf Y3JlZGVudGlhbHMnXVsndGVzdF9uYW1lJ10sCisgICAgICAgICAgICAgICAg ICAgICJwcmltYXJ5X2tleSI6IGNvbmZpZ19kYXRhCisgICAgICAgICAgICAg ICAgICAgIFsndGVzdF90YWJsZV9jcmVkZW50aWFscyddWyd0ZXN0X1BLJ10s CisgICAgICAgICAgICAgICAgICAgICJyZWxhY2wiOiBjb25maWdfZGF0YQor ICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfdGFibGVfY3JlZGVudGlhbHMn XVsndGVzdF9hY2wnXSwKKyAgICAgICAgICAgICAgICAgICAgInJlbGhhc29p ZHMiOiBjb25maWdfZGF0YQorICAgICAgICAgICAgICAgICAgICBbJ3Rlc3Rf dGFibGVfY3JlZGVudGlhbHMnXVsndGVzdF9oYXNfb2lkJ10sCisgICAgICAg ICAgICAgICAgICAgICJyZWxvd25lciI6IGNvbmZpZ19kYXRhCisgICAgICAg ICAgICAgICAgICAgIFsndGVzdF90YWJsZV9jcmVkZW50aWFscyddWyd0ZXN0 X293bmVyJ10sCisgICAgICAgICAgICAgICAgICAgICJzY2hlbWEiOiBjb25m aWdfZGF0YQorICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfdGFibGVfY3Jl ZGVudGlhbHMnXVsndGVzdF9zY2hlbWEnXSwKKyAgICAgICAgICAgICAgICAg ICAgInNlY2xhYmVscyI6IGNvbmZpZ19kYXRhCisgICAgICAgICAgICAgICAg ICAgIFsndGVzdF90YWJsZV9jcmVkZW50aWFscyddWyd0ZXN0X3NlY19hY2wn XSwKKyAgICAgICAgICAgICAgICAgICAgInNwY25hbWUiOiBjb25maWdfZGF0 YQorICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfdGFibGVfY3JlZGVudGlh bHMnXVsndGVzdF90YnNjcCddLAorICAgICAgICAgICAgICAgICAgICAidW5p cXVlX2NvbnN0cmFpbnQiOiBjb25maWdfZGF0YQorICAgICAgICAgICAgICAg ICAgICBbJ3Rlc3RfdGFibGVfY3JlZGVudGlhbHMnXVsndGVzdF91bmlxdWVf Y29uc3RyYWludCddLAorICAgICAgICAgICAgICAgICAgICAidmFjdXVtX3Rh YmxlIjogY29uZmlnX2RhdGEKKyAgICAgICAgICAgICAgICAgICAgWyd0ZXN0 X3RhYmxlX2NyZWRlbnRpYWxzJ11bJ3Rlc3RfdmFjdXVtX3RibCddLAorICAg ICAgICAgICAgICAgICAgICAidmFjdXVtX3RvYXN0IjogY29uZmlnX2RhdGEK KyAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X3RhYmxlX2NyZWRlbnRpYWxz J11bJ3Rlc3RfdmFjdXVtX3RvYXN0J10KKyAgICAgICAgICAgICAgICB9CisK KyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdChzZWxm LnVybCArIHN0cihzcnZfZ3JwKSArICcvJyArCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycg KyBzdHIoZGJfaWQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnLycgKyBzdHIoc2NoZW1hX2lkKSArICcvJywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWpzb24u ZHVtcHMoZGF0YSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAgICAg ICAgICByZXNwZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNv ZGUoKSkKKworICAgICAgICAgICAgdGFibGVfaWQgPSByZXNwZGF0YVsnbm9k ZSddWydfaWQnXQorCisgICAgICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShw aWNrbGVfcGF0aCk6CisgICAgICAgICAgICAgICAgZXhzdF9zZXJ2ZXJfaWQg PSBvcGVuKHBpY2tsZV9wYXRoLCAncmInKQorICAgICAgICAgICAgICAgIGFs bF9pZCA9IHBpY2tsZS5sb2FkKGV4c3Rfc2VydmVyX2lkKQorICAgICAgICAg ICAgICAgIHBpY2tsZV9pZF9kaWN0ID0gYWxsX2lkCisKKyAgICAgICAgICAg IHBpY2tsZV9pZF9kaWN0WyJ0aWQiXS5hcHBlbmQodGFibGVfaWQpCisKKyAg ICAgICAgICAgIHRhYmxlX291dHB1dCA9IG9wZW4ocGlja2xlX3BhdGgsICd3 YicpCisgICAgICAgICAgICBwaWNrbGUuZHVtcChwaWNrbGVfaWRfZGljdCwg dGFibGVfb3V0cHV0KQorICAgICAgICAgICAgdGFibGVfb3V0cHV0LmNsb3Nl KCkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZV9kZWxldGUu cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZV9k ZWxldGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NjQ4MTgxNQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy90ZXN0cy90ZXN0X3RhYmxlX2RlbGV0ZS5weQpAQCAtMCwwICsxLDcz IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAt IFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0g MjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNv ZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2Vu Y2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20gcmVncmVz c2lvbi5jb25maWcgaW1wb3J0IGNvbmZpZ19kYXRhCitmcm9tIHBnYWRtaW4u YnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2luIGltcG9ydCBMb2dpblRlc3RDYXNl Citmcm9tIHJlZ3Jlc3Npb24udGVzdF91dGlscyBpbXBvcnQgZ2V0X2lkcwor ZnJvbSByZWdyZXNzaW9uLnRlc3Rfbm9kZXMgaW1wb3J0IHRlc3RfZ2V0bm9k ZXMKK2ltcG9ydCBqc29uCisKKworY2xhc3MgVGFibGVEZWxldGVUZXN0Q2Fz ZShMb2dpblRlc3RDYXNlKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGRl bGV0ZSBuZXcgdGFibGUgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorCisgICAg cHJpb3JpdHkgPSA5NworCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAj IEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciB0YWJsZSBub2RlLgorICAgICAg ICAoJ0ZldGNoIHRhYmxlIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2Vy L3RhYmxlL29iai8nKSkKKyAgICBdCisKKyAgICBkZWYgcnVuVGVzdChzZWxm KToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgYWRk ZWQgdGFibGUgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorCisgICAgICAgIGFs bF9pZCA9IGdldF9pZHMoKQorCisgICAgICAgIHNlcnZlcl9pZCA9IGFsbF9p ZFsic2lkIl1bMF0KKyAgICAgICAgZGJfaWQgPSBhbGxfaWRbImRpZCJdWzBd CisgICAgICAgIHNjaGVtYV9pZCA9IGFsbF9pZFsic2NpZCJdWzBdCisgICAg ICAgIHRhYmxlX2lkID0gYWxsX2lkWyJ0aWQiXVswXQorICAgICAgICBzcnZf Z3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKworICAg ICAgICBkYl9jb24gPSB0ZXN0X2dldG5vZGVzKG5vZGU9c2VsZikKKworICAg ICAgICBpZiBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisKKyAgICAg ICAgICAgICMgRmV0Y2ggYWRkZWQgc2NoZW1hIG5vZGUuCisgICAgICAgICAg ICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgnL2Jyb3dzZXIvc2NoZW1h L29iai8nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnezB9L3sxfS97Mn0vezN9Jy5mb3JtYXQKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChzcnZfZ3JwLCBzZXJ2ZXJfaWQsIGRi X2lkLCBzY2hlbWFfaWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAg ICAgICAgICByZXNwZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5k ZWNvZGUoKSkKKworICAgICAgICAgICAgaWYgbGVuKHJlc3BkYXRhKSAhPSAw OgorCisgICAgICAgICAgICAgICAgZ2V0X3Jlc3BvbnNlID0gc2VsZi50ZXN0 ZXIuZ2V0KHNlbGYudXJsICsgc3RyKHNydl9ncnApICsgJy8nICsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry KHNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHIoZGJfaWQpICsgJy8nICsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RyKHNjaGVtYV9pZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIodGFibGVfaWQpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKyAgICAgICAgICAgICAgICBn ZXRfcmVzcGRhdGEgPSBqc29uLmxvYWRzKGdldF9yZXNwb25zZS5kYXRhLmRl Y29kZSgpKQorCisgICAgICAgICAgICAgICAgaWYgbGVuKGdldF9yZXNwZGF0 YSkgPT0gMDoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJObyB0YWJsZShzKSB0byBkZWxldGUuIikKKworICAgICAgICAgICAgICAg IGRlbF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZShzZWxmLnVybCAr IHN0cihzcnZfZ3JwKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICcvJyArIHN0cihzZXJ2ZXJfaWQpICsg Jy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RyKGRiX2lkKSArICcvJyArCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzY2hl bWFfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RyKHRhYmxlX2lkKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9s bG93X3JlZGlyZWN0cz1UcnVlKQorCisgICAgICAgICAgICAgICAgZGVsX3Jl c3BkYXRhID0ganNvbi5sb2FkcyhkZWxfcmVzcG9uc2UuZGF0YS5kZWNvZGUo KSkKKworICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShkZWxfcmVz cGRhdGFbJ3N1Y2Nlc3MnXSwgMSkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm aWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMv dGVzdF90YWJsZV9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVz dHMvdGVzdF90YWJsZV9nZXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uYTk4YTNkMwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RhYmxlX2dldC5weQpAQCAt MCwwICsxLDU5IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBn QWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChD KSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQor IyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3Jl U1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zy b20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0IGNvbmZpZ19kYXRhCitmcm9t IHBnYWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2luIGltcG9ydCBMb2dp blRlc3RDYXNlCitmcm9tIHJlZ3Jlc3Npb24udGVzdF91dGlscyBpbXBvcnQg Z2V0X2lkcworZnJvbSByZWdyZXNzaW9uLnRlc3Rfbm9kZXMgaW1wb3J0IHRl c3RfZ2V0bm9kZXMKK2ltcG9ydCBqc29uCisKKworY2xhc3MgVGFibGVHZXRU ZXN0Q2FzZShMb2dpblRlc3RDYXNlKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3 aWxsIGFkZCBuZXcgY29sbGF0aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIK KworICAgIHByaW9yaXR5ID0gNjEKKworICAgIHNjZW5hcmlvcyA9IFsKKyAg ICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgdGFibGUgbm9kZS4K KyAgICAgICAgKCdGZWN0aCB0YWJsZSBOb2RlIFVSTCcsIGRpY3QodXJsPScv YnJvd3Nlci90YWJsZS9vYmovJykpCisgICAgXQorCisgICAgZGVmIHJ1blRl c3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0 Y2ggYWRkZWQgdGFibGUgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorCisgICAg ICAgIGFsbF9pZCA9IGdldF9pZHMoKQorCisgICAgICAgIHNlcnZlcl9pZCA9 IGFsbF9pZFsic2lkIl1bMF0KKyAgICAgICAgZGJfaWQgPSBhbGxfaWRbImRp ZCJdWzBdCisgICAgICAgIHNjaGVtYV9pZCA9IGFsbF9pZFsic2NpZCJdWzBd CisgICAgICAgIHRhYmxlX2lkID0gYWxsX2lkWyJ0aWQiXVswXQorICAgICAg ICBzcnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10K KworICAgICAgICBkYl9jb24gPSB0ZXN0X2dldG5vZGVzKG5vZGU9c2VsZikK KworICAgICAgICBpZiBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisK KyAgICAgICAgICAgICMgR2V0IHNjaGVtYSBpZAorICAgICAgICAgICAgcmVz cG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoJy9icm93c2VyL3NjaGVtYS9vYmov JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3sw fS97MX0vezJ9L3szfScuZm9ybWF0CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoc3J2X2dycCwgc2VydmVyX2lkLCBkYl9pZCwg c2NoZW1hX2lkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAgICAgICAg ICAgcmVzcGRhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2Rl KCkpCisKKyAgICAgICAgICAgIGlmIGxlbihyZXNwZGF0YSkgIT0gMDoKKwor ICAgICAgICAgICAgICAgIGdldF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLmdl dChzZWxmLnVybCArIHN0cihzcnZfZ3JwKSArICcvJyArCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZXJ2 ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RyKGRiX2lkKSArICcvJyArCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihz Y2hlbWFfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RyKHRhYmxlX2lkKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVu dF90eXBlPSdodG1sL2pzb24nKQorCisgICAgICAgICAgICAgICAgc2VsZi5h c3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKXCBObyBu ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZV9wdXQucHkgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZV9wdXQucHkKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGNlNDJiYwotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0 X3RhYmxlX3B1dC5weQpAQCAtMCwwICsxLDc5IEBACisjICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMK KyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4g RGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2Vk IHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisKK2Zyb20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0 IGNvbmZpZ19kYXRhCitmcm9tIHBnYWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0 X2xvZ2luIGltcG9ydCBMb2dpblRlc3RDYXNlCitmcm9tIHJlZ3Jlc3Npb24u dGVzdF91dGlscyBpbXBvcnQgZ2V0X2lkcworZnJvbSByZWdyZXNzaW9uLnRl c3Rfbm9kZXMgaW1wb3J0IHRlc3RfZ2V0bm9kZXMKK2ltcG9ydCBqc29uCisK KworY2xhc3MgVGFibGVVcGRhdGVUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToK KyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCBuZXcgY29sbGF0aW9uIHVu ZGVyIHNjaGVtYSBub2RlLiAiIiIKKworICAgIHByaW9yaXR5ID0gNjIKKwor ICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0 IFVSTCBmb3IgdGFibGUgbm9kZS4KKyAgICAgICAgKCdGZWN0aCB0YWJsZSBO b2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci90YWJsZS9vYmovJykpCisg ICAgXQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBU aGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggYWRkZWQgdGFibGUgdW5kZXIgc2No ZW1hIG5vZGUuICIiIgorCisgICAgICAgIGFsbF9pZCA9IGdldF9pZHMoKQor CisgICAgICAgIHNlcnZlcl9pZCA9IGFsbF9pZFsic2lkIl1bMF0KKyAgICAg ICAgZGJfaWQgPSBhbGxfaWRbImRpZCJdWzBdCisgICAgICAgIHNjaGVtYV9p ZCA9IGFsbF9pZFsic2NpZCJdWzBdCisgICAgICAgIHRhYmxlX2lkID0gYWxs X2lkWyJ0aWQiXVswXQorICAgICAgICBzcnZfZ3JwID0gY29uZmlnX2RhdGFb J3Rlc3Rfc2VydmVyX2dyb3VwJ10KKworICAgICAgICBkYl9jb24gPSB0ZXN0 X2dldG5vZGVzKG5vZGU9c2VsZikKKworICAgICAgICBpZiBkYl9jb25bJ2Rh dGEnXVsiY29ubmVjdGVkIl06CisKKyAgICAgICAgICAgICMgRmV0Y2ggYWRk ZWQgc2NoZW1hIG5vZGUuCisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYu dGVzdGVyLmdldCgnL2Jyb3dzZXIvc2NoZW1hL29iai8nCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnezB9L3sxfS97Mn0vezN9 Jy5mb3JtYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChzcnZfZ3JwLCBzZXJ2ZXJfaWQsIGRiX2lkLCBzY2hlbWFfaWQpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVu dF90eXBlPSdodG1sL2pzb24nKQorCisgICAgICAgICAgICByZXNwZGF0YSA9 IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKworICAgICAg ICAgICAgaWYgbGVuKHJlc3BkYXRhKSAhPSAwOgorCisgICAgICAgICAgICAg ICAgZ2V0X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYudXJsICsg c3RyKHNydl9ncnApICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycg KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHIoZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNjaGVtYV9pZCkgKyAn LycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHIodGFibGVfaWQpLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwv anNvbicpCisKKyAgICAgICAgICAgICAgICBnZXRfcmVzcGRhdGEgPSBqc29u LmxvYWRzKGdldF9yZXNwb25zZS5kYXRhLmRlY29kZSgpKQorCisgICAgICAg ICAgICAgICAgaWYgbGVuKGdldF9yZXNwZGF0YSkgPT0gMDoKKyAgICAgICAg ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyB0YWJsZShzKSB0byB1 cGRhdGUuIikKKworICAgICAgICAgICAgICAgIGRhdGEgPVwKKyAgICAgICAg ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgImRlc2Ny aXB0aW9uIjogY29uZmlnX2RhdGFbJ3Rlc3RfdGFibGVfdXBkYXRlX2RhdGEn XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFsndGVzdF9jb21tZW50J10sCisgICAgICAgICAgICAgICAgICAgICAg ICAiaWQiOiB0YWJsZV9pZAorICAgICAgICAgICAgICAgICAgICB9CisKKyAg ICAgICAgICAgICAgICBwdXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQo c2VsZi51cmwgKyBzdHIoc3J2X2dycCkgKyAnLycgKworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VydmVy X2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cihkYl9pZCkgKyAnLycgKworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2No ZW1hX2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cih0YWJsZV9pZCksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9anNv bi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorCisg ICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocHV0X3Jlc3BvbnNl LnN0YXR1c19jb2RlLCAyMDApCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rlc3RzL19f aW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjM0MDNmNGYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 ZXN0cy9fX2luaXRfXy5weQpAQCAtMCwwICsxLDE2IEBACisjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3Jl U1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRo ZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBp cyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHBnYWRtaW4u dXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCisKKworY2xh c3MgU2NoZW1hVGVzdEdlbmVyYXRvcihCYXNlVGVzdEdlbmVyYXRvcik6CisK KyAgIGRlZiBnZW5lcmF0ZV90ZXN0cyhzZWxmKToKKyAgICAgICByZXR1cm4g W10KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rlc3RzL3Rlc3Rfc2No ZW1hX2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rlc3RzL3Rlc3Rfc2NoZW1h X2FkZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5l Y2MwOTUyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVz dHMvdGVzdF9zY2hlbWFfYWRkLnB5CkBAIC0wLDAgKzEsODcgQEAKKyMgIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNR TCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUg cGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMg cmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZnJvbSByZWdyZXNzaW9uLmNvbmZp ZyBpbXBvcnQgY29uZmlnX2RhdGEsIHBpY2tsZV9wYXRoCitmcm9tIHBnYWRt aW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2luIGltcG9ydCBMb2dpblRlc3RD YXNlCitpbXBvcnQganNvbgoraW1wb3J0IHBpY2tsZQoraW1wb3J0IG9zCitm cm9tIHJlZ3Jlc3Npb24udGVzdF91dGlscyBpbXBvcnQgZ2V0X2lkcworZnJv bSByZWdyZXNzaW9uLnRlc3Rfbm9kZXMgaW1wb3J0IHRlc3RfZ2V0bm9kZXMK KworCitjbGFzcyBTY2hlbWFBZGRUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToK KyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCBuZXcgc2NoZW1hIHVuZGVy IGRhdGFiYXNlIG5vZGUuICIiIgorCisgICAgcHJpb3JpdHkgPSAyMworCisg ICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQg VVJMIGZvciBzY2hlbWEgbm9kZS4KKyAgICAgICAgKCdDaGVjayBTY2hlbWEg Tm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvc2NoZW1hL29iai8nKSkK KyAgICBdCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIi IFRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgc2NoZW1hIHVuZGVyIGRhdGFiYXNl IG5vZGUuICIiIgorCisgICAgICAgIGFsbF9pZCA9IGdldF9pZHMoKQorCisg ICAgICAgIHNlcnZlcl9pZCA9IGFsbF9pZFsic2lkIl1bMF0KKyAgICAgICAg ZGJfaWQgPSBhbGxfaWRbImRpZCJdWzBdCisgICAgICAgIHNydl9ncnAgPSBj b25maWdfZGF0YVsndGVzdF9zZXJ2ZXJfZ3JvdXAnXQorCisgICAgICAgIGRi X2NvbiA9IHRlc3RfZ2V0bm9kZXMobm9kZT1zZWxmKQorCisgICAgICAgIGlm IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKworICAgICAgICAgICAg ZGF0YSA9XAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJkZWZm dW5jYWNsIjogY29uZmlnX2RhdGFbJ3Rlc3Rfc2NoZW1hX2NyZWRlbnRpYWxz J10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBbJ3Rlc3RfZnVuY19hY2wnXSwKKyAgICAgICAgICAgICAgICAiZGVm c2VxYWNsIjogY29uZmlnX2RhdGFbJ3Rlc3Rfc2NoZW1hX2NyZWRlbnRpYWxz J10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBbJ3Rlc3Rfc2VxX2FjbCddLAorICAgICAgICAgICAgICAgICJkZWZ0 YmxhY2wiOiBjb25maWdfZGF0YVsndGVzdF9zY2hlbWFfY3JlZGVudGlhbHMn XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFsndGVzdF90YmxfYWNsJ10sCisgICAgICAgICAgICAgICAgImRlZnR5 cGVhY2wiOiBjb25maWdfZGF0YVsndGVzdF9zY2hlbWFfY3JlZGVudGlhbHMn XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFsndGVzdF90eXBlX2FjbCddLAorICAgICAgICAgICAgICAgICJuYW1l IjogY29uZmlnX2RhdGFbJ3Rlc3Rfc2NoZW1hX2NyZWRlbnRpYWxzJ10KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb J3Rlc3RfbmFtZSddLAorICAgICAgICAgICAgICAgICJuYW1lc3BhY2Vvd25l ciI6IGNvbmZpZ19kYXRhWyd0ZXN0X3NjaGVtYV9jcmVkZW50aWFscyddCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Wyd0ZXN0X293bmVyJ10sCisgICAgICAgICAgICAgICAgIm5zcGFjbCI6IGNv bmZpZ19kYXRhWyd0ZXN0X3NjaGVtYV9jcmVkZW50aWFscyddCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0 X3ByaXZpbGVnZSddLAorICAgICAgICAgICAgICAgICJzZWNsYWJlbHMiOiBj b25maWdfZGF0YVsndGVzdF9zY2hlbWFfY3JlZGVudGlhbHMnXQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsndGVz dF9zZWNfbGFiZWwnXQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBy ZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3Qoc2VsZi51cmwgKyBzdHIoc3J2 X2dycCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKGRiX2lkKSAr CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8n LCBkYXRhPWpzb24uZHVtcHMoZGF0YSksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24n KQorCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocmVzcG9uc2Uuc3Rh dHVzX2NvZGUsIDIwMCkKKworICAgICAgICAgICAgcmVzcGRhdGEgPSBqc29u LmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCkpCisKKyAgICAgICAgICAg IHNjaGVtYV9pZCA9IHJlc3BkYXRhWydub2RlJ11bJ19pZCddCisKKyAgICAg ICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKHBpY2tsZV9wYXRoKToKKyAgICAg ICAgICAgICAgICBleHN0X3NlcnZlcl9pZCA9IG9wZW4ocGlja2xlX3BhdGgs ICdyYicpCisgICAgICAgICAgICAgICAgYWxsX2lkID0gcGlja2xlLmxvYWQo ZXhzdF9zZXJ2ZXJfaWQpCisgICAgICAgICAgICAgICAgcGlja2xlX2lkX2Rp Y3QgPSBhbGxfaWQKKworICAgICAgICAgICAgcGlja2xlX2lkX2RpY3RbInNj aWQiXS5hcHBlbmQoc2NoZW1hX2lkKQorCisgICAgICAgICAgICBzY2hlbWFf b3V0cHV0ID0gb3BlbihwaWNrbGVfcGF0aCwgJ3diJykKKyAgICAgICAgICAg IHBpY2tsZS5kdW1wKHBpY2tsZV9pZF9kaWN0LCBzY2hlbWFfb3V0cHV0KQor ICAgICAgICAgICAgc2NoZW1hX291dHB1dC5jbG9zZSgpCisKKworCisKKwpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVzdHMvdGVzdF9zY2hlbWFf ZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVzdHMvdGVzdF9zY2hlbWFf ZGVsZXRlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmUxNjQ5ZGMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 ZXN0cy90ZXN0X3NjaGVtYV9kZWxldGUucHkKQEAgLTAsMCArMSw2MCBAQAor IyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0 Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYs IFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2Fy ZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisj CisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHJlZ3Jlc3Npb24u Y29uZmlnIGltcG9ydCBjb25maWdfZGF0YQorZnJvbSBwZ2FkbWluLmJyb3dz ZXIudGVzdHMudGVzdF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0Q2FzZQorZnJv bSByZWdyZXNzaW9uLnRlc3RfdXRpbHMgaW1wb3J0IGdldF9pZHMKK2Zyb20g cmVncmVzc2lvbi50ZXN0X25vZGVzIGltcG9ydCB0ZXN0X2dldG5vZGVzCitp bXBvcnQganNvbgorCisKK2NsYXNzIFNjaGVtYURlbGV0ZVRlc3RDYXNlKExv Z2luVGVzdENhc2UpOgorICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgYWRkIG5l dyBzY2hlbWEgdW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCisKKyAgICBwcmlv cml0eSA9IDk4CisKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0 Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGV4dGVuc2lvbiBub2RlLgorICAgICAg ICAoJ0NoZWNrIFNjaGVtYSBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nl ci9zY2hlbWEvb2JqLycpKQorICAgIF0KKworICAgIGRlZiBydW5UZXN0KHNl bGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBz Y2hlbWEgdW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCisKKyAgICAgICAgYWxs X2lkID0gZ2V0X2lkcygpCisKKyAgICAgICAgc2VydmVyX2lkID0gYWxsX2lk WyJzaWQiXVswXQorICAgICAgICBkYl9pZCA9IGFsbF9pZFsiZGlkIl1bMF0K KyAgICAgICAgc2NoZW1hX2lkID0gYWxsX2lkWyJzY2lkIl1bMF0KKyAgICAg ICAgc3J2X2dycCA9IGNvbmZpZ19kYXRhWyd0ZXN0X3NlcnZlcl9ncm91cCdd CisKKyAgICAgICAgZGJfY29uID0gdGVzdF9nZXRub2Rlcyhub2RlPXNlbGYp CisKKyAgICAgICAgaWYgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgor CisgICAgICAgICAgICAjIEZldGNoIGFkZGVkIHNjaGVtYSBub2RlLgorICAg ICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoc2VsZi51cmwg KyBzdHIoc3J2X2dycCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIo ZGJfaWQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICcvJyArIHN0cihzY2hlbWFfaWQpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24n KQorCisgICAgICAgICAgICByZXNwZGF0YSA9IGpzb24ubG9hZHMocmVzcG9u c2UuZGF0YS5kZWNvZGUoKSkKKworICAgICAgICAgICAgaWYgbGVuKHJlc3Bk YXRhKSA9PSAwOgorICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Tm8gc2NoZW1hKHMpIHRvIGRlbGV0ZS4iKQorCisgICAgICAgICAgICBkZWxf cmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoc2VsZi51cmwgKyBzdHIo c3J2X2dycCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHIoZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHIoc2NoZW1hX2lkKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3df cmVkaXJlY3RzPVRydWUpCisKKyAgICAgICAgICAgIGRlbF9yZXNwZGF0YSA9 IGpzb24ubG9hZHMoZGVsX3Jlc3BvbnNlLmRhdGEuZGVjb2RlKCkpCisKKyAg ICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShkZWxfcmVzcGRhdGFbJ3N1Y2Nl c3MnXSwgMSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rlc3RzL3Rl c3Rfc2NoZW1hX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rlc3RzL3Rlc3Rf c2NoZW1hX2dldC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5hOGE5YjkzCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGVzdHMvdGVzdF9zY2hlbWFfZ2V0LnB5CkBAIC0wLDAgKzEsNDQgQEAK KyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9z dGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2 LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdh cmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQor IworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZnJvbSByZWdyZXNzaW9u LmNvbmZpZyBpbXBvcnQgY29uZmlnX2RhdGEKK2Zyb20gcGdhZG1pbi5icm93 c2VyLnRlc3RzLnRlc3RfbG9naW4gaW1wb3J0IExvZ2luVGVzdENhc2UKK2Zy b20gcmVncmVzc2lvbi50ZXN0X3V0aWxzIGltcG9ydCBnZXRfaWRzCitmcm9t IHJlZ3Jlc3Npb24udGVzdF9ub2RlcyBpbXBvcnQgdGVzdF9nZXRub2Rlcwor CisKK2NsYXNzIFNjaGVtYUdldFRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgor ICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgYWRkIG5ldyBzY2hlbWEgdW5kZXIg ZGF0YWJhc2Ugbm9kZS4gIiIiCisKKyAgICBwcmlvcml0eSA9IDI0ICMzNAor CisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5nIGRlZmF1 bHQgVVJMIGZvciBleHRlbnNpb24gbm9kZS4KKyAgICAgICAgKCdDaGVjayBT Y2hlbWEgTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvc2NoZW1hL29i ai8nKSkKKyAgICBdCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAg ICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCBzY2hlbWEgdW5kZXIg ZGF0YWJhc2Ugbm9kZS4gIiIiCisKKyAgICAgICAgYWxsX2lkID0gZ2V0X2lk cygpCisKKyAgICAgICAgc2VydmVyX2lkID0gYWxsX2lkWyJzaWQiXVswXQor ICAgICAgICBkYl9pZCA9IGFsbF9pZFsiZGlkIl1bMF0KKyAgICAgICAgc2No ZW1hX2lkID0gYWxsX2lkWyJzY2lkIl1bMF0KKyAgICAgICAgc3J2X2dycCA9 IGNvbmZpZ19kYXRhWyd0ZXN0X3NlcnZlcl9ncm91cCddCisKKyAgICAgICAg ZGJfY29uID0gdGVzdF9nZXRub2Rlcyhub2RlPXNlbGYpCisKKyAgICAgICAg aWYgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAg cmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoc2VsZi51cmwgKyBzdHIoc3J2 X2dycCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJfaWQpICsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvJyAr IHN0cihzY2hlbWFfaWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAg ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29k ZSwgMjAwKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVzdHMvdGVz dF9zY2hlbWFfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVzdHMvdGVzdF9z Y2hlbWFfcHV0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjY3ZTc3OGUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90ZXN0cy90ZXN0X3NjaGVtYV9wdXQucHkKQEAgLTAsMCArMSw3MSBAQAor IyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0 Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYs IFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2Fy ZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisj CisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHJlZ3Jlc3Npb24u Y29uZmlnIGltcG9ydCBjb25maWdfZGF0YQorZnJvbSBwZ2FkbWluLmJyb3dz ZXIudGVzdHMudGVzdF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0Q2FzZQorZnJv bSByZWdyZXNzaW9uLnRlc3RfdXRpbHMgaW1wb3J0IGdldF9pZHMKK2Zyb20g cmVncmVzc2lvbi50ZXN0X25vZGVzIGltcG9ydCB0ZXN0X2dldG5vZGVzCitp bXBvcnQganNvbgorCisKK2NsYXNzIFNjaGVtYVB1dFRlc3RDYXNlKExvZ2lu VGVzdENhc2UpOgorICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgYWRkIG5ldyBz Y2hlbWEgdW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCisKKyAgICBwcmlvcml0 eSA9IDI1CisKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hp bmcgZGVmYXVsdCBVUkwgZm9yIHNjaGVtYSBub2RlLgorICAgICAgICAoJ0No ZWNrIFNjaGVtYSBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9zY2hl bWEvb2JqLycpKQorICAgIF0KKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgor ICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSBzY2hlbWEg dW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCisKKyAgICAgICAgYWxsX2lkID0g Z2V0X2lkcygpCisKKyAgICAgICAgc2VydmVyX2lkID0gYWxsX2lkWyJzaWQi XVswXQorICAgICAgICBkYl9pZCA9IGFsbF9pZFsiZGlkIl1bMF0KKyAgICAg ICAgc2NoZW1hX2lkID0gYWxsX2lkWyJzY2lkIl1bMF0KKyAgICAgICAgc3J2 X2dycCA9IGNvbmZpZ19kYXRhWyd0ZXN0X3NlcnZlcl9ncm91cCddCisKKyAg ICAgICAgZGJfY29uID0gdGVzdF9nZXRub2Rlcyhub2RlPXNlbGYpCisKKyAg ICAgICAgaWYgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorCisgICAg ICAgICAgICAjIEZldGNoIGFkZGVkIHNjaGVtYSBub2RlLgorICAgICAgICAg ICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoc2VsZi51cmwgKyBzdHIo c3J2X2dycCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJfaWQp ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcv JyArIHN0cihzY2hlbWFfaWQpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisg ICAgICAgICAgICByZXNwZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0 YS5kZWNvZGUoKSkKKworICAgICAgICAgICAgaWYgbGVuKHJlc3BkYXRhKSA9 PSAwOgorICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8gc2No ZW1hKHMpIHRvIHVwZGF0ZS4iKQorCisgICAgICAgICAgICBkYXRhID1cCisg ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiZGVmZnVu Y2FjbCI6IGNvbmZpZ19kYXRhWyJ0ZXN0X3NjaGVtYV91cGRhdGVfZGF0YSJd CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBbInRlc3RfZnVuY19hY2wiXSwKKyAgICAgICAgICAgICAgICAgICAgImRl ZnNlcWFjbCI6IGNvbmZpZ19kYXRhWyJ0ZXN0X3NjaGVtYV91cGRhdGVfZGF0 YSJdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFsidGVzdF9zZXFfYWNsIl0sCisgICAgICAgICAgICAgICAgICAgICJk ZWZ0YmxhY2wiOiBjb25maWdfZGF0YVsidGVzdF9zY2hlbWFfdXBkYXRlX2Rh dGEiXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBbInRlc3RfdGJsX2FjbCJdLAorICAgICAgICAgICAgICAgICAgICAi aWQiOiBzY2hlbWFfaWQKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAg ICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dChzZWxmLnVybCAr IHN0cihzcnZfZ3JwKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBz dHIoZGJfaWQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnLycgKyBzdHIoc2NoZW1hX2lkKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWpzb24uZHVt cHMoZGF0YSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorCisgICAgICAgICAg ICBzZWxmLmFzc2VydEVxdWFscyhwdXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUs IDIwMCkKKyAgICAgICAgICAgIHJlc3BkYXRhID0ganNvbi5sb2FkcyhwdXRf cmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKyAgICAgICAgICAgIHNlbGYuYXNz ZXJ0VHJ1ZShyZXNwZGF0YVsnc3VjY2VzcyddLCAxKQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVzdHMvX19pbml0X18ucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZXN0cy9fX2luaXRfXy5weQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzhjMjQ5Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVzdHMvX19pbml0X18u cHkKQEAgLTAsMCArMSwxNiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIwor IyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZl bG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5k ZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGlt cG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorCisKK2NsYXNzIFZpZXdUZXN0R2Vu ZXJhdG9yKEJhc2VUZXN0R2VuZXJhdG9yKToKKworICAgZGVmIGdlbmVyYXRl X3Rlc3RzKHNlbGYpOgorICAgICAgIHJldHVybiBbXQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVzdHMvdGVzdF9tdmlld19hZGQucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZXN0cy90ZXN0X212aWV3X2FkZC5w eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMGNjZGUx Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVz dHMvdGVzdF9tdmlld19hZGQucHkKQEAgLTAsMCArMSw5OSBAQAorIyAjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FM IFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBw Z0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyBy ZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHJlZ3Jlc3Npb24uY29uZmln IGltcG9ydCBjb25maWdfZGF0YSwgcGlja2xlX3BhdGgKK2Zyb20gcGdhZG1p bi5icm93c2VyLnRlc3RzLnRlc3RfbG9naW4gaW1wb3J0IExvZ2luVGVzdENh c2UKK2Zyb20gcmVncmVzc2lvbi50ZXN0X3V0aWxzIGltcG9ydCBnZXRfaWRz Citmcm9tIHJlZ3Jlc3Npb24udGVzdF9ub2RlcyBpbXBvcnQgdGVzdF9nZXRu b2RlcworaW1wb3J0IGpzb24KK2ltcG9ydCBwaWNrbGUKK2ltcG9ydCBvcwor CisKK2NsYXNzIE1WaWV3QWRkVGVzdENhc2UoTG9naW5UZXN0Q2FzZSk6Cisg ICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBhZGQgbmV3IHZpZXcgdW5kZXIgc2No ZW1hIG5vZGUuICIiIgorCisgICAgcHJpb3JpdHkgPSA2NworCisgICAgc2Nl bmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZv ciBtYXRlcmlhbGl6ZWQgdmlldyBub2RlLgorICAgICAgICAoJ0ZlY3RoIG1h dGVyaWFsaXplZCB2aWV3IE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2Vy L212aWV3L29iai8nKSkKKyAgICBdCisKKyAgICBkZWYgcnVuVGVzdChzZWxm KToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgbWF0ZXJp YWxpemVkIHZpZXcgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorCisgICAgICAg IGFsbF9pZCA9IGdldF9pZHMoKQorCisgICAgICAgIHNlcnZlcl9pZCA9IGFs bF9pZFsic2lkIl1bMF0KKyAgICAgICAgZGJfaWQgPSBhbGxfaWRbImRpZCJd WzBdCisgICAgICAgIHNjaGVtYV9pZCA9IGFsbF9pZFsic2NpZCJdWzBdCisg ICAgICAgIHNydl9ncnAgPSBjb25maWdfZGF0YVsndGVzdF9zZXJ2ZXJfZ3Jv dXAnXQorCisgICAgICAgIGRiX2NvbiA9IHRlc3RfZ2V0bm9kZXMobm9kZT1z ZWxmKQorCisgICAgICAgIGlmIGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQi XToKKworICAgICAgICAgICAgIyBHZXQgc2NoZW1hIGlkCisgICAgICAgICAg ICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgnL2Jyb3dzZXIvc2NoZW1h L29iai8nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnezB9L3sxfS97Mn0vezN9Jy5mb3JtYXQKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChzcnZfZ3JwLCBzZXJ2ZXJfaWQsIGRi X2lkLCBzY2hlbWFfaWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAg ICAgICAgICBkYXRhID0gXAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAg ICAgICAgICAgICAgImRhdGFjbCI6IGNvbmZpZ19kYXRhCisgICAgICAgICAg ICAgICAgICAgIFsndGVzdF9tdmlld19jcmVkZW50aWFscyddWyd0ZXN0X2Fj bCddLAorICAgICAgICAgICAgICAgICAgICAiZGVmaW5pdGlvbiI6IGNvbmZp Z19kYXRhCisgICAgICAgICAgICAgICAgICAgIFsndGVzdF9tdmlld19jcmVk ZW50aWFscyddWyd0ZXN0X2RlZmluaXRpb24nXSwKKyAgICAgICAgICAgICAg ICAgICAgImZpbGxmYWN0b3IiOiBjb25maWdfZGF0YQorICAgICAgICAgICAg ICAgICAgICBbJ3Rlc3RfbXZpZXdfY3JlZGVudGlhbHMnXVsndGVzdF9maWxs ZmFjdG9yJ10sCisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogY29uZmln X2RhdGEKKyAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X212aWV3X2NyZWRl bnRpYWxzJ11bJ3Rlc3RfbmFtZSddLAorICAgICAgICAgICAgICAgICAgICAi b3duZXIiOiBjb25maWdfZGF0YQorICAgICAgICAgICAgICAgICAgICBbJ3Rl c3RfbXZpZXdfY3JlZGVudGlhbHMnXVsndGVzdF9vd25lciddLAorICAgICAg ICAgICAgICAgICAgICAic2NoZW1hIjogY29uZmlnX2RhdGEKKyAgICAgICAg ICAgICAgICAgICAgWyd0ZXN0X212aWV3X2NyZWRlbnRpYWxzJ11bJ3Rlc3Rf c2NoZW1hX25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgInNlY2xhYmVs cyI6IGNvbmZpZ19kYXRhCisgICAgICAgICAgICAgICAgICAgIFsndGVzdF9t dmlld19jcmVkZW50aWFscyddWyd0ZXN0X3NlY19sYWJlbCddLAorICAgICAg ICAgICAgICAgICAgICAic3BjbmFtZSI6IGNvbmZpZ19kYXRhCisgICAgICAg ICAgICAgICAgICAgIFsndGVzdF9tdmlld19jcmVkZW50aWFscyddWyd0ZXN0 X3Ric2NwJ10sCisgICAgICAgICAgICAgICAgICAgICJ0b2FzdF9hdXRvdmFj dXVtIjogY29uZmlnX2RhdGEKKyAgICAgICAgICAgICAgICAgICAgWyd0ZXN0 X212aWV3X2NyZWRlbnRpYWxzJ11bJ3Rlc3RfdG9hc3RfYXV0b3ZhY3V1bSdd LAorICAgICAgICAgICAgICAgICAgICAidG9hc3RfYXV0b3ZhY3V1bV9lbmFi bGVkIjogY29uZmlnX2RhdGEKKyAgICAgICAgICAgICAgICAgICAgWyd0ZXN0 X212aWV3X2NyZWRlbnRpYWxzJ11bJ3Rlc3RfdG9hc3RfYXV0b3ZhY3V1bV9l bmFibGVkJ10sCisgICAgICAgICAgICAgICAgICAgICJ2YWN1dW1fdGFibGUi OiBjb25maWdfZGF0YQorICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfbXZp ZXdfY3JlZGVudGlhbHMnXVsndGVzdF92YWN1dW1fdGJsJ10sCisgICAgICAg ICAgICAgICAgICAgICJ2YWN1dW1fdG9hc3QiOiBjb25maWdfZGF0YQorICAg ICAgICAgICAgICAgICAgICBbJ3Rlc3RfbXZpZXdfY3JlZGVudGlhbHMnXVsn dGVzdF92YWN1dW1fdG9hc3QnXSwKKyAgICAgICAgICAgICAgICAgICAgIndp dGhfZGF0YSI6IGNvbmZpZ19kYXRhCisgICAgICAgICAgICAgICAgICAgIFsn dGVzdF9tdmlld19jcmVkZW50aWFscyddWyd0ZXN0X3dpdGhfZGF0YSddCisK KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJlc3BvbnNlID0g c2VsZi50ZXN0ZXIucG9zdChzZWxmLnVybCArIHN0cihzcnZfZ3JwKSArICcv JyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJfaWQpICsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLycgKyBzdHIoc2No ZW1hX2lkKSArICcvJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdo dG1sL2pzb24nKQorCisgICAgICAgICAgICByZXNwZGF0YSA9IGpzb24ubG9h ZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKworICAgICAgICAgICAgbXZp ZXdfaWQgPSByZXNwZGF0YVsnbm9kZSddWydfaWQnXQorCisgICAgICAgICAg ICBpZiBvcy5wYXRoLmlzZmlsZShwaWNrbGVfcGF0aCk6CisgICAgICAgICAg ICAgICAgZXhzdF9zZXJ2ZXJfaWQgPSBvcGVuKHBpY2tsZV9wYXRoLCAncmIn KQorICAgICAgICAgICAgICAgIGFsbF9pZCA9IHBpY2tsZS5sb2FkKGV4c3Rf c2VydmVyX2lkKQorICAgICAgICAgICAgICAgIHBpY2tsZV9pZF9kaWN0ID0g YWxsX2lkCisKKyAgICAgICAgICAgIHBpY2tsZV9pZF9kaWN0WyJtdmlkIl0u YXBwZW5kKG12aWV3X2lkKQorCisgICAgICAgICAgICBtdmlld19vdXRwdXQg PSBvcGVuKHBpY2tsZV9wYXRoLCAnd2InKQorICAgICAgICAgICAgcGlja2xl LmR1bXAocGlja2xlX2lkX2RpY3QsIG12aWV3X291dHB1dCkKKyAgICAgICAg ICAgIG12aWV3X291dHB1dC5jbG9zZSgpClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVz dHMvdGVzdF9tdmlld19kZWxldGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZXN0cy90ZXN0X212aWV3X2RlbGV0ZS5weQpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5iYjY0ZGMwCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVzdHMvdGVzdF9tdmlld19kZWxl dGUucHkKQEAgLTAsMCArMSw3NSBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENv cHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3Bt ZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0 aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworCitmcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25maWdf ZGF0YQorZnJvbSBwZ2FkbWluLmJyb3dzZXIudGVzdHMudGVzdF9sb2dpbiBp bXBvcnQgTG9naW5UZXN0Q2FzZQorZnJvbSByZWdyZXNzaW9uLnRlc3RfdXRp bHMgaW1wb3J0IGdldF9pZHMKK2Zyb20gcmVncmVzc2lvbi50ZXN0X25vZGVz IGltcG9ydCB0ZXN0X2dldG5vZGVzCitpbXBvcnQganNvbgoraW1wb3J0IHBp Y2tsZQoraW1wb3J0IG9zCisKKworY2xhc3MgTVZpZXdEZWxldGVUZXN0Q2Fz ZShMb2dpblRlc3RDYXNlKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGRl bGV0ZSBuZXcgbWF0ZXJpYWxpemVkIHZpZXcgdW5kZXIgc2NoZW1hIG5vZGUu ICIiIgorCisgICAgcHJpb3JpdHkgPSA3MAorCisgICAgc2NlbmFyaW9zID0g WworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBtYXRlcmlh bGl6ZWQgdmlldyBub2RlLgorICAgICAgICAoJ0ZldGNoIG1hdGVyaWFsaXpl ZCB2aWV3IE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL212aWV3L29i ai8nKSkKKyAgICBdCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAg ICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgbWF0ZXJpYWxpemVkIHZp ZXcgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorCisgICAgICAgIGFsbF9pZCA9 IGdldF9pZHMoKQorCisgICAgICAgIHNlcnZlcl9pZCA9IGFsbF9pZFsic2lk Il1bMF0KKyAgICAgICAgZGJfaWQgPSBhbGxfaWRbImRpZCJdWzBdCisgICAg ICAgIHNjaGVtYV9pZCA9IGFsbF9pZFsic2NpZCJdWzBdCisgICAgICAgIG12 aWV3X2lkID0gYWxsX2lkWyJtdmlkIl1bMF0KKyAgICAgICAgc3J2X2dycCA9 IGNvbmZpZ19kYXRhWyd0ZXN0X3NlcnZlcl9ncm91cCddCisKKyAgICAgICAg ZGJfY29uID0gdGVzdF9nZXRub2Rlcyhub2RlPXNlbGYpCisKKyAgICAgICAg aWYgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorCisgICAgICAgICAg ICAjIEZldGNoIGFkZGVkIHNjaGVtYSBub2RlLgorICAgICAgICAgICAgcmVz cG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoJy9icm93c2VyL3NjaGVtYS9vYmov JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3sw fS97MX0vezJ9L3szfScuZm9ybWF0CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoc3J2X2dycCwgc2VydmVyX2lkLCBkYl9pZCwg c2NoZW1hX2lkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAgICAgICAg ICAgcmVzcGRhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2Rl KCkpCisKKyAgICAgICAgICAgIGlmIGxlbihyZXNwZGF0YSkgIT0gMDoKKwor ICAgICAgICAgICAgICAgIGdldF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLmdl dChzZWxmLnVybCArIHN0cihzcnZfZ3JwKSArICcvJyArCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZXJ2 ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RyKGRiX2lkKSArICcvJyArCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihz Y2hlbWFfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RyKG12aWV3X2lkKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVu dF90eXBlPSdodG1sL2pzb24nKQorCisgICAgICAgICAgICAgICAgZ2V0X3Jl c3BkYXRhID0ganNvbi5sb2FkcyhnZXRfcmVzcG9uc2UuZGF0YS5kZWNvZGUo KSkKKworICAgICAgICAgICAgICAgIGlmIGxlbihnZXRfcmVzcGRhdGEpID09 IDA6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8g bWF0ZXJpYWxpemVkIHZpZXcgdG8gZGVsZXRlLiIpCisKKyAgICAgICAgICAg ICAgICBkZWxfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoc2VsZi51 cmwgKyBzdHIoc3J2X2dycCkgKworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAnLycgKyBzdHIoc2VydmVyX2lk KSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cihkYl9pZCkgKyAnLycgKworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIo c2NoZW1hX2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihtdmlld19pZCksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKworICAgICAgICAgICAgICAgIGRl bF9yZXNwZGF0YSA9IGpzb24ubG9hZHMoZGVsX3Jlc3BvbnNlLmRhdGEuZGVj b2RlKCkpCisKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoZGVs X3Jlc3BkYXRhWydzdWNjZXNzJ10sIDEpCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZXN0cy90ZXN0X212aWV3X2dldC5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3Rlc3RzL3Rlc3RfbXZpZXdfZ2V0LnB5Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzMmU5YTkKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZXN0cy90ZXN0 X212aWV3X2dldC5weQpAQCAtMCwwICsxLDYwIEBACisjICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMK KyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4g RGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2Vk IHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisKK2Zyb20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0 IGNvbmZpZ19kYXRhCitmcm9tIHBnYWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0 X2xvZ2luIGltcG9ydCBMb2dpblRlc3RDYXNlCitmcm9tIHJlZ3Jlc3Npb24u dGVzdF91dGlscyBpbXBvcnQgZ2V0X2lkcworZnJvbSByZWdyZXNzaW9uLnRl c3Rfbm9kZXMgaW1wb3J0IHRlc3RfZ2V0bm9kZXMKK2ltcG9ydCBqc29uCisK KworY2xhc3MgTVZpZXdHZXRUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToKKyAg ICAiIiIgVGhpcyBjbGFzcyB3aWxsIGZldGNoIG5ldyBtYXRlcmlhbGl6ZWQg dmlldyB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCisKKyAgICBwcmlvcml0eSA9 IDY4CisKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcg ZGVmYXVsdCBVUkwgZm9yIG1hdGVyaWFsaXplZCB2aWV3IG5vZGUuCisgICAg ICAgICgnRmV0Y2ggbWF0ZXJpYWxpemVkIHZpZXcgTm9kZSBVUkwnLCBkaWN0 KHVybD0nL2Jyb3dzZXIvbXZpZXcvb2JqLycpKQorICAgIF0KKworICAgIGRl ZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3 aWxsIGFkZCBtYXRlcmlhbGl6ZWQgdmlldyB1bmRlciBzY2hlbWEgbm9kZS4g IiIiCisKKyAgICAgICAgYWxsX2lkID0gZ2V0X2lkcygpCisKKyAgICAgICAg c2VydmVyX2lkID0gYWxsX2lkWyJzaWQiXVswXQorICAgICAgICBkYl9pZCA9 IGFsbF9pZFsiZGlkIl1bMF0KKyAgICAgICAgc2NoZW1hX2lkID0gYWxsX2lk WyJzY2lkIl1bMF0KKyAgICAgICAgbXZpZXdfaWQgPSBhbGxfaWRbIm12aWQi XVswXQorICAgICAgICBzcnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2Vy dmVyX2dyb3VwJ10KKworICAgICAgICBkYl9jb24gPSB0ZXN0X2dldG5vZGVz KG5vZGU9c2VsZikKKworICAgICAgICBpZiBkYl9jb25bJ2RhdGEnXVsiY29u bmVjdGVkIl06CisKKyAgICAgICAgICAgICMgRmV0Y2ggYWRkZWQgc2NoZW1h IG5vZGUuCisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdl dCgnL2Jyb3dzZXIvc2NoZW1hL29iaicKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICcvezB9L3sxfS97Mn0vezN9Jy5mb3JtYXQK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzcnZf Z3JwLCBzZXJ2ZXJfaWQsIGRiX2lkLCBzY2hlbWFfaWQpLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdo dG1sL2pzb24nKQorCisgICAgICAgICAgICByZXNwZGF0YSA9IGpzb24ubG9h ZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKworICAgICAgICAgICAgaWYg bGVuKHJlc3BkYXRhKSAhPSAwOgorCisgICAgICAgICAgICAgICAgZ2V0X3Jl c3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYudXJsICsgc3RyKHNydl9n cnApICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIo ZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RyKHNjaGVtYV9pZCkgKyAnLycgKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHIobXZpZXdfaWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisK KyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5z dGF0dXNfY29kZSwgMjAwKQorCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZXN0cy90ZXN0X212aWV3X3B1dC5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3Rlc3RzL3Rlc3RfbXZpZXdfcHV0LnB5Cm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2Y2NlYmUKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZXN0cy90ZXN0X212aWV3 X3B1dC5weQpAQCAtMCwwICsxLDgwIEBACisjICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMg Q29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxv cG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVy IHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisKK2Zyb20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0IGNvbmZp Z19kYXRhCitmcm9tIHBnYWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2lu IGltcG9ydCBMb2dpblRlc3RDYXNlCitmcm9tIHJlZ3Jlc3Npb24udGVzdF91 dGlscyBpbXBvcnQgZ2V0X2lkcworZnJvbSByZWdyZXNzaW9uLnRlc3Rfbm9k ZXMgaW1wb3J0IHRlc3RfZ2V0bm9kZXMKK2ltcG9ydCBqc29uCisKKworY2xh c3MgTVZpZXdQdXRUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToKKyAgICAiIiIg VGhpcyBjbGFzcyB3aWxsIGZldGNoIG5ldyBtYXRlcmlhbGl6ZWQgdmlldyB1 bmRlciBzY2hlbWEgbm9kZS4gIiIiCisKKyAgICBwcmlvcml0eSA9IDY5CisK KyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVs dCBVUkwgZm9yIG1hdGVyaWFsaXplZCB2aWV3IG5vZGUuCisgICAgICAgICgn RmV0Y2ggbWF0ZXJpYWxpemVkIHZpZXcgTm9kZSBVUkwnLCBkaWN0KHVybD0n L2Jyb3dzZXIvbXZpZXcvb2JqLycpKQorICAgIF0KKworICAgIGRlZiBydW5U ZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFk ZCBtYXRlcmlhbGl6ZWQgdmlldyB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCisK KyAgICAgICAgYWxsX2lkID0gZ2V0X2lkcygpCisKKyAgICAgICAgc2VydmVy X2lkID0gYWxsX2lkWyJzaWQiXVswXQorICAgICAgICBkYl9pZCA9IGFsbF9p ZFsiZGlkIl1bMF0KKyAgICAgICAgc2NoZW1hX2lkID0gYWxsX2lkWyJzY2lk Il1bMF0KKyAgICAgICAgbXZpZXdfaWQgPSBhbGxfaWRbIm12aWQiXVswXQor ICAgICAgICBzcnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dy b3VwJ10KKworICAgICAgICBkYl9jb24gPSB0ZXN0X2dldG5vZGVzKG5vZGU9 c2VsZikKKworICAgICAgICBpZiBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVk Il06CisKKyAgICAgICAgICAgICMgRmV0Y2ggYWRkZWQgc2NoZW1hIG5vZGUu CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgnL2Jy b3dzZXIvc2NoZW1hL29iai8nCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnezB9L3sxfS97Mn0vezN9Jy5mb3JtYXQKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzcnZfZ3JwLCBz ZXJ2ZXJfaWQsIGRiX2lkLCBzY2hlbWFfaWQpLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pz b24nKQorCisgICAgICAgICAgICByZXNwZGF0YSA9IGpzb24ubG9hZHMocmVz cG9uc2UuZGF0YS5kZWNvZGUoKSkKKworICAgICAgICAgICAgaWYgbGVuKHJl c3BkYXRhKSAhPSAwOgorCisgICAgICAgICAgICAgICAgZ2V0X3Jlc3BvbnNl ID0gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYudXJsICsgc3RyKHNydl9ncnApICsg Jy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoZGJfaWQp ICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RyKHNjaGVtYV9pZCkgKyAnLycgKworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIobXZp ZXdfaWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKyAgICAg ICAgICAgICAgICBnZXRfcmVzcGRhdGEgPSBqc29uLmxvYWRzKGdldF9yZXNw b25zZS5kYXRhLmRlY29kZSgpKQorCisgICAgICAgICAgICAgICAgaWYgbGVu KGdldF9yZXNwZGF0YSkgPT0gMDoKKyAgICAgICAgICAgICAgICAgICAgcmFp c2UgRXhjZXB0aW9uKCJObyBtYXRlcmlhbGl6ZWQgdmlldyB0byB1cGRhdGUu IikKKworICAgICAgICAgICAgICAgIGRhdGEgPVwKKyAgICAgICAgICAgICAg ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgImNvbW1lbnQiOiBj b25maWdfZGF0YVsndGVzdF92aWV3X3VwZGF0ZV9kYXRhJ10KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3Rf Y29tbWVudCddLAorICAgICAgICAgICAgICAgICAgICAgICAgImlkIjogbXZp ZXdfaWQKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg ICAgcHV0X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KHNlbGYudXJsICsg c3RyKHNydl9ncnApICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycg KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHIoZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNjaGVtYV9pZCkgKyAn LycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHIobXZpZXdfaWQpLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0 YSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKworICAgICAgICAgICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHB1dF9yZXNwb25zZS5zdGF0dXNfY29k ZSwgMjAwKQorCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90 ZXN0cy90ZXN0X3ZpZXdfYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVzdHMvdGVzdF92aWV3X2FkZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi4wY2JkZTE5Ci0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVzdHMvdGVzdF92aWV3X2FkZC5weQpAQCAt MCwwICsxLDg2IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBn QWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChD KSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQor IyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3Jl U1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zy b20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0IGNvbmZpZ19kYXRhLCBwaWNr bGVfcGF0aAorZnJvbSBwZ2FkbWluLmJyb3dzZXIudGVzdHMudGVzdF9sb2dp biBpbXBvcnQgTG9naW5UZXN0Q2FzZQorZnJvbSByZWdyZXNzaW9uLnRlc3Rf dXRpbHMgaW1wb3J0IGdldF9pZHMKK2Zyb20gcmVncmVzc2lvbi50ZXN0X25v ZGVzIGltcG9ydCB0ZXN0X2dldG5vZGVzCitpbXBvcnQganNvbgoraW1wb3J0 IHBpY2tsZQoraW1wb3J0IG9zCisKKworY2xhc3MgVmlld0FkZFRlc3RDYXNl KExvZ2luVGVzdENhc2UpOgorICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgYWRk IG5ldyB2aWV3IHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKworICAgIHByaW9y aXR5ID0gNjMKKworICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRj aGluZyBkZWZhdWx0IFVSTCBmb3IgdmlldyBub2RlLgorICAgICAgICAoJ0Zl dGNoIHZpZXcgTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvdmlldy9v YmovJykpCisgICAgXQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAg ICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIHZpZXcgdW5kZXIgc2No ZW1hIG5vZGUuICIiIgorCisgICAgICAgIGFsbF9pZCA9IGdldF9pZHMoKQor CisgICAgICAgIHNlcnZlcl9pZCA9IGFsbF9pZFsic2lkIl1bMF0KKyAgICAg ICAgZGJfaWQgPSBhbGxfaWRbImRpZCJdWzBdCisgICAgICAgIHNjaGVtYV9p ZCA9IGFsbF9pZFsic2NpZCJdWzBdCisgICAgICAgIHNydl9ncnAgPSBjb25m aWdfZGF0YVsndGVzdF9zZXJ2ZXJfZ3JvdXAnXQorCisgICAgICAgIGRiX2Nv biA9IHRlc3RfZ2V0bm9kZXMobm9kZT1zZWxmKQorCisgICAgICAgIGlmIGRi X2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKworICAgICAgICAgICAgIyBG ZXRjaCBhZGRlZCBzY2hlbWEgbm9kZS4KKyAgICAgICAgICAgIHJlc3BvbnNl ID0gc2VsZi50ZXN0ZXIuZ2V0KCcvYnJvd3Nlci9zY2hlbWEvb2JqLycKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd7MH0vezF9 L3syfS97M30nLmZvcm1hdAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHNydl9ncnAsIHNlcnZlcl9pZCwgZGJfaWQsIHNjaGVt YV9pZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKyAgICAgICAgICAgIGRh dGEgPSBcCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg ICAiY2hlY2tfb3B0aW9uIjogY29uZmlnX2RhdGEKKyAgICAgICAgICAgICAg ICAgICAgWyd0ZXN0X3ZpZXdfY3JlZGVudGlhbHMnXVsndGVzdF9jaGVja19v cHRpb25zJ10sCisgICAgICAgICAgICAgICAgICAgICJkYXRhY2wiOiBjb25m aWdfZGF0YQorICAgICAgICAgICAgICAgICAgICBbJ3Rlc3Rfdmlld19jcmVk ZW50aWFscyddWyd0ZXN0X2FjbCddLAorICAgICAgICAgICAgICAgICAgICAi ZGVmaW5pdGlvbiI6IGNvbmZpZ19kYXRhCisgICAgICAgICAgICAgICAgICAg IFsndGVzdF92aWV3X2NyZWRlbnRpYWxzJ11bJ3Rlc3RfZGVmaW5pdGlvbidd LAorICAgICAgICAgICAgICAgICAgICAibmFtZSI6IGNvbmZpZ19kYXRhCisg ICAgICAgICAgICAgICAgICAgIFsndGVzdF92aWV3X2NyZWRlbnRpYWxzJ11b J3Rlc3RfbmFtZSddLAorICAgICAgICAgICAgICAgICAgICAib3duZXIiOiBj b25maWdfZGF0YQorICAgICAgICAgICAgICAgICAgICBbJ3Rlc3Rfdmlld19j cmVkZW50aWFscyddWyd0ZXN0X293bmVyJ10sCisgICAgICAgICAgICAgICAg ICAgICJzY2hlbWEiOiBjb25maWdfZGF0YQorICAgICAgICAgICAgICAgICAg ICBbJ3Rlc3Rfdmlld19jcmVkZW50aWFscyddWyd0ZXN0X3NjaGVtYV9uYW1l J10sCisgICAgICAgICAgICAgICAgICAgICJzZWNsYWJlbHMiOiBjb25maWdf ZGF0YQorICAgICAgICAgICAgICAgICAgICBbJ3Rlc3Rfdmlld19jcmVkZW50 aWFscyddWyd0ZXN0X3NlY19sYWJlbCddCisgICAgICAgICAgICAgICAgfQor CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3Qoc2Vs Zi51cmwgKyBzdHIoc3J2X2dycCkgKyAnLycgKworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8n ICsgc3RyKGRiX2lkKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJy8nICsgc3RyKHNjaGVtYV9pZCkgKyAnLycsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1qc29u LmR1bXBzKGRhdGEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAgICAg ICAgICAgcmVzcGRhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVj b2RlKCkpCisKKyAgICAgICAgICAgIHZpZXdfaWQgPSByZXNwZGF0YVsnbm9k ZSddWydfaWQnXQorCisgICAgICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShw aWNrbGVfcGF0aCk6CisgICAgICAgICAgICAgICAgZXhzdF9zZXJ2ZXJfaWQg PSBvcGVuKHBpY2tsZV9wYXRoLCAncmInKQorICAgICAgICAgICAgICAgIGFs bF9pZCA9IHBpY2tsZS5sb2FkKGV4c3Rfc2VydmVyX2lkKQorICAgICAgICAg ICAgICAgIHBpY2tsZV9pZF9kaWN0ID0gYWxsX2lkCisKKyAgICAgICAgICAg IHBpY2tsZV9pZF9kaWN0WyJ2aWQiXS5hcHBlbmQodmlld19pZCkKKworICAg ICAgICAgICAgdmlld19vdXRwdXQgPSBvcGVuKHBpY2tsZV9wYXRoLCAnd2In KQorICAgICAgICAgICAgcGlja2xlLmR1bXAocGlja2xlX2lkX2RpY3QsIHZp ZXdfb3V0cHV0KQorICAgICAgICAgICAgdmlld19vdXRwdXQuY2xvc2UoKQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVzdHMvdGVzdF92 aWV3X2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rlc3RzL3Rl c3Rfdmlld19kZWxldGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZDU1MmVjZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3Rlc3RzL3Rlc3Rfdmlld19kZWxldGUucHkKQEAgLTAs MCArMSw3NSBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0Fk bWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykg MjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMg VGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNR TCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9t IHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25maWdfZGF0YQorZnJvbSBw Z2FkbWluLmJyb3dzZXIudGVzdHMudGVzdF9sb2dpbiBpbXBvcnQgTG9naW5U ZXN0Q2FzZQorZnJvbSByZWdyZXNzaW9uLnRlc3RfdXRpbHMgaW1wb3J0IGdl dF9pZHMKK2Zyb20gcmVncmVzc2lvbi50ZXN0X25vZGVzIGltcG9ydCB0ZXN0 X2dldG5vZGVzCitpbXBvcnQganNvbgorCisKK2NsYXNzIFZpZXdEZWxldGVU ZXN0Q2FzZShMb2dpblRlc3RDYXNlKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3 aWxsIHVwZGF0ZSBuZXcgdmlldyB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCisK KyAgICBwcmlvcml0eSA9IDY2CisKKyAgICBzY2VuYXJpb3MgPSBbCisgICAg ICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHZpZXcgbm9kZS4KKyAg ICAgICAgKCdGZXRjaCB2aWV3IE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93 c2VyL3ZpZXcvb2JqLycpKQorICAgIF0KKworICAgIGRlZiBydW5UZXN0KHNl bGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSB2 aWV3IHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKworICAgICAgICBhbGxfaWQg PSBnZXRfaWRzKCkKKworICAgICAgICBzZXJ2ZXJfaWQgPSBhbGxfaWRbInNp ZCJdWzBdCisgICAgICAgIGRiX2lkID0gYWxsX2lkWyJkaWQiXVswXQorICAg ICAgICBzY2hlbWFfaWQgPSBhbGxfaWRbInNjaWQiXVswXQorICAgICAgICB2 aWV3X2lkID0gYWxsX2lkWyJ2aWQiXVswXQorICAgICAgICBzcnZfZ3JwID0g Y29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKworICAgICAgICBk Yl9jb24gPSB0ZXN0X2dldG5vZGVzKG5vZGU9c2VsZikKKworICAgICAgICBp ZiBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisKKyAgICAgICAgICAg ICMgRmV0Y2ggYWRkZWQgc2NoZW1hIG5vZGUuCisgICAgICAgICAgICByZXNw b25zZSA9IHNlbGYudGVzdGVyLmdldCgnL2Jyb3dzZXIvc2NoZW1hL29iai8n CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnezB9 L3sxfS97Mn0vezN9Jy5mb3JtYXQKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChzcnZfZ3JwLCBzZXJ2ZXJfaWQsIGRiX2lkLCBz Y2hlbWFfaWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAgICAgICAg ICByZXNwZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUo KSkKKworICAgICAgICAgICAgaWYgbGVuKHJlc3BkYXRhKSAhPSAwOgorCisg ICAgICAgICAgICAgICAgZ2V0X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0 KHNlbGYudXJsICsgc3RyKHNydl9ncnApICsgJy8nICsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZl cl9pZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHIoZGJfaWQpICsgJy8nICsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNj aGVtYV9pZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHIodmlld19pZCksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRf dHlwZT0naHRtbC9qc29uJykKKworICAgICAgICAgICAgICAgIGdldF9yZXNw ZGF0YSA9IGpzb24ubG9hZHMoZ2V0X3Jlc3BvbnNlLmRhdGEuZGVjb2RlKCkp CisKKyAgICAgICAgICAgICAgICBpZiBsZW4oZ2V0X3Jlc3BkYXRhKSA9PSAw OgorICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5vIHZp ZXcgdG8gZGVsZXRlLiIpCisKKyAgICAgICAgICAgICAgICBkZWxfcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoc2VsZi51cmwgKyBzdHIoc3J2X2dy cCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnLycgKyBzdHIoc2VydmVyX2lkKSArICcvJyArCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cihkYl9pZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2NoZW1hX2lkKSArICcv JyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cih2aWV3X2lkKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0 cz1UcnVlKQorCisgICAgICAgICAgICAgICAgZGVsX3Jlc3BkYXRhID0ganNv bi5sb2FkcyhkZWxfcmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKworICAgICAg ICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShkZWxfcmVzcGRhdGFbJ3N1Y2Nl c3MnXSwgMSkKKworCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZXN0cy90ZXN0X3ZpZXdfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVzdHMvdGVzdF92aWV3X2dldC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi42MTEwMThmCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVzdHMvdGVzdF92aWV3X2dldC5weQpA QCAtMCwwICsxLDYxIEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisj IHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0 IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVh bQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0 Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisK K2Zyb20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0IGNvbmZpZ19kYXRhCitm cm9tIHBnYWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2luIGltcG9ydCBM b2dpblRlc3RDYXNlCitmcm9tIHJlZ3Jlc3Npb24udGVzdF91dGlscyBpbXBv cnQgZ2V0X2lkcworZnJvbSByZWdyZXNzaW9uLnRlc3Rfbm9kZXMgaW1wb3J0 IHRlc3RfZ2V0bm9kZXMKK2ltcG9ydCBqc29uCitpbXBvcnQgcGlja2xlCitp bXBvcnQgb3MKKworCitjbGFzcyBWaWV3R2V0VGVzdENhc2UoTG9naW5UZXN0 Q2FzZSk6CisgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBmZXRjaCBuZXcgdmll dyB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCisKKyAgICBwcmlvcml0eSA9IDY0 CisKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVm YXVsdCBVUkwgZm9yIHZpZXcgbm9kZS4KKyAgICAgICAgKCdGZXRjaCB2aWV3 IE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL3ZpZXcvb2JqLycpKQor ICAgIF0KKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIg VGhpcyBmdW5jdGlvbiB3aWxsIGFkZCB2aWV3IHVuZGVyIHNjaGVtYSBub2Rl LiAiIiIKKworICAgICAgICBhbGxfaWQgPSBnZXRfaWRzKCkKKworICAgICAg ICBzZXJ2ZXJfaWQgPSBhbGxfaWRbInNpZCJdWzBdCisgICAgICAgIGRiX2lk ID0gYWxsX2lkWyJkaWQiXVswXQorICAgICAgICBzY2hlbWFfaWQgPSBhbGxf aWRbInNjaWQiXVswXQorICAgICAgICB2aWV3X2lkID0gYWxsX2lkWyJ2aWQi XVswXQorICAgICAgICBzcnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2Vy dmVyX2dyb3VwJ10KKworICAgICAgICBkYl9jb24gPSB0ZXN0X2dldG5vZGVz KG5vZGU9c2VsZikKKworICAgICAgICBpZiBkYl9jb25bJ2RhdGEnXVsiY29u bmVjdGVkIl06CisKKyAgICAgICAgICAgICMgRmV0Y2ggYWRkZWQgc2NoZW1h IG5vZGUuCisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdl dCgnL2Jyb3dzZXIvc2NoZW1hL29iai8nCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnezB9L3sxfS97Mn0vezN9Jy5mb3JtYXQK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzcnZf Z3JwLCBzZXJ2ZXJfaWQsIGRiX2lkLCBzY2hlbWFfaWQpLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdo dG1sL2pzb24nKQorCisgICAgICAgICAgICByZXNwZGF0YSA9IGpzb24ubG9h ZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKworICAgICAgICAgICAgaWYg bGVuKHJlc3BkYXRhKSAhPSAwOgorCisgICAgICAgICAgICAgICAgZ2V0X3Jl c3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYudXJsICsgc3RyKHNydl9n cnApICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIo ZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RyKHNjaGVtYV9pZCkgKyAnLycgKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHIodmlld19pZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKwor ICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0 YXR1c19jb2RlLCAyMDApCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZXN0cy90ZXN0X3ZpZXdfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVzdHMvdGVzdF92aWV3X3B1dC5weQpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi44Yzk0MjFjCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVzdHMvdGVzdF92aWV3X3B1dC5w eQpAQCAtMCwwICsxLDc5IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisj CisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJp Z2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQg VGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQ b3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisKK2Zyb20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0IGNvbmZpZ19kYXRh Citmcm9tIHBnYWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2luIGltcG9y dCBMb2dpblRlc3RDYXNlCitmcm9tIHJlZ3Jlc3Npb24udGVzdF91dGlscyBp bXBvcnQgZ2V0X2lkcworZnJvbSByZWdyZXNzaW9uLnRlc3Rfbm9kZXMgaW1w b3J0IHRlc3RfZ2V0bm9kZXMKK2ltcG9ydCBqc29uCisKKworY2xhc3MgVmll d1B1dFRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgorICAgICIiIiBUaGlzIGNs YXNzIHdpbGwgdXBkYXRlIG5ldyB2aWV3IHVuZGVyIHNjaGVtYSBub2RlLiAi IiIKKworICAgIHByaW9yaXR5ID0gNjUKKworICAgIHNjZW5hcmlvcyA9IFsK KyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgdmlldyBub2Rl LgorICAgICAgICAoJ0ZlY3RoIHZpZXcgTm9kZSBVUkwnLCBkaWN0KHVybD0n L2Jyb3dzZXIvdmlldy9vYmovJykpCisgICAgXQorCisgICAgZGVmIHJ1blRl c3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBk YXRlIHZpZXcgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorCisgICAgICAgIGFs bF9pZCA9IGdldF9pZHMoKQorCisgICAgICAgIHNlcnZlcl9pZCA9IGFsbF9p ZFsic2lkIl1bMF0KKyAgICAgICAgZGJfaWQgPSBhbGxfaWRbImRpZCJdWzBd CisgICAgICAgIHNjaGVtYV9pZCA9IGFsbF9pZFsic2NpZCJdWzBdCisgICAg ICAgIHZpZXdfaWQgPSBhbGxfaWRbInZpZCJdWzBdCisgICAgICAgIHNydl9n cnAgPSBjb25maWdfZGF0YVsndGVzdF9zZXJ2ZXJfZ3JvdXAnXQorCisgICAg ICAgIGRiX2NvbiA9IHRlc3RfZ2V0bm9kZXMobm9kZT1zZWxmKQorCisgICAg ICAgIGlmIGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKworICAgICAg ICAgICAgIyBGZXRjaCBhZGRlZCBzY2hlbWEgbm9kZS4KKyAgICAgICAgICAg IHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KCcvYnJvd3Nlci9zY2hlbWEv b2JqLycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICd7MH0vezF9L3syfS97M30nLmZvcm1hdAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHNydl9ncnAsIHNlcnZlcl9pZCwgZGJf aWQsIHNjaGVtYV9pZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKyAgICAg ICAgICAgIHJlc3BkYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRl Y29kZSgpKQorCisgICAgICAgICAgICBpZiBsZW4ocmVzcGRhdGEpICE9IDA6 CisKKyAgICAgICAgICAgICAgICBnZXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5nZXQoc2VsZi51cmwgKyBzdHIoc3J2X2dycCkgKyAnLycgKworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIo c2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cihkYl9pZCkgKyAnLycgKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHIoc2NoZW1hX2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cih2aWV3X2lkKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u dGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAgICAgICAgICAgICAgZ2V0 X3Jlc3BkYXRhID0ganNvbi5sb2FkcyhnZXRfcmVzcG9uc2UuZGF0YS5kZWNv ZGUoKSkKKworICAgICAgICAgICAgICAgIGlmIGxlbihnZXRfcmVzcGRhdGEp ID09IDA6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Tm8gdmlldyB0byB1cGRhdGUuIikKKworICAgICAgICAgICAgICAgIGRhdGEg PVwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg ICAgICAgImNvbW1lbnQiOiBjb25maWdfZGF0YVsndGVzdF92aWV3X3VwZGF0 ZV9kYXRhJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBbJ3Rlc3RfY29tbWVudCddLAorICAgICAgICAgICAgICAg ICAgICAgICAgImlkIjogdmlld19pZAorICAgICAgICAgICAgICAgICAgICB9 CisKKyAgICAgICAgICAgICAgICBwdXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5wdXQoc2VsZi51cmwgKyBzdHIoc3J2X2dycCkgKyAnLycgKworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIo c2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cihkYl9pZCkgKyAnLycgKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHIoc2NoZW1hX2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cih2aWV3X2lkKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUp CisKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwdXRfcmVz cG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90 ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy9fX2luaXRfXy5weQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGVkNGM3Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL19faW5pdF9fLnB5CkBA IC0wLDAgKzEsMTYgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyMKKyMgI3BnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMg I0NvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVs b3BtZW50IFRlYW0KKyMgI1RoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5k ZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUg aW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCisKKworY2xhc3MgRGF0YWJhc2VH ZW5lcmF0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKworICAgIGRl ZiBydW5UZXN0KHNlbGYpOgorICAgICAgICByZXR1cm4KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy90ZXN0cy90ZXN0X2RiX2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90 ZXN0X2RiX2FkZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi4wMmRkYTY4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3Rz L3Rlc3RfZGJfYWRkLnB5CkBAIC0wLDAgKzEsOTkgQEAKKyMgIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29s cworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1p biBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFz ZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKworZnJvbSByZWdyZXNzaW9uLmNvbmZpZyBpbXBv cnQgY29uZmlnX2RhdGEsIHBpY2tsZV9wYXRoCitmcm9tIHBnYWRtaW4uYnJv d3Nlci50ZXN0cy50ZXN0X2xvZ2luIGltcG9ydCBMb2dpblRlc3RDYXNlCitp bXBvcnQganNvbiwgcGlja2xlLCB1dWlkLCBvcworZnJvbSByZWdyZXNzaW9u LnRlc3RfdXRpbHMgaW1wb3J0IGdldF9pZHMKKworCitjbGFzcyBEYXRhYmFz ZUFkZFRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgorICAgICIiIgorICAgIFRo aXMgY2xhc3Mgd2lsbCBjaGVjayBzZXJ2ZXIgZ3JvdXAgbm9kZSBwcmVzZW50 IG9uIHRoZSBvYmplY3QgYnJvd3NlcidzCisgICAgdHJlZSBub2RlIGJ5IHJl c3BvbnNlIGNvZGUuCisgICAgIiIiCisgICAgcHJpb3JpdHkgPSA4CisKKyAg ICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBV UkwgZm9yIGRhdGFiYXNlIG5vZGUuCisgICAgICAgICgnQ2hlY2sgRGF0YWJh c2VzIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL2RhdGFiYXNlL29i ai8nKSkKKyAgICBdCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAg ICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgZGF0YWJhc2UgdW5kZXIg MXN0IHNlcnZlciBvZiB0cmVlIG5vZGUuICIiIgorCisgICAgICAgIHNydl9p ZCA9IGdldF9pZHMoKQorCisgICAgICAgIHNlcnZlcl9pZCA9IHNydl9pZFsi c2lkIl1bMF0KKyAgICAgICAgc3J2X2dycCA9IGNvbmZpZ19kYXRhWyd0ZXN0 X3NlcnZlcl9ncm91cCddCisKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRl c3Rlci5wb3N0KCdicm93c2VyL3NlcnZlci9jb25uZWN0LycgKyBzdHIoc3J2 X2dycCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Jy8nICsgc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YT1kaWN0KAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGFzc3dvcmQ9Y29uZmlnX2RhdGEKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFsndGVzdF9zZXJ2ZXJfY3JlZGVu dGlhbHMnXVswXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgWyd0ZXN0X2RiX3Bhc3N3b3JkJ10pLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorCisg ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2Rl LCAyMDApCisKKyAgICAgICAgc3J2X2Nvbm5lY3QgPSBqc29uLmxvYWRzKHJl c3BvbnNlLmRhdGEuZGVjb2RlKCkpCisKKyAgICAgICAgaWYgc3J2X2Nvbm5l Y3RbJ2RhdGEnXVsnY29ubmVjdGVkJ106CisKKyAgICAgICAgICAgIGRhdGEg PSB7CisgICAgICAgICAgICAgICAgICAgICAiZGF0YWNsIjogY29uZmlnX2Rh dGFbJ3Rlc3RfYWRkX2RhdGFiYXNlX2RhdGEnXQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X3ByaXZpbGVnZXNf YWNsJ10sCisgICAgICAgICAgICAgICAgICAgICAiZGF0Y29ubmxpbWl0Ijog Y29uZmlnX2RhdGFbJ3Rlc3RfYWRkX2RhdGFiYXNlX2RhdGEnXQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyd0 ZXN0X2Nvbm5fbGltaXQnXSwKKyAgICAgICAgICAgICAgICAgICAgICJkYXRv d25lciI6IGNvbmZpZ19kYXRhWyd0ZXN0X2FkZF9kYXRhYmFzZV9kYXRhJ10K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Wyd0ZXN0X293bmVyJ10sCisgICAgICAgICAgICAgICAgICAgICAiZGVmZnVu Y2FjbCI6IGNvbmZpZ19kYXRhWyd0ZXN0X2FkZF9kYXRhYmFzZV9kYXRhJ10K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBbJ3Rlc3RfZnVuX2FjbCddLAorICAgICAgICAgICAgICAgICAgICAgImRl ZnNlcWFjbCI6IGNvbmZpZ19kYXRhWyd0ZXN0X2FkZF9kYXRhYmFzZV9kYXRh J10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFsndGVzdF9zZXFfYWNsJ10sCisgICAgICAgICAgICAgICAgICAgICAi ZGVmdGJsYWNsIjogY29uZmlnX2RhdGFbJ3Rlc3RfYWRkX2RhdGFiYXNlX2Rh dGEnXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgWyd0ZXN0X3RibF9hY2wnXSwKKyAgICAgICAgICAgICAgICAgICAg ICJkZWZ0eXBlYWNsIjogY29uZmlnX2RhdGFbJ3Rlc3RfYWRkX2RhdGFiYXNl X2RhdGEnXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFsndGVzdF90eXBlX2FjbCddLAorICAgICAgICAgICAgICAg ICAgICAgImVuY29kaW5nIjogY29uZmlnX2RhdGFbJ3Rlc3RfYWRkX2RhdGFi YXNlX2RhdGEnXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBbJ3Rlc3RfZW5jb2RpbmcnXSwKKyAgICAgICAgICAgICAg ICAgICAgICJuYW1lIjogc3RyKHV1aWQudXVpZDQoKSlbMTo4XSwKKyAgICAg ICAgICAgICAgICAgICAgICJwcml2aWxlZ2VzIjogY29uZmlnX2RhdGFbJ3Rl c3RfYWRkX2RhdGFiYXNlX2RhdGEnXQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFsndGVzdF9wcml2aWxlZ2VzJ10s CisgICAgICAgICAgICAgICAgICAgICAic2VjdXJpdGllcyI6IGNvbmZpZ19k YXRhWyd0ZXN0X2FkZF9kYXRhYmFzZV9kYXRhJ10KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3Rfc2VjdXJp dGllcyddLAorICAgICAgICAgICAgICAgICAgICAgInZhcmlhYmxlcyI6IGNv bmZpZ19kYXRhWyd0ZXN0X2FkZF9kYXRhYmFzZV9kYXRhJ10KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsndGVzdF92 YXJpYWJsZXMnXQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAg ICAgIGRiX3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdChzZWxmLnVybCAr IHN0cihzcnZfZ3JwKSArICIvIiArCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkICsgIi8iLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9anNv bi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKyAg ICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShkYl9yZXNwb25zZS5zdGF0dXNf Y29kZSwgMjAwKQorCisgICAgICAgICAgICByZXNwZGF0YSA9IGpzb24ubG9h ZHMoZGJfcmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKworICAgICAgICAgICAg ZGJfaWQgPSByZXNwZGF0YVsnbm9kZSddWydfaWQnXQorCisgICAgICAgICAg ICBpZiBvcy5wYXRoLmlzZmlsZShwaWNrbGVfcGF0aCk6CisKKyAgICAgICAg ICAgICAgICBleHN0X3NlcnZlcl9pZCA9IG9wZW4ocGlja2xlX3BhdGgsICdy YicpCisKKyAgICAgICAgICAgICAgICB0b2xfc2VydmVyX2lkID0gcGlja2xl LmxvYWQoZXhzdF9zZXJ2ZXJfaWQpCisgICAgICAgICAgICAgICAgcGlja2xl X2lkX2RpY3QgPSB0b2xfc2VydmVyX2lkCisKKyAgICAgICAgICAgICAgICBw aWNrbGVfaWRfZGljdFsiZGlkIl0uYXBwZW5kKGRiX2lkKQorCisgICAgICAg ICAgICAgICAgZGJfb3V0cHV0ID0gb3BlbihwaWNrbGVfcGF0aCwgJ3diJykK KyAgICAgICAgICAgICAgICBwaWNrbGUuZHVtcChwaWNrbGVfaWRfZGljdCwg ZGJfb3V0cHV0KQorICAgICAgICAgICAgICAgIGRiX291dHB1dC5jbG9zZSgp CisKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX2RlbGV0ZS5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX2RlbGV0ZS5weQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDA4ZGYzCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfZGVsZXRlLnB5CkBAIC0w LDAgKzEsNDcgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdB ZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMp IDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisj IFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVT UUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZnJv bSByZWdyZXNzaW9uLmNvbmZpZyBpbXBvcnQgY29uZmlnX2RhdGEKK2Zyb20g cGdhZG1pbi5icm93c2VyLnRlc3RzLnRlc3RfbG9naW4gaW1wb3J0IExvZ2lu VGVzdENhc2UKK2ltcG9ydCBqc29uCitmcm9tIHJlZ3Jlc3Npb24udGVzdF9u b2RlcyBpbXBvcnQgdGVzdF9nZXRub2RlcworZnJvbSByZWdyZXNzaW9uLnRl c3RfdXRpbHMgaW1wb3J0IGdldF9pZHMKKworCitjbGFzcyBEYXRhYmFzZURl bGV0ZVRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgorICAgICIiIiBUaGlzIGNs YXNzIHdpbGwgZGVsZXRlIHRoZSBkYXRhYmFzZSB1bmRlciBsYXN0IGFkZGVk IHNlcnZlci4gIiIiCisKKyAgICBwcmlvcml0eSA9IDk5CisKKyAgICBzY2Vu YXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9y IGRhdGFiYXNlIG5vZGUuCisgICAgICAgICgnQ2hlY2sgRGF0YWJhc2VzIE5v ZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL2RhdGFiYXNlL29iai8nKSkK KyAgICBdCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIi IFRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgdGhlIGRhdGFiYXNlLiIiIgor CisgICAgICAgIGFsbF9pZCA9IGdldF9pZHMoKQorICAgICAgICBzZXJ2ZXJf aWQgPSBhbGxfaWRbInNpZCJdWzBdCisgICAgICAgIGRiX2lkID0gYWxsX2lk WyJkaWQiXVswXQorICAgICAgICBzcnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rl c3Rfc2VydmVyX2dyb3VwJ10KKworICAgICAgICBkYl9jb24gPSB0ZXN0X2dl dG5vZGVzKG5vZGU9c2VsZikKKworICAgICAgICBpZiBsZW4oZGJfY29uKSA9 PSAwOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyBkYXRhYmFz ZShzKSB0byBkZWxldGUuIikKKworICAgICAgICByZXNwb25zZSA9IHNlbGYu dGVzdGVyLmRlbGV0ZShzZWxmLnVybCArIHN0cihzcnZfZ3JwKSArICcvJyAr CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihz ZXJ2ZXJfaWQpICsgJy8nICsgc3RyKGRiX2lkKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVl KQorCisgICAgICAgIHJlc3BkYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5k YXRhLmRlY29kZSgpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNw ZGF0YVsnc3VjY2VzcyddLCAxKQorCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVz dHMvdGVzdF9kYl9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9nZXQu cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmJiZDdl YwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX2dl dC5weQpAQCAtMCwwICsxLDQzIEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29w eXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1l bnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRo ZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisKK2Zyb20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0IGNvbmZpZ19k YXRhCitmcm9tIHBnYWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2luIGlt cG9ydCBMb2dpblRlc3RDYXNlCitmcm9tIHJlZ3Jlc3Npb24udGVzdF9ub2Rl cyBpbXBvcnQgdGVzdF9nZXRub2RlcworZnJvbSByZWdyZXNzaW9uLnRlc3Rf dXRpbHMgaW1wb3J0IGdldF9pZHMKKworCitjbGFzcyBEYXRhYmFzZXNHZXRU ZXN0Q2FzZShMb2dpblRlc3RDYXNlKToKKyAgICAiIiIKKyAgICBUaGlzIGNs YXNzIHdpbGwgZmV0Y2ggZGF0YWJhc2UgYWRkZWQgdW5kZXIgbGFzdCBhZGRl ZCBzZXJ2ZXIuCisgICAgIiIiCisgICAgcHJpb3JpdHkgPSA5CisKKyAgICBz Y2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwg Zm9yIGRhdGFiYXNlIG5vZGUuCisgICAgICAgICgnQ2hlY2sgRGF0YWJhc2Vz IE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL2RhdGFiYXNlL29iai8n KSkKKyAgICBdCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAg IiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCBhZGRlZCBkYXRhYmFzZS4g IiIiCisKKyAgICAgICAgYWxsX2lkID0gZ2V0X2lkcygpCisgICAgICAgIHNl cnZlcl9pZCA9IGFsbF9pZFsic2lkIl1bMF0KKyAgICAgICAgZGJfaWQgPSBh bGxfaWRbImRpZCJdWzBdCisgICAgICAgIHNydl9ncnAgPSBjb25maWdfZGF0 YVsndGVzdF9zZXJ2ZXJfZ3JvdXAnXQorCisgICAgICAgIGRiX2NvbiA9IHRl c3RfZ2V0bm9kZXMobm9kZT1zZWxmKQorCisgICAgICAgIGlmIGRiX2Nvblsi aW5mbyJdID09ICJEYXRhYmFzZSBDb25uZWN0ZWQuIjoKKworICAgICAgICAg ICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoc2VsZi51cmwgKyBzdHIo c3J2X2dycCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJfaWQp LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9s bG93X3JlZGlyZWN0cz1UcnVlKQorCisgICAgICAgICAgICBzZWxmLmFzc2Vy dEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfcHV0LnB5IGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3Rz L3Rlc3RfZGJfcHV0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjgwOWE1MWUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVz dHMvdGVzdF9kYl9wdXQucHkKQEAgLTAsMCArMSw1MCBAQAorIyAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRv b2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0Fk bWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxl YXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGlt cG9ydCBjb25maWdfZGF0YQorZnJvbSBwZ2FkbWluLmJyb3dzZXIudGVzdHMu dGVzdF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0Q2FzZQoraW1wb3J0IGpzb24K K2Zyb20gcmVncmVzc2lvbi50ZXN0X3V0aWxzIGltcG9ydCBnZXRfaWRzCitm cm9tIHJlZ3Jlc3Npb24udGVzdF9ub2RlcyBpbXBvcnQgdGVzdF9nZXRub2Rl cworCisKK2NsYXNzIERhdGFiYXNlc1VwZGF0ZVRlc3RDYXNlKExvZ2luVGVz dENhc2UpOgorICAgICIiIgorICAgIFRoaXMgY2xhc3Mgd2lsbCB1cGRhdGUg dGhlIGRhdGFiYXNlIHVuZGVyIGxhc3QgYWRkZWQgc2VydmVyLgorICAgICIi IgorICAgIHByaW9yaXR5ID0gMTAKKworICAgIHNjZW5hcmlvcyA9IFsKKyAg ICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZGF0YWJhc2Ugbm9k ZS4KKyAgICAgICAgKCdDaGVjayBEYXRhYmFzZXMgTm9kZScsIGRpY3QodXJs PScvYnJvd3Nlci9kYXRhYmFzZS9vYmovJykpCisgICAgXQorCisgICAgZGVm IHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdp bGwgdXBkYXRlIHRoZSBjb21tZW50cyBmaWVsZCBvZiBkYXRhYmFzZS4iIiIK KworICAgICAgICBhbGxfaWQgPSBnZXRfaWRzKCkKKyAgICAgICAgc2VydmVy X2lkID0gYWxsX2lkWyJzaWQiXVswXQorICAgICAgICBkYl9pZCA9IGFsbF9p ZFsiZGlkIl1bMF0KKyAgICAgICAgc3J2X2dycCA9IGNvbmZpZ19kYXRhWyd0 ZXN0X3NlcnZlcl9ncm91cCddCisKKyAgICAgICAgZGJfY29uID0gdGVzdF9n ZXRub2Rlcyhub2RlPXNlbGYpCisKKyAgICAgICAgaWYgZGJfY29uWydkYXRh J11bImNvbm5lY3RlZCJdOgorCisgICAgICAgICAgICBkYXRhID0geyJjb21t ZW50cyI6IGNvbmZpZ19kYXRhWyJ0ZXN0X2RiX3VwZGF0ZV9kYXRhIl0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbInRl c3RfY29tbWVudCJdLAorICAgICAgICAgICAgICAgICAgICAiaWQiOiBkYl9p ZAorICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHV0X3Jl c3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KHNlbGYudXJsICsgc3RyKHNydl9n cnApICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHIoc2VydmVyX2lkKSArICcvJyArIHN0cihkYl9pZCks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkK KworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocHV0X3Jlc3BvbnNl LnN0YXR1c19jb2RlLCAyMDApCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZXN0cy9fX2lu aXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3JvbGVzL3Rlc3RzL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhMTFiZjgKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9yb2xlcy90ZXN0cy9fX2luaXRfXy5weQpAQCAtMCwwICsxLDE2IEBACisj ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3Rn cmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwg VGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJl IGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMK KyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20gcGdhZG1pbi51dGls cy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKKworCitjbGFzcyBS b2xlR2VuZXJhdG9yVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorCisg ICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgIHJldHVybgpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvcm9sZXMvdGVzdHMvdGVzdF9yb2xlX2FkZC5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL3Rl c3Rfcm9sZV9hZGQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uNjZkZTY0YwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL3Rl c3Rfcm9sZV9hZGQucHkKQEAgLTAsMCArMSw4OSBAQAorIyAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xz CisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWlu IERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNl ZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworCitmcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9y dCBjb25maWdfZGF0YSwgcGlja2xlX3BhdGgKK2Zyb20gcGdhZG1pbi5icm93 c2VyLnRlc3RzLnRlc3RfbG9naW4gaW1wb3J0IExvZ2luVGVzdENhc2UKK2lt cG9ydCBqc29uLCBwaWNrbGUsIHV1aWQsIG9zCitmcm9tIHJlZ3Jlc3Npb24u dGVzdF91dGlscyBpbXBvcnQgZ2V0X2lkcworCisKK2NsYXNzIExvZ2luUm9s ZUFkZFRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgorICAgICIiIiBUaGlzIGNs YXNzIHdpbGwgYWRkIGxvZ2luIHJvbGUgbm9kZSB1bmRlciBhZGRlZCBzZXJ2 ZXIuICIiIgorCisgICAgcHJpb3JpdHkgPSAxMgorCisgICAgc2NlbmFyaW9z ID0gWworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciByb2xl cyBub2RlLgorICAgICAgICAoJ0NoZWNrIFJvbGUgTm9kZScsIGRpY3QodXJs PScvYnJvd3Nlci9yb2xlL29iai8nKSkKKyAgICBdCisKKyAgICBkZWYgcnVu VGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBh ZGQgbmV3IHJvbGUgdW5kZXIgMXN0IHNlcnZlciBvZiB0cmVlIG5vZGUuICIi IgorCisgICAgICAgIHNydl9pZCA9IGdldF9pZHMoKQorCisgICAgICAgIHNl cnZlcl9pZCA9IHNydl9pZFsic2lkIl1bMF0KKworICAgICAgICBzcnZfZ3Jw ID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKworICAgICAg ICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoJ2Jyb3dzZXIvc2VydmVy L2Nvbm5lY3QvJyArIHN0cihzcnZfZ3JwKSArCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnLycgKyBzZXJ2ZXJfaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWRpY3QoCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzd29yZD1jb25m aWdfZGF0YQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Wyd0ZXN0X3NlcnZlcl9jcmVkZW50aWFscyddWzBdCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfZGJfcGFzc3dvcmQnXSks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3df cmVkaXJlY3RzPVRydWUpCisKKyAgICAgICAgc3J2X2Nvbm5lY3QgPSBqc29u LmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCkpCisKKyAgICAgICAgaWYg c3J2X2Nvbm5lY3RbJ2RhdGEnXVsnY29ubmVjdGVkJ106CisKKyAgICAgICAg ICAgIGRhdGEgPSB7CisgICAgICAgICAgICAgICAgICAgICJyb2xjYW5sb2dp biI6IGNvbmZpZ19kYXRhWyd0ZXN0X2xyX2NyZWRlbnRpYWxzJ10KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3Rl c3RfY2FuX2xvZ2luJ10sCisgICAgICAgICAgICAgICAgICAgICJyb2xjb25u bGltaXQiOiBjb25maWdfZGF0YVsndGVzdF9scl9jcmVkZW50aWFscyddCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFsndGVzdF9jb25uX2xpbWl0J10sCisgICAgICAgICAgICAgICAgICAgICJy b2xjcmVhdGVyb2xlIjogY29uZmlnX2RhdGFbJ3Rlc3RfbHJfY3JlZGVudGlh bHMnXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgWyd0ZXN0X2NyZWF0ZV9yb2xlJ10sCisgICAgICAgICAgICAg ICAgICAgICJyb2xpbmhlcml0IjogY29uZmlnX2RhdGFbJ3Rlc3RfbHJfY3Jl ZGVudGlhbHMnXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgWyd0ZXN0X3JvbGVfaW5oZXJpdCddLAorICAgICAgICAg ICAgICAgICAgICAicm9sbWVtYmVyc2hpcCI6IGNvbmZpZ19kYXRhWyd0ZXN0 X2xyX2NyZWRlbnRpYWxzJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFsndGVzdF9yb2xlX21lbWJlcnNoaXAn XSwKKyAgICAgICAgICAgICAgICAgICAgInJvbG5hbWUiOiBzdHIodXVpZC51 dWlkNCgpKVsxOjhdLAorICAgICAgICAgICAgICAgICAgICAicm9scGFzc3dv cmQiOiBjb25maWdfZGF0YVsndGVzdF9scl9jcmVkZW50aWFscyddCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyd0 ZXN0X2xyX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAgICAgICAgICJyb2x2 YWxpZHVudGlsIjogY29uZmlnX2RhdGFbJ3Rlc3RfbHJfY3JlZGVudGlhbHMn XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgWyd0ZXN0X2xyX3ZhbGlkaXR5J10sCisgICAgICAgICAgICAgICAg ICAgICJzZWNsYWJlbHMiOiBjb25maWdfZGF0YVsndGVzdF9scl9jcmVkZW50 aWFscyddCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFsndGVzdF9zZWNfbGFibGUnXSwKKyAgICAgICAgICAgICAgICAg ICAgInZhcmlhYmxlcyI6IGNvbmZpZ19kYXRhWyd0ZXN0X2xyX2NyZWRlbnRp YWxzJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgWyd0ZXN0X3ZhcmlhYmxlJ10KKyAgICAgICAgICAgICAgICAgICB9 CisKKyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdChz ZWxmLnVybCArIHN0cihzcnZfZ3JwKSArICcvJworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKyBzZXJ2ZXJfaWQgKyAnLycsIGRh dGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisK KyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwb25zZS5zdGF0dXNf Y29kZSwgMjAwKQorCisgICAgICAgICAgICByZXNwZGF0YSA9IGpzb24ubG9h ZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKworICAgICAgICAgICAgbHJf aWQgPSByZXNwZGF0YVsnbm9kZSddWydfaWQnXQorCisgICAgICAgICAgICBp ZiBvcy5wYXRoLmlzZmlsZShwaWNrbGVfcGF0aCk6CisgICAgICAgICAgICAg ICAgZXhzdF9zZXJ2ZXJfaWQgPSBvcGVuKHBpY2tsZV9wYXRoLCAncmInKQor ICAgICAgICAgICAgICAgIGFsbF9pZCA9IHBpY2tsZS5sb2FkKGV4c3Rfc2Vy dmVyX2lkKQorICAgICAgICAgICAgICAgIHBpY2tsZV9pZF9kaWN0ID0gYWxs X2lkCisKKyAgICAgICAgICAgIHBpY2tsZV9pZF9kaWN0WyJscmlkIl0uYXBw ZW5kKGxyX2lkKQorCisgICAgICAgICAgICBscl9vdXRwdXQgPSBvcGVuKHBp Y2tsZV9wYXRoLCAnd2InKQorICAgICAgICAgICAgcGlja2xlLmR1bXAocGlj a2xlX2lkX2RpY3QsIGxyX291dHB1dCkKKyAgICAgICAgICAgIGxyX291dHB1 dC5jbG9zZSgpCisKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL3Rlc3Rfcm9sZV9k ZWxldGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9yb2xlcy90ZXN0cy90ZXN0X3JvbGVfZGVsZXRlLnB5Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0NWZkN2MKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9yb2xlcy90ZXN0cy90ZXN0X3JvbGVfZGVsZXRlLnB5CkBA IC0wLDAgKzEsNDcgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMg cGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQg KEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFt CisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3Rn cmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKwor ZnJvbSByZWdyZXNzaW9uLmNvbmZpZyBpbXBvcnQgY29uZmlnX2RhdGEKK2Zy b20gcGdhZG1pbi5icm93c2VyLnRlc3RzLnRlc3RfbG9naW4gaW1wb3J0IExv Z2luVGVzdENhc2UKK2ltcG9ydCBqc29uCitmcm9tIC50ZXN0X3JvbGVfZnVu YyBpbXBvcnQgdGVzdF9nZXRyb2xlCitmcm9tIHJlZ3Jlc3Npb24udGVzdF91 dGlscyBpbXBvcnQgZ2V0X2lkcworCisKK2NsYXNzIExvZ2luUm9sZURlbGV0 ZVRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgorICAgICIiIiBUaGlzIGNsYXNz IHdpbGwgZGVsZXRlIGFkZGVkIGxvZ2luIHJvbGUgcHJlc2VudCB1bmRlciBz ZXJ2ZXIgbm9kZS4gIiIiCisKKyAgICBwcmlvcml0eSA9IDE0CisKKyAgICBz Y2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwg Zm9yIHJvbGVzIG5vZGUuCisgICAgICAgICgnQ2hlY2sgUm9sZSBOb2RlJywg ZGljdCh1cmw9Jy9icm93c2VyL3JvbGUvb2JqLycpKQorICAgIF0KKworICAg IGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlv biB3aWxsIGRlbGV0ZSB0aGUgcm9sZS4gIiIiCisKKyAgICAgICAgYWxsX2lk ID0gZ2V0X2lkcygpCisgICAgICAgIHNlcnZlcl9pZCA9IGFsbF9pZFsic2lk Il1bMF0KKyAgICAgICAgc3J2X2dycCA9IGNvbmZpZ19kYXRhWyd0ZXN0X3Nl cnZlcl9ncm91cCddCisKKyAgICAgICAgcmVzcGRhdGEgPSB0ZXN0X2dldHJv bGUobm9kZT1zZWxmKQorCisgICAgICAgIHJvbGVfaWQgPSByZXNwZGF0YVsn b2lkJ10KKworICAgICAgICBpZiBsZW4ocmVzcGRhdGEpID09IDA6CisgICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5vIHJvbGVzKHMpIHRvIGRlbGV0 ZSEhISIpCisKKyAgICAgICAgZGVsX3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIu ZGVsZXRlKHNlbGYudXJsICsgc3RyKHNydl9ncnApICsgJy8nICsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZXJ2 ZXJfaWQpICsgJy8nICsgc3RyKHJvbGVfaWQpLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1U cnVlKQorCisgICAgICAgIGRlbF9yZXNwZGF0YSA9IGpzb24ubG9hZHMoZGVs X3Jlc3BvbnNlLmRhdGEuZGVjb2RlKCkpCisKKyAgICAgICAgc2VsZi5hc3Nl cnRUcnVlKGRlbF9yZXNwZGF0YVsnc3VjY2VzcyddLCAxKQpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL3Rlc3Rf cm9sZV9mdW5jLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvcm9sZXMvdGVzdHMvdGVzdF9yb2xlX2Z1bmMucHkKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2UwNmIwOAotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL3Rlc3Rfcm9sZV9mdW5jLnB5CkBA IC0wLDAgKzEsNDggQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMg cGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQg KEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFt CisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3Rn cmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKwor ZnJvbSByZWdyZXNzaW9uLmNvbmZpZyBpbXBvcnQgY29uZmlnX2RhdGEKK2lt cG9ydCBqc29uCitmcm9tIHJlZ3Jlc3Npb24udGVzdF91dGlscyBpbXBvcnQg Z2V0X2lkcworCisKK2RlZiB0ZXN0X2dldHJvbGUobm9kZT1Ob25lKToKKwor ICAgIGlmIG5vdCBub2RlOgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAg YWxsX2lkID0gZ2V0X2lkcygpCisKKyAgICBzZXJ2ZXJfaWQgPSBhbGxfaWRb InNpZCJdWzBdCisgICAgcm9sZV9pZCA9IGFsbF9pZFsibHJpZCJdWzBdCisK KyAgICBzcnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3Vw J10KKworICAgIHJlc3BvbnNlID0gbm9kZS50ZXN0ZXIucG9zdCgnYnJvd3Nl ci9zZXJ2ZXIvY29ubmVjdC97MH0vezF9Jy5mb3JtYXQKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHNydl9ncnAsIHNlcnZlcl9pZCksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGljdCgKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ9Y29uZmln X2RhdGEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0 X3NlcnZlcl9jcmVkZW50aWFscyddWzBdCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFsndGVzdF9kYl9wYXNzd29yZCddKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVl KQorCisgICAgc3J2X2Nvbm5lY3QgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRh dGEuZGVjb2RlKCkpCisKKyAgICBpZiBzcnZfY29ubmVjdFsnZGF0YSddWydj b25uZWN0ZWQnXToKKworICAgICAgICByZXNwb25zZSA9IG5vZGUudGVzdGVy LmdldCgnL2Jyb3dzZXIvcm9sZS9vYmovezB9L3sxfS97Mn0nLmZvcm1hdAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3J2X2dycCwg c2VydmVyX2lkLCByb2xlX2lkKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAg ICAgIHJlc3BkYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29k ZSgpKQorCisgICAgICAgIHJldHVybiByZXNwZGF0YQorCisKKwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvcm9sZXMvdGVzdHMvdGVzdF9yb2xlX2dldC5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL3Rl c3Rfcm9sZV9nZXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uNjM2Y2UxYwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL3Rl c3Rfcm9sZV9nZXQucHkKQEAgLTAsMCArMSw1NiBAQAorIyAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xz CisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWlu IERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNl ZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworCitmcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9y dCBjb25maWdfZGF0YQorZnJvbSBwZ2FkbWluLmJyb3dzZXIudGVzdHMudGVz dF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0Q2FzZQoraW1wb3J0IGpzb24KK2Zy b20gcmVncmVzc2lvbi51dGlscyBpbXBvcnQgZ2V0X2lkcworCisKK2NsYXNz IExvZ2luUm9sZUdldFRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgorICAgICIi IgorICAgIFRoaXMgY2xhc3Mgd2lsbCBmZXRjaCBsb2dpbiByb2xlcyBub2Rl IHByZXNlbnQgdW5kZXIgdGhlIG9iamVjdCBicm93c2VyJ3MKKyAgICB0cmVl IG5vZGUgYnkgcmVzcG9uc2UgY29kZS4KKyAgICAiIiIKKworICAgIHByaW9y aXR5ID0gMTMKKworICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRj aGluZyBkZWZhdWx0IFVSTCBmb3Igcm9sZXMgbm9kZS4KKyAgICAgICAgKCdD aGVjayBSb2xlIE5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIvcm9sZS9vYmov JykpCisgICAgXQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAg ICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggYWRkZWQgbG9naW4gcm9s ZSB1bmRlciB0cmVlIG5vZGUuICIiIgorCisgICAgICAgIGFsbF9pZCA9IGdl dF9pZHMoKQorCisgICAgICAgIHNlcnZlcl9pZCA9IGFsbF9pZFsic2lkIl1b MF0KKyAgICAgICAgcm9sZV9pZCA9IGFsbF9pZFsibHJpZCJdWzBdCisgICAg ICAgIHNydl9ncnAgPSBjb25maWdfZGF0YVsndGVzdF9zZXJ2ZXJfZ3JvdXAn XQorCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgnYnJv d3Nlci9zZXJ2ZXIvY29ubmVjdC8nICsgc3RyKHNydl9ncnApICsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvJyArIHNlcnZlcl9p ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9 ZGljdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh c3N3b3JkPWNvbmZpZ19kYXRhCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBbJ3Rlc3Rfc2VydmVyX2NyZWRlbnRpYWxzJ11bMF0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsndGVzdF9kYl9w YXNzd29yZCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKworICAgICAgICBzcnZfY29u bmVjdCA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKwor ICAgICAgICBpZiBzcnZfY29ubmVjdFsnZGF0YSddWydjb25uZWN0ZWQnXToK KworICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoc2Vs Zi51cmwgKyBzdHIoc3J2X2dycCkgKyAnLycgKworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycg KyBzdHIocm9sZV9pZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKyAgICAg ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2Rl LCAyMDApCisKKwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVzdHMvdGVzdF9yb2xlX3B1 dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3JvbGVzL3Rlc3RzL3Rlc3Rfcm9sZV9wdXQucHkKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzQ4NzlmNAotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3JvbGVzL3Rlc3RzL3Rlc3Rfcm9sZV9wdXQucHkKQEAgLTAsMCArMSw1 MSBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQg LSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAt IDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBz b2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNl bmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHJlZ3Jl c3Npb24uY29uZmlnIGltcG9ydCBjb25maWdfZGF0YQorZnJvbSBwZ2FkbWlu LmJyb3dzZXIudGVzdHMudGVzdF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0Q2Fz ZQoraW1wb3J0IGpzb24KK2Zyb20gLnRlc3Rfcm9sZV9mdW5jIGltcG9ydCB0 ZXN0X2dldHJvbGUKK2Zyb20gcmVncmVzc2lvbi50ZXN0X3V0aWxzIGltcG9y dCBnZXRfaWRzCisKKworY2xhc3MgTG9naW5Sb2xlUHV0VGVzdENhc2UoTG9n aW5UZXN0Q2FzZSk6CisgICAgIiIiVGhpcyBjbGFzcyB1cGRhdGUgdGhlIGNv bW1lbnQgZmllbGQgb2YgbG9naW4gcm9sZXMgbm9kZS4iIiIKKworICAgIHBy aW9yaXR5ID0gMTMKKworICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBG ZXRjaGluZyBkZWZhdWx0IFVSTCBmb3Igcm9sZXMgbm9kZS4KKyAgICAgICAg KCdDaGVjayBSb2xlIE5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIvcm9sZS9v YmovJykpCisgICAgXQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAg ICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHRoZSByb2xlJ3Mg Y29tbWVudCBmaWVsZC4iIiIKKworICAgICAgICBhbGxfaWQgPSBnZXRfaWRz KCkKKworICAgICAgICBzcnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2Vy dmVyX2dyb3VwJ10KKworICAgICAgICBzZXJ2ZXJfaWQgPSBhbGxfaWRbInNp ZCJdWzBdCisKKyAgICAgICAgcmVzcGRhdGEgPSB0ZXN0X2dldHJvbGUobm9k ZT1zZWxmKQorCisgICAgICAgIHJvbGVfaWQgPSByZXNwZGF0YVsnb2lkJ10K KworICAgICAgICBkYXRhID0geworICAgICAgICAgICAgICAgICJkZXNjcmlw dGlvbiI6IGNvbmZpZ19kYXRhWyJ0ZXN0X2xyX3VwZGF0ZV9kYXRhIl0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsidGVz dF9jb21tZW50Il0sCisgICAgICAgICAgICAgICAgIm9pZCI6IHJvbGVfaWQK KyAgICAgICAgICAgICAgIH0KKworICAgICAgICBwdXRfcmVzcG9uc2UgPSBz ZWxmLnRlc3Rlci5wdXQoc2VsZi51cmwgKyBzdHIoc3J2X2dycCkgKyAnLycg KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry KHNlcnZlcl9pZCkgKyAnLycgKyBzdHIocm9sZV9pZCksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMo ZGF0YSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisKKyAgICAgICAgc2VsZi5hc3Nl cnRFcXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMv dGVzdHMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90ZXN0cy9fX2luaXRfXy5w eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOGZjYzE2 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvX19pbml0X18u cHkKQEAgLTAsMCArMSwxNiBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor IworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHly aWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50 IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUg UG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCisKKworY2xhc3MgVGJsc3BhY2VHZW5lcmF0b3JUZXN0Q2Fz ZShCYXNlVGVzdEdlbmVyYXRvcik6CisKKyAgICBkZWYgcnVuVGVzdChzZWxm KToKKyAgICAgICAgcmV0dXJuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdGVzdF90YnNwY19hZGQu cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy90YWJsZXNwYWNlcy90ZXN0cy90ZXN0X3Ric3BjX2FkZC5weQpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZDE2NTFmCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdGVzdF90YnNwY19hZGQucHkK QEAgLTAsMCArMSw3OCBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIwor IyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdo dCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRl YW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9z dGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor Citmcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25maWdfZGF0YSwg cGlja2xlX3BhdGgKK2Zyb20gcGdhZG1pbi5icm93c2VyLnRlc3RzLnRlc3Rf bG9naW4gaW1wb3J0IExvZ2luVGVzdENhc2UKK2ltcG9ydCBqc29uLCBwaWNr bGUsIHV1aWQsIG9zCitmcm9tIHJlZ3Jlc3Npb24udGVzdF91dGlscyBpbXBv cnQgZ2V0X2lkcworCisKK2NsYXNzIFRic3BjQWRkVGVzdENhc2UoTG9naW5U ZXN0Q2FzZSk6CisgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBhZGQgdGFibGVz cGFjZSBub2RlIHVuZGVyIHNlcnZlci4gIiIiCisgICAgcHJpb3JpdHkgPSAx NQorCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5nIGRl ZmF1bHQgVVJMIGZvciB0YWJsZXNwYWNlIG5vZGUuCisgICAgICAgICgnQ2hl Y2sgVGFibGVzcGFjZSBOb2RlJywgZGljdCh1cmw9Jy9icm93c2VyL3RhYmxl c3BhY2Uvb2JqLycpKQorICAgIF0KKworICAgIGRlZiBydW5UZXN0KHNlbGYp OgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCBuZXcgdGFi bGVzcGFjZSB1bmRlciBzZXJ2ZXIgbm9kZS4iIiIKKworICAgICAgICBzcnZf aWQgPSBnZXRfaWRzKCkKKworICAgICAgICBzcnZfZ3JwID0gY29uZmlnX2Rh dGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKworICAgICAgICBzZXJ2ZXJfaWQg PSBzcnZfaWRbInNpZCJdWzBdCisKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxm LnRlc3Rlci5wb3N0KCdicm93c2VyL3NlcnZlci9jb25uZWN0LycgKyBzdHIo c3J2X2dycCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJy8nICsgc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGF0YT1kaWN0KAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGFzc3dvcmQ9Y29uZmlnX2RhdGEKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsndGVzdF9zZXJ2ZXJfY3Jl ZGVudGlhbHMnXVswXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgWyd0ZXN0X2RiX3Bhc3N3b3JkJ10pLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQor CisgICAgICAgIHNydl9jb25uZWN0ID0ganNvbi5sb2FkcyhyZXNwb25zZS5k YXRhLmRlY29kZSgpKQorCisgICAgICAgIGlmIHNydl9jb25uZWN0WydkYXRh J11bJ2Nvbm5lY3RlZCddOgorICAgICAgICAgICAgZGF0YSA9IFwKKyAgICAg ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogc3Ry KHV1aWQudXVpZDQoKSlbMTo4XSwKKyAgICAgICAgICAgICAgICAgICAgInNl Y2xhYmVscyI6IGNvbmZpZ19kYXRhWyJ0ZXN0X3RhYmxlc3BjX2NyZWRlbnRp YWxzIl0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgWyJ0ZXN0X3NwY19zZWNsYWJsZSJdLAorICAgICAgICAgICAgICAg ICAgICAic3BjYWNsIjogY29uZmlnX2RhdGFbInRlc3RfdGFibGVzcGNfY3Jl ZGVudGlhbHMiXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBbInRlc3Rfc3BjX2FjbCJdLAorICAgICAgICAgICAgICAgICAg ICAic3BjbG9jYXRpb24iOiBjb25maWdfZGF0YVsidGVzdF90YWJsZXNwY19j cmVkZW50aWFscyJdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgWyJ0ZXN0X3NwY19sb2NhdGlvbiJdLAorICAgICAg ICAgICAgICAgICAgICAic3Bjb3B0aW9ucyI6IGNvbmZpZ19kYXRhWyJ0ZXN0 X3RhYmxlc3BjX2NyZWRlbnRpYWxzIl0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFsidGVzdF9zcGNfb3B0cyJdLAor ICAgICAgICAgICAgICAgICAgICAic3BjdXNlciI6IGNvbmZpZ19kYXRhWyJ0 ZXN0X3RhYmxlc3BjX2NyZWRlbnRpYWxzIl0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFsidGVzdF9zcGNfdXNlciJdCisg ICAgICAgICAgICAgICAgfQorIworICAgICAgICAgICAgcmVzcG9uc2UgPSBz ZWxmLnRlc3Rlci5wb3N0KHNlbGYudXJsICsgc3RyKHNydl9ncnApICsgJy8n CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArIHNlcnZlcl9pZCArICcvJywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250 ZW50X3R5cGU9J2h0bWwvanNvbicpCisgICAgICAgICAgICBzZWxmLmFzc2Vy dFRydWUocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgICAg IHJlc3BkYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgp KQorICAgICAgICAgICAgdGJzcGNfaWQgPSByZXNwZGF0YVsnbm9kZSddWydf aWQnXQorCisgICAgICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShwaWNrbGVf cGF0aCk6CisgICAgICAgICAgICAgICAgZXhzdF9pZHMgPSBvcGVuKHBpY2ts ZV9wYXRoLCAncmInKQorICAgICAgICAgICAgICAgIGFsbF9pZCA9IHBpY2ts ZS5sb2FkKGV4c3RfaWRzKQorICAgICAgICAgICAgICAgIHBpY2tsZV9pZF9k aWN0ID0gYWxsX2lkCisKKyAgICAgICAgICAgIHBpY2tsZV9pZF9kaWN0WyJ0 c2lkIl0uYXBwZW5kKHRic3BjX2lkKQorCisgICAgICAgICAgICBzcGNfb3V0 cHV0ID0gb3BlbihwaWNrbGVfcGF0aCwgJ3diJykKKyAgICAgICAgICAgIHBp Y2tsZS5kdW1wKHBpY2tsZV9pZF9kaWN0LCBzcGNfb3V0cHV0KQorICAgICAg ICAgICAgc3BjX291dHB1dC5jbG9zZSgpCisKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3Bh Y2VzL3Rlc3RzL3Rlc3RfdGJzcGNfZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVz dHMvdGVzdF90YnNwY19kZWxldGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uODY3NGJhNAotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxl c3BhY2VzL3Rlc3RzL3Rlc3RfdGJzcGNfZGVsZXRlLnB5CkBAIC0wLDAgKzEs NTEgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0 IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMg LSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMg c29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGlj ZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZnJvbSByZWdy ZXNzaW9uLmNvbmZpZyBpbXBvcnQgY29uZmlnX2RhdGEKK2Zyb20gcGdhZG1p bi5icm93c2VyLnRlc3RzLnRlc3RfbG9naW4gaW1wb3J0IExvZ2luVGVzdENh c2UKK2ltcG9ydCBqc29uCitmcm9tIHJlZ3Jlc3Npb24udGVzdF91dGlscyBp bXBvcnQgZ2V0X2lkcworZnJvbSAudGVzdF90YnNwY19mdW5jIGltcG9ydCB0 ZXN0X2dldHRibHNwYworCitjbGFzcyBUYnNwY0RlbGV0ZVRlc3RDYXNlKExv Z2luVGVzdENhc2UpOgorICAgICIiIgorICAgIFRoaXMgY2xhc3Mgd2lsbCBk ZWxldGUgdGFibGVzcGFjZSBub2RlIHByZXNlbnQgdW5kZXIgdGhlIG9iamVj dCBicm93c2VyJ3MKKyAgICB0cmVlIG5vZGUgYnkgcmVzcG9uc2UgY29kZS4K KyAgICAiIiIKKworICAgIHByaW9yaXR5ID0gMTgKKworICAgIHNjZW5hcmlv cyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgdGFi bGVzcGFjZSBub2RlLgorICAgICAgICAoJ0NoZWNrIFRhYmxlc3BhY2UgTm9k ZScsIGRpY3QodXJsPScvYnJvd3Nlci90YWJsZXNwYWNlL29iai8nKSkKKyAg ICBdCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRo aXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgdGhlIGFkZGVkIHRhYmxlc3BhY2Ui IiIKKworICAgICAgICBhbGxfaWQgPSBnZXRfaWRzKCkKKworICAgICAgICBz cnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKwor ICAgICAgICBzZXJ2ZXJfaWQgPSBhbGxfaWRbInNpZCJdWzBdCisKKyAgICAg ICAgcmVzcGRhdGEgPSB0ZXN0X2dldHRibHNwYyhub2RlPXNlbGYpCisKKyAg ICAgICAgdGJzcGNfaWQgPSByZXNwZGF0YVsnb2lkJ10KKworICAgICAgICBp ZiBsZW4ocmVzcGRhdGEpID09IDA6CisgICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIk5vIHRhYmxlc3BhY2UocykgdG8gZGVsZXRlISEhIikKKworICAg ICAgICBkZWxfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoc2VsZi51 cmwgKyBzdHIoc3J2X2dycCkgKyAnLycgKworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycg KyBzdHIodGJzcGNfaWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorCisgICAg ICAgIGRlbF9yZXNwZGF0YSA9IGpzb24ubG9hZHMoZGVsX3Jlc3BvbnNlLmRh dGEuZGVjb2RlKCkpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGRlbF9y ZXNwZGF0YVsnc3VjY2VzcyddLCAxKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3Rlc3RfdGJzcGNf ZnVuYy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3Rlc3RfdGJzcGNfZnVuYy5weQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYWJjZjhkCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdGVzdF90YnNwY19m dW5jLnB5CkBAIC0wLDAgKzEsNDUgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBD b3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9w bWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIg dGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKworZnJvbSByZWdyZXNzaW9uLnRlc3RfdXRpbHMgaW1wb3J0IGdl dF9pZHMKK2Zyb20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0IGNvbmZpZ19k YXRhCitpbXBvcnQganNvbgorCisKK2RlZiB0ZXN0X2dldHRibHNwYyhub2Rl PU5vbmUpOgorCisgICAgaWYgbm90IG5vZGU6CisgICAgICAgIHJldHVybiBO b25lCisKKyAgICBhbGxfaWQgPSBnZXRfaWRzKCkKKworICAgIHNlcnZlcl9p ZCA9IGFsbF9pZFsic2lkIl1bMF0KKyAgICB0YnNwY19pZCA9IGFsbF9pZFsi dHNpZCJdWzBdCisKKyAgICBzcnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rf c2VydmVyX2dyb3VwJ10KKworICAgIHJlc3BvbnNlID0gbm9kZS50ZXN0ZXIu cG9zdCgnYnJvd3Nlci9zZXJ2ZXIvY29ubmVjdC97MH0vezF9Jy5mb3JtYXQK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNydl9ncnAsIHNl cnZlcl9pZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh dGE9ZGljdChwYXNzd29yZD1jb25maWdfZGF0YQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBbJ3Rlc3Rfc2VydmVyX2NyZWRlbnRpYWxzJ11b MF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X2Ri X3Bhc3N3b3JkJ10pLCBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisKKyAgICBz cnZfY29ubmVjdCA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUo KSkKKworICAgIGlmIHNydl9jb25uZWN0WydkYXRhJ11bJ2Nvbm5lY3RlZCdd OgorCisgICAgICAgIHJlc3BvbnNlID0gbm9kZS50ZXN0ZXIuZ2V0KCcvYnJv d3Nlci90YWJsZXNwYWNlL29iai97MH0vezF9L3syfScuZm9ybWF0CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzcnZfZ3JwLCBzZXJ2 ZXJfaWQsIHRic3BjX2lkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAgICAg IG5vZGUuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDAp CisKKyAgICAgICAgcmVzcGRhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRh dGEuZGVjb2RlKCkpCisKKyAgICAgICAgcmV0dXJuIHJlc3BkYXRhClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMv dGVzdHMvdGVzdF90YnNwY19nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90ZXN0cy90ZXN0 X3Ric3BjX2dldC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi4wZDg1ZjQ2Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVz dHMvdGVzdF90YnNwY19nZXQucHkKQEAgLTAsMCArMSw1NyBAQAorIyAjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FM IFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBw Z0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyBy ZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHJlZ3Jlc3Npb24uY29uZmln IGltcG9ydCBjb25maWdfZGF0YQorZnJvbSBwZ2FkbWluLmJyb3dzZXIudGVz dHMudGVzdF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0Q2FzZQoraW1wb3J0IGpz b24KK2Zyb20gcmVncmVzc2lvbi50ZXN0X3V0aWxzIGltcG9ydCBnZXRfaWRz CisKKworY2xhc3MgVGJzcGNHZXRUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToK KyAgICAiIiIKKyAgICBUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggYWRkZWQgdGFi bGVzcGFjZSB1bmRlciB0aGUgb2JqZWN0IGJyb3dzZXIncworICAgIHRyZWUg bm9kZSBieSByZXNwb25zZSBjb2RlLgorICAgICIiIgorICAgIHByaW9yaXR5 ID0gMTYKKworICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGlu ZyBkZWZhdWx0IFVSTCBmb3IgdGFibGVzcGFjZSBub2RlLgorICAgICAgICAo J0NoZWNrIFRhYmxlc3BhY2UgTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci90 YWJsZXNwYWNlL29iai8nKSkKKyAgICBdCisKKyAgICBkZWYgcnVuVGVzdChz ZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBnZXQgdGhl IGFkZGVkIHRhYmxlc3BhY2UuIiIiCisKKyAgICAgICAgYWxsX2lkID0gZ2V0 X2lkcygpCisKKyAgICAgICAgc3J2X2dycCA9IGNvbmZpZ19kYXRhWyd0ZXN0 X3NlcnZlcl9ncm91cCddCisKKyAgICAgICAgc2VydmVyX2lkID0gYWxsX2lk WyJzaWQiXVswXQorICAgICAgICB0YnNwY19pZCA9IGFsbF9pZFsidHNpZCJd WzBdCisKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KCdi cm93c2VyL3NlcnZlci9jb25uZWN0LycgKyBzdHIoc3J2X2dycCkgKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8nICsgc2VydmVy X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YT1kaWN0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cGFzc3dvcmQ9Y29uZmlnX2RhdGEKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFsndGVzdF9zZXJ2ZXJfY3JlZGVudGlhbHMnXVswXQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X2Ri X3Bhc3N3b3JkJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorCisgICAgICAgIHNydl9j b25uZWN0ID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgpKQor CisgICAgICAgIGlmIHNydl9jb25uZWN0WydkYXRhJ11bJ2Nvbm5lY3RlZCdd OgorCisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldChz ZWxmLnVybCArIHN0cihzcnZfZ3JwKSArICcvJyArCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VydmVyX2lkKSArICcv JyArIHN0cih0YnNwY19pZCksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKyAg ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19j b2RlLCAyMDApCisKKyAgICAgICAgICAgIHJlc3BkYXRhID0ganNvbi5sb2Fk cyhyZXNwb25zZS5kYXRhLmRlY29kZSgpKQorICAgICAgICAgICAgc2VsZi5h c3NlcnRUcnVlKHJlc3BkYXRhWydvaWQnXSwgdGJzcGNfaWQpCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy90YWJsZXNwYWNlcy90ZXN0cy90ZXN0X3Ric3BjX3B1dC5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3Bh Y2VzL3Rlc3RzL3Rlc3RfdGJzcGNfcHV0LnB5Cm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjU5YTM4ZjMKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90 YWJsZXNwYWNlcy90ZXN0cy90ZXN0X3Ric3BjX3B1dC5weQpAQCAtMCwwICsx LDU2IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4g NCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEz IC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlz IHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExp Y2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20gcmVn cmVzc2lvbi5jb25maWcgaW1wb3J0IGNvbmZpZ19kYXRhCitmcm9tIHBnYWRt aW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2luIGltcG9ydCBMb2dpblRlc3RD YXNlCitpbXBvcnQganNvbgorZnJvbSAudGVzdF90YnNwY19mdW5jIGltcG9y dCB0ZXN0X2dldHRibHNwYworZnJvbSByZWdyZXNzaW9uLnRlc3RfdXRpbHMg aW1wb3J0IGdldF9pZHMKKworCitjbGFzcyBUYnNwY1VwZGF0ZVRlc3RDYXNl KExvZ2luVGVzdENhc2UpOgorICAgICIiIgorICAgIFRoaXMgY2xhc3Mgd2ls bCB1cGRhdGUgY29tbWVudCBmaWVsZCBvZiAgYWRkZWQgdGFibGVzcGFjZSB1 bmRlciB0aGUKKyAgICBvYmplY3QgYnJvd3NlcidzIHRyZWUgbm9kZS4KKyAg ICAiIiIKKworICAgIHByaW9yaXR5ID0gMTcKKworICAgIHNjZW5hcmlvcyA9 IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgdGFibGVz cGFjZSBub2RlLgorICAgICAgICAoJ0NoZWNrIFRhYmxlc3BhY2UgTm9kZScs IGRpY3QodXJsPScvYnJvd3Nlci90YWJsZXNwYWNlL29iai8nKSkKKyAgICBd CisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMg ZnVuY3Rpb24gd2lsbCB1cGRhdGUgdGhlIGFkZGVkIHRhYmxlc3BhY2UuIiIi CisKKyAgICAgICAgYWxsX2lkID0gZ2V0X2lkcygpCisKKyAgICAgICAgc2Vy dmVyX2lkID0gYWxsX2lkWyJzaWQiXVswXQorICAgICAgICBzcnZfZ3JwID0g Y29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKworICAgICAgICBy ZXNwZGF0YSA9IHRlc3RfZ2V0dGJsc3BjKG5vZGU9c2VsZikKKworICAgICAg ICB0YnNwY19pZCA9IHJlc3BkYXRhWydvaWQnXQorCisgICAgICAgIGRhdGEg PSBcCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgImRlc2NyaXB0 aW9uIjogY29uZmlnX2RhdGFbInRlc3RfbHJfdXBkYXRlX2RhdGEiXQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsidGVzdF9jb21tZW50Il0s CisgICAgICAgICAgICAgICAgImlkIjogdGJzcGNfaWQKKyAgICAgICAgICAg IH0KKworICAgICAgICBwdXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQo c2VsZi51cmwgKyBzdHIoc3J2X2dycCkgKyAnLycgKworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAn LycgKyBzdHIodGJzcGNfaWQpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGly ZWN0cz1UcnVlKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHB1dF9y ZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3Rz L19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvdGVzdHMvX19pbml0X18ucHkKaW5kZXggMjhjZGI5NC4u MzlkNDgyMyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvX19pbml0X18ucHkKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMv X19pbml0X18ucHkKQEAgLTEyLDQgKzEyLDQgQEAgZnJvbSBwZ2FkbWluLnV0 aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogCiBjbGFzcyBT ZXJ2ZXJHZW5lcmF0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAg ICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgcHJpbnQgKCJJbiBTZXJ2 ZXJHZW5lcmF0ZVRlc3RDYXNlLi4uIikKKyAgICAgICAgcmV0dXJuIApkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfYWRkLnB5IGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2 ZXJfYWRkLnB5CmluZGV4IDBhZjEzZDMuLjc0NTI2YWUgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rl c3RzL3Rlc3Rfc2VydmVyX2FkZC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9h ZGQucHkKQEAgLTgsMTYgKzgsMTQgQEAKICMgIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKIAogaW1wb3J0IGpzb24KLQoraW1wb3J0IHBpY2tsZQor aW1wb3J0IG9zCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xv Z2luIGltcG9ydCBMb2dpblRlc3RDYXNlCi1mcm9tIHJlZ3Jlc3Npb24uY29u ZmlnIGltcG9ydCBjb25maWdfZGF0YQorZnJvbSByZWdyZXNzaW9uLmNvbmZp ZyBpbXBvcnQgY29uZmlnX2RhdGEsIHBpY2tsZV9wYXRoCiAKIAogY2xhc3Mg U2VydmVyc0FkZFRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgotICAgICIiIgot ICAgIFRoaXMgY2xhc3Mgd2lsbCBhZGQgdGhlIHNlcnZlcnMgdW5kZXIgZGVm YXVsdCBzZXJ2ZXIgZ3JvdXAgYW5kIHZlcmlmeSB3aXRoCi0gICAgc2VydmVy J3MgbmFtZS4KLSAgICAiIiIKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFk ZCB0aGUgc2VydmVycyB1bmRlciBkZWZhdWx0IHNlcnZlciBncm91cC4gIiIi CiAKICAgICBwcmlvcml0eSA9IDQKIApAQCAtMjcsMTAgKzI1LDMxIEBAIGNs YXNzIFNlcnZlcnNBZGRUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToKICAgICBd CiAKICAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiCi0gICAg ICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgdGhlIHNlcnZlciB1bmRlciBk ZWZhdWx0IHNlcnZlciBncm91cC4KLSAgICAgICAgVmVyaWZ5IHRoZSBhZGRl ZCBzZXJ2ZXIgd2l0aCByZXNwb25zZSBjb2RlIGFzIHdlbGwgYXMgc2VydmVy IG5hbWUuCi0gICAgICAgICIiIgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlv biB3aWxsIGFkZCB0aGUgc2VydmVyIHVuZGVyIGRlZmF1bHQgc2VydmVyIGdy b3VwLiIiIgorCisgICAgICAgICMgU3RvcmluZyBwYXJlbnQgaWQncyBpbnRv IHBpY2tsZSBkaWN0CisgICAgICAgIHBpY2tsZV9pZF9kaWN0ID0geworICAg ICAgICAgICAgInNpZCI6IFtdLCAgI3NlcnZlcgorICAgICAgICAgICAgImRp ZCI6IFtdLCAgI2RhdGFiYXNlCisgICAgICAgICAgICAibHJpZCI6IFtdLCAj bG9naW4gcm9sZQorICAgICAgICAgICAgInRzaWQiOiBbXSwgI3RhYmxzcGFj ZQorICAgICAgICAgICAgImNpZCI6IFtdLCAgI2Nhc3QKKyAgICAgICAgICAg ICJlaWQiOiBbXSwgICNleHRlbnRpb24KKyAgICAgICAgICAgICJsaWQiOiBb MTIzOTddLCAjbGFuZ3VhZ2UKKyAgICAgICAgICAgICJzY2lkIjogW10sICAg ICAjc2NoZW1hCisgICAgICAgICAgICAidGZuaWQiOiBbXSwgICAgI3RyaWdn ZXIgZnVuY3Rpb24KKyAgICAgICAgICAgICJldGlkIjogW10sICAgICAjZXZl bnQgdHJpZ2dlcgorICAgICAgICAgICAgImNvaWQiOiBbXSwgICAgICNjb2xs YXRpb24KKyAgICAgICAgICAgICJmaWQiOiBbXSwgICNGRFcKKyAgICAgICAg ICAgICJkb2lkIjogW10sICNEb21haW4KKyAgICAgICAgICAgICJzZWlkIjog W10sICAjU2VxdWVuY2UKKyAgICAgICAgICAgICJ0aWQiOiBbXSwgICAjdGFi bGUKKyAgICAgICAgICAgICJ2aWQiOiBbXSwgICN2aWV3CisgICAgICAgICAg ICAibXZpZCI6IFtdLCAgI212aWV3CisgICAgICAgICAgICAiZnNpZCI6IFtd LCAgI2ZvcmVpZ24gc2VydmVyCisgICAgICAgICAgICAidW1pZCI6IFtdLCAg I1VzZXIgbWFwcGluZworICAgICAgICAgICAgImZvaWQiOiBbXSAgI2ZvcmVp Z24gdGFibGUKKyAgICAgICAgfQogCiAgICAgICAgIHNydl9ncnAgPSBjb25m aWdfZGF0YVsndGVzdF9zZXJ2ZXJfZ3JvdXAnXQogCkBAIC00OCw2ICs2Nywx NyBAQCBjbGFzcyBTZXJ2ZXJzQWRkVGVzdENhc2UoTG9naW5UZXN0Q2FzZSk6 CiAKICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCh1 cmwsIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNv bicpCisKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwb25zZS5z dGF0dXNfY29kZSwgMjAwKQotICAgICAgICAgICAgcmVzcGRhdGEgPSBqc29u LmxvYWRzKHJlc3BvbnNlLmRhdGEpCi0gICAgICAgICAgICBzZWxmLmFzc2Vy dFRydWUocmVzcGRhdGFbJ25vZGUnXVsnbGFiZWwnXSwgc3J2Wyd0ZXN0X25h bWUnXSkKKyAgICAgICAgICAgIHJlc3BkYXRhID0ganNvbi5sb2FkcyhyZXNw b25zZS5kYXRhLmRlY29kZSgpKQorCisgICAgICAgICAgICBzZXJ2ZXJfaWQg PSByZXNwZGF0YVsnbm9kZSddWydfaWQnXQorCisgICAgICAgICAgICBpZiBv cy5wYXRoLmlzZmlsZShwaWNrbGVfcGF0aCk6CisgICAgICAgICAgICAgICAg ZXhzdF9zZXJ2ZXJfaWQgPSBvcGVuKHBpY2tsZV9wYXRoLCAncmInKQorICAg ICAgICAgICAgICAgIHBpY2tsZV9pZF9kaWN0ID0gcGlja2xlLmxvYWQoZXhz dF9zZXJ2ZXJfaWQpCisKKyAgICAgICAgICAgIHBpY2tsZV9pZF9kaWN0WyJz aWQiXS5hcHBlbmQoc2VydmVyX2lkKQorICAgICAgICAgICAgb3V0cHV0ID0g b3BlbihwaWNrbGVfcGF0aCwgJ3diJykKKyAgICAgICAgICAgIHBpY2tsZS5k dW1wKHBpY2tsZV9pZF9kaWN0LCBvdXRwdXQpCisgICAgICAgICAgICBvdXRw dXQuY2xvc2UoKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2Vy dmVyX2RlbGV0ZS5weQppbmRleCAzMjlkNzRmLi40YmRlM2VlIDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy90ZXN0cy90ZXN0X3NlcnZlcl9kZWxldGUucHkKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9z ZXJ2ZXJfZGVsZXRlLnB5CkBAIC04LDE2ICs4LDEzIEBACiAjICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIwogCiBpbXBvcnQganNvbgotCiBmcm9tIHBnYWRtaW4u YnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2luIGltcG9ydCBMb2dpblRlc3RDYXNl CiBmcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25maWdfZGF0YQog CiAKLWNsYXNzIFNlcnZlcnNEZWxldGVUZXN0Q2FzZShMb2dpblRlc3RDYXNl KToKLSAgICAiIiIKLSAgICBUaGlzIGNsYXNzIHdpbGwgY2hlY2sgc2VydmVy IG5vZGUgcHJlc2VudCBvbiB0aGUgb2JqZWN0IGJyb3dzZXIncyB0cmVlIG5v ZGUKLSAgICBieSByZXNwb25zZSBjb2RlLgotICAgICIiIgorY2xhc3MgU2Vy dmVyRGVsZXRlVGVzdENhc2UoTG9naW5UZXN0Q2FzZSk6CisgICAgIiIiIFRo aXMgY2xhc3Mgd2lsbCBkZWxldGUgdGhlIGxhc3Qgc2VydmVyIHByZXNlbnQg dW5kZXIgdHJlZSBub2RlLiIiIgorCiAgICAgcHJpb3JpdHkgPSA3CiAKICAg ICBzY2VuYXJpb3MgPSBbCkBAIC0yNiwzMiArMjMsMjIgQEAgY2xhc3MgU2Vy dmVyc0RlbGV0ZVRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgogICAgIF0KIAog ICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIKLSAgICAgICAg VGhpcyBmdW5jdGlvbiB3aWxsIGdldCBhbGwgYXZhaWxhYmxlIHNlcnZlcnMg dW5kZXIgb2JqZWN0IGJyb3dzZXIKLSAgICAgICAgYW5kIGRlbGV0ZSB0aGUg c2VydmVycyB1c2luZyBzZXJ2ZXIgaWQuCi0gICAgICAgICIiIgorICAgICAg ICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGdldCBhbGwgYXZhaWxhYmxlIHNl cnZlcnMgdW5kZXIgb2JqZWN0IGJyb3dzZXIKKyAgICAgICAgYW5kIGRlbGV0 ZSB0aGUgbGFzdCBzZXJ2ZXIgdXNpbmcgc2VydmVyIGlkLiIiIgogCiAgICAg ICAgIHNydl9ncnAgPSBjb25maWdfZGF0YVsndGVzdF9zZXJ2ZXJfZ3JvdXAn XQogCi0gICAgICAgIGZvciBzcnYgaW4gY29uZmlnX2RhdGFbJ3Rlc3Rfc2Vy dmVyX2NyZWRlbnRpYWxzJ106Ci0KLSAgICAgICAgICAgIGRhdGEgPSB7Im5h bWUiOiBzcnZbJ3Rlc3RfbmFtZSddLAotICAgICAgICAgICAgICAgICAgICAi aG9zdCI6IHNydlsndGVzdF9ob3N0J10sCi0gICAgICAgICAgICAgICAgICAg ICJwb3J0Ijogc3J2Wyd0ZXN0X2RiX3BvcnQnXSwKLSAgICAgICAgICAgICAg ICAgICAgImRiIjogc3J2Wyd0ZXN0X21haW50ZW5hbmNlX2RiJ10sCi0gICAg ICAgICAgICAgICAgICAgICJ1c2VybmFtZSI6IHNydlsndGVzdF9kYl91c2Vy bmFtZSddLAotICAgICAgICAgICAgICAgICAgICAicm9sZSI6ICIiLAotICAg ICAgICAgICAgICAgICAgICAic3NsbW9kZSI6IHNydlsndGVzdF9zc2xtb2Rl J119CisgICAgICAgIHVybCA9IHNlbGYudXJsICsgc3RyKHNydl9ncnApICsg Ii8iCiAKLSAgICAgICAgICAgIHVybCA9IHNlbGYudXJsICsgc3RyKHNydl9n cnApICsgIi8iCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0 KHVybCkKKyAgICAgICAgcmVzcGRhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNl LmRhdGEuZGVjb2RlKCkpCiAKLSAgICAgICAgICAgIHJlc3BvbnNlID0gc2Vs Zi50ZXN0ZXIuZ2V0KHVybCwgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90 eXBlPSdodG1sL2pzb24nKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVl KHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCi0gICAgICAgICAgICByZXNw ZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YSkKKyAgICAgICAgaWYg bGVuKHJlc3BkYXRhKSA9PSAwOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0 aW9uKCJObyBzZXJ2ZXIocykgdG8gZGVsZXRlLiIpCiAKLSAgICAgICAgICAg IGZvciBzZXJ2ZXIgaW4gcmVzcGRhdGE6Ci0gICAgICAgICAgICAgICAgcmVz cG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUodXJsICsganNvbi5kdW1wcyhz ZXJ2ZXJbJ2lkJ10pKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1 ZShyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotICAgICAgICAgICAgICAg IHJlc3BkYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhKQotICAgICAg ICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwZGF0YVsnc3VjY2Vzcydd LCAxKQorICAgICAgICAjIGRlbGV0ZSBsYXN0IHNlcnZlcgorICAgICAgICBz ZXJ2ZXIgPSByZXNwZGF0YVstMV0KKyAgICAgICAgcmVzcG9uc2UgPSBzZWxm LnRlc3Rlci5kZWxldGUodXJsICsgc3RyKHNlcnZlclsnaWQnXSkpCisgICAg ICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAw KQorICAgICAgICByZXNwZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0 YS5kZWNvZGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3BkYXRh WydzdWNjZXNzJ10sIDEpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9n ZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy90ZXN0cy90ZXN0X3NlcnZlcl9nZXQucHkKaW5kZXggMDUwODQzZS4u MTYzZmVmMyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfZ2V0LnB5Cisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L3Rlc3RzL3Rlc3Rfc2VydmVyX2dldC5weQpAQCAtNywxNSArNywxNCBAQAog IwogIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCi1pbXBvcnQg anNvbgotCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2lu IGltcG9ydCBMb2dpblRlc3RDYXNlCiBmcm9tIHJlZ3Jlc3Npb24uY29uZmln IGltcG9ydCBjb25maWdfZGF0YQorZnJvbSByZWdyZXNzaW9uLnRlc3RfdXRp bHMgaW1wb3J0IGdldF9pZHMKIAogCiBjbGFzcyBTZXJ2ZXJzR2V0VGVzdENh c2UoTG9naW5UZXN0Q2FzZSk6CiAgICAgIiIiCi0gICAgVGhpcyBjbGFzcyB3 aWxsIGNoZWNrIHNlcnZlciBub2RlIHByZXNlbnQgb24gdGhlIG9iamVjdCBi cm93c2VyJ3MgdHJlZSBub2RlCisgICAgVGhpcyBjbGFzcyB3aWxsIGZldGNo IGFkZGVkIHNlcnZlcnMgdW5kZXIgZGVmYXVsdCBzZXJ2ZXIgZ3JvdXAKICAg ICBieSByZXNwb25zZSBjb2RlLgogICAgICIiIgogCkBAIC0yNywyMyArMjYs MTYgQEAgY2xhc3MgU2VydmVyc0dldFRlc3RDYXNlKExvZ2luVGVzdENhc2Up OgogICAgIF0KIAogICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAi IiIKLSAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGdldCBhbGwgYXZhaWxh YmxlIHNlcnZlcnMgcHJlc2VudCB1bmRlcgotICAgICAgICBvYmplY3QgYnJv d3Nlci4KLSAgICAgICAgIiIiCisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9u IHdpbGwgZmV0Y2ggdGhlIGFkZGVkIHNlcnZlcnMgdG8gb2JqZWN0IGJyb3dz ZXIuICIiIgogCisgICAgICAgIGFsbF9pZCA9IGdldF9pZHMoKQorICAgICAg ICBzZXJ2ZXJfaWQgPSBhbGxfaWRbInNpZCJdCiAgICAgICAgIHNydl9ncnAg PSBjb25maWdfZGF0YVsndGVzdF9zZXJ2ZXJfZ3JvdXAnXQogCi0gICAgICAg IGZvciBzcnYgaW4gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2NyZWRlbnRp YWxzJ106Ci0gICAgICAgICAgICBkYXRhID0geyJuYW1lIjogc3J2Wyd0ZXN0 X25hbWUnXSwKLSAgICAgICAgICAgICAgICAgICAgImhvc3QiOiBzcnZbJ3Rl c3RfaG9zdCddLAotICAgICAgICAgICAgICAgICAgICAicG9ydCI6IHNydlsn dGVzdF9kYl9wb3J0J10sCi0gICAgICAgICAgICAgICAgICAgICJkYiI6IHNy dlsndGVzdF9tYWludGVuYW5jZV9kYiddLAotICAgICAgICAgICAgICAgICAg ICAidXNlcm5hbWUiOiBzcnZbJ3Rlc3RfZGJfdXNlcm5hbWUnXSwKLSAgICAg ICAgICAgICAgICAgICAgInJvbGUiOiAiIiwKLSAgICAgICAgICAgICAgICAg ICAgInNzbG1vZGUiOiBzcnZbJ3Rlc3Rfc3NsbW9kZSddfQotCi0gICAgICAg ICAgICB1cmwgPSBzZWxmLnVybCArIHN0cihzcnZfZ3JwKSArICIvIgotICAg ICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQodXJsLCBkYXRh PWpzb24uZHVtcHMoZGF0YSksCisgICAgICAgIGZvciBzcnYgaW4gc2VydmVy X2lkOgorCisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdl dChzZWxmLnVybCArIHN0cihzcnZfZ3JwKSArICcvJyArCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc3J2KSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlw ZT0naHRtbC9qc29uJykKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShy ZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgICAgICAgICBzZWxm LmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfcHV0LnB5IGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2 ZXJfcHV0LnB5CmluZGV4IDMwNmJiMDMuLjhjMDJhNDEgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rl c3RzL3Rlc3Rfc2VydmVyX3B1dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9w dXQucHkKQEAgLTgsMTYgKzgsMTMgQEAKICMgIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKIAogaW1wb3J0IGpzb24KLQogZnJvbSBwZ2FkbWluLmJy b3dzZXIudGVzdHMudGVzdF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0Q2FzZQog ZnJvbSByZWdyZXNzaW9uLmNvbmZpZyBpbXBvcnQgY29uZmlnX2RhdGEKK2Zy b20gcmVncmVzc2lvbi50ZXN0X3V0aWxzIGltcG9ydCBnZXRfaWRzCiAKIAot Y2xhc3MgU2VydmVyc1VwZGF0ZVRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgot ICAgICIiIgotICAgIFRoaXMgY2xhc3Mgd2lsbCBjaGVjayBzZXJ2ZXIgbm9k ZSBwcmVzZW50IG9uIHRoZSBvYmplY3QgYnJvd3NlcidzIHRyZWUgbm9kZQot ICAgIGJ5IHJlc3BvbnNlIGNvZGUuCi0gICAgIiIiCitjbGFzcyBTZXJ2ZXJV cGRhdGVUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToKKyAgICAiIiIgVGhpcyBj bGFzcyB3aWxsIHVwZGF0ZSBzZXJ2ZXIncyBjb21tZW50IGZpZWxkLiAiIiIK IAogICAgIHByaW9yaXR5ID0gNgogCkBAIC0yNywzOSArMjQsNDAgQEAgY2xh c3MgU2VydmVyc1VwZGF0ZVRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgogICAg IF0KIAogICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIKLSAg ICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGVkaXQgYW5kIHVwZGF0ZSB0aGUg c2VydmVyJ3MgY29tbWVudCBmaWVsZAotICAgICAgICBieSB0aGUgc2VydmVy IGlkLgotICAgICAgICAiIiIKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24g d2lsbCB1cGRhdGUgdGhlIHNlcnZlcidzIGNvbW1lbnQgZmllbGQuICIiIgog CisgICAgICAgIGFsbF9pZCA9IGdldF9pZHMoKQorICAgICAgICBzZXJ2ZXJf aWQgPSBhbGxfaWRbInNpZCJdWzBdCiAgICAgICAgIHNydl9ncnAgPSBjb25m aWdfZGF0YVsndGVzdF9zZXJ2ZXJfZ3JvdXAnXQogCi0gICAgICAgIGZvciBz cnYgaW4gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2NyZWRlbnRpYWxzJ106 CisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYudXJs ICsgc3RyKHNydl9ncnApICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkK IAotICAgICAgICAgICAgZGF0YSA9IHsibmFtZSI6IHNydlsndGVzdF9uYW1l J10sCi0gICAgICAgICAgICAgICAgICAgICJob3N0Ijogc3J2Wyd0ZXN0X2hv c3QnXSwKLSAgICAgICAgICAgICAgICAgICAgInBvcnQiOiBzcnZbJ3Rlc3Rf ZGJfcG9ydCddLAotICAgICAgICAgICAgICAgICAgICAiZGIiOiBzcnZbJ3Rl c3RfbWFpbnRlbmFuY2VfZGInXSwKLSAgICAgICAgICAgICAgICAgICAgInVz ZXJuYW1lIjogc3J2Wyd0ZXN0X2RiX3VzZXJuYW1lJ10sCi0gICAgICAgICAg ICAgICAgICAgICJyb2xlIjogIiIsCi0gICAgICAgICAgICAgICAgICAgICJz c2xtb2RlIjogc3J2Wyd0ZXN0X3NzbG1vZGUnXX0KKyAgICAgICAgY29uX3Jl c3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgnYnJvd3Nlci9zZXJ2ZXIvY29u bmVjdC97MH0vezF9Jy5mb3JtYXQKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoc3J2X2dycCwgc2VydmVyX2lkKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWRpY3Qo cGFzc3dvcmQ9Y29uZmlnX2RhdGEKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBbJ3Rlc3Rfc2VydmVyX2NyZWRlbnRpYWxzJ11b MF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb J3Rlc3RfZGJfcGFzc3dvcmQnXSksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQogCi0g ICAgICAgICAgICB1cmwgPSBzZWxmLnVybCArIHN0cihzcnZfZ3JwKSArICIv IgorICAgICAgICBzcnZfY29uID0ganNvbi5sb2Fkcyhjb25fcmVzcG9uc2Uu ZGF0YS5kZWNvZGUoKSkKIAotICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxm LnRlc3Rlci5nZXQodXJsLCBkYXRhPWpzb24uZHVtcHMoZGF0YSksCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5 cGU9J2h0bWwvanNvbicpCisgICAgICAgIGlmIGxlbihzcnZfY29uKSA9PSAw OgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyBTZXJ2ZXIocykg Y29ubmVjdGVkIHRvIHVwZGF0ZS4iKQogCi0gICAgICAgICAgICBzZWxmLmFz c2VydFRydWUocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLSAgICAgICAg ICAgIHJlc3BkYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhKQorICAg ICAgICBkYXRhID0gXAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg ICJjb21tZW50IjogY29uZmlnX2RhdGEKKyAgICAgICAgICAgICAgICBbJ3Rl c3Rfc2VydmVyX3VwZGF0ZV9kYXRhJ11bJ3Rlc3RfY29tbWVudCddLAorICAg ICAgICAgICAgICAgICJpZCI6IHNlcnZlcl9pZAorICAgICAgICAgICAgfQog Ci0gICAgICAgICAgICBmb3Igc2VydmVyIGluIHJlc3BkYXRhOgorICAgICAg ICBwdXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoc2VsZi51cmwgKyBz dHIoc3J2X2dycCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCksIGRhdGE9anNvbi5kdW1w cyhkYXRhKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKIAotICAgICAgICAgICAg ICAgIHVybCA9IHNlbGYudXJsICsgc3RyKHNydl9ncnApICsgIi8iICsganNv bi5kdW1wcyhzZXJ2ZXJbJ2lkJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWxzKHB1dF9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogCi0gICAgICAg ICAgICAgICAgZm9yIHNlcnZlciBpbiBjb25maWdfZGF0YVsndGVzdF9zZXJ2 ZXJfdXBkYXRlX2RhdGEnXToKLSAgICAgICAgICAgICAgICAgICAgZGF0YSA9 IHsiY29tbWVudCI6IHNlcnZlclsndGVzdF9jb21tZW50J119Ci0gICAgICAg ICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KHVybCwg ZGF0YT1qc29uLmR1bXBzKGRhdGEpLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwv anNvbicpCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShy ZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotICAgICAgICAgICAgICAgICAg ICByZXNwZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YSkKLSAgICAg ICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3BkYXRhWydzdWNj ZXNzJ10sIDEpCisgICAgICAgIHJlc3BkYXRhID0ganNvbi5sb2FkcyhwdXRf cmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRU cnVlKHJlc3BkYXRhWydzdWNjZXNzJ10sIDEpCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvdGVzdHMvdGVzdF9zZ19h ZGQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvdGVz dHMvdGVzdF9zZ19hZGQucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IGU3MGJiNjUuLjAwMDAwMDAKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3Rlc3RzL3Rlc3Rfc2dfYWRkLnB5CisrKyAvZGV2 L251bGwKQEAgLTEsMzYgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCi0jCi0jIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMK LSMKLSMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4g RGV2ZWxvcG1lbnQgVGVhbQotIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2Vk IHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKLSMKLSMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIwotCi1pbXBvcnQganNvbgotCi1mcm9tIHBn YWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2luIGltcG9ydCBMb2dpblRl c3RDYXNlCi1mcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25maWdf ZGF0YQotCi0KLWNsYXNzIFNnTm9kZVRlc3RDYXNlKExvZ2luVGVzdENhc2Up OgotICAgICIiIgotICAgICBUaGlzIGNsYXNzIHdpbGwgY2hlY2sgYXZhaWxh YmxlIHNlcnZlciBncm91cHMgaW4gcGdBZG1pbi4KLSAgICAiIiIKLQotICAg IHByaW9yaXR5ID0gMQotCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAj IEZldGNoaW5nIHRoZSBkZWZhdWx0IHVybCBmb3Igc2VydmVyIGdyb3VwIG5v ZGUKLSAgICAgICAgKCdDaGVjayBTZXJ2ZXIgR3JvdXAgTm9kZScsIGRpY3Qo dXJsPScvYnJvd3Nlci9zZXJ2ZXItZ3JvdXAvb2JqLycpKQotICAgIF0KLQot ICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0 aW9uIHdpbGwgY2hlY2sgYXZhaWxhYmxlIHNlcnZlciBncm91cHMuIiIiCi0K LSAgICAgICAgaSA9IGNvbmZpZ19kYXRhWyd0ZXN0X3NlcnZlcl9ncm91cCdd Ci0KLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoc2VsZi51 cmwgKyBzdHIoaSksIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKLSAgICAg ICAgc2VsZi5hc3NlcnRUcnVlKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDAp Ci0gICAgICAgIHJlc3BkYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRh KQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmVzcGRhdGFbJ2lkJ10sIGkp CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvdGVzdHMvdGVzdF9zZ19nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvdGVzdHMvdGVzdF9zZ19nZXQucHkKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU1MmQ4ZQotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy90 ZXN0cy90ZXN0X3NnX2dldC5weQpAQCAtMCwwICsxLDM2IEBACisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9z dGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2 LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdh cmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQor IworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCBq c29uCitmcm9tIHBnYWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2luIGlt cG9ydCBMb2dpblRlc3RDYXNlCitmcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGlt cG9ydCBjb25maWdfZGF0YQorCisKK2NsYXNzIFNnR2V0VGVzdENhc2UoTG9n aW5UZXN0Q2FzZSk6CisgICAgIiIiCisgICAgIFRoaXMgY2xhc3Mgd2lsbCBj aGVjayBhdmFpbGFibGUgc2VydmVyIGdyb3VwcyBpbiBwZ0FkbWluLgorICAg ICIiIgorCisgICAgcHJpb3JpdHkgPSAzCisKKyAgICBzY2VuYXJpb3MgPSBb CisgICAgICAgICMgRmV0Y2hpbmcgdGhlIGRlZmF1bHQgdXJsIGZvciBzZXJ2 ZXIgZ3JvdXAgbm9kZQorICAgICAgICAoJ0NoZWNrIFNlcnZlciBHcm91cCBO b2RlJywgZGljdCh1cmw9Jy9icm93c2VyL3NlcnZlci1ncm91cC9vYmovJykp CisgICAgXQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIi IlRoaXMgZnVuY3Rpb24gd2lsbCBjaGVjayBhdmFpbGFibGUgc2VydmVyIGdy b3Vwcy4iIiIKKworICAgICAgICBzcnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rl c3Rfc2VydmVyX2dyb3VwJ10KKworICAgICAgICByZXNwb25zZSA9IHNlbGYu dGVzdGVyLmdldChzZWxmLnVybCArIHN0cihzcnZfZ3JwKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1s L2pzb24nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5z dGF0dXNfY29kZSwgMjAwKQorICAgICAgICByZXNwZGF0YSA9IGpzb24ubG9h ZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKyAgICAgICAgc2VsZi5hc3Nl cnRUcnVlKHJlc3BkYXRhWydpZCddLCBzcnZfZ3JwKQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2NoYW5nZV9wYXNzd29y ZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9jaGFuZ2Vf cGFzc3dvcmQucHkKaW5kZXggY2E4OWI0Yy4uZTkxMTkwMyAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2NoYW5nZV9wYXNz d29yZC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3Rf Y2hhbmdlX3Bhc3N3b3JkLnB5CkBAIC03NywxNyArNzcsMTYgQEAgY2xhc3Mg Q2hhbmdlUGFzc3dvcmRUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToKICAgICAg ICAgICAgICAgICBjb25maWdfZGF0YVsncGdBZG1pbjRfbG9naW5fY3JlZGVu dGlhbHMnXQogICAgICAgICAgICAgICAgIFsndGVzdF9sb2dpbl9wYXNzd29y ZCddKSwKICAgICAgICAgICAgIHJlc3BkYXRhPSdZb3Ugc3VjY2Vzc2Z1bGx5 IGNoYW5nZWQgeW91ciBwYXNzd29yZC4nKSkKLQogICAgIF0KIAogICAgIGRl ZiBydW5UZXN0KHNlbGYpOgogICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdp bGwgY2hlY2sgY2hhbmdlIHBhc3N3b3JkIGZ1bmN0aW9uYWxpdHkuIiIiCiAK ICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoJy9jaGFuZ2Un LCBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0 SW4oJ3BnQWRtaW4gNCBQYXNzd29yZCBDaGFuZ2UnLCByZXNwb25zZS5kYXRh KQorICAgICAgICBzZWxmLmFzc2VydEluKCdwZ0FkbWluIDQgUGFzc3dvcmQg Q2hhbmdlJywgcmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKICAgICAgICAgcmVz cG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KCcvY2hhbmdlJywgZGF0YT1kaWN0 KAogICAgICAgICAgICAgcGFzc3dvcmQ9c2VsZi5wYXNzd29yZCwKICAgICAg ICAgICAgIG5ld19wYXNzd29yZD1zZWxmLm5ld19wYXNzd29yZCwKICAgICAg ICAgICAgIG5ld19wYXNzd29yZF9jb25maXJtPXNlbGYubmV3X3Bhc3N3b3Jk X2NvbmZpcm0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFzc2Vy dEluKHNlbGYucmVzcGRhdGEsIHJlc3BvbnNlLmRhdGEpCisgICAgICAgIHNl bGYuYXNzZXJ0SW4oc2VsZi5yZXNwZGF0YSwgcmVzcG9uc2UuZGF0YS5kZWNv ZGUoJ3V0Zi04JykpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3Rlc3RzL3Rlc3RfbG9naW4ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Rl c3RzL3Rlc3RfbG9naW4ucHkKaW5kZXggN2MyYjc5Ni4uZDI3MmE2MyAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2xvZ2lu LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9sb2dp bi5weQpAQCAtOCw3ICs4LDYgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCiAKIGltcG9ydCB1dWlkCi0KIGZyb20gcGdhZG1pbi51dGlscy5y b3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKIGZyb20gcmVncmVzc2lv bi5jb25maWcgaW1wb3J0IGNvbmZpZ19kYXRhCiAKQEAgLTY3LDcgKzY2LDkg QEAgY2xhc3MgTG9naW5UZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAg ICAgICAgICAgICAgICAgICAgWyd0ZXN0X2xvZ2luX3VzZXJuYW1lJ10pLAog ICAgICAgICAgICAgcGFzc3dvcmQ9KGNvbmZpZ19kYXRhWydwZ0FkbWluNF9s b2dpbl9jcmVkZW50aWFscyddCiAgICAgICAgICAgICAgICAgICAgICAgWyd0 ZXN0X2xvZ2luX3Bhc3N3b3JkJ10pLAotICAgICAgICAgICAgcmVzcGRhdGE9 J1lvdSBhcmUgY3VycmVudGx5IHJ1bm5pbmcgdmVyc2lvbicpKQorICAgICAg ICAgICAgcmVzcGRhdGE9J0dyYXZhdGFyIGltYWdlIGZvciAlcycgJQorICAg ICAgICAgICAgICAgICAgICAgY29uZmlnX2RhdGFbJ3BnQWRtaW40X2xvZ2lu X2NyZWRlbnRpYWxzJ10KKyAgICAgICAgICAgICAgICAgICAgIFsndGVzdF9s b2dpbl91c2VybmFtZSddKSkKICAgICBdCiAKICAgICBkZWYgcnVuVGVzdChz ZWxmKToKQEAgLTc2LDQgKzc3LDQgQEAgY2xhc3MgTG9naW5UZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50 ZXN0ZXIucG9zdCgnL2xvZ2luJywgZGF0YT1kaWN0KAogICAgICAgICAgICAg ZW1haWw9c2VsZi5lbWFpbCwgcGFzc3dvcmQ9c2VsZi5wYXNzd29yZCksCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVk aXJlY3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0SW4oc2VsZi5yZXNw ZGF0YSwgcmVzcG9uc2UuZGF0YSkKKyAgICAgICAgc2VsZi5hc3NlcnRJbihz ZWxmLnJlc3BkYXRhLCByZXNwb25zZS5kYXRhLmRlY29kZSgndXRmOCcpKQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2xv Z291dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9sb2dv dXQucHkKaW5kZXggODk3MWU3Mi4uZDk2MTFhZSAxMDA2NDQKLS0tIGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2xvZ291dC5weQorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfbG9nb3V0LnB5CkBAIC0x NCwxNCArMTQsMTMgQEAgZnJvbSByZWdyZXNzaW9uLmNvbmZpZyBpbXBvcnQg Y29uZmlnX2RhdGEKIGNsYXNzIExvZ291dFRlc3QoTG9naW5UZXN0Q2FzZSk6 CiAgICAgIiIiCiAgICAgVGhpcyBjbGFzcyB2ZXJpZmllcyB0aGUgbG9nb3V0 IGZ1bmN0aW9uYWxpdHk7IHByb3ZpZGVkIHRoZSB1c2VyIGlzIGFscmVhZHkK LSAgICBsb2dnZWQtaW4uIERpY3Rpb25hcnkgcGFyYW1ldGVycyBkZWZpbmUg dGhlIHNjZW5hcmlvIGFwcGVuZGVkIGJ5IHRlc3QKLSAgICBuYW1lLgorICAg IGxvZ2dlZC1pbi4KICAgICAiIiIKIAotICAgIHByaW9yaXR5ID0gMworICAg IHByaW9yaXR5ID0gMTAwCiAKICAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAg ICMgVGhpcyB0ZXN0IGNhc2UgdmFsaWRhdGUgdGhlIGxvZ291dCBwYWdlCisg ICAgICAgICMgVGhpcyB0ZXN0IGNhc2UgdmFsaWRhdGUgdGhlIGxvZ291dCBw YWdlLgogICAgICAgICAoJ0xvZ2dpbmcgT3V0JywgZGljdChyZXNwZGF0YT0n UmVkaXJlY3RpbmcuLi4nKSkKICAgICBdCiAKQEAgLTI5LDcgKzI4LDcgQEAg Y2xhc3MgTG9nb3V0VGVzdChMb2dpblRlc3RDYXNlKToKICAgICAgICAgIiIi VGhpcyBmdW5jdGlvbiBjaGVja3MgdGhlIGxvZ291dCBmdW5jdGlvbmFsaXR5 LiIiIgogCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KCcv bG9nb3V0JykKLSAgICAgICAgc2VsZi5hc3NlcnRJbihzZWxmLnJlc3BkYXRh LCByZXNwb25zZS5kYXRhKQorICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYu cmVzcGRhdGEsIHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGY4JykpCiAKICAg ICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgICIiIgpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X3Jlc2V0X3Bhc3N3 b3JkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X3Jlc2V0 X3Bhc3N3b3JkLnB5CmluZGV4IGEyY2UxZGYuLjA0YzI0MzkgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9yZXNldF9wYXNz d29yZC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3Rf cmVzZXRfcGFzc3dvcmQucHkKQEAgLTgsMTAgKzgsMTAgQEAKICMgIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAogaW1wb3J0IHV1aWQKLQogZnJv bSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRv cgogZnJvbSByZWdyZXNzaW9uLmNvbmZpZyBpbXBvcnQgY29uZmlnX2RhdGEK IAorCiBjbGFzcyBSZXNldFBhc3N3b3JkVGVzdENhc2UoQmFzZVRlc3RHZW5l cmF0b3IpOgogICAgICIiIgogICAgIFRoaXMgY2xhc3MgdmFsaWRhdGVzIHRo ZSByZXNldCBwYXNzd29yZCBmdW5jdGlvbmFsaXR5IGJ5IGRlZmluaW5nCkBA IC00MCw4ICs0MCw4IEBAIGNsYXNzIFJlc2V0UGFzc3dvcmRUZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICIiIlRoaXMgZnVuY3Rpb24g Y2hlY2tzIHJlc2V0IHBhc3N3b3JkIGZ1bmN0aW9uYWxpdHkuIiIiCiAKICAg ICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoJy9yZXNldCcpCi0g ICAgICAgIHNlbGYuYXNzZXJ0SW4oJ1JlY292ZXIgcGdBZG1pbiA0IFBhc3N3 b3JkJywgcmVzcG9uc2UuZGF0YSkKKyAgICAgICAgc2VsZi5hc3NlcnRJbign UmVjb3ZlciBwZ0FkbWluIDQgUGFzc3dvcmQnLCByZXNwb25zZS5kYXRhLmRl Y29kZSgpKQogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3Qo CiAgICAgICAgICAgICAnL3Jlc2V0JywgZGF0YT1kaWN0KGVtYWlsPXNlbGYu ZW1haWwpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQot ICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYucmVzcGRhdGEsIHJlc3BvbnNl LmRhdGEpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oc2VsZi5yZXNwZGF0YSwg cmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi91dGlscy9yb3V0ZS5weSBiL3dlYi9wZ2FkbWluL3V0aWxz L3JvdXRlLnB5CmluZGV4IDFmZjQxZGUuLjNkNDFlMGYgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL3V0aWxzL3JvdXRlLnB5CisrKyBiL3dlYi9wZ2FkbWlu L3V0aWxzL3JvdXRlLnB5CkBAIC05LDYgKzksOCBAQAogCiBmcm9tIGFiYyBp bXBvcnQgQUJDTWV0YSwgYWJzdHJhY3RtZXRob2QKIGltcG9ydCB1bml0dGVz dAorZnJvbSBpbXBvcnRsaWIgaW1wb3J0IGltcG9ydF9tb2R1bGUKK2Zyb20g d2Vya3pldWcudXRpbHMgaW1wb3J0IGZpbmRfbW9kdWxlcwogCiAKIGNsYXNz IFRlc3RzR2VuZXJhdG9yUmVnaXN0cnkoQUJDTWV0YSk6CkBAIC00OCwxOCAr NTAsMTggQEAgY2xhc3MgVGVzdHNHZW5lcmF0b3JSZWdpc3RyeShBQkNNZXRh KToKIAogICAgICAgICBjbHMucmVnaXN0cnkgPSBkaWN0KCkKIAotICAgICAg ICBmcm9tIGltcG9ydGxpYiBpbXBvcnQgaW1wb3J0X21vZHVsZQotICAgICAg ICBmcm9tIHdlcmt6ZXVnLnV0aWxzIGltcG9ydCBmaW5kX21vZHVsZXMKLQog ICAgICAgICBmb3IgbW9kdWxlX25hbWUgaW4gZmluZF9tb2R1bGVzKHBrZywg RmFsc2UsIFRydWUpOgotICAgICAgICAgICAgbW9kdWxlID0gaW1wb3J0X21v ZHVsZShtb2R1bGVfbmFtZSkKLQorICAgICAgICAgICAgdHJ5OgorICAgICAg ICAgICAgICAgIG1vZHVsZSA9IGltcG9ydF9tb2R1bGUobW9kdWxlX25hbWUp CisgICAgICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgICAg ICAgICAgcGFzcwogCiBpbXBvcnQgc2l4CiAKIAogQHNpeC5hZGRfbWV0YWNs YXNzKFRlc3RzR2VuZXJhdG9yUmVnaXN0cnkpCiBjbGFzcyBCYXNlVGVzdEdl bmVyYXRvcih1bml0dGVzdC5UZXN0Q2FzZSk6CisKICAgICAjIERlZmluaW5n IGFic3RyYWN0IG1ldGhvZCB3aGljaCB3aWxsIG92ZXJyaWRlIGJ5IGluZGl2 aWR1YWwgdGVzdGNhc2UuCiAgICAgQGFic3RyYWN0bWV0aG9kCiAgICAgZGVm IHJ1blRlc3Qoc2VsZik6CmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9j b25maWcucHkgYi93ZWIvcmVncmVzc2lvbi9jb25maWcucHkKaW5kZXggYmRj MTA3Yi4uYTA3YzA3MiAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vY29u ZmlnLnB5CisrKyBiL3dlYi9yZWdyZXNzaW9uL2NvbmZpZy5weQpAQCAtMTMs NCArMTMsOCBAQCBpbXBvcnQgb3MKIHJvb3QgPSBvcy5wYXRoLmRpcm5hbWUo b3MucGF0aC5yZWFscGF0aChfX2ZpbGVfXykpCiAKIHdpdGggb3Blbihyb290 ICsgJy90ZXN0X2NvbmZpZy5qc29uJykgYXMgZGF0YV9maWxlOgotICAgIGNv bmZpZ19kYXRhID0ganNvbi5sb2FkKGRhdGFfZmlsZSkKXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCisgICAgY29uZmlnX2RhdGEgPSBqc29uLmxvYWQo ZGF0YV9maWxlKQorCitwaWNrbGVfcGF0aCA9IG9zLnBhdGguam9pbihyb290 LCAncGFyZW50X2lkLnBrbCcpCisKK3ByaW50KHBpY2tsZV9wYXRoKQpcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9yZWdy ZXNzaW9uL3Rlc3RfY29uZmlnLmpzb24gYi93ZWIvcmVncmVzc2lvbi90ZXN0 X2NvbmZpZy5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmZjM2QzMjYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcmVncmVzc2lv bi90ZXN0X2NvbmZpZy5qc29uCkBAIC0wLDAgKzEsOTEwIEBACit7CisgICJw Z0FkbWluNF9sb2dpbl9jcmVkZW50aWFscyI6CisgIHsKKyAgICAidGVzdF9u ZXdfcGFzc3dvcmQiIDogIm5ld3Bhc3MiLAorICAgICJ0ZXN0X2xvZ2luX3Bh c3N3b3JkIiA6ICJ0ZXN0MTIzIiwKKyAgICAidGVzdF9sb2dpbl91c2VybmFt ZSIgOiAidXNlckBleGFtcGxlLmNvbSIKKyAgfSwKKworCisgICJ0ZXN0X3Nl cnZlcl9ncm91cCIgOiAxLAorCisgICJ0ZXN0X3NlcnZlcl9jcmVkZW50aWFs cyI6CisgIFt7CisgICAgInRlc3RfbmFtZSIgOiAiUEc5LjUiLAorICAgICJ0 ZXN0X2RiX3VzZXJuYW1lIiA6ICJwb3N0Z3JlcyIsCisgICAgInRlc3RfaG9z dCIgOiAibG9jYWxob3N0IiwKKyAgICAidGVzdF9kYl9wYXNzd29yZCIgOiAi ZWRiIiwKKyAgICAidGVzdF9kYl9wb3J0IiA6IDU0MzMsCisgICAgInRlc3Rf bWFpbnRlbmFuY2VfZGIiIDogInBvc3RncmVzIiwKKyAgICAidGVzdF9zc2xt b2RlIiA6InByZWZlciIKKyAgfSwKKyAgeworICAgICJ0ZXN0X25hbWUiIDog IlBQQVM5LjQiLAorICAgICJ0ZXN0X2RiX3VzZXJuYW1lIiA6ICJlbnRlcnBy aXNlZGIiLAorICAgICJ0ZXN0X2hvc3QiIDogImxvY2FsaG9zdCIsCisgICAg InRlc3RfZGJfcGFzc3dvcmQiIDogImVkYiIsCisgICAgInRlc3RfZGJfcG9y dCIgOiA1NDQ0LAorICAgICJ0ZXN0X21haW50ZW5hbmNlX2RiIiA6ICJlZGIi LAorICAgICJ0ZXN0X3NzbG1vZGUiIDoicHJlZmVyIgorICB9XSwKKworICAi dGVzdF9zZXJ2ZXJfdXBkYXRlX2RhdGEiOgorICB7CisgICAgICAidGVzdF9j b21tZW50IjogIlRoaXMgaXMgdGVzdCB1cGRhdGUgY29tbWVudCIKKyAgfSwK KworICAidGVzdF9hZGRfZGF0YWJhc2VfZGF0YSI6IHsKKyAgICAidGVzdF9w cml2aWxlZ2VzX2FjbCI6IFsKKyAgICAgIHsKKyAgICAgICAgImdyYW50ZWUi OiAicG9zdGdyZXMiLAorICAgICAgICAiZ3JhbnRvciI6ICJwb3N0Z3JlcyIs CisgICAgICAgICJwcml2aWxlZ2VzIjogWworICAgICAgICAgIHsKKyAgICAg ICAgICAgICJwcml2aWxlZ2VfdHlwZSI6ICJDIiwKKyAgICAgICAgICAgICJw cml2aWxlZ2UiOiB0cnVlLAorICAgICAgICAgICAgIndpdGhfZ3JhbnQiOiB0 cnVlCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAi cHJpdmlsZWdlX3R5cGUiOiAiVCIsCisgICAgICAgICAgICAicHJpdmlsZWdl IjogdHJ1ZSwKKyAgICAgICAgICAgICJ3aXRoX2dyYW50IjogZmFsc2UKKyAg ICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdLAorICAgICJ0 ZXN0X2Nvbm5fbGltaXQiOiAtMSwKKyAgICAidGVzdF9vd25lciI6ICJwb3N0 Z3JlcyIsCisgICAgInRlc3RfZnVuX2FjbCI6IFsKKyAgICAgIHsKKyAgICAg ICAgImdyYW50ZWUiOiAicG9zdGdyZXMiLAorICAgICAgICAiZ3JhbnRvciI6 ICJwb3N0Z3JlcyIsCisgICAgICAgICJwcml2aWxlZ2VzIjogWworICAgICAg ICAgIHsKKyAgICAgICAgICAgICJwcml2aWxlZ2VfdHlwZSI6ICJYIiwKKyAg ICAgICAgICAgICJwcml2aWxlZ2UiOiB0cnVlLAorICAgICAgICAgICAgIndp dGhfZ3JhbnQiOiBmYWxzZQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAg ICAgfQorICAgIF0sCisgICAgInRlc3Rfc2VxX2FjbCI6IFsKKyAgICAgIHsK KyAgICAgICAgImdyYW50ZWUiOiAicG9zdGdyZXMiLAorICAgICAgICAiZ3Jh bnRvciI6ICJwb3N0Z3JlcyIsCisgICAgICAgICJwcml2aWxlZ2VzIjogWwor ICAgICAgICAgIHsKKyAgICAgICAgICAgICJwcml2aWxlZ2VfdHlwZSI6ICJy IiwKKyAgICAgICAgICAgICJwcml2aWxlZ2UiOiB0cnVlLAorICAgICAgICAg ICAgIndpdGhfZ3JhbnQiOiBmYWxzZQorICAgICAgICAgIH0sCisgICAgICAg ICAgeworICAgICAgICAgICAgInByaXZpbGVnZV90eXBlIjogInciLAorICAg ICAgICAgICAgInByaXZpbGVnZSI6IHRydWUsCisgICAgICAgICAgICAid2l0 aF9ncmFudCI6IGZhbHNlCisgICAgICAgICAgfSwKKyAgICAgICAgICB7Cisg ICAgICAgICAgICAicHJpdmlsZWdlX3R5cGUiOiAiVSIsCisgICAgICAgICAg ICAicHJpdmlsZWdlIjogdHJ1ZSwKKyAgICAgICAgICAgICJ3aXRoX2dyYW50 IjogZmFsc2UKKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAg ICBdLAorICAgICJ0ZXN0X3RibF9hY2wiOiBbCisgICAgICB7CisgICAgICAg ICJncmFudGVlIjogInBvc3RncmVzIiwKKyAgICAgICAgImdyYW50b3IiOiAi cG9zdGdyZXMiLAorICAgICAgICAicHJpdmlsZWdlcyI6IFsKKyAgICAgICAg ICB7CisgICAgICAgICAgICAicHJpdmlsZWdlX3R5cGUiOiAiYSIsCisgICAg ICAgICAgICAicHJpdmlsZWdlIjogdHJ1ZSwKKyAgICAgICAgICAgICJ3aXRo X2dyYW50IjogdHJ1ZQorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAg ICAgICAgICAgInByaXZpbGVnZV90eXBlIjogInIiLAorICAgICAgICAgICAg InByaXZpbGVnZSI6IHRydWUsCisgICAgICAgICAgICAid2l0aF9ncmFudCI6 IGZhbHNlCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9CisgICAg XSwKKyAgICAidGVzdF90eXBlX2FjbCI6IFsKKyAgICAgIHsKKyAgICAgICAg ImdyYW50ZWUiOiAicG9zdGdyZXMiLAorICAgICAgICAiZ3JhbnRvciI6ICJw b3N0Z3JlcyIsCisgICAgICAgICJwcml2aWxlZ2VzIjogWworICAgICAgICAg IHsKKyAgICAgICAgICAgICJwcml2aWxlZ2VfdHlwZSI6ICJVIiwKKyAgICAg ICAgICAgICJwcml2aWxlZ2UiOiB0cnVlLAorICAgICAgICAgICAgIndpdGhf Z3JhbnQiOiBmYWxzZQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAg fQorICAgIF0sCisgICAgInRlc3RfZW5jb2RpbmciOiAiVVRGOCIsCisgICAg InRlc3RfbmFtZSI6ICJ0ZXN0X2RiX2F1dG9tYXRpb24iLAorICAgICJ0ZXN0 X3ByaXZpbGVnZXMiOiBbXSwKKyAgICAidGVzdF9zZWN1cml0aWVzIjogW10s CisgICAgInRlc3RfdmFyaWFibGVzIjogW10KKyAgfSwKKworICAgICJ0ZXN0 X2RiX3VwZGF0ZV9kYXRhIjoKKyAgeworICAgICAgInRlc3RfY29tbWVudCI6 ICJUaGlzIGlzIGRiIHVwZGF0ZSBjb21tZW50IgorICB9LAorCisgICAgInRl c3RfbHJfY3JlZGVudGlhbHMiOgorICAgIHsKKyAgICAgICJ0ZXN0X2Nhbl9s b2dpbiI6ICJ0cnVlIiwKKyAgICAgICJ0ZXN0X2Nvbm5fbGltaXQiOiAtMSwK KyAgICAgICJ0ZXN0X2NyZWF0ZV9yb2xlIjogInRydWUiLAorICAgICAgInRl c3Rfcm9sZV9pbmhlcml0IjogInRydWUiLAorICAgICAgInRlc3Rfcm9sZV9t ZW1iZXJzaGlwIjogW10sCisgICAgICAidGVzdF9scl9uYW1lIjogICJ0ZXN0 bHJnMSIsCisgICAgICAidGVzdF9scl9wYXNzd29yZCI6ICJlZGIiLAorICAg ICAgInRlc3RfbHJfdmFsaWRpdHkiOiAiMTIvMjcvMjAxNiIsCisgICAgICAi dGVzdF9zZWNfbGFibGUiOiBbXSwKKyAgICAgICJ0ZXN0X3ZhcmlhYmxlIjpb CisgICAgICAgIHsibmFtZSI6IndvcmtfbWVtIiwKKyAgICAgICAgICAiZGF0 YWJhc2UiOiJwb3N0Z3JlcyIsCisgICAgICAgICAgInZhbHVlIjo2NQorICAg ICAgICB9CisgICAgICBdCisgICAgfSwKKworICAidGVzdF9scl91cGRhdGVf ZGF0YSI6CisgIHsKKyAgICAidGVzdF9jb21tZW50IjogIlRoaXMgaXMgbG9n aW4gcm9sZSB1cGRhdGUgY29tbWVudCIKKyAgfSwKKworICAidGVzdF90YWJs ZXNwY19jcmVkZW50aWFscyI6CisgIHsKKyAgICAidGVzdF90YmxzcGFjZV9u YW1lIjogInRlc3RfdGFibGVzcGFjZSIsCisgICAgInRlc3Rfc3BjX3NlY2xh YmxlIjogW10sCisgICAgInRlc3Rfc3BjX2FjbCI6IFsKKyAgICAgIHsKKyAg ICAgICAgImdyYW50ZWUiOiJwb3N0Z3JlcyIsCisgICAgICAgICJncmFudG9y IjoicG9zdGdyZXMiLAorICAgICAgICAicHJpdmlsZWdlcyI6WworICAgICAg ICAgIHsKKyAgICAgICAgICAgICJwcml2aWxlZ2VfdHlwZSI6IkMiLAorICAg ICAgICAgICAgInByaXZpbGVnZSI6dHJ1ZSwKKyAgICAgICAgICAgICJ3aXRo X2dyYW50IjpmYWxzZQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAg fQorICAgIF0sCisgICAgInRlc3Rfc3BjX2xvY2F0aW9uIjogIi9vcHQvUG9z dGdyZVNRTC85LjUvZGF0YSIsCisgICAgInRlc3Rfc3BjX29wdHMiOiBbXSwK KyAgICAidGVzdF9zcGNfdXNlciI6ICJwb3N0Z3JlcyIKKyAgfSwKKworICAg ICJ0ZXN0X3Ric3BjX3VwZGF0ZV9kYXRhIjoKKyAgeworICAgICJ0ZXN0X2Nv bW1lbnQiOiAiVGhpcyBpcyB0YWJsZXNwYWNlIHVwZGF0ZSBjb21tZW50Igor ICB9LAorCisgICJ0ZXN0X2Nhc3RzX2NyZWRlbnRpYWxzIjoKKyAgeworICAg ICJ0ZXN0X2Nhc3RfY29udGV4dCI6ICJJTVBMSUNJVCIsCisgICAgInRlc3Rf ZW5jb2RpbmciOiAiVVRGOCIsCisgICAgInRlc3RfbmFtZSI6ICJtb25leS0+ YmlnaW50IiwKKyAgICAidGVzdF9zb3VyY2VfdHlwZSI6ICJtb25leSIsCisg ICAgInRlc3RfdGFyZ2V0X3R5cGUiOiAiYmlnaW50IgorICB9LAorCisgICAg ICJ0ZXN0X2Nhc3RfdXBkYXRlX2RhdGEiOgorICB7CisgICAgInRlc3RfY29t bWVudCI6ICJUaGlzIGlzIGNhc3QgdXBkYXRlIGNvbW1lbnQiCisgIH0sCisK KyAgICAidGVzdF9leHRlbnNpb25fY3JlZGVudGlhbHMiOgorICB7CisgICAg InRlc3RfbmFtZSI6ICJwb3N0Z3Jlc19mZHciLAorICAgICJ0ZXN0X3JlbG9j YXRlIjogdHJ1ZSwKKyAgICAidGVzdF9zY2hlbWEiOiAicHVibGljIiwKKyAg ICAidGVzdF92ZXJzaW9uIjogIjEuMCIKKyAgfSwKKworICAgICJ0ZXN0X2V4 dGVuc2lvbl91cGRhdGVfZGF0YSI6CisgIHsKKyAgICAidGVzdF9zY2hlbWEi OiAidGVzdF9zY2hlbWEiCisgIH0sCisKKyAgICAgICJ0ZXN0X2xhbmd1YWdl X3VwZGF0ZV9kYXRhIjoKKyAgeworICAgICJ0ZXN0X2NvbW1lbnQiOiAiVGhp cyBpcyBsYW5ndWFnZSB1cGRhdGUgY29tbWVudCIKKyAgfSwKKworICAidGVz dF9zY2hlbWFfY3JlZGVudGlhbHMiOgorICB7CisgICAgInRlc3RfZnVuY19h Y2wiOiBbXSwKKyAgICAidGVzdF9zZXFfYWNsIjogW10sCisgICAgInRlc3Rf dGJsX2FjbCI6IFtdLAorICAgICJ0ZXN0X3R5cGVfYWNsIjogW10sCisgICAg InRlc3RfbmFtZSI6ICJ0ZXN0X3NjaGVtYSIsCisgICAgInRlc3Rfb3duZXIi OiAicG9zdGdyZXMiLAorICAgICJ0ZXN0X3ByaXZpbGVnZSI6CisgICAgWwor ICAgICAgeworICAgICAgICAiZ3JhbnRlZSI6InBvc3RncmVzIiwKKyAgICAg ICAgImdyYW50b3IiOiJwb3N0Z3JlcyIsCisgICAgICAgICJwcml2aWxlZ2Vz IjoKKyAgICAgICAgWworICAgICAgICAgIHsKKyAgICAgICAgICAgICJwcml2 aWxlZ2VfdHlwZSI6IkMiLAorICAgICAgICAgICAgInByaXZpbGVnZSI6dHJ1 ZSwKKyAgICAgICAgICAgICJ3aXRoX2dyYW50IjpmYWxzZQorICAgICAgICAg IH0sCisgICAgICAgICAgeworICAgICAgICAgICAgInByaXZpbGVnZV90eXBl IjoiVSIsCisgICAgICAgICAgICAicHJpdmlsZWdlIjp0cnVlLAorICAgICAg ICAgICAgIndpdGhfZ3JhbnQiOmZhbHNlCisgICAgICAgICAgfQorICAgICAg ICBdCisgICAgICB9CisgICAgXSwKKyAgICAidGVzdF9zZWNfbGFiZWwiOiBb XQorICB9LAorCisgICJ0ZXN0X3NjaGVtYV91cGRhdGVfZGF0YSI6CisgIHsK KyAgInRlc3RfdGJsX2FjbCI6CisgIHsKKyAgICAiYWRkZWQiOgorICAgIFsK KyAgICAgIHsKKyAgICAgICAgImdyYW50ZWUiOiAicHVibGljIiwKKyAgICAg ICAgImdyYW50b3IiOiAicG9zdGdyZXMiLAorICAgICAgICAicHJpdmlsZWdl cyI6CisgICAgICAgIFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAicHJp dmlsZWdlX3R5cGUiOiAiRCIsCisgICAgICAgICAgICAicHJpdmlsZWdlIjog dHJ1ZSwKKyAgICAgICAgICAgICJ3aXRoX2dyYW50IjogZmFsc2UKKyAgICAg ICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJwcml2aWxlZ2Vf dHlwZSI6ICJ4IiwKKyAgICAgICAgICAgICJwcml2aWxlZ2UiOiB0cnVlLAor ICAgICAgICAgICAgIndpdGhfZ3JhbnQiOiBmYWxzZQorICAgICAgICAgIH0K KyAgICAgICAgXQorICAgICAgfQorICAgIF0KKyAgfSwKKyAgICAidGVzdF9m dW5jX2FjbCI6CisgICAgeworICAgICAgImFkZGVkIjoKKyAgICAgIFsKKyAg ICAgICAgeworICAgICAgICAgICJncmFudGVlIjoicG9zdGdyZXMiLAorICAg ICAgICAgICJncmFudG9yIjoicG9zdGdyZXMiLAorICAgICAgICAgICJwcml2 aWxlZ2VzIjoKKyAgICAgICAgICBbCisgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICJwcml2aWxlZ2VfdHlwZSI6IlgiLAorICAgICAgICAgICAgICAi cHJpdmlsZWdlIjp0cnVlLAorICAgICAgICAgICAgICAid2l0aF9ncmFudCI6 dHJ1ZQorICAgICAgICAgICAgfQorICAgICAgICAgIF0KKyAgICAgICAgfQor ICAgICAgXQorICAgIH0sCisgICAgInRlc3Rfc2VxX2FjbCI6CisgICAgewor ICAgICAgImFkZGVkIjoKKyAgICAgIFsKKyAgICAgICAgeworICAgICAgICAg ICJncmFudGVlIjoicG9zdGdyZXMiLAorICAgICAgICAgICJncmFudG9yIjoi cG9zdGdyZXMiLAorICAgICAgICAgICJwcml2aWxlZ2VzIjoKKyAgICAgICAg ICBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICJwcml2aWxlZ2Vf dHlwZSI6InIiLAorICAgICAgICAgICAgICAicHJpdmlsZWdlIjp0cnVlLAor ICAgICAgICAgICAgICAid2l0aF9ncmFudCI6ZmFsc2UKKyAgICAgICAgICAg IH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICJwcml2aWxlZ2Vf dHlwZSI6InciLAorICAgICAgICAgICAgICAicHJpdmlsZWdlIjp0cnVlLAor ICAgICAgICAgICAgICAid2l0aF9ncmFudCI6ZmFsc2UKKyAgICAgICAgICAg IH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICJwcml2aWxlZ2Vf dHlwZSI6IlUiLAorICAgICAgICAgICAgICAicHJpdmlsZWdlIjp0cnVlLAor ICAgICAgICAgICAgICAid2l0aF9ncmFudCI6ZmFsc2UKKyAgICAgICAgICAg IH0KKyAgICAgICAgICBdCisgICAgICAgIH0KKyAgICAgIF0KKyAgICB9Cisg IH0sCisKKyAgInRlc3RfdHJpZ2dlcl9mdW5jdGlvbl9jcmVkZW50aWFscyI6 CisgIHsKKyAgICAidGVzdF9hY2wiOgorICAgIFsKKyAgICAgIHsKKyAgICAg ICAgImdyYW50ZWUiOiJwb3N0Z3JlcyIsCisgICAgICAgICJncmFudG9yIjoi cG9zdGdyZXMiLAorICAgICAgICAicHJpdmlsZWdlcyI6CisgICAgICAgIFsK KyAgICAgICAgICB7CisgICAgICAgICAgICAicHJpdmlsZWdlX3R5cGUiOiJY IiwKKyAgICAgICAgICAgICJwcml2aWxlZ2UiOnRydWUsCisgICAgICAgICAg ICAid2l0aF9ncmFudCI6dHJ1ZQorICAgICAgICAgIH0KKyAgICAgICAgXQor ICAgICAgfQorICAgIF0sCisgICAgInRlc3RfYXJncyI6IFtdLAorICAgICJ0 ZXN0X2Z1bl9vd25lciI6ICJwb3N0Z3JlcyIsCisgICAgInRlc3RfbGFuZ3Vh Z2UiOiAicGxwZ3NxbCIsCisgICAgInRlc3RfbmFtZSI6ICJ0ZXN0X2Fib3J0 X2FueV9jb21tYW5kIiwKKyAgICAidGVzdF9vcHRpb25zIjogW10sCisgICAg InRlc3RfcHJvYmUiOiAiJGxpYmRpci8iLAorICAgICJ0ZXN0X2xlYWtfcHJv b2YiOiB0cnVlLAorICAgICJ0ZXN0X25hbWVzcGFjZSI6IDIyMDAsCisgICAg InRlc3RfdHlwZSI6ICJldmVudF90cmlnZ2VyIiwKKyAgICAidGVzdF9zZWNf ZGVmIjogdHJ1ZSwKKyAgICAidGVzdF9jb2RlIjogIkJFR0lOICAgUkFJU0Ug RVhDRVBUSU9OICdjb21tYW5kICUgaXMgZGlzYWJsZWQnLCB0Z190YWc7IEVO RDsiLAorICAgICJ0ZXN0X3ZvbGl0aWxlIjogInMiLAorICAgICJ0ZXN0X3Nl Y19sYWJlbCI6IFtdLAorICAgICJ0ZXN0X1ZhcmlhYmxlIjoKKyAgICBbCisg ICAgICB7CisgICAgICAgICJuYW1lIjoiZW5hYmxlX3NvcnQiLAorICAgICAg ICAidmFsdWUiOnRydWUKKyAgICAgIH0KKyAgICBdCisgIH0sCisKKyAgInRl c3RfdHJpZ2dlcl9mdW5jX3VwZGF0ZV9kYXRhIjoKKyAgeworICAgICJ0ZXN0 X2NvbW1lbnQiOiAiVGhpcyBpcyB0cmlnZ2VyIGZ1bmN0aW9uIHVwZGF0ZSBj b21tZW50IgorICB9LAorCisgICJ0ZXN0X2V2ZW50X3RyaWdnZXJfY3JlZGVu dGlhbHMiOgorICB7CisgICAgInRlc3RfZW5hYmxlIjogIk8iLAorICAgICJ0 ZXN0X2V2ZW50X2Z1bmMiOiAidGVzdF9zY2hlbWEudGVzdF9hYm9ydF9hbnlf Y29tbWFuZCIsCisgICAgInRlc3RfZXZlbnRfbmFtZSI6ICAiRERMX0NPTU1B TkRfRU5EIiwKKyAgICAidGVzdF9ldmVudF9vd25lciI6ICAicG9zdGdyZXMi LAorICAgICJ0ZXN0X25hbWUiOiAidGVzdF9ldmVudF90cmciLAorICAgICJ0 ZXN0X3Byb3ZpZGVyIjogW10KKyAgfSwKKworICAgInRlc3RfZXZlbnRfdHJp Z2dlcl91cGRhdGVfZGF0YSI6CisgIHsKKyAgICAidGVzdF9jb21tZW50Ijog IlRoaXMgaXMgZXZlbnQgdHJpZ2dlciB1cGRhdGUgY29tbWVudCIKKyAgfSwK KworICAidGVzdF9GRFdfY3JlZGVudGlhbHMiOgorICB7CisgICAgInRlc3Rf YWNsIjoKKyAgICBbCisgICAgICB7CisgICAgICAgICJncmFudGVlIjoicG9z dGdyZXMiLAorICAgICAgICAiZ3JhbnRvciI6InBvc3RncmVzIiwKKyAgICAg ICAgInByaXZpbGVnZXMiOgorICAgICAgICBbCisgICAgICAgICAgeworICAg ICAgICAgICAgInByaXZpbGVnZV90eXBlIjoiVSIsCisgICAgICAgICAgICAi cHJpdmlsZWdlIjp0cnVlLAorICAgICAgICAgICAgIndpdGhfZ3JhbnQiOnRy dWUKKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdLAor CisgICAgInRlc3RfaGFuZGxlciI6ICJwb3N0Z3Jlc19mZHdfaGFuZGxlciIs CisgICAgInRlc3Rfb3B0aW9ucyI6IFtdLAorICAgICJ0ZXN0X293bmVyIjog InBvc3RncmVzIiwKKyAgICAidGVzdF92YWxpZGF0b3IiOiAicG9zdGdyZXNx bF9mZHdfdmFsaWRhdG9yIiwKKyAgICAidGVzdF9uYW1lIjogInRlc3RfZmR3 IgorICB9LAorCisgICAgInRlc3RfRkRXX3VwZGF0ZV9kYXRhIjoKKyAgewor ICAgICJ0ZXN0X2NvbW1lbnQiOiAiVGhpcyBpcyBGRFcgdXBkYXRlIGNvbW1l bnQiCisgIH0sCisKKyAgInRlc3RfY29sbGF0aW9uX2NyZWRlbnRpYWxzIjoK KyAgeworICAgICJ0ZXN0X2NvcHlfY29sbGF0aW9uIjogInBnX2NhdGFsb2cu XCJQT1NJWFwiIiwKKyAgICAidGVzdF9uYW1lIjogInRlc3RfY29sbGF0aW9u IiwKKyAgICAidGVzdF9vd25lciI6ICJwb3N0Z3JlcyIsCisgICAgInRlc3Rf c2NoZW1hIjogInRlc3Rfc2NoZW1hIgorICB9LAorCisgICAidGVzdF9jb2xs YXRpb25fdXBkYXRlX2RhdGEiOgorICB7CisgICAgInRlc3RfY29tbWVudCI6 ICJUaGlzIGlzIGNvbGxhdGlvbiB1cGRhdGUgY29tbWVudCIKKyAgfSwKKwor CisgICJ0ZXN0X2RvbWFpbl9kYXRhIjoKKyAgeworICAgICJ0ZXN0X3NjaGVt YSI6ICJ0ZXN0X3NjaGVtYSIsCisgICAgInRlc3RfYmFzZXR5cGUiOiAiY2hh cmFjdGVyIiwKKyAgICAidGVzdF9jb2xsYXRpb24iOiAicGdfY2F0YWxvZy5c ImVuX0FHXCIiLAorICAgICJ0ZXN0X2NvbnN0cmFpbnRzIjoKKyAgICBbCisg ICAgICB7CisgICAgICAgICJjb25uYW1lIjoibnVtIiwKKyAgICAgICAgImNv bnZhbGlkYXRlZCI6dHJ1ZQorICAgICAgfQorICAgIF0sCisgICAgInRlc3Rf bGVuZ2h0IjogdHJ1ZSwKKyAgICAidGVzdF9tYXhfdmFsdWUiOiAgMjE0NzQ4 MzY0NywKKyAgICAidGVzdF9taW5fdmFsdWUiOiAxLAorICAgICJ0ZXN0X25h bWUiOiAidGVzdF9kb21haW4iLAorICAgICJ0ZXN0X293bmVyIjogInBvc3Rn cmVzIiwKKyAgICAidGVzdF9zZWN1cml0eSI6IFtdLAorICAgICJ0ZXN0X2Rl ZmFsdF90eXBlIjogIjEiLAorICAgICJ0ZXN0X3R5cGVfbGVuIjogIjEwIgor ICB9LAorCisgICJ0ZXN0X2RvbWFpbl91cGRhdGVfZGF0YSI6CisgIHsKKyAg ICAidGVzdF9jb21tZW50IjogIlRoaXMgaXMgZG9tYWluIHVwZGF0ZSBjb21t ZW50IgorICB9LAorCisgICJ0ZXN0X3NlcXVlbmNlX2NyZWRlbnRpYWxzIjoK KyAgeworICAgICJ0ZXN0X2NhY2hlIjogIjEiLAorICAgICJ0ZXN0X2N5Y2xl ZCI6IHRydWUsCisgICAgInRlc3RfaW5jcmVtZW50IjogICIxIiwKKyAgICAi dGVzdF9tYXhfdmFsdWUiOiAiMTAwMDAwIiwKKyAgICAidGVzdF9taW5fdmFs dWUiOiAiMSIsCisgICAgInRlc3RfbmFtZSI6ICJ0ZXN0X2VtcG5vIiwKKyAg ICAidGVzdF9hY2wiOgorICAgIFsKKyAgICAgIHsKKyAgICAgICAgImdyYW50 ZWUiOiJwb3N0Z3JlcyIsCisgICAgICAgICJncmFudG9yIjoicG9zdGdyZXMi LAorICAgICAgICAicHJpdmlsZWdlcyI6CisgICAgICAgIFsKKyAgICAgICAg ICB7CisgICAgICAgICAgICAicHJpdmlsZWdlX3R5cGUiOiJyIiwKKyAgICAg ICAgICAgICJwcml2aWxlZ2UiOnRydWUsCisgICAgICAgICAgICAid2l0aF9n cmFudCI6ZmFsc2UKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAg ICAgICAgICJwcml2aWxlZ2VfdHlwZSI6InciLAorICAgICAgICAgICAgInBy aXZpbGVnZSI6dHJ1ZSwKKyAgICAgICAgICAgICJ3aXRoX2dyYW50IjpmYWxz ZQorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgInBy aXZpbGVnZV90eXBlIjoiVSIsCisgICAgICAgICAgICAicHJpdmlsZWdlIjp0 cnVlLAorICAgICAgICAgICAgIndpdGhfZ3JhbnQiOmZhbHNlCisgICAgICAg ICAgfQorICAgICAgICBdCisgICAgICB9CisgICAgXSwKKyAgICAidGVzdF9z Y2hlbWFfbmFtZSI6ICJ0ZXN0X3NjaGVtYSIsCisgICAgInRlc3Rfc2VjdXJp dHkiOiAgW10sCisgICAgInRlc3Rfb3duZXIiOiAgInBvc3RncmVzIiwKKyAg ICAidGVzdF9zdGFydF92YWwiOiAiMTAwIgorICB9LAorCisgICAgInRlc3Rf c2VxdW5jZV91cGRhdGVfZGF0YSI6CisgIHsKKyAgICAidGVzdF9jb21tZW50 IjogIlRoaXMgaXMgc2VxdWVuY2UgdXBkYXRlIGNvbW1lbnQiCisgIH0sCisK KyAgInRlc3RfdGFibGVfY3JlZGVudGlhbHMiOgorICB7CisgICAgInRlc3Rf Y29uc3RyYWludCI6IFtdLAorICAgICJ0ZXN0X2NvbF9pbmhlcml0IjogIltd IiwKKyAgICAidGVzdF9jb2x1bW5zIjoKKyAgICBbCisgICAgICB7CisgICAg ICAgICJuYW1lIjoiZW1wbm8iLAorICAgICAgICAiY2x0eXBlIjoibnVtZXJp YyIsCisgICAgICAgICJhdHRhY2wiOltdLAorICAgICAgICAiaXNfcHJpbWFy eV9rZXkiOmZhbHNlLAorICAgICAgICAiYXR0b3B0aW9ucyI6W10sCisgICAg ICAgICJzZWNsYWJlbHMiOltdCisgICAgICB9LAorICAgICAgeworICAgICAg ICAibmFtZSI6ImVtcG5hbWUiLAorICAgICAgICAiY2x0eXBlIjoiY2hhcmFj dGVyW10iLAorICAgICAgICAiYXR0YWNsIjpbXSwKKyAgICAgICAgImlzX3By aW1hcnlfa2V5IjpmYWxzZSwKKyAgICAgICAgImF0dG9wdGlvbnMiOltdLAor ICAgICAgICAic2VjbGFiZWxzIjpbXQorICAgICAgfSwKKyAgICAgIHsibmFt ZSI6IkRPSiIsCisgICAgICAgICJjbHR5cGUiOiJkYXRlW10iLAorICAgICAg ICAiYXR0YWNsIjpbXSwKKyAgICAgICAgImlzX3ByaW1hcnlfa2V5IjpmYWxz ZSwKKyAgICAgICAgImF0dG9wdGlvbnMiOltdLAorICAgICAgICAic2VjbGFi ZWxzIjpbXQorICAgICAgfQorICAgIF0sCisgICAgInRlc3RfaGFzX2NvbnN0 cmFpbnQiOiBbXSwKKyAgICAidGVzdF9maWxsZmFjdG9yIjogIjExIiwKKyAg ICAidGVzdF9oYXNfRksiOiBbXSwKKyAgICAidGVzdF9oYXNfdG9hc3RfdGJs IjogdHJ1ZSwKKyAgICAidGVzdF9saWtlX2NvbnN0cmFpbnQiOiAgdHJ1ZSwK KyAgICAidGVzdF9saWtlX2RlZmF1bHRfdmFsdWUiOiB0cnVlLAorICAgICJ0 ZXN0X2xpa2VfcmVsYXRpb24iOiAicGdfY2F0YWxvZy5wZ190YWJsZXMiLAor ICAgICJ0ZXN0X25hbWUiOiAidGVzdF9lbXAiLAorICAgICJ0ZXN0X1BLIjog W10sCisgICAgInRlc3RfYWNsIjoKKyAgICBbCisgICAgICB7CisgICAgICAg ICJncmFudGVlIjoicG9zdGdyZXMiLAorICAgICAgICAiZ3JhbnRvciI6InBv c3RncmVzIiwKKyAgICAgICAgInByaXZpbGVnZXMiOgorICAgICAgICBbCisg ICAgICAgICAgeworICAgICAgICAgICAgInByaXZpbGVnZV90eXBlIjoiYSIs CisgICAgICAgICAgICAicHJpdmlsZWdlIjp0cnVlLAorICAgICAgICAgICAg IndpdGhfZ3JhbnQiOnRydWUKKyAgICAgICAgICB9LAorICAgICAgICAgIHsK KyAgICAgICAgICAgICJwcml2aWxlZ2VfdHlwZSI6InIiLAorICAgICAgICAg ICAgInByaXZpbGVnZSI6dHJ1ZSwKKyAgICAgICAgICAgICJ3aXRoX2dyYW50 IjpmYWxzZQorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAg ICAgInByaXZpbGVnZV90eXBlIjoidyIsCisgICAgICAgICAgICAicHJpdmls ZWdlIjp0cnVlLAorICAgICAgICAgICAgIndpdGhfZ3JhbnQiOmZhbHNlCisg ICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9CisgICAgXSwKKyAgICAi dGVzdF9oYXNfb2lkIjogdHJ1ZSwKKyAgICAidGVzdF9vd25lciI6ICAicG9z dGdyZXMiLAorICAgICJ0ZXN0X3NjaGVtYSI6ICJ0ZXN0X3NjaGVtYSIsCisg ICAgInRlc3Rfc2VjX2FjbCI6ICBbXSwKKyAgICAidGVzdF90YnNjcCI6ICJw Z19kZWZhdWx0IiwKKyAgICAidGVzdF91bmlxdWVfY29uc3RyYWludCI6IFtd LAorICAgICJ0ZXN0X3ZhY3V1bV90YmwiOgorICAgIFsKKyAgICAgIHsKKyAg ICAgICAgIm5hbWUiOiJhdXRvdmFjdXVtX2FuYWx5emVfc2NhbGVfZmFjdG9y IgorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgIm5hbWUiOiJhdXRvdmFj dXVtX2FuYWx5emVfdGhyZXNob2xkIgorICAgICAgfSwKKyAgICAgIHsKKyAg ICAgICAgIm5hbWUiOiJhdXRvdmFjdXVtX2ZyZWV6ZV9tYXhfYWdlIgorICAg ICAgfSwKKyAgICAgIHsKKyAgICAgICAgIm5hbWUiOiJhdXRvdmFjdXVtX3Zh Y3V1bV9jb3N0X2RlbGF5IgorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAg Im5hbWUiOiJhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0IgorICAgICAg fSwKKyAgICAgIHsKKyAgICAgICAgIm5hbWUiOiJhdXRvdmFjdXVtX3ZhY3V1 bV9zY2FsZV9mYWN0b3IiCisgICAgICB9LAorICAgICAgeworICAgICAgICAi bmFtZSI6ImF1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZCIKKyAgICAgIH0s CisgICAgICB7CisgICAgICAgICJuYW1lIjoiYXV0b3ZhY3V1bV9mcmVlemVf bWluX2FnZSIKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJuYW1lIjoi YXV0b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlIgorICAgICAgfQorICAgIF0s CisKKyAgICAidGVzdF92YWN1dW1fdG9hc3QiOgorICAgIFsKKyAgICAgIHsK KyAgICAgICAgIm5hbWUiOiJhdXRvdmFjdXVtX2ZyZWV6ZV9tYXhfYWdlIgor ICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgIm5hbWUiOiJhdXRvdmFjdXVt X3ZhY3V1bV9jb3N0X2RlbGF5IgorICAgICAgfSwKKyAgICAgIHsKKyAgICAg ICAgIm5hbWUiOiJhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0IgorICAg ICAgfSwKKyAgICAgIHsKKyAgICAgICAgIm5hbWUiOiJhdXRvdmFjdXVtX3Zh Y3V1bV9zY2FsZV9mYWN0b3IiCisgICAgICB9LAorICAgICAgeworICAgICAg ICAibmFtZSI6ImF1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZCIKKyAgICAg IH0sCisgICAgICB7CisgICAgICAgICJuYW1lIjoiYXV0b3ZhY3V1bV9mcmVl emVfbWluX2FnZSIKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJuYW1l IjoiYXV0b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlIgorICAgICAgfQorICAg IF0KKworICB9LAorCisgICAgInRlc3RfdGFibGVfdXBkYXRlX2RhdGEiOgor ICB7CisgICAgInRlc3RfY29tbWVudCI6ICJUaGlzIGlzIHRhYmxlIHVwZGF0 ZSBjb21tZW50IgorICB9LAorCisgICJ0ZXN0X3ZpZXdfY3JlZGVudGlhbHMi OgorICB7CisgICAgInRlc3RfY2hlY2tfb3B0aW9ucyI6ICJsb2NhbCIsCisg ICAgInRlc3RfYWNsIjoKKyAgICBbCisgICAgICB7CisgICAgICAgICJncmFu dGVlIjoicG9zdGdyZXMiLAorICAgICAgICAiZ3JhbnRvciI6InBvc3RncmVz IiwKKyAgICAgICAgInByaXZpbGVnZXMiOgorICAgICAgICBbCisgICAgICAg ICAgeworICAgICAgICAgICAgInByaXZpbGVnZV90eXBlIjoiYSIsCisgICAg ICAgICAgICAicHJpdmlsZWdlIjp0cnVlLAorICAgICAgICAgICAgIndpdGhf Z3JhbnQiOnRydWUKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAg ICAgICAgICJwcml2aWxlZ2VfdHlwZSI6InIiLAorICAgICAgICAgICAgInBy aXZpbGVnZSI6dHJ1ZSwKKyAgICAgICAgICAgICJ3aXRoX2dyYW50IjpmYWxz ZQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0sCisg ICAgInRlc3RfZGVmaW5pdGlvbiI6ICAic2VsZWN0IHRlc3RfZW1wLmVtcG5h bWUgZnJvbSB0ZXN0X3NjaGVtYS50ZXN0X2VtcDsiLAorICAgICJ0ZXN0X25h bWUiOiAgInRlc3RfdmlldyIsCisgICAgInRlc3Rfb3duZXIiOiAicG9zdGdy ZXMiLAorICAgICJ0ZXN0X3NjaGVtYV9uYW1lIjogInRlc3Rfc2NoZW1hIiwK KyAgICAidGVzdF9zZWNfbGFiZWwiOiBbXQorICB9LAorCisgICJ0ZXN0X3Zp ZXdfdXBkYXRlX2RhdGEiOgorICB7CisgICAgInRlc3RfY29tbWVudCI6ICJU aGlzIGlzIHZpZXcgdXBkYXRlIGNvbW1lbnQiCisgIH0sCisKKyAgInRlc3Rf bXZpZXdfY3JlZGVudGlhbHMiOgorICB7CisgICAgInRlc3RfYWNsIjoKKyAg ICBbCisgICAgICB7CisgICAgICAgICJncmFudGVlIjoicG9zdGdyZXMiLAor ICAgICAgICAiZ3JhbnRvciI6InBvc3RncmVzIiwKKyAgICAgICAgInByaXZp bGVnZXMiOgorICAgICAgICBbCisgICAgICAgICAgeworICAgICAgICAgICAg InByaXZpbGVnZV90eXBlIjoiYSIsCisgICAgICAgICAgICAicHJpdmlsZWdl Ijp0cnVlLAorICAgICAgICAgICAgIndpdGhfZ3JhbnQiOmZhbHNlCisgICAg ICAgICAgfQorICAgICAgICBdCisgICAgICB9CisgICAgXSwKKyAgICAidGVz dF9kZWZpbml0aW9uIjogInNlbGVjdCB0ZXN0X2VtcC5lbXBuYW1lIGZyb20g dGVzdF9zY2hlbWEudGVzdF9lbXAgd2hlcmUgdGVzdF9lbXAuZW1wbm8gPSAx OyIsCisgICAgInRlc3RfZmlsbGZhY3RvciI6ICAiMTEiLAorICAgICJ0ZXN0 X25hbWUiOiAidGVzdF9tdmlldyIsCisgICAgInRlc3Rfb3duZXIiOiAicG9z dGdyZXMiLAorICAgICJ0ZXN0X3NjaGVtYV9uYW1lIjogInRlc3Rfc2NoZW1h IiwKKyAgICAidGVzdF9zZWNfbGFiZWwiOiBbXSwKKyAgICAidGVzdF90YnNj cCI6ICJwZ19kZWZhdWx0IiwKKyAgICAidGVzdF90b2FzdF9hdXRvdmFjdXVt IjogdHJ1ZSwKKyAgICAidGVzdF90b2FzdF9hdXRvdmFjdXVtX2VuYWJsZWQi OiBmYWxzZSwKKyAgICAidGVzdF92YWN1dW1fdGJsIjoKKyAgICBbCisgICAg ICB7CisgICAgICAgICJuYW1lIjoiYXV0b3ZhY3V1bV9hbmFseXplX3NjYWxl X2ZhY3RvciIKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJuYW1lIjoi YXV0b3ZhY3V1bV9hbmFseXplX3RocmVzaG9sZCIKKyAgICAgIH0sCisgICAg ICB7CisgICAgICAgICJuYW1lIjoiYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2Fn ZSIKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJuYW1lIjoiYXV0b3Zh Y3V1bV92YWN1dW1fY29zdF9kZWxheSIKKyAgICAgIH0sCisgICAgICB7Cisg ICAgICAgICJuYW1lIjoiYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9saW1pdCIK KyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJuYW1lIjoiYXV0b3ZhY3V1 bV92YWN1dW1fc2NhbGVfZmFjdG9yIgorICAgICAgfSwKKyAgICAgIHsKKyAg ICAgICAgIm5hbWUiOiJhdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQiCisg ICAgICB9LAorICAgICAgeworICAgICAgICAibmFtZSI6ImF1dG92YWN1dW1f ZnJlZXplX21pbl9hZ2UiCisgICAgICB9LAorICAgICAgeworICAgICAgICAi bmFtZSI6ImF1dG92YWN1dW1fZnJlZXplX3RhYmxlX2FnZSIKKyAgICAgIH0K KyAgICBdLAorICAgICJ0ZXN0X3ZhY3V1bV90b2FzdCI6CisgICAgWworICAg ICAgeworICAgICAgICAibmFtZSI6ImF1dG92YWN1dW1fZnJlZXplX21heF9h Z2UiCisgICAgICB9LAorICAgICAgeworICAgICAgICAibmFtZSI6ImF1dG92 YWN1dW1fdmFjdXVtX2Nvc3RfZGVsYXkiCisgICAgICB9LAorICAgICAgewor ICAgICAgICAibmFtZSI6ImF1dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQi CisgICAgICB9LAorICAgICAgeworICAgICAgICAibmFtZSI6ImF1dG92YWN1 dW1fdmFjdXVtX3NjYWxlX2ZhY3RvciIKKyAgICAgIH0sCisgICAgICB7Cisg ICAgICAgICJuYW1lIjoiYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkIgor ICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgIm5hbWUiOiJhdXRvdmFjdXVt X2ZyZWV6ZV9taW5fYWdlIgorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAg Im5hbWUiOiJhdXRvdmFjdXVtX2ZyZWV6ZV90YWJsZV9hZ2UiCisgICAgICB9 CisgICAgXSwKKworICAgICJ0ZXN0X3dpdGhfZGF0YSI6IHRydWUKKyAgfSwK KworICAgICJ0ZXN0X212aWV3X3VwZGF0ZV9kYXRhIjoKKyAgeworICAgICJ0 ZXN0X2NvbW1lbnQiOiAiVGhpcyBpcyBtYXRlcmlhbGl6ZWQgdmlldyB1cGRh dGUgY29tbWVudCIKKyAgfSwKKworICAidGVzdF9mb3JlaWduX3NlcnZlcl9j cmVkZW50aWFscyI6CisgIHsKKyAgICAidGVzdF9mc3JfYWNsIjoKKyAgICBb CisgICAgICB7CisgICAgICAgICJncmFudGVlIjoicG9zdGdyZXMiLAorICAg ICAgICAiZ3JhbnRvciI6InBvc3RncmVzIiwKKyAgICAgICAgInByaXZpbGVn ZXMiOgorICAgICAgICBbCisgICAgICAgICAgeworICAgICAgICAgICAgInBy aXZpbGVnZV90eXBlIjoiVSIsCisgICAgICAgICAgICAicHJpdmlsZWdlIjp0 cnVlLAorICAgICAgICAgICAgIndpdGhfZ3JhbnQiOmZhbHNlCisgICAgICAg ICAgfQorICAgICAgICBdCisgICAgICB9CisgICAgXSwKKworICAgICJ0ZXN0 X2Zzcl9vcHRucyI6CisgICAgWworICAgICAgeworICAgICAgICAiZnNydm9w dGlvbiI6Imhvc3QiLAorICAgICAgICAiZnNydnZhbHVlIjoibG9jYWxob3N0 IgorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgImZzcnZvcHRpb24iOiJw b3J0IiwKKyAgICAgICAgImZzcnZ2YWx1ZSI6IjU0MzMiCisgICAgICB9LAor ICAgICAgeworICAgICAgICAiZnNydm9wdGlvbiI6ImRibmFtZSIsCisgICAg ICAgICJmc3J2dmFsdWUiOiJwb3N0Z3JlcyIKKyAgICAgIH0KKyAgICBdLAor ICAgICJ0ZXN0X2Zzcl9vd25lciI6ICJwb3N0Z3JlcyIsCisgICAgInRlc3Rf bmFtZSI6ICJ0ZXN0X2ZvcmVpZ25fc2VydmVyIgorICB9LAorCisgICJ0ZXN0 X0ZSU191cGRhdGVfZGF0YSI6CisgIHsKKyAgICAidGVzdF9jb21tZW50Ijog IlRoaXMgaXMgZm9yZWlnbiBzZXJ2ZXIgdXBkYXRlIGNvbW1lbnQiCisgIH0s CisKKyAgInRlc3RfdXNlcl9tYXBwaW5nX2NyZWRlbnRpYWxzIjoKKyAgewor ICAgICJ0ZXN0X25hbWUiOiAicG9zdGdyZXMiLAorICAgICJ0ZXN0X29wdGlv biI6IFtdLAorICAgICJ0ZXN0X29wdGlvbnMiOgorICAgIFsKKyAgICAgIHsK KyAgICAgICAgInVtb3B0aW9uIjoidXNlciIsCisgICAgICAgICJ1bXZhbHVl IjoicG9zdGdyZXMiCisgICAgICB9LAorICAgICAgeworICAgICAgICAidW1v cHRpb24iOiJwYXNzd29yZCIsCisgICAgICAgICJ1bXZhbHVlIjoiZWRiIgor ICAgICAgfQorICAgIF0KKyAgfSwKKworICAidGVzdF91c2VyX21hcHBpbmdf dXBkYXRlX2RhdGEiOgorICB7CisgICAgInRlc3Rfb3B0aW9ucyI6CisgICAg eworICAgICAgImNoYW5nZWQiOgorICAgICAgWworICAgICAgICB7InVtb3B0 aW9uIjoicGFzc3dvcmQiLAorICAgICAgICAgICJ1bXZhbHVlIjoiZWRiMSIK KyAgICAgICAgfQorICAgICAgXQorICAgIH0KKyAgfSwKKworICAidGVzdF9m b3JlaWduX3RhYmxlX2NyZWRlbnRpYWxzIjoKKyAgeworICAgICJ0ZXN0X2Fj bCI6CisgICAgWworICAgICAgeworICAgICAgICAiZ3JhbnRlZSI6InBvc3Rn cmVzIiwKKyAgICAgICAgImdyYW50b3IiOiJwb3N0Z3JlcyIsCisgICAgICAg ICJwcml2aWxlZ2VzIjoKKyAgICAgICAgWworICAgICAgICAgIHsKKyAgICAg ICAgICAgICJwcml2aWxlZ2VfdHlwZSI6ImEiLAorICAgICAgICAgICAgInBy aXZpbGVnZSI6dHJ1ZSwKKyAgICAgICAgICAgICJ3aXRoX2dyYW50IjpmYWxz ZQorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgInBy aXZpbGVnZV90eXBlIjoiciIsCisgICAgICAgICAgICAicHJpdmlsZWdlIjp0 cnVlLAorICAgICAgICAgICAgIndpdGhfZ3JhbnQiOmZhbHNlCisgICAgICAg ICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAicHJpdmlsZWdlX3R5 cGUiOiJ3IiwKKyAgICAgICAgICAgICJwcml2aWxlZ2UiOnRydWUsCisgICAg ICAgICAgICAid2l0aF9ncmFudCI6ZmFsc2UKKyAgICAgICAgICB9LAorICAg ICAgICAgIHsKKyAgICAgICAgICAgICJwcml2aWxlZ2VfdHlwZSI6IngiLAor ICAgICAgICAgICAgInByaXZpbGVnZSI6dHJ1ZSwKKyAgICAgICAgICAgICJ3 aXRoX2dyYW50IjpmYWxzZQorICAgICAgICAgIH0KKyAgICAgICAgXQorICAg ICAgfQorICAgIF0sCisgICAgInRlc3Rfc2NoZW1hX25hbWUiOiAidGVzdF9z Y2hlbWEiLAorICAgICJ0ZXN0X2NvbHVtbiI6CisgICAgWworICAgICAgewor ICAgICAgICAiYXR0bmFtZSI6ImVubWUiLAorICAgICAgICAiZGF0YXR5cGUi OiJ0ZXh0IiwKKyAgICAgICAgImF0dG5vdG51bGwiOnRydWUsCisgICAgICAg ICJjb2xsbmFtZSI6InBnX2NhdGFsb2cuXCJkZWZhdWx0XCIiLAorICAgICAg ICAiaXNfdGxlbmd0aCI6ZmFsc2UsCisgICAgICAgICJpc19wcmVjaXNpb24i OmZhbHNlCisgICAgICB9CisgICAgXSwKKyAgICAidGVzdF9jb25zdHJhaW50 cyI6IFtdLAorICAgICJ0ZXN0X29wdGlvbnMiOiBbXSwKKyAgICAidGVzdF9m cnNfbmFtZSI6ICAidGVzdF9mb3JlaWduX3NlcnZlciIsCisgICAgInRlc3Rf bmFtZSI6ICJ0ZXN0X2Z0IiwKKyAgICAidGVzdF9vd25lciI6ICAicG9zdGdy ZXMiLAorICAgICJ0ZXN0X3JlbF9hY2wiOiAgW10sCisgICAgInRlc3Rfc2Vj X2xhYmxlIjogW10sCisgICAgInRlc3Rfc3RyX2FjbCI6IFtdCisgIH0sCisK KyAgICAidGVzdF9GVF91cGRhdGVfZGF0YSI6CisgIHsKKyAgICAidGVzdF9j b21tZW50IjogIlRoaXMgaXMgZm9yZWlnbiB0YWJsZSB1cGRhdGUgY29tbWVu dCIKKyAgfQorCisKKworCisKKworCisKKworCisKKworCisKKworCisKKwor CisKKworCisKKworCit9CmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi90 ZXN0X25vZGVzLnB5IGIvd2ViL3JlZ3Jlc3Npb24vdGVzdF9ub2Rlcy5weQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODc3YTA0Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3JlZ3Jlc3Npb24vdGVzdF9ub2Rlcy5w eQpAQCAtMCwwICsxLDQwIEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisj CisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJp Z2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQg VGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQ b3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisKK2Zyb20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0IGNvbmZpZ19kYXRh CitpbXBvcnQganNvbgorZnJvbSByZWdyZXNzaW9uLnRlc3RfdXRpbHMgaW1w b3J0IGdldF9pZHMKKworCitkZWYgdGVzdF9nZXRub2Rlcyhub2RlPU5vbmUp OgorICAgICMgQ29ubmVjdCB0byBzZXJ2ZXIgYW5kIGRhdGFiYXNlLgorCisg ICAgaWYgbm90IG5vZGU6CisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBh bGxfaWQgPSBnZXRfaWRzKCkKKworICAgIHNlcnZlcl9pZCA9IGFsbF9pZFsi c2lkIl1bMF0KKyAgICBkYl9pZCA9IGFsbF9pZFsiZGlkIl1bMF0KKyAgICBz cnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10KKwor ICAgIHJlc3BvbnNlID0gbm9kZS50ZXN0ZXIucG9zdCgnYnJvd3Nlci9zZXJ2 ZXIvY29ubmVjdC97MH0vezF9Jy5mb3JtYXQKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHNydl9ncnAsIHNlcnZlcl9pZCksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGljdChwYXNzd29yZD1j b25maWdfZGF0YQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb J3Rlc3Rfc2VydmVyX2NyZWRlbnRpYWxzJ11bMF0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgWyd0ZXN0X2RiX3Bhc3N3b3JkJ10pLCBmb2xs b3dfcmVkaXJlY3RzPVRydWUpCisKKyAgICBjb25fcmVzcG9uc2UgPSBub2Rl LnRlc3Rlci5wb3N0KCdicm93c2VyL2RhdGFiYXNlL2Nvbm5lY3QvJworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3swfS97MX0vezJ9 Jy5mb3JtYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChzcnZfZ3JwLCBzZXJ2ZXJfaWQsIGRiX2lkKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkK KworICAgIGRiX2NvbiA9IGpzb24ubG9hZHMoY29uX3Jlc3BvbnNlLmRhdGEu ZGVjb2RlKCkpCisKKyAgICByZXR1cm4gZGJfY29uCmRpZmYgLS1naXQgYS93 ZWIvcmVncmVzc2lvbi90ZXN0X3V0aWxzLnB5IGIvd2ViL3JlZ3Jlc3Npb24v dGVzdF91dGlscy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi41MGI4MzEwCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3JlZ3Jlc3Np b24vdGVzdF91dGlscy5weQpAQCAtMCwwICsxLDIwIEBACisjICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9v bHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRt aW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVh c2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCBwaWNrbGUKK2Zyb20gcmVncmVz c2lvbi5jb25maWcgaW1wb3J0IHBpY2tsZV9wYXRoCisKKworZGVmIGdldF9p ZHModXJsPXBpY2tsZV9wYXRoKToKKyAgICAjIFRoaXMgZnVuY3Rpb24gd2ls bCByZWFkIHBhcmVudCBub2RlcyBpZCdzIGFuZCByZXR1cm4gaXQuCisKKyAg ICBvdXRwdXQgPSBvcGVuKHVybCwgJ3JiJykKKyAgICBpZHMgPSBwaWNrbGUu bG9hZChvdXRwdXQpCisgICAgb3V0cHV0LmNsb3NlKCkKKyAgICByZXR1cm4g aWRzCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi90ZXN0c3VpdGUucHkg Yi93ZWIvcmVncmVzc2lvbi90ZXN0c3VpdGUucHkKaW5kZXggOWVjN2ZmZS4u MGJiMmRiMiAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vdGVzdHN1aXRl LnB5CisrKyBiL3dlYi9yZWdyZXNzaW9uL3Rlc3RzdWl0ZS5weQpAQCAtOSwx MCArOSwxMiBAQAogCiAiIiIgVGhpcyBmaWxlIGNvbGxlY3QgYWxsIG1vZHVs ZXMvZmlsZXMgcHJlc2VudCBpbiB0ZXN0cyBkaXJlY3RvcnkgYW5kIGFkZAog dGhlbSB0byBUZXN0U3VpdGUuICIiIgotCitmcm9tIF9fZnV0dXJlX18gaW1w b3J0IHByaW50X2Z1bmN0aW9uCiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIGlt cG9ydCB1bml0dGVzdAoraW1wb3J0IG9wZXJhdG9yCitpbXBvcnQgbG9nZ2lu ZwogZnJvbSB0ZXN0c2NlbmFyaW9zLnNjZW5hcmlvcyBpbXBvcnQgZ2VuZXJh dGVfc2NlbmFyaW9zCiAKICMgV2UgbmVlZCB0byBpbmNsdWRlIHRoZSByb290 IGRpcmVjdG9yeSBpbiBzeXMucGF0aCB0byBlbnN1cmUgdGhhdCB3ZSBjYW4K QEAgLTQ1LDYgKzQ3LDIzIEBAIFRlc3RzR2VuZXJhdG9yUmVnaXN0cnkubG9h ZF9nZW5lcmF0b3JzKCdwZ2FkbWluJykKIHRlc3RfY2xpZW50ID0gYXBwLnRl c3RfY2xpZW50KCkKIAogCitjbGFzcyBTdHJlYW1Ub0xvZ2dlcihvYmplY3Qp OgorICAgICIiIgorICAgIEZha2UgZmlsZS1saWtlIHN0cmVhbSBvYmplY3Qg dGhhdCByZWRpcmVjdHMgd3JpdGVzIHRvIGEgbG9nZ2VyIGluc3RhbmNlLgor ICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGxvZ19s ZXZlbD1sb2dnaW5nLklORk8pOgorICAgICAgICBzZWxmLmxvZ2dlciA9IGxv Z2dlcgorICAgICAgICBzZWxmLmxvZ19sZXZlbCA9IGxvZ19sZXZlbAorICAg ICAgICBzZWxmLmxpbmVidWYgPSAnJworCisgICAgZGVmIHdyaXRlKHNlbGYs IGJ1Zik6CisgICAgICAgIGZvciBsaW5lIGluIGJ1Zi5yc3RyaXAoKS5zcGxp dGxpbmVzKCk6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5sb2coc2VsZi5s b2dfbGV2ZWwsIGxpbmUucnN0cmlwKCkpCisKKyAgICBkZWYgZmx1c2goc2Vs Zik6CisgICAgICAgIHBhc3MKKworCiBkZWYgc3VpdGUoKToKICAgICAiIiIg RGVmaW5pbmcgdGVzdCBzdWl0ZSB3aGljaCB3aWxsIGV4ZWN1dGUgYWxsIHRo ZSB0ZXN0Y2FzZXMgcHJlc2VudCBpbgogICAgIHRlc3RzIGRpcmVjdG9yeSBh Y2NvcmRpbmcgdG8gc2V0IHByaW9yaXR5LiIiIgpAQCAtNTgsNiArNzcsOCBA QCBkZWYgc3VpdGUoKToKIAogICAgICAgICBtb2R1bGVzLmluc2VydChnZW4u cHJpb3JpdHksIGdlbikKIAorICAgIG1vZHVsZXMuc29ydChrZXk9b3BlcmF0 b3IuYXR0cmdldHRlcigncHJpb3JpdHknKSkKKwogICAgIGZvciBtIGluIG1v ZHVsZXM6CiAgICAgICAgIG9iaiA9IG0oKQogICAgICAgICBvYmouc2V0VGVz dENsaWVudCh0ZXN0X2NsaWVudCkKQEAgLTY2LDcgKzg3LDI2IEBAIGRlZiBz dWl0ZSgpOgogCiAgICAgcmV0dXJuIHBnYWRtaW5fc3VpdGUKIAotCiBpZiBf X25hbWVfXyA9PSAnX19tYWluX18nOgorCisgICAgcHJpbnQoIlBsZWFzZSBj aGVjayBvdXRwdXQgaW4gZmlsZTogbG9nZ2VyLmxvZyBwbGFjZWQgYXQgIgor ICAgICAgICAgICIuLi4vcGdhZG1pbjQvd2ViL3JlZ3Jlc3Npb24iKQorCisg ICAgbG9nZ2luZy5iYXNpY0NvbmZpZyhsZXZlbD1sb2dnaW5nLkRFQlVHLAor ICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0PSclKGFzY3RpbWUpczol KGxldmVsbmFtZSlzOiUobmFtZSlzOiUobWVzc2FnZSlzJywKKyAgICAgICAg ICAgICAgICAgICAgICAgIGZpbGVuYW1lPSJsb2dnZXIubG9nIiwKKyAgICAg ICAgICAgICAgICAgICAgICAgIGZpbGVtb2RlPSd3JworICAgICAgICAgICAg ICAgICAgICAgICAgKQorCisgICAgc3Rkb3V0X2xvZ2dlciA9IGxvZ2dpbmcu Z2V0TG9nZ2VyKCdTVERPVVQnKQorICAgIHNsID0gU3RyZWFtVG9Mb2dnZXIo c3Rkb3V0X2xvZ2dlciwgbG9nZ2luZy5JTkZPKQorICAgIHN5cy5zdGRvdXQg PSBzbAorCisgICAgc3RkZXJyX2xvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2Vy KCdTVERFUlInKQorICAgIHNsID0gU3RyZWFtVG9Mb2dnZXIoc3RkZXJyX2xv Z2dlciwgbG9nZ2luZy5FUlJPUikKKyAgICBzeXMuc3RkZXJyID0gc2wKKwog ICAgIHN1aXRlID0gc3VpdGUoKQotICAgIHRlc3RzID0gdW5pdHRlc3QuVGV4 dFRlc3RSdW5uZXIoZGVzY3JpcHRpb25zPVRydWUsIHZlcmJvc2l0eT0yKS5y dW4oc3VpdGUpCisgICAgdGVzdHMgPSB1bml0dGVzdC5UZXh0VGVzdFJ1bm5l cihkZXNjcmlwdGlvbnM9VHJ1ZSwgdmVyYm9zaXR5PTIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW09c3lzLnN0ZG91dCku cnVuKHN1aXRlKQorICAgIG9zLnJlbW92ZSgicGFyZW50X2lkLnBrbCIpCg== --001a11423d2862bc8a0534d7afcd Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a11423d2862bc8a0534d7afcd--