Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fSqqE-0008NY-HG for pgadmin-hackers@arkaria.postgresql.org; Tue, 12 Jun 2018 21:28:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fSqqC-0007uv-Sz for pgadmin-hackers@arkaria.postgresql.org; Tue, 12 Jun 2018 21:28:37 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fSkUn-0002VI-U8 for pgadmin-hackers@lists.postgresql.org; Tue, 12 Jun 2018 14:42:07 +0000 Received: from mx0b-00296801.pphosted.com ([148.163.153.148]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fSkUj-0002pw-8l for pgadmin-hackers@postgresql.org; Tue, 12 Jun 2018 14:42:04 +0000 Received: from pps.filterd (m0114586.ppops.net [127.0.0.1]) by mx0b-00296801.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w5CEewgh020187 for ; Tue, 12 Jun 2018 14:41:56 GMT Received: from mail-it0-f71.google.com (mail-it0-f71.google.com [209.85.214.71]) by mx0b-00296801.pphosted.com with ESMTP id 2jg8afk52v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 12 Jun 2018 14:41:55 +0000 Received: by mail-it0-f71.google.com with SMTP id c82-v6so12433648itg.1 for ; Tue, 12 Jun 2018 07:41:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=jD82eI2QrExIao8xlK3FZdpYgQGSc7wLO8YE3BN8Nac=; b=Uc2/YgCOY9ULR0a3mlMVYLaPnGwFxLslynq8BL1NXojbTGrdyL7+EDerAXbZVAEz7V oq/3YikL0rzcmCKAE8M2lY1RBGddTKDlIsc/HT6kcPwUrBQlnLGG1BdtUI+RfcXlFvnC ecwI2Vi/s2HoojYLdpj2HqpB6nrE/KJMqRin3LhMlgY9MdLSTmLQlSyPybT9PMLxMDOd /J65kIQ0mfRv2/FG05u1LnzqxTJcyPHUGuXiwvbx+Asc/LnmzHLSu8DOPBNGca7GLBr4 +xkAXz4rcj238PVWcvIBRRjwa9AHRTeVcTJK/UIkXEaQGdM5j1vpVGrcE0VOzMGTsQhB UzXA== X-Gm-Message-State: APt69E0DMl1yPuXs6pb12KNsNV1pA9HxUu3uX55FTd2ub/W/MsiHRnJ+ z9wbwHf8SLuRQtUGgXzsTq3aPGffd45FBpqVpEKapiFVilIae9vlNHdxOpYH7jeEpUy3mzqvTxq aIl9tzQqU9LpJQwpI1EJgHBgvC92bNt/qSnu9fNs8hvhiaaC6fjvLLhwrlihRADXwyFjn X-Received: by 2002:a6b:2653:: with SMTP id m80-v6mr705019iom.301.1528814514353; Tue, 12 Jun 2018 07:41:54 -0700 (PDT) X-Google-Smtp-Source: ADUXVKJV7CuGpavhJZx2fO2BygCPLaov1z1y0pEoy/DD5sQhvNPEPTJA0e/KvkuUMr/iM7BhRQQn2FtEFECjoJlwSoA= X-Received: by 2002:a6b:2653:: with SMTP id m80-v6mr704979iom.301.1528814513644; Tue, 12 Jun 2018 07:41:53 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Victoria Henry Date: Tue, 12 Jun 2018 10:41:42 -0400 Message-ID: Subject: Re: [pgadmin4][patch] Use pytest test runner for unit tests To: Dave Page Cc: Joao De Almeida Pereira , pgadmin-hackers , Anthony Emengo Content-Type: multipart/mixed; boundary="00000000000004228b056e72de09" X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-06-12_01:,, signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=scan_limit adjust=0 reason=mlx scancount=1 engine=8.0.1-1805220000 definitions=main-1806120167 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --00000000000004228b056e72de09 Content-Type: multipart/alternative; boundary="000000000000042287056e72de07" --000000000000042287056e72de07 Content-Type: text/plain; charset="UTF-8" Hi Dave, Attached are four different patches that should be applied in order. Included is a fix for the failing test above. Sincerely, Victoria && Joao On Mon, Jun 11, 2018 at 11:01 AM Dave Page wrote: > Hi > > On Mon, Jun 4, 2018 at 3:26 PM, Joao De Almeida Pereira < > jdealmeidapereira@pivotal.io> wrote: > >> Known issues: >>>> >>>> - Python 2.7, the library we are using for assertions (Grappa) is >>>> failing while trying to assert on strings. We created a PR to the library: >>>> https://github.com/grappa-py/grappa/pull/43 as soon as this gets in >>>> all the tests should pass >>>> >>>> Any guesses as to the ETA? Given that most of our dev, and our Windows >>> and Mac packages both run on 2.7 at the moment, it's clear that this is a >>> required fix before we can proceed. >>> >> >> Attached you can find the patch that bumps grappa to version 0.1.9 that >> support Python 2.7 >> > > I thought I had replied to this, but apparently not. My apologies... > > This does seem to fix the issues with Python 2.7. The remaining issues I > saw are: > > - There are a handful of failures with PG 11, however that's not yet > supported and Khushboo is working on it. It shouldn't hold up this patch - > just mentioning for completeness. > > - I get the following failure (which is easily fixed in the config file, > though that of course, shouldn't be necessary): > > E AssertionError: Oops! Something went wrong! > > E > > E The following assertion was not satisfied > > E subject "/Library/PostgreSQL/ ..." should be equal to > "/Library/PostgreSQL/ ..." > > E > > E What we expected > > E a value that is equal to "/Library/PostgreSQL/ ..." > > E > > E What we got instead > > E an value of type "str" with data "/Library/PostgreSQL/ ..." > > E > > E Difference comparison > > E > - /Library/PostgreSQL/tablespaces/9.4 > > E > + /Library/PostgreSQL/tablespaces/9.4/ > > E > ? + > > E > > E Where > > E File > "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/tablespaces/tests/test_tbspc_get.py", > line 75, in test_tablespace_get > > Thanks. > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --000000000000042287056e72de07 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Dave,

Attached are four different pa= tches that should be applied in order.=C2=A0 Included is a fix for the fail= ing test above.

Sincerely,

Victoria && Joao

On Mon, Jun 11, 2018 at 11:01 AM Dave Page <dpage@pgadmin.org> wrote:
Hi

On Mon, Jun 4, 2018 at 3:26 PM, Joao De Almeida Per= eira <jdealmeidapereira@pivotal.io> wrote:

Known issues:

  • Python 2.7, the library we are using for ass= ertions (Grappa) is failing while trying to assert on strings. We created a= PR to the library: https://github.com/grappa-py/grappa/pull/43 as soon = as this gets in all the tests should pass
Any guesses as to the ETA? Given that most of our dev, and our = Windows and Mac packages both run on 2.7 at the moment, it's clear that= this is a=C2=A0 required fix before we can proceed.
<= /div>

Attached you can find the patc= h that bumps grappa to version 0.1.9 that support Python 2.7=C2=A0

I thought I had replied to th= is, but apparently not. My apologies...

This does = seem to fix the issues with Python 2.7. The remaining issues I saw are:

- There are a handful of failures with PG 11, however= that's not yet supported and Khushboo is working on it. It shouldn'= ;t hold up this patch - just mentioning for completeness.

- = I get the following failure (which is easily fixed in the config file, thou= gh that of course, shouldn't be necessary):

E =C2=A0 As= sertionError: Oops! Something went wrong!

E=C2=A0 =C2=A0

E =C2=A0 =C2=A0 The following ass= ertion was not satisfied

E =C2=A0 =C2=A0 = =C2=A0 subject "/Library/PostgreSQL/ ..." should be equal = to "/Library/PostgreSQL/ ..."

E=C2=A0 =C2=A0

E =C2=A0 =C2=A0 What we expected<= /span>

E =C2=A0 =C2=A0 = =C2=A0 a value that is equal to "/Library/PostgreSQL/ ..."=

E=C2=A0 =C2=A0

E =C2=A0 =C2=A0 What we got inste= ad

E =C2=A0 =C2=A0 = =C2=A0 an value of type "str" with data "/Library/Pos= tgreSQL/ ..."

E=C2=A0 =C2=A0

E =C2=A0 =C2=A0 Difference compar= ison

E =C2=A0 =C2=A0 = =C2=A0 > - /Library/PostgreSQL/tablespaces/9.4

E =C2=A0 =C2=A0 = =C2=A0 > + /Library/PostgreSQL/tablespaces/9.4/

E =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 =C2=A0 =C2=A0 +

E=C2=A0 =C2=A0

E =C2=A0 =C2=A0 Where

E =C2=A0 =C2=A0 = =C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/serv= er_groups/servers/tablespaces/tests/test_tbspc_get.py", line 75, in te= st_tablespace_get


Thanks.

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

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Compa= ny
--000000000000042287056e72de07-- --00000000000004228b056e72de09 Content-Type: application/octet-stream; name="0002-Change-the-way-tests-are-launched.patch" Content-Disposition: attachment; filename="0002-Change-the-way-tests-are-launched.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jibso9bb1 ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggZjE2MzgwNGYuLjhmODEzYjZi IDEwMDY0NAotLS0gYS9NYWtlZmlsZQorKysgYi9NYWtlZmlsZQpAQCAtMTksMjkgKzE5LDMyIEBA IGFsbDogZG9jcyBwaXAgc3JjIHJ1bnRpbWUKIGFwcGJ1bmRsZTogZG9jcwogCS4vcGtnL21hYy9i dWlsZC5zaAogCi1pbnN0YWxsLW5vZGU6Ci0JY2Qgd2ViICYmIHlhcm4gaW5zdGFsbAotCiBidW5k bGU6CiAJY2Qgd2ViICYmIHlhcm4gcnVuIGJ1bmRsZQogCiBidW5kbGUtZGV2OgogCWNkIHdlYiAm JiB5YXJuIHJ1biBidW5kbGU6ZGV2CiAKK2luc3RhbGwtbm9kZToKKwljZCB3ZWIgJiYgeWFybiBp bnN0YWxsCisKIGxpbnRlcjoKIAljZCB3ZWIgJiYgeWFybiBydW4gbGludGVyCiAKLWNoZWNrOiBp bnN0YWxsLW5vZGUgYnVuZGxlIGxpbnRlcgotCWNkIHdlYiAmJiBweWNvZGVzdHlsZSAtLWNvbmZp Zz0ucHljb2Rlc3R5bGUgLiAmJiB5YXJuIHJ1biBrYXJtYSBzdGFydCAtLXNpbmdsZS1ydW4gJiYg cHl0aG9uIHJlZ3Jlc3Npb24vcnVudGVzdHMucHkKK2NoZWNrOiBpbnN0YWxsLW5vZGUgYnVuZGxl IGNoZWNrLXBlcDggY2hlY2stanMgY2hlY2stcHl0aG9uIGNoZWNrLWZlYXR1cmUKIAogY2hlY2st cGVwODoKIAljZCB3ZWIgJiYgcHljb2Rlc3R5bGUgLS1jb25maWc9LnB5Y29kZXN0eWxlIC4KIAog Y2hlY2stcHl0aG9uOgotCWNkIHdlYiAmJiBweXRob24gcmVncmVzc2lvbi9ydW50ZXN0cy5weSAt LWV4Y2x1ZGUgZmVhdHVyZV90ZXN0cworCWNkIHdlYiAmJiBweXRob24gLW0gcHl0ZXN0IC0tdGI9 c2hvcnQgLXEgXAorCS0tanNvbj1yZWdyZXNzaW9uL3Rlc3RfcmVzdWx0Lmpzb24gLS1sb2ctZmls ZS1sZXZlbD1ERUJVRyBcCisJLS1sb2ctZmlsZT1yZWdyZXNzaW9uL3JlZ3Jlc3Npb24ubG9nIHBn YWRtaW4KIAogY2hlY2stZmVhdHVyZTogaW5zdGFsbC1ub2RlIGJ1bmRsZQotCWNkIHdlYiAmJiBw eXRob24gcmVncmVzc2lvbi9ydW50ZXN0cy5weSAtLXBrZyBmZWF0dXJlX3Rlc3RzCisJY2Qgd2Vi ICYmIHB5dGhvbiAtbSBweXRlc3QgLS10Yj1zaG9ydCAtcSBcCisJLS1qc29uPXJlZ3Jlc3Npb24v dGVzdF9yZXN1bHQuanNvbiAtLWxvZy1maWxlLWxldmVsPURFQlVHIFwKKwktLWxvZy1maWxlPXJl Z3Jlc3Npb24vcmVncmVzc2lvbi5sb2cgcmVncmVzc2lvbi9mZWF0dXJlX3Rlc3RzCiAKIGNoZWNr LWpzOiBpbnN0YWxsLW5vZGUgbGludGVyCiAJY2Qgd2ViICYmIHlhcm4gcnVuIGthcm1hIHN0YXJ0 IC0tc2luZ2xlLXJ1bgpkaWZmIC0tZ2l0IGEvd2ViL3BhY2thZ2UuanNvbiBiL3dlYi9wYWNrYWdl Lmpzb24KaW5kZXggOTg0NDNmNDUuLjBlODk1OTY4IDEwMDY0NAotLS0gYS93ZWIvcGFja2FnZS5q c29uCisrKyBiL3dlYi9wYWNrYWdlLmpzb24KQEAgLTEwMSw3ICsxMDEsNyBAQAogICAgICJidW5k bGUiOiAiY3Jvc3MtZW52IE5PREVfRU5WPXByb2R1Y3Rpb24geWFybiBydW4gYnVuZGxlOmRldiIs CiAgICAgInRlc3Q6a2FybWEtb25jZSI6ICJ5YXJuIHJ1biBsaW50ZXIgJiYgeWFybiBydW4ga2Fy bWEgc3RhcnQgLS1zaW5nbGUtcnVuIiwKICAgICAidGVzdDprYXJtYSI6ICJ5YXJuIHJ1biBsaW50 ZXIgJiYgeWFybiBydW4ga2FybWEgc3RhcnQiLAotICAgICJ0ZXN0OnVuaXQiOiAieWFybiBydW4g bGludGVyICYmIHB5dGVzdCAtcSBwZ2FkbWluIiwKKyAgICAidGVzdDp1bml0IjogInlhcm4gcnVu IHBlcDggJiYgcHl0aG9uIC1tIHB5dGVzdCAtcSBwZ2FkbWluIiwKICAgICAidGVzdDpmZWF0dXJl IjogInlhcm4gcnVuIGJ1bmRsZSAmJiBweXRob24gcmVncmVzc2lvbi9ydW50ZXN0cy5weSAtLXBr ZyBmZWF0dXJlX3Rlc3RzIiwKICAgICAidGVzdCI6ICJ5YXJuIHJ1biB0ZXN0Omthcm1hLW9uY2Ug JiYgeWFybiBydW4gYnVuZGxlICYmIHlhcm4gdGVzdDp1bml0ICYmIHB5dGhvbiByZWdyZXNzaW9u L3J1bnRlc3RzLnB5IC0tcGtnIGZlYXR1cmVfdGVzdHMiLAogICAgICJwZXA4IjogInB5Y29kZXN0 eWxlIC0tY29uZmlnPS5weWNvZGVzdHlsZSAuIgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdGVzdF90YnNwY19n ZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNw YWNlcy90ZXN0cy90ZXN0X3Ric3BjX2dldC5weQppbmRleCBmNTc2NDZjMi4uYmIxODgzYTMgMTAw NjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxl c3BhY2VzL3Rlc3RzL3Rlc3RfdGJzcGNfZ2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3Rlc3RfdGJzcGNfZ2V0LnB5 CkBAIC03Miw3ICs3Miw3IEBAIGNsYXNzIFRlc3RUYWJsZXNwYWNlR2V0OgogICAgICAgICAgICAg c2hvdWxkLmJlLm5vbmUKICAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgn b2lkJykKICAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnc3BjbG9jYXRp b24nKSA+IFwKLSAgICAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50byhzZWxmLnNlcnZlclsndGFi bGVzcGFjZV9wYXRoJ10pCisgICAgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8oc2VsZi5zZXJ2 ZXJbJ3RhYmxlc3BhY2VfcGF0aCddLnJzdHJpcCgnL1xcJykpCiAgICAgICAgIGpzb25fcmVzcG9u c2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2FjbCcpID4gXAogICAgICAgICAgICAgc2hvdWxkLmJlLm5v bmUKICAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnc3BjdXNlcicpID4g XApkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vUkVBRE1FIGIvd2ViL3JlZ3Jlc3Npb24vUkVB RE1FCmluZGV4IDdlNjY4Y2ZkLi5kMmRjZjQ2MiAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24v UkVBRE1FCisrKyBiL3dlYi9yZWdyZXNzaW9uL1JFQURNRQpAQCAtMTQ1LDM1ICsxNDUsMzQgQEAg UHl0aG9uIFRlc3RzOgogICAgICBydW4gJ2NkIHdlYi9yZWdyZXNzaW9uJwogCiAtIEV4ZWN1dGUg dGhlIHRlc3QgZnJhbWV3b3JrIGZvciBhbGwgbm9kZXMKLSAgICAgcnVuICdweXRob24gcnVudGVz dHMucHkgLS1wa2cgYWxsJyBvciBqdXN0OgotICAgICAgICAgJ3B5dGhvbiBydW50ZXN0cy5weScK KyAgICAgcnVuICdweXRob24gLW0gcHl0ZXN0IC1xIHBnYWRtaW4gcmVncmVzc2lvbi9mZWF0dXJl X3Rlc3RzJwogCiAtIEV4ZWN1dGUgdGVzdCBmcmFtZXdvcmsgZm9yIGVudGlyZSBwYWNrYWdlCiAK ICAgICAgRXhhbXBsZSAxKSBSdW4gdGVzdCBmcmFtZXdvcmsgZm9yICdicm93c2VyJyBwYWNrYWdl Ci0gICAgIHJ1biAncHl0aG9uIHJ1bnRlc3RzLnB5IC0tcGtnIGJyb3dzZXInCisgICAgIHJ1biAn cHl0aG9uIC1tIHB5dGVzdCAtcSBwZ2FkbWluL2Jyb3dzZXInCiAKICAgICAgRXhhbXBsZSAyKSBS dW4gdGVzdCBmcmFtZXdvcmsgZm9yICdkYXRhYmFzZScgcGFja2FnZQotICAgICBydW4gJ3B5dGhv biBydW50ZXN0cy5weSAtLXBrZyBicm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFz ZXMnCisgICAgIHJ1biAncHl0aG9uIC1tIHB5dGVzdCAtcSBwZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcycKIAogICAgICBFeGFtcGxlIDMpIFJ1biBmZWF0dXJl IHRlc3RzCi0gICAgIHJ1biAncHl0aG9uIHJ1bnRlc3RzLnB5IC0tcGtnIGZlYXR1cmVfdGVzdHMK KyAgICAgcnVuICdweXRob24gLW0gcHl0ZXN0IC1xIHJlZ3Jlc3Npb24vZmVhdHVyZV90ZXN0cycK IAogLSBFeGVjdXRlIHRlc3QgZnJhbWV3b3JrIGZvciBzaW5nbGUgbm9kZSBhdCBhIHRpbWUKIAog ICAgICBFeGFtcGxlIDEpIFJ1biB0ZXN0IGZyYW1ld29yayBmb3IgJ2Jyb3dzZXInIG5vZGUKLSAg ICAgcnVuICdweXRob24gcnVudGVzdHMucHkgLS1wa2cgYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnRl c3RzJworICAgICBydW4gJ3B5dGhvbiAtbSBweXRlc3QgLXEgcGdhZG1pbiAtLWlnbm9yZSBwZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy90ZXN0cycKIAogICAgICBFeGFtcGxlIDIpIFJ1biB0 ZXN0IGZyYW1ld29yayBmb3IgJ2RhdGFiYXNlJyBub2RlCi0gICAgIHJ1biAncHl0aG9uIHJ1bnRl c3RzLnB5IC0tcGtnIGJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0 cycKKyAgICAgcnVuICdweXRob24gLW0gcHl0ZXN0IC1xIHBnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzJwogCiAtIEV4Y2x1ZGUgYSBwYWNrYWdlIGFu ZCBpdHMgc3VicGFja2FnZXMgd2hlbiBydW5uaW5nIHRlc3RzOgogCiAgICAgRXhhbXBsZTogZXhj bHVkZSBmZWF0dXJlIHRlc3RzIGJ1dCBydW4gYWxsIG90aGVyczoKLSAgICBydW4gJ3B5dGhvbiBy dW50ZXN0cy5weSAtLWV4Y2x1ZGUgZmVhdHVyZV90ZXN0cycKKyAgICBydW4gJ3B5dGhvbiAtbSBw eXRlc3QgLXEgcGdhZG1pbicKIAogICAgIEV4YW1wbGU6IGV4Y2x1ZGUgbXVsdGlwbGUgcGFja2Fn ZXM6Ci0gICAgcnVuICdweXRob24gcnVudGVzdHMucHkgLS1leGNsdWRlIGJyb3dzZXIuc2VydmVy X2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcyxicm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy50 YWJsZXNwYWNlcycKKyAgICBydW4gJ3B5dGhvbiAtbSBweXRlc3QgLXEgcGdhZG1pbiAtLWlnbm9y ZSBwZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcyAtLWlnbm9y ZSBwZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzJwogCiBK YXZhc2NyaXB0IFRlc3RzOgogCi0tIAoyLjE3LjAKCg== --00000000000004228b056e72de09 Content-Type: application/octet-stream; name="0001-Patch-0001-rebased-over-master.patch" Content-Disposition: attachment; filename="0001-Patch-0001-rebased-over-master.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jibso9b10 ZGlmZiAtLWdpdCBhL3dlYi8uZ2l0aWdub3JlIGIvd2ViLy5naXRpZ25vcmUKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjNjZTFkMjQ2Ci0tLSAvZGV2L251bGwKKysrIGIvd2Vi Ly5naXRpZ25vcmUKQEAgLTAsMCArMSBAQAorLnB5dGVzdF9jYWNoZQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFs X3RhYmxlcy90ZXN0cy90ZXN0X3NxbF90ZW1wbGF0ZV9jcmVhdGVfaW50ZWdyYXRpb24ucHkgYi93 ZWIvX19pbml0X18ucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHdlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlcm5hbF90YWJs ZXMvdGVzdHMvdGVzdF9zcWxfdGVtcGxhdGVfY3JlYXRlX2ludGVncmF0aW9uLnB5CnJlbmFtZSB0 byB3ZWIvX19pbml0X18ucHkKZGlmZiAtLWdpdCBhL3dlYi9jb25maWcucHkgYi93ZWIvY29uZmln LnB5CmluZGV4IGU3ZDEwY2Q0Li4yMmIxZDE3ZCAxMDA2NDQKLS0tIGEvd2ViL2NvbmZpZy5weQor KysgYi93ZWIvY29uZmlnLnB5CkBAIC0xMTYsMTAgKzExNiwxMyBAQCBOT0RFX0JMQUNLTElTVCA9 IFtdCiAjICAgICAgIGZyb20gaXQsIG5vdGFibHkgdmFyaW91cyBwYXRocyBzdWNoIGFzIExPR19G SUxFIGFuZCBhbnl0aGluZwogIyAgICAgICB1c2luZyBEQVRBX0RJUi4KIAotaWYgYnVpbHRpbnMu U0VSVkVSX01PREUgaXMgTm9uZToKK3RyeToKKyAgICBpZiBidWlsdGlucy5TRVJWRVJfTU9ERSBp cyBOb25lOgorICAgICAgICBTRVJWRVJfTU9ERSA9IFRydWUKKyAgICBlbHNlOgorICAgICAgICBT RVJWRVJfTU9ERSA9IGJ1aWx0aW5zLlNFUlZFUl9NT0RFCitleGNlcHQgQXR0cmlidXRlRXJyb3I6 CiAgICAgU0VSVkVSX01PREUgPSBUcnVlCi1lbHNlOgotICAgIFNFUlZFUl9NT0RFID0gYnVpbHRp bnMuU0VSVkVSX01PREUKIAogIyBVc2VyIElEIChlbWFpbCBhZGRyZXNzKSB0byB1c2UgZm9yIHRo ZSBkZWZhdWx0IHVzZXIgaW4gZGVza3RvcCBtb2RlLgogIyBUaGUgZGVmYXVsdCBzaG91bGQgYmUg ZmluZSBoZXJlLCBhcyBpdCdzIG5vdCBleHBvc2VkIGluIHRoZSBhcHAuCmRpZmYgLS1naXQgYS93 ZWIvcGFja2FnZS5qc29uIGIvd2ViL3BhY2thZ2UuanNvbgppbmRleCBiNjRiYmUxYy4uOTg0NDNm NDUgMTAwNjQ0Ci0tLSBhL3dlYi9wYWNrYWdlLmpzb24KKysrIGIvd2ViL3BhY2thZ2UuanNvbgpA QCAtMTAxLDggKzEwMSw5IEBACiAgICAgImJ1bmRsZSI6ICJjcm9zcy1lbnYgTk9ERV9FTlY9cHJv ZHVjdGlvbiB5YXJuIHJ1biBidW5kbGU6ZGV2IiwKICAgICAidGVzdDprYXJtYS1vbmNlIjogInlh cm4gcnVuIGxpbnRlciAmJiB5YXJuIHJ1biBrYXJtYSBzdGFydCAtLXNpbmdsZS1ydW4iLAogICAg ICJ0ZXN0Omthcm1hIjogInlhcm4gcnVuIGxpbnRlciAmJiB5YXJuIHJ1biBrYXJtYSBzdGFydCIs CisgICAgInRlc3Q6dW5pdCI6ICJ5YXJuIHJ1biBsaW50ZXIgJiYgcHl0ZXN0IC1xIHBnYWRtaW4i LAogICAgICJ0ZXN0OmZlYXR1cmUiOiAieWFybiBydW4gYnVuZGxlICYmIHB5dGhvbiByZWdyZXNz aW9uL3J1bnRlc3RzLnB5IC0tcGtnIGZlYXR1cmVfdGVzdHMiLAotICAgICJ0ZXN0IjogInlhcm4g cnVuIHRlc3Q6a2FybWEtb25jZSAmJiB5YXJuIHJ1biBidW5kbGUgJiYgcHl0aG9uIHJlZ3Jlc3Np b24vcnVudGVzdHMucHkiLAorICAgICJ0ZXN0IjogInlhcm4gcnVuIHRlc3Q6a2FybWEtb25jZSAm JiB5YXJuIHJ1biBidW5kbGUgJiYgeWFybiB0ZXN0OnVuaXQgJiYgcHl0aG9uIHJlZ3Jlc3Npb24v cnVudGVzdHMucHkgLS1wa2cgZmVhdHVyZV90ZXN0cyIsCiAgICAgInBlcDgiOiAicHljb2Rlc3R5 bGUgLS1jb25maWc9LnB5Y29kZXN0eWxlIC4iCiAgIH0KIH0KZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vX19pbml0X18ucHkKaW5kZXggNWNhZjYwNGMu LmQwMWFjOGZmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9fX2luaXRfXy5weQorKysgYi93ZWIv cGdhZG1pbi9fX2luaXRfXy5weQpAQCAtMjE3LDYgKzIxNyw4IEBAIGRlZiBjcmVhdGVfYXBwKGFw cF9uYW1lPU5vbmUpOgogICAgICAgICAnUEdBRE1JTl9URVNUSU5HX01PREUnIGluIG9zLmVudmly b24gYW5kCiAgICAgICAgIG9zLmVudmlyb25bJ1BHQURNSU5fVEVTVElOR19NT0RFJ10gPT0gJzEn CiAgICAgKToKKyAgICAgICAgZnJvbSBwZ2FkbWluLm1vZGVsIGltcG9ydCBTQ0hFTUFfVkVSU0lP TgorICAgICAgICBjb25maWcuU0VUVElOR1NfU0NIRU1BX1ZFUlNJT04gPSBTQ0hFTUFfVkVSU0lP TgogICAgICAgICBjb25maWcuU1FMSVRFX1BBVEggPSBjb25maWcuVEVTVF9TUUxJVEVfUEFUSAog CiAgICAgIyBFbnN1cmUgdGhlIHZhcmlvdXMgd29ya2luZyBkaXJlY3RvcmllcyBleGlzdApkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvX19pbml0X18ucHkKaW5kZXggMzc0MWQ5ZDMuLjVjMWZmNWRiIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv X19pbml0X18ucHkKQEAgLTcxMSwyMjAgKzcxMSwyMTQgQEAgZGVmIGdldF9ub2RlcygpOgogICAg IHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoZGF0YT1ub2RlcykKIAogCi0jIE9ubHkgcmVnaXN0 ZXIgcm91dGUgaWYgU0VDVVJJVFlfQ0hBTkdFQUJMRSBpcyBzZXQgdG8gVHJ1ZQotIyBXZSBjYW4n dCBhY2Nlc3MgYXBwIGNvbnRleHQgaGVyZSBzbyBjYW5ub3QKLSMgdXNlIGFwcC5jb25maWdbJ1NF Q1VSSVRZX0NIQU5HRUFCTEUnXQorQGJsdWVwcmludC5yb3V0ZSgiL2NoYW5nZV9wYXNzd29yZCIs IGVuZHBvaW50PSJjaGFuZ2VfcGFzc3dvcmQiLAorICAgICAgICAgICAgICAgICBtZXRob2RzPVsn R0VUJywgJ1BPU1QnXSkKK0Bsb2dpbl9yZXF1aXJlZAorZGVmIGNoYW5nZV9wYXNzd29yZCgpOgor ICAgICIiIlZpZXcgZnVuY3Rpb24gd2hpY2ggaGFuZGxlcyBhIGNoYW5nZSBwYXNzd29yZCByZXF1 ZXN0LiIiIgogCisgICAgaGFzX2Vycm9yID0gRmFsc2UKKyAgICBmb3JtX2NsYXNzID0gX3NlY3Vy aXR5LmNoYW5nZV9wYXNzd29yZF9mb3JtCiAKLWlmIGhhc2F0dHIoY29uZmlnLCAnU0VDVVJJVFlf Q0hBTkdFQUJMRScpIGFuZCBjb25maWcuU0VDVVJJVFlfQ0hBTkdFQUJMRToKLSAgICBAYmx1ZXBy aW50LnJvdXRlKCIvY2hhbmdlX3Bhc3N3b3JkIiwgZW5kcG9pbnQ9ImNoYW5nZV9wYXNzd29yZCIs Ci0gICAgICAgICAgICAgICAgICAgICBtZXRob2RzPVsnR0VUJywgJ1BPU1QnXSkKLSAgICBAbG9n aW5fcmVxdWlyZWQKLSAgICBkZWYgY2hhbmdlX3Bhc3N3b3JkKCk6Ci0gICAgICAgICIiIlZpZXcg ZnVuY3Rpb24gd2hpY2ggaGFuZGxlcyBhIGNoYW5nZSBwYXNzd29yZCByZXF1ZXN0LiIiIgorICAg IGlmIHJlcXVlc3QuanNvbjoKKyAgICAgICAgZm9ybSA9IGZvcm1fY2xhc3MoTXVsdGlEaWN0KHJl cXVlc3QuanNvbikpCisgICAgZWxzZToKKyAgICAgICAgZm9ybSA9IGZvcm1fY2xhc3MoKQogCi0g ICAgICAgIGhhc19lcnJvciA9IEZhbHNlCi0gICAgICAgIGZvcm1fY2xhc3MgPSBfc2VjdXJpdHku Y2hhbmdlX3Bhc3N3b3JkX2Zvcm0KKyAgICBpZiBmb3JtLnZhbGlkYXRlX29uX3N1Ym1pdCgpOgor ICAgICAgICB0cnk6CisgICAgICAgICAgICBjaGFuZ2VfdXNlcl9wYXNzd29yZChjdXJyZW50X3Vz ZXIsIGZvcm0ubmV3X3Bhc3N3b3JkLmRhdGEpCisgICAgICAgIGV4Y2VwdCBTT0NLRVRFcnJvckV4 Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgIyBIYW5kbGUgc29ja2V0IGVycm9ycyB3aGljaCBh cmUgbm90IGNvdmVyZWQgYnkgU01UUEV4Y2VwdGlvbnMuCisgICAgICAgICAgICBsb2dnaW5nLmV4 Y2VwdGlvbihzdHIoZSksIGV4Y19pbmZvPVRydWUpCisgICAgICAgICAgICBmbGFzaChnZXR0ZXh0 KHUnU01UUCBTb2NrZXQgZXJyb3I6IHt9XG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgIHUn WW91ciBwYXNzd29yZCBoYXMgbm90IGJlZW4gY2hhbmdlZC4nCisgICAgICAgICAgICAgICAgICAg ICAgICAgICkuZm9ybWF0KGUpLAorICAgICAgICAgICAgICAgICAgJ2RhbmdlcicpCisgICAgICAg ICAgICBoYXNfZXJyb3IgPSBUcnVlCisgICAgICAgIGV4Y2VwdCAoU01UUENvbm5lY3RFcnJvciwg U01UUFJlc3BvbnNlRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgIFNNVFBTZXJ2ZXJEaXNjb25u ZWN0ZWQsIFNNVFBEYXRhRXJyb3IsIFNNVFBIZWxvRXJyb3IsCisgICAgICAgICAgICAgICAgU01U UEV4Y2VwdGlvbiwgU01UUEF1dGhlbnRpY2F0aW9uRXJyb3IsIFNNVFBTZW5kZXJSZWZ1c2VkLAor ICAgICAgICAgICAgICAgIFNNVFBSZWNpcGllbnRzUmVmdXNlZCkgYXMgZToKKyAgICAgICAgICAg ICMgSGFuZGxlIHNtdHAgc3BlY2lmaWMgZXhjZXB0aW9ucy4KKyAgICAgICAgICAgIGxvZ2dpbmcu ZXhjZXB0aW9uKHN0cihlKSwgZXhjX2luZm89VHJ1ZSkKKyAgICAgICAgICAgIGZsYXNoKGdldHRl eHQodSdTTVRQIGVycm9yOiB7fVxuJworICAgICAgICAgICAgICAgICAgICAgICAgICB1J1lvdXIg cGFzc3dvcmQgaGFzIG5vdCBiZWVuIGNoYW5nZWQuJworICAgICAgICAgICAgICAgICAgICAgICAg ICApLmZvcm1hdChlKSwKKyAgICAgICAgICAgICAgICAgICdkYW5nZXInKQorICAgICAgICAgICAg aGFzX2Vycm9yID0gVHJ1ZQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAg ICAgICAjIEhhbmRsZSBvdGhlciBleGNlcHRpb25zLgorICAgICAgICAgICAgbG9nZ2luZy5leGNl cHRpb24oc3RyKGUpLCBleGNfaW5mbz1UcnVlKQorICAgICAgICAgICAgZmxhc2goCisgICAgICAg ICAgICAgICAgZ2V0dGV4dCgKKyAgICAgICAgICAgICAgICAgICAgdSdFcnJvcjoge31cbicKKyAg ICAgICAgICAgICAgICAgICAgdSdZb3VyIHBhc3N3b3JkIGhhcyBub3QgYmVlbiBjaGFuZ2VkLicK KyAgICAgICAgICAgICAgICApLmZvcm1hdChlKSwKKyAgICAgICAgICAgICAgICAnZGFuZ2VyJwor ICAgICAgICAgICAgKQorICAgICAgICAgICAgaGFzX2Vycm9yID0gVHJ1ZQogCi0gICAgICAgIGlm IHJlcXVlc3QuanNvbjoKLSAgICAgICAgICAgIGZvcm0gPSBmb3JtX2NsYXNzKE11bHRpRGljdChy ZXF1ZXN0Lmpzb24pKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZm9ybSA9IGZvcm1fY2xh c3MoKQotCi0gICAgICAgIGlmIGZvcm0udmFsaWRhdGVfb25fc3VibWl0KCk6Ci0gICAgICAgICAg ICB0cnk6Ci0gICAgICAgICAgICAgICAgY2hhbmdlX3VzZXJfcGFzc3dvcmQoY3VycmVudF91c2Vy LCBmb3JtLm5ld19wYXNzd29yZC5kYXRhKQotICAgICAgICAgICAgZXhjZXB0IFNPQ0tFVEVycm9y RXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAgICAgIyBIYW5kbGUgc29ja2V0IGVycm9ycyB3 aGljaCBhcmUgbm90IGNvdmVyZWQgYnkgU01UUEV4Y2VwdGlvbnMuCi0gICAgICAgICAgICAgICAg bG9nZ2luZy5leGNlcHRpb24oc3RyKGUpLCBleGNfaW5mbz1UcnVlKQotICAgICAgICAgICAgICAg IGZsYXNoKGdldHRleHQodSdTTVRQIFNvY2tldCBlcnJvcjoge31cbicKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHUnWW91ciBwYXNzd29yZCBoYXMgbm90IGJlZW4gY2hhbmdlZC4nCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLmZvcm1hdChlKSwKLSAgICAgICAgICAgICAg ICAgICAgICAnZGFuZ2VyJykKLSAgICAgICAgICAgICAgICBoYXNfZXJyb3IgPSBUcnVlCi0gICAg ICAgICAgICBleGNlcHQgKFNNVFBDb25uZWN0RXJyb3IsIFNNVFBSZXNwb25zZUV4Y2VwdGlvbiwK LSAgICAgICAgICAgICAgICAgICAgU01UUFNlcnZlckRpc2Nvbm5lY3RlZCwgU01UUERhdGFFcnJv ciwgU01UUEhlbG9FcnJvciwKLSAgICAgICAgICAgICAgICAgICAgU01UUEV4Y2VwdGlvbiwgU01U UEF1dGhlbnRpY2F0aW9uRXJyb3IsIFNNVFBTZW5kZXJSZWZ1c2VkLAotICAgICAgICAgICAgICAg ICAgICBTTVRQUmVjaXBpZW50c1JlZnVzZWQpIGFzIGU6Ci0gICAgICAgICAgICAgICAgIyBIYW5k bGUgc210cCBzcGVjaWZpYyBleGNlcHRpb25zLgotICAgICAgICAgICAgICAgIGxvZ2dpbmcuZXhj ZXB0aW9uKHN0cihlKSwgZXhjX2luZm89VHJ1ZSkKLSAgICAgICAgICAgICAgICBmbGFzaChnZXR0 ZXh0KHUnU01UUCBlcnJvcjoge31cbicKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUn WW91ciBwYXNzd29yZCBoYXMgbm90IGJlZW4gY2hhbmdlZC4nCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICApLmZvcm1hdChlKSwKLSAgICAgICAgICAgICAgICAgICAgICAnZGFuZ2VyJykK LSAgICAgICAgICAgICAgICBoYXNfZXJyb3IgPSBUcnVlCi0gICAgICAgICAgICBleGNlcHQgRXhj ZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAgICAgIyBIYW5kbGUgb3RoZXIgZXhjZXB0aW9ucy4K LSAgICAgICAgICAgICAgICBsb2dnaW5nLmV4Y2VwdGlvbihzdHIoZSksIGV4Y19pbmZvPVRydWUp Ci0gICAgICAgICAgICAgICAgZmxhc2goCi0gICAgICAgICAgICAgICAgICAgIGdldHRleHQoCi0g ICAgICAgICAgICAgICAgICAgICAgICB1J0Vycm9yOiB7fVxuJwotICAgICAgICAgICAgICAgICAg ICAgICAgdSdZb3VyIHBhc3N3b3JkIGhhcyBub3QgYmVlbiBjaGFuZ2VkLicKLSAgICAgICAgICAg ICAgICAgICAgKS5mb3JtYXQoZSksCi0gICAgICAgICAgICAgICAgICAgICdkYW5nZXInCi0gICAg ICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgIGhhc19lcnJvciA9IFRydWUKKyAgICAgICAg aWYgcmVxdWVzdC5qc29uIGlzIE5vbmUgYW5kIG5vdCBoYXNfZXJyb3I6CisgICAgICAgICAgICBh ZnRlcl90aGlzX3JlcXVlc3QoX2NvbW1pdCkKKyAgICAgICAgICAgIGRvX2ZsYXNoKCpnZXRfbWVz c2FnZSgnUEFTU1dPUkRfQ0hBTkdFJykpCisgICAgICAgICAgICByZXR1cm4gcmVkaXJlY3QoZ2V0 X3VybChfc2VjdXJpdHkucG9zdF9jaGFuZ2Vfdmlldykgb3IKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBnZXRfdXJsKF9zZWN1cml0eS5wb3N0X2xvZ2luX3ZpZXcpKQogCi0gICAgICAgICAg ICBpZiByZXF1ZXN0Lmpzb24gaXMgTm9uZSBhbmQgbm90IGhhc19lcnJvcjoKLSAgICAgICAgICAg ICAgICBhZnRlcl90aGlzX3JlcXVlc3QoX2NvbW1pdCkKLSAgICAgICAgICAgICAgICBkb19mbGFz aCgqZ2V0X21lc3NhZ2UoJ1BBU1NXT1JEX0NIQU5HRScpKQotICAgICAgICAgICAgICAgIHJldHVy biByZWRpcmVjdChnZXRfdXJsKF9zZWN1cml0eS5wb3N0X2NoYW5nZV92aWV3KSBvcgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRfdXJsKF9zZWN1cml0eS5wb3N0X2xvZ2luX3Zp ZXcpKQorICAgIGlmIHJlcXVlc3QuanNvbiBhbmQgbm90IGhhc19lcnJvcjoKKyAgICAgICAgZm9y bS51c2VyID0gY3VycmVudF91c2VyCisgICAgICAgIHJldHVybiBfcmVuZGVyX2pzb24oZm9ybSkK IAotICAgICAgICBpZiByZXF1ZXN0Lmpzb24gYW5kIG5vdCBoYXNfZXJyb3I6Ci0gICAgICAgICAg ICBmb3JtLnVzZXIgPSBjdXJyZW50X3VzZXIKLSAgICAgICAgICAgIHJldHVybiBfcmVuZGVyX2pz b24oZm9ybSkKKyAgICByZXR1cm4gX3NlY3VyaXR5LnJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAg Y29uZmlnX3ZhbHVlKCdDSEFOR0VfUEFTU1dPUkRfVEVNUExBVEUnKSwKKyAgICAgICAgY2hhbmdl X3Bhc3N3b3JkX2Zvcm09Zm9ybSwKKyAgICAgICAgKipfY3R4KCdjaGFuZ2VfcGFzc3dvcmQnKSkK IAotICAgICAgICByZXR1cm4gX3NlY3VyaXR5LnJlbmRlcl90ZW1wbGF0ZSgKLSAgICAgICAgICAg IGNvbmZpZ192YWx1ZSgnQ0hBTkdFX1BBU1NXT1JEX1RFTVBMQVRFJyksCi0gICAgICAgICAgICBj aGFuZ2VfcGFzc3dvcmRfZm9ybT1mb3JtLAotICAgICAgICAgICAgKipfY3R4KCdjaGFuZ2VfcGFz c3dvcmQnKSkKIAotIyBPbmx5IHJlZ2lzdGVyIHJvdXRlIGlmIFNFQ1VSSVRZX1JFQ09WRVJBQkxF IGlzIHNldCB0byBUcnVlCi1pZiBoYXNhdHRyKGNvbmZpZywgJ1NFQ1VSSVRZX1JFQ09WRVJBQkxF JykgYW5kIGNvbmZpZy5TRUNVUklUWV9SRUNPVkVSQUJMRToKK2RlZiBzZW5kX3Jlc2V0X3Bhc3N3 b3JkX2luc3RydWN0aW9ucyh1c2VyKToKKyAgICAiIiJTZW5kcyB0aGUgcmVzZXQgcGFzc3dvcmQg aW5zdHJ1Y3Rpb25zIGVtYWlsIGZvciB0aGUgc3BlY2lmaWVkIHVzZXIuCiAKLSAgICBkZWYgc2Vu ZF9yZXNldF9wYXNzd29yZF9pbnN0cnVjdGlvbnModXNlcik6Ci0gICAgICAgICIiIlNlbmRzIHRo ZSByZXNldCBwYXNzd29yZCBpbnN0cnVjdGlvbnMgZW1haWwgZm9yIHRoZSBzcGVjaWZpZWQgdXNl ci4KKyAgICA6cGFyYW0gdXNlcjogVGhlIHVzZXIgdG8gc2VuZCB0aGUgaW5zdHJ1Y3Rpb25zIHRv CisgICAgIiIiCisgICAgdG9rZW4gPSBnZW5lcmF0ZV9yZXNldF9wYXNzd29yZF90b2tlbih1c2Vy KQorICAgIHJlc2V0X2xpbmsgPSB1cmxfZm9yKCdicm93c2VyLnJlc2V0X3Bhc3N3b3JkJywgdG9r ZW49dG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgX2V4dGVybmFsPVRydWUpCiAKLSAg ICAgICAgOnBhcmFtIHVzZXI6IFRoZSB1c2VyIHRvIHNlbmQgdGhlIGluc3RydWN0aW9ucyB0bwot ICAgICAgICAiIiIKLSAgICAgICAgdG9rZW4gPSBnZW5lcmF0ZV9yZXNldF9wYXNzd29yZF90b2tl bih1c2VyKQotICAgICAgICByZXNldF9saW5rID0gdXJsX2ZvcignYnJvd3Nlci5yZXNldF9wYXNz d29yZCcsIHRva2VuPXRva2VuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZXh0ZXJu YWw9VHJ1ZSkKLQotICAgICAgICBzZW5kX21haWwoY29uZmlnX3ZhbHVlKCdFTUFJTF9TVUJKRUNU X1BBU1NXT1JEX1JFU0VUJyksIHVzZXIuZW1haWwsCi0gICAgICAgICAgICAgICAgICAncmVzZXRf aW5zdHJ1Y3Rpb25zJywKLSAgICAgICAgICAgICAgICAgIHVzZXI9dXNlciwgcmVzZXRfbGluaz1y ZXNldF9saW5rKQotCi0gICAgICAgIHJlc2V0X3Bhc3N3b3JkX2luc3RydWN0aW9uc19zZW50LnNl bmQoCi0gICAgICAgICAgICBjdXJyZW50X2FwcC5fZ2V0X2N1cnJlbnRfb2JqZWN0KCksCi0gICAg ICAgICAgICB1c2VyPXVzZXIsIHRva2VuPXRva2VuKQotCi0gICAgQGJsdWVwcmludC5yb3V0ZSgi L3Jlc2V0X3Bhc3N3b3JkIiwgZW5kcG9pbnQ9ImZvcmdvdF9wYXNzd29yZCIsCi0gICAgICAgICAg ICAgICAgICAgICBtZXRob2RzPVsnR0VUJywgJ1BPU1QnXSkKLSAgICBAYW5vbnltb3VzX3VzZXJf cmVxdWlyZWQKLSAgICBkZWYgZm9yZ290X3Bhc3N3b3JkKCk6Ci0gICAgICAgICIiIlZpZXcgZnVu Y3Rpb24gdGhhdCBoYW5kbGVzIGEgZm9yZ290dGVuIHBhc3N3b3JkIHJlcXVlc3QuIiIiCi0gICAg ICAgIGhhc19lcnJvciA9IEZhbHNlCi0gICAgICAgIGZvcm1fY2xhc3MgPSBfc2VjdXJpdHkuZm9y Z290X3Bhc3N3b3JkX2Zvcm0KLQotICAgICAgICBpZiByZXF1ZXN0Lmpzb246Ci0gICAgICAgICAg ICBmb3JtID0gZm9ybV9jbGFzcyhNdWx0aURpY3QocmVxdWVzdC5qc29uKSkKLSAgICAgICAgZWxz ZToKLSAgICAgICAgICAgIGZvcm0gPSBmb3JtX2NsYXNzKCkKLQotICAgICAgICBpZiBmb3JtLnZh bGlkYXRlX29uX3N1Ym1pdCgpOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHNl bmRfcmVzZXRfcGFzc3dvcmRfaW5zdHJ1Y3Rpb25zKGZvcm0udXNlcikKLSAgICAgICAgICAgIGV4 Y2VwdCBTT0NLRVRFcnJvckV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgICAgICMgSGFuZGxl IHNvY2tldCBlcnJvcnMgd2hpY2ggYXJlIG5vdCBjb3ZlcmVkIGJ5IFNNVFBFeGNlcHRpb25zLgot ICAgICAgICAgICAgICAgIGxvZ2dpbmcuZXhjZXB0aW9uKHN0cihlKSwgZXhjX2luZm89VHJ1ZSkK LSAgICAgICAgICAgICAgICBmbGFzaChnZXR0ZXh0KHUnU01UUCBTb2NrZXQgZXJyb3I6IHt9XG4n Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J1lvdXIgcGFzc3dvcmQgaGFzIG5vdCBi ZWVuIGNoYW5nZWQuJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKS5mb3JtYXQoZSks Ci0gICAgICAgICAgICAgICAgICAgICAgJ2RhbmdlcicpCi0gICAgICAgICAgICAgICAgaGFzX2Vy cm9yID0gVHJ1ZQotICAgICAgICAgICAgZXhjZXB0IChTTVRQQ29ubmVjdEVycm9yLCBTTVRQUmVz cG9uc2VFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgIFNNVFBTZXJ2ZXJEaXNjb25uZWN0 ZWQsIFNNVFBEYXRhRXJyb3IsIFNNVFBIZWxvRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgIFNN VFBFeGNlcHRpb24sIFNNVFBBdXRoZW50aWNhdGlvbkVycm9yLCBTTVRQU2VuZGVyUmVmdXNlZCwK LSAgICAgICAgICAgICAgICAgICAgU01UUFJlY2lwaWVudHNSZWZ1c2VkKSBhcyBlOgotCi0gICAg ICAgICAgICAgICAgIyBIYW5kbGUgc210cCBzcGVjaWZpYyBleGNlcHRpb25zLgotICAgICAgICAg ICAgICAgIGxvZ2dpbmcuZXhjZXB0aW9uKHN0cihlKSwgZXhjX2luZm89VHJ1ZSkKLSAgICAgICAg ICAgICAgICBmbGFzaChnZXR0ZXh0KHUnU01UUCBlcnJvcjoge31cbicKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHUnWW91ciBwYXNzd29yZCBoYXMgbm90IGJlZW4gY2hhbmdlZC4nCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLmZvcm1hdChlKSwKLSAgICAgICAgICAgICAg ICAgICAgICAnZGFuZ2VyJykKLSAgICAgICAgICAgICAgICBoYXNfZXJyb3IgPSBUcnVlCi0gICAg ICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAgICAgIyBIYW5kbGUg b3RoZXIgZXhjZXB0aW9ucy4KLSAgICAgICAgICAgICAgICBsb2dnaW5nLmV4Y2VwdGlvbihzdHIo ZSksIGV4Y19pbmZvPVRydWUpCi0gICAgICAgICAgICAgICAgZmxhc2goZ2V0dGV4dCh1J0Vycm9y OiB7fVxuJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSdZb3VyIHBhc3N3b3JkIGhh cyBub3QgYmVlbiBjaGFuZ2VkLicKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkuZm9y bWF0KGUpLAotICAgICAgICAgICAgICAgICAgICAgICdkYW5nZXInKQotICAgICAgICAgICAgICAg IGhhc19lcnJvciA9IFRydWUKLQotICAgICAgICAgICAgaWYgcmVxdWVzdC5qc29uIGlzIE5vbmUg YW5kIG5vdCBoYXNfZXJyb3I6Ci0gICAgICAgICAgICAgICAgZG9fZmxhc2goKmdldF9tZXNzYWdl KCdQQVNTV09SRF9SRVNFVF9SRVFVRVNUJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZW1haWw9Zm9ybS51c2VyLmVtYWlsKSkKLQotICAgICAgICBpZiByZXF1ZXN0Lmpz b24gYW5kIG5vdCBoYXNfZXJyb3I6Ci0gICAgICAgICAgICByZXR1cm4gX3JlbmRlcl9qc29uKGZv cm0sIGluY2x1ZGVfdXNlcj1GYWxzZSkKLQotICAgICAgICByZXR1cm4gX3NlY3VyaXR5LnJlbmRl cl90ZW1wbGF0ZSgKLSAgICAgICAgICAgIGNvbmZpZ192YWx1ZSgnRk9SR09UX1BBU1NXT1JEX1RF TVBMQVRFJyksCi0gICAgICAgICAgICBmb3Jnb3RfcGFzc3dvcmRfZm9ybT1mb3JtLAotICAgICAg ICAgICAgKipfY3R4KCdmb3Jnb3RfcGFzc3dvcmQnKSkKLQotICAgICMgV2UgYXJlIG5vdCBpbiBh cHAgY29udGV4dCBzbyBjYW5ub3QgdXNlCi0gICAgIyB1cmxfZm9yKCdicm93c2VyLmZvcmdvdF9w YXNzd29yZCcpCi0gICAgIyBTbyBoYXJkIGNvZGUgdGhlIHVybCAnL2Jyb3dzZXIvcmVzZXRfcGFz c3dvcmQnIHdoaWxlIHBhc3NpbmcgYXMKLSAgICAjIHBhcmFtZXRlciB0byBzbGFzaF91cmxfc3Vm Zml4IGZ1bmN0aW9uLgotICAgIEBibHVlcHJpbnQucm91dGUoCi0gICAgICAgICcvcmVzZXRfcGFz c3dvcmQnICsgc2xhc2hfdXJsX3N1ZmZpeCgKLSAgICAgICAgICAgICcvYnJvd3Nlci9yZXNldF9w YXNzd29yZCcsICc8dG9rZW4+JwotICAgICAgICApLAotICAgICAgICBtZXRob2RzPVsnR0VUJywg J1BPU1QnXSwKLSAgICAgICAgZW5kcG9pbnQ9J3Jlc2V0X3Bhc3N3b3JkJwotICAgICkKLSAgICBA YW5vbnltb3VzX3VzZXJfcmVxdWlyZWQKLSAgICBkZWYgcmVzZXRfcGFzc3dvcmQodG9rZW4pOgot ICAgICAgICAiIiJWaWV3IGZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBhIHJlc2V0IHBhc3N3b3JkIHJl cXVlc3QuIiIiCi0KLSAgICAgICAgZXhwaXJlZCwgaW52YWxpZCwgdXNlciA9IHJlc2V0X3Bhc3N3 b3JkX3Rva2VuX3N0YXR1cyh0b2tlbikKLQotICAgICAgICBpZiBpbnZhbGlkOgotICAgICAgICAg ICAgZG9fZmxhc2goKmdldF9tZXNzYWdlKCdJTlZBTElEX1JFU0VUX1BBU1NXT1JEX1RPS0VOJykp Ci0gICAgICAgIGlmIGV4cGlyZWQ6Ci0gICAgICAgICAgICBkb19mbGFzaCgqZ2V0X21lc3NhZ2Uo J1BBU1NXT1JEX1JFU0VUX0VYUElSRUQnLCBlbWFpbD11c2VyLmVtYWlsLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHdpdGhpbj1fc2VjdXJpdHkucmVzZXRfcGFzc3dvcmRfd2l0 aGluKSkKLSAgICAgICAgaWYgaW52YWxpZCBvciBleHBpcmVkOgotICAgICAgICAgICAgcmV0dXJu IHJlZGlyZWN0KHVybF9mb3IoJ2Jyb3dzZXIuZm9yZ290X3Bhc3N3b3JkJykpCi0gICAgICAgIGhh c19lcnJvciA9IEZhbHNlCi0gICAgICAgIGZvcm0gPSBfc2VjdXJpdHkucmVzZXRfcGFzc3dvcmRf Zm9ybSgpCi0KLSAgICAgICAgaWYgZm9ybS52YWxpZGF0ZV9vbl9zdWJtaXQoKToKLSAgICAgICAg ICAgIHRyeToKLSAgICAgICAgICAgICAgICB1cGRhdGVfcGFzc3dvcmQodXNlciwgZm9ybS5wYXNz d29yZC5kYXRhKQotICAgICAgICAgICAgZXhjZXB0IFNPQ0tFVEVycm9yRXhjZXB0aW9uIGFzIGU6 Ci0gICAgICAgICAgICAgICAgIyBIYW5kbGUgc29ja2V0IGVycm9ycyB3aGljaCBhcmUgbm90IGNv dmVyZWQgYnkgU01UUEV4Y2VwdGlvbnMuCi0gICAgICAgICAgICAgICAgbG9nZ2luZy5leGNlcHRp b24oc3RyKGUpLCBleGNfaW5mbz1UcnVlKQotICAgICAgICAgICAgICAgIGZsYXNoKGdldHRleHQo dSdTTVRQIFNvY2tldCBlcnJvcjoge31cbicKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHUnWW91ciBwYXNzd29yZCBoYXMgbm90IGJlZW4gY2hhbmdlZC4nCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICApLmZvcm1hdChlKSwKLSAgICAgICAgICAgICAgICAgICAgICAnZGFuZ2Vy JykKLSAgICAgICAgICAgICAgICBoYXNfZXJyb3IgPSBUcnVlCi0gICAgICAgICAgICBleGNlcHQg KFNNVFBDb25uZWN0RXJyb3IsIFNNVFBSZXNwb25zZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAg ICAgICAgU01UUFNlcnZlckRpc2Nvbm5lY3RlZCwgU01UUERhdGFFcnJvciwgU01UUEhlbG9FcnJv ciwKLSAgICAgICAgICAgICAgICAgICAgU01UUEV4Y2VwdGlvbiwgU01UUEF1dGhlbnRpY2F0aW9u RXJyb3IsIFNNVFBTZW5kZXJSZWZ1c2VkLAotICAgICAgICAgICAgICAgICAgICBTTVRQUmVjaXBp ZW50c1JlZnVzZWQpIGFzIGU6Ci0KLSAgICAgICAgICAgICAgICAjIEhhbmRsZSBzbXRwIHNwZWNp ZmljIGV4Y2VwdGlvbnMuCi0gICAgICAgICAgICAgICAgbG9nZ2luZy5leGNlcHRpb24oc3RyKGUp LCBleGNfaW5mbz1UcnVlKQotICAgICAgICAgICAgICAgIGZsYXNoKGdldHRleHQodSdTTVRQIGVy cm9yOiB7fVxuJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSdZb3VyIHBhc3N3b3Jk IGhhcyBub3QgYmVlbiBjaGFuZ2VkLicKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICku Zm9ybWF0KGUpLAotICAgICAgICAgICAgICAgICAgICAgICdkYW5nZXInKQotICAgICAgICAgICAg ICAgIGhhc19lcnJvciA9IFRydWUKLSAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToK LSAgICAgICAgICAgICAgICAjIEhhbmRsZSBvdGhlciBleGNlcHRpb25zLgotICAgICAgICAgICAg ICAgIGxvZ2dpbmcuZXhjZXB0aW9uKHN0cihlKSwgZXhjX2luZm89VHJ1ZSkKLSAgICAgICAgICAg ICAgICBmbGFzaChnZXR0ZXh0KHUnRXJyb3I6IHt9XG4nCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1J1lvdXIgcGFzc3dvcmQgaGFzIG5vdCBiZWVuIGNoYW5nZWQuJwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKS5mb3JtYXQoZSksCi0gICAgICAgICAgICAgICAgICAgICAg J2RhbmdlcicpCi0gICAgICAgICAgICAgICAgaGFzX2Vycm9yID0gVHJ1ZQotCi0gICAgICAgICAg ICBpZiBub3QgaGFzX2Vycm9yOgotICAgICAgICAgICAgICAgIGFmdGVyX3RoaXNfcmVxdWVzdChf Y29tbWl0KQotICAgICAgICAgICAgICAgIGRvX2ZsYXNoKCpnZXRfbWVzc2FnZSgnUEFTU1dPUkRf UkVTRVQnKSkKLSAgICAgICAgICAgICAgICBsb2dpbl91c2VyKHVzZXIpCi0gICAgICAgICAgICAg ICAgcmV0dXJuIHJlZGlyZWN0KGdldF91cmwoX3NlY3VyaXR5LnBvc3RfcmVzZXRfdmlldykgb3IK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X3VybChfc2VjdXJpdHkucG9zdF9s b2dpbl92aWV3KSkKLQotICAgICAgICByZXR1cm4gX3NlY3VyaXR5LnJlbmRlcl90ZW1wbGF0ZSgK LSAgICAgICAgICAgIGNvbmZpZ192YWx1ZSgnUkVTRVRfUEFTU1dPUkRfVEVNUExBVEUnKSwKLSAg ICAgICAgICAgIHJlc2V0X3Bhc3N3b3JkX2Zvcm09Zm9ybSwKLSAgICAgICAgICAgIHJlc2V0X3Bh c3N3b3JkX3Rva2VuPXRva2VuLAotICAgICAgICAgICAgKipfY3R4KCdyZXNldF9wYXNzd29yZCcp KQorICAgIHNlbmRfbWFpbChjb25maWdfdmFsdWUoJ0VNQUlMX1NVQkpFQ1RfUEFTU1dPUkRfUkVT RVQnKSwgdXNlci5lbWFpbCwKKyAgICAgICAgICAgICAgJ3Jlc2V0X2luc3RydWN0aW9ucycsCisg ICAgICAgICAgICAgIHVzZXI9dXNlciwgcmVzZXRfbGluaz1yZXNldF9saW5rKQorCisgICAgcmVz ZXRfcGFzc3dvcmRfaW5zdHJ1Y3Rpb25zX3NlbnQuc2VuZCgKKyAgICAgICAgY3VycmVudF9hcHAu X2dldF9jdXJyZW50X29iamVjdCgpLAorICAgICAgICB1c2VyPXVzZXIsIHRva2VuPXRva2VuKQor CisKK0BibHVlcHJpbnQucm91dGUoIi9yZXNldF9wYXNzd29yZCIsIGVuZHBvaW50PSJmb3Jnb3Rf cGFzc3dvcmQiLAorICAgICAgICAgICAgICAgICBtZXRob2RzPVsnR0VUJywgJ1BPU1QnXSkKK0Bh bm9ueW1vdXNfdXNlcl9yZXF1aXJlZAorZGVmIGZvcmdvdF9wYXNzd29yZCgpOgorICAgICIiIlZp ZXcgZnVuY3Rpb24gdGhhdCBoYW5kbGVzIGEgZm9yZ290dGVuIHBhc3N3b3JkIHJlcXVlc3QuIiIi CisgICAgaGFzX2Vycm9yID0gRmFsc2UKKyAgICBmb3JtX2NsYXNzID0gX3NlY3VyaXR5LmZvcmdv dF9wYXNzd29yZF9mb3JtCisKKyAgICBpZiByZXF1ZXN0Lmpzb246CisgICAgICAgIGZvcm0gPSBm b3JtX2NsYXNzKE11bHRpRGljdChyZXF1ZXN0Lmpzb24pKQorICAgIGVsc2U6CisgICAgICAgIGZv cm0gPSBmb3JtX2NsYXNzKCkKKworICAgIGlmIGZvcm0udmFsaWRhdGVfb25fc3VibWl0KCk6Cisg ICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbmRfcmVzZXRfcGFzc3dvcmRfaW5zdHJ1Y3Rpb25z KGZvcm0udXNlcikKKyAgICAgICAgZXhjZXB0IFNPQ0tFVEVycm9yRXhjZXB0aW9uIGFzIGU6Cisg ICAgICAgICAgICAjIEhhbmRsZSBzb2NrZXQgZXJyb3JzIHdoaWNoIGFyZSBub3QgY292ZXJlZCBi eSBTTVRQRXhjZXB0aW9ucy4KKyAgICAgICAgICAgIGxvZ2dpbmcuZXhjZXB0aW9uKHN0cihlKSwg ZXhjX2luZm89VHJ1ZSkKKyAgICAgICAgICAgIGZsYXNoKGdldHRleHQodSdTTVRQIFNvY2tldCBl cnJvcjoge31cbicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdSdZb3VyIHBhc3N3b3JkIGhh cyBub3QgYmVlbiBjaGFuZ2VkLicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKS5mb3JtYXQo ZSksCisgICAgICAgICAgICAgICAgICAnZGFuZ2VyJykKKyAgICAgICAgICAgIGhhc19lcnJvciA9 IFRydWUKKyAgICAgICAgZXhjZXB0IChTTVRQQ29ubmVjdEVycm9yLCBTTVRQUmVzcG9uc2VFeGNl cHRpb24sCisgICAgICAgICAgICAgICAgU01UUFNlcnZlckRpc2Nvbm5lY3RlZCwgU01UUERhdGFF cnJvciwgU01UUEhlbG9FcnJvciwKKyAgICAgICAgICAgICAgICBTTVRQRXhjZXB0aW9uLCBTTVRQ QXV0aGVudGljYXRpb25FcnJvciwgU01UUFNlbmRlclJlZnVzZWQsCisgICAgICAgICAgICAgICAg U01UUFJlY2lwaWVudHNSZWZ1c2VkKSBhcyBlOgorCisgICAgICAgICAgICAjIEhhbmRsZSBzbXRw IHNwZWNpZmljIGV4Y2VwdGlvbnMuCisgICAgICAgICAgICBsb2dnaW5nLmV4Y2VwdGlvbihzdHIo ZSksIGV4Y19pbmZvPVRydWUpCisgICAgICAgICAgICBmbGFzaChnZXR0ZXh0KHUnU01UUCBlcnJv cjoge31cbicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdSdZb3VyIHBhc3N3b3JkIGhhcyBu b3QgYmVlbiBjaGFuZ2VkLicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKS5mb3JtYXQoZSks CisgICAgICAgICAgICAgICAgICAnZGFuZ2VyJykKKyAgICAgICAgICAgIGhhc19lcnJvciA9IFRy dWUKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgIyBIYW5kbGUg b3RoZXIgZXhjZXB0aW9ucy4KKyAgICAgICAgICAgIGxvZ2dpbmcuZXhjZXB0aW9uKHN0cihlKSwg ZXhjX2luZm89VHJ1ZSkKKyAgICAgICAgICAgIGZsYXNoKGdldHRleHQodSdFcnJvcjoge31cbicK KyAgICAgICAgICAgICAgICAgICAgICAgICAgdSdZb3VyIHBhc3N3b3JkIGhhcyBub3QgYmVlbiBj aGFuZ2VkLicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKS5mb3JtYXQoZSksCisgICAgICAg ICAgICAgICAgICAnZGFuZ2VyJykKKyAgICAgICAgICAgIGhhc19lcnJvciA9IFRydWUKKworICAg ICAgICBpZiByZXF1ZXN0Lmpzb24gaXMgTm9uZSBhbmQgbm90IGhhc19lcnJvcjoKKyAgICAgICAg ICAgIGRvX2ZsYXNoKCpnZXRfbWVzc2FnZSgnUEFTU1dPUkRfUkVTRVRfUkVRVUVTVCcsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW1haWw9Zm9ybS51c2VyLmVtYWlsKSkKKwor ICAgIGlmIHJlcXVlc3QuanNvbiBhbmQgbm90IGhhc19lcnJvcjoKKyAgICAgICAgcmV0dXJuIF9y ZW5kZXJfanNvbihmb3JtLCBpbmNsdWRlX3VzZXI9RmFsc2UpCisKKyAgICByZXR1cm4gX3NlY3Vy aXR5LnJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgY29uZmlnX3ZhbHVlKCdGT1JHT1RfUEFTU1dP UkRfVEVNUExBVEUnKSwKKyAgICAgICAgZm9yZ290X3Bhc3N3b3JkX2Zvcm09Zm9ybSwKKyAgICAg ICAgKipfY3R4KCdmb3Jnb3RfcGFzc3dvcmQnKSkKKworCisjIFdlIGFyZSBub3QgaW4gYXBwIGNv bnRleHQgc28gY2Fubm90IHVzZQorIyB1cmxfZm9yKCdicm93c2VyLmZvcmdvdF9wYXNzd29yZCcp CisjIFNvIGhhcmQgY29kZSB0aGUgdXJsICcvYnJvd3Nlci9yZXNldF9wYXNzd29yZCcgd2hpbGUg cGFzc2luZyBhcworIyBwYXJhbWV0ZXIgdG8gc2xhc2hfdXJsX3N1ZmZpeCBmdW5jdGlvbi4KK0Bi bHVlcHJpbnQucm91dGUoCisgICAgJy9yZXNldF9wYXNzd29yZCcgKyBzbGFzaF91cmxfc3VmZml4 KAorICAgICAgICAnL2Jyb3dzZXIvcmVzZXRfcGFzc3dvcmQnLCAnPHRva2VuPicKKyAgICApLAor ICAgIG1ldGhvZHM9WydHRVQnLCAnUE9TVCddLAorICAgIGVuZHBvaW50PSdyZXNldF9wYXNzd29y ZCcKKykKK0Bhbm9ueW1vdXNfdXNlcl9yZXF1aXJlZAorZGVmIHJlc2V0X3Bhc3N3b3JkKHRva2Vu KToKKyAgICAiIiJWaWV3IGZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBhIHJlc2V0IHBhc3N3b3JkIHJl cXVlc3QuIiIiCisKKyAgICBleHBpcmVkLCBpbnZhbGlkLCB1c2VyID0gcmVzZXRfcGFzc3dvcmRf dG9rZW5fc3RhdHVzKHRva2VuKQorCisgICAgaWYgaW52YWxpZDoKKyAgICAgICAgZG9fZmxhc2go KmdldF9tZXNzYWdlKCdJTlZBTElEX1JFU0VUX1BBU1NXT1JEX1RPS0VOJykpCisgICAgaWYgZXhw aXJlZDoKKyAgICAgICAgZG9fZmxhc2goKmdldF9tZXNzYWdlKCdQQVNTV09SRF9SRVNFVF9FWFBJ UkVEJywgZW1haWw9dXNlci5lbWFpbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp dGhpbj1fc2VjdXJpdHkucmVzZXRfcGFzc3dvcmRfd2l0aGluKSkKKyAgICBpZiBpbnZhbGlkIG9y IGV4cGlyZWQ6CisgICAgICAgIHJldHVybiByZWRpcmVjdCh1cmxfZm9yKCdicm93c2VyLmZvcmdv dF9wYXNzd29yZCcpKQorICAgIGhhc19lcnJvciA9IEZhbHNlCisgICAgZm9ybSA9IF9zZWN1cml0 eS5yZXNldF9wYXNzd29yZF9mb3JtKCkKKworICAgIGlmIGZvcm0udmFsaWRhdGVfb25fc3VibWl0 KCk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHVwZGF0ZV9wYXNzd29yZCh1c2VyLCBmb3Jt LnBhc3N3b3JkLmRhdGEpCisgICAgICAgIGV4Y2VwdCBTT0NLRVRFcnJvckV4Y2VwdGlvbiBhcyBl OgorICAgICAgICAgICAgIyBIYW5kbGUgc29ja2V0IGVycm9ycyB3aGljaCBhcmUgbm90IGNvdmVy ZWQgYnkgU01UUEV4Y2VwdGlvbnMuCisgICAgICAgICAgICBsb2dnaW5nLmV4Y2VwdGlvbihzdHIo ZSksIGV4Y19pbmZvPVRydWUpCisgICAgICAgICAgICBmbGFzaChnZXR0ZXh0KHUnU01UUCBTb2Nr ZXQgZXJyb3I6IHt9XG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgIHUnWW91ciBwYXNzd29y ZCBoYXMgbm90IGJlZW4gY2hhbmdlZC4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICkuZm9y bWF0KGUpLAorICAgICAgICAgICAgICAgICAgJ2RhbmdlcicpCisgICAgICAgICAgICBoYXNfZXJy b3IgPSBUcnVlCisgICAgICAgIGV4Y2VwdCAoU01UUENvbm5lY3RFcnJvciwgU01UUFJlc3BvbnNl RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgIFNNVFBTZXJ2ZXJEaXNjb25uZWN0ZWQsIFNNVFBE YXRhRXJyb3IsIFNNVFBIZWxvRXJyb3IsCisgICAgICAgICAgICAgICAgU01UUEV4Y2VwdGlvbiwg U01UUEF1dGhlbnRpY2F0aW9uRXJyb3IsIFNNVFBTZW5kZXJSZWZ1c2VkLAorICAgICAgICAgICAg ICAgIFNNVFBSZWNpcGllbnRzUmVmdXNlZCkgYXMgZToKKworICAgICAgICAgICAgIyBIYW5kbGUg c210cCBzcGVjaWZpYyBleGNlcHRpb25zLgorICAgICAgICAgICAgbG9nZ2luZy5leGNlcHRpb24o c3RyKGUpLCBleGNfaW5mbz1UcnVlKQorICAgICAgICAgICAgZmxhc2goZ2V0dGV4dCh1J1NNVFAg ZXJyb3I6IHt9XG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgIHUnWW91ciBwYXNzd29yZCBo YXMgbm90IGJlZW4gY2hhbmdlZC4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICkuZm9ybWF0 KGUpLAorICAgICAgICAgICAgICAgICAgJ2RhbmdlcicpCisgICAgICAgICAgICBoYXNfZXJyb3Ig PSBUcnVlCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICMgSGFu ZGxlIG90aGVyIGV4Y2VwdGlvbnMuCisgICAgICAgICAgICBsb2dnaW5nLmV4Y2VwdGlvbihzdHIo ZSksIGV4Y19pbmZvPVRydWUpCisgICAgICAgICAgICBmbGFzaChnZXR0ZXh0KHUnRXJyb3I6IHt9 XG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgIHUnWW91ciBwYXNzd29yZCBoYXMgbm90IGJl ZW4gY2hhbmdlZC4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICkuZm9ybWF0KGUpLAorICAg ICAgICAgICAgICAgICAgJ2RhbmdlcicpCisgICAgICAgICAgICBoYXNfZXJyb3IgPSBUcnVlCisK KyAgICAgICAgaWYgbm90IGhhc19lcnJvcjoKKyAgICAgICAgICAgIGFmdGVyX3RoaXNfcmVxdWVz dChfY29tbWl0KQorICAgICAgICAgICAgZG9fZmxhc2goKmdldF9tZXNzYWdlKCdQQVNTV09SRF9S RVNFVCcpKQorICAgICAgICAgICAgbG9naW5fdXNlcih1c2VyKQorICAgICAgICAgICAgcmV0dXJu IHJlZGlyZWN0KGdldF91cmwoX3NlY3VyaXR5LnBvc3RfcmVzZXRfdmlldykgb3IKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnZXRfdXJsKF9zZWN1cml0eS5wb3N0X2xvZ2luX3ZpZXcpKQor CisgICAgcmV0dXJuIF9zZWN1cml0eS5yZW5kZXJfdGVtcGxhdGUoCisgICAgICAgIGNvbmZpZ192 YWx1ZSgnUkVTRVRfUEFTU1dPUkRfVEVNUExBVEUnKSwKKyAgICAgICAgcmVzZXRfcGFzc3dvcmRf Zm9ybT1mb3JtLAorICAgICAgICByZXNldF9wYXNzd29yZF90b2tlbj10b2tlbiwKKyAgICAgICAg KipfY3R4KCdyZXNldF9wYXNzd29yZCcpKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3Rlc3RzL19faW5pdF9fLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nh c3RzL3Rlc3RzL19faW5pdF9fLnB5CmluZGV4IGI5MDJjNDhiLi41OTAwMjZhZCAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nh c3RzL3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZXN0cy9fX2luaXRfXy5weQpAQCAtNiwxMSAr NiwzIEBACiAjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwg TGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRl IGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotCi0KLWNsYXNzIENhc3RUZXN0R2VuZXJhdG9yKEJh c2VUZXN0R2VuZXJhdG9yKToKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICByZXR1 cm4gW10KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZXN0cy90ZXN0X2Nhc3RfYWRkLnB5IGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3Rlc3RzL3Rlc3Rf Y2FzdF9hZGQucHkKaW5kZXggZGU4Zjk3OTkuLjE1ZmQwMWY0IDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2FzdHMvdGVzdHMv dGVzdF9jYXN0X2FkZC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvY2FzdHMvdGVzdHMvdGVzdF9jYXN0X2FkZC5weQpAQCAtMTEsMjQg KzExLDI0IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAogaW1wb3J0 IGpzb24KIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGlt cG9ydCBcCiAgICAgdXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5y b3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19o ZWxwZXIgaW1wb3J0IENsaWVudFRlc3RCYXNlQ2xhc3MKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQg cGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9y dCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGNhc3RfdXRpbHMK IAogCi1jbGFzcyBDYXN0c0FkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICBza2lw X29uX2RhdGFiYXNlID0gWydncGRiJ10KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0 Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGNhc3Qgbm9kZS4KLSAgICAgICAgKCdDaGVjayBDYXN0IE5v ZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIvY2FzdC9vYmovJykpCi0gICAgXQotCi0gICAgZGVmIHJ1 blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIGNhc3QgdW5k ZXIgdGVzdCBkYXRhYmFzZS4gIiIiCi0gICAgICAgIHN1cGVyKENhc3RzQWRkVGVzdENhc2UsIHNl bGYpLnJ1blRlc3QoKQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsnZ3BkYiddKQorY2xh c3MgVGVzdENhc3RzQWRkKENsaWVudFRlc3RCYXNlQ2xhc3MpOgorICAgIGRlZiB0ZXN0X2NoZWNr X2Nhc3Rfbm9kZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gY3JlYXRpb24gcmVx dWVzdCBpcyBzZW50IHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1 cyAiIiIKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2Nhc3Qvb2JqLycKICAgICAgICAgc2VsZi5z ZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdCiAgICAgICAgIHNl bGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsic2VydmVyX2lkIl0KICAgICAgICAgc2Vs Zi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KQEAgLTQxLDE1ICs0MSwyMiBAQCBj bGFzcyBDYXN0c0FkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKIAogICAgICAgICBzZWxm LmRhdGEgPSBjYXN0X3V0aWxzLmdldF9jYXN0X2RhdGEoKQogICAgICAgICByZXNwb25zZSA9IHNl bGYudGVzdGVyLnBvc3QoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJf R1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVAp ICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoCiAg ICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkgKyAnLycsCiAgICAgICAgICAgICBkYXRhPWpzb24u ZHVtcHMoc2VsZi5kYXRhKSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykK LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAg ICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorCisg ICAgICAgIGpzb25fcmVzcG9uc2UgPSBzZWxmLnJlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisg ICAgICAgIHNlbGYuYXNzZXJ0X25vZGVfanNvbihqc29uX3Jlc3BvbnNlLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJ2Nhc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J3BnYWRtaW4ubm9kZS5jYXN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNl LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ljb24tY2FzdCcsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnbW9uZXktPmJpZ2ludCcpCiAKICAgICBkZWYgdGVhckRvd24o c2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGlzY29ubmVjdCB0aGUgdGVzdCBkYXRh YmFzZSBhbmQgZHJvcCBhZGRlZCBjYXN0LiIiIgogICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMu Z2V0X2RiX2Nvbm5lY3Rpb24oc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3VzZXJuYW1l J10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNl cnZlclsnZGJfcGFzc3dvcmQnXSwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZXN0cy90ZXN0X2Nhc3RfZGVsZXRl LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L2Nhc3RzL3Rlc3RzL3Rlc3RfY2FzdF9kZWxldGUucHkKaW5kZXggYjk1NmZjYmMuLjgyNDg5OWZk IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvY2FzdHMvdGVzdHMvdGVzdF9jYXN0X2RlbGV0ZS5weQorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2FzdHMvdGVzdHMvdGVz dF9jYXN0X2RlbGV0ZS5weQpAQCAtOSwyNCArOSwyMSBAQAogCiBmcm9tIF9fZnV0dXJlX18gaW1w b3J0IHByaW50X2Z1bmN0aW9uCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBz aG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBn YWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4u dXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBDbGllbnRUZXN0QmFzZUNsYXNzCiBmcm9tIHJlZ3Jl c3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVz dF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBh cyBjYXN0X3V0aWxzCiAKIAotY2xhc3MgQ2FzdHNEZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVy YXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBkZWxldGUgdGhlIGNhc3Qgbm9kZSBhZGRl ZCB1bmRlciBkYXRhYmFzZSBub2RlLiAiIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRi J10KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9y IGNhc3Qgbm9kZS4KLSAgICAgICAgKCdDaGVjayBDYXN0IE5vZGUnLCBkaWN0KHVybD0nL2Jyb3dz ZXIvY2FzdC9vYmovJykpCi0gICAgXQotCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBz dXBlcihDYXN0c0RlbGV0ZVRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCitAcHl0ZXN0Lm1hcmsuc2tp cF9kYXRhYmFzZXMoWydncGRiJ10pCitjbGFzcyBUZXN0Q2FzdHNEZWxldGUoQ2xpZW50VGVzdEJh c2VDbGFzcyk6CisgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICBkZWYgc2V0 VXAoc2VsZiwgdGhlX3JlYWxfc2V0dXApOgogICAgICAgICBzZWxmLmRlZmF1bHRfZGIgPSBzZWxm LnNlcnZlclsiZGIiXQogICAgICAgICBzZWxmLmRhdGFiYXNlX2luZm8gPSBwYXJlbnRfbm9kZV9k aWN0WydkYXRhYmFzZSddWy0xXQogICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLmRhdGFiYXNl X2luZm9bJ2RiX25hbWUnXQpAQCAtMzYsOCArMzMsMTMgQEAgY2xhc3MgQ2FzdHNEZWxldGVUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgIHNlbGYuY2FzdF9pZCA9IGNhc3RfdXRp bHMuY3JlYXRlX2Nhc3Qoc2VsZi5zZXJ2ZXIsIHNlbGYuc291cmNlX3R5cGUsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YXJnZXRfdHlwZSkKIAot ICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGRl bGV0ZSBhZGRlZCBjYXN0LiIiIgorICAgIGRlZiB0ZXN0X2Nhc3RfZGVsZXRlKHNlbGYpOgorICAg ICAgICAiIiIKKyAgICAgICAgV2hlbiBhIGNhc3QgZXhpdHMKKyAgICAgICAgIFdoZW4gcmVtb3Zl IHJlcXVlc3QgaXMgc2VudCB0byB0aGUgYmFja2VuZCwKKyAgICAgICAgIEl0IGdldHMgcmVtb3Zl ZCBmcm9tIHRoZSBkYXRhYmFzZQorICAgICAgICAgIEFuZCByZXR1cm4gMjAwIHN0YXR1cyIiIgor ICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvY2FzdC9vYmovJwogICAgICAgICBzZWxmLnNlcnZlcl9p ZCA9IHNlbGYuZGF0YWJhc2VfaW5mb1sic2VydmVyX2lkIl0KICAgICAgICAgc2VsZi5kYl9pZCA9 IHNlbGYuZGF0YWJhc2VfaW5mb1snZGJfaWQnXQogICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91 dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCkBAIC01NywxMSArNTksMTEgQEAgY2xhc3MgQ2Fz dHNEZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgIGlmIGxlbihyZXNw b25zZSkgPT0gMDoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQg Y2FzdC4iKQogICAgICAgICBkZWxldGVfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoCi0g ICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAg ICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKICAgICAgICAg ICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKwogICAgICAg ICAgICAgJy8nICsgc3RyKHNlbGYuY2FzdF9pZCksCiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJl Y3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGRlbGV0ZV9yZXNwb25zZS5zdGF0 dXNfY29kZSwgMjAwKQorICAgICAgICBkZWxldGVfcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91 bGQuYmUuZXF1YWwudG8oMjAwKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgICAi IiJUaGlzIGZ1bmN0aW9uIHdpbGwgZGlzY29ubmVjdCB0ZXN0IGRhdGFiYXNlLiIiIgpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L2Nhc3RzL3Rlc3RzL3Rlc3RfY2FzdF9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2FzdHMvdGVzdHMvdGVzdF9jYXN0X2dldC5weQpp bmRleCBkNjdmNTVhZS4uN2QxNjc4NTUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZXN0cy90ZXN0X2Nhc3RfZ2V0 LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9jYXN0cy90ZXN0cy90ZXN0X2Nhc3RfZ2V0LnB5CkBAIC05LDI1ICs5LDIyIEBACiAKIGZy b20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAoraW1wb3J0IHB5dGVzdAorZnJv bSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgZGF0YWJh c2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0 b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IENsaWVudFRlc3RCYXNl Q2xhc3MKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdy ZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9t IC4gaW1wb3J0IHV0aWxzIGFzIGNhc3RfdXRpbHMKIAogCi1jbGFzcyBDYXN0c0dldFRlc3RDYXNl KEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGZldGNoIHRoZSBj YXN0IG5vZGUgYWRkZWQgdW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCi0gICAgc2tpcF9vbl9kYXRh YmFzZSA9IFsnZ3BkYiddCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRl ZmF1bHQgVVJMIGZvciBjYXN0IG5vZGUuCi0gICAgICAgICgnQ2hlY2sgQ2FzdCBOb2RlJywgZGlj dCh1cmw9Jy9icm93c2VyL2Nhc3Qvb2JqLycpKQotICAgIF0KLQotICAgIGRlZiBzZXRVcChzZWxm KToKK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNzIFRlc3RDYXN0 c0dldChDbGllbnRUZXN0QmFzZUNsYXNzKToKKyAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1U cnVlKQorICAgIGRlZiBzZXRVcChzZWxmLCB0aGVfcmVhbF9zZXR1cCk6CiAgICAgICAgICIiIiBU aGlzIGZ1bmN0aW9uIHdpbGwgY3JlYXRlIGNhc3QuIiIiCi0gICAgICAgIHN1cGVyKENhc3RzR2V0 VGVzdENhc2UsIHNlbGYpLnNldFVwKCkKICAgICAgICAgc2VsZi5kZWZhdWx0X2RiID0gc2VsZi5z ZXJ2ZXJbImRiIl0KICAgICAgICAgc2VsZi5kYXRhYmFzZV9pbmZvID0gcGFyZW50X25vZGVfZGlj dFsnZGF0YWJhc2UnXVstMV0KICAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5kYXRhYmFzZV9p bmZvWydkYl9uYW1lJ10KQEAgLTM3LDggKzM0LDEyIEBAIGNsYXNzIENhc3RzR2V0VGVzdENhc2Uo QmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICBzZWxmLmNhc3RfaWQgPSBjYXN0X3V0aWxzLmNy ZWF0ZV9jYXN0KHNlbGYuc2VydmVyLCBzZWxmLnNvdXJjZV90eXBlLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFyZ2V0X3R5cGUpCiAKLSAgICBk ZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCBh ZGRlZCBjYXN0LiIiIgorICAgIGRlZiB0ZXN0X2dldF9jYXN0X25vZGUoc2VsZik6CisgICAgICAg ICIiIldoZW4gYSBjYXN0IGV4aXRzCisgICAgICAgICBXaGVuIEdFVCByZXF1ZXN0IGlzIHNlbnQg dG8gdGhlIGJhY2tlbmQsCisgICAgICAgICBJdCByZXRyaWV2ZXMgdGhlIGluZm9ybWF0aW9uIGFi b3V0IGl0CisgICAgICAgICAgQW5kIHJldHVybiAyMDAgc3RhdHVzIiIiCisgICAgICAgIHVybCA9 ICcvYnJvd3Nlci9jYXN0L29iai8nCiAgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5kYXRh YmFzZV9pbmZvWyJzZXJ2ZXJfaWQiXQogICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5kYXRhYmFz ZV9pbmZvWydkYl9pZCddCiAgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3Rf ZGF0YWJhc2Uoc2VsZiwKQEAgLTQ4LDExICs0OSwzNCBAQCBjbGFzcyBDYXN0c0dldFRlc3RDYXNl KEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJE YXRhYmFzZSBjb25uZWN0ZWQuIjoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQg bm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5nZXQoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsg Jy8nICsgc3RyKAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAn LycgKyBzdHIoCiAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKICAgICAg ICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArIHN0cihzZWxmLmNhc3RfaWQpLAogICAgICAg ICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs cyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29k ZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBzZWxm LnJlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIChqc29uX3Jlc3BvbnNlIHwgc2hv dWxkLmhhdmUua2V5KCdwcm9uc3BuYW1lJykgPgorICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRv KE5vbmUpKQorICAgICAgICAoanNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnc3JjbnNw bmFtZScpID4KKyAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50bygncGdfY2F0YWxvZycpKQorICAg ICAgICAoanNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgndHJnbnNwbmFtZScpID4KKyAg ICAgICAgIHNob3VsZC5iZS5lcXVhbC50bygncGdfY2F0YWxvZycpKQorICAgICAgICAoanNvbl9y ZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZGVzY3JpcHRpb24nKSA+CisgICAgICAgICBzaG91 bGQuYmUuZXF1YWwudG8oTm9uZSkpCisgICAgICAgIChqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhh dmUua2V5KCdwcm9uYW1lJykgPgorICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKCdiaW5hcnkg Y29tcGF0aWJsZScpKQorICAgICAgICAoanNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgn c3lzY2FzdCcpID4KKyAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50byhGYWxzZSkpCisgICAgICAg IChqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCd0cmd0eXAnKSA+CisgICAgICAgICBz aG91bGQuYmUuZXF1YWwudG8oJ2JpZ2ludCcpKQorICAgICAgICAoanNvbl9yZXNwb25zZSB8IHNo b3VsZC5oYXZlLmtleSgnY2FzdGZ1bmMnKSA+CisgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8o MCkpCisgICAgICAgIChqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdjYXN0Y29udGV4 dCcpID4KKyAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50bygnSU1QTElDSVQnKSkKKyAgICAgICAg KGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3NyY3R5cCcpID4KKyAgICAgICAgIHNo b3VsZC5iZS5lcXVhbC50bygnbW9uZXknKSkKKyAgICAgICAgKGpzb25fcmVzcG9uc2UgfCBzaG91 bGQuaGF2ZS5rZXkoJ25hbWUnKSA+CisgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8oJ21vbmV5 LT5iaWdpbnQnKSkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICAgIiIiVGhpcyBm dW5jdGlvbiBkaXNjb25uZWN0IHRoZSB0ZXN0IGRhdGFiYXNlIGFuZCBkcm9wIGFkZGVkIGNhc3Qu IiIiCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvY2FzdHMvdGVzdHMvdGVzdF9jYXN0X3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZXN0cy90ZXN0X2Nh c3RfcHV0LnB5CmluZGV4IDk5NDg1MDk1Li4wNThjZTgyZiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3Rlc3RzL3Rl c3RfY2FzdF9wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3Rlc3RzL3Rlc3RfY2FzdF9wdXQucHkKQEAgLTExLDI1ICsx MSwyMSBAQCBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGltcG9ydCBq c29uCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBv cnQgXAogICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91 dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVs cGVyIGltcG9ydCBDbGllbnRUZXN0QmFzZUNsYXNzCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBh cmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQg dGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBjYXN0X3V0aWxzCiAK IAotY2xhc3MgQ2FzdHNQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRo aXMgY2xhc3Mgd2lsbCBmZXRjaCB0aGUgY2FzdCBub2RlIGFkZGVkIHVuZGVyIGRhdGFiYXNlIG5v ZGUuICIiIgotICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQotICAgIHNjZW5hcmlvcyA9 IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgY2FzdCBub2RlLgotICAgICAg ICAoJ0NoZWNrIENhc3QgTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci9jYXN0L29iai8nKSkKLSAg ICBdCi0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdp bGwgY3JlYXRlIGNhc3QuIiIiCi0gICAgICAgIHN1cGVyKENhc3RzUHV0VGVzdENhc2UsIHNlbGYp LnNldFVwKCkKK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNzIFRl c3RDYXN0c1B1dChDbGllbnRUZXN0QmFzZUNsYXNzKToKKyAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0 b3VzZT1UcnVlKQorICAgIGRlZiBzZXRVcChzZWxmLCB0aGVfcmVhbF9zZXR1cCk6CiAgICAgICAg IHNlbGYuZGVmYXVsdF9kYiA9IHNlbGYuc2VydmVyWyJkYiJdCiAgICAgICAgIHNlbGYuZGF0YWJh c2VfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFdCiAgICAgICAgIHNlbGYu ZGJfbmFtZSA9IHNlbGYuZGF0YWJhc2VfaW5mb1snZGJfbmFtZSddCkBAIC0zOSw4ICszNSwxMiBA QCBjbGFzcyBDYXN0c1B1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgc2Vs Zi5jYXN0X2lkID0gY2FzdF91dGlscy5jcmVhdGVfY2FzdChzZWxmLnNlcnZlciwgc2VsZi5zb3Vy Y2VfdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnRhcmdldF90eXBlKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBU aGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIGFkZGVkIGNhc3QuIiIiCisgICAgZGVmIHRlc3RfcHV0 KHNlbGYpOgorICAgICAgICAiIiJXaGVuIGEgY2FzdCBleGl0cworICAgICAgICAgV2hlbiB1cGRh dGluZyB0aGUgY2FzdCwKKyAgICAgICAgIEl0IGdldHMgdXBkYXRlcyB0aGUgY2FzdCBpbiB0aGUg ZGF0YWJhc2UKKyAgICAgICAgICBBbmQgcmV0dXJuIDIwMCBzdGF0dXMiIiIKKyAgICAgICAgdXJs ID0gJy9icm93c2VyL2Nhc3Qvb2JqLycKICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLmRh dGFiYXNlX2luZm9bInNlcnZlcl9pZCJdCiAgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLmRhdGFi YXNlX2luZm9bJ2RiX2lkJ10KICAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVj dF9kYXRhYmFzZShzZWxmLApAQCAtNjMsMTMgKzYzLDIxIEBAIGNsYXNzIENhc3RzUHV0VGVzdENh c2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgImlkIjogc2VsZi5jYXN0X2lkCiAg ICAgICAgIH0KICAgICAgICAgcHV0X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KAotICAgICAg ICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAg ICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCiAgICAgICAgICAgICBz dHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKAogICAgICAgICAgICAgICAgIHNlbGYuZGJf aWQpICsKICAgICAgICAgICAgICcvJyArIHN0cihzZWxmLmNhc3RfaWQpLAogICAgICAgICAgICAg ZGF0YT1qc29uLmR1bXBzKGRhdGEpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVl KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwdXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIw MCkKKyAgICAgICAgcHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRv KDIwMCkKKworICAgICAgICBqc29uX3Jlc3BvbnNlID0gc2VsZi5yZXNwb25zZV90b19qc29uKHB1 dF9yZXNwb25zZSkKKyAgICAgICAgc2VsZi5hc3NlcnRfbm9kZV9qc29uKGpzb25fcmVzcG9uc2Us CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2FzdCcsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAncGdhZG1pbi5ub2RlLmNhc3QnLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWNvbi1jYXN0 JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjaGFyYWN0ZXItPmNpZHInKQogCiAg ICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRpc2Nvbm5l Y3QgdGhlIHRlc3QgZGF0YWJhc2UgYW5kIGRyb3AgYWRkZWQgY2FzdC4iIiIKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9ldmVu dF90cmlnZ2Vycy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9ldmVudF90cmlnZ2Vycy90ZXN0cy9fX2luaXRfXy5w eQppbmRleCBlZDQ1NjM0My4uNTkwMDI2YWQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9ldmVudF90cmlnZ2Vycy90ZXN0cy9f X2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvZXZlbnRfdHJpZ2dlcnMvdGVzdHMvX19pbml0X18ucHkKQEAgLTYsMTEgKzYs MyBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExp Y2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBp bXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLQotCi1jbGFzcyBFdmVudFRyaWdnZXJHZW5lcmF0b3JU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAg ICAgICAgcmV0dXJuIFtdCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXZlbnRfdHJpZ2dlcnMvdGVzdHMvZXZlbnRfdHJpZ2dl cl90ZXN0X2Jhc2VfY2xhc3MucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvZXZlbnRfdHJpZ2dlcnMvdGVzdHMvZXZlbnRfdHJpZ2dlcl90ZXN0 X2Jhc2VfY2xhc3MucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLmRiMjk0 OTkxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL2V2ZW50X3RyaWdnZXJzL3Rlc3RzL2V2ZW50X3RyaWdnZXJfdGVz dF9iYXNlX2NsYXNzLnB5CkBAIC0wLDAgKzEsNDggQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisj IHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0g MjAxOCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJl bGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj Citmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBDbGllbnRUZXN0QmFzZUNs YXNzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2Vz LnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBp bXBvcnQgXAorICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscworZnJvbSByZWdyZXNzaW9uLnB5dGhv bl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIHJlZ3Jlc3Npb24g aW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgdHJpZ2dlcl9m dW5jc191dGlscworCisKK2NsYXNzIEV2ZW50VHJpZ2dlclRlc3RCYXNlQ2xhc3MoQ2xpZW50VGVz dEJhc2VDbGFzcyk6CisgICAgZGVmIHNldFVwKHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAg ICAgICBzZWxmLnNjaGVtYV9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9ybWF0 aW9uJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydzZXJ2ZXJf aWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnZGJfaWQnXQorICAg ICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX25hbWUnXQor ICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9pZCddCisg ICAgICAgIHNlbGYuZXh0ZW5zaW9uX25hbWUgPSAicG9zdGdyZXNfZmR3IgorICAgICAgICBzZWxm LmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCisg ICAgICAgIHNlbGYuZGJfdXNlciA9IHNlbGYuc2VydmVyWyJ1c2VybmFtZSJdCisgICAgICAgIHNl cnZlcl92ZXJzaW9uID0gMAorICAgICAgICBzZWxmLmZ1bmN0aW9uX2luZm8gPSB0cmlnZ2VyX2Z1 bmNzX3V0aWxzLmNyZWF0ZV90cmlnZ2VyX2Z1bmN0aW9uKAorICAgICAgICAgICAgc2VsZi5zZXJ2 ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgc2VsZi5mdW5jX25hbWUsCisgICAg ICAgICAgICBzZXJ2ZXJfdmVyc2lvbikKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAg ICAgIyBEaXNjb25uZWN0IGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVudF9k aXNjb25uZWN0X2RhdGFiYXNlKAorICAgICAgICAgICAgc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVy X2lkLCBzZWxmLmRiX2lkKQorCisgICAgZGVmIF9pc19zY2hlbWFfYW5kX2RhdGFiYXNlX2F2YWls YWJsZShzZWxmKToKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRh YmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAg ICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCisgICAgICAgIHNj aGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9u c2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hl bWEuIikKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9ldmVudF90cmlnZ2Vycy90ZXN0cy90ZXN0X2V2ZW50X3RyaWdnZXJfYWRk LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L2V2ZW50X3RyaWdnZXJzL3Rlc3RzL3Rlc3RfZXZlbnRfdHJpZ2dlcl9hZGQucHkKaW5kZXggYTY2 MzkwNzUuLmE3MzIzMDI5IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXZlbnRfdHJpZ2dlcnMvdGVzdHMvdGVzdF9ldmVudF90 cmlnZ2VyX2FkZC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvZXZlbnRfdHJpZ2dlcnMvdGVzdHMvdGVzdF9ldmVudF90cmlnZ2VyX2Fk ZC5weQpAQCAtMTAsNjAgKzEwLDM2IEBACiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAotZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFz LnRlc3RzIGltcG9ydCBcCi0gICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCi1mcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCBcCi0g ICAgdXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgc2Vy dmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9k aWN0CitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKK2Zyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXZlbnRfdHJpZ2dl cnNcCisgICAgLnRlc3RzLmV2ZW50X3RyaWdnZXJfdGVzdF9iYXNlX2NsYXNzIGltcG9ydCBFdmVu dFRyaWdnZXJUZXN0QmFzZUNsYXNzCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVy YXRvciBpbXBvcnQgUG9zdGdyZXNWZXJzaW9uCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRyaWdn ZXJfZnVuY3NfdXRpbHMKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQg dGVzdF91dGlscyBhcyB1dGlscwogCiAKLWNsYXNzIEV2ZW50VHJpZ2dlckFkZFRlc3RDYXNlKEJh c2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCBuZXcgZXZlbnQg dHJpZ2dlciB1bmRlciB0ZXN0IHNjaGVtYS4gIiIiCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAg ICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBldmVudCB0cmlnZ2VyIG5vZGUuCi0gICAgICAg ICgnRmV0Y2ggRXZlbnQgVHJpZ2dlciBOb2RlIFVSTCcsCi0gICAgICAgICBkaWN0KHVybD0nL2Jy b3dzZXIvZXZlbnRfdHJpZ2dlci9vYmovJykpCi0gICAgXQotCi0gICAgZGVmIHNldFVwKHNlbGYp OgotICAgICAgICBzZWxmLnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11b LTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lk J10KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KLSAg ICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfaWQnXQotICAg ICAgICBzZWxmLmV4dGVuc2lvbl9uYW1lID0gInBvc3RncmVzX2ZkdyIKLSAgICAgICAgc2VsZi5k Yl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorQHB5 dGVzdC5tYXJrLnNraXBfaWZfcG9zdGdyZXNfdmVyc2lvbih7J2JlbG93X3ZlcnNpb24nOiBQb3N0 Z3Jlc1ZlcnNpb24udjkzfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IkV2ZW50IHRyaWdnZXJzIGFyZSBub3Qgc3VwcG9ydGVkICIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgImJ5IFBHOS4yICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgImFuZCBQUEFTOS4yIGFuZCBiZWxvdy4iKQorY2xhc3MgVGVzdEV2ZW50VHJp Z2dlckFkZChFdmVudFRyaWdnZXJUZXN0QmFzZUNsYXNzKToKKyAgICBAcHl0ZXN0LmZpeHR1cmUo YXV0b3VzZT1UcnVlKQorICAgIGRlZiBzZXRVcChzZWxmLCB0aGVfcmVhbF9zZXR1cCwgY29udGV4 dF9vZl90ZXN0cyk6CiAgICAgICAgIHNlbGYuZnVuY19uYW1lID0gInRyaWdnZXJfZnVuY18lcyIg JSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCi0gICAgICAgIHNlbGYuZGJfdXNlciA9IHNlbGYuc2Vy dmVyWyJ1c2VybmFtZSJdCi0gICAgICAgIHNlcnZlcl9jb24gPSBzZXJ2ZXJfdXRpbHMuY29ubmVj dF9zZXJ2ZXIoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQpCi0gICAgICAgIGlmIG5vdCBzZXJ2ZXJfY29u WyJpbmZvIl0gPT0gIlNlcnZlciBjb25uZWN0ZWQuIjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gc2VydmVyIHRvIGFkZCByZXNvdXJjZSAiCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgImdyb3Vwcy4iKQotICAgICAgICBzZXJ2ZXJfdmVyc2lv biA9IDAKLSAgICAgICAgaWYgInR5cGUiIGluIHNlcnZlcl9jb25bImRhdGEiXToKLSAgICAgICAg ICAgIGlmIHNlcnZlcl9jb25bImRhdGEiXVsidmVyc2lvbiJdIDwgOTAzMDA6Ci0gICAgICAgICAg ICAgICAgbWVzc2FnZSA9ICJFdmVudCB0cmlnZ2VycyBhcmUgbm90IHN1cHBvcnRlZCBieSBQRzku MiAiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgImFuZCBQUEFTOS4yIGFuZCBiZWxvdy4i Ci0gICAgICAgICAgICAgICAgc2VsZi5za2lwVGVzdChtZXNzYWdlKQotICAgICAgICBzZWxmLmZ1 bmN0aW9uX2luZm8gPSB0cmlnZ2VyX2Z1bmNzX3V0aWxzLmNyZWF0ZV90cmlnZ2VyX2Z1bmN0aW9u KAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFt ZSwgc2VsZi5mdW5jX25hbWUsCi0gICAgICAgICAgICBzZXJ2ZXJfdmVyc2lvbikKKyAgICAgICAg c3VwZXIoVGVzdEV2ZW50VHJpZ2dlckFkZCwgc2VsZikuc2V0VXAoY29udGV4dF9vZl90ZXN0cykK KworICAgIGRlZiB0ZXN0X2FkZF90cmlnZ2VyKHNlbGYpOgorICAgICAgICAiIiIgV2hlbiBhIHRy aWdnZXIgZnVuY3Rpb24gZXhpc3RzCisgICAgICAgICBXaGVuIHNjaGVtYSBleGlzdAorICAgICAg ICAgV2hlbiBiYWNrZW5kIHJlY2VpdmVzIGEgdmFsaWQgcmVxdWVzdCB0byBjcmVhdGUgYSBuZXcg dHJpZ2dlcgorICAgICAgICAgSXQgY3JlYXRlcyB0aGUgdHJpZ2dlcgorICAgICAgICAgQW5kIHJl dHVybnMgc3VjY2VzcyAyMDAiIiIKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2V2ZW50X3RyaWdn ZXIvb2JqLycKKworICAgICAgICBzZWxmLl9pc19zY2hlbWFfYW5kX2RhdGFiYXNlX2F2YWlsYWJs ZSgpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24g d2lsbCBhZGQgZXZlbnQgdHJpZ2dlciB1bmRlciB0ZXN0IGRhdGFiYXNlLiAiIiIKLSAgICAgICAg ZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJW RVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2Rh dGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5v dCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCi0gICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVt YV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1h X25hbWUpCi0gICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEuIikKICAgICAgICAgZnVuY19u YW1lID0gc2VsZi5mdW5jdGlvbl9pbmZvWzFdCiAgICAgICAgIGZ1bmNfcmVzcG9uc2UgPSB0cmln Z2VyX2Z1bmNzX3V0aWxzLnZlcmlmeV90cmlnZ2VyX2Z1bmN0aW9uKAogICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXIsCkBAIC03OSwxMyArNTUsMTkgQEAgY2xhc3MgRXZlbnRUcmlnZ2VyQWRkVGVzdENh c2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgIm5hbWUiOiAiZXZlbnRfdHJpZ2dl cl9hZGRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pLAogICAgICAgICAgICAgInByb3Zp ZGVycyI6IFtdCiAgICAgICAgIH0KKwogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBv c3QoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8n ICsKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKICAg ICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKwog ICAgICAgICAgICAgJy8nLCBkYXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBjb250 ZW50X3R5cGU9J2h0bWwvanNvbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0QWxtb3N0RXF1YWxzKHJl c3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAg ICAgICMgRGlzY29ubmVjdCBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25u ZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBy ZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpz b25fcmVzcG9uc2UgPSBzZWxmLnJlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisKKyAgICAgICAg c2VsZi5hc3NlcnRfbm9kZV9qc29uKGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnZXZlbnRfdHJpZ2dlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAncGdhZG1pbi5ub2RlLmV2ZW50X3RyaWdnZXInLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWNvbi1ldmVudF90 cmlnZ2VyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbJ25hbWUnXSkKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9ldmVudF90cmlnZ2Vycy90ZXN0cy90ZXN0X2V2ZW50X3RyaWdnZXJfZGVsZXRlLnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V2ZW50 X3RyaWdnZXJzL3Rlc3RzL3Rlc3RfZXZlbnRfdHJpZ2dlcl9kZWxldGUucHkKaW5kZXggYzBiOTI5 MTMuLjA1ZGVmMzc4IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvZXZlbnRfdHJpZ2dlcnMvdGVzdHMvdGVzdF9ldmVudF90cmln Z2VyX2RlbGV0ZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvZXZlbnRfdHJpZ2dlcnMvdGVzdHMvdGVzdF9ldmVudF90cmlnZ2VyX2Rl bGV0ZS5weQpAQCAtOSw2NiArOSw0MyBAQAogCiBpbXBvcnQgdXVpZAogCi1mcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1w b3J0IFwKLSAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IFwKLSAgICB1dGlscyBh cyBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMg YXMgc2VydmVyX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2ltcG9y dCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKworZnJvbSBwZ2FkbWluLmJyb3dz ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5ldmVudF90cmlnZ2Vyc1wKKyAgICAu dGVzdHMuZXZlbnRfdHJpZ2dlcl90ZXN0X2Jhc2VfY2xhc3MgaW1wb3J0IEV2ZW50VHJpZ2dlclRl c3RCYXNlQ2xhc3MKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9y dCBQb3N0Z3Jlc1ZlcnNpb24KIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgdHJpZ2dlcl9mdW5jc191 dGlscwogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxz IGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGV2ZW50X3RyaWdnZXJfdXRpbHMKIAog Ci1jbGFzcyBFdmVudFRyaWdnZXJEZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0g ICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBkZWxldGUgYWRkZWQgZXZlbnQgdHJpZ2dlciB1bmRlciB0 ZXN0IGRhdGFiYXNlLiAiIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcg ZGVmYXVsdCBVUkwgZm9yIGV2ZW50IHRyaWdnZXIgIG5vZGUuCi0gICAgICAgICgnRmV0Y2ggRXZl bnQgVHJpZ2dlciBOb2RlIFVSTCcsCi0gICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvZXZlbnRf dHJpZ2dlci9vYmovJykpCi0gICAgXQotCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBz ZWxmLnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCi0gICAgICAg IHNlbGYuc2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KLSAgICAgICAg c2VsZi5kYl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAgICAgICAgc2VsZi5zY2hl bWFfbmFtZSA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KLSAgICAgICAgc2VsZi5z Y2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfaWQnXQotICAgICAgICBzZWxmLmV4 dGVuc2lvbl9uYW1lID0gInBvc3RncmVzX2ZkdyIKLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFy ZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzZWxmLmRi X3VzZXIgPSBzZWxmLnNlcnZlclsidXNlcm5hbWUiXQorQHB5dGVzdC5tYXJrLnNraXBfaWZfcG9z dGdyZXNfdmVyc2lvbih7J2JlbG93X3ZlcnNpb24nOiBQb3N0Z3Jlc1ZlcnNpb24udjkzfSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV2ZW50IHRyaWdnZXJzIGFyZSBu b3Qgc3VwcG9ydGVkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ5 IFBHOS4yICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFuZCBQUEFT OS4yIGFuZCBiZWxvdy4iKQorY2xhc3MgVGVzdEV2ZW50VHJpZ2dlckRlbGV0ZShFdmVudFRyaWdn ZXJUZXN0QmFzZUNsYXNzKToKKyAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQorICAg IGRlZiBzZXRVcChzZWxmLCB0aGVfcmVhbF9zZXR1cCwgY29udGV4dF9vZl90ZXN0cyk6CiAgICAg ICAgIHNlbGYuZnVuY19uYW1lID0gInRyaWdnZXJfZnVuY18lcyIgJSBzdHIodXVpZC51dWlkNCgp KVsxOjhdCisgICAgICAgIHN1cGVyKFRlc3RFdmVudFRyaWdnZXJEZWxldGUsIHNlbGYpLnNldFVw KGNvbnRleHRfb2ZfdGVzdHMpCisKICAgICAgICAgc2VsZi50cmlnZ2VyX25hbWUgPSAiZXZlbnRf dHJpZ2dlcl9kZWxldGVfJXMiICUgKAogICAgICAgICAgICAgc3RyKHV1aWQudXVpZDQoKSlbMTo4 XSkKLSAgICAgICAgc2VydmVyX2NvbiA9IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihzZWxm LCBzZWxmLnNlcnZlcl9pZCkKLSAgICAgICAgaWYgbm90IHNlcnZlcl9jb25bImluZm8iXSA9PSAi U2VydmVyIGNvbm5lY3RlZC4iOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgY29ubmVjdCB0byBzZXJ2ZXIgdG8gYWRkIHJlc291cmNlICIKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiZ3JvdXBzLiIpCi0gICAgICAgIHNlcnZlcl92ZXJzaW9uID0gMAotICAgICAg ICBpZiAidHlwZSIgaW4gc2VydmVyX2NvblsiZGF0YSJdOgotICAgICAgICAgICAgaWYgc2VydmVy X2NvblsiZGF0YSJdWyJ2ZXJzaW9uIl0gPCA5MDMwMDoKLSAgICAgICAgICAgICAgICBtZXNzYWdl ID0gIkV2ZW50IHRyaWdnZXJzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IFBHOS4yICIgXAotICAgICAg ICAgICAgICAgICAgICAgICAgICAiYW5kIFBQQVM5LjIgYW5kIGJlbG93LiIKLSAgICAgICAgICAg ICAgICBzZWxmLnNraXBUZXN0KG1lc3NhZ2UpCi0gICAgICAgIHNlbGYuZnVuY3Rpb25faW5mbyA9 IHRyaWdnZXJfZnVuY3NfdXRpbHMuY3JlYXRlX3RyaWdnZXJfZnVuY3Rpb24oCi0gICAgICAgICAg ICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBzZWxmLmZ1bmNf bmFtZSwKLSAgICAgICAgICAgIHNlcnZlcl92ZXJzaW9uKQogICAgICAgICBzZWxmLmV2ZW50X3Ry aWdnZXJfaWQgPSBldmVudF90cmlnZ2VyX3V0aWxzLmNyZWF0ZV9ldmVudF90cmlnZ2VyKAogICAg ICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgc2Vs Zi5mdW5jX25hbWUsCiAgICAgICAgICAgICBzZWxmLnRyaWdnZXJfbmFtZSkKIAotICAgIGRlZiBy dW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBldmVu dCB0cmlnZ2VyIHVuZGVyIHRlc3QgZGF0YWJhc2UuICIiIgotICAgICAgICBkYl9jb24gPSBkYXRh YmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZl cl9pZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0 ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8g ZGF0YWJhc2UuIikKLSAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlm eV9zY2hlbWFzKHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKLSAgICAg ICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQorICAgIGRlZiB0ZXN0X2RlbGV0ZShzZWxmKToK KyAgICAgICAgIiIiIFdoZW4gYSB0cmlnZ2VyIGV4aXN0cworICAgICAgICAgV2hlbiBzY2hlbWEg ZXhpc3QKKyAgICAgICAgIFdoZW4gYmFja2VuZCByZWNlaXZlcyBhIHJlcXVlc3QgdG8gcmVtb3Zl IGEgdHJpZ2dlcgorICAgICAgICAgSXQgcmVtb3ZlcyB0aGUgdHJpZ2dlcgorICAgICAgICAgQW5k IHJldHVybnMgc3VjY2VzcyAyMDAiIiIKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2V2ZW50X3Ry aWdnZXIvb2JqLycKKworICAgICAgICBzZWxmLl9pc19zY2hlbWFfYW5kX2RhdGFiYXNlX2F2YWls YWJsZSgpCisKICAgICAgICAgZnVuY19uYW1lID0gc2VsZi5mdW5jdGlvbl9pbmZvWzFdCiAgICAg ICAgIGZ1bmNfcmVzcG9uc2UgPSB0cmlnZ2VyX2Z1bmNzX3V0aWxzLnZlcmlmeV90cmlnZ2VyX2Z1 bmN0aW9uKAogICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsCkBAIC04MSwxNCArNTgsMTkgQEAgY2xh c3MgRXZlbnRUcmlnZ2VyRGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAg ICAgICAgc2VsZi50cmlnZ2VyX25hbWUpCiAgICAgICAgIGlmIG5vdCB0cmlnZ2VyX3Jlc3BvbnNl OgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCBldmVudCB0cmln Z2VyLiIpCisKICAgICAgICAgZGVsX3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKAotICAg ICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAg ICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCiAgICAgICAgICAg ICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLmRiX2lk KSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5ldmVudF90cmlnZ2VyX2lkKSwKICAgICAg ICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo ZGVsX3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBkZWYgdGVhckRvd24oc2VsZik6 Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRp bHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkK KyAgICAgICAgZGVsX3Jlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIw MCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IHNlbGYucmVzcG9uc2VfdG9fanNvbihkZWxfcmVz cG9uc2UpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2luZm8nKSA+ IHNob3VsZC5iZS5lcXVhbC50bygKKyAgICAgICAgICAgICdFdmVudCB0cmlnZ2VyIGRyb3BwZWQn KQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdlcnJvcm1zZycpID4g c2hvdWxkLmJlLmVtcHR5CisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXko J2RhdGEnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdyZXN1bHQn KSA+IHNob3VsZC5iZS5ub25lCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5r ZXkoJ3N1Y2Nlc3MnKSA+IHNob3VsZC5iZS5lcXVhbC50bygxKQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V2ZW50X3RyaWdn ZXJzL3Rlc3RzL3Rlc3RfZXZlbnRfdHJpZ2dlcl9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXZlbnRfdHJpZ2dlcnMvdGVzdHMvdGVz dF9ldmVudF90cmlnZ2VyX2dldC5weQppbmRleCBjMjYzYTZiMC4uNmViMWYxNGUgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9l dmVudF90cmlnZ2Vycy90ZXN0cy90ZXN0X2V2ZW50X3RyaWdnZXJfZ2V0LnB5CisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9ldmVudF90cmln Z2Vycy90ZXN0cy90ZXN0X2V2ZW50X3RyaWdnZXJfZ2V0LnB5CkBAIC05LDY2ICs5LDQyIEBACiAK IGltcG9ydCB1dWlkCiAKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy cy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAotICAgIHV0aWxzIGFzIHNjaGVtYV91 dGlscwotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy50ZXN0cyBpbXBvcnQgXAotICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRt aW4udXRpbHMgaW1wb3J0IHNlcnZlcl91dGlscyBhcyBzZXJ2ZXJfdXRpbHMKLWZyb20gcGdhZG1p bi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBp bXBvcnQgcGFyZW50X25vZGVfZGljdAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0 IHNob3VsZAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0 YWJhc2VzLmV2ZW50X3RyaWdnZXJzIFwKKyAgICAudGVzdHMuZXZlbnRfdHJpZ2dlcl90ZXN0X2Jh c2VfY2xhc3MgaW1wb3J0IEV2ZW50VHJpZ2dlclRlc3RCYXNlQ2xhc3MKK2Zyb20gcGdhZG1pbi51 dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBQb3N0Z3Jlc1ZlcnNpb24KIGZyb20gcmVn cmVzc2lvbiBpbXBvcnQgdHJpZ2dlcl9mdW5jc191dGlscwogZnJvbSByZWdyZXNzaW9uLnB5dGhv bl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0 aWxzIGFzIGV2ZW50X3RyaWdnZXJfdXRpbHMKIAogCi1jbGFzcyBFdmVudFRyaWdnZXJHZXRUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBmZXRjaCBh ZGRlZCBldmVudCB0cmlnZ2VyIHVuZGVyIHRlc3QgZGF0YWJhc2UuICIiIgotICAgIHNjZW5hcmlv cyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZXZlbnQgdHJpZ2dlciAg bm9kZS4KLSAgICAgICAgKCdGZXRjaCBFdmVudCBUcmlnZ2VyIE5vZGUgVVJMJywKLSAgICAgICAg IGRpY3QodXJsPScvYnJvd3Nlci9ldmVudF90cmlnZ2VyL29iai8nKSkKLSAgICBdCi0KLSAgICBk ZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuc2NoZW1hX2RhdGEgPSBwYXJlbnRfbm9kZV9k aWN0WydzY2hlbWEnXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9k YXRhWydzZXJ2ZXJfaWQnXQotICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsn ZGJfaWQnXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfZGF0YVsnc2No ZW1hX25hbWUnXQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3Nj aGVtYV9pZCddCi0gICAgICAgIHNlbGYuZXh0ZW5zaW9uX25hbWUgPSAicG9zdGdyZXNfZmR3Igot ICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsi ZGJfbmFtZSJdCi0gICAgICAgIHNlbGYuZGJfdXNlciA9IHNlbGYuc2VydmVyWyJ1c2VybmFtZSJd CitAcHl0ZXN0Lm1hcmsuc2tpcF9pZl9wb3N0Z3Jlc192ZXJzaW9uKHsnYmVsb3dfdmVyc2lvbic6 IFBvc3RncmVzVmVyc2lvbi52OTN9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiRXZlbnQgdHJpZ2dlcnMgYXJlIG5vdCBzdXBwb3J0ZWQgIgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiYnkgUEc5LjIgIgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiYW5kIFBQQVM5LjIgYW5kIGJlbG93LiIpCitjbGFzcyBUZXN0RXZl bnRUcmlnZ2VyR2V0KEV2ZW50VHJpZ2dlclRlc3RCYXNlQ2xhc3MpOgorICAgIEBweXRlc3QuZml4 dHVyZShhdXRvdXNlPVRydWUpCisgICAgZGVmIHNldFVwKHNlbGYsIHRoZV9yZWFsX3NldHVwLCBj b250ZXh0X29mX3Rlc3RzKToKICAgICAgICAgc2VsZi5mdW5jX25hbWUgPSAidHJpZ2dlcl9mdW5j XyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KLSAgICAgICAgc2VsZi50cmlnZ2VyX25hbWUg PSAiZXZlbnRfdHJpZ2dlcl9nZXRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAg ICAgIHNlcnZlcl9jb24gPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2VsZi5z ZXJ2ZXJfaWQpCi0gICAgICAgIGlmIG5vdCBzZXJ2ZXJfY29uWyJpbmZvIl0gPT0gIlNlcnZlciBj b25uZWN0ZWQuIjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5l Y3QgdG8gc2VydmVyIHRvIGFkZCByZXNvdXJjZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgImdyb3Vwcy4iKQotICAgICAgICBzZXJ2ZXJfdmVyc2lvbiA9IDAKLSAgICAgICAgaWYgInR5 cGUiIGluIHNlcnZlcl9jb25bImRhdGEiXToKLSAgICAgICAgICAgIGlmIHNlcnZlcl9jb25bImRh dGEiXVsidmVyc2lvbiJdIDwgOTAzMDA6Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJFdmVu dCB0cmlnZ2VycyBhcmUgbm90IHN1cHBvcnRlZCBieSBQRzkuMiAiIFwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgImFuZCBQUEFTOS4yIGFuZCBiZWxvdy4iCi0gICAgICAgICAgICAgICAgc2Vs Zi5za2lwVGVzdChtZXNzYWdlKQotICAgICAgICBzZWxmLmZ1bmN0aW9uX2luZm8gPSB0cmlnZ2Vy X2Z1bmNzX3V0aWxzLmNyZWF0ZV90cmlnZ2VyX2Z1bmN0aW9uKAotICAgICAgICAgICAgc2VsZi5z ZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgc2VsZi5mdW5jX25hbWUsCi0g ICAgICAgICAgICBzZXJ2ZXJfdmVyc2lvbikKKyAgICAgICAgc3VwZXIoVGVzdEV2ZW50VHJpZ2dl ckdldCwgc2VsZikuc2V0VXAoY29udGV4dF9vZl90ZXN0cykKKworICAgICAgICBzZWxmLnRyaWdn ZXJfbmFtZSA9ICJldmVudF90cmlnZ2VyX2dldF8lcyIgJSAoCisgICAgICAgICAgICBzdHIodXVp ZC51dWlkNCgpKVsxOjhdKQogICAgICAgICBzZWxmLmV2ZW50X3RyaWdnZXJfaWQgPSBldmVudF90 cmlnZ2VyX3V0aWxzLmNyZWF0ZV9ldmVudF90cmlnZ2VyKAogICAgICAgICAgICAgc2VsZi5zZXJ2 ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgc2VsZi5mdW5jX25hbWUsCiAgICAg ICAgICAgICBzZWxmLnRyaWdnZXJfbmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAg ICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIGFkZGVkIGV2ZW50IHRyaWdnZXIgdW5k ZXIgdGVzdCBkYXRhYmFzZS4KLSAgICAgICAgIiIiCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNl X3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lk LCBzZWxmLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJd OgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRh YmFzZS4iKQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3Nj aGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQotICAgICAgICBp ZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3Vs ZCBub3QgZmluZCB0aGUgc2NoZW1hLiIpCisgICAgZGVmIHRlc3RfZ2V0KHNlbGYpOgorICAgICAg ICAiIiIgV2hlbiBhIHRyaWdnZXIgZXhpc3RzCisgICAgICAgICBXaGVuIHNjaGVtYSBleGlzdAor ICAgICAgICAgV2hlbiBiYWNrZW5kIHJlY2VpdmVzIGEgcmVxdWVzdCB0byByZXRyaWV2ZSBhIHRy aWdnZXIgaW5mb3JtYXRpb24KKyAgICAgICAgIEl0IHJldHVybnMgdHJpZ2dlciBpbmZvcm1hdGlv biIiIgorICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvZXZlbnRfdHJpZ2dlci9vYmovJworCisgICAg ICAgIHNlbGYuX2lzX3NjaGVtYV9hbmRfZGF0YWJhc2VfYXZhaWxhYmxlKCkKKwogICAgICAgICBm dW5jX25hbWUgPSBzZWxmLmZ1bmN0aW9uX2luZm9bMV0KICAgICAgICAgZnVuY19yZXNwb25zZSA9 IHRyaWdnZXJfZnVuY3NfdXRpbHMudmVyaWZ5X3RyaWdnZXJfZnVuY3Rpb24oCiAgICAgICAgICAg ICBzZWxmLnNlcnZlciwKQEAgLTc2LDE0ICs1MiwzOCBAQCBjbGFzcyBFdmVudFRyaWdnZXJHZXRU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICBmdW5jX25hbWUpCiAgICAg ICAgIGlmIG5vdCBmdW5jX3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgZmluZCB0aGUgdHJpZ2dlciBmdW5jdGlvbi4iKQorCiAgICAgICAgIHJlc3BvbnNl ID0gc2VsZi50ZXN0ZXIuZ2V0KAotICAgICAgICAgICAgc2VsZi51cmwgKworICAgICAgICAgICAg dXJsICsKICAgICAgICAgICAgIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsgc3RyKHNl bGYuc2VydmVyX2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycg KyBzdHIoc2VsZi5ldmVudF90cmlnZ2VyX2lkKSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0n aHRtbC9qc29uJwogICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNl LnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICMg RGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVj dF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgcmVz cG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29u X3Jlc3BvbnNlID0gc2VsZi5yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorCisgICAgICAgIGpz b25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3NjaGVtYW9pZCcpCisgICAgICAgIGpzb25f cmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2V2ZW50ZnVubmFtZScpCisgICAgICAgIGpzb25f cmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ29pZCcpCisgICAgICAgIGpzb25fcmVzcG9uc2Ug fCBzaG91bGQuaGF2ZS5rZXkoJ2V2ZW50ZnVuY29pZCcpCisgICAgICAgIGpzb25fcmVzcG9uc2Ug fCBzaG91bGQuaGF2ZS5rZXkoJ3htaW4nKQorCisgICAgICAgIChqc29uX3Jlc3BvbnNlIHwgc2hv dWxkLmhhdmUua2V5KCdjb21tZW50JykgPgorICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKE5v bmUpKQorICAgICAgICAoanNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnbmFtZScpID4K KyAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50byhzZWxmLnRyaWdnZXJfbmFtZSkpCisgICAgICAg IChqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdsYW5ndWFnZScpID4KKyAgICAgICAg IHNob3VsZC5iZS5lcXVhbC50bygncGxwZ3NxbCcpKQorICAgICAgICAoanNvbl9yZXNwb25zZSB8 IHNob3VsZC5oYXZlLmtleSgnd2hlbicpID4KKyAgICAgICAgIHNob3VsZC5iZS5lbXB0eSkKKyAg ICAgICAgKGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2VuYWJsZWQnKSA+CisgICAg ICAgICBzaG91bGQuYmUuZXF1YWwudG8oJ08nKSkKKyAgICAgICAgKGpzb25fcmVzcG9uc2UgfCBz aG91bGQuaGF2ZS5rZXkoJ2V2ZW50b3duZXInKSA+CisgICAgICAgICBzaG91bGQuYmUuZXF1YWwu dG8oc2VsZi5kYl91c2VyKSkKKyAgICAgICAgKGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5r ZXkoJ2V2ZW50bmFtZScpID4KKyAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50bygnRERMX0NPTU1B TkRfRU5EJykpCisgICAgICAgIChqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdzb3Vy Y2UnKSA+CisgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8oJyBCRUdJTiBOVUxMOyBFTkQ7ICcp KQorICAgICAgICAoanNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnc2VjbGFiZWxzJykg PgorICAgICAgICAgc2hvdWxkLmJlLmVtcHR5KQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V2ZW50X3RyaWdnZXJzL3Rlc3Rz L3Rlc3RfZXZlbnRfdHJpZ2dlcl9wdXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXZlbnRfdHJpZ2dlcnMvdGVzdHMvdGVzdF9ldmVudF90 cmlnZ2VyX3B1dC5weQppbmRleCAzMmZiZmI4Yy4uMWZjNGNmOGYgMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9ldmVudF90cmln Z2Vycy90ZXN0cy90ZXN0X2V2ZW50X3RyaWdnZXJfcHV0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9ldmVudF90cmlnZ2Vycy90ZXN0 cy90ZXN0X2V2ZW50X3RyaWdnZXJfcHV0LnB5CkBAIC0xMCw2NSArMTAsNDIgQEAKIGltcG9ydCBq c29uCiBpbXBvcnQgdXVpZAogCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl cnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKLSAgICB1dGlscyBhcyBzY2hl bWFfdXRpbHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMudGVzdHMgaW1wb3J0IFwKLSAgICB1dGlscyBhcyBkYXRhYmFzZV91dGlscwotZnJvbSBw Z2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVyX3V0aWxzCi1mcm9tIHBn YWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Np b24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGlt cG9ydCBzaG91bGQKKworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy5ldmVudF90cmlnZ2Vyc1wKKyAgICAudGVzdHMuZXZlbnRfdHJpZ2dlcl90ZXN0 X2Jhc2VfY2xhc3MgaW1wb3J0IEV2ZW50VHJpZ2dlclRlc3RCYXNlQ2xhc3MKK2Zyb20gcGdhZG1p bi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBQb3N0Z3Jlc1ZlcnNpb24KIGZyb20g cmVncmVzc2lvbiBpbXBvcnQgdHJpZ2dlcl9mdW5jc191dGlscwogZnJvbSByZWdyZXNzaW9uLnB5 dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0 IHV0aWxzIGFzIGV2ZW50X3RyaWdnZXJfdXRpbHMKIAogCi1jbGFzcyBFdmVudFRyaWdnZXJQdXRU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBmZXRj aCBhZGRlZCBldmVudCB0cmlnZ2VyIHVuZGVyIHRlc3QgZGF0YWJhc2UuICIiIgotICAgIHNjZW5h cmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZXZlbnQgdHJpZ2dl ciAgbm9kZS4KLSAgICAgICAgKCdGZXRjaCBFdmVudCBUcmlnZ2VyIE5vZGUgVVJMJywKLSAgICAg ICAgIGRpY3QodXJsPScvYnJvd3Nlci9ldmVudF90cmlnZ2VyL29iai8nKSkKLSAgICBdCi0KLSAg ICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuc2NoZW1hX2RhdGEgPSBwYXJlbnRfbm9k ZV9kaWN0WydzY2hlbWEnXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVt YV9kYXRhWydzZXJ2ZXJfaWQnXQotICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0 YVsnZGJfaWQnXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfZGF0YVsn c2NoZW1hX25hbWUnXQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2RhdGFb J3NjaGVtYV9pZCddCi0gICAgICAgIHNlbGYuZXh0ZW5zaW9uX25hbWUgPSAicG9zdGdyZXNfZmR3 IgotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0x XVsiZGJfbmFtZSJdCi0gICAgICAgIHNlbGYuZGJfdXNlciA9IHNlbGYuc2VydmVyWyJ1c2VybmFt ZSJdCitAcHl0ZXN0Lm1hcmsuc2tpcF9pZl9wb3N0Z3Jlc192ZXJzaW9uKHsnYmVsb3dfdmVyc2lv bic6IFBvc3RncmVzVmVyc2lvbi52OTN9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiRXZlbnQgdHJpZ2dlcnMgYXJlIG5vdCBzdXBwb3J0ZWQgIgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiYnkgUEc5LjIgIgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiYW5kIFBQQVM5LjIgYW5kIGJlbG93LiIpCitjbGFzcyBUZXN0 RXZlbnRUcmlnZ2VyUHV0KEV2ZW50VHJpZ2dlclRlc3RCYXNlQ2xhc3MpOgorICAgIEBweXRlc3Qu Zml4dHVyZShhdXRvdXNlPVRydWUpCisgICAgZGVmIHNldFVwKHNlbGYsIHRoZV9yZWFsX3NldHVw LCBjb250ZXh0X29mX3Rlc3RzKToKICAgICAgICAgc2VsZi5mdW5jX25hbWUgPSAidHJpZ2dlcl9m dW5jXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgc3VwZXIoVGVzdEV2ZW50 VHJpZ2dlclB1dCwgc2VsZikuc2V0VXAoY29udGV4dF9vZl90ZXN0cykKKwogICAgICAgICBzZWxm LnRyaWdnZXJfbmFtZSA9ICJldmVudF90cmlnZ2VyX3B1dF8lcyIgJSAoc3RyKHV1aWQudXVpZDQo KSlbMTo4XSkKLSAgICAgICAgc2VydmVyX2NvbiA9IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZl cihzZWxmLCBzZWxmLnNlcnZlcl9pZCkKLSAgICAgICAgaWYgbm90IHNlcnZlcl9jb25bImluZm8i XSA9PSAiU2VydmVyIGNvbm5lY3RlZC4iOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgY29ubmVjdCB0byBzZXJ2ZXIgdG8gYWRkIHJlc291cmNlICIKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiZ3JvdXBzLiIpCi0gICAgICAgIHNlcnZlcl92ZXJzaW9uID0gMAot ICAgICAgICBpZiAidHlwZSIgaW4gc2VydmVyX2NvblsiZGF0YSJdOgotICAgICAgICAgICAgaWYg c2VydmVyX2NvblsiZGF0YSJdWyJ2ZXJzaW9uIl0gPCA5MDMwMDoKLSAgICAgICAgICAgICAgICBt ZXNzYWdlID0gIkV2ZW50IHRyaWdnZXJzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IFBHOS4yICIgXAot ICAgICAgICAgICAgICAgICAgICAgICAgICAiYW5kIFBQQVM5LjIgYW5kIGJlbG93LiIKLSAgICAg ICAgICAgICAgICBzZWxmLnNraXBUZXN0KG1lc3NhZ2UpCi0gICAgICAgIHNlbGYuZnVuY3Rpb25f aW5mbyA9IHRyaWdnZXJfZnVuY3NfdXRpbHMuY3JlYXRlX3RyaWdnZXJfZnVuY3Rpb24oCi0gICAg ICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBzZWxm LmZ1bmNfbmFtZSwKLSAgICAgICAgICAgIHNlcnZlcl92ZXJzaW9uKQogICAgICAgICBzZWxmLmV2 ZW50X3RyaWdnZXJfaWQgPSBldmVudF90cmlnZ2VyX3V0aWxzLmNyZWF0ZV9ldmVudF90cmlnZ2Vy KAogICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFt ZSwgc2VsZi5mdW5jX25hbWUsCiAgICAgICAgICAgICBzZWxmLnRyaWdnZXJfbmFtZSkKIAotICAg IGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0 ZSBldmVudCB0cmlnZ2VyIHVuZGVyIHRlc3QgZGF0YWJhc2UuICIiIgotICAgICAgICBkYl9jb24g PSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9V UCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJj b25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5l Y3QgdG8gZGF0YWJhc2UuIikKLSAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxz LnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkK LSAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQorICAgIGRlZiB0ZXN0X3B1dChzZWxm KToKKyAgICAgICAgIiIiIFdoZW4gYSB0cmlnZ2VyIGV4aXN0cworICAgICAgICAgV2hlbiBzY2hl bWEgZXhpc3QKKyAgICAgICAgIFdoZW4gYmFja2VuZCByZWNlaXZlcyBhIHZhbGlkIHJlcXVlc3Qg dG8gdXBkYXRlIGEgdHJpZ2dlcgorICAgICAgICAgSXQgdXBkYXRlcyB0aGUgdHJpZ2dlciBpbmZv cm1hdGlvbgorICAgICAgICAgQW5kIHJldHVybnMgc3VjY2VzcyAyMDAiIiIKKyAgICAgICAgdXJs ID0gJy9icm93c2VyL2V2ZW50X3RyaWdnZXIvb2JqLycKKworICAgICAgICBzZWxmLl9pc19zY2hl bWFfYW5kX2RhdGFiYXNlX2F2YWlsYWJsZSgpCisKICAgICAgICAgZnVuY19uYW1lID0gc2VsZi5m dW5jdGlvbl9pbmZvWzFdCiAgICAgICAgIGZ1bmNfcmVzcG9uc2UgPSB0cmlnZ2VyX2Z1bmNzX3V0 aWxzLnZlcmlmeV90cmlnZ2VyX2Z1bmN0aW9uKAogICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsCkBA IC04NSwxMyArNjIsMTggQEAgY2xhc3MgRXZlbnRUcmlnZ2VyUHV0VGVzdENhc2UoQmFzZVRlc3RH ZW5lcmF0b3IpOgogICAgICAgICAgICAgImlkIjogc2VsZi5ldmVudF90cmlnZ2VyX2lkCiAgICAg ICAgIH0KICAgICAgICAgcHV0X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KAotICAgICAgICAg ICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAg ICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCiAgICAgICAgICAgICBzdHIo c2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQpICsKICAgICAgICAgICAgICcv JyArIHN0cihzZWxmLmV2ZW50X3RyaWdnZXJfaWQpLAogICAgICAgICAgICAgZGF0YT1qc29uLmR1 bXBzKGRhdGEpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBz ZWxmLmFzc2VydEVxdWFscyhwdXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKIAotICAgIGRl ZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAg ICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVy X2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBwdXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91 bGQuYmUuZXF1YWwudG8oMjAwKQorCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBzZWxmLnJlc3Bv bnNlX3RvX2pzb24ocHV0X3Jlc3BvbnNlKQorICAgICAgICBzZWxmLmFzc2VydF9ub2RlX2pzb24o anNvbl9yZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdldmVudF90cmln Z2VyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwZ2FkbWluLm5vZGUuZXZlbnRf dHJpZ2dlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdpY29uLWV2ZW50X3RyaWdnZXInLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi50cmlnZ2VyX25hbWUpCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9ucy90 ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9leHRlbnNpb25zL3Rlc3RzL19faW5pdF9fLnB5CmluZGV4IDM5MDBjNTU3 Li41OTAwMjZhZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVuc2lvbnMvdGVzdHMvX19pbml0X18ucHkKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVuc2lv bnMvdGVzdHMvX19pbml0X18ucHkKQEAgLTYsMTEgKzYsMyBAQAogIyBUaGlzIHNvZnR3YXJlIGlz IHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCi0KLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IK LQotCi1jbGFzcyBFeHRlbnNpb25HZW5lcmF0b3JUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6 Ci0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgcmV0dXJuIFtdCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0 ZW5zaW9ucy90ZXN0cy90ZXN0X2V4dGVuc2lvbl9hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9ucy90ZXN0cy90ZXN0X2V4 dGVuc2lvbl9hZGQucHkKaW5kZXggZjQzOThkNTUuLjFkYTM3ZmM2IDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9u cy90ZXN0cy90ZXN0X2V4dGVuc2lvbl9hZGQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVuc2lvbnMvdGVzdHMvdGVzdF9leHRl bnNpb25fYWRkLnB5CkBAIC0xMSwyNCArMTEsMjUgQEAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBw cmludF9mdW5jdGlvbgogCiBpbXBvcnQganNvbgogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBw YSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2Vy dmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRhYmFzZV91dGls cwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJv bSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgQ2xpZW50VGVzdEJhc2VDbGFzcwog ZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24u cHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBv cnQgdXRpbHMgYXMgZXh0ZW5zaW9uX3V0aWxzCiAKIAotY2xhc3MgRXh0ZW5zaW9uc0FkZFRlc3RD YXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10K LSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGV4 dGVuc2lvbiBub2RlLgotICAgICAgICAoJ0NoZWNrIEV4dGVuc2lvbiBOb2RlJywgZGljdCh1cmw9 Jy9icm93c2VyL2V4dGVuc2lvbi9vYmovJykpCi0gICAgXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0 YWJhc2VzKFsnZ3BkYiddKQorY2xhc3MgVGVzdEV4dGVuc2lvbnNBZGQoQ2xpZW50VGVzdEJhc2VD bGFzcyk6CisgICAgZGVmIHRlc3RfYWRkX2V4dGVuc2lvbihzZWxmKToKKyAgICAgICAgIiIiCisg ICAgICAgIFdoZW4gY3JlYXRpb24gcmVxdWVzdCBpcyBzZW50IHRvIHRoZSBiYWNrZW5kCisgICAg ICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cyAiIiIKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgot ICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCBleHRlbnNpb24gdW5kZXIgdGVzdCBz Y2hlbWEuICIiIgotICAgICAgICBzdXBlcihFeHRlbnNpb25zQWRkVGVzdENhc2UsIHNlbGYpLnJ1 blRlc3QoKQorICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvZXh0ZW5zaW9uL29iai8nCiAgICAgICAg IHNlbGYuc2NoZW1hX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KICAgICAg ICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWyJzZXJ2ZXJfaWQiXQogICAgICAg ICBzZWxmLmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnZGJfaWQnXQpAQCAtNDIsMTIgKzQzLDIw IEBAIGNsYXNzIEV4dGVuc2lvbnNBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIp CiAgICAgICAgIHNlbGYuZGF0YSA9IGV4dGVuc2lvbl91dGlscy5nZXRfZXh0ZW5zaW9uX2RhdGEo c2VsZi5zY2hlbWFfbmFtZSkKICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAot ICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisg ICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCiAgICAgICAg ICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKAogICAgICAgICAgICAgICAgIHNl bGYuZGJfaWQpICsgJy8nLAogICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYuZGF0YSks CiAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCi0gICAgICAgIHNlbGYuYXNz ZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIHJlc3BvbnNlLnN0 YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKworICAgICAgICBqc29uX3Jlc3Bv bnNlID0gc2VsZi5yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBzZWxmLmFzc2Vy dF9ub2RlX2pzb24oanNvbl9yZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdleHRlbnNpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BnYWRtaW4ubm9k ZS5leHRlbnNpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAnaWNvbi1leHRlbnNpb24nLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJ2N1YmUnKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAg ICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2UgYW5kIGRy b3AgYWRkZWQgZXh0ZW5zaW9uLgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVuc2lvbnMvdGVzdHMvdGVzdF9leHRlbnNp b25fZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL2V4dGVuc2lvbnMvdGVzdHMvdGVzdF9leHRlbnNpb25fZGVsZXRlLnB5CmluZGV4 IGExNjQ0YTU5Li5hNDM2YWYxYSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVuc2lvbnMvdGVzdHMvdGVzdF9leHRlbnNp b25fZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9leHRlbnNpb25zL3Rlc3RzL3Rlc3RfZXh0ZW5zaW9uX2RlbGV0ZS5weQpA QCAtOSwyNCArOSwyNSBAQAogCiBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9u CiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQg XAogICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUg aW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVy IGltcG9ydCBDbGllbnRUZXN0QmFzZUNsYXNzCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVu dF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVz dF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBleHRlbnNpb25fdXRpbHMK IAogCi1jbGFzcyBFeHRlbnNpb25zRGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgot ICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAg ICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZXh0ZW5zaW9uIG5vZGUuCi0gICAgICAgICgn Q2hlY2sgRXh0ZW5zaW9uIE5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIvZXh0ZW5zaW9uL29iai8n KSkKLSAgICBdCitAcHl0ZXN0Lm1hcmsuc2tpcF9kYXRhYmFzZXMoWydncGRiJ10pCitjbGFzcyBU ZXN0RXh0ZW5zaW9uc0RlbGV0ZShDbGllbnRUZXN0QmFzZUNsYXNzKToKKyAgICBkZWYgdGVzdF9k ZWxldGVfZXh0ZW5zaW9uKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBkZWxldGlv biByZXF1ZXN0IGluIHNlbnQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAg c3RhdHVzICIiIgogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5j dGlvbiB3aWxsIGNyZWF0ZSBleHRlbnNpb24uIiIiCi0gICAgICAgIHN1cGVyKEV4dGVuc2lvbnNE ZWxldGVUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQorICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvZXh0 ZW5zaW9uL29iai8nCiAgICAgICAgIHNlbGYuc2NoZW1hX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0 WydzY2hlbWEnXVstMV0KICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9kYXRh WydzZXJ2ZXJfaWQnXQogICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnZGJf aWQnXQpAQCAtMzYsOCArMzcsNiBAQCBjbGFzcyBFeHRlbnNpb25zRGVsZXRlVGVzdENhc2UoQmFz ZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICBzZWxmLmV4dGVuc2lvbl9pZCA9IGV4dGVuc2lvbl91 dGlscy5jcmVhdGVfZXh0ZW5zaW9uKAogICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJf bmFtZSwgc2VsZi5leHRlbnNpb25fbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSkKIAotICAgIGRlZiBy dW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBleHRl bnNpb24gYWRkZWQgdGVzdCBkYXRhYmFzZS4gIiIiCiAgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNl X3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCkBAIC00 OCwxMiArNDcsMjAgQEAgY2xhc3MgRXh0ZW5zaW9uc0RlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2Vu ZXJhdG9yKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLmV4dGVuc2lvbl9uYW1lKQogICAgICAgICBpZiBub3QgcmVzcG9uc2U6CiAgICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIGV4dGVuc2lvbi4iKQotICAg ICAgICBkZWxldGVfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoCi0gICAgICAgICAgICBz ZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VS VkVSX0dST1VQKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8n ICsgc3RyKHNlbGYuZGJfaWQpICsKICAgICAgICAgICAgICcvJyArIHN0cihzZWxmLmV4dGVuc2lv bl9pZCksCiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgIHNlbGYu YXNzZXJ0RXF1YWxzKGRlbGV0ZV9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAgICAgICBy ZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisKKyAgICAgICAg anNvbl9yZXNwb25zZSA9IHNlbGYucmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAg anNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnaW5mbycpID4gc2hvdWxkLmJlLmVxdWFs LnRvKAorICAgICAgICAgICAgJ0V4dGVuc2lvbiBkcm9wcGVkJykKKyAgICAgICAganNvbl9yZXNw b25zZSB8IHNob3VsZC5oYXZlLmtleSgnZXJyb3Jtc2cnKSA+IHNob3VsZC5iZS5lbXB0eQorICAg ICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdkYXRhJykKKyAgICAgICAganNv bl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgncmVzdWx0JykgPiBzaG91bGQuYmUubm9uZQor ICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdzdWNjZXNzJykgPiBzaG91 bGQuYmUuZXF1YWwudG8oMSkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICAgIiIi VGhpcyBmdW5jdGlvbiBkaXNjb25uZWN0IHRoZSB0ZXN0IGRhdGFiYXNlLiAiIiIKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9l eHRlbnNpb25zL3Rlc3RzL3Rlc3RfZXh0ZW5zaW9uX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlbnNpb25zL3Rlc3RzL3Rlc3Rf ZXh0ZW5zaW9uX2dldC5weQppbmRleCAyNDAxZjFlZC4uYzdkNWMzNmEgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlbnNp b25zL3Rlc3RzL3Rlc3RfZXh0ZW5zaW9uX2dldC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9ucy90ZXN0cy90ZXN0X2V4 dGVuc2lvbl9nZXQucHkKQEAgLTksMjQgKzksMjUgQEAKIAogZnJvbSBfX2Z1dHVyZV9fIGltcG9y dCBwcmludF9mdW5jdGlvbgogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hv dWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFz ZXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2Fk bWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0 aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgQ2xpZW50VGVzdEJhc2VDbGFzcwogZnJvbSByZWdyZXNz aW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3Rf dXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMg ZXh0ZW5zaW9uX3V0aWxzCiAKIAotY2xhc3MgRXh0ZW5zaW9uc0dldFRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLSAgICBzY2VuYXJp b3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGV4dGVuc2lvbiBub2Rl LgotICAgICAgICAoJ0NoZWNrIEV4dGVuc2lvbiBOb2RlJywgZGljdCh1cmw9Jy9icm93c2VyL2V4 dGVuc2lvbi9vYmovJykpCi0gICAgXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsnZ3Bk YiddKQorY2xhc3MgVGVzdEV4dGVuc2lvbnNHZXQoQ2xpZW50VGVzdEJhc2VDbGFzcyk6CisgICAg ZGVmIHRlc3RfZ2V0X2V4dGVuc2lvbihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4g Z2V0IHJlcXVlc3QgaXMgc2VudCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIw MCBzdGF0dXMiIiIKIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVu Y3Rpb24gd2lsbCBjcmVhdGUgZXh0ZW5zaW9uLiIiIgotICAgICAgICBzdXBlcihFeHRlbnNpb25z R2V0VGVzdENhc2UsIHNlbGYpLnNldFVwKCkKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2V4dGVu c2lvbi9vYmovJwogICAgICAgICBzZWxmLnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsn c2NoZW1hJ11bLTFdCiAgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsn c2VydmVyX2lkJ10KICAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lk J10KQEAgLTM2LDggKzM3LDYgQEAgY2xhc3MgRXh0ZW5zaW9uc0dldFRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKICAgICAgICAgc2VsZi5leHRlbnNpb25faWQgPSBleHRlbnNpb25fdXRpbHMu Y3JlYXRlX2V4dGVuc2lvbigKICAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUs IHNlbGYuZXh0ZW5zaW9uX25hbWUsIHNlbGYuc2NoZW1hX25hbWUpCiAKLSAgICBkZWYgcnVuVGVz dChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCBhZGRlZCBleHRl bnNpb24gdW5kZXIgZGF0YWJhc2UgbmFtZS4gIiIiCiAgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNl X3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCkBAIC00 NSwxMSArNDQsMjIgQEAgY2xhc3MgRXh0ZW5zaW9uc0dldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJh dG9yKToKICAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0 ZWQuIjoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8g ZGF0YWJhc2UuIikKICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCi0gICAgICAg ICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsgc3RyKAorICAg ICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKyBzdHIoCiAgICAg ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxm LmRiX2lkKSArICcvJyArIHN0cihzZWxmLmV4dGVuc2lvbl9pZCksCiAgICAgICAgICAgICBjb250 ZW50X3R5cGU9J2h0bWwvanNvbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNl LnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxk LmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IHNlbGYucmVzcG9uc2Vf dG9fanNvbihyZXNwb25zZSkKKworICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUu a2V5KCdlaWQnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdvd25l cicpID4gXAorICAgICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKHNlbGYuc2VydmVyWyd1c2Vy bmFtZSddKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCduYW1lJykg PiBzaG91bGQuYmUuZXF1YWwudG8oJ2N1YmUnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hv dWxkLmhhdmUua2V5KCdzY2hlbWEnKSA+IFwKKyAgICAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50 byhzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUu a2V5KCdyZWxvY2F0YWJsZScpID4gc2hvdWxkLmJlLnRydWUKKyAgICAgICAganNvbl9yZXNwb25z ZSB8IHNob3VsZC5oYXZlLmtleSgndmVyc2lvbicpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBz aG91bGQuaGF2ZS5rZXkoJ2NvbW1lbnQnKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAg ICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2UgYW5kIGRy b3AgYWRkZWQKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9leHRlbnNpb25zL3Rlc3RzL3Rlc3RfZXh0ZW5zaW9uX3B1dC5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRl bnNpb25zL3Rlc3RzL3Rlc3RfZXh0ZW5zaW9uX3B1dC5weQppbmRleCAzOTU5ODk4Mi4uZjgwZDg0 NWEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9leHRlbnNpb25zL3Rlc3RzL3Rlc3RfZXh0ZW5zaW9uX3B1dC5weQorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZW5z aW9ucy90ZXN0cy90ZXN0X2V4dGVuc2lvbl9wdXQucHkKQEAgLTExLDI0ICsxMSwyNCBAQCBmcm9t IF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGltcG9ydCBqc29uCiAKK2ltcG9y dCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dz ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0 aWxzIGFzIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJh c2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBD bGllbnRUZXN0QmFzZUNsYXNzCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2Rp Y3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBh cyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBleHRlbnNpb25fdXRpbHMKIAogCi1jbGFz cyBFeHRlbnNpb25zUHV0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgIHNraXBfb25f ZGF0YWJhc2UgPSBbJ2dwZGInXQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGlu ZyBkZWZhdWx0IFVSTCBmb3IgZXh0ZW5zaW9uIG5vZGUuCi0gICAgICAgICgnQ2hlY2sgRXh0ZW5z aW9uIE5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIvZXh0ZW5zaW9uL29iai8nKSkKLSAgICBdCi0K LSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgY3Jl YXRlIGV4dGVuc2lvbi4iIiIKLSAgICAgICAgc3VwZXIoRXh0ZW5zaW9uc1B1dFRlc3RDYXNlLCBz ZWxmKS5zZXRVcCgpCitAcHl0ZXN0Lm1hcmsuc2tpcF9kYXRhYmFzZXMoWydncGRiJ10pCitjbGFz cyBUZXN0RXh0ZW5zaW9uc1B1dChDbGllbnRUZXN0QmFzZUNsYXNzKToKKyAgICBkZWYgdGVzdF9l eHRlbnNpb25zX3B1dChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gUFVUIHJlcXVl c3QgaXMgc2VudCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMi IiIKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2V4dGVuc2lvbi9vYmovJwogICAgICAgICBzZWxm LnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCiAgICAgICAgIHNl bGYuc2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KICAgICAgICAgc2Vs Zi5kYl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KQEAgLTM4LDggKzM4LDYgQEAgY2xh c3MgRXh0ZW5zaW9uc1B1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgc2Vs Zi5leHRlbnNpb25faWQgPSBleHRlbnNpb25fdXRpbHMuY3JlYXRlX2V4dGVuc2lvbigKICAgICAg ICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuZXh0ZW5zaW9uX25hbWUsIHNl bGYuc2NoZW1hX25hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRo aXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgZXh0ZW5zaW9uIGFkZGVkIHVuZGVyIHRlc3QgZGF0YWJh c2UuICIiIgogICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNl KHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dXRpbHMuU0VSVkVSX0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLApAQCAtNTQsMTQgKzUyLDIyIEBAIGNsYXNzIEV4 dGVuc2lvbnNQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAic2No ZW1hIjogInB1YmxpYyIsCiAgICAgICAgICAgICAiaWQiOiBzZWxmLmV4dGVuc2lvbl9pZAogICAg ICAgICB9Ci0gICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKLSAgICAgICAg ICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICBy ZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5T RVJWRVJfR1JPVVApICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAn LycgKyBzdHIoCiAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkgKwogICAgICAgICAgICAgJy8n ICsgc3RyKHNlbGYuZXh0ZW5zaW9uX2lkKSwKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhk YXRhKSwKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5h c3NlcnRFcXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIHJlc3Bv bnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKworICAgICAgICBqc29u X3Jlc3BvbnNlID0gc2VsZi5yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBzZWxm LmFzc2VydF9ub2RlX2pzb24oanNvbl9yZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICdleHRlbnNpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BnYWRt aW4ubm9kZS5leHRlbnNpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2Us CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWNvbi1leHRlbnNpb24nLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ2N1YmUnKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYp OgogICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2Ug YW5kIGRyb3AgYWRkZWQKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlcm5hbF90YWJsZXMvdGVzdHMvdGVzdF9leHRlcm5h bF90YWJsZXNfbW9kdWxlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy90ZXN0cy90ZXN0X2V4dGVybmFsX3RhYmxl c19tb2R1bGUucHkKaW5kZXggZjhjNDdhYjMuLmRhYWQwYTMyIDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZXJuYWxfdGFi bGVzL3Rlc3RzL3Rlc3RfZXh0ZXJuYWxfdGFibGVzX21vZHVsZS5weQorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZXJuYWxfdGFibGVz L3Rlc3RzL3Rlc3RfZXh0ZXJuYWxfdGFibGVzX21vZHVsZS5weQpAQCAtMTAsMTAgKzEwLDEwIEBA CiBpbXBvcnQgc3lzCiAKIGltcG9ydCBzaXgKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKIAot ZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzXAorZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzIFwKICAgICAuZGF0YWJhc2VzLmV4dGVybmFs X3RhYmxlcyBpbXBvcnQgRXh0ZXJuYWxUYWJsZXNNb2R1bGUKLWZyb20gcGdhZG1pbi51dGlscy5y b3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKIAogaWYgc3lzLnZlcnNpb25faW5mbyA8ICgz LCAzKToKICAgICBmcm9tIG1vY2sgaW1wb3J0IE1hZ2ljTW9jaywgTW9jawpAQCAtMjEsNzkgKzIx LDM5IEBAIGVsc2U6CiAgICAgZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBNYWdpY01vY2ssIE1v Y2sKIAogCi1jbGFzcyBUZXN0RXh0ZXJuYWxUYWJsZXNNb2R1bGUoQmFzZVRlc3RHZW5lcmF0b3Ip OgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCcjQmFja2VuZFN1cHBvcnRlZCBXaGVuIGFj Y2VzcyB0aGUgb24gYSBQb3N0Z3Jlc3FsIERhdGFiYXNlLCAnCi0gICAgICAgICAnaXQgcmV0dXJu cyBmYWxzZScsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHRlc3RfdHlwZT0nYmFja2Vu ZC1zdXBwb3J0JywKLSAgICAgICAgICAgICBtYW5hZ2VyPWRpY3QoCi0gICAgICAgICAgICAgICAg IHNlcnZlcl90eXBlPSdwZycsCi0gICAgICAgICAgICAgICAgIHN2ZXJzaW9uPTkwMTAwCi0gICAg ICAgICAgICAgKSwKLSAgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9RmFsc2UsCi0gICAgICAg ICApKSwKLSAgICAgICAgKCcjQmFja2VuZFN1cHBvcnRlZCBXaGVuIGFjY2VzcyB0aGUgb24gYSBH cmVlblBsdW0gRGF0YWJhc2UsICcKLSAgICAgICAgICdpdCByZXR1cm5zIHRydWUnLAotICAgICAg ICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J2JhY2tlbmQtc3VwcG9ydCcsCi0gICAg ICAgICAgICAgbWFuYWdlcj1kaWN0KAotICAgICAgICAgICAgICAgICBzZXJ2ZXJfdHlwZT0nZ3Bk YicsCi0gICAgICAgICAgICAgICAgIHN2ZXJzaW9uPTgyMzAzCi0gICAgICAgICAgICAgKSwKLSAg ICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9VHJ1ZQotICAgICAgICAgKSksCi0gICAgICAgICgn I2dldF9ub2RlcyB3aGVuIHRyeWluZyB0byByZXRyaWV2ZSB0aGUgbm9kZSwgJwotICAgICAgICAg J2l0IHNob3VsZCByZXR1cm4gdHJ1ZScsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHRl c3RfdHlwZT0nZ2V0LW5vZGVzJywKLSAgICAgICAgICAgICBmdW5jdGlvbl9wYXJhbWV0ZXJzPWRp Y3QoCi0gICAgICAgICAgICAgICAgIGdpZD0xMCwKLSAgICAgICAgICAgICAgICAgc2lkPTExLAot ICAgICAgICAgICAgICAgICBkaWQ9MTIsCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICBl eHBlY3RlZF9nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZV9jYWxsZWRfd2l0aD0xMgot ICAgICAgICAgKSksCi0gICAgICAgICgnI2dldF9tb2R1bGVfdXNlX3RlbXBsYXRlX2phdmFzY3Jp cHQgd2hlbiBjaGVja2luZyBpZiBuZWVkIHRvICcKLSAgICAgICAgICdnZW5lcmF0ZSBqYXZhc2Ny aXB0IGZyb20gdGVtcGxhdGUsICcKLSAgICAgICAgICdpdCBzaG91bGQgcmV0dXJuIGZhbHNlJywK LSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgdGVzdF90eXBlPSd0ZW1wbGF0ZS1qYXZhc2Ny aXB0JywKLSAgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9RmFsc2UKLSAgICAgICAgICkpCi0g ICAgXQotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYudGVzdF90eXBl ID09ICdiYWNrZW5kLXN1cHBvcnQnOgotICAgICAgICAgICAgc2VsZi5fX3Rlc3RfYmFja2VuZF9z dXBwb3J0KCkKLSAgICAgICAgZWxpZiBzZWxmLnRlc3RfdHlwZSA9PSAnZ2V0LW5vZGVzJzoKLSAg ICAgICAgICAgIHNlbGYuX190ZXN0X2dldF9ub2RlcygpCi0gICAgICAgIGVsaWYgc2VsZi50ZXN0 X3R5cGUgPT0gJ3RlbXBsYXRlLWphdmFzY3JpcHQnOgotICAgICAgICAgICAgc2VsZi5fX3Rlc3Rf dGVtcGxhdGVfamF2YXNjcmlwdCgpCitjbGFzcyBUZXN0RXh0ZXJuYWxUYWJsZXNNb2R1bGUob2Jq ZWN0KToKKyAgICBkZWYgdGVzdF9iYWNrZW5kX3N1cHBvcnRfb25fcG9zdGdyZXNxbChzZWxmKToK KyAgICAgICAgIiIiV2hlbiBhY2Nlc3NlZCBvbiBQb3N0Z3Jlc3FsIERhdGFiYXNlIiIiCisgICAg ICAgIG1hbmFnZXIgPSBNYWdpY01vY2soKQorICAgICAgICBtYW5hZ2VyLnN2ZXJzaW9uID0gOTAx MDAKKyAgICAgICAgbWFuYWdlci5zZXJ2ZXJfdHlwZSA9ICdwZycKKyAgICAgICAgbW9kdWxlID0g RXh0ZXJuYWxUYWJsZXNNb2R1bGUoJ3NvbWV0aGluZycpCisgICAgICAgIG1vZHVsZS5CYWNrZW5k U3VwcG9ydGVkKG1hbmFnZXIpIHwgc2hvdWxkLmJlLmZhbHNlCiAKLSAgICBkZWYgX190ZXN0X2Jh Y2tlbmRfc3VwcG9ydChzZWxmKToKKyAgICBkZWYgdGVzdF9iYWNrZW5kX3N1cHBvcnRfZ3JlZW5w bHVtKHNlbGYpOgorICAgICAgICAiIiJXaGVuIGFjY2Vzc2VkIG9uIEdyZWVuUGx1bSBEYXRhYmFz ZSIiIgogICAgICAgICBtYW5hZ2VyID0gTWFnaWNNb2NrKCkKLSAgICAgICAgbWFuYWdlci5zdmVy c2lvbiA9IHNlbGYubWFuYWdlclsnc3ZlcnNpb24nXQotICAgICAgICBtYW5hZ2VyLnNlcnZlcl90 eXBlID0gc2VsZi5tYW5hZ2VyWydzZXJ2ZXJfdHlwZSddCisgICAgICAgIG1hbmFnZXIuc3ZlcnNp b24gPSA4MjMwMworICAgICAgICBtYW5hZ2VyLnNlcnZlcl90eXBlID0gJ2dwZGInCiAgICAgICAg IG1vZHVsZSA9IEV4dGVybmFsVGFibGVzTW9kdWxlKCdzb21ldGhpbmcnKQotICAgICAgICBzZWxm LmFzc2VydEVxdWFscygKLSAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfcmVzdWx0LAotICAgICAg ICAgICAgbW9kdWxlLkJhY2tlbmRTdXBwb3J0ZWQobWFuYWdlcikKLSAgICAgICAgKQorICAgICAg ICBtb2R1bGUuQmFja2VuZFN1cHBvcnRlZChtYW5hZ2VyKSB8IHNob3VsZC5iZS50cnVlCiAKLSAg ICBkZWYgX190ZXN0X2dldF9ub2RlcyhzZWxmKToKKyAgICBkZWYgdGVzdF9nZXRfbm9kZXMoc2Vs Zik6CisgICAgICAgICIiIndoZW4gdHJ5aW5nIHRvIHJldHJpZXZlIHRoZSBub2RlLAorICAgICAg ICAgaXQgY2FsbHMgdGhlIGdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlIGZ1bmN0aW9u CisgICAgICAgIHdpdGggdmFsdWUgMTIiIiIKICAgICAgICAgbW9kdWxlID0gRXh0ZXJuYWxUYWJs ZXNNb2R1bGUoJ3NvbWV0aGluZycpCiAgICAgICAgIG1vZHVsZS5nZW5lcmF0ZV9icm93c2VyX2Nv bGxlY3Rpb25fbm9kZSA9IE1vY2soKQogCi0gICAgICAgIHJlc3VsdCA9IG1vZHVsZS5nZXRfbm9k ZXMoKipzZWxmLmZ1bmN0aW9uX3BhcmFtZXRlcnMpCisgICAgICAgIHJlc3VsdCA9IG1vZHVsZS5n ZXRfbm9kZXMoZ2lkPTEwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZD0x MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWQ9MTIpCiAgICAgICAgIHNp eC5uZXh0KHJlc3VsdCkKIAotICAgICAgICBtb2R1bGUuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0 aW9uX25vZGUuYXNzZXJ0X2NhbGxlZF93aXRoKAotICAgICAgICAgICAgc2VsZi5leHBlY3RlZF9n ZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZV9jYWxsZWRfd2l0aAotICAgICAgICApCisg ICAgICAgIG1vZHVsZS5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZS5hc3NlcnRfY2Fs bGVkX3dpdGgoMTIpCiAKLSAgICBkZWYgX190ZXN0X3RlbXBsYXRlX2phdmFzY3JpcHQoc2VsZik6 CisgICAgZGVmIHRlc3RfdGVtcGxhdGVfamF2YXNjcmlwdChzZWxmKToKKyAgICAgICAgIiIid2hl biBjaGVja2luZyBpZiBpdCBuZWVkcyB0byBnZW5lcmF0ZSBqYXZhc2NyaXB0IGZyb20gdGVtcGxh dGUsCisgICAgICAgIGl0IHNob3VsZCByZXR1cm4gZmFsc2UiIiIKICAgICAgICAgbW9kdWxlID0g RXh0ZXJuYWxUYWJsZXNNb2R1bGUoJ3NvbWV0aGluZycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWxzKAotICAgICAgICAgICAgc2VsZi5leHBlY3RlZF9yZXN1bHQsCi0gICAgICAgICAgICBtb2R1 bGUubW9kdWxlX3VzZV90ZW1wbGF0ZV9qYXZhc2NyaXB0KQorICAgICAgICBtb2R1bGUubW9kdWxl X3VzZV90ZW1wbGF0ZV9qYXZhc2NyaXB0IHwgc2hvdWxkLmJlLmZhbHNlCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZXJu YWxfdGFibGVzL3Rlc3RzL3Rlc3RfZXh0ZXJuYWxfdGFibGVzX3ZpZXcucHkgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZXJuYWxfdGFibGVz L3Rlc3RzL3Rlc3RfZXh0ZXJuYWxfdGFibGVzX3ZpZXcucHkKaW5kZXggNDczMzc4YTYuLjBlNGU3 OWMxIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvZXh0ZXJuYWxfdGFibGVzL3Rlc3RzL3Rlc3RfZXh0ZXJuYWxfdGFibGVzX3Zp ZXcucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL2V4dGVybmFsX3RhYmxlcy90ZXN0cy90ZXN0X2V4dGVybmFsX3RhYmxlc192aWV3LnB5 CkBAIC03LDEyICs3LDEzIEBACiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCi1pbXBvcnQgb3MKIGlt cG9ydCBzeXMKIAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVybmFsX3RhYmxlcyBpbXBv cnQgXAogICAgIEV4dGVybmFsVGFibGVzVmlldwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGlt cG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5l cmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiAKIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAo MywgMyk6CiAgICAgZnJvbSBtb2NrIGltcG9ydCBNYWdpY01vY2ssIHBhdGNoCkBAIC0yMSw0MTUg KzIyLDQwNiBAQCBlbHNlOgogCiAKIGNsYXNzIFRlc3RFeHRlcm5hbFRhYmxlc1ZpZXcoQmFzZVRl c3RHZW5lcmF0b3IpOgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCcjY2hlY2tfcHJlY29u ZGl0aW9uIFdoZW4gZXhlY3V0aW5nIGFueSBodHRwIGNhbGwsICcKLSAgICAgICAgICdpdCBzYXZl cyBzdG9yZXMgdGhlIGNvbm5lY3Rpb24gYW5kIHRoZSBtYW5hZ2VyIGluIHRoZSBjbGFzcyBvYmpl Y3QnLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J2NoZWNrLXByZWNv bmRpdGlvbicsCi0gICAgICAgICAgICAgZnVuY3Rpb25fcGFyYW1ldGVycz1kaWN0KAotICAgICAg ICAgICAgICAgICBzZXJ2ZXJfZ3JvdXBfaWQ9MCwKLSAgICAgICAgICAgICAgICAgc2VydmVyX2lk PTEsCi0gICAgICAgICAgICAgICAgIGRhdGFiYXNlX2lkPTIsCi0gICAgICAgICAgICAgKSwKLSAg ICAgICAgICAgICBtYW5hZ2VyPU1hZ2ljTW9jaygpLAotICAgICAgICAgICAgIGNvbm5lY3Rpb249 TWFnaWNNb2NrKGV4ZWN1dGVfMmRhcnJheT1NYWdpY01vY2soKSksCi0gICAgICAgICAgICAgZXhl Y3V0ZV8yZGFycmF5X3JldHVybl92YWx1ZT0oVHJ1ZSwgZGljdChyb3dzPVtdKSksCi0gICAgICAg ICAgICAgZXhwZWN0ZWRfbWFuYWdlcl9jb25uZWN0aW9uX3RvX2JlX2NhbGxlZF93aXRoPWRpY3Qo Ci0gICAgICAgICAgICAgICAgIGRpZD0yCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICkpLAot ICAgICAgICAoJyNub2RlcyBXaGVuIHJldHJpZXZpbmcgdGhlIGNoaWxkcmVuIG9mIGV4dGVybmFs IHRhYmxlcywgJwotICAgICAgICAgJ2l0IHJldHVybiBubyBjaGlsZCAnCi0gICAgICAgICAnYW5k IHN0YXR1cyAyMDAnLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J2No aWxkcmVuJywKLSAgICAgICAgICAgICBmdW5jdGlvbl9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAg ICAgICAgICAgIHNlcnZlcl9ncm91cF9pZD0wLAotICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQ9 MSwKLSAgICAgICAgICAgICAgICAgZGF0YWJhc2VfaWQ9MiwKLSAgICAgICAgICAgICApLAotICAg ICAgICAgICAgIG1hbmFnZXI9TWFnaWNNb2NrKHNlcnZlcl90eXBlPSdncGRiJywgc3ZlcnNpb249 ODAzMjMpLAotICAgICAgICAgICAgIGNvbm5lY3Rpb249TWFnaWNNb2NrKGV4ZWN1dGVfMmRhcnJh eT1NYWdpY01vY2soKSksCi0gICAgICAgICAgICAgZXhlY3V0ZV8yZGFycmF5X3JldHVybl92YWx1 ZT0oVHJ1ZSwgZGljdChyb3dzPVtdKSksCi0KLSAgICAgICAgICAgICBleHBlY3RlZF9tYWtlX2pz b25fcmVzcG9uc2VfY2FsbGVkX3dpdGg9ZGljdChkYXRhPVtdKSwKLSAgICAgICAgICkpLAotICAg ICAgICAoJyNub2RlcyBXaGVuIHJldHJpZXZpbmcgdGhlIG5vZGVzICcKLSAgICAgICAgICdhbmQg dGhlIGRhdGFiYXNlIGRvZXMgbm90IGhhdmUgZXh0ZXJuYWwgdGFibGVzLCAnCi0gICAgICAgICAn aXQgcmV0dXJuIG5vIGNoaWxkIG5vZGVzICcKLSAgICAgICAgICdhbmQgc3RhdHVzIDIwMCcsCi0g ICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHRlc3RfdHlwZT0nbm9kZXMnLAotICAgICAgICAg ICAgIGZ1bmN0aW9uX3BhcmFtZXRlcnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgc2VydmVyX2dy b3VwX2lkPTAsCi0gICAgICAgICAgICAgICAgIHNlcnZlcl9pZD0xLAotICAgICAgICAgICAgICAg ICBkYXRhYmFzZV9pZD0yLAotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgbWFuYWdlcj1N YWdpY01vY2soc2VydmVyX3R5cGU9J2dwZGInLCBzdmVyc2lvbj04MDMyMyksCi0gICAgICAgICAg ICAgY29ubmVjdGlvbj1NYWdpY01vY2soZXhlY3V0ZV8yZGFycmF5PU1hZ2ljTW9jaygpKSwKLSAg ICAgICAgICAgICBleGVjdXRlXzJkYXJyYXlfcmV0dXJuX3ZhbHVlPShUcnVlLCBkaWN0KHJvd3M9 W10pKSwKLQotICAgICAgICAgICAgIGV4cGVjdF9yZW5kZXJfdGVtcGxhdGVfY2FsbGVkX3dpdGg9 b3MucGF0aC5qb2luKAotICAgICAgICAgICAgICAgICAnc3FsLyNncGRiIzgwMzIzIycsICdsaXN0 LnNxbCcpLAotICAgICAgICAgICAgIGV4cGVjdGVkX21ha2VfanNvbl9yZXNwb25zZV9jYWxsZWRf d2l0aD1kaWN0KAotICAgICAgICAgICAgICAgICBkYXRhPVtdLAotICAgICAgICAgICAgICAgICBz dGF0dXM9MjAwCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICkpLAotICAgICAgICAoJyNub2Rl cyBXaGVuIHJldHJpZXZpbmcgdGhlIG5vZGVzICcKLSAgICAgICAgICdhbmQgYW4gZXJyb3IgaGFw cGVucyB3aGlsZSBleGVjdXRpbmcgdGhlIHF1ZXJ5LCAnCi0gICAgICAgICAnaXQgcmV0dXJuIGFu IGludGVybmFsIHNlcnZlciBlcnJvciAnCi0gICAgICAgICAnYW5kIHN0YXR1cyA1MDAnLAotICAg ICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J25vZGVzJywKLSAgICAgICAgICAg ICBmdW5jdGlvbl9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgIHNlcnZlcl9ncm91 cF9pZD0wLAotICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQ9MSwKLSAgICAgICAgICAgICAgICAg ZGF0YWJhc2VfaWQ9MiwKLSAgICAgICAgICAgICApLAotCi0gICAgICAgICAgICAgbWFuYWdlcj1N YWdpY01vY2soc2VydmVyX3R5cGU9J2dwZGInLCBzdmVyc2lvbj04MDMyMyksCi0gICAgICAgICAg ICAgY29ubmVjdGlvbj1NYWdpY01vY2soZXhlY3V0ZV8yZGFycmF5PU1hZ2ljTW9jaygpKSwKLSAg ICAgICAgICAgICBleGVjdXRlXzJkYXJyYXlfcmV0dXJuX3ZhbHVlPShGYWxzZSwgJ1NvbWUgZXJy b3IgbWVzc2FnZScpLAotCi0gICAgICAgICAgICAgZXhwZWN0X3JlbmRlcl90ZW1wbGF0ZV9jYWxs ZWRfd2l0aD1vcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICAgICAgICdzcWwvI2dwZGIjODAzMjMj JywgJ2xpc3Quc3FsJyksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfaW50ZXJuYWxfc2VydmVyX2Vy cm9yX2NhbGxlZF93aXRoPWRpY3QoCi0gICAgICAgICAgICAgICAgIGVycm9ybXNnPSdTb21lIGVy cm9yIG1lc3NhZ2UnCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICkpLAotICAgICAgICAoJyNu b2RlcyBXaGVuIHJldHJpZXZpbmcgdGhlIG5vZGVzICcKLSAgICAgICAgICdhbmQgdGhlIGRhdGFi YXNlIGhhcyAyIGV4dGVybmFsIHRhYmxlcywgJwotICAgICAgICAgJ2l0IHJldHVybiAyIGNoaWxk IG5vZGVzICcKLSAgICAgICAgICdhbmQgc3RhdHVzIDIwMCcsCi0gICAgICAgICBkaWN0KAotICAg ICAgICAgICAgIHRlc3RfdHlwZT0nbm9kZXMnLAotICAgICAgICAgICAgIGZ1bmN0aW9uX3BhcmFt ZXRlcnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgc2VydmVyX2dyb3VwX2lkPTAsCi0gICAgICAg ICAgICAgICAgIHNlcnZlcl9pZD0xLAotICAgICAgICAgICAgICAgICBkYXRhYmFzZV9pZD0yLAot ICAgICAgICAgICAgICksCi0KLSAgICAgICAgICAgICBtYW5hZ2VyPU1hZ2ljTW9jayhzZXJ2ZXJf dHlwZT0nZ3BkYicsIHN2ZXJzaW9uPTgwMzIzKSwKLSAgICAgICAgICAgICBjb25uZWN0aW9uPU1h Z2ljTW9jayhleGVjdXRlXzJkYXJyYXk9TWFnaWNNb2NrKCkpLAotICAgICAgICAgICAgIGV4ZWN1 dGVfMmRhcnJheV9yZXR1cm5fdmFsdWU9KFRydWUsIGRpY3QoCi0gICAgICAgICAgICAgICAgIHJv d3M9WwotICAgICAgICAgICAgICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICAgICAgICAgICAg ICBvaWQ9J29pZDEnLAotICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9J3RhYmxlX29uZScK LSAgICAgICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgICAgICBkaWN0KAotICAg ICAgICAgICAgICAgICAgICAgICAgIG9pZD0nb2lkMicsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgbmFtZT0ndGFibGVfdHdvJwotICAgICAgICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAg ICAgICAgXQotICAgICAgICAgICAgICkpLAotCi0gICAgICAgICAgICAgZXhwZWN0X3JlbmRlcl90 ZW1wbGF0ZV9jYWxsZWRfd2l0aD1vcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICAgICAgICdzcWwv I2dwZGIjODAzMjMjJywgJ2xpc3Quc3FsJyksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfbWFrZV9q c29uX3Jlc3BvbnNlX2NhbGxlZF93aXRoPWRpY3QoCi0gICAgICAgICAgICAgICAgIGRhdGE9Wwot ICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICdpZCc6ICJl eHRlcm5hbF90YWJsZS9vaWQxIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAnbGFiZWwnOiAn dGFibGVfb25lJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAnaWNvbic6ICdpY29uLWV4dGVy bmFsX3RhYmxlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAnaW5vZGUnOiBGYWxzZSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAnX3R5cGUnOiAnZXh0ZXJuYWxfdGFibGUnLAotICAgICAg ICAgICAgICAgICAgICAgICAgICdfaWQnOiAnb2lkMScsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgJ19waWQnOiAyLAotICAgICAgICAgICAgICAgICAgICAgICAgICdtb2R1bGUnOiAncGdhZG1p bi5ub2RlLmV4dGVybmFsX3RhYmxlJwotICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAg ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAnaWQnOiAiZXh0ZXJuYWxf dGFibGUvb2lkMiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ2xhYmVsJzogJ3RhYmxlX3R3 bycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ2ljb24nOiAnaWNvbi1leHRlcm5hbF90YWJs ZScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ2lub2RlJzogRmFsc2UsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgJ190eXBlJzogJ2V4dGVybmFsX3RhYmxlJywKLSAgICAgICAgICAgICAg ICAgICAgICAgICAnX2lkJzogJ29pZDInLAotICAgICAgICAgICAgICAgICAgICAgICAgICdfcGlk JzogMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAnbW9kdWxlJzogJ3BnYWRtaW4ubm9kZS5l eHRlcm5hbF90YWJsZScKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg XSwKLSAgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAotICAgICAgICAgICAgICksCi0gICAgICAg ICApKSwKLSAgICAgICAgKCcjbm9kZSBXaGVuIHJldHJpZXZpbmcgdGhlIGluZm9ybWF0aW9uIGFi b3V0IDEgZXh0ZXJuYWwgdGFibGUgJwotICAgICAgICAgJ2FuZCBhbiBlcnJvciBoYXBwZW5zIHdo aWxlIGV4ZWN1dGluZyB0aGUgcXVlcnksICcKLSAgICAgICAgICdpdCByZXR1cm4gYW4gaW50ZXJu YWwgc2VydmVyIGVycm9yICcKLSAgICAgICAgICdhbmQgc3RhdHVzIDUwMCcsCi0gICAgICAgICBk aWN0KAotICAgICAgICAgICAgIHRlc3RfdHlwZT0nbm9kZScsCi0gICAgICAgICAgICAgZnVuY3Rp b25fcGFyYW1ldGVycz1kaWN0KAotICAgICAgICAgICAgICAgICBzZXJ2ZXJfZ3JvdXBfaWQ9MCwK LSAgICAgICAgICAgICAgICAgc2VydmVyX2lkPTEsCi0gICAgICAgICAgICAgICAgIGRhdGFiYXNl X2lkPTIsCi0gICAgICAgICAgICAgICAgIGV4dGVybmFsX3RhYmxlX2lkPTExCi0gICAgICAgICAg ICAgKSwKLQotICAgICAgICAgICAgIG1hbmFnZXI9TWFnaWNNb2NrKHNlcnZlcl90eXBlPSdncGRi Jywgc3ZlcnNpb249ODAzMjMpLAotICAgICAgICAgICAgIGNvbm5lY3Rpb249TWFnaWNNb2NrKGV4 ZWN1dGVfMmRhcnJheT1NYWdpY01vY2soKSksCi0gICAgICAgICAgICAgZXhlY3V0ZV8yZGFycmF5 X3JldHVybl92YWx1ZT0oRmFsc2UsICdTb21lIGVycm9yIG1lc3NhZ2UnKSwKLQotICAgICAgICAg ICAgIGV4cGVjdF9yZW5kZXJfdGVtcGxhdGVfY2FsbGVkX3dpdGg9ZGljdCgKLSAgICAgICAgICAg ICAgICAgdGVtcGxhdGVfbmFtZV9vcl9saXN0PW9zLnBhdGguam9pbigKLSAgICAgICAgICAgICAg ICAgICAgICdzcWwvI2dwZGIjODAzMjMjJywgJ25vZGUuc3FsJyksCi0gICAgICAgICAgICAgICAg IGV4dGVybmFsX3RhYmxlX2lkPTExCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICBleHBl Y3RlZF9pbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfY2FsbGVkX3dpdGg9ZGljdCgKLSAgICAgICAgICAg ICAgICAgZXJyb3Jtc2c9J1NvbWUgZXJyb3IgbWVzc2FnZScKLSAgICAgICAgICAgICApLAotICAg ICAgICAgKSksCi0gICAgICAgICgnI25vZGUgV2hlbiByZXRyaWV2aW5nIHRoZSBpbmZvcm1hdGlv biBhYm91dCAxIGV4dGVybmFsIHRhYmxlICcKLSAgICAgICAgICdhbmQgdGFibGUgZG9lcyBub3Qg ZXhpc3QsICcKLSAgICAgICAgICdpdCByZXR1cm4gYW4gZXJyb3IgbWVzc2FnZSAnCi0gICAgICAg ICAnYW5kIHN0YXR1cyA0MDQnLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5 cGU9J25vZGUnLAotICAgICAgICAgICAgIGZ1bmN0aW9uX3BhcmFtZXRlcnM9ZGljdCgKLSAgICAg ICAgICAgICAgICAgc2VydmVyX2dyb3VwX2lkPTAsCi0gICAgICAgICAgICAgICAgIHNlcnZlcl9p ZD0xLAotICAgICAgICAgICAgICAgICBkYXRhYmFzZV9pZD0yLAotICAgICAgICAgICAgICAgICBl eHRlcm5hbF90YWJsZV9pZD0xMQotICAgICAgICAgICAgICksCi0KLSAgICAgICAgICAgICBtYW5h Z2VyPU1hZ2ljTW9jayhzZXJ2ZXJfdHlwZT0nZ3BkYicsIHN2ZXJzaW9uPTgwMzIzKSwKLSAgICAg ICAgICAgICBjb25uZWN0aW9uPU1hZ2ljTW9jayhleGVjdXRlXzJkYXJyYXk9TWFnaWNNb2NrKCkp LAotICAgICAgICAgICAgIGV4ZWN1dGVfMmRhcnJheV9yZXR1cm5fdmFsdWU9KFRydWUsIGRpY3Qo cm93cz1bXSkpLAotCi0gICAgICAgICAgICAgZXhwZWN0X3JlbmRlcl90ZW1wbGF0ZV9jYWxsZWRf d2l0aD1kaWN0KAotICAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9uYW1lX29yX2xpc3Q9b3MucGF0 aC5qb2luKAotICAgICAgICAgICAgICAgICAgICAgJ3NxbC8jZ3BkYiM4MDMyMyMnLCAnbm9kZS5z cWwnKSwKLSAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfdGFibGVfaWQ9MTEKLSAgICAgICAgICAg ICApLAotICAgICAgICAgICAgIGV4cGVjdGVkX21ha2VfanNvbl9yZXNwb25zZV9jYWxsZWRfd2l0 aD1kaWN0KAotICAgICAgICAgICAgICAgICBkYXRhPSdDb3VsZCBub3QgZmluZCB0aGUgZXh0ZXJu YWwgdGFibGUuJywKLSAgICAgICAgICAgICAgICAgc3RhdHVzPTQwNAotICAgICAgICAgICAgICks Ci0gICAgICAgICApKSwKLSAgICAgICAgKCcjbm9kZXMgV2hlbiByZXRyaWV2aW5nIHRoZSBpbmZv cm1hdGlvbiBhYm91dCAxIGV4dGVybmFsIHRhYmxlICcKLSAgICAgICAgICdhbmQgdGhlIHRhYmxl IGV4aXN0cywgJwotICAgICAgICAgJ2l0IHJldHVybiBleHRlcm5hbCBub2RlIGluZm9ybWF0aW9u ICcKLSAgICAgICAgICdhbmQgc3RhdHVzIDIwMCcsCi0gICAgICAgICBkaWN0KAotICAgICAgICAg ICAgIHRlc3RfdHlwZT0nbm9kZScsCi0gICAgICAgICAgICAgZnVuY3Rpb25fcGFyYW1ldGVycz1k aWN0KAotICAgICAgICAgICAgICAgICBzZXJ2ZXJfZ3JvdXBfaWQ9MCwKLSAgICAgICAgICAgICAg ICAgc2VydmVyX2lkPTEsCi0gICAgICAgICAgICAgICAgIGRhdGFiYXNlX2lkPTIsCi0gICAgICAg ICAgICAgICAgIGV4dGVybmFsX3RhYmxlX2lkPTExCi0gICAgICAgICAgICAgKSwKLQotICAgICAg ICAgICAgIG1hbmFnZXI9TWFnaWNNb2NrKHNlcnZlcl90eXBlPSdncGRiJywgc3ZlcnNpb249ODAz MjMpLAotICAgICAgICAgICAgIGNvbm5lY3Rpb249TWFnaWNNb2NrKGV4ZWN1dGVfMmRhcnJheT1N YWdpY01vY2soKSksCi0gICAgICAgICAgICAgZXhlY3V0ZV8yZGFycmF5X3JldHVybl92YWx1ZT0o VHJ1ZSwgZGljdCgKLSAgICAgICAgICAgICAgICAgcm93cz1bCi0gICAgICAgICAgICAgICAgICAg ICBkaWN0KAotICAgICAgICAgICAgICAgICAgICAgICAgIG9pZD0nb2lkMScsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgbmFtZT0ndGFibGVfb25lJwotICAgICAgICAgICAgICAgICAgICAgKSwK LSAgICAgICAgICAgICAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgb2lk PSdvaWQyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSd0YWJsZV90d28nCi0gICAg ICAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgKSks Ci0KLSAgICAgICAgICAgICBleHBlY3RfcmVuZGVyX3RlbXBsYXRlX2NhbGxlZF93aXRoPWRpY3Qo Ci0gICAgICAgICAgICAgICAgIHRlbXBsYXRlX25hbWVfb3JfbGlzdD1vcy5wYXRoLmpvaW4oCi0g ICAgICAgICAgICAgICAgICAgICAnc3FsLyNncGRiIzgwMzIzIycsICdub2RlLnNxbCcpLAotICAg ICAgICAgICAgICAgICBleHRlcm5hbF90YWJsZV9pZD0xMQotICAgICAgICAgICAgICksCi0gICAg ICAgICAgICAgZXhwZWN0ZWRfbWFrZV9qc29uX3Jlc3BvbnNlX2NhbGxlZF93aXRoPWRpY3QoCi0g ICAgICAgICAgICAgICAgIGRhdGE9ewotICAgICAgICAgICAgICAgICAgICAgJ2lkJzogImV4dGVy bmFsX3RhYmxlL29pZDEiLAotICAgICAgICAgICAgICAgICAgICAgJ2xhYmVsJzogJ3RhYmxlX29u ZScsCi0gICAgICAgICAgICAgICAgICAgICAnaWNvbic6ICdpY29uLWV4dGVybmFsX3RhYmxlJywK LSAgICAgICAgICAgICAgICAgICAgICdpbm9kZSc6IEZhbHNlLAotICAgICAgICAgICAgICAgICAg ICAgJ190eXBlJzogJ2V4dGVybmFsX3RhYmxlJywKLSAgICAgICAgICAgICAgICAgICAgICdfaWQn OiAnb2lkMScsCi0gICAgICAgICAgICAgICAgICAgICAnX3BpZCc6IDIsCi0gICAgICAgICAgICAg ICAgICAgICAnbW9kdWxlJzogJ3BnYWRtaW4ubm9kZS5leHRlcm5hbF90YWJsZScKLSAgICAgICAg ICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAotICAgICAgICAgICAgICks Ci0gICAgICAgICApKSwKLSAgICAgICAgKCcjcHJvcGVydGllcyBXaGVuIHJldHJpZXZpbmcgdGhl IHByb3BlcnRpZXMgb2YgYSBleHRlcm5hbCB0YWJsZSAnCi0gICAgICAgICAnYW5kIHRoZSB0YWJs ZSBleGlzdHMsICcKLSAgICAgICAgICdpdCByZXR1cm4gdGhlIHByb3BlcnRpZXMgJwotICAgICAg ICAgJ2FuZCBzdGF0dXMgMjAwJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgdGVzdF90 eXBlPSdwcm9wZXJ0aWVzJywKLSAgICAgICAgICAgICBmdW5jdGlvbl9wYXJhbWV0ZXJzPWRpY3Qo Ci0gICAgICAgICAgICAgICAgIHNlcnZlcl9ncm91cF9pZD0wLAotICAgICAgICAgICAgICAgICBz ZXJ2ZXJfaWQ9MSwKLSAgICAgICAgICAgICAgICAgZGF0YWJhc2VfaWQ9MiwKLSAgICAgICAgICAg ICAgICAgZXh0ZXJuYWxfdGFibGVfaWQ9MTEKLSAgICAgICAgICAgICApLAotCi0gICAgICAgICAg ICAgbWFuYWdlcj1NYWdpY01vY2soc2VydmVyX3R5cGU9J2dwZGInLCBzdmVyc2lvbj04MDMyMyks Ci0gICAgICAgICAgICAgY29ubmVjdGlvbj1NYWdpY01vY2soZXhlY3V0ZV8yZGFycmF5PU1hZ2lj TW9jaygpKSwKLSAgICAgICAgICAgICBleGVjdXRlXzJkYXJyYXlfcmV0dXJuX3ZhbHVlPShUcnVl LCBkaWN0KAotICAgICAgICAgICAgICAgICByb3dzPVtkaWN0KAotICAgICAgICAgICAgICAgICAg ICAgdXJpbG9jYXRpb249J3todHRwOi8vc29tZXVybC5jb219JywKLSAgICAgICAgICAgICAgICAg ICAgIGV4ZWNsb2NhdGlvbj1bJ0FMTF9TRUdNRU5UUyddLAotICAgICAgICAgICAgICAgICAgICAg Zm10dHlwZT0nYScsCi0gICAgICAgICAgICAgICAgICAgICBmbXRvcHRzPSdkZWxpbWl0ZXIgXCcs XCcgbnVsbCBcJ1wnICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VzY2FwZSBcJyJc JyBxdW90ZSBcJyJcJycsCi0gICAgICAgICAgICAgICAgICAgICBjb21tYW5kPU5vbmUsCi0gICAg ICAgICAgICAgICAgICAgICByZWplY3RsaW1pdD1Ob25lLAotICAgICAgICAgICAgICAgICAgICAg cmVqZWN0bGltaXR0eXBlPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICBlcnJ0YmxuYW1lPU5v bmUsCi0gICAgICAgICAgICAgICAgICAgICBlcnJvcnRvZmlsZT1Ob25lLAotICAgICAgICAgICAg ICAgICAgICAgcGdfZW5jb2RpbmdfdG9fY2hhcj0nVVRGOCcsCi0gICAgICAgICAgICAgICAgICAg ICB3cml0YWJsZT1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM9Tm9uZSwKLSAg ICAgICAgICAgICAgICAgICAgIGRpc3RyaWJ1dGlvbj1Ob25lLAotICAgICAgICAgICAgICAgICAg ICAgbmFtZT0nc29tZV90YWJsZScsCi0gICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2U9J3B1 YmxpYycKLSAgICAgICAgICAgICAgICAgKV0KLSAgICAgICAgICAgICApKSwKLQotICAgICAgICAg ICAgIGV4cGVjdF9yZW5kZXJfdGVtcGxhdGVfY2FsbGVkX3dpdGg9ZGljdCgKLSAgICAgICAgICAg ICAgICAgdGVtcGxhdGVfbmFtZV9vcl9saXN0PW9zLnBhdGguam9pbigKLSAgICAgICAgICAgICAg ICAgICAgICdzcWwvI2dwZGIjODAzMjMjJywgJ2dldF90YWJsZV9pbmZvcm1hdGlvbi5zcWwnKSwK LSAgICAgICAgICAgICAgICAgdGFibGVfb2lkPTExCi0gICAgICAgICAgICAgKSwKLSAgICAgICAg ICAgICBleHBlY3RlZF9tYWtlX3Jlc3BvbnNlX2NhbGxlZF93aXRoPWRpY3QoCi0gICAgICAgICAg ICAgICAgIHJlc3BvbnNlPWRpY3QoCi0gICAgICAgICAgICAgICAgICAgICBuYW1lPSJzb21lX3Rh YmxlIiwKLSAgICAgICAgICAgICAgICAgICAgIHR5cGU9J3JlYWRhYmxlJywKLSAgICAgICAgICAg ICAgICAgICAgIGZvcm1hdF90eXBlPSdVVEY4JywKLSAgICAgICAgICAgICAgICAgICAgIGZvcm1h dF9vcHRpb25zPSdkZWxpbWl0ZXIgXCcsXCcgbnVsbCBcJ1wnICcKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICdlc2NhcGUgXCciXCcgcXVvdGUgXCciXCcnLAotICAgICAgICAg ICAgICAgICAgICAgZXh0ZXJuYWxfb3B0aW9ucz1Ob25lLAotICAgICAgICAgICAgICAgICAgICAg Y29tbWFuZD1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgZXhlY3V0ZV9vbj0nYWxsIHNlZ21l bnRzJywKLSAgICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAot ICAgICAgICAgICAgICksCi0gICAgICAgICApKSwKLSAgICBdCi0KICAgICBAcGF0Y2goJ3BnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVybmFsX3RhYmxl cycKICAgICAgICAgICAgJy5nZXRfZHJpdmVyJykKLSAgICBkZWYgcnVuVGVzdChzZWxmLCBnZXRf ZHJpdmVyX21vY2spOgotICAgICAgICBzZWxmLl9fYmVmb3JlX2FsbChnZXRfZHJpdmVyX21vY2sp Ci0KLSAgICAgICAgaWYgc2VsZi50ZXN0X3R5cGUgPT0gJ2NoZWNrLXByZWNvbmRpdGlvbic6Ci0g ICAgICAgICAgICBzZWxmLl9fdGVzdF9iYWNrZW5kX3N1cHBvcnQoKQotICAgICAgICBlbGlmIHNl bGYudGVzdF90eXBlID09ICdub2Rlcyc6Ci0gICAgICAgICAgICBzZWxmLl9fdGVzdF9ub2Rlcygp Ci0gICAgICAgIGVsaWYgc2VsZi50ZXN0X3R5cGUgPT0gJ25vZGUnOgotICAgICAgICAgICAgc2Vs Zi5fX3Rlc3Rfbm9kZSgpCi0gICAgICAgIGVsaWYgc2VsZi50ZXN0X3R5cGUgPT0gJ2NoaWxkcmVu JzoKLSAgICAgICAgICAgIHNlbGYuX190ZXN0X2NoaWxkcmVuKCkKLSAgICAgICAgZWxpZiBzZWxm LnRlc3RfdHlwZSA9PSAncHJvcGVydGllcyc6Ci0gICAgICAgICAgICBzZWxmLl9fdGVzdF9wcm9w ZXJ0aWVzKCkKKyAgICBAcGF0Y2goJ3BnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLmV4dGVybmFsX3RhYmxlcycKKyAgICAgICAgICAgJy5yZW5kZXJfdGVtcGxh dGUnKQorICAgIGRlZiB0ZXN0X3ByZWNvbmRpdGlvbihzZWxmLCBfLCBnZXRfZHJpdmVyX21vY2sp OgorICAgICAgICAiIiJXaGVuIGFuIEhUVFAgcmVxdWVzdCBpcyBtYWRlCisgICAgICAgIGl0IHN0 b3JlcyB0aGUgbWFuYWdlciBhbmQgY29ubmVjdGlvbiBpbiB0aGUgY2xhc3Mgb2JqZWN0IiIiCisg ICAgICAgIG1hbmFnZXIgPSBNYWdpY01vY2soKQorICAgICAgICByZXR1cm5fdmFsdWUgPSBNYWdp Y01vY2soZXhlY3V0ZV8yZGFycmF5PU1hZ2ljTW9jaygKKyAgICAgICAgICAgIHJldHVybl92YWx1 ZT0oVHJ1ZSwgZGljdChyb3dzPVtdKSkpCisgICAgICAgICkKKyAgICAgICAgbWFuYWdlci5jb25u ZWN0aW9uID0gTWFnaWNNb2NrKHJldHVybl92YWx1ZT1yZXR1cm5fdmFsdWUpCisKKyAgICAgICAg Z2V0X2RyaXZlcl9tb2NrLnJldHVybl92YWx1ZSA9IE1hZ2ljTW9jaygKKyAgICAgICAgICAgIGNv bm5lY3Rpb25fbWFuYWdlcj1NYWdpY01vY2socmV0dXJuX3ZhbHVlPW1hbmFnZXIpCisgICAgICAg ICkKKworICAgICAgICBleHRlcm5hbF90YWJsZXNfdmlldyA9IEV4dGVybmFsVGFibGVzVmlldyhj bWQ9JycpCisgICAgICAgIGV4dGVybmFsX3RhYmxlc192aWV3Lm5vZGVzKHNlcnZlcl9ncm91cF9p ZD0wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQ9MSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YWJhc2VfaWQ9MikKKworICAgICAg ICBtYW5hZ2VyLmNvbm5lY3Rpb24uYXNzZXJ0X2NhbGxlZF93aXRoKGRpZD0yKQorICAgICAgICBt YW5hZ2VyIHwgc2hvdWxkLmJlLmVxdWFsLnRvKGV4dGVybmFsX3RhYmxlc192aWV3Lm1hbmFnZXIp CisgICAgICAgIG1hbmFnZXIuY29ubmVjdGlvbiB8IHNob3VsZC5iZS5lcXVhbCBcCisgICAgICAg ICAgICAudG8oZXh0ZXJuYWxfdGFibGVzX3ZpZXcuY29ubmVjdGlvbikKIAogICAgIEBwYXRjaCgn cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0ZXJuYWxf dGFibGVzJwogICAgICAgICAgICAnLm1ha2VfanNvbl9yZXNwb25zZScpCi0gICAgZGVmIF9fdGVz dF9jaGlsZHJlbihzZWxmLCBtYWtlX2pzb25fcmVzcG9uc2VfbW9jayk6Ci0gICAgICAgIHNlbGYu bWFuYWdlci5jb25uZWN0aW9uID0gTWFnaWNNb2NrKHJldHVybl92YWx1ZT1zZWxmLmNvbm5lY3Rp b24pCisgICAgZGVmIHRlc3RfY2hpbGRyZW4oc2VsZiwgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2sp OgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiByZXRyaWV2aW5nIHRoZSB0cmVlIG5vZGUgdW5k ZXJuZWF0aCBleHRlcm5hbCB0YWJsZXMKKyAgICAgICAgSXQgcmV0dXJucyBlbXB0eSBjaGlsZHJl biBsaXN0IGFuZCBzdGF0dXMgb2YgMjAwCisgICAgICAgICIiIgorICAgICAgICBtYW5hZ2VyID0g TWFnaWNNb2NrKHNlcnZlcl90eXBlPSdncGRiJywgc3ZlcnNpb249ODAzMjMpCisgICAgICAgIHJl dHVybl92YWx1ZSA9IE1hZ2ljTW9jayhleGVjdXRlXzJkYXJyYXk9TWFnaWNNb2NrKAorICAgICAg ICAgICAgcmV0dXJuX3ZhbHVlPShUcnVlLCBkaWN0KHJvd3M9W10pKSkKKyAgICAgICAgKQorICAg ICAgICBtYW5hZ2VyLmNvbm5lY3Rpb24gPSBNYWdpY01vY2socmV0dXJuX3ZhbHVlPXJldHVybl92 YWx1ZSkKKwogICAgICAgICBleHRlcm5hbF90YWJsZXNfdmlldyA9IEV4dGVybmFsVGFibGVzVmll dyhjbWQ9JycpCi0gICAgICAgIGV4dGVybmFsX3RhYmxlc192aWV3LmNoaWxkcmVuKCoqc2VsZi5m dW5jdGlvbl9wYXJhbWV0ZXJzKQorICAgICAgICBleHRlcm5hbF90YWJsZXNfdmlldy5jaGlsZHJl bihzZXJ2ZXJfZ3JvdXBfaWQ9MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VydmVyX2lkPTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh dGFiYXNlX2lkPTIpCiAgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLmFzc2VydF9jYWxs ZWRfd2l0aCgKLSAgICAgICAgICAgICoqc2VsZi5leHBlY3RlZF9tYWtlX2pzb25fcmVzcG9uc2Vf Y2FsbGVkX3dpdGgKKyAgICAgICAgICAgIGRhdGE9W10KICAgICAgICAgKQogCisgICAgQHBhdGNo KCdwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlcm5h bF90YWJsZXMnCisgICAgICAgICAgICcuZ2V0X2RyaXZlcicpCisgICAgQHBhdGNoKCdwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlcm5hbF90YWJsZXMn CisgICAgICAgICAgICcubWFrZV9qc29uX3Jlc3BvbnNlJykKICAgICBAcGF0Y2goJ3BnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVybmFsX3RhYmxlcycK ICAgICAgICAgICAgJy5yZW5kZXJfdGVtcGxhdGUnKQotICAgIGRlZiBfX3Rlc3RfYmFja2VuZF9z dXBwb3J0KHNlbGYsIF8pOgotICAgICAgICBzZWxmLm1hbmFnZXIuY29ubmVjdGlvbiA9IE1hZ2lj TW9jayhyZXR1cm5fdmFsdWU9c2VsZi5jb25uZWN0aW9uKQorICAgIGRlZiB0ZXN0X25vZGVzX3dp dGhvdXRfY2hpbGRyZW4oc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJlbmRlcl90ZW1wbGF0ZV9tb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBnZXRfZHJpdmVyX21vY2spOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiByZXRy aWV2aW5nIHRoZSB0cmVlIG5vZGVzCisgICAgICAgIEFuZCB0aGUgZGF0YWJhc2UgaGFzIG5vIGV4 dGVybmFsIHRhYmxlcworICAgICAgICBJdCByZXR1cm5zIGVtcHR5IHRyZWUgbm9kZSBsaXN0IGFu ZCBzdGF0dXMgb2YgMjAwCisgICAgICAgICIiIgorICAgICAgICBtYW5hZ2VyID0gTWFnaWNNb2Nr KHNlcnZlcl90eXBlPSdncGRiJywgc3ZlcnNpb249ODAzMjMpCisgICAgICAgIHJldHVybl92YWx1 ZSA9IE1hZ2ljTW9jayhleGVjdXRlXzJkYXJyYXk9TWFnaWNNb2NrKAorICAgICAgICAgICAgcmV0 dXJuX3ZhbHVlPShUcnVlLCBkaWN0KHJvd3M9W10pKSkKKyAgICAgICAgKQorICAgICAgICBtYW5h Z2VyLmNvbm5lY3Rpb24gPSBNYWdpY01vY2socmV0dXJuX3ZhbHVlPXJldHVybl92YWx1ZSkKKwor ICAgICAgICBnZXRfZHJpdmVyX21vY2sucmV0dXJuX3ZhbHVlID0gTWFnaWNNb2NrKAorICAgICAg ICAgICAgY29ubmVjdGlvbl9tYW5hZ2VyPU1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9bWFuYWdlcikK KyAgICAgICAgKQorCiAgICAgICAgIGV4dGVybmFsX3RhYmxlc192aWV3ID0gRXh0ZXJuYWxUYWJs ZXNWaWV3KGNtZD0nJykKLSAgICAgICAgZXh0ZXJuYWxfdGFibGVzX3ZpZXcubm9kZXMoKipzZWxm LmZ1bmN0aW9uX3BhcmFtZXRlcnMpCi0gICAgICAgIHNlbGYubWFuYWdlci5jb25uZWN0aW9uLmFz c2VydF9jYWxsZWRfd2l0aCgKLSAgICAgICAgICAgICoqc2VsZi5leHBlY3RlZF9tYW5hZ2VyX2Nv bm5lY3Rpb25fdG9fYmVfY2FsbGVkX3dpdGgKKyAgICAgICAgZXh0ZXJuYWxfdGFibGVzX3ZpZXcu bm9kZXMoc2VydmVyX2dyb3VwX2lkPTAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlcnZlcl9pZD0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRh YmFzZV9pZD0yKQorCisgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLmFzc2VydF9jYWxs ZWRfd2l0aChkYXRhPVtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RhdHVzPTIwMCkKKyAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2suYXNz ZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgJ3NxbC8jZ3BkYiM4MDMyMyMvbGlzdC5zcWwn CiAgICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5tYW5hZ2VyLCBleHRl cm5hbF90YWJsZXNfdmlldy5tYW5hZ2VyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxm LmNvbm5lY3Rpb24sIGV4dGVybmFsX3RhYmxlc192aWV3LmNvbm5lY3Rpb24pCiAKKyAgICBAcGF0 Y2goJ3BnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVy bmFsX3RhYmxlcycKKyAgICAgICAgICAgJy5nZXRfZHJpdmVyJykKKyAgICBAcGF0Y2goJ3BnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVybmFsX3RhYmxl cycKKyAgICAgICAgICAgJy5pbnRlcm5hbF9zZXJ2ZXJfZXJyb3InKQogICAgIEBwYXRjaCgncGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0ZXJuYWxfdGFi bGVzJwogICAgICAgICAgICAnLnJlbmRlcl90ZW1wbGF0ZScpCisgICAgZGVmIHRlc3RfZXJyb3Jf cmV0cmlldmluZ19ub2RlcyhzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmVuZGVyX3RlbXBsYXRlX21vY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jaywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdldF9kcml2ZXJfbW9jayk6CisgICAgICAgICIiIgorICAgICAgICBXaGVu IHJldHJpZXZpbmcgdGhlIHRyZWUgbm9kZXMKKyAgICAgICAgQW5kIHRoZSBkYXRhYmFzZSBoYXMg bm8gZXh0ZXJuYWwgdGFibGVzCisgICAgICAgIEl0IHJldHVybnMgZW1wdHkgdHJlZSBub2RlIGxp c3QgYW5kIHN0YXR1cyBvZiAyMDAKKyAgICAgICAgIiIiCisgICAgICAgIG1hbmFnZXIgPSBNYWdp Y01vY2soc2VydmVyX3R5cGU9J2dwZGInLCBzdmVyc2lvbj04MDMyMykKKyAgICAgICAgcmV0dXJu X3ZhbHVlID0gTWFnaWNNb2NrKGV4ZWN1dGVfMmRhcnJheT1NYWdpY01vY2soCisgICAgICAgICAg ICByZXR1cm5fdmFsdWU9KEZhbHNlLCAnU29tZSBlcnJvciBtZXNzYWdlJykKKyAgICAgICAgKSkK KyAgICAgICAgbWFuYWdlci5jb25uZWN0aW9uID0gTWFnaWNNb2NrKHJldHVybl92YWx1ZT1yZXR1 cm5fdmFsdWUpCisKKyAgICAgICAgZ2V0X2RyaXZlcl9tb2NrLnJldHVybl92YWx1ZSA9IE1hZ2lj TW9jaygKKyAgICAgICAgICAgIGNvbm5lY3Rpb25fbWFuYWdlcj1NYWdpY01vY2socmV0dXJuX3Zh bHVlPW1hbmFnZXIpCisgICAgICAgICkKKworICAgICAgICBleHRlcm5hbF90YWJsZXNfdmlldyA9 IEV4dGVybmFsVGFibGVzVmlldyhjbWQ9JycpCisgICAgICAgIGV4dGVybmFsX3RhYmxlc192aWV3 Lm5vZGVzKHNlcnZlcl9ncm91cF9pZD0wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZXJ2ZXJfaWQ9MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YWJhc2VfaWQ9MikKKworICAgICAgICBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jay5hc3NlcnRf Y2FsbGVkX3dpdGgoCisgICAgICAgICAgICBlcnJvcm1zZz0nU29tZSBlcnJvciBtZXNzYWdlJwor ICAgICAgICApCisgICAgICAgIHJlbmRlcl90ZW1wbGF0ZV9tb2NrLmFzc2VydF9jYWxsZWRfd2l0 aCgKKyAgICAgICAgICAgICdzcWwvI2dwZGIjODAzMjMjL2xpc3Quc3FsJworICAgICAgICApCisK KyAgICBAcGF0Y2goJ3BnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJh c2VzLmV4dGVybmFsX3RhYmxlcycKKyAgICAgICAgICAgJy5nZXRfZHJpdmVyJykKICAgICBAcGF0 Y2goJ3BnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVy bmFsX3RhYmxlcycKICAgICAgICAgICAgJy5tYWtlX2pzb25fcmVzcG9uc2UnKQogICAgIEBwYXRj aCgncGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0ZXJu YWxfdGFibGVzJwotICAgICAgICAgICAnLmludGVybmFsX3NlcnZlcl9lcnJvcicpCi0gICAgZGVm IF9fdGVzdF9ub2RlcyhzZWxmLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jaywKLSAgICAgICAg ICAgICAgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLCByZW5kZXJfdGVtcGxhdGVfbW9j ayk6CisgICAgICAgICAgICcucmVuZGVyX3RlbXBsYXRlJykKKyAgICBkZWYgdGVzdF9ub2Rlc193 aXRoXzJfZXh0ZXJuYWxfdGFibGVzKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jaywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2RyaXZlcl9tb2NrKToKKyAgICAg ICAgIiIiCisgICAgICAgIFdoZW4gcmV0cmlldmluZyB0aGUgdHJlZSBub2RlcworICAgICAgICBB bmQgdGhlIGRhdGFiYXNlIGhhcyAyIGV4dGVybmFsIHRhYmxlcworICAgICAgICBJdCByZXR1cm5z IHRyZWUgbm9kZSBsaXN0IHdpdGggMiBjaGlsZCBub2RlcworICAgICAgICBhbmQgc3RhdHVzIG9m IDIwMAorICAgICAgICAiIiIKKyAgICAgICAgbWFuYWdlciA9IE1hZ2ljTW9jayhzZXJ2ZXJfdHlw ZT0nZ3BkYicsIHN2ZXJzaW9uPTgwMzIzKQorICAgICAgICByZXR1cm5fdmFsdWUgPSBNYWdpY01v Y2soZXhlY3V0ZV8yZGFycmF5PU1hZ2ljTW9jaygKKyAgICAgICAgICAgIHJldHVybl92YWx1ZT0o VHJ1ZSwgZGljdCgKKyAgICAgICAgICAgICAgICByb3dzPVsKKyAgICAgICAgICAgICAgICAgICAg ZGljdCgKKyAgICAgICAgICAgICAgICAgICAgICAgIG9pZD0nb2lkMScsCisgICAgICAgICAgICAg ICAgICAgICAgICBuYW1lPSd0YWJsZV9vbmUnCisgICAgICAgICAgICAgICAgICAgICksCisgICAg ICAgICAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgICAgICAgICAgICBvaWQ9J29pZDIn LAorICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0ndGFibGVfdHdvJworICAgICAgICAgICAg ICAgICAgICApLAorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICkpKQorICAgICAgICAp CisgICAgICAgIG1hbmFnZXIuY29ubmVjdGlvbiA9IE1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9cmV0 dXJuX3ZhbHVlKQorCisgICAgICAgIGdldF9kcml2ZXJfbW9jay5yZXR1cm5fdmFsdWUgPSBNYWdp Y01vY2soCisgICAgICAgICAgICBjb25uZWN0aW9uX21hbmFnZXI9TWFnaWNNb2NrKHJldHVybl92 YWx1ZT1tYW5hZ2VyKQorICAgICAgICApCisKICAgICAgICAgZXh0ZXJuYWxfdGFibGVzX3ZpZXcg PSBFeHRlcm5hbFRhYmxlc1ZpZXcoY21kPScnKQotICAgICAgICBleHRlcm5hbF90YWJsZXNfdmll dy5ub2RlcygqKnNlbGYuZnVuY3Rpb25fcGFyYW1ldGVycykKLSAgICAgICAgaWYgaGFzYXR0cihz ZWxmLCAnZXhwZWN0ZWRfaW50ZXJuYWxfc2VydmVyX2Vycm9yX2NhbGxlZF93aXRoJyk6Ci0gICAg ICAgICAgICBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCi0g ICAgICAgICAgICAgICAgKipzZWxmLmV4cGVjdGVkX2ludGVybmFsX3NlcnZlcl9lcnJvcl9jYWxs ZWRfd2l0aAotICAgICAgICAgICAgKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaW50ZXJu YWxfc2VydmVyX2Vycm9yX21vY2suYXNzZXJ0X25vdF9jYWxsZWQoKQotICAgICAgICBpZiBoYXNh dHRyKHNlbGYsICdleHBlY3RlZF9tYWtlX2pzb25fcmVzcG9uc2VfY2FsbGVkX3dpdGgnKToKLSAg ICAgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgKLSAg ICAgICAgICAgICAgICAqKnNlbGYuZXhwZWN0ZWRfbWFrZV9qc29uX3Jlc3BvbnNlX2NhbGxlZF93 aXRoCi0gICAgICAgICAgICApCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBtYWtlX2pzb25f cmVzcG9uc2VfbW9jay5hc3NlcnRfbm90X2NhbGxlZCgpCisgICAgICAgIGV4dGVybmFsX3RhYmxl c192aWV3Lm5vZGVzKHNlcnZlcl9ncm91cF9pZD0wLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZXJ2ZXJfaWQ9MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGF0YWJhc2VfaWQ9MikKKworICAgICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jay5hc3Nl cnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICBkYXRhPVsKKyAgICAgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgICAgICAgICdpZCc6ICJleHRlcm5hbF90YWJsZS9vaWQxIiwKKyAgICAgICAg ICAgICAgICAgICAgJ2xhYmVsJzogJ3RhYmxlX29uZScsCisgICAgICAgICAgICAgICAgICAgICdp Y29uJzogJ2ljb24tZXh0ZXJuYWxfdGFibGUnLAorICAgICAgICAgICAgICAgICAgICAnaW5vZGUn OiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgJ190eXBlJzogJ2V4dGVybmFsX3RhYmxlJywK KyAgICAgICAgICAgICAgICAgICAgJ19pZCc6ICdvaWQxJywKKyAgICAgICAgICAgICAgICAgICAg J19waWQnOiAyLAorICAgICAgICAgICAgICAgICAgICAnbW9kdWxlJzogJ3BnYWRtaW4ubm9kZS5l eHRlcm5hbF90YWJsZScKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgICAgICAgJ2lkJzogImV4dGVybmFsX3RhYmxlL29pZDIiLAorICAgICAgICAg ICAgICAgICAgICAnbGFiZWwnOiAndGFibGVfdHdvJywKKyAgICAgICAgICAgICAgICAgICAgJ2lj b24nOiAnaWNvbi1leHRlcm5hbF90YWJsZScsCisgICAgICAgICAgICAgICAgICAgICdpbm9kZSc6 IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAnX3R5cGUnOiAnZXh0ZXJuYWxfdGFibGUnLAor ICAgICAgICAgICAgICAgICAgICAnX2lkJzogJ29pZDInLAorICAgICAgICAgICAgICAgICAgICAn X3BpZCc6IDIsCisgICAgICAgICAgICAgICAgICAgICdtb2R1bGUnOiAncGdhZG1pbi5ub2RlLmV4 dGVybmFsX3RhYmxlJworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sIHN0YXR1cz0y MDApCiAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZV9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgKLSAg ICAgICAgICAgIHNlbGYuZXhwZWN0X3JlbmRlcl90ZW1wbGF0ZV9jYWxsZWRfd2l0aAorICAgICAg ICAgICAgJ3NxbC8jZ3BkYiM4MDMyMyMvbGlzdC5zcWwnCiAgICAgICAgICkKIAorICAgIEBwYXRj aCgncGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0ZXJu YWxfdGFibGVzJworICAgICAgICAgICAnLmdldF9kcml2ZXInKQorICAgIEBwYXRjaCgncGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0ZXJuYWxfdGFibGVz JworICAgICAgICAgICAnLmludGVybmFsX3NlcnZlcl9lcnJvcicpCiAgICAgQHBhdGNoKCdwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlcm5hbF90YWJs ZXMnCiAgICAgICAgICAgICcucmVuZGVyX3RlbXBsYXRlJykKKyAgICBkZWYgdGVzdF9lcnJvcl9y ZXRyaWV2aW5nX25vZGVfd2l0aF8xX2V4dGVybmFsX3RhYmxlKAorICAgICAgICBzZWxmLAorICAg ICAgICByZW5kZXJfdGVtcGxhdGVfbW9jaywKKyAgICAgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9y X21vY2ssCisgICAgICAgIGdldF9kcml2ZXJfbW9jaworICAgICk6CisgICAgICAgICIiIgorICAg ICAgICBXaGVuIHJldHJpZXZpbmcgdGhlIHRyZWUgbm9kZXMKKyAgICAgICAgQW5kIHRoZSBkYXRh YmFzZSBoYXMgMSBleHRlcm5hbCB0YWJsZXMKKyAgICAgICAgQW5kIGl0IGVycm9ycyBleGVjdXRp bmcgdGhlIHF1ZXJ5CisgICAgICAgIEl0IHJldHVybnMgYW4gaW50ZXJuYWwgc2VydmVyIGVycm9y CisgICAgICAgICIiIgorICAgICAgICBtYW5hZ2VyID0gTWFnaWNNb2NrKHNlcnZlcl90eXBlPSdn cGRiJywgc3ZlcnNpb249ODAzMjMpCisgICAgICAgIHJldHVybl92YWx1ZSA9IE1hZ2ljTW9jayhl eGVjdXRlXzJkYXJyYXk9TWFnaWNNb2NrKAorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPShGYWxz ZSwgJ1NvbWUgZXJyb3IgbWVzc2FnZScpCisgICAgICAgICkpCisgICAgICAgIG1hbmFnZXIuY29u bmVjdGlvbiA9IE1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9cmV0dXJuX3ZhbHVlKQorCisgICAgICAg IGdldF9kcml2ZXJfbW9jay5yZXR1cm5fdmFsdWUgPSBNYWdpY01vY2soCisgICAgICAgICAgICBj b25uZWN0aW9uX21hbmFnZXI9TWFnaWNNb2NrKHJldHVybl92YWx1ZT1tYW5hZ2VyKQorICAgICAg ICApCisKKyAgICAgICAgZXh0ZXJuYWxfdGFibGVzX3ZpZXcgPSBFeHRlcm5hbFRhYmxlc1ZpZXco Y21kPScnKQorICAgICAgICBleHRlcm5hbF90YWJsZXNfdmlldy5ub2RlKHNlcnZlcl9ncm91cF9p ZD0wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZD0xLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNlX2lkPTIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfdGFibGVfaWQ9MTEpCisKKyAgICAgICAg aW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAg ICAgZXJyb3Jtc2c9J1NvbWUgZXJyb3IgbWVzc2FnZScKKyAgICAgICAgKQorICAgICAgICByZW5k ZXJfdGVtcGxhdGVfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICB0ZW1wbGF0 ZV9uYW1lX29yX2xpc3Q9J3NxbC8jZ3BkYiM4MDMyMyMvbm9kZS5zcWwnLAorICAgICAgICAgICAg ZXh0ZXJuYWxfdGFibGVfaWQ9MTEKKyAgICAgICAgKQorCisgICAgQHBhdGNoKCdwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlcm5hbF90YWJsZXMnCisg ICAgICAgICAgICcuZ2V0X2RyaXZlcicpCiAgICAgQHBhdGNoKCdwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlcm5hbF90YWJsZXMnCiAgICAgICAgICAg ICcubWFrZV9qc29uX3Jlc3BvbnNlJykKICAgICBAcGF0Y2goJ3BnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVybmFsX3RhYmxlcycKLSAgICAgICAgICAg Jy5pbnRlcm5hbF9zZXJ2ZXJfZXJyb3InKQotICAgIGRlZiBfX3Rlc3Rfbm9kZShzZWxmLCBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3JfbW9jaywKLSAgICAgICAgICAgICAgICAgICAgbWFrZV9qc29uX3Jl c3BvbnNlX21vY2ssIHJlbmRlcl90ZW1wbGF0ZV9tb2NrKToKKyAgICAgICAgICAgJy5yZW5kZXJf dGVtcGxhdGUnKQorICAgIGRlZiB0ZXN0X2Vycm9yX3JldHJpZXZpbmdfbm9uZXhpc3RlbnRfbm9k ZV93aXRoXzFfZXh0ZXJuYWxfdGFibGUoCisgICAgICAgIHNlbGYsCisgICAgICAgIHJlbmRlcl90 ZW1wbGF0ZV9tb2NrLAorICAgICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jaywKKyAgICAgICAg Z2V0X2RyaXZlcl9tb2NrCisgICAgKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gcmV0cmll dmluZyB0aGUgdHJlZSBub2RlcworICAgICAgICBBbmQgdGhlIGRhdGFiYXNlIGhhcyAxIGV4dGVy bmFsIHRhYmxlcworICAgICAgICBBbmQgaXQgZXJyb3JzIGV4ZWN1dGluZyB0aGUgcXVlcnkKKyAg ICAgICAgSXQgcmV0dXJucyBhIDQwNCBlcnJvcgorICAgICAgICAiIiIKKyAgICAgICAgbWFuYWdl ciA9IE1hZ2ljTW9jayhzZXJ2ZXJfdHlwZT0nZ3BkYicsIHN2ZXJzaW9uPTgwMzIzKQorICAgICAg ICByZXR1cm5fdmFsdWUgPSBNYWdpY01vY2soZXhlY3V0ZV8yZGFycmF5PU1hZ2ljTW9jaygKKyAg ICAgICAgICAgIHJldHVybl92YWx1ZT0oVHJ1ZSwgZGljdChyb3dzPVtdKSkKKyAgICAgICAgKSkK KyAgICAgICAgbWFuYWdlci5jb25uZWN0aW9uID0gTWFnaWNNb2NrKHJldHVybl92YWx1ZT1yZXR1 cm5fdmFsdWUpCisKKyAgICAgICAgZ2V0X2RyaXZlcl9tb2NrLnJldHVybl92YWx1ZSA9IE1hZ2lj TW9jaygKKyAgICAgICAgICAgIGNvbm5lY3Rpb25fbWFuYWdlcj1NYWdpY01vY2socmV0dXJuX3Zh bHVlPW1hbmFnZXIpCisgICAgICAgICkKKwogICAgICAgICBleHRlcm5hbF90YWJsZXNfdmlldyA9 IEV4dGVybmFsVGFibGVzVmlldyhjbWQ9JycpCi0gICAgICAgIGV4dGVybmFsX3RhYmxlc192aWV3 Lm5vZGUoKipzZWxmLmZ1bmN0aW9uX3BhcmFtZXRlcnMpCi0gICAgICAgIGlmIGhhc2F0dHIoc2Vs ZiwgJ2V4cGVjdGVkX2ludGVybmFsX3NlcnZlcl9lcnJvcl9jYWxsZWRfd2l0aCcpOgotICAgICAg ICAgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAotICAg ICAgICAgICAgICAgICoqc2VsZi5leHBlY3RlZF9pbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfY2FsbGVk X3dpdGgKLSAgICAgICAgICAgICkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGludGVybmFs X3NlcnZlcl9lcnJvcl9tb2NrLmFzc2VydF9ub3RfY2FsbGVkKCkKLSAgICAgICAgaWYgaGFzYXR0 cihzZWxmLCAnZXhwZWN0ZWRfbWFrZV9qc29uX3Jlc3BvbnNlX2NhbGxlZF93aXRoJyk6Ci0gICAg ICAgICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCi0gICAg ICAgICAgICAgICAgKipzZWxmLmV4cGVjdGVkX21ha2VfanNvbl9yZXNwb25zZV9jYWxsZWRfd2l0 aAotICAgICAgICAgICAgKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbWFrZV9qc29uX3Jl c3BvbnNlX21vY2suYXNzZXJ0X25vdF9jYWxsZWQoKQorICAgICAgICBleHRlcm5hbF90YWJsZXNf dmlldy5ub2RlKHNlcnZlcl9ncm91cF9pZD0wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlcnZlcl9pZD0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh dGFiYXNlX2lkPTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxf dGFibGVfaWQ9MTEpCisKKyAgICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2suYXNzZXJ0X2Nh bGxlZF93aXRoKAorICAgICAgICAgICAgZGF0YT0nQ291bGQgbm90IGZpbmQgdGhlIGV4dGVybmFs IHRhYmxlLicsCisgICAgICAgICAgICBzdGF0dXM9NDA0CisgICAgICAgICkKICAgICAgICAgcmVu ZGVyX3RlbXBsYXRlX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAotICAgICAgICAgICAgKipzZWxm LmV4cGVjdF9yZW5kZXJfdGVtcGxhdGVfY2FsbGVkX3dpdGgKKyAgICAgICAgICAgIHRlbXBsYXRl X25hbWVfb3JfbGlzdD0nc3FsLyNncGRiIzgwMzIzIy9ub2RlLnNxbCcsCisgICAgICAgICAgICBl eHRlcm5hbF90YWJsZV9pZD0xMQogICAgICAgICApCiAKICAgICBAcGF0Y2goJ3BnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVybmFsX3RhYmxlcycKLSAg ICAgICAgICAgJy5yZW5kZXJfdGVtcGxhdGUnKQorICAgICAgICAgICAnLmdldF9kcml2ZXInKQog ICAgIEBwYXRjaCgncGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFz ZXMuZXh0ZXJuYWxfdGFibGVzJwotICAgICAgICAgICAnLm1ha2VfcmVzcG9uc2UnKQorICAgICAg ICAgICAnLm1ha2VfanNvbl9yZXNwb25zZScpCiAgICAgQHBhdGNoKCdwZ2FkbWluLmJyb3dzZXIu c2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlcm5hbF90YWJsZXMnCi0gICAgICAg ICAgICcuaW50ZXJuYWxfc2VydmVyX2Vycm9yJykKLSAgICBkZWYgX190ZXN0X3Byb3BlcnRpZXMo c2VsZiwgaW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2ssCi0gICAgICAgICAgICAgICAgICAgICAg ICAgIG1ha2VfcmVzcG9uc2VfbW9jaywgcmVuZGVyX3RlbXBsYXRlX21vY2spOgorICAgICAgICAg ICAnLnJlbmRlcl90ZW1wbGF0ZScpCisgICAgZGVmIHRlc3Rfbm9kZV93aXRoXzFfZXh0ZXJuYWxf dGFibGVzKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl bmRlcl90ZW1wbGF0ZV9tb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ2V0X2RyaXZlcl9tb2NrKToKKyAgICAgICAgIiIiCisgICAgICAgIFdo ZW4gcmV0cmlldmluZyB0aGUgdHJlZSBub2RlcworICAgICAgICBBbmQgdGhlIGRhdGFiYXNlIGhh cyAxIGV4dGVybmFsIHRhYmxlcworICAgICAgICBJdCByZXR1cm5zIHRyZWUgbm9kZQorICAgICAg ICBhbmQgc3RhdHVzIG9mIDIwMAorICAgICAgICAiIiIKKyAgICAgICAgbWFuYWdlciA9IE1hZ2lj TW9jayhzZXJ2ZXJfdHlwZT0nZ3BkYicsIHN2ZXJzaW9uPTgwMzIzKQorICAgICAgICByZXR1cm5f dmFsdWUgPSBNYWdpY01vY2soZXhlY3V0ZV8yZGFycmF5PU1hZ2ljTW9jaygKKyAgICAgICAgICAg IHJldHVybl92YWx1ZT0oVHJ1ZSwgZGljdCgKKyAgICAgICAgICAgICAgICByb3dzPVsKKyAgICAg ICAgICAgICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICAgICAgICAgICAgIG9pZD0nb2lkMScs CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSd0YWJsZV9vbmUnCisgICAgICAgICAgICAg ICAgICAgICksCisgICAgICAgICAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgICAgICAg ICAgICBvaWQ9J29pZDInLAorICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0ndGFibGVfdHdv JworICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAg ICkpKQorICAgICAgICApCisgICAgICAgIG1hbmFnZXIuY29ubmVjdGlvbiA9IE1hZ2ljTW9jayhy ZXR1cm5fdmFsdWU9cmV0dXJuX3ZhbHVlKQorCisgICAgICAgIGdldF9kcml2ZXJfbW9jay5yZXR1 cm5fdmFsdWUgPSBNYWdpY01vY2soCisgICAgICAgICAgICBjb25uZWN0aW9uX21hbmFnZXI9TWFn aWNNb2NrKHJldHVybl92YWx1ZT1tYW5hZ2VyKQorICAgICAgICApCisKICAgICAgICAgZXh0ZXJu YWxfdGFibGVzX3ZpZXcgPSBFeHRlcm5hbFRhYmxlc1ZpZXcoY21kPScnKQotICAgICAgICBleHRl cm5hbF90YWJsZXNfdmlldy5wcm9wZXJ0aWVzKCoqc2VsZi5mdW5jdGlvbl9wYXJhbWV0ZXJzKQot ICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdleHBlY3RlZF9pbnRlcm5hbF9zZXJ2ZXJfZXJyb3Jf Y2FsbGVkX3dpdGgnKToKLSAgICAgICAgICAgIGludGVybmFsX3NlcnZlcl9lcnJvcl9tb2NrLmFz c2VydF9jYWxsZWRfd2l0aCgKLSAgICAgICAgICAgICAgICAqKnNlbGYuZXhwZWN0ZWRfaW50ZXJu YWxfc2VydmVyX2Vycm9yX2NhbGxlZF93aXRoCi0gICAgICAgICAgICApCi0gICAgICAgIGVsc2U6 Ci0gICAgICAgICAgICBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jay5hc3NlcnRfbm90X2NhbGxl ZCgpCi0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ2V4cGVjdGVkX21ha2VfcmVzcG9uc2VfY2Fs bGVkX3dpdGgnKToKLSAgICAgICAgICAgIG1ha2VfcmVzcG9uc2VfbW9jay5hc3NlcnRfY2FsbGVk X3dpdGgoCi0gICAgICAgICAgICAgICAgKipzZWxmLmV4cGVjdGVkX21ha2VfcmVzcG9uc2VfY2Fs bGVkX3dpdGgKLSAgICAgICAgICAgICkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG1ha2Vf cmVzcG9uc2VfbW9jay5hc3NlcnRfbm90X2NhbGxlZCgpCisgICAgICAgIGV4dGVybmFsX3RhYmxl c192aWV3Lm5vZGUoc2VydmVyX2dyb3VwX2lkPTAsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VydmVyX2lkPTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YWJhc2VfaWQ9MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlcm5h bF90YWJsZV9pZD0xMSkKKworICAgICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jay5hc3NlcnRf Y2FsbGVkX3dpdGgoCisgICAgICAgICAgICBkYXRhPXsKKyAgICAgICAgICAgICAgICAnaWQnOiAi ZXh0ZXJuYWxfdGFibGUvb2lkMSIsCisgICAgICAgICAgICAgICAgJ2xhYmVsJzogJ3RhYmxlX29u ZScsCisgICAgICAgICAgICAgICAgJ2ljb24nOiAnaWNvbi1leHRlcm5hbF90YWJsZScsCisgICAg ICAgICAgICAgICAgJ2lub2RlJzogRmFsc2UsCisgICAgICAgICAgICAgICAgJ190eXBlJzogJ2V4 dGVybmFsX3RhYmxlJywKKyAgICAgICAgICAgICAgICAnX2lkJzogJ29pZDEnLAorICAgICAgICAg ICAgICAgICdfcGlkJzogMiwKKyAgICAgICAgICAgICAgICAnbW9kdWxlJzogJ3BnYWRtaW4ubm9k ZS5leHRlcm5hbF90YWJsZScKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBzdGF0dXM9MjAw CisgICAgICAgICkKICAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2suYXNzZXJ0X2NhbGxlZF93 aXRoKAotICAgICAgICAgICAgKipzZWxmLmV4cGVjdF9yZW5kZXJfdGVtcGxhdGVfY2FsbGVkX3dp dGgKKyAgICAgICAgICAgIHRlbXBsYXRlX25hbWVfb3JfbGlzdD0nc3FsLyNncGRiIzgwMzIzIy9u b2RlLnNxbCcsCisgICAgICAgICAgICBleHRlcm5hbF90YWJsZV9pZD0xMQogICAgICAgICApCiAK LSAgICBkZWYgX19iZWZvcmVfYWxsKHNlbGYsIGdldF9kcml2ZXJfbW9jayk6Ci0gICAgICAgIHNl bGYuY29ubmVjdGlvbi5leGVjdXRlXzJkYXJyYXkucmV0dXJuX3ZhbHVlID0gXAotICAgICAgICAg ICAgc2VsZi5leGVjdXRlXzJkYXJyYXlfcmV0dXJuX3ZhbHVlCi0gICAgICAgIHNlbGYubWFuYWdl ci5jb25uZWN0aW9uID0gTWFnaWNNb2NrKHJldHVybl92YWx1ZT1zZWxmLmNvbm5lY3Rpb24pCisg ICAgQHBhdGNoKCdwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy5leHRlcm5hbF90YWJsZXMnCisgICAgICAgICAgICcuZ2V0X2RyaXZlcicpCisgICAgQHBhdGNo KCdwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlcm5h bF90YWJsZXMnCisgICAgICAgICAgICcubWFrZV9yZXNwb25zZScpCisgICAgQHBhdGNoKCdwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlcm5hbF90YWJs ZXMnCisgICAgICAgICAgICcucmVuZGVyX3RlbXBsYXRlJykKKyAgICBkZWYgdGVzdF9wcm9wZXJ0 aWVzX3dpdGhfMV9leHRlcm5hbF90YWJsZXMoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2ssCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ha2VfcmVzcG9uc2VfbW9jaywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2RyaXZl cl9tb2NrKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gcmV0cmlldmluZyB0aGUgcHJvcGVy dGllcyBvZiAxIGV4dGVybmFsIHRhYmxlCisgICAgICAgIEl0IHJldHVybnMgcHJvcGVydGllcyBv ZiB0aGUgdHJlZSBub2RlCisgICAgICAgIGFuZCBzdGF0dXMgb2YgMjAwCisgICAgICAgICIiIgor ICAgICAgICBtYW5hZ2VyID0gTWFnaWNNb2NrKHNlcnZlcl90eXBlPSdncGRiJywgc3ZlcnNpb249 ODAzMjMpCisgICAgICAgIHJldHVybl92YWx1ZSA9IE1hZ2ljTW9jayhleGVjdXRlXzJkYXJyYXk9 TWFnaWNNb2NrKAorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPShUcnVlLCBkaWN0KAorICAgICAg ICAgICAgICAgIHJvd3M9W2RpY3QoCisgICAgICAgICAgICAgICAgICAgIHVyaWxvY2F0aW9uPSd7 aHR0cDovL3NvbWV1cmwuY29tfScsCisgICAgICAgICAgICAgICAgICAgIGV4ZWNsb2NhdGlvbj1b J0FMTF9TRUdNRU5UUyddLAorICAgICAgICAgICAgICAgICAgICBmbXR0eXBlPSdhJywKKyAgICAg ICAgICAgICAgICAgICAgZm10b3B0cz0nZGVsaW1pdGVyIFwnLFwnIG51bGwgXCdcJyAnCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ2VzY2FwZSBcJyJcJyBxdW90ZSBcJyJcJycsCisgICAg ICAgICAgICAgICAgICAgIGNvbW1hbmQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgcmVqZWN0 bGltaXQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgcmVqZWN0bGltaXR0eXBlPU5vbmUsCisg ICAgICAgICAgICAgICAgICAgIGVycnRibG5hbWU9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAg ZXJyb3J0b2ZpbGU9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgcGdfZW5jb2RpbmdfdG9fY2hh cj0nVVRGOCcsCisgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlPUZhbHNlLAorICAgICAgICAg ICAgICAgICAgICBvcHRpb25zPU5vbmUsCisgICAgICAgICAgICAgICAgICAgIGRpc3RyaWJ1dGlv bj1Ob25lLAorICAgICAgICAgICAgICAgICAgICBuYW1lPSdzb21lX3RhYmxlJywKKyAgICAgICAg ICAgICAgICAgICAgbmFtZXNwYWNlPSdwdWJsaWMnCisgICAgICAgICAgICAgICAgKV0KKyAgICAg ICAgICAgICkpKQorICAgICAgICApCisgICAgICAgIG1hbmFnZXIuY29ubmVjdGlvbiA9IE1hZ2lj TW9jayhyZXR1cm5fdmFsdWU9cmV0dXJuX3ZhbHVlKQorCiAgICAgICAgIGdldF9kcml2ZXJfbW9j ay5yZXR1cm5fdmFsdWUgPSBNYWdpY01vY2soCi0gICAgICAgICAgICBjb25uZWN0aW9uX21hbmFn ZXI9TWFnaWNNb2NrKHJldHVybl92YWx1ZT1zZWxmLm1hbmFnZXIpCisgICAgICAgICAgICBjb25u ZWN0aW9uX21hbmFnZXI9TWFnaWNNb2NrKHJldHVybl92YWx1ZT1tYW5hZ2VyKQorICAgICAgICAp CisKKyAgICAgICAgZXh0ZXJuYWxfdGFibGVzX3ZpZXcgPSBFeHRlcm5hbFRhYmxlc1ZpZXcoY21k PScnKQorICAgICAgICBleHRlcm5hbF90YWJsZXNfdmlldy5wcm9wZXJ0aWVzKHNlcnZlcl9ncm91 cF9pZD0wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9p ZD0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNlX2lk PTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfdGFi bGVfaWQ9MTEpCisKKyAgICAgICAgbWFrZV9yZXNwb25zZV9tb2NrLmFzc2VydF9jYWxsZWRfd2l0 aCgKKyAgICAgICAgICAgIHJlc3BvbnNlPWRpY3QoCisgICAgICAgICAgICAgICAgbmFtZT0ic29t ZV90YWJsZSIsCisgICAgICAgICAgICAgICAgdHlwZT0ncmVhZGFibGUnLAorICAgICAgICAgICAg ICAgIGZvcm1hdF90eXBlPSdVVEY4JywKKyAgICAgICAgICAgICAgICBmb3JtYXRfb3B0aW9ucz0n ZGVsaW1pdGVyIFwnLFwnIG51bGwgXCdcJyAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ2VzY2FwZSBcJyJcJyBxdW90ZSBcJyJcJycsCisgICAgICAgICAgICAgICAgZXh0ZXJuYWxf b3B0aW9ucz1Ob25lLAorICAgICAgICAgICAgICAgIGNvbW1hbmQ9Tm9uZSwKKyAgICAgICAgICAg ICAgICBleGVjdXRlX29uPSdhbGwgc2VnbWVudHMnLAorICAgICAgICAgICAgKSwKKyAgICAgICAg ICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jay5h c3NlcnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICB0ZW1wbGF0ZV9uYW1lX29yX2xpc3Q9J3Nx bC8jZ3BkYiM4MDMyMyMvZ2V0X3RhYmxlX2luZm9ybWF0aW9uLnNxbCcsCisgICAgICAgICAgICB0 YWJsZV9vaWQ9MTEKICAgICAgICAgKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy90ZXN0cy90ZXN0 X21hcHBpbmdfdXRpbHMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvZXh0ZXJuYWxfdGFibGVzL3Rlc3RzL3Rlc3RfbWFwcGluZ191dGlscy5w eQppbmRleCBmMDliM2ZmMC4uNTdiOTE4N2YgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlcm5hbF90YWJsZXMvdGVzdHMv dGVzdF9tYXBwaW5nX3V0aWxzLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlcm5hbF90YWJsZXMvdGVzdHMvdGVzdF9tYXBwaW5n X3V0aWxzLnB5CkBAIC02LDM3MCArNiw0MTggQEAKICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNl ZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworZnJv bSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzIFwKICAgICAuZXh0ZXJuYWxfdGFibGVzLm1hcHBpbmdfdXRp bHMgaW1wb3J0IFwKICAgICBtYXBfY29sdW1uX2Zyb21fZGF0YWJhc2UsIG1hcF90YWJsZV9pbmZv cm1hdGlvbl9mcm9tX2RhdGFiYXNlLCBcCiAgICAgaXNfd2ViX3RhYmxlLCBmb3JtYXRfb3B0aW9u cywgbWFwX2V4ZWN1dGlvbl9sb2NhdGlvbiwgbWFwX2Zvcm1hdF90eXBlCi1mcm9tIHBnYWRtaW4u dXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi0KLQotY2xhc3MgVGVzdE1hcHBp bmdVdGlscyhCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAo JyNtYXBfY29sdW1uX2Zyb21fZGF0YWJhc2UgV2hlbiByZXRyaWV2aW5nIGNvbHVtbnMgZnJvbSB0 YWJsZSwgJwotICAgICAgICAgJ2l0IHJldHVybnMgb25seSB0aGUgbmFtZSBhbmQgdHlwZScsCi0g ICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHRlc3RfdHlwZT0nbWFwX2NvbHVtbl9mcm9tX2Rh dGFiYXNlJywKLSAgICAgICAgICAgICBmdW5jdGlvbl9hcmd1bWVudHM9ZGljdChjb2x1bW5faW5m b3JtYXRpb249ZGljdCgKLSAgICAgICAgICAgICAgICAgbmFtZT0nc29tZSBuYW1lJywKLSAgICAg ICAgICAgICAgICAgY2x0eXBlPSdzb21lIHR5cGUnLAotICAgICAgICAgICAgICAgICBvdGhlcl9j b2x1bW49J3NvbWUgb3RoZXIgY29sdW1uJwotICAgICAgICAgICAgICkpLAotICAgICAgICAgICAg IGV4cGVjdGVkX3Jlc3VsdD1kaWN0KG5hbWU9J3NvbWUgbmFtZScsIHR5cGU9J3NvbWUgdHlwZScp Ci0gICAgICAgICApKSwKLQotICAgICAgICAoJyNtYXBfdGFibGVfaW5mb3JtYXRpb25fZnJvbV9k YXRhYmFzZSBXaGVuIHJldHJpZXZpbmcgaW5mb3JtYXRpb24gJwotICAgICAgICAgJ2Zyb20gd2Vi IHRhYmxlLCAnCi0gICAgICAgICAnaXQgcmV0dXJucyBhbGwgZmllbGRzJywKLSAgICAgICAgIGRp Y3QoCi0gICAgICAgICAgICAgdGVzdF90eXBlPSdtYXBfdGFibGVfaW5mb3JtYXRpb25fZnJvbV9k YXRhYmFzZScsCi0gICAgICAgICAgICAgZnVuY3Rpb25fYXJndW1lbnRzPWRpY3QodGFibGVfaW5m b3JtYXRpb249ZGljdCgKLSAgICAgICAgICAgICAgICAgdXJpbG9jYXRpb249J3todHRwOi8vc29t ZXVybC5jb219JywKLSAgICAgICAgICAgICAgICAgZXhlY2xvY2F0aW9uPVsnQUxMX1NFR01FTlRT J10sCi0gICAgICAgICAgICAgICAgIGZtdHR5cGU9J2InLAotICAgICAgICAgICAgICAgICBmbXRv cHRzPSdkZWxpbWl0ZXIgXCcsXCcgbnVsbCBcJ1wnIGVzY2FwZSBcJyJcJyBxdW90ZSBcJyJcJycs Ci0gICAgICAgICAgICAgICAgIGNvbW1hbmQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgcmVqZWN0 bGltaXQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgcmVqZWN0bGltaXR0eXBlPU5vbmUsCi0gICAg ICAgICAgICAgICAgIGVycnRibG5hbWU9Tm9uZSwKLSAgICAgICAgICAgICAgICAgZXJyb3J0b2Zp bGU9Tm9uZSwKLSAgICAgICAgICAgICAgICAgcGdfZW5jb2RpbmdfdG9fY2hhcj0nVVRGOCcsCi0g ICAgICAgICAgICAgICAgIHdyaXRhYmxlPUZhbHNlLAotICAgICAgICAgICAgICAgICBvcHRpb25z PU5vbmUsCi0gICAgICAgICAgICAgICAgIGRpc3RyaWJ1dGlvbj1Ob25lLAotICAgICAgICAgICAg ICAgICBuYW1lPSdzb21lX3RhYmxlX25hbWUnLAotICAgICAgICAgICAgICAgICBuYW1lc3BhY2U9 J3NvbWVfbmFtZV9zcGFjZScKLSAgICAgICAgICAgICApKSwKLSAgICAgICAgICAgICBleHBlY3Rl ZF9yZXN1bHQ9ZGljdCgKLSAgICAgICAgICAgICAgICAgdXJpcz1bJ2h0dHA6Ly9zb21ldXJsLmNv bSddLAotICAgICAgICAgICAgICAgICBpc1dlYj1UcnVlLAotICAgICAgICAgICAgICAgICBleGVj dXRpb25Mb2NhdGlvbj1kaWN0KHR5cGU9J2FsbF9zZWdtZW50cycsIHZhbHVlPU5vbmUpLAotICAg ICAgICAgICAgICAgICBmb3JtYXRUeXBlPSdjdXN0b20nLAotICAgICAgICAgICAgICAgICBmb3Jt YXRPcHRpb25zPSdkZWxpbWl0ZXIgPSAkJCwkJCxlc2NhcGUgPSAkJCIkJCwnCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ251bGwgPSAkJCQkLHF1b3RlID0gJCQiJCQnLAotICAgICAg ICAgICAgICAgICBjb21tYW5kPU5vbmUsCi0gICAgICAgICAgICAgICAgIHJlamVjdExpbWl0PU5v bmUsCi0gICAgICAgICAgICAgICAgIHJlamVjdExpbWl0VHlwZT1Ob25lLAotICAgICAgICAgICAg ICAgICBlcnJvclRhYmxlTmFtZT1Ob25lLAotICAgICAgICAgICAgICAgICBlcnJvVG9GaWxlPU5v bmUsCi0gICAgICAgICAgICAgICAgIHBnRW5jb2RpbmdUb0NoYXI9J1VURjgnLAotICAgICAgICAg ICAgICAgICB3cml0YWJsZT1GYWxzZSwKLSAgICAgICAgICAgICAgICAgb3B0aW9ucz1Ob25lLAot ICAgICAgICAgICAgICAgICBkaXN0cmlidXRpb249Tm9uZSwKLSAgICAgICAgICAgICAgICAgbmFt ZT0nc29tZV90YWJsZV9uYW1lJywKLSAgICAgICAgICAgICAgICAgbmFtZXNwYWNlPSdzb21lX25h bWVfc3BhY2UnCi0gICAgICAgICAgICAgKQotICAgICAgICAgKSksCi0gICAgICAgICgnI21hcF90 YWJsZV9pbmZvcm1hdGlvbl9mcm9tX2RhdGFiYXNlIFdoZW4gcmV0cmlldmluZyBpbmZvcm1hdGlv biAnCi0gICAgICAgICAnZnJvbSBhIHdlYiB0YWJsZSB1c2luZyBjb21tYW5kIGluc3RlYWQgb2Yg VVJJcywgJwotICAgICAgICAgJ2l0IHJldHVybnMgYWxsIGZpZWxkcycsCi0gICAgICAgICBkaWN0 KAotICAgICAgICAgICAgIHRlc3RfdHlwZT0nbWFwX3RhYmxlX2luZm9ybWF0aW9uX2Zyb21fZGF0 YWJhc2UnLAotICAgICAgICAgICAgIGZ1bmN0aW9uX2FyZ3VtZW50cz1kaWN0KHRhYmxlX2luZm9y bWF0aW9uPWRpY3QoCi0gICAgICAgICAgICAgICAgIHVyaWxvY2F0aW9uPU5vbmUsCi0gICAgICAg ICAgICAgICAgIGV4ZWNsb2NhdGlvbj1bJ0FMTF9TRUdNRU5UUyddLAotICAgICAgICAgICAgICAg ICBmbXR0eXBlPSdiJywKLSAgICAgICAgICAgICAgICAgZm10b3B0cz0nZGVsaW1pdGVyIFwnLFwn IG51bGwgXCdcJyBlc2NhcGUgXCciXCcgcXVvdGUgXCciXCcnLAotICAgICAgICAgICAgICAgICBj b21tYW5kPSdjYXQgL3RtcC9wbGFjZXMgfHwgZWNobyBcJ2Vycm9yXCcnLAotICAgICAgICAgICAg ICAgICByZWplY3RsaW1pdD1Ob25lLAotICAgICAgICAgICAgICAgICByZWplY3RsaW1pdHR5cGU9 Tm9uZSwKLSAgICAgICAgICAgICAgICAgZXJydGJsbmFtZT1Ob25lLAotICAgICAgICAgICAgICAg ICBlcnJvcnRvZmlsZT1Ob25lLAotICAgICAgICAgICAgICAgICBwZ19lbmNvZGluZ190b19jaGFy PSdVVEY4JywKLSAgICAgICAgICAgICAgICAgd3JpdGFibGU9RmFsc2UsCi0gICAgICAgICAgICAg ICAgIG9wdGlvbnM9Tm9uZSwKLSAgICAgICAgICAgICAgICAgZGlzdHJpYnV0aW9uPU5vbmUsCi0g ICAgICAgICAgICAgICAgIG5hbWU9J3NvbWVfdGFibGVfbmFtZScsCi0gICAgICAgICAgICAgICAg IG5hbWVzcGFjZT0nc29tZV9uYW1lX3NwYWNlJwotICAgICAgICAgICAgICkpLAotICAgICAgICAg ICAgIGV4cGVjdGVkX3Jlc3VsdD1kaWN0KAotICAgICAgICAgICAgICAgICB1cmlzPU5vbmUsCi0g ICAgICAgICAgICAgICAgIGlzV2ViPVRydWUsCi0gICAgICAgICAgICAgICAgIGV4ZWN1dGlvbkxv Y2F0aW9uPWRpY3QodHlwZT0nYWxsX3NlZ21lbnRzJywgdmFsdWU9Tm9uZSksCi0gICAgICAgICAg ICAgICAgIGZvcm1hdFR5cGU9J2N1c3RvbScsCi0gICAgICAgICAgICAgICAgIGZvcm1hdE9wdGlv bnM9J2RlbGltaXRlciA9ICQkLCQkLGVzY2FwZSA9ICQkIiQkLCcKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnbnVsbCA9ICQkJCQscXVvdGUgPSAkJCIkJCcsCi0gICAgICAgICAgICAg ICAgIGNvbW1hbmQ9J2NhdCAvdG1wL3BsYWNlcyB8fCBlY2hvIFwnZXJyb3JcJycsCi0gICAgICAg ICAgICAgICAgIHJlamVjdExpbWl0PU5vbmUsCi0gICAgICAgICAgICAgICAgIHJlamVjdExpbWl0 VHlwZT1Ob25lLAotICAgICAgICAgICAgICAgICBlcnJvclRhYmxlTmFtZT1Ob25lLAotICAgICAg ICAgICAgICAgICBlcnJvVG9GaWxlPU5vbmUsCi0gICAgICAgICAgICAgICAgIHBnRW5jb2RpbmdU b0NoYXI9J1VURjgnLAotICAgICAgICAgICAgICAgICB3cml0YWJsZT1GYWxzZSwKLSAgICAgICAg ICAgICAgICAgb3B0aW9ucz1Ob25lLAotICAgICAgICAgICAgICAgICBkaXN0cmlidXRpb249Tm9u ZSwKLSAgICAgICAgICAgICAgICAgbmFtZT0nc29tZV90YWJsZV9uYW1lJywKLSAgICAgICAgICAg ICAgICAgbmFtZXNwYWNlPSdzb21lX25hbWVfc3BhY2UnCi0gICAgICAgICAgICAgKQotICAgICAg ICAgKSksCi0gICAgICAgICgnI21hcF90YWJsZV9pbmZvcm1hdGlvbl9mcm9tX2RhdGFiYXNlIFdo ZW4gcmV0cmlldmluZyBpbmZvcm1hdGlvbiAnCi0gICAgICAgICAnZnJvbSBhIG5vbmUgd2ViIHRh YmxlLCAnCi0gICAgICAgICAnaXQgcmV0dXJucyBhbGwgZmllbGRzJywKLSAgICAgICAgIGRpY3Qo Ci0gICAgICAgICAgICAgdGVzdF90eXBlPSdtYXBfdGFibGVfaW5mb3JtYXRpb25fZnJvbV9kYXRh YmFzZScsCi0gICAgICAgICAgICAgZnVuY3Rpb25fYXJndW1lbnRzPWRpY3QodGFibGVfaW5mb3Jt YXRpb249ZGljdCgKLSAgICAgICAgICAgICAgICAgdXJpbG9jYXRpb249J3tncGZkaXN0Oi8vZmls ZWhvc3Q6ODA4MS8qLmNzdn0nLAotICAgICAgICAgICAgICAgICBleGVjbG9jYXRpb249WydBTExf U0VHTUVOVFMnXSwKLSAgICAgICAgICAgICAgICAgZm10dHlwZT0nYicsCi0gICAgICAgICAgICAg ICAgIGZtdG9wdHM9J2RlbGltaXRlciBcJyxcJyBudWxsIFwnXCcgZXNjYXBlIFwnIlwnIHF1b3Rl IFwnIlwnJywKLSAgICAgICAgICAgICAgICAgY29tbWFuZD1Ob25lLAotICAgICAgICAgICAgICAg ICByZWplY3RsaW1pdD1Ob25lLAotICAgICAgICAgICAgICAgICByZWplY3RsaW1pdHR5cGU9Tm9u ZSwKLSAgICAgICAgICAgICAgICAgZXJydGJsbmFtZT1Ob25lLAotICAgICAgICAgICAgICAgICBl cnJvcnRvZmlsZT1Ob25lLAotICAgICAgICAgICAgICAgICBwZ19lbmNvZGluZ190b19jaGFyPSdV VEY4JywKLSAgICAgICAgICAgICAgICAgd3JpdGFibGU9RmFsc2UsCi0gICAgICAgICAgICAgICAg IG9wdGlvbnM9Tm9uZSwKLSAgICAgICAgICAgICAgICAgZGlzdHJpYnV0aW9uPU5vbmUsCi0gICAg ICAgICAgICAgICAgIG5hbWU9J3NvbWVfdGFibGVfbmFtZScsCi0gICAgICAgICAgICAgICAgIG5h bWVzcGFjZT0nc29tZV9uYW1lX3NwYWNlJwotICAgICAgICAgICAgICkpLAotICAgICAgICAgICAg IGV4cGVjdGVkX3Jlc3VsdD1kaWN0KAotICAgICAgICAgICAgICAgICB1cmlzPVsnZ3BmZGlzdDov L2ZpbGVob3N0OjgwODEvKi5jc3YnXSwKLSAgICAgICAgICAgICAgICAgaXNXZWI9RmFsc2UsCi0g ICAgICAgICAgICAgICAgIGV4ZWN1dGlvbkxvY2F0aW9uPWRpY3QodHlwZT0nYWxsX3NlZ21lbnRz JywgdmFsdWU9Tm9uZSksCi0gICAgICAgICAgICAgICAgIGZvcm1hdFR5cGU9J2N1c3RvbScsCi0g ICAgICAgICAgICAgICAgIGZvcm1hdE9wdGlvbnM9J2RlbGltaXRlciA9ICQkLCQkLGVzY2FwZSA9 ICQkIiQkLCcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbnVsbCA9ICQkJCQscXVv dGUgPSAkJCIkJCcsCi0gICAgICAgICAgICAgICAgIGNvbW1hbmQ9Tm9uZSwKLSAgICAgICAgICAg ICAgICAgcmVqZWN0TGltaXQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgcmVqZWN0TGltaXRUeXBl PU5vbmUsCi0gICAgICAgICAgICAgICAgIGVycm9yVGFibGVOYW1lPU5vbmUsCi0gICAgICAgICAg ICAgICAgIGVycm9Ub0ZpbGU9Tm9uZSwKLSAgICAgICAgICAgICAgICAgcGdFbmNvZGluZ1RvQ2hh cj0nVVRGOCcsCi0gICAgICAgICAgICAgICAgIHdyaXRhYmxlPUZhbHNlLAotICAgICAgICAgICAg ICAgICBvcHRpb25zPU5vbmUsCi0gICAgICAgICAgICAgICAgIGRpc3RyaWJ1dGlvbj1Ob25lLAot ICAgICAgICAgICAgICAgICBuYW1lPSdzb21lX3RhYmxlX25hbWUnLAotICAgICAgICAgICAgICAg ICBuYW1lc3BhY2U9J3NvbWVfbmFtZV9zcGFjZScKLSAgICAgICAgICAgICApCi0gICAgICAgICAp KSwKLQotCi0gICAgICAgICgnI2lzX3dlYl90YWJsZSBXaGVuIHVybCBzdGFydHMgd2l0aCBodHRw ICcKLSAgICAgICAgICdhbmQgY29tbWFuZCBpcyBOb25lICcKLSAgICAgICAgICdpdCByZXR1cm5z IHRydWUnLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J2lzX3dlYl90 YWJsZScsCi0gICAgICAgICAgICAgZnVuY3Rpb25fYXJndW1lbnRzPWRpY3QoCi0gICAgICAgICAg ICAgICAgIHVyaXM9J3todHRwOi8vc29tZXVybC5jb219JywKLSAgICAgICAgICAgICAgICAgY29t bWFuZD1Ob25lCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9 VHJ1ZQotICAgICAgICAgKSksCi0gICAgICAgICgnI2lzX3dlYl90YWJsZSBXaGVuIHVybCBzdGFy dHMgd2l0aCBodHRwcyAnCi0gICAgICAgICAnYW5kIGNvbW1hbmQgaXMgTm9uZSwgJwotICAgICAg ICAgJ2l0IHJldHVybnMgdHJ1ZScsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHRlc3Rf dHlwZT0naXNfd2ViX3RhYmxlJywKLSAgICAgICAgICAgICBmdW5jdGlvbl9hcmd1bWVudHM9ZGlj dCgKLSAgICAgICAgICAgICAgICAgdXJpcz0ne2h0dHBzOi8vc29tZXVybC5jb219JywKLSAgICAg ICAgICAgICAgICAgY29tbWFuZD1Ob25lCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICBl eHBlY3RlZF9yZXN1bHQ9VHJ1ZQotICAgICAgICAgKSksCi0gICAgICAgICgnI2lzX3dlYl90YWJs ZSBXaGVuIHVybCBzdGFydHMgd2l0aCBzMyAnCi0gICAgICAgICAnYW5kIGNvbW1hbmQgaXMgTm9u ZScKLSAgICAgICAgICdpdCByZXR1cm5zIGZhbHNlJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAg ICAgICAgdGVzdF90eXBlPSdpc193ZWJfdGFibGUnLAotICAgICAgICAgICAgIGZ1bmN0aW9uX2Fy Z3VtZW50cz1kaWN0KHVyaXM9J3tzMzovL3NvbWV1cmwuY29tfScsIGNvbW1hbmQ9Tm9uZSksCi0g ICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PUZhbHNlCi0gICAgICAgICApKSwKLSAgICAgICAg KCcjaXNfd2ViX3RhYmxlIFdoZW4gdXJsIGlzIE5vbmUgJwotICAgICAgICAgJ2FuZCBjb21tYW5k IGlzIG5vdCBOb25lJwotICAgICAgICAgJ2l0IHJldHVybnMgZmFsc2UnLAotICAgICAgICAgZGlj dCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J2lzX3dlYl90YWJsZScsCi0gICAgICAgICAgICAg ZnVuY3Rpb25fYXJndW1lbnRzPWRpY3QodXJpcz1Ob25lLCBjb21tYW5kPSdTb21lIGNvbW1hbmQn KSwKLSAgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9VHJ1ZQotICAgICAgICAgKSksCi0KLQot ICAgICAgICAoJyNtYXBfZXhlY3V0aW9uX2xvY2F0aW9uIFdoZW4gdmFsdWUgaXMgIkhPU1Q6IDEu MS4xLjEiLCAnCi0gICAgICAgICAnaXQgcmV0dXJucyB7dHlwZTogImhvc3QiLCB2YWx1ZTogIjEu MS4xLjEifScsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHRlc3RfdHlwZT0nbWFwX2V4 ZWN1dGlvbl9sb2NhdGlvbicsCi0gICAgICAgICAgICAgZnVuY3Rpb25fYXJndW1lbnRzPWRpY3Qo ZXhlY3V0aW9uX2xvY2F0aW9uPVsnSE9TVDogMS4xLjEuMSddKSwKLSAgICAgICAgICAgICBleHBl Y3RlZF9yZXN1bHQ9ZGljdCh0eXBlPSdob3N0JywgdmFsdWU9JzEuMS4xLjEnKQotICAgICAgICAg KSksCi0gICAgICAgICgnI21hcF9leGVjdXRpb25fbG9jYXRpb24gV2hlbiB2YWx1ZSBpcyAiUEVS X0hPU1QiLCAnCi0gICAgICAgICAnaXQgcmV0dXJucyB7dHlwZTogInBlcl9ob3N0IiwgdmFsdWU6 IE5vbmV9JywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgdGVzdF90eXBlPSdtYXBfZXhl Y3V0aW9uX2xvY2F0aW9uJywKLSAgICAgICAgICAgICBmdW5jdGlvbl9hcmd1bWVudHM9ZGljdChl eGVjdXRpb25fbG9jYXRpb249WydQRVJfSE9TVCddKSwKLSAgICAgICAgICAgICBleHBlY3RlZF9y ZXN1bHQ9ZGljdCh0eXBlPSdwZXJfaG9zdCcsIHZhbHVlPU5vbmUpCi0gICAgICAgICApKSwKLSAg ICAgICAgKCcjbWFwX2V4ZWN1dGlvbl9sb2NhdGlvbiBXaGVuIHZhbHVlIGlzICJNQVNURVJfT05M WSIsICcKLSAgICAgICAgICdpdCByZXR1cm5zIHt0eXBlOiAibWFzdGVyX29ubHkiLCB2YWx1ZTog Tm9uZX0nLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J21hcF9leGVj dXRpb25fbG9jYXRpb24nLAotICAgICAgICAgICAgIGZ1bmN0aW9uX2FyZ3VtZW50cz1kaWN0KGV4 ZWN1dGlvbl9sb2NhdGlvbj1bJ01BU1RFUl9PTkxZJ10pLAotICAgICAgICAgICAgIGV4cGVjdGVk X3Jlc3VsdD1kaWN0KHR5cGU9J21hc3Rlcl9vbmx5JywgdmFsdWU9Tm9uZSkKLSAgICAgICAgICkp LAotICAgICAgICAoJyNtYXBfZXhlY3V0aW9uX2xvY2F0aW9uIFdoZW4gdmFsdWUgaXMgIlNFR01F TlRfSUQ6IDEyMzQiLCAnCi0gICAgICAgICAnaXQgcmV0dXJucyB7dHlwZTogInNlZ21lbnQiLCB2 YWx1ZTogIjEyMzQifScsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHRlc3RfdHlwZT0n bWFwX2V4ZWN1dGlvbl9sb2NhdGlvbicsCi0gICAgICAgICAgICAgZnVuY3Rpb25fYXJndW1lbnRz PWRpY3QoZXhlY3V0aW9uX2xvY2F0aW9uPVsnU0VHTUVOVF9JRDogMTIzNCddKSwKLSAgICAgICAg ICAgICBleHBlY3RlZF9yZXN1bHQ9ZGljdCh0eXBlPSdzZWdtZW50JywgdmFsdWU9JzEyMzQnKQot ICAgICAgICAgKSksCi0gICAgICAgICgnI21hcF9leGVjdXRpb25fbG9jYXRpb24gV2hlbiB2YWx1 ZSBpcyAiVE9UQUxfU0VHUzogNCIsICcKLSAgICAgICAgICdpdCByZXR1cm5zIHt0eXBlOiAic2Vn bWVudHMiLCB2YWx1ZTogIjQifScsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHRlc3Rf dHlwZT0nbWFwX2V4ZWN1dGlvbl9sb2NhdGlvbicsCi0gICAgICAgICAgICAgZnVuY3Rpb25fYXJn dW1lbnRzPWRpY3QoZXhlY3V0aW9uX2xvY2F0aW9uPVsnVE9UQUxfU0VHUzogNCddKSwKLSAgICAg ICAgICAgICBleHBlY3RlZF9yZXN1bHQ9ZGljdCh0eXBlPSdzZWdtZW50cycsIHZhbHVlPSc0JykK LSAgICAgICAgICkpLAotICAgICAgICAoJyNtYXBfZXhlY3V0aW9uX2xvY2F0aW9uIFdoZW4gdmFs dWUgaXMgIntBTExfU0VHTUVOVFN9IiwgJwotICAgICAgICAgJ2l0IHJldHVybnMge3R5cGU6ICJh bGxfc2VnbWVudHMiLCB2YWx1ZTogTm9uZX0nLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAg ICB0ZXN0X3R5cGU9J21hcF9leGVjdXRpb25fbG9jYXRpb24nLAotICAgICAgICAgICAgIGZ1bmN0 aW9uX2FyZ3VtZW50cz1kaWN0KGV4ZWN1dGlvbl9sb2NhdGlvbj1bJ0FMTF9TRUdNRU5UUyddKSwK LSAgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9ZGljdCh0eXBlPSdhbGxfc2VnbWVudHMnLCB2 YWx1ZT1Ob25lKQotICAgICAgICAgKSksCi0KLSAgICAgICAgKCcjbWFwX2Zvcm1hdF90eXBlIFdo ZW4gdmFsdWUgaXMgImMiLCAnCi0gICAgICAgICAnaXQgcmV0dXJucyBjc3YnLAotICAgICAgICAg ZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J21hcF9mb3JtYXRfdHlwZScsCi0gICAgICAg ICAgICAgZnVuY3Rpb25fYXJndW1lbnRzPWRpY3QoZm9ybWF0X3R5cGU9J2MnKSwKLSAgICAgICAg ICAgICBleHBlY3RlZF9yZXN1bHQ9J2NzdicKLSAgICAgICAgICkpLAotICAgICAgICAoJyNtYXBf Zm9ybWF0X3R5cGUgV2hlbiB2YWx1ZSBpcyAic29tZXRoaW5nIHN0cmFuZ2UiLCAnCi0gICAgICAg ICAnaXQgcmV0dXJucyBjc3YnLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5 cGU9J21hcF9mb3JtYXRfdHlwZScsCi0gICAgICAgICAgICAgZnVuY3Rpb25fYXJndW1lbnRzPWRp Y3QoZm9ybWF0X3R5cGU9J3NvbWV0aGluZyBzdHJhbmdlJyksCi0gICAgICAgICAgICAgZXhwZWN0 ZWRfcmVzdWx0PSdjc3YnCi0gICAgICAgICApKSwKLSAgICAgICAgKCcjbWFwX2Zvcm1hdF90eXBl IFdoZW4gdmFsdWUgaXMgImIiLCAnCi0gICAgICAgICAnaXQgcmV0dXJucyBjdXN0b20nLAotICAg ICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J21hcF9mb3JtYXRfdHlwZScsCi0g ICAgICAgICAgICAgZnVuY3Rpb25fYXJndW1lbnRzPWRpY3QoZm9ybWF0X3R5cGU9J2InKSwKLSAg ICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9J2N1c3RvbScKLSAgICAgICAgICkpLAotICAgICAg ICAoJyNtYXBfZm9ybWF0X3R5cGUgV2hlbiB2YWx1ZSBpcyAidCIsICcKLSAgICAgICAgICdpdCBy ZXR1cm5zIHRleHQnLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J21h cF9mb3JtYXRfdHlwZScsCi0gICAgICAgICAgICAgZnVuY3Rpb25fYXJndW1lbnRzPWRpY3QoZm9y bWF0X3R5cGU9J3QnKSwKLSAgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9J3RleHQnCi0gICAg ICAgICApKSwKLSAgICAgICAgKCcjbWFwX2Zvcm1hdF90eXBlIFdoZW4gdmFsdWUgaXMgImEiLCAn Ci0gICAgICAgICAnaXQgcmV0dXJucyBhdnJvJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAg ICAgdGVzdF90eXBlPSdtYXBfZm9ybWF0X3R5cGUnLAotICAgICAgICAgICAgIGZ1bmN0aW9uX2Fy Z3VtZW50cz1kaWN0KGZvcm1hdF90eXBlPSdhJyksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmVz dWx0PSdhdnJvJwotICAgICAgICAgKSksCi0gICAgICAgICgnI21hcF9mb3JtYXRfdHlwZSBXaGVu IHZhbHVlIGlzICJwIiwgJwotICAgICAgICAgJ2l0IHJldHVybnMgcGFycXVldCcsCi0gICAgICAg ICBkaWN0KAotICAgICAgICAgICAgIHRlc3RfdHlwZT0nbWFwX2Zvcm1hdF90eXBlJywKLSAgICAg ICAgICAgICBmdW5jdGlvbl9hcmd1bWVudHM9ZGljdChmb3JtYXRfdHlwZT0ncCcpLAotICAgICAg ICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0ncGFycXVldCcKLSAgICAgICAgICkpLAotCi0gICAgICAg ICgnI2Zvcm1hdF9vcHRpb25zIHBhc3NpbmcgTm9uZSwgJwotICAgICAgICAgJ2l0IHJldHVybnMg Tm9uZScsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHRlc3RfdHlwZT0nZm9ybWF0X29w dGlvbnMnLAotICAgICAgICAgICAgIGZ1bmN0aW9uX2FyZ3VtZW50cz1kaWN0KGZvcm1hdF90eXBl PSdhdnJvJywgb3B0aW9ucz1Ob25lKSwKLSAgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9Tm9u ZQotICAgICAgICAgKSksCi0gICAgICAgICgnI2Zvcm1hdF9vcHRpb25zIHBhc3NpbmcgZW1wdHkg c3RyaW5nLCAnCi0gICAgICAgICAnaXQgcmV0dXJucyBlbXB0eSBzdHJpbmcnLAotICAgICAgICAg ZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J2Zvcm1hdF9vcHRpb25zJywKLSAgICAgICAg ICAgICBmdW5jdGlvbl9hcmd1bWVudHM9ZGljdChmb3JtYXRfdHlwZT0ncGFycXVldCcsIG9wdGlv bnM9JycpLAotICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0nJwotICAgICAgICAgKSksCi0g ICAgICAgICgnI2Zvcm1hdF9vcHRpb25zIHBhc3NpbmcgImZvcm1hdHRlciBcJ2ZpeGVkd2lkdGhf aW5cJyBudWxsIFwnIFwnIiwgJwotICAgICAgICAgJ2l0IHJldHVybnMgImZvcm1hdHRlciA9ICQk Zml4ZWR3aWR0aF9pbiQkLG51bGwgPSAkJCAkJCInLAotICAgICAgICAgZGljdCgKLSAgICAgICAg ICAgICB0ZXN0X3R5cGU9J2Zvcm1hdF9vcHRpb25zJywKLSAgICAgICAgICAgICBmdW5jdGlvbl9h cmd1bWVudHM9ZGljdChmb3JtYXRfdHlwZT0nY3VzdG9tJywKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvcHRpb25zPSdmb3JtYXR0ZXIgXCdmaXhlZHdpZHRoX2luXCcgJwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwgXCcgXCcn KSwKLSAgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9J2Zvcm1hdHRlciA9ICQkZml4ZWR3aWR0 aF9pbiQkLG51bGwgPSAkJCAkJCcKLSAgICAgICAgICkpLAotICAgICAgICAoJyNmb3JtYXRfb3B0 aW9ucyBwYXNzaW5nICcKLSAgICAgICAgICciZm9ybWF0dGVyIFwnZml4ZWR3aWR0aF9pblwnIGNv bW1hIFwnXCdcJyBudWxsIFwnIFwnIiwgJwotICAgICAgICAgJ2l0IHJldHVybnMgJwotICAgICAg ICAgJyJmb3JtYXR0ZXIgPSAkJGZpeGVkd2lkdGhfaW4kJCxjb21tYSA9ICQkXCckJCxudWxsID0g JCQgJCQiJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgdGVzdF90eXBlPSdmb3JtYXRf b3B0aW9ucycsCi0gICAgICAgICAgICAgZnVuY3Rpb25fYXJndW1lbnRzPWRpY3QoZm9ybWF0X3R5 cGU9J2N1c3RvbScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9u cz0nZm9ybWF0dGVyIFwnZml4ZWR3aWR0aF9pblwnICcKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdjb21tYSBcJ1wnXCcgbnVsbCBcJyBcJycpLAotICAgICAg ICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0nY29tbWEgPSAkJFwnJCQsZm9ybWF0dGVyID0gJCRmaXhl ZHdpZHRoX2luJCQsJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbnVsbCA9ICQkICQk JwotICAgICAgICAgKSksCi0gICAgICAgICgnI2Zvcm1hdF9vcHRpb25zIHBhc3NpbmcgJwotICAg ICAgICAgJyJmb3JtYXR0ZXIgXCdmaXhlZHdpZHRoX2luXCcgbnVsbCBcJyBcJyBwcmVzZXJ2ZV9i bGFua3MgJwotICAgICAgICAgJ1wnb25cJyBjb21tYSBcJ1xcXCdcJyIsICcKLSAgICAgICAgICdp dCByZXR1cm5zICcKLSAgICAgICAgICciZm9ybWF0dGVyID0gJCRmaXhlZHdpZHRoX2luJCQsbnVs bCA9ICQkICQkLHByZXNlcnZlX2JsYW5rcyA9ICcKLSAgICAgICAgICckJG9uJCQsY29tbWEgPSAk JFwnJCQiJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgdGVzdF90eXBlPSdmb3JtYXRf b3B0aW9ucycsCi0gICAgICAgICAgICAgZnVuY3Rpb25fYXJndW1lbnRzPWRpY3QoZm9ybWF0X3R5 cGU9J2N1c3RvbScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9u cz0nZm9ybWF0dGVyIFwnZml4ZWR3aWR0aF9pblwnICcKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdudWxsIFwnIFwnICcKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdwcmVzZXJ2ZV9ibGFua3MgXCdvblwnICcKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21tYSBcJ1wnXCcnKSwK LSAgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9J2NvbW1hID0gJCRcJyQkLGZvcm1hdHRlciA9 ICQkZml4ZWR3aWR0aF9pbiQkLCcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwg PSAkJCAkJCwnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcmVzZXJ2ZV9ibGFua3Mg PSAkJG9uJCQnCi0gICAgICAgICApKSwKLSAgICAgICAgKCcjZm9ybWF0X29wdGlvbnMgV2hlbiBm b3JtYXQgdHlwZSBpcyB0ZXh0ICcKLSAgICAgICAgICdpdCByZXR1cm5zIGVzY2FwZWQgc3RyaW5n JywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgdGVzdF90eXBlPSdmb3JtYXRfb3B0aW9u cycsCi0gICAgICAgICAgICAgZnVuY3Rpb25fYXJndW1lbnRzPWRpY3QoZm9ybWF0X3R5cGU9J3Rl eHQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM9J3NvbWV0 aGluZyBcJ3N0cmFuZ2VcJyAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnb3RoZXIgXCdcJ1wnJyksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PSdv dGhlciAkJFwnJCQgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc29tZXRoaW5nICQk c3RyYW5nZSQkJwotCi0gICAgICAgICApKSwKLSAgICAgICAgKCcjZm9ybWF0X29wdGlvbnMgV2hl biBmb3JtYXQgdHlwZSBpcyBjc3YgJwotICAgICAgICAgJ2l0IHJldHVybnMgZXNjYXBlZCBzdHJp bmcnLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J2Zvcm1hdF9vcHRp b25zJywKLSAgICAgICAgICAgICBmdW5jdGlvbl9hcmd1bWVudHM9ZGljdChmb3JtYXRfdHlwZT0n Y3N2JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPSdzb21l dGhpbmcgXCdzdHJhbmdlXCcgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ290aGVyIFwnXCdcJycpLAotICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0n b3RoZXIgJCRcJyQkICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NvbWV0aGluZyAk JHN0cmFuZ2UkJCcKLQotICAgICAgICAgKSkKLSAgICBdCi0KLSAgICBkZWYgcnVuVGVzdChzZWxm KToKLSAgICAgICAgcmVzdWx0ID0gTm9uZQotICAgICAgICBpZiBzZWxmLnRlc3RfdHlwZSA9PSAn bWFwX2NvbHVtbl9mcm9tX2RhdGFiYXNlJzoKLSAgICAgICAgICAgIHJlc3VsdCA9IG1hcF9jb2x1 bW5fZnJvbV9kYXRhYmFzZSgqKnNlbGYuZnVuY3Rpb25fYXJndW1lbnRzKQotICAgICAgICBlbGlm IHNlbGYudGVzdF90eXBlID09ICdtYXBfdGFibGVfaW5mb3JtYXRpb25fZnJvbV9kYXRhYmFzZSc6 Ci0gICAgICAgICAgICByZXN1bHQgPSBtYXBfdGFibGVfaW5mb3JtYXRpb25fZnJvbV9kYXRhYmFz ZSgKLSAgICAgICAgICAgICAgICAqKnNlbGYuZnVuY3Rpb25fYXJndW1lbnRzKQotICAgICAgICBl bGlmIHNlbGYudGVzdF90eXBlID09ICdtYXBfZXhlY3V0aW9uX2xvY2F0aW9uJzoKLSAgICAgICAg ICAgIHJlc3VsdCA9IG1hcF9leGVjdXRpb25fbG9jYXRpb24oKipzZWxmLmZ1bmN0aW9uX2FyZ3Vt ZW50cykKLSAgICAgICAgZWxpZiBzZWxmLnRlc3RfdHlwZSA9PSAnbWFwX2Zvcm1hdF90eXBlJzoK LSAgICAgICAgICAgIHJlc3VsdCA9IG1hcF9mb3JtYXRfdHlwZSgqKnNlbGYuZnVuY3Rpb25fYXJn dW1lbnRzKQotICAgICAgICBlbGlmIHNlbGYudGVzdF90eXBlID09ICdpc193ZWJfdGFibGUnOgot ICAgICAgICAgICAgcmVzdWx0ID0gaXNfd2ViX3RhYmxlKCoqc2VsZi5mdW5jdGlvbl9hcmd1bWVu dHMpCi0gICAgICAgIGVsaWYgc2VsZi50ZXN0X3R5cGUgPT0gJ2Zvcm1hdF9vcHRpb25zJzoKLSAg ICAgICAgICAgIHJlc3VsdCA9IGZvcm1hdF9vcHRpb25zKCoqc2VsZi5mdW5jdGlvbl9hcmd1bWVu dHMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0LCBzZWxmLmV4cGVjdGVkX3Jlc3Vs dCkKKworCitjbGFzcyBUZXN0TWFwcGluZ1V0aWxzKG9iamVjdCk6CisgICAgZGVmIHRlc3RfbWFw X2NvbHVtbl9mcm9tX2RhdGFiYXNlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBy ZXRyaWV2aW5nIGNvbHVtbnMgZnJvbSB0YWJsZQorICAgICAgICBJdCByZXR1cm5zIG9ubHkgdGhl IG5hbWUgYW5kIHR5cGUKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9IG1hcF9jb2x1bW5f ZnJvbV9kYXRhYmFzZSgKKyAgICAgICAgICAgIGNvbHVtbl9pbmZvcm1hdGlvbj1kaWN0KAorICAg ICAgICAgICAgICAgIG5hbWU9J3NvbWUgbmFtZScsCisgICAgICAgICAgICAgICAgY2x0eXBlPSdz b21lIHR5cGUnLAorICAgICAgICAgICAgICAgIG90aGVyX2NvbHVtbj0nc29tZSBvdGhlciBjb2x1 bW4nCisgICAgICAgICAgICApCisgICAgICAgICkKKworICAgICAgICByZXN1bHQgfCBzaG91bGQu YmUuZXF1YWwudG8oZGljdChuYW1lPSdzb21lIG5hbWUnLCB0eXBlPSdzb21lIHR5cGUnKSkKKwor ICAgIGRlZiB0ZXN0X21hcF90YWJsZV9pbmZvcm1hdGlvbl9mcm9tX2RhdGFiYXNlX3VzaW5nX3Vy aShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gcmV0cmlldmluZyBpbmZvcm1hdGlv biBmcm9tIHdlYiB0YWJsZSB1c2luZyB1cmkKKyAgICAgICAgSXQgcmV0dXJucyBhbGwgZmllbGRz CisgICAgICAgICIiIgorICAgICAgICByZXN1bHQgPSBtYXBfdGFibGVfaW5mb3JtYXRpb25fZnJv bV9kYXRhYmFzZSgKKyAgICAgICAgICAgIHRhYmxlX2luZm9ybWF0aW9uPWRpY3QoCisgICAgICAg ICAgICAgICAgdXJpbG9jYXRpb249J3todHRwOi8vc29tZXVybC5jb219JywKKyAgICAgICAgICAg ICAgICBleGVjbG9jYXRpb249WydBTExfU0VHTUVOVFMnXSwKKyAgICAgICAgICAgICAgICBmbXR0 eXBlPSdiJywKKyAgICAgICAgICAgICAgICBmbXRvcHRzPSdkZWxpbWl0ZXIgXCcsXCcgbnVsbCBc J1wnIGVzY2FwZSBcJyJcJyBxdW90ZSBcJyJcJycsCisgICAgICAgICAgICAgICAgY29tbWFuZD1O b25lLAorICAgICAgICAgICAgICAgIHJlamVjdGxpbWl0PU5vbmUsCisgICAgICAgICAgICAgICAg cmVqZWN0bGltaXR0eXBlPU5vbmUsCisgICAgICAgICAgICAgICAgZXJydGJsbmFtZT1Ob25lLAor ICAgICAgICAgICAgICAgIGVycm9ydG9maWxlPU5vbmUsCisgICAgICAgICAgICAgICAgcGdfZW5j b2RpbmdfdG9fY2hhcj0nVVRGOCcsCisgICAgICAgICAgICAgICAgd3JpdGFibGU9RmFsc2UsCisg ICAgICAgICAgICAgICAgb3B0aW9ucz1Ob25lLAorICAgICAgICAgICAgICAgIGRpc3RyaWJ1dGlv bj1Ob25lLAorICAgICAgICAgICAgICAgIG5hbWU9J3NvbWVfdGFibGVfbmFtZScsCisgICAgICAg ICAgICAgICAgbmFtZXNwYWNlPSdzb21lX25hbWVfc3BhY2UnCisgICAgICAgICAgICApCisgICAg ICAgICkKKworICAgICAgICByZXN1bHQgfCBzaG91bGQuYmUuZXF1YWwudG8oZGljdCgKKyAgICAg ICAgICAgIHVyaXM9WydodHRwOi8vc29tZXVybC5jb20nXSwKKyAgICAgICAgICAgIGlzV2ViPVRy dWUsCisgICAgICAgICAgICBleGVjdXRpb25Mb2NhdGlvbj1kaWN0KHR5cGU9J2FsbF9zZWdtZW50 cycsIHZhbHVlPU5vbmUpLAorICAgICAgICAgICAgZm9ybWF0VHlwZT0nY3VzdG9tJywKKyAgICAg ICAgICAgIGZvcm1hdE9wdGlvbnM9J2RlbGltaXRlciA9ICQkLCQkLGVzY2FwZSA9ICQkIiQkLCcK KyAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwgPSAkJCQkLHF1b3RlID0gJCQiJCQnLAor ICAgICAgICAgICAgY29tbWFuZD1Ob25lLAorICAgICAgICAgICAgcmVqZWN0TGltaXQ9Tm9uZSwK KyAgICAgICAgICAgIHJlamVjdExpbWl0VHlwZT1Ob25lLAorICAgICAgICAgICAgZXJyb3JUYWJs ZU5hbWU9Tm9uZSwKKyAgICAgICAgICAgIGVycm9Ub0ZpbGU9Tm9uZSwKKyAgICAgICAgICAgIHBn RW5jb2RpbmdUb0NoYXI9J1VURjgnLAorICAgICAgICAgICAgd3JpdGFibGU9RmFsc2UsCisgICAg ICAgICAgICBvcHRpb25zPU5vbmUsCisgICAgICAgICAgICBkaXN0cmlidXRpb249Tm9uZSwKKyAg ICAgICAgICAgIG5hbWU9J3NvbWVfdGFibGVfbmFtZScsCisgICAgICAgICAgICBuYW1lc3BhY2U9 J3NvbWVfbmFtZV9zcGFjZScKKyAgICAgICAgKSkKKworICAgIGRlZiB0ZXN0X21hcF90YWJsZV9p bmZvcm1hdGlvbl9mcm9tX2RhdGFiYXNlX3VzaW5nX2NtZChzZWxmKToKKyAgICAgICAgIiIiCisg ICAgICAgIFdoZW4gcmV0cmlldmluZyBpbmZvcm1hdGlvbiBmcm9tIHdlYiB0YWJsZSB1c2luZyBj bWQKKyAgICAgICAgSXQgcmV0dXJucyBhbGwgZmllbGRzCisgICAgICAgICIiIgorICAgICAgICBy ZXN1bHQgPSBtYXBfdGFibGVfaW5mb3JtYXRpb25fZnJvbV9kYXRhYmFzZSgKKyAgICAgICAgICAg IHRhYmxlX2luZm9ybWF0aW9uPWRpY3QoCisgICAgICAgICAgICAgICAgdXJpbG9jYXRpb249Tm9u ZSwKKyAgICAgICAgICAgICAgICBleGVjbG9jYXRpb249WydBTExfU0VHTUVOVFMnXSwKKyAgICAg ICAgICAgICAgICBmbXR0eXBlPSdiJywKKyAgICAgICAgICAgICAgICBmbXRvcHRzPSdkZWxpbWl0 ZXIgXCcsXCcgbnVsbCBcJ1wnIGVzY2FwZSBcJyJcJyBxdW90ZSBcJyJcJycsCisgICAgICAgICAg ICAgICAgY29tbWFuZD0nY2F0IC90bXAvcGxhY2VzIHx8IGVjaG8gXCdlcnJvclwnJywKKyAgICAg ICAgICAgICAgICByZWplY3RsaW1pdD1Ob25lLAorICAgICAgICAgICAgICAgIHJlamVjdGxpbWl0 dHlwZT1Ob25lLAorICAgICAgICAgICAgICAgIGVycnRibG5hbWU9Tm9uZSwKKyAgICAgICAgICAg ICAgICBlcnJvcnRvZmlsZT1Ob25lLAorICAgICAgICAgICAgICAgIHBnX2VuY29kaW5nX3RvX2No YXI9J1VURjgnLAorICAgICAgICAgICAgICAgIHdyaXRhYmxlPUZhbHNlLAorICAgICAgICAgICAg ICAgIG9wdGlvbnM9Tm9uZSwKKyAgICAgICAgICAgICAgICBkaXN0cmlidXRpb249Tm9uZSwKKyAg ICAgICAgICAgICAgICBuYW1lPSdzb21lX3RhYmxlX25hbWUnLAorICAgICAgICAgICAgICAgIG5h bWVzcGFjZT0nc29tZV9uYW1lX3NwYWNlJworICAgICAgICAgICAgKQorICAgICAgICApCisKKyAg ICAgICAgcmVzdWx0IHwgc2hvdWxkLmJlLmVxdWFsLnRvKGRpY3QoCisgICAgICAgICAgICB1cmlz PU5vbmUsCisgICAgICAgICAgICBpc1dlYj1UcnVlLAorICAgICAgICAgICAgZXhlY3V0aW9uTG9j YXRpb249ZGljdCh0eXBlPSdhbGxfc2VnbWVudHMnLCB2YWx1ZT1Ob25lKSwKKyAgICAgICAgICAg IGZvcm1hdFR5cGU9J2N1c3RvbScsCisgICAgICAgICAgICBmb3JtYXRPcHRpb25zPSdkZWxpbWl0 ZXIgPSAkJCwkJCxlc2NhcGUgPSAkJCIkJCwnCisgICAgICAgICAgICAgICAgICAgICAgICAgICdu dWxsID0gJCQkJCxxdW90ZSA9ICQkIiQkJywKKyAgICAgICAgICAgIGNvbW1hbmQ9J2NhdCAvdG1w L3BsYWNlcyB8fCBlY2hvIFwnZXJyb3JcJycsCisgICAgICAgICAgICByZWplY3RMaW1pdD1Ob25l LAorICAgICAgICAgICAgcmVqZWN0TGltaXRUeXBlPU5vbmUsCisgICAgICAgICAgICBlcnJvclRh YmxlTmFtZT1Ob25lLAorICAgICAgICAgICAgZXJyb1RvRmlsZT1Ob25lLAorICAgICAgICAgICAg cGdFbmNvZGluZ1RvQ2hhcj0nVVRGOCcsCisgICAgICAgICAgICB3cml0YWJsZT1GYWxzZSwKKyAg ICAgICAgICAgIG9wdGlvbnM9Tm9uZSwKKyAgICAgICAgICAgIGRpc3RyaWJ1dGlvbj1Ob25lLAor ICAgICAgICAgICAgbmFtZT0nc29tZV90YWJsZV9uYW1lJywKKyAgICAgICAgICAgIG5hbWVzcGFj ZT0nc29tZV9uYW1lX3NwYWNlJworICAgICAgICApKQorCisgICAgZGVmIHRlc3RfbWFwX3RhYmxl X2luZm9ybWF0aW9uX2Zyb21fbm9uZV93ZWJfdGFibGUoc2VsZik6CisgICAgICAgICIiIgorICAg ICAgICBXaGVuIHJldHJpZXZpbmcgaW5mb3JtYXRpb24gZnJvbSBub25lIHdlYiB0YWJsZQorICAg ICAgICBJdCByZXR1cm5zIGFsbCBmaWVsZHMKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9 IG1hcF90YWJsZV9pbmZvcm1hdGlvbl9mcm9tX2RhdGFiYXNlKAorICAgICAgICAgICAgdGFibGVf aW5mb3JtYXRpb249ZGljdCgKKyAgICAgICAgICAgICAgICB1cmlsb2NhdGlvbj0ne2dwZmRpc3Q6 Ly9maWxlaG9zdDo4MDgxLyouY3N2fScsCisgICAgICAgICAgICAgICAgZXhlY2xvY2F0aW9uPVsn QUxMX1NFR01FTlRTJ10sCisgICAgICAgICAgICAgICAgZm10dHlwZT0nYicsCisgICAgICAgICAg ICAgICAgZm10b3B0cz0nZGVsaW1pdGVyIFwnLFwnIG51bGwgXCdcJyBlc2NhcGUgXCciXCcgcXVv dGUgXCciXCcnLAorICAgICAgICAgICAgICAgIGNvbW1hbmQ9Tm9uZSwKKyAgICAgICAgICAgICAg ICByZWplY3RsaW1pdD1Ob25lLAorICAgICAgICAgICAgICAgIHJlamVjdGxpbWl0dHlwZT1Ob25l LAorICAgICAgICAgICAgICAgIGVycnRibG5hbWU9Tm9uZSwKKyAgICAgICAgICAgICAgICBlcnJv cnRvZmlsZT1Ob25lLAorICAgICAgICAgICAgICAgIHBnX2VuY29kaW5nX3RvX2NoYXI9J1VURjgn LAorICAgICAgICAgICAgICAgIHdyaXRhYmxlPUZhbHNlLAorICAgICAgICAgICAgICAgIG9wdGlv bnM9Tm9uZSwKKyAgICAgICAgICAgICAgICBkaXN0cmlidXRpb249Tm9uZSwKKyAgICAgICAgICAg ICAgICBuYW1lPSdzb21lX3RhYmxlX25hbWUnLAorICAgICAgICAgICAgICAgIG5hbWVzcGFjZT0n c29tZV9uYW1lX3NwYWNlJworICAgICAgICAgICAgKQorICAgICAgICApCisKKyAgICAgICAgcmVz dWx0IHwgc2hvdWxkLmJlLmVxdWFsLnRvKGRpY3QoCisgICAgICAgICAgICB1cmlzPVsnZ3BmZGlz dDovL2ZpbGVob3N0OjgwODEvKi5jc3YnXSwKKyAgICAgICAgICAgIGlzV2ViPUZhbHNlLAorICAg ICAgICAgICAgZXhlY3V0aW9uTG9jYXRpb249ZGljdCh0eXBlPSdhbGxfc2VnbWVudHMnLCB2YWx1 ZT1Ob25lKSwKKyAgICAgICAgICAgIGZvcm1hdFR5cGU9J2N1c3RvbScsCisgICAgICAgICAgICBm b3JtYXRPcHRpb25zPSdkZWxpbWl0ZXIgPSAkJCwkJCxlc2NhcGUgPSAkJCIkJCwnCisgICAgICAg ICAgICAgICAgICAgICAgICAgICdudWxsID0gJCQkJCxxdW90ZSA9ICQkIiQkJywKKyAgICAgICAg ICAgIGNvbW1hbmQ9Tm9uZSwKKyAgICAgICAgICAgIHJlamVjdExpbWl0PU5vbmUsCisgICAgICAg ICAgICByZWplY3RMaW1pdFR5cGU9Tm9uZSwKKyAgICAgICAgICAgIGVycm9yVGFibGVOYW1lPU5v bmUsCisgICAgICAgICAgICBlcnJvVG9GaWxlPU5vbmUsCisgICAgICAgICAgICBwZ0VuY29kaW5n VG9DaGFyPSdVVEY4JywKKyAgICAgICAgICAgIHdyaXRhYmxlPUZhbHNlLAorICAgICAgICAgICAg b3B0aW9ucz1Ob25lLAorICAgICAgICAgICAgZGlzdHJpYnV0aW9uPU5vbmUsCisgICAgICAgICAg ICBuYW1lPSdzb21lX3RhYmxlX25hbWUnLAorICAgICAgICAgICAgbmFtZXNwYWNlPSdzb21lX25h bWVfc3BhY2UnCisgICAgICAgICkpCisKKyAgICBkZWYgdGVzdF9pc193ZWJfdGFibGVfd2l0aF9o dHRwKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB1cmwgc3RhcnRzIHdpdGggaHR0 cAorICAgICAgICBBbmQgY29tbWFuZCBpcyBOb25lCisgICAgICAgIEl0IHJldHVybnMgdHJ1ZQor ICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0ID0gaXNfd2ViX3RhYmxlKAorICAgICAgICAgICAg dXJpcz0ne2h0dHA6Ly9zb21ldXJsLmNvbX0nLAorICAgICAgICAgICAgY29tbWFuZD1Ob25lCisg ICAgICAgICkKKworICAgICAgICByZXN1bHQgfCBzaG91bGQuYmUudHJ1ZQorCisgICAgZGVmIHRl c3RfaXNfd2ViX3RhYmxlX3dpdGhfaHR0cHMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBX aGVuIHVybCBzdGFydHMgd2l0aCBodHRwcworICAgICAgICBBbmQgY29tbWFuZCBpcyBOb25lCisg ICAgICAgIEl0IHJldHVybnMgdHJ1ZQorICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0ID0gaXNf d2ViX3RhYmxlKAorICAgICAgICAgICAgdXJpcz0ne2h0dHBzOi8vc29tZXVybC5jb219JywKKyAg ICAgICAgICAgIGNvbW1hbmQ9Tm9uZQorICAgICAgICApCisKKyAgICAgICAgcmVzdWx0IHwgc2hv dWxkLmJlLnRydWUKKworICAgIGRlZiB0ZXN0X2lzX3dlYl90YWJsZV93aXRoX3MzKHNlbGYpOgor ICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB1cmwgc3RhcnRzIHdpdGggczMKKyAgICAgICAgQW5k IGNvbW1hbmQgaXMgTm9uZQorICAgICAgICBJdCByZXR1cm5zIGZhbHNlCisgICAgICAgICIiIgor ICAgICAgICByZXN1bHQgPSBpc193ZWJfdGFibGUoCisgICAgICAgICAgICB1cmlzPSd7czM6Ly9z b21ldXJsLmNvbX0nLAorICAgICAgICAgICAgY29tbWFuZD1Ob25lCisgICAgICAgICkKKworICAg ICAgICByZXN1bHQgfCBzaG91bGQuYmUuZmFsc2UKKworICAgIGRlZiB0ZXN0X2lzX3dlYl90YWJs ZV93aXRoX2NvbW1hbmRfbm9fdXJsKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB1 cmwgaXMgTm9uZQorICAgICAgICBBbmQgY29tbWFuZCBpcyBub3Qgbm9uZQorICAgICAgICBJdCBy ZXR1cm5zIHRydWUKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9IGlzX3dlYl90YWJsZSgK KyAgICAgICAgICAgIHVyaXM9Tm9uZSwKKyAgICAgICAgICAgIGNvbW1hbmQ9J1NvbWUgY29tbWFu ZCcKKyAgICAgICAgKQorCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5iZS50cnVlCisKKyAgICBk ZWYgdGVzdF9tYXBfZXhlY3V0aW9uX2xvY2F0aW9uX3dpdGhfaG9zdChzZWxmKToKKyAgICAgICAg IiIiCisgICAgICAgIFdoZW4gdmFsdWUgaXMgIkhPU1Q6IDEuMS4xLjEiLAorICAgICAgICBJdCBy ZXR1cm5zIHt0eXBlOiAiaG9zdCIsIHZhbHVlOiAiMS4xLjEuMSJ9JworICAgICAgICAiIiIKKyAg ICAgICAgcmVzdWx0ID0gbWFwX2V4ZWN1dGlvbl9sb2NhdGlvbigKKyAgICAgICAgICAgIGV4ZWN1 dGlvbl9sb2NhdGlvbj1bJ0hPU1Q6IDEuMS4xLjEnXQorICAgICAgICApCisKKyAgICAgICAgcmVz dWx0IHwgc2hvdWxkLmJlLmVxdWFsLnRvKGRpY3QodHlwZT0naG9zdCcsIHZhbHVlPScxLjEuMS4x JykpCisKKyAgICBkZWYgdGVzdF9tYXBfZXhlY3V0aW9uX2xvY2F0aW9uX3Blcl9ob3N0KHNlbGYp OgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB2YWx1ZSBpcyAiUEVSX0hPU1QiLAorICAgICAg ICBJdCByZXR1cm5zIHt0eXBlOiAicGVyX2hvc3QiLCB2YWx1ZTogTm9uZSJ9JworICAgICAgICAi IiIKKyAgICAgICAgcmVzdWx0ID0gbWFwX2V4ZWN1dGlvbl9sb2NhdGlvbigKKyAgICAgICAgICAg IGV4ZWN1dGlvbl9sb2NhdGlvbj1bJ1BFUl9IT1NUJ10KKyAgICAgICAgKQorCisgICAgICAgIHJl c3VsdCB8IHNob3VsZC5iZS5lcXVhbC50byhkaWN0KHR5cGU9J3Blcl9ob3N0JywgdmFsdWU9Tm9u ZSkpCisKKyAgICBkZWYgdGVzdF9tYXBfZXhlY3V0aW9uX2xvY2F0aW9uX21hc3RlcihzZWxmKToK KyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdmFsdWUgaXMgIk1BU1RFUl9PTkxZIiwKKyAgICAg ICAgSXQgcmV0dXJucyB7dHlwZTogIm1hc3Rlcl9vbmx5IiwgdmFsdWU6IE5vbmUifScKKyAgICAg ICAgIiIiCisgICAgICAgIHJlc3VsdCA9IG1hcF9leGVjdXRpb25fbG9jYXRpb24oCisgICAgICAg ICAgICBleGVjdXRpb25fbG9jYXRpb249WydNQVNURVJfT05MWSddCisgICAgICAgICkKKworICAg ICAgICByZXN1bHQgfCBzaG91bGQuYmUuZXF1YWwudG8oZGljdCh0eXBlPSdtYXN0ZXJfb25seScs IHZhbHVlPU5vbmUpKQorCisgICAgZGVmIHRlc3RfbWFwX2V4ZWN1dGlvbl9sb2NhdGlvbl9zZWdt ZW50X2lkKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB2YWx1ZSBpcyAiU0VHTUVO VF9JRDogMTIzNCIsCisgICAgICAgIEl0IHJldHVybnMge3R5cGU6ICJzZWdtZW50IiwgdmFsdWU6 IDEyMzQifScKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9IG1hcF9leGVjdXRpb25fbG9j YXRpb24oCisgICAgICAgICAgICBleGVjdXRpb25fbG9jYXRpb249WydTRUdNRU5UX0lEOiAxMjM0 J10KKyAgICAgICAgKQorCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5iZS5lcXVhbC50byhkaWN0 KHR5cGU9J3NlZ21lbnQnLCB2YWx1ZT0nMTIzNCcpKQorCisgICAgZGVmIHRlc3RfbWFwX2V4ZWN1 dGlvbl9sb2NhdGlvbl90b3RhbF9zZWdzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hl biB2YWx1ZSBpcyAiVE9UQUxfU0VHUzogNCIsCisgICAgICAgIEl0IHJldHVybnMge3R5cGU6ICJz ZWdtZW50cyIsIHZhbHVlOiA0In0nCisgICAgICAgICIiIgorICAgICAgICByZXN1bHQgPSBtYXBf ZXhlY3V0aW9uX2xvY2F0aW9uKAorICAgICAgICAgICAgZXhlY3V0aW9uX2xvY2F0aW9uPVsnVE9U QUxfU0VHUzogNCddCisgICAgICAgICkKKworICAgICAgICByZXN1bHQgfCBzaG91bGQuYmUuZXF1 YWwudG8oZGljdCh0eXBlPSdzZWdtZW50cycsIHZhbHVlPSc0JykpCisKKyAgICBkZWYgdGVzdF9t YXBfZXhlY3V0aW9uX2xvY2F0aW9uX2FsbF9zZWdtZW50cyhzZWxmKToKKyAgICAgICAgIiIiCisg ICAgICAgIFdoZW4gdmFsdWUgaXMgIkFMTF9TRUdNRU5UUyIsCisgICAgICAgIEl0IHJldHVybnMg e3R5cGU6ICJhbGxfc2VnbWVudHMiLCB2YWx1ZTogTm9uZSJ9JworICAgICAgICAiIiIKKyAgICAg ICAgcmVzdWx0ID0gbWFwX2V4ZWN1dGlvbl9sb2NhdGlvbigKKyAgICAgICAgICAgIGV4ZWN1dGlv bl9sb2NhdGlvbj1bJ0FMTF9TRUdNRU5UUyddCisgICAgICAgICkKKworICAgICAgICByZXN1bHQg fCBzaG91bGQuYmUuZXF1YWwudG8oZGljdCh0eXBlPSdhbGxfc2VnbWVudHMnLCB2YWx1ZT1Ob25l KSkKKworICAgIGRlZiB0ZXN0X21hcF9mb3JtYXRfdHlwZV93aXRoX2Moc2VsZik6CisgICAgICAg ICIiIgorICAgICAgICBXaGVuIHZhbHVlIGlzICJjIiwKKyAgICAgICAgSXQgcmV0dXJucyBjc3YK KyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9IG1hcF9mb3JtYXRfdHlwZShmb3JtYXRfdHlw ZT0nYycpCisKKyAgICAgICAgcmVzdWx0IHwgc2hvdWxkLmJlLmVxdWFsLnRvKCdjc3YnKQorCisg ICAgZGVmIHRlc3RfbWFwX2Zvcm1hdF90eXBlX3dpdGhfdW5leHBlY3RlZF92YWx1ZShzZWxmKToK KyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdmFsdWUgaXMgInVuZXhwZWN0ZWQgdmFsdWUiLAor ICAgICAgICBJdCByZXR1cm5zIGNzdgorICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0ID0gbWFw X2Zvcm1hdF90eXBlKGZvcm1hdF90eXBlPSdzb21ldGhpbmcgc3RyYW5nZScpCisKKyAgICAgICAg cmVzdWx0IHwgc2hvdWxkLmJlLmVxdWFsLnRvKCdjc3YnKQorCisgICAgZGVmIHRlc3RfbWFwX2Zv cm1hdF90eXBlX3dpdGhfYihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdmFsdWUg aXMgImIiLAorICAgICAgICBJdCByZXR1cm5zIGN1c3RvbQorICAgICAgICAiIiIKKyAgICAgICAg cmVzdWx0ID0gbWFwX2Zvcm1hdF90eXBlKGZvcm1hdF90eXBlPSdiJykKKworICAgICAgICByZXN1 bHQgfCBzaG91bGQuYmUuZXF1YWwudG8oJ2N1c3RvbScpCisKKyAgICBkZWYgdGVzdF9tYXBfZm9y bWF0X3R5cGVfd2l0aF9hKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB2YWx1ZSBp cyAiYSIsCisgICAgICAgIEl0IHJldHVybnMgYXZybworICAgICAgICAiIiIKKyAgICAgICAgcmVz dWx0ID0gbWFwX2Zvcm1hdF90eXBlKGZvcm1hdF90eXBlPSdhJykKKworICAgICAgICByZXN1bHQg fCBzaG91bGQuYmUuZXF1YWwudG8oJ2F2cm8nKQorCisgICAgZGVmIHRlc3RfbWFwX2Zvcm1hdF90 eXBlX3dpdGhfcChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdmFsdWUgaXMgInAi LAorICAgICAgICBJdCByZXR1cm5zIHBhcnF1ZXQKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3Vs dCA9IG1hcF9mb3JtYXRfdHlwZShmb3JtYXRfdHlwZT0ncCcpCisKKyAgICAgICAgcmVzdWx0IHwg c2hvdWxkLmJlLmVxdWFsLnRvKCdwYXJxdWV0JykKKworICAgIGRlZiB0ZXN0X2Zvcm1hdF9vcHRp b25zX3dpdGhfbm9uZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gcGFzc2luZyBO b25lCisgICAgICAgIEl0IHJldHVybnMgTm9uZQorICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0 ID0gZm9ybWF0X29wdGlvbnMoZm9ybWF0X3R5cGU9J2F2cm8nLCBvcHRpb25zPU5vbmUpCisKKyAg ICAgICAgcmVzdWx0IHwgc2hvdWxkLmJlLm5vbmUKKworICAgIGRlZiB0ZXN0X2Zvcm1hdF9vcHRp b25zX3dpdGhfZW1wdHlfc3RyaW5nKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBw YXNzaW5nIGVtcHR5IHN0cmluZworICAgICAgICBJdCByZXR1cm5zIGVtcHR5IHN0cmluZworICAg ICAgICAiIiIKKyAgICAgICAgcmVzdWx0ID0gZm9ybWF0X29wdGlvbnMoZm9ybWF0X3R5cGU9J3Bh cnF1ZXQnLCBvcHRpb25zPScnKQorCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5iZS5lcXVhbC50 bygnJykKKworICAgIGRlZiB0ZXN0X2Zvcm1hdF9vcHRpb25zX3dpdGhfZm9ybWF0dGVyX2ZpeGVk d2lkdGgoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHBhc3Npbmcgb3B0aW9uICdm aXhlZHdpZHRoX2luJyBudWxsICcgJworICAgICAgICBJdCByZXR1cm5zICJmb3JtYXR0ZXIgPSAk JGZpeGVkd2lkdGhfaW4kJCxudWxsID0gJCQgJCQiCisgICAgICAgICIiIgorICAgICAgICByZXN1 bHQgPSBmb3JtYXRfb3B0aW9ucygKKyAgICAgICAgICAgIGZvcm1hdF90eXBlPSdjdXN0b20nLAor ICAgICAgICAgICAgb3B0aW9ucz0iZm9ybWF0dGVyICdmaXhlZHdpZHRoX2luJyBudWxsICcgJyIK KyAgICAgICAgKQorCisgICAgICAgIHJlc3VsdCB8IFwKKyAgICAgICAgICAgIHNob3VsZC5iZS5l cXVhbC50bygnZm9ybWF0dGVyID0gJCRmaXhlZHdpZHRoX2luJCQsbnVsbCA9ICQkICQkJykKKwor ICAgIGRlZiB0ZXN0X2Zvcm1hdF9vcHRpb25zX3dpdGhfZm9ybWF0dGVyX2ZpeGVkd2lkdGhfY29t bWEoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHBhc3Npbmcgb3B0aW9uICdmaXhl ZHdpZHRoX2luJyBjb21tYSAnJycgbnVsbCAnICcKKyAgICAgICAgSXQgcmV0dXJucyAiZm9ybWF0 dGVyID0gJCRmaXhlZHdpZHRoX2luJCQsY29tbWEgPSAkJFwnJCQsbnVsbCA9ICQkICQkIgorICAg ICAgICAiIiIKKyAgICAgICAgcmVzdWx0ID0gZm9ybWF0X29wdGlvbnMoCisgICAgICAgICAgICBm b3JtYXRfdHlwZT0nY3VzdG9tJywKKyAgICAgICAgICAgIG9wdGlvbnM9ImZvcm1hdHRlciAnZml4 ZWR3aWR0aF9pbicgY29tbWEgJycnIG51bGwgJyAnIgorICAgICAgICApCisKKyAgICAgICAgcmVz dWx0IHwgc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAgICAgImNvbW1hID0gJCQnJCQsIgor ICAgICAgICAgICAgImZvcm1hdHRlciA9ICQkZml4ZWR3aWR0aF9pbiQkLCIKKyAgICAgICAgICAg ICJudWxsID0gJCQgJCQiCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X2Zvcm1hdF9vcHRpb25z X3dpdGhfZm9ybWF0dGVyX3ByZXNlcnZlX2JsYW5rcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAg ICAgIFdoZW4gcGFzc2luZyBvcHRpb24gJ2ZpeGVkd2lkdGhfaW4nIG51bGwgJyAnIHByZXNlcnZl X2JsYW5rcworICAgICAgICAnb24nIGNvbW1hICdcJycKKyAgICAgICAgSXQgcmV0dXJucyAiZm9y bWF0dGVyID0gJCRmaXhlZHdpZHRoX2luJCQsCisgICAgICAgIG51bGwgPSAkJCAkJCxwcmVzZXJ2 ZV9ibGFua3MgPSAkJG9uJCQsY29tbWEgPSAkJCckJCInCisgICAgICAgICIiIgorICAgICAgICBy ZXN1bHQgPSBmb3JtYXRfb3B0aW9ucygKKyAgICAgICAgICAgIGZvcm1hdF90eXBlPSdjdXN0b20n LAorICAgICAgICAgICAgb3B0aW9ucz0iZm9ybWF0dGVyICdmaXhlZHdpZHRoX2luJyAiCisgICAg ICAgICAgICAgICAgICAgICJudWxsICcgJyAiCisgICAgICAgICAgICAgICAgICAgICJwcmVzZXJ2 ZV9ibGFua3MgJ29uJyAiCisgICAgICAgICAgICAgICAgICAgICJjb21tYSAnJyciCisgICAgICAg ICkKKworICAgICAgICByZXN1bHQgfCBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAgICAi Y29tbWEgPSAkJCckJCxmb3JtYXR0ZXIgPSAkJGZpeGVkd2lkdGhfaW4kJCwiCisgICAgICAgICAg ICAibnVsbCA9ICQkICQkLCIKKyAgICAgICAgICAgICJwcmVzZXJ2ZV9ibGFua3MgPSAkJG9uJCQi CisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X2Zvcm1hdF9vcHRpb25zX3dpdGhfdGV4dChzZWxm KToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gcGFzc2luZyBmb3JtYXQgdHlwZSBpcyB0ZXh0 CisgICAgICAgIGl0IHJldHVybnMgZXNjYXBlZCBzdHJpbmcKKyAgICAgICAgIiIiCisgICAgICAg IHJlc3VsdCA9IGZvcm1hdF9vcHRpb25zKAorICAgICAgICAgICAgZm9ybWF0X3R5cGU9J3RleHQn LAorICAgICAgICAgICAgb3B0aW9ucz0ic29tZXRoaW5nICdzdHJhbmdlJyBvdGhlciAnJyciCisg ICAgICAgICkKKworICAgICAgICByZXN1bHQgfCBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAg ICAgICAib3RoZXIgJCQnJCQgc29tZXRoaW5nICQkc3RyYW5nZSQkIgorICAgICAgICApCisKKyAg ICBkZWYgdGVzdF9mb3JtYXRfb3B0aW9uc193aXRoX2NzdihzZWxmKToKKyAgICAgICAgIiIiCisg ICAgICAgIFdoZW4gcGFzc2luZyBmb3JtYXQgdHlwZSBpcyBjc3YKKyAgICAgICAgaXQgcmV0dXJu cyBlc2NhcGVkIHN0cmluZworICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0ID0gZm9ybWF0X29w dGlvbnMoCisgICAgICAgICAgICBmb3JtYXRfdHlwZT0nY3N2JywKKyAgICAgICAgICAgIG9wdGlv bnM9InNvbWV0aGluZyAnc3RyYW5nZScgb3RoZXIgJycnIgorICAgICAgICApCisKKyAgICAgICAg cmVzdWx0IHwgc2hvdWxkLmJlLmVxdWFsLnRvKCJvdGhlciAkJCckJCBzb21ldGhpbmcgJCRzdHJh bmdlJCQiKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy90ZXN0cy90ZXN0X3Byb3BlcnRpZXMucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0 ZXJuYWxfdGFibGVzL3Rlc3RzL3Rlc3RfcHJvcGVydGllcy5weQppbmRleCAyODhmMWI0NS4uMTA4 MTAwZTggMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9leHRlcm5hbF90YWJsZXMvdGVzdHMvdGVzdF9wcm9wZXJ0aWVzLnB5Cisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9l eHRlcm5hbF90YWJsZXMvdGVzdHMvdGVzdF9wcm9wZXJ0aWVzLnB5CkBAIC04LDExICs4LDEyIEBA CiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIwogaW1wb3J0IHN5cwogCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hv dWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFz ZXMgXAogICAgIC5leHRlcm5hbF90YWJsZXMgaW1wb3J0IFByb3BlcnRpZXMKIGZyb20gcGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0ZXJuYWxfdGFibGVz IFwKLSAgICAucHJvcGVydGllcyBpbXBvcnQgUHJvcGVydGllc0V4Y2VwdGlvbiwgUHJvcGVydGll c1RhYmxlTm90Rm91bmRFeGNlcHRpb24KLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQg QmFzZVRlc3RHZW5lcmF0b3IKKyAgICAucHJvcGVydGllcyBpbXBvcnQgUHJvcGVydGllc0V4Y2Vw dGlvbgogCiBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDMpOgogICAgIGZyb20gbW9jayBpbXBv cnQgTWFnaWNNb2NrLCBwYXRjaApAQCAtMjAsMTM3ICsyMSwxMTQgQEAgZWxzZToKICAgICBmcm9t IHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IE1hZ2ljTW9jaywgcGF0Y2gKIAogCi1jbGFzcyBUZXN0UHJv cGVydGllcyhCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAo JyNwcm9wZXJ0aWVzIFdoZW4gcmV0cmlldmluZyB0aGUgcHJvcGVydGllcyBvZiBhIGV4dGVybmFs IHRhYmxlICcKLSAgICAgICAgICdhbmQgdGhlIHRhYmxlIGV4aXN0cywgJwotICAgICAgICAgJ2l0 IHJldHVybiB0aGUgcHJvcGVydGllcyAnLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB0 ZXN0X3R5cGU9J3Byb3BlcnRpZXMnLAotICAgICAgICAgICAgIGZ1bmN0aW9uX3BhcmFtZXRlcnM9 ZGljdCgKLSAgICAgICAgICAgICAgICAgdGFibGVfb2lkPTExCi0gICAgICAgICAgICAgKSwKLQot ICAgICAgICAgICAgIGNvbm5lY3Rpb249TWFnaWNNb2NrKGV4ZWN1dGVfMmRhcnJheT1NYWdpY01v Y2soKSksCi0gICAgICAgICAgICAgZXhlY3V0ZV8yZGFycmF5X3JldHVybl92YWx1ZT0oVHJ1ZSwg ZGljdCgKLSAgICAgICAgICAgICAgICAgcm93cz1bZGljdCgKLSAgICAgICAgICAgICAgICAgICAg IHVyaWxvY2F0aW9uPSd7aHR0cDovL3NvbWV1cmwuY29tfScsCi0gICAgICAgICAgICAgICAgICAg ICBleGVjbG9jYXRpb249WydBTExfU0VHTUVOVFMnXSwKLSAgICAgICAgICAgICAgICAgICAgIGZt dHR5cGU9J2EnLAotICAgICAgICAgICAgICAgICAgICAgZm10b3B0cz0nZGVsaW1pdGVyIFwnLFwn IG51bGwgXCdcJyAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlc2NhcGUgXCciXCcg cXVvdGUgXCciXCcnLAotICAgICAgICAgICAgICAgICAgICAgY29tbWFuZD1Ob25lLAotICAgICAg ICAgICAgICAgICAgICAgcmVqZWN0bGltaXQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgIHJl amVjdGxpbWl0dHlwZT1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgZXJydGJsbmFtZT1Ob25l LAotICAgICAgICAgICAgICAgICAgICAgZXJyb3J0b2ZpbGU9Tm9uZSwKLSAgICAgICAgICAgICAg ICAgICAgIHBnX2VuY29kaW5nX3RvX2NoYXI9J1VURjgnLAotICAgICAgICAgICAgICAgICAgICAg d3JpdGFibGU9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICBvcHRpb25zPU5vbmUsCi0gICAg ICAgICAgICAgICAgICAgICBkaXN0cmlidXRpb249Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAg IG5hbWU9J3NvbWVfdGFibGUnLAotICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlPSdwdWJs aWMnCi0gICAgICAgICAgICAgICAgICldCi0gICAgICAgICAgICAgKSksCi0KLSAgICAgICAgICAg ICBleHBlY3RfcmVuZGVyX3RlbXBsYXRlX2NhbGxlZF93aXRoPWRpY3QoCi0gICAgICAgICAgICAg ICAgIHRlbXBsYXRlX25hbWVfb3JfbGlzdD0nc29tZS9zcWwvbG9jYXRpb24vJwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF90YWJsZV9pbmZvcm1hdGlvbi5zcWwn LAotICAgICAgICAgICAgICAgICB0YWJsZV9vaWQ9MTEKLSAgICAgICAgICAgICApLAotICAgICAg ICAgICAgIGV4cGVjdGVkX3Jlc3VsdD1kaWN0KAotICAgICAgICAgICAgICAgICBuYW1lPSJzb21l X3RhYmxlIiwKLSAgICAgICAgICAgICAgICAgdHlwZT0ncmVhZGFibGUnLAotICAgICAgICAgICAg ICAgICBmb3JtYXRfdHlwZT0nVVRGOCcsCi0gICAgICAgICAgICAgICAgIGZvcm1hdF9vcHRpb25z PSdkZWxpbWl0ZXIgXCcsXCcgbnVsbCBcJ1wnICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ2VzY2FwZSBcJyJcJyBxdW90ZSBcJyJcJycsCi0gICAgICAgICAgICAgICAgIGV4dGVy bmFsX29wdGlvbnM9Tm9uZSwKLSAgICAgICAgICAgICAgICAgY29tbWFuZD1Ob25lLAotICAgICAg ICAgICAgICAgICBleGVjdXRlX29uPSdhbGwgc2VnbWVudHMnLAotICAgICAgICAgICAgICksCi0g ICAgICAgICApKSwKLSAgICAgICAgKCcjcHJvcGVydGllcyBXaGVuIHJldHJpZXZpbmcgdGhlIHBy b3BlcnRpZXMgb2YgYSBleHRlcm5hbCB0YWJsZSAnCi0gICAgICAgICAnYW5kIGEgU1FMIGVycm9y IGhhcHBlbnMsICcKLSAgICAgICAgICdpdCByYWlzZXMgZXhjZXB0aW9uIHdpdGggdGhlIGVycm9y IG1lc3NhZ2UnLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J3Byb3Bl cnRpZXMnLAotICAgICAgICAgICAgIGZ1bmN0aW9uX3BhcmFtZXRlcnM9ZGljdCgKLSAgICAgICAg ICAgICAgICAgdGFibGVfb2lkPTExCi0gICAgICAgICAgICAgKSwKLQotICAgICAgICAgICAgIGNv bm5lY3Rpb249TWFnaWNNb2NrKGV4ZWN1dGVfMmRhcnJheT1NYWdpY01vY2soKSksCi0gICAgICAg ICAgICAgZXhlY3V0ZV8yZGFycmF5X3JldHVybl92YWx1ZT0oRmFsc2UsICdTb21lIGVycm9yJyks Ci0KLSAgICAgICAgICAgICBleHBlY3RfcmVuZGVyX3RlbXBsYXRlX2NhbGxlZF93aXRoPWRpY3Qo Ci0gICAgICAgICAgICAgICAgIHRlbXBsYXRlX25hbWVfb3JfbGlzdD0nc29tZS9zcWwvbG9jYXRp b24vJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF90YWJsZV9p bmZvcm1hdGlvbi5zcWwnLAotICAgICAgICAgICAgICAgICB0YWJsZV9vaWQ9MTEKLSAgICAgICAg ICAgICApLAotICAgICAgICAgICAgIGV4cGVjdGVkX3JhaXNlX2V4Y2VwdGlvbj1Qcm9wZXJ0aWVz RXhjZXB0aW9uLAotICAgICAgICAgICAgIGV4cGVjdGVkX2ludGVybmFsX3NlcnZlcl9lcnJvcl9j YWxsZWRfd2l0aD1bJ1NvbWUgZXJyb3InXQotICAgICAgICAgKSksCi0gICAgICAgICgnI3Byb3Bl cnRpZXMgV2hlbiByZXRyaWV2aW5nIHRoZSBwcm9wZXJ0aWVzIG9mIGEgZXh0ZXJuYWwgdGFibGUg JwotICAgICAgICAgJ2FuZCB0YWJsZSBpcyBub3QgZm91bmQsICcKLSAgICAgICAgICdpdCByYWlz ZXMgZXhjZXB0aW9uICcsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHRlc3RfdHlwZT0n cHJvcGVydGllcycsCi0gICAgICAgICAgICAgZnVuY3Rpb25fcGFyYW1ldGVycz1kaWN0KAotICAg ICAgICAgICAgICAgICB0YWJsZV9vaWQ9MTEKLSAgICAgICAgICAgICApLAotCi0gICAgICAgICAg ICAgY29ubmVjdGlvbj1NYWdpY01vY2soZXhlY3V0ZV8yZGFycmF5PU1hZ2ljTW9jaygpKSwKLSAg ICAgICAgICAgICBleGVjdXRlXzJkYXJyYXlfcmV0dXJuX3ZhbHVlPShUcnVlLCBkaWN0KHJvd3M9 W10pKSwKLQotICAgICAgICAgICAgIGV4cGVjdF9yZW5kZXJfdGVtcGxhdGVfY2FsbGVkX3dpdGg9 ZGljdCgKLSAgICAgICAgICAgICAgICAgdGVtcGxhdGVfbmFtZV9vcl9saXN0PSdzb21lL3NxbC9s b2NhdGlvbi8nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X3Rh YmxlX2luZm9ybWF0aW9uLnNxbCcsCi0gICAgICAgICAgICAgICAgIHRhYmxlX29pZD0xMQotICAg ICAgICAgICAgICksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmFpc2VfZXhjZXB0aW9uPVByb3Bl cnRpZXNUYWJsZU5vdEZvdW5kRXhjZXB0aW9uCi0gICAgICAgICApKSwKLSAgICBdCi0KLSAgICBk ZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgc2VsZi5jb25uZWN0aW9uLmV4ZWN1dGVfMmRhcnJh eS5yZXR1cm5fdmFsdWUgPSBcCi0gICAgICAgICAgICBzZWxmLmV4ZWN1dGVfMmRhcnJheV9yZXR1 cm5fdmFsdWUKLSAgICAgICAgc2VsZi5fX3Rlc3RfcHJvcGVydGllcygpCitjbGFzcyBUZXN0UHJv cGVydGllcyhvYmplY3QpOgorCisgICAgZGVmIHRlc3RfcHJvcGVydGllc19leGlzdGluZ190YWJs ZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gcmV0cmlldmluZyBwcm9wZXJ0aWVz IG9uIGFuIGV4aXN0aW5nIGV4dGVybmFsIHRhYmxlCisgICAgICAgIEl0IHJldHVybnMgdGhlIHBy b3BlcnRpZXMKKyAgICAgICAgIiIiCisgICAgICAgIGNvbm5lY3Rpb24gPSBNYWdpY01vY2soZXhl Y3V0ZV8yZGFycmF5PU1hZ2ljTW9jaygpKQorICAgICAgICBjb25uZWN0aW9uLmV4ZWN1dGVfMmRh cnJheS5yZXR1cm5fdmFsdWUgPSAoVHJ1ZSwgZGljdCgKKyAgICAgICAgICAgIHJvd3M9W2RpY3Qo CisgICAgICAgICAgICAgICAgdXJpbG9jYXRpb249J3todHRwOi8vc29tZXVybC5jb219JywKKyAg ICAgICAgICAgICAgICBleGVjbG9jYXRpb249WydBTExfU0VHTUVOVFMnXSwKKyAgICAgICAgICAg ICAgICBmbXR0eXBlPSdhJywKKyAgICAgICAgICAgICAgICBmbXRvcHRzPSdkZWxpbWl0ZXIgXCcs XCcgbnVsbCBcJ1wnICcKKyAgICAgICAgICAgICAgICAgICAgICAgICdlc2NhcGUgXCciXCcgcXVv dGUgXCciXCcnLAorICAgICAgICAgICAgICAgIGNvbW1hbmQ9Tm9uZSwKKyAgICAgICAgICAgICAg ICByZWplY3RsaW1pdD1Ob25lLAorICAgICAgICAgICAgICAgIHJlamVjdGxpbWl0dHlwZT1Ob25l LAorICAgICAgICAgICAgICAgIGVycnRibG5hbWU9Tm9uZSwKKyAgICAgICAgICAgICAgICBlcnJv cnRvZmlsZT1Ob25lLAorICAgICAgICAgICAgICAgIHBnX2VuY29kaW5nX3RvX2NoYXI9J1VURjgn LAorICAgICAgICAgICAgICAgIHdyaXRhYmxlPUZhbHNlLAorICAgICAgICAgICAgICAgIG9wdGlv bnM9Tm9uZSwKKyAgICAgICAgICAgICAgICBkaXN0cmlidXRpb249Tm9uZSwKKyAgICAgICAgICAg ICAgICBuYW1lPSdzb21lX3RhYmxlJywKKyAgICAgICAgICAgICAgICBuYW1lc3BhY2U9J3B1Ymxp YycKKyAgICAgICAgICAgICldCisgICAgICAgICkpCisKKyAgICAgICAgcmVuZGVyX3RlbXBsYXRl X21vY2sgPSBNYWdpY01vY2soKQorICAgICAgICBleHRlcm5hbF90YWJsZXNfdmlldyA9IFByb3Bl cnRpZXMoCisgICAgICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jaywKKyAgICAgICAgICAgIGNv bm5lY3Rpb24sCisgICAgICAgICAgICAnc29tZS9zcWwvbG9jYXRpb24vJworICAgICAgICApCisg ICAgICAgIHJlc3VsdCA9IGV4dGVybmFsX3RhYmxlc192aWV3LnJldHJpZXZlKHRhYmxlX29pZD0x MSkKKworICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCisg ICAgICAgICAgICB0ZW1wbGF0ZV9uYW1lX29yX2xpc3Q9J3NvbWUvc3FsL2xvY2F0aW9uLycKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X3RhYmxlX2luZm9ybWF0aW9uLnNx bCcsCisgICAgICAgICAgICB0YWJsZV9vaWQ9MTEKKyAgICAgICAgKQorCisgICAgICAgIHJlc3Vs dCB8IHNob3VsZC5iZS5lcXVhbC50bygKKyAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAg ICAgbmFtZT0ic29tZV90YWJsZSIsCisgICAgICAgICAgICAgICAgdHlwZT0ncmVhZGFibGUnLAor ICAgICAgICAgICAgICAgIGZvcm1hdF90eXBlPSdVVEY4JywKKyAgICAgICAgICAgICAgICBmb3Jt YXRfb3B0aW9ucz0nZGVsaW1pdGVyIFwnLFwnIG51bGwgXCdcJyAnCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ2VzY2FwZSBcJyJcJyBxdW90ZSBcJyJcJycsCisgICAgICAgICAgICAg ICAgZXh0ZXJuYWxfb3B0aW9ucz1Ob25lLAorICAgICAgICAgICAgICAgIGNvbW1hbmQ9Tm9uZSwK KyAgICAgICAgICAgICAgICBleGVjdXRlX29uPSdhbGwgc2VnbWVudHMnLAorICAgICAgICAgICAg KQorICAgICAgICApCiAKICAgICBAcGF0Y2goJ3BnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzJwogICAgICAgICAgICAnLmV4dGVybmFsX3RhYmxlcy5wcm9wZXJ0 aWVzLmludGVybmFsX3NlcnZlcl9lcnJvcicpCi0gICAgZGVmIF9fdGVzdF9wcm9wZXJ0aWVzKHNl bGYsIGludGVybmFsX3NlcnZlcl9lcnJvcl9tb2NrKToKLSAgICAgICAgc2VsZi5tYXhEaWZmID0g Tm9uZQorICAgIGRlZiB0ZXN0X3Byb3BlcnRpZXNfZGF0YWJhc2VfZXJyb3Ioc2VsZiwgaW50ZXJu YWxfc2VydmVyX2Vycm9yX21vY2spOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiByZXRyaWV2 aW5nIHByb3BlcnRpZXMgb2YgYW4gZXh0ZXJuYWwgdGFibGUKKyAgICAgICAgQW5kIGEgU1FMIGVy cm9yIGhhcHBlbnMsCisgICAgICAgIEl0IHJhaXNlcyBleGNlcHRpb24gd2l0aCB0aGUgZXJyb3Ig bWVzc2FnZQorICAgICAgICAiIiIKKyAgICAgICAgY29ubmVjdGlvbiA9IE1hZ2ljTW9jayhleGVj dXRlXzJkYXJyYXk9TWFnaWNNb2NrKCkpCisgICAgICAgIGNvbm5lY3Rpb24uZXhlY3V0ZV8yZGFy cmF5LnJldHVybl92YWx1ZSA9IChGYWxzZSwgJ1NvbWUgZXJyb3InKQogICAgICAgICByZW5kZXJf dGVtcGxhdGVfbW9jayA9IE1hZ2ljTW9jaygpCiAKLSAgICAgICAgZXh0ZXJuYWxfdGFibGVzX3Zp ZXcgPSBQcm9wZXJ0aWVzKAorICAgICAgICBzdWJqZWN0ID0gUHJvcGVydGllcygKKyAgICAgICAg ICAgIHJlbmRlcl90ZW1wbGF0ZV9tb2NrLAorICAgICAgICAgICAgY29ubmVjdGlvbiwKKyAgICAg ICAgICAgICdzb21lL3NxbC9sb2NhdGlvbi8nCisgICAgICAgICkKKworICAgICAgICAobGFtYmRh OiBzdWJqZWN0LnJldHJpZXZlKHRhYmxlX29pZD0xMSkpIHwgXAorICAgICAgICAgICAgc2hvdWxk LnJhaXNlcyhQcm9wZXJ0aWVzRXhjZXB0aW9uKQorCisgICAgICAgIHJlbmRlcl90ZW1wbGF0ZV9t b2NrLmFzc2VydF9jYWxsZWRfd2l0aCgKKyAgICAgICAgICAgIHRlbXBsYXRlX25hbWVfb3JfbGlz dD0nc29tZS9zcWwvbG9jYXRpb24vJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdnZXRfdGFibGVfaW5mb3JtYXRpb24uc3FsJywKKyAgICAgICAgICAgIHRhYmxlX29pZD0xMQor ICAgICAgICApCisKKyAgICAgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2suYXNzZXJ0X2Nh bGxlZF93aXRoKAorICAgICAgICAgICAgJ1NvbWUgZXJyb3InCisgICAgICAgICkKKworICAgIGRl ZiB0ZXN0X3Byb3BlcnRpZXNfNDA0X2Vycm9yKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAg V2hlbiByZXRyaWV2aW5nIHRoZSBwcm9wZXJ0aWVzIG9mIGEgZXh0ZXJuYWwgdGFibGUKKyAgICAg ICAgQW5kIHRhYmxlIGlzIG5vdCBmb3VuZCwKKyAgICAgICAgSXQgcmFpc2VzIGV4Y2VwdGlvbgor ICAgICAgICAiIiIKKyAgICAgICAgY29ubmVjdGlvbiA9IE1hZ2ljTW9jayhleGVjdXRlXzJkYXJy YXk9TWFnaWNNb2NrKCkpCisgICAgICAgIGNvbm5lY3Rpb24uZXhlY3V0ZV8yZGFycmF5LnJldHVy bl92YWx1ZSA9IChUcnVlLCBkaWN0KHJvd3M9W10pKQorICAgICAgICByZW5kZXJfdGVtcGxhdGVf bW9jayA9IE1hZ2ljTW9jaygpCisKKyAgICAgICAgc3ViamVjdCA9IFByb3BlcnRpZXMoCiAgICAg ICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jaywKLSAgICAgICAgICAgIHNlbGYuY29ubmVjdGlv biwKKyAgICAgICAgICAgIGNvbm5lY3Rpb24sCiAgICAgICAgICAgICAnc29tZS9zcWwvbG9jYXRp b24vJwogICAgICAgICApCiAKLSAgICAgICAgcmVzdWx0ID0gTm9uZQotCi0gICAgICAgIHRyeToK LSAgICAgICAgICAgIHJlc3VsdCA9IGV4dGVybmFsX3RhYmxlc192aWV3LnJldHJpZXZlKCoqc2Vs Zi5mdW5jdGlvbl9wYXJhbWV0ZXJzKQotICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnZXhw ZWN0ZWRfcmFpc2VfZXhjZXB0aW9uJyk6Ci0gICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdObyBl eGNlcHRpb24gd2FzIHJhaXNlZCcpCi0gICAgICAgIGV4Y2VwdCBQcm9wZXJ0aWVzRXhjZXB0aW9u IGFzIGV4Y2VwdGlvbjoKLSAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ2V4cGVjdGVkX3Jh aXNlX2V4Y2VwdGlvbicpOgotICAgICAgICAgICAgICAgIGlmIHR5cGUoZXhjZXB0aW9uKSBpcyBz ZWxmLmV4cGVjdGVkX3JhaXNlX2V4Y2VwdGlvbjoKLSAgICAgICAgICAgICAgICAgICAgaWYgaGFz YXR0cihzZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdleHBlY3RlZF9pbnRl cm5hbF9zZXJ2ZXJfZXJyb3JfY2FsbGVkX3dpdGgnKToKLSAgICAgICAgICAgICAgICAgICAgICAg IGludGVybmFsX3NlcnZlcl9lcnJvcl9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAqc2VsZi5leHBlY3RlZF9pbnRlcm5hbF9zZXJ2ZXJfZXJyb3Jf Y2FsbGVkX3dpdGgKLSAgICAgICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICAg ICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX3NlcnZlcl9lcnJvcl9t b2NrLmFzc2VydF9ub3RfY2FsbGVkKCkKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAg ICAgICAgICAgICBzZWxmLmZhaWwoJ1dyb25nIGV4Y2VwdGlvbiB0eXBlOiAnICsgc3RyKGV4Y2Vw dGlvbikpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJhaXNlIGV4Y2VwdGlv bgotCi0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ2V4cGVjdGVkX3Jlc3VsdCcpOgotICAgICAg ICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHQsIHNlbGYuZXhwZWN0ZWRfcmVzdWx0KQorICAg ICAgICAobGFtYmRhOiBzdWJqZWN0LnJldHJpZXZlKHRhYmxlX29pZD0xMSkpIHwgXAorICAgICAg ICAgICAgc2hvdWxkLnJhaXNlcyhQcm9wZXJ0aWVzRXhjZXB0aW9uKQogCiAgICAgICAgIHJlbmRl cl90ZW1wbGF0ZV9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgKLSAgICAgICAgICAgICoqc2VsZi5l eHBlY3RfcmVuZGVyX3RlbXBsYXRlX2NhbGxlZF93aXRoCisgICAgICAgICAgICB0ZW1wbGF0ZV9u YW1lX29yX2xpc3Q9J3NvbWUvc3FsL2xvY2F0aW9uLycKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnZ2V0X3RhYmxlX2luZm9ybWF0aW9uLnNxbCcsCisgICAgICAgICAgICB0YWJs ZV9vaWQ9MTEKICAgICAgICAgKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy90ZXN0cy90ZXN0X3Jl dmVyc2VfZW5naW5lZXJfZGRsLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy90ZXN0cy90ZXN0X3JldmVyc2VfZW5n aW5lZXJfZGRsLnB5CmluZGV4IGIwOTA0MGY2Li5mMjA2MTE0OSAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3Rh Ymxlcy90ZXN0cy90ZXN0X3JldmVyc2VfZW5naW5lZXJfZGRsLnB5CisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlcm5hbF90YWJsZXMv dGVzdHMvdGVzdF9yZXZlcnNlX2VuZ2luZWVyX2RkbC5weQpAQCAtOSwxMCArOSwxMSBAQAogCiBp bXBvcnQgc3lzCiAKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcyBcCiAgICAgLmV4dGVybmFsX3Rh Ymxlcy5yZXZlcnNlX2VuZ2luZWVyX2RkbCBpbXBvcnQgXAogICAgIFJldmVyc2VFbmdpbmVlckRE TCwgUmV2ZXJzZUVuZ2luZWVyRERMRXhjZXB0aW9uCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUg aW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiAKIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMyk6 CiAgICAgZnJvbSBtb2NrIGltcG9ydCBNYWdpY01vY2sKQEAgLTIwLDI0MiArMjEsMjE1IEBAIGVs c2U6CiAgICAgZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBNYWdpY01vY2sKIAogCi1jbGFzcyBU ZXN0UmV2ZXJzZUVuZ2luZWVyRERMKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICBzY2VuYXJpb3Mg PSBbCi0gICAgICAgICgnI2V4ZWN1dGUgV2hlbiByZXRyaXZpbmcgdGhlIERETCBmb3IgdGhlIGNy ZWF0aW9uIG9mIGV4dGVybmFsICcKLSAgICAgICAgICd0YWJsZXMsICcKLSAgICAgICAgICdpdCBy ZXRyaWV2ZXMgaW5mb3JtYXRpb24gb2YgdGhlIGNvbHVtbnMgYW5kIHRoZSB0YWJsZXMgJwotICAg ICAgICAgJ2FuZCBnZW5lcmF0ZSB0aGUgU1FMIHRvIGNyZWF0ZSB0aGUgdGFibGUnLAotICAgICAg ICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J2V4ZWN1dGUnLAotICAgICAgICAgICAg IGZ1bmN0aW9uX3BhcmFtZXRlcnM9ZGljdCh0YWJsZV9vaWQ9MTQpLAotICAgICAgICAgICAgIGZp bmRfY29sdW1uc19yZXR1cm5fdmFsdWU9ZGljdChzb21ldmFsdWU9J3ZhbHVlJyksCi0gICAgICAg ICAgICAgdGFibGVfaW5mb3JtYXRpb25fcmV0dXJuX3ZhbHVlPWRpY3Qoc29tZW90aGVyPSdiYW1t JyksCitjbGFzcyBUZXN0UmV2ZXJzZUVuZ2luZWVyRERMOgorICAgIGRlZiB0ZXN0X2V4ZWN1dGUo c2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHJldHJpdmluZyB0aGUgRERMIGZvciB0 aGUgY3JlYXRpb24gb2YgZXh0ZXJuYWwgdGFibGVzLAorICAgICAgICBJdCByZXRyaWV2ZXMgaW5m b3JtYXRpb24gb2YgdGhlIGNvbHVtbnMgYW5kIHRoZSB0YWJsZXMKKyAgICAgICAgQW5kIGdlbmVy YXRlIHRoZSBTUUwgdG8gY3JlYXRlIHRoZSB0YWJsZQorICAgICAgICAiIiIKKyAgICAgICAgcmVu ZGVyX3RlbXBsYXRlX21vY2sgPSBNYWdpY01vY2soKQorICAgICAgICBjb25uZWN0aW9uID0gTWFn aWNNb2NrKGV4ZWN1dGVfMmRhcnJheT1NYWdpY01vY2soKSkKKyAgICAgICAgc3ViamVjdCA9IFJl dmVyc2VFbmdpbmVlckRETCgKKyAgICAgICAgICAgICdzcWwvI2dwZGIjODAzMjMjLycsCisgICAg ICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jaywKKyAgICAgICAgICAgIGNvbm5lY3Rpb24sCisg ICAgICAgICAgICAxLCAyLCAzKQorICAgICAgICBzdWJqZWN0LmZpbmRfY29sdW1ucyA9IE1hZ2lj TW9jayhyZXR1cm5fdmFsdWU9ZGljdChzb21ldmFsdWU9J3ZhbHVlJykpCisgICAgICAgIHN1Ympl Y3QudGFibGVfaW5mb3JtYXRpb24gPSBNYWdpY01vY2soCisgICAgICAgICAgICByZXR1cm5fdmFs dWU9ZGljdChzb21lb3RoZXI9J2JhbW0nKSkKKyAgICAgICAgc3ViamVjdC5leGVjdXRlKHRhYmxl X29pZD0xNCkKKworICAgICAgICBzdWJqZWN0LmZpbmRfY29sdW1ucy5hc3NlcnRfY2FsbGVkX3dp dGgoMTQpCisgICAgICAgIHN1YmplY3QudGFibGVfaW5mb3JtYXRpb24uYXNzZXJ0X2NhbGxlZF93 aXRoKDE0KQorICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgo CisgICAgICAgICAgICB0ZW1wbGF0ZV9uYW1lX29yX2xpc3Q9J3NxbC8jZ3BkYiM4MDMyMyMvY3Jl YXRlLnNxbCcsCisgICAgICAgICAgICB0YWJsZT1kaWN0KAorICAgICAgICAgICAgICAgIHNvbWVv dGhlcj0nYmFtbScsCisgICAgICAgICAgICAgICAgY29sdW1ucz1kaWN0KHNvbWV2YWx1ZT0ndmFs dWUnKQorICAgICAgICAgICAgKQorICAgICAgICApCiAKLSAgICAgICAgICAgICBleHBlY3RfZmlu ZF9jb2x1bW5zX2NhbGxlZF93aXRoPTE0LAotICAgICAgICAgICAgIGV4cGVjdF90YWJsZV9pbmZv cm1hdGlvbl9jYWxsZWRfd2l0aD0xNCwKLSAgICAgICAgICAgICBleHBlY3RfcmVuZGVyX3RlbXBs YXRlX2NhbGxlZF93aXRoPWRpY3QoCi0gICAgICAgICAgICAgICAgIHRlbXBsYXRlX25hbWVfb3Jf bGlzdD0nc3FsLyNncGRiIzgwMzIzIy9jcmVhdGUuc3FsJywKLSAgICAgICAgICAgICAgICAgdGFi bGU9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgIHNvbWVvdGhlcj0nYmFtbScsCi0gICAgICAg ICAgICAgICAgICAgICBjb2x1bW5zPWRpY3Qoc29tZXZhbHVlPSd2YWx1ZScpCi0gICAgICAgICAg ICAgICAgICkKLSAgICAgICAgICAgICApCi0gICAgICAgICApKSwKLSAgICAgICAgKCcjZmluZF9j b2x1bW5zIFdoZW4gYW4gZXh0ZXJuYWwgdGFibGUgZXhpc3RzLCAnCi0gICAgICAgICAnYW5kIGhh dmUgMyBjb2x1bW5zLCAnCi0gICAgICAgICAnaXQgcmV0dXJucyBhIGxpc3Qgd2l0aCAxIG9iamVj dCB0aGF0IGFzIHRoZSB0YWJsZSBuYW1lIHRvIGluaGVyaXQgJwotICAgICAgICAgJ2Zyb20nLAot ICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J2ZpbmRfY29sdW1ucycsCi0g ICAgICAgICAgICAgZnVuY3Rpb25fcGFyYW1ldGVycz17J3RhYmxlX29pZCc6IDEyM30sCi0gICAg ICAgICAgICAgZXhlY3V0ZV8yZGFycmF5X3JldHVybl92YWx1ZT0oVHJ1ZSwgZGljdChyb3dzPVsK LSAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgJ25hbWUnOiAnY29sdW1u XzEnLAotICAgICAgICAgICAgICAgICAgICAgJ2NsdHlwZSc6ICd0ZXh0JywKLSAgICAgICAgICAg ICAgICAgICAgICdpbmhlcml0ZWRGcm9tJzogJ290aGVyX3RhYmxlJywKLSAgICAgICAgICAgICAg ICAgICAgICdpbmhlcml0ZWRpZCc6ICcxMjM0JywKLSAgICAgICAgICAgICAgICAgfSwgewotICAg ICAgICAgICAgICAgICAgICAgJ25hbWUnOiAnY29sdW1uXzInLAotICAgICAgICAgICAgICAgICAg ICAgJ2NsdHlwZSc6ICdpbnQnLAotICAgICAgICAgICAgICAgICAgICAgJ2luaGVyaXRlZEZyb20n OiAnb3RoZXJfdGFibGUnLAotICAgICAgICAgICAgICAgICAgICAgJ2luaGVyaXRlZGlkJzogJzEy MzQnLAotICAgICAgICAgICAgICAgICB9LCB7Ci0gICAgICAgICAgICAgICAgICAgICAnbmFtZSc6 ICdjb2x1bW5fMycsCi0gICAgICAgICAgICAgICAgICAgICAnY2x0eXBlJzogJ251bWVyaWMnLAot ICAgICAgICAgICAgICAgICAgICAgJ2luaGVyaXRlZEZyb20nOiAnb3RoZXJfdGFibGUnLAotICAg ICAgICAgICAgICAgICAgICAgJ2luaGVyaXRlZGlkJzogJzEyMzQnLAotICAgICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgXSkpLAorICAgIGRlZiB0ZXN0X2ZpbmRfY29sdW1uc193aXRoX2V4 dGVybmFsX3RhYmxlcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gYW4gZXh0ZXJu YWwgdGFibGUgZXhpc3RzIGFuZCBoYXZlIDMgY29sdW1ucywKKyAgICAgICAgSXQgcmV0dXJucyBh IGxpc3Qgd2l0aCAxIG9iamVjdCB0aGF0IGFzIHRoZSB0YWJsZSBuYW1lIHRvIGluaGVyaXQgZnJv bQorICAgICAgICAiIiIKKyAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2sgPSBNYWdpY01vY2so KQorICAgICAgICBjb25uZWN0aW9uID0gTWFnaWNNb2NrKGV4ZWN1dGVfMmRhcnJheT1NYWdpY01v Y2soKSkKKyAgICAgICAgY29ubmVjdGlvbi5leGVjdXRlXzJkYXJyYXkucmV0dXJuX3ZhbHVlID0g KFRydWUsIGRpY3Qocm93cz1bCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ25hbWUn OiAnY29sdW1uXzEnLAorICAgICAgICAgICAgICAgICdjbHR5cGUnOiAndGV4dCcsCisgICAgICAg ICAgICAgICAgJ2luaGVyaXRlZEZyb20nOiAnb3RoZXJfdGFibGUnLAorICAgICAgICAgICAgICAg ICdpbmhlcml0ZWRpZCc6ICcxMjM0JywKKyAgICAgICAgICAgIH0sIHsKKyAgICAgICAgICAgICAg ICAnbmFtZSc6ICdjb2x1bW5fMicsCisgICAgICAgICAgICAgICAgJ2NsdHlwZSc6ICdpbnQnLAor ICAgICAgICAgICAgICAgICdpbmhlcml0ZWRGcm9tJzogJ290aGVyX3RhYmxlJywKKyAgICAgICAg ICAgICAgICAnaW5oZXJpdGVkaWQnOiAnMTIzNCcsCisgICAgICAgICAgICB9LCB7CisgICAgICAg ICAgICAgICAgJ25hbWUnOiAnY29sdW1uXzMnLAorICAgICAgICAgICAgICAgICdjbHR5cGUnOiAn bnVtZXJpYycsCisgICAgICAgICAgICAgICAgJ2luaGVyaXRlZEZyb20nOiAnb3RoZXJfdGFibGUn LAorICAgICAgICAgICAgICAgICdpbmhlcml0ZWRpZCc6ICcxMjM0JywKKyAgICAgICAgICAgIH0K KyAgICAgICAgXSkpCisKKyAgICAgICAgc3ViamVjdCA9IFJldmVyc2VFbmdpbmVlckRETCgKKyAg ICAgICAgICAgICdzcWwvI2dwZGIjODAzMjMjLycsCisgICAgICAgICAgICByZW5kZXJfdGVtcGxh dGVfbW9jaywKKyAgICAgICAgICAgIGNvbm5lY3Rpb24sCisgICAgICAgICAgICAxLCAyLCAzKQog Ci0gICAgICAgICAgICAgZXhwZWN0X3JlbmRlcl90ZW1wbGF0ZV9jYWxsZWRfd2l0aD1kaWN0KAot ICAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9uYW1lX29yX2xpc3Q9J3NxbC8jZ3BkYiM4MDMyMyMv Z2V0X2NvbHVtbnMuc3FsJywKLSAgICAgICAgICAgICAgICAgdGFibGVfb2lkPTEyMwotICAgICAg ICAgICAgICksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PVsKLSAgICAgICAgICAgICAg ICAgewotICAgICAgICAgICAgICAgICAgICAgJ25hbWUnOiAnY29sdW1uXzEnLAotICAgICAgICAg ICAgICAgICAgICAgJ3R5cGUnOiAndGV4dCcKLSAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAg ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgJ25hbWUnOiAnY29sdW1uXzInLAotICAg ICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnaW50JwotICAgICAgICAgICAgICAgICB9LAotICAg ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAnbmFtZSc6ICdjb2x1bW5fMycs Ci0gICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdudW1lcmljJwotICAgICAgICAgICAgICAg ICB9LAotICAgICAgICAgICAgIF0sCi0gICAgICAgICApKSwKLSAgICAgICAgKCcjZmluZF9jb2x1 bW5zIFdoZW4gZXJyb3IgaGFwcGVucyB3aGlsZSByZXRyaWV2aW5nICcKLSAgICAgICAgICdjb2x1 bW4gaW5mb3JtYXRpb24sICcKLSAgICAgICAgICdpdCByYWlzZSBhbiBleGNlcHRpb24nLAotICAg ICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J2ZpbmRfY29sdW1ucycsCi0gICAg ICAgICAgICAgZnVuY3Rpb25fcGFyYW1ldGVycz17J3RhYmxlX29pZCc6IDEyM30sCi0gICAgICAg ICAgICAgZXhlY3V0ZV8yZGFycmF5X3JldHVybl92YWx1ZT0oRmFsc2UsICdTb21lIGVycm9yIG1l c3NhZ2UnKSwKKyAgICAgICAgcmVzdWx0ID0gc3ViamVjdC5maW5kX2NvbHVtbnModGFibGVfb2lk PTEyMykKIAotICAgICAgICAgICAgIGV4cGVjdF9yZW5kZXJfdGVtcGxhdGVfY2FsbGVkX3dpdGg9 ZGljdCgKLSAgICAgICAgICAgICAgICAgdGVtcGxhdGVfbmFtZV9vcl9saXN0PSdzcWwvI2dwZGIj ODAzMjMjL2dldF9jb2x1bW5zLnNxbCcsCi0gICAgICAgICAgICAgICAgIHRhYmxlX29pZD0xMjMK LSAgICAgICAgICAgICApLAotICAgICAgICAgICAgIGV4cGVjdGVkX2V4Y2VwdGlvbj1SZXZlcnNl RW5naW5lZXJERExFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICdTb21lIGVycm9yIG1lc3Nh Z2UnKSwKLSAgICAgICAgICkKLSAgICAgICAgICksCi0gICAgICAgICgnI3RhYmxlX2luZm9ybWF0 aW9uIFdoZW4gZXJyb3IgaGFwcGVucyB3aGlsZSByZXRyaWV2aW5nICcKLSAgICAgICAgICd0YWJs ZSBnZW5lcmljIGluZm9ybWF0aW9uLCAnCi0gICAgICAgICAnaXQgcmFpc2UgYW4gZXhjZXB0aW9u JywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgdGVzdF90eXBlPSd0YWJsZV9pbmZvcm1h dGlvbicsCi0gICAgICAgICAgICAgZnVuY3Rpb25fcGFyYW1ldGVycz17J3RhYmxlX29pZCc6IDEy M30sCi0gICAgICAgICAgICAgZXhlY3V0ZV8yZGFycmF5X3JldHVybl92YWx1ZT0oRmFsc2UsICdT b21lIGVycm9yIG1lc3NhZ2UnKSwKKyAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2suYXNzZXJ0 X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgdGVtcGxhdGVfbmFtZV9vcl9saXN0PSdzcWwvI2dw ZGIjODAzMjMjL2dldF9jb2x1bW5zLnNxbCcsCisgICAgICAgICAgICB0YWJsZV9vaWQ9MTIzCisg ICAgICAgICkKIAotICAgICAgICAgICAgIGV4cGVjdF9yZW5kZXJfdGVtcGxhdGVfY2FsbGVkX3dp dGg9ZGljdCgKLSAgICAgICAgICAgICAgICAgdGVtcGxhdGVfbmFtZV9vcl9saXN0PSdzcWwvI2dw ZGIjODAzMjMjLycKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZXRf dGFibGVfaW5mb3JtYXRpb24uc3FsJywKLSAgICAgICAgICAgICAgICAgdGFibGVfb2lkPTEyMwot ICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfZXhjZXB0aW9uPVJldmVyc2VF bmdpbmVlckRETEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgJ1NvbWUgZXJyb3IgbWVzc2Fn ZScpLAotICAgICAgICAgKQotICAgICAgICAgKSwKLSAgICAgICAgKCcjdGFibGVfaW5mb3JtYXRp b24gV2hlbiBjYW5ub3QgZmluZCB0aGUgdGFibGUsICcKLSAgICAgICAgICdpdCByYWlzZSBhbiBl eGNlcHRpb24nLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J3RhYmxl X2luZm9ybWF0aW9uJywKLSAgICAgICAgICAgICBmdW5jdGlvbl9wYXJhbWV0ZXJzPXsndGFibGVf b2lkJzogMTIzfSwKLSAgICAgICAgICAgICBleGVjdXRlXzJkYXJyYXlfcmV0dXJuX3ZhbHVlPShU cnVlLCB7J3Jvd3MnOiBbXX0pLAorICAgICAgICByZXN1bHQgfCBzaG91bGQuYmUuZXF1YWwudG8o WworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICduYW1lJzogJ2NvbHVtbl8xJywKKyAg ICAgICAgICAgICAgICAndHlwZSc6ICd0ZXh0JworICAgICAgICAgICAgfSwKKyAgICAgICAgICAg IHsKKyAgICAgICAgICAgICAgICAnbmFtZSc6ICdjb2x1bW5fMicsCisgICAgICAgICAgICAgICAg J3R5cGUnOiAnaW50JworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAnbmFtZSc6ICdjb2x1bW5fMycsCisgICAgICAgICAgICAgICAgJ3R5cGUnOiAnbnVtZXJp YycKKyAgICAgICAgICAgIH0sCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9maW5kX2NvbHVt bnNfd2l0aF9lcnJvcihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgICAgICBXaGVuIGVycm9y IGhhcHBlbnMgd2hpbGUgcmV0cmlldmluZyBjb2x1bW4gaW5mb3JtYXRpb24sCisgICAgICAgICAg ICBJdCByYWlzZSBhbiBleGNlcHRpb24KKyAgICAgICAgIiIiCisgICAgICAgIHJlbmRlcl90ZW1w bGF0ZV9tb2NrID0gTWFnaWNNb2NrKCkKKyAgICAgICAgY29ubmVjdGlvbiA9IE1hZ2ljTW9jayhl eGVjdXRlXzJkYXJyYXk9TWFnaWNNb2NrKCkpCisgICAgICAgIGNvbm5lY3Rpb24uZXhlY3V0ZV8y ZGFycmF5LnJldHVybl92YWx1ZSA9IChGYWxzZSwgJ1NvbWUgZXJyb3IgbWVzc2FnZScpCisKKyAg ICAgICAgc3ViamVjdCA9IFJldmVyc2VFbmdpbmVlckRETCgKKyAgICAgICAgICAgICdzcWwvI2dw ZGIjODAzMjMjLycsCisgICAgICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jaywKKyAgICAgICAg ICAgIGNvbm5lY3Rpb24sCisgICAgICAgICAgICAxLCAyLCAzKQogCi0gICAgICAgICAgICAgZXhw ZWN0X3JlbmRlcl90ZW1wbGF0ZV9jYWxsZWRfd2l0aD1kaWN0KAotICAgICAgICAgICAgICAgICB0 ZW1wbGF0ZV9uYW1lX29yX2xpc3Q9J3NxbC8jZ3BkYiM4MDMyMyMvJwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF90YWJsZV9pbmZvcm1hdGlvbi5zcWwnLAotICAg ICAgICAgICAgICAgICB0YWJsZV9vaWQ9MTIzCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICAg ICBleHBlY3RlZF9leGNlcHRpb249UmV2ZXJzZUVuZ2luZWVyRERMRXhjZXB0aW9uKAotICAgICAg ICAgICAgICAgICAnVGFibGUgbm90IGZvdW5kJyksCi0gICAgICAgICApKSwKLSAgICAgICAgKCcj dGFibGVfaW5mb3JtYXRpb24gV2hlbiByZXRyaWV2aW5nIGdlbmVyaWMgaW5mb3JtYXRpb24gJwot ICAgICAgICAgJ2Fib3V0IGEgV2ViIHRhYmxlLCAnCi0gICAgICAgICAnaXQgcmV0dXJucyB0aGUg dGFibGUgaW5mb3JtYXRpb24nLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5 cGU9J3RhYmxlX2luZm9ybWF0aW9uJywKLSAgICAgICAgICAgICBmdW5jdGlvbl9wYXJhbWV0ZXJz PXsndGFibGVfb2lkJzogMTIzfSwKLSAgICAgICAgICAgICBleGVjdXRlXzJkYXJyYXlfcmV0dXJu X3ZhbHVlPShUcnVlLCBkaWN0KHJvd3M9WwotICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg ICAgICAgICAgICAndXJpbG9jYXRpb24nOiAne2h0dHA6Ly9zb21ldXJsLmNvbX0nLAotICAgICAg ICAgICAgICAgICAgICAgJ2V4ZWNsb2NhdGlvbic6IFsnQUxMX1NFR01FTlRTJ10sCi0gICAgICAg ICAgICAgICAgICAgICAnZm10dHlwZSc6ICdhJywKLSAgICAgICAgICAgICAgICAgICAgICdmbXRv cHRzJzogJ2RlbGltaXRlciBcJyxcJyBudWxsIFwnXCcgJwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnZXNjYXBlIFwnIlwnIHF1b3RlIFwnIlwnJywKLSAgICAgICAgICAgICAgICAg ICAgICdjb21tYW5kJzogTm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICdyZWplY3RsaW1pdCc6 IE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAncmVqZWN0bGltaXR0eXBlJzogTm9uZSwKLSAg ICAgICAgICAgICAgICAgICAgICdlcnJ0YmxuYW1lJzogTm9uZSwKLSAgICAgICAgICAgICAgICAg ICAgICdlcnJvcnRvZmlsZSc6IE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAncGdfZW5jb2Rp bmdfdG9fY2hhcic6ICdVVEY4JywKLSAgICAgICAgICAgICAgICAgICAgICd3cml0YWJsZSc6IEZh bHNlLAotICAgICAgICAgICAgICAgICAgICAgJ29wdGlvbnMnOiBOb25lLAotICAgICAgICAgICAg ICAgICAgICAgJ2Rpc3RyaWJ1dGlvbic6IE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAnbmFt ZSc6ICdzb21lX3RhYmxlJywKLSAgICAgICAgICAgICAgICAgICAgICduYW1lc3BhY2UnOiAncHVi bGljJwotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgXSkpLAorICAgICAgICAobGFt YmRhOiBzdWJqZWN0LmZpbmRfY29sdW1ucyh0YWJsZV9vaWQ9MTIzKSkgfCBcCisgICAgICAgICAg ICBzaG91bGQucmFpc2VzKFJldmVyc2VFbmdpbmVlckRETEV4Y2VwdGlvbikKIAotICAgICAgICAg ICAgIGV4cGVjdF9yZW5kZXJfdGVtcGxhdGVfY2FsbGVkX3dpdGg9ZGljdCgKLSAgICAgICAgICAg ICAgICAgdGVtcGxhdGVfbmFtZV9vcl9saXN0PSdzcWwvI2dwZGIjODAzMjMjLycKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZXRfdGFibGVfaW5mb3JtYXRpb24uc3Fs JywKLSAgICAgICAgICAgICAgICAgdGFibGVfb2lkPTEyMwotICAgICAgICAgICAgICksCi0gICAg ICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PXsKLSAgICAgICAgICAgICAgICAgJ3VyaXMnOiBbJ2h0 dHA6Ly9zb21ldXJsLmNvbSddLAotICAgICAgICAgICAgICAgICAnaXNXZWInOiBUcnVlLAotICAg ICAgICAgICAgICAgICAnZXhlY3V0aW9uTG9jYXRpb24nOiBkaWN0KHR5cGU9J2FsbF9zZWdtZW50 cycsIHZhbHVlPU5vbmUpLAotICAgICAgICAgICAgICAgICAnZm9ybWF0VHlwZSc6ICdhdnJvJywK LSAgICAgICAgICAgICAgICAgJ2Zvcm1hdE9wdGlvbnMnOiAnZGVsaW1pdGVyID0gJCQsJCQsZXNj YXBlID0gJCQiJCQsJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsID0g JCQkJCxxdW90ZSA9ICQkIiQkJywKLSAgICAgICAgICAgICAgICAgJ2NvbW1hbmQnOiBOb25lLAot ICAgICAgICAgICAgICAgICAncmVqZWN0TGltaXQnOiBOb25lLAotICAgICAgICAgICAgICAgICAn cmVqZWN0TGltaXRUeXBlJzogTm9uZSwKLSAgICAgICAgICAgICAgICAgJ2Vycm9yVGFibGVOYW1l JzogTm9uZSwKLSAgICAgICAgICAgICAgICAgJ2Vycm9Ub0ZpbGUnOiBOb25lLAotICAgICAgICAg ICAgICAgICAncGdFbmNvZGluZ1RvQ2hhcic6ICdVVEY4JywKLSAgICAgICAgICAgICAgICAgJ3dy aXRhYmxlJzogRmFsc2UsCi0gICAgICAgICAgICAgICAgICdvcHRpb25zJzogTm9uZSwKLSAgICAg ICAgICAgICAgICAgJ2Rpc3RyaWJ1dGlvbic6IE5vbmUsCi0gICAgICAgICAgICAgICAgICduYW1l JzogJ3NvbWVfdGFibGUnLAotICAgICAgICAgICAgICAgICAnbmFtZXNwYWNlJzogJ3B1YmxpYycK LSAgICAgICAgICAgICB9LAotICAgICAgICAgKSksCi0gICAgXQorICAgICAgICByZW5kZXJfdGVt cGxhdGVfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICB0ZW1wbGF0ZV9uYW1l X29yX2xpc3Q9J3NxbC8jZ3BkYiM4MDMyMyMvZ2V0X2NvbHVtbnMuc3FsJywKKyAgICAgICAgICAg IHRhYmxlX29pZD0xMjMKKyAgICAgICAgKQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdz LCAqKmt3YXJncyk6Ci0gICAgICAgIHN1cGVyKFRlc3RSZXZlcnNlRW5naW5lZXJEREwsIHNlbGYp Ll9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKLSAgICAgICAgc2VsZi5jb25uZWN0aW9uID0gTm9u ZQotICAgICAgICBzZWxmLnN1YmplY3QgPSBOb25lCi0gICAgICAgIHNlbGYucmVuZGVyX3RlbXBs YXRlX21vY2sgPSBOb25lCisgICAgZGVmIHRlc3RfdGFibGVfaW5mb3JtYXRpb25fd2l0aF9lcnJv cihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgICAgICBXaGVuIGVycm9yIGhhcHBlbnMgd2hp bGUgcmV0cmlldmluZyB0YWJsZSBnZW5lcmljIGluZm9ybWF0aW9uLAorICAgICAgICAgICAgSXQg cmFpc2UgYW4gZXhjZXB0aW9uCisgICAgICAgICIiIgorICAgICAgICByZW5kZXJfdGVtcGxhdGVf bW9jayA9IE1hZ2ljTW9jaygpCisgICAgICAgIGNvbm5lY3Rpb24gPSBNYWdpY01vY2soZXhlY3V0 ZV8yZGFycmF5PU1hZ2ljTW9jaygpKQorICAgICAgICBjb25uZWN0aW9uLmV4ZWN1dGVfMmRhcnJh eS5yZXR1cm5fdmFsdWUgPSAoRmFsc2UsICdTb21lIGVycm9yIG1lc3NhZ2UnKQogCi0gICAgZGVm IHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgIHNlbGYucmVuZGVyX3RlbXBsYXRlX21vY2sgPSBNYWdp Y01vY2soKQotICAgICAgICBzZWxmLmNvbm5lY3Rpb24gPSBNYWdpY01vY2soZXhlY3V0ZV8yZGFy cmF5PU1hZ2ljTW9jaygpKQotICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdleGVjdXRlXzJkYXJy YXlfcmV0dXJuX3ZhbHVlJyk6Ci0gICAgICAgICAgICBzZWxmLmNvbm5lY3Rpb24uZXhlY3V0ZV8y ZGFycmF5LnJldHVybl92YWx1ZSA9IFwKLSAgICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGVfMmRh cnJheV9yZXR1cm5fdmFsdWUKLSAgICAgICAgc2VsZi5zdWJqZWN0ID0gUmV2ZXJzZUVuZ2luZWVy RERMKAorICAgICAgICBzdWJqZWN0ID0gUmV2ZXJzZUVuZ2luZWVyRERMKAogICAgICAgICAgICAg J3NxbC8jZ3BkYiM4MDMyMyMvJywKLSAgICAgICAgICAgIHNlbGYucmVuZGVyX3RlbXBsYXRlX21v Y2ssCi0gICAgICAgICAgICBzZWxmLmNvbm5lY3Rpb24sCisgICAgICAgICAgICByZW5kZXJfdGVt cGxhdGVfbW9jaywKKyAgICAgICAgICAgIGNvbm5lY3Rpb24sCiAgICAgICAgICAgICAxLCAyLCAz KQotICAgICAgICBpZiBzZWxmLnRlc3RfdHlwZSA9PSAnZmluZF9jb2x1bW5zJzoKLSAgICAgICAg ICAgIHNlbGYuX190ZXN0X2ZpbmRfY29sdW1ucygpCi0gICAgICAgIGVsaWYgc2VsZi50ZXN0X3R5 cGUgPT0gJ3RhYmxlX2luZm9ybWF0aW9uJzoKLSAgICAgICAgICAgIHNlbGYuX190ZXN0X3RhYmxl X2luZm9ybWF0aW9uKCkKLSAgICAgICAgZWxpZiBzZWxmLnRlc3RfdHlwZSA9PSAnZXhlY3V0ZSc6 Ci0gICAgICAgICAgICBzZWxmLl9fdGVzdF9leGVjdXRlKCkKIAotICAgIGRlZiBfX3Rlc3RfZmlu ZF9jb2x1bW5zKHNlbGYpOgotICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdleHBlY3RlZF9leGNl cHRpb24nKToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBzZWxmLnN1YmplY3Qu ZmluZF9jb2x1bW5zKCoqc2VsZi5mdW5jdGlvbl9wYXJhbWV0ZXJzKQotICAgICAgICAgICAgICAg IHNlbGYuZmFpbCgnRXhjZXB0aW9uIG5vdCByYWlzZScpCi0gICAgICAgICAgICBleGNlcHQgUmV2 ZXJzZUVuZ2luZWVyRERMRXhjZXB0aW9uIGFzIGV4Y2VwdGlvbjoKLSAgICAgICAgICAgICAgICBz ZWxmLmFzc2VydEVxdWFsKHN0cihleGNlcHRpb24pLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RyKHNlbGYuZXhwZWN0ZWRfZXhjZXB0aW9uKSkKLSAgICAgICAgZWxzZToKLSAg ICAgICAgICAgIHJlc3VsdCA9IHNlbGYuc3ViamVjdC5maW5kX2NvbHVtbnMoKipzZWxmLmZ1bmN0 aW9uX3BhcmFtZXRlcnMpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZXhwZWN0 ZWRfcmVzdWx0LCByZXN1bHQpCisgICAgICAgIChsYW1iZGE6IHN1YmplY3QudGFibGVfaW5mb3Jt YXRpb24odGFibGVfb2lkPTEyMykpIHwgXAorICAgICAgICAgICAgc2hvdWxkLnJhaXNlcyhSZXZl cnNlRW5naW5lZXJERExFeGNlcHRpb24pCiAKLSAgICAgICAgc2VsZi5yZW5kZXJfdGVtcGxhdGVf bW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCi0gICAgICAgICAgICAqKnNlbGYuZXhwZWN0X3JlbmRl cl90ZW1wbGF0ZV9jYWxsZWRfd2l0aAorICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jay5hc3Nl cnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICB0ZW1wbGF0ZV9uYW1lX29yX2xpc3Q9J3NxbC8j Z3BkYiM4MDMyMyMvZ2V0X3RhYmxlX2luZm9ybWF0aW9uLnNxbCcsCisgICAgICAgICAgICB0YWJs ZV9vaWQ9MTIzCiAgICAgICAgICkKIAotICAgIGRlZiBfX3Rlc3RfdGFibGVfaW5mb3JtYXRpb24o c2VsZik6Ci0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ2V4cGVjdGVkX2V4Y2VwdGlvbicpOgot ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHNlbGYuc3ViamVjdC50YWJsZV9pbmZv cm1hdGlvbigqKnNlbGYuZnVuY3Rpb25fcGFyYW1ldGVycykKLSAgICAgICAgICAgICAgICBzZWxm LmZhaWwoJ0V4Y2VwdGlvbiBub3QgcmFpc2UnKQotICAgICAgICAgICAgZXhjZXB0IFJldmVyc2VF bmdpbmVlckRETEV4Y2VwdGlvbiBhcyBleGNlcHRpb246Ci0gICAgICAgICAgICAgICAgc2VsZi5h c3NlcnRFcXVhbChzdHIoZXhjZXB0aW9uKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cihzZWxmLmV4cGVjdGVkX2V4Y2VwdGlvbikpCi0gICAgICAgIGVsc2U6Ci0gICAgICAg ICAgICByZXN1bHQgPSBzZWxmLnN1YmplY3QudGFibGVfaW5mb3JtYXRpb24oKipzZWxmLmZ1bmN0 aW9uX3BhcmFtZXRlcnMpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZXhwZWN0 ZWRfcmVzdWx0LCByZXN1bHQpCisgICAgZGVmIHRlc3RfdGFibGVfaW5mb3JtYXRpb25fb25fdGFi bGVfbm90X2ZvdW5kKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgICAgIFdoZW4gY2Fubm90 IGZpbmQgdGFibGUKKyAgICAgICAgICAgIEl0IHJhaXNlIGFuIGV4Y2VwdGlvbgorICAgICAgICAi IiIKKyAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2sgPSBNYWdpY01vY2soKQorICAgICAgICBj b25uZWN0aW9uID0gTWFnaWNNb2NrKGV4ZWN1dGVfMmRhcnJheT1NYWdpY01vY2soKSkKKyAgICAg ICAgY29ubmVjdGlvbi5leGVjdXRlXzJkYXJyYXkucmV0dXJuX3ZhbHVlID0gKFRydWUsIHsncm93 cyc6IFtdfSkKKworICAgICAgICBzdWJqZWN0ID0gUmV2ZXJzZUVuZ2luZWVyRERMKAorICAgICAg ICAgICAgJ3NxbC8jZ3BkYiM4MDMyMyMvJywKKyAgICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZV9t b2NrLAorICAgICAgICAgICAgY29ubmVjdGlvbiwKKyAgICAgICAgICAgIDEsIDIsIDMpCisKKyAg ICAgICAgKGxhbWJkYTogc3ViamVjdC50YWJsZV9pbmZvcm1hdGlvbih0YWJsZV9vaWQ9MTIzKSkg fCBcCisgICAgICAgICAgICBzaG91bGQucmFpc2VzKFJldmVyc2VFbmdpbmVlckRETEV4Y2VwdGlv bikKIAotICAgICAgICBzZWxmLnJlbmRlcl90ZW1wbGF0ZV9tb2NrLmFzc2VydF9jYWxsZWRfd2l0 aCgKLSAgICAgICAgICAgICoqc2VsZi5leHBlY3RfcmVuZGVyX3RlbXBsYXRlX2NhbGxlZF93aXRo CisgICAgICAgIHJlbmRlcl90ZW1wbGF0ZV9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgKKyAgICAg ICAgICAgIHRlbXBsYXRlX25hbWVfb3JfbGlzdD0nc3FsLyNncGRiIzgwMzIzIy9nZXRfdGFibGVf aW5mb3JtYXRpb24uc3FsJywKKyAgICAgICAgICAgIHRhYmxlX29pZD0xMjMKICAgICAgICAgKQog Ci0gICAgZGVmIF9fdGVzdF9leGVjdXRlKHNlbGYpOgotICAgICAgICBzZWxmLnN1YmplY3QuZmlu ZF9jb2x1bW5zID0gTWFnaWNNb2NrKAotICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPXNlbGYuZmlu ZF9jb2x1bW5zX3JldHVybl92YWx1ZSkKLSAgICAgICAgc2VsZi5zdWJqZWN0LnRhYmxlX2luZm9y bWF0aW9uID0gTWFnaWNNb2NrKAotICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPXNlbGYudGFibGVf aW5mb3JtYXRpb25fcmV0dXJuX3ZhbHVlKQorICAgIGRlZiB0ZXN0X3RhYmxlX2luZm9ybWF0aW9u KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgICAgICBXaGVuIHJldHJpZXZpbmcgZ2VuZXJp YyBpbmZvcm1hdGlvbiBhYm91dCBhIFdlYiB0YWJsZSwKKyAgICAgICAgICAgICBJdCByZXR1cm5z IHRoZSB0YWJsZSBpbmZvcm1hdGlvbgorICAgICAgICAiIiIKKyAgICAgICAgcmVuZGVyX3RlbXBs YXRlX21vY2sgPSBNYWdpY01vY2soKQorICAgICAgICBjb25uZWN0aW9uID0gTWFnaWNNb2NrKGV4 ZWN1dGVfMmRhcnJheT1NYWdpY01vY2soKSkKKyAgICAgICAgY29ubmVjdGlvbi5leGVjdXRlXzJk YXJyYXkucmV0dXJuX3ZhbHVlID0gKFRydWUsIGRpY3Qocm93cz1bCisgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgICAgJ3VyaWxvY2F0aW9uJzogJ3todHRwOi8vc29tZXVybC5jb219JywKKyAg ICAgICAgICAgICAgICAnZXhlY2xvY2F0aW9uJzogWydBTExfU0VHTUVOVFMnXSwKKyAgICAgICAg ICAgICAgICAnZm10dHlwZSc6ICdhJywKKyAgICAgICAgICAgICAgICAnZm10b3B0cyc6ICdkZWxp bWl0ZXIgXCcsXCcgbnVsbCBcJ1wnICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdlc2Nh cGUgXCciXCcgcXVvdGUgXCciXCcnLAorICAgICAgICAgICAgICAgICdjb21tYW5kJzogTm9uZSwK KyAgICAgICAgICAgICAgICAncmVqZWN0bGltaXQnOiBOb25lLAorICAgICAgICAgICAgICAgICdy ZWplY3RsaW1pdHR5cGUnOiBOb25lLAorICAgICAgICAgICAgICAgICdlcnJ0YmxuYW1lJzogTm9u ZSwKKyAgICAgICAgICAgICAgICAnZXJyb3J0b2ZpbGUnOiBOb25lLAorICAgICAgICAgICAgICAg ICdwZ19lbmNvZGluZ190b19jaGFyJzogJ1VURjgnLAorICAgICAgICAgICAgICAgICd3cml0YWJs ZSc6IEZhbHNlLAorICAgICAgICAgICAgICAgICdvcHRpb25zJzogTm9uZSwKKyAgICAgICAgICAg ICAgICAnZGlzdHJpYnV0aW9uJzogTm9uZSwKKyAgICAgICAgICAgICAgICAnbmFtZSc6ICdzb21l X3RhYmxlJywKKyAgICAgICAgICAgICAgICAnbmFtZXNwYWNlJzogJ3B1YmxpYycKKyAgICAgICAg ICAgIH0KKyAgICAgICAgXSkpCisKKyAgICAgICAgc3ViamVjdCA9IFJldmVyc2VFbmdpbmVlckRE TCgKKyAgICAgICAgICAgICdzcWwvI2dwZGIjODAzMjMjLycsCisgICAgICAgICAgICByZW5kZXJf dGVtcGxhdGVfbW9jaywKKyAgICAgICAgICAgIGNvbm5lY3Rpb24sCisgICAgICAgICAgICAxLCAy LCAzKQogCi0gICAgICAgIHNlbGYuc3ViamVjdC5leGVjdXRlKCoqc2VsZi5mdW5jdGlvbl9wYXJh bWV0ZXJzKQorICAgICAgICBzdWJqZWN0LnRhYmxlX2luZm9ybWF0aW9uKHRhYmxlX29pZD0xMjMp IHwgc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICd1 cmlzJzogWydodHRwOi8vc29tZXVybC5jb20nXSwKKyAgICAgICAgICAgICAgICAnaXNXZWInOiBU cnVlLAorICAgICAgICAgICAgICAgICdleGVjdXRpb25Mb2NhdGlvbic6IGRpY3QodHlwZT0nYWxs X3NlZ21lbnRzJywgdmFsdWU9Tm9uZSksCisgICAgICAgICAgICAgICAgJ2Zvcm1hdFR5cGUnOiAn YXZybycsCisgICAgICAgICAgICAgICAgJ2Zvcm1hdE9wdGlvbnMnOiAnZGVsaW1pdGVyID0gJCQs JCQsZXNjYXBlID0gJCQiJCQsJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251 bGwgPSAkJCQkLHF1b3RlID0gJCQiJCQnLAorICAgICAgICAgICAgICAgICdjb21tYW5kJzogTm9u ZSwKKyAgICAgICAgICAgICAgICAncmVqZWN0TGltaXQnOiBOb25lLAorICAgICAgICAgICAgICAg ICdyZWplY3RMaW1pdFR5cGUnOiBOb25lLAorICAgICAgICAgICAgICAgICdlcnJvclRhYmxlTmFt ZSc6IE5vbmUsCisgICAgICAgICAgICAgICAgJ2Vycm9Ub0ZpbGUnOiBOb25lLAorICAgICAgICAg ICAgICAgICdwZ0VuY29kaW5nVG9DaGFyJzogJ1VURjgnLAorICAgICAgICAgICAgICAgICd3cml0 YWJsZSc6IEZhbHNlLAorICAgICAgICAgICAgICAgICdvcHRpb25zJzogTm9uZSwKKyAgICAgICAg ICAgICAgICAnZGlzdHJpYnV0aW9uJzogTm9uZSwKKyAgICAgICAgICAgICAgICAnbmFtZSc6ICdz b21lX3RhYmxlJywKKyAgICAgICAgICAgICAgICAnbmFtZXNwYWNlJzogJ3B1YmxpYycKKyAgICAg ICAgICAgIH0pCisKKyAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2suYXNzZXJ0X2NhbGxlZF93 aXRoKAorICAgICAgICAgICAgdGVtcGxhdGVfbmFtZV9vcl9saXN0PSdzcWwvI2dwZGIjODAzMjMj L2dldF90YWJsZV9pbmZvcm1hdGlvbi5zcWwnLAorICAgICAgICAgICAgdGFibGVfb2lkPTEyMwog Ci0gICAgICAgIHNlbGYuc3ViamVjdC5maW5kX2NvbHVtbnMuYXNzZXJ0X2NhbGxlZF93aXRoKAot ICAgICAgICAgICAgc2VsZi5leHBlY3RfZmluZF9jb2x1bW5zX2NhbGxlZF93aXRoKQotICAgICAg ICBzZWxmLnN1YmplY3QudGFibGVfaW5mb3JtYXRpb24uYXNzZXJ0X2NhbGxlZF93aXRoKAotICAg ICAgICAgICAgc2VsZi5leHBlY3RfdGFibGVfaW5mb3JtYXRpb25fY2FsbGVkX3dpdGgpCi0gICAg ICAgIHNlbGYucmVuZGVyX3RlbXBsYXRlX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAotICAgICAg ICAgICAgKipzZWxmLmV4cGVjdF9yZW5kZXJfdGVtcGxhdGVfY2FsbGVkX3dpdGgpCisgICAgICAg ICkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3Rlc3RzL19f aW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMvdGVzdHMvX19pbml0 X18ucHkKaW5kZXggMTJkZjRmOWQuLjU5MDAyNmFkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBw ZXJzL2ZvcmVpZ25fc2VydmVycy90ZXN0cy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBw ZXJzL2ZvcmVpZ25fc2VydmVycy90ZXN0cy9fX2luaXRfXy5weQpAQCAtNiwxMSArNiwzIEBACiAj IFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQog IwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBC YXNlVGVzdEdlbmVyYXRvcgotCi0KLWNsYXNzIEZvcmVpZ25TZXJ2ZXJzR2VuZXJhdG9yVGVzdENh c2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAg IHJldHVybiBbXQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMv dGVzdHMvdGVzdF9mb3JlaWduX3NlcnZlcnNfYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3Jl aWduX3NlcnZlcnMvdGVzdHMvdGVzdF9mb3JlaWduX3NlcnZlcnNfYWRkLnB5CmluZGV4IGFiZWQ5 ZDBjLi5kZWIwNDYyNSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZl cnMvdGVzdHMvdGVzdF9mb3JlaWduX3NlcnZlcnNfYWRkLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBl cnMvZm9yZWlnbl9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfZm9yZWlnbl9zZXJ2ZXJzX2FkZC5weQpAQCAt MTIsNTUgKzEyLDU4IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIGlt cG9ydCBqc29uCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBv cnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMuZXh0ZW5zaW9ucy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGV4dGVuc2lv bl91dGlscwotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy5mb3JlaWduX2RhdGFfd3JhcHBlcnMuXAorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVy X2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5mb3JlaWduX2RhdGFfd3JhcHBlcnMuIFwKICAgICB0 ZXN0cyBpbXBvcnQgdXRpbHMgYXMgZmR3X3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMg ZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSBy ZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiAK IAotY2xhc3MgRm9yZWlnblNlcnZlckFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAg ICAiIiIKLSAgICBUaGlzIGNsYXNzIHdpbGwgYWRkIGZvcmVpZ24gc2VydmVyIHVuZGVyIGRhdGFi YXNlIG5vZGUuCi0gICAgIiIiCi0gICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCi0gICAg c2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBmb3JlaWdu IHNlcnZlciBub2RlLgotICAgICAgICAoJ0NoZWNrIEZTUlYgTm9kZScsIGRpY3QodXJsPScvYnJv d3Nlci9mb3JlaWduX3NlcnZlci9vYmovJykpCi0gICAgXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0 YWJhc2VzKFsnZ3BkYiddKQorY2xhc3MgVGVzdEZvcmVpZ25TZXJ2ZXJBZGQ6CisgICAgZGVmIHRl c3RfZm9yZWlnbl9zZXJ2ZXJfYWRkKHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgor ICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBzZW5kaW5nIGEgSFRUUCByZXF1ZXN0IHRvIGFkZCBm b3JlaWduIHNlcnZlciB1bmRlciBkYXRhYmFzZSBub2RlCisgICAgICAgIEl0IHJldHVybnMgMjAw IHN0YXR1cworICAgICAgICAiIiIKKworICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxm LnRlYXJEb3duKQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9mb3JlaWduX3NlcnZlci9vYmov JworCisgICAgICAgIHNjaGVtYV9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9y bWF0aW9uJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXIn XQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9kYXRhWydzZXJ2ZXJfaWQnXQorICAg ICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5kYl9u YW1lID0gc2NoZW1hX2RhdGFbJ2RiX25hbWUnXQorICAgICAgICBzY2hlbWFfbmFtZSA9IHNjaGVt YV9kYXRhWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuZXh0ZW5zaW9uX25hbWUgPSAnY3Vi ZScKKyAgICAgICAgZmR3X25hbWUgPSAiZmR3X3swfSIuZm9ybWF0KHN0cih1dWlkLnV1aWQ0KCkp WzE6OF0pCisgICAgICAgIGV4dGVuc2lvbl91dGlscy5jcmVhdGVfZXh0ZW5zaW9uKAorICAgICAg ICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5leHRlbnNpb25fbmFtZSwgc2No ZW1hX25hbWUpCisgICAgICAgIGZkd19pZCA9IGZkd191dGlscy5jcmVhdGVfZmR3KHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZkd19uYW1lKQorICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3Rf Y2xpZW50J10KIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rp b24gd2lsbCBjcmVhdGUgZXh0ZW5zaW9uIGFuZCBmb3JlaWduIGRhdGEgd3JhcHBlci4iIiIKLSAg ICAgICAgc3VwZXIoRm9yZWlnblNlcnZlckFkZFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCi0gICAg ICAgIHNlbGYuc2NoZW1hX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KLSAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydzZXJ2ZXJfaWQnXQotICAg ICAgICBzZWxmLmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnZGJfaWQnXQotICAgICAgICBzZWxm LmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0g ICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfbmFtZSdd Ci0gICAgICAgIHNlbGYuZXh0ZW5zaW9uX25hbWUgPSAiY3ViZSIKLSAgICAgICAgc2VsZi5mZHdf bmFtZSA9ICJmZHdfezB9Ii5mb3JtYXQoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAg c2VsZi5leHRlbnNpb25faWQgPSBleHRlbnNpb25fdXRpbHMuY3JlYXRlX2V4dGVuc2lvbigKLSAg ICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuZXh0ZW5zaW9uX25hbWUs IHNlbGYuc2NoZW1hX25hbWUpCi0gICAgICAgIHNlbGYuZmR3X2lkID0gZmR3X3V0aWxzLmNyZWF0 ZV9mZHcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLmZkd19uYW1lKQorICAgICAgICBkYl9jb24gPSBkYXRh YmFzZV91dGlscy5jbGllbnRfY29ubmVjdF9kYXRhYmFzZSgKKyAgICAgICAgICAgIHNlbGYudGVz dGVyLAorICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJfaWQsCisgICAgICAgICAgICBzZWxmLmRiX2lkLAorICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJbJ2RiX3Bhc3N3b3JkJ10pCisKKyAgICAgICAgZGJfY29uWyJpbmZvIl0gfCBzaG91bGQuYmUu ZXF1YWwudG8oCisgICAgICAgICAgICAiRGF0YWJhc2UgY29ubmVjdGVkLiIsCisgICAgICAgICAg ICBtc2c9J0NvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLicpCisKKyAgICAgICAgZmR3X3V0 aWxzLnZlcmlmeV9mZHcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgZmR3X25hbWUpIHwgXAor ICAgICAgICAgICAgc2hvdWxkLm5vdF9iZS5ub25lCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToK LSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIGZvcmVpZ24gZGF0YSB3cmFwcGVy IHByZXNlbnQgdW5kZXIgdGVzdAotICAgICAgICAgZGF0YWJhc2UuIiIiCi0gICAgICAgIGRiX2Nv biA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBj b25uZWN0ZWQuIjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5l Y3QgdG8gZGF0YWJhc2UuIikKLSAgICAgICAgZmR3X3Jlc3BvbnNlID0gZmR3X3V0aWxzLnZlcmlm eV9mZHcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5mZHdfbmFtZSkKLSAgICAgICAgaWYgbm90IGZkd19y ZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgRkRX LiIpCiAgICAgICAgIGRiX3VzZXIgPSBzZWxmLnNlcnZlclsidXNlcm5hbWUiXQogICAgICAgICBk YXRhID0gewogICAgICAgICAgICAgImZzcnZhY2wiOiBbCkBAIC05NSwxNiArOTgsMTYgQEAgY2xh c3MgRm9yZWlnblNlcnZlckFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAg ICAgICJuYW1lIjogInRlc3RfZnNydl9hZGRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0p CiAgICAgICAgIH0KICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAotICAgICAg ICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAg ICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCiAgICAgICAgICAgICBz dHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQpICsKLSAgICAgICAgICAg ICcvJyArIHN0cihzZWxmLmZkd19pZCkgKyAnLycsCisgICAgICAgICAgICAnLycgKyBzdHIoZmR3 X2lkKSArICcvJywKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAg ICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo cmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29k ZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0g ICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGlzY29ubmVjdCB0aGUgdGVzdCBkYXRhYmFzZSBhbmQg ZHJvcCBhZGRlZCBmb3JlaWduCi0gICAgICAgICBkYXRhIHdyYXBwZXIuIiIiCiAgICAgICAgIGV4 dGVuc2lvbl91dGlscy5kcm9wX2V4dGVuc2lvbihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHRlbnNpb25fbmFt ZSkKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxm LnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rp c2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMvdGVzdHMvdGVzdF9mb3Jl aWduX3NlcnZlcnNfZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMv dGVzdHMvdGVzdF9mb3JlaWduX3NlcnZlcnNfZGVsZXRlLnB5CmluZGV4IDRlNWM3MGVkLi43YTE2 NTQ2NiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMvdGVzdHMv dGVzdF9mb3JlaWduX3NlcnZlcnNfZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvZm9y ZWlnbl9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfZm9yZWlnbl9zZXJ2ZXJzX2RlbGV0ZS5weQpAQCAtMTEs NzIgKzExLDgyIEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAogaW1w b3J0IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVu c2lvbnMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBleHRlbnNpb25fdXRpbHMKLWZyb20g cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZm9yZWlnbl9k YXRhX3dyYXBwZXJzLlwKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy cy5kYXRhYmFzZXMuZm9yZWlnbl9kYXRhX3dyYXBwZXJzLiBcCiAgICAgdGVzdHMgaW1wb3J0IHV0 aWxzIGFzIGZkd191dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxz Ci1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9t IHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRo b25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1 dGlscyBhcyBmc3J2X3V0aWxzCiAKIAotY2xhc3MgRm9yZWlnblNlcnZlckRlbGV0ZVRlc3RDYXNl KEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgYWRkIGZvcmVpZ24g c2VydmVyIHVuZGVyIEZEVyBub2RlLiIiIgotICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGIn XQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3Ig Zm9yZWlnbiBzZXJ2ZXIgbm9kZS4KLSAgICAgICAgKCdDaGVjayBGU1JWIE5vZGUnLCBkaWN0KHVy bD0nL2Jyb3dzZXIvZm9yZWlnbl9zZXJ2ZXIvb2JqLycpKQotICAgIF0KLQotICAgIGRlZiBzZXRV cChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgZXh0ZW5zaW9u IGFuZCBmb3JlaWduIGRhdGEgd3JhcHBlci4iIiIKLSAgICAgICAgc3VwZXIoRm9yZWlnblNlcnZl ckRlbGV0ZVRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCi0gICAgICAgIHNlbGYuc2NoZW1hX2RhdGEg PSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQg PSBzZWxmLnNjaGVtYV9kYXRhWydzZXJ2ZXJfaWQnXQotICAgICAgICBzZWxmLmRiX2lkID0gc2Vs Zi5zY2hlbWFfZGF0YVsnZGJfaWQnXQotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9k ZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25h bWUgPSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfbmFtZSddCi0gICAgICAgIHNlbGYuZXh0ZW5z aW9uX25hbWUgPSAiY3ViZSIKK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkK K2NsYXNzIFRlc3RGb3JlaWduU2VydmVyRGVsZXRlOgorICAgIGRlZiB0ZXN0X2ZvcmVpZ25fc2Vy dmVyX2RlbGV0ZShzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIi CisgICAgICAgIFdoZW4gc2VuZGluZyBhIEhUVFAgcmVxdWVzdCB0bworICAgICAgICBkZWxldGUg Zm9yZWlnbiBzZXJ2ZXIgdW5kZXIgZGF0YWJhc2Ugbm9kZQorICAgICAgICBJdCByZXR1cm5zIDIw MCBzdGF0dXMKKyAgICAgICAgIiIiCisKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2Vs Zi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvZm9yZWlnbl9zZXJ2ZXIvb2Jq LycKKworICAgICAgICBzY2hlbWFfZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZv cm1hdGlvbiddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVy J10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KKyAg ICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9kYXRhWydkYl9pZCddCisgICAgICAgIHNlbGYuZGJf bmFtZSA9IHNjaGVtYV9kYXRhWyJkYl9uYW1lIl0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9 IHNjaGVtYV9kYXRhWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuZXh0ZW5zaW9uX25hbWUg PSAnY3ViZScKICAgICAgICAgc2VsZi5mZHdfbmFtZSA9ICJ0ZXN0X2Zkd18lcyIgJSAoc3RyKHV1 aWQudXVpZDQoKSlbMTo4XSkKICAgICAgICAgc2VsZi5mc3J2X25hbWUgPSAidGVzdF9mc3J2XyVz IiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxmLmV4dGVuc2lvbl9pZCA9 IGV4dGVuc2lvbl91dGlscy5jcmVhdGVfZXh0ZW5zaW9uKAorICAgICAgICBleHRlbnNpb25fdXRp bHMuY3JlYXRlX2V4dGVuc2lvbigKICAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25h bWUsIHNlbGYuZXh0ZW5zaW9uX25hbWUsIHNlbGYuc2NoZW1hX25hbWUpCiAgICAgICAgIHNlbGYu ZmR3X2lkID0gZmR3X3V0aWxzLmNyZWF0ZV9mZHcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZkd19uYW1l KQotICAgICAgICBzZWxmLmZzcnZfaWQgPSBmc3J2X3V0aWxzLmNyZWF0ZV9mc3J2KHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5mc3J2X25hbWUsIHNlbGYuZmR3X25hbWUpCi0KLSAgICBkZWYgcnVuVGVz dChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIGZvcmVpZ24gc2Vy dmVyIHByZXNlbnQgdW5kZXIgdGVzdAotICAgICAgICAgZGF0YWJhc2UuIiIiCi0gICAgICAgIGRi X2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFz ZSBjb25uZWN0ZWQuIjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNv bm5lY3QgdG8gZGF0YWJhc2UuIikKLSAgICAgICAgZmR3X3Jlc3BvbnNlID0gZmR3X3V0aWxzLnZl cmlmeV9mZHcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mZHdfbmFtZSkKLSAgICAgICAgaWYgbm90IGZk d19yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQg RkRXLiIpCi0gICAgICAgIGZzcnZfcmVzcG9uc2UgPSBmc3J2X3V0aWxzLnZlcmlmeV9mc3J2KHNl bGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuZnNydl9uYW1lKQotICAgICAgICBpZiBub3QgZnNydl9yZXNw b25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgRlNSVi4i KQorICAgICAgICBmc3J2X2lkID0gZnNydl91dGlscy5jcmVhdGVfZnNydihzZWxmLnNlcnZlciwg c2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmZzcnZfbmFtZSwgc2VsZi5mZHdfbmFtZSkKKworICAgICAgICBzZWxmLnRlc3RlciA9IGNv bnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKworICAgICAgICBkYl9jb24gPSBkYXRhYmFz ZV91dGlscy5jbGllbnRfY29ubmVjdF9kYXRhYmFzZSgKKyAgICAgICAgICAgIHNlbGYudGVzdGVy LAorICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQsCisgICAgICAgICAgICBzZWxmLmRiX2lkLAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJb J2RiX3Bhc3N3b3JkJ10pCisKKyAgICAgICAgZGJfY29uWyJpbmZvIl0gfCBzaG91bGQuYmUuZXF1 YWwudG8oCisgICAgICAgICAgICAiRGF0YWJhc2UgY29ubmVjdGVkLiIsCisgICAgICAgICAgICBt c2c9J0NvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLicpCisKKyAgICAgICAgIyBmZHdfdXRp bHMudmVyaWZ5X2ZkdyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLmZkd19uYW1lKSB8 IFwKKyAgICAgICAgIyAgICAgc2hvdWxkLm5vdF9iZS5ub25lCisKKyAgICAgICAgZmR3X3V0aWxz LnZlcmlmeV9mZHcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5mZHdfbmFtZSkgfCBc CisgICAgICAgICAgICBzaG91bGQubm90X2JlLmVxdWFsLnRvKE5vbmUsIG1zZz0nQ291bGQgbm90 IGZpbmQgRkRXLicpCisKKyAgICAgICAgZnNydl91dGlscy52ZXJpZnlfZnNydihzZWxmLnNlcnZl ciwgc2VsZi5kYl9uYW1lLCBzZWxmLmZzcnZfbmFtZSkgfCBcCisgICAgICAgICAgICBzaG91bGQu bm90X2JlLmVxdWFsLnRvKE5vbmUsIG1zZz0nQ291bGQgbm90IGZpbmQgRlNSVi4nKQorCiAgICAg ICAgIGRlbGV0ZV9yZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKLSAgICAgICAgICAgIHNl bGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgdXJs ICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYu c2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArCiAgICAgICAgICAgICAnLycgKyBz dHIoc2VsZi5mZHdfaWQpICsgJy8nICsKLSAgICAgICAgICAgIHN0cihzZWxmLmZzcnZfaWQpLAor ICAgICAgICAgICAgc3RyKGZzcnZfaWQpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1U cnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhkZWxldGVfcmVzcG9uc2Uuc3RhdHVzX2Nv ZGUsIDIwMCkKKworICAgICAgICBkZWxldGVfcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQu YmUuZXF1YWwudG8oMjAwKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJU aGlzIGZ1bmN0aW9uIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2UgYW5kIGRyb3AgYWRkZWQg ZXh0ZW5zaW9uCi0gICAgICAgICBhbmQgZGVwZW5kYW50IG9iamVjdHMuIiIiCiAgICAgICAgIGV4 dGVuc2lvbl91dGlscy5kcm9wX2V4dGVuc2lvbihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHRlbnNpb25fbmFt ZSkKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxm LnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rp c2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Zv cmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMvdGVzdHMvdGVzdF9mb3JlaWduX3Nl cnZlcnNfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMvdGVzdHMvdGVz dF9mb3JlaWduX3NlcnZlcnNfZ2V0LnB5CmluZGV4IGMyZmNmZmJiLi40YjUwMGI5MyAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMvdGVzdHMvdGVzdF9mb3JlaWdu X3NlcnZlcnNfZ2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3Rl c3RzL3Rlc3RfZm9yZWlnbl9zZXJ2ZXJzX2dldC5weQpAQCAtMTEsNjcgKzExLDczIEBAIGZyb20g X19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAogaW1wb3J0IHV1aWQKIAoraW1wb3J0 IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nl ci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVuc2lvbnMudGVzdHMgaW1wb3J0 IFwKICAgICB1dGlscyBhcyBleHRlbnNpb25fdXRpbHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZm9yZWlnbl9kYXRhX3dyYXBwZXJzLlwKK2Zy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZm9yZWln bl9kYXRhX3dyYXBwZXJzLiBcCiAgICAgdGVzdHMgaW1wb3J0IHV0aWxzIGFzIGZkd191dGlscwog ZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0 cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRp bHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0 IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBv cnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBmc3J2X3V0aWxz CiAKIAotY2xhc3MgRm9yZWlnblNlcnZlckdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToK LSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgYWRkIGZvcmVpZ24gc2VydmVyIHVuZGVyIEZEVyBub2Rl LiIiIgotICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQotICAgIHNjZW5hcmlvcyA9IFsK LSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZm9yZWlnbiBzZXJ2ZXIgbm9kZS4K LSAgICAgICAgKCdDaGVjayBGU1JWIE5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIvZm9yZWlnbl9z ZXJ2ZXIvb2JqLycpKQotICAgIF0KLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgIiIi IFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgZXh0ZW5zaW9uIGFuZCBmb3JlaWduIGRhdGEgd3Jh cHBlci4iIiIKLSAgICAgICAgc3VwZXIoRm9yZWlnblNlcnZlckdldFRlc3RDYXNlLCBzZWxmKS5z ZXRVcCgpCi0gICAgICAgIHNlbGYuc2NoZW1hX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hl bWEnXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydzZXJ2 ZXJfaWQnXQotICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnZGJfaWQnXQot ICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsi ZGJfbmFtZSJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9kYXRhWydz Y2hlbWFfbmFtZSddCi0gICAgICAgIHNlbGYuZXh0ZW5zaW9uX25hbWUgPSAiY3ViZSIKLSAgICAg ICAgc2VsZi5mZHdfbmFtZSA9ICJmZHdfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0g ICAgICAgIHNlbGYuZnNydl9uYW1lID0gInRlc3RfZnNydl9hZGRfJXMiICUgKHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYuZXh0ZW5zaW9uX2lkID0gZXh0ZW5zaW9uX3V0aWxz LmNyZWF0ZV9leHRlbnNpb24oCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1l LCBzZWxmLmV4dGVuc2lvbl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lKQotICAgICAgICBzZWxmLmZk d19pZCA9IGZkd191dGlscy5jcmVhdGVfZmR3KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mZHdfbmFtZSkK LSAgICAgICAgc2VsZi5mc3J2X2lkID0gZnNydl91dGlscy5jcmVhdGVfZnNydihzZWxmLnNlcnZl ciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuZnNydl9uYW1lLCBzZWxmLmZkd19uYW1lKQotCi0gICAgZGVmIHJ1blRlc3Qo c2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCBmb3JlaWduIHNlcnZl ciBwcmVzZW50IHVuZGVyIHRlc3QKLSAgICAgICAgZGF0YWJhc2UuIiIiCi0gICAgICAgIGRiX2Nv biA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBj b25uZWN0ZWQuIjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5l Y3QgdG8gZGF0YWJhc2UuIikKLSAgICAgICAgZmR3X3Jlc3BvbnNlID0gZmR3X3V0aWxzLnZlcmlm eV9mZHcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5mZHdfbmFtZSkKLSAgICAgICAgaWYgbm90IGZkd19y ZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgRkRX LiIpCitAcHl0ZXN0Lm1hcmsuc2tpcF9kYXRhYmFzZXMoWydncGRiJ10pCitjbGFzcyBUZXN0Rm9y ZWlnblNlcnZlckdldDoKKyAgICBkZWYgdGVzdF9mb3JlaWduX3NlcnZlcl9nZXQoc2VsZiwgcmVx dWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHNlbmRp bmcgYSBIVFRQIHJlcXVlc3QgdG8gZ2V0IGZvcmVpZ24gc2VydmVyIHVuZGVyIGRhdGFiYXNlIG5v ZGUKKyAgICAgICAgSXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorCisgICAgICAg IHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9i cm93c2VyL2ZvcmVpZ25fc2VydmVyL29iai8nCisKKyAgICAgICAgc2NoZW1hX2RhdGEgPSBjb250 ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQorICAgICAgICBzZWxmLnNlcnZlciA9 IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2No ZW1hX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfZGF0YVsn ZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzY2hlbWFfZGF0YVsnZGJfbmFtZSddCisg ICAgICAgIHNjaGVtYV9uYW1lID0gc2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAg c2VsZi5leHRlbnNpb25fbmFtZSA9ICdjdWJlJworICAgICAgICBmZHdfbmFtZSA9ICJmZHdfJXMi ICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIGZzcnZfbmFtZSA9ICJ0ZXN0X2Zz cnZfYWRkXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBleHRlbnNpb25f dXRpbHMuY3JlYXRlX2V4dGVuc2lvbigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRi X25hbWUsIHNlbGYuZXh0ZW5zaW9uX25hbWUsIHNjaGVtYV9uYW1lKQorICAgICAgICBmZHdfaWQg PSBmZHdfdXRpbHMuY3JlYXRlX2ZkdyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZHdfbmFtZSkKKyAgICAgICAgZnNydl9p ZCA9IGZzcnZfdXRpbHMuY3JlYXRlX2ZzcnYoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnNydl9uYW1lLCBmZHdfbmFt ZSkKKworICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50 J10KKworICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jbGllbnRfY29ubmVjdF9kYXRh YmFzZSgKKyAgICAgICAgICAgIHNlbGYudGVzdGVyLAorICAgICAgICAgICAgdXRpbHMuU0VSVkVS X0dST1VQLAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICBzZWxmLmRi X2lkLAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10pCisKKyAgICAgICAg ZGJfY29uWyJpbmZvIl0gfCBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAgICAnRGF0YWJh c2UgY29ubmVjdGVkLicsCisgICAgICAgICAgICBtc2c9J0NvdWxkIG5vdCBjb25uZWN0IHRvIGRh dGFiYXNlLicpCisKKyAgICAgICAgZmR3X3V0aWxzLnZlcmlmeV9mZHcoc2VsZi5zZXJ2ZXIsIHNl bGYuZGJfbmFtZSwgZmR3X25hbWUpIHwgXAorICAgICAgICAgICAgc2hvdWxkLm5vdF9iZS5ub25l CisKICAgICAgICAgZnNydl9yZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKLSAgICAgICAgICAg IHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAg dXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNl bGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArCi0gICAgICAgICAgICAnLycg KyBzdHIoc2VsZi5mZHdfaWQpICsgJy8nICsgc3RyKHNlbGYuZnNydl9pZCksCisgICAgICAgICAg ICAnLycgKyBzdHIoZmR3X2lkKSArICcvJyArIHN0cihmc3J2X2lkKSwKICAgICAgICAgICAgIGNv bnRlbnRfdHlwZT0naHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZnNydl9y ZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgICAgIGZzcnZfcmVzcG9uc2Uuc3RhdHVz X2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYp OgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2Ug YW5kIGRyb3AgYWRkZWQgZXh0ZW5zaW9uCi0gICAgICAgICBhbmQgZGVwZW5kYW50IG9iamVjdHMu IiIiCiAgICAgICAgIGV4dGVuc2lvbl91dGlscy5kcm9wX2V4dGVuc2lvbihzZWxmLnNlcnZlciwg c2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5leHRlbnNpb25fbmFtZSkKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRh YmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2Vf dXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2UoCisgICAgICAgICAgICBzZWxmLnRlc3Rl ciwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBw ZXJzL2ZvcmVpZ25fc2VydmVycy90ZXN0cy90ZXN0X2ZvcmVpZ25fc2VydmVyc19wdXQucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWln bl9kYXRhX3dyYXBwZXJzL2ZvcmVpZ25fc2VydmVycy90ZXN0cy90ZXN0X2ZvcmVpZ25fc2VydmVy c19wdXQucHkKaW5kZXggNzdjNWNlMjUuLjBjZDM5ZmMxIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dy YXBwZXJzL2ZvcmVpZ25fc2VydmVycy90ZXN0cy90ZXN0X2ZvcmVpZ25fc2VydmVyc19wdXQucHkK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMvdGVzdHMvdGVzdF9mb3JlaWdu X3NlcnZlcnNfcHV0LnB5CkBAIC0xMiw3NCArMTIsODAgQEAgZnJvbSBfX2Z1dHVyZV9fIGltcG9y dCBwcmludF9mdW5jdGlvbgogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRl c3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlbnNpb25zLnRlc3RzIGltcG9ydCBcCiAg ICAgdXRpbHMgYXMgZXh0ZW5zaW9uX3V0aWxzCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJf Z3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmZvcmVpZ25fZGF0YV93cmFwcGVycy5cCitmcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmZvcmVpZ25fZGF0 YV93cmFwcGVycy4gXAogICAgIHRlc3RzIGltcG9ydCB1dGlscyBhcyBmZHdfdXRpbHMKIGZyb20g cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1w b3J0IFwKICAgICB1dGlscyBhcyBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJv dXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJl bnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRl c3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnNydl91dGlscwogCiAK LWNsYXNzIEZvcmVpZ25TZXJ2ZXJQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAg IiIiVGhpcyBjbGFzcyB3aWxsIGFkZCBmb3JlaWduIHNlcnZlciB1bmRlciBGRFcgbm9kZS4iIiIK LSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAg ICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGZvcmVpZ24gc2VydmVyIG5vZGUuCi0gICAg ICAgICgnQ2hlY2sgRlNSViBOb2RlJywgZGljdCh1cmw9Jy9icm93c2VyL2ZvcmVpZ25fc2VydmVy L29iai8nKSkKLSAgICBdCi0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgICIiIiBUaGlz IGZ1bmN0aW9uIHdpbGwgY3JlYXRlIGV4dGVuc2lvbiBhbmQgZm9yZWlnbiBkYXRhIHdyYXBwZXIu IiIiCi0gICAgICAgIHN1cGVyKEZvcmVpZ25TZXJ2ZXJQdXRUZXN0Q2FzZSwgc2VsZikuc2V0VXAo KQotICAgICAgICBzZWxmLnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11b LTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lk J10KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAgICAg ICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25h bWUiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1h X25hbWUnXQotICAgICAgICBzZWxmLmV4dGVuc2lvbl9uYW1lID0gImN1YmUiCi0gICAgICAgIHNl bGYuZmR3X25hbWUgPSAiZmR3XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAg ICBzZWxmLmZzcnZfbmFtZSA9ICJ0ZXN0X2ZzcnZfcHV0XyVzIiAlIChzdHIodXVpZC51dWlkNCgp KVsxOjhdKQotICAgICAgICBzZWxmLmV4dGVuc2lvbl9pZCA9IGV4dGVuc2lvbl91dGlscy5jcmVh dGVfZXh0ZW5zaW9uKAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2Vs Zi5leHRlbnNpb25fbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSkKLSAgICAgICAgc2VsZi5mZHdfaWQg PSBmZHdfdXRpbHMuY3JlYXRlX2ZkdyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZmR3X25hbWUpCi0gICAg ICAgIHNlbGYuZnNydl9pZCA9IGZzcnZfdXRpbHMuY3JlYXRlX2ZzcnYoc2VsZi5zZXJ2ZXIsIHNl bGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLmZzcnZfbmFtZSwgc2VsZi5mZHdfbmFtZSkKLQotICAgIGRlZiBydW5UZXN0KHNlbGYp OgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIGZvcmVpZ24gc2VydmVyIHBy ZXNlbnQgdW5kZXIgdGVzdAotICAgICAgICBkYXRhYmFzZS4iIiIKLSAgICAgICAgZGJfY29uID0g ZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9p ZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5l Y3RlZC4iOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0 byBkYXRhYmFzZS4iKQotICAgICAgICBmZHdfcmVzcG9uc2UgPSBmZHdfdXRpbHMudmVyaWZ5X2Zk dyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmZkd19uYW1lKQotICAgICAgICBpZiBub3QgZmR3X3Jlc3Bv bnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCBGRFcuIikK LSAgICAgICAgZnNydl9yZXNwb25zZSA9IGZzcnZfdXRpbHMudmVyaWZ5X2ZzcnYoc2VsZi5zZXJ2 ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5mc3J2X25hbWUpCi0gICAgICAgIGlmIG5vdCBmc3J2X3Jlc3BvbnNlOgot ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCBGU1JWLiIpCitAcHl0 ZXN0Lm1hcmsuc2tpcF9kYXRhYmFzZXMoWydncGRiJ10pCitjbGFzcyBUZXN0Rm9yZWlnblNlcnZl clB1dDoKKyAgICBkZWYgdGVzdF9mb3JlaWduX3NlcnZlcl9nZXQoc2VsZiwgcmVxdWVzdCwgY29u dGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHNlbmRpbmcgYSBIVFRQ IHJlcXVlc3QgdG8gZ2V0IGZvcmVpZ24gc2VydmVyIHVuZGVyIGRhdGFiYXNlIG5vZGUKKyAgICAg ICAgSXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorCisgICAgICAgIHJlcXVlc3Qu YWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2Zv cmVpZ25fc2VydmVyL29iai8nCisKKyAgICAgICAgc2NoZW1hX2RhdGEgPSBjb250ZXh0X29mX3Rl c3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRf b2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2RhdGFb J3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfZGF0YVsnZGJfaWQnXQor ICAgICAgICBzZWxmLmRiX25hbWUgPSBzY2hlbWFfZGF0YVsnZGJfbmFtZSddCisgICAgICAgIHNj aGVtYV9uYW1lID0gc2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2VsZi5leHRl bnNpb25fbmFtZSA9ICdjdWJlJworICAgICAgICBmZHdfbmFtZSA9ICJmZHdfJXMiICUgKHN0cih1 dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIGZzcnZfbmFtZSA9ICJ0ZXN0X2ZzcnZfcHV0XyVz IiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBleHRlbnNpb25fdXRpbHMuY3Jl YXRlX2V4dGVuc2lvbigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNl bGYuZXh0ZW5zaW9uX25hbWUsIHNjaGVtYV9uYW1lKQorICAgICAgICBmZHdfaWQgPSBmZHdfdXRp bHMuY3JlYXRlX2ZkdyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmZHdfbmFtZSkKKyAgICAgICAgZnNydl9pZCA9IGZzcnZf dXRpbHMuY3JlYXRlX2ZzcnYoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnNydl9uYW1lLCBmZHdfbmFtZSkKKworICAg ICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKworICAg ICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jbGllbnRfY29ubmVjdF9kYXRhYmFzZSgKKyAg ICAgICAgICAgIHNlbGYudGVzdGVyLAorICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAor ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICBzZWxmLmRiX2lkLAorICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10pCisKKyAgICAgICAgZGJfY29uWyJp bmZvIl0gfCBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAgICAnRGF0YWJhc2UgY29ubmVj dGVkLicsCisgICAgICAgICAgICBtc2c9J0NvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLicp CisKKyAgICAgICAgZmR3X3V0aWxzLnZlcmlmeV9mZHcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFt ZSwgZmR3X25hbWUpIHwgXAorICAgICAgICAgICAgc2hvdWxkLm5vdF9iZS5lcXVhbC50byhOb25l LCBtc2c9J0NvdWxkIG5vdCBmaW5kIEZEVy4nKQorCisgICAgICAgIGZzcnZfdXRpbHMudmVyaWZ5 X2ZzcnYoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgZnNydl9uYW1lKSB8IFwKKyAgICAgICAg ICAgIHNob3VsZC5ub3RfYmUuZXF1YWwudG8oTm9uZSwgbXNnPSdDb3VsZCBub3QgZmluZCBGU1JW LicpCisKICAgICAgICAgZGF0YSA9IHsiZGVzY3JpcHRpb24iOiAiVGhpcyBpcyBmb3JlaWduIHNl cnZlciB1cGRhdGUgY29tbWVudCIsCi0gICAgICAgICAgICAgICAgImlkIjogc2VsZi5mc3J2X2lk fQorICAgICAgICAgICAgICAgICJpZCI6IGZzcnZfaWR9CisKICAgICAgICAgcHV0X3Jlc3BvbnNl ID0gc2VsZi50ZXN0ZXIucHV0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VS VkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dS T1VQKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3Ry KHNlbGYuZGJfaWQpICsKLSAgICAgICAgICAgICcvJyArIHN0cihzZWxmLmZkd19pZCkgKyAnLycg KwotICAgICAgICAgICAgc3RyKHNlbGYuZnNydl9pZCksIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwK KyAgICAgICAgICAgICcvJyArIHN0cihmZHdfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihm c3J2X2lkKSwgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAogICAgICAgICAgICAgZm9sbG93X3JlZGly ZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwdXRfcmVzcG9uc2Uuc3RhdHVz X2NvZGUsIDIwMCkKKworICAgICAgICBwdXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQu YmUuZXF1YWwudG8oMjAwKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJU aGlzIGZ1bmN0aW9uIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2UgYW5kIGRyb3AgYWRkZWQg ZXh0ZW5zaW9uCi0gICAgICAgICBhbmQgZGVwZW5kYW50IG9iamVjdHMuIiIiCiAgICAgICAgIGV4 dGVuc2lvbl91dGlscy5kcm9wX2V4dGVuc2lvbihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHRlbnNpb25fbmFt ZSkKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxm LnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rp c2Nvbm5lY3RfZGF0YWJhc2UoCisgICAgICAgICAgICBzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJf aWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL2ZvcmVpZ25fc2Vy dmVycy91c2VyX21hcHBpbmcvdGVzdHMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL2Zv cmVpZ25fc2VydmVycy91c2VyX21hcHBpbmcvdGVzdHMvX19pbml0X18ucHkKaW5kZXggNTQ0MTdm NTMuLjU5MDAyNmFkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL2ZvcmVpZ25fc2VydmVy cy91c2VyX21hcHBpbmcvdGVzdHMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9m b3JlaWduX3NlcnZlcnMvdXNlcl9tYXBwaW5nL3Rlc3RzL19faW5pdF9fLnB5CkBAIC02LDExICs2 LDMgQEAKICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBM aWNlbmNlCiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUg aW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi0KLQotY2xhc3MgVXNlck1hcHBpbmdHZW5lcmF0b3JU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAg ICAgICAgcmV0dXJuIFtdCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL2ZvcmVpZ25fc2Vy dmVycy91c2VyX21hcHBpbmcvdGVzdHMvdGVzdF91c2VyX21hcHBpbmdfYWRkLnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0 YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMvdXNlcl9tYXBwaW5nL3Rlc3RzL3Rlc3RfdXNlcl9t YXBwaW5nX2FkZC5weQppbmRleCBmYzVhZjI3ZS4uNmM0OGI2N2YgMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2Rh dGFfd3JhcHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3VzZXJfbWFwcGluZy90ZXN0cy90ZXN0X3VzZXJf bWFwcGluZ19hZGQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMvdXNl cl9tYXBwaW5nL3Rlc3RzL3Rlc3RfdXNlcl9tYXBwaW5nX2FkZC5weQpAQCAtMTIsNjMgKzEyLDY4 IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIGltcG9ydCBqc29uCiBp bXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisK IGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0 ZW5zaW9ucy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGV4dGVuc2lvbl91dGlscwotZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5mb3JlaWdu X2RhdGFfd3JhcHBlcnMuXAorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy5mb3JlaWduX2RhdGFfd3JhcHBlcnMuIFwKICAgICBmb3JlaWduX3NlcnZl cnMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIGZzcnZfdXRpbHMKLWZyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuXAorZnJvbSBwZ2FkbWluLmJyb3dzZXIu c2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy4gXAogICAgIGZvcmVpZ25fZGF0YV93cmFw cGVycy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgZmR3X3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nl ci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRp bHMgYXMgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFz ZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAog ZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0 aWxzCiAKIAotY2xhc3MgVXNlck1hcHBpbmdBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6 Ci0gICAgIiIiVGhpcyBjbGFzcyB3aWxsIGFkZCB1c2VyIG1hcHBpbmcgdW5kZXIgZm9yZWlnbiBz ZXJ2ZXIgbm9kZS4iIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLQotICAgIHNj ZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgdXNlciBtYXBw aW5nIG5vZGUuCi0gICAgICAgICgnQ2hlY2sgdXNlciBtYXBwaW5nIE5vZGUnLCBkaWN0KHVybD0n L2Jyb3dzZXIvdXNlcl9tYXBwaW5nL29iai8nKSkKLSAgICBdCi0KLSAgICBkZWYgc2V0VXAoc2Vs Zik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgY3JlYXRlIGV4dGVuc2lvbiBhbmQg Zm9yZWlnbiBkYXRhIHdyYXBwZXIuIiIiCi0gICAgICAgIHN1cGVyKFVzZXJNYXBwaW5nQWRkVGVz dENhc2UsIHNlbGYpLnNldFVwKCkKLSAgICAgICAgc2VsZi5zY2hlbWFfZGF0YSA9IHBhcmVudF9u b2RlX2RpY3RbJ3NjaGVtYSddWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2No ZW1hX2RhdGFbJ3NlcnZlcl9pZCddCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNjaGVtYV9k YXRhWydkYl9pZCddCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRh dGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYu c2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KLSAgICAgICAgc2VsZi5leHRlbnNpb25fbmFtZSA9 ICJjdWJlIgotICAgICAgICBzZWxmLmZkd19uYW1lID0gImZkd18lcyIgJSAoc3RyKHV1aWQudXVp ZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi5mc3J2X25hbWUgPSAiZnNydl8lcyIgJSAoc3RyKHV1 aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi5leHRlbnNpb25faWQgPSBleHRlbnNpb25f dXRpbHMuY3JlYXRlX2V4dGVuc2lvbigKLSAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRi X25hbWUsIHNlbGYuZXh0ZW5zaW9uX25hbWUsIHNlbGYuc2NoZW1hX25hbWUpCi0gICAgICAgIHNl bGYuZmR3X2lkID0gZmR3X3V0aWxzLmNyZWF0ZV9mZHcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFt ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZkd19u YW1lKQotICAgICAgICBzZWxmLmZzcnZfaWQgPSBmc3J2X3V0aWxzLmNyZWF0ZV9mc3J2KHNlbGYu c2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5mc3J2X25hbWUsIHNlbGYuZmR3X25hbWUpCi0KLSAgICBkZWYgcnVu VGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSBmb3JlaWdu IHNlcnZlciBwcmVzZW50IHVuZGVyIHRlc3QKLSAgICAgICAgZGF0YWJhc2UuICIiIgotICAgICAg ICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dS T1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuc2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0 YWJhc2UgY29ubmVjdGVkLiI6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5v dCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCi0gICAgICAgIGZkd19yZXNwb25zZSA9IGZkd191dGls cy52ZXJpZnlfZmR3KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZmR3X25hbWUpCi0gICAgICAgIGlmIG5v dCBmZHdfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBm aW5kIEZEVy4iKQotICAgICAgICBmc3J2X3Jlc3BvbnNlID0gZnNydl91dGlscy52ZXJpZnlfZnNy dihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLmZzcnZfbmFtZSkKLSAgICAgICAgaWYgbm90IGZzcnZf cmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIEZT UlYuIikKK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNzIFRlc3RV c2VyTWFwcGluZ0FkZDoKKyAgICBkZWYgdGVzdF91c2VyX21hcHBpbmdfYWRkKHNlbGYsIHJlcXVl c3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBzZW5kaW5n IGFuIEhUVFAgcmVxdWVzdAorICAgICAgICB0byBhZGQgYSB1c2VyIG1hcHBpbmcgdW5kZXIgZm9y ZWlnbiBzZXJ2ZXIgbm9kZQorICAgICAgICBJdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAg IiIiCisKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAg ICAgICB1cmwgPSAnL2Jyb3dzZXIvdXNlcl9tYXBwaW5nL29iai8nCisKKyAgICAgICAgc2NoZW1h X2RhdGEgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQorICAgICAgICBz ZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2Vy dmVyX2lkID0gc2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBz Y2hlbWFfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzY2hlbWFfZGF0YVsn ZGJfbmFtZSddCisgICAgICAgIHNjaGVtYV9uYW1lID0gc2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1l J10KKyAgICAgICAgc2VsZi5leHRlbnNpb25fbmFtZSA9ICdjdWJlJworICAgICAgICBmZHdfbmFt ZSA9ICJmZHdfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIGZzcnZfbmFt ZSA9ICJmc3J2XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBleHRlbnNp b25fdXRpbHMuY3JlYXRlX2V4dGVuc2lvbigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxm LmRiX25hbWUsIHNlbGYuZXh0ZW5zaW9uX25hbWUsIHNjaGVtYV9uYW1lKQorICAgICAgICBmZHdf aWQgPSBmZHdfdXRpbHMuY3JlYXRlX2ZkdyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZHdfbmFtZSkKKyAgICAgICAgZnNy dl9pZCA9IGZzcnZfdXRpbHMuY3JlYXRlX2ZzcnYoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnNydl9uYW1lLCBmZHdf bmFtZSkKKworICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xp ZW50J10KKworICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jbGllbnRfY29ubmVjdF9k YXRhYmFzZSgKKyAgICAgICAgICAgIHNlbGYudGVzdGVyLAorICAgICAgICAgICAgdXRpbHMuU0VS VkVSX0dST1VQLAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICBzZWxm LmRiX2lkLAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10pCisKKyAgICAg ICAgZGJfY29uWyJpbmZvIl0gfCBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAgICAnRGF0 YWJhc2UgY29ubmVjdGVkLicsCisgICAgICAgICAgICBtc2c9J0NvdWxkIG5vdCBjb25uZWN0IHRv IGRhdGFiYXNlLicpCisKKyAgICAgICAgZmR3X3V0aWxzLnZlcmlmeV9mZHcoc2VsZi5zZXJ2ZXIs IHNlbGYuZGJfbmFtZSwgZmR3X25hbWUpIHwgXAorICAgICAgICAgICAgc2hvdWxkLm5vdF9iZS5l cXVhbC50byhOb25lLCBtc2c9J0NvdWxkIG5vdCBmaW5kIEZEVy4nKQorCisgICAgICAgIGZzcnZf dXRpbHMudmVyaWZ5X2ZzcnYoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgZnNydl9uYW1lKSB8 IFwKKyAgICAgICAgICAgIHNob3VsZC5ub3RfYmUuZXF1YWwudG8oTm9uZSwgbXNnPSdDb3VsZCBu b3QgZmluZCBGU1JWLicpCisKICAgICAgICAgZGJfdXNlciA9IHNlbGYuc2VydmVyWyJ1c2VybmFt ZSJdCiAgICAgICAgIGRhdGEgPSB7Im5hbWUiOiBkYl91c2VyLAogICAgICAgICAgICAgICAgICJ1 bV9vcHRpb25zIjogW10sCkBAIC04MiwxOCArODcsMTkgQEAgY2xhc3MgVXNlck1hcHBpbmdBZGRU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAgICAgICAgICAgICAidW12 YWx1ZSI6IHNlbGYuc2VydmVyWyJkYl9wYXNzd29yZCJdCiAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICBdfQorCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9z dCgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycg KworICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwogICAg ICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cigKICAgICAgICAgICAgICAg ICBzZWxmLmRiX2lkKSArCi0gICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5mZHdfaWQpICsgJy8n ICsgc3RyKHNlbGYuZnNydl9pZCkgKyAnLycsCisgICAgICAgICAgICAnLycgKyBzdHIoZmR3X2lk KSArICcvJyArIHN0cihmc3J2X2lkKSArICcvJywKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1w cyhkYXRhKSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKLSAgICAgICAg c2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKworICAgICAgICBy ZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCiAKICAgICBkZWYg dGVhckRvd24oc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGlzY29ubmVjdCB0aGUg dGVzdCBkYXRhYmFzZSBhbmQgZHJvcCBhZGRlZCBleHRlbnNpb24KLSAgICAgICAgIGFuZCBkZXBl bmRhbnQgb2JqZWN0cy4iIiIKICAgICAgICAgZXh0ZW5zaW9uX3V0aWxzLmRyb3BfZXh0ZW5zaW9u KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLmV4dGVuc2lvbl9uYW1lKQotICAgICAgICBkYXRhYmFzZV91dGlscy5k aXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAg ICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZSgKKyAgICAgICAg ICAgIHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3Jl aWduX2RhdGFfd3JhcHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3VzZXJfbWFwcGluZy90ZXN0cy90ZXN0 X3VzZXJfbWFwcGluZ19kZWxldGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL2ZvcmVpZ25fc2VydmVy cy91c2VyX21hcHBpbmcvdGVzdHMvdGVzdF91c2VyX21hcHBpbmdfZGVsZXRlLnB5CmluZGV4IGE3 NWQ2ZTgzLi43ZDM0YmU0ZiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3Nl cnZlcnMvdXNlcl9tYXBwaW5nL3Rlc3RzL3Rlc3RfdXNlcl9tYXBwaW5nX2RlbGV0ZS5weQorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9y ZWlnbl9kYXRhX3dyYXBwZXJzL2ZvcmVpZ25fc2VydmVycy91c2VyX21hcHBpbmcvdGVzdHMvdGVz dF91c2VyX21hcHBpbmdfZGVsZXRlLnB5CkBAIC0xMSw4MCArMTEsODUgQEAgZnJvbSBfX2Z1dHVy ZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0 Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZl cl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0ZW5zaW9ucy50ZXN0cyBpbXBvcnQgXAogICAg IHV0aWxzIGFzIGV4dGVuc2lvbl91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5mb3JlaWduX2RhdGFfd3JhcHBlcnMuIFwKICAgICBmb3Jl aWduX3NlcnZlcnMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIGZzcnZfdXRpbHMKLWZyb20gcGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZm9yZWlnbl9kYXRhX3dy YXBwZXJzLlwKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMuZm9yZWlnbl9kYXRhX3dyYXBwZXJzLiBcCiAgICAgdGVzdHMgaW1wb3J0IHV0aWxzIGFz IGZkd191dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCi1mcm9t IHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jl c3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVz dF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBh cyB1bV91dGlscwogCiAKLWNsYXNzIFVzZXJNYXBwaW5nRGVsZXRlVGVzdENhc2UoQmFzZVRlc3RH ZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBkZWxldGUgdXNlciBtYXBwaW5nIHVu ZGVyIGZvcmVpZ24gc2VydmVyIG5vZGUuIiIiCi0gICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3Bk YiddCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZv ciB1c2VyIG1hcHBpbmcgbm9kZS4KLSAgICAgICAgKCdDaGVjayB1c2VyIG1hcHBpbmcgTm9kZScs IGRpY3QodXJsPScvYnJvd3Nlci91c2VyX21hcHBpbmcvb2JqLycpKQotICAgIF0KLQotICAgIGRl ZiBzZXRVcChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgZXh0 ZW5zaW9uIGFuZCBmb3JlaWduIGRhdGEgd3JhcHBlci4iIiIKLSAgICAgICAgc3VwZXIoVXNlck1h cHBpbmdEZWxldGVUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQotICAgICAgICBzZWxmLnNjaGVtYV9k YXRhID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCi0gICAgICAgIHNlbGYuc2VydmVy X2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KLSAgICAgICAgc2VsZi5kYl9pZCA9 IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50 X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzZWxmLnNjaGVt YV9uYW1lID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX25hbWUnXQotICAgICAgICBzZWxmLmV4 dGVuc2lvbl9uYW1lID0gImN1YmUiCi0gICAgICAgIHNlbGYuZmR3X25hbWUgPSAiZmR3XyVzIiAl IChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxmLmZzcnZfbmFtZSA9ICJmc3J2 XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxmLmV4dGVuc2lvbl9p ZCA9IGV4dGVuc2lvbl91dGlscy5jcmVhdGVfZXh0ZW5zaW9uKAotICAgICAgICAgICAgc2VsZi5z ZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5leHRlbnNpb25fbmFtZSwgc2VsZi5zY2hlbWFfbmFt ZSkKLSAgICAgICAgc2VsZi5mZHdfaWQgPSBmZHdfdXRpbHMuY3JlYXRlX2ZkdyhzZWxmLnNlcnZl ciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuZmR3X25hbWUpCi0gICAgICAgIHNlbGYuZnNydl9pZCA9IGZzcnZfdXRpbHMuY3Jl YXRlX2ZzcnYoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZzcnZfbmFtZSwgc2VsZi5mZHdfbmFtZSkK LSAgICAgICAgc2VsZi51bV9pZCA9IHVtX3V0aWxzLmNyZWF0ZV91c2VyX21hcHBpbmcoc2VsZi5z ZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5mc3J2X25hbWUpCi0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToK LSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSB1c2VyIG1hcHBpbmcgcHJlc2Vu dCB1bmRlciB0ZXN0Ci0gICAgICAgICBkYXRhYmFzZS4gIiIiCi0gICAgICAgIGRiX2NvbiA9IGRh dGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5k Yl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0 ZWQuIjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8g ZGF0YWJhc2UuIikKLSAgICAgICAgZmR3X3Jlc3BvbnNlID0gZmR3X3V0aWxzLnZlcmlmeV9mZHco c2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5mZHdfbmFtZSkKLSAgICAgICAgaWYgbm90IGZkd19yZXNwb25z ZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgRkRXLiIpCi0g ICAgICAgIGZzcnZfcmVzcG9uc2UgPSBmc3J2X3V0aWxzLnZlcmlmeV9mc3J2KHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuZnNydl9uYW1lKQotICAgICAgICBpZiBub3QgZnNydl9yZXNwb25zZToKLSAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgRlNSVi4iKQotICAgICAg ICB1bV9yZXNwb25zZSA9IHVtX3V0aWxzLnZlcmlmeV91c2VyX21hcHBpbmcoc2VsZi5zZXJ2ZXIs IHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuZnNydl9uYW1lKQotICAgICAgICBpZiBub3QgdW1fcmVzcG9uc2U6Ci0g ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHVzZXIgbWFwcGluZy4i KQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsnZ3BkYiddKQorY2xhc3MgVGVzdFVzZXJN YXBwaW5nRGVsZXRlOgorICAgIGRlZiB0ZXN0X3VzZXJfbWFwcGluZ19kZWxldGUoc2VsZiwgcmVx dWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHNlbmRp bmcgYW4gSFRUUCByZXF1ZXN0CisgICAgICAgIHRvIGRlbGV0ZSBhIHVzZXIgbWFwcGluZyB1bmRl ciBmb3JlaWduIHNlcnZlciBub2RlCisgICAgICAgIEl0IHJldHVybnMgMjAwIHN0YXR1cworICAg ICAgICAiIiIKKworICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQor CisgICAgICAgIHVybCA9ICcvYnJvd3Nlci91c2VyX21hcHBpbmcvb2JqLycKKworICAgICAgICBz Y2hlbWFfZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddCisgICAg ICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQgPSBzY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9p ZCA9IHNjaGVtYV9kYXRhWydkYl9pZCddCisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNjaGVtYV9k YXRhWydkYl9uYW1lJ10KKyAgICAgICAgc2NoZW1hX25hbWUgPSBzY2hlbWFfZGF0YVsnc2NoZW1h X25hbWUnXQorICAgICAgICBzZWxmLmV4dGVuc2lvbl9uYW1lID0gJ2N1YmUnCisgICAgICAgIGZk d19uYW1lID0gImZkd18lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgZnNy dl9uYW1lID0gImZzcnZfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIGV4 dGVuc2lvbl91dGlscy5jcmVhdGVfZXh0ZW5zaW9uKAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIs IHNlbGYuZGJfbmFtZSwgc2VsZi5leHRlbnNpb25fbmFtZSwgc2NoZW1hX25hbWUpCisgICAgICAg IGZkd19pZCA9IGZkd191dGlscy5jcmVhdGVfZmR3KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkd19uYW1lKQorICAgICAg ICBmc3J2X2lkID0gZnNydl91dGlscy5jcmVhdGVfZnNydihzZWxmLnNlcnZlciwgc2VsZi5kYl9u YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmc3J2X25hbWUs IGZkd19uYW1lKQorICAgICAgICB1bV9pZCA9IHVtX3V0aWxzLmNyZWF0ZV91c2VyX21hcHBpbmco c2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZzcnZfbmFtZSkKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0 X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRp bHMuY2xpZW50X2Nvbm5lY3RfZGF0YWJhc2UoCisgICAgICAgICAgICBzZWxmLnRlc3RlciwKKyAg ICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyX2lk LAorICAgICAgICAgICAgc2VsZi5kYl9pZCwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9w YXNzd29yZCddKQorCisgICAgICAgIGRiX2NvblsiaW5mbyJdIHwgc2hvdWxkLmJlLmVxdWFsLnRv KAorICAgICAgICAgICAgJ0RhdGFiYXNlIGNvbm5lY3RlZC4nLAorICAgICAgICAgICAgbXNnPSdD b3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4nKQorCisgICAgICAgIGZkd191dGlscy52ZXJp ZnlfZmR3KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIGZkd19uYW1lKSB8IFwKKyAgICAgICAg ICAgIHNob3VsZC5ub3RfYmUuZXF1YWwudG8oTm9uZSwgbXNnPSdDb3VsZCBub3QgZmluZCBGRFcu JykKKworICAgICAgICBmc3J2X3V0aWxzLnZlcmlmeV9mc3J2KHNlbGYuc2VydmVyLCBzZWxmLmRi X25hbWUsIGZzcnZfbmFtZSkgfCBcCisgICAgICAgICAgICBzaG91bGQubm90X2JlLmVxdWFsLnRv KE5vbmUsIG1zZz0nQ291bGQgbm90IGZpbmQgRlNSVi4nKQorCisgICAgICAgIHVtX3V0aWxzLnZl cmlmeV91c2VyX21hcHBpbmcoCisgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1l LCBmc3J2X25hbWUpIHwgXAorICAgICAgICAgICAgc2hvdWxkLm5vdF9iZS5lcXVhbC50byhOb25l LCBtc2c9J0NvdWxkIG5vdCBmaW5kIHVzZXIgbWFwcGluZy4nKQorCiAgICAgICAgIGRlbGV0ZV9y ZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3Ry KHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxz LlNFUlZFUl9HUk9VUCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSAr ICcvJyArIHN0cihzZWxmLmRiX2lkKSArCi0gICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5mZHdf aWQpICsgJy8nICsKLSAgICAgICAgICAgIHN0cihzZWxmLmZzcnZfaWQpICsgJy8nICsgc3RyKHNl bGYudW1faWQpLAorICAgICAgICAgICAgJy8nICsgc3RyKGZkd19pZCkgKyAnLycgKworICAgICAg ICAgICAgc3RyKGZzcnZfaWQpICsgJy8nICsgc3RyKHVtX2lkKSwKICAgICAgICAgICAgIGZvbGxv d19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZGVsZXRlX3Jlc3Bv bnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICAgICAgZGVsZXRlX3Jlc3BvbnNlLnN0YXR1c19j b2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToK LSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkaXNjb25uZWN0IHRoZSB0ZXN0IGRhdGFiYXNlIGFu ZCBkcm9wIGFkZGVkIGV4dGVuc2lvbgotICAgICAgICAgYW5kIGRlcGVuZGFudCBvYmplY3RzLiIi IgogICAgICAgICBleHRlbnNpb25fdXRpbHMuZHJvcF9leHRlbnNpb24oc2VsZi5zZXJ2ZXIsIHNl bGYuZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZXh0ZW5zaW9uX25hbWUpCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJh c2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0 aWxzLmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKAorICAgICAgICAgICAgc2VsZi50ZXN0ZXIs IHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVy cy9mb3JlaWduX3NlcnZlcnMvdXNlcl9tYXBwaW5nL3Rlc3RzL3Rlc3RfdXNlcl9tYXBwaW5nX2dl dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3VzZXJfbWFwcGluZy90ZXN0 cy90ZXN0X3VzZXJfbWFwcGluZ19nZXQucHkKaW5kZXggNWU0ZTc4YzEuLmM5MmUyZDUyIDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL2ZvcmVpZ25fc2VydmVycy91c2VyX21hcHBpbmcvdGVz dHMvdGVzdF91c2VyX21hcHBpbmdfZ2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvZm9yZWln bl9zZXJ2ZXJzL3VzZXJfbWFwcGluZy90ZXN0cy90ZXN0X3VzZXJfbWFwcGluZ19nZXQucHkKQEAg LTExLDM3ICsxMSw0MSBAQCBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAK IGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQK KwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5l eHRlbnNpb25zLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgZXh0ZW5zaW9uX3V0aWxzCiBm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmZvcmVp Z25fZGF0YV93cmFwcGVycy4gXAogICAgIGZvcmVpZ25fc2VydmVycy50ZXN0cyBpbXBvcnQgdXRp bHMgYXMgZnNydl91dGlscwotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy5mb3JlaWduX2RhdGFfd3JhcHBlcnMuXAorZnJvbSBwZ2FkbWluLmJyb3dz ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5mb3JlaWduX2RhdGFfd3JhcHBlcnMu IFwKICAgICB0ZXN0cyBpbXBvcnQgdXRpbHMgYXMgZmR3X3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCBcCiAgICAg dXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQg QmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGlj dAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFz IHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHVtX3V0aWxzCiAKIAotY2xhc3MgVXNlck1h cHBpbmdHZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3 aWxsIGFkZCB1c2VyIG1hcHBpbmcgdW5kZXIgZm9yZWlnbiBzZXJ2ZXIgbm9kZS4iIiIKLSAgICBz a2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMg RmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHVzZXIgbWFwcGluZyBub2RlLgotICAgICAgICAoJ0No ZWNrIHVzZXIgbWFwcGluZyBOb2RlJywgZGljdCh1cmw9Jy9icm93c2VyL3VzZXJfbWFwcGluZy9v YmovJykpCi0gICAgXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsnZ3BkYiddKQorY2xh c3MgVGVzdFVzZXJNYXBwaW5nR2V0OgorICAgIGRlZiB0ZXN0X3VzZXJfbWFwcGluZ19nZXQoc2Vs ZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVu IHNlbmRpbmcgYW4gSFRUUCByZXF1ZXN0CisgICAgICAgIHRvIGFkZCBhIHVzZXIgbWFwcGluZyB1 bmRlciBmb3JlaWduIHNlcnZlciBub2RlCisgICAgICAgIEl0IHJldHVybnMgMjAwIHN0YXR1cwor ICAgICAgICAiIiIKKworICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3du KQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxs IGNyZWF0ZSBleHRlbnNpb24gYW5kIGZvcmVpZ24gZGF0YSB3cmFwcGVyLiIiIgotICAgICAgICBz dXBlcihVc2VyTWFwcGluZ0dldFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCi0gICAgICAgIHNlbGYu c2NoZW1hX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KKyAgICAgICAgdXJs ID0gJy9icm93c2VyL3VzZXJfbWFwcGluZy9vYmovJworCisgICAgICAgIHNlbGYuc2NoZW1hX2Rh dGEgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQorICAgICAgICBzZWxm LnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCiAgICAgICAgIHNlbGYuc2VydmVy X2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KICAgICAgICAgc2VsZi5kYl9pZCA9 IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50 X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgICAgICBzZWxmLmRiX25h bWUgPSBzZWxmLnNjaGVtYV9kYXRhWydkYl9uYW1lJ10KICAgICAgICAgc2VsZi5zY2hlbWFfbmFt ZSA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KLSAgICAgICAgc2VsZi5leHRlbnNp b25fbmFtZSA9ICJjdWJlIgorICAgICAgICBzZWxmLmV4dGVuc2lvbl9uYW1lID0gJ2N1YmUnCiAg ICAgICAgIHNlbGYuZmR3X25hbWUgPSAiZmR3XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhd KQogICAgICAgICBzZWxmLmZzcnZfbmFtZSA9ICJmc3J2XyVzIiAlIChzdHIodXVpZC51dWlkNCgp KVsxOjhdKQogICAgICAgICBzZWxmLmV4dGVuc2lvbl9pZCA9IGV4dGVuc2lvbl91dGlscy5jcmVh dGVfZXh0ZW5zaW9uKApAQCAtNTIsMzQgKzU2LDM1IEBAIGNsYXNzIFVzZXJNYXBwaW5nR2V0VGVz dENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuZnNydl9uYW1lLCBzZWxmLmZkd19uYW1lKQogICAgICAgICBz ZWxmLnVtX2lkID0gdW1fdXRpbHMuY3JlYXRlX3VzZXJfbWFwcGluZyhzZWxmLnNlcnZlciwgc2Vs Zi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLmZzcnZfbmFtZSkKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rl c3RzWyd0ZXN0X2NsaWVudCddCisKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY2xp ZW50X2Nvbm5lY3RfZGF0YWJhc2UoCisgICAgICAgICAgICBzZWxmLnRlc3RlciwKKyAgICAgICAg ICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAg ICAgICAgICAgc2VsZi5kYl9pZCwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29y ZCddKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24g d2lsbCB1cGRhdGUgZm9yZWlnbiBzZXJ2ZXIgcHJlc2VudCB1bmRlciB0ZXN0Ci0gICAgICAgIGRh dGFiYXNlLiIiIgotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFi YXNlKHNlbGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9j b25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6Ci0gICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCi0gICAgICAgIGZkd19y ZXNwb25zZSA9IGZkd191dGlscy52ZXJpZnlfZmR3KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZmR3X25h bWUpCi0gICAgICAgIGlmIG5vdCBmZHdfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIkNvdWxkIG5vdCBmaW5kIEZEVy4iKQotICAgICAgICBmc3J2X3Jlc3BvbnNlID0gZnNy dl91dGlscy52ZXJpZnlfZnNydihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZzcnZfbmFtZSkKLSAg ICAgICAgaWYgbm90IGZzcnZfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o IkNvdWxkIG5vdCBmaW5kIEZTUlYuIikKLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5n ZXQoc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgIGRi X2NvblsiaW5mbyJdIHwgc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAgICAgJ0RhdGFiYXNl IGNvbm5lY3RlZC4nLAorICAgICAgICAgICAgbXNnPSdDb3VsZCBub3QgY29ubmVjdCB0byBkYXRh YmFzZS4nKQorCisgICAgICAgIGZkd191dGlscy52ZXJpZnlfZmR3KHNlbGYuc2VydmVyLCBzZWxm LmRiX25hbWUsIHNlbGYuZmR3X25hbWUpIHwgXAorICAgICAgICAgICAgc2hvdWxkLm5vdF9iZS5l cXVhbC50byhOb25lLCBtc2c9J0NvdWxkIG5vdCBmaW5kIEZEVy4nKQorCisgICAgICAgIGZzcnZf dXRpbHMudmVyaWZ5X2ZzcnYoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5mc3J2X25h bWUpIHwgXAorICAgICAgICAgICAgc2hvdWxkLm5vdF9iZS5lcXVhbC50byhOb25lLCBtc2c9J0Nv dWxkIG5vdCBmaW5kIEZTUlYuJykKKworICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdl dCh1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoCiAgICAg ICAgICAgICBzZWxmLmRiX2lkKSArICcvJyArIHN0cihzZWxmLmZkd19pZCkgKyAnLycgKyBzdHIo CiAgICAgICAgICAgICBzZWxmLmZzcnZfaWQpICsgJy8nICsgc3RyKAogICAgICAgICAgICAgc2Vs Zi51bV9pZCksIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRF cXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKworICAgICAgICByZXNwb25zZS5zdGF0 dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCiAKICAgICBkZWYgdGVhckRvd24oc2Vs Zik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGlzY29ubmVjdCB0aGUgdGVzdCBkYXRhYmFz ZSBhbmQgZHJvcCBhZGRlZCBleHRlbnNpb24KLSAgICAgICAgIGFuZCBkZXBlbmRhbnQgb2JqZWN0 cy4iIiIKICAgICAgICAgZXh0ZW5zaW9uX3V0aWxzLmRyb3BfZXh0ZW5zaW9uKHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmV4dGVuc2lvbl9uYW1lKQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2Rh dGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBkYXRhYmFz ZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZSgKKyAgICAgICAgICAgIHNlbGYudGVz dGVyLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3Jh cHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3VzZXJfbWFwcGluZy90ZXN0cy90ZXN0X3VzZXJfbWFwcGlu Z19wdXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL2ZvcmVpZ25fc2VydmVycy91c2VyX21hcHBpbmcv dGVzdHMvdGVzdF91c2VyX21hcHBpbmdfcHV0LnB5CmluZGV4IDAyNWI1NzFhLi45NTk3NGEzNiAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMvdXNlcl9tYXBwaW5n L3Rlc3RzL3Rlc3RfdXNlcl9tYXBwaW5nX3B1dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL2Zv cmVpZ25fc2VydmVycy91c2VyX21hcHBpbmcvdGVzdHMvdGVzdF91c2VyX21hcHBpbmdfcHV0LnB5 CkBAIC0xMiw3MiArMTIsNzYgQEAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlv bgogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBh IGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy5leHRlbnNpb25zLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgZXh0 ZW5zaW9uX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu ZGF0YWJhc2VzLmZvcmVpZ25fZGF0YV93cmFwcGVycy4gXAogICAgIGZvcmVpZ25fc2VydmVycy50 ZXN0cyBpbXBvcnQgdXRpbHMgYXMgZnNydl91dGlscwotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5mb3JlaWduX2RhdGFfd3JhcHBlcnMuXAorZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5mb3JlaWdu X2RhdGFfd3JhcHBlcnMuIFwKICAgICB0ZXN0cyBpbXBvcnQgdXRpbHMgYXMgZmR3X3V0aWxzCiBm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3Rz IGltcG9ydCBcCiAgICAgdXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGls cy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQg cGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9y dCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHVtX3V0aWxzCiAK IAotY2xhc3MgVXNlck1hcHBpbmdQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAg IiIiVGhpcyBjbGFzcyB3aWxsIHVwZGF0ZSB1c2VyIG1hcHBpbmcgdW5kZXIgZm9yZWlnbiBzZXJ2 ZXIgbm9kZS4iIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLSAgICBzY2VuYXJp b3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHVzZXIgbWFwcGluZyBu b2RlLgotICAgICAgICAoJ0NoZWNrIHVzZXIgbWFwcGluZyBOb2RlJywgZGljdCh1cmw9Jy9icm93 c2VyL3VzZXJfbWFwcGluZy9vYmovJykpCi0gICAgXQotCi0gICAgZGVmIHNldFVwKHNlbGYpOgot ICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZSBleHRlbnNpb24gYW5kIGZvcmVp Z24gZGF0YSB3cmFwcGVyLiIiIgotICAgICAgICBzdXBlcihVc2VyTWFwcGluZ1B1dFRlc3RDYXNl LCBzZWxmKS5zZXRVcCgpCi0gICAgICAgIHNlbGYuc2NoZW1hX2RhdGEgPSBwYXJlbnRfbm9kZV9k aWN0WydzY2hlbWEnXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9k YXRhWydzZXJ2ZXJfaWQnXQotICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsn ZGJfaWQnXQotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFz ZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVt YV9kYXRhWydzY2hlbWFfbmFtZSddCitAcHl0ZXN0Lm1hcmsuc2tpcF9kYXRhYmFzZXMoWydncGRi J10pCitjbGFzcyBUZXN0VXNlck1hcHBpbmdQdXQ6CisgICAgZGVmIHRlc3RfdXNlcl9tYXBwaW5n X3B1dChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAg ICAgIFdoZW4gc2VuZGluZyBhbiBIVFRQIHJlcXVlc3QKKyAgICAgICAgdG8gcHV0IGEgdXNlciBt YXBwaW5nIHVuZGVyIGZvcmVpZ24gc2VydmVyIG5vZGUKKyAgICAgICAgSXQgcmV0dXJucyAyMDAg c3RhdHVzCisgICAgICAgICIiIgorCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYu dGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3VzZXJfbWFwcGluZy9vYmovJwor CisgICAgICAgIHNjaGVtYV9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9ybWF0 aW9uJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQor ICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAg ICBzZWxmLmRiX2lkID0gc2NoZW1hX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5kYl9uYW1l ID0gc2NoZW1hX2RhdGFbImRiX25hbWUiXQorICAgICAgICBzY2hlbWFfbmFtZSA9IHNjaGVtYV9k YXRhWydzY2hlbWFfbmFtZSddCiAgICAgICAgIHNlbGYuZXh0ZW5zaW9uX25hbWUgPSAiY3ViZSIK LSAgICAgICAgc2VsZi5mZHdfbmFtZSA9ICJmZHdfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6 OF0pCi0gICAgICAgIHNlbGYuZnNydl9uYW1lID0gImZzcnZfJXMiICUgKHN0cih1dWlkLnV1aWQ0 KCkpWzE6OF0pCi0gICAgICAgIHNlbGYuZXh0ZW5zaW9uX2lkID0gZXh0ZW5zaW9uX3V0aWxzLmNy ZWF0ZV9leHRlbnNpb24oCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBz ZWxmLmV4dGVuc2lvbl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lKQotICAgICAgICBzZWxmLmZkd19p ZCA9IGZkd191dGlscy5jcmVhdGVfZmR3KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mZHdfbmFtZSkKLSAg ICAgICAgc2VsZi5mc3J2X2lkID0gZnNydl91dGlscy5jcmVhdGVfZnNydihzZWxmLnNlcnZlciwg c2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuZnNydl9uYW1lLCBzZWxmLmZkd19uYW1lKQotICAgICAgICBzZWxmLnVtX2lkID0g dW1fdXRpbHMuY3JlYXRlX3VzZXJfbWFwcGluZyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZz cnZfbmFtZSkKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0 aW9uIHdpbGwgdXBkYXRlIGZvcmVpZ24gc2VydmVyIHByZXNlbnQgdW5kZXIgdGVzdAotICAgICAg ICBkYXRhYmFzZSIiIgotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2Rh dGFiYXNlKHNlbGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBk Yl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6Ci0gICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCi0gICAgICAgIGZk d19yZXNwb25zZSA9IGZkd191dGlscy52ZXJpZnlfZmR3KHNlbGYuc2VydmVyLCBzZWxmLmRiX25h bWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZmR3 X25hbWUpCi0gICAgICAgIGlmIG5vdCBmZHdfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIEZEVy4iKQotICAgICAgICBmc3J2X3Jlc3BvbnNlID0g ZnNydl91dGlscy52ZXJpZnlfZnNydihzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZzcnZfbmFtZSkKLSAgICAgICAg aWYgbm90IGZzcnZfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxk IG5vdCBmaW5kIEZTUlYuIikKLSAgICAgICAgdW1fcmVzcG9uc2UgPSB1bV91dGlscy52ZXJpZnlf dXNlcl9tYXBwaW5nKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZzcnZfbmFtZSkKLSAgICAg ICAgaWYgbm90IHVtX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3Vs ZCBub3QgZmluZCB1c2VyIG1hcHBpbmcuIikKKyAgICAgICAgZmR3X25hbWUgPSAiZmR3XyVzIiAl IChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBmc3J2X25hbWUgPSAiZnNydl8lcyIg JSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgZXh0ZW5zaW9uX3V0aWxzLmNyZWF0 ZV9leHRlbnNpb24oCisgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxm LmV4dGVuc2lvbl9uYW1lLCBzY2hlbWFfbmFtZSkKKyAgICAgICAgZmR3X2lkID0gZmR3X3V0aWxz LmNyZWF0ZV9mZHcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZmR3X25hbWUpCisgICAgICAgIGZzcnZfaWQgPSBmc3J2X3V0 aWxzLmNyZWF0ZV9mc3J2KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZzcnZfbmFtZSwgZmR3X25hbWUpCisgICAgICAg IHVtX2lkID0gdW1fdXRpbHMuY3JlYXRlX3VzZXJfbWFwcGluZyhzZWxmLnNlcnZlciwgc2VsZi5k Yl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnNy dl9uYW1lKQorICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xp ZW50J10KKworICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jbGllbnRfY29ubmVjdF9k YXRhYmFzZSgKKyAgICAgICAgICAgIHNlbGYudGVzdGVyLAorICAgICAgICAgICAgdXRpbHMuU0VS VkVSX0dST1VQLAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICBzZWxm LmRiX2lkLAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10pCisKKyAgICAg ICAgZGJfY29uWyJpbmZvIl0gfCBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAgICAnRGF0 YWJhc2UgY29ubmVjdGVkLicsCisgICAgICAgICAgICBtc2c9J0NvdWxkIG5vdCBjb25uZWN0IHRv IGRhdGFiYXNlLicpCisKKyAgICAgICAgZmR3X3V0aWxzLnZlcmlmeV9mZHcoc2VsZi5zZXJ2ZXIs IHNlbGYuZGJfbmFtZSwgZmR3X25hbWUpIHwgXAorICAgICAgICAgICAgc2hvdWxkLm5vdF9iZS5l cXVhbC50byhOb25lLCBtc2c9J0NvdWxkIG5vdCBmaW5kIEZEVy4nKQorCisgICAgICAgIGZzcnZf dXRpbHMudmVyaWZ5X2ZzcnYoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgZnNydl9uYW1lKSB8 IFwKKyAgICAgICAgICAgIHNob3VsZC5ub3RfYmUuZXF1YWwudG8oTm9uZSwgbXNnPSdDb3VsZCBu b3QgZmluZCBGU1JWLicpCisKKyAgICAgICAgdW1fdXRpbHMudmVyaWZ5X3VzZXJfbWFwcGluZygK KyAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIGZzcnZfbmFtZSkgfCBcCisg ICAgICAgICAgICBzaG91bGQubm90X2JlLmVxdWFsLnRvKE5vbmUsIG1zZz0nQ291bGQgbm90IGZp bmQgdXNlciBtYXBwaW5nLicpCisKICAgICAgICAgZGF0YSA9IHsKLSAgICAgICAgICAgICJpZCI6 IHNlbGYudW1faWQsCisgICAgICAgICAgICAiaWQiOiB1bV9pZCwKICAgICAgICAgICAgICJ1bW9w dGlvbnMiOgogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgImNoYW5nZWQi OgpAQCAtODgsMTggKzkyLDE5IEBAIGNsYXNzIFVzZXJNYXBwaW5nUHV0VGVzdENhc2UoQmFzZVRl c3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAg IH0KICAgICAgICAgfQorCiAgICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgK LSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwor ICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwogICAgICAg ICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArCi0gICAg ICAgICAgICAnLycgKyBzdHIoc2VsZi5mZHdfaWQpICsgJy8nICsKLSAgICAgICAgICAgIHN0cihz ZWxmLmZzcnZfaWQpICsgJy8nICsgc3RyKHNlbGYudW1faWQpLAorICAgICAgICAgICAgJy8nICsg c3RyKGZkd19pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKGZzcnZfaWQpICsgJy8nICsgc3Ry KHVtX2lkKSwKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAg IGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocHV0X3Jl c3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICAgICAgcHV0X3Jlc3BvbnNlLnN0YXR1c19j b2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToK LSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkaXNjb25uZWN0IHRoZSB0ZXN0IGRhdGFiYXNlIGFu ZCBkcm9wIGFkZGVkCi0gICAgICAgIGV4dGVuc2lvbiBhbmQgZGVwZW5kYW50IG9iamVjdHMuIiIi CiAgICAgICAgIGV4dGVuc2lvbl91dGlscy5kcm9wX2V4dGVuc2lvbihzZWxmLnNlcnZlciwgc2Vs Zi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5l eHRlbnNpb25fbmFtZSkKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFz ZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2VfdXRp bHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2UoCisgICAgICAgICAgICBzZWxmLnRlc3Rlciwg c2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJz L3Rlc3RzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy90ZXN0cy9fX2luaXRfXy5weQpp bmRleCBjNzhhZGUzNC4uNTkwMDI2YWQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvdGVz dHMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy90ZXN0cy9fX2luaXRfXy5weQpA QCAtNiwxMSArNiwzIEBACiAjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBv c3RncmVTUUwgTGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotZnJvbSBwZ2FkbWluLnV0 aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotCi0KLWNsYXNzIEZEV0dlbmVyYXRv clRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgot ICAgICAgICByZXR1cm4gW10KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvdGVzdHMvdGVz dF9mZHdfYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy90ZXN0cy90ZXN0X2Zkd19hZGQucHkKaW5k ZXggMzY4NmRhNGIuLmFmMjljZjcyIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL3Rlc3Rz L3Rlc3RfZmR3X2FkZC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL3Rlc3RzL3Rlc3RfZmR3X2Fk ZC5weQpAQCAtMTEsNTMgKzExLDY4IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVu Y3Rpb24KIAogaW1wb3J0IGpzb24KIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0 IHNob3VsZAorCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0 X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25z ZQogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50 ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4u dXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1w b3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBp bXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBmZHdfdXRp bHMKIAogCi1jbGFzcyBGRFdEQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIi IiBUaGlzIGNsYXNzIHdpbGwgYWRkIGZvcmVpZ24gZGF0YSB3cmFwcGVycyB1bmRlciBkYXRhYmFz ZSBub2RlLiAiIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLQotICAgIHNjZW5h cmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZm9yZWlnbl9kYXRh X3dyYXBwZXIgbm9kZS4KLSAgICAgICAgKCdDaGVjayBGRFcgTm9kZScsCi0gICAgICAgICBkaWN0 KHVybD0nL2Jyb3dzZXIvZm9yZWlnbl9kYXRhX3dyYXBwZXIvb2JqLycpKQotICAgIF0KLQotICAg IGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUg ZXh0ZW5zaW9uLiIiIgotICAgICAgICBzdXBlcihGRFdEQWRkVGVzdENhc2UsIHNlbGYpLnNldFVw KCkKLQotICAgICAgICBzZWxmLnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1h J11bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVy X2lkJ10KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAg ICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10K LSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1b ImRiX25hbWUiXQotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVu Y3Rpb24gd2lsbCBhZGQgZm9yZWlnbiBkYXRhIHdyYXBwZXIgdW5kZXIgdGVzdCBkYXRhYmFzZS4i IiIKLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxm LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxz LlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNlcnZlcl9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZv Il0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQorQHB5dGVzdC5tYXJrLnNraXBfZGF0 YWJhc2VzKFsnZ3BkYiddKQorY2xhc3MgVGVzdEZvcmVpZ25EYXRhV3JhcHBlckFkZDoKKyAgICBk ZWYgdGVzdF9mb3JlaWduX2RhdGFfd3JhcHBlcl9hZGQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9v Zl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHNlbmRpbmcgYSB2YWxpZCBIVFRQ IHJlcXVlc3QgdG8gYWRkIGEgZm9yZWlnbiBkYXRhIHdyYXBwZXIKKyAgICAgICAgSXQgcmV0dXJu cyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVy KHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2ZvcmVpZ25fZGF0YV93 cmFwcGVyL29iai8nCisKKyAgICAgICAgc2NoZW1hX2RhdGEgPSBjb250ZXh0X29mX3Rlc3RzWydz ZXJ2ZXJfaW5mb3JtYXRpb24nXQorICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVz dHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3Rz WydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9kYXRhWydzZXJ2ZXJf aWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAg c2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9kYXRhWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNl bGYuZGJfbmFtZSA9IHNjaGVtYV9kYXRhWyJkYl9uYW1lIl0KKworICAgICAgICBkYl9jb24gPSBk YXRhYmFzZV91dGlscy5jbGllbnRfY29ubmVjdF9kYXRhYmFzZSgKKyAgICAgICAgICAgIHNlbGYu dGVzdGVyLAorICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICBzZWxmLmRiX2lkLAorICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJbImRiX3Bhc3N3b3JkIl0pCisKKyAgICAgICAgZGJfY29uWyJpbmZvIl0gfCBzaG91bGQu YmUuZXF1YWwudG8oCisgICAgICAgICAgICAiRGF0YWJhc2UgY29ubmVjdGVkLiIsCisgICAgICAg ICAgICBtc2c9J0NvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLicpCisKICAgICAgICAgc2Vs Zi5kYXRhID0gZmR3X3V0aWxzLmdldF9mZHdfZGF0YShzZWxmLnNjaGVtYV9uYW1lLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFt ZSddKQogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCi0gICAgICAgICAgICBz ZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHVy bCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxm LnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKyAnLycsCiAgICAgICAgICAgICBk YXRhPWpzb24uZHVtcHMoc2VsZi5kYXRhKSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRt bC9qc29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUs IDIwMCkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50 bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24o cmVzcG9uc2UpCisKKyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UoanNv bl9yZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zv cmVpZ25fZGF0YV93cmFwcGVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ3BnYWRtaW4ubm9kZS5mb3JlaWduX2RhdGFfd3JhcHBlcicsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRydWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICdpY29uLWZvcmVpZ25fZGF0YV93cmFwcGVyJywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYXRhWyduYW1lJ10pCiAKICAg ICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlIHRo ZSBGRFcgYW5kIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2UgIiIiCi0gICAgICAgIGZkd191 dGlscy5kZWxldGVfZmR3KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuZGF0YVsibmFt ZSJdKQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNl bGYuc2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuZGJfaWQpCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ2RhdGEnKToKKyAgICAgICAg ICAgIGZkd191dGlscy5kZWxldGVfZmR3KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYu ZGF0YVsibmFtZSJdKQorICAgICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9k YXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWln bl9kYXRhX3dyYXBwZXJzL3Rlc3RzL3Rlc3RfZmR3X2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBl cnMvdGVzdHMvdGVzdF9mZHdfZGVsZXRlLnB5CmluZGV4IDczZmEwN2VkLi45NGUzZTI5ZSAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy90ZXN0cy90ZXN0X2Zkd19kZWxldGUucHkKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVp Z25fZGF0YV93cmFwcGVycy90ZXN0cy90ZXN0X2Zkd19kZWxldGUucHkKQEAgLTExLDU2ICsxMSw3 NiBAQCBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGltcG9ydCB1dWlk CiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQg XAogICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUg aW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9u b2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRf cmVzcG9uc2VfdG9fanNvbgogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9y dCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZkd191dGlscwog CiAKLWNsYXNzIEZEV0REZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIi VGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSBmb3JlaWduIGRhdGEgd3JhcHBlcnMgdW5kZXIgdGVzdCBk YXRhYmFzZS4iIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLSAgICBzY2VuYXJp b3MgPSBbICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBmb3JlaWduX2RhdGFfd3JhcHBlciBu b2RlLgotICAgICAgICAoJ0NoZWNrIEZEVyBOb2RlJywKLSAgICAgICAgIGRpY3QodXJsPScvYnJv d3Nlci9mb3JlaWduX2RhdGFfd3JhcHBlci9vYmovJykpXQotCi0gICAgZGVmIHNldFVwKHNlbGYp OgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZSBleHRlbnNpb24gYW5kIGZv cmVpZ24gZGF0YSB3cmFwcGVyLiIiIgotICAgICAgICBzdXBlcihGRFdERGVsZXRlVGVzdENhc2Us IHNlbGYpLnNldFVwKCkKLSAgICAgICAgc2VsZi5zY2hlbWFfZGF0YSA9IHBhcmVudF9ub2RlX2Rp Y3RbJ3NjaGVtYSddWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2NoZW1hX2Rh dGFbJ3NlcnZlcl9pZCddCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydk Yl9pZCddCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNl Il1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1h X2RhdGFbJ3NjaGVtYV9uYW1lJ10KK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGIn XSkKK2NsYXNzIFRlc3RGb3JlaWduRGF0YVdyYXBwZXJEZWxldGU6CisgICAgZGVmIHRlc3RfZm9y ZWlnbl9kYXRhX3dyYXBwZXJfZGVsZXRlKHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMp OgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBzZW5kaW5nIGEgSFRUUCByZXF1ZXN0IHRvIGRl bGV0ZSBhIGZvcmVpZ24gZGF0YSB3cmFwcGVyCisgICAgICAgIEl0IHJldHVybnMgMjAwIHN0YXR1 cworICAgICAgICAiIiIKKworICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJE b3duKQorCisgICAgICAgIHNlbGYuc2VydmVyX2luZm9ybWF0aW9uID0gY29udGV4dF9vZl90ZXN0 c1snc2VydmVyX2luZm9ybWF0aW9uJ10KKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29m X3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNb J3NlcnZlciddCisKKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9pbmZvcm1h dGlvblsic2VydmVyX2lkIl0KKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvZm9yZWlnbl9kYXRh X3dyYXBwZXIvb2JqLycKKworICAgICAgICBzY2hlbWFfZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNb J3NlcnZlcl9pbmZvcm1hdGlvbiddCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2Rh dGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfZGF0YVsnZGJfaWQn XQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzY2hlbWFfZGF0YVsiZGJfbmFtZSJdCisgICAgICAg IHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfZGF0YVsnc2NoZW1hX25hbWUnXQogICAgICAgICBz ZWxmLmZkd19uYW1lID0gImZkd197MH0iLmZvcm1hdChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQot ICAgICAgICBzZWxmLmZkd19pZCA9IGZkd191dGlscy5jcmVhdGVfZmR3KHNlbGYuc2VydmVyLCBz ZWxmLmRiX25hbWUsCisgICAgICAgIHNlbGYuZmR3X2lkID0gZmR3X3V0aWxzLmNyZWF0ZV9mZHco c2VydmVyLCBzZWxmLmRiX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5mZHdfbmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAg ICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggZm9yZWlnbiBkYXRhIHdyYXBwZXIgcHJlc2Vu dCB1bmRlciB0ZXN0Ci0gICAgICAgICBkYXRhYmFzZS4iIiIKLSAgICAgICAgZGJfY29uID0gZGF0 YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRi X2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3Rl ZC4iOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBk YXRhYmFzZS4iKQotICAgICAgICBmZHdfcmVzcG9uc2UgPSBmZHdfdXRpbHMudmVyaWZ5X2Zkdyhz ZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmZkd19uYW1lKQotICAgICAgICBpZiBub3QgZmR3X3Jlc3BvbnNl OgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCBGRFcuIikKLSAg ICAgICAgZGVsZXRlX3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKHNlbGYudXJsICsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cih1dGlscy5TRVJW RVJfR1JPVVApICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICcvJyArIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvJyArIHN0cihzZWxmLmZkd19pZCksCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJl Y3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGRlbGV0ZV9yZXNwb25zZS5zdGF0 dXNfY29kZSwgMjAwKQorICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jbGllbnRfY29u bmVjdF9kYXRhYmFzZSgKKyAgICAgICAgICAgIHNlbGYudGVzdGVyLAorICAgICAgICAgICAgdXRp bHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAg ICBzZWxmLmRiX2lkLAorICAgICAgICAgICAgc2VydmVyWyJkYl9wYXNzd29yZCJdKQorCisgICAg ICAgIGRiX2NvblsiaW5mbyJdIHwgc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAgICAgIkRh dGFiYXNlIGNvbm5lY3RlZC4iLAorICAgICAgICAgICAgbXNnPSdDb3VsZCBub3QgY29ubmVjdCB0 byBkYXRhYmFzZS4nKQorCisgICAgICAgIGZkd191dGlscy52ZXJpZnlfZmR3KHNlcnZlciwgc2Vs Zi5kYl9uYW1lLCBzZWxmLmZkd19uYW1lKSB8IFwKKyAgICAgICAgICAgIHNob3VsZC5ub3RfYmUu bm9uZQorCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKHVybCArCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cih1dGlscy5TRVJWRVJfR1JPVVAp ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYu c2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cihzZWxmLmRiX2lkKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICcvJyArIHN0cihzZWxmLmZkd19pZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNf Y29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBj b252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisKKyAgICAgICAganNvbl9yZXNwb25z ZSB8IHNob3VsZC5oYXZlLmtleSgnaW5mbycpID4gc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAg ICAgICAgJ0ZvcmVpZ24gRGF0YSBXcmFwcGVyIGRyb3BwZWQnKQorICAgICAgICBqc29uX3Jlc3Bv bnNlIHwgc2hvdWxkLmhhdmUua2V5KCdlcnJvcm1zZycpID4gc2hvdWxkLmJlLmVtcHR5CisgICAg ICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2RhdGEnKQorICAgICAgICBqc29u X3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdyZXN1bHQnKSA+IHNob3VsZC5iZS5ub25lCisg ICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3N1Y2Nlc3MnKSA+IHNob3Vs ZC5iZS5lcXVhbC50bygxKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJU aGlzIGZ1bmN0aW9uIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2UgYW5kIGRyb3AgYWRkZWQg ZXh0ZW5zaW9uCi0gICAgICAgICBhbmQgZGVwZW5kYW50IG9iamVjdHMuIiIiCi0gICAgICAgIGRh dGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAg ICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2UoCisgICAgICAg ICAgICBzZWxmLnRlc3RlciwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyX2luZm9ybWF0aW9uWydz ZXJ2ZXJfaWQnXSwKKyAgICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRh X3dyYXBwZXJzL3Rlc3RzL3Rlc3RfZmR3X2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvdGVzdHMv dGVzdF9mZHdfZ2V0LnB5CmluZGV4IDgwYThlZDE0Li4wZjNkZTRlMSAxMDA2NDQKLS0tIGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25f ZGF0YV93cmFwcGVycy90ZXN0cy90ZXN0X2Zkd19nZXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVy cy90ZXN0cy90ZXN0X2Zkd19nZXQucHkKQEAgLTExLDUzICsxMSw2MiBAQCBmcm9tIF9fZnV0dXJl X18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QK K2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVy X2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGRh dGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2Vu ZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVn cmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJv bSAuIGltcG9ydCB1dGlscyBhcyBmZHdfdXRpbHMKIAogCi1jbGFzcyBGRFdER2V0VGVzdENhc2Uo QmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgYWRkIGZvcmVpZ24g ZGF0YSB3cmFwcGVycyB1bmRlciB0ZXN0IGRhdGFiYXNlLiAiIiIKLSAgICBza2lwX29uX2RhdGFi YXNlID0gWydncGRiJ10KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVm YXVsdCBVUkwgZm9yIGZvcmVpZ25fZGF0YV93cmFwcGVyIG5vZGUuCi0gICAgICAgICgnQ2hlY2sg RkRXIE5vZGUnLAotICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL2ZvcmVpZ25fZGF0YV93cmFw cGVyL29iai8nKSkKLSAgICBdCi0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgICIiIiBU aGlzIGZ1bmN0aW9uIHdpbGwgY3JlYXRlIGV4dGVuc2lvbiBhbmQgZm9yZWlnbiBkYXRhIHdyYXBw ZXIuIiIiCi0gICAgICAgIHN1cGVyKEZEV0RHZXRUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQotICAg ICAgICBzZWxmLnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCi0g ICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KLSAg ICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAgICAgICAgc2Vs Zi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQot ICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX25hbWUn XQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsnZ3BkYiddKQorY2xhc3MgVGVzdEZvcmVp Z25EYXRhV3JhcHBlckdldDoKKyAgICBkZWYgdGVzdF9mb3JlaWduX2RhdGFfd3JhcHBlcl9nZXQo c2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBX aGVuIHNlbmRpbmcgYSB2YWxpZCBIVFRQIHJlcXVlc3QgdG8gYWRkIGEgZm9yZWlnbiBkYXRhIHdy YXBwZXIKKyAgICAgICAgSXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorCisgICAg ICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJsID0g Jy9icm93c2VyL2ZvcmVpZ25fZGF0YV93cmFwcGVyL29iai8nCisKKyAgICAgICAgc2NoZW1hX2Rh dGEgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQorICAgICAgICBzZWxm LnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2VydmVy X2lkID0gc2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzY2hl bWFfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzY2hlbWFfZGF0YVsiZGJf bmFtZSJdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfZGF0YVsnc2NoZW1hX25h bWUnXQogICAgICAgICBzZWxmLmZkd19uYW1lID0gImZkd197MH0iLmZvcm1hdChzdHIodXVpZC51 dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxmLmZkd19pZCA9IGZkd191dGlscy5jcmVhdGVfZmR3 KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgIHNlbGYuZmR3X2lkID0gZmR3X3V0 aWxzLmNyZWF0ZV9mZHcoc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuZmR3X25hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToK LSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIGZvcmVpZ24gZGF0YSB3cmFwcGVy IHByZXNlbnQgdW5kZXIgdGVzdAotICAgICAgICAgZGF0YWJhc2UuIiIiCi0gICAgICAgIGRiX2Nv biA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBj b25uZWN0ZWQuIjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5l Y3QgdG8gZGF0YWJhc2UuIikKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3Rz Wyd0ZXN0X2NsaWVudCddCisKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY2xpZW50 X2Nvbm5lY3RfZGF0YWJhc2UoCisgICAgICAgICAgICBzZWxmLnRlc3RlciwKKyAgICAgICAgICAg IHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAg ICAgICAgc2VsZi5kYl9pZCwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCdd KQorCisgICAgICAgIGRiX2NvblsiaW5mbyJdIHwgc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAg ICAgICAgIkRhdGFiYXNlIGNvbm5lY3RlZC4iLAorICAgICAgICAgICAgbXNnPSdDb3VsZCBub3Qg Y29ubmVjdCB0byBkYXRhYmFzZS4nKQorCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIu Z2V0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcv JyArIHN0cigKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8n ICsgc3RyKAogICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkKSArICcvJyArCiAgICAgICAg ICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKyBzdHIoc2VsZi5mZHdfaWQpLAogICAgICAgICAg ICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhy ZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2Rl IHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAg ICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhlIEZEVyBhbmQgZGlzY29ubmVjdCB0aGUg dGVzdCBkYXRhYmFzZSAiIiIKICAgICAgICAgZmR3X3V0aWxzLmRlbGV0ZV9mZHcoc2VsZi5zZXJ2 ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5mZHdfbmFtZSkKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMu ZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorCisgICAgICAgIGRhdGFi YXNlX3V0aWxzLmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9p ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvdGVzdHMvdGVzdF9mZHdfcHV0 LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L2ZvcmVpZ25fZGF0YV93cmFwcGVycy90ZXN0cy90ZXN0X2Zkd19wdXQucHkKaW5kZXggY2VjMDI2 NGIuLjBlY2JlYzczIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL3Rlc3RzL3Rlc3RfZmR3 X3B1dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL3Rlc3RzL3Rlc3RfZmR3X3B1dC5weQpAQCAt MTIsNjMgKzEyLDY5IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIGlt cG9ydCBqc29uCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBv cnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRhYmFzZV91dGlscwotZnJv bSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdy ZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rl c3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMg YXMgZmR3X3V0aWxzCiAKIAotY2xhc3MgRkRXRFB1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9y KToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgdXBkYXRlIGZvcmVpZ24gZGF0YSB3cmFwcGVycyB1 bmRlciB0ZXN0IGRhdGFiYXNlLiIiIgotICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQot Ci0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBm b3JlaWduX2RhdGFfd3JhcHBlciBub2RlLgotICAgICAgICAoJ0NoZWNrIEZEVyBOb2RlJywKLSAg ICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci9mb3JlaWduX2RhdGFfd3JhcHBlci9vYmovJykpCi0g ICAgXQotCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3 aWxsIGNyZWF0ZSBleHRlbnNpb24gYW5kIGZvcmVpZ24gZGF0YSB3cmFwcGVyLiIiIgotICAgICAg ICBzdXBlcihGRFdEUHV0VGVzdENhc2UsIHNlbGYpLnNldFVwKCkKLSAgICAgICAgc2VsZi5zY2hl bWFfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQotICAgICAgICBzZWxmLnNl cnZlcl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCi0gICAgICAgIHNlbGYuZGJf aWQgPSBzZWxmLnNjaGVtYV9kYXRhWydkYl9pZCddCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBh cmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2VsZi5z Y2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KK0BweXRlc3QubWFy ay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNzIFRlc3RGb3JlaWduRGF0YVdyYXBwZXJQ dXQ6CisgICAgZGVmIHRlc3RfZm9yZWlnbl9kYXRhX3dyYXBwZXJfcHV0KHNlbGYsIHJlcXVlc3Qs IGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBzZW5kaW5nIGEg SFRUUCByZXF1ZXN0IHRvIHB1dCBhIGZvcmVpZ24gZGF0YSB3cmFwcGVyIHVwZGF0ZQorICAgICAg ICBJdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisKKyAgICAgICAgcmVxdWVzdC5h ZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvZm9y ZWlnbl9kYXRhX3dyYXBwZXIvb2JqLycKKworICAgICAgICBzY2hlbWFfZGF0YSA9IGNvbnRleHRf b2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29u dGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFf ZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9kYXRhWydkYl9p ZCddCisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNjaGVtYV9kYXRhWyJkYl9uYW1lIl0KICAgICAg ICAgc2VsZi5mZHdfbmFtZSA9ICJmZHdfcHV0X3swfSIuZm9ybWF0KHN0cih1dWlkLnV1aWQ0KCkp WzE6OF0pCi0gICAgICAgIHNlbGYuZmR3X2lkID0gZmR3X3V0aWxzLmNyZWF0ZV9mZHcoc2VsZi5z ZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmZkd19uYW1lKQotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAg ICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggZm9yZWlnbiBkYXRhIHdyYXBwZXIgcHJlc2Vu dCB1bmRlcgotICAgICAgICAgICAgdGVzdCBkYXRhYmFzZS4gIiIiCi0gICAgICAgIGRiX2NvbiA9 IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJf aWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25u ZWN0ZWQuIjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3Qg dG8gZGF0YWJhc2UuIikKLSAgICAgICAgZmR3X3Jlc3BvbnNlID0gZmR3X3V0aWxzLnZlcmlmeV9m ZHcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5mZHdfbmFtZSkKLSAgICAgICAgaWYgbm90IGZkd19yZXNw b25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgRkRXLiIp CisgICAgICAgIGZkd19pZCA9IGZkd191dGlscy5jcmVhdGVfZmR3KHNlbGYuc2VydmVyLCBzZWxm LmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZmR3 X25hbWUpCisKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2Ns aWVudCddCisKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Nvbm5lY3Rf ZGF0YWJhc2UoCisgICAgICAgICAgICBzZWxmLnRlc3RlciwKKyAgICAgICAgICAgIHV0aWxzLlNF UlZFUl9HUk9VUCwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgc2Vs Zi5kYl9pZCwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddKQorCisgICAg ICAgIGRiX2NvblsiaW5mbyJdIHwgc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAgICAgIkRh dGFiYXNlIGNvbm5lY3RlZC4iLAorICAgICAgICAgICAgbXNnPSdDb3VsZCBub3QgY29ubmVjdCB0 byBkYXRhYmFzZS4nKQorCisgICAgICAgIGZkd191dGlscy52ZXJpZnlfZmR3KHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUsIHNlbGYuZmR3X25hbWUpIHwgXAorICAgICAgICAgICAgc2hvdWxkLm5v dF9iZS5ub25lCisKICAgICAgICAgZGF0YSA9IHsKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6 ICJUaGlzIGlzIEZEVyB1cGRhdGUgY29tbWVudCIsCi0gICAgICAgICAgICAiaWQiOiBzZWxmLmZk d19pZAorICAgICAgICAgICAgImlkIjogZmR3X2lkCiAgICAgICAgIH0KKwogICAgICAgICBwdXRf cmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1 dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5T RVJWRVJfR1JPVVApICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAn LycgKwotICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsgc3RyKHNlbGYuZmR3X2lk KSwKKyAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArIHN0cihmZHdfaWQpLAogICAg ICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAogICAgICAgICAgICAgZm9sbG93X3JlZGly ZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwdXRfcmVzcG9uc2Uuc3RhdHVz X2NvZGUsIDIwMCkKKworICAgICAgICBwdXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQu YmUuZXF1YWwudG8oMjAwKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJU aGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgRkRXIGFuZCBkaXNjb25uZWN0IHRoZSB0ZXN0IGRhdGFi YXNlICIiIgogICAgICAgICBmZHdfdXRpbHMuZGVsZXRlX2ZkdyhzZWxmLnNlcnZlciwgc2VsZi5k Yl9uYW1lLCBzZWxmLmZkd19uYW1lKQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0 X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNs aWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKAorICAgICAgICAgICAgc2VsZi50ZXN0ZXIsCisgICAg ICAgICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv bGFuZ3VhZ2VzL3Rlc3RzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2xhbmd1YWdlcy90ZXN0cy9fX2luaXRfXy5weQppbmRl eCBiMDU5ZDQxNC4uNTkwMDI2YWQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9sYW5ndWFnZXMvdGVzdHMvX19pbml0X18ucHkK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L2xhbmd1YWdlcy90ZXN0cy9fX2luaXRfXy5weQpAQCAtNiwxMSArNiwzIEBACiAjIFRoaXMgc29m dHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQogIwogIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKLQotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdl bmVyYXRvcgotCi0KLWNsYXNzIExhbmd1YWdlVGVzdEdlbmVyYXRvcihCYXNlVGVzdEdlbmVyYXRv cik6Ci0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgcmV0dXJuIFtdCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv bGFuZ3VhZ2VzL3Rlc3RzL3Rlc3RfbGFuZ3VhZ2VfYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2xhbmd1YWdlcy90ZXN0cy90ZXN0X2xh bmd1YWdlX2FkZC5weQppbmRleCA4ZmQ2Nzc5ZC4uYjIyMTMwZTEgMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9sYW5ndWFnZXMv dGVzdHMvdGVzdF9sYW5ndWFnZV9hZGQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2xhbmd1YWdlcy90ZXN0cy90ZXN0X2xhbmd1YWdl X2FkZC5weQpAQCAtMTIsMjYgKzEyLDM2IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRf ZnVuY3Rpb24KIGltcG9ydCBqc29uCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9t IGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRhYmFz ZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRv cgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25z ZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UKIGZyb20g cmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhv bl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0 aWxzIGFzIGxhbmd1YWdlX3V0aWxzCiAKIAotY2xhc3MgTGFuZ3VhZ2VzQWRkVGVzdENhc2UoQmFz ZVRlc3RHZW5lcmF0b3IpOgotICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQotICAgIHNj ZW5hcmlvcyA9IFsKLSAgICAgICAgKCdMYW5ndWFnZSBhZGQgdGVzdCBjYXNlJywgZGljdCh1cmw9 Jy9icm93c2VyL2xhbmd1YWdlL29iai8nKSkKLSAgICBdCitAcHl0ZXN0Lm1hcmsuc2tpcF9kYXRh YmFzZXMoWydncGRiJ10pCitjbGFzcyBUZXN0TGFuZ3VhZ2VzQWRkOgorICAgIGRlZiB0ZXN0X2xh bmd1YWdlX2FkZChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIi CisgICAgICAgIFdoZW4gdGhlIGxhbmd1YWdlIGFkZCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJh Y2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAg ICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHVybCA9ICcv YnJvd3Nlci9sYW5ndWFnZS9vYmovJwogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBz dXBlcihMYW5ndWFnZXNBZGRUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQotICAgICAgICBzZWxmLnNl cnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV0KLSAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWyJzZXJ2ZXJfaWQiXQorICAgICAgICBzZWxm LnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAg c2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNl bGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQogICAgICAgICBzZWxmLmRiX2lk ID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQotICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxm LnNlcnZlcl9kYXRhWyJkYl9uYW1lIl0KKyAgICAgICAgc2NoZW1hX2RhdGEgPSBjb250ZXh0X29m X3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzY2hl bWFfZGF0YVsiZGJfbmFtZSJdCiAgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5l Y3RfZGF0YWJhc2Uoc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCkBAIC0zOSwxMSArNDksNyBA QCBjbGFzcyBMYW5ndWFnZXNBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAg IGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CiAgICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCiAK LSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGFk ZCBsYW5ndWFnZSB1bmRlciB0ZXN0IGRhdGFiYXNlLiIiIgotCiAgICAgICAgIGRiX3VzZXIgPSBz ZWxmLnNlcnZlclsndXNlcm5hbWUnXQotCiAgICAgICAgIHNlbGYuZGF0YSA9IHsKICAgICAgICAg ICAgICJsYW5hY2wiOiBbXSwKICAgICAgICAgICAgICJsYW5pbmwiOiAiYnRpbnQyc29ydHN1cHBv cnQiLApAQCAtNjUsMTggKzcxLDI1IEBAIGNsYXNzIExhbmd1YWdlc0FkZFRlc3RDYXNlKEJhc2VU ZXN0R2VuZXJhdG9yKToKICAgICAgICAgfQogCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0 ZXIucG9zdCgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkg KyAnLycgKworICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycg KwogICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lk KSArICcvJywKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhzZWxmLmRhdGEpLAogICAgICAg ICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19j b2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNv bnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0X2pzb25fdmFs dWVzX2Zyb21fcmVzcG9uc2UoCisgICAgICAgICAgICBqc29uX3Jlc3BvbnNlLAorICAgICAgICAg ICAgJ2xhbmd1YWdlJywKKyAgICAgICAgICAgICdwZ2FkbWluLm5vZGUubGFuZ3VhZ2UnLAorICAg ICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICAnaWNvbi1sYW5ndWFnZScsCisgICAgICAgICAg ICBzZWxmLmRhdGFbJ25hbWUnXQorICAgICAgICApCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6 Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlIGFkZGVkIGxhbmd1YWdlIGFuZAotICAg ICAgICBkaXNjb25uZWN0IHRoZSB0ZXN0IGRhdGFiYXNlLiIiIgotCiAgICAgICAgIGxhbmd1YWdl X3V0aWxzLmRlbGV0ZV9sYW5ndWFnZSgKICAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRi X25hbWUsIHNlbGYuZGF0YVsnbmFtZSddCiAgICAgICAgICkKLSAgICAgICAgZGF0YWJhc2VfdXRp bHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkK KyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50 ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2xhbmd1YWdlcy90ZXN0cy90ZXN0 X2xhbmd1YWdlX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9sYW5ndWFnZXMvdGVzdHMvdGVzdF9sYW5ndWFnZV9kZWxldGUucHkK aW5kZXggNmFjMjRkNjIuLjU3NTNiZDQyIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvbGFuZ3VhZ2VzL3Rlc3RzL3Rlc3RfbGFu Z3VhZ2VfZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9sYW5ndWFnZXMvdGVzdHMvdGVzdF9sYW5ndWFnZV9kZWxldGUucHkK QEAgLTExLDI0ICsxMSwzNCBAQCBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9u CiAKIGltcG9ydCB1dWlkCiAKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQg XAogICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUg aW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dl bmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0 c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbiwgXAorICAgIGFzc2VydF9q c29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9u b2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91 dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBsYW5ndWFnZV91dGlscwogCiAK LWNsYXNzIExhbmd1YWdlc0RlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICBz Y2VuYXJpb3MgPSBbCi0gICAgICAgICgnTGFuZ3VhZ2UgZGVsZXRlIHRlc3QgY2FzZScsIGRpY3Qo dXJsPScvYnJvd3Nlci9sYW5ndWFnZS9vYmovJykpCi0gICAgXQorY2xhc3MgVGVzdExhbmd1YWdl c0RlbGV0ZToKKyAgICBkZWYgdGVzdF9sYW5ndWFnZV9kZWxldGUoc2VsZiwgcmVxdWVzdCwgY29u dGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBsYW5ndWFnZSBk ZWxldGUgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMg MjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2Vs Zi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvbGFuZ3VhZ2Uvb2JqLycKIAot ICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9u b2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5z ZXJ2ZXJfZGF0YVsic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVu dF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFdCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4 dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRf b2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJf ZGF0YVsnc2VydmVyX2lkJ10KICAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFb J2RiX2lkJ10KLSAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsiZGJfbmFt ZSJdCisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQog ICAgICAgICBzZWxmLmxhbmdfbmFtZSA9ICJsYW5ndWFnZV8lcyIgJSBzdHIodXVpZC51dWlkNCgp KVsxOjhdCiAKICAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFz ZShzZWxmLApAQCAtMzcsMTkgKzQ3LDI0IEBAIGNsYXNzIExhbmd1YWdlc0RlbGV0ZVRlc3RDYXNl KEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmRiX2lkKQogICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0g PT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQorCiAgICAgICAgIHNlbGYubGFuZ3VhZ2Vf aWQgPSBsYW5ndWFnZV91dGlscy5jcmVhdGVfbGFuZ3VhZ2Uoc2VsZi5zZXJ2ZXIsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5k Yl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYubGFuZ19uYW1lKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAg ICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgbGFuZ3VhZ2UgdW5kZXIgdGVzdCBkYXRh YmFzZS4iIiIKLQogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgiezB9ezF9 L3syfS97M30vezR9Ii5mb3JtYXQoCi0gICAgICAgICAgICBzZWxmLnVybCwgdXRpbHMuU0VSVkVS X0dST1VQLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwKKyAgICAgICAgICAgIHVybCwgdXRp bHMuU0VSVkVSX0dST1VQLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwKICAgICAgICAgICAg IHNlbGYubGFuZ3VhZ2VfaWQpLCBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgIHNlbGYu YXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBkZWYgdGVhckRv d24oc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGlzY29ubmVjdCB0aGUgdGVzdCBk YXRhYmFzZS4iIiIKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1 YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19q c29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdp bmZvJykgPiBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAgICAnTGFuZ3VhZ2UgZHJvcHBl ZCcpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2Vycm9ybXNnJykg PiBzaG91bGQuYmUuZW1wdHkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtl eSgnZGF0YScpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3Jlc3Vs dCcpID4gc2hvdWxkLmJlLm5vbmUKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZl LmtleSgnc3VjY2VzcycpID4gc2hvdWxkLmJlLmVxdWFsLnRvKDEpCiAKLSAgICAgICAgZGF0YWJh c2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5k Yl9pZCkKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNs aWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9p ZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9sYW5ndWFnZXMvdGVzdHMvdGVzdF9sYW5ndWFnZV9nZXQucHkgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvbGFuZ3VhZ2VzL3Rl c3RzL3Rlc3RfbGFuZ3VhZ2VfZ2V0LnB5CmluZGV4IDJhYWEyMmY2Li4yNjA2NTA5MiAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L2xhbmd1YWdlcy90ZXN0cy90ZXN0X2xhbmd1YWdlX2dldC5weQorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvbGFuZ3VhZ2VzL3Rlc3RzL3Rl c3RfbGFuZ3VhZ2VfZ2V0LnB5CkBAIC0xMSw0OCArMTEsNjQgQEAgZnJvbSBfX2Z1dHVyZV9fIGlt cG9ydCBwcmludF9mdW5jdGlvbgogCiBpbXBvcnQgdXVpZAogCitmcm9tIGdyYXBwYSBpbXBvcnQg c2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRhYmFzZV91dGlscwotZnJvbSBw Z2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWlu LnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9t IHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pz b24sIFwKKyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSByZWdyZXNz aW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3Rf dXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMg bGFuZ3VhZ2VfdXRpbHMKIAogCi1jbGFzcyBMYW5ndWFnZXNHZXRUZXN0Q2FzZShCYXNlVGVzdEdl bmVyYXRvcik6Ci0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoJ0xhbmd1YWdlIGdldCB0ZXN0 IGNhc2UnLCBkaWN0KHVybD0nL2Jyb3dzZXIvbGFuZ3VhZ2Uvb2JqLycpKQotICAgIF0KK2NsYXNz IFRlc3RMYW5ndWFnZXNBZGQ6CisgICAgZGVmIHRlc3RfbGFuZ3VhZ2VfYWRkKHNlbGYsIHJlcXVl c3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgbGFu Z3VhZ2UgZ2V0IHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1 cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVy KHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2xhbmd1YWdlL29iai8n CiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJl bnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNl bGYuc2VydmVyX2RhdGFbInNlcnZlcl9pZCJdCisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBw YXJlbnRfbm9kZV9kaWN0WydkYXRhYmFzZSddWy0xXQorICAgICAgICBzZWxmLnRlc3RlciA9IGNv bnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250 ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2Vy dmVyX2RhdGFbJ3NlcnZlcl9pZCddCiAgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9k YXRhWydkYl9pZCddCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbImRi X25hbWUiXQorICAgICAgICBzY2hlbWFfZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9p bmZvcm1hdGlvbiddCisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNjaGVtYV9kYXRhWyJkYl9uYW1l Il0KICAgICAgICAgc2VsZi5sYW5nX25hbWUgPSAibGFuZ3VhZ2VfJXMiICUgc3RyKHV1aWQudXVp ZDQoKSlbMTo4XQorCiAgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0 YWJhc2Uoc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKLQogICAgICAgICBpZiBub3Qg ZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgogICAgICAgICAgICAgcmFp c2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQorCiAgICAgICAg IHNlbGYubGFuZ3VhZ2VfaWQgPSBsYW5ndWFnZV91dGlscy5jcmVhdGVfbGFuZ3VhZ2Uoc2VsZi5z ZXJ2ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubGFuZ19uYW1lKQogCi0gICAgZGVmIHJ1blRl c3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBnZXQgdGhlIGxhbmd1YWdl IHVuZGVyIHRlc3QgZGF0YWJhc2UuIiIiCi0KICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5nZXQoInswfXsxfS97Mn0vezN9L3s0fSIuZm9ybWF0KAotICAgICAgICAgICAgc2VsZi51cmws IHV0aWxzLlNFUlZFUl9HUk9VUCwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQsCisgICAgICAg ICAgICB1cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQs CiAgICAgICAgICAgICBzZWxmLmxhbmd1YWdlX2lkKSwgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQot ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogCi0g ICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSBh ZGRlZCBsYW5ndWFnZSBhbmQKLSAgICAgICAgICAgICAgIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0 YWJhc2UuIiIiCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFs LnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNv bihyZXNwb25zZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnb2lk JykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnbmFtZScpID4gXAor ICAgICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKHNlbGYubGFuZ19uYW1lKQorICAgICAgICBq c29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCd0cnVzdGVkJykgPiBzaG91bGQuYmUuZXF1 YWwudHJ1ZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdhY2wnKSA+ IHNob3VsZC5iZS5ub25lCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXko J2Rlc2NyaXB0aW9uJykgPiBzaG91bGQuYmUubm9uZQogCi0gICAgICAgIGxhbmd1YWdlX3V0aWxz LmRlbGV0ZV9sYW5ndWFnZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5sYW5nX25hbWUpCi0gICAgICAgIGRhdGFi YXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYu ZGJfaWQpCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBsYW5ndWFnZV91dGlscy5k ZWxldGVfbGFuZ3VhZ2UoCisgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBz ZWxmLmxhbmdfbmFtZQorICAgICAgICApCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVudF9k aXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9sYW5ndWFnZXMvdGVzdHMvdGVzdF9sYW5ndWFnZV9wdXQucHkgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvbGFuZ3VhZ2VzL3Rlc3RzL3Rl c3RfbGFuZ3VhZ2VfcHV0LnB5CmluZGV4IGJhNGQwZWI5Li42ZjJmYTliZiAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2xhbmd1 YWdlcy90ZXN0cy90ZXN0X2xhbmd1YWdlX3B1dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvbGFuZ3VhZ2VzL3Rlc3RzL3Rlc3RfbGFu Z3VhZ2VfcHV0LnB5CkBAIC0xMiwyNCArMTIsMzUgQEAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBw cmludF9mdW5jdGlvbgogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKK2Zyb20gZ3JhcHBhIGlt cG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCi1m cm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBn YWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IK K2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2Vf dG9fanNvbiwgXAorICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlCiBmcm9tIHJl Z3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25f dGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGls cyBhcyBsYW5ndWFnZV91dGlscwogCiAKLWNsYXNzIExhbmd1YWdlc1B1dFRlc3RDYXNlKEJhc2VU ZXN0R2VuZXJhdG9yKToKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnTGFuZ3VhZ2UgdXBk YXRlIHRlc3QgY2FzZScsIGRpY3QodXJsPScvYnJvd3Nlci9sYW5ndWFnZS9vYmovJykpCi0gICAg XQorY2xhc3MgVGVzdExhbmd1YWdlc1B1dDoKKyAgICBkZWYgdGVzdF9sYW5ndWFnZV9wdXQoc2Vs ZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVu IHRoZSBsYW5ndWFnZSBwdXQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAg IGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVzdC5hZGRm aW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvbGFuZ3Vh Z2Uvb2JqLycKIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0 YSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdCi0gICAgICAgIHNlbGYuc2VydmVy X2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5zZXJ2ZXJf ZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFdCisgICAgICAgIHNlbGYudGVz dGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZl ciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0g c2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KICAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYu c2VydmVyX2RhdGFbJ2RiX2lkJ10KLSAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJf ZGF0YVsiZGJfbmFtZSJdCisgICAgICAgIHNjaGVtYV9kYXRhID0gY29udGV4dF9vZl90ZXN0c1sn c2VydmVyX2luZm9ybWF0aW9uJ10KKyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2NoZW1hX2RhdGFb ImRiX25hbWUiXQogICAgICAgICBzZWxmLmxhbmdfbmFtZSA9ICJsYW5ndWFnZV8lcyIgJSBzdHIo dXVpZC51dWlkNCgpKVsxOjhdCiAgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5l Y3RfZGF0YWJhc2Uoc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCkBAIC0zNywyOCArNDgsMzUgQEAgY2xhc3Mg TGFuZ3VhZ2VzUHV0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCiAgICAgICAgIGlm IG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CiAgICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCisKICAg ICAgICAgc2VsZi5sYW5ndWFnZV9pZCA9IGxhbmd1YWdlX3V0aWxzLmNyZWF0ZV9sYW5ndWFnZShz ZWxmLnNlcnZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5sYW5nX25hbWUpCiAKLSAgICBkZWYg cnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0aGUg bGFuZ3VhZ2UgdW5kZXIgdGVzdCBkYXRhYmFzZS4iIiIKLQogICAgICAgICBkYXRhID0gXAogICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICJpZCI6IHNlbGYubGFuZ3VhZ2VfaWQsCiAgICAg ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgdGVzdCBjb21tZW50LiIKICAgICAg ICAgICAgIH0KICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoInswfXsxfS97Mn0v ezN9L3s0fSIuZm9ybWF0KAotICAgICAgICAgICAgc2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9V UCwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQsCisgICAgICAgICAgICB1cmwsIHV0aWxzLlNF UlZFUl9HUk9VUCwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQsCiAgICAgICAgICAgICBzZWxm Lmxhbmd1YWdlX2lkKSwgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAogICAgICAgICAgICAgZm9sbG93 X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0 dXNfY29kZSwgMjAwKQogCi0gICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJUaGlz IGZ1bmN0aW9uIGRlbGV0ZSBhZGRlZCBsYW5ndWFnZSBhbmQKLSAgICAgICAgZGlzY29ubmVjdCB0 aGUgdGVzdCBkYXRhYmFzZS4iIiIKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91 bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNw b25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9y ZXNwb25zZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAnbGFuZ3Vh Z2UnLAorICAgICAgICAgICAgJ3BnYWRtaW4ubm9kZS5sYW5ndWFnZScsCisgICAgICAgICAgICBG YWxzZSwKKyAgICAgICAgICAgICdpY29uLWxhbmd1YWdlJywKKyAgICAgICAgICAgIHNlbGYubGFu Z19uYW1lCisgICAgICAgICkKIAotICAgICAgICBsYW5ndWFnZV91dGlscy5kZWxldGVfbGFuZ3Vh Z2Uoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYubGFuZ19uYW1lKQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNj b25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgIGRl ZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgbGFuZ3VhZ2VfdXRpbHMuZGVsZXRlX2xhbmd1YWdl KAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5sYW5nX25hbWUK KyAgICAgICAgKQorICAgICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9kYXRh YmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9j b2xsYXRpb25zL3Rlc3RzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY29sbGF0aW9ucy90ZXN0cy9fX2luaXRf Xy5weQppbmRleCBjY2QwODFjNC4uNzYxY2IwMjcgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NvbGxhdGlvbnMv dGVzdHMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY29sbGF0aW9ucy90ZXN0cy9fX2luaXRfXy5weQpA QCAtNyw3ICs3LDcgQEAKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKLWZyb20gcGdhZG1pbi51dGls cy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNl X3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogCiAKIGNsYXNzIENvbGxh dGlvblRlc3RHZW5lcmF0b3IoQmFzZVRlc3RHZW5lcmF0b3IpOgpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY29s bGF0aW9ucy90ZXN0cy90ZXN0X2NvbGxhdGlvbl9hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9jb2xsYXRpb25zL3Rlc3Rz L3Rlc3RfY29sbGF0aW9uX2FkZC5weQppbmRleCAzYzJhOTMxZi4uMGUyYzEwZmUgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2NvbGxhdGlvbnMvdGVzdHMvdGVzdF9jb2xsYXRpb25fYWRkLnB5CisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Nv bGxhdGlvbnMvdGVzdHMvdGVzdF9jb2xsYXRpb25fYWRkLnB5CkBAIC0xMCwyOSArMTAsMzkgQEAK IGltcG9ydCBqc29uCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBp bXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy cy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91 dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAogICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRt aW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRp bHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBh c3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBw YXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0 IHRlc3RfdXRpbHMgYXMgdXRpbHMKIAogCi1jbGFzcyBDb2xsYXRpb25BZGRUZXN0Q2FzZShCYXNl VGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBhZGQgbmV3IGNvbGxhdGlv biB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCi0gICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYidd Ci0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBj b2xsYXRpb24gbm9kZS4KLSAgICAgICAgKCdEZWZhdWx0IE5vZGUgVVJMJywgZGljdCh1cmw9Jy9i cm93c2VyL2NvbGxhdGlvbi9vYmovJykpCi0gICAgXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJh c2VzKFsnZ3BkYiddKQorY2xhc3MgVGVzdENvbGxhdGlvbkFkZDoKKyAgICBkZWYgdGVzdF9jb2xs YXRpb25fYWRkKHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIK KyAgICAgICAgV2hlbiB0aGUgY29sbGF0aW9uIGFkZCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJh Y2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAg ICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHVybCA9ICcv YnJvd3Nlci9jb2xsYXRpb24vb2JqLycKIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAg c3VwZXIoQ29sbGF0aW9uQWRkVGVzdENhc2UsIHNlbGYpLnNldFVwKCkKLSAgICAgICAgc2VsZi5k YXRhYmFzZV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV0KLSAgICAgICAg c2VsZi5kYl9uYW1lID0gc2VsZi5kYXRhYmFzZV9pbmZvWyJkYl9uYW1lIl0KLSAgICAgICAgIyBD aGFuZ2UgdGhlIGRiIG5hbWUsIHNvIHRoYXQgc2NoZW1hIHdpbGwgY3JlYXRlIGluIG5ld2x5IGNy ZWF0ZWQgZGIKKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2Rh dGFiYXNlJ11bLTFdCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVz dF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZl ciddCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lk J10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAg ICAgc2NoZW1hX2RhdGEgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQor ICAgICAgICBzZWxmLmRiX25hbWUgPSBzY2hlbWFfZGF0YVsiZGJfbmFtZSJdCiAgICAgICAgIHNl bGYuc2NoZW1hX25hbWUgPSAic2NoZW1hX2dldF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhd CisKICAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0aW9uKHNlbGYuZGJf bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2VydmVyWyd1c2VybmFtZSddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCkBAIC00MiwxNSArNTIsMTMgQEAg Y2xhc3MgQ29sbGF0aW9uQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICBz ZWxmLnNjaGVtYV9kZXRhaWxzID0gc2NoZW1hX3V0aWxzLmNyZWF0ZV9zY2hlbWEoY29ubmVjdGlv biwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2NoZW1hX25hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAg IiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgY29sbGF0aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAi IiIKLSAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0K LSAgICAgICAgc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIGRi X2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRp bHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLCBkYl9pZCkK LSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAg IHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIGNv bGxhdGlvbi4iKQorICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFi YXNlKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9j b25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCisKICAgICAgICAgc2No ZW1hX2lkID0gc2VsZi5zY2hlbWFfZGV0YWlsc1swXQogICAgICAgICBzY2hlbWFfbmFtZSA9IHNl bGYuc2NoZW1hX2RldGFpbHNbMV0KICAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0 aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLApAQCAtNTksMjAgKzY3LDMwIEBAIGNsYXNz IENvbGxhdGlvbkFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgaWYgbm90 IHNjaGVtYV9yZXNwb25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90 IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgdGhlIGNvbGxhdGlvbi4iKQogCisgICAgICAgIGNvbGxh dGlvbl9uYW1lID0gImNvbGxhdGlvbl9hZGRfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQog ICAgICAgICBkYXRhID0gewogICAgICAgICAgICAgImNvcHlfY29sbGF0aW9uIjogInBnX2NhdGFs b2cuXCJDXCIiLAotICAgICAgICAgICAgIm5hbWUiOiAiY29sbGF0aW9uX2FkZF8lcyIgJSBzdHIo dXVpZC51dWlkNCgpKVsxOjhdLAorICAgICAgICAgICAgIm5hbWUiOiBjb2xsYXRpb25fbmFtZSwK ICAgICAgICAgICAgICJvd25lciI6IHNlbGYuc2VydmVyWyJ1c2VybmFtZSJdLAogICAgICAgICAg ICAgInNjaGVtYSI6IHNjaGVtYV9uYW1lCiAgICAgICAgIH0KLSAgICAgICAgcmVzcG9uc2UgPSBz ZWxmLnRlc3Rlci5wb3N0KHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycg KwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAn LycgKyBzdHIoZGJfaWQpICsgJy8nICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cihzY2hlbWFfaWQpICsgJy8nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQotICAgICAgICBzZWxmLmFzc2VydEVx dWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotICAgICAgICAjIERpc2Nvbm5lY3QgdGhl IGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2Vs Ziwgc2VydmVyX2lkLCBkYl9pZCkKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0 KAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAg ICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArICcv JyArCisgICAgICAgICAgICBzdHIoc2NoZW1hX2lkKSArICcvJywKKyAgICAgICAgICAgIGRhdGE9 anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykK KyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQor ICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNl KQorICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAgICAgICAg IGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAnY29sbGF0aW9uJywKKyAgICAgICAgICAgICdw Z2FkbWluLm5vZGUuY29sbGF0aW9uJywKKyAgICAgICAgICAgIEZhbHNlLAorICAgICAgICAgICAg J2ljb24tY29sbGF0aW9uJywKKyAgICAgICAgICAgIGNvbGxhdGlvbl9uYW1lCisgICAgICAgICkK IAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgcGFzcworICAgICAgICBkYXRhYmFz ZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2 ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9jb2xsYXRpb25zL3Rlc3RzL3Rlc3RfY29sbGF0 aW9uX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2NvbGxhdGlvbnMvdGVzdHMvdGVzdF9jb2xsYXRpb25fZGVsZXRl LnB5CmluZGV4IGFkZDhkNTZhLi40ZWI2MmVlNSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY29sbGF0aW9ucy90 ZXN0cy90ZXN0X2NvbGxhdGlvbl9kZWxldGUucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY29sbGF0aW9ucy90ZXN0cy90 ZXN0X2NvbGxhdGlvbl9kZWxldGUucHkKQEAgLTksMjYgKzksMzYgQEAKIAogaW1wb3J0IHV1aWQK IAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMg aW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwK ICAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNl VGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29u dmVydF9yZXNwb25zZV90b19qc29uCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2Rl X2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGls cyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBjb2xsYXRpb25fdXRpbHMKIAogCi1j bGFzcyBDb2xsYXRpb25EZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIi IFRoaXMgY2xhc3Mgd2lsbCBkZWxldGUgYWRkZWQgY29sbGF0aW9uIHVuZGVyIHNjaGVtYSBub2Rl LiAiIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLSAgICBzY2VuYXJpb3MgPSBb Ci0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGNvbGxhdGlvbiBub2RlLgotICAg ICAgICAoJ0ZldGNoIGNvbGxhdGlvbiBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9jb2xs YXRpb24vb2JqLycpKQotICAgIF0KK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGIn XSkKK2NsYXNzIFRlc3RDb2xsYXRpb25EZWxldGU6CisgICAgZGVmIHRlc3RfY29sbGF0aW9uX2Rl bGV0ZShzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAg ICAgIFdoZW4gdGhlIGNvbGxhdGlvbiBkZWxldGUgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNr ZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAg cmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAnL2Jy b3dzZXIvY29sbGF0aW9uL29iai8nCisKKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVu dF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFdCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4 dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRf b2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJf ZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFb J2RiX2lkJ10KIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc3VwZXIoQ29sbGF0aW9u RGVsZXRlVGVzdENhc2UsIHNlbGYpLnNldFVwKCkKICAgICAgICAgc2VsZi5zY2hlbWFfaW5mbyA9 IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQogICAgICAgICBzZWxmLnNjaGVtYV9uYW1l ID0gc2VsZi5zY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQogICAgICAgICBzZWxmLmRiX25hbWUg PSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCkBAIC0zOCwzMiAr NDgsMzYgQEAgY2xhc3MgQ29sbGF0aW9uRGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3Ip OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbGxfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToK LSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgY29sbGF0aW9uIHVuZGVyIHNj aGVtYSBub2RlLiAiIiIKLSAgICAgICAgc2VydmVyX2lkID0gc2VsZi5zY2hlbWFfaW5mb1sic2Vy dmVyX2lkIl0KLSAgICAgICAgZGJfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWyJkYl9pZCJdCiAgICAg ICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJf R1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2Vy dmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2Ug Y29ubmVjdGVkLiI6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25u ZWN0IHRvIGRhdGFiYXNlLiIpCiAKICAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0 aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFt ZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQorICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCB0aGUgY29sbGF0aW9u LiIpCisKICAgICAgICAgY29sbGF0aW9uX2lkID0gc2VsZi5jb2xsYXRpb25bMF0KICAgICAgICAg c2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgZ2V0X3Jl c3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIo dXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0cigKLSAgICAgICAgICAgICAgICBzZXJ2ZXJf aWQpICsgJy8nICsKLSAgICAgICAgICAgIHN0cihkYl9pZCkgKyAnLycgKyBzdHIoc2NoZW1hX2lk KSArICcvJyArIHN0cihjb2xsYXRpb25faWQpLAorICAgICAgICByZXNwb25zZSA9IHNlbGYudGVz dGVyLmRlbGV0ZSgKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsg Jy8nICsgc3RyKAorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkKSArICcvJyArCisgICAg ICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKyBzdHIoc2NoZW1hX2lkKSArICcvJyArIHN0 cihjb2xsYXRpb25faWQpLAogICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQot ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhnZXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkK LSAgICAgICAgIyBEaXNjb25uZWN0IGRhdGFiYXNlIHRvIGRlbGV0ZSBpdAotICAgICAgICBkYXRh YmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlcnZlcl9pZCwgZGJfaWQpCisK KyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQor ICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNl KQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdpbmZvJykgPiBzaG91 bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAgICAnQ29sbGF0aW9uIGRyb3BwZWQnKQorICAgICAg ICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdlcnJvcm1zZycpID4gc2hvdWxkLmJl LmVtcHR5CisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2RhdGEnKQor ICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdyZXN1bHQnKSA+IHNob3Vs ZC5iZS5ub25lCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3N1Y2Nl c3MnKSA+IHNob3VsZC5iZS5lcXVhbC50bygxKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgot ICAgICAgICBwYXNzCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVudF9kaXNjb25uZWN0X2Rh dGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2NvbGxhdGlvbnMvdGVzdHMvdGVzdF9jb2xsYXRpb25fZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY29sbGF0aW9ucy90 ZXN0cy90ZXN0X2NvbGxhdGlvbl9nZXQucHkKaW5kZXggOWE1ZWIyMDcuLjE3NjcyNjAyIDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9jb2xsYXRpb25zL3Rlc3RzL3Rlc3RfY29sbGF0aW9uX2dldC5weQorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9jb2xsYXRpb25zL3Rlc3RzL3Rlc3RfY29sbGF0aW9uX2dldC5weQpAQCAtOSwyNiArOSwzNiBA QAogCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hv dWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFz ZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwogZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBp bXBvcnQgdXRpbHMgYXMgXAogICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMu cm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNf aGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24KIGZyb20gcmVncmVzc2lvbiBp bXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxz IGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGNvbGxh dGlvbl91dGlscwogCiAKLWNsYXNzIENvbGxhdGlvbkdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJh dG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGZldGNoIG5ldyBjb2xsYXRpb24gdW5kZXIg c2NoZW1hIG5vZGUuICIiIgotICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQotICAgIHNj ZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgY29sbGF0aW9u IG5vZGUuCi0gICAgICAgICgnRmV0Y2ggY29sbGF0aW9uIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9i cm93c2VyL2NvbGxhdGlvbi9vYmovJykpCi0gICAgXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJh c2VzKFsnZ3BkYiddKQorY2xhc3MgVGVzdENvbGxhdGlvbkdldDoKKyAgICBkZWYgdGVzdF9jb2xs YXRpb25fZ2V0KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIK KyAgICAgICAgV2hlbiB0aGUgY29sbGF0aW9uIGdldCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJh Y2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAg ICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHVybCA9ICcv YnJvd3Nlci9jb2xsYXRpb24vb2JqLycKKworICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFy ZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250 ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4 dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZl cl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0 YVsnZGJfaWQnXQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzdXBlcihDb2xsYXRp b25HZXRUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQogICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0g cGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCiAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUg PSBzZWxmLnNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCiAgICAgICAgIHNlbGYuZGJfbmFtZSA9 IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KQEAgLTM4LDMyICs0 OCw0NSBAQCBjbGFzcyBDb2xsYXRpb25HZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29sbF9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAg ICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIGNvbGxhdGlvbiB1bmRlciBzY2hlbWEg bm9kZS4gIiIiCi0gICAgICAgIHNlcnZlcl9pZCA9IHNlbGYuc2NoZW1hX2luZm9bInNlcnZlcl9p ZCJdCi0gICAgICAgIGRiX2lkID0gc2VsZi5zY2hlbWFfaW5mb1siZGJfaWQiXQorICAgICAgICBj b25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oc2VsZi5kYl9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3VzZXJu YW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2VydmVyWydob3N0J10sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsncG9ydCddLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3NzbG1vZGUnXSkK KyAgICAgICAgc2VsZi5zY2hlbWFfZGV0YWlscyA9IHNjaGVtYV91dGlscy5jcmVhdGVfc2NoZW1h KGNvbm5lY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorCiAgICAgICAgIGRiX2NvbiA9IGRhdGFi YXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX2lkKQotICAgICAg ICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAg ICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CiAgICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIp CiAKICAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFz KHNlbGYuc2VydmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90 IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90 IGZpbmQgdGhlIHNjaGVtYS4iKQorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCB0aGUgY29sbGF0aW9uLiIpCisKICAgICAgICAgY29s bGF0aW9uX2lkID0gc2VsZi5jb2xsYXRpb25bMF0KICAgICAgICAgc2NoZW1hX2lkID0gc2VsZi5z Y2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgZ2V0X3Jlc3BvbnNlID0gc2VsZi50ZXN0 ZXIuZ2V0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSAr ICcvJyArIHN0cigKLSAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQpICsgJy8nICsKLSAgICAgICAg ICAgIHN0cihkYl9pZCkgKyAnLycgKyBzdHIoc2NoZW1hX2lkKSArICcvJyArIHN0cihjb2xsYXRp b25faWQpLAorICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKKyAgICAgICAgICAg IHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsgc3RyKAorICAgICAgICAgICAg ICAgIHNlbGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkg KyAnLycgKyBzdHIoc2NoZW1hX2lkKSArICcvJyArIHN0cihjb2xsYXRpb25faWQpLAogICAgICAg ICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs cyhnZXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLSAgICAgICAgIyBEaXNjb25uZWN0IGRh dGFiYXNlIHRvIGRlbGV0ZSBpdAotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2Rh dGFiYXNlKHNlbGYsIHNlcnZlcl9pZCwgZGJfaWQpCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVz X2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0g Y29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNl IHwgc2hvdWxkLmhhdmUua2V5KCdvaWQnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxk LmhhdmUua2V5KCduYW1lJykgPiBcCisgICAgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8oY29s bF9uYW1lKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdkZXNjcmlw dGlvbicpID4gc2hvdWxkLmJlLm5vbmUKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5o YXZlLmtleSgnc2NoZW1hJykgPiBzaG91bGQuYmVcCisgICAgICAgICAgICAuZXF1YWwoc2VsZi5z Y2hlbWFfbmFtZSkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgcGFzcworICAg ICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rl ciwgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9jb2xsYXRpb25zL3Rlc3Rz L3Rlc3RfY29sbGF0aW9uX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NvbGxhdGlvbnMvdGVzdHMvdGVzdF9jb2xsYXRp b25fcHV0LnB5CmluZGV4IDRjN2FlNzc1Li5mOWUwMjFlMiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY29sbGF0 aW9ucy90ZXN0cy90ZXN0X2NvbGxhdGlvbl9wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY29sbGF0aW9ucy90ZXN0 cy90ZXN0X2NvbGxhdGlvbl9wdXQucHkKQEAgLTEwLDUyICsxMCw2MCBAQAogaW1wb3J0IGpzb24K IGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQK KwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5z Y2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9y dCB1dGlscyBhcyBcCiAgICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0 ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxw ZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbiwgXAorICAgIGFzc2VydF9qc29uX3Zh bHVlc19mcm9tX3Jlc3BvbnNlCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2Rp Y3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBh cyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBjb2xsYXRpb25fdXRpbHMKIAogCi1jbGFz cyBDb2xsYXRpb25QdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMg Y2xhc3Mgd2lsbCB1cGRhdGUgYWRkZWQgY29sbGF0aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIK LSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAg ICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGNvbGxhdGlvbiBub2RlLgotICAgICAgICAo J0ZldGNoIGNvbGxhdGlvbiBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9jb2xsYXRpb24v b2JqLycpKQotICAgIF0KK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2Ns YXNzIFRlc3RDb2xsYXRpb25QdXQ6CisgICAgZGVmIHRlc3RfY29sbGF0aW9uX3B1dChzZWxmLCBy ZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhl IGNvbGxhdGlvbiBwdXQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0 IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5h bGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvY29sbGF0aW9u L29iai8nCisKKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2Rh dGFiYXNlJ11bLTFdCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVz dF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZl ciddCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lk J10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAg ICAgc2NoZW1hX2RhdGEgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQor ICAgICAgICBzZWxmLmRiX25hbWUgPSBzY2hlbWFfZGF0YVsiZGJfbmFtZSJdCiAKLSAgICBkZWYg c2V0VXAoc2VsZik6Ci0gICAgICAgIHN1cGVyKENvbGxhdGlvblB1dFRlc3RDYXNlLCBzZWxmKS5z ZXRVcCgpCiAgICAgICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hl bWEiXVstMV0KICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bInNj aGVtYV9uYW1lIl0KLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0 YWJhc2UiXVstMV1bImRiX25hbWUiXQogICAgICAgICBjb2xsX25hbWUgPSAiY29sbGF0aW9uX2dl dF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCiAgICAgICAgIHNlbGYuY29sbGF0aW9uID0g Y29sbGF0aW9uX3V0aWxzLmNyZWF0ZV9jb2xsYXRpb24oc2VsZi5zZXJ2ZXIsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hl bWFfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb2xsX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lKQogCi0gICAgZGVmIHJ1blRlc3Qo c2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIGNvbGxhdGlvbiB1 bmRlciBzY2hlbWEgbm9kZS4gIiIiCi0gICAgICAgIHNlcnZlcl9pZCA9IHNlbGYuc2NoZW1hX2lu Zm9bInNlcnZlcl9pZCJdCi0gICAgICAgIGRiX2lkID0gc2VsZi5zY2hlbWFfaW5mb1siZGJfaWQi XQotICAgICAgICAjIFZlcmlmeSBkYXRhYmFzZQogICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91 dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9pZCkKLSAgICAgICAgaWYg bm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICBp ZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgogICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQotICAg ICAgICAjIFZlcmlmeSBzY2hlbWEKKwogICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFf dXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9u YW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hLiIpCisgICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIHRoZSBjb2xsYXRp b24uIikKKwogICAgICAgICAjIFZlcmlmeSBjb2xsYXRpb24KICAgICAgICAgY29sbF9uYW1lID0g c2VsZi5jb2xsYXRpb25bMV0KICAgICAgICAgY29sbGF0aW9uX3Jlc3BvbnNlID0gY29sbGF0aW9u X3V0aWxzLnZlcmlmeV9jb2xsYXRpb24oc2VsZi5zZXJ2ZXIsCkBAIC03MCwxNiArNzgsMjUgQEAg Y2xhc3MgQ29sbGF0aW9uUHV0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAg ICAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgY29sbGF0aW9uIHVwZGF0ZSBjb21tZW50IiwKICAg ICAgICAgICAgICJpZCI6IGNvbGxhdGlvbl9pZAogICAgICAgICB9Ci0gICAgICAgIHB1dF9yZXNw b25zZSA9IHNlbGYudGVzdGVyLnB1dChzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVAp ICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvJyArIHN0cihzZXJ2 ZXJfaWQpICsgJy8nICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cihkYl9pZCkgKyAnLycgKyBzdHIoc2NoZW1hX2lkKSArCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnLycgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RyKGNvbGxhdGlvbl9pZCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWxzKHB1dF9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotICAgICAgICAjIERpc2Nvbm5l Y3QgZGF0YWJhc2UgdG8gZGVsZXRlIGl0Ci0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5l Y3RfZGF0YWJhc2Uoc2VsZiwgc2VydmVyX2lkLCBkYl9pZCkKKworICAgICAgICByZXNwb25zZSA9 IHNlbGYudGVzdGVyLnB1dCh1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAn LycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkg KyAnLycgKyBzdHIoc2NoZW1hX2lkKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihjb2xsYXRp b25faWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWpzb24uZHVt cHMoZGF0YSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRp cmVjdHM9VHJ1ZSkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1 YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19q c29uKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZSgK KyAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAnY29sbGF0aW9uJywKKyAg ICAgICAgICAgICdwZ2FkbWluLm5vZGUuY29sbGF0aW9uJywKKyAgICAgICAgICAgIEZhbHNlLAor ICAgICAgICAgICAgJ2ljb24tY29sbGF0aW9uJywKKyAgICAgICAgICAgIGNvbGxfbmFtZQorICAg ICAgICApCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgIHBhc3MKKyAgICAgICAg ZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNl bGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZXN0cy9fX2luaXRf Xy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2RvbWFpbnMvdGVzdHMvX19pbml0X18ucHkKaW5kZXggMDk2NTVmMTMuLjU5MDAy NmFkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Rv bWFpbnMvdGVzdHMvX19pbml0X18ucHkKQEAgLTYsMTAgKzYsMyBAQAogIyBUaGlzIHNvZnR3YXJl IGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCi0KLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0 b3IKLQotCi1jbGFzcyBEb21haW5UZXN0R2VuZXJhdG9yKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAg ICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgcmV0dXJuCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21h aW5zL3Rlc3RzL3Rlc3RfZG9tYWluX2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVzdHMvdGVzdF9kb21h aW5fYWRkLnB5CmluZGV4IGZiN2U2NmNiLi5hYTkwNmE2MCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlu cy90ZXN0cy90ZXN0X2RvbWFpbl9hZGQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZXN0cy90ZXN0X2Rv bWFpbl9hZGQucHkKQEAgLTEwLDQ2ICsxMCw1NiBAQAogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlk CiAKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAg dXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAgZGF0YWJhc2Vf dXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IK K2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdl bmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9y ZXNwb25zZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UK IGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9u LnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiAKIAotY2xhc3Mg RG9tYWluQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNz IHdpbGwgYWRkIG5ldyBkb21haW4gdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorY2xhc3MgVGVzdERv bWFpbkFkZDoKKyAgICBkZWYgdGVzdF9kb21haW5fYWRkKHNlbGYsIHJlcXVlc3QsIGNvbnRleHRf b2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgZG9tYWluIGFkZCByZXF1 ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVz CisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3du KQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9kb21haW4vb2JqLycKIAotICAgIHNjZW5hcmlv cyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZG9tYWluIG5vZGUuCi0g ICAgICAgICgnRmV0Y2ggZG9tYWluIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL2RvbWFp bi9vYmovJykpCi0gICAgXQorICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNb J3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydz ZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0 YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydz ZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQn XQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KIAot ICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgcGFzcworICAgICAgICBzZWxmLnNjaGVtYV9p bmZvID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1h X25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2No ZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lkJ10KKworICAgICAgICBkYl9jb24g PSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29u bmVjdGVkLiI6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0 IHRvIGRhdGFiYXNlLiIpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRo aXMgZnVuY3Rpb24gd2lsbCBhZGQgZG9tYWluIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKLSAgICAg ICAgZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0K LSAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAg c2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFi YXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy X2lkLCBzZWxmLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3Rl ZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBk YXRhYmFzZSB0byBhZGQgY29sbGF0aW9uLiIpCi0gICAgICAgIHNjaGVtYV9pZCA9IHNjaGVtYV9p bmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBzY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hl bWFfbmFtZSJdCiAgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlf c2NoZW1hcyhzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2No ZW1hX25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIHRoZSBjb2xs YXRpb24uIikKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhl IHNjaGVtYSB0byBhZGQgdGhlIGRvbWFpbi4iKQogCisgICAgICAgIGRvbWFpbl9uYW1lID0gImRv bWFpbl9hZGRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCiAgICAgICAgIGRhdGEgPSB7 Ci0gICAgICAgICAgICAiYmFzZW5zcCI6IHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgImJhc2Vu c3AiOiBzZWxmLnNjaGVtYV9uYW1lLAogICAgICAgICAgICAgImJhc2V0eXBlIjogImNoYXJhY3Rl ciIsCiAgICAgICAgICAgICAiY29uc3RyYWludHMiOiBbewogICAgICAgICAgICAgICAgICJjb25u YW1lIjogIm51bSIsCkBAIC01OCwyMSArNjgsMzEgQEAgY2xhc3MgRG9tYWluQWRkVGVzdENhc2Uo QmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgImlzX3RsZW5ndGgiOiBUcnVlLAogICAg ICAgICAgICAgIm1heF92YWwiOiAyMTQ3NDgzNjQ3LAogICAgICAgICAgICAgIm1pbl92YWwiOiAx LAotICAgICAgICAgICAgIm5hbWUiOiAiZG9tYWluX2FkZF8lcyIgJSAoc3RyKHV1aWQudXVpZDQo KSlbMTo4XSksCisgICAgICAgICAgICAibmFtZSI6IGRvbWFpbl9uYW1lLAogICAgICAgICAgICAg Im93bmVyIjogc2VsZi5zZXJ2ZXJbInVzZXJuYW1lIl0sCiAgICAgICAgICAgICAic2VjbGFiZWxz IjogW10sCiAgICAgICAgICAgICAidHlwZGVmYXVsdCI6ICIxIiwKICAgICAgICAgICAgICJ0eXBs ZW4iOiAiMTAiCiAgICAgICAgIH0KICAgICAgICAgIyBDYWxsIFBPU1QgQVBJIHRvIGFkZCBkb21h aW4KLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KHNlbGYudXJsICsgc3RyKHV0 aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVy LnBvc3QodXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8nICsgc3RyKHNjaGVtYV9pZCkgKyAnLycs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zY2hl bWFfaWQpICsgJy8nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1q c29uLmR1bXBzKGRhdGEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u dGVudF90eXBlPSdodG1sL2pzb24nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25z ZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hv dWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVz cG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21f cmVzcG9uc2UoCisgICAgICAgICAgICBqc29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgJ2RvbWFp bicsCisgICAgICAgICAgICAncGdhZG1pbi5ub2RlLmRvbWFpbicsCisgICAgICAgICAgICBUcnVl LAorICAgICAgICAgICAgJ2ljb24tZG9tYWluJywKKyAgICAgICAgICAgIGRvbWFpbl9uYW1lCisg ICAgICAgICkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIyBEaXNjb25uZWN0 IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNl KHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGls cy5jbGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3Rlc3RzL3Rlc3RfZG9tYWluX2RlbGV0ZS5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2RvbWFpbnMvdGVzdHMvdGVzdF9kb21haW5fZGVsZXRlLnB5CmluZGV4IDRhNDJkNDgx Li5iM2Y3NTRlMSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZXN0cy90ZXN0X2RvbWFpbl9kZWxl dGUucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZXN0cy90ZXN0X2RvbWFpbl9kZWxldGUucHkKQEAgLTks NjIgKzksNzkgQEAKIAogaW1wb3J0IHV1aWQKIAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAor CiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNj aGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0 IHV0aWxzIGFzIFwKICAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRl IGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9n ZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVz dHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3NlcnRf anNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRf bm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3Rf dXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZG9tYWluX3V0aWxzCiAKIAot Y2xhc3MgRG9tYWluRGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBU aGlzIGNsYXNzIHdpbGwgZGVsZXRlIG5ldyBkb21haW4gdW5kZXIgc2NoZW1hIG5vZGUuICIiIgot ICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZG9t YWluIG5vZGUuCi0gICAgICAgICgnRmV0Y2ggZG9tYWluIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9i cm93c2VyL2RvbWFpbi9kZWxldGUvJykpCi0gICAgXQorY2xhc3MgVGVzdERvbWFpbkRlbGV0ZToK KyAgICBkZWYgdGVzdF9kb21haW5fZGVsZXRlKHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVz dHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgZG9tYWluIGRlbGV0ZSByZXF1ZXN0 IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisg ICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQor CisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9kb21haW4vb2JqLycKKworICAgICAgICBzZWxmLnRl c3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2 ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRh ID0gcGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJf aWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0g c2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNl cnZlcl9kYXRhWydkYl9uYW1lJ10KKworICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50 X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxm LnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2Vs Zi5zY2hlbWFfaW5mb1snc2NoZW1hX2lkJ10KKworICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91 dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisg ICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6Cisg ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNl LiIpCisKKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hl bWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgaWYg bm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQg bm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgdGhlIGRvbWFpbi4iKQogCi0gICAgZGVmIHNldFVw KHNlbGYpOgotICAgICAgICBzZWxmLmRhdGFiYXNlX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJk YXRhYmFzZSJdWy0xXQotICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLmRhdGFiYXNlX2luZm9b ImRiX25hbWUiXQotICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsi c2NoZW1hIl1bLTFdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZv WyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5m b1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2VsZi5kb21haW5fbmFtZSA9ICJkb21haW5fZGVsZXRl XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBkb21haW5fbmFtZSA9ICJk b21haW5fZGVsZXRlXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQogICAgICAgICBzZWxm LmRvbWFpbl9pbmZvID0gZG9tYWluX3V0aWxzLmNyZWF0ZV9kb21haW4oc2VsZi5zZXJ2ZXIsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmRiX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfaWQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRvbWFpbl9uYW1lKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9t YWluX25hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVu Y3Rpb24gd2lsbCBhZGQgZG9tYWluIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKLSAgICAgICAgZGJf aWQgPSBzZWxmLmRhdGFiYXNlX2luZm9bImRiX2lkIl0KLSAgICAgICAgc2VydmVyX2lkID0gc2Vs Zi5kYXRhYmFzZV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91 dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQsIGRiX2lk KQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBnZXQg dGhlIGRvbWFpbi4iKQotICAgICAgICBkYl9uYW1lID0gc2VsZi5kYXRhYmFzZV9pbmZvWyJkYl9u YW1lIl0KLSAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hl bWFzKHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCi0gICAgICAgIGlmIG5vdCBz Y2hlbWFfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBm aW5kIHRoZSBzY2hlbWEgdG8gZ2V0IHRoZSBkb21haW4uIikKICAgICAgICAgZG9tYWluX2lkID0g c2VsZi5kb21haW5faW5mb1swXQotICAgICAgICAjIENhbGwgR0VUIEFQSSB0byB2ZXJpZnkgdGhl IGRvbWFpbgotICAgICAgICBnZXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoCi0gICAg ICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKLSAgICAg ICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsKLSAgICAgICAgICAgIHN0cihkYl9pZCkgKyAn LycgKworICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKKyAgICAgICAgICAg IHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihz ZWxmLnNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8n ICsKICAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKwogICAgICAgICAgICAg c3RyKGRvbWFpbl9pZCksCiAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCi0g ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGdldF9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQot ICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxz LmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VydmVyX2lkLCBkYl9pZCkKKworICAgICAgICBy ZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpz b25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAg IGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2luZm8nKSA+IHNob3VsZC5iZS5lcXVh bC50bygKKyAgICAgICAgICAgICdEb21haW4gZHJvcHBlZCcpCisgICAgICAgIGpzb25fcmVzcG9u c2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2Vycm9ybXNnJykgPiBzaG91bGQuYmUuZW1wdHkKKyAgICAg ICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZGF0YScpCisgICAgICAgIGpzb25f cmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3Jlc3VsdCcpID4gc2hvdWxkLmJlLm5vbmUKKyAg ICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnc3VjY2VzcycpID4gc2hvdWxk LmJlLmVxdWFsLnRvKDEpCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgIHBhc3MK KyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50 ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZXN0 cy90ZXN0X2RvbWFpbl9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3Rlc3RzL3Rlc3RfZG9tYWluX2dldC5w eQppbmRleCA2YjVlZGM4NC4uN2ZjZjRjNjMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVzdHMv dGVzdF9kb21haW5fZ2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVzdHMvdGVzdF9kb21haW5fZ2V0 LnB5CkBAIC05LDYyICs5LDc2IEBACiAKIGltcG9ydCB1dWlkCiAKK2Zyb20gZ3JhcHBhIGltcG9y dCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxz CiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRl c3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5i YXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWlu LnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uCiBmcm9t IHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRo b25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1 dGlscyBhcyBkb21haW5fdXRpbHMKIAogCi1jbGFzcyBEb21haW5HZXRUZXN0Q2FzZShCYXNlVGVz dEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBmZXRjaCBuZXcgY29sbGF0aW9u IHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0 Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGRvbWFpbiBub2RlLgotICAgICAgICAoJ0ZldGNoIGRvbWFp biBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9kb21haW4vb2JqLycpKQotICAgIF0KK2Ns YXNzIFRlc3REb21haW5HZXQ6CisgICAgZGVmIHRlc3RfZG9tYWluX2dldChzZWxmLCByZXF1ZXN0 LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIGRvbWFp biBnZXQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMg MjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2Vs Zi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvZG9tYWluL29iai8nCisKKyAg ICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAg ICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2Vs Zi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFdCisgICAgICAg IHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAg c2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5kYl9u YW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisKKyAgICAgICAgc2VsZi5zY2hlbWFf aW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQorICAgICAgICBzZWxmLnNjaGVt YV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX25hbWUnXQorICAgICAgICBzZWxmLnNj aGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9pZCddCisKKyAgICAgICAgZGJfY29u ID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZl cl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNv bm5lY3RlZC4iOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVj dCB0byBkYXRhYmFzZS4iKQorCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGls cy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUp CisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIHRoZSBkb21haW4uIikKIAot ICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5kYXRhYmFzZV9pbmZvID0gcGFyZW50 X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV0KLSAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5k YXRhYmFzZV9pbmZvWyJkYl9uYW1lIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfaW5mbyA9IHBhcmVu dF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2Vs Zi5zY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNl bGYuc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuZG9tYWluX25hbWUgPSAi ZG9tYWluX2dldF8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgZG9tYWlu X25hbWUgPSAiZG9tYWluX2RlbGV0ZV8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKICAg ICAgICAgc2VsZi5kb21haW5faW5mbyA9IGRvbWFpbl91dGlscy5jcmVhdGVfZG9tYWluKHNlbGYu c2VydmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX2lkLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kb21h aW5fbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRvbWFpbl9uYW1lKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIi IiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIGRvbWFpbiB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCi0g ICAgICAgIGRiX2lkID0gc2VsZi5kYXRhYmFzZV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIHNlcnZl cl9pZCA9IHNlbGYuZGF0YWJhc2VfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgZGJfY29uID0g ZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVy X2lkLCBkYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToK LSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJh c2UgdG8gZ2V0IHRoZSBkb21haW4uIikKLSAgICAgICAgZGJfbmFtZSA9IHNlbGYuZGF0YWJhc2Vf aW5mb1siZGJfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52 ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQotICAgICAg ICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGdldCB0aGUgZG9tYWluLiIpCiAgICAgICAgIGRv bWFpbl9pZCA9IHNlbGYuZG9tYWluX2luZm9bMF0KLSAgICAgICAgIyBDYWxsIEdFVCBBUEkgdG8g dmVyaWZ5IHRoZSBkb21haW4KLSAgICAgICAgZ2V0X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0 KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyAr Ci0gICAgICAgICAgICBzdHIoc2VydmVyX2lkKSArICcvJyArCi0gICAgICAgICAgICBzdHIoZGJf aWQpICsgJy8nICsKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCisgICAgICAg ICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICBz dHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSAr ICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsKICAgICAgICAg ICAgIHN0cihkb21haW5faWQpLAogICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24n KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhnZXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIw MCkKLSAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91 dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlcnZlcl9pZCwgZGJfaWQpCisKKyAgICAg ICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAg ICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAg ICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdvaWQnKQorICAgICAgICBqc29u X3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdkZXNjcmlwdGlvbicpID4gc2hvdWxkLmJlLm5v bmUKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnbmFtZScpID4gc2hv dWxkLmJlXAorICAgICAgICAgICAgLmVxdWFsKGRvbWFpbl9uYW1lKQogCiAgICAgZGVmIHRlYXJE b3duKHNlbGYpOgotICAgICAgICBwYXNzCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVudF9k aXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVzdHMvdGVzdF9kb21haW5fcHV0LnB5IGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlu cy90ZXN0cy90ZXN0X2RvbWFpbl9wdXQucHkKaW5kZXggZmFiYmIyMDYuLjkwZGNjZWE0IDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9kb21haW5zL3Rlc3RzL3Rlc3RfZG9tYWluX3B1dC5weQorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21h aW5zL3Rlc3RzL3Rlc3RfZG9tYWluX3B1dC5weQpAQCAtMTAsNzEgKzEwLDkxIEBACiBpbXBvcnQg anNvbgogaW1wb3J0IHV1aWQKIAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVz dHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFz IFwKICAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBC YXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3Ig aW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVy IGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92YWx1 ZXNfZnJvbV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0 CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMg dXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZG9tYWluX3V0aWxzCiAKIAotY2xhc3MgRG9t YWluUHV0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdp bGwgZmV0Y2ggbmV3IGNvbGxhdGlvbiB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCi0gICAgc2NlbmFy aW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBkb21haW4gbm9kZS4K LSAgICAgICAgKCdGZXRjaCBkb21haW4gTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvZG9t YWluL29iai8nKSkKLSAgICBdCitjbGFzcyBUZXN0RG9tYWluUHV0OgorICAgIGRlZiB0ZXN0X2Rv bWFpbl9wdXQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgor ICAgICAgICBXaGVuIHRoZSBkb21haW4gcHV0IHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2Vu ZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJl cXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6 Ci0gICAgICAgIHNlbGYuZGF0YWJhc2VfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNl Il1bLTFdCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuZGF0YWJhc2VfaW5mb1siZGJfbmFt ZSJdCi0gICAgICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEi XVstMV0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bInNjaGVt YV9uYW1lIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWyJzY2hl bWFfaWQiXQotICAgICAgICBzZWxmLmRvbWFpbl9uYW1lID0gImRvbWFpbl9wdXRfJXMiICUgKHN0 cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYuZG9tYWluX2luZm8gPSBkb21haW5f dXRpbHMuY3JlYXRlX2RvbWFpbihzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25h bWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNjaGVtYV9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuZG9tYWluX25hbWUpCisgICAgICAgIHVybCA9ICcvYnJvd3Nl ci9kb21haW4vb2JqLycKKworICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNb J3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydz ZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0 YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydz ZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQn XQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKwor ICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFd CisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFt ZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lk J10KKworICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNl bGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRp bHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bImlu Zm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRp b24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCiAKLSAgICBkZWYgcnVuVGVzdChz ZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgZG9tYWluIHVuZGVy IHNjaGVtYSBub2RlLiAiIiIKLSAgICAgICAgZGJfaWQgPSBzZWxmLmRhdGFiYXNlX2luZm9bImRi X2lkIl0KLSAgICAgICAgc2VydmVyX2lkID0gc2VsZi5kYXRhYmFzZV9pbmZvWyJzZXJ2ZXJfaWQi XQotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYs IHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZXJ2ZXJfaWQsIGRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydk YXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBnZXQgdGhlIGRvbWFpbi4iKQotICAgICAgICBkYl9u YW1lID0gc2VsZi5kYXRhYmFzZV9pbmZvWyJkYl9uYW1lIl0KICAgICAgICAgc2NoZW1hX3Jlc3Bv bnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6 Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEg dG8gZ2V0IHRoZSBkb21haW4uIikKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQg bm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgdGhlIGRvbWFpbi4iKQorCisgICAgICAgIGRvbWFp bl9uYW1lID0gImRvbWFpbl9kZWxldGVfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisg ICAgICAgIHNlbGYuZG9tYWluX2luZm8gPSBkb21haW5fdXRpbHMuY3JlYXRlX2RvbWFpbihzZWxm LnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9pZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbl9u YW1lKQogICAgICAgICBkb21haW5fcmVzcG9uc2UgPSBkb21haW5fdXRpbHMudmVyaWZ5X2RvbWFp bihzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9pZCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kb21haW5fbmFt ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZG9tYWluX25hbWUpCiAgICAgICAgIGlmIG5vdCBkb21haW5fcmVzcG9uc2U6CiAgICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBkb21haW4gdG8gdXBkYXRlLiIp CisKICAgICAgICAgZG9tYWluX2lkID0gc2VsZi5kb21haW5faW5mb1swXQotICAgICAgICBkYXRh ID0geyJkZXNjcmlwdGlvbiI6ICJUaGlzIGlzIGRvbWFpbiB1cGRhdGUgY29tbWVudCIsCi0gICAg ICAgICAgICAgICAgImlkIjogZG9tYWluX2lkLAotICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ZGF0YSA9IHsKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIGlzIGRvbWFpbiB1cGRh dGUgY29tbWVudCIsCisgICAgICAgICAgICAiaWQiOiBkb21haW5faWQsCisgICAgICAgIH0KICAg ICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoCi0gICAgICAgICAgICBzZWxmLnVybCAr IHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKLSAgICAgICAgICAgIHN0cihzZXJ2ZXJf aWQpICsgJy8nICsKLSAgICAgICAgICAgIHN0cihkYl9pZCkgKyAnLycgKworICAgICAgICAgICAg dXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNl bGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycg KwogICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArCiAgICAgICAgICAgICBz dHIoZG9tYWluX2lkKSwKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAg ICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo cmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLSAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRh YmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNl cnZlcl9pZCwgZGJfaWQpCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJl LmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2Vf dG9fanNvbihyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9u c2UoCisgICAgICAgICAgICBqc29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgJ2RvbWFpbicsCisg ICAgICAgICAgICAncGdhZG1pbi5ub2RlLmRvbWFpbicsCisgICAgICAgICAgICBUcnVlLAorICAg ICAgICAgICAgJ2ljb24tZG9tYWluJywKKyAgICAgICAgICAgIGRvbWFpbl9uYW1lCisgICAgICAg ICkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgcGFzcworICAgICAgICBkYXRh YmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5z ZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZXN0cy9fX2lu aXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3Rlc3RzL19faW5pdF9fLnB5CmluZGV4IDU4YTEx ZDFkLi41OTAwMjZhZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVzdHMvX19pbml0 X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVzdHMvX19pbml0X18ucHkKQEAgLTYsMTEg KzYsMyBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FM IExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLWZyb20gcGdhZG1pbi51dGlscy5yb3V0 ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLQotCi1jbGFzcyBGb3JlaWduVGFibGVHZW5lcmF0 b3JUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToK LSAgICAgICAgcmV0dXJuIFtdCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZXN0cy90 ZXN0X2ZvcmVpZ25fdGFibGVfYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVzdHMvdGVzdF9m b3JlaWduX3RhYmxlX2FkZC5weQppbmRleCA4YTY4MGMyZS4uMDIwMDc5OTkgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2ZvcmVpZ25fdGFibGVzL3Rlc3RzL3Rlc3RfZm9yZWlnbl90YWJsZV9hZGQucHkKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZm9yZWlnbl90YWJsZXMvdGVzdHMvdGVzdF9mb3JlaWduX3RhYmxlX2FkZC5weQpAQCAtMTIs NTkgKzEyLDU5IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIGltcG9y dCBqc29uCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQg c2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMuZm9yZWlnbl9kYXRhX3dyYXBwZXJzLiBcCiAgICAgZm9yZWlnbl9zZXJ2ZXJzLnRlc3Rz IGltcG9ydCB1dGlscyBhcyBmc3J2X3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJf Z3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmZvcmVpZ25fZGF0YV93cmFwcGVycy4gXAogICAgIHRl c3RzIGltcG9ydCB1dGlscyBhcyBmZHdfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZl cl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBk YXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdl bmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9y ZXNwb25zZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UK IGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9u LnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1w b3J0IHV0aWxzIGFzIGZ0X3V0aWxzCiAKIAotY2xhc3MgRm9yZWlnblRhYmxlQWRkVGVzdENhc2Uo QmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIgotICAgIFRoaXMgY2xhc3Mgd2lsbCBhZGQgZm9y ZWlnbiB0YWJsZSB1bmRlciBkYXRhYmFzZSBub2RlLgotICAgICIiIgotICAgIHNraXBfb25fZGF0 YWJhc2UgPSBbJ2dwZGInXQotCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5n IGRlZmF1bHQgVVJMIGZvciBmb3JlaWduIHNlcnZlciBub2RlLgotICAgICAgICAoJ0NoZWNrIGZv cmVpZ24gdGFibGUgTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci9mb3JlaWduX3RhYmxlL29iai8n KSkKLSAgICBdCi0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0 aW9uIHdpbGwgY3JlYXRlIGZvcmVpZ24gZGF0YSB3cmFwcGVyIGFuZAotICAgICAgICBmb3JlaWdu IHNlcnZlci4gIiIiCi0gICAgICAgIHN1cGVyKEZvcmVpZ25UYWJsZUFkZFRlc3RDYXNlLCBzZWxm KS5zZXRVcCgpCi0KLSAgICAgICAgc2VsZi5zY2hlbWFfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3Rb J3NjaGVtYSddWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFb J3NlcnZlcl9pZCddCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydkYl9p ZCddCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1b LTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2Rh dGFbJ3NjaGVtYV9uYW1lJ10KLSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9k YXRhWydzY2hlbWFfaWQnXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsnZ3BkYiddKQor Y2xhc3MgVGVzdEZvcmVpZ25UYWJsZUFkZDoKKyAgICBkZWYgdGVzdF9mb3JlaWduX3RhYmxlX2Fk ZChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAg IFdoZW4gdGhlIGZvcmVpZ24gdGFibGUgYWRkIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2Vu ZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJl cXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9icm93 c2VyL2ZvcmVpZ25fdGFibGUvb2JqLycKKworICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRf b2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29m X3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVf ZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZl cl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0 YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9u YW1lJ10KKworICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnc2No ZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydz Y2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1sn c2NoZW1hX2lkJ10KKwogICAgICAgICBzZWxmLmZkd19uYW1lID0gImZkd18lcyIgJSAoc3RyKHV1 aWQudXVpZDQoKSlbMTo4XSkKICAgICAgICAgc2VsZi5mc3J2X25hbWUgPSAiZnNydl8lcyIgJSAo c3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi5mZHdfaWQgPSBmZHdfdXRpbHMu Y3JlYXRlX2ZkdyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZmR3X25hbWUpCi0gICAgICAgIHNlbGYuZnNy dl9pZCA9IGZzcnZfdXRpbHMuY3JlYXRlX2ZzcnYoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZzcnZf bmFtZSwgc2VsZi5mZHdfbmFtZSkKICAgICAgICAgc2VsZi5mdF9uYW1lID0gImZ0XyVzIiAlIChz dHIodXVpZC51dWlkNCgpKVsxOjhdKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAg ICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgZm9yZWlnbiB0YWJsZSB1bmRlciB0ZXN0IGRhdGFi YXNlLiIiIgotCiAgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJh c2Uoc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1dGlscy5TRVJWRVJfR1JPVVAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKLQogICAgICAgICBpZiBub3QgZGJf Y29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgogICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQogCisgICAgICAgIHNl bGYuZmR3X2lkID0gZmR3X3V0aWxzLmNyZWF0ZV9mZHcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFt ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZkd19u YW1lKQorICAgICAgICBzZWxmLmZzcnZfaWQgPSBmc3J2X3V0aWxzLmNyZWF0ZV9mc3J2KHNlbGYu c2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5mc3J2X25hbWUsIHNlbGYuZmR3X25hbWUpCiAgICAgICAgIGZzcnZf cmVzcG9uc2UgPSBmc3J2X3V0aWxzLnZlcmlmeV9mc3J2KHNlbGYuc2VydmVyLCBzZWxmLmRiX25h bWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZnNydl9uYW1lKQogICAgICAgICBpZiBub3QgZnNydl9yZXNwb25zZToKQEAgLTkyLDE4ICs5Miwy NSBAQCBjbGFzcyBGb3JlaWduVGFibGVBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAg ICAgICAgIH0KIAogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCi0gICAgICAg ICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAg ICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKICAgICAgICAgICAgIHN0 cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKwogICAgICAg ICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJywgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAog ICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQogCi0gICAgICAgIHNlbGYuYXNz ZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIHJlc3BvbnNlLnN0 YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25z ZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0X2pz b25fdmFsdWVzX2Zyb21fcmVzcG9uc2UoCisgICAgICAgICAgICBqc29uX3Jlc3BvbnNlLAorICAg ICAgICAgICAgJ2ZvcmVpZ25fdGFibGUnLAorICAgICAgICAgICAgJ3BnYWRtaW4ubm9kZS5mb3Jl aWduX3RhYmxlJywKKyAgICAgICAgICAgIEZhbHNlLAorICAgICAgICAgICAgJ2ljb24tZm9yZWln bl90YWJsZScsCisgICAgICAgICAgICBzZWxmLmZ0X25hbWUKKyAgICAgICAgKQogCiAgICAgZGVm IHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiBkaXNjb25uZWN0IHRo ZSB0ZXN0IGRhdGFiYXNlIGFuZCBkZWxldGUgdGVzdAotICAgICAgICBmb3JlaWduIHRhYmxlIG9i amVjdC4gIiIiCiAgICAgICAgIGZ0X3V0aWxzLmRlbGV0ZV9mb3JlZ2luX3RhYmxlKHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2NoZW1hX25hbWUsIHNlbGYuZnRfbmFtZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCi0KLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRh YmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2Vf dXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVy X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVzdHMvdGVzdF9mb3Jl aWduX3RhYmxlX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3Rlc3RzL3Rlc3RfZm9yZWln bl90YWJsZV9kZWxldGUucHkKaW5kZXggNDE0Zjg2ZjcuLmQ5MGZiMjIzIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mb3JlaWduX3RhYmxlcy90ZXN0cy90ZXN0X2ZvcmVpZ25fdGFibGVfZGVsZXRlLnB5CisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2ZvcmVpZ25fdGFibGVzL3Rlc3RzL3Rlc3RfZm9yZWlnbl90YWJsZV9kZWxldGUucHkKQEAg LTExLDg1ICsxMSw4OSBAQCBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAK IGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQK KwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5m b3JlaWduX2RhdGFfd3JhcHBlcnMuIFwKICAgICBmb3JlaWduX3NlcnZlcnMudGVzdHMgaW1wb3J0 IHV0aWxzIGFzIGZzcnZfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMu c2VydmVycy5kYXRhYmFzZXMuZm9yZWlnbl9kYXRhX3dyYXBwZXJzLiBcCiAgICAgdGVzdHMgaW1w b3J0IHV0aWxzIGFzIGZkd191dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw cy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGRhdGFiYXNl X3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y Citmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNl X3RvX2pzb24KIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSBy ZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBm cm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZ0X3V0aWxzCiAKIAotY2xhc3MgRm9yZWlnblRhYmxlRGVs ZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIgotICAgIFRoaXMgY2xhc3Mg d2lsbCBkZWxldGUgZm9yZWlnbiB0YWJsZSB1bmRlciBkYXRhYmFzZSBub2RlLgotICAgICIiIgot ICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQotCi0gICAgc2NlbmFyaW9zID0gWwotICAg ICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBmb3JlaWduIHRhYmxlIG5vZGUuCi0gICAg ICAgICgnQ2hlY2sgZm9yZWlnbiB0YWJsZSBOb2RlJywgZGljdCh1cmw9Jy9icm93c2VyL2ZvcmVp Z25fdGFibGUvb2JqLycpKQotICAgIF0KLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAg IiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgZm9yZWlnbiBkYXRhIHdyYXBwZXIsIGZvcmVp Z24gc2VydmVyCi0gICAgICAgIGFuZCBmb3JlaWduIHRhYmxlLiAiIiIKLSAgICAgICAgc3VwZXIo Rm9yZWlnblRhYmxlRGVsZXRlVGVzdENhc2UsIHNlbGYpLnNldFVwKCkKLQotICAgICAgICBzZWxm LnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCi0gICAgICAgIHNl bGYuc2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KLSAgICAgICAgc2Vs Zi5kYl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAgICAgICAgc2VsZi5kYl9uYW1l ID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX25hbWUnXQotICAgICAg ICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9pZCddCitAcHl0ZXN0 Lm1hcmsuc2tpcF9kYXRhYmFzZXMoWydncGRiJ10pCitjbGFzcyBUZXN0Rm9yZWlnblRhYmxlRGVs ZXRlOgorICAgIGRlZiB0ZXN0X2ZvcmVpZ25fdGFibGVfZGVsZXRlKHNlbGYsIHJlcXVlc3QsIGNv bnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgZm9yZWlnbiB0 YWJsZSBkZWxldGUgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJl dHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6 ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvZm9yZWlnbl90YWJs ZS9vYmovJworCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9j bGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcidd CisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRhYmFzZSdd Wy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3NlcnZlcl9p ZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCddCisgICAg ICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorCisgICAgICAg IHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KKyAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9uYW1lJ10KKyAg ICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfaWQnXQorCiAg ICAgICAgIHNlbGYuZmR3X25hbWUgPSAiZmR3XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhd KQogICAgICAgICBzZWxmLmZzcnZfbmFtZSA9ICJmc3J2XyVzIiAlIChzdHIodXVpZC51dWlkNCgp KVsxOjhdKQogICAgICAgICBzZWxmLmZ0X25hbWUgPSAiZnRfJXMiICUgKHN0cih1dWlkLnV1aWQ0 KCkpWzE6OF0pCi0gICAgICAgIHNlbGYuZmR3X2lkID0gZmR3X3V0aWxzLmNyZWF0ZV9mZHcoc2Vs Zi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLmZkd19uYW1lKQotICAgICAgICBzZWxmLmZzcnZfaWQgPSBmc3J2X3V0 aWxzLmNyZWF0ZV9mc3J2KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mc3J2X25hbWUsIHNlbGYuZmR3 X25hbWUpCi0gICAgICAgIHNlbGYuZnRfaWQgPSBmdF91dGlscy5jcmVhdGVfZm9yZWlnbl90YWJs ZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnNydl9uYW1lLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mdF9u YW1lKQotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24g d2lsbCBkZWxldGUgZm9yZWlnbiB0YWJsZSB1bmRlciB0ZXN0IGRhdGFiYXNlLiIiIgogCiAgICAg ICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJf R1JPVVAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zZXJ2ZXJfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kYl9pZCkKLQogICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0g IkRhdGFiYXNlIGNvbm5lY3RlZC4iOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3Vs ZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQogCisgICAgICAgIHNlbGYuZmR3X2lkID0gZmR3 X3V0aWxzLmNyZWF0ZV9mZHcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZkd19uYW1lKQorICAgICAgICBz ZWxmLmZzcnZfaWQgPSBmc3J2X3V0aWxzLmNyZWF0ZV9mc3J2KHNlbGYuc2VydmVyLCBzZWxmLmRi X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5mc3J2X25hbWUsIHNlbGYuZmR3X25hbWUpCiAgICAgICAgIGZzcnZfcmVzcG9uc2UgPSBmc3J2 X3V0aWxzLnZlcmlmeV9mc3J2KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnNydl9uYW1lKQotCiAg ICAgICAgIGlmIG5vdCBmc3J2X3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJDb3VsZCBub3QgZmluZCBGb3JlaWduIFNlcnZlci4iKQogCisgICAgICAgIHNlbGYuZnRfaWQg PSBmdF91dGlscy5jcmVhdGVfZm9yZWlnbl90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuZnNydl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5mdF9uYW1lKQogICAgICAgICBmdF9yZXNwb25zZSA9 IGZ0X3V0aWxzLnZlcmlmeV9mb3JlaWduX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5mc3J2X25hbWUpCiAgICAgICAgIGlmIG5vdCBmdF9yZXNwb25zZToKICAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgRm9yZWlnbiBUYWJsZS4iKQogCi0gICAgICAg IGRlbGV0ZV9yZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKLSAgICAgICAgICAgIHNlbGYu dXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICByZXNwb25zZSA9 IHNlbGYudGVzdGVyLmRlbGV0ZSgKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJf R1JPVVApICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKwog ICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxm LnNjaGVtYV9pZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuZnRfaWQpLAogICAgICAg ICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz KGRlbGV0ZV9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAgICAgICByZXNwb25zZS5zdGF0 dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2Ug PSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGpzb25fcmVzcG9u c2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2luZm8nKSA+IHNob3VsZC5iZS5lcXVhbC50bygKKyAgICAg ICAgICAgICdGb3JlaWduIFRhYmxlIGRyb3BwZWQnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwg c2hvdWxkLmhhdmUua2V5KCdlcnJvcm1zZycpID4gc2hvdWxkLmJlLmVtcHR5CisgICAgICAgIGpz b25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2RhdGEnKQorICAgICAgICBqc29uX3Jlc3Bv bnNlIHwgc2hvdWxkLmhhdmUua2V5KCdyZXN1bHQnKSA+IHNob3VsZC5iZS5ub25lCisgICAgICAg IGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3N1Y2Nlc3MnKSA+IHNob3VsZC5iZS5l cXVhbC50bygxKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBm dW5jdGlvbiBkaXNjb25uZWN0IHRoZSB0ZXN0IGRhdGFiYXNlLiAiIiIKLQotICAgICAgICBkYXRh YmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxm LmRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9kYXRhYmFz ZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3Jl aWduX3RhYmxlcy90ZXN0cy90ZXN0X2ZvcmVpZ25fdGFibGVfZ2V0LnB5IGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90 YWJsZXMvdGVzdHMvdGVzdF9mb3JlaWduX3RhYmxlX2dldC5weQppbmRleCAwYTUwMDczMy4uNGFl NThlYWIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3Rlc3RzL3Rlc3RfZm9yZWlnbl90 YWJsZV9nZXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVzdHMvdGVzdF9mb3JlaWduX3Rh YmxlX2dldC5weQpAQCAtMTEsODQgKzExLDc5IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJp bnRfZnVuY3Rpb24KIAogaW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEg aW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLmZvcmVpZ25fZGF0YV93cmFwcGVycy4gXAogICAgIGZvcmVpZ25fc2VydmVy cy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgZnNydl91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIu c2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5mb3JlaWduX2RhdGFfd3JhcHBlcnMuIFwK ICAgICB0ZXN0cyBpbXBvcnQgdXRpbHMgYXMgZmR3X3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nl ci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRp bHMgYXMgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFz ZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNv bnZlcnRfcmVzcG9uc2VfdG9fanNvbgogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9k ZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRp bHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnRfdXRpbHMKIAogCi1jbGFzcyBG b3JlaWduVGFibGVHZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiCi0gICAg VGhpcyBjbGFzcyB3aWxsIGZldGNoIGZvcmVpZ24gdGFibGUgdW5kZXIgZGF0YWJhc2Ugbm9kZS4K LSAgICAiIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KK0BweXRlc3QubWFyay5z a2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNzIFRlc3RGb3JlaWduVGFibGVHZXQ6CisgICAg ZGVmIHRlc3RfZm9yZWlnbl90YWJsZV9nZXQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0 cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBmb3JlaWduIHRhYmxlIGdldCByZXF1 ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVz CisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3du KQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9mb3JlaWduX3RhYmxlL29iai8nCiAKLSAgICBz Y2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGZvcmVpZ24g c2VydmVyIG5vZGUuCi0gICAgICAgICgnQ2hlY2sgZm9yZWlnbiB0YWJsZSBOb2RlJywgZGljdCh1 cmw9Jy9icm93c2VyL2ZvcmVpZ25fdGFibGUvb2JqLycpKQotICAgIF0KKyAgICAgICAgc2VsZi50 ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlbGYuc2Vy dmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0 YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFdCisgICAgICAgIHNlbGYuc2VydmVy X2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9 IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5z ZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgICIi IiBUaGlzIGZ1bmN0aW9uIHdpbGwgY3JlYXRlIGZvcmVpZ24gZGF0YSB3cmFwcGVyLCBmb3JlaWdu IHNlcnZlcgotICAgICAgICBhbmQgZm9yZWlnbiB0YWJsZS4gIiIiCi0gICAgICAgIHN1cGVyKEZv cmVpZ25UYWJsZUdldFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCisgICAgICAgIHNlbGYuc2NoZW1h X2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KKyAgICAgICAgc2VsZi5zY2hl bWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2VsZi5z Y2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfaWQnXQogCi0gICAgICAgIHNlbGYu c2NoZW1hX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KLSAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydzZXJ2ZXJfaWQnXQotICAgICAgICBzZWxm LmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnZGJfaWQnXQotICAgICAgICBzZWxmLmRiX25hbWUg PSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNl bGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfbmFtZSddCi0gICAgICAg IHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX2lkJ10KICAgICAgICAg c2VsZi5mZHdfbmFtZSA9ICJmZHdfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCiAgICAg ICAgIHNlbGYuZnNydl9uYW1lID0gImZzcnZfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0p CiAgICAgICAgIHNlbGYuZnRfbmFtZSA9ICJmdF8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4 XSkKIAotICAgICAgICBzZWxmLmZkd19pZCA9IGZkd191dGlscy5jcmVhdGVfZmR3KHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5mZHdfbmFtZSkKLSAgICAgICAgc2VsZi5mc3J2X2lkID0gZnNydl91dGlscy5j cmVhdGVfZnNydihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnNydl9uYW1lLCBzZWxmLmZkd19uYW1l KQotICAgICAgICBzZWxmLmZ0X2lkID0gZnRfdXRpbHMuY3JlYXRlX2ZvcmVpZ25fdGFibGUoc2Vs Zi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZzcnZfbmFtZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnRfbmFtZSkK LQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwg ZmV0Y2ggZm9yZWlnbiB0YWJsZSB1bmRlciB0ZXN0IGRhdGFiYXNlLiIiIgotCiAgICAgICAgIGRi X2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5kYl9pZCkKLQogICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFi YXNlIGNvbm5lY3RlZC4iOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg Y29ubmVjdCB0byBkYXRhYmFzZS4iKQogCisgICAgICAgIHNlbGYuZmR3X2lkID0gZmR3X3V0aWxz LmNyZWF0ZV9mZHcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZkd19uYW1lKQorICAgICAgICBzZWxmLmZz cnZfaWQgPSBmc3J2X3V0aWxzLmNyZWF0ZV9mc3J2KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mc3J2 X25hbWUsIHNlbGYuZmR3X25hbWUpCiAgICAgICAgIGZzcnZfcmVzcG9uc2UgPSBmc3J2X3V0aWxz LnZlcmlmeV9mc3J2KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnNydl9uYW1lKQotCiAgICAgICAg IGlmIG5vdCBmc3J2X3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3Vs ZCBub3QgZmluZCBGb3JlaWduIFNlcnZlci4iKQogCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50 ZXN0ZXIuZ2V0KHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAg ICAgICBzZWxmLmZ0X2lkID0gZnRfdXRpbHMuY3JlYXRlX2ZvcmVpZ25fdGFibGUoc2VsZi5zZXJ2 ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZzcnZfbmFtZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnRfbmFtZSkKKworICAg ICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCh1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dS T1VQKSArICcvJyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxm LnNlcnZlcl9pZCkgKyAnLycgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHIoc2VsZi5kYl9pZCkgKyAnLycgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RyKHNlbGYuZnRfaWQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh bHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2Nv ZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29u dmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwg c2hvdWxkLmhhdmUua2V5KCdvaWQnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhh dmUua2V5KCduYW1lJykgPiBzaG91bGQuYmUuZXF1YWwoc2VsZi5mdF9uYW1lKQogCiAgICAgZGVm IHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiBkaXNjb25uZWN0IHRo ZSB0ZXN0IGRhdGFiYXNlIGFuZCBkZWxldGUgdGVzdAotICAgICAgICBmb3JlaWduIHRhYmxlIG9i amVjdC4gIiIiCi0gICAgICAgIGZ0X3V0aWxzLmRlbGV0ZV9mb3JlZ2luX3RhYmxlKHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2NoZW1hX25hbWUsIHNlbGYuZnRfbmFtZQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCi0KLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRh YmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2Vf dXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVy X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVzdHMvdGVzdF9mb3Jl aWduX3RhYmxlX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3Rlc3RzL3Rlc3RfZm9yZWlnbl90 YWJsZV9wdXQucHkKaW5kZXggYWY5YmMwMjIuLjg5ODgxOWQ3IDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3Jl aWduX3RhYmxlcy90ZXN0cy90ZXN0X2ZvcmVpZ25fdGFibGVfcHV0LnB5CisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVp Z25fdGFibGVzL3Rlc3RzL3Rlc3RfZm9yZWlnbl90YWJsZV9wdXQucHkKQEAgLTEyLDcwICsxMiw2 OCBAQCBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiBpbXBvcnQganNvbgog aW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAor CiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmZv cmVpZ25fZGF0YV93cmFwcGVycy4gXAogICAgIGZvcmVpZ25fc2VydmVycy50ZXN0cyBpbXBvcnQg dXRpbHMgYXMgZnNydl91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5z ZXJ2ZXJzLmRhdGFiYXNlcy5mb3JlaWduX2RhdGFfd3JhcHBlcnMuIFwKICAgICB0ZXN0cyBpbXBv cnQgdXRpbHMgYXMgZmR3X3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgZGF0YWJhc2Vf dXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IK K2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2Vf dG9fanNvbiwgXAorICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlCiBmcm9tIHJl Z3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25f dGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGls cyBhcyBmdF91dGlscwogCiAKLWNsYXNzIEZvcmVpZ25UYWJsZVB1dFRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKLSAgICAiIiIKLSAgICBUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggZm9yZWlnbiB0 YWJsZSB1bmRlciBkYXRhYmFzZSBub2RlLgotICAgICIiIgotICAgIHNraXBfb25fZGF0YWJhc2Ug PSBbJ2dwZGInXQotCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1 bHQgVVJMIGZvciBmb3JlaWduIHNlcnZlciBub2RlLgotICAgICAgICAoJ0NoZWNrIGZvcmVpZ24g dGFibGUgTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci9mb3JlaWduX3RhYmxlL29iai8nKSkKLSAg ICBdCi0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdp bGwgY3JlYXRlIGZvcmVpZ24gZGF0YSB3cmFwcGVyLCBmb3JlaWduIHNlcnZlcgotICAgICAgICBh bmQgZm9yZWlnbiB0YWJsZS4gIiIiCi0gICAgICAgIHN1cGVyKEZvcmVpZ25UYWJsZVB1dFRlc3RD YXNlLCBzZWxmKS5zZXRVcCgpCi0KLSAgICAgICAgc2VsZi5zY2hlbWFfZGF0YSA9IHBhcmVudF9u b2RlX2RpY3RbJ3NjaGVtYSddWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2No ZW1hX2RhdGFbJ3NlcnZlcl9pZCddCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNjaGVtYV9k YXRhWydkYl9pZCddCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRh dGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYu c2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KLSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxm LnNjaGVtYV9kYXRhWydzY2hlbWFfaWQnXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsn Z3BkYiddKQorY2xhc3MgVGVzdEZvcmVpZ25UYWJsZVB1dDoKKyAgICBkZWYgdGVzdF9mb3JlaWdu X3RhYmxlX3B1dChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIi CisgICAgICAgIFdoZW4gdGhlIGZvcmVpZ24gdGFibGUgcHV0IHJlcXVlc3QgaXMgc2VuZCB0byB0 aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisg ICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJs ID0gJy9icm93c2VyL2ZvcmVpZ25fdGFibGUvb2JqLycKKworICAgICAgICBzZWxmLnRlc3RlciA9 IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBj b250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFy ZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBz ZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5z ZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9k YXRhWydkYl9uYW1lJ10KKworICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVf ZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVt YV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hl bWFfaW5mb1snc2NoZW1hX2lkJ10KKwogICAgICAgICBzZWxmLmZkd19uYW1lID0gImZkd18lcyIg JSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKICAgICAgICAgc2VsZi5mc3J2X25hbWUgPSAiZnNy dl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKICAgICAgICAgc2VsZi5mdF9uYW1lID0g ImZ0XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQogCi0gICAgICAgIHNlbGYuZmR3X2lk ID0gZmR3X3V0aWxzLmNyZWF0ZV9mZHcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZkd19uYW1lKQotICAg ICAgICBzZWxmLmZzcnZfaWQgPSBmc3J2X3V0aWxzLmNyZWF0ZV9mc3J2KHNlbGYuc2VydmVyLCBz ZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5mc3J2X25hbWUsIHNlbGYuZmR3X25hbWUpCi0gICAgICAgIHNlbGYuZnRfaWQgPSBm dF91dGlscy5jcmVhdGVfZm9yZWlnbl90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z Y2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuZnNydl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5mdF9uYW1lKQotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6 Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgZm9yZWlnbiB0YWJsZSB1bmRl ciB0ZXN0IGRhdGFiYXNlLiIiIgotCiAgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNv bm5lY3RfZGF0YWJhc2Uoc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKLQogICAgICAg ICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgogICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQog CisgICAgICAgIHNlbGYuZmR3X2lkID0gZmR3X3V0aWxzLmNyZWF0ZV9mZHcoc2VsZi5zZXJ2ZXIs IHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLmZkd19uYW1lKQorICAgICAgICBzZWxmLmZzcnZfaWQgPSBmc3J2X3V0aWxzLmNyZWF0 ZV9mc3J2KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mc3J2X25hbWUsIHNlbGYuZmR3X25hbWUpCiAg ICAgICAgIGZzcnZfcmVzcG9uc2UgPSBmc3J2X3V0aWxzLnZlcmlmeV9mc3J2KHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuZnNydl9uYW1lKQotCiAgICAgICAgIGlmIG5vdCBmc3J2X3Jlc3BvbnNlOgog ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCBGb3JlaWduIFNlcnZl ci4iKQogCisgICAgICAgIHNlbGYuZnRfaWQgPSBmdF91dGlscy5jcmVhdGVfZm9yZWlnbl90YWJs ZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnNydl9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mdF9u YW1lKQogICAgICAgICBmdF9yZXNwb25zZSA9IGZ0X3V0aWxzLnZlcmlmeV9mb3JlaWduX3RhYmxl KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mc3J2X25hbWUpCiAgICAgICAgIGlmIG5vdCBm dF9yZXNwb25zZToKQEAgLTg3LDIyICs4NSwyOCBAQCBjbGFzcyBGb3JlaWduVGFibGVQdXRUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAgICAgImlkIjogc2VsZi5mdF9p ZCwKICAgICAgICAgICAgIH0KIAotICAgICAgICBwdXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5w dXQoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8n ICsKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoCisgICAgICAgICAgICB1cmwg KyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5z ZXJ2ZXJfaWQpICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArCiAg ICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsKICAgICAgICAgICAgIHN0cihz ZWxmLmZ0X2lkKSwKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAg ICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhw dXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2Nv ZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29u dmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnRfanNvbl92YWx1 ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAg ICAnZm9yZWlnbl90YWJsZScsCisgICAgICAgICAgICAncGdhZG1pbi5ub2RlLmZvcmVpZ25fdGFi bGUnLAorICAgICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICAnaWNvbi1mb3JlaWduX3RhYmxl JywKKyAgICAgICAgICAgIHNlbGYuZnRfbmFtZQorICAgICAgICApCiAKICAgICBkZWYgdGVhckRv d24oc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIGRpc2Nvbm5lY3QgdGhlIHRlc3Qg ZGF0YWJhc2UgYW5kIGRlbGV0ZSB0ZXN0Ci0gICAgICAgIGZvcmVpZ24gdGFibGUgb2JqZWN0LiAi IiIKICAgICAgICAgZnRfdXRpbHMuZGVsZXRlX2ZvcmVnaW5fdGFibGUoc2VsZi5zZXJ2ZXIsIHNl bGYuZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z Y2hlbWFfbmFtZSwgc2VsZi5mdF9uYW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkKLQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNl bGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5j bGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJf aWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfY29uZmlndXJhdGlvbnMvdGVzdHMvX19pbml0X18ucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdHNfY29uZmlndXJhdGlvbnMvdGVzdHMvX19pbml0X18ucHkKaW5kZXggMzIyMWQ0Mzgu LjU5MDAyNmFkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfY29uZmlndXJhdGlvbnMvdGVzdHMvX19pbml0 X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnRzX2NvbmZpZ3VyYXRpb25zL3Rlc3RzL19faW5pdF9fLnB5CkBAIC02 LDExICs2LDMgQEAKICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdy ZVNRTCBMaWNlbmNlCiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1mcm9tIHBnYWRtaW4udXRpbHMu cm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi0KLQotY2xhc3MgRlRTQ29uZmlndXJhdGlv blRlc3RHZW5lcmF0b3IoQmFzZVRlc3RHZW5lcmF0b3IpOgotCi0gICAgZGVmIHJ1blRlc3Qoc2Vs Zik6Ci0gICAgICAgIHJldHVybiBbXQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2NvbmZpZ3VyYXRpb25z L3Rlc3RzL3Rlc3RfZnRzX2NvbmZpZ3VyYXRpb25fYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2NvbmZpZ3VyYXRp b25zL3Rlc3RzL3Rlc3RfZnRzX2NvbmZpZ3VyYXRpb25fYWRkLnB5CmluZGV4IDlmMjc3NzIxLi42 ZDAxMWVkNyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2NvbmZpZ3VyYXRpb25zL3Rlc3RzL3Rlc3RfZnRz X2NvbmZpZ3VyYXRpb25fYWRkLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19jb25maWd1cmF0aW9ucy90ZXN0cy90 ZXN0X2Z0c19jb25maWd1cmF0aW9uX2FkZC5weQpAQCAtMTIsNiArMTIsOCBAQCBmcm9tIF9fZnV0 dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAor ZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJf Z3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMuIFwKICAgICBmdHNfcGFyc2VyLnRlc3Rz IGltcG9ydCB1dGlscyBhcyBmdHNfcGFyc2VyX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5z ZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKQEAg LTIwLDQxICsyMiw0MyBAQCBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnNjaGVtYXMgXAogICAgIC5mdHNfY29uZmlndXJhdGlvbnMudGVzdHMgaW1w b3J0IHV0aWxzIGFzIGZ0c19jb25maWdfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZl cl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBk YXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdl bmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJh c2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBj b252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9y ZXNwb25zZQogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJl Z3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIAog Ci1jbGFzcyBGVFNDb25maWd1cmFpb25BZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0g ICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBhZGQgbmV3IEZUUyBjb25maWd1cmF0aW9uIHVuZGVyIHRl c3Qgc2NoZW1hLiAiIiIKK2NsYXNzIFRlc3RGVFNDb25maWd1cmFpb25BZGQ6CisgICAgZGVmIHRl c3RfZnRzX2NvbmZpZ3VyYXRpb25fdGFibGVfYWRkKHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2Zf dGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgRlRTIGNvbmZpZ3VyYXRpb24g YWRkIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIw MCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYu dGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2Z0c19jb25maWd1cmF0aW9uL29i ai8nCiAKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwg Zm9yIGZ0c19jb25maWd1cmF0aW9uIG5vZGUuCi0gICAgICAgICgnRmV0Y2ggZnRzX2NvbmZpZ3Vy YXRpb24gTm9kZSBVUkwnLAotICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL2Z0c19jb25maWd1 cmF0aW9uL29iai8nKSkKLSAgICBdCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90 ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVz dHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0 WydkYXRhYmFzZSddWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2Rh dGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydk Yl9pZCddCisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUn XQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxs IGNyZWF0ZSBwYXJzZXIuIiIiCisgICAgICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9k ZV9kaWN0WydzY2hlbWEnXVstMV0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2No ZW1hX2luZm9bJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNj aGVtYV9pbmZvWydzY2hlbWFfaWQnXQogCi0gICAgICAgIHNjaGVtYV9kYXRhID0gcGFyZW50X25v ZGVfZGljdFsnc2NoZW1hJ11bLTFdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFf ZGF0YVsnc2NoZW1hX25hbWUnXQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9kYXRh WydzY2hlbWFfaWQnXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9kYXRhWydzZXJ2 ZXJfaWQnXQotICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAgICAg ICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25h bWUiXQogICAgICAgICBzZWxmLmZ0c19wYXJzZXJfbmFtZSA9ICJmdHNfcGFyc2VyXyVzIiAlIHN0 cih1dWlkLnV1aWQ0KCkpWzE6OF0KICAgICAgICAgc2VsZi5mdHNfcGFyc2VyX2lkID0gZnRzX3Bh cnNlcl91dGlscy5jcmVhdGVfZnRzX3BhcnNlcigKLSAgICAgICAgICAgIHNlbGYuc2VydmVyLCBz ZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYuZnRzX3BhcnNlcl9uYW1lKQotCi0g ICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRk IG5ldyBGVFMgY29uZmlndXJhdGlvbiB1bmRlciB0ZXN0IHNjaGVtYS4gIiIiCisgICAgICAgICAg ICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBzZWxmLmZ0c19w YXJzZXJfbmFtZQorICAgICAgICApCiAKICAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMu Y29ubmVjdF9kYXRhYmFzZShzZWxmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQotCiAgICAg ICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CiAgICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIp CiAKQEAgLTc1LDE5ICs3OSwyNiBAQCBjbGFzcyBGVFNDb25maWd1cmFpb25BZGRUZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICB9CiAKICAgICAgICAgcmVzcG9uc2UgPSBz ZWxmLnRlc3Rlci5wb3N0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVS X0dST1VQKSArICcvJyArCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQ KSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNl bGYuZGJfaWQpICsKICAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycs CiAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBjb250ZW50 X3R5cGU9J2h0bWwvanNvbicpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uu c3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQu YmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25z ZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNw b25zZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAnZnRzX2NvbmZp Z3VyYXRpb24nLAorICAgICAgICAgICAgJ3BnYWRtaW4ubm9kZS5mdHNfY29uZmlndXJhdGlvbics CisgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgICdpY29uLWZ0c19jb25maWd1cmF0aW9u JywKKyAgICAgICAgICAgIHNlbGYuZnRzX2NvbmZfbmFtZQorICAgICAgICApCiAKICAgICBkZWYg dGVhckRvd24oc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlIHRoZSBmdHNf Y29uZmlnIGFuZCBkaXNjb25uZWN0IHRoZSB0ZXN0Ci0gICAgICAgIGRhdGFiYXNlLiIiIgogICAg ICAgICBmdHNfY29uZmlnX3V0aWxzLmRlbGV0ZV9mdHNfY29uZmlndXJhdGlvbnMoc2VsZi5zZXJ2 ZXIsIHNlbGYuZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZ0c19jb25mX25hbWUpCi0gICAgICAgIGRh dGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAg ICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0 ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2NvbmZpZ3VyYXRp b25zL3Rlc3RzL3Rlc3RfZnRzX2NvbmZpZ3VyYXRpb25fZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2NvbmZp Z3VyYXRpb25zL3Rlc3RzL3Rlc3RfZnRzX2NvbmZpZ3VyYXRpb25fZGVsZXRlLnB5CmluZGV4IDBh NWNjMTZiLi4yOGYyYmY0NCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2NvbmZpZ3VyYXRpb25zL3Rlc3Rz L3Rlc3RfZnRzX2NvbmZpZ3VyYXRpb25fZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19jb25maWd1cmF0 aW9ucy90ZXN0cy90ZXN0X2Z0c19jb25maWd1cmF0aW9uX2RlbGV0ZS5weQpAQCAtMTEsNDggKzEx LDQ5IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAogaW1wb3J0IHV1 aWQKIAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5z ZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAg ICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRhYmFz ZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRv cgorZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0 X3Jlc3BvbnNlX3RvX2pzb24KIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGlj dAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFz IHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZ0c19jb25maWd1cmF0aW9uX3V0aWxzCiAK IAotY2xhc3MgRlRTQ29uZkRlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAi IiIgVGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSBhZGRlZCBGVFMgY29uZmlndXJhdGlvbiB1bmRlciBz Y2hlbWEgbm9kZS4gIiIiCitjbGFzcyBUZXN0RlRTQ29uZmlndXJhaW9uRGVsZXRlOgorICAgIGRl ZiB0ZXN0X2Z0c19jb25maWd1cmF0aW9uX3RhYmxlX2RlbGV0ZShzZWxmLCByZXF1ZXN0LCBjb250 ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIEZUUyBjb25maWd1 cmF0aW9uIGRlbGV0ZSByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQg cmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFs aXplcihzZWxmLnRlYXJEb3duKQogCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNo aW5nIGRlZmF1bHQgVVJMIGZvciBmdHNfY29uZmlndXJhdGlvbiBub2RlLgotICAgICAgICAoJ0Zl dGNoIEZUUyBjb25maWd1cmF0aW9uIE5vZGUgVVJMJywKLSAgICAgICAgIGRpY3QodXJsPScvYnJv d3Nlci9mdHNfY29uZmlndXJhdGlvbi9vYmovJykpCi0gICAgXQorICAgICAgICB1cmwgPSAnL2Jy b3dzZXIvZnRzX2NvbmZpZ3VyYXRpb24vb2JqLycKIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAg ICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgRlRTIGNvbmZpZ3VyYXRpb24uIiIi CisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQor ICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAg IHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRhYmFzZSddWy0xXQorICAg ICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAg ICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIHNlbGYu ZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQogCi0gICAgICAgIHNjaGVtYV9k YXRhID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCi0gICAgICAgIHNlbGYuc2NoZW1h X25hbWUgPSBzY2hlbWFfZGF0YVsnc2NoZW1hX25hbWUnXQotICAgICAgICBzZWxmLnNjaGVtYV9p ZCA9IHNjaGVtYV9kYXRhWydzY2hlbWFfaWQnXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNj aGVtYV9kYXRhWydzZXJ2ZXJfaWQnXQotICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2RhdGFb J2RiX2lkJ10KLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJh c2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzZWxmLmZ0c19jb25mX25hbWUgPSAiZnRzX2Nv bmZfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBzZWxmLnNjaGVtYV9pbmZv ID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25h bWUgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1h X2lkID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lkJ10KIAorICAgICAgICBzZWxmLmZ0c19j b25mX25hbWUgPSAiZnRzX2NvbmZfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQogICAgICAg ICBzZWxmLmZ0c19jb25mX2lkID0gZnRzX2NvbmZpZ3VyYXRpb25fdXRpbHMuY3JlYXRlX2Z0c19j b25maWd1cmF0aW9uKAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2Vs Zi5zY2hlbWFfbmFtZSwgc2VsZi5mdHNfY29uZl9uYW1lKQotCi0gICAgZGVmIHJ1blRlc3Qoc2Vs Zik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIG5ldyBGVFMgY29uZmln dXJhdGlvbiB1bmRlciB0ZXN0Ci0gICAgICAgIHNjaGVtYS4gIiIiCisgICAgICAgICAgICBzZWxm LnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBzZWxmLmZ0c19jb25mX25h bWUKKyAgICAgICAgKQogCiAgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3Rf ZGF0YWJhc2Uoc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKLQogICAgICAgICBpZiBu b3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgogICAgICAgICAgICAg cmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQogCkBAIC02 NSwyMSArNjYsMjYgQEAgY2xhc3MgRlRTQ29uZkRlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJh dG9yKToKICAgICAgICAgZnRzX2NvbmZfcmVzcG9uc2UgPSBmdHNfY29uZmlndXJhdGlvbl91dGls cy52ZXJpZnlfZnRzX2NvbmZpZ3VyYXRpb24oCiAgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2Vs Zi5kYl9uYW1lLCBzZWxmLmZ0c19jb25mX25hbWUKICAgICAgICAgKQotCiAgICAgICAgIGlmIG5v dCBmdHNfY29uZl9yZXNwb25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQg bm90IGZpbmQgdGhlIEZUUyBDb25maWd1cmF0aW9uLiIpCiAKLSAgICAgICAgZGVsZXRlX3Jlc3Bv bnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRp bHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIu ZGVsZXRlKAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycg KwogICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCiAgICAgICAgICAgICBz dHIoc2VsZi5kYl9pZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSAr ICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5mdHNfY29uZl9pZCksCiAgICAgICAgICAgICBm b2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGRlbGV0ZV9y ZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogCi0gICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAg ICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2UuIiIiCisg ICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAg ICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkK KyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnaW5mbycpID4gc2hvdWxk LmJlLmVxdWFsLnRvKAorICAgICAgICAgICAgJ0ZUUyBDb25maWd1cmF0aW9uIGRyb3BwZWQnKQor ICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdlcnJvcm1zZycpID4gc2hv dWxkLmJlLmVtcHR5CisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2Rh dGEnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdyZXN1bHQnKSA+ IHNob3VsZC5iZS5ub25lCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXko J3N1Y2Nlc3MnKSA+IHNob3VsZC5iZS5lcXVhbC50bygxKQogCi0gICAgICAgIGRhdGFiYXNlX3V0 aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICBkZWYgdGVh ckRvd24oc2VsZik6CisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVudF9kaXNjb25uZWN0X2Rh dGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z0c19jb25maWd1cmF0aW9ucy90ZXN0cy90ZXN0X2Z0c19jb25maWd1cmF0aW9uX2dldC5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z0c19jb25maWd1cmF0aW9ucy90ZXN0cy90ZXN0X2Z0c19jb25maWd1cmF0aW9uX2dldC5w eQppbmRleCA2ZDk1OWI1Yy4uZDU5OTdjYjQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19jb25maWd1cmF0 aW9ucy90ZXN0cy90ZXN0X2Z0c19jb25maWd1cmF0aW9uX2dldC5weQorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfY29u ZmlndXJhdGlvbnMvdGVzdHMvdGVzdF9mdHNfY29uZmlndXJhdGlvbl9nZXQucHkKQEAgLTExLDUw ICsxMSw1MiBAQCBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGltcG9y dCB1dWlkCiAKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dz ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBc CiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJf Z3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgZGF0 YWJhc2VfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMuc2NoZW1hcyBcCiAgICAgLmZ0c19jb25maWd1cmF0aW9ucy50ZXN0cyBpbXBvcnQg dXRpbHMgYXMgZnRzX2NvbmZpZ191dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0 b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVs cGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92 YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9k aWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMg YXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnRzX2NvbmZpZ3VyYXRpb25fdXRpbHMK IAogCi1jbGFzcyBGVFNDb25mR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIi IiBUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggYWRkZWQgZnRzX2NvbmZpZ3VyYXRpb24gdW5kZXIgc2No ZW1hIG5vZGUuICIiIgorY2xhc3MgVGVzdEZUU0NvbmZpZ3VyYWlvbkdldDoKKyAgICBkZWYgdGVz dF9mdHNfY29uZmlndXJhdGlvbl90YWJsZV9nZXQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90 ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBGVFMgY29uZmlndXJhdGlvbiBn ZXQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAw IHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50 ZWFyRG93bikKIAotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0 IFVSTCBmb3IgZnRzX2NvbmZpZ3VyYXRpb24gbm9kZS4KLSAgICAgICAgKCdGZXRjaCBGVFMgY29u ZmlndXJhdGlvbiBOb2RlIFVSTCcsCi0gICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvZnRzX2Nv bmZpZ3VyYXRpb24vb2JqLycpKQotICAgIF0KKyAgICAgICAgdXJsID0gJy9icm93c2VyL2Z0c19j b25maWd1cmF0aW9uL29iai8nCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgICIiIiBU aGlzIGZ1bmN0aW9uIHdpbGwgY3JlYXRlIEZUUyBjb25maWd1cmF0aW9uLiIiIgorICAgICAgICBz ZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2Vs Zi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZl cl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5z ZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRi X2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBz ZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KIAotICAgICAgICBzY2hlbWFfZGF0YSA9IHBhcmVu dF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2No ZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KLSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFf ZGF0YVsnc2NoZW1hX2lkJ10KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfZGF0YVsn c2VydmVyX2lkJ10KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9kYXRhWydkYl9pZCddCi0g ICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJk Yl9uYW1lIl0KLSAgICAgICAgc2VsZi5mdHNfY29uZl9uYW1lID0gImZ0c19jb25mXyVzIiAlIHN0 cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgc2VsZi5zY2hlbWFfaW5mbyA9IHBhcmVudF9u b2RlX2RpY3RbJ3NjaGVtYSddWy0xXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5z Y2hlbWFfaW5mb1snc2NoZW1hX25hbWUnXQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYu c2NoZW1hX2luZm9bJ3NjaGVtYV9pZCddCiAKKyAgICAgICAgc2VsZi5mdHNfY29uZl9uYW1lID0g ImZ0c19jb25mXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KICAgICAgICAgc2VsZi5mdHNf Y29uZl9pZCA9IGZ0c19jb25maWd1cmF0aW9uX3V0aWxzLmNyZWF0ZV9mdHNfY29uZmlndXJhdGlv bigKLSAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25h bWUsIHNlbGYuZnRzX2NvbmZfbmFtZSkKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAg ICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIG5ldyBGVFMgY29uZmlndXJhdGlvbiB1bmRl ciB0ZXN0IHNjaGVtYS4KLSAgICAgICAgIiIiCisgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2Vs Zi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBzZWxmLmZ0c19jb25mX25hbWUKKyAgICAgICAg KQogCiAgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2Vs ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGls cy5TRVJWRVJfR1JPVVAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKLQogICAgICAgICBpZiBub3QgZGJfY29uWyJp bmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0 aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQogCkBAIC02NCwyMSArNjYsMjMg QEAgY2xhc3MgRlRTQ29uZkdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAg aWYgbm90IHNjaGVtYV9yZXNwb25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291 bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQogCi0gICAgICAgIGdldF9yZXNwb25zZSA9IHNlbGYu dGVzdGVyLmdldCgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9V UCkgKyAnLycgKworICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKKyAgICAgICAg ICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKICAgICAgICAgICAgIHN0 cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsg Jy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKwogICAgICAgICAg ICAgc3RyKHNlbGYuZnRzX2NvbmZfaWQpLAogICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1s L2pzb24nKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGdldF9yZXNwb25zZS5zdGF0dXNf Y29kZSwgMjAwKQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVh bC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pz b24ocmVzcG9uc2UpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ29p ZCcpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ25hbWUnKSA+IFwK KyAgICAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50byhzZWxmLmZ0c19jb25mX25hbWUpCiAKICAg ICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlIHRo ZSBmdHNfY29uZmlnIGFuZCBkaXNjb25uZWN0IHRoZSB0ZXN0Ci0gICAgICAgIGRhdGFiYXNlLiIi IgogICAgICAgICBmdHNfY29uZmlnX3V0aWxzLmRlbGV0ZV9mdHNfY29uZmlndXJhdGlvbnMoc2Vs Zi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZ0c19jb25mX25hbWUpCi0gICAg ICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJf aWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9p ZCkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2Vs Zi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2NvbmZp Z3VyYXRpb25zL3Rlc3RzL3Rlc3RfZnRzX2NvbmZpZ3VyYXRpb25fcHV0LnB5IGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2Nv bmZpZ3VyYXRpb25zL3Rlc3RzL3Rlc3RfZnRzX2NvbmZpZ3VyYXRpb25fcHV0LnB5CmluZGV4IDc2 MDdiMzk1Li5mZWQ3YzlmYiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2NvbmZpZ3VyYXRpb25zL3Rlc3Rz L3Rlc3RfZnRzX2NvbmZpZ3VyYXRpb25fcHV0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19jb25maWd1cmF0aW9u cy90ZXN0cy90ZXN0X2Z0c19jb25maWd1cmF0aW9uX3B1dC5weQpAQCAtMTIsNTAgKzEyLDUyIEBA IGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIGltcG9ydCBqc29uCiBpbXBv cnQgdXVpZAogCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQg XAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVy X2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGRh dGFiYXNlX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu ZGF0YWJhc2VzLnNjaGVtYXMgXAogICAgIC5mdHNfY29uZmlndXJhdGlvbnMudGVzdHMgaW1wb3J0 IHV0aWxzIGFzIGZ0c19jb25maWdfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBv cnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJh dG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hl bHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25f dmFsdWVzX2Zyb21fcmVzcG9uc2UKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVf ZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxz IGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZ0c19jb25maWd1cmF0aW9uX3V0aWxz CiAKIAotY2xhc3MgRlRTQ29uZlB1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAi IiIgVGhpcyBjbGFzcyB3aWxsIHVwZGF0ZSBhZGRlZCBGVFMgY29uZmlndXJhdGlvbiB1bmRlciBz Y2hlbWEgbm9kZS4gIiIiCitjbGFzcyBUZXN0RlRTQ29uZmlndXJhaW9uUHV0OgorICAgIGRlZiB0 ZXN0X2Z0c19jb25maWd1cmF0aW9uX3RhYmxlX3B1dChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29m X3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIEZUUyBjb25maWd1cmF0aW9u IHB1dCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAy MDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxm LnRlYXJEb3duKQogCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1 bHQgVVJMIGZvciBmdHNfY29uZmlndXJhdGlvbiBub2RlLgotICAgICAgICAoJ0ZldGNoIEZUUyBj b25maWd1cmF0aW9uIE5vZGUgVVJMJywKLSAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci9mdHNf Y29uZmlndXJhdGlvbi9vYmovJykpCi0gICAgXQorICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvZnRz X2NvbmZpZ3VyYXRpb24vb2JqLycKIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgIiIi IFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgRlRTIGNvbmZpZ3VyYXRpb24uIiIiCisgICAgICAg IHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBz ZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2Vy dmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRhYmFzZSddWy0xXQorICAgICAgICBzZWxm LnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYu ZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIHNlbGYuZGJfbmFtZSA9 IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQogCi0gICAgICAgIHNjaGVtYV9kYXRhID0gcGFy ZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBz Y2hlbWFfZGF0YVsnc2NoZW1hX25hbWUnXQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVt YV9kYXRhWydzY2hlbWFfaWQnXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9kYXRh WydzZXJ2ZXJfaWQnXQotICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2RhdGFbJ2RiX2lkJ10K LSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1b ImRiX25hbWUiXQotICAgICAgICBzZWxmLmZ0c19jb25mX25hbWUgPSAiZnRzX2NvbmZfJXMiICUg c3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50 X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxm LnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2Vs Zi5zY2hlbWFfaW5mb1snc2NoZW1hX2lkJ10KIAorICAgICAgICBzZWxmLmZ0c19jb25mX25hbWUg PSAiZnRzX2NvbmZfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQogICAgICAgICBzZWxmLmZ0 c19jb25mX2lkID0gZnRzX2NvbmZpZ3VyYXRpb25fdXRpbHMuY3JlYXRlX2Z0c19jb25maWd1cmF0 aW9uKAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFf bmFtZSwgc2VsZi5mdHNfY29uZl9uYW1lKQotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAg ICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIG5ldyBGVFMgY29uZmlndXJhdGlvbiB1 bmRlcgotICAgICAgICB0ZXN0IHNjaGVtYS4gIiIiCisgICAgICAgICAgICBzZWxmLnNlcnZlciwg c2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBzZWxmLmZ0c19jb25mX25hbWUKKyAgICAg ICAgKQogCiAgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uo c2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 dGlscy5TRVJWRVJfR1JPVVAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKLQogICAgICAgICBpZiBub3QgZGJfY29u WyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgogICAgICAgICAgICAgcmFpc2UgRXhj ZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQogCkBAIC02NSwzNCArNjcs MzUgQEAgY2xhc3MgRlRTQ29uZlB1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAg ICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQogCi0gICAgICAgIGZ0c19jb25mX3Jlc3BvbnNl ID0gZnRzX2NvbmZpZ3VyYXRpb25fdXRpbHMudmVyaWZ5X2Z0c19jb25maWd1cmF0aW9uKAotICAg ICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5mdHNfY29uZl9uYW1lCi0g ICAgICAgICkKLQotICAgICAgICBpZiBub3QgZnRzX2NvbmZfcmVzcG9uc2U6Ci0gICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBGVFMgQ29uZmlndXJhdGlvbi4i KQotCiAgICAgICAgIGRhdGEgPSBcCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgImRl c2NyaXB0aW9uIjogIlRoaXMgaXMgRlRTIGNvbmZpZ3VyYXRpb24gdXBkYXRlIGNvbW1lbnQiLAog ICAgICAgICAgICAgICAgICJpZCI6IHNlbGYuZnRzX2NvbmZfaWQKICAgICAgICAgICAgIH0KIAot ICAgICAgICBwdXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoCi0gICAgICAgICAgICBzZWxm LnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgcmVzcG9uc2Ug PSBzZWxmLnRlc3Rlci5wdXQoCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dS T1VQKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKICAg ICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5z Y2hlbWFfaWQpICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLmZ0c19jb25mX2lkKSwKICAg ICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAgIGZvbGxvd19yZWRp cmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1 c19jb2RlLCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUu ZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90 b19qc29uKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25z ZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAnZnRzX2NvbmZpZ3Vy YXRpb24nLAorICAgICAgICAgICAgJ3BnYWRtaW4ubm9kZS5mdHNfY29uZmlndXJhdGlvbicsCisg ICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgICdpY29uLWZ0c19jb25maWd1cmF0aW9uJywK KyAgICAgICAgICAgIHNlbGYuZnRzX2NvbmZfbmFtZQorICAgICAgICApCiAKICAgICBkZWYgdGVh ckRvd24oc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlIHRoZSBmdHNfY29u ZmlnIGFuZCBkaXNjb25uZWN0IHRoZSB0ZXN0Ci0gICAgICAgIGRhdGFiYXNlLiIiIgogICAgICAg ICBmdHNfY29uZmlnX3V0aWxzLmRlbGV0ZV9mdHNfY29uZmlndXJhdGlvbnMoc2VsZi5zZXJ2ZXIs IHNlbGYuZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZ0c19jb25mX25hbWUpCi0gICAgICAgIGRhdGFi YXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAg ICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIs IHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2RpY3Rpb25hcmllcy90 ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9uYXJpZXMvdGVzdHMvX19pbml0X18ucHkK aW5kZXggOGY1YjZmYjIuLjU5MDAyNmFkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFyaWVz L3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9uYXJpZXMvdGVzdHMvX19pbml0 X18ucHkKQEAgLTYsMTEgKzYsMyBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVy IHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLWZyb20gcGdh ZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLQotCi1jbGFzcyBGb3Jl aWduVGFibGVUZXN0R2VuZXJhdG9yKEJhc2VUZXN0R2VuZXJhdG9yKToKLQotICAgIGRlZiBydW5U ZXN0KHNlbGYpOgotICAgICAgICByZXR1cm4gW10KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9u YXJpZXMvdGVzdHMvdGVzdF9mdHNfZGljdGlvbmFyaWVzX2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9u YXJpZXMvdGVzdHMvdGVzdF9mdHNfZGljdGlvbmFyaWVzX2FkZC5weQppbmRleCBjNDE5YTJkYS4u ZjA0ODE5MzQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9uYXJpZXMvdGVzdHMvdGVzdF9mdHNf ZGljdGlvbmFyaWVzX2FkZC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFyaWVzL3Rlc3RzL3Rlc3Rf ZnRzX2RpY3Rpb25hcmllc19hZGQucHkKQEAgLTEyLDQwICsxMiw0NiBAQCBmcm9tIF9fZnV0dXJl X18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAorZnJv bSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBh cyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy cy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRhYmFzZV91dGlscwog ZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hl bWFzIFwKICAgICAuZnRzX2RpY3Rpb25hcmllcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgZnRzX2Rp Y3RfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0 b3IKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVz dEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVy dF9yZXNwb25zZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9u c2UKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNz aW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiAKIAotY2xh c3MgRnRzRGljdGlvbmFyeUFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIg VGhpcyBjbGFzcyB3aWxsIGFkZCBuZXcgRlRTIGRpY3Rpb25hcnkgdW5kZXIgc2NoZW1hIG5vZGUu ICIiIgorY2xhc3MgVGVzdEZUU0RpY3Rpb25hcmllc0FkZDoKKyAgICBkZWYgdGVzdF9mdHNfZGlj dGlvbmFyaWVzX2FkZChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAg IiIiCisgICAgICAgIFdoZW4gdGhlIEZUUyBkaWN0aW9uYXJpZXMgYWRkIHJlcXVlc3QgaXMgc2Vu ZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAg IiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAg ICAgdXJsID0gJy9icm93c2VyL2Z0c19kaWN0aW9uYXJ5L29iai8nCiAKLSAgICBzY2VuYXJpb3Mg PSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIEZUUyBkaWN0aW9uYXJ5IG5v ZGUuCi0gICAgICAgICgnRmV0Y2ggRlRTIGRpY3Rpb25hcnkgTm9kZSBVUkwnLCBkaWN0KAotICAg ICAgICAgICAgdXJsPScvYnJvd3Nlci9mdHNfZGljdGlvbmFyeS9vYmovJykpCi0gICAgXQorICAg ICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAg ICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxm LnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAg c2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBz ZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25h bWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KIAotICAgIGRlZiBydW5UZXN0KHNlbGYp OgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCBuZXcgRlRTIGRpY3Rpb25hcnkg dW5kZXIgdGVzdCBzY2hlbWEuICIiIgotICAgICAgICBzZWxmLnNjaGVtYV9kYXRhID0gcGFyZW50 X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxm LnNjaGVtYV9kYXRhWydzY2hlbWFfbmFtZSddCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2Vs Zi5zY2hlbWFfZGF0YVsnc2NoZW1hX2lkJ10KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxm LnNjaGVtYV9kYXRhWydzZXJ2ZXJfaWQnXQotICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zY2hl bWFfZGF0YVsnZGJfaWQnXQotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0 WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCisgICAgICAgIHNlbGYuc2NoZW1hX2luZm8gPSBw YXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9 IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2VsZi5zY2hlbWFfaWQg PSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfaWQnXQogCiAgICAgICAgIGRiX2NvbiA9IGRhdGFi YXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9p ZCkKLQogICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3Rl ZC4iOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBk YXRhYmFzZS4iKQogCkBAIC01NCw2ICs2MCw3IEBAIGNsYXNzIEZ0c0RpY3Rpb25hcnlBZGRUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qg c2NoZW1hX3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg ZmluZCB0aGUgc2NoZW1hLiIpCisKICAgICAgICAgc2VsZi5mdHNfZGljdF9uYW1lID0gImZ0c19k aWN0XyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KICAgICAgICAgZGF0YSA9IFwKICAgICAg ICAgICAgIHsKQEAgLTcwLDE5ICs3NywyNiBAQCBjbGFzcyBGdHNEaWN0aW9uYXJ5QWRkVGVzdENh c2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgfQogCiAgICAgICAgIHJlc3BvbnNl ID0gc2VsZi50ZXN0ZXIucG9zdCgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNF UlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9H Uk9VUCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0 cihzZWxmLmRiX2lkKSArCiAgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zY2hlbWFfaWQpICsg Jy8nLAogICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAogICAgICAgICAgICAgY29u dGVudF90eXBlPSdodG1sL2pzb24nKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3Bv bnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hv dWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVz cG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21f cmVzcG9uc2UoCisgICAgICAgICAgICBqc29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgJ2Z0c19k aWN0aW9uYXJ5JywKKyAgICAgICAgICAgICdwZ2FkbWluLm5vZGUuZnRzX2RpY3Rpb25hcnknLAor ICAgICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICAnaWNvbi1mdHNfZGljdGlvbmFyeScsCisg ICAgICAgICAgICBzZWxmLmZ0c19kaWN0X25hbWUKKyAgICAgICAgKQogCiAgICAgZGVmIHRlYXJE b3duKHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgZnRzIGRpY3Rp b25hcmllcyBhbmQgZGlzY29ubmVjdCB0aGUgdGVzdAotICAgICAgICBkYXRhYmFzZS4iIiIKICAg ICAgICAgZnRzX2RpY3RfdXRpbHMuZGVsZXRlX2Z0c19kaWN0aW9uYXJpZXMoc2VsZi5zZXJ2ZXIs IHNlbGYuZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5mdHNfZGljdF9uYW1lKQotICAgICAgICBkYXRhYmFzZV91dGls cy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFi YXNlX3V0aWxzLmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNl cnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9uYXJpZXMvdGVzdHMvdGVz dF9mdHNfZGljdGlvbmFyaWVzX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9uYXJpZXMvdGVzdHMv dGVzdF9mdHNfZGljdGlvbmFyaWVzX2RlbGV0ZS5weQppbmRleCA3YzkzYTM3YS4uNzI4ZjcyMjgg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9uYXJpZXMvdGVzdHMvdGVzdF9mdHNfZGljdGlvbmFy aWVzX2RlbGV0ZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFyaWVzL3Rlc3RzL3Rlc3RfZnRzX2Rp Y3Rpb25hcmllc19kZWxldGUucHkKQEAgLTExLDUwICsxMSw0NCBAQCBmcm9tIF9fZnV0dXJlX18g aW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGltcG9ydCB1dWlkCiAKK2Zyb20gZ3JhcHBhIGltcG9y dCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxz CiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRl c3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5i YXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWlu LnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uCiBmcm9t IHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRo b25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1 dGlscyBhcyBmdHNfZGljdF91dGlscwogCiAKLWNsYXNzIEZ0c0RpY3Rpb25hcnlEZWxldGVUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBkZWxldGUg YWRkZWQgRlRTIERpY3Rpb25hcnkgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgotCi0gICAgc2NlbmFy aW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBGVFMgZGljdGlvbmFy eSBub2RlLgotICAgICAgICAoJ0ZldGNoIEZUUyBkaWN0aW9uYXJ5IE5vZGUgVVJMJywgZGljdCgK LSAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnRzX2RpY3Rpb25hcnkvb2JqLycpKQotICAgIF0K K2NsYXNzIFRlc3RGVFNEaWN0aW9uYXJpZXNEZWxldGU6CisgICAgZGVmIHRlc3RfZnRzX2RpY3Rp b25hcmllc19kZWxldGUoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAg ICIiIgorICAgICAgICBXaGVuIHRoZSBGVFMgZGljdGlvbmFyaWVzIGRlbGV0ZSByZXF1ZXN0IGlz IHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAg ICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQogCi0g ICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvZnRzX2RpY3Rpb25h cnkvb2JqLycKIAotICAgICAgICBzZWxmLnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsn c2NoZW1hJ11bLTFdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9kYXRh WydzY2hlbWFfbmFtZSddCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfZGF0 YVsnc2NoZW1hX2lkJ10KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9kYXRh WydzZXJ2ZXJfaWQnXQotICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnZGJf aWQnXQotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJd Wy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNlbGYuZnRzX2RpY3RfbmFtZSA9ICJmdHNfZGljdF8l cyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCi0KLSAgICAgICAgc2VsZi5mdHNfZGljdF9pZCA9 IGZ0c19kaWN0X3V0aWxzLmNyZWF0ZV9mdHNfZGljdGlvbmFyeSgKLSAgICAgICAgICAgIHNlbGYu c2VydmVyLAotICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgc2VsZi5zY2hl bWFfbmFtZSwKLSAgICAgICAgICAgIHNlbGYuZnRzX2RpY3RfbmFtZSkKKyAgICAgICAgc2VsZi50 ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlbGYuc2Vy dmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0 YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFdCisgICAgICAgIHNlbGYuc2VydmVy X2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9 IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5z ZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAg IiIiIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgRlRTIGRpY3Rpb25hcnkgcHJlc2VudCB1bmRl cgotICAgICAgICAgICAgICAgICAgIHRlc3Qgc2NoZW1hLiAiIiIKKyAgICAgICAgc2VsZi5zY2hl bWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQorICAgICAgICBzZWxmLnNj aGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX25hbWUnXQorICAgICAgICBzZWxm LnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9pZCddCiAKICAgICAgICAgZGJf Y29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNl cnZlcl9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLmRiX2lkKQotCiAgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJh c2UgY29ubmVjdGVkLiI6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBj b25uZWN0IHRvIGRhdGFiYXNlLiIpCiAKQEAgLTY0LDYgKzU4LDEzIEBAIGNsYXNzIEZ0c0RpY3Rp b25hcnlEZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgIGlmIG5vdCBz Y2hlbWFfcmVzcG9uc2U6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBm aW5kIHRoZSBzY2hlbWEuIikKIAorICAgICAgICBzZWxmLmZ0c19kaWN0X25hbWUgPSAiZnRzX2Rp Y3RfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBzZWxmLmZ0c19kaWN0X2lk ID0gZnRzX2RpY3RfdXRpbHMuY3JlYXRlX2Z0c19kaWN0aW9uYXJ5KAorICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXIsCisgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICBzZWxmLnNj aGVtYV9uYW1lLAorICAgICAgICAgICAgc2VsZi5mdHNfZGljdF9uYW1lKQorCiAgICAgICAgIGRp Y3RfcmVzcG9uc2UgPSBmdHNfZGljdF91dGlscy52ZXJpZnlfZnRzX2RpY3Qoc2VsZi5zZXJ2ZXIs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZnRzX2RpY3RfbmFtZSkKQEAgLTcxLDE4ICs3MiwyMyBAQCBjbGFz cyBGdHNEaWN0aW9uYXJ5RGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAg ICBpZiBub3QgZGljdF9yZXNwb25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291 bGQgbm90IGZpbmQgdGhlIEZUUyBkaWN0aW9uYXJ5LiIpCiAKLSAgICAgICAgZGVsZXRlX3Jlc3Bv bnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRp bHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIu ZGVsZXRlKAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycg KwogICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCiAgICAgICAgICAgICBz dHIoc2VsZi5kYl9pZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSAr ICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5mdHNfZGljdF9pZCksCiAgICAgICAgICAgICBm b2xsb3dfcmVkaXJlY3RzPVRydWUpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZGVsZXRl X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2Rl IHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZl cnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNo b3VsZC5oYXZlLmtleSgnaW5mbycpID4gc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAgICAg J0ZUUyBEaWN0aW9uYXJ5IGRyb3BwZWQnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxk LmhhdmUua2V5KCdlcnJvcm1zZycpID4gc2hvdWxkLmJlLmVtcHR5CisgICAgICAgIGpzb25fcmVz cG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2RhdGEnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwg c2hvdWxkLmhhdmUua2V5KCdyZXN1bHQnKSA+IHNob3VsZC5iZS5ub25lCisgICAgICAgIGpzb25f cmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3N1Y2Nlc3MnKSA+IHNob3VsZC5iZS5lcXVhbC50 bygxKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9u IGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2UuIiIiCi0KLSAgICAgICAgZGF0YWJhc2VfdXRp bHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICBkYXRh YmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5z ZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFyaWVzL3Rlc3RzL3Rl c3RfZnRzX2RpY3Rpb25hcmllc19nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFyaWVzL3Rlc3RzL3Rl c3RfZnRzX2RpY3Rpb25hcmllc19nZXQucHkKaW5kZXggYjY3MGIwYWUuLmQ4NTc4NWRmIDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFyaWVzL3Rlc3RzL3Rlc3RfZnRzX2RpY3Rpb25hcmllc19n ZXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnRzX2RpY3Rpb25hcmllcy90ZXN0cy90ZXN0X2Z0c19kaWN0aW9uYXJp ZXNfZ2V0LnB5CkBAIC0xMSw0OSArMTEsNDQgQEAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmlu dF9mdW5jdGlvbgogCiBpbXBvcnQgdXVpZAogCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisK IGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2No ZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwogZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQg XAogICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUg aW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dl bmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0 c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbgogZnJvbSByZWdyZXNzaW9u IGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRp bHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnRz X2RpY3RfdXRpbHMKIAogCi1jbGFzcyBGdHNEaWN0aW9uYXJ5R2V0VGVzdENhc2UoQmFzZVRlc3RH ZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggbmV3IEZUUyBkaWN0aW9u YXJ5IHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKLQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAg IyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgRlRTIGRpY3Rpb25hcnkgbm9kZS4KLSAgICAgICAg KCdGZXRjaCBGVFMgZGljdGlvbmFyeSBOb2RlIFVSTCcsIGRpY3QoCi0gICAgICAgICAgICB1cmw9 Jy9icm93c2VyL2Z0c19kaWN0aW9uYXJ5L29iai8nKSkKLSAgICBdCitjbGFzcyBUZXN0RlRTRGlj dGlvbmFyaWVzR2V0OgorICAgIGRlZiB0ZXN0X2Z0c19kaWN0aW9uYXJpZXNfZ2V0KHNlbGYsIHJl cXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUg RlRTIGRpY3Rpb25hcmllcyBnZXQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAg ICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVzdC5h ZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKIAotICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAg ICAgdXJsID0gJy9icm93c2VyL2Z0c19kaWN0aW9uYXJ5L29iai8nCiAKLSAgICAgICAgc2VsZi5z Y2hlbWFfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQotICAgICAgICBzZWxm LnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX25hbWUnXQotICAgICAgICBz ZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9pZCddCi0gICAgICAgIHNl bGYuc2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KLSAgICAgICAgc2Vs Zi5kYl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAgICAgICAgc2VsZi5kYl9uYW1l ID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBz ZWxmLmZ0c19kaWN0X25hbWUgPSAiZnRzX2RpY3RfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4 XQorICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10K KyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAg ICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAg ICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxm LmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KIAotICAgICAgICBzZWxmLmZ0 c19kaWN0X2lkID0gZnRzX2RpY3RfdXRpbHMuY3JlYXRlX2Z0c19kaWN0aW9uYXJ5KAotICAgICAg ICAgICAgc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAg ICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgc2VsZi5mdHNfZGljdF9uYW1lKQorICAg ICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisg ICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSdd CisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lkJ10K IAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxs IGZldGNoIG5ldyBGVFMgZGljdGlvbmFyaWVzIHVuZGVyIHRlc3Qgc2NoZW1hLgotICAgICAgICAi IiIKICAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxm LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxz LlNFUlZFUl9HUk9VUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNlcnZlcl9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQotCiAgICAgICAgIGlmIG5vdCBkYl9jb25bImlu Zm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRp b24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCiAKQEAgLTYzLDIwICs1OCwyOSBA QCBjbGFzcyBGdHNEaWN0aW9uYXJ5R2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAg ICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hLiIpCiAKLSAgICAgICAgcmVzcG9uc2UgPSBzZWxm LnRlc3Rlci5nZXQoc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisg ICAgICAgIHNlbGYuZnRzX2RpY3RfbmFtZSA9ICJmdHNfZGljdF8lcyIgJSBzdHIodXVpZC51dWlk NCgpKVsxOjhdCisgICAgICAgIHNlbGYuZnRzX2RpY3RfaWQgPSBmdHNfZGljdF91dGlscy5jcmVh dGVfZnRzX2RpY3Rpb25hcnkoCisgICAgICAgICAgICBzZWxmLnNlcnZlciwKKyAgICAgICAgICAg IHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAg ICBzZWxmLmZ0c19kaWN0X25hbWUKKyAgICAgICAgKQorCisgICAgICAgIHJlc3BvbnNlID0gc2Vs Zi50ZXN0ZXIuZ2V0KHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyAr CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcv JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9p ZCkgKyAnLycgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi5m dHNfZGljdF9pZCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRf dHlwZT0naHRtbC9qc29uJykKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5z dGF0dXNfY29kZSwgMjAwKQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5i ZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNl X3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5r ZXkoJ25hbWUnKSA+IFwKKyAgICAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50byhzZWxmLmZ0c19k aWN0X25hbWUpCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVu Y3Rpb24gZGVsZXRlIHRoZSBmdHMgZGljdGlvbmFyaWVzIGFuZCBkaXNjb25uZWN0IHRoZSB0ZXN0 Ci0gICAgICAgIGRhdGFiYXNlLiIiIgogICAgICAgICBmdHNfZGljdF91dGlscy5kZWxldGVfZnRz X2RpY3Rpb25hcmllcyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZ0c19kaWN0X25h bWUpCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2Vs Zi5zZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0 YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnRzX2RpY3Rpb25hcmllcy90ZXN0cy90ZXN0X2Z0c19kaWN0aW9uYXJpZXNfcHV0LnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnRzX2RpY3Rpb25hcmllcy90ZXN0cy90ZXN0X2Z0c19kaWN0aW9uYXJpZXNfcHV0LnB5CmluZGV4 IDc5MzlhZjQ5Li5iMjQ0OWNmZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2RpY3Rpb25hcmllcy90ZXN0 cy90ZXN0X2Z0c19kaWN0aW9uYXJpZXNfcHV0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9uYXJpZXMv dGVzdHMvdGVzdF9mdHNfZGljdGlvbmFyaWVzX3B1dC5weQpAQCAtMTIsNTAgKzEyLDQ1IEBAIGZy b20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIGltcG9ydCBqc29uCiBpbXBvcnQg dXVpZAogCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAog ICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGRhdGFi YXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJh dG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRl c3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZl cnRfcmVzcG9uc2VfdG9fanNvbiwgXAorICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3Bv bnNlCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVz c2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAu IGltcG9ydCB1dGlscyBhcyBmdHNfZGljdF91dGlscwogCiAKLWNsYXNzIEZ0c0RpY3Rpb25hcnlQ dXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCB1 cGRhdGUgYWRkZWQgRlRTIGRpY3Rpb25hcnkgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgotCi0gICAg c2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBGVFMgZGlj dGlvbmFyeSBub2RlLgotICAgICAgICAoJ0ZldGNoIEZUUyBkaWN0aW9uYXJ5IE5vZGUgVVJMJywg ZGljdCgKLSAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnRzX2RpY3Rpb25hcnkvb2JqLycpKQot ICAgIF0KK2NsYXNzIFRlc3RGVFNEaWN0aW9uYXJpZXNQdXQ6CisgICAgZGVmIHRlc3RfZnRzX2Rp Y3Rpb25hcmllc19wdXQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAg ICIiIgorICAgICAgICBXaGVuIHRoZSBGVFMgZGljdGlvbmFyaWVzIHB1dCByZXF1ZXN0IGlzIHNl bmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAg ICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQogCi0gICAg ZGVmIHNldFVwKHNlbGYpOgotCi0gICAgICAgIHNlbGYuc2NoZW1hX2RhdGEgPSBwYXJlbnRfbm9k ZV9kaWN0WydzY2hlbWEnXVstMV0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2No ZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KLSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNj aGVtYV9kYXRhWydzY2hlbWFfaWQnXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2No ZW1hX2RhdGFbJ3NlcnZlcl9pZCddCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNjaGVtYV9k YXRhWydkYl9pZCddCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRh dGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2VsZi5mdHNfZGljdF9uYW1lID0gImZ0 c19kaWN0XyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgdXJsID0gJy9icm93 c2VyL2Z0c19kaWN0aW9uYXJ5L29iai8nCiAKLSAgICAgICAgc2VsZi5mdHNfZGljdF9pZCA9IGZ0 c19kaWN0X3V0aWxzLmNyZWF0ZV9mdHNfZGljdGlvbmFyeSgKLSAgICAgICAgICAgIHNlbGYuc2Vy dmVyLAotICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgc2VsZi5zY2hlbWFf bmFtZSwKLSAgICAgICAgICAgIHNlbGYuZnRzX2RpY3RfbmFtZSkKKyAgICAgICAgc2VsZi50ZXN0 ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlbGYuc2VydmVy ID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9 IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lk ID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNl bGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2 ZXJfZGF0YVsnZGJfbmFtZSddCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIi IFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgRlRTIGRpY3Rpb25hcnkgcHJlc2VudCB1bmRlciB0 ZXN0IHNjaGVtYS4KLSAgICAgICAgICIiIgorICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFy ZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBz ZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0g c2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lkJ10KIAogICAgICAgICBkYl9jb24gPSBkYXRhYmFz ZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQp Ci0KICAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQu IjoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0 YWJhc2UuIikKIApAQCAtNjUsNiArNjAsMTQgQEAgY2xhc3MgRnRzRGljdGlvbmFyeVB1dFRlc3RD YXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToK ICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4i KQogCisgICAgICAgIHNlbGYuZnRzX2RpY3RfbmFtZSA9ICJmdHNfZGljdF8lcyIgJSBzdHIodXVp ZC51dWlkNCgpKVsxOjhdCisgICAgICAgIHNlbGYuZnRzX2RpY3RfaWQgPSBmdHNfZGljdF91dGls cy5jcmVhdGVfZnRzX2RpY3Rpb25hcnkoCisgICAgICAgICAgICBzZWxmLnNlcnZlciwKKyAgICAg ICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAg ICAgICAgICBzZWxmLmZ0c19kaWN0X25hbWUKKyAgICAgICAgKQorCiAgICAgICAgIGRpY3RfcmVz cG9uc2UgPSBmdHNfZGljdF91dGlscy52ZXJpZnlfZnRzX2RpY3Qoc2VsZi5zZXJ2ZXIsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5k Yl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuZnRzX2RpY3RfbmFtZSkKQEAgLTc4LDggKzgxLDggQEAgY2xhc3MgRnRzRGlj dGlvbmFyeVB1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICAi aWQiOiBzZWxmLmZ0c19kaWN0X2lkCiAKICAgICAgICAgICAgIH0KLSAgICAgICAgcHV0X3Jlc3Bv bnNlID0gc2VsZi50ZXN0ZXIucHV0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMu U0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0 KAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwogICAg ICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2Vs Zi5kYl9pZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyAr CkBAIC04NywxMyArOTAsMjAgQEAgY2xhc3MgRnRzRGljdGlvbmFyeVB1dFRlc3RDYXNlKEJhc2VU ZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAg ICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFs cyhwdXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVz X2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0g Y29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnRfanNvbl92 YWx1ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAg ICAgICAnZnRzX2RpY3Rpb25hcnknLAorICAgICAgICAgICAgJ3BnYWRtaW4ubm9kZS5mdHNfZGlj dGlvbmFyeScsCisgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgICdpY29uLWZ0c19kaWN0 aW9uYXJ5JywKKyAgICAgICAgICAgIHNlbGYuZnRzX2RpY3RfbmFtZQorICAgICAgICApCiAKICAg ICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlIHRo ZSBmdHMgZGljdGlvbmFyaWVzIGFuZCBkaXNjb25uZWN0IHRoZSB0ZXN0Ci0gICAgICAgIGRhdGFi YXNlLiIiIgogICAgICAgICBmdHNfZGljdF91dGlscy5kZWxldGVfZnRzX2RpY3Rpb25hcmllcyhz ZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZ0c19kaWN0X25hbWUpCi0gICAgICAgIGRh dGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAg ICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0 ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3BhcnNlci90ZXN0 cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVzdHMvX19pbml0X18ucHkKaW5kZXggOGY1 YjZmYjIuLjU5MDAyNmFkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFyc2VyL3Rlc3RzL19faW5pdF9f LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVzdHMvX19pbml0X18ucHkKQEAgLTYsMTEgKzYsMyBA QAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2Vu Y2UKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBv cnQgQmFzZVRlc3RHZW5lcmF0b3IKLQotCi1jbGFzcyBGb3JlaWduVGFibGVUZXN0R2VuZXJhdG9y KEJhc2VUZXN0R2VuZXJhdG9yKToKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICBy ZXR1cm4gW10KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVzdHMvdGVzdF9mdHNfcGFyc2Vy X2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVzdHMvdGVzdF9mdHNfcGFyc2VyX2FkZC5weQppbmRl eCBmZjE5M2UyNC4uNzc3Y2QyNDEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVzdHMvdGVz dF9mdHNfcGFyc2VyX2FkZC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFyc2VyL3Rlc3RzL3Rlc3RfZnRzX3Bh cnNlcl9hZGQucHkKQEAgLTEyLDM4ICsxMiw0NSBAQCBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHBy aW50X2Z1bmN0aW9uCiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAorZnJvbSBncmFwcGEgaW1w b3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu ZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRp bHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu dGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWlu LnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxz LmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRt aW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwK KyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9uIGlt cG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMg aW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnRzX3Bh cnNlcl91dGlscwogCiAKLWNsYXNzIEZ0c1BhcnNlckFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJh dG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCBuZXcgRlRTIHBhcnNlciB1bmRlciBz Y2hlbWEgbm9kZS4gIiIiCitjbGFzcyBUZXN0RlRTUGFyc2VyQWRkOgorICAgIGRlZiB0ZXN0X2Z0 c19wYXJzZXJfYWRkKHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAi IiIKKyAgICAgICAgV2hlbiB0aGUgRlRTIHBhcnNlciBhZGQgcmVxdWVzdCBpcyBzZW5kIHRvIHRo ZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAg ICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwg PSAnL2Jyb3dzZXIvZnRzX3BhcnNlci9vYmovJwogCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAg ICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBGVFMgcGFyc2VyIG5vZGUuCi0gICAgICAgICgn RmV0Y2ggRlRTIHBhcnNlciBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9mdHNfcGFyc2Vy L29iai8nKSkKLSAgICBdCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sn dGVzdF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Nl cnZlciddCisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRh YmFzZSddWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3Nl cnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCdd CisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQogCi0g ICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRk IGEgbmV3IEZUUyBwYXJzZXIgdW5kZXIgdGVzdCBzY2hlbWEuICIiIgotICAgICAgICBzZWxmLnNj aGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCi0gICAgICAgIHNlbGYu c2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfbmFtZSddCi0gICAgICAgIHNl bGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX2lkJ10KLSAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydzZXJ2ZXJfaWQnXQotICAgICAgICBzZWxm LmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnZGJfaWQnXQotICAgICAgICBzZWxmLmRiX25hbWUg PSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCisgICAgICAgIHNl bGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KKyAgICAgICAg c2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9uYW1lJ10KKyAgICAg ICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfaWQnXQogCiAgICAg ICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJf R1JPVVAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zZXJ2ZXJfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kYl9pZCkKLQogICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0g IkRhdGFiYXNlIGNvbm5lY3RlZC4iOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3Vs ZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQogCkBAIC02NiwxOSArNzMsMjYgQEAgY2xhc3Mg RnRzUGFyc2VyQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgfQog CiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKLSAgICAgICAgICAgIHNlbGYu dXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgdXJsICsg c3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2Vy dmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArCiAgICAgICAgICAgICAnLycgKyBzdHIo c2VsZi5zY2hlbWFfaWQpICsgJy8nLAogICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYu ZGF0YSksCiAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCiAKLSAgICAgICAg c2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgcmVz cG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29u X3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBh c3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9u c2UsCisgICAgICAgICAgICAnZnRzX3BhcnNlcicsCisgICAgICAgICAgICAncGdhZG1pbi5ub2Rl LmZ0c19wYXJzZXInLAorICAgICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICAnaWNvbi1mdHNf cGFyc2VyJywKKyAgICAgICAgICAgIHNlbGYuZnRzX3BhcnNlcl9uYW1lCisgICAgICAgICkKIAog ICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUg dGhlIGZ0c19wYXJzZXIgYW5kIGRpc2Nvbm5lY3QgdGhlIHRlc3QKLSAgICAgICAgZGF0YWJhc2Uu IiIiCiAgICAgICAgIGZ0c19wYXJzZXJfdXRpbHMuZGVsZXRlX2Z0c19wYXJzZXIoc2VsZi5zZXJ2 ZXIsIHNlbGYuZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNjaGVtYV9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuZnRzX3BhcnNlcl9uYW1lKQotICAgICAgICBkYXRhYmFzZV91dGlscy5k aXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNl X3V0aWxzLmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZl cl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVzdHMvdGVzdF9mdHNfcGFy c2VyX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVzdHMvdGVzdF9mdHNfcGFyc2VyX2RlbGV0 ZS5weQppbmRleCA2NjRmZWQ2NC4uNWE3N2M4NTEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIv dGVzdHMvdGVzdF9mdHNfcGFyc2VyX2RlbGV0ZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFyc2VyL3Rlc3Rz L3Rlc3RfZnRzX3BhcnNlcl9kZWxldGUucHkKQEAgLTExLDQ3ICsxMSw0NCBAQCBmcm9tIF9fZnV0 dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGltcG9ydCB1dWlkCiAKK2Zyb20gZ3JhcHBh IGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1h X3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJh c2VzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdh ZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51 dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBw Z2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29u CiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lv bi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGlt cG9ydCB1dGlscyBhcyBmdHNfcGFyc2VyX3V0aWxzCiAKIAotY2xhc3MgRnRzUGFyc2VyRGVsZXRl VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgZGVs ZXRlIGFkZGVkIEZUUyBQYXJzZXIgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorY2xhc3MgVGVzdEZU U1BhcnNlckRlbGV0ZToKKyAgICBkZWYgdGVzdF9mdHNfcGFyc2VyX2RlbGV0ZShzZWxmLCByZXF1 ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIEZU UyBwYXJzZXIgZGVsZXRlIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBp dCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmlu YWxpemVyKHNlbGYudGVhckRvd24pCiAKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0 Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIEZUUyBwYXJzZXIgbm9kZS4KLSAgICAgICAgKCdGZXRjaCBG VFMgcGFyc2VyIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL2Z0c19wYXJzZXIvb2JqLycp KQotICAgIF0KKyAgICAgICAgdXJsID0gJy9icm93c2VyL2Z0c19wYXJzZXIvb2JqLycKIAotICAg IGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3Rz Wyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1sn c2VydmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2Rh dGFiYXNlJ11bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsn c2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lk J10KKyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCiAK LSAgICAgICAgc2VsZi5zY2hlbWFfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0x XQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX25h bWUnXQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9p ZCddCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lk J10KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAgICAg ICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25h bWUiXQotICAgICAgICBzZWxmLmZ0c19wYXJzZXJfbmFtZSA9ICJmdHNfcGFyc2VyXyVzIiAlIHN0 cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgc2VsZi5zY2hlbWFfaW5mbyA9IHBhcmVudF9u b2RlX2RpY3RbJ3NjaGVtYSddWy0xXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5z Y2hlbWFfaW5mb1snc2NoZW1hX25hbWUnXQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYu c2NoZW1hX2luZm9bJ3NjaGVtYV9pZCddCiAKLSAgICAgICAgc2VsZi5mdHNfcGFyc2VyX2lkID0g ZnRzX3BhcnNlcl91dGlscy5jcmVhdGVfZnRzX3BhcnNlcigKLSAgICAgICAgICAgIHNlbGYuc2Vy dmVyLAotICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgc2VsZi5zY2hlbWFf bmFtZSwKLSAgICAgICAgICAgIHNlbGYuZnRzX3BhcnNlcl9uYW1lKQotCi0gICAgZGVmIHJ1blRl c3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIEZUUyBwYXJz ZXIgcHJlc2VudCB1bmRlciB0ZXN0IHNjaGVtYS4gIiIiCiAgICAgICAgIGRiX2NvbiA9IGRhdGFi YXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9p ZCkKLQogICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3Rl ZC4iOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBk YXRhYmFzZS4iKQogCkBAIC02MSw2ICs1OCwxMyBAQCBjbGFzcyBGdHNQYXJzZXJEZWxldGVUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6 CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEu IikKIAorICAgICAgICBzZWxmLmZ0c19wYXJzZXJfbmFtZSA9ICJmdHNfcGFyc2VyXyVzIiAlIHN0 cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgc2VsZi5mdHNfcGFyc2VyX2lkID0gZnRzX3Bh cnNlcl91dGlscy5jcmVhdGVfZnRzX3BhcnNlcigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLAor ICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwK KyAgICAgICAgICAgIHNlbGYuZnRzX3BhcnNlcl9uYW1lKQorCiAgICAgICAgIHBhcnNlcl9yZXNw b25zZSA9IGZ0c19wYXJzZXJfdXRpbHMudmVyaWZ5X2Z0c19wYXJzZXIoCiAgICAgICAgICAgICBz ZWxmLnNlcnZlciwKICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKQEAgLTY5LDE4ICs3MywyMyBA QCBjbGFzcyBGdHNQYXJzZXJEZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAg ICAgIGlmIG5vdCBwYXJzZXJfcmVzcG9uc2U6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o IkNvdWxkIG5vdCBmaW5kIHRoZSBGVFMgcGFyc2VyLiIpCiAKLSAgICAgICAgZGVsZXRlX3Jlc3Bv bnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRp bHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIu ZGVsZXRlKAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycg KwogICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCiAgICAgICAgICAgICBz dHIoc2VsZi5kYl9pZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSAr ICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5mdHNfcGFyc2VyX2lkKSwKICAgICAgICAgICAg IGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhkZWxl dGVfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2Nv ZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29u dmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwg c2hvdWxkLmhhdmUua2V5KCdpbmZvJykgPiBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAg ICAnRlRTIFBhcnNlciBkcm9wcGVkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5o YXZlLmtleSgnZXJyb3Jtc2cnKSA+IHNob3VsZC5iZS5lbXB0eQorICAgICAgICBqc29uX3Jlc3Bv bnNlIHwgc2hvdWxkLmhhdmUua2V5KCdkYXRhJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNo b3VsZC5oYXZlLmtleSgncmVzdWx0JykgPiBzaG91bGQuYmUubm9uZQorICAgICAgICBqc29uX3Jl c3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdzdWNjZXNzJykgPiBzaG91bGQuYmUuZXF1YWwudG8o MSkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBk aXNjb25uZWN0IHRoZSB0ZXN0IGRhdGFiYXNlLiIiIgotCi0gICAgICAgIGRhdGFiYXNlX3V0aWxz LmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJh c2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2Vy dmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3BhcnNlci90ZXN0cy90ZXN0X2Z0c19w YXJzZXJfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3BhcnNlci90ZXN0cy90ZXN0X2Z0c19wYXJzZXJfZ2V0LnB5 CmluZGV4IGMxOGM1NWEzLi5hNjgxOTgyMSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3BhcnNlci90ZXN0 cy90ZXN0X2Z0c19wYXJzZXJfZ2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVzdHMvdGVzdF9m dHNfcGFyc2VyX2dldC5weQpAQCAtMTEsNDcgKzExLDQ0IEBAIGZyb20gX19mdXR1cmVfXyBpbXBv cnQgcHJpbnRfZnVuY3Rpb24KIAogaW1wb3J0IHV1aWQKIAorZnJvbSBncmFwcGEgaW1wb3J0IHNo b3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJh c2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMg aW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxz LnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2Vf dGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRp bHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24KIGZyb20gcmVn cmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90 ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxz IGFzIGZ0c19wYXJzZXJfdXRpbHMKIAogCi1jbGFzcyBGdHNQYXJzZXJHZXRUZXN0Q2FzZShCYXNl VGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBhZGQgbmV3IGZvcmVpZ24g dGFibGUgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgotCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAg ICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBGVFMgcGFyc2VyIG5vZGUuCi0gICAgICAgICgn RmV0Y2ggRlRTIHBhcnNlciBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9mdHNfcGFyc2Vy L29iai8nKSkKLSAgICBdCitjbGFzcyBUZXN0RlRTUGFyc2VyR2V0OgorICAgIGRlZiB0ZXN0X2Z0 c19wYXJzZXJfZ2V0KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAi IiIKKyAgICAgICAgV2hlbiB0aGUgRlRTIHBhcnNlciBnZXQgcmVxdWVzdCBpcyBzZW5kIHRvIHRo ZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAg ICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKIAotICAgIGRlZiBzZXRV cChzZWxmKToKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2Z0c19wYXJzZXIvb2JqLycKIAotICAg ICAgICBzZWxmLnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCi0g ICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfbmFtZSdd Ci0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX2lkJ10K LSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydzZXJ2ZXJfaWQnXQot ICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnZGJfaWQnXQotICAgICAgICBz ZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJd Ci0gICAgICAgIHNlbGYuZnRzX3BhcnNlcl9uYW1lID0gImZ0c19wYXJzZXJfJXMiICUgc3RyKHV1 aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNb J3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydz ZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0 YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydz ZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQn XQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KIAot ICAgICAgICBzZWxmLmZ0c19wYXJzZXJfaWQgPSBmdHNfcGFyc2VyX3V0aWxzLmNyZWF0ZV9mdHNf cGFyc2VyKAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICBzZWxmLmRiX25h bWUsCi0gICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgc2VsZi5mdHNf cGFyc2VyX25hbWUpCisgICAgICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0 WydzY2hlbWEnXVstMV0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2lu Zm9bJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9p bmZvWydzY2hlbWFfaWQnXQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBU aGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggbmV3IEZUUyBwYXJzZXIgdW5kZXIgdGVzdCBzY2hlbWEu ICIiIgogICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNl bGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRp bHMuU0VSVkVSX0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCi0KICAgICAgICAgaWYgbm90IGRiX2Nvblsi aW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKICAgICAgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKIApAQCAtNjEsMjAgKzU4LDI4 IEBAIGNsYXNzIEZ0c1BhcnNlckdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAg ICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQogCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50 ZXN0ZXIuZ2V0KHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAg ICAgICBzZWxmLmZ0c19wYXJzZXJfbmFtZSA9ICJmdHNfcGFyc2VyXyVzIiAlIHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0KKyAgICAgICAgc2VsZi5mdHNfcGFyc2VyX2lkID0gZnRzX3BhcnNlcl91dGls cy5jcmVhdGVfZnRzX3BhcnNlcigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLAorICAgICAgICAg ICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAg ICAgIHNlbGYuZnRzX3BhcnNlcl9uYW1lKQorCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0 ZXIuZ2V0KHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAn LycgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi5mdHNfcGFy c2VyX2lkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBl PSdodG1sL2pzb24nKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1 c19jb2RlLCAyMDApCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVx dWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9f anNvbihyZXNwb25zZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgn bmFtZScpID4gXAorICAgICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKHNlbGYuZnRzX3BhcnNl cl9uYW1lKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0 aW9uIGRlbGV0ZSB0aGUgZnRzX3BhcnNlciBhbmQgZGlzY29ubmVjdCB0aGUgdGVzdAotICAgICAg ICBkYXRhYmFzZS4iIiIKICAgICAgICAgZnRzX3BhcnNlcl91dGlscy5kZWxldGVfZnRzX3BhcnNl cihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5mdHNfcGFyc2VyX25hbWUpCi0gICAgICAgIGRhdGFi YXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAg ICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIs IHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3BhcnNlci90ZXN0cy90 ZXN0X2Z0c19wYXJzZXJfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3BhcnNlci90ZXN0cy90ZXN0X2Z0c19wYXJz ZXJfcHV0LnB5CmluZGV4IGIxZWY3OGQzLi41MzUzMmYyNyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3Bh cnNlci90ZXN0cy90ZXN0X2Z0c19wYXJzZXJfcHV0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVz dHMvdGVzdF9mdHNfcGFyc2VyX3B1dC5weQpAQCAtMTIsNDcgKzEyLDQ1IEBAIGZyb20gX19mdXR1 cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIGltcG9ydCBqc29uCiBpbXBvcnQgdXVpZAogCitm cm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxz IGFzIHNjaGVtYV91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxz Ci1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9t IHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0 b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9u c2VfdG9fanNvbiwgXAorICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlCiBmcm9t IHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRo b25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1 dGlscyBhcyBmdHNfcGFyc2VyX3V0aWxzCiAKIAotY2xhc3MgRnRzUGFyc2VyUHV0VGVzdENhc2Uo QmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgdXBkYXRlIGFkZGVk IEZUUyBQYXJzZXIgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgotCi0gICAgc2NlbmFyaW9zID0gWwot ICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBGVFMgcGFyc2VyIG5vZGUuCi0gICAg ICAgICgnRmV0Y2ggRlRTIHBhcnNlciBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9mdHNf cGFyc2VyL29iai8nKSkKLSAgICBdCitjbGFzcyBUZXN0RlRTUGFyc2VyUHV0OgorICAgIGRlZiB0 ZXN0X2Z0c19wYXJzZXJfcHV0KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAg ICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgRlRTIHBhcnNlciBwdXQgcmVxdWVzdCBpcyBzZW5k IHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAi IiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKIAotICAgIGRl ZiBzZXRVcChzZWxmKToKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2Z0c19wYXJzZXIvb2JqLycK IAotICAgICAgICBzZWxmLnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11b LTFdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFf bmFtZSddCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1h X2lkJ10KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydzZXJ2ZXJf aWQnXQotICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnZGJfaWQnXQotICAg ICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJf bmFtZSJdCi0gICAgICAgIHNlbGYuZnRzX3BhcnNlcl9uYW1lID0gImZ0c19wYXJzZXJfJXMiICUg c3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2Zf dGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rl c3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGlj dFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9k YXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsn ZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1l J10KIAotICAgICAgICBzZWxmLmZ0c19wYXJzZXJfaWQgPSBmdHNfcGFyc2VyX3V0aWxzLmNyZWF0 ZV9mdHNfcGFyc2VyKAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICBzZWxm LmRiX25hbWUsCi0gICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgc2Vs Zi5mdHNfcGFyc2VyX25hbWUpCisgICAgICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9k ZV9kaWN0WydzY2hlbWEnXVstMV0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2No ZW1hX2luZm9bJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNj aGVtYV9pbmZvWydzY2hlbWFfaWQnXQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAg ICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIEZUUyBwYXJzZXIgcHJlc2VudCB1bmRlciB0 ZXN0IHNjaGVtYS4gIiIiCiAgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3Rf ZGF0YWJhc2Uoc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKLQogICAgICAgICBpZiBu b3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgogICAgICAgICAgICAg cmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQogCkBAIC02 Miw2ICs2MCwxMyBAQCBjbGFzcyBGdHNQYXJzZXJQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRv cik6CiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CiAgICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEuIikKIAorICAgICAgICBzZWxmLmZ0 c19wYXJzZXJfbmFtZSA9ICJmdHNfcGFyc2VyXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0K KyAgICAgICAgc2VsZi5mdHNfcGFyc2VyX2lkID0gZnRzX3BhcnNlcl91dGlscy5jcmVhdGVfZnRz X3BhcnNlcigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLAorICAgICAgICAgICAgc2VsZi5kYl9u YW1lLAorICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgIHNlbGYuZnRz X3BhcnNlcl9uYW1lKQorCiAgICAgICAgIHBhcnNlcl9yZXNwb25zZSA9IGZ0c19wYXJzZXJfdXRp bHMudmVyaWZ5X2Z0c19wYXJzZXIoCiAgICAgICAgICAgICBzZWxmLnNlcnZlciwKICAgICAgICAg ICAgIHNlbGYuZGJfbmFtZSwKQEAgLTc3LDggKzgyLDggQEAgY2xhc3MgRnRzUGFyc2VyUHV0VGVz dENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogCiAgICAgICAgICAgICB9CiAKLSAgICAgICAgcHV0 X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIo dXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0 ZXIucHV0KAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycg KwogICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCiAgICAgICAgICAgICBz dHIoc2VsZi5kYl9pZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSAr ICcvJyArCkBAIC04NiwxMyArOTEsMjAgQEAgY2xhc3MgRnRzUGFyc2VyUHV0VGVzdENhc2UoQmFz ZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAogICAg ICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWxzKHB1dF9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAgICAgICByZXNwb25zZS5zdGF0 dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2Ug PSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGFzc2VydF9qc29u X3ZhbHVlc19mcm9tX3Jlc3BvbnNlKAorICAgICAgICAgICAganNvbl9yZXNwb25zZSwKKyAgICAg ICAgICAgICdmdHNfcGFyc2VyJywKKyAgICAgICAgICAgICdwZ2FkbWluLm5vZGUuZnRzX3BhcnNl cicsCisgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgICdpY29uLWZ0c19wYXJzZXInLAor ICAgICAgICAgICAgc2VsZi5mdHNfcGFyc2VyX25hbWUKKyAgICAgICAgKQogCiAgICAgZGVmIHRl YXJEb3duKHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgZnRzX3Bh cnNlciBhbmQgZGlzY29ubmVjdCB0aGUgdGVzdAotICAgICAgICAgICAgICAgIGRhdGFiYXNlLiIi IgogICAgICAgICBmdHNfcGFyc2VyX3V0aWxzLmRlbGV0ZV9mdHNfcGFyc2VyKHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmZ0c19wYXJzZXJfbmFtZSkKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlz Y29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICBkYXRhYmFzZV91 dGlscy5jbGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJf aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3Rlc3RzL19faW5pdF9fLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnRzX3RlbXBsYXRlcy90ZXN0cy9fX2luaXRfXy5weQppbmRleCA4ZjViNmZiMi4uNTkw MDI2YWQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVzdHMvX19pbml0X18ucHkKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnRzX3RlbXBsYXRlcy90ZXN0cy9fX2luaXRfXy5weQpAQCAtNiwxMSArNiwzIEBACiAj IFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQog IwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBC YXNlVGVzdEdlbmVyYXRvcgotCi0KLWNsYXNzIEZvcmVpZ25UYWJsZVRlc3RHZW5lcmF0b3IoQmFz ZVRlc3RHZW5lcmF0b3IpOgotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgIHJldHVy biBbXQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZXN0cy90ZXN0X2Z0c190ZW1wbGF0 ZXNfYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZXN0cy90ZXN0X2Z0c190ZW1wbGF0ZXNfYWRk LnB5CmluZGV4IDEyYzQ0YTg1Li41NDk0NDAxNCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRl cy90ZXN0cy90ZXN0X2Z0c190ZW1wbGF0ZXNfYWRkLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMv dGVzdHMvdGVzdF9mdHNfdGVtcGxhdGVzX2FkZC5weQpAQCAtMTIsNDIgKzEyLDQ1IEBAIGZyb20g X19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIGltcG9ydCBqc29uCiBpbXBvcnQgdXVp ZAogCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAg IHV0aWxzIGFzIHNjaGVtYV91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw cy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGRhdGFiYXNl X3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y Citmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRf cmVzcG9uc2VfdG9fanNvbiwgXAorICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNl CiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lv bi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGlt cG9ydCB1dGlscyBhcyBmdHNfdGVtcF91dGlscwogCiAKLWNsYXNzIEZ0c1RlbXBsYXRlQWRkVGVz dENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgYWRkIG5l dyBGVFMgdGVtcGxhdGUgdW5kZXIgdGVzdCBzY2hlbWEuICIiIgorY2xhc3MgVGVzdEZUU1RlbXBs YXRlc0FkZDoKKyAgICBkZWYgdGVzdF9mdHNfdGVtcGxhdGVzX2FkZChzZWxmLCByZXF1ZXN0LCBj b250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIEZUUyB0ZW1w bGF0ZXMgYWRkIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1 cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVy KHNlbGYudGVhckRvd24pCiAKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcg ZGVmYXVsdCBVUkwgZm9yIEZUUyB0ZW1wbGF0ZSBub2RlLgotICAgICAgICAoCi0gICAgICAgICAg ICAnRmV0Y2ggRlRTIHRlbXBsYXRlcyBOb2RlIFVSTCcsCi0gICAgICAgICAgICBkaWN0KHVybD0n L2Jyb3dzZXIvZnRzX3RlbXBsYXRlL29iai8nKSkKLSAgICBdCisgICAgICAgIHVybCA9ICcvYnJv d3Nlci9mdHNfdGVtcGxhdGUvb2JqLycKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAg ICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCBGVFMgdGVtcGxhdGUgcHJlc2VudCB1bmRlcgot ICAgICAgICAgICAgdGVzdCBzY2hlbWEuICIiIgorICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRl eHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0 X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25v ZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNl cnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJf ZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydk Yl9uYW1lJ10KIAotICAgICAgICBzZWxmLnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsn c2NoZW1hJ11bLTFdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9kYXRh WydzY2hlbWFfbmFtZSddCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfZGF0 YVsnc2NoZW1hX2lkJ10KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9kYXRh WydzZXJ2ZXJfaWQnXQotICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnZGJf aWQnXQotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJd Wy0xXVsiZGJfbmFtZSJdCisgICAgICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9k aWN0WydzY2hlbWEnXVstMV0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1h X2luZm9bJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVt YV9pbmZvWydzY2hlbWFfaWQnXQogCiAgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNv bm5lY3RfZGF0YWJhc2Uoc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKLQogICAgICAg ICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgogICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQog CkBAIC02NywxOSArNzAsMjYgQEAgY2xhc3MgRnRzVGVtcGxhdGVBZGRUZXN0Q2FzZShCYXNlVGVz dEdlbmVyYXRvcik6CiAgICAgICAgICAgICB9CiAKICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRl c3Rlci5wb3N0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQ KSArICcvJyArCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcv JyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJf aWQpICsKICAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycsCiAgICAg ICAgICAgICBkYXRhPWpzb24uZHVtcHMoc2VsZi5kYXRhKSwKICAgICAgICAgICAgIGNvbnRlbnRf dHlwZT0naHRtbC9qc29uJykKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5z dGF0dXNfY29kZSwgMjAwKQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5i ZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNl X3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3Bv bnNlKAorICAgICAgICAgICAganNvbl9yZXNwb25zZSwKKyAgICAgICAgICAgICdmdHNfdGVtcGxh dGUnLAorICAgICAgICAgICAgJ3BnYWRtaW4ubm9kZS5mdHNfdGVtcGxhdGUnLAorICAgICAgICAg ICAgRmFsc2UsCisgICAgICAgICAgICAnaWNvbi1mdHNfdGVtcGxhdGUnLAorICAgICAgICAgICAg c2VsZi5mdHNfdGVtcGxhdGVfbmFtZQorICAgICAgICApCiAKICAgICBkZWYgdGVhckRvd24oc2Vs Zik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlIHRoZSBmdHNfdGVtcGxhdGUgYW5k IGRpc2Nvbm5lY3QgdGhlIHRlc3QKLSAgICAgICAgICAgICAgICBkYXRhYmFzZS4iIiIKICAgICAg ICAgZnRzX3RlbXBfdXRpbHMuZGVsZXRlX2Z0c190ZW1wbGF0ZShzZWxmLnNlcnZlciwgc2VsZi5k Yl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2NoZW1hX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5mdHNfdGVtcGxhdGVfbmFtZSkKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVj dF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5j bGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJf aWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3Rlc3RzL3Rlc3RfZnRzX3RlbXBsYXRl c19kZWxldGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3Rlc3RzL3Rlc3RfZnRzX3RlbXBsYXRlc19k ZWxldGUucHkKaW5kZXggOGVkYWI5NzQuLjdlOTNlZTNiIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVt cGxhdGVzL3Rlc3RzL3Rlc3RfZnRzX3RlbXBsYXRlc19kZWxldGUucHkKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3Rl bXBsYXRlcy90ZXN0cy90ZXN0X2Z0c190ZW1wbGF0ZXNfZGVsZXRlLnB5CkBAIC0xMSw0NyArMTEs NDQgQEAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCiBpbXBvcnQgdXVp ZAogCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAg IHV0aWxzIGFzIHNjaGVtYV91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw cy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGRhdGFiYXNl X3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y Citmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRf cmVzcG9uc2VfdG9fanNvbgogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0 CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMg dXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnRzX3RlbXBfdXRpbHMKIAogCi1jbGFzcyBG dHNUZW1wbGF0ZURlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhp cyBjbGFzcyB3aWxsIGRlbGV0ZSBuZXcgRlRTIHRlbXBsYXRlIHVuZGVyIHNjaGVtYSBub2RlLiAi IiIKK2NsYXNzIFRlc3RGVFNUZW1wbGF0ZXNEZWxldGU6CisgICAgZGVmIHRlc3RfZnRzX3RlbXBs YXRlc19kZWxldGUoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIi IgorICAgICAgICBXaGVuIHRoZSBGVFMgdGVtcGxhdGVzIGRlbGV0ZSByZXF1ZXN0IGlzIHNlbmQg dG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIi IgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQogCi0gICAgc2Nl bmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBGVFMgdGVtcGxh dGUgbm9kZS4KLSAgICAgICAgKCdGZXRjaCBGVFMgdGVtcGxhdGUgTm9kZSBVUkwnLCBkaWN0KHVy bD0nL2Jyb3dzZXIvZnRzX3RlbXBsYXRlL29iai8nKSkKLSAgICBdCisgICAgICAgIHVybCA9ICcv YnJvd3Nlci9mdHNfdGVtcGxhdGUvb2JqLycKIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAg ICAgc2VsZi5zY2hlbWFfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQotICAg ICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX25hbWUnXQot ICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9pZCddCi0g ICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KLSAg ICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAgICAgICAgc2Vs Zi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQot ICAgICAgICBzZWxmLmZ0c190ZW1wX25hbWUgPSAiZnRzX3RlbXBfJXMiICUgc3RyKHV1aWQudXVp ZDQoKSlbMTo4XQotICAgICAgICBzZWxmLmZ0c190ZW1wX2lkID0gZnRzX3RlbXBfdXRpbHMuY3Jl YXRlX2Z0c190ZW1wbGF0ZSgKLSAgICAgICAgICAgIHNlbGYuc2VydmVyLAotICAgICAgICAgICAg c2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAg IHNlbGYuZnRzX3RlbXBfbmFtZSkKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rl c3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0 c1snc2VydmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3Rb J2RhdGFiYXNlJ11bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0 YVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2Ri X2lkJ10KKyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSdd CiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2ls bCBkZWxldGUgRlRTIHRlbXBsYXRlIHByZXNlbnQgdW5kZXIKLSAgICAgICAgICAgIHRlc3Qgc2No ZW1hLiAiIiIKKyAgICAgICAgc2VsZi5zY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ3Nj aGVtYSddWy0xXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1sn c2NoZW1hX25hbWUnXQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9b J3NjaGVtYV9pZCddCiAKICAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9k YXRhYmFzZShzZWxmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQotCiAgICAgICAgIGlmIG5v dCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CiAgICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCiAKQEAgLTYx LDYgKzU4LDEyIEBAIGNsYXNzIEZ0c1RlbXBsYXRlRGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5l cmF0b3IpOgogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFp c2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hLiIpCiAKKyAgICAgICAgc2Vs Zi5mdHNfdGVtcF9uYW1lID0gImZ0c190ZW1wXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0K KyAgICAgICAgc2VsZi5mdHNfdGVtcF9pZCA9IGZ0c190ZW1wX3V0aWxzLmNyZWF0ZV9mdHNfdGVt cGxhdGUoCisgICAgICAgICAgICBzZWxmLnNlcnZlciwKKyAgICAgICAgICAgIHNlbGYuZGJfbmFt ZSwKKyAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICBzZWxmLmZ0c190 ZW1wX25hbWUpCiAgICAgICAgIGZ0c19yZXNwb25zZSA9IGZ0c190ZW1wX3V0aWxzLnZlcmlmeV9m dHNfdGVtcGxhdGUoc2VsZi5zZXJ2ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnRzX3RlbXBf bmFtZSkKQEAgLTY4LDE4ICs3MSwyMyBAQCBjbGFzcyBGdHNUZW1wbGF0ZURlbGV0ZVRlc3RDYXNl KEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgaWYgbm90IGZ0c19yZXNwb25zZToKICAgICAg ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIEZUUyB0ZW1wbGF0ZS4i KQogCi0gICAgICAgIGRlbGV0ZV9yZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKLSAgICAg ICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAg ICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKKyAgICAgICAgICAgIHVybCArIHN0cih1 dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9p ZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKICAgICAgICAg ICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuZnRz X3RlbXBfaWQpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQogCi0gICAgICAg IHNlbGYuYXNzZXJ0RXF1YWxzKGRlbGV0ZV9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAg ICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAg ICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisg ICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2luZm8nKSA+IHNob3VsZC5i ZS5lcXVhbC50bygKKyAgICAgICAgICAgICdGVFMgVGVtcGxhdGUgZHJvcHBlZCcpCisgICAgICAg IGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2Vycm9ybXNnJykgPiBzaG91bGQuYmUu ZW1wdHkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZGF0YScpCisg ICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3Jlc3VsdCcpID4gc2hvdWxk LmJlLm5vbmUKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnc3VjY2Vz cycpID4gc2hvdWxkLmJlLmVxdWFsLnRvKDEpCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0g ICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGlzY29ubmVjdCB0aGUgdGVzdCBkYXRhYmFzZS4iIiIK LQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYu c2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVudF9kaXNjb25uZWN0X2RhdGFi YXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0 c190ZW1wbGF0ZXMvdGVzdHMvdGVzdF9mdHNfdGVtcGxhdGVzX2dldC5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1w bGF0ZXMvdGVzdHMvdGVzdF9mdHNfdGVtcGxhdGVzX2dldC5weQppbmRleCBmYTY0NjQ4Zi4uNjY3 MGQzZTIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVzdHMvdGVzdF9mdHNfdGVtcGxh dGVzX2dldC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3Rlc3RzL3Rlc3RfZnRzX3RlbXBsYXRl c19nZXQucHkKQEAgLTExLDQ5ICsxMSw0NCBAQCBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50 X2Z1bmN0aW9uCiAKIGltcG9ydCB1dWlkCiAKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwog ZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hl bWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCBc CiAgICAgdXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBp bXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2Vu ZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3Rz X2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uCiBmcm9tIHJlZ3Jlc3Npb24g aW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGls cyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBmdHNf dGVtcF91dGlscwogCiAKLWNsYXNzIEZ0c1RlbXBsYXRlR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5l cmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggbmV3IEZUUyB0ZW1wbGF0ZSB1 bmRlciB0ZXN0IHNjaGVtYS4gIiIiCitjbGFzcyBUZXN0RlRTVGVtcGxhdGVzRGVsZXRlOgorICAg IGRlZiB0ZXN0X2Z0c190ZW1wbGF0ZXNfZGVsZXRlKHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2Zf dGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgRlRTIHRlbXBsYXRlcyBkZWxl dGUgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAw IHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50 ZWFyRG93bikKIAotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0 IFVSTCBmb3IgRlRTIHRlbXBsYXRlIG5vZGUuCi0gICAgICAgICgnRmV0Y2ggRlRTIHRlbXBsYXRl cyBOb2RlIFVSTCcsIGRpY3QoCi0gICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z0c190ZW1wbGF0 ZS9vYmovJykKLSAgICAgICAgICkKLSAgICBdCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9mdHNf dGVtcGxhdGUvb2JqLycKIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5zY2hl bWFfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQotICAgICAgICBzZWxmLnNj aGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX25hbWUnXQotICAgICAgICBzZWxm LnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9pZCddCi0gICAgICAgIHNlbGYu c2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KLSAgICAgICAgc2VsZi5k Yl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAgICAgICAgc2VsZi5kYl9uYW1lID0g cGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzZWxm LmZ0c190ZW1wX25hbWUgPSAiZnRzX3RlbXBfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQot ICAgICAgICBzZWxmLmZ0c190ZW1wX2lkID0gZnRzX3RlbXBfdXRpbHMuY3JlYXRlX2Z0c190ZW1w bGF0ZSgKLSAgICAgICAgICAgIHNlbGYuc2VydmVyLAotICAgICAgICAgICAgc2VsZi5kYl9uYW1l LAotICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgIHNlbGYuZnRzX3Rl bXBfbmFtZSkKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2Ns aWVudCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10K KyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11b LTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lk J10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAg ICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCiAKLSAgICBkZWYg cnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCBGVFMg dGVtcGxhdGUgcHJlc2VudCB1bmRlcgotICAgICAgICAgICAgdGVzdCBzY2hlbWEuICIiIgorICAg ICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisg ICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSdd CisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lkJ10K IAogICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMu U0VSVkVSX0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2VydmVyX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCi0KICAgICAgICAgaWYgbm90IGRiX2NvblsiaW5m byJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKIApAQCAtNjMsMjAgKzU4LDI4IEBA IGNsYXNzIEZ0c1RlbXBsYXRlR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAg ICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgZmluZCB0aGUgc2NoZW1hLiIpCiAKLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRl c3Rlci5nZXQoc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAg ICAgIHNlbGYuZnRzX3RlbXBfbmFtZSA9ICJmdHNfdGVtcF8lcyIgJSBzdHIodXVpZC51dWlkNCgp KVsxOjhdCisgICAgICAgIHNlbGYuZnRzX3RlbXBfaWQgPSBmdHNfdGVtcF91dGlscy5jcmVhdGVf ZnRzX3RlbXBsYXRlKAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICBzZWxm LmRiX25hbWUsCisgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgc2Vs Zi5mdHNfdGVtcF9uYW1lKQorCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHVy bCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi5mdHNfdGVtcF9pZCksCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29u JykKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAw KQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDAp CisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9u c2UpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ25hbWUnKSA+IFwK KyAgICAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50byhzZWxmLmZ0c190ZW1wX25hbWUpCiAKICAg ICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlIHRo ZSBmdHNfdGVtcGxhdGUgYW5kIGRpc2Nvbm5lY3QgdGhlIHRlc3QKLSAgICAgICAgICAgICAgICAg ICAgICAgIGRhdGFiYXNlLiIiIgogICAgICAgICBmdHNfdGVtcF91dGlscy5kZWxldGVfZnRzX3Rl bXBsYXRlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZ0c190ZW1wX25hbWUpCi0gICAgICAgIGRh dGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAg ICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0 ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90 ZXN0cy90ZXN0X2Z0c190ZW1wbGF0ZXNfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZXN0cy90 ZXN0X2Z0c190ZW1wbGF0ZXNfcHV0LnB5CmluZGV4IDhjNGRhOTc5Li41NWUwNGE5MiAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZXN0cy90ZXN0X2Z0c190ZW1wbGF0ZXNfcHV0LnB5Cisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVzdHMvdGVzdF9mdHNfdGVtcGxhdGVzX3B1dC5weQpAQCAt MTIsNDcgKzEyLDQ1IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIGlt cG9ydCBqc29uCiBpbXBvcnQgdXVpZAogCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1h cy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwogZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAog ICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1w b3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVy YXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19o ZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbiwgXAorICAgIGFzc2VydF9qc29u X3ZhbHVlc19mcm9tX3Jlc3BvbnNlCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2Rl X2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGls cyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBmdHNfdGVtcF91dGlscwogCiAKLWNs YXNzIEZ0c1RlbXBsYXRlUHV0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBU aGlzIGNsYXNzIHdpbGwgdXBkYXRlIG5ldyBGVFMgdGVtcGxhdGUgdW5kZXIgc2NoZW1hIG5vZGUu ICIiIgorY2xhc3MgVGVzdEZUU1RlbXBsYXRlc1B1dDoKKyAgICBkZWYgdGVzdF9mdHNfdGVtcGxh dGVzX3B1dChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisg ICAgICAgIFdoZW4gdGhlIEZUUyB0ZW1wbGF0ZXMgcHV0IHJlcXVlc3QgaXMgc2VuZCB0byB0aGUg YmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAg ICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCiAKLSAgICBzY2VuYXJpb3Mg PSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIEZUUyB0ZW1wbGF0ZSBub2Rl LgotICAgICAgICAoJ0ZldGNoIEZUUyB0ZW1wbGF0ZSBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJv d3Nlci9mdHNfdGVtcGxhdGUvb2JqLycpKQotICAgIF0KKyAgICAgICAgdXJsID0gJy9icm93c2Vy L2Z0c190ZW1wbGF0ZS9vYmovJwogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxm LnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCi0gICAgICAgIHNl bGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfbmFtZSddCi0gICAgICAg IHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX2lkJ10KLSAgICAgICAg c2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydzZXJ2ZXJfaWQnXQotICAgICAgICBz ZWxmLmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnZGJfaWQnXQotICAgICAgICBzZWxmLmRiX25h bWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAg IHNlbGYuZnRzX3RlbXBfbmFtZSA9ICJmdHNfdGVtcF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsx OjhdCi0gICAgICAgIHNlbGYuZnRzX3RlbXBfaWQgPSBmdHNfdGVtcF91dGlscy5jcmVhdGVfZnRz X3RlbXBsYXRlKAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICBzZWxmLmRi X25hbWUsCi0gICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgc2VsZi5m dHNfdGVtcF9uYW1lKQorICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rl c3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2 ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0YWJh c2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2 ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQor ICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KIAotICAg IGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0 ZSBGVFMgdGVtcGxhdGUgcHJlc2VudCB1bmRlcgotICAgICAgICAgICAgdGVzdCBzY2hlbWEuICIi IgorICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11b LTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFf bmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1h X2lkJ10KIAogICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNl KHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dXRpbHMuU0VSVkVSX0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCi0KICAgICAgICAgaWYgbm90IGRiX2Nv blsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKICAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKIApAQCAtNjIsNiArNjAs MTMgQEAgY2xhc3MgRnRzVGVtcGxhdGVQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAg ICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRp b24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEuIikKIAorICAgICAgICBzZWxmLmZ0c190ZW1w X25hbWUgPSAiZnRzX3RlbXBfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBz ZWxmLmZ0c190ZW1wX2lkID0gZnRzX3RlbXBfdXRpbHMuY3JlYXRlX2Z0c190ZW1wbGF0ZSgKKyAg ICAgICAgICAgIHNlbGYuc2VydmVyLAorICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAg ICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgIHNlbGYuZnRzX3RlbXBfbmFtZSkK KwogICAgICAgICBmdHNfcmVzcG9uc2UgPSBmdHNfdGVtcF91dGlscy52ZXJpZnlfZnRzX3RlbXBs YXRlKHNlbGYuc2VydmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZ0c190ZW1wX25hbWUpCkBA IC03Niw4ICs4MSw4IEBAIGNsYXNzIEZ0c1RlbXBsYXRlUHV0VGVzdENhc2UoQmFzZVRlc3RHZW5l cmF0b3IpOgogCiAgICAgICAgICAgICB9CiAKLSAgICAgICAgcHV0X3Jlc3BvbnNlID0gc2VsZi50 ZXN0ZXIucHV0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQ KSArICcvJyArCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KAorICAgICAgICAg ICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwogICAgICAgICAgICAgc3Ry KHNlbGYuc2VydmVyX2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAn LycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArCkBAIC04NSwxMyAr OTAsMjAgQEAgY2xhc3MgRnRzVGVtcGxhdGVQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6 CiAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBmb2xsb3df cmVkaXJlY3RzPVRydWUpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocHV0X3Jlc3BvbnNl LnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxk LmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9u c2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVz cG9uc2UoCisgICAgICAgICAgICBqc29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgJ2Z0c190ZW1w bGF0ZScsCisgICAgICAgICAgICAncGdhZG1pbi5ub2RlLmZ0c190ZW1wbGF0ZScsCisgICAgICAg ICAgICBGYWxzZSwKKyAgICAgICAgICAgICdpY29uLWZ0c190ZW1wbGF0ZScsCisgICAgICAgICAg ICBzZWxmLmZ0c190ZW1wX25hbWUKKyAgICAgICAgKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYp OgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgZnRzX3RlbXBsYXRlIGFuZCBk aXNjb25uZWN0IHRoZSB0ZXN0Ci0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhYmFzZS4iIiIK ICAgICAgICAgZnRzX3RlbXBfdXRpbHMuZGVsZXRlX2Z0c190ZW1wbGF0ZShzZWxmLnNlcnZlciwg c2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2NoZW1hX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5mdHNfdGVtcF9uYW1lKQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25u ZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxz LmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5k Yl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZXN0cy9fX2luaXRfXy5weQppbmRleCA0N2NiOTAzMS4uNTkwMDI2YWQgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVzdHMvX19pbml0X18ucHkKQEAgLTYsMTEgKzYsMyBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJl bGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj Ci0KLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLQot Ci1jbGFzcyBUcmlnZ2VyRnVuY3Rpb25UZXN0R2VuZXJhdG9yKEJhc2VUZXN0R2VuZXJhdG9yKToK LQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICByZXR1cm4KZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19hZGQucHkgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfYWRkLnB5CmluZGV4IGQyMzhiZjAxLi4zZDdhZWIzOCAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5jX2FkZC5weQor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfYWRkLnB5CkBAIC0xMCwz NCArMTAsNDUgQEAKIGltcG9ydCBqc29uCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citm cm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxz IGFzIHNjaGVtYV91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAogICAgIGRhdGFiYXNlX3V0aWxz CiBmcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IHNlcnZlcl91dGlscyBhcyBzZXJ2ZXJfdXRpbHMK LWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20g cGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRv cgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25z ZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UKIGZyb20g cmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhv bl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiAKIAotY2xhc3MgVHJpZ2dl ckZ1bmNBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mg d2lsbCBhZGQgbmV3IHRyaWdnZXIgZnVuY3Rpb24gdW5kZXIgc2NoZW1hIG5vZGUuICIiIgotICAg IHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAg IyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgdHJpZ2dlciBmdW5jdGlvbiBub2RlLgotICAgICAg ICAoJ0ZldGNoIFRyaWdnZXIgRnVuY3Rpb24gTm9kZSBVUkwnLCBkaWN0KAotICAgICAgICAgICAg dXJsPScvYnJvd3Nlci90cmlnZ2VyX2Z1bmN0aW9uL29iai8nKSkKLSAgICBdCitAcHl0ZXN0Lm1h cmsuc2tpcF9kYXRhYmFzZXMoWydncGRiJ10pCitjbGFzcyBUZXN0VHJpZ2dlckZ1bmN0aW9uc0Fk ZDoKKyAgICBkZWYgdGVzdF90cmlnZ2VyX2Z1bmN0aW9uc19hZGQoc2VsZiwgcmVxdWVzdCwgY29u dGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBUcmlnZ2VyIEZ1 bmN0aW9ucyBhZGQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJl dHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6 ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvdHJpZ2dlcl9mdW5j dGlvbi9vYmovJworCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVz dF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZl ciddCisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRhYmFz ZSddWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3NlcnZl cl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCddCisg ICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorCisgICAg ICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KKyAg ICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9uYW1lJ10K KyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfaWQnXQog Ci0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwg YWRkIHRyaWdnZXIgZnVuY3Rpb24gdW5kZXIgc2NoZW1hIG5vZGUuICIiIgotICAgICAgICBzdXBl cihUcmlnZ2VyRnVuY0FkZFRlc3RDYXNlLCBzZWxmKS5ydW5UZXN0KCkKLSAgICAgICAgZGJfbmFt ZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAg c2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2Vy dmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIGRiX2lkID0gc2NoZW1h X2luZm9bImRiX2lkIl0KICAgICAgICAgcHJvcmV0dHlwZW5hbWUgPSAiZXZlbnRfdHJpZ2dlci90 cmlnZ2VyIgotICAgICAgICBzZXJ2ZXJfY29uID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVy KHNlbGYsIHNlcnZlcl9pZCkKKyAgICAgICAgc2VydmVyX2NvbiA9IHNlcnZlcl91dGlscy5jb25u ZWN0X3NlcnZlcihzZWxmLCBzZWxmLnNlcnZlcl9pZCkKICAgICAgICAgaWYgbm90IHNlcnZlcl9j b25bImluZm8iXSA9PSAiU2VydmVyIGNvbm5lY3RlZC4iOgogICAgICAgICAgICAgcmFpc2UgRXhj ZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBzZXJ2ZXIgdG8gYWRkIHJlc291cmNlICIKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiZ3JvdXBzLiIpCkBAIC00NSwxNyArNTYsMTkgQEAg Y2xhc3MgVHJpZ2dlckZ1bmNBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAg ICAgICBpZiBzZXJ2ZXJfY29uWyJkYXRhIl1bInZlcnNpb24iXSA8IDkwMzAwOgogICAgICAgICAg ICAgICAgIHByb3JldHR5cGVuYW1lID0gInRyaWdnZXIiCiAKLSAgICAgICAgZGJfY29uID0gZGF0 YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lk LCBkYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2Ug dG8gYWRkIGEgZnVuY3Rpb24uIikKLSAgICAgICAgc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNj aGVtYV9pZCJdCi0gICAgICAgIHNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1l Il0KKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxm LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxz LlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZv Il0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQorCiAgICAgICAgIHNjaGVtYV9yZXNw b25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hl bWFfbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hl bWFfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5k IHRoZSBzY2hlbWEgdG8gYWRkIGEgZnVuY3Rpb24uIikKKyAgICAgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQorCiAgICAgICAgIGRiX3VzZXIgPSBz ZWxmLnNlcnZlclsidXNlcm5hbWUiXQogICAgICAgICBkYXRhID0gewogICAgICAgICAgICAgImFj bCI6IFsKQEAgLTk3LDE3ICsxMTAsMzIgQEAgY2xhc3MgVHJpZ2dlckZ1bmNBZGRUZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgIHRyaWdnZXJfZnVuY190eXBlcyA9IGRhdGFbJ3By b3JldHR5cGVuYW1lJ10uc3BsaXQoJy8nKQogICAgICAgICBmb3IgZnVuY190eXBlIGluIHRyaWdn ZXJfZnVuY190eXBlczoKICAgICAgICAgICAgIGRhdGFbJ3Byb3JldHR5cGVuYW1lJ10gPSBmdW5j X3R5cGUKLSAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICJ0ZXN0X2V2ZW50X2FkZF8lcyIgJSBz dHIodXVpZC51dWlkNCgpKVsxOjhdCi0gICAgICAgICAgICBpZiBzY2hlbWFfaWQ6Ci0gICAgICAg ICAgICAgICAgZGF0YVsncHJvbmFtZXNwYWNlJ10gPSBzY2hlbWFfaWQKKyAgICAgICAgICAgIHRy aWdnZXJfZnVuY19uYW1lID0gXAorICAgICAgICAgICAgICAgICJ0ZXN0X2V2ZW50X2FkZF8lcyIg JSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAgICAgICAgICBkYXRhWyJuYW1lIl0gPSB0cmln Z2VyX2Z1bmNfbmFtZQorICAgICAgICAgICAgaWYgc2VsZi5zY2hlbWFfaWQ6CisgICAgICAgICAg ICAgICAgZGF0YVsncHJvbmFtZXNwYWNlJ10gPSBzZWxmLnNjaGVtYV9pZAogICAgICAgICAgICAg ZWxzZToKLSAgICAgICAgICAgICAgICBzY2hlbWFfaWQgPSBkYXRhWydwcm9uYW1lc3BhY2UnXQor ICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gZGF0YVsncHJvbmFtZXNwYWNlJ10KICAg ICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKLSAgICAgICAgICAgICAgICBz ZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKLSAgICAgICAgICAgICAg ICBzdHIoc2VydmVyX2lkKSArICcvJyArIHN0cihkYl9pZCkgKyAnLycgKyBzdHIoc2NoZW1hX2lk KSArCi0gICAgICAgICAgICAgICAgJy8nLCBkYXRhPWpzb24uZHVtcHMoZGF0YSksIGNvbnRlbnRf dHlwZT0naHRtbC9qc29uJworICAgICAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJf R1JPVVApICsgJy8nICsKKyAgICAgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8n ICsKKyAgICAgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAgICAgICAgICAg ICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycsCisgICAgICAgICAgICAgICAgZGF0YT1qc29u LmR1bXBzKGRhdGEpLAorICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykK KworICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8o MjAwKQorICAgICAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNv bihyZXNwb25zZSkKKyAgICAgICAgICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNl KAorICAgICAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAgICAgJ3RyaWdn ZXJfZnVuY3Rpb24nLAorICAgICAgICAgICAgICAgICdwZ2FkbWluLm5vZGUudHJpZ2dlcl9mdW5j dGlvbicsCisgICAgICAgICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICAgICAgJ2ljb24tdHJp Z2dlcl9mdW5jdGlvbicsCisgICAgICAgICAgICAgICAgdHJpZ2dlcl9mdW5jX25hbWUgKyAnKCkn CiAgICAgICAgICAgICApCiAKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNl LnN0YXR1c19jb2RlLCAyMDApCi0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAg ICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZXJ2ZXJfaWQs IGRiX2lkKQorICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMu Y2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRi X2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5jX2Rl bGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19kZWxldGUucHkK aW5kZXggM2QxZmU5ZmUuLmQ0MDViMjU5IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMv dGVzdF90cmlnZ2VyX2Z1bmNfZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0 X3RyaWdnZXJfZnVuY19kZWxldGUucHkKQEAgLTksMzkgKzksNDQgQEAKIAogaW1wb3J0IHV1aWQK IAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMg aW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwK ICAgICBkYXRhYmFzZV91dGlscwogZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRp bHMgYXMgc2VydmVyX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBv cnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1w b3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbgogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJl bnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRl c3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgdHJpZ2dlcl9mdW5jc191 dGlscwogCiAKLWNsYXNzIFRyaWdnZXJGdW5jRGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0 b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgZGVsZXRlIHRoZSB0cmlnZ2VyIGZ1bmN0aW9u IHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10K LSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHRy aWdnZXIgZnVuY3Rpb24gbm9kZS4KLSAgICAgICAgKCdGZXRjaCBUcmlnZ2VyIEZ1bmN0aW9uIE5v ZGUgVVJMJywKLSAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci90cmlnZ2VyX2Z1bmN0aW9uL29i ai8nKSkKLSAgICBdCitAcHl0ZXN0Lm1hcmsuc2tpcF9kYXRhYmFzZXMoWydncGRiJ10pCitjbGFz cyBUZXN0VHJpZ2dlckZ1bmN0aW9uc0FkZDoKKyAgICBkZWYgdGVzdF90cmlnZ2VyX2Z1bmN0aW9u c19hZGQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAg ICAgICBXaGVuIHRoZSBUcmlnZ2VyIEZ1bmN0aW9ucyBhZGQgcmVxdWVzdCBpcyBzZW5kIHRvIHRo ZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAg ICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKIAotICAgIGRlZiBzZXRV cChzZWxmKToKLSAgICAgICAgc3VwZXIoVHJpZ2dlckZ1bmNEZWxldGVUZXN0Q2FzZSwgc2VsZiku c2V0VXAoKQotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFz ZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBwYXJlbnRfbm9k ZV9kaWN0WyJzY2hlbWEiXVstMV1bInNjaGVtYV9uYW1lIl0KLSAgICAgICAgc2VsZi5zY2hlbWFf aWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV1bInNjaGVtYV9pZCJdCisgICAgICAg IHVybCA9ICcvYnJvd3Nlci90cmlnZ2VyX2Z1bmN0aW9uL29iai8nCiAKLSAgICBkZWYgcnVuVGVz dChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgdHJpZ2dlciBm dW5jdGlvbiB1bmRlciBkYXRhYmFzZSBub2RlLiAiIiIKLSAgICAgICAgc2NoZW1hX2luZm8gPSBw YXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VydmVyX2lkID0gc2NoZW1h X2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIGRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0K LSAgICAgICAgZnVuY19uYW1lID0gInRlc3RfZXZlbnRfZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0KLSAgICAgICAgc2VydmVyX2NvbiA9IHNlcnZlcl91dGlscy5jb25uZWN0X3Nl cnZlcihzZWxmLCBzZXJ2ZXJfaWQpCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90 ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVz dHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0 WydkYXRhYmFzZSddWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2Rh dGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydk Yl9pZCddCisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUn XQorCisgICAgICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEn XVstMV0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVt YV9uYW1lJ10KKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hl bWFfaWQnXQorCisgICAgICAgIHNlcnZlcl9jb24gPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2 ZXIoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQpCiAgICAgICAgIGlmIG5vdCBzZXJ2ZXJfY29uWyJpbmZv Il0gPT0gIlNlcnZlciBjb25uZWN0ZWQuIjoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGNvbm5lY3QgdG8gc2VydmVyIHRvIGFkZCByZXNvdXJjZSAiCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgImdyb3Vwcy4iKQpAQCAtNDksMjkgKzU0LDQ0IEBAIGNsYXNzIFRy aWdnZXJGdW5jRGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICBpZiAi dHlwZSIgaW4gc2VydmVyX2NvblsiZGF0YSJdOgogICAgICAgICAgICAgaWYgc2VydmVyX2Nvblsi ZGF0YSJdWyJ2ZXJzaW9uIl0gPCA5MDMwMDoKICAgICAgICAgICAgICAgICBzZXJ2ZXJfdmVyc2lv biA9IHNlcnZlcl9jb25bImRhdGEiXVsidmVyc2lvbiJdCi0gICAgICAgIHNlbGYuZnVuY3Rpb25f aW5mbyA9IHRyaWdnZXJfZnVuY3NfdXRpbHMuY3JlYXRlX3RyaWdnZXJfZnVuY3Rpb24oCi0gICAg ICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBmdW5j X25hbWUsCi0gICAgICAgICAgICBzZXJ2ZXJfdmVyc2lvbikKIAotICAgICAgICBkYl9jb24gPSBk YXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJf aWQsIGRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgot ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFz ZSB0byBhZGQgY29sbGF0aW9uLiIpCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNv bm5lY3RfZGF0YWJhc2Uoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAg aWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKKyAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKKwog ICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2Vs Zi5zZXJ2ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmRiX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2No ZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmlu ZCB0aGUgc2NoZW1hIHRvIGFkZCB0aGUgY29sbGF0aW9uLiIpCisgICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEuIikKKworICAgICAgICBmdW5jX25h bWUgPSAidGVzdF9ldmVudF9kZWxldGVfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAg ICAgICBzZWxmLmZ1bmN0aW9uX2luZm8gPSB0cmlnZ2VyX2Z1bmNzX3V0aWxzLmNyZWF0ZV90cmln Z2VyX2Z1bmN0aW9uKAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2Vs Zi5zY2hlbWFfbmFtZSwgZnVuY19uYW1lLAorICAgICAgICAgICAgc2VydmVyX3ZlcnNpb24pCisK ICAgICAgICAgdHJpZ2dlcl9mdW5jX2lkID0gc2VsZi5mdW5jdGlvbl9pbmZvWzBdCiAgICAgICAg IHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKAotICAgICAgICAgICAgc2VsZi51cmwgKyBz dHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsKLSAg ICAgICAgICAgIHN0cihkYl9pZCkgKyAnLycgKwotICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1h X2lkKSArICcvJyArIHN0cih0cmlnZ2VyX2Z1bmNfaWQpLAorICAgICAgICAgICAgdXJsICsgc3Ry KHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVy X2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAgICAg ICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIodHJpZ2dl cl9mdW5jX2lkKSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJwogICAgICAg ICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDAp Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRp bHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZXJ2ZXJfaWQsIGRiX2lkKQorCisgICAgICAg IHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAg anNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAg ICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnaW5mbycpID4gc2hvdWxkLmJlLmVx dWFsLnRvKAorICAgICAgICAgICAgJ0Z1bmN0aW9uIGRyb3BwZWQuJykKKyAgICAgICAganNvbl9y ZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZXJyb3Jtc2cnKSA+IHNob3VsZC5iZS5lbXB0eQor ICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdkYXRhJykKKyAgICAgICAg anNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgncmVzdWx0JykgPiBzaG91bGQuYmUubm9u ZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdzdWNjZXNzJykgPiBz aG91bGQuYmUuZXF1YWwudG8oMSkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAg cGFzcworICAgICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZShz ZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rl c3RfdHJpZ2dlcl9mdW5jX2dldC5weQppbmRleCA3ZWIwZDJhMy4uYmJjNTM5N2EgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19nZXQucHkKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5jX2dldC5weQpAQCAtOSw0MCArOSw0NCBA QAogCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hv dWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFz ZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwogZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBp bXBvcnQgdXRpbHMgYXMgXAogICAgIGRhdGFiYXNlX3V0aWxzCiBmcm9tIHBnYWRtaW4udXRpbHMg aW1wb3J0IHNlcnZlcl91dGlscyBhcyBzZXJ2ZXJfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5y b3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rl c3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxz LnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uCiBmcm9tIHJlZ3Jl c3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVz dF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBh cyB0cmlnZ2VyX2Z1bmNzX3V0aWxzCiAKIAotY2xhc3MgVHJpZ2dlckZ1bmNHZXRUZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3aWxsIGZldGNoIGFkZGVkIHRy aWdnZXIgZnVuY3Rpb24gdW5kZXIgc2NoZW1hIG5vZGUuIiIiCi0gICAgc2tpcF9vbl9kYXRhYmFz ZSA9IFsnZ3BkYiddCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1 bHQgVVJMIGZvciB0cmlnZ2VyIGZ1bmN0aW9uIG5vZGUuCi0gICAgICAgICgnRmV0Y2ggVHJpZ2dl ciBGdW5jdGlvbiBOb2RlIFVSTCcsCi0gICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvdHJpZ2dl cl9mdW5jdGlvbi9vYmovJykpCi0gICAgXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsn Z3BkYiddKQorY2xhc3MgVGVzdFRyaWdnZXJGdW5jdGlvbnNHZXQ6CisgICAgZGVmIHRlc3RfdHJp Z2dlcl9mdW5jdGlvbnNfZ2V0KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAg ICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgVHJpZ2dlciBGdW5jdGlvbnMgZ2V0IHJlcXVlc3Qg aXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAg ICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisK KyAgICAgICAgdXJsID0gJy9icm93c2VyL3RyaWdnZXJfZnVuY3Rpb24vb2JqLycKIAotICAgIGRl ZiBzZXRVcChzZWxmKToKLSAgICAgICAgc3VwZXIoVHJpZ2dlckZ1bmNHZXRUZXN0Q2FzZSwgc2Vs Zikuc2V0VXAoKQotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRh YmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBwYXJlbnRf bm9kZV9kaWN0WyJzY2hlbWEiXVstMV1bInNjaGVtYV9uYW1lIl0KLSAgICAgICAgc2VsZi5zY2hl bWFfaWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV1bInNjaGVtYV9pZCJdCisgICAg ICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAg ICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYu c2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRhYmFzZSddWy0xXQorICAgICAgICBz ZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNl bGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIHNlbGYuZGJfbmFt ZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6 Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHRyaWdnZXIgZnVuY3Rpb24g dW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25v ZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJz ZXJ2ZXJfaWQiXQotICAgICAgICBkYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAg IGZ1bmNfbmFtZSA9ICJ0ZXN0X2V2ZW50X2dldF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhd Ci0gICAgICAgIGRiX3VzZXIgPSBzZWxmLnNlcnZlclsidXNlcm5hbWUiXQotICAgICAgICBzZXJ2 ZXJfY29uID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNlcnZlcl9pZCkKKyAg ICAgICAgc2VsZi5zY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQor ICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX25hbWUn XQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9pZCdd CisKKyAgICAgICAgc2VydmVyX2NvbiA9IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihzZWxm LCBzZWxmLnNlcnZlcl9pZCkKICAgICAgICAgaWYgbm90IHNlcnZlcl9jb25bImluZm8iXSA9PSAi U2VydmVyIGNvbm5lY3RlZC4iOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgY29ubmVjdCB0byBzZXJ2ZXIgdG8gYWRkIHJlc291cmNlICIKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiZ3JvdXBzLiIpCkBAIC01MCwyOCArNTQsMzggQEAgY2xhc3MgVHJpZ2dlckZ1 bmNHZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgIGlmICJ0eXBlIiBpbiBz ZXJ2ZXJfY29uWyJkYXRhIl06CiAgICAgICAgICAgICBpZiBzZXJ2ZXJfY29uWyJkYXRhIl1bInZl cnNpb24iXSA8IDkwMzAwOgogICAgICAgICAgICAgICAgIHNlcnZlcl92ZXJzaW9uID0gc2VydmVy X2NvblsiZGF0YSJdWyJ2ZXJzaW9uIl0KLSAgICAgICAgc2VsZi5mdW5jdGlvbl9pbmZvID0gdHJp Z2dlcl9mdW5jc191dGlscy5jcmVhdGVfdHJpZ2dlcl9mdW5jdGlvbigKLSAgICAgICAgICAgIHNl bGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIGZ1bmNfbmFtZSwKLSAg ICAgICAgICAgIHNlcnZlcl92ZXJzaW9uKQogCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0 aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwgZGJfaWQp Ci0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBj b2xsYXRpb24uIikKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRh YmFzZShzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJf Y29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgorICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQorCiAgICAgICAgIHNj aGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9u c2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hl bWEgdG8gYWRkIHRoZSBjb2xsYXRpb24uIikKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQorCisgICAgICAgIGZ1bmNfbmFtZSA9ICJ0ZXN0 X2V2ZW50X2RlbGV0ZV8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAgICAgIHNlbGYu ZnVuY3Rpb25faW5mbyA9IHRyaWdnZXJfZnVuY3NfdXRpbHMuY3JlYXRlX3RyaWdnZXJfZnVuY3Rp b24oCisgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9u YW1lLCBmdW5jX25hbWUsCisgICAgICAgICAgICBzZXJ2ZXJfdmVyc2lvbikKKwogICAgICAgICB0 cmlnZ2VyX2Z1bmNfaWQgPSBzZWxmLmZ1bmN0aW9uX2luZm9bMF0KICAgICAgICAgcmVzcG9uc2Ug PSBzZWxmLnRlc3Rlci5nZXQoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJW RVJfR1JPVVApICsgJy8nICsgc3RyKHNlcnZlcl9pZCkgKyAnLycgKwotICAgICAgICAgICAgc3Ry KGRiX2lkKSArICcvJyArCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQ KSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAg ICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zY2hl bWFfaWQpICsgJy8nICsgc3RyKHRyaWdnZXJfZnVuY19pZCksCiAgICAgICAgICAgICBjb250ZW50 X3R5cGU9J2h0bWwvanNvbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0 YXR1c19jb2RlLCAyMDApCi0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAg ICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZXJ2ZXJfaWQsIGRi X2lkKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRv KDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihy ZXNwb25zZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnbmFtZScp ID4gXAorICAgICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKGZ1bmNfbmFtZSkKIAogICAgIGRl ZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgcGFzcworICAgICAgICBkYXRhYmFzZV91dGlscy5j bGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJf aWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfcHV0 LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5jX3B1dC5weQppbmRleCA2 M2Q0YzA4NS4uYzIxZjhkOGUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3Ry aWdnZXJfZnVuY19wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9m dW5jX3B1dC5weQpAQCAtMTAsMzkgKzEwLDQ1IEBACiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQK IAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMg aW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwK ICAgICBkYXRhYmFzZV91dGlscwogZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRp bHMgYXMgc2VydmVyX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBv cnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1w b3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbiwgXAorICAgIGFzc2VydF9qc29uX3ZhbHVlc19m cm9tX3Jlc3BvbnNlCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZy b20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGls cwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyB0cmlnZ2VyX2Z1bmNzX3V0aWxzCiAKIAotY2xhc3Mg VHJpZ2dlckZ1bmNQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMg Y2xhc3Mgd2lsbCB1cGRhdGUgbmV3IHRyaWdnZXIgZnVuY3Rpb24gdW5kZXIgc2NoZW1hIG5vZGUu ICIiIgotICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQotICAgIHNjZW5hcmlvcyA9IFsK LSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgdHJpZ2dlciBmdW5jdGlvbiBub2Rl LgotICAgICAgICAoJ0ZldGNoIFRyaWdnZXIgRnVuY3Rpb24gTm9kZSBVUkwnLAotICAgICAgICAg ZGljdCh1cmw9Jy9icm93c2VyL3RyaWdnZXJfZnVuY3Rpb24vb2JqLycpKQotICAgIF0KLQotICAg IGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc3VwZXIoVHJpZ2dlckZ1bmNQdXRUZXN0Q2FzZSwg c2VsZikuc2V0VXAoKQotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJk YXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBwYXJl bnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV1bInNjaGVtYV9uYW1lIl0KLSAgICAgICAgc2VsZi5z Y2hlbWFfaWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV1bInNjaGVtYV9pZCJdCi0K LSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCB1 cGRhdGUgdHJpZ2dlciBmdW5jdGlvbiB1bmRlciBkYXRhYmFzZSBub2RlLiAiIiIKLSAgICAgICAg c2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2Vy dmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIGRiX2lkID0gc2NoZW1h X2luZm9bImRiX2lkIl0KLSAgICAgICAgZnVuY19uYW1lID0gInRlc3RfZXZlbnRfcHV0XyVzIiAl IHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KLSAgICAgICAgc2VydmVyX2NvbiA9IHNlcnZlcl91dGls cy5jb25uZWN0X3NlcnZlcihzZWxmLCBzZXJ2ZXJfaWQpCitAcHl0ZXN0Lm1hcmsuc2tpcF9kYXRh YmFzZXMoWydncGRiJ10pCitjbGFzcyBUZXN0VHJpZ2dlckZ1bmN0aW9uc0dldDoKKyAgICBkZWYg dGVzdF90cmlnZ2VyX2Z1bmN0aW9uc19nZXQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0 cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBUcmlnZ2VyIEZ1bmN0aW9ucyBnZXQg cmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0 YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFy RG93bikKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvdHJpZ2dlcl9mdW5jdGlvbi9vYmovJwor CisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQor ICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAg IHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRhYmFzZSddWy0xXQorICAg ICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAg ICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIHNlbGYu ZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorCisgICAgICAgIHNlbGYuc2No ZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KKyAgICAgICAgc2VsZi5z Y2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2Vs Zi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfaWQnXQorCisgICAgICAgIHNl cnZlcl9jb24gPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2VsZi5zZXJ2ZXJf aWQpCiAgICAgICAgIGlmIG5vdCBzZXJ2ZXJfY29uWyJpbmZvIl0gPT0gIlNlcnZlciBjb25uZWN0 ZWQuIjoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8g c2VydmVyIHRvIGFkZCByZXNvdXJjZSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImdy b3Vwcy4iKQpAQCAtNTAsMTkgKzU2LDI1IEBAIGNsYXNzIFRyaWdnZXJGdW5jUHV0VGVzdENhc2Uo QmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICBpZiAidHlwZSIgaW4gc2VydmVyX2NvblsiZGF0 YSJdOgogICAgICAgICAgICAgaWYgc2VydmVyX2NvblsiZGF0YSJdWyJ2ZXJzaW9uIl0gPCA5MDMw MDoKICAgICAgICAgICAgICAgICBzZXJ2ZXJfdmVyc2lvbiA9IHNlcnZlcl9jb25bImRhdGEiXVsi dmVyc2lvbiJdCi0gICAgICAgIHNlbGYuZnVuY3Rpb25faW5mbyA9IHRyaWdnZXJfZnVuY3NfdXRp bHMuY3JlYXRlX3RyaWdnZXJfZnVuY3Rpb24oCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwgc2Vs Zi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBmdW5jX25hbWUsCi0gICAgICAgICAgICBzZXJ2 ZXJfdmVyc2lvbikKLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRh YmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLCBkYl9pZCkKLSAgICAgICAgaWYgbm90 IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIGNvbGxhdGlvbi4iKQorCisg ICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJW RVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09 ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291 bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKKwogICAgICAgICBzY2hlbWFfcmVzcG9uc2Ug PSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCB0aGUg Y29sbGF0aW9uLiIpCi0gICAgICAgIGZ1bmNfbmFtZSA9IHNlbGYuZnVuY3Rpb25faW5mb1sxXQor ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hLiIp CisKKyAgICAgICAgZnVuY19uYW1lID0gInRlc3RfZXZlbnRfZGVsZXRlXyVzIiAlIHN0cih1dWlk LnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgc2VsZi5mdW5jdGlvbl9pbmZvID0gdHJpZ2dlcl9mdW5j c191dGlscy5jcmVhdGVfdHJpZ2dlcl9mdW5jdGlvbigKKyAgICAgICAgICAgIHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIGZ1bmNfbmFtZSwKKyAgICAgICAgICAg IHNlcnZlcl92ZXJzaW9uKQorCiAgICAgICAgIGZ1bmNfcmVzcG9uc2UgPSB0cmlnZ2VyX2Z1bmNz X3V0aWxzLnZlcmlmeV90cmlnZ2VyX2Z1bmN0aW9uKAogICAgICAgICAgICAgc2VsZi5zZXJ2ZXIs CiAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCkBAIC03NywxNiArODksMjYgQEAgY2xhc3MgVHJp Z2dlckZ1bmNQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAiaWQi OiB0cmlnZ2VyX2Z1bmNfaWQKICAgICAgICAgfQogCi0gICAgICAgIHB1dF9yZXNwb25zZSA9IHNl bGYudGVzdGVyLnB1dCgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9H Uk9VUCkgKwotICAgICAgICAgICAgJy8nICsgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJf aWQpICsgJy8nICsKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoCisgICAgICAg ICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICBz dHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSAr ICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsKICAgICAgICAg ICAgIHN0cih0cmlnZ2VyX2Z1bmNfaWQpLAogICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRh dGEpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFz c2VydEVxdWFscyhwdXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLSAgICAgICAgIyBEaXNj b25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2Rh dGFiYXNlKHNlbGYsIHNlcnZlcl9pZCwgZGJfaWQpCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVz X2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0g Y29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnRfanNvbl92 YWx1ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAg ICAgICAndHJpZ2dlcl9mdW5jdGlvbicsCisgICAgICAgICAgICAncGdhZG1pbi5ub2RlLnRyaWdn ZXJfZnVuY3Rpb24nLAorICAgICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICAnaWNvbi10cmln Z2VyX2Z1bmN0aW9uJywKKyAgICAgICAgICAgIGZ1bmNfbmFtZSArICcoKScKKyAgICAgICAgKQog CiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICBwYXNzCisgICAgICAgIGRhdGFiYXNl X3V0aWxzLmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZl cl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3BhY2thZ2VzL3Rlc3RzL19faW5pdF9fLnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvcGFja2FnZXMvdGVzdHMvX19pbml0X18ucHkKaW5kZXggZTY1YWYyMGMuLjU5MDAyNmFkIDEw MDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9wYWNrYWdlcy90ZXN0cy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9wYWNrYWdl cy90ZXN0cy9fX2luaXRfXy5weQpAQCAtNiwxMSArNiwzIEBACiAjIFRoaXMgc29mdHdhcmUgaXMg cmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKLQotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgot Ci0KLWNsYXNzIFBhY2thZ2VUZXN0R2VuZXJhdG9yKEJhc2VUZXN0R2VuZXJhdG9yKToKLQotICAg IGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICByZXR1cm4KZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3BhY2th Z2VzL3Rlc3RzL3Rlc3RfcGFja2FnZV9hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9wYWNrYWdlcy90ZXN0cy90ZXN0X3Bh Y2thZ2VfYWRkLnB5CmluZGV4IGZhNzQxMGM3Li5iNmYyZWEyOSAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvcGFj a2FnZXMvdGVzdHMvdGVzdF9wYWNrYWdlX2FkZC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9wYWNrYWdlcy90ZXN0cy90 ZXN0X3BhY2thZ2VfYWRkLnB5CkBAIC0xMCw4MyArMTAsNzYgQEAKIGltcG9ydCBqc29uCiBpbXBv cnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1h cy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwogZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRp bHMgYXMgXAogICAgIGRhdGFiYXNlX3V0aWxzCiBmcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IHNl cnZlcl91dGlscyBhcyBzZXJ2ZXJfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBv cnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJh dG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hl bHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25f dmFsdWVzX2Zyb21fcmVzcG9uc2UKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVf ZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxz IGFzIHV0aWxzCiAKIAotY2xhc3MgUGFja2FnZUFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9y KToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCBuZXcgcGFja2FnZSB1bmRlciB0ZXN0IHNj aGVtYS4gIiIiCi0gICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCi0KLSAgICBzY2VuYXJp b3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHBhY2thZ2Ugbm9kZS4K LSAgICAgICAgKCdGZXRjaCBQYWNrYWdlIE5vZGUgVVJMJywgZGljdCgKLSAgICAgICAgICAgIHVy bD0nL2Jyb3dzZXIvcGFja2FnZS9vYmovJykpCi0gICAgXQotCi0gICAgZGVmIHNldFVwKHNlbGYp OgotICAgICAgICBzdXBlcihQYWNrYWdlQWRkVGVzdENhc2UsIHNlbGYpLnNldFVwKCkKLSAgICAg ICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAg c2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2VsZi5z Y2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNlbGYuZGJf bmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAg ICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgc2Vs Zi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIHNlcnZlcl9jb24gPSBzZXJ2 ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQpCi0KLSAgICAgICAg aWYgc2VydmVyX2NvbjoKLSAgICAgICAgICAgIGlmICJ0eXBlIiBpbiBzZXJ2ZXJfY29uWyJkYXRh Il06Ci0gICAgICAgICAgICAgICAgaWYgc2VydmVyX2NvblsiZGF0YSJdWyJ0eXBlIl0gPT0gInBn IjoKLSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJQYWNrYWdlcyBhcmUgbm90IHN1cHBv cnRlZCBieSBQRy4iCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QobWVzc2FnZSkK LQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxs IGFkZCBwYWNrYWdlIHVuZGVyIHRlc3Qgc2NoZW1hLiAiIiIKLQotICAgICAgICBkYl9jb24gPSBk YXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lk LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZGJfaWQpCi0KLSAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25u ZWN0ZWQuIjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3Qg dG8gZGF0YWJhc2UuIikKLQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMu dmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQor QHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsnZ3BkYicsICdwZyddKQorY2xhc3MgVGVzdFBh Y2thZ2VBZGQ6CisgICAgQHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCdyZXF1aXJlX2RhdGFiYXNl X2Nvbm5lY3Rpb24nKQorICAgIGRlZiB0ZXN0X3BhY2thZ2VfYWRkKHNlbGYsIGNvbnRleHRfb2Zf dGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgcGFja2FnZSBhZGQgcmVxdWVz dCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cwor ICAgICAgICAiIiIKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3BhY2thZ2Uvb2JqLycKKworICAg ICAgICB0ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNl cnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlcnZlcl9kYXRhID0g Y29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9ybWF0aW9uJ10KKyAgICAgICAgc2VydmVyX2lk ID0gc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIGRiX2lkID0gc2VydmVyX2RhdGFb J2RiX2lkJ10KKyAgICAgICAgZGJfbmFtZSA9IHNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKworICAg ICAgICBzY2hlbWFfbmFtZSA9IHNlcnZlcl9kYXRhWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNj aGVtYV9pZCA9IHNlcnZlcl9kYXRhWydzY2hlbWFfaWQnXQorCisgICAgICAgIHNjaGVtYV9yZXNw b25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZXJ2ZXIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25h bWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CiAgICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEuIikKIAorICAgICAgICBwYWNrYWdl X25hbWUgPSAicGtnXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KICAgICAgICAgZGF0YSA9 IFwKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFtZSI6ICJwa2dfJXMiICUgc3Ry KHV1aWQudXVpZDQoKSlbMTo4XSwKLSAgICAgICAgICAgICAgICAib3duZXIiOiBzZWxmLnNlcnZl clsidXNlcm5hbWUiXSwKKyAgICAgICAgICAgICAgICAibmFtZSI6IHBhY2thZ2VfbmFtZSwKKyAg ICAgICAgICAgICAgICAib3duZXIiOiBzZXJ2ZXJbInVzZXJuYW1lIl0sCiAgICAgICAgICAgICAg ICAgInBrZ2FjbCI6IFtdLAogICAgICAgICAgICAgICAgICJwa2dib2R5c3JjIjogIlBST0NFRFVS RSBwMSgpIGlzIFxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJlZ2luIFxuIgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRibXNfb3V0cHV0LnB1dF9saW5lKCdUZXN0 X3BrZy5Qcm9jLi4uJyk7ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcbkVORFx0 OyIsCiAgICAgICAgICAgICAgICAgInBrZ2hlYWRzcmMiOiAiUFJPQ0VEVVJFIHAxKCk7IiwKLSAg ICAgICAgICAgICAgICAic2NoZW1hIjogc2VsZi5zY2hlbWFfaWQKKyAgICAgICAgICAgICAgICAi c2NoZW1hIjogc2NoZW1hX2lkCiAgICAgICAgICAgICB9CiAKLSAgICAgICAgcmVzcG9uc2UgPSBz ZWxmLnRlc3Rlci5wb3N0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVS X0dST1VQKSArICcvJyArCi0gICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsg c3RyKHNlbGYuZGJfaWQpICsKLSAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNjaGVtYV9pZCkg KyAnLycsCisgICAgICAgIHJlc3BvbnNlID0gdGVzdGVyLnBvc3QoCisgICAgICAgICAgICB1cmwg KyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VydmVy X2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAg IHN0cihzY2hlbWFfaWQpICsgJy8nLAogICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEp LAogICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQogCi0gICAgICAgIHNlbGYu YXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCi0KLSAgICBkZWYgdGVhckRv d24oc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGlzY29ubmVjdCB0aGUgdGVzdCBk YXRhYmFzZS4iIiIKLQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNl KHNlbGYsIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hv dWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVz cG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21f cmVzcG9uc2UoCisgICAgICAgICAgICBqc29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgJ3BhY2th Z2UnLAorICAgICAgICAgICAgJ3BnYWRtaW4ubm9kZS5wYWNrYWdlJywKKyAgICAgICAgICAgIEZh bHNlLAorICAgICAgICAgICAgJ2ljb24tcGFja2FnZScsCisgICAgICAgICAgICBwYWNrYWdlX25h bWUKKyAgICAgICAgKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvcGFja2FnZXMvdGVzdHMvdGVzdF9wYWNrYWdl X2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3BhY2thZ2VzL3Rlc3RzL3Rlc3RfcGFja2FnZV9kZWxldGUucHkKaW5k ZXggZDYyZTAxNmEuLjcwY2JjZTJlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9wYWNrYWdlcy90ZXN0cy90ZXN0 X3BhY2thZ2VfZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3BhY2thZ2VzL3Rlc3RzL3Rlc3RfcGFja2FnZV9k ZWxldGUucHkKQEAgLTksODcgKzksNzEgQEAKIAogaW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5dGVz dAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1 dGlscyBhcyBzY2hlbWFfdXRpbHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMu c2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKLSAgICBkYXRhYmFzZV91 dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVyX3V0 aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1m cm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51dGls cy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbgogZnJvbSByZWdy ZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9t IC4gaW1wb3J0IHV0aWxzIGFzIHBhY2thZ2VfdXRpbHMKIAogCi1jbGFzcyBQYWNrYWdlRGVsZXRl VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgZGVs ZXRlIG5ldyBwYWNrYWdlIHVuZGVyIHRlc3Qgc2NoZW1hLiAiIiIKLSAgICBza2lwX29uX2RhdGFi YXNlID0gWydncGRiJ10KLQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBk ZWZhdWx0IFVSTCBmb3IgcGFja2FnZSBub2RlLgotICAgICAgICAoJ0ZldGNoIFBhY2thZ2UgTm9k ZSBVUkwnLCBkaWN0KAotICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9wYWNrYWdlL29iai8nKSkK LSAgICBdCi0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHN1cGVyKFBhY2thZ2VEZWxl dGVUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9u b2RlX2RpY3RbInNjaGVtYSJdWy0xXQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9p bmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9b InNjaGVtYV9uYW1lIl0KLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsi ZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzZWxmLnBrZ19uYW1lID0gInBrZ18l cyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCi0gICAgICAgIHNlbGYucHJvY19uYW1lID0gInBy b2NfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9 IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2lu Zm9bImRiX2lkIl0KLSAgICAgICAgc2VydmVyX2NvbiA9IHNlcnZlcl91dGlscy5jb25uZWN0X3Nl cnZlcihzZWxmLCBzZWxmLnNlcnZlcl9pZCkKLQotICAgICAgICBpZiBzZXJ2ZXJfY29uOgotICAg ICAgICAgICAgaWYgInR5cGUiIGluIHNlcnZlcl9jb25bImRhdGEiXToKLSAgICAgICAgICAgICAg ICBpZiBzZXJ2ZXJfY29uWyJkYXRhIl1bInR5cGUiXSA9PSAicGciOgotICAgICAgICAgICAgICAg ICAgICBtZXNzYWdlID0gIlBhY2thZ2VzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IFBHLiIKLSAgICAg ICAgICAgICAgICAgICAgc2VsZi5za2lwVGVzdChtZXNzYWdlKQorQHB5dGVzdC5tYXJrLnNraXBf ZGF0YWJhc2VzKFsnZ3BkYicsICdwZyddKQorY2xhc3MgVGVzdFBhY2thZ2VEZWxldGU6CisgICAg QHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCdyZXF1aXJlX2RhdGFiYXNlX2Nvbm5lY3Rpb24nKQor ICAgIGRlZiB0ZXN0X3BhY2thZ2VfZGVsZXRlKHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAg ICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgcGFja2FnZSBERUxFVEUgcmVxdWVzdCBpcyBzZW5k IHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAi IiIKIAotICAgICAgICBzZWxmLnBhY2thZ2VfaWQgPSBwYWNrYWdlX3V0aWxzLmNyZWF0ZV9wYWNr YWdlKHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGtnX25h bWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5wcm9jX25hbWUpCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9wYWNrYWdlL29iai8n CiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2ls bCBkZWxldGUgcGFja2FnZSB1bmRlciB0ZXN0IHNjaGVtYS4gIiIiCisgICAgICAgIHRlc3RlciA9 IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VydmVyID0gY29udGV4 dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VydmVyX2RhdGEgPSBjb250ZXh0X29mX3Rl c3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQorICAgICAgICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0 YVsnc2VydmVyX2lkJ10KKyAgICAgICAgZGJfaWQgPSBzZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAg ICAgICBkYl9uYW1lID0gc2VydmVyX2RhdGFbJ2RiX25hbWUnXQogCi0gICAgICAgIGRiX2NvbiA9 IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJf aWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5kYl9pZCkKKyAgICAgICAgc2NoZW1hX25hbWUgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX25hbWUn XQorICAgICAgICBzY2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX2lkJ10KIAotICAgICAg ICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgotICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQot Ci0gICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhz ZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIHNjaGVtYV9y ZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZXJ2ZXIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1h X25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CiAgICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEuIikKIAotICAgICAgICBwYWNr YWdlX3Jlc3BvbnNlID0gcGFja2FnZV91dGlscy52ZXJpZnlfcGFja2FnZShzZWxmLnNlcnZlciwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBwa2dfbmFtZSA9ICJwa2df JXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo0XQorICAgICAgICBwcm9jX25hbWUgPSAicHJvY18l cyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjRdCisgICAgICAgIHBhY2thZ2VfaWQgPSBwYWNrYWdl X3V0aWxzLmNyZWF0ZV9wYWNrYWdlKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBrZ19uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jX25hbWUpCisKKyAgICAg ICAgcGFja2FnZV9yZXNwb25zZSA9IHBhY2thZ2VfdXRpbHMudmVyaWZ5X3BhY2thZ2Uoc2VydmVy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzY2hlbWFfbmFtZSkKIAogICAgICAgICBpZiBub3QgcGFja2FnZV9yZXNwb25z ZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHBhY2th Z2UuIikKIAotICAgICAgICBkZWxldGVfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoCi0g ICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKLSAg ICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKwotICAgICAgICAgICAgc3RyKHNl bGYuZGJfaWQpICsgJy8nICsKLSAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycg KwotICAgICAgICAgICAgc3RyKHNlbGYucGFja2FnZV9pZCksCisgICAgICAgIHJlc3BvbnNlID0g dGVzdGVyLmRlbGV0ZSgKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVAp ICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAg IHN0cihkYl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNjaGVtYV9pZCkgKyAnLycgKwor ICAgICAgICAgICAgc3RyKHBhY2thZ2VfaWQpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0 cz1UcnVlKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGRlbGV0ZV9yZXNwb25zZS5zdGF0 dXNfY29kZSwgMjAwKQotCi0gICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJUaGlz IGZ1bmN0aW9uIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2UuIiIiCi0KLSAgICAgICAgZGF0 YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorICAg ICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAg ICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisg ICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2luZm8nKSA+IHNob3VsZC5i ZS5lcXVhbC50bygKKyAgICAgICAgICAgICdQYWNrYWdlIGRyb3BwZWQnKQorICAgICAgICBqc29u X3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdlcnJvcm1zZycpID4gc2hvdWxkLmJlLmVtcHR5 CisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2RhdGEnKQorICAgICAg ICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdyZXN1bHQnKSA+IHNob3VsZC5iZS5u b25lCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3N1Y2Nlc3MnKSA+ IHNob3VsZC5iZS5lcXVhbC50bygxKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvcGFja2FnZXMvdGVzdHMvdGVz dF9wYWNrYWdlX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3BhY2thZ2VzL3Rlc3RzL3Rlc3RfcGFja2FnZV9nZXQucHkK aW5kZXggMWM0ZTFiZjAuLjdhNmFiNGIyIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9wYWNrYWdlcy90ZXN0cy90 ZXN0X3BhY2thZ2VfZ2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3BhY2thZ2VzL3Rlc3RzL3Rlc3RfcGFja2FnZV9n ZXQucHkKQEAgLTksODAgKzksNjEgQEAKIAogaW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5dGVzdAor ZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJf Z3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGls cyBhcyBzY2hlbWFfdXRpbHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2Vy dmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKLSAgICBkYXRhYmFzZV91dGls cwotZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVyX3V0aWxz Ci1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9t IHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51dGlscy50 ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbgogZnJvbSByZWdyZXNz aW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4g aW1wb3J0IHV0aWxzIGFzIHBhY2thZ2VfdXRpbHMKIAogCi1jbGFzcyBQYWNrYWdlR2V0VGVzdENh c2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggbmV3 IHBhY2thZ2UgdW5kZXIgdGVzdCBzY2hlbWEuICIiIgotICAgIHNraXBfb25fZGF0YWJhc2UgPSBb J2dwZGInXQotCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQg VVJMIGZvciBwYWNrYWdlIG5vZGUuCi0gICAgICAgICgnRmV0Y2ggUGFja2FnZSBOb2RlIFVSTCcs IGRpY3QoCi0gICAgICAgICAgICB1cmw9Jy9icm93c2VyL3BhY2thZ2Uvb2JqLycpKQotICAgIF0K LQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc3VwZXIoUGFja2FnZUdldFRlc3RDYXNl LCBzZWxmKS5zZXRVcCgpCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsi c2NoZW1hIl1bLTFdCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVt YV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25h bWUiXQotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJd Wy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNlbGYucGtnX25hbWUgPSAicGtnXyVzIiAlIHN0cih1 dWlkLnV1aWQ0KCkpWzE6OF0KLSAgICAgICAgc2VsZi5wcm9jX25hbWUgPSAicHJvY18lcyIgJSBz dHIodXVpZC51dWlkNCgpKVsxOjhdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2lu Zm9bInNlcnZlcl9pZCJdCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQi XQotICAgICAgICBzZXJ2ZXJfY29uID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYs IHNlbGYuc2VydmVyX2lkKQotCi0gICAgICAgIGlmIHNlcnZlcl9jb246Ci0gICAgICAgICAgICBp ZiAidHlwZSIgaW4gc2VydmVyX2NvblsiZGF0YSJdOgotICAgICAgICAgICAgICAgIGlmIHNlcnZl cl9jb25bImRhdGEiXVsidHlwZSJdID09ICJwZyI6Ci0gICAgICAgICAgICAgICAgICAgIG1lc3Nh Z2UgPSAiUGFja2FnZXMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgUEcuIgotICAgICAgICAgICAgICAg ICAgICBzZWxmLnNraXBUZXN0KG1lc3NhZ2UpCi0KLSAgICAgICAgc2VsZi5wYWNrYWdlX2lkID0g cGFja2FnZV91dGlscy5jcmVhdGVfcGFja2FnZShzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnBrZ19uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJvY19uYW1lKQotCi0gICAgZGVmIHJ1 blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggcGFja2Fn ZSB1bmRlciB0ZXN0IHNjaGVtYS4gIiIiCi0KLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRp bHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQotCi0g ICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6Ci0g ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNl LiIpCi0KLSAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hl bWFzKHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKK0BweXRlc3QubWFy ay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInLCAncGcnXSkKK2NsYXNzIFRlc3RQYWNrYWdlR2V0Ogor ICAgIEBweXRlc3QubWFyay51c2VmaXh0dXJlcygncmVxdWlyZV9kYXRhYmFzZV9jb25uZWN0aW9u JykKKyAgICBkZWYgdGVzdF9wYWNrYWdlX2dldChzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAg ICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIHBhY2thZ2UgR0VUIHJlcXVlc3QgaXMgc2VuZCB0 byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIi CisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9wYWNrYWdlL29iai8nCisKKyAgICAgICAgdGVzdGVy ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZXJ2ZXIgPSBjb250 ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZXJ2ZXJfZGF0YSA9IGNvbnRleHRfb2Zf dGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddCisgICAgICAgIHNlcnZlcl9pZCA9IHNlcnZlcl9k YXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBkYl9pZCA9IHNlcnZlcl9kYXRhWydkYl9pZCddCisg ICAgICAgIGRiX25hbWUgPSBzZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisKKyAgICAgICAgc2NoZW1h X25hbWUgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX25hbWUnXQorICAgICAgICBzY2hlbWFfaWQgPSBz ZXJ2ZXJfZGF0YVsnc2NoZW1hX2lkJ10KKworICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hl bWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQogICAgICAg ICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgZmluZCB0aGUgc2NoZW1hLiIpCiAKLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRl c3Rlci5nZXQoc2VsZi51cmwgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYucGFja2FnZV9pZCksCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKLQot ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotCi0g ICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRpc2Nvbm5l Y3QgdGhlIHRlc3QgZGF0YWJhc2UuIiIiCi0KLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29u bmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICBwa2dfbmFtZSA9ICJw a2dfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo0XQorICAgICAgICBwcm9jX25hbWUgPSAicHJv Y18lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjRdCisgICAgICAgIHBhY2thZ2VfaWQgPSBwYWNr YWdlX3V0aWxzLmNyZWF0ZV9wYWNrYWdlKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBrZ19uYW1lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jX25hbWUpCisKKyAg ICAgICAgcmVzcG9uc2UgPSB0ZXN0ZXIuZ2V0KAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxz LlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycg KworICAgICAgICAgICAgc3RyKGRiX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2NoZW1h X2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIocGFja2FnZV9pZCksCisgICAgICAgICAgICBj b250ZW50X3R5cGU9J2h0bWwvanNvbicKKyAgICAgICAgKQorCisgICAgICAgIHJlc3BvbnNlLnN0 YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25z ZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAganNvbl9yZXNw b25zZSB8IHNob3VsZC5oYXZlLmtleSgnb2lkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNo b3VsZC5oYXZlLmtleSgnbmFtZScpID4gXAorICAgICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRv KHBrZ19uYW1lKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvcGFja2FnZXMvdGVzdHMvdGVzdF9wYWNrYWdlX3B1 dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3BhY2thZ2VzL3Rlc3RzL3Rlc3RfcGFja2FnZV9wdXQucHkKaW5kZXggNWU1OTU0 N2MuLjc2YmIxOTYxIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9wYWNrYWdlcy90ZXN0cy90ZXN0X3BhY2thZ2Vf cHV0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3BhY2thZ2VzL3Rlc3RzL3Rlc3RfcGFja2FnZV9wdXQucHkKQEAgLTEw LDkyICsxMCw4MSBAQAogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QK K2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVy X2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRp bHMgYXMgc2NoZW1hX3V0aWxzCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl cnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCi0gICAgZGF0YWJhc2VfdXRp bHMKLWZyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGls cwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJv bSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHBnYWRtaW4udXRpbHMu dGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3Nl cnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0 X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFz IHBhY2thZ2VfdXRpbHMKIAogCi1jbGFzcyBQYWNrYWdlUHV0VGVzdENhc2UoQmFzZVRlc3RHZW5l cmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgdXBkYXRlIG5ldyBwYWNrYWdlIHVuZGVy IHRlc3Qgc2NoZW1hLiAiIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLSAgICBz Y2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHBhY2thZ2Ug bm9kZS4KLSAgICAgICAgKCdGZXRjaCBQYWNrYWdlIE5vZGUgVVJMJywgZGljdCgKLSAgICAgICAg ICAgIHVybD0nL2Jyb3dzZXIvcGFja2FnZS9vYmovJykpCi0gICAgXQotCi0gICAgZGVmIHNldFVw KHNlbGYpOgotICAgICAgICBzdXBlcihQYWNrYWdlUHV0VGVzdENhc2UsIHNlbGYpLnNldFVwKCkK LSAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAg ICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAg c2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNl bGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0K LSAgICAgICAgc2VsZi5wa2dfbmFtZSA9ICJwa2dfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4 XQotICAgICAgICBzZWxmLnByb2NfbmFtZSA9ICJwcm9jXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkp WzE6OF0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0K LSAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIHNlcnZl cl9jb24gPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQp Ci0KLSAgICAgICAgaWYgc2VydmVyX2NvbjoKLSAgICAgICAgICAgIGlmICJ0eXBlIiBpbiBzZXJ2 ZXJfY29uWyJkYXRhIl06Ci0gICAgICAgICAgICAgICAgaWYgc2VydmVyX2NvblsiZGF0YSJdWyJ0 eXBlIl0gPT0gInBnIjoKLSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJQYWNrYWdlcyBh cmUgbm90IHN1cHBvcnRlZCBieSBQRy4iCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuc2tpcFRl c3QobWVzc2FnZSkKLQotICAgICAgICBzZWxmLnBhY2thZ2VfaWQgPSBwYWNrYWdlX3V0aWxzLmNy ZWF0ZV9wYWNrYWdlKHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYucGtnX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5wcm9jX25hbWUpCitAcHl0ZXN0Lm1hcmsuc2tpcF9kYXRhYmFzZXMo WydncGRiJywgJ3BnJ10pCitjbGFzcyBUZXN0UGFja2FnZVB1dDoKKyAgICBAcHl0ZXN0Lm1hcmsu dXNlZml4dHVyZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlvbicpCisgICAgZGVmIHRlc3Rf cGFja2FnZV9wdXQoc2VsZiwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAg ICBXaGVuIHRoZSBwYWNrYWdlIFBVVCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAg ICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgogCi0gICAgZGVmIHJ1blRl c3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHBhY2thZ2Ug dW5kZXIgdGVzdCBzY2hlbWEuICIiIgorICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvcGFja2FnZS9v YmovJwogCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uo c2VsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAgaHR0cF9jbGllbnQgPSBj b250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRf b2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlcnZlcl9kYXRhID0gY29udGV4dF9vZl90ZXN0 c1snc2VydmVyX2luZm9ybWF0aW9uJ10KKyAgICAgICAgc2VydmVyX2lkID0gc2VydmVyX2RhdGFb J3NlcnZlcl9pZCddCisgICAgICAgIGRiX2lkID0gc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAg ICAgZGJfbmFtZSA9IHNlcnZlcl9kYXRhWydkYl9uYW1lJ10KIAotICAgICAgICBpZiBub3QgZGJf Y29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgotICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQorICAgICAgICBzY2hl bWFfbmFtZSA9IHNlcnZlcl9kYXRhWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNjaGVtYV9pZCA9 IHNlcnZlcl9kYXRhWydzY2hlbWFfaWQnXQogCi0gICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNj aGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2No ZW1hX25hbWUpCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlf c2NoZW1hcyhzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFf cmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRo ZSBzY2hlbWEuIikKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQg dGhlIHNjaGVtYS4nKQogCi0gICAgICAgIHBhY2thZ2VfcmVzcG9uc2UgPSBwYWNrYWdlX3V0aWxz LnZlcmlmeV9wYWNrYWdlKHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25h bWUpCisgICAgICAgIHBrZ19uYW1lID0gJ3BrZ18lcycgJSBzdHIodXVpZC51dWlkNCgpKVsxOjRd CisgICAgICAgIHByb2NfbmFtZSA9ICdwcm9jXyVzJyAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6NF0K KyAgICAgICAgcGFja2FnZV9pZCA9IHBhY2thZ2VfdXRpbHMuY3JlYXRlX3BhY2thZ2UoCisgICAg ICAgICAgICBzZXJ2ZXIsCisgICAgICAgICAgICBkYl9uYW1lLAorICAgICAgICAgICAgc2NoZW1h X25hbWUsCisgICAgICAgICAgICBwa2dfbmFtZSwKKyAgICAgICAgICAgIHByb2NfbmFtZSkKKwor ICAgICAgICBwYWNrYWdlX3Jlc3BvbnNlID0gcGFja2FnZV91dGlscy52ZXJpZnlfcGFja2FnZShz ZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQogCiAgICAgICAgIGlmIG5vdCBwYWNrYWdlX3Jl c3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUg cGFja2FnZS4iKQorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCB0 aGUgcGFja2FnZS4nKQogCiAgICAgICAgIGRhdGEgPSB7Ci0gICAgICAgICAgICAiZGVzY3JpcHRp b24iOiAiVGhpcyBpcyBGVFMgdGVtcGxhdGUgdXBkYXRlIGNvbW1lbnQiLAotICAgICAgICAgICAg ImlkIjogc2VsZi5wYWNrYWdlX2lkCisgICAgICAgICAgICAnZGVzY3JpcHRpb24nOiAnVGhpcyBp cyBGVFMgdGVtcGxhdGUgdXBkYXRlIGNvbW1lbnQnLAorICAgICAgICAgICAgJ2lkJzogcGFja2Fn ZV9pZAogICAgICAgICB9CiAKLSAgICAgICAgcHV0X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0 KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyAr Ci0gICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKLSAgICAgICAgICAgIHN0 cihzZWxmLmRiX2lkKSArICcvJyArCi0gICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsg Jy8nICsKLSAgICAgICAgICAgIHN0cihzZWxmLnBhY2thZ2VfaWQpLAorICAgICAgICByZXNwb25z ZSA9IGh0dHBfY2xpZW50LnB1dCgKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJf R1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAg ICAgICAgIHN0cihkYl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNjaGVtYV9pZCkgKyAn LycgKworICAgICAgICAgICAgc3RyKHBhY2thZ2VfaWQpLAogICAgICAgICAgICAgZGF0YT1qc29u LmR1bXBzKGRhdGEpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQogCi0gICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHB1dF9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotCi0g ICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRpc2Nvbm5l Y3QgdGhlIHRlc3QgZGF0YWJhc2UuIiIiCi0KLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29u bmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICByZXNwb25zZS5zdGF0 dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2Ug PSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGFzc2VydF9qc29u X3ZhbHVlc19mcm9tX3Jlc3BvbnNlKAorICAgICAgICAgICAganNvbl9yZXNwb25zZSwKKyAgICAg ICAgICAgICdwYWNrYWdlJywKKyAgICAgICAgICAgICdwZ2FkbWluLm5vZGUucGFja2FnZScsCisg ICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgICdpY29uLXBhY2thZ2UnLAorICAgICAgICAg ICAgcGtnX25hbWUKKyAgICAgICAgKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvc2VxdWVuY2VzL3Rlc3RzL19f aW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvc2VxdWVuY2VzL3Rlc3RzL19faW5pdF9fLnB5CmluZGV4IDZhYjhjN2Vm Li41OTAwMjZhZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvc2VxdWVuY2VzL3Rlc3RzL19faW5pdF9fLnB5Cisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3NlcXVlbmNlcy90ZXN0cy9fX2luaXRfXy5weQpAQCAtNiwxMCArNiwzIEBACiAjIFRo aXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQogIwog IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKLQotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNl VGVzdEdlbmVyYXRvcgotCi0KLWNsYXNzIFNlcXVlbmNlVGVzdEdlbmVyYXRvcihCYXNlVGVzdEdl bmVyYXRvcik6Ci0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgIHJldHVybiBbXQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvc2VxdWVuY2VzL3Rlc3RzL3Rlc3Rfc2VxdWVuY2VfYWRkLnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvc2Vx dWVuY2VzL3Rlc3RzL3Rlc3Rfc2VxdWVuY2VfYWRkLnB5CmluZGV4IGQ1ODAxNTlkLi5lOWE4Nzgx NyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvc2VxdWVuY2VzL3Rlc3RzL3Rlc3Rfc2VxdWVuY2VfYWRkLnB5Cisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3NlcXVlbmNlcy90ZXN0cy90ZXN0X3NlcXVlbmNlX2FkZC5weQpAQCAtMTAsNzkgKzEw LDY2IEBACiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBn cmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBz Y2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAgICBkYXRhYmFzZV91dGlscwotZnJv bSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2Fk bWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitm cm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3Rv X2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSByZWdy ZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rl c3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIAogCi1jbGFzcyBTZXF1ZW5jZUFk ZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFk ZCBuZXcgc2VxdWVuY2UocykgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgotICAgIHNraXBfb25fZGF0 YWJhc2UgPSBbJ2dwZGInXQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBk ZWZhdWx0IFVSTCBmb3Igc2VxdWVuY2Ugbm9kZS4KLSAgICAgICAgKAotICAgICAgICAgICAgJ0Zl dGNoIHNlcXVlbmNlIE5vZGUgVVJMICh2YWxpZCBvcHRpb25hbCBkYXRhKScsCi0gICAgICAgICAg ICBkaWN0KAotICAgICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvc2VxdWVuY2Uvb2JqLycsCi0g ICAgICAgICAgICAgICAgIyBWYWxpZCBvcHRpb25hbCBkYXRhCi0gICAgICAgICAgICAgICAgZGF0 YT17Ci0gICAgICAgICAgICAgICAgICAgICJjYWNoZSI6ICIxIiwKLSAgICAgICAgICAgICAgICAg ICAgImN5Y2xlZCI6IFRydWUsCi0gICAgICAgICAgICAgICAgICAgICJpbmNyZW1lbnQiOiAiMSIs Ci0gICAgICAgICAgICAgICAgICAgICJtYXhpbXVtIjogIjEwMDAwMCIsCi0gICAgICAgICAgICAg ICAgICAgICJtaW5pbXVtIjogIjEiLAotICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJ0ZXN0 X3NlcXVlbmNlX2FkZF8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSksCi0gICAgICAgICAg ICAgICAgICAgICJzZWN1cml0aWVzIjogW10sCi0gICAgICAgICAgICAgICAgICAgICJzdGFydCI6 ICIxMDAiCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgKQotICAgICAgICApLAotICAg ICAgICAoCi0gICAgICAgICAgICAnRmV0Y2ggc2VxdWVuY2UgTm9kZSBVUkwgKGludmFsaWQgb3B0 aW9uYWwgZGF0YSknLAotICAgICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICAgICB1cmw9Jy9i cm93c2VyL3NlcXVlbmNlL29iai8nLAotICAgICAgICAgICAgICAgICMgT3B0aW9uYWwgZmllbGRz IHNob3VsZCBiZSBpbnQgYnV0IHdlIGFyZSBwYXNzaW5nIGVtcHR5IHN0cgotICAgICAgICAgICAg ICAgIGRhdGE9ewotICAgICAgICAgICAgICAgICAgICAiY2FjaGUiOiAiIiwKLSAgICAgICAgICAg ICAgICAgICAgImN5Y2xlZCI6IEZhbHNlLAotICAgICAgICAgICAgICAgICAgICAiaW5jcmVtZW50 IjogIiIsCi0gICAgICAgICAgICAgICAgICAgICJtYXhpbXVtIjogIiIsCi0gICAgICAgICAgICAg ICAgICAgICJtaW5pbXVtIjogIiIsCi0gICAgICAgICAgICAgICAgICAgICJuYW1lIjogInRlc3Rf c2VxdWVuY2VfYWRkXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKSwKLSAgICAgICAgICAg ICAgICAgICAgInNlY3VyaXRpZXMiOiBbXSwKLSAgICAgICAgICAgICAgICAgICAgInN0YXJ0Ijog IiIKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICApCi0gICAgICAgICkKLSAgICBdCi0K LSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHN1cGVyKFNlcXVlbmNlQWRkVGVzdENhc2Us IHNlbGYpLnNldFVwKCkKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlz IGZ1bmN0aW9uIHdpbGwgYWRkIHNlcXVlbmNlKHMpIHVuZGVyIHNjaGVtYSBub2RlLiIiIgotICAg ICAgICBkYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUi XQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQot ICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAg ICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgZGJfY29uID0gZGF0 YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVj dGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRv IGRhdGFiYXNlIHRvIGFkZCBzZXF1ZW5jZS4iKQotICAgICAgICBzY2hlbWFfaWQgPSBzY2hlbWFf aW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2No ZW1hX25hbWUiXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsnZ3BkYiddKQorY2xhc3Mg VGVzdFNlcXVlbmNlQWRkOgorICAgIGRlZiB0ZXN0X3NlcXVlbmNlX2FkZChzZWxmLCByZXF1ZXN0 LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIHNlcXVl bmNlIGFkZCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJu cyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihz ZWxmLnRlYXJEb3duKQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9zZXF1ZW5jZS9vYmovJwor CisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQor ICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAg IHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRhYmFzZSddWy0xXQorICAg ICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAg ICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIHNlbGYu ZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorCisgICAgICAgIHNlbGYuc2No ZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KKyAgICAgICAgc2VsZi5z Y2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2Vs Zi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfaWQnXQorCisgICAgICAgIGRi X2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFz ZSBjb25uZWN0ZWQuIjoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNv bm5lY3QgdG8gZGF0YWJhc2UuIikKKwogICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFf dXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRi X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgot ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRv IGFkZCBzZXF1ZW5jZS4iKQotICAgICAgICBkYl91c2VyID0gc2VsZi5zZXJ2ZXJbInVzZXJuYW1l Il0KKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVt YS4iKQogCi0gICAgICAgIGNvbW1vbl9kYXRhID0geworICAgICAgICBzZXF1ZW5jZV9uYW1lID0g InRlc3Rfc2VxdWVuY2VfYWRkXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAg ICBkYl91c2VyID0gc2VsZi5zZXJ2ZXJbInVzZXJuYW1lIl0KKyAgICAgICAgZGF0YSA9IHsKKyAg ICAgICAgICAgICJjYWNoZSI6ICIxIiwKKyAgICAgICAgICAgICJjeWNsZWQiOiBUcnVlLAorICAg ICAgICAgICAgImluY3JlbWVudCI6ICIxIiwKKyAgICAgICAgICAgICJtYXhpbXVtIjogIjEwMDAw MCIsCisgICAgICAgICAgICAibWluaW11bSI6ICIxIiwKKyAgICAgICAgICAgICJuYW1lIjogc2Vx dWVuY2VfbmFtZSwKKyAgICAgICAgICAgICJzZWN1cml0aWVzIjogW10sCisgICAgICAgICAgICAi c3RhcnQiOiAiMTAwIiwKICAgICAgICAgICAgICJyZWxhY2wiOiBbCiAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAiZ3JhbnRlZSI6IGRiX3VzZXIsCkBAIC0xMDcsMjAgKzk0 LDEyMCBAQCBjbGFzcyBTZXF1ZW5jZUFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAg ICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICBd LAotICAgICAgICAgICAgInNjaGVtYSI6IHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgInNjaGVt YSI6IHNlbGYuc2NoZW1hX25hbWUsCiAgICAgICAgICAgICAic2Vxb3duZXIiOiBkYl91c2VyLAog ICAgICAgICB9Ci0KLSAgICAgICAgc2VsZi5kYXRhLnVwZGF0ZShjb21tb25fZGF0YSkKLQogICAg ICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCi0gICAgICAgICAgICBzZWxmLnVybCAr IHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKLSAgICAgICAgICAgIHN0cihzZWxmLnNl cnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKwotICAgICAgICAgICAgJy8nICsgc3Ry KHNjaGVtYV9pZCkgKyAnLycsCi0gICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoc2VsZi5kYXRh KSwKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAg ICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNl bGYuZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycs CisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBjb250ZW50 X3R5cGU9J2h0bWwvanNvbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0 YXR1c19jb2RlLCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQu YmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25z ZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNw b25zZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAnc2VxdWVuY2Un LAorICAgICAgICAgICAgJ3BnYWRtaW4ubm9kZS5zZXF1ZW5jZScsCisgICAgICAgICAgICBGYWxz ZSwKKyAgICAgICAgICAgICdpY29uLXNlcXVlbmNlJywKKyAgICAgICAgICAgIHNlcXVlbmNlX25h bWUKKyAgICAgICAgKQorCisgICAgZGVmIHRlc3Rfc2VxdWVuY2VfYWRkX2ludmFsaWQoc2VsZiwg cmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAg IFdoZW4gdGhlIHNlcXVlbmNlIGFkZCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAg ICAgICAgICAgIFdpdGggaW52YWxpZCBvcHRpb25zCisgICAgICAgICAgICBJdCByZXR1cm5zIDIw MCBzdGF0dXMKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6 ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICAgICAgdXJsID0gJy9icm93c2VyL3NlcXVlbmNl L29iai8nCisKKyAgICAgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVz dF9jbGllbnQnXQorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydz ZXJ2ZXInXQorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3Rb J2RhdGFiYXNlJ11bLTFdCisgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVy X2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJf ZGF0YVsnZGJfaWQnXQorICAgICAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0 YVsnZGJfbmFtZSddCisKKyAgICAgICAgICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9k ZV9kaWN0WydzY2hlbWEnXVstMV0KKyAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxm LnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAgICAgICAgICBzZWxmLnNjaGVtYV9pZCA9 IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9pZCddCisKKyAgICAgICAgICAgIGRiX2NvbiA9IGRh dGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNl cnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAi RGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQorCisgICAgICAgICAgICBzY2hlbWFfcmVz cG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5k Yl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgICAgICBpZiBub3Qgc2NoZW1hX3Jl c3BvbnNlOgorICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQg dGhlIHNjaGVtYS4iKQorCisgICAgICAgICAgICBzZXF1ZW5jZV9uYW1lID0gInRlc3Rfc2VxdWVu Y2VfYWRkXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICAgICAgZGJfdXNl ciA9IHNlbGYuc2VydmVyWyJ1c2VybmFtZSJdCisgICAgICAgICAgICAjIE9wdGlvbmFsIGZpZWxk cyBzaG91bGQgYmUgaW50IGJ1dCB3ZSBhcmUgcGFzc2luZyBlbXB0eSBzdHIKKyAgICAgICAgICAg IGRhdGEgPSB7CisgICAgICAgICAgICAgICAgImNhY2hlIjogIiIsCisgICAgICAgICAgICAgICAg ImN5Y2xlZCI6IEZhbHNlLAorICAgICAgICAgICAgICAgICJpbmNyZW1lbnQiOiAiIiwKKyAgICAg ICAgICAgICAgICAibWF4aW11bSI6ICIiLAorICAgICAgICAgICAgICAgICJtaW5pbXVtIjogIiIs CisgICAgICAgICAgICAgICAgIm5hbWUiOiBzZXF1ZW5jZV9uYW1lLAorICAgICAgICAgICAgICAg ICJzZWN1cml0aWVzIjogW10sCisgICAgICAgICAgICAgICAgInN0YXJ0IjogIiIsCisgICAgICAg ICAgICAgICAgInJlbGFjbCI6IFsKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgICAgICAgICAgImdyYW50ZWUiOiBkYl91c2VyLAorICAgICAgICAgICAgICAgICAgICAgICAg ImdyYW50b3IiOiBkYl91c2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgInByaXZpbGVnZXMi OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByaXZpbGVn ZV90eXBlIjogInIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByaXZp bGVnZSI6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2l0aF9n cmFudCI6IFRydWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgInByaXZpbGVnZV90eXBlIjogInciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgInByaXZpbGVnZSI6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAid2l0aF9ncmFudCI6IEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJwcml2aWxlZ2VfdHlwZSI6ICJVIiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJwcml2aWxlZ2UiOiBUcnVlLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIndpdGhfZ3JhbnQiOiBGYWxzZQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQorICAg ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAi c2NoZW1hIjogc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAic2Vxb3duZXIiOiBk Yl91c2VyLAorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5wb3N0KAorICAgICAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsg Jy8nICsKKyAgICAgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAg ICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAgICAgICAgICAgICAgIHN0cihz ZWxmLnNjaGVtYV9pZCkgKyAnLycsCisgICAgICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRh dGEpLAorICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAgICAg ICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAg ICAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25z ZSkKKyAgICAgICAgICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlKAorICAgICAg ICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAgICAgJ3NlcXVlbmNlJywKKyAg ICAgICAgICAgICAgICAncGdhZG1pbi5ub2RlLnNlcXVlbmNlJywKKyAgICAgICAgICAgICAgICBG YWxzZSwKKyAgICAgICAgICAgICAgICAnaWNvbi1zZXF1ZW5jZScsCisgICAgICAgICAgICAgICAg c2VxdWVuY2VfbmFtZQorICAgICAgICAgICAgKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgot ICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxz LmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisg ICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVz dGVyLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3NlcXVlbmNlcy90ZXN0 cy90ZXN0X3NlcXVlbmNlX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3NlcXVlbmNlcy90ZXN0cy90ZXN0X3NlcXVl bmNlX2RlbGV0ZS5weQppbmRleCBhMTFjNWJlNS4uZjMzZjE4YzMgMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Nl cXVlbmNlcy90ZXN0cy90ZXN0X3NlcXVlbmNlX2RlbGV0ZS5weQorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9zZXF1ZW5jZXMv dGVzdHMvdGVzdF9zZXF1ZW5jZV9kZWxldGUucHkKQEAgLTksNjEgKzksODUgQEAKIAogaW1wb3J0 IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMu dGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5i cm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxz IGFzIFwKICAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0 b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVs cGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24KIGZyb20gcmVncmVzc2lvbiBpbXBv cnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGlt cG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHNlcXVlbmNl X3V0aWxzCiAKIAotY2xhc3MgU2VxdWVuY2VEZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRv cik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSBhZGRlZCBzZXF1ZW5jZSB1bmRlciBz Y2hlbWEgbm9kZS4iIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLSAgICBzY2Vu YXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHNlcXVlbmNlIG5v ZGUuCi0gICAgICAgICgnRmV0Y2ggc2VxdWVuY2UgTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dz ZXIvc2VxdWVuY2Uvb2JqLycpKQotICAgIF0KK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhb J2dwZGInXSkKK2NsYXNzIFRlc3RTZXF1ZW5jZURlbGV0ZToKKyAgICBkZWYgdGVzdF9zZXF1ZW5j ZV9kZWxldGUoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgor ICAgICAgICBXaGVuIHRoZSBzZXF1ZW5jZSBkZWxldGUgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBi YWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAg ICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAn L2Jyb3dzZXIvc2VxdWVuY2Uvb2JqLycKKworICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRf b2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29m X3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVf ZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZl cl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0 YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9u YW1lJ10KKworICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnc2No ZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydz Y2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1sn c2NoZW1hX2lkJ10KKworICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2Rh dGFiYXNlKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBk Yl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCiAKLSAgICBkZWYg c2V0VXAoc2VsZik6Ci0gICAgICAgIHN1cGVyKFNlcXVlbmNlRGVsZXRlVGVzdENhc2UsIHNlbGYp LnNldFVwKCkKLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJh c2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2Rp Y3RbInNjaGVtYSJdWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJz ZXJ2ZXJfaWQiXQotICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAg ICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGls cy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9j b25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNv dWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBzZXF1ZW5jZS4iKQotICAgICAgICBz ZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBzZWxmLnNj aGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KICAgICAgICAgc2NoZW1hX3Jl c3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9u YW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBh ZGQgc2VxdWVuY2UuIikKLSAgICAgICAgc2VsZi5zZXF1ZW5jZV9uYW1lID0gInRlc3Rfc2VxdWVu Y2VfZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KLSAgICAgICAgc2VsZi5zZXF1 ZW5jZV9pZCA9IHNlcXVlbmNlX3V0aWxzLmNyZWF0ZV9zZXF1ZW5jZXMoCi0gICAgICAgICAgICBz ZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBzZWxmLnNlcXVlbmNl X25hbWUpCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBz Y2hlbWEuIikKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5j dGlvbiB3aWxsIGRlbGV0ZSBhZGRlZCBzZXF1ZW5jZSB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCisg ICAgICAgIHNlcXVlbmNlX25hbWUgPSAidGVzdF9zZXF1ZW5jZV9kZWxldGVfJXMiICUgc3RyKHV1 aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBzZWxmLnNlcXVlbmNlX2lkID0gc2VxdWVuY2VfdXRp bHMuY3JlYXRlX3NlcXVlbmNlcygKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLAorICAgICAgICAg ICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAg ICAgIHNlcXVlbmNlX25hbWUKKyAgICAgICAgKQogICAgICAgICBzZXF1ZW5jZV9yZXNwb25zZSA9 IHNlcXVlbmNlX3V0aWxzLnZlcmlmeV9zZXF1ZW5jZShzZWxmLnNlcnZlciwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9u YW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNlcXVlbmNlX25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcXVlbmNlX25hbWUpCiAgICAgICAgIGlm IG5vdCBzZXF1ZW5jZV9yZXNwb25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291 bGQgbm90IGZpbmQgdGhlIHNlcXVlbmNlIHRvIGRlbGV0ZS4iKQorCiAgICAgICAgIHJlc3BvbnNl ID0gc2VsZi50ZXN0ZXIuZGVsZXRlKAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMu U0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVS X0dST1VQKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsK ICAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2Vs Zi5zY2hlbWFfaWQpICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLnNlcXVlbmNlX2lkKSwK ICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRF cXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKworICAgICAgICByZXNwb25zZS5zdGF0 dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2Ug PSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGpzb25fcmVzcG9u c2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2luZm8nKSA+IHNob3VsZC5iZS5lcXVhbC50bygKKyAgICAg ICAgICAgICdTZXF1ZW5jZSBkcm9wcGVkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3Vs ZC5oYXZlLmtleSgnZXJyb3Jtc2cnKSA+IHNob3VsZC5iZS5lbXB0eQorICAgICAgICBqc29uX3Jl c3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdkYXRhJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8 IHNob3VsZC5oYXZlLmtleSgncmVzdWx0JykgPiBzaG91bGQuYmUubm9uZQorICAgICAgICBqc29u X3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdzdWNjZXNzJykgPiBzaG91bGQuYmUuZXF1YWwu dG8oMSkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIyBEaXNjb25uZWN0IHRo ZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNl bGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5j bGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJf aWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9zZXF1ZW5jZXMvdGVzdHMvdGVzdF9zZXF1ZW5jZV9nZXQucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9zZXF1ZW5jZXMvdGVzdHMvdGVzdF9zZXF1ZW5jZV9nZXQucHkKaW5kZXggMTk5Y2EzN2Yu LjE0MjQ5NjJhIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9zZXF1ZW5jZXMvdGVzdHMvdGVzdF9zZXF1ZW5jZV9n ZXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvc2VxdWVuY2VzL3Rlc3RzL3Rlc3Rfc2VxdWVuY2VfZ2V0LnB5CkBAIC05 LDU2ICs5LDc3IEBACiAKIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBh IGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1h X3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJh c2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdh ZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51 dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBw Z2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29u CiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lv bi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGlt cG9ydCB1dGlscyBhcyBzZXF1ZW5jZV91dGlscwogCiAKLWNsYXNzIFNlcXVlbmNlR2V0VGVzdENh c2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBmZXRjaCBhZGRl ZCBzZXF1ZW5jZSB1bmRlciBzY2hlbWEgbm9kZS4iIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0g WydncGRiJ10KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBV UkwgZm9yIHNlcXVlbmNlIG5vZGUuCi0gICAgICAgICgnRmV0Y2ggc2VxdWVuY2UgTm9kZSBVUkwn LCBkaWN0KHVybD0nL2Jyb3dzZXIvc2VxdWVuY2Uvb2JqLycpKQotICAgIF0KK0BweXRlc3QubWFy ay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNzIFRlc3RTZXF1ZW5jZUdldDoKKyAgICBk ZWYgdGVzdF9zZXF1ZW5jZV9nZXQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6Cisg ICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBzZXF1ZW5jZSBnZXQgcmVxdWVzdCBpcyBzZW5k IHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAi IiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAg ICB1cmwgPSAnL2Jyb3dzZXIvc2VxdWVuY2Uvb2JqLycKKworICAgICAgICBzZWxmLnRlc3RlciA9 IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBj b250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFy ZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBz ZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5z ZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9k YXRhWydkYl9uYW1lJ10KKworICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVf ZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVt YV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hl bWFfaW5mb1snc2NoZW1hX2lkJ10KKworICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5j b25uZWN0X2RhdGFiYXNlKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAg IGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCiAK LSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHN1cGVyKFNlcXVlbmNlR2V0VGVzdENhc2Us IHNlbGYpLnNldFVwKCkKLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsi ZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9u b2RlX2RpY3RbInNjaGVtYSJdWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9p bmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lk Il0KLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxm LCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5v dCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRp b24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBzZXF1ZW5jZS4iKQotICAg ICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KICAgICAgICAgc2No ZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25z ZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVt YSB0byBhZGQgc2VxdWVuY2UuIikKLSAgICAgICAgc2VsZi5zZXF1ZW5jZV9uYW1lID0gInRlc3Rf c2VxdWVuY2VfZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgICAg IHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQorCisgICAgICAg IHNlcXVlbmNlX25hbWUgPSAidGVzdF9zZXF1ZW5jZV9kZWxldGVfJXMiICUgc3RyKHV1aWQudXVp ZDQoKSlbMTo4XQogICAgICAgICBzZWxmLnNlcXVlbmNlX2lkID0gc2VxdWVuY2VfdXRpbHMuY3Jl YXRlX3NlcXVlbmNlcygKLSAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNl bGYuc2NoZW1hX25hbWUsIHNlbGYuc2VxdWVuY2VfbmFtZSkKKyAgICAgICAgICAgIHNlbGYuc2Vy dmVyLAorICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgc2VsZi5zY2hlbWFf bmFtZSwKKyAgICAgICAgICAgIHNlcXVlbmNlX25hbWUKKyAgICAgICAgKQogCi0gICAgZGVmIHJ1 blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCBhZGRlZCBz ZXF1ZW5jZSB1bmRlciBzY2hlbWEgbm9kZS4iIiIKICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRl c3Rlci5nZXQoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVAp ICsgJy8nICsKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8n ICsKICAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKwogICAgICAgICAgICAg c3RyKHNlbGYuZGJfaWQpICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkg KyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2VxdWVuY2VfaWQpLAogICAgICAgICAgICAg Zm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25z ZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hv dWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVz cG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5o YXZlLmtleSgnb2lkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgn bmFtZScpID4gXAorICAgICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKHNlcXVlbmNlX25hbWUp CiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0 YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBz ZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50 X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvc2VxdWVuY2VzL3Rlc3RzL3Rlc3Rfc2VxdWVuY2VfcHV0LnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv c2VxdWVuY2VzL3Rlc3RzL3Rlc3Rfc2VxdWVuY2VfcHV0LnB5CmluZGV4IDZmNTYzYWQ2Li40ZmY2 YWVjNyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvc2VxdWVuY2VzL3Rlc3RzL3Rlc3Rfc2VxdWVuY2VfcHV0LnB5 CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3NlcXVlbmNlcy90ZXN0cy90ZXN0X3NlcXVlbmNlX3B1dC5weQpAQCAtMTAsNjYg KzEwLDk0IEBACiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJv bSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBh cyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy cy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAgICBkYXRhYmFzZV91dGlscwot ZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBw Z2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y Citmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNl X3RvX2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSBy ZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9u X3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRp bHMgYXMgc2VxdWVuY2VfdXRpbHMKIAogCi1jbGFzcyBTZXF1ZW5jZVB1dFRlc3RDYXNlKEJhc2VU ZXN0R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgdXBkYXRlIGFkZGVkIHNlcXVl bmNlIHVuZGVyIHNjaGVtYSBub2RlLiIiIgotICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGIn XQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3Ig c2VxdWVuY2Ugbm9kZS4KLSAgICAgICAgKCdGZXRjaCBzZXF1ZW5jZSBOb2RlIFVSTCcsIGRpY3Qo dXJsPScvYnJvd3Nlci9zZXF1ZW5jZS9vYmovJykpCi0gICAgXQorQHB5dGVzdC5tYXJrLnNraXBf ZGF0YWJhc2VzKFsnZ3BkYiddKQorY2xhc3MgVGVzdFNlcXVlbmNlUHV0OgorICAgIGRlZiB0ZXN0 X3NlcXVlbmNlX3B1dChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAg IiIiCisgICAgICAgIFdoZW4gdGhlIHNlcXVlbmNlIHB1dCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhl IGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAg ICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHVybCA9 ICcvYnJvd3Nlci9zZXF1ZW5jZS9vYmovJworCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4 dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRf b2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9k ZV9kaWN0WydkYXRhYmFzZSddWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2Vy dmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9k YXRhWydkYl9pZCddCisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2Ri X25hbWUnXQorCisgICAgICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0Wydz Y2hlbWEnXVstMV0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9b J3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZv WydzY2hlbWFfaWQnXQorCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3Rf ZGF0YWJhc2Uoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90 IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKKyAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKIAotICAgIGRl ZiBzZXRVcChzZWxmKToKLSAgICAgICAgc3VwZXIoU2VxdWVuY2VQdXRUZXN0Q2FzZSwgc2VsZiku c2V0VXAoKQotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFz ZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGlj dFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNl cnZlcl9pZCJdCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAg ICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxz LlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2Nv blsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291 bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIHNlcXVlbmNlLiIpCi0gICAgICAgIHNl bGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2No ZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQogICAgICAgICBzY2hlbWFfcmVz cG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25h bWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFk ZCBzZXF1ZW5jZS4iKQotICAgICAgICBzZWxmLnNlcXVlbmNlX25hbWUgPSAidGVzdF9zZXF1ZW5j ZV9kZWxldGVfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQotICAgICAgICBzZWxmLnNlcXVl bmNlX2lkID0gc2VxdWVuY2VfdXRpbHMuY3JlYXRlX3NlcXVlbmNlcygKLSAgICAgICAgICAgIHNl bGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYuc2VxdWVuY2Vf bmFtZSkKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNj aGVtYS4iKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rp b24gd2lsbCB1cGRhdGUgYWRkZWQgc2VxdWVuY2UgdW5kZXIgc2NoZW1hIG5vZGUuIiIiCisgICAg ICAgIHNlcXVlbmNlX25hbWUgPSAidGVzdF9zZXF1ZW5jZV9kZWxldGVfJXMiICUgc3RyKHV1aWQu dXVpZDQoKSlbMTo4XQorICAgICAgICBzZWxmLnNlcXVlbmNlX2lkID0gc2VxdWVuY2VfdXRpbHMu Y3JlYXRlX3NlcXVlbmNlcygKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLAorICAgICAgICAgICAg c2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAg IHNlcXVlbmNlX25hbWUKKyAgICAgICAgKQogICAgICAgICBzZXF1ZW5jZV9yZXNwb25zZSA9IHNl cXVlbmNlX3V0aWxzLnZlcmlmeV9zZXF1ZW5jZShzZWxmLnNlcnZlciwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1l LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNlcXVlbmNlX25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcXVlbmNlX25hbWUpCiAgICAgICAgIGlmIG5v dCBzZXF1ZW5jZV9yZXNwb25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQg bm90IGZpbmQgdGhlIHNlcXVlbmNlIHRvIGRlbGV0ZS4iKQorCiAgICAgICAgIGRhdGEgPSB7CiAg ICAgICAgICAgICAiY29tbWVudCI6ICJUaGlzIGlzIHNlcXVlbmNlIHVwZGF0ZSBjb21tZW50IiwK ICAgICAgICAgICAgICJpZCI6IHNlbGYuc2VxdWVuY2VfaWQKICAgICAgICAgfQorCiAgICAgICAg IHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIo dXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMu U0VSVkVSX0dST1VQKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsg Jy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArCiAgICAgICAgICAgICBz dHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLnNlcXVlbmNl X2lkKSwKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAgIGZv bGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uu c3RhdHVzX2NvZGUsIDIwMCkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3Vs ZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3Bv bnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jl c3BvbnNlKAorICAgICAgICAgICAganNvbl9yZXNwb25zZSwKKyAgICAgICAgICAgICdzZXF1ZW5j ZScsCisgICAgICAgICAgICAncGdhZG1pbi5ub2RlLnNlcXVlbmNlJywKKyAgICAgICAgICAgIEZh bHNlLAorICAgICAgICAgICAgJ2ljb24tc2VxdWVuY2UnLAorICAgICAgICAgICAgc2VxdWVuY2Vf bmFtZQorICAgICAgICApCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICMgRGlz Y29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9k YXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJh c2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2Vy dmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvc3lub255bXMvdGVzdHMvX19pbml0X18ucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9zeW5vbnltcy90ZXN0cy9fX2luaXRfXy5weQppbmRleCAzY2FjNDRmNy4uYWRjNTRiNWQg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3N5bm9ueW1zL3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3N5bm9u eW1zL3Rlc3RzL19faW5pdF9fLnB5CkBAIC03LDcgKzcsNyBAQAogIwogIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKIAotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgor ZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2Vu ZXJhdG9yCiAKIAogY2xhc3MgU3lub255bVRlc3RHZW5lcmF0b3IoQmFzZVRlc3RHZW5lcmF0b3Ip OgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvc3lub255bXMvdGVzdHMvdGVzdF9zeW5vbnltX2FkZC5weSBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3N5bm9ueW1zL3Rlc3RzL3Rlc3Rfc3lub255bV9hZGQucHkKaW5kZXggZDkzZGI5OGEuLjliZjQx YWJkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9zeW5vbnltcy90ZXN0cy90ZXN0X3N5bm9ueW1fYWRkLnB5Cisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3N5bm9ueW1zL3Rlc3RzL3Rlc3Rfc3lub255bV9hZGQucHkKQEAgLTEwLDc2ICsxMCw3 OSBAQAogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3Jh cHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5z ZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnNlcXVlbmNlcy50ZXN0cyBcCiAgICAgaW1wb3J0IHV0 aWxzIGFzIHNlcXVlbmNlX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBz Y2hlbWFfdXRpbHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKLSAgICBkYXRhYmFzZV91dGlscwotZnJv bSBwZ2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVyX3V0aWxzCi1mcm9t IHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jl c3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19o ZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbiwgXAorICAgIGFzc2VydF9qc29u X3ZhbHVlc19mcm9tX3Jlc3BvbnNlCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMg aW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIAogCi1jbGFzcyBTeW5vbnltQWRkVGVzdENhc2Uo QmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBhZGQgbmV3IHN5bm9u eW0gdW5kZXIgdGVzdCBzY2hlbWEuIiIiCi0gICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYidd CitAcHl0ZXN0Lm1hcmsuc2tpcF9kYXRhYmFzZXMoWydncGRiJywgJ3BnJ10pCitjbGFzcyBUZXN0 U3lub255bUFkZDoKKyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoJ3JlcXVpcmVfZGF0YWJh c2VfY29ubmVjdGlvbicpCisgICAgZGVmIHRlc3Rfc3lub255bV9hZGQoc2VsZiwgY29udGV4dF9v Zl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBzeW5vbnltIGFkZCByZXF1 ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVz CisgICAgICAgICIiIgorICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvc3lub255bS9vYmovJwogCi0g ICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBzeW5v bnltIG5vZGUuCi0gICAgICAgICgnRGVmYXVsdCBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nl ci9zeW5vbnltL29iai8nKSkKLSAgICBdCisgICAgICAgIHRlc3RlciA9IGNvbnRleHRfb2ZfdGVz dHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2Vy dmVyJ10KKyAgICAgICAgc2VydmVyX2RhdGEgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5m b3JtYXRpb24nXQorICAgICAgICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10K KyAgICAgICAgZGJfaWQgPSBzZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBkYl9uYW1lID0g c2VydmVyX2RhdGFbJ2RiX25hbWUnXQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBz dXBlcihTeW5vbnltQWRkVGVzdENhc2UsIHNlbGYpLnNldFVwKCkKLSAgICAgICAgc2VsZi5kYl9u YW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAg ICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQotICAgICAgICBz ZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBzZWxmLmRi X2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgc2VydmVyX2NvbiA9IHNlcnZlcl91 dGlscy5jb25uZWN0X3NlcnZlcihzZWxmLCBzZWxmLnNlcnZlcl9pZCkKLSAgICAgICAgaWYgc2Vy dmVyX2NvbjoKLSAgICAgICAgICAgIGlmICJ0eXBlIiBpbiBzZXJ2ZXJfY29uWyJkYXRhIl06Ci0g ICAgICAgICAgICAgICAgaWYgc2VydmVyX2NvblsiZGF0YSJdWyJ0eXBlIl0gPT0gInBnIjoKLSAg ICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJTeW5vbnltcyBhcmUgbm90IHN1cHBvcnRlZCBi eSBQRy4iCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QobWVzc2FnZSkKLSAgICAg ICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5T RVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25b J2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxk IG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBzeW5vbnltLiIpCi0gICAgICAgIHNlbGYu c2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1h X25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQotICAgICAgICBzY2hlbWFfcmVzcG9u c2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBzY2hlbWFfbmFtZSA9IHNlcnZlcl9kYXRhWydzY2hl bWFfbmFtZSddCisgICAgICAgIHNjaGVtYV9pZCA9IHNlcnZlcl9kYXRhWydzY2hlbWFfaWQnXQor ICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2Vy dmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgot ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRv IGFkZCB0aGUgc3lub255bS4iKQotICAgICAgICBzZWxmLnNlcXVlbmNlX25hbWUgPSAidGVzdF9z ZXF1ZW5jZV9zeW5vbnltXyVzIiAlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry KHV1aWQudXVpZDQoKSlbMTo4XQotICAgICAgICBzZWxmLnNlcXVlbmNlX2lkID0gc2VxdWVuY2Vf dXRpbHMuY3JlYXRlX3NlcXVlbmNlcygKLSAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRi X25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYuc2VxdWVuY2VfbmFtZSkKLQotICAgIGRlZiBy dW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIHN5bm9ueW0g dW5kZXIgdGVzdCBzY2hlbWEuIiIiCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxk IG5vdCBmaW5kIHRoZSBzY2hlbWEuIikKIAotICAgICAgICBkYl91c2VyID0gc2VsZi5zZXJ2ZXJb InVzZXJuYW1lIl0KKyAgICAgICAgc2VxdWVuY2VfbmFtZSA9ICJ0ZXN0X3NlcXVlbmNlX3N5bm9u eW1fJXMiICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHV1aWQudXVpZDQoKSlbMTo4 XQorICAgICAgICBzZXF1ZW5jZV91dGlscy5jcmVhdGVfc2VxdWVuY2VzKAorICAgICAgICAgICAg c2VydmVyLAorICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgIHNjaGVtYV9uYW1lLAor ICAgICAgICAgICAgc2VxdWVuY2VfbmFtZQorICAgICAgICApCiAKKyAgICAgICAgZGJfdXNlciA9 IHNlcnZlclsidXNlcm5hbWUiXQorICAgICAgICBzeW5vbnltX25hbWUgPSAic3lub255bV9hZGRf JXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCiAgICAgICAgIGRhdGEgPSB7CiAgICAgICAg ICAgICAib3duZXIiOiBkYl91c2VyLAotICAgICAgICAgICAgInNjaGVtYSI6IHNlbGYuc2NoZW1h X25hbWUsCi0gICAgICAgICAgICAic3lub2JqbmFtZSI6IHNlbGYuc2VxdWVuY2VfbmFtZSwKLSAg ICAgICAgICAgICJzeW5vYmpzY2hlbWEiOiBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAg InNjaGVtYSI6IHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgInN5bm9iam5hbWUiOiBzZXF1ZW5j ZV9uYW1lLAorICAgICAgICAgICAgInN5bm9ianNjaGVtYSI6IHNjaGVtYV9uYW1lLAogICAgICAg ICAgICAgInRhcmdldHR5cGUiOiAiU2VxdWVuY2UiLAotICAgICAgICAgICAgIm5hbWUiOiAic3lu b255bV9hZGRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgICAgICAibmFt ZSI6IHN5bm9ueW1fbmFtZQogICAgICAgICB9CiAKLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRl c3Rlci5wb3N0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQ KSArICcvJyArIHN0cihzZWxmLnNlcnZlcl9pZCkgKwotICAgICAgICAgICAgJy8nICsgc3RyKHNl bGYuZGJfaWQpICsgJy8nICsgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJywKLSAgICAgICAgICAg IGRhdGE9anNvbi5kdW1wcyhkYXRhKSwgY29udGVudF90eXBlPSdodG1sL2pzb24nKQotICAgICAg ICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotCi0gICAgZGVm IHRlYXJEb3duKHNlbGYpOgotICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAg ICAgIHJlc3BvbnNlID0gdGVzdGVyLnBvc3QoCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMu U0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VydmVyX2lkKSArICcvJyAr CisgICAgICAgICAgICBzdHIoZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzY2hlbWFf aWQpICsgJy8nLAorICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAg ICAgY29udGVudF90eXBlPSdodG1sL2pzb24nCisgICAgICAgICkKIAotICAgICAgICBkYXRhYmFz ZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRi X2lkKQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygy MDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVz cG9uc2UpCisgICAgICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlKAorICAgICAg ICAgICAganNvbl9yZXNwb25zZSwKKyAgICAgICAgICAgICdzeW5vbnltJywKKyAgICAgICAgICAg ICdwZ2FkbWluLm5vZGUuc3lub255bScsCisgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAg ICdpY29uLXN5bm9ueW0nLAorICAgICAgICAgICAgc3lub255bV9uYW1lCisgICAgICAgICkKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3N5bm9ueW1zL3Rlc3RzL3Rlc3Rfc3lub255bV9kZWxldGUucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9z eW5vbnltcy90ZXN0cy90ZXN0X3N5bm9ueW1fZGVsZXRlLnB5CmluZGV4IDA1MjM4YmU2Li40NmUx YzQxNyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvc3lub255bXMvdGVzdHMvdGVzdF9zeW5vbnltX2RlbGV0ZS5w eQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9zeW5vbnltcy90ZXN0cy90ZXN0X3N5bm9ueW1fZGVsZXRlLnB5CkBAIC05LDc5 ICs5LDgxIEBACiAKIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGlt cG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy5zY2hlbWFzLnNlcXVlbmNlcy50ZXN0cyBcCiAgICAgaW1wb3J0IHV0aWxzIGFz IHNlcXVlbmNlX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFf dXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFz ZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2Fk bWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVyX3V0aWxzCi1mcm9tIHBnYWRt aW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRp bHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24KIGZyb20gcmVn cmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90 ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxz IGFzIHN5bm9ueW1fdXRpbHMKIAogCi1jbGFzcyBTeW5vbnltRGVsZXRlVGVzdENhc2UoQmFzZVRl c3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBkZWxldGUgYWRkZWQgc3lub255 bSB1bmRlciBzY2hlbWEgbm9kZS4iIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10K K0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInLCAncGcnXSkKK2NsYXNzIFRlc3RT eW5vbnltRGVsZXRlOgorICAgIEBweXRlc3QubWFyay51c2VmaXh0dXJlcygncmVxdWlyZV9kYXRh YmFzZV9jb25uZWN0aW9uJykKKyAgICBkZWYgdGVzdF9zeW5vbnltX2RlbGV0ZShzZWxmLCBjb250 ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIHN5bm9ueW0gREVM RVRFIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIw MCBzdGF0dXMKKyAgICAgICAgIiIiCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3N5bm9ueW0v b2JqLycKIAotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVS TCBmb3Igc3lub255bSBub2RlLgotICAgICAgICAoJ0ZldGNoIHN5bm9ueW0gTm9kZSBVUkwnLCBk aWN0KHVybD0nL2Jyb3dzZXIvc3lub255bS9vYmovJykpCi0gICAgXQorICAgICAgICBodHRwX2Ns aWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VydmVyID0g Y29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VydmVyX2RhdGEgPSBjb250ZXh0 X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQorICAgICAgICBzZXJ2ZXJfaWQgPSBzZXJ2 ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgZGJfaWQgPSBzZXJ2ZXJfZGF0YVsnZGJfaWQn XQorICAgICAgICBkYl9uYW1lID0gc2VydmVyX2RhdGFbJ2RiX25hbWUnXQogCi0gICAgZGVmIHNl dFVwKHNlbGYpOgotICAgICAgICBzdXBlcihTeW5vbnltRGVsZXRlVGVzdENhc2UsIHNlbGYpLnNl dFVwKCkKLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2Ui XVstMV1bImRiX25hbWUiXQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3Rb InNjaGVtYSJdWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2 ZXJfaWQiXQotICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAg ICAgc2VydmVyX2NvbiA9IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihzZWxmLCBzZWxmLnNl cnZlcl9pZCkKLSAgICAgICAgaWYgc2VydmVyX2NvbjoKLSAgICAgICAgICAgIGlmICJ0eXBlIiBp biBzZXJ2ZXJfY29uWyJkYXRhIl06Ci0gICAgICAgICAgICAgICAgaWYgc2VydmVyX2NvblsiZGF0 YSJdWyJ0eXBlIl0gPT0gInBnIjoKLSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJTeW5v bnltcyBhcmUgbm90IHN1cHBvcnRlZCBieSBQRy4iCi0gICAgICAgICAgICAgICAgICAgIHNlbGYu c2tpcFRlc3QobWVzc2FnZSkKLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVj dF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQp Ci0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBz eW5vbnltLiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9p ZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUi XQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMo c2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBzY2hlbWFf bmFtZSA9IHNlcnZlcl9kYXRhWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNjaGVtYV9pZCA9IHNl cnZlcl9kYXRhWydzY2hlbWFfaWQnXQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFf dXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQogICAgICAgICBp ZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3Vs ZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCB0aGUgc3lub255bS4iKQotICAgICAgICBzZWxm LnNlcXVlbmNlX25hbWUgPSAidGVzdF9zZXF1ZW5jZV9zeW5vbnltXyVzIiAlIFwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQotICAgICAgICBzZWxm LnNlcXVlbmNlX2lkID0gc2VxdWVuY2VfdXRpbHMuY3JlYXRlX3NlcXVlbmNlcygKLSAgICAgICAg ICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYuc2Vx dWVuY2VfbmFtZSkKLSAgICAgICAgc2VsZi5zeW5vbnltX25hbWUgPSAidGVzdF9zeW5vbnltX2Rl bGV0ZV8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCi0gICAgICAgIHN5bm9ueW1fdXRpbHMu Y3JlYXRlX3N5bm9ueW0oc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zeW5vbnltX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zZXF1ZW5jZV9uYW1lKQorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3Vs ZCBub3QgZmluZCB0aGUgc2NoZW1hLiIpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAg ICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBzeW5vbnltIHVuZGVyIHNjaGVtYSBub2Rl LiIiIgorICAgICAgICBzZXF1ZW5jZV9uYW1lID0gInRlc3Rfc2VxdWVuY2Vfc3lub255bV8lcyIg JSBcCisgICAgICAgICAgICAgICAgICAgICAgICBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAg ICAgIHNlcXVlbmNlX3V0aWxzLmNyZWF0ZV9zZXF1ZW5jZXMoCisgICAgICAgICAgICBzZXJ2ZXIs CisgICAgICAgICAgICBkYl9uYW1lLAorICAgICAgICAgICAgc2NoZW1hX25hbWUsCisgICAgICAg ICAgICBzZXF1ZW5jZV9uYW1lCisgICAgICAgICkKIAotICAgICAgICBzeW5vbnltX3Jlc3BvbnNl ID0gc3lub255bV91dGlscy52ZXJpZnlfc3lub255bShzZWxmLnNlcnZlciwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1l LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnN5bm9ueW1fbmFtZSkKKyAgICAgICAgc3lub255bV9uYW1lID0gInRlc3Rfc3lub255 bV9kZWxldGVfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBzeW5vbnltX3V0 aWxzLmNyZWF0ZV9zeW5vbnltKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNj aGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bm9ueW1f bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXF1ZW5jZV9uYW1l KQorICAgICAgICBzeW5vbnltX3Jlc3BvbnNlID0gc3lub255bV91dGlscy52ZXJpZnlfc3lub255 bShzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN5bm9ueW1fbmFtZSkKICAgICAgICAgaWYgbm90IHN5bm9ueW1f cmVzcG9uc2U6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5vIHN5bm9ueW0gbm9kZSB0 byBkZWxldGUuIikKIAotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKLSAg ICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwotICAg ICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArICcv JyArCi0gICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsgc3RyKHNlbGYuc3lu b255bV9uYW1lKSwKKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2NsaWVudC5kZWxldGUoCisgICAg ICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAg ICBzdHIoc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoZGJfaWQpICsgJy8nICsK KyAgICAgICAgICAgIHN0cihzY2hlbWFfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzeW5v bnltX25hbWUpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBz ZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotCi0gICAgZGVmIHRl YXJEb3duKHNlbGYpOgotICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCiAKLSAgICAg ICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9p ZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUu ZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90 b19qc29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5 KCdpbmZvJykgPiBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAgICAnU3lub255bSBkcm9w cGVkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZXJyb3Jtc2cn KSA+IHNob3VsZC5iZS5lbXB0eQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUu a2V5KCdkYXRhJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgncmVz dWx0JykgPiBzaG91bGQuYmUubm9uZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhh dmUua2V5KCdzdWNjZXNzJykgPiBzaG91bGQuYmUuZXF1YWwudG8oMSkKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3N5bm9ueW1zL3Rlc3RzL3Rlc3Rfc3lub255bV9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9zeW5vbnltcy90ZXN0cy90 ZXN0X3N5bm9ueW1fZ2V0LnB5CmluZGV4IGQ4YWNlZTQ2Li4zYjRkYjg0ZiAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvc3lub255bXMvdGVzdHMvdGVzdF9zeW5vbnltX2dldC5weQorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9zeW5vbnltcy90 ZXN0cy90ZXN0X3N5bm9ueW1fZ2V0LnB5CkBAIC05LDczICs5LDc1IEBACiAKIGltcG9ydCB1dWlk CiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnNlcXVl bmNlcy50ZXN0cyBcCiAgICAgaW1wb3J0IHV0aWxzIGFzIHNlcXVlbmNlX3V0aWxzCiBmcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVz dHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKLWZyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFz IFwKLSAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJf dXRpbHMgYXMgc2VydmVyX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJh c2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QK K2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2Vf dG9fanNvbiwgXAorICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlCiBmcm9tIHJl Z3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZy b20gLiBpbXBvcnQgdXRpbHMgYXMgc3lub255bV91dGlscwogCiAKLWNsYXNzIFN5bm9ueW1HZXRU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3aWxsIGZldGNo IG5ldyBzeW5vbnltIHVuZGVyIHNjaGVtYSBub2RlLiIiIgotICAgIHNraXBfb25fZGF0YWJhc2Ug PSBbJ2dwZGInXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsnZ3BkYicsICdwZyddKQor Y2xhc3MgVGVzdFN5bm9ueW1HZXQ6CisgICAgQHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCdyZXF1 aXJlX2RhdGFiYXNlX2Nvbm5lY3Rpb24nKQorICAgIGRlZiB0ZXN0X3N5bm9ueW1fZ2V0KHNlbGYs IGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgc3lub255 bSBHRVQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMg MjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3N5bm9ueW0v b2JqLycKIAotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVS TCBmb3Igc3lub255bSBub2RlLgotICAgICAgICAoJ0ZldGNoIHN5bm9ueW0gTm9kZSBVUkwnLCBk aWN0KHVybD0nL2Jyb3dzZXIvc3lub255bS9vYmovJykpCi0gICAgXQorICAgICAgICBodHRwX2Ns aWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VydmVyID0g Y29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VydmVyX2RhdGEgPSBjb250ZXh0 X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQorICAgICAgICBzZXJ2ZXJfaWQgPSBzZXJ2 ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgZGJfaWQgPSBzZXJ2ZXJfZGF0YVsnZGJfaWQn XQorICAgICAgICBkYl9uYW1lID0gc2VydmVyX2RhdGFbJ2RiX25hbWUnXQogCi0gICAgZGVmIHNl dFVwKHNlbGYpOgotICAgICAgICBzdXBlcihTeW5vbnltR2V0VGVzdENhc2UsIHNlbGYpLnNldFVw KCkKLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVst MV1bImRiX25hbWUiXQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNj aGVtYSJdWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJf aWQiXQotICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAg c2VydmVyX2NvbiA9IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihzZWxmLCBzZWxmLnNlcnZl cl9pZCkKLSAgICAgICAgaWYgc2VydmVyX2NvbjoKLSAgICAgICAgICAgIGlmICJ0eXBlIiBpbiBz ZXJ2ZXJfY29uWyJkYXRhIl06Ci0gICAgICAgICAgICAgICAgaWYgc2VydmVyX2NvblsiZGF0YSJd WyJ0eXBlIl0gPT0gInBnIjoKLSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJTeW5vbnlt cyBhcmUgbm90IHN1cHBvcnRlZCBieSBQRy4iCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuc2tp cFRlc3QobWVzc2FnZSkKLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9k YXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCi0g ICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBzeW5v bnltLiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJd Ci0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQot ICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2Vs Zi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBzY2hlbWFfbmFt ZSA9IHNlcnZlcl9kYXRhWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNjaGVtYV9pZCA9IHNlcnZl cl9kYXRhWydzY2hlbWFfaWQnXQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRp bHMudmVyaWZ5X3NjaGVtYXMoc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQogICAgICAgICBpZiBu b3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCB0aGUgc3lub255bS4iKQotICAgICAgICBzZWxmLnNl cXVlbmNlX25hbWUgPSAidGVzdF9zZXF1ZW5jZV9zeW5vbnltXyVzIiAlIFwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQotICAgICAgICBzZWxmLnNl cXVlbmNlX2lkID0gc2VxdWVuY2VfdXRpbHMuY3JlYXRlX3NlcXVlbmNlcygKLSAgICAgICAgICAg IHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYuc2VxdWVu Y2VfbmFtZSkKLSAgICAgICAgc2VsZi5zeW5vbnltX25hbWUgPSAidGVzdF9zeW5vbnltX2dldF8l cyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCi0gICAgICAgIHN5bm9ueW1fdXRpbHMuY3JlYXRl X3N5bm9ueW0oc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zeW5vbnltX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXF1ZW5jZV9uYW1lKQorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg ZmluZCB0aGUgc2NoZW1hLiIpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIi VGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIHN5bm9ueW0gdW5kZXIgc2NoZW1hIG5vZGUuIiIiCisg ICAgICAgIHNlcXVlbmNlX25hbWUgPSAidGVzdF9zZXF1ZW5jZV9zeW5vbnltXyVzIiAlIFwKKyAg ICAgICAgICAgICAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgc2Vx dWVuY2VfdXRpbHMuY3JlYXRlX3NlcXVlbmNlcygKKyAgICAgICAgICAgIHNlcnZlciwKKyAgICAg ICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICBzY2hlbWFfbmFtZSwKKyAgICAgICAgICAgIHNl cXVlbmNlX25hbWUKKyAgICAgICAgKQogCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIu Z2V0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcv JyArCi0gICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJf aWQpICsgJy8nICsKLSAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKyBzdHIo c2VsZi5zeW5vbnltX25hbWUpLAotICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQot ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAg ICAgICBzeW5vbnltX25hbWUgPSAidGVzdF9zeW5vbnltX2RlbGV0ZV8lcyIgJSBzdHIodXVpZC51 dWlkNCgpKVsxOjhdCisgICAgICAgIHN5bm9ueW1fdXRpbHMuY3JlYXRlX3N5bm9ueW0oc2VydmVy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3lub255bV9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlcXVlbmNlX25hbWUpCiAKLSAgICBkZWYgdGVhckRvd24oc2Vs Zik6Ci0gICAgICAgICIiIiBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZS4gIiIiCisgICAgICAgIHJl c3BvbnNlID0gaHR0cF9jbGllbnQuZ2V0KAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNF UlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKwor ICAgICAgICAgICAgc3RyKGRiX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2NoZW1hX2lk KSArICcvJyArCisgICAgICAgICAgICBzdHIoc3lub255bV9uYW1lKSwKKyAgICAgICAgICAgIGZv bGxvd19yZWRpcmVjdHM9VHJ1ZSkKIAotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0 X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICByZXNw b25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25f cmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGFz c2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlKAorICAgICAgICAgICAganNvbl9yZXNwb25z ZSwKKyAgICAgICAgICAgICdzeW5vbnltJywKKyAgICAgICAgICAgICdwZ2FkbWluLm5vZGUuc3lu b255bScsCisgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgICdpY29uLXN5bm9ueW0nLAor ICAgICAgICAgICAgc2VxdWVuY2VfbmFtZQorICAgICAgICApCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9zeW5v bnltcy90ZXN0cy90ZXN0X3N5bm9ueW1fcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvc3lub255bXMvdGVzdHMvdGVzdF9z eW5vbnltX3B1dC5weQppbmRleCA5ZTgwYjRiMC4uZjJmMmI2Y2UgMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3N5 bm9ueW1zL3Rlc3RzL3Rlc3Rfc3lub255bV9wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvc3lub255bXMvdGVzdHMv dGVzdF9zeW5vbnltX3B1dC5weQpAQCAtMTAsOTggKzEwLDEwNiBAQAogaW1wb3J0IGpzb24KIGlt cG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwog ZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hl bWFzLmZ1bmN0aW9ucy50ZXN0cyBcCiAgICAgaW1wb3J0IHV0aWxzIGFzIGZ1bmN0aW9uc191dGls cwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5z Y2hlbWFzLnNlcXVlbmNlcy50ZXN0cyBcCiAgICAgaW1wb3J0IHV0aWxzIGFzIHNlcXVlbmNlX3V0 aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2Vz LnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKLWZyb20g cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1w b3J0IHV0aWxzIGFzIFwKLSAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzIGlt cG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVyX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91 dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVu dF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9y dCBQb3N0Z3Jlc1ZlcnNpb24KK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0 IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbiwgXAorICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9t X3Jlc3BvbnNlCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3Rf dXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgc3lub255bV91dGlscwogCiAK LWNsYXNzIFN5bm9ueW1QdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhp cyBjbGFzcyB3aWxsIHVwZGF0ZSBhZGRlZCBzeW5vbnltIHVuZGVyIHRlc3Qgc2NoZW1hLiIiIgot ICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJh c2VzKFsnZ3BkYicsICdwZyddKQorY2xhc3MgVGVzdFN5bm9ueW1VcGRhdGU6CisgICAgQHB5dGVz dC5tYXJrLnVzZWZpeHR1cmVzKCdyZXF1aXJlX2RhdGFiYXNlX2Nvbm5lY3Rpb24nKQorICAgIGRl ZiB0ZXN0X3N5bm9ueW1fdXBkYXRlKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29udGV4dF9vZl90ZXN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRfc2VydmVy X3ZlcnNpb24pOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgc3lub255bSBQVVQgcmVx dWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1 cworICAgICAgICAiIiIKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvc3lub255bS9vYmovJwor CisgICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQor ICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZXJ2 ZXJfZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddCisgICAgICAg IHNlcnZlcl9pZCA9IHNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBkYl9pZCA9IHNl cnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIGRiX25hbWUgPSBzZXJ2ZXJfZGF0YVsnZGJfbmFt ZSddCiAKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwg Zm9yIHN5bm9ueW0gbm9kZS4KLSAgICAgICAgKCdGZXRjaCBzeW5vbnltIE5vZGUgVVJMJywgZGlj dCh1cmw9Jy9icm93c2VyL3N5bm9ueW0vb2JqLycpKQotICAgIF0KKyAgICAgICAgc2VydmVyX3Zl cnNpb24gPSAwCisgICAgICAgIGlmIFBvc3RncmVzVmVyc2lvbi52OTIgPCBnZXRfc2VydmVyX3Zl cnNpb246CisgICAgICAgICAgICBzZXJ2ZXJfdmVyc2lvbiA9IGdldF9zZXJ2ZXJfdmVyc2lvbgog Ci0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzdXBlcihTeW5vbnltUHV0VGVzdENhc2Us IHNlbGYpLnNldFVwKCkKLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsi ZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9u b2RlX2RpY3RbInNjaGVtYSJdWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9p bmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lk Il0KLSAgICAgICAgc2VydmVyX2NvbiA9IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihzZWxm LCBzZWxmLnNlcnZlcl9pZCkKLSAgICAgICAgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA9IDAKLSAgICAg ICAgaWYgc2VydmVyX2NvbjoKLSAgICAgICAgICAgIGlmICJ0eXBlIiBpbiBzZXJ2ZXJfY29uWyJk YXRhIl06Ci0gICAgICAgICAgICAgICAgaWYgc2VydmVyX2NvblsiZGF0YSJdWyJ0eXBlIl0gPT0g InBnIjoKLSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJTeW5vbnltcyBhcmUgbm90IHN1 cHBvcnRlZCBieSBQRy4iCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QobWVzc2Fn ZSkKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBpZiBzZXJ2ZXJf Y29uWyJkYXRhIl1bInZlcnNpb24iXSA+PSA5MDIwMDoKLSAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2VydmVyX3ZlcnNpb24gPSBzZXJ2ZXJfY29uWyJkYXRhIl1bInZlcnNpb24iXQotICAg ICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxz LlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2Nv blsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291 bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIHN5bm9ueW0uIikKLSAgICAgICAgc2Vs Zi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2VsZi5zY2hl bWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9yZXNw b25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFt ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIHNjaGVtYV9uYW1lID0gc2VydmVyX2RhdGFbJ3Nj aGVtYV9uYW1lJ10KKyAgICAgICAgc2NoZW1hX2lkID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9pZCdd CisKKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFz KHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25z ZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVt YSB0byBhZGQgdGhlIHN5bm9ueW0uIikKLSAgICAgICAgc2VsZi5zZXF1ZW5jZV9uYW1lID0gInRl c3Rfc2VxdWVuY2Vfc3lub255bV8lcyIgJSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KLSAgICAgICAgc2VsZi5zZXF1ZW5jZV9pZCA9IHNlcXVl bmNlX3V0aWxzLmNyZWF0ZV9zZXF1ZW5jZXMoCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwgc2Vs Zi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBzZWxmLnNlcXVlbmNlX25hbWUpCi0gICAgICAg IHNlbGYuc3lub255bV9uYW1lID0gInRlc3Rfc3lub255bV9wdXRfJXMiICUgc3RyKHV1aWQudXVp ZDQoKSlbMTo4XQotICAgICAgICBzeW5vbnltX3V0aWxzLmNyZWF0ZV9zeW5vbnltKHNlbGYuc2Vy dmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3lub255bV9uYW1lLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VxdWVuY2VfbmFtZSkK KyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4n KQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2ls bCB1cGRhdGUgc3lub255bSB1bmRlciBzY2hlbWEgbm9kZS4iIiIKKyAgICAgICAgc2VxdWVuY2Vf bmFtZSA9ICd0ZXN0X3NlcXVlbmNlX3N5bm9ueW1fJXMnICUgXAorICAgICAgICAgICAgICAgICAg ICAgICAgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBzZXF1ZW5jZV91dGlscy5jcmVh dGVfc2VxdWVuY2VzKAorICAgICAgICAgICAgc2VydmVyLAorICAgICAgICAgICAgZGJfbmFtZSwK KyAgICAgICAgICAgIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgc2VxdWVuY2VfbmFtZQorICAg ICAgICApCiAKLSAgICAgICAgc3lub255bV9yZXNwb25zZSA9IHN5bm9ueW1fdXRpbHMudmVyaWZ5 X3N5bm9ueW0oc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zeW5vbnltX25hbWUpCisg ICAgICAgIHN5bm9ueW1fbmFtZSA9ICd0ZXN0X3N5bm9ueW1fZGVsZXRlXyVzJyAlIHN0cih1dWlk LnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgc3lub255bV91dGlscy5jcmVhdGVfc3lub255bShzZXJ2 ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5vbnltX25hbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VxdWVuY2VfbmFtZSkKKyAgICAgICAgc3lub255bV9yZXNw b25zZSA9IHN5bm9ueW1fdXRpbHMudmVyaWZ5X3N5bm9ueW0oc2VydmVyLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5v bnltX25hbWUpCiAgICAgICAgIGlmIG5vdCBzeW5vbnltX3Jlc3BvbnNlOgotICAgICAgICAgICAg cmFpc2UgRXhjZXB0aW9uKCJObyBzeW5vbnltIG5vZGUgdG8gdXBkYXRlLiIpCi0gICAgICAgIGZ1 bmNfbmFtZSA9ICJ0ZXN0X2Z1bmN0aW9uX3N5bm9ueW1fJXMiICUgc3RyKHV1aWQudXVpZDQoKSlb MTo4XQotICAgICAgICBzZWxmLnRhYmxlX2lkID0gZnVuY3Rpb25zX3V0aWxzLmNyZWF0ZV90cmln Z2VyX2Z1bmN0aW9uKAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2Vs Zi5zY2hlbWFfbmFtZSwgZnVuY19uYW1lLAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfdmVyc2lv bikKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignTm8gc3lub255bSBub2RlIHRvIHVwZGF0 ZS4nKQorCisgICAgICAgIGZ1bmNfbmFtZSA9ICd0ZXN0X2Z1bmN0aW9uX3N5bm9ueW1fJXMnICUg c3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBmdW5jdGlvbnNfdXRpbHMuY3JlYXRlX3Ry aWdnZXJfZnVuY3Rpb24oCisgICAgICAgICAgICBzZXJ2ZXIsCisgICAgICAgICAgICBkYl9uYW1l LAorICAgICAgICAgICAgc2NoZW1hX25hbWUsCisgICAgICAgICAgICBmdW5jX25hbWUsCisgICAg ICAgICAgICBzZXJ2ZXJfdmVyc2lvbikKIAogICAgICAgICBkYXRhID0gewotICAgICAgICAgICAg Im5hbWUiOiBzZWxmLnN5bm9ueW1fbmFtZSwKLSAgICAgICAgICAgICJzeW5vYmpuYW1lIjogZnVu Y19uYW1lLAotICAgICAgICAgICAgInN5bm9ianNjaGVtYSI6IHNlbGYuc2NoZW1hX25hbWUsCi0g ICAgICAgICAgICAidGFyZ2V0dHlwZSI6ICJGdW5jdGlvbiIKKyAgICAgICAgICAgICduYW1lJzog c3lub255bV9uYW1lLAorICAgICAgICAgICAgJ3N5bm9iam5hbWUnOiBmdW5jX25hbWUsCisgICAg ICAgICAgICAnc3lub2Jqc2NoZW1hJzogc2NoZW1hX25hbWUsCisgICAgICAgICAgICAndGFyZ2V0 dHlwZSc6ICdGdW5jdGlvbicKICAgICAgICAgfQotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVz dGVyLnB1dCgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkg KyAnLycgKwotICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCi0gICAgICAg ICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKwotICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1h X2lkKSArICcvJyArCi0gICAgICAgICAgICBzdHIoc2VsZi5zeW5vbnltX25hbWUpLAorICAgICAg ICByZXNwb25zZSA9IGh0dHBfY2xpZW50LnB1dCgKKyAgICAgICAgICAgIHVybCArIHN0cih1dGls cy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8n ICsKKyAgICAgICAgICAgIHN0cihkYl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNjaGVt YV9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHN5bm9ueW1fbmFtZSksCiAgICAgICAgICAg ICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRy dWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDAp Ci0KLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICIiIiBEaXNjb25uZWN0IHRoZSBk YXRhYmFzZS4gIiIiCiAKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFz ZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgcmVzcG9uc2Uuc3Rh dHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNl ID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnRfanNv bl92YWx1ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAg ICAgICAgICAnc3lub255bScsCisgICAgICAgICAgICAncGdhZG1pbi5ub2RlLnN5bm9ueW0nLAor ICAgICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICAnaWNvbi1zeW5vbnltJywKKyAgICAgICAg ICAgIHN5bm9ueW1fbmFtZQorICAgICAgICApCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1u L3Rlc3RzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbi90ZXN0cy9fX2luaXRfXy5weQpp bmRleCBhMWFlMzFkYS4uNTkwMDI2YWQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW4vdGVz dHMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbi90ZXN0cy9fX2luaXRfXy5weQpA QCAtNiwxMSArNiwzIEBACiAjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBv c3RncmVTUUwgTGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotZnJvbSBwZ2FkbWluLnV0 aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotCi0KLWNsYXNzIENvbHVtbnNUZXN0 R2VuZXJhdG9yKEJhc2VUZXN0R2VuZXJhdG9yKToKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgot ICAgICAgICByZXR1cm4gW10KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW4vdGVzdHMvdGVz dF9jb2x1bW5fYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbi90ZXN0cy90ZXN0X2NvbHVtbl9hZGQu cHkKaW5kZXggYTJhOGYxNzkuLmJlYzRmMzU4IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1u L3Rlc3RzL3Rlc3RfY29sdW1uX2FkZC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1uL3Rlc3RzL3Rl c3RfY29sdW1uX2FkZC5weQpAQCAtMTAsNDkgKzEwLDYzIEBACiBpbXBvcnQganNvbgogaW1wb3J0 IHV1aWQKIAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nl ci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwK ICAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5z ZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAg ICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAgICBkYXRhYmFz ZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRv cgorZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0 X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25z ZQogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Np b24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIAogCi1jbGFz cyBDb2x1bW5BZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFz cyB3aWxsIGFkZCBuZXcgY29sdW1uIHVuZGVyIHRhYmxlIG5vZGUuIiIiCi0gICAgc2NlbmFyaW9z ID0gWwotICAgICAgICAoJ0FkZCBjb2x1bW4gTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIv Y29sdW1uL29iai8nKSkKLSAgICBdCitjbGFzcyBUZXN0Q29sdW1uQWRkOgorICAgIGRlZiB0ZXN0 X2NvbHVtbl9hZGQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIi IgorICAgICAgICBXaGVuIHRoZSBjb2x1bW4gYWRkIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFj a2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAg IHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9i cm93c2VyL2NvbHVtbi9vYmovJworCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90 ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVz dHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0 WydkYXRhYmFzZSddWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2Rh dGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydk Yl9pZCddCisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUn XQorCisgICAgICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEn XVstMV0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVt YV9uYW1lJ10KKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hl bWFfaWQnXQorCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJh c2Uoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2Nv blsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKKyAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKIAotICAgIGRlZiBzZXRV cChzZWxmKToKLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJh c2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2Rp Y3RbInNjaGVtYSJdWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJz ZXJ2ZXJfaWQiXQotICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAg ICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGls cy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9j b25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNv dWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBhIHRhYmxlLiIpCi0gICAgICAgIHNl bGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2No ZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQogICAgICAgICBzY2hlbWFfcmVz cG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25h bWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFk ZCBhIHRhYmxlLiIpCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5k IHRoZSBzY2hlbWEuIikKKwogICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfY29sdW1u XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQogICAgICAgICBzZWxmLnRhYmxlX2lkID0g dGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVt YV9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnRhYmxlX25hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIi VGhpcyBmdW5jdGlvbiB3aWxsIGFkZCBjb2x1bW4gdW5kZXIgdGFibGUgbm9kZS4iIiIKLSAgICAg ICAgc2VsZi5jb2x1bW5fbmFtZSA9ICJ0ZXN0X2NvbHVtbl9hZGRfJXMiICUgKHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0pCisgICAgICAgIGNvbHVtbl9uYW1lID0gInRlc3RfY29sdW1uX2FkZF8lcyIg JSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKICAgICAgICAgZGF0YSA9IHsKLSAgICAgICAgICAg ICJuYW1lIjogc2VsZi5jb2x1bW5fbmFtZSwKKyAgICAgICAgICAgICJuYW1lIjogY29sdW1uX25h bWUsCiAgICAgICAgICAgICAiY2x0eXBlIjogIlwiY2hhclwiIiwKICAgICAgICAgICAgICJhdHRh Y2wiOiBbXSwKICAgICAgICAgICAgICJpc19wcmltYXJ5X2tleSI6IEZhbHNlLApAQCAtNjIsMTUg Kzc2LDI3IEBAIGNsYXNzIENvbHVtbkFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAg ICAgICAgICAgICJhdHRvcHRpb25zIjogW10sCiAgICAgICAgICAgICAic2VjbGFiZWxzIjogW10K ICAgICAgICAgfQotICAgICAgICAjIEFkZCB0YWJsZQorCiAgICAgICAgIHJlc3BvbnNlID0gc2Vs Zi50ZXN0ZXIucG9zdCgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9H Uk9VUCkgKyAnLycgKwotICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0 cihzZWxmLmRiX2lkKSArCi0gICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zY2hlbWFfaWQpICsg Jy8nICsgc3RyKHNlbGYudGFibGVfaWQpICsgJy8nLAorICAgICAgICAgICAgdXJsICsgc3RyKHV0 aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lk KSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAgICAgICAg ICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi50YWJs ZV9pZCkgKyAnLycsCiAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAg ICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz KHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2Nv ZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29u dmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnRfanNvbl92YWx1 ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAg ICAnY29sdW1uJywKKyAgICAgICAgICAgICdwZ2FkbWluLm5vZGUuY29sdW1uJywKKyAgICAgICAg ICAgIEZhbHNlLAorICAgICAgICAgICAgJ2ljb24tY29sdW1uJywKKyAgICAgICAgICAgIGNvbHVt bl9uYW1lCisgICAgICAgICkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIyBE aXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0 X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBkYXRh YmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5z ZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1uL3Rlc3RzL3Rlc3Rf Y29sdW1uX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW4vdGVzdHMvdGVzdF9jb2x1bW5fZGVs ZXRlLnB5CmluZGV4IDE0OTZlYTg2Li5jMjY2ZjFmMyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2Nv bHVtbi90ZXN0cy90ZXN0X2NvbHVtbl9kZWxldGUucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbi90 ZXN0cy90ZXN0X2NvbHVtbl9kZWxldGUucHkKQEAgLTksNjYgKzksOTAgQEAKIAogaW1wb3J0IHV1 aWQKIAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5z ZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwKICAg ICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1 dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMu c2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAgICBkYXRhYmFzZV91 dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgor ZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2Vu ZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jl c3BvbnNlX3RvX2pzb24KIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAog ZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0 aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGNvbHVtbnNfdXRpbHMKIAogCi1jbGFzcyBDb2x1 bW5EZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3 aWxsIGRlbGV0ZSBjb2x1bW4gdW5kZXIgdGFibGUgbm9kZS4iIiIKLSAgICBzY2VuYXJpb3MgPSBb Ci0gICAgICAgICgnRGVsZXRlIGNvbHVtbiBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9j b2x1bW4vb2JqLycpKQotICAgIF0KLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2Vs Zi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQot ICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQotICAg ICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBz ZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgZGJfY29uID0gZGF0YWJh c2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJf aWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVk Il06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRh dGFiYXNlIHRvIGFkZCBhIHRhYmxlLiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1h X2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5m b1sic2NoZW1hX25hbWUiXQorY2xhc3MgVGVzdENvbHVtbkRlbGV0ZToKKyAgICBkZWYgdGVzdF9j b2x1bW5fZGVsZXRlKHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAi IiIKKyAgICAgICAgV2hlbiB0aGUgY29sdW1uIGRlbGV0ZSByZXF1ZXN0IGlzIHNlbmQgdG8gdGhl IGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAg ICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHVybCA9 ICcvYnJvd3Nlci9jb2x1bW4vb2JqLycKKworICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRf b2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29m X3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVf ZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZl cl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0 YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9u YW1lJ10KKworICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnc2No ZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydz Y2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1sn c2NoZW1hX2lkJ10KKworICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2Rh dGFiYXNlKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBk Yl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCisKICAgICAgICAg c2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVy LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNw b25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNj aGVtYSB0byBhZGQgYSB0YWJsZS4iKQorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3Vs ZCBub3QgZmluZCB0aGUgc2NoZW1hLiIpCisKICAgICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRh YmxlX2NvbHVtbl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKICAgICAgICAgc2VsZi50 YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJf bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zY2hlbWFfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQotICAgICAgICBzZWxmLmNvbHVtbl9uYW1lID0g InRlc3RfY29sdW1uX2RlbGV0ZV8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAg ICAgc2VsZi5jb2x1bW5faWQgPSBjb2x1bW5zX3V0aWxzLmNyZWF0ZV9jb2x1bW4oc2VsZi5zZXJ2 ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNvbHVtbl9uYW1l KQotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2ls bCBkcm9wIGNvbHVtbiB1bmRlciB0YWJsZSBub2RlLiIiIgorCisgICAgICAgIGNvbHVtbl9uYW1l ID0gInRlc3RfY29sdW1uX2RlbGV0ZV8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAg ICAgICAgY29sdW1uX2lkID0gY29sdW1uc191dGlscy5jcmVhdGVfY29sdW1uKHNlbGYuc2VydmVy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5k Yl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYudGFibGVfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbHVtbl9uYW1lKQorCiAgICAgICAgIGNvbF9yZXNwb25zZSA9 IGNvbHVtbnNfdXRpbHMudmVyaWZ5X2NvbHVtbihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5j b2x1bW5fbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbHVtbl9uYW1lKQogICAgICAgICBpZiBub3QgY29sX3Jlc3BvbnNlOgogICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgY29sdW1uIHRvIGRyb3Au IikKLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoc2VsZi51cmwgKyBzdHIo dXRpbHMuU0VSVkVSX0dST1VQKSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICcvJyArIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYudGFibGVfaWQpICsg Jy8nICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYuY29s dW1uX2lkKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3Jl ZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNf Y29kZSwgMjAwKQorCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKAorICAg ICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKworICAgICAgICAgICAgJy8n ICsgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5kYl9p ZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArCisgICAg ICAgICAgICBzdHIoc2VsZi50YWJsZV9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKGNvbHVt bl9pZCksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisKKyAgICAgICAgcmVz cG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29u X3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBq c29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdpbmZvJykgPiBzaG91bGQuYmUuZXF1YWwu dG8oCisgICAgICAgICAgICAnQ29sdW1uIGlzIGRyb3BwZWQnKQorICAgICAgICBqc29uX3Jlc3Bv bnNlIHwgc2hvdWxkLmhhdmUua2V5KCdlcnJvcm1zZycpID4gc2hvdWxkLmJlLmVtcHR5CisgICAg ICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2RhdGEnKQorICAgICAgICBqc29u X3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdyZXN1bHQnKSA+IHNob3VsZC5iZS5ub25lCisg ICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3N1Y2Nlc3MnKSA+IHNob3Vs ZC5iZS5lcXVhbC50bygxKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAjIERp c2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3Rf ZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFi YXNlX3V0aWxzLmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNl cnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW4vdGVzdHMvdGVzdF9j b2x1bW5fZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbi90ZXN0cy90ZXN0X2NvbHVtbl9nZXQucHkK aW5kZXggMjJiZmIxMWUuLmEzODU3OWYyIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1uL3Rl c3RzL3Rlc3RfY29sdW1uX2dldC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1uL3Rlc3RzL3Rlc3Rf Y29sdW1uX2dldC5weQpAQCAtOSw2MiArOSw4MSBAQAogCiBpbXBvcnQgdXVpZAogCitmcm9tIGdy YXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMu c2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAogICAgIGltcG9ydCB1dGls cyBhcyB0YWJsZXNfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2Vy dmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVt YV91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAogICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBn YWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4u dXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20g cGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNv bgogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Np b24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBp bXBvcnQgdXRpbHMgYXMgY29sdW1uc191dGlscwogCiAKLWNsYXNzIENvbHVtbkdldFRlc3RDYXNl KEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgZ2V0IGNvbHVtbiB1 bmRlciB0YWJsZSBub2RlLiIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdGZXRjaCBj b2x1bW5zIHVuZGVyIHRhYmxlIG5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIvY29sdW1uL29iai8n KSkKLSAgICBdCitjbGFzcyBUZXN0Q29sdW1uR2V0OgorICAgIGRlZiB0ZXN0X2NvbHVtbl9nZXQo c2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBX aGVuIHRoZSBjb2x1bW4gZ2V0IHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAg ICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRk ZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2NvbHVt bi9vYmovJworCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9j bGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcidd CisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRhYmFzZSdd Wy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3NlcnZlcl9p ZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCddCisgICAg ICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorCisgICAgICAg IHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KKyAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9uYW1lJ10KKyAg ICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfaWQnXQorCisg ICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJW RVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09 ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291 bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAg ICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRi X25hbWUiXQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJd Wy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQot ICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgZGJfY29u ID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JP VVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsi Y29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25u ZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBhIHRhYmxlLiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lk ID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBz Y2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQogICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hl bWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVt YV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFp c2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBhIHRhYmxlLiIp CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEu IikKKwogICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfY29sdW1uXyVzIiAlIChzdHIo dXVpZC51dWlkNCgpKVsxOjhdKQogICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxz LmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxl X25hbWUpCi0gICAgICAgIHNlbGYuY29sdW1uX25hbWUgPSAidGVzdF9jb2x1bW5fZGVsZXRlXyVz IiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxmLmNvbHVtbl9pZCA9IGNv bHVtbnNfdXRpbHMuY3JlYXRlX2NvbHVtbihzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVt YV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnRhYmxlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuY29sdW1uX25hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChz ZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIHRoZSBjb2x1bW4gdW5k ZXIgdGFibGUgbm9kZS4iIiIKLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoc2Vs Zi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYudGFibGVfaWQpICsg Jy8nICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYuY29sdW1u X2lkKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0 cz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwg MjAwKQorICAgICAgICBjb2x1bW5fbmFtZSA9ICJ0ZXN0X2NvbHVtbl9kZWxldGVfJXMiICUgKHN0 cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIGNvbHVtbl9pZCA9IGNvbHVtbnNfdXRpbHMu Y3JlYXRlX2NvbHVtbihzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5fbmFtZSkK KworICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKKyAgICAgICAgICAgIHVybCAr IHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsKKyAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNl cnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKKyAg ICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNl bGYudGFibGVfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihjb2x1bW5faWQpLAorICAgICAg ICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19j b2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNv bnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8 IHNob3VsZC5oYXZlLmtleSgnbmFtZScpID4gXAorICAgICAgICAgICAgc2hvdWxkLmJlLmVxdWFs LnRvKGNvbHVtbl9uYW1lKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAjIERp c2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3Rf ZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFi YXNlX3V0aWxzLmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNl cnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW4vdGVzdHMvdGVzdF9j b2x1bW5fbXNxbC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW4vdGVzdHMvdGVzdF9jb2x1bW5fbXNxbC5w eQppbmRleCAwY2JjYWYxMS4uMmRkZmZhZWIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW4v dGVzdHMvdGVzdF9jb2x1bW5fbXNxbC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1uL3Rlc3RzL3Rl c3RfY29sdW1uX21zcWwucHkKQEAgLTEwLDEzICsxMCwxNSBAQAogaW1wb3J0IGpzb24KIGltcG9y dCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFz LnRhYmxlcy50ZXN0cyBcCiAgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscwogZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRl c3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBh cyBcCiAgICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQg QmFzZVRlc3RHZW5lcmF0b3IKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGlj dAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFz IHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGNvbHVtbnNfdXRpbHMKQEAgLTI3LDE1MyAr MjksMTgwIEBAIGV4Y2VwdCBJbXBvcnRFcnJvciBhcyBlOgogICAgIGZyb20gdXJsbGliIGltcG9y dCB1cmxlbmNvZGUKIAogCi1jbGFzcyBDb2x1bW5Nc3FsVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0 b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCB0ZXN0IG1zcWwgcm91dGUgb2YgY29sdW1uIHdp dGggdmFyaW91cyBjb21iaW5hdGlvbnMuIiIiCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAo J21zcWwgY29sdW1uIGNoYW5nZSB0aW1lc3RhbXAgYXJyYXkgbGVuZ3RoJywKLSAgICAgICAgIGRp Y3QoCi0gICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9jb2x1bW4vbXNxbC8nLAotICAgICAgICAg ICAgIGRhdGFfdHlwZT0ndGltZXN0YW1wKDMpIHdpdGggdGltZSB6b25lW10nLAotICAgICAgICAg ICAgIG5ld19sZW49NiwKLSAgICAgICAgICAgICBleHBlY3RlZF9yZXM9J0FMVEVSIFRBQkxFIHtz Y2hlbWF9Lnt0YWJsZX1cbiAgICBBTFRFUiBDT0xVTU4gJwotICAgICAgICAgICAgICAgICAgICAg ICAgICAne2NvbHVtbn0gVFlQRSB0aW1lc3RhbXAoe2xlbn0pIHdpdGggdGltZSB6b25lIFtdOycK LSAgICAgICAgICkpLAotICAgICAgICAoJ21zcWwgY29sdW1uIGNoYW5nZSB0aW1lc3RhbXAgbGVu Z3RoJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9jb2x1bW4v bXNxbC8nLAotICAgICAgICAgICAgIGRhdGFfdHlwZT0ndGltZXN0YW1wKDQpIHdpdGggdGltZSB6 b25lJywKLSAgICAgICAgICAgICBuZXdfbGVuPTcsCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmVz PSdBTFRFUiBUQUJMRSB7c2NoZW1hfS57dGFibGV9XG4gICAgQUxURVIgQ09MVU1OICcKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgJ3tjb2x1bW59IFRZUEUgdGltZXN0YW1wKHtsZW59KSB3aXRo IHRpbWUgem9uZSA7JwotICAgICAgICAgKSksCi0gICAgICAgICgnbXNxbCBjb2x1bW4gY2hhbmdl IG51bWVyaWMgYXJyYXkgcHJlY2lzaW9uJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAg dXJsPScvYnJvd3Nlci9jb2x1bW4vbXNxbC8nLAotICAgICAgICAgICAgIGRhdGFfdHlwZT0nbnVt ZXJpYyg1LDIpW10nLAotICAgICAgICAgICAgIG9sZF9sZW49NSwKLSAgICAgICAgICAgICBuZXdf cHJlY2lzaW9uPTQsCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmVzPSdBTFRFUiBUQUJMRSB7c2No ZW1hfS57dGFibGV9XG4gICAgQUxURVIgQ09MVU1OICcKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgJ3tjb2x1bW59IFRZUEUgbnVtZXJpYyAoe2xlbn0sIHtwcmVjaXNpb259KVtdOycKLSAgICAg ICAgICkpLAotICAgICAgICAoJ21zcWwgY29sdW1uIGNoYW5nZSBudW1lcmljIHByZWNpc2lvbics Ci0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvY29sdW1uL21zcWwv JywKLSAgICAgICAgICAgICBkYXRhX3R5cGU9J251bWVyaWMoNiwzKScsCi0gICAgICAgICAgICAg b2xkX2xlbj02LAotICAgICAgICAgICAgIG5ld19wcmVjaXNpb249NSwKLSAgICAgICAgICAgICBl eHBlY3RlZF9yZXM9J0FMVEVSIFRBQkxFIHtzY2hlbWF9Lnt0YWJsZX1cbiAgICBBTFRFUiBDT0xV TU4gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAne2NvbHVtbn0gVFlQRSBudW1lcmljICh7 bGVufSwge3ByZWNpc2lvbn0pOycKLSAgICAgICAgICkpLAotICAgICAgICAoJ21zcWwgY29sdW1u IGNoYW5nZSBudW1lcmljIGFycmF5IGxlbmd0aCcsCi0gICAgICAgICBkaWN0KAotICAgICAgICAg ICAgIHVybD0nL2Jyb3dzZXIvY29sdW1uL21zcWwvJywKLSAgICAgICAgICAgICBkYXRhX3R5cGU9 J251bWVyaWMoNiwzKVtdJywKLSAgICAgICAgICAgICBuZXdfbGVuPTgsCi0gICAgICAgICAgICAg b2xkX3ByZWNpc2lvbj0zLAotICAgICAgICAgICAgIGV4cGVjdGVkX3Jlcz0nQUxURVIgVEFCTEUg e3NjaGVtYX0ue3RhYmxlfVxuICAgIEFMVEVSIENPTFVNTiAnCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICd7Y29sdW1ufSBUWVBFIG51bWVyaWMgKHtsZW59LCB7cHJlY2lzaW9ufSlbXTsnCi0g ICAgICAgICApKSwKLSAgICAgICAgKCdtc3FsIGNvbHVtbiBjaGFuZ2UgbnVtZXJpYyBsZW5ndGgn LAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2NvbHVtbi9tc3Fs LycsCi0gICAgICAgICAgICAgZGF0YV90eXBlPSdudW1lcmljKDYsNCknLAotICAgICAgICAgICAg IG5ld19sZW49OCwKLSAgICAgICAgICAgICBvbGRfcHJlY2lzaW9uPTQsCi0gICAgICAgICAgICAg ZXhwZWN0ZWRfcmVzPSdBTFRFUiBUQUJMRSB7c2NoZW1hfS57dGFibGV9XG4gICAgQUxURVIgQ09M VU1OICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ3tjb2x1bW59IFRZUEUgbnVtZXJpYyAo e2xlbn0sIHtwcmVjaXNpb259KTsnCi0gICAgICAgICApKSwKLSAgICAgICAgKCdtc3FsIGNvbHVt biBjaGFuZ2UgbnVtZXJpYyBhcnJheSBsZW4gYW5kIHByZWNpc2lvbicsCi0gICAgICAgICBkaWN0 KAotICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvY29sdW1uL21zcWwvJywKLSAgICAgICAgICAg ICBkYXRhX3R5cGU9J251bWVyaWMoMTAsNSlbXScsCi0gICAgICAgICAgICAgbmV3X2xlbj0xNSwK LSAgICAgICAgICAgICBuZXdfcHJlY2lzaW9uPTgsCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmVz PSdBTFRFUiBUQUJMRSB7c2NoZW1hfS57dGFibGV9XG4gICAgQUxURVIgQ09MVU1OICcKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgJ3tjb2x1bW59IFRZUEUgbnVtZXJpYyAoe2xlbn0sIHtwcmVj aXNpb259KVtdOycKLSAgICAgICAgICkpLAotICAgICAgICAoJ21zcWwgY29sdW1uIGNoYW5nZSBu dW1lcmljIGxlbiBhbmQgcHJlY2lzaW9uJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAg dXJsPScvYnJvd3Nlci9jb2x1bW4vbXNxbC8nLAotICAgICAgICAgICAgIGRhdGFfdHlwZT0nbnVt ZXJpYygxMiw2KScsCi0gICAgICAgICAgICAgbmV3X2xlbj0xNCwKLSAgICAgICAgICAgICBuZXdf cHJlY2lzaW9uPTksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmVzPSdBTFRFUiBUQUJMRSB7c2No ZW1hfS57dGFibGV9XG4gICAgQUxURVIgQ09MVU1OICcKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgJ3tjb2x1bW59IFRZUEUgbnVtZXJpYyAoe2xlbn0sIHtwcmVjaXNpb259KTsnCi0gICAgICAg ICApKQotICAgIF0KLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5kYl9uYW1l ID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBz Y2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQotICAgICAgICBzZWxm LnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBzZWxmLmRiX2lk ID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMu Y29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYu ZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRv IGFkZCBhIHRhYmxlLiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNj aGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1h X25hbWUiXQorY2xhc3MgVGVzdENvbHVtR2V0TXNxbDoKKyAgICAiIiIKKyAgICBXaGVuIHRoZSBj b2x1bW4gZ2V0IHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgIGZvciBhIG1zcWwg Y29sdW1uCisgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzLAorICAgICIiIgorICAgIEBweXRlc3Qu bWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgJ2RhdGFfdHlwZSwgZXhwZWN0ZWRfcmVzLCcKKyAg ICAgICAgJ29sZF9sZW4sIG5ld19sZW4sIG9sZF9wcmVjaXNpb24sIG5ld19wcmVjaXNpb24nLCBb CisgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgJ3RpbWVzdGFtcCgzKSB3aXRoIHRpbWUg em9uZVtdJywKKyAgICAgICAgICAgICAgICAnQUxURVIgVEFCTEUge3NjaGVtYX0ue3RhYmxlfVxu ICAgIEFMVEVSIENPTFVNTiAnCisgICAgICAgICAgICAgICAgJ3tjb2x1bW59IFRZUEUgdGltZXN0 YW1wKHtsZW59KSB3aXRoIHRpbWUgem9uZSBbXTsnLAorICAgICAgICAgICAgICAgIE5vbmUsCisg ICAgICAgICAgICAgICAgNiwKKyAgICAgICAgICAgICAgICBOb25lLAorICAgICAgICAgICAgICAg IE5vbmUsCisgICAgICAgICAgICApLAorICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgICd0 aW1lc3RhbXAoNCkgd2l0aCB0aW1lIHpvbmUnLAorICAgICAgICAgICAgICAgICdBTFRFUiBUQUJM RSB7c2NoZW1hfS57dGFibGV9XG4gICAgQUxURVIgQ09MVU1OICcKKyAgICAgICAgICAgICAgICAn e2NvbHVtbn0gVFlQRSB0aW1lc3RhbXAoe2xlbn0pIHdpdGggdGltZSB6b25lIDsnLAorICAgICAg ICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICAgICAgNywKKyAgICAgICAgICAgICAgICBOb25l LAorICAgICAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICApLAorICAgICAgICAgICAgKAor ICAgICAgICAgICAgICAgICdudW1lcmljKDUsMilbXScsCisgICAgICAgICAgICAgICAgJ0FMVEVS IFRBQkxFIHtzY2hlbWF9Lnt0YWJsZX1cbiAgICBBTFRFUiBDT0xVTU4gJworICAgICAgICAgICAg ICAgICd7Y29sdW1ufSBUWVBFIG51bWVyaWMgKHtsZW59LCB7cHJlY2lzaW9ufSlbXTsnLAorICAg ICAgICAgICAgICAgIDUsCisgICAgICAgICAgICAgICAgTm9uZSwKKyAgICAgICAgICAgICAgICBO b25lLAorICAgICAgICAgICAgICAgIDQsCisgICAgICAgICAgICApLAorICAgICAgICAgICAgKAor ICAgICAgICAgICAgICAgICdudW1lcmljKDYsMyknLAorICAgICAgICAgICAgICAgICdBTFRFUiBU QUJMRSB7c2NoZW1hfS57dGFibGV9XG4gICAgQUxURVIgQ09MVU1OICcKKyAgICAgICAgICAgICAg ICAne2NvbHVtbn0gVFlQRSBudW1lcmljICh7bGVufSwge3ByZWNpc2lvbn0pOycsCisgICAgICAg ICAgICAgICAgNiwKKyAgICAgICAgICAgICAgICBOb25lLAorICAgICAgICAgICAgICAgIE5vbmUs CisgICAgICAgICAgICAgICAgNSwKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAoCisgICAg ICAgICAgICAgICAgJ251bWVyaWMoNiwzKVtdJywKKyAgICAgICAgICAgICAgICAnQUxURVIgVEFC TEUge3NjaGVtYX0ue3RhYmxlfVxuICAgIEFMVEVSIENPTFVNTiAnCisgICAgICAgICAgICAgICAg J3tjb2x1bW59IFRZUEUgbnVtZXJpYyAoe2xlbn0sIHtwcmVjaXNpb259KVtdOycsCisgICAgICAg ICAgICAgICAgTm9uZSwKKyAgICAgICAgICAgICAgICA4LAorICAgICAgICAgICAgICAgIDMsCisg ICAgICAgICAgICAgICAgTm9uZSwKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAoCisgICAg ICAgICAgICAgICAgJ251bWVyaWMoNiw0KScsCisgICAgICAgICAgICAgICAgJ0FMVEVSIFRBQkxF IHtzY2hlbWF9Lnt0YWJsZX1cbiAgICBBTFRFUiBDT0xVTU4gJworICAgICAgICAgICAgICAgICd7 Y29sdW1ufSBUWVBFIG51bWVyaWMgKHtsZW59LCB7cHJlY2lzaW9ufSk7JywKKyAgICAgICAgICAg ICAgICBOb25lLAorICAgICAgICAgICAgICAgIDgsCisgICAgICAgICAgICAgICAgNCwKKyAgICAg ICAgICAgICAgICBOb25lLAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICgKKyAgICAgICAg ICAgICAgICAnbnVtZXJpYygxMCw1KVtdJywKKyAgICAgICAgICAgICAgICAnQUxURVIgVEFCTEUg e3NjaGVtYX0ue3RhYmxlfVxuICAgIEFMVEVSIENPTFVNTiAnCisgICAgICAgICAgICAgICAgJ3tj b2x1bW59IFRZUEUgbnVtZXJpYyAoe2xlbn0sIHtwcmVjaXNpb259KVtdOycsCisgICAgICAgICAg ICAgICAgTm9uZSwKKyAgICAgICAgICAgICAgICAxNSwKKyAgICAgICAgICAgICAgICBOb25lLAor ICAgICAgICAgICAgICAgIDgsCisgICAgICAgICAgICApLAorICAgICAgICAgICAgKAorICAgICAg ICAgICAgICAgICdudW1lcmljKDEyLDYpJywKKyAgICAgICAgICAgICAgICAnQUxURVIgVEFCTEUg e3NjaGVtYX0ue3RhYmxlfVxuICAgIEFMVEVSIENPTFVNTiAnCisgICAgICAgICAgICAgICAgJ3tj b2x1bW59IFRZUEUgbnVtZXJpYyAoe2xlbn0sIHtwcmVjaXNpb259KTsnLAorICAgICAgICAgICAg ICAgIE5vbmUsCisgICAgICAgICAgICAgICAgMTQsCisgICAgICAgICAgICAgICAgTm9uZSwKKyAg ICAgICAgICAgICAgICA5LAorICAgICAgICAgICAgKQorICAgICAgICBdCisgICAgKQorICAgIGRl ZiB0ZXN0X2NvbHVtbl9wdXQoCisgICAgICAgIHNlbGYsCisgICAgICAgIHJlcXVlc3QsCisgICAg ICAgIGNvbnRleHRfb2ZfdGVzdHMsCisgICAgICAgIGRhdGFfdHlwZSwKKyAgICAgICAgZXhwZWN0 ZWRfcmVzLAorICAgICAgICBvbGRfbGVuLAorICAgICAgICBuZXdfbGVuLAorICAgICAgICBvbGRf cHJlY2lzaW9uLAorICAgICAgICBuZXdfcHJlY2lzaW9uCisgICAgKToKKyAgICAgICAgcmVxdWVz dC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIv Y29sdW1uL21zcWwvJworCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sn dGVzdF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Nl cnZlciddCisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRh YmFzZSddWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3Nl cnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCdd CisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorCisg ICAgICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0K KyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9uYW1l J10KKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfaWQn XQorCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2Vs ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGls cy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsiaW5m byJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKKwogICAgICAgICBzY2hlbWFfcmVz cG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25h bWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFk ZCBhIHRhYmxlLiIpCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5k IHRoZSBzY2hlbWEuIikKKwogICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfY29sdW1u XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQogICAgICAgICBzZWxmLnRhYmxlX2lkID0g dGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVt YV9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnRhYmxlX25hbWUpCi0gICAgICAgIHNlbGYuY29sdW1uX25hbWUgPSAidGVzdF9jb2x1 bW5fbXNxbF8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi5jb2x1 bW5faWQgPSBjb2x1bW5zX3V0aWxzLmNyZWF0ZV9jb2x1bW4oc2VsZi5zZXJ2ZXIsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFt ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNvbHVtbl9uYW1lLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRhdGFfdHlw ZSkKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgorCisgICAgICAgIGNvbHVtbl9uYW1lID0gInRl c3RfY29sdW1uX2dldF9tc3FsXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAg ICBjb2x1bW5faWQgPSBjb2x1bW5zX3V0aWxzLmNyZWF0ZV9jb2x1bW4oc2VsZi5zZXJ2ZXIsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi50YWJsZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29sdW1uX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYXRhX3R5cGUpCiAgICAgICAgIGNvbF9yZXNwb25zZSA9IGNv bHVtbnNfdXRpbHMudmVyaWZ5X2NvbHVtbihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb2x1 bW5fbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbHVtbl9uYW1lKQogICAgICAgICBpZiBub3QgY29sX3Jlc3BvbnNlOgogICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgY29sdW1uIHRvIHVwZGF0ZS4i KQogCi0gICAgICAgIGRhdGEgPSB7ImF0dG51bSI6IHNlbGYuY29sdW1uX2lkfQorICAgICAgICBk YXRhID0geyJhdHRudW0iOiBjb2x1bW5faWR9CiAKICAgICAgICAgZXhwZWN0ZWRfbGVuID0gTm9u ZQogICAgICAgICBleHBlY3RlZF9wcmVjaXNpb24gPSBOb25lCiAKLSAgICAgICAgaWYgaGFzYXR0 cihzZWxmLCAnbmV3X2xlbicpOgotICAgICAgICAgICAgZGF0YVsiYXR0bGVuIl0gPSBzZWxmLm5l d19sZW4KLSAgICAgICAgICAgIGV4cGVjdGVkX2xlbiA9IHNlbGYubmV3X2xlbgotICAgICAgICBp ZiBoYXNhdHRyKHNlbGYsICduZXdfcHJlY2lzaW9uJyk6Ci0gICAgICAgICAgICBkYXRhWyJhdHRw cmVjaXNpb24iXSA9IHNlbGYubmV3X3ByZWNpc2lvbgotICAgICAgICAgICAgZXhwZWN0ZWRfcHJl Y2lzaW9uID0gc2VsZi5uZXdfcHJlY2lzaW9uCisgICAgICAgIGlmIG5ld19sZW4gaXMgbm90IE5v bmU6CisgICAgICAgICAgICBkYXRhWyJhdHRsZW4iXSA9IG5ld19sZW4KKyAgICAgICAgICAgIGV4 cGVjdGVkX2xlbiA9IG5ld19sZW4KKyAgICAgICAgZWxpZiBvbGRfbGVuIGlzIG5vdCBOb25lOgor ICAgICAgICAgICAgZXhwZWN0ZWRfbGVuID0gb2xkX2xlbgorCisgICAgICAgIGlmIG5ld19wcmVj aXNpb24gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBkYXRhWyJhdHRwcmVjaXNpb24iXSA9IG5l d19wcmVjaXNpb24KKyAgICAgICAgICAgIGV4cGVjdGVkX3ByZWNpc2lvbiA9IG5ld19wcmVjaXNp b24KKyAgICAgICAgZWxpZiBvbGRfcHJlY2lzaW9uIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg ZXhwZWN0ZWRfcHJlY2lzaW9uID0gb2xkX3ByZWNpc2lvbgogCiAgICAgICAgIHJlc3BvbnNlID0g c2VsZi50ZXN0ZXIuZ2V0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVS X0dST1VQKSArICcvJyArCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQ KSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKICAgICAg ICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zY2hl bWFfaWQpICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLnRhYmxlX2lkKSArICcvJyArCi0g ICAgICAgICAgICBzdHIoc2VsZi5jb2x1bW5faWQpICsgJz8nICsKKyAgICAgICAgICAgIHN0cihj b2x1bW5faWQpICsgJz8nICsKICAgICAgICAgICAgIHVybGVuY29kZShkYXRhKSwKICAgICAgICAg ICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVz cG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKIAorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8 IHNob3VsZC5iZS5lcXVhbC50bygyMDApCiAgICAgICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxv YWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQotCi0gICAgICAgIGlmIG5vdCBleHBl Y3RlZF9sZW4gYW5kIGhhc2F0dHIoc2VsZiwgJ29sZF9sZW4nKToKLSAgICAgICAgICAgIGV4cGVj dGVkX2xlbiA9IHNlbGYub2xkX2xlbgotCi0gICAgICAgIGlmIG5vdCBleHBlY3RlZF9wcmVjaXNp b24gYW5kIGhhc2F0dHIoc2VsZiwgJ29sZF9wcmVjaXNpb24nKToKLSAgICAgICAgICAgIGV4cGVj dGVkX3ByZWNpc2lvbiA9IHNlbGYub2xkX3ByZWNpc2lvbgotCi0gICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWxzKAotICAgICAgICAgICAgcmVzcG9uc2VfZGF0YVsnZGF0YSddLAotICAgICAgICAgICAg c2VsZi5leHBlY3RlZF9yZXMuZm9ybWF0KAorICAgICAgICByZXNwb25zZV9kYXRhWydkYXRhJ10g fCBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAgICBleHBlY3RlZF9yZXMuZm9ybWF0KAog ICAgICAgICAgICAgICAgICoqZGljdCgKICAgICAgICAgICAgICAgICAgICAgWygnc2NoZW1hJywg c2VsZi5zY2hlbWFfbmFtZSksCiAgICAgICAgICAgICAgICAgICAgICAoJ3RhYmxlJywgc2VsZi50 YWJsZV9uYW1lKSwKLSAgICAgICAgICAgICAgICAgICAgICgnY29sdW1uJywgc2VsZi5jb2x1bW5f bmFtZSksCisgICAgICAgICAgICAgICAgICAgICAoJ2NvbHVtbicsIGNvbHVtbl9uYW1lKSwKICAg ICAgICAgICAgICAgICAgICAgICgnbGVuJywgZXhwZWN0ZWRfbGVuKSwKICAgICAgICAgICAgICAg ICAgICAgICgncHJlY2lzaW9uJywgZXhwZWN0ZWRfcHJlY2lzaW9uKQogICAgICAgICAgICAgICAg ICAgICAgXQpAQCAtMTgyLDUgKzIxMSw1IEBAIGNsYXNzIENvbHVtbk1zcWxUZXN0Q2FzZShCYXNl VGVzdEdlbmVyYXRvcik6CiAgICAgICAgICkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAg ICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5k aXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAg ICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rl ciwgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1uL3Rl c3RzL3Rlc3RfY29sdW1uX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW4vdGVzdHMvdGVzdF9jb2x1 bW5fcHV0LnB5CmluZGV4IDkyMmViYjJmLi45Y2FhMjNhYyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2NvbHVtbi90ZXN0cy90ZXN0X2NvbHVtbl9wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbi90 ZXN0cy90ZXN0X2NvbHVtbl9wdXQucHkKQEAgLTEwLDczICsxMCw5OCBAQAogaW1wb3J0IGpzb24K IGltcG9ydCB1dWlkCiAKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50 ZXN0cyBcCiAgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscwogZnJvbSBwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9y dCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAg ZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBC YXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQg Y29udmVydF9yZXNwb25zZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21f cmVzcG9uc2UKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSBy ZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBm cm9tIC4gaW1wb3J0IHV0aWxzIGFzIGNvbHVtbnNfdXRpbHMKIAogCi1jbGFzcyBDb2x1bW5QdXRU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3aWxsIHVwZGF0 ZSB0aGUgY29sdW1uIHVuZGVyIHRhYmxlIG5vZGUuIiIiCi0gICAgc2NlbmFyaW9zID0gWwotICAg ICAgICAoJ1B1dCBjb2x1bW4gTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvY29sdW1uL29i ai8nKSkKLSAgICBdCitjbGFzcyBUZXN0Q29sdW1uUHV0OgorICAgIGRlZiB0ZXN0X2NvbHVtbl9w dXQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAg ICBXaGVuIHRoZSBjb2x1bW4gcHV0IHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAg ICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3Qu YWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2Nv bHVtbi9vYmovJworCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVz dF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZl ciddCisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRhYmFz ZSddWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3NlcnZl cl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCddCisg ICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorCisgICAg ICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KKyAg ICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9uYW1lJ10K KyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfaWQnXQor CisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5T RVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJd ID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKIAotICAgIGRlZiBzZXRVcChzZWxmKToK LSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1b ImRiX25hbWUiXQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVt YSJdWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQi XQotICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgZGJf Y29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJf R1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEn XVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBj b25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBhIHRhYmxlLiIpCi0gICAgICAgIHNlbGYuc2NoZW1h X2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUg PSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQogICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBz Y2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNj aGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAg cmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBhIHRhYmxl LiIpCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hl bWEuIikKKwogICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfY29sdW1uXyVzIiAlIChz dHIodXVpZC51dWlkNCgpKVsxOjhdKQogICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0 aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRh YmxlX25hbWUpCi0gICAgICAgIHNlbGYuY29sdW1uX25hbWUgPSAidGVzdF9jb2x1bW5fcHV0XyVz IiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxmLmNvbHVtbl9pZCA9IGNv bHVtbnNfdXRpbHMuY3JlYXRlX2NvbHVtbihzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVt YV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnRhYmxlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuY29sdW1uX25hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChz ZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0aGUgY29sdW1uIHVu ZGVyIHRhYmxlIG5vZGUuIiIiCisgICAgICAgIGNvbHVtbl9uYW1lID0gInRlc3RfY29sdW1uX2Rl bGV0ZV8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgY29sdW1uX2lkID0g Y29sdW1uc191dGlscy5jcmVhdGVfY29sdW1uKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFi bGVfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbHVtbl9uYW1lKQogICAgICAgICBjb2xfcmVzcG9uc2UgPSBjb2x1bW5zX3V0aWxzLnZlcmlm eV9jb2x1bW4oc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY29sdW1uX25hbWUpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5fbmFtZSkK ICAgICAgICAgaWYgbm90IGNvbF9yZXNwb25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiQ291bGQgbm90IGZpbmQgdGhlIGNvbHVtbiB0byB1cGRhdGUuIikKKwogICAgICAgICBkYXRh ID0gewotICAgICAgICAgICAgImF0dG51bSI6IHNlbGYuY29sdW1uX2lkLAotICAgICAgICAgICAg Im5hbWUiOiBzZWxmLmNvbHVtbl9uYW1lLAorICAgICAgICAgICAgImF0dG51bSI6IGNvbHVtbl9p ZCwKKyAgICAgICAgICAgICJuYW1lIjogY29sdW1uX25hbWUsCiAgICAgICAgICAgICAiZGVzY3Jp cHRpb24iOiAiVGhpcyBpcyB0ZXN0IGNvbW1lbnQgZm9yIGNvbHVtbiIKICAgICAgICAgfQogICAg ICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKLSAgICAgICAgICAgIHNlbGYudXJsICsg c3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgdXJsICsgc3RyKHV0 aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lk KSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKwogICAgICAgICAg ICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi50YWJs ZV9pZCkgKyAnLycgKwotICAgICAgICAgICAgc3RyKHNlbGYuY29sdW1uX2lkKSwKKyAgICAgICAg ICAgIHN0cihjb2x1bW5faWQpLAogICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAog ICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVx dWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1 c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9 IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0X2pzb25f dmFsdWVzX2Zyb21fcmVzcG9uc2UoCisgICAgICAgICAgICBqc29uX3Jlc3BvbnNlLAorICAgICAg ICAgICAgJ2NvbHVtbicsCisgICAgICAgICAgICAncGdhZG1pbi5ub2RlLmNvbHVtbicsCisgICAg ICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgICdpY29uLWNvbHVtbicsCisgICAgICAgICAgICBj b2x1bW5fbmFtZQorICAgICAgICApCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAg ICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29u bmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAg ZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNl bGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2No ZWNrX2NvbnN0cmFpbnQvdGVzdHMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMv Y2hlY2tfY29uc3RyYWludC90ZXN0cy9fX2luaXRfXy5weQppbmRleCBkZmZiOWM3MC4uNTkwMDI2 YWQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3Rl c3RzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJh aW50L3Rlc3RzL19faW5pdF9fLnB5CkBAIC02LDkgKzYsMyBAQAogIyBUaGlzIHNvZnR3YXJlIGlz IHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCi0jIGZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IK LSMKLSMKLSMgY2xhc3MgQ2hlY2tDb25zdHJhaW50VGVzdEdlbmVyYXRvcihCYXNlVGVzdEdlbmVy YXRvcik6Ci0jICAgICBkZWYgcnVuVGVzdChzZWxmKToKLSMgICAgICAgICByZXR1cm4gW10KZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3Rlc3RzL3Rl c3RfY2hlY2tfY29uc3RyYWludF9hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tf Y29uc3RyYWludC90ZXN0cy90ZXN0X2NoZWNrX2NvbnN0cmFpbnRfYWRkLnB5CmluZGV4IGIyMDJh MThjLi45ZjE4N2Q4ZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2Nv bnN0cmFpbnQvdGVzdHMvdGVzdF9jaGVja19jb25zdHJhaW50X2FkZC5weQorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3RyYWludC90ZXN0cy90ZXN0X2NoZWNrX2NvbnN0cmFp bnRfYWRkLnB5CkBAIC0xMCw2NyArMTAsNzMgQEAKIGltcG9ydCBqc29uCiBpbXBvcnQgdXVpZAog CitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMu dGVzdHMgXAogICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKIGZyb20gcGdhZG1pbi5i cm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBv cnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAotICAg IGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20g cGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGFzc2VydF9qc29uX3ZhbHVlc19mcm9t X3Jlc3BvbnNlLCBcCisgICAgY29udmVydF9yZXNwb25zZV90b19qc29uCiBmcm9tIHJlZ3Jlc3Np b24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIAogCi1jbGFz cyBDaGVja0NvbnN0cmFpbnRBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIi VGhpcyBjbGFzcyB3aWxsIGFkZCBjaGVjayBjb25zdHJhaW50IHRvIGV4aXN0aW5nIHRhYmxlIiIi Ci0gICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCi0gICAgc2NlbmFyaW9zID0gWwotICAg ICAgICAoJ0FkZCBjaGVjayBjb25zdHJhaW50IHRvIHRhYmxlJywKLSAgICAgICAgIGRpY3QodXJs PScvYnJvd3Nlci9jaGVja19jb25zdHJhaW50L29iai8nKSkKLSAgICBdCitAcHl0ZXN0Lm1hcmsu c2tpcF9kYXRhYmFzZXMoWydncGRiJ10pCitjbGFzcyBUZXN0Q2hlY2tDb25zdHJhaW50QWRkOgor ICAgIEBweXRlc3QubWFyay51c2VmaXh0dXJlcygncmVxdWlyZV9kYXRhYmFzZV9jb25uZWN0aW9u JykKKyAgICBkZWYgdGVzdF9jb25zdHJhaW50X2FkZChzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToK KyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIGNvbnN0cmFpbnQgYWRkIHJlcXVlc3QgaXMg c2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAg ICAgIiIiCisgICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGll bnQnXQorICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAg ICBzZXJ2ZXJfZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddCiAK LSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHN1cGVyKENoZWNrQ29uc3RyYWludEFkZFRl c3RDYXNlLCBzZWxmKS5zZXRVcCgpCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2Rl X2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2NoZW1hX2luZm8gPSBw YXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBz Y2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZv WyJkYl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJh c2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQotICAgICAg ICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSBjaGVjayAi Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbnN0cmFpbnQuIikKLSAgICAgICAgc2Vs Zi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2VsZi5zY2hl bWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9yZXNw b25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFt ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGRiX25hbWUgPSBzZXJ2ZXJfZGF0YVsnZGJfbmFt ZSddCisgICAgICAgIHNjaGVtYV9uYW1lID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9uYW1lJ10KKyAg ICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlcnZl ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBh ZGQgYSBjaGVjayAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbnN0cmFpbnQuIikK LSAgICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRhYmxlX2NoZWNrY29uc3RyYWludF9hZGRfJXMi ICUgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkK LSAgICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VsZi5z ZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQorICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBhIGNoZWNrICcKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uc3RyYWludC4nKQorICAgICAgICB0YWJsZV9u YW1lID0gJ3RhYmxlX2NoZWNrY29uc3RyYWludF9hZGRfJXMnICUgXAorICAgICAgICAgICAgICAg ICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHRhYmxlX2lkID0gdGFibGVz X3V0aWxzLmNyZWF0ZV90YWJsZShzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0YWJsZV9uYW1lKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0g ICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgY2hlY2sgY29uc3RyYWludCB0byB0YWJs ZS4iIiIKLSAgICAgICAgY2hlY2tfY29uc3RyYWludF9uYW1lID0gInRlc3RfY2hlY2tjb25zdHJh aW50X2FkZF8lcyIgJSBcCisgICAgICAgIGNoZWNrX2NvbnN0cmFpbnRfbmFtZSA9ICd0ZXN0X2No ZWNrY29uc3RyYWludF9hZGRfJXMnICUgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgZGF0YSA9IHsibmFtZSI6IGNoZWNr X2NvbnN0cmFpbnRfbmFtZSwKLSAgICAgICAgICAgICAgICAiY29uc3JjIjogIiAoaWQgPiAwKSIs Ci0gICAgICAgICAgICAgICAgImNvbnZhbGlkYXRlZCI6IFRydWUsCi0gICAgICAgICAgICAgICAg ImNvbW1lbnQiOiAidGhpcyBpcyB0ZXN0IGNvbW1lbnQifQotICAgICAgICByZXNwb25zZSA9IHNl bGYudGVzdGVyLnBvc3QoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJf R1JPVVApICsgJy8nICsKLSAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBz dHIoc2VsZi5kYl9pZCkgKwotICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuc2NoZW1hX2lkKSAr ICcvJyArIHN0cihzZWxmLnRhYmxlX2lkKSArICcvJywKKyAgICAgICAgZGF0YSA9IHsnbmFtZSc6 IGNoZWNrX2NvbnN0cmFpbnRfbmFtZSwKKyAgICAgICAgICAgICAgICAnY29uc3JjJzogJyAoaWQg PiAwKScsCisgICAgICAgICAgICAgICAgJ2NvbnZhbGlkYXRlZCc6IFRydWUsCisgICAgICAgICAg ICAgICAgJ2NvbW1lbnQnOiAndGhpcyBpcyB0ZXN0IGNvbW1lbnQnfQorICAgICAgICByZXNwb25z ZSA9IGh0dHBfY2xpZW50LnBvc3QoCisgICAgICAgICAgICBzZWxmLl9fYnVpbGRfdXJsKHNlcnZl cl9kYXRhLCB0YWJsZV9pZCksCiAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCiAg ICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBkZWYgdGVhckRvd24oc2Vs Zik6Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2Vf dXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9p ZCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAw KQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3Bv bnNlKQorICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAgICAg ICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAnY2hlY2tfY29uc3RyYWludCcsCisgICAg ICAgICAgICAncGdhZG1pbi5ub2RlLmNoZWNrX2NvbnN0cmFpbnQnLAorICAgICAgICAgICAgRmFs c2UsCisgICAgICAgICAgICAnaWNvbi1jaGVja19jb25zdHJhaW50X2JhZCcsCisgICAgICAgICAg ICBjaGVja19jb25zdHJhaW50X25hbWUKKyAgICAgICAgKQorCisgICAgZGVmIF9fYnVpbGRfdXJs KHNlbGYsIHNlcnZlcl9pbmZvcm1hdGlvbiwgdGFibGVfaWQpOgorICAgICAgICB1cmwgPSAnL2Jy b3dzZXIvY2hlY2tfY29uc3RyYWludC9vYmovJworICAgICAgICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJf aW5mb3JtYXRpb25bJ3NlcnZlcl9pZCddCisgICAgICAgIGRiX2lkID0gc2VydmVyX2luZm9ybWF0 aW9uWydkYl9pZCddCisgICAgICAgIHNjaGVtYV9pZCA9IHNlcnZlcl9pbmZvcm1hdGlvblsnc2No ZW1hX2lkJ10KKworICAgICAgICByZXR1cm4gdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkg KyAnLycgKyBcCisgICAgICAgICAgICBzdHIoc2VydmVyX2lkKSArICcvJyArIHN0cihkYl9pZCkg KyBcCisgICAgICAgICAgICAnLycgKyBzdHIoc2NoZW1hX2lkKSArICcvJyArIHN0cih0YWJsZV9p ZCkgKyAnLycKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJh aW50L3Rlc3RzL3Rlc3RfY2hlY2tfY29uc3RyYWludF9kZWxldGUucHkgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29u c3RyYWludHMvY2hlY2tfY29uc3RyYWludC90ZXN0cy90ZXN0X2NoZWNrX2NvbnN0cmFpbnRfZGVs ZXRlLnB5CmluZGV4IGFjY2E5ZmQzLi44N2JkMDRmZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2Nv bnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9jaGVja19jb25zdHJhaW50X2Rl bGV0ZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3RyYWludC90ZXN0 cy90ZXN0X2NoZWNrX2NvbnN0cmFpbnRfZGVsZXRlLnB5CkBAIC05LDc0ICs5LDc1IEBACiAKIGlt cG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwog ZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hl bWFzLnRhYmxlcy50ZXN0cyBcCiAgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscwogZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFz LnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCi1mcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGls cyBhcyBcCi0gICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBv cnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVf ZGljdAorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNw b25zZV90b19qc29uCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRl c3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgY2hrX2NvbnN0cmFpbnRf dXRpbHMKIAogCi1jbGFzcyBDaGVja0NvbnN0cmFpbnREZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdl bmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSBjaGVjayBjb25zdHJhaW50 IHRvIGV4aXN0aW5nIHRhYmxlIiIiCi0gICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCi0g ICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoJ0RlbGV0ZSBjaGVjayBjb25zdHJhaW50IHRvIHRh YmxlJywKLSAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci9jaGVja19jb25zdHJhaW50L29iai8n KSkKLSAgICBdCitAcHl0ZXN0Lm1hcmsuc2tpcF9kYXRhYmFzZXMoWydncGRiJ10pCitjbGFzcyBU ZXN0Q2hlY2tDb25zdHJhaW50RGVsZXRlOgorICAgIEBweXRlc3QubWFyay51c2VmaXh0dXJlcygn cmVxdWlyZV9kYXRhYmFzZV9jb25uZWN0aW9uJykKKyAgICBkZWYgdGVzdF9jaGVja19jb25zdHJh aW50X2RlbGV0ZShzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAg IFdoZW4gdGhlIGNoZWNrIGNvbnRyYWludCBERUxFVEUgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBi YWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAg ICAgdXJsID0gJy9icm93c2VyL2NoZWNrX2NvbnN0cmFpbnQvb2JqLycKKworICAgICAgICBodHRw X2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VydmVy ID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VydmVyX2RhdGEgPSBjb250 ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQogCi0gICAgZGVmIHNldFVwKHNlbGYp OgotICAgICAgICBzdXBlcihDaGVja0NvbnN0cmFpbnREZWxldGVUZXN0Q2FzZSwgc2VsZikuc2V0 VXAoKQotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJd Wy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsi c2NoZW1hIl1bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZl cl9pZCJdCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAg ICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNF UlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2Nvblsn ZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQg bm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gZGVsZXRlIGEgY2hlY2sgIgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJjb25zdHJhaW50LiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0g c2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hl bWFfaW5mb1sic2NoZW1hX25hbWUiXQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFf dXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9u YW1lKQorICAgICAgICBkYl9uYW1lID0gc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorICAgICAgICBz ZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgZGJfaWQgPSBzZXJ2 ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzY2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1h X2lkJ10KKyAgICAgICAgc2NoZW1hX25hbWUgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX25hbWUnXQor ICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2Vy dmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgot ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRv IGRlbGV0ZSBhIGNoZWNrICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29uc3RyYWlu dC4iKQotICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfY2hlY2tjb25zdHJhaW50X2Rl bGV0ZV8lcyIgJSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgp KVsxOjhdKQotICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJs ZShzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUpCi0gICAgICAgIHNl bGYuY2hlY2tfY29uc3RyYWludF9uYW1lID0gInRlc3RfY2hlY2tjb25zdHJhaW50X2RlbGV0ZV8l cyIgJSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYuY2hlY2tfY29uc3RyYWludF9pZCA9IFwKKyAgICAg ICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBkZWxl dGUgYSBjaGVjayAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbnN0cmFpbnQuJykK KyAgICAgICAgdGFibGVfbmFtZSA9ICd0YWJsZV9jaGVja2NvbnN0cmFpbnRfZGVsZXRlXyVzJyAl IFwKKyAgICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAg ICB0YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VydmVyLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVfbmFtZSkKKyAgICAgICAg Y2hlY2tfY29uc3RyYWludF9uYW1lID0gJ3Rlc3RfY2hlY2tjb25zdHJhaW50X2RlbGV0ZV8lcycg JSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsx OjhdKQorICAgICAgICBjaGVja19jb25zdHJhaW50X2lkID0gXAogICAgICAgICAgICAgY2hrX2Nv bnN0cmFpbnRfdXRpbHMuY3JlYXRlX2NoZWNrX2NvbnN0cmFpbnQoCi0gICAgICAgICAgICAgICAg c2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgc2VsZi50YWJsZV9u YW1lLAotICAgICAgICAgICAgICAgIHNlbGYuY2hlY2tfY29uc3RyYWludF9uYW1lKQorICAgICAg ICAgICAgICAgIHNlcnZlciwgZGJfbmFtZSwgc2NoZW1hX25hbWUsIHRhYmxlX25hbWUsCisgICAg ICAgICAgICAgICAgY2hlY2tfY29uc3RyYWludF9uYW1lKQogCi0gICAgZGVmIHJ1blRlc3Qoc2Vs Zik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgY2hlY2sgY29uc3RyYWlu dCB0byB0YWJsZS4iIiIKICAgICAgICAgY2hrX2NvbnN0cmFpbnQgPSBjaGtfY29uc3RyYWludF91 dGlscy52ZXJpZnlfY2hlY2tfY29uc3RyYWludCgKLSAgICAgICAgICAgIHNlbGYuc2VydmVyLCBz ZWxmLmRiX25hbWUsIHNlbGYuY2hlY2tfY29uc3RyYWludF9uYW1lKQorICAgICAgICAgICAgc2Vy dmVyLCBkYl9uYW1lLCBjaGVja19jb25zdHJhaW50X25hbWUpCiAgICAgICAgIGlmIG5vdCBjaGtf Y29uc3RyYWludDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQg dGhlIGNoZWNrIGNvbnN0cmFpbnQgdG8gZGVsZXRlLiIpCi0gICAgICAgIHJlc3BvbnNlID0gc2Vs Zi50ZXN0ZXIuZGVsZXRlKAotICAgICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0vezZ9 Ii5mb3JtYXQoc2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lk LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z Y2hlbWFfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnRhYmxlX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5jaGVja19jb25zdHJhaW50X2lkKSwKKyAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbignQ291bGQgbm90IGZpbmQgdGhlIGNoZWNrIGNvbnN0cmFpbnQgdG8gZGVsZXRlLicp CisKKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2NsaWVudC5kZWxldGUoCisgICAgICAgICAgICAn ezB9ezF9L3syfS97M30vezR9L3s1fS97Nn0nLmZvcm1hdCh1cmwsIHV0aWxzLlNFUlZFUl9HUk9V UCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZl cl9pZCwgZGJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzY2hlbWFfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0YWJsZV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNoZWNrX2NvbnN0cmFpbnRfaWQpLAogICAgICAgICAgICAgZm9sbG93X3JlZGly ZWN0cz1UcnVlCiAgICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uu c3RhdHVzX2NvZGUsIDIwMCkKIAotICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIyBE aXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0 X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICByZXNw b25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25f cmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGpz b25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2luZm8nKSA+IHNob3VsZC5iZS5lcXVhbC50 bygKKyAgICAgICAgICAgICdDaGVjayBjb25zdHJhaW50IGRyb3BwZWQuJykKKyAgICAgICAganNv bl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZXJyb3Jtc2cnKSA+IHNob3VsZC5iZS5lbXB0 eQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdkYXRhJykKKyAgICAg ICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgncmVzdWx0JykgPiBzaG91bGQuYmUu bm9uZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdzdWNjZXNzJykg PiBzaG91bGQuYmUuZXF1YWwudG8oMSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50 cy9jaGVja19jb25zdHJhaW50L3Rlc3RzL3Rlc3RfY2hlY2tfY29uc3RyYWludF9nZXQucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3RyYWludC90ZXN0cy90ZXN0X2NoZWNrX2Nv bnN0cmFpbnRfZ2V0LnB5CmluZGV4IDQxMjQ3YjVhLi44NzM5YzRkOCAxMDA2NDQKLS0tIGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9jaGVja19jb25z dHJhaW50X2dldC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3RyYWlu dC90ZXN0cy90ZXN0X2NoZWNrX2NvbnN0cmFpbnRfZ2V0LnB5CkBAIC05LDcxICs5LDc3IEBACiAK IGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQK KwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5z Y2hlbWFzLnRhYmxlcy50ZXN0cyBcCiAgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscwog ZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hl bWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCi1mcm9tIHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1 dGlscyBhcyBcCi0gICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBp bXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25v ZGVfZGljdAorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9y ZXNwb25zZV90b19qc29uCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0 IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgY2hrX2NvbnN0cmFp bnRfdXRpbHMKIAogCi1jbGFzcyBDaGVja0NvbnN0cmFpbnRHZXRUZXN0Q2FzZShCYXNlVGVzdEdl bmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3aWxsIGZldGNoIGNoZWNrIGNvbnN0cmFpbnQg dG8gZXhpc3RpbmcgdGFibGUiIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KK0Bw eXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNzIFRlc3RDaGVja0NvbnN0 cmFpbnRHZXQ6CisgICAgQHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCdyZXF1aXJlX2RhdGFiYXNl X2Nvbm5lY3Rpb24nKQorICAgIGRlZiB0ZXN0X2NoZWNrX2NvbnN0cmFpbnRfZ2V0KHNlbGYsIGNv bnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgY2hlY2sgY29u c3RyYWludCBHRVQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJl dHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2No ZWNrX2NvbnN0cmFpbnQvb2JqLycKIAotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdGZXRj aCBjaGVjayBjb25zdHJhaW50IHRvIHRhYmxlJywKLSAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nl ci9jaGVja19jb25zdHJhaW50L29iai8nKSkKLSAgICBdCisgICAgICAgIHRlc3RlciA9IGNvbnRl eHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VydmVyID0gY29udGV4dF9vZl90 ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VydmVyX2RhdGEgPSBjb250ZXh0X29mX3Rlc3RzWydz ZXJ2ZXJfaW5mb3JtYXRpb24nXQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzdXBl cihDaGVja0NvbnN0cmFpbnRHZXRUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQotICAgICAgICBzZWxm LmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0g ICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAg ICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIHNl bGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAgICBkYl9jb24gPSBkYXRhYmFz ZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9p ZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQi XToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0 YWJhc2UgdG8gZmV0Y2ggYSBjaGVjayAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImNv bnN0cmFpbnQuIikKLSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1h X2lkIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFt ZSJdCi0gICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1h cyhzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGRiX25h bWUgPSBzZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisgICAgICAgIHNlcnZlcl9pZCA9IHNlcnZlcl9k YXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBkYl9pZCA9IHNlcnZlcl9kYXRhWydkYl9pZCddCisg ICAgICAgIHNjaGVtYV9pZCA9IHNlcnZlcl9kYXRhWydzY2hlbWFfaWQnXQorICAgICAgICBzY2hl bWFfbmFtZSA9IHNlcnZlcl9kYXRhWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNjaGVtYV9yZXNw b25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZXJ2ZXIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25h bWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZmV0Y2ggYSBjaGVjayAiCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbnN0cmFpbnQuIikKLSAgICAgICAgc2VsZi50 YWJsZV9uYW1lID0gInRhYmxlX2NoZWNrY29uc3RyYWludF9nZXRfJXMiICUgXAotICAgICAgICAg ICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi50 YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXIsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z Y2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi50YWJsZV9uYW1lKQotICAgICAgICBzZWxmLmNoZWNrX2NvbnN0cmFpbnRfbmFt ZSA9ICJ0ZXN0X2NoZWNrY29uc3RyYWludF9nZXRfJXMiICUgXAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxm LmNoZWNrX2NvbnN0cmFpbnRfaWQgPSBcCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0Nv dWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZmV0Y2ggYSBjaGVjayAnCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ2NvbnN0cmFpbnQuJykKKyAgICAgICAgdGFibGVfbmFtZSA9ICd0YWJs ZV9jaGVja2NvbnN0cmFpbnRfZ2V0XyVzJyAlIFwKKyAgICAgICAgICAgICAgICAgICAgIChzdHIo dXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICB0YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVh dGVfdGFibGUoc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGFibGVfbmFtZSkKKyAgICAgICAgY2hlY2tfY29uc3RyYWludF9uYW1lID0gJ3Rlc3Rf Y2hlY2tjb25zdHJhaW50X2dldF8lcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBjaGVja19jb25zdHJhaW50X2lk ID0gXAogICAgICAgICAgICAgY2hrX2NvbnN0cmFpbnRfdXRpbHMuY3JlYXRlX2NoZWNrX2NvbnN0 cmFpbnQoCi0gICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5z Y2hlbWFfbmFtZSwgc2VsZi50YWJsZV9uYW1lLAotICAgICAgICAgICAgICAgIHNlbGYuY2hlY2tf Y29uc3RyYWludF9uYW1lKQorICAgICAgICAgICAgICAgIHNlcnZlciwgZGJfbmFtZSwgc2NoZW1h X25hbWUsIHRhYmxlX25hbWUsCisgICAgICAgICAgICAgICAgY2hlY2tfY29uc3RyYWludF9uYW1l KQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2ls bCBmZXRjaCBjaGVjayBjb25zdHJhaW50IHRvIHRhYmxlLiIiIgotICAgICAgICByZXNwb25zZSA9 IHNlbGYudGVzdGVyLmdldCgKLSAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS97NH0vezV9L3s2 fSIuZm9ybWF0KHNlbGYudXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9p ZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2NoZW1hX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi50YWJsZV9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuY2hlY2tfY29uc3RyYWludF9pZCksCisgICAgICAgIHJlc3BvbnNlID0g dGVzdGVyLmdldCgKKyAgICAgICAgICAgICd7MH17MX0vezJ9L3szfS97NH0vezV9L3s2fScuZm9y bWF0KHVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLCBkYl9pZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9pZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlX2lkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tfY29uc3RyYWludF9pZCks CiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUKICAgICAgICAgKQotICAgICAgICBz ZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogCi0gICAgZGVmIHRl YXJEb3duKHNlbGYpOgotICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAg IGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQs IHNlbGYuZGJfaWQpCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVx dWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9f anNvbihyZXNwb25zZSkKKyAgICAgICAgKGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXko J2NvbW1lbnQnKSA+CisgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8oJ3RoaXMgaXMgdGVzdCBj b21tZW50JykpCisgICAgICAgIChqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCduYW1l JykgPgorICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKGNoZWNrX2NvbnN0cmFpbnRfbmFtZSkp CisgICAgICAgIChqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCduc3BuYW1lJykgPgor ICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKHNjaGVtYV9uYW1lKSkKKyAgICAgICAganNvbl9y ZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnb2lkJykKKyAgICAgICAgKGpzb25fcmVzcG9uc2Ug fCBzaG91bGQuaGF2ZS5rZXkoJ2NvbnNyYycpID4KKyAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50 bygnaWQgPiAwJykpCisgICAgICAgIChqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdy ZWxuYW1lJykgPgorICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKHRhYmxlX25hbWUpKQorICAg ICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdjb25ub2luaGVyaXQnKSA+IHNo b3VsZC5iZS5mYWxzZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdj b252YWxpZGF0ZWQnKSA+IHNob3VsZC5iZS50cnVlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29u c3RyYWludHMvY2hlY2tfY29uc3RyYWludC90ZXN0cy90ZXN0X2NoZWNrX2NvbnN0cmFpbnRfcHV0 LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9j aGVja19jb25zdHJhaW50X3B1dC5weQppbmRleCBiMjQwMDYwMi4uNTgzOTJhZjEgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3Rlc3RzL3Rlc3RfY2hl Y2tfY29uc3RyYWludF9wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2Nv bnN0cmFpbnQvdGVzdHMvdGVzdF9jaGVja19jb25zdHJhaW50X3B1dC5weQpAQCAtMTAsNzYgKzEw LDgwIEBACiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBn cmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwKICAgICBpbXBvcnQgdXRp bHMgYXMgdGFibGVzX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl cnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hl bWFfdXRpbHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKLSAgICBkYXRhYmFzZV91dGlscwotZnJvbSBw Z2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNz aW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVs cGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92 YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGlt cG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGNoa19jb25z dHJhaW50X3V0aWxzCiAKIAotY2xhc3MgQ2hlY2tDb25zdHJhaW50UHV0VGVzdENhc2UoQmFzZVRl c3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCB1cGRhdGUgY2hlY2sgY29uc3Ry YWludCB0byBleGlzdGluZyB0YWJsZSIiIgotICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGIn XQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdVcGRhdGUgY2hlY2sgY29uc3RyYWludCB0 byB0YWJsZScsCi0gICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvY2hlY2tfY29uc3RyYWludC9v YmovJykpCi0gICAgXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsnZ3BkYiddKQorY2xh c3MgVGVzdENoZWNrQ29uc3RyYWludFB1dDoKKyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMo J3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlvbicpCisgICAgZGVmIHRlc3RfY2hlY2tfY29uc3Ry YWludF91cGRhdGUoc2VsZiwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAg ICBXaGVuIHRoZSBjaGVjayBjb25zdHJhaW50IFBVVCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJh Y2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAg ICB1cmwgPSAnL2Jyb3dzZXIvY2hlY2tfY29uc3RyYWludC9vYmovJworCisgICAgICAgIGh0dHBf Y2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZXJ2ZXIg PSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZXJ2ZXJfZGF0YSA9IGNvbnRl eHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6 Ci0gICAgICAgIHN1cGVyKENoZWNrQ29uc3RyYWludFB1dFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgp Ci0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFd WyJkYl9uYW1lIl0KLSAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hl bWEiXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lk Il0KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGRi X2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVS X0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRh J11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg Y29ubmVjdCB0byBkYXRhYmFzZSB0byB1cGRhdGUgYSBjaGVjayAiCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgImNvbnN0cmFpbnQuIikKLSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hl bWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9p bmZvWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGls cy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUp CisgICAgICAgIGRiX25hbWUgPSBzZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisgICAgICAgIHNlcnZl cl9pZCA9IHNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBkYl9pZCA9IHNlcnZlcl9k YXRhWydkYl9pZCddCisgICAgICAgIHNjaGVtYV9pZCA9IHNlcnZlcl9kYXRhWydzY2hlbWFfaWQn XQorICAgICAgICBzY2hlbWFfbmFtZSA9IHNlcnZlcl9kYXRhWydzY2hlbWFfbmFtZSddCisgICAg ICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZXJ2ZXIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk Yl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2NoZW1hX25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gdXBk YXRlIGEgY2hlY2sgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb25zdHJhaW50LiIp Ci0gICAgICAgIHNlbGYudGFibGVfbmFtZSA9ICJ0YWJsZV9jaGVja2NvbnN0cmFpbnRfcHV0XyVz IiAlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0p Ci0gICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYu c2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkKLSAgICAgICAgc2VsZi5jaGVj a19jb25zdHJhaW50X25hbWUgPSAidGVzdF9jaGVja2NvbnN0cmFpbnRfcHV0XyVzIiAlIFwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4 XSkKLSAgICAgICAgc2VsZi5jaGVja19jb25zdHJhaW50X2lkID0gXAorICAgICAgICAgICAgcmFp c2UgRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIHVwZGF0ZSBhIGNoZWNr ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uc3RyYWludC4nKQorCisgICAgICAg IHRhYmxlX25hbWUgPSAndGFibGVfY2hlY2tjb25zdHJhaW50X3B1dF8lcycgJSBcCisgICAgICAg ICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgdGFibGVfaWQg PSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlX25hbWUpCisgICAgICAgIGNoZWNrX2NvbnN0 cmFpbnRfbmFtZSA9ICd0ZXN0X2NoZWNrY29uc3RyYWludF9wdXRfJXMnICUgXAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAg Y2hlY2tfY29uc3RyYWludF9pZCA9IFwKICAgICAgICAgICAgIGNoa19jb25zdHJhaW50X3V0aWxz LmNyZWF0ZV9jaGVja19jb25zdHJhaW50KAotICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyLCBz ZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYudGFibGVfbmFtZSwKLSAgICAgICAg ICAgICAgICBzZWxmLmNoZWNrX2NvbnN0cmFpbnRfbmFtZSkKKyAgICAgICAgICAgICAgICBzZXJ2 ZXIsIGRiX25hbWUsIHNjaGVtYV9uYW1lLCB0YWJsZV9uYW1lLAorICAgICAgICAgICAgICAgIGNo ZWNrX2NvbnN0cmFpbnRfbmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAi IiJUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIGNoZWNrIGNvbnN0cmFpbnQgdG8gdGFibGUuIiIi CiAgICAgICAgIGNoa19jb25zdHJhaW50ID0gY2hrX2NvbnN0cmFpbnRfdXRpbHMudmVyaWZ5X2No ZWNrX2NvbnN0cmFpbnQoCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBz ZWxmLmNoZWNrX2NvbnN0cmFpbnRfbmFtZSkKKyAgICAgICAgICAgIHNlcnZlciwgZGJfbmFtZSwg Y2hlY2tfY29uc3RyYWludF9uYW1lKQogICAgICAgICBpZiBub3QgY2hrX2NvbnN0cmFpbnQ6Ci0g ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBjaGVjayBjb25z dHJhaW50IHRvIHVwZGF0ZS4iKQotICAgICAgICBkYXRhID0geyJvaWQiOiBzZWxmLmNoZWNrX2Nv bnN0cmFpbnRfaWQsCi0gICAgICAgICAgICAgICAgImNvbW1lbnQiOiAiVGhpcyBpcyB0ZXN0IGNv bW1lbnQgZm9yIGNoZWNrIGNvbnN0cmFpbnQuIn0KLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRl c3Rlci5wdXQoCi0gICAgICAgICAgICAiezB9ezF9L3syfS97M30vezR9L3s1fS97Nn0iLmZvcm1h dChzZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9p ZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu dGFibGVfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLmNoZWNrX2NvbnN0cmFpbnRfaWQpLAorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCdDb3VsZCBub3QgZmluZCB0aGUgY2hlY2sgY29uc3RyYWludCB0byB1cGRhdGUuJykKKyAgICAg ICAgZGF0YSA9IHsnb2lkJzogY2hlY2tfY29uc3RyYWludF9pZCwKKyAgICAgICAgICAgICAgICAn Y29tbWVudCc6ICdUaGlzIGlzIHRlc3QgY29tbWVudCBmb3IgY2hlY2sgY29uc3RyYWludC4nfQor ICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LnB1dCgKKyAgICAgICAgICAgICd7MH17MX0v ezJ9L3szfS97NH0vezV9L3s2fScuZm9ybWF0KHVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLCBk Yl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNj aGVtYV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRhYmxlX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2hlY2tfY29uc3RyYWludF9pZCksCiAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0 YSksCiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNz ZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBkZWYgdGVhckRvd24o c2VsZik6Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJh c2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5k Yl9pZCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8o MjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJl c3BvbnNlKQorICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAg ICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAnY2hlY2tfY29uc3RyYWludCcsCisg ICAgICAgICAgICAncGdhZG1pbi5ub2RlLmNoZWNrX2NvbnN0cmFpbnQnLAorICAgICAgICAgICAg RmFsc2UsCisgICAgICAgICAgICAnaWNvbi1jaGVja19jb25zdHJhaW50X2JhZCcsCisgICAgICAg ICAgICBjaGVja19jb25zdHJhaW50X25hbWUKKyAgICAgICAgKQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL2NvbnN0cmFpbnRzL2ZvcmVpZ25fa2V5L3Rlc3RzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2NvbnN0cmFpbnRzL2ZvcmVpZ25fa2V5L3Rlc3RzL19faW5pdF9fLnB5CmluZGV4IGU2MzU5MTJl Li41OTAwMjZhZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2ZvcmVpZ25fa2V5 L3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9mb3JlaWduX2tl eS90ZXN0cy9fX2luaXRfXy5weQpAQCAtNiwxMSArNiwzIEBACiAjIFRoaXMgc29mdHdhcmUgaXMg cmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKLQotIyBmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y Ci0jCi0jCi0jIGNsYXNzIEZvcmVpZ25LZXlUZXN0R2VuZXJhdG9yKEJhc2VUZXN0R2VuZXJhdG9y KToKLSMKLSMgICAgIGRlZiBydW5UZXN0KHNlbGYpOgotIyAgICAgICAgIHJldHVybiBbXQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2ZvcmVpZ25fa2V5L3Rlc3RzL3Rlc3RfZm9y ZWlnbl9rZXlfYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2ZvcmVpZ25fa2V5L3Rlc3Rz L3Rlc3RfZm9yZWlnbl9rZXlfYWRkLnB5CmluZGV4IDc5YjE0ZDc1Li5mOTdjZDk5YSAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2ZvcmVpZ25fa2V5L3Rlc3RzL3Rlc3RfZm9yZWln bl9rZXlfYWRkLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9mb3JlaWduX2tleS90ZXN0 cy90ZXN0X2ZvcmVpZ25fa2V5X2FkZC5weQpAQCAtMTAsNzEgKzEwLDc4IEBACiBpbXBvcnQganNv bgogaW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3Vs ZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2Vz LnNjaGVtYXMudGFibGVzLnRlc3RzIFwKICAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxz CiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNj aGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKLWZyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0 IHV0aWxzIGFzIFwKLSAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRl IGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRf bm9kZV9kaWN0Citmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0 X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25z ZQogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFz IHV0aWxzCiAKIAotY2xhc3MgRm9yZWlnbktleUFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9y KToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgYWRkIGZvcmVpZ24ga2V5IHRvIGV4aXN0aW5nIHRh YmxlIiIiCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoJ0FkZCBmb3JlaWduIEtleSBjb25z dHJhaW50IHRvIHRhYmxlJywKLSAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci9mb3JlaWduX2tl eS9vYmovJykpCi0gICAgXQorY2xhc3MgVGVzdEZvcmVpZ25LZXlBZGQ6CisgICAgQHB5dGVzdC5t YXJrLnVzZWZpeHR1cmVzKCdyZXF1aXJlX2RhdGFiYXNlX2Nvbm5lY3Rpb24nKQorICAgIGRlZiB0 ZXN0X2NvbnN0cmFpbnRfYWRkKHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIK KyAgICAgICAgV2hlbiB0aGUgZm9yZWlnbiBrZXkgYWRkIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUg YmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAg ICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAg ICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZXJ2ZXJfZGF0 YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddCiAKLSAgICBkZWYgc2V0 VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFi YXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9k aWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1si c2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0g ICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRp bHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJf Y29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSBmb3JlaWduICIKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAia2V5IGNvbnN0cmFpbnQuIikKLSAgICAgICAgc2VsZi5zY2hl bWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFt ZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9yZXNwb25zZSA9 IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2NoZW1hX25hbWUpCisgICAgICAgIGRiX25hbWUgPSBzZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisg ICAgICAgIHNjaGVtYV9uYW1lID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAg c2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlcnZlciwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSBm b3JlaWduICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAia2V5IGNvbnN0cmFpbnQuIikK LSAgICAgICAgc2VsZi5sb2NhbF90YWJsZV9uYW1lID0gInRhYmxlX2ZvcmVpZ25rZXlfJXMiICUg XAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4 XSkKLSAgICAgICAgc2VsZi5sb2NhbF90YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFi bGUoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2Nh bF90YWJsZV9uYW1lKQotICAgICAgICBzZWxmLmZvcmVpZ25fdGFibGVfbmFtZSA9ICJ0YWJsZV9m b3JlaWdua2V5XyVzIiAlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Ry KHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi5mb3JlaWduX3RhYmxlX2lkID0gdGFi bGVzX3V0aWxzLmNyZWF0ZV90YWJsZSgKLSAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRi X25hbWUsIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICBzZWxmLmZvcmVpZ25fdGFibGVf bmFtZSkKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgdGhlIHNj aGVtYSB0byBhZGQgYSBmb3JlaWduICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAna2V5 IGNvbnN0cmFpbnQuJykKKyAgICAgICAgbG9jYWxfdGFibGVfbmFtZSA9ICd0YWJsZV9mb3JlaWdu a2V5XyVzJyAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgp KVsxOjhdKQorICAgICAgICBsb2NhbF90YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFi bGUoc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbG9jYWxfdGFibGVfbmFtZSkKKyAgICAgICAgZm9yZWlnbl90YWJs ZV9uYW1lID0gJ3RhYmxlX2ZvcmVpZ25rZXlfJXMnICUgXAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgZm9yZWlnbl90YWJsZV9p ZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoCisgICAgICAgICAgICBzZXJ2ZXIsIGRiX25h bWUsIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgZm9yZWlnbl90YWJsZV9uYW1lKQogCi0gICAg ZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgZm9y ZWlnbiBrZXkgdGFibGUgY29sdW1uLiIiIgotICAgICAgICBmb3JlaWdua2V5X25hbWUgPSAidGVz dF9mb3JlaWdua2V5X2FkZF8lcyIgJSBcCisgICAgICAgIGZvcmVpZ25rZXlfbmFtZSA9ICd0ZXN0 X2ZvcmVpZ25rZXlfYWRkXyVzJyAlIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1 dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIGRhdGEgPSB7Im5hbWUiOiBmb3JlaWdua2V5X25h bWUsCi0gICAgICAgICAgICAgICAgImNvbHVtbnMiOiBbeyJsb2NhbF9jb2x1bW4iOiAiaWQiLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmZXJlbmNlcyI6IHNlbGYuZm9yZWlnbl90 YWJsZV9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZmVyZW5jZWQiOiAiaWQi fV0sCi0gICAgICAgICAgICAgICAgImNvbmZ1cGR0eXBlIjogImEiLCAiY29uZmRlbHR5cGUiOiAi YSIsICJhdXRvaW5kZXgiOiBGYWxzZX0KLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5w b3N0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcv JyArCi0gICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJf aWQpICsKLSAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKyBzdHIo c2VsZi5sb2NhbF90YWJsZV9pZCkgKyAnLycsCisgICAgICAgIGRhdGEgPSB7J25hbWUnOiBmb3Jl aWdua2V5X25hbWUsCisgICAgICAgICAgICAgICAgJ2NvbHVtbnMnOiBbeydsb2NhbF9jb2x1bW4n OiAnaWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVmZXJlbmNlcyc6IGZvcmVp Z25fdGFibGVfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWZlcmVuY2VkJzog J2lkJ31dLAorICAgICAgICAgICAgICAgICdjb25mdXBkdHlwZSc6ICdhJywgJ2NvbmZkZWx0eXBl JzogJ2EnLCAnYXV0b2luZGV4JzogRmFsc2V9CisKKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2Ns aWVudC5wb3N0KAorICAgICAgICAgICAgc2VsZi5fX2J1aWxkX3VybChzZXJ2ZXJfZGF0YSwgbG9j YWxfdGFibGVfaWQpLAogICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAogICAgICAg ICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs cyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogCi0gICAgZGVmIHRlYXJEb3duKHNlbGYpOgot ICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxz LmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisg ICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAg ICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkK KyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UoCisgICAgICAgICAgICBq c29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgJ2ZvcmVpZ25fa2V5JywKKyAgICAgICAgICAgICdw Z2FkbWluLm5vZGUuZm9yZWlnbl9rZXknLAorICAgICAgICAgICAgRmFsc2UsCisgICAgICAgICAg ICAnaWNvbi1mb3JlaWduX2tleScsCisgICAgICAgICAgICBmb3JlaWdua2V5X25hbWUKKyAgICAg ICAgKQorCisgICAgZGVmIF9fYnVpbGRfdXJsKHNlbGYsIHNlcnZlcl9kYXRhLCBsb2NhbF90YWJs ZV9pZCk6CisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9mb3JlaWduX2tleS9vYmovJworICAgICAg ICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgZGJfaWQgPSBz ZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzY2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsnc2No ZW1hX2lkJ10KKyAgICAgICAgcmV0dXJuIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsg Jy8nICsgXAorICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJfaWQpICsg XAorICAgICAgICAgICAgJy8nICsgc3RyKHNjaGVtYV9pZCkgKyAnLycgKyBzdHIobG9jYWxfdGFi bGVfaWQpICsgJy8nCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvZm9yZWlnbl9r ZXkvdGVzdHMvdGVzdF9mb3JlaWduX2tleV9kZWxldGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWlu dHMvZm9yZWlnbl9rZXkvdGVzdHMvdGVzdF9mb3JlaWduX2tleV9kZWxldGUucHkKaW5kZXggZmNm MzI1OWQuLmJjNThhNDRjIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvZm9yZWln bl9rZXkvdGVzdHMvdGVzdF9mb3JlaWduX2tleV9kZWxldGUucHkKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2Nv bnN0cmFpbnRzL2ZvcmVpZ25fa2V5L3Rlc3RzL3Rlc3RfZm9yZWlnbl9rZXlfZGVsZXRlLnB5CkBA IC05LDc2ICs5LDc1IEBACiAKIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3Jh cHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5z ZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCiAgICAgaW1wb3J0IHV0aWxz IGFzIHRhYmxlc191dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1h X3V0aWxzCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJh c2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCi0gICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdh ZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lv biBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBl ciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9u X3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRp bHMgYXMgZmtfdXRpbHMKIAogCi1jbGFzcyBGb3JlaWduS2V5RGVsZXRlVGVzdENhc2UoQmFzZVRl c3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBkZWxldGUgZm9yZWlnbiBrZXkg dG8gZXhpc3RpbmcgdGFibGUiIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnRGVsZXRl IGZvcmVpZ24gS2V5IGNvbnN0cmFpbnQuJywKLSAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci9m b3JlaWduX2tleS9vYmovJykpCi0gICAgXQorY2xhc3MgVGVzdEZvcmVpZ25LZXlEZWxldGU6Cisg ICAgQHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCdyZXF1aXJlX2RhdGFiYXNlX2Nvbm5lY3Rpb24n KQorICAgIGRlZiB0ZXN0X2ZvcmVpZ25fa2V5X2RlbGV0ZShzZWxmLCBjb250ZXh0X29mX3Rlc3Rz KToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIGZvcmVpZ24ga2V5IERFTEVURSByZXF1 ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVz CisgICAgICAgICIiIgorICAgICAgICBodHRwX2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rl c3RfY2xpZW50J10KKyAgICAgICAgc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10K KyAgICAgICAgc2VydmVyX2RhdGEgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRp b24nXQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJl bnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9p bmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlbGYuc2VydmVy X2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzY2hl bWFfaW5mb1siZGJfaWQiXQotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0 X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkK LSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAg IHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAiQ291bGQgbm90IGNvbm5lY3QgdG8g ZGF0YWJhc2UgdG8gZGVsZXRlIGEgZm9yZWlnbiAiCi0gICAgICAgICAgICAgICAgImtleSBjb25z dHJhaW50LiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9p ZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUi XQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMo c2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBkYl9uYW1l ID0gc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorICAgICAgICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0 YVsnc2VydmVyX2lkJ10KKyAgICAgICAgZGJfaWQgPSBzZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAg ICAgICBzY2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX2lkJ10KKyAgICAgICAgc2NoZW1h X25hbWUgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX25hbWUnXQorICAgICAgICBzY2hlbWFfcmVzcG9u c2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VydmVyLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1l KQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhj ZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGRlbGV0ZSBhIGZvcmVpZ24gIgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJrZXkgY29uc3RyYWludC4iKQotICAgICAgICBz ZWxmLmxvY2FsX3RhYmxlX25hbWUgPSAibG9jYWxfdGFibGVfZm9yZWlnbmtleV9kZWxldGVfJXMi ICUgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlb MTo4XSkKLSAgICAgICAgc2VsZi5sb2NhbF90YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVf dGFibGUoCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVt YV9uYW1lLCBzZWxmLmxvY2FsX3RhYmxlX25hbWUpCi0gICAgICAgIHNlbGYuZm9yZWlnbl90YWJs ZV9uYW1lID0gImZvcmVpZ25fdGFibGVfZm9yZWlnbmtleV9kZWxldGVfJXMiICUgXAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAg ICAgICBzZWxmLmZvcmVpZ25fdGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKAot ICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwK LSAgICAgICAgICAgIHNlbGYuZm9yZWlnbl90YWJsZV9uYW1lKQotICAgICAgICBzZWxmLmZvcmVp Z25fa2V5X25hbWUgPSAidGVzdF9mb3JlaWdua2V5X2RlbGV0ZV8lcyIgJSBcCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBz ZWxmLmZvcmVpZ25fa2V5X2lkID0gZmtfdXRpbHMuY3JlYXRlX2ZvcmVpZ25rZXkoCi0gICAgICAg ICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBzZWxmLmxv Y2FsX3RhYmxlX25hbWUsCi0gICAgICAgICAgICBzZWxmLmZvcmVpZ25fdGFibGVfbmFtZSkKKyAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBk ZWxldGUgYSBmb3JlaWduICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAna2V5IGNvbnN0 cmFpbnQuJykKKyAgICAgICAgbG9jYWxfdGFibGVfbmFtZSA9ICdsb2NhbF90YWJsZV9mb3JlaWdu a2V5X2RlbGV0ZV8lcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQu dXVpZDQoKSlbMTo4XSkKKyAgICAgICAgbG9jYWxfdGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3Jl YXRlX3RhYmxlKAorICAgICAgICAgICAgc2VydmVyLCBkYl9uYW1lLCBzY2hlbWFfbmFtZSwgbG9j YWxfdGFibGVfbmFtZSkKKyAgICAgICAgZm9yZWlnbl90YWJsZV9uYW1lID0gJ2ZvcmVpZ25fdGFi bGVfZm9yZWlnbmtleV9kZWxldGVfJXMnICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgdGFibGVzX3V0aWxzLmNyZWF0ZV90 YWJsZSgKKyAgICAgICAgICAgIHNlcnZlciwgZGJfbmFtZSwgc2NoZW1hX25hbWUsCisgICAgICAg ICAgICBmb3JlaWduX3RhYmxlX25hbWUpCisgICAgICAgICd0ZXN0X2ZvcmVpZ25rZXlfZGVsZXRl XyVzJyAlIFwKKyAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBm b3JlaWduX2tleV9pZCA9IGZrX3V0aWxzLmNyZWF0ZV9mb3JlaWdua2V5KAorICAgICAgICAgICAg c2VydmVyLCBkYl9uYW1lLCBzY2hlbWFfbmFtZSwgbG9jYWxfdGFibGVfbmFtZSwKKyAgICAgICAg ICAgIGZvcmVpZ25fdGFibGVfbmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAg ICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIGZvcmVpZ24ga2V5IGF0dGFjaGVkIHRvIHRh YmxlIGNvbHVtbi4iIiIKLSAgICAgICAgZmtfcmVzcG9uc2UgPSBma191dGlscy52ZXJpZnlfZm9y ZWlnbmtleShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubG9jYWxfdGFibGVfbmFtZSkKKyAgICAg ICAgZmtfcmVzcG9uc2UgPSBma191dGlscy52ZXJpZnlfZm9yZWlnbmtleShzZXJ2ZXIsIGRiX25h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9j YWxfdGFibGVfbmFtZSkKICAgICAgICAgaWYgbm90IGZrX3Jlc3BvbnNlOgotICAgICAgICAgICAg cmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgZm9yZWlnbiBrZXkgY29uc3RyYWlu dCB0byAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlbGV0ZS4iKQotICAgICAgICBy ZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKLSAgICAgICAgICAgICJ7MH17MX0vezJ9L3sz fS97NH0vezV9L3s2fSIuZm9ybWF0KHNlbGYudXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9p ZCwgc2VsZi5kYl9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2NoZW1hX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5sb2NhbF90YWJsZV9pZCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZm9yZWlnbl9rZXlfaWQpLAorICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCB0aGUgZm9yZWlnbiBrZXkgY29u c3RyYWludCB0byAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlbGV0ZS4nKQorICAg ICAgICB1cmwgPSAnL2Jyb3dzZXIvZm9yZWlnbl9rZXkvb2JqLycKKyAgICAgICAgcmVzcG9uc2Ug PSBodHRwX2NsaWVudC5kZWxldGUoCisgICAgICAgICAgICAnezB9ezF9L3syfS97M30vezR9L3s1 fS97Nn0nLmZvcm1hdCh1cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwgZGJfaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfaWQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbF90YWJsZV9p ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVp Z25fa2V5X2lkKSwKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZQogICAgICAgICAp Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAK LSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJh c2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxm LnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBz aG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9y ZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxk LmhhdmUua2V5KCdpbmZvJykgPiBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAgICAnRm9y ZWlnbiBrZXkgZHJvcHBlZC4nKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUu a2V5KCdlcnJvcm1zZycpID4gc2hvdWxkLmJlLmVtcHR5CisgICAgICAgIGpzb25fcmVzcG9uc2Ug fCBzaG91bGQuaGF2ZS5rZXkoJ2RhdGEnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxk LmhhdmUua2V5KCdyZXN1bHQnKSA+IHNob3VsZC5iZS5ub25lCisgICAgICAgIGpzb25fcmVzcG9u c2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3N1Y2Nlc3MnKSA+IHNob3VsZC5iZS5lcXVhbC50bygxKQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2ZvcmVpZ25fa2V5L3Rlc3RzL3Rlc3Rf Zm9yZWlnbl9rZXlfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2ZvcmVpZ25fa2V5L3Rl c3RzL3Rlc3RfZm9yZWlnbl9rZXlfZ2V0LnB5CmluZGV4IGQyMzNlOWUwLi43YmNmNGQzMCAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2ZvcmVpZ25fa2V5L3Rlc3RzL3Rlc3RfZm9y ZWlnbl9rZXlfZ2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9mb3JlaWduX2tleS90 ZXN0cy90ZXN0X2ZvcmVpZ25fa2V5X2dldC5weQpAQCAtOSw3MSArOSwxMDEgQEAKIAogaW1wb3J0 IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMu dGFibGVzLnRlc3RzIFwKICAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCiBmcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVz dHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKLWZyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFz IFwKLSAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBC YXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0 Citmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNl X3RvX2pzb24KIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91 dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBma191dGlscwogCiAKLWNsYXNz IEZvcmVpZ25HZXREZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhp cyBjbGFzcyB3aWxsIGZldGNoIGZvcmVpZ24ga2V5IGZyb20gZXhpc3RpbmcgdGFibGUiIiIKLSAg ICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnRmV0Y2ggZm9yZWlnbiBLZXkgY29uc3RyYWludC4n LAotICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL2ZvcmVpZ25fa2V5L29iai8nKSkKLSAgICBd CitjbGFzcyBUZXN0Rm9yZWlnbkdldDoKKyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoJ3Jl cXVpcmVfZGF0YWJhc2VfY29ubmVjdGlvbicpCisgICAgZGVmIHRlc3RfZm9yZWlnbl9rZXlfZ2V0 KHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUg Y2hlY2sgY29uc3RyYWludCBHRVQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAg ICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKworICAgICAgICB0ZXN0ZXIg PSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9IGNvbnRl eHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlcnZlcl9kYXRhID0gY29udGV4dF9vZl90 ZXN0c1snc2VydmVyX2luZm9ybWF0aW9uJ10KIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAg ICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25h bWUiXQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0x XQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAg ICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgZGJfY29uID0g ZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29u bmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAg IkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGZldGNoIGEgZm9yZWlnbiAiCi0gICAg ICAgICAgICAgICAgImtleSBjb25zdHJhaW50LiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0g c2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hl bWFfaW5mb1sic2NoZW1hX25hbWUiXQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFf dXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9u YW1lKQorICAgICAgICBkYl9uYW1lID0gc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorICAgICAgICBz ZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgZGJfaWQgPSBzZXJ2 ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzY2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1h X2lkJ10KKyAgICAgICAgc2NoZW1hX25hbWUgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX25hbWUnXQor ICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2Vy dmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgot ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRv IGZldGNoIGEgZm9yZWlnbiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImtleSBjb25z dHJhaW50LiIpCi0gICAgICAgIHNlbGYubG9jYWxfdGFibGVfbmFtZSA9ICJsb2NhbF90YWJsZV9m b3JlaWdua2V5X2dldF8lcyIgJSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChz dHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxmLmxvY2FsX3RhYmxlX2lkID0gdGFi bGVzX3V0aWxzLmNyZWF0ZV90YWJsZSgKLSAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRi X25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYubG9jYWxfdGFibGVfbmFtZSkKLSAgICAgICAg c2VsZi5mb3JlaWduX3RhYmxlX25hbWUgPSAiZm9yZWlnbl90YWJsZV9mb3JlaWdua2V5X2dldF8l cyIgJSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0 KCkpWzE6OF0pCi0gICAgICAgIHNlbGYuZm9yZWlnbl90YWJsZV9pZCA9IHRhYmxlc191dGlscy5j cmVhdGVfdGFibGUoCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxm LnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgc2VsZi5mb3JlaWduX3RhYmxlX25hbWUpCi0gICAg ICAgIHNlbGYuZm9yZWlnbl9rZXlfbmFtZSA9ICJ0ZXN0X2ZvcmVpZ25rZXlfZ2V0XyVzIiAlIFwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0p Ci0gICAgICAgIHNlbGYuZm9yZWlnbl9rZXlfaWQgPSBma191dGlscy5jcmVhdGVfZm9yZWlnbmtl eSgKLSAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25h bWUsIHNlbGYubG9jYWxfdGFibGVfbmFtZSwKLSAgICAgICAgICAgIHNlbGYuZm9yZWlnbl90YWJs ZV9uYW1lKQorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCB0aGUg c2NoZW1hIHRvIGZldGNoIGEgZm9yZWlnbiAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg J2tleSBjb25zdHJhaW50LicpCisKKyAgICAgICAgbG9jYWxfdGFibGVfbmFtZSA9ICdsb2NhbF90 YWJsZV9mb3JlaWdua2V5X2dldF8lcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAo c3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgbG9jYWxfdGFibGVfaWQgPSB0YWJsZXNf dXRpbHMuY3JlYXRlX3RhYmxlKAorICAgICAgICAgICAgc2VydmVyLCBkYl9uYW1lLCBzY2hlbWFf bmFtZSwgbG9jYWxfdGFibGVfbmFtZSkKKyAgICAgICAgZm9yZWlnbl90YWJsZV9uYW1lID0gJ2Zv cmVpZ25fdGFibGVfZm9yZWlnbmtleV9nZXRfJXMnICUgXAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgdGFibGVzX3V0aWxzLmNy ZWF0ZV90YWJsZSgKKyAgICAgICAgICAgIHNlcnZlciwgZGJfbmFtZSwgc2NoZW1hX25hbWUsCisg ICAgICAgICAgICBmb3JlaWduX3RhYmxlX25hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToK LSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBmb3JlaWduIGtleSBhdHRhY2hl ZCB0byB0YWJsZSBjb2x1bW4uIiIiCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0 KAotICAgICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0vezZ9Ii5mb3JtYXQoc2VsZi51 cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfaWQsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmxvY2FsX3Rh YmxlX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5mb3JlaWduX2tleV9pZCksCisgICAgICAgIGZvcmVpZ25fa2V5X2lkID0gZmtfdXRpbHMu Y3JlYXRlX2ZvcmVpZ25rZXkoCisgICAgICAgICAgICBzZXJ2ZXIsIGRiX25hbWUsIHNjaGVtYV9u YW1lLCBsb2NhbF90YWJsZV9uYW1lLAorICAgICAgICAgICAgZm9yZWlnbl90YWJsZV9uYW1lKQor CisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9mb3JlaWduX2tleS9vYmovJworICAgICAgICByZXNw b25zZSA9IHRlc3Rlci5nZXQoCisgICAgICAgICAgICAnezB9ezF9L3syfS97M30vezR9L3s1fS97 Nn0nLmZvcm1hdCh1cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkYl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsX3RhYmxlX2lkLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWlnbl9rZXlfaWQpLAogICAgICAg ICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlCiAgICAgICAgICkKLSAgICAgICAgc2VsZi5hc3Nl cnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKIAotICAgIGRlZiB0ZWFyRG93bihz ZWxmKToKLSAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFz ZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRi X2lkKQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygy MDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVz cG9uc2UpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2NvbW1lbnQn KSA+IHNob3VsZC5iZS5ub25lCisgICAgICAgIChqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUu a2V5KCdma25zcCcpID4KKyAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50byhzY2hlbWFfbmFtZSkp CisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ29pZCcpCisgICAgICAg IGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ25hbWUnKQorICAgICAgICAoanNvbl9y ZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnY29uZmRlbHR5cGUnKSA+CisgICAgICAgICBzaG91 bGQuYmUuZXF1YWwudG8oJ2EnKSkKKyAgICAgICAgKGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2 ZS5rZXkoJ2NvbmZrZXknKSA+CisgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8oWzFdKSkKKyAg ICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnY29uZnJlbGlkJykKKyAgICAg ICAgKGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3JlZnRhYicpID4KKyAgICAgICAg IHNob3VsZC5iZS5lcXVhbC50byhmb3JlaWduX3RhYmxlX25hbWUpKQorICAgICAgICBqc29uX3Jl c3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdjb25kZWZlcnJhYmxlJykgPiBzaG91bGQuYmUuZmFs c2UKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnY29uZGVmZXJyZWQn KSA+IHNob3VsZC5iZS5mYWxzZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUu a2V5KCdjb25mbWF0Y2h0eXBlJykKKyAgICAgICAgKGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2 ZS5rZXkoJ3JlZm5zcCcpID4KKyAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50byhzY2hlbWFfbmFt ZSkpCisgICAgICAgIChqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdma3RhYicpID4K KyAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50byhsb2NhbF90YWJsZV9uYW1lKSkKKyAgICAgICAg anNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnaGFzaW5kZXgnKSA+IHNob3VsZC5iZS50 cnVlCisgICAgICAgIChqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdjb25rZXknKSA+ CisgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8oWzFdKSkKKyAgICAgICAganNvbl9yZXNwb25z ZSB8IHNob3VsZC5oYXZlLmtleSgnY29udmFsaWRhdGVkJykgPiBzaG91bGQuYmUuZmFsc2UKKyAg ICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnYXV0b2luZGV4JykgPiBzaG91 bGQuYmUudHJ1ZQorICAgICAgICAoanNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZmt0 YWInKSA+CisgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8obG9jYWxfdGFibGVfbmFtZSkpCisg ICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2NvdmVyaW5naW5kZXgnKQor CisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2NvbHVtbnMnKQorICAg ICAgICAoanNvbl9yZXNwb25zZVsnY29sdW1ucyddWzBdIHwgc2hvdWxkLmhhdmUua2V5KCdyZWZl cmVuY2VkJykgPgorICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKCdpZCcpKQorICAgICAgICBq c29uX3Jlc3BvbnNlWydjb2x1bW5zJ11bMF0gfCBzaG91bGQuaGF2ZS5rZXkoJ3JlZmVyZW5jZXMn KQorICAgICAgICAoanNvbl9yZXNwb25zZVsnY29sdW1ucyddWzBdIHwgc2hvdWxkLmhhdmUua2V5 KCdsb2NhbF9jb2x1bW4nKSA+CisgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8oJ2lkJykpCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvZm9yZWlnbl9rZXkvdGVzdHMvdGVzdF9m b3JlaWduX2tleV9wdXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvZm9yZWlnbl9rZXkvdGVz dHMvdGVzdF9mb3JlaWduX2tleV9wdXQucHkKaW5kZXggY2RjYWVkNWQuLjg3MDU4MGVkIDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvZm9yZWlnbl9rZXkvdGVzdHMvdGVzdF9mb3Jl aWduX2tleV9wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2ZvcmVpZ25fa2V5L3Rl c3RzL3Rlc3RfZm9yZWlnbl9rZXlfcHV0LnB5CkBAIC0xMCw3NCArMTAsNzYgQEAKIGltcG9ydCBq c29uCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hv dWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFz ZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAogICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRp bHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu c2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwotZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBv cnQgdXRpbHMgYXMgXAotICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91 dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVu dF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZl cnRfcmVzcG9uc2VfdG9fanNvbiwgXAorICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3Bv bnNlCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMg YXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZmtfdXRpbHMKIAogCi1jbGFzcyBGb3Jl aWduUHV0RGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xh c3Mgd2lsbCB1cGRhdGUgZm9yZWlnbiBrZXkgZnJvbSBleGlzdGluZyB0YWJsZSIiIgotICAgIHNj ZW5hcmlvcyA9IFsKLSAgICAgICAgKCdGZXRjaCBmb3JlaWduIEtleSBjb25zdHJhaW50LicsCi0g ICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvZm9yZWlnbl9rZXkvb2JqLycpKQotICAgIF0KK2Ns YXNzIFRlc3RGb3JlaWduS2V5UHV0OgorICAgIEBweXRlc3QubWFyay51c2VmaXh0dXJlcygncmVx dWlyZV9kYXRhYmFzZV9jb25uZWN0aW9uJykKKyAgICBkZWYgdGVzdF9mb3JlaWduX2tleV91cGRh dGUoc2VsZiwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRo ZSBmb3JlaWduIGtleXMgUFVUIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAg ICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisKKyAgICAgICAgaHR0cF9jbGll bnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9IGNv bnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlcnZlcl9kYXRhID0gY29udGV4dF9v Zl90ZXN0c1snc2VydmVyX2luZm9ybWF0aW9uJ10KIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAg ICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRi X25hbWUiXQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJd Wy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQot ICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgZGJfY29u ID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JP VVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsi Y29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAg ICAgIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGZldGNoIGEgZm9yZWlnbiAiCi0g ICAgICAgICAgICAgICAgImtleSBjb25zdHJhaW50LiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lk ID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBz Y2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hl bWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVt YV9uYW1lKQorICAgICAgICBkYl9uYW1lID0gc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorICAgICAg ICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgZGJfaWQgPSBz ZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzY2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsnc2No ZW1hX2lkJ10KKyAgICAgICAgc2NoZW1hX25hbWUgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX25hbWUn XQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMo c2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNl OgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1h IHRvIGZldGNoIGEgZm9yZWlnbiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImtleSBj b25zdHJhaW50LiIpCi0gICAgICAgIHNlbGYubG9jYWxfdGFibGVfbmFtZSA9ICJsb2NhbF90YWJs ZV9mb3JlaWdua2V5X2dldF8lcyIgJSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxmLmxvY2FsX3RhYmxlX2lkID0g dGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZSgKLSAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxm LmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYubG9jYWxfdGFibGVfbmFtZSkKLSAgICAg ICAgc2VsZi5mb3JlaWduX3RhYmxlX25hbWUgPSAiZm9yZWlnbl90YWJsZV9mb3JlaWdua2V5X2dl dF8lcyIgJSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYuZm9yZWlnbl90YWJsZV9pZCA9IHRhYmxlc191dGls cy5jcmVhdGVfdGFibGUoCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBz ZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgc2VsZi5mb3JlaWduX3RhYmxlX25hbWUpCi0g ICAgICAgIHNlbGYuZm9yZWlnbl9rZXlfbmFtZSA9ICJ0ZXN0X2ZvcmVpZ25rZXlfZ2V0XyVzIiAl IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6 OF0pCi0gICAgICAgIHNlbGYuZm9yZWlnbl9rZXlfaWQgPSBma191dGlscy5jcmVhdGVfZm9yZWln bmtleSgKLSAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1h X25hbWUsIHNlbGYubG9jYWxfdGFibGVfbmFtZSwKLSAgICAgICAgICAgIHNlbGYuZm9yZWlnbl90 YWJsZV9uYW1lKQorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCB0 aGUgc2NoZW1hIHRvIGZldGNoIGEgZm9yZWlnbiAnCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ2tleSBjb25zdHJhaW50LicpCisgICAgICAgIGxvY2FsX3RhYmxlX25hbWUgPSAnbG9jYWxf dGFibGVfZm9yZWlnbmtleV9nZXRfJXMnICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg KHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIGxvY2FsX3RhYmxlX2lkID0gdGFibGVz X3V0aWxzLmNyZWF0ZV90YWJsZSgKKyAgICAgICAgICAgIHNlcnZlciwgZGJfbmFtZSwgc2NoZW1h X25hbWUsIGxvY2FsX3RhYmxlX25hbWUpCisgICAgICAgIGZvcmVpZ25fdGFibGVfbmFtZSA9ICdm b3JlaWduX3RhYmxlX2ZvcmVpZ25rZXlfZ2V0XyVzJyAlIFwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHRhYmxlc191dGlscy5j cmVhdGVfdGFibGUoCisgICAgICAgICAgICBzZXJ2ZXIsIGRiX25hbWUsIHNjaGVtYV9uYW1lLAor ICAgICAgICAgICAgZm9yZWlnbl90YWJsZV9uYW1lKQorICAgICAgICBmb3JlaWduX2tleV9pZCA9 IGZrX3V0aWxzLmNyZWF0ZV9mb3JlaWdua2V5KAorICAgICAgICAgICAgc2VydmVyLCBkYl9uYW1l LCBzY2hlbWFfbmFtZSwgbG9jYWxfdGFibGVfbmFtZSwKKyAgICAgICAgICAgIGZvcmVpZ25fdGFi bGVfbmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0 aW9uIHdpbGwgdXBkYXRlIGZvcmVpZ24ga2V5IGF0dGFjaGVkIHRvIHRhYmxlIGNvbHVtbi4iIiIK LSAgICAgICAgZGF0YSA9IHsib2lkIjogc2VsZi5mb3JlaWduX2tleV9pZCwKLSAgICAgICAgICAg ICAgICAiY29tbWVudCI6ICJUaGlzIGlzIFRFU1QgY29tbWVudCBmb3IgZm9yZWlnbiBrZXkgY29u c3RyYWludC4iCisgICAgICAgIGRhdGEgPSB7J29pZCc6IGZvcmVpZ25fa2V5X2lkLAorICAgICAg ICAgICAgICAgICdjb21tZW50JzogJ1RoaXMgaXMgVEVTVCBjb21tZW50IGZvciBmb3JlaWduIGtl eSBjb25zdHJhaW50LicKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgIHJlc3BvbnNlID0gc2Vs Zi50ZXN0ZXIucHV0KAotICAgICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0vezZ9Ii5m b3JtYXQoc2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hl bWFfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmxvY2FsX3RhYmxlX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5mb3JlaWduX2tleV9pZCksCisKKyAgICAgICAgdXJsID0gJy9icm93 c2VyL2ZvcmVpZ25fa2V5L29iai8nCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQucHV0 KAorICAgICAgICAgICAgJ3swfXsxfS97Mn0vezN9L3s0fS97NX0vezZ9Jy5mb3JtYXQodXJsLCB1 dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZXJ2ZXJfaWQsIGRiX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxfdGFibGVfaWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlaWduX2tleV9pZCksCiAgICAgICAg ICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3Rz PVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAy MDApCiAKLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUg ZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxm LCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2Nv ZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29u dmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnRfanNvbl92YWx1 ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAg ICAnZm9yZWlnbl9rZXknLAorICAgICAgICAgICAgJ3BnYWRtaW4ubm9kZS5mb3JlaWduX2tleScs CisgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgICdpY29uLWZvcmVpZ25fa2V5JywKKyAg ICAgICAgICAgIGxvY2FsX3RhYmxlX25hbWUgKyAnX2lkX2ZrZXknCisgICAgICAgICkKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rlc3RzL19faW5p dF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQvdGVzdHMvX19p bml0X18ucHkKaW5kZXggMWFmMmNlNjQuLjU5MDAyNmFkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv Y29uc3RyYWludHMvaW5kZXhfY29uc3RyYWludC90ZXN0cy9fX2luaXRfXy5weQorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvY29uc3RyYWludHMvaW5kZXhfY29uc3RyYWludC90ZXN0cy9fX2luaXRfXy5weQpAQCAt NiwxMSArNiwzIEBACiAjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3Rn cmVTUUwgTGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyBmcm9tIHBnYWRtaW4udXRp bHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi0jCi0jCi0jIGNsYXNzIEluZGV4Q29u c3RyYWludFRlc3RHZW5lcmF0b3IoQmFzZVRlc3RHZW5lcmF0b3IpOgotIwotIyAgICAgZGVmIHJ1 blRlc3Qoc2VsZik6Ci0jICAgICAgICAgcmV0dXJuIFtdCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv Y29uc3RyYWludHMvaW5kZXhfY29uc3RyYWludC90ZXN0cy90ZXN0X2luZGV4X2NvbnN0cmFpbnRf YWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQvdGVzdHMvdGVz dF9pbmRleF9jb25zdHJhaW50X2FkZC5weQppbmRleCBjZWViNjM1MC4uMWVkMGU3ZmEgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rlc3RzL3Rlc3Rf aW5kZXhfY29uc3RyYWludF9hZGQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4 X2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9pbmRleF9jb25zdHJhaW50X2FkZC5weQpAQCAtMTAsNzcg KzEwLDEyNCBAQAogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zy b20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCiAgICAgaW1wb3J0 IHV0aWxzIGFzIHRhYmxlc191dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw cy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMg c2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu ZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAgZGF0YWJhc2VfdXRpbHMKLWZy b20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdh ZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgor ZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90 b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UKIGZyb20gcmVn cmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90 ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiAKIAotY2xhc3MgSW5kZXhDb25z dHJhaW50QWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mg d2lsbCBhZGQgaW5kZXggY29uc3RyYWludChwcmltYXJ5IGtleSBvciB1bmlxdWUga2V5KSB0bwot ICAgIHRhYmxlIGNvbHVtbiIiIgotICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQotICAg IHByaW1hcnlfa2V5X25hbWUgPSAidGVzdF9wcmltYXJ5a2V5X2FkZF8lcyIgJSBcCi0gICAgICAg ICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgIHByaW1hcnlfa2V5 X2RhdGEgPSB7Im5hbWUiOiBwcmltYXJ5X2tleV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAg ICAgInNwY25hbWUiOiAicGdfZGVmYXVsdCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiY29s dW1ucyI6IFt7ImNvbHVtbiI6ICJpZCJ9XQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAg IHVuaXF1ZV9rZXlfbmFtZSA9ICJ0ZXN0X3VuaXF1ZWtleV9hZGRfJXMiICUgXAotICAgICAgICAg ICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgIHVuaXF1ZV9rZXlfZGF0 YSA9IHsibmFtZSI6IHVuaXF1ZV9rZXlfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgInNw Y25hbWUiOiAicGdfZGVmYXVsdCIsCi0gICAgICAgICAgICAgICAgICAgICAgICJjb2x1bW5zIjog W3siY29sdW1uIjogImlkIn1dfQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdBZGQgcHJp bWFyeSBLZXkgY29uc3RyYWludCB0byB0YWJsZScsCi0gICAgICAgICBkaWN0KHVybD0nL2Jyb3dz ZXIvcHJpbWFyeV9rZXkvb2JqLycsIGRhdGE9cHJpbWFyeV9rZXlfZGF0YSkpLAotICAgICAgICAo J0FkZCB1bmlxdWUgS2V5IGNvbnN0cmFpbnQgdG8gdGFibGUnLAotICAgICAgICAgZGljdCh1cmw9 Jy9icm93c2VyL3VuaXF1ZV9jb25zdHJhaW50L29iai8nLCBkYXRhPXVuaXF1ZV9rZXlfZGF0YSkp Ci0gICAgXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsnZ3BkYiddKQorY2xhc3MgVGVz dEluZGV4Q29uc3RyYWludEFkZDoKKyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoJ3JlcXVp cmVfZGF0YWJhc2VfY29ubmVjdGlvbicpCisgICAgZGVmIHRlc3RfcHJpbWFyeV9rZXlfYWRkKHNl bGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgUHJp bWFyeSBLZXkgYWRkIHJlcXVlc3QgaXMgc2VuZAorICAgICAgICB0byB0aGUgYmFja2VuZAorICAg ICAgICBJdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIGh0dHBfY2xp ZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZXJ2ZXIgPSBj b250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZXJ2ZXJfZGF0YSA9IGNvbnRleHRf b2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddCisKKyAgICAgICAgZGJfbmFtZSA9IHNlcnZl cl9kYXRhWydkYl9uYW1lJ10KKyAgICAgICAgc2NoZW1hX25hbWUgPSBzZXJ2ZXJfZGF0YVsnc2No ZW1hX25hbWUnXQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5 X3NjaGVtYXMoc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQorICAgICAgICBpZiBub3Qgc2NoZW1h X3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCB0 aGUgc2NoZW1hIHRvIGFkZCBhIGluZGV4ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAn Y29uc3RyYWludChwcmltYXJ5IGtleSBvciB1bmlxdWUga2V5KS4nKQorICAgICAgICB0YWJsZV9u YW1lID0gJ3RhYmxlX2luZGV4Y29uc3RyYWludF8lcycgJSBcCisgICAgICAgICAgICAgICAgICAg ICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgdGFibGVfaWQgPSB0YWJsZXNfdXRp bHMuY3JlYXRlX3RhYmxlKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRhYmxlX25hbWUpCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3ByaW1h cnlfa2V5L29iai8nCisgICAgICAgIHByaW1hcnlfa2V5X25hbWUgPSAndGVzdF9wcmltYXJ5a2V5 X2FkZF8lcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQo KSlbMTo4XSkKKyAgICAgICAgcHJpbWFyeV9rZXlfZGF0YSA9IHsnbmFtZSc6IHByaW1hcnlfa2V5 X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NwY25hbWUnOiAncGdfZGVmYXVs dCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbHVtbnMnOiBbeydjb2x1bW4nOiAn aWQnfV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgIHJlc3BvbnNlID0g aHR0cF9jbGllbnQucG9zdCgKKyAgICAgICAgICAgIHNlbGYuX19idWlsZF91cmwoc2VydmVyX2Rh dGEsIHRhYmxlX2lkLCB1cmwpLAorICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHByaW1hcnlf a2V5X2RhdGEpLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAg ICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAg ICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAg ICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UoCisgICAgICAgICAgICBqc29u X3Jlc3BvbnNlLAorICAgICAgICAgICAgJ3ByaW1hcnlfa2V5JywKKyAgICAgICAgICAgICdwZ2Fk bWluLm5vZGUucHJpbWFyeV9rZXknLAorICAgICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICAn aWNvbi1wcmltYXJ5X2tleScsCisgICAgICAgICAgICBwcmltYXJ5X2tleV9uYW1lCisgICAgICAg ICkKKworICAgIEBweXRlc3QubWFyay51c2VmaXh0dXJlcygncmVxdWlyZV9kYXRhYmFzZV9jb25u ZWN0aW9uJykKKyAgICBkZWYgdGVzdF91bmlxdWVyX2NvbnN0cmFpbnRfYWRkKHNlbGYsIGNvbnRl eHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgVW5pcXVlIENvbnN0 cmFpbnQgYWRkIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBJdCByZXR1 cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4 dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rl c3RzWydzZXJ2ZXInXQorICAgICAgICBzZXJ2ZXJfZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Nl cnZlcl9pbmZvcm1hdGlvbiddCiAKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgc2V0VXBDbGFz cyhjbHMpOgotICAgICAgICBjbHMuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNl Il1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0 WyJzY2hlbWEiXVstMV0KLSAgICAgICAgY2xzLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2 ZXJfaWQiXQotICAgICAgICBjbHMuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAg ICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKGNscywgdXRpbHMuU0VS VkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNscy5zZXJ2ZXJfaWQsIGNscy5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0 YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90 IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIGEgIgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJpbmRleCBjb25zdHJhaW50KHByaW1hcnkga2V5IG9yIHVuaXF1ZSBrZXkpLiIpCi0gICAg ICAgIGNscy5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgY2xz LnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KLSAgICAgICAgc2NoZW1h X3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKGNscy5zZXJ2ZXIsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHMuZGJf bmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNscy5zY2hlbWFfbmFtZSkKKyAgICAgICAgZGJfbmFtZSA9IHNlcnZlcl9kYXRhWydkYl9u YW1lJ10KKyAgICAgICAgc2NoZW1hX25hbWUgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX25hbWUnXQor ICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2Vy dmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgot ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRv IGFkZCBhIGluZGV4ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29uc3RyYWludChw cmltYXJ5IGtleSBvciB1bmlxdWUga2V5KS4iKQotICAgICAgICBjbHMudGFibGVfbmFtZSA9ICJ0 YWJsZV9pbmRleGNvbnN0cmFpbnRfJXMiICUgXAotICAgICAgICAgICAgICAgICAgICAgICAgIChz dHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBjbHMudGFibGVfaWQgPSB0YWJsZXNfdXRp bHMuY3JlYXRlX3RhYmxlKGNscy5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY2xzLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy50YWJsZV9uYW1lKQorICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFk ZCBhIGluZGV4ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uc3RyYWludChwcmlt YXJ5IGtleSBvciB1bmlxdWUga2V5KS4nKQorICAgICAgICB0YWJsZV9uYW1lID0gJ3RhYmxlX2lu ZGV4Y29uc3RyYWludF8lcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVp ZDQoKSlbMTo4XSkKKyAgICAgICAgdGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxl KHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRi X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hl bWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRh YmxlX25hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5j dGlvbiB3aWxsIGFkZCBpbmRleCBjb25zdHJhaW50KHByaW1hcnkga2V5IG9yIHVuaXF1ZSBrZXkp Ci0gICAgICAgIHRvIHRhYmxlIGNvbHVtbi4iIiIKLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRl c3Rlci5wb3N0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQ KSArICcvJyArCi0gICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNl bGYuZGJfaWQpICsKLSAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycg KyBzdHIoc2VsZi50YWJsZV9pZCkgKyAnLycsCi0gICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMo c2VsZi5kYXRhKSwKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3VuaXF1ZV9jb25zdHJhaW50L29i ai8nCisgICAgICAgIHVuaXF1ZV9rZXlfbmFtZSA9ICd0ZXN0X3VuaXF1ZWtleV9hZGRfJXMnICUg XAorICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAg ICAgICAgdW5pcXVlX2tleV9kYXRhID0geyduYW1lJzogdW5pcXVlX2tleV9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ3NwY25hbWUnOiAncGdfZGVmYXVsdCcsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAnY29sdW1ucyc6IFt7J2NvbHVtbic6ICdpZCd9XX0KKyAgICAgICAg cmVzcG9uc2UgPSBodHRwX2NsaWVudC5wb3N0KAorICAgICAgICAgICAgc2VsZi5fX2J1aWxkX3Vy bChzZXJ2ZXJfZGF0YSwgdGFibGVfaWQsIHVybCksCisgICAgICAgICAgICBkYXRhPWpzb24uZHVt cHModW5pcXVlX2tleV9kYXRhKSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29u JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkK IAotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNscyk6Ci0gICAgICAg ICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29u bmVjdF9kYXRhYmFzZShjbHMsIGNscy5zZXJ2ZXJfaWQsIGNscy5kYl9pZCkKKyAgICAgICAgcmVz cG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29u X3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBh c3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9u c2UsCisgICAgICAgICAgICAndW5pcXVlX2NvbnN0cmFpbnQnLAorICAgICAgICAgICAgJ3BnYWRt aW4ubm9kZS51bmlxdWVfY29uc3RyYWludCcsCisgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAg ICAgICdpY29uLXVuaXF1ZV9jb25zdHJhaW50JywKKyAgICAgICAgICAgIHVuaXF1ZV9rZXlfbmFt ZQorICAgICAgICApCisKKyAgICBkZWYgX19idWlsZF91cmwoc2VsZiwgc2VydmVyX2RhdGEsIHRh YmxlX2lkLCBiYXNlX3VybCk6CisgICAgICAgIHNlcnZlcl9pZCA9IHNlcnZlcl9kYXRhWydzZXJ2 ZXJfaWQnXQorICAgICAgICBkYl9pZCA9IHNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIHNj aGVtYV9pZCA9IHNlcnZlcl9kYXRhWydzY2hlbWFfaWQnXQorICAgICAgICByZXR1cm4gYmFzZV91 cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIFwKKyAgICAgICAgICAgIHN0cihz ZXJ2ZXJfaWQpICsgJy8nICsgc3RyKGRiX2lkKSArIFwKKyAgICAgICAgICAgICcvJyArIHN0cihz Y2hlbWFfaWQpICsgJy8nICsgc3RyKHRhYmxlX2lkKSArICcvJwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9pbmRleF9jb25zdHJh aW50X2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rl c3RzL3Rlc3RfaW5kZXhfY29uc3RyYWludF9kZWxldGUucHkKaW5kZXggNTI2YjM2Y2QuLjAxZTI4 NzI5IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvaW5kZXhfY29uc3RyYWludC90 ZXN0cy90ZXN0X2luZGV4X2NvbnN0cmFpbnRfZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25z dHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rlc3RzL3Rlc3RfaW5kZXhfY29uc3RyYWludF9kZWxl dGUucHkKQEAgLTksNzkgKzksMTI0IEBACiAKIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QK K2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVy X2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCiAgICAgaW1w b3J0IHV0aWxzIGFzIHRhYmxlc191dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMg YXMgc2NoZW1hX3V0aWxzCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCi0gICAgZGF0YWJhc2VfdXRpbHMK LWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20g cmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSBwZ2FkbWluLnV0aWxzLnRl c3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uCiBmcm9tIHJlZ3Jlc3Np b24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBp bXBvcnQgdXRpbHMgYXMgaW5kZXhfY29uc3RyYWludF91dGlscwogCiAKLWNsYXNzIEluZGV4Q29u c3RyYWludERlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNs YXNzIHdpbGwgZGVsZXRlIGluZGV4IGNvbnN0cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtl eSkgb2YKLSAgICB0YWJsZSBjb2x1bW4iIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRi J10KLSAgICBwcmltYXJ5X2tleV9uYW1lID0gInRlc3RfcHJpbWFyeWtleV9kZWxldGVfJXMiICUg XAotICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICB1 bmlxdWVfa2V5X25hbWUgPSAidGVzdF91bmlxdWVrZXlfZGVsZXRlXyVzIiAlIFwKLSAgICAgICAg ICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICBzY2VuYXJpb3MgPSBb Ci0gICAgICAgICgnRGVsZXRlIHByaW1hcnkgS2V5IGNvbnN0cmFpbnQgb2YgdGFibGUnLAotICAg ICAgICAgZGljdCh1cmw9Jy9icm93c2VyL3ByaW1hcnlfa2V5L29iai8nLCBuYW1lPXByaW1hcnlf a2V5X25hbWUsCi0gICAgICAgICAgICAgIHR5cGU9IlBSSU1BUlkgS0VZIikpLAotICAgICAgICAo J0RlbGV0ZSB1bmlxdWUgS2V5IGNvbnN0cmFpbnQgb2YgdGFibGUnLAotICAgICAgICAgZGljdCh1 cmw9Jy9icm93c2VyL3VuaXF1ZV9jb25zdHJhaW50L29iai8nLCBuYW1lPXVuaXF1ZV9rZXlfbmFt ZSwKLSAgICAgICAgICAgICAgdHlwZT0iVU5JUVVFIikpCi0gICAgXQorQHB5dGVzdC5tYXJrLnNr aXBfZGF0YWJhc2VzKFsnZ3BkYiddKQorY2xhc3MgVGVzdEluZGV4Q29uc3RyYWludERlbGV0ZToK KyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlv bicpCisgICAgZGVmIHRlc3RfcHJpbWFyeV9rZXlfZGVsZXRlKHNlbGYsIGNvbnRleHRfb2ZfdGVz dHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgUHJpbWFyeSBLZXkgQ29uc3RyYWlu dCBERUxFVEUgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVy bnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0 X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVz dHNbJ3NlcnZlciddCisgICAgICAgIHNlcnZlcl9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2Vy dmVyX2luZm9ybWF0aW9uJ10KIAotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBzZXRVcENsYXNz KGNscyk6Ci0gICAgICAgIGNscy5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2Ui XVstMV1bImRiX25hbWUiXQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3Rb InNjaGVtYSJdWy0xXQotICAgICAgICBjbHMuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZl cl9pZCJdCi0gICAgICAgIGNscy5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAg IGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2UoY2xzLCB1dGlscy5TRVJW RVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2xzLnNlcnZlcl9pZCwgY2xzLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRh J11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg Y29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgImluZGV4IGNvbnN0cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtleSkuIikKLSAgICAg ICAgY2xzLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBjbHMu c2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQotICAgICAgICBzY2hlbWFf cmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoY2xzLnNlcnZlciwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5kYl9u YW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2xzLnNjaGVtYV9uYW1lKQorICAgICAgICBkYl9uYW1lID0gc2VydmVyX2RhdGFbJ2RiX25h bWUnXQorICAgICAgICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAg ICAgZGJfaWQgPSBzZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzY2hlbWFfaWQgPSBzZXJ2 ZXJfZGF0YVsnc2NoZW1hX2lkJ10KKyAgICAgICAgc2NoZW1hX25hbWUgPSBzZXJ2ZXJfZGF0YVsn c2NoZW1hX25hbWUnXQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVy aWZ5X3NjaGVtYXMoc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2No ZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmlu ZCB0aGUgc2NoZW1hIHRvIGFkZCBhIGluZGV4ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiY29uc3RyYWludChwcmltYXJ5IGtleSBvciB1bmlxdWUga2V5KS4iKQotICAgICAgICBjbHMu dGFibGVfbmFtZSA9ICJ0YWJsZV9pbmRleGNvbnN0cmFpbnRfJXMiICUgXAotICAgICAgICAgICAg ICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBjbHMudGFibGVf aWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKGNscy5zZXJ2ZXIsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLmRiX25hbWUsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnNjaGVtYV9uYW1l LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy50 YWJsZV9uYW1lKQorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCB0 aGUgc2NoZW1hIHRvIGFkZCBhIGluZGV4ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAn Y29uc3RyYWludChwcmltYXJ5IGtleSBvciB1bmlxdWUga2V5KS4nKQorICAgICAgICB0YWJsZV9u YW1lID0gJ3RhYmxlX2luZGV4Y29uc3RyYWludF8lcycgJSBcCisgICAgICAgICAgICAgICAgICAg ICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgdGFibGVfaWQgPSB0YWJsZXNfdXRp bHMuY3JlYXRlX3RhYmxlKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRhYmxlX25hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAg ICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBpbmRleCBjb25zdHJhaW50KHByaW1hcnkg a2V5IG9yCi0gICAgICAgIHVuaXF1ZSBrZXkpIG9mIHRhYmxlIGNvbHVtbi4iIiIKKyAgICAgICAg cHJpbWFyeV9rZXlfbmFtZSA9ICd0ZXN0X3ByaW1hcnlrZXlfZGVsZXRlXyVzJyAlIFwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQogICAgICAgICBp bmRleF9jb25zdHJhaW50X2lkID0gXAogICAgICAgICAgICAgaW5kZXhfY29uc3RyYWludF91dGls cy5jcmVhdGVfaW5kZXhfY29uc3RyYWludCgKLSAgICAgICAgICAgICAgICBzZWxmLnNlcnZlciwg c2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBzZWxmLnRhYmxlX25hbWUsCi0gICAgICAg ICAgICAgICAgc2VsZi5uYW1lLCBzZWxmLnR5cGUpCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50 ZXN0ZXIuZGVsZXRlKAotICAgICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0vezZ9Ii5m b3JtYXQoc2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hl bWFfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnRhYmxlX2lkLAorICAgICAgICAgICAgICAgIHNlcnZlciwgZGJfbmFtZSwgc2NoZW1hX25h bWUsIHRhYmxlX25hbWUsCisgICAgICAgICAgICAgICAgcHJpbWFyeV9rZXlfbmFtZSwgJ1BSSU1B UlkgS0VZJykKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3ByaW1hcnlfa2V5L29iai8nCisKKyAg ICAgICAgcmVzcG9uc2UgPSBodHRwX2NsaWVudC5kZWxldGUoCisgICAgICAgICAgICAnezB9ezF9 L3syfS97M30vezR9L3s1fS97Nn0nLmZvcm1hdCh1cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwg ZGJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz Y2hlbWFfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0YWJsZV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGluZGV4X2NvbnN0cmFpbnRfaWQpLAorICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1U cnVlCisgICAgICAgICkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5i ZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNl X3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5r ZXkoJ2luZm8nKSA+IHNob3VsZC5iZS5lcXVhbC50bygKKyAgICAgICAgICAgICdQcmltYXJ5IGtl eSBkcm9wcGVkLicpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2Vy cm9ybXNnJykgPiBzaG91bGQuYmUuZW1wdHkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3Vs ZC5oYXZlLmtleSgnZGF0YScpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5r ZXkoJ3Jlc3VsdCcpID4gc2hvdWxkLmJlLm5vbmUKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNo b3VsZC5oYXZlLmtleSgnc3VjY2VzcycpID4gc2hvdWxkLmJlLmVxdWFsLnRvKDEpCisKKyAgICBA cHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlvbicpCisg ICAgZGVmIHRlc3RfdW5pcXVlX2NvbnN0cmFpbnRfZGVsZXRlKHNlbGYsIGNvbnRleHRfb2ZfdGVz dHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgVW5pcXVlIENvbnN0cmFpbnQgREVM RVRFIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIw MCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90 ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydz ZXJ2ZXInXQorICAgICAgICBzZXJ2ZXJfZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9p bmZvcm1hdGlvbiddCisKKyAgICAgICAgZGJfbmFtZSA9IHNlcnZlcl9kYXRhWydkYl9uYW1lJ10K KyAgICAgICAgc2VydmVyX2lkID0gc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIGRi X2lkID0gc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2NoZW1hX2lkID0gc2VydmVyX2Rh dGFbJ3NjaGVtYV9pZCddCisgICAgICAgIHNjaGVtYV9uYW1lID0gc2VydmVyX2RhdGFbJ3NjaGVt YV9uYW1lJ10KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9z Y2hlbWFzKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9y ZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgdGhl IHNjaGVtYSB0byBhZGQgYSBpbmRleCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Nv bnN0cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtleSkuJykKKyAgICAgICAgdGFibGVfbmFt ZSA9ICd0YWJsZV9pbmRleGNvbnN0cmFpbnRfJXMnICUgXAorICAgICAgICAgICAgICAgICAgICAg KHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHRhYmxlX2lkID0gdGFibGVzX3V0aWxz LmNyZWF0ZV90YWJsZShzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0YWJsZV9uYW1lKQorCisgICAgICAgIHVuaXF1ZV9jb25zdHJhaW50X25hbWUg PSAndGVzdF91bmlxdWVrZXlfZGVsZXRlXyVzJyAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBpbmRleF9jb25zdHJh aW50X2lkID0gXAorICAgICAgICAgICAgaW5kZXhfY29uc3RyYWludF91dGlscy5jcmVhdGVfaW5k ZXhfY29uc3RyYWludCgKKyAgICAgICAgICAgICAgICBzZXJ2ZXIsIGRiX25hbWUsIHNjaGVtYV9u YW1lLCB0YWJsZV9uYW1lLAorICAgICAgICAgICAgICAgIHVuaXF1ZV9jb25zdHJhaW50X25hbWUs ICdVTklRVUUnKQorICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvdW5pcXVlX2NvbnN0cmFpbnQvb2Jq LycKKworICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LmRlbGV0ZSgKKyAgICAgICAgICAg ICd7MH17MX0vezJ9L3szfS97NH0vezV9L3s2fScuZm9ybWF0KHVybCwgdXRpbHMuU0VSVkVSX0dS T1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vy dmVyX2lkLCBkYl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNjaGVtYV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRhYmxlX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW5kZXhfY29uc3RyYWludF9pZCksCiAgICAgICAgICAgICBmb2xsb3dfcmVk aXJlY3RzPVRydWUKICAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25z ZS5zdGF0dXNfY29kZSwgMjAwKQogCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHRlYXJEb3du Q2xhc3MoY2xzKToKLSAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBk YXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKGNscywgY2xzLnNlcnZlcl9pZCwgY2xz LmRiX2lkKQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50 bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24o cmVzcG9uc2UpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2luZm8n KSA+IHNob3VsZC5iZS5lcXVhbC50bygKKyAgICAgICAgICAgICdVbmlxdWUgY29uc3RyYWludCBk cm9wcGVkLicpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2Vycm9y bXNnJykgPiBzaG91bGQuYmUuZW1wdHkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5o YXZlLmtleSgnZGF0YScpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXko J3Jlc3VsdCcpID4gc2hvdWxkLmJlLm5vbmUKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3Vs ZC5oYXZlLmtleSgnc3VjY2VzcycpID4gc2hvdWxkLmJlLmVxdWFsLnRvKDEpCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvY29uc3RyYWludHMvaW5kZXhfY29uc3RyYWludC90ZXN0cy90ZXN0X2luZGV4 X2NvbnN0cmFpbnRfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0cmFp bnQvdGVzdHMvdGVzdF9pbmRleF9jb25zdHJhaW50X2dldC5weQppbmRleCAzMTQxMjE3Ni4uMDAy NWUwYjQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50 L3Rlc3RzL3Rlc3RfaW5kZXhfY29uc3RyYWludF9nZXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0 cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9pbmRleF9jb25zdHJhaW50X2dldC5w eQpAQCAtOSw3OSArOSwxNDIgQEAKIAogaW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJv bSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwKICAgICBpbXBvcnQg dXRpbHMgYXMgdGFibGVzX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBz Y2hlbWFfdXRpbHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKLSAgICBkYXRhYmFzZV91dGlscwotZnJv bSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdy ZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNf aGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24KIGZyb20gcmVncmVzc2lvbi5w eXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9y dCB1dGlscyBhcyBpbmRleF9jb25zdHJhaW50X3V0aWxzCiAKIAotY2xhc3MgSW5kZXhDb25zdHJh aW50R2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2ls bCBmZXRjaCB0aGUgaW5kZXggY29uc3RyYWludChwcmltYXJ5IGtleSBvciB1bmlxdWUga2V5KSBv ZgotICAgIHRhYmxlIGNvbHVtbiIiIgotICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQot ICAgIHByaW1hcnlfa2V5X25hbWUgPSAidGVzdF9wcmltYXJ5a2V5X2RlbGV0ZV8lcyIgJSBcCi0g ICAgICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgIHVuaXF1 ZV9rZXlfbmFtZSA9ICJ0ZXN0X3VuaXF1ZWtleV9kZWxldGVfJXMiICUgXAotICAgICAgICAgICAg ICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgIHNjZW5hcmlvcyA9IFsKLSAg ICAgICAgKCdGZXRjaCBwcmltYXJ5IEtleSBjb25zdHJhaW50IG9mIHRhYmxlJywKLSAgICAgICAg IGRpY3QodXJsPScvYnJvd3Nlci9wcmltYXJ5X2tleS9vYmovJywgbmFtZT1wcmltYXJ5X2tleV9u YW1lLAotICAgICAgICAgICAgICB0eXBlPSJQUklNQVJZIEtFWSIpKSwKLSAgICAgICAgKCdGZXRj aCB1bmlxdWUgS2V5IGNvbnN0cmFpbnQgb2YgdGFibGUnLAotICAgICAgICAgZGljdCh1cmw9Jy9i cm93c2VyL3VuaXF1ZV9jb25zdHJhaW50L29iai8nLCBuYW1lPXVuaXF1ZV9rZXlfbmFtZSwKLSAg ICAgICAgICAgICAgdHlwZT0iVU5JUVVFIikpCi0gICAgXQotCi0gICAgQGNsYXNzbWV0aG9kCi0g ICAgZGVmIHNldFVwQ2xhc3MoY2xzKToKLSAgICAgICAgY2xzLmRiX25hbWUgPSBwYXJlbnRfbm9k ZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9pbmZvID0g cGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIGNscy5zZXJ2ZXJfaWQgPSBz Y2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgY2xzLmRiX2lkID0gc2NoZW1hX2luZm9b ImRiX2lkIl0KLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFz ZShjbHMsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjbHMuc2VydmVyX2lkLCBjbHMuZGJfaWQpCi0gICAgICAgIGlm IG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBhICIKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiaW5kZXggY29uc3RyYWludChwcmltYXJ5IGtleSBvciB1bmlx dWUga2V5KS4iKQotICAgICAgICBjbHMuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9p ZCJdCi0gICAgICAgIGNscy5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJd Ci0gICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhj bHMuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY2xzLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjbHMuc2NoZW1hX25hbWUpCitAcHl0ZXN0Lm1hcmsuc2tpcF9k YXRhYmFzZXMoWydncGRiJ10pCitjbGFzcyBUZXN0SW5kZXhDb25zdHJhaW50R2V0OgorICAgIEBw eXRlc3QubWFyay51c2VmaXh0dXJlcygncmVxdWlyZV9kYXRhYmFzZV9jb25uZWN0aW9uJykKKyAg ICBkZWYgdGVzdF9wcmltYXJ5X2tleV9nZXQoc2VsZiwgY29udGV4dF9vZl90ZXN0cyk6CisgICAg ICAgICIiIgorICAgICAgICBXaGVuIHRoZSBQcmltYXJ5IEtleSBHRVQgcmVxdWVzdCBpcyBzZW5k IHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAi IiIKKworICAgICAgICBodHRwX2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50 J10KKyAgICAgICAgc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAg c2VydmVyX2RhdGEgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQorCisg ICAgICAgIGRiX25hbWUgPSBzZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisgICAgICAgIHNlcnZlcl9p ZCA9IHNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBkYl9pZCA9IHNlcnZlcl9kYXRh WydkYl9pZCddCisgICAgICAgIHNjaGVtYV9pZCA9IHNlcnZlcl9kYXRhWydzY2hlbWFfaWQnXQor ICAgICAgICBzY2hlbWFfbmFtZSA9IHNlcnZlcl9kYXRhWydzY2hlbWFfbmFtZSddCisgICAgICAg IHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZXJ2ZXIsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9u YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2NoZW1hX25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIGEg aW5kZXggIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb25zdHJhaW50KHByaW1hcnkg a2V5IG9yIHVuaXF1ZSBrZXkpLiIpCi0gICAgICAgIGNscy50YWJsZV9uYW1lID0gInRhYmxlX2lu ZGV4Y29uc3RyYWludF8lcyIgJSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlk LnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIGNscy50YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVh dGVfdGFibGUoY2xzLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjbHMuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjbHMuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnRhYmxlX25hbWUpCi0KLSAgICBkZWYg cnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIHRoZSBp bmRleCBjb25zdHJhaW50KHByaW1hcnkga2V5IG9yCi0gICAgICAgIHVuaXF1ZSBrZXkpIG9mIHRh YmxlIGNvbHVtbi4iIiIKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ291bGQgbm90IGZp bmQgdGhlIHNjaGVtYSB0byBhZGQgYSBpbmRleCAnCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ2NvbnN0cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtleSkuJykKKyAgICAgICAgdGFi bGVfbmFtZSA9ICd0YWJsZV9pbmRleGNvbnN0cmFpbnRfJXMnICUgXAorICAgICAgICAgICAgICAg ICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHRhYmxlX2lkID0gdGFibGVz X3V0aWxzLmNyZWF0ZV90YWJsZShzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0YWJsZV9uYW1lKQorCisgICAgICAgIHByaW1hcnlfa2V5X25hbWUg PSAndGVzdF9wcmltYXJ5a2V5X2dldF8lcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKICAgICAgICAgaW5kZXhfY29uc3RyYWludF9pZCA9 IFwKICAgICAgICAgICAgIGluZGV4X2NvbnN0cmFpbnRfdXRpbHMuY3JlYXRlX2luZGV4X2NvbnN0 cmFpbnQoCi0gICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5z Y2hlbWFfbmFtZSwgc2VsZi50YWJsZV9uYW1lLAotICAgICAgICAgICAgICAgIHNlbGYubmFtZSwg c2VsZi50eXBlKQotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKLSAgICAgICAg ICAgICJ7MH17MX0vezJ9L3szfS97NH0vezV9L3s2fSIuZm9ybWF0KHNlbGYudXJsLCB1dGlscy5T RVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX2lkLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9pZCwKKyAgICAgICAg ICAgICAgICBzZXJ2ZXIsIGRiX25hbWUsIHNjaGVtYV9uYW1lLCB0YWJsZV9uYW1lLAorICAgICAg ICAgICAgICAgIHByaW1hcnlfa2V5X25hbWUsICdQUklNQVJZIEtFWScpCisgICAgICAgIHVybCA9 ICcvYnJvd3Nlci9wcmltYXJ5X2tleS9vYmovJworICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xp ZW50LmdldCgKKyAgICAgICAgICAgICd7MH17MX0vezJ9L3szfS97NH0vezV9L3s2fScuZm9ybWF0 KHVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLCBkYl9pZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9pZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlX2lkLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhfY29uc3RyYWludF9pZCksCiAg ICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUKICAgICAgICAgKQotICAgICAgICBzZWxm LmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogCi0gICAgQGNsYXNzbWV0 aG9kCi0gICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKLSAgICAgICAgIyBEaXNjb25uZWN0IHRo ZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKGNs cywgY2xzLnNlcnZlcl9pZCwgY2xzLmRiX2lkKQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29k ZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252 ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBz aG91bGQuaGF2ZS5rZXkoJ2NvbW1lbnQnKSA+IHNob3VsZC5iZS5ub25lCisgICAgICAgIChqc29u X3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCduYW1lJykgPgorICAgICAgICAgc2hvdWxkLmJl LmVxdWFsLnRvKHByaW1hcnlfa2V5X25hbWUpKQorICAgICAgICAoanNvbl9yZXNwb25zZSB8IHNo b3VsZC5oYXZlLmtleSgnaW5kbmF0dHMnKSA+CisgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8o MSkpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ29pZCcpCisgICAg ICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2NvbmRlZmVycmFibGUnKSA+IHNo b3VsZC5iZS5mYWxzZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdj b25kZWZlcnJlZCcpID4gc2hvdWxkLmJlLmZhbHNlCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBz aG91bGQuaGF2ZS5rZXkoJ2ZpbGxmYWN0b3InKSA+IHNob3VsZC5iZS5ub25lCisgICAgICAgIChq c29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdzcGNuYW1lJykgPgorICAgICAgICAgc2hv dWxkLmJlLmVxdWFsLnRvKCdwZ19kZWZhdWx0JykpCisKKyAgICAgICAganNvbl9yZXNwb25zZSB8 IHNob3VsZC5oYXZlLmtleSgnY29sdW1ucycpID4gc2hvdWxkLmhhdmUubGVuZ3RoLm9mKDEpCisg ICAgICAgIChqc29uX3Jlc3BvbnNlWydjb2x1bW5zJ11bMF0gfCBzaG91bGQuaGF2ZS5rZXkoJ2Nv bHVtbicpID4KKyAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50bygnaWQnKSkKKworICAgIEBweXRl c3QubWFyay51c2VmaXh0dXJlcygncmVxdWlyZV9kYXRhYmFzZV9jb25uZWN0aW9uJykKKyAgICBk ZWYgdGVzdF91bmlxdWVfY29uc3RyYWludF9nZXQoc2VsZiwgY29udGV4dF9vZl90ZXN0cyk6Cisg ICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBVbmlxdWVyIENvbnN0cmFpbnQgR0VUIHJlcXVl c3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMK KyAgICAgICAgIiIiCisKKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0 ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcidd CisgICAgICAgIHNlcnZlcl9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9ybWF0 aW9uJ10KKworICAgICAgICBkYl9uYW1lID0gc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorICAgICAg ICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgZGJfaWQgPSBz ZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzY2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsnc2No ZW1hX2lkJ10KKyAgICAgICAgc2NoZW1hX25hbWUgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX25hbWUn XQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMo c2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQorICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNl OgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1h IHRvIGFkZCBhIGluZGV4ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uc3RyYWlu dChwcmltYXJ5IGtleSBvciB1bmlxdWUga2V5KS4nKQorICAgICAgICB0YWJsZV9uYW1lID0gJ3Rh YmxlX2luZGV4Y29uc3RyYWludF8lcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1 aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgdGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRl X3RhYmxlKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRhYmxlX25hbWUpCisKKyAgICAgICAgdW5pcXVlX2NvbnN0cmFpbnRfbmFtZSA9ICd0ZXN0 X3VuaXF1ZV9jb25zdHJhaW50X2dldF8lcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgaW5kZXhfY29uc3RyYWlu dF9pZCA9IFwKKyAgICAgICAgICAgIGluZGV4X2NvbnN0cmFpbnRfdXRpbHMuY3JlYXRlX2luZGV4 X2NvbnN0cmFpbnQoCisgICAgICAgICAgICAgICAgc2VydmVyLCBkYl9uYW1lLCBzY2hlbWFfbmFt ZSwgdGFibGVfbmFtZSwKKyAgICAgICAgICAgICAgICB1bmlxdWVfY29uc3RyYWludF9uYW1lLCAn VU5JUVVFJykKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3VuaXF1ZV9jb25zdHJhaW50L29iai8n CisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQuZ2V0KAorICAgICAgICAgICAgJ3swfXsx fS97Mn0vezN9L3s0fS97NX0vezZ9Jy5mb3JtYXQodXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQs IGRiX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2NoZW1hX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGFibGVfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbmRleF9jb25zdHJhaW50X2lkKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9 VHJ1ZQorICAgICAgICApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQu YmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25z ZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUu a2V5KCdjb21tZW50JykgPiBzaG91bGQuYmUubm9uZQorICAgICAgICAoanNvbl9yZXNwb25zZSB8 IHNob3VsZC5oYXZlLmtleSgnbmFtZScpID4KKyAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50byh1 bmlxdWVfY29uc3RyYWludF9uYW1lKSkKKyAgICAgICAgKGpzb25fcmVzcG9uc2UgfCBzaG91bGQu aGF2ZS5rZXkoJ2luZG5hdHRzJykgPgorICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKDEpKQor ICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdvaWQnKQorICAgICAgICBq c29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdjb25kZWZlcnJhYmxlJykgPiBzaG91bGQu YmUuZmFsc2UKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnY29uZGVm ZXJyZWQnKSA+IHNob3VsZC5iZS5mYWxzZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxk LmhhdmUua2V5KCdmaWxsZmFjdG9yJykgPiBzaG91bGQuYmUubm9uZQorICAgICAgICAoanNvbl9y ZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnc3BjbmFtZScpID4KKyAgICAgICAgIHNob3VsZC5i ZS5lcXVhbC50bygncGdfZGVmYXVsdCcpKQorCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91 bGQuaGF2ZS5rZXkoJ2NvbHVtbnMnKSA+IHNob3VsZC5oYXZlLmxlbmd0aC5vZigxKQorICAgICAg ICAoanNvbl9yZXNwb25zZVsnY29sdW1ucyddWzBdIHwgc2hvdWxkLmhhdmUua2V5KCdjb2x1bW4n KSA+CisgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8oJ2lkJykpCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvY29uc3RyYWludHMvaW5kZXhfY29uc3RyYWludC90ZXN0cy90ZXN0X2luZGV4X2NvbnN0 cmFpbnRfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQvdGVz dHMvdGVzdF9pbmRleF9jb25zdHJhaW50X3B1dC5weQppbmRleCBlZjBlM2FkZS4uNTNjMTBlZTYg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rlc3Rz L3Rlc3RfaW5kZXhfY29uc3RyYWludF9wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRz L2luZGV4X2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9pbmRleF9jb25zdHJhaW50X3B1dC5weQpAQCAt MTAsODEgKzEwLDEzMyBAQAogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRl c3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCiAgICAg aW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVy X2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRp bHMgYXMgc2NoZW1hX3V0aWxzCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl cnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCi0gICAgZGF0YWJhc2VfdXRp bHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZy b20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSBwZ2FkbWluLnV0aWxz LnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uLCBcCisgICAgYXNz ZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVz dF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBh cyBpbmRleF9jb25zdHJhaW50X3V0aWxzCiAKIAotY2xhc3MgSW5kZXhDb25zdHJhaW50VXBkYXRl VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCB1cGRh dGUgaW5kZXggY29uc3RyYWludChwcmltYXJ5IGtleSBvciB1bmlxdWUga2V5KSBvZgotICAgIHRh YmxlIGNvbHVtbiIiIgotICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQotICAgIHByaW1h cnlfa2V5X25hbWUgPSAidGVzdF9wcmltYXJ5a2V5X3B1dF8lcyIgJSBcCi0gICAgICAgICAgICAg ICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgIHVuaXF1ZV9rZXlfbmFtZSA9 ICJ0ZXN0X3VuaXF1ZWtleV9wdXRfJXMiICUgXAotICAgICAgICAgICAgICAgICAgICAgIChzdHIo dXVpZC51dWlkNCgpKVsxOjhdKQotICAgIGRhdGEgPSB7Im9pZCI6ICIiLCAiY29tbWVudCI6ICJ0 aGlzIGlzIHRlc3QgY29tbWVudCJ9Ci0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoJ1VwZGF0 ZSBwcmltYXJ5IEtleSBjb25zdHJhaW50IG9mIHRhYmxlJywKLSAgICAgICAgIGRpY3QodXJsPScv YnJvd3Nlci9wcmltYXJ5X2tleS9vYmovJywgbmFtZT1wcmltYXJ5X2tleV9uYW1lLAotICAgICAg ICAgICAgICB0eXBlPSJQUklNQVJZIEtFWSIsIGRhdGE9ZGF0YSkpLAotICAgICAgICAoJ1VwZGF0 ZSB1bmlxdWUgS2V5IGNvbnN0cmFpbnQgb2YgdGFibGUnLAotICAgICAgICAgZGljdCh1cmw9Jy9i cm93c2VyL3VuaXF1ZV9jb25zdHJhaW50L29iai8nLCBuYW1lPXVuaXF1ZV9rZXlfbmFtZSwKLSAg ICAgICAgICAgICAgdHlwZT0iVU5JUVVFIiwgZGF0YT1kYXRhKSkKLSAgICBdCitAcHl0ZXN0Lm1h cmsuc2tpcF9kYXRhYmFzZXMoWydncGRiJ10pCitjbGFzcyBUZXN0SW5kZXhDb25zdHJhaW50VXBk YXRlOgorICAgIEBweXRlc3QubWFyay51c2VmaXh0dXJlcygncmVxdWlyZV9kYXRhYmFzZV9jb25u ZWN0aW9uJykKKyAgICBkZWYgdGVzdF9wcmltYXJ5X2tleV91cGRhdGUoc2VsZiwgY29udGV4dF9v Zl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBQcmltYXJ5IEtleSBQVVQg cmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0 YXR1cworICAgICAgICAiIiIKKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rlc3Rz Wyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZl ciddCisgICAgICAgIHNlcnZlcl9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9y bWF0aW9uJ10KIAotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBzZXRVcENsYXNzKGNscyk6Ci0g ICAgICAgIGNscy5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRi X25hbWUiXQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJd Wy0xXQotICAgICAgICBjbHMuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0g ICAgICAgIGNscy5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGRiX2NvbiA9 IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2UoY2xzLCB1dGlscy5TRVJWRVJfR1JPVVAs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnNl cnZlcl9pZCwgY2xzLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5l Y3RlZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0 byBkYXRhYmFzZSB0byBhZGQgYSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImluZGV4 IGNvbnN0cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtleSkuIikKLSAgICAgICAgY2xzLnNj aGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBjbHMuc2NoZW1hX25h bWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQotICAgICAgICBzY2hlbWFfcmVzcG9uc2Ug PSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoY2xzLnNlcnZlciwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5kYl9uYW1lLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnNj aGVtYV9uYW1lKQorICAgICAgICBkYl9uYW1lID0gc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorICAg ICAgICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgZGJfaWQg PSBzZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzY2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsn c2NoZW1hX2lkJ10KKyAgICAgICAgc2NoZW1hX25hbWUgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX25h bWUnXQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVt YXMoc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3Bv bnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2No ZW1hIHRvIGFkZCBhIGluZGV4ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29uc3Ry YWludChwcmltYXJ5IGtleSBvciB1bmlxdWUga2V5KS4iKQotICAgICAgICBjbHMudGFibGVfbmFt ZSA9ICJ0YWJsZV9pbmRleGNvbnN0cmFpbnRfJXMiICUgXAotICAgICAgICAgICAgICAgICAgICAg ICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBjbHMudGFibGVfaWQgPSB0YWJs ZXNfdXRpbHMuY3JlYXRlX3RhYmxlKGNscy5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLmRiX25hbWUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnNjaGVtYV9uYW1lLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy50YWJsZV9uYW1l KQorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1h IHRvIGFkZCBhIGluZGV4ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uc3RyYWlu dChwcmltYXJ5IGtleSBvciB1bmlxdWUga2V5KS4nKQorICAgICAgICB0YWJsZV9uYW1lID0gJ3Rh YmxlX2luZGV4Y29uc3RyYWludF8lcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1 aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgdGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRl X3RhYmxlKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRhYmxlX25hbWUpCisgICAgICAgIHByaW1hcnlfa2V5X25hbWUgPSAndGVzdF9wcmltYXJ5 a2V5X3B1dF8lcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVp ZDQoKSlbMTo4XSkKKyAgICAgICAgaW5kZXhfY29uc3RyYWludF9pZCA9IFwKKyAgICAgICAgICAg IGluZGV4X2NvbnN0cmFpbnRfdXRpbHMuY3JlYXRlX2luZGV4X2NvbnN0cmFpbnQoCisgICAgICAg ICAgICAgICAgc2VydmVyLCBkYl9uYW1lLCBzY2hlbWFfbmFtZSwgdGFibGVfbmFtZSwKKyAgICAg ICAgICAgICAgICBwcmltYXJ5X2tleV9uYW1lLCAnUFJJTUFSWSBLRVknKQorICAgICAgICBkYXRh ID0geydvaWQnOiBpbmRleF9jb25zdHJhaW50X2lkLCAnY29tbWVudCc6ICd0aGlzIGlzIHRlc3Qg Y29tbWVudCd9CisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9wcmltYXJ5X2tleS9vYmovJworICAg ICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LnB1dCgKKyAgICAgICAgICAgICd7MH17MX0vezJ9 L3szfS97NH0vezV9L3s2fScuZm9ybWF0KHVybCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX2lkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVfaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleF9jb25zdHJhaW50 X2lkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAor ICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAgICAgZm9sbG93X3Jl ZGlyZWN0cz1UcnVlKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJl LmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2Vf dG9fanNvbihyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9u c2UoCisgICAgICAgICAgICBqc29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgJ3ByaW1hcnlfa2V5 JywKKyAgICAgICAgICAgICdwZ2FkbWluLm5vZGUucHJpbWFyeV9rZXknLAorICAgICAgICAgICAg RmFsc2UsCisgICAgICAgICAgICAnaWNvbi1wcmltYXJ5X2tleScsCisgICAgICAgICAgICBwcmlt YXJ5X2tleV9uYW1lCisgICAgICAgICkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAg ICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIGluZGV4IGNvbnN0cmFpbnQocHJpbWFyeSBr ZXkgb3IKLSAgICAgICAgdW5pcXVlIGtleSkgb2YgdGFibGUgY29sdW1uLiIiIgorICAgIEBweXRl c3QubWFyay51c2VmaXh0dXJlcygncmVxdWlyZV9kYXRhYmFzZV9jb25uZWN0aW9uJykKKyAgICBk ZWYgdGVzdF91bmlxdWVfY29uc3RyYWludF91cGRhdGUoc2VsZiwgY29udGV4dF9vZl90ZXN0cyk6 CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBVbmlxdWUgQ29uc3RyYWludCBQVVQgcmVx dWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1 cworICAgICAgICAiIiIKKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0 ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcidd CisgICAgICAgIHNlcnZlcl9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9ybWF0 aW9uJ10KKworICAgICAgICBkYl9uYW1lID0gc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorICAgICAg ICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgZGJfaWQgPSBz ZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzY2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsnc2No ZW1hX2lkJ10KKyAgICAgICAgc2NoZW1hX25hbWUgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX25hbWUn XQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMo c2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQorICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNl OgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1h IHRvIGFkZCBhIGluZGV4ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uc3RyYWlu dChwcmltYXJ5IGtleSBvciB1bmlxdWUga2V5KS4nKQorICAgICAgICB0YWJsZV9uYW1lID0gJ3Rh YmxlX2luZGV4Y29uc3RyYWludF8lcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1 aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgdGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRl X3RhYmxlKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRhYmxlX25hbWUpCisgICAgICAgIHVuaXF1ZV9jb25zdHJhaW50X25hbWUgPSAndGVzdF91 bmlxdWVjb25zdHJhaW50X3B1dF8lcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKICAgICAgICAgaW5kZXhfY29uc3RyYWludF9p ZCA9IFwKICAgICAgICAgICAgIGluZGV4X2NvbnN0cmFpbnRfdXRpbHMuY3JlYXRlX2luZGV4X2Nv bnN0cmFpbnQoCi0gICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2Vs Zi5zY2hlbWFfbmFtZSwgc2VsZi50YWJsZV9uYW1lLAotICAgICAgICAgICAgICAgIHNlbGYubmFt ZSwgc2VsZi50eXBlKQotICAgICAgICBzZWxmLmRhdGFbIm9pZCJdID0gaW5kZXhfY29uc3RyYWlu dF9pZAotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKLSAgICAgICAgICAgICJ7 MH17MX0vezJ9L3szfS97NH0vezV9L3s2fSIuZm9ybWF0KHNlbGYudXJsLCB1dGlscy5TRVJWRVJf R1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX2lkLCBzZWxmLnRhYmxlX2lkLAorICAgICAg ICAgICAgICAgIHNlcnZlciwgZGJfbmFtZSwgc2NoZW1hX25hbWUsIHRhYmxlX25hbWUsCisgICAg ICAgICAgICAgICAgdW5pcXVlX2NvbnN0cmFpbnRfbmFtZSwgJ1VOSVFVRScpCisgICAgICAgIGRh dGEgPSB7J29pZCc6IGluZGV4X2NvbnN0cmFpbnRfaWQsICdjb21tZW50JzogJ3RoaXMgaXMgdGVz dCBjb21tZW50J30KKyAgICAgICAgdXJsID0gJy9icm93c2VyL3VuaXF1ZV9jb25zdHJhaW50L29i ai8nCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQucHV0KAorICAgICAgICAgICAgJ3sw fXsxfS97Mn0vezN9L3s0fS97NX0vezZ9Jy5mb3JtYXQodXJsLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfaWQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfaWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9pZCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4X2Nv bnN0cmFpbnRfaWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICksCi0gICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoc2VsZi5kYXRhKSwKKyAgICAgICAg ICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9 VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIw MCkKIAotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNscyk6Ci0gICAg ICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlz Y29ubmVjdF9kYXRhYmFzZShjbHMsIGNscy5zZXJ2ZXJfaWQsIGNscy5kYl9pZCkKKyAgICAgICAg cmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBq c29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAg ICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAgICAgICAgIGpzb25fcmVz cG9uc2UsCisgICAgICAgICAgICAndW5pcXVlX2NvbnN0cmFpbnQnLAorICAgICAgICAgICAgJ3Bn YWRtaW4ubm9kZS51bmlxdWVfY29uc3RyYWludCcsCisgICAgICAgICAgICBGYWxzZSwKKyAgICAg ICAgICAgICdpY29uLXVuaXF1ZV9jb25zdHJhaW50JywKKyAgICAgICAgICAgIHVuaXF1ZV9jb25z dHJhaW50X25hbWUKKyAgICAgICAgKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRz L3Rlc3RzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL3Rlc3RzL19faW5pdF9f LnB5CmluZGV4IDUxMjA5NzgyLi41OTAwMjZhZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0 cmFpbnRzL3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy90ZXN0 cy9fX2luaXRfXy5weQpAQCAtNiwxMSArNiwzIEBACiAjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFz ZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQot ZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotCi0KLWNs YXNzIENvbnN0cmFpbnRzVGVzdEdlbmVyYXRvcihCYXNlVGVzdEdlbmVyYXRvcik6Ci0KLSAgICBk ZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgcmV0dXJuIFtdCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvaW5kZXhlcy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3Rlc3RzL19f aW5pdF9fLnB5CmluZGV4IDkyMTM4ZDhmLi41OTAwMjZhZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2luZGV4ZXMvdGVzdHMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVzdHMv X19pbml0X18ucHkKQEAgLTYsMTEgKzYsMyBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2Vk IHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLWZy b20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLQotCi1jbGFz cyBJbmRleGVzVGVzdEdlbmVyYXRvcihCYXNlVGVzdEdlbmVyYXRvcik6Ci0KLSAgICBkZWYgcnVu VGVzdChzZWxmKToKLSAgICAgICAgcmV0dXJuIFtdCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5k ZXhlcy90ZXN0cy90ZXN0X2luZGV4ZXNfYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVzdHMv dGVzdF9pbmRleGVzX2FkZC5weQppbmRleCAxMWZjNjRiZS4uODAxMTZiNTQgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9pbmRleGVzL3Rlc3RzL3Rlc3RfaW5kZXhlc19hZGQucHkKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL2luZGV4ZXMvdGVzdHMvdGVzdF9pbmRleGVzX2FkZC5weQpAQCAtMTAsNjAgKzEwLDY3IEBA CiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEg aW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwKICAgICBpbXBvcnQgdXRpbHMgYXMg dGFibGVzX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu ZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRp bHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu dGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKLSAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWlu LnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGlt cG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGlt cG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92YWx1ZXNf ZnJvbV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0 ZXN0X3V0aWxzIGFzIHV0aWxzCiAKIAotY2xhc3MgSW5kZXhlc0FkZFRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgYWRkIG5ldyBpbmRleCB0byBleGlz dGluZyB0YWJsZSBjb2x1bW4iIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnQWRkIGlu ZGV4IE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL2luZGV4L29iai8nKSkKLSAgICBdCitj bGFzcyBUZXN0SW5kZXhlc0FkZDoKKyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoJ3JlcXVp cmVfZGF0YWJhc2VfY29ubmVjdGlvbicpCisgICAgZGVmIHRlc3RfaW5kZXhfYWRkKHNlbGYsIGNv bnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgaW5kZXggYWRk IHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBz dGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0 c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2 ZXInXQorICAgICAgICBzZXJ2ZXJfZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZv cm1hdGlvbiddCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuZGJfbmFtZSA9 IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2No ZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VsZi5z ZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9pZCA9 IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNv bm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRi X2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBh ZGQgYSB0YWJsZS4iKQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hl bWFfaWQiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9u YW1lIl0KLSAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hl bWFzKHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgZGJf bmFtZSA9IHNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKyAgICAgICAgc2VydmVyX2lkID0gc2VydmVy X2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIGRiX2lkID0gc2VydmVyX2RhdGFbJ2RiX2lkJ10K KyAgICAgICAgc2NoZW1hX2lkID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9pZCddCisgICAgICAgIHNj aGVtYV9uYW1lID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2NoZW1hX3Jl c3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlcnZlciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFf bmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSB0YWJsZS4iKQot ICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfZm9yX2NvbHVtbl8lcyIgJSAoc3RyKHV1 aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5j cmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9u YW1lKQorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCB0aGUgc2No ZW1hIHRvIGFkZCBhIHRhYmxlLicpCisKKyAgICAgICAgdGFibGVfbmFtZSA9ICd0YWJsZV9mb3Jf Y29sdW1uXyVzJyAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICB0YWJsZV9pZCA9 IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VydmVyLCBkYl9uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9uYW1lKQorCisgICAgICAg IGluZGV4X25hbWUgPSAndGVzdF9pbmRleF9hZGRfJXMnICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6 OF0pCisgICAgICAgIGRhdGEgPSB7J25hbWUnOiBpbmRleF9uYW1lLAorICAgICAgICAgICAgICAg ICdzcGNuYW1lJzogJ3BnX2RlZmF1bHQnLAorICAgICAgICAgICAgICAgICdhbW5hbWUnOiAnYnRy ZWUnLAorICAgICAgICAgICAgICAgICdjb2x1bW5zJzogWworICAgICAgICAgICAgICAgICAgICB7 J2NvbG5hbWUnOiAnaWQnLCAnc29ydF9vcmRlcic6IEZhbHNlLCAnbnVsbHMnOiBGYWxzZX1dfQor ICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvaW5kZXgvb2JqLycKIAotICAgIGRlZiBydW5UZXN0KHNl bGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIGluZGV4IHRvIGV4aXN0aW5n IHRhYmxlIGNvbHVtbi4iIiIKLSAgICAgICAgc2VsZi5pbmRleF9uYW1lID0gInRlc3RfaW5kZXhf YWRkXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBkYXRhID0geyJuYW1l Ijogc2VsZi5pbmRleF9uYW1lLAotICAgICAgICAgICAgICAgICJzcGNuYW1lIjogInBnX2RlZmF1 bHQiLAotICAgICAgICAgICAgICAgICJhbW5hbWUiOiAiYnRyZWUiLAotICAgICAgICAgICAgICAg ICJjb2x1bW5zIjogWwotICAgICAgICAgICAgICAgICAgICB7ImNvbG5hbWUiOiAiaWQiLCAic29y dF9vcmRlciI6IEZhbHNlLCAibnVsbHMiOiBGYWxzZX1dfQotICAgICAgICByZXNwb25zZSA9IHNl bGYudGVzdGVyLnBvc3QoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJf R1JPVVApICsgJy8nICsKLSAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBz dHIoc2VsZi5kYl9pZCkgKwotICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuc2NoZW1hX2lkKSAr ICcvJyArIHN0cihzZWxmLnRhYmxlX2lkKSArICcvJywKKyAgICAgICAgcmVzcG9uc2UgPSBodHRw X2NsaWVudC5wb3N0KAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkg KyAnLycgKworICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJfaWQpICsK KyAgICAgICAgICAgICcvJyArIHN0cihzY2hlbWFfaWQpICsgJy8nICsgc3RyKHRhYmxlX2lkKSAr ICcvJywKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAgIGNv bnRlbnRfdHlwZT0naHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9u c2Uuc3RhdHVzX2NvZGUsIDIwMCkKIAotICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAg IyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25u ZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBy ZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpz b25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAg IGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlKAorICAgICAgICAgICAganNvbl9yZXNw b25zZSwKKyAgICAgICAgICAgICdpbmRleCcsCisgICAgICAgICAgICAncGdhZG1pbi5ub2RlLmlu ZGV4JywKKyAgICAgICAgICAgIEZhbHNlLAorICAgICAgICAgICAgJ2ljb24taW5kZXgnLAorICAg ICAgICAgICAgaW5kZXhfbmFtZQorICAgICAgICApCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5k ZXhlcy90ZXN0cy90ZXN0X2luZGV4ZXNfZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVz dHMvdGVzdF9pbmRleGVzX2RlbGV0ZS5weQppbmRleCBhZTI3ODMzOC4uN2NhMjExOTIgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3Rlc3RzL3Rlc3RfaW5kZXhlc19kZWxldGUucHkKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL2luZGV4ZXMvdGVzdHMvdGVzdF9pbmRleGVzX2RlbGV0ZS5weQpAQCAtOSw3 NCArOSw3NyBAQAogCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBp bXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy cy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMuY29sdW1uLiBcCiAgICAgdGVzdHMgaW1wb3J0IHV0 aWxzIGFzIGNvbHVtbnNfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMu c2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAogICAgIGltcG9ydCB1dGls cyBhcyB0YWJsZXNfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2Vy dmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVt YV91dGlscwotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAotICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBn YWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Np b24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxw ZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbgogZnJvbSByZWdyZXNzaW9uLnB5dGhv bl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0 aWxzIGFzIGluZGV4ZXNfdXRpbHMKIAogCi1jbGFzcyBJbmRleGVzRGVsZXRlVGVzdENhc2UoQmFz ZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBkZWxldGUgdGhlIGV4aXN0 aW5nIGluZGV4IG9mIGNvbHVtbi4iIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnRGVs ZXRlIGluZGV4IE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL2luZGV4L29iai8nKSkKLSAg ICBdCitjbGFzcyBUZXN0SW5kZXhlc0RlbGV0ZToKKyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVy ZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlvbicpCisgICAgZGVmIHRlc3Rfc3lub255bV9k ZWxldGUoc2VsZiwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVu IHRoZSBJbmRleCBERUxFVEUgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAg IGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgaHR0cF9jbGllbnQg PSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9IGNvbnRl eHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlcnZlcl9kYXRhID0gY29udGV4dF9vZl90 ZXN0c1snc2VydmVyX2luZm9ybWF0aW9uJ10KIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAg ICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25h bWUiXQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0x XQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAg ICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgZGJfY29uID0g ZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29u bmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0 IHRvIGRhdGFiYXNlIHRvIGFkZCBhIHRhYmxlLiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0g c2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hl bWFfaW5mb1sic2NoZW1hX25hbWUiXQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFf dXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9u YW1lKQorICAgICAgICBkYl9uYW1lID0gc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorICAgICAgICBz ZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgZGJfaWQgPSBzZXJ2 ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzY2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1h X2lkJ10KKyAgICAgICAgc2NoZW1hX25hbWUgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX25hbWUnXQor ICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2Vy dmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgot ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRv IGFkZCBhIHRhYmxlLiIpCi0gICAgICAgIHNlbGYudGFibGVfbmFtZSA9ICJ0YWJsZV9jb2x1bW5f JXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYudGFibGVfaWQgPSB0 YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1h X25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYudGFibGVfbmFtZSkKLSAgICAgICAgc2VsZi5jb2x1bW5fbmFtZSA9ICJ0ZXN0X2NvbHVt bl9kZWxldGVfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYuY29s dW1uX2lkID0gY29sdW1uc191dGlscy5jcmVhdGVfY29sdW1uKHNlbGYuc2VydmVyLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25h bWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb2x1bW5fbmFtZSkKLSAgICAgICAg c2VsZi5pbmRleF9uYW1lID0gInRlc3RfaW5kZXhfZGVsZXRlXyVzIiAlIChzdHIodXVpZC51dWlk NCgpKVsxOjhdKQotICAgICAgICBzZWxmLmluZGV4X2lkID0gaW5kZXhlc191dGlscy5jcmVhdGVf aW5kZXgoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmluZGV4X25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmNvbHVtbl9uYW1lKQorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdD b3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBhIHRhYmxlLicpCisgICAgICAgIHRhYmxl X25hbWUgPSAndGFibGVfY29sdW1uXyVzJyAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAg ICAgICB0YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VydmVyLCBkYl9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9u YW1lKQorICAgICAgICBjb2x1bW5fbmFtZSA9ICd0ZXN0X2NvbHVtbl9kZWxldGVfJXMnICUgKHN0 cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIGNvbHVtbnNfdXRpbHMuY3JlYXRlX2NvbHVt bihzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29sdW1uX25hbWUpCisgICAgICAgIGluZGV4X25hbWUgPSAn dGVzdF9pbmRleF9kZWxldGVfJXMnICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAg IGluZGV4X2lkID0gaW5kZXhlc191dGlscy5jcmVhdGVfaW5kZXgoc2VydmVyLCBkYl9uYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlX25h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhf bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1 bW5fbmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0 aW9uIHdpbGwgZGVsZXRlIGluZGV4IG9mIGV4aXN0aW5nIGNvbHVtbi4iIiIKLSAgICAgICAgaW5k ZXhfcmVzcG9uc2UgPSBpbmRleGVzX3V0aWxzLnZlcmlmeV9pbmRleChzZWxmLnNlcnZlciwgc2Vs Zi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuaW5kZXhfbmFtZSkKKyAgICAgICAgaW5kZXhfcmVzcG9uc2UgPSBpbmRleGVz X3V0aWxzLnZlcmlmeV9pbmRleChzZXJ2ZXIsIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhfbmFtZSkKICAgICAgICAgaWYg bm90IGluZGV4X3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgZmluZCB0aGUgaW5kZXggdG8gZGVsZXRlLiIpCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50 ZXN0ZXIuZGVsZXRlKHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zZXJ2ZXJfaWQp ICsgJy8nICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYu ZGJfaWQpICsgJy8nICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry KHNlbGYuc2NoZW1hX2lkKSArICcvJyArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cihzZWxmLnRhYmxlX2lkKSArICcvJyArCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cihzZWxmLmluZGV4X2lkKSwKKyAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbignQ291bGQgbm90IGZpbmQgdGhlIGluZGV4IHRvIGRlbGV0ZS4nKQorCisgICAgICAg IHVybCA9ICcvYnJvd3Nlci9pbmRleC9vYmovJworICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xp ZW50LmRlbGV0ZSh1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICcvJyArIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKGRiX2lkKSArICcvJyArCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzY2hlbWFfaWQpICsgJy8n ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHRhYmxlX2lkKSAr ICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihpbmRleF9p ZCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVj dHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUs IDIwMCkKIAotICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIyBEaXNjb25uZWN0IHRo ZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNl bGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICByZXNwb25zZS5zdGF0dXNf Y29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBj b252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGpzb25fcmVzcG9uc2Ug fCBzaG91bGQuaGF2ZS5rZXkoJ2luZm8nKSA+IHNob3VsZC5iZS5lcXVhbC50bygKKyAgICAgICAg ICAgICdJbmRleCBpcyBkcm9wcGVkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5o YXZlLmtleSgnZXJyb3Jtc2cnKSA+IHNob3VsZC5iZS5lbXB0eQorICAgICAgICBqc29uX3Jlc3Bv bnNlIHwgc2hvdWxkLmhhdmUua2V5KCdkYXRhJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNo b3VsZC5oYXZlLmtleSgncmVzdWx0JykgPiBzaG91bGQuYmUubm9uZQorICAgICAgICBqc29uX3Jl c3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdzdWNjZXNzJykgPiBzaG91bGQuYmUuZXF1YWwudG8o MSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3Rlc3RzL3Rlc3RfaW5kZXhlc19nZXQu cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvaW5kZXhlcy90ZXN0cy90ZXN0X2luZGV4ZXNfZ2V0LnB5CmluZGV4IDNj ZmQ3NTA4Li5jZmUwNDY5ZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVzdHMvdGVz dF9pbmRleGVzX2dldC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy90ZXN0cy90ZXN0X2luZGV4 ZXNfZ2V0LnB5CkBAIC05LDY5ICs5LDEwMSBAQAogCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0 ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMuY29sdW1uLiBcCiAg ICAgdGVzdHMgaW1wb3J0IHV0aWxzIGFzIGNvbHVtbnNfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMg XAogICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAog ICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAotICAgIGRhdGFi YXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJh dG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1p bi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbgogZnJv bSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxz CiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGluZGV4ZXNfdXRpbHMKIAogCi1jbGFzcyBJbmRleGVz R2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBm ZXRjaCB0aGUgZXhpc3RpbmcgaW5kZXggb2YgY29sdW1uLiIiIgotICAgIHNjZW5hcmlvcyA9IFsK LSAgICAgICAgKCdGZXRjaCBpbmRleCBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9pbmRl eC9vYmovJykpCi0gICAgXQorY2xhc3MgVGVzdEluZGV4ZXNHZXQ6CisgICAgQHB5dGVzdC5tYXJr LnVzZWZpeHR1cmVzKCdyZXF1aXJlX2RhdGFiYXNlX2Nvbm5lY3Rpb24nKQorICAgIGRlZiB0ZXN0 X2luZGV4X2dldChzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAg IFdoZW4gdGhlIGluZGV4IEdFVCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAg ICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICBodHRwX2NsaWVu dCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VydmVyID0gY29u dGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VydmVyX2RhdGEgPSBjb250ZXh0X29m X3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAg ICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJf bmFtZSJdCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1b LTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0g ICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAgICBkYl9jb24g PSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9V UCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJj b25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5l Y3QgdG8gZGF0YWJhc2UgdG8gYWRkIGEgdGFibGUuIikKLSAgICAgICAgc2VsZi5zY2hlbWFfaWQg PSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNj aGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVt YV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1h X25hbWUpCisgICAgICAgIGRiX25hbWUgPSBzZXJ2ZXJfZGF0YVsiZGJfbmFtZSJdCisgICAgICAg IHNlcnZlcl9pZCA9IHNlcnZlcl9kYXRhWyJzZXJ2ZXJfaWQiXQorICAgICAgICBkYl9pZCA9IHNl cnZlcl9kYXRhWyJkYl9pZCJdCisgICAgICAgIHNjaGVtYV9pZCA9IHNlcnZlcl9kYXRhWyJzY2hl bWFfaWQiXQorICAgICAgICBzY2hlbWFfbmFtZSA9IHNlcnZlcl9kYXRhWyJzY2hlbWFfbmFtZSJd CisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhz ZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2NoZW1hX25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6 CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEg dG8gYWRkIGEgdGFibGUuIikKLSAgICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRhYmxlX2NvbHVt bl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi50YWJsZV9pZCA9 IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hl bWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi50YWJsZV9uYW1lKQotICAgICAgICBzZWxmLmNvbHVtbl9uYW1lID0gInRlc3RfY29s dW1uX2RlbGV0ZV8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi5j b2x1bW5faWQgPSBjb2x1bW5zX3V0aWxzLmNyZWF0ZV9jb2x1bW4oc2VsZi5zZXJ2ZXIsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJf bmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNvbHVtbl9uYW1lKQotICAgICAg ICBzZWxmLmluZGV4X25hbWUgPSAidGVzdF9pbmRleF9kZWxldGVfJXMiICUgKHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYuaW5kZXhfaWQgPSBpbmRleGVzX3V0aWxzLmNyZWF0 ZV9pbmRleChzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFt ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuaW5kZXhfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuY29sdW1uX25hbWUpCisgICAgICAgIHRhYmxlX25hbWUgPSAidGFibGVf Y29sdW1uXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICB0YWJsZV9pZCA9 IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVfbmFtZSkKKyAgICAgICAgY29sdW1uX25hbWUg PSAidGVzdF9jb2x1bW5fZGVsZXRlXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAg ICAgICBjb2x1bW5zX3V0aWxzLmNyZWF0ZV9jb2x1bW4oc2VydmVyLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGFibGVfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVt bl9uYW1lKQorICAgICAgICBpbmRleF9uYW1lID0gInRlc3RfaW5kZXhfZGVsZXRlXyVzIiAlIChz dHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBpbmRleF9pZCA9IGluZGV4ZXNfdXRpbHMu Y3JlYXRlX2luZGV4KHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRhYmxlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW5kZXhfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb2x1bW5fbmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgot ICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggdGhlIGV4aXN0aW5nIGNvbHVtbiBp bmRleC4iIiIKLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCi0gICAgICAgICAg ICAiezB9ezF9L3syfS97M30vezR9L3s1fS97Nn0iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VS VkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9pZCwgc2VsZi50YWJsZV9pZCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaW5kZXhf aWQpLAorICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvaW5kZXgvb2JqLycKKyAgICAgICAgcmVzcG9u c2UgPSBodHRwX2NsaWVudC5nZXQoCisgICAgICAgICAgICAiezB9ezF9L3syfS97M30vezR9L3s1 fS97Nn0iLmZvcm1hdCh1cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwgZGJfaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfaWQsIHRhYmxl X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5k ZXhfaWQpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxm LmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogCi0gICAgZGVmIHRlYXJE b3duKHNlbGYpOgotICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRh dGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNl bGYuZGJfaWQpCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFs LnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNv bihyZXNwb25zZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnaW5k bmF0dHMnKSA+IHNob3VsZC5iZS5lcXVhbC50bygxKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwg c2hvdWxkLmhhdmUua2V5KCdjb25vaWQnKSA+IHNob3VsZC5iZS5ub25lCisgICAgICAgIGpzb25f cmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2luZGlzcHJpbWFyeScpID4gc2hvdWxkLmJlLmZh bHNlCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2NvbHMnKQorICAg ICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCd0YWJuYW1lJykgPiBzaG91bGQu YmUuZXF1YWwudG8oCisgICAgICAgICAgICB0YWJsZV9uYW1lKQorICAgICAgICBqc29uX3Jlc3Bv bnNlIHwgc2hvdWxkLmhhdmUua2V5KCdpbmRrZXknKSA+IHNob3VsZC5iZS5lcXVhbC50bygnNCcp CisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2luZGlzY2x1c3RlcmVk JykgPiBzaG91bGQuYmUuZmFsc2UKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZl LmtleSgnY29uZGVmZXJyZWQnKSA+IHNob3VsZC5iZS5ub25lCisgICAgICAgIGpzb25fcmVzcG9u c2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2FtbmFtZScpID4gc2hvdWxkLmJlLmVxdWFsLnRvKCdidHJl ZScpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2NvbnR5cGUnKSA+ IHNob3VsZC5iZS5ub25lCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXko J2luZHJlbGlkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnb2lk JykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnaXNfc3lzX2lkeCcp ID4gc2hvdWxkLmJlLmZhbHNlCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5r ZXkoJ2Rlc2NyaXB0aW9uJykgPiBzaG91bGQuYmUubm9uZQorICAgICAgICBqc29uX3Jlc3BvbnNl IHwgc2hvdWxkLmhhdmUua2V5KCduc3BuYW1lJykgPiBzaG91bGQuYmUuZXF1YWwudG8oCisgICAg ICAgICAgICBzY2hlbWFfbmFtZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZl LmtleSgnY29uZGVmZXJyYWJsZScpID4gc2hvdWxkLmJlLm5vbmUKKyAgICAgICAganNvbl9yZXNw b25zZSB8IHNob3VsZC5oYXZlLmtleSgnc3BjbmFtZScpCisgICAgICAgIGpzb25fcmVzcG9uc2Ug fCBzaG91bGQuaGF2ZS5rZXkoJ25hbWUnKSA+IHNob3VsZC5iZS5lcXVhbC50bygKKyAgICAgICAg ICAgIGluZGV4X25hbWUpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXko J2luZGNsYXNzJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnaW5k aXN2YWxpZCcpID4gc2hvdWxkLmJlLnRydWUKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3Vs ZC5oYXZlLmtleSgnaW5kY29uc3RyYWludCcpID4gc2hvdWxkLmJlLm5vbmUKKyAgICAgICAganNv bl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnaW5kaXN1bmlxdWUnKSA+IHNob3VsZC5iZS5m YWxzZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdmaWxsZmFjdG9y JykgPiBzaG91bGQuYmUubm9uZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUu a2V5KCdzcGNvaWQnKQorCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXko J2NvbHVtbnMnKSA+IHNob3VsZC5oYXZlLmxlbmd0aCgxKQorICAgICAgICBqc29uX3Jlc3BvbnNl Wydjb2x1bW5zJ11bMF0gfCBzaG91bGQuaGF2ZS5rZXkoJ29wX2NsYXNzJykgPiBzaG91bGQuYmUg XAorICAgICAgICAgICAgLm5vbmUKKyAgICAgICAganNvbl9yZXNwb25zZVsnY29sdW1ucyddWzBd IHwgc2hvdWxkLmhhdmUua2V5KCdjb2xuYW1lJykgPiBzaG91bGQuYmUgXAorICAgICAgICAgICAg LmVxdWFsLnRvKGNvbHVtbl9uYW1lKQorICAgICAgICBqc29uX3Jlc3BvbnNlWydjb2x1bW5zJ11b MF0gfCBzaG91bGQuaGF2ZS5rZXkoJ2NvbGxzcGNuYW1lJykKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy9pbmRleGVzL3Rlc3RzL3Rlc3RfaW5kZXhlc19wdXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy90 ZXN0cy90ZXN0X2luZGV4ZXNfcHV0LnB5CmluZGV4IDZjMmM3OWQ2Li45ZDUzNWUyOSAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVzdHMvdGVzdF9pbmRleGVzX3B1dC5weQorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvaW5kZXhlcy90ZXN0cy90ZXN0X2luZGV4ZXNfcHV0LnB5CkBAIC0xMCw3NiArMTAs ODIgQEAKIGltcG9ydCBqc29uCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdy YXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMu c2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMuY29sdW1uLiBcCiAgICAgdGVzdHMgaW1w b3J0IHV0aWxzIGFzIGNvbHVtbnNfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAogICAgIGltcG9y dCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFz IHNjaGVtYV91dGlscwotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAotICAgIGRhdGFiYXNlX3V0aWxzCi1m cm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJl Z3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0 c19oZWxwZXIgaW1wb3J0IGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlLCBcCisgICAg Y29udmVydF9yZXNwb25zZV90b19qc29uCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRp bHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgaW5k ZXhlc191dGlscwogCiAKLWNsYXNzIEluZGV4ZXNVcGRhdGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVy YXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3aWxsIHVwZGF0ZSB0aGUgZXhpc3RpbmcgaW5kZXgg b2YgY29sdW1uLiIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdQdXQgaW5kZXggTm9k ZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvaW5kZXgvb2JqLycpKQotICAgIF0KK2NsYXNzIFRl c3RJbmRleGVzVXBkYXRlOgorICAgIEBweXRlc3QubWFyay51c2VmaXh0dXJlcygncmVxdWlyZV9k YXRhYmFzZV9jb25uZWN0aW9uJykKKyAgICBkZWYgdGVzdF9pbmRleF91cGRhdGUoc2VsZiwgY29u dGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBpbmRleCBQVVQg cmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0 YXR1cworICAgICAgICAiIiIKKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rlc3Rz Wyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZl ciddCisgICAgICAgIHNlcnZlcl9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9y bWF0aW9uJ10KIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5kYl9uYW1lID0g cGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzY2hl bWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQotICAgICAgICBzZWxmLnNl cnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBzZWxmLmRiX2lkID0g c2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29u bmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJf aWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFk ZCBhIHRhYmxlLiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVt YV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25h bWUiXQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVt YXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBkYl9u YW1lID0gc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorICAgICAgICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJf ZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgZGJfaWQgPSBzZXJ2ZXJfZGF0YVsnZGJfaWQnXQor ICAgICAgICBzY2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX2lkJ10KKyAgICAgICAgc2No ZW1hX25hbWUgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX25hbWUnXQorICAgICAgICBzY2hlbWFfcmVz cG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VydmVyLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9u YW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBhIHRhYmxlLiIpCi0g ICAgICAgIHNlbGYudGFibGVfbmFtZSA9ICJ0YWJsZV9jb2x1bW5fJXMiICUgKHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRl X3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkK LSAgICAgICAgc2VsZi5jb2x1bW5fbmFtZSA9ICJ0ZXN0X2NvbHVtbl9kZWxldGVfJXMiICUgKHN0 cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYuY29sdW1uX2lkID0gY29sdW1uc191 dGlscy5jcmVhdGVfY29sdW1uKHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYudGFibGVfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5jb2x1bW5fbmFtZSkKLSAgICAgICAgc2VsZi5pbmRleF9uYW1lID0g InRlc3RfaW5kZXhfZGVsZXRlXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAg ICBzZWxmLmluZGV4X2lkID0gaW5kZXhlc191dGlscy5jcmVhdGVfaW5kZXgoc2VsZi5zZXJ2ZXIs IHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmluZGV4X25hbWUsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNvbHVt bl9uYW1lKQorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCB0aGUg c2NoZW1hIHRvIGFkZCBhIHRhYmxlLicpCisgICAgICAgIHRhYmxlX25hbWUgPSAndGFibGVfY29s dW1uXyVzJyAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICB0YWJsZV9pZCA9IHRh Ymxlc191dGlscy5jcmVhdGVfdGFibGUoc2VydmVyLCBkYl9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9uYW1lKQorICAgICAgICBjb2x1 bW5fbmFtZSA9ICd0ZXN0X2NvbHVtbl9kZWxldGVfJXMnICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6 OF0pCisgICAgICAgIGNvbHVtbnNfdXRpbHMuY3JlYXRlX2NvbHVtbihzZXJ2ZXIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0YWJsZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29sdW1uX25hbWUpCisgICAgICAgIGluZGV4X25hbWUgPSAndGVzdF9pbmRleF9kZWxldGVf JXMnICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIGluZGV4X2lkID0gaW5kZXhl c191dGlscy5jcmVhdGVfaW5kZXgoc2VydmVyLCBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhfbmFtZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5fbmFtZSkKIAotICAgIGRl ZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHRo ZSBpbmRleCBvZiBleGlzdGluZyBjb2x1bW4uIiIiCi0gICAgICAgIGluZGV4X3Jlc3BvbnNlID0g aW5kZXhlc191dGlscy52ZXJpZnlfaW5kZXgoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmlu ZGV4X25hbWUpCisgICAgICAgIGluZGV4X3Jlc3BvbnNlID0gaW5kZXhlc191dGlscy52ZXJpZnlf aW5kZXgoc2VydmVyLCBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGluZGV4X25hbWUpCiAgICAgICAgIGlmIG5vdCBpbmRleF9yZXNw b25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIGlu ZGV4IHRvIHVwZGF0ZS4iKQotICAgICAgICBkYXRhID0geyJvaWQiOiBzZWxmLmluZGV4X2lkLAot ICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIGlzIHRlc3QgY29tbWVudCBmb3Ig aW5kZXgifQotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKLSAgICAgICAgICAg ICJ7MH17MX0vezJ9L3szfS97NH0vezV9L3s2fSIuZm9ybWF0KHNlbGYudXJsLCB1dGlscy5TRVJW RVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX2lkLCBzZWxmLnRhYmxlX2lkLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5pbmRleF9p ZCksCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0NvdWxkIG5vdCBmaW5kIHRoZSBpbmRl eCB0byB1cGRhdGUuJykKKworICAgICAgICBkYXRhID0geydvaWQnOiBpbmRleF9pZCwKKyAgICAg ICAgICAgICAgICAnZGVzY3JpcHRpb24nOiAnVGhpcyBpcyB0ZXN0IGNvbW1lbnQgZm9yIGluZGV4 J30KKyAgICAgICAgdXJsID0gJy9icm93c2VyL2luZGV4L29iai8nCisgICAgICAgIHJlc3BvbnNl ID0gaHR0cF9jbGllbnQucHV0KAorICAgICAgICAgICAgJ3swfXsxfS97Mn0vezN9L3s0fS97NX0v ezZ9Jy5mb3JtYXQodXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQsIGRiX2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX2lkLCB0YWJsZV9p ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4 X2lkKSwKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAgIGZv bGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uu c3RhdHVzX2NvZGUsIDIwMCkKIAotICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIyBE aXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0 X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICByZXNw b25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25f cmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGFz c2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlKAorICAgICAgICAgICAganNvbl9yZXNwb25z ZSwKKyAgICAgICAgICAgICdpbmRleCcsCisgICAgICAgICAgICAncGdhZG1pbi5ub2RlLmluZGV4 JywKKyAgICAgICAgICAgIEZhbHNlLAorICAgICAgICAgICAgJ2ljb24taW5kZXgnLAorICAgICAg ICAgICAgaW5kZXhfbmFtZQorICAgICAgICApCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcGFydGl0 aW9ucy90ZXN0cy90ZXN0X2JhY2tlbmRfc3VwcG9ydGVkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3BhcnRpdGlv bnMvdGVzdHMvdGVzdF9iYWNrZW5kX3N1cHBvcnRlZC5weQppbmRleCBhNDMzNWI0MS4uNmMyZmYy YTAgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9wYXJ0aXRpb25zL3Rlc3RzL3Rlc3RfYmFja2VuZF9z dXBwb3J0ZWQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3BhcnRpdGlvbnMvdGVzdHMvdGVzdF9iYWNrZW5k X3N1cHBvcnRlZC5weQpAQCAtOSw5ICs5LDEwIEBACiAKIGltcG9ydCBzeXMKIAotZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxl cy5cCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMuIFwKICAgICBwYXJ0 aXRpb25zIGltcG9ydCBQYXJ0aXRpb25zTW9kdWxlCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUg aW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiAKIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMyk6 CiAgICAgZnJvbSBtb2NrIGltcG9ydCBwYXRjaCwgTW9jaywgY2FsbApAQCAtMTksNzkgKzIwLDEx MCBAQCBlbHNlOgogICAgIGZyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgcGF0Y2gsIE1vY2ssIGNh bGwKIAogCi1jbGFzcyBUZXN0QmFja2VuZFN1cHBvcnQoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAg IHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCd3aGVuIHRpZCBpcyBub3QgcHJlc2VudCBpbiBhcmd1 bWVudHMsIHNob3VsZCByZXR1cm4gTm9uZSBhbmQgbm8gJwotICAgICAgICAgJ3F1ZXJ5IHNob3Vs ZCBiZSBkb25lJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgbWFuYWdlcj1kaWN0KAot ICAgICAgICAgICAgICAgICBzZXJ2ZXJfdHlwZT0iIiwKLSAgICAgICAgICAgICAgICAgdmVyc2lv bj0iIgotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgaW5wdXRfYXJndW1lbnRzPWRpY3Qo ZGlkPTQzMiksCi0KLSAgICAgICAgICAgICBjb2xsZWN0aW9uX25vZGVfYWN0aXZlPVRydWUsCi0g ICAgICAgICAgICAgY29ubmVjdGlvbl9leGVjdXRpb25fcmV0dXJuX3ZhbHVlPVtdLAotCi0gICAg ICAgICAgICAgZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPU5vbmUsCi0gICAgICAgICAgICAgZXhwZWN0 X2Vycm9yX3Jlc3BvbnNlPUZhbHNlLAotICAgICAgICAgICAgIGV4cGVjdGVkX251bWJlcl9jYWxs c19vbl9yZW5kZXJfdGVtcGxhdGU9MAotICAgICAgICAgKSksCi0gICAgICAgICgnd2hlbiB0aWQg aXMgcHJlc2VudCBpbiBhcmd1bWVudHMgYW5kIENvbGxlY3Rpb25Ob2RlTW9kdWxlIGRvZXMgJwot ICAgICAgICAgJ25vdCBzdXBwb3J0LCBzaG91bGQgcmV0dXJuIE5vbmUgYW5kIG5vIHF1ZXJ5IHNo b3VsZCBiZSBkb25lJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgbWFuYWdlcj1kaWN0 KAotICAgICAgICAgICAgICAgICBzZXJ2ZXJfdHlwZT0iIiwKLSAgICAgICAgICAgICAgICAgdmVy c2lvbj0iIgotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgaW5wdXRfYXJndW1lbnRzPWRp Y3QoZGlkPTQzMiwgdGlkPTEyMyksCi0KLSAgICAgICAgICAgICBjb2xsZWN0aW9uX25vZGVfYWN0 aXZlPUZhbHNlLAotICAgICAgICAgICAgIGNvbm5lY3Rpb25fZXhlY3V0aW9uX3JldHVybl92YWx1 ZT1bXSwKLQotICAgICAgICAgICAgIGV4cGVjdGVkX3JldHVybl92YWx1ZT1Ob25lLAotICAgICAg ICAgICAgIGV4cGVjdF9lcnJvcl9yZXNwb25zZT1GYWxzZSwKLSAgICAgICAgICAgICBleHBlY3Rl ZF9udW1iZXJfY2FsbHNfb25fcmVuZGVyX3RlbXBsYXRlPTAKLSAgICAgICAgICkpLAotICAgICAg ICAoJ3doZW4gdGFibGUgaXMgcGFydGl0aW9uZWQsICcKLSAgICAgICAgICdzaG91bGQgcmV0dXJu IHRoZSB0YWJsZSBpZGVudGlmaWVyJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgbWFu YWdlcj1kaWN0KAotICAgICAgICAgICAgICAgICBzZXJ2ZXJfdHlwZT0iZ3BkYiIsCi0gICAgICAg ICAgICAgICAgIHZlcnNpb249IjUiCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICBpbnB1 dF9hcmd1bWVudHM9ZGljdChkaWQ9NDMyLCB0aWQ9MTIzKSwKLQotICAgICAgICAgICAgIGNvbGxl Y3Rpb25fbm9kZV9hY3RpdmU9VHJ1ZSwKLSAgICAgICAgICAgICBjb25uZWN0aW9uX2V4ZWN1dGlv bl9yZXR1cm5fdmFsdWU9W1RydWUsIDEyM10sCi0KLSAgICAgICAgICAgICBleHBlY3RlZF9yZXR1 cm5fdmFsdWU9MTIzLAotICAgICAgICAgICAgIGV4cGVjdF9lcnJvcl9yZXNwb25zZT1GYWxzZSwK LSAgICAgICAgICAgICBleHBlY3RlZF9udW1iZXJfY2FsbHNfb25fcmVuZGVyX3RlbXBsYXRlPTEs Ci0gICAgICAgICAgICAgZXhwZWN0X3JlbmRlcl90ZW1wbGF0ZV90b19iZV9jYWxsZWRfd2l0aD1j YWxsKAotICAgICAgICAgICAgICAgICAncGFydGl0aW9uL3NxbC9ncGRiLyNncGRiIzUjL2JhY2tl bmRfc3VwcG9ydC5zcWwnLCB0aWQ9MTIzCi0gICAgICAgICAgICAgKQotICAgICAgICAgKSksCi0g ICAgICAgICgnd2hlbiBlcnJvciBoYXBwZW5zIHdoaWxlIHF1ZXJ5aW5nIHRoZSBkYXRhYmFzZSwg JwotICAgICAgICAgJ3Nob3VsZCByZXR1cm4gYW4gaW50ZXJuYWwgc2VydmVyIGVycm9yJywKLSAg ICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgbWFuYWdlcj1kaWN0KAotICAgICAgICAgICAgICAg ICBzZXJ2ZXJfdHlwZT0icGciLAotICAgICAgICAgICAgICAgICB2ZXJzaW9uPSIxMCIKLSAgICAg ICAgICAgICApLAotICAgICAgICAgICAgIGlucHV0X2FyZ3VtZW50cz1kaWN0KGRpZD00MzIsIHRp ZD0xMjMpLAotCi0gICAgICAgICAgICAgY29sbGVjdGlvbl9ub2RlX2FjdGl2ZT1UcnVlLAotICAg ICAgICAgICAgIGNvbm5lY3Rpb25fZXhlY3V0aW9uX3JldHVybl92YWx1ZT1bRmFsc2UsICJTb21l IHVnbHkgZXJyb3IiXSwKLQotICAgICAgICAgICAgIGV4cGVjdGVkX3JldHVybl92YWx1ZT1Ob25l LAotICAgICAgICAgICAgIGV4cGVjdF9lcnJvcl9yZXNwb25zZT1UcnVlLAotICAgICAgICAgICAg IGV4cGVjdGVkX251bWJlcl9jYWxsc19vbl9yZW5kZXJfdGVtcGxhdGU9MSwKLSAgICAgICAgICAg ICBleHBlY3RfcmVuZGVyX3RlbXBsYXRlX3RvX2JlX2NhbGxlZF93aXRoPWNhbGwoCi0gICAgICAg ICAgICAgICAgICdwYXJ0aXRpb24vc3FsL3BnLyNwZyMxMCMvYmFja2VuZF9zdXBwb3J0LnNxbCcs IHRpZD0xMjMKLSAgICAgICAgICAgICApCi0gICAgICAgICApKQotICAgIF0KK2NsYXNzIFRlc3RC YWNrZW5kU3VwcG9ydDoKKyAgICBAcGF0Y2goCisgICAgICAgICdwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy4nCisgICAgICAgICdw YXJ0aXRpb25zLkNvbGxlY3Rpb25Ob2RlTW9kdWxlJworICAgICkKKyAgICBAcGF0Y2goCisgICAg ICAgICdwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hl bWFzLnRhYmxlcy4nCisgICAgICAgICdwYXJ0aXRpb25zLnJlbmRlcl90ZW1wbGF0ZScKKyAgICAp CisgICAgZGVmIHRlc3Rfbm90X2FsbF9hcmd1bWVudHNfcHJlc2VudCgKKyAgICAgICAgc2VsZiwg cmVuZGVyX3RlbXBsYXRlX21vY2ssIENvbGxlY3Rpb25Ob2RlTW9kdWxlX21vY2sKKyAgICApOgor ICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aWQgaXMgbm90IHByZXNlbnQgaW4gdGhlIGFyZ3Vt ZW50cworICAgICAgICBJdCByZXR1cm4gTm9uZSBhbmQgbm8gcXVlcnkgc2hvdWxkIGJlIGRvbmUK KyAgICAgICAgIiIiCisgICAgICAgIG1vZHVsZSA9IFBhcnRpdGlvbnNNb2R1bGUoJ3BhcnRpdGlv bicpCisgICAgICAgIG1vZHVsZS5tYW5hZ2VyID0gTW9jaygpCisgICAgICAgIG1vZHVsZS5tYW5h Z2VyLnNlcnZlcl90eXBlID0gJycKKyAgICAgICAgbW9kdWxlLm1hbmFnZXIudmVyc2lvbiA9ICcn CisgICAgICAgIGNvbm5lY3Rpb25fbW9jayA9IE1vY2soKQorICAgICAgICBjb25uZWN0aW9uX21v Y2suZXhlY3V0ZV9zY2FsYXIucmV0dXJuX3ZhbHVlID0gW10KKyAgICAgICAgbW9kdWxlLm1hbmFn ZXIuY29ubmVjdGlvbi5yZXR1cm5fdmFsdWUgPSBjb25uZWN0aW9uX21vY2sKKyAgICAgICAgQ29s bGVjdGlvbk5vZGVNb2R1bGVfbW9jay5CYWNrZW5kU3VwcG9ydGVkLnJldHVybl92YWx1ZSA9IFRy dWUKKworICAgICAgICByZXN1bHQgPSBtb2R1bGUuQmFja2VuZFN1cHBvcnRlZCgKKyAgICAgICAg ICAgIG1vZHVsZS5tYW5hZ2VyLAorICAgICAgICAgICAgZGlkPTQzMgorICAgICAgICApCisKKyAg ICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2suYXNzZXJ0X25vdF9jYWxsZWQoKQorCisgICAgICAg IHJlc3VsdCB8IHNob3VsZC5iZS5ub25lCisKKyAgICBAcGF0Y2goCisgICAgICAgICdwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy4n CisgICAgICAgICdwYXJ0aXRpb25zLkNvbGxlY3Rpb25Ob2RlTW9kdWxlJworICAgICkKKyAgICBA cGF0Y2goCisgICAgICAgICdwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy5zY2hlbWFzLnRhYmxlcy4nCisgICAgICAgICdwYXJ0aXRpb25zLnJlbmRlcl90ZW1w bGF0ZScKKyAgICApCisgICAgZGVmIHRlc3RfdGlkX3ByZXNlbnRfbm90X3N1cHBvcnRlZCgKKyAg ICAgICAgc2VsZiwgcmVuZGVyX3RlbXBsYXRlX21vY2ssIENvbGxlY3Rpb25Ob2RlTW9kdWxlX21v Y2sKKyAgICApOgorICAgICAgICAiIiIKKyAgICAgICAgd2hlbiB0aWQgaXMgcHJlc2VudCBpbiBh cmd1bWVudHMKKyAgICAgICAgQW5kIENvbGxlY3Rpb25Ob2RlTW9kdWxlIGRvZXMgbm90IHN1cHBv cnQKKyAgICAgICAgSXQgcmV0dXJuIE5vbmUgYW5kIG5vIHF1ZXJ5IHNob3VsZCBiZSBkb25lCisg ICAgICAgICIiIgorICAgICAgICBtb2R1bGUgPSBQYXJ0aXRpb25zTW9kdWxlKCdwYXJ0aXRpb24n KQorICAgICAgICBtb2R1bGUubWFuYWdlciA9IE1vY2soKQorICAgICAgICBtb2R1bGUubWFuYWdl ci5zZXJ2ZXJfdHlwZSA9ICcnCisgICAgICAgIG1vZHVsZS5tYW5hZ2VyLnZlcnNpb24gPSAnJwor ICAgICAgICBjb25uZWN0aW9uX21vY2sgPSBNb2NrKCkKKyAgICAgICAgY29ubmVjdGlvbl9tb2Nr LmV4ZWN1dGVfc2NhbGFyLnJldHVybl92YWx1ZSA9IFtdCisgICAgICAgIG1vZHVsZS5tYW5hZ2Vy LmNvbm5lY3Rpb24ucmV0dXJuX3ZhbHVlID0gY29ubmVjdGlvbl9tb2NrCisgICAgICAgIENvbGxl Y3Rpb25Ob2RlTW9kdWxlX21vY2suQmFja2VuZFN1cHBvcnRlZC5yZXR1cm5fdmFsdWUgPSBGYWxz ZQorCisgICAgICAgIHJlc3VsdCA9IG1vZHVsZS5CYWNrZW5kU3VwcG9ydGVkKAorICAgICAgICAg ICAgbW9kdWxlLm1hbmFnZXIsCisgICAgICAgICAgICBkaWQ9NDMyLAorICAgICAgICAgICAgdGlk PTEyMworICAgICAgICApCisKKyAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2suYXNzZXJ0X25v dF9jYWxsZWQoKQorCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5iZS5ub25lCisKKyAgICBAcGF0 Y2goCisgICAgICAgICdwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy5zY2hlbWFzLnRhYmxlcy4nCisgICAgICAgICdwYXJ0aXRpb25zLkNvbGxlY3Rpb25Ob2Rl TW9kdWxlJworICAgICkKKyAgICBAcGF0Y2goCisgICAgICAgICdwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy4nCisgICAgICAgICdw YXJ0aXRpb25zLnJlbmRlcl90ZW1wbGF0ZScKKyAgICApCisgICAgZGVmIHRlc3RfdGFibGVfcGFy dGl0aW9uZWQoCisgICAgICAgIHNlbGYsIHJlbmRlcl90ZW1wbGF0ZV9tb2NrLCBDb2xsZWN0aW9u Tm9kZU1vZHVsZV9tb2NrCisgICAgKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGFibGUg aXMgcGFydGl0aW9uZWQKKyAgICAgICAgSXQgcmV0dXJuIHRoZSB0YWJsZSBpZGVudGlmaWVyCisg ICAgICAgICIiIgorICAgICAgICBtb2R1bGUgPSBQYXJ0aXRpb25zTW9kdWxlKCdwYXJ0aXRpb24n KQorICAgICAgICBtb2R1bGUubWFuYWdlciA9IE1vY2soKQorICAgICAgICBtb2R1bGUubWFuYWdl ci5zZXJ2ZXJfdHlwZSA9ICdncGRiJworICAgICAgICBtb2R1bGUubWFuYWdlci52ZXJzaW9uID0g JzUnCisgICAgICAgIGNvbm5lY3Rpb25fbW9jayA9IE1vY2soKQorICAgICAgICBjb25uZWN0aW9u X21vY2suZXhlY3V0ZV9zY2FsYXIucmV0dXJuX3ZhbHVlID0gW1RydWUsIDEyM10KKyAgICAgICAg bW9kdWxlLm1hbmFnZXIuY29ubmVjdGlvbi5yZXR1cm5fdmFsdWUgPSBjb25uZWN0aW9uX21vY2sK KyAgICAgICAgQ29sbGVjdGlvbk5vZGVNb2R1bGVfbW9jay5CYWNrZW5kU3VwcG9ydGVkLnJldHVy bl92YWx1ZSA9IFRydWUKKworICAgICAgICByZXN1bHQgPSBtb2R1bGUuQmFja2VuZFN1cHBvcnRl ZCgKKyAgICAgICAgICAgIG1vZHVsZS5tYW5hZ2VyLAorICAgICAgICAgICAgZGlkPTQzMiwKKyAg ICAgICAgICAgIHRpZD0xMjMKKyAgICAgICAgKQorCisgICAgICAgIHJlbmRlcl90ZW1wbGF0ZV9t b2NrLmFzc2VydF9oYXNfY2FsbHMoCisgICAgICAgICAgICBbY2FsbCgncGFydGl0aW9uL3NxbC9n cGRiLyNncGRiIzUjL2JhY2tlbmRfc3VwcG9ydC5zcWwnLCB0aWQ9MTIzKV0KKyAgICAgICAgKQor CisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5iZS5lcXVhbC50bygxMjMpCiAKICAgICBAcGF0Y2go CiAgICAgICAgICdwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy5zY2hlbWFzLnRhYmxlcy4nCkBAIC0xMDUsMzUgKzEzNywzNSBAQCBjbGFzcyBUZXN0QmFja2Vu ZFN1cHBvcnQoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAncGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMuJwogICAgICAgICAn cGFydGl0aW9ucy5yZW5kZXJfdGVtcGxhdGUnCiAgICAgKQotICAgIGRlZiBydW5UZXN0KAorICAg IGRlZiB0ZXN0X2Vycm9yX3doaWxlX3F1ZXJ5aW5nX2RhdGFiYXNlKAogICAgICAgICBzZWxmLCBy ZW5kZXJfdGVtcGxhdGVfbW9jaywgQ29sbGVjdGlvbk5vZGVNb2R1bGVfbW9jaywKICAgICAgICAg aW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2sKICAgICApOgotICAgICAgICBtb2R1bGUgPSBQYXJ0 aXRpb25zTW9kdWxlKCJwYXJ0aXRpb24iKQorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBlcnJv ciBoYXBwZW5zIHdoaWxlIHF1ZXJ5aW5nIHRoZSBkYXRhYmFzZQorICAgICAgICBJdCByZXR1cm4g YW4gaW50ZXJuYWwgc2VydmVyIGVycm9yCisgICAgICAgICIiIgorICAgICAgICBtb2R1bGUgPSBQ YXJ0aXRpb25zTW9kdWxlKCdwYXJ0aXRpb24nKQogICAgICAgICBtb2R1bGUubWFuYWdlciA9IE1v Y2soKQotICAgICAgICBtb2R1bGUubWFuYWdlci5zZXJ2ZXJfdHlwZSA9IHNlbGYubWFuYWdlclsn c2VydmVyX3R5cGUnXQotICAgICAgICBtb2R1bGUubWFuYWdlci52ZXJzaW9uID0gc2VsZi5tYW5h Z2VyWyd2ZXJzaW9uJ10KKyAgICAgICAgbW9kdWxlLm1hbmFnZXIuc2VydmVyX3R5cGUgPSAncGcn CisgICAgICAgIG1vZHVsZS5tYW5hZ2VyLnZlcnNpb24gPSAnMTAnCiAgICAgICAgIGNvbm5lY3Rp b25fbW9jayA9IE1vY2soKQotICAgICAgICBjb25uZWN0aW9uX21vY2suZXhlY3V0ZV9zY2FsYXIu cmV0dXJuX3ZhbHVlID0gXAotICAgICAgICAgICAgc2VsZi5jb25uZWN0aW9uX2V4ZWN1dGlvbl9y ZXR1cm5fdmFsdWUKKyAgICAgICAgY29ubmVjdGlvbl9tb2NrLmV4ZWN1dGVfc2NhbGFyLnJldHVy bl92YWx1ZSA9IFsKKyAgICAgICAgICAgIEZhbHNlLAorICAgICAgICAgICAgJ1NvbWUgdWdseSBl cnJvciddCiAgICAgICAgIG1vZHVsZS5tYW5hZ2VyLmNvbm5lY3Rpb24ucmV0dXJuX3ZhbHVlID0g Y29ubmVjdGlvbl9tb2NrCi0gICAgICAgIENvbGxlY3Rpb25Ob2RlTW9kdWxlX21vY2suQmFja2Vu ZFN1cHBvcnRlZC5yZXR1cm5fdmFsdWUgPSBcCi0gICAgICAgICAgICBzZWxmLmNvbGxlY3Rpb25f bm9kZV9hY3RpdmUKKyAgICAgICAgQ29sbGVjdGlvbk5vZGVNb2R1bGVfbW9jay5CYWNrZW5kU3Vw cG9ydGVkLnJldHVybl92YWx1ZSA9IFRydWUKIAotICAgICAgICByZXN1bHQgPSBtb2R1bGUuQmFj a2VuZFN1cHBvcnRlZCgKLSAgICAgICAgICAgIG1vZHVsZS5tYW5hZ2VyLCAqKnNlbGYuaW5wdXRf YXJndW1lbnRzCisgICAgICAgIG1vZHVsZS5CYWNrZW5kU3VwcG9ydGVkKAorICAgICAgICAgICAg bW9kdWxlLm1hbmFnZXIsCisgICAgICAgICAgICBkaWQ9NDMyLAorICAgICAgICAgICAgdGlkPTEy MwogICAgICAgICApCiAKLSAgICAgICAgaWYgc2VsZi5leHBlY3RlZF9udW1iZXJfY2FsbHNfb25f cmVuZGVyX3RlbXBsYXRlID09IDA6Ci0gICAgICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jay5h c3NlcnRfbm90X2NhbGxlZCgpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZW5kZXJfdGVt cGxhdGVfbW9jay5hc3NlcnRfaGFzX2NhbGxzKAotICAgICAgICAgICAgICAgIFtzZWxmLmV4cGVj dF9yZW5kZXJfdGVtcGxhdGVfdG9fYmVfY2FsbGVkX3dpdGhdCi0gICAgICAgICAgICApCi0KLSAg ICAgICAgaWYgc2VsZi5leHBlY3RfZXJyb3JfcmVzcG9uc2U6Ci0gICAgICAgICAgICBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3JfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCi0gICAgICAgICAgICAgICAg ZXJyb3Jtc2c9c2VsZi5jb25uZWN0aW9uX2V4ZWN1dGlvbl9yZXR1cm5fdmFsdWVbMV0KLSAgICAg ICAgICAgICkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVz dWx0LCBzZWxmLmV4cGVjdGVkX3JldHVybl92YWx1ZSkKKyAgICAgICAgcmVuZGVyX3RlbXBsYXRl X21vY2suYXNzZXJ0X2hhc19jYWxscygKKyAgICAgICAgICAgIFtjYWxsKCdwYXJ0aXRpb24vc3Fs L3BnLyNwZyMxMCMvYmFja2VuZF9zdXBwb3J0LnNxbCcsIHRpZD0xMjMpXQorICAgICAgICApCisK KyAgICAgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAor ICAgICAgICAgICAgZXJyb3Jtc2c9J1NvbWUgdWdseSBlcnJvcicKKyAgICAgICAgKQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL3J1bGVzL3Rlc3RzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVz L3Rlc3RzL19faW5pdF9fLnB5CmluZGV4IGQxZjJlY2MxLi41OTAwMjZhZCAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL3J1bGVzL3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90 ZXN0cy9fX2luaXRfXy5weQpAQCAtNiwxMSArNiwzIEBACiAjIFRoaXMgc29mdHdhcmUgaXMgcmVs ZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK LQotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotCi0K LWNsYXNzIFJ1bGVzVGVzdEdlbmVyYXRvcihCYXNlVGVzdEdlbmVyYXRvcik6Ci0KLSAgICBkZWYg cnVuVGVzdChzZWxmKToKLSAgICAgICAgcmV0dXJuIFtdCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv cnVsZXMvdGVzdHMvdGVzdF9ydWxlc19hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcnVsZXMvdGVzdHMvdGVz dF9ydWxlc19hZGQucHkKaW5kZXggMzk1NTg2MGEuLjlkY2IyNjVlIDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvcnVsZXMvdGVzdHMvdGVzdF9ydWxlc19hZGQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVz L3Rlc3RzL3Rlc3RfcnVsZXNfYWRkLnB5CkBAIC0xMCw2MSArMTAsNjYgQEAKIGltcG9ydCBqc29u CiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxk CisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu c2NoZW1hcy50YWJsZXMudGVzdHMgXAogICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMK IGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2No ZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwotZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQg dXRpbHMgYXMgXAotICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUg aW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9u b2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRf cmVzcG9uc2VfdG9fanNvbiwgXAorICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNl CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMg dXRpbHMKIAogCi1jbGFzcyBSdWxlc0FkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAg ICAiIiJUaGlzIGNsYXNzIHdpbGwgYWRkIG5ldyBydWxlIHVuZGVyIHRhYmxlIG5vZGUuIiIiCi0g ICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoJ0FkZCBydWxlIE5vZGUgVVJMJywgZGljdCh1cmw9 Jy9icm93c2VyL3J1bGUvb2JqLycpKQotICAgIF0KK2NsYXNzIFRlc3RSdWxlc0FkZDoKKyAgICBA cHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlvbicpCisg ICAgZGVmIHRlc3RfcnVsZV9hZGQoc2VsZiwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIi IgorICAgICAgICBXaGVuIHRoZSBydWxlIGFkZCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tl bmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICBo dHRwX2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2Vy dmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VydmVyX2RhdGEgPSBj b250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQogCi0gICAgZGVmIHNldFVwKHNl bGYpOgotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJd Wy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsi c2NoZW1hIl1bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZl cl9pZCJdCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAg ICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNF UlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2Nvblsn ZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQg bm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIGEgcnVsZS4iKQotICAgICAgICBzZWxmLnNj aGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBzZWxmLnNjaGVtYV9u YW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KLSAgICAgICAgc2NoZW1hX3Jlc3BvbnNl ID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSkKKyAgICAgICAgZGJfbmFtZSA9IHNlcnZlcl9kYXRhWydkYl9uYW1lJ10K KyAgICAgICAgc2VydmVyX2lkID0gc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIGRi X2lkID0gc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2NoZW1hX2lkID0gc2VydmVyX2Rh dGFbJ3NjaGVtYV9pZCddCisgICAgICAgIHNjaGVtYV9uYW1lID0gc2VydmVyX2RhdGFbJ3NjaGVt YV9uYW1lJ10KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9z Y2hlbWFzKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9y ZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhl IHNjaGVtYSB0byBhZGQgYSBydWxlLiIpCi0gICAgICAgIHNlbGYudGFibGVfbmFtZSA9ICJ0YWJs ZV9jb2x1bW5fJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYudGFi bGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25h bWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbign Q291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSBydWxlLicpCisgICAgICAgIHRhYmxl X25hbWUgPSAndGFibGVfY29sdW1uXyVzJyAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAg ICAgICB0YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VydmVyLCBkYl9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9u YW1lKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24g d2lsbCBydWxlIHVuZGVyIHRhYmxlIG5vZGUuIiIiCi0gICAgICAgIHJ1bGVfbmFtZSA9ICJ0ZXN0 X3J1bGVfYWRkXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBkYXRhID0g eyJzY2hlbWEiOiBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgICAgICJ2aWV3Ijogc2Vs Zi50YWJsZV9uYW1lLAotICAgICAgICAgICAgICAgICJuYW1lIjogcnVsZV9uYW1lLAotICAgICAg ICAgICAgICAgICJldmVudCI6ICJVcGRhdGUiCisgICAgICAgIHJ1bGVfbmFtZSA9ICd0ZXN0X3J1 bGVfYWRkXyVzJyAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBkYXRhID0geydz Y2hlbWEnOiBzY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAndmlldyc6IHRhYmxlX25hbWUs CisgICAgICAgICAgICAgICAgJ25hbWUnOiBydWxlX25hbWUsCisgICAgICAgICAgICAgICAgJ2V2 ZW50JzogJ1VwZGF0ZScKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgIHJlc3BvbnNlID0gc2Vs Zi50ZXN0ZXIucG9zdCgKLSAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS97NH0vezV9LyIuZm9y bWF0KHNlbGYudXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX2lkLCBz ZWxmLnRhYmxlX2lkKSwKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3J1bGUvb2JqLycKKyAgICAg ICAgcmVzcG9uc2UgPSBodHRwX2NsaWVudC5wb3N0KAorICAgICAgICAgICAgJ3swfXsxfS97Mn0v ezN9L3s0fS97NX0vJy5mb3JtYXQodXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQsIGRiX2lkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX2lkLCB0YWJs ZV9pZCksCiAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBj b250ZW50X3R5cGU9J2h0bWwvanNvbicKICAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVx dWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogCi0gICAgZGVmIHRlYXJEb3duKHNlbGYp OgotICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0 aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQp CisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkK KyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25z ZSkKKyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UoCisgICAgICAgICAg ICBqc29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgJ3J1bGUnLAorICAgICAgICAgICAgJ3BnYWRt aW4ubm9kZS5ydWxlJywKKyAgICAgICAgICAgIEZhbHNlLAorICAgICAgICAgICAgJ2ljb24tcnVs ZScsCisgICAgICAgICAgICBydWxlX25hbWUKKyAgICAgICAgKQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3J1bGVzL3Rlc3RzL3Rlc3RfcnVsZXNfZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL3Rl c3RzL3Rlc3RfcnVsZXNfZGVsZXRlLnB5CmluZGV4IDM5ODMwZmQyLi44ZmIyYzY0NSAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL3J1bGVzL3Rlc3RzL3Rlc3RfcnVsZXNfZGVsZXRlLnB5CisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9ydWxlcy90ZXN0cy90ZXN0X3J1bGVzX2RlbGV0ZS5weQpAQCAtOSw2NSArOSw2NyBA QAogCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hv dWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFz ZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAogICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRp bHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu c2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwotZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBv cnQgdXRpbHMgYXMgXAotICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91 dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVu dF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZl cnRfcmVzcG9uc2VfdG9fanNvbgogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGlt cG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHJ1bGVzX3V0 aWxzCiAKIAotY2xhc3MgUnVsZXNEZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0g ICAgIiIiVGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSBydWxlIHVuZGVyIHRhYmxlIG5vZGUuIiIiCi0g ICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoJ0RlbGV0ZSBydWxlIE5vZGUgVVJMJywgZGljdCh1 cmw9Jy9icm93c2VyL3J1bGUvb2JqLycpKQotICAgIF0KK2NsYXNzIFRlc3RSdWxlc0RlbGV0ZToK KyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlv bicpCisgICAgZGVmIHRlc3RfcnVsZV9kZWxldGUoc2VsZiwgY29udGV4dF9vZl90ZXN0cyk6Cisg ICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBydWxlIERFTEVURSByZXF1ZXN0IGlzIHNlbmQg dG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIi IgorICAgICAgICBodHRwX2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10K KyAgICAgICAgc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2Vy dmVyX2RhdGEgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQogCi0gICAg ZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0 WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50 X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1h X2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJf aWQiXQotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNl bGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYg bm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gZGVsZXRlIHJ1bGUuIikKLSAg ICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAg c2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNj aGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGRiX25hbWUgPSBzZXJ2ZXJfZGF0 YVsnZGJfbmFtZSddCisgICAgICAgIHNlcnZlcl9pZCA9IHNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQn XQorICAgICAgICBkYl9pZCA9IHNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIHNjaGVtYV9p ZCA9IHNlcnZlcl9kYXRhWydzY2hlbWFfaWQnXQorICAgICAgICBzY2hlbWFfbmFtZSA9IHNlcnZl cl9kYXRhWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91 dGlscy52ZXJpZnlfc2NoZW1hcyhzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUpCiAgICAgICAgIGlm IG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxk IG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVsZXRlIHJ1bGUuIikKLSAgICAgICAgc2VsZi50YWJs ZV9uYW1lID0gInRhYmxlX2NvbHVtbl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAg ICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2 ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQotICAgICAgICBzZWxmLnJ1 bGVfbmFtZSA9ICJ0ZXN0X3J1bGVfZGVsZXRlXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhd KQotICAgICAgICBzZWxmLnJ1bGVfaWQgPSBydWxlc191dGlscy5jcmVhdGVfcnVsZShzZWxmLnNl cnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucnVsZV9uYW1lKQorICAgICAgICAgICAg cmFpc2UgRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGRlbGV0ZSBydWxl LicpCisgICAgICAgIHRhYmxlX25hbWUgPSAndGFibGVfY29sdW1uXyVzJyAlIChzdHIodXVpZC51 dWlkNCgpKVsxOjhdKQorICAgICAgICB0YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFi bGUoc2VydmVyLCBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0YWJsZV9uYW1lKQorICAgICAgICBydWxlX25hbWUgPSAndGVzdF9ydWxlX2Rl bGV0ZV8lcycgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgcnVsZV9pZCA9IHJ1 bGVzX3V0aWxzLmNyZWF0ZV9ydWxlKHNlcnZlciwgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJ1bGVfbmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYp OgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHJ1bGUgdW5kZXIgdGFibGUg bm9kZS4iIiIKLSAgICAgICAgcnVsZV9yZXNwb25zZSA9IHJ1bGVzX3V0aWxzLnZlcmlmeV9ydWxl KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnJ1bGVfbmFtZSkKKyAgICAgICAgcnVsZV9yZXNwb25z ZSA9IHJ1bGVzX3V0aWxzLnZlcmlmeV9ydWxlKHNlcnZlciwgZGJfbmFtZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVfbmFtZSkKICAgICAgICAg aWYgbm90IHJ1bGVfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxk IG5vdCBmaW5kIHRoZSBydWxlIHRvIGRlbGV0ZS4iKQotICAgICAgICByZXNwb25zZSA9IHNlbGYu dGVzdGVyLmRlbGV0ZSgKLSAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS97NH0vezV9L3s2fSIu Zm9ybWF0KHNlbGYudXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2No ZW1hX2lkLCBzZWxmLnRhYmxlX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5ydWxlX2lkKSwKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bignQ291bGQgbm90IGZpbmQgdGhlIHJ1bGUgdG8gZGVsZXRlLicpCisgICAgICAgIHVybCA9ICcv YnJvd3Nlci9ydWxlL29iai8nCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQuZGVsZXRl KAorICAgICAgICAgICAgJ3swfXsxfS97Mn0vezN9L3s0fS97NX0vezZ9Jy5mb3JtYXQodXJsLCB1 dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZXJ2ZXJfaWQsIGRiX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX2lkLCB0YWJsZV9pZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVfaWQpLAogICAgICAgICAgICAg Zm9sbG93X3JlZGlyZWN0cz1UcnVlCiAgICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh bHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKIAotICAgIGRlZiB0ZWFyRG93bihzZWxmKToK LSAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGls cy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQor ICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisg ICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2Up CisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2luZm8nKSA+IHNob3Vs ZC5iZS5lcXVhbC50bygKKyAgICAgICAgICAgICdSdWxlIGRyb3BwZWQnKQorICAgICAgICBqc29u X3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdlcnJvcm1zZycpID4gc2hvdWxkLmJlLmVtcHR5 CisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2RhdGEnKQorICAgICAg ICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdyZXN1bHQnKSA+IHNob3VsZC5iZS5u b25lCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3N1Y2Nlc3MnKSA+ IHNob3VsZC5iZS5lcXVhbC50bygxKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL3Rlc3Rz L3Rlc3RfcnVsZXNfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL3Rlc3RzL3Rlc3RfcnVsZXNfZ2V0 LnB5CmluZGV4IDAyNTBmMDg3Li41MDM5MTAwNCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVz L3Rlc3RzL3Rlc3RfcnVsZXNfZ2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZXN0cy90ZXN0 X3J1bGVzX2dldC5weQpAQCAtOSw2MSArOSw3NiBAQAogCiBpbXBvcnQgdXVpZAogCitpbXBvcnQg cHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAog ICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAg IHV0aWxzIGFzIHNjaGVtYV91dGlscwotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw cy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAotICAgIGRhdGFiYXNl X3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y Ci1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51 dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbgogZnJvbSBy ZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBm cm9tIC4gaW1wb3J0IHV0aWxzIGFzIHJ1bGVzX3V0aWxzCiAKIAotY2xhc3MgUnVsZXNHZXRUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3aWxsIGZldGNoIHRo ZSBydWxlIHVuZGVyIHRhYmxlIG5vZGUuIiIiCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAo J0ZldGNoIHJ1bGUgTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvcnVsZS9vYmovJykpCi0g ICAgXQorY2xhc3MgVGVzdFJ1bGVzR2V0OgorICAgIEBweXRlc3QubWFyay51c2VmaXh0dXJlcygn cmVxdWlyZV9kYXRhYmFzZV9jb25uZWN0aW9uJykKKyAgICBkZWYgdGVzdF9ydWxlX2dldChzZWxm LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIHJ1bGUg R0VUIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIw MCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90 ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydz ZXJ2ZXInXQorICAgICAgICBzZXJ2ZXJfZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9p bmZvcm1hdGlvbiddCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuZGJfbmFt ZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAg c2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9p ZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxz LmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxm LmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0 byBkZWxldGUgcnVsZS4iKQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJz Y2hlbWFfaWQiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVt YV9uYW1lIl0KLSAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9z Y2hlbWFzKHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAg ZGJfbmFtZSA9IHNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKyAgICAgICAgc2VydmVyX2lkID0gc2Vy dmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIGRiX2lkID0gc2VydmVyX2RhdGFbJ2RiX2lk J10KKyAgICAgICAgc2NoZW1hX2lkID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9pZCddCisgICAgICAg IHNjaGVtYV9uYW1lID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2NoZW1h X3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlcnZlciwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hl bWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBkZWxldGUgcnVsZS4i KQotICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfY29sdW1uXyVzIiAlIChzdHIodXVp ZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNy ZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25h bWUpCi0gICAgICAgIHNlbGYucnVsZV9uYW1lID0gInRlc3RfcnVsZV9kZWxldGVfJXMiICUgKHN0 cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYucnVsZV9pZCA9IHJ1bGVzX3V0aWxz LmNyZWF0ZV9ydWxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5ydWxl X25hbWUpCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0NvdWxkIG5vdCBmaW5kIHRoZSBz Y2hlbWEgdG8gZGVsZXRlIHJ1bGUuJykKKworICAgICAgICB0YWJsZV9uYW1lID0gJ3RhYmxlX2Nv bHVtbl8lcycgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgdGFibGVfaWQgPSB0 YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRhYmxlX25hbWUpCisgICAgICAgIHJ1bGVfbmFtZSA9ICd0 ZXN0X3J1bGVfZ2V0XyVzJyAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBydWxl X2lkID0gcnVsZXNfdXRpbHMuY3JlYXRlX3J1bGUoc2VydmVyLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGFibGVfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJ1bGVfbmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAg ICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggdGhlIHJ1bGUgdW5kZXIgdGFibGUgbm9k ZS4iIiIKLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCi0gICAgICAgICAgICAi ezB9ezF9L3syfS97M30vezR9L3s1fS97Nn0iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VSVkVS X0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9pZCwgc2VsZi50YWJsZV9pZCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucnVsZV9pZCks CisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9ydWxlL29iai8nCisgICAgICAgIHJlc3BvbnNlID0g aHR0cF9jbGllbnQuZ2V0KAorICAgICAgICAgICAgJ3swfXsxfS97Mn0vezN9L3s0fS97NX0vezZ9 Jy5mb3JtYXQodXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQsIGRiX2lkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX2lkLCB0YWJsZV9pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVfaWQp LAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlCiAgICAgICAgICkKLSAgICAgICAg c2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKIAotICAgIGRlZiB0 ZWFyRG93bihzZWxmKToKLSAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAg ICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lk LCBzZWxmLmRiX2lkKQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5l cXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3Rv X2pzb24ocmVzcG9uc2UpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXko J2NvbW1lbnQnKSA+IHNob3VsZC5iZS5ub25lCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91 bGQuaGF2ZS5rZXkoJ2RlZmluaXRpb24nKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxk LmhhdmUua2V5KCdzdGF0ZW1lbnRzJykgPiBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAg ICAnTk9USElORzsnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdu YW1lJykgPiBzaG91bGQuYmUuZXF1YWwudG8ocnVsZV9uYW1lKQorICAgICAgICBqc29uX3Jlc3Bv bnNlIHwgc2hvdWxkLmhhdmUua2V5KCdwYXJlbnRpc3RhYmxlJykgPiBzaG91bGQuYmUudHJ1ZQor ICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdkb19pbnN0ZWFkJykgPiBz aG91bGQuYmUuZmFsc2UKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgn b2lkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZW5hYmxlZCcp ID4gc2hvdWxkLmJlLnRydWUKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtl eSgnc3lzdGVtX3J1bGUnKSA+IHNob3VsZC5iZS5mYWxzZQorICAgICAgICBqc29uX3Jlc3BvbnNl IHwgc2hvdWxkLmhhdmUua2V5KCd2aWV3JykgPiBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAg ICAgICB0YWJsZV9uYW1lKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5 KCdldmVudCcpID4gc2hvdWxkLmJlLmVxdWFsLnRvKCdVcGRhdGUnKQorICAgICAgICBqc29uX3Jl c3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdjb25kaXRpb24nKSA+IHNob3VsZC5iZS5lcXVhbC50 bygnJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnc2NoZW1hJykg PiBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAgICBzY2hlbWFfbmFtZSkKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy9ydWxlcy90ZXN0cy90ZXN0X3J1bGVzX3B1dC5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9y dWxlcy90ZXN0cy90ZXN0X3J1bGVzX3B1dC5weQppbmRleCA0Zjg5ZTI1My4uMWE0OGEwNjMgMTAw NjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZXN0cy90ZXN0X3J1bGVzX3B1dC5weQorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvcnVsZXMvdGVzdHMvdGVzdF9ydWxlc19wdXQucHkKQEAgLTEwLDY4ICsxMCw3MyBA QAogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBh IGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCiAgICAgaW1wb3J0IHV0aWxzIGFz IHRhYmxlc191dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0 aWxzCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2Vz LnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCi0gICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1p bi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBp bXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBp bXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25fdmFsdWVz X2Zyb21fcmVzcG9uc2UKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQg dGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBydWxlc191dGlscwog CiAKLWNsYXNzIFJ1bGVzVXBkYXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIi IlRoaXMgY2xhc3Mgd2lsbCB1cGRhdGUgdGhlIHJ1bGUgdW5kZXIgdGFibGUgbm9kZS4iIiIKLSAg ICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnUHV0IHJ1bGUgTm9kZSBVUkwnLCBkaWN0KHVybD0n L2Jyb3dzZXIvcnVsZS9vYmovJykpCi0gICAgXQorY2xhc3MgVGVzdFJ1bGVzVXBkYXRlOgorICAg IEBweXRlc3QubWFyay51c2VmaXh0dXJlcygncmVxdWlyZV9kYXRhYmFzZV9jb25uZWN0aW9uJykK KyAgICBkZWYgdGVzdF9ydWxlX3VwZGF0ZShzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAg ICAgIiIiCisgICAgICAgIFdoZW4gdGhlIHJ1bGUgUFVUIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUg YmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAg ICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAg ICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZXJ2ZXJfZGF0 YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddCiAKLSAgICBkZWYgc2V0 VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFi YXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9k aWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1si c2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0g ICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRp bHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJf Y29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBkZWxldGUgcnVsZS4iKQotICAgICAgICBz ZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBzZWxmLnNj aGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KLSAgICAgICAgc2NoZW1hX3Jl c3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9u YW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgZGJfbmFtZSA9IHNlcnZlcl9kYXRhWydkYl9u YW1lJ10KKyAgICAgICAgc2VydmVyX2lkID0gc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAg ICAgIGRiX2lkID0gc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2NoZW1hX2lkID0gc2Vy dmVyX2RhdGFbJ3NjaGVtYV9pZCddCisgICAgICAgIHNjaGVtYV9uYW1lID0gc2VydmVyX2RhdGFb J3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZl cmlmeV9zY2hlbWFzKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNj aGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZp bmQgdGhlIHNjaGVtYSB0byBkZWxldGUgcnVsZS4iKQotICAgICAgICBzZWxmLnRhYmxlX25hbWUg PSAidGFibGVfY29sdW1uXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBz ZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgc2Vs Zi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUpCi0gICAgICAgIHNlbGYucnVsZV9uYW1l ID0gInRlc3RfcnVsZV9kZWxldGVfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAg ICAgIHNlbGYucnVsZV9pZCA9IHJ1bGVzX3V0aWxzLmNyZWF0ZV9ydWxlKHNlbGYuc2VydmVyLCBz ZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5ydWxlX25hbWUpCisgICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oJ0NvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVsZXRlIHJ1bGUuJykKKyAg ICAgICAgdGFibGVfbmFtZSA9ICd0YWJsZV9jb2x1bW5fJXMnICUgKHN0cih1dWlkLnV1aWQ0KCkp WzE6OF0pCisgICAgICAgIHRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZXJ2 ZXIsIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRhYmxlX25hbWUpCisgICAgICAgIHJ1bGVfbmFtZSA9ICd0ZXN0X3J1bGVfZGVsZXRlXyVz JyAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBydWxlX2lkID0gcnVsZXNfdXRp bHMuY3JlYXRlX3J1bGUoc2VydmVyLCBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0YWJsZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcnVsZV9uYW1lKQorICAgICAgICBydWxlX3Jlc3BvbnNlID0gcnVsZXNf dXRpbHMudmVyaWZ5X3J1bGUoc2VydmVyLCBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZV9uYW1lKQorICAgICAgICBpZiBub3QgcnVs ZV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQg dGhlIHJ1bGUgdG8gdXBkYXRlLicpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAg IiIiVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0aGUgcnVsZSB1bmRlciB0YWJsZSBub2RlLiIi IgotICAgICAgICBydWxlX3Jlc3BvbnNlID0gcnVsZXNfdXRpbHMudmVyaWZ5X3J1bGUoc2VsZi5z ZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYucnVsZV9uYW1lKQotICAgICAgICBkYXRhID0geyJpZCI6IHNlbGYu cnVsZV9pZCwKLSAgICAgICAgICAgICAgICAiY29tbWVudCI6ICJUaGlzIGlzIHRlc3RpbmcgY29t bWVudC4iCisgICAgICAgIGRhdGEgPSB7J2lkJzogcnVsZV9pZCwKKyAgICAgICAgICAgICAgICAn Y29tbWVudCc6ICdUaGlzIGlzIHRlc3RpbmcgY29tbWVudC4nCiAgICAgICAgICAgICAgICAgfQot ICAgICAgICBpZiBub3QgcnVsZV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiQ291bGQgbm90IGZpbmQgdGhlIHJ1bGUgdG8gdXBkYXRlLiIpCi0gICAgICAgIHJlc3BvbnNl ID0gc2VsZi50ZXN0ZXIucHV0KAotICAgICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0v ezZ9Ii5mb3JtYXQoc2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRi X2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zY2hlbWFfaWQsIHNlbGYudGFibGVfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnJ1bGVfaWQpLAorICAgICAgICB1cmwgPSAnL2Jyb3dz ZXIvcnVsZS9vYmovJworICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LnB1dCgKKyAgICAg ICAgICAgICd7MH17MX0vezJ9L3szfS97NH0vezV9L3s2fScuZm9ybWF0KHVybCwgdXRpbHMuU0VS VkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VydmVyX2lkLCBkYl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNjaGVtYV9pZCwgdGFibGVfaWQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlX2lkKSwKICAgICAgICAgICAgIGRhdGE9anNv bi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAg ICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKIAotICAgIGRl ZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAg ICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVy X2lkLCBzZWxmLmRiX2lkKQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5i ZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNl X3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3Bv bnNlKAorICAgICAgICAgICAganNvbl9yZXNwb25zZSwKKyAgICAgICAgICAgICdydWxlJywKKyAg ICAgICAgICAgICdwZ2FkbWluLm5vZGUucnVsZScsCisgICAgICAgICAgICBGYWxzZSwKKyAgICAg ICAgICAgICdpY29uLXJ1bGUnLAorICAgICAgICAgICAgcnVsZV9uYW1lCisgICAgICAgICkKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl9rZXkvc3FsL3Rlc3RzL3Rlc3Rf Zm9yZWlnbl9rZXlfcHJvcGVydGllcy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl9r ZXkvc3FsL3Rlc3RzL3Rlc3RfZm9yZWlnbl9rZXlfcHJvcGVydGllcy5weQppbmRleCA1MWFmNDJj ZC4uZjAyNTMxNWYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl9rZXkv c3FsL3Rlc3RzL3Rlc3RfZm9yZWlnbl9rZXlfcHJvcGVydGllcy5weQorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dGVtcGxhdGVzL2ZvcmVpZ25fa2V5L3NxbC90ZXN0cy90ZXN0X2ZvcmVpZ25fa2V5X3Byb3BlcnRp ZXMucHkKQEAgLTEwLDI4ICsxMCwyOSBAQAogaW1wb3J0IG9zCiBpbXBvcnQgc3lzCiAKK2Zyb20g Z3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQg RHJpdmVyUmVnaXN0cnkKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscy50ZW1wbGF0 ZV9oZWxwZXIgaW1wb3J0IGZpbGVfYXNfdGVtcGxhdGUKIAogRHJpdmVyUmVnaXN0cnkubG9hZF9k cml2ZXJzKCkKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0 b3IKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscwog CiBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID49IDM6CiAgICAgbG9uZyA9IGludAogCiAKLWNsYXNz IFRlc3RDb2x1bW5Gb3JlaWduS2V5R2V0Q29uc3RyYWludENvbHMoQmFzZVRlc3RHZW5lcmF0b3Ip OgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCJUZXN0IGZvcmVpZ24ga2V5IGdldCBjb25z dHJhaW50IHdpdGggbm8gZm9yZWlnbiBrZXkgcHJvcGVydGllcyBvbiIKLSAgICAgICAgICIgdGhl IGNvbHVtbiIsIGRpY3QoKSkKLSAgICBdCitjbGFzcyBUZXN0Q29sdW1uRm9yZWlnbktleUdldENv bnN0cmFpbnRDb2xzOgorICAgIGRlZiB0ZXN0X2NvbHVtbl9mb3JlaWduX2tleXMoc2VsZiwgY29u dGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZXJlIGFyZSBubyBm b3JlaWduIGtleSBwcm9wZXJ0aWVzIG9uIHRoZSBjb2x1bW4KKyAgICAgICAgaXQgcmV0dXJucyBh biBlbXB0eSByZXN1bHQKKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VydmVyID0gY29udGV4dF9v Zl90ZXN0c1snc2VydmVyJ10KIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIg V2hlbiB0aGVyZSBhcmUgbm8gZm9yZWlnbiBrZXkgcHJvcGVydGllcyBvbiB0aGUgY29sdW1uLCBp dCByZXR1cm5zCi0gICAgICAgIGFuIGVtcHR5IHJlc3VsdCAiIiIKLSAgICAgICAgd2l0aCB0ZXN0 X3V0aWxzLkRhdGFiYXNlKHNlbGYuc2VydmVyKSBhcyAoY29ubmVjdGlvbiwgZGF0YWJhc2VfbmFt ZSk6Ci0gICAgICAgICAgICB0ZXN0X3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgZGF0 YWJhc2VfbmFtZSwgInRlc3RfdGFibGUiKQorICAgICAgICB3aXRoIHRlc3RfdXRpbHMuRGF0YWJh c2Uoc2VydmVyKSBhcyAoY29ubmVjdGlvbiwgZGF0YWJhc2VfbmFtZSk6CisgICAgICAgICAgICB0 ZXN0X3V0aWxzLmNyZWF0ZV90YWJsZShzZXJ2ZXIsIGRhdGFiYXNlX25hbWUsICJ0ZXN0X3RhYmxl IikKIAogICAgICAgICAgICAgY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQogICAgICAgICAg ICAgY3Vyc29yLmV4ZWN1dGUoIlNFTEVDVCBwZ19jbGFzcy5vaWQgYXMgdGFibGVfaWQsICIKQEAg LTQzLDIyICs0NCwyMiBAQCBjbGFzcyBUZXN0Q29sdW1uRm9yZWlnbktleUdldENvbnN0cmFpbnRD b2xzKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgIHRhYmxlX2lkLCBjb2x1bW5faWQg PSBjdXJzb3IuZmV0Y2hvbmUoKQogCiAgICAgICAgICAgICBpZiBjb25uZWN0aW9uLnNlcnZlcl92 ZXJzaW9uIDwgOTAxMDA6Ci0gICAgICAgICAgICAgICAgc2VsZi52ZXJzaW9uc190b190ZXN0ID0g WydkZWZhdWx0J10KKyAgICAgICAgICAgICAgICB2ZXJzaW9uc190b190ZXN0ID0gJ2RlZmF1bHQn CiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYudmVyc2lvbnNfdG9fdGVz dCA9IFsnOS4xX3BsdXMnXQorICAgICAgICAgICAgICAgIHZlcnNpb25zX3RvX3Rlc3QgPSAnOS4x X3BsdXMnCiAKLSAgICAgICAgICAgIGZvciB2ZXJzaW9uIGluIHNlbGYudmVyc2lvbnNfdG9fdGVz dDoKLSAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9maWxlID0gb3MucGF0aC5qb2luKAotICAgICAg ICAgICAgICAgICAgICBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4iLCB2ZXJzaW9uLAot ICAgICAgICAgICAgICAgICAgICAicHJvcGVydGllcy5zcWwiCi0gICAgICAgICAgICAgICAgKQot ICAgICAgICAgICAgICAgIHRlbXBsYXRlID0gZmlsZV9hc190ZW1wbGF0ZSh0ZW1wbGF0ZV9maWxl KQorICAgICAgICAgICAgdGVtcGxhdGVfZmlsZSA9IG9zLnBhdGguam9pbigKKyAgICAgICAgICAg ICAgICBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4iLCB2ZXJzaW9uc190b190ZXN0LAor ICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzLnNxbCIKKyAgICAgICAgICAgICkKKyAgICAgICAg ICAgIHRlbXBsYXRlID0gZmlsZV9hc190ZW1wbGF0ZSh0ZW1wbGF0ZV9maWxlKQogCi0gICAgICAg ICAgICAgICAgc3FsID0gdGVtcGxhdGUucmVuZGVyKAotICAgICAgICAgICAgICAgICAgICB0aWQ9 dGFibGVfaWQsCi0gICAgICAgICAgICAgICAgICAgIGNpZD1jb2x1bW5faWQpCisgICAgICAgICAg ICBzcWwgPSB0ZW1wbGF0ZS5yZW5kZXIoCisgICAgICAgICAgICAgICAgdGlkPXRhYmxlX2lkLAor ICAgICAgICAgICAgICAgIGNpZD1jb2x1bW5faWQpCisKKyAgICAgICAgICAgIGN1cnNvciA9IGNv bm5lY3Rpb24uY3Vyc29yKCkKKyAgICAgICAgICAgIGN1cnNvci5leGVjdXRlKHNxbCkKKyAgICAg ICAgICAgIGZldGNoX3Jlc3VsdCA9IGN1cnNvci5mZXRjaGFsbCgpCiAKLSAgICAgICAgICAgICAg ICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCi0gICAgICAgICAgICAgICAgY3Vyc29yLmV4 ZWN1dGUoc3FsKQotICAgICAgICAgICAgICAgIGZldGNoX3Jlc3VsdCA9IGN1cnNvci5mZXRjaGFs bCgpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4oZmV0Y2hfcmVzdWx0 KSkKKyAgICAgICAgICAgIGZldGNoX3Jlc3VsdCB8IHNob3VsZC5oYXZlLmxlbmd0aC5vZigwKQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3Rz L19faW5pdF9fLnB5CmluZGV4IDk0ZmFhZjU1Li41OTAwMjZhZCAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy9fX2luaXRfXy5weQpA QCAtNiwxMSArNiwzIEBACiAjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBv c3RncmVTUUwgTGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotZnJvbSBwZ2FkbWluLnV0 aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotCi0KLWNsYXNzIFRhYmxlc1Rlc3RH ZW5lcmF0b3IoQmFzZVRlc3RHZW5lcmF0b3IpOgotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0g ICAgICAgIHJldHVybiBbXQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfYmFzZV9w YXJ0aXRpb25fdGFibGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF9iYXNlX3BhcnRpdGlvbl90 YWJsZS5weQppbmRleCAzOGMwNDBmMC4uYjRkN2NhZWUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90 ZXN0cy90ZXN0X2Jhc2VfcGFydGl0aW9uX3RhYmxlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90 ZXN0X2Jhc2VfcGFydGl0aW9uX3RhYmxlLnB5CkBAIC02LDEwMiArNiw0OCBAQAogIyBUaGlzIHNv ZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu ZGF0YWJhc2VzLnNjaGVtYXNcCi0gICAgLnRhYmxlcy5iYXNlX3BhcnRpdGlvbl90YWJsZSBpbXBv cnQgQmFzZVBhcnRpdGlvblRhYmxlCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJh c2VUZXN0R2VuZXJhdG9yCi0KLQotY2xhc3MgVGVzdEJhc2VQYXJ0aXRpb25UYWJsZShCYXNlVGVz dEdlbmVyYXRvcik6Ci0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoJyNpc190YWJsZV9wYXJ0 aXRpb25lZCB3aGVuIHRhYmxlIGluZm9ybWF0aW9uIGRvZXMgbm90ICcKLSAgICAgICAgICdoYXZl IHBhcnRpdGlvbiBpbmZvcm1hdGlvbiwgJwotICAgICAgICAgJ2l0IHJldHVybnMgZmFsc2UnLAot ICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0PSdpc190YWJsZV9wYXJ0aXRpb25lZCcs Ci0gICAgICAgICAgICAgaW5wdXRfcGFyYW1ldGVycz1kaWN0KCksCi0gICAgICAgICAgICAgZXhw ZWN0ZWRfcmV0dXJuPUZhbHNlCi0gICAgICAgICApKSwKLSAgICAgICAgKCcjaXNfdGFibGVfcGFy dGl0aW9uZWQgd2hlbiB0YWJsZSBpbmZvcm1hdGlvbiAnCi0gICAgICAgICAnaGFzIHBhcnRpdGlv biBpbmZvcm1hdGlvbiBhbmQgdGFibGUgaXMgcGFydGl0aW9uZWQsICcKLSAgICAgICAgICdpdCBy ZXR1cm5zIHRydWUnLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0PSdpc190YWJs ZV9wYXJ0aXRpb25lZCcsCi0gICAgICAgICAgICAgaW5wdXRfcGFyYW1ldGVycz1kaWN0KAotICAg ICAgICAgICAgICAgICBpc19wYXJ0aXRpb25lZD1UcnVlCi0gICAgICAgICAgICAgKSwKLSAgICAg ICAgICAgICBleHBlY3RlZF9yZXR1cm49VHJ1ZQotICAgICAgICAgKSksCi0gICAgICAgICgnI2lz X3RhYmxlX3BhcnRpdGlvbmVkIHdoZW4gdGFibGUgaW5mb3JtYXRpb24gJwotICAgICAgICAgJ2hh cyBwYXJ0aXRpb24gaW5mb3JtYXRpb24gYW5kIHRhYmxlIGlzIG5vdCBwYXJ0aXRpb25lZCwgJwot ICAgICAgICAgJ2l0IHJldHVybnMgZmFsc2UnLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAg ICB0ZXN0PSdpc190YWJsZV9wYXJ0aXRpb25lZCcsCi0gICAgICAgICAgICAgaW5wdXRfcGFyYW1l dGVycz1kaWN0KAotICAgICAgICAgICAgICAgICBpc19wYXJ0aXRpb25lZD1GYWxzZQotICAgICAg ICAgICAgICksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmV0dXJuPUZhbHNlCi0gICAgICAgICAp KSwKLSAgICAgICAgKCcjaXNfdGFibGVfcGFydGl0aW9uZWQgd2hlbiBub2RlX3R5cGUgaXMgcHJl c2VudCAnCi0gICAgICAgICAnYW5kIGlzIHBhcnRpdGlvbiwgJwotICAgICAgICAgJ2l0IHJldHVy bnMgdHJ1ZScsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHRlc3Q9J2lzX3RhYmxlX3Bh cnRpdGlvbmVkJywKLSAgICAgICAgICAgICBpbnB1dF9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAg ICAgICAgICAgIGlzX3BhcnRpdGlvbmVkPUZhbHNlCi0gICAgICAgICAgICAgKSwKLSAgICAgICAg ICAgICBub2RlX3R5cGU9J3BhcnRpdGlvbicsCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmV0dXJu PVRydWUKLSAgICAgICAgICkpLAotICAgICAgICAoJyNpc190YWJsZV9wYXJ0aXRpb25lZCB3aGVu IG5vZGVfdHlwZSBpcyBwcmVzZW50ICcKLSAgICAgICAgICdhbmQgaXMgbm90IHBhcnRpdGlvbiAn Ci0gICAgICAgICAnYW5kIHRhYmxlIGlzIG5vdCBwYXJ0aXRpb25lZCAnCi0gICAgICAgICAnaXQg cmV0dXJucyB0cnVlJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgdGVzdD0naXNfdGFi bGVfcGFydGl0aW9uZWQnLAotICAgICAgICAgICAgIGlucHV0X3BhcmFtZXRlcnM9ZGljdCgKLSAg ICAgICAgICAgICAgICAgaXNfcGFydGl0aW9uZWQ9RmFsc2UKLSAgICAgICAgICAgICApLAotICAg ICAgICAgICAgIG5vZGVfdHlwZT0ndGFibGUnLAotICAgICAgICAgICAgIGV4cGVjdGVkX3JldHVy bj1GYWxzZQotICAgICAgICAgKSksCi0KK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9y dCBzaG91bGQKIAotICAgICAgICAoJyNnZXRfaWNvbl9jc3NfY2xhc3Mgd2hlbiB0YWJsZSBpcyBw YXJ0aXRpb25lZCAnCi0gICAgICAgICAnaXQgcmV0dXJucyBpY29uLXBhcnRpdGlvbiBjbGFzcycs Ci0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHRlc3Q9J2dldF9pY29uX2Nzc19jbGFzcycs Ci0gICAgICAgICAgICAgaW5wdXRfcGFyYW1ldGVycz1kaWN0KAotICAgICAgICAgICAgICAgICBp c19wYXJ0aXRpb25lZD1UcnVlCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICBleHBlY3Rl ZF9yZXR1cm49J2ljb24tcGFydGl0aW9uJwotICAgICAgICAgKSksCi0gICAgICAgICgnI2dldF9p Y29uX2Nzc19jbGFzcyB3aGVuIHRhYmxlIGlzIG5vdCBwYXJ0aXRpb25lZCAnCi0gICAgICAgICAn aXQgcmV0dXJucyBpY29uLXRhYmxlIGNsYXNzJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAg ICAgdGVzdD0nZ2V0X2ljb25fY3NzX2NsYXNzJywKLSAgICAgICAgICAgICBpbnB1dF9wYXJhbWV0 ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgIGlzX3BhcnRpdGlvbmVkPUZhbHNlCi0gICAgICAg ICAgICAgKSwKLSAgICAgICAgICAgICBleHBlY3RlZF9yZXR1cm49J2ljb24tdGFibGUnCi0gICAg ICAgICApKQotICAgIF0KK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy cy5kYXRhYmFzZXMuc2NoZW1hcyBcCisgICAgLnRhYmxlcy5iYXNlX3BhcnRpdGlvbl90YWJsZSBp bXBvcnQgQmFzZVBhcnRpdGlvblRhYmxlCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAg ICAgaWYgc2VsZi50ZXN0ID09ICdpc190YWJsZV9wYXJ0aXRpb25lZCc6Ci0gICAgICAgICAgICBz ZWxmLl9fdGVzdF9pc190YWJsZV9wYXJ0aXRpb25lZCgpCi0gICAgICAgIGVsaWYgc2VsZi50ZXN0 ID09ICdnZXRfaWNvbl9jc3NfY2xhc3MnOgotICAgICAgICAgICAgc2VsZi5fX3Rlc3RfZ2V0X2lj b25fY3NzX2NsYXNzKCkKIAotICAgIGRlZiBfX3Rlc3RfaXNfdGFibGVfcGFydGl0aW9uZWQoc2Vs Zik6CitjbGFzcyBUZXN0SXNUYWJsZVBhcnRpdGlvbmVkOgorICAgICIiIgorICAgIHRlc3QgI2lz X3RhYmxlX3BhcnRpdGlvbmVkCisgICAgIiIiCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl KAorICAgICAgICAnaW5wdXRfcGFyYW1ldGVycywgZXhwZWN0ZWRfcmV0dXJuLCBub2RlX3R5cGUn LCBbCisgICAgICAgICAgICAoZGljdCgpLCBGYWxzZSwgTm9uZSksCisgICAgICAgICAgICAoZGlj dChpc19wYXJ0aXRpb25lZD1UcnVlKSwgVHJ1ZSwgTm9uZSksCisgICAgICAgICAgICAoZGljdChp c19wYXJ0aXRpb25lZD1GYWxzZSksIEZhbHNlLCBOb25lKSwKKyAgICAgICAgICAgIChkaWN0KGlz X3BhcnRpdGlvbmVkPUZhbHNlKSwgVHJ1ZSwgJ3BhcnRpdGlvbicpLAorICAgICAgICAgICAgKGRp Y3QoaXNfcGFydGl0aW9uZWQ9RmFsc2UpLCBGYWxzZSwgJ3RhYmxlJyksCisgICAgICAgIF0pCisg ICAgZGVmIHRlc3RfaXNfdGFibGVfcGFydGl0aW9uZWQoc2VsZiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnB1dF9wYXJhbWV0ZXJzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGV4cGVjdGVkX3JldHVybiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBub2RlX3R5cGUpOgogICAgICAgICBzdWJqZWN0ID0gQmFzZVBhcnRpdGlvblRhYmxl KCkKLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnbm9kZV90eXBlJyk6Ci0gICAgICAgICAgICBz dWJqZWN0Lm5vZGVfdHlwZSA9IHNlbGYubm9kZV90eXBlCi0KLSAgICAgICAgc2VsZi5hc3NlcnRF cXVhbChzdWJqZWN0LmlzX3RhYmxlX3BhcnRpdGlvbmVkKHNlbGYuaW5wdXRfcGFyYW1ldGVycyks Ci0gICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHBlY3RlZF9yZXR1cm4pCi0KLSAgICBk ZWYgX190ZXN0X2dldF9pY29uX2Nzc19jbGFzcyhzZWxmKToKKyAgICAgICAgaWYgbm9kZV90eXBl IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc3ViamVjdC5ub2RlX3R5cGUgPSBub2RlX3R5cGUK KworICAgICAgICBzdWJqZWN0LmlzX3RhYmxlX3BhcnRpdGlvbmVkKGlucHV0X3BhcmFtZXRlcnMp IHwgc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAgICAgZXhwZWN0ZWRfcmV0dXJuKQorCisK K2NsYXNzIFRlc3RHZXRJY29uQ1NTQ2xhc3M6CisgICAgIiIiCisgICAgdGVzdCAjZ2V0X2ljb25f Y3NzX2NsYXNzCisgICAgIiIiCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAg ICAnaW5wdXRfcGFyYW1ldGVycywgZXhwZWN0ZWRfcmV0dXJuJywgWworICAgICAgICAgICAgKGRp Y3QoaXNfcGFydGl0aW9uZWQ9VHJ1ZSksICdpY29uLXBhcnRpdGlvbicpLAorICAgICAgICAgICAg KGRpY3QoaXNfcGFydGl0aW9uZWQ9RmFsc2UpLCAnaWNvbi10YWJsZScpLAorICAgICAgICBdKQor ICAgIGRlZiB0ZXN0X2dldF9pY29uX2Nzc19jbGFzcyhzZWxmLCBpbnB1dF9wYXJhbWV0ZXJzLCBl eHBlY3RlZF9yZXR1cm4pOgogICAgICAgICBzdWJqZWN0ID0gQmFzZVBhcnRpdGlvblRhYmxlKCkK IAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN1YmplY3QuZ2V0X2ljb25fY3NzX2NsYXNzKHNl bGYuaW5wdXRfcGFyYW1ldGVycyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHBl Y3RlZF9yZXR1cm4pCisgICAgICAgIHN1YmplY3QuZ2V0X2ljb25fY3NzX2NsYXNzKGlucHV0X3Bh cmFtZXRlcnMpIHwgc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAgICAgZXhwZWN0ZWRfcmV0 dXJuKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfY29sdW1uX2FjbF9zcWwucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvdGVzdHMvdGVzdF9jb2x1bW5fYWNsX3NxbC5weQppbmRleCA2MjI4ZmUyMi4u NzhjM2VkNzggMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X2NvbHVtbl9hY2xfc3Fs LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X2NvbHVtbl9hY2xfc3FsLnB5CkBAIC05LDQ0 ICs5LDU0IEBACiAKIGltcG9ydCBvcwogCi1mcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRp bHMuc3FsX3RlbXBsYXRlX3Rlc3RfYmFzZSBpbXBvcnQgXAotICAgIFNRTFRlbXBsYXRlVGVzdEJh c2UKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKworZnJvbSByZWdy ZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzCiBmcm9tIHJlZ3Jlc3Np b24ucHl0aG9uX3Rlc3RfdXRpbHMudGVtcGxhdGVfaGVscGVyIGltcG9ydCBmaWxlX2FzX3RlbXBs YXRlCiAKIAotY2xhc3MgVGVzdENvbHVtbkFjbFNxbChTUUxUZW1wbGF0ZVRlc3RCYXNlKToKLSAg ICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHNjaGVt YSBub2RlLgotICAgICAgICAoJ1Rlc3QgQ29sdW1uIEFDTCBTUUwgZmlsZScsIGRpY3QoKSkKLSAg ICBdCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHN1cGVyKFRlc3RDb2x1bW5B Y2xTcWwsIHNlbGYpLl9faW5pdF9fKCkKLSAgICAgICAgc2VsZi50YWJsZV9pZCA9IC0xCi0gICAg ICAgIHNlbGYuY29sdW1uX2lkID0gLTEKLQotICAgIGRlZiB0ZXN0X3NldHVwKHNlbGYsIGNvbm5l Y3Rpb24sIGN1cnNvcik6Ci0gICAgICAgIGN1cnNvci5leGVjdXRlKCJTRUxFQ1QgcGdfY2xhc3Mu b2lkIEFTIHRhYmxlX2lkLCAiCi0gICAgICAgICAgICAgICAgICAgICAgICJwZ19hdHRyaWJ1dGUu YXR0bnVtIEFTIGNvbHVtbl9pZCAiCi0gICAgICAgICAgICAgICAgICAgICAgICJGUk9NIHBnX2Ns YXNzIEpPSU4gcGdfYXR0cmlidXRlIE9OICIKLSAgICAgICAgICAgICAgICAgICAgICAgImF0dHJl bGlkPXBnX2NsYXNzLm9pZCAiCi0gICAgICAgICAgICAgICAgICAgICAgICJXSEVSRSBwZ19jbGFz cy5yZWxuYW1lPSd0ZXN0X3RhYmxlJyIKLSAgICAgICAgICAgICAgICAgICAgICAgIiBBTkQgcGdf YXR0cmlidXRlLmF0dG5hbWUgPSAnc29tZV9jb2x1bW4nIikKLSAgICAgICAgc2VsZi50YWJsZV9p ZCwgc2VsZi5jb2x1bW5faWQgPSBjdXJzb3IuZmV0Y2hvbmUoKQotCi0gICAgZGVmIGdlbmVyYXRl X3NxbChzZWxmLCB2ZXJzaW9uKToKLSAgICAgICAgdGVtcGxhdGVfZmlsZSA9IHNlbGYuZ2V0X3Rl bXBsYXRlX2ZpbGUodmVyc2lvbiwgImFjbC5zcWwiKQotICAgICAgICB0ZW1wbGF0ZSA9IGZpbGVf YXNfdGVtcGxhdGUodGVtcGxhdGVfZmlsZSkKLSAgICAgICAgcHVibGljX3NjaGVtYV9pZCA9IDIy MDAKLSAgICAgICAgc3FsID0gdGVtcGxhdGUucmVuZGVyKHNjaWQ9cHVibGljX3NjaGVtYV9pZCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZD1zZWxmLnRhYmxlX2lkLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY2xpZD1zZWxmLmNvbHVtbl9pZAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKQotCi0gICAgICAgIHJldHVybiBzcWwKLQotICAgIGRlZiBhc3Nl cnRpb25zKHNlbGYsIGZldGNoX3Jlc3VsdCwgZGVzY3JpcHRpb25zKToKLSAgICAgICAgc2VsZi5h c3NlcnRFcXVhbCgwLCBsZW4oZmV0Y2hfcmVzdWx0KSkKK0BweXRlc3QubWFyay5kYXRhYmFzZQor Y2xhc3MgVGVzdENvbHVtbkFjbFNxbDoKKyAgICBkZWYgdGVzdF9jb2x1bW5fYWNsX3NxbChzZWxm LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gYWxsIHBhcmFt ZXRlcnMgYXJlIHByZXNlbnQKKyAgICAgICAgSXQgY29ycmVjdGx5IGdlbmVyYXRlcyB0aGUgU1FM CisgICAgICAgIEFuZCBleGVjdXRlcyBhZ2FpbnN0IHRoZSBkYXRhYmFzZQorICAgICAgICAiIiIK KyAgICAgICAgc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgd2l0 aCB0ZXN0X3V0aWxzLkRhdGFiYXNlKHNlcnZlcikgYXMgKGNvbm5lY3Rpb24sIGRhdGFiYXNlX25h bWUpOgorICAgICAgICAgICAgdGVzdF91dGlscy5jcmVhdGVfdGFibGUoc2VydmVyLCBkYXRhYmFz ZV9uYW1lLCAndGVzdF90YWJsZScpCisKKyAgICAgICAgICAgIGlmIGNvbm5lY3Rpb24uc2VydmVy X3ZlcnNpb24gPCA5MDEwMDoKKyAgICAgICAgICAgICAgICB2ZXJzaW9uc190b190ZXN0ID0gWydk ZWZhdWx0J10KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgdmVyc2lvbnNfdG9f dGVzdCA9IFsnOS4xX3BsdXMnXQorCisgICAgICAgICAgICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1 cnNvcigpCisKKyAgICAgICAgICAgIGN1cnNvci5leGVjdXRlKCJTRUxFQ1QgcGdfY2xhc3Mub2lk IEFTIHRhYmxlX2lkLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAicGdfYXR0cmlidXRl LmF0dG51bSBBUyBjb2x1bW5faWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZST00g cGdfY2xhc3MgSk9JTiBwZ19hdHRyaWJ1dGUgT04gIgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgImF0dHJlbGlkPXBnX2NsYXNzLm9pZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAi V0hFUkUgcGdfY2xhc3MucmVsbmFtZT0ndGVzdF90YWJsZSciCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAiIEFORCBwZ19hdHRyaWJ1dGUuYXR0bmFtZSA9ICdzb21lX2NvbHVtbiciKQorICAg ICAgICAgICAgdGFibGVfaWQsIGNvbHVtbl9pZCA9IGN1cnNvci5mZXRjaG9uZSgpCisKKyAgICAg ICAgICAgIGZvciB2ZXJzaW9uIGluIHZlcnNpb25zX3RvX3Rlc3Q6CisgICAgICAgICAgICAgICAg dGVtcGxhdGVfZmlsZSA9IHNlbGYuZ2V0X3RlbXBsYXRlX2ZpbGUodmVyc2lvbiwgImFjbC5zcWwi KQorICAgICAgICAgICAgICAgIHRlbXBsYXRlID0gZmlsZV9hc190ZW1wbGF0ZSh0ZW1wbGF0ZV9m aWxlKQorICAgICAgICAgICAgICAgIHB1YmxpY19zY2hlbWFfaWQgPSAyMjAwCisgICAgICAgICAg ICAgICAgc3FsID0gdGVtcGxhdGUucmVuZGVyKHNjaWQ9cHVibGljX3NjaGVtYV9pZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlkPXRhYmxlX2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlkPWNvbHVtbl9pZAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICApCisKKyAgICAgICAgICAgICAgICBjdXJzb3IgPSBj b25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgICAgICAgICAgY3Vyc29yLmV4ZWN1dGUoc3FsKQor ICAgICAgICAgICAgICAgIGZldGNoX3Jlc3VsdCA9IGN1cnNvci5mZXRjaGFsbCgpCisKKyAgICAg ICAgICAgICAgICBmZXRjaF9yZXN1bHQgfCBzaG91bGQuaGF2ZS5sZW5ndGgoMCkKIAogICAgIEBz dGF0aWNtZXRob2QKICAgICBkZWYgZ2V0X3RlbXBsYXRlX2ZpbGUodmVyc2lvbiwgZmlsZW5hbWUp OgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfY29sdW1uX3Byb3BlcnRpZXNfc3Fs LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfY29sdW1uX3Byb3BlcnRpZXNfc3FsLnB5CmluZGV4 IDY1MWE1OTdhLi45NTU5Yjc4NCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfY29s dW1uX3Byb3BlcnRpZXNfc3FsLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X2NvbHVtbl9w cm9wZXJ0aWVzX3NxbC5weQpAQCAtOSw0OCArOSw2MCBAQAogCiBpbXBvcnQgb3MKIAotZnJvbSBy ZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzLnNxbF90ZW1wbGF0ZV90ZXN0X2Jhc2UgaW1wb3J0 IFwKLSAgICBTUUxUZW1wbGF0ZVRlc3RCYXNlCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBp bXBvcnQgc2hvdWxkCisKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQg dGVzdF91dGlscwogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzLnRlbXBsYXRlX2hl bHBlciBpbXBvcnQgZmlsZV9hc190ZW1wbGF0ZQogCiAKLWNsYXNzIFRlc3RDb2x1bW5Qcm9wZXJ0 aWVzU3FsKFNRTFRlbXBsYXRlVGVzdEJhc2UpOgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAg IyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3Igc2NoZW1hIG5vZGUuCi0gICAgICAgICgnVGVzdCBD b2x1bW4gUHJvcGVydGllcyBTUUwgZmlsZScsIGRpY3QoKSkKLSAgICBdCitAcHl0ZXN0Lm1hcmsu ZGF0YWJhc2UKK2NsYXNzIFRlc3RDb2x1bW5Qcm9wZXJ0aWVzU3FsOgorICAgIGRlZiB0ZXN0X3J1 bihzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gYWxs IHBhcmFtZXRlcnMgYXJlIHByZXNlbnQKKyAgICAgICAgSXQgZXhlY3V0ZXMgdGhlIHF1ZXJ5IHRv IHRoZSByZXRyaWV2ZSB0aGUgY29sdW1uIHByb3BlcnRpZXMKKyAgICAgICAgIiIiCisgICAgICAg IHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHdpdGggdGVzdF91 dGlscy5EYXRhYmFzZShzZXJ2ZXIpIGFzIChjb25uZWN0aW9uLCBkYXRhYmFzZV9uYW1lKToKKyAg ICAgICAgICAgIHRlc3RfdXRpbHMuY3JlYXRlX3RhYmxlKHNlcnZlciwgZGF0YWJhc2VfbmFtZSwg J3Rlc3RfdGFibGUnKQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzdXBlcihU ZXN0Q29sdW1uUHJvcGVydGllc1NxbCwgc2VsZikuX19pbml0X18oKQotICAgICAgICBzZWxmLnRh YmxlX2lkID0gLTEKKyAgICAgICAgICAgIGlmIGNvbm5lY3Rpb24uc2VydmVyX3ZlcnNpb24gPCA5 MDEwMDoKKyAgICAgICAgICAgICAgICB2ZXJzaW9uc190b190ZXN0ID0gWydkZWZhdWx0J10KKyAg ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgdmVyc2lvbnNfdG9fdGVzdCA9IFsnOS4x X3BsdXMnXQogCi0gICAgZGVmIHRlc3Rfc2V0dXAoc2VsZiwgY29ubmVjdGlvbiwgY3Vyc29yKToK LSAgICAgICAgY3Vyc29yLmV4ZWN1dGUoIlNFTEVDVCBvaWQgRlJPTSBwZ19jbGFzcyB3aGVyZSBy ZWxuYW1lPSd0ZXN0X3RhYmxlJyIpCisgICAgICAgICAgICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1 cnNvcigpCisgICAgICAgICAgICBjdXJzb3IuZXhlY3V0ZSgKKyAgICAgICAgICAgICAgICAnU0VM RUNUIG9pZCBGUk9NIHBnX2NsYXNzIHdoZXJlIHJlbG5hbWU9XCd0ZXN0X3RhYmxlXCcnKQogCi0g ICAgICAgIHNlbGYudGFibGVfaWQgPSBjdXJzb3IuZmV0Y2hvbmUoKVswXQorICAgICAgICAgICAg dGFibGVfaWQgPSBjdXJzb3IuZmV0Y2hvbmUoKVswXQogCi0gICAgZGVmIGdlbmVyYXRlX3NxbChz ZWxmLCB2ZXJzaW9uKToKLSAgICAgICAgdGVtcGxhdGVfZmlsZSA9IHNlbGYuZ2V0X3RlbXBsYXRl X2ZpbGUodmVyc2lvbiwgInByb3BlcnRpZXMuc3FsIikKLSAgICAgICAgdGVtcGxhdGUgPSBmaWxl X2FzX3RlbXBsYXRlKHRlbXBsYXRlX2ZpbGUpCi0gICAgICAgIHB1YmxpY19zY2hlbWFfaWQgPSAy MjAwCi0gICAgICAgIHNxbCA9IHRlbXBsYXRlLnJlbmRlcihzY2lkPXB1YmxpY19zY2hlbWFfaWQs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQ9c2VsZi50YWJsZV9pZAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgZm9yIHZlcnNpb24gaW4gdmVy c2lvbnNfdG9fdGVzdDoKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9maWxlID0gc2VsZi5nZXRf dGVtcGxhdGVfZmlsZSh2ZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdwcm9wZXJ0aWVzLnNxbCcpCisgICAgICAgICAgICAgICAg dGVtcGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRlKHRlbXBsYXRlX2ZpbGUpCisgICAgICAgICAgICAg ICAgcHVibGljX3NjaGVtYV9pZCA9IDIyMDAKKyAgICAgICAgICAgICAgICBzcWwgPSB0ZW1wbGF0 ZS5yZW5kZXIoCisgICAgICAgICAgICAgICAgICAgIHNjaWQ9cHVibGljX3NjaGVtYV9pZCwKKyAg ICAgICAgICAgICAgICAgICAgdGlkPXRhYmxlX2lkCisgICAgICAgICAgICAgICAgKQogCi0gICAg ICAgIHJldHVybiBzcWwKKyAgICAgICAgICAgICAgICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNv cigpCisgICAgICAgICAgICAgICAgY3Vyc29yLmV4ZWN1dGUoc3FsKQorICAgICAgICAgICAgICAg IGZldGNoX3Jlc3VsdCA9IGN1cnNvci5mZXRjaGFsbCgpCiAKLSAgICBkZWYgYXNzZXJ0aW9ucyhz ZWxmLCBmZXRjaF9yZXN1bHQsIGRlc2NyaXB0aW9ucyk6Ci0gICAgICAgIGZpcnN0X3JvdyA9IHt9 Ci0gICAgICAgIGZvciBpbmRleCwgZGVzY3JpcHRpb24gaW4gZW51bWVyYXRlKGRlc2NyaXB0aW9u cyk6Ci0gICAgICAgICAgICBmaXJzdF9yb3dbZGVzY3JpcHRpb24ubmFtZV0gPSBmZXRjaF9yZXN1 bHRbMF1baW5kZXhdCisgICAgICAgICAgICAgICAgZmlyc3Rfcm93ID0ge30KKyAgICAgICAgICAg ICAgICBmb3IgaW5kZXgsIGRlc2NyaXB0aW9uIGluIGVudW1lcmF0ZShjdXJzb3IuZGVzY3JpcHRp b24pOgorICAgICAgICAgICAgICAgICAgICBmaXJzdF9yb3dbZGVzY3JpcHRpb24ubmFtZV0gPSBm ZXRjaF9yZXN1bHRbMF1baW5kZXhdCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnc29tZV9j b2x1bW4nLCBmaXJzdF9yb3dbJ25hbWUnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnY2hh cmFjdGVyIHZhcnlpbmcnLCBmaXJzdF9yb3dbJ2NsdHlwZSddKQotICAgICAgICBzZWxmLmFzc2Vy dEVxdWFsKDMsIGxlbihmZXRjaF9yZXN1bHQpKQorICAgICAgICAgICAgICAgIGZpcnN0X3Jvd1sn bmFtZSddIHwgc2hvdWxkLmJlLmVxdWFsLnRvKCdzb21lX2NvbHVtbicpCisgICAgICAgICAgICAg ICAgZmlyc3Rfcm93WydjbHR5cGUnXSB8IHNob3VsZC5iZS5lcXVhbC50bygnY2hhcmFjdGVyIHZh cnlpbmcnKQorICAgICAgICAgICAgICAgIGZldGNoX3Jlc3VsdCB8IHNob3VsZC5oYXZlLmxlbmd0 aCgzKQogCiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBnZXRfdGVtcGxhdGVfZmlsZSh2ZXJz aW9uLCBmaWxlbmFtZSk6CiAgICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4oCi0gICAgICAgICAg ICBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4iLCAidGVtcGxhdGVzIiwgImNvbHVtbiIs ICJzcWwiLAorICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJy4uJywgJ3Rl bXBsYXRlcycsICdjb2x1bW4nLCAnc3FsJywKICAgICAgICAgICAgIHZlcnNpb24sIGZpbGVuYW1l CiAgICAgICAgICkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RhYmxlX2FkZC5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RhYmxlX2FkZC5weQppbmRleCA0YzNjZGUzMS4uZjlj ZDg4ZjMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RhYmxlX2FkZC5weQorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZV9hZGQucHkKQEAgLTEwLDcwICsxMCwzNiBAQAog aW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGlt cG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0 aWxzCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2Vz LnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCi0gICAgZGF0YWJhc2VfdXRpbHMKIGZyb20gcGdhZG1p bi51dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscwotZnJvbSBwZ2FkbWlu LnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGlt cG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMg aW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIAogCi1jbGFzcyBUYWJsZUFkZFRlc3RDYXNlKEJh c2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCBuZXcgY29sbGF0 aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMg RmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHRhYmxlIG5vZGUuCi0gICAgICAgICgnQ3JlYXRlIFRh YmxlJywgZGljdCh1cmw9Jy9icm93c2VyL3RhYmxlL29iai8nKSksCi0gICAgICAgICgnQ3JlYXRl IFJhbmdlIHBhcnRpdGlvbmVkIHRhYmxlIHdpdGggMiBwYXJ0aXRpb25zJywKLSAgICAgICAgIGRp Y3QodXJsPScvYnJvd3Nlci90YWJsZS9vYmovJywKLSAgICAgICAgICAgICAgc2VydmVyX21pbl92 ZXJzaW9uPTEwMDAwMCwKLSAgICAgICAgICAgICAgcGFydGl0aW9uX3R5cGU9J3JhbmdlJwotICAg ICAgICAgICAgICApCi0gICAgICAgICApLAotICAgICAgICAoJ0NyZWF0ZSBMaXN0IHBhcnRpdGlv bmVkIHRhYmxlIHdpdGggMiBwYXJ0aXRpb25zJywKLSAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nl ci90YWJsZS9vYmovJywKLSAgICAgICAgICAgICAgc2VydmVyX21pbl92ZXJzaW9uPTEwMDAwMCwK LSAgICAgICAgICAgICAgcGFydGl0aW9uX3R5cGU9J2xpc3QnCi0gICAgICAgICAgICAgICkKLSAg ICAgICAgICkKLSAgICBdCi0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuZGJf bmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAg ICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAg c2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5k Yl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0 aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBz ZWxmLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgot ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFz ZSB0byBhZGQgYSB0YWJsZS4iKQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZv WyJzY2hlbWFfaWQiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNj aGVtYV9uYW1lIl0KK2NsYXNzIFRlc3RUYWJsZUFkZDoKKyAgICBkZWYgc2V0X3VwKHNlbGYsIGNv bnRleHRfb2ZfdGVzdHMpOgorICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNb J3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydz ZXJ2ZXInXQorICAgICAgICBzZXJ2ZXJfZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9p bmZvcm1hdGlvbiddCisKKyAgICAgICAgZGJfbmFtZSA9IHNlcnZlcl9kYXRhWydkYl9uYW1lJ10K KyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAg ICAgc2VsZi5kYl9pZCA9IHNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIHNlbGYuc2NoZW1h X2lkID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9pZCddCisgICAgICAgIHNjaGVtYV9uYW1lID0gc2Vy dmVyX2RhdGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZXJ2ZXJf ZGF0YVsnc2VydmVyX2lkJ10KICAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxz LnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRi X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKICAgICAg ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQg YSB0YWJsZS4iKQogCi0gICAgICAgIHNlbGYuaXNfcGFydGl0aW9uID0gRmFsc2UKLSAgICAgICAg aWYgaGFzYXR0cihzZWxmLCAnc2VydmVyX21pbl92ZXJzaW9uJyk6Ci0gICAgICAgICAgICBzZXJ2 ZXJfY29uID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNlbGYuc2VydmVyX2lk KQotICAgICAgICAgICAgaWYgbm90IHNlcnZlcl9jb25bImluZm8iXSA9PSAiU2VydmVyIGNvbm5l Y3RlZC4iOgotICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5l Y3QgdG8gc2VydmVyIHRvIGFkZCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJw YXJ0aXRpb25lZCB0YWJsZS4iKQotICAgICAgICAgICAgaWYgc2VydmVyX2NvblsiZGF0YSJdWyJ2 ZXJzaW9uIl0gPCBzZWxmLnNlcnZlcl9taW5fdmVyc2lvbjoKLSAgICAgICAgICAgICAgICBtZXNz YWdlID0gIlBhcnRpdGlvbmVkIHRhYmxlIGFyZSBub3Qgc3VwcG9ydGVkIGJ5ICIgXAotICAgICAg ICAgICAgICAgICAgICAgICAgICAiUFBBUy9QRyAxMC4wIGFuZCBiZWxvdy4iCi0gICAgICAgICAg ICAgICAgc2VsZi5za2lwVGVzdChtZXNzYWdlKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAg ICAgICAgICBzZWxmLmlzX3BhcnRpdGlvbiA9IFRydWUKLQotICAgIGRlZiBydW5UZXN0KHNlbGYp OgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCB0YWJsZSB1bmRlciBzY2hlbWEg bm9kZS4gIiIiCiAgICAgICAgIGRiX3VzZXIgPSBzZWxmLnNlcnZlclsidXNlcm5hbWUiXQotICAg ICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGVzdF90YWJsZV9hZGRfJXMiICUgKHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0pCi0gICAgICAgIGRhdGEgPSB7CisgICAgICAgIHRhYmxlX25hbWUgPSAidGVz dF90YWJsZV9hZGRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHNlbGYu ZGF0YSA9IHsKICAgICAgICAgICAgICJjaGVja19jb25zdHJhaW50IjogW10sCiAgICAgICAgICAg ICAiY29sbF9pbmhlcml0cyI6ICJbXSIsCiAgICAgICAgICAgICAiY29sdW1ucyI6IFsKQEAgLTEw Nyw3ICs3Myw3IEBAIGNsYXNzIFRhYmxlQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgog ICAgICAgICAgICAgImxpa2VfY29uc3RyYWludHMiOiBUcnVlLAogICAgICAgICAgICAgImxpa2Vf ZGVmYXVsdF92YWx1ZSI6IFRydWUsCiAgICAgICAgICAgICAibGlrZV9yZWxhdGlvbiI6ICJwZ19j YXRhbG9nLnBnX25hbWVzcGFjZSIsCi0gICAgICAgICAgICAibmFtZSI6IHNlbGYudGFibGVfbmFt ZSwKKyAgICAgICAgICAgICJuYW1lIjogdGFibGVfbmFtZSwKICAgICAgICAgICAgICJwcmltYXJ5 X2tleSI6IFtdLAogICAgICAgICAgICAgInJlbGFjbCI6IFsKICAgICAgICAgICAgICAgICB7CkBA IC0xMzUsNyArMTAxLDcgQEAgY2xhc3MgVGFibGVBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRv cik6CiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgInJlbGhhc29pZHMiOiBUcnVlLAogICAg ICAgICAgICAgInJlbG93bmVyIjogZGJfdXNlciwKLSAgICAgICAgICAgICJzY2hlbWEiOiBzZWxm LnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgInNjaGVtYSI6IHNjaGVtYV9uYW1lLAogICAgICAg ICAgICAgInNlY2xhYmVscyI6IFtdLAogICAgICAgICAgICAgInNwY25hbWUiOiAicGdfZGVmYXVs dCIsCiAgICAgICAgICAgICAidW5pcXVlX2NvbnN0cmFpbnQiOiBbXSwKQEAgLTE5Myw0MyArMTU5 LDEyMCBAQCBjbGFzcyBUYWJsZUFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAg ICAgICAgIF0KICAgICAgICAgfQogCi0gICAgICAgIGlmIHNlbGYuaXNfcGFydGl0aW9uOgotICAg ICAgICAgICAgZGF0YVsncGFydGl0aW9uX3R5cGUnXSA9IHNlbGYucGFydGl0aW9uX3R5cGUKLSAg ICAgICAgICAgIGRhdGFbJ2lzX3BhcnRpdGlvbmVkJ10gPSBUcnVlCi0gICAgICAgICAgICBpZiBz ZWxmLnBhcnRpdGlvbl90eXBlID09ICdyYW5nZSc6Ci0gICAgICAgICAgICAgICAgZGF0YVsncGFy dGl0aW9ucyddID0gXAotICAgICAgICAgICAgICAgICAgICBbeyd2YWx1ZXNfZnJvbSc6ICInMjAx MC0wMS0wMSciLAotICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZXNfdG8nOiAiJzIwMTAtMTIt MzEnIiwKLSAgICAgICAgICAgICAgICAgICAgICAnaXNfYXR0YWNoJzogRmFsc2UsCi0gICAgICAg ICAgICAgICAgICAgICAgJ3BhcnRpdGlvbl9uYW1lJzogJ2VtcF8yMDEwJwotICAgICAgICAgICAg ICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgICB7J3ZhbHVlc19mcm9tJzogIicyMDEx LTAxLTAxJyIsCi0gICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlc190byc6ICInMjAxMS0xMi0z MSciLAotICAgICAgICAgICAgICAgICAgICAgICdpc19hdHRhY2gnOiBGYWxzZSwKLSAgICAgICAg ICAgICAgICAgICAgICAncGFydGl0aW9uX25hbWUnOiAnZW1wXzIwMTEnCi0gICAgICAgICAgICAg ICAgICAgICAgfV0KLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZGF0YVsncGFy dGl0aW9ucyddID0gXAotICAgICAgICAgICAgICAgICAgICBbeyd2YWx1ZXNfaW4nOiAiJzIwMTIt MDEtMDEnLCAnMjAxMi0xMi0zMSciLAotICAgICAgICAgICAgICAgICAgICAgICdpc19hdHRhY2gn OiBGYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAncGFydGl0aW9uX25hbWUnOiAnZW1wXzIw MTInCi0gICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgIHsndmFs dWVzX2luJzogIicyMDEzLTAxLTAxJywgJzIwMTMtMTItMzEnIiwKLSAgICAgICAgICAgICAgICAg ICAgICAnaXNfYXR0YWNoJzogRmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgJ3BhcnRpdGlv bl9uYW1lJzogJ2VtcF8yMDEzJwotICAgICAgICAgICAgICAgICAgICAgIH1dCi0gICAgICAgICAg ICBkYXRhWydwYXJ0aXRpb25fa2V5cyddID0gXAotICAgICAgICAgICAgICAgIFt7J2tleV90eXBl JzogJ2NvbHVtbicsICdwdF9jb2x1bW4nOiAnRE9KJ31dCi0KLSAgICAgICAgIyBBZGQgdGFibGUK KyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlv bicpCisgICAgZGVmIHRlc3RfdGFibGVfYWRkKHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAg ICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgdGFibGUgYWRkIHJlcXVlc3QgaXMgc2VudCB0byB0 aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisK KyAgICAgICAgdXJsID0gJy9icm93c2VyL3RhYmxlL29iai8nCisKKyAgICAgICAgc2VsZi5zZXRf dXAoY29udGV4dF9vZl90ZXN0cykKKworICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBv c3QoCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisg ICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQpICsK KyAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycsCisgICAgICAgICAg ICBkYXRhPWpzb24uZHVtcHMoc2VsZi5kYXRhKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0n aHRtbC9qc29uJykKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5l cXVhbC50bygyMDApCisKKyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoJ3JlcXVpcmVfZGF0 YWJhc2VfY29ubmVjdGlvbicpCisgICAgZGVmIHRlc3RfdGFibGVfYWRkX3JhbmdlX3BhcnRpdGlv bmVkKHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0 aGUgcmFuZ2UtcGFydGl0aW9uZWQgdGFibGUgYWRkIHJlcXVlc3QgaXMgc2VudCB0byB0aGUgYmFj a2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisKKyAgICAg ICAgdXJsID0gJy9icm93c2VyL3RhYmxlL29iai8nCisgICAgICAgIHNlcnZlcl9taW5fdmVyc2lv biA9IDEwMDAwMAorICAgICAgICBwYXJ0aXRpb25fdHlwZSA9ICdyYW5nZScKKworICAgICAgICBz ZWxmLnNldF91cChjb250ZXh0X29mX3Rlc3RzKQorCisgICAgICAgIHNlcnZlcl9jb24gPSBzZXJ2 ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQpCisgICAgICAgIHNl cnZlcl9jb25bJ2luZm8nXSB8IFwKKyAgICAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50bygnU2Vy dmVyIGNvbm5lY3RlZC4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZz0nQ291 bGQgbm90IGNvbm5lY3QgdG8gc2VydmVyIHRvIGFkZCcKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAncGFydGl0aW9uZWQgdGFibGUuJykKKworICAgICAgICBpZiBzZXJ2ZXJfY29uWydk YXRhJ11bJ3ZlcnNpb24nXSA8IHNlcnZlcl9taW5fdmVyc2lvbjoKKyAgICAgICAgICAgIG1lc3Nh Z2UgPSAnUGFydGl0aW9uZWQgdGFibGUgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgJyBcCisgICAgICAg ICAgICAgICAgICAgICAgJ1BQQVMvUEcgMTAuMCBhbmQgYmVsb3cuJworICAgICAgICAgICAgcHl0 ZXN0LnNraXAobWVzc2FnZSkKKworICAgICAgICBzZWxmLmRhdGFbJ3BhcnRpdGlvbl90eXBlJ10g PSBwYXJ0aXRpb25fdHlwZQorICAgICAgICBzZWxmLmRhdGFbJ2lzX3BhcnRpdGlvbmVkJ10gPSBU cnVlCisgICAgICAgIHNlbGYuZGF0YVsncGFydGl0aW9ucyddID0gXAorICAgICAgICAgICAgW3sn dmFsdWVzX2Zyb20nOiAiJzIwMTAtMDEtMDEnIiwKKyAgICAgICAgICAgICAgJ3ZhbHVlc190byc6 ICInMjAxMC0xMi0zMSciLAorICAgICAgICAgICAgICAnaXNfYXR0YWNoJzogRmFsc2UsCisgICAg ICAgICAgICAgICdwYXJ0aXRpb25fbmFtZSc6ICdlbXBfMjAxMCcKKyAgICAgICAgICAgICAgfSwK KyAgICAgICAgICAgICB7J3ZhbHVlc19mcm9tJzogIicyMDExLTAxLTAxJyIsCisgICAgICAgICAg ICAgICd2YWx1ZXNfdG8nOiAiJzIwMTEtMTItMzEnIiwKKyAgICAgICAgICAgICAgJ2lzX2F0dGFj aCc6IEZhbHNlLAorICAgICAgICAgICAgICAncGFydGl0aW9uX25hbWUnOiAnZW1wXzIwMTEnCisg ICAgICAgICAgICAgIH1dCisKKyAgICAgICAgc2VsZi5kYXRhWydwYXJ0aXRpb25fa2V5cyddID0g XAorICAgICAgICAgICAgW3sna2V5X3R5cGUnOiAnY29sdW1uJywgJ3B0X2NvbHVtbic6ICdET0on fV0KKworICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCisgICAgICAgICAgICB1 cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2Vs Zi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQpICsKKyAgICAgICAgICAgICcvJyAr IHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycsCisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMo c2VsZi5kYXRhKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAg ICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisKKyAg ICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlvbicp CisgICAgZGVmIHRlc3RfdGFibGVfYWRkX2xpc3RfcGFydGl0aW9uZWQoc2VsZiwgY29udGV4dF9v Zl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBsaXN0LXBhcnRpdGlvbmVk IHRhYmxlIGFkZCByZXF1ZXN0IGlzIHNlbnQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0 dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci90 YWJsZS9vYmovJworICAgICAgICBzZXJ2ZXJfbWluX3ZlcnNpb24gPSAxMDAwMDAKKyAgICAgICAg cGFydGl0aW9uX3R5cGUgPSAnbGlzdCcKKworICAgICAgICBzZWxmLnNldF91cChjb250ZXh0X29m X3Rlc3RzKQorCisgICAgICAgIHNlcnZlcl9jb24gPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2 ZXIoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQpCisgICAgICAgIHNlcnZlcl9jb25bJ2luZm8nXSB8IFwK KyAgICAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50bygnU2VydmVyIGNvbm5lY3RlZC4nLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZz0nQ291bGQgbm90IGNvbm5lY3QgdG8gc2Vy dmVyIHRvIGFkZCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhcnRpdGlv bmVkIHRhYmxlLicpCisKKyAgICAgICAgaWYgc2VydmVyX2NvblsnZGF0YSddWyd2ZXJzaW9uJ10g PCBzZXJ2ZXJfbWluX3ZlcnNpb246CisgICAgICAgICAgICBtZXNzYWdlID0gJ1BhcnRpdGlvbmVk IHRhYmxlIGFyZSBub3Qgc3VwcG9ydGVkIGJ5ICcgXAorICAgICAgICAgICAgICAgICAgICAgICdQ UEFTL1BHIDEwLjAgYW5kIGJlbG93LicKKyAgICAgICAgICAgIHB5dGVzdC5za2lwKG1lc3NhZ2Up CisKKyAgICAgICAgc2VsZi5kYXRhWydwYXJ0aXRpb25fdHlwZSddID0gcGFydGl0aW9uX3R5cGUK KyAgICAgICAgc2VsZi5kYXRhWydpc19wYXJ0aXRpb25lZCddID0gVHJ1ZQorICAgICAgICBzZWxm LmRhdGFbJ3BhcnRpdGlvbnMnXSA9IFwKKyAgICAgICAgICAgIFt7J3ZhbHVlc19pbic6ICInMjAx Mi0wMS0wMScsICcyMDEyLTEyLTMxJyIsCisgICAgICAgICAgICAgICdpc19hdHRhY2gnOiBGYWxz ZSwKKyAgICAgICAgICAgICAgJ3BhcnRpdGlvbl9uYW1lJzogJ2VtcF8yMDEyJworICAgICAgICAg ICAgICB9LAorICAgICAgICAgICAgIHsndmFsdWVzX2luJzogIicyMDEzLTAxLTAxJywgJzIwMTMt MTItMzEnIiwKKyAgICAgICAgICAgICAgJ2lzX2F0dGFjaCc6IEZhbHNlLAorICAgICAgICAgICAg ICAncGFydGl0aW9uX25hbWUnOiAnZW1wXzIwMTMnCisgICAgICAgICAgICAgIH1dCisKKyAgICAg ICAgc2VsZi5kYXRhWydwYXJ0aXRpb25fa2V5cyddID0gXAorICAgICAgICAgICAgW3sna2V5X3R5 cGUnOiAnY29sdW1uJywgJ3B0X2NvbHVtbic6ICdET0onfV0KKwogICAgICAgICByZXNwb25zZSA9 IHNlbGYudGVzdGVyLnBvc3QoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJW RVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JP VVApICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIo c2VsZi5kYl9pZCkgKwogICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcv JywKLSAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgIGRhdGE9 anNvbi5kdW1wcyhzZWxmLmRhdGEpLAogICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pz b24nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAw KQogCi0gICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRh dGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwg c2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2Rl IHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90 ZXN0X3RhYmxlX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RhYmxlX2RlbGV0ZS5w eQppbmRleCAxN2IzZDAxYi4uMGVlYTcwN2IgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90 ZXN0X3RhYmxlX2RlbGV0ZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZV9kZWxl dGUucHkKQEAgLTksNTggKzksNTUgQEAKIAogaW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5dGVzdAor ZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJf Z3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGls cyBhcyBzY2hlbWFfdXRpbHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2Vy dmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKLSAgICBkYXRhYmFzZV91dGls cwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJv bSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0 aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQg dXRpbHMgYXMgdGFibGVzX3V0aWxzCiAKIAotY2xhc3MgVGFibGVEZWxldGVUZXN0Q2FzZShCYXNl VGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSBuZXcgdGFibGUg dW5kZXIgc2NoZW1hIG5vZGUuIiIiCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNo aW5nIGRlZmF1bHQgVVJMIGZvciB0YWJsZSBub2RlLgotICAgICAgICAoJ0RlbGV0ZSBUYWJsZScs IGRpY3QodXJsPScvYnJvd3Nlci90YWJsZS9vYmovJykpCi0gICAgXQorY2xhc3MgVGVzdFRhYmxl RGVsZXRlOgorICAgIEBweXRlc3QubWFyay51c2VmaXh0dXJlcygncmVxdWlyZV9kYXRhYmFzZV9j b25uZWN0aW9uJykKKyAgICBkZWYgdGVzdF90YWJsZV9kZWxldGUoc2VsZiwgY29udGV4dF9vZl90 ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSB0YWJsZSBkZWxldGUgcmVxdWVz dCBpcyBzZW50IHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cwor ICAgICAgICAiIiIKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvdGFibGUvb2JqLycKKworICAg ICAgICBodHRwX2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAg ICAgc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VydmVyX2Rh dGEgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQogCi0gICAgZGVmIHNl dFVwKHNlbGYpOgotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRh YmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVf ZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9b InNlcnZlcl9pZCJdCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQot ICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0 aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRi X2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIGEgdGFibGUuIikKLSAgICAgICAg c2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2VsZi5z Y2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9y ZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJf bmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGRiX25hbWUgPSBzZXJ2ZXJfZGF0YVsnZGJf bmFtZSddCisgICAgICAgIHNlcnZlcl9pZCA9IHNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAg ICAgICBkYl9pZCA9IHNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIHNjaGVtYV9pZCA9IHNl cnZlcl9kYXRhWydzY2hlbWFfaWQnXQorICAgICAgICBzY2hlbWFfbmFtZSA9IHNlcnZlcl9kYXRh WydzY2hlbWFfbmFtZSddCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52 ZXJpZnlfc2NoZW1hcyhzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUpCiAgICAgICAgIGlmIG5vdCBz Y2hlbWFfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBm aW5kIHRoZSBzY2hlbWEgdG8gYWRkIGEgdGFibGUuIikKLSAgICAgICAgc2VsZi50YWJsZV9uYW1l ID0gInRlc3RfdGFibGVfZGVsZXRlXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAg ICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZl ciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUpCisgICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVsZXRlIGEgdGFibGUu IikKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdp bGwgZGVsZXRlIGFkZGVkIHRhYmxlIHVuZGVyIHNjaGVtYSBub2RlLiIiIgotICAgICAgICB0YWJs ZV9yZXNwb25zZSA9IHRhYmxlc191dGlscy52ZXJpZnlfdGFibGUoc2VsZi5zZXJ2ZXIsIHNlbGYu ZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYudGFibGVfaWQpCisgICAgICAgIHRhYmxlX25hbWUgPSAidGVzdF90YWJsZV9kZWxl dGVfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHRhYmxlX2lkID0gdGFi bGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZXJ2ZXIsIGRiX25hbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlX25hbWUpCisKKyAgICAgICAgdGFi bGVfcmVzcG9uc2UgPSB0YWJsZXNfdXRpbHMudmVyaWZ5X3RhYmxlKHNlcnZlciwgZGJfbmFtZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxl X2lkKQogICAgICAgICBpZiBub3QgdGFibGVfcmVzcG9uc2U6CiAgICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSB0YWJsZSB0byBkZWxldGUuIikKLSAgICAgICAg cmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVS X0dST1VQKSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvJyArIHN0 cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYudGFibGVfaWQpLAorCisgICAgICAgIHJl c3BvbnNlID0gaHR0cF9jbGllbnQuZGVsZXRlKHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVAp ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8nICsgc3RyKHNlcnZl cl9pZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIo ZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry KHNjaGVtYV9pZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHIodGFibGVfaWQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm b2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNl LnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICMg RGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVj dF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgcmVz cG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3Rf dGFibGVfZ2V0LnB5CmluZGV4IGJhYjIxZmRkLi42ZmJiNjlmNCAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3Rlc3RzL3Rlc3RfdGFibGVfZ2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3Rh YmxlX2dldC5weQpAQCAtOSw1NCArOSw1MCBAQAogCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0 ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAg IHV0aWxzIGFzIHNjaGVtYV91dGlscwotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw cy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAotICAgIGRhdGFiYXNl X3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y Ci1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lv bi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGlt cG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKIAogCi1jbGFzcyBUYWJsZUdldFRlc3RDYXNlKEJh c2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgYWRkIG5ldyBjb2xsYXRp b24gdW5kZXIgc2NoZW1hIG5vZGUuIiIiCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZl dGNoaW5nIGRlZmF1bHQgVVJMIGZvciB0YWJsZSBub2RlLgotICAgICAgICAoJ0ZldGNoIHRhYmxl IE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL3RhYmxlL29iai8nKSkKLSAgICBdCi0KLSAg ICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2Rp Y3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJl bnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hl bWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJk Yl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uo c2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQotICAgICAgICBp ZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhj ZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSB0YWJsZS4iKQot ICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAg ICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KLSAgICAgICAg c2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVy LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKK2NsYXNzIFRlc3RUYWJsZUdldDoKKyAgICBA cHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlvbicpCisg ICAgZGVmIHRlc3RfdGFibGVfZ2V0KHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAi IiIKKyAgICAgICAgV2hlbiB0aGUgdGFibGUgZ2V0IHJlcXVlc3QgaXMgc2VudCB0byB0aGUgYmFj a2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisKKyAgICAg ICAgdXJsID0gJy9icm93c2VyL3RhYmxlL29iai8nCisKKyAgICAgICAgaHR0cF9jbGllbnQgPSBj b250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRf b2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlcnZlcl9kYXRhID0gY29udGV4dF9vZl90ZXN0 c1snc2VydmVyX2luZm9ybWF0aW9uJ10KKworICAgICAgICBkYl9uYW1lID0gc2VydmVyX2RhdGFb J2RiX25hbWUnXQorICAgICAgICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10K KyAgICAgICAgZGJfaWQgPSBzZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzY2hlbWFfaWQg PSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX2lkJ10KKyAgICAgICAgc2NoZW1hX25hbWUgPSBzZXJ2ZXJf ZGF0YVsnc2NoZW1hX25hbWUnXQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRp bHMudmVyaWZ5X3NjaGVtYXMoc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQogICAgICAgICBpZiBu b3Qgc2NoZW1hX3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBhIHRhYmxlLiIpCi0gICAgICAgIHNlbGYudGFibGVf bmFtZSA9ICJ0ZXN0X3RhYmxlX2dldF8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAg ICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2 ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQotCi0gICAgZGVmIHJ1blRl c3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgYWRkZWQgdGFi bGUgdW5kZXIgc2NoZW1hIG5vZGUuIiIiCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIu Z2V0KHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSAr ICcvJyArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLnRhYmxl X2lkKSwKKworICAgICAgICB0YWJsZV9uYW1lID0gInRlc3RfdGFibGVfZ2V0XyVzIiAlIChzdHIo dXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICB0YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVh dGVfdGFibGUoc2VydmVyLCBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0YWJsZV9uYW1lKQorCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9j bGllbnQuZ2V0KHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJy8nICsgc3RyKHNlcnZlcl9pZCkgKyAnLycgKworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoZGJfaWQpICsgJy8nICsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNjaGVtYV9pZCkgKyAnLycgKworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIodGFibGVfaWQpLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgIHNl bGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBkZWYgdGVh ckRvd24oc2VsZik6Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAg ZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwg c2VsZi5kYl9pZCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1 YWwudG8oMjAwKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVfcHV0LnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVfcHV0LnB5CmluZGV4IDYzZjczZWFlLi41YjU1 NWM2ZiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVfcHV0LnB5CisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RhYmxlX3B1dC5weQpAQCAtMTAsMTM1ICsxMCwxNTAgQEAK IGltcG9ydCBqc29uCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBp bXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy cy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91 dGlscwotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAotICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRt aW4udXRpbHMgaW1wb3J0IHNlcnZlcl91dGlscyBhcyBzZXJ2ZXJfdXRpbHMKLWZyb20gcGdhZG1p bi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBp bXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5l cmF0b3IgaW1wb3J0IFBvc3RncmVzVmVyc2lvbgogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0 X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFz IHRhYmxlc191dGlscwogCiAKLWNsYXNzIFRhYmxlVXBkYXRlVGVzdENhc2UoQmFzZVRlc3RHZW5l cmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBhZGQgbmV3IGNvbGxhdGlvbiB1bmRlciBz Y2hlbWEgbm9kZS4iIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVm YXVsdCBVUkwgZm9yIHRhYmxlIG5vZGUuCi0gICAgICAgICgnVXBkYXRlIFRhYmxlJywgZGljdCh1 cmw9Jy9icm93c2VyL3RhYmxlL29iai8nKSksCi0gICAgICAgICgnQ3JlYXRlIHBhcnRpdGlvbnMg b2YgZXhpc3RpbmcgcmFuZ2UgcGFydGl0aW9uZWQgdGFibGUnLAotICAgICAgICAgZGljdCh1cmw9 Jy9icm93c2VyL3RhYmxlL29iai8nLAotICAgICAgICAgICAgICBzZXJ2ZXJfbWluX3ZlcnNpb249 MTAwMDAwLAotICAgICAgICAgICAgICBwYXJ0aXRpb25fdHlwZT0ncmFuZ2UnLAotICAgICAgICAg ICAgICBtb2RlPSdjcmVhdGUnCi0gICAgICAgICAgICAgICkKLSAgICAgICAgICksCi0gICAgICAg ICgnQ3JlYXRlIHBhcnRpdGlvbnMgb2YgZXhpc3RpbmcgbGlzdCBwYXJ0aXRpb25lZCB0YWJsZScs Ci0gICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvdGFibGUvb2JqLycsCi0gICAgICAgICAgICAg IHNlcnZlcl9taW5fdmVyc2lvbj0xMDAwMDAsCi0gICAgICAgICAgICAgIHBhcnRpdGlvbl90eXBl PSdsaXN0JywKLSAgICAgICAgICAgICAgbW9kZT0nY3JlYXRlJwotICAgICAgICAgICAgICApCi0g ICAgICAgICApLAotICAgICAgICAoJ0RldGFjaCBwYXJ0aXRpb24gZnJvbSBleGlzdGluZyByYW5n ZSBwYXJ0aXRpb25lZCB0YWJsZScsCi0gICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvdGFibGUv b2JqLycsCi0gICAgICAgICAgICAgIHNlcnZlcl9taW5fdmVyc2lvbj0xMDAwMDAsCi0gICAgICAg ICAgICAgIHBhcnRpdGlvbl90eXBlPSdyYW5nZScsCi0gICAgICAgICAgICAgIG1vZGU9J2RldGFj aCcKLSAgICAgICAgICAgICAgKQotICAgICAgICAgKSwKLSAgICAgICAgKCdEZXRhY2ggcGFydGl0 aW9uIGZyb20gZXhpc3RpbmcgbGlzdCBwYXJ0aXRpb25lZCB0YWJsZScsCi0gICAgICAgICBkaWN0 KHVybD0nL2Jyb3dzZXIvdGFibGUvb2JqLycsCi0gICAgICAgICAgICAgIHNlcnZlcl9taW5fdmVy c2lvbj0xMDAwMDAsCi0gICAgICAgICAgICAgIHBhcnRpdGlvbl90eXBlPSdsaXN0JywKLSAgICAg ICAgICAgICAgbW9kZT0nZGV0YWNoJwotICAgICAgICAgICAgICApCi0gICAgICAgICApLAotICAg ICAgICAoJ0F0dGFjaCBwYXJ0aXRpb24gdG8gZXhpc3RpbmcgcmFuZ2UgcGFydGl0aW9uZWQgdGFi bGUnLAotICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL3RhYmxlL29iai8nLAotICAgICAgICAg ICAgICBzZXJ2ZXJfbWluX3ZlcnNpb249MTAwMDAwLAotICAgICAgICAgICAgICBwYXJ0aXRpb25f dHlwZT0ncmFuZ2UnLAotICAgICAgICAgICAgICBtb2RlPSdhdHRhY2gnCi0gICAgICAgICAgICAg ICkKLSAgICAgICAgICksCi0gICAgICAgICgnQXR0YWNoIHBhcnRpdGlvbiB0byBleGlzdGluZyBs aXN0IHBhcnRpdGlvbmVkIHRhYmxlJywKLSAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci90YWJs ZS9vYmovJywKLSAgICAgICAgICAgICAgc2VydmVyX21pbl92ZXJzaW9uPTEwMDAwMCwKLSAgICAg ICAgICAgICAgcGFydGl0aW9uX3R5cGU9J2xpc3QnLAotICAgICAgICAgICAgICBtb2RlPSdhdHRh Y2gnCi0gICAgICAgICAgICAgICkKLSAgICAgICAgICkKLSAgICBdCi0KLSAgICBkZWYgc2V0VXAo c2VsZik6Ci0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNl Il1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0 WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2Vy dmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAg ICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMu U0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29u WydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3Vs ZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSB0YWJsZS4iKQotICAgICAgICBzZWxm LnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBzZWxmLnNjaGVt YV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KLSAgICAgICAgc2NoZW1hX3Jlc3Bv bnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1l LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zY2hlbWFfbmFtZSkKLSAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAg ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQg YSB0YWJsZS4iKQorY2xhc3MgVGVzdFRhYmxlUHV0OgorICAgIGRlZiBzZXRfdXAoc2VsZiwgY29u dGV4dF9vZl90ZXN0cyk6CisgICAgICAgIHNlbGYudXJsID0gJy9icm93c2VyL3RhYmxlL29iai8n CisKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCdd CisKKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAg ICAgICBzZWxmLnNlcnZlcl9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9ybWF0 aW9uJ10KKyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSdd CisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10K KyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAg c2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzY2hlbWFfaWQnXQorICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2NoZW1hX25hbWUnXQorICAgICAg ICBzZWxmLnNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcygKKyAg ICAgICAgICAgIHNlbGYuc2VydmVyLAorICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAg ICAgICAgc2VsZi5zY2hlbWFfbmFtZQorICAgICAgICApCisKKyAgICAgICAgaWYgbm90IHNlbGYu c2NoZW1hX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg ZmluZCB0aGUgc2NoZW1hIHRvIHVwZGF0ZSB0YWJsZS4iKQorCiAgICAgICAgIHNlbGYudGFibGVf bmFtZSA9ICJ0ZXN0X3RhYmxlX3B1dF8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKIAot ICAgICAgICBzZWxmLmlzX3BhcnRpdGlvbiA9IEZhbHNlCi0gICAgICAgIGlmIGhhc2F0dHIoc2Vs ZiwgJ3NlcnZlcl9taW5fdmVyc2lvbicpOgotICAgICAgICAgICAgc2VydmVyX2NvbiA9IHNlcnZl cl91dGlscy5jb25uZWN0X3NlcnZlcihzZWxmLCBzZWxmLnNlcnZlcl9pZCkKLSAgICAgICAgICAg IGlmIG5vdCBzZXJ2ZXJfY29uWyJpbmZvIl0gPT0gIlNlcnZlciBjb25uZWN0ZWQuIjoKLSAgICAg ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIHNlcnZlciB0 byBhZGQgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFydGl0aW9uZWQgdGFi bGUuIikKLSAgICAgICAgICAgIGlmIHNlcnZlcl9jb25bImRhdGEiXVsidmVyc2lvbiJdIDwgc2Vs Zi5zZXJ2ZXJfbWluX3ZlcnNpb246Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJQYXJ0aXRp b25lZCB0YWJsZSBhcmUgbm90IHN1cHBvcnRlZCBieSAiIFwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgIlBQQVMvUEcgMTAuMCBhbmQgYmVsb3cuIgotICAgICAgICAgICAgICAgIHNlbGYuc2tp cFRlc3QobWVzc2FnZSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5p c19wYXJ0aXRpb24gPSBUcnVlCi0KLSAgICAgICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNf dXRpbHMuY3JlYXRlX3RhYmxlX2Zvcl9wYXJ0aXRpb24oCi0gICAgICAgICAgICAgICAgc2VsZi5z ZXJ2ZXIsCi0gICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgIHNl bGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lLAotICAgICAg ICAgICAgICAgICdwYXJ0aXRpb25lZCcsCi0gICAgICAgICAgICAgICAgc2VsZi5wYXJ0aXRpb25f dHlwZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNf dXRpbHMuY3JlYXRlX3RhYmxlKAotICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRi X25hbWUsCi0gICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAg ICBzZWxmLnRhYmxlX25hbWUpCi0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIi VGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIGFkZGVkIHRhYmxlIHVuZGVyIHNjaGVtYSBub2RlLiIi IgorICAgIGRlZiBzZXRfdXBfcGFydGl0aW9uX2FuZF9tb2RlKHNlbGYsIHBhcnRpdGlvbl90eXBl LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUpOgorCisgICAgICAgIHNl bGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlX2Zvcl9wYXJ0aXRpb24oCisg ICAgICAgICAgICBzZWxmLnNlcnZlciwKKyAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAg ICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUsCisg ICAgICAgICAgICAncGFydGl0aW9uZWQnLAorICAgICAgICAgICAgcGFydGl0aW9uX3R5cGUpCisK ICAgICAgICAgdGFibGVfcmVzcG9uc2UgPSB0YWJsZXNfdXRpbHMudmVyaWZ5X3RhYmxlKHNlbGYu c2VydmVyLCBzZWxmLmRiX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX2lkKQorCiAgICAgICAgIGlmIG5vdCB0YWJsZV9y ZXNwb25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhl IHRhYmxlIHRvIHVwZGF0ZS4iKQogCi0gICAgICAgIGlmIHNlbGYuaXNfcGFydGl0aW9uOgotICAg ICAgICAgICAgZGF0YSA9IHsiaWQiOiBzZWxmLnRhYmxlX2lkfQotICAgICAgICAgICAgdGFibGVz X3V0aWxzLnNldF9wYXJ0aXRpb25fZGF0YSgKLSAgICAgICAgICAgICAgICBzZWxmLnNlcnZlciwg c2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBzZWxmLnRhYmxlX25hbWUsCi0gICAgICAg ICAgICAgICAgc2VsZi5wYXJ0aXRpb25fdHlwZSwgZGF0YSwgc2VsZi5tb2RlKQotICAgICAgICBl bHNlOgotICAgICAgICAgICAgZGF0YSA9IHsKLSAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24i OiAiVGhpcyBpcyB0ZXN0IGNvbW1lbnQgZm9yIHRhYmxlIiwKLSAgICAgICAgICAgICAgICAiaWQi OiBzZWxmLnRhYmxlX2lkCi0gICAgICAgICAgICB9CisgICAgICAgIHNlbGYuZGF0YSA9IHsiaWQi OiBzZWxmLnRhYmxlX2lkfQorICAgICAgICB0YWJsZXNfdXRpbHMuc2V0X3BhcnRpdGlvbl9kYXRh KAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFt ZSwgc2VsZi50YWJsZV9uYW1lLAorICAgICAgICAgICAgcGFydGl0aW9uX3R5cGUsIHNlbGYuZGF0 YSwgbW9kZSkKKworICAgIEBweXRlc3QubWFyay51c2VmaXh0dXJlcygncmVxdWlyZV9kYXRhYmFz ZV9jb25uZWN0aW9uJykKKyAgICBkZWYgdGVzdF90YWJsZV9wdXQoc2VsZiwgY29udGV4dF9vZl90 ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSB0YWJsZSBwdXQgcmVxdWVzdCBp cyBzZW50IHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAg ICAgICAiIiIKKworICAgICAgICBzZWxmLnNldF91cChjb250ZXh0X29mX3Rlc3RzKQorCisgICAg ICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKAorICAgICAgICAg ICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgIHNlbGYuc2NoZW1hX25h bWUsCisgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUpCisKKyAgICAgICAgdGFibGVfcmVzcG9u c2UgPSB0YWJsZXNfdXRpbHMudmVyaWZ5X3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnRhYmxlX2lkKQorCisgICAgICAgIGlmIG5vdCB0YWJsZV9yZXNwb25zZToKKyAgICAgICAgICAg IHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHRhYmxlIHRvIHVwZGF0ZS4iKQor CisgICAgICAgIGRhdGEgPSB7CisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhpcyBpcyB0 ZXN0IGNvbW1lbnQgZm9yIHRhYmxlIiwKKyAgICAgICAgICAgICJpZCI6IHNlbGYudGFibGVfaWQK KyAgICAgICAgfQogCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KAogICAgICAg ICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCi0gICAgICAg ICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsK LSAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKyBzdHIoc2VsZi50YWJsZV9p ZCksCisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAg IHN0cihzZWxmLmRiX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQp ICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnRhYmxlX2lkKSwKICAgICAgICAgICAgIGRh dGE9anNvbi5kdW1wcyhkYXRhKSwgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxm LmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogCi0gICAgZGVmIHRlYXJE b3duKHNlbGYpOgotICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRh dGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNl bGYuZGJfaWQpCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFs LnRvKDIwMCkKKworICAgIEBweXRlc3QubWFyay51c2VmaXh0dXJlcygncmVxdWlyZV9kYXRhYmFz ZV9jb25uZWN0aW9uJykKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICdw YXJ0aXRpb25fdHlwZSwgbW9kZScsIFsKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAn cmFuZ2UnLAorICAgICAgICAgICAgICAgICdjcmVhdGUnCisgICAgICAgICAgICApLAorICAgICAg ICAgICAgKAorICAgICAgICAgICAgICAgICdsaXN0JywKKyAgICAgICAgICAgICAgICAnY3JlYXRl JworICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAncmFuZ2Un LAorICAgICAgICAgICAgICAgICdkZXRhY2gnCisgICAgICAgICAgICApLAorICAgICAgICAgICAg KAorICAgICAgICAgICAgICAgICdsaXN0JywKKyAgICAgICAgICAgICAgICAnZGV0YWNoJworICAg ICAgICAgICAgKSwKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAncmFuZ2UnLAorICAg ICAgICAgICAgICAgICdhdHRhY2gnCisgICAgICAgICAgICApLAorICAgICAgICAgICAgKAorICAg ICAgICAgICAgICAgICdsaXN0JywKKyAgICAgICAgICAgICAgICAnYXR0YWNoJworICAgICAgICAg ICAgKQorICAgICAgICBdCisgICAgKQorICAgIEBweXRlc3QubWFyay5za2lwX2lmX3Bvc3RncmVz X3ZlcnNpb24oeydiZWxvd192ZXJzaW9uJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQb3N0Z3Jlc1ZlcnNpb24udjEwfSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJFdmVudCB0cmlnZ2VycyBhcmUgbm90IHN1cHBvcnRlZCAi CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYnkgUEcxMCAiKQor ICAgIGRlZiB0ZXN0X3RhYmxlX3B1dF9wYXJ0aXRpb25lZChzZWxmLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb250ZXh0X29mX3Rlc3RzLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwYXJ0aXRpb25fdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbW9kZSk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSB0YWJsZSBw dXQgcmVxdWVzdCBpcyBzZW50IHRvCisgICAgICAgIGEgcGFydGl0aW9uIHRhYmxlCisgICAgICAg IGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKworICAgICAgICBzZWxmLnNldF91 cChjb250ZXh0X29mX3Rlc3RzKQorCisgICAgICAgIHNlbGYuc2V0X3VwX3BhcnRpdGlvbl9hbmRf bW9kZShwYXJ0aXRpb25fdHlwZSwgbW9kZSkKKworICAgICAgICByZXNwb25zZSA9IHNlbGYudGVz dGVyLnB1dCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkg KyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAg ICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1h X2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi50YWJsZV9pZCksCisgICAgICAgICAg ICBkYXRhPWpzb24uZHVtcHMoc2VsZi5kYXRhKSwgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorCisg ICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RhYmxlc19hY2xfc3FsLnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3Rlc3RzL3Rlc3RfdGFibGVzX2FjbF9zcWwucHkKaW5kZXggMzcxYTJmNTguLjk2NzYyYWIx IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZXNfYWNsX3NxbC5weQorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZXNfYWNsX3NxbC5weQpAQCAtOCw1NSArOCw2NyBA QAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKIAogaW1wb3J0IG9zCisKK2ltcG9ydCBweXRlc3QKK2Zyb20g Z3JhcHBhIGltcG9ydCBzaG91bGQKKworZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxz IGltcG9ydCB0ZXN0X3V0aWxzCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMudGVt cGxhdGVfaGVscGVyIGltcG9ydCBmaWxlX2FzX3RlbXBsYXRlCi1mcm9tIHJlZ3Jlc3Npb24ucHl0 aG9uX3Rlc3RfdXRpbHMuc3FsX3RlbXBsYXRlX3Rlc3RfYmFzZSBpbXBvcnQgXAotICAgIFNRTFRl bXBsYXRlVGVzdEJhc2UKLQotCi1jbGFzcyBUZXN0VGFibGVzQWNsU3FsKFNRTFRlbXBsYXRlVGVz dEJhc2UpOgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCJUZXN0IHF1ZXJ5IHJldHVybnMg dGhlIHBlcm1pc3Npb25zIHdoZW4gdGhlcmUgYXJlIHBlcm1pc3Npb25zIHNldCB1cCIKLSAgICAg ICAgICIgb24gdGhlIHRhYmxlIiwgZGljdCgpKQotICAgIF0KLQotICAgIGRlZiBfX2luaXRfXyhz ZWxmKToKLSAgICAgICAgc3VwZXIoVGVzdFRhYmxlc0FjbFNxbCwgc2VsZikuX19pbml0X18oKQot ICAgICAgICBzZWxmLnRhYmxlX2lkID0gLTEKLQotICAgIGRlZiB0ZXN0X3NldHVwKHNlbGYsIGNv bm5lY3Rpb24sIGN1cnNvcik6Ci0gICAgICAgIGN1cnNvci5leGVjdXRlKCJHUkFOVCBTRUxFQ1Qg T04gdGVzdF90YWJsZSBUTyBQVUJMSUMiKQotICAgICAgICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1 cnNvcigpCi0gICAgICAgIGN1cnNvci5leGVjdXRlKCJTRUxFQ1Qgb2lkIEZST00gcGdfY2xhc3Mg V0hFUkUgcmVsbmFtZT0ndGVzdF90YWJsZSciKQotICAgICAgICBzZWxmLnRhYmxlX2lkID0gY3Vy c29yLmZldGNob25lKClbMF0KLQotICAgIGRlZiBnZW5lcmF0ZV9zcWwoc2VsZiwgdmVyc2lvbik6 Ci0gICAgICAgIHRlbXBsYXRlX2ZpbGUgPSBzZWxmLmdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24s ICJhY2wuc3FsIikKLSAgICAgICAgdGVtcGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRlKHRlbXBsYXRl X2ZpbGUpCi0gICAgICAgIHB1YmxpY19zY2hlbWFfaWQgPSAyMjAwCi0gICAgICAgIHNxbCA9IHRl bXBsYXRlLnJlbmRlcihzY2lkPXB1YmxpY19zY2hlbWFfaWQsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0aWQ9c2VsZi50YWJsZV9pZCkKLSAgICAgICAgcmV0dXJuIHNxbAotCi0gICAg ZGVmIGFzc2VydGlvbnMoc2VsZiwgZmV0Y2hfcmVzdWx0LCBkZXNjcmlwdGlvbnMpOgotICAgICAg ICBwdWJsaWNfYWNscyA9IGxpc3QoCi0gICAgICAgICAgICBmaWx0ZXIobGFtYmRhIGFjbDogYWNs WzFdID09ICdQVUJMSUMnLCBmZXRjaF9yZXN1bHQpCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5h c3NlcnRFcXVhbChsZW4ocHVibGljX2FjbHMpLCAxKQogCi0gICAgICAgIG5ld19hY2xfbWFwID0g ZGljdCgKLSAgICAgICAgICAgIHppcChtYXAobGFtYmRhIGNvbHVtbjogY29sdW1uLm5hbWUsIGRl c2NyaXB0aW9ucyksIHB1YmxpY19hY2xzWzBdKQotICAgICAgICApCiAKLSAgICAgICAgc2VsZi5h c3NlcnRFcXVhbCgnUFVCTElDJywgbmV3X2FjbF9tYXBbJ2dyYW50ZWUnXSkKLSAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbChzZWxmLnNlcnZlclsndXNlcm5hbWUnXSwgbmV3X2FjbF9tYXBbJ2dyYW50 b3InXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgncmVsYWNsJywgbmV3X2FjbF9tYXBbJ2Rl ZnR5cGUnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ3InXSwgbmV3X2FjbF9tYXBbJ3By aXZpbGVnZXMnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbRmFsc2VdLCBuZXdfYWNsX21h cFsnZ3JhbnRhYmxlJ10pCi0gICAgICAgIHJldHVybiBwdWJsaWNfYWNscworQHB5dGVzdC5tYXJr LmRhdGFiYXNlCitjbGFzcyBUZXN0VGFibGVzQWNsU3FsOgorICAgIGRlZiB0ZXN0X2V4ZWN1dGVf YWNsX3NxbChzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdo ZW4gYWxsIHBhcmFtZXRlcnMgYXJlIHByZXNlbnQKKyAgICAgICAgSXQgZXhlY3V0ZXMgdGhlIHF1 ZXJ5IHRoYXQgcmV0cmlldmVzIHRoZSBBQ0wgZm9yIGEgdGFibGUKKyAgICAgICAgIiIiCisgICAg ICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHdpdGggdGVz dF91dGlscy5EYXRhYmFzZShzZXJ2ZXIpIGFzIChjb25uZWN0aW9uLCBkYXRhYmFzZV9uYW1lKToK KyAgICAgICAgICAgIHRlc3RfdXRpbHMuY3JlYXRlX3RhYmxlKHNlcnZlciwgZGF0YWJhc2VfbmFt ZSwgJ3Rlc3RfdGFibGUnKQorCisgICAgICAgICAgICBpZiBjb25uZWN0aW9uLnNlcnZlcl92ZXJz aW9uIDwgOTAxMDA6CisgICAgICAgICAgICAgICAgdmVyc2lvbnNfdG9fdGVzdCA9IFsnZGVmYXVs dCddCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHZlcnNpb25zX3RvX3Rlc3Qg PSBbJzkuMV9wbHVzJ10KKworICAgICAgICAgICAgY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3Io KQorICAgICAgICAgICAgY3Vyc29yLmV4ZWN1dGUoJ0dSQU5UIFNFTEVDVCBPTiB0ZXN0X3RhYmxl IFRPIFBVQkxJQycpCisgICAgICAgICAgICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisg ICAgICAgICAgICBjdXJzb3IuZXhlY3V0ZSgKKyAgICAgICAgICAgICAgICAnU0VMRUNUIG9pZCBG Uk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWU9XCd0ZXN0X3RhYmxlXCcnKQorICAgICAgICAgICAg dGFibGVfaWQgPSBjdXJzb3IuZmV0Y2hvbmUoKVswXQorCisgICAgICAgICAgICBmb3IgdmVyc2lv biBpbiB2ZXJzaW9uc190b190ZXN0OgorICAgICAgICAgICAgICAgIHRlbXBsYXRlX2ZpbGUgPSBz ZWxmLmdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24sICdhY2wuc3FsJykKKyAgICAgICAgICAgICAg ICB0ZW1wbGF0ZSA9IGZpbGVfYXNfdGVtcGxhdGUodGVtcGxhdGVfZmlsZSkKKyAgICAgICAgICAg ICAgICBwdWJsaWNfc2NoZW1hX2lkID0gMjIwMAorICAgICAgICAgICAgICAgIHNxbCA9IHRlbXBs YXRlLnJlbmRlcihzY2lkPXB1YmxpY19zY2hlbWFfaWQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRpZD10YWJsZV9pZCkKKworICAgICAgICAgICAgICAgIGN1cnNvciA9 IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICAgICAgICAgICAgICBjdXJzb3IuZXhlY3V0ZShzcWwp CisgICAgICAgICAgICAgICAgZmV0Y2hfcmVzdWx0ID0gY3Vyc29yLmZldGNoYWxsKCkKKworICAg ICAgICAgICAgICAgIHB1YmxpY19hY2xzID0gbGlzdCgKKyAgICAgICAgICAgICAgICAgICAgZmls dGVyKGxhbWJkYSBhY2w6IGFjbFsxXSA9PSAnUFVCTElDJywgZmV0Y2hfcmVzdWx0KQorICAgICAg ICAgICAgICAgICkKKyAgICAgICAgICAgICAgICBwdWJsaWNfYWNscyB8IHNob3VsZC5oYXZlLmxl bmd0aCgxKQorCisgICAgICAgICAgICAgICAgbmV3X2FjbF9tYXAgPSBkaWN0KAorICAgICAgICAg ICAgICAgICAgICB6aXAobWFwKGxhbWJkYSBjb2x1bW46IGNvbHVtbi5uYW1lLCBjdXJzb3IuZGVz Y3JpcHRpb24pLAorICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljX2FjbHNbMF0pCisgICAg ICAgICAgICAgICAgKQorCisgICAgICAgICAgICAgICAgbmV3X2FjbF9tYXBbJ2dyYW50ZWUnXSB8 IHNob3VsZC5iZS5lcXVhbC50bygnUFVCTElDJykKKyAgICAgICAgICAgICAgICBuZXdfYWNsX21h cFsnZ3JhbnRvciddIHwgc2hvdWxkLmJlLmVxdWFsLnRvKHNlcnZlclsndXNlcm5hbWUnXSkKKyAg ICAgICAgICAgICAgICBuZXdfYWNsX21hcFsnZGVmdHlwZSddIHwgc2hvdWxkLmJlLmVxdWFsLnRv KCdyZWxhY2wnKQorICAgICAgICAgICAgICAgIG5ld19hY2xfbWFwWydwcml2aWxlZ2VzJ10gfCBz aG91bGQuYmUuZXF1YWwudG8oWydyJ10pCisgICAgICAgICAgICAgICAgbmV3X2FjbF9tYXBbJ2dy YW50YWJsZSddIHwgc2hvdWxkLmJlLmVxdWFsLnRvKFtGYWxzZV0pCiAKICAgICBAc3RhdGljbWV0 aG9kCiAgICAgZGVmIGdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24sIGZpbGVuYW1lKToKICAgICAg ICAgcmV0dXJuIG9zLnBhdGguam9pbigKLSAgICAgICAgICAgIG9zLnBhdGguZGlybmFtZShfX2Zp bGVfXyksICIuLiIsICJ0ZW1wbGF0ZXMiLCAidGFibGUiLCAic3FsIiwKKyAgICAgICAgICAgIG9z LnBhdGguZGlybmFtZShfX2ZpbGVfXyksICcuLicsICd0ZW1wbGF0ZXMnLCAndGFibGUnLCAnc3Fs JywKICAgICAgICAgICAgIHZlcnNpb24sIGZpbGVuYW1lCiAgICAgICAgICkKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RhYmxlc19ub2RlX3NxbC5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0 cy90ZXN0X3RhYmxlc19ub2RlX3NxbC5weQppbmRleCAxMDg4OGY4Mi4uOGZkYjA2OGMgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RhYmxlc19ub2RlX3NxbC5weQorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvdGVzdHMvdGVzdF90YWJsZXNfbm9kZV9zcWwucHkKQEAgLTEwLDUwICsxMCw2NCBAQAog aW1wb3J0IG9zCiBpbXBvcnQgc3lzCiAKLWZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGls cy5zcWxfdGVtcGxhdGVfdGVzdF9iYXNlIGltcG9ydCBcCi0gICAgU1FMVGVtcGxhdGVUZXN0QmFz ZQoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCitmcm9tIHJlZ3Jl c3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMKIGZyb20gcmVncmVzc2lv bi5weXRob25fdGVzdF91dGlscy50ZW1wbGF0ZV9oZWxwZXIgaW1wb3J0IGZpbGVfYXNfdGVtcGxh dGUKIAogaWYgc3lzLnZlcnNpb25faW5mb1swXSA+PSAzOgogICAgIGxvbmcgPSBpbnQKIAogCi1j bGFzcyBUZXN0VGFibGVzTm9kZVNxbChTUUxUZW1wbGF0ZVRlc3RCYXNlKToKLSAgICBzY2VuYXJp b3MgPSBbCi0gICAgICAgICgiVGhpcyBzY2VuYXJpbyB0ZXN0cyB0aGF0IGFsbCBhcHBsaWNhYmxl IHNxbCB0ZW1wbGF0ZSB2ZXJzaW9ucyBjYW4gIgotICAgICAgICAgImZldGNoIHRhYmxlIG5hbWVz IiwgZGljdCgpKQotICAgIF0KK0BweXRlc3QubWFyay5kYXRhYmFzZQorY2xhc3MgVGVzdFRhYmxl c05vZGVTcWw6CisgICAgZGVmIHRlc3RfcmV0cmlldmFsX29mX2FsbF90YWJsZV9ub2RlKHNlbGYs IGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBhbGwgcGFyYW1l dGVycyBhcmUgcHJlc2VudAorICAgICAgICBJdCBleGVjdXRlcyBhIHF1ZXJ5IGluIHRoZSBkYXRh YmFzZSB0byByZXRyaWV2ZSBhbGwgdGFibGUgbmFtZXMKKyAgICAgICAgIiIiCisgICAgICAgIHNl cnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisKKyAgICAgICAgd2l0aCB0ZXN0X3V0 aWxzLkRhdGFiYXNlKHNlcnZlcikgYXMgKGNvbm5lY3Rpb24sIGRhdGFiYXNlX25hbWUpOgorICAg ICAgICAgICAgdGVzdF91dGlscy5jcmVhdGVfdGFibGUoc2VydmVyLCBkYXRhYmFzZV9uYW1lLCAn dGVzdF90YWJsZScpCiAKLSAgICBkZWYgdGVzdF9zZXR1cChzZWxmLCBjb25uZWN0aW9uLCBjdXJz b3IpOgotICAgICAgICBwYXNzCisgICAgICAgICAgICBpZiBjb25uZWN0aW9uLnNlcnZlcl92ZXJz aW9uIDwgOTAxMDA6CisgICAgICAgICAgICAgICAgdmVyc2lvbnNfdG9fdGVzdCA9IFsnZGVmYXVs dCddCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHZlcnNpb25zX3RvX3Rlc3Qg PSBbJzkuMV9wbHVzJ10KIAotICAgIGRlZiBnZW5lcmF0ZV9zcWwoc2VsZiwgdmVyc2lvbik6Ci0g ICAgICAgIHRlbXBsYXRlX2ZpbGUgPSBzZWxmLmdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24sICJu b2Rlcy5zcWwiKQotICAgICAgICB0ZW1wbGF0ZSA9IGZpbGVfYXNfdGVtcGxhdGUodGVtcGxhdGVf ZmlsZSkKLSAgICAgICAgcHVibGljX3NjaGVtYV9pZCA9IDIyMDAKLSAgICAgICAgc3FsID0gdGVt cGxhdGUucmVuZGVyKHNjaWQ9cHVibGljX3NjaGVtYV9pZCkKLSAgICAgICAgcmV0dXJuIHNxbAor ICAgICAgICAgICAgZm9yIHZlcnNpb24gaW4gdmVyc2lvbnNfdG9fdGVzdDoKKyAgICAgICAgICAg ICAgICB0ZW1wbGF0ZV9maWxlID0gc2VsZi5nZXRfdGVtcGxhdGVfZmlsZSgKKyAgICAgICAgICAg ICAgICAgICAgdmVyc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgJ25vZGVzLnNxbCcpCisgICAg ICAgICAgICAgICAgdGVtcGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRlKHRlbXBsYXRlX2ZpbGUpCisg ICAgICAgICAgICAgICAgcHVibGljX3NjaGVtYV9pZCA9IDIyMDAKKyAgICAgICAgICAgICAgICBz cWwgPSB0ZW1wbGF0ZS5yZW5kZXIoc2NpZD1wdWJsaWNfc2NoZW1hX2lkKQogCi0gICAgZGVmIGFz c2VydGlvbnMoc2VsZiwgZmV0Y2hfcmVzdWx0LCBkZXNjcmlwdGlvbnMpOgorICAgICAgICAgICAg ICAgIGN1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICAgICAgICAgICAgICBjdXJzb3Iu ZXhlY3V0ZShzcWwpCisgICAgICAgICAgICAgICAgZmV0Y2hfcmVzdWx0ID0gY3Vyc29yLmZldGNo YWxsKCkKIAotICAgICAgICBmaXJzdF9yb3cgPSB7fQotICAgICAgICBmb3IgaW5kZXgsIGRlc2Ny aXB0aW9uIGluIGVudW1lcmF0ZShkZXNjcmlwdGlvbnMpOgotICAgICAgICAgICAgZmlyc3Rfcm93 W2Rlc2NyaXB0aW9uLm5hbWVdID0gZmV0Y2hfcmVzdWx0WzBdW2luZGV4XQorICAgICAgICAgICAg ICAgIGZpcnN0X3JvdyA9IHt9CisgICAgICAgICAgICAgICAgZm9yIGluZGV4LCBkZXNjcmlwdGlv biBpbiBlbnVtZXJhdGUoY3Vyc29yLmRlc2NyaXB0aW9uKToKKyAgICAgICAgICAgICAgICAgICAg Zmlyc3Rfcm93W2Rlc2NyaXB0aW9uLm5hbWVdID0gZmV0Y2hfcmVzdWx0WzBdW2luZGV4XQogCi0g ICAgICAgIG9pZCA9IGZpcnN0X3Jvd1snb2lkJ10KLSAgICAgICAgbmFtZSA9IGZpcnN0X3Jvd1sn bmFtZSddCi0gICAgICAgIHRyaWdnZXJjb3VudCA9IGZpcnN0X3Jvd1sndHJpZ2dlcmNvdW50J10K LSAgICAgICAgaGFzX2VuYWJsZV90cmlnZ2VycyA9IGZpcnN0X3Jvd1snaGFzX2VuYWJsZV90cmln Z2VycyddCisgICAgICAgICAgICAgICAgb2lkID0gZmlyc3Rfcm93WydvaWQnXQorICAgICAgICAg ICAgICAgIG5hbWUgPSBmaXJzdF9yb3dbJ25hbWUnXQorICAgICAgICAgICAgICAgIHRyaWdnZXJj b3VudCA9IGZpcnN0X3Jvd1sndHJpZ2dlcmNvdW50J10KKyAgICAgICAgICAgICAgICBoYXNfZW5h YmxlX3RyaWdnZXJzID0gZmlyc3Rfcm93WydoYXNfZW5hYmxlX3RyaWdnZXJzJ10KIAotICAgICAg ICBzZWxmLmFzc2VydElzTm90Tm9uZShsb25nKG9pZCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWwoJ3Rlc3RfdGFibGUnLCBuYW1lKQotICAgICAgICAjIHRyaWdnZXJjb3VudCBpcyBzb21ldGlt ZXMgcmV0dXJuZWQgYXMgYSBzdHJpbmcgZm9yIHNvbWUgcmVhc29uCi0gICAgICAgIHNlbGYuYXNz ZXJ0RXF1YWwoMCwgbG9uZyh0cmlnZ2VyY291bnQpKQotICAgICAgICBzZWxmLmFzc2VydElzTm90 Tm9uZShsb25nKGhhc19lbmFibGVfdHJpZ2dlcnMpKQorICAgICAgICAgICAgICAgIGxvbmcob2lk KSB8IHNob3VsZC5ub3RfYmUubm9uZQorICAgICAgICAgICAgICAgIG5hbWUgfCBzaG91bGQuYmUu ZXF1YWwudG8oJ3Rlc3RfdGFibGUnKQorICAgICAgICAgICAgICAgICMgdHJpZ2dlcmNvdW50IGlz IHNvbWV0aW1lcyByZXR1cm5lZCBhcyBhCisgICAgICAgICAgICAgICAgIyBzdHJpbmcgZm9yIHNv bWUgcmVhc29uCisgICAgICAgICAgICAgICAgbG9uZyh0cmlnZ2VyY291bnQpIHwgc2hvdWxkLmJl LmVxdWFsLnRvKDApCisgICAgICAgICAgICAgICAgbG9uZyhoYXNfZW5hYmxlX3RyaWdnZXJzKSB8 IHNob3VsZC5ub3RfYmUubm9uZQogCiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBnZXRfdGVt cGxhdGVfZmlsZSh2ZXJzaW9uLCBmaWxlbmFtZSk6CiAgICAgICAgIHJldHVybiBvcy5wYXRoLmpv aW4oCi0gICAgICAgICAgICBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4iLCAidGVtcGxh dGVzIiwgInRhYmxlIiwgInNxbCIsCisgICAgICAgICAgICBvcy5wYXRoLmRpcm5hbWUoX19maWxl X18pLCAnLi4nLCAndGVtcGxhdGVzJywgJ3RhYmxlJywgJ3NxbCcsCiAgICAgICAgICAgICB2ZXJz aW9uLCBmaWxlbmFtZQogICAgICAgICApCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVz dF90YWJsZXNfcHJvcGVydGllc19zcWwucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZXNf cHJvcGVydGllc19zcWwucHkKaW5kZXggYzFiODIwNmIuLjAwMDQ2YTAyIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZXNfcHJvcGVydGllc19zcWwucHkKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3Rlc3RzL3Rlc3RfdGFibGVzX3Byb3BlcnRpZXNfc3FsLnB5CkBAIC0xMCw2NiArMTAsNzYg QEAKIGltcG9ydCBvcwogaW1wb3J0IHN5cwogCi1mcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3Rf dXRpbHMudGVtcGxhdGVfaGVscGVyIGltcG9ydCBmaWxlX2FzX3RlbXBsYXRlCi1mcm9tIHJlZ3Jl c3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMuc3FsX3RlbXBsYXRlX3Rlc3RfYmFzZSBpbXBvcnQgXAot ICAgIFNRTFRlbXBsYXRlVGVzdEJhc2UKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9y dCBzaG91bGQKIAorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0 X3V0aWxzCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMudGVtcGxhdGVfaGVscGVy IGltcG9ydCBmaWxlX2FzX3RlbXBsYXRlCiAKIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPj0gMzoK ICAgICBsb25nID0gaW50CiAKIAotY2xhc3MgVGVzdFRhYmxlc1Byb3BlcnRpZXNTcWwoU1FMVGVt cGxhdGVUZXN0QmFzZSk6Ci0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoIlRoaXMgc2NlbmFy aW8gdGVzdHMgdGhhdCBhbGwgYXBwbGljYWJsZSBzcWwgdGVtcGxhdGUgdmVyc2lvbnMgY2FuICIK LSAgICAgICAgICJmZXRjaCBzb21lIGRkbCIsIGRpY3QoKSkKLSAgICBdCitAcHl0ZXN0Lm1hcmsu ZGF0YWJhc2UKK2NsYXNzIFRlc3RUYWJsZXNQcm9wZXJ0aWVzU3FsOgorICAgIGRlZiB0ZXN0X3Rh YmxlX3Byb3BlcnRpZXNfc3FsKHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIK KyAgICAgICAgV2hlbiBhbGwgcGFyYW1ldGVycyBhcmUgcHJlc2VudAorICAgICAgICBJdCBjb3Jy ZWN0bHkgZ2VuZXJhdGVzIHRoZSBTUUwKKyAgICAgICAgQW5kIGV4ZWN1dGVzIGFnYWluc3QgdGhl IGRhdGFiYXNlCisgICAgICAgICIiIgorICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3Rz WydzZXJ2ZXInXQorICAgICAgICB3aXRoIHRlc3RfdXRpbHMuRGF0YWJhc2Uoc2VydmVyKSBhcyAo Y29ubmVjdGlvbiwgZGF0YWJhc2VfbmFtZSk6CisgICAgICAgICAgICB0ZXN0X3V0aWxzLmNyZWF0 ZV90YWJsZShzZXJ2ZXIsIGRhdGFiYXNlX25hbWUsICd0ZXN0X3RhYmxlJykKIAotICAgIGRlZiBf X2luaXRfXyhzZWxmKToKLSAgICAgICAgc3VwZXIoVGVzdFRhYmxlc1Byb3BlcnRpZXNTcWwsIHNl bGYpLl9faW5pdF9fKCkKLSAgICAgICAgc2VsZi5kYXRhYmFzZV9pZCA9IC0xCi0gICAgICAgIHNl bGYubGFzdF9zeXN0ZW1fb2lkID0gLTEKLSAgICAgICAgc2VsZi50YWJsZV9pZCA9IC0xCisgICAg ICAgICAgICBpZiBjb25uZWN0aW9uLnNlcnZlcl92ZXJzaW9uIDwgOTAxMDA6CisgICAgICAgICAg ICAgICAgdmVyc2lvbnNfdG9fdGVzdCA9IFsnZGVmYXVsdCddCisgICAgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgICAgIHZlcnNpb25zX3RvX3Rlc3QgPSBbJzkuMV9wbHVzJ10KIAotICAgIGRl ZiBhc3NlcnRpb25zKHNlbGYsIGZldGNoX3Jlc3VsdCwgZGVzY3JpcHRpb25zKToKKyAgICAgICAg ICAgIGN1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICAgICAgICAgIGN1cnNvci5leGVj dXRlKHUiIiIKKyAgICAgICAgICAgICAgICBTRUxFQ1QKKyAgICAgICAgICAgICAgICAgICAgZGIu b2lkIGFzIGRpZCwgZGF0bGFzdHN5c29pZAorICAgICAgICAgICAgICAgIEZST00KKyAgICAgICAg ICAgICAgICAgICAgcGdfZGF0YWJhc2UgZGIKKyAgICAgICAgICAgICAgICBXSEVSRSBkYi5kYXRu YW1lID0gJ3swfSciIiIuZm9ybWF0KGRhdGFiYXNlX25hbWUpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICApCisgICAgICAgICAgICBkYXRhYmFzZV9pZCwgbGFzdF9zeXN0ZW1fb2lkID0gY3Vy c29yLmZldGNob25lKCkKIAotICAgICAgICBmaXJzdF9yb3cgPSB7fQotICAgICAgICBmb3IgaW5k ZXgsIGRlc2NyaXB0aW9uIGluIGVudW1lcmF0ZShkZXNjcmlwdGlvbnMpOgotICAgICAgICAgICAg Zmlyc3Rfcm93W2Rlc2NyaXB0aW9uLm5hbWVdID0gZmV0Y2hfcmVzdWx0WzBdW2luZGV4XQorICAg ICAgICAgICAgY3Vyc29yLmV4ZWN1dGUoCisgICAgICAgICAgICAgICAgJ1NFTEVDVCBvaWQgRlJP TSBwZ19jbGFzcyB3aGVyZSByZWxuYW1lPVwndGVzdF90YWJsZVwnJykKKyAgICAgICAgICAgIHRh YmxlX2lkID0gY3Vyc29yLmZldGNob25lKClbMF0KIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFs KCd0ZXN0X3RhYmxlJywgZmlyc3Rfcm93WyduYW1lJ10pCi0gICAgICAgICMgdHJpZ2dlcmNvdW50 IGlzIHNvbWV0aW1lcyByZXR1cm5lZCBhcyBhIHN0cmluZyBmb3Igc29tZSByZWFzb24KLSAgICAg ICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsb25nKGZpcnN0X3Jvd1sndHJpZ2dlcmNvdW50J10pKQot ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIGZpcnN0X3Jvd1sndHlwbmFtZSddKQotICAg ICAgICBzZWxmLmFzc2VydEVxdWFsKFtdLCBmaXJzdF9yb3dbJ2NvbGxfaW5oZXJpdHMnXSkKKyAg ICAgICAgICAgIGZvciB2ZXJzaW9uIGluIHZlcnNpb25zX3RvX3Rlc3Q6CisgICAgICAgICAgICAg ICAgdGVtcGxhdGVfZmlsZSA9IFwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5nZXRfdGVtcGxh dGVfZmlsZSh2ZXJzaW9uLCAncHJvcGVydGllcy5zcWwnKQorICAgICAgICAgICAgICAgIHRlbXBs YXRlID0gZmlsZV9hc190ZW1wbGF0ZSh0ZW1wbGF0ZV9maWxlKQorICAgICAgICAgICAgICAgIHB1 YmxpY19zY2hlbWFfaWQgPSAyMjAwCisgICAgICAgICAgICAgICAgc3FsID0gdGVtcGxhdGUucmVu ZGVyKHNjaWQ9cHVibGljX3NjaGVtYV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGlkPWRhdGFiYXNlX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkYXRsYXN0c3lzb2lkPWxhc3Rfc3lzdGVtX29pZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGlkPXRhYmxlX2lkCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICkKIAotICAgIGRlZiBnZW5lcmF0ZV9zcWwoc2VsZiwgdmVyc2lvbik6 Ci0gICAgICAgIHRlbXBsYXRlX2ZpbGUgPSBzZWxmLmdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24s ICJwcm9wZXJ0aWVzLnNxbCIpCi0gICAgICAgIHRlbXBsYXRlID0gZmlsZV9hc190ZW1wbGF0ZSh0 ZW1wbGF0ZV9maWxlKQotICAgICAgICBwdWJsaWNfc2NoZW1hX2lkID0gMjIwMAotICAgICAgICBz cWwgPSB0ZW1wbGF0ZS5yZW5kZXIoc2NpZD1wdWJsaWNfc2NoZW1hX2lkLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGlkPXNlbGYuZGF0YWJhc2VfaWQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkYXRsYXN0c3lzb2lkPXNlbGYubGFzdF9zeXN0ZW1fb2lkLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGlkPXNlbGYudGFibGVfaWQKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICkKLSAgICAgICAgcmV0dXJuIHNxbAorICAgICAgICAgICAgICAgIGN1 cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICAgICAgICAgICAgICBjdXJzb3IuZXhlY3V0 ZShzcWwpCisgICAgICAgICAgICAgICAgZmV0Y2hfcmVzdWx0ID0gY3Vyc29yLmZldGNoYWxsKCkK IAotICAgIGRlZiB0ZXN0X3NldHVwKHNlbGYsIGNvbm5lY3Rpb24sIGN1cnNvcik6Ci0gICAgICAg IGN1cnNvci5leGVjdXRlKHUiIiIKLSAgICAgICAgICAgIFNFTEVDVAotICAgICAgICAgICAgICAg IGRiLm9pZCBhcyBkaWQsIGRhdGxhc3RzeXNvaWQKLSAgICAgICAgICAgIEZST00KLSAgICAgICAg ICAgICAgICBwZ19kYXRhYmFzZSBkYgotICAgICAgICAgICAgV0hFUkUgZGIuZGF0bmFtZSA9ICd7 MH0nIiIiLmZvcm1hdChzZWxmLmRhdGFiYXNlX25hbWUpCi0gICAgICAgICAgICAgICAgICAgICAg ICkKLSAgICAgICAgc2VsZi5kYXRhYmFzZV9pZCwgc2VsZi5sYXN0X3N5c3RlbV9vaWQgPSBjdXJz b3IuZmV0Y2hvbmUoKQorICAgICAgICAgICAgICAgIGZpcnN0X3JvdyA9IHt9CisgICAgICAgICAg ICAgICAgZm9yIGluZGV4LCBkZXNjcmlwdGlvbiBpbiBlbnVtZXJhdGUoY3Vyc29yLmRlc2NyaXB0 aW9uKToKKyAgICAgICAgICAgICAgICAgICAgZmlyc3Rfcm93W2Rlc2NyaXB0aW9uLm5hbWVdID0g ZmV0Y2hfcmVzdWx0WzBdW2luZGV4XQogCi0gICAgICAgIGN1cnNvci5leGVjdXRlKCJTRUxFQ1Qg b2lkIEZST00gcGdfY2xhc3Mgd2hlcmUgcmVsbmFtZT0ndGVzdF90YWJsZSciKQotICAgICAgICBz ZWxmLnRhYmxlX2lkID0gY3Vyc29yLmZldGNob25lKClbMF0KKyAgICAgICAgICAgICAgICBmaXJz dF9yb3dbJ25hbWUnXSB8IHNob3VsZC5iZS5lcXVhbC50bygndGVzdF90YWJsZScpCisgICAgICAg ICAgICAgICAgIyB0cmlnZ2VyY291bnQgaXMgc29tZXRpbWVzIHJldHVybmVkIGFzIGEKKyAgICAg ICAgICAgICAgICAjIHN0cmluZyBmb3Igc29tZSByZWFzb24KKyAgICAgICAgICAgICAgICBsb25n KGZpcnN0X3Jvd1sndHJpZ2dlcmNvdW50J10pIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDApCisgICAg ICAgICAgICAgICAgZmlyc3Rfcm93Wyd0eXBuYW1lJ10gfCBzaG91bGQuYmUubm9uZQorICAgICAg ICAgICAgICAgIGZpcnN0X3Jvd1snY29sbF9pbmhlcml0cyddIHwgc2hvdWxkLmJlLmVtcHR5CiAK ICAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVmIGdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24sIGZp bGVuYW1lKToKICAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbigKLSAgICAgICAgICAgIG9zLnBh dGguZGlybmFtZShfX2ZpbGVfXyksICIuLiIsICJ0ZW1wbGF0ZXMiLCAidGFibGUiLCAic3FsIiwK KyAgICAgICAgICAgIG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICcuLicsICd0ZW1wbGF0ZXMn LCAndGFibGUnLCAnc3FsJywKICAgICAgICAgICAgIHZlcnNpb24sIGZpbGVuYW1lCiAgICAgICAg ICkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RlbXBsYXRlX2NyZWF0ZS5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RlbXBsYXRlX2NyZWF0ZS5weQppbmRleCA3MWYxNDRkNy4u ZjhjMTc4ZGQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RlbXBsYXRlX2NyZWF0 ZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90ZW1wbGF0ZV9jcmVhdGUucHkKQEAgLTEx LDk3ICsxMSwxMDQgQEAgaW1wb3J0IG9zCiBpbXBvcnQgcmUKIAogZnJvbSBmbGFzayBpbXBvcnQg Rmxhc2ssIHJlbmRlcl90ZW1wbGF0ZQorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAogZnJvbSBq aW5qYTIgaW1wb3J0IEZpbGVTeXN0ZW1Mb2FkZXIsIENob2ljZUxvYWRlcgogCiBmcm9tIGNvbmZp ZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKIGZyb20gcGdhZG1pbiBpbXBvcnQgVmVyc2lvbmVk VGVtcGxhdGVMb2FkZXIKIGZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2 ZXIKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLQot Ci1jbGFzcyBUZXN0VGVtcGxhdGVDcmVhdGUoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgIHNjZW5h cmlvcyA9IFsKLSAgICAgICAgKAotICAgICAgICAgICAgJ1doZW4gcmVuZGVyaW5nIEdyZWVuUGx1 bSA1LjMgdGVtcGxhdGUsICcKLSAgICAgICAgICAgICd3aGVuIG5vIGRpc3RyaWJ1dGlvbiBpcyBw cmVzZW50LCAnCi0gICAgICAgICAgICAnd2hlbiBubyBwcmltYXJ5IGtleSBpcyBwcmVzZW50LCAn Ci0gICAgICAgICAgICAnaXQgcmV0dXJucyAiRElTVFJJQlVURUQgUkFORE9NTFkiJywKLSAgICAg ICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgICAgdGVtcGxhdGVfcGF0aD0ndGFibGUvc3FsL2dw ZGJfNS4wX3BsdXMvY3JlYXRlLnNxbCcsCi0gICAgICAgICAgICAgICAgaW5wdXRfcGFyYW1ldGVy cz1kaWN0KAotICAgICAgICAgICAgICAgICAgICBkYXRhPWRpY3QoKQotICAgICAgICAgICAgICAg ICksCi0gICAgICAgICAgICAgICAgZXhwZWN0ZWRfaW5fcmV0dXJuX3ZhbHVlPSdESVNUUklCVVRF RCBSQU5ET01MWScsCi0gICAgICAgICAgICAgICAgZXhwZWN0ZWRfbm90X2luX3JldHVybl92YWx1 ZT0nRElTVFJJQlVURUQgQlkgJworCisKK2NsYXNzIFRlc3RUZW1wbGF0ZUNyZWF0ZToKKyAgICBk ZWYgdGVzdF90ZW1wbGF0ZV9jcmVhdGUoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGVu IHJlbmRlcmluZyBHcmVlblBsdW0gNS4zIHRlbXBsYXRlCisgICAgICAgIHdoZW4gbm8gZGlzdHJp YnV0aW9uIGlzIHByZXNlbnQKKyAgICAgICAgd2hlbiBubyBwcmltYXJ5IGtleSBpcyBwcmVzZW50 CisgICAgICAgIGl0IHJldHVybnMgIkRJU1RSSUJVVEVEIFJBTkRPTUxZIgorICAgICAgICAiIiIK KworICAgICAgICBzZWxmLmxvYWRlciA9IFZlcnNpb25lZFRlbXBsYXRlTG9hZGVyKEZha2VBcHAo KSkKKworICAgICAgICB3aXRoIEZha2VBcHAoKS5hcHBfY29udGV4dCgpOgorICAgICAgICAgICAg cmVzdWx0ID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICd0YWJsZS9zcWwvZ3Bk Yl81LjBfcGx1cy9jcmVhdGUuc3FsJywKKyAgICAgICAgICAgICAgICBkYXRhPWRpY3QoKQorICAg ICAgICAgICAgKQorICAgICAgICAgICAgcmVzdWx0X2JlYXV0aWZpZWQgPSByZS5zdWIoCisgICAg ICAgICAgICAgICAgJyArJywgJyAnLCBzdHIocmVzdWx0KS5yZXBsYWNlKCJcbiIsICIgIikuc3Ry aXAoKSkKKworICAgICAgICAgICAgcmVzdWx0X2JlYXV0aWZpZWQgfCBzaG91bGQuY29udGFpbign RElTVFJJQlVURUQgUkFORE9NTFknKQorICAgICAgICAgICAgcmVzdWx0X2JlYXV0aWZpZWQgfCBz aG91bGQudG9fbm90LmNvbnRhaW4oCisgICAgICAgICAgICAgICAgJ0RJU1RSSUJVVEVEIEJZICcK ICAgICAgICAgICAgICkKLSAgICAgICAgKSwKLSAgICAgICAgKAotICAgICAgICAgICAgJ1doZW4g cmVuZGVyaW5nIEdyZWVuUGx1bSA1LjMgdGVtcGxhdGUsICcKLSAgICAgICAgICAgICd3aGVuIG5v IGRpc3RyaWJ1dGlvbiBpcyBwcmVzZW50LCAnCi0gICAgICAgICAgICAnd2hlbiBwcmltYXJ5IGtl eSBpcyBwcmVzZW50LCAnCi0gICAgICAgICAgICAnaXQgcmV0dXJucyAiRElTVFJJQlVURUQgQlkg KGF0dHJfcHJpbWFyeV9rZXkpIicsCi0gICAgICAgICAgICBkaWN0KAotICAgICAgICAgICAgICAg IHRlbXBsYXRlX3BhdGg9J3RhYmxlL3NxbC9ncGRiXzUuMF9wbHVzL2NyZWF0ZS5zcWwnLAotICAg ICAgICAgICAgICAgIGlucHV0X3BhcmFtZXRlcnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAg ZGF0YT1kaWN0KAotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9rZXk9WwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbHVtbnM9W2RpY3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b2x1bW49J2F0dHJfcHJpbWFyeV9rZXlfY29sdW1uXzEnCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICksIGRpY3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b2x1bW49J2F0dHJfcHJpbWFyeV9rZXlfY29sdW1uXzInCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICldCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAg ICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgKSwK LSAgICAgICAgICAgICAgICBleHBlY3RlZF9pbl9yZXR1cm5fdmFsdWU9J0RJU1RSSUJVVEVEIEJZ ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyhhdHRyX3ByaW1h cnlfa2V5X2NvbHVtbl8xLCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdhdHRyX3ByaW1hcnlfa2V5X2NvbHVtbl8yKScsCi0gICAgICAgICAgICAgICAgZXhwZWN0 ZWRfbm90X2luX3JldHVybl92YWx1ZT0nRElTVFJJQlVURUQgUkFORE9NTFknCisKKyAgICBkZWYg dGVzdF90ZW1wbGF0ZV9jcmVhdGVfcHJpbWFyeV9rZXkoc2VsZik6CisgICAgICAgICIiIgorICAg ICAgICBXaGVuIHJlbmRlcmluZyBHcmVlblBsdW0gNS4zIHRlbXBsYXRlCisgICAgICAgIHdoZW4g bm8gZGlzdHJpYnV0aW9uIGlzIHByZXNlbnQKKyAgICAgICAgd2hlbiBwcmltYXJ5IGtleSBpcyBw cmVzZW50CisgICAgICAgIGl0IHJldHVybnMgIkRJU1RSSUJVVEVEIEJZIChhdHRyX3ByaW1hcnlf a2V5KSIKKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VsZi5sb2FkZXIgPSBWZXJzaW9uZWRUZW1w bGF0ZUxvYWRlcihGYWtlQXBwKCkpCisKKyAgICAgICAgd2l0aCBGYWtlQXBwKCkuYXBwX2NvbnRl eHQoKToKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAg ICAgICAndGFibGUvc3FsL2dwZGJfNS4wX3BsdXMvY3JlYXRlLnNxbCcsCisgICAgICAgICAgICAg ICAgZGF0YT1kaWN0KAorICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2tleT1bCisgICAgICAg ICAgICAgICAgICAgICAgICBkaWN0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVt bnM9W2RpY3QoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbj0nYXR0cl9w cmltYXJ5X2tleV9jb2x1bW5fMScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApLCBkaWN0 KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW49J2F0dHJfcHJpbWFyeV9r ZXlfY29sdW1uXzInCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKV0KKyAgICAgICAgICAg ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICkK ICAgICAgICAgICAgICkKLSAgICAgICAgKSwKLSAgICAgICAgKAotICAgICAgICAgICAgJ1doZW4g cmVuZGVyaW5nIEdyZWVuUGx1bSA1LjMgdGVtcGxhdGUsICcKLSAgICAgICAgICAgICd3aGVuIGRp c3RyaWJ1dGlvbiBpcyBwcmVzZW50LCAnCi0gICAgICAgICAgICAnaXQgcmV0dXJucyAiRElTVFJJ QlVURUQgQlkgKGF0dHIxLCBhdHRyMiwgYXR0cjQpIicsCi0gICAgICAgICAgICBkaWN0KAotICAg ICAgICAgICAgICAgIHRlbXBsYXRlX3BhdGg9J3RhYmxlL3NxbC9ncGRiXzUuMF9wbHVzL2NyZWF0 ZS5zcWwnLAotICAgICAgICAgICAgICAgIGlucHV0X3BhcmFtZXRlcnM9ZGljdCgKLSAgICAgICAg ICAgICAgICAgICAgZGF0YT1kaWN0KAotICAgICAgICAgICAgICAgICAgICAgICAgZGlzdHJpYnV0 aW9uPVsxLCAyLCA0XSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM9WwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsnbmFtZSc6ICdhdHRyMSd9LAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsnbmFtZSc6ICdhdHRyMid9LAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsnbmFtZSc6ICdhdHRyMyd9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsnbmFt ZSc6ICdhdHRyNCd9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsnbmFtZSc6ICdhdHRy NSd9LAotICAgICAgICAgICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgICAgICApCi0g ICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBleHBlY3RlZF9pbl9yZXR1cm5fdmFs dWU9J0RJU1RSSUJVVEVEIEJZICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJyhhdHRyMSwgYXR0cjIsIGF0dHI0KScsCi0gICAgICAgICAgICAgICAgZXhwZWN0ZWRf bm90X2luX3JldHVybl92YWx1ZT0nRElTVFJJQlVURUQgUkFORE9NTFknCisgICAgICAgICAgICBy ZXN1bHRfYmVhdXRpZmllZCA9IHJlLnN1YigKKyAgICAgICAgICAgICAgICAnICsnLCAnICcsIHN0 cihyZXN1bHQpLnJlcGxhY2UoIlxuIiwgIiAiKS5zdHJpcCgpKQorCisgICAgICAgICAgICByZXN1 bHRfYmVhdXRpZmllZCB8IHNob3VsZC5jb250YWluKCdESVNUUklCVVRFRCBCWSAnCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoYXR0cl9wcmltYXJ5X2tl eV9jb2x1bW5fMSwgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnYXR0cl9wcmltYXJ5X2tleV9jb2x1bW5fMiknKQorICAgICAgICAgICAgcmVzdWx0X2Jl YXV0aWZpZWQgfCBzaG91bGQudG9fbm90LmNvbnRhaW4oCisgICAgICAgICAgICAgICAgJ0RJU1RS SUJVVEVEIFJBTkRPTUxZJwogICAgICAgICAgICAgKQotICAgICAgICApLAotICAgIF0KIAotICAg IGRlZiBzZXRVcChzZWxmKToKKyAgICBkZWYgdGVzdF90ZW1wbGF0ZV9jcmVhdGVfZGlzdHJpYnV0 aW9uKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiByZW5kZXJpbmcgR3JlZW5QbHVt IDUuMyB0ZW1wbGF0ZQorICAgICAgICB3aGVuIGRpc3RyaWJ1dGlvbiBpcyBwcmVzZW50CisgICAg ICAgIGl0IHJldHVybnMgIkRJU1RSSUJVVEVEIEJZIChhdHRyMSwgYXR0cjIsIGF0dHI0KSIKKyAg ICAgICAgIiIiCisKICAgICAgICAgc2VsZi5sb2FkZXIgPSBWZXJzaW9uZWRUZW1wbGF0ZUxvYWRl cihGYWtlQXBwKCkpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKICAgICAgICAgd2l0aCBGYWtl QXBwKCkuYXBwX2NvbnRleHQoKToKICAgICAgICAgICAgIHJlc3VsdCA9IHJlbmRlcl90ZW1wbGF0 ZSgKLSAgICAgICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGgsICoqc2VsZi5pbnB1dF9wYXJh bWV0ZXJzKQorICAgICAgICAgICAgICAgICd0YWJsZS9zcWwvZ3BkYl81LjBfcGx1cy9jcmVhdGUu c3FsJywKKyAgICAgICAgICAgICAgICBkYXRhPWRpY3QoCisgICAgICAgICAgICAgICAgICAgIGRp c3RyaWJ1dGlvbj1bMSwgMiwgNF0sCisgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM9WworICAg ICAgICAgICAgICAgICAgICAgICAgeyduYW1lJzogJ2F0dHIxJ30sCisgICAgICAgICAgICAgICAg ICAgICAgICB7J25hbWUnOiAnYXR0cjInfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsnbmFt ZSc6ICdhdHRyMyd9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyduYW1lJzogJ2F0dHI0J30s CisgICAgICAgICAgICAgICAgICAgICAgICB7J25hbWUnOiAnYXR0cjUnfSwKKyAgICAgICAgICAg ICAgICAgICAgXQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKICAgICAgICAgICAg IHJlc3VsdF9iZWF1dGlmaWVkID0gcmUuc3ViKAogICAgICAgICAgICAgICAgICcgKycsICcgJywg c3RyKHJlc3VsdCkucmVwbGFjZSgiXG4iLCAiICIpLnN0cmlwKCkpCi0gICAgICAgICAgICBpZiBo YXNhdHRyKHNlbGYsICdleHBlY3RlZF9yZXR1cm5fdmFsdWUnKToKLSAgICAgICAgICAgICAgICBz ZWxmLmFzc2VydEVxdWFsKHJlc3VsdF9iZWF1dGlmaWVkLCBzZWxmLmV4cGVjdGVkX3JldHVybl92 YWx1ZSkKLSAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ2V4cGVjdGVkX2luX3JldHVybl92 YWx1ZScpOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oc2VsZi5leHBlY3RlZF9pbl9y ZXR1cm5fdmFsdWUsIHJlc3VsdF9iZWF1dGlmaWVkKQotICAgICAgICAgICAgaWYgaGFzYXR0cihz ZWxmLCAnZXhwZWN0ZWRfbm90X2luX3JldHVybl92YWx1ZScpOgotICAgICAgICAgICAgICAgIHNl bGYuYXNzZXJ0Tm90SW4oCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfbm90X2lu X3JldHVybl92YWx1ZSwgcmVzdWx0X2JlYXV0aWZpZWQpCisKKyAgICAgICAgICAgIHJlc3VsdF9i ZWF1dGlmaWVkIHwgc2hvdWxkLmNvbnRhaW4oJ0RJU1RSSUJVVEVEIEJZICcKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyhhdHRyMSwgYXR0cjIsIGF0dHI0 KScpCisgICAgICAgICAgICByZXN1bHRfYmVhdXRpZmllZCB8IHNob3VsZC50b19ub3QuY29udGFp bigKKyAgICAgICAgICAgICAgICAnRElTVFJJQlVURUQgUkFORE9NTFknCisgICAgICAgICAgICAp CiAKIAogY2xhc3MgRmFrZUFwcChGbGFzayk6CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMv dGVzdF90cmlnZ2VyX2dldF9vaWRfc3FsLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdHJpZ2dl cl9nZXRfb2lkX3NxbC5weQppbmRleCA4MzlkOWRmZi4uODVkNmIzOGMgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy90ZXN0cy90ZXN0X3RyaWdnZXJfZ2V0X29pZF9zcWwucHkKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L3Rlc3RzL3Rlc3RfdHJpZ2dlcl9nZXRfb2lkX3NxbC5weQpAQCAtMTAsNDcgKzEwLDU4IEBACiBp bXBvcnQgb3MKIAogaW1wb3J0IGppbmphMgotZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0 aWxzLnNxbF90ZW1wbGF0ZV90ZXN0X2Jhc2UgaW1wb3J0IFwKLSAgICBTUUxUZW1wbGF0ZVRlc3RC YXNlCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKK2Zyb20gcmVn cmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscwogZnJvbSByZWdyZXNz aW9uLnB5dGhvbl90ZXN0X3V0aWxzLnRlbXBsYXRlX2hlbHBlciBpbXBvcnQgZmlsZV9hc190ZW1w bGF0ZQogCiAKLWNsYXNzIFRlc3RUcmlnZ2VyR2V0T2lkU3FsKFNRTFRlbXBsYXRlVGVzdEJhc2Up OgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdUZXN0IFRyaWdnZXIgdG8gcmV0cmlldmUg T0lEIFNRTCBmaWxlJywgZGljdCgpKQotICAgIF0KK0BweXRlc3QubWFyay5kYXRhYmFzZQorY2xh c3MgVGVzdFRyaWdnZXJHZXRPaWRTcWw6CisgICAgZGVmIHRlc3RfY29sdW1uX2FjbF9zcWwoc2Vs ZiwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIGFsbCBwYXJh bWV0ZXJzIGFyZSBwcmVzZW50CisgICAgICAgIEl0IGNvcnJlY3RseSBnZW5lcmF0ZXMgdGhlIFNR TAorICAgICAgICBBbmQgZXhlY3V0ZXMgYWdhaW5zdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgIiIi CisgICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHdp dGggdGVzdF91dGlscy5EYXRhYmFzZShzZXJ2ZXIpIGFzIChjb25uZWN0aW9uLCBkYXRhYmFzZV9u YW1lKToKKyAgICAgICAgICAgIHRlc3RfdXRpbHMuY3JlYXRlX3RhYmxlKHNlcnZlciwgZGF0YWJh c2VfbmFtZSwgJ3Rlc3RfdGFibGUnKQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAg ICBzdXBlcihUZXN0VHJpZ2dlckdldE9pZFNxbCwgc2VsZikuX19pbml0X18oKQotICAgICAgICBz ZWxmLnRhYmxlX2lkID0gLTEKLSAgICAgICAgc2VsZi5jb2x1bW5faWQgPSAtMQorICAgICAgICAg ICAgaWYgY29ubmVjdGlvbi5zZXJ2ZXJfdmVyc2lvbiA8IDkwMTAwOgorICAgICAgICAgICAgICAg IHZlcnNpb25zX3RvX3Rlc3QgPSBbJ2RlZmF1bHQnXQorICAgICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICAgICB2ZXJzaW9uc190b190ZXN0ID0gWyc5LjFfcGx1cyddCiAKLSAgICBkZWYgdGVz dF9zZXR1cChzZWxmLCBjb25uZWN0aW9uLCBjdXJzb3IpOgotICAgICAgICBjdXJzb3IuZXhlY3V0 ZSgiU0VMRUNUIHBnX2NsYXNzLm9pZCBBUyB0YWJsZV9pZCwgIgotICAgICAgICAgICAgICAgICAg ICAgICAicGdfYXR0cmlidXRlLmF0dG51bSBBUyBjb2x1bW5faWQgIgotICAgICAgICAgICAgICAg ICAgICAgICAiRlJPTSBwZ19jbGFzcyBKT0lOIHBnX2F0dHJpYnV0ZSBPTiAiCi0gICAgICAgICAg ICAgICAgICAgICAgICJhdHRyZWxpZD1wZ19jbGFzcy5vaWQgIgotICAgICAgICAgICAgICAgICAg ICAgICAiV0hFUkUgcGdfY2xhc3MucmVsbmFtZT0ndGVzdF90YWJsZSciCi0gICAgICAgICAgICAg ICAgICAgICAgICIgQU5EIHBnX2F0dHJpYnV0ZS5hdHRuYW1lID0gJ3NvbWVfY29sdW1uJyIpCi0g ICAgICAgIHNlbGYudGFibGVfaWQsIHNlbGYuY29sdW1uX2lkID0gY3Vyc29yLmZldGNob25lKCkK KyAgICAgICAgICAgIGN1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICAgICAgICAgIGN1 cnNvci5leGVjdXRlKCJTRUxFQ1QgcGdfY2xhc3Mub2lkIEFTIHRhYmxlX2lkLCAiCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAicGdfYXR0cmlidXRlLmF0dG51bSBBUyBjb2x1bW5faWQgIgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZST00gcGdfY2xhc3MgSk9JTiBwZ19hdHRyaWJ1 dGUgT04gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgImF0dHJlbGlkPXBnX2NsYXNzLm9p ZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiV0hFUkUgcGdfY2xhc3MucmVsbmFtZT0n dGVzdF90YWJsZSciCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiIEFORCBwZ19hdHRyaWJ1 dGUuYXR0bmFtZSA9ICdzb21lX2NvbHVtbiciKQorICAgICAgICAgICAgdGFibGVfaWQsIGNvbHVt bl9pZCA9IGN1cnNvci5mZXRjaG9uZSgpCiAKLSAgICBkZWYgZ2VuZXJhdGVfc3FsKHNlbGYsIHZl cnNpb24pOgotICAgICAgICB0ZW1wbGF0ZV9maWxlID0gc2VsZi5nZXRfdGVtcGxhdGVfZmlsZSh2 ZXJzaW9uLCAiZ2V0X29pZC5zcWwiKQotICAgICAgICBqaW5qYTIuZmlsdGVycy5GSUxURVJTWydx dExpdGVyYWwnXSA9IGxhbWJkYSB2YWx1ZTogIk5VTEwiCi0gICAgICAgIHRlbXBsYXRlID0gZmls ZV9hc190ZW1wbGF0ZSh0ZW1wbGF0ZV9maWxlKQorICAgICAgICAgICAgZm9yIHZlcnNpb24gaW4g dmVyc2lvbnNfdG9fdGVzdDoKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9maWxlID0gc2VsZi5n ZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCAnZ2V0X29pZC5zcWwnKQorICAgICAgICAgICAgICAg IGppbmphMi5maWx0ZXJzLkZJTFRFUlNbJ3F0TGl0ZXJhbCddID0gbGFtYmRhIHZhbHVlOiAnTlVM TCcKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZSA9IGZpbGVfYXNfdGVtcGxhdGUodGVtcGxhdGVf ZmlsZSkKIAotICAgICAgICBzcWwgPSB0ZW1wbGF0ZS5yZW5kZXIoZGF0YT17J25hbWUnOiBOb25l fSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZD1zZWxmLnRhYmxlX2lkCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgc3FsID0gdGVtcGxh dGUucmVuZGVyKAorICAgICAgICAgICAgICAgICAgICBkYXRhPXsnbmFtZSc6IE5vbmV9LAorICAg ICAgICAgICAgICAgICAgICB0aWQ9dGFibGVfaWQKKyAgICAgICAgICAgICAgICApCiAKLSAgICAg ICAgcmV0dXJuIHNxbAorICAgICAgICAgICAgICAgIGN1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29y KCkKKyAgICAgICAgICAgICAgICBjdXJzb3IuZXhlY3V0ZShzcWwpCisgICAgICAgICAgICAgICAg ZmV0Y2hfcmVzdWx0ID0gY3Vyc29yLmZldGNoYWxsKCkKIAotICAgIGRlZiBhc3NlcnRpb25zKHNl bGYsIGZldGNoX3Jlc3VsdCwgZGVzY3JpcHRpb25zKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh bCgwLCBsZW4oZmV0Y2hfcmVzdWx0KSkKKyAgICAgICAgICAgICAgICBmZXRjaF9yZXN1bHQgfCBz aG91bGQuYmUuZW1wdHkKIAogICAgIEBzdGF0aWNtZXRob2QKICAgICBkZWYgZ2V0X3RlbXBsYXRl X2ZpbGUodmVyc2lvbiwgZmlsZW5hbWUpOgogICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKAot ICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgIi4uIiwgInRlbXBsYXRlcyIs ICJ0cmlnZ2VyIiwgInNxbCIsCisgICAgICAgICAgICBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18p LCAnLi4nLCAndGVtcGxhdGVzJywgJ3RyaWdnZXInLCAnc3FsJywKICAgICAgICAgICAgIHZlcnNp b24sIGZpbGVuYW1lCiAgICAgICAgICkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0 X3RyaWdnZXJfbm9kZXNfc3FsLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9ub2Rl c19zcWwucHkKaW5kZXggYzM1NTM5MTIuLmNlZjFkMzc3IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dGVzdHMvdGVzdF90cmlnZ2VyX25vZGVzX3NxbC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVz dF90cmlnZ2VyX25vZGVzX3NxbC5weQpAQCAtOSwzOSArOSw1MCBAQAogCiBpbXBvcnQgb3MKIAot ZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzLnNxbF90ZW1wbGF0ZV90ZXN0X2Jhc2Ug aW1wb3J0IFwKLSAgICBTUUxUZW1wbGF0ZVRlc3RCYXNlCi1mcm9tIHJlZ3Jlc3Npb24ucHl0aG9u X3Rlc3RfdXRpbHMudGVtcGxhdGVfaGVscGVyIGltcG9ydCBmaWxlX2FzX3RlbXBsYXRlCi0KLQot Y2xhc3MgVGVzdFRyaWdnZXJOb2Rlc1NxbChTUUxUZW1wbGF0ZVRlc3RCYXNlKToKLSAgICBzY2Vu YXJpb3MgPSBbCi0gICAgICAgICgnVGVzdCBUcmlnZ2VyIE5vZGVzIFNRTCBmaWxlJywgZGljdCgp KQotICAgIF0KK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKIAotICAg IGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc3VwZXIoVGVzdFRyaWdnZXJOb2Rlc1NxbCwg c2VsZikuX19pbml0X18oKQotICAgICAgICBzZWxmLnRhYmxlX2lkID0gLTEKLQotICAgIGRlZiB0 ZXN0X3NldHVwKHNlbGYsIGNvbm5lY3Rpb24sIGN1cnNvcik6Ci0gICAgICAgIGN1cnNvci5leGVj dXRlKCJTRUxFQ1QgcGdfY2xhc3Mub2lkIEFTIHRhYmxlX2lkICIKLSAgICAgICAgICAgICAgICAg ICAgICAgIkZST00gcGdfY2xhc3MgIgotICAgICAgICAgICAgICAgICAgICAgICAiV0hFUkUgcGdf Y2xhc3MucmVsbmFtZT0ndGVzdF90YWJsZSciKQotICAgICAgICBzZWxmLnRhYmxlX2lkID0gY3Vy c29yLmZldGNob25lKClbMF0KLQotICAgIGRlZiBnZW5lcmF0ZV9zcWwoc2VsZiwgdmVyc2lvbik6 Ci0gICAgICAgIHRlbXBsYXRlX2ZpbGUgPSBzZWxmLmdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24s ICJub2Rlcy5zcWwiKQotICAgICAgICB0ZW1wbGF0ZSA9IGZpbGVfYXNfdGVtcGxhdGUodGVtcGxh dGVfZmlsZSkKLSAgICAgICAgc3FsID0gdGVtcGxhdGUucmVuZGVyKHRpZD1zZWxmLnRhYmxlX2lk KQorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzCitm cm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMudGVtcGxhdGVfaGVscGVyIGltcG9ydCBm aWxlX2FzX3RlbXBsYXRlCiAKLSAgICAgICAgcmV0dXJuIHNxbAogCi0gICAgZGVmIGFzc2VydGlv bnMoc2VsZiwgZmV0Y2hfcmVzdWx0LCBkZXNjcmlwdGlvbnMpOgotICAgICAgICBzZWxmLmFzc2Vy dEVxdWFsKDAsIGxlbihmZXRjaF9yZXN1bHQpKQorQHB5dGVzdC5tYXJrLmRhdGFiYXNlCitjbGFz cyBUZXN0VHJpZ2dlck5vZGVzU3FsOgorICAgIGRlZiB0ZXN0X3RyaWdnZXJfbm9kZXNfc3FsKHNl bGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBhbGwgcGFy YW1ldGVycyBhcmUgcHJlc2VudAorICAgICAgICBJdCBjb3JyZWN0bHkgZ2VuZXJhdGVzIHRoZSBT UUwKKyAgICAgICAgQW5kIGV4ZWN1dGVzIGFnYWluc3QgdGhlIGRhdGFiYXNlCisgICAgICAgICIi IgorICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICB3 aXRoIHRlc3RfdXRpbHMuRGF0YWJhc2Uoc2VydmVyKSBhcyAoY29ubmVjdGlvbiwgZGF0YWJhc2Vf bmFtZSk6CisgICAgICAgICAgICB0ZXN0X3V0aWxzLmNyZWF0ZV90YWJsZShzZXJ2ZXIsIGRhdGFi YXNlX25hbWUsICd0ZXN0X3RhYmxlJykKKworICAgICAgICAgICAgaWYgY29ubmVjdGlvbi5zZXJ2 ZXJfdmVyc2lvbiA8IDkwMTAwOgorICAgICAgICAgICAgICAgIHZlcnNpb25zX3RvX3Rlc3QgPSBb J2RlZmF1bHQnXQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB2ZXJzaW9uc190 b190ZXN0ID0gWyc5LjFfcGx1cyddCisKKyAgICAgICAgICAgIGN1cnNvciA9IGNvbm5lY3Rpb24u Y3Vyc29yKCkKKyAgICAgICAgICAgIGN1cnNvci5leGVjdXRlKCJTRUxFQ1QgcGdfY2xhc3Mub2lk IEFTIHRhYmxlX2lkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJGUk9NIHBnX2NsYXNz ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJXSEVSRSBwZ19jbGFzcy5yZWxuYW1lPSd0 ZXN0X3RhYmxlJyIpCisgICAgICAgICAgICB0YWJsZV9pZCA9IGN1cnNvci5mZXRjaG9uZSgpWzBd CisKKyAgICAgICAgICAgIGZvciB2ZXJzaW9uIGluIHZlcnNpb25zX3RvX3Rlc3Q6CisgICAgICAg ICAgICAgICAgdGVtcGxhdGVfZmlsZSA9IHNlbGYuZ2V0X3RlbXBsYXRlX2ZpbGUodmVyc2lvbiwg J25vZGVzLnNxbCcpCisgICAgICAgICAgICAgICAgdGVtcGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRl KHRlbXBsYXRlX2ZpbGUpCisgICAgICAgICAgICAgICAgc3FsID0gdGVtcGxhdGUucmVuZGVyKHRp ZD10YWJsZV9pZCkKKworICAgICAgICAgICAgICAgIGN1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29y KCkKKyAgICAgICAgICAgICAgICBjdXJzb3IuZXhlY3V0ZShzcWwpCisgICAgICAgICAgICAgICAg ZmV0Y2hfcmVzdWx0ID0gY3Vyc29yLmZldGNoYWxsKCkKKworICAgICAgICAgICAgICAgIGZldGNo X3Jlc3VsdCB8IHNob3VsZC5iZS5lbXB0eQogCiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBn ZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCBmaWxlbmFtZSk6CiAgICAgICAgIHJldHVybiBvcy5w YXRoLmpvaW4oCi0gICAgICAgICAgICBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4iLCAi dGVtcGxhdGVzIiwgInRyaWdnZXIiLCAic3FsIiwKKyAgICAgICAgICAgIG9zLnBhdGguZGlybmFt ZShfX2ZpbGVfXyksICcuLicsICd0ZW1wbGF0ZXMnLCAndHJpZ2dlcicsICdzcWwnLAogICAgICAg ICAgICAgdmVyc2lvbiwgZmlsZW5hbWUKICAgICAgICAgKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L3Rlc3RzL3Rlc3RfdXRpbHMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF91dGlscy5weQppbmRl eCBhNGRkNWI2OS4uYzEwYTI2MDIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3V0 aWxzLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3V0aWxzLnB5CkBAIC03LDY2ICs3LDYz IEBACiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogaW1wb3J0IHN5cworCitmcm9tIGdyYXBwYSBpbXBv cnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMuc2NoZW1hcy50YWJsZXMgaW1wb3J0IFwKICAgICBCYXNlVGFibGVWaWV3Ci1mcm9t IHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRt aW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKIAog aWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAzKToKLSAgICBmcm9tIG1vY2sgaW1wb3J0IHBhdGNo LCBNYWdpY01vY2sKKyAgICBmcm9tIG1vY2sgaW1wb3J0IE1hZ2ljTW9jaywgcGF0Y2gKIGVsc2U6 Ci0gICAgZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaCwgTWFnaWNNb2NrCisgICAgZnJv bSB1bml0dGVzdC5tb2NrIGltcG9ydCBNYWdpY01vY2ssIHBhdGNoCiAKIAotY2xhc3MgVGVzdEJh c2VWaWV3KEJhc2VUYWJsZVZpZXcpOgorY2xhc3MgQmFzZVZpZXcoQmFzZVRhYmxlVmlldyk6CiAg ICAgQEJhc2VUYWJsZVZpZXcuY2hlY2tfcHJlY29uZGl0aW9uCiAgICAgZGVmIHRlc3Qoc2VsZiwg ZGlkLCBzaWQpOgogICAgICAgICBwYXNzCiAKIAogY2xhc3MgVGVzdFV0aWxzKEJhc2VUZXN0R2Vu ZXJhdG9yKToKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnVGVzdCB3cmFwcGluZyBmdW5j dGlvbicsIGRpY3QodGVzdD0nd3JhcCcpKQotICAgIF0KKyAgICBAcGF0Y2goJ3BnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMnCisgICAgICAgICAgICcuZGF0YWJhc2VzLnNjaGVt YXMudGFibGVzLnV0aWxzJworICAgICAgICAgICAnLmdldF9kcml2ZXInKQorICAgIGRlZiB0ZXN0 X3dyYXBwaW5nX2Z1bmN0aW9uKHNlbGYsIGdldF9kcml2ZXJfbW9jayk6CisgICAgICAgICIiIgor ICAgICAgICBJdCByZXR1cm5zIHN0dWJiZWQgdmFsdWVzIGZvciB0ZXN0cworICAgICAgICAiIiIK KworICAgICAgICBzdWJqZWN0ID0gQmFzZVZpZXcoY21kPSdzb21ldGhpbmcnKQorICAgICAgICBn ZXRfZHJpdmVyX21vY2sucmV0dXJuX3ZhbHVlID0gTWFnaWNNb2NrKAorICAgICAgICAgICAgY29u bmVjdGlvbl9tYW5hZ2VyPU1hZ2ljTW9jaygKKyAgICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9 TWFnaWNNb2NrKAorICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uPU1hZ2ljTW9jaygpLAor ICAgICAgICAgICAgICAgICAgICBkYl9pbmZvPXsKKyAgICAgICAgICAgICAgICAgICAgICAgIDE6 IGRpY3QoZGF0bGFzdHN5c29pZD1GYWxzZSkKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAg ICAgICAgICAgICAgICAgdmVyc2lvbj0xMCwKKyAgICAgICAgICAgICAgICAgICAgc2VydmVyX3R5 cGU9J2dwZGInCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKSwKKyAgICAgICAgICAg IHF0SW5kZW50PU1hZ2ljTW9jaygpLAorICAgICAgICAgICAgcXRUeXBlSWRlbnQ9TWFnaWNNb2Nr KCkKKyAgICAgICAgKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYu dGVzdCA9PSAnd3JhcCc6Ci0gICAgICAgICAgICBzZWxmLl9fd3JhcF90ZXN0cygpCisgICAgICAg IHN1YmplY3QudGVzdChkaWQ9MSwgc2lkPTIpCiAKLSAgICBkZWYgX193cmFwX3Rlc3RzKHNlbGYp OgotICAgICAgICBzdWJqZWN0ID0gVGVzdEJhc2VWaWV3KGNtZD0nc29tZXRoaW5nJykKLSAgICAg ICAgd2l0aCBwYXRjaCgncGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMuc2NoZW1hcycKLSAgICAgICAgICAgICAgICAgICAnLnRhYmxlcy51dGlscy5nZXRfZHJp dmVyJykgYXMgZ2V0X2RyaXZlcl9tb2NrOgotICAgICAgICAgICAgZ2V0X2RyaXZlcl9tb2NrLnJl dHVybl92YWx1ZSA9IE1hZ2ljTW9jaygKLSAgICAgICAgICAgICAgICBjb25uZWN0aW9uX21hbmFn ZXI9TWFnaWNNb2NrKAotICAgICAgICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9TWFnaWNNb2Nr KAotICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbj1NYWdpY01vY2soKSwKLSAgICAg ICAgICAgICAgICAgICAgICAgIGRiX2luZm89ewotICAgICAgICAgICAgICAgICAgICAgICAgICAg IDE6IGRpY3QoZGF0bGFzdHN5c29pZD1GYWxzZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIH0s Ci0gICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPTEwLAotICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyX3R5cGU9J2dwZGInCi0gICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAg ICAgICAgICApLAotICAgICAgICAgICAgICAgIHF0SW5kZW50PU1hZ2ljTW9jaygpLAotICAgICAg ICAgICAgICAgIHF0VHlwZUlkZW50PU1hZ2ljTW9jaygpCi0gICAgICAgICAgICApCi0gICAgICAg ICAgICBzdWJqZWN0LnRlc3QoZGlkPTEsIHNpZD0yKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRF cXVhbCgKLSAgICAgICAgICAgICAgICBzdWJqZWN0LnRhYmxlX3RlbXBsYXRlX3BhdGgsICd0YWJs ZS9zcWwvI2dwZGIjMTAjJykKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAg ICAgICAgICAgc3ViamVjdC5kYXRhX3R5cGVfdGVtcGxhdGVfcGF0aCwgJ2RhdGF0eXBlL3NxbC8j Z3BkYiMxMCMnKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAg ICBzdWJqZWN0LmNoZWNrX2NvbnN0cmFpbnRfdGVtcGxhdGVfcGF0aCwKLSAgICAgICAgICAgICAg ICAnY2hlY2tfY29uc3RyYWludC9zcWwvI2dwZGIjMTAjJykKLSAgICAgICAgICAgIHNlbGYuYXNz ZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgc3ViamVjdC5leGNsdXNpb25fY29uc3RyYWludF90 ZW1wbGF0ZV9wYXRoLAotICAgICAgICAgICAgICAgICdleGNsdXNpb25fY29uc3RyYWludC9zcWwv I2dwZGIjMTAjJykKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAg ICAgc3ViamVjdC5mb3JlaWduX2tleV90ZW1wbGF0ZV9wYXRoLAotICAgICAgICAgICAgICAgICdm b3JlaWduX2tleS9zcWwvI2dwZGIjMTAjJykKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo Ci0gICAgICAgICAgICAgICAgc3ViamVjdC5pbmRleF90ZW1wbGF0ZV9wYXRoLAotICAgICAgICAg ICAgICAgICdpbmRleC9zcWwvI2dwZGIjMTAjJykKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWwoCi0gICAgICAgICAgICAgICAgc3ViamVjdC50cmlnZ2VyX3RlbXBsYXRlX3BhdGgsCi0gICAg ICAgICAgICAgICAgJ3RyaWdnZXIvc3FsLyNncGRiIzEwIycpCisgICAgICAgIHN1YmplY3QudGFi bGVfdGVtcGxhdGVfcGF0aCB8IFwKKyAgICAgICAgICAgIHNob3VsZC5lcXVhbCgndGFibGUvc3Fs LyNncGRiIzEwIycpCisgICAgICAgIHN1YmplY3QuZGF0YV90eXBlX3RlbXBsYXRlX3BhdGggfCBc CisgICAgICAgICAgICBzaG91bGQuZXF1YWwoJ2RhdGF0eXBlL3NxbC8jZ3BkYiMxMCMnKQorICAg ICAgICBzdWJqZWN0LmNoZWNrX2NvbnN0cmFpbnRfdGVtcGxhdGVfcGF0aCB8IFwKKyAgICAgICAg ICAgIHNob3VsZC5lcXVhbCgnY2hlY2tfY29uc3RyYWludC9zcWwvI2dwZGIjMTAjJykKKyAgICAg ICAgc3ViamVjdC5leGNsdXNpb25fY29uc3RyYWludF90ZW1wbGF0ZV9wYXRoIHwgXAorICAgICAg ICAgICAgc2hvdWxkLmVxdWFsKCdleGNsdXNpb25fY29uc3RyYWludC9zcWwvI2dwZGIjMTAjJykK KyAgICAgICAgc3ViamVjdC5mb3JlaWduX2tleV90ZW1wbGF0ZV9wYXRoIHwgXAorICAgICAgICAg ICAgc2hvdWxkLmVxdWFsKCdmb3JlaWduX2tleS9zcWwvI2dwZGIjMTAjJykKKyAgICAgICAgc3Vi amVjdC5pbmRleF90ZW1wbGF0ZV9wYXRoIHwgXAorICAgICAgICAgICAgc2hvdWxkLmVxdWFsKCdp bmRleC9zcWwvI2dwZGIjMTAjJykKKyAgICAgICAgc3ViamVjdC50cmlnZ2VyX3RlbXBsYXRlX3Bh dGggfCBcCisgICAgICAgICAgICBzaG91bGQuZXF1YWwoJ3RyaWdnZXIvc3FsLyNncGRiIzEwIycp CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMvdGVzdHMvX19pbml0X18ucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvdHJpZ2dlcnMvdGVzdHMvX19pbml0X18ucHkKaW5kZXggNWYwNzQxNjMuLjU5MDAyNmFk IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMvdGVzdHMvX19pbml0X18ucHkKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL3RyaWdnZXJzL3Rlc3RzL19faW5pdF9fLnB5CkBAIC02LDExICs2LDMgQEAKICMg VGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCiAj CiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIwotCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJh c2VUZXN0R2VuZXJhdG9yCi0KLQotY2xhc3MgVHJpZ2dlcnNUZXN0R2VuZXJhdG9yKEJhc2VUZXN0 R2VuZXJhdG9yKToKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICByZXR1cm4gW10K ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy90ZXN0cy90ZXN0X3RyaWdnZXJzX2FkZC5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy90cmlnZ2Vycy90ZXN0cy90ZXN0X3RyaWdnZXJzX2FkZC5weQppbmRleCA3 NGE5MjYyMS4uY2NhM2JjZTUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy90ZXN0cy90 ZXN0X3RyaWdnZXJzX2FkZC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMvdGVzdHMvdGVzdF90 cmlnZ2Vyc19hZGQucHkKQEAgLTEwLDcyICsxMCw2NyBAQAogaW1wb3J0IGpzb24KIGltcG9ydCB1 dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLmZ1 bmN0aW9ucy50ZXN0cyBcCiAgICAgaW1wb3J0IHV0aWxzIGFzIHRyaWdnZXJfZnVuY3NfdXRpbHMK IGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2No ZW1hcy50YWJsZXMudGVzdHMgXAogICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKIGZy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1h cy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwotZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRp bHMgYXMgXAotICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1w b3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2Rl X2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGls cyBhcyB1dGlscwogCiAKLWNsYXNzIFRyaWdnZXJzQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0 b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBhZGQgbmV3IHRyaWdnZXIgdW5kZXIgdGFibGUg bm9kZS4iIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLSAgICBzY2VuYXJpb3Mg PSBbCi0gICAgICAgICgnQWRkIHRyaWdnZXIgTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIv dHJpZ2dlci9vYmovJykpCi0gICAgXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsnZ3Bk YiddKQorY2xhc3MgVGVzdFRyaWdnZXJzQWRkOgorCisgICAgQHB5dGVzdC5tYXJrLnVzZWZpeHR1 cmVzKCdyZXF1aXJlX2RhdGFiYXNlX2Nvbm5lY3Rpb24nKQorICAgIGRlZiB0ZXN0X3RyaWdnZXJf YWRkKHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBz ZW5kaW5nIHBvc3QgcmVxdWVzdCB0byBhZGQgdHJpZ2dlcgorICAgICAgICBpdCByZXR1cm5zIDIw MCBzdGF0dXMKKyAgICAgICAgIiIiCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3RyaWdnZXIv b2JqLycKKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVu dCddCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAg IHNlcnZlcl9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9ybWF0aW9uJ10KKwor ICAgICAgICBkYl9uYW1lID0gc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorICAgICAgICBzZXJ2ZXJf aWQgPSBzZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgZGJfaWQgPSBzZXJ2ZXJfZGF0 YVsnZGJfaWQnXQorICAgICAgICBzY2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX2lkJ10K KyAgICAgICAgc2NoZW1hX25hbWUgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX25hbWUnXQogCi0gICAg ZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzdXBlcihUcmlnZ2Vyc0FkZFRlc3RDYXNlLCBzZWxm KS5zZXRVcCgpCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFi YXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9k aWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1si c2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0g ICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRp bHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJf Y29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSB0cmlnZ2VyLiIpCi0gICAgICAg IHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYu c2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQotICAgICAgICBzY2hlbWFf cmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRi X25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFf dXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQogICAgICAgICBp ZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3Vs ZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBhIHRyaWdnZXIuIikKLSAgICAgICAgc2VsZi50 YWJsZV9uYW1lID0gInRhYmxlX3RyaWdnZXJfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0p Ci0gICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYu c2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkKLSAgICAgICAgc2Vs Zi5mdW5jX25hbWUgPSAidHJpZ2dlcl9mdW5jX2FkZF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsx OjhdCi0gICAgICAgIHNlbGYuZnVuY3Rpb25faW5mbyA9IFwKLSAgICAgICAgICAgIHRyaWdnZXJf ZnVuY3NfdXRpbHMuY3JlYXRlX3RyaWdnZXJfZnVuY3Rpb25fd2l0aF90cmlnZ2VyKAotICAgICAg ICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNl bGYuZnVuY19uYW1lKQorICAgICAgICB0YWJsZV9uYW1lID0gInRhYmxlX3RyaWdnZXJfJXMiICUg KHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHRhYmxlX2lkID0gdGFibGVzX3V0aWxz LmNyZWF0ZV90YWJsZShzZXJ2ZXIsIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRhYmxlX25hbWUpCisgICAgICAgIGZ1bmNfbmFtZSA9ICJ0 cmlnZ2VyX2Z1bmNfYWRkXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgdHJp Z2dlcl9mdW5jc191dGlscy5jcmVhdGVfdHJpZ2dlcl9mdW5jdGlvbl93aXRoX3RyaWdnZXIoCisg ICAgICAgICAgICBzZXJ2ZXIsIGRiX25hbWUsIHNjaGVtYV9uYW1lLCBmdW5jX25hbWUpCiAKLSAg ICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIHRyaWdn ZXIgdW5kZXIgdGFibGUgbm9kZS4iIiIKICAgICAgICAgdHJpZ2dlcl9uYW1lID0gInRlc3RfdHJp Z2dlcl9hZGRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCiAgICAgICAgIGRhdGEgPSB7 Im5hbWUiOiB0cmlnZ2VyX25hbWUsCiAgICAgICAgICAgICAgICAgImlzX3Jvd190cmlnZ2VyIjog VHJ1ZSwKICAgICAgICAgICAgICAgICAiZmlyZXMiOiAiQkVGT1JFIiwKICAgICAgICAgICAgICAg ICAiY29sdW1ucyI6IFtdLAotICAgICAgICAgICAgICAgICJ0ZnVuY3Rpb24iOiAiezB9LnsxfSIu Zm9ybWF0KHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5mdW5jX25hbWUpLAorICAgICAgICAgICAgICAgICJ0ZnVuY3Rp b24iOiAiezB9LnsxfSIuZm9ybWF0KHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmNfbmFtZSksCiAgICAgICAgICAgICAgICAgImV2 bnRfaW5zZXJ0IjogVHJ1ZQogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgcmVzcG9uc2UgPSBz ZWxmLnRlc3Rlci5wb3N0KAotICAgICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0vIi5m b3JtYXQoc2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfaWQs IHNlbGYudGFibGVfaWQpLAorICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LnBvc3QoCisg ICAgICAgICAgICAiezB9ezF9L3syfS97M30vezR9L3s1fS8iLmZvcm1hdCh1cmwsIHV0aWxzLlNF UlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlcnZlcl9pZCwgZGJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzY2hlbWFfaWQsIHRhYmxlX2lkKSwKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1w cyhkYXRhKSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJwogICAgICAgICAp Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAK LSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJh c2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxm LnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBz aG91bGQuZXF1YWwoMjAwKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3Rlc3RzL3Rl c3RfdHJpZ2dlcnNfZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3Rlc3RzL3Rlc3RfdHJp Z2dlcnNfZGVsZXRlLnB5CmluZGV4IGY3ZTcxNDEyLi5kOGQ1MzA5MiAxMDA2NDQKLS0tIGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL3RyaWdnZXJzL3Rlc3RzL3Rlc3RfdHJpZ2dlcnNfZGVsZXRlLnB5CisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy90cmlnZ2Vycy90ZXN0cy90ZXN0X3RyaWdnZXJzX2RlbGV0ZS5weQpAQCAtOSw3NiArOSw3 MiBAQAogCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQg c2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMuc2NoZW1hcy5mdW5jdGlvbnMudGVzdHMgXAogICAgIGltcG9ydCB1dGlscyBhcyB0cmln Z2VyX2Z1bmNzX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwKICAgICBpbXBvcnQgdXRpbHMgYXMg dGFibGVzX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu ZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRp bHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu dGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKLSAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWlu LnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGlt cG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMg aW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgdHJpZ2dl cnNfdXRpbHMKIAogCi1jbGFzcyBUcmlnZ2Vyc0RlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJh dG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgZGVsZXRlIHRyaWdnZXIgdW5kZXIgdGFibGUg bm9kZS4iIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLSAgICBzY2VuYXJpb3Mg PSBbCi0gICAgICAgICgnRGVsZXRlIHRyaWdnZXIgTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dz ZXIvdHJpZ2dlci9vYmovJykpCi0gICAgXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsn Z3BkYiddKQorY2xhc3MgVGVzdFRyaWdnZXJzRGVsZXRlOgorCisgICAgQHB5dGVzdC5tYXJrLnVz ZWZpeHR1cmVzKCdyZXF1aXJlX2RhdGFiYXNlX2Nvbm5lY3Rpb24nKQorICAgIGRlZiB0ZXN0X3Ry aWdnZXJfZGVsZXRlKHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAg ICAgV2hlbiBzZW5kaW5nIHBvc3QgcmVxdWVzdCB0byBhZGQgdHJpZ2dlcgorICAgICAgICBpdCBy ZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisKKyAgICAgICAgdXJsID0gJy9icm93c2Vy L3RyaWdnZXIvb2JqLycKKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0 ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcidd CisgICAgICAgIHNlcnZlcl9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9ybWF0 aW9uJ10KIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc3VwZXIoVHJpZ2dlcnNEZWxl dGVUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRf bm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9pbmZv ID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lk ID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFf aW5mb1siZGJfaWQiXQotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2Rh dGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKLSAg ICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gZGVsZXRlIHRy aWdnZXIuIikKLSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lk Il0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJd Ci0gICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhz ZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGRiX25hbWUg PSBzZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisgICAgICAgIHNlcnZlcl9pZCA9IHNlcnZlcl9kYXRh WydzZXJ2ZXJfaWQnXQorICAgICAgICBkYl9pZCA9IHNlcnZlcl9kYXRhWydkYl9pZCddCisgICAg ICAgIHNjaGVtYV9pZCA9IHNlcnZlcl9kYXRhWydzY2hlbWFfaWQnXQorICAgICAgICBzY2hlbWFf bmFtZSA9IHNlcnZlcl9kYXRhWydzY2hlbWFfbmFtZSddCisKKyAgICAgICAgc2NoZW1hX3Jlc3Bv bnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlcnZlciwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFt ZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBkZWxldGUgdHJpZ2dlci4iKQot ICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfdHJpZ2dlcl8lcyIgJSAoc3RyKHV1aWQu dXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVh dGVfdGFibGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1l KQotICAgICAgICBzZWxmLmZ1bmNfbmFtZSA9ICJ0cmlnZ2VyX2Z1bmNfZGVsZXRlXyVzIiAlIHN0 cih1dWlkLnV1aWQ0KCkpWzE6OF0KLSAgICAgICAgc2VsZi5mdW5jdGlvbl9pbmZvID0gXAotICAg ICAgICAgICAgdHJpZ2dlcl9mdW5jc191dGlscy5jcmVhdGVfdHJpZ2dlcl9mdW5jdGlvbl93aXRo X3RyaWdnZXIoCi0gICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2Vs Zi5zY2hlbWFfbmFtZSwgc2VsZi5mdW5jX25hbWUpCi0gICAgICAgIHNlbGYudHJpZ2dlcl9uYW1l ID0gInRlc3RfdHJpZ2dlcl9kZWxldGVfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0g ICAgICAgIHNlbGYudHJpZ2dlcl9pZCA9IHRyaWdnZXJzX3V0aWxzLmNyZWF0ZV90cmlnZ2VyKHNl bGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFt ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi50cmlnZ2VyX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnVuY19uYW1lKQorICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBhIHRyaWdnZXIuIikK KyAgICAgICAgdGFibGVfbmFtZSA9ICJ0YWJsZV90cmlnZ2VyXyVzIiAlIChzdHIodXVpZC51dWlk NCgpKVsxOjhdKQorICAgICAgICB0YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUo c2VydmVyLCBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0YWJsZV9uYW1lKQorICAgICAgICBmdW5jX25hbWUgPSAidHJpZ2dlcl9mdW5jX2Fk ZF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAgICAgIHRyaWdnZXJfZnVuY3NfdXRp bHMuY3JlYXRlX3RyaWdnZXJfZnVuY3Rpb25fd2l0aF90cmlnZ2VyKAorICAgICAgICAgICAgc2Vy dmVyLCBkYl9uYW1lLCBzY2hlbWFfbmFtZSwgZnVuY19uYW1lKQorCisgICAgICAgIHRyaWdnZXJf bmFtZSA9ICJ0ZXN0X3RyaWdnZXJfYWRkXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQor ICAgICAgICB0cmlnZ2VyX2lkID0gdHJpZ2dlcnNfdXRpbHMuY3JlYXRlX3RyaWdnZXIoc2VydmVy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJf bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGFibGVfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRyaWdnZXJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmNfbmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNl bGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHRyaWdnZXIgdW5kZXIg dGFibGUgbm9kZS4iIiIKLSAgICAgICAgdHJpZ2dlcl9yZXNwb25zZSA9IHRyaWdnZXJzX3V0aWxz LnZlcmlmeV90cmlnZ2VyKHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50cmlnZ2Vy X25hbWUpCisgICAgICAgIHRyaWdnZXJfcmVzcG9uc2UgPSB0cmlnZ2Vyc191dGlscy52ZXJpZnlf dHJpZ2dlcihzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcl9uYW1lKQogICAgICAgICBpZiBub3Qg dHJpZ2dlcl9yZXNwb25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90 IGZpbmQgdGhlIHRyaWdnZXIgdG8gZGVsZXRlLiIpCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50 ZXN0ZXIuZGVsZXRlKAotICAgICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0vezZ9Ii5m b3JtYXQoc2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hl bWFfaWQsIHNlbGYudGFibGVfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnRyaWdnZXJfaWQpLAorICAgICAgICByZXNwb25zZSA9IGh0dHBf Y2xpZW50LmRlbGV0ZSgKKyAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS97NH0vezV9L3s2fSIu Zm9ybWF0KHVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLCBkYl9pZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9pZCwgdGFibGVfaWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyX2lk KSwKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZQogICAgICAgICApCi0gICAgICAg IHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBkZWYg dGVhckRvd24oc2VsZik6Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAg ICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9p ZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuZXF1 YWwoMjAwKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3Rlc3RzL3Rlc3RfdHJpZ2dl cnNfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3Rlc3RzL3Rlc3RfdHJpZ2dlcnNfZ2V0LnB5 CmluZGV4IGUyM2I2MTQ5Li44MzlmZjAzYiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJz L3Rlc3RzL3Rlc3RfdHJpZ2dlcnNfZ2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy90ZXN0 cy90ZXN0X3RyaWdnZXJzX2dldC5weQpAQCAtOSw3MSArOSw2NiBAQAogCiBpbXBvcnQgdXVpZAog CitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy5mdW5jdGlv bnMudGVzdHMgXAogICAgIGltcG9ydCB1dGlscyBhcyB0cmlnZ2VyX2Z1bmNzX3V0aWxzCiBmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMu dGFibGVzLnRlc3RzIFwKICAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCiBmcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVz dHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKLWZyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFz IFwKLSAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBC YXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0 CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMg dXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgdHJpZ2dlcnNfdXRpbHMKIAogCi1jbGFzcyBU cmlnZ2Vyc0dldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNz IHdpbGwgZmV0Y2ggdHJpZ2dlciB1bmRlciB0YWJsZSBub2RlLiIiIgotICAgIHNraXBfb25fZGF0 YWJhc2UgPSBbJ2dwZGInXQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdGZXRjaCB0cmln Z2VyIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL3RyaWdnZXIvb2JqLycpKQotICAgIF0K K0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNzIFRlc3RUcmlnZ2Vy c0dldDoKKworICAgIEBweXRlc3QubWFyay51c2VmaXh0dXJlcygncmVxdWlyZV9kYXRhYmFzZV9j b25uZWN0aW9uJykKKyAgICBkZWYgdGVzdF90cmlnZ2VyX2dldChzZWxmLCBjb250ZXh0X29mX3Rl c3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gc2VuZGluZyBnZXQgcmVxdWVzdCB0byB0 cmlnZ2VyIGVuZHBvaW50CisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAi IiIKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvdHJpZ2dlci9vYmovJworICAgICAgICBodHRw X2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VydmVy ID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VydmVyX2RhdGEgPSBjb250 ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQorCisgICAgICAgIGRiX25hbWUgPSBz ZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisgICAgICAgIHNlcnZlcl9pZCA9IHNlcnZlcl9kYXRhWydz ZXJ2ZXJfaWQnXQorICAgICAgICBkYl9pZCA9IHNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAg IHNjaGVtYV9pZCA9IHNlcnZlcl9kYXRhWydzY2hlbWFfaWQnXQorICAgICAgICBzY2hlbWFfbmFt ZSA9IHNlcnZlcl9kYXRhWydzY2hlbWFfbmFtZSddCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0g ICAgICAgIHN1cGVyKFRyaWdnZXJzR2V0VGVzdENhc2UsIHNlbGYpLnNldFVwKCkKLSAgICAgICAg c2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUi XQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQot ICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAg ICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgZGJfY29uID0gZGF0 YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVj dGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRv IGRhdGFiYXNlIHRvIGdldCBhIHRyaWdnZXIuIikKLSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBz Y2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVt YV9pbmZvWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91 dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25h bWUpCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1h cyhzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2NoZW1hX25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9u c2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hl bWEgdG8gZ2V0IGEgdHJpZ2dlci4iKQotICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVf dHJpZ2dlcl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi50YWJs ZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFt ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQotICAgICAgICBzZWxmLmZ1bmNfbmFtZSA9ICJ0cmln Z2VyX2Z1bmNfZ2V0XyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KLSAgICAgICAgc2VsZi5m dW5jdGlvbl9pbmZvID0gXAotICAgICAgICAgICAgdHJpZ2dlcl9mdW5jc191dGlscy5jcmVhdGVf dHJpZ2dlcl9mdW5jdGlvbl93aXRoX3RyaWdnZXIoCi0gICAgICAgICAgICAgICAgc2VsZi5zZXJ2 ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgc2VsZi5mdW5jX25hbWUpCi0gICAg ICAgIHNlbGYudHJpZ2dlcl9uYW1lID0gInRlc3RfdHJpZ2dlcl9nZXRfJXMiICUgKHN0cih1dWlk LnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYudHJpZ2dlcl9pZCA9IHRyaWdnZXJzX3V0aWxz LmNyZWF0ZV90cmlnZ2VyKHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25h bWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYudGFibGVfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi50cmlnZ2VyX25hbWUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnVuY19uYW1lKQor ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRv IGFkZCBhIHRyaWdnZXIuIikKKyAgICAgICAgdGFibGVfbmFtZSA9ICJ0YWJsZV90cmlnZ2VyXyVz IiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICB0YWJsZV9pZCA9IHRhYmxlc191 dGlscy5jcmVhdGVfdGFibGUoc2VydmVyLCBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9uYW1lKQorICAgICAgICBmdW5jX25hbWUg PSAidHJpZ2dlcl9mdW5jX2FkZF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAgICAg IHRyaWdnZXJfZnVuY3NfdXRpbHMuY3JlYXRlX3RyaWdnZXJfZnVuY3Rpb25fd2l0aF90cmlnZ2Vy KAorICAgICAgICAgICAgc2VydmVyLCBkYl9uYW1lLCBzY2hlbWFfbmFtZSwgZnVuY19uYW1lKQog Ci0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBm ZXRjaCB0cmlnZ2VyIHVuZGVyIHRhYmxlIG5vZGUuIiIiCi0gICAgICAgIHJlc3BvbnNlID0gc2Vs Zi50ZXN0ZXIuZ2V0KAotICAgICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0vezZ9Ii5m b3JtYXQoc2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hl bWFfaWQsIHNlbGYudGFibGVfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnRyaWdnZXJfaWQpLAorICAgICAgICB0cmlnZ2VyX25hbWUgPSAi dGVzdF90cmlnZ2VyX2FkZF8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAg dHJpZ2dlcl9pZCA9IHRyaWdnZXJzX3V0aWxzLmNyZWF0ZV90cmlnZ2VyKHNlcnZlciwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFf bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRhYmxlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0cmlnZ2VyX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmdW5jX25hbWUpCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGll bnQuZ2V0KAorICAgICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0vezZ9Ii5mb3JtYXQo dXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQsIGRiX2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX2lkLCB0YWJsZV9pZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJfaWQpLAogICAg ICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlCiAgICAgICAgICkKLSAgICAgICAgc2VsZi5h c3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKIAotICAgIGRlZiB0ZWFyRG93 bihzZWxmKToKLSAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRh YmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxm LmRiX2lkKQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5lcXVhbCgyMDAp CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMvdGVzdHMvdGVzdF90cmlnZ2Vyc19wdXQu cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMvdGVzdHMvdGVzdF90cmlnZ2Vyc19wdXQucHkKaW5kZXgg OTI3MjMxZjIuLmQ2Y2JiMDVhIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMvdGVzdHMv dGVzdF90cmlnZ2Vyc19wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3Rlc3RzL3Rlc3Rf dHJpZ2dlcnNfcHV0LnB5CkBAIC0xMCw2ICsxMCw5IEBACiBpbXBvcnQganNvbgogaW1wb3J0IHV1 aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMuZnVu Y3Rpb25zLnRlc3RzIFwKICAgICBpbXBvcnQgdXRpbHMgYXMgdHJpZ2dlcl9mdW5jc191dGlscwog ZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hl bWFzLnRhYmxlcy50ZXN0cyBcCkBAIC0xOCw3MyArMjEsNzEgQEAgZnJvbSBwZ2FkbWluLmJyb3dz ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBc CiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJf Z3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAgZGF0 YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5l cmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNl VGVzdEdlbmVyYXRvcgogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBm cm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRp bHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgdHJpZ2dlcnNfdXRpbHMKIAogCi1jbGFzcyBUcmln Z2Vyc1VwZGF0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNz IHdpbGwgdXBkYXRlIHRyaWdnZXIgdW5kZXIgdGFibGUgbm9kZS4iIiIKLSAgICBza2lwX29uX2Rh dGFiYXNlID0gWydncGRiJ10KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnUHV0IHRyaWdn ZXIgTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvdHJpZ2dlci9vYmovJykpCi0gICAgXQor QHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsnZ3BkYiddKQorY2xhc3MgVGVzdFRyaWdnZXJz UHV0OgorCisgICAgQHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCdyZXF1aXJlX2RhdGFiYXNlX2Nv bm5lY3Rpb24nKQorICAgIGRlZiB0ZXN0X3RyaWdnZXJfcHV0KHNlbGYsIGNvbnRleHRfb2ZfdGVz dHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBzZW5kaW5nIHBvc3QgcmVxdWVzdCB0byBh ZGQgdHJpZ2dlcgorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisK KyAgICAgICAgdXJsID0gJy9icm93c2VyL3RyaWdnZXIvb2JqLycKKyAgICAgICAgaHR0cF9jbGll bnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9IGNv bnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlcnZlcl9kYXRhID0gY29udGV4dF9v Zl90ZXN0c1snc2VydmVyX2luZm9ybWF0aW9uJ10KIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAg ICAgICAgc3VwZXIoVHJpZ2dlcnNVcGRhdGVUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQotICAgICAg ICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFt ZSJdCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFd Ci0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAg ICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAgICBkYl9jb24gPSBk YXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNl cnZlcl9pZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25u ZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAi Q291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gdXBkYXRlIGEgdHJpZ2dlci4iKQotICAg ICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KLSAgICAgICAgc2No ZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgZGJfbmFtZSA9IHNlcnZlcl9kYXRh WydkYl9uYW1lJ10KKyAgICAgICAgc2VydmVyX2lkID0gc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCdd CisgICAgICAgIGRiX2lkID0gc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2NoZW1hX2lk ID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9pZCddCisgICAgICAgIHNjaGVtYV9uYW1lID0gc2VydmVy X2RhdGFbJ3NjaGVtYV9uYW1lJ10KKworICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFf dXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQogICAgICAgICBp ZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3Vs ZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIHVwZGF0ZSBhIHRyaWdnZXIuIikKLSAgICAgICAgc2Vs Zi50YWJsZV9uYW1lID0gInRhYmxlX3RyaWdnZXJfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6 OF0pCi0gICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNl bGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkKLSAgICAgICAg c2VsZi5mdW5jX25hbWUgPSAidHJpZ2dlcl9mdW5jX2FkZF8lcyIgJSBzdHIodXVpZC51dWlkNCgp KVsxOjhdCi0gICAgICAgIHNlbGYuZnVuY3Rpb25faW5mbyA9IFwKLSAgICAgICAgICAgIHRyaWdn ZXJfZnVuY3NfdXRpbHMuY3JlYXRlX3RyaWdnZXJfZnVuY3Rpb25fd2l0aF90cmlnZ2VyKAotICAg ICAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUs IHNlbGYuZnVuY19uYW1lKQotICAgICAgICBzZWxmLnRyaWdnZXJfbmFtZSA9ICJ0ZXN0X3RyaWdn ZXJfZGVsZXRlXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxmLnRy aWdnZXJfaWQgPSB0cmlnZ2Vyc191dGlscy5jcmVhdGVfdHJpZ2dlcihzZWxmLnNlcnZlciwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudHJpZ2dl cl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmZ1bmNfbmFtZSkKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291 bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSB0cmlnZ2VyLiIpCisgICAgICAgIHRhYmxl X25hbWUgPSAidGFibGVfdHJpZ2dlcl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAg ICAgICAgdGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlcnZlciwgZGJfbmFt ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9u YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVf bmFtZSkKKyAgICAgICAgZnVuY19uYW1lID0gInRyaWdnZXJfZnVuY19hZGRfJXMiICUgc3RyKHV1 aWQudXVpZDQoKSlbMTo4XQorICAgICAgICB0cmlnZ2VyX2Z1bmNzX3V0aWxzLmNyZWF0ZV90cmln Z2VyX2Z1bmN0aW9uX3dpdGhfdHJpZ2dlcigKKyAgICAgICAgICAgIHNlcnZlciwgZGJfbmFtZSwg c2NoZW1hX25hbWUsIGZ1bmNfbmFtZSkKKworICAgICAgICB0cmlnZ2VyX25hbWUgPSAidGVzdF90 cmlnZ2VyX2FkZF8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgdHJpZ2dl cl9pZCA9IHRyaWdnZXJzX3V0aWxzLmNyZWF0ZV90cmlnZ2VyKHNlcnZlciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxl X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0cmlnZ2VyX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmdW5jX25hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAg IiIiVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0cmlnZ2VyIHVuZGVyIHRhYmxlIG5vZGUuIiIi Ci0gICAgICAgIHRyaWdnZXJfcmVzcG9uc2UgPSB0cmlnZ2Vyc191dGlscy52ZXJpZnlfdHJpZ2dl cihzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudHJpZ2dlcl9uYW1lKQorICAgICAg ICB0cmlnZ2VyX3Jlc3BvbnNlID0gdHJpZ2dlcnNfdXRpbHMudmVyaWZ5X3RyaWdnZXIoc2VydmVy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRyaWdnZXJfbmFtZSkKICAgICAgICAgaWYgbm90IHRyaWdnZXJfcmVzcG9u c2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSB0cmln Z2VyIHRvIGRlbGV0ZS4iKQotICAgICAgICBkYXRhID0geyJpZCI6IHNlbGYudHJpZ2dlcl9pZCwK LSAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhpcyBpcyB0ZXN0IGNvbW1lbnQuIgot ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoCi0g ICAgICAgICAgICAiezB9ezF9L3syfS97M30vezR9L3s1fS97Nn0iLmZvcm1hdChzZWxmLnVybCwg dXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9pZCwgc2VsZi50YWJs ZV9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYudHJpZ2dlcl9pZCksCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBm aW5kIHRoZSB0cmlnZ2VyLiIpCisKKyAgICAgICAgZGF0YSA9IHsKKyAgICAgICAgICAgICJpZCI6 IHRyaWdnZXJfaWQsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhpcyBpcyB0ZXN0IGNv bW1lbnQuIgorICAgICAgICB9CisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQucHV0KAor ICAgICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0vezZ9Ii5mb3JtYXQodXJsLCB1dGls cy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZXJ2ZXJfaWQsIGRiX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2NoZW1hX2lkLCB0YWJsZV9pZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJfaWQpLAogICAgICAgICAgICAg ZGF0YT1qc29uLmR1bXBzKGRhdGEpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVl CiAgICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2Nv ZGUsIDIwMCkKIAotICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIyBEaXNjb25uZWN0 IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNl KHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICByZXNwb25zZS5zdGF0 dXNfY29kZSB8IHNob3VsZC5lcXVhbCgyMDApCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90ZXN0cy9fX2luaXRf Xy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3Rlc3RzL19faW5pdF9fLnB5CmluZGV4IDM0YTNmNjY2Li41OTAwMjZhZCAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGVzdHMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVzdHMvX19pbml0X18ucHkK QEAgLTYsMTEgKzYsMyBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQ b3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLWZyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLQotCi1jbGFzcyBTY2hlbWFUZXN0 R2VuZXJhdG9yKEJhc2VUZXN0R2VuZXJhdG9yKToKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgot ICAgICAgICByZXR1cm4gW10KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rlc3RzL3Rlc3Rfc2NoZW1hX2FkZC5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3Rlc3RzL3Rlc3Rfc2NoZW1hX2FkZC5weQppbmRleCBjMTlmZGE4ZC4uZjIzMDdiNGEg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3Rlc3RzL3Rlc3Rfc2NoZW1hX2FkZC5weQorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90ZXN0cy90 ZXN0X3NjaGVtYV9hZGQucHkKQEAgLTEwLDM5ICsxMCw0OCBAQAogaW1wb3J0IGpzb24KIGltcG9y dCB1dWlkCiAKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dz ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMg XAogICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJh c2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBp bXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIg aW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbiwgXAorICAgIGFzc2VydF9qc29uX3ZhbHVl c19mcm9tX3Jlc3BvbnNlCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QK IGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1 dGlscwogCiAKLWNsYXNzIFNjaGVtYUFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAg ICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCBuZXcgc2NoZW1hIHVuZGVyIGRhdGFiYXNlIG5vZGUu ICIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBm b3Igc2NoZW1hIG5vZGUuCi0gICAgICAgICgnQ2hlY2sgU2NoZW1hIE5vZGUgVVJMJywgZGljdCh1 cmw9Jy9icm93c2VyL3NjaGVtYS9vYmovJykpCi0gICAgXQorY2xhc3MgVGVzdFNjaGVtYUFkZDoK KyAgICBkZWYgdGVzdF9zY2hlbWFfYWRkKHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMp OgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgc2NoZW1hIGFkZCByZXF1ZXN0IGlzIHNl bmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAg ICIiIgorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9zY2hlbWEvb2JqLycKIAotICAgIGRlZiBy dW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCBzY2hlbWEg dW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCi0gICAgICAgIGRhdGFiYXNlX2luZm8gPSBwYXJlbnRf bm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXQotICAgICAgICBzZXJ2ZXJfaWQgPSBkYXRhYmFzZV9p bmZvWyJzZXJ2ZXJfaWQiXQorICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNb J3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydz ZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0 YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydz ZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQn XQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KIAot ICAgICAgICBkYl9pZCA9IGRhdGFiYXNlX2luZm9bImRiX2lkIl0KICAgICAgICAgZGJfY29uID0g ZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfaWQpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5kYl9pZCkKICAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBj b25uZWN0ZWQuIjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5l Y3QgdG8gZGF0YWJhc2UgdG8gYWRkIHRoZSBzY2hlbWEuIikKKyAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKKwogICAgICAgICBkYl91 c2VyID0gc2VsZi5zZXJ2ZXJbInVzZXJuYW1lIl0KKyAgICAgICAgc2NoZW1hX25hbWUgPSAidGVz dF9zY2hlbWFfezB9Ii5mb3JtYXQoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKICAgICAgICAgZGF0 YSA9IHsKICAgICAgICAgICAgICJkZWZmdW5jYWNsIjogW10sCiAgICAgICAgICAgICAiZGVmc2Vx YWNsIjogW10sCiAgICAgICAgICAgICAiZGVmdGJsYWNsIjogW10sCiAgICAgICAgICAgICAiZGVm dHlwZWFjbCI6IFtdLAotICAgICAgICAgICAgIm5hbWUiOiAidGVzdF9zY2hlbWFfezB9Ii5mb3Jt YXQoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSksCisgICAgICAgICAgICAibmFtZSI6IHNjaGVtYV9u YW1lLAogICAgICAgICAgICAgIm5hbWVzcGFjZW93bmVyIjogZGJfdXNlciwKICAgICAgICAgICAg ICJuc3BhY2wiOiBbCiAgICAgICAgICAgICAgICAgewpAQCAtNjUsOCArNzQsMjEgQEAgY2xhc3Mg U2NoZW1hQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgXSwKICAg ICAgICAgICAgICJzZWNsYWJlbHMiOiBbXQogICAgICAgICB9Ci0gICAgICAgIHJlc3BvbnNlID0g c2VsZi50ZXN0ZXIucG9zdChzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8n ICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsg Jy8nICsgc3RyKGRiX2lkKSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn LycsIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh bHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKworICAgICAgICByZXNwb25zZSA9IHNlbGYu dGVzdGVyLnBvc3QoCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSAr ICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAg ICAgIHN0cihzZWxmLmRiX2lkKSArICcvJywKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhk YXRhKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAgICAgICBy ZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpz b25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAg IGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlKAorICAgICAgICAgICAganNvbl9yZXNw b25zZSwKKyAgICAgICAgICAgICdzY2hlbWEnLAorICAgICAgICAgICAgJ3BnYWRtaW4ubm9kZS5z Y2hlbWEnLAorICAgICAgICAgICAgVHJ1ZSwKKyAgICAgICAgICAgICdpY29uLXNjaGVtYScsCisg ICAgICAgICAgICBzY2hlbWFfbmFtZQorICAgICAgICApCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90ZXN0cy90 ZXN0X3NjaGVtYV9kZWxldGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90ZXN0cy90ZXN0X3NjaGVtYV9kZWxldGUucHkKaW5k ZXggYWU4ZTA0N2IuLmI4NDYzNzIxIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90ZXN0cy90ZXN0X3NjaGVtYV9k ZWxldGUucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGVzdHMvdGVzdF9zY2hlbWFfZGVsZXRlLnB5CkBAIC05LDU4ICs5 LDcwIEBACiAKIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9y dCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAogICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9t IHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRt aW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zy b20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9f anNvbgogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jl c3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20g LiBpbXBvcnQgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiAKIAotY2xhc3MgU2NoZW1hRGVsZXRlVGVz dENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgYWRkIG5l dyBzY2hlbWEgdW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCitjbGFzcyBUZXN0U2NoZW1hRGVsZXRl OgorICAgIGRlZiB0ZXN0X3NjaGVtYV9kZWxldGUoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90 ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBzY2hlbWEgZGVsZXRlIHJlcXVl c3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMK KyAgICAgICAgIiIiCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3NjaGVtYS9vYmovJworCisg ICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAg ICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNl bGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRhYmFzZSddWy0xXQorICAgICAg ICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAg IHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIHNlbGYuZGJf bmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQogCi0gICAgc2NlbmFyaW9zID0gWwot ICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBleHRlbnNpb24gbm9kZS4KLSAgICAg ICAgKCdDaGVjayBTY2hlbWEgTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvc2NoZW1hL29i ai8nKSkKLSAgICBdCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0 YWJhc2Uoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRi X2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKKyAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKIAotICAgIGRlZiBz ZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5kYXRhYmFzZV9pbmZvID0gcGFyZW50X25vZGVfZGlj dFsiZGF0YWJhc2UiXVstMV0KLSAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5kYXRhYmFzZV9p bmZvWyJkYl9uYW1lIl0KLSAgICAgICAgIyBDaGFuZ2UgdGhlIGRiIG5hbWUsIHNvIHRoYXQgc2No ZW1hIHdpbGwgY3JlYXRlIGluIG5ld2x5IGNyZWF0ZWQgZGIKICAgICAgICAgc2VsZi5zY2hlbWFf bmFtZSA9ICJzY2hlbWFfZ2V0XyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KICAgICAgICAg Y29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0aW9uKHNlbGYuZGJfbmFtZSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2Vy bmFtZSddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnaG9zdCddLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3BvcnQnXSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydwb3J0J10sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsn c3NsbW9kZSddKQogICAgICAgICBzZWxmLnNjaGVtYV9kZXRhaWxzID0gc2NoZW1hX3V0aWxzLmNy ZWF0ZV9zY2hlbWEoY29ubmVjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCi0KLSAgICBkZWYgcnVu VGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgc2NoZW1h IHVuZGVyIGRhdGFiYXNlIG5vZGUuICIiIgotICAgICAgICBzZXJ2ZXJfaWQgPSBzZWxmLmRhdGFi YXNlX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIGRiX2lkID0gc2VsZi5kYXRhYmFzZV9pbmZv WyJkYl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJh c2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwgZGJfaWQpCi0gICAgICAgIGlmIG5vdCBk Yl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o IkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGRlbGV0ZSB0aGUiCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIiBzY2hlbWEuIikKLQotICAgICAgICBzY2hlbWFfaWQgPSBzZWxm LnNjaGVtYV9kZXRhaWxzWzBdCi0gICAgICAgIHNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfZGV0 YWlsc1sxXQogICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3Nj aGVtYXMoc2VsZi5zZXJ2ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUp CiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CiAgICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVsZXRlLiIpCiAKLSAgICAgICAg cmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVS X0dST1VQKSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvJyArIHN0 cihzZXJ2ZXJfaWQpICsgJy8nICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RyKGRiX2lkKSArICcvJyArIHN0cihzY2hlbWFfaWQpLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgIHNlbGYu YXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIHNlbGYuc2No ZW1hX2lkID0gc2VsZi5zY2hlbWFfZGV0YWlsc1swXQorCisgICAgICAgIHJlc3BvbnNlID0gc2Vs Zi50ZXN0ZXIuZGVsZXRlKAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9V UCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCisgICAg ICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2No ZW1hX2lkKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKIAotICAgIGRlZiB0 ZWFyRG93bihzZWxmKToKLSAgICAgICAgcGFzcworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29k ZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252 ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBz aG91bGQuaGF2ZS5rZXkoJ2luZm8nKSA+IHNob3VsZC5iZS5lcXVhbC50bygKKyAgICAgICAgICAg ICdTY2hlbWEgZHJvcHBlZCcpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5r ZXkoJ2Vycm9ybXNnJykgPiBzaG91bGQuYmUuZW1wdHkKKyAgICAgICAganNvbl9yZXNwb25zZSB8 IHNob3VsZC5oYXZlLmtleSgnZGF0YScpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQu aGF2ZS5rZXkoJ3Jlc3VsdCcpID4gc2hvdWxkLmJlLm5vbmUKKyAgICAgICAganNvbl9yZXNwb25z ZSB8IHNob3VsZC5oYXZlLmtleSgnc3VjY2VzcycpID4gc2hvdWxkLmJlLmVxdWFsLnRvKDEpCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90ZXN0cy90ZXN0X3NjaGVtYV9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90ZXN0cy90ZXN0X3Nj aGVtYV9nZXQucHkKaW5kZXggZDEwMzZiMzMuLjRlYTQ4NzJlIDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90ZXN0 cy90ZXN0X3NjaGVtYV9nZXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVzdHMvdGVzdF9zY2hlbWFfZ2V0LnB5CkBA IC02LDQ2ICs2LDU4IEBACiAjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBv c3RncmVTUUwgTGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2Zyb20gZ3JhcHBhIGltcG9y dCBzaG91bGQKIAogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAogICAgIGRhdGFiYXNlX3V0aWxzCiBmcm9t IHBnYWRtaW4udXRpbHMgaW1wb3J0IHNlcnZlcl91dGlscyBhcyBzZXJ2ZXJfdXRpbHMKLWZyb20g cGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1p bi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJv bSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19q c29uCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVz c2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogCiAKLWNs YXNzIFNjaGVtYUdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBj bGFzcyB3aWxsIGFkZCBuZXcgc2NoZW1hIHVuZGVyIGRhdGFiYXNlIG5vZGUuICIiIgotICAgIHNj ZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZXh0ZW5zaW9u IG5vZGUuCi0gICAgICAgICgnQ2hlY2sgU2NoZW1hIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93 c2VyL3NjaGVtYS9vYmovJykpCi0gICAgXQorY2xhc3MgVGVzdFNjaGVtYUdldDoKKyAgICBkZWYg dGVzdF9zY2hlbWFfZ2V0KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAg ICAiIiIKKyAgICAgICAgV2hlbiB0aGUgc2NoZW1hIGdldCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhl IGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAg ICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQogCi0gICAgZGVmIHJ1blRl c3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHNjaGVtYSB1 bmRlciBkYXRhYmFzZSBub2RlLiAiIiIKLSAgICAgICAgc2NoZW1hID0gcGFyZW50X25vZGVfZGlj dFsic2NoZW1hIl1bLTFdCi0gICAgICAgIGRiX2lkID0gc2NoZW1hWyJkYl9pZCJdCi0gICAgICAg IHNlcnZlcl9pZCA9IHNjaGVtYVsic2VydmVyX2lkIl0KKyAgICAgICAgdXJsID0gJy9icm93c2Vy L3NjaGVtYS9vYmovJwogCi0gICAgICAgIHNlcnZlcl9yZXNwb25zZSA9IHNlcnZlcl91dGlscy5j b25uZWN0X3NlcnZlcihzZWxmLCBzZXJ2ZXJfaWQpCi0gICAgICAgIGlmIG5vdCBzZXJ2ZXJfcmVz cG9uc2VbImRhdGEiXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o IkNvdWxkIG5vdCBjb25uZWN0IHRvIHNlcnZlciB0byBjb25uZWN0IHRoZSIKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiIGRhdGFiYXNlLiIpCisgICAgICAgIHNlbGYudGVzdGVyID0gY29u dGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRl eHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRf bm9kZV9kaWN0WydkYXRhYmFzZSddWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYu c2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZl cl9kYXRhWydkYl9pZCddCisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFb J2RiX25hbWUnXQorCisgICAgICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0 WydzY2hlbWEnXVstMV0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2lu Zm9bJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9p bmZvWydzY2hlbWFfaWQnXQogCiAgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5l Y3RfZGF0YWJhc2Uoc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX2lkKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCiAgICAgICAg IGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6Ci0gICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGdl dCB0aGUgc2NoZW1hLiIpCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBj b25uZWN0IHRvIGRhdGFiYXNlLiIpCiAKLSAgICAgICAgc2NoZW1hX2lkID0gc2NoZW1hWyJzY2hl bWFfaWQiXQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCi0gICAg ICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKLSAgICAg ICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKGRiX2lkKSArCi0gICAgICAgICAgICAn LycgKyBzdHIoc2NoZW1hX2lkKSwKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQo CisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAg ICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxm LmRiX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpLAogICAgICAg ICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs cyhzY2hlbWFfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLSAgICAgICAgIyBEaXNjb25uZWN0 IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNl KHNlbGYsIHNlcnZlcl9pZCwgZGJfaWQpCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUg fCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVy dF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hv dWxkLmhhdmUua2V5KCdvaWQnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUu a2V5KCduYW1lJykgPiBcCisgICAgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8oc2VsZi5zY2hl bWFfbmFtZSkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgZGF0YWJhc2VfdXRp bHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lk LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVzdHMvdGVzdF9zY2hlbWFfcHV0LnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVz dHMvdGVzdF9zY2hlbWFfcHV0LnB5CmluZGV4IDM5ZDJiZjkxLi5jMjk2NjQxMyAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGVzdHMvdGVzdF9zY2hlbWFfcHV0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rlc3RzL3Rlc3Rfc2NoZW1h X3B1dC5weQpAQCAtMTAsMjcgKzEwLDQ1IEBACiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAor aW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGls cyBhcyBcCiAgICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBv cnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1w b3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbiwgXAorICAgIGFzc2VydF9qc29uX3ZhbHVlc19m cm9tX3Jlc3BvbnNlCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZy b20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGls cwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIAogCi1jbGFzcyBTY2hlbWFQ dXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCB1 cGRhdGUgdGhlIHNjaGVtYSB1bmRlciBkYXRhYmFzZSBub2RlLiAiIiIKLSAgICBza2lwX29uX2Rh dGFiYXNlID0gWydncGRiJ10KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcg ZGVmYXVsdCBVUkwgZm9yIGV4dGVuc2lvbiBub2RlLgotICAgICAgICAoJ0NoZWNrIFNjaGVtYSBO b2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9zY2hlbWEvb2JqLycpKQotICAgIF0KK0BweXRl c3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNzIFRlc3RTY2hlbWFQdXQ6Cisg ICAgZGVmIHRlc3Rfc2NoZW1hX3B1dChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToK KyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIHNjaGVtYSBwdXQgcmVxdWVzdCBpcyBzZW5k IHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAi IiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAg ICB1cmwgPSAnL2Jyb3dzZXIvc2NoZW1hL29iai8nCisKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBj b250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29u dGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVu dF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2Vs Zi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2Vy dmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0 YVsnZGJfbmFtZSddCisKKyAgICAgICAgc2VsZi5zY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2Rp Y3RbJ3NjaGVtYSddWy0xXQorCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5l Y3RfZGF0YWJhc2Uoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYg bm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKKyAgICAgICAgICAg IHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKIAotICAg IGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc3VwZXIoU2NoZW1hUHV0VGVzdENhc2UsIHNlbGYp LnNldFVwKCkKLSAgICAgICAgc2VsZi5kYXRhYmFzZV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsi ZGF0YWJhc2UiXVstMV0KLSAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5kYXRhYmFzZV9pbmZv WyJkYl9uYW1lIl0KLSAgICAgICAgIyBDaGFuZ2UgdGhlIGRiIG5hbWUsIHNvIHRoYXQgc2NoZW1h IHdpbGwgY3JlYXRlIGluIG5ld2x5IGNyZWF0ZWQgZGIKICAgICAgICAgc2VsZi5zY2hlbWFfbmFt ZSA9ICJzY2hlbWFfZ2V0XyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KICAgICAgICAgY29u bmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0aW9uKHNlbGYuZGJfbmFtZSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFt ZSddLApAQCAtNDAsMjUgKzU4LDEzIEBAIGNsYXNzIFNjaGVtYVB1dFRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2VydmVyWydzc2xtb2RlJ10pCiAgICAgICAgIHNlbGYuc2NoZW1hX2RldGFpbHMgPSBz Y2hlbWFfdXRpbHMuY3JlYXRlX3NjaGVtYShjb25uZWN0aW9uLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkK LQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxs IGRlbGV0ZSBzY2hlbWEgdW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCi0KLSAgICAgICAgc2VydmVy X2lkID0gc2VsZi5kYXRhYmFzZV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBkYl9pZCA9IHNl bGYuZGF0YWJhc2VfaW5mb1siZGJfaWQiXQotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGls cy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQsIGRiX2lkKQot ICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAg cmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBkZWxldGUg dGhlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgc2NoZW1hLiIpCi0gICAgICAgIHNj aGVtYV9pZCA9IHNlbGYuc2NoZW1hX2RldGFpbHNbMF0KLSAgICAgICAgc2NoZW1hX25hbWUgPSBz ZWxmLnNjaGVtYV9kZXRhaWxzWzFdCiAgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91 dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKICAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byB1cGRhdGUu IikKIAorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2RldGFpbHNbMF0KICAg ICAgICAgZGJfdXNlciA9IHNlbGYuc2VydmVyWyJ1c2VybmFtZSJdCiAgICAgICAgIGRhdGEgPSB7 CiAgICAgICAgICAgICAiZGVmZnVuY2FjbCI6IHsKQEAgLTEyNywxNiArMTMzLDI4IEBAIGNsYXNz IFNjaGVtYVB1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgfSwKLSAgICAgICAg ICAgICJpZCI6IHNjaGVtYV9pZAorICAgICAgICAgICAgImlkIjogc2VsZi5zY2hlbWFfaWQKICAg ICAgICAgfQotICAgICAgICBwdXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoCi0gICAgICAg ICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsgc3RyKHNlcnZl cl9pZCkgKwotICAgICAgICAgICAgJy8nICsgc3RyKGRiX2lkKSArICcvJyArIHN0cihzY2hlbWFf aWQpLAorCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KAorICAgICAgICAgICAg dXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNl bGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycg KworICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSwKICAgICAgICAgICAgIGRhdGE9anNv bi5kdW1wcyhkYXRhKSwgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQogCi0gICAgICAgIHNlbGYuYXNz ZXJ0RXF1YWxzKHB1dF9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotICAgICAgICAjIERpc2Nv bm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0 YWJhc2Uoc2VsZiwgc2VydmVyX2lkLCBkYl9pZCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2Nv ZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29u dmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBwcmludChqc29uX3Jlc3Bv bnNlKQorICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAgICAg ICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAnc2NoZW1hJywKKyAgICAgICAgICAgICdw Z2FkbWluLm5vZGUuc2NoZW1hJywKKyAgICAgICAgICAgIFRydWUsCisgICAgICAgICAgICAnaWNv bi1zY2hlbWEnLAorICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZQorICAgICAgICApCiAKICAg ICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgIHBhc3MKKyAgICAgICAgZGF0YWJhc2VfdXRp bHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lk LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVzdHMvdGVzdF91dGlscy5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rlc3RzL3Rl c3RfdXRpbHMucHkKaW5kZXggODI2YzAwM2MuLmJmYWFiODE2IDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90ZXN0 cy90ZXN0X3V0aWxzLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rlc3RzL3Rlc3RfdXRpbHMucHkKQEAgLTksOSArOSwx MSBAQAogCiBpbXBvcnQgc3lzCiAKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnV0 aWxzIGltcG9ydCBcCiAgICAgRGF0YVR5cGVSZWFkZXIKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0 ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3Rf Z2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogCiBpZiBzeXMudmVyc2lvbl9pbmZv IDwgKDMsIDMpOgogICAgIGZyb20gbW9jayBpbXBvcnQgcGF0Y2gsIE1vY2sKQEAgLTQzLDc2ICs0 NSwxNDMgQEAgX2RlZmF1bHRfbWFuYWdlciA9IGRpY3QoCiApCiAKIAotY2xhc3MgRGF0YVR5cGVS ZWFkZXJUZXN0KEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAg ICgnU2NoZW1hIE9pZCBpcyBwYXNzZWQgdG8gdGhlIFNRTCBSZW5kZXJlcicsCi0gICAgICAgICBk aWN0KAotICAgICAgICAgICAgIG1hbmFnZXI9X2RlZmF1bHRfbWFuYWdlciwKLSAgICAgICAgICAg ICBleGVjdXRlX3JldHVybl92YWx1ZXM9X2RlZmF1bHRfZGF0YWJhc2VfcmVzcG9uc2UsCi0gICAg ICAgICAgICAgZGF0YV90eXBlX3RlbXBsYXRlX3BhdGg9J3NvbWVwbGF0ZS93aGVyZS90ZW1wbGF0 ZXMvYXJlJywKLSAgICAgICAgICAgICBzcWxfY29uZGl0aW9uPSduZXcgY29uZGl0aW9uJywKLSAg ICAgICAgICAgICBzY2hlbWFfb2lkPScxMjMnLAotICAgICAgICAgICAgIGFkZF9zZXJpYWxzPUZh bHNlLAotICAgICAgICAgICAgIGV4cGVjdGVkX3NxbF90ZW1wbGF0ZV9wYXRoPSdzb21lcGxhdGUv d2hlcmUvdGVtcGxhdGVzL2FyZScsCi0gICAgICAgICAgICAgZXhwZWN0ZWRfZnVuY3Rpb25fb3V0 cHV0PV9kZWZhdWx0X2V4cGVjdGVkX2Z1bmN0aW9uX291dHB1dAotICAgICAgICAgKSksCi0gICAg ICAgICgnV2hlbiBubyBkYXRhX3R5cGVfdGVtcGxhdGVfcGF0aCBpcyBwcmVzZW50IGluIGNsYXNz LCAnCi0gICAgICAgICAnc2hvdWxkIGNyZWF0ZSB0ZW1wbGF0ZSBwYXRoIHdpdGggdmVyc2lvbiBu dW1iZXInLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICBtYW5hZ2VyPV9kZWZhdWx0X21h bmFnZXIsCi0gICAgICAgICAgICAgZXhlY3V0ZV9yZXR1cm5fdmFsdWVzPV9kZWZhdWx0X2RhdGFi YXNlX3Jlc3BvbnNlLAotICAgICAgICAgICAgIHNxbF9jb25kaXRpb249J25ldyBjb25kaXRpb24n LAotICAgICAgICAgICAgIHNjaGVtYV9vaWQ9JzEyMycsCi0gICAgICAgICAgICAgYWRkX3Nlcmlh bHM9RmFsc2UsCi0gICAgICAgICAgICAgZXhwZWN0ZWRfc3FsX3RlbXBsYXRlX3BhdGg9J2RhdGF0 eXBlL3NxbC8jNDU2IycsCi0gICAgICAgICAgICAgZXhwZWN0ZWRfZnVuY3Rpb25fb3V0cHV0PV9k ZWZhdWx0X2V4cGVjdGVkX2Z1bmN0aW9uX291dHB1dAotICAgICAgICAgKSksCi0gICAgICAgICgn V2hlbiBubyBkYXRhX3R5cGVfdGVtcGxhdGVfcGF0aCBpcyBwcmVzZW50IGluIGNsYXNzIGZvciBH cmVlblBsdW0sICcKLSAgICAgICAgICdzaG91bGQgY3JlYXRlIHRlbXBsYXRlIHBhdGggd2l0aCBn cGRiIGFuZCB0aGUgdmVyc2lvbiBudW1iZXInLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAg ICBtYW5hZ2VyPWRpY3QoCi0gICAgICAgICAgICAgICAgIHNlcnZlcl90eXBlPSdncGRiJywKLSAg ICAgICAgICAgICAgICAgdmVyc2lvbj0nNDU2JwotICAgICAgICAgICAgICksCi0gICAgICAgICAg ICAgZXhlY3V0ZV9yZXR1cm5fdmFsdWVzPV9kZWZhdWx0X2RhdGFiYXNlX3Jlc3BvbnNlLAotICAg ICAgICAgICAgIHNxbF9jb25kaXRpb249J25ldyBjb25kaXRpb24nLAotICAgICAgICAgICAgIHNj aGVtYV9vaWQ9JzEyMycsCi0gICAgICAgICAgICAgYWRkX3NlcmlhbHM9RmFsc2UsCi0gICAgICAg ICAgICAgZXhwZWN0ZWRfc3FsX3RlbXBsYXRlX3BhdGg9J2RhdGF0eXBlL3NxbC8jZ3BkYiM0NTYj JywKLSAgICAgICAgICAgICBleHBlY3RlZF9mdW5jdGlvbl9vdXRwdXQ9X2RlZmF1bHRfZXhwZWN0 ZWRfZnVuY3Rpb25fb3V0cHV0Ci0gICAgICAgICApKQotICAgIF0KK2NsYXNzIFRlc3REYXRhVHlw ZVJlYWRlcihCYXNlVGVzdEdlbmVyYXRvcik6CiAKICAgICBAcGF0Y2goJ3BnYWRtaW4uYnJvd3Nl ci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudXRpbHMnCiAgICAgICAg ICAgICcucmVuZGVyX3RlbXBsYXRlJykKLSAgICBkZWYgcnVuVGVzdChzZWxmLCB0ZW1wbGF0ZV9t b2NrKToKKyAgICBkZWYgdGVzdF9zY2hlbWFfb2lkKHNlbGYsIHRlbXBsYXRlX21vY2spOgorICAg ICAgICAiIiJTY2hlbWEgT2lkIGlzIHBhc3NlZCB0byB0aGUgU1FMIFJlbmRlcmVyIiIiCisgICAg ICAgIG1hbmFnZXIgPSBfZGVmYXVsdF9tYW5hZ2VyCisgICAgICAgIHNxbF9jb25kaXRpb24gPSAn bmV3IGNvbmRpdGlvbicKKyAgICAgICAgc2NoZW1hX29pZCA9ICcxMjMnCisgICAgICAgIGFkZF9z ZXJpYWxzID0gRmFsc2UKKyAgICAgICAgZXhwZWN0ZWRfc3FsX3RlbXBsYXRlX3BhdGggPSAnc29t ZXBsYXRlL3doZXJlL3RlbXBsYXRlcy9hcmUnCisgICAgICAgIGV4cGVjdGVkX2Z1bmN0aW9uX291 dHB1dCA9IF9kZWZhdWx0X2V4cGVjdGVkX2Z1bmN0aW9uX291dHB1dAogICAgICAgICB0ZW1wbGF0 ZV9tb2NrLnJldHVybl92YWx1ZSA9ICdTb21lIFNRTCcKICAgICAgICAgY29ubmVjdGlvbiA9IE1v Y2soKQogICAgICAgICBjb25uZWN0aW9uLmV4ZWN1dGVfMmRhcnJheS5yZXR1cm5fdmFsdWUgPSBb CiAgICAgICAgICAgICBUcnVlLAogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICdyb3dz Jzogc2VsZi5leGVjdXRlX3JldHVybl92YWx1ZXMKKyAgICAgICAgICAgICAgICAncm93cyc6IF9k ZWZhdWx0X2RhdGFiYXNlX3Jlc3BvbnNlCiAKICAgICAgICAgICAgIH0KICAgICAgICAgXQotCiAg ICAgICAgIHJlYWRlciA9IERhdGFUeXBlUmVhZGVyKCkKICAgICAgICAgcmVhZGVyLm1hbmFnZXIg PSBNb2NrKCkKLSAgICAgICAgcmVhZGVyLm1hbmFnZXIuc2VydmVyX3R5cGUgPSBzZWxmLm1hbmFn ZXJbJ3NlcnZlcl90eXBlJ10KLSAgICAgICAgcmVhZGVyLm1hbmFnZXIudmVyc2lvbiA9IHNlbGYu bWFuYWdlclsndmVyc2lvbiddCisgICAgICAgIHJlYWRlci5tYW5hZ2VyLnNlcnZlcl90eXBlID0g bWFuYWdlclsnc2VydmVyX3R5cGUnXQorICAgICAgICByZWFkZXIubWFuYWdlci52ZXJzaW9uID0g bWFuYWdlclsndmVyc2lvbiddCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHJlYWRlci5kYXRh X3R5cGVfdGVtcGxhdGVfcGF0aCA9IHNlbGYuZGF0YV90eXBlX3RlbXBsYXRlX3BhdGgKKyAgICAg ICAgICAgIHJlYWRlci5kYXRhX3R5cGVfdGVtcGxhdGVfcGF0aCA9ICdzb21lcGxhdGUvd2hlcmUv dGVtcGxhdGVzL2FyZScKICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgogICAgICAgICAg ICAgJycKLSAgICAgICAgcmVzdWx0ID0gcmVhZGVyLmdldF90eXBlcyhjb25uZWN0aW9uLCBzZWxm LnNxbF9jb25kaXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5h ZGRfc2VyaWFscywgc2VsZi5zY2hlbWFfb2lkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJl c3VsdFsxXSwgc2VsZi5leHBlY3RlZF9mdW5jdGlvbl9vdXRwdXQpCi0gICAgICAgIHNlbGYuYXNz ZXJ0VHJ1ZShyZXN1bHRbMF0pCisKKyAgICAgICAgcmVzdWx0ID0gcmVhZGVyLmdldF90eXBlcygK KyAgICAgICAgICAgIGNvbm5lY3Rpb24sCisgICAgICAgICAgICBzcWxfY29uZGl0aW9uLAorICAg ICAgICAgICAgYWRkX3NlcmlhbHMsCisgICAgICAgICAgICBzY2hlbWFfb2lkCisgICAgICAgICkK KworICAgICAgICByZXN1bHQgfCBzaG91bGQuaGF2ZS5sZW5ndGgub2YoMikKKyAgICAgICAgcmVz dWx0WzFdIHwgc2hvdWxkLmJlLmVxdWFsLnRvKGV4cGVjdGVkX2Z1bmN0aW9uX291dHB1dCkKKyAg ICAgICAgcmVzdWx0WzBdIHwgc2hvdWxkLmJlLnRydWUKKworICAgICAgICBjb25uZWN0aW9uLmV4 ZWN1dGVfMmRhcnJheS5hc3NlcnRfY2FsbGVkX3dpdGgoJ1NvbWUgU1FMJykKKyAgICAgICAgdGVt cGxhdGVfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICBleHBlY3RlZF9zcWxf dGVtcGxhdGVfcGF0aCArICcvZ2V0X3R5cGVzLnNxbCcsCisgICAgICAgICAgICBjb25kaXRpb249 c3FsX2NvbmRpdGlvbiwKKyAgICAgICAgICAgIGFkZF9zZXJpYWxzPWFkZF9zZXJpYWxzLAorICAg ICAgICAgICAgc2NoZW1hX29pZD1zY2hlbWFfb2lkCisgICAgICAgICkKKworICAgIEBwYXRjaCgn cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy51 dGlscycKKyAgICAgICAgICAgJy5yZW5kZXJfdGVtcGxhdGUnKQorICAgIGRlZiB0ZXN0X25vX2Rh dGFfdHlwZV90ZW1wbGF0ZV9wYXRoKHNlbGYsIHRlbXBsYXRlX21vY2spOgorICAgICAgICAiIiIK KyAgICAgICAgV2hlbiBubyBkYXRhX3R5cGVfdGVtcGxhdGVfcGF0aCBpcyBwcmVzZW50IGluIGNs YXNzLAorICAgICAgICBzaG91bGQgY3JlYXRlIHRlbXBsYXRlIHBhdGggd2l0aCB2ZXJzaW9uIG51 bWJlcgorICAgICAgICAiIiIKKyAgICAgICAgbWFuYWdlciA9IF9kZWZhdWx0X21hbmFnZXIKKyAg ICAgICAgc3FsX2NvbmRpdGlvbiA9ICduZXcgY29uZGl0aW9uJworICAgICAgICBzY2hlbWFfb2lk ID0gJzEyMycKKyAgICAgICAgYWRkX3NlcmlhbHMgPSBGYWxzZQorICAgICAgICBleHBlY3RlZF9z cWxfdGVtcGxhdGVfcGF0aCA9ICdkYXRhdHlwZS9zcWwvIzQ1NiMnCisgICAgICAgIGV4cGVjdGVk X2Z1bmN0aW9uX291dHB1dCA9IF9kZWZhdWx0X2V4cGVjdGVkX2Z1bmN0aW9uX291dHB1dAorICAg ICAgICB0ZW1wbGF0ZV9tb2NrLnJldHVybl92YWx1ZSA9ICdTb21lIFNRTCcKKyAgICAgICAgY29u bmVjdGlvbiA9IE1vY2soKQorICAgICAgICBjb25uZWN0aW9uLmV4ZWN1dGVfMmRhcnJheS5yZXR1 cm5fdmFsdWUgPSBbCisgICAgICAgICAgICBUcnVlLAorICAgICAgICAgICAgeworICAgICAgICAg ICAgICAgICdyb3dzJzogX2RlZmF1bHRfZGF0YWJhc2VfcmVzcG9uc2UKKworICAgICAgICAgICAg fQorICAgICAgICBdCisgICAgICAgIHJlYWRlciA9IERhdGFUeXBlUmVhZGVyKCkKKyAgICAgICAg cmVhZGVyLm1hbmFnZXIgPSBNb2NrKCkKKyAgICAgICAgcmVhZGVyLm1hbmFnZXIuc2VydmVyX3R5 cGUgPSBtYW5hZ2VyWydzZXJ2ZXJfdHlwZSddCisgICAgICAgIHJlYWRlci5tYW5hZ2VyLnZlcnNp b24gPSBtYW5hZ2VyWyd2ZXJzaW9uJ10KKworICAgICAgICByZXN1bHQgPSByZWFkZXIuZ2V0X3R5 cGVzKAorICAgICAgICAgICAgY29ubmVjdGlvbiwKKyAgICAgICAgICAgIHNxbF9jb25kaXRpb24s CisgICAgICAgICAgICBhZGRfc2VyaWFscywKKyAgICAgICAgICAgIHNjaGVtYV9vaWQKKyAgICAg ICAgKQorCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5oYXZlLmxlbmd0aC5vZigyKQorICAgICAg ICByZXN1bHRbMV0gfCBzaG91bGQuYmUuZXF1YWwudG8oZXhwZWN0ZWRfZnVuY3Rpb25fb3V0cHV0 KQorICAgICAgICByZXN1bHRbMF0gfCBzaG91bGQuYmUudHJ1ZQorCisgICAgICAgIGNvbm5lY3Rp b24uZXhlY3V0ZV8yZGFycmF5LmFzc2VydF9jYWxsZWRfd2l0aCgnU29tZSBTUUwnKQorICAgICAg ICB0ZW1wbGF0ZV9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgKKyAgICAgICAgICAgIGV4cGVjdGVk X3NxbF90ZW1wbGF0ZV9wYXRoICsgJy9nZXRfdHlwZXMuc3FsJywKKyAgICAgICAgICAgIGNvbmRp dGlvbj1zcWxfY29uZGl0aW9uLAorICAgICAgICAgICAgYWRkX3NlcmlhbHM9YWRkX3NlcmlhbHMs CisgICAgICAgICAgICBzY2hlbWFfb2lkPXNjaGVtYV9vaWQKKyAgICAgICAgKQorCisgICAgQHBh dGNoKCdwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hl bWFzLnV0aWxzJworICAgICAgICAgICAnLnJlbmRlcl90ZW1wbGF0ZScpCisgICAgZGVmIHRlc3Rf bm9fZGF0YV90eXBlX3RlbXBsYXRlX3BhdGhfZm9yX2dwZGIoc2VsZiwgdGVtcGxhdGVfbW9jayk6 CisgICAgICAgICIiIgorICAgICAgICBXaGVuIG5vIGRhdGFfdHlwZV90ZW1wbGF0ZV9wYXRoIGlz IHByZXNlbnQgaW4gY2xhc3MgZm9yIEdyZWVuUGx1bSwKKyAgICAgICAgc2hvdWxkIGNyZWF0ZSB0 ZW1wbGF0ZSBwYXRoIHdpdGggZ3BkYiBhbmQgdGhlIHZlcnNpb24gbnVtYmVyCisgICAgICAgICIi IgorICAgICAgICBtYW5hZ2VyID0gZGljdChzZXJ2ZXJfdHlwZT0nZ3BkYicsIHZlcnNpb249JzQ1 NicpCisgICAgICAgIHNxbF9jb25kaXRpb24gPSAnbmV3IGNvbmRpdGlvbicKKyAgICAgICAgc2No ZW1hX29pZCA9ICcxMjMnCisgICAgICAgIGFkZF9zZXJpYWxzID0gRmFsc2UKKyAgICAgICAgZXhw ZWN0ZWRfc3FsX3RlbXBsYXRlX3BhdGggPSAnZGF0YXR5cGUvc3FsLyNncGRiIzQ1NiMnCisgICAg ICAgIGV4cGVjdGVkX2Z1bmN0aW9uX291dHB1dCA9IF9kZWZhdWx0X2V4cGVjdGVkX2Z1bmN0aW9u X291dHB1dAorICAgICAgICB0ZW1wbGF0ZV9tb2NrLnJldHVybl92YWx1ZSA9ICdTb21lIFNRTCcK KyAgICAgICAgY29ubmVjdGlvbiA9IE1vY2soKQorICAgICAgICBjb25uZWN0aW9uLmV4ZWN1dGVf MmRhcnJheS5yZXR1cm5fdmFsdWUgPSBbCisgICAgICAgICAgICBUcnVlLAorICAgICAgICAgICAg eworICAgICAgICAgICAgICAgICdyb3dzJzogX2RlZmF1bHRfZGF0YWJhc2VfcmVzcG9uc2UKKwor ICAgICAgICAgICAgfQorICAgICAgICBdCisgICAgICAgIHJlYWRlciA9IERhdGFUeXBlUmVhZGVy KCkKKyAgICAgICAgcmVhZGVyLm1hbmFnZXIgPSBNb2NrKCkKKyAgICAgICAgcmVhZGVyLm1hbmFn ZXIuc2VydmVyX3R5cGUgPSBtYW5hZ2VyWydzZXJ2ZXJfdHlwZSddCisgICAgICAgIHJlYWRlci5t YW5hZ2VyLnZlcnNpb24gPSBtYW5hZ2VyWyd2ZXJzaW9uJ10KKworICAgICAgICByZXN1bHQgPSBy ZWFkZXIuZ2V0X3R5cGVzKAorICAgICAgICAgICAgY29ubmVjdGlvbiwKKyAgICAgICAgICAgIHNx bF9jb25kaXRpb24sCisgICAgICAgICAgICBhZGRfc2VyaWFscywKKyAgICAgICAgICAgIHNjaGVt YV9vaWQKKyAgICAgICAgKQorCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5oYXZlLmxlbmd0aC5v ZigyKQorICAgICAgICByZXN1bHRbMV0gfCBzaG91bGQuYmUuZXF1YWwudG8oZXhwZWN0ZWRfZnVu Y3Rpb25fb3V0cHV0KQorICAgICAgICByZXN1bHRbMF0gfCBzaG91bGQuYmUudHJ1ZQogCiAgICAg ICAgIGNvbm5lY3Rpb24uZXhlY3V0ZV8yZGFycmF5LmFzc2VydF9jYWxsZWRfd2l0aCgnU29tZSBT UUwnKQogICAgICAgICB0ZW1wbGF0ZV9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgKLSAgICAgICAg ICAgIHNlbGYuZXhwZWN0ZWRfc3FsX3RlbXBsYXRlX3BhdGggKyAnL2dldF90eXBlcy5zcWwnLAot ICAgICAgICAgICAgY29uZGl0aW9uPXNlbGYuc3FsX2NvbmRpdGlvbiwKLSAgICAgICAgICAgIGFk ZF9zZXJpYWxzPXNlbGYuYWRkX3NlcmlhbHMsCi0gICAgICAgICAgICBzY2hlbWFfb2lkPXNlbGYu c2NoZW1hX29pZAorICAgICAgICAgICAgZXhwZWN0ZWRfc3FsX3RlbXBsYXRlX3BhdGggKyAnL2dl dF90eXBlcy5zcWwnLAorICAgICAgICAgICAgY29uZGl0aW9uPXNxbF9jb25kaXRpb24sCisgICAg ICAgICAgICBhZGRfc2VyaWFscz1hZGRfc2VyaWFscywKKyAgICAgICAgICAgIHNjaGVtYV9vaWQ9 c2NoZW1hX29pZAogICAgICAgICApCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZXN0cy9fX2luaXRf Xy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3R5cGVzL3Rlc3RzL19faW5pdF9fLnB5CmluZGV4IGYzYzU2NDA5Li41OTAwMjZh ZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVzdHMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMv dGVzdHMvX19pbml0X18ucHkKQEAgLTYsMTEgKzYsMyBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJl bGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj Ci0KLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLQot Ci1jbGFzcyBUeXBlc1Rlc3RHZW5lcmF0b3IoQmFzZVRlc3RHZW5lcmF0b3IpOgotCi0gICAgZGVm IHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgIHJldHVybiBbXQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMv dGVzdHMvdGVzdF90eXBlc19hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZXN0cy90ZXN0X3R5cGVzX2FkZC5w eQppbmRleCA3MGI2NGE2NS4uYzI1Y2I1YWIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3Rlc3RzL3Rl c3RfdHlwZXNfYWRkLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3Rlc3RzL3Rlc3RfdHlwZXNfYWRkLnB5CkBA IC0xMCw2MCArMTAsOTIgQEAKIGltcG9ydCBqc29uCiBpbXBvcnQgdXVpZAogCitmcm9tIGdyYXBw YSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2Vy dmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVt YV91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAogICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBn YWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4u dXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20g cGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNv biwgXAorICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlCiBmcm9tIHJlZ3Jlc3Np b24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91 dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogCiAKLWNsYXNzIFR5cGVzQWRkVGVzdENh c2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgYWRkIHR5cGUg dW5kZXIgc2NoZW1hIG5vZGUuICIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdBZGQg dHlwZSB1bmRlciBzY2hlbWEgbm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci90eXBlL29iai8nKSkK LSAgICBdCitjbGFzcyBUZXN0VHlwZXNBZGQ6CisgICAgZGVmIHRlc3RfdHlwZXNfYWRkKHNlbGYs IHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0 aGUgdHlwZXMgYWRkIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCBy ZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxp emVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3R5cGUvb2JqLycK KworICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10K KyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAg ICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAg ICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxm LmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKworICAgICAgICBzZWxmLnNj aGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYu c2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNl bGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lkJ10KKworICAgICAgICBk Yl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQ LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJh c2UgY29ubmVjdGVkLiI6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBj b25uZWN0IHRvIGRhdGFiYXNlLiIpCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNl bGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0K LSAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAg c2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFi YXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy X2lkLCBzZWxmLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3Rl ZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBk YXRhYmFzZSB0byBhZGQgYSB0eXBlLiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1h X2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5m b1sic2NoZW1hX25hbWUiXQogICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMu dmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQog ICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0 aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBhIHR5cGUuIikKKyAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQogCi0gICAg ZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIHR5 cGUgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgogICAgICAgICBkYl91c2VyID0gc2VsZi5zZXJ2ZXJb InVzZXJuYW1lIl0KLSAgICAgICAgc2VsZi50eXBlX25hbWUgPSAidGVzdF90eXBlX2FkZF8lcyIg JSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgZGF0YSA9IHsibmFtZSI6IHNlbGYu dHlwZV9uYW1lLAotICAgICAgICAgICAgICAgICJpc19zeXNfdHlwZSI6IEZhbHNlLAotICAgICAg ICAgICAgICAgICJ0eXB0eXBlIjogImMiLAotICAgICAgICAgICAgICAgICJ0eXBlb3duZXIiOiBk Yl91c2VyLAotICAgICAgICAgICAgICAgICJzY2hlbWEiOiBzZWxmLnNjaGVtYV9uYW1lLAotICAg ICAgICAgICAgICAgICJjb21wb3NpdGUiOiBbeyJtZW1iZXJfbmFtZSI6ICJvbmUiLCAidHlwZSI6 ICJhYnN0aW1lIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaXNfdGxlbmd0aCI6 IEZhbHNlLCAiaXNfcHJlY2lzaW9uIjogRmFsc2V9LAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgeyJtZW1iZXJfbmFtZSI6ICJ0d28iLCAidHlwZSI6ICJcImNoYXJcIltdIiwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiaXNfdGxlbmd0aCI6IEZhbHNlLCAiaXNfcHJlY2lz aW9uIjogRmFsc2V9XSwKLSAgICAgICAgICAgICAgICAiZW51bSI6IFtdLCAidHlwYWNsIjogW10s ICJzZWNsYWJlbHMiOiBbXX0KKyAgICAgICAgdHlwZV9uYW1lID0gInRlc3RfdHlwZV9hZGRfJXMi ICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIGRhdGEgPSB7CisgICAgICAgICAg ICAibmFtZSI6IHR5cGVfbmFtZSwKKyAgICAgICAgICAgICJpc19zeXNfdHlwZSI6IEZhbHNlLAor ICAgICAgICAgICAgInR5cHR5cGUiOiAiYyIsCisgICAgICAgICAgICAidHlwZW93bmVyIjogZGJf dXNlciwKKyAgICAgICAgICAgICJzY2hlbWEiOiBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAg ICAgImNvbXBvc2l0ZSI6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg ICJtZW1iZXJfbmFtZSI6ICJvbmUiLCAidHlwZSI6ICJhYnN0aW1lIiwKKyAgICAgICAgICAgICAg ICAgICAgImlzX3RsZW5ndGgiOiBGYWxzZSwgImlzX3ByZWNpc2lvbiI6IEZhbHNlCisgICAgICAg ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJtZW1i ZXJfbmFtZSI6ICJ0d28iLCAidHlwZSI6ICJcImNoYXJcIltdIiwKKyAgICAgICAgICAgICAgICAg ICAgImlzX3RsZW5ndGgiOiBGYWxzZSwgImlzX3ByZWNpc2lvbiI6IEZhbHNlCisgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJlbnVtIjogW10sICJ0eXBhY2wi OiBbXSwgInNlY2xhYmVscyI6IFtdfQorCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIu cG9zdCgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAn LycgKwotICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRi X2lkKSArCi0gICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nLAorICAg ICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAg ICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5kYl9p ZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJywKICAgICAg ICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0n aHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2Nv ZGUsIDIwMCkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVh bC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pz b24ocmVzcG9uc2UpCisgICAgICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlKAor ICAgICAgICAgICAganNvbl9yZXNwb25zZSwKKyAgICAgICAgICAgICd0eXBlJywKKyAgICAgICAg ICAgICdwZ2FkbWluLm5vZGUudHlwZScsCisgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAg ICdpY29uLXR5cGUnLAorICAgICAgICAgICAgdHlwZV9uYW1lCisgICAgICAgICkKIAogICAgIGRl ZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAg ICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVy X2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVj dF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90eXBlcy90ZXN0cy90ZXN0X3R5cGVzX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3Rlc3RzL3Rl c3RfdHlwZXNfZGVsZXRlLnB5CmluZGV4IDBjODg3ZTNkLi5kZjZhZmJhMSAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdHlwZXMvdGVzdHMvdGVzdF90eXBlc19kZWxldGUucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVzdHMv dGVzdF90eXBlc19kZWxldGUucHkKQEAgLTksNTggKzksNzggQEAKIAogaW1wb3J0IHV1aWQKIAor ZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJf Z3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGls cyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2Vy dmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAgICBkYXRhYmFzZV91dGls cwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJv bSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJh dG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3Bv bnNlX3RvX2pzb24KIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJv bSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxz CiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHR5cGVzX3V0aWxzCiAKIAotY2xhc3MgVHlwZXNEZWxl dGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBk ZWxldGUgdHlwZSB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCi0gICAgc2NlbmFyaW9zID0gWwotICAg ICAgICAoJ0RlbGV0ZSB0eXBlIHVuZGVyIHNjaGVtYSBub2RlJywgZGljdCh1cmw9Jy9icm93c2Vy L3R5cGUvb2JqLycpKQotICAgIF0KK2NsYXNzIFRlc3RUeXBlc0RlbGV0ZToKKyAgICBkZWYgdGVz dF90eXBlc19kZWxldGUoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAg ICIiIgorICAgICAgICBXaGVuIHRoZSB0eXBlcyBkZWxldGUgcmVxdWVzdCBpcyBzZW5kIHRvIHRo ZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAg ICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwg PSAnL2Jyb3dzZXIvdHlwZS9vYmovJworCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9v Zl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2Zf dGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9k aWN0WydkYXRhYmFzZSddWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVy X2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRh WydkYl9pZCddCisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25h bWUnXQorCisgICAgICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hl bWEnXVstMV0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bJ3Nj aGVtYV9uYW1lJ10KKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWydz Y2hlbWFfaWQnXQorCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0 YWJhc2Uoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRi X2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKKyAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKIAotICAgIGRlZiBz ZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0 YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2Rl X2RpY3RbInNjaGVtYSJdWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZv WyJzZXJ2ZXJfaWQiXQotICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0K LSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1 dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBk Yl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o IkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGRlbGV0ZSBhIHR5cGUuIikKLSAgICAg ICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCiAgICAgICAgIHNjaGVt YV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6 Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEg dG8gZGVsZXRlIGEgdHlwZS4iKQotICAgICAgICBzZWxmLnR5cGVfbmFtZSA9ICJ0ZXN0X3R5cGVf ZGVsZXRlXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxmLnR5cGVf aWQgPSB0eXBlc191dGlscy5jcmVhdGVfdHlwZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVt YV9uYW1lLCBzZWxmLnR5cGVfbmFtZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBm aW5kIHRoZSBzY2hlbWEuIikKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIg VGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSB0eXBlIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKyAg ICAgICAgdHlwZV9uYW1lID0gInRlc3RfdHlwZV9kZWxldGVfJXMiICUgKHN0cih1dWlkLnV1aWQ0 KCkpWzE6OF0pCisgICAgICAgIHNlbGYudHlwZV9pZCA9IHR5cGVzX3V0aWxzLmNyZWF0ZV90eXBl KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsIHR5cGVfbmFtZSkKICAgICAgICAg dHlwZV9yZXNwb25zZSA9IHR5cGVzX3V0aWxzLnZlcmlmeV90eXBlKHNlbGYuc2VydmVyLCBzZWxm LmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnR5cGVfbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHR5cGVfbmFtZSkKICAgICAgICAgaWYgbm90IHR5cGVfcmVzcG9uc2U6CiAgICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSB0eXBlIHRvIGRlbGV0 ZS4iKQorCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKAotICAgICAgICAg ICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VSVkVS X0dST1VQLAorICAgICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0iLmZvcm1hdCh1cmws IHV0aWxzLlNFUlZFUl9HUk9VUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX2lkLCBzZWxmLnR5cGVfaWQKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAg IGZvbGxvd19yZWRpcmVjdHM9VHJ1ZQogICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVz X2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0g Y29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNl IHwgc2hvdWxkLmhhdmUua2V5KCdpbmZvJykgPiBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAg ICAgICAnVHlwZSBkcm9wcGVkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZl LmtleSgnZXJyb3Jtc2cnKSA+IHNob3VsZC5iZS5lbXB0eQorICAgICAgICBqc29uX3Jlc3BvbnNl IHwgc2hvdWxkLmhhdmUua2V5KCdkYXRhJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3Vs ZC5oYXZlLmtleSgncmVzdWx0JykgPiBzaG91bGQuYmUubm9uZQorICAgICAgICBqc29uX3Jlc3Bv bnNlIHwgc2hvdWxkLmhhdmUua2V5KCdzdWNjZXNzJykgPiBzaG91bGQuYmUuZXF1YWwudG8oMSkK IAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRh YmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNl bGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRf ZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90eXBlcy90ZXN0cy90ZXN0X3R5cGVzX2dldC5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3Rl c3RzL3Rlc3RfdHlwZXNfZ2V0LnB5CmluZGV4IGQ3NjI1NmJlLi4xMzc0MGZkOSAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdHlwZXMvdGVzdHMvdGVzdF90eXBlc19nZXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVzdHMv dGVzdF90eXBlc19nZXQucHkKQEAgLTksNTQgKzksNzEgQEAKIAogaW1wb3J0IHV1aWQKIAorZnJv bSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBh cyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy cy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAgICBkYXRhYmFzZV91dGlscwot ZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBw Z2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y Citmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNl X3RvX2pzb24KIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSBy ZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBm cm9tIC4gaW1wb3J0IHV0aWxzIGFzIHR5cGVzX3V0aWxzCiAKIAotY2xhc3MgVHlwZXNHZXRUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBnZXQgdGhl IHR5cGUgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAg KCdHZXQgdHlwZSB1bmRlciBzY2hlbWEgbm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci90eXBlL29i ai8nKSkKLSAgICBdCi0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuZGJfbmFt ZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAg c2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9p ZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxz LmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxm LmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0 byBnZXQgYSB0eXBlLiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNj aGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1h X25hbWUiXQorY2xhc3MgVGVzdFR5cGVzR2V0OgorICAgIGRlZiB0ZXN0X3R5cGVzX2dldChzZWxm LCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4g dGhlIHR5cGVzIGdldCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQg cmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFs aXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci90eXBlL29iai8n CisKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCdd CisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAg ICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFdCisg ICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAg ICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2Vs Zi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisKKyAgICAgICAgc2VsZi5z Y2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQorICAgICAgICBzZWxm LnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX25hbWUnXQorICAgICAgICBz ZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9pZCddCisKKyAgICAgICAg ZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9V UCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFi YXNlIGNvbm5lY3RlZC4iOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg Y29ubmVjdCB0byBkYXRhYmFzZS4iKQorCiAgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVt YV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1h X25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZ2V0IGEgdHlwZS4iKQot ICAgICAgICBzZWxmLnR5cGVfbmFtZSA9ICJ0ZXN0X3R5cGVfZ2V0XyVzIiAlIChzdHIodXVpZC51 dWlkNCgpKVsxOjhdKQorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmlu ZCB0aGUgc2NoZW1hLiIpCisKKyAgICAgICAgdHlwZV9uYW1lID0gInRlc3RfdHlwZV9kZWxldGVf JXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCiAgICAgICAgIHNlbGYudHlwZV9pZCA9IHR5 cGVzX3V0aWxzLmNyZWF0ZV90eXBlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUs IHNlbGYudHlwZV9uYW1lCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zY2hlbWFfbmFtZSwgdHlwZV9uYW1lKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0g ICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2V0IGEgdHlwZSB1bmRlciBzY2hlbWEgbm9k ZS4gIiIiCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAotICAgICAgICAgICAg InswfXsxfS97Mn0vezN9L3s0fS97NX0iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dS T1VQLAorICAgICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0iLmZvcm1hdCh1cmwsIHV0 aWxzLlNFUlZFUl9HUk9VUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX2lkLCBzZWxmLnR5cGVfaWQKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgIGZv bGxvd19yZWRpcmVjdHM9VHJ1ZQogICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz KHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2Nv ZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29u dmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwg c2hvdWxkLmhhdmUua2V5KCdvaWQnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhh dmUua2V5KCduYW1lJykgPiBcCisgICAgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8odHlwZV9u YW1lKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAjIERpc2Nvbm5lY3QgdGhl IGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2Vs Ziwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNs aWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9p ZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3Rlc3RzL3Rlc3RfdHlwZXNfcHV0LnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlw ZXMvdGVzdHMvdGVzdF90eXBlc19wdXQucHkKaW5kZXggNzUzYjRlNDIuLjRkOTA4ZTI2IDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90eXBlcy90ZXN0cy90ZXN0X3R5cGVzX3B1dC5weQorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90 ZXN0cy90ZXN0X3R5cGVzX3B1dC5weQpAQCAtMTAsNjAgKzEwLDgzIEBACiBpbXBvcnQganNvbgog aW1wb3J0IHV1aWQKIAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1w b3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAg ICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVz dEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0 IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9y dCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJv bV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9t IHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMK IGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgdHlwZXNfdXRpbHMKIAogCi1jbGFzcyBUeXBlc1VwZGF0 ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIHVw ZGF0ZSB0eXBlIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAg ICAgICgnVXBkYXRlIHR5cGUgdW5kZXIgc2NoZW1hIG5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIv dHlwZS9vYmovJykpCi0gICAgXQorY2xhc3MgVGVzdFR5cGVzUHV0OgorICAgIGRlZiB0ZXN0X3R5 cGVzX3B1dChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisg ICAgICAgIFdoZW4gdGhlIHR5cGVzIHB1dCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQK KyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICByZXF1 ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nl ci90eXBlL29iai8nCisKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0 ZXN0X2NsaWVudCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2Vy dmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFi YXNlJ11bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2Vy dmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10K KyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisKKyAg ICAgICAgc2VsZi5zY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQor ICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX25hbWUn XQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9pZCdd CisKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxm LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxz LlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZv Il0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQogCi0gICAgZGVmIHNldFVwKHNlbGYp OgotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0x XVsiZGJfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2No ZW1hIl1bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9p ZCJdCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAgICBk Yl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZF Ul9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0 YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90 IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gdXBkYXRlIGEgdHlwZS4iKQotICAgICAgICBzZWxmLnNj aGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBzZWxmLnNjaGVtYV9u YW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KICAgICAgICAgc2NoZW1hX3Jlc3BvbnNl ID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byB1cGRhdGUg YSB0eXBlLiIpCi0gICAgICAgIHNlbGYudHlwZV9uYW1lID0gInRlc3RfdHlwZV9wdXRfJXMiICUg KHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYudHlwZV9pZCA9IHR5cGVzX3V0 aWxzLmNyZWF0ZV90eXBlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYu dHlwZV9uYW1lCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVt YS4iKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9u IHdpbGwgdXBkYXRlIHR5cGUgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorICAgICAgICB0eXBlX25h bWUgPSAidGVzdF90eXBlX2RlbGV0ZV8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAg ICAgICAgc2VsZi50eXBlX2lkID0gdHlwZXNfdXRpbHMuY3JlYXRlX3R5cGUoc2VsZi5zZXJ2ZXIs IHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zY2hlbWFfbmFtZSwgdHlwZV9uYW1lKQogICAgICAgICB0eXBlX3Jlc3BvbnNl ID0gdHlwZXNfdXRpbHMudmVyaWZ5X3R5cGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudHlwZV9u YW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlw ZV9uYW1lKQogICAgICAgICBpZiBub3QgdHlwZV9yZXNwb25zZToKICAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHR5cGUgdG8gdXBkYXRlLiIpCisKICAgICAg ICAgZGF0YSA9IHsiaWQiOiBzZWxmLnR5cGVfaWQsCiAgICAgICAgICAgICAgICAgImRlc2NyaXB0 aW9uIjogInRoaXMgaXMgdGVzdCBjb21tZW50LiJ9CiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50 ZXN0ZXIucHV0KAotICAgICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0iLmZvcm1hdChz ZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgInswfXsxfS97Mn0vezN9 L3s0fS97NX0iLmZvcm1hdCh1cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1h X2lkLCBzZWxmLnR5cGVfaWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKSwKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAg IGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9u c2Uuc3RhdHVzX2NvZGUsIDIwMCkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNo b3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jl c3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9t X3Jlc3BvbnNlKAorICAgICAgICAgICAganNvbl9yZXNwb25zZSwKKyAgICAgICAgICAgICd0eXBl JywKKyAgICAgICAgICAgICdwZ2FkbWluLm5vZGUudHlwZScsCisgICAgICAgICAgICBGYWxzZSwK KyAgICAgICAgICAgICdpY29uLXR5cGUnLAorICAgICAgICAgICAgdHlwZV9uYW1lCisgICAgICAg ICkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBk YXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYs IHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5jbGll bnRfZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQp CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rlc3Rz L19faW5pdF9fLnB5CmluZGV4IDI1YjZhNjk0Li5mZjg4MjkxMiAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVzdHMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVzdHMvX19pbml0X18ucHkKQEAg LTcsNyArNyw3IEBACiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCi1mcm9tIHBnYWRtaW4udXRpbHMu cm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90 ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKIAogCiBjbGFzcyBWaWV3c1Rl c3RHZW5lcmF0b3IoQmFzZVRlc3RHZW5lcmF0b3IpOgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVz dHMvdGVzdF92aWV3c19hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZXN0cy90ZXN0X3ZpZXdzX2FkZC5weQpp bmRleCBlYjE0MDRlNy4uYTc3Y2QxZjQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rlc3RzL3Rlc3Rf dmlld3NfYWRkLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rlc3RzL3Rlc3Rfdmlld3NfYWRkLnB5CkBAIC05 LDk1ICs5LDE3OSBAQAogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QK K2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVy X2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRp bHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl cnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAgZGF0YWJhc2VfdXRp bHMKIGZyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGls cwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJv bSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IFBvc3RncmVzVmVyc2lv bgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25z ZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UKIGZyb20g cmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhv bl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiAKIAotY2xhc3MgVmlld3NB ZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3aWxsIGFk ZCBuZXcgdmlldyB1bmRlciBzY2hlbWEgbm9kZS4iIiIKLSAgICB2aWV3X25hbWUgPSAidGVzdF92 aWV3X2FkZF8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICB2X2RhdGEgPSB7InNj aGVtYSI6ICIiLAotICAgICAgICAgICAgICAib3duZXIiOiAiIiwKLSAgICAgICAgICAgICAgImRh dGFjbCI6IFtdLAotICAgICAgICAgICAgICAic2VjbGFiZWxzIjogW10sCi0gICAgICAgICAgICAg ICJuYW1lIjogdmlld19uYW1lLAotICAgICAgICAgICAgICAiZGVmaW5pdGlvbiI6ICJTRUxFQ1Qg J0hlbGxvIFdvcmxkJzsiCi0gICAgICAgICAgICAgIH0KLSAgICBtX3ZpZXdfbmFtZSA9ICJ0ZXN0 X212aWV3X2FkZF8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICBtX3ZpZXdfZGF0 YSA9IHsic3BjbmFtZSI6ICJwZ19kZWZhdWx0IiwKLSAgICAgICAgICAgICAgICAgICAidG9hc3Rf YXV0b3ZhY3V1bV9lbmFibGVkIjogRmFsc2UsCi0gICAgICAgICAgICAgICAgICAgImF1dG92YWN1 dW1fZW5hYmxlZCI6IEZhbHNlLAotICAgICAgICAgICAgICAgICAgICJzY2hlbWEiOiAiIiwKLSAg ICAgICAgICAgICAgICAgICAib3duZXIiOiAiIiwKLSAgICAgICAgICAgICAgICAgICAidmFjdXVt X3RhYmxlIjogWwotICAgICAgICAgICAgICAgICAgICAgICB7Im5hbWUiOiAiYXV0b3ZhY3V1bV9h bmFseXplX3NjYWxlX2ZhY3RvciJ9LAotICAgICAgICAgICAgICAgICAgICAgICB7Im5hbWUiOiAi YXV0b3ZhY3V1bV9hbmFseXplX3RocmVzaG9sZCJ9LAotICAgICAgICAgICAgICAgICAgICAgICB7 Im5hbWUiOiAiYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2FnZSJ9LAotICAgICAgICAgICAgICAgICAg ICAgICB7Im5hbWUiOiAiYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheSJ9LAotICAgICAgICAg ICAgICAgICAgICAgICB7Im5hbWUiOiAiYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9saW1pdCJ9LAot ICAgICAgICAgICAgICAgICAgICAgICB7Im5hbWUiOiAiYXV0b3ZhY3V1bV92YWN1dW1fc2NhbGVf ZmFjdG9yIn0sCi0gICAgICAgICAgICAgICAgICAgICAgIHsibmFtZSI6ICJhdXRvdmFjdXVtX3Zh Y3V1bV90aHJlc2hvbGQifSwKLSAgICAgICAgICAgICAgICAgICAgICAgeyJuYW1lIjogImF1dG92 YWN1dW1fZnJlZXplX21pbl9hZ2UifSwKLSAgICAgICAgICAgICAgICAgICAgICAgeyJuYW1lIjog ImF1dG92YWN1dW1fZnJlZXplX3RhYmxlX2FnZSJ9XSwKLSAgICAgICAgICAgICAgICAgICAidmFj dXVtX3RvYXN0IjogW3sibmFtZSI6ICJhdXRvdmFjdXVtX2ZyZWV6ZV9tYXhfYWdlIn0sCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Im5hbWUiOiAiYXV0b3ZhY3V1bV92YWN1 dW1fY29zdF9kZWxheSJ9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJu YW1lIjogImF1dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQifSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsibmFtZSI6ICJhdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9mYWN0 b3IifSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsibmFtZSI6ICJhdXRv dmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQifSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsibmFtZSI6ICJhdXRvdmFjdXVtX2ZyZWV6ZV9taW5fYWdlIn0sCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7Im5hbWUiOiAiYXV0b3ZhY3V1bV9mcmVlemVfdGFi bGVfYWdlIn1dLAotICAgICAgICAgICAgICAgICAgICJkYXRhY2wiOiBbXSwKLSAgICAgICAgICAg ICAgICAgICAic2VjbGFiZWxzIjogW10sCi0gICAgICAgICAgICAgICAgICAgIm5hbWUiOiBtX3Zp ZXdfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAiZGVmaW5pdGlvbiI6ICJTRUxFQ1QgJ3Rlc3Rf cGdhZG1pbic7In0KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnQWRkIHZpZXcgdW5kZXIg c2NoZW1hIG5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIvdmlldy9vYmovJywKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT12X2RhdGEpKSwKLSAgICAgICAg KCdBZGQgbWF0ZXJpYWxpemVkIHZpZXcgdW5kZXIgc2NoZW1hIG5vZGUnLAotICAgICAgICAgZGlj dCh1cmw9Jy9icm93c2VyL212aWV3L29iai8nLCBkYXRhPW1fdmlld19kYXRhKSkKLSAgICBdCi0K LSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2Rl X2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2NoZW1hX2luZm8gPSBw YXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBz Y2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZv WyJkYl9pZCJdCitAcHl0ZXN0Lm1hcmsuc2tpcF9pZl9wb3N0Z3Jlc192ZXJzaW9uKHsnYmVsb3df dmVyc2lvbic6IFBvc3RncmVzVmVyc2lvbi52OTN9LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiTWF0ZXJpYWxpemVkIFZpZXdzIGFyZSBub3Qgc3VwcG9ydGVkICIKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ5IFBHOS4yICIKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFuZCBQUEFTOS4yIGFuZCBiZWxvdy4iKQor Y2xhc3MgVGVzdFZpZXdBZGQ6CisgICAgZGVmIHRlc3Rfdmlld3NfYWRkKHNlbGYsIHJlcXVlc3Qs IGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgdmlld3Mg YWRkIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIw MCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYu dGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3ZpZXcvb2JqLycKKworICAgICAg ICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAg c2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNl cnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxm LmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUg PSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKworICAgICAgICBzZWxmLnNjaGVtYV9pbmZv ID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25h bWUgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1h X2lkID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lkJ10KKworICAgICAgICBkYl9jb24gPSBk YXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lk LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVj dGVkLiI6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRv IGRhdGFiYXNlLiIpCisKKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZl cmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAg ICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQorCisgICAgICAgIGRiX3VzZXIgPSBzZWxm LnNlcnZlclsidXNlcm5hbWUiXQorICAgICAgICB2aWV3X25hbWUgPSAidGVzdF92aWV3X2FkZF8l cyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgZGF0YSA9IHsKKyAgICAgICAg ICAgICJzY2hlbWEiOiBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgIm93bmVyIjogZGJf dXNlciwKKyAgICAgICAgICAgICJkYXRhY2wiOiBbXSwKKyAgICAgICAgICAgICJzZWNsYWJlbHMi OiBbXSwKKyAgICAgICAgICAgICJuYW1lIjogdmlld19uYW1lLAorICAgICAgICAgICAgImRlZmlu aXRpb24iOiAiU0VMRUNUICdIZWxsbyBXb3JsZCc7IgorICAgICAgICB9CisKKyAgICAgICAgcmVz cG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNF UlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcv JyArCisgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3Ry KHNlbGYuc2NoZW1hX2lkKSArICcvJywKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRh KSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAgICAgICByZXNw b25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25f cmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGFz c2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlKAorICAgICAgICAgICAganNvbl9yZXNwb25z ZSwKKyAgICAgICAgICAgICd2aWV3JywKKyAgICAgICAgICAgICdwZ2FkbWluLm5vZGUudmlldycs CisgICAgICAgICAgICBUcnVlLAorICAgICAgICAgICAgJ2ljb24tdmlldycsCisgICAgICAgICAg ICB2aWV3X25hbWUKKyAgICAgICAgKQorCisgICAgZGVmIHRlc3RfbWF0ZXJpYWxpemVkX3ZpZXdz X2FkZChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAg ICAgIFdoZW4gdGhlIG1hdGVyaWFsaXplZCB2aWV3cyBhZGQgcmVxdWVzdCBpcyBzZW5kIHRvIHRo ZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAg ICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwg PSAnL2Jyb3dzZXIvbXZpZXcvb2JqLycKKworICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRf b2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29m X3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVf ZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZl cl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0 YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9u YW1lJ10KKworICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnc2No ZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydz Y2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1sn c2NoZW1hX2lkJ10KKwogICAgICAgICBzZXJ2ZXJfcmVzcG9uc2UgPSBzZXJ2ZXJfdXRpbHMuY29u bmVjdF9zZXJ2ZXIoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQpCiAKLSAgICAgICAgaWYgc2VydmVyX3Jl c3BvbnNlWyJkYXRhIl1bInZlcnNpb24iXSA8IDkwMzAwIGFuZCAibXZpZXciIGluIHNlbGYudXJs OgorICAgICAgICBpZiBzZXJ2ZXJfcmVzcG9uc2VbImRhdGEiXVsidmVyc2lvbiJdIDwgOTAzMDA6 CiAgICAgICAgICAgICBtZXNzYWdlID0gIk1hdGVyaWFsaXplZCBWaWV3cyBhcmUgbm90IHN1cHBv cnRlZCBieSBQRzkuMiAiIFwKICAgICAgICAgICAgICAgICAgICAgICAiYW5kIFBQQVM5LjIgYW5k IGJlbG93LiIKLSAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QobWVzc2FnZSkKLQotICAgICAgICBk Yl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZF Ul9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0 YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90 IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIHZpZXcuIikKLSAgICAgICAgc2VsZi5zY2hlbWFf aWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9 IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAgICAgICAgICBweXRlc3Quc2tpcFRlc3Qo bWVzc2FnZSkKKworICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFi YXNlKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9j b25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCisKICAgICAgICAgc2No ZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25z ZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVt YSB0byBhZGQgdGhlIHZpZXcuIikKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQg bm90IGZpbmQgdGhlIHNjaGVtYS4iKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAg ICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgdmlldyB1bmRlciBzY2hlbWEgbm9kZS4iIiIKICAg ICAgICAgZGJfdXNlciA9IHNlbGYuc2VydmVyWyJ1c2VybmFtZSJdCi0gICAgICAgIHNlbGYuZGF0 YVsic2NoZW1hIl0gPSBzZWxmLnNjaGVtYV9uYW1lCi0gICAgICAgIHNlbGYuZGF0YVsib3duZXIi XSA9IGRiX3VzZXIKKyAgICAgICAgdmlld19uYW1lID0gInRlc3RfbXZpZXdfYWRkXyVzIiAlIChz dHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBkYXRhID0geworICAgICAgICAgICAgInNw Y25hbWUiOiAicGdfZGVmYXVsdCIsCisgICAgICAgICAgICAidG9hc3RfYXV0b3ZhY3V1bV9lbmFi bGVkIjogRmFsc2UsCisgICAgICAgICAgICAiYXV0b3ZhY3V1bV9lbmFibGVkIjogRmFsc2UsCisg ICAgICAgICAgICAic2NoZW1hIjogc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICJvd25l ciI6IGRiX3VzZXIsCisgICAgICAgICAgICAidmFjdXVtX3RhYmxlIjogWworICAgICAgICAgICAg ICAgIHsibmFtZSI6ICJhdXRvdmFjdXVtX2FuYWx5emVfc2NhbGVfZmFjdG9yIn0sCisgICAgICAg ICAgICAgICAgeyJuYW1lIjogImF1dG92YWN1dW1fYW5hbHl6ZV90aHJlc2hvbGQifSwKKyAgICAg ICAgICAgICAgICB7Im5hbWUiOiAiYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2FnZSJ9LAorICAgICAg ICAgICAgICAgIHsibmFtZSI6ICJhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2RlbGF5In0sCisgICAg ICAgICAgICAgICAgeyJuYW1lIjogImF1dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQifSwKKyAg ICAgICAgICAgICAgICB7Im5hbWUiOiAiYXV0b3ZhY3V1bV92YWN1dW1fc2NhbGVfZmFjdG9yIn0s CisgICAgICAgICAgICAgICAgeyJuYW1lIjogImF1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZCJ9 LAorICAgICAgICAgICAgICAgIHsibmFtZSI6ICJhdXRvdmFjdXVtX2ZyZWV6ZV9taW5fYWdlIn0s CisgICAgICAgICAgICAgICAgeyJuYW1lIjogImF1dG92YWN1dW1fZnJlZXplX3RhYmxlX2FnZSJ9 XSwKKyAgICAgICAgICAgICJ2YWN1dW1fdG9hc3QiOiBbeyJuYW1lIjogImF1dG92YWN1dW1fZnJl ZXplX21heF9hZ2UifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJuYW1lIjogImF1 dG92YWN1dW1fdmFjdXVtX2Nvc3RfZGVsYXkifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgeyJuYW1lIjogImF1dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQifSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgeyJuYW1lIjogImF1dG92YWN1dW1fdmFjdXVtX3NjYWxlX2ZhY3Rv ciJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Im5hbWUiOiAiYXV0b3ZhY3V1bV92 YWN1dW1fdGhyZXNob2xkIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsibmFtZSI6 ICJhdXRvdmFjdXVtX2ZyZWV6ZV9taW5fYWdlIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsibmFtZSI6ICJhdXRvdmFjdXVtX2ZyZWV6ZV90YWJsZV9hZ2UifV0sCisgICAgICAgICAg ICAiZGF0YWNsIjogW10sCisgICAgICAgICAgICAic2VjbGFiZWxzIjogW10sCisgICAgICAgICAg ICAibmFtZSI6IHZpZXdfbmFtZSwKKyAgICAgICAgICAgICJkZWZpbml0aW9uIjogIlNFTEVDVCAn dGVzdF9wZ2FkbWluJzsiCisgICAgICAgIH0KKwogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVz dGVyLnBvc3QoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVAp ICsgJy8nICsgc3RyKHNlbGYuc2VydmVyX2lkKSArCi0gICAgICAgICAgICAnLycgKyBzdHIoc2Vs Zi5kYl9pZCkgKyAnLycgKyBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nLAotICAgICAgICAgICAg ZGF0YT1qc29uLmR1bXBzKHNlbGYuZGF0YSksIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKLSAg ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAg ICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAg IHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQp ICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycsCisgICAgICAg ICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0 bWwvanNvbicpCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1 YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19q c29uKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZSgK KyAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAnbXZpZXcnLAorICAgICAg ICAgICAgJ3BnYWRtaW4ubm9kZS5tdmlldycsCisgICAgICAgICAgICBUcnVlLAorICAgICAgICAg ICAgJ2ljb24tdmlldycsCisgICAgICAgICAgICB2aWV3X25hbWUKKyAgICAgICAgKQogCiAgICAg ZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0g ICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2 ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVudF9kaXNjb25u ZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3Rlc3RzL3Rlc3Rfdmlld3NfZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVzdHMv dGVzdF92aWV3c19kZWxldGUucHkKaW5kZXggZjU5NjczMDUuLmVhMmQ3N2ZjIDEwMDY0NAotLS0g YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZXN0cy90ZXN0X3ZpZXdzX2RlbGV0ZS5weQorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZXN0 cy90ZXN0X3ZpZXdzX2RlbGV0ZS5weQpAQCAtOSw3OSArOSwxNjUgQEAKIAogaW1wb3J0IHV1aWQK IAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMg aW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwK ICAgICBkYXRhYmFzZV91dGlscwogZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRp bHMgYXMgc2VydmVyX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBv cnQgUG9zdGdyZXNWZXJzaW9uCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9y dCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24KIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50 X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0 X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHZpZXdzX3V0aWxzCiAKIAot Y2xhc3MgVmlld3NEZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhp cyBjbGFzcyB3aWxsIGRlbGV0ZSB0aGUgdmlldy9tdmlldyB1bmRlciBzY2hlbWEgbm9kZS4iIiIK LSAgICB2aWV3X3NxbCA9ICJDUkVBVEUgT1IgUkVQTEFDRSBWSUVXICVzLiVzIEFTIFNFTEVDVCAn SGVsbG8gV29ybGQnOyAiIFwKLSAgICAgICAgICAgICAgICJBTFRFUiBUQUJMRSAlcy4lcyBPV05F UiBUTyAlcyIKLSAgICBtX3ZpZXdfc3FsID0gIkNSRUFURSBNQVRFUklBTElaRUQgVklFVyAlcy4l cyBUQUJMRVNQQUNFIHBnX2RlZmF1bHQgQVMgIiBcCi0gICAgICAgICAgICAgICAgICJTRUxFQ1Qg J3Rlc3RfcGdhZG1pbicgV0lUSCBOTyBEQVRBO0FMVEVSIFRBQkxFICVzLiVzIE9XTkVSIiBcCi0g ICAgICAgICAgICAgICAgICIgVE8gJXMiCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoJ0Rl bGV0ZSB2aWV3IHVuZGVyIHNjaGVtYSBub2RlJywgZGljdCgKLSAgICAgICAgICAgIHVybD0nL2Jy b3dzZXIvdmlldy9vYmovJywKLSAgICAgICAgICAgIHZpZXdfbmFtZT0idGVzdF92aWV3X2RlbGV0 ZV8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSksCi0gICAgICAgICAgICBzcWxfcXVlcnk9 dmlld19zcWwpKSwKLSAgICAgICAgKCdEZWxldGUgbWF0ZXJpYWxpemVkIHZpZXcgdW5kZXIgc2No ZW1hIG5vZGUnLAotICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL212aWV3L29iai8nLAotICAg ICAgICAgICAgICB2aWV3X25hbWU9InRlc3RfbXZpZXdfZGVsZXRlXyVzIiAlIChzdHIodXVpZC51 dWlkNCgpKVsxOjhdKSwKLSAgICAgICAgICAgICAgc3FsX3F1ZXJ5PW1fdmlld19zcWwpKQotICAg IF0KLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50 X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzY2hlbWFfaW5m byA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9p ZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1h X2luZm9bImRiX2lkIl0KK2NsYXNzIFRlc3RWaWV3RGVsZXRlOgorICAgIGRlZiB0ZXN0X3ZpZXdz X2RlbGV0ZShzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisg ICAgICAgIFdoZW4gdGhlIHZpZXdzIGRlbGV0ZSByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tl bmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICBy ZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHVybCA9ICcvYnJv d3Nlci92aWV3L29iai8nCisKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3Rz Wyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1sn c2VydmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2Rh dGFiYXNlJ11bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsn c2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lk J10KKyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisK KyAgICAgICAgc2VsZi5zY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0x XQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX25h bWUnXQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9p ZCddCisKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShz ZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0 aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWyJp bmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0 aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQorCisgICAgICAgIHNjaGVtYV9y ZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJf bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Cisg ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEuIikK KworICAgICAgICB2aWV3X25hbWUgPSAidGVzdF92aWV3X2RlbGV0ZV8lcyIgJSAoc3RyKHV1aWQu dXVpZDQoKSlbMTo4XSkKKyAgICAgICAgc3FsX3F1ZXJ5ID0gIkNSRUFURSBPUiBSRVBMQUNFIFZJ RVcgJXMuJXMgQVMgU0VMRUNUICdIZWxsbyBXb3JsZCc7ICIgXAorICAgICAgICAgICAgICAgICAg ICAiQUxURVIgVEFCTEUgJXMuJXMgT1dORVIgVE8gJXMiCisgICAgICAgIHNlbGYudmlld19pZCA9 IHZpZXdzX3V0aWxzLmNyZWF0ZV92aWV3KHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNxbF9xdWVyeSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld19uYW1lKQor CisgICAgICAgIHZpZXdfcmVzcG9uc2UgPSB2aWV3c191dGlscy52ZXJpZnlfdmlldyhzZWxmLnNl cnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdmlld19uYW1lKQorICAgICAgICBpZiBub3Qgdmlld19yZXNwb25zZToKKyAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHZpZXcgdG8gZGVs ZXRlLiIpCisKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoCisgICAgICAg ICAgICAiezB9ezF9L3syfS97M30vezR9L3s1fSIuZm9ybWF0KHVybCwgdXRpbHMuU0VSVkVSX0dS T1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNl cnZlcl9pZCwgc2VsZi5kYl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zY2hlbWFfaWQsIHNlbGYudmlld19pZAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0 cz1UcnVlCisgICAgICAgICkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3Vs ZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3Bv bnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2 ZS5rZXkoJ2luZm8nKSA+IHNob3VsZC5iZS5lcXVhbC50bygKKyAgICAgICAgICAgICdWaWV3IGRy b3BwZWQnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdlcnJvcm1z ZycpID4gc2hvdWxkLmJlLmVtcHR5CisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2 ZS5rZXkoJ2RhdGEnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdy ZXN1bHQnKSA+IHNob3VsZC5iZS5ub25lCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQu aGF2ZS5rZXkoJ3N1Y2Nlc3MnKSA+IHNob3VsZC5iZS5lcXVhbC50bygxKQorCisgICAgQHB5dGVz dC5tYXJrLnNraXBfaWZfcG9zdGdyZXNfdmVyc2lvbigKKyAgICAgICAgeydiZWxvd192ZXJzaW9u JzogUG9zdGdyZXNWZXJzaW9uLnY5M30sCisgICAgICAgICJNYXRlcmlhbGl6ZWQgVmlld3MgYXJl IG5vdCBzdXBwb3J0ZWQgIgorICAgICAgICAiYnkgUEc5LjIgIgorICAgICAgICAiYW5kIFBQQVM5 LjIgYW5kIGJlbG93LiIpCisgICAgZGVmIHRlc3RfbWF0ZXJpYWxpemVkX3ZpZXdzX2FkZChzZWxm LCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4g dGhlIG1hdGVyaWFsaXplZCB2aWV3cyBhZGQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5k CisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVx dWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAnL2Jyb3dz ZXIvbXZpZXcvb2JqLycKKworICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNb J3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydz ZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0 YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydz ZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQn XQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKwor ICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFd CisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFt ZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lk J10KKwogICAgICAgICBzZXJ2ZXJfcmVzcG9uc2UgPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2 ZXIoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQpCiAKLSAgICAgICAgaWYgc2VydmVyX3Jlc3BvbnNlWyJk YXRhIl1bInZlcnNpb24iXSA8IDkwMzAwIGFuZCAibXZpZXciIGluIHNlbGYudXJsOgorICAgICAg ICBpZiBzZXJ2ZXJfcmVzcG9uc2VbImRhdGEiXVsidmVyc2lvbiJdIDwgOTAzMDA6CiAgICAgICAg ICAgICBtZXNzYWdlID0gIk1hdGVyaWFsaXplZCBWaWV3cyBhcmUgbm90IHN1cHBvcnRlZCBieSBQ RzkuMiAiIFwKICAgICAgICAgICAgICAgICAgICAgICAiYW5kIFBQQVM5LjIgYW5kIGJlbG93LiIK LSAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QobWVzc2FnZSkKLQotICAgICAgICBkYl9jb24gPSBk YXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNl cnZlcl9pZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25u ZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3Qg dG8gZGF0YWJhc2UgdG8gZGVsZXRlIHZpZXcuIikKLSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBz Y2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVt YV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAgICAgICAgICBweXRlc3Quc2tpcFRlc3QobWVzc2Fn ZSkKKworICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNl bGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRp bHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bImlu Zm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRp b24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCisKICAgICAgICAgc2NoZW1hX3Jl c3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9u YW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBk ZWxldGUgdGhlIHZpZXcuIikKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90 IGZpbmQgdGhlIHNjaGVtYS4iKQorCisgICAgICAgIHZpZXdfbmFtZSA9ICJ0ZXN0X212aWV3X2Rl bGV0ZV8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgc3FsX3F1ZXJ5ID0g IkNSRUFURSBNQVRFUklBTElaRUQgVklFVyAlcy4lcyBUQUJMRVNQQUNFIiBcCisgICAgICAgICAg ICAgICAgICAgICIgcGdfZGVmYXVsdCBBUyAiIFwKKyAgICAgICAgICAgICAgICAgICAgIlNFTEVD VCAndGVzdF9wZ2FkbWluJyBXSVRIIE5PIERBVEE7IiBcCisgICAgICAgICAgICAgICAgICAgICJB TFRFUiBUQUJMRSAlcy4lcyBPV05FUiIgXAorICAgICAgICAgICAgICAgICAgICAiIFRPICVzIgog ICAgICAgICBzZWxmLnZpZXdfaWQgPSB2aWV3c191dGlscy5jcmVhdGVfdmlldyhzZWxmLnNlcnZl ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5k Yl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNxbF9xdWVyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi52aWV3X25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNxbF9xdWVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdmlld19uYW1lKQogCi0gICAgZGVmIHJ1blRlc3Qoc2Vs Zik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgdGhlIHZpZXcvbXZpZXcg dW5kZXIgc2NoZW1hIG5vZGUuIiIiCiAgICAgICAgIHZpZXdfcmVzcG9uc2UgPSB2aWV3c191dGls cy52ZXJpZnlfdmlldyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi52aWV3X25hbWUpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3X25hbWUpCiAgICAg ICAgIGlmIG5vdCB2aWV3X3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgZmluZCB0aGUgdmlldyB0byBkZWxldGUuIikKKwogICAgICAgICByZXNwb25zZSA9 IHNlbGYudGVzdGVyLmRlbGV0ZSgKLSAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS97NH0vezV9 Ii5mb3JtYXQoc2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICJ7MH17 MX0vezJ9L3szfS97NH0vezV9Ii5mb3JtYXQodXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBz ZWxmLmRiX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNjaGVtYV9pZCwgc2VsZi52aWV3X2lkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUKICAg ICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwg MjAwKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRv KDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihy ZXNwb25zZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnaW5mbycp ID4gc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAgICAgJ1ZpZXcgZHJvcHBlZCcpCisgICAg ICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2Vycm9ybXNnJykgPiBzaG91bGQu YmUuZW1wdHkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZGF0YScp CisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3Jlc3VsdCcpID4gc2hv dWxkLmJlLm5vbmUKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnc3Vj Y2VzcycpID4gc2hvdWxkLmJlLmVxdWFsLnRvKDEpCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6 Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRp bHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkK KyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50 ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVzdHMv dGVzdF92aWV3c19nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZXN0cy90ZXN0X3ZpZXdzX2dldC5weQppbmRl eCAyYzZjMTRmYy4uMmJiM2Q5N2IgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rlc3RzL3Rlc3Rfdmll d3NfZ2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rlc3RzL3Rlc3Rfdmlld3NfZ2V0LnB5CkBAIC05LDc1 ICs5LDE0OSBAQAogCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBp bXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy cy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91 dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAogICAgIGRhdGFiYXNlX3V0aWxzCiBmcm9tIHBnYWRt aW4udXRpbHMgaW1wb3J0IHNlcnZlcl91dGlscyBhcyBzZXJ2ZXJfdXRpbHMKLWZyb20gcGdhZG1p bi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGls cy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBQb3N0Z3Jlc1ZlcnNpb24KK2Zyb20gcGdhZG1p bi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbgogZnJv bSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0 aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQg dXRpbHMgYXMgdmlld3NfdXRpbHMKIAogCi1jbGFzcyBWaWV3c0dldFRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggdGhlIHZpZXcgdW5kZXIg c2NoZW1hIG5vZGUuIiIiCi0gICAgdmlld19zcWwgPSAiQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyAl cy4lcyBBUyBTRUxFQ1QgJ0hlbGxvIFdvcmxkJzsgIiBcCi0gICAgICAgICAgICAgICAiQUxURVIg VEFCTEUgJXMuJXMgT1dORVIgVE8gJXMiCi0gICAgbV92aWV3X3NxbCA9ICJDUkVBVEUgTUFURVJJ QUxJWkVEIFZJRVcgJXMuJXMgVEFCTEVTUEFDRSBwZ19kZWZhdWx0IEFTICIgXAotICAgICAgICAg ICAgICAgICAiU0VMRUNUICd0ZXN0X3BnYWRtaW4nIFdJVEggTk8gREFUQTtBTFRFUiBUQUJMRSAl cy4lcyBPV05FUiIgXAotICAgICAgICAgICAgICAgICAiIFRPICVzIgotICAgIHNjZW5hcmlvcyA9 IFsKLSAgICAgICAgKCdHZXQgdmlldyB1bmRlciBzY2hlbWEgbm9kZScsIGRpY3QoCi0gICAgICAg ICAgICB1cmw9Jy9icm93c2VyL3ZpZXcvb2JqLycsCi0gICAgICAgICAgICB2aWV3X25hbWU9InRl c3Rfdmlld19nZXRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pLAotICAgICAgICAgICAg c3FsX3F1ZXJ5PXZpZXdfc3FsKSksCi0gICAgICAgICgnR2V0IG1hdGVyaWFsaXplZCB2aWV3IHVu ZGVyIHNjaGVtYSBub2RlJywKLSAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci9tdmlldy9vYmov JywKLSAgICAgICAgICAgICAgdmlld19uYW1lPSJ0ZXN0X212aWV3X2dldF8lcyIgJSAoc3RyKHV1 aWQudXVpZDQoKSlbMTo4XSksCi0gICAgICAgICAgICAgIHNxbF9xdWVyeT1tX3ZpZXdfc3FsKSkK LSAgICBdCi0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBh cmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2NoZW1h X2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNj aGVtYV9pbmZvWyJkYl9pZCJdCitjbGFzcyBUZXN0Vmlld0dldDoKKyAgICBkZWYgdGVzdF92aWV3 c19nZXQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAg ICAgICBXaGVuIHRoZSB2aWV3cyBnZXQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisg ICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVz dC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIv dmlldy9vYmovJworCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVz dF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZl ciddCisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRhYmFz ZSddWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3NlcnZl cl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCddCisg ICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorCisgICAg ICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KKyAg ICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9uYW1lJ10K KyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfaWQnXQor CisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5T RVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJd ID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKKworICAgICAgICBzY2hlbWFfcmVzcG9u c2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgorICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hLiIpCisKKyAg ICAgICAgdmlld19uYW1lID0gInRlc3Rfdmlld19kZWxldGVfJXMiICUgKHN0cih1dWlkLnV1aWQ0 KCkpWzE6OF0pCisgICAgICAgIHNxbF9xdWVyeSA9ICJDUkVBVEUgT1IgUkVQTEFDRSBWSUVXICVz LiVzIEFTIFNFTEVDVCAnSGVsbG8gV29ybGQnOyAiIFwKKyAgICAgICAgICAgICAgICAgICAgIkFM VEVSIFRBQkxFICVzLiVzIE9XTkVSIFRPICVzIgorICAgICAgICBzZWxmLnZpZXdfaWQgPSB2aWV3 c191dGlscy5jcmVhdGVfdmlldyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcWxfcXVlcnksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdfbmFtZSkKKworICAg ICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKKyAgICAgICAgICAgICJ7MH17MX0vezJ9 L3szfS97NH0vezV9Ii5mb3JtYXQodXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRi X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNj aGVtYV9pZCwgc2VsZi52aWV3X2lkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUKKyAgICAgICAg KQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIw MCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNw b25zZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnb2lkJykKKyAg ICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnbmFtZScpID4gXAorICAgICAg ICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKHZpZXdfbmFtZSkKKworICAgIEBweXRlc3QubWFyay5z a2lwX2lmX3Bvc3RncmVzX3ZlcnNpb24oCisgICAgICAgIHsnYmVsb3dfdmVyc2lvbic6IFBvc3Rn cmVzVmVyc2lvbi52OTN9LAorICAgICAgICAiTWF0ZXJpYWxpemVkIFZpZXdzIGFyZSBub3Qgc3Vw cG9ydGVkICIKKyAgICAgICAgImJ5IFBHOS4yICIKKyAgICAgICAgImFuZCBQUEFTOS4yIGFuZCBi ZWxvdy4iKQorICAgIGRlZiB0ZXN0X21hdGVyaWFsaXplZF92aWV3c19hZGQoc2VsZiwgcmVxdWVz dCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBtYXRl cmlhbGl6ZWQgdmlld3MgYWRkIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAg ICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRk ZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL212aWV3 L29iai8nCisKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2Ns aWVudCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10K KyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11b LTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lk J10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAg ICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisKKyAgICAgICAg c2VsZi5zY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQorICAgICAg ICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX25hbWUnXQorICAg ICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9pZCddCisKICAg ICAgICAgc2VydmVyX3Jlc3BvbnNlID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYs IHNlbGYuc2VydmVyX2lkKQogCi0gICAgICAgIGlmIHNlcnZlcl9yZXNwb25zZVsiZGF0YSJdWyJ2 ZXJzaW9uIl0gPCA5MDMwMCBhbmQgIm12aWV3IiBpbiBzZWxmLnVybDoKKyAgICAgICAgaWYgc2Vy dmVyX3Jlc3BvbnNlWyJkYXRhIl1bInZlcnNpb24iXSA8IDkwMzAwOgogICAgICAgICAgICAgbWVz c2FnZSA9ICJNYXRlcmlhbGl6ZWQgVmlld3MgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgUEc5LjIgIiBc CiAgICAgICAgICAgICAgICAgICAgICAgImFuZCBQUEFTOS4yIGFuZCBiZWxvdy4iCi0gICAgICAg ICAgICBzZWxmLnNraXBUZXN0KG1lc3NhZ2UpCi0KLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2Vf dXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQs IHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06 Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFi YXNlIHRvIGZldGNoIHRoZSB2aWV3LiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1h X2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5m b1sic2NoZW1hX25hbWUiXQorICAgICAgICAgICAgcHl0ZXN0LnNraXBUZXN0KG1lc3NhZ2UpCisK KyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNF UlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0g PT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQorCiAgICAgICAgIHNjaGVtYV9yZXNwb25z ZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuc2NoZW1hX25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZmV0Y2gg dGhlIHZpZXcuIikKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQg dGhlIHNjaGVtYS4iKQorCisgICAgICAgIHZpZXdfbmFtZSA9ICJ0ZXN0X212aWV3X2RlbGV0ZV8l cyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgc3FsX3F1ZXJ5ID0gIkNSRUFU RSBNQVRFUklBTElaRUQgVklFVyAlcy4lcyBUQUJMRVNQQUNFIiBcCisgICAgICAgICAgICAgICAg ICAgICIgcGdfZGVmYXVsdCBBUyAiIFwKKyAgICAgICAgICAgICAgICAgICAgIlNFTEVDVCAndGVz dF9wZ2FkbWluJyBXSVRIIE5PIERBVEE7IiBcCisgICAgICAgICAgICAgICAgICAgICJBTFRFUiBU QUJMRSAlcy4lcyBPV05FUiIgXAorICAgICAgICAgICAgICAgICAgICAiIFRPICVzIgogICAgICAg ICBzZWxmLnZpZXdfaWQgPSB2aWV3c191dGlscy5jcmVhdGVfdmlldyhzZWxmLnNlcnZlciwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1l LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNj aGVtYV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNxbF9xdWVyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi52aWV3X25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNxbF9xdWVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdmlld19uYW1lKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0g ICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCB0aGUgdmlldy9tdmlldyB1bmRlciBz Y2hlbWEgbm9kZS4iIiIKICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCi0gICAg ICAgICAgICAiezB9ezF9L3syfS97M30vezR9L3s1fSIuZm9ybWF0KHNlbGYudXJsLCB1dGlscy5T RVJWRVJfR1JPVVAsCisgICAgICAgICAgICAiezB9ezF9L3syfS97M30vezR9L3s1fSIuZm9ybWF0 KHVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfaWQsIHNlbGYudmlld19p ZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAg ICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlCiAgICAgICAgICkKLSAgICAgICAgc2VsZi5hc3Nl cnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKworICAgICAgICByZXNwb25zZS5z dGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9u c2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGpzb25fcmVz cG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ29pZCcpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBz aG91bGQuaGF2ZS5rZXkoJ25hbWUnKSA+IFwKKyAgICAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50 byh2aWV3X25hbWUpCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICMgRGlzY29u bmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRh YmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2Vf dXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVy X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVzdHMvdGVzdF92aWV3c19wdXQucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZXN0cy90ZXN0X3ZpZXdzX3B1dC5weQppbmRleCA3OGNiZTI1Yi4uZjdkYmMw MzMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rlc3RzL3Rlc3Rfdmlld3NfcHV0LnB5CisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3Rlc3RzL3Rlc3Rfdmlld3NfcHV0LnB5CkBAIC0xMCw4MiArMTAsMTc2IEBACiBpbXBv cnQganNvbgogaW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0 IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0 YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMK IGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVz dHMgaW1wb3J0IHV0aWxzIGFzIFwKICAgICBkYXRhYmFzZV91dGlscwogZnJvbSBwZ2FkbWluLnV0 aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVyX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRp bHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFz ZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgUG9zdGdyZXNWZXJzaW9uCitmcm9tIHBnYWRtaW4udXRp bHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBh c3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBw YXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0 IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgdmlld3NfdXRpbHMK IAogCi1jbGFzcyBWaWV3c1VwZGF0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAi IiJUaGlzIGNsYXNzIHdpbGwgdXBkYXRlIHRoZSB2aWV3L212aWV3IHVuZGVyIHNjaGVtYSBub2Rl LiIiIgotICAgIHZpZXdfc3FsID0gIkNSRUFURSBPUiBSRVBMQUNFIFZJRVcgJXMuJXMgQVMgU0VM RUNUICdIZWxsbyBXb3JsZCc7ICIgXAotICAgICAgICAgICAgICAgIkFMVEVSIFRBQkxFICVzLiVz IE9XTkVSIFRPICVzIgotICAgIG1fdmlld19zcWwgPSAiQ1JFQVRFIE1BVEVSSUFMSVpFRCBWSUVX ICVzLiVzIFRBQkxFU1BBQ0UgcGdfZGVmYXVsdCBBUyAiIFwKLSAgICAgICAgICAgICAgICAgIlNF TEVDVCAndGVzdF9wZ2FkbWluJyBXSVRIIE5PIERBVEE7QUxURVIgVEFCTEUgJXMuJXMgT1dORVIi IFwKLSAgICAgICAgICAgICAgICAgIiBUTyAlcyIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAg ICgnVXBkYXRlIHZpZXcgdW5kZXIgc2NoZW1hIG5vZGUnLCBkaWN0KAotICAgICAgICAgICAgdXJs PScvYnJvd3Nlci92aWV3L29iai8nLAotICAgICAgICAgICAgdmlld19uYW1lPSJ0ZXN0X3ZpZXdf cHV0XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKSwKLSAgICAgICAgICAgIHNxbF9xdWVy eT12aWV3X3NxbCkpLAotICAgICAgICAoJ1VwZGF0ZSBtYXRlcmlhbGl6ZWQgdmlldyB1bmRlciBz Y2hlbWEgbm9kZScsCi0gICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvbXZpZXcvb2JqLycsCi0g ICAgICAgICAgICAgIHZpZXdfbmFtZT0idGVzdF9tdmlld19wdXRfJXMiICUgKHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0pLAotICAgICAgICAgICAgICBzcWxfcXVlcnk9bV92aWV3X3NxbCkpCi0gICAg XQotCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRf bm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9pbmZv ID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lk ID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFf aW5mb1siZGJfaWQiXQorY2xhc3MgVGVzdFZpZXdHZXQ6CisgICAgZGVmIHRlc3Rfdmlld3NfZ2V0 KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAg V2hlbiB0aGUgdmlld3MgZ2V0IHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAg ICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRk ZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3ZpZXcv b2JqLycKKworICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xp ZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQor ICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVst MV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQn XQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAg ICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKworICAgICAgICBz ZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAg IHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAg ICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lkJ10KKworICAg ICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVS X0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAi RGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxk IG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCisKKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0g c2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z Y2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAg IHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQorCisgICAgICAg IHZpZXdfbmFtZSA9ICJ0ZXN0X3ZpZXdfZGVsZXRlXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsx OjhdKQorICAgICAgICBzcWxfcXVlcnkgPSAiQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyAlcy4lcyBB UyBTRUxFQ1QgJ0hlbGxvIFdvcmxkJzsgIiBcCisgICAgICAgICAgICAgICAgICAgICJBTFRFUiBU QUJMRSAlcy4lcyBPV05FUiBUTyAlcyIKKyAgICAgICAgc2VsZi52aWV3X2lkID0gdmlld3NfdXRp bHMuY3JlYXRlX3ZpZXcoc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3FsX3F1ZXJ5LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3X25hbWUpCisgICAgICAgIHZp ZXdfcmVzcG9uc2UgPSB2aWV3c191dGlscy52ZXJpZnlfdmlldyhzZWxmLnNlcnZlciwgc2VsZi5k Yl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dmlld19uYW1lKQorICAgICAgICBpZiBub3Qgdmlld19yZXNwb25zZToKKyAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHZpZXcgdG8gdXBkYXRlLiIpCisKKyAg ICAgICAgZGF0YSA9IHsKKyAgICAgICAgICAgICJpZCI6IHNlbGYudmlld19pZCwKKyAgICAgICAg ICAgICJjb21tZW50IjogIlRoaXMgaXMgdGVzdCBjb21tZW50IgorICAgICAgICB9CisgICAgICAg IHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KAorICAgICAgICAgICAgInswfXsxfS97Mn0vezN9 L3s0fS97NX0iLmZvcm1hdCh1cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1h X2lkLCBzZWxmLnZpZXdfaWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKSwKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAg IGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8 IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0 X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGFzc2VydF9qc29uX3ZhbHVlc19m cm9tX3Jlc3BvbnNlKAorICAgICAgICAgICAganNvbl9yZXNwb25zZSwKKyAgICAgICAgICAgICd2 aWV3JywKKyAgICAgICAgICAgICdwZ2FkbWluLm5vZGUudmlldycsCisgICAgICAgICAgICBUcnVl LAorICAgICAgICAgICAgJ2ljb24tdmlldycsCisgICAgICAgICAgICB2aWV3X25hbWUKKyAgICAg ICAgKQorCisgICAgQHB5dGVzdC5tYXJrLnNraXBfaWZfcG9zdGdyZXNfdmVyc2lvbigKKyAgICAg ICAgeydiZWxvd192ZXJzaW9uJzogUG9zdGdyZXNWZXJzaW9uLnY5M30sCisgICAgICAgICJNYXRl cmlhbGl6ZWQgVmlld3MgYXJlIG5vdCBzdXBwb3J0ZWQgIgorICAgICAgICAiYnkgUEc5LjIgIgor ICAgICAgICAiYW5kIFBQQVM5LjIgYW5kIGJlbG93LiIpCisgICAgZGVmIHRlc3RfbWF0ZXJpYWxp emVkX3ZpZXdzX2FkZChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAg IiIiCisgICAgICAgIFdoZW4gdGhlIG1hdGVyaWFsaXplZCB2aWV3cyBhZGQgcmVxdWVzdCBpcyBz ZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAg ICAiIiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAg ICAgICB1cmwgPSAnL2Jyb3dzZXIvbXZpZXcvb2JqLycKKworICAgICAgICBzZWxmLnRlc3RlciA9 IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBj b250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFy ZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBz ZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5z ZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9k YXRhWydkYl9uYW1lJ10KKworICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVf ZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVt YV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hl bWFfaW5mb1snc2NoZW1hX2lkJ10KKwogICAgICAgICBzZXJ2ZXJfcmVzcG9uc2UgPSBzZXJ2ZXJf dXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQpCiAKLSAgICAgICAgaWYg c2VydmVyX3Jlc3BvbnNlWyJkYXRhIl1bInZlcnNpb24iXSA8IDkwMzAwIGFuZCAibXZpZXciIGlu IHNlbGYudXJsOgorICAgICAgICBpZiBzZXJ2ZXJfcmVzcG9uc2VbImRhdGEiXVsidmVyc2lvbiJd IDwgOTAzMDA6CiAgICAgICAgICAgICBtZXNzYWdlID0gIk1hdGVyaWFsaXplZCBWaWV3cyBhcmUg bm90IHN1cHBvcnRlZCBieSBQRzkuMiAiIFwKICAgICAgICAgICAgICAgICAgICAgICAiYW5kIFBQ QVM5LjIgYW5kIGJlbG93LiIKLSAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QobWVzc2FnZSkKLQot ICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0 aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRi X2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gdXBkYXRlIGEgdmlldy4iKQotICAgICAg ICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBzZWxm LnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICAgICAgICAgIHB5 dGVzdC5za2lwVGVzdChtZXNzYWdlKQorCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxz LmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAg ICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKKyAgICAg ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikK KwogICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMo c2VsZi5zZXJ2ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLmRiX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qg c2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg ZmluZCB0aGUgc2NoZW1hIHRvIHVwZGF0ZSBhIHZpZXcuIikKKyAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQorCisgICAgICAgIHZpZXdfbmFt ZSA9ICJ0ZXN0X212aWV3X2RlbGV0ZV8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAg ICAgICAgc3FsX3F1ZXJ5ID0gIkNSRUFURSBNQVRFUklBTElaRUQgVklFVyAlcy4lcyBUQUJMRVNQ QUNFIiBcCisgICAgICAgICAgICAgICAgICAgICIgcGdfZGVmYXVsdCBBUyAiIFwKKyAgICAgICAg ICAgICAgICAgICAgIlNFTEVDVCAndGVzdF9wZ2FkbWluJyBXSVRIIE5PIERBVEE7IiBcCisgICAg ICAgICAgICAgICAgICAgICJBTFRFUiBUQUJMRSAlcy4lcyBPV05FUiIgXAorICAgICAgICAgICAg ICAgICAgICAiIFRPICVzIgogICAgICAgICBzZWxmLnZpZXdfaWQgPSB2aWV3c191dGlscy5jcmVh dGVfdmlldyhzZWxmLnNlcnZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNxbF9xdWVyeSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi52aWV3X25hbWUpCi0KLSAgICBk ZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0 aGUgdmlldy9tdmlldyB1bmRlciBzY2hlbWEgbm9kZS4iIiIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3FsX3F1ZXJ5LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3X25hbWUpCiAgICAgICAgIHZpZXdfcmVz cG9uc2UgPSB2aWV3c191dGlscy52ZXJpZnlfdmlldyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1l LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi52 aWV3X25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2aWV3X25hbWUpCiAgICAgICAgIGlmIG5vdCB2aWV3X3Jlc3BvbnNlOgogICAgICAgICAgICAg cmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgdmlldyB0byB1cGRhdGUuIikKLSAg ICAgICAgZGF0YSA9IHsiaWQiOiBzZWxmLnZpZXdfaWQsCi0gICAgICAgICAgICAgICAgImNvbW1l bnQiOiAiVGhpcyBpcyB0ZXN0IGNvbW1lbnQiCi0gICAgICAgICAgICAgICAgfQorCisgICAgICAg IGRhdGEgPSB7CisgICAgICAgICAgICAiaWQiOiBzZWxmLnZpZXdfaWQsCisgICAgICAgICAgICAi Y29tbWVudCI6ICJUaGlzIGlzIHRlc3QgY29tbWVudCIKKyAgICAgICAgfQogICAgICAgICByZXNw b25zZSA9IHNlbGYudGVzdGVyLnB1dCgKLSAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS97NH0v ezV9Ii5mb3JtYXQoc2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICJ7 MH17MX0vezJ9L3szfS97NH0vezV9Ii5mb3JtYXQodXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lk LCBzZWxmLmRiX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNjaGVtYV9pZCwgc2VsZi52aWV3X2lkCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSks CiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3Rh dHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNl ID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnRfanNv bl92YWx1ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAg ICAgICAgICAnbXZpZXcnLAorICAgICAgICAgICAgJ3BnYWRtaW4ubm9kZS5tdmlldycsCisgICAg ICAgICAgICBUcnVlLAorICAgICAgICAgICAgJ2ljb24tdmlldycsCisgICAgICAgICAgICB2aWV3 X25hbWUKKyAgICAgICAgKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAjIERp c2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3Rf ZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFi YXNlX3V0aWxzLmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNl cnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy9fX2luaXRfXy5weQpp bmRleCA3ZmNlNzgyZC4uNTkwMDI2YWQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy9fX2luaXRfXy5weQorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMv X19pbml0X18ucHkKQEAgLTYsMTAgKzYsMyBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2Vk IHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLWZy b20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLQotCi1jbGFz cyBEYXRhYmFzZUNyZWF0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICBkZWYgcnVu VGVzdChzZWxmKToKLSAgICAgICAgcmV0dXJuCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9hZGQucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVz dHMvdGVzdF9kYl9hZGQucHkKaW5kZXggODhiOTgyZjguLjdmNmFiM2Y0IDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMv dGVzdF9kYl9hZGQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfYWRkLnB5CkBAIC05LDUxICs5LDU4IEBACiAK IGltcG9ydCBqc29uCiAKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWlu LnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVyX3V0aWxzCi1mcm9tIHBnYWRtaW4u dXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1w b3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBp bXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBkYXRhYmFz ZV91dGlscwogCiAKLWNsYXNzIERhdGFiYXNlQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3Ip OgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCB0ZXN0IHRoZSBBREQgZGF0YWJhc2UgQVBJIiIiCi0g ICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBkYXRh YmFzZSBub2RlLgotICAgICAgICAoJ0NoZWNrIERhdGFiYXNlcyBOb2RlIFVSTCcsIGRpY3QodXJs PScvYnJvd3Nlci9kYXRhYmFzZS9vYmovJykpCi0gICAgXQotCi0gICAgZGVmIHNldFVwKHNlbGYp OgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRo aXMgZnVuY3Rpb24gd2lsbCBhZGQgZGF0YWJhc2UgdW5kZXIgMXN0IHNlcnZlciBvZiB0cmVlIG5v ZGUuICIiIgotICAgICAgICBzZWxmLmRiX25hbWUgPSAnJwotICAgICAgICBzZWxmLnNlcnZlcl9p ZCA9IHBhcmVudF9ub2RlX2RpY3RbInNlcnZlciJdWy0xXVsic2VydmVyX2lkIl0KLSAgICAgICAg c2VydmVyX3Jlc3BvbnNlID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNlbGYu c2VydmVyX2lkKQotICAgICAgICBpZiBzZXJ2ZXJfcmVzcG9uc2VbImluZm8iXSA9PSAiU2VydmVy IGNvbm5lY3RlZC4iOgotICAgICAgICAgICAgZGJfb3duZXIgPSBzZXJ2ZXJfcmVzcG9uc2VbJ2Rh dGEnXVsndXNlciddWyduYW1lJ10KLSAgICAgICAgICAgIHNlbGYuZGF0YSA9IGRhdGFiYXNlX3V0 aWxzLmdldF9kYl9kYXRhKGRiX293bmVyKQotICAgICAgICAgICAgc2VsZi5kYXRhWyd0ZW1wbGF0 ZSddID0gJ3RlbXBsYXRlMCcKLSAgICAgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuZGF0YVsn bmFtZSddCi0gICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3Qoc2VsZi51cmwg KyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIi8iICsgc3RyKHNlbGYuc2VydmVyX2lkKSArICIvIiwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoc2VsZi5kYXRhKSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0 bWwvanNvbicpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNf Y29kZSwgMjAwKQotICAgICAgICAgICAgcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9u c2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCi0gICAgICAgICAgICBkYl9pZCA9IHJlc3BvbnNlX2Rh dGFbJ25vZGUnXVsnX2lkJ10KLSAgICAgICAgICAgIGRiX2RpY3QgPSB7InNlcnZlcl9pZCI6IHNl bGYuc2VydmVyX2lkLCAiZGJfaWQiOiBkYl9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgImRi X25hbWUiOiBzZWxmLmRiX25hbWV9Ci0gICAgICAgICAgICB1dGlscy53cml0ZV9ub2RlX2luZm8o ImRpZCIsIGRiX2RpY3QpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRp b24oIkVycm9yIHdoaWxlIGNvbm5lY3Rpbmcgc2VydmVyIHRvIGFkZCB0aGUiCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIiBkYXRhYmFzZS4iKQorY2xhc3MgVGVzdERhdGFiYXNlQWRkOgog Ci0gICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgIGRlZiB0ZXN0X2RhdGFiYXNlX2FkZChzZWxm LCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKICAgICAgICAgIiIiCi0gICAgICAgIFRoaXMg ZnVuY3Rpb24gZGVsZXRlIHRoZSBkYXRhYmFzZSBmcm9tIHNlcnZlciBhZGRlZCBpbiBTUUxpdGUu CisgICAgICAgIFdoZW4gc2VuZGluZyBwb3N0IHJlcXVlc3QgdG8gZGF0YWJhc2UgZW5kcG9pbnQK KyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCiAgICAgICAgICIiIgorCisgICAgICAgIHJl cXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgc2VsZi5zZXJ2ZXIg PSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBodHRwX2NsaWVudCA9IGNvbnRl eHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgdXJsID0gJy9icm93c2VyL2RhdGFi YXNlL29iai8nCisgICAgICAgIHNlcnZlcl9pZCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9p bmZvcm1hdGlvbiddWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZXJ2ZXJfcmVzcG9uc2UgPSBzZXJ2 ZXJfdXRpbHMuY2xpZW50X2Nvbm5lY3Rfc2VydmVyKAorICAgICAgICAgICAgaHR0cF9jbGllbnQs CisgICAgICAgICAgICBzZXJ2ZXJfaWQsCisgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFz c3dvcmQnXSkKKyAgICAgICAgaWYgbm90IHNlcnZlcl9yZXNwb25zZVsnZGF0YSddWydjb25uZWN0 ZWQnXToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignU2VydmVyIG5vdCBmb3VuZC4nKQor CisgICAgICAgIGRiX293bmVyID0gc2VydmVyX3Jlc3BvbnNlWydkYXRhJ11bJ3VzZXInXVsnbmFt ZSddCisgICAgICAgIGRhdGEgPSBkYXRhYmFzZV91dGlscy5nZXRfZGJfZGF0YShkYl9vd25lcikK KyAgICAgICAgZGF0YVsndGVtcGxhdGUnXSA9ICd0ZW1wbGF0ZTAnCisgICAgICAgIHNlbGYuZGJf bmFtZSA9IGRhdGFbJ25hbWUnXQorCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQucG9z dCgKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgIi8iICsKKyAg ICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgIi8iLAorICAgICAgICAgICAgZGF0YT1qc29uLmR1 bXBzKGRhdGEpLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAg ICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsKDIwMCkKKworICAgICAg ICByZXNwb25zZV9kYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgn KSkKKyAgICAgICAgZGJfaWQgPSByZXNwb25zZV9kYXRhWydub2RlJ11bJ19pZCddCisgICAgICAg IGRiX2RpY3QgPSB7CisgICAgICAgICAgICAic2VydmVyX2lkIjogc2VydmVyX2lkLAorICAgICAg ICAgICAgImRiX2lkIjogZGJfaWQsCisgICAgICAgICAgICAiZGJfbmFtZSI6ICdiYWEnCisgICAg ICAgIH0KKworICAgICAgICB1dGlscy53cml0ZV9ub2RlX2luZm8oImRpZCIsIGRiX2RpY3QpCisK KyAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRf ZGJfY29ubmVjdGlvbihzZWxmLnNlcnZlclsnZGInXSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3 b3JkJ10sCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9kZWxldGUucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9kZWxldGUu cHkKaW5kZXggOGM5MjVjMzMuLmNjOTg4MWY5IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9kZWxldGUu cHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3Rlc3RzL3Rlc3RfZGJfZGVsZXRlLnB5CkBAIC05LDQzICs5LDUxIEBACiAKIGltcG9ydCB1 dWlkCiAKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLnV0aWxzIGlt cG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVyX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91 dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVu dF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVz dF91dGlscyBhcyB1dGlscwogCiAKLWNsYXNzIERhdGFiYXNlRGVsZXRlVGVzdENhc2UoQmFzZVRl c3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgZGVsZXRlIHRoZSBkYXRhYmFz ZSB1bmRlciBsYXN0IGFkZGVkIHNlcnZlci4gIiIiCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAg ICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBkYXRhYmFzZSBub2RlLgotICAgICAgICAoJ0No ZWNrIERhdGFiYXNlcyBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9kYXRhYmFzZS9vYmov JykpCi0gICAgXQorY2xhc3MgVGVzdERhdGFiYXNlRGVsZXRlOgorCisgICAgZGVmIHRlc3RfZGF0 YWJhc2VfZGVsZXRlKHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAi IiIKKyAgICAgICAgV2hlbiBzZW5kaW5nIGRlbGV0ZSByZXF1ZXN0IHRvIGRhdGFiYXNlIGVuZHBv aW50CisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKworICAgICAg ICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQogCi0gICAgZGVmIHNldFVwKHNl bGYpOgotICAgICAgICBzZWxmLmRiX25hbWUgPSAiZGJfZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0sCi0gICAgICAgIHNlbGYuZGJfaWQgPSB1dGlscy5jcmVhdGVfZGF0YWJhc2Uo c2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSkKLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBwYXJl bnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9pZCJdCi0gICAgICAgIGRiX2RpY3Qg PSB7InNlcnZlcl9pZCI6IHNlbGYuc2VydmVyX2lkLCAiZGJfaWQiOiBzZWxmLmRiX2lkLAotICAg ICAgICAgICAgICAgICAgICJkYl9uYW1lIjogc2VsZi5kYl9uYW1lfQorICAgICAgICBzZWxmLnNl cnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIGh0dHBfY2xpZW50ID0g Y29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICB1cmwgPSAnL2Jyb3dzZXIv ZGF0YWJhc2Uvb2JqLycKKyAgICAgICAgc2VydmVyX2lkID0gY29udGV4dF9vZl90ZXN0c1snc2Vy dmVyX2luZm9ybWF0aW9uJ11bJ3NlcnZlcl9pZCddCisgICAgICAgIHNlcnZlcl9yZXNwb25zZSA9 IHNlcnZlcl91dGlscy5jbGllbnRfY29ubmVjdF9zZXJ2ZXIoCisgICAgICAgICAgICBodHRwX2Ns aWVudCwKKyAgICAgICAgICAgIHNlcnZlcl9pZCwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWydk Yl9wYXNzd29yZCddKQorICAgICAgICBpZiBub3Qgc2VydmVyX3Jlc3BvbnNlWydkYXRhJ11bJ2Nv bm5lY3RlZCddOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdTZXJ2ZXIgbm90IGZvdW5k LicpCisKKyAgICAgICAgc2VsZi5kYl9uYW1lID0gImRiXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkp WzE6OF0sCisgICAgICAgIGRiX2lkID0gdXRpbHMuY3JlYXRlX2RhdGFiYXNlKHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUpCisgICAgICAgIGRiX2RpY3QgPSB7CisgICAgICAgICAgICAic2VydmVy X2lkIjogc2VydmVyX2lkLAorICAgICAgICAgICAgImRiX2lkIjogZGJfaWQsCisgICAgICAgICAg ICAiZGJfbmFtZSI6IHNlbGYuZGJfbmFtZQorICAgICAgICB9CiAgICAgICAgIHV0aWxzLndyaXRl X25vZGVfaW5mbygiZGlkIiwgZGJfZGljdCkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAg ICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSB0aGUgZGF0YWJhc2UuIiIiCi0gICAg ICAgIHNlcnZlcl9yZXNwb25zZSA9IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihzZWxmLCBz ZWxmLnNlcnZlcl9pZCkKLSAgICAgICAgaWYgc2VydmVyX3Jlc3BvbnNlWyJkYXRhIl1bImNvbm5l Y3RlZCJdOgotICAgICAgICAgICAgZGJfaWQgPSBzZWxmLmRiX2lkCi0gICAgICAgICAgICByZXNw b25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKLSAgICAgICAgICAgICAgICBzZWxmLnVybCArIHN0 cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKLSAgICAgICAgICAgICAgICBzdHIoc2VsZi5z ZXJ2ZXJfaWQpICsgJy8nICsgc3RyKGRiX2lkKSwKLSAgICAgICAgICAgICAgICBmb2xsb3dfcmVk aXJlY3RzPVRydWUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0 dXNfY29kZSwgMjAwKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJDb3VsZCBub3QgY29ubmVjdCB0byBzZXJ2ZXIgdG8gZGVsZXRlIHRoZSAiCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgImRhdGFiYXNlLiIpCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9j bGllbnQuZGVsZXRlKAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkg KyAnLycgKworICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAg c3RyKGRiX2lkKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKworICAgICAg ICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5lcXVhbCgyMDApCiAKICAgICBkZWYgdGVh ckRvd24oc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZHJvcCB0aGUgYWRkZWQgZGF0 YWJhc2UiIiIKICAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0aW9uKHNl bGYuc2VydmVyWydkYiddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJbJ3VzZXJuYW1lJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90 ZXN0cy90ZXN0X2RiX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX2dldC5weQppbmRleCAzZmYwZDkwZC4uOTgz MmZkZjggMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX2dldC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9nZXQucHkK QEAgLTcsNDEgKzcsMjggQEAKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKLWZyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBv cnQgcGFyZW50X25vZGVfZGljdAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNo b3VsZAorCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRp bHMgYXMgdXRpbHMKLWZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKIAogCi1j bGFzcyBEYXRhYmFzZXNHZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiCi0g ICAgVGhpcyBjbGFzcyB3aWxsIGZldGNoIGRhdGFiYXNlIGFkZGVkIHVuZGVyIGxhc3QgYWRkZWQg c2VydmVyLgotICAgICIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBk ZWZhdWx0IFVSTCBmb3IgZGF0YWJhc2Ugbm9kZS4KLSAgICAgICAgKCdDaGVjayBEYXRhYmFzZXMg Tm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvZGF0YWJhc2Uvb2JqLycpKQotICAgIF0KK2Ns YXNzIFRlc3REYXRhYmFzZUdldDoKKyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoJ3JlcXVp cmVfZGF0YWJhc2VfY29ubmVjdGlvbicpCisgICAgZGVmIHRlc3RfZGF0YWJhc2VfZ2V0KHNlbGYs IGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBzZW5kaW5nIGdl dCByZXF1ZXN0IHRvIGRhdGFiYXNlIGVuZHBvaW50CisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0 YXR1cworICAgICAgICAiIiIKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvZGF0YWJhc2Uvb2Jq LycKKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCdd CisgICAgICAgIHNlcnZlcl9pZCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlv biddWydzZXJ2ZXJfaWQnXQorICAgICAgICBkYl9pZCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZl cl9pbmZvcm1hdGlvbiddWydkYl9pZCddCisKKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2NsaWVu dC5nZXQoCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyAr CisgICAgICAgICAgICBzdHIoc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoZGJf aWQpLCBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAg ICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCBhZGRlZCBkYXRhYmFzZS4gIiIiCi0g ICAgICAgIHNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV0KLSAg ICAgICAgc2VydmVyX2lkID0gc2VydmVyX2RhdGFbInNlcnZlcl9pZCJdCi0gICAgICAgIGRiX2lk ID0gc2VydmVyX2RhdGFbJ2RiX2lkJ10KLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMu Y29ubmVjdF9kYXRhYmFzZShzZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfaWQpCi0gICAgICAgIHRyeToKLSAg ICAgICAgICAgIGlmIGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKLSAg ICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKLSAgICAgICAgICAgICAg ICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0cigKLSAg ICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCkgKyAnLycgKwotICAgICAgICAgICAgICAg ICAgICBzdHIoZGJfaWQpLCBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgICAgICAgICAg c2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLSAgICAgICAgICAg IGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVj dCB0byBkYXRhYmFzZS4iKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4Y2VwdGlvbjoK LSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiRXJyb3Igd2hpbGUgZ2V0dGluZyBkYXRhYmFz ZS4gJXMiICUgZXhjZXB0aW9uKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgIyBEaXNj b25uZWN0IGRhdGFiYXNlIHRvIGRlbGV0ZSBpdAotICAgICAgICAgICAgZGF0YWJhc2VfdXRpbHMu ZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZXJ2ZXJfaWQsIGRiX2lkKQorICAgICAgICByZXNw b25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5lcXVhbCgyMDApCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9k Yl9wdXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvdGVzdHMvdGVzdF9kYl9wdXQucHkKaW5kZXggZTU1OTg0NjguLjQyNDRlZTU4IDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvdGVzdHMvdGVzdF9kYl9wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfcHV0LnB5CkBAIC0xMCw2NCAr MTAsNzIgQEAKIGltcG9ydCBqc29uCiBpbXBvcnQgdXVpZAogCi1mcm9tIHBnYWRtaW4udXRpbHMu cm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBh cmVudF9ub2RlX2RpY3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKworZnJvbSBwZ2FkbWlu LnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVyX3V0aWxzCiBmcm9tIHJlZ3Jlc3Np b24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBp bXBvcnQgdXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKIAogCi1jbGFzcyBEYXRhYmFzZXNVcGRhdGVU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3aWxsIHVwZGF0 ZSB0aGUgZGF0YWJhc2UgdW5kZXIgbGFzdCBhZGRlZCBzZXJ2ZXIuIiIiCi0gICAgc2NlbmFyaW9z ID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBkYXRhYmFzZSBub2RlLgot ICAgICAgICAoJ0NoZWNrIERhdGFiYXNlcyBOb2RlJywgZGljdCh1cmw9Jy9icm93c2VyL2RhdGFi YXNlL29iai8nKSkKLSAgICBdCitjbGFzcyBUZXN0RGF0YWJhc2VQdXQ6CisKKyAgICBkZWYgdGVz dF9kYXRhYmFzZV9wdXQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAg ICIiIgorICAgICAgICBXaGVuIHNlbmRpbmcgcHV0IHJlcXVlc3QgdG8gZGF0YWJhc2UgZW5kcG9p bnQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorCisgICAgICAg IHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgc2VsZi5zZXJ2 ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBodHRwX2NsaWVudCA9IGNv bnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgdXJsID0gJy9icm93c2VyL2Rh dGFiYXNlL29iai8nCisgICAgICAgIHNlcnZlcl9pZCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZl cl9pbmZvcm1hdGlvbiddWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZXJ2ZXJfcmVzcG9uc2UgPSBz ZXJ2ZXJfdXRpbHMuY2xpZW50X2Nvbm5lY3Rfc2VydmVyKAorICAgICAgICAgICAgaHR0cF9jbGll bnQsCisgICAgICAgICAgICBzZXJ2ZXJfaWQsCisgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJf cGFzc3dvcmQnXSkKKyAgICAgICAgaWYgbm90IHNlcnZlcl9yZXNwb25zZVsnZGF0YSddWydjb25u ZWN0ZWQnXToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignU2VydmVyIG5vdCBmb3VuZC4n KQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLmRiX25hbWUgPSAidGVzdF9k Yl9wdXRfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQotICAgICAgICBzZWxmLmRiX2lkID0g dXRpbHMuY3JlYXRlX2RhdGFiYXNlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUpCi0gICAgICAg IHNlbGYuc2VydmVyX2lkID0gcGFyZW50X25vZGVfZGljdFsic2VydmVyIl1bLTFdWyJzZXJ2ZXJf aWQiXQotICAgICAgICBkYl9kaWN0ID0geyJzZXJ2ZXJfaWQiOiBzZWxmLnNlcnZlcl9pZCwgImRi X2lkIjogc2VsZi5kYl9pZCwKLSAgICAgICAgICAgICAgICAgICAiZGJfbmFtZSI6IHNlbGYuZGJf bmFtZX0KKyAgICAgICAgc2VsZi5kYl9uYW1lID0gImRiXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkp WzE6OF0sCisgICAgICAgIGRiX2lkID0gdXRpbHMuY3JlYXRlX2RhdGFiYXNlKHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUpCisgICAgICAgIGRiX2RpY3QgPSB7CisgICAgICAgICAgICAic2VydmVy X2lkIjogc2VydmVyX2lkLAorICAgICAgICAgICAgImRiX2lkIjogZGJfaWQsCisgICAgICAgICAg ICAiZGJfbmFtZSI6IHNlbGYuZGJfbmFtZQorICAgICAgICB9CiAgICAgICAgIHV0aWxzLndyaXRl X25vZGVfaW5mbygiZGlkIiwgZGJfZGljdCkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAg ICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0aGUgY29tbWVudHMgZmllbGQgb2Yg ZGF0YWJhc2UuIiIiCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0 YWJhc2Uoc2VsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgZGJfY29u WyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgotICAgICAgICAgICAgdHJ5OgotICAg ICAgICAgICAgICAgIGRhdGEgPSB7Ci0gICAgICAgICAgICAgICAgICAgICJjb21tZW50cyI6ICJU aGlzIGlzIGRiIHVwZGF0ZSBjb21tZW50IiwKLSAgICAgICAgICAgICAgICAgICAgImlkIjogc2Vs Zi5kYl9pZAotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNl bGYudGVzdGVyLnB1dCgKLSAgICAgICAgICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMu U0VSVkVSX0dST1VQKSArICcvJyArIHN0cigKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2VydmVyX2lkKSArICcvJyArCi0gICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSwg ZGF0YT1qc29uLmR1bXBzKGRhdGEpLAotICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJl Y3RzPVRydWUpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3Rh dHVzX2NvZGUsIDIwMCkKLSAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXhjZXB0aW9u OgotICAgICAgICAgICAgICAgIGZyb20gdHJhY2ViYWNrIGltcG9ydCBwcmludF9leGMKLSAgICAg ICAgICAgICAgICBwcmludF9leGMoKQotICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi RXJyb3Igd2hpbGUgdXBkYXRpbmcgZGF0YWJhc2UgZGV0YWlscy4gJXMiICUKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uKQotICAgICAgICAgICAgZmluYWxseToKLSAg ICAgICAgICAgICAgICAjIERpc2Nvbm5lY3QgZGF0YWJhc2UgdG8gZGVsZXRlIGl0Ci0gICAgICAg ICAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNl cnZlcl9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuZGJfaWQpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRp b24oIkVycm9yIHdoaWxlIHVwZGF0aW5nIGRhdGFiYXNlIGRldGFpbHMuIikKKyAgICAgICAgZGJf Y29uID0gZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Nvbm5lY3RfZGF0YWJhc2UoCisgICAgICAgICAg ICBodHRwX2NsaWVudCwKKyAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAg ICAgIHNlcnZlcl9pZCwKKyAgICAgICAgICAgIGRiX2lkLAorICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJbJ2RiX3Bhc3N3b3JkJ10KKyAgICAgICAgKQorCisgICAgICAgIGlmIG5vdCBkYl9jb25bJ2Rh dGEnXVsnY29ubmVjdGVkJ106CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0RhdGFiYXNl IG5vdCBmb3VuZC4nKQorCisgICAgICAgIGRhdGEgPSB7CisgICAgICAgICAgICAiY29tbWVudHMi OiAiVGhpcyBpcyBkYiB1cGRhdGUgY29tbWVudCIsCisgICAgICAgICAgICAiaWQiOiBkYl9pZAor ICAgICAgICB9CisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQucHV0KAorICAgICAgICAg ICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3Ry KHNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKGRiX2lkKSwKKyAgICAgICAgICAg IGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1 ZSkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5lcXVhbCgyMDApCiAK ICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBUaGlzIGZ1bmN0 aW9uIGRlbGV0ZSB0aGUgZGF0YWJhc2UgZnJvbSBzZXJ2ZXIgYWRkZWQgaW4gU1FMaXRlLgotICAg ICAgICAiIiIKICAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0aW9uKHNl bGYuc2VydmVyWydkYiddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJbJ3VzZXJuYW1lJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydob3N0J10s Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZl clsncG9ydCddKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zZXJ2ZXJbJ3BvcnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2VydmVyWydzc2xtb2RlJ10pCiAgICAgICAgIHV0aWxzLmRyb3BfZGF0 YWJhc2UoY29ubmVjdGlvbiwgc2VsZi5kYl9uYW1lKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3V0aWxzLnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3Rz L3V0aWxzLnB5CmluZGV4IDY1MTAxNDFmLi42M2UyYTA1OSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3V0aWxzLnB5 CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy90ZXN0cy91dGlscy5weQpAQCAtMTEwLDEyICsxMTAsMzYgQEAgZGVmIGNvbm5lY3RfZGF0YWJh c2Uoc2VsZiwgc2VydmVyX2dyb3VwLCBzZXJ2ZXJfaWQsIGRiX2lkKToKICAgICA6cmV0dXJuOiB0 ZW1wX2RiX2NvbgogICAgIDpydHlwZTogbGlzdAogICAgICIiIgorICAgIHJldHVybiBjbGllbnRf Y29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VydmVyX2dyb3VwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX2lkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dv cmQnXSkKIAotICAgICMgVmVyaWZ5IHNlcnZlcnMKLSAgICBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9z ZXJ2ZXIoc2VsZiwgc2VydmVyX2lkKQogCi0gICAgIyBDb25uZWN0IHRvIGRhdGFiYXNlCi0gICAg ZGJfY29uID0gc2VsZi50ZXN0ZXIucG9zdCgKK2RlZiBjbGllbnRfY29ubmVjdF9kYXRhYmFzZSho dHRwX2NsaWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfZ3JvdXAsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRiX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX3Bhc3N3b3Jk KToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIHZlcmlmaWVzIHRoYXQgZGF0YWJhc2UgaXMg ZXhpc3RzIGFuZCB3aGV0aGVyIGl0IGNvbm5lY3QKKyAgICBzdWNjZXNzZnVsbHkgb3Igbm90CisK KyAgICA6cGFyYW0gaHR0cF9jbGllbnQ6IFRlc3QgSFRUUCBDbGllbnQgb2JqZWN0CisgICAgOnBh cmFtIHNlcnZlcl9ncm91cDogc2VydmVyIGdyb3VwIGlkCisgICAgOnR5cGUgc2VydmVyX2dyb3Vw OiBpbnQKKyAgICA6cGFyYW0gc2VydmVyX2lkOiBzZXJ2ZXIgaWQKKyAgICA6dHlwZSBzZXJ2ZXJf aWQ6IHN0cgorICAgIDpwYXJhbSBkYl9pZDogZGF0YWJhc2UgaWQKKyAgICA6dHlwZSBkYl9pZDog c3RyCisgICAgOnBhcmFtIGRiX3Bhc3N3b3JkOiBwYXNzd29yZCBmb3IgdGhlIGRhdGFiYXNlCisg ICAgOnJldHVybjogdGVtcF9kYl9jb24KKyAgICA6cnR5cGU6IGxpc3QKKyAgICAiIiIKKyAgICBz ZXJ2ZXJfdXRpbHMuY2xpZW50X2Nvbm5lY3Rfc2VydmVyKGh0dHBfY2xpZW50LCBzZXJ2ZXJfaWQs IGRiX3Bhc3N3b3JkKQorCisgICAgZGJfY29uID0gaHR0cF9jbGllbnQucG9zdCgKICAgICAgICAg J3swfXsxfS97Mn0vezN9Jy5mb3JtYXQoCiAgICAgICAgICAgICBEQVRBQkFTRV9DT05ORUNUX1VS TCwKICAgICAgICAgICAgIHNlcnZlcl9ncm91cCwKQEAgLTEzMSw3ICsxNTUsMjAgQEAgZGVmIGNv bm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VydmVyX2dyb3VwLCBzZXJ2ZXJfaWQsIGRiX2lkKToKIAog ZGVmIGRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VydmVyX2lkLCBkYl9pZCk6CiAgICAgIiIi VGhpcyBmdW5jdGlvbiBkaXNjb25uZWN0IHRoZSBkYiIiIgotICAgIGRiX2NvbiA9IHNlbGYudGVz dGVyLmRlbGV0ZSgKKyAgICByZXR1cm4gY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50 ZXN0ZXIsIHNlcnZlcl9pZCwgZGJfaWQpCisKKworZGVmIGNsaWVudF9kaXNjb25uZWN0X2RhdGFi YXNlKGh0dHBfY2xpZW50LCBzZXJ2ZXJfaWQsIGRiX2lkKToKKyAgICAiIiIKKyAgICBFeGVjdXRl IGEgSFRUUCBSZXF1ZXN0IHRvIGluZm9ybSB0aGUgc2VydmVyIHRoYXQgdGhlIGNvbm5lY3Rpb24K KyAgICB0byBhIGRhdGFiYXNlIHNob3VsZCBiZSByZW1vdmVkCisKKyAgICA6cGFyYW0gaHR0cF9j bGllbnQ6IEZsYXNrIEhUVFAgQ2xpZW50CisgICAgOnBhcmFtIHNlcnZlcl9pZDogSWRlbnRpZmll ciBvZiB0aGUgc2VydmVyIHRvIGRpc2Nvbm5lY3QgZnJvbQorICAgIDpwYXJhbSBkYl9pZDogSWRl bnRpZmllciBvZiB0aGUgZGF0YWJhc2UgdG8gZGlzY29ubmVjdCBmcm9tCisgICAgOnJhaXNlcyBB c3NlcnRpb25FcnJvciBpZiBhbiBlcnJvciBpcyByZXR1cm5lZCBieSB0aGUgc2VydmVyCisgICAg IiIiCisgICAgZGJfY29uID0gaHR0cF9jbGllbnQuZGVsZXRlKAogICAgICAgICAnezB9ezF9L3sy fS97M30nLmZvcm1hdCgKICAgICAgICAgICAgICdicm93c2VyL2RhdGFiYXNlL2Nvbm5lY3QvJywK ICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3BnYWdlbnQvdGVzdHMvX19pbml0X18ucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9wZ2FnZW50L3Rlc3Rz L19faW5pdF9fLnB5CmluZGV4IDYxZjRkMTlhLi41OTAwMjZhZCAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcGdhZ2VudC90ZXN0cy9fX2luaXRf Xy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9wZ2Fn ZW50L3Rlc3RzL19faW5pdF9fLnB5CkBAIC02LDEwICs2LDMgQEAKICMgVGhpcyBzb2Z0d2FyZSBp cyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCiAjCiAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwotCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y Ci0KLQotY2xhc3MgUGdBZ2VudENyZWF0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAg ICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgcmV0dXJuCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9wZ2FnZW50L3Rlc3RzL3Rlc3RfcGdh Z2VudF9hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9w Z2FnZW50L3Rlc3RzL3Rlc3RfcGdhZ2VudF9hZGQucHkKaW5kZXggN2ViNDk5ZjcuLjk4ZDM1ZjU0 IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9w Z2FnZW50L3Rlc3RzL3Rlc3RfcGdhZ2VudF9hZGQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcGdhZ2VudC90ZXN0cy90ZXN0X3BnYWdlbnRfYWRkLnB5 CkBAIC02LDMzICs2LDQ0IEBACiAjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhl IFBvc3RncmVTUUwgTGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQoraW1wb3J0IHB5dGVz dAogaW1wb3J0IHNpbXBsZWpzb24gYXMganNvbgogaW1wb3J0IHV1aWQKLWZyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKKworZnJvbSBncmFwcGEgaW1wb3J0 IHNob3VsZAorCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3Rf dXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgcGdhZ2VudF91dGlscwogCiAK LWNsYXNzIFBnQWdlbnRBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhp cyBjbGFzcyB3aWxsIHRlc3QgdGhlIGFkZCBwZ0FnZW50IGpvYiBBUEkiIiIKLSAgICBzY2VuYXJp b3MgPSBbCi0gICAgICAgICgnQWRkIHBnQWdlbnQgam9iJywgZGljdCh1cmw9Jy9icm93c2VyL3Bn YV9qb2Ivb2JqLycpKQotICAgIF0KK2NsYXNzIFRlc3RQZ0FnZW50QWRkOgorICAgIGRlZiB0ZXN0 X3BnX2FnZW50X2FkZChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAg IiIiCisgICAgICAgIFdoZW4gdGhlIFBHIEFnZW50IGFkZCByZXF1ZXN0IGlzIHNlbnQgdG8gdGhl IGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgogCi0g ICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBmbGFnLCBtc2cgPSBwZ2FnZW50X3V0aWxzLmlz X3ZhbGlkX3NlcnZlcl90b19ydW5fcGdhZ2VudChzZWxmKQorICAgICAgICByZXF1ZXN0LmFkZGZp bmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9v Zl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2Zf dGVzdHNbJ3NlcnZlciddCisKKyAgICAgICAgZmxhZywgbWVzc2FnZSA9IHBnYWdlbnRfdXRpbHMu aXNfdmFsaWRfc2VydmVyX3RvX3J1bl9wZ2FnZW50KHNlbGYpCiAgICAgICAgIGlmIG5vdCBmbGFn OgotICAgICAgICAgICAgc2VsZi5za2lwVGVzdChtc2cpCi0gICAgICAgIGZsYWcsIG1zZyA9IHBn YWdlbnRfdXRpbHMuaXNfcGdhZ2VudF9pbnN0YWxsZWRfb25fc2VydmVyKHNlbGYpCisgICAgICAg ICAgICBweXRlc3Quc2tpcChtZXNzYWdlKQorCisgICAgICAgIGZsYWcsIG1lc3NhZ2UgPSBwZ2Fn ZW50X3V0aWxzLmlzX3BnYWdlbnRfaW5zdGFsbGVkX29uX3NlcnZlcihzZWxmKQogICAgICAgICBp ZiBub3QgZmxhZzoKLSAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QobXNnKQorICAgICAgICAgICAg cHl0ZXN0LnNraXAobWVzc2FnZSkKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvcGdhX2pvYi9v YmovJworCisgICAgICAgIHNlcnZlcl9pZCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZv cm1hdGlvbiddWydzZXJ2ZXJfaWQnXQorICAgICAgICBodHRwX2NsaWVudCA9IGNvbnRleHRfb2Zf dGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgcGdhZ2VudF9qb2IgPSAidGVzdF9qb2JfYWRk JXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0g ICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBhZGRzIHBnQWdlbnQgam9iIiIiCi0gICAgICAg IHNlbGYucGdhZ2VudF9qb2IgPSAidGVzdF9qb2JfYWRkJXMiICUgc3RyKHV1aWQudXVpZDQoKSlb MTo4XQogICAgICAgICBkYXRhID0gewotICAgICAgICAgICAgJ2pvYm5hbWUnOiBzZWxmLnBnYWdl bnRfam9iLAorICAgICAgICAgICAgJ2pvYm5hbWUnOiBwZ2FnZW50X2pvYiwKICAgICAgICAgICAg ICdqb2JlbmFibGVkJzogVHJ1ZSwKICAgICAgICAgICAgICdqb2Job3N0YWdlbnQnOiAnJywKICAg ICAgICAgICAgICdqb2JqY2xpZCc6IDEsCkBAIC02OCwyMiArNzksMjIgQEAgY2xhc3MgUGdBZ2Vu dEFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgIH1dLAogICAgICAg ICB9CiAKLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAorICAgICAgICByZXNw b25zZSA9IGh0dHBfY2xpZW50LnBvc3QoCiAgICAgICAgICAgICAnezB9ezF9L3syfS8nLmZvcm1h dCgKLSAgICAgICAgICAgICAgICBzZWxmLnVybCwgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCksIHN0 cihzZWxmLnNlcnZlcl9pZCkKKyAgICAgICAgICAgICAgICB1cmwsIHV0aWxzLlNFUlZFUl9HUk9V UCwgc2VydmVyX2lkCiAgICAgICAgICAgICApLAogICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBz KGRhdGEpLAogICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nCiAgICAgICAgICkK LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKwor ICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCiAK ICAgICAgICAgcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YSkKKwogICAg ICAgICBzZWxmLmpvYl9pZCA9IHJlc3BvbnNlX2RhdGFbJ25vZGUnXVsnX2lkJ10KLSAgICAgICAg aXNfcHJlc2VudCA9IHBnYWdlbnRfdXRpbHMudmVyaWZ5X3BnYWdlbnRfam9iKHNlbGYpCi0gICAg ICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKLSAgICAgICAgICAgIGlzX3ByZXNlbnQsICJwZ0FnZW50IGpv YiB3YXMgbm90IGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5IgotICAgICAgICApCisgICAgICAgIHBnYWdl bnRfdXRpbHMudmVyaWZ5X3BnYWdlbnRfam9iKHNlbGYpIHwgXAorICAgICAgICAgICAgc2hvdWxk LmJlLmVxdWFsLnRvKFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnPSdw Z0FnZW50IGpvYiB3YXMgbm90IGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5JykKIAogICAgIGRlZiB0ZWFy RG93bihzZWxmKToKLSAgICAgICAgIiIiQ2xlYW4gdXAgY29kZSIiIgogICAgICAgICBwZ2FnZW50 X3V0aWxzLmRlbGV0ZV9wZ2FnZW50X2pvYihzZWxmKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcGdhZ2VudC90ZXN0cy90ZXN0X3BnYWdlbnRf ZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcGdh Z2VudC90ZXN0cy90ZXN0X3BnYWdlbnRfZGVsZXRlLnB5CmluZGV4IGY5YmNiMDg3Li45NGQyZTJi ZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv cGdhZ2VudC90ZXN0cy90ZXN0X3BnYWdlbnRfZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3BnYWdlbnQvdGVzdHMvdGVzdF9wZ2FnZW50X2Rl bGV0ZS5weQpAQCAtOCw0MiArOCw1MSBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAogaW1wb3J0IHV1 aWQKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKKwor aW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHJlZ3Jlc3Np b24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBp bXBvcnQgdXRpbHMgYXMgcGdhZ2VudF91dGlscwogCiAKLWNsYXNzIFBnQWdlbnREZWxldGVUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3aWxsIHRlc3QgdGhl IGRlbGV0ZSBwZ0FnZW50IGpvYiBBUEkiIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgn RGVsZXRlIHBnQWdlbnQgam9iJywgZGljdCh1cmw9Jy9icm93c2VyL3BnYV9qb2Ivb2JqLycpKQot ICAgIF0KK2NsYXNzIFRlc3RQZ0FnZW50RGVsZXRlOgorICAgIGRlZiB0ZXN0X3BnX2FnZW50X2Rl bGV0ZShzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAg ICAgIFdoZW4gdGhlIFBHIEFnZW50IGRlbGV0ZSByZXF1ZXN0IGlzIHNlbnQgdG8gdGhlIGJhY2tl bmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorCisgICAgICAg IHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCiAKLSAgICBkZWYgc2V0VXAoc2Vs Zik6Ci0gICAgICAgIGZsYWcsIG1zZyA9IHBnYWdlbnRfdXRpbHMuaXNfdmFsaWRfc2VydmVyX3Rv X3J1bl9wZ2FnZW50KHNlbGYpCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0 c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNb J3NlcnZlciddCisKKyAgICAgICAgZmxhZywgbWVzc2FnZSA9IHBnYWdlbnRfdXRpbHMuaXNfdmFs aWRfc2VydmVyX3RvX3J1bl9wZ2FnZW50KHNlbGYpCiAgICAgICAgIGlmIG5vdCBmbGFnOgotICAg ICAgICAgICAgc2VsZi5za2lwVGVzdChtc2cpCi0gICAgICAgIGZsYWcsIG1zZyA9IHBnYWdlbnRf dXRpbHMuaXNfcGdhZ2VudF9pbnN0YWxsZWRfb25fc2VydmVyKHNlbGYpCisgICAgICAgICAgICBw eXRlc3Quc2tpcChtZXNzYWdlKQorCisgICAgICAgIGZsYWcsIG1lc3NhZ2UgPSBwZ2FnZW50X3V0 aWxzLmlzX3BnYWdlbnRfaW5zdGFsbGVkX29uX3NlcnZlcihzZWxmKQogICAgICAgICBpZiBub3Qg ZmxhZzoKLSAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QobXNnKQorICAgICAgICAgICAgcHl0ZXN0 LnNraXAobWVzc2FnZSkKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvcGdhX2pvYi9vYmovJwor CiAgICAgICAgIG5hbWUgPSAidGVzdF9qb2JfZGVsZXRlJXMiICUgc3RyKHV1aWQudXVpZDQoKSlb MTo4XQogICAgICAgICBzZWxmLmpvYl9pZCA9IHBnYWdlbnRfdXRpbHMuY3JlYXRlX3BnYWdlbnRf am9iKHNlbGYsIG5hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhp cyBmdW5jdGlvbiB3aWxsIGRlbGV0ZXMgcGdBZ2VudCBqb2IiIiIKICAgICAgICAgcmVzcG9uc2Ug PSBzZWxmLnRlc3Rlci5kZWxldGUoCiAgICAgICAgICAgICAnezB9ezF9L3syfS97M30nLmZvcm1h dCgKLSAgICAgICAgICAgICAgICBzZWxmLnVybCwgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCksIHN0 cihzZWxmLnNlcnZlcl9pZCksCisgICAgICAgICAgICAgICAgdXJsLCBzdHIodXRpbHMuU0VSVkVS X0dST1VQKSwgc3RyKHNlbGYuc2VydmVyX2lkKSwKICAgICAgICAgICAgICAgICBzdHIoc2VsZi5q b2JfaWQpCiAgICAgICAgICAgICApLAogICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pz b24nCiAgICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVz X2NvZGUsIDIwMCkKLSAgICAgICAgaXNfcHJlc2VudCA9IHBnYWdlbnRfdXRpbHMudmVyaWZ5X3Bn YWdlbnRfam9iKHNlbGYpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoCi0gICAgICAgICAgICBp c19wcmVzZW50LCAicGdBZ2VudCBqb2Igd2FzIG5vdCBkZWxldGVkIHN1Y2Nlc3NmdWxseSIKLSAg ICAgICAgKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFs LnRvKDIwMCkKKyAgICAgICAgcGdhZ2VudF91dGlscy52ZXJpZnlfcGdhZ2VudF9qb2Ioc2VsZikg fCBcCisgICAgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8oRmFsc2UsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbXNnPSdwZ0FnZW50IGpvYiB3YXMgbm90IGRlbGV0ZWQgc3VjY2Vz c2Z1bGx5JykKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiQ2xlYW4gdXAg Y29kZSIiIgogICAgICAgICBwZ2FnZW50X3V0aWxzLmRlbGV0ZV9wZ2FnZW50X2pvYihzZWxmKQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcGdh Z2VudC90ZXN0cy90ZXN0X3BnYWdlbnRfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvcGdhZ2VudC90ZXN0cy90ZXN0X3BnYWdlbnRfcHV0LnB5CmluZGV4 IDA4ZmZjNmI5Li40ZTQxYTdjNyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvcGdhZ2VudC90ZXN0cy90ZXN0X3BnYWdlbnRfcHV0LnB5CisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3BnYWdlbnQvdGVzdHMv dGVzdF9wZ2FnZW50X3B1dC5weQpAQCAtNiw0NiArNiw1NiBAQAogIyBUaGlzIHNvZnR3YXJlIGlz IHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCitpbXBvcnQgcHl0ZXN0CiBpbXBvcnQgc2ltcGxlanNvbiBhcyBqc29uCiBpbXBvcnQgdXVp ZAotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorCitm cm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91 dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBw Z2FnZW50X3V0aWxzCiAKIAotY2xhc3MgUGdBZ2VudFB1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJh dG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgdGVzdCB0aGUgcHV0IHBnQWdlbnQgam9iIEFQ SSIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdQdXQgcGdBZ2VudCBqb2InLCBkaWN0 KHVybD0nL2Jyb3dzZXIvcGdhX2pvYi9vYmovJykpCi0gICAgXQorY2xhc3MgVGVzdFBnQWdlbnRQ dXQ6CisgICAgZGVmIHRlc3RfcGdfYWdlbnRfcHV0KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2Zf dGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgUEcgQWdlbnQgcHV0IHJlcXVl c3QgaXMgc2VudCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMK KyAgICAgICAgIiIiCisKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93 bikKKworICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50 J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQogCi0g ICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBmbGFnLCBtc2cgPSBwZ2FnZW50X3V0aWxzLmlz X3ZhbGlkX3NlcnZlcl90b19ydW5fcGdhZ2VudChzZWxmKQorICAgICAgICBmbGFnLCBtZXNzYWdl ID0gcGdhZ2VudF91dGlscy5pc192YWxpZF9zZXJ2ZXJfdG9fcnVuX3BnYWdlbnQoc2VsZikKICAg ICAgICAgaWYgbm90IGZsYWc6Ci0gICAgICAgICAgICBzZWxmLnNraXBUZXN0KG1zZykKLSAgICAg ICAgZmxhZywgbXNnID0gcGdhZ2VudF91dGlscy5pc19wZ2FnZW50X2luc3RhbGxlZF9vbl9zZXJ2 ZXIoc2VsZikKKyAgICAgICAgICAgIHB5dGVzdC5za2lwKG1lc3NhZ2UpCisKKyAgICAgICAgZmxh ZywgbWVzc2FnZSA9IHBnYWdlbnRfdXRpbHMuaXNfcGdhZ2VudF9pbnN0YWxsZWRfb25fc2VydmVy KHNlbGYpCiAgICAgICAgIGlmIG5vdCBmbGFnOgotICAgICAgICAgICAgc2VsZi5za2lwVGVzdCht c2cpCisgICAgICAgICAgICBweXRlc3Quc2tpcChtZXNzYWdlKQorCisgICAgICAgIHVybCA9ICcv YnJvd3Nlci9wZ2Ffam9iL29iai8nCisKICAgICAgICAgbmFtZSA9ICJ0ZXN0X2pvYl9wdXQlcyIg JSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCiAgICAgICAgIHNlbGYuam9iX2lkID0gcGdhZ2VudF91 dGlscy5jcmVhdGVfcGdhZ2VudF9qb2Ioc2VsZiwgbmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNl bGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgcHV0IHBnQWdlbnQgam9iIiIiCiAg ICAgICAgIGRhdGEgPSB7CiAgICAgICAgICAgICAiam9iZGVzYyI6ICJUaGlzIGlzIGEgdGVzdCBj b21tZW50IiwKICAgICAgICAgfQogCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0 KAogICAgICAgICAgICAgJ3swfXsxfS97Mn0vezN9Jy5mb3JtYXQoCi0gICAgICAgICAgICAgICAg c2VsZi51cmwsIHN0cih1dGlscy5TRVJWRVJfR1JPVVApLCBzdHIoc2VsZi5zZXJ2ZXJfaWQpLAor ICAgICAgICAgICAgICAgIHVybCwgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCksIHN0cihzZWxmLnNl cnZlcl9pZCksCiAgICAgICAgICAgICAgICAgc3RyKHNlbGYuam9iX2lkKQogICAgICAgICAgICAg KSwKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAgIGZvbGxv d19yZWRpcmVjdHM9VHJ1ZSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJwog ICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2Rl LCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwu dG8oMjAwKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJDbGVhbiB1cCBj b2RlIiIiCiAgICAgICAgIHBnYWdlbnRfdXRpbHMuZGVsZXRlX3BnYWdlbnRfam9iKHNlbGYpCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9wZ2Fn ZW50L3Rlc3RzL3Rlc3RzX3BnYWdlbnRfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvcGdhZ2VudC90ZXN0cy90ZXN0c19wZ2FnZW50X2dldC5weQppbmRl eCAxYzJlNTExNS4uMDJiZDVkOWQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL3BnYWdlbnQvdGVzdHMvdGVzdHNfcGdhZ2VudF9nZXQucHkKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcGdhZ2VudC90ZXN0 cy90ZXN0c19wZ2FnZW50X2dldC5weQpAQCAtOCwzOCArOCw0OSBAQAogIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKIAogaW1wb3J0IHV1aWQKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRl c3RHZW5lcmF0b3IKKworaW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAor Citmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91 dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBwZ2FnZW50X3V0aWxzCiAKIAot Y2xhc3MgUGdBZ2VudEdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiJUaGlz IGNsYXNzIHdpbGwgdGVzdCB0aGUgZ2V0IHBnQWdlbnQgam9iIEFQSSIiIgotICAgIHNjZW5hcmlv cyA9IFsKLSAgICAgICAgKCdHZXQgcGdBZ2VudCBqb2InLCBkaWN0KHVybD0nL2Jyb3dzZXIvcGdh X2pvYi9vYmovJykpCi0gICAgXQorY2xhc3MgVGVzdFBnQWdlbnRHZXQ6CisgICAgZGVmIHRlc3Rf cGdfYWdlbnRfZ2V0KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAi IiIKKyAgICAgICAgV2hlbiB0aGUgUEcgQWdlbnQgZ2V0IHJlcXVlc3QgaXMgc2VudCB0byB0aGUg YmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisKKyAg ICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICBzZWxm LnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5z ZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQogCi0gICAgZGVmIHNldFVwKHNlbGYp OgotICAgICAgICBmbGFnLCBtc2cgPSBwZ2FnZW50X3V0aWxzLmlzX3ZhbGlkX3NlcnZlcl90b19y dW5fcGdhZ2VudChzZWxmKQorICAgICAgICBmbGFnLCBtZXNzYWdlID0gcGdhZ2VudF91dGlscy5p c192YWxpZF9zZXJ2ZXJfdG9fcnVuX3BnYWdlbnQoc2VsZikKICAgICAgICAgaWYgbm90IGZsYWc6 Ci0gICAgICAgICAgICBzZWxmLnNraXBUZXN0KG1zZykKLSAgICAgICAgZmxhZywgbXNnID0gcGdh Z2VudF91dGlscy5pc19wZ2FnZW50X2luc3RhbGxlZF9vbl9zZXJ2ZXIoc2VsZikKKyAgICAgICAg ICAgIHB5dGVzdC5za2lwKG1lc3NhZ2UpCisKKyAgICAgICAgZmxhZywgbWVzc2FnZSA9IHBnYWdl bnRfdXRpbHMuaXNfcGdhZ2VudF9pbnN0YWxsZWRfb25fc2VydmVyKHNlbGYpCiAgICAgICAgIGlm IG5vdCBmbGFnOgotICAgICAgICAgICAgc2VsZi5za2lwVGVzdChtc2cpCisgICAgICAgICAgICBw eXRlc3Quc2tpcChtZXNzYWdlKQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9wZ2Ffam9iL29i ai8nCisKICAgICAgICAgbmFtZSA9ICJ0ZXN0X2pvYl9nZXQlcyIgJSBzdHIodXVpZC51dWlkNCgp KVsxOjhdCiAgICAgICAgIHNlbGYuam9iX2lkID0gcGdhZ2VudF91dGlscy5jcmVhdGVfcGdhZ2Vu dF9qb2Ioc2VsZiwgbmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJU aGlzIGZ1bmN0aW9uIHdpbGwgZ2V0IHBnQWdlbnQgam9iIiIiCiAgICAgICAgIHJlc3BvbnNlID0g c2VsZi50ZXN0ZXIuZ2V0KAogICAgICAgICAgICAgJ3swfXsxfS97Mn0vezN9Jy5mb3JtYXQoCi0g ICAgICAgICAgICAgICAgc2VsZi51cmwsIHN0cih1dGlscy5TRVJWRVJfR1JPVVApLCBzdHIoc2Vs Zi5zZXJ2ZXJfaWQpLAorICAgICAgICAgICAgICAgIHVybCwgc3RyKHV0aWxzLlNFUlZFUl9HUk9V UCksIHN0cihzZWxmLnNlcnZlcl9pZCksCiAgICAgICAgICAgICAgICAgc3RyKHNlbGYuam9iX2lk KQogICAgICAgICAgICAgKSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJwog ICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2Rl LCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwu dG8oMjAwKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJDbGVhbiB1cCBj b2RlIiIiCiAgICAgICAgIHBnYWdlbnRfdXRpbHMuZGVsZXRlX3BnYWdlbnRfam9iKHNlbGYpCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9wZ2Fn ZW50L3Rlc3RzL3Rlc3RzX3BnYWdlbnRfc3RhdHMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9wZ2FnZW50L3Rlc3RzL3Rlc3RzX3BnYWdlbnRfc3RhdHMucHkK aW5kZXggM2JjM2QwZjYuLjA2N2I0M2UzIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9wZ2FnZW50L3Rlc3RzL3Rlc3RzX3BnYWdlbnRfc3RhdHMu cHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcGdhZ2Vu dC90ZXN0cy90ZXN0c19wZ2FnZW50X3N0YXRzLnB5CkBAIC04LDM4ICs4LDQ5IEBACiAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIwogCiBpbXBvcnQgdXVpZAotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgorCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQg c2hvdWxkCisKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBC YXNlVGVzdEdlbmVyYXRvcgogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9y dCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHBnYWdlbnRfdXRp bHMKIAogCi1jbGFzcyBQZ0FnZW50U3RhdHNUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0g ICAgIiIiVGhpcyBjbGFzcyB3aWxsIHRlc3QgdGhlIHN0YXRzIHBnQWdlbnQgam9iIEFQSSIiIgot ICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdDaGVjayB0aGUgc3RhdHMgb2YgcGdBZ2VudCBq b2InLCBkaWN0KHVybD0nL2Jyb3dzZXIvcGdhX2pvYi9zdGF0cy8nKSkKLSAgICBdCitjbGFzcyBU ZXN0UGdBZ2VudFN0YXRzOgorICAgIGRlZiB0ZXN0X3BnX2FnZW50X3N0YXRzKHNlbGYsIHJlcXVl c3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBjaGVja2lu ZyB0aGUgc3RhdHMgb2YgcGdBZ2VudCBqb2IKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVz CisgICAgICAgICIiIgorCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRv d24pCisKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVu dCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KIAot ICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgZmxhZywgbXNnID0gcGdhZ2VudF91dGlscy5p c192YWxpZF9zZXJ2ZXJfdG9fcnVuX3BnYWdlbnQoc2VsZikKKyAgICAgICAgZmxhZywgbWVzc2Fn ZSA9IHBnYWdlbnRfdXRpbHMuaXNfdmFsaWRfc2VydmVyX3RvX3J1bl9wZ2FnZW50KHNlbGYpCiAg ICAgICAgIGlmIG5vdCBmbGFnOgotICAgICAgICAgICAgc2VsZi5za2lwVGVzdChtc2cpCi0gICAg ICAgIGZsYWcsIG1zZyA9IHBnYWdlbnRfdXRpbHMuaXNfcGdhZ2VudF9pbnN0YWxsZWRfb25fc2Vy dmVyKHNlbGYpCisgICAgICAgICAgICBweXRlc3Quc2tpcChtZXNzYWdlKQorCisgICAgICAgIGZs YWcsIG1lc3NhZ2UgPSBwZ2FnZW50X3V0aWxzLmlzX3BnYWdlbnRfaW5zdGFsbGVkX29uX3NlcnZl cihzZWxmKQogICAgICAgICBpZiBub3QgZmxhZzoKLSAgICAgICAgICAgIHNlbGYuc2tpcFRlc3Qo bXNnKQorICAgICAgICAgICAgcHl0ZXN0LnNraXAobWVzc2FnZSkKKworICAgICAgICB1cmwgPSAn L2Jyb3dzZXIvcGdhX2pvYi9vYmovJworCiAgICAgICAgIG5hbWUgPSAidGVzdF9qb2JfZ2V0JXMi ICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQogICAgICAgICBzZWxmLmpvYl9pZCA9IHBnYWdlbnRf dXRpbHMuY3JlYXRlX3BnYWdlbnRfam9iKHNlbGYsIG5hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChz ZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGNoZWNrIHN0YXRzIG9mIHBnQWdl bnQgam9iIiIiCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAogICAgICAgICAg ICAgJ3swfXsxfS97Mn0vezN9Jy5mb3JtYXQoCi0gICAgICAgICAgICAgICAgc2VsZi51cmwsIHN0 cih1dGlscy5TRVJWRVJfR1JPVVApLCBzdHIoc2VsZi5zZXJ2ZXJfaWQpLAorICAgICAgICAgICAg ICAgIHVybCwgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCksIHN0cihzZWxmLnNlcnZlcl9pZCksCiAg ICAgICAgICAgICAgICAgc3RyKHNlbGYuam9iX2lkKQogICAgICAgICAgICAgKSwKICAgICAgICAg ICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJwogICAgICAgICApCi0gICAgICAgIHNlbGYuYXNz ZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uu c3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQogCiAgICAgZGVmIHRlYXJEb3du KHNlbGYpOgotICAgICAgICAiIiJDbGVhbiB1cCBjb2RlIiIiCiAgICAgICAgIHBnYWdlbnRfdXRp bHMuZGVsZXRlX3BnYWdlbnRfam9iKHNlbGYpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yZXNvdXJjZV9ncm91cHMvdGVzdHMvX19pbml0X18u cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yZXNvdXJjZV9n cm91cHMvdGVzdHMvX19pbml0X18ucHkKaW5kZXggOTk2OGZjYWUuLjU5MDAyNmFkIDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yZXNvdXJjZV9n cm91cHMvdGVzdHMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvcmVzb3VyY2VfZ3JvdXBzL3Rlc3RzL19faW5pdF9fLnB5CkBAIC02LDEw ICs2LDMgQEAKICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNR TCBMaWNlbmNlCiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1mcm9tIHBnYWRtaW4udXRpbHMucm91 dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi0KLQotY2xhc3MgUmVzb3VyY2VHcm91cHNDcmVh dGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0g ICAgICAgIHJldHVybgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvcmVzb3VyY2VfZ3JvdXBzL3Rlc3RzL3Rlc3RfcmVzb3VyY2VfZ3JvdXBzX2Fk ZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Jlc291cmNl X2dyb3Vwcy90ZXN0cy90ZXN0X3Jlc291cmNlX2dyb3Vwc19hZGQucHkKaW5kZXggYzE3OTNiYzYu Ljc2NmM0ZTM5IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9yZXNvdXJjZV9ncm91cHMvdGVzdHMvdGVzdF9yZXNvdXJjZV9ncm91cHNfYWRkLnB5 CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Jlc291cmNl X2dyb3Vwcy90ZXN0cy90ZXN0X3Jlc291cmNlX2dyb3Vwc19hZGQucHkKQEAgLTEwLDUwICsxMCw0 OCBAQAogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKLWZyb20gcGdhZG1pbi51dGlscyBpbXBv cnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRl IGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRf bm9kZV9kaWN0CitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKK2Zy b20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVy YXRvciwgXAorICAgIFBvc3RncmVzVmVyc2lvbgogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0 X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFz IHJlc291cmNlX2dyb3Vwc191dGlscwogCiAKLWNsYXNzIFJlc291cmNlR3JvdXBzQWRkVGVzdENh c2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCB0ZXN0IHRoZSBh ZGQgcmVzb3VyY2UgZ3JvdXBzIEFQSSIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdB ZGQgcmVzb3VyY2UgZ3JvdXBzJywgZGljdCh1cmw9Jy9icm93c2VyL3Jlc291cmNlX2dyb3VwL29i ai8nKSkKLSAgICBdCitAcHl0ZXN0Lm1hcmsuc2tpcF9kYXRhYmFzZXMoWydwZyddKQorQHB5dGVz dC5tYXJrLnNraXBfaWZfcG9zdGdyZXNfdmVyc2lvbih7J2JlbG93X3ZlcnNpb24nOiBQb3N0Z3Jl c1ZlcnNpb24udjk0fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1Jl c291cmNlIGdyb3VwcyBhcmUgbm90IHN1cHBvcnRlZCAnCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdieSBQRzkuMyAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdhbmQgUFBBUzkuMyBhbmQgYmVsb3cuJykKK2NsYXNzIFRlc3RSZXNvdXJjZUdy b3Vwc0FkZChCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgZGVmIHRlc3RfYWRkX25ld19yZXNvdXJj ZV9ncm91cChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisg ICAgICAgIFdoZW4gcmVxdWVzdCB0byBhZGQgYSByZXNvdXJjZSBncm91cCBpcyB2YWxpZAorICAg ICAgICBJdCByZXR1cm5zIHN1Y2Nlc3MKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRk ZmluYWxpemVyKHNlbGYudGVhckRvd24pCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAg IHNlbGYuc2VydmVyX2lkID0gcGFyZW50X25vZGVfZGljdFsic2VydmVyIl1bLTFdWyJzZXJ2ZXJf aWQiXQotICAgICAgICBzZXJ2ZXJfY29uID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNl bGYsIHNlbGYuc2VydmVyX2lkKQotICAgICAgICBpZiBub3Qgc2VydmVyX2NvblsiaW5mbyJdID09 ICJTZXJ2ZXIgY29ubmVjdGVkLiI6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxk IG5vdCBjb25uZWN0IHRvIHNlcnZlciB0byBhZGQgcmVzb3VyY2UgIgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJncm91cHMuIikKLSAgICAgICAgaWYgInR5cGUiIGluIHNlcnZlcl9jb25b ImRhdGEiXToKLSAgICAgICAgICAgIGlmIHNlcnZlcl9jb25bImRhdGEiXVsidHlwZSJdID09ICJw ZyI6Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJSZXNvdXJjZSBncm91cHMgYXJlIG5vdCBz dXBwb3J0ZWQgYnkgUEcuIgotICAgICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QobWVzc2FnZSkK LSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgaWYgc2VydmVyX2NvblsiZGF0YSJd WyJ2ZXJzaW9uIl0gPCA5MDQwMDoKLSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJSZXNv dXJjZSBncm91cHMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgUFBBUyA5LjMiIFwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICIgYW5kIGJlbG93LiIKLSAgICAgICAgICAgICAgICAgICAgc2Vs Zi5za2lwVGVzdChtZXNzYWdlKQorICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvcmVzb3VyY2VfZ3Jv dXAvb2JqLycKKyAgICAgICAgc2VydmVyX2luZm8gPSBjb250ZXh0X29mX3Rlc3RzWyJzZXJ2ZXJf aW5mb3JtYXRpb24iXQorICAgICAgICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJfaW5mb1sic2VydmVyX2lk Il0KIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdp bGwgYWRkIHJlc291cmNlIGdyb3VwcyB1bmRlciBzZXJ2ZXIgbm9kZSIiIgorICAgICAgICBodHRw X2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5z ZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQogICAgICAgICBzZWxmLnJlc291cmNl X2dyb3VwID0gInRlc3RfcmVzb3VyY2VfZ3JvdXBfYWRkJXMiICUgXAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQogICAgICAgICBkYXRhID0geyJu YW1lIjogc2VsZi5yZXNvdXJjZV9ncm91cCwKICAgICAgICAgICAgICAgICAiY3B1X3JhdGVfbGlt aXQiOiAwLAogICAgICAgICAgICAgICAgICJkaXJ0eV9yYXRlX2xpbWl0IjogMH0KLSAgICAgICAg cmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9H Uk9VUCkgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi8iICsgc3RyKHNl bGYuc2VydmVyX2lkKSArICIvIiwKKworICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LnBv c3QodXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIi8iICsgc3RyKHNlcnZlcl9pZCkgKyAiLyIsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCi0gICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICAg ICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwoMjAwKQogCiAgICAgZGVm IHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgcmVz b3VyY2UgZ3JvdXAgZnJvbSB0aGUgZGF0YWJhc2UuIiIiCiAgICAgICAgIGNvbm5lY3Rpb24gPSB1 dGlscy5nZXRfZGJfY29ubmVjdGlvbihzZWxmLnNlcnZlclsnZGInXSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJb J2RiX3Bhc3N3b3JkJ10sCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9yZXNvdXJjZV9ncm91cHMvdGVzdHMvdGVzdF9yZXNvdXJjZV9ncm91cHNf ZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcmVz b3VyY2VfZ3JvdXBzL3Rlc3RzL3Rlc3RfcmVzb3VyY2VfZ3JvdXBzX2RlbGV0ZS5weQppbmRleCBi ZTdlZWRjZi4uNzhhMjk4ZjEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL3Jlc291cmNlX2dyb3Vwcy90ZXN0cy90ZXN0X3Jlc291cmNlX2dyb3Vw c19kZWxldGUucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvcmVzb3VyY2VfZ3JvdXBzL3Rlc3RzL3Rlc3RfcmVzb3VyY2VfZ3JvdXBzX2RlbGV0ZS5weQpA QCAtOSw1MyArOSw1MyBAQAogCiBpbXBvcnQgdXVpZAogCi1mcm9tIHBnYWRtaW4udXRpbHMgaW1w b3J0IHNlcnZlcl91dGlscyBhcyBzZXJ2ZXJfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0 ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50 X25vZGVfZGljdAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCitm cm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5l cmF0b3IsIFwKKyAgICBQb3N0Z3Jlc1ZlcnNpb24KIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVz dF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBh cyByZXNvdXJjZV9ncm91cHNfdXRpbHMKIAogCi1jbGFzcyBSZXNvdXJjZUdyb3Vwc0RlbGV0ZVRl c3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgZGVsZXRl IHRoZSByZXNvdXJjZSBncm91cHMiIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnRGVs ZXRlIHJlc291cmNlIGdyb3VwcycsIGRpY3QodXJsPScvYnJvd3Nlci9yZXNvdXJjZV9ncm91cC9v YmovJykpCi0gICAgXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsncGcnXSkKK0BweXRl c3QubWFyay5za2lwX2lmX3Bvc3RncmVzX3ZlcnNpb24oeydiZWxvd192ZXJzaW9uJzogUG9zdGdy ZXNWZXJzaW9uLnY5NH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdS ZXNvdXJjZSBncm91cHMgYXJlIG5vdCBzdXBwb3J0ZWQgJworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnYnkgUEc5LjMgJworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnYW5kIFBQQVM5LjMgYW5kIGJlbG93LicpCitjbGFzcyBUZXN0UmVzb3VyY2VH cm91cHNEZWxldGUoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgIGRlZiB0ZXN0X2RlbGV0ZV9yZXNv dXJjZV9ncm91cChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIi CisgICAgICAgIFdoZW4gcmVxdWVzdCB0byBkZWxldGUgYSByZXNvdXJjZSBncm91cCBpcyB2YWxp ZAorICAgICAgICBJdCByZXR1cm5zIHN1Y2Nlc3MKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVl c3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBj b250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZXJ2ZXJfaWQgPSBjb250ZXh0X29m X3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXVsnc2VydmVyX2lkJ10KKyAgICAgICAgdXJsID0g Jy9icm93c2VyL3Jlc291cmNlX2dyb3VwL29iai8nCisgICAgICAgIGh0dHBfY2xpZW50ID0gY29u dGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAg ICAgICBzZWxmLnNlcnZlcl9pZCA9IHBhcmVudF9ub2RlX2RpY3RbInNlcnZlciJdWy0xXVsic2Vy dmVyX2lkIl0KLSAgICAgICAgc2VydmVyX3Jlc3BvbnNlID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rf c2VydmVyKHNlbGYsIHNlbGYuc2VydmVyX2lkKQotICAgICAgICBpZiBub3Qgc2VydmVyX3Jlc3Bv bnNlWyJpbmZvIl0gPT0gIlNlcnZlciBjb25uZWN0ZWQuIjoKLSAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gc2VydmVyIHRvIGFkZCByZXNvdXJjZSAiCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgImdyb3Vwcy4iKQotICAgICAgICBpZiAidHlwZSIg aW4gc2VydmVyX3Jlc3BvbnNlWyJkYXRhIl06Ci0gICAgICAgICAgICBpZiBzZXJ2ZXJfcmVzcG9u c2VbImRhdGEiXVsidHlwZSJdID09ICJwZyI6Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJS ZXNvdXJjZSBncm91cHMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgUEcuIgotICAgICAgICAgICAgICAg IHNlbGYuc2tpcFRlc3QobWVzc2FnZSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg ICAgaWYgc2VydmVyX3Jlc3BvbnNlWyJkYXRhIl1bInZlcnNpb24iXSA8IDkwNDAwOgotICAgICAg ICAgICAgICAgICAgICBtZXNzYWdlID0gIlJlc291cmNlIGdyb3VwcyBhcmUgbm90IHN1cHBvcnRl ZCBieSBQUEFTICIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjkuMyBhbmQgYmVs b3cuIgotICAgICAgICAgICAgICAgICAgICBzZWxmLnNraXBUZXN0KG1lc3NhZ2UpCiAgICAgICAg IHNlbGYucmVzb3VyY2VfZ3JvdXAgPSAidGVzdF9yZXNvdXJjZV9ncm91cF9kZWxldGUlcyIgJSBc CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIodXVpZC51dWlkNCgpKVsxOjhdCi0g ICAgICAgIHNlbGYucmVzb3VyY2VfZ3JvdXBfaWQgPSByZXNvdXJjZV9ncm91cHNfdXRpbHMuY3Jl YXRlX3Jlc291cmNlX2dyb3VwcygKKyAgICAgICAgcmVzb3VyY2VfZ3JvdXBfaWQgPSByZXNvdXJj ZV9ncm91cHNfdXRpbHMuY3JlYXRlX3Jlc291cmNlX2dyb3VwcygKICAgICAgICAgICAgIHNlbGYu c2VydmVyLCBzZWxmLnJlc291cmNlX2dyb3VwKQotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0g ICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgcmVzb3VyY2UgZ3JvdXBzLiIiIgog ICAgICAgICByZXNvdXJjZV9ncnBfcmVzcG9uc2UgPSByZXNvdXJjZV9ncm91cHNfdXRpbHMudmVy aWZ5X3Jlc291cmNlX2dyb3VwKAogICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYucmVzb3Vy Y2VfZ3JvdXApCiAgICAgICAgIGlmIG5vdCByZXNvdXJjZV9ncnBfcmVzcG9uc2U6CiAgICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSByZXNvdXJjZSBncm91cCB0 byBmZXRjaC4iKQotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKLSAgICAg ICAgICAgICJ7MH17MX0vezJ9L3szfSIuZm9ybWF0KHNlbGYudXJsLCB1dGlscy5TRVJWRVJfR1JP VVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwg c2VsZi5yZXNvdXJjZV9ncm91cF9pZCksCisKKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2NsaWVu dC5kZWxldGUoCisgICAgICAgICAgICAiezB9ezF9L3syfS97M30iLmZvcm1hdCgKKyAgICAgICAg ICAgICAgICB1cmwsCisgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAg ICAgICAgICAgIHNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICByZXNvdXJjZV9ncm91cF9pZCks CiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3Rh dHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwoMjAwKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYp OgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgcmVzb3VyY2UgZ3JvdXAgZnJv bSB0aGUgZGF0YWJhc2UuIiIiCiAgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29u bmVjdGlvbihzZWxmLnNlcnZlclsnZGInXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10s CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9y ZXNvdXJjZV9ncm91cHMvdGVzdHMvdGVzdF9yZXNvdXJjZV9ncm91cHNfZ2V0LnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcmVzb3VyY2VfZ3JvdXBzL3Rlc3Rz L3Rlc3RfcmVzb3VyY2VfZ3JvdXBzX2dldC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMC4uNzM2NTM4MmEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9yZXNvdXJjZV9ncm91cHMvdGVzdHMvdGVzdF9yZXNvdXJj ZV9ncm91cHNfZ2V0LnB5CkBAIC0wLDAgKzEsNjYgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisj IHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0g MjAxOCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJl bGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisKK2ltcG9ydCB1dWlkCisKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91 bGQKKworZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IFBvc3Rn cmVzVmVyc2lvbgorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0 X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHJlc291cmNlX2dyb3Vwc191 dGlscworCisKK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ3BnJ10pCitAcHl0ZXN0Lm1h cmsuc2tpcF9pZl9wb3N0Z3Jlc192ZXJzaW9uKHsnYmVsb3dfdmVyc2lvbic6IFBvc3RncmVzVmVy c2lvbi52OTR9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVzb3Vy Y2UgZ3JvdXBzIGFyZSBub3Qgc3VwcG9ydGVkICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ2J5IFBHOS4zICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ2FuZCBQUEFTOS4zIGFuZCBiZWxvdy4nKQorY2xhc3MgVGVzdFJlc291cmNlR3JvdXBz R2V0OgorICAgIGRlZiB0ZXN0X2dldF9yZXNvdXJjZV9ncm91cChzZWxmLCByZXF1ZXN0LCBjb250 ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gcmVxdWVzdCB0byBnZXQg YSByZXNvdXJjZSBncm91cCBpbmZvcm1hdGlvbgorICAgICAgICBJdCByZXR1cm5zIHN1Y2Nlc3MK KyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24p CisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3Jlc291cmNlX2dyb3VwL29iai8nCisgICAgICAg IGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorCisgICAgICAg IHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VydmVy X2lkID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9ybWF0aW9uJ11bJ3NlcnZlcl9pZCdd CisKKyAgICAgICAgc2VsZi5yZXNvdXJjZV9ncm91cCA9ICJ0ZXN0X3Jlc291cmNlX2dyb3VwX2dl dCVzIiAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkp WzE6OF0KKyAgICAgICAgc2VsZi5yZXNvdXJjZV9ncm91cF9pZCA9IHJlc291cmNlX2dyb3Vwc191 dGlscy5jcmVhdGVfcmVzb3VyY2VfZ3JvdXBzKAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNl bGYucmVzb3VyY2VfZ3JvdXApCisgICAgICAgIHJlc291cmNlX2dycF9yZXNwb25zZSA9IHJlc291 cmNlX2dyb3Vwc191dGlscy52ZXJpZnlfcmVzb3VyY2VfZ3JvdXAoCisgICAgICAgICAgICBzZWxm LnNlcnZlciwgc2VsZi5yZXNvdXJjZV9ncm91cCkKKyAgICAgICAgaWYgbm90IHJlc291cmNlX2dy cF9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQg dGhlIHJlc291cmNlIGdyb3VwIHRvIGZldGNoLiIpCisKKyAgICAgICAgcmVzcG9uc2UgPSBodHRw X2NsaWVudC5nZXQoCisgICAgICAgICAgICAiezB9ezF9L3syfS97M30iLmZvcm1hdCgKKyAgICAg ICAgICAgICAgICB1cmwsCisgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAg ICAgICAgICAgICAgIHNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICBzZWxmLnJlc291cmNlX2dy b3VwX2lkKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKworICAgICAgICBy ZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbCgyMDApCisKKyAgICBkZWYgdGVh ckRvd24oc2VsZik6CisgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlv bihzZWxmLnNlcnZlclsnZGInXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnaG9z dCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJbJ3BvcnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2VydmVyWydzc2xtb2RlJ10pCisgICAgICAgIHJlc291cmNlX2dyb3Vwc191dGls cy5kZWxldGVfcmVzb3VyY2VfZ3JvdXAoY29ubmVjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlc291cmNlX2dyb3VwKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcmVzb3Vy Y2VfZ3JvdXBzL3Rlc3RzL3Rlc3RfcmVzb3VyY2VfZ3JvdXBzX3B1dC5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Jlc291cmNlX2dyb3Vwcy90ZXN0cy90ZXN0 X3Jlc291cmNlX2dyb3Vwc19wdXQucHkKaW5kZXggYmQ2NjcwMWQuLmQ4ZjExODM3IDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yZXNvdXJjZV9n cm91cHMvdGVzdHMvdGVzdF9yZXNvdXJjZV9ncm91cHNfcHV0LnB5CisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Jlc291cmNlX2dyb3Vwcy90ZXN0cy90ZXN0 X3Jlc291cmNlX2dyb3Vwc19wdXQucHkKQEAgLTEwLDYyICsxMCw2NSBAQAogaW1wb3J0IGpzb24K IGltcG9ydCB1dWlkCiAKLWZyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzIGFz IHNlcnZlcl91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdl bmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CitpbXBvcnQg cHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKK2Zyb20gcGdhZG1pbi51dGlscy5i YXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBQb3N0Z3Jlc1ZlcnNpb24KIGZyb20gcmVncmVzc2lv bi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGlt cG9ydCB1dGlscyBhcyByZXNvdXJjZV9ncm91cHNfdXRpbHMKIAogCi1jbGFzcyBSZXNvdXJjZUdy b3Vwc1B1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIHdp bGwgdXBkYXRlIHRoZSByZXNvdXJjZSBncm91cHMiIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAg ICAgICgnUHV0IHJlc291cmNlIGdyb3VwcycsIGRpY3QodXJsPScvYnJvd3Nlci9yZXNvdXJjZV9n cm91cC9vYmovJykpCi0gICAgXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsncGcnXSkK K0BweXRlc3QubWFyay5za2lwX2lmX3Bvc3RncmVzX3ZlcnNpb24oeydiZWxvd192ZXJzaW9uJzog UG9zdGdyZXNWZXJzaW9uLnY5NH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdSZXNvdXJjZSBncm91cHMgYXJlIG5vdCBzdXBwb3J0ZWQgJworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnYnkgUEc5LjMgJworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnYW5kIFBQQVM5LjMgYW5kIGJlbG93LicpCitjbGFzcyBUZXN0UmVz b3VyY2VHcm91cHNQdXQ6CisgICAgZGVmIHRlc3RfZGVsZXRlX3Jlc291cmNlX2dyb3VwKHNlbGYs IHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBy ZXF1ZXN0IHRvIHVwZGF0ZSBhIHJlc291cmNlIGdyb3VwIGlzIHZhbGlkCisgICAgICAgIEl0IHJl dHVybnMgc3VjY2VzcworICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIo c2VsZi50ZWFyRG93bikKIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9pZCJdCi0gICAg ICAgIHNlcnZlcl9yZXNwb25zZSA9IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihzZWxmLCBz ZWxmLnNlcnZlcl9pZCkKLSAgICAgICAgaWYgbm90IHNlcnZlcl9yZXNwb25zZVsiaW5mbyJdID09 ICJTZXJ2ZXIgY29ubmVjdGVkLiI6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxk IG5vdCBjb25uZWN0IHRvIHNlcnZlciB0byBhZGQgcmVzb3VyY2UgIgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJncm91cHMuIikKLSAgICAgICAgaWYgInR5cGUiIGluIHNlcnZlcl9yZXNw b25zZVsiZGF0YSJdOgotICAgICAgICAgICAgaWYgc2VydmVyX3Jlc3BvbnNlWyJkYXRhIl1bInR5 cGUiXSA9PSAicGciOgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAiUmVzb3VyY2UgZ3JvdXBz IGFyZSBub3Qgc3VwcG9ydGVkIGJ5IFBHLiIKLSAgICAgICAgICAgICAgICBzZWxmLnNraXBUZXN0 KG1lc3NhZ2UpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGlmIHNlcnZlcl9y ZXNwb25zZVsiZGF0YSJdWyJ2ZXJzaW9uIl0gPCA5MDQwMDoKLSAgICAgICAgICAgICAgICAgICAg bWVzc2FnZSA9ICJSZXNvdXJjZSBncm91cHMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgUFBBUyA5LjMi IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgYW5kIGJlbG93LiIKLSAgICAgICAg ICAgICAgICAgICAgc2VsZi5za2lwVGVzdChtZXNzYWdlKQotICAgICAgICBzZWxmLnJlc291cmNl X2dyb3VwX25hbWUgPSAidGVzdF9yZXNvdXJjZV9ncm91cF9wdXQlcyIgJSBcCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KLSAgICAgICAg c2VsZi5yZXNvdXJjZV9ncm91cF9pZCA9IHJlc291cmNlX2dyb3Vwc191dGlscy5jcmVhdGVfcmVz b3VyY2VfZ3JvdXBzKAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYucmVzb3VyY2VfZ3Jv dXBfbmFtZSkKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3Jlc291cmNlX2dyb3VwL29iai8nCisg ICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQogCi0g ICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBnZXQg dGhlIHJlc291cmNlIGdyb3Vwcy4iIiIKKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29m X3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IGNvbnRleHRfb2ZfdGVz dHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddWydzZXJ2ZXJfaWQnXQorCisgICAgICAgIGluaXRpYWxf cmVzb3VyY2VfZ3JvdXBfbmFtZSA9ICJ0ZXN0X3Jlc291cmNlX2dyb3VwX3B1dCVzIiAlIFwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHV1aWQudXVpZDQoKSlbMTo4 XQorICAgICAgICBzZWxmLnJlc291cmNlX2dyb3VwX2lkID0gcmVzb3VyY2VfZ3JvdXBzX3V0aWxz LmNyZWF0ZV9yZXNvdXJjZV9ncm91cHMoCisgICAgICAgICAgICBzZWxmLnNlcnZlciwKKyAgICAg ICAgICAgIGluaXRpYWxfcmVzb3VyY2VfZ3JvdXBfbmFtZSkKICAgICAgICAgcmVzb3VyY2VfZ3Jw X3Jlc3BvbnNlID0gcmVzb3VyY2VfZ3JvdXBzX3V0aWxzLnZlcmlmeV9yZXNvdXJjZV9ncm91cCgK LSAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLnJlc291cmNlX2dyb3VwX25hbWUpCisgICAg ICAgICAgICBzZWxmLnNlcnZlciwKKyAgICAgICAgICAgIGluaXRpYWxfcmVzb3VyY2VfZ3JvdXBf bmFtZSkKICAgICAgICAgaWYgbm90IHJlc291cmNlX2dycF9yZXNwb25zZToKICAgICAgICAgICAg IHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHJlc291cmNlIGdyb3VwIHRvIGZl dGNoLiIpCi0gICAgICAgIHNlbGYucmVzb3VyY2VfZ3JvdXBfbmFtZSA9ICJ0ZXN0X3Jlc291cmNl X2dyb3VwX3B1dCVzIiAlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry KHV1aWQudXVpZDQoKSlbMTo4XQorCisgICAgICAgIHNlbGYudXBkYXRlZF9yZXNvdXJjZV9ncm91 cF9uYW1lID0gInRlc3RfcmVzb3VyY2VfZ3JvdXBfcHV0JXMiICUgXAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKwogICAg ICAgICBkYXRhID0geyJpZCI6IHNlbGYucmVzb3VyY2VfZ3JvdXBfaWQsCi0gICAgICAgICAgICAg ICAgIm5hbWUiOiBzZWxmLnJlc291cmNlX2dyb3VwX25hbWV9Ci0gICAgICAgIHJlc3BvbnNlID0g c2VsZi50ZXN0ZXIucHV0KCd7MH17MX0vezJ9L3szfScuZm9ybWF0KAotICAgICAgICAgICAgc2Vs Zi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAg ICAgIm5hbWUiOiBzZWxmLnVwZGF0ZWRfcmVzb3VyY2VfZ3JvdXBfbmFtZX0KKyAgICAgICAgcmVz cG9uc2UgPSBodHRwX2NsaWVudC5wdXQoJ3swfXsxfS97Mn0vezN9Jy5mb3JtYXQoCisgICAgICAg ICAgICB1cmwsCisgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICBz ZWxmLnNlcnZlcl9pZCwKICAgICAgICAgICAgIHNlbGYucmVzb3VyY2VfZ3JvdXBfaWQpLCBkYXRh PWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0g ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAg ICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwoMjAwKQogCiAgICAg ZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUg cmVzb3VyY2UgZ3JvdXAgZnJvbSB0aGUgZGF0YWJhc2UuIiIiCiAgICAgICAgIGNvbm5lY3Rpb24g PSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihzZWxmLnNlcnZlclsnZGInXSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSdd LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJbJ2RiX3Bhc3N3b3JkJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNlcnZlclsnaG9zdCddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3BvcnQnXSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydzc2xtb2RlJ10pCi0gICAg ICAgIHJlc291cmNlX2dyb3Vwc191dGlscy5kZWxldGVfcmVzb3VyY2VfZ3JvdXAoY29ubmVjdGlv biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnJlc291cmNlX2dyb3VwX25hbWUpCisgICAgICAgIHJlc291cmNlX2dyb3Vwc191dGlscy5k ZWxldGVfcmVzb3VyY2VfZ3JvdXAoCisgICAgICAgICAgICBjb25uZWN0aW9uLAorICAgICAgICAg ICAgc2VsZi51cGRhdGVkX3Jlc291cmNlX2dyb3VwX25hbWUpCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yZXNvdXJjZV9ncm91cHMvdGVzdHMv dGVzdHNfcmVzb3VyY2VfZ3JvdXBzX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL3Jlc291cmNlX2dyb3Vwcy90ZXN0cy90ZXN0c19yZXNvdXJjZV9ncm91 cHNfZ2V0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYzRmNzZhNy4uMDAwMDAw MDAKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcmVzb3Vy Y2VfZ3JvdXBzL3Rlc3RzL3Rlc3RzX3Jlc291cmNlX2dyb3Vwc19nZXQucHkKKysrIC9kZXYvbnVs bApAQCAtMSw2NiArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCi0jCi0jIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTgsIFRoZSBwZ0Fk bWluIERldmVsb3BtZW50IFRlYW0KLSMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0 aGUgUG9zdGdyZVNRTCBMaWNlbmNlCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1pbXBvcnQgdXVp ZAotCi1mcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IHNlcnZlcl91dGlscyBhcyBzZXJ2ZXJfdXRp bHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZy b20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAotZnJvbSByZWdyZXNzaW9uLnB5 dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCi1mcm9tIC4gaW1wb3J0 IHV0aWxzIGFzIHJlc291cmNlX2dyb3Vwc191dGlscwotCi0KLWNsYXNzIFJlc291cmNlR3JvdXBz R2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBn ZXQgdGhlIHJlc291cmNlIGdyb3VwcyIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdH ZXQgcmVzb3VyY2UgZ3JvdXBzJywgZGljdCh1cmw9Jy9icm93c2VyL3Jlc291cmNlX2dyb3VwL29i ai8nKSkKLSAgICBdCi0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuc2VydmVy X2lkID0gcGFyZW50X25vZGVfZGljdFsic2VydmVyIl1bLTFdWyJzZXJ2ZXJfaWQiXQotICAgICAg ICBzZXJ2ZXJfcmVzcG9uc2UgPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2Vs Zi5zZXJ2ZXJfaWQpCi0gICAgICAgIGlmIG5vdCBzZXJ2ZXJfcmVzcG9uc2VbImluZm8iXSA9PSAi U2VydmVyIGNvbm5lY3RlZC4iOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgY29ubmVjdCB0byBzZXJ2ZXIgdG8gYWRkIHJlc291cmNlICIKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiZ3JvdXBzLiIpCi0gICAgICAgIGlmICJ0eXBlIiBpbiBzZXJ2ZXJfcmVzcG9u c2VbImRhdGEiXToKLSAgICAgICAgICAgIGlmIHNlcnZlcl9yZXNwb25zZVsiZGF0YSJdWyJ0eXBl Il0gPT0gInBnIjoKLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gIlJlc291cmNlIGdyb3VwcyBh cmUgbm90IHN1cHBvcnRlZCBieSBQRy4iCi0gICAgICAgICAgICAgICAgc2VsZi5za2lwVGVzdCht ZXNzYWdlKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBpZiBzZXJ2ZXJfcmVz cG9uc2VbImRhdGEiXVsidmVyc2lvbiJdIDwgOTA0MDA6Ci0gICAgICAgICAgICAgICAgICAgIG1l c3NhZ2UgPSAiUmVzb3VyY2UgZ3JvdXBzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IFBQQVMgOS4zIiBc Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGFuZCBiZWxvdy4iCi0gICAgICAgICAg ICAgICAgICAgIHNlbGYuc2tpcFRlc3QobWVzc2FnZSkKLSAgICAgICAgc2VsZi5yZXNvdXJjZV9n cm91cCA9ICJ0ZXN0X3Jlc291cmNlX2dyb3VwX2dldCVzIiAlIFwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KLSAgICAgICAgc2VsZi5yZXNvdXJj ZV9ncm91cF9pZCA9IHJlc291cmNlX2dyb3Vwc191dGlscy5jcmVhdGVfcmVzb3VyY2VfZ3JvdXBz KAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYucmVzb3VyY2VfZ3JvdXApCi0KLSAgICBk ZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGdldCB0aGUg cmVzb3VyY2UgZ3JvdXBzLiIiIgotICAgICAgICByZXNvdXJjZV9ncnBfcmVzcG9uc2UgPSByZXNv dXJjZV9ncm91cHNfdXRpbHMudmVyaWZ5X3Jlc291cmNlX2dyb3VwKAotICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXIsIHNlbGYucmVzb3VyY2VfZ3JvdXApCi0gICAgICAgIGlmIG5vdCByZXNvdXJjZV9n cnBfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5k IHRoZSByZXNvdXJjZSBncm91cCB0byBmZXRjaC4iKQotICAgICAgICByZXNwb25zZSA9IHNlbGYu dGVzdGVyLmdldCgKLSAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfSIuZm9ybWF0KHNlbGYudXJs LCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5yZXNvdXJjZV9ncm91cF9pZCksCi0gICAgICAgICAgICBm b2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNl LnN0YXR1c19jb2RlLCAyMDApCi0KLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICIi IlRoaXMgZnVuY3Rpb24gZGVsZXRlIHRoZSByZXNvdXJjZSBncm91cCBmcm9tIHRoZSBkYXRhYmFz ZS4iIiIKLSAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0aW9uKHNlbGYu c2VydmVyWydkYiddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJbJ3VzZXJuYW1lJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydob3N0J10sCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsn cG9ydCddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJbJ3NzbG1vZGUnXSkKLSAgICAgICAgcmVzb3VyY2VfZ3JvdXBzX3V0aWxzLmRlbGV0 ZV9yZXNvdXJjZV9ncm91cChjb25uZWN0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVzb3VyY2VfZ3JvdXApCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy9fX2luaXRf Xy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL19f aW5pdF9fLnB5CmluZGV4IDYzZDFiZjdmLi5iYjMxZTUyMSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvX19pbml0X18ucHkKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvX19pbml0X18u cHkKQEAgLTcwNiw3ICs3MDYsNyBAQCByb2xtZW1iZXJzaGlwOnsKICAgICAgICAgICAgICAgICBf KCJDb3VsZCBub3QgZHJvcCB0aGUgcm9sZS5cbnswfSIpLmZvcm1hdChyZXMpCiAgICAgICAgICAg ICApCiAKLSAgICAgICAgcmV0dXJuIHN1Y2Nlc3NfcmV0dXJuKCkKKyAgICAgICAgcmV0dXJuIHN1 Y2Nlc3NfcmV0dXJuKCdSb2xlIGRyb3BwZWQnKQogCiAgICAgQGNoZWNrX3ByZWNvbmRpdGlvbigp CiAgICAgZGVmIHNxbChzZWxmLCBnaWQsIHNpZCwgcmlkKToKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL19faW5pdF9fLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVzdHMv X19pbml0X18ucHkKaW5kZXggYTNkOTE0NjUuLjU5MDAyNmFkIDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZXN0cy9fX2luaXRfXy5w eQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90 ZXN0cy9fX2luaXRfXy5weQpAQCAtNiwxMSArNiwzIEBACiAjIFRoaXMgc29mdHdhcmUgaXMgcmVs ZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK LQotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotCi0K LWNsYXNzIFJvbGVHZW5lcmF0b3JUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0KLSAgICBk ZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgcmV0dXJuCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZXN0cy90ZXN0X3JvbGVfYWRk LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVz dHMvdGVzdF9yb2xlX2FkZC5weQppbmRleCBlMmVlYjJkNS4uMDY2YzQzYmIgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL3Rl c3Rfcm9sZV9hZGQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvcm9sZXMvdGVzdHMvdGVzdF9yb2xlX2FkZC5weQpAQCAtOSw0NyArOSw1NCBAQAogCiBp bXBvcnQganNvbgogCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi51 dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscwotZnJvbSBwZ2FkbWluLnV0 aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9y dCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9y dCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJv bV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0 X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHJvbGVzX3V0aWxzCiAKIAot Y2xhc3MgTG9naW5Sb2xlQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRo aXMgY2xhc3MgaGFzIGFkZCByb2xlIHNjZW5hcmlvIiIiCi0KLSAgICBzY2VuYXJpb3MgPSBbCi0g ICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHJvbGVzIG5vZGUuCi0gICAgICAgICgn Q2hlY2sgUm9sZSBOb2RlJywgZGljdCh1cmw9Jy9icm93c2VyL3JvbGUvb2JqLycpKQotICAgIF0K LQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgcGFzcworY2xhc3MgVGVzdFJvbGVBZGQ6 CisgICAgZGVmIHRlc3RfYWRkX25ld19yb2xlKHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVz dHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBhIHJlcXVlc3QgaXMgc2VudCB0byBhZGQg YSBuZXcgUm9sZSBpcyB2YWxpZAorICAgICAgICBJdCByZXR1cm4gc3VjY2VzcworICAgICAgICAi IiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKIAotICAgIGRl ZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHRlc3QgdGhlIGFkZCBy b2xlIHNjZW5hcmlvIiIiCi0gICAgICAgIHNlcnZlcl9pZCA9IHBhcmVudF9ub2RlX2RpY3RbInNl cnZlciJdWy0xXVsic2VydmVyX2lkIl0KLSAgICAgICAgc2VydmVyX3Jlc3BvbnNlID0gc2VydmVy X3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNlcnZlcl9pZCkKKyAgICAgICAgc2VsZi5zZXJ2 ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBodHRwX2NsaWVudCA9IGNv bnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgdXJsID0gJy9icm93c2VyL3Jv bGUvb2JqLycKKyAgICAgICAgc2VydmVyX2lkID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2lu Zm9ybWF0aW9uJ11bJ3NlcnZlcl9pZCddCisgICAgICAgIHNlcnZlcl9yZXNwb25zZSA9IHNlcnZl cl91dGlscy5jbGllbnRfY29ubmVjdF9zZXJ2ZXIoCisgICAgICAgICAgICBodHRwX2NsaWVudCwK KyAgICAgICAgICAgIHNlcnZlcl9pZCwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNz d29yZCddKQogICAgICAgICBpZiBub3Qgc2VydmVyX3Jlc3BvbnNlWydkYXRhJ11bJ2Nvbm5lY3Rl ZCddOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJTZXJ2ZXIgbm90IGZvdW5kIHRvIGFk ZCB0aGUgcm9sZS4iKQorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdTZXJ2ZXIgbm90IGZv dW5kIHRvIGFkZCB0aGUgcm9sZS4nKQogCiAgICAgICAgIGRhdGEgPSByb2xlc191dGlscy5nZXRf cm9sZV9kYXRhKHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddKQogICAgICAgICBzZWxmLnJvbGVf bmFtZSA9IGRhdGFbJ3JvbG5hbWUnXQotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBv c3QoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8n ICsgc3RyKHNlcnZlcl9pZCkgKyAnLycsCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQu cG9zdCgKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsg c3RyKHNlcnZlcl9pZCkgKyAnLycsCiAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSks CiAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKICAgICAgICAgKQotICAgICAg ICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotICAgICAgICBy ZXNwb25zZV9kYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkK LSAgICAgICAgcm9sZV9pZCA9IHJlc3BvbnNlX2RhdGFbJ25vZGUnXVsnX2lkJ10KLSAgICAgICAg cm9sZV9kaWN0ID0geyJzZXJ2ZXJfaWQiOiBzZXJ2ZXJfaWQsICJyb2xlX2lkIjogcm9sZV9pZCwK LSAgICAgICAgICAgICAgICAgICAgICJyb2xlX25hbWUiOiBzZWxmLnJvbGVfbmFtZX0KLSAgICAg ICAgdXRpbHMud3JpdGVfbm9kZV9pbmZvKCJscmlkIiwgcm9sZV9kaWN0KQorICAgICAgICByZXNw b25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbCgyMDApCisKKyAgICAgICAganNvbl9y ZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAgYXNz ZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UoCisgICAgICAgICAgICBqc29uX3Jlc3BvbnNl LAorICAgICAgICAgICAgJ3JvbGUnLAorICAgICAgICAgICAgJ3BnYWRtaW4ubm9kZS5yb2xlJywK KyAgICAgICAgICAgIEZhbHNlLAorICAgICAgICAgICAgJ2ljb24tZ3JvdXAnLAorICAgICAgICAg ICAgc2VsZi5yb2xlX25hbWUKKyAgICAgICAgKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgot ICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgcm9sZSBmcm9tIGFkZGVkIHNlcnZl ciIiIgogICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oc2VsZi5z ZXJ2ZXJbJ2RiJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNlcnZlclsndXNlcm5hbWUnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddLApkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVzdHMvdGVz dF9yb2xlX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3JvbGVzL3Rlc3RzL3Rlc3Rfcm9sZV9kZWxldGUucHkKaW5kZXggMjJjNmRiMmYuLjk1Nzc4 YTk0IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9yb2xlcy90ZXN0cy90ZXN0X3JvbGVfZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL3Rlc3Rfcm9sZV9kZWxldGUucHkK QEAgLTksMzcgKzksNDQgQEAKIAogaW1wb3J0IHV1aWQKIAotZnJvbSBwZ2FkbWluLnV0aWxzLnJv dXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJl bnRfbm9kZV9kaWN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKK2Zyb20gcGdhZG1pbi51 dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbgogZnJvbSBy ZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBm cm9tIC4gaW1wb3J0IHV0aWxzIGFzIHJvbGVzX3V0aWxzCiAKIAotY2xhc3MgTG9naW5Sb2xlRGVs ZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3MgaGFzIGRl bGV0ZSByb2xlIHNjZW5hcmlvIiIiCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNo aW5nIGRlZmF1bHQgVVJMIGZvciByb2xlcyBub2RlLgotICAgICAgICAoJ0NoZWNrIFJvbGUgTm9k ZScsIGRpY3QodXJsPScvYnJvd3Nlci9yb2xlL29iai8nKSkKLSAgICBdCi0KLSAgICBkZWYgc2V0 VXAoc2VsZik6Ci0gICAgICAgIHNlbGYucm9sZV9uYW1lID0gInJvbGVfZGVsZXRlXyVzIiAlIHN0 cih1dWlkLnV1aWQ0KCkpWzE6OF0KLSAgICAgICAgc2VsZi5yb2xlX2lkID0gcm9sZXNfdXRpbHMu Y3JlYXRlX3JvbGUoc2VsZi5zZXJ2ZXIsIHNlbGYucm9sZV9uYW1lKQotICAgICAgICBzZWxmLnNl cnZlcl9pZCA9IHBhcmVudF9ub2RlX2RpY3RbInNlcnZlciJdWy0xXVsic2VydmVyX2lkIl0KLSAg ICAgICAgcm9sZV9kaWN0ID0geyJzZXJ2ZXJfaWQiOiBzZWxmLnNlcnZlcl9pZCwgInJvbGVfaWQi OiBzZWxmLnJvbGVfaWQsCi0gICAgICAgICAgICAgICAgICAgICAicm9sZV9uYW1lIjogc2VsZi5y b2xlX25hbWV9Ci0gICAgICAgIHV0aWxzLndyaXRlX25vZGVfaW5mbygibHJpZCIsIHJvbGVfZGlj dCkKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHRl c3QgdGhlIGRlbGV0ZSByb2xlIHNjZW5hcmlvIiIiCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50 ZXN0ZXIuZGVsZXRlKAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dS T1VQKSArICcvJyArCi0gICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3Ry KHNlbGYucm9sZV9pZCksCitjbGFzcyBUZXN0Um9sZURlbGV0ZToKKyAgICBkZWYgdGVzdF9yb2xl X2RlbGV0ZShzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisg ICAgICAgIFdoZW4gdGhlIHJvbGUgREVMRVRFIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2Vu ZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJl cXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9icm93 c2VyL3JvbGUvb2JqLycKKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0 ZXN0X2NsaWVudCddCisKKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydz ZXJ2ZXInXQorICAgICAgICBzZXJ2ZXJfaWQgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5m b3JtYXRpb24nXVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5yb2xlX25hbWUgPSAncm9sZV9k ZWxldGVfJXMnICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICByb2xlX2lkID0gcm9s ZXNfdXRpbHMuY3JlYXRlX3JvbGUoc2VsZi5zZXJ2ZXIsIHNlbGYucm9sZV9uYW1lKQorCisgICAg ICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQuZGVsZXRlKAorICAgICAgICAgICAgdXJsICsgc3Ry KHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkg KyAnLycgKyBzdHIocm9sZV9pZCksCiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUp Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisK KyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQor ICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNl KQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdpbmZvJykgPiBzaG91 bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAgICAnUm9sZSBkcm9wcGVkJykKKyAgICAgICAganNv bl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZXJyb3Jtc2cnKSA+IHNob3VsZC5iZS5lbXB0 eQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdkYXRhJykKKyAgICAg ICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgncmVzdWx0JykgPiBzaG91bGQuYmUu bm9uZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdzdWNjZXNzJykg PiBzaG91bGQuYmUuZXF1YWwudG8oMSkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAg ICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhlIHJvbGUgZnJvbSBhZGRlZCBzZXJ2ZXIiIiIK ICAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0aW9uKHNlbGYuc2VydmVy WydkYiddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJbJ3VzZXJuYW1lJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL3Rlc3Rfcm9s ZV9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xl cy90ZXN0cy90ZXN0X3JvbGVfZ2V0LnB5CmluZGV4IGJiYjFhMGE3Li4zM2Q1ZGMxNyAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVz dHMvdGVzdF9yb2xlX2dldC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9yb2xlcy90ZXN0cy90ZXN0X3JvbGVfZ2V0LnB5CkBAIC05LDM3ICs5LDY1IEBA CiAKIGltcG9ydCB1dWlkCiAKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRl c3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJv bSBncmFwcGEgaW1wb3J0IHNob3VsZAorCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVy IGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24KIGZyb20gcmVncmVzc2lvbi5weXRob25f dGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGls cyBhcyByb2xlc191dGlscwogCiAKLWNsYXNzIExvZ2luUm9sZUdldFRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIHRlc3RzIHRoZSBnZXQgcm9sZSBzY2VuYXJp byIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBm b3Igcm9sZXMgbm9kZS4KLSAgICAgICAgKCdDaGVjayBSb2xlIE5vZGUnLCBkaWN0KHVybD0nL2Jy b3dzZXIvcm9sZS9vYmovJykpCi0gICAgXQotCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAg ICBzZWxmLnNlcnZlcl9pZCA9IHBhcmVudF9ub2RlX2RpY3RbInNlcnZlciJdWy0xXVsic2VydmVy X2lkIl0KLSAgICAgICAgc2VsZi5yb2xlX25hbWUgPSAicm9sZV9nZXRfJXMiICUgc3RyKHV1aWQu dXVpZDQoKSlbMTo4XQotICAgICAgICBzZWxmLnJvbGVfaWQgPSByb2xlc191dGlscy5jcmVhdGVf cm9sZShzZWxmLnNlcnZlciwgc2VsZi5yb2xlX25hbWUpCi0gICAgICAgIHJvbGVfZGljdCA9IHsi c2VydmVyX2lkIjogc2VsZi5zZXJ2ZXJfaWQsICJyb2xlX2lkIjogc2VsZi5yb2xlX2lkLAotICAg ICAgICAgICAgICAgICAgICAgInJvbGVfbmFtZSI6IHNlbGYucm9sZV9uYW1lfQotICAgICAgICB1 dGlscy53cml0ZV9ub2RlX2luZm8oImxyaWQiLCByb2xlX2RpY3QpCi0KLSAgICBkZWYgcnVuVGVz dChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB0ZXN0IHRoZSBnZXQgcm9sZSBzY2Vu YXJpbyIiIgotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKLSAgICAgICAgICAg IHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwotICAgICAgICAgICAg c3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLnJvbGVfaWQpLAorY2xhc3MgVGVz dFJvbGVHZXQ6CisgICAgZGVmIHRlc3Rfcm9sZV9nZXQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9v Zl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSByb2xlIEdFVCByZXF1ZXN0 IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisg ICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQor CisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9yb2xlL29iai8nCisgICAgICAgIGh0dHBfY2xpZW50 ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorCisgICAgICAgIHNlbGYuc2VydmVy ID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VydmVyX2lkID0gY29udGV4 dF9vZl90ZXN0c1snc2VydmVyX2luZm9ybWF0aW9uJ11bJ3NlcnZlcl9pZCddCisKKyAgICAgICAg c2VsZi5yb2xlX25hbWUgPSAncm9sZV9nZXRfJXMnICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQor ICAgICAgICByb2xlX2lkID0gcm9sZXNfdXRpbHMuY3JlYXRlX3JvbGUoc2VsZi5zZXJ2ZXIsIHNl bGYucm9sZV9uYW1lKQorCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQuZ2V0KAorICAg ICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAg ICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIocm9sZV9pZCksCiAgICAgICAgICAgICBmb2xs b3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0 YXR1c19jb2RlLCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQu YmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25z ZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUu a2V5KCdvaWQnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdvaWQt MicpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3JvbHBhc3N3b3Jk JykgPiBcCisgICAgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8oJycpCisgICAgICAgIGpzb25f cmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3JvbGNyZWF0ZWRiJykgPiBcCisgICAgICAgICAg ICBzaG91bGQuYmUuZmFsc2UKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtl eSgncm9sc3VwZXInKSA+IFwKKyAgICAgICAgICAgIHNob3VsZC5iZS5mYWxzZQorICAgICAgICBq c29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdyb2xjcmVhdGVyb2xlJykgPiBcCisgICAg ICAgICAgICBzaG91bGQuYmUuZmFsc2UKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5o YXZlLmtleSgncm9sY2F0dXBkYXRlJykgPiBcCisgICAgICAgICAgICBzaG91bGQuYmUuZmFsc2UK KyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgncm9sbmFtZScpID4gXAor ICAgICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKHNlbGYucm9sZV9uYW1lKQorICAgICAgICBq c29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdyb2x2YWxpZHVudGlsJykgPiBcCisgICAg ICAgICAgICBzaG91bGQuYmUubm9uZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhh dmUua2V5KCdyb2xjYW5sb2dpbicpID4gXAorICAgICAgICAgICAgc2hvdWxkLmJlLnRydWUKKyAg ICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZGVzY3JpcHRpb24nKSA+IFwK KyAgICAgICAgICAgIHNob3VsZC5iZS5ub25lCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91 bGQuaGF2ZS5rZXkoJ3JvbGluaGVyaXQnKSA+IFwKKyAgICAgICAgICAgIHNob3VsZC5iZS50cnVl CisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3JvbGNvbmZpZycpID4g XAorICAgICAgICAgICAgc2hvdWxkLmJlLm5vbmUKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNo b3VsZC5oYXZlLmtleSgncm9sbWVtYmVyc2hpcCcpID4gXAorICAgICAgICAgICAgc2hvdWxkLmJl LmVxdWFsLnRvKFtdKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJUaGlz IGZ1bmN0aW9uIGRlbGV0ZSB0aGUgcm9sZSBmcm9tIGFkZGVkIHNlcnZlciIiIgogICAgICAgICBj b25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oc2VsZi5zZXJ2ZXJbJ2RiJ10sCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsn dXNlcm5hbWUnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddLApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVzdHMvdGVzdF9yb2xlX3B1dC5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL3Rl c3Rfcm9sZV9wdXQucHkKaW5kZXggZTVlMDA5MzAuLmY4ZWViM2M0IDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZXN0cy90ZXN0X3Jv bGVfcHV0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L3JvbGVzL3Rlc3RzL3Rlc3Rfcm9sZV9wdXQucHkKQEAgLTEwLDQ1ICsxMCw1NiBAQAogaW1wb3J0 IGpzb24KIGltcG9ydCB1dWlkCiAKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFz ZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAor ZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVs cGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92 YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGlt cG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHJvbGVzX3V0 aWxzCiAKIAotY2xhc3MgTG9naW5Sb2xlUHV0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgot ICAgICIiIlRoaXMgY2xhc3MgaGFzIHVwZGF0ZSByb2xlIHNjZW5hcmlvIiIiCi0gICAgc2NlbmFy aW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciByb2xlcyBub2RlLgot ICAgICAgICAoJ0NoZWNrIFJvbGUgTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci9yb2xlL29iai8n KSkKLSAgICBdCi0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuc2VydmVyX2lk ID0gcGFyZW50X25vZGVfZGljdFsic2VydmVyIl1bLTFdWyJzZXJ2ZXJfaWQiXQotICAgICAgICBz ZWxmLnJvbGVfbmFtZSA9ICJyb2xlX3B1dF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCi0g ICAgICAgIHNlbGYucm9sZV9pZCA9IHJvbGVzX3V0aWxzLmNyZWF0ZV9yb2xlKHNlbGYuc2VydmVy LCBzZWxmLnJvbGVfbmFtZSkKLSAgICAgICAgcm9sZV9kaWN0ID0geyJzZXJ2ZXJfaWQiOiBzZWxm LnNlcnZlcl9pZCwgInJvbGVfaWQiOiBzZWxmLnJvbGVfaWQsCi0gICAgICAgICAgICAgICAgICAg ICAicm9sZV9uYW1lIjogc2VsZi5yb2xlX25hbWV9Ci0gICAgICAgIHV0aWxzLndyaXRlX25vZGVf aW5mbygibHJpZCIsIHJvbGVfZGljdCkKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAg ICAiIiJUaGlzIGZ1bmN0aW9uIHRlc3RzIHRoZSB1cGRhdGUgcm9sZSBkYXRhIHNjZW5hcmlvIiIi Ci0gICAgICAgIHJvbGVfcmVzcG9uc2UgPSByb2xlc191dGlscy52ZXJpZnlfcm9sZShzZWxmLnNl cnZlciwgc2VsZi5yb2xlX25hbWUpCi0gICAgICAgIGlmIGxlbihyb2xlX3Jlc3BvbnNlKSA9PSAw OgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyByb2xlcyhzKSB0byB1cGRhdGUhISEi KQorY2xhc3MgVGVzdFJvbGVQdXQ6CisgICAgZGVmIHRlc3Rfcm9sZV9wdXQoc2VsZiwgcmVxdWVz dCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBSb2xl IFBVVCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAy MDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxm LnRlYXJEb3duKQorCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2Vy dmVyJ10KKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVu dCddCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9yb2xlL29iai8nCisKKyAgICAgICAgc2VydmVy X2lkID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9ybWF0aW9uJ11bJ3NlcnZlcl9pZCdd CisgICAgICAgIHNlbGYucm9sZV9uYW1lID0gJ3JvbGVfcHV0XyVzJyAlIHN0cih1dWlkLnV1aWQ0 KCkpWzE6OF0KKyAgICAgICAgcm9sZV9pZCA9IHJvbGVzX3V0aWxzLmNyZWF0ZV9yb2xlKHNlbGYu c2VydmVyLCBzZWxmLnJvbGVfbmFtZSkKKworICAgICAgICBpc19yb2xlX3ZlcmlmaWVkID0gcm9s ZXNfdXRpbHMudmVyaWZ5X3JvbGUoc2VsZi5zZXJ2ZXIsIHNlbGYucm9sZV9uYW1lKQorICAgICAg ICBpZiBsZW4oaXNfcm9sZV92ZXJpZmllZCkgPT0gMDoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbignTm8gcm9sZXMocykgdG8gdXBkYXRlISEhJykKKwogICAgICAgICBkYXRhID0gewotICAg ICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgdGhlIHRlc3QgZGVzY3JpcHRpb24gZm9y IGNhc3QiLAotICAgICAgICAgICAgImxyaWQiOiBzZWxmLnJvbGVfaWQKKyAgICAgICAgICAgICdk ZXNjcmlwdGlvbic6ICdUaGlzIGlzIHRoZSB0ZXN0IGRlc2NyaXB0aW9uIGZvciBjYXN0JywKKyAg ICAgICAgICAgICdscmlkJzogcm9sZV9pZAogICAgICAgICB9Ci0gICAgICAgIHB1dF9yZXNwb25z ZSA9IHNlbGYudGVzdGVyLnB1dCgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNF UlZFUl9HUk9VUCkgKyAnLycgKwotICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcv JyArIHN0cihzZWxmLnJvbGVfaWQpLAorICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LnB1 dCgKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAg ICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHJvbGVfaWQpLAogICAgICAgICAg ICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1U cnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwdXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUs IDIwMCkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50 bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24o cmVzcG9uc2UpCisgICAgICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlKAorICAg ICAgICAgICAganNvbl9yZXNwb25zZSwKKyAgICAgICAgICAgICdyb2xlJywKKyAgICAgICAgICAg ICdwZ2FkbWluLm5vZGUucm9sZScsCisgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgICdp Y29uLXJvbGUnLAorICAgICAgICAgICAgc2VsZi5yb2xlX25hbWUKKyAgICAgICAgKQogCiAgICAg ZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUg cm9sZSBmcm9tIGFkZGVkIHNlcnZlciIiIgogICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0 X2RiX2Nvbm5lY3Rpb24oc2VsZi5zZXJ2ZXJbJ2RiJ10sCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsndXNlcm5hbWUnXSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNz d29yZCddLApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvcm9sZXMvdGVzdHMvdXRpbHMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9yb2xlcy90ZXN0cy91dGlscy5weQppbmRleCAyYjhlYWVlZi4uYWQxOTli NDAgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L3JvbGVzL3Rlc3RzL3V0aWxzLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL3V0aWxzLnB5CkBAIC0xMCwxMiArMTAsMTAgQEAKIGZy b20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAogaW1wb3J0IG9zCi1pbXBvcnQg cGlja2xlCiBpbXBvcnQgc3lzCiBpbXBvcnQgdXVpZAogCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9u X3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKLWZyb20gcmVncmVzc2lvbi50 ZXN0X3NldHVwIGltcG9ydCBjb25maWdfZGF0YQogCiBST0xFX1VSTCA9ICcvYnJvd3Nlci9yb2xl L29iai8nCiBmaWxlX25hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKF9fZmlsZV9fKQpAQCAtNTIsMjQg KzUwLDYgQEAgZGVmIHZlcmlmeV9yb2xlKHNlcnZlciwgcm9sZV9uYW1lKToKICAgICAgICAgcHJp bnQoZXhjZXB0aW9uLCBmaWxlPXN5cy5zdGRlcnIpCiAKIAotZGVmIHRlc3RfZ2V0cm9sZSh0ZXN0 ZXIpOgotICAgIGlmIG5vdCB0ZXN0ZXI6Ci0gICAgICAgIHJldHVybiBOb25lCi0KLSAgICBhbGxf aWQgPSB1dGlscy5nZXRfaWRzKCkKLQotICAgIHNlcnZlcl9pZHMgPSBhbGxfaWRbInNpZCJdCi0g ICAgcm9sZV9pZHNfZGljdCA9IGFsbF9pZFsibHJpZCJdWzBdCi0gICAgc2VydmVyX2dyb3VwID0g Y29uZmlnX2RhdGFbJ3NlcnZlcl9ncm91cCddCi0KLSAgICByb2xlX3Jlc3BvbnNlX2RhdGEgPSBb XQotICAgIGZvciBzZXJ2ZXJfaWQgaW4gc2VydmVyX2lkczoKLSAgICAgICAgcm9sZV9pZCA9IHJv bGVfaWRzX2RpY3RbaW50KHNlcnZlcl9pZCldCi0gICAgICAgIHJvbGVfcmVzcG9uc2VfZGF0YS5h cHBlbmQoCi0gICAgICAgICAgICB2ZXJpZnlfcm9sZSh0ZXN0ZXIsIHNlcnZlcl9ncm91cCwgc2Vy dmVyX2lkLCByb2xlX2lkKSkKLSAgICByZXR1cm4gcm9sZV9yZXNwb25zZV9kYXRhCi0KLQogZGVm IGdldF9yb2xlX2RhdGEobHJfcHdkKToKICAgICAiIiJUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhl IHJvbGUgZGF0YSIiIgogICAgIGRhdGEgPSB7CkBAIC0xMjIsMzQgKzEwMiw2IEBAIGRlZiBjcmVh dGVfcm9sZShzZXJ2ZXIsIHJvbGVfbmFtZSk6CiAgICAgICAgIHByaW50KGV4Y2VwdGlvbiwgZmls ZT1zeXMuc3RkZXJyKQogCiAKLWRlZiB3cml0ZV9yb2xlX2lkKHJlc3BvbnNlX2RhdGEpOgotICAg ICIiIgotCi0gICAgOnBhcmFtIHJlc3BvbnNlX2RhdGE6Ci0gICAgOnJldHVybjoKLSAgICAiIiIK LQotICAgIGxyX2lkID0gcmVzcG9uc2VfZGF0YVsnbm9kZSddWydfaWQnXQotICAgIHNlcnZlcl9p ZCA9IHJlc3BvbnNlX2RhdGFbJ25vZGUnXVsnX3BpZCddCi0gICAgcGlja2xlX2lkX2RpY3QgPSB1 dGlscy5nZXRfcGlja2xlX2lkX2RpY3QoKQotICAgICMgVE9ETzogbW9kaWZ5IGxvZ2ljIHRvIHdy aXRlIGluIGZpbGUgLyBmaWxlIGV4aXN0cyBvciBjcmVhdGUgbmV3IGNoZWNrCi0gICAgIyBvbGQg ZmlsZQotICAgIGlmIG9zLnBhdGguaXNmaWxlKHBpY2tsZV9wYXRoKToKLSAgICAgICAgZXhpc3Rp bmdfc2VydmVyX2lkID0gb3BlbihwaWNrbGVfcGF0aCwgJ3JiJykKLSAgICAgICAgdG9sX3NlcnZl cl9pZCA9IHBpY2tsZS5sb2FkKGV4aXN0aW5nX3NlcnZlcl9pZCkKLSAgICAgICAgcGlja2xlX2lk X2RpY3QgPSB0b2xfc2VydmVyX2lkCi0gICAgaWYgJ2xyaWQnIGluIHBpY2tsZV9pZF9kaWN0Ogot ICAgICAgICBpZiBwaWNrbGVfaWRfZGljdFsnbHJpZCddOgotICAgICAgICAgICAgIyBBZGQgdGhl IGRiX2lkIGFzIHZhbHVlIGluIGRpY3QKLSAgICAgICAgICAgIHBpY2tsZV9pZF9kaWN0WyJscmlk Il1bMF0udXBkYXRlKHtzZXJ2ZXJfaWQ6IGxyX2lkfSkKLSAgICAgICAgZWxzZToKLSAgICAgICAg ICAgICMgQ3JlYXRlIG5ldyBkaWN0IHdpdGggc2VydmVyX2lkIGFuZCBkYl9pZAotICAgICAgICAg ICAgcGlja2xlX2lkX2RpY3RbImxyaWQiXS5hcHBlbmQoe3NlcnZlcl9pZDogbHJfaWR9KQotICAg IGRiX291dHB1dCA9IG9wZW4ocGlja2xlX3BhdGgsICd3YicpCi0gICAgcGlja2xlLmR1bXAocGlj a2xlX2lkX2RpY3QsIGRiX291dHB1dCkKLSAgICBkYl9vdXRwdXQuY2xvc2UoKQotCi0KIGRlZiBk ZWxldGVfcm9sZShjb25uZWN0aW9uLCByb2xlX25hbWUpOgogICAgICIiIgogICAgIFRoaXMgZnVu Y3Rpb24gdXNlIHRvIGRlbGV0ZSB0aGUgZXhpc3Rpbmcgcm9sZXMgaW4gdGhlIHNlcnZlcnMKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxl c3BhY2VzL3Rlc3RzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvX19pbml0X18ucHkKaW5kZXggZmM3NTdmMTIu LjU5MDAyNmFkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy90YWJsZXNwYWNlcy90ZXN0cy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90ZXN0cy9fX2luaXRfXy5w eQpAQCAtNiwxMSArNiwzIEBACiAjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhl IFBvc3RncmVTUUwgTGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotZnJvbSBwZ2FkbWlu LnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotCi0KLWNsYXNzIFRibHNwYWNl R2VuZXJhdG9yVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotCi0gICAgZGVmIHJ1blRlc3Qo c2VsZik6Ci0gICAgICAgIHJldHVybgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdGVzdF9iYWNrZW5kX3N1cHBv cnRlZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxl c3BhY2VzL3Rlc3RzL3Rlc3RfYmFja2VuZF9zdXBwb3J0ZWQucHkKaW5kZXggZDhmNDY0OTguLjdh MWE0N2NlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy90YWJsZXNwYWNlcy90ZXN0cy90ZXN0X2JhY2tlbmRfc3VwcG9ydGVkLnB5CisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3Rz L3Rlc3RfYmFja2VuZF9zdXBwb3J0ZWQucHkKQEAgLTgsNDYgKzgsMzUgQEAKICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCiBpbXBvcnQgc3lzCiAKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogaWYgc3lz LnZlcnNpb25faW5mbyA8ICgzLCAzKToKICAgICBmcm9tIG1vY2sgaW1wb3J0IE1hZ2ljTW9jawog ZWxzZToKICAgICBmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IE1hZ2ljTW9jawogCiBmcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMudGFibGVzcGFjZXMgaW1wb3J0IFRh Ymxlc3BhY2VNb2R1bGUKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKLQogCi1jbGFzcyBCYWNrZW5kU3VwcG9ydGVkVGVzdENhc2UoQmFzZVRlc3RHZW5l cmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBhZGQgdGFibGVzcGFjZSBub2RlIHVuZGVy IHNlcnZlciIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdXaGVuIHNlcnZlciBpcyBw b3N0Z3JlcywgaXQgcmV0dXJucyB0cnVlJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAg bWFuYWdlcj1kaWN0KAotICAgICAgICAgICAgICAgICBzdmVyc2lvbj05MDEwMCwKLSAgICAgICAg ICAgICAgICAgc2VydmVyX3R5cGU9J3BnJwotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAg ZXhwZWN0ZWRfcmVzdWx0PVRydWUKLSAgICAgICAgICkpLAotICAgICAgICAoJ1doZW4gc2VydmVy IGlzIEdyZWVuUGx1bSA1LjAsIGl0IHJldHVybnMgZmFsc2UnLAotICAgICAgICAgZGljdCgKLSAg ICAgICAgICAgICBtYW5hZ2VyPWRpY3QoCi0gICAgICAgICAgICAgICAgIHN2ZXJzaW9uPTgwMzIz LAotICAgICAgICAgICAgICAgICBzZXJ2ZXJfdHlwZT0nZ3BkYicKLSAgICAgICAgICAgICApLAot ICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD1GYWxzZQotICAgICAgICAgKSkKLSAgICBdCiAK LSAgICBjbGFzcyBMb2NhbE1hbmFnZXI6Ci0gICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwcm9w ZXJ0aWVzKToKLSAgICAgICAgICAgIHNlbGYuc3ZlcnNpb24gPSBwcm9wZXJ0aWVzWydzdmVyc2lv biddCi0gICAgICAgICAgICBzZWxmLnN2ZXJzaW9uID0gcHJvcGVydGllc1snc3ZlcnNpb24nXQor Y2xhc3MgVGVzdEJhY2tlbmRTdXBwb3J0ZWQ6CisgICAgZGVmIHRlc3RfcG9zdGdyZXMoc2VsZik6 CisgICAgICAgICIiIgorICAgICAgICBXaGVuIGNoZWNraW5nIGlmIHRoZSBQb3N0Z3JlcyBEYXRh YmFzZSBzdXBwb3J0cyBUYWJsZSBzcGFjZXMKKyAgICAgICAgSXQgcmV0dXJucyB0cnVlCisgICAg ICAgICIiIgorICAgICAgICBtb2R1bGUgPSBUYWJsZXNwYWNlTW9kdWxlKCduYW1lJykKKyAgICAg ICAgbWFuYWdlciA9IE1hZ2ljTW9jaygpCisgICAgICAgIG1hbmFnZXIuc3ZlcnNpb24gPSA5MDEw MAorICAgICAgICBtYW5hZ2VyLnNlcnZlcl90eXBlID0gJ3BnJworICAgICAgICBtb2R1bGUuQmFj a2VuZFN1cHBvcnRlZChtYW5hZ2VyKSB8IHNob3VsZC5iZS50cnVlCiAKLSAgICBkZWYgcnVuVGVz dChzZWxmKToKKyAgICBkZWYgdGVzdF9ncmVlbnBsdW0oc2VsZik6CisgICAgICAgICIiIgorICAg ICAgICBXaGVuIGNoZWNraW5nIGlmIHRoZSBHcmVlbnBsdW0gRGF0YWJhc2Ugc3VwcG9ydHMgVGFi bGVzcGFjZXMKKyAgICAgICAgSXQgcmV0dXJucyBmYWxzZQorICAgICAgICAiIiIKICAgICAgICAg bW9kdWxlID0gVGFibGVzcGFjZU1vZHVsZSgnbmFtZScpCiAgICAgICAgIG1hbmFnZXIgPSBNYWdp Y01vY2soKQotICAgICAgICBtYW5hZ2VyLnN2ZXJzaW9uID0gc2VsZi5tYW5hZ2VyWydzdmVyc2lv biddCi0gICAgICAgIG1hbmFnZXIuc2VydmVyX3R5cGUgPSBzZWxmLm1hbmFnZXJbJ3NlcnZlcl90 eXBlJ10KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoCi0gICAgICAgICAgICBzZWxmLmV4cGVj dGVkX3Jlc3VsdCwgbW9kdWxlLkJhY2tlbmRTdXBwb3J0ZWQobWFuYWdlcikKLSAgICAgICAgKQor ICAgICAgICBtYW5hZ2VyLnN2ZXJzaW9uID0gODAzMjMKKyAgICAgICAgbWFuYWdlci5zZXJ2ZXJf dHlwZSA9ICdncGRiJworICAgICAgICBtb2R1bGUuQmFja2VuZFN1cHBvcnRlZChtYW5hZ2VyKSB8 IHNob3VsZC5iZS5mYWxzZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdGVzdF90YnNwY19hZGQucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90ZXN0cy90 ZXN0X3Ric3BjX2FkZC5weQppbmRleCBjOGI5YjBiYS4uOGRhZTg5NTIgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3Rz L3Rlc3RfdGJzcGNfYWRkLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3Rlc3RfdGJzcGNfYWRkLnB5CkBAIC0xMSw1OSAr MTEsNjcgQEAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCiBpbXBvcnQg anNvbgogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20g cGdhZG1pbi51dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscwotZnJvbSBw Z2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNz aW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVs cGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92 YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGlt cG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHRhYmxlc3Bh Y2VfdXRpbHMKIAogCi1jbGFzcyBUYWJsZVNwYWNlQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0 b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBhZGQgdGFibGVzcGFjZSBub2RlIHVuZGVyIHNl cnZlciIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVS TCBmb3IgdGFibGVzcGFjZSBub2RlLgotICAgICAgICAoJ0NoZWNrIFRhYmxlc3BhY2UgTm9kZScs IGRpY3QodXJsPScvYnJvd3Nlci90YWJsZXNwYWNlL29iai8nKSkKLSAgICBdCitjbGFzcyBUZXN0 VGFibGVTcGFjZUFkZDoKKyAgICBkZWYgdGVzdF9hZGRfdGFibGVzcGFjZShzZWxmLCByZXF1ZXN0 LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gYSByZXF1ZXN0 IGlzIHNlbnQgdG8gYWRkIGEgbmV3IHRhYmxlc3BhY2UgaXMgdmFsaWQKKyAgICAgICAgSXQgcmV0 dXJuIHN1Y2Nlc3MKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNl bGYudGVhckRvd24pCisKKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydz ZXJ2ZXInXQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBzZWxmLnRhYmxlc3BhY2Vf bmFtZSA9ICcnCi0gICAgICAgIGlmIG5vdCBzZWxmLnNlcnZlclsndGFibGVzcGFjZV9wYXRoJ11c Ci0gICAgICAgICAgICAgICAgb3Igc2VsZi5zZXJ2ZXJbJ3RhYmxlc3BhY2VfcGF0aCddIGlzIE5v bmU6Ci0gICAgICAgICAgICBtZXNzYWdlID0gIlRhYmxlc3BhY2UgYWRkIHRlc3QgY2FzZS4gVGFi bGVzcGFjZSBwYXRoIiBcCi0gICAgICAgICAgICAgICAgICAgICAgIiBub3QgY29uZmlndXJlZCBm b3Igc2VydmVyOiAlcyIgJSBzZWxmLnNlcnZlclsnbmFtZSddCi0gICAgICAgICAgICAjIFNraXAg dGhlIHRlc3QgY2FzZSBpZiB0YWJsZXNwYWNlX3BhdGggbm90IGZvdW5kLgotICAgICAgICAgICAg c2VsZi5za2lwVGVzdChtZXNzYWdlKQorICAgICAgICBpZiBub3Qgc2VsZi5zZXJ2ZXJbJ3RhYmxl c3BhY2VfcGF0aCddIFwKKyAgICAgICAgICAgb3Igc2VsZi5zZXJ2ZXJbJ3RhYmxlc3BhY2VfcGF0 aCddIGlzIE5vbmU6CisgICAgICAgICAgICBtZXNzYWdlID0gJ1RhYmxlc3BhY2UgYWRkIHRlc3Qg Y2FzZS4gVGFibGVzcGFjZSBwYXRoJyBcCisgICAgICAgICAgICAgICAgICAgICAgJyBub3QgY29u ZmlndXJlZCBmb3Igc2VydmVyOiAlcycgJSBzZWxmLnNlcnZlclsnbmFtZSddCisgICAgICAgICAg ICBweXRlc3Quc2tpcChtZXNzYWdlKQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci90YWJsZXNw YWNlL29iai8nCisgICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9j bGllbnQnXQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rp b24gdGVzdCB0aGUgYWRkIHRhYmxlc3BhY2UgQVBJIiIiCi0gICAgICAgIHNlcnZlcl9pZCA9IHBh cmVudF9ub2RlX2RpY3RbInNlcnZlciJdWy0xXVsic2VydmVyX2lkIl0KLSAgICAgICAgc2VydmVy X3Jlc3BvbnNlID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNlcnZlcl9pZCkK KyAgICAgICAgc2VydmVyX2lkID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9ybWF0aW9u J11bJ3NlcnZlcl9pZCddCisgICAgICAgIHNlcnZlcl9yZXNwb25zZSA9IHNlcnZlcl91dGlscy5j bGllbnRfY29ubmVjdF9zZXJ2ZXIoCisgICAgICAgICAgICBodHRwX2NsaWVudCwKKyAgICAgICAg ICAgIHNlcnZlcl9pZCwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddKQog ICAgICAgICBpZiBub3Qgc2VydmVyX3Jlc3BvbnNlWydkYXRhJ11bJ2Nvbm5lY3RlZCddOgotICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJVbmFibGUgdG8gY29ubmVjdCBzZXJ2ZXIgdG8gZ2V0 IHRhYmxlc3BhY2UuIikKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVW5hYmxlIHRvIGNv bm5lY3Qgc2VydmVyIHRvIGdldCB0YWJsZXNwYWNlLicpCiAKICAgICAgICAgZGJfb3duZXIgPSBz ZXJ2ZXJfcmVzcG9uc2VbJ2RhdGEnXVsndXNlciddWyduYW1lJ10KICAgICAgICAgdGFibGVfc3Bh Y2VfcGF0aCA9IHNlbGYuc2VydmVyWyd0YWJsZXNwYWNlX3BhdGgnXQogICAgICAgICBkYXRhID0g dGFibGVzcGFjZV91dGlscy5nZXRfdGFibGVzcGFjZV9kYXRhKAogICAgICAgICAgICAgdGFibGVf c3BhY2VfcGF0aCwgZGJfb3duZXIpCiAgICAgICAgIHNlbGYudGFibGVzcGFjZV9uYW1lID0gZGF0 YVsnbmFtZSddCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKLSAgICAgICAg ICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKyBzdHIoc2VydmVy X2lkKSArICcvJywKKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2NsaWVudC5wb3N0KAorICAgICAg ICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKyBzdHIoc2VydmVyX2lk KSArICcvJywKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAg IGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJwogICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCi0gICAgICAgIHJlc3BvbnNlX2RhdGEg PSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQotICAgICAgICB0YWJs ZXNwYWNlX2lkID0gcmVzcG9uc2VfZGF0YVsnbm9kZSddWydfaWQnXQotICAgICAgICB0YWJsZXNw YWNlX2RpY3QgPSB7InRhYmxlc3BhY2VfaWQiOiB0YWJsZXNwYWNlX2lkLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgInRhYmxlc3BhY2VfbmFtZSI6IHNlbGYudGFibGVzcGFjZV9uYW1lLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlcnZlcl9pZCI6IHNlcnZlcl9pZH0KLSAgICAg ICAgdXRpbHMud3JpdGVfbm9kZV9pbmZvKCJ0c2lkIiwgdGFibGVzcGFjZV9kaWN0KQorCisgICAg ICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsKDIwMCkKKyAgICAgICAg anNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAg ICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UoCisgICAgICAgICAgICBqc29uX3Jl c3BvbnNlLAorICAgICAgICAgICAgJ3RhYmxlc3BhY2UnLAorICAgICAgICAgICAgJ3BnYWRtaW4u bm9kZS50YWJsZXNwYWNlJywKKyAgICAgICAgICAgIEZhbHNlLAorICAgICAgICAgICAgJ2ljb24t dGFibGVzcGFjZScsCisgICAgICAgICAgICBzZWxmLnRhYmxlc3BhY2VfbmFtZQorICAgICAgICAp CiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBUaGlzIGZ1 bmN0aW9uIGRlbGV0ZSB0aGUgdGFibGVzcGFjZSBmcm9tIHNlcnZlciBhZGRlZCBpbiBTUUxpdGUg YW5kCi0gICAgICAgIGNsZWFycyB0aGUgbm9kZV9pbmZvX2RpY3QKLSAgICAgICAgIiIiCiAgICAg ICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihzZWxmLnNlcnZlclsnZGIn XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2Vy dmVyWyd1c2VybmFtZSddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90ZXN0cy90ZXN0X3Ri c3BjX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L3RhYmxlc3BhY2VzL3Rlc3RzL3Rlc3RfdGJzcGNfZGVsZXRlLnB5CmluZGV4IDRlMTZiZjdhLi4w YzA5MTI0OSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdGVzdF90YnNwY19kZWxldGUucHkKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdGVz dF90YnNwY19kZWxldGUucHkKQEAgLTksNTggKzksNjIgQEAKIAogZnJvbSBfX2Z1dHVyZV9fIGlt cG9ydCBwcmludF9mdW5jdGlvbgogCi1pbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAotZnJvbSBw Z2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNz aW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBp bXBvcnQgc2hvdWxkCisKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNv bnZlcnRfcmVzcG9uc2VfdG9fanNvbgogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxz IGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHRhYmxl c3BhY2VfdXRpbHMKIAogCi1jbGFzcyBUYWJsZVNwYWNlRGVsZXRlVGVzdENhc2UoQmFzZVRlc3RH ZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3MgaGFzIGRlbGV0ZSB0YWJsZSBzcGFjZSBzY2Vu YXJpbyIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVS TCBmb3IgdGFibGVzcGFjZSBub2RlLgotICAgICAgICAoJ0NoZWNrIFRhYmxlc3BhY2UgTm9kZScs IGRpY3QodXJsPScvYnJvd3Nlci90YWJsZXNwYWNlL29iai8nKSkKLSAgICBdCitjbGFzcyBUZXN0 VGFibGVTcGFjZURlbGV0ZToKKyAgICBkZWYgdGVzdF90YWJsZXNwYWNlX2RlbGV0ZShzZWxmLCBy ZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhl IHRhYmxlc3BhY2UgREVMRVRFIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAg ICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHVybCA9ICcvYnJv d3Nlci90YWJsZXNwYWNlL29iai8nCisgICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90 ZXN0c1sndGVzdF9jbGllbnQnXQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBpZiBu b3Qgc2VsZi5zZXJ2ZXJbJ3RhYmxlc3BhY2VfcGF0aCddXAotICAgICAgICAgICAgICAgIG9yIHNl bGYuc2VydmVyWyd0YWJsZXNwYWNlX3BhdGgnXSBpcyBOb25lOgotICAgICAgICAgICAgbWVzc2Fn ZSA9ICJUYWJsZXNwYWNlIGRlbGV0ZSB0ZXN0IGNhc2UuIFRhYmxlc3BhY2UgcGF0aCIgXAotICAg ICAgICAgICAgICAgICAgICAgICIgbm90IGNvbmZpZ3VyZWQgZm9yIHNlcnZlcjogJXMiICUgc2Vs Zi5zZXJ2ZXJbJ25hbWUnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNb J3NlcnZlciddCisgICAgICAgIGlmIG5vdCBzZWxmLnNlcnZlclsndGFibGVzcGFjZV9wYXRoJ10g XAorICAgICAgICAgICBvciBzZWxmLnNlcnZlclsndGFibGVzcGFjZV9wYXRoJ10gaXMgTm9uZToK KyAgICAgICAgICAgIG1lc3NhZ2UgPSAnVGFibGVzcGFjZSBkZWxldGUgdGVzdCBjYXNlLiBUYWJs ZXNwYWNlIHBhdGgnIFwKKyAgICAgICAgICAgICAgICAgICAgICAnIG5vdCBjb25maWd1cmVkIGZv ciBzZXJ2ZXI6ICVzJyAlIHNlbGYuc2VydmVyWyduYW1lJ10KICAgICAgICAgICAgICMgU2tpcCB0 aGUgdGVzdCBjYXNlIGlmIHRhYmxlc3BhY2VfcGF0aCBub3QgZm91bmQuCi0gICAgICAgICAgICBz ZWxmLnNraXBUZXN0KG1lc3NhZ2UpCi0gICAgICAgIHNlbGYudGFibGVzcGFjZV9uYW1lID0gInRh Ymxlc3BhY2VfZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KLSAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9pZCJd Ci0gICAgICAgIHNlbGYudGFibGVzcGFjZV9pZCA9IHRhYmxlc3BhY2VfdXRpbHMuY3JlYXRlX3Rh Ymxlc3BhY2UoCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi50YWJsZXNwYWNlX25hbWUp Ci0gICAgICAgIHRhYmxlc3BhY2VfZGljdCA9IHsKLSAgICAgICAgICAgICJ0YWJsZXNwYWNlX2lk Ijogc2VsZi50YWJsZXNwYWNlX2lkLAotICAgICAgICAgICAgInRhYmxlc3BhY2VfbmFtZSI6IHNl bGYudGFibGVzcGFjZV9uYW1lLAotICAgICAgICAgICAgInNlcnZlcl9pZCI6IHNlbGYuc2VydmVy X2lkCi0gICAgICAgIH0KLSAgICAgICAgdXRpbHMud3JpdGVfbm9kZV9pbmZvKCJ0c2lkIiwgdGFi bGVzcGFjZV9kaWN0KQorICAgICAgICAgICAgcHl0ZXN0LnNraXAobWVzc2FnZSkKKworICAgICAg ICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQogCi0gICAgZGVmIHJ1blRlc3Qo c2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gdGVzdHMgdGhlIGRlbGV0ZSB0YWJsZSBz cGFjZSBhcGkiIiIKLSAgICAgICAgdGFibGVzcGFjZV9jb3VudCA9IHRhYmxlc3BhY2VfdXRpbHMu dmVyaWZ5X3RhYmxlX3NwYWNlKAorICAgICAgICBzZWxmLnRhYmxlc3BhY2VfbmFtZSA9ICd0YWJs ZXNwYWNlX2RlbGV0ZV8lcycgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAgICAgIHNlcnZl cl9pZCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddWydzZXJ2ZXJfaWQn XQorICAgICAgICB0YWJsZXNwYWNlX2lkID0gdGFibGVzcGFjZV91dGlscy5jcmVhdGVfdGFibGVz cGFjZSgKICAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLnRhYmxlc3BhY2VfbmFtZSkKLSAg ICAgICAgaWYgdGFibGVzcGFjZV9jb3VudCA9PSAwOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0 aW9uKCJObyB0YWJsZXNwYWNlKHMpIHRvIGRlbGV0ZSEhISIpCiAKLSAgICAgICAgcmVzcG9uc2Ug PSBzZWxmLnRlc3Rlci5kZWxldGUoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5T RVJWRVJfR1JPVVApICsKLSAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAn LycgKyBzdHIoc2VsZi50YWJsZXNwYWNlX2lkKSwKKyAgICAgICAgdGFibGVzcGFjZV9leGlzdHMg PSB0YWJsZXNwYWNlX3V0aWxzLnRhYmxlc3BhY2VfZXhpc3RzKAorICAgICAgICAgICAgc2VsZi5z ZXJ2ZXIsCisgICAgICAgICAgICBzZWxmLnRhYmxlc3BhY2VfbmFtZSkKKyAgICAgICAgaWYgbm90 IHRhYmxlc3BhY2VfZXhpc3RzOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdObyB0YWJs ZXNwYWNlKHMpIHRvIGRlbGV0ZSEhIScpCisKKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2NsaWVu dC5kZWxldGUoCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArCisg ICAgICAgICAgICAnLycgKyBzdHIoc2VydmVyX2lkKSArICcvJyArIHN0cih0YWJsZXNwYWNlX2lk KSwKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZQogICAgICAgICApCi0gICAgICAg IHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCi0gICAgICAgIGRl bGV0ZV9yZXNwb25zZV9kYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRm LTgnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZGVsZXRlX3Jlc3BvbnNlX2RhdGFbJ3N1 Y2Nlc3MnXSwgMSkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5l cXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3Rv X2pzb24ocmVzcG9uc2UpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXko J2luZm8nKSA+IHNob3VsZC5iZS5lcXVhbC50bygKKyAgICAgICAgICAgICdUYWJsZXNwYWNlIGRy b3BwZWQnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdlcnJvcm1z ZycpID4gc2hvdWxkLmJlLmVtcHR5CisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2 ZS5rZXkoJ2RhdGEnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdy ZXN1bHQnKSA+IHNob3VsZC5iZS5ub25lCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQu aGF2ZS5rZXkoJ3N1Y2Nlc3MnKSA+IHNob3VsZC5iZS5lcXVhbC50bygxKQogCiAgICAgZGVmIHRl YXJEb3duKHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZXMgdGhlIHRhYmxl c3BhY2UiIiIKICAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0aW9uKHNl bGYuc2VydmVyWydkYiddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJbJ3VzZXJuYW1lJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2Vz L3Rlc3RzL3Rlc3RfdGJzcGNfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdGVzdF90YnNwY19nZXQucHkKaW5kZXggMjE1 NGU3ZTYuLmY1NzY0NmMyIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90ZXN0cy90ZXN0X3Ric3BjX2dldC5weQorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90ZXN0 cy90ZXN0X3Ric3BjX2dldC5weQpAQCAtOSw1NSArOSw4MCBAQAogCiBpbXBvcnQgdXVpZAogCitp bXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi51 dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscwotZnJvbSBwZ2FkbWluLnV0 aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9y dCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9y dCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24KIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91 dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyB0 YWJsZXNwYWNlX3V0aWxzCiAKIAotY2xhc3MgVGFibGVzcGFjZUdldFRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIHRlc3RzIHRoZSBnZXQgdGFibGUgc3BhY2Ug c2NlbmFyaW8iIiIKK2NsYXNzIFRlc3RUYWJsZXNwYWNlR2V0OgorICAgIGRlZiB0ZXN0X3RhYmxl c3BhY2VfZ2V0KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIK KyAgICAgICAgV2hlbiB0aGUgdGFibGVzcGFjZSBHRVQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBi YWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAg ICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorCisgICAgICAgIGlm IG5vdCBzZWxmLnNlcnZlclsndGFibGVzcGFjZV9wYXRoJ10gXAorICAgICAgICAgICBvciBzZWxm LnNlcnZlclsndGFibGVzcGFjZV9wYXRoJ10gaXMgTm9uZToKKyAgICAgICAgICAgIG1lc3NhZ2Ug PSAnVGFibGVzcGFjZSBnZXQgdGVzdCBjYXNlLiBUYWJsZXNwYWNlIHBhdGgnIFwKKyAgICAgICAg ICAgICAgICAgICAgICAnIG5vdCBjb25maWd1cmVkIGZvciBzZXJ2ZXI6ICVzJyAlIHNlbGYuc2Vy dmVyWyduYW1lJ10KKyAgICAgICAgICAgIHB5dGVzdC5za2lwKG1lc3NhZ2UpCisKKyAgICAgICAg cmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKIAotICAgIHNjZW5hcmlvcyA9IFsK LSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3Igcm9sZXMgbm9kZS4KLSAgICAgICAg KCdDaGVjayBUYWJsZXNwYWNlIE5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIvdGFibGVzcGFjZS9v YmovJykpCi0gICAgXQorICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvdGFibGVzcGFjZS9vYmovJwor ICAgICAgICBodHRwX2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KIAot ICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgaWYgbm90IHNlbGYuc2VydmVyWyd0YWJsZXNw YWNlX3BhdGgnXVwKLSAgICAgICAgICAgICAgICBvciBzZWxmLnNlcnZlclsndGFibGVzcGFjZV9w YXRoJ10gaXMgTm9uZToKLSAgICAgICAgICAgIG1lc3NhZ2UgPSAiVGFibGVzcGFjZSBnZXQgdGVz dCBjYXNlLiBUYWJsZXNwYWNlIHBhdGgiIFwKLSAgICAgICAgICAgICAgICAgICAgICAiIG5vdCBj b25maWd1cmVkIGZvciBzZXJ2ZXI6ICVzIiAlIHNlbGYuc2VydmVyWyduYW1lJ10KLSAgICAgICAg ICAgICMgU2tpcCB0aGUgdGVzdCBjYXNlIGlmIHRhYmxlc3BhY2VfcGF0aCBub3QgZm91bmQuCi0g ICAgICAgICAgICBzZWxmLnNraXBUZXN0KG1lc3NhZ2UpCi0gICAgICAgIHNlbGYudGFibGVzcGFj ZV9uYW1lID0gInRhYmxlc3BhY2VfZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0K LSAgICAgICAgc2VsZi50YWJsZXNwYWNlX2lkID0gdGFibGVzcGFjZV91dGlscy5jcmVhdGVfdGFi bGVzcGFjZSgKLSAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLnRhYmxlc3BhY2VfbmFtZSkK LSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1b InNlcnZlcl9pZCJdCi0gICAgICAgIHRhYmxlc3BhY2VfZGljdCA9IHsidGFibGVzcGFjZV9pZCI6 IHNlbGYudGFibGVzcGFjZV9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0YWJsZXNw YWNlX25hbWUiOiBzZWxmLnRhYmxlc3BhY2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICJzZXJ2ZXJfaWQiOiBzZWxmLnNlcnZlcl9pZH0KLSAgICAgICAgdXRpbHMud3JpdGVfbm9k ZV9pbmZvKCJ0c2lkIiwgdGFibGVzcGFjZV9kaWN0KQorICAgICAgICBzZWxmLnRhYmxlc3BhY2Vf bmFtZSA9ICd0YWJsZXNwYWNlX2RlbGV0ZV8lcycgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisg ICAgICAgIHRhYmxlc3BhY2VfaWQgPSB0YWJsZXNwYWNlX3V0aWxzLmNyZWF0ZV90YWJsZXNwYWNl KAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICBzZWxmLnRhYmxlc3BhY2Vf bmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9u IHRlc3QgdGhlIGdldCB0YWJsZSBzcGFjZSBzY2VuYXJpbyIiIgotICAgICAgICBzZXJ2ZXJfcmVz cG9uc2UgPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQp CisgICAgICAgIHNlcnZlcl9pZCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlv biddWydzZXJ2ZXJfaWQnXQorCisgICAgICAgIHNlcnZlcl9yZXNwb25zZSA9IHNlcnZlcl91dGls cy5jbGllbnRfY29ubmVjdF9zZXJ2ZXIoCisgICAgICAgICAgICBodHRwX2NsaWVudCwKKyAgICAg ICAgICAgIHNlcnZlcl9pZCwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCdd KQogICAgICAgICBpZiBub3Qgc2VydmVyX3Jlc3BvbnNlWydkYXRhJ11bJ2Nvbm5lY3RlZCddOgot ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJVbmFibGUgdG8gY29ubmVjdCBzZXJ2ZXIgdG8g Z2V0IHRhYmxlc3BhY2UuIikKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVW5hYmxlIHRv IGNvbm5lY3Qgc2VydmVyIHRvIGdldCB0YWJsZXNwYWNlLicpCisKKyAgICAgICAgdGFibGVzcGFj ZV9leGlzdHMgPSB0YWJsZXNwYWNlX3V0aWxzLnRhYmxlc3BhY2VfZXhpc3RzKAorICAgICAgICAg ICAgc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICBzZWxmLnRhYmxlc3BhY2VfbmFtZSkKKyAgICAg ICAgaWYgbm90IHRhYmxlc3BhY2VfZXhpc3RzOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCdObyB0YWJsZXNwYWNlKHMpIHRvIHVwZGF0ZSEhIScpCiAKLSAgICAgICAgdGFibGVzcGFjZV9j b3VudCA9IHRhYmxlc3BhY2VfdXRpbHMudmVyaWZ5X3RhYmxlX3NwYWNlKAotICAgICAgICAgICAg c2VsZi5zZXJ2ZXIsIHNlbGYudGFibGVzcGFjZV9uYW1lKQotICAgICAgICBpZiB0YWJsZXNwYWNl X2NvdW50ID09IDA6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5vIHRhYmxlc3BhY2Uo cykgdG8gdXBkYXRlISEhIikKLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCi0g ICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKLSAg ICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi50YWJsZXNwYWNl X2lkKSwKKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2NsaWVudC5nZXQoCisgICAgICAgICAgICB1 cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2Vy dmVyX2lkKSArICcvJyArIHN0cih0YWJsZXNwYWNlX2lkKSwKICAgICAgICAgICAgIGZvbGxvd19y ZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVz X2NvZGUsIDIwMCkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5l cXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3Rv X2pzb24ocmVzcG9uc2UpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXko J3NwY2FjbCcpID4gXAorICAgICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKFtdKQorICAgICAg ICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCduYW1lJykgPiBcCisgICAgICAgICAg ICBzaG91bGQuYmUuZXF1YWwudG8oc2VsZi50YWJsZXNwYWNlX25hbWUpCisgICAgICAgIGpzb25f cmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3NwY29wdGlvbnMnKSA+IFwKKyAgICAgICAgICAg IHNob3VsZC5iZS5ub25lCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXko J29pZCcpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3NwY2xvY2F0 aW9uJykgPiBcCisgICAgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8oc2VsZi5zZXJ2ZXJbJ3Rh Ymxlc3BhY2VfcGF0aCddKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5 KCdhY2wnKSA+IFwKKyAgICAgICAgICAgIHNob3VsZC5iZS5ub25lCisgICAgICAgIGpzb25fcmVz cG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3NwY3VzZXInKSA+IFwKKyAgICAgICAgICAgIHNob3Vs ZC5iZS5lcXVhbC50byhzZWxmLnNlcnZlclsndXNlcm5hbWUnXSkKKyAgICAgICAganNvbl9yZXNw b25zZSB8IHNob3VsZC5oYXZlLmtleSgnc2VjbGFiZWxzJykgPiBcCisgICAgICAgICAgICBzaG91 bGQuYmUubm9uZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdkZXNj cmlwdGlvbicpID4gXAorICAgICAgICAgICAgc2hvdWxkLmJlLm5vbmUKIAogICAgIGRlZiB0ZWFy RG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhlIHRhYmxlc3Bh Y2UgZnJvbSBhZGRlZCBzZXJ2ZXIiIiIKICAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9k Yl9jb25uZWN0aW9uKHNlbGYuc2VydmVyWydkYiddLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3VzZXJuYW1lJ10sCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dv cmQnXSwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3Rlc3RfdGJzcGNfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdGVzdF90YnNwY19w dXQucHkKaW5kZXggZTFjZWUwNGYuLjNiZTA4ZTU5IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90ZXN0cy90ZXN0X3Ric3Bj X3B1dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90 YWJsZXNwYWNlcy90ZXN0cy90ZXN0X3Ric3BjX3B1dC5weQpAQCAtMTAsNTcgKzEwLDcwIEBACiBp bXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNo b3VsZAorCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFz ZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNv bnZlcnRfcmVzcG9uc2VfdG9fanNvbiwgXAorICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jl c3BvbnNlCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVn cmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJv bSAuIGltcG9ydCB1dGlscyBhcyB0YWJsZXNwYWNlX3V0aWxzCiAKIAotY2xhc3MgVGFibGVTcGFj ZVVwZGF0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIGhh cyB1cGRhdGUgdGFibGVzcGFjZSBzY2VuYXJpbyIiIgorY2xhc3MgVGVzdFRhYmxlU3BhY2VVcGRh dGU6CisgICAgZGVmIHRlc3RfdGFibGVzcGFjZV9wdXQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9v Zl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBUYWJsZXNwYWNlIFBVVCBy ZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3Rh dHVzCisgICAgICAgICIiIgorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNb J3NlcnZlciddCisgICAgICAgIHNlcnZlcl9pZCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9p bmZvcm1hdGlvbiddWydzZXJ2ZXJfaWQnXQorICAgICAgICBodHRwX2NsaWVudCA9IGNvbnRleHRf b2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgdXJsID0gJy9icm93c2VyL3RhYmxlc3Bh Y2Uvb2JqLycKKworICAgICAgICBpZiBub3Qgc2VsZi5zZXJ2ZXJbJ3RhYmxlc3BhY2VfcGF0aCdd IFwKKyAgICAgICAgICAgb3Igc2VsZi5zZXJ2ZXJbJ3RhYmxlc3BhY2VfcGF0aCddIGlzIE5vbmU6 CisgICAgICAgICAgICBtZXNzYWdlID0gJ1RhYmxlc3BhY2UgZGVsZXRlIHRlc3QgY2FzZS4gVGFi bGVzcGFjZSBwYXRoJyBcCisgICAgICAgICAgICAgICAgICAgICAgJyBub3QgY29uZmlndXJlZCBm b3Igc2VydmVyOiAlcycgJSBzZWxmLnNlcnZlclsnbmFtZSddCisgICAgICAgICAgICBweXRlc3Qu c2tpcChtZXNzYWdlKQogCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRl ZmF1bHQgVVJMIGZvciByb2xlcyBub2RlLgotICAgICAgICAoJ0NoZWNrIFRhYmxlc3BhY2UgTm9k ZScsIGRpY3QodXJsPScvYnJvd3Nlci90YWJsZXNwYWNlL29iai8nKSkKLSAgICBdCisgICAgICAg IHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCiAKLSAgICBkZWYgc2V0VXAoc2Vs Zik6Ci0gICAgICAgIGlmIG5vdCBzZWxmLnNlcnZlclsndGFibGVzcGFjZV9wYXRoJ11cCi0gICAg ICAgICAgICAgICAgb3Igc2VsZi5zZXJ2ZXJbJ3RhYmxlc3BhY2VfcGF0aCddIGlzIE5vbmU6Ci0g ICAgICAgICAgICBtZXNzYWdlID0gIlRhYmxlc3BhY2UgZGVsZXRlIHRlc3QgY2FzZS4gVGFibGVz cGFjZSBwYXRoIiBcCi0gICAgICAgICAgICAgICAgICAgICAgIiBub3QgY29uZmlndXJlZCBmb3Ig c2VydmVyOiAlcyIgJSBzZWxmLnNlcnZlclsnbmFtZSddCi0gICAgICAgICAgICAjIFNraXAgdGhl IHRlc3QgY2FzZSBpZiB0YWJsZXNwYWNlX3BhdGggbm90IGZvdW5kLgotICAgICAgICAgICAgc2Vs Zi5za2lwVGVzdChtZXNzYWdlKQotICAgICAgICBzZWxmLnRhYmxlc3BhY2VfbmFtZSA9ICJ0YWJs ZXNwYWNlX2RlbGV0ZV8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCi0gICAgICAgIHNlbGYu dGFibGVzcGFjZV9pZCA9IHRhYmxlc3BhY2VfdXRpbHMuY3JlYXRlX3RhYmxlc3BhY2UoCi0gICAg ICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi50YWJsZXNwYWNlX25hbWUpCi0gICAgICAgIHNlbGYu c2VydmVyX2lkID0gcGFyZW50X25vZGVfZGljdFsic2VydmVyIl1bLTFdWyJzZXJ2ZXJfaWQiXQot ICAgICAgICB0YWJsZXNwYWNlX2RpY3QgPSB7InRhYmxlc3BhY2VfaWQiOiBzZWxmLnRhYmxlc3Bh Y2VfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAidGFibGVzcGFjZV9uYW1lIjogc2Vs Zi50YWJsZXNwYWNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAic2VydmVyX2lk Ijogc2VsZi5zZXJ2ZXJfaWR9Ci0gICAgICAgIHV0aWxzLndyaXRlX25vZGVfaW5mbygidHNpZCIs IHRhYmxlc3BhY2VfZGljdCkKKyAgICAgICAgc2VsZi50YWJsZXNwYWNlX25hbWUgPSAndGFibGVz cGFjZV9kZWxldGVfJXMnICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICB0YWJsZXNw YWNlX2lkID0gdGFibGVzcGFjZV91dGlscy5jcmVhdGVfdGFibGVzcGFjZSgKKyAgICAgICAgICAg IHNlbGYuc2VydmVyLAorICAgICAgICAgICAgc2VsZi50YWJsZXNwYWNlX25hbWUpCiAKLSAgICBk ZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB0ZXN0cyB0aGUgdXBk YXRlIHRhYmxlc3BhY2UgZGF0YSBzY2VuYXJpbyIiIgotICAgICAgICB0YWJsZXNwYWNlX2NvdW50 ID0gdGFibGVzcGFjZV91dGlscy52ZXJpZnlfdGFibGVfc3BhY2UoCi0gICAgICAgICAgICBzZWxm LnNlcnZlciwgc2VsZi50YWJsZXNwYWNlX25hbWUpCi0gICAgICAgIGlmIHRhYmxlc3BhY2VfY291 bnQgPT0gMDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8gdGFibGVzcGFjZShzKSB0 byB1cGRhdGUhISEiKQorICAgICAgICB0YWJsZXNwYWNlX2V4aXN0cyA9IHRhYmxlc3BhY2VfdXRp bHMudGFibGVzcGFjZV9leGlzdHMoCisgICAgICAgICAgICBzZWxmLnNlcnZlciwKKyAgICAgICAg ICAgIHNlbGYudGFibGVzcGFjZV9uYW1lKQorICAgICAgICBpZiBub3QgdGFibGVzcGFjZV9leGlz dHM6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ05vIHRhYmxlc3BhY2UocykgdG8gdXBk YXRlISEhJykKIAogICAgICAgICBkYXRhID0gewotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog IlRoaXMgaXMgdGVzdCBkZXNjcmlwdGlvbi4iLAotICAgICAgICAgICAgInRhYmxlX3NwYWNlX2lk Ijogc2VsZi50YWJsZXNwYWNlX2lkCisgICAgICAgICAgICAnZGVzY3JpcHRpb24nOiAnVGhpcyBp cyB0ZXN0IGRlc2NyaXB0aW9uLicsCisgICAgICAgICAgICAndGFibGVfc3BhY2VfaWQnOiB0YWJs ZXNwYWNlX2lkCiAgICAgICAgIH0KLSAgICAgICAgcHV0X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIu cHV0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArCi0g ICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYudGFi bGVzcGFjZV9pZCksCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQucHV0KAorICAgICAg ICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKworICAgICAgICAgICAgJy8nICsg c3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIodGFibGVzcGFjZV9pZCksCiAgICAgICAgICAgICBk YXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUK ICAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwdXRfcmVzcG9uc2Uuc3RhdHVz X2NvZGUsIDIwMCkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5l cXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3Rv X2pzb24ocmVzcG9uc2UpCisgICAgICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNl KAorICAgICAgICAgICAganNvbl9yZXNwb25zZSwKKyAgICAgICAgICAgICd0YWJsZXNwYWNlJywK KyAgICAgICAgICAgICdwZ2FkbWluLm5vZGUudGFibGVzcGFjZScsCisgICAgICAgICAgICBGYWxz ZSwKKyAgICAgICAgICAgICdpY29uLXRhYmxlc3BhY2UnLAorICAgICAgICAgICAgc2VsZi50YWJs ZXNwYWNlX25hbWUKKyAgICAgICAgKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAg ICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZXMgdGhlIHRhYmxlc3BhY2UiIiIKICAgICAgICAgY29u bmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0aW9uKHNlbGYuc2VydmVyWydkYiddLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3Vz ZXJuYW1lJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3V0aWxzLnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMv dXRpbHMucHkKaW5kZXggYmVlMWQ5MWYuLjMwOTNkYTAzIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90ZXN0cy91dGlscy5w eQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNw YWNlcy90ZXN0cy91dGlscy5weQpAQCAtNzQsMTYgKzc0LDcgQEAgZGVmIGNyZWF0ZV90YWJsZXNw YWNlKHNlcnZlciwgdGVzdF90YWJsZXNwYWNlX25hbWUpOgogICAgICAgICByYWlzZSBFeGNlcHRp b24oIkVycm9yIHdoaWxlIGNyZWF0aW5nIHRhYmxlc3BhY2UuICVzIiAlIGV4Y2VwdGlvbikKIAog Ci1kZWYgdmVyaWZ5X3RhYmxlX3NwYWNlKHNlcnZlciwgdGVzdF90YWJsZXNwYWNlX25hbWUpOgot ICAgICIiIgotICAgIFRoaXMgZnVuY3Rpb24gY2FsbHMgdGhlIEdFVCBBUEkgZm9yIHJvbGUgdG8g dmVyaWZ5Ci0gICAgOnBhcmFtIHNlcnZlcjogc2VydmVyIGluZm8KLSAgICA6dHlwZSBzZXJ2ZXI6 IGRpY3QKLSAgICA6cGFyYW0gdGVzdF90YWJsZXNwYWNlX25hbWU6IHRhYmxlc3BhY2UgbmFtZQot ICAgIDp0eXBlIHRlc3RfdGFibGVzcGFjZV9uYW1lOiBzdHIKLSAgICA6cmV0dXJuIHRhYmxlc3Bh Y2VfY291bnQ6IHRhYmxlc3BhY2UgY291bnQKLSAgICA6cnR5cGU6IGludAotICAgICIiIgorZGVm IHRhYmxlc3BhY2VfZXhpc3RzKHNlcnZlciwgdGVzdF90YWJsZXNwYWNlX25hbWUpOgogICAgIHRy eToKICAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0aW9uKHNlcnZlclsn ZGInXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZl clsndXNlcm5hbWUnXSwKQEAgLTk2LDcgKzg3LDcgQEAgZGVmIHZlcmlmeV90YWJsZV9zcGFjZShz ZXJ2ZXIsIHRlc3RfdGFibGVzcGFjZV9uYW1lKToKICAgICAgICAgICAgICAgICAgICAgICAgICAg IiB0cy5zcGNuYW1lPSclcyciICUgdGVzdF90YWJsZXNwYWNlX25hbWUpCiAgICAgICAgIHRhYmxl c3BhY2VfY291bnQgPSBsZW4ocGdfY3Vyc29yLmZldGNoYWxsKCkpCiAgICAgICAgIGNvbm5lY3Rp b24uY2xvc2UoKQotICAgICAgICByZXR1cm4gdGFibGVzcGFjZV9jb3VudAorICAgICAgICByZXR1 cm4gdGFibGVzcGFjZV9jb3VudCA9PSAxCiAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleGNlcHRp b246CiAgICAgICAgIGV4Y2VwdGlvbiA9ICIlczogbGluZTolcyAlcyIgJSAoCiAgICAgICAgICAg ICBmaWxlX25hbWUsIHN5cy5leGNfdHJhY2ViYWNrLnRiX2xpbmVubywgZXhjZXB0aW9uKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMv X19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90 ZXN0cy9fX2luaXRfXy5weQppbmRleCAxYjdhMjQzMi4uNTkwMDI2YWQgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL19faW5pdF9fLnB5 CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL19f aW5pdF9fLnB5CkBAIC02LDEwICs2LDMgQEAKICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1 bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1mcm9t IHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi0KLQotY2xhc3Mg U2VydmVyR2VuZXJhdGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgZGVmIHJ1blRl c3Qoc2VsZik6Ci0gICAgICAgIHJldHVybgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9hZGRfc2VydmVyX3dpdGhfc2Vydmlj ZV9pZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3Rz L3Rlc3RfYWRkX3NlcnZlcl93aXRoX3NlcnZpY2VfaWQucHkKaW5kZXggM2IwM2Q0OTQuLjk2ODJm ZjI2IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy90ZXN0cy90ZXN0X2FkZF9zZXJ2ZXJfd2l0aF9zZXJ2aWNlX2lkLnB5CisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfYWRkX3NlcnZlcl93 aXRoX3NlcnZpY2VfaWQucHkKQEAgLTksMzkgKzksMzUgQEAKIAogaW1wb3J0IGpzb24KIAotZnJv bSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBncmFw cGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1w b3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIAogCi1jbGFzcyBTZXJ2ZXJzV2l0aFNlcnZpY2VJREFk ZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFk ZCB0aGUgc2VydmVycyB1bmRlciBkZWZhdWx0IHNlcnZlciBncm91cC4gIiIiCitjbGFzcyBUZXN0 U2VydmVyc1dpdGhTZXJ2aWNlSURBZGQ6CisgICAgZGVmIHRlc3Rfc2VydmVyX3dpdGhfaWRfYWRk KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAg V2hlbiBzZW5kaW5nIGEgcG9zdCByZXF1ZXN0IHRvIGFkZCBzZXJ2ZXIgd2l0aCBzZXJ2aWNlIGlk CisgICAgICAgIEl0IHJldHVybnMgMjAwIHN0YXR1cyBjb2RlCisgICAgICAgICIiIgogCi0gICAg c2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoIHRoZSBkZWZhdWx0IHVybCBmb3Igc2VydmVy IG9iamVjdAotICAgICAgICAoCi0gICAgICAgICAgICAnRGVmYXVsdCBTZXJ2ZXIgTm9kZSB1cmwn LCBkaWN0KAotICAgICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvc2VydmVyL29iai8nCi0gICAg ICAgICAgICApCi0gICAgICAgICkKLSAgICBdCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVy KHNlbGYudGVhckRvd24pCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHBhc3MKKyAg ICAgICAgdXJsID0gIi9icm93c2VyL3NlcnZlci9vYmovezB9LyIuZm9ybWF0KHV0aWxzLlNFUlZF Ul9HUk9VUCkKKworICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQor ICAgICAgICBzZXJ2ZXJbJ3NlcnZpY2UnXSA9ICJUZXN0REIiCisgICAgICAgIHNlbGYudGVzdGVy ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQogCi0gICAgZGVmIHJ1blRlc3Qoc2Vs Zik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIHRoZSBzZXJ2ZXIgdW5kZXIg ZGVmYXVsdCBzZXJ2ZXIgZ3JvdXAuIiIiCi0gICAgICAgIHVybCA9ICJ7MH17MX0vIi5mb3JtYXQo c2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCkKLSAgICAgICAgIyBBZGQgc2VydmljZSBuYW1l IGluIHRoZSBjb25maWcKLSAgICAgICAgc2VsZi5zZXJ2ZXJbJ3NlcnZpY2UnXSA9ICJUZXN0REIi CiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKICAgICAgICAgICAgIHVybCwK LSAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhzZWxmLnNlcnZlciksCisgICAgICAgICAgICBk YXRhPWpzb24uZHVtcHMoc2VydmVyKSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9q c29uJwogICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1 c19jb2RlLCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuZXF1 YWwoMjAwKQogICAgICAgICByZXNwb25zZV9kYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRh LmRlY29kZSgndXRmLTgnKSkKICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSByZXNwb25zZV9kYXRh Wydub2RlJ11bJ19pZCddCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICIiIlRo aXMgZnVuY3Rpb24gZGVsZXRlIHRoZSBzZXJ2ZXIgZnJvbSBTUUxpdGUgIiIiCiAgICAgICAgIHV0 aWxzLmRlbGV0ZV9zZXJ2ZXJfd2l0aF9hcGkoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkKQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVz dHMvdGVzdF9hZGRfc2VydmVyX3dpdGhfc3NoX3R1bm5lbC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfYWRkX3NlcnZlcl93aXRoX3NzaF90 dW5uZWwucHkKaW5kZXggY2NhOTMyMmIuLjljYzRmNmE0IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2FkZF9zZXJ2ZXJfd2l0 aF9zc2hfdHVubmVsLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3Rlc3RzL3Rlc3RfYWRkX3NlcnZlcl93aXRoX3NzaF90dW5uZWwucHkKQEAgLTksNTQg KzksNzcgQEAKIAogaW1wb3J0IGpzb24KIAotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCitmcm9tIHBn YWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IK IGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1 dGlscwogCiAKLWNsYXNzIFNlcnZlcnNXaXRoU1NIVHVubmVsQWRkVGVzdENhc2UoQmFzZVRlc3RH ZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgYWRkIHRoZSBzZXJ2ZXJzIHVuZGVy IGRlZmF1bHQgc2VydmVyIGdyb3VwLiAiIiIKLQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAg KAotICAgICAgICAgICAgJ0FkZCBzZXJ2ZXIgdXNpbmcgU1NIIHR1bm5lbCB3aXRoIHBhc3N3b3Jk JywgZGljdCgKLSAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL3NlcnZlci9vYmovJywKLSAg ICAgICAgICAgICAgICB3aXRoX3Bhc3N3b3JkPVRydWUKLSAgICAgICAgICAgICkKLSAgICAgICAg KSwKLSAgICAgICAgKAotICAgICAgICAgICAgJ0FkZCBzZXJ2ZXIgdXNpbmcgU1NIIHR1bm5lbCB3 aXRoIGlkZW50aXR5IGZpbGUnLCBkaWN0KAotICAgICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIv c2VydmVyL29iai8nLAotICAgICAgICAgICAgICAgIHdpdGhfcGFzc3dvcmQ9RmFsc2UKLSAgICAg ICAgICAgICkKLSAgICAgICAgKSwKLSAgICBdCi0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAg ICAgIHBhc3MKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5j dGlvbiB3aWxsIGFkZCB0aGUgc2VydmVyIHVuZGVyIGRlZmF1bHQgc2VydmVyIGdyb3VwLiIiIgot ICAgICAgICB1cmwgPSAiezB9ezF9LyIuZm9ybWF0KHNlbGYudXJsLCB1dGlscy5TRVJWRVJfR1JP VVApCi0gICAgICAgICMgQWRkIHNlcnZpY2UgbmFtZSBpbiB0aGUgY29uZmlnCitjbGFzcyBUZXN0 U2VydmVyc1dpdGhTU0hUdW5uZWxBZGQ6CisgICAgZGVmIHRlc3Rfc2VydmVyX3VzaW5nX3R1bm5l bF93aXRoX3Bhc3N3b3JkKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hl biBzZW5kaW5nIGEgcG9zdCByZXF1ZXN0IHRvIGFkZCBzZXJ2ZXIKKyAgICAgICAgdXNpbmcgc3No IHR1bm5lbCB3aXRoIHBhc3N3b3JkCisgICAgICAgIEl0IHJldHVybnMgMjAwIHN0YXR1cyBjb2Rl CisgICAgICAgICIiIgorCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRv d24pCisKKyAgICAgICAgdXJsID0gIi9icm93c2VyL3NlcnZlci9vYmovezB9LyIuZm9ybWF0KHV0 aWxzLlNFUlZFUl9HUk9VUCkKKworICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVz dHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVz dF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlclsndXNlX3NzaF90dW5uZWwnXSA9IDEKKyAg ICAgICAgc2VsZi5zZXJ2ZXJbJ3R1bm5lbF9ob3N0J10gPSAnMTI3LjAuMC4xJworICAgICAgICBz ZWxmLnNlcnZlclsndHVubmVsX3BvcnQnXSA9IDIyCisgICAgICAgIHNlbGYuc2VydmVyWyd0dW5u ZWxfdXNlcm5hbWUnXSA9ICd1c2VyJworICAgICAgICBzZWxmLnNlcnZlclsndHVubmVsX2F1dGhl bnRpY2F0aW9uJ10gPSAwCisKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAor ICAgICAgICAgICAgdXJsLAorICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYuc2VydmVy KSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICApCisKKyAg ICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuZXF1YWwoMjAwKQorCisgICAgICAg IHJlc3BvbnNlX2RhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcp KQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHJlc3BvbnNlX2RhdGFbJ25vZGUnXVsnX2lkJ10K KworICAgIGRlZiB0ZXN0X3NlcnZlcl91c2luZ190dW5uZWxfd2l0aF9pZF9maWxlKHNlbGYsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0X29mX3Rl c3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gc2VuZGluZyBhIHBvc3QgcmVxdWVzdCB0 byBhZGQgc2VydmVyCisgICAgICAgIHVzaW5nIHNzaCB0dW5uZWwgd2l0aCBhbiBpZGVudGl0eSBm aWxlCisgICAgICAgIEl0IHJldHVybnMgMjAwIHN0YXR1cyBjb2RlCisgICAgICAgICIiIgorCisg ICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJs ID0gIi9icm93c2VyL3NlcnZlci9vYmovezB9LyIuZm9ybWF0KHV0aWxzLlNFUlZFUl9HUk9VUCkK KworICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAg ICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQogICAgICAg ICBzZWxmLnNlcnZlclsndXNlX3NzaF90dW5uZWwnXSA9IDEKICAgICAgICAgc2VsZi5zZXJ2ZXJb J3R1bm5lbF9ob3N0J10gPSAnMTI3LjAuMC4xJwogICAgICAgICBzZWxmLnNlcnZlclsndHVubmVs X3BvcnQnXSA9IDIyCiAgICAgICAgIHNlbGYuc2VydmVyWyd0dW5uZWxfdXNlcm5hbWUnXSA9ICd1 c2VyJwotICAgICAgICBpZiBzZWxmLndpdGhfcGFzc3dvcmQ6Ci0gICAgICAgICAgICBzZWxmLnNl cnZlclsndHVubmVsX2F1dGhlbnRpY2F0aW9uJ10gPSAwCi0gICAgICAgIGVsc2U6Ci0gICAgICAg ICAgICBzZWxmLnNlcnZlclsndHVubmVsX2F1dGhlbnRpY2F0aW9uJ10gPSAxCi0gICAgICAgICAg ICBzZWxmLnNlcnZlclsndHVubmVsX2lkZW50aXR5X2ZpbGUnXSA9ICdwa2V5X3JzYScKKyAgICAg ICAgc2VsZi5zZXJ2ZXJbJ3R1bm5lbF9hdXRoZW50aWNhdGlvbiddID0gMQorICAgICAgICBzZWxm LnNlcnZlclsndHVubmVsX2lkZW50aXR5X2ZpbGUnXSA9ICdwa2V5X3JzYScKIAogICAgICAgICBy ZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCiAgICAgICAgICAgICB1cmwsCiAgICAgICAgICAg ICBkYXRhPWpzb24uZHVtcHMoc2VsZi5zZXJ2ZXIpLAogICAgICAgICAgICAgY29udGVudF90eXBl PSdodG1sL2pzb24nCiAgICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9u c2Uuc3RhdHVzX2NvZGUsIDIwMCkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNo b3VsZC5lcXVhbCgyMDApCisKICAgICAgICAgcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVz cG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCiAgICAgICAgIHNlbGYuc2VydmVyX2lkID0gcmVz cG9uc2VfZGF0YVsnbm9kZSddWydfaWQnXQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAg ICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgc2VydmVyIGZyb20gU1FMaXRlICIiIgog ICAgICAgICB1dGlscy5kZWxldGVfc2VydmVyX3dpdGhfYXBpKHNlbGYudGVzdGVyLCBzZWxmLnNl cnZlcl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3Rlc3RzL3Rlc3RfY2hlY2tfcmVjb3ZlcnkucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2NoZWNrX3JlY292ZXJ5LnB5CmluZGV4 IGIzMWZjYzE5Li42MDkzZjQ5MyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9jaGVja19yZWNvdmVyeS5weQorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2NoZWNrX3Jl Y292ZXJ5LnB5CkBAIC0xLDQ3ICsxLDUwIEBACiBpbXBvcnQgb3MKIAotZnJvbSBwZ2FkbWluLnV0 aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uLnB5dGhv bl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzCi0KLQotY2xhc3MgVGVzdENoZWNrUmVjb3Zl cnkoQmFzZVRlc3RHZW5lcmF0b3IpOgotCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoIlRl c3QgZm9yIGNoZWNrIHJlY292ZXJ5IiwgZGljdCgpKQotICAgIF0KLQotICAgIGRlZiBydW5UZXN0 KHNlbGYpOgoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAogCi0gICAg ICAgIGN1cnNvciA9IHRlc3RfdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oc2VsZi5zZXJ2ZXJbJ2Ri J10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJbJ3VzZXJuYW1lJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2hvc3QnXSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsncG9ydCdd LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2Vy dmVyWydzc2xtb2RlJ10pLmN1cnNvcigpCi0KLSAgICAgICAgaWYgY3Vyc29yIGlzIG5vdCBOb25l IGFuZCBjdXJzb3IuY29ubmVjdGlvbiBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlcnZlcl92 ZXJzaW9uID0gY3Vyc29yLmNvbm5lY3Rpb24uc2VydmVyX3ZlcnNpb24KLSAgICAgICAgICAgIGlm IHNlcnZlcl92ZXJzaW9uID49IDEwMDAwMDoKLSAgICAgICAgICAgICAgICB2ZXJzaW9uID0gJzEw X3BsdXMnCi0gICAgICAgICAgICBlbGlmIHNlcnZlcl92ZXJzaW9uID49IDkwMDAwOgotICAgICAg ICAgICAgICAgIHZlcnNpb24gPSAnOS4wX3BsdXMnCi0gICAgICAgICAgICBlbHNlOgotICAgICAg ICAgICAgICAgIHZlcnNpb24gPSAnZGVmYXVsdCcKLQotICAgICAgICAgICAgdGVtcGxhdGVfZmls ZSA9IG9zLnBhdGguam9pbigKLSAgICAgICAgICAgICAgICBvcy5wYXRoLmRpcm5hbWUoX19maWxl X18pLCAiLi4vdGVtcGxhdGVzL2Nvbm5lY3Qvc3FsIiwgdmVyc2lvbiwKLSAgICAgICAgICAgICAg ICAiY2hlY2tfcmVjb3Zlcnkuc3FsIgotICAgICAgICAgICAgKQotCi0gICAgICAgICAgICBjdXJz b3IuZXhlY3V0ZShvcGVuKHRlbXBsYXRlX2ZpbGUsICdyJykucmVhZCgpKQotICAgICAgICAgICAg ZmV0Y2hfcmVzdWx0ID0gY3Vyc29yLmZldGNoYWxsKCkKLQotICAgICAgICAgICAgZmlyc3Rfcm93 ID0ge30KLSAgICAgICAgICAgIGZvciBpbmRleCwgZGVzY3JpcHRpb24gaW4gZW51bWVyYXRlKGN1 cnNvci5kZXNjcmlwdGlvbik6Ci0gICAgICAgICAgICAgICAgZmlyc3Rfcm93W2Rlc2NyaXB0aW9u Lm5hbWVdID0gZmV0Y2hfcmVzdWx0WzBdW2luZGV4XQorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90 ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzCiAKLSAgICAgICAgICAgIGluX3JlY292ZXJ5ID0g Zmlyc3Rfcm93WydpbnJlY292ZXJ5J10KLSAgICAgICAgICAgIHdhbF9wYXVzZWQgPSBmaXJzdF9y b3dbJ2lzcmVwbGF5cGF1c2VkJ10KIAotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGYWxz ZSwgaW5fcmVjb3ZlcnkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZhbHNlLCB3YWxf cGF1c2VkKQorY2xhc3MgVGVzdENoZWNrUmVjb3Zlcnk6CisgICAgZGVmIHRlc3RfY2hlY2tfcmVj b3Zlcnkoc2VsZiwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVu IGxvYWRpbmcgdGhlIGNoZWNrX3JlY292ZXJ5LnNxbAorICAgICAgICBpdCBsb2FkcyBmYWxzZSBm b3IgaW5yZWNvdmVyeSBhbmQgd2FsX3BhdXNlZAorICAgICAgICAiIiIKKworICAgICAgICBzZXJ2 ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorCisgICAgICAgIGN1cnNvciA9IHRlc3Rf dXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oCisgICAgICAgICAgICBzZXJ2ZXJbJ2RiJ10sCisgICAg ICAgICAgICBzZXJ2ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICBzZXJ2ZXJbJ2RiX3Bhc3N3 b3JkJ10sCisgICAgICAgICAgICBzZXJ2ZXJbJ2hvc3QnXSwKKyAgICAgICAgICAgIHNlcnZlclsn cG9ydCddLAorICAgICAgICAgICAgc2VydmVyWydzc2xtb2RlJ10pLmN1cnNvcigpCisKKyAgICAg ICAgaWYgY3Vyc29yIGlzIE5vbmUgb3IgY3Vyc29yLmNvbm5lY3Rpb24gaXMgTm9uZToKKyAgICAg ICAgICAgIHB5dGVzdC5za2lwKCdQcm92aWRlZCBzZXJ2ZXIgZG9lcyBub3QgaGF2ZSBhIGN1cnNv cicpCisKKyAgICAgICAgc2VydmVyX3ZlcnNpb24gPSBjdXJzb3IuY29ubmVjdGlvbi5zZXJ2ZXJf dmVyc2lvbgorICAgICAgICBpZiBzZXJ2ZXJfdmVyc2lvbiA+PSAxMDAwMDA6CisgICAgICAgICAg ICB2ZXJzaW9uID0gJzEwX3BsdXMnCisgICAgICAgIGVsaWYgc2VydmVyX3ZlcnNpb24gPj0gOTAw MDA6CisgICAgICAgICAgICB2ZXJzaW9uID0gJzkuMF9wbHVzJworICAgICAgICBlbHNlOgorICAg ICAgICAgICAgdmVyc2lvbiA9ICdkZWZhdWx0JworCisgICAgICAgIHRlbXBsYXRlX2ZpbGUgPSBv cy5wYXRoLmpvaW4oCisgICAgICAgICAgICBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4v dGVtcGxhdGVzL2Nvbm5lY3Qvc3FsIiwgdmVyc2lvbiwKKyAgICAgICAgICAgICJjaGVja19yZWNv dmVyeS5zcWwiCisgICAgICAgICkKKworICAgICAgICBjdXJzb3IuZXhlY3V0ZShvcGVuKHRlbXBs YXRlX2ZpbGUsICdyJykucmVhZCgpKQorICAgICAgICBmZXRjaF9yZXN1bHQgPSBjdXJzb3IuZmV0 Y2hhbGwoKQorCisgICAgICAgIGZpcnN0X3JvdyA9IHt9CisgICAgICAgIGZvciBpbmRleCwgZGVz Y3JpcHRpb24gaW4gZW51bWVyYXRlKGN1cnNvci5kZXNjcmlwdGlvbik6CisgICAgICAgICAgICBm aXJzdF9yb3dbZGVzY3JpcHRpb24ubmFtZV0gPSBmZXRjaF9yZXN1bHRbMF1baW5kZXhdCisKKyAg ICAgICAgZmlyc3Rfcm93WydpbnJlY292ZXJ5J10gfCBzaG91bGQuYmUuZmFsc2UKKyAgICAgICAg Zmlyc3Rfcm93Wydpc3JlcGxheXBhdXNlZCddIHwgc2hvdWxkLmJlLmZhbHNlCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2No ZWNrX3NzbF9jb25uZWN0aW9uLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvdGVzdHMvdGVzdF9jaGVja19zc2xfY29ubmVjdGlvbi5weQppbmRleCBiY2MzMmEz MS4uMGYxMGNkMmMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfY2hlY2tfc3NsX2Nvbm5lY3Rpb24ucHkKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9jaGVja19zc2xf Y29ubmVjdGlvbi5weQpAQCAtNiwzMyArNiwzMSBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVh c2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitp bXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCiAKLWZyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKIGZyb20gcmVncmVzc2lvbi5weXRo b25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscwogCiAKLWNsYXNzIFRlc3RTU0xDb25uZWN0 aW9uKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIHdpbGwgY2hlY2sgaWYgU1NMIGlz IHVzZWQgaW4gb3VyIGRhdGFiYXNlIGNvbm5lY3Rpb24iIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0g ICAgICAgICgnVGVzdCBmb3IgU1NMIGNvbm5lY3Rpb24nLCBkaWN0KCkpCi0gICAgXQorY2xhc3Mg VGVzdFNTTENvbm5lY3Rpb246CisgICAgZGVmIHRlc3Rfc3NsX2Nvbm5lY3Rpb24oc2VsZiwgY29u dGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBJdCB2ZXJpZmllcyBTU0wgY29u bmVjdGlvbgorICAgICAgICAiIiIKKyAgICAgICAgc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1sn c2VydmVyJ10KIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICBpZiBoYXNhdHRyKHNl bGYsICdpZ25vcmVfdGVzdCcpOgotICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIHN1cHBvcnRl ZF9tb2RlcyA9IFsncmVxdWlyZScsICd2ZXJpZnktY2EnLCAndmVyaWZ5LWZ1bGwnXQotICAgICAg ICBpZiBzZWxmLnNlcnZlclsnc3NsbW9kZSddIGluIHN1cHBvcnRlZF9tb2RlczoKLSAgICAgICAg ICAgIHdpdGggdGVzdF91dGlscy5EYXRhYmFzZShzZWxmLnNlcnZlcikgYXMgKAotICAgICAgICAg ICAgICAgIGNvbm5lY3Rpb24sIGRhdGFiYXNlX25hbWUKLSAgICAgICAgICAgICk6Ci0KLSAgICAg ICAgICAgICAgICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCi0gICAgICAgICAgICAgICAg Y3Vyc29yLmV4ZWN1dGUoIkNSRUFURSBFWFRFTlNJT04gc3NsaW5mbyIpCi0gICAgICAgICAgICAg ICAgY29ubmVjdGlvbi5jb21taXQoKQotICAgICAgICAgICAgICAgIGN1cnNvci5leGVjdXRlKCJT RUxFQ1Qgc3NsX2lzX3VzZWQoKSIpCi0gICAgICAgICAgICAgICAgaXNfc3NsX3VzZWQgPSBjdXJz b3IuZmV0Y2hvbmUoKVswXQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFRydWUs IGlzX3NzbF91c2VkKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgK KyAgICAgICAgaWYgc2VydmVyWydzc2xtb2RlJ10gbm90IGluIHN1cHBvcnRlZF9tb2RlczoKKyAg ICAgICAgICAgIHB5dGVzdC5za2lwKAogICAgICAgICAgICAgICAgICdDYW5ub3QgcnVuIFNTTCBj b25uZWN0aW9uIGNoZWNrIHRlc3QgJwotICAgICAgICAgICAgICAgICd3aXRoIFwnezB9XCcgc3Ns bW9kZScuZm9ybWF0KHNlbGYuc2VydmVyWydzc2xtb2RlJ10pKQorICAgICAgICAgICAgICAgICd3 aXRoIFwnezB9XCcgc3NsbW9kZScuZm9ybWF0KHNlcnZlclsnc3NsbW9kZSddKQorICAgICAgICAg ICAgKQorCisgICAgICAgIHdpdGggdGVzdF91dGlscy5EYXRhYmFzZShzZXJ2ZXIpIGFzICgKKyAg ICAgICAgICAgIGNvbm5lY3Rpb24sIGRhdGFiYXNlX25hbWUKKyAgICAgICAgKToKKyAgICAgICAg ICAgIGN1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICAgICAgICAgIGN1cnNvci5leGVj dXRlKCJDUkVBVEUgRVhURU5TSU9OIHNzbGluZm8iKQorICAgICAgICAgICAgY29ubmVjdGlvbi5j b21taXQoKQorICAgICAgICAgICAgY3Vyc29yLmV4ZWN1dGUoIlNFTEVDVCBzc2xfaXNfdXNlZCgp IikKKyAgICAgICAgICAgIGN1cnNvci5mZXRjaG9uZSgpWzBdIHwgc2hvdWxkLmVxdWFsKCdUcnVl JykKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L3Rlc3RzL3Rlc3RfZGVwZW5kZW5jaWVzX3NxbC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfZGVwZW5kZW5jaWVzX3NxbC5weQppbmRleCA4 MjRmYzQ0MS4uNTljYTE2ZmIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfZGVwZW5kZW5jaWVzX3NxbC5weQorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2RlcGVuZGVu Y2llc19zcWwucHkKQEAgLTksNDYgKzksNTggQEAKIAogaW1wb3J0IG9zCiAKLWZyb20gcmVncmVz c2lvbi5weXRob25fdGVzdF91dGlscy5zcWxfdGVtcGxhdGVfdGVzdF9iYXNlIGltcG9ydCBcCi0g ICAgU1FMVGVtcGxhdGVUZXN0QmFzZQoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0 IHNob3VsZAorCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3Rf dXRpbHMKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscy50ZW1wbGF0ZV9oZWxwZXIg aW1wb3J0IGZpbGVfYXNfdGVtcGxhdGUKIAogCi1jbGFzcyBUZXN0RGVwZW5kZW5jaWVzU3FsKFNR TFRlbXBsYXRlVGVzdEJhc2UpOgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGlu ZyBkZWZhdWx0IFVSTCBmb3Igc2NoZW1hIG5vZGUuCi0gICAgICAgICgnVGVzdCBkZXBlbmRlbmNp ZXMgU1FMIGZpbGUnLCBkaWN0KCkpCi0gICAgXQorQHB5dGVzdC5tYXJrLmRhdGFiYXNlCitjbGFz cyBUZXN0RGVwZW5kZW5jaWVzU3FsOgorICAgIGRlZiB0ZXN0X2RlcGVuZGVuY2llc19zcWwoc2Vs ZiwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIGFsbCBwYXJh bWV0ZXJzIGFyZSBwcmVzZW50CisgICAgICAgIEl0IGNvcnJlY3RseSBnZW5lcmF0ZXMgdGhlIFNR TAorICAgICAgICBBbmQgZXhlY3V0ZXMgYWdhaW5zdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgIiIi CisgICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHdp dGggdGVzdF91dGlscy5EYXRhYmFzZShzZXJ2ZXIpIGFzIChjb25uZWN0aW9uLCBkYXRhYmFzZV9u YW1lKToKKyAgICAgICAgICAgIHRlc3RfdXRpbHMuY3JlYXRlX3RhYmxlKHNlcnZlciwgZGF0YWJh c2VfbmFtZSwgJ3Rlc3RfdGFibGUnKQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAg ICBzdXBlcihUZXN0RGVwZW5kZW5jaWVzU3FsLCBzZWxmKS5fX2luaXRfXygpCi0gICAgICAgIHNl bGYudGFibGVfaWQgPSAtMQorICAgICAgICAgICAgaWYgY29ubmVjdGlvbi5zZXJ2ZXJfdmVyc2lv biA8IDkwMTAwOgorICAgICAgICAgICAgICAgIHZlcnNpb25zX3RvX3Rlc3QgPSBbJ2RlZmF1bHQn XQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB2ZXJzaW9uc190b190ZXN0ID0g Wyc5LjFfcGx1cyddCiAKLSAgICBkZWYgdGVzdF9zZXR1cChzZWxmLCBjb25uZWN0aW9uLCBjdXJz b3IpOgotICAgICAgICBjdXJzb3IuZXhlY3V0ZSgiU0VMRUNUIHBnX2NsYXNzLm9pZCBBUyB0YWJs ZV9pZCAiCi0gICAgICAgICAgICAgICAgICAgICAgICJGUk9NIHBnX2NsYXNzICIKLSAgICAgICAg ICAgICAgICAgICAgICAgIldIRVJFIHBnX2NsYXNzLnJlbG5hbWU9J3Rlc3RfdGFibGUnIikKLSAg ICAgICAgc2VsZi50YWJsZV9pZCA9IGN1cnNvci5mZXRjaG9uZSgpWzBdCisgICAgICAgICAgICBj dXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgICAgICBjdXJzb3IuZXhlY3V0ZSgi U0VMRUNUIHBnX2NsYXNzLm9pZCBBUyB0YWJsZV9pZCAiCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAiRlJPTSBwZ19jbGFzcyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiV0hFUkUg cGdfY2xhc3MucmVsbmFtZT0ndGVzdF90YWJsZSciKQorICAgICAgICAgICAgdGFibGVfaWQgPSBj dXJzb3IuZmV0Y2hvbmUoKVswXQogCi0gICAgZGVmIGdlbmVyYXRlX3NxbChzZWxmLCB2ZXJzaW9u KToKLSAgICAgICAgdGVtcGxhdGVfZmlsZSA9IHNlbGYuZ2V0X3RlbXBsYXRlX2ZpbGUodmVyc2lv biwgImRlcGVuZGVuY2llcy5zcWwiKQotICAgICAgICB0ZW1wbGF0ZSA9IGZpbGVfYXNfdGVtcGxh dGUodGVtcGxhdGVfZmlsZSkKLSAgICAgICAgc3FsID0gdGVtcGxhdGUucmVuZGVyKAotICAgICAg ICAgICAgd2hlcmVfY2xhdXNlPSJXSEVSRSBkZXAub2JqaWQ9JXM6Om9pZCIgJSBzZWxmLnRhYmxl X2lkKQorICAgICAgICAgICAgZm9yIHZlcnNpb24gaW4gdmVyc2lvbnNfdG9fdGVzdDoKKyAgICAg ICAgICAgICAgICB0ZW1wbGF0ZV9maWxlID0gc2VsZi5nZXRfdGVtcGxhdGVfZmlsZSgKKyAgICAg ICAgICAgICAgICAgICAgdmVyc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgJ2RlcGVuZGVuY2ll cy5zcWwnKQorICAgICAgICAgICAgICAgIHRlbXBsYXRlID0gZmlsZV9hc190ZW1wbGF0ZSh0ZW1w bGF0ZV9maWxlKQorICAgICAgICAgICAgICAgIHNxbCA9IHRlbXBsYXRlLnJlbmRlcigKKyAgICAg ICAgICAgICAgICAgICAgd2hlcmVfY2xhdXNlPSJXSEVSRSBkZXAub2JqaWQ9JXM6Om9pZCIgJSB0 YWJsZV9pZCkKIAotICAgICAgICByZXR1cm4gc3FsCisgICAgICAgICAgICAgICAgY3Vyc29yID0g Y29ubmVjdGlvbi5jdXJzb3IoKQorICAgICAgICAgICAgICAgIGN1cnNvci5leGVjdXRlKHNxbCkK KyAgICAgICAgICAgICAgICBmZXRjaF9yZXN1bHQgPSBjdXJzb3IuZmV0Y2hhbGwoKQogCi0gICAg ZGVmIGFzc2VydGlvbnMoc2VsZiwgZmV0Y2hfcmVzdWx0LCBkZXNjcmlwdGlvbnMpOgotICAgICAg ICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihmZXRjaF9yZXN1bHQpKQorICAgICAgICAgICAgICAg IGZldGNoX3Jlc3VsdCB8IHNob3VsZC5oYXZlLmxlbmd0aCgxKQogCi0gICAgICAgIGZpcnN0X3Jv dyA9IHt9Ci0gICAgICAgIGZvciBpbmRleCwgZGVzY3JpcHRpb24gaW4gZW51bWVyYXRlKGRlc2Ny aXB0aW9ucyk6Ci0gICAgICAgICAgICBmaXJzdF9yb3dbZGVzY3JpcHRpb24ubmFtZV0gPSBmZXRj aF9yZXN1bHRbMF1baW5kZXhdCisgICAgICAgICAgICAgICAgZmlyc3Rfcm93ID0ge30KKyAgICAg ICAgICAgICAgICBmb3IgaW5kZXgsIGRlc2NyaXB0aW9uIGluIGVudW1lcmF0ZShjdXJzb3IuZGVz Y3JpcHRpb24pOgorICAgICAgICAgICAgICAgICAgICBmaXJzdF9yb3dbZGVzY3JpcHRpb24ubmFt ZV0gPSBmZXRjaF9yZXN1bHRbMF1baW5kZXhdCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn bicsIGZpcnN0X3Jvd1siZGVwdHlwZSJdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwdWJs aWMnLCBmaXJzdF9yb3dbInJlZm5hbWUiXSkKKyAgICAgICAgICAgICAgICBmaXJzdF9yb3dbJ2Rl cHR5cGUnXSB8IHNob3VsZC5iZS5lcXVhbC50bygnbicpCisgICAgICAgICAgICAgICAgZmlyc3Rf cm93WydyZWZuYW1lJ10gfCBzaG91bGQuYmUuZXF1YWwudG8oJ3B1YmxpYycpCiAKICAgICBAc3Rh dGljbWV0aG9kCiAgICAgZGVmIGdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24sIGZpbGVuYW1lKToK LSAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAi Li4iLCAidGVtcGxhdGVzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVwZW5kcyIs ICJzcWwiLCB2ZXJzaW9uLCBmaWxlbmFtZSkKKyAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihv cy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAnLi4nLCAndGVtcGxhdGVzJywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnZGVwZW5kcycsICdzcWwnLCB2ZXJzaW9uLCBmaWxlbmFtZSkKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3Rz L3Rlc3RfZGVwZW5kZW50c19zcWwucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy90ZXN0cy90ZXN0X2RlcGVuZGVudHNfc3FsLnB5CmluZGV4IDlkNjI1OWY1Li4w Y2I3OGZlMCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGVzdHMvdGVzdF9kZXBlbmRlbnRzX3NxbC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2RlcGVuZGVudHNfc3FsLnB5CkBA IC05LDQ0ICs5LDU2IEBACiAKIGltcG9ydCBvcwogCi1mcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rl c3RfdXRpbHMuc3FsX3RlbXBsYXRlX3Rlc3RfYmFzZSBpbXBvcnQgXAotICAgIFNRTFRlbXBsYXRl VGVzdEJhc2UKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKworZnJv bSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzCiBmcm9tIHJl Z3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMudGVtcGxhdGVfaGVscGVyIGltcG9ydCBmaWxlX2Fz X3RlbXBsYXRlCiAKIAotY2xhc3MgVGVzdERlcGVuZGVudHNTcWwoU1FMVGVtcGxhdGVUZXN0QmFz ZSk6Ci0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZv ciBzY2hlbWEgbm9kZS4KLSAgICAgICAgKCdUZXN0IGRlcGVuZGVuY2llcyBTUUwgZmlsZScsIGRp Y3QoKSkKLSAgICBdCitAcHl0ZXN0Lm1hcmsuZGF0YWJhc2UKK2NsYXNzIFRlc3REZXBlbmRlbnRz U3FsOgorICAgIGRlZiB0ZXN0X2NvbHVtbl9hY2xfc3FsKHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMp OgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBhbGwgcGFyYW1ldGVycyBhcmUgcHJlc2VudAor ICAgICAgICBJdCBjb3JyZWN0bHkgZ2VuZXJhdGVzIHRoZSBTUUwKKyAgICAgICAgQW5kIGV4ZWN1 dGVzIGFnYWluc3QgdGhlIGRhdGFiYXNlCisgICAgICAgICIiIgorICAgICAgICBzZXJ2ZXIgPSBj b250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICB3aXRoIHRlc3RfdXRpbHMuRGF0YWJh c2Uoc2VydmVyKSBhcyAoY29ubmVjdGlvbiwgZGF0YWJhc2VfbmFtZSk6CisgICAgICAgICAgICB0 ZXN0X3V0aWxzLmNyZWF0ZV90YWJsZShzZXJ2ZXIsIGRhdGFiYXNlX25hbWUsICd0ZXN0X3RhYmxl JykKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc3VwZXIoVGVzdERlcGVuZGVu dHNTcWwsIHNlbGYpLl9faW5pdF9fKCkKLSAgICAgICAgc2VsZi50YWJsZV9pZCA9IC0xCisgICAg ICAgICAgICBpZiBjb25uZWN0aW9uLnNlcnZlcl92ZXJzaW9uIDwgOTAxMDA6CisgICAgICAgICAg ICAgICAgdmVyc2lvbnNfdG9fdGVzdCA9IFsnZGVmYXVsdCddCisgICAgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgICAgIHZlcnNpb25zX3RvX3Rlc3QgPSBbJzkuMV9wbHVzJ10KIAotICAgIGRl ZiB0ZXN0X3NldHVwKHNlbGYsIGNvbm5lY3Rpb24sIGN1cnNvcik6Ci0gICAgICAgIGN1cnNvci5l eGVjdXRlKCJTRUxFQ1QgcGdfY2xhc3Mub2lkIEFTIHRhYmxlX2lkICIKLSAgICAgICAgICAgICAg ICAgICAgICAgIkZST00gcGdfY2xhc3MgIgotICAgICAgICAgICAgICAgICAgICAgICAiV0hFUkUg cGdfY2xhc3MucmVsbmFtZT0ndGVzdF90YWJsZSciKQotICAgICAgICBzZWxmLnRhYmxlX2lkID0g Y3Vyc29yLmZldGNob25lKClbMF0KKyAgICAgICAgICAgIGN1cnNvciA9IGNvbm5lY3Rpb24uY3Vy c29yKCkKKyAgICAgICAgICAgIGN1cnNvci5leGVjdXRlKCJTRUxFQ1QgcGdfY2xhc3Mub2lkIEFT IHRhYmxlX2lkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJGUk9NIHBnX2NsYXNzICIK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICJXSEVSRSBwZ19jbGFzcy5yZWxuYW1lPSd0ZXN0 X3RhYmxlJyIpCisgICAgICAgICAgICB0YWJsZV9pZCA9IGN1cnNvci5mZXRjaG9uZSgpWzBdCiAK LSAgICBkZWYgZ2VuZXJhdGVfc3FsKHNlbGYsIHZlcnNpb24pOgotICAgICAgICB0ZW1wbGF0ZV9m aWxlID0gc2VsZi5nZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCAiZGVwZW5kZW50cy5zcWwiKQot ICAgICAgICB0ZW1wbGF0ZSA9IGZpbGVfYXNfdGVtcGxhdGUodGVtcGxhdGVfZmlsZSkKLSAgICAg ICAgc3FsID0gdGVtcGxhdGUucmVuZGVyKAotICAgICAgICAgICAgd2hlcmVfY2xhdXNlPSJXSEVS RSBkZXAub2JqaWQ9JXM6Om9pZCIgJSBzZWxmLnRhYmxlX2lkKQorICAgICAgICAgICAgZm9yIHZl cnNpb24gaW4gdmVyc2lvbnNfdG9fdGVzdDoKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9maWxl ID0gc2VsZi5nZXRfdGVtcGxhdGVfZmlsZSgKKyAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiwK KyAgICAgICAgICAgICAgICAgICAgJ2RlcGVuZGVudHMuc3FsJykKKyAgICAgICAgICAgICAgICB0 ZW1wbGF0ZSA9IGZpbGVfYXNfdGVtcGxhdGUodGVtcGxhdGVfZmlsZSkKKyAgICAgICAgICAgICAg ICBzcWwgPSB0ZW1wbGF0ZS5yZW5kZXIoCisgICAgICAgICAgICAgICAgICAgIHdoZXJlX2NsYXVz ZT0iV0hFUkUgZGVwLm9iamlkPSVzOjpvaWQiICUgdGFibGVfaWQpCiAKLSAgICAgICAgcmV0dXJu IHNxbAorICAgICAgICAgICAgICAgIGN1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICAg ICAgICAgICAgICBjdXJzb3IuZXhlY3V0ZShzcWwpCisgICAgICAgICAgICAgICAgZmV0Y2hfcmVz dWx0ID0gY3Vyc29yLmZldGNoYWxsKCkKIAotICAgIGRlZiBhc3NlcnRpb25zKHNlbGYsIGZldGNo X3Jlc3VsdCwgZGVzY3JpcHRpb25zKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4o ZmV0Y2hfcmVzdWx0KSkKKyAgICAgICAgICAgICAgICBmZXRjaF9yZXN1bHQgfCBzaG91bGQuaGF2 ZS5sZW5ndGgoMSkKIAotICAgICAgICBmaXJzdF9yb3cgPSB7fQotICAgICAgICBmb3IgaW5kZXgs IGRlc2NyaXB0aW9uIGluIGVudW1lcmF0ZShkZXNjcmlwdGlvbnMpOgotICAgICAgICAgICAgZmly c3Rfcm93W2Rlc2NyaXB0aW9uLm5hbWVdID0gZmV0Y2hfcmVzdWx0WzBdW2luZGV4XQorICAgICAg ICAgICAgICAgIGZpcnN0X3JvdyA9IHt9CisgICAgICAgICAgICAgICAgZm9yIGluZGV4LCBkZXNj cmlwdGlvbiBpbiBlbnVtZXJhdGUoY3Vyc29yLmRlc2NyaXB0aW9uKToKKyAgICAgICAgICAgICAg ICAgICAgZmlyc3Rfcm93W2Rlc2NyaXB0aW9uLm5hbWVdID0gZmV0Y2hfcmVzdWx0WzBdW2luZGV4 XQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ24nLCBmaXJzdF9yb3dbImRlcHR5cGUiXSkK LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgndGVzdF90YWJsZScsIGZpcnN0X3Jvd1sicmVmbmFt ZSJdKQorICAgICAgICAgICAgICAgIGZpcnN0X3Jvd1snZGVwdHlwZSddIHwgc2hvdWxkLmJlLmVx dWFsLnRvKCduJykKKyAgICAgICAgICAgICAgICBmaXJzdF9yb3dbJ3JlZm5hbWUnXSB8IHNob3Vs ZC5iZS5lcXVhbC50bygndGVzdF90YWJsZScpCiAKICAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVm IGdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24sIGZpbGVuYW1lKToKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfcm9sZV9kZXBl bmRlbmNpZXNfc3FsLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvdGVzdHMvdGVzdF9yb2xlX2RlcGVuZGVuY2llc19zcWwucHkKaW5kZXggOWVmZTRkNmEuLmE5 ZGI3NTZmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy90ZXN0cy90ZXN0X3JvbGVfZGVwZW5kZW5jaWVzX3NxbC5weQorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3JvbGVfZGVwZW5kZW5j aWVzX3NxbC5weQpAQCAtOCwyMyArOCwyMyBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIGltcG9ydCBv cwogCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitm cm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91 dGlscyBpbXBvcnQgdGVzdF91dGlscwogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxz LnRlbXBsYXRlX2hlbHBlciBpbXBvcnQgZmlsZV9hc190ZW1wbGF0ZQogCiAKLWNsYXNzIFRlc3RS b2xlRGVwZW5kZW5jaWVzU3FsKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICBzY2VuYXJpb3MgPSBb Ci0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHNjaGVtYSBub2RlLgotICAgICAg ICAoJ1Rlc3QgUm9sZSBEZXBlbmRlbmNpZXMgU1FMIGZpbGUnLCBkaWN0KCkpCi0gICAgXQorY2xh c3MgVGVzdFJvbGVEZXBlbmRlbmNpZXNTcWw6CisgICAgZGVmIHRlc3Rfcm9sZV9kZXBlbmRlbmNp ZXMoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAg ICBJdCB2ZXJpZmllcyB0aGUgcm9sZSBkZXBlbmRlbmNpZXMgc3FsIGZpbGUKKyAgICAgICAgIiIi CisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCiAKLSAgICBkZWYg X19pbml0X18oc2VsZik6Ci0gICAgICAgIHN1cGVyKFRlc3RSb2xlRGVwZW5kZW5jaWVzU3FsLCBz ZWxmKS5fX2luaXRfXygpCi0gICAgICAgIHNlbGYudGFibGVfaWQgPSAtMQorICAgICAgICBzZWxm LnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCiAKLSAgICBkZWYgc2V0VXAoc2Vs Zik6Ci0gICAgICAgIHdpdGggdGVzdF91dGlscy5EYXRhYmFzZShzZWxmLnNlcnZlcikgYXMgKGNv bm5lY3Rpb24sIGRhdGFiYXNlX25hbWUpOgorICAgICAgICB3aXRoIHRlc3RfdXRpbHMuRGF0YWJh c2Uoc2VsZi5zZXJ2ZXIpIFwKKyAgICAgICAgICAgICAgICBhcyAoY29ubmVjdGlvbiwgZGF0YWJh c2VfbmFtZSk6CiAgICAgICAgICAgICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCiAgICAg ICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgY3Vyc29yLmV4ZWN1dGUoCkBAIC0zNCw1MyAr MzQsNDggQEAgY2xhc3MgVGVzdFJvbGVEZXBlbmRlbmNpZXNTcWwoQmFzZVRlc3RHZW5lcmF0b3Ip OgogICAgICAgICAgICAgICAgIHByaW50KGV4Y2VwdGlvbikKICAgICAgICAgICAgIGNvbm5lY3Rp b24uY29tbWl0KCkKIAotICAgICAgICBzZWxmLnNlcnZlcl93aXRoX21vZGlmaWVkX3VzZXIgPSBz ZWxmLnNlcnZlci5jb3B5KCkKLSAgICAgICAgc2VsZi5zZXJ2ZXJfd2l0aF9tb2RpZmllZF91c2Vy Wyd1c2VybmFtZSddID0gInRlc3RwZ2FkbWluIgorICAgICAgICBzZXJ2ZXJfd2l0aF9tb2RpZmll ZF91c2VyID0gc2VsZi5zZXJ2ZXIuY29weSgpCisgICAgICAgIHNlcnZlcl93aXRoX21vZGlmaWVk X3VzZXJbJ3VzZXJuYW1lJ10gPSAidGVzdHBnYWRtaW4iCiAKLSAgICBkZWYgcnVuVGVzdChzZWxm KToKLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAiaWdub3JlX3Rlc3QiKToKLSAgICAgICAgICAg IHJldHVybgotCi0gICAgICAgIHdpdGggdGVzdF91dGlscy5EYXRhYmFzZShzZWxmLnNlcnZlcikg YXMgKGNvbm5lY3Rpb24sIGRhdGFiYXNlX25hbWUpOgotICAgICAgICAgICAgdGVzdF91dGlscy5j cmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXJfd2l0aF9tb2RpZmllZF91c2VyLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YWJhc2VfbmFtZSwgInRlc3RfbmV3X3JvbGVfdGFi bGUiKQorICAgICAgICB3aXRoIHRlc3RfdXRpbHMuRGF0YWJhc2Uoc2VsZi5zZXJ2ZXIpIFwKKyAg ICAgICAgICAgICAgICBhcyAoY29ubmVjdGlvbiwgZGF0YWJhc2VfbmFtZSk6CisgICAgICAgICAg ICB0ZXN0X3V0aWxzLmNyZWF0ZV90YWJsZSgKKyAgICAgICAgICAgICAgICBzZXJ2ZXJfd2l0aF9t b2RpZmllZF91c2VyLAorICAgICAgICAgICAgICAgIGRhdGFiYXNlX25hbWUsCisgICAgICAgICAg ICAgICAgInRlc3RfbmV3X3JvbGVfdGFibGUiCisgICAgICAgICAgICApCiAgICAgICAgICAgICBj dXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCiAgICAgICAgICAgICBjdXJzb3IuZXhlY3V0ZSgi U0VMRUNUIHBnX2NsYXNzLm9pZCBBUyB0YWJsZV9pZCAiCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiRlJPTSBwZ19jbGFzcyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiV0hFUkUg cGdfY2xhc3MucmVsbmFtZT0ndGVzdF9uZXdfcm9sZV90YWJsZSciKQotICAgICAgICAgICAgc2Vs Zi50YWJsZV9pZCA9IGN1cnNvci5mZXRjaG9uZSgpWzBdCisgICAgICAgICAgICB0YWJsZV9pZCA9 IGN1cnNvci5mZXRjaG9uZSgpWzBdCisKKyAgICAgICAgICAgIHRlbXBsYXRlX2ZpbGUgPSBvcy5w YXRoLmpvaW4oCisgICAgICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwKKyAg ICAgICAgICAgICAgICAiLi4iLAorICAgICAgICAgICAgICAgICJ0ZW1wbGF0ZXMiLAorICAgICAg ICAgICAgICAgICJkZXBlbmRzIiwKKyAgICAgICAgICAgICAgICAic3FsIiwKKyAgICAgICAgICAg ICAgICAnZGVmYXVsdCcsCisgICAgICAgICAgICAgICAgJ3JvbGVfZGVwZW5kZW5jaWVzLnNxbCcp CisgICAgICAgICAgICB0ZW1wbGF0ZSA9IGZpbGVfYXNfdGVtcGxhdGUodGVtcGxhdGVfZmlsZSkK KyAgICAgICAgICAgIHNxbCA9IHRlbXBsYXRlLnJlbmRlcigKKyAgICAgICAgICAgICAgICB3aGVy ZV9jbGF1c2U9IldIRVJFIGRlcC5vYmppZD0lczo6b2lkIiAlIHRhYmxlX2lkKQogCi0gICAgICAg ICAgICBzcWwgPSBzZWxmLmdlbmVyYXRlX3NxbCgnZGVmYXVsdCcpCiAgICAgICAgICAgICBjdXJz b3IuZXhlY3V0ZShzcWwpCiAKICAgICAgICAgICAgIGZldGNoX3Jlc3VsdCA9IGN1cnNvci5mZXRj aGFsbCgpCi0gICAgICAgICAgICBzZWxmLmFzc2VydGlvbnMoZmV0Y2hfcmVzdWx0LCBjdXJzb3Iu ZGVzY3JpcHRpb24pCisKKyAgICAgICAgICAgIGZldGNoX3Jlc3VsdCB8IHNob3VsZC5oYXZlLmxl bmd0aC5vZigxKQorCisgICAgICAgICAgICBmaXJzdF9yb3cgPSB7fQorICAgICAgICAgICAgZm9y IGluZGV4LCBkZXNjcmlwdGlvbiBpbiBlbnVtZXJhdGUoY3Vyc29yLmRlc2NyaXB0aW9uKToKKyAg ICAgICAgICAgICAgICBmaXJzdF9yb3dbZGVzY3JpcHRpb24ubmFtZV0gPSBmZXRjaF9yZXN1bHRb MF1baW5kZXhdCisKKyAgICAgICAgICAgIGZpcnN0X3Jvd1snZGVwdHlwZSddIHwgc2hvdWxkLmVx dWFsKCdvJykKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICAgd2l0aCB0ZXN0X3V0 aWxzLkRhdGFiYXNlKHNlbGYuc2VydmVyKSBhcyAoY29ubmVjdGlvbiwgZGF0YWJhc2VfbmFtZSk6 CiAgICAgICAgICAgICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCiAgICAgICAgICAgICBj dXJzb3IuZXhlY3V0ZSgiRFJPUCBST0xFIHRlc3RwZ2FkbWluIikKICAgICAgICAgICAgIGNvbm5l Y3Rpb24uY29tbWl0KCkKLQotICAgIGRlZiBnZW5lcmF0ZV9zcWwoc2VsZiwgdmVyc2lvbik6Ci0g ICAgICAgIHRlbXBsYXRlX2ZpbGUgPSBzZWxmLmdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24sCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyb2xlX2RlcGVu ZGVuY2llcy5zcWwiKQotICAgICAgICB0ZW1wbGF0ZSA9IGZpbGVfYXNfdGVtcGxhdGUodGVtcGxh dGVfZmlsZSkKLSAgICAgICAgc3FsID0gdGVtcGxhdGUucmVuZGVyKAotICAgICAgICAgICAgd2hl cmVfY2xhdXNlPSJXSEVSRSBkZXAub2JqaWQ9JXM6Om9pZCIgJSBzZWxmLnRhYmxlX2lkKQotCi0g ICAgICAgIHJldHVybiBzcWwKLQotICAgIGRlZiBhc3NlcnRpb25zKHNlbGYsIGZldGNoX3Jlc3Vs dCwgZGVzY3JpcHRpb25zKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4oZmV0Y2hf cmVzdWx0KSkKLQotICAgICAgICBmaXJzdF9yb3cgPSB7fQotICAgICAgICBmb3IgaW5kZXgsIGRl c2NyaXB0aW9uIGluIGVudW1lcmF0ZShkZXNjcmlwdGlvbnMpOgotICAgICAgICAgICAgZmlyc3Rf cm93W2Rlc2NyaXB0aW9uLm5hbWVdID0gZmV0Y2hfcmVzdWx0WzBdW2luZGV4XQotCi0gICAgICAg IHNlbGYuYXNzZXJ0RXF1YWwoJ28nLCBmaXJzdF9yb3dbImRlcHR5cGUiXSkKLQotICAgIEBzdGF0 aWNtZXRob2QKLSAgICBkZWYgZ2V0X3RlbXBsYXRlX2ZpbGUodmVyc2lvbiwgZmlsZW5hbWUpOgot ICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICIu LiIsICJ0ZW1wbGF0ZXMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXBlbmRzIiwg InNxbCIsIHZlcnNpb24sIGZpbGVuYW1lKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfYWRkLnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfYWRk LnB5CmluZGV4IDVhZDA0Njk0Li4xNWZlNzJiOSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfYWRkLnB5CisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2Vy dmVyX2FkZC5weQpAQCAtOSwzMiArOSwzNCBAQAogCiBpbXBvcnQganNvbgogCi1mcm9tIHBnYWRt aW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIGdyYXBwYSBpbXBv cnQgc2hvdWxkCisKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGlt cG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiAKIAotY2xhc3MgU2VydmVyc0FkZFRlc3RDYXNlKEJh c2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCB0aGUgc2VydmVy cyB1bmRlciBkZWZhdWx0IHNlcnZlciBncm91cC4gIiIiCitjbGFzcyBUZXN0U2VydmVyc0FkZDoK KyAgICBkZWYgdGVzdF9zZXJ2ZXJfYWRkKHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMp OgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBzZW5kaW5nIHBvc3QgcmVxdWVzdCB0byBzZXJ2 ZXIgdXJsCisgICAgICAgIEl0IHJldHVybnMgMjAwIHN0YXR1cyBjb2RlCisgICAgICAgICIiIgor CisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCiAKLSAgICBzY2Vu YXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2ggdGhlIGRlZmF1bHQgdXJsIGZvciBzZXJ2ZXIgb2Jq ZWN0Ci0gICAgICAgICgnRGVmYXVsdCBTZXJ2ZXIgTm9kZSB1cmwnLCBkaWN0KHVybD0nL2Jyb3dz ZXIvc2VydmVyL29iai8nKSkKLSAgICBdCisgICAgICAgIHVybCA9ICIvYnJvd3Nlci9zZXJ2ZXIv b2JqL3swfS8iLmZvcm1hdCh1dGlscy5TRVJWRVJfR1JPVVApCiAKLSAgICBkZWYgc2V0VXAoc2Vs Zik6Ci0gICAgICAgIHBhc3MKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3Rz Wyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZl ciddCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24g d2lsbCBhZGQgdGhlIHNlcnZlciB1bmRlciBkZWZhdWx0IHNlcnZlciBncm91cC4iIiIKLSAgICAg ICAgdXJsID0gInswfXsxfS8iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dST1VQKQot ICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QodXJsLCBkYXRhPWpzb24uZHVtcHMo c2VsZi5zZXJ2ZXIpLAorICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QodXJsLCBk YXRhPWpzb24uZHVtcHMoc2VydmVyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo cmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUg fCBzaG91bGQuZXF1YWwoMjAwKQorCiAgICAgICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxvYWRz KHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQogICAgICAgICBzZWxmLnNlcnZlcl9pZCA9 IHJlc3BvbnNlX2RhdGFbJ25vZGUnXVsnX2lkJ10KICAgICAgICAgc2VydmVyX2RpY3QgPSB7InNl cnZlcl9pZCI6IGludChzZWxmLnNlcnZlcl9pZCl9CiAgICAgICAgIHV0aWxzLndyaXRlX25vZGVf aW5mbygic2lkIiwgc2VydmVyX2RpY3QpCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAg ICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlIHRoZSBzZXJ2ZXIgZnJvbSBTUUxpdGUgIiIiCiAg ICAgICAgIHV0aWxzLmRlbGV0ZV9zZXJ2ZXJfd2l0aF9hcGkoc2VsZi50ZXN0ZXIsIHNlbGYuc2Vy dmVyX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfZGVsZXRlLnB5CmluZGV4IDY0 ZDA2OWNkLi43ZWM4MTEzYSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2RlbGV0 ZS5weQpAQCAtNiwzNCArNiwzNSBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVy IHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitmcm9tIGdyYXBw YSBpbXBvcnQgc2hvdWxkCiAKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRl c3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGlt cG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiAKIAotY2xhc3MgU2VydmVyRGVsZXRlVGVzdENhc2Uo QmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgZGVsZXRlIHRoZSBs YXN0IHNlcnZlciBwcmVzZW50IHVuZGVyIHRyZWUgbm9kZS4iIiIKK2NsYXNzIFRlc3RTZXJ2ZXJE ZWxldGU6CisgICAgZGVmIHRlc3Rfc2VydmVyX2RlbGV0ZShzZWxmLCByZXF1ZXN0LCBjb250ZXh0 X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gc2VuZGluZyBkZWxldGUgcmVx dWVzdCB0byBzZXJ2ZXIgdXJsCisgICAgICAgIEl0IHJldHVybnMgMjAwIHN0YXR1cyBjb2RlCisg ICAgICAgICIiIgogCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIHRoZSBk ZWZhdWx0IHVybCBmb3Igc2VydmVyIG5vZGUKLSAgICAgICAgKCdEZWZhdWx0IFNlcnZlciBOb2Rl IHVybCcsIGRpY3QodXJsPScvYnJvd3Nlci9zZXJ2ZXIvb2JqLycpKQotICAgIF0KKyAgICAgICAg cmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKIAotICAgIGRlZiBzZXRVcChzZWxm KToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBhZGQgdGhlIHNlcnZlciB0byB0ZXN0IHRoZSBE RUxFVEUgQVBJIiIiCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gdXRpbHMuY3JlYXRlX3NlcnZl cihzZWxmLnNlcnZlcikKLSAgICAgICAgc2VydmVyX2RpY3QgPSB7InNlcnZlcl9pZCI6IHNlbGYu c2VydmVyX2lkfQotICAgICAgICB1dGlscy53cml0ZV9ub2RlX2luZm8oInNpZCIsIHNlcnZlcl9k aWN0KQorICAgICAgICB1cmwgPSAiL2Jyb3dzZXIvc2VydmVyL29iai97MH0vIi5mb3JtYXQodXRp bHMuU0VSVkVSX0dST1VQKQorCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Nl cnZlciddCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gdXRpbHMuY3JlYXRlX3NlcnZlcihzZXJ2 ZXIpCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQn XQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVs ZXRlcyB0aGUgYWRkZWQgc2VydmVyIiIiCi0gICAgICAgIHVybCA9IHNlbGYudXJsICsgc3RyKHV0 aWxzLlNFUlZFUl9HUk9VUCkgKyAiLyIKICAgICAgICAgaWYgbm90IHNlbGYuc2VydmVyX2lkOgog ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyBzZXJ2ZXIgdG8gZGVsZXRlISEhIikKLSAg ICAgICAgIyBDYWxsIEFQSSB0byBkZWxldGUgdGhlIHNlcnZlcnMKKworICAgICAgICBzZXJ2ZXJf ZGljdCA9IHsic2VydmVyX2lkIjogc2VsZi5zZXJ2ZXJfaWR9CisgICAgICAgIHV0aWxzLndyaXRl X25vZGVfaW5mbygic2lkIiwgc2VydmVyX2RpY3QpCisKICAgICAgICAgcmVzcG9uc2UgPSBzZWxm LnRlc3Rlci5kZWxldGUodXJsICsgc3RyKHNlbGYuc2VydmVyX2lkKSkKLSAgICAgICAgc2VsZi5h c3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgcmVzcG9uc2Uu c3RhdHVzX2NvZGUgfCBzaG91bGQuZXF1YWwoMjAwKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYp OgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgc2VydmVyIGZyb20gU1FMaXRl ICIiIgogICAgICAgICB1dGlscy5kZWxldGVfc2VydmVyX3dpdGhfYXBpKHNlbGYudGVzdGVyLCBz ZWxmLnNlcnZlcl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2dldC5weQppbmRleCA0 ODg3ZTMzYy4uYzQ2NDI1ODEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2dldC5weQorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9nZXQucHkK QEAgLTcsMzggKzcsMzYgQEAKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKLWZyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBv cnQgcGFyZW50X25vZGVfZGljdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHJl Z3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIAog Ci1jbGFzcyBTZXJ2ZXJzR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIgot ICAgIFRoaXMgY2xhc3Mgd2lsbCBmZXRjaCBhZGRlZCBzZXJ2ZXJzIHVuZGVyIGRlZmF1bHQgc2Vy dmVyIGdyb3VwCi0gICAgYnkgcmVzcG9uc2UgY29kZS4KLSAgICAiIiIKK2NsYXNzIFRlc3RTZXJ2 ZXJzR2V0OgorICAgIGRlZiB0ZXN0X3NlcnZlcl9nZXQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9v Zl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHNlbmRpbmcgZ2V0IHJlcXVlc3Qg dG8gc2VydmVyIHVybAorICAgICAgICBJdCByZXR1cm5zIDIwMCBzdGF0dXMgY29kZQorICAgICAg ICAiIiIKKworICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQorCisg ICAgICAgIHVybCA9ICcvYnJvd3Nlci9zZXJ2ZXIvb2JqLycKIAotICAgIHNjZW5hcmlvcyA9IFsK LSAgICAgICAgIyBGZXRjaCB0aGUgZGVmYXVsdCB1cmwgZm9yIHNlcnZlciBub2RlCi0gICAgICAg ICgnRGVmYXVsdCBTZXJ2ZXIgTm9kZSB1cmwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvc2VydmVyL29i ai8nKSkKLSAgICBdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gdXRpbHMuY3JlYXRlX3NlcnZl cihjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXSkKKyAgICAgICAgaWYgbm90IHNlbGYuc2VydmVy X2lkOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJTZXJ2ZXIgbm90IGZvdW5kIHRvIHRl c3QgR0VUIEFQSSIpCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVu Y3Rpb24gYWRkIHRoZSBzZXJ2ZXIgdG8gdGVzdCB0aGUgR0VUIEFQSSIiIgotICAgICAgICBzZWxm LnNlcnZlcl9pZCA9IHV0aWxzLmNyZWF0ZV9zZXJ2ZXIoc2VsZi5zZXJ2ZXIpCiAgICAgICAgIHNl cnZlcl9kaWN0ID0geyJzZXJ2ZXJfaWQiOiBzZWxmLnNlcnZlcl9pZH0KICAgICAgICAgdXRpbHMu d3JpdGVfbm9kZV9pbmZvKCJzaWQiLCBzZXJ2ZXJfZGljdCkKKyAgICAgICAgc2VsZi50ZXN0ZXIg PSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCiAKLSAgICBkZWYgcnVuVGVzdChzZWxm KToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCB0aGUgYWRkZWQgc2VydmVy cyB0byBvYmplY3QgYnJvd3Nlci4gIiIiCi0gICAgICAgIHNlcnZlcl9pZCA9IHBhcmVudF9ub2Rl X2RpY3RbInNlcnZlciJdWy0xXVsic2VydmVyX2lkIl0KLSAgICAgICAgaWYgbm90IHNlcnZlcl9p ZDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiU2VydmVyIG5vdCBmb3VuZCB0byB0ZXN0 IEdFVCBBUEkiKQotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldChzZWxmLnVybCAr IHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo cmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5nZXQoCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyAr CisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpLAorICAgICAgICAgICAgZm9sbG93X3Jl ZGlyZWN0cz1UcnVlKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJl LmVxdWFsLnRvKDIwMCkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiVGhp cyBmdW5jdGlvbiBkZWxldGUgdGhlIHNlcnZlciBmcm9tIFNRTGl0ZSAiIiIKICAgICAgICAgdXRp bHMuZGVsZXRlX3NlcnZlcl93aXRoX2FwaShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQpCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0 cy90ZXN0X3NlcnZlcl9wdXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9wdXQucHkKaW5kZXggMzAzZDE0ZTEuLmUzZmUyYzg1 IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90 ZXN0cy90ZXN0X3NlcnZlcl9wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfcHV0LnB5CkBAIC05LDM1ICs5LDQzIEBA CiAKIGltcG9ydCBqc29uCiAKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRl c3RHZW5lcmF0b3IKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSByZWdyZXNzaW9u LnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiAKIAotY2xhc3Mg U2VydmVyVXBkYXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNs YXNzIHdpbGwgdXBkYXRlIHNlcnZlcidzIGNvbW1lbnQgZmllbGQuICIiIgorY2xhc3MgVGVzdFNl cnZlcnNQdXQ6CisgICAgZGVmIHRlc3Rfc2VydmVyX3B1dChzZWxmLCByZXF1ZXN0LCBjb250ZXh0 X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gc2VuZGluZyBwdXQgcmVxdWVz dCB0byBzZXJ2ZXIgdXJsCisgICAgICAgIEl0IHJldHVybnMgMjAwIHN0YXR1cyBjb2RlCisgICAg ICAgICIiIgorCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCiAK LSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgdGhlIGRlZmF1bHQgdXJsIGZv ciBzZXJ2ZXIgbm9kZQotICAgICAgICAoJ0RlZmF1bHQgU2VydmVyIE5vZGUgdXJsJywgZGljdCh1 cmw9Jy9icm93c2VyL3NlcnZlci9vYmovJykpCi0gICAgXQorICAgICAgICB1cmwgPSAnL2Jyb3dz ZXIvc2VydmVyL29iai8nCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZl ciddCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gdXRpbHMuY3JlYXRlX3NlcnZlcihzZXJ2ZXIp CisgICAgICAgIGlmIG5vdCBzZWxmLnNlcnZlcl9pZDoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbigiU2VydmVyIG5vdCBmb3VuZCB0byB0ZXN0IEdFVCBBUEkiKQogCi0gICAgZGVmIHNldFVw KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGFkZCB0aGUgc2VydmVyIHRvIHRlc3Qg dGhlIFBVVCBBUEkiIiIKLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSB1dGlscy5jcmVhdGVfc2Vy dmVyKHNlbGYuc2VydmVyKQorICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNb J3Rlc3RfY2xpZW50J10KICAgICAgICAgc2VydmVyX2RpY3QgPSB7InNlcnZlcl9pZCI6IHNlbGYu c2VydmVyX2lkfQogICAgICAgICB1dGlscy53cml0ZV9ub2RlX2luZm8oInNpZCIsIHNlcnZlcl9k aWN0KQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24g dXBkYXRlIHRoZSBzZXJ2ZXIgZGV0YWlscyIiIgotICAgICAgICBpZiBub3Qgc2VsZi5zZXJ2ZXJf aWQ6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5vIHNlcnZlciB0byB1cGRhdGUuIikK LSAgICAgICAgZGF0YSA9IHsiY29tbWVudCI6IHNlbGYuc2VydmVyWydjb21tZW50J10sICJpZCI6 IHNlbGYuc2VydmVyX2lkfQotICAgICAgICBwdXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQo Ci0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsK LSAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCksIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwK LSAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5hc3Nl cnRFcXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIGRhdGEgPSB7 CisgICAgICAgICAgICAiY29tbWVudCI6IHNlcnZlclsnY29tbWVudCddLAorICAgICAgICAgICAg ImlkIjogc2VsZi5zZXJ2ZXJfaWQKKyAgICAgICAgfQorCisgICAgICAgIHJlc3BvbnNlID0gc2Vs Zi50ZXN0ZXIucHV0KAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkg KyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSwKKyAgICAgICAgICAgIGRh dGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29u JworICAgICAgICApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUu ZXF1YWwudG8oMjAwKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJUaGlz IGZ1bmN0aW9uIGRlbGV0ZSB0aGUgc2VydmVyIGZyb20gU1FMaXRlIiIiCiAgICAgICAgIHV0aWxz LmRlbGV0ZV9zZXJ2ZXJfd2l0aF9hcGkoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Rlc3RzL19faW5pdF9f LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Rlc3RzL19faW5pdF9fLnB5 CmluZGV4IDIxYjAyY2FkLi41OTAwMjZhZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy90ZXN0cy9fX2luaXRfXy5weQpAQCAtNiwxMCArNiwzIEBACiAjIFRo aXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQogIwog IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKLQotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNl VGVzdEdlbmVyYXRvcgotCi0KLWNsYXNzIFNHR2VuZXJhdGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVy YXRvcik6Ci0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgIHJldHVybgpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Rlc3RzL3Rlc3Rfc2dfZ2V0LnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Rlc3RzL3Rlc3Rfc2dfZ2V0LnB5 CmluZGV4IGRlZjc1YTdiLi5hNDliODdiNSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3Rlc3RzL3Rlc3Rfc2dfZ2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy90ZXN0cy90ZXN0X3NnX2dldC5weQpAQCAtOSwyNiArOSwyNSBA QAogCiBpbXBvcnQganNvbgogCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24udGVzdF9zZXR1cCBpbXBvcnQgY29uZmlnX2Rh dGEKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKIAorZnJvbSByZWdyZXNzaW9uLnRlc3Rfc2V0 dXAgaW1wb3J0IGNvbmZpZ19kYXRhCiAKLWNsYXNzIFNnTm9kZVRlc3RDYXNlKEJhc2VUZXN0R2Vu ZXJhdG9yKToKLSAgICAiIiIKLSAgICAgVGhpcyBjbGFzcyB3aWxsIGNoZWNrIGF2YWlsYWJsZSBz ZXJ2ZXIgZ3JvdXBzIGluIHBnQWRtaW4uCi0gICAgIiIiCiAKLSAgICBzY2VuYXJpb3MgPSBbCi0g ICAgICAgICMgRmV0Y2hpbmcgdGhlIGRlZmF1bHQgdXJsIGZvciBzZXJ2ZXIgZ3JvdXAgbm9kZQot ICAgICAgICAoJ0NoZWNrIFNlcnZlciBHcm91cCBOb2RlJywgZGljdCh1cmw9Jy9icm93c2VyL3Nl cnZlcl9ncm91cC9vYmovJykpCi0gICAgXQorY2xhc3MgVGVzdFNlcnZlckdyb3VwTm9kZToKKyAg ICBkZWYgdGVzdF9zZXJ2ZXJfZ3JvdXBfbm9kZShzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAg ICAgICAgIiIiCisgICAgICAgIFdoZW4gYSBnZXQgcmVxdWVzdCBpcyBtYWRlIHRvIHRoZSBzZXJ2 ZXIgZ3JvdXAgZW5kcG9pbnQKKyAgICAgICAgSXQgcmV0dXJucyBzdGF0dXMgMjAwIGFuZCB0aGUg c2VydmVyIGdyb3VwCisgICAgICAgICIiIgogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAg ICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBjaGVjayBhdmFpbGFibGUgc2VydmVyIGdyb3Vwcy4i IiIKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3NlcnZlcl9ncm91cC9vYmovJworICAgICAgICBo dHRwX2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KIAogICAgICAgICBz ZXJ2ZXJfZ3JvdXBfaWQgPSBjb25maWdfZGF0YVsnc2VydmVyX2dyb3VwJ10KLSAgICAgICAgcmVz cG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoc2VsZi51cmwgKyBzdHIoc2VydmVyX2dyb3VwX2lkKSwK KyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2NsaWVudC5nZXQodXJsICsgc3RyKHNlcnZlcl9ncm91 cF9pZCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0n aHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3BvbnNlLnN0YXR1c19jb2Rl LCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuZXF1YWwoMjAw KQogICAgICAgICByZXNwb25zZV9kYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29k ZSgndXRmOCcpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmVzcG9uc2VfZGF0YVsnaWQnXSwg c2VydmVyX2dyb3VwX2lkKQorICAgICAgICByZXNwb25zZV9kYXRhWydpZCddIHwgc2hvdWxkLmVx dWFsKHNlcnZlcl9ncm91cF9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVz dHMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL19faW5pdF9fLnB5Cmlu ZGV4IDdjZTUzMTMxLi41OTAwMjZhZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90 ZXN0cy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL19faW5pdF9f LnB5CkBAIC02LDEwICs2LDMgQEAKICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0 aGUgUG9zdGdyZVNRTCBMaWNlbmNlCiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1mcm9tIHBnYWRt aW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi0KLQotY2xhc3MgQnJvd3Nl ckdlbmVyYXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgIGRlZiBydW5UZXN0KHNl bGYpOgotICAgICAgICByZXR1cm4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVz dHMvdGVzdF9jaGFuZ2VfcGFzc3dvcmQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rl c3RfY2hhbmdlX3Bhc3N3b3JkLnB5CmluZGV4IDViMzM3ZGI3Li4zZmVmMjQ0NiAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2NoYW5nZV9wYXNzd29yZC5weQorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfY2hhbmdlX3Bhc3N3b3JkLnB5CkBAIC0x MCwxMjUgKzEwLDE3MSBAQAogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKLWZyb20gcGdhZG1p bi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2ltcG9ydCBweXRlc3QKK2Zy b20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0 aWxzIGltcG9ydCB0ZXN0X3V0aWxzCiBmcm9tIHJlZ3Jlc3Npb24udGVzdF9zZXR1cCBpbXBvcnQg Y29uZmlnX2RhdGEKLWZyb20gLiBpbXBvcnQgdXRpbHMKIAogCi1jbGFzcyBDaGFuZ2VQYXNzd29y ZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIKLSAgICBUaGlzIGNsYXNzIHZh bGlkYXRlcyB0aGUgY2hhbmdlIHBhc3N3b3JkIGZ1bmN0aW9uYWxpdHkKLSAgICBieSBkZWZpbmlu ZyBjaGFuZ2UgcGFzc3dvcmQgc2NlbmFyaW9zOyB3aGVyZSBkaWN0IG9mCi0gICAgcGFyYW1ldGVy cyBkZXNjcmliZXMgdGhlIHNjZW5hcmlvIGFwcGVuZGVkIGJ5IHRlc3QgbmFtZS4KLSAgICAiIiIK K0BweXRlc3QubWFyay5za2lwX2lmX25vdF9pbl9zZXJ2ZXJfbW9kZQorY2xhc3MgVGVzdENoYW5n ZVBhc3N3b3JkKG9iamVjdCk6CisgICAgZGVmIHRlc3RfaW5jb3JyZWN0X3Bhc3N3b3JkKHNlbGYs IHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0 cnlpbmcgdG8gY2hhbmdlIHRoZSBwYXNzd29yZAorICAgICAgICBBbmQgdGhlIGNvbmZpcm1hdGlv biBwYXNzd29yZCBkb2VzIG5vdCBtYXRjaAorICAgICAgICBJdCByZXR1cm5zICJQYXNzd29yZHMg ZG8gbm90IG1hdGNoIiBlcnJvcgorICAgICAgICAiIiIKKyAgICAgICAgaHR0cF9jbGllbnQgPSBj b250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxp emVyKGxhbWJkYTogdGVzdF91dGlscworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubG9n aW5fdGVzdGVyX2FjY291bnQoaHR0cF9jbGllbnQpKQogCi0gICAgc2NlbmFyaW9zID0gWwotICAg ICAgICAjIFRoaXMgdGVzdGNhc2UgdmFsaWRhdGVzIGludmFsaWQgY29uZmlybWF0aW9uIHBhc3N3 b3JkCi0gICAgICAgICgnVGVzdENhc2UgZm9yIFZhbGlkYXRpbmcgSW5jb3JyZWN0X05ld19QYXNz d29yZCcsIGRpY3QoCi0gICAgICAgICAgICBwYXNzd29yZD0oCi0gICAgICAgICAgICAgICAgY29u ZmlnX2RhdGFbJ3BnQWRtaW40X2xvZ2luX2NyZWRlbnRpYWxzJ10KLSAgICAgICAgICAgICAgICBb J2xvZ2luX3Bhc3N3b3JkJ10pLAotICAgICAgICAgICAgbmV3X3Bhc3N3b3JkPSgKLSAgICAgICAg ICAgICAgICBjb25maWdfZGF0YVsncGdBZG1pbjRfbG9naW5fY3JlZGVudGlhbHMnXQotICAgICAg ICAgICAgICAgIFsnbmV3X3Bhc3N3b3JkJ10pLAotICAgICAgICAgICAgbmV3X3Bhc3N3b3JkX2Nv bmZpcm09c3RyKHV1aWQudXVpZDQoKSlbNDo4XSwKLSAgICAgICAgICAgIHJlc3BkYXRhPSdQYXNz d29yZHMgZG8gbm90IG1hdGNoJykpLAorICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LnBv c3QoCisgICAgICAgICAgICAnL2Jyb3dzZXIvY2hhbmdlX3Bhc3N3b3JkJywKKyAgICAgICAgICAg IGRhdGE9ZGljdCgKKyAgICAgICAgICAgICAgICBwYXNzd29yZD1jb25maWdfZGF0YVsncGdBZG1p bjRfbG9naW5fY3JlZGVudGlhbHMnXQorICAgICAgICAgICAgICAgIFsnbG9naW5fcGFzc3dvcmQn XSwKKyAgICAgICAgICAgICAgICBuZXdfcGFzc3dvcmQ9c3RyKHV1aWQudXVpZDQoKSlbNDo4XSwK KyAgICAgICAgICAgICAgICBuZXdfcGFzc3dvcmRfY29uZmlybT1zdHIodXVpZC51dWlkNCgpKVs0 OjhdCisgICAgICAgICAgICApLAorICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlCisg ICAgICAgICkKKyAgICAgICAgcmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykgfCBzaG91bGQu Y29udGFpbigKKyAgICAgICAgICAgICdQYXNzd29yZHMgZG8gbm90IG1hdGNoJykKIAotICAgICAg ICAjIFRoaXMgdGVzdGNhc2UgdmFsaWRhdGVzIGlmIGNvbmZpcm1hdGlvbiBwYXNzd29yZCBpcyBs ZXNzIHRoYW4KLSAgICAgICAgIyBtaW5pbXVtIGxlbmd0aAotICAgICAgICAoJ1Rlc3RDYXNlIGZv ciBWYWxpZGF0aW5nIE5ld19QYXNzd29yZF9MZXNzX1RoYW5fTWluX0xlbmd0aCcsCi0gICAgICAg ICBkaWN0KHBhc3N3b3JkPSgKLSAgICAgICAgICAgICBjb25maWdfZGF0YVsncGdBZG1pbjRfbG9n aW5fY3JlZGVudGlhbHMnXQotICAgICAgICAgICAgIFsnbG9naW5fcGFzc3dvcmQnXSksCi0gICAg ICAgICAgICAgbmV3X3Bhc3N3b3JkPXN0cih1dWlkLnV1aWQ0KCkpWzQ6OF0sCi0gICAgICAgICAg ICAgbmV3X3Bhc3N3b3JkX2NvbmZpcm09c3RyKHV1aWQudXVpZDQoKSlbNDo4XSwKLSAgICAgICAg ICAgICByZXNwZGF0YT0nUGFzc3dvcmQgbXVzdCBiZSBhdCBsZWFzdCA2IGNoYXJhY3RlcnMnKSks CisgICAgZGVmIHRlc3RfbWluaW11bV9sZW5ndGgoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90 ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRyeWluZyB0byBjaGFuZ2UgdGhlIHBh c3N3b3JkCisgICAgICAgIEFuZCBoYXMgbGVzcyB0aGVuIDYgY2hhcmFjdGVycworICAgICAgICBJ dCByZXR1cm5zICJQYXNzd29yZCBub3QgcHJvdmlkZWQiIGVycm9yCisgICAgICAgICIiIgorICAg ICAgICBodHRwX2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAg ICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRhOiB0ZXN0X3V0aWxzCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC5sb2dpbl90ZXN0ZXJfYWNjb3VudChodHRwX2NsaWVudCkpCiAKLSAg ICAgICAgIyBUaGlzIHRlc3RjYXNlIHZhbGlkYXRlcyBpZiBib3RoIHBhc3N3b3JkIGZpZWxkcyBh cmUgbGVmdCBibGFuawotICAgICAgICAoJ1Rlc3RDYXNlIGZvciBWYWxpZGF0aW5nIEVtcHR5X05l d19QYXNzd29yZCcsIGRpY3QoCi0gICAgICAgICAgICBwYXNzd29yZD0oCi0gICAgICAgICAgICAg ICAgY29uZmlnX2RhdGFbJ3BnQWRtaW40X2xvZ2luX2NyZWRlbnRpYWxzJ10KLSAgICAgICAgICAg ICAgICBbJ2xvZ2luX3Bhc3N3b3JkJ10pLAotICAgICAgICAgICAgbmV3X3Bhc3N3b3JkPScnLCBu ZXdfcGFzc3dvcmRfY29uZmlybT0nJywKLSAgICAgICAgICAgIHJlc3BkYXRhPSdQYXNzd29yZCBu b3QgcHJvdmlkZWQnKSksCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQucG9zdCgKKyAg ICAgICAgICAgICcvYnJvd3Nlci9jaGFuZ2VfcGFzc3dvcmQnLAorICAgICAgICAgICAgZGF0YT1k aWN0KAorICAgICAgICAgICAgICAgIHBhc3N3b3JkPWNvbmZpZ19kYXRhWydwZ0FkbWluNF9sb2dp bl9jcmVkZW50aWFscyddCisgICAgICAgICAgICAgICAgWydsb2dpbl9wYXNzd29yZCddLAorICAg ICAgICAgICAgICAgIG5ld19wYXNzd29yZD0ncGdhZG0nLAorICAgICAgICAgICAgICAgIG5ld19w YXNzd29yZF9jb25maXJtPSdwZ2FkbScKKyAgICAgICAgICAgICksCisgICAgICAgICAgICBmb2xs b3dfcmVkaXJlY3RzPVRydWUKKyAgICAgICAgKQorICAgICAgICByZXNwb25zZS5kYXRhLmRlY29k ZSgndXRmLTgnKSB8IHNob3VsZC5jb250YWluKAorICAgICAgICAgICAgJ1Bhc3N3b3JkIG11c3Qg YmUgYXQgbGVhc3QgNiBjaGFyYWN0ZXJzJykKIAotICAgICAgICAjIFRoaXMgdGVzdGNhc2UgdmFs aWRhdGVzIGlmIGN1cnJlbnQgZW50ZXJlZCBwYXNzd29yZCBpcyBpbmNvcnJlY3QKLSAgICAgICAg KCdUZXN0Q2FzZSBmb3IgVmFsaWRhdGluZyBJbmNvcnJlY3RfQ3VycmVudF9QYXNzd29yZCcsIGRp Y3QoCi0gICAgICAgICAgICBwYXNzd29yZD1zdHIodXVpZC51dWlkNCgpKVs0OjhdLAotICAgICAg ICAgICAgbmV3X3Bhc3N3b3JkPSgKLSAgICAgICAgICAgICAgICBjb25maWdfZGF0YVsncGdBZG1p bjRfbG9naW5fY3JlZGVudGlhbHMnXQotICAgICAgICAgICAgICAgIFsnbmV3X3Bhc3N3b3JkJ10p LAotICAgICAgICAgICAgbmV3X3Bhc3N3b3JkX2NvbmZpcm09KAotICAgICAgICAgICAgICAgIGNv bmZpZ19kYXRhWydwZ0FkbWluNF9sb2dpbl9jcmVkZW50aWFscyddCi0gICAgICAgICAgICAgICAg WyduZXdfcGFzc3dvcmQnXSksCi0gICAgICAgICAgICByZXNwZGF0YT0nSW52YWxpZCBwYXNzd29y ZCcpKSwKKyAgICBkZWYgdGVzdF9ub19uZXdfcGFzc3dvcmRfcHJvdmlkZWQoc2VsZiwgcmVxdWVz dCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRyeWluZyB0 byBjaGFuZ2UgdGhlIHBhc3N3b3JkCisgICAgICAgIEFuZCBwYXNzd29yZCBhbmQgY29uZmlybWF0 aW9uIHBhc3N3b3JkIGFyZSBlbXB0eQorICAgICAgICBJdCByZXR1cm5zICJQYXNzd29yZCBub3Qg cHJvdmlkZWQiIGVycm9yCisgICAgICAgICIiIgorICAgICAgICBodHRwX2NsaWVudCA9IGNvbnRl eHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIo bGFtYmRhOiB0ZXN0X3V0aWxzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5sb2dpbl90 ZXN0ZXJfYWNjb3VudChodHRwX2NsaWVudCkpCiAKLSAgICAgICAgIyBUaGlzIHRlc3QgY2FzZSBj aGVja3MgZm9yIHZhbGlkIHBhc3N3b3JkCi0gICAgICAgICgnVGVzdENhc2UgZm9yIENoYW5naW5n IFZhbGlkX1Bhc3N3b3JkJywgZGljdCgKLSAgICAgICAgICAgIHZhbGlkX3Bhc3N3b3JkPSdyZWFz c2lnbmluZ19wYXNzd29yZCcsCi0gICAgICAgICAgICB1c2VybmFtZT0oCi0gICAgICAgICAgICAg ICAgY29uZmlnX2RhdGFbJ3BnQWRtaW40X3Rlc3RfdXNlcl9jcmVkZW50aWFscyddCi0gICAgICAg ICAgICAgICAgWydsb2dpbl91c2VybmFtZSddKSwKLSAgICAgICAgICAgIHBhc3N3b3JkPSgKLSAg ICAgICAgICAgICAgICBjb25maWdfZGF0YVsncGdBZG1pbjRfdGVzdF91c2VyX2NyZWRlbnRpYWxz J10KLSAgICAgICAgICAgICAgICBbJ2xvZ2luX3Bhc3N3b3JkJ10pLAotICAgICAgICAgICAgbmV3 X3Bhc3N3b3JkPSgKLSAgICAgICAgICAgICAgICBjb25maWdfZGF0YVsncGdBZG1pbjRfdGVzdF91 c2VyX2NyZWRlbnRpYWxzJ10KLSAgICAgICAgICAgICAgICBbJ25ld19wYXNzd29yZCddKSwKLSAg ICAgICAgICAgIG5ld19wYXNzd29yZF9jb25maXJtPSgKLSAgICAgICAgICAgICAgICBjb25maWdf ZGF0YVsncGdBZG1pbjRfdGVzdF91c2VyX2NyZWRlbnRpYWxzJ10KLSAgICAgICAgICAgICAgICBb J25ld19wYXNzd29yZCddKSwKLSAgICAgICAgICAgIHJlc3BkYXRhPSdZb3Ugc3VjY2Vzc2Z1bGx5 IGNoYW5nZWQgeW91ciBwYXNzd29yZC4nKSkKLSAgICBdCisgICAgICAgIHJlc3BvbnNlID0gaHR0 cF9jbGllbnQucG9zdCgKKyAgICAgICAgICAgICcvYnJvd3Nlci9jaGFuZ2VfcGFzc3dvcmQnLAor ICAgICAgICAgICAgZGF0YT1kaWN0KAorICAgICAgICAgICAgICAgIHBhc3N3b3JkPWNvbmZpZ19k YXRhWydwZ0FkbWluNF9sb2dpbl9jcmVkZW50aWFscyddCisgICAgICAgICAgICAgICAgWydsb2dp bl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgIG5ld19wYXNzd29yZD0nJywKKyAgICAgICAg ICAgICAgICBuZXdfcGFzc3dvcmRfY29uZmlybT0nJworICAgICAgICAgICAgKSwKKyAgICAgICAg ICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZQorICAgICAgICApCisgICAgICAgIHJlc3BvbnNlLmRh dGEuZGVjb2RlKCd1dGYtOCcpIHwgc2hvdWxkLmNvbnRhaW4oCisgICAgICAgICAgICAnUGFzc3dv cmQgbm90IHByb3ZpZGVkJykKIAotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBzZXRVcENsYXNz KGNscyk6Ci0gICAgICAgIHBhc3MKKyAgICBkZWYgdGVzdF9jdXJyZW50X3Bhc3N3b3JkX2lzX2lu Y29ycmVjdChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisg ICAgICAgIFdoZW4gdHJ5aW5nIHRvIGNoYW5nZSB0aGUgcGFzc3dvcmQKKyAgICAgICAgQW5kIGN1 cnJlbnQgcGFzc3dvcmQgcHJvdmlkZWQgaXMgbm90IGNvcnJlY3QKKyAgICAgICAgSXQgcmV0dXJu cyAiSW52YWxpZCBwYXNzd29yZCIgZXJyb3IKKyAgICAgICAgIiIiCisgICAgICAgIGh0dHBfY2xp ZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICByZXF1ZXN0LmFk ZGZpbmFsaXplcihsYW1iZGE6IHRlc3RfdXRpbHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLmxvZ2luX3Rlc3Rlcl9hY2NvdW50KGh0dHBfY2xpZW50KSkKIAotICAgIGRlZiBydW5UZXN0 KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgY2hlY2sgY2hhbmdlIHBhc3N3 b3JkIGZ1bmN0aW9uYWxpdHkuIiIiCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQucG9z dCgKKyAgICAgICAgICAgICcvYnJvd3Nlci9jaGFuZ2VfcGFzc3dvcmQnLAorICAgICAgICAgICAg ZGF0YT1kaWN0KAorICAgICAgICAgICAgICAgIHBhc3N3b3JkPXN0cih1dWlkLnV1aWQ0KCkpWzQ6 OF0sCisgICAgICAgICAgICAgICAgbmV3X3Bhc3N3b3JkPSdhc2RmYXNkZicsCisgICAgICAgICAg ICAgICAgbmV3X3Bhc3N3b3JkX2NvbmZpcm09J2FzZGZhc2RmJworICAgICAgICAgICAgKSwKKyAg ICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZQorICAgICAgICApCisgICAgICAgIHJlc3Bv bnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpIHwgc2hvdWxkLmNvbnRhaW4oCisgICAgICAgICAgICAn SW52YWxpZCBwYXNzd29yZCcpCiAKLSAgICAgICAgIyBDaGVjayBmb3IgJ3ZhbGlkX3Bhc3N3b3Jk JyBleGlzdHMgaW4gc2VsZiB0byB0ZXN0ICd2YWxpZCBwYXNzd29yZCcKLSAgICAgICAgIyB0ZXN0 IGNhc2UKLSAgICAgICAgaWYgJ3ZhbGlkX3Bhc3N3b3JkJyBpbiBkaXIoc2VsZik6Ci0gICAgICAg ICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCi0gICAgICAgICAgICAgICAgJy91c2Vy X21hbmFnZW1lbnQvdXNlci8nLAotICAgICAgICAgICAgICAgIGRhdGE9ZGljdCgKLSAgICAgICAg ICAgICAgICAgICAgZW1haWw9c2VsZi51c2VybmFtZSwKLSAgICAgICAgICAgICAgICAgICAgbmV3 UGFzc3dvcmQ9c2VsZi5wYXNzd29yZCwKLSAgICAgICAgICAgICAgICAgICAgY29uZmlybVBhc3N3 b3JkPXNlbGYucGFzc3dvcmQsCi0gICAgICAgICAgICAgICAgICAgIGFjdGl2ZT0xLAotICAgICAg ICAgICAgICAgICAgICByb2xlPSIyIgotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAg ICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlCi0gICAgICAgICAgICApCi0gICAgICAgICAgICB1c2Vy X2lkID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSlbJ2lkJ10KLSAg ICAgICAgICAgICMgTG9nb3V0IHRoZSBBZG1pbmlzdHJhdG9yIGJlZm9yZSBsb2dpbiBub3JtYWwg dXNlcgotICAgICAgICAgICAgdGVzdF91dGlscy5sb2dvdXRfdGVzdGVyX2FjY291bnQoc2VsZi50 ZXN0ZXIpCi0gICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCi0gICAgICAg ICAgICAgICAgJy9sb2dpbicsCi0gICAgICAgICAgICAgICAgZGF0YT1kaWN0KAotICAgICAgICAg ICAgICAgICAgICBlbWFpbD1zZWxmLnVzZXJuYW1lLAotICAgICAgICAgICAgICAgICAgICBwYXNz d29yZD1zZWxmLnBhc3N3b3JkCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBm b2xsb3dfcmVkaXJlY3RzPVRydWUKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNz ZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCi0gICAgICAgICAgICAjIHRlc3Qg dGhlICdjaGFuZ2UgcGFzc3dvcmQnIHRlc3QgY2FzZQotICAgICAgICAgICAgdXRpbHMuY2hhbmdl X3Bhc3N3b3JkKHNlbGYpCi0gICAgICAgICAgICAjIERlbGV0ZSB0aGUgbm9ybWFsIHVzZXIgYWZ0 ZXIgY2hhbmdpbmcgaXQncyBwYXNzd29yZAotICAgICAgICAgICAgdGVzdF91dGlscy5sb2dvdXRf dGVzdGVyX2FjY291bnQoc2VsZi50ZXN0ZXIpCi0gICAgICAgICAgICAjIExvZ2luIHRoZSBBZG1p bmlzdHJhdG9yIGJlZm9yZSBkZWxldGluZyBub3JtYWwgdXNlcgotICAgICAgICAgICAgdGVzdF91 dGlscy5sb2dpbl90ZXN0ZXJfYWNjb3VudChzZWxmLnRlc3RlcikKLSAgICAgICAgICAgIHJlc3Bv bnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKAotICAgICAgICAgICAgICAgICcvdXNlcl9tYW5hZ2Vt ZW50L3VzZXIvJyArIHN0cih1c2VyX2lkKSwKLSAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJl Y3RzPVRydWUKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJl c3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB1dGls cy5jaGFuZ2VfcGFzc3dvcmQoc2VsZikKKyAgICBAcHl0ZXN0Lm1hcmsueGZhaWwocmVhc29uPSdU ZXN0IHByZXZpb3VzbHkgZmFpbGluZywgdGhlIGxvZ2luIGRvZXMgbm90IGdvICcKKyAgICAgICAg ICAgICAgICAgICAgICAgJ3Rocm91Z2ggc3VjY2Vzc2Z1bHknKQorICAgIGRlZiB0ZXN0X3N1Y2Nl c3Moc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAg ICBXaGVuIHRyeWluZyB0byBjaGFuZ2UgdGhlIHBhc3N3b3JkCisgICAgICAgIEFuZCBldmVyeXRo aW5nIGlzIGNvcnJlY3QKKyAgICAgICAgSXQgcmV0dXJucyBjaGFuZ2VzIHRoZSBwYXNzd29yZAor ICAgICAgICAiIiIKKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0 X2NsaWVudCddCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogdGVzdF91dGls cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubG9naW5fdGVzdGVyX2FjY291bnQoaHR0 cF9jbGllbnQpKQorICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LnBvc3QoCisgICAgICAg ICAgICAnL3VzZXJfbWFuYWdlbWVudC91c2VyLycsCisgICAgICAgICAgICBkYXRhPWRpY3QoCisg ICAgICAgICAgICAgICAgZW1haWw9Y29uZmlnX2RhdGFbJ3BnQWRtaW40X3Rlc3RfdXNlcl9jcmVk ZW50aWFscyddCisgICAgICAgICAgICAgICAgWydsb2dpbl91c2VybmFtZSddICsgJzEnLAorICAg ICAgICAgICAgICAgIG5ld1Bhc3N3b3JkPWNvbmZpZ19kYXRhWydwZ0FkbWluNF90ZXN0X3VzZXJf Y3JlZGVudGlhbHMnXQorICAgICAgICAgICAgICAgIFsnbG9naW5fcGFzc3dvcmQnXSwKKyAgICAg ICAgICAgICAgICBjb25maXJtUGFzc3dvcmQ9Y29uZmlnX2RhdGFbJ3BnQWRtaW40X3Rlc3RfdXNl cl9jcmVkZW50aWFscyddCisgICAgICAgICAgICAgICAgWydsb2dpbl9wYXNzd29yZCddLAorICAg ICAgICAgICAgICAgIGFjdGl2ZT0xLAorICAgICAgICAgICAgICAgIHJvbGU9IjIiCisgICAgICAg ICAgICApLAorICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlCisgICAgICAgICkKIAot ICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNscyk6Ci0gICAgICAgIHRl c3RfdXRpbHMubG9naW5fdGVzdGVyX2FjY291bnQoY2xzLnRlc3RlcikKKyAgICAgICAganNvbi5s b2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkgfCBzaG91bGQuaGF2ZS5rZXkoJ2lk JykKKyAgICAgICAgdXNlcl9pZCA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0 Zi04JykpWydpZCddCisgICAgICAgICMgTG9nb3V0IHRoZSBBZG1pbmlzdHJhdG9yIGJlZm9yZSBs b2dpbiBub3JtYWwgdXNlcgorICAgICAgICB0ZXN0X3V0aWxzLmxvZ291dF90ZXN0ZXJfYWNjb3Vu dChodHRwX2NsaWVudCkKKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2NsaWVudC5wb3N0KAorICAg ICAgICAgICAgJy9sb2dpbicsCisgICAgICAgICAgICBkYXRhPWRpY3QoCisgICAgICAgICAgICAg ICAgZW1haWw9Y29uZmlnX2RhdGFbJ3BnQWRtaW40X3Rlc3RfdXNlcl9jcmVkZW50aWFscyddCisg ICAgICAgICAgICAgICAgWydsb2dpbl91c2VybmFtZSddICsgJzEnLAorICAgICAgICAgICAgICAg IHBhc3N3b3JkPWNvbmZpZ19kYXRhWydwZ0FkbWluNF90ZXN0X3VzZXJfY3JlZGVudGlhbHMnXQor ICAgICAgICAgICAgICAgIFsnbG9naW5fcGFzc3dvcmQnXQorICAgICAgICAgICAgKSwKKyAgICAg ICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZQorICAgICAgICApCisgICAgICAgIHJlc3BvbnNl LnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsKDIwMCkKKyAgICAgICAgcmVzcG9uc2UgPSBo dHRwX2NsaWVudC5nZXQoCisgICAgICAgICAgICAnL2Jyb3dzZXIvY2hhbmdlX3Bhc3N3b3JkJywg Zm9sbG93X3JlZGlyZWN0cz1UcnVlCisgICAgICAgICkKKyAgICAgICAgcmVzcG9uc2UuZGF0YS5k ZWNvZGUoJ3V0Zi04JykgfCBzaG91bGQuY29udGFpbigKKyAgICAgICAgICAgICdwZ0FkbWluIDQg UGFzc3dvcmQgQ2hhbmdlJykKKyAgICAgICAgIyB0ZXN0IHRoZSAnY2hhbmdlIHBhc3N3b3JkJyB0 ZXN0IGNhc2UKKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2NsaWVudC5wb3N0KAorICAgICAgICAg ICAgJy9icm93c2VyL2NoYW5nZV9wYXNzd29yZCcsCisgICAgICAgICAgICBkYXRhPWRpY3QoCisg ICAgICAgICAgICAgICAgcGFzc3dvcmQ9Y29uZmlnX2RhdGFbJ3BnQWRtaW40X3Rlc3RfdXNlcl9j cmVkZW50aWFscyddCisgICAgICAgICAgICAgICAgWydsb2dpbl9wYXNzd29yZCddLAorICAgICAg ICAgICAgICAgIG5ld19wYXNzd29yZD0nYXNkZmFzZGYnLAorICAgICAgICAgICAgICAgIG5ld19w YXNzd29yZF9jb25maXJtPSdhc2RmYXNkZicKKyAgICAgICAgICAgICksCisgICAgICAgICAgICBm b2xsb3dfcmVkaXJlY3RzPVRydWUKKyAgICAgICAgKQorICAgICAgICByZXNwb25zZS5kYXRhLmRl Y29kZSgndXRmLTgnKSB8IHNob3VsZC5jb250YWluKAorICAgICAgICAgICAgJ1lvdSBzdWNjZXNz ZnVsbHkgY2hhbmdlZCB5b3VyIHBhc3N3b3JkJykKKyAgICAgICAgIyBEZWxldGUgdGhlIG5vcm1h bCB1c2VyIGFmdGVyIGNoYW5naW5nIGl0J3MgcGFzc3dvcmQKKyAgICAgICAgdGVzdF91dGlscy5s b2dvdXRfdGVzdGVyX2FjY291bnQoaHR0cF9jbGllbnQpCisgICAgICAgICMgTG9naW4gdGhlIEFk bWluaXN0cmF0b3IgYmVmb3JlIGRlbGV0aW5nIG5vcm1hbCB1c2VyCisgICAgICAgIHRlc3RfdXRp bHMubG9naW5fdGVzdGVyX2FjY291bnQoaHR0cF9jbGllbnQpCisgICAgICAgIHJlc3BvbnNlID0g aHR0cF9jbGllbnQuZGVsZXRlKAorICAgICAgICAgICAgJy91c2VyX21hbmFnZW1lbnQvdXNlci8n ICsgc3RyKHVzZXJfaWQpLAorICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlCisgICAg ICAgICkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwoMjAw KQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2dyYXZhdGFyX2lt YWdlX2Rpc3BsYXkucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfZ3JhdmF0YXJf aW1hZ2VfZGlzcGxheS5weQppbmRleCBhNDUyNmM5ZC4uMjIxZGI2M2IgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9ncmF2YXRhcl9pbWFnZV9kaXNwbGF5LnB5Cisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9ncmF2YXRhcl9pbWFnZV9kaXNwbGF5 LnB5CkBAIC02LDYzICs2LDM4IEBACiAjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIg dGhlIFBvc3RncmVTUUwgTGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2ltcG9ydCBweXRl c3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKIAogaW1wb3J0IGNvbmZpZwotZnJvbSBwZ2Fk bWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogZnJvbSByZWdyZXNzaW9u LnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIHJlZ3Jl c3Npb24udGVzdF9zZXR1cCBpbXBvcnQgY29uZmlnX2RhdGEgYXMgdGNvbmZpZwogCiAKLWNsYXNz IFRlc3RMb2dpblVzZXJJbWFnZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiCi0gICAgVGhp cyBjbGFzcyBjaGVja3MgZm9yIHVzZXIgaW1hZ2UgYWZ0ZXIgc3VjY2Vzc2Z1bCBsb2dpbi4KLSAg ICAtIElmIFNIT1dfR1JBVkFUQVJfSU1BR0UgY29uZmlnIG9wdGlvbiBpcyBzZXQgdG8gVHJ1ZSB0 aGVuIHdlIHdpbGwgc2hvdwotICAgIEdyYXZhdGFyIG9uIHRoZSBQYWdlLgotICAgIC0gSWYgU0hP V19HUkFWQVRBUl9JTUFHRSBjb25maWcgb3B0aW9uIGlzIHNldCB0byBGYWxzZSB0aGVuIHdlIHdp bGwgc2hvdwotICAgIFN0YXRpYyBpbWFnZSBvbiB0aGUgUGFnZS4KLSAgICAiIiIKLQotICAgIHNj ZW5hcmlvcyA9IFsKLSAgICAgICAgKAotICAgICAgICAgICAgJ1ZlcmlmeSBncmF2YXRhciBpbWFn ZSBvbiB0aGUgcGFnZScsIGRpY3QoCi0gICAgICAgICAgICAgICAgZW1haWw9KAotICAgICAgICAg ICAgICAgICAgICB0Y29uZmlnWydwZ0FkbWluNF9sb2dpbl9jcmVkZW50aWFscyddWydsb2dpbl91 c2VybmFtZSddCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBwYXNzd29yZD0o Ci0gICAgICAgICAgICAgICAgICAgIHRjb25maWdbJ3BnQWRtaW40X2xvZ2luX2NyZWRlbnRpYWxz J11bJ2xvZ2luX3Bhc3N3b3JkJ10KLSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAg IHJlc3BkYXRhPSdHcmF2YXRhciBpbWFnZSBmb3IgJXMnICUKLSAgICAgICAgICAgICAgICAgICAg ICAgICB0Y29uZmlnWydwZ0FkbWluNF9sb2dpbl9jcmVkZW50aWFscyddCi0gICAgICAgICAgICAg ICAgICAgICAgICAgWydsb2dpbl91c2VybmFtZSddLAotICAgICAgICAgICAgKQotICAgICAgICAp Ci0gICAgXQotCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHNldFVwQ2xhc3MoY2xzKToKLSAg ICAgICAgIkxvZ291dCBmaXJzdCBpZiBhbHJlYWR5IGxvZ2dlZCBpbiIKLSAgICAgICAgdXRpbHMu bG9nb3V0X3Rlc3Rlcl9hY2NvdW50KGNscy50ZXN0ZXIpCitjbGFzcyBUZXN0R3JhdmF0YXJJbWFn ZURpc3BsYXkob2JqZWN0KToKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcF9pZl9ub3RfaW5fc2VydmVy X21vZGUKKyAgICBkZWYgdGVzdF9ncmF2YXRhcl9pbWFnZV9kaXNwbGF5KHNlbGYsIHJlcXVlc3Qs IGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB1c2VyIGxvZ2lu CisgICAgICAgIEl0IGRpc3BsYXlzIHRoZSBncmF2YXRhcgorICAgICAgICAiIiIKKyAgICAgICAg aHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHV0 aWxzLmxvZ291dF90ZXN0ZXJfYWNjb3VudChodHRwX2NsaWVudCkKKyAgICAgICAgcmVxdWVzdC5h ZGRmaW5hbGl6ZXIobGFtYmRhOiB1dGlscy5sb2dpbl90ZXN0ZXJfYWNjb3VudChodHRwX2NsaWVu dCkpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIyBMb2dpbiBhbmQgY2hlY2sg dHlwZSBvZiBpbWFnZSBpbiByZXNwb25zZQotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVy LnBvc3QoCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQucG9zdCgKICAgICAgICAgICAg ICcvbG9naW4nLCBkYXRhPWRpY3QoCi0gICAgICAgICAgICAgICAgZW1haWw9c2VsZi5lbWFpbCwK LSAgICAgICAgICAgICAgICBwYXNzd29yZD1zZWxmLnBhc3N3b3JkCisgICAgICAgICAgICAgICAg ZW1haWw9dGNvbmZpZ1sncGdBZG1pbjRfbG9naW5fY3JlZGVudGlhbHMnXVsnbG9naW5fdXNlcm5h bWUnXSwKKyAgICAgICAgICAgICAgICBwYXNzd29yZD10Y29uZmlnWydwZ0FkbWluNF9sb2dpbl9j cmVkZW50aWFscyddWworICAgICAgICAgICAgICAgICAgICAnbG9naW5fcGFzc3dvcmQnXQogICAg ICAgICAgICAgKSwKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZQogICAgICAgICAp Ci0gICAgICAgICMgU2hvdWxkIGhhdmUgZ3JhdmF0YXIgaW1hZ2UKKyAgICAgICAgZ3JhdmF0YXJf aW5mb3JtYXRpb24gPSAnR3JhdmF0YXIgaW1hZ2UgZm9yIHswfScuZm9ybWF0KAorICAgICAgICAg ICAgdGNvbmZpZ1sncGdBZG1pbjRfbG9naW5fY3JlZGVudGlhbHMnXVsnbG9naW5fdXNlcm5hbWUn XQorICAgICAgICApCiAgICAgICAgIGlmIGNvbmZpZy5TSE9XX0dSQVZBVEFSX0lNQUdFOgotICAg ICAgICAgICAgc2VsZi5hc3NlcnRJbihzZWxmLnJlc3BkYXRhLCByZXNwb25zZS5kYXRhLmRlY29k ZSgndXRmOCcpKQotICAgICAgICAjIFNob3VsZCBub3QgaGF2ZSBncmF2YXRhciBpbWFnZQorICAg ICAgICAgICAgcmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0ZjgnKSB8IHNob3VsZC5jb250YWluKGdy YXZhdGFyX2luZm9ybWF0aW9uKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5hc3Nl cnROb3RJbihzZWxmLnJlc3BkYXRhLCByZXNwb25zZS5kYXRhLmRlY29kZSgndXRmOCcpKQotCi0g ICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKLSAgICAgICAgIiIi Ci0gICAgICAgIFdlIG5lZWQgdG8gYWdhaW4gbG9naW4gdGhlIHRlc3QgY2xpZW50IGFzIHNvb24g YXMgdGVzdCBzY2VuYXJpb3MKLSAgICAgICAgZmluaXNoZXMuCi0gICAgICAgICIiIgotICAgICAg ICB1dGlscy5sb2dpbl90ZXN0ZXJfYWNjb3VudChjbHMudGVzdGVyKQorICAgICAgICAgICAgcmVz cG9uc2UuZGF0YS5kZWNvZGUoJ3V0ZjgnKSB8IHNob3VsZC5ub3RfY29udGFpbigKKyAgICAgICAg ICAgICAgICBncmF2YXRhcl9pbmZvcm1hdGlvbikKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvdGVzdHMvdGVzdF9sb2dpbi5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVz dF9sb2dpbi5weQppbmRleCBkODMwZGZiYy4uMThmMmRmOGYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9sb2dpbi5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3Rlc3RzL3Rlc3RfbG9naW4ucHkKQEAgLTksOTkgKzksMTI3IEBACiAKIGltcG9ydCB1dWlkCiAK LWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20g cmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwor aW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCitmcm9tIHJlZ3Jlc3Np b24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMKIGZyb20gcmVncmVzc2lvbi50 ZXN0X3NldHVwIGltcG9ydCBjb25maWdfZGF0YQogCiAKLWNsYXNzIExvZ2luVGVzdENhc2UoQmFz ZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIgotICAgIFRoaXMgY2xhc3MgY2hlY2tzIGxvZ2luIGZ1 bmN0aW9uYWxpdHkgYnkgdmFsaWRhdGluZyBkaWZmZXJlbnQgc2NlbmFyaW9zLgotICAgIExvZ2lu IHNjZW5hcmlvcyBhcmUgZGVmaW5lZCBpbiBkaWN0aW9uYXJ5OyB3aGVyZSBkaWN0IG9mIHBhcmFt ZXRlcnMKLSAgICBkZXNjcmliZSB0aGUgc2NlbmFyaW8gYXBwZW5kZWQgYnkgdGVzdCBuYW1lLgot ICAgICIiIgotCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIFRoaXMgdGVzdCBjYXNlIHZh bGlkYXRlcyB0aGUgaW52YWxpZC9pbmNvcnJlY3QgcGFzc3dvcmQKLSAgICAgICAgKCdUZXN0Q2Fz ZSBmb3IgQ2hlY2tpbmcgSW52YWxpZF9QYXNzd29yZCcsIGRpY3QoCi0gICAgICAgICAgICBlbWFp bD0oCi0gICAgICAgICAgICAgICAgY29uZmlnX2RhdGFbJ3BnQWRtaW40X2xvZ2luX2NyZWRlbnRp YWxzJ10KLSAgICAgICAgICAgICAgICBbJ2xvZ2luX3VzZXJuYW1lJ10pLAotICAgICAgICAgICAg cGFzc3dvcmQ9c3RyKHV1aWQudXVpZDQoKSlbNDo4XSwKLSAgICAgICAgICAgIHJlc3BkYXRhPSdJ bnZhbGlkIHBhc3N3b3JkJykpLAotCi0gICAgICAgICMgVGhpcyB0ZXN0IGNhc2UgdmFsaWRhdGVz IHRoZSBlbXB0eSBwYXNzd29yZCBmaWVsZAotICAgICAgICAoJ0VtcHR5X1Bhc3N3b3JkJywgZGlj dCgKLSAgICAgICAgICAgIGVtYWlsPSgKLSAgICAgICAgICAgICAgICBjb25maWdfZGF0YVsncGdB ZG1pbjRfbG9naW5fY3JlZGVudGlhbHMnXQotICAgICAgICAgICAgICAgIFsnbG9naW5fdXNlcm5h bWUnXSksIHBhc3N3b3JkPScnLAotICAgICAgICAgICAgcmVzcGRhdGE9J1Bhc3N3b3JkIG5vdCBw cm92aWRlZCcpKSwKLQotICAgICAgICAjIFRoaXMgdGVzdCBjYXNlIHZhbGlkYXRlcyBibGFuayBl bWFpbCBmaWVsZAotICAgICAgICAoJ0VtcHR5X0VtYWlsJywgZGljdCgKLSAgICAgICAgICAgIGVt YWlsPScnLCBwYXNzd29yZD0oCi0gICAgICAgICAgICAgICAgY29uZmlnX2RhdGFbJ3BnQWRtaW40 X2xvZ2luX2NyZWRlbnRpYWxzJ10KLSAgICAgICAgICAgICAgICBbJ2xvZ2luX3Bhc3N3b3JkJ10p LAotICAgICAgICAgICAgcmVzcGRhdGE9J0VtYWlsIG5vdCBwcm92aWRlZCcpKSwKLQotICAgICAg ICAjIFRoaXMgdGVzdCBjYXNlIHZhbGlkYXRlcyBlbXB0eSBlbWFpbCBhbmQgcGFzc3dvcmQKLSAg ICAgICAgKCdFbXB0eV9DcmVkZW50aWFscycsIGRpY3QoCi0gICAgICAgICAgICBlbWFpbD0nJywg cGFzc3dvcmQ9JycsCi0gICAgICAgICAgICByZXNwZGF0YT0nRW1haWwgbm90IHByb3ZpZGVkJykp LAotCi0gICAgICAgICMgVGhpcyB0ZXN0IGNhc2UgdmFsaWRhdGVzIHRoZSBpbnZhbGlkL2luY29y cmVjdCBlbWFpbCBpZAotICAgICAgICAoJ0ludmFsaWRfRW1haWwnLCBkaWN0KAotICAgICAgICAg ICAgZW1haWw9c3RyKHV1aWQudXVpZDQoKSlbMTo4XSArICdAeHl6LmNvbScsCi0gICAgICAgICAg ICBwYXNzd29yZD0oCi0gICAgICAgICAgICAgICAgY29uZmlnX2RhdGFbJ3BnQWRtaW40X2xvZ2lu X2NyZWRlbnRpYWxzJ10KLSAgICAgICAgICAgICAgICBbJ2xvZ2luX3Bhc3N3b3JkJ10pLAotICAg ICAgICAgICAgcmVzcGRhdGE9J1NwZWNpZmllZCB1c2VyIGRvZXMgbm90IGV4aXN0JykpLAotCi0g ICAgICAgICMgVGhpcyB0ZXN0IGNhc2UgdmFsaWRhdGVzIGludmFsaWQgZW1haWwgYW5kIHBhc3N3 b3JkCi0gICAgICAgICgnSW52YWxpZF9DcmVkZW50aWFscycsIGRpY3QoCi0gICAgICAgICAgICBl bWFpbD1zdHIodXVpZC51dWlkNCgpKVsxOjhdICsgJ0B4eXouY29tJywKLSAgICAgICAgICAgIHBh c3N3b3JkPXN0cih1dWlkLnV1aWQ0KCkpWzQ6OF0sCi0gICAgICAgICAgICByZXNwZGF0YT0nU3Bl Y2lmaWVkIHVzZXIgZG9lcyBub3QgZXhpc3QnKSksCi0KLSAgICAgICAgIyBUaGlzIHRlc3QgY2Fz ZSB2YWxpZGF0ZXMgdGhlIHZhbGlkL2NvcnJlY3QgY3JlZGVudGlhbHMgYW5kIGFsbG93IHVzZXIK LSAgICAgICAgIyB0byBsb2dpbiBwZ0FkbWluIDQKLSAgICAgICAgKCdWYWxpZF9DcmVkZW50aWFs cycsIGRpY3QoCi0gICAgICAgICAgICBlbWFpbD0oCi0gICAgICAgICAgICAgICAgY29uZmlnX2Rh dGFbJ3BnQWRtaW40X2xvZ2luX2NyZWRlbnRpYWxzJ10KLSAgICAgICAgICAgICAgICBbJ2xvZ2lu X3VzZXJuYW1lJ10pLAotICAgICAgICAgICAgcGFzc3dvcmQ9KAotICAgICAgICAgICAgICAgIGNv bmZpZ19kYXRhWydwZ0FkbWluNF9sb2dpbl9jcmVkZW50aWFscyddCi0gICAgICAgICAgICAgICAg Wydsb2dpbl9wYXNzd29yZCddKSwKLSAgICAgICAgICAgIHJlc3BkYXRhPSdHcmF2YXRhciBpbWFn ZSBmb3IgJXMnICUKLSAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19kYXRhWydwZ0FkbWluNF9s b2dpbl9jcmVkZW50aWFscyddCi0gICAgICAgICAgICAgICAgICAgICBbJ2xvZ2luX3VzZXJuYW1l J10pKQotICAgIF0KLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBzZXRVcENsYXNzKGNscyk6 CitAcHl0ZXN0Lm1hcmsuc2tpcF9pZl9ub3RfaW5fc2VydmVyX21vZGUKK2NsYXNzIFRlc3RMb2dp bihvYmplY3QpOgorICAgIGRlZiB0ZXN0X2luY29ycmVjdF9wYXNzd29yZChzZWxmLCByZXF1ZXN0 LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdHJ5aW5nIHRv IGxvZ2luCisgICAgICAgIEFuZCBwYXNzd29yZCBpcyBpbnZhbGlkCisgICAgICAgIEl0IHJldHVy bnMgIkludmFsaWQgcGFzc3dvcmQiIGVycm9yCisgICAgICAgICIiIgorICAgICAgICBodHRwX2Ns aWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKworICAgICAgICB0ZXN0X3V0 aWxzLmxvZ291dF90ZXN0ZXJfYWNjb3VudChodHRwX2NsaWVudCkKKyAgICAgICAgcmVxdWVzdC5h ZGRmaW5hbGl6ZXIobGFtYmRhOiB0ZXN0X3V0aWxzCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC5sb2dpbl90ZXN0ZXJfYWNjb3VudChodHRwX2NsaWVudCkpCisKKyAgICAgICAgcmVzcG9u c2UgPSBodHRwX2NsaWVudC5wb3N0KAorICAgICAgICAgICAgJy9sb2dpbicsCisgICAgICAgICAg ICBkYXRhPWRpY3QoCisgICAgICAgICAgICAgICAgZW1haWw9Y29uZmlnX2RhdGFbJ3BnQWRtaW40 X2xvZ2luX2NyZWRlbnRpYWxzJ10KKyAgICAgICAgICAgICAgICBbJ2xvZ2luX3VzZXJuYW1lJ10s CisgICAgICAgICAgICAgICAgcGFzc3dvcmQ9c3RyKHV1aWQudXVpZDQoKSlbNDo4XQorICAgICAg ICAgICAgKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZQorICAgICAgICApCisg ICAgICAgIHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGY4JykgfCBzaG91bGQuY29udGFpbignSW52 YWxpZCBwYXNzd29yZCcpCisKKyAgICBkZWYgdGVzdF9lbXB0eV9lbWFpbChzZWxmLCByZXF1ZXN0 LCBjb250ZXh0X29mX3Rlc3RzKToKICAgICAgICAgIiIiCi0gICAgICAgIFdlIG5lZWQgdG8gbG9n b3V0IHRoZSB0ZXN0IGNsaWVudCBhcyB3ZSBhcmUgdGVzdGluZyBzY2VuYXJpb3Mgb2YKLSAgICAg ICAgbG9nZ2luZyBpbiB0aGUgY2xpZW50IGxpa2UgaW52YWxpZCBwYXNzd29yZCwgaW52YWxpZCBl bWFpbHMsCi0gICAgICAgIGVtcHR5IGNyZWRlbnRpYWxzIGV0Yy4KKyAgICAgICAgV2hlbiB0cnlp bmcgdG8gbG9naW4KKyAgICAgICAgQW5kIGVtYWlsIGlzIGVtcHR5CisgICAgICAgIEl0IHJldHVy bnMgIkVtYWlsIG5vdCBwcm92aWRlZCIgZXJyb3IKICAgICAgICAgIiIiCi0gICAgICAgIHV0aWxz LmxvZ291dF90ZXN0ZXJfYWNjb3VudChjbHMudGVzdGVyKQorICAgICAgICBodHRwX2NsaWVudCA9 IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKworICAgICAgICB0ZXN0X3V0aWxzLmxv Z291dF90ZXN0ZXJfYWNjb3VudChodHRwX2NsaWVudCkKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5h bGl6ZXIobGFtYmRhOiB0ZXN0X3V0aWxzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5s b2dpbl90ZXN0ZXJfYWNjb3VudChodHRwX2NsaWVudCkpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxm KToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBjaGVja3MgbG9naW4gZnVuY3Rpb25hbGl0eS4i IiIKLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAorICAgICAgICByZXNwb25z ZSA9IGh0dHBfY2xpZW50LnBvc3QoCiAgICAgICAgICAgICAnL2xvZ2luJywKICAgICAgICAgICAg IGRhdGE9ZGljdCgKLSAgICAgICAgICAgICAgICBlbWFpbD1zZWxmLmVtYWlsLAotICAgICAgICAg ICAgICAgIHBhc3N3b3JkPXNlbGYucGFzc3dvcmQKKyAgICAgICAgICAgICAgICBlbWFpbD0nJywK KyAgICAgICAgICAgICAgICBwYXNzd29yZD1zdHIodXVpZC51dWlkNCgpKVs0OjhdCiAgICAgICAg ICAgICApLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlCiAgICAgICAgICkKLSAg ICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYucmVzcGRhdGEgaW4gcmVzcG9uc2UuZGF0YS5kZWNv ZGUoJ3V0ZjgnKSkKKyAgICAgICAgcmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0ZjgnKSB8IHNob3Vs ZC5jb250YWluKCdFbWFpbCBub3QgcHJvdmlkZWQnKQogCi0gICAgQGNsYXNzbWV0aG9kCi0gICAg ZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKKyAgICBkZWYgdGVzdF9lbXB0eV9wYXNzd29yZChzZWxm LCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKICAgICAgICAgIiIiCi0gICAgICAgIFdlIG5l ZWQgdG8gYWdhaW4gbG9naW4gdGhlIHRlc3QgY2xpZW50IGFzIHNvb24gYXMgdGVzdCBzY2VuYXJp b3MKLSAgICAgICAgZmluaXNoZXMuCisgICAgICAgIFdoZW4gdHJ5aW5nIHRvIGxvZ2luCisgICAg ICAgIEFuZCBwYXNzd29yZCBpcyBlbXB0eQorICAgICAgICBJdCByZXR1cm5zICJQYXNzd29yZCBu b3QgcHJvdmlkZWQiIGVycm9yCiAgICAgICAgICIiIgotICAgICAgICB1dGlscy5sb2dpbl90ZXN0 ZXJfYWNjb3VudChjbHMudGVzdGVyKQorICAgICAgICBodHRwX2NsaWVudCA9IGNvbnRleHRfb2Zf dGVzdHNbJ3Rlc3RfY2xpZW50J10KKworICAgICAgICB0ZXN0X3V0aWxzLmxvZ291dF90ZXN0ZXJf YWNjb3VudChodHRwX2NsaWVudCkKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRh OiB0ZXN0X3V0aWxzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5sb2dpbl90ZXN0ZXJf YWNjb3VudChodHRwX2NsaWVudCkpCisKKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2NsaWVudC5w b3N0KAorICAgICAgICAgICAgJy9sb2dpbicsCisgICAgICAgICAgICBkYXRhPWRpY3QoCisgICAg ICAgICAgICAgICAgZW1haWw9c3RyKHV1aWQudXVpZDQoKSlbNDo4XSwKKyAgICAgICAgICAgICAg ICBwYXNzd29yZD0nJworICAgICAgICAgICAgKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVj dHM9VHJ1ZQorICAgICAgICApCisgICAgICAgIHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGY4Jykg fCBzaG91bGQuY29udGFpbignUGFzc3dvcmQgbm90IHByb3ZpZGVkJykKKworICAgIGRlZiB0ZXN0 X3VzZXJfbm90X2ZvdW5kKHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAg ICAiIiIKKyAgICAgICAgV2hlbiB0cnlpbmcgdG8gbG9naW4KKyAgICAgICAgQW5kIHRoZSB1c2Vy IGRvZXMgbm90IGV4aXN0CisgICAgICAgIEl0IHJldHVybnMgIlNwZWNpZmllZCB1c2VyIGRvZXMg bm90IGV4aXN0IiBlcnJvcgorICAgICAgICAiIiIKKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250 ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisKKyAgICAgICAgdGVzdF91dGlscy5sb2dvdXRf dGVzdGVyX2FjY291bnQoaHR0cF9jbGllbnQpCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVy KGxhbWJkYTogdGVzdF91dGlscworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubG9naW5f dGVzdGVyX2FjY291bnQoaHR0cF9jbGllbnQpKQorCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9j bGllbnQucG9zdCgKKyAgICAgICAgICAgICcvbG9naW4nLAorICAgICAgICAgICAgZGF0YT1kaWN0 KAorICAgICAgICAgICAgICAgIGVtYWlsPXN0cih1dWlkLnV1aWQ0KCkpWzQ6OF0gKyAnQHh5ei5j b20nLAorICAgICAgICAgICAgICAgIHBhc3N3b3JkPXN0cih1dWlkLnV1aWQ0KCkpWzQ6OF0KKyAg ICAgICAgICAgICksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUKKyAgICAgICAg KQorICAgICAgICByZXNwb25zZS5kYXRhLmRlY29kZSgndXRmOCcpIHwgc2hvdWxkLmNvbnRhaW4o CisgICAgICAgICAgICAnU3BlY2lmaWVkIHVzZXIgZG9lcyBub3QgZXhpc3QnKQorCisgICAgZGVm IHRlc3Rfc3VjY2VzcyhzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAg IiIiCisgICAgICAgIFdoZW4gdHJ5aW5nIHRvIGxvZ2luCisgICAgICAgIEFuZCB0aGUgY3JlZGVu dGlhbCBhcmUgY29ycmVjdAorICAgICAgICBJdCByZXR1cm5zICJTcGVjaWZpZWQgdXNlciBkb2Vz IG5vdCBleGlzdCIgZXJyb3IKKyAgICAgICAgIiIiCisgICAgICAgIGh0dHBfY2xpZW50ID0gY29u dGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorCisgICAgICAgIHRlc3RfdXRpbHMubG9nb3V0 X3Rlc3Rlcl9hY2NvdW50KGh0dHBfY2xpZW50KQorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXpl cihsYW1iZGE6IHRlc3RfdXRpbHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmxvZ2lu X3Rlc3Rlcl9hY2NvdW50KGh0dHBfY2xpZW50KSkKKworICAgICAgICByZXNwb25zZSA9IGh0dHBf Y2xpZW50LnBvc3QoCisgICAgICAgICAgICAnL2xvZ2luJywKKyAgICAgICAgICAgIGRhdGE9ZGlj dCgKKyAgICAgICAgICAgICAgICBlbWFpbD1jb25maWdfZGF0YVsncGdBZG1pbjRfbG9naW5fY3Jl ZGVudGlhbHMnXQorICAgICAgICAgICAgICAgIFsnbG9naW5fdXNlcm5hbWUnXSwKKyAgICAgICAg ICAgICAgICBwYXNzd29yZD1jb25maWdfZGF0YVsncGdBZG1pbjRfbG9naW5fY3JlZGVudGlhbHMn XQorICAgICAgICAgICAgICAgIFsnbG9naW5fcGFzc3dvcmQnXQorICAgICAgICAgICAgKSwKKyAg ICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZQorICAgICAgICApCisgICAgICAgIHJlc3Bv bnNlLmRhdGEuZGVjb2RlKCd1dGY4JykgfCBzaG91bGQuY29udGFpbigKKyAgICAgICAgICAgICdH cmF2YXRhciBpbWFnZSBmb3IgJXMnICUgY29uZmlnX2RhdGFbJ3BnQWRtaW40X2xvZ2luX2NyZWRl bnRpYWxzJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBbJ2xvZ2luX3VzZXJuYW1lJ10pCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Rl c3RzL3Rlc3RfbG9nb3V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2xvZ291 dC5weQppbmRleCA1MWMyMDZmNC4uNDA5MTEwZWMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvdGVzdHMvdGVzdF9sb2dvdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0 cy90ZXN0X2xvZ291dC5weQpAQCAtNiwzOCArNiwyMiBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJl bGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCiAKK2Zyb20gcmVncmVz c2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscwogCi1mcm9tIHBnYWRtaW4u dXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24ucHl0 aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIAotCi1jbGFzcyBMb2dv dXRUZXN0KEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIKLSAgICBUaGlzIGNsYXNzIHZlcmlm aWVzIHRoZSBsb2dvdXQgZnVuY3Rpb25hbGl0eTsgcHJvdmlkZWQgdGhlIHVzZXIgaXMgYWxyZWFk eQotICAgIGxvZ2dlZC1pbi4gRGljdGlvbmFyeSBwYXJhbWV0ZXJzIGRlZmluZSB0aGUgc2NlbmFy aW8gYXBwZW5kZWQgYnkgdGVzdAotICAgIG5hbWUuCi0gICAgIiIiCi0KLSAgICBzY2VuYXJpb3Mg PSBbCi0gICAgICAgICMgVGhpcyB0ZXN0IGNhc2UgdmFsaWRhdGUgdGhlIGxvZ291dCBwYWdlCi0g ICAgICAgICgnTG9nZ2luZyBPdXQnLCBkaWN0KHJlc3BkYXRhPSdSZWRpcmVjdGluZy4uLicpKQot ICAgIF0KLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBzZXRVcENsYXNzKGNscyk6Ci0gICAg ICAgIHBhc3MKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0 aW9uIGNoZWNrcyB0aGUgbG9nb3V0IGZ1bmN0aW9uYWxpdHkuIiIiCi0KLSAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5nZXQoJy9sb2dvdXQnKQotICAgICAgICBzZWxmLmFzc2VydFRydWUo c2VsZi5yZXNwZGF0YSBpbiByZXNwb25zZS5kYXRhLmRlY29kZSgndXRmOCcpKQotCi0gICAgQGNs YXNzbWV0aG9kCi0gICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKK0BweXRlc3QubWFyay5za2lw X2lmX25vdF9pbl9zZXJ2ZXJfbW9kZQorY2xhc3MgVGVzdExvZ291dChvYmplY3QpOgorICAgIGRl ZiB0ZXN0X3N1Y2Nlc3Moc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CiAgICAgICAg ICIiIgotICAgICAgICBXZSBuZWVkIHRvIGFnYWluIGxvZ2luIHRoZSB0ZXN0IGNsaWVudCBhcyBz b29uIGFzIHRlc3Qgc2NlbmFyaW9zCi0gICAgICAgIGZpbmlzaGVzLgorICAgICAgICBXaGVuIHRy eWluZyB0byBsb2dvdXQKKyAgICAgICAgQW5kIHRoZSBjcmVkZW50aWFsIGFyZSBjb3JyZWN0Cisg ICAgICAgIEl0IHJldHVybnMgIlNwZWNpZmllZCB1c2VyIGRvZXMgbm90IGV4aXN0IiBlcnJvcgog ICAgICAgICAiIiIKLSAgICAgICAgdXRpbHMubG9naW5fdGVzdGVyX2FjY291bnQoY2xzLnRlc3Rl cikKKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCdd CisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQuZ2V0KCcvbG9nb3V0JykKKyAgICAgICAg cmVxdWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRhOiB0ZXN0X3V0aWxzCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC5sb2dpbl90ZXN0ZXJfYWNjb3VudChodHRwX2NsaWVudCkpCisgICAgICAg IHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGY4JykgfCBzaG91bGQuY29udGFpbignUmVkaXJlY3Rp bmcuLi4nKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X3Jlc2V0 X3Bhc3N3b3JkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X3Jlc2V0X3Bhc3N3 b3JkLnB5CmluZGV4IDdiYWQ0MDBhLi5kNGEwNmIyOCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v YnJvd3Nlci90ZXN0cy90ZXN0X3Jlc2V0X3Bhc3N3b3JkLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvdGVzdHMvdGVzdF9yZXNldF9wYXNzd29yZC5weQpAQCAtOSw1MCArOSw3NCBAQAogCiBp bXBvcnQgdXVpZAogCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2Vu ZXJhdG9yCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20g cmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscy50ZXN0X3V0aWxzIGltcG9ydCBsb2dpbl90ZXN0 ZXJfYWNjb3VudAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzLnRlc3RfdXRpbHMg aW1wb3J0IGxvZ291dF90ZXN0ZXJfYWNjb3VudAogZnJvbSByZWdyZXNzaW9uLnRlc3Rfc2V0dXAg aW1wb3J0IGNvbmZpZ19kYXRhCiAKIAotY2xhc3MgUmVzZXRQYXNzd29yZFRlc3RDYXNlKEJhc2VU ZXN0R2VuZXJhdG9yKToKLSAgICAiIiIKLSAgICBUaGlzIGNsYXNzIHZhbGlkYXRlcyB0aGUgcmVz ZXQgcGFzc3dvcmQgZnVuY3Rpb25hbGl0eSBieSBkZWZpbmluZwotICAgIHNjZW5hcmlvczsgRWFj aCBkaWN0IHBhcmFtZXRlciBkZXNjcmliZSBhIHNjZW5hcmlvIGFwcGVuZGVkIGJ5Ci0gICAgdGVz dCBuYW1lLgotICAgICIiIgotCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIFRoaXMgdGVz dCBjYXNlIHZhbGlkYXRlcyB0aGUgZW1wdHkgZW1haWwgZmllbGQKLSAgICAgICAgKCdUZXN0Q2Fz ZSBmb3IgVmFsaWRhdGluZyBFbXB0eSBFbWFpbCcsIGRpY3QoCi0gICAgICAgICAgICBlbWFpbD0n JywgcmVzcGRhdGE9J0VtYWlsIG5vdCBwcm92aWRlZCcpKSwKLQotICAgICAgICAjIFRoaXMgdGVz dCBjYXNlIHZhbGlkYXRlcyB0aGUgaW52YWxpZC9pbmNvcnJlY3QgZW1haWwgZmllbGQKLSAgICAg ICAgKCdUZXN0Q2FzZSBmb3IgVmFsaWRhdGluZyBJbnZhbGlkX0VtYWlsJywgZGljdCgKLSAgICAg ICAgICAgIGVtYWlsPXN0cih1dWlkLnV1aWQ0KCkpWzE6OF0gKyAnQHh5ei5jb20nLAotICAgICAg ICAgICAgcmVzcGRhdGE9J1NwZWNpZmllZCB1c2VyIGRvZXMgbm90IGV4aXN0JykpLAotCi0gICAg ICAgICMgVGhpcyB0ZXN0IGNhc2UgdmFsaWRhdGVzIHRoZSB2YWxpZCBlbWFpbCBpZAotICAgICAg ICAoJ1Rlc3RDYXNlIGZvciBWYWxpZGF0aW5nIFZhbGlkX0VtYWlsJywgZGljdCgKLSAgICAgICAg ICAgIGVtYWlsPWNvbmZpZ19kYXRhWydwZ0FkbWluNF9sb2dpbl9jcmVkZW50aWFscyddCi0gICAg ICAgICAgICBbJ2xvZ2luX3VzZXJuYW1lJ10sIHJlc3BkYXRhPSdwZ0FkbWluIDQnKSkKLSAgICBd Ci0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgc2V0VXBDbGFzcyhjbHMpOgotICAgICAgICBs b2dvdXRfdGVzdGVyX2FjY291bnQoY2xzLnRlc3RlcikKLQotICAgIGRlZiBydW5UZXN0KHNlbGYp OgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGNoZWNrcyByZXNldCBwYXNzd29yZCBmdW5jdGlv bmFsaXR5LiIiIgotCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KCcvYnJvd3Nl ci9yZXNldF9wYXNzd29yZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnUmVjb3ZlciBwZ0Fk bWluIDQgUGFzc3dvcmQnIGluIHJlc3BvbnNlLmRhdGEuZGVjb2RlKAotICAgICAgICAgICAgJ3V0 Zi04JykpCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKLSAgICAgICAgICAg ICcvYnJvd3Nlci9yZXNldF9wYXNzd29yZCcsIGRhdGE9ZGljdChlbWFpbD1zZWxmLmVtYWlsKSwK K0BweXRlc3QubWFyay5za2lwX2lmX25vdF9pbl9zZXJ2ZXJfbW9kZQorY2xhc3MgVGVzdFJlc2V0 UGFzc3dvcmQob2JqZWN0KToKKyAgICBkZWYgdGVzdF9lbXB0eV9lbWFpbChzZWxmLCByZXF1ZXN0 LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdHJ5aW5nIHRv IHJlc2V0IHRoZSBwYXNzd29yZAorICAgICAgICBBbmQgZW1haWwgaXMgZW1wdHkKKyAgICAgICAg SXQgcmV0dXJucyAiRW1haWwgbm90IHByb3ZpZGVkIiBlcnJvcgorICAgICAgICAiIiIKKyAgICAg ICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisKKyAgICAg ICAgbG9nb3V0X3Rlc3Rlcl9hY2NvdW50KGh0dHBfY2xpZW50KQorICAgICAgICByZXF1ZXN0LmFk ZGZpbmFsaXplcihsYW1iZGE6IGxvZ2luX3Rlc3Rlcl9hY2NvdW50KGh0dHBfY2xpZW50KSkKKwor ICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LmdldCgnL2Jyb3dzZXIvcmVzZXRfcGFzc3dv cmQnKQorICAgICAgICByZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSB8IHNob3VsZC5jb250 YWluKAorICAgICAgICAgICAgJ1JlY292ZXIgcGdBZG1pbiA0IFBhc3N3b3JkJykKKyAgICAgICAg cmVzcG9uc2UgPSBodHRwX2NsaWVudC5wb3N0KAorICAgICAgICAgICAgJy9icm93c2VyL3Jlc2V0 X3Bhc3N3b3JkJywgZGF0YT1kaWN0KGVtYWlsPScnKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRp cmVjdHM9VHJ1ZSkKKyAgICAgICAgcmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykgfCBzaG91 bGQuY29udGFpbignRW1haWwgbm90IHByb3ZpZGVkJykKKworICAgIGRlZiB0ZXN0X3VzZXJfbm90 X2ZvdW5kKHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAg ICAgICAgV2hlbiB0cnlpbmcgdG8gcmVzZXQgdGhlIHBhc3N3b3JkCisgICAgICAgIEFuZCB1c2Vy IGlzIG5vdCBmb3VuZAorICAgICAgICBJdCByZXR1cm5zICJTcGVjaWZpZWQgdXNlciBkb2VzIG5v dCBleGlzdCIgZXJyb3IKKyAgICAgICAgIiIiCisgICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4 dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorCisgICAgICAgIGxvZ291dF90ZXN0ZXJfYWNjb3Vu dChodHRwX2NsaWVudCkKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRhOiBsb2dp bl90ZXN0ZXJfYWNjb3VudChodHRwX2NsaWVudCkpCisKKyAgICAgICAgcmVzcG9uc2UgPSBodHRw X2NsaWVudC5nZXQoJy9icm93c2VyL3Jlc2V0X3Bhc3N3b3JkJykKKyAgICAgICAgcmVzcG9uc2Uu ZGF0YS5kZWNvZGUoJ3V0Zi04JykgfCBzaG91bGQuY29udGFpbigKKyAgICAgICAgICAgICdSZWNv dmVyIHBnQWRtaW4gNCBQYXNzd29yZCcpCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQu cG9zdCgKKyAgICAgICAgICAgICcvYnJvd3Nlci9yZXNldF9wYXNzd29yZCcsIGRhdGE9ZGljdCgK KyAgICAgICAgICAgICAgICBlbWFpbD1zdHIodXVpZC51dWlkNCgpKVsxOjhdICsgJ0B4eXouY29t JyksCiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNz ZXJ0VHJ1ZShzZWxmLnJlc3BkYXRhIGluIHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQor ICAgICAgICByZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSB8IHNob3VsZC5jb250YWluKAor ICAgICAgICAgICAgJ1NwZWNpZmllZCB1c2VyIGRvZXMgbm90IGV4aXN0JykKKworICAgIEBweXRl c3QubWFyay54ZmFpbChyZWFzb249J1Rlc3QgcHJldmlvdXNseSBmYWlsaW5nLCBpc3N1ZSBpbnNp ZGUgaHR0cCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGVzdCBjbGllbnQnKQor ICAgIGRlZiB0ZXN0X3N1Y2Nlc3Moc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6Cisg ICAgICAgICIiIgorICAgICAgICBXaGVuIHRyeWluZyB0byByZXNldCB0aGUgcGFzc3dvcmQKKyAg ICAgICAgQW5kIHVzZXIgZXhpc3RzCisgICAgICAgIEl0IHJldHVybnMgc3VjY2VzcworICAgICAg ICAiIiIKKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVu dCddCiAKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgdGVhckRvd25DbGFzcyhjbHMpOgotICAg ICAgICBsb2dpbl90ZXN0ZXJfYWNjb3VudChjbHMudGVzdGVyKQorICAgICAgICBsb2dvdXRfdGVz dGVyX2FjY291bnQoaHR0cF9jbGllbnQpCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGxh bWJkYTogbG9naW5fdGVzdGVyX2FjY291bnQoaHR0cF9jbGllbnQpKQorCisgICAgICAgIHJlc3Bv bnNlID0gaHR0cF9jbGllbnQuZ2V0KCcvYnJvd3Nlci9yZXNldF9wYXNzd29yZCcpCisgICAgICAg IHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpIHwgc2hvdWxkLmNvbnRhaW4oCisgICAgICAg ICAgICAnUmVjb3ZlciBwZ0FkbWluIDQgUGFzc3dvcmQnKQorICAgICAgICByZXNwb25zZSA9IGh0 dHBfY2xpZW50LnBvc3QoCisgICAgICAgICAgICAnL2Jyb3dzZXIvcmVzZXRfcGFzc3dvcmQnLCBk YXRhPWRpY3QoCisgICAgICAgICAgICAgICAgZW1haWw9Y29uZmlnX2RhdGFbJ3BnQWRtaW40X2xv Z2luX2NyZWRlbnRpYWxzJ10pLAorICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQor ICAgICAgICByZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSB8IHNob3VsZC5jb250YWluKCdw Z0FkbWluIDQnKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X3Zl cnNpb25faW5fcmFuZ2UucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfdmVyc2lv bl9pbl9yYW5nZS5weQppbmRleCA0ZDljYTc2ZC4uZjJiYzM2ZDYgMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF92ZXJzaW9uX2luX3JhbmdlLnB5CisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF92ZXJzaW9uX2luX3JhbmdlLnB5CkBAIC02LDc4ICs2 LDY3IEBACiAjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwg TGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQK IAotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogZnJv bSBwZ2FkbWluLmJyb3dzZXIudXRpbHMgaW1wb3J0IGlzX3ZlcnNpb25faW5fcmFuZ2UKIAogCi1j bGFzcyBWZXJzaW9uSW5SYW5nZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIK LSAgICBUaGlzIGNsYXNzIHZhbGlkYXRlcyB0aGUgdmVyc2lvbiBpbiByYW5nZSBmdW5jdGlvbmFs aXR5Ci0gICAgYnkgZGVmaW5pbmcgZGlmZmVyZW50IHZlcnNpb24gc2NlbmFyaW9zOyB3aGVyZSBk aWN0IG9mCi0gICAgcGFyYW1ldGVycyBkZXNjcmliZXMgdGhlIHNjZW5hcmlvIGFwcGVuZGVkIGJ5 IHRlc3QgbmFtZS4KLSAgICAiIiIKK2NsYXNzIFRlc3RWZXJzaW9uSW5SYW5nZShvYmplY3QpOgor ICAgIGRlZiB0ZXN0X3ZlcnNpb25faW5fcmFuZ2VfcGc4XzIzKHNlbGYpOgorICAgICAgICAiIiIK KyAgICAgICAgV2hlbiBWYWxpZGF0aW5nIHBndmVyc2lvbiA4LjIzCisgICAgICAgIEFuZCB0aGUg bWluX3ZlcnNpb24gaXMgOTEwMDAKKyAgICAgICAgSXQgc2hvdWxkIHJldHVybiBmYWxzZQorICAg ICAgICAiIiIKIAotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKAotICAgICAgICAgICAgJ1Rl c3RDYXNlIGZvciBWYWxpZGF0aW5nIHBndmVyc2lvbiA4LjIzIGFuZCBtaW5fdmVyc2lvbiBpcyA5 MTAwMCwgJwotICAgICAgICAgICAgJ2l0IHNob3VsZCBub3Qgc2hvdycsIGRpY3QoCi0gICAgICAg ICAgICAgICAgc3ZlcnNpb249ODIzMDAsCi0gICAgICAgICAgICAgICAgbWluX3ZlcnNpb249OTAx MDAsCi0gICAgICAgICAgICAgICAgbWF4X3ZlcnNpb249MTAwMDAwMDAwMCwKLSAgICAgICAgICAg ICAgICBzY2VuYXJpbz0yCi0gICAgICAgICAgICApKSwKLSAgICAgICAgKAotICAgICAgICAgICAg J1Rlc3RDYXNlIGZvciBWYWxpZGF0aW5nIHBndmVyc2lvbiA5LjIsICcKLSAgICAgICAgICAgICdp dCBzaG91bGQgc2hvdyBieSBkZWZhdWx0JywgZGljdCgKLSAgICAgICAgICAgICAgICBzdmVyc2lv bj05MDIwMCwKLSAgICAgICAgICAgICAgICBtaW5fdmVyc2lvbj0wLAotICAgICAgICAgICAgICAg IG1heF92ZXJzaW9uPTEwMDAwMDAwMDAsCi0gICAgICAgICAgICAgICAgc2NlbmFyaW89MQotICAg ICAgICAgICAgKSksCi0gICAgICAgICgKLSAgICAgICAgICAgICdUZXN0Q2FzZSBmb3IgVmFsaWRh dGluZyBwZ3ZlcnNpb24gOS4yIGFuZCBtaW4vbWF4IGFyZSBOb25lLCAnCi0gICAgICAgICAgICAn aXQgc2hvdWxkIHNob3cgYnkgZGVmYXVsdCcsIGRpY3QoCi0gICAgICAgICAgICAgICAgc3ZlcnNp b249OTAyMDAsCi0gICAgICAgICAgICAgICAgbWluX3ZlcnNpb249Tm9uZSwKLSAgICAgICAgICAg ICAgICBtYXhfdmVyc2lvbj1Ob25lLAotICAgICAgICAgICAgICAgIHNjZW5hcmlvPTEKLSAgICAg ICAgICAgICkpLAotICAgICAgICAoCi0gICAgICAgICAgICAnVGVzdENhc2UgZm9yIFZhbGlkYXRp bmcgcGd2ZXJzaW9uIDkuNiBhbmQgbWF4IGlzIGxvd2VyLCAnCi0gICAgICAgICAgICAnaXQgc2hv dWxkIG5vdCBzaG93JywgZGljdCgKLSAgICAgICAgICAgICAgICBzdmVyc2lvbj05MDYwMCwKLSAg ICAgICAgICAgICAgICBtaW5fdmVyc2lvbj1Ob25lLAotICAgICAgICAgICAgICAgIG1heF92ZXJz aW9uPTkwNDAwLAotICAgICAgICAgICAgICAgIHNjZW5hcmlvPTIKLSAgICAgICAgICAgICkpCi0g ICAgXQorICAgICAgICByZXN1bHQgPSBpc192ZXJzaW9uX2luX3JhbmdlKAorICAgICAgICAgICAg ODIzMDAsCisgICAgICAgICAgICA5MDEwMCwKKyAgICAgICAgICAgIDEwMDAwMDAwMDAKKyAgICAg ICAgKQorCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5iZS5mYWxzZQorCisgICAgZGVmIHRlc3Rf dmVyc2lvbl9pbl9yYW5nZV9wZzlfMihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4g VmFsaWRhdGluZyBwZ3ZlcnNpb24gOS4yCisgICAgICAgIEl0IHNob3VsZCByZXR1cm4gdHJ1ZQor ICAgICAgICAiIiIKKworICAgICAgICByZXN1bHQgPSBpc192ZXJzaW9uX2luX3JhbmdlKAorICAg ICAgICAgICAgOTAyMDAsCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgMTAwMDAwMDAwMCwK KyAgICAgICAgKQogCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHNldFVwQ2xhc3MoY2xzKToK LSAgICAgICAgcGFzcworICAgICAgICByZXN1bHQgfCBzaG91bGQuYmUudHJ1ZQogCi0gICAgZGVm IHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBjaGVjayB2ZXJz aW9uIGluIHJhbmdlIGZ1bmN0aW9uYWxpdHkuIiIiCi0gICAgICAgIGlmIHNlbGYuc2NlbmFyaW8g PT0gMToKLSAgICAgICAgICAgIHNlbGYudGVzdF9yZXN1bHRfaXNfdHJ1ZSgpCi0gICAgICAgIGlm IHNlbGYuc2NlbmFyaW8gPT0gMjoKLSAgICAgICAgICAgIHNlbGYudGVzdF9yZXN1bHRfaXNfZmFs c2UoKQorICAgIGRlZiB0ZXN0X3ZlcnNpb25faW5fcmFuZ2VfcGc5X25vbmUoc2VsZik6CisgICAg ICAgICIiIgorICAgICAgICBXaGVuIFZhbGlkYXRpbmcgcGd2ZXJzaW9uIDkuMgorICAgICAgICBB bmQgdGhlIG1pbi9tYXggYXJlIE5vbmUKKyAgICAgICAgSXQgc2hvdWxkIHJldHVybiB0cnVlCisg ICAgICAgICIiIgogCi0gICAgZGVmIHRlc3RfcmVzdWx0X2lzX3RydWUoc2VsZik6Ci0gICAgICAg IHNlbGYuYXNzZXJ0VHJ1ZSgKLSAgICAgICAgICAgIGlzX3ZlcnNpb25faW5fcmFuZ2UoCi0gICAg ICAgICAgICAgICAgc2VsZi5zdmVyc2lvbiwKLSAgICAgICAgICAgICAgICBzZWxmLm1pbl92ZXJz aW9uLAotICAgICAgICAgICAgICAgIHNlbGYubWF4X3ZlcnNpb24KLSAgICAgICAgICAgICkKKyAg ICAgICAgcmVzdWx0ID0gaXNfdmVyc2lvbl9pbl9yYW5nZSgKKyAgICAgICAgICAgIDkwMjAwLAor ICAgICAgICAgICAgTm9uZSwKKyAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICkKIAotICAgIGRl ZiB0ZXN0X3Jlc3VsdF9pc19mYWxzZShzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgK LSAgICAgICAgICAgIGlzX3ZlcnNpb25faW5fcmFuZ2UoCi0gICAgICAgICAgICAgICAgc2VsZi5z dmVyc2lvbiwKLSAgICAgICAgICAgICAgICBzZWxmLm1pbl92ZXJzaW9uLAotICAgICAgICAgICAg ICAgIHNlbGYubWF4X3ZlcnNpb24KLSAgICAgICAgICAgICkKKyAgICAgICAgcmVzdWx0IHwgc2hv dWxkLmJlLnRydWUKKworICAgIGRlZiB0ZXN0X3ZlcnNpb25faW5fcmFuZ2VfcGc5XzZfbG93ZXJf bWF4KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBWYWxpZGF0aW5nIHBndmVyc2lv biA5LjYKKyAgICAgICAgQW5kIHRoZSBtYXggaXMgbG93ZXIKKyAgICAgICAgSXQgc2hvdWxkIHJl dHVybiBmYWxzZQorICAgICAgICAiIiIKKworICAgICAgICByZXN1bHQgPSBpc192ZXJzaW9uX2lu X3JhbmdlKAorICAgICAgICAgICAgOTA2MDAsCisgICAgICAgICAgICBOb25lLAorICAgICAgICAg ICAgOTA0MDAsCiAgICAgICAgICkKKworICAgICAgICByZXN1bHQgfCBzaG91bGQuYmUuZmFsc2UK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2NvbmZ0ZXN0LnB5IGIvd2ViL3BnYWRtaW4vY29uZnRl c3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjRhYjE3NGVkCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vY29uZnRlc3QucHkKQEAgLTAsMCArMSwyOTYgQEAK KyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMK KyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxOCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVh bQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2Vu Y2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworaW1wb3J0 IHB5dGVzdAorCitsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKK2ZpbGVfbmFt ZSA9IG9zLnBhdGguYmFzZW5hbWUoX19maWxlX18pCisKK0NVUlJFTlRfUEFUSCA9IG9zLnBhdGgu ZGlybmFtZShvcy5wYXRoLnJlYWxwYXRoKF9fZmlsZV9fKSkKKworcm9vdCA9IG9zLnBhdGguZGly bmFtZShDVVJSRU5UX1BBVEgpCisKK2lmIHN5cy5wYXRoWzBdICE9IHJvb3Q6CisgICAgc3lzLnBh dGguaW5zZXJ0KDAsIHJvb3QpCisgICAgb3MuY2hkaXIocm9vdCkKKworZnJvbSBwZ2FkbWluIGlt cG9ydCBjcmVhdGVfYXBwCitpbXBvcnQgY29uZmlnCitpZiBjb25maWcuU0VSVkVSX01PREUgaXMg VHJ1ZToKKyAgICBjb25maWcuU0VDVVJJVFlfUkVDT1ZFUkFCTEUgPSBUcnVlCisgICAgY29uZmln LlNFQ1VSSVRZX0NIQU5HRUFCTEUgPSBUcnVlCisgICAgY29uZmlnLlNFQ1VSSVRZX1BPU1RfQ0hB TkdFX1ZJRVcgPSAnYnJvd3Nlci5jaGFuZ2VfcGFzc3dvcmQnCisKK2Zyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMudXRpbHMgaW1wb3J0IFwK KyAgICBjbGllbnRfY29ubmVjdF9kYXRhYmFzZSwgY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2UK K2Zyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzCitmcm9tIHJlZ3Jlc3Npb24g aW1wb3J0IHRlc3Rfc2V0dXAKKworZnJvbSByZWdyZXNzaW9uLmZlYXR1cmVfdXRpbHMuYXBwX3N0 YXJ0ZXIgaW1wb3J0IEFwcFN0YXJ0ZXIKKworIyBEZWxldGUgU1FMaXRlIGRiIGZpbGUgaWYgZXhp c3RzCitpZiBvcy5wYXRoLmlzZmlsZShjb25maWcuVEVTVF9TUUxJVEVfUEFUSCk6CisgICAgb3Mu cmVtb3ZlKGNvbmZpZy5URVNUX1NRTElURV9QQVRIKQorCitvcy5lbnZpcm9uWyJQR0FETUlOX1RF U1RJTkdfTU9ERSJdID0gIjEiCisKKyMgRGlzYWJsZSB1cGdyYWRlIGNoZWNrcyAtIG5vIG5lZWQg ZHVyaW5nIHRlc3RpbmcsIGFuZCBpdCdsbCBjYXVzZSBhbiBlcnJvcgorIyBpZiB0aGVyZSdzIG5v IG5ldHdvcmsgY29ubmVjdGlvbiB3aGVuIGl0IHJ1bnMuCitjb25maWcuVVBHUkFERV9DSEVDS19F TkFCTEVEID0gRmFsc2UKKworcGdhZG1pbl9jcmVkZW50aWFscyA9IHRlc3Rfc2V0dXAuY29uZmln X2RhdGEKKworIyBTZXQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciBlbWFpbCBhbmQgcGFzc3dv cmQKK29zLmVudmlyb25bJ1BHQURNSU5fU0VUVVBfRU1BSUwnXSA9ICcnCitvcy5lbnZpcm9uWydQ R0FETUlOX1NFVFVQX1BBU1NXT1JEJ10gPSAnJworaWYgcGdhZG1pbl9jcmVkZW50aWFsczoKKyAg ICBpZiAncGdBZG1pbjRfbG9naW5fY3JlZGVudGlhbHMnIGluIHBnYWRtaW5fY3JlZGVudGlhbHM6 CisgICAgICAgIGlmIGFsbChpdGVtIGluIHBnYWRtaW5fY3JlZGVudGlhbHNbJ3BnQWRtaW40X2xv Z2luX2NyZWRlbnRpYWxzJ10KKyAgICAgICAgICAgICAgIGZvciBpdGVtIGluIFsnbG9naW5fdXNl cm5hbWUnLCAnbG9naW5fcGFzc3dvcmQnXSk6CisgICAgICAgICAgICBwZ2FkbWluX2NyZWRlbnRp YWxzID0gcGdhZG1pbl9jcmVkZW50aWFsc1sKKyAgICAgICAgICAgICAgICAncGdBZG1pbjRfbG9n aW5fY3JlZGVudGlhbHMnXQorICAgICAgICAgICAgb3MuZW52aXJvblsnUEdBRE1JTl9TRVRVUF9F TUFJTCddID0gc3RyKAorICAgICAgICAgICAgICAgIHBnYWRtaW5fY3JlZGVudGlhbHNbJ2xvZ2lu X3VzZXJuYW1lJ10pCisgICAgICAgICAgICBvcy5lbnZpcm9uWydQR0FETUlOX1NFVFVQX1BBU1NX T1JEJ10gPSBzdHIoCisgICAgICAgICAgICAgICAgcGdhZG1pbl9jcmVkZW50aWFsc1snbG9naW5f cGFzc3dvcmQnXSkKKworIyBFeGVjdXRlIHRoZSBzZXR1cCBmaWxlCitleGVjKG9wZW4ob3MucGF0 aC5qb2luKHJvb3QsICJzZXR1cC5weSIpKS5yZWFkKCkpCisKKyMgR2V0IHRoZSBjb25maWcgZGF0 YWJhc2Ugc2NoZW1hIHZlcnNpb24uIFdlIHN0b3JlIHRoaXMgaW4gcGdhZG1pbi5tb2RlbAorIyBh cyBpdCB0dXJucyBvdXQgdGhhdCBwdXR0aW5nIGl0IGluIHRoZSBjb25maWcgZmlsZXMgaXNuJ3Qg YSBncmVhdCBpZGVhCitmcm9tIHBnYWRtaW4ubW9kZWwgaW1wb3J0IFNDSEVNQV9WRVJTSU9OCisK KyMgRGVsYXkgdGhlIGltcG9ydCB0ZXN0X3V0aWxzIGFzIGl0IG5lZWRzIHVwZGF0ZWQgY29uZmln LlNRTElURV9QQVRICitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRl c3RfdXRpbHMKKworY29uZmlnLlNFVFRJTkdTX1NDSEVNQV9WRVJTSU9OID0gU0NIRU1BX1ZFUlNJ T04KKworIyBDcmVhdGUgdGhlIGFwcAorYXBwID0gY3JlYXRlX2FwcCgpCithcHAuY29uZmlnWydX VEZfQ1NSRl9FTkFCTEVEJ10gPSBGYWxzZQorYXBwLlBHQURNSU5fS0VZID0gJycKK2FwcC5jb25m aWcudXBkYXRlKHsnU0VTU0lPTl9DT09LSUVfRE9NQUlOJzogTm9uZX0pCit0ZXN0X2NsaWVudCA9 IGFwcC50ZXN0X2NsaWVudCgpCitkcml2ZXIgPSBOb25lCithcHBfc3RhcnRlciA9IE5vbmUKK2hh bmRsZV9jbGVhbnVwID0gTm9uZQorCitzZXJ2ZXJfaW5mbyA9IHRlc3RfdXRpbHMuZ2V0X2NvbmZp Z19kYXRhKCkKKworCitAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iLCBhdXRvdXNlPVRy dWUpCitkZWYgZGF0YWJhc2Vfc2VydmVyKCk6CisgICAgc2VydmVyX2luZm9ybWF0aW9uID0gdGVz dF91dGlscy5jcmVhdGVfcGFyZW50X3NlcnZlcl9ub2RlKHNlcnZlcl9pbmZvWzBdKQorCisgICAg eWllbGQgc2VydmVyX2luZm9ybWF0aW9uCisKKyAgICB0ZXN0X3V0aWxzLmRlbGV0ZV90ZXN0X3Nl cnZlcih0ZXN0X2NsaWVudCkKKworCitAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J3Nlc3Npb24nKQor ZGVmIGNvbnRleHRfb2ZfdGVzdHMoZGF0YWJhc2Vfc2VydmVyKToKKyAgICB5aWVsZCB7CisgICAg ICAgICdzZXJ2ZXJfaW5mb3JtYXRpb24nOiBkYXRhYmFzZV9zZXJ2ZXIsCisgICAgICAgICd0ZXN0 X2NsaWVudCc6IHRlc3RfY2xpZW50LAorICAgICAgICAnc2VydmVyJzogc2VydmVyX2luZm9bMF0K KyAgICB9CisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdzZXNzaW9uJykKK2RlZiBnYXRoZXJf Y3VycmVudF9kYXRhYmFzZV9pbmZvcm1hdGlvbihjb250ZXh0X29mX3Rlc3RzKToKKyAgICBzZXJ2 ZXJfaWQgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXVsnc2VydmVyX2lk J10KKyAgICBkYl9wYXNzd29yZCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddWydkYl9wYXNz d29yZCddCisgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCdd CisgICAgc2VydmVyX2NvbiA9IHNlcnZlcl91dGlscy5jbGllbnRfY29ubmVjdF9zZXJ2ZXIoaHR0 cF9jbGllbnQsIHNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkYl9wYXNzd29yZCkKKyAgICBzZXJ2ZXJfZGF0YSA9IE5vbmUKKyAg ICBpZiAnZGF0YScgaW4gc2VydmVyX2NvbjoKKyAgICAgICAgc2VydmVyX2RhdGEgPSBzZXJ2ZXJf Y29uWydkYXRhJ10KKyAgICB5aWVsZCBzZXJ2ZXJfZGF0YQorCisKK0BweXRlc3QuZml4dHVyZQor ZGVmIGdldF9zZXJ2ZXJfdHlwZShnYXRoZXJfY3VycmVudF9kYXRhYmFzZV9pbmZvcm1hdGlvbik6 CisgICAgc2VydmVyX3R5cGUgPSBOb25lCisgICAgaWYgZ2F0aGVyX2N1cnJlbnRfZGF0YWJhc2Vf aW5mb3JtYXRpb24gYW5kIFwKKyAgICAgICAndHlwZScgaW4gZ2F0aGVyX2N1cnJlbnRfZGF0YWJh c2VfaW5mb3JtYXRpb246CisgICAgICAgIHNlcnZlcl90eXBlID0gZ2F0aGVyX2N1cnJlbnRfZGF0 YWJhc2VfaW5mb3JtYXRpb25bJ3R5cGUnXQorICAgIHlpZWxkIHNlcnZlcl90eXBlCisKKworQHB5 dGVzdC5maXh0dXJlCitkZWYgZ2V0X3NlcnZlcl92ZXJzaW9uKGdhdGhlcl9jdXJyZW50X2RhdGFi YXNlX2luZm9ybWF0aW9uKToKKyAgICBzZXJ2ZXJfdmVyc2lvbiA9IE5vbmUKKyAgICBpZiBnYXRo ZXJfY3VycmVudF9kYXRhYmFzZV9pbmZvcm1hdGlvbiBhbmQgXAorICAgICAgICd2ZXJzaW9uJyBp biBnYXRoZXJfY3VycmVudF9kYXRhYmFzZV9pbmZvcm1hdGlvbjoKKyAgICAgICAgc2VydmVyX3Zl cnNpb24gPSBnYXRoZXJfY3VycmVudF9kYXRhYmFzZV9pbmZvcm1hdGlvblsndmVyc2lvbiddCisg ICAgeWllbGQgc2VydmVyX3ZlcnNpb24KKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiByZXF1aXJl X2RhdGFiYXNlX2Nvbm5lY3Rpb24oY29udGV4dF9vZl90ZXN0cyk6CisgICAgc2VydmVyX2RhdGEg PSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQorICAgIHNlcnZlcl9pZCA9 IHNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgIGRiX2lkID0gc2VydmVyX2RhdGFbJ2RiX2lk J10KKyAgICBodHRwX2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKwor ICAgIGRiX2NvbiA9IGNsaWVudF9jb25uZWN0X2RhdGFiYXNlKAorICAgICAgICBodHRwX2NsaWVu dCwKKyAgICAgICAgdGVzdF91dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgIHNlcnZlcl9pZCwK KyAgICAgICAgZGJfaWQsCisgICAgICAgIHNlcnZlcl9kYXRhWydkYl9wYXNzd29yZCddKQorICAg IGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAg IHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKKworICAg IHlpZWxkIGRiX2NvbgorCisgICAgY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2UoaHR0cF9jbGll bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRiX2lkKQorCisKK0BweXRlc3QuZml4dHVyZShzY29wZT0n c2Vzc2lvbicpCitkZWYgZHJpdmVyKCk6CisgICAgb3B0aW9ucyA9IE9wdGlvbnMoKQorICAgIGlm IHRlc3Rfc2V0dXAuY29uZmlnX2RhdGE6CisgICAgICAgIGlmICdoZWFkbGVzc19jaHJvbWUnIGlu IHRlc3Rfc2V0dXAuY29uZmlnX2RhdGE6CisgICAgICAgICAgICBpZiB0ZXN0X3NldHVwLmNvbmZp Z19kYXRhWydoZWFkbGVzc19jaHJvbWUnXToKKyAgICAgICAgICAgICAgICBvcHRpb25zLmFkZF9h cmd1bWVudCgiLS1oZWFkbGVzcyIpCisgICAgb3B0aW9ucy5hZGRfYXJndW1lbnQoIi0td2luZG93 LXNpemU9MTI4MHgxMDI0IikKKyAgICBkcml2ZXIgPSB3ZWJkcml2ZXIuQ2hyb21lKGNocm9tZV9v cHRpb25zPW9wdGlvbnMpCisKKyAgICBhcHBfc3RhcnRlciA9IEFwcFN0YXJ0ZXIoZHJpdmVyLCBj b25maWcpCisgICAgYXBwX3N0YXJ0ZXIuc3RhcnRfYXBwKCkKKworICAgIGhhbmRsZV9jbGVhbnVw ID0gdGVzdF91dGlscy5nZXRfY2xlYW51cF9oYW5kbGVyKHRlc3RfY2xpZW50LCBhcHBfc3RhcnRl cikKKyAgICAjIFJlZ2lzdGVyIGNsZWFudXAgZnVuY3Rpb24gdG8gY2xlYW51cCBvbiBleGl0Cisg ICAgYXRleGl0LnJlZ2lzdGVyKGhhbmRsZV9jbGVhbnVwKQorCisgICAgeWllbGQgZHJpdmVyCisK KworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdmdW5jdGlvbicsIGF1dG91c2U9VHJ1ZSkKK2RlZiBj aGVja19pZl90ZXN0X3Nob3VsZF9iZV9za2lwcGVkKHJlcXVlc3QsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnZXRfc2VydmVyX3R5cGUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBnZXRfc2VydmVyX3ZlcnNpb24pOgorICAgIF9fc2tpcF9pZl9kYXRh YmFzZShnZXRfc2VydmVyX3R5cGUsIHJlcXVlc3QpCisgICAgX19za2lwX2lmX3Bvc3RncmVzX3Zl cnNpb24oZ2V0X3NlcnZlcl92ZXJzaW9uLCByZXF1ZXN0KQorICAgIF9fc2tpcF9pZl9ub3RfaW5f c2VydmVyX21vZGUocmVxdWVzdCkKKworCitkZWYgX19za2lwX2lmX2RhdGFiYXNlKGdldF9zZXJ2 ZXJfdHlwZSwgcmVxdWVzdCk6CisgICAgaWYgcmVxdWVzdC5ub2RlLmdldF9tYXJrZXIoJ3NraXBf ZGF0YWJhc2VzJyk6CisgICAgICAgIGlmIGdldF9zZXJ2ZXJfdHlwZSBpbiBcCisgICAgICAgICAg IHJlcXVlc3Qubm9kZS5nZXRfbWFya2VyKCdza2lwX2RhdGFiYXNlcycpLmFyZ3NbMF06CisgICAg ICAgICAgICBweXRlc3Quc2tpcCgnY2Fubm90IHJ1biBpbjogJXMnICUKKyAgICAgICAgICAgICAg ICAgICAgICAgIGdldF9zZXJ2ZXJfdHlwZSkKKworCitkZWYgX19za2lwX2lmX3Bvc3RncmVzX3Zl cnNpb24oZ2V0X3NlcnZlcl92ZXJzaW9uLCByZXF1ZXN0KToKKyAgICBpZiByZXF1ZXN0Lm5vZGUu Z2V0X21hcmtlcignc2tpcF9pZl9wb3N0Z3Jlc192ZXJzaW9uJyk6CisgICAgICAgIHZlcnNpb25z ID0gXAorICAgICAgICAgICAgcmVxdWVzdC5ub2RlLmdldF9tYXJrZXIoJ3NraXBfaWZfcG9zdGdy ZXNfdmVyc2lvbicpLmFyZ3NbMF0KKyAgICAgICAgc2tpcF9tZXNzYWdlID0gXAorICAgICAgICAg ICAgcmVxdWVzdC5ub2RlLmdldF9tYXJrZXIoJ3NraXBfaWZfcG9zdGdyZXNfdmVyc2lvbicpLmFy Z3NbMV0KKyAgICAgICAgaWYgdmVyc2lvbnNbJ2JlbG93X3ZlcnNpb24nXSA+IGdldF9zZXJ2ZXJf dmVyc2lvbjoKKyAgICAgICAgICAgIHB5dGVzdC5za2lwKHNraXBfbWVzc2FnZSkKKworCitkZWYg X19za2lwX2lmX25vdF9pbl9zZXJ2ZXJfbW9kZShyZXF1ZXN0KToKKyAgICBpZiByZXF1ZXN0Lm5v ZGUuZ2V0X21hcmtlcignc2tpcF9pZl9ub3RfaW5fc2VydmVyX21vZGUnKToKKyAgICAgICAgaWYg bm90IGNvbmZpZy5TRVJWRVJfTU9ERToKKyAgICAgICAgICAgIHB5dGVzdC5za2lwKCdUaGUgYXBw bGljYXRpb24gbmVlZCB0byBiZSBpbiBzZXJ2ZXIgbW9kZScpCisKKworZGVmIHB5dGVzdF9nZW5l cmF0ZV90ZXN0cyhtZXRhZnVuYyk6CisgICAgaWYgbm90IGhhc2F0dHIobWV0YWZ1bmMuY2xzLCAn c2NlbmFyaW9zJyk6CisgICAgICAgIHJldHVybgorCisgICAgbGlzdF9vZl9zY2VuYXJpb19uYW1l cyA9IFtdCisgICAgc2NlbmFyaW9fcGFyYW1ldGVycyA9IFtdCisgICAgZm9yIHNjZW5hcmlvIGlu IG1ldGFmdW5jLmNscy5zY2VuYXJpb3M6CisgICAgICAgIGxpc3Rfb2Zfc2NlbmFyaW9fbmFtZXMu YXBwZW5kKHNjZW5hcmlvWzBdKQorICAgICAgICBzY2VuYXJpb19wYXJhbWV0ZXJzLmFwcGVuZCgo JycsIHNjZW5hcmlvWzFdKSkKKyAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgnYXJncyxrd2FyZ3Mn LAorICAgICAgICAgICAgICAgICAgICAgICAgIHNjZW5hcmlvX3BhcmFtZXRlcnMsCisgICAgICAg ICAgICAgICAgICAgICAgICAgaWRzPWxpc3Rfb2Zfc2NlbmFyaW9fbmFtZXMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgc2NvcGU9ImNsYXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBp bmRpcmVjdD1GYWxzZSkKKworCitkZWYgcHl0ZXN0X2l0ZW1jb2xsZWN0ZWQoaXRlbSk6CisgICAg cGFyID0gaXRlbS5wYXJlbnQub2JqCisgICAgbm9kZSA9IGl0ZW0ub2JqCisgICAgcHJlZiA9IHBh ci5fX2RvY19fLnN0cmlwKCkgaWYgcGFyLl9fZG9jX18gZWxzZSBwYXIuX19jbGFzc19fLl9fbmFt ZV9fCisgICAgc3VmID0gbm9kZS5fX2RvY19fLnN0cmlwKCkgaWYgbm9kZS5fX2RvY19fIGVsc2Ug bm9kZS5fX25hbWVfXworICAgIGlmIGl0ZW0uX2dlbmlkIGlzIG5vdCBOb25lOgorICAgICAgICBz dWYgPSBpdGVtLl9nZW5pZAorCisgICAgaWYgcHJlZiBvciBzdWY6CisgICAgICAgIGl0ZW0uX25v ZGVpZCA9ICcgJy5qb2luKChwcmVmLCBzdWYpKQorCisKK2RlZiBzaWdfaGFuZGxlcihzaWdubywg ZnJhbWUpOgorICAgIGdsb2JhbCBoYW5kbGVfY2xlYW51cAorICAgIGlmIGhhbmRsZV9jbGVhbnVw OgorICAgICAgICAjIFVuc2V0IGVudmlyb25tZW50IHZhcmlhYmxlCisgICAgICAgIGRlbCBvcy5l bnZpcm9uWyJQR0FETUlOX1RFU1RJTkdfTU9ERSJdCisKKyAgICAgICAgaGFuZGxlX2NsZWFudXAo KQorCisKK2NsYXNzIFN0cmVhbVRvTG9nZ2VyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNl bGYsIGxvZ2dlciwgbG9nX2xldmVsPWxvZ2dpbmcuSU5GTyk6CisgICAgICAgIHNlbGYudGVybWlu YWwgPSBzeXMuc3RkZXJyCisgICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCisgICAgICAgIHNl bGYubG9nX2xldmVsID0gbG9nX2xldmVsCisgICAgICAgIHNlbGYubGluZWJ1ZiA9ICcnCisKKyAg ICBkZWYgd3JpdGUoc2VsZiwgYnVmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rp b24gd3JpdGVzIHRoZSBsb2cgaW4gdGhlIGxvZ2dlciBmaWxlIGFzIHdlbGwgYXMgb24gY29uc29s ZQorCisgICAgICAgIDpwYXJhbSBidWY6IGxvZyBtZXNzYWdlCisgICAgICAgIDp0eXBlIGJ1Zjog c3RyCisgICAgICAgIDpyZXR1cm46IE5vbmUKKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VsZi50 ZXJtaW5hbC53cml0ZShidWYpCisgICAgICAgIGZvciBsaW5lIGluIGJ1Zi5yc3RyaXAoKS5zcGxp dGxpbmVzKCk6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5sb2coc2VsZi5sb2dfbGV2ZWwsIGxp bmUucnN0cmlwKCkpCisKKyAgICBkZWYgZmx1c2goc2VsZik6CisgICAgICAgIHBhc3MKKworCisj IFNldCBzaWduYWwgaGFuZGxlciBmb3IgY2xlYW51cAorc2lnbmFsX2xpc3QgPSBkaXIoc2lnbmFs KQorcmVxdWlyZWRfc2lnbmFsX2xpc3QgPSBbJ1NJR1RFUk0nLCAnU0lHQUJSVCcsICdTSUdRVUlU JywgJ1NJR0lOVCddCisjIEdldCB0aGUgT1Mgd2lzZSBzdXBwb3J0ZWQgc2lnbmFscworc3VwcG9y dGVkX3NpZ25hbF9saXN0ID0gW3NpZyBmb3Igc2lnIGluIHJlcXVpcmVkX3NpZ25hbF9saXN0IGlm CisgICAgICAgICAgICAgICAgICAgICAgICAgc2lnIGluIHNpZ25hbF9saXN0XQorZm9yIHNpZyBp biBzdXBwb3J0ZWRfc2lnbmFsX2xpc3Q6CisgICAgc2lnbmFsLnNpZ25hbChnZXRhdHRyKHNpZ25h bCwgc2lnKSwgc2lnX2hhbmRsZXIpCisKKyMgU2V0IGJhc2ljIGxvZ2dpbmcgY29uZmlndXJhdGlv biBmb3IgbG9nIGZpbGUKK2xvZ2dpbmcuYmFzaWNDb25maWcoCisgICAgbGV2ZWw9bG9nZ2luZy5E RUJVRywKKyAgICBmb3JtYXQ9JyUoYXNjdGltZSlzOiUobGV2ZWxuYW1lKXM6JShuYW1lKXM6JSht ZXNzYWdlKXMnLAorICAgIGZpbGVuYW1lPShyb290ICsgb3MucGF0aC5zZXAgKyAncmVncmVzc2lv bicgKyBvcy5wYXRoLnNlcCArCisgICAgICAgICAgICAgICJyZWdyZXNzaW9uLmxvZyIpLAorICAg IGZpbGVtb2RlPSd3JworKQorCisjIENyZWF0ZSBsb2dnZXIgdG8gd3JpdGUgbG9nIGluIHRoZSBs b2dnZXIgZmlsZSBhcyB3ZWxsIGFzIG9uIGNvbnNvbGUKK3N0ZGVycl9sb2dnZXIgPSBsb2dnaW5n LmdldExvZ2dlcignU1RERVJSJykKK3N5cy5zdGRlcnIgPSBTdHJlYW1Ub0xvZ2dlcihzdGRlcnJf bG9nZ2VyLCBsb2dnaW5nLkVSUk9SKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vZGFzaGJvYXJk L3Rlc3RzL3Rlc3RfZGFzaGJvYXJkX3RlbXBsYXRlcy5weSBiL3dlYi9wZ2FkbWluL2Rhc2hib2Fy ZC90ZXN0cy90ZXN0X2Rhc2hib2FyZF90ZW1wbGF0ZXMucHkKaW5kZXggZGQyNGJkZGMuLmEzNDA2 NDcyIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9kYXNoYm9hcmQvdGVzdHMvdGVzdF9kYXNoYm9h cmRfdGVtcGxhdGVzLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Rhc2hib2FyZC90ZXN0cy90ZXN0X2Rh c2hib2FyZF90ZW1wbGF0ZXMucHkKQEAgLTEwLDkgKzEwLDEwIEBACiBpbXBvcnQgb3MKIGltcG9y dCBzeXMKIGZyb20gZmxhc2sgaW1wb3J0IEZsYXNrLCByZW5kZXJfdGVtcGxhdGUKK2Zyb20gZ3Jh cHBhIGltcG9ydCBzaG91bGQKIGZyb20gamluamEyIGltcG9ydCBGaWxlU3lzdGVtTG9hZGVyCiBm cm9tIHBnYWRtaW4gaW1wb3J0IFZlcnNpb25lZFRlbXBsYXRlTG9hZGVyCi1mcm9tIHBnYWRtaW4u dXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMu YmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKIAogaWYgc3lzLnZl cnNpb25faW5mbyA8ICgzLCAzKToKICAgICBmcm9tIG1vY2sgaW1wb3J0IE1hZ2ljTW9jawpAQCAt NjEsMTk4ICs2MiwxODIgQEAgREFUQUJBU0VfSUQgPSAxMjMKIF8gPSBNYWdpY01vY2soc2lkZV9l ZmZlY3Q9bGFtYmRhIHg6IHgpCiAKIAotY2xhc3MgVGVzdERhc2hib2FyZFRlbXBsYXRlcyhCYXNl VGVzdEdlbmVyYXRvcik6Ci0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIFNlcnZlciBkYXNo Ym9hcmQKLSAgICAgICAgKAotICAgICAgICAgICAgJ0Rhc2hib2FyZCwgd2hlbiByZXR1cm5pbmcg dGhlIGh0bWwgcGFnZSB3aXRoIGdyYXBocyBhbmQgJwotICAgICAgICAgICAgJ3NlcnZlciBhY3Rp dml0eSByZWxhdGVkIGh0bWwgZWxlbWVudHMgZm9yIHNlcnZlciBkYXNoYm9hcmQnLAotICAgICAg ICAgICAgZGljdCgKLSAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9wYXRoPSdkYXNoYm9hcmQvc2Vy dmVyX2Rhc2hib2FyZC5odG1sJywKLSAgICAgICAgICAgICAgICBpbnB1dF9wYXJhbWV0ZXJzPWRp Y3QoCi0gICAgICAgICAgICAgICAgICAgIHNpZD1TRVJWRVJfSUQsCi0gICAgICAgICAgICAgICAg ICAgIGRpZD1Ob25lLAotICAgICAgICAgICAgICAgICAgICByYXRlcz1SQVRFUywKLSAgICAgICAg ICAgICAgICAgICAgdmVyc2lvbj1WRVJTSU9OLAotICAgICAgICAgICAgICAgICAgICBzZXR0aW5n cz1ESVNQTEFZX0RBU0hCT0FSRFsnYm90aCddLAotICAgICAgICAgICAgICAgICAgICBfPV8KLSAg ICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgIGV4cGVjdGVkX3JldHVybl92YWx1ZT1b Ci0gICAgICAgICAgICAgICAgICAgICdTZXJ2ZXIgc2Vzc2lvbnMnLAotICAgICAgICAgICAgICAg ICAgICAnU2VydmVyIGFjdGl2aXR5JwotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAg ICAgbm90X2V4cGVjdGVkX3JldHVybl92YWx1ZT1bXQotICAgICAgICAgICAgKQotICAgICAgICAp LAotICAgICAgICAoCi0gICAgICAgICAgICAnRGFzaGJvYXJkLCB3aGVuIHJldHVybmluZyB0aGUg aHRtbCBwYWdlIHdpdGggb25seSBncmFwaHMgJwotICAgICAgICAgICAgJ3JlbGF0ZWQgaHRtbCBl bGVtZW50cyBmb3Igc2VydmVyIGRhc2hib2FyZCcsCi0gICAgICAgICAgICBkaWN0KAotICAgICAg ICAgICAgICAgIHRlbXBsYXRlX3BhdGg9J2Rhc2hib2FyZC9zZXJ2ZXJfZGFzaGJvYXJkLmh0bWwn LAotICAgICAgICAgICAgICAgIGlucHV0X3BhcmFtZXRlcnM9ZGljdCgKLSAgICAgICAgICAgICAg ICAgICAgc2lkPVNFUlZFUl9JRCwKLSAgICAgICAgICAgICAgICAgICAgZGlkPU5vbmUsCi0gICAg ICAgICAgICAgICAgICAgIHJhdGVzPVJBVEVTLAotICAgICAgICAgICAgICAgICAgICB2ZXJzaW9u PVZFUlNJT04sCi0gICAgICAgICAgICAgICAgICAgIHNldHRpbmdzPURJU1BMQVlfREFTSEJPQVJE Wydvbmx5X2dyYXBocyddLAotICAgICAgICAgICAgICAgICAgICBfPV8KLSAgICAgICAgICAgICAg ICApLAotICAgICAgICAgICAgICAgIGV4cGVjdGVkX3JldHVybl92YWx1ZT1bCi0gICAgICAgICAg ICAgICAgICAgICdTZXJ2ZXIgc2Vzc2lvbnMnCi0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAg ICAgICAgICBub3RfZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPVsKLSAgICAgICAgICAgICAgICAgICAg J1NlcnZlciBhY3Rpdml0eScKLSAgICAgICAgICAgICAgICBdCitjbGFzcyBUZXN0RGFzaGJvYXJk VGVtcGxhdGVzOgorICAgIGRlZiB0ZXN0RGFzaGJvYXJkVGVtcGxHcmFwaHNBbmRTZXJ2ZXIoc2Vs Zik6CisgICAgICAgICIiIgorICAgICAgICBEYXNoYm9hcmQgc2hvdWxkIGJlIGFibGUgdG8gcmVu ZGVyIGh0bWwgcGFnZSB3aXRoIGdyYXBocworICAgICAgICBhbmQgc2VydmVyIGFjdGl2aXR5IHJl bGF0ZWQgZWxlbWVudHMKKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VsZi5sb2FkZXIgPSBWZXJz aW9uZWRUZW1wbGF0ZUxvYWRlcihGYWtlQXBwKCkpCisKKyAgICAgICAgd2l0aCBGYWtlQXBwKCku YXBwX2NvbnRleHQoKToKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAg ICAgICAgICAgICAgICAnZGFzaGJvYXJkL3NlcnZlcl9kYXNoYm9hcmQuaHRtbCcsCisgICAgICAg ICAgICAgICAgc2lkPVNFUlZFUl9JRCwKKyAgICAgICAgICAgICAgICBkaWQ9Tm9uZSwKKyAgICAg ICAgICAgICAgICByYXRlcz1SQVRFUywKKyAgICAgICAgICAgICAgICB2ZXJzaW9uPVZFUlNJT04s CisgICAgICAgICAgICAgICAgc2V0dGluZ3M9RElTUExBWV9EQVNIQk9BUkRbJ2JvdGgnXSwKKyAg ICAgICAgICAgICAgICBfPV8KICAgICAgICAgICAgICkKLSAgICAgICAgKSwKLSAgICAgICAgKAot ICAgICAgICAgICAgJ0Rhc2hib2FyZCwgd2hlbiByZXR1cm5pbmcgdGhlIGh0bWwgcGFnZSB3aXRo IG9ubHkgc2VydmVyICcKLSAgICAgICAgICAgICdhY3Rpdml0eSByZWxhdGVkIGh0bWwgZWxlbWVu dHMgZm9yIHNlcnZlciBkYXNoYm9hcmQnLAotICAgICAgICAgICAgZGljdCgKLSAgICAgICAgICAg ICAgICB0ZW1wbGF0ZV9wYXRoPSdkYXNoYm9hcmQvc2VydmVyX2Rhc2hib2FyZC5odG1sJywKLSAg ICAgICAgICAgICAgICBpbnB1dF9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgICAg IHNpZD1TRVJWRVJfSUQsCi0gICAgICAgICAgICAgICAgICAgIGRpZD1Ob25lLAotICAgICAgICAg ICAgICAgICAgICByYXRlcz1SQVRFUywKLSAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1WRVJT SU9OLAotICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncz1ESVNQTEFZX0RBU0hCT0FSRFsnb25s eV9zZXJ2ZXJfYWN0aXZpdHknXSwKLSAgICAgICAgICAgICAgICAgICAgXz1fCi0gICAgICAgICAg ICAgICAgKSwKLSAgICAgICAgICAgICAgICBleHBlY3RlZF9yZXR1cm5fdmFsdWU9WwotICAgICAg ICAgICAgICAgICAgICAnU2VydmVyIGFjdGl2aXR5JwotICAgICAgICAgICAgICAgIF0sCi0gICAg ICAgICAgICAgICAgbm90X2V4cGVjdGVkX3JldHVybl92YWx1ZT1bCi0gICAgICAgICAgICAgICAg ICAgICdTZXJ2ZXIgc2Vzc2lvbnMnCi0gICAgICAgICAgICAgICAgXQorCisgICAgICAgICAgICBy ZXN1bHQgfCBzaG91bGQuY29udGFpbigiU2VydmVyIHNlc3Npb25zIikKKyAgICAgICAgICAgIHJl c3VsdCB8IHNob3VsZC5jb250YWluKCJTZXJ2ZXIgYWN0aXZpdHkiKQorCisgICAgZGVmIHRlc3RE YXNoYm9hcmRUZW1wbEdyYXBocyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIERhc2hib2Fy ZCBzaG91bGQgYmUgYWJsZSB0byByZW5kZXIgaHRtbCBwYWdlCisgICAgICAgIHdpdGggb25seSBn cmFwaCByZWxhdGVkIGVsZW1lbnRzCisgICAgICAgICIiIgorCisgICAgICAgIHNlbGYubG9hZGVy ID0gVmVyc2lvbmVkVGVtcGxhdGVMb2FkZXIoRmFrZUFwcCgpKQorCisgICAgICAgIHdpdGggRmFr ZUFwcCgpLmFwcF9jb250ZXh0KCk6CisgICAgICAgICAgICByZXN1bHQgPSByZW5kZXJfdGVtcGxh dGUoCisgICAgICAgICAgICAgICAgJ2Rhc2hib2FyZC9zZXJ2ZXJfZGFzaGJvYXJkLmh0bWwnLAor ICAgICAgICAgICAgICAgIHNpZD1TRVJWRVJfSUQsCisgICAgICAgICAgICAgICAgZGlkPU5vbmUs CisgICAgICAgICAgICAgICAgcmF0ZXM9UkFURVMsCisgICAgICAgICAgICAgICAgdmVyc2lvbj1W RVJTSU9OLAorICAgICAgICAgICAgICAgIHNldHRpbmdzPURJU1BMQVlfREFTSEJPQVJEWydvbmx5 X2dyYXBocyddLAorICAgICAgICAgICAgICAgIF89XwogICAgICAgICAgICAgKQotICAgICAgICAp LAotICAgICAgICAoCi0gICAgICAgICAgICAnRGFzaGJvYXJkLCB3aGVuIHJldHVybmluZyB0aGUg aHRtbCBwYWdlIHdpdGggbmVpdGhlciAnCi0gICAgICAgICAgICAnZ3JhcGhzIG5vciBzZXJ2ZXIg YWN0aXZpdHkgcmVsYXRlZCBodG1sIGVsZW1lbnRzIGZvciBzZXJ2ZXIgJwotICAgICAgICAgICAg J2Rhc2hib2FyZCcsCi0gICAgICAgICAgICBkaWN0KAotICAgICAgICAgICAgICAgIHRlbXBsYXRl X3BhdGg9J2Rhc2hib2FyZC9zZXJ2ZXJfZGFzaGJvYXJkLmh0bWwnLAotICAgICAgICAgICAgICAg IGlucHV0X3BhcmFtZXRlcnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgc2lkPVNFUlZFUl9J RCwKLSAgICAgICAgICAgICAgICAgICAgZGlkPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgIHJh dGVzPVJBVEVTLAotICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVZFUlNJT04sCi0gICAgICAg ICAgICAgICAgICAgIHNldHRpbmdzPURJU1BMQVlfREFTSEJPQVJEWydub25lJ10sCi0gICAgICAg ICAgICAgICAgICAgIF89XwotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgZXhw ZWN0ZWRfcmV0dXJuX3ZhbHVlPVtdLAotICAgICAgICAgICAgICAgIG5vdF9leHBlY3RlZF9yZXR1 cm5fdmFsdWU9WwotICAgICAgICAgICAgICAgICAgICAnU2VydmVyIGFjdGl2aXR5JywKLSAgICAg ICAgICAgICAgICAgICAgJ1NlcnZlciBzZXNzaW9ucycKLSAgICAgICAgICAgICAgICBdCisKKyAg ICAgICAgICAgIHJlc3VsdCB8IHNob3VsZC5jb250YWluKCJTZXJ2ZXIgc2Vzc2lvbnMiKQorICAg ICAgICAgICAgcmVzdWx0IHwgc2hvdWxkLl9ub3QuY29udGFpbigiU2VydmVyIGFjdGl2aXR5IikK KworICAgIGRlZiB0ZXN0RGFzaGJvYXJkVGVtcGxTZXJ2ZXIoc2VsZik6CisgICAgICAgICIiIgor ICAgICAgICBEYXNoYm9hcmQgc2hvdWxkIGJlIGFibGUgdG8gcmVuZGVyIGh0bWwgcGFnZQorICAg ICAgICB3aXRoIG9ubHkgc2VydmVyIGFjdGl2aXR5IHJlbGF0ZWQgZWxlbWVudHMKKyAgICAgICAg IiIiCisKKyAgICAgICAgc2VsZi5sb2FkZXIgPSBWZXJzaW9uZWRUZW1wbGF0ZUxvYWRlcihGYWtl QXBwKCkpCisKKyAgICAgICAgd2l0aCBGYWtlQXBwKCkuYXBwX2NvbnRleHQoKToKKyAgICAgICAg ICAgIHJlc3VsdCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAnZGFzaGJvYXJk L3NlcnZlcl9kYXNoYm9hcmQuaHRtbCcsCisgICAgICAgICAgICAgICAgc2lkPVNFUlZFUl9JRCwK KyAgICAgICAgICAgICAgICBkaWQ9Tm9uZSwKKyAgICAgICAgICAgICAgICByYXRlcz1SQVRFUywK KyAgICAgICAgICAgICAgICB2ZXJzaW9uPVZFUlNJT04sCisgICAgICAgICAgICAgICAgc2V0dGlu Z3M9RElTUExBWV9EQVNIQk9BUkRbJ29ubHlfc2VydmVyX2FjdGl2aXR5J10sCisgICAgICAgICAg ICAgICAgXz1fCiAgICAgICAgICAgICApCi0gICAgICAgICksCi0gICAgICAgICMgRGF0YWJhc2Ug ZGFzaGJvYXJkCi0gICAgICAgICgKLSAgICAgICAgICAgICdEYXNoYm9hcmQsIHdoZW4gcmV0dXJu aW5nIHRoZSBodG1sIHBhZ2Ugd2l0aCBncmFwaHMgYW5kICcKLSAgICAgICAgICAgICdkYXRhYmFz ZSBhY3Rpdml0eSByZWxhdGVkIGh0bWwgZWxlbWVudHMgZm9yIGRhdGFiYXNlIGRhc2hib2FyZCcs Ci0gICAgICAgICAgICBkaWN0KAotICAgICAgICAgICAgICAgIHRlbXBsYXRlX3BhdGg9J2Rhc2hi b2FyZC9kYXRhYmFzZV9kYXNoYm9hcmQuaHRtbCcsCi0gICAgICAgICAgICAgICAgaW5wdXRfcGFy YW1ldGVycz1kaWN0KAotICAgICAgICAgICAgICAgICAgICBzaWQ9U0VSVkVSX0lELAotICAgICAg ICAgICAgICAgICAgICBkaWQ9REFUQUJBU0VfSUQsCi0gICAgICAgICAgICAgICAgICAgIHJhdGVz PVJBVEVTLAotICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVZFUlNJT04sCi0gICAgICAgICAg ICAgICAgICAgIHNldHRpbmdzPURJU1BMQVlfREFTSEJPQVJEWydib3RoJ10sCi0gICAgICAgICAg ICAgICAgICAgIF89XwotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgZXhwZWN0 ZWRfcmV0dXJuX3ZhbHVlPVsKLSAgICAgICAgICAgICAgICAgICAgJ0RhdGFiYXNlIHNlc3Npb25z JywKLSAgICAgICAgICAgICAgICAgICAgJ0RhdGFiYXNlIGFjdGl2aXR5JwotICAgICAgICAgICAg ICAgIF0sCi0gICAgICAgICAgICAgICAgbm90X2V4cGVjdGVkX3JldHVybl92YWx1ZT1bXQorCisg ICAgICAgICAgICByZXN1bHQgfCBzaG91bGQuY29udGFpbigiU2VydmVyIGFjdGl2aXR5IikKKyAg ICAgICAgICAgIHJlc3VsdCB8IHNob3VsZC5fbm90LmNvbnRhaW4oIlNlcnZlciBzZXNzaW9ucyIp CisKKyAgICBkZWYgdGVzdERhc2hib2FyZFRlbXBsTm9uZShzZWxmKToKKyAgICAgICAgIiIiCisg ICAgICAgIERhc2hib2FyZCBzaG91bGQgYmUgYWJsZSB0byByZW5kZXIgaHRtbCBwYWdlCisgICAg ICAgIHdpdGggb25seSBzZXJ2ZXIgYWN0aXZpdHkgcmVsYXRlZCBlbGVtZW50cworICAgICAgICAi IiIKKworICAgICAgICBzZWxmLmxvYWRlciA9IFZlcnNpb25lZFRlbXBsYXRlTG9hZGVyKEZha2VB cHAoKSkKKworICAgICAgICB3aXRoIEZha2VBcHAoKS5hcHBfY29udGV4dCgpOgorICAgICAgICAg ICAgcmVzdWx0ID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICdkYXNoYm9hcmQv c2VydmVyX2Rhc2hib2FyZC5odG1sJywKKyAgICAgICAgICAgICAgICBzaWQ9U0VSVkVSX0lELAor ICAgICAgICAgICAgICAgIGRpZD1Ob25lLAorICAgICAgICAgICAgICAgIHJhdGVzPVJBVEVTLAor ICAgICAgICAgICAgICAgIHZlcnNpb249VkVSU0lPTiwKKyAgICAgICAgICAgICAgICBzZXR0aW5n cz1ESVNQTEFZX0RBU0hCT0FSRFsnbm9uZSddLAorICAgICAgICAgICAgICAgIF89XwogICAgICAg ICAgICAgKQotICAgICAgICApLAotICAgICAgICAoCi0gICAgICAgICAgICAnRGFzaGJvYXJkLCB3 aGVuIHJldHVybmluZyB0aGUgaHRtbCBwYWdlIHdpdGggb25seSAnCi0gICAgICAgICAgICAnZ3Jh cGhzIHJlbGF0ZWQgaHRtbCBlbGVtZW50cyBmb3IgZGF0YWJhc2UgZGFzaGJvYXJkJywKLSAgICAg ICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgICAgdGVtcGxhdGVfcGF0aD0nZGFzaGJvYXJkL2Rh dGFiYXNlX2Rhc2hib2FyZC5odG1sJywKLSAgICAgICAgICAgICAgICBpbnB1dF9wYXJhbWV0ZXJz PWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIHNpZD1TRVJWRVJfSUQsCi0gICAgICAgICAgICAg ICAgICAgIGRpZD1EQVRBQkFTRV9JRCwKLSAgICAgICAgICAgICAgICAgICAgcmF0ZXM9UkFURVMs Ci0gICAgICAgICAgICAgICAgICAgIHZlcnNpb249VkVSU0lPTiwKLSAgICAgICAgICAgICAgICAg ICAgc2V0dGluZ3M9RElTUExBWV9EQVNIQk9BUkRbJ29ubHlfZ3JhcGhzJ10sCi0gICAgICAgICAg ICAgICAgICAgIF89XwotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgZXhwZWN0 ZWRfcmV0dXJuX3ZhbHVlPVsKLSAgICAgICAgICAgICAgICAgICAgJ0RhdGFiYXNlIHNlc3Npb25z JwotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgbm90X2V4cGVjdGVkX3JldHVy bl92YWx1ZT1bCi0gICAgICAgICAgICAgICAgICAgICdEYXRhYmFzZSBhY3Rpdml0eScKLSAgICAg ICAgICAgICAgICBdCisKKyAgICAgICAgICAgIHJlc3VsdCB8IHNob3VsZC5fbm90LmNvbnRhaW4o IlNlcnZlciBhY3Rpdml0eSIpCisgICAgICAgICAgICByZXN1bHQgfCBzaG91bGQuX25vdC5jb250 YWluKCJTZXJ2ZXIgc2Vzc2lvbnMiKQorCisgICAgZGVmIHRlc3REQkRhc2hib2FyZFRlbXBsR3Jh cGhzQW5kU2VydmVyKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgREIgRGFzaGJvYXJkIHNo b3VsZCBiZSBhYmxlIHRvIHJlbmRlciBodG1sIHBhZ2Ugd2l0aCBncmFwaHMKKyAgICAgICAgYW5k IHNlcnZlciBhY3Rpdml0eSByZWxhdGVkIGVsZW1lbnRzCisgICAgICAgICIiIgorCisgICAgICAg IHNlbGYubG9hZGVyID0gVmVyc2lvbmVkVGVtcGxhdGVMb2FkZXIoRmFrZUFwcCgpKQorCisgICAg ICAgIHdpdGggRmFrZUFwcCgpLmFwcF9jb250ZXh0KCk6CisgICAgICAgICAgICByZXN1bHQgPSBy ZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgJ2Rhc2hib2FyZC9kYXRhYmFzZV9kYXNo Ym9hcmQuaHRtbCcsCisgICAgICAgICAgICAgICAgc2lkPVNFUlZFUl9JRCwKKyAgICAgICAgICAg ICAgICBkaWQ9Tm9uZSwKKyAgICAgICAgICAgICAgICByYXRlcz1SQVRFUywKKyAgICAgICAgICAg ICAgICB2ZXJzaW9uPVZFUlNJT04sCisgICAgICAgICAgICAgICAgc2V0dGluZ3M9RElTUExBWV9E QVNIQk9BUkRbJ2JvdGgnXSwKKyAgICAgICAgICAgICAgICBfPV8KICAgICAgICAgICAgICkKLSAg ICAgICAgKSwKLSAgICAgICAgKAotICAgICAgICAgICAgJ0Rhc2hib2FyZCwgd2hlbiByZXR1cm5p bmcgdGhlIGh0bWwgcGFnZSB3aXRoIG9ubHkgJwotICAgICAgICAgICAgJ2RhdGFiYXNlIGFjdGl2 aXR5IHJlbGF0ZWQgaHRtbCBlbGVtZW50cyBmb3IgZGF0YWJhc2UgZGFzaGJvYXJkJywKLSAgICAg ICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgICAgdGVtcGxhdGVfcGF0aD0nZGFzaGJvYXJkL2Rh dGFiYXNlX2Rhc2hib2FyZC5odG1sJywKLSAgICAgICAgICAgICAgICBpbnB1dF9wYXJhbWV0ZXJz PWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIHNpZD1TRVJWRVJfSUQsCi0gICAgICAgICAgICAg ICAgICAgIGRpZD1EQVRBQkFTRV9JRCwKLSAgICAgICAgICAgICAgICAgICAgcmF0ZXM9UkFURVMs Ci0gICAgICAgICAgICAgICAgICAgIHZlcnNpb249VkVSU0lPTiwKLSAgICAgICAgICAgICAgICAg ICAgc2V0dGluZ3M9RElTUExBWV9EQVNIQk9BUkRbJ29ubHlfc2VydmVyX2FjdGl2aXR5J10sCi0g ICAgICAgICAgICAgICAgICAgIF89XwotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAg ICAgZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPVsKLSAgICAgICAgICAgICAgICAgICAgJ0RhdGFiYXNl IGFjdGl2aXR5JwotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgbm90X2V4cGVj dGVkX3JldHVybl92YWx1ZT1bCi0gICAgICAgICAgICAgICAgICAgICdEYXRhYmFzZSBzZXNzaW9u cycKLSAgICAgICAgICAgICAgICBdCisKKyAgICAgICAgICAgIHJlc3VsdCB8IHNob3VsZC5jb250 YWluKCJEYXRhYmFzZSBzZXNzaW9ucyIpCisgICAgICAgICAgICByZXN1bHQgfCBzaG91bGQuY29u dGFpbigiRGF0YWJhc2UgYWN0aXZpdHkiKQorCisgICAgZGVmIHRlc3REQkRhc2hib2FyZFRlbXBs R3JhcGhzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgREIgRGFzaGJvYXJkIHNob3VsZCBi ZSBhYmxlIHRvIHJlbmRlciBodG1sIHBhZ2UKKyAgICAgICAgd2l0aCBvbmx5IGdyYXBoIHJlbGF0 ZWQgZWxlbWVudHMKKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VsZi5sb2FkZXIgPSBWZXJzaW9u ZWRUZW1wbGF0ZUxvYWRlcihGYWtlQXBwKCkpCisKKyAgICAgICAgd2l0aCBGYWtlQXBwKCkuYXBw X2NvbnRleHQoKToKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAg ICAgICAgICAgICAnZGFzaGJvYXJkL2RhdGFiYXNlX2Rhc2hib2FyZC5odG1sJywKKyAgICAgICAg ICAgICAgICBzaWQ9U0VSVkVSX0lELAorICAgICAgICAgICAgICAgIGRpZD1Ob25lLAorICAgICAg ICAgICAgICAgIHJhdGVzPVJBVEVTLAorICAgICAgICAgICAgICAgIHZlcnNpb249VkVSU0lPTiwK KyAgICAgICAgICAgICAgICBzZXR0aW5ncz1ESVNQTEFZX0RBU0hCT0FSRFsnb25seV9ncmFwaHMn XSwKKyAgICAgICAgICAgICAgICBfPV8KICAgICAgICAgICAgICkKLSAgICAgICAgKSwKLSAgICAg ICAgKAotICAgICAgICAgICAgJ0Rhc2hib2FyZCwgd2hlbiByZXR1cm5pbmcgdGhlIGh0bWwgcGFn ZSB3aXRoIG5laXRoZXIgJwotICAgICAgICAgICAgJ2dyYXBocyBub3IgZGF0YWJhc2UgYWN0aXZp dHkgcmVsYXRlZCBodG1sIGVsZW1lbnRzIGZvciBkYXRhYmFzZSAnCi0gICAgICAgICAgICAnZGFz aGJvYXJkJywKLSAgICAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgICAgdGVtcGxhdGVfcGF0 aD0nZGFzaGJvYXJkL2RhdGFiYXNlX2Rhc2hib2FyZC5odG1sJywKLSAgICAgICAgICAgICAgICBp bnB1dF9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIHNpZD1TRVJWRVJfSUQs Ci0gICAgICAgICAgICAgICAgICAgIGRpZD1EQVRBQkFTRV9JRCwKLSAgICAgICAgICAgICAgICAg ICAgcmF0ZXM9UkFURVMsCi0gICAgICAgICAgICAgICAgICAgIHZlcnNpb249VkVSU0lPTiwKLSAg ICAgICAgICAgICAgICAgICAgc2V0dGluZ3M9RElTUExBWV9EQVNIQk9BUkRbJ25vbmUnXSwKLSAg ICAgICAgICAgICAgICAgICAgXz1fCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAg ICBleHBlY3RlZF9yZXR1cm5fdmFsdWU9W10sCi0gICAgICAgICAgICAgICAgbm90X2V4cGVjdGVk X3JldHVybl92YWx1ZT1bCi0gICAgICAgICAgICAgICAgICAgICdEYXRhYmFzZSBzZXNzaW9ucycs Ci0gICAgICAgICAgICAgICAgICAgICdEYXRhYmFzZSBhY3Rpdml0eScKLSAgICAgICAgICAgICAg ICBdCisKKyAgICAgICAgICAgIHJlc3VsdCB8IHNob3VsZC5jb250YWluKCJEYXRhYmFzZSBzZXNz aW9ucyIpCisgICAgICAgICAgICByZXN1bHQgfCBzaG91bGQuX25vdC5jb250YWluKCJEYXRhYmFz ZSBhY3Rpdml0eSIpCisKKyAgICBkZWYgdGVzdERCRGFzaGJvYXJkVGVtcGxTZXJ2ZXIoc2VsZik6 CisgICAgICAgICIiIgorICAgICAgICBEQiBEYXNoYm9hcmQgc2hvdWxkIGJlIGFibGUgdG8gcmVu ZGVyIGh0bWwgcGFnZQorICAgICAgICB3aXRoIG9ubHkgc2VydmVyIGFjdGl2aXR5IHJlbGF0ZWQg ZWxlbWVudHMKKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VsZi5sb2FkZXIgPSBWZXJzaW9uZWRU ZW1wbGF0ZUxvYWRlcihGYWtlQXBwKCkpCisKKyAgICAgICAgd2l0aCBGYWtlQXBwKCkuYXBwX2Nv bnRleHQoKToKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAg ICAgICAgICAnZGFzaGJvYXJkL2RhdGFiYXNlX2Rhc2hib2FyZC5odG1sJywKKyAgICAgICAgICAg ICAgICBzaWQ9U0VSVkVSX0lELAorICAgICAgICAgICAgICAgIGRpZD1Ob25lLAorICAgICAgICAg ICAgICAgIHJhdGVzPVJBVEVTLAorICAgICAgICAgICAgICAgIHZlcnNpb249VkVSU0lPTiwKKyAg ICAgICAgICAgICAgICBzZXR0aW5ncz1ESVNQTEFZX0RBU0hCT0FSRFsnb25seV9zZXJ2ZXJfYWN0 aXZpdHknXSwKKyAgICAgICAgICAgICAgICBfPV8KICAgICAgICAgICAgICkKLSAgICAgICAgKSwK IAotICAgIF0KKyAgICAgICAgICAgIHJlc3VsdCB8IHNob3VsZC5jb250YWluKCJEYXRhYmFzZSBh Y3Rpdml0eSIpCisgICAgICAgICAgICByZXN1bHQgfCBzaG91bGQuX25vdC5jb250YWluKCJEYXRh YmFzZSBzZXNzaW9ucyIpCisKKyAgICBkZWYgdGVzdERCRGFzaGJvYXJkVGVtcGxOb25lKHNlbGYp OgorICAgICAgICAiIiIKKyAgICAgICAgREIgRGFzaGJvYXJkIHNob3VsZCBiZSBhYmxlIHRvIHJl bmRlciBodG1sIHBhZ2UKKyAgICAgICAgd2l0aCBvbmx5IHNlcnZlciBhY3Rpdml0eSByZWxhdGVk IGVsZW1lbnRzCisgICAgICAgICIiIgogCi0gICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBz ZWxmLmxvYWRlciA9IFZlcnNpb25lZFRlbXBsYXRlTG9hZGVyKEZha2VBcHAoKSkKIAotICAgIGRl ZiBydW5UZXN0KHNlbGYpOgogICAgICAgICB3aXRoIEZha2VBcHAoKS5hcHBfY29udGV4dCgpOgog ICAgICAgICAgICAgcmVzdWx0ID0gcmVuZGVyX3RlbXBsYXRlKAotICAgICAgICAgICAgICAgIHNl bGYudGVtcGxhdGVfcGF0aCwgKipzZWxmLmlucHV0X3BhcmFtZXRlcnMKKyAgICAgICAgICAgICAg ICAnZGFzaGJvYXJkL2RhdGFiYXNlX2Rhc2hib2FyZC5odG1sJywKKyAgICAgICAgICAgICAgICBz aWQ9U0VSVkVSX0lELAorICAgICAgICAgICAgICAgIGRpZD1Ob25lLAorICAgICAgICAgICAgICAg IHJhdGVzPVJBVEVTLAorICAgICAgICAgICAgICAgIHZlcnNpb249VkVSU0lPTiwKKyAgICAgICAg ICAgICAgICBzZXR0aW5ncz1ESVNQTEFZX0RBU0hCT0FSRFsnbm9uZSddLAorICAgICAgICAgICAg ICAgIF89XwogICAgICAgICAgICAgKQotICAgICAgICAgICAgIyBjaGVja3MgZm9yIGV4cGVjdGVk IGh0bWwgZWxlbWVudHMKLSAgICAgICAgICAgIGZvciBleHBlY3RlZF9zdHJpbmcgaW4gc2VsZi5l eHBlY3RlZF9yZXR1cm5fdmFsdWU6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJbigKLSAg ICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfc3RyaW5nLCByZXN1bHQKLSAgICAgICAgICAgICAg ICApCi0KLSAgICAgICAgICAgICMgY2hlY2tzIGZvciBub3QgZXhwZWN0ZWQgaHRtbCBlbGVtZW50 cwotICAgICAgICAgICAgZm9yIG5vdF9leHBlY3RlZF9zdHJpbmcgaW4gc2VsZi5ub3RfZXhwZWN0 ZWRfcmV0dXJuX3ZhbHVlOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oCi0gICAg ICAgICAgICAgICAgICAgIG5vdF9leHBlY3RlZF9zdHJpbmcsIHJlc3VsdAotICAgICAgICAgICAg ICAgICkKKworICAgICAgICAgICAgcmVzdWx0IHwgc2hvdWxkLl9ub3QuY29udGFpbigiRGF0YWJh c2UgYWN0aXZpdHkiKQorICAgICAgICAgICAgcmVzdWx0IHwgc2hvdWxkLl9ub3QuY29udGFpbigi RGF0YWJhc2Ugc2Vzc2lvbnMiKQogCiAKIGNsYXNzIEZha2VBcHAoRmxhc2spOgpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3RfZXhwbGFpbl9wbGFuX3Rl bXBsYXRlcy5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90ZXN0X2V4cGxh aW5fcGxhbl90ZW1wbGF0ZXMucHkKaW5kZXggYzJiYmNkZDIuLjg2MWEyZGVkIDEwMDY0NAotLS0g YS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9leHBsYWluX3BsYW5fdGVt cGxhdGVzLnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90ZXN0X2V4 cGxhaW5fcGxhbl90ZW1wbGF0ZXMucHkKQEAgLTEwLDE0NCArMTAsMTIxIEBACiBpbXBvcnQgb3MK IAogZnJvbSBmbGFzayBpbXBvcnQgRmxhc2ssIHJlbmRlcl90ZW1wbGF0ZQorZnJvbSBncmFwcGEg aW1wb3J0IHNob3VsZAogZnJvbSBqaW5qYTIgaW1wb3J0IEZpbGVTeXN0ZW1Mb2FkZXIKIAotZnJv bSBwZ2FkbWluIGltcG9ydCBWZXJzaW9uZWRUZW1wbGF0ZUxvYWRlcgotZnJvbSBwZ2FkbWluLnV0 aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotCi0KLWNsYXNzIFRlc3RFeHBsYWlu UGxhblRlbXBsYXRlcyhCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgc2NlbmFyaW9zID0gWwotICAg ICAgICAoCi0gICAgICAgICAgICAnV2hlbiByZW5kZXJpbmcgUG9zdGdyZXMgOS4wIHRlbXBsYXRl LCAnCi0gICAgICAgICAgICAnd2hlbiBwYXNzaW5nIGFsbCBwYXJhbWV0ZXJzLCcKLSAgICAgICAg ICAgICdpdCByZXR1cm5zIHRoZSBleHBsYWluIHBsYW4gd2l0aCBhbGwgcGFyYW1ldGVycycsCi0g ICAgICAgICAgICBkaWN0KAotICAgICAgICAgICAgICAgIHRlbXBsYXRlX3BhdGg9J3NxbGVkaXRv ci9zcWwvZGVmYXVsdC9leHBsYWluX3BsYW4uc3FsJywKLSAgICAgICAgICAgICAgICBpbnB1dF9w YXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIHNxbD0nU0VMRUNUICogRlJPTSBw bGFjZXMnLAotICAgICAgICAgICAgICAgICAgICBmb3JtYXQ9J3htbCcsCi0gICAgICAgICAgICAg ICAgICAgIGFuYWx5emU9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgdmVyYm9zZT1UcnVlLAot ICAgICAgICAgICAgICAgICAgICBjb3N0cz1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgYnVm ZmVycz1UcnVlCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBzcWxfc3RhdGVt ZW50PSdTRUxFQ1QgKiBGUk9NIHBsYWNlcycsCi0gICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmV0 dXJuX3ZhbHVlPSdFWFBMQUlOICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJyhGT1JNQVQgWE1MLEFOQUxZWkUgVHJ1ZSwnCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICdWRVJCT1NFIFRydWUsQ09TVFMgRmFsc2UsJwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnQlVGRkVSUyBUcnVlKSBTRUxFQ1QgKiBGUk9NIHBsYWNl cycKLSAgICAgICAgICAgICkKLSAgICAgICAgKSwKLSAgICAgICAgKAotICAgICAgICAgICAgJ1do ZW4gcmVuZGVyaW5nIFBvc3RncmVzIDkuMCB0ZW1wbGF0ZSwgJwotICAgICAgICAgICAgJ3doZW4g bm90IGFsbCBwYXJhbWV0ZXJzIGFyZSBwcmVzZW50LCcKLSAgICAgICAgICAgICdpdCByZXR1cm5z IHRoZSBleHBsYWluIHBsYW4gd2l0aCB0aGUgcHJlc2VudCBwYXJhbWV0ZXJzJywKLSAgICAgICAg ICAgIGRpY3QoCi0gICAgICAgICAgICAgICAgdGVtcGxhdGVfcGF0aD0nc3FsZWRpdG9yL3NxbC9k ZWZhdWx0L2V4cGxhaW5fcGxhbi5zcWwnLAotICAgICAgICAgICAgICAgIGlucHV0X3BhcmFtZXRl cnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgc3FsPSdTRUxFQ1QgKiBGUk9NIHBsYWNlcycs Ci0gICAgICAgICAgICAgICAgICAgIGZvcm1hdD0nanNvbicsCi0gICAgICAgICAgICAgICAgICAg IGJ1ZmZlcnM9VHJ1ZQotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgc3FsX3N0 YXRlbWVudD0nU0VMRUNUICogRlJPTSBwbGFjZXMnLAotICAgICAgICAgICAgICAgIGV4cGVjdGVk X3JldHVybl92YWx1ZT0nRVhQTEFJTiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICcoRk9STUFUIEpTT04sQlVGRkVSUyBUcnVlKSAnCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICdTRUxFQ1QgKiBGUk9NIHBsYWNlcycKLSAgICAgICAgICAgICkK LSAgICAgICAgKSwKLSAgICAgICAgKAotICAgICAgICAgICAgJ1doZW4gcmVuZGVyaW5nIFBvc3Rn cmVzIDkuMiB0ZW1wbGF0ZSwgJwotICAgICAgICAgICAgJ3doZW4gdGltaW5nIGlzIHByZXNlbnQs JwotICAgICAgICAgICAgJ2l0IHJldHVybnMgdGhlIGV4cGxhaW4gcGxhbiB3aXRoIHRpbWluZycs Ci0gICAgICAgICAgICBkaWN0KAotICAgICAgICAgICAgICAgIHRlbXBsYXRlX3BhdGg9J3NxbGVk aXRvci9zcWwvOS4yX3BsdXMvZXhwbGFpbl9wbGFuLnNxbCcsCi0gICAgICAgICAgICAgICAgaW5w dXRfcGFyYW1ldGVycz1kaWN0KAotICAgICAgICAgICAgICAgICAgICBzcWw9J1NFTEVDVCAqIEZS T00gcGxhY2VzJywKLSAgICAgICAgICAgICAgICAgICAgZm9ybWF0PSdqc29uJywKLSAgICAgICAg ICAgICAgICAgICAgYnVmZmVycz1UcnVlLAotICAgICAgICAgICAgICAgICAgICB0aW1pbmc9RmFs c2UKLSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgIHNxbF9zdGF0ZW1lbnQ9J1NF TEVDVCAqIEZST00gcGxhY2VzJywKLSAgICAgICAgICAgICAgICBleHBlY3RlZF9yZXR1cm5fdmFs dWU9J0VYUExBSU4gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKEZP Uk1BVCBKU09OLFRJTUlORyBGYWxzZSwnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICdCVUZGRVJTIFRydWUpIFNFTEVDVCAqIEZST00gcGxhY2VzJwotICAgICAgICAgICAg KQotICAgICAgICApLAotICAgICAgICAoCi0gICAgICAgICAgICAnV2hlbiByZW5kZXJpbmcgUG9z dGdyZXMgMTAgdGVtcGxhdGUsICcKLSAgICAgICAgICAgICd3aGVuIHN1bW1hcnkgaXMgcHJlc2Vu dCwnCi0gICAgICAgICAgICAnaXQgcmV0dXJucyB0aGUgZXhwbGFpbiBwbGFuIHdpdGggc3VtbWFy eScsCi0gICAgICAgICAgICBkaWN0KAotICAgICAgICAgICAgICAgIHRlbXBsYXRlX3BhdGg9J3Nx bGVkaXRvci9zcWwvMTBfcGx1cy9leHBsYWluX3BsYW4uc3FsJywKLSAgICAgICAgICAgICAgICBp bnB1dF9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIHNxbD0nU0VMRUNUICog RlJPTSBwbGFjZXMnLAotICAgICAgICAgICAgICAgICAgICBmb3JtYXQ9J3lhbWwnLAotICAgICAg ICAgICAgICAgICAgICBidWZmZXJzPVRydWUsCi0gICAgICAgICAgICAgICAgICAgIHRpbWluZz1G YWxzZSwKLSAgICAgICAgICAgICAgICAgICAgc3VtbWFyeT1UcnVlCi0gICAgICAgICAgICAgICAg KSwKLSAgICAgICAgICAgICAgICBzcWxfc3RhdGVtZW50PSdTRUxFQ1QgKiBGUk9NIHBsYWNlcycs Ci0gICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPSdFWFBMQUlOICcKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyhGT1JNQVQgWUFNTCxUSU1JTkcgRmFs c2UsJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnU1VNTUFSWSBUcnVl LEJVRkZFUlMgVHJ1ZSkgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn U0VMRUNUICogRlJPTSBwbGFjZXMnCi0gICAgICAgICAgICApCi0gICAgICAgICksCi0gICAgICAg ICgKLSAgICAgICAgICAgICdXaGVuIHJlbmRlcmluZyBHcmVlblBsdW0gNS4zIHRlbXBsYXRlLCAn Ci0gICAgICAgICAgICAnd2hlbiBhbGwgcGFyYW1ldGVycyBhcmUgcHJlc2VudCwnCi0gICAgICAg ICAgICAnaXQgcmV0dXJucyB0aGUgZXhwbGFpbiB3aXRob3V0IHBhcmFtZXRlcnMnLAotICAgICAg ICAgICAgZGljdCgKLSAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9wYXRoPSdzcWxlZGl0b3Ivc3Fs L2dwZGJfNS4wX3BsdXMvZXhwbGFpbl9wbGFuLnNxbCcsCi0gICAgICAgICAgICAgICAgaW5wdXRf cGFyYW1ldGVycz1kaWN0KAotICAgICAgICAgICAgICAgICAgICBzcWw9J1NFTEVDVCAqIEZST00g cGxhY2VzJywKLSAgICAgICAgICAgICAgICAgICAgZm9ybWF0PSdqc29uJywKLSAgICAgICAgICAg ICAgICAgICAgYnVmZmVycz1UcnVlCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAg ICBzcWxfc3RhdGVtZW50PSdTRUxFQ1QgKiBGUk9NIHBsYWNlcycsCi0gICAgICAgICAgICAgICAg ZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPSdFWFBMQUlOIFNFTEVDVCAqIEZST00gcGxhY2VzJwotICAg ICAgICAgICAgKQotICAgICAgICApLAotICAgICAgICAoCi0gICAgICAgICAgICAnV2hlbiByZW5k ZXJpbmcgR3JlZW5QbHVtIDUuMyB0ZW1wbGF0ZSwgJwotICAgICAgICAgICAgJ3doZW4gYW5hbHl6 ZSBpcyB0cnVlLCcKLSAgICAgICAgICAgICdpdCByZXR1cm5zIHRoZSBleHBsYWluIGFuYWx5emUn LAotICAgICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9wYXRoPSdzcWxl ZGl0b3Ivc3FsL2dwZGJfNS4wX3BsdXMvZXhwbGFpbl9wbGFuLnNxbCcsCi0gICAgICAgICAgICAg ICAgaW5wdXRfcGFyYW1ldGVycz1kaWN0KAotICAgICAgICAgICAgICAgICAgICBzcWw9J1NFTEVD VCAqIEZST00gcGxhY2VzJywKLSAgICAgICAgICAgICAgICAgICAgYW5hbHl6ZT1UcnVlCi0gICAg ICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBzcWxfc3RhdGVtZW50PSdTRUxFQ1QgKiBG Uk9NIHBsYWNlcycsCi0gICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPSdFWFBM QUlOIEFOQUxZWkUgU0VMRUNUICogRlJPTSBwbGFjZXMnCi0gICAgICAgICAgICApCi0gICAgICAg ICksCi0gICAgICAgICgKLSAgICAgICAgICAgICdXaGVuIHJlbmRlcmluZyBHcmVlblBsdW0gNS4z IHRlbXBsYXRlLCAnCi0gICAgICAgICAgICAnd2hlbiBhbmFseXplIGlzIGZhbHNlLCcKLSAgICAg ICAgICAgICdpdCByZXR1cm5zIHRoZSBvbmx5IGV4cGxhaW4nLAotICAgICAgICAgICAgZGljdCgK LSAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9wYXRoPSdzcWxlZGl0b3Ivc3FsL2dwZGJfNS4wX3Bs dXMvZXhwbGFpbl9wbGFuLnNxbCcsCi0gICAgICAgICAgICAgICAgaW5wdXRfcGFyYW1ldGVycz1k aWN0KAotICAgICAgICAgICAgICAgICAgICBzcWw9J1NFTEVDVCAqIEZST00gcGxhY2VzJywKLSAg ICAgICAgICAgICAgICAgICAgYW5hbHl6ZT1GYWxzZQotICAgICAgICAgICAgICAgICksCi0gICAg ICAgICAgICAgICAgc3FsX3N0YXRlbWVudD0nU0VMRUNUICogRlJPTSBwbGFjZXMnLAotICAgICAg ICAgICAgICAgIGV4cGVjdGVkX3JldHVybl92YWx1ZT0nRVhQTEFJTiBTRUxFQ1QgKiBGUk9NIHBs YWNlcycKLSAgICAgICAgICAgICkKLSAgICAgICAgKSwKLSAgICBdCi0KLSAgICBkZWYgc2V0VXAo c2VsZik6Ci0gICAgICAgIHNlbGYubG9hZGVyID0gVmVyc2lvbmVkVGVtcGxhdGVMb2FkZXIoRmFr ZUFwcCgpKQotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6CisKK2NsYXNzIFRlc3RFeHBsYWluUGxh blRlbXBsYXRlczoKKyAgICBkZWYgdGVzdF9hbGxfcGFyYW1ldGVyc19vbl9wZ185XzAoc2VsZik6 CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHJlbmRlcmluZyBQb3N0Z3JlcyA5LjAgdGVtcGxh dGUKKyAgICAgICAgd2hlbiBwYXNzaW5nIGFsbCBwYXJhbWV0ZXJzCisgICAgICAgIGl0IHJldHVy bnMgdGhlIGV4cGxhaW4gcGxhbiB3aXRoIGFsbCBwYXJhbWV0ZXJzCisgICAgICAgICIiIgogICAg ICAgICB3aXRoIEZha2VBcHAoKS5hcHBfY29udGV4dCgpOgotICAgICAgICAgICAgcmVzdWx0ID0g cmVuZGVyX3RlbXBsYXRlKHNlbGYudGVtcGxhdGVfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAqKnNlbGYuaW5wdXRfcGFyYW1ldGVycykKLSAgICAgICAgICAgIHNl bGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgc3RyKHJlc3VsdCkucmVwbGFjZSgiXG4i LCAiIiksIHNlbGYuZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlKQorICAgICAgICAgICAgcmVzdWx0ID0g cmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICdzcWxlZGl0b3Ivc3FsL2RlZmF1bHQv ZXhwbGFpbl9wbGFuLnNxbCcsCisgICAgICAgICAgICAgICAgc3FsPSdTRUxFQ1QgKiBGUk9NIHBs YWNlcycsCisgICAgICAgICAgICAgICAgZm9ybWF0PSd4bWwnLAorICAgICAgICAgICAgICAgIGFu YWx5emU9VHJ1ZSwKKyAgICAgICAgICAgICAgICB2ZXJib3NlPVRydWUsCisgICAgICAgICAgICAg ICAgY29zdHM9RmFsc2UsCisgICAgICAgICAgICAgICAgYnVmZmVycz1UcnVlKQorCisgICAgICAg ICAgICBzdHIocmVzdWx0KS5yZXBsYWNlKCJcbiIsICIiKSB8IHNob3VsZC5iZS5lcXVhbCgKKyAg ICAgICAgICAgICAgICAnRVhQTEFJTiAnCisgICAgICAgICAgICAgICAgJyhGT1JNQVQgWE1MLEFO QUxZWkUgVHJ1ZSwnCisgICAgICAgICAgICAgICAgJ1ZFUkJPU0UgVHJ1ZSxDT1NUUyBGYWxzZSwn CisgICAgICAgICAgICAgICAgJ0JVRkZFUlMgVHJ1ZSkgU0VMRUNUICogRlJPTSBwbGFjZXMnKQor CisgICAgZGVmIHRlc3Rfbm90X2FsbF9wYXJhbWV0ZXJzX29uX3BnXzlfMChzZWxmKToKKyAgICAg ICAgIiIiCisgICAgICAgIFdoZW4gcmVuZGVyaW5nIFBvc3RncmVzIDkuMCB0ZW1wbGF0ZQorICAg ICAgICBXaGVuIG5vdCBhbGwgcGFyYW1ldGVycyBhcmUgcHJlc2VudAorICAgICAgICBJdCByZXR1 cm5zIHRoZSBleHBsYWluIHBsYW4gd2l0aCB0aGUgcHJlc2VudCBwYXJhbWV0ZXJzCisgICAgICAg ICIiIgorICAgICAgICB3aXRoIEZha2VBcHAoKS5hcHBfY29udGV4dCgpOgorICAgICAgICAgICAg cmVzdWx0ID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICdzcWxlZGl0b3Ivc3Fs L2RlZmF1bHQvZXhwbGFpbl9wbGFuLnNxbCcsCisgICAgICAgICAgICAgICAgc3FsPSdTRUxFQ1Qg KiBGUk9NIHBsYWNlcycsCisgICAgICAgICAgICAgICAgZm9ybWF0PSdqc29uJywKKyAgICAgICAg ICAgICAgICBidWZmZXJzPVRydWUpCisKKyAgICAgICAgICAgIHN0cihyZXN1bHQpLnJlcGxhY2Uo IlxuIiwgIiIpIHwgc2hvdWxkLmJlLmVxdWFsKAorICAgICAgICAgICAgICAgICdFWFBMQUlOICcK KyAgICAgICAgICAgICAgICAnKEZPUk1BVCBKU09OLEJVRkZFUlMgVHJ1ZSkgJworICAgICAgICAg ICAgICAgICdTRUxFQ1QgKiBGUk9NIHBsYWNlcycpCisKKyAgICBkZWYgdGVzdF90aW1pbmdfcHJl c2VudF9vbl9wZ185XzIoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHJlbmRlcmlu ZyBQb3N0Z3JlcyA5LjIgdGVtcGxhdGUKKyAgICAgICAgV2hlbiB0aW1pbmcgaXMgcHJlc2VudAor ICAgICAgICBJdCByZXR1cm5zIHRoZSBleHBsYWluIHBsYW4gd2l0aCB0aW1pbmcKKyAgICAgICAg IiIiCisgICAgICAgIHdpdGggRmFrZUFwcCgpLmFwcF9jb250ZXh0KCk6CisgICAgICAgICAgICBy ZXN1bHQgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgJ3NxbGVkaXRvci9zcWwv OS4yX3BsdXMvZXhwbGFpbl9wbGFuLnNxbCcsCisgICAgICAgICAgICAgICAgc3FsPSdTRUxFQ1Qg KiBGUk9NIHBsYWNlcycsCisgICAgICAgICAgICAgICAgZm9ybWF0PSdqc29uJywKKyAgICAgICAg ICAgICAgICBidWZmZXJzPVRydWUsCisgICAgICAgICAgICAgICAgdGltaW5nPUZhbHNlKQorCisg ICAgICAgICAgICBzdHIocmVzdWx0KS5yZXBsYWNlKCJcbiIsICIiKSB8IHNob3VsZC5iZS5lcXVh bCgKKyAgICAgICAgICAgICAgICAnRVhQTEFJTiAnCisgICAgICAgICAgICAgICAgJyhGT1JNQVQg SlNPTixUSU1JTkcgRmFsc2UsJworICAgICAgICAgICAgICAgICdCVUZGRVJTIFRydWUpIFNFTEVD VCAqIEZST00gcGxhY2VzJykKKworICAgIGRlZiB0ZXN0X3N1bW1hcnlfcHJlc2VudF9vbl9wZ18x MChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gcmVuZGVyaW5nIFBvc3RncmVzIDku MiB0ZW1wbGF0ZQorICAgICAgICBXaGVuIHRpbWluZyBpcyBwcmVzZW50CisgICAgICAgIEl0IHJl dHVybnMgdGhlIGV4cGxhaW4gcGxhbiB3aXRoIHN1bW1hcnkKKyAgICAgICAgIiIiCisgICAgICAg IHdpdGggRmFrZUFwcCgpLmFwcF9jb250ZXh0KCk6CisgICAgICAgICAgICByZXN1bHQgPSByZW5k ZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgJ3NxbGVkaXRvci9zcWwvMTBfcGx1cy9leHBs YWluX3BsYW4uc3FsJywKKyAgICAgICAgICAgICAgICBzcWw9J1NFTEVDVCAqIEZST00gcGxhY2Vz JywKKyAgICAgICAgICAgICAgICBmb3JtYXQ9J3lhbWwnLAorICAgICAgICAgICAgICAgIGJ1ZmZl cnM9VHJ1ZSwKKyAgICAgICAgICAgICAgICB0aW1pbmc9RmFsc2UsCisgICAgICAgICAgICAgICAg c3VtbWFyeT1UcnVlKQorCisgICAgICAgICAgICBzdHIocmVzdWx0KS5yZXBsYWNlKCJcbiIsICIi KSB8IHNob3VsZC5iZS5lcXVhbCgKKyAgICAgICAgICAgICAgICAnRVhQTEFJTiAnCisgICAgICAg ICAgICAgICAgJyhGT1JNQVQgWUFNTCxUSU1JTkcgRmFsc2UsJworICAgICAgICAgICAgICAgICdT VU1NQVJZIFRydWUsQlVGRkVSUyBUcnVlKSAnCisgICAgICAgICAgICAgICAgJ1NFTEVDVCAqIEZS T00gcGxhY2VzJykKKworICAgIGRlZiB0ZXN0X2FsbF9wYXJhbWV0ZXJzX3ByZXNlbnRfb25fZ3Bk Yl81XzMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHJlbmRlcmluZyBHcmVlblBs dW0gNS4zIHRlbXBsYXRlCisgICAgICAgIFdoZW4gYWxsIHBhcmFtZXRlcnMgYXJlIHByZXNlbnQK KyAgICAgICAgSXQgcmV0dXJucyB0aGUgZXhwbGFpbiB3aXRob3V0IHBhcmFtZXRlcnMKKyAgICAg ICAgIiIiCisgICAgICAgIHdpdGggRmFrZUFwcCgpLmFwcF9jb250ZXh0KCk6CisgICAgICAgICAg ICByZXN1bHQgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgJ3NxbGVkaXRvci9z cWwvZ3BkYl81LjBfcGx1cy9leHBsYWluX3BsYW4uc3FsJywKKyAgICAgICAgICAgICAgICBzcWw9 J1NFTEVDVCAqIEZST00gcGxhY2VzJywKKyAgICAgICAgICAgICAgICBmb3JtYXQ9J2pzb24nLAor ICAgICAgICAgICAgICAgIGJ1ZmZlcnM9VHJ1ZSkKKworICAgICAgICAgICAgc3RyKHJlc3VsdCku cmVwbGFjZSgiXG4iLCAiIikgfCBzaG91bGQuYmUuZXF1YWwoCisgICAgICAgICAgICAgICAgJ0VY UExBSU4gU0VMRUNUICogRlJPTSBwbGFjZXMnKQorCisgICAgZGVmIHRlc3RfYW5hbHl6ZV9vbl9n cGRiXzVfMyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gcmVuZGVyaW5nIEdyZWVu UGx1bSA1LjMgdGVtcGxhdGUKKyAgICAgICAgV2hlbiBhbmFseXplIGlzIHRydWUKKyAgICAgICAg SXQgcmV0dXJucyB0aGUgZXhwbGFpbiBhbmFseXplCisgICAgICAgICIiIgorICAgICAgICB3aXRo IEZha2VBcHAoKS5hcHBfY29udGV4dCgpOgorICAgICAgICAgICAgcmVzdWx0ID0gcmVuZGVyX3Rl bXBsYXRlKAorICAgICAgICAgICAgICAgICdzcWxlZGl0b3Ivc3FsL2dwZGJfNS4wX3BsdXMvZXhw bGFpbl9wbGFuLnNxbCcsCisgICAgICAgICAgICAgICAgc3FsPSdTRUxFQ1QgKiBGUk9NIHBsYWNl cycsCisgICAgICAgICAgICAgICAgYW5hbHl6ZT1UcnVlKQorCisgICAgICAgICAgICBzdHIocmVz dWx0KS5yZXBsYWNlKCJcbiIsICIiKSB8IHNob3VsZC5iZS5lcXVhbCgKKyAgICAgICAgICAgICAg ICAnRVhQTEFJTiBBTkFMWVpFIFNFTEVDVCAqIEZST00gcGxhY2VzJykKIAogCiBjbGFzcyBGYWtl QXBwKEZsYXNrKToKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0 cy90ZXN0X2V4dHJhY3Rfc3FsX2Zyb21fbmV0d29ya19wYXJhbWV0ZXJzLnB5IGIvd2ViL3BnYWRt aW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3RfZXh0cmFjdF9zcWxfZnJvbV9uZXR3b3JrX3Bh cmFtZXRlcnMucHkKaW5kZXggYmVjYTE2NTcuLjliZmIyODhmIDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9leHRyYWN0X3NxbF9mcm9tX25ldHdvcmtf cGFyYW1ldGVycy5weQorKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVz dF9leHRyYWN0X3NxbF9mcm9tX25ldHdvcmtfcGFyYW1ldGVycy5weQpAQCAtNiw1NyArNiw1MSBA QAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2Vu Y2UKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKIGZy b20gd2Vya3pldWcuZGF0YXN0cnVjdHVyZXMgaW1wb3J0IEltbXV0YWJsZU11bHRpRGljdAogCiBm cm9tIHBnYWRtaW4udG9vbHMuc3FsZWRpdG9yIGltcG9ydCBleHRyYWN0X3NxbF9mcm9tX25ldHdv cmtfcGFyYW1ldGVycwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdl bmVyYXRvcgotCi0KLWNsYXNzIEV4dHJhY3RTUUxGcm9tTmV0d29ya1BhcmFtZXRlcnNUZXN0KEJh c2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIKLSAgICBUaGlzIGNsYXNzIHZhbGlkYXRlcyB0aGUg Y2hhbmdlIHBhc3N3b3JkIGZ1bmN0aW9uYWxpdHkKLSAgICBieSBkZWZpbmluZyBjaGFuZ2UgcGFz c3dvcmQgc2NlbmFyaW9zOyB3aGVyZSBkaWN0IG9mCi0gICAgcGFyYW1ldGVycyBkZXNjcmliZXMg dGhlIHNjZW5hcmlvIGFwcGVuZGVkIGJ5IHRlc3QgbmFtZS4KLSAgICAiIiIKLQotICAgIHNjZW5h cmlvcyA9IFsKLSAgICAgICAgKCdTaW5nbGUgc3RyaW5nIGluIHRoZSBwYXlsb2FkJywgZGljdCgK LSAgICAgICAgICAgIHJlcXVlc3Rfc3RyaWdpZmllZF9kYXRhPScic29tZSBzcWwiJywKLSAgICAg ICAgICAgIHJlcXVlc3RfYXJndW1lbnRzPUltbXV0YWJsZU11bHRpRGljdCgpLAotICAgICAgICAg ICAgcmVxdWVzdF9mb3JtX2RhdGE9SW1tdXRhYmxlTXVsdGlEaWN0KCksCi0KLSAgICAgICAgICAg IGV4cGVjdGVkX3Jlc3VsdD1kaWN0KHNxbD0nc29tZSBzcWwnLCBleHBsYWluX3BsYW49Tm9uZSkK LSAgICAgICAgKSksCi0gICAgICAgICgnUGF5bG9hZCB0aGF0IHJlcXVlc3RzIGV4cGxhaW4gcGxh biB1c2luZyBqc29uJywgZGljdCgKLSAgICAgICAgICAgIHJlcXVlc3Rfc3RyaWdpZmllZF9kYXRh PSd7InNxbCI6ICJzb21lIHNxbCIsICJleHBsYWluX3BsYW4iOiAnCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAneyJmb3JtYXQiOiAianNvbiIsICJhbmFseXplIjogZmFsc2Us ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcidmVyYm9zZSI6IGZhbHNl LCAiY29zdHMiOiBmYWxzZSwgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JyJidWZmZXJzIjogZmFsc2UsICJ0aW1pbmciOiBmYWxzZX19JywKLSAgICAgICAgICAgIHJlcXVl c3RfYXJndW1lbnRzPUltbXV0YWJsZU11bHRpRGljdCgpLAotICAgICAgICAgICAgcmVxdWVzdF9m b3JtX2RhdGE9SW1tdXRhYmxlTXVsdGlEaWN0KCksCi0KLSAgICAgICAgICAgIGV4cGVjdGVkX3Jl c3VsdD1kaWN0KAotICAgICAgICAgICAgICAgIHNxbD0nc29tZSBzcWwnLAotICAgICAgICAgICAg ICAgIGV4cGxhaW5fcGxhbj1kaWN0KAotICAgICAgICAgICAgICAgICAgICBmb3JtYXQ9J2pzb24n LAotICAgICAgICAgICAgICAgICAgICBhbmFseXplPUZhbHNlLAotICAgICAgICAgICAgICAgICAg ICB2ZXJib3NlPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICBidWZmZXJzPUZhbHNlLAotICAg ICAgICAgICAgICAgICAgICBjb3N0cz1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgdGltaW5n PUZhbHNlCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgKQotICAgICAgICApKQotICAg IF0KK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVz dEdlbmVyYXRvcgogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIkNoZWNrIGNv cnJlY3QgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIGhhbmRsZSB0byBydW4gcXVlcnkuIiIiCisKK2Ns YXNzIFRlc3RFeHRyYWN0U1FMRnJvbU5ldHdvcmtQYXJhbWV0ZXJzKEJhc2VUZXN0R2VuZXJhdG9y KToKKyAgICBkZWYgdGVzdF9zaW5nbGVfc3RyaW5nX3BheWxvYWQoc2VsZik6CisgICAgICAgICIi IgorICAgICAgICBXaGVuIHRoZSByZXF1ZXN0IHBheWxvYWQgaXMgYSBzdHJpbmcKKyAgICAgICAg SXQgcmV0dXJucyB0aGUgc3FsIGluZm9ybWF0aW9uIGJ1dCBubyBleHBsYWluIHBsYW4KKyAgICAg ICAgIiIiCiAKICAgICAgICAgcmVzdWx0ID0gZXh0cmFjdF9zcWxfZnJvbV9uZXR3b3JrX3BhcmFt ZXRlcnMoCi0gICAgICAgICAgICBzZWxmLnJlcXVlc3Rfc3RyaWdpZmllZF9kYXRhLAotICAgICAg ICAgICAgc2VsZi5yZXF1ZXN0X2FyZ3VtZW50cywKLSAgICAgICAgICAgIHNlbGYucmVxdWVzdF9m b3JtX2RhdGEKKyAgICAgICAgICAgICcic29tZSBzcWwiJywKKyAgICAgICAgICAgIEltbXV0YWJs ZU11bHRpRGljdCgpLAorICAgICAgICAgICAgSW1tdXRhYmxlTXVsdGlEaWN0KCkKICAgICAgICAg KQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3VsdCwgc2VsZi5leHBlY3RlZF9yZXN1 bHQpCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5iZS5lcXVhbChkaWN0KHNxbD0nc29tZSBzcWwn LCBleHBsYWluX3BsYW49Tm9uZSkpCisKKyAgICBkZWYgdGVzdF9qc29uX3BheWxvYWQoc2VsZik6 CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSByZXF1ZXN0IHBheWxvYWQgaXMgYSBqc29u CisgICAgICAgIEl0IHJldHVybnMgdGhlIHNxbCBpbmZvcm1hdGlvbiBhbmQgZXhwbGFpbiBwbGFu IG9wdGlvbnMKKyAgICAgICAgIiIiCisKKyAgICAgICAgcmVzdWx0ID0gZXh0cmFjdF9zcWxfZnJv bV9uZXR3b3JrX3BhcmFtZXRlcnMoCisgICAgICAgICAgICAneyJzcWwiOiAic29tZSBzcWwiLCAi ZXhwbGFpbl9wbGFuIjogJworICAgICAgICAgICAgJ3siZm9ybWF0IjogImpzb24iLCAiYW5hbHl6 ZSI6IGZhbHNlLCAnCisgICAgICAgICAgICAnInZlcmJvc2UiOiBmYWxzZSwgImNvc3RzIjogZmFs c2UsICcKKyAgICAgICAgICAgICciYnVmZmVycyI6IGZhbHNlLCAidGltaW5nIjogZmFsc2V9fScs CisgICAgICAgICAgICBJbW11dGFibGVNdWx0aURpY3QoKSwKKyAgICAgICAgICAgIEltbXV0YWJs ZU11bHRpRGljdCgpCisgICAgICAgICkKKworICAgICAgICByZXN1bHQgfCBzaG91bGQuYmUuZXF1 YWwoZGljdCgKKyAgICAgICAgICAgIHNxbD0nc29tZSBzcWwnLAorICAgICAgICAgICAgZXhwbGFp bl9wbGFuPWRpY3QoCisgICAgICAgICAgICAgICAgZm9ybWF0PSdqc29uJywKKyAgICAgICAgICAg ICAgICBhbmFseXplPUZhbHNlLAorICAgICAgICAgICAgICAgIHZlcmJvc2U9RmFsc2UsCisgICAg ICAgICAgICAgICAgYnVmZmVycz1GYWxzZSwKKyAgICAgICAgICAgICAgICBjb3N0cz1GYWxzZSwK KyAgICAgICAgICAgICAgICB0aW1pbmc9RmFsc2UKKyAgICAgICAgICAgICkKKyAgICAgICAgKSkK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90ZXN0X3BvbGxf cXVlcnlfdG9vbC5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90ZXN0X3Bv bGxfcXVlcnlfdG9vbC5weQppbmRleCBlMGE4ZDM4OC4uY2ZlYjMyZjEgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90ZXN0X3BvbGxfcXVlcnlfdG9vbC5weQor KysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9wb2xsX3F1ZXJ5X3Rv b2wucHkKQEAgLTksMjAgKzksNDQgQEAKIAogaW1wb3J0IGpzb24KIAorZnJvbSBncmFwcGEgaW1w b3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu ZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAgZGF0YWJhc2VfdXRpbHMKLWZy b20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVn cmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90 ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiAKIAotY2xhc3MgVGVzdFBvbGxR dWVyeVRvb2woQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgdGVz dCB0aGUgcXVlcnkgdG9vbCBwb2xsaW5nLiAiIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAg ICgnV2hlbiBxdWVyeSB0b29sIHBvbGxpbmcgcmV0dXJucyBtZXNzYWdlcyB3aXRoIHJlc3VsdCBk YXRhLXNldCcsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHNxbD1bCi0gICAgICAgICAg ICAgICAgICIiIgorY2xhc3MgVGVzdFBvbGxRdWVyeVRvb2w6CisgICAgZGVmIHRlc3RfcG9sbF9h bmRfaGF2ZV8yX25vdGljZXMoc2VsZiwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgor ICAgICAgICBXaGVuIHF1ZXJ5IHRvb2wgcG9sbCB0byBjaGVjayBvbiB0aGUgcXVlcnkgd2l0aCAy IG5vdGljZXMKKyAgICAgICAgSXQgcmV0dXJucyBtZXNzYWdlcyBzYXlpbmcgcG9sbGluZyBpcyBj aGVja2luZworICAgICAgICAiIiIKKyAgICAgICAgZGF0YWJhc2VfaW5mbyA9IGNvbnRleHRfb2Zf dGVzdHNbInNlcnZlcl9pbmZvcm1hdGlvbiJdCisgICAgICAgIHNlcnZlcl9pZCA9IGRhdGFiYXNl X2luZm9bInNlcnZlcl9pZCJdCisgICAgICAgIGRiX2lkID0gZGF0YWJhc2VfaW5mb1siZGJfaWQi XQorCisgICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQn XQorICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorCisgICAgICAg IGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNsaWVudF9jb25uZWN0X2RhdGFiYXNlKAorICAgICAg ICAgICAgaHR0cF9jbGllbnQsCisgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAg ICAgICAgICBzZXJ2ZXJfaWQsCisgICAgICAgICAgICBkYl9pZCwKKyAgICAgICAgICAgIHNlcnZl clsnZGJfcGFzc3dvcmQnXSkKKyAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRh YmFzZSBjb25uZWN0ZWQuIjoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90 IGNvbm5lY3QgdG8gdGhlIGRhdGFiYXNlLiIpCisKKyAgICAgICAgdXJsID0gJy9kYXRhZ3JpZC9p bml0aWFsaXplL3F1ZXJ5X3Rvb2wvezB9L3sxfS97Mn0nLmZvcm1hdCgKKyAgICAgICAgICAgIHV0 aWxzLlNFUlZFUl9HUk9VUCwgc2VydmVyX2lkLCBkYl9pZCkKKyAgICAgICAgcmVzcG9uc2UgPSBo dHRwX2NsaWVudC5wb3N0KHVybCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91 bGQuYmUuZXF1YWwoMjAwKQorCisgICAgICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxvYWRzKHJl c3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQorICAgICAgICB0cmFuc19pZCA9IHJlc3BvbnNl X2RhdGFbJ2RhdGEnXVsnZ3JpZFRyYW5zSWQnXQorCisgICAgICAgIHNxbCA9ICIiIgogRFJPUCBU QUJMRSBJRiBFWElTVFMgdGVzdF9mb3Jfbm90aWNlczsKIAogRE8gJCQKQEAgLTMxLDggKzU1LDY0 IEBAIEJFR0lOCiBFTkQgJCQ7CiAKIFNFTEVDVCAnQ0hFQ0tJTkcgUE9MTElORyc7Ci0iIiIsCi0g ICAgICAgICAgICAgICAgICIiIgorIiIiCisgICAgICAgIGV4cGVjdGVkX21lc3NhZ2UgPSAiIiJO T1RJQ0U6ICB0YWJsZSAidGVzdF9mb3Jfbm90aWNlcyIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5n CitOT1RJQ0U6ICBIZWxsbywgd29ybGQhCisiIiIKKyAgICAgICAgZXhwZWN0ZWRfcmVzdWx0ID0g J0NIRUNLSU5HIFBPTExJTkcnCisKKyAgICAgICAgdXJsID0gJy9zcWxlZGl0b3IvcXVlcnlfdG9v bC9zdGFydC97MH0nLmZvcm1hdCh0cmFuc19pZCkKKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2Ns aWVudC5wb3N0KHVybCwgZGF0YT1qc29uLmR1bXBzKHsic3FsIjogc3FsfSksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKyAg ICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwoMjAwKQorCisgICAg ICAgIHVybCA9ICcvc3FsZWRpdG9yL3BvbGwvezB9Jy5mb3JtYXQodHJhbnNfaWQpCisgICAgICAg IHJlc3BvbnNlID0gaHR0cF9jbGllbnQuZ2V0KHVybCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVz X2NvZGUgfCBzaG91bGQuYmUuZXF1YWwoMjAwKQorCisgICAgICAgIHJlc3BvbnNlX2RhdGEgPSBq c29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQorCisgICAgICAgIHJlc3Bv bnNlX2RhdGFbJ2RhdGEnXVsnYWRkaXRpb25hbF9tZXNzYWdlcyddIHwgc2hvdWxkLmJlLmVxdWFs KAorICAgICAgICAgICAgZXhwZWN0ZWRfbWVzc2FnZQorICAgICAgICApCisKKyAgICAgICAgZXhw ZWN0ZWRfcmVzdWx0IHwgc2hvdWxkLmJlLmVxdWFsKAorICAgICAgICAgICAgcmVzcG9uc2VfZGF0 YVsnZGF0YSddWydyZXN1bHQnXVswXVswXSkKKworICAgICAgICBkYXRhYmFzZV91dGlscy5jbGll bnRfZGlzY29ubmVjdF9kYXRhYmFzZShodHRwX2NsaWVudCwgc2VydmVyX2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9pZCkKKworICAgIGRl ZiB0ZXN0X3BvbGxfYW5kX2hhdmVfMTAwMF9ub3RpY2VzKHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMp OgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBxdWVyeSB0b29sIHBvbGwgdG8gY2hlY2sgb24g dGhlIHF1ZXJ5IHdpdGggMTAwMCBub3RpY2VzCisgICAgICAgIEl0IHJldHVybnMgbWVzc2FnZXMg c2F5aW5nIHBvbGxpbmcgaXMgY2hlY2tpbmcgZm9yIGxvbmcgbWVzc2FnZXMKKyAgICAgICAgIiIi CisgICAgICAgIGRhdGFiYXNlX2luZm8gPSBjb250ZXh0X29mX3Rlc3RzWyJzZXJ2ZXJfaW5mb3Jt YXRpb24iXQorICAgICAgICBzZXJ2ZXJfaWQgPSBkYXRhYmFzZV9pbmZvWyJzZXJ2ZXJfaWQiXQor ICAgICAgICBkYl9pZCA9IGRhdGFiYXNlX2luZm9bImRiX2lkIl0KKworICAgICAgICBodHRwX2Ns aWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VydmVyID0g Y29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKworICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91 dGlscy5jbGllbnRfY29ubmVjdF9kYXRhYmFzZSgKKyAgICAgICAgICAgIGh0dHBfY2xpZW50LAor ICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgc2VydmVyX2lkLAor ICAgICAgICAgICAgZGJfaWQsCisgICAgICAgICAgICBzZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10pCisg ICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6Cisg ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIHRoZSBkYXRh YmFzZS4iKQorCisgICAgICAgIHVybCA9ICcvZGF0YWdyaWQvaW5pdGlhbGl6ZS9xdWVyeV90b29s L3swfS97MX0vezJ9Jy5mb3JtYXQoCisgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsIHNl cnZlcl9pZCwgZGJfaWQpCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQucG9zdCh1cmwp CisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsKDIwMCkKKwor ICAgICAgICByZXNwb25zZV9kYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgn dXRmLTgnKSkKKyAgICAgICAgdHJhbnNfaWQgPSByZXNwb25zZV9kYXRhWydkYXRhJ11bJ2dyaWRU cmFuc0lkJ10KKworICAgICAgICBzcWwgPSAiIiIKIERPICQkCiBCRUdJTgogICAgIEZPUiBpIGlu IDEuLjEwMDAgTE9PUApAQCAtNDEsNzQgKzEyMSw4MSBAQCBCRUdJTgogRU5EICQkOwogCiBTRUxF Q1QgJ0NIRUNLSU5HIFBPTExJTkcgRk9SIExPTkcgTUVTU0FHRVMnOwotIiIiLAotICAgICAgICAg ICAgICAgICAiU0VMRUNUICdDSEVDS0lORyBQT0xMSU5HIFdJVEhPVVQgTUVTU0FHRVMnOyIKLSAg ICAgICAgICAgICBdLAotICAgICAgICAgICAgIGV4cGVjdGVkX21lc3NhZ2U9WydOT1RJQ0U6ICB0 YWJsZSAidGVzdF9mb3Jfbm90aWNlcyIgJyArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIiIiZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nCi1OT1RJQ0U6ICBIZWxsbywgd29ybGQhCi0i IiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxuIi5qb2luKFsiTk9USUNFOiAg Q291bnQgaXMgezB9Ii5mb3JtYXQoaSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZvciBpIGluIHJhbmdlKDEsIDEwMDEpXSkgKyAiXG4iLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE5vbmVdLAotICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD1b J0NIRUNLSU5HIFBPTExJTkcnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NIRUNL SU5HIFBPTExJTkcgRk9SIExPTkcgTUVTU0FHRVMnLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ0NIRUNLSU5HIFBPTExJTkcgV0lUSE9VVCBNRVNTQUdFUyddLAotICAgICAgICAgICAg IHByaW50X21lc3NhZ2VzPVsnMiBOT1RJQ0VTIFdJVEggREFUQVNFVCcsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICcxMDAwIE5PVElDRVMgV0lUSCBEQVRBU0VUJywKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJ05PIE5PVElDRSBXSVRIIERBVEFTRVQnCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICkpCi0gICAgXQotCi0gICAgZGVmIHJ1blRlc3Qo c2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgY2hlY2sgbWVzc2FnZXMgcmV0 dXJuIGJ5IHF1ZXJ5IHRvb2wgcG9sbGluZy4gIiIiCi0gICAgICAgIGRhdGFiYXNlX2luZm8gPSBw YXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9 IGRhdGFiYXNlX2luZm9bInNlcnZlcl9pZCJdCi0KLSAgICAgICAgc2VsZi5kYl9pZCA9IGRhdGFi YXNlX2luZm9bImRiX2lkIl0KLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVj dF9kYXRhYmFzZShzZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorIiIiCisgICAgICAg IGV4cGVjdGVkX21lc3NhZ2UgPSAiXG4iLmpvaW4oWyJOT1RJQ0U6ICBDb3VudCBpcyB7MH0iLmZv cm1hdChpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiBy YW5nZSgxLCAxMDAxKV0pICsgIlxuIgorICAgICAgICBleHBlY3RlZF9yZXN1bHQgPSAnQ0hFQ0tJ TkcgUE9MTElORyBGT1IgTE9ORyBNRVNTQUdFUycKKworICAgICAgICB1cmwgPSAnL3NxbGVkaXRv ci9xdWVyeV90b29sL3N0YXJ0L3swfScuZm9ybWF0KHRyYW5zX2lkKQorICAgICAgICByZXNwb25z ZSA9IGh0dHBfY2xpZW50LnBvc3QodXJsLCBkYXRhPWpzb24uZHVtcHMoeyJzcWwiOiBzcWx9KSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9q c29uJykKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbCgy MDApCisKKyAgICAgICAgdXJsID0gJy9zcWxlZGl0b3IvcG9sbC97MH0nLmZvcm1hdCh0cmFuc19p ZCkKKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2NsaWVudC5nZXQodXJsKQorICAgICAgICByZXNw b25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbCgyMDApCisKKyAgICAgICAgcmVzcG9u c2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCisKKyAg ICAgICAgcmVzcG9uc2VfZGF0YVsnZGF0YSddWydhZGRpdGlvbmFsX21lc3NhZ2VzJ10gfCBzaG91 bGQuYmUuZXF1YWwoCisgICAgICAgICAgICBleHBlY3RlZF9tZXNzYWdlCisgICAgICAgICkKKwor ICAgICAgICBleHBlY3RlZF9yZXN1bHQgfCBzaG91bGQuYmUuZXF1YWwoCisgICAgICAgICAgICBy ZXNwb25zZV9kYXRhWydkYXRhJ11bJ3Jlc3VsdCddWzBdWzBdKQorCisgICAgICAgIGRhdGFiYXNl X3V0aWxzLmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKGh0dHBfY2xpZW50LCBzZXJ2ZXJfaWQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX2lk KQorCisgICAgZGVmIHRlc3RfcG9sbF9hbmRfaGF2ZV9ub19ub3RpY2VzKHNlbGYsIGNvbnRleHRf b2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBxdWVyeSB0b29sIHBvbGwgdG8g Y2hlY2sgb24gdGhlIHF1ZXJ5IHdpdGggbm8gbm90aWNlcworICAgICAgICBJdCByZXR1cm5zIG1l c3NhZ2VzIHNheWluZyBwb2xsaW5nIGlzIGNoZWNraW5nIHdpdGhvdXQgbWVzc2FnZXMKKyAgICAg ICAgIiIiCisgICAgICAgIGRhdGFiYXNlX2luZm8gPSBjb250ZXh0X29mX3Rlc3RzWyJzZXJ2ZXJf aW5mb3JtYXRpb24iXQorICAgICAgICBzZXJ2ZXJfaWQgPSBkYXRhYmFzZV9pbmZvWyJzZXJ2ZXJf aWQiXQorICAgICAgICBkYl9pZCA9IGRhdGFiYXNlX2luZm9bImRiX2lkIl0KKworICAgICAgICBo dHRwX2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2Vy dmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKworICAgICAgICBkYl9jb24gPSBkYXRh YmFzZV91dGlscy5jbGllbnRfY29ubmVjdF9kYXRhYmFzZSgKKyAgICAgICAgICAgIGh0dHBfY2xp ZW50LAorICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgc2VydmVy X2lkLAorICAgICAgICAgICAgZGJfaWQsCisgICAgICAgICAgICBzZXJ2ZXJbJ2RiX3Bhc3N3b3Jk J10pCiAgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVk LiI6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIHRo ZSBkYXRhYmFzZS4iKQogCi0gICAgICAgICMgSW5pdGlhbGl6ZSBxdWVyeSB0b29sCiAgICAgICAg IHVybCA9ICcvZGF0YWdyaWQvaW5pdGlhbGl6ZS9xdWVyeV90b29sL3swfS97MX0vezJ9Jy5mb3Jt YXQoCi0gICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsIHNlbGYuc2VydmVyX2lkLCBzZWxm LmRiX2lkKQotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QodXJsKQotICAgICAg ICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAgICAgICAg ICAgdXRpbHMuU0VSVkVSX0dST1VQLCBzZXJ2ZXJfaWQsIGRiX2lkKQorICAgICAgICByZXNwb25z ZSA9IGh0dHBfY2xpZW50LnBvc3QodXJsKQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8 IHNob3VsZC5iZS5lcXVhbCgyMDApCiAKICAgICAgICAgcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9h ZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCi0gICAgICAgIHNlbGYudHJhbnNfaWQg PSByZXNwb25zZV9kYXRhWydkYXRhJ11bJ2dyaWRUcmFuc0lkJ10KKyAgICAgICAgdHJhbnNfaWQg PSByZXNwb25zZV9kYXRhWydkYXRhJ11bJ2dyaWRUcmFuc0lkJ10KKworICAgICAgICBzcWwgPSAi U0VMRUNUICdDSEVDS0lORyBQT0xMSU5HIFdJVEhPVVQgTUVTU0FHRVMnOyIKKyAgICAgICAgZXhw ZWN0ZWRfcmVzdWx0ID0gJ0NIRUNLSU5HIFBPTExJTkcgV0lUSE9VVCBNRVNTQUdFUycKIAotICAg ICAgICBjbnQgPSAwCi0gICAgICAgIGZvciBzIGluIHNlbGYuc3FsOgotICAgICAgICAgICAgcHJp bnQoIkV4ZWN1dGluZyBhbmQgcG9sbGluZyB3aXRoOiAiICsgc2VsZi5wcmludF9tZXNzYWdlc1tj bnRdKQotICAgICAgICAgICAgIyBTdGFydCBxdWVyeSB0b29sIHRyYW5zYWN0aW9uCi0gICAgICAg ICAgICB1cmwgPSAnL3NxbGVkaXRvci9xdWVyeV90b29sL3N0YXJ0L3swfScuZm9ybWF0KHNlbGYu dHJhbnNfaWQpCi0gICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QodXJsLCBk YXRhPWpzb24uZHVtcHMoeyJzcWwiOiBzfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorICAgICAgICB1cmwgPSAnL3Nx bGVkaXRvci9xdWVyeV90b29sL3N0YXJ0L3swfScuZm9ybWF0KHRyYW5zX2lkKQorICAgICAgICBy ZXNwb25zZSA9IGh0dHBfY2xpZW50LnBvc3QodXJsLCBkYXRhPWpzb24uZHVtcHMoeyJzcWwiOiBz cWx9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0n aHRtbC9qc29uJykKIAotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3Rh dHVzX2NvZGUsIDIwMCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUu ZXF1YWwoMjAwKQogCi0gICAgICAgICAgICAjIFF1ZXJ5IHRvb2wgcG9sbGluZwotICAgICAgICAg ICAgdXJsID0gJy9zcWxlZGl0b3IvcG9sbC97MH0nLmZvcm1hdChzZWxmLnRyYW5zX2lkKQotICAg ICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQodXJsKQotICAgICAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLSAgICAgICAgICAgIHJl c3BvbnNlX2RhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQor ICAgICAgICB1cmwgPSAnL3NxbGVkaXRvci9wb2xsL3swfScuZm9ybWF0KHRyYW5zX2lkKQorICAg ICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LmdldCh1cmwpCisgICAgICAgIHJlc3BvbnNlLnN0 YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsKDIwMCkKIAotICAgICAgICAgICAgaWYgc2VsZi5l eHBlY3RlZF9tZXNzYWdlW2NudF0gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgIyBDaGVj ayB0aGUgcmV0dXJuZWQgbWVzc2FnZXMKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEluKHNl bGYuZXhwZWN0ZWRfbWVzc2FnZVtjbnRdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmVzcG9uc2VfZGF0YVsnZGF0YSddWydhZGRpdGlvbmFsX21lc3NhZ2VzJ10pCisgICAgICAgIHJl c3BvbnNlX2RhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQog Ci0gICAgICAgICAgICAjIENoZWNrIHRoZSBvdXRwdXQKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWxzKHNlbGYuZXhwZWN0ZWRfcmVzdWx0W2NudF0sCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICByZXNwb25zZV9kYXRhWydkYXRhJ11bJ3Jlc3VsdCddWzBdWzBdKQorICAgICAgICBy ZXNwb25zZV9kYXRhWydkYXRhJ11bJ2FkZGl0aW9uYWxfbWVzc2FnZXMnXSB8IHNob3VsZC5iZS5u b25lCiAKLSAgICAgICAgICAgIGNudCArPSAxCisgICAgICAgIGV4cGVjdGVkX3Jlc3VsdCB8IHNo b3VsZC5iZS5lcXVhbCgKKyAgICAgICAgICAgIHJlc3BvbnNlX2RhdGFbJ2RhdGEnXVsncmVzdWx0 J11bMF1bMF0pCiAKLSAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBk YXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBz ZWxmLmRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9kYXRh YmFzZShodHRwX2NsaWVudCwgc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rv b2xzL3NxbGVkaXRvci90ZXN0cy90ZXN0X3ByZWZfdXRpbGl0aWVzLnB5IGIvd2ViL3BnYWRtaW4v dG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3RfcHJlZl91dGlsaXRpZXMucHkKaW5kZXggY2JkMTQx YjAuLmVhMDNiNDZlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVz dHMvdGVzdF9wcmVmX3V0aWxpdGllcy5weQorKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0 b3IvdGVzdHMvdGVzdF9wcmVmX3V0aWxpdGllcy5weQpAQCAtNiwxOSArNiwyMCBAQAogIyBUaGlz IHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi50b29s cy5zcWxlZGl0b3IudXRpbHMucXVlcnlfdG9vbF9wcmVmZXJlbmNlcyBpbXBvcnQgXAogICAgIGdl dF90ZXh0X3JlcHJlc2VudGF0aW9uX29mX3Nob3J0Y3V0CiAKIAotY2xhc3MgVGVzdFF1ZXJ5VG9v bFByZWZlcmVuY2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIgotICAgIEVuc3VyZXMgdGhh dCB3ZSBhcmUgYWJsZSB0byBmZXRjaCBwcmVmZXJlbmNlcyBwcm9wZXJseQotICAgICIiIgotICAg IHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdDaGVjayB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIGEg dmFsaWQgc2hvcnRjdXRzJywgZGljdCgKLSAgICAgICAgICAgIGZldGNoX3ByZWY9VHJ1ZSwKLSAg ICAgICAgICAgIHNhbXBsZV9zaG9ydGN1dD1kaWN0KAorY2xhc3MgVGVzdFF1ZXJ5VG9vbFByZWZl cmVuY2U6CisgICAgZGVmIHRlc3Rfc2hvcnRjdXRfYShzZWxmKToKKyAgICAgICAgIiIiCisgICAg ICAgIFdoZW4gdGhlIHRoZSBzaG9ydGN1dCBwcmVzc2VkIGlzICdhJworICAgICAgICBJdCByZXR1 cm4gdGhlIHN0cmluZyAnYScKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9IGdldF90ZXh0 X3JlcHJlc2VudGF0aW9uX29mX3Nob3J0Y3V0KAorICAgICAgICAgICAgZGljdCgKICAgICAgICAg ICAgICAgICBhbHQ9RmFsc2UsCiAgICAgICAgICAgICAgICAgc2hpZnQ9RmFsc2UsCiAgICAgICAg ICAgICAgICAgY29udHJvbD1GYWxzZSwKQEAgLTI2LDEzICsyNywxNiBAQCBjbGFzcyBUZXN0UXVl cnlUb29sUHJlZmVyZW5jZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAgICAgICAg IGNoYXI9J2EnLAogICAgICAgICAgICAgICAgICAgICBrZXlDb2RlPTY1CiAgICAgICAgICAgICAg ICAgKQotICAgICAgICAgICAgKSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0nYScKLSAg ICAgICAgKSksCisgICAgICAgICAgICApKQorICAgICAgICByZXN1bHQgfCBzaG91bGQuYmUuZXF1 YWwoJ2EnKQogCi0gICAgICAgICgnQ2hlY2sgdGV4dCByZXByZXNlbnRhdGlvbiBvZiBhIHZhbGlk IHNob3J0Y3V0cycsIGRpY3QoCi0gICAgICAgICAgICBmZXRjaF9wcmVmPVRydWUsCi0gICAgICAg ICAgICBzYW1wbGVfc2hvcnRjdXQ9ZGljdCgKKyAgICBkZWYgdGVzdF9zaG9ydGN1dF9hbHRfYShz ZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIHRoZSBzaG9ydGN1dCBwcmVzc2Vk IGlzIEFMVCArICdhJworICAgICAgICBJdCByZXR1cm4gdGhlIHN0cmluZyAnQWx0K2EnCisgICAg ICAgICIiIgorICAgICAgICByZXN1bHQgPSBnZXRfdGV4dF9yZXByZXNlbnRhdGlvbl9vZl9zaG9y dGN1dCgKKyAgICAgICAgICAgIGRpY3QoCiAgICAgICAgICAgICAgICAgYWx0PVRydWUsCiAgICAg ICAgICAgICAgICAgc2hpZnQ9RmFsc2UsCiAgICAgICAgICAgICAgICAgY29udHJvbD1GYWxzZSwK QEAgLTQwLDEzICs0NCwxNiBAQCBjbGFzcyBUZXN0UXVlcnlUb29sUHJlZmVyZW5jZShCYXNlVGVz dEdlbmVyYXRvcik6CiAgICAgICAgICAgICAgICAgICAgIGNoYXI9J2EnLAogICAgICAgICAgICAg ICAgICAgICBrZXlDb2RlPTY1CiAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgKSwKLSAg ICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0nQWx0K2EnCi0gICAgICAgICkpLAorICAgICAgICAg ICAgKSkKKyAgICAgICAgcmVzdWx0IHwgc2hvdWxkLmJlLmVxdWFsKCdBbHQrYScpCiAKLSAgICAg ICAgKCdDaGVjayB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIGEgdmFsaWQgc2hvcnRjdXRzJywgZGlj dCgKLSAgICAgICAgICAgIGZldGNoX3ByZWY9VHJ1ZSwKLSAgICAgICAgICAgIHNhbXBsZV9zaG9y dGN1dD1kaWN0KAorICAgIGRlZiB0ZXN0X3Nob3J0Y3V0X2FsdF9zaGl0X2NvbnRyb2xfYShzZWxm KToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIHRoZSBzaG9ydGN1dCBwcmVzc2VkIGlz IEFsdCArIENvbnRyb2wgKyBTaGlmdCArICdhJworICAgICAgICBJdCByZXR1cm4gdGhlIHN0cmlu ZyAnQWx0K1NoaWZ0K0N0cmwrYScKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9IGdldF90 ZXh0X3JlcHJlc2VudGF0aW9uX29mX3Nob3J0Y3V0KAorICAgICAgICAgICAgZGljdCgKICAgICAg ICAgICAgICAgICBhbHQ9VHJ1ZSwKICAgICAgICAgICAgICAgICBzaGlmdD1UcnVlLAogICAgICAg ICAgICAgICAgIGNvbnRyb2w9VHJ1ZSwKQEAgLTU0LDEzICs2MSwxNiBAQCBjbGFzcyBUZXN0UXVl cnlUb29sUHJlZmVyZW5jZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAgICAgICAg IGNoYXI9J2EnLAogICAgICAgICAgICAgICAgICAgICBrZXlDb2RlPTY1CiAgICAgICAgICAgICAg ICAgKQotICAgICAgICAgICAgKSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0nQWx0K1No aWZ0K0N0cmwrYScKLSAgICAgICAgKSksCisgICAgICAgICAgICApKQorICAgICAgICByZXN1bHQg fCBzaG91bGQuYmUuZXF1YWwoJ0FsdCtTaGlmdCtDdHJsK2EnKQogCi0gICAgICAgICgnQ2hlY2sg dGV4dCByZXByZXNlbnRhdGlvbiBvZiBhIHZhbGlkIHNob3J0Y3V0cycsIGRpY3QoCi0gICAgICAg ICAgICBmZXRjaF9wcmVmPVRydWUsCi0gICAgICAgICAgICBzYW1wbGVfc2hvcnRjdXQ9ZGljdCgK KyAgICBkZWYgdGVzdF9zaG9ydGN1dF9zaGl0X2Eoc2VsZik6CisgICAgICAgICIiIgorICAgICAg ICBXaGVuIHRoZSB0aGUgc2hvcnRjdXQgcHJlc3NlZCBpcyBTaGlmdCArICdhJworICAgICAgICBJ dCByZXR1cm4gdGhlIHN0cmluZyAnU2hpZnQrYScKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3Vs dCA9IGdldF90ZXh0X3JlcHJlc2VudGF0aW9uX29mX3Nob3J0Y3V0KAorICAgICAgICAgICAgZGlj dCgKICAgICAgICAgICAgICAgICBhbHQ9RmFsc2UsCiAgICAgICAgICAgICAgICAgc2hpZnQ9VHJ1 ZSwKICAgICAgICAgICAgICAgICBjb250cm9sPUZhbHNlLApAQCAtNjgsMzMgKzc4LDI5IEBAIGNs YXNzIFRlc3RRdWVyeVRvb2xQcmVmZXJlbmNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAg ICAgICAgICAgICAgY2hhcj0nYScsCiAgICAgICAgICAgICAgICAgICAgIGtleUNvZGU9NjUKICAg ICAgICAgICAgICAgICApCi0gICAgICAgICAgICApLAotICAgICAgICAgICAgZXhwZWN0ZWRfcmVz dWx0PSdTaGlmdCthJwotICAgICAgICApKSwKLQotICAgICAgICAoJ0NoZWNrIHRleHQgcmVwcmVz ZW50YXRpb24gb2YgYSB2YWxpZCBzaG9ydGN1dHMnLCBkaWN0KAotICAgICAgICAgICAgZmV0Y2hf cHJlZj1UcnVlLAotICAgICAgICAgICAgc2FtcGxlX3Nob3J0Y3V0PWRpY3QoCi0gICAgICAgICAg ICAgICAgYWx0PVRydWUsCi0gICAgICAgICAgICAgICAgc2hpZnQ9VHJ1ZSwKLSAgICAgICAgICAg ICAgICBjb250cm9sPUZhbHNlLAotICAgICAgICAgICAgICAgIGtleT1kaWN0KAotICAgICAgICAg ICAgICAgICAgICBjaGFyPSdhJywKLSAgICAgICAgICAgICAgICAgICAga2V5Q29kZT02NQotICAg ICAgICAgICAgICAgICkKLSAgICAgICAgICAgICksCi0gICAgICAgICAgICBleHBlY3RlZF9yZXN1 bHQ9J0FsdCtTaGlmdCthJwotICAgICAgICApKSwKKyAgICAgICAgICAgICkpCisgICAgICAgIHJl c3VsdCB8IHNob3VsZC5iZS5lcXVhbCgnU2hpZnQrYScpCiAKLSAgICAgICAgKCdDaGVjayB0ZXh0 IHJlcHJlc2VudGF0aW9uIG9mIGEgaW52YWxpZCBzaG9ydGN1dHMnLCBkaWN0KAotICAgICAgICAg ICAgZmV0Y2hfcHJlZj1UcnVlLAotICAgICAgICAgICAgc2FtcGxlX3Nob3J0Y3V0PU5vbmUsCi0g ICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9JycKKyAgICBkZWYgdGVzdF9zaG9ydGN1dF9hbHRf c2hpdF9hKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgdGhlIHNob3J0Y3V0 IHByZXNzZWQgaXMgQWx0ICsgU2hpZnQgKyAnYScKKyAgICAgICAgSXQgcmV0dXJuIHRoZSBzdHJp bmcgJ0FsdCtTaGlmdCthJworICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0ID0gZ2V0X3RleHRf cmVwcmVzZW50YXRpb25fb2Zfc2hvcnRjdXQoZGljdCgKKyAgICAgICAgICAgIGFsdD1UcnVlLAor ICAgICAgICAgICAgc2hpZnQ9VHJ1ZSwKKyAgICAgICAgICAgIGNvbnRyb2w9RmFsc2UsCisgICAg ICAgICAgICBrZXk9ZGljdCgKKyAgICAgICAgICAgICAgICBjaGFyPSdhJywKKyAgICAgICAgICAg ICAgICBrZXlDb2RlPTY1CisgICAgICAgICAgICApCiAgICAgICAgICkpCisgICAgICAgIHJlc3Vs dCB8IHNob3VsZC5iZS5lcXVhbCgnQWx0K1NoaWZ0K2EnKQogCi0gICAgXQotCi0gICAgZGVmIHJ1 blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIkNoZWNrIGNvcnJlY3QgZnVuY3Rpb24gaXMgY2FsbGVk IHRvIGhhbmRsZSB0byBydW4gcXVlcnkuIiIiCi0gICAgICAgIHJlc3VsdCA9IGdldF90ZXh0X3Jl cHJlc2VudGF0aW9uX29mX3Nob3J0Y3V0KHNlbGYuc2FtcGxlX3Nob3J0Y3V0KQotICAgICAgICBz ZWxmLmFzc2VydEVxdWFscyhyZXN1bHQsIHNlbGYuZXhwZWN0ZWRfcmVzdWx0KQorICAgIGRlZiB0 ZXN0X3Nob3J0Y3V0X2ludmFsaWQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRo ZSBmdW5jdGlvbiByZWNlaXZlcyBOb25lIGFzIHRoZSBzaG9ydGN1dAorICAgICAgICBJdCByZXR1 cm4gZW1wdHkgc3RyaW5nCisgICAgICAgICIiIgorICAgICAgICByZXN1bHQgPSBnZXRfdGV4dF9y ZXByZXNlbnRhdGlvbl9vZl9zaG9ydGN1dChOb25lKQorICAgICAgICByZXN1bHQgfCBzaG91bGQu YmUuZXF1YWwoJycpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVz dHMvdGVzdF9zdGFydF9xdWVyeV90b29sLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9y L3Rlc3RzL3Rlc3Rfc3RhcnRfcXVlcnlfdG9vbC5weQppbmRleCBjMmZmMjFjNS4uMTA4NTMwOWIg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90ZXN0X3N0YXJ0 X3F1ZXJ5X3Rvb2wucHkKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rl c3Rfc3RhcnRfcXVlcnlfdG9vbC5weQpAQCAtOCw3ICs4LDggQEAKICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CiBpbXBvcnQgc3lzCiAKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLnRvb2xz LnNxbGVkaXRvciBpbXBvcnQgU3RhcnRSdW5uaW5nUXVlcnkKIAogaWYgc3lzLnZlcnNpb25faW5m byA8ICgzLCAzKToKQEAgLTE3LDE1ICsxOCwxOCBAQCBlbHNlOgogICAgIGZyb20gdW5pdHRlc3Qu bW9jayBpbXBvcnQgcGF0Y2gsIEFOWQogCiAKLWNsYXNzIFN0YXJ0UXVlcnlUb29sKEJhc2VUZXN0 R2VuZXJhdG9yKToKLSAgICAiIiIKLSAgICBFbnN1cmVzIHRoYXQgdGhlIGNhbGwgdG8gdGhlIGJh Y2tlbmQgdG8gc3RhcnQgcnVubmluZyBhIHF1ZXJ5Ci0gICAgY2FsbHMgdGhlIG5lZWRlZCBmdW5j dGlvbnMKLSAgICAiIiIKK2NsYXNzIFRlc3RTdGFydFF1ZXJ5VG9vbDoKKyAgICAiIiJTdGFydFF1 ZXJ5VG9vbCIiIgogCiAgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci5leHRyYWN0 X3NxbF9mcm9tX25ldHdvcmtfcGFyYW1ldGVycycpCi0gICAgZGVmIHJ1blRlc3Qoc2VsZiwgZXh0 cmFjdF9zcWxfZnJvbV9uZXR3b3JrX3BhcmFtZXRlcnNfbW9jayk6Ci0gICAgICAgICIiIkNoZWNr IGNvcnJlY3QgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIGhhbmRsZSB0byBydW4gcXVlcnkuIiIiCisg ICAgZGVmIHRlc3RfYWxsKHNlbGYsIGV4dHJhY3Rfc3FsX2Zyb21fbmV0d29ya19wYXJhbWV0ZXJz X21vY2ssCisgICAgICAgICAgICAgICAgIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIK KyAgICAgICAgV2hlbiByZXF1ZXN0IGlzIHNlbnQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgQW5k IHRoZSByZXF1ZXN0IHBhcmFtZXRlcnMgYXJlIGNvcnJlY3QKKyAgICAgICAgSXQgc3RhcnRzIHRo ZSBleGVjdXRpb24gb2YgdGhlIHF1ZXJ5IGFuZCByZXR1cm4gMjAwCisgICAgICAgICIiIgorICAg ICAgICBodHRwX2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KIAogICAg ICAgICBleHRyYWN0X3NxbF9mcm9tX25ldHdvcmtfcGFyYW1ldGVyc19tb2NrLnJldHVybl92YWx1 ZSA9IFwKICAgICAgICAgICAgICd0cmFuc2Zvcm1lZCBzcWwnCkBAIC0zNCwxMyArMzgsMTQgQEAg Y2xhc3MgU3RhcnRRdWVyeVRvb2woQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICAg ICAgICAgICAgICAnZXhlY3V0ZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybl92 YWx1ZT0nc29tZSByZXN1bHQnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICkgYXMgU3RhcnRS dW5uaW5nUXVlcnlfZXhlY3V0ZV9tb2NrOgotICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRl c3Rlci5wb3N0KAorICAgICAgICAgICAgcmVzcG9uc2UgPSBodHRwX2NsaWVudC5wb3N0KAogICAg ICAgICAgICAgICAgICcvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2wvc3RhcnQvMTIzNCcsCiAgICAgICAg ICAgICAgICAgZGF0YT0nInNvbWUgc3FsIHN0YXRlbWVudCInCiAgICAgICAgICAgICApCiAKLSAg ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1cywgJzIwMCBPSycpCi0g ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5kYXRhLCBiJ3NvbWUgcmVzdWx0 JykKKyAgICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyB8IHNob3VsZC5iZS5lcXVhbC50bygnMjAw IE9LJykKKyAgICAgICAgICAgIHJlc3BvbnNlLmRhdGEgfCBzaG91bGQuYmUuZXF1YWwudG8oYidz b21lIHJlc3VsdCcpCisKICAgICAgICAgICAgIFN0YXJ0UnVubmluZ1F1ZXJ5X2V4ZWN1dGVfbW9j ayBcCiAgICAgICAgICAgICAgICAgLmFzc2VydF9jYWxsZWRfd2l0aCgndHJhbnNmb3JtZWQgc3Fs JywgMTIzNCwgQU5ZLCBGYWxzZSkKICAgICAgICAgICAgIGV4dHJhY3Rfc3FsX2Zyb21fbmV0d29y a19wYXJhbWV0ZXJzX21vY2sgXApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRp dG9yL3Rlc3RzL3Rlc3Rfdmlld19kYXRhX3RlbXBsYXRlcy5weSBiL3dlYi9wZ2FkbWluL3Rvb2xz L3NxbGVkaXRvci90ZXN0cy90ZXN0X3ZpZXdfZGF0YV90ZW1wbGF0ZXMucHkKaW5kZXggN2MzOTQy MGYuLjg2MTVmMzVlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVz dHMvdGVzdF92aWV3X2RhdGFfdGVtcGxhdGVzLnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3Nx bGVkaXRvci90ZXN0cy90ZXN0X3ZpZXdfZGF0YV90ZW1wbGF0ZXMucHkKQEAgLTExLDE3MCArMTEs MTk4IEBAIGltcG9ydCBvcwogaW1wb3J0IHJlCiAKIGZyb20gZmxhc2sgaW1wb3J0IEZsYXNrLCBy ZW5kZXJfdGVtcGxhdGUKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKIGZyb20gamluamEyIGlt cG9ydCBGaWxlU3lzdGVtTG9hZGVyCiAKLWZyb20gcGdhZG1pbiBpbXBvcnQgVmVyc2lvbmVkVGVt cGxhdGVMb2FkZXIKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5l cmF0b3IKLWZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKIGZyb20g Y29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUgorZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZl ciBpbXBvcnQgZ2V0X2RyaXZlcgorCiB0cnk6CiAgICAgZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQg T3JkZXJlZERpY3QKIGV4Y2VwdCBJbXBvcnRFcnJvcjoKICAgICBmcm9tIG9yZGVyZWRkaWN0IGlt cG9ydCBPcmRlcmVkRGljdAogCiAKLWNsYXNzIFRlc3RWaWV3RGF0YVRlbXBsYXRlcyhCYXNlVGVz dEdlbmVyYXRvcik6Ci0gICAgIiIiCi0gICAgVGhpcyBjbGFzcyB2YWxpZGF0ZXMgdGhlIHRlbXBs YXRlIHF1ZXJ5IGZvcgotICAgIGluc2VydGluZyBhbmQgc2VsZWN0aW5nIHRhYmxlIGRhdGEuCi0g ICAgIiIiCi0gICAgZGF0YV90b19iZV9zYXZlZCA9IE9yZGVyZWREaWN0KCkKLSAgICBkYXRhX3Rv X2JlX3NhdmVkWydpZCddID0gJzEnCi0gICAgZGF0YV90b19iZV9zYXZlZFsndGV4dCddID0gJ2p1 c3QgdGVzdCcKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgKLSAgICAgICAgICAgICdXaGVu IGluc2VydGluZyBhbmQgc2VsZWN0aW5nIHRhYmxlIGRhdGEgd2l0aCBvbmx5IFBLJywKLSAgICAg ICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgICAgaW5zZXJ0X3RlbXBsYXRlX3BhdGg9J3NxbGVk aXRvci9zcWwvZGVmYXVsdC9pbnNlcnQuc3FsJywKLSAgICAgICAgICAgICAgICBpbnNlcnRfcGFy YW1ldGVycz1kaWN0KAotICAgICAgICAgICAgICAgICAgICBkYXRhX3RvX2JlX3NhdmVkPWRhdGFf dG9fYmVfc2F2ZWQsCi0gICAgICAgICAgICAgICAgICAgIHByaW1hcnlfa2V5cz1Ob25lLAotICAg ICAgICAgICAgICAgICAgICBvYmplY3RfbmFtZT0ndGVzdF90YWJsZScsCi0gICAgICAgICAgICAg ICAgICAgIG5zcF9uYW1lPSd0ZXN0X3NjaGVtYScsCi0gICAgICAgICAgICAgICAgICAgIGRhdGFf dHlwZT17J3RleHQnOiAndGV4dCcsICdpZCc6ICdpbnRlZ2VyJ30sCi0gICAgICAgICAgICAgICAg ICAgIHBrX25hbWVzPSdpZCcsCi0gICAgICAgICAgICAgICAgICAgIGhhc19vaWRzPUZhbHNlCi0g ICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBpbnNlcnRfZXhwZWN0ZWRfcmV0dXJu X3ZhbHVlPSdJTlNFUlQgSU5UTycKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICcgdGVzdF9zY2hlbWEudGVzdF90YWJsZScKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICcgKGlkLCB0ZXh0KSBWQUxVRVMnCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICglKGlkKXM6OmludGVnZXIsICcK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICclKHRleHQpczo6 dGV4dCknCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIHJl dHVybmluZyBpZDsnLAotICAgICAgICAgICAgICAgIHNlbGVjdF90ZW1wbGF0ZV9wYXRoPSdzcWxl ZGl0b3Ivc3FsL2RlZmF1bHQvc2VsZWN0LnNxbCcsCi0gICAgICAgICAgICAgICAgc2VsZWN0X3Bh cmFtZXRlcnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgb2JqZWN0X25hbWU9J3Rlc3RfdGFi bGUnLAotICAgICAgICAgICAgICAgICAgICBuc3BfbmFtZT0ndGVzdF9zY2hlbWEnLAotICAgICAg ICAgICAgICAgICAgICBwcmltYXJ5X2tleXM9T3JkZXJlZERpY3QoWygnaWQnLCAnaW50NCcpXSks Ci0gICAgICAgICAgICAgICAgICAgIGhhc19vaWRzPUZhbHNlCi0gICAgICAgICAgICAgICAgKSwK LSAgICAgICAgICAgICAgICBzZWxlY3RfZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPSdTRUxFQ1QgKiBG Uk9NICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0 X3NjaGVtYS50ZXN0X3RhYmxlJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ1dIRVJFIGlkID0gJShpZClzOycKLSAgICAgICAgICAgICkpLAotICAgICAgICAo Ci0gICAgICAgICAgICAnV2hlbiBpbnNlcnRpbmcgYW5kIHNlbGVjdGluZyB0YWJsZSBkYXRhIHdp dGggbXVsdGlwbGUgUEsnLAotICAgICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICAgICBpbnNl cnRfdGVtcGxhdGVfcGF0aD0nc3FsZWRpdG9yL3NxbC9kZWZhdWx0L2luc2VydC5zcWwnLAotICAg ICAgICAgICAgICAgIGluc2VydF9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgICAg IGRhdGFfdG9fYmVfc2F2ZWQ9ZGF0YV90b19iZV9zYXZlZCwKLSAgICAgICAgICAgICAgICAgICAg cHJpbWFyeV9rZXlzPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgIG9iamVjdF9uYW1lPSd0ZXN0 X3RhYmxlJywKLSAgICAgICAgICAgICAgICAgICAgbnNwX25hbWU9J3Rlc3Rfc2NoZW1hJywKLSAg ICAgICAgICAgICAgICAgICAgZGF0YV90eXBlPXsndGV4dCc6ICd0ZXh0JywgJ2lkJzogJ2ludGVn ZXInfSwKLSAgICAgICAgICAgICAgICAgICAgcGtfbmFtZXM9J2lkLCB0ZXh0JywKLSAgICAgICAg ICAgICAgICAgICAgaGFzX29pZHM9RmFsc2UKLSAgICAgICAgICAgICAgICApLAotICAgICAgICAg ICAgICAgIGluc2VydF9leHBlY3RlZF9yZXR1cm5fdmFsdWU9J0lOU0VSVCBJTlRPJwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyB0ZXN0X3NjaGVtYS50ZXN0 X3RhYmxlJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAo aWQsIHRleHQpJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JyBWQUxVRVMgKCUoaWQpczo6aW50ZWdlciwnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnICUodGV4dClzOjp0ZXh0KScKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICcgcmV0dXJuaW5nIGlkLCB0ZXh0OycsCi0gICAgICAg ICAgICAgICAgc2VsZWN0X3RlbXBsYXRlX3BhdGg9J3NxbGVkaXRvci9zcWwvZGVmYXVsdC9zZWxl Y3Quc3FsJywKLSAgICAgICAgICAgICAgICBzZWxlY3RfcGFyYW1ldGVycz1kaWN0KAotICAgICAg ICAgICAgICAgICAgICBvYmplY3RfbmFtZT0ndGVzdF90YWJsZScsCi0gICAgICAgICAgICAgICAg ICAgIG5zcF9uYW1lPSd0ZXN0X3NjaGVtYScsCi0gICAgICAgICAgICAgICAgICAgIHByaW1hcnlf a2V5cz1PcmRlcmVkRGljdChbKCdpZCcsICdpbnQ0JyksCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKCd0ZXh0JywgJ3RleHQnKV0pLAotICAgICAgICAgICAg ICAgICAgICBoYXNfb2lkcz1GYWxzZQotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAg ICAgc2VsZWN0X2V4cGVjdGVkX3JldHVybl92YWx1ZT0nU0VMRUNUICogRlJPTScKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgdGVzdF9zY2hlbWEudGVzdF90 YWJsZScKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdXSEVS RSBpZCA9ICUoaWQpcyBBTkQnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnIHRleHQgPSAlKHRleHQpczsnCi0gICAgICAgICAgICApKSwKLSAgICAgICAgKAot ICAgICAgICAgICAgJ1doZW4gaW5zZXJ0aW5nIGFuZCBzZWxlY3RpbmcgdGFibGUgZGF0YSB3aXRo IFBLIGFuZCBPSUQnLAotICAgICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICAgICBpbnNlcnRf dGVtcGxhdGVfcGF0aD0nc3FsZWRpdG9yL3NxbC9kZWZhdWx0L2luc2VydC5zcWwnLAotICAgICAg ICAgICAgICAgIGluc2VydF9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIGRh dGFfdG9fYmVfc2F2ZWQ9ZGF0YV90b19iZV9zYXZlZCwKLSAgICAgICAgICAgICAgICAgICAgcHJp bWFyeV9rZXlzPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgIG9iamVjdF9uYW1lPSd0ZXN0X3Rh YmxlJywKLSAgICAgICAgICAgICAgICAgICAgbnNwX25hbWU9J3Rlc3Rfc2NoZW1hJywKLSAgICAg ICAgICAgICAgICAgICAgZGF0YV90eXBlPXsndGV4dCc6ICd0ZXh0JywgJ2lkJzogJ2ludGVnZXIn fSwKLSAgICAgICAgICAgICAgICAgICAgcGtfbmFtZXM9J2lkJywKLSAgICAgICAgICAgICAgICAg ICAgaGFzX29pZHM9VHJ1ZQotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgaW5z ZXJ0X2V4cGVjdGVkX3JldHVybl92YWx1ZT0nSU5TRVJUIElOVE8nCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIHRlc3Rfc2NoZW1hLnRlc3RfdGFibGUnCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIChpZCwgdGV4dCkg VkFMVUVTJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAo JShpZClzOjppbnRlZ2VyLCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnJSh0ZXh0KXM6OnRleHQpICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdyZXR1cm5pbmcgb2lkOycsCi0gICAgICAgICAgICAgICAgc2VsZWN0 X3RlbXBsYXRlX3BhdGg9J3NxbGVkaXRvci9zcWwvZGVmYXVsdC9zZWxlY3Quc3FsJywKLSAgICAg ICAgICAgICAgICBzZWxlY3RfcGFyYW1ldGVycz1kaWN0KAotICAgICAgICAgICAgICAgICAgICBv YmplY3RfbmFtZT0ndGVzdF90YWJsZScsCi0gICAgICAgICAgICAgICAgICAgIG5zcF9uYW1lPSd0 ZXN0X3NjaGVtYScsCi0gICAgICAgICAgICAgICAgICAgIHByaW1hcnlfa2V5cz1PcmRlcmVkRGlj dChbKCdpZCcsICdpbnQ0JyldKSwKLSAgICAgICAgICAgICAgICAgICAgaGFzX29pZHM9VHJ1ZQot ICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgc2VsZWN0X2V4cGVjdGVkX3JldHVy bl92YWx1ZT0nU0VMRUNUIG9pZCwgKiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnRlJPTSB0ZXN0X3NjaGVtYS50ZXN0X3RhYmxlJwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1dIRVJFIG9pZCA9ICUob2lkKXM7Jwot ICAgICAgICAgICAgKSksCi0gICAgICAgICgKLSAgICAgICAgICAgICdXaGVuIGluc2VydGluZyBh bmQgc2VsZWN0aW5nIHRhYmxlIGRhdGEgd2l0aCBvbmx5IE9JRCcsCi0gICAgICAgICAgICBkaWN0 KAotICAgICAgICAgICAgICAgIGluc2VydF90ZW1wbGF0ZV9wYXRoPSdzcWxlZGl0b3Ivc3FsL2Rl ZmF1bHQvaW5zZXJ0LnNxbCcsCi0gICAgICAgICAgICAgICAgaW5zZXJ0X3BhcmFtZXRlcnM9ZGlj dCgKLSAgICAgICAgICAgICAgICAgICAgZGF0YV90b19iZV9zYXZlZD1kYXRhX3RvX2JlX3NhdmVk LAotICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2tleXM9Tm9uZSwKLSAgICAgICAgICAgICAg ICAgICAgb2JqZWN0X25hbWU9J3Rlc3RfdGFibGUnLAotICAgICAgICAgICAgICAgICAgICBuc3Bf bmFtZT0ndGVzdF9zY2hlbWEnLAotICAgICAgICAgICAgICAgICAgICBkYXRhX3R5cGU9eyd0ZXh0 JzogJ3RleHQnLCAnaWQnOiAnaW50ZWdlcid9LAotICAgICAgICAgICAgICAgICAgICBwa19uYW1l cz1Ob25lLAotICAgICAgICAgICAgICAgICAgICBoYXNfb2lkcz1UcnVlCi0gICAgICAgICAgICAg ICAgKSwKLSAgICAgICAgICAgICAgICBpbnNlcnRfZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPSdJTlNF UlQgSU5UTycKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcg dGVzdF9zY2hlbWEudGVzdF90YWJsZScKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICcgKGlkLCB0ZXh0KSBWQUxVRVMnCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnICglKGlkKXM6OmludGVnZXIsJwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAlKHRleHQpczo6dGV4dCknCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIHJldHVybmluZyBvaWQ7 JywKLSAgICAgICAgICAgICAgICBzZWxlY3RfdGVtcGxhdGVfcGF0aD0nc3FsZWRpdG9yL3NxbC9k ZWZhdWx0L3NlbGVjdC5zcWwnLAotICAgICAgICAgICAgICAgIHNlbGVjdF9wYXJhbWV0ZXJzPWRp Y3QoCi0gICAgICAgICAgICAgICAgICAgIG9iamVjdF9uYW1lPSd0ZXN0X3RhYmxlJywKLSAgICAg ICAgICAgICAgICAgICAgbnNwX25hbWU9J3Rlc3Rfc2NoZW1hJywKLSAgICAgICAgICAgICAgICAg ICAgcHJpbWFyeV9rZXlzPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgIGhhc19vaWRzPVRydWUK LSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgIHNlbGVjdF9leHBlY3RlZF9yZXR1 cm5fdmFsdWU9J1NFTEVDVCBvaWQsICogRlJPTScKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICcgdGVzdF9zY2hlbWEudGVzdF90YWJsZScKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdXSEVSRSBvaWQgPSAlKG9pZClzOycK K2NsYXNzIFRlc3RWaWV3RGF0YVRlbXBsYXRlczoKKyAgICBkZWYgdGVzdF9pbnNlcnRfd2l0aF9v bmx5X3BrKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBJbnNlcnRpbmcgdGFibGUg ZGF0YSB3aXRoIG9ubHkgUHJpbWFyeSBLZXkKKyAgICAgICAgSXQgcmV0dXJucyB0aGUgY29ycmVj dCBTUUwKKyAgICAgICAgIiIiCisgICAgICAgIGRhdGFfdG9fYmVfc2F2ZWQgPSBPcmRlcmVkRGlj dCgpCisgICAgICAgIGRhdGFfdG9fYmVfc2F2ZWRbJ2lkJ10gPSAnMScKKyAgICAgICAgZGF0YV90 b19iZV9zYXZlZFsndGV4dCddID0gJ2p1c3QgdGVzdCcKKyAgICAgICAgd2l0aCBGYWtlQXBwKCku YXBwX2NvbnRleHQoKToKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlbmRlcl90ZW1wbGF0ZSgnc3Fs ZWRpdG9yL3NxbC9kZWZhdWx0L2luc2VydC5zcWwnLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGFfdG9fYmVfc2F2ZWQ9ZGF0YV90b19iZV9zYXZlZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2tleXM9Tm9uZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3RfbmFtZT0ndGVzdF90YWJsZScsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnNwX25hbWU9J3Rlc3Rfc2NoZW1h JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhX3R5cGU9eyd0ZXh0 JzogJ3RleHQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ2lkJzogJ2ludGVnZXInfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwa19uYW1lcz0naWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhh c19vaWRzPUZhbHNlKQorCisgICAgICAgICAgICBzdHIocmVzdWx0KS5yZXBsYWNlKCJcbiIsICIi KSB8IHNob3VsZC5iZS5lcXVhbCgKKyAgICAgICAgICAgICAgICAnSU5TRVJUIElOVE8gdGVzdF9z Y2hlbWEudGVzdF90YWJsZSAoaWQsIHRleHQpIFZBTFVFUycKKyAgICAgICAgICAgICAgICAnICgl KGlkKXM6OmludGVnZXIsICUodGV4dClzOjp0ZXh0KSByZXR1cm5pbmcgaWQ7JworICAgICAgICAg ICAgICAgIC5yZXBsYWNlKCJcbiIsICIiKSkKKworICAgIGRlZiB0ZXN0X2luc2VydF93aXRoX211 bHRpcGxlX3BrKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBJbnNlcnRpbmcgdGFi bGUgZGF0YSB3aXRoIG11bHRpcGxlIFByaW1hcnkgS2V5cworICAgICAgICBJdCByZXR1cm5zIHRo ZSBjb3JyZWN0IFNRTAorICAgICAgICAiIiIKKyAgICAgICAgZGF0YV90b19iZV9zYXZlZCA9IE9y ZGVyZWREaWN0KCkKKyAgICAgICAgZGF0YV90b19iZV9zYXZlZFsnaWQnXSA9ICcxJworICAgICAg ICBkYXRhX3RvX2JlX3NhdmVkWyd0ZXh0J10gPSAnanVzdCB0ZXN0JworICAgICAgICB3aXRoIEZh a2VBcHAoKS5hcHBfY29udGV4dCgpOgorICAgICAgICAgICAgcmVzdWx0ID0gcmVuZGVyX3RlbXBs YXRlKCdzcWxlZGl0b3Ivc3FsL2RlZmF1bHQvaW5zZXJ0LnNxbCcsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGF0YV90b19iZV9zYXZlZD1kYXRhX3RvX2JlX3NhdmVkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlfa2V5cz1Ob25lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdF9uYW1lPSd0ZXN0X3Rh YmxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuc3BfbmFtZT0ndGVz dF9zY2hlbWEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfdHlw ZT17J3RleHQnOiAndGV4dCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnaWQnOiAnaW50ZWdlcid9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBrX25hbWVzPSdpZCwgdGV4dCcsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaGFzX29pZHM9RmFsc2UpCisKKyAgICAgICAgICAgIHN0cihyZXN1bHQpLnJl cGxhY2UoIlxuIiwgIiIpIHwgc2hvdWxkLmJlLmVxdWFsKAorICAgICAgICAgICAgICAgICdJTlNF UlQgSU5UTyB0ZXN0X3NjaGVtYS50ZXN0X3RhYmxlIChpZCwgdGV4dCkgVkFMVUVTJworICAgICAg ICAgICAgICAgICcgKCUoaWQpczo6aW50ZWdlciwgJSh0ZXh0KXM6OnRleHQpIHJldHVybmluZyBp ZCwgdGV4dDsnCisgICAgICAgICAgICAgICAgLnJlcGxhY2UoIlxuIiwgIiIpKQorCisgICAgZGVm IHRlc3RfaW5zZXJ0X3dpdGhfb25lX3BrX2FuZF9vaWQoc2VsZik6CisgICAgICAgICIiIgorICAg ICAgICBXaGVuIEluc2VydGluZyB0YWJsZSBkYXRhIHdpdGggb25lIFByaW1hcnkgS2V5IGFuZCBP SUQKKyAgICAgICAgSXQgcmV0dXJucyB0aGUgY29ycmVjdCBTUUwKKyAgICAgICAgIiIiCisgICAg ICAgIGRhdGFfdG9fYmVfc2F2ZWQgPSBPcmRlcmVkRGljdCgpCisgICAgICAgIGRhdGFfdG9fYmVf c2F2ZWRbJ2lkJ10gPSAnMScKKyAgICAgICAgZGF0YV90b19iZV9zYXZlZFsndGV4dCddID0gJ2p1 c3QgdGVzdCcKKyAgICAgICAgd2l0aCBGYWtlQXBwKCkuYXBwX2NvbnRleHQoKToKKyAgICAgICAg ICAgIHJlc3VsdCA9IHJlbmRlcl90ZW1wbGF0ZSgnc3FsZWRpdG9yL3NxbC9kZWZhdWx0L2luc2Vy dC5zcWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfdG9fYmVf c2F2ZWQ9ZGF0YV90b19iZV9zYXZlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwcmltYXJ5X2tleXM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBvYmplY3RfbmFtZT0ndGVzdF90YWJsZScsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbnNwX25hbWU9J3Rlc3Rfc2NoZW1hJywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkYXRhX3R5cGU9eyd0ZXh0JzogJ3RleHQnLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJzogJ2ludGVnZXInfSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwa19uYW1lcz0naWQnLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc19vaWRzPVRydWUpCisKKyAgICAgICAg ICAgIHN0cihyZXN1bHQpLnJlcGxhY2UoIlxuIiwgIiIpIHwgc2hvdWxkLmJlLmVxdWFsKAorICAg ICAgICAgICAgICAgICdJTlNFUlQgSU5UTyB0ZXN0X3NjaGVtYS50ZXN0X3RhYmxlIChpZCwgdGV4 dCkgVkFMVUVTJworICAgICAgICAgICAgICAgICcgKCUoaWQpczo6aW50ZWdlciwgJSh0ZXh0KXM6 OnRleHQpIHJldHVybmluZyBvaWQ7JworICAgICAgICAgICAgICAgIC5yZXBsYWNlKCJcbiIsICIi KSkKKworICAgIGRlZiB0ZXN0X2luc2VydF93aXRoX29ubHlfb2lkKHNlbGYpOgorICAgICAgICAi IiIKKyAgICAgICAgV2hlbiBJbnNlcnRpbmcgdGFibGUgZGF0YSB3aXRoIE9JRAorICAgICAgICBJ dCByZXR1cm5zIHRoZSBjb3JyZWN0IFNRTAorICAgICAgICAiIiIKKyAgICAgICAgZGF0YV90b19i ZV9zYXZlZCA9IE9yZGVyZWREaWN0KCkKKyAgICAgICAgZGF0YV90b19iZV9zYXZlZFsnaWQnXSA9 ICcxJworICAgICAgICBkYXRhX3RvX2JlX3NhdmVkWyd0ZXh0J10gPSAnanVzdCB0ZXN0JworICAg ICAgICB3aXRoIEZha2VBcHAoKS5hcHBfY29udGV4dCgpOgorICAgICAgICAgICAgcmVzdWx0ID0g cmVuZGVyX3RlbXBsYXRlKCdzcWxlZGl0b3Ivc3FsL2RlZmF1bHQvaW5zZXJ0LnNxbCcsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV90b19iZV9zYXZlZD1kYXRhX3Rv X2JlX3NhdmVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlf a2V5cz1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdF9u YW1lPSd0ZXN0X3RhYmxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu c3BfbmFtZT0ndGVzdF9zY2hlbWEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRhdGFfdHlwZT17J3RleHQnOiAndGV4dCcsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnaWQnOiAnaW50ZWdlcid9LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBrX25hbWVzPSdpZCcsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaGFzX29pZHM9VHJ1ZSkKKworICAgICAgICAgICAgc3RyKHJlc3Vs dCkucmVwbGFjZSgiXG4iLCAiIikgfCBzaG91bGQuYmUuZXF1YWwoCisgICAgICAgICAgICAgICAg J0lOU0VSVCBJTlRPIHRlc3Rfc2NoZW1hLnRlc3RfdGFibGUgKGlkLCB0ZXh0KSBWQUxVRVMnCisg ICAgICAgICAgICAgICAgJyAoJShpZClzOjppbnRlZ2VyLCAlKHRleHQpczo6dGV4dCkgcmV0dXJu aW5nIG9pZDsnCisgICAgICAgICAgICAgICAgLnJlcGxhY2UoIlxuIiwgIiIpKQorCisgICAgZGVm IHRlc3Rfc2VsZWN0X29ubHlfcGsoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIFNl bGVjdGluZyB0YWJsZSBkYXRhIHdpdGggb25seSBQcmltYXJ5IEtleQorICAgICAgICBJdCByZXR1 cm5zIHRoZSBjb3JyZWN0IFNRTAorICAgICAgICAiIiIKKyAgICAgICAgZGF0YV90b19iZV9zYXZl ZCA9IE9yZGVyZWREaWN0KCkKKyAgICAgICAgZGF0YV90b19iZV9zYXZlZFsnaWQnXSA9ICcxJwor ICAgICAgICBkYXRhX3RvX2JlX3NhdmVkWyd0ZXh0J10gPSAnanVzdCB0ZXN0JworICAgICAgICB3 aXRoIEZha2VBcHAoKS5hcHBfY29udGV4dCgpOgorICAgICAgICAgICAgcmVzdWx0ID0gcmVuZGVy X3RlbXBsYXRlKCdzcWxlZGl0b3Ivc3FsL2RlZmF1bHQvc2VsZWN0LnNxbCcsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0X25hbWU9J3Rlc3RfdGFibGUnLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5zcF9uYW1lPSd0ZXN0X3NjaGVtYScs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9rZXlzPU9yZGVy ZWREaWN0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKCdpZCcs ICdpbnQ0JyldKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNfb2lk cz1GYWxzZSkKKyAgICAgICAgICAgIHJlLnN1YignICsnLCAnICcsIHN0cihyZXN1bHQpLnJlcGxh Y2UoIlxuIiwgIiAiKSkgfCBzaG91bGQuYmUgXAorICAgICAgICAgICAgICAgIC5lcXVhbCgKKyAg ICAgICAgICAgICAgICAiIiIgU0VMRUNUICogRlJPTSB0ZXN0X3NjaGVtYS50ZXN0X3RhYmxlIFdI RVJFIGlkID0gJShpZClzIDsiIiIKICAgICAgICAgICAgICkKLSAgICAgICAgKQotICAgIF0KIAot ICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5sb2FkZXIgPSBWZXJzaW9uZWRUZW1w bGF0ZUxvYWRlcihGYWtlQXBwKCkpCisgICAgZGVmIHRlc3Rfc2VsZWN0X3dpdGhfbXVsdGlwbGVf cGsoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIFNlbGVjdGluZyB0YWJsZSBkYXRh IHdpdGggbXVsdGlwbGUgUHJpbWFyeSBLZXlzCisgICAgICAgIEl0IHJldHVybnMgdGhlIGNvcnJl Y3QgU1FMCisgICAgICAgICIiIgorICAgICAgICBkYXRhX3RvX2JlX3NhdmVkID0gT3JkZXJlZERp Y3QoKQorICAgICAgICBkYXRhX3RvX2JlX3NhdmVkWydpZCddID0gJzEnCisgICAgICAgIGRhdGFf dG9fYmVfc2F2ZWRbJ3RleHQnXSA9ICdqdXN0IHRlc3QnCisgICAgICAgIHdpdGggRmFrZUFwcCgp LmFwcF9jb250ZXh0KCk6CisgICAgICAgICAgICByZXN1bHQgPSByZW5kZXJfdGVtcGxhdGUoJ3Nx bGVkaXRvci9zcWwvZGVmYXVsdC9zZWxlY3Quc3FsJywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvYmplY3RfbmFtZT0ndGVzdF90YWJsZScsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbnNwX25hbWU9J3Rlc3Rfc2NoZW1hJywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2tleXM9T3JkZXJlZERpY3QoCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoJ2lkJywgJ2ludDQnKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgndGV4dCcsICd0ZXh0Jyld KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNfb2lkcz1GYWxzZSkK KyAgICAgICAgICAgIHJlLnN1YignICsnLCAnICcsIHN0cihyZXN1bHQpLnJlcGxhY2UoIlxuIiwg IiAiKSkgfCBzaG91bGQuYmUgXAorICAgICAgICAgICAgICAgIC5lcXVhbCgKKyAgICAgICAgICAg ICAgICAiIiIgU0VMRUNUICogRlJPTSB0ZXN0X3NjaGVtYS50ZXN0X3RhYmxlICIiIiArCisgICAg ICAgICAgICAgICAgIiIiV0hFUkUgaWQgPSAlKGlkKXMgQU5EIHRleHQgPSAlKHRleHQpcyA7IiIi CisgICAgICAgICAgICApCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICBkZWYgdGVzdF9z ZWxlY3Rfd2l0aF9vbmVfcGtfYW5kX29pZChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdo ZW4gU2VsZWN0aW5nIHRhYmxlIGRhdGEgd2l0aCBvbmUgUHJpbWFyeSBLZXkgYW5kIE9JRAorICAg ICAgICBJdCByZXR1cm5zIHRoZSBjb3JyZWN0IFNRTAorICAgICAgICAiIiIKKyAgICAgICAgZGF0 YV90b19iZV9zYXZlZCA9IE9yZGVyZWREaWN0KCkKKyAgICAgICAgZGF0YV90b19iZV9zYXZlZFsn aWQnXSA9ICcxJworICAgICAgICBkYXRhX3RvX2JlX3NhdmVkWyd0ZXh0J10gPSAnanVzdCB0ZXN0 JwogICAgICAgICB3aXRoIEZha2VBcHAoKS5hcHBfY29udGV4dCgpOgotICAgICAgICAgICAgcmVz dWx0ID0gcmVuZGVyX3RlbXBsYXRlKHNlbGYuaW5zZXJ0X3RlbXBsYXRlX3BhdGgsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKipzZWxmLmluc2VydF9wYXJhbWV0ZXJzKQot ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICByZS5zdWIoJyAr JywgJyAnLCBzdHIocmVzdWx0KS5yZXBsYWNlKCJcbiIsICIiKSksCi0gICAgICAgICAgICAgICAg cmUuc3ViKCcgKycsICcgJywKLSAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5pbnNlcnRfZXhw ZWN0ZWRfcmV0dXJuX3ZhbHVlLnJlcGxhY2UoIlxuIiwgIiIpKSkKLQotICAgICAgICAgICAgcmVz dWx0ID0gcmVuZGVyX3RlbXBsYXRlKHNlbGYuc2VsZWN0X3RlbXBsYXRlX3BhdGgsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKipzZWxmLnNlbGVjdF9wYXJhbWV0ZXJzKQot ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICByZS5zdWIoJyAr JywgJyAnLCBzdHIocmVzdWx0KS5yZXBsYWNlKCJcbiIsICIiKSksCi0gICAgICAgICAgICAgICAg cmUuc3ViKCcgKycsICcgJywKLSAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZWxlY3RfZXhw ZWN0ZWRfcmV0dXJuX3ZhbHVlLnJlcGxhY2UoIlxuIiwgIiIpKSkKKyAgICAgICAgICAgIHJlc3Vs dCA9IHJlbmRlcl90ZW1wbGF0ZSgnc3FsZWRpdG9yL3NxbC9kZWZhdWx0L3NlbGVjdC5zcWwnLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdF9uYW1lPSd0ZXN0X3Rh YmxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuc3BfbmFtZT0ndGVz dF9zY2hlbWEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlf a2V5cz1PcmRlcmVkRGljdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgWygnaWQnLCAnaW50NCcpXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaGFzX29pZHM9VHJ1ZSkKKyAgICAgICAgICAgIHJlLnN1YignICsnLCAnICcsIHN0cihyZXN1 bHQpLnJlcGxhY2UoIlxuIiwgIiAiKSkgfCBzaG91bGQuYmUgXAorICAgICAgICAgICAgICAgIC5l cXVhbCgKKyAgICAgICAgICAgICAgICAiIiIgU0VMRUNUIG9pZCwgKiBGUk9NIHRlc3Rfc2NoZW1h LnRlc3RfdGFibGUgIiIiICsKKyAgICAgICAgICAgICAgICAiIiJXSEVSRSBvaWQgPSAlKG9pZClz IDsiIiIKKyAgICAgICAgICAgICkKKworICAgIGRlZiB0ZXN0X3NlbGVjdF93aXRoX29ubHlfb2lk KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBTZWxlY3RpbmcgdGFibGUgZGF0YSB3 aXRoIE9JRAorICAgICAgICBJdCByZXR1cm5zIHRoZSBjb3JyZWN0IFNRTAorICAgICAgICAiIiIK KyAgICAgICAgZGF0YV90b19iZV9zYXZlZCA9IE9yZGVyZWREaWN0KCkKKyAgICAgICAgZGF0YV90 b19iZV9zYXZlZFsnaWQnXSA9ICcxJworICAgICAgICBkYXRhX3RvX2JlX3NhdmVkWyd0ZXh0J10g PSAnanVzdCB0ZXN0JworICAgICAgICB3aXRoIEZha2VBcHAoKS5hcHBfY29udGV4dCgpOgorICAg ICAgICAgICAgcmVzdWx0ID0gcmVuZGVyX3RlbXBsYXRlKCdzcWxlZGl0b3Ivc3FsL2RlZmF1bHQv c2VsZWN0LnNxbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0 X25hbWU9J3Rlc3RfdGFibGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG5zcF9uYW1lPSd0ZXN0X3NjaGVtYScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcHJpbWFyeV9rZXlzPU9yZGVyZWREaWN0KAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBbKCdpZCcsICdpbnQ0JyldKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBoYXNfb2lkcz1UcnVlKQorICAgICAgICAgICAgcmUuc3ViKCcgKycs ICcgJywgc3RyKHJlc3VsdCkucmVwbGFjZSgiXG4iLCAiICIpKSB8IHNob3VsZC5iZSBcCisgICAg ICAgICAgICAgICAgLmVxdWFsKAorICAgICAgICAgICAgICAgICIiIiBTRUxFQ1Qgb2lkLCAqIEZS T00gdGVzdF9zY2hlbWEudGVzdF90YWJsZSBXSEVSRSAiIiIgKworICAgICAgICAgICAgICAgICIi Im9pZCA9ICUob2lkKXMgOyIiIgorICAgICAgICAgICAgKQogCiAKIGNsYXNzIEZha2VBcHAoRmxh c2spOgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3V0aWxzL3Rlc3Rz L3Rlc3RfYXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBwZXIucHkgYi93ZWIvcGdhZG1pbi90b29scy9z cWxlZGl0b3IvdXRpbHMvdGVzdHMvdGVzdF9hcHBseV9leHBsYWluX3BsYW5fd3JhcHBlci5weQpp bmRleCA2YTk2MjIwZi4uMTdjNTIwOTQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3Nx bGVkaXRvci91dGlscy90ZXN0cy90ZXN0X2FwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyLnB5Cisr KyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy90ZXN0cy90ZXN0X2FwcGx5X2V4 cGxhaW5fcGxhbl93cmFwcGVyLnB5CkBAIC03LDExICs3LDExIEBACiAjCiAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwogCi0iIiJBcHBseSBFeHBsYWluIHBsYW4gd3JhcHBlciB0byBzcWwgb2JqZWN0LiIiIgog aW1wb3J0IHN5cwogCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi50 b29scy5zcWxlZGl0b3IudXRpbHMgaW1wb3J0IGFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lm X25lZWRlZAotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRv cgogCiBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDMpOgogICAgIGZyb20gbW9jayBpbXBvcnQg cGF0Y2gsIE1hZ2ljTW9jawpAQCAtMTksMTE3ICsxOSwxMTYgQEAgZWxzZToKICAgICBmcm9tIHVu aXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoLCBNYWdpY01vY2sKIAogCi1jbGFzcyBTdGFydFJ1bm5p bmdRdWVyeVRlc3QoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIgotICAgIENoZWNrIHRoYXQg dGhlIFN0YXJ0UnVubmluZ1F1ZXJ5VGVzdCBtZXRob2Qgd29ya3MgYXMKLSAgICBpbnRlbmRlZAot ICAgICIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdXaGVuIGV4cGxhaW5fcGxhbiBp cyBub25lLCBpdCBzaG91bGQgcmV0dXJuIHVuYWx0ZXJlZCBTUUwnLCBkaWN0KAotICAgICAgICAg ICAgZnVuY3Rpb25faW5wdXRfcGFyYW1ldGVycz17Ci0gICAgICAgICAgICAgICAgJ21hbmFnZXIn OiBNYWdpY01vY2soKSwKLSAgICAgICAgICAgICAgICAnc3FsJzogewotICAgICAgICAgICAgICAg ICAgICAnc3FsJzogJ3NvbWUgc3FsJywKLSAgICAgICAgICAgICAgICAgICAgJ2V4cGxhaW5fcGxh bic6IE5vbmUKK2NsYXNzIFRlc3RTdGFydFJ1bm5pbmdRdWVyeToKKyAgICBAcGF0Y2goJ3BnYWRt aW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLmFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyJworICAg ICAgICAgICAnLnJlbmRlcl90ZW1wbGF0ZScpCisgICAgZGVmIHRlc3RTdGFydFJ1bm5pbmdRdWVy eU5vRXhwbGFpblBsYW4xKHNlbGYsIHJlbmRlcl90ZW1wbGF0ZV9tb2NrKToKKyAgICAgICAgIiIi CisgICAgICAgIFdoZW4gdGhlIFN0YXJ0UnVubmluZ1F1ZXJ5VGVzdCBtZXRob2QgaXMgaW52b2tl ZAorICAgICAgICBBbmQgdGhlIGV4cGxhaW4gcGxhbiBpcyBub3QgcHJlc2VudAorICAgICAgICBJ dCByZXR1cm5zIHVuYWx0ZXJlZCBTUUwKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9IGFw cGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZCgKKyAgICAgICAgICAgIE1hZ2ljTW9j aygpLCB7CisgICAgICAgICAgICAgICAgJ3NxbCc6ICdzb21lIHNxbCcsCisgICAgICAgICAgICAg ICAgJ2V4cGxhaW5fcGxhbic6IE5vbmUKKyAgICAgICAgICAgIH0KKyAgICAgICAgKQorCisgICAg ICAgIHJlc3VsdCB8IHNob3VsZC5iZS5lcXVhbC50bygnc29tZSBzcWwnKQorICAgICAgICByZW5k ZXJfdGVtcGxhdGVfbW9jay5hc3NlcnRfbm90X2NhbGxlZCgpCisKKyAgICBAcGF0Y2goJ3BnYWRt aW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLmFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyJworICAg ICAgICAgICAnLnJlbmRlcl90ZW1wbGF0ZScpCisgICAgZGVmIHRlc3RTdGFydFJ1bm5pbmdRdWVy eU5vRXhwbGFpblBsYW4yKHNlbGYsIHJlbmRlcl90ZW1wbGF0ZV9tb2NrKToKKyAgICAgICAgIiIi CisgICAgICAgIFdoZW4gdGhlIFN0YXJ0UnVubmluZ1F1ZXJ5VGVzdCBtZXRob2QgaXMgaW52b2tl ZAorICAgICAgICBBbmQgdGhlIGV4cGxhaW4gcGxhbiBpcyBub3QgcHJlc2VudAorICAgICAgICBJ dCByZXR1cm5zIHVuYWx0ZXJlZCBTUUwKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9IGFw cGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZCgKKyAgICAgICAgICAgIE1hZ2ljTW9j aygpLCB7CisgICAgICAgICAgICAgICAgJ3NxbCc6ICdzb21lIHNxbCcsCisgICAgICAgICAgICB9 CisgICAgICAgICkKKworICAgICAgICByZXN1bHQgfCBzaG91bGQuYmUuZXF1YWwudG8oJ3NvbWUg c3FsJykKKyAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2suYXNzZXJ0X25vdF9jYWxsZWQoKQor CisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5hcHBseV9leHBsYWlu X3BsYW5fd3JhcHBlcicKKyAgICAgICAgICAgJy5yZW5kZXJfdGVtcGxhdGUnKQorICAgIGRlZiB0 ZXN0U3RhcnRSdW5uaW5nUXVlcnlQZ0V4cGxhaW5QbGFuKHNlbGYsIHJlbmRlcl90ZW1wbGF0ZV9t b2NrKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIFN0YXJ0UnVubmluZ1F1ZXJ5VGVz dCBtZXRob2QgaXMgaW52b2tlZAorICAgICAgICBBbmQgdGhlIGV4cGxhaW4gcGxhbiBpcyBwcmVz ZW50IGZvciBwb3N0Z3JlcworICAgICAgICBJdCByZXR1cm5zIFNRTCB3aXRoIHRoZSBleHBsYWlu IHBsYW4KKyAgICAgICAgIiIiCisKKyAgICAgICAgZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlID0gJ0VY UExBSU4gKEZPUk1BVCBKU09OLCBBTkFMWVpFIEZBTFNFLCAnIFwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ1ZFUkJPU0UgVFJVRSwgQ09TVFMgRkFMU0UsIEJVRkZFUlMgRkFMU0Us ICcgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVElNSU5HIFRSVUUpIHNvbWUg c3FsJworCisgICAgICAgIHJlbmRlcl90ZW1wbGF0ZV9tb2NrLnJldHVybl92YWx1ZSA9IGV4cGVj dGVkX3JldHVybl92YWx1ZQorCisgICAgICAgIHJlc3VsdCA9IGFwcGx5X2V4cGxhaW5fcGxhbl93 cmFwcGVyX2lmX25lZWRlZCgKKyAgICAgICAgICAgIE1hZ2ljTW9jayh2ZXJzaW9uPTEwLCBzZXJ2 ZXJfdHlwZT0ncGcnKSwgeworICAgICAgICAgICAgICAgICdzcWwnOiAnc29tZSBzcWwnLAorICAg ICAgICAgICAgICAgICdleHBsYWluX3BsYW4nOiB7CisgICAgICAgICAgICAgICAgICAgICdmb3Jt YXQnOiAnanNvbicsCisgICAgICAgICAgICAgICAgICAgICdhbmFseXplJzogRmFsc2UsCisgICAg ICAgICAgICAgICAgICAgICd2ZXJib3NlJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgJ2J1 ZmZlcnMnOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgJ3RpbWluZyc6IFRydWUKICAgICAg ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9LAotCi0gICAgICAgICAgICBleHBlY3RfcmVuZGVy X3RlbXBsYXRlX21vY2tfcGFyYW1ldGVycz1Ob25lLAotCi0gICAgICAgICAgICBleHBlY3RlZF9y ZXR1cm5fdmFsdWU9J3NvbWUgc3FsJwotICAgICAgICApKSwKLSAgICAgICAgKCdXaGVuIGV4cGxh aW5fcGxhbiBpcyBub3QgcHJlc2VudCwgaXQgc2hvdWxkIHJldHVybiB1bmFsdGVyZWQgU1FMJywK LSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgZnVuY3Rpb25faW5wdXRfcGFyYW1ldGVycz17 Ci0gICAgICAgICAgICAgICAgICdtYW5hZ2VyJzogTWFnaWNNb2NrKCksCi0gICAgICAgICAgICAg ICAgICdzcWwnOiB7Ci0gICAgICAgICAgICAgICAgICAgICAnc3FsJzogJ3NvbWUgc3FsJwotICAg ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgfSwKLQotICAgICAgICAgICAgIGV4cGVjdF9y ZW5kZXJfdGVtcGxhdGVfbW9ja19wYXJhbWV0ZXJzPU5vbmUsCi0KLSAgICAgICAgICAgICBleHBl Y3RlZF9yZXR1cm5fdmFsdWU9J3NvbWUgc3FsJwotICAgICAgICAgKSksCi0gICAgICAgICgnV2hl biBleHBsYWluX3BsYW4gaXMgcHJlc2VudCBmb3IgYSBQb3N0Z3JlcyBzZXJ2ZXIgdmVyc2lvbiAx MCwgJwotICAgICAgICAgJ2l0IHNob3VsZCByZXR1cm4gU1FMIHdpdGggZXhwbGFpbiBwbGFuJywK LSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgZnVuY3Rpb25faW5wdXRfcGFyYW1ldGVycz17 Ci0gICAgICAgICAgICAgICAgICdtYW5hZ2VyJzogTWFnaWNNb2NrKHZlcnNpb249MTAsIHNlcnZl cl90eXBlPSdwZycpLAotICAgICAgICAgICAgICAgICAnc3FsJzogewotICAgICAgICAgICAgICAg ICAgICAgJ3NxbCc6ICdzb21lIHNxbCcsCi0gICAgICAgICAgICAgICAgICAgICAnZXhwbGFpbl9w bGFuJzogewotICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXQnOiAnanNvbicsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgJ2FuYWx5emUnOiBGYWxzZSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAndmVyYm9zZSc6IFRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ2J1ZmZl cnMnOiBGYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAndGltaW5nJzogVHJ1ZQotICAg ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgfSwK LQotICAgICAgICAgICAgIGV4cGVjdF9yZW5kZXJfdGVtcGxhdGVfbW9ja19wYXJhbWV0ZXJzPWRp Y3QoCi0gICAgICAgICAgICAgICAgIHRlbXBsYXRlX25hbWVfb3JfbGlzdD0nc3FsZWRpdG9yL3Nx bC8jMTAjL2V4cGxhaW5fcGxhbi5zcWwnLAotICAgICAgICAgICAgICAgICBuYW1lZF9wYXJhbWV0 ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgICAgICBmb3JtYXQ9J2pzb24nLAotICAgICAgICAg ICAgICAgICAgICAgYW5hbHl6ZT1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgIHZlcmJvc2U9 VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcnM9RmFsc2UsCi0gICAgICAgICAgICAg ICAgICAgICB0aW1pbmc9VHJ1ZQotICAgICAgICAgICAgICAgICApKSwKLQotICAgICAgICAgICAg IGV4cGVjdGVkX3JldHVybl92YWx1ZT0nRVhQTEFJTiAoRk9STUFUIEpTT04sIEFOQUxZWkUgRkFM U0UsICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1ZFUkJPU0UgVFJVRSwg Q09TVFMgRkFMU0UsIEJVRkZFUlMgRkFMU0UsICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ1RJTUlORyBUUlVFKSBzb21lIHNxbCcKLSAgICAgICAgICkpLAotICAgICAgICAo J1doZW4gZXhwbGFpbl9wbGFuIGlzIHByZXNlbnQgZm9yIGEgR3JlZW5QbHVtIHNlcnZlciB2ZXJz aW9uIDUsICcKLSAgICAgICAgICdpdCBzaG91bGQgcmV0dXJuIFNRTCB3aXRoIGV4cGxhaW4gcGxh bicsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0X3BhcmFtZXRl cnM9ewotICAgICAgICAgICAgICAgICAnbWFuYWdlcic6IE1hZ2ljTW9jayh2ZXJzaW9uPTgwMzIz LCBzZXJ2ZXJfdHlwZT0nZ3BkYicpLAotICAgICAgICAgICAgICAgICAnc3FsJzogewotICAgICAg ICAgICAgICAgICAgICAgJ3NxbCc6ICdzb21lIHNxbCcsCi0gICAgICAgICAgICAgICAgICAgICAn ZXhwbGFpbl9wbGFuJzogewotICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXQnOiAnanNv bicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ2FuYWx5emUnOiBGYWxzZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAndmVyYm9zZSc6IFRydWUsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgJ2J1ZmZlcnMnOiBGYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAndGltaW5nJzog VHJ1ZQotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICB9Ci0gICAgICAg ICAgICAgfSwKLQotICAgICAgICAgICAgIGV4cGVjdF9yZW5kZXJfdGVtcGxhdGVfbW9ja19wYXJh bWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgIHRlbXBsYXRlX25hbWVfb3JfbGlzdD0nc3Fs ZWRpdG9yL3NxbC8jZ3BkYiM4MDMyMyMvJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ2V4cGxhaW5fcGxhbi5zcWwnLAotICAgICAgICAgICAgICAgICBuYW1lZF9wYXJh bWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgICAgICBmb3JtYXQ9J2pzb24nLAotICAgICAg ICAgICAgICAgICAgICAgYW5hbHl6ZT1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgIHZlcmJv c2U9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcnM9RmFsc2UsCi0gICAgICAgICAg ICAgICAgICAgICB0aW1pbmc9VHJ1ZQotICAgICAgICAgICAgICAgICApKSwKLQotICAgICAgICAg ICAgIGV4cGVjdGVkX3JldHVybl92YWx1ZT0nRVhQTEFJTiBzb21lIHNxbCcKLSAgICAgICAgICkp Ci0gICAgXQotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgIHdpdGggcGF0Y2goCi0g ICAgICAgICAgICAncGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuYXBwbHlfZXhwbGFpbl9w bGFuX3dyYXBwZXInCi0gICAgICAgICAgICAnLnJlbmRlcl90ZW1wbGF0ZScKLSAgICAgICAgKSBh cyByZW5kZXJfdGVtcGxhdGVfbW9jazoKLSAgICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZV9tb2Nr LnJldHVybl92YWx1ZSA9IHNlbGYuZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlCi0gICAgICAgICAgICBy ZXN1bHQgPSBhcHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9pZl9uZWVkZWQoCi0gICAgICAgICAg ICAgICAgKipzZWxmLmZ1bmN0aW9uX2lucHV0X3BhcmFtZXRlcnMpCi0gICAgICAgICAgICBzZWxm LmFzc2VydEVxdWFscyhyZXN1bHQsIHNlbGYuZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlKQotICAgICAg ICAgICAgaWYgc2VsZi5leHBlY3RfcmVuZGVyX3RlbXBsYXRlX21vY2tfcGFyYW1ldGVyczoKLSAg ICAgICAgICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCi0g ICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0X3JlbmRlcl90ZW1wbGF0ZV9tb2NrX3BhcmFt ZXRlcnNbCi0gICAgICAgICAgICAgICAgICAgICAgICAndGVtcGxhdGVfbmFtZV9vcl9saXN0J10s Ci0gICAgICAgICAgICAgICAgICAgIHNxbD1zZWxmLmZ1bmN0aW9uX2lucHV0X3BhcmFtZXRlcnNb J3NxbCddWydzcWwnXSwKLSAgICAgICAgICAgICAgICAgICAgKipzZWxmLmV4cGVjdF9yZW5kZXJf dGVtcGxhdGVfbW9ja19wYXJhbWV0ZXJzWwotICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWVk X3BhcmFtZXRlcnMnXQotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAg ICAgICAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2suYXNzZXJ0X25vdF9jYWxsZWQoKQorICAg ICAgICAgICAgfQorICAgICAgICApCisKKyAgICAgICAgcmVzdWx0IHwgc2hvdWxkLmJlLmVxdWFs LnRvKGV4cGVjdGVkX3JldHVybl92YWx1ZSkKKyAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2su YXNzZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgJ3NxbGVkaXRvci9zcWwvIzEwIy9leHBs YWluX3BsYW4uc3FsJywKKyAgICAgICAgICAgIGZvcm1hdD0nanNvbicsCisgICAgICAgICAgICBh bmFseXplPUZhbHNlLAorICAgICAgICAgICAgdmVyYm9zZT1UcnVlLAorICAgICAgICAgICAgYnVm ZmVycz1GYWxzZSwKKyAgICAgICAgICAgIHRpbWluZz1UcnVlLAorICAgICAgICAgICAgc3FsPSdz b21lIHNxbCcKKyAgICAgICAgKQorCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRv ci51dGlscy5hcHBseV9leHBsYWluX3BsYW5fd3JhcHBlcicKKyAgICAgICAgICAgJy5yZW5kZXJf dGVtcGxhdGUnKQorICAgIGRlZiB0ZXN0U3RhcnRSdW5uaW5nUXVlcnlHcGRiRXhwbGFpblBsYW4o c2VsZiwgcmVuZGVyX3RlbXBsYXRlX21vY2spOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0 aGUgU3RhcnRSdW5uaW5nUXVlcnlUZXN0IG1ldGhvZCBpcyBpbnZva2VkCisgICAgICAgIEFuZCB0 aGUgZXhwbGFpbiBwbGFuIGlzIHByZXNlbnQgZm9yIEdQREIKKyAgICAgICAgSXQgcmV0dXJucyBT UUwgd2l0aCB0aGUgZXhwbGFpbiBwbGFuCisgICAgICAgICIiIgorCisgICAgICAgIGV4cGVjdGVk X3JldHVybl92YWx1ZSA9ICdFWFBMQUlOIChGT1JNQVQgSlNPTiwgQU5BTFlaRSBGQUxTRSwgJyBc CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdWRVJCT1NFIFRSVUUsIENPU1RTIEZB TFNFLCBCVUZGRVJTIEZBTFNFLCAnIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J1RJTUlORyBUUlVFKSBzb21lIHNxbCcKKworICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jay5y ZXR1cm5fdmFsdWUgPSBleHBlY3RlZF9yZXR1cm5fdmFsdWUKKworICAgICAgICByZXN1bHQgPSBh cHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9pZl9uZWVkZWQoCisgICAgICAgICAgICBNYWdpY01v Y2sodmVyc2lvbj04MDMyMywgc2VydmVyX3R5cGU9J2dwZGInKSwgeworICAgICAgICAgICAgICAg ICdzcWwnOiAnc29tZSBzcWwnLAorICAgICAgICAgICAgICAgICdleHBsYWluX3BsYW4nOiB7Cisg ICAgICAgICAgICAgICAgICAgICdmb3JtYXQnOiAnanNvbicsCisgICAgICAgICAgICAgICAgICAg ICdhbmFseXplJzogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlJzogVHJ1ZSwK KyAgICAgICAgICAgICAgICAgICAgJ2J1ZmZlcnMnOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAg ICAgJ3RpbWluZyc6IFRydWUKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAg ICAgICkKKworICAgICAgICByZXN1bHQgfCBzaG91bGQuYmUuZXF1YWwudG8oZXhwZWN0ZWRfcmV0 dXJuX3ZhbHVlKQorICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jay5hc3NlcnRfY2FsbGVkX3dp dGgoCisgICAgICAgICAgICAnc3FsZWRpdG9yL3NxbC8jZ3BkYiM4MDMyMyMvZXhwbGFpbl9wbGFu LnNxbCcsCisgICAgICAgICAgICBmb3JtYXQ9J2pzb24nLAorICAgICAgICAgICAgYW5hbHl6ZT1G YWxzZSwKKyAgICAgICAgICAgIHZlcmJvc2U9VHJ1ZSwKKyAgICAgICAgICAgIGJ1ZmZlcnM9RmFs c2UsCisgICAgICAgICAgICB0aW1pbmc9VHJ1ZSwKKyAgICAgICAgICAgIHNxbD0nc29tZSBzcWwn CisgICAgICAgICkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGls cy90ZXN0cy90ZXN0X2ZpbHRlcl9kaWFsb2dfY2FsbGJhY2tzLnB5IGIvd2ViL3BnYWRtaW4vdG9v bHMvc3FsZWRpdG9yL3V0aWxzL3Rlc3RzL3Rlc3RfZmlsdGVyX2RpYWxvZ19jYWxsYmFja3MucHkK aW5kZXggOTc0Nzk3ODIuLjU4NGZhMjI0IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9z cWxlZGl0b3IvdXRpbHMvdGVzdHMvdGVzdF9maWx0ZXJfZGlhbG9nX2NhbGxiYWNrcy5weQorKysg Yi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdXRpbHMvdGVzdHMvdGVzdF9maWx0ZXJfZGlh bG9nX2NhbGxiYWNrcy5weQpAQCAtNiwxMSArNiw5IEBACiAjIFRoaXMgc29mdHdhcmUgaXMgcmVs ZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK K2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKIAotIiIiQXBwbHkgRXhwbGFpbiBwbGFuIHdyYXBw ZXIgdG8gc3FsIG9iamVjdC4iIiIKLWZyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBtYWtl X2pzb25fcmVzcG9uc2UsIGludGVybmFsX3NlcnZlcl9lcnJvcgogZnJvbSBwZ2FkbWluLnRvb2xz LnNxbGVkaXRvci51dGlscy5maWx0ZXJfZGlhbG9nIGltcG9ydCBGaWx0ZXJEaWFsb2cKLWZyb20g cGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKIAogVFhfSURfRVJS T1JfTVNHID0gJ1RyYW5zYWN0aW9uIElEIG5vdCBmb3VuZCBpbiB0aGUgc2Vzc2lvbi4nCiBGQUlM RURfVFhfTVNHID0gJ0ZhaWxlZCB0byB1cGRhdGUgdGhlIGRhdGEgb24gc2VydmVyLicKQEAgLTIz LDgxICsyMSw1OSBAQCBjbGFzcyBNb2NrUmVxdWVzdChvYmplY3QpOgogICAgICAgICBzZWxmLmFy Z3MgPSAiVGVzdCBkYXRhIiwKIAogCi1jbGFzcyBTdGFydFJ1bm5pbmdEYXRhU29ydGluZ1Rlc3Qo QmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIgotICAgIENoZWNrIHRoYXQgdGhlIERhdGFTb3J0 aW5nIG1ldGhvZHMgd29ya3MgYXMKLSAgICBpbnRlbmRlZAotICAgICIiIgotICAgIHNjZW5hcmlv cyA9IFsKLSAgICAgICAgKCdXaGVuIHdlIGRvIG5vdCBmaW5kIFRyYW5zYWN0aW9uIElEIGluIHNl c3Npb24gaW4gZ2V0JywgZGljdCgKLSAgICAgICAgICAgIGlucHV0X3BhcmFtZXRlcnM9KE5vbmUs IFRYX0lEX0VSUk9SX01TRywgTm9uZSwgTm9uZSwgTm9uZSksCi0gICAgICAgICAgICBleHBlY3Rl ZF9yZXR1cm5fcmVzcG9uc2U9ewotICAgICAgICAgICAgICAgICdzdWNjZXNzJzogMCwKLSAgICAg ICAgICAgICAgICAnZXJyb3Jtc2cnOiBUWF9JRF9FUlJPUl9NU0csCi0gICAgICAgICAgICAgICAg J2luZm8nOiAnREFUQUdSSURfVFJBTlNBQ1RJT05fUkVRVUlSRUQnLAotICAgICAgICAgICAgICAg ICdzdGF0dXMnOiA0MDQKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB0eXBlPSdnZXQnCi0g ICAgICAgICkpLAotICAgICAgICAoJ1doZW4gd2UgcGFzcyBhbGwgdGhlIHZhbHVlcyBhcyBOb25l IGluIGdldCcsIGRpY3QoCi0gICAgICAgICAgICBpbnB1dF9wYXJhbWV0ZXJzPShOb25lLCBOb25l LCBOb25lLCBOb25lLCBOb25lKSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3JldHVybl9yZXNwb25z ZT17Ci0gICAgICAgICAgICAgICAgJ2RhdGEnOiB7Ci0gICAgICAgICAgICAgICAgICAgICdzdGF0 dXMnOiBGYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgJ21zZyc6IE5vbmUsCi0gICAgICAgICAg ICAgICAgICAgICdyZXN1bHQnOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAnZGF0YV9zb3J0 aW5nJzogTm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICdjb2x1bW5fbGlzdCc6IFtdCi0g ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9LAot ICAgICAgICAgICAgdHlwZT0nZ2V0JwotICAgICAgICApKSwKK2NsYXNzIFRlc3RTdGFydFJ1bm5p bmdEYXRhU29ydGluZzoKKyAgICBkZWYgdGVzdF9maWx0ZXJfZGlhbG9nX2dldF9ub19pZChzZWxm KToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIEZpbHRlckRpYWxvZy5nZXQgbWV0aG9k IGlzIGNhbGxlZAorICAgICAgICBBbmQgdGhlcmUgaXMgbm8gVHJhbnNhY3Rpb24gSUQgZm91bmQg aW4gc2Vzc2lvbgorICAgICAgICBJdCByZXR1bnMgYSA0MDQKKyAgICAgICAgIiIiCisgICAgICAg IHJlc3VsdCA9IEZpbHRlckRpYWxvZy5nZXQoTm9uZSwgVFhfSURfRVJST1JfTVNHLCBOb25lLCBO b25lLCBOb25lKQorICAgICAgICByZXN1bHQuc3RhdHVzX2NvZGUgfCBcCisgICAgICAgICAgICBz aG91bGQuZXF1YWwoNDA0KQogCi0gICAgICAgICgnV2hlbiB3ZSBkbyBub3QgZmluZCBUcmFuc2Fj dGlvbiBJRCBpbiBzZXNzaW9uIGluIHNhdmUnLCBkaWN0KAotICAgICAgICAgICAgaW5wdXRfYXJn X3BhcmFtZXRlcnM9KE5vbmUsIFRYX0lEX0VSUk9SX01TRywgTm9uZSwgTm9uZSwgTm9uZSksCi0g ICAgICAgICAgICBpbnB1dF9rd2FyZ19wYXJhbWV0ZXJzPXsKLSAgICAgICAgICAgICAgICAndHJh bnNfaWQnOiBOb25lLAotICAgICAgICAgICAgICAgICdyZXF1ZXN0JzogTW9ja1JlcXVlc3QoKQot ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3JldHVybl9yZXNwb25zZT17Ci0g ICAgICAgICAgICAgICAgJ3N1Y2Nlc3MnOiAwLAotICAgICAgICAgICAgICAgICdlcnJvcm1zZyc6 IFRYX0lEX0VSUk9SX01TRywKLSAgICAgICAgICAgICAgICAnaW5mbyc6ICdEQVRBR1JJRF9UUkFO U0FDVElPTl9SRVFVSVJFRCcsCi0gICAgICAgICAgICAgICAgJ3N0YXR1cyc6IDQwNAotICAgICAg ICAgICAgfSwKLSAgICAgICAgICAgIHR5cGU9J3NhdmUnCi0gICAgICAgICkpLAorICAgIGRlZiB0 ZXN0X2ZpbHRlcl9kaWFsb2dfZ2V0X25vX3ZhbHVlcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAg ICAgIFdoZW4gdGhlIEZpbHRlckRpYWxvZy5nZXQgbWV0aG9kIGlzIGNhbGxlZAorICAgICAgICBB bmQgYWxsIHRoZSB2YWx1ZXMgYXJlIHBhc3NlZCBhcyBOb25lCisgICAgICAgIEl0IHJldHVucyBh IDQwNAorICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0ID0gRmlsdGVyRGlhbG9nLmdldChOb25l LCBOb25lLCBOb25lLCBOb25lLCBOb25lKQorICAgICAgICByZXN1bHQuc3RhdHVzX2NvZGUgfCBc CisgICAgICAgICAgICBzaG91bGQuZXF1YWwoMjAwKQogCi0gICAgICAgICgnV2hlbiB3ZSBwYXNz IGFsbCB0aGUgdmFsdWVzIGFzIE5vbmUgaW4gc2F2ZScsIGRpY3QoCi0gICAgICAgICAgICBpbnB1 dF9hcmdfcGFyYW1ldGVycz0oTm9uZSwgTm9uZSwgTm9uZSwgTm9uZSwgTm9uZSksCi0gICAgICAg ICAgICBpbnB1dF9rd2FyZ19wYXJhbWV0ZXJzPXsKLSAgICAgICAgICAgICAgICAndHJhbnNfaWQn OiBOb25lLAotICAgICAgICAgICAgICAgICdyZXF1ZXN0JzogTW9ja1JlcXVlc3QoKQotICAgICAg ICAgICAgfSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3JldHVybl9yZXNwb25zZT17Ci0gICAgICAg ICAgICAgICAgJ3N0YXR1cyc6IDUwMCwKLSAgICAgICAgICAgICAgICAnc3VjY2Vzcyc6IDAsCi0g ICAgICAgICAgICAgICAgJ2Vycm9ybXNnJzogRkFJTEVEX1RYX01TRworICAgIGRlZiB0ZXN0X2Zp bHRlcl9kaWFsb2dfc2F2ZV9ub19pZChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4g dGhlIEZpbHRlckRpYWxvZy5zYXZlIG1ldGhvZCBpcyBjYWxsZWQKKyAgICAgICAgQW5kIHRoZXJl IGlzIG5vIFRyYW5zYWN0aW9uIElEIGZvdW5kIGluIHNlc3Npb24KKyAgICAgICAgSXQgcmV0dW5z IGEgNDA0CisgICAgICAgICIiIgorICAgICAgICBpbnB1dF9hcmdfcGFyYW1ldGVycyA9IChOb25l LCBUWF9JRF9FUlJPUl9NU0csIE5vbmUsIE5vbmUsIE5vbmUpCisgICAgICAgIGlucHV0X2t3YXJn X3BhcmFtZXRlcnMgPSB7CisgICAgICAgICAgICAndHJhbnNfaWQnOiBOb25lLAorICAgICAgICAg ICAgJ3JlcXVlc3QnOiBNb2NrUmVxdWVzdCgpCisgICAgICAgIH0KIAotICAgICAgICAgICAgfSwK LSAgICAgICAgICAgIHR5cGU9J3NhdmUnCi0gICAgICAgICkpCi0gICAgXQorICAgICAgICByZXN1 bHQgPSBGaWx0ZXJEaWFsb2cuc2F2ZSgKKyAgICAgICAgICAgICppbnB1dF9hcmdfcGFyYW1ldGVy cywgKippbnB1dF9rd2FyZ19wYXJhbWV0ZXJzKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0g ICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlID0gbWFrZV9qc29uX3Jlc3BvbnNlKAotICAgICAgICAg ICAgKipzZWxmLmV4cGVjdGVkX3JldHVybl9yZXNwb25zZQotICAgICAgICApCi0gICAgICAgIGlm IHNlbGYudHlwZSA9PSAnZ2V0JzoKLSAgICAgICAgICAgIHJlc3VsdCA9IEZpbHRlckRpYWxvZy5n ZXQoKnNlbGYuaW5wdXRfcGFyYW1ldGVycykKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz KAotICAgICAgICAgICAgICAgIHJlc3VsdC5zdGF0dXNfY29kZSwgZXhwZWN0ZWRfcmVzcG9uc2Uu c3RhdHVzX2NvZGUKLSAgICAgICAgICAgICkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJl c3VsdCA9IEZpbHRlckRpYWxvZy5zYXZlKAotICAgICAgICAgICAgICAgICpzZWxmLmlucHV0X2Fy Z19wYXJhbWV0ZXJzLCAqKnNlbGYuaW5wdXRfa3dhcmdfcGFyYW1ldGVycwotICAgICAgICAgICAg KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoCi0gICAgICAgICAgICAgICAgcmVzdWx0 LnN0YXR1c19jb2RlLCBleHBlY3RlZF9yZXNwb25zZS5zdGF0dXNfY29kZQotICAgICAgICAgICAg KQorICAgICAgICByZXN1bHQuc3RhdHVzX2NvZGUgfCBcCisgICAgICAgICAgICBzaG91bGQuZXF1 YWwoNDA0KQorCisgICAgZGVmIHRlc3RfZmlsdGVyX2RpYWxvZ19zYXZlX25vX3ZhbHVlcyhzZWxm KToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIEZpbHRlckRpYWxvZy5zYXZlIG1ldGhv ZCBpcyBjYWxsZWQKKyAgICAgICAgQW5kIGFsbCB0aGUgdmFsdWVzIGFyZSBwYXNzZWQgYXMgTm9u ZQorICAgICAgICBJdCByZXR1bnMgYSA1MDAKKyAgICAgICAgIiIiCisgICAgICAgIGlucHV0X2Fy Z19wYXJhbWV0ZXJzID0gKE5vbmUsIE5vbmUsIE5vbmUsIE5vbmUsIE5vbmUpCisgICAgICAgIGlu cHV0X2t3YXJnX3BhcmFtZXRlcnMgPSB7CisgICAgICAgICAgICAndHJhbnNfaWQnOiBOb25lLAor ICAgICAgICAgICAgJ3JlcXVlc3QnOiBNb2NrUmVxdWVzdCgpCisgICAgICAgIH0KKworICAgICAg ICByZXN1bHQgPSBGaWx0ZXJEaWFsb2cuc2F2ZSgKKyAgICAgICAgICAgICppbnB1dF9hcmdfcGFy YW1ldGVycywgKippbnB1dF9rd2FyZ19wYXJhbWV0ZXJzKQorCisgICAgICAgIHJlc3VsdC5zdGF0 dXNfY29kZSB8IFwKKyAgICAgICAgICAgIHNob3VsZC5lcXVhbCg1MDApCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdXRpbHMvdGVzdHMvdGVzdF9xdWVyeV90b29sX2Zz X3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3V0aWxzL3Rlc3RzL3Rlc3Rf cXVlcnlfdG9vbF9mc191dGlscy5weQppbmRleCA3Y2FiMDY3OC4uMWE5MjBlYzYgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy90ZXN0cy90ZXN0X3F1ZXJ5X3Rv b2xfZnNfdXRpbHMucHkKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3V0aWxzL3Rl c3RzL3Rlc3RfcXVlcnlfdG9vbF9mc191dGlscy5weQpAQCAtNywzOSArNywzMSBAQAogIwogIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKIGltcG9ydCBvcwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSBwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5x dWVyeV90b29sX2ZzX3V0aWxzIGltcG9ydCBcCi0gICAgcmVhZF9maWxlX2dlbmVyYXRvcgogCitm cm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCiAKLWNsYXNzIFRlc3RSZWFkRmlsZUdlbmVyYXRvckZv ckVuY29kaW5nKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIKLSAgICBDaGVjayB0aGF0IHRo ZSBzdGFydF9ydW5uaW5nX3F1ZXJ5IG1ldGhvZCB3b3JrcyBhcyBpbnRlbmRlZAotICAgICIiIgor ZnJvbSBwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5xdWVyeV90b29sX2ZzX3V0aWxzIGlt cG9ydCBcCisgICAgcmVhZF9maWxlX2dlbmVyYXRvcgogCi0gICAgc2NlbmFyaW9zID0gWwotICAg ICAgICAoCi0gICAgICAgICAgICAnV2hlbiB1c2VyIGlzIHRyeWluZyB0byBsb2FkIHRoZSBmaWxl IHdpdGggdXRmLTggZW5jb2RpbmcnLAotICAgICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICAg ICBmaWxlPSd0ZXN0X2ZpbGVfdXRmOF9lbmNvZGluZy5zcWwnLAotICAgICAgICAgICAgICAgIGVu Y29kaW5nPSd1dGYtOCcKLSAgICAgICAgICAgICkKLSAgICAgICAgKSwKLSAgICAgICAgKAotICAg ICAgICAgICAgJ1doZW4gdXNlciBpcyB0cnlpbmcgdG8gbG9hZCB0aGUgZmlsZSB3aXRoIG90aGVy IGVuY29kaW5nIGFuZCcKLSAgICAgICAgICAgICcgdHJ5aW5nIHRvIHVzZSB1dGYtOCBlbmNvZGlu ZyB0byByZWFkIGl0JywKLSAgICAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgICAgZmlsZT0n dGVzdF9maWxlX290aGVyX2VuY29kaW5nLnNxbCcsCi0gICAgICAgICAgICAgICAgZW5jb2Rpbmc9 J3V0Zi04JwotICAgICAgICAgICAgKQotICAgICAgICApLAotICAgIF0KIAotICAgIGRlZiBzZXRV cChzZWxmKToKLSAgICAgICAgc2VsZi5kaXJfcGF0aCA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRo LnJlYWxwYXRoKF9fZmlsZV9fKSkKLSAgICAgICAgc2VsZi5jb21wbGF0ZV9wYXRoID0gb3MucGF0 aC5qb2luKHNlbGYuZGlyX3BhdGgsIHNlbGYuZmlsZSkKK2NsYXNzIFRlc3RSZWFkRmlsZUdlbmVy YXRvckZvckVuY29kaW5nOgorICAgIGRlZiB0ZXN0X2xvYWRfdXRmOF9lbmNvZGluZyhzZWxmKToK KyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gYSB1c2VyIGlzIHRyeWluZyB0byBsb2FkIHRoZSBm aWxlIHdpdGggdXRmLTggZW5jb2RpbmcKKyAgICAgICAgSXQgcmV0dXJucyAnU0VMRUNUIDEnCisg ICAgICAgICIiIgorICAgICAgICBkaXJfcGF0aCA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLnJl YWxwYXRoKF9fZmlsZV9fKSkKKyAgICAgICAgY29tcGxldGVfcGF0aCA9IG9zLnBhdGguam9pbihk aXJfcGF0aCwgJ3Rlc3RfZmlsZV91dGY4X2VuY29kaW5nLnNxbCcpCisgICAgICAgIHJlc3VsdCA9 IHJlYWRfZmlsZV9nZW5lcmF0b3IoY29tcGxldGVfcGF0aCwgJ3V0Zi04JykKKyAgICAgICAgbmV4 dChyZXN1bHQpIHwgc2hvdWxkLmJlLmNvbnRhaW4oJ1NFTEVDVCAxJykKIAotICAgIGRlZiBydW5U ZXN0KHNlbGYpOgotICAgICAgICByZXN1bHQgPSByZWFkX2ZpbGVfZ2VuZXJhdG9yKHNlbGYuY29t cGxhdGVfcGF0aCwgc2VsZi5lbmNvZGluZykKLSAgICAgICAgIyBDaGVjayBpZiBmaWxlIGlzIHJl YWQgcHJvcGVybHkgYnkgdGhlIGdlbmVyYXRvcgotICAgICAgICBzZWxmLmFzc2VydEluKCdTRUxF Q1QgMScsIG5leHQocmVzdWx0KSkKKyAgICBkZWYgdGVzdF9sb2FkX290aGVyX2VuY29kaW5nKHNl bGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB1c2VyIGlzIHRyeWluZyB0byBsb2FkIHRo ZSBmaWxlIHdpdGggb3RoZXIgZW5jb2RpbmcKKyAgICAgICAgQW5kIHRyeWluZyB0byB1c2UgdXRm LTggZW5jb2RpbmcgdG8gcmVhZCBpdAorICAgICAgICBJdCByZXR1cm5zICdTRUxFQ1QgMScKKyAg ICAgICAgIiIiCisgICAgICAgIGRpcl9wYXRoID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGgucmVh bHBhdGgoX19maWxlX18pKQorICAgICAgICBjb21wbGV0ZV9wYXRoID0gb3MucGF0aC5qb2luKGRp cl9wYXRoLCAndGVzdF9maWxlX290aGVyX2VuY29kaW5nLnNxbCcpCisgICAgICAgIHJlc3VsdCA9 IHJlYWRfZmlsZV9nZW5lcmF0b3IoY29tcGxldGVfcGF0aCwgJ3V0Zi04JykKKyAgICAgICAgbmV4 dChyZXN1bHQpIHwgc2hvdWxkLmJlLmNvbnRhaW4oJ1NFTEVDVCAxJykKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy90ZXN0cy90ZXN0X3N0YXJ0X3J1bm5pbmdf cXVlcnkucHkgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdXRpbHMvdGVzdHMvdGVzdF9z dGFydF9ydW5uaW5nX3F1ZXJ5LnB5CmluZGV4IDVlZGU1OWNhLi45M2M0NWFmZiAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3V0aWxzL3Rlc3RzL3Rlc3Rfc3RhcnRfcnVu bmluZ19xdWVyeS5weQorKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdXRpbHMvdGVz dHMvdGVzdF9zdGFydF9ydW5uaW5nX3F1ZXJ5LnB5CkBAIC04LDEyICs4LDEzIEBACiAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIwogaW1wb3J0IHN5cwogCi1mcm9tIGZsYXNrIGltcG9ydCBSZXNwb25zZQogaW1w b3J0IHNpbXBsZWpzb24gYXMganNvbgorZnJvbSBmbGFzayBpbXBvcnQgUmVzcG9uc2UKK2Zyb20g Z3JhcHBhIGltcG9ydCBzaG91bGQKIAogZnJvbSBwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGls cy5zdGFydF9ydW5uaW5nX3F1ZXJ5IGltcG9ydCBTdGFydFJ1bm5pbmdRdWVyeQorZnJvbSBwZ2Fk bWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiBm cm9tIHBnYWRtaW4udXRpbHMuZXhjZXB0aW9uIGltcG9ydCBDb25uZWN0aW9uTG9zdCwgU1NIVHVu bmVsQ29ubmVjdGlvbkxvc3QKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRl c3RHZW5lcmF0b3IKIAogaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAzKToKICAgICBmcm9tIG1v Y2sgaW1wb3J0IHBhdGNoLCBNYWdpY01vY2sKQEAgLTI0LDUwNSArMjUsOTE0IEBAIGdldF9kcml2 ZXJfZXhjZXB0aW9uID0gRXhjZXB0aW9uKCdnZXRfZHJpdmVyIGV4Y2VwdGlvbicpCiBnZXRfY29u bmVjdGlvbl9sb3N0X2V4Y2VwdGlvbiA9IEV4Y2VwdGlvbignVW5hYmxlIHRvIGNvbm5lY3QgdG8g c2VydmVyJykKIAogCi1jbGFzcyBTdGFydFJ1bm5pbmdRdWVyeVRlc3QoQmFzZVRlc3RHZW5lcmF0 b3IpOgotICAgICIiIgotICAgIENoZWNrIHRoYXQgdGhlIHN0YXJ0X3J1bm5pbmdfcXVlcnkgbWV0 aG9kIHdvcmtzIGFzIGludGVuZGVkCi0gICAgIiIiCi0KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAg ICAgICgnV2hlbiBncmlkRGF0YSBpcyBub3QgcHJlc2VudCBpbiB0aGUgc2Vzc2lvbiwgaXQgcmV0 dXJucyBhbiBlcnJvcicsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIGZ1bmN0aW9uX3Bh cmFtZXRlcnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgc3FsPWRpY3Qoc3FsPSdzb21lIHNxbCcs IGV4cGxhaW5fcGxhbj1Ob25lKSwKLSAgICAgICAgICAgICAgICAgdHJhbnNfaWQ9MTIzLAotICAg ICAgICAgICAgICAgICBodHRwX3Nlc3Npb249ZGljdCgpCi0gICAgICAgICAgICAgKSwKLSAgICAg ICAgICAgICBwaWNrbGVfbG9hZF9yZXR1cm49Tm9uZSwKLSAgICAgICAgICAgICBnZXRfZHJpdmVy X2V4Y2VwdGlvbj1GYWxzZSwKLSAgICAgICAgICAgICBnZXRfY29ubmVjdGlvbl9sb3N0X2V4Y2Vw dGlvbj1GYWxzZSwKLSAgICAgICAgICAgICBtYW5hZ2VyX2Nvbm5lY3Rpb25fZXhjZXB0aW9uPU5v bmUsCi0KLSAgICAgICAgICAgICBpc19jb25uZWN0ZWRfdG9fc2VydmVyPUZhbHNlLAotICAgICAg ICAgICAgIGNvbm5lY3Rpb25fY29ubmVjdF9yZXR1cm49Tm9uZSwKLSAgICAgICAgICAgICBleGVj dXRlX2FzeW5jX3JldHVybl92YWx1ZT1Ob25lLAotICAgICAgICAgICAgIGlzX2JlZ2luX3JlcXVp cmVkPUZhbHNlLAotICAgICAgICAgICAgIGlzX3JvbGxiYWNrX3JlcXVpcmVkPUZhbHNlLAotICAg ICAgICAgICAgIGFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZF9yZXR1cm5fdmFs dWU9J3NvbWUgc3FsJywKLQotICAgICAgICAgICAgIGV4cGVjdF9tYWtlX2pzb25fcmVzcG9uc2Vf dG9faGF2ZV9iZWVuX2NhbGxlZF93aXRoPWRpY3QoCi0gICAgICAgICAgICAgICAgIHN1Y2Nlc3M9 MCwKLSAgICAgICAgICAgICAgICAgZXJyb3Jtc2c9J1RyYW5zYWN0aW9uIElEIG5vdCBmb3VuZCBp biB0aGUgc2Vzc2lvbi4nLAotICAgICAgICAgICAgICAgICBpbmZvPSdEQVRBR1JJRF9UUkFOU0FD VElPTl9SRVFVSVJFRCcsCi0gICAgICAgICAgICAgICAgIHN0YXR1cz00MDQsCi0gICAgICAgICAg ICAgKSwKLSAgICAgICAgICAgICBleHBlY3RfaW50ZXJuYWxfc2VydmVyX2Vycm9yX2NhbGxlZF93 aXRoPU5vbmUsCi0gICAgICAgICAgICAgZXhwZWN0ZWRfbG9nZ2VyX2Vycm9yPU5vbmUsCi0gICAg ICAgICAgICAgZXhwZWN0X2V4ZWN1dGVfdm9pZF9jYWxsZWRfd2l0aD0nc29tZSBzcWwnLAotICAg ICAgICAgKSksCi0gICAgICAgICgnV2hlbiB0cmFuc2FjdGlvbklkIGlzIG5vdCBwcmVzZW50IGlu IHRoZSBncmlkRGF0YSwgJwotICAgICAgICAgJ2l0IHJldHVybnMgYW4gZXJyb3InLAotICAgICAg ICAgZGljdCgKLSAgICAgICAgICAgICBmdW5jdGlvbl9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAg ICAgICAgICAgIHNxbD1kaWN0KHNxbD0nc29tZSBzcWwnLCBleHBsYWluX3BsYW49Tm9uZSksCi0g ICAgICAgICAgICAgICAgIHRyYW5zX2lkPTEyMywKLSAgICAgICAgICAgICAgICAgaHR0cF9zZXNz aW9uPWRpY3QoZ3JpZERhdGE9ZGljdCgpKQotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAg cGlja2xlX2xvYWRfcmV0dXJuPU5vbmUsCi0gICAgICAgICAgICAgZ2V0X2RyaXZlcl9leGNlcHRp b249RmFsc2UsCi0gICAgICAgICAgICAgZ2V0X2Nvbm5lY3Rpb25fbG9zdF9leGNlcHRpb249RmFs c2UsCi0gICAgICAgICAgICAgbWFuYWdlcl9jb25uZWN0aW9uX2V4Y2VwdGlvbj1Ob25lLAotCi0g ICAgICAgICAgICAgaXNfY29ubmVjdGVkX3RvX3NlcnZlcj1GYWxzZSwKLSAgICAgICAgICAgICBj b25uZWN0aW9uX2Nvbm5lY3RfcmV0dXJuPU5vbmUsCi0gICAgICAgICAgICAgZXhlY3V0ZV9hc3lu Y19yZXR1cm5fdmFsdWU9Tm9uZSwKLSAgICAgICAgICAgICBpc19iZWdpbl9yZXF1aXJlZD1GYWxz ZSwKLSAgICAgICAgICAgICBpc19yb2xsYmFja19yZXF1aXJlZD1GYWxzZSwKLSAgICAgICAgICAg ICBhcHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9pZl9uZWVkZWRfcmV0dXJuX3ZhbHVlPSdzb21l IHNxbCcsCi0KLSAgICAgICAgICAgICBleHBlY3RfbWFrZV9qc29uX3Jlc3BvbnNlX3RvX2hhdmVf YmVlbl9jYWxsZWRfd2l0aD1kaWN0KAotICAgICAgICAgICAgICAgICBzdWNjZXNzPTAsCi0gICAg ICAgICAgICAgICAgIGVycm9ybXNnPSdUcmFuc2FjdGlvbiBJRCBub3QgZm91bmQgaW4gdGhlIHNl c3Npb24uJywKLSAgICAgICAgICAgICAgICAgaW5mbz0nREFUQUdSSURfVFJBTlNBQ1RJT05fUkVR VUlSRUQnLAotICAgICAgICAgICAgICAgICBzdGF0dXM9NDA0LAotICAgICAgICAgICAgICksCi0g ICAgICAgICAgICAgZXhwZWN0X2ludGVybmFsX3NlcnZlcl9lcnJvcl9jYWxsZWRfd2l0aD1Ob25l LAotICAgICAgICAgICAgIGV4cGVjdGVkX2xvZ2dlcl9lcnJvcj1Ob25lLAotICAgICAgICAgICAg IGV4cGVjdF9leGVjdXRlX3ZvaWRfY2FsbGVkX3dpdGg9J3NvbWUgc3FsJywKLSAgICAgICAgICkp LAotICAgICAgICAoJ1doZW4gdGhlIGNvbW1hbmQgaW5mb3JtYXRpb24gZm9yIHRoZSB0cmFuc2Fj dGlvbiAnCi0gICAgICAgICAnY2Fubm90IGJlIHJldHJpZXZlZCwgJwotICAgICAgICAgJ2l0IHJl dHVybnMgYW4gZXJyb3InLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICBmdW5jdGlvbl9w YXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgIHNxbD1kaWN0KHNxbD0nc29tZSBzcWwn LCBleHBsYWluX3BsYW49Tm9uZSksCi0gICAgICAgICAgICAgICAgIHRyYW5zX2lkPTEyMywKLSAg ICAgICAgICAgICAgICAgaHR0cF9zZXNzaW9uPWRpY3QoZ3JpZERhdGE9eycxMjMnOiBkaWN0KGNv bW1hbmRfb2JqPScnKX0pCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICBwaWNrbGVfbG9h ZF9yZXR1cm49Tm9uZSwKLSAgICAgICAgICAgICBnZXRfZHJpdmVyX2V4Y2VwdGlvbj1GYWxzZSwK LSAgICAgICAgICAgICBnZXRfY29ubmVjdGlvbl9sb3N0X2V4Y2VwdGlvbj1GYWxzZSwKLSAgICAg ICAgICAgICBtYW5hZ2VyX2Nvbm5lY3Rpb25fZXhjZXB0aW9uPU5vbmUsCi0KLSAgICAgICAgICAg ICBpc19jb25uZWN0ZWRfdG9fc2VydmVyPUZhbHNlLAotICAgICAgICAgICAgIGNvbm5lY3Rpb25f Y29ubmVjdF9yZXR1cm49Tm9uZSwKLSAgICAgICAgICAgICBleGVjdXRlX2FzeW5jX3JldHVybl92 YWx1ZT1Ob25lLAotICAgICAgICAgICAgIGlzX2JlZ2luX3JlcXVpcmVkPUZhbHNlLAotICAgICAg ICAgICAgIGlzX3JvbGxiYWNrX3JlcXVpcmVkPUZhbHNlLAotICAgICAgICAgICAgIGFwcGx5X2V4 cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZF9yZXR1cm5fdmFsdWU9J3NvbWUgc3FsJywKLQot ICAgICAgICAgICAgIGV4cGVjdF9tYWtlX2pzb25fcmVzcG9uc2VfdG9faGF2ZV9iZWVuX2NhbGxl ZF93aXRoPWRpY3QoCi0gICAgICAgICAgICAgICAgIGRhdGE9ZGljdCgKLSAgICAgICAgICAgICAg ICAgICAgIHN0YXR1cz1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD0nRWl0aGVy IHRyYW5zYWN0aW9uIG9iamVjdCBvciBzZXNzaW9uIG9iamVjdCAnCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ25vdCBmb3VuZC4nLAotICAgICAgICAgICAgICAgICAgICAgY2FuX2VkaXQ9 RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICBjYW5fZmlsdGVyPUZhbHNlLAotICAgICAgICAg ICAgICAgICAgICAgaW5mb19ub3RpZmllcl90aW1lb3V0PTUsCi0gICAgICAgICAgICAgICAgICAg ICBub3RpZmllcz1Ob25lCi0gICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICApLAotICAg ICAgICAgICAgIGV4cGVjdF9pbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfY2FsbGVkX3dpdGg9Tm9uZSwK LSAgICAgICAgICAgICBleHBlY3RlZF9sb2dnZXJfZXJyb3I9Tm9uZSwKLSAgICAgICAgICAgICBl eHBlY3RfZXhlY3V0ZV92b2lkX2NhbGxlZF93aXRoPSdzb21lIHNxbCcsCi0gICAgICAgICApKSwK LSAgICAgICAgKCdXaGVuIGV4Y2VwdGlvbiBoYXBwZW5zIHdoaWxlIHJldHJpZXZpbmcgdGhlIGRh dGFiYXNlIGRyaXZlciwgJwotICAgICAgICAgJ2l0IHJldHVybnMgYW4gZXJyb3InLAotICAgICAg ICAgZGljdCgKLSAgICAgICAgICAgICBmdW5jdGlvbl9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAg ICAgICAgICAgIHNxbD1kaWN0KHNxbD0nc29tZSBzcWwnLCBleHBsYWluX3BsYW49Tm9uZSksCi0g ICAgICAgICAgICAgICAgIHRyYW5zX2lkPTEyMywKLSAgICAgICAgICAgICAgICAgaHR0cF9zZXNz aW9uPWRpY3QoZ3JpZERhdGE9eycxMjMnOiBkaWN0KGNvbW1hbmRfb2JqPScnKX0pCi0gICAgICAg ICAgICAgKSwKLSAgICAgICAgICAgICBwaWNrbGVfbG9hZF9yZXR1cm49TWFnaWNNb2NrKGNvbm5f aWQ9MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZV9m ZXRjaGVkX3Jvd19jbnQ9TWFnaWNNb2NrKCkpLAotICAgICAgICAgICAgIGdldF9kcml2ZXJfZXhj ZXB0aW9uPVRydWUsCi0gICAgICAgICAgICAgZ2V0X2Nvbm5lY3Rpb25fbG9zdF9leGNlcHRpb249 RmFsc2UsCi0gICAgICAgICAgICAgbWFuYWdlcl9jb25uZWN0aW9uX2V4Y2VwdGlvbj1Ob25lLAot Ci0gICAgICAgICAgICAgaXNfY29ubmVjdGVkX3RvX3NlcnZlcj1GYWxzZSwKLSAgICAgICAgICAg ICBjb25uZWN0aW9uX2Nvbm5lY3RfcmV0dXJuPU5vbmUsCi0gICAgICAgICAgICAgZXhlY3V0ZV9h c3luY19yZXR1cm5fdmFsdWU9Tm9uZSwKLSAgICAgICAgICAgICBpc19iZWdpbl9yZXF1aXJlZD1G YWxzZSwKLSAgICAgICAgICAgICBpc19yb2xsYmFja19yZXF1aXJlZD1GYWxzZSwKLSAgICAgICAg ICAgICBhcHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9pZl9uZWVkZWRfcmV0dXJuX3ZhbHVlPSdz b21lIHNxbCcsCi0KLSAgICAgICAgICAgICBleHBlY3RfbWFrZV9qc29uX3Jlc3BvbnNlX3RvX2hh dmVfYmVlbl9jYWxsZWRfd2l0aD1Ob25lLAotICAgICAgICAgICAgIGV4cGVjdF9pbnRlcm5hbF9z ZXJ2ZXJfZXJyb3JfY2FsbGVkX3dpdGg9ZGljdCgKLSAgICAgICAgICAgICAgICAgZXJyb3Jtc2c9 J2dldF9kcml2ZXIgZXhjZXB0aW9uJwotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgZXhw ZWN0ZWRfbG9nZ2VyX2Vycm9yPWdldF9kcml2ZXJfZXhjZXB0aW9uLAotICAgICAgICAgICAgIGV4 cGVjdF9leGVjdXRlX3ZvaWRfY2FsbGVkX3dpdGg9J3NvbWUgc3FsJywKLSAgICAgICAgICkpLAot ICAgICAgICAoJ1doZW4gQ29ubmVjdGlvbkxvc3QgaGFwcGVucyB3aGlsZSByZXRyaWV2aW5nIHRo ZSAnCi0gICAgICAgICAnZGF0YWJhc2UgY29ubmVjdGlvbiwgJwotICAgICAgICAgJ2l0IHJldHVy bnMgYW4gZXJyb3InLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICBmdW5jdGlvbl9wYXJh bWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgIHNxbD1kaWN0KHNxbD0nc29tZSBzcWwnLCBl eHBsYWluX3BsYW49Tm9uZSksCi0gICAgICAgICAgICAgICAgIHRyYW5zX2lkPTEyMywKLSAgICAg ICAgICAgICAgICAgaHR0cF9zZXNzaW9uPWRpY3QoZ3JpZERhdGE9eycxMjMnOiBkaWN0KGNvbW1h bmRfb2JqPScnKX0pCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICBwaWNrbGVfbG9hZF9y ZXR1cm49TWFnaWNNb2NrKAotICAgICAgICAgICAgICAgICBjb25uX2lkPTEsCi0gICAgICAgICAg ICAgICAgIHVwZGF0ZV9mZXRjaGVkX3Jvd19jbnQ9TWFnaWNNb2NrKCkKLSAgICAgICAgICAgICAp LAotICAgICAgICAgICAgIGdldF9kcml2ZXJfZXhjZXB0aW9uPUZhbHNlLAotICAgICAgICAgICAg IGdldF9jb25uZWN0aW9uX2xvc3RfZXhjZXB0aW9uPUZhbHNlLAotICAgICAgICAgICAgIG1hbmFn ZXJfY29ubmVjdGlvbl9leGNlcHRpb249Q29ubmVjdGlvbkxvc3QoJzEnLCAnMicsICczJyksCi0K LSAgICAgICAgICAgICBpc19jb25uZWN0ZWRfdG9fc2VydmVyPUZhbHNlLAotICAgICAgICAgICAg IGNvbm5lY3Rpb25fY29ubmVjdF9yZXR1cm49Tm9uZSwKLSAgICAgICAgICAgICBleGVjdXRlX2Fz eW5jX3JldHVybl92YWx1ZT1Ob25lLAotICAgICAgICAgICAgIGlzX2JlZ2luX3JlcXVpcmVkPUZh bHNlLAotICAgICAgICAgICAgIGlzX3JvbGxiYWNrX3JlcXVpcmVkPUZhbHNlLAotICAgICAgICAg ICAgIGFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZF9yZXR1cm5fdmFsdWU9J3Nv bWUgc3FsJywKLQotICAgICAgICAgICAgIGV4cGVjdF9tYWtlX2pzb25fcmVzcG9uc2VfdG9faGF2 ZV9iZWVuX2NhbGxlZF93aXRoPU5vbmUsCi0gICAgICAgICAgICAgZXhwZWN0X2ludGVybmFsX3Nl cnZlcl9lcnJvcl9jYWxsZWRfd2l0aD1Ob25lLAotICAgICAgICAgICAgIGV4cGVjdGVkX2xvZ2dl cl9lcnJvcj1Ob25lLAotICAgICAgICAgICAgIGV4cGVjdF9leGVjdXRlX3ZvaWRfY2FsbGVkX3dp dGg9J3NvbWUgc3FsJywKLSAgICAgICAgICkpLAotICAgICAgICAoJ1doZW4gU1NIVHVubmVsQ29u bmVjdGlvbkxvc3QgaGFwcGVucyB3aGlsZSByZXRyaWV2aW5nIHRoZSAnCi0gICAgICAgICAnZGF0 YWJhc2UgY29ubmVjdGlvbiwgJwotICAgICAgICAgJ2l0IHJldHVybnMgYW4gZXJyb3InLAotICAg ICAgICAgZGljdCgKLSAgICAgICAgICAgICBmdW5jdGlvbl9wYXJhbWV0ZXJzPWRpY3QoCi0gICAg ICAgICAgICAgICAgIHNxbD1kaWN0KHNxbD0nc29tZSBzcWwnLCBleHBsYWluX3BsYW49Tm9uZSks Ci0gICAgICAgICAgICAgICAgIHRyYW5zX2lkPTEyMywKLSAgICAgICAgICAgICAgICAgaHR0cF9z ZXNzaW9uPWRpY3QoZ3JpZERhdGE9eycxMjMnOiBkaWN0KGNvbW1hbmRfb2JqPScnKX0pCi0gICAg ICAgICAgICAgKSwKLSAgICAgICAgICAgICBwaWNrbGVfbG9hZF9yZXR1cm49TWFnaWNNb2NrKAot ICAgICAgICAgICAgICAgICBjb25uX2lkPTEsCi0gICAgICAgICAgICAgICAgIHVwZGF0ZV9mZXRj aGVkX3Jvd19jbnQ9TWFnaWNNb2NrKCkKLSAgICAgICAgICAgICApLAotICAgICAgICAgICAgIGdl dF9kcml2ZXJfZXhjZXB0aW9uPUZhbHNlLAotICAgICAgICAgICAgIGdldF9jb25uZWN0aW9uX2xv c3RfZXhjZXB0aW9uPUZhbHNlLAotICAgICAgICAgICAgIG1hbmFnZXJfY29ubmVjdGlvbl9leGNl cHRpb249U1NIVHVubmVsQ29ubmVjdGlvbkxvc3QoJzEuMS4xLjEnKSwKLQotICAgICAgICAgICAg IGlzX2Nvbm5lY3RlZF90b19zZXJ2ZXI9RmFsc2UsCi0gICAgICAgICAgICAgY29ubmVjdGlvbl9j b25uZWN0X3JldHVybj1Ob25lLAotICAgICAgICAgICAgIGV4ZWN1dGVfYXN5bmNfcmV0dXJuX3Zh bHVlPU5vbmUsCi0gICAgICAgICAgICAgaXNfYmVnaW5fcmVxdWlyZWQ9RmFsc2UsCi0gICAgICAg ICAgICAgaXNfcm9sbGJhY2tfcmVxdWlyZWQ9RmFsc2UsCi0gICAgICAgICAgICAgYXBwbHlfZXhw bGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkX3JldHVybl92YWx1ZT0nc29tZSBzcWwnLAotCi0g ICAgICAgICAgICAgZXhwZWN0X21ha2VfanNvbl9yZXNwb25zZV90b19oYXZlX2JlZW5fY2FsbGVk X3dpdGg9Tm9uZSwKLSAgICAgICAgICAgICBleHBlY3RfaW50ZXJuYWxfc2VydmVyX2Vycm9yX2Nh bGxlZF93aXRoPU5vbmUsCi0gICAgICAgICAgICAgZXhwZWN0ZWRfbG9nZ2VyX2Vycm9yPU5vbmUs Ci0gICAgICAgICAgICAgZXhwZWN0X2V4ZWN1dGVfdm9pZF9jYWxsZWRfd2l0aD0nc29tZSBzcWwn LAotICAgICAgICAgKSksCi0gICAgICAgICgnV2hlbiBpcyBub3QgY29ubmVjdGVkIHRvIHRoZSBz ZXJ2ZXIgYW5kIGZhaWxzIHRvIGNvbm5lY3QsICcKLSAgICAgICAgICdpdCByZXR1cm5zIGFuIGVy cm9yJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgZnVuY3Rpb25fcGFyYW1ldGVycz1k aWN0KAotICAgICAgICAgICAgICAgICBzcWw9ZGljdChzcWw9J3NvbWUgc3FsJywgZXhwbGFpbl9w bGFuPU5vbmUpLAotICAgICAgICAgICAgICAgICB0cmFuc19pZD0xMjMsCi0gICAgICAgICAgICAg ICAgIGh0dHBfc2Vzc2lvbj1kaWN0KGdyaWREYXRhPXsnMTIzJzogZGljdChjb21tYW5kX29iaj0n Jyl9KQotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgcGlja2xlX2xvYWRfcmV0dXJuPU1h Z2ljTW9jaygKLSAgICAgICAgICAgICAgICAgY29ubl9pZD0xLAotICAgICAgICAgICAgICAgICB1 cGRhdGVfZmV0Y2hlZF9yb3dfY250PU1hZ2ljTW9jaygpCi0gICAgICAgICAgICAgKSwKLSAgICAg ICAgICAgICBnZXRfZHJpdmVyX2V4Y2VwdGlvbj1GYWxzZSwKLSAgICAgICAgICAgICBnZXRfY29u bmVjdGlvbl9sb3N0X2V4Y2VwdGlvbj1UcnVlLAotICAgICAgICAgICAgIG1hbmFnZXJfY29ubmVj dGlvbl9leGNlcHRpb249Tm9uZSwKLQotICAgICAgICAgICAgIGlzX2Nvbm5lY3RlZF90b19zZXJ2 ZXI9RmFsc2UsCi0gICAgICAgICAgICAgY29ubmVjdGlvbl9jb25uZWN0X3JldHVybj1bRmFsc2Us Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VuYWJsZSB0byBjb25u ZWN0IHRvIHNlcnZlciddLAotICAgICAgICAgICAgIGV4ZWN1dGVfYXN5bmNfcmV0dXJuX3ZhbHVl PU5vbmUsCi0gICAgICAgICAgICAgaXNfYmVnaW5fcmVxdWlyZWQ9RmFsc2UsCi0gICAgICAgICAg ICAgaXNfcm9sbGJhY2tfcmVxdWlyZWQ9RmFsc2UsCi0gICAgICAgICAgICAgYXBwbHlfZXhwbGFp bl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkX3JldHVybl92YWx1ZT0nc29tZSBzcWwnLAotCi0gICAg ICAgICAgICAgZXhwZWN0X21ha2VfanNvbl9yZXNwb25zZV90b19oYXZlX2JlZW5fY2FsbGVkX3dp dGg9Tm9uZSwKLSAgICAgICAgICAgICBleHBlY3RfaW50ZXJuYWxfc2VydmVyX2Vycm9yX2NhbGxl ZF93aXRoPWRpY3QoCi0gICAgICAgICAgICAgICAgIGVycm9ybXNnPSdVbmFibGUgdG8gY29ubmVj dCB0byBzZXJ2ZXInCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICBleHBlY3RlZF9sb2dn ZXJfZXJyb3I9Z2V0X2Nvbm5lY3Rpb25fbG9zdF9leGNlcHRpb24sCi0gICAgICAgICAgICAgZXhw ZWN0X2V4ZWN1dGVfdm9pZF9jYWxsZWRfd2l0aD0nc29tZSBzcWwnLAotICAgICAgICAgKSksCi0g ICAgICAgICgnV2hlbiBzZXJ2ZXIgaXMgY29ubmVjdGVkIGFuZCBzdGFydCBxdWVyeSBhc3luYyBy ZXF1ZXN0LCAnCi0gICAgICAgICAnaXQgcmV0dXJucyBhbiBzdWNjZXNzIG1lc3NhZ2UnLAotICAg ICAgICAgZGljdCgKLSAgICAgICAgICAgICBmdW5jdGlvbl9wYXJhbWV0ZXJzPWRpY3QoCi0gICAg ICAgICAgICAgICAgIHNxbD1kaWN0KHNxbD0nc29tZSBzcWwnLCBleHBsYWluX3BsYW49Tm9uZSks Ci0gICAgICAgICAgICAgICAgIHRyYW5zX2lkPTEyMywKLSAgICAgICAgICAgICAgICAgaHR0cF9z ZXNzaW9uPWRpY3QoZ3JpZERhdGE9eycxMjMnOiBkaWN0KGNvbW1hbmRfb2JqPScnKX0pCi0gICAg ICAgICAgICAgKSwKLSAgICAgICAgICAgICBwaWNrbGVfbG9hZF9yZXR1cm49TWFnaWNNb2NrKAot ICAgICAgICAgICAgICAgICBjb25uX2lkPTEsCi0gICAgICAgICAgICAgICAgIHVwZGF0ZV9mZXRj aGVkX3Jvd19jbnQ9TWFnaWNNb2NrKCksCi0gICAgICAgICAgICAgICAgIHNldF9jb25uZWN0aW9u X2lkPU1hZ2ljTW9jaygpLAotICAgICAgICAgICAgICAgICBhdXRvX2NvbW1pdD1UcnVlLAotICAg ICAgICAgICAgICAgICBhdXRvX3JvbGxiYWNrPUZhbHNlLAotICAgICAgICAgICAgICAgICBjYW5f ZWRpdD1sYW1iZGE6IFRydWUsCi0gICAgICAgICAgICAgICAgIGNhbl9maWx0ZXI9bGFtYmRhOiBU cnVlCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICBnZXRfZHJpdmVyX2V4Y2VwdGlvbj1G YWxzZSwKLSAgICAgICAgICAgICBnZXRfY29ubmVjdGlvbl9sb3N0X2V4Y2VwdGlvbj1GYWxzZSwK LSAgICAgICAgICAgICBtYW5hZ2VyX2Nvbm5lY3Rpb25fZXhjZXB0aW9uPU5vbmUsCi0KLSAgICAg ICAgICAgICBpc19jb25uZWN0ZWRfdG9fc2VydmVyPVRydWUsCi0gICAgICAgICAgICAgY29ubmVj dGlvbl9jb25uZWN0X3JldHVybj1Ob25lLAotICAgICAgICAgICAgIGV4ZWN1dGVfYXN5bmNfcmV0 dXJuX3ZhbHVlPVtUcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnYXN5bmMgZnVuY3Rpb24gcmVzdWx0IG91dHB1dCddLAotICAgICAgICAgICAgIGlzX2JlZ2lu X3JlcXVpcmVkPUZhbHNlLAotICAgICAgICAgICAgIGlzX3JvbGxiYWNrX3JlcXVpcmVkPUZhbHNl LAotICAgICAgICAgICAgIGFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZF9yZXR1 cm5fdmFsdWU9J3NvbWUgc3FsJywKLQotICAgICAgICAgICAgIGV4cGVjdF9tYWtlX2pzb25fcmVz cG9uc2VfdG9faGF2ZV9iZWVuX2NhbGxlZF93aXRoPWRpY3QoCi0gICAgICAgICAgICAgICAgIGRh dGE9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz1UcnVlLAotICAgICAgICAgICAg ICAgICAgICAgcmVzdWx0PSdhc3luYyBmdW5jdGlvbiByZXN1bHQgb3V0cHV0JywKLSAgICAgICAg ICAgICAgICAgICAgIGNhbl9lZGl0PVRydWUsCi0gICAgICAgICAgICAgICAgICAgICBjYW5fZmls dGVyPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICBpbmZvX25vdGlmaWVyX3RpbWVvdXQ9NSwK LSAgICAgICAgICAgICAgICAgICAgIG5vdGlmaWVzPU5vbmUKLSAgICAgICAgICAgICAgICAgKQot ICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgZXhwZWN0X2ludGVybmFsX3NlcnZlcl9lcnJv cl9jYWxsZWRfd2l0aD1Ob25lLAotICAgICAgICAgICAgIGV4cGVjdGVkX2xvZ2dlcl9lcnJvcj1O b25lLAotICAgICAgICAgICAgIGV4cGVjdF9leGVjdXRlX3ZvaWRfY2FsbGVkX3dpdGg9J3NvbWUg c3FsJywKLSAgICAgICAgICkpLAotICAgICAgICAoJ1doZW4gc2VydmVyIGlzIGNvbm5lY3RlZCBh bmQgc3RhcnQgcXVlcnkgYXN5bmMgcmVxdWVzdCBhbmQgJwotICAgICAgICAgJ2JlZ2luIGlzIHJl cXVpcmVkLCAnCi0gICAgICAgICAnaXQgcmV0dXJucyBhbiBzdWNjZXNzIG1lc3NhZ2UnLAotICAg ICAgICAgZGljdCgKLSAgICAgICAgICAgICBmdW5jdGlvbl9wYXJhbWV0ZXJzPWRpY3QoCi0gICAg ICAgICAgICAgICAgIHNxbD1kaWN0KHNxbD0nc29tZSBzcWwnLCBleHBsYWluX3BsYW49Tm9uZSks Ci0gICAgICAgICAgICAgICAgIHRyYW5zX2lkPTEyMywKLSAgICAgICAgICAgICAgICAgaHR0cF9z ZXNzaW9uPWRpY3QoZ3JpZERhdGE9eycxMjMnOiBkaWN0KGNvbW1hbmRfb2JqPScnKX0pCi0gICAg ICAgICAgICAgKSwKLSAgICAgICAgICAgICBwaWNrbGVfbG9hZF9yZXR1cm49TWFnaWNNb2NrKAot ICAgICAgICAgICAgICAgICBjb25uX2lkPTEsCi0gICAgICAgICAgICAgICAgIHVwZGF0ZV9mZXRj aGVkX3Jvd19jbnQ9TWFnaWNNb2NrKCksCi0gICAgICAgICAgICAgICAgIHNldF9jb25uZWN0aW9u X2lkPU1hZ2ljTW9jaygpLAotICAgICAgICAgICAgICAgICBhdXRvX2NvbW1pdD1UcnVlLAotICAg ICAgICAgICAgICAgICBhdXRvX3JvbGxiYWNrPUZhbHNlLAotICAgICAgICAgICAgICAgICBjYW5f ZWRpdD1sYW1iZGE6IFRydWUsCi0gICAgICAgICAgICAgICAgIGNhbl9maWx0ZXI9bGFtYmRhOiBU cnVlCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICBnZXRfZHJpdmVyX2V4Y2VwdGlvbj1G YWxzZSwKLSAgICAgICAgICAgICBnZXRfY29ubmVjdGlvbl9sb3N0X2V4Y2VwdGlvbj1GYWxzZSwK LSAgICAgICAgICAgICBtYW5hZ2VyX2Nvbm5lY3Rpb25fZXhjZXB0aW9uPU5vbmUsCi0KLSAgICAg ICAgICAgICBpc19jb25uZWN0ZWRfdG9fc2VydmVyPVRydWUsCi0gICAgICAgICAgICAgY29ubmVj dGlvbl9jb25uZWN0X3JldHVybj1Ob25lLAotICAgICAgICAgICAgIGV4ZWN1dGVfYXN5bmNfcmV0 dXJuX3ZhbHVlPVtUcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnYXN5bmMgZnVuY3Rpb24gcmVzdWx0IG91dHB1dCddLAotICAgICAgICAgICAgIGlzX2JlZ2lu X3JlcXVpcmVkPVRydWUsCi0gICAgICAgICAgICAgaXNfcm9sbGJhY2tfcmVxdWlyZWQ9RmFsc2Us Ci0gICAgICAgICAgICAgYXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkX3JldHVy bl92YWx1ZT0nc29tZSBzcWwnLAotCi0gICAgICAgICAgICAgZXhwZWN0X21ha2VfanNvbl9yZXNw b25zZV90b19oYXZlX2JlZW5fY2FsbGVkX3dpdGg9ZGljdCgKLSAgICAgICAgICAgICAgICAgZGF0 YT1kaWN0KAotICAgICAgICAgICAgICAgICAgICAgc3RhdHVzPVRydWUsCi0gICAgICAgICAgICAg ICAgICAgICByZXN1bHQ9J2FzeW5jIGZ1bmN0aW9uIHJlc3VsdCBvdXRwdXQnLAotICAgICAgICAg ICAgICAgICAgICAgY2FuX2VkaXQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgIGNhbl9maWx0 ZXI9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgIGluZm9fbm90aWZpZXJfdGltZW91dD01LAot ICAgICAgICAgICAgICAgICAgICAgbm90aWZpZXM9Tm9uZQotICAgICAgICAgICAgICAgICApCi0g ICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICBleHBlY3RfaW50ZXJuYWxfc2VydmVyX2Vycm9y X2NhbGxlZF93aXRoPU5vbmUsCi0gICAgICAgICAgICAgZXhwZWN0ZWRfbG9nZ2VyX2Vycm9yPU5v bmUsCi0gICAgICAgICAgICAgZXhwZWN0X2V4ZWN1dGVfdm9pZF9jYWxsZWRfd2l0aD0nc29tZSBz cWwnLAotICAgICAgICAgKSksCi0gICAgICAgICgnV2hlbiBzZXJ2ZXIgaXMgY29ubmVjdGVkIGFu ZCBzdGFydCBxdWVyeSBhc3luYyByZXF1ZXN0IGFuZCAnCi0gICAgICAgICAncm9sbGJhY2sgaXMg cmVxdWlyZWQsICcKLSAgICAgICAgICdpdCByZXR1cm5zIGFuIHN1Y2Nlc3MgbWVzc2FnZScsCi0g ICAgICAgICBkaWN0KAotICAgICAgICAgICAgIGZ1bmN0aW9uX3BhcmFtZXRlcnM9ZGljdCgKLSAg ICAgICAgICAgICAgICAgc3FsPWRpY3Qoc3FsPSdzb21lIHNxbCcsIGV4cGxhaW5fcGxhbj1Ob25l KSwKLSAgICAgICAgICAgICAgICAgdHJhbnNfaWQ9MTIzLAotICAgICAgICAgICAgICAgICBodHRw X3Nlc3Npb249ZGljdChncmlkRGF0YT17JzEyMyc6IGRpY3QoY29tbWFuZF9vYmo9JycpfSkKLSAg ICAgICAgICAgICApLAotICAgICAgICAgICAgIHBpY2tsZV9sb2FkX3JldHVybj1NYWdpY01vY2so Ci0gICAgICAgICAgICAgICAgIGNvbm5faWQ9MSwKLSAgICAgICAgICAgICAgICAgdXBkYXRlX2Zl dGNoZWRfcm93X2NudD1NYWdpY01vY2soKSwKLSAgICAgICAgICAgICAgICAgc2V0X2Nvbm5lY3Rp b25faWQ9TWFnaWNNb2NrKCksCi0gICAgICAgICAgICAgICAgIGF1dG9fY29tbWl0PVRydWUsCi0g ICAgICAgICAgICAgICAgIGF1dG9fcm9sbGJhY2s9RmFsc2UsCi0gICAgICAgICAgICAgICAgIGNh bl9lZGl0PWxhbWJkYTogVHJ1ZSwKLSAgICAgICAgICAgICAgICAgY2FuX2ZpbHRlcj1sYW1iZGE6 IFRydWUKLSAgICAgICAgICAgICApLAotICAgICAgICAgICAgIGdldF9kcml2ZXJfZXhjZXB0aW9u PUZhbHNlLAotICAgICAgICAgICAgIGdldF9jb25uZWN0aW9uX2xvc3RfZXhjZXB0aW9uPUZhbHNl LAotICAgICAgICAgICAgIG1hbmFnZXJfY29ubmVjdGlvbl9leGNlcHRpb249Tm9uZSwKLQotICAg ICAgICAgICAgIGlzX2Nvbm5lY3RlZF90b19zZXJ2ZXI9VHJ1ZSwKLSAgICAgICAgICAgICBjb25u ZWN0aW9uX2Nvbm5lY3RfcmV0dXJuPU5vbmUsCi0gICAgICAgICAgICAgZXhlY3V0ZV9hc3luY19y ZXR1cm5fdmFsdWU9W1RydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdhc3luYyBmdW5jdGlvbiByZXN1bHQgb3V0cHV0J10sCi0gICAgICAgICAgICAgaXNfYmVn aW5fcmVxdWlyZWQ9RmFsc2UsCi0gICAgICAgICAgICAgaXNfcm9sbGJhY2tfcmVxdWlyZWQ9VHJ1 ZSwKLSAgICAgICAgICAgICBhcHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9pZl9uZWVkZWRfcmV0 dXJuX3ZhbHVlPSdzb21lIHNxbCcsCi0KLSAgICAgICAgICAgICBleHBlY3RfbWFrZV9qc29uX3Jl c3BvbnNlX3RvX2hhdmVfYmVlbl9jYWxsZWRfd2l0aD1kaWN0KAotICAgICAgICAgICAgICAgICBk YXRhPWRpY3QoCi0gICAgICAgICAgICAgICAgICAgICBzdGF0dXM9VHJ1ZSwKLSAgICAgICAgICAg ICAgICAgICAgIHJlc3VsdD0nYXN5bmMgZnVuY3Rpb24gcmVzdWx0IG91dHB1dCcsCi0gICAgICAg ICAgICAgICAgICAgICBjYW5fZWRpdD1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgY2FuX2Zp bHRlcj1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgaW5mb19ub3RpZmllcl90aW1lb3V0PTUs Ci0gICAgICAgICAgICAgICAgICAgICBub3RpZmllcz1Ob25lCi0gICAgICAgICAgICAgICAgICkK LSAgICAgICAgICAgICApLAotICAgICAgICAgICAgIGV4cGVjdF9pbnRlcm5hbF9zZXJ2ZXJfZXJy b3JfY2FsbGVkX3dpdGg9Tm9uZSwKLSAgICAgICAgICAgICBleHBlY3RlZF9sb2dnZXJfZXJyb3I9 Tm9uZSwKLSAgICAgICAgICAgICBleHBlY3RfZXhlY3V0ZV92b2lkX2NhbGxlZF93aXRoPSdzb21l IHNxbCcsCi0gICAgICAgICApKSwKLSAgICAgICAgKCdXaGVuIHNlcnZlciBpcyBjb25uZWN0ZWQg YW5kIHN0YXJ0IHF1ZXJ5IGFzeW5jIHJlcXVlc3Qgd2l0aCAnCi0gICAgICAgICAnZXhwbGFpbiBw bGFuIHdyYXBwZXIsICcKLSAgICAgICAgICdpdCByZXR1cm5zIGFuIHN1Y2Nlc3MgbWVzc2FnZScs Ci0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIGZ1bmN0aW9uX3BhcmFtZXRlcnM9ZGljdCgK LSAgICAgICAgICAgICAgICAgc3FsPWRpY3Qoc3FsPSdzb21lIHNxbCcsIGV4cGxhaW5fcGxhbj1O b25lKSwKLSAgICAgICAgICAgICAgICAgdHJhbnNfaWQ9MTIzLAotICAgICAgICAgICAgICAgICBo dHRwX3Nlc3Npb249ZGljdChncmlkRGF0YT17JzEyMyc6IGRpY3QoY29tbWFuZF9vYmo9JycpfSkK LSAgICAgICAgICAgICApLAotICAgICAgICAgICAgIHBpY2tsZV9sb2FkX3JldHVybj1NYWdpY01v Y2soCi0gICAgICAgICAgICAgICAgIGNvbm5faWQ9MSwKLSAgICAgICAgICAgICAgICAgdXBkYXRl X2ZldGNoZWRfcm93X2NudD1NYWdpY01vY2soKSwKLSAgICAgICAgICAgICAgICAgc2V0X2Nvbm5l Y3Rpb25faWQ9TWFnaWNNb2NrKCksCi0gICAgICAgICAgICAgICAgIGF1dG9fY29tbWl0PVRydWUs Ci0gICAgICAgICAgICAgICAgIGF1dG9fcm9sbGJhY2s9RmFsc2UsCi0gICAgICAgICAgICAgICAg IGNhbl9lZGl0PWxhbWJkYTogVHJ1ZSwKLSAgICAgICAgICAgICAgICAgY2FuX2ZpbHRlcj1sYW1i ZGE6IFRydWUKLSAgICAgICAgICAgICApLAotICAgICAgICAgICAgIGdldF9kcml2ZXJfZXhjZXB0 aW9uPUZhbHNlLAotICAgICAgICAgICAgIGdldF9jb25uZWN0aW9uX2xvc3RfZXhjZXB0aW9uPUZh bHNlLAotICAgICAgICAgICAgIG1hbmFnZXJfY29ubmVjdGlvbl9leGNlcHRpb249Tm9uZSwKLQot ICAgICAgICAgICAgIGlzX2Nvbm5lY3RlZF90b19zZXJ2ZXI9VHJ1ZSwKLSAgICAgICAgICAgICBj b25uZWN0aW9uX2Nvbm5lY3RfcmV0dXJuPU5vbmUsCi0gICAgICAgICAgICAgZXhlY3V0ZV9hc3lu Y19yZXR1cm5fdmFsdWU9W1RydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICdhc3luYyBmdW5jdGlvbiByZXN1bHQgb3V0cHV0J10sCi0gICAgICAgICAgICAgaXNf YmVnaW5fcmVxdWlyZWQ9RmFsc2UsCi0gICAgICAgICAgICAgaXNfcm9sbGJhY2tfcmVxdWlyZWQ9 VHJ1ZSwKLSAgICAgICAgICAgICBhcHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9pZl9uZWVkZWRf cmV0dXJuX3ZhbHVlPSdFWFBMQUlOICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQTEFOIHNvbWUgc3FsJywKLQotICAgICAg ICAgICAgIGV4cGVjdF9tYWtlX2pzb25fcmVzcG9uc2VfdG9faGF2ZV9iZWVuX2NhbGxlZF93aXRo PWRpY3QoCi0gICAgICAgICAgICAgICAgIGRhdGE9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAg IHN0YXR1cz1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PSdhc3luYyBmdW5jdGlv biByZXN1bHQgb3V0cHV0JywKLSAgICAgICAgICAgICAgICAgICAgIGNhbl9lZGl0PVRydWUsCi0g ICAgICAgICAgICAgICAgICAgICBjYW5fZmlsdGVyPVRydWUsCi0gICAgICAgICAgICAgICAgICAg ICBpbmZvX25vdGlmaWVyX3RpbWVvdXQ9NSwKLSAgICAgICAgICAgICAgICAgICAgIG5vdGlmaWVz PU5vbmUKLSAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAg ZXhwZWN0X2ludGVybmFsX3NlcnZlcl9lcnJvcl9jYWxsZWRfd2l0aD1Ob25lLAotICAgICAgICAg ICAgIGV4cGVjdGVkX2xvZ2dlcl9lcnJvcj1Ob25lLAotICAgICAgICAgICAgIGV4cGVjdF9leGVj dXRlX3ZvaWRfY2FsbGVkX3dpdGg9J0VYUExBSU4gUExBTiBzb21lIHNxbCcsCi0gICAgICAgICAp KSwKLSAgICBdCitjbGFzcyBUZXN0U3RhcnRSdW5uaW5nUXVlcnk6CisKKyAgICBAcGF0Y2goJ3Bn YWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnkuZ2V0X2RyaXZl cicpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5u aW5nX3F1ZXJ5JworICAgICAgICAgICAnLmFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25l ZWRlZCcpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9y dW5uaW5nX3F1ZXJ5JworICAgICAgICAgICAnLmludGVybmFsX3NlcnZlcl9lcnJvcicpCisgICAg QHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5 JworICAgICAgICAgICAnLm1ha2VfanNvbl9yZXNwb25zZScpCisgICAgZGVmIHRlc3Rfc3RhcnRf cXVlcnlfbm9fZ3JpZGRhdGEoCisgICAgICAgIHNlbGYsCisgICAgICAgIG1ha2VfanNvbl9yZXNw b25zZV9tb2NrLAorICAgICAgICBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jaywKKyAgICAgICAg YXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkX21vY2ssCisgICAgICAgIGdldF9k cml2ZXJfbW9jaywKKyAgICAgICAgcmVxdWVzdAorICAgICk6CisgICAgICAgICIiIgorICAgICAg ICBXaGVuIFN0YXJ0UnVubmluZ1F1ZXJ5IGlzIGV4ZWN1dGVkCisgICAgICAgIEFuZCBncmlkRGF0 YSBpcyBub3QgcHJlc2VudCBpbiBzZXNzaW9uCisgICAgICAgIGl0IHJldHVybnMgYW4gZXJyb3IK KyAgICAgICAgIiIiCisKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93 bikKKworICAgICAgICBleHBlY3RlZF9yZXNwb25zZSA9IFwKKyAgICAgICAgICAgIFJlc3BvbnNl KHJlc3BvbnNlPWpzb24uZHVtcHMoeydlcnJvcm1zZyc6ICdzb21lIHZhbHVlJ30pKQorICAgICAg ICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jay5yZXR1cm5fdmFsdWUgPSBleHBlY3RlZF9yZXNwb25z ZQorICAgICAgICBTdGFydFJ1bm5pbmdRdWVyeS5pc19iZWdpbl9yZXF1aXJlZF9mb3Jfc3FsX3F1 ZXJ5ID0gXAorICAgICAgICAgICAgTWFnaWNNb2NrKHJldHVybl92YWx1ZT1GYWxzZSkKKyAgICAg ICAgU3RhcnRSdW5uaW5nUXVlcnkuaXNfcm9sbGJhY2tfc3RhdGVtZW50X3JlcXVpcmVkID0gXAor ICAgICAgICAgICAgTWFnaWNNb2NrKHJldHVybl92YWx1ZT1GYWxzZSkKKyAgICAgICAgYXBwbHlf ZXhwbGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkX21vY2sucmV0dXJuX3ZhbHVlID0gXAorICAg ICAgICAgICAgJ3NvbWUgc3FsJworCisgICAgICAgIG1hbmFnZXIgPSBzZWxmLl9fY3JlYXRlX21h bmFnZXIoCisgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAg ICBOb25lLAorICAgICAgICAgICAgTm9uZQorICAgICAgICApCisgICAgICAgIGdldF9kcml2ZXJf bW9jay5yZXR1cm5fdmFsdWUgPSBNYWdpY01vY2soCisgICAgICAgICAgICBjb25uZWN0aW9uX21h bmFnZXI9bGFtYmRhIHNlc3Npb25faWQ6IG1hbmFnZXIpCisKKyAgICAgICAgYmx1ZXByaW50X21v Y2sgPSBNYWdpY01vY2soCisgICAgICAgICAgICBpbmZvX25vdGlmaWVyX3RpbWVvdXQ9TWFnaWNN b2NrKGdldD1sYW1iZGE6IDUpCisgICAgICAgICkKKyAgICAgICAgbG9nZ2VyTW9jayA9IE1hZ2lj TW9jayhlcnJvcj1NYWdpY01vY2soKSkKKworICAgICAgICByZXN1bHQgPSBTdGFydFJ1bm5pbmdR dWVyeSgKKyAgICAgICAgICAgIGJsdWVwcmludF9tb2NrLAorICAgICAgICAgICAgbG9nZ2VyTW9j aworICAgICAgICApLmV4ZWN1dGUoCisgICAgICAgICAgICBzcWw9ZGljdChzcWw9J3NvbWUgc3Fs JywgZXhwbGFpbl9wbGFuPU5vbmUpLAorICAgICAgICAgICAgdHJhbnNfaWQ9MTIzLAorICAgICAg ICAgICAgaHR0cF9zZXNzaW9uPWRpY3QoKQorICAgICAgICApCisKKyAgICAgICAgcmVzdWx0IHwg c2hvdWxkLmVxdWFsKGV4cGVjdGVkX3Jlc3BvbnNlKQorICAgICAgICBtYWtlX2pzb25fcmVzcG9u c2VfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICBzdWNjZXNzPTAsCisgICAg ICAgICAgICBlcnJvcm1zZz0nVHJhbnNhY3Rpb24gSUQgbm90IGZvdW5kIGluIHRoZSBzZXNzaW9u LicsCisgICAgICAgICAgICBpbmZvPSdEQVRBR1JJRF9UUkFOU0FDVElPTl9SRVFVSVJFRCcsCisg ICAgICAgICAgICBzdGF0dXM9NDA0CisgICAgICAgICkKKyAgICAgICAgaW50ZXJuYWxfc2VydmVy X2Vycm9yX21vY2suYXNzZXJ0X25vdF9jYWxsZWQoKQorICAgICAgICBzZWxmLmNvbm5lY3Rpb24u ZXhlY3V0ZV9hc3luYy5hc3NlcnRfbm90X2NhbGxlZCgpCisgICAgICAgIGxvZ2dlck1vY2suZXJy b3IuYXNzZXJ0X25vdF9jYWxsZWQoKQorICAgICAgICBzZWxmLmNvbm5lY3Rpb24uZXhlY3V0ZV92 b2lkLmFzc2VydF9ub3RfY2FsbGVkKCkKKworICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxl ZGl0b3IudXRpbHMuc3RhcnRfcnVubmluZ19xdWVyeS5nZXRfZHJpdmVyJykKKyAgICBAcGF0Y2go J3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCisgICAg ICAgICAgICcuYXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkJykKKyAgICBAcGF0 Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCisg ICAgICAgICAgICcuaW50ZXJuYWxfc2VydmVyX2Vycm9yJykKKyAgICBAcGF0Y2goJ3BnYWRtaW4u dG9vbHMuc3FsZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCisgICAgICAgICAgICcu bWFrZV9qc29uX3Jlc3BvbnNlJykKKyAgICBkZWYgdGVzdF9zdGFydF9xdWVyeV9ub190cmFuc2Fj dGlvbl9pZCgKKyAgICAgICAgc2VsZiwKKyAgICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2ss CisgICAgICAgIGludGVybmFsX3NlcnZlcl9lcnJvcl9tb2NrLAorICAgICAgICBhcHBseV9leHBs YWluX3BsYW5fd3JhcHBlcl9pZl9uZWVkZWRfbW9jaywKKyAgICAgICAgZ2V0X2RyaXZlcl9tb2Nr LAorICAgICAgICByZXF1ZXN0CisgICAgKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gU3Rh cnRSdW5uaW5nUXVlcnkgaXMgZXhlY3V0ZWQKKyAgICAgICAgQW5kIHRoZSB0cmFuc2FjdGlvbklE IGlzIG5vdCBwcmVzZW50IGluIHRoZSBncmlkRGF0YQorICAgICAgICBpdCByZXR1cm5zIGFuIGVy cm9yCisgICAgICAgICIiIgorCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVh ckRvd24pCisKKyAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2UgPSBcCisgICAgICAgICAgICBSZXNw b25zZShyZXNwb25zZT1qc29uLmR1bXBzKHsnZXJyb3Jtc2cnOiAnc29tZSB2YWx1ZSd9KSkKKyAg ICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2sucmV0dXJuX3ZhbHVlID0gZXhwZWN0ZWRfcmVz cG9uc2UKKyAgICAgICAgU3RhcnRSdW5uaW5nUXVlcnkuaXNfYmVnaW5fcmVxdWlyZWRfZm9yX3Nx bF9xdWVyeSA9IFwKKyAgICAgICAgICAgIE1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9RmFsc2UpCisg ICAgICAgIFN0YXJ0UnVubmluZ1F1ZXJ5LmlzX3JvbGxiYWNrX3N0YXRlbWVudF9yZXF1aXJlZCA9 IFwKKyAgICAgICAgICAgIE1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9RmFsc2UpCisgICAgICAgIGFw cGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZF9tb2NrLnJldHVybl92YWx1ZSA9IFwK KyAgICAgICAgICAgICdzb21lIHNxbCcKKworICAgICAgICBtYW5hZ2VyID0gc2VsZi5fX2NyZWF0 ZV9tYW5hZ2VyKAorICAgICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICBOb25lLAorICAgICAg ICAgICAgTm9uZSwKKyAgICAgICAgICAgIE5vbmUKKyAgICAgICAgKQorICAgICAgICBnZXRfZHJp dmVyX21vY2sucmV0dXJuX3ZhbHVlID0gTWFnaWNNb2NrKAorICAgICAgICAgICAgY29ubmVjdGlv bl9tYW5hZ2VyPWxhbWJkYSBzZXNzaW9uX2lkOiBtYW5hZ2VyKQorCisgICAgICAgIGJsdWVwcmlu dF9tb2NrID0gTWFnaWNNb2NrKAorICAgICAgICAgICAgaW5mb19ub3RpZmllcl90aW1lb3V0PU1h Z2ljTW9jayhnZXQ9bGFtYmRhOiA1KQorICAgICAgICApCisgICAgICAgIGxvZ2dlck1vY2sgPSBN YWdpY01vY2soZXJyb3I9TWFnaWNNb2NrKCkpCisKKyAgICAgICAgcmVzdWx0ID0gU3RhcnRSdW5u aW5nUXVlcnkoCisgICAgICAgICAgICBibHVlcHJpbnRfbW9jaywKKyAgICAgICAgICAgIGxvZ2dl ck1vY2sKKyAgICAgICAgKS5leGVjdXRlKAorICAgICAgICAgICAgc3FsPWRpY3Qoc3FsPSdzb21l IHNxbCcsIGV4cGxhaW5fcGxhbj1Ob25lKSwKKyAgICAgICAgICAgIHRyYW5zX2lkPTEyMywKKyAg ICAgICAgICAgIGh0dHBfc2Vzc2lvbj1kaWN0KGdyaWREYXRhPWRpY3QoKSkKKyAgICAgICAgKQor CisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5lcXVhbChleHBlY3RlZF9yZXNwb25zZSkKKyAgICAg ICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAg ICAgc3VjY2Vzcz0wLAorICAgICAgICAgICAgZXJyb3Jtc2c9J1RyYW5zYWN0aW9uIElEIG5vdCBm b3VuZCBpbiB0aGUgc2Vzc2lvbi4nLAorICAgICAgICAgICAgaW5mbz0nREFUQUdSSURfVFJBTlNB Q1RJT05fUkVRVUlSRUQnLAorICAgICAgICAgICAgc3RhdHVzPTQwNAorICAgICAgICApCisgICAg ICAgIGludGVybmFsX3NlcnZlcl9lcnJvcl9tb2NrLmFzc2VydF9ub3RfY2FsbGVkKCkKKyAgICAg ICAgc2VsZi5jb25uZWN0aW9uLmV4ZWN1dGVfYXN5bmMuYXNzZXJ0X25vdF9jYWxsZWQoKQorICAg ICAgICBsb2dnZXJNb2NrLmVycm9yLmFzc2VydF9ub3RfY2FsbGVkKCkKKyAgICAgICAgc2VsZi5j b25uZWN0aW9uLmV4ZWN1dGVfdm9pZC5hc3NlcnRfbm90X2NhbGxlZCgpCisKKyAgICBAcGF0Y2go J3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnkucGlja2xl JykKKyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5p bmdfcXVlcnkuZ2V0X2RyaXZlcicpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRv ci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5JworICAgICAgICAgICAnLmFwcGx5X2V4cGxhaW5f cGxhbl93cmFwcGVyX2lmX25lZWRlZCcpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVk aXRvci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5JworICAgICAgICAgICAnLmludGVybmFsX3Nl cnZlcl9lcnJvcicpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5z dGFydF9ydW5uaW5nX3F1ZXJ5JworICAgICAgICAgICAnLm1ha2VfanNvbl9yZXNwb25zZScpCisg ICAgZGVmIHRlc3Rfc3RhcnRfcXVlcnlfbm9fY29tbWFuZF9pbmZvKAorICAgICAgICBzZWxmLAor ICAgICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jaywKKyAgICAgICAgaW50ZXJuYWxfc2VydmVy X2Vycm9yX21vY2ssCisgICAgICAgIGFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRl ZF9tb2NrLAorICAgICAgICBnZXRfZHJpdmVyX21vY2ssCisgICAgICAgIHBpY2tsZV9tb2NrLAor ICAgICAgICByZXF1ZXN0CisgICAgKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gU3RhcnRS dW5uaW5nUXVlcnkgaXMgZXhlY3V0ZWQKKyAgICAgICAgQW5kIHRoZSBjb21tYW5kIGluZm9ybWF0 aW9uIGNhbm5vdCBiZSByZXRyaWV2ZWQKKyAgICAgICAgaXQgcmV0dXJucyBhbiBlcnJvcgorICAg ICAgICAiIiIKKworICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQor CisgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlID0gXAorICAgICAgICAgICAgUmVzcG9uc2UocmVz cG9uc2U9anNvbi5kdW1wcyh7J2Vycm9ybXNnJzogJ3NvbWUgdmFsdWUnfSkpCisgICAgICAgIG1h a2VfanNvbl9yZXNwb25zZV9tb2NrLnJldHVybl92YWx1ZSA9IGV4cGVjdGVkX3Jlc3BvbnNlCisg ICAgICAgIFN0YXJ0UnVubmluZ1F1ZXJ5LmlzX2JlZ2luX3JlcXVpcmVkX2Zvcl9zcWxfcXVlcnkg PSBcCisgICAgICAgICAgICBNYWdpY01vY2socmV0dXJuX3ZhbHVlPUZhbHNlKQorICAgICAgICBT dGFydFJ1bm5pbmdRdWVyeS5pc19yb2xsYmFja19zdGF0ZW1lbnRfcmVxdWlyZWQgPSBcCisgICAg ICAgICAgICBNYWdpY01vY2socmV0dXJuX3ZhbHVlPUZhbHNlKQorICAgICAgICBhcHBseV9leHBs YWluX3BsYW5fd3JhcHBlcl9pZl9uZWVkZWRfbW9jay5yZXR1cm5fdmFsdWUgPSBcCisgICAgICAg ICAgICAnc29tZSBzcWwnCisgICAgICAgIHBpY2tsZV9tb2NrLmxvYWRzLnJldHVybl92YWx1ZSA9 IE5vbmUKKworICAgICAgICBtYW5hZ2VyID0gc2VsZi5fX2NyZWF0ZV9tYW5hZ2VyKAorICAgICAg ICAgICAgRmFsc2UsCisgICAgICAgICAgICBOb25lLAorICAgICAgICAgICAgTm9uZSwKKyAgICAg ICAgICAgIE5vbmUKKyAgICAgICAgKQorICAgICAgICBnZXRfZHJpdmVyX21vY2sucmV0dXJuX3Zh bHVlID0gTWFnaWNNb2NrKAorICAgICAgICAgICAgY29ubmVjdGlvbl9tYW5hZ2VyPWxhbWJkYSBz ZXNzaW9uX2lkOiBtYW5hZ2VyKQorCisgICAgICAgIGJsdWVwcmludF9tb2NrID0gTWFnaWNNb2Nr KAorICAgICAgICAgICAgaW5mb19ub3RpZmllcl90aW1lb3V0PU1hZ2ljTW9jayhnZXQ9bGFtYmRh OiA1KQorICAgICAgICApCisgICAgICAgIGxvZ2dlck1vY2sgPSBNYWdpY01vY2soZXJyb3I9TWFn aWNNb2NrKCkpCisKKyAgICAgICAgcmVzdWx0ID0gU3RhcnRSdW5uaW5nUXVlcnkoCisgICAgICAg ICAgICBibHVlcHJpbnRfbW9jaywKKyAgICAgICAgICAgIGxvZ2dlck1vY2sKKyAgICAgICAgKS5l eGVjdXRlKAorICAgICAgICAgICAgc3FsPWRpY3Qoc3FsPSdzb21lIHNxbCcsIGV4cGxhaW5fcGxh bj1Ob25lKSwKKyAgICAgICAgICAgIHRyYW5zX2lkPTEyMywKKyAgICAgICAgICAgIGh0dHBfc2Vz c2lvbj1kaWN0KGdyaWREYXRhPXsnMTIzJzogZGljdChjb21tYW5kX29iaj0nJyl9KQorICAgICAg ICApCisKKyAgICAgICAgcmVzdWx0IHwgc2hvdWxkLmVxdWFsKGV4cGVjdGVkX3Jlc3BvbnNlKQor ICAgICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCisgICAg ICAgICAgICBkYXRhPWRpY3QoCisgICAgICAgICAgICAgICAgc3RhdHVzPUZhbHNlLAorICAgICAg ICAgICAgICAgIHJlc3VsdD0nRWl0aGVyIHRyYW5zYWN0aW9uIG9iamVjdCBvciBzZXNzaW9uIG9i amVjdCAnCisgICAgICAgICAgICAgICAgICAgICAgICdub3QgZm91bmQuJywKKyAgICAgICAgICAg ICAgICBjYW5fZWRpdD1GYWxzZSwKKyAgICAgICAgICAgICAgICBjYW5fZmlsdGVyPUZhbHNlLAor ICAgICAgICAgICAgICAgIGluZm9fbm90aWZpZXJfdGltZW91dD01LAorICAgICAgICAgICAgICAg IG5vdGlmaWVzPU5vbmUKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3JfbW9jay5hc3NlcnRfbm90X2NhbGxlZCgpCisgICAgICAgIHNlbGYuY29u bmVjdGlvbi5leGVjdXRlX2FzeW5jLmFzc2VydF9ub3RfY2FsbGVkKCkKKyAgICAgICAgbG9nZ2Vy TW9jay5lcnJvci5hc3NlcnRfbm90X2NhbGxlZCgpCisgICAgICAgIHNlbGYuY29ubmVjdGlvbi5l eGVjdXRlX3ZvaWQuYXNzZXJ0X25vdF9jYWxsZWQoKQorCisgICAgQHBhdGNoKCdwZ2FkbWluLnRv b2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5LnBpY2tsZScpCisgICAgQHBh dGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5Lmdl dF9kcml2ZXInKQorICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuc3Rh cnRfcnVubmluZ19xdWVyeScKKyAgICAgICAgICAgJy5hcHBseV9leHBsYWluX3BsYW5fd3JhcHBl cl9pZl9uZWVkZWQnKQorICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMu c3RhcnRfcnVubmluZ19xdWVyeScKKyAgICAgICAgICAgJy5pbnRlcm5hbF9zZXJ2ZXJfZXJyb3In KQorICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuc3RhcnRfcnVubmlu Z19xdWVyeScKKyAgICAgICAgICAgJy5tYWtlX2pzb25fcmVzcG9uc2UnKQorICAgIGRlZiB0ZXN0 X3N0YXJ0X3F1ZXJ5X2RiX2V4Y2VwdGlvbigKKyAgICAgICAgc2VsZiwKKyAgICAgICAgbWFrZV9q c29uX3Jlc3BvbnNlX21vY2ssCisgICAgICAgIGludGVybmFsX3NlcnZlcl9lcnJvcl9tb2NrLAor ICAgICAgICBhcHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9pZl9uZWVkZWRfbW9jaywKKyAgICAg ICAgZ2V0X2RyaXZlcl9tb2NrLAorICAgICAgICBwaWNrbGVfbW9jaywKKyAgICAgICAgcmVxdWVz dAorICAgICk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIFN0YXJ0UnVubmluZ1F1ZXJ5IGlz IGV4ZWN1dGVkCisgICAgICAgIEFuZCBleGNlcHRpb24gaGFwcGVucyB3aGlsZSByZXRyaWV2aW5n IHRoZSBkYXRhYmFzZSBkcml2ZXIKKyAgICAgICAgaXQgcmV0dXJucyBhbiBlcnJvcgorICAgICAg ICAiIiIKKworICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQorCisg ICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlID0gXAorICAgICAgICAgICAgUmVzcG9uc2UocmVzcG9u c2U9anNvbi5kdW1wcyh7J2Vycm9ybXNnJzogJ3NvbWUgdmFsdWUnfSkpCisgICAgICAgIG1ha2Vf anNvbl9yZXNwb25zZV9tb2NrLnJldHVybl92YWx1ZSA9IGV4cGVjdGVkX3Jlc3BvbnNlCisgICAg ICAgIFN0YXJ0UnVubmluZ1F1ZXJ5LmlzX2JlZ2luX3JlcXVpcmVkX2Zvcl9zcWxfcXVlcnkgPSBc CisgICAgICAgICAgICBNYWdpY01vY2socmV0dXJuX3ZhbHVlPUZhbHNlKQorICAgICAgICBTdGFy dFJ1bm5pbmdRdWVyeS5pc19yb2xsYmFja19zdGF0ZW1lbnRfcmVxdWlyZWQgPSBcCisgICAgICAg ICAgICBNYWdpY01vY2socmV0dXJuX3ZhbHVlPUZhbHNlKQorICAgICAgICBhcHBseV9leHBsYWlu X3BsYW5fd3JhcHBlcl9pZl9uZWVkZWRfbW9jay5yZXR1cm5fdmFsdWUgPSBcCisgICAgICAgICAg ICAnc29tZSBzcWwnCisgICAgICAgIHBpY2tsZV9tb2NrLmxvYWRzLnJldHVybl92YWx1ZSA9IE1h Z2ljTW9jaygKKyAgICAgICAgICAgIGNvbm5faWQ9MSwKKyAgICAgICAgICAgIHVwZGF0ZV9mZXRj aGVkX3Jvd19jbnQ9TWFnaWNNb2NrKCkKKyAgICAgICAgKQorCisgICAgICAgIHNlbGYuX19jcmVh dGVfbWFuYWdlcigKKyAgICAgICAgICAgIEZhbHNlLAorICAgICAgICAgICAgTm9uZSwKKyAgICAg ICAgICAgIE5vbmUsCisgICAgICAgICAgICBOb25lCisgICAgICAgICkKKyAgICAgICAgZ2V0X2Ry aXZlcl9tb2NrLnNpZGVfZWZmZWN0ID0gZ2V0X2RyaXZlcl9leGNlcHRpb24KKworICAgICAgICBi bHVlcHJpbnRfbW9jayA9IE1hZ2ljTW9jaygKKyAgICAgICAgICAgIGluZm9fbm90aWZpZXJfdGlt ZW91dD1NYWdpY01vY2soZ2V0PWxhbWJkYTogNSkKKyAgICAgICAgKQorICAgICAgICBsb2dnZXJN b2NrID0gTWFnaWNNb2NrKGVycm9yPU1hZ2ljTW9jaygpKQorCisgICAgICAgIHJlc3VsdCA9IFN0 YXJ0UnVubmluZ1F1ZXJ5KAorICAgICAgICAgICAgYmx1ZXByaW50X21vY2ssCisgICAgICAgICAg ICBsb2dnZXJNb2NrCisgICAgICAgICkuZXhlY3V0ZSgKKyAgICAgICAgICAgIHNxbD1kaWN0KHNx bD0nc29tZSBzcWwnLCBleHBsYWluX3BsYW49Tm9uZSksCisgICAgICAgICAgICB0cmFuc19pZD0x MjMsCisgICAgICAgICAgICBodHRwX3Nlc3Npb249ZGljdChncmlkRGF0YT17JzEyMyc6IGRpY3Qo Y29tbWFuZF9vYmo9JycpfSkKKyAgICAgICAgKQorCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5l cXVhbChleHBlY3RlZF9yZXNwb25zZSkKKyAgICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2su YXNzZXJ0X25vdF9jYWxsZWQoKQorICAgICAgICBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jay5h c3NlcnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICBlcnJvcm1zZz0nZ2V0X2RyaXZlciBleGNl cHRpb24nCisgICAgICAgICkKKyAgICAgICAgc2VsZi5jb25uZWN0aW9uLmV4ZWN1dGVfYXN5bmMu YXNzZXJ0X25vdF9jYWxsZWQoKQorICAgICAgICBsb2dnZXJNb2NrLmVycm9yLmFzc2VydF9jYWxs ZWRfd2l0aCgKKyAgICAgICAgICAgIGdldF9kcml2ZXJfZXhjZXB0aW9uCisgICAgICAgICkKKyAg ICAgICAgc2VsZi5jb25uZWN0aW9uLmV4ZWN1dGVfdm9pZC5hc3NlcnRfbm90X2NhbGxlZCgpCisK KyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdf cXVlcnkucGlja2xlJykKKyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxz LnN0YXJ0X3J1bm5pbmdfcXVlcnkuZ2V0X2RyaXZlcicpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRv b2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5JworICAgICAgICAgICAnLmFw cGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZCcpCisgICAgQHBhdGNoKCdwZ2FkbWlu LnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5JworICAgICAgICAgICAn LmludGVybmFsX3NlcnZlcl9lcnJvcicpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVk aXRvci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5JworICAgICAgICAgICAnLm1ha2VfanNvbl9y ZXNwb25zZScpCisgICAgZGVmIHRlc3Rfc3RhcnRfcXVlcnlfY29ubl9sb3N0KAorICAgICAgICBz ZWxmLAorICAgICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jaywKKyAgICAgICAgaW50ZXJuYWxf c2VydmVyX2Vycm9yX21vY2ssCisgICAgICAgIGFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lm X25lZWRlZF9tb2NrLAorICAgICAgICBnZXRfZHJpdmVyX21vY2ssCisgICAgICAgIHBpY2tsZV9t b2NrLAorICAgICAgICByZXF1ZXN0CisgICAgKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4g U3RhcnRSdW5uaW5nUXVlcnkgaXMgZXhlY3V0ZWQKKyAgICAgICAgQW5kIENvbm5lY3Rpb24gaXMg bG9zdCB3aGVuIHJldHJpZXZpbmcgdGhlIGRiIGNvbm5lY3Rpb24KKyAgICAgICAgaXQgcmV0dXJu cyBhbiBlcnJvcgorICAgICAgICAiIiIKKworICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihz ZWxmLnRlYXJEb3duKQorCisgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlID0gXAorICAgICAgICAg ICAgUmVzcG9uc2UocmVzcG9uc2U9anNvbi5kdW1wcyh7J2Vycm9ybXNnJzogJ3NvbWUgdmFsdWUn fSkpCisgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLnJldHVybl92YWx1ZSA9IGV4cGVj dGVkX3Jlc3BvbnNlCisgICAgICAgIFN0YXJ0UnVubmluZ1F1ZXJ5LmlzX2JlZ2luX3JlcXVpcmVk X2Zvcl9zcWxfcXVlcnkgPSBcCisgICAgICAgICAgICBNYWdpY01vY2socmV0dXJuX3ZhbHVlPUZh bHNlKQorICAgICAgICBTdGFydFJ1bm5pbmdRdWVyeS5pc19yb2xsYmFja19zdGF0ZW1lbnRfcmVx dWlyZWQgPSBcCisgICAgICAgICAgICBNYWdpY01vY2socmV0dXJuX3ZhbHVlPUZhbHNlKQorICAg ICAgICBhcHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9pZl9uZWVkZWRfbW9jay5yZXR1cm5fdmFs dWUgPSBcCisgICAgICAgICAgICAnc29tZSBzcWwnCisgICAgICAgIHBpY2tsZV9tb2NrLmxvYWRz LnJldHVybl92YWx1ZSA9IE1hZ2ljTW9jaygKKyAgICAgICAgICAgIGNvbm5faWQ9MSwKKyAgICAg ICAgICAgIHVwZGF0ZV9mZXRjaGVkX3Jvd19jbnQ9TWFnaWNNb2NrKCkKKyAgICAgICAgKQorCisg ICAgICAgIG1hbmFnZXIgPSBzZWxmLl9fY3JlYXRlX21hbmFnZXIoCisgICAgICAgICAgICBGYWxz ZSwKKyAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICBOb25lLAorICAgICAgICAgICAgQ29u bmVjdGlvbkxvc3QoJzEnLCAnMicsICczJykKKyAgICAgICAgKQorICAgICAgICBnZXRfZHJpdmVy X21vY2sucmV0dXJuX3ZhbHVlID0gTWFnaWNNb2NrKAorICAgICAgICAgICAgY29ubmVjdGlvbl9t YW5hZ2VyPWxhbWJkYSBzZXNzaW9uX2lkOiBtYW5hZ2VyKQorCisgICAgICAgIGJsdWVwcmludF9t b2NrID0gTWFnaWNNb2NrKAorICAgICAgICAgICAgaW5mb19ub3RpZmllcl90aW1lb3V0PU1hZ2lj TW9jayhnZXQ9bGFtYmRhOiA1KQorICAgICAgICApCisgICAgICAgIGxvZ2dlck1vY2sgPSBNYWdp Y01vY2soZXJyb3I9TWFnaWNNb2NrKCkpCisKKyAgICAgICAgKGxhbWJkYTogU3RhcnRSdW5uaW5n UXVlcnkoCisgICAgICAgICAgICBibHVlcHJpbnRfbW9jaywKKyAgICAgICAgICAgIGxvZ2dlck1v Y2sKKyAgICAgICAgKS5leGVjdXRlKAorICAgICAgICAgICAgc3FsPWRpY3Qoc3FsPSdzb21lIHNx bCcsIGV4cGxhaW5fcGxhbj1Ob25lKSwKKyAgICAgICAgICAgIHRyYW5zX2lkPTEyMywKKyAgICAg ICAgICAgIGh0dHBfc2Vzc2lvbj1kaWN0KGdyaWREYXRhPXsnMTIzJzogZGljdChjb21tYW5kX29i aj0nJyl9KQorICAgICAgICApKSB8IHNob3VsZC5yYWlzZXMoQ29ubmVjdGlvbkxvc3QpCisKKyAg ICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2suYXNzZXJ0X25vdF9jYWxsZWQoKQorICAgICAg ICBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jay5hc3NlcnRfbm90X2NhbGxlZCgpCisgICAgICAg IHNlbGYuY29ubmVjdGlvbi5leGVjdXRlX2FzeW5jLmFzc2VydF9ub3RfY2FsbGVkKCkKKyAgICAg ICAgbG9nZ2VyTW9jay5lcnJvci5hc3NlcnRfbm90X2NhbGxlZCgpCisgICAgICAgIHNlbGYuY29u bmVjdGlvbi5leGVjdXRlX3ZvaWQuYXNzZXJ0X25vdF9jYWxsZWQoKQogCisgICAgQHBhdGNoKCdw Z2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5LnBpY2tsZScp CisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5uaW5n X3F1ZXJ5LmdldF9kcml2ZXInKQogICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxlZGl0b3Iu dXRpbHMuc3RhcnRfcnVubmluZ19xdWVyeScKICAgICAgICAgICAgJy5hcHBseV9leHBsYWluX3Bs YW5fd3JhcHBlcl9pZl9uZWVkZWQnKQorICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxlZGl0 b3IudXRpbHMuc3RhcnRfcnVubmluZ19xdWVyeScKKyAgICAgICAgICAgJy5pbnRlcm5hbF9zZXJ2 ZXJfZXJyb3InKQogICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuc3Rh cnRfcnVubmluZ19xdWVyeScKICAgICAgICAgICAgJy5tYWtlX2pzb25fcmVzcG9uc2UnKQorICAg IGRlZiB0ZXN0X3N0YXJ0X3F1ZXJ5X3NzaGNvbm5fbG9zdCgKKyAgICAgICAgc2VsZiwKKyAgICAg ICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2ssCisgICAgICAgIGludGVybmFsX3NlcnZlcl9lcnJv cl9tb2NrLAorICAgICAgICBhcHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9pZl9uZWVkZWRfbW9j aywKKyAgICAgICAgZ2V0X2RyaXZlcl9tb2NrLAorICAgICAgICBwaWNrbGVfbW9jaywKKyAgICAg ICAgcmVxdWVzdAorICAgICk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIFN0YXJ0UnVubmlu Z1F1ZXJ5IGlzIGV4ZWN1dGVkCisgICAgICAgIEFuZCBTU0hUdW5uZWxDb25uZWN0aW9uTG9zdCBp cyBsb3N0IHdoZW4gcmV0cmlldmluZyB0aGUgZGIgY29ubmVjdGlvbgorICAgICAgICBpdCByZXR1 cm5zIGFuIGVycm9yCisgICAgICAgICIiIgorCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVy KHNlbGYudGVhckRvd24pCisKKyAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2UgPSBcCisgICAgICAg ICAgICBSZXNwb25zZShyZXNwb25zZT1qc29uLmR1bXBzKHsnZXJyb3Jtc2cnOiAnc29tZSB2YWx1 ZSd9KSkKKyAgICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2sucmV0dXJuX3ZhbHVlID0gZXhw ZWN0ZWRfcmVzcG9uc2UKKyAgICAgICAgU3RhcnRSdW5uaW5nUXVlcnkuaXNfYmVnaW5fcmVxdWly ZWRfZm9yX3NxbF9xdWVyeSA9IFwKKyAgICAgICAgICAgIE1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9 RmFsc2UpCisgICAgICAgIFN0YXJ0UnVubmluZ1F1ZXJ5LmlzX3JvbGxiYWNrX3N0YXRlbWVudF9y ZXF1aXJlZCA9IFwKKyAgICAgICAgICAgIE1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9RmFsc2UpCisg ICAgICAgIGFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZF9tb2NrLnJldHVybl92 YWx1ZSA9IFwKKyAgICAgICAgICAgICdzb21lIHNxbCcKKyAgICAgICAgcGlja2xlX21vY2subG9h ZHMucmV0dXJuX3ZhbHVlID0gTWFnaWNNb2NrKAorICAgICAgICAgICAgY29ubl9pZD0xLAorICAg ICAgICAgICAgdXBkYXRlX2ZldGNoZWRfcm93X2NudD1NYWdpY01vY2soKQorICAgICAgICApCisK KyAgICAgICAgbWFuYWdlciA9IHNlbGYuX19jcmVhdGVfbWFuYWdlcigKKyAgICAgICAgICAgIEZh bHNlLAorICAgICAgICAgICAgTm9uZSwKKyAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICBT U0hUdW5uZWxDb25uZWN0aW9uTG9zdCgnMS4xLjEuMScpCisgICAgICAgICkKKyAgICAgICAgZ2V0 X2RyaXZlcl9tb2NrLnJldHVybl92YWx1ZSA9IE1hZ2ljTW9jaygKKyAgICAgICAgICAgIGNvbm5l Y3Rpb25fbWFuYWdlcj1sYW1iZGEgc2Vzc2lvbl9pZDogbWFuYWdlcikKKworICAgICAgICBibHVl cHJpbnRfbW9jayA9IE1hZ2ljTW9jaygKKyAgICAgICAgICAgIGluZm9fbm90aWZpZXJfdGltZW91 dD1NYWdpY01vY2soZ2V0PWxhbWJkYTogNSkKKyAgICAgICAgKQorICAgICAgICBsb2dnZXJNb2Nr ID0gTWFnaWNNb2NrKGVycm9yPU1hZ2ljTW9jaygpKQorCisgICAgICAgIChsYW1iZGE6IFN0YXJ0 UnVubmluZ1F1ZXJ5KAorICAgICAgICAgICAgYmx1ZXByaW50X21vY2ssCisgICAgICAgICAgICBs b2dnZXJNb2NrCisgICAgICAgICkuZXhlY3V0ZSgKKyAgICAgICAgICAgIHNxbD1kaWN0KHNxbD0n c29tZSBzcWwnLCBleHBsYWluX3BsYW49Tm9uZSksCisgICAgICAgICAgICB0cmFuc19pZD0xMjMs CisgICAgICAgICAgICBodHRwX3Nlc3Npb249ZGljdChncmlkRGF0YT17JzEyMyc6IGRpY3QoY29t bWFuZF9vYmo9JycpfSkKKyAgICAgICAgKSkgfCBzaG91bGQucmFpc2VzKFNTSFR1bm5lbENvbm5l Y3Rpb25Mb3N0KQorCisgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLmFzc2VydF9ub3Rf Y2FsbGVkKCkKKyAgICAgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2suYXNzZXJ0X25vdF9j YWxsZWQoKQorICAgICAgICBzZWxmLmNvbm5lY3Rpb24uZXhlY3V0ZV9hc3luYy5hc3NlcnRfbm90 X2NhbGxlZCgpCisgICAgICAgIGxvZ2dlck1vY2suZXJyb3IuYXNzZXJ0X25vdF9jYWxsZWQoKQor ICAgICAgICBzZWxmLmNvbm5lY3Rpb24uZXhlY3V0ZV92b2lkLmFzc2VydF9ub3RfY2FsbGVkKCkK KwogICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuc3RhcnRfcnVubmlu Z19xdWVyeS5waWNrbGUnKQogICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRp bHMuc3RhcnRfcnVubmluZ19xdWVyeS5nZXRfZHJpdmVyJykKKyAgICBAcGF0Y2goJ3BnYWRtaW4u dG9vbHMuc3FsZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCisgICAgICAgICAgICcu YXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkJykKICAgICBAcGF0Y2goJ3BnYWRt aW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCiAgICAgICAgICAg ICcuaW50ZXJuYWxfc2VydmVyX2Vycm9yJykKKyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3Fs ZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCisgICAgICAgICAgICcubWFrZV9qc29u X3Jlc3BvbnNlJykKKyAgICBkZWYgdGVzdF9zdGFydF9xdWVyeV9mYWlsX3RvX2Nvbm5lY3QoCisg ICAgICAgIHNlbGYsCisgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLAorICAgICAgICBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jaywKKyAgICAgICAgYXBwbHlfZXhwbGFpbl9wbGFuX3dy YXBwZXJfaWZfbmVlZGVkX21vY2ssCisgICAgICAgIGdldF9kcml2ZXJfbW9jaywKKyAgICAgICAg cGlja2xlX21vY2ssCisgICAgICAgIHJlcXVlc3QKKyAgICApOgorICAgICAgICAiIiIKKyAgICAg ICAgV2hlbiBTdGFydFJ1bm5pbmdRdWVyeSBpcyBleGVjdXRlZAorICAgICAgICBBbmQgZmFpbHVy ZSB0byBjb25uZWN0IHRvIHRoZSBzZXJ2ZXIgb2NjdXJzCisgICAgICAgIGl0IHJldHVybnMgYW4g ZXJyb3IKKyAgICAgICAgIiIiCisKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50 ZWFyRG93bikKKworICAgICAgICBleHBlY3RlZF9yZXNwb25zZSA9IFwKKyAgICAgICAgICAgIFJl c3BvbnNlKHJlc3BvbnNlPWpzb24uZHVtcHMoeydlcnJvcm1zZyc6ICdzb21lIHZhbHVlJ30pKQor ICAgICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jay5yZXR1cm5fdmFsdWUgPSBleHBlY3RlZF9y ZXNwb25zZQorICAgICAgICBTdGFydFJ1bm5pbmdRdWVyeS5pc19iZWdpbl9yZXF1aXJlZF9mb3Jf c3FsX3F1ZXJ5ID0gXAorICAgICAgICAgICAgTWFnaWNNb2NrKHJldHVybl92YWx1ZT1GYWxzZSkK KyAgICAgICAgU3RhcnRSdW5uaW5nUXVlcnkuaXNfcm9sbGJhY2tfc3RhdGVtZW50X3JlcXVpcmVk ID0gXAorICAgICAgICAgICAgTWFnaWNNb2NrKHJldHVybl92YWx1ZT1GYWxzZSkKKyAgICAgICAg YXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkX21vY2sucmV0dXJuX3ZhbHVlID0g XAorICAgICAgICAgICAgJ3NvbWUgc3FsJworICAgICAgICBwaWNrbGVfbW9jay5sb2Fkcy5yZXR1 cm5fdmFsdWUgPSBNYWdpY01vY2soCisgICAgICAgICAgICBjb25uX2lkPTEsCisgICAgICAgICAg ICB1cGRhdGVfZmV0Y2hlZF9yb3dfY250PU1hZ2ljTW9jaygpCisgICAgICAgICkKKworICAgICAg ICBzZWxmLl9fY3JlYXRlX21hbmFnZXIoCisgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAg IFtGYWxzZSwgJ1VuYWJsZSB0byBjb25uZWN0IHRvIHNlcnZlciddLAorICAgICAgICAgICAgTm9u ZSwKKyAgICAgICAgICAgIE5vbmUKKyAgICAgICAgKQorICAgICAgICBnZXRfZHJpdmVyX21vY2su c2lkZV9lZmZlY3QgPSBnZXRfY29ubmVjdGlvbl9sb3N0X2V4Y2VwdGlvbgorCisgICAgICAgIGJs dWVwcmludF9tb2NrID0gTWFnaWNNb2NrKAorICAgICAgICAgICAgaW5mb19ub3RpZmllcl90aW1l b3V0PU1hZ2ljTW9jayhnZXQ9bGFtYmRhOiA1KQorICAgICAgICApCisgICAgICAgIGxvZ2dlck1v Y2sgPSBNYWdpY01vY2soZXJyb3I9TWFnaWNNb2NrKCkpCisKKyAgICAgICAgcmVzdWx0ID0gU3Rh cnRSdW5uaW5nUXVlcnkoCisgICAgICAgICAgICBibHVlcHJpbnRfbW9jaywKKyAgICAgICAgICAg IGxvZ2dlck1vY2sKKyAgICAgICAgKS5leGVjdXRlKAorICAgICAgICAgICAgc3FsPWRpY3Qoc3Fs PSdzb21lIHNxbCcsIGV4cGxhaW5fcGxhbj1Ob25lKSwKKyAgICAgICAgICAgIHRyYW5zX2lkPTEy MywKKyAgICAgICAgICAgIGh0dHBfc2Vzc2lvbj1kaWN0KGdyaWREYXRhPXsnMTIzJzogZGljdChj b21tYW5kX29iaj0nJyl9KQorICAgICAgICApCisKKyAgICAgICAgcmVzdWx0IHwgc2hvdWxkLmVx dWFsKGV4cGVjdGVkX3Jlc3BvbnNlKQorCisgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2Nr LmFzc2VydF9ub3RfY2FsbGVkKCkKKyAgICAgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2su YXNzZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgZXJyb3Jtc2c9J1VuYWJsZSB0byBjb25u ZWN0IHRvIHNlcnZlcicKKyAgICAgICAgKQorICAgICAgICBzZWxmLmNvbm5lY3Rpb24uZXhlY3V0 ZV9hc3luYy5hc3NlcnRfbm90X2NhbGxlZCgpCisgICAgICAgIGxvZ2dlck1vY2suZXJyb3IuYXNz ZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgZ2V0X2Nvbm5lY3Rpb25fbG9zdF9leGNlcHRp b24KKyAgICAgICAgKQorICAgICAgICBzZWxmLmNvbm5lY3Rpb24uZXhlY3V0ZV92b2lkLmFzc2Vy dF9ub3RfY2FsbGVkKCkKKwogICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRp bHMuc3RhcnRfcnVubmluZ19xdWVyeScKICAgICAgICAgICAgJy51cGRhdGVfc2Vzc2lvbl9ncmlk X3RyYW5zYWN0aW9uJykKLSAgICBkZWYgcnVuVGVzdChzZWxmLCB1cGRhdGVfc2Vzc2lvbl9ncmlk X3RyYW5zYWN0aW9uX21vY2ssCi0gICAgICAgICAgICAgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9y X21vY2ssIGdldF9kcml2ZXJfbW9jaywgcGlja2xlX21vY2ssCi0gICAgICAgICAgICAgICAgbWFr ZV9qc29uX3Jlc3BvbnNlX21vY2ssCi0gICAgICAgICAgICAgICAgYXBwbHlfZXhwbGFpbl9wbGFu X3dyYXBwZXJfaWZfbmVlZGVkX21vY2spOgotICAgICAgICAiIiJDaGVjayBjb3JyZWN0IGZ1bmN0 aW9uIGlzIGNhbGxlZCB0byBoYW5kbGUgdG8gcnVuIHF1ZXJ5LiIiIgotICAgICAgICBzZWxmLmNv bm5lY3Rpb24gPSBOb25lCi0KLSAgICAgICAgc2VsZi5sb2dnZXJNb2NrID0gTWFnaWNNb2NrKGVy cm9yPU1hZ2ljTW9jaygpKQotICAgICAgICBleHBlY3RlZF9yZXNwb25zZSA9IFJlc3BvbnNlKAot ICAgICAgICAgICAgcmVzcG9uc2U9anNvbi5kdW1wcyh7J2Vycm9ybXNnJzogJ3NvbWUgdmFsdWUn fSkpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5u aW5nX3F1ZXJ5LnBpY2tsZScpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51 dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5LmdldF9kcml2ZXInKQorICAgIEBwYXRjaCgncGdhZG1p bi50b29scy5zcWxlZGl0b3IudXRpbHMuc3RhcnRfcnVubmluZ19xdWVyeScKKyAgICAgICAgICAg Jy5hcHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9pZl9uZWVkZWQnKQorICAgIEBwYXRjaCgncGdh ZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuc3RhcnRfcnVubmluZ19xdWVyeScKKyAgICAgICAg ICAgJy5pbnRlcm5hbF9zZXJ2ZXJfZXJyb3InKQorICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5z cWxlZGl0b3IudXRpbHMuc3RhcnRfcnVubmluZ19xdWVyeScKKyAgICAgICAgICAgJy5tYWtlX2pz b25fcmVzcG9uc2UnKQorICAgIGRlZiB0ZXN0X3N0YXJ0X3F1ZXJ5X2ZhaWxfdG9fY29ubmVjdCgK KyAgICAgICAgc2VsZiwKKyAgICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2ssCisgICAgICAg IGludGVybmFsX3NlcnZlcl9lcnJvcl9tb2NrLAorICAgICAgICBhcHBseV9leHBsYWluX3BsYW5f d3JhcHBlcl9pZl9uZWVkZWRfbW9jaywKKyAgICAgICAgZ2V0X2RyaXZlcl9tb2NrLAorICAgICAg ICBwaWNrbGVfbW9jaywKKyAgICAgICAgdXBkYXRlX3Nlc3Npb25fZ3JpZF90cmFuc2FjdGlvbl9t b2NrLAorICAgICAgICByZXF1ZXN0CisgICAgKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4g U3RhcnRSdW5uaW5nUXVlcnkgaXMgZXhlY3V0ZWQKKyAgICAgICAgQW5kIHRoZSBzZXJ2ZXIgaXMg Y29ubmVjdGVkIGFuZCBzdGFydCBxdWVyeSBhc3luYworICAgICAgICBpdCByZXR1cm5zIGEgc3Vj Y2VzcyBtZXNzYWdlCisgICAgICAgICIiIgorCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVy KHNlbGYudGVhckRvd24pCisKKyAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2UgPSBcCisgICAgICAg ICAgICBSZXNwb25zZShyZXNwb25zZT1qc29uLmR1bXBzKHsnZXJyb3Jtc2cnOiAnc29tZSB2YWx1 ZSd9KSkKICAgICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2sucmV0dXJuX3ZhbHVlID0gZXhw ZWN0ZWRfcmVzcG9uc2UKLSAgICAgICAgaWYgc2VsZi5leHBlY3RfaW50ZXJuYWxfc2VydmVyX2Vy cm9yX2NhbGxlZF93aXRoIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgaW50ZXJuYWxfc2VydmVy X2Vycm9yX21vY2sucmV0dXJuX3ZhbHVlID0gZXhwZWN0ZWRfcmVzcG9uc2UKLSAgICAgICAgcGlj a2xlX21vY2subG9hZHMucmV0dXJuX3ZhbHVlID0gc2VsZi5waWNrbGVfbG9hZF9yZXR1cm4KKwor ICAgICAgICBTdGFydFJ1bm5pbmdRdWVyeS5pc19iZWdpbl9yZXF1aXJlZF9mb3Jfc3FsX3F1ZXJ5 ID0gXAorICAgICAgICAgICAgTWFnaWNNb2NrKHJldHVybl92YWx1ZT1GYWxzZSkKKyAgICAgICAg U3RhcnRSdW5uaW5nUXVlcnkuaXNfcm9sbGJhY2tfc3RhdGVtZW50X3JlcXVpcmVkID0gXAorICAg ICAgICAgICAgTWFnaWNNb2NrKHJldHVybl92YWx1ZT1GYWxzZSkKKyAgICAgICAgYXBwbHlfZXhw bGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkX21vY2sucmV0dXJuX3ZhbHVlID0gXAorICAgICAg ICAgICAgJ3NvbWUgc3FsJworICAgICAgICBwaWNrbGVfbW9jay5sb2Fkcy5yZXR1cm5fdmFsdWUg PSBNYWdpY01vY2soCisgICAgICAgICAgICBjb25uX2lkPTEsCisgICAgICAgICAgICB1cGRhdGVf ZmV0Y2hlZF9yb3dfY250PU1hZ2ljTW9jaygpLAorICAgICAgICAgICAgc2V0X2Nvbm5lY3Rpb25f aWQ9TWFnaWNNb2NrKCksCisgICAgICAgICAgICBhdXRvX2NvbW1pdD1UcnVlLAorICAgICAgICAg ICAgYXV0b19yb2xsYmFjaz1GYWxzZSwKKyAgICAgICAgICAgIGNhbl9lZGl0PWxhbWJkYTogVHJ1 ZSwKKyAgICAgICAgICAgIGNhbl9maWx0ZXI9bGFtYmRhOiBUcnVlCisgICAgICAgICkKKworICAg ICAgICBtYW5hZ2VyID0gc2VsZi5fX2NyZWF0ZV9tYW5hZ2VyKAorICAgICAgICAgICAgRmFsc2Us CisgICAgICAgICAgICBOb25lLAorICAgICAgICAgICAgW1RydWUsICdhc3luYyBmdW5jdGlvbiBy ZXN1bHQgb3V0cHV0J10sCisgICAgICAgICAgICBOb25lCisgICAgICAgICkKKyAgICAgICAgZ2V0 X2RyaXZlcl9tb2NrLnJldHVybl92YWx1ZSA9IE1hZ2ljTW9jaygKKyAgICAgICAgICAgIGNvbm5l Y3Rpb25fbWFuYWdlcj1sYW1iZGEgc2Vzc2lvbl9pZDogbWFuYWdlcikKKwogICAgICAgICBibHVl cHJpbnRfbW9jayA9IE1hZ2ljTW9jaygKLSAgICAgICAgICAgIGluZm9fbm90aWZpZXJfdGltZW91 dD1NYWdpY01vY2soZ2V0PWxhbWJkYTogNSkpCisgICAgICAgICAgICBpbmZvX25vdGlmaWVyX3Rp bWVvdXQ9TWFnaWNNb2NrKGdldD1sYW1iZGE6IDUpCisgICAgICAgICkKKyAgICAgICAgbG9nZ2Vy TW9jayA9IE1hZ2ljTW9jayhlcnJvcj1NYWdpY01vY2soKSkKKworICAgICAgICByZXN1bHQgPSBT dGFydFJ1bm5pbmdRdWVyeSgKKyAgICAgICAgICAgIGJsdWVwcmludF9tb2NrLAorICAgICAgICAg ICAgbG9nZ2VyTW9jaworICAgICAgICApLmV4ZWN1dGUoCisgICAgICAgICAgICBzcWw9ZGljdChz cWw9J3NvbWUgc3FsJywgZXhwbGFpbl9wbGFuPU5vbmUpLAorICAgICAgICAgICAgdHJhbnNfaWQ9 MTIzLAorICAgICAgICAgICAgaHR0cF9zZXNzaW9uPWRpY3QoZ3JpZERhdGE9eycxMjMnOiBkaWN0 KGNvbW1hbmRfb2JqPScnKX0pCisgICAgICAgICkKIAotICAgICAgICAjIFNhdmUgdmFsdWUgZm9y IHRoZSBsYXRlciB1c2UKLSAgICAgICAgc2VsZi5pc19iZWdpbl9yZXF1aXJlZF9mb3Jfc3FsX3F1 ZXJ5ID0gXAotICAgICAgICAgICAgU3RhcnRSdW5uaW5nUXVlcnkuaXNfYmVnaW5fcmVxdWlyZWRf Zm9yX3NxbF9xdWVyeQotICAgICAgICBzZWxmLmlzX3JvbGxiYWNrX3N0YXRlbWVudF9yZXF1aXJl ZCA9IFwKLSAgICAgICAgICAgIFN0YXJ0UnVubmluZ1F1ZXJ5LmlzX3JvbGxiYWNrX3N0YXRlbWVu dF9yZXF1aXJlZAorICAgICAgICByZXN1bHQgfCBzaG91bGQuZXF1YWwoZXhwZWN0ZWRfcmVzcG9u c2UpCiAKLSAgICAgICAgaWYgc2VsZi5pc19iZWdpbl9yZXF1aXJlZDoKLSAgICAgICAgICAgIFN0 YXJ0UnVubmluZ1F1ZXJ5LmlzX2JlZ2luX3JlcXVpcmVkX2Zvcl9zcWxfcXVlcnkgPSBNYWdpY01v Y2soCi0gICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPVRydWUKLSAgICAgICAgICAgICkKLSAg ICAgICAgZWxzZToKLSAgICAgICAgICAgIFN0YXJ0UnVubmluZ1F1ZXJ5LmlzX2JlZ2luX3JlcXVp cmVkX2Zvcl9zcWxfcXVlcnkgPSBNYWdpY01vY2soCi0gICAgICAgICAgICAgICAgcmV0dXJuX3Zh bHVlPUZhbHNlCisgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLmFzc2VydF9jYWxsZWRf d2l0aCgKKyAgICAgICAgICAgIGRhdGE9ZGljdCgKKyAgICAgICAgICAgICAgICBzdGF0dXM9VHJ1 ZSwKKyAgICAgICAgICAgICAgICByZXN1bHQ9J2FzeW5jIGZ1bmN0aW9uIHJlc3VsdCBvdXRwdXQn LAorICAgICAgICAgICAgICAgIGNhbl9lZGl0PVRydWUsCisgICAgICAgICAgICAgICAgY2FuX2Zp bHRlcj1UcnVlLAorICAgICAgICAgICAgICAgIGluZm9fbm90aWZpZXJfdGltZW91dD01LAorICAg ICAgICAgICAgICAgIG5vdGlmaWVzPU5vbmUKICAgICAgICAgICAgICkKLSAgICAgICAgaWYgc2Vs Zi5pc19yb2xsYmFja19yZXF1aXJlZDoKLSAgICAgICAgICAgIFN0YXJ0UnVubmluZ1F1ZXJ5Lmlz X3JvbGxiYWNrX3N0YXRlbWVudF9yZXF1aXJlZCA9IE1hZ2ljTW9jaygKLSAgICAgICAgICAgICAg ICByZXR1cm5fdmFsdWU9VHJ1ZQorICAgICAgICApCisKKyAgICAgICAgaW50ZXJuYWxfc2VydmVy X2Vycm9yX21vY2suYXNzZXJ0X25vdF9jYWxsZWQoKQorICAgICAgICBzZWxmLmNvbm5lY3Rpb24u ZXhlY3V0ZV9hc3luYy5hc3NlcnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICAnc29tZSBzcWwn CisgICAgICAgICkKKyAgICAgICAgbG9nZ2VyTW9jay5lcnJvci5hc3NlcnRfbm90X2NhbGxlZCgp CisgICAgICAgIHNlbGYuY29ubmVjdGlvbi5leGVjdXRlX3ZvaWQuYXNzZXJ0X25vdF9jYWxsZWQo KQorCisgICAgICAgIGFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZF9tb2NrLmFz c2VydF9jYWxsZWRfd2l0aCgKKyAgICAgICAgICAgIG1hbmFnZXIsCisgICAgICAgICAgICBkaWN0 KHNxbD0nc29tZSBzcWwnLCBleHBsYWluX3BsYW49Tm9uZSkKKyAgICAgICAgKQorCisgICAgQHBh dGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5Jwor ICAgICAgICAgICAnLnVwZGF0ZV9zZXNzaW9uX2dyaWRfdHJhbnNhY3Rpb24nKQorICAgIEBwYXRj aCgncGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuc3RhcnRfcnVubmluZ19xdWVyeS5waWNr bGUnKQorICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuc3RhcnRfcnVu bmluZ19xdWVyeS5nZXRfZHJpdmVyJykKKyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRp dG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCisgICAgICAgICAgICcuYXBwbHlfZXhwbGFp bl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkJykKKyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3Fs ZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCisgICAgICAgICAgICcuaW50ZXJuYWxf c2VydmVyX2Vycm9yJykKKyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxz LnN0YXJ0X3J1bm5pbmdfcXVlcnknCisgICAgICAgICAgICcubWFrZV9qc29uX3Jlc3BvbnNlJykK KyAgICBkZWYgdGVzdF9zdGFydF9xdWVyeV9iZWdpbl9yZXF1aXJlZCgKKyAgICAgICAgc2VsZiwK KyAgICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2ssCisgICAgICAgIGludGVybmFsX3NlcnZl cl9lcnJvcl9tb2NrLAorICAgICAgICBhcHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9pZl9uZWVk ZWRfbW9jaywKKyAgICAgICAgZ2V0X2RyaXZlcl9tb2NrLAorICAgICAgICBwaWNrbGVfbW9jaywK KyAgICAgICAgdXBkYXRlX3Nlc3Npb25fZ3JpZF90cmFuc2FjdGlvbl9tb2NrLAorICAgICAgICBy ZXF1ZXN0CisgICAgKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gU3RhcnRSdW5uaW5nUXVl cnkgaXMgZXhlY3V0ZWQKKyAgICAgICAgQW5kIHRoZSBzZXJ2ZXIgaXMgY29ubmVjdGVkIGFuZCBz dGFydCBxdWVyeSBhc3luYworICAgICAgICBBbmQgYmVnaW4gaXMgcmVxdWlyZWQKKyAgICAgICAg aXQgcmV0dXJucyBhIHN1Y2Nlc3MgbWVzc2FnZQorICAgICAgICAiIiIKKworICAgICAgICByZXF1 ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIGV4cGVjdGVkX3Jlc3Bv bnNlID0gXAorICAgICAgICAgICAgUmVzcG9uc2UocmVzcG9uc2U9anNvbi5kdW1wcyh7J2Vycm9y bXNnJzogJ3NvbWUgdmFsdWUnfSkpCisgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLnJl dHVybl92YWx1ZSA9IGV4cGVjdGVkX3Jlc3BvbnNlCisKKyAgICAgICAgU3RhcnRSdW5uaW5nUXVl cnkuaXNfYmVnaW5fcmVxdWlyZWRfZm9yX3NxbF9xdWVyeSA9IFwKKyAgICAgICAgICAgIE1hZ2lj TW9jayhyZXR1cm5fdmFsdWU9VHJ1ZSkKKyAgICAgICAgU3RhcnRSdW5uaW5nUXVlcnkuaXNfcm9s bGJhY2tfc3RhdGVtZW50X3JlcXVpcmVkID0gXAorICAgICAgICAgICAgTWFnaWNNb2NrKHJldHVy bl92YWx1ZT1GYWxzZSkKKyAgICAgICAgYXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVl ZGVkX21vY2sucmV0dXJuX3ZhbHVlID0gXAorICAgICAgICAgICAgJ3NvbWUgc3FsJworICAgICAg ICBwaWNrbGVfbW9jay5sb2Fkcy5yZXR1cm5fdmFsdWUgPSBNYWdpY01vY2soCisgICAgICAgICAg ICBjb25uX2lkPTEsCisgICAgICAgICAgICB1cGRhdGVfZmV0Y2hlZF9yb3dfY250PU1hZ2ljTW9j aygpLAorICAgICAgICAgICAgc2V0X2Nvbm5lY3Rpb25faWQ9TWFnaWNNb2NrKCksCisgICAgICAg ICAgICBhdXRvX2NvbW1pdD1UcnVlLAorICAgICAgICAgICAgYXV0b19yb2xsYmFjaz1GYWxzZSwK KyAgICAgICAgICAgIGNhbl9lZGl0PWxhbWJkYTogVHJ1ZSwKKyAgICAgICAgICAgIGNhbl9maWx0 ZXI9bGFtYmRhOiBUcnVlCisgICAgICAgICkKKworICAgICAgICBtYW5hZ2VyID0gc2VsZi5fX2Ny ZWF0ZV9tYW5hZ2VyKAorICAgICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICBOb25lLAorICAg ICAgICAgICAgW1RydWUsICdhc3luYyBmdW5jdGlvbiByZXN1bHQgb3V0cHV0J10sCisgICAgICAg ICAgICBOb25lCisgICAgICAgICkKKyAgICAgICAgZ2V0X2RyaXZlcl9tb2NrLnJldHVybl92YWx1 ZSA9IE1hZ2ljTW9jaygKKyAgICAgICAgICAgIGNvbm5lY3Rpb25fbWFuYWdlcj1sYW1iZGEgc2Vz c2lvbl9pZDogbWFuYWdlcikKKworICAgICAgICBibHVlcHJpbnRfbW9jayA9IE1hZ2ljTW9jaygK KyAgICAgICAgICAgIGluZm9fbm90aWZpZXJfdGltZW91dD1NYWdpY01vY2soZ2V0PWxhbWJkYTog NSkKKyAgICAgICAgKQorICAgICAgICBsb2dnZXJNb2NrID0gTWFnaWNNb2NrKGVycm9yPU1hZ2lj TW9jaygpKQorCisgICAgICAgIHJlc3VsdCA9IFN0YXJ0UnVubmluZ1F1ZXJ5KAorICAgICAgICAg ICAgYmx1ZXByaW50X21vY2ssCisgICAgICAgICAgICBsb2dnZXJNb2NrCisgICAgICAgICkuZXhl Y3V0ZSgKKyAgICAgICAgICAgIHNxbD1kaWN0KHNxbD0nc29tZSBzcWwnLCBleHBsYWluX3BsYW49 Tm9uZSksCisgICAgICAgICAgICB0cmFuc19pZD0xMjMsCisgICAgICAgICAgICBodHRwX3Nlc3Np b249ZGljdChncmlkRGF0YT17JzEyMyc6IGRpY3QoY29tbWFuZF9vYmo9JycpfSkKKyAgICAgICAg KQorCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5lcXVhbChleHBlY3RlZF9yZXNwb25zZSkKKwor ICAgICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCisgICAg ICAgICAgICBkYXRhPWRpY3QoCisgICAgICAgICAgICAgICAgc3RhdHVzPVRydWUsCisgICAgICAg ICAgICAgICAgcmVzdWx0PSdhc3luYyBmdW5jdGlvbiByZXN1bHQgb3V0cHV0JywKKyAgICAgICAg ICAgICAgICBjYW5fZWRpdD1UcnVlLAorICAgICAgICAgICAgICAgIGNhbl9maWx0ZXI9VHJ1ZSwK KyAgICAgICAgICAgICAgICBpbmZvX25vdGlmaWVyX3RpbWVvdXQ9NSwKKyAgICAgICAgICAgICAg ICBub3RpZmllcz1Ob25lCiAgICAgICAgICAgICApCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg ICBTdGFydFJ1bm5pbmdRdWVyeS5pc19yb2xsYmFja19zdGF0ZW1lbnRfcmVxdWlyZWQgPSBNYWdp Y01vY2soCi0gICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPUZhbHNlCisgICAgICAgICkKKwor ICAgICAgICBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jay5hc3NlcnRfbm90X2NhbGxlZCgpCisg ICAgICAgIHNlbGYuY29ubmVjdGlvbi5leGVjdXRlX2FzeW5jLmFzc2VydF9jYWxsZWRfd2l0aCgK KyAgICAgICAgICAgICdzb21lIHNxbCcKKyAgICAgICAgKQorICAgICAgICBsb2dnZXJNb2NrLmVy cm9yLmFzc2VydF9ub3RfY2FsbGVkKCkKKyAgICAgICAgc2VsZi5jb25uZWN0aW9uLmV4ZWN1dGVf dm9pZC5hc3NlcnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICAnQkVHSU47JworICAgICAgICAp CisKKyAgICAgICAgYXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkX21vY2suYXNz ZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgbWFuYWdlciwKKyAgICAgICAgICAgIGRpY3Qo c3FsPSdzb21lIHNxbCcsIGV4cGxhaW5fcGxhbj1Ob25lKQorICAgICAgICApCisKKyAgICBAcGF0 Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCisg ICAgICAgICAgICcudXBkYXRlX3Nlc3Npb25fZ3JpZF90cmFuc2FjdGlvbicpCisgICAgQHBhdGNo KCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5LnBpY2ts ZScpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5u aW5nX3F1ZXJ5LmdldF9kcml2ZXInKQorICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxlZGl0 b3IudXRpbHMuc3RhcnRfcnVubmluZ19xdWVyeScKKyAgICAgICAgICAgJy5hcHBseV9leHBsYWlu X3BsYW5fd3JhcHBlcl9pZl9uZWVkZWQnKQorICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxl ZGl0b3IudXRpbHMuc3RhcnRfcnVubmluZ19xdWVyeScKKyAgICAgICAgICAgJy5pbnRlcm5hbF9z ZXJ2ZXJfZXJyb3InKQorICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMu c3RhcnRfcnVubmluZ19xdWVyeScKKyAgICAgICAgICAgJy5tYWtlX2pzb25fcmVzcG9uc2UnKQor ICAgIGRlZiB0ZXN0X3N0YXJ0X3F1ZXJ5X3JvbGxiYWNrX3JlcXVpcmVkKAorICAgICAgICBzZWxm LAorICAgICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jaywKKyAgICAgICAgaW50ZXJuYWxfc2Vy dmVyX2Vycm9yX21vY2ssCisgICAgICAgIGFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25l ZWRlZF9tb2NrLAorICAgICAgICBnZXRfZHJpdmVyX21vY2ssCisgICAgICAgIHBpY2tsZV9tb2Nr LAorICAgICAgICB1cGRhdGVfc2Vzc2lvbl9ncmlkX3RyYW5zYWN0aW9uX21vY2ssCisgICAgICAg IHJlcXVlc3QKKyAgICApOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBTdGFydFJ1bm5pbmdR dWVyeSBpcyBleGVjdXRlZAorICAgICAgICBBbmQgdGhlIHNlcnZlciBpcyBjb25uZWN0ZWQgYW5k IHN0YXJ0IHF1ZXJ5IGFzeW5jCisgICAgICAgIEFuZCByb2xsYmFjayBpcyByZXF1aXJlZAorICAg ICAgICBpdCByZXR1cm5zIGEgc3VjY2VzcyBtZXNzYWdlCisgICAgICAgICIiIgorCisgICAgICAg IHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgZXhwZWN0ZWRf cmVzcG9uc2UgPSBcCisgICAgICAgICAgICBSZXNwb25zZShyZXNwb25zZT1qc29uLmR1bXBzKHsn ZXJyb3Jtc2cnOiAnc29tZSB2YWx1ZSd9KSkKKyAgICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21v Y2sucmV0dXJuX3ZhbHVlID0gZXhwZWN0ZWRfcmVzcG9uc2UKKworICAgICAgICBTdGFydFJ1bm5p bmdRdWVyeS5pc19iZWdpbl9yZXF1aXJlZF9mb3Jfc3FsX3F1ZXJ5ID0gXAorICAgICAgICAgICAg TWFnaWNNb2NrKHJldHVybl92YWx1ZT1GYWxzZSkKKyAgICAgICAgU3RhcnRSdW5uaW5nUXVlcnku aXNfcm9sbGJhY2tfc3RhdGVtZW50X3JlcXVpcmVkID0gXAorICAgICAgICAgICAgTWFnaWNNb2Nr KHJldHVybl92YWx1ZT1UcnVlKQorICAgICAgICBhcHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9p Zl9uZWVkZWRfbW9jay5yZXR1cm5fdmFsdWUgPSBcCisgICAgICAgICAgICAnc29tZSBzcWwnCisg ICAgICAgIHBpY2tsZV9tb2NrLmxvYWRzLnJldHVybl92YWx1ZSA9IE1hZ2ljTW9jaygKKyAgICAg ICAgICAgIGNvbm5faWQ9MSwKKyAgICAgICAgICAgIHVwZGF0ZV9mZXRjaGVkX3Jvd19jbnQ9TWFn aWNNb2NrKCksCisgICAgICAgICAgICBzZXRfY29ubmVjdGlvbl9pZD1NYWdpY01vY2soKSwKKyAg ICAgICAgICAgIGF1dG9fY29tbWl0PVRydWUsCisgICAgICAgICAgICBhdXRvX3JvbGxiYWNrPUZh bHNlLAorICAgICAgICAgICAgY2FuX2VkaXQ9bGFtYmRhOiBUcnVlLAorICAgICAgICAgICAgY2Fu X2ZpbHRlcj1sYW1iZGE6IFRydWUKKyAgICAgICAgKQorCisgICAgICAgIG1hbmFnZXIgPSBzZWxm Ll9fY3JlYXRlX21hbmFnZXIoCisgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgIE5vbmUs CisgICAgICAgICAgICBbVHJ1ZSwgJ2FzeW5jIGZ1bmN0aW9uIHJlc3VsdCBvdXRwdXQnXSwKKyAg ICAgICAgICAgIE5vbmUKKyAgICAgICAgKQorICAgICAgICBnZXRfZHJpdmVyX21vY2sucmV0dXJu X3ZhbHVlID0gTWFnaWNNb2NrKAorICAgICAgICAgICAgY29ubmVjdGlvbl9tYW5hZ2VyPWxhbWJk YSBzZXNzaW9uX2lkOiBtYW5hZ2VyKQorCisgICAgICAgIGJsdWVwcmludF9tb2NrID0gTWFnaWNN b2NrKAorICAgICAgICAgICAgaW5mb19ub3RpZmllcl90aW1lb3V0PU1hZ2ljTW9jayhnZXQ9bGFt YmRhOiA1KQorICAgICAgICApCisgICAgICAgIGxvZ2dlck1vY2sgPSBNYWdpY01vY2soZXJyb3I9 TWFnaWNNb2NrKCkpCisKKyAgICAgICAgcmVzdWx0ID0gU3RhcnRSdW5uaW5nUXVlcnkoCisgICAg ICAgICAgICBibHVlcHJpbnRfbW9jaywKKyAgICAgICAgICAgIGxvZ2dlck1vY2sKKyAgICAgICAg KS5leGVjdXRlKAorICAgICAgICAgICAgc3FsPWRpY3Qoc3FsPSdzb21lIHNxbCcsIGV4cGxhaW5f cGxhbj1Ob25lKSwKKyAgICAgICAgICAgIHRyYW5zX2lkPTEyMywKKyAgICAgICAgICAgIGh0dHBf c2Vzc2lvbj1kaWN0KGdyaWREYXRhPXsnMTIzJzogZGljdChjb21tYW5kX29iaj0nJyl9KQorICAg ICAgICApCisKKyAgICAgICAgcmVzdWx0IHwgc2hvdWxkLmVxdWFsKGV4cGVjdGVkX3Jlc3BvbnNl KQorCisgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgK KyAgICAgICAgICAgIGRhdGE9ZGljdCgKKyAgICAgICAgICAgICAgICBzdGF0dXM9VHJ1ZSwKKyAg ICAgICAgICAgICAgICByZXN1bHQ9J2FzeW5jIGZ1bmN0aW9uIHJlc3VsdCBvdXRwdXQnLAorICAg ICAgICAgICAgICAgIGNhbl9lZGl0PVRydWUsCisgICAgICAgICAgICAgICAgY2FuX2ZpbHRlcj1U cnVlLAorICAgICAgICAgICAgICAgIGluZm9fbm90aWZpZXJfdGltZW91dD01LAorICAgICAgICAg ICAgICAgIG5vdGlmaWVzPU5vbmUKICAgICAgICAgICAgICkKKyAgICAgICAgKQorCisgICAgICAg IGludGVybmFsX3NlcnZlcl9lcnJvcl9tb2NrLmFzc2VydF9ub3RfY2FsbGVkKCkKKyAgICAgICAg c2VsZi5jb25uZWN0aW9uLmV4ZWN1dGVfYXN5bmMuYXNzZXJ0X2NhbGxlZF93aXRoKAorICAgICAg ICAgICAgJ3NvbWUgc3FsJworICAgICAgICApCisgICAgICAgIGxvZ2dlck1vY2suZXJyb3IuYXNz ZXJ0X25vdF9jYWxsZWQoKQorICAgICAgICBzZWxmLmNvbm5lY3Rpb24uZXhlY3V0ZV92b2lkLmFz c2VydF9jYWxsZWRfd2l0aCgKKyAgICAgICAgICAgICdST0xMQkFDSzsnCisgICAgICAgICkKKwor ICAgICAgICBhcHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9pZl9uZWVkZWRfbW9jay5hc3NlcnRf Y2FsbGVkX3dpdGgoCisgICAgICAgICAgICBtYW5hZ2VyLAorICAgICAgICAgICAgZGljdChzcWw9 J3NvbWUgc3FsJywgZXhwbGFpbl9wbGFuPU5vbmUpCisgICAgICAgICkKKworICAgIEBwYXRjaCgn cGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuc3RhcnRfcnVubmluZ19xdWVyeScKKyAgICAg ICAgICAgJy51cGRhdGVfc2Vzc2lvbl9ncmlkX3RyYW5zYWN0aW9uJykKKyAgICBAcGF0Y2goJ3Bn YWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnkucGlja2xlJykK KyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdf cXVlcnkuZ2V0X2RyaXZlcicpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51 dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5JworICAgICAgICAgICAnLmFwcGx5X2V4cGxhaW5fcGxh bl93cmFwcGVyX2lmX25lZWRlZCcpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRv ci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5JworICAgICAgICAgICAnLmludGVybmFsX3NlcnZl cl9lcnJvcicpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFy dF9ydW5uaW5nX3F1ZXJ5JworICAgICAgICAgICAnLm1ha2VfanNvbl9yZXNwb25zZScpCisgICAg ZGVmIHRlc3Rfc3RhcnRfcXVlcnlfd2l0aF9wbGFuX3dyYXBwZXIoCisgICAgICAgIHNlbGYsCisg ICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLAorICAgICAgICBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3JfbW9jaywKKyAgICAgICAgYXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVk X21vY2ssCisgICAgICAgIGdldF9kcml2ZXJfbW9jaywKKyAgICAgICAgcGlja2xlX21vY2ssCisg ICAgICAgIHVwZGF0ZV9zZXNzaW9uX2dyaWRfdHJhbnNhY3Rpb25fbW9jaywKKyAgICAgICAgcmVx dWVzdAorICAgICk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIFN0YXJ0UnVubmluZ1F1ZXJ5 IGlzIGV4ZWN1dGVkCisgICAgICAgIEFuZCB0aGUgc2VydmVyIGlzIGNvbm5lY3RlZCBhbmQgc3Rh cnQgcXVlcnkgYXN5bmMKKyAgICAgICAgQW5kIGFuIGV4cGxhaW4gcGxhbiB3cmFwcGVyCisgICAg ICAgIGl0IHJldHVybnMgYSBzdWNjZXNzIG1lc3NhZ2UKKyAgICAgICAgIiIiCisKKyAgICAgICAg cmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICBleHBlY3RlZF9y ZXNwb25zZSA9IFwKKyAgICAgICAgICAgIFJlc3BvbnNlKHJlc3BvbnNlPWpzb24uZHVtcHMoeydl cnJvcm1zZyc6ICdzb21lIHZhbHVlJ30pKQorICAgICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9j ay5yZXR1cm5fdmFsdWUgPSBleHBlY3RlZF9yZXNwb25zZQogCisgICAgICAgIFN0YXJ0UnVubmlu Z1F1ZXJ5LmlzX2JlZ2luX3JlcXVpcmVkX2Zvcl9zcWxfcXVlcnkgPSBcCisgICAgICAgICAgICBN YWdpY01vY2socmV0dXJuX3ZhbHVlPUZhbHNlKQorICAgICAgICBTdGFydFJ1bm5pbmdRdWVyeS5p c19yb2xsYmFja19zdGF0ZW1lbnRfcmVxdWlyZWQgPSBcCisgICAgICAgICAgICBNYWdpY01vY2so cmV0dXJuX3ZhbHVlPVRydWUpCiAgICAgICAgIGFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lm X25lZWRlZF9tb2NrLnJldHVybl92YWx1ZSA9IFwKLSAgICAgICAgICAgIHNlbGYuYXBwbHlfZXhw bGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkX3JldHVybl92YWx1ZQorICAgICAgICAgICAgJ0VY UExBSU4gUExBTiBzb21lIHNxbCcKKworICAgICAgICBwaWNrbGVfbW9jay5sb2Fkcy5yZXR1cm5f dmFsdWUgPSBNYWdpY01vY2soCisgICAgICAgICAgICBjb25uX2lkPTEsCisgICAgICAgICAgICB1 cGRhdGVfZmV0Y2hlZF9yb3dfY250PU1hZ2ljTW9jaygpLAorICAgICAgICAgICAgc2V0X2Nvbm5l Y3Rpb25faWQ9TWFnaWNNb2NrKCksCisgICAgICAgICAgICBhdXRvX2NvbW1pdD1UcnVlLAorICAg ICAgICAgICAgYXV0b19yb2xsYmFjaz1GYWxzZSwKKyAgICAgICAgICAgIGNhbl9lZGl0PWxhbWJk YTogVHJ1ZSwKKyAgICAgICAgICAgIGNhbl9maWx0ZXI9bGFtYmRhOiBUcnVlCisgICAgICAgICkK IAotICAgICAgICBtYW5hZ2VyID0gc2VsZi5fX2NyZWF0ZV9tYW5hZ2VyKCkKLSAgICAgICAgaWYg c2VsZi5nZXRfZHJpdmVyX2V4Y2VwdGlvbjoKLSAgICAgICAgICAgIGdldF9kcml2ZXJfbW9jay5z aWRlX2VmZmVjdCA9IGdldF9kcml2ZXJfZXhjZXB0aW9uCi0gICAgICAgIGVsaWYgc2VsZi5nZXRf Y29ubmVjdGlvbl9sb3N0X2V4Y2VwdGlvbjoKLSAgICAgICAgICAgIGdldF9kcml2ZXJfbW9jay5z aWRlX2VmZmVjdCA9IGdldF9jb25uZWN0aW9uX2xvc3RfZXhjZXB0aW9uCi0gICAgICAgIGVsc2U6 Ci0gICAgICAgICAgICBnZXRfZHJpdmVyX21vY2sucmV0dXJuX3ZhbHVlID0gTWFnaWNNb2NrKAot ICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25fbWFuYWdlcj1sYW1iZGEgc2Vzc2lvbl9pZDogbWFu YWdlcikKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXN1bHQgPSBTdGFydFJ1bm5pbmdR dWVyeSgKLSAgICAgICAgICAgICAgICBibHVlcHJpbnRfbW9jaywKLSAgICAgICAgICAgICAgICBz ZWxmLmxvZ2dlck1vY2sKLSAgICAgICAgICAgICkuZXhlY3V0ZSgKLSAgICAgICAgICAgICAgICAq KnNlbGYuZnVuY3Rpb25fcGFyYW1ldGVycworICAgICAgICBtYW5hZ2VyID0gc2VsZi5fX2NyZWF0 ZV9tYW5hZ2VyKAorICAgICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICBOb25lLAorICAgICAg ICAgICAgW1RydWUsICdhc3luYyBmdW5jdGlvbiByZXN1bHQgb3V0cHV0J10sCisgICAgICAgICAg ICBOb25lCisgICAgICAgICkKKyAgICAgICAgZ2V0X2RyaXZlcl9tb2NrLnJldHVybl92YWx1ZSA9 IE1hZ2ljTW9jaygKKyAgICAgICAgICAgIGNvbm5lY3Rpb25fbWFuYWdlcj1sYW1iZGEgc2Vzc2lv bl9pZDogbWFuYWdlcikKKworICAgICAgICBibHVlcHJpbnRfbW9jayA9IE1hZ2ljTW9jaygKKyAg ICAgICAgICAgIGluZm9fbm90aWZpZXJfdGltZW91dD1NYWdpY01vY2soZ2V0PWxhbWJkYTogNSkK KyAgICAgICAgKQorICAgICAgICBsb2dnZXJNb2NrID0gTWFnaWNNb2NrKGVycm9yPU1hZ2ljTW9j aygpKQorCisgICAgICAgIHJlc3VsdCA9IFN0YXJ0UnVubmluZ1F1ZXJ5KAorICAgICAgICAgICAg Ymx1ZXByaW50X21vY2ssCisgICAgICAgICAgICBsb2dnZXJNb2NrCisgICAgICAgICkuZXhlY3V0 ZSgKKyAgICAgICAgICAgIHNxbD1kaWN0KHNxbD0nc29tZSBzcWwnLCBleHBsYWluX3BsYW49Tm9u ZSksCisgICAgICAgICAgICB0cmFuc19pZD0xMjMsCisgICAgICAgICAgICBodHRwX3Nlc3Npb249 ZGljdChncmlkRGF0YT17JzEyMyc6IGRpY3QoY29tbWFuZF9vYmo9JycpfSkKKyAgICAgICAgKQor CisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5lcXVhbChleHBlY3RlZF9yZXNwb25zZSkKKworICAg ICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCisgICAgICAg ICAgICBkYXRhPWRpY3QoCisgICAgICAgICAgICAgICAgc3RhdHVzPVRydWUsCisgICAgICAgICAg ICAgICAgcmVzdWx0PSdhc3luYyBmdW5jdGlvbiByZXN1bHQgb3V0cHV0JywKKyAgICAgICAgICAg ICAgICBjYW5fZWRpdD1UcnVlLAorICAgICAgICAgICAgICAgIGNhbl9maWx0ZXI9VHJ1ZSwKKyAg ICAgICAgICAgICAgICBpbmZvX25vdGlmaWVyX3RpbWVvdXQ9NSwKKyAgICAgICAgICAgICAgICBu b3RpZmllcz1Ob25lCiAgICAgICAgICAgICApCi0gICAgICAgICAgICBpZiBzZWxmLm1hbmFnZXJf Y29ubmVjdGlvbl9leGNlcHRpb24gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgc2VsZi5m YWlsKAotICAgICAgICAgICAgICAgICAgICAnRXhjZXB0aW9uOiAiJyArIHN0cigKLSAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYubWFuYWdlcl9jb25uZWN0aW9uX2V4Y2VwdGlvbgotICAgICAg ICAgICAgICAgICAgICApICsKLSAgICAgICAgICAgICAgICAgICAgJyIgZXhjZXB0ZWQgYnV0IG5v dCByYWlzZWQnCi0gICAgICAgICAgICAgICAgKQotCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVx dWFscyhyZXN1bHQsIGV4cGVjdGVkX3Jlc3BvbnNlKQotCi0gICAgICAgIGV4Y2VwdCBBc3NlcnRp b25FcnJvcjoKLSAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMg ZXhjZXB0aW9uOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5tYW5hZ2VyX2Nv bm5lY3Rpb25fZXhjZXB0aW9uLCBleGNlcHRpb24pCi0KLSAgICAgICAgc2VsZi5fX21vY2tfYXNz ZXJ0aW9ucyhpbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jaywKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jaykKLSAgICAgICAgaWYgc2VsZi5pc19j b25uZWN0ZWRfdG9fc2VydmVyOgotICAgICAgICAgICAgYXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBw ZXJfaWZfbmVlZGVkX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAotICAgICAgICAgICAgICAgIG1h bmFnZXIsIHNlbGYuZnVuY3Rpb25fcGFyYW1ldGVyc1snc3FsJ10pCi0KLSAgICBkZWYgX19jcmVh dGVfbWFuYWdlcihzZWxmKToKKyAgICAgICAgKQorCisgICAgICAgIGludGVybmFsX3NlcnZlcl9l cnJvcl9tb2NrLmFzc2VydF9ub3RfY2FsbGVkKCkKKyAgICAgICAgc2VsZi5jb25uZWN0aW9uLmV4 ZWN1dGVfYXN5bmMuYXNzZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgJ0VYUExBSU4gUExB TiBzb21lIHNxbCcKKyAgICAgICAgKQorICAgICAgICBsb2dnZXJNb2NrLmVycm9yLmFzc2VydF9u b3RfY2FsbGVkKCkKKyAgICAgICAgc2VsZi5jb25uZWN0aW9uLmV4ZWN1dGVfdm9pZC5hc3NlcnRf Y2FsbGVkX3dpdGgoCisgICAgICAgICAgICAnUk9MTEJBQ0s7JworICAgICAgICApCisKKyAgICAg ICAgYXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkX21vY2suYXNzZXJ0X2NhbGxl ZF93aXRoKAorICAgICAgICAgICAgbWFuYWdlciwKKyAgICAgICAgICAgIGRpY3Qoc3FsPSdzb21l IHNxbCcsIGV4cGxhaW5fcGxhbj1Ob25lKQorICAgICAgICApCisKKyAgICBkZWYgX19jcmVhdGVf bWFuYWdlcigKKyAgICAgICAgc2VsZiwKKyAgICAgICAgaXNfY29ubmVjdGVkX3RvX3NlcnZlciwK KyAgICAgICAgY29ubmVjdGlvbl9jb25uZWN0X3JldHVybiwKKyAgICAgICAgZXhlY3V0ZV9hc3lu Y19yZXR1cm5fdmFsdWUsCisgICAgICAgIG1hbmFnZXJfY29ubmVjdGlvbl9leGNlcHRpb24KKyAg ICApOgogICAgICAgICBzZWxmLmNvbm5lY3Rpb24gPSBNYWdpY01vY2soCi0gICAgICAgICAgICBj b25uZWN0ZWQ9bGFtYmRhOiBzZWxmLmlzX2Nvbm5lY3RlZF90b19zZXJ2ZXIsCisgICAgICAgICAg ICBjb25uZWN0ZWQ9bGFtYmRhOiBpc19jb25uZWN0ZWRfdG9fc2VydmVyLAogICAgICAgICAgICAg Y29ubmVjdD1NYWdpY01vY2soKSwKICAgICAgICAgICAgIGV4ZWN1dGVfYXN5bmM9TWFnaWNNb2Nr KCksCiAgICAgICAgICAgICBleGVjdXRlX3ZvaWQ9TWFnaWNNb2NrKCksCiAgICAgICAgICAgICBn ZXRfbm90aWZpZXM9TWFnaWNNb2NrKCksCiAgICAgICAgICkKLSAgICAgICAgc2VsZi5jb25uZWN0 aW9uLmNvbm5lY3QucmV0dXJuX3ZhbHVlID0gc2VsZi5jb25uZWN0aW9uX2Nvbm5lY3RfcmV0dXJu CisgICAgICAgIHNlbGYuY29ubmVjdGlvbi5jb25uZWN0LnJldHVybl92YWx1ZSA9IGNvbm5lY3Rp b25fY29ubmVjdF9yZXR1cm4KICAgICAgICAgc2VsZi5jb25uZWN0aW9uLmdldF9ub3RpZmllcy5y ZXR1cm5fdmFsdWUgPSBOb25lCiAgICAgICAgIHNlbGYuY29ubmVjdGlvbi5leGVjdXRlX2FzeW5j LnJldHVybl92YWx1ZSA9IFwKLSAgICAgICAgICAgIHNlbGYuZXhlY3V0ZV9hc3luY19yZXR1cm5f dmFsdWUKLSAgICAgICAgaWYgc2VsZi5tYW5hZ2VyX2Nvbm5lY3Rpb25fZXhjZXB0aW9uIGlzIE5v bmU6CisgICAgICAgICAgICBleGVjdXRlX2FzeW5jX3JldHVybl92YWx1ZQorICAgICAgICBpZiBt YW5hZ2VyX2Nvbm5lY3Rpb25fZXhjZXB0aW9uIGlzIE5vbmU6CiAgICAgICAgICAgICBkZWYgY29u bmVjdGlvbl9mdW5jdGlvbigKICAgICAgICAgICAgICAgICBkaWQsCiAgICAgICAgICAgICAgICAg Y29ubl9pZCwKQEAgLTUzOCw0NiArOTQ4LDkgQEAgY2xhc3MgU3RhcnRSdW5uaW5nUXVlcnlUZXN0 KEJhc2VUZXN0R2VuZXJhdG9yKToKIAogICAgICAgICBlbHNlOgogICAgICAgICAgICAgbWFuYWdl ciA9IE1hZ2ljTW9jaygpCi0gICAgICAgICAgICBtYW5hZ2VyLmNvbm5lY3Rpb24uc2lkZV9lZmZl Y3QgPSBzZWxmLm1hbmFnZXJfY29ubmVjdGlvbl9leGNlcHRpb24KKyAgICAgICAgICAgIG1hbmFn ZXIuY29ubmVjdGlvbi5zaWRlX2VmZmVjdCA9IG1hbmFnZXJfY29ubmVjdGlvbl9leGNlcHRpb24K IAogICAgICAgICByZXR1cm4gbWFuYWdlcgogCi0gICAgZGVmIF9fbW9ja19hc3NlcnRpb25zKHNl bGYsIGludGVybmFsX3NlcnZlcl9lcnJvcl9tb2NrLAotICAgICAgICAgICAgICAgICAgICAgICAg ICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jayk6Ci0gICAgICAgIGlmIHNlbGYuZXhwZWN0X21ha2Vf anNvbl9yZXNwb25zZV90b19oYXZlX2JlZW5fY2FsbGVkX3dpdGggaXMgbm90IE5vbmU6Ci0gICAg ICAgICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCi0gICAg ICAgICAgICAgICAgKipzZWxmLmV4cGVjdF9tYWtlX2pzb25fcmVzcG9uc2VfdG9faGF2ZV9iZWVu X2NhbGxlZF93aXRoKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbWFrZV9qc29uX3Jlc3Bv bnNlX21vY2suYXNzZXJ0X25vdF9jYWxsZWQoKQotICAgICAgICBpZiBzZWxmLmV4cGVjdF9pbnRl cm5hbF9zZXJ2ZXJfZXJyb3JfY2FsbGVkX3dpdGggaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCi0gICAgICAgICAg ICAgICAgKipzZWxmLmV4cGVjdF9pbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfY2FsbGVkX3dpdGgpCi0g ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jay5hc3Nl cnRfbm90X2NhbGxlZCgpCi0gICAgICAgIGlmIHNlbGYuZXhlY3V0ZV9hc3luY19yZXR1cm5fdmFs dWUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLmNvbm5lY3Rpb24uZXhlY3V0ZV9hc3lu Yy5hc3NlcnRfY2FsbGVkX3dpdGgoCi0gICAgICAgICAgICAgICAgc2VsZi5leHBlY3RfZXhlY3V0 ZV92b2lkX2NhbGxlZF93aXRoKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5jb25u ZWN0aW9uLmV4ZWN1dGVfYXN5bmMuYXNzZXJ0X25vdF9jYWxsZWQoKQotCi0gICAgICAgIGlmIHNl bGYuZXhwZWN0ZWRfbG9nZ2VyX2Vycm9yIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5s b2dnZXJNb2NrLmVycm9yLmFzc2VydF9jYWxsZWRfd2l0aCgKLSAgICAgICAgICAgICAgICBzZWxm LmV4cGVjdGVkX2xvZ2dlcl9lcnJvcikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYu bG9nZ2VyTW9jay5lcnJvci5hc3NlcnRfbm90X2NhbGxlZCgpCi0KLSAgICAgICAgaWYgc2VsZi5p c19iZWdpbl9yZXF1aXJlZDoKLSAgICAgICAgICAgIHNlbGYuY29ubmVjdGlvbi5leGVjdXRlX3Zv aWQuYXNzZXJ0X2NhbGxlZF93aXRoKCdCRUdJTjsnKQotICAgICAgICBlbGlmIG5vdCBzZWxmLmlz X3JvbGxiYWNrX3JlcXVpcmVkOgotICAgICAgICAgICAgc2VsZi5jb25uZWN0aW9uLmV4ZWN1dGVf dm9pZC5hc3NlcnRfbm90X2NhbGxlZCgpCi0gICAgICAgIGlmIHNlbGYuaXNfcm9sbGJhY2tfcmVx dWlyZWQ6Ci0gICAgICAgICAgICBzZWxmLmNvbm5lY3Rpb24uZXhlY3V0ZV92b2lkLmFzc2VydF9j YWxsZWRfd2l0aCgnUk9MTEJBQ0s7JykKLSAgICAgICAgZWxpZiBub3Qgc2VsZi5pc19iZWdpbl9y ZXF1aXJlZDoKLSAgICAgICAgICAgIHNlbGYuY29ubmVjdGlvbi5leGVjdXRlX3ZvaWQuYXNzZXJ0 X25vdF9jYWxsZWQoKQotCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAjICBSZXNl dCBtZXRob2RzIHRvIHRoZSBvcmlnaW5hbCBzdGF0ZQotICAgICAgICBTdGFydFJ1bm5pbmdRdWVy eS5pc19yb2xsYmFja19zdGF0ZW1lbnRfcmVxdWlyZWQgPSBcCi0gICAgICAgICAgICBzdGF0aWNt ZXRob2Qoc2VsZi5pc19yb2xsYmFja19zdGF0ZW1lbnRfcmVxdWlyZWQpCi0gICAgICAgIFN0YXJ0 UnVubmluZ1F1ZXJ5LmlzX3JvbGxiYWNrX3N0YXRlbWVudF9yZXF1aXJlZCA9IFwKLSAgICAgICAg ICAgIHN0YXRpY21ldGhvZChzZWxmLmlzX3JvbGxiYWNrX3N0YXRlbWVudF9yZXF1aXJlZCkKKyAg ICAgICAgU3RhcnRSdW5uaW5nUXVlcnkuaXNfcm9sbGJhY2tfc3RhdGVtZW50X3JlcXVpcmVkID0g RmFsc2UKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3VzZXJfbWFuYWdlbWVudC9fX2lu aXRfXy5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3VzZXJfbWFuYWdlbWVudC9fX2luaXRfXy5weQpp bmRleCBhYzZlMmY0Yy4uNGFlZGZlM2UgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3Vz ZXJfbWFuYWdlbWVudC9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi90b29scy91c2VyX21h bmFnZW1lbnQvX19pbml0X18ucHkKQEAgLTIyOSw3ICsyMjksNyBAQCBkZWYgY3JlYXRlKCk6CiAg ICAgdHJ5OgogICAgICAgICB1c3IgPSBVc2VyKGVtYWlsPW5ld19kYXRhWydlbWFpbCddLAogICAg ICAgICAgICAgICAgICAgIHJvbGVzPW5ld19kYXRhWydyb2xlcyddLAotICAgICAgICAgICAgICAg ICAgIGFjdGl2ZT1uZXdfZGF0YVsnYWN0aXZlJ10sCisgICAgICAgICAgICAgICAgICAgYWN0aXZl PW5ld19kYXRhWydhY3RpdmUnXSA9PSAxLAogICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkPW5l d19kYXRhWydwYXNzd29yZCddKQogICAgICAgICBkYi5zZXNzaW9uLmFkZCh1c3IpCiAgICAgICAg IGRiLnNlc3Npb24uY29tbWl0KCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3V0aWxzL2Jhc2Vf dGVzdF9nZW5lcmF0b3IucHkgYi93ZWIvcGdhZG1pbi91dGlscy9iYXNlX3Rlc3RfZ2VuZXJhdG9y LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi4yNmNiNGRiYwotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3V0aWxzL2Jhc2VfdGVzdF9nZW5lcmF0b3IucHkKQEAg LTAsMCArMSw3NiBAQAoraW1wb3J0IHB5dGVzdAoraW1wb3J0IHNpeAorCitmcm9tIHBnYWRtaW4u dXRpbHMucm91dGUgaW1wb3J0IFRlc3RzR2VuZXJhdG9yUmVnaXN0cnkKKworZnJvbSBlbnVtIGlt cG9ydCBFbnVtCisKKworY2xhc3MgUG9zdGdyZXNWZXJzaW9uKEVudW0pOgorICAgIHYxMCA9IDEw MDAwMAorICAgIHY5NiA9IDkwNjAwCisgICAgdjk1ID0gOTA1MDAKKyAgICB2OTQgPSA5MDQwMAor ICAgIHY5MyA9IDkwMzAwCisgICAgdjkyID0gOTAyMDAKKyAgICB2OTEgPSA5MDEwMAorICAgIHY5 MCA9IDkwMDAwCisgICAgdjgzID0gODAzMjMKKworICAgIGRlZiBfX2d0X18oc2VsZiwgb3RoZXIp OgorICAgICAgICBpZiBzZWxmLl9fY2xhc3NfXyBpcyBvdGhlci5fX2NsYXNzX186CisgICAgICAg ICAgICByZXR1cm4gc2VsZi52YWx1ZSA+IG90aGVyLnZhbHVlCisgICAgICAgIGlmIHR5cGUob3Ro ZXIpID09IGludDoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnZhbHVlID4gb3RoZXIKKyAgICAg ICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisKKyAgICBkZWYgX19sdF9fKHNlbGYsIG90aGVyKToK KyAgICAgICAgaWYgc2VsZi5fX2NsYXNzX18gaXMgb3RoZXIuX19jbGFzc19fOgorICAgICAgICAg ICAgcmV0dXJuIHNlbGYudmFsdWUgPCBvdGhlci52YWx1ZQorICAgICAgICBpZiB0eXBlKG90aGVy KSA9PSBpbnQ6CisgICAgICAgICAgICByZXR1cm4gc2VsZi52YWx1ZSA8IG90aGVyCisgICAgICAg IHJldHVybiBOb3RJbXBsZW1lbnRlZAorCisKK0BzaXguYWRkX21ldGFjbGFzcyhUZXN0c0dlbmVy YXRvclJlZ2lzdHJ5KQorY2xhc3MgQmFzZVRlc3RHZW5lcmF0b3Iob2JqZWN0KToKKyAgICBAcHl0 ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQorICAgIGRlZiBjaGVja19pZl90ZXN0X3Nob3VsZF9i ZV9za2lwcGVkKHNlbGYsIHJlcXVlc3QsIGdldF9zZXJ2ZXJfdHlwZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRfc2VydmVyX3ZlcnNpb24pOgorICAgICAgICBz ZWxmLl9fc2tpcF9pZl9kYXRhYmFzZShnZXRfc2VydmVyX3R5cGUsIHJlcXVlc3QpCisgICAgICAg IHNlbGYuX19za2lwX2lmX3Bvc3RncmVzX3ZlcnNpb24oZ2V0X3NlcnZlcl92ZXJzaW9uLCByZXF1 ZXN0KQorCisgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICBkZWYgdGhlX3Jl YWxfc2V0dXAoc2VsZiwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgIGlmIG5vdCBoYXNhdHRy KHNlbGYsICdzZXR1cF9ub3RfbmVlZGVkJyk6CisgICAgICAgICAgICBzZWxmLnNlcnZlcl9pbmZv cm1hdGlvbiA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddCisgICAgICAg ICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAg ICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKworICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9pbmZvcm1hdGlvblsic2VydmVyX2lk Il0KKworICAgICAgICB5aWVsZCBjb250ZXh0X29mX3Rlc3RzCisgICAgICAgIHNlbGYudGVhckRv d24oKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYg X2V4cGFuZF90ZXN0X29iamVjdChzZWxmLCBrd2FyZ3MpOgorICAgICAgICBmb3Iga2V5IGluIGt3 YXJncy5rZXlzKCk6CisgICAgICAgICAgICBzZXRhdHRyKHNlbGYsIGtleSwga3dhcmdzW2tleV0p CisKKyAgICBkZWYgX19za2lwX2lmX2RhdGFiYXNlKHNlbGYsIGdldF9zZXJ2ZXJfdHlwZSwgcmVx dWVzdCk6CisgICAgICAgIGlmIHJlcXVlc3Qubm9kZS5nZXRfbWFya2VyKCdza2lwX2RhdGFiYXNl cycpOgorICAgICAgICAgICAgaWYgZ2V0X3NlcnZlcl90eXBlIGluIFwKKyAgICAgICAgICAgICAg IHJlcXVlc3Qubm9kZS5nZXRfbWFya2VyKCdza2lwX2RhdGFiYXNlcycpLmFyZ3NbMF06CisgICAg ICAgICAgICAgICAgcHl0ZXN0LnNraXAoJ2Nhbm5vdCBydW4gaW46ICVzJyAlCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ2V0X3NlcnZlcl90eXBlKQorCisgICAgZGVmIF9fc2tpcF9pZl9w b3N0Z3Jlc192ZXJzaW9uKHNlbGYsIGdldF9zZXJ2ZXJfdmVyc2lvbiwgcmVxdWVzdCk6CisgICAg ICAgIGlmIHJlcXVlc3Qubm9kZS5nZXRfbWFya2VyKCdza2lwX2lmX3Bvc3RncmVzX3ZlcnNpb24n KToKKyAgICAgICAgICAgIHZlcnNpb25zID0gXAorICAgICAgICAgICAgICAgIHJlcXVlc3Qubm9k ZS5nZXRfbWFya2VyKCdza2lwX2lmX3Bvc3RncmVzX3ZlcnNpb24nKS5hcmdzWzBdCisgICAgICAg ICAgICBza2lwX21lc3NhZ2UgPSBcCisgICAgICAgICAgICAgICAgcmVxdWVzdC5ub2RlLmdldF9t YXJrZXIoJ3NraXBfaWZfcG9zdGdyZXNfdmVyc2lvbicpLmFyZ3NbMV0KKyAgICAgICAgICAgIGlm IHZlcnNpb25zWydiZWxvd192ZXJzaW9uJ10gPiBnZXRfc2VydmVyX3ZlcnNpb246CisgICAgICAg ICAgICAgICAgcHl0ZXN0LnNraXAoc2tpcF9tZXNzYWdlKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vdXRpbHMvamF2YXNjcmlwdC90ZXN0cy90ZXN0X2phdmFzY3JpcHRfYnVuZGxlci5weSBiL3dl Yi9wZ2FkbWluL3V0aWxzL2phdmFzY3JpcHQvdGVzdHMvdGVzdF9qYXZhc2NyaXB0X2J1bmRsZXIu cHkKaW5kZXggNzAzMDcwM2YuLmI3ZmJmNjcwIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi91dGls cy9qYXZhc2NyaXB0L3Rlc3RzL3Rlc3RfamF2YXNjcmlwdF9idW5kbGVyLnB5CisrKyBiL3dlYi9w Z2FkbWluL3V0aWxzL2phdmFzY3JpcHQvdGVzdHMvdGVzdF9qYXZhc2NyaXB0X2J1bmRsZXIucHkK QEAgLTksNyArOSw5IEBACiAKIAogaW1wb3J0IHN5cwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRl IGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisK IGZyb20gcGdhZG1pbi51dGlscy5qYXZhc2NyaXB0LmphdmFzY3JpcHRfYnVuZGxlciBpbXBvcnQg SmF2YXNjcmlwdEJ1bmRsZXIKIGZyb20gcGdhZG1pbi51dGlscy5qYXZhc2NyaXB0LmphdmFzY3Jp cHRfYnVuZGxlciBpbXBvcnQgSnNTdGF0ZQogCkBAIC0xOSwyMCArMjEsMTUgQEAgZWxzZToKICAg ICBmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCiAKIAotY2xhc3MgSmF2YXNjcmlwdEJ1 bmRsZXJUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyB0ZXN0cyB0aGF0 IHRoZSBqYXZhc2NyaXB0IGJ1bmRsZXIgdG9vbCBjYXVzZXMgdGhlIGFwcGxpY2F0aW9uIHRvCi0g ICAgYnVuZGxlLGFuZCBjYW4gYmUgaW52b2tlZCBiZWZvcmUgYW5kIGFmdGVyIGFwcCBzdGFydCBj b3JyZWN0bHkiIiIKLQotICAgIHNjZW5hcmlvcyA9IFsoJ3NjZW5hcmlvIG5hbWU6IEphdmFzY3Jp cHRCdW5kbGVyVGVzdENhc2UnLCBkaWN0KCkpXQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG1l dGhvZE5hbWU9J3J1blRlc3QnKToKLSAgICAgICAgc3VwZXIoQmFzZVRlc3RHZW5lcmF0b3IsIHNl bGYpLl9faW5pdF9fKG1ldGhvZE5hbWUpCi0gICAgICAgIHNlbGYubW9ja09zID0gTm9uZQotICAg ICAgICBzZWxmLm1vY2tTdWJwcm9jZXNzQ2FsbCA9IE5vbmUKK2NsYXNzIFRlc3RKYXZhc2NyaXB0 QnVuZGxlcjoKIAogICAgIEBwYXRjaCgncGdhZG1pbi51dGlscy5qYXZhc2NyaXB0LmphdmFzY3Jp cHRfYnVuZGxlci5vcycpCiAgICAgQHBhdGNoKCdwZ2FkbWluLnV0aWxzLmphdmFzY3JpcHQuamF2 YXNjcmlwdF9idW5kbGVyLmNhbGwnKQotICAgIGRlZiBydW5UZXN0KHNlbGYsIHN1YnByb2Nlc3NN b2NrLCBvc01vY2spOgorICAgIGRlZiB0ZXN0X2phdmFzY3JpcHRfYnVuZGxlcihzZWxmLCBzdWJw cm9jZXNzTW9jaywgb3NNb2NrKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIGphdmFz Y3JpcHQgYnVuZGxlciB0b29sIGlzIHJ1bgorICAgICAgICBJdCBjYXVzZXMgdGhlIGFwcGxpY2F0 aW9uIHRvIGJ1bmRsZQorICAgICAgICAiIiIKICAgICAgICAgc2VsZi5tb2NrT3MgPSBvc01vY2sK ICAgICAgICAgc2VsZi5tb2NrU3VicHJvY2Vzc0NhbGwgPSBzdWJwcm9jZXNzTW9jawogCkBAIC01 Niw3ICs1Myw4IEBAIGNsYXNzIEphdmFzY3JpcHRCdW5kbGVyVGVzdENhc2UoQmFzZVRlc3RHZW5l cmF0b3IpOgogCiAgICAgZGVmIF9idW5kbGluZ19zdWNjZWVkcyhzZWxmKToKICAgICAgICAgamF2 YXNjcmlwdF9idW5kbGVyID0gSmF2YXNjcmlwdEJ1bmRsZXIoKQotICAgICAgICBzZWxmLmFzc2Vy dEVxdWFsKGxlbihzZWxmLm1vY2tTdWJwcm9jZXNzQ2FsbC5tZXRob2RfY2FsbHMpLCAwKQorICAg ICAgICBzZWxmLm1vY2tTdWJwcm9jZXNzQ2FsbC5tZXRob2RfY2FsbHMgfCBcCisgICAgICAgICAg ICBzaG91bGQuaGF2ZS5sZW5ndGgub2YoMCkKICAgICAgICAgc2VsZi5tb2NrU3VicHJvY2Vzc0Nh bGwucmV0dXJuX3ZhbHVlID0gMAogCiAgICAgICAgIHNlbGYubW9ja09zLmxpc3RkaXIucmV0dXJu X3ZhbHVlID0gWwpAQCAtNzAsNyArNjgsOCBAQCBjbGFzcyBKYXZhc2NyaXB0QnVuZGxlclRlc3RD YXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKIAogICAgIGRlZiBfYnVuZGxpbmdfZmFpbHNfd2hlbl9i dW5kbGluZ19yZXR1cm5zX25vbnplcm8oc2VsZik6CiAgICAgICAgIGphdmFzY3JpcHRfYnVuZGxl ciA9IEphdmFzY3JpcHRCdW5kbGVyKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2Vs Zi5tb2NrU3VicHJvY2Vzc0NhbGwubWV0aG9kX2NhbGxzKSwgMCkKKyAgICAgICAgc2VsZi5tb2Nr U3VicHJvY2Vzc0NhbGwubWV0aG9kX2NhbGxzIHwgXAorICAgICAgICAgICAgc2hvdWxkLmhhdmUu bGVuZ3RoLm9mKDApCiAgICAgICAgIHNlbGYubW9ja09zLmxpc3RkaXIucmV0dXJuX3ZhbHVlID0g W10KICAgICAgICAgc2VsZi5tb2NrU3VicHJvY2Vzc0NhbGwucmV0dXJuX3ZhbHVlID0gOTkKIApA QCAtMTE1LDUgKzExNCw0IEBAIGNsYXNzIEphdmFzY3JpcHRCdW5kbGVyVGVzdENhc2UoQmFzZVRl c3RHZW5lcmF0b3IpOgogICAgICAgICBzZWxmLl9fYXNzZXJ0U3RhdGUoamF2YXNjcmlwdF9idW5k bGVyLCBKc1N0YXRlLk9MRCkKIAogICAgIGRlZiBfX2Fzc2VydFN0YXRlKHNlbGYsIGphdmFzY3Jp cHRfYnVuZGxlciwgZXhwZWN0ZWRfc3RhdGUpOgotICAgICAgICByZXBvcnRlZF9zdGF0ZSA9IGph dmFzY3JpcHRfYnVuZGxlci5yZXBvcnQoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcG9y dGVkX3N0YXRlLCBleHBlY3RlZF9zdGF0ZSkKKyAgICAgICAgamF2YXNjcmlwdF9idW5kbGVyLnJl cG9ydCgpIHwgc2hvdWxkLmVxdWFsKGV4cGVjdGVkX3N0YXRlKQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vdXRpbHMvcm91dGUucHkgYi93ZWIvcGdhZG1pbi91dGlscy9yb3V0ZS5weQppbmRleCBm Nzg0ZTUzNC4uMWNjZDgyMTEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3V0aWxzL3JvdXRlLnB5 CisrKyBiL3dlYi9wZ2FkbWluL3V0aWxzL3JvdXRlLnB5CkBAIC05LDE3ICs5LDEwIEBACiAKIGlt cG9ydCBzeXMKIGltcG9ydCB0cmFjZWJhY2sKLWZyb20gYWJjIGltcG9ydCBBQkNNZXRhLCBhYnN0 cmFjdG1ldGhvZAorZnJvbSBhYmMgaW1wb3J0IEFCQ01ldGEKIGZyb20gaW1wb3J0bGliIGltcG9y dCBpbXBvcnRfbW9kdWxlCiAKLWltcG9ydCBzaXgKIGZyb20gd2Vya3pldWcudXRpbHMgaW1wb3J0 IGZpbmRfbW9kdWxlcwotZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMKLQot aWYgc3lzLnZlcnNpb25faW5mbyA8ICgyLCA3KToKLSAgICBpbXBvcnQgdW5pdHRlc3QyIGFzIHVu aXR0ZXN0Ci1lbHNlOgotICAgIGltcG9ydCB1bml0dGVzdAogCiAKIGNsYXNzIFRlc3RzR2VuZXJh dG9yUmVnaXN0cnkoQUJDTWV0YSk6CkBAIC03NSw0MyArNjgsMyBAQCBjbGFzcyBUZXN0c0dlbmVy YXRvclJlZ2lzdHJ5KEFCQ01ldGEpOgogICAgICAgICAgICAgICAgICAgICBpbXBvcnRfbW9kdWxl KG1vZHVsZV9uYW1lKQogICAgICAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgogICAgICAgICAg ICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1zeXMuc3RkZXJyKQotCi0KLUBzaXguYWRk X21ldGFjbGFzcyhUZXN0c0dlbmVyYXRvclJlZ2lzdHJ5KQotY2xhc3MgQmFzZVRlc3RHZW5lcmF0 b3IodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICMgRGVmaW5pbmcgYWJzdHJhY3QgbWV0aG9kIHdo aWNoIHdpbGwgb3ZlcnJpZGUgYnkgaW5kaXZpZHVhbCB0ZXN0Y2FzZS4KLQotICAgIGRlZiBzZXRV cChzZWxmKToKLSAgICAgICAgc3VwZXIoQmFzZVRlc3RHZW5lcmF0b3IsIHNlbGYpLnNldFVwKCkK LSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9pbmZvcm1hdGlvblsic2VydmVy X2lkIl0KLSAgICAgICAgc2VydmVyX2NvbiA9IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihz ZWxmLCBzZWxmLnNlcnZlcl9pZCkKLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnc2tpcF9vbl9k YXRhYmFzZScpOgotICAgICAgICAgICAgaWYgJ2RhdGEnIGluIHNlcnZlcl9jb24gYW5kICd0eXBl JyBpbiBzZXJ2ZXJfY29uWydkYXRhJ106Ci0gICAgICAgICAgICAgICAgaWYgc2VydmVyX2Nvblsn ZGF0YSddWyd0eXBlJ10gaW4gc2VsZi5za2lwX29uX2RhdGFiYXNlOgotICAgICAgICAgICAgICAg ICAgICBzZWxmLnNraXBUZXN0KCdjYW5ub3QgcnVuIGluOiAlcycgJQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlcnZlcl9jb25bJ2RhdGEnXVsndHlwZSddKQotCi0gICAgQGNs YXNzbWV0aG9kCi0gICAgZGVmIHNldFRlc3RTZXJ2ZXIoY2xzLCBzZXJ2ZXIpOgotICAgICAgICBj bHMuc2VydmVyID0gc2VydmVyCi0KLSAgICBAYWJzdHJhY3RtZXRob2QKLSAgICBkZWYgcnVuVGVz dChzZWxmKToKLSAgICAgICAgcGFzcwotCi0gICAgIyBJbml0aWFsaXppbmcgYXBwLgotICAgIGRl ZiBzZXRBcHAoc2VsZiwgYXBwKToKLSAgICAgICAgc2VsZi5hcHAgPSBhcHAKLQotICAgICMgSW5p dGlhbGl6aW5nIHRlc3RfY2xpZW50LgotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBzZXRUZXN0 Q2xpZW50KGNscywgdGVzdF9jbGllbnQpOgotICAgICAgICBjbHMudGVzdGVyID0gdGVzdF9jbGll bnQKLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBzZXREcml2ZXIoY2xzLCBkcml2ZXIpOgot ICAgICAgICBjbHMuZHJpdmVyID0gZHJpdmVyCi0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYg c2V0U2VydmVySW5mb3JtYXRpb24oY2xzLCBzZXJ2ZXJfaW5mb3JtYXRpb24pOgotICAgICAgICBj bHMuc2VydmVyX2luZm9ybWF0aW9uID0gc2VydmVyX2luZm9ybWF0aW9uCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi91dGlscy9zZXJ2ZXJfdXRpbHMucHkgYi93ZWIvcGdhZG1pbi91dGlscy9zZXJ2 ZXJfdXRpbHMucHkKaW5kZXggZmE2NTc4NzguLmQ5YTYwNDQ5IDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi91dGlscy9zZXJ2ZXJfdXRpbHMucHkKKysrIGIvd2ViL3BnYWRtaW4vdXRpbHMvc2VydmVy X3V0aWxzLnB5CkBAIC0xMSw2ICsxMSw5IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRf ZnVuY3Rpb24KIAogaW1wb3J0IGpzb24KIAoraW1wb3J0IGNvbmZpZworZnJvbSByZWdyZXNzaW9u LnB5dGhvbl90ZXN0X3V0aWxzLnRlc3RfdXRpbHMgaW1wb3J0IGxvZ2luX3Rlc3Rlcl9hY2NvdW50 CisKIFNFUlZFUl9VUkwgPSAnL2Jyb3dzZXIvc2VydmVyL29iai8nCiBTRVJWRVJfQ09OTkVDVF9V UkwgPSAnL2Jyb3dzZXIvc2VydmVyL2Nvbm5lY3QvJwogRFVNTVlfU0VSVkVSX0dST1VQID0gMTAw MDAKQEAgLTI0LDEwICsyNywzMCBAQCBkZWYgY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2VydmVyX2lk KToKICAgICA6cGFyYW0gc2VydmVyX2lkOiBzZXJ2ZXIgaWQKICAgICA6dHlwZSBzZXJ2ZXJfaWQ6 IHN0cgogICAgICIiIgotICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdChTRVJWRVJfQ09O TkVDVF9VUkwgKyBzdHIoRFVNTVlfU0VSVkVSX0dST1VQKSArCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICcvJyArIHN0cihzZXJ2ZXJfaWQpLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkYXRhPWRpY3QocGFzc3dvcmQ9c2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10p LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUp CisgICAgcmV0dXJuIGNsaWVudF9jb25uZWN0X3NlcnZlcihzZWxmLnRlc3Rlciwgc2VydmVyX2lk LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3 b3JkJ10pCisKKworZGVmIGNsaWVudF9jb25uZWN0X3NlcnZlcihjbGllbnQsIHNlcnZlcl9pZCwg cGFzc3dvcmQpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gdXNlZCB0byBjb25uZWN0IGFk ZGVkIHNlcnZlcgorICAgIDpwYXJhbSBjbGllbnQ6IEZsYXNrIFRlc3QgY2xpZW50CisgICAgOnBh cmFtIHNlcnZlcl9pZDogc2VydmVyIGlkCisgICAgOnBhcmFtIHBhc3N3b3JkOiBwYXNzd29yZCB0 byB0aGUgZGF0YWJhc2UKKyAgICA6dHlwZSBzZXJ2ZXJfaWQ6IHN0cgorICAgICIiIgorICAgIHJl c3BvbnNlID0gY2xpZW50LnBvc3QoU0VSVkVSX0NPTk5FQ1RfVVJMICsgc3RyKERVTU1ZX1NFUlZF Ul9HUk9VUCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8nICsgc3RyKHNlcnZlcl9p ZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWRpY3QocGFzc3dvcmQ9cGFzc3dv cmQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQor CisgICAgaWYgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgPT0gNDAxIGFuZCBjb25maWcuU0VSVkVSX01P REU6CisgICAgICAgIGxvZ2luX3Rlc3Rlcl9hY2NvdW50KGNsaWVudCkKKyAgICAgICAgcmVzcG9u c2UgPSBjbGllbnQucG9zdChTRVJWRVJfQ09OTkVDVF9VUkwgKyBzdHIoRFVNTVlfU0VSVkVSX0dS T1VQKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8nICsgc3RyKHNlcnZlcl9p ZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1kaWN0KHBhc3N3b3JkPXBh c3N3b3JkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3Rz PVRydWUpCisKICAgICBhc3NlcnQgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgPT0gMjAwCiAgICAgcmVz cG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCiAg ICAgcmV0dXJuIHJlc3BvbnNlX2RhdGEKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3V0aWxzL3Rl c3RzL3Rlc3RfY29tcGlsZV90ZW1wbGF0ZV9uYW1lLnB5IGIvd2ViL3BnYWRtaW4vdXRpbHMvdGVz dHMvdGVzdF9jb21waWxlX3RlbXBsYXRlX25hbWUucHkKaW5kZXggZDZlZTEyODguLjY4YjVjYzdh IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi91dGlscy90ZXN0cy90ZXN0X2NvbXBpbGVfdGVtcGxh dGVfbmFtZS5weQorKysgYi93ZWIvcGdhZG1pbi91dGlscy90ZXN0cy90ZXN0X2NvbXBpbGVfdGVt cGxhdGVfbmFtZS5weQpAQCAtNiw4ICs2LDExIEBACiAjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFz ZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKwor ZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4udXRpbHMuY29tcGlsZV90 ZW1wbGF0ZV9uYW1lIGltcG9ydCBjb21waWxlX3RlbXBsYXRlX25hbWUKLWZyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5i YXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogCiAKIGNsYXNzIFRl c3RDb21waWxlVGVtcGxhdGVOYW1lKEJhc2VUZXN0R2VuZXJhdG9yKToKQEAgLTMyLDggKzM1LDkg QEAgY2xhc3MgVGVzdENvbXBpbGVUZW1wbGF0ZU5hbWUoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAg ICAgICApLAogICAgIF0KIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgIGRlZiB0ZXN0X2Fs bChzZWxmLCBhcmdzLCBrd2FyZ3MpOgorICAgICAgICBzZWxmLl9leHBhbmRfdGVzdF9vYmplY3Qo a3dhcmdzKQogICAgICAgICByZXN1bHQgPSBjb21waWxlX3RlbXBsYXRlX25hbWUoCiAgICAgICAg ICAgICAnc29tZS9wcmVmaXgnLCAnc29tZV9maWxlLnNxbCcsIHNlbGYuc2VydmVyX3R5cGUsIHNl bGYudmVyc2lvbgogICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3VsdCwg c2VsZi5leHBlY3RlZF9yZXR1cm5fdmFsdWUpCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5iZS5l cXVhbC50byhzZWxmLmV4cGVjdGVkX3JldHVybl92YWx1ZSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL3V0aWxzL3Rlc3RzL3Rlc3RfdmVyc2lvbmVkX3RlbXBsYXRlX2xvYWRlci5weSBiL3dlYi9w Z2FkbWluL3V0aWxzL3Rlc3RzL3Rlc3RfdmVyc2lvbmVkX3RlbXBsYXRlX2xvYWRlci5weQppbmRl eCA0NmZlZmVjYS4uYTQ3MzlhODUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3V0aWxzL3Rlc3Rz L3Rlc3RfdmVyc2lvbmVkX3RlbXBsYXRlX2xvYWRlci5weQorKysgYi93ZWIvcGdhZG1pbi91dGls cy90ZXN0cy90ZXN0X3ZlcnNpb25lZF90ZW1wbGF0ZV9sb2FkZXIucHkKQEAgLTksODYgKzksMjYg QEAKIAogaW1wb3J0IG9zCiAKK2ltcG9ydCBweXRlc3QKIGZyb20gZmxhc2sgaW1wb3J0IEZsYXNr Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCiBmcm9tIGppbmphMiBpbXBvcnQgRmlsZVN5c3Rl bUxvYWRlcgogZnJvbSBqaW5qYTIgaW1wb3J0IFRlbXBsYXRlTm90Rm91bmQKIAogZnJvbSBwZ2Fk bWluIGltcG9ydCBWZXJzaW9uZWRUZW1wbGF0ZUxvYWRlcgotZnJvbSBwZ2FkbWluLnV0aWxzLnJv dXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVz dF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiAKIAogY2xhc3MgVGVzdFZlcnNp b25lZFRlbXBsYXRlTG9hZGVyKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICBzY2VuYXJpb3MgPSBb Ci0gICAgICAgICgKLSAgICAgICAgICAgICJSZW5kZXIgYSB0ZW1wbGF0ZSB3aGVuIGNhbGxlZCIs Ci0gICAgICAgICAgICBkaWN0KHNjZW5hcmlvPTEpCi0gICAgICAgICksCi0gICAgICAgICgKLSAg ICAgICAgICAgICJSZW5kZXIgYSB2ZXJzaW9uIDkuMSB0ZW1wbGF0ZSB3aGVuIGl0IGlzIHByZXNl bnQiLAotICAgICAgICAgICAgZGljdChzY2VuYXJpbz0yKQotICAgICAgICApLAotICAgICAgICAo Ci0gICAgICAgICAgICAiUmVuZGVyIGEgdmVyc2lvbiA5LjIgdGVtcGxhdGUgd2hlbiByZXF1ZXN0 IGZvciBhIGhpZ2hlciB2ZXJzaW9uIiwKLSAgICAgICAgICAgIGRpY3Qoc2NlbmFyaW89MykKLSAg ICAgICAgKSwKLSAgICAgICAgKAotICAgICAgICAgICAgIlJlbmRlciBkZWZhdWx0IHZlcnNpb24g d2hlbiB2ZXJzaW9uIDkuMCB3YXMgcmVxdWVzdGVkIGFuZCBvbmx5ICIKLSAgICAgICAgICAgICI5 LjEgYW5kIDkuMiBhcmUgcHJlc2VudCIsCi0gICAgICAgICAgICBkaWN0KHNjZW5hcmlvPTQpCi0g ICAgICAgICksCi0gICAgICAgICgKLSAgICAgICAgICAgICJSYWlzZSBlcnJvciB3aGVuIHZlcnNp b24gaXMgc21hbGxlciB0aGFuIGF2YWlsYWJsZSB0ZW1wbGF0ZXMiLAotICAgICAgICAgICAgZGlj dChzY2VuYXJpbz01KQotICAgICAgICApLAotICAgICAgICAoCi0gICAgICAgICAgICAiUmVuZGVy IGEgdmVyc2lvbiBHUERCIDUuMCB0ZW1wbGF0ZSB3aGVuIGl0IGlzIHByZXNlbnQiLAotICAgICAg ICAgICAgZGljdChzY2VuYXJpbz02KQotICAgICAgICApLAotICAgICAgICAoCi0gICAgICAgICAg ICAiUmVuZGVyIGEgdmVyc2lvbiBHUERCIDUuMCB0ZW1wbGF0ZSB3aGVuIGl0IGlzIGluIGRlZmF1 bHQiLAotICAgICAgICAgICAgZGljdChzY2VuYXJpbz03KQotICAgICAgICApLAotICAgICAgICAo Ci0gICAgICAgICAgICAiUmFpc2UgZXJyb3Igd2hlbiB2ZXJzaW9uIGlzIGdwZGIgYnV0IHRlbXBs YXRlIGRvZXMgbm90IGV4aXN0IiwKLSAgICAgICAgICAgIGRpY3Qoc2NlbmFyaW89OCkKLSAgICAg ICAgKQotICAgIF0KKyAgICAiIiJUZXN0IFZlcnNpb25lZCB0ZW1wbGF0ZSBsb2FkZXIiIiIKIAot ICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQor ICAgIGRlZiBzZXR1cF90ZXN0cyhzZWxmKToKKyAgICAgICAgc2V0YXR0cihzZWxmLCAnc2V0dXBf bm90X25lZWRlZCcsIFRydWUpCiAgICAgICAgIHNlbGYubG9hZGVyID0gVmVyc2lvbmVkVGVtcGxh dGVMb2FkZXIoRmFrZUFwcCgpKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgIGlm IHNlbGYuc2NlbmFyaW8gPT0gMToKLSAgICAgICAgICAgIHNlbGYudGVzdF9nZXRfc291cmNlX3Jl dHVybnNfYV90ZW1wbGF0ZSgpCi0gICAgICAgIGlmIHNlbGYuc2NlbmFyaW8gPT0gMjoKLSAgICAg ICAgICAgICMgdGVzdF9nZXRfc291cmNlX3doZW5fdGhlX3ZlcnNpb25faXNfOV8xX3JldHVybnNf OV8xX3RlbXBsYXRlCi0gICAgICAgICAgICBzZWxmLnRlc3RfZ2V0X3NvdXJjZV93aGVuX3RoZV92 ZXJzaW9uX2lzXzlfMSgpCi0gICAgICAgIGlmIHNlbGYuc2NlbmFyaW8gPT0gMzoKLSAgICAgICAg ICAgICMgdGVzdF9nZXRfc291cmNlX3doZW5fdGhlX3ZlcnNpb25faXNfOV8zX2FuZF90aGVyZV9h cmVfdGVtcGxhdGVzXwotICAgICAgICAgICAgIyBmb3JfOV8yX2FuZF85XzFfcmV0dXJuc185XzJf dGVtcGxhdGUKLSAgICAgICAgICAgIHNlbGYudGVzdF9nZXRfc291cmNlX3doZW5fdGhlX3ZlcnNp b25faXNfOV8zKCkKLSAgICAgICAgaWYgc2VsZi5zY2VuYXJpbyA9PSA0OgotICAgICAgICAgICAg IyB0ZXN0X2dldF9zb3VyY2Vfd2hlbl90aGVfdmVyc2lvbl9pc185XzBfYW5kX3RoZXJlX2FyZV90 ZW1wbGF0ZXNfCi0gICAgICAgICAgICAjIGZvcl85XzFfYW5kXzlfMl9yZXR1cm5zX2RlZmF1bHRf dGVtcGxhdGUKLSAgICAgICAgICAgIHNlbGYudGVzdF9nZXRfc291cmNlX3doZW5fdGhlX3ZlcnNp b25faXNfOV8wKCkKLSAgICAgICAgaWYgc2VsZi5zY2VuYXJpbyA9PSA1OgotICAgICAgICAgICAg IyB0ZXN0X3JhaXNlX25vdF9mb3VuZF9leGNlcHRpb25fd2hlbl9wb3N0Z3Jlc192ZXJzaW9uX2xl c3NfdGhhbl8KLSAgICAgICAgICAgICMgYWxsX2F2YWlsYWJsZV9zcWxfdGVtcGxhdGVzCi0gICAg ICAgICAgICBzZWxmLnRlc3RfcmFpc2Vfbm90X2ZvdW5kX2V4Y2VwdGlvbigpCi0gICAgICAgIGlm IHNlbGYuc2NlbmFyaW8gPT0gNjoKLSAgICAgICAgICAgICMgdGVzdF9nZXRfc291cmNlX3doZW5f dGhlX3ZlcnNpb25faXNfZ3BkYl81XzBfcmV0dXJuc19ncGRiXzVfMF8KLSAgICAgICAgICAgICMg dGVtcGxhdGUKLSAgICAgICAgICAgIHNlbGYudGVzdF9nZXRfc291cmNlX3doZW5fdGhlX3ZlcnNp b25faXNfZ3BkYl81XzAoKQotICAgICAgICBpZiBzZWxmLnNjZW5hcmlvID09IDc6Ci0gICAgICAg ICAgICAjIHRlc3RfZ2V0X3NvdXJjZV93aGVuX3RoZV92ZXJzaW9uX2lzX2dwZGJfNV8wX3JldHVy bnNfZGVmYXVsdF8KLSAgICAgICAgICAgICMgdGVtcGxhdGUKLSAgICAgICAgICAgIHNlbGYudGVz dF9nZXRfc291cmNlX3doZW5fdGhlX3ZlcnNpb25faXNfZ3BkYl81XzBfcmV0dXJuc19kZWZhdWx0 KCkKLSAgICAgICAgaWYgc2VsZi5zY2VuYXJpbyA9PSA4OgotICAgICAgICAgICAgIyB0ZXN0X3Jh aXNlX25vdF9mb3VuZF9leGNlcHRpb25fd2hlbl90aGVfdmVyc2lvbl9pc19ncGRiX3RlbXBsYXRl Ci0gICAgICAgICAgICAjIF9ub3RfZXhpc3QKLSAgICAgICAgICAgIHNlbGYudGVzdF9yYWlzZV9u b3RfZm91bmRfZXhjZXB0aW9uX3doZW5fdGhlX3ZlcnNpb25faXNfZ3BkYigpCi0KICAgICBkZWYg dGVzdF9nZXRfc291cmNlX3JldHVybnNfYV90ZW1wbGF0ZShzZWxmKToKKyAgICAgICAgIiIiUmVu ZGVyIGEgdGVtcGxhdGUgd2hlbiBjYWxsZWQiIiIKICAgICAgICAgZXhwZWN0ZWRfY29udGVudCA9 ICJTb21lIFNRTCIgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxuc29tZSBtb3JlIHN0 dWZmIG9uIGEgbmV3IGxpbmVcbiIKICAgICAgICAgIyBGb3IgY3Jvc3MgcGxhdGZvcm0gd2Ugam9p biB0aGUgU1FMIHBhdGgKQEAgLTk5LDEwICszOSw5IEBAIGNsYXNzIFRlc3RWZXJzaW9uZWRUZW1w bGF0ZUxvYWRlcihCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgIGNvbnRlbnQsIGZpbGVuYW1l LCB1cF90b19kYXRlbmVzcyA9IHNlbGYubG9hZGVyLmdldF9zb3VyY2UoCiAgICAgICAgICAgICBO b25lLCAic29tZV9mZWF0dXJlL3NxbC85LjFfcGx1cy9zb21lX2FjdGlvbi5zcWwiCiAgICAgICAg ICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGV4cGVjdGVkX2NvbnRl bnQsIHN0cihjb250ZW50KS5yZXBsYWNlKCJcciIsICIiKQotICAgICAgICApCi0gICAgICAgIHNl bGYuYXNzZXJ0SW4oc3FsX3BhdGgsIGZpbGVuYW1lKQorICAgICAgICBleHBlY3RlZF9jb250ZW50 IHwgc2hvdWxkLmJlLmVxdWFsLnRvKHN0cihjb250ZW50KS5yZXBsYWNlKCJcciIsICIiKSkKKwor ICAgICAgICBmaWxlbmFtZSB8IHNob3VsZC5jb250YWluLml0ZW0oc3FsX3BhdGgpCiAKICAgICBk ZWYgdGVzdF9nZXRfc291cmNlX3doZW5fdGhlX3ZlcnNpb25faXNfOV8xKHNlbGYpOgogICAgICAg ICAiIiJSZW5kZXIgYSB2ZXJzaW9uIDkuMSB0ZW1wbGF0ZSB3aGVuIGl0IGlzIHByZXNlbnQiIiIK QEAgLTExNywxMCArNTYsOSBAQCBjbGFzcyBUZXN0VmVyc2lvbmVkVGVtcGxhdGVMb2FkZXIoQmFz ZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgTm9uZSwgInNvbWVfZmVhdHVyZS9zcWwvIzkw MTAwIy9zb21lX2FjdGlvbi5zcWwiCiAgICAgICAgICkKIAotICAgICAgICBzZWxmLmFzc2VydEVx dWFsKAotICAgICAgICAgICAgZXhwZWN0ZWRfY29udGVudCwgc3RyKGNvbnRlbnQpLnJlcGxhY2Uo IlxyIiwgIiIpCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRJbihzcWxfcGF0aCwgZmls ZW5hbWUpCisgICAgICAgIGV4cGVjdGVkX2NvbnRlbnQgfCBzaG91bGQuYmUuZXF1YWwudG8oc3Ry KGNvbnRlbnQpLnJlcGxhY2UoIlxyIiwgIiIpKQorCisgICAgICAgIGZpbGVuYW1lIHwgc2hvdWxk LmNvbnRhaW4uaXRlbShzcWxfcGF0aCkKIAogICAgIGRlZiB0ZXN0X2dldF9zb3VyY2Vfd2hlbl90 aGVfdmVyc2lvbl9pc185XzMoc2VsZik6CiAgICAgICAgICIiIlJlbmRlciBhIHZlcnNpb24gOS4y IHRlbXBsYXRlIHdoZW4gcmVxdWVzdCBmb3IgYSBoaWdoZXIgdmVyc2lvbiIiIgpAQCAtMTMzLDEw ICs3MSw5IEBAIGNsYXNzIFRlc3RWZXJzaW9uZWRUZW1wbGF0ZUxvYWRlcihCYXNlVGVzdEdlbmVy YXRvcik6CiAgICAgICAgICAgICBOb25lLCAic29tZV9mZWF0dXJlL3NxbC8jOTAzMDAjL3NvbWVf YWN0aW9uLnNxbCIKICAgICAgICAgKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAg ICAgICAgICAiU29tZSA5LjIgU1FMIiwgc3RyKGNvbnRlbnQpLnJlcGxhY2UoIlxyIiwgIiIpCi0g ICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRJbihzcWxfcGF0aCwgZmlsZW5hbWUpCisgICAg ICAgICJTb21lIDkuMiBTUUwiIHwgc2hvdWxkLmJlLmVxdWFsLnRvKHN0cihjb250ZW50KS5yZXBs YWNlKCJcciIsICIiKSkKKworICAgICAgICBmaWxlbmFtZSB8IHNob3VsZC5jb250YWluLml0ZW0o c3FsX3BhdGgpCiAKICAgICBkZWYgdGVzdF9nZXRfc291cmNlX3doZW5fdGhlX3ZlcnNpb25faXNf OV8wKHNlbGYpOgogICAgICAgICAiIiJSZW5kZXIgZGVmYXVsdCB2ZXJzaW9uIHdoZW4gdmVyc2lv biA5LjAgd2FzIHJlcXVlc3RlZCBhbmQgb25seQpAQCAtMTUwLDE4ICs4NywxNSBAQCBjbGFzcyBU ZXN0VmVyc2lvbmVkVGVtcGxhdGVMb2FkZXIoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAg ICAgTm9uZSwKICAgICAgICAgICAgICJzb21lX2ZlYXR1cmUvc3FsLyM5MDAwMCMvc29tZV9hY3Rp b25fd2l0aF9kZWZhdWx0LnNxbCIpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiU29tZSBk ZWZhdWx0IFNRTCIsIHN0cihjb250ZW50KS5yZXBsYWNlKCJcciIsICIiKSkKLSAgICAgICAgc2Vs Zi5hc3NlcnRJbihzcWxfcGF0aCwgZmlsZW5hbWUpCisgICAgICAgICJTb21lIGRlZmF1bHQgU1FM IiB8IHNob3VsZC5iZS5lcXVhbC50byhzdHIoY29udGVudCkucmVwbGFjZSgiXHIiLCAiIikpCisK KyAgICAgICAgZmlsZW5hbWUgfCBzaG91bGQuY29udGFpbi5pdGVtKHNxbF9wYXRoKQogCiAgICAg ZGVmIHRlc3RfcmFpc2Vfbm90X2ZvdW5kX2V4Y2VwdGlvbihzZWxmKToKICAgICAgICAgIiIiUmFp c2UgZXJyb3Igd2hlbiB2ZXJzaW9uIGlzIHNtYWxsZXIgdGhhbiBhdmFpbGFibGUgdGVtcGxhdGVz IiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYubG9hZGVyLmdldF9zb3VyY2UoCi0g ICAgICAgICAgICAgICAgTm9uZSwgInNvbWVfZmVhdHVyZS9zcWwvIzEwMTAwIy9zb21lX2FjdGlv bi5zcWwiCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLmZhaWwoIk5vIGV4Y2VwdGlv biByYWlzZWQiKQotICAgICAgICBleGNlcHQgVGVtcGxhdGVOb3RGb3VuZDoKLSAgICAgICAgICAg IHJldHVybgorICAgICAgICAobGFtYmRhOiBzZWxmLmxvYWRlci5nZXRfc291cmNlKAorICAgICAg ICAgICAgTm9uZSwgInNvbWVfZmVhdHVyZS9zcWwvIzEwMTAwIy9zb21lX2FjdGlvbi5zcWwiCisg ICAgICAgICkpIHwgc2hvdWxkLnJhaXNlcyhUZW1wbGF0ZU5vdEZvdW5kKQogCiAgICAgZGVmIHRl c3RfZ2V0X3NvdXJjZV93aGVuX3RoZV92ZXJzaW9uX2lzX2dwZGJfNV8wKHNlbGYpOgogICAgICAg ICAiIiJSZW5kZXIgYSB2ZXJzaW9uIEdQREIgNS4wIHRlbXBsYXRlIHdoZW4gaXQgaXMgcHJlc2Vu dCIiIgpAQCAtMTc3LDEwICsxMTEsOSBAQCBjbGFzcyBUZXN0VmVyc2lvbmVkVGVtcGxhdGVMb2Fk ZXIoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgInNvbWVfZmVhdHVyZS9zcWwvI2dw ZGIjODAzMjMjL3NvbWVfYWN0aW9uX3dpdGhfZ3BkYl81XzAuc3FsIgogICAgICAgICApCiAKLSAg ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGV4cGVjdGVkX2NvbnRlbnQsIHN0 cihjb250ZW50KS5yZXBsYWNlKCJcciIsICIiKQotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNz ZXJ0SW4oc3FsX3BhdGgsIGZpbGVuYW1lKQorICAgICAgICBleHBlY3RlZF9jb250ZW50IHwgc2hv dWxkLmJlLmVxdWFsLnRvKHN0cihjb250ZW50KS5yZXBsYWNlKCJcciIsICIiKSkKKworICAgICAg ICBmaWxlbmFtZSB8IHNob3VsZC5jb250YWluLml0ZW0oc3FsX3BhdGgpCiAKICAgICBkZWYgdGVz dF9nZXRfc291cmNlX3doZW5fdGhlX3ZlcnNpb25faXNfZ3BkYl81XzBfcmV0dXJuc19kZWZhdWx0 KHNlbGYpOgogICAgICAgICAiIiJSZW5kZXIgYSB2ZXJzaW9uIEdQREIgNS4wIHRlbXBsYXRlIHdo ZW4gaXQgaXMgaW4gZGVmYXVsdCIiIgpAQCAtMTk0LDIwICsxMjcsMTUgQEAgY2xhc3MgVGVzdFZl cnNpb25lZFRlbXBsYXRlTG9hZGVyKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgIE5v bmUsICJzb21lX2ZlYXR1cmUvc3FsLyNncGRiIzgwMzIzIy9zb21lX2FjdGlvbl93aXRoX2RlZmF1 bHQuc3FsIgogICAgICAgICApCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAg ICAgIGV4cGVjdGVkX2NvbnRlbnQsIHN0cihjb250ZW50KS5yZXBsYWNlKCJcciIsICIiKQotICAg ICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0SW4oc3FsX3BhdGgsIGZpbGVuYW1lKQorICAgICAg ICBleHBlY3RlZF9jb250ZW50IHwgc2hvdWxkLmJlLmVxdWFsLnRvKHN0cihjb250ZW50KS5yZXBs YWNlKCJcciIsICIiKSkKKworICAgICAgICBmaWxlbmFtZSB8IHNob3VsZC5jb250YWluLml0ZW0o c3FsX3BhdGgpCiAKICAgICBkZWYgdGVzdF9yYWlzZV9ub3RfZm91bmRfZXhjZXB0aW9uX3doZW5f dGhlX3ZlcnNpb25faXNfZ3BkYihzZWxmKToKICAgICAgICAgIiIiIlJhaXNlIGVycm9yIHdoZW4g dmVyc2lvbiBpcyBncGRiIGJ1dCB0ZW1wbGF0ZSBkb2VzIG5vdCBleGlzdCIiIgotICAgICAgICB0 cnk6Ci0gICAgICAgICAgICBzZWxmLmxvYWRlci5nZXRfc291cmNlKAotICAgICAgICAgICAgICAg IE5vbmUsICJzb21lX2ZlYXR1cmUvc3FsLyNncGRiIzUwMTAwIy9zb21lX2FjdGlvbi5zcWwiCi0g ICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLmZhaWwoIk5vIGV4Y2VwdGlvbiByYWlzZWQi KQotICAgICAgICBleGNlcHQgVGVtcGxhdGVOb3RGb3VuZDoKLSAgICAgICAgICAgIHJldHVybgor ICAgICAgICAobGFtYmRhOiBzZWxmLmxvYWRlci5nZXRfc291cmNlKAorICAgICAgICAgICAgTm9u ZSwgInNvbWVfZmVhdHVyZS9zcWwvI2dwZGIjNTAxMDAjL3NvbWVfYWN0aW9uLnNxbCIKKyAgICAg ICAgKSkgfCBzaG91bGQucmFpc2VzKFRlbXBsYXRlTm90Rm91bmQpCiAKIAogY2xhc3MgRmFrZUFw cChGbGFzayk6CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi91dGlscy90ZXN0c19oZWxwZXIucHkg Yi93ZWIvcGdhZG1pbi91dGlscy90ZXN0c19oZWxwZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAuLmIzZGQwM2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v dXRpbHMvdGVzdHNfaGVscGVyLnB5CkBAIC0wLDAgKzEsNzYgQEAKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAy MDEzIC0gMjAxOCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJl IGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCitpbXBvcnQganNvbgorCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKK2Zyb20g cGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRv cgorCisKK2NsYXNzIENsaWVudFRlc3RCYXNlQ2xhc3MoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAg IGRlZiByZXNwb25zZV90b19qc29uKHNlbGYsIHJlc3BvbnNlKToKKyAgICAgICAgcmV0dXJuIGpz b24ubG9hZHMoCisgICAgICAgICAgICByZXNwb25zZS5nZXRfZGF0YShhc190ZXh0PVRydWUpLnJl cGxhY2UoJ1xuJywgJycpKQorCisgICAgZGVmIGFzc2VydF9ub2RlX2pzb24oc2VsZiwganNvbl9y ZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBfdHlwZSwgbW9kdWxlX25hbWUsIGlu b2RlLCBpY29uX2NsYXNzLCBsYWJlbCk6CisgICAgICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9t X3Jlc3BvbnNlKAorICAgICAgICAgICAganNvbl9yZXNwb25zZSwKKyAgICAgICAgICAgIF90eXBl LCBtb2R1bGVfbmFtZSwgaW5vZGUsIGljb25fY2xhc3MsIGxhYmVsKQorCisKK2RlZiBjb252ZXJ0 X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpOgorICAgIHJldHVybiBqc29uLmxvYWRzKAorICAg ICAgICByZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKS5yZXBsYWNlKCdcbicsICcnKSkKKwor CitkZWYgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UoanNvbl9yZXNwb25zZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdHlwZSwgbW9kdWxlX25hbWUsIGlu b2RlLCBpY29uX2NsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxh YmVsKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIG9ubHkgd29ya3MgZm9yIEpTT04gb2Jq ZWN0cyB0aGF0IGxvb2sgbGlrZToKKyAgICAgICAgeyBub2RlOgorICAgICAgICAgIHsKKyAgICAg ICAgICAgIG1vZHVsZTogJycsCisgICAgICAgICAgICBpbm9kZTogJycsCisgICAgICAgICAgICBp Y29uOiAnJywKKyAgICAgICAgICAgIGxhYmVsOiAnJywKKyAgICAgICAgICAgIGlkOiAnJworICAg ICAgICAgIH0KKyAgICAgICAgfQorICAgICIiIgorICAgIChqc29uX3Jlc3BvbnNlIHwgc2hvdWxk LmhhdmUua2V5KCdub2RlJykgPiBzaG91bGQuaGF2ZS5rZXkoJ190eXBlJykgPgorICAgICBzaG91 bGQuYmUuZXF1YWwudG8oX3R5cGUpCisgICAgICkKKyAgICAoanNvbl9yZXNwb25zZSB8CisgICAg IHNob3VsZC5oYXZlLmtleSgnbm9kZScpID4KKyAgICAgc2hvdWxkLmhhdmUua2V5KCdtb2R1bGUn KSA+CisgICAgIHNob3VsZC5iZS5lcXVhbC50byhtb2R1bGVfbmFtZSkKKyAgICAgKQorICAgIChq c29uX3Jlc3BvbnNlIHwKKyAgICAgc2hvdWxkLmhhdmUua2V5KCdub2RlJykgPgorICAgICBzaG91 bGQuaGF2ZS5rZXkoJ2lub2RlJykgPgorICAgICBzaG91bGQuYmUuZXF1YWwudG8oaW5vZGUpCisg ICAgICkKKyAgICAoanNvbl9yZXNwb25zZSB8CisgICAgIHNob3VsZC5oYXZlLmtleSgnbm9kZScp ID4KKyAgICAgc2hvdWxkLmhhdmUua2V5KCdpY29uJykgPgorICAgICBzaG91bGQubWF0Y2goaWNv bl9jbGFzcykKKyAgICAgKQorICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ25v ZGUnKSA+IHNob3VsZC5oYXZlLmtleSgnX3BpZCcpCisgICAgKGpzb25fcmVzcG9uc2UgfAorICAg ICBzaG91bGQuaGF2ZS5rZXkoJ25vZGUnKSA+CisgICAgIHNob3VsZC5oYXZlLmtleSgnbGFiZWwn KSA+CisgICAgIHNob3VsZC5iZS5lcXVhbC50byhsYWJlbCkKKyAgICAgKQorICAgIGpzb25fcmVz cG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ25vZGUnKSA+IHNob3VsZC5oYXZlLmtleSgnX2lkJykK KyAgICAoanNvbl9yZXNwb25zZSB8CisgICAgIHNob3VsZC5oYXZlLmtleSgnbm9kZScpID4KKyAg ICAgc2hvdWxkLmhhdmUua2V5KCdpZCcpID4KKyAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKF90eXBl ICsgJy8nICsgc3RyKGpzb25fcmVzcG9uc2VbJ25vZGUnXVsnX2lkJ10pKSkKZGlmZiAtLWdpdCBh L3dlYi9yZWdyZXNzaW9uL2NvbmZ0ZXN0LnB5IGIvd2ViL3JlZ3Jlc3Npb24vY29uZnRlc3QucHkK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjFmNjZiNDY1Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3JlZ3Jlc3Npb24vY29uZnRlc3QucHkKQEAgLTAsMCArMSwzNSBAQAorIwor IyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAt IDIwMTgsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyBy ZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisKKyMgZGVmIHB5dGVzdF9n ZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6CisjICAgICBwcmludCgnXG5cblxucHl0ZXN0X2dlbmVy YXRlX3Rlc3RzXG5cblxuJykKKyMgICAgIGlkbGlzdCA9IFtdCisjICAgICBhcmd2YWx1ZXMgPSBb XQorIyAgICAgZm9yIHNjZW5hcmlvIGluIG1ldGFmdW5jLmNscy5zY2VuYXJpb3M6CisjICAgICAg ICAgaWRsaXN0LmFwcGVuZChzY2VuYXJpb1swXSkKKyMgICAgICAgICBpdGVtcyA9IHNjZW5hcmlv WzFdLml0ZW1zKCkKKyMgICAgICAgICBhcmduYW1lcyA9IFt4WzBdIGZvciB4IGluIGl0ZW1zXQor IyAgICAgICAgIGFyZ3ZhbHVlcy5hcHBlbmQoKFt4WzFdIGZvciB4IGluIGl0ZW1zXSkpCisjICAg ICBtZXRhZnVuYy5wYXJhbWV0cml6ZShhcmduYW1lcywgYXJndmFsdWVzLCBpZHM9aWRsaXN0LCBz Y29wZT0iY2xhc3MiKQoraW1wb3J0IHN5cworCisKK2RlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMo bWV0YWZ1bmMpOgorICAgIHByaW50KCdHZW5lcmF0aW9uIG5leHQnKQorICAgIGlkbGlzdCA9IFtd CisgICAgYXJndmFsdWVzID0gW10KKyAgICBhcmduYW1lcyA9IFtdCisgICAgcHJpbnQoJ291dHB1 dCcsIGZpbGU9c3lzLnN0ZGVycikKKyAgICBmb3Igc2NlbmFyaW8gaW4gbWV0YWZ1bmMuY2xzLnNj ZW5hcmlvczoKKyAgICAgICAgaWRsaXN0LmFwcGVuZChzY2VuYXJpb1swXSkKKyAgICAgICAgaXRl bXMgPSBzY2VuYXJpb1sxXS5pdGVtcygpCisgICAgICAgIGFyZ25hbWVzID0gW3hbMF0gZm9yIHgg aW4gaXRlbXNdCisgICAgICAgIGFyZ3ZhbHVlcy5hcHBlbmQoKFt4WzFdIGZvciB4IGluIGl0ZW1z XSkpCisgICAgICAgIHByaW50KCdiYW1tJywgZmlsZT1zeXMuc3RkZXJyKQorICAgIHByaW50KCdz aGViYW5nJywgZmlsZT1zeXMuc3RkZXJyKQorICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKGFyZ25h bWVzLCBhcmd2YWx1ZXMsIGlkcz1pZGxpc3QsIHNjb3BlPSJjbGFzcyIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgaW5kaXJlY3Q9RmFsc2UpCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9m ZWF0dXJlX3V0aWxzL2Jhc2VfZmVhdHVyZV90ZXN0LnB5IGIvd2ViL3JlZ3Jlc3Npb24vZmVhdHVy ZV91dGlscy9iYXNlX2ZlYXR1cmVfdGVzdC5weQppbmRleCA1NjhmYzJlOS4uM2ZjYjk0YmYgMTAw NjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVfdXRpbHMvYmFzZV9mZWF0dXJlX3Rlc3Qu cHkKKysrIGIvd2ViL3JlZ3Jlc3Npb24vZmVhdHVyZV91dGlscy9iYXNlX2ZlYXR1cmVfdGVzdC5w eQpAQCAtMTYsNyArMTYsNyBAQCBmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQogZnJvbSBj b3B5IGltcG9ydCBkZWVwY29weQogCiBpbXBvcnQgY29uZmlnIGFzIGFwcF9jb25maWcKLWZyb20g cGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1p bi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogZnJv bSByZWdyZXNzaW9uLmZlYXR1cmVfdXRpbHMucGdhZG1pbl9wYWdlIGltcG9ydCBQZ2FkbWluUGFn ZQogCiAKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL3B5dGhvbl90ZXN0X3V0aWxzL3NxbF90 ZW1wbGF0ZV90ZXN0X2Jhc2UucHkgYi93ZWIvcmVncmVzc2lvbi9weXRob25fdGVzdF91dGlscy9z cWxfdGVtcGxhdGVfdGVzdF9iYXNlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl MDUyMTc4Ni4uMDAwMDAwMDAKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vcHl0aG9uX3Rlc3RfdXRpbHMv c3FsX3RlbXBsYXRlX3Rlc3RfYmFzZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAK LSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKLSMK LSMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxOCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVh bQotIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2Vu Y2UKLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBv cnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBp bXBvcnQgdGVzdF91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgRHJpdmVy UmVnaXN0cnkKLQotRHJpdmVyUmVnaXN0cnkubG9hZF9kcml2ZXJzKCkKLQotCi1jbGFzcyBTUUxU ZW1wbGF0ZVRlc3RCYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICBzY2VuYXJpb3MgPSBbCi0g ICAgICAgICgicGFyZW50IHRlc3QgY2xhc3MiLCBkaWN0KGlnbm9yZV90ZXN0PVRydWUpKQotICAg IF0KLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc3VwZXIoU1FMVGVtcGxhdGVU ZXN0QmFzZSwgc2VsZikuX19pbml0X18oKQotICAgICAgICBzZWxmLmRhdGFiYXNlX25hbWUgPSAt MQotICAgICAgICBzZWxmLnZlcnNpb25zX3RvX3Rlc3QgPSAtMQotCi0gICAgZGVmIHRlc3Rfc2V0 dXAoc2VsZiwgY29ubmVjdGlvbiwgY3Vyc29yKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIGdl bmVyYXRlX3NxbChzZWxmLCB2ZXJzaW9uKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIGFzc2Vy dGlvbnMoc2VsZiwgZmV0Y2hfcmVzdWx0LCBkZXNjcmlwdGlvbnMpOgotICAgICAgICBwYXNzCi0K LSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAiaWdub3Jl X3Rlc3QiKToKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIHdpdGggdGVzdF91dGlscy5E YXRhYmFzZShzZWxmLnNlcnZlcikgYXMgKGNvbm5lY3Rpb24sIGRhdGFiYXNlX25hbWUpOgotICAg ICAgICAgICAgdGVzdF91dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXIsIGRhdGFiYXNlX25h bWUsICJ0ZXN0X3RhYmxlIikKLSAgICAgICAgICAgIHNlbGYuZGF0YWJhc2VfbmFtZSA9IGRhdGFi YXNlX25hbWUKLQotICAgICAgICAgICAgaWYgY29ubmVjdGlvbi5zZXJ2ZXJfdmVyc2lvbiA8IDkw MTAwOgotICAgICAgICAgICAgICAgIHNlbGYudmVyc2lvbnNfdG9fdGVzdCA9IFsnZGVmYXVsdCdd Ci0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYudmVyc2lvbnNfdG9fdGVz dCA9IFsnOS4xX3BsdXMnXQotCi0gICAgICAgICAgICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNv cigpCi0gICAgICAgICAgICBzZWxmLnRlc3Rfc2V0dXAoY29ubmVjdGlvbiwgY3Vyc29yKQotCi0g ICAgICAgICAgICBmb3IgdmVyc2lvbiBpbiBzZWxmLnZlcnNpb25zX3RvX3Rlc3Q6Ci0gICAgICAg ICAgICAgICAgc3FsID0gc2VsZi5nZW5lcmF0ZV9zcWwodmVyc2lvbikKLQotICAgICAgICAgICAg ICAgIGN1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKLSAgICAgICAgICAgICAgICBjdXJzb3Iu ZXhlY3V0ZShzcWwpCi0gICAgICAgICAgICAgICAgZmV0Y2hfcmVzdWx0ID0gY3Vyc29yLmZldGNo YWxsKCkKLQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0aW9ucyhmZXRjaF9yZXN1bHQsIGN1 cnNvci5kZXNjcmlwdGlvbikKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL3B5dGhvbl90ZXN0 X3V0aWxzL3Rlc3RfdXRpbHMucHkgYi93ZWIvcmVncmVzc2lvbi9weXRob25fdGVzdF91dGlscy90 ZXN0X3V0aWxzLnB5CmluZGV4IDNlNTE3YjYxLi5kYmU1MTliYyAxMDA2NDQKLS0tIGEvd2ViL3Jl Z3Jlc3Npb24vcHl0aG9uX3Rlc3RfdXRpbHMvdGVzdF91dGlscy5weQorKysgYi93ZWIvcmVncmVz c2lvbi9weXRob25fdGVzdF91dGlscy90ZXN0X3V0aWxzLnB5CkBAIC0xNSw2ICsxNSw4IEBAIGlt cG9ydCB1dWlkCiBpbXBvcnQgcHN5Y29wZzIKIGltcG9ydCBzcWxpdGUzCiBmcm9tIGZ1bmN0b29s cyBpbXBvcnQgcGFydGlhbAorCitpbXBvcnQgcHl0ZXN0CiBmcm9tIHRlc3R0b29scy50ZXN0Y2Fz ZSBpbXBvcnQgY2xvbmVfdGVzdF93aXRoX25ld19pZAogCiBpbXBvcnQgY29uZmlnCkBAIC0zOCwz NyArNDAsMzMgQEAgZGVmIGdldF9kYl9jb25uZWN0aW9uKGRiLCB1c2VybmFtZSwgcGFzc3dvcmQs IGhvc3QsIHBvcnQsIHNzbG1vZGU9InByZWZlciIpOgogICAgIHJldHVybiBjb25uZWN0aW9uCiAK IAotZGVmIGxvZ2luX3Rlc3Rlcl9hY2NvdW50KHRlc3Rlcik6CitkZWYgbG9naW5fdGVzdGVyX2Fj Y291bnQoaHR0cF9jbGllbnQpOgogICAgICIiIgogICAgIFRoaXMgZnVuY3Rpb24gbG9naW4gdGhl IHRlc3QgY2xpZW50IHVzaW5nIGVudiB2YXJpYWJsZXMgZW1haWwgYW5kIHBhc3N3b3JkCi0gICAg OnBhcmFtIHRlc3RlcjogdGVzdCBjbGllbnQKLSAgICA6dHlwZSB0ZXN0ZXI6IGZsYXNrIHRlc3Qg Y2xpZW50IG9iamVjdAorICAgIDpwYXJhbSBodHRwX2NsaWVudDogdGVzdCBjbGllbnQKKyAgICA6 dHlwZSBodHRwX2NsaWVudDogZmxhc2sgdGVzdCBjbGllbnQgb2JqZWN0CiAgICAgOnJldHVybjog Tm9uZQogICAgICIiIgogICAgIGlmIG9zLmVudmlyb25bJ1BHQURNSU5fU0VUVVBfRU1BSUwnXSBh bmQgXAogICAgICAgIG9zLmVudmlyb25bJ1BHQURNSU5fU0VUVVBfUEFTU1dPUkQnXToKICAgICAg ICAgZW1haWwgPSBvcy5lbnZpcm9uWydQR0FETUlOX1NFVFVQX0VNQUlMJ10KICAgICAgICAgcGFz c3dvcmQgPSBvcy5lbnZpcm9uWydQR0FETUlOX1NFVFVQX1BBU1NXT1JEJ10KLSAgICAgICAgdGVz dGVyLnBvc3QoJy9sb2dpbicsIGRhdGE9ZGljdChlbWFpbD1lbWFpbCwgcGFzc3dvcmQ9cGFzc3dv cmQpLAotICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisgICAgICAg IGh0dHBfY2xpZW50LnBvc3QoJy9sb2dpbicsIGRhdGE9ZGljdChlbWFpbD1lbWFpbCwgcGFzc3dv cmQ9cGFzc3dvcmQpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9 VHJ1ZSkKICAgICBlbHNlOgotICAgICAgICBmcm9tIHJlZ3Jlc3Npb24ucnVudGVzdHMgaW1wb3J0 IGFwcF9zdGFydGVyCi0gICAgICAgIHByaW50KCJVbmFibGUgdG8gbG9naW4gdGVzdCBjbGllbnQs IGVtYWlsIGFuZCBwYXNzd29yZCBub3QgZm91bmQuIiwKLSAgICAgICAgICAgICAgZmlsZT1zeXMu c3RkZXJyKQotICAgICAgICBfY2xlYW51cCh0ZXN0ZXIsIGFwcF9zdGFydGVyKQotICAgICAgICBz eXMuZXhpdCgxKQorICAgICAgICBweXRlc3QuZmFpbCgnRW1haWwgYW5kIFBhc3N3b3JkIHdlcmUg bm90IHNldCBpbiB0aGUgZW52aXJvbm1lbnQnKQogCiAKLWRlZiBsb2dvdXRfdGVzdGVyX2FjY291 bnQodGVzdGVyKToKK2RlZiBsb2dvdXRfdGVzdGVyX2FjY291bnQoaHR0cF9jbGllbnQpOgogICAg ICIiIgogICAgIFRoaXMgZnVuY3Rpb24gbG9nb3V0IHRoZSB0ZXN0IGFjY291bnQKIAotICAgIDpw YXJhbSB0ZXN0ZXI6IHRlc3QgY2xpZW50Ci0gICAgOnR5cGUgdGVzdGVyOiBmbGFzayB0ZXN0IGNs aWVudCBvYmplY3QKKyAgICA6cGFyYW0gaHR0cF9jbGllbnQ6IHRlc3QgY2xpZW50CisgICAgOnR5 cGUgaHR0cF9jbGllbnQ6IGZsYXNrIHRlc3QgY2xpZW50IG9iamVjdAogICAgIDpyZXR1cm46IE5v bmUKICAgICAiIiIKIAotICAgIHJlc3BvbnNlID0gdGVzdGVyLmdldCgnL2xvZ291dCcpCisgICAg aHR0cF9jbGllbnQuZ2V0KCcvbG9nb3V0JykKIAogCiBkZWYgZ2V0X2NvbmZpZ19kYXRhKCk6CkBA IC00NTgsMTIgKzQ1NiwyMCBAQCBkZWYgYWRkX2RiX3RvX3BhcmVudF9ub2RlX2RpY3Qoc3J2X2lk LCBkYl9pZCwgdGVzdF9kYl9uYW1lKToKICAgICB9KQogCiAKLWRlZiBhZGRfc2NoZW1hX3RvX3Bh cmVudF9ub2RlX2RpY3Qoc3J2X2lkLCBkYl9pZCwgc2NoZW1hX2lkLCBzY2hlbWFfbmFtZSk6Citk ZWYgYWRkX3NjaGVtYV90b19wYXJlbnRfbm9kZV9kaWN0KHNydl9pZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGJfcGFzc3dvcmQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRiX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfaWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lKToKICAgICAiIiIg VGhpcyBmdW5jdGlvbiBzdG9yZXMgdGhlIHNjaGVtYSBkZXRhaWxzIGludG8gcGFyZW50IGRpY3Qg IiIiCi0gICAgc2VydmVyX2luZm9ybWF0aW9uID0geyJzZXJ2ZXJfaWQiOiBzcnZfaWQsICJkYl9p ZCI6IGRiX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAic2NoZW1hX2lkIjogc2NoZW1h X2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAic2NoZW1hX25hbWUiOiBzY2hlbWFfbmFt ZX0KLSAgICByZWdyZXNzaW9uLnBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdLmFwcGVuZChzZXJ2 ZXJfaW5mb3JtYXRpb24pCisgICAgc2VydmVyX2luZm9ybWF0aW9uID0geydzZXJ2ZXJfaWQnOiBz cnZfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdkYl9uYW1lJzogZGJfbmFtZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgJ2RiX2lkJzogZGJfaWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICdzY2hlbWFfaWQnOiBzY2hlbWFfaWQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICdzY2hlbWFfbmFtZSc6IHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAnZGJfcGFzc3dvcmQnOiBkYl9wYXNzd29yZH0KKyAgICByZWdyZXNzaW9uLnBhcmVudF9ub2Rl X2RpY3RbJ3NjaGVtYSddLmFwcGVuZChzZXJ2ZXJfaW5mb3JtYXRpb24pCiAgICAgcmV0dXJuIHNl cnZlcl9pbmZvcm1hdGlvbgogCiAKQEAgLTQ3NywxMSArNDgzLDExIEBAIGRlZiBjcmVhdGVfcGFy ZW50X3NlcnZlcl9ub2RlKHNlcnZlcl9pbmZvKToKICAgICAiIiIKICAgICBzcnZfaWQgPSBjcmVh dGVfc2VydmVyKHNlcnZlcl9pbmZvKQogICAgICMgQ3JlYXRlIGRhdGFiYXNlCi0gICAgdGVzdF9k Yl9uYW1lID0gInRlc3RfZGJfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo2XQorICAgIHRlc3Rf ZGJfbmFtZSA9ICd0ZXN0X2RiXyVzJyAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6Nl0KICAgICBkYl9p ZCA9IGNyZWF0ZV9kYXRhYmFzZShzZXJ2ZXJfaW5mbywgdGVzdF9kYl9uYW1lKQogICAgIGFkZF9k Yl90b19wYXJlbnRfbm9kZV9kaWN0KHNydl9pZCwgZGJfaWQsIHRlc3RfZGJfbmFtZSkKICAgICAj IENyZWF0ZSBzY2hlbWEKLSAgICBzY2hlbWFfbmFtZSA9ICJ0ZXN0X3NjaGVtYV8lcyIgJSBzdHIo dXVpZC51dWlkNCgpKVsxOjZdCisgICAgc2NoZW1hX25hbWUgPSAndGVzdF9zY2hlbWFfJXMnICUg c3RyKHV1aWQudXVpZDQoKSlbMTo2XQogICAgIGNvbm5lY3Rpb24gPSBnZXRfZGJfY29ubmVjdGlv bigKICAgICAgICAgdGVzdF9kYl9uYW1lLAogICAgICAgICBzZXJ2ZXJfaW5mb1sndXNlcm5hbWUn XSwKQEAgLTQ5Myw3ICs0OTksMTIgQEAgZGVmIGNyZWF0ZV9wYXJlbnRfc2VydmVyX25vZGUoc2Vy dmVyX2luZm8pOgogCiAgICAgc2NoZW1hID0gcmVncmVzc2lvbi5zY2hlbWFfdXRpbHMuY3JlYXRl X3NjaGVtYShjb25uZWN0aW9uLCBzY2hlbWFfbmFtZSkKICAgICByZXR1cm4gYWRkX3NjaGVtYV90 b19wYXJlbnRfbm9kZV9kaWN0KAotICAgICAgICBzcnZfaWQsIGRiX2lkLCBzY2hlbWFbMF0sIHNj aGVtYVsxXQorICAgICAgICBzcnZfaWQsCisgICAgICAgIHNlcnZlcl9pbmZvWydkYl9wYXNzd29y ZCddLAorICAgICAgICB0ZXN0X2RiX25hbWUsCisgICAgICAgIGRiX2lkLAorICAgICAgICBzY2hl bWFbMF0sCisgICAgICAgIHNjaGVtYVsxXQogICAgICkKIAogCmRpZmYgLS1naXQgYS93ZWIvcmVn cmVzc2lvbi9yZXF1aXJlbWVudHMudHh0IGIvd2ViL3JlZ3Jlc3Npb24vcmVxdWlyZW1lbnRzLnR4 dAppbmRleCBmZmMzZWYxMS4uMDBjZDgxYWYgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL3Jl cXVpcmVtZW50cy50eHQKKysrIGIvd2ViL3JlZ3Jlc3Npb24vcmVxdWlyZW1lbnRzLnR4dApAQCAt OCwxMCArOCwxMyBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IwogcHljb2Rlc3R5bGU9PTIuMy4xCiBweXBlcmNsaXB+PTEuNi4wCitweXRlc3Q9PTMuNS4xCiB0 ZXN0c2NlbmFyaW9zPT0wLjUuMAogdGVzdHRvb2xzPT0yLjMuMAogdHJhY2ViYWNrMj09MS40LjAK IHVuaXR0ZXN0Mj09MS4xLjAKK2dyYXBwYT09MC4xLjgKK3B5dGVzdC1qc29uPT0wLjQuMAogCiAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCiAjIE1vZHVsZXMgc3BlY2lmaWNhbGx5IHJlcXVpcmVzIGZvciBQeXRob24yLjcgb3Ig Z3JlYXRlciB2ZXJzaW9uCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9ydW50ZXN0cy5zaCBi L3dlYi9yZWdyZXNzaW9uL3J1bnRlc3RzLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAw MDAwMDAwLi5iNDcwMWQzYgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9yZWdyZXNzaW9uL3J1bnRl c3RzLnNoCkBAIC0wLDAgKzEsNSBAQAorIyEvYmluL3NoCisKK3dlYl9kaXI9JChjZCBgZGlybmFt ZSAkMGAgJiYgY2QgLi4gJiYgcHdkICkKK2V4cG9ydCBQWVRIT05QQVRIPSR3ZWJfZGlyCitweXRl c3QgJHdlYl9kaXIvcGdhZG1pbiAtLWpzb249dGVzdF9yZXN1bHQuanNvbiAtLXJlc3VsdGxvZz1y ZWdyZXNzaW9uLmxvZwotLSAKMi4xNy4wCgo= --00000000000004228b056e72de09 Content-Type: application/octet-stream; name="0004-Upgrade-grappa-to-support-python-2.7.patch" Content-Disposition: attachment; filename="0004-Upgrade-grappa-to-support-python-2.7.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jibso9bi3 ZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL3JlcXVpcmVtZW50cy50eHQgYi93ZWIvcmVncmVz c2lvbi9yZXF1aXJlbWVudHMudHh0CmluZGV4IDAwY2Q4MWFmLi5mNzE3MTZhNyAxMDA2NDQKLS0t IGEvd2ViL3JlZ3Jlc3Npb24vcmVxdWlyZW1lbnRzLnR4dAorKysgYi93ZWIvcmVncmVzc2lvbi9y ZXF1aXJlbWVudHMudHh0CkBAIC0xMyw3ICsxMyw3IEBAIHRlc3RzY2VuYXJpb3M9PTAuNS4wCiB0 ZXN0dG9vbHM9PTIuMy4wCiB0cmFjZWJhY2syPT0xLjQuMAogdW5pdHRlc3QyPT0xLjEuMAotZ3Jh cHBhPT0wLjEuOAorZ3JhcHBhPT0wLjEuOQogcHl0ZXN0LWpzb249PTAuNC4wCiAKICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK LS0gCjIuMTcuMAoK --00000000000004228b056e72de09 Content-Type: application/octet-stream; name="0003-Patch-0003-feature-tests.patch" Content-Disposition: attachment; filename="0003-Patch-0003-feature-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jibso9bf2 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2NvbmZ0ZXN0LnB5IGIvd2ViL2NvbmZ0ZXN0LnB5CnNp bWlsYXJpdHkgaW5kZXggODglCnJlbmFtZSBmcm9tIHdlYi9wZ2FkbWluL2NvbmZ0ZXN0LnB5CnJl bmFtZSB0byB3ZWIvY29uZnRlc3QucHkKaW5kZXggNGFiMTc0ZWQuLmMwYzM0NzZkIDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi9jb25mdGVzdC5weQorKysgYi93ZWIvY29uZnRlc3QucHkKQEAgLTYs MTcgKzYsMzkgQEAKICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdy ZVNRTCBMaWNlbmNlCiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQgYXRleGl0CitpbXBv cnQgbG9nZ2luZwogaW1wb3J0IG9zCitpbXBvcnQgc2lnbmFsCiBpbXBvcnQgc3lzCiAKIGltcG9y dCBweXRlc3QKK2Zyb20gc2VsZW5pdW0gaW1wb3J0IHdlYmRyaXZlcgorZnJvbSBzZWxlbml1bS53 ZWJkcml2ZXIuY2hyb21lLm9wdGlvbnMgaW1wb3J0IE9wdGlvbnMKKworbG9nZ2VyID0gbG9nZ2lu Zy5nZXRMb2dnZXIoX19uYW1lX18pCitmaWxlX25hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKF9fZmls ZV9fKQorCitpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDIsIDcpOgorICAgIHBhc3MKK2Vsc2U6Cisg ICAgcGFzcworCitpZiBzeXMudmVyc2lvbl9pbmZvWzBdID49IDM6CisgICAgaW1wb3J0IGJ1aWx0 aW5zCitlbHNlOgorICAgIGltcG9ydCBfX2J1aWx0aW5fXyBhcyBidWlsdGlucworCisjIEVuc3Vy ZSB0aGUgZ2xvYmFsIHNlcnZlciBtb2RlIGlzIHNldC4KK2J1aWx0aW5zLlNFUlZFUl9NT0RFID0g Tm9uZQogCiBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIGZpbGVfbmFtZSA9 IG9zLnBhdGguYmFzZW5hbWUoX19maWxlX18pCiAKIENVUlJFTlRfUEFUSCA9IG9zLnBhdGguZGly bmFtZShvcy5wYXRoLnJlYWxwYXRoKF9fZmlsZV9fKSkKIAotcm9vdCA9IG9zLnBhdGguZGlybmFt ZShDVVJSRU5UX1BBVEgpCityb290ID0gb3MucGF0aC5kaXJuYW1lKENVUlJFTlRfUEFUSCkgKyBv cy5wYXRoLnNlcCArICd3ZWInCiAKIGlmIHN5cy5wYXRoWzBdICE9IHJvb3Q6CiAgICAgc3lzLnBh dGguaW5zZXJ0KDAsIHJvb3QpCkBAIC0zNiw2ICs1OCwxMyBAQCBmcm9tIHJlZ3Jlc3Npb24gaW1w b3J0IHRlc3Rfc2V0dXAKIAogZnJvbSByZWdyZXNzaW9uLmZlYXR1cmVfdXRpbHMuYXBwX3N0YXJ0 ZXIgaW1wb3J0IEFwcFN0YXJ0ZXIKIAoraWYgY29uZmlnLlNFUlZFUl9NT0RFIGlzIFRydWU6Cisg ICAgY29uZmlnLlNFQ1VSSVRZX1JFQ09WRVJBQkxFID0gVHJ1ZQorICAgIGNvbmZpZy5TRUNVUklU WV9DSEFOR0VBQkxFID0gVHJ1ZQorICAgIGNvbmZpZy5TRUNVUklUWV9QT1NUX0NIQU5HRV9WSUVX ID0gJ2Jyb3dzZXIuY2hhbmdlX3Bhc3N3b3JkJworCitmcm9tIHJlZ3Jlc3Npb24uZmVhdHVyZV91 dGlscy5hcHBfc3RhcnRlciBpbXBvcnQgQXBwU3RhcnRlcgorCiAjIERlbGV0ZSBTUUxpdGUgZGIg ZmlsZSBpZiBleGlzdHMKIGlmIG9zLnBhdGguaXNmaWxlKGNvbmZpZy5URVNUX1NRTElURV9QQVRI KToKICAgICBvcy5yZW1vdmUoY29uZmlnLlRFU1RfU1FMSVRFX1BBVEgpCkBAIC03NCw2ICsxMDMs MTEgQEAgZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxz CiAKIGNvbmZpZy5TRVRUSU5HU19TQ0hFTUFfVkVSU0lPTiA9IFNDSEVNQV9WRVJTSU9OCiAKKyMg T3ZlcnJpZGUgc29tZSBvdGhlciBkZWZhdWx0cworZnJvbSBsb2dnaW5nIGltcG9ydCBXQVJOSU5H CisKK2NvbmZpZy5DT05TT0xFX0xPR19MRVZFTCA9IFdBUk5JTkcKKwogIyBDcmVhdGUgdGhlIGFw cAogYXBwID0gY3JlYXRlX2FwcCgpCiBhcHAuY29uZmlnWydXVEZfQ1NSRl9FTkFCTEVEJ10gPSBG YWxzZQpAQCAtODcsMTQgKzEyMSwyNSBAQCBoYW5kbGVfY2xlYW51cCA9IE5vbmUKIHNlcnZlcl9p bmZvID0gdGVzdF91dGlscy5nZXRfY29uZmlnX2RhdGEoKQogCiAKK0BweXRlc3QuaG9va2ltcGwo dHJ5Zmlyc3Q9VHJ1ZSwgaG9va3dyYXBwZXI9VHJ1ZSkKK2RlZiBweXRlc3RfcnVudGVzdF9tYWtl cmVwb3J0KGl0ZW0sIGNhbGwpOgorICAgICMgZXhlY3V0ZSBhbGwgb3RoZXIgaG9va3MgdG8gb2J0 YWluIHRoZSByZXBvcnQgb2JqZWN0CisgICAgb3V0Y29tZSA9IHlpZWxkCisgICAgcmVwID0gb3V0 Y29tZS5nZXRfcmVzdWx0KCkKKworICAgICMgc2V0IGEgcmVwb3J0IGF0dHJpYnV0ZSBmb3IgZWFj aCBwaGFzZSBvZiBhIGNhbGwsIHdoaWNoIGNhbgorICAgICMgYmUgInNldHVwIiwgImNhbGwiLCAi dGVhcmRvd24iCisKKyAgICBzZXRhdHRyKGl0ZW0sICJyZXBfIiArIHJlcC53aGVuLCByZXApCisK KwogQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIiwgYXV0b3VzZT1UcnVlKQotZGVmIGRh dGFiYXNlX3NlcnZlcigpOgorZGVmIGRhdGFiYXNlX3NlcnZlcihyZXF1ZXN0KToKICAgICBzZXJ2 ZXJfaW5mb3JtYXRpb24gPSB0ZXN0X3V0aWxzLmNyZWF0ZV9wYXJlbnRfc2VydmVyX25vZGUoc2Vy dmVyX2luZm9bMF0pCisgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRhOiB0ZXN0X3V0aWxz LmRlbGV0ZV90ZXN0X3NlcnZlcih0ZXN0X2NsaWVudCkpCiAKICAgICB5aWVsZCBzZXJ2ZXJfaW5m b3JtYXRpb24KIAotICAgIHRlc3RfdXRpbHMuZGVsZXRlX3Rlc3Rfc2VydmVyKHRlc3RfY2xpZW50 KQotCiAKIEBweXRlc3QuZml4dHVyZShzY29wZT0nc2Vzc2lvbicpCiBkZWYgY29udGV4dF9vZl90 ZXN0cyhkYXRhYmFzZV9zZXJ2ZXIpOgpkaWZmIC0tZ2l0IGEvd2ViL3BhY2thZ2UuanNvbiBiL3dl Yi9wYWNrYWdlLmpzb24KaW5kZXggMGU4OTU5NjguLjIzZWEzZDBmIDEwMDY0NAotLS0gYS93ZWIv cGFja2FnZS5qc29uCisrKyBiL3dlYi9wYWNrYWdlLmpzb24KQEAgLTEwMiw4ICsxMDIsOCBAQAog ICAgICJ0ZXN0Omthcm1hLW9uY2UiOiAieWFybiBydW4gbGludGVyICYmIHlhcm4gcnVuIGthcm1h IHN0YXJ0IC0tc2luZ2xlLXJ1biIsCiAgICAgInRlc3Q6a2FybWEiOiAieWFybiBydW4gbGludGVy ICYmIHlhcm4gcnVuIGthcm1hIHN0YXJ0IiwKICAgICAidGVzdDp1bml0IjogInlhcm4gcnVuIHBl cDggJiYgcHl0aG9uIC1tIHB5dGVzdCAtcSBwZ2FkbWluIiwKLSAgICAidGVzdDpmZWF0dXJlIjog Inlhcm4gcnVuIGJ1bmRsZSAmJiBweXRob24gcmVncmVzc2lvbi9ydW50ZXN0cy5weSAtLXBrZyBm ZWF0dXJlX3Rlc3RzIiwKLSAgICAidGVzdCI6ICJ5YXJuIHJ1biB0ZXN0Omthcm1hLW9uY2UgJiYg eWFybiBydW4gYnVuZGxlICYmIHlhcm4gdGVzdDp1bml0ICYmIHB5dGhvbiByZWdyZXNzaW9uL3J1 bnRlc3RzLnB5IC0tcGtnIGZlYXR1cmVfdGVzdHMiLAorICAgICJ0ZXN0OmZlYXR1cmUiOiAieWFy biBydW4gYnVuZGxlICYmIHB5dGhvbiAtbSBweXRlc3QgLXEgcmVncmVzc2lvbi9mZWF0dXJlX3Rl c3RzIiwKKyAgICAidGVzdCI6ICJ5YXJuIHJ1biB0ZXN0Omthcm1hLW9uY2UgJiYgeWFybiBydW4g YnVuZGxlICYmIHlhcm4gdGVzdDp1bml0ICYmIHlhcm4gdGVzdDpmZWF0dXJlIiwKICAgICAicGVw OCI6ICJweWNvZGVzdHlsZSAtLWNvbmZpZz0ucHljb2Rlc3R5bGUgLiIKICAgfQogfQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVz dF9hZGRfc2VydmVyX3dpdGhfc3NoX3R1bm5lbC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfYWRkX3NlcnZlcl93aXRoX3NzaF90dW5uZWwu cHkKaW5kZXggOWNjNGY2YTQuLmQxNGIzMDAyIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2FkZF9zZXJ2ZXJfd2l0aF9zc2hf dHVubmVsLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L3Rlc3RzL3Rlc3RfYWRkX3NlcnZlcl93aXRoX3NzaF90dW5uZWwucHkKQEAgLTYsMTIgKzYsMTEg QEAKICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNl bmNlCiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCitpbXBvcnQgY29weQogaW1wb3J0IGpzb24KIAog ZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAogCi1mcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0 X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKIGZyb20gcmVncmVzc2lvbi5weXRo b25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogCiAKQEAgLTI5LDcgKzI4 LDcgQEAgY2xhc3MgVGVzdFNlcnZlcnNXaXRoU1NIVHVubmVsQWRkOgogCiAgICAgICAgIHVybCA9 ICIvYnJvd3Nlci9zZXJ2ZXIvb2JqL3swfS8iLmZvcm1hdCh1dGlscy5TRVJWRVJfR1JPVVApCiAK LSAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAg ICBzZWxmLnNlcnZlciA9IGNvcHkuZGVlcGNvcHkoY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10p CiAgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQog ICAgICAgICBzZWxmLnNlcnZlclsndXNlX3NzaF90dW5uZWwnXSA9IDEKICAgICAgICAgc2VsZi5z ZXJ2ZXJbJ3R1bm5lbF9ob3N0J10gPSAnMTI3LjAuMC4xJwpAQCAtNjEsNyArNjAsNyBAQCBjbGFz cyBUZXN0U2VydmVyc1dpdGhTU0hUdW5uZWxBZGQ6CiAKICAgICAgICAgdXJsID0gIi9icm93c2Vy L3NlcnZlci9vYmovezB9LyIuZm9ybWF0KHV0aWxzLlNFUlZFUl9HUk9VUCkKIAotICAgICAgICBz ZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2Vy dmVyID0gY29weS5kZWVwY29weShjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXSkKICAgICAgICAg c2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCiAgICAgICAgIHNl bGYuc2VydmVyWyd1c2Vfc3NoX3R1bm5lbCddID0gMQogICAgICAgICBzZWxmLnNlcnZlclsndHVu bmVsX2hvc3QnXSA9ICcxMjcuMC4wLjEnCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9jb25m dGVzdC5weSBiL3dlYi9yZWdyZXNzaW9uL2NvbmZ0ZXN0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAxZjY2YjQ2NS4uMDAwMDAwMDAKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vY29uZnRl c3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0jCi0jIHBnQWRtaW4gNCAtIFBv c3RncmVTUUwgVG9vbHMKLSMKLSMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxOCwgVGhlIHBnQWRt aW4gRGV2ZWxvcG1lbnQgVGVhbQotIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRo ZSBQb3N0Z3JlU1FMIExpY2VuY2UKLSMKLQotIyBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1l dGFmdW5jKToKLSMgICAgIHByaW50KCdcblxuXG5weXRlc3RfZ2VuZXJhdGVfdGVzdHNcblxuXG4n KQotIyAgICAgaWRsaXN0ID0gW10KLSMgICAgIGFyZ3ZhbHVlcyA9IFtdCi0jICAgICBmb3Igc2Nl bmFyaW8gaW4gbWV0YWZ1bmMuY2xzLnNjZW5hcmlvczoKLSMgICAgICAgICBpZGxpc3QuYXBwZW5k KHNjZW5hcmlvWzBdKQotIyAgICAgICAgIGl0ZW1zID0gc2NlbmFyaW9bMV0uaXRlbXMoKQotIyAg ICAgICAgIGFyZ25hbWVzID0gW3hbMF0gZm9yIHggaW4gaXRlbXNdCi0jICAgICAgICAgYXJndmFs dWVzLmFwcGVuZCgoW3hbMV0gZm9yIHggaW4gaXRlbXNdKSkKLSMgICAgIG1ldGFmdW5jLnBhcmFt ZXRyaXplKGFyZ25hbWVzLCBhcmd2YWx1ZXMsIGlkcz1pZGxpc3QsIHNjb3BlPSJjbGFzcyIpCi1p bXBvcnQgc3lzCi0KLQotZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6Ci0gICAg cHJpbnQoJ0dlbmVyYXRpb24gbmV4dCcpCi0gICAgaWRsaXN0ID0gW10KLSAgICBhcmd2YWx1ZXMg PSBbXQotICAgIGFyZ25hbWVzID0gW10KLSAgICBwcmludCgnb3V0cHV0JywgZmlsZT1zeXMuc3Rk ZXJyKQotICAgIGZvciBzY2VuYXJpbyBpbiBtZXRhZnVuYy5jbHMuc2NlbmFyaW9zOgotICAgICAg ICBpZGxpc3QuYXBwZW5kKHNjZW5hcmlvWzBdKQotICAgICAgICBpdGVtcyA9IHNjZW5hcmlvWzFd Lml0ZW1zKCkKLSAgICAgICAgYXJnbmFtZXMgPSBbeFswXSBmb3IgeCBpbiBpdGVtc10KLSAgICAg ICAgYXJndmFsdWVzLmFwcGVuZCgoW3hbMV0gZm9yIHggaW4gaXRlbXNdKSkKLSAgICAgICAgcHJp bnQoJ2JhbW0nLCBmaWxlPXN5cy5zdGRlcnIpCi0gICAgcHJpbnQoJ3NoZWJhbmcnLCBmaWxlPXN5 cy5zdGRlcnIpCi0gICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoYXJnbmFtZXMsIGFyZ3ZhbHVlcywg aWRzPWlkbGlzdCwgc2NvcGU9ImNsYXNzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBpbmRp cmVjdD1GYWxzZSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvX19pbml0 X18ucHkgYi93ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3Rlc3RzL19faW5pdF9fLnB5CnNpbWlsYXJp dHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB3ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL19faW5p dF9fLnB5CnJlbmFtZSB0byB3ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3Rlc3RzL19faW5pdF9fLnB5 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL2NvcHlfc2VsZWN0ZWRfcXVl cnlfcmVzdWx0c19mZWF0dXJlX3Rlc3QucHkgYi93ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3Rlc3Rz L2NvcHlfc2VsZWN0ZWRfcXVlcnlfcmVzdWx0c19mZWF0dXJlX3Rlc3QucHkKc2ltaWxhcml0eSBp bmRleCA4NSUKcmVuYW1lIGZyb20gd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9jb3B5X3NlbGVj dGVkX3F1ZXJ5X3Jlc3VsdHNfZmVhdHVyZV90ZXN0LnB5CnJlbmFtZSB0byB3ZWIvcmVncmVzc2lv bi9mZWF0dXJlX3Rlc3RzL2NvcHlfc2VsZWN0ZWRfcXVlcnlfcmVzdWx0c19mZWF0dXJlX3Rlc3Qu cHkKaW5kZXggYWI1NGQyODkuLjlkYmRiNTNkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9mZWF0 dXJlX3Rlc3RzL2NvcHlfc2VsZWN0ZWRfcXVlcnlfcmVzdWx0c19mZWF0dXJlX3Rlc3QucHkKKysr IGIvd2ViL3JlZ3Jlc3Npb24vZmVhdHVyZV90ZXN0cy9jb3B5X3NlbGVjdGVkX3F1ZXJ5X3Jlc3Vs dHNfZmVhdHVyZV90ZXN0LnB5CkBAIC04LDYgKzgsNyBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAog aW1wb3J0IHB5cGVyY2xpcAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAogCiBmcm9tIHNlbGVu aXVtLndlYmRyaXZlciBpbXBvcnQgQWN0aW9uQ2hhaW5zCiBmcm9tIHNlbGVuaXVtLndlYmRyaXZl ci5jb21tb24ua2V5cyBpbXBvcnQgS2V5cwpAQCAtMTYsMTYgKzE3LDE1IEBAIGZyb20gcmVncmVz c2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscwogZnJvbSByZWdyZXNzaW9u LmZlYXR1cmVfdXRpbHMuYmFzZV9mZWF0dXJlX3Rlc3QgaW1wb3J0IEJhc2VGZWF0dXJlVGVzdAog CiAKLWNsYXNzIENvcHlTZWxlY3RlZFF1ZXJ5UmVzdWx0c0ZlYXR1cmVUZXN0KEJhc2VGZWF0dXJl VGVzdCk6Ci0gICAgIiIiCi0gICAgVGVzdHMgdmFyaW91cyB3YXlzIHRvIGNvcHkgZGF0YSBmcm9t IHRoZSBxdWVyeSByZXN1bHRzIGdyaWQuCi0gICAgIiIiCitjbGFzcyBUZXN0Q29weVNlbGVjdGVk UXVlcnlSZXN1bHRzKEJhc2VGZWF0dXJlVGVzdCk6CisgICAgZGVmIHRlc3RfY29weV9zZWxlY3Rl ZF9xdWVyeV9yZXN1bHRzKHNlbGYsIGRyaXZlcik6CisgICAgICAgICIiIgorICAgICAgICBUZXN0 cyB2YXJpb3VzIHdheXMgdG8gY29weSBkYXRhIGZyb20gdGhlIHF1ZXJ5IHJlc3VsdHMgZ3JpZC4K KyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuZHJpdmVyID0gZHJpdmVyCiAKLSAgICBzY2VuYXJp b3MgPSBbCi0gICAgICAgICgiQ29weSByb3dzLCBjb2x1bW4gdXNpbmcgYnV0dG9uIGFuZCBrZXli b2FyZCBzaG9ydGN1dCIsIGRpY3QoKSkKLSAgICBdCisgICAgICAgIHNlbGYuc2V0VXAoKQogCi0g ICAgZGVmIGJlZm9yZShzZWxmKToKICAgICAgICAgY29ubmVjdGlvbiA9IHRlc3RfdXRpbHMuZ2V0 X2RiX2Nvbm5lY3Rpb24oCiAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGInXSwKICAgICAgICAg ICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLApAQCAtNDAsNyArNDAsNiBAQCBjbGFzcyBDb3B5 U2VsZWN0ZWRRdWVyeVJlc3VsdHNGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAg ICAgICAgc2VsZi5zZXJ2ZXIsICJhY2NlcHRhbmNlX3Rlc3RfZGIiLCAidGVzdF90YWJsZSIpCiAg ICAgICAgIHNlbGYucGFnZS5hZGRfc2VydmVyKHNlbGYuc2VydmVyKQogCi0gICAgZGVmIHJ1blRl c3Qoc2VsZik6CiAgICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Blbl90cmVlX2l0ZW0oc2VsZi5z ZXJ2ZXJbJ25hbWUnXSkKICAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3RyZWVfaXRlbSgn RGF0YWJhc2VzJykKICAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3RyZWVfaXRlbSgnYWNj ZXB0YW5jZV90ZXN0X2RiJykKQEAgLTYzLDYgKzYyLDE5IEBAIGNsYXNzIENvcHlTZWxlY3RlZFF1 ZXJ5UmVzdWx0c0ZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgIHNlbGYuX3No aWZ0X3Jlc2l6ZXNfY29sdW1uX3NlbGVjdGlvbigpCiAgICAgICAgIHNlbGYuX21vdXNldXBfb3V0 c2lkZV9ncmlkX3N0aWxsX21ha2VzX2Ffc2VsZWN0aW9uKCkKIAorICAgICAgICBzZWxmLnBhZ2Uu Y2xvc2VfcXVlcnlfdG9vbCgpCisgICAgICAgIHNlbGYucGFnZS5yZW1vdmVfc2VydmVyKHNlbGYu c2VydmVyKQorCisgICAgICAgIGNvbm5lY3Rpb24gPSB0ZXN0X3V0aWxzLmdldF9kYl9jb25uZWN0 aW9uKAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiJ10sCisgICAgICAgICAgICBzZWxmLnNl cnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCdd LAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2hvc3QnXSwKKyAgICAgICAgICAgIHNlbGYuc2Vy dmVyWydwb3J0J10sCisgICAgICAgICAgICBzZWxmLnNlcnZlclsnc3NsbW9kZSddCisgICAgICAg ICkKKyAgICAgICAgdGVzdF91dGlscy5kcm9wX2RhdGFiYXNlKGNvbm5lY3Rpb24sICJhY2NlcHRh bmNlX3Rlc3RfZGIiKQorCiAgICAgZGVmIF9jb3BpZXNfcm93cyhzZWxmKToKICAgICAgICAgcHlw ZXJjbGlwLmNvcHkoIm9sZCBjbGlwYm9hcmQgY29udGVudHMiKQogICAgICAgICBzZWxmLnBhZ2Uu ZmluZF9ieV94cGF0aCgKQEAgLTcwLDggKzgyLDcgQEAgY2xhc3MgQ29weVNlbGVjdGVkUXVlcnlS ZXN1bHRzRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKIAogICAgICAgICBzZWxmLnBhZ2Uu ZmluZF9ieV94cGF0aCgiLy8qW0BpZD0nYnRuLWNvcHktcm93J10iKS5jbGljaygpCiAKLSAgICAg ICAgc2VsZi5hc3NlcnRFcXVhbCgnIlNvbWUtTmFtZSJcdCI2Ilx0InNvbWUgaW5mbyInLAotICAg ICAgICAgICAgICAgICAgICAgICAgIHB5cGVyY2xpcC5wYXN0ZSgpKQorICAgICAgICBweXBlcmNs aXAucGFzdGUoKSB8IHNob3VsZC5lcXVhbCgnIlNvbWUtTmFtZSJcdCI2Ilx0InNvbWUgaW5mbyIn KQogCiAgICAgZGVmIF9jb3BpZXNfY29sdW1ucyhzZWxmKToKICAgICAgICAgcHlwZXJjbGlwLmNv cHkoIm9sZCBjbGlwYm9hcmQgY29udGVudHMiKQpAQCAtODEsMTEgKzkyLDkgQEAgY2xhc3MgQ29w eVNlbGVjdGVkUXVlcnlSZXN1bHRzRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAg ICAgKS5jbGljaygpCiAgICAgICAgIHNlbGYucGFnZS5maW5kX2J5X3hwYXRoKCIvLypbQGlkPSdi dG4tY29weS1yb3cnXSIpLmNsaWNrKCkKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAg ICAgICAgICAgIiIiXCJTb21lLU5hbWUiCisgICAgICAgIHB5cGVyY2xpcC5wYXN0ZSgpIHwgc2hv dWxkLmVxdWFsKCIiIlwiU29tZS1OYW1lIgogIlNvbWUtT3RoZXItTmFtZSIKLSJZZXQtQW5vdGhl ci1OYW1lXCIiIiIsCi0gICAgICAgICAgICBweXBlcmNsaXAucGFzdGUoKSkKKyJZZXQtQW5vdGhl ci1OYW1lXCIiIiIpCiAKICAgICBkZWYgX2NvcGllc19yb3dfdXNpbmdfa2V5Ym9hcmRfc2hvcnRj dXQoc2VsZik6CiAgICAgICAgIHB5cGVyY2xpcC5jb3B5KCJvbGQgY2xpcGJvYXJkIGNvbnRlbnRz IikKQEAgLTk1LDggKzEwNCw3IEBAIGNsYXNzIENvcHlTZWxlY3RlZFF1ZXJ5UmVzdWx0c0ZlYXR1 cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgIEFjdGlvbkNoYWlucyhzZWxmLnBhZ2Uu ZHJpdmVyKS5rZXlfZG93bigKICAgICAgICAgICAgIEtleXMuQ09OVFJPTCkuc2VuZF9rZXlzKCdj Jykua2V5X3VwKEtleXMuQ09OVFJPTCkucGVyZm9ybSgpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRF cXVhbCgnIlNvbWUtTmFtZSJcdCI2Ilx0InNvbWUgaW5mbyInLAotICAgICAgICAgICAgICAgICAg ICAgICAgIHB5cGVyY2xpcC5wYXN0ZSgpKQorICAgICAgICBweXBlcmNsaXAucGFzdGUoKSB8IHNo b3VsZC5lcXVhbCgnIlNvbWUtTmFtZSJcdCI2Ilx0InNvbWUgaW5mbyInKQogCiAgICAgZGVmIF9j b3BpZXNfY29sdW1uX3VzaW5nX2tleWJvYXJkX3Nob3J0Y3V0KHNlbGYpOgogICAgICAgICBweXBl cmNsaXAuY29weSgib2xkIGNsaXBib2FyZCBjb250ZW50cyIpCkBAIC0xMDgsMTEgKzExNiw5IEBA IGNsYXNzIENvcHlTZWxlY3RlZFF1ZXJ5UmVzdWx0c0ZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVz dCk6CiAgICAgICAgIEFjdGlvbkNoYWlucyhzZWxmLnBhZ2UuZHJpdmVyKS5rZXlfZG93bigKICAg ICAgICAgICAgIEtleXMuQ09OVFJPTCkuc2VuZF9rZXlzKCdjJykua2V5X3VwKEtleXMuQ09OVFJP TCkucGVyZm9ybSgpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICIi IlwiU29tZS1OYW1lIgorICAgICAgICBweXBlcmNsaXAucGFzdGUoKSB8IHNob3VsZC5lcXVhbCgi IiJcIlNvbWUtTmFtZSIKICJTb21lLU90aGVyLU5hbWUiCi0iWWV0LUFub3RoZXItTmFtZVwiIiIi LAotICAgICAgICAgICAgcHlwZXJjbGlwLnBhc3RlKCkpCisiWWV0LUFub3RoZXItTmFtZVwiIiIi KQogCiAgICAgZGVmIF9jb3BpZXNfcmVjdGFuZ3VsYXJfc2VsZWN0aW9uKHNlbGYpOgogICAgICAg ICBweXBlcmNsaXAuY29weSgib2xkIGNsaXBib2FyZCBjb250ZW50cyIpCkBAIC0xMzQsOCArMTQw LDggQEAgY2xhc3MgQ29weVNlbGVjdGVkUXVlcnlSZXN1bHRzRmVhdHVyZVRlc3QoQmFzZUZlYXR1 cmVUZXN0KToKICAgICAgICAgICAgIHNlbGYucGFnZS5kcml2ZXIKICAgICAgICAgKS5rZXlfZG93 bihLZXlzLkNPTlRST0wpLnNlbmRfa2V5cygnYycpLmtleV91cChLZXlzLkNPTlRST0wpLnBlcmZv cm0oKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIiIiXCJTb21lLU90aGVyLU5hbWUiXHQi MjIiCi0iWWV0LUFub3RoZXItTmFtZSJcdCIxNFwiIiIiLCBweXBlcmNsaXAucGFzdGUoKSkKKyAg ICAgICAgcHlwZXJjbGlwLnBhc3RlKCkgfCBzaG91bGQuZXF1YWwoIiIiXCJTb21lLU90aGVyLU5h bWUiXHQiMjIiCisiWWV0LUFub3RoZXItTmFtZSJcdCIxNFwiIiIiKQogCiAgICAgZGVmIF9zaGlm dF9yZXNpemVzX3JlY3Rhbmd1bGFyX3NlbGVjdGlvbihzZWxmKToKICAgICAgICAgcHlwZXJjbGlw LmNvcHkoIm9sZCBjbGlwYm9hcmQgY29udGVudHMiKQpAQCAtMTYwLDggKzE2Niw4IEBAIGNsYXNz IENvcHlTZWxlY3RlZFF1ZXJ5UmVzdWx0c0ZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAg ICAgICAgICAgICBLZXlzLkNPTlRST0wKICAgICAgICAgKS5zZW5kX2tleXMoJ2MnKS5rZXlfdXAo S2V5cy5DT05UUk9MKS5wZXJmb3JtKCkKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCIiIlwi U29tZS1PdGhlci1OYW1lIlx0IjIyIlx0InNvbWUgb3RoZXIgaW5mbyIKLSJZZXQtQW5vdGhlci1O YW1lIlx0IjE0Ilx0ImNvb2wgaW5mb1wiIiIiLCBweXBlcmNsaXAucGFzdGUoKSkKKyAgICAgICAg cHlwZXJjbGlwLnBhc3RlKCkgfCBzaG91bGQuZXF1YWwoIiIiXCJTb21lLU90aGVyLU5hbWUiXHQi MjIiXHQic29tZSBvdGhlciBpbmZvIgorIllldC1Bbm90aGVyLU5hbWUiXHQiMTQiXHQiY29vbCBp bmZvXCIiIiIpCiAKICAgICBkZWYgX3NoaWZ0X3Jlc2l6ZXNfY29sdW1uX3NlbGVjdGlvbihzZWxm KToKICAgICAgICAgcHlwZXJjbGlwLmNvcHkoIm9sZCBjbGlwYm9hcmQgY29udGVudHMiKQpAQCAt MTc3LDExICsxODMsMTAgQEAgY2xhc3MgQ29weVNlbGVjdGVkUXVlcnlSZXN1bHRzRmVhdHVyZVRl c3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgQWN0aW9uQ2hhaW5zKHNlbGYucGFnZS5kcml2 ZXIpLmtleV9kb3duKAogICAgICAgICAgICAgS2V5cy5DT05UUk9MKS5zZW5kX2tleXMoJ2MnKS5r ZXlfdXAoS2V5cy5DT05UUk9MKS5wZXJmb3JtKCkKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFs KAorICAgICAgICBweXBlcmNsaXAucGFzdGUoKSB8IHNob3VsZC5lcXVhbCgKICAgICAgICAgICAg ICIiIlwiU29tZS1OYW1lIlx0IjYiCiAiU29tZS1PdGhlci1OYW1lIlx0IjIyIgotIllldC1Bbm90 aGVyLU5hbWUiXHQiMTRcIiIiIiwKLSAgICAgICAgICAgIHB5cGVyY2xpcC5wYXN0ZSgpKQorIlll dC1Bbm90aGVyLU5hbWUiXHQiMTRcIiIiIikKIAogICAgIGRlZiBfbW91c2V1cF9vdXRzaWRlX2dy aWRfc3RpbGxfbWFrZXNfYV9zZWxlY3Rpb24oc2VsZik6CiAgICAgICAgIHB5cGVyY2xpcC5jb3B5 KCJvbGQgY2xpcGJvYXJkIGNvbnRlbnRzIikKQEAgLTIwMCwxOCArMjA1LDQgQEAgY2xhc3MgQ29w eVNlbGVjdGVkUXVlcnlSZXN1bHRzRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAg ICAgQWN0aW9uQ2hhaW5zKHNlbGYucGFnZS5kcml2ZXIpLmtleV9kb3duKAogICAgICAgICAgICAg S2V5cy5DT05UUk9MKS5zZW5kX2tleXMoJ2MnKS5rZXlfdXAoS2V5cy5DT05UUk9MKS5wZXJmb3Jt KCkKIAotICAgICAgICBzZWxmLmFzc2VydEluKCciY29vbCBpbmZvIicsIHB5cGVyY2xpcC5wYXN0 ZSgpKQotCi0gICAgZGVmIGFmdGVyKHNlbGYpOgotICAgICAgICBzZWxmLnBhZ2UuY2xvc2VfcXVl cnlfdG9vbCgpCi0gICAgICAgIHNlbGYucGFnZS5yZW1vdmVfc2VydmVyKHNlbGYuc2VydmVyKQot Ci0gICAgICAgIGNvbm5lY3Rpb24gPSB0ZXN0X3V0aWxzLmdldF9kYl9jb25uZWN0aW9uKAotICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiJ10sCi0gICAgICAgICAgICBzZWxmLnNlcnZlclsndXNl cm5hbWUnXSwKLSAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddLAotICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJbJ2hvc3QnXSwKLSAgICAgICAgICAgIHNlbGYuc2VydmVyWydwb3J0 J10sCi0gICAgICAgICAgICBzZWxmLnNlcnZlclsnc3NsbW9kZSddCi0gICAgICAgICkKLSAgICAg ICAgdGVzdF91dGlscy5kcm9wX2RhdGFiYXNlKGNvbm5lY3Rpb24sICJhY2NlcHRhbmNlX3Rlc3Rf ZGIiKQorICAgICAgICBweXBlcmNsaXAucGFzdGUoKSB8IHNob3VsZC5jb250YWluKCciY29vbCBp bmZvIicpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL2RhdGF0eXBlX3Rl c3QuanNvbiBiL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVfdGVzdHMvZGF0YXR5cGVfdGVzdC5qc29u CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB3ZWIvcGdhZG1pbi9mZWF0dXJlX3Rl c3RzL2RhdGF0eXBlX3Rlc3QuanNvbgpyZW5hbWUgdG8gd2ViL3JlZ3Jlc3Npb24vZmVhdHVyZV90 ZXN0cy9kYXRhdHlwZV90ZXN0Lmpzb24KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVf dGVzdHMva2V5Ym9hcmRfc2hvcnRjdXRfdGVzdC5weSBiL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVf dGVzdHMva2V5Ym9hcmRfc2hvcnRjdXRfdGVzdC5weQpzaW1pbGFyaXR5IGluZGV4IDgyJQpyZW5h bWUgZnJvbSB3ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL2tleWJvYXJkX3Nob3J0Y3V0X3Rlc3Qu cHkKcmVuYW1lIHRvIHdlYi9yZWdyZXNzaW9uL2ZlYXR1cmVfdGVzdHMva2V5Ym9hcmRfc2hvcnRj dXRfdGVzdC5weQppbmRleCBiYmFlMTk0MC4uMGE4ZDlmZjAgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL2ZlYXR1cmVfdGVzdHMva2V5Ym9hcmRfc2hvcnRjdXRfdGVzdC5weQorKysgYi93ZWIvcmVn cmVzc2lvbi9mZWF0dXJlX3Rlc3RzL2tleWJvYXJkX3Nob3J0Y3V0X3Rlc3QucHkKQEAgLTgsMjgg KzgsMzEgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJp bnRfZnVuY3Rpb24KLWltcG9ydCB0aW1lCisKIGltcG9ydCBzeXMKK2ltcG9ydCB0aW1lCiAKLWZy b20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQudWkgaW1wb3J0IFdlYkRyaXZlcldhaXQKLWZy b20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQgaW1wb3J0IGV4cGVjdGVkX2NvbmRpdGlvbnMg YXMgRUMKLWZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5ieSBpbXBvcnQgQnkKK2Zyb20g Z3JhcHBhIGltcG9ydCBzaG91bGQKIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyIGltcG9ydCBBY3Rp b25DaGFpbnMKLWZyb20gcmVncmVzc2lvbi5mZWF0dXJlX3V0aWxzLmJhc2VfZmVhdHVyZV90ZXN0 IGltcG9ydCBCYXNlRmVhdHVyZVRlc3QKK2Zyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5i eSBpbXBvcnQgQnkKIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5rZXlzIGltcG9ydCBL ZXlzCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0IGltcG9ydCBleHBlY3RlZF9jb25k aXRpb25zIGFzIEVDCitmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LnVpIGltcG9ydCBX ZWJEcml2ZXJXYWl0CisKK2Zyb20gcmVncmVzc2lvbi5mZWF0dXJlX3V0aWxzLmJhc2VfZmVhdHVy ZV90ZXN0IGltcG9ydCBCYXNlRmVhdHVyZVRlc3QKIAogCi1jbGFzcyBLZXlib2FyZFNob3J0Y3V0 RmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKLSAgICAiIiIKK2NsYXNzIFRlc3RLZXlib2Fy ZFNob3J0Y3V0KEJhc2VGZWF0dXJlVGVzdCk6CisgICAgZGVmIHRlc3Rfa2V5Ym9hcmRfc2hvcnRj dXQoc2VsZiwgZHJpdmVyKToKKyAgICAgICAgIiIiCiAgICAgICAgIFRoaXMgZmVhdHVyZSB0ZXN0 IHdpbGwgdGVzdCB0aGUga2V5Ym9hcmQgc2hvcnQgaXMgd29ya2luZwogICAgICAgICBwcm9wZXJs eS4KLSAgICAiIiIKKyAgICAgICAgIiIiCiAKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgi VGVzdCBmb3Iga2V5Ym9hcmQgc2hvcnRjdXQiLCBkaWN0KCkpCi0gICAgXQorICAgICAgICBzZWxm LmRyaXZlciA9IGRyaXZlcgorCisgICAgICAgIHNlbGYuc2V0VXAoKQogCi0gICAgZGVmIGJlZm9y ZShzZWxmKToKICAgICAgICAgc2VsZi5uZXdfc2hvcnRjdXRzID0gewogICAgICAgICAgICAgJ21u dV9maWxlJzogewogICAgICAgICAgICAgICAgICdzaG9ydGN1dCc6IFtLZXlzLkFMVCwgS2V5cy5T SElGVCwgJ2knXSwKQEAgLTQzLDE4ICs0NiwxOSBAQCBjbGFzcyBLZXlib2FyZFNob3J0Y3V0RmVh dHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKIAogICAgICAgICBzZWxmLndhaXQgPSBXZWJEcml2 ZXJXYWl0KHNlbGYucGFnZS5kcml2ZXIsIDEwKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6CiAg ICAgICAgIHNlbGYuX3VwZGF0ZV9wcmVmZXJlbmNlcygpCisKICAgICAgICAgIyBPbiB1cGRhdGlu ZyBrZXlib2FyZCBzaG9ydGN1dHMsIHByZWZlcmVuY2UgY2FjaGUgaXMgdXBkYXRlZC4KICAgICAg ICAgIyBUaGVyZSBpcyBubyBVSSBldmVudCB0aHJvdWdoIHdoaWNoIHdlIGNhbiBpZGVudGlmeSB0 aGF0IHRoZSBjYWNoZQogICAgICAgICAjIGlzIHVwZGF0ZWQsIFNvLCBhZGRlZCB0aW1lLnNsZWVw KCkKICAgICAgICAgdGltZS5zbGVlcCgxKQorCiAgICAgICAgIHNlbGYuX2NoZWNrX3Nob3J0Y3V0 cygpCiAKICAgICBkZWYgX2NoZWNrX3Nob3J0Y3V0cyhzZWxmKToKICAgICAgICAgYWN0aW9uID0g QWN0aW9uQ2hhaW5zKHNlbGYuZHJpdmVyKQotICAgICAgICBmb3IgcyBpbiBzZWxmLm5ld19zaG9y dGN1dHM6Ci0gICAgICAgICAgICBrZXlfY29tYm8gPSBzZWxmLm5ld19zaG9ydGN1dHNbc11bJ3No b3J0Y3V0J10KKyAgICAgICAgZm9yIHNob3J0Y3V0IGluIHNlbGYubmV3X3Nob3J0Y3V0czoKKyAg ICAgICAgICAgIGtleV9jb21ibyA9IHNlbGYubmV3X3Nob3J0Y3V0c1tzaG9ydGN1dF1bJ3Nob3J0 Y3V0J10KICAgICAgICAgICAgIGFjdGlvbi5rZXlfZG93bigKICAgICAgICAgICAgICAgICBrZXlf Y29tYm9bMF0KICAgICAgICAgICAgICkua2V5X2Rvd24oCkBAIC02NywyMCArNzEsMjUgQEAgY2xh c3MgS2V5Ym9hcmRTaG9ydGN1dEZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAg ICAgICAgICAga2V5X2NvbWJvWzFdCiAgICAgICAgICAgICApLnBlcmZvcm0oKQogCi0gICAgICAg ICAgICBwcmludCgiRXhlY3V0aW5nIHNob3J0Y3V0OiAiICsgc2VsZi5uZXdfc2hvcnRjdXRzW3Nd Wydsb2NhdG9yJ10gKwotICAgICAgICAgICAgICAgICAgIi4uLiIsIGZpbGU9c3lzLnN0ZGVyciwg ZW5kPSIiKQorICAgICAgICAgICAgcHJpbnQoCisgICAgICAgICAgICAgICAgIkV4ZWN1dGluZyBz aG9ydGN1dDogIiArCisgICAgICAgICAgICAgICAgc2VsZi5uZXdfc2hvcnRjdXRzW3Nob3J0Y3V0 XVsnbG9jYXRvciddICsKKyAgICAgICAgICAgICAgICAiLi4uIiwKKyAgICAgICAgICAgICAgICBm aWxlPXN5cy5zdGRlcnIsIGVuZD0iIgorICAgICAgICAgICAgKQogCiAgICAgICAgICAgICBzZWxm LndhaXQudW50aWwoCiAgICAgICAgICAgICAgICAgRUMucHJlc2VuY2Vfb2ZfZWxlbWVudF9sb2Nh dGVkKAogICAgICAgICAgICAgICAgICAgICAoQnkuWFBBVEgsICIvL2xpW2NvbnRhaW5zKEBpZCwg IiArCi0gICAgICAgICAgICAgICAgICAgICBzICsKKyAgICAgICAgICAgICAgICAgICAgIHNob3J0 Y3V0ICsKICAgICAgICAgICAgICAgICAgICAgICIpIGFuZCBjb250YWlucyhAY2xhc3MsICdvcGVu JyldIikKICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICApCiAKLSAgICAgICAgICAgIGlz X29wZW4gPSAnb3BlbicgaW4gc2VsZi5wYWdlLmZpbmRfYnlfaWQocykuZ2V0X2F0dHJpYnV0ZSgn Y2xhc3MnKQotCi0gICAgICAgICAgICBhc3NlcnQgaXNfb3BlbiBpcyBUcnVlLCAiS2V5Ym9hcmQg c2hvcnRjdXQgY2hhbmdlIGlzIHVuc3VjY2Vzc2Z1bC4iCisgICAgICAgICAgICBzZWxmLnBhZ2Uu ZmluZF9ieV9pZChzaG9ydGN1dCkuZ2V0X2F0dHJpYnV0ZSgnY2xhc3MnKSB8IFwKKyAgICAgICAg ICAgICAgICBzaG91bGQuY29udGFpbigKKyAgICAgICAgICAgICAgICAgICAgJ29wZW4nLAorICAg ICAgICAgICAgICAgICAgICBtc2c9J0tleWJvYXJkIHNob3J0Y3V0IGNoYW5nZSBpcyB1bnN1Y2Nl c3NmdWwuJykKIAogICAgICAgICAgICAgcHJpbnQoIk9LIiwgZmlsZT1zeXMuc3RkZXJyKQogCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3BnX2RhdGF0eXBlX3ZhbGlkYXRp b25fdGVzdC5weSBiL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVfdGVzdHMvcGdfZGF0YXR5cGVfdmFs aWRhdGlvbl90ZXN0LnB5CnNpbWlsYXJpdHkgaW5kZXggODUlCnJlbmFtZSBmcm9tIHdlYi9wZ2Fk bWluL2ZlYXR1cmVfdGVzdHMvcGdfZGF0YXR5cGVfdmFsaWRhdGlvbl90ZXN0LnB5CnJlbmFtZSB0 byB3ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3Rlc3RzL3BnX2RhdGF0eXBlX3ZhbGlkYXRpb25fdGVz dC5weQppbmRleCAzZTM0YzE3NS4uYzIzZDA4YTYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Zl YXR1cmVfdGVzdHMvcGdfZGF0YXR5cGVfdmFsaWRhdGlvbl90ZXN0LnB5CisrKyBiL3dlYi9yZWdy ZXNzaW9uL2ZlYXR1cmVfdGVzdHMvcGdfZGF0YXR5cGVfdmFsaWRhdGlvbl90ZXN0LnB5CkBAIC03 LDE3ICs3LDE5IEBACiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCi1pbXBvcnQgb3MKIGltcG9ydCBq c29uCitpbXBvcnQgb3MKIGltcG9ydCB0aW1lCisKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQK IGZyb20gc2VsZW5pdW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IFRpbWVvdXRFeGNlcHRpb24K LWZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQudWkgaW1wb3J0IFdlYkRyaXZlcldhaXQK LWZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnN1cHBvcnQgaW1wb3J0IGV4cGVjdGVkX2NvbmRpdGlv bnMgYXMgRUMKLWZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5ieSBpbXBvcnQgQnkKIGZy b20gc2VsZW5pdW0ud2ViZHJpdmVyIGltcG9ydCBBY3Rpb25DaGFpbnMKLWZyb20gcmVncmVzc2lv bi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscwotZnJvbSByZWdyZXNzaW9uLmZl YXR1cmVfdXRpbHMuYmFzZV9mZWF0dXJlX3Rlc3QgaW1wb3J0IEJhc2VGZWF0dXJlVGVzdAorZnJv bSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmJ5IGltcG9ydCBCeQorZnJvbSBzZWxlbml1bS53 ZWJkcml2ZXIuc3VwcG9ydCBpbXBvcnQgZXhwZWN0ZWRfY29uZGl0aW9ucyBhcyBFQworZnJvbSBz ZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC51aSBpbXBvcnQgV2ViRHJpdmVyV2FpdAogCitmcm9t IHJlZ3Jlc3Npb24uZmVhdHVyZV91dGlscy5iYXNlX2ZlYXR1cmVfdGVzdCBpbXBvcnQgQmFzZUZl YXR1cmVUZXN0Citmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3Rf dXRpbHMKIAogQ1VSUkVOVF9QQVRIID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGgucmVhbHBhdGgo X19maWxlX18pKQogCkBAIC0zMSwxNyArMzMsMTYgQEAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgog ICAgIHByaW50KHN0cihlKSkKIAogCi1jbGFzcyBQR0RhdGF5cGVGZWF0dXJlVGVzdChCYXNlRmVh dHVyZVRlc3QpOgotICAgICIiIgotICAgICAgICBUaGlzIGZlYXR1cmUgdGVzdCB3aWxsIHRlc3Qg dGhlIGRpZmZlcmVudCBQb3N0Z3JlcwotICAgICAgICBkYXRhLXR5cGUgb3V0cHV0LgotICAgICIi IgorY2xhc3MgVGVzdFBHRGF0YXlwZShCYXNlRmVhdHVyZVRlc3QpOgorICAgIGRlZiB0ZXN0X3Bn X2RhdGF0eXBlKHNlbGYsIGRyaXZlcik6CisgICAgICAgICIiIgorICAgICAgICAgICAgVGhpcyBm ZWF0dXJlIHRlc3Qgd2lsbCB0ZXN0IHRoZSBkaWZmZXJlbnQgUG9zdGdyZXMKKyAgICAgICAgICAg IGRhdGEtdHlwZSBvdXRwdXQuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLmRyaXZlciA9IGRy aXZlcgogCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoIlRlc3QgY2hlY2tzIGZvciBQRyBk YXRhLXR5cGVzIG91dHB1dCIsIGRpY3QoKSkKLSAgICBdCisgICAgICAgIHNlbGYuc2V0VXAoKQog Ci0gICAgZGVmIGJlZm9yZShzZWxmKToKICAgICAgICAgY29ubmVjdGlvbiA9IHRlc3RfdXRpbHMu Z2V0X2RiX2Nvbm5lY3Rpb24oCiAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGInXSwKICAgICAg ICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLApAQCAtNzYsNiArNzcsMjUgQEAgY2xhc3Mg UEdEYXRheXBlRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgIyB0byBhZGQg bWF0Y2hpbmcgY2xvc2luZyBicmFja2V0IGJ5IGl0IHNlbGYuCiAgICAgICAgIHNlbGYuX3VwZGF0 ZV9wcmVmZXJlbmNlcygpCiAKKyAgICAgICAgc2VsZi5wYWdlLndhaXRfZm9yX3NwaW5uZXJfdG9f ZGlzYXBwZWFyKCkKKyAgICAgICAgc2VsZi5wYWdlLmFkZF9zZXJ2ZXIoc2VsZi5zZXJ2ZXIpCisg ICAgICAgIHNlbGYuX3NjaGVtYV9ub2RlX2V4cGFuZGFibGUoKQorCisgICAgICAgICMgQ2hlY2sg ZGF0YSB0eXBlcworICAgICAgICBzZWxmLl9jaGVja19kYXRhdHlwZSgpCisgICAgICAgIHNlbGYu cGFnZS5jbG9zZV9xdWVyeV90b29sKCkKKworICAgICAgICBzZWxmLnBhZ2UucmVtb3ZlX3NlcnZl cihzZWxmLnNlcnZlcikKKyAgICAgICAgY29ubmVjdGlvbiA9IHRlc3RfdXRpbHMuZ2V0X2RiX2Nv bm5lY3Rpb24oCisgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGInXSwKKyAgICAgICAgICAgIHNl bGYuc2VydmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3 b3JkJ10sCisgICAgICAgICAgICBzZWxmLnNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJbJ3BvcnQnXSwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWydzc2xtb2RlJ10KKyAg ICAgICAgKQorICAgICAgICB0ZXN0X3V0aWxzLmRyb3BfZGF0YWJhc2UoY29ubmVjdGlvbiwgImFj Y2VwdGFuY2VfdGVzdF9kYiIpCisKICAgICBkZWYgX3VwZGF0ZV9wcmVmZXJlbmNlcyhzZWxmKToK ICAgICAgICAgc2VsZi5wYWdlLmZpbmRfYnlfaWQoIm1udV9maWxlIikuY2xpY2soKQogICAgICAg ICBzZWxmLnBhZ2UuZmluZF9ieV9pZCgibW51X3ByZWZlcmVuY2VzIikuY2xpY2soKQpAQCAtMTAw LDcgKzEyMCw3IEBAIGNsYXNzIFBHRGF0YXlwZUZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6 CiAgICAgICAgICAgICAiY29udGFpbnMoLiwnSW5zZXJ0IGJyYWNrZXQgcGFpcnM/JyldIgogICAg ICAgICApCiAKLSAgICAgICAgc3dpdGNoX2J0biA9IGluc2VydF9icmFja2V0X3BhaXJzX2NvbnRy b2wuXAorICAgICAgICBzd2l0Y2hfYnRuID0gaW5zZXJ0X2JyYWNrZXRfcGFpcnNfY29udHJvbC4g XAogICAgICAgICAgICAgZmluZF9lbGVtZW50X2J5X2NsYXNzX25hbWUoJ2Jvb3RzdHJhcC1zd2l0 Y2gnKQogCiAgICAgICAgICMgY2hlY2sgaWYgc3dpdGNoIGlzIG9uIHRoZW4gb25seSB0b2dnbGUu CkBAIC0xMjYsMjcgKzE0Niw2IEBAIGNsYXNzIFBHRGF0YXlwZUZlYXR1cmVUZXN0KEJhc2VGZWF0 dXJlVGVzdCk6CiAgICAgICAgIHNlbGYucGFnZS5maW5kX2J5X2lkKCJidG4tZmxhc2giKS5jbGlj aygpCiAgICAgICAgIHNlbGYuX2NsZWFyX3F1ZXJ5X3Rvb2woKQogCi0gICAgZGVmIHJ1blRlc3Qo c2VsZik6Ci0gICAgICAgIHNlbGYucGFnZS53YWl0X2Zvcl9zcGlubmVyX3RvX2Rpc2FwcGVhcigp Ci0gICAgICAgIHNlbGYucGFnZS5hZGRfc2VydmVyKHNlbGYuc2VydmVyKQotICAgICAgICBzZWxm Ll9zY2hlbWFfbm9kZV9leHBhbmRhYmxlKCkKLQotICAgICAgICAjIENoZWNrIGRhdGEgdHlwZXMK LSAgICAgICAgc2VsZi5fY2hlY2tfZGF0YXR5cGUoKQotICAgICAgICBzZWxmLnBhZ2UuY2xvc2Vf cXVlcnlfdG9vbCgpCi0KLSAgICBkZWYgYWZ0ZXIoc2VsZik6Ci0gICAgICAgIHNlbGYucGFnZS5y ZW1vdmVfc2VydmVyKHNlbGYuc2VydmVyKQotICAgICAgICBjb25uZWN0aW9uID0gdGVzdF91dGls cy5nZXRfZGJfY29ubmVjdGlvbigKLSAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYiddLAotICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3VzZXJuYW1lJ10sCi0gICAgICAgICAgICBzZWxmLnNlcnZl clsnZGJfcGFzc3dvcmQnXSwKLSAgICAgICAgICAgIHNlbGYuc2VydmVyWydob3N0J10sCi0gICAg ICAgICAgICBzZWxmLnNlcnZlclsncG9ydCddLAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3Nz bG1vZGUnXQotICAgICAgICApCi0gICAgICAgIHRlc3RfdXRpbHMuZHJvcF9kYXRhYmFzZShjb25u ZWN0aW9uLCAiYWNjZXB0YW5jZV90ZXN0X2RiIikKLQogICAgIGRlZiBfc2NoZW1hX25vZGVfZXhw YW5kYWJsZShzZWxmKToKICAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3RyZWVfaXRlbShz ZWxmLnNlcnZlclsnbmFtZSddKQogICAgICAgICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5fdHJlZV9p dGVtKCdEYXRhYmFzZXMnKQpAQCAtMTU4LDcgKzE1Nyw3IEBAIGNsYXNzIFBHRGF0YXlwZUZlYXR1 cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgIHNlbGYucGFnZS5vcGVuX3F1ZXJ5X3Rv b2woKQogICAgICAgICBzZWxmLl9jcmVhdGVfZW51bV90eXBlKCkKICAgICAgICAgZm9yIGJhdGNo IGluIGNvbmZpZ19kYXRhOgotICAgICAgICAgICAgcXVlcnkgPSBzZWxmLmNvbnN0cnVjdF9zZWxl Y3RfcXVlcnkoYmF0Y2gpCisgICAgICAgICAgICBxdWVyeSA9IHNlbGYuX2NvbnN0cnVjdF9zZWxl Y3RfcXVlcnkoYmF0Y2gpCiAgICAgICAgICAgICBzZWxmLnBhZ2UuZmlsbF9jb2RlbWlycm9yX2Fy ZWFfd2l0aChxdWVyeSkKICAgICAgICAgICAgIHNlbGYucGFnZS5maW5kX2J5X2lkKCJidG4tZmxh c2giKS5jbGljaygpCiAgICAgICAgICAgICB3YWl0ID0gV2ViRHJpdmVyV2FpdChzZWxmLnBhZ2Uu ZHJpdmVyLCA1KQpAQCAtMTc5LDM1ICsxNzgsMzAgQEAgY2xhc3MgUEdEYXRheXBlRmVhdHVyZVRl c3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgICAgIGNlbGxzID0gY2FudmFzLmZpbmRfZWxl bWVudHNfYnlfY3NzX3NlbGVjdG9yKCcuc2xpY2stY2VsbCcpCiAgICAgICAgICAgICAjIHJlbW92 ZSBmaXJzdCBlbGVtZW50IGFzIGl0IGlzIHJvdyBudW1iZXIuCiAgICAgICAgICAgICBjZWxscy5w b3AoMCkKLSAgICAgICAgICAgIGZvciB2YWwsIGNlbGwsIGRhdGF0eXBlIGluIHppcCgKLSAgICAg ICAgICAgICAgICAgICAgYmF0Y2hbJ291dHB1dCddLCBjZWxscywgYmF0Y2hbJ2RhdGF0eXBlJ10p OgorICAgICAgICAgICAgZm9yIHZhbCwgY2VsbCwgZGF0YXR5cGUgaW4gemlwKGJhdGNoWydvdXRw dXQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxscywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXRjaFsnZGF0YXR5 cGUnXSk6CiAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfb3V0cHV0ID0gYmF0Y2hbJ291dHB1dCdd W2NudCAtIDJdCiAKICAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5faXNfZGF0YXR5cGVfYXZh aWxhYmxlX2luX2N1cnJlbnRfZGF0YWJhc2UoCi0gICAgICAgICAgICAgICAgICAgICAgICBkYXRh dHlwZSk6CisgICAgICAgICAgICAgICAgICAgZGF0YXR5cGUpOgogICAgICAgICAgICAgICAgICAg ICBjbnQgKz0gMQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogCiAgICAgICAgICAgICAg ICAgaWYgZGF0YXR5cGUgaW4gKCd0c3R6cmFuZ2UnLCAndHN0enJhbmdlW10nKToKICAgICAgICAg ICAgICAgICAgICAgZXhwZWN0ZWRfb3V0cHV0ID0gZXhwZWN0ZWRfb3V0cHV0LmZvcm1hdCgKICAg ICAgICAgICAgICAgICAgICAgICAgICoqZGljdChbKCd0eicsIHNlbGYudGltZXpvbmVfaGhfbW0p XSkpCi0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBzb3VyY2VfY29k ZSA9IGNlbGwudGV4dAotICAgICAgICAgICAgICAgICAgICBQR0RhdGF5cGVGZWF0dXJlVGVzdC5j aGVja19yZXN1bHQoCi0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhdHlwZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgIHNvdXJjZV9jb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgZXhw ZWN0ZWRfb3V0cHV0Ci0gICAgICAgICAgICAgICAgICAgICkKIAotICAgICAgICAgICAgICAgICAg ICBjbnQgKz0gMQotICAgICAgICAgICAgICAgIGV4Y2VwdCBUaW1lb3V0RXhjZXB0aW9uOgotICAg ICAgICAgICAgICAgICAgICBhc3NlcnQgRmFsc2UsXAotICAgICAgICAgICAgICAgICAgICAgICAg ImZvciBkYXRhdHlwZSB7MH1cbnsxfSBkb2VzIG5vdCBtYXRjaCB3aXRoIHsyfSIuZm9ybWF0KAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGF0eXBlLCB2YWwsIGV4cGVjdGVkX291dHB1 dAotICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIHNvdXJjZV9jb2Rl ID0gY2VsbC50ZXh0CisgICAgICAgICAgICAgICAgKGxhbWJkYTogVGVzdFBHRGF0YXlwZS5jaGVj a19yZXN1bHQoCisgICAgICAgICAgICAgICAgICAgIGRhdGF0eXBlLAorICAgICAgICAgICAgICAg ICAgICBzb3VyY2VfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfb3V0cHV0Cisg ICAgICAgICAgICAgICAgKSkgfCBzaG91bGQuZG9lc19ub3QucmFpc2VzKFRpbWVvdXRFeGNlcHRp b24pCisKICAgICAgICAgICAgIHNlbGYuX2NsZWFyX3F1ZXJ5X3Rvb2woKQogCi0gICAgZGVmIGNv bnN0cnVjdF9zZWxlY3RfcXVlcnkoc2VsZiwgYmF0Y2gpOgorICAgIGRlZiBfY29uc3RydWN0X3Nl bGVjdF9xdWVyeShzZWxmLCBiYXRjaCk6CiAgICAgICAgIHF1ZXJ5ID0gJ1NFTEVDVCAnCiAgICAg ICAgIGZpcnN0ID0gVHJ1ZQogICAgICAgICBmb3IgZGF0YXR5cGUsIGlucHV0ZGF0YSBpbiB6aXAo YmF0Y2hbJ2RhdGF0eXBlJ10sIGJhdGNoWydpbnB1dCddKToKQEAgLTIzMSwxNyArMjI1LDE4IEBA IGNsYXNzIFBHRGF0YXlwZUZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAKICAgICBAc3Rh dGljbWV0aG9kCiAgICAgZGVmIGNoZWNrX3Jlc3VsdChkYXRhdHlwZSwgc291cmNlX2NvZGUsIHN0 cmluZ190b19maW5kKToKLSAgICAgICAgYXNzZXJ0IHNvdXJjZV9jb2RlID09IHN0cmluZ190b19m aW5kLFwKLSAgICAgICAgICAgICJmb3IgZGF0YXR5cGUgezB9XG57MX0gZG9lcyBub3QgbWF0Y2gg d2l0aCB7Mn0iLmZvcm1hdCgKLSAgICAgICAgICAgICAgICBkYXRhdHlwZSwgc291cmNlX2NvZGUs IHN0cmluZ190b19maW5kCi0gICAgICAgICAgICApCisgICAgICAgIHNvdXJjZV9jb2RlIHwgXAor ICAgICAgICAgICAgc2hvdWxkLmVxdWFsKAorICAgICAgICAgICAgICAgIHN0cmluZ190b19maW5k LAorICAgICAgICAgICAgICAgIG1zZz0iZm9yIGRhdGF0eXBlIHswfVxuezF9IGRvZXMgbm90IG1h dGNoIHdpdGggezJ9Ii5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgIGRhdGF0eXBlLCBzb3Vy Y2VfY29kZSwgc3RyaW5nX3RvX2ZpbmQpKQogCiAgICAgZGVmIF9jbGVhcl9xdWVyeV90b29sKHNl bGYpOgogICAgICAgICBzZWxmLnBhZ2UuY2xpY2tfZWxlbWVudCgKICAgICAgICAgICAgIHNlbGYu cGFnZS5maW5kX2J5X3hwYXRoKCIvLypbQGlkPSdidG4tY2xlYXItZHJvcGRvd24nXSIpCiAgICAg ICAgICkKLSAgICAgICAgQWN0aW9uQ2hhaW5zKHNlbGYuZHJpdmVyKVwKLSAgICAgICAgICAgIC5t b3ZlX3RvX2VsZW1lbnQoc2VsZi5wYWdlLmZpbmRfYnlfeHBhdGgoIi8vKltAaWQ9J2J0bi1jbGVh ciddIikpXAorICAgICAgICBBY3Rpb25DaGFpbnMoc2VsZi5kcml2ZXIpIFwKKyAgICAgICAgICAg IC5tb3ZlX3RvX2VsZW1lbnQoc2VsZi5wYWdlLmZpbmRfYnlfeHBhdGgoIi8vKltAaWQ9J2J0bi1j bGVhciddIikpIFwKICAgICAgICAgICAgIC5wZXJmb3JtKCkKICAgICAgICAgc2VsZi5wYWdlLmNs aWNrX2VsZW1lbnQoCiAgICAgICAgICAgICBzZWxmLnBhZ2UuZmluZF9ieV94cGF0aCgiLy8qW0Bp ZD0nYnRuLWNsZWFyJ10iKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9x dWVyeV90b29sX2pvdXJuZXlfdGVzdC5weSBiL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVfdGVzdHMv cXVlcnlfdG9vbF9qb3VybmV5X3Rlc3QucHkKc2ltaWxhcml0eSBpbmRleCA4MyUKcmVuYW1lIGZy b20gd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9xdWVyeV90b29sX2pvdXJuZXlfdGVzdC5weQpy ZW5hbWUgdG8gd2ViL3JlZ3Jlc3Npb24vZmVhdHVyZV90ZXN0cy9xdWVyeV90b29sX2pvdXJuZXlf dGVzdC5weQppbmRleCBlYzEyMDQzOS4uMjYyODI5NzkgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWlu L2ZlYXR1cmVfdGVzdHMvcXVlcnlfdG9vbF9qb3VybmV5X3Rlc3QucHkKKysrIGIvd2ViL3JlZ3Jl c3Npb24vZmVhdHVyZV90ZXN0cy9xdWVyeV90b29sX2pvdXJuZXlfdGVzdC5weQpAQCAtOCwyNCAr OCwyMyBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAogaW1wb3J0IHB5cGVyY2xpcAotCitmcm9tIGdy YXBwYSBpbXBvcnQgc2hvdWxkCiBmcm9tIHNlbGVuaXVtLndlYmRyaXZlciBpbXBvcnQgQWN0aW9u Q2hhaW5zCiBmcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21tb24ua2V5cyBpbXBvcnQgS2V5cwog Ci1mcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMKIGZy b20gcmVncmVzc2lvbi5mZWF0dXJlX3V0aWxzLmJhc2VfZmVhdHVyZV90ZXN0IGltcG9ydCBCYXNl RmVhdHVyZVRlc3QKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVz dF91dGlscwogCiAKLWNsYXNzIFF1ZXJ5VG9vbEpvdXJuZXlUZXN0KEJhc2VGZWF0dXJlVGVzdCk6 Ci0gICAgIiIiCi0gICAgVGVzdHMgdGhlIHBhdGggdGhyb3VnaCB0aGUgcXVlcnkgdG9vbAotICAg ICIiIgorY2xhc3MgVGVzdFF1ZXJ5VG9vbEpvdXJuZXkoQmFzZUZlYXR1cmVUZXN0KToKKyAgICBk ZWYgdGVzdF90YWJsZV9kZGwoc2VsZiwgZHJpdmVyKToKKyAgICAgICAgIiIiCisgICAgICAgIFRl c3RzIHRoZSBwYXRoIHRocm91Z2ggdGhlIHF1ZXJ5IHRvb2wKKyAgICAgICAgIiIiCisgICAgICAg IHNlbGYuZHJpdmVyID0gZHJpdmVyCiAKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgiVGVz dHMgdGhlIHBhdGggdGhyb3VnaCB0aGUgcXVlcnkgdG9vbCIsIGRpY3QoKSkKLSAgICBdCisgICAg ICAgIHNlbGYuc2V0VXAoKQogCi0gICAgZGVmIGJlZm9yZShzZWxmKToKICAgICAgICAgY29ubmVj dGlvbiA9IHRlc3RfdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oCiAgICAgICAgICAgICBzZWxmLnNl cnZlclsnZGInXSwKICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLApAQCAtMzks NyArMzgsNiBAQCBjbGFzcyBRdWVyeVRvb2xKb3VybmV5VGVzdChCYXNlRmVhdHVyZVRlc3QpOgog ICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsICJhY2NlcHRhbmNlX3Rlc3RfZGIiLCAidGVzdF90YWJs ZSIpCiAgICAgICAgIHNlbGYucGFnZS5hZGRfc2VydmVyKHNlbGYuc2VydmVyKQogCi0gICAgZGVm IHJ1blRlc3Qoc2VsZik6CiAgICAgICAgIHNlbGYuX25hdmlnYXRlX3RvX3F1ZXJ5X3Rvb2woKQog CiAgICAgICAgIHNlbGYuX2V4ZWN1dGVfcXVlcnkoCkBAIC01MCw2ICs0OCwxNiBAQCBjbGFzcyBR dWVyeVRvb2xKb3VybmV5VGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAgICBzZWxmLl90ZXN0 X2NvcGllc19jb2x1bW5zKCkKICAgICAgICAgc2VsZi5fdGVzdF9oaXN0b3J5X3RhYigpCiAKKyAg ICAgICAgc2VsZi5wYWdlLmNsb3NlX3F1ZXJ5X3Rvb2woKQorICAgICAgICBzZWxmLnBhZ2UucmVt b3ZlX3NlcnZlcihzZWxmLnNlcnZlcikKKworICAgICAgICBjb25uZWN0aW9uID0gdGVzdF91dGls cy5nZXRfZGJfY29ubmVjdGlvbihzZWxmLnNlcnZlclsnZGInXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3VzZXJuYW1lJ10s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2VydmVyWydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsncG9ydCddKQorICAg ICAgICB0ZXN0X3V0aWxzLmRyb3BfZGF0YWJhc2UoY29ubmVjdGlvbiwgImFjY2VwdGFuY2VfdGVz dF9kYiIpCisKICAgICBkZWYgX3Rlc3RfY29waWVzX3Jvd3Moc2VsZik6CiAgICAgICAgIHB5cGVy Y2xpcC5jb3B5KCJvbGQgY2xpcGJvYXJkIGNvbnRlbnRzIikKICAgICAgICAgc2VsZi5wYWdlLmRy aXZlci5zd2l0Y2hfdG8uZGVmYXVsdF9jb250ZW50KCkKQEAgLTU5LDggKzY3LDcgQEAgY2xhc3Mg UXVlcnlUb29sSm91cm5leVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgICAgICIvLypb Y29udGFpbnMoQGNsYXNzLCAnc2xpY2stcm93JyldLypbMV0iKS5jbGljaygpCiAgICAgICAgIHNl bGYucGFnZS5maW5kX2J5X3hwYXRoKCIvLypbQGlkPSdidG4tY29weS1yb3cnXSIpLmNsaWNrKCkK IAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCciU29tZS1OYW1lIlx0IjYiXHQic29tZSBpbmZv IicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcHlwZXJjbGlwLnBhc3RlKCkpCisgICAgICAg IHB5cGVyY2xpcC5wYXN0ZSgpIHwgc2hvdWxkLmVxdWFsKCciU29tZS1OYW1lIlx0IjYiXHQic29t ZSBpbmZvIicpCiAKICAgICBkZWYgX3Rlc3RfY29waWVzX2NvbHVtbnMoc2VsZik6CiAgICAgICAg IHB5cGVyY2xpcC5jb3B5KCJvbGQgY2xpcGJvYXJkIGNvbnRlbnRzIikKQEAgLTc0LDkgKzgxLDkg QEAgY2xhc3MgUXVlcnlUb29sSm91cm5leVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAg KS5jbGljaygpCiAgICAgICAgIHNlbGYucGFnZS5maW5kX2J5X3hwYXRoKCIvLypbQGlkPSdidG4t Y29weS1yb3cnXSIpLmNsaWNrKCkKIAotICAgICAgICBzZWxmLmFzc2VydFRydWUoJyJTb21lLU5h bWUiJyBpbiBweXBlcmNsaXAucGFzdGUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCciU29t ZS1PdGhlci1OYW1lIicgaW4gcHlwZXJjbGlwLnBhc3RlKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0 VHJ1ZSgnIllldC1Bbm90aGVyLU5hbWUiJyBpbiBweXBlcmNsaXAucGFzdGUoKSkKKyAgICAgICAg cHlwZXJjbGlwLnBhc3RlKCkgfCBzaG91bGQuY29udGFpbignIlNvbWUtTmFtZSInKQorICAgICAg ICBweXBlcmNsaXAucGFzdGUoKSB8IHNob3VsZC5jb250YWluKCciU29tZS1PdGhlci1OYW1lIicp CisgICAgICAgIHB5cGVyY2xpcC5wYXN0ZSgpIHwgc2hvdWxkLmNvbnRhaW4oJyJZZXQtQW5vdGhl ci1OYW1lIicpCiAKICAgICBkZWYgX3Rlc3RfaGlzdG9yeV90YWIoc2VsZik6CiAgICAgICAgIHNl bGYuX19jbGVhcl9xdWVyeV90b29sKCkKQEAgLTg3LDMwICs5NCwyOSBAQCBjbGFzcyBRdWVyeVRv b2xKb3VybmV5VGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAgICBzZWxmLnBhZ2UuY2xpY2tf dGFiKCJRdWVyeSBIaXN0b3J5IikKICAgICAgICAgc2VsZWN0ZWRfaGlzdG9yeV9lbnRyeSA9IHNl bGYucGFnZS5maW5kX2J5X2Nzc19zZWxlY3RvcigKICAgICAgICAgICAgICIjcXVlcnlfbGlzdCAu c2VsZWN0ZWQiKQotICAgICAgICBzZWxmLmFzc2VydEluKCJTRUxFQ1QgKiBGUk9NIHRhYmxlX3Ro YXRfZG9lc250X2V4aXN0IiwKLSAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZF9oaXN0b3J5 X2VudHJ5LnRleHQpCisgICAgICAgIHNlbGVjdGVkX2hpc3RvcnlfZW50cnkudGV4dCB8IHNob3Vs ZC5jb250YWluKAorICAgICAgICAgICAgIlNFTEVDVCAqIEZST00gdGFibGVfdGhhdF9kb2VzbnRf ZXhpc3QiKQogICAgICAgICBmYWlsZWRfaGlzdG9yeV9kZXRhaWxfcGFuZSA9IHNlbGYucGFnZS5m aW5kX2J5X2lkKCJxdWVyeV9kZXRhaWwiKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0SW4oCisgICAg ICAgIGZhaWxlZF9oaXN0b3J5X2RldGFpbF9wYW5lLnRleHQgfCBzaG91bGQuY29udGFpbigKICAg ICAgICAgICAgICJFcnJvciBNZXNzYWdlIHJlbGF0aW9uIFwidGFibGVfdGhhdF9kb2VzbnRfZXhp c3RcIiAiCi0gICAgICAgICAgICAiZG9lcyBub3QgZXhpc3QiLCBmYWlsZWRfaGlzdG9yeV9kZXRh aWxfcGFuZS50ZXh0Ci0gICAgICAgICkKKyAgICAgICAgICAgICJkb2VzIG5vdCBleGlzdCIpCiAg ICAgICAgIEFjdGlvbkNoYWlucyhzZWxmLnBhZ2UuZHJpdmVyKSBcCiAgICAgICAgICAgICAuc2Vu ZF9rZXlzKEtleXMuQVJST1dfRE9XTikgXAogICAgICAgICAgICAgLnBlcmZvcm0oKQogICAgICAg ICBzZWxlY3RlZF9oaXN0b3J5X2VudHJ5ID0gc2VsZi5wYWdlLmZpbmRfYnlfY3NzX3NlbGVjdG9y KAogICAgICAgICAgICAgIiNxdWVyeV9saXN0IC5zZWxlY3RlZCIpCi0gICAgICAgIHNlbGYuYXNz ZXJ0SW4oIlNFTEVDVCAqIEZST00gdGVzdF90YWJsZSBPUkRFUiBCWSB2YWx1ZSIsCi0gICAgICAg ICAgICAgICAgICAgICAgc2VsZWN0ZWRfaGlzdG9yeV9lbnRyeS50ZXh0KQorICAgICAgICBzZWxl Y3RlZF9oaXN0b3J5X2VudHJ5LnRleHQgfCBzaG91bGQuY29udGFpbigKKyAgICAgICAgICAgICJT RUxFQ1QgKiBGUk9NIHRlc3RfdGFibGUgT1JERVIgQlkgdmFsdWUiKQogICAgICAgICBzZWxlY3Rl ZF9oaXN0b3J5X2RldGFpbF9wYW5lID0gc2VsZi5wYWdlLmZpbmRfYnlfaWQoInF1ZXJ5X2RldGFp bCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0SW4oIlNFTEVDVCAqIEZST00gdGVzdF90YWJsZSBPUkRF UiBCWSB2YWx1ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRfaGlzdG9yeV9kZXRh aWxfcGFuZS50ZXh0KQorICAgICAgICBzZWxlY3RlZF9oaXN0b3J5X2RldGFpbF9wYW5lLnRleHQg fCBzaG91bGQuY29udGFpbigKKyAgICAgICAgICAgICJTRUxFQ1QgKiBGUk9NIHRlc3RfdGFibGUg T1JERVIgQlkgdmFsdWUiKQogICAgICAgICBuZXdseV9zZWxlY3RlZF9oaXN0b3J5X2VudHJ5ID0g c2VsZi5wYWdlLmZpbmRfYnlfeHBhdGgoCiAgICAgICAgICAgICAiLy8qW0BpZD0ncXVlcnlfbGlz dCddL3VsL2xpWzJdIikKICAgICAgICAgc2VsZi5wYWdlLmNsaWNrX2VsZW1lbnQobmV3bHlfc2Vs ZWN0ZWRfaGlzdG9yeV9lbnRyeSkKICAgICAgICAgc2VsZWN0ZWRfaGlzdG9yeV9kZXRhaWxfcGFu ZSA9IHNlbGYucGFnZS5maW5kX2J5X2lkKCJxdWVyeV9kZXRhaWwiKQotICAgICAgICBzZWxmLmFz c2VydEluKCJTRUxFQ1QgKiBGUk9NIHRhYmxlX3RoYXRfZG9lc250X2V4aXN0IiwKLSAgICAgICAg ICAgICAgICAgICAgICBzZWxlY3RlZF9oaXN0b3J5X2RldGFpbF9wYW5lLnRleHQpCisgICAgICAg IHNlbGVjdGVkX2hpc3RvcnlfZGV0YWlsX3BhbmUudGV4dCB8IHNob3VsZC5jb250YWluKAorICAg ICAgICAgICAgIlNFTEVDVCAqIEZST00gdGFibGVfdGhhdF9kb2VzbnRfZXhpc3QiKQogCiAgICAg ICAgIHNlbGYuX19jbGVhcl9xdWVyeV90b29sKCkKIApAQCAtMTU2LDggKzE2Miw4IEBAIGNsYXNz IFF1ZXJ5VG9vbEpvdXJuZXlUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgIHNlbGYucGFn ZS5jbGlja19lbGVtZW50KAogICAgICAgICAgICAgc2VsZi5wYWdlLmZpbmRfYnlfeHBhdGgoIi8v KltAaWQ9J2J0bi1jbGVhci1kcm9wZG93biddIikKICAgICAgICAgKQotICAgICAgICBBY3Rpb25D aGFpbnMoc2VsZi5kcml2ZXIpXAotICAgICAgICAgICAgLm1vdmVfdG9fZWxlbWVudChzZWxmLnBh Z2UuZmluZF9ieV94cGF0aCgiLy8qW0BpZD0nYnRuLWNsZWFyJ10iKSlcCisgICAgICAgIEFjdGlv bkNoYWlucyhzZWxmLmRyaXZlcikgXAorICAgICAgICAgICAgLm1vdmVfdG9fZWxlbWVudChzZWxm LnBhZ2UuZmluZF9ieV94cGF0aCgiLy8qW0BpZD0nYnRuLWNsZWFyJ10iKSkgXAogICAgICAgICAg ICAgLnBlcmZvcm0oKQogICAgICAgICBzZWxmLnBhZ2UuY2xpY2tfZWxlbWVudCgKICAgICAgICAg ICAgIHNlbGYucGFnZS5maW5kX2J5X3hwYXRoKCIvLypbQGlkPSdidG4tY2xlYXInXSIpCkBAIC0x NzYsMTQgKzE4MiwzIEBAIGNsYXNzIFF1ZXJ5VG9vbEpvdXJuZXlUZXN0KEJhc2VGZWF0dXJlVGVz dCk6CiAKICAgICBkZWYgX2Fzc2VydF9jbGlja2FibGUoc2VsZiwgZWxlbWVudCk6CiAgICAgICAg IHNlbGYucGFnZS5jbGlja19lbGVtZW50KGVsZW1lbnQpCi0KLSAgICBkZWYgYWZ0ZXIoc2VsZik6 Ci0gICAgICAgIHNlbGYucGFnZS5jbG9zZV9xdWVyeV90b29sKCkKLSAgICAgICAgc2VsZi5wYWdl LnJlbW92ZV9zZXJ2ZXIoc2VsZi5zZXJ2ZXIpCi0KLSAgICAgICAgY29ubmVjdGlvbiA9IHRlc3Rf dXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oc2VsZi5zZXJ2ZXJbJ2RiJ10sCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFt ZSddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2hvc3QnXSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3BvcnQnXSkK LSAgICAgICAgdGVzdF91dGlscy5kcm9wX2RhdGFiYXNlKGNvbm5lY3Rpb24sICJhY2NlcHRhbmNl X3Rlc3RfZGIiKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9xdWVyeV90 b29sX3Rlc3RzLnB5IGIvd2ViL3JlZ3Jlc3Npb24vZmVhdHVyZV90ZXN0cy9xdWVyeV90b29sX3Rl c3RzLnB5CnNpbWlsYXJpdHkgaW5kZXggOTUlCnJlbmFtZSBmcm9tIHdlYi9wZ2FkbWluL2ZlYXR1 cmVfdGVzdHMvcXVlcnlfdG9vbF90ZXN0cy5weQpyZW5hbWUgdG8gd2ViL3JlZ3Jlc3Npb24vZmVh dHVyZV90ZXN0cy9xdWVyeV90b29sX3Rlc3RzLnB5CmluZGV4IGFjNDYzZDM1Li41YjgxZjkxZCAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9xdWVyeV90b29sX3Rlc3RzLnB5 CisrKyBiL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVfdGVzdHMvcXVlcnlfdG9vbF90ZXN0cy5weQpA QCAtOCwxMiArOCwxMiBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAogZnJvbSBfX2Z1dHVyZV9fIGlt cG9ydCBwcmludF9mdW5jdGlvbgotaW1wb3J0IHRpbWUKIGltcG9ydCBzeXMKIAogZnJvbSBzZWxl bml1bS5jb21tb24uZXhjZXB0aW9ucyBpbXBvcnQgU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0 aW9uCiAKIGltcG9ydCBjb25maWcKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKIGZyb20gc2Vs ZW5pdW0ud2ViZHJpdmVyIGltcG9ydCBBY3Rpb25DaGFpbnMKIGZyb20gc2VsZW5pdW0ud2ViZHJp dmVyLnN1cHBvcnQudWkgaW1wb3J0IFdlYkRyaXZlcldhaXQKIGZyb20gc2VsZW5pdW0ud2ViZHJp dmVyLnN1cHBvcnQgaW1wb3J0IGV4cGVjdGVkX2NvbmRpdGlvbnMgYXMgRUMKQEAgLTIyLDE2ICsy MiwxNSBAQCBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRp bHMKIGZyb20gcmVncmVzc2lvbi5mZWF0dXJlX3V0aWxzLmJhc2VfZmVhdHVyZV90ZXN0IGltcG9y dCBCYXNlRmVhdHVyZVRlc3QKIAogCi1jbGFzcyBRdWVyeVRvb2xGZWF0dXJlVGVzdChCYXNlRmVh dHVyZVRlc3QpOgotICAgICIiIgotICAgICAgICBUaGlzIGZlYXR1cmUgdGVzdCB3aWxsIHRlc3Qg dGhlIGRpZmZlcmVudCBxdWVyeSB0b29sIGZlYXR1cmVzLgotICAgICIiIgorY2xhc3MgVGVzdFF1 ZXJ5VG9vbChCYXNlRmVhdHVyZVRlc3QpOgorICAgIGRlZiB0ZXN0X3F1ZXJ5X3Rvb2woc2VsZiwg ZHJpdmVyKToKKyAgICAgICAgIiIiCisgICAgICAgICAgICBUaGlzIGZlYXR1cmUgdGVzdCB3aWxs IHRlc3QgdGhlIGRpZmZlcmVudCBxdWVyeSB0b29sIGZlYXR1cmVzLgorICAgICAgICAiIiIKKyAg ICAgICAgc2VsZi5kcml2ZXIgPSBkcml2ZXIKIAotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAg KCJRdWVyeSB0b29sIGZlYXR1cmUgdGVzdCIsIGRpY3QoKSkKLSAgICBdCisgICAgICAgIHNlbGYu c2V0VXAoKQogCi0gICAgZGVmIGJlZm9yZShzZWxmKToKICAgICAgICAgY29ubmVjdGlvbiA9IHRl c3RfdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oCiAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGIn XSwKICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLApAQCAtNDgsNyArNDcsNiBA QCBjbGFzcyBRdWVyeVRvb2xGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAgICBz ZWxmLnBhZ2Uub3Blbl9xdWVyeV90b29sKCkKICAgICAgICAgc2VsZi5fcmVzZXRfb3B0aW9ucygp CiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKICAgICAgICAgIyBvbiBkZW1hbmQgcmVzdWx0IHNl dCBvbiBzY3JvbGxpbmcuCiAgICAgICAgIHByaW50KCJcbk9uIGRlbWFuZCBxdWVyeSByZXN1bHQu Li4gIiwKICAgICAgICAgICAgICAgZmlsZT1zeXMuc3RkZXJyLCBlbmQ9IiIpCkBAIC0xMDQsNyAr MTAyLDYgQEAgY2xhc3MgUXVlcnlUb29sRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAg ICAgICAgc2VsZi5fcXVlcnlfdG9vbF9ub3RpZnlfc3RhdGVtZW50cygpCiAgICAgICAgIHNlbGYu X2NsZWFyX3F1ZXJ5X3Rvb2woKQogCi0gICAgZGVmIGFmdGVyKHNlbGYpOgogICAgICAgICBzZWxm LnBhZ2UucmVtb3ZlX3NlcnZlcihzZWxmLnNlcnZlcikKICAgICAgICAgY29ubmVjdGlvbiA9IHRl c3RfdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oCiAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGIn XSwKQEAgLTM3OSwxMCArMzc2LDExIEBAIFNFTEVDVCByZWxuYW1lIEZST00gcGdfY2xhc3MKICAg ICAgICAgICAgICIvL2Rpdltjb250YWlucyhAY2xhc3MsICdzbGljay1jZWxsJykgYW5kICIKICAg ICAgICAgICAgICJjb250YWlucyh0ZXh0KCksICd7fScpXSIuZm9ybWF0KHRhYmxlX25hbWUpKQog Ci0gICAgICAgIGFzc2VydCBsZW4oZWwpID09IDAsICJUYWJsZSAne30nIGNyZWF0ZWQgd2l0aCBh dXRvIGNvbW1pdCBkaXNhYmxlZCAiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFu ZCB3aXRob3V0IGFueSBleHBsaWNpdCBjb21taXQuIi5mb3JtYXQoCi0gICAgICAgICAgICB0YWJs ZV9uYW1lCi0gICAgICAgICkKKyAgICAgICAgbGVuKGVsKSB8IFwKKyAgICAgICAgICAgIHNob3Vs ZC5oYXZlLmxlbmd0aC5vZigwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1z Zz0iVGFibGUgJ3t9JyBjcmVhdGVkIHdpdGggYXV0byBjb21taXQgIgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiZGlzYWJsZWQgYW5kIHdpdGhvdXQgYW55IGV4cGxpY2l0 ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbW1pdC4iLmZvcm1h dCh0YWJsZV9uYW1lKSkKIAogICAgIGRlZiBfcXVlcnlfdG9vbF9hdXRvX2NvbW1pdF9lbmFibGVk KHNlbGYpOgogCkBAIC00NjUsOCArNDYzLDEwIEBAIFNFTEVDVCByZWxuYW1lIEZST00gcGdfY2xh c3MKICAgICAgICAgICAgICIvL2Rpdltjb250YWlucyhAY2xhc3MsICdzbGljay1jZWxsJykgYW5k ICIKICAgICAgICAgICAgICJjb250YWlucyh0ZXh0KCksICd7fScpXSIuZm9ybWF0KHRhYmxlX25h bWUpKQogCi0gICAgICAgIGFzc2VydCBsZW4oZWwpICE9IDAsICJUYWJsZSAne30nIGlzIG5vdCBj cmVhdGVkIHdpdGggYXV0byAiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbW1p dCBlbmFibGVkLiIuZm9ybWF0KHRhYmxlX25hbWUpCisgICAgICAgIGxlbihlbCkgfCBzaG91bGQu bm90X2hhdmUubGVuZ3RoLm9mKDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG1zZz0iVGFibGUgJ3t9JyBpcyBub3QgY3JlYXRlZCAiCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2l0aCBhdXRvIGNvbW1pdCAiCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZW5hYmxlZC4i LmZvcm1hdCh0YWJsZV9uYW1lKSkKIAogICAgIGRlZiBfcXVlcnlfdG9vbF9hdXRvX3JvbGxiYWNr X2VuYWJsZWQoc2VsZik6CiAgICAgICAgIHRhYmxlX25hbWUgPSAncXVlcnlfdG9vbF9hdXRvX3Jv bGxiYWNrX2VuYWJsZWRfdGFibGUnCkBAIC01NjMsOCArNTYzLDEwIEBAIFNFTEVDVCByZWxuYW1l IEZST00gcGdfY2xhc3MKICAgICAgICAgICAgICIvL2Rpdltjb250YWlucyhAY2xhc3MsICdzbGlj ay1jZWxsJykgYW5kICIKICAgICAgICAgICAgICJjb250YWlucyh0ZXh0KCksICd7fScpXSIuZm9y bWF0KHRhYmxlX25hbWUpKQogCi0gICAgICAgIGFzc2VydCBsZW4oZWwpID09IDAsICJUYWJsZSAn e30nIGNyZWF0ZWQgZXZlbiBhZnRlciBST0xMQkFDSyBkdWUgdG8gIiBcCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJzcWwgZXJyb3IuIi5mb3JtYXQodGFibGVfbmFtZSkKKyAgICAgICAg bGVuKGVsKSB8IHNob3VsZC5oYXZlLmxlbmd0aC5vZigwLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1zZz0iVGFibGUgJ3t9JyBjcmVhdGVkIGV2ZW4gYWZ0ZXIgIgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUk9MTEJBQ0sgZHVl IHRvIHNxbCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJl cnJvci4iLmZvcm1hdCh0YWJsZV9uYW1lKSkKIAogICAgIGRlZiBfcXVlcnlfdG9vbF9jYW5jZWxf cXVlcnkoc2VsZik6CiAgICAgICAgIHF1ZXJ5ID0gIiIiLS0gMS4gRU5EIGFueSBvcGVuIHRyYW5z YWN0aW9uLgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy90YWJsZV9kZGxf ZmVhdHVyZV90ZXN0LnB5IGIvd2ViL3JlZ3Jlc3Npb24vZmVhdHVyZV90ZXN0cy90YWJsZV9kZGxf ZmVhdHVyZV90ZXN0LnB5CnNpbWlsYXJpdHkgaW5kZXggODklCnJlbmFtZSBmcm9tIHdlYi9wZ2Fk bWluL2ZlYXR1cmVfdGVzdHMvdGFibGVfZGRsX2ZlYXR1cmVfdGVzdC5weQpyZW5hbWUgdG8gd2Vi L3JlZ3Jlc3Npb24vZmVhdHVyZV90ZXN0cy90YWJsZV9kZGxfZmVhdHVyZV90ZXN0LnB5CmluZGV4 IDE4NzYwMDE5Li4yMGQ1NGQ3ZiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0 cy90YWJsZV9kZGxfZmVhdHVyZV90ZXN0LnB5CisrKyBiL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVf dGVzdHMvdGFibGVfZGRsX2ZlYXR1cmVfdGVzdC5weQpAQCAtNiwxOSArNiwxNiBAQAogIyBUaGlz IHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCi0KIGZyb20gcmVncmVzc2lvbi5mZWF0dXJlX3V0aWxzLmJhc2VfZmVh dHVyZV90ZXN0IGltcG9ydCBCYXNlRmVhdHVyZVRlc3QKIGZyb20gcmVncmVzc2lvbi5weXRob25f dGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscwogCiAKLWNsYXNzIFRhYmxlRGRsRmVhdHVyZVRl c3QoQmFzZUZlYXR1cmVUZXN0KToKLSAgICAiIiIgVGhpcyBjbGFzcyB0ZXN0IGFjY2VwdGFuY2Ug dGVzdCBzY2VuYXJpb3MgIiIiCitjbGFzcyBUZXN0VGFibGVEZGwoQmFzZUZlYXR1cmVUZXN0KToK KyAgICBkZWYgdGVzdF90YWJsZV9kZGwoc2VsZiwgZHJpdmVyKToKKyAgICAgICAgc2VsZi5kcml2 ZXIgPSBkcml2ZXIKIAotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCJUZXN0IHRhYmxlIERE TCBnZW5lcmF0aW9uIiwgZGljdCgpKQotICAgIF0KKyAgICAgICAgc2VsZi5zZXRVcCgpCiAKLSAg ICBkZWYgYmVmb3JlKHNlbGYpOgogICAgICAgICBjb25uZWN0aW9uID0gdGVzdF91dGlscy5nZXRf ZGJfY29ubmVjdGlvbigKICAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYiddLAogICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJbJ3VzZXJuYW1lJ10sCkBAIC0zMyw3ICszMCw2IEBAIGNsYXNzIFRhYmxl RGRsRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKIAogICAgICAgICBzZWxmLnBhZ2UuYWRk X3NlcnZlcihzZWxmLnNlcnZlcikKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgogICAgICAgICB0 ZXN0X3V0aWxzLmNyZWF0ZV90YWJsZSgKICAgICAgICAgICAgIHNlbGYuc2VydmVyLCAiYWNjZXB0 YW5jZV90ZXN0X2RiIiwgInRlc3RfdGFibGUiKQogCkBAIC01MCw3ICs0Niw2IEBAIGNsYXNzIFRh YmxlRGRsRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgICAgICIvLypbY29u dGFpbnMoQGNsYXNzLCdDb2RlTWlycm9yLWxpbmVzJykgYW5kICIKICAgICAgICAgICAgICJjb250 YWlucyguLCdDUkVBVEUgVEFCTEUgcHVibGljLnRlc3RfdGFibGUnKV0iKQogCi0gICAgZGVmIGFm dGVyKHNlbGYpOgogICAgICAgICBzZWxmLnBhZ2UucmVtb3ZlX3NlcnZlcihzZWxmLnNlcnZlcikK ICAgICAgICAgY29ubmVjdGlvbiA9IHRlc3RfdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oCiAgICAg ICAgICAgICBzZWxmLnNlcnZlclsnZGInXSwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2ZlYXR1 cmVfdGVzdHMvdGVzdF9kYXRhLmpzb24gYi93ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3Rlc3RzL3Rl c3RfZGF0YS5qc29uCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB3ZWIvcGdhZG1p bi9mZWF0dXJlX3Rlc3RzL3Rlc3RfZGF0YS5qc29uCnJlbmFtZSB0byB3ZWIvcmVncmVzc2lvbi9m ZWF0dXJlX3Rlc3RzL3Rlc3RfZGF0YS5qc29uCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9mZWF0 dXJlX3Rlc3RzL3ZpZXdfZGF0YV9kbWxfcXVlcmllcy5weSBiL3dlYi9yZWdyZXNzaW9uL2ZlYXR1 cmVfdGVzdHMvdmlld19kYXRhX2RtbF9xdWVyaWVzLnB5CnNpbWlsYXJpdHkgaW5kZXggOTIlCnJl bmFtZSBmcm9tIHdlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvdmlld19kYXRhX2RtbF9xdWVyaWVz LnB5CnJlbmFtZSB0byB3ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3Rlc3RzL3ZpZXdfZGF0YV9kbWxf cXVlcmllcy5weQppbmRleCBmNWRjNjU5MC4uMGNkMmJhMWQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL2ZlYXR1cmVfdGVzdHMvdmlld19kYXRhX2RtbF9xdWVyaWVzLnB5CisrKyBiL3dlYi9yZWdy ZXNzaW9uL2ZlYXR1cmVfdGVzdHMvdmlld19kYXRhX2RtbF9xdWVyaWVzLnB5CkBAIC0xMCw2ICsx MCw4IEBACiBpbXBvcnQganNvbgogaW1wb3J0IG9zCiBpbXBvcnQgdGltZQorCitmcm9tIGdyYXBw YSBpbXBvcnQgc2hvdWxkCiBmcm9tIHNlbGVuaXVtLndlYmRyaXZlciBpbXBvcnQgQWN0aW9uQ2hh aW5zCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMK IGZyb20gcmVncmVzc2lvbi5mZWF0dXJlX3V0aWxzLmJhc2VfZmVhdHVyZV90ZXN0IGltcG9ydCBC YXNlRmVhdHVyZVRlc3QKQEAgLTI3LDcgKzI5LDcgQEAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgog ICAgIHByaW50KHN0cihlKSkKIAogCi1jbGFzcyBDaGVja0ZvclZpZXdEYXRhVGVzdChCYXNlRmVh dHVyZVRlc3QpOgorY2xhc3MgVGVzdENoZWNrRm9yVmlld0RhdGEoQmFzZUZlYXR1cmVUZXN0KToK ICAgICAiIiIKICAgICBUZXN0IGNhc2VzIHRvIHZhbGlkYXRlIGluc2VydCwgdXBkYXRlIG9wZXJh dGlvbnMgaW4gdGFibGUKICAgICB3aXRoIGlucHV0IHRlc3QgZGF0YQpAQCAtNDMsMTIgKzQ1LDYg QEAgY2xhc3MgQ2hlY2tGb3JWaWV3RGF0YVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAg NCkgQ29weS9QYXN0ZSByb3cKICAgICAiIiIKIAotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAg KCJWYWxpZGF0ZSBJbnNlcnQsIFVwZGF0ZSBvcGVyYXRpb25zIGluIFZpZXcvRWRpdCBkYXRhIHdp dGggIgotICAgICAgICAgImdpdmVuIHRlc3QgZGF0YSIsCi0gICAgICAgICBkaWN0KCkpCi0gICAg XQotCiAgICAgVElNRU9VVF9TVFJJTkcgPSAiVGltZWQgb3V0IHdhaXRpbmcgZm9yIGRpdiBlbGVt ZW50IHRvIGFwcGVhciIKIAogICAgICMgcXVlcnkgZm9yIGNyZWF0aW5nICdkZWZhdWx0c190ZXh0 JyB0YWJsZQpAQCAtODAsNyArNzYsMTEgQEAgQ1JFQVRFIFRBQkxFIHB1YmxpYy5kZWZhdWx0c197 MH0KICkKICIiIgogCi0gICAgZGVmIGJlZm9yZShzZWxmKToKKyAgICBkZWYgdGVzdF9jaGVja19m b3Jfdmlld19kYXRhKHNlbGYsIGRyaXZlcik6CisgICAgICAgIHNlbGYuZHJpdmVyID0gZHJpdmVy CisKKyAgICAgICAgc2VsZi5zZXRVcCgpCisKICAgICAgICAgd2l0aCB0ZXN0X3V0aWxzLkRhdGFi YXNlKHNlbGYuc2VydmVyKSBhcyAoY29ubmVjdGlvbiwgXyk6CiAgICAgICAgICAgICBpZiBjb25u ZWN0aW9uLnNlcnZlcl92ZXJzaW9uIDwgOTAxMDA6CiAgICAgICAgICAgICAgICAgc2VsZi5za2lw VGVzdCgKQEAgLTEwMywxMiArMTAzLDExIEBAIENSRUFURSBUQUJMRSBwdWJsaWMuZGVmYXVsdHNf ezB9CiAgICAgICAgICAgICB0ZXN0X3V0aWxzLmNyZWF0ZV90YWJsZV93aXRoX3F1ZXJ5KAogICAg ICAgICAgICAgICAgIHNlbGYuc2VydmVyLAogICAgICAgICAgICAgICAgICJhY2NlcHRhbmNlX3Rl c3RfZGIiLAotICAgICAgICAgICAgICAgIENoZWNrRm9yVmlld0RhdGFUZXN0LmRlZmF1bHRzX3F1 ZXJ5LmZvcm1hdChrLCB2KSkKKyAgICAgICAgICAgICAgICBUZXN0Q2hlY2tGb3JWaWV3RGF0YS5k ZWZhdWx0c19xdWVyeS5mb3JtYXQoaywgdikpCiAKICAgICAgICAgIyBJbml0aWFsaXplIGFuIGlu c3RhbmNlIG9mIFdlYkRyaXZlcldhaXQgd2l0aCB0aW1lb3V0IG9mIDMgc2Vjb25kcwogICAgICAg ICBzZWxmLndhaXQgPSBXZWJEcml2ZXJXYWl0KHNlbGYuZHJpdmVyLCAzKQogCi0gICAgZGVmIHJ1 blRlc3Qoc2VsZik6CiAgICAgICAgIHNlbGYucGFnZS53YWl0X2Zvcl9zcGlubmVyX3RvX2Rpc2Fw cGVhcigpCiAgICAgICAgIHNlbGYucGFnZS5hZGRfc2VydmVyKHNlbGYuc2VydmVyKQogICAgICAg ICBzZWxmLl90YWJsZXNfbm9kZV9leHBhbmRhYmxlKCkKQEAgLTEyNyw3ICsxMjYsNiBAQCBDUkVB VEUgVEFCTEUgcHVibGljLmRlZmF1bHRzX3swfQogICAgICAgICAgICAgc2VsZi5fY29weV9wYXN0 ZV9yb3coKQogICAgICAgICAgICAgc2VsZi5wYWdlLmNsb3NlX2RhdGFfZ3JpZCgpCiAKLSAgICBk ZWYgYWZ0ZXIoc2VsZik6CiAgICAgICAgIHNlbGYucGFnZS5yZW1vdmVfc2VydmVyKHNlbGYuc2Vy dmVyKQogICAgICAgICBjb25uZWN0aW9uID0gdGVzdF91dGlscy5nZXRfZGJfY29ubmVjdGlvbigK ICAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYiddLApAQCAtMTYxLDEyICsxNTksMTIgQEAgQ1JF QVRFIFRBQkxFIHB1YmxpYy5kZWZhdWx0c197MH0KICAgICAgICAgdHJ5OgogICAgICAgICAgICAg d2FpdC51bnRpbChFQy50ZXh0X3RvX2JlX3ByZXNlbnRfaW5fZWxlbWVudCgKICAgICAgICAgICAg ICAgICAoQnkuWFBBVEgsIHhwYXRoICsgIi8vc3BhbiIpLCBzdHIodmFsdWUpKSwKLSAgICAgICAg ICAgICAgICBDaGVja0ZvclZpZXdEYXRhVGVzdC5USU1FT1VUX1NUUklORworICAgICAgICAgICAg ICAgIFRlc3RDaGVja0ZvclZpZXdEYXRhLlRJTUVPVVRfU1RSSU5HCiAgICAgICAgICAgICApCiAg ICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAgICAgICB3YWl0LnVudGlsKEVDLnRleHRf dG9fYmVfcHJlc2VudF9pbl9lbGVtZW50KAogICAgICAgICAgICAgICAgIChCeS5YUEFUSCwgeHBh dGgpLCBzdHIodmFsdWUpKSwKLSAgICAgICAgICAgICAgICBDaGVja0ZvclZpZXdEYXRhVGVzdC5U SU1FT1VUX1NUUklORworICAgICAgICAgICAgICAgIFRlc3RDaGVja0ZvclZpZXdEYXRhLlRJTUVP VVRfU1RSSU5HCiAgICAgICAgICAgICApCiAKICAgICBkZWYgX3VwZGF0ZV9jZWxsKHNlbGYsIHhw YXRoLCBkYXRhKToKQEAgLTE4Miw3ICsxODAsNyBAQCBDUkVBVEUgVEFCTEUgcHVibGljLmRlZmF1 bHRzX3swfQogICAgICAgICAiIiIKIAogICAgICAgICBzZWxmLndhaXQudW50aWwoRUMudmlzaWJp bGl0eV9vZl9lbGVtZW50X2xvY2F0ZWQoCi0gICAgICAgICAgICAoQnkuWFBBVEgsIHhwYXRoKSks IENoZWNrRm9yVmlld0RhdGFUZXN0LlRJTUVPVVRfU1RSSU5HCisgICAgICAgICAgICAoQnkuWFBB VEgsIHhwYXRoKSksIFRlc3RDaGVja0ZvclZpZXdEYXRhLlRJTUVPVVRfU1RSSU5HCiAgICAgICAg ICkKICAgICAgICAgY2VsbF9lbCA9IHNlbGYucGFnZS5maW5kX2J5X3hwYXRoKHhwYXRoKQogICAg ICAgICBzZWxmLnBhZ2UuZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJhcmd1bWVudHNbMF0uc2Nyb2xs SW50b1ZpZXcoKSIsCkBAIC0yNDcsMTYgKzI0NSwxNiBAQCBDUkVBVEUgVEFCTEUgcHVibGljLmRl ZmF1bHRzX3swfQogICAgICAgICBzZWxmLndhaXQudW50aWwoCiAgICAgICAgICAgICBFQy52aXNp YmlsaXR5X29mX2VsZW1lbnRfbG9jYXRlZCgKICAgICAgICAgICAgICAgICAoQnkuQ1NTX1NFTEVD VE9SLCAnaWZyYW1lJykKLSAgICAgICAgICAgICksIENoZWNrRm9yVmlld0RhdGFUZXN0LlRJTUVP VVRfU1RSSU5HCisgICAgICAgICAgICApLCBUZXN0Q2hlY2tGb3JWaWV3RGF0YS5USU1FT1VUX1NU UklORwogICAgICAgICApCiAgICAgICAgIHNlbGYucGFnZS5kcml2ZXIuc3dpdGNoX3RvLmZyYW1l KAogICAgICAgICAgICAgc2VsZi5wYWdlLmRyaXZlci5maW5kX2VsZW1lbnRfYnlfdGFnX25hbWUo J2lmcmFtZScpCiAgICAgICAgICkKIAogICAgIGRlZiBfY29weV9wYXN0ZV9yb3coc2VsZik6Ci0g ICAgICAgIHJvdzBfY2VsbDBfeHBhdGggPSBDaGVja0ZvclZpZXdEYXRhVGVzdC5fZ2V0X2NlbGxf eHBhdGgoInIwIiwgMSkKLSAgICAgICAgcm93MV9jZWxsMV94cGF0aCA9IENoZWNrRm9yVmlld0Rh dGFUZXN0Ll9nZXRfY2VsbF94cGF0aCgicjEiLCAyKQotICAgICAgICByb3cxX2NlbGwyX3hwYXRo ID0gQ2hlY2tGb3JWaWV3RGF0YVRlc3QuX2dldF9jZWxsX3hwYXRoKCJyMiIsIDIpCisgICAgICAg IHJvdzBfY2VsbDBfeHBhdGggPSBUZXN0Q2hlY2tGb3JWaWV3RGF0YS5fZ2V0X2NlbGxfeHBhdGgo InIwIiwgMSkKKyAgICAgICAgcm93MV9jZWxsMV94cGF0aCA9IFRlc3RDaGVja0ZvclZpZXdEYXRh Ll9nZXRfY2VsbF94cGF0aCgicjEiLCAyKQorICAgICAgICByb3cxX2NlbGwyX3hwYXRoID0gVGVz dENoZWNrRm9yVmlld0RhdGEuX2dldF9jZWxsX3hwYXRoKCJyMiIsIDIpCiAKICAgICAgICAgc2Vs Zi5wYWdlLmZpbmRfYnlfeHBhdGgocm93MF9jZWxsMF94cGF0aCkuY2xpY2soKQogICAgICAgICBz ZWxmLnBhZ2UuZmluZF9ieV94cGF0aCgiLy8qW0BpZD0nYnRuLWNvcHktcm93J10iKS5jbGljaygp CkBAIC0yNjQsNyArMjYyLDcgQEAgQ1JFQVRFIFRBQkxFIHB1YmxpYy5kZWZhdWx0c197MH0KICAg ICAgICAgIyBVcGRhdGUgcHJpbWFyeSBrZXkgb2YgY29waWVkIGNlbGwKICAgICAgICAgc2VsZi5f dXBkYXRlX2NlbGwocm93MV9jZWxsMV94cGF0aCwgWzIsICIiLCAiaW50Il0pCiAgICAgICAgIHNl bGYucGFnZS5maW5kX2J5X3hwYXRoKAotICAgICAgICAgICAgQ2hlY2tGb3JWaWV3RGF0YVRlc3Qu X2dldF9jZWxsX3hwYXRoKCJyMSIsICIzIikKKyAgICAgICAgICAgIFRlc3RDaGVja0ZvclZpZXdE YXRhLl9nZXRfY2VsbF94cGF0aCgicjEiLCAiMyIpCiAgICAgICAgICkuY2xpY2soKQogCiAgICAg ICAgICMgQ2hlY2sgaWYgcmVtb3ZpbmcgYSBjZWxsIHZhbHVlIHdpdGggZGVmYXVsdCB2YWx1ZSBz ZXRzCkBAIC0yNzIsNyArMjcwLDcgQEAgQ1JFQVRFIFRBQkxFIHB1YmxpYy5kZWZhdWx0c197MH0K ICAgICAgICAgc2VsZi5fdXBkYXRlX2NlbGwocm93MV9jZWxsMl94cGF0aCwgWyJjbGVhciIsICIi LCAiaW50Il0pCiAgICAgICAgICMgY2xpY2sgb3V0c2lkZQogICAgICAgICBzZWxmLnBhZ2UuZmlu ZF9ieV94cGF0aCgKLSAgICAgICAgICAgIENoZWNrRm9yVmlld0RhdGFUZXN0Ll9nZXRfY2VsbF94 cGF0aCgicjEiLCAiMyIpCisgICAgICAgICAgICBUZXN0Q2hlY2tGb3JWaWV3RGF0YS5fZ2V0X2Nl bGxfeHBhdGgoInIxIiwgIjMiKQogICAgICAgICApLmNsaWNrKCkKIAogICAgICAgICBzZWxmLl9j b21wYXJlX2NlbGxfdmFsdWUocm93MV9jZWxsMl94cGF0aCwgIltkZWZhdWx0XSIpCkBAIC0yOTEs NyArMjg5LDcgQEAgQ1JFQVRFIFRBQkxFIHB1YmxpYy5kZWZhdWx0c197MH0KIAogICAgIGRlZiBf YWRkX3JvdyhzZWxmKToKICAgICAgICAgZm9yIGlkeCBpbiByYW5nZSgxLCBsZW4oY29uZmlnX2Rh dGEua2V5cygpKSArIDEpOgotICAgICAgICAgICAgY2VsbF94cGF0aCA9IENoZWNrRm9yVmlld0Rh dGFUZXN0Ll9nZXRfY2VsbF94cGF0aCgKKyAgICAgICAgICAgIGNlbGxfeHBhdGggPSBUZXN0Q2hl Y2tGb3JWaWV3RGF0YS5fZ2V0X2NlbGxfeHBhdGgoCiAgICAgICAgICAgICAgICAgJ3InICsgc3Ry KGlkeCksIDEKICAgICAgICAgICAgICkKICAgICAgICAgICAgIHRpbWUuc2xlZXAoMC4yKQpAQCAt MzI2LDcgKzMyNCw3IEBAIENSRUFURSBUQUJMRSBwdWJsaWMuZGVmYXVsdHNfezB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQpCiAKICAgICAgICAg ICAgIGlmIChpZHggIT0gMSBhbmQgbm90IGlzX25ld19yb3cpIG9yIGlzX25ld19yb3c6Ci0gICAg ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZWxlbWVudC50ZXh0LCBjb25maWdfZGF0YVtz dHIoaWR4KV1bMV0pCisgICAgICAgICAgICAgICAgZWxlbWVudC50ZXh0IHwgc2hvdWxkLmVxdWFs KGNvbmZpZ19kYXRhW3N0cihpZHgpXVsxXSkKIAogICAgICAgICAjIHNjcm9sbCBicm93c2VyIGJh Y2sgdG8gdGhlIGxlZnQKICAgICAgICAgIyB0byByZXNldCBwb3NpdGlvbiBzbyBvdGhlciBhc3Nl cnRpb25zIGNhbiBzdWNjZWVkCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3Rz L3hzc19jaGVja3NfZmlsZV9tYW5hZ2VyX3Rlc3QucHkgYi93ZWIvcmVncmVzc2lvbi9mZWF0dXJl X3Rlc3RzL3hzc19jaGVja3NfZmlsZV9tYW5hZ2VyX3Rlc3QucHkKc2ltaWxhcml0eSBpbmRleCA4 NCUKcmVuYW1lIGZyb20gd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy94c3NfY2hlY2tzX2ZpbGVf bWFuYWdlcl90ZXN0LnB5CnJlbmFtZSB0byB3ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3Rlc3RzL3hz c19jaGVja3NfZmlsZV9tYW5hZ2VyX3Rlc3QucHkKaW5kZXggNjBkN2U5MWMuLmFlNWFhMjgyIDEw MDY0NAotLS0gYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3hzc19jaGVja3NfZmlsZV9tYW5h Z2VyX3Rlc3QucHkKKysrIGIvd2ViL3JlZ3Jlc3Npb24vZmVhdHVyZV90ZXN0cy94c3NfY2hlY2tz X2ZpbGVfbWFuYWdlcl90ZXN0LnB5CkBAIC04LDI0ICs4LDIzIEBACiAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IwogCiBpbXBvcnQgb3MKLWltcG9ydCB0aW1lCi1mcm9tIHNlbGVuaXVtLndlYmRyaXZlci5jb21t b24ua2V5cyBpbXBvcnQgS2V5cwotZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC51aSBp bXBvcnQgV2ViRHJpdmVyV2FpdAorCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCiBmcm9tIHNl bGVuaXVtLndlYmRyaXZlci5jb21tb24uYnkgaW1wb3J0IEJ5Citmcm9tIHNlbGVuaXVtLndlYmRy aXZlci5jb21tb24ua2V5cyBpbXBvcnQgS2V5cwogZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3Vw cG9ydCBpbXBvcnQgZXhwZWN0ZWRfY29uZGl0aW9ucyBhcyBFQwotZnJvbSByZWdyZXNzaW9uLnB5 dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzCitmcm9tIHNlbGVuaXVtLndlYmRyaXZl ci5zdXBwb3J0LnVpIGltcG9ydCBXZWJEcml2ZXJXYWl0CisKIGZyb20gcmVncmVzc2lvbi5mZWF0 dXJlX3V0aWxzLmJhc2VfZmVhdHVyZV90ZXN0IGltcG9ydCBCYXNlRmVhdHVyZVRlc3QKK2Zyb20g cmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscwogCiAKLWNsYXNz IENoZWNrRmlsZU1hbmFnZXJGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRlc3QpOgotICAgICIiIlRl c3RzIHRvIGNoZWNrIGZpbGUgbWFuYWdlciBmb3IgWFNTLiIiIgorY2xhc3MgVGVzdENoZWNrRmls ZU1hbmFnZXIoQmFzZUZlYXR1cmVUZXN0KToKKyAgICBkZWYgdGVzdF9jaGVja19maWxlX21hbmFn ZXIoc2VsZiwgZHJpdmVyKToKKyAgICAgICAgc2VsZi5kcml2ZXIgPSBkcml2ZXIKIAotICAgIHNj ZW5hcmlvcyA9IFsKLSAgICAgICAgKCJUZXN0cyB0byBjaGVjayBpZiBGaWxlIG1hbmFnZXIgaXMg dnVsbmVyYWJsZSB0byBYU1MiLAotICAgICAgICAgZGljdCgpKQotICAgIF0KKyAgICAgICAgc2Vs Zi5zZXRVcCgpCiAKLSAgICBkZWYgYmVmb3JlKHNlbGYpOgogICAgICAgICBjb25uZWN0aW9uID0g dGVzdF91dGlscy5nZXRfZGJfY29ubmVjdGlvbigKICAgICAgICAgICAgIHNlbGYuc2VydmVyWydk YiddLAogICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3VzZXJuYW1lJ10sCkBAIC00Miw3ICs0MSwx MSBAQCBjbGFzcyBDaGVja0ZpbGVNYW5hZ2VyRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToK ICAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUoc2VsZi5YU1NfRklMRSk6CiAgICAgICAgICAgICBv cy5yZW1vdmUoc2VsZi5YU1NfRklMRSkKIAotICAgIGRlZiBhZnRlcihzZWxmKToKKyAgICAgICAg c2VsZi5fbmF2aWdhdGVfdG9fcXVlcnlfdG9vbCgpCisgICAgICAgIHNlbGYucGFnZS5maWxsX2Nv ZGVtaXJyb3JfYXJlYV93aXRoKCJTRUxFQ1QgMTsiKQorICAgICAgICBzZWxmLl9jcmVhdGVfbmV3 X2ZpbGUoKQorICAgICAgICBzZWxmLl9vcGVuX2ZpbGVfbWFuYWdlcl9hbmRfY2hlY2tfeHNzX2Zp bGUoKQorCiAgICAgICAgIHNlbGYucGFnZS5jbG9zZV9xdWVyeV90b29sKCdzcWwnLCBGYWxzZSkK ICAgICAgICAgc2VsZi5wYWdlLnJlbW92ZV9zZXJ2ZXIoc2VsZi5zZXJ2ZXIpCiAgICAgICAgIGNv bm5lY3Rpb24gPSB0ZXN0X3V0aWxzLmdldF9kYl9jb25uZWN0aW9uKApAQCAtNTQsMTIgKzU3LDYg QEAgY2xhc3MgQ2hlY2tGaWxlTWFuYWdlckZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAg ICAgICAgICkKICAgICAgICAgdGVzdF91dGlscy5kcm9wX2RhdGFiYXNlKGNvbm5lY3Rpb24sICJh Y2NlcHRhbmNlX3Rlc3RfZGIiKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgIHNl bGYuX25hdmlnYXRlX3RvX3F1ZXJ5X3Rvb2woKQotICAgICAgICBzZWxmLnBhZ2UuZmlsbF9jb2Rl bWlycm9yX2FyZWFfd2l0aCgiU0VMRUNUIDE7IikKLSAgICAgICAgc2VsZi5fY3JlYXRlX25ld19m aWxlKCkKLSAgICAgICAgc2VsZi5fb3Blbl9maWxlX21hbmFnZXJfYW5kX2NoZWNrX3hzc19maWxl KCkKLQogICAgIGRlZiBfbmF2aWdhdGVfdG9fcXVlcnlfdG9vbChzZWxmKToKICAgICAgICAgc2Vs Zi5wYWdlLnRvZ2dsZV9vcGVuX3RyZWVfaXRlbShzZWxmLnNlcnZlclsnbmFtZSddKQogICAgICAg ICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5fdHJlZV9pdGVtKCdEYXRhYmFzZXMnKQpAQCAtMTEzLDE0 ICsxMTAsOSBAQCBjbGFzcyBDaGVja0ZpbGVNYW5hZ2VyRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVU ZXN0KToKIAogICAgICAgICBzZWxmLnBhZ2UuY2xpY2tfbW9kYWwoJ0NhbmNlbCcpCiAgICAgICAg IHNlbGYucGFnZS53YWl0X2Zvcl9xdWVyeV90b29sX2xvYWRpbmdfaW5kaWNhdG9yX3RvX2Rpc2Fw cGVhcigpCi0gICAgICAgIHNlbGYuX2NoZWNrX2VzY2FwZWRfY2hhcmFjdGVycygKLSAgICAgICAg ICAgIGNvbnRlbnRzLAotICAgICAgICAgICAgJyZsdDtpbWcgc3JjPXggb25tb3VzZW92ZXI9YWxl cnQoIjEiKSZndDsuc3FsJywKLSAgICAgICAgICAgICdGaWxlIG1hbmFnZXInCi0gICAgICAgICkK IAotICAgIGRlZiBfY2hlY2tfZXNjYXBlZF9jaGFyYWN0ZXJzKHNlbGYsIHNvdXJjZV9jb2RlLCBz dHJpbmdfdG9fZmluZCwgc291cmNlKToKLSAgICAgICAgIyBGb3IgWFNTIHdlIG5lZWQgdG8gc2Vh cmNoIGFnYWluc3QgZWxlbWVudCdzIGh0bWwgY29kZQotICAgICAgICBhc3NlcnQgc291cmNlX2Nv ZGUuZmluZCgKLSAgICAgICAgICAgIHN0cmluZ190b19maW5kCi0gICAgICAgICkgIT0gLTEsICJ7 MH0gbWlnaHQgYmUgdnVsbmVyYWJsZSB0byBYU1MgIi5mb3JtYXQoc291cmNlKQorICAgICAgICBl c2NhcGVkX2NoYXJhY3RlcnMgPSAnJmx0O2ltZyBzcmM9eCBvbm1vdXNlb3Zlcj1hbGVydCgiMSIp Jmd0Oy5zcWwnCisgICAgICAgIGNvbnRlbnRzIHwgc2hvdWxkLmNvbnRhaW4oCisgICAgICAgICAg ICBlc2NhcGVkX2NoYXJhY3RlcnMsCisgICAgICAgICAgICBtc2c9IkZpbGUgTWFuYWdlciBtaWdo dCBiZSB2dWxuZXJhYmxlIHRvIFhTUyAiCisgICAgICAgICkKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2ZlYXR1cmVfdGVzdHMveHNzX2NoZWNrc19wYW5lbHNfYW5kX3F1ZXJ5X3Rvb2xfdGVzdC5w eSBiL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVfdGVzdHMveHNzX2NoZWNrc19wYW5lbHNfYW5kX3F1 ZXJ5X3Rvb2xfdGVzdC5weQpzaW1pbGFyaXR5IGluZGV4IDg3JQpyZW5hbWUgZnJvbSB3ZWIvcGdh ZG1pbi9mZWF0dXJlX3Rlc3RzL3hzc19jaGVja3NfcGFuZWxzX2FuZF9xdWVyeV90b29sX3Rlc3Qu cHkKcmVuYW1lIHRvIHdlYi9yZWdyZXNzaW9uL2ZlYXR1cmVfdGVzdHMveHNzX2NoZWNrc19wYW5l bHNfYW5kX3F1ZXJ5X3Rvb2xfdGVzdC5weQppbmRleCA0ZGMwODJjMi4uZWE1MDc5MzUgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMveHNzX2NoZWNrc19wYW5lbHNfYW5kX3F1 ZXJ5X3Rvb2xfdGVzdC5weQorKysgYi93ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3Rlc3RzL3hzc19j aGVja3NfcGFuZWxzX2FuZF9xdWVyeV90b29sX3Rlc3QucHkKQEAgLTYsMzEgKzYsMzAgQEAKICMg VGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCiAj CiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIwotCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCiBmcm9tIHJl Z3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMKIGZyb20gcmVncmVz c2lvbi5mZWF0dXJlX3V0aWxzLmJhc2VfZmVhdHVyZV90ZXN0IGltcG9ydCBCYXNlRmVhdHVyZVRl c3QKIAogCi1jbGFzcyBDaGVja0Zvclhzc0ZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6Ci0g ICAgIiIiCi0gICAgVGVzdHMgdG8gY2hlY2sgaWYgcGdBZG1pbjQgaXMgdnVsbmVyYWJsZSB0byBY U1MuCitjbGFzcyBUZXN0Q2hlY2tGb3JYc3MoQmFzZUZlYXR1cmVUZXN0KToKKyAgICBkZWYgdGVz dF9jaGVja19mb3JfeHNzKHNlbGYsIGRyaXZlcik6CisgICAgICAgICIiIgorICAgICAgICBUZXN0 cyB0byBjaGVjayBpZiBwZ0FkbWluNCBpcyB2dWxuZXJhYmxlIHRvIFhTUy4KIAotICAgIEhlcmUg d2Ugd2lsbCBjaGVjayBodG1sIHNvdXJjZSBjb2RlIGZvciBlc2NhcGVkIGNoYXJhY3RlcnMgaWYg d2UKLSAgICBmb3VuZCB0aGVtIGluIHRoZSBjb2RlIHRoZW4gd2UgYXJlIG5vdCB2dWxuZXJhYmxl IG90aGVyd2lzZSB3ZSBtaWdodC4KKyAgICAgICAgSGVyZSB3ZSB3aWxsIGNoZWNrIGh0bWwgc291 cmNlIGNvZGUgZm9yIGVzY2FwZWQgY2hhcmFjdGVycyBpZiB3ZQorICAgICAgICBmb3VuZCB0aGVt IGluIHRoZSBjb2RlIHRoZW4gd2UgYXJlIG5vdCB2dWxuZXJhYmxlIG90aGVyd2lzZSB3ZSBtaWdo dC4KIAotICAgIFdlIHdpbGwgY292ZXIsCi0gICAgICAgIDEpIEJyb3dzZXIgVHJlZSAoYWNpVHJl ZSkKLSAgICAgICAgMikgUHJvcGVydGllcyBUYWIgKEJhY2tGcm9tKQotICAgICAgICAzKSBEZXBl bmRlbnRzIFRhYiAoQmFja0dyaWQpCi0gICAgICAgIDQpIFNRTCBUYWIgKENvZGUgTWlycm9yKQot ICAgICAgICA1KSBRdWVyeSBUb29sIChTbGlja0dyaWQpCi0gICAgIiIiCisgICAgICAgIFdlIHdp bGwgY292ZXIsCisgICAgICAgICAgICAxKSBCcm93c2VyIFRyZWUgKGFjaVRyZWUpCisgICAgICAg ICAgICAyKSBQcm9wZXJ0aWVzIFRhYiAoQmFja0Zyb20pCisgICAgICAgICAgICAzKSBEZXBlbmRl bnRzIFRhYiAoQmFja0dyaWQpCisgICAgICAgICAgICA0KSBTUUwgVGFiIChDb2RlIE1pcnJvcikK KyAgICAgICAgICAgIDUpIFF1ZXJ5IFRvb2wgKFNsaWNrR3JpZCkKKyAgICAgICAgIiIiCisgICAg ICAgIHNlbGYuZHJpdmVyID0gZHJpdmVyCiAKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgi VGVzdCBYU1MgY2hlY2sgZm9yIHBhbmVscyBhbmQgcXVlcnkgdG9vbCIsIGRpY3QoKSkKLSAgICBd CisgICAgICAgIHNlbGYuc2V0VXAoKQogCi0gICAgZGVmIGJlZm9yZShzZWxmKToKICAgICAgICAg Y29ubmVjdGlvbiA9IHRlc3RfdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oCiAgICAgICAgICAgICBz ZWxmLnNlcnZlclsnZGInXSwKICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLApA QCAtNTIsNyArNTEsNiBAQCBjbGFzcyBDaGVja0Zvclhzc0ZlYXR1cmVUZXN0KEJhc2VGZWF0dXJl VGVzdCk6CiAgICAgICAgICAgICAidW5pcXVlIiwgIjxoMSBvbm1vdXNlb3Zlcj0nY29uc29sZS5s b2coMik7Jz5ZIgogICAgICAgICApCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKICAgICAgICAg c2VsZi5wYWdlLndhaXRfZm9yX3NwaW5uZXJfdG9fZGlzYXBwZWFyKCkKICAgICAgICAgc2VsZi5w YWdlLmFkZF9zZXJ2ZXIoc2VsZi5zZXJ2ZXIpCiAgICAgICAgIHNlbGYuX3RhYmxlc19ub2RlX2V4 cGFuZGFibGUoKQpAQCAtNjUsNyArNjMsNiBAQCBjbGFzcyBDaGVja0Zvclhzc0ZlYXR1cmVUZXN0 KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgIHNlbGYuX2NoZWNrX3hzc19pbl9xdWVyeV90b29s KCkKICAgICAgICAgc2VsZi5wYWdlLmNsb3NlX3F1ZXJ5X3Rvb2woKQogCi0gICAgZGVmIGFmdGVy KHNlbGYpOgogICAgICAgICBzZWxmLnBhZ2UucmVtb3ZlX3NlcnZlcihzZWxmLnNlcnZlcikKICAg ICAgICAgY29ubmVjdGlvbiA9IHRlc3RfdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oCiAgICAgICAg ICAgICBzZWxmLnNlcnZlclsnZGInXSwKQEAgLTE2NSw1ICsxNjIsNiBAQCBjbGFzcyBDaGVja0Zv clhzc0ZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAKICAgICBkZWYgX2NoZWNrX2VzY2Fw ZWRfY2hhcmFjdGVycyhzZWxmLCBzb3VyY2VfY29kZSwgc3RyaW5nX3RvX2ZpbmQsIHNvdXJjZSk6 CiAgICAgICAgICMgRm9yIFhTUyB3ZSBuZWVkIHRvIHNlYXJjaCBhZ2FpbnN0IGVsZW1lbnQncyBo dG1sIGNvZGUKLSAgICAgICAgYXNzZXJ0IHNvdXJjZV9jb2RlLmZpbmQoc3RyaW5nX3RvX2ZpbmQp ICE9IC0gXAotICAgICAgICAgICAgMSwgInswfSBtaWdodCBiZSB2dWxuZXJhYmxlIHRvIFhTUyAi LmZvcm1hdChzb3VyY2UpCisgICAgICAgIHNvdXJjZV9jb2RlIHwgXAorICAgICAgICAgICAgc2hv dWxkLmNvbnRhaW4oc3RyaW5nX3RvX2ZpbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBt c2c9InswfSBtaWdodCBiZSB2dWxuZXJhYmxlIHRvIFhTUyIuZm9ybWF0KHNvdXJjZSkpCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3hzc19jaGVja3NfcGdhZG1pbl9kZWJ1 Z2dlcl90ZXN0LnB5IGIvd2ViL3JlZ3Jlc3Npb24vZmVhdHVyZV90ZXN0cy94c3NfY2hlY2tzX3Bn YWRtaW5fZGVidWdnZXJfdGVzdC5weQpzaW1pbGFyaXR5IGluZGV4IDg1JQpyZW5hbWUgZnJvbSB3 ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3hzc19jaGVja3NfcGdhZG1pbl9kZWJ1Z2dlcl90ZXN0 LnB5CnJlbmFtZSB0byB3ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3Rlc3RzL3hzc19jaGVja3NfcGdh ZG1pbl9kZWJ1Z2dlcl90ZXN0LnB5CmluZGV4IDE3Y2U2MTUzLi40NjRiYmYxZSAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy94c3NfY2hlY2tzX3BnYWRtaW5fZGVidWdnZXJf dGVzdC5weQorKysgYi93ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3Rlc3RzL3hzc19jaGVja3NfcGdh ZG1pbl9kZWJ1Z2dlcl90ZXN0LnB5CkBAIC02LDI3ICs2LDMwIEBACiAjIFRoaXMgc29mdHdhcmUg aXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQogIwogIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKLQotZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIgaW1wb3J0IEFjdGlvbkNoYWlucworaW1w b3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAogZnJvbSBzZWxlbml1bS5jb21t b24uZXhjZXB0aW9ucyBpbXBvcnQgVGltZW91dEV4Y2VwdGlvbgotZnJvbSByZWdyZXNzaW9uLnB5 dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzCi1mcm9tIHJlZ3Jlc3Npb24uZmVhdHVy ZV91dGlscy5iYXNlX2ZlYXR1cmVfdGVzdCBpbXBvcnQgQmFzZUZlYXR1cmVUZXN0Ci1mcm9tIHNl bGVuaXVtLndlYmRyaXZlci5zdXBwb3J0LnVpIGltcG9ydCBXZWJEcml2ZXJXYWl0Ci1mcm9tIHNl bGVuaXVtLndlYmRyaXZlci5zdXBwb3J0IGltcG9ydCBleHBlY3RlZF9jb25kaXRpb25zIGFzIEVD Citmcm9tIHNlbGVuaXVtLndlYmRyaXZlciBpbXBvcnQgQWN0aW9uQ2hhaW5zCiBmcm9tIHNlbGVu aXVtLndlYmRyaXZlci5jb21tb24uYnkgaW1wb3J0IEJ5Citmcm9tIHNlbGVuaXVtLndlYmRyaXZl ci5zdXBwb3J0IGltcG9ydCBleHBlY3RlZF9jb25kaXRpb25zIGFzIEVDCitmcm9tIHNlbGVuaXVt LndlYmRyaXZlci5zdXBwb3J0LnVpIGltcG9ydCBXZWJEcml2ZXJXYWl0CisKK2Zyb20gcmVncmVz c2lvbi5mZWF0dXJlX3V0aWxzLmJhc2VfZmVhdHVyZV90ZXN0IGltcG9ydCBCYXNlRmVhdHVyZVRl c3QKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscwog CiAKLWNsYXNzIENoZWNrRGVidWdnZXJGb3JYc3NGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRlc3Qp OgotICAgICIiIlRlc3RzIHRvIGNoZWNrIGlmIERlYnVnZ2VyIGlzIHZ1bG5lcmFibGUgdG8gWFNT LiIiIgorY2xhc3MgVGVzdENoZWNrRGVidWdnZXJGb3JYc3MoQmFzZUZlYXR1cmVUZXN0KToKKyAg ICBkZWYgdGVzdF9jaGVja19kZWJ1Z2dlcl9mb3JfeHNzKHNlbGYsIGRyaXZlcik6CisgICAgICAg ICIiIgorICAgICAgICBUZXN0cyB0byBjaGVjayBpZiBEZWJ1Z2dlciBpcyB2dWxuZXJhYmxlIHRv IFhTUy4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuZHJpdmVyID0gZHJpdmVyCiAKLSAgICBz Y2VuYXJpb3MgPSBbCi0gICAgICAgICgiVGVzdHMgdG8gY2hlY2sgaWYgRGVidWdnZXIgaXMgdnVs bmVyYWJsZSB0byBYU1MiLCBkaWN0KCkpCi0gICAgXQorICAgICAgICBzZWxmLnNldFVwKCkKIAot ICAgIGRlZiBiZWZvcmUoc2VsZik6CiAgICAgICAgIHdpdGggdGVzdF91dGlscy5EYXRhYmFzZShz ZWxmLnNlcnZlcikgYXMgKGNvbm5lY3Rpb24sIF8pOgogICAgICAgICAgICAgaWYgY29ubmVjdGlv bi5zZXJ2ZXJfdmVyc2lvbiA8IDkwMTAwOgotICAgICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3Qo CisgICAgICAgICAgICAgICAgcHl0ZXN0LnNraXAoCiAgICAgICAgICAgICAgICAgICAgICJGdW5j dGlvbnMgdHJlZSBub2RlIGlzIG5vdCBwcmVzZW50IGluIHBnQWRtaW4gYmVsb3cgIgogICAgICAg ICAgICAgICAgICAgICAiUEcgdjkuMSIKICAgICAgICAgICAgICAgICApCkBAIC0zNiwxMyArMzks MTEgQEAgY2xhc3MgQ2hlY2tEZWJ1Z2dlckZvclhzc0ZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVz dCk6CiAgICAgICAgICAgICBzZWxmLnNlcnZlciwgInBvc3RncmVzIiwgImFfdGVzdF9mdW5jdGlv biIKICAgICAgICAgKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6CiAgICAgICAgIHNlbGYucGFn ZS53YWl0X2Zvcl9zcGlubmVyX3RvX2Rpc2FwcGVhcigpCiAgICAgICAgIHNlbGYucGFnZS5hZGRf c2VydmVyKHNlbGYuc2VydmVyKQogICAgICAgICBzZWxmLl9mdW5jdGlvbl9ub2RlX2V4cGFuZGFi bGUoKQogICAgICAgICBzZWxmLl9kZWJ1Z19mdW5jdGlvbigpCiAKLSAgICBkZWYgYWZ0ZXIoc2Vs Zik6CiAgICAgICAgIHNlbGYucGFnZS5yZW1vdmVfc2VydmVyKHNlbGYuc2VydmVyKQogICAgICAg ICB0ZXN0X3V0aWxzLmRyb3BfZGVidWdfZnVuY3Rpb24oc2VsZi5zZXJ2ZXIsICJwb3N0Z3JlcyIs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYV90ZXN0X2Z1bmN0aW9u IikKQEAgLTgwLDcgKzgxLDcgQEAgY2xhc3MgQ2hlY2tEZWJ1Z2dlckZvclhzc0ZlYXR1cmVUZXN0 KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgICMgSWYgZGVidWdnZXIgcGx1Z2luIGlzIG5vdCBm b3VuZAogICAgICAgICBpZiBpc19lcnJvciBhbmQgaXNfZXJyb3IudGV4dCA9PSAiRGVidWdnZXIg RXJyb3IiOgogICAgICAgICAgICAgc2VsZi5wYWdlLmNsaWNrX21vZGFsKCdPSycpCi0gICAgICAg ICAgICBzZWxmLnNraXBUZXN0KAorICAgICAgICAgICAgcHl0ZXN0LnNraXAoCiAgICAgICAgICAg ICAgICAgIlBsZWFzZSBtYWtlIHN1cmUgdGhhdCBkZWJ1Z2dlciBwbHVnaW4gaXMgcHJvcGVybHkg Y29uZmlndXJlZCIKICAgICAgICAgICAgICkKICAgICAgICAgZWxzZToKQEAgLTEwNiwxMSArMTA3 LDE0IEBAIGNsYXNzIENoZWNrRGVidWdnZXJGb3JYc3NGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRl c3QpOgogICAgICAgICAgICAgc291cmNlX2NvZGUgPSBzZWxmLnBhZ2UuZmluZF9ieV94cGF0aCgK ICAgICAgICAgICAgICAgICAiLy8qW0BpZD0nbWVzc2FnZXMnXSIKICAgICAgICAgICAgICkuZ2V0 X2F0dHJpYnV0ZSgnaW5uZXJIVE1MJykKLSAgICAgICAgICAgIHNlbGYuX2NoZWNrX2VzY2FwZWRf Y2hhcmFjdGVycygKLSAgICAgICAgICAgICAgICBzb3VyY2VfY29kZSwKLSAgICAgICAgICAgICAg ICAnTk9USUNFOiAgJmx0O2ltZyBzcmM9IngiIG9uZXJyb3I9ImNvbnNvbGUubG9nKDEpIiZndDsn LAotICAgICAgICAgICAgICAgICdEZWJ1Z2dlcicKKworICAgICAgICAgICAgZXNjYXBlZF9jaGFy YWN0ZXJzID0gXAorICAgICAgICAgICAgICAgICdOT1RJQ0U6ICAmbHQ7aW1nIHNyYz0ieCIgb25l cnJvcj0iY29uc29sZS5sb2coMSkiJmd0OycKKyAgICAgICAgICAgIHNvdXJjZV9jb2RlIHwgc2hv dWxkLmNvbnRhaW4oCisgICAgICAgICAgICAgICAgZXNjYXBlZF9jaGFyYWN0ZXJzLAorICAgICAg ICAgICAgICAgIG1zZz0iRGVidWdnZXIgbWlnaHQgYmUgdnVsbmVyYWJsZSB0byBYU1MgIgogICAg ICAgICAgICAgKQorCiAgICAgICAgICAgICBzZWxmLl9jbG9zZV9kZWJ1Z2dlcigpCiAKICAgICBk ZWYgX2Nsb3NlX2RlYnVnZ2VyKHNlbGYpOgpAQCAtMTE5LDggKzEyMywzIEBAIGNsYXNzIENoZWNr RGVidWdnZXJGb3JYc3NGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAgICAgICAg c2VsZi5wYWdlLmZpbmRfYnlfeHBhdGgoCiAgICAgICAgICAgICAgICAgIi8vKltAaWQ9J2RvY2tl ckNvbnRhaW5lciddL2Rpdi9kaXZbM10vZGl2L2RpdlsyXS9kaXZbMV0iKQogICAgICAgICApCi0K LSAgICBkZWYgX2NoZWNrX2VzY2FwZWRfY2hhcmFjdGVycyhzZWxmLCBzb3VyY2VfY29kZSwgc3Ry aW5nX3RvX2ZpbmQsIHNvdXJjZSk6Ci0gICAgICAgICMgRm9yIFhTUyB3ZSBuZWVkIHRvIHNlYXJj aCBhZ2FpbnN0IGVsZW1lbnQncyBodG1sIGNvZGUKLSAgICAgICAgYXNzZXJ0IHNvdXJjZV9jb2Rl LmZpbmQoc3RyaW5nX3RvX2ZpbmQpICE9IC0gXAotICAgICAgICAgICAgMSwgInswfSBtaWdodCBi ZSB2dWxuZXJhYmxlIHRvIFhTUyAiLmZvcm1hdChzb3VyY2UpCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9mZWF0dXJlX3Rlc3RzL3hzc19jaGVja3Nfcm9sZXNfY29udHJvbF90ZXN0LnB5IGIvd2Vi L3JlZ3Jlc3Npb24vZmVhdHVyZV90ZXN0cy94c3NfY2hlY2tzX3JvbGVzX2NvbnRyb2xfdGVzdC5w eQpzaW1pbGFyaXR5IGluZGV4IDczJQpyZW5hbWUgZnJvbSB3ZWIvcGdhZG1pbi9mZWF0dXJlX3Rl c3RzL3hzc19jaGVja3Nfcm9sZXNfY29udHJvbF90ZXN0LnB5CnJlbmFtZSB0byB3ZWIvcmVncmVz c2lvbi9mZWF0dXJlX3Rlc3RzL3hzc19jaGVja3Nfcm9sZXNfY29udHJvbF90ZXN0LnB5CmluZGV4 IDIxYTIwMjczLi4wY2U2NGIzYiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0 cy94c3NfY2hlY2tzX3JvbGVzX2NvbnRyb2xfdGVzdC5weQorKysgYi93ZWIvcmVncmVzc2lvbi9m ZWF0dXJlX3Rlc3RzL3hzc19jaGVja3Nfcm9sZXNfY29udHJvbF90ZXN0LnB5CkBAIC02LDIxICs2 LDE4IEBACiAjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwg TGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQK IAotZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIgaW1wb3J0IEFjdGlvbkNoYWlucwotZnJvbSByZWdy ZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzCiBmcm9tIHJlZ3Jlc3Np b24uZmVhdHVyZV91dGlscy5iYXNlX2ZlYXR1cmVfdGVzdCBpbXBvcnQgQmFzZUZlYXR1cmVUZXN0 Citmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMKIAog Ci1jbGFzcyBDaGVja1JvbGVNZW1iZXJzaGlwQ29udHJvbEZlYXR1cmVUZXN0KEJhc2VGZWF0dXJl VGVzdCk6Ci0gICAgIiIiVGVzdHMgdG8gY2hlY2sgcm9sZSBtZW1iZXJzaGlwIGNvbnRyb2wgZm9y IHhzcy4iIiIKK2NsYXNzIFRlc3RDaGVja1JvbGVNZW1iZXJzaGlwQ29udHJvbChCYXNlRmVhdHVy ZVRlc3QpOgorICAgIGRlZiB0ZXN0X2NoZWNrX3JvbGVfbWVtYmVyc2hpcF9jb250cm9sKHNlbGYs IGRyaXZlcik6CisgICAgICAgIHNlbGYuZHJpdmVyID0gZHJpdmVyCiAKLSAgICBzY2VuYXJpb3Mg PSBbCi0gICAgICAgICgiVGVzdHMgdG8gY2hlY2sgaWYgUm9sZSBtZW1iZXJzaGlwIGNvbnRyb2wg aXMgdnVsbmVyYWJsZSB0byBYU1MiLAotICAgICAgICAgZGljdCgpKQotICAgIF0KKyAgICAgICAg c2VsZi5zZXRVcCgpCiAKLSAgICBkZWYgYmVmb3JlKHNlbGYpOgogICAgICAgICB3aXRoIHRlc3Rf dXRpbHMuRGF0YWJhc2Uoc2VsZi5zZXJ2ZXIpIGFzIChjb25uZWN0aW9uLCBfKToKICAgICAgICAg ICAgIGlmIGNvbm5lY3Rpb24uc2VydmVyX3ZlcnNpb24gPCA5MDEwMDoKICAgICAgICAgICAgICAg ICBzZWxmLnNraXBUZXN0KApAQCAtMzIsMTMgKzI5LDExIEBAIGNsYXNzIENoZWNrUm9sZU1lbWJl cnNoaXBDb250cm9sRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgdGVzdF91 dGlscy5jcmVhdGVfcm9sZShzZWxmLnNlcnZlciwgInBvc3RncmVzIiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiPGgxPnRlc3Q8L2gxPiIpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxm KToKICAgICAgICAgc2VsZi5wYWdlLndhaXRfZm9yX3NwaW5uZXJfdG9fZGlzYXBwZWFyKCkKICAg ICAgICAgc2VsZi5wYWdlLmFkZF9zZXJ2ZXIoc2VsZi5zZXJ2ZXIpCiAgICAgICAgIHNlbGYuX3Jv bGVfbm9kZV9leHBhbmRhYmxlKCkKICAgICAgICAgc2VsZi5fY2hlY2tfcm9sZV9tZW1iZXJzaGlw X2NvbnRyb2woKQogCi0gICAgZGVmIGFmdGVyKHNlbGYpOgogICAgICAgICBzZWxmLnBhZ2UucmVt b3ZlX3NlcnZlcihzZWxmLnNlcnZlcikKICAgICAgICAgdGVzdF91dGlscy5kcm9wX3JvbGUoc2Vs Zi5zZXJ2ZXIsICJwb3N0Z3JlcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0 X3JvbGUiKQpAQCAtNTksMTcgKzU0LDEzIEBAIGNsYXNzIENoZWNrUm9sZU1lbWJlcnNoaXBDb250 cm9sRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgICAgICIvL2Rpdltjb250 YWlucyhAY2xhc3MsJ3JvbG1lbWJlcnNoaXAnKV0iCiAgICAgICAgICkuZ2V0X2F0dHJpYnV0ZSgn aW5uZXJIVE1MJykKIAotICAgICAgICBzZWxmLl9jaGVja19lc2NhcGVkX2NoYXJhY3RlcnMoCi0g ICAgICAgICAgICBzb3VyY2VfY29kZSwKLSAgICAgICAgICAgICcmbHQ7aDEmZ3Q7dGVzdCZsdDsv aDEmZ3Q7JywKLSAgICAgICAgICAgICdSb2xlIE1lbWJlcnNoaXAgQ29udHJvbCcKKyAgICAgICAg ZXNjYXBlZF9jaGFyYWN0ZXJzID0gJyZsdDtoMSZndDt0ZXN0Jmx0Oy9oMSZndDsnCisgICAgICAg IHNvdXJjZV9jb2RlIHwgc2hvdWxkLmNvbnRhaW4oCisgICAgICAgICAgICBlc2NhcGVkX2NoYXJh Y3RlcnMsCisgICAgICAgICAgICBtc2c9IlJvbGUgTWVtYmVyc2hpcCBDb250cm9sIG1pZ2h0IGJl IHZ1bG5lcmFibGUgdG8gWFNTICIKICAgICAgICAgKQorCiAgICAgICAgIHNlbGYucGFnZS5maW5k X2J5X3hwYXRoKAogICAgICAgICAgICAgIi8vYnV0dG9uW2NvbnRhaW5zKEB0eXBlLCAnY2FuY2Vs JykgYW5kICIKICAgICAgICAgICAgICJjb250YWlucyguLCdDYW5jZWwnKV0iCiAgICAgICAgICku Y2xpY2soKQotCi0gICAgZGVmIF9jaGVja19lc2NhcGVkX2NoYXJhY3RlcnMoc2VsZiwgc291cmNl X2NvZGUsIHN0cmluZ190b19maW5kLCBzb3VyY2UpOgotICAgICAgICAjIEZvciBYU1Mgd2UgbmVl ZCB0byBzZWFyY2ggYWdhaW5zdCBlbGVtZW50J3MgaHRtbCBjb2RlCi0gICAgICAgIGFzc2VydCBz b3VyY2VfY29kZS5maW5kKHN0cmluZ190b19maW5kKSAhPSAtIFwKLSAgICAgICAgICAgIDEsICJ7 MH0gbWlnaHQgYmUgdnVsbmVyYWJsZSB0byBYU1MgIi5mb3JtYXQoc291cmNlKQpkaWZmIC0tZ2l0 IGEvd2ViL3JlZ3Jlc3Npb24vZmVhdHVyZV91dGlscy9iYXNlX2ZlYXR1cmVfdGVzdC5weSBiL3dl Yi9yZWdyZXNzaW9uL2ZlYXR1cmVfdXRpbHMvYmFzZV9mZWF0dXJlX3Rlc3QucHkKaW5kZXggM2Zj Yjk0YmYuLmY4MGFmOTY5IDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3V0aWxz L2Jhc2VfZmVhdHVyZV90ZXN0LnB5CisrKyBiL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVfdXRpbHMv YmFzZV9mZWF0dXJlX3Rlc3QucHkKQEAgLTE1LDE0ICsxNSwzNSBAQCBmcm9tIGRhdGV0aW1lIGlt cG9ydCBkYXRldGltZQogCiBmcm9tIGNvcHkgaW1wb3J0IGRlZXBjb3B5CiAKK2ltcG9ydCBweXRl c3QKKwogaW1wb3J0IGNvbmZpZyBhcyBhcHBfY29uZmlnCiBmcm9tIHBnYWRtaW4udXRpbHMuYmFz ZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKIGZyb20gcmVncmVzc2lv bi5mZWF0dXJlX3V0aWxzLnBnYWRtaW5fcGFnZSBpbXBvcnQgUGdhZG1pblBhZ2UKK2Zyb20gcmVn cmVzc2lvbi5mZWF0dXJlX3V0aWxzLmFwcF9zdGFydGVyIGltcG9ydCBBcHBTdGFydGVyCitmcm9t IHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMKKworaW1wb3J0 IGF0ZXhpdAogCiAKIGNsYXNzIEJhc2VGZWF0dXJlVGVzdChCYXNlVGVzdEdlbmVyYXRvcik6CiAg ICAgQ1VSUkVOVF9QQVRIID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGgucmVhbHBhdGgoX19maWxl X18pKQogCisgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICBkZWYgc29tZXRo aW5nKHNlbGYsIHJlcXVlc3QpOgorICAgICAgICB5aWVsZAorICAgICAgICAjIHJlcXVlc3Qubm9k ZSBpcyBhbiAiaXRlbSIgYmVjYXVzZSB3ZSB1c2UgdGhlIGRlZmF1bHQKKyAgICAgICAgIyAiZnVu Y3Rpb24iIHNjb3BlCisgICAgICAgIGlmIHJlcXVlc3Qubm9kZS5yZXBfc2V0dXAuZmFpbGVkOgor ICAgICAgICAgICAgc2VsZi5fc2NyZWVuc2hvdCgpCisgICAgICAgIGVsaWYgcmVxdWVzdC5ub2Rl LnJlcF9zZXR1cC5wYXNzZWQ6CisgICAgICAgICAgICBpZiByZXF1ZXN0Lm5vZGUucmVwX2NhbGwu ZmFpbGVkOgorICAgICAgICAgICAgICAgIHNlbGYuX3NjcmVlbnNob3QoKQorCisgICAgZGVmIHN0 YXJ0QXBwKHNlbGYpOgorICAgICAgICBzZWxmLmFwcF9zdGFydGVyID0gQXBwU3RhcnRlcihzZWxm LmRyaXZlciwgYXBwX2NvbmZpZykKKyAgICAgICAgc2VsZi5hcHBfc3RhcnRlci5zdGFydF9hcHAo KQorCiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBzZWxmLnNlcnZlciA9IGRlZXBjb3B5 KHNlbGYuc2VydmVyKQogICAgICAgICBzZWxmLnNlcnZlclsnbmFtZSddICs9ICcgRmVhdHVyZSBU ZXN0cycKQEAgLTQ1LDkgKzY2LDYgQEAgY2xhc3MgQmFzZUZlYXR1cmVUZXN0KEJhc2VUZXN0R2Vu ZXJhdG9yKToKICAgICAgICAgICAgIHNlbGYuX3NjcmVlbnNob3QoKQogICAgICAgICAgICAgcmFp c2UKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICBwYXNzCi0KICAgICBkZWYgYmVm b3JlKHNlbGYpOgogICAgICAgICBwYXNzCiAKLS0gCjIuMTcuMAoK --00000000000004228b056e72de09--