Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vMDlJ-004DgA-0v for pgsql-hackers@arkaria.postgresql.org; Thu, 20 Nov 2025 23:08:26 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vMDlG-004okH-2l for pgsql-hackers@arkaria.postgresql.org; Thu, 20 Nov 2025 23:08:23 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vMDlG-004ok8-0s for pgsql-hackers@lists.postgresql.org; Thu, 20 Nov 2025 23:08:22 +0000 Received: from mail-il1-x12b.google.com ([2607:f8b0:4864:20::12b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vMDlB-000cze-0m for pgsql-hackers@lists.postgresql.org; Thu, 20 Nov 2025 23:08:22 +0000 Received: by mail-il1-x12b.google.com with SMTP id e9e14a558f8ab-43377ee4825so7183225ab.2 for ; Thu, 20 Nov 2025 15:08:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763680095; x=1764284895; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=yDtePBH6Rp1Likh43oO0FvZxxDuaxhk7M2gDO6Uhk08=; b=l60Ys6YqtD4Wo/X1bk4Kg+g9zVuuNpdJJHXlbjfbfoBZE3PtmushOodCvB2vWAos/A ZzEtSUXY0Brqjixvp8s+VLcuJjTsvXigLFkz3YvgAA+Jzf5687qCPbeXdHTgmSCQsJHe SEsXDT7ww7GYXe6izHleYJUQ4rZ8XL6y7BhX+/pryT3zLO0wF6ndDgSFb7Z2XlyT1LnZ bq/7gVQKKoGZ3mEOiqNDT4eui4U7E5cMiMCrQNSDPKJDtdcXUm3sPAGSHyRaiW4ezoUC YD5F5qESGBx4BL6APSR2BtjeIB22kRr2nlctjXH8NGjrlYLtXrwxFewNJkrfZoPL1feT YRmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763680095; x=1764284895; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=yDtePBH6Rp1Likh43oO0FvZxxDuaxhk7M2gDO6Uhk08=; b=r8wcvqUMWFqQ1aqCOePB8tyrGoxT2B+4vlBhxqi+6vbciFNsdazXV8mupvAxc796Bh xfIl0RJqM23FjzSgTkgPEfhaGnLM2pl0wRCPedslguhrC5WCtq8WSsv0pXltmVWGasNl +5LRoZ0txlUZmGp0MqKITigXCTK7va4wbhQ262VoL6YPCaR/D8V/xmodi73d+u3lFnmS dR6Uobh0sGxUKz4rxDFeT/qHI0YWficdFG7ynX7OTANDdNCFVOSQf2es0zJkyiBBUI/u flGTqUryiSc6WPiBsXA/TvZlFz/xmT81YwOq0/800krGtdXgB+2ZQ5xQJHR2RPrjXvV1 o4yw== X-Forwarded-Encrypted: i=1; AJvYcCXwDv9wI9gAmFNbajRPOA9rbWeDE/CvKyXUI5Mgy77yiNg7NRNNhLDlpqyZxg0RtKspHBju0AFPqTnjCX+Y@lists.postgresql.org X-Gm-Message-State: AOJu0YwJnzrt38MrwHpN/lTdkYg7b3PTDtVx4IjaWV51wShjGbclAtFe CzFoktF1+HWyz5MjS4o966PXPfVQ6FxG7mxpTufILIQVG5rhYe6MH7ZIwwqC/avd3Nr34CFioJA ZKNv9KUHF68+LDFQwvfUrW0ElUy8aDs8= X-Gm-Gg: ASbGncss0wjMIusZ4PBDhJY0k890NWLsuavDVcdztiEBov2rsF28aZgg1UJCFTfw8BN bn1cyHGdeUqnfolQ+VvPjnVpLViNywLEz4T71u8+kvUfagtpc5z1gEOft5j3xw5UekKPJtmrW6e WTve2mdjRxwGZeHxePQwp+kyqz9ISlJj/u8AYYLsv6aOO6YW6ez/8+M/nLXczyZ5fpKyQFgWS7C 0enQuAcD4SH+VviMMgev/yvxJZ/bS1dmuidd5NbMEczZuUapu0K/iYgtYW0hmBl+9jE1JokF4+X ekm7sQJDCzIs7d3ZDr/T143FFts= X-Google-Smtp-Source: AGHT+IGSMWBckuRTXzY90GIgtW6DHNNE8fein2d53pvOTNUQvODzZs2dW1Ab4YgiOgY3/5jZdAjERuVxW2Ne46+z6oU= X-Received: by 2002:a05:6e02:2686:b0:433:29a9:32db with SMTP id e9e14a558f8ab-435b8e79e3emr3885675ab.24.1763680095308; Thu, 20 Nov 2025 15:08:15 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Corey Huinker Date: Thu, 20 Nov 2025 18:08:02 -0500 X-Gm-Features: AWmQ_blk4J85joMRfyip7LHHQIeBjoXtTxsQ0eRQDGRjAFOahit9Eswp5-X6a5c Message-ID: Subject: Re: Extended Statistics set/restore/clear functions. To: jian he Cc: Michael Paquier , Tomas Vondra , pgsql-hackers@lists.postgresql.org, tgl@sss.pgh.pa.us Content-Type: multipart/mixed; boundary="0000000000009429ff06440ec5f4" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000009429ff06440ec5f4 Content-Type: multipart/alternative; boundary="0000000000009429fe06440ec5f2" --0000000000009429fe06440ec5f2 Content-Type: text/plain; charset="UTF-8" > > > some of the switch->default, default don't have ``break``. > The compiler doesn't require them, but I see that we do use them in a lot of places, so I'll incorporate this. > > + for (int i = 0; i < nitems; i++) > + { > + MVNDistinctItem *item = > parse_state.distinct_items->elements[i].ptr_value; > > exposing the ptr_value seems not a good idea, we can foreach_ptr > the attached patch using foreach_ptr. I didn't like this because it makes getting the index value harder, and the index value is needed in lots of places. Instead I used list_nth() and list_nth_int(). > in function pg_ndistinct_in some errsave can change to ereturn. > (I didn't do this part, though). > -0.25 There's something that I like about the consistency of errsave() followed by a return that makes it clear that "the function ends here" that I don't get from ereturn(). What I would really like, is a way to generate unique (but translated) errdetail values, and move the errsave/ereturn to after the switch statement. > > + /* > + * The attnum cannot be zero a negative number beyond the number of the > + * possible expressions. > + */ > + if (attnum == 0 || attnum < (0-STATS_MAX_DIMENSIONS)) > + { > + errsave(parse->escontext, > + errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), > + errmsg("malformed pg_ndistinct: \"%s\"", parse->str), > + errdetail("Invalid \"%s\" element: %d.", > + PG_NDISTINCT_KEY_ATTRIBUTES, attnum)); > + return JSON_SEM_ACTION_FAILED; > + } > This part had no coverage tests, so I added a few. > +1 > > > as mentioned before > + errsave(parse->escontext, > + errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), > + errmsg("malformed pg_ndistinct: \"%s\"", parse->str), > + errdetail("The \"%s\" key must contain an array of at least %d " > + "and no more than %d attributes.", > + PG_NDISTINCT_KEY_NDISTINCT, 2, STATS_MAX_DIMENSIONS)); > here PG_NDISTINCT_KEY_NDISTINCT, should be PG_NDISTINCT_KEY_ATTRIBUTES. > +1 Did similar things to pg_dependencies. --0000000000009429fe06440ec5f2 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

some of the switch->default, default don't have ``break``.

The compiler doesn't require=C2=A0them, but = I see that we do use them in a lot of places, so I'll incorporate this.=
=C2=A0

+ for (int i =3D 0; i < nitems; i++)
+ {
+ MVNDistinctItem *item =3D parse_state.distinct_items->elements[i].ptr_= value;

exposing the ptr_value seems not a good idea, we can foreach_ptr
the attached patch using foreach_ptr.

I did= n't like this because=C2=A0it makes getting the index value harder, and= the index value is needed in lots of places. Instead I used list_nth() and= list_nth_int().
=C2=A0
=C2=A0
in function pg_ndistinct_in some errsave can change to ereturn.
(I didn't do this part, though).

-0= .25

There's something that I like a= bout the consistency of errsave() followed by a return that makes it clear = that "the function ends here" that I don't get from ereturn()= .

What I would really like, is a way to generate u= nique (but translated) errdetail values, and move the errsave/ereturn to af= ter the=C2=A0switch statement.
=C2=A0

+ /*
+ * The attnum cannot be zero a negative number beyond the number of the + * possible expressions.
+ */
+ if (attnum =3D=3D 0 || attnum < (0-STATS_MAX_DIMENSIONS))
+ {
+ errsave(parse->escontext,
+ errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
+ errmsg("malformed pg_ndistinct: \"%s\"", parse->st= r),
+ errdetail("Invalid \"%s\" element: %d.",
+ PG_NDISTINCT_KEY_ATTRIBUTES, attnum));
+ return JSON_SEM_ACTION_FAILED;
+ }
This part had no coverage tests, so I added a few.
+1=C2=A0

=C2=A0


as mentioned before
+ errsave(parse->escontext,
+ errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
+ errmsg("malformed pg_ndistinct: \"%s\"", parse->st= r),
+ errdetail("The \"%s\" key must contain an array of at leas= t %d "
+=C2=A0 "and no more than %d attributes.",
+=C2=A0 PG_NDISTINCT_KEY_NDISTINCT, 2, STATS_MAX_DIMENSIONS));
here PG_NDISTINCT_KEY_NDISTINCT, should be PG_NDISTINCT_KEY_ATTRIBUTES.
=

+1
=C2=A0
Did similar = things to pg_dependencies.

--0000000000009429fe06440ec5f2-- --0000000000009429ff06440ec5f4 Content-Type: text/x-patch; charset="US-ASCII"; name="v16-0001-Add-working-input-function-for-pg_ndistinct.patch" Content-Disposition: attachment; filename="v16-0001-Add-working-input-function-for-pg_ndistinct.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mi81k0vb0 RnJvbSA0MDI0MjU2M2MyOWEwOThmZTk5Y2JhODg0NmEzMmViNWE3ODBjM2Q3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNaWNoYWVsIFBhcXVpZXIgPG1pY2hhZWxAcGFxdWllci54eXo+ CkRhdGU6IE1vbiwgMTcgTm92IDIwMjUgMTQ6NTI6MjIgKzA5MDAKU3ViamVjdDogW1BBVENIIHYx NiAxLzVdIEFkZCB3b3JraW5nIGlucHV0IGZ1bmN0aW9uIGZvciBwZ19uZGlzdGluY3QuCgpUaGlz IHdpbGwgY29uc3VtZSB0aGUgZm9ybWF0IHRoYXQgd2FzIGVzdGFibGlzaGVkIHdoZW4gdGhlIG91 dHB1dApmdW5jdGlvbiBmb3IgcGdfbmRpc3RpbmN0IHdhcyByZWNlbnRseSBjaGFuZ2VkLgoKVGhp cyB3aWxsIGJlIG5lZWRlZCBmb3IgaW1wb3J0aW5nIGV4dGVuZGVkIHN0YXRpc3RpY3MuICBXaXRo IHRoZXNlCmNoYW5nZXMgaW4gcGxhY2UsIGNvdmVyYWdlIG9mIHBnX25kaXN0aW5jdC5jIHJlYWNo ZXMgOTElLgotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ19uZGlzdGluY3QuYyAgICAgICB8 IDczOSArKysrKysrKysrKysrKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGdf bmRpc3RpbmN0Lm91dCB8IDQwOSArKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxs ZWxfc2NoZWR1bGUgICAgICAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGdfbmRp c3RpbmN0LnNxbCAgICAgIHwgIDk4ICsrKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QgICAgICAgICAgIHwgICAyICsKIDUgZmlsZXMgY2hhbmdlZCwgMTI0MSBpbnNlcnRpb25zKCsp LCA5IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcGdfbmRpc3RpbmN0Lm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3BnX25kaXN0aW5jdC5zcWwKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvcGdfbmRpc3RpbmN0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfbmRpc3RpbmN0LmMK aW5kZXggOTdlZmMyOTBlZjUuLmZiNzZiYzQyMzk1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvcGdfbmRpc3RpbmN0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX25k aXN0aW5jdC5jCkBAIC0xNCwyNyArMTQsNzUwIEBACiAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgog CisjaW5jbHVkZSAiY29tbW9uL2ludC5oIgorI2luY2x1ZGUgImNvbW1vbi9qc29uYXBpLmgiCiAj aW5jbHVkZSAibGliL3N0cmluZ2luZm8uaCIKKyNpbmNsdWRlICJtYi9wZ193Y2hhci5oIgorI2lu Y2x1ZGUgIm5vZGVzL21pc2Nub2Rlcy5oIgogI2luY2x1ZGUgInN0YXRpc3RpY3MvZXh0ZW5kZWRf c3RhdHNfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJzdGF0aXN0aWNzL3N0YXRpc3RpY3NfZm9ybWF0 LmgiCisjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9mbWdycHJv dG9zLmgiCiAKKy8qIFBhcnNpbmcgc3RhdGUgZGF0YSAqLwordHlwZWRlZiBlbnVtCit7CisJTkRJ U1RfRVhQRUNUX1NUQVJUID0gMCwKKwlORElTVF9FWFBFQ1RfSVRFTSwKKwlORElTVF9FWFBFQ1Rf S0VZLAorCU5ESVNUX0VYUEVDVF9BVFROVU1fTElTVCwKKwlORElTVF9FWFBFQ1RfQVRUTlVNLAor CU5ESVNUX0VYUEVDVF9ORElTVElOQ1QsCisJTkRJU1RfRVhQRUNUX0NPTVBMRVRFLAorfSBORGlz dGluY3RTZW1hbnRpY1N0YXRlOworCit0eXBlZGVmIHN0cnVjdAoreworCWNvbnN0IGNoYXIgKnN0 cjsKKwlORGlzdGluY3RTZW1hbnRpY1N0YXRlIHN0YXRlOworCisJTGlzdAkgICAqZGlzdGluY3Rf aXRlbXM7IC8qIEFjY3VtdWxhdGVkIGNvbXBsZXRlIE1WTkRpc3RpbmN0SXRlbXMgKi8KKwlOb2Rl CSAgICplc2NvbnRleHQ7CisKKwlib29sCQlmb3VuZF9hdHRyaWJ1dGVzOwkvKiBJdGVtIGhhcyAi YXR0cmlidXRlcyIga2V5ICovCisJYm9vbAkJZm91bmRfbmRpc3RpbmN0OwkvKiBJdGVtIGhhcyAi bmRpc3RpbmN0IiBrZXkgKi8KKwlMaXN0CSAgICphdHRudW1fbGlzdDsJLyogQWNjdW11bGF0ZWQg YXR0cmlidXRlcyBhdHRudW1zICovCisJaW50MzIJCW5kaXN0aW5jdDsKK30gTkRpc3RpbmN0UGFy c2VTdGF0ZTsKKworLyoKKyAqIEludm9rZWQgYXQgdGhlIHN0YXJ0IG9mIGVhY2ggTVZORGlzdGlu Y3RJdGVtLgorICoKKyAqIFRoZSBlbnRpcmUgSlNPTiBkb2N1bWVudCBzaG91bGQgYmUgb25lIGFy cmF5IG9mIE1WTkRpc3RpbmN0SXRlbSBvYmplY3RzLgorICogSWYgd2UgYXJlIGFueXdoZXJlIGVs c2UgaW4gdGhlIGRvY3VtZW50LCBpdCBpcyBhbiBlcnJvci4KKyAqLworc3RhdGljIEpzb25QYXJz ZUVycm9yVHlwZQorbmRpc3RpbmN0X29iamVjdF9zdGFydCh2b2lkICpzdGF0ZSkKK3sKKwlORGlz dGluY3RQYXJzZVN0YXRlICpwYXJzZSA9IHN0YXRlOworCisJc3dpdGNoIChwYXJzZS0+c3RhdGUp CisJeworCQljYXNlIE5ESVNUX0VYUEVDVF9JVEVNOgorCQkJLyogTm93IHdlIGV4cGVjdCB0byBz ZWUgYXR0cmlidXRlcy9uZGlzdGluY3Qga2V5cyAqLworCQkJcGFyc2UtPnN0YXRlID0gTkRJU1Rf RVhQRUNUX0tFWTsKKwkJCXJldHVybiBKU09OX1NVQ0NFU1M7CisJCQlicmVhazsKKworCQljYXNl IE5ESVNUX0VYUEVDVF9TVEFSVDoKKwkJCS8qIHBnX25kaXN0aW5jdCBtdXN0IGJlZ2luIHdpdGgg YSAnWycgKi8KKwkJCWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQkJZXJyY29kZShFUlJD T0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJCWVycm1zZygibWFsZm9ybWVk IHBnX25kaXN0aW5jdDogXCIlc1wiIiwgcGFyc2UtPnN0ciksCisJCQkJCWVycmRldGFpbCgiSW5p dGlhbCBlbGVtZW50IG11c3QgYmUgYW4gYXJyYXkuIikpOworCQkJYnJlYWs7CisKKwkJY2FzZSBO RElTVF9FWFBFQ1RfS0VZOgorCQkJLyogSW4gYW4gb2JqZWN0LCBleHBlY3Rpbmcga2V5ICovCisJ CQllcnJzYXZlKHBhcnNlLT5lc2NvbnRleHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElE X1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19uZGlzdGlu Y3Q6IFwiJXNcIiIsIHBhcnNlLT5zdHIpLAorCQkJCQllcnJkZXRhaWwoIkV4cGVjdGVkIGFuIG9i amVjdCBrZXkuIikpOworCQkJYnJlYWs7CisKKwkJY2FzZSBORElTVF9FWFBFQ1RfQVRUTlVNX0xJ U1Q6CisJCQkvKiBKdXN0IGZvbGxvd2VkIGFuICJhdHRyaWJ1dGVzIiBrZXkgKi8KKwkJCWVycnNh dmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9S RVBSRVNFTlRBVElPTiksCisJCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX25kaXN0aW5jdDogXCIl c1wiIiwgcGFyc2UtPnN0ciksCisJCQkJCWVycmRldGFpbCgiVmFsdWUgb2YgXCIlc1wiIG11c3Qg YmUgYW4gYXJyYXkgb2YgYXR0cmlidXRlIG51bWJlcnMuIiwKKwkJCQkJCQkgIFBHX05ESVNUSU5D VF9LRVlfQVRUUklCVVRFUykpOworCQkJYnJlYWs7CisKKwkJY2FzZSBORElTVF9FWFBFQ1RfQVRU TlVNOgorCQkJLyogSW4gYW4gYXR0bnVtIGxpc3QsIGV4cGVjdCBvbmx5IHNjYWxhciBpbnRlZ2Vy cyAqLworCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJCQllcnJjb2RlKEVSUkNPREVf SU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdf bmRpc3RpbmN0OiBcIiVzXCIiLCBwYXJzZS0+c3RyKSwKKwkJCQkJZXJyZGV0YWlsKCJBdHRyaWJ1 dGUgbGlzdHMgY2FuIG9ubHkgY29udGFpbiBhdHRyaWJ1dGUgbnVtYmVycy4iKSk7CisJCQlicmVh azsKKworCQljYXNlIE5ESVNUX0VYUEVDVF9ORElTVElOQ1Q6CisJCQkvKiBKdXN0IGZvbGxvd2Vk IGFuICJuZGlzdGluY3QiIGtleSAqLworCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJ CQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQkJZXJy bXNnKCJtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiBcIiVzXCIiLCBwYXJzZS0+c3RyKSwKKwkJCQkJ ZXJyZGV0YWlsKCJWYWx1ZSBvZiBcIiVzXCIgbXVzdCBiZSBhbiBpbnRlZ2VyLiIsCisJCQkJCQkJ ICBQR19ORElTVElOQ1RfS0VZX05ESVNUSU5DVCkpOworCQkJYnJlYWs7CisKKwkJZGVmYXVsdDoK KwkJCWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFM SURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX25kaXN0 aW5jdDogXCIlc1wiIiwgcGFyc2UtPnN0ciksCisJCQkJCWVycmRldGFpbCgiVW5leHBlY3RlZCBw YXJzZSBzdGF0ZTogJWQiLCAoaW50KSBwYXJzZS0+c3RhdGUpKTsKKwkJCWJyZWFrOworCX0KKwor CXJldHVybiBKU09OX1NFTV9BQ1RJT05fRkFJTEVEOworfQorCisvKgorICogSW52b2tlZCBhdCB0 aGUgZW5kIG9mIGFuIG9iamVjdC4KKyAqCisgKiBDaGVjayB0byBlbnN1cmUgdGhhdCBpdCB3YXMg YSBjb21wbGV0ZSBNVk5EaXN0aW5jdEl0ZW0KKyAqLworc3RhdGljIEpzb25QYXJzZUVycm9yVHlw ZQorbmRpc3RpbmN0X29iamVjdF9lbmQodm9pZCAqc3RhdGUpCit7CisJTkRpc3RpbmN0UGFyc2VT dGF0ZSAqcGFyc2UgPSBzdGF0ZTsKKworCWludAkJCW5hdHRzID0gMDsKKworCU1WTkRpc3RpbmN0 SXRlbSAqaXRlbTsKKworCWlmIChwYXJzZS0+c3RhdGUgIT0gTkRJU1RfRVhQRUNUX0tFWSkKKwl7 CisJCWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJ RF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19uZGlzdGlu Y3Q6IFwiJXNcIiIsIHBhcnNlLT5zdHIpLAorCQkJCWVycmRldGFpbCgiVW5leHBlY3RlZCBwYXJz ZSBzdGF0ZTogJWQiLCAoaW50KSBwYXJzZS0+c3RhdGUpKTsKKwkJcmV0dXJuIEpTT05fU0VNX0FD VElPTl9GQUlMRUQ7CisJfQorCisJaWYgKCFwYXJzZS0+Zm91bmRfYXR0cmlidXRlcykKKwl7CisJ CWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9U RVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6 IFwiJXNcIiIsIHBhcnNlLT5zdHIpLAorCQkJCWVycmRldGFpbCgiSXRlbSBtdXN0IGNvbnRhaW4g XCIlc1wiIGtleS4iLAorCQkJCQkJICBQR19ORElTVElOQ1RfS0VZX0FUVFJJQlVURVMpKTsKKwkJ cmV0dXJuIEpTT05fU0VNX0FDVElPTl9GQUlMRUQ7CisJfQorCisJaWYgKCFwYXJzZS0+Zm91bmRf bmRpc3RpbmN0KQorCXsKKwkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJCWVycmNvZGUo RVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCWVycm1zZygibWFsZm9y bWVkIHBnX25kaXN0aW5jdDogXCIlc1wiIiwgcGFyc2UtPnN0ciksCisJCQkJZXJyZGV0YWlsKCJJ dGVtIG11c3QgY29udGFpbiBcIiVzXCIga2V5LiIsCisJCQkJCQkgIFBHX05ESVNUSU5DVF9LRVlf TkRJU1RJTkNUKSk7CisJCXJldHVybiBKU09OX1NFTV9BQ1RJT05fRkFJTEVEOworCX0KKworCS8q CisJICogV2UgbmVlZCBhdCBsZWFzdCB0d28gYXR0cmlidXRlIG51bWJlcnMgZm9yIGEgbmRpc3Rp bmN0IGl0ZW0sIGFueXRoaW5nCisJICogbGVzcyBpcyBtYWxmb3JtZWQuCisJICovCisJbmF0dHMg PSBsaXN0X2xlbmd0aChwYXJzZS0+YXR0bnVtX2xpc3QpOworCWlmICgobmF0dHMgPCAyKSB8fCAo bmF0dHMgPiBTVEFUU19NQVhfRElNRU5TSU9OUykpCisJeworCQllcnJzYXZlKHBhcnNlLT5lc2Nv bnRleHQsCisJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiks CisJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiBcIiVzXCIiLCBwYXJzZS0+c3Ry KSwKKwkJCQllcnJkZXRhaWwoIlRoZSBcIiVzXCIga2V5IG11c3QgY29udGFpbiBhbiBhcnJheSBv ZiBhdCBsZWFzdCAlZCAiCisJCQkJCQkgICJhbmQgbm8gbW9yZSB0aGFuICVkIGF0dHJpYnV0ZXMu IiwKKwkJCQkJCSAgUEdfTkRJU1RJTkNUX0tFWV9BVFRSSUJVVEVTLCAyLCBTVEFUU19NQVhfRElN RU5TSU9OUykpOworCQlyZXR1cm4gSlNPTl9TRU1fQUNUSU9OX0ZBSUxFRDsKKwl9CisKKwkvKiBD cmVhdGUgdGhlIE1WTkRpc3RpbmN0SXRlbSAqLworCWl0ZW0gPSBwYWxsb2Moc2l6ZW9mKE1WTkRp c3RpbmN0SXRlbSkpOworCWl0ZW0tPm5hdHRyaWJ1dGVzID0gbmF0dHM7CisJaXRlbS0+YXR0cmli dXRlcyA9IHBhbGxvYzAobmF0dHMgKiBzaXplb2YoQXR0ck51bWJlcikpOworCWl0ZW0tPm5kaXN0 aW5jdCA9IChkb3VibGUpIHBhcnNlLT5uZGlzdGluY3Q7CisKKwlmb3IgKGludCBpID0gMDsgaSA8 IG5hdHRzOyBpKyspCisJCWl0ZW0tPmF0dHJpYnV0ZXNbaV0gPSAoQXR0ck51bWJlcikgbGlzdF9u dGhfaW50KHBhcnNlLT5hdHRudW1fbGlzdCwgaSk7CisKKwlwYXJzZS0+ZGlzdGluY3RfaXRlbXMg PSBsYXBwZW5kKHBhcnNlLT5kaXN0aW5jdF9pdGVtcywgKHZvaWQgKikgaXRlbSk7CisKKwkvKiBy ZXNldCBpdGVtIHN0YXRlIHZhcnMgKi8KKwlsaXN0X2ZyZWUocGFyc2UtPmF0dG51bV9saXN0KTsK KwlwYXJzZS0+YXR0bnVtX2xpc3QgPSBOSUw7CisJcGFyc2UtPm5kaXN0aW5jdCA9IDA7CisJcGFy c2UtPmZvdW5kX2F0dHJpYnV0ZXMgPSBmYWxzZTsKKwlwYXJzZS0+Zm91bmRfbmRpc3RpbmN0ID0g ZmFsc2U7CisKKwkvKiBOb3cgd2UgYXJlIGxvb2tpbmcgZm9yIHRoZSBuZXh0IE1WTkRpc3RpbmN0 SXRlbSAqLworCXBhcnNlLT5zdGF0ZSA9IE5ESVNUX0VYUEVDVF9JVEVNOworCXJldHVybiBKU09O X1NVQ0NFU1M7Cit9CisKIAogLyoKLSAqIHBnX25kaXN0aW5jdF9pbgotICoJCWlucHV0IHJvdXRp bmUgZm9yIHR5cGUgcGdfbmRpc3RpbmN0CisgKiBuZGlzdGluY3QgaW5wdXQgZm9ybWF0IGhhcyB0 d28gdHlwZXMgb2YgYXJyYXlzLCB0aGUgb3V0ZXIgTVZORGlzdGluY3RJdGVtCisgKiBhcnJheSBh bmQgdGhlIGF0dHJpYnV0ZSBudW1iZXIgYXJyYXkgd2l0aGluIGVhY2ggTVZORGlzdGluY3RJdGVt LgorICovCitzdGF0aWMgSnNvblBhcnNlRXJyb3JUeXBlCituZGlzdGluY3RfYXJyYXlfc3RhcnQo dm9pZCAqc3RhdGUpCit7CisJTkRpc3RpbmN0UGFyc2VTdGF0ZSAqcGFyc2UgPSBzdGF0ZTsKKwor CXN3aXRjaCAocGFyc2UtPnN0YXRlKQorCXsKKwkJY2FzZSBORElTVF9FWFBFQ1RfQVRUTlVNX0xJ U1Q6CisJCQlwYXJzZS0+c3RhdGUgPSBORElTVF9FWFBFQ1RfQVRUTlVNOworCQkJYnJlYWs7CisK KwkJY2FzZSBORElTVF9FWFBFQ1RfU1RBUlQ6CisJCQlwYXJzZS0+c3RhdGUgPSBORElTVF9FWFBF Q1RfSVRFTTsKKwkJCWJyZWFrOworCisJCWRlZmF1bHQ6CisJCQllcnJzYXZlKHBhcnNlLT5lc2Nv bnRleHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04p LAorCQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6IFwiJXNcIiIsIHBhcnNlLT5z dHIpLAorCQkJCQllcnJkZXRhaWwoIkFycmF5IGZvdW5kIGluIHVuZXhwZWN0ZWQgcGxhY2UuIikp OworCQkJcmV0dXJuIEpTT05fU0VNX0FDVElPTl9GQUlMRUQ7CisJfQorCisJcmV0dXJuIEpTT05f U1VDQ0VTUzsKK30KKworCisvKgorICogQXJyYXlzIGNhbiBuZXZlciBiZSBlbXB0eS4KKyAqLwor c3RhdGljIEpzb25QYXJzZUVycm9yVHlwZQorbmRpc3RpbmN0X2FycmF5X2VuZCh2b2lkICpzdGF0 ZSkKK3sKKwlORGlzdGluY3RQYXJzZVN0YXRlICpwYXJzZSA9IHN0YXRlOworCisJc3dpdGNoIChw YXJzZS0+c3RhdGUpCisJeworCQljYXNlIE5ESVNUX0VYUEVDVF9BVFROVU06CisJCQlpZiAobGlz dF9sZW5ndGgocGFyc2UtPmF0dG51bV9saXN0KSA+IDApCisJCQl7CisJCQkJLyoKKwkJCQkgKiBU aGUgYXR0cmlidXRlIG51bWJlciBsaXN0IGlzIGNvbXBsZXRlLCBsb29rIGZvciBtb3JlCisJCQkJ ICogTVZORGlzdGluY3RJdGVtIGtleXMuCisJCQkJICovCisJCQkJcGFyc2UtPnN0YXRlID0gTkRJ U1RfRVhQRUNUX0tFWTsKKwkJCQlyZXR1cm4gSlNPTl9TVUNDRVNTOworCQkJfQorCisJCQllcnJz YXZlKHBhcnNlLT5lc2NvbnRleHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRf UkVQUkVTRU5UQVRJT04pLAorCQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6IFwi JXNcIiIsIHBhcnNlLT5zdHIpLAorCQkJCQllcnJkZXRhaWwoIlRoZSBcIiVzXCIga2V5IG11c3Qg YmUgYW4gbm9uLWVtcHR5IGFycmF5LiIsCisJCQkJCQkJICBQR19ORElTVElOQ1RfS0VZX0FUVFJJ QlVURVMpKTsKKwkJCWJyZWFrOworCisJCWNhc2UgTkRJU1RfRVhQRUNUX0lURU06CisJCQlpZiAo bGlzdF9sZW5ndGgocGFyc2UtPmRpc3RpbmN0X2l0ZW1zKSA+IDApCisJCQl7CisJCQkJLyogSXRl bSBsaXN0IGlzIGNvbXBsZXRlLCB3ZSBhcmUgZG9uZS4gKi8KKwkJCQlwYXJzZS0+c3RhdGUgPSBO RElTVF9FWFBFQ1RfQ09NUExFVEU7CisJCQkJcmV0dXJuIEpTT05fU1VDQ0VTUzsKKwkJCX0KKwor CQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJ RF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfbmRpc3Rp bmN0OiBcIiVzXCIiLCBwYXJzZS0+c3RyKSwKKwkJCQkJZXJyZGV0YWlsKCJJdGVtIGFycmF5IGNh bm5vdCBiZSBlbXB0eS4iKSk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKworCQkJLyoKKwkJCSAq IFRoaXMgY2FuIG9ubHkgaGFwcGVuIGlmIGEgY2FzZSB3YXMgbWlzc2VkIGluCisJCQkgKiBuZGlz dGluY3RfYXJyYXlfc3RhcnQoKS4KKwkJCSAqLworCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0 LAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJ CQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiBcIiVzXCIiLCBwYXJzZS0+c3RyKSwK KwkJCQkJZXJyZGV0YWlsKCJBcnJheSBmb3VuZCBpbiB1bmV4cGVjdGVkIHBsYWNlLiIpKTsKKwkJ CWJyZWFrOworCX0KKworCXJldHVybiBKU09OX1NFTV9BQ1RJT05fRkFJTEVEOworfQorCisvKgor ICogVGhlIHZhbGlkIGtleXMgZm9yIHRoZSBNVk5EaXN0aW5jdEl0ZW0gb2JqZWN0IGFyZToKKyAq ICAgLSBhdHRyaWJ1dGVzCisgKiAgIC0gbmRpc3RpbmN0CisgKi8KK3N0YXRpYyBKc29uUGFyc2VF cnJvclR5cGUKK25kaXN0aW5jdF9vYmplY3RfZmllbGRfc3RhcnQodm9pZCAqc3RhdGUsIGNoYXIg KmZuYW1lLCBib29sIGlzbnVsbCkKK3sKKwlORGlzdGluY3RQYXJzZVN0YXRlICpwYXJzZSA9IHN0 YXRlOworCisJaWYgKHN0cmNtcChmbmFtZSwgUEdfTkRJU1RJTkNUX0tFWV9BVFRSSUJVVEVTKSA9 PSAwKQorCXsKKwkJaWYgKHBhcnNlLT5mb3VuZF9hdHRyaWJ1dGVzKQorCQl7CisJCQllcnJzYXZl KHBhcnNlLT5lc2NvbnRleHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQ UkVTRU5UQVRJT04pLAorCQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6IFwiJXNc IiIsIHBhcnNlLT5zdHIpLAorCQkJCQllcnJkZXRhaWwoIk11bHRpcGxlIFwiJXNcIiBrZXlzIGFy ZSBub3QgYWxsb3dlZC4iLAorCQkJCQkJCVBHX05ESVNUSU5DVF9LRVlfQVRUUklCVVRFUykpOwor CQkJcmV0dXJuIEpTT05fU0VNX0FDVElPTl9GQUlMRUQ7CisJCX0KKwkJcGFyc2UtPmZvdW5kX2F0 dHJpYnV0ZXMgPSB0cnVlOworCQlwYXJzZS0+c3RhdGUgPSBORElTVF9FWFBFQ1RfQVRUTlVNX0xJ U1Q7CisJCXJldHVybiBKU09OX1NVQ0NFU1M7CisJfQorCisJaWYgKHN0cmNtcChmbmFtZSwgUEdf TkRJU1RJTkNUX0tFWV9ORElTVElOQ1QpID09IDApCisJeworCQlpZiAocGFyc2UtPmZvdW5kX25k aXN0aW5jdCkKKwkJeworCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJCQllcnJjb2Rl KEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQkJZXJybXNnKCJtYWxm b3JtZWQgcGdfbmRpc3RpbmN0OiBcIiVzXCIiLCBwYXJzZS0+c3RyKSwKKwkJCQkJZXJyZGV0YWls KCJNdWx0aXBsZSBcIiVzXCIga2V5cyBhcmUgbm90IGFsbG93ZWQuIiwKKwkJCQkJCQlQR19ORElT VElOQ1RfS0VZX05ESVNUSU5DVCkpOworCQkJcmV0dXJuIEpTT05fU0VNX0FDVElPTl9GQUlMRUQ7 CisJCX0KKwkJcGFyc2UtPmZvdW5kX25kaXN0aW5jdCA9IHRydWU7CisJCXBhcnNlLT5zdGF0ZSA9 IE5ESVNUX0VYUEVDVF9ORElTVElOQ1Q7CisJCXJldHVybiBKU09OX1NVQ0NFU1M7CisJfQorCisJ ZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVY VF9SRVBSRVNFTlRBVElPTiksCisJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6IFwi JXNcIiIsIHBhcnNlLT5zdHIpLAorCQkJZXJyZGV0YWlsKCJPbmx5IGFsbG93ZWQga2V5cyBhcmUg XCIlc1wiIGFuZCBcIiVzXCIuIiwKKwkJCQkJICBQR19ORElTVElOQ1RfS0VZX0FUVFJJQlVURVMs CisJCQkJCSAgUEdfTkRJU1RJTkNUX0tFWV9ORElTVElOQ1QpKTsKKwlyZXR1cm4gSlNPTl9TRU1f QUNUSU9OX0ZBSUxFRDsKK30KKworLyoKKyAqIEhhbmRsZSBhbnkgYXJyYXkgZWxlbWVudC4KKyAq Lworc3RhdGljIEpzb25QYXJzZUVycm9yVHlwZQorbmRpc3RpbmN0X2FycmF5X2VsZW1lbnRfc3Rh cnQodm9pZCAqc3RhdGUsIGJvb2wgaXNudWxsKQoreworCU5EaXN0aW5jdFBhcnNlU3RhdGUgKnBh cnNlID0gc3RhdGU7CisKKwlzd2l0Y2ggKHBhcnNlLT5zdGF0ZSkKKwl7CisJCWNhc2UgTkRJU1Rf RVhQRUNUX0FUVE5VTToKKwkJCWlmICghaXNudWxsKQorCQkJCXJldHVybiBKU09OX1NVQ0NFU1M7 CisKKwkJCWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lO VkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX25k aXN0aW5jdDogXCIlc1wiIiwgcGFyc2UtPnN0ciksCisJCQkJCWVycmRldGFpbCgiQXR0cmlidXRl IG51bWJlciBhcnJheSBjYW5ub3QgYmUgbnVsbC4iKSk7CisJCQlicmVhazsKKworCQljYXNlIE5E SVNUX0VYUEVDVF9JVEVNOgorCQkJaWYgKCFpc251bGwpCisJCQkJcmV0dXJuIEpTT05fU1VDQ0VT UzsKKworCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJCQllcnJjb2RlKEVSUkNPREVf SU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdf bmRpc3RpbmN0OiBcIiVzXCIiLCBwYXJzZS0+c3RyKSwKKwkJCQkJZXJyZGV0YWlsKCJJdGVtIGxp c3QgZWxlbWVudHMgY2Fubm90IGJlIG51bGwuIikpOworCisJCQlicmVhazsKKworCQlkZWZhdWx0 OgorCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5W QUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfbmRp c3RpbmN0OiBcIiVzXCIiLCBwYXJzZS0+c3RyKSwKKwkJCQkJZXJyZGV0YWlsKCJVbmV4cGVjdGVk IGFycmF5IGVsZW1lbnQuIikpOworCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIEpTT05fU0VNX0FD VElPTl9GQUlMRUQ7Cit9CisKKy8qCisgKiBUZXN0IGZvciB2YWxpZCBzdWJzZXF1ZW50IGF0dHJp YnV0ZSBudW1iZXIuCiAgKgotICogcGdfbmRpc3RpbmN0IGlzIHJlYWwgZW5vdWdoIHRvIGJlIGEg dGFibGUgY29sdW1uLCBidXQgaXQgaGFzIG5vCi0gKiBvcGVyYXRpb25zIG9mIGl0cyBvd24sIGFu ZCBkaXNhbGxvd3MgaW5wdXQgKGp1c3QgbGlrZSBwZ19ub2RlX3RyZWUpLgorICogSWYgdGhlIHBy ZXZpb3VzIHZhbHVlIGlzIHBvc2l0aXZlLCB0aGVuIGN1cnJlbnQgdmFsdWUgbXVzdCBlaXRoZXIg YmUKKyAqIGdyZWF0ZXIgdGhhbiB0aGUgcHJldmlvdXMgdmFsdWUsIG9yIG5lZ2F0aXZlLgorICoK KyAqIElmIHRoZSBwcmV2aW91cyB2YWx1ZSBpcyBuZWdhdGl2ZSwgdGhlbiB0aGUgdmFsdWUgbXVz dCBiZSBsZXNzIHRoYW4KKyAqIHRoZSBwcmV2aW91cyB2YWx1ZS4KKyAqCisgKiBEdXBsaWNhdGUg dmFsdWVzIGFyZSBvYnZpb3VzbHkgbm90IGFsbG93ZWQsIGJ1dCB0aGF0IGlzIGFscmVhZHkgY292 ZXJlZAorICogYnkgdGhlIHJ1bGVzIGxpc3RlZCBhYm92ZS4KKyAqLworc3RhdGljIGJvb2wKK3Zh bGlkX3N1YnNlcXVlbnRfYXR0bnVtKGNvbnN0IEF0dHJOdW1iZXIgcHJldiwgY29uc3QgQXR0ck51 bWJlciBjdXIpCit7CisJQXNzZXJ0KHByZXYgIT0gMCk7CisKKwlpZiAocHJldiA+IDApCisJCXJl dHVybiAoKGN1ciA+IHByZXYpIHx8IChjdXIgPCAwKSk7CisKKwlyZXR1cm4gKGN1ciA8IHByZXYp OworfQorCisvKgorICogSGFuZGxlIHNjYWxhciBldmVudHMgZnJvbSB0aGUgbmRpc3RpbmN0IGlu cHV0IHBhcnNlci4KKyAqCisgKiBPdmVycmlkZSBpbnRlZ2VyIHBhcnNlIGVycm9yIG1lc3NhZ2Vz IGFuZCByZXBsYWNlIHRoZW0gd2l0aCBlcnJvcnMKKyAqIHNwZWNpZmljIHRvIHRoZSBjb250ZXh0 LgorICovCitzdGF0aWMgSnNvblBhcnNlRXJyb3JUeXBlCituZGlzdGluY3Rfc2NhbGFyKHZvaWQg KnN0YXRlLCBjaGFyICp0b2tlbiwgSnNvblRva2VuVHlwZSB0b2tlbnR5cGUpCit7CisJTkRpc3Rp bmN0UGFyc2VTdGF0ZSAqcGFyc2UgPSBzdGF0ZTsKKwlBdHRyTnVtYmVyCWF0dG51bTsKKwlFcnJv clNhdmVDb250ZXh0IGVzY29udGV4dCA9IHtUX0Vycm9yU2F2ZUNvbnRleHR9OworCisJc3dpdGNo IChwYXJzZS0+c3RhdGUpCisJeworCQljYXNlIE5ESVNUX0VYUEVDVF9BVFROVU06CisJCQlhdHRu dW0gPSBwZ19zdHJ0b2ludDE2X3NhZmUodG9rZW4sIChOb2RlICopICZlc2NvbnRleHQpOworCisJ CQlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRCgmZXNjb250ZXh0KSkKKwkJCXsKKwkJCQllcnJzYXZl KHBhcnNlLT5lc2NvbnRleHQsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JF UFJFU0VOVEFUSU9OKSwKKwkJCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX25kaXN0aW5jdDogXCIl c1wiIiwgcGFyc2UtPnN0ciksCisJCQkJCQllcnJkZXRhaWwoIkludmFsaWQgXCIlc1wiIHZhbHVl LiIsIFBHX05ESVNUSU5DVF9LRVlfQVRUUklCVVRFUykpOworCQkJCXJldHVybiBKU09OX1NFTV9B Q1RJT05fRkFJTEVEOworCQkJfQorCisJCQkvKgorCQkJICogVGhlIGF0dG51bSBjYW5ub3QgYmUg emVybyBhIG5lZ2F0aXZlIG51bWJlciBiZXlvbmQgdGhlIG51bWJlciBvZiB0aGUKKwkJCSAqIHBv c3NpYmxlIGV4cHJlc3Npb25zLgorCQkJICovCisJCQlpZiAoYXR0bnVtID09IDAgfHwgYXR0bnVt IDwgKDAtU1RBVFNfTUFYX0RJTUVOU0lPTlMpKQorCQkJeworCQkJCWVycnNhdmUocGFyc2UtPmVz Y29udGV4dCwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJ T04pLAorCQkJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiBcIiVzXCIiLCBwYXJz ZS0+c3RyKSwKKwkJCQkJCWVycmRldGFpbCgiSW52YWxpZCBcIiVzXCIgZWxlbWVudDogJWQuIiwK KwkJCQkJCQkJCVBHX05ESVNUSU5DVF9LRVlfQVRUUklCVVRFUywgYXR0bnVtKSk7CisJCQkJcmV0 dXJuIEpTT05fU0VNX0FDVElPTl9GQUlMRUQ7CisJCQl9CisKKwkJCWlmIChsaXN0X2xlbmd0aChw YXJzZS0+YXR0bnVtX2xpc3QpID4gMCkKKwkJCXsKKwkJCQljb25zdCBBdHRyTnVtYmVyIHByZXYg PSBsbGFzdF9pbnQocGFyc2UtPmF0dG51bV9saXN0KTsKKworCQkJCWlmICghdmFsaWRfc3Vic2Vx dWVudF9hdHRudW0ocHJldiwgYXR0bnVtKSkKKwkJCQl7CisJCQkJCWVycnNhdmUocGFyc2UtPmVz Y29udGV4dCwKKwkJCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFU SU9OKSwKKwkJCQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6IFwiJXNcIiIsIHBh cnNlLT5zdHIpLAorCQkJCQkJCWVycmRldGFpbCgiSW52YWxpZCBcIiVzXCIgZWxlbWVudDogJWQg Y2Fubm90IGZvbGxvdyAlZC4iLAorCQkJCQkJCQkJUEdfTkRJU1RJTkNUX0tFWV9BVFRSSUJVVEVT LCBhdHRudW0sIHByZXYpKTsKKwkJCQkJcmV0dXJuIEpTT05fU0VNX0FDVElPTl9GQUlMRUQ7CisJ CQkJfQorCQkJfQorCisJCQlwYXJzZS0+YXR0bnVtX2xpc3QgPSBsYXBwZW5kX2ludChwYXJzZS0+ YXR0bnVtX2xpc3QsIChpbnQpIGF0dG51bSk7CisJCQlyZXR1cm4gSlNPTl9TVUNDRVNTOworCQkJ YnJlYWs7CisKKwkJY2FzZSBORElTVF9FWFBFQ1RfTkRJU1RJTkNUOgorCisJCQkvKgorCQkJICog V2hpbGUgdGhlIHN0cnVjdHVyZSBkaWN0YXRlcyB0aGF0IG5kaXN0aW5jdCBpcyBhIGRvdWJsZQor CQkJICogcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50LCBpdCBoYXMgYWx3YXlzIGJlZW4gYW4gaW50 ZWdlciBpbiB0aGUKKwkJCSAqIG91dHB1dCBnZW5lcmF0ZWQuICBUaGVyZWZvcmUsIHdlIHBhcnNl IGl0IGFzIGFuIGludGVnZXIgaGVyZS4KKwkJCSAqLworCQkJcGFyc2UtPm5kaXN0aW5jdCA9IHBn X3N0cnRvaW50MzJfc2FmZSh0b2tlbiwgKE5vZGUgKikgJmVzY29udGV4dCk7CisKKwkJCWlmICgh U09GVF9FUlJPUl9PQ0NVUlJFRCgmZXNjb250ZXh0KSkKKwkJCXsKKwkJCQlwYXJzZS0+c3RhdGUg PSBORElTVF9FWFBFQ1RfS0VZOworCQkJCXJldHVybiBKU09OX1NVQ0NFU1M7CisJCQl9CisJCQll cnJzYXZlKHBhcnNlLT5lc2NvbnRleHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RF WFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6 IFwiJXNcIiIsIHBhcnNlLT5zdHIpLAorCQkJCQllcnJkZXRhaWwoIkludmFsaWQgXCIlc1wiIHZh bHVlLiIsCisJCQkJCQkJICBQR19ORElTVElOQ1RfS0VZX05ESVNUSU5DVCkpOworCQkJYnJlYWs7 CisKKwkJZGVmYXVsdDoKKwkJCWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQkJZXJyY29k ZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJCWVycm1zZygibWFs Zm9ybWVkIHBnX25kaXN0aW5jdDogXCIlc1wiIiwgcGFyc2UtPnN0ciksCisJCQkJCWVycmRldGFp bCgiVW5leHBlY3RlZCBzY2FsYXIuIikpOworCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIEpTT05f U0VNX0FDVElPTl9GQUlMRUQ7Cit9CisKKy8qCisgKiBDb21wYXJlIHRoZSBhdHRyaWJ1dGUgYXJy YXlzIG9mIHR3byBNVk5EaXN0aW5jdEl0ZW0gdmFsdWVzLAorICogbG9va2luZyBmb3IgZHVwbGlj YXRlIHNldHMuCisgKgorICogV2hpbGUgdGhlIGxpc3RzIG11c3QgYmUgaW4gY2Fub25pY2FsIG9y ZGVyLCBhbmQgdGhpcyBzaG91bGQgdGhlb3JldGljYWxseQorICogYWxsb3cgZm9yIHNob3J0LWNp cmN1aXRpbmcgdGhlIHNlYXJjaCwgdGhlc2UgbGlzdHMgYXJlIGFsc28gbmV2ZXIgbW9yZSB0aGFu CisgKiBTVEFUU19NQVhfRElNRU5TSU9OUyBlbGVtZW50cywgc3VjaCBjbGV2ZXJuZXNzIHdvdWxk IGJlIHdhc3RlZC4KKyAqLworc3RhdGljIGJvb2wKK2hhc19kdXBsaWNhdGVfYXR0cmlidXRlcyhj b25zdCBNVk5EaXN0aW5jdEl0ZW0gKmEsCisJCQkJCQkgY29uc3QgTVZORGlzdGluY3RJdGVtICpi KQoreworCWlmIChhLT5uYXR0cmlidXRlcyAhPSBiLT5uYXR0cmlidXRlcykKKwkJcmV0dXJuIGZh bHNlOworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBhLT5uYXR0cmlidXRlczsgaSsrKQorCXsKKwkJ aWYgKGEtPmF0dHJpYnV0ZXNbaV0gIT0gYi0+YXR0cmlidXRlc1tpXSkKKwkJCXJldHVybiBmYWxz ZTsKKwl9CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIEVuc3VyZSB0aGF0IGFuIGF0dHJp YnV0ZSBudW1iZXIgYXBwZWFycyBhcyBvbmUgb2YgdGhlIGF0dHJpYnV0ZSBudW1iZXJzCisgKiBp biBhIE1WTkRpc3RpbmN0SXRlbS4KKyAqLworc3RhdGljIGJvb2wKK2l0ZW1faGFzX2F0dG51bShj b25zdCBNVk5EaXN0aW5jdEl0ZW0gKml0ZW0sIEF0dHJOdW1iZXIgYXR0bnVtKQoreworCWZvciAo aW50IGkgPSAwOyBpIDwgaXRlbS0+bmF0dHJpYnV0ZXM7IGkrKykKKwl7CisJCWlmIChhdHRudW0g PT0gaXRlbS0+YXR0cmlidXRlc1tpXSkKKwkJCXJldHVybiB0cnVlOworCX0KKwlyZXR1cm4gZmFs c2U7Cit9CisKKy8qCisgKiBFbnN1cmUgdGhhdCB0aGUgYXR0cmlidXRlcyBpbiBNVk5EaXN0aW5j dEl0ZW0gQSBhcmUgYSBzdWJzZXQgb2YgdGhlCisgKiByZWZlcmVuY2UgTVZORGlzdGluY3RJdGVt IEIuCisgKi8KK3N0YXRpYyBib29sCitpdGVtX2lzX2F0dG51bV9zdWJzZXQoY29uc3QgTVZORGlz dGluY3RJdGVtICppdGVtLAorCQkJCQkgIGNvbnN0IE1WTkRpc3RpbmN0SXRlbSAqcmVmaXRlbSkK K3sKKwlmb3IgKGludCBpID0gMDsgaSA8IGl0ZW0tPm5hdHRyaWJ1dGVzOyBpKyspCisJeworCQlp ZiAoIWl0ZW1faGFzX2F0dG51bShyZWZpdGVtLCBpdGVtLT5hdHRyaWJ1dGVzW2ldKSkKKwkJCXJl dHVybiBmYWxzZTsKKwl9CisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBHZW5lcmF0ZSBhIHN0 cmluZyByZXByZXNlbnRpbmcgYW4gYXJyYXkgb2YgYXR0bnVtLgorICoKKyAqIEZyZWVpbmcgdGhl IGFsbG9jYXRlZCBzdHJpbmcgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBjYWxsZXIuCisg Ki8KK3N0YXRpYyBjb25zdCBjaGFyICoKK2l0ZW1fYXR0bnVtX2xpc3QoY29uc3QgTVZORGlzdGlu Y3RJdGVtICppdGVtKQoreworCVN0cmluZ0luZm9EYXRhIHN0cjsKKworCWluaXRTdHJpbmdJbmZv KCZzdHIpOworCisJYXBwZW5kU3RyaW5nSW5mbygmc3RyLCAiJWQiLCBpdGVtLT5hdHRyaWJ1dGVz WzBdKTsKKworCWZvciAoaW50IGkgPSAxOyBpIDwgaXRlbS0+bmF0dHJpYnV0ZXM7IGkrKykKKwkJ YXBwZW5kU3RyaW5nSW5mbygmc3RyLCAiLCAlZCIsIGl0ZW0tPmF0dHJpYnV0ZXNbaV0pOworCisJ cmV0dXJuIHN0ci5kYXRhOworfQorCisvKgorICogcGdfbmRpc3RpbmN0X2luCisgKgkJaW5wdXQg cm91dGluZSBmb3IgdHlwZSBwZ19uZGlzdGluY3QuCiAgKi8KIERhdHVtCiBwZ19uZGlzdGluY3Rf aW4oUEdfRlVOQ1RJT05fQVJHUykKIHsKLQllcmVwb3J0KEVSUk9SLAotCQkJKGVycmNvZGUoRVJS Q09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJIGVycm1zZygiY2Fubm90IGFjY2VwdCBh IHZhbHVlIG9mIHR5cGUgJXMiLCAicGdfbmRpc3RpbmN0IikpKTsKKwljaGFyCSAgICpzdHIgPSBQ R19HRVRBUkdfQ1NUUklORygwKTsKKwlORGlzdGluY3RQYXJzZVN0YXRlIHBhcnNlX3N0YXRlOwor CUpzb25QYXJzZUVycm9yVHlwZSByZXN1bHQ7CisJSnNvbkxleENvbnRleHQgKmxleDsKKwlKc29u U2VtQWN0aW9uIHNlbV9hY3Rpb247CisJaW50CQkJaXRlbV9tb3N0X2F0dHJzID0gMDsKKwlpbnQJ CQlpdGVtX21vc3RfYXR0cnNfaWR4ID0gMDsKIAotCVBHX1JFVFVSTl9WT0lEKCk7CQkJLyoga2Vl cCBjb21waWxlciBxdWlldCAqLworCS8qIGluaXRpYWxpemUgc2VtYW50aWMgc3RhdGUgKi8KKwlw YXJzZV9zdGF0ZS5zdHIgPSBzdHI7CisJcGFyc2Vfc3RhdGUuc3RhdGUgPSBORElTVF9FWFBFQ1Rf U1RBUlQ7CisJcGFyc2Vfc3RhdGUuZGlzdGluY3RfaXRlbXMgPSBOSUw7CisJcGFyc2Vfc3RhdGUu ZXNjb250ZXh0ID0gZmNpbmZvLT5jb250ZXh0OworCXBhcnNlX3N0YXRlLmZvdW5kX2F0dHJpYnV0 ZXMgPSBmYWxzZTsKKwlwYXJzZV9zdGF0ZS5mb3VuZF9uZGlzdGluY3QgPSBmYWxzZTsKKwlwYXJz ZV9zdGF0ZS5hdHRudW1fbGlzdCA9IE5JTDsKKwlwYXJzZV9zdGF0ZS5uZGlzdGluY3QgPSAwOwor CisJLyogc2V0IGNhbGxiYWNrcyAqLworCXNlbV9hY3Rpb24uc2Vtc3RhdGUgPSAodm9pZCAqKSAm cGFyc2Vfc3RhdGU7CisJc2VtX2FjdGlvbi5vYmplY3Rfc3RhcnQgPSBuZGlzdGluY3Rfb2JqZWN0 X3N0YXJ0OworCXNlbV9hY3Rpb24ub2JqZWN0X2VuZCA9IG5kaXN0aW5jdF9vYmplY3RfZW5kOwor CXNlbV9hY3Rpb24uYXJyYXlfc3RhcnQgPSBuZGlzdGluY3RfYXJyYXlfc3RhcnQ7CisJc2VtX2Fj dGlvbi5hcnJheV9lbmQgPSBuZGlzdGluY3RfYXJyYXlfZW5kOworCXNlbV9hY3Rpb24ub2JqZWN0 X2ZpZWxkX3N0YXJ0ID0gbmRpc3RpbmN0X29iamVjdF9maWVsZF9zdGFydDsKKwlzZW1fYWN0aW9u Lm9iamVjdF9maWVsZF9lbmQgPSBOVUxMOworCXNlbV9hY3Rpb24uYXJyYXlfZWxlbWVudF9zdGFy dCA9IG5kaXN0aW5jdF9hcnJheV9lbGVtZW50X3N0YXJ0OworCXNlbV9hY3Rpb24uYXJyYXlfZWxl bWVudF9lbmQgPSBOVUxMOworCXNlbV9hY3Rpb24uc2NhbGFyID0gbmRpc3RpbmN0X3NjYWxhcjsK KworCWxleCA9IG1ha2VKc29uTGV4Q29udGV4dENzdHJpbmdMZW4oTlVMTCwgc3RyLCBzdHJsZW4o c3RyKSwKKwkJCQkJCQkJCSAgIFBHX1VURjgsIHRydWUpOworCXJlc3VsdCA9IHBnX3BhcnNlX2pz b24obGV4LCAmc2VtX2FjdGlvbik7CisJZnJlZUpzb25MZXhDb250ZXh0KGxleCk7CisKKwlpZiAo cmVzdWx0ID09IEpTT05fU1VDQ0VTUykKKwl7CisJCU1WTkRpc3RpbmN0ICpuZGlzdGluY3Q7CisJ CWludAkJCW5pdGVtcyA9IGxpc3RfbGVuZ3RoKHBhcnNlX3N0YXRlLmRpc3RpbmN0X2l0ZW1zKTsK KwkJYnl0ZWEJICAgKmJ5dGVzOworCisJCXN3aXRjaCAocGFyc2Vfc3RhdGUuc3RhdGUpCisJCXsK KwkJCWNhc2UgTkRJU1RfRVhQRUNUX0NPTVBMRVRFOgorCisJCQkJLyoKKwkJCQkgKiBQYXJzaW5n IGhhcyBlbmRlZCBjb3JyZWN0bHkgYW5kIHdlIHNob3VsZCBoYXZlIGEgbGlzdCBvZgorCQkJCSAq IGl0ZW1zLiAgSWYgd2UgZG9uJ3QsIHNvbWV0aGluZyBoYXMgYmVlbiBkb25lIHdyb25nIGluIG9u ZQorCQkJCSAqIG9mIHRoZSBlYXJsaWVyIHBhcnNpbmcgc3RlcHMuCisJCQkJICovCisJCQkJaWYg KG5pdGVtcyA9PSAwKQorCQkJCQllbG9nKEVSUk9SLAorCQkJCQkJICJjYW5ub3QgaGF2ZSBlbXB0 eSBpdGVtIGxpc3QgYWZ0ZXIgcGFyc2luZyBzdWNjZXNzLiIpOworCQkJCWJyZWFrOworCisJCQlj YXNlIE5ESVNUX0VYUEVDVF9TVEFSVDoKKwkJCQkvKiBibGFuayAqLworCQkJCWVycnNhdmUocGFy c2Vfc3RhdGUuZXNjb250ZXh0LAorCQkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9S RVBSRVNFTlRBVElPTiksCisJCQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6IFwi JXNcIiIsIHN0ciksCisJCQkJCQllcnJkZXRhaWwoIlZhbHVlIGNhbm5vdCBiZSBlbXB0eS4iKSk7 CisJCQkJUEdfUkVUVVJOX05VTEwoKTsKKwkJCQlicmVhazsKKworCQkJZGVmYXVsdDoKKwkJCQkv KiBVbmV4cGVjdGVkIGVuZC1zdGF0ZS4gKi8KKwkJCQllcnJzYXZlKHBhcnNlX3N0YXRlLmVzY29u dGV4dCwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04p LAorCQkJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiBcIiVzXCIiLCBzdHIpLAor CQkJCQkJZXJyZGV0YWlsKCJVbmV4cGVjdGVkIGVuZCBzdGF0ZSAlZC4iLCBwYXJzZV9zdGF0ZS5z dGF0ZSkpOworCQkJCVBHX1JFVFVSTl9OVUxMKCk7CisJCQkJYnJlYWs7CisJCX0KKworCQluZGlz dGluY3QgPSBwYWxsb2Mob2Zmc2V0b2YoTVZORGlzdGluY3QsIGl0ZW1zKSArCisJCQkJCQkgICBu aXRlbXMgKiBzaXplb2YoTVZORGlzdGluY3RJdGVtKSk7CisKKwkJbmRpc3RpbmN0LT5tYWdpYyA9 IFNUQVRTX05ESVNUSU5DVF9NQUdJQzsKKwkJbmRpc3RpbmN0LT50eXBlID0gU1RBVFNfTkRJU1RJ TkNUX1RZUEVfQkFTSUM7CisJCW5kaXN0aW5jdC0+bml0ZW1zID0gbml0ZW1zOworCisJCWZvciAo aW50IGkgPSAwOyBpIDwgbml0ZW1zOyBpKyspCisJCXsKKwkJCU1WTkRpc3RpbmN0SXRlbSAqaXRl bSA9IGxpc3RfbnRoKHBhcnNlX3N0YXRlLmRpc3RpbmN0X2l0ZW1zLCBpKTsKKworCQkJLyoKKwkJ CSAqIEVuc3VyZSB0aGF0IHRoaXMgaXRlbSBkb2VzIG5vdCBkdXBsaWNhdGUgdGhlIGF0dHJpYnV0 ZXMgb2YgYW55CisJCQkgKiBwcmUtZXhpc3RpbmcgaXRlbS4KKwkJCSAqLworCQkJZm9yIChpbnQg aiA9IDA7IGogPCBpOyBqKyspCisJCQl7CisJCQkJaWYgKGhhc19kdXBsaWNhdGVfYXR0cmlidXRl cyhpdGVtLCAmbmRpc3RpbmN0LT5pdGVtc1tqXSkpCisJCQkJeworCQkJCQllcnJzYXZlKHBhcnNl X3N0YXRlLmVzY29udGV4dCwKKwkJCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JF UFJFU0VOVEFUSU9OKSwKKwkJCQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6IFwi JXNcIiIsIHN0ciksCisJCQkJCQkJZXJyZGV0YWlsKCJEdXBsaWNhdGVkIFwiJXNcIiBhcnJheSBm b3VuZDogWyVzXSIsCisJCQkJCQkJCQkgIFBHX05ESVNUSU5DVF9LRVlfQVRUUklCVVRFUywKKwkJ CQkJCQkJCSAgaXRlbV9hdHRudW1fbGlzdChpdGVtKSkpOworCQkJCQlQR19SRVRVUk5fTlVMTCgp OworCQkJCX0KKwkJCX0KKworCQkJbmRpc3RpbmN0LT5pdGVtc1tpXS5uZGlzdGluY3QgPSBpdGVt LT5uZGlzdGluY3Q7CisJCQluZGlzdGluY3QtPml0ZW1zW2ldLm5hdHRyaWJ1dGVzID0gaXRlbS0+ bmF0dHJpYnV0ZXM7CisJCQluZGlzdGluY3QtPml0ZW1zW2ldLmF0dHJpYnV0ZXMgPSBpdGVtLT5h dHRyaWJ1dGVzOworCisJCQkvKgorCQkJICogS2VlcCB0cmFjayBvZiB0aGUgZmlyc3QgbG9uZ2Vz dCBhdHRyaWJ1dGUgbGlzdC4gQWxsIG90aGVyCisJCQkgKiBhdHRyaWJ1dGUgbGlzdHMgbXVzdCBi ZSBhIHN1YnNldCBvZiB0aGlzIGxpc3QuCisJCQkgKi8KKwkJCWlmIChpdGVtLT5uYXR0cmlidXRl cyA+IGl0ZW1fbW9zdF9hdHRycykKKwkJCXsKKwkJCQlpdGVtX21vc3RfYXR0cnMgPSBpdGVtLT5u YXR0cmlidXRlczsKKwkJCQlpdGVtX21vc3RfYXR0cnNfaWR4ID0gaTsKKwkJCX0KKworCQkJLyoK KwkJCSAqIEZyZWUgdGhlIE1WTkRpc3RpbmN0SXRlbSwgYnV0IG5vdCB0aGUgYXR0cmlidXRlcyB3 ZSdyZSBzdGlsbAorCQkJICogdXNpbmcuCisJCQkgKi8KKwkJCXBmcmVlKGl0ZW0pOworCQl9CisK KwkJLyoKKwkJICogVmVyaWZ5IHRoYXQgYWxsIHRoZSBzZXRzIG9mIGF0dHJpYnV0ZSBudW1iZXJz IGFyZSBhIHByb3BlciBzdWJzZXQKKwkJICogb2YgdGhlIGxvbmdlc3Qgc2V0IHJlY29yZGVkLiAg VGhpcyBhY3RzIGFzIGFuIGV4dHJhIHNhbml0eSBjaGVjaworCQkgKiBiYXNlZCBvbiB0aGUgaW5w dXQgZ2l2ZW4uICBOb3RlIHRoYXQgdGhpcyBzdGlsbCBuZWVkcyB0byBiZQorCQkgKiBjcm9zcy1j aGVja2VkIHdpdGggdGhlIGV4dGVuZGVkIHN0YXRpc3RpY3Mgb2JqZWN0cyB0aGlzIHdvdWxkIGJl CisJCSAqIGFzc2lnbmVkIHRvLCBidXQgaXQgcHJvdmlkZXMgb25lIGV4dHJhIGxheWVyIG9mIHBy b3RlY3Rpb24uCisJCSAqLworCQlmb3IgKGludCBpID0gMDsgaSA8IG5pdGVtczsgaSsrKQorCQl7 CisJCQlpZiAoaSA9PSBpdGVtX21vc3RfYXR0cnNfaWR4KQorCQkJCWNvbnRpbnVlOworCisJCQlp ZiAoIWl0ZW1faXNfYXR0bnVtX3N1YnNldCgmbmRpc3RpbmN0LT5pdGVtc1tpXSwKKwkJCQkJCQkJ CSAgICZuZGlzdGluY3QtPml0ZW1zW2l0ZW1fbW9zdF9hdHRyc19pZHhdKSkKKwkJCXsKKwkJCQlj b25zdCBNVk5EaXN0aW5jdEl0ZW0gKml0ZW0gPSAmbmRpc3RpbmN0LT5pdGVtc1tpXTsKKwkJCQlj b25zdCBNVk5EaXN0aW5jdEl0ZW0gKnJlZml0ZW0gPSAmbmRpc3RpbmN0LT5pdGVtc1tpdGVtX21v c3RfYXR0cnNfaWR4XTsKKwkJCQljb25zdCBjaGFyICppdGVtX2xpc3QgPSBpdGVtX2F0dG51bV9s aXN0KGl0ZW0pOworCQkJCWNvbnN0IGNoYXIgKnJlZml0ZW1fbGlzdCA9IGl0ZW1fYXR0bnVtX2xp c3QocmVmaXRlbSk7CisKKwkJCQllcnJzYXZlKHBhcnNlX3N0YXRlLmVzY29udGV4dCwKKwkJCQkJ CWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCQkJZXJy bXNnKCJtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiBcIiVzXCIiLCBzdHIpLAorCQkJCQkJZXJyZGV0 YWlsKCJcIiVzXCIgYXJyYXk6IFslc10gbXVzdCBiZSBhIHN1YnNldCBvZiBhcnJheTogWyVzXSIs CisJCQkJCQkJCSAgUEdfTkRJU1RJTkNUX0tFWV9BVFRSSUJVVEVTLAorCQkJCQkJCQkgIGl0ZW1f bGlzdCwgcmVmaXRlbV9saXN0KSk7CisJCQkJUEdfUkVUVVJOX05VTEwoKTsKKwkJCX0KKwkJfQor CisJCWJ5dGVzID0gc3RhdGV4dF9uZGlzdGluY3Rfc2VyaWFsaXplKG5kaXN0aW5jdCk7CisKKwkJ bGlzdF9mcmVlKHBhcnNlX3N0YXRlLmRpc3RpbmN0X2l0ZW1zKTsKKwkJZm9yIChpbnQgaSA9IDA7 IGkgPCBuaXRlbXM7IGkrKykKKwkJCXBmcmVlKG5kaXN0aW5jdC0+aXRlbXNbaV0uYXR0cmlidXRl cyk7CisJCXBmcmVlKG5kaXN0aW5jdCk7CisKKwkJUEdfUkVUVVJOX0JZVEVBX1AoYnl0ZXMpOwor CX0KKworCS8qCisJICogSWYgZXNjb250ZXh0IGFscmVhZHkgc2V0LCBqdXN0IHVzZSB0aGF0LiBB bnl0aGluZyBlbHNlIGlzIGEgZ2VuZXJpYworCSAqIEpTT04gcGFyc2UgZXJyb3IuCisJICovCisJ aWYgKCFTT0ZUX0VSUk9SX09DQ1VSUkVEKHBhcnNlX3N0YXRlLmVzY29udGV4dCkpCisJCWVycnNh dmUocGFyc2Vfc3RhdGUuZXNjb250ZXh0LAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RF WFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX25kaXN0aW5jdDog XCIlc1wiIiwgc3RyKSwKKwkJCQllcnJkZXRhaWwoIk11c3QgYmUgdmFsaWQgSlNPTi4iKSk7CisK KwlQR19SRVRVUk5fTlVMTCgpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wZ19uZGlzdGluY3Qub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w Z19uZGlzdGluY3Qub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5i MDU3YjNiNDZiOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cGdfbmRpc3RpbmN0Lm91dApAQCAtMCwwICsxLDQwOSBAQAorLS0gVGVzdHMgZm9yIHR5cGUgcGdf bmRpc3RpbmN0CistLSBJbnZhbGlkIGlucHV0cworU0VMRUNUICdudWxsJzo6cGdfbmRpc3RpbmN0 OworRVJST1I6ICBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAibnVsbCIKK0xJTkUgMTogU0VMRUNU ICdudWxsJzo6cGdfbmRpc3RpbmN0OworICAgICAgICAgICAgICAgXgorREVUQUlMOiAgVW5leHBl Y3RlZCBzY2FsYXIuCitTRUxFQ1QgJ3siYSI6IDF9Jzo6cGdfbmRpc3RpbmN0OworRVJST1I6ICBt YWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAieyJhIjogMX0iCitMSU5FIDE6IFNFTEVDVCAneyJhIjog MX0nOjpwZ19uZGlzdGluY3Q7CisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBJbml0aWFsIGVs ZW1lbnQgbXVzdCBiZSBhbiBhcnJheS4KK1NFTEVDVCAnW10nOjpwZ19uZGlzdGluY3Q7CitFUlJP UjogIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJbXSIKK0xJTkUgMTogU0VMRUNUICdbXSc6OnBn X25kaXN0aW5jdDsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIEl0ZW0gYXJyYXkgY2Fubm90 IGJlIGVtcHR5LgorU0VMRUNUICd7fSc6OnBnX25kaXN0aW5jdDsKK0VSUk9SOiAgbWFsZm9ybWVk IHBnX25kaXN0aW5jdDogInt9IgorTElORSAxOiBTRUxFQ1QgJ3t9Jzo6cGdfbmRpc3RpbmN0Owor ICAgICAgICAgICAgICAgXgorREVUQUlMOiAgSW5pdGlhbCBlbGVtZW50IG11c3QgYmUgYW4gYXJy YXkuCitTRUxFQ1QgJ1tudWxsXSc6OnBnX25kaXN0aW5jdDsKK0VSUk9SOiAgbWFsZm9ybWVkIHBn X25kaXN0aW5jdDogIltudWxsXSIKK0xJTkUgMTogU0VMRUNUICdbbnVsbF0nOjpwZ19uZGlzdGlu Y3Q7CisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBJdGVtIGxpc3QgZWxlbWVudHMgY2Fubm90 IGJlIG51bGwuCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ251bGwnLCAncGdf bmRpc3RpbmN0Jyk7CisgICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgIHwgICAgICAgZGV0 YWlsICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0K KyBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAibnVsbCIgfCBVbmV4cGVjdGVkIHNjYWxhci4gfCAg ICAgIHwgMjJQMDIKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZv KCd7ImEiOiAxfScsICdwZ19uZGlzdGluY3QnKTsKKyAgICAgICAgICAgICAgbWVzc2FnZSAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgIGRldGFpbCAgICAgICAgICAgICAgIHwgaGludCB8IHNx bF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisg bWFsZm9ybWVkIHBnX25kaXN0aW5jdDogInsiYSI6IDF9IiB8IEluaXRpYWwgZWxlbWVudCBtdXN0 IGJlIGFuIGFycmF5LiB8ICAgICAgfCAyMlAwMgorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHBn X2lucHV0X2Vycm9yX2luZm8oJ1tdJywgJ3BnX25kaXN0aW5jdCcpOworICAgICAgICAgICBtZXNz YWdlICAgICAgICAgICAgfCAgICAgICAgICAgZGV0YWlsICAgICAgICAgICAgfCBoaW50IHwgc3Fs X2Vycm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdf bmRpc3RpbmN0OiAiW10iIHwgSXRlbSBhcnJheSBjYW5ub3QgYmUgZW1wdHkuIHwgICAgICB8IDIy UDAyCisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygne30nLCAn cGdfbmRpc3RpbmN0Jyk7CisgICAgICAgICAgIG1lc3NhZ2UgICAgICAgICAgICB8ICAgICAgICAg ICAgICBkZXRhaWwgICAgICAgICAgICAgICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJ7 fSIgfCBJbml0aWFsIGVsZW1lbnQgbXVzdCBiZSBhbiBhcnJheS4gfCAgICAgIHwgMjJQMDIKKygx IHJvdykKKworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbbnVsbF0nLCAncGdf bmRpc3RpbmN0Jyk7CisgICAgICAgICAgICAgbWVzc2FnZSAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgIGRldGFpbCAgICAgICAgICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9jb2RlIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfbmRpc3Rp bmN0OiAiW251bGxdIiB8IEl0ZW0gbGlzdCBlbGVtZW50cyBjYW5ub3QgYmUgbnVsbC4gfCAgICAg IHwgMjJQMDIKKygxIHJvdykKKworLS0gSW52YWxpZCBrZXlzCitTRUxFQ1QgJ1t7ImF0dHJpYnV0 ZXNfaW52YWxpZCIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlzdGluY3Q7CitF UlJPUjogIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1dGVzX2ludmFsaWQiIDog WzIsM10sICJuZGlzdGluY3QiIDogNH1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXNf aW52YWxpZCIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiA0fV0nOjouLi4KKyAgICAgICAgICAgICAg IF4KK0RFVEFJTDogIE9ubHkgYWxsb3dlZCBrZXlzIGFyZSAiYXR0cmlidXRlcyIgYW5kICJuZGlz dGluY3QiLgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiaW52YWxpZCIgOiAzLCAi bmRpc3RpbmN0IiA6IDR9XSc6OnBnX25kaXN0aW5jdDsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX25k aXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJpbnZhbGlkIiA6IDMsICJuZGlzdGlu Y3QiIDogNH1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJpbnZh bGlkIiA6IDMsICJuZGlzdGluY3QiIDouLi4KKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIE9u bHkgYWxsb3dlZCBrZXlzIGFyZSAiYXR0cmlidXRlcyIgYW5kICJuZGlzdGluY3QiLgorU0VMRUNU ICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiYXR0cmlidXRlcyIgOiBbMSwzXSwgIm5kaXN0aW5j dCIgOiA0fV0nOjpwZ19uZGlzdGluY3Q7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6 ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiYXR0cmlidXRlcyIgOiBbMSwzXSwgIm5kaXN0aW5j dCIgOiA0fV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImF0dHJp YnV0ZXMiIDogWzEsM10sICJuZGlzdC4uLgorICAgICAgICAgICAgICAgXgorREVUQUlMOiAgTXVs dGlwbGUgImF0dHJpYnV0ZXMiIGtleXMgYXJlIG5vdCBhbGxvd2VkLgorU0VMRUNUICdbeyJhdHRy aWJ1dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IDQsICJuZGlzdGluY3QiIDogNH1dJzo6cGdf bmRpc3RpbmN0OworRVJST1I6ICBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3siYXR0cmlidXRl cyIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiA0LCAibmRpc3RpbmN0IiA6IDR9XSIKK0xJTkUgMTog U0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IDQsICJuZGlzdGlu Y3QiLi4uCisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBNdWx0aXBsZSAibmRpc3RpbmN0IiBr ZXlzIGFyZSBub3QgYWxsb3dlZC4KK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygn W3siYXR0cmlidXRlc19pbnZhbGlkIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IDR9XScsICdwZ19u ZGlzdGluY3QnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ZGV0YWlsICAgICAgICAgICAgICAgICAgICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19u ZGlzdGluY3Q6ICJbeyJhdHRyaWJ1dGVzX2ludmFsaWQiIDogWzIsM10sICJuZGlzdGluY3QiIDog NH1dIiB8IE9ubHkgYWxsb3dlZCBrZXlzIGFyZSAiYXR0cmlidXRlcyIgYW5kICJuZGlzdGluY3Qi LiB8ICAgICAgfCAyMlAwMgorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9y X2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJpbnZhbGlkIiA6IDMsICJuZGlzdGluY3Qi IDogNH1dJywgJ3BnX25kaXN0aW5jdCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgZGV0YWlsICAgICAgICAgICAgICAgICAgICAgICAgfCBoaW50 IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3siYXR0cmlidXRlcyIgOiBb MiwzXSwgImludmFsaWQiIDogMywgIm5kaXN0aW5jdCIgOiA0fV0iIHwgT25seSBhbGxvd2VkIGtl eXMgYXJlICJhdHRyaWJ1dGVzIiBhbmQgIm5kaXN0aW5jdCIuIHwgICAgICB8IDIyUDAyCisoMSBy b3cpCisKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIg OiBbMiwzXSwgImF0dHJpYnV0ZXMiIDogWzEsM10sICJuZGlzdGluY3QiIDogNH1dJywgJ3BnX25k aXN0aW5jdCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVz c2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgZGV0YWlsICAgICAgICAgICAgICAgICAgICB8IGhpbnQgfCBzcWxfZXJyb3JfY29k ZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFs Zm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJhdHRyaWJ1dGVz IiA6IFsxLDNdLCAibmRpc3RpbmN0IiA6IDR9XSIgfCBNdWx0aXBsZSAiYXR0cmlidXRlcyIga2V5 cyBhcmUgbm90IGFsbG93ZWQuIHwgICAgICB8IDIyUDAyCisoMSByb3cpCisKK1NFTEVDVCAqIEZS T00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgIm5kaXN0aW5j dCIgOiA0LCAibmRpc3RpbmN0IiA6IDR9XScsICdwZ19uZGlzdGluY3QnKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICBkZXRhaWwgICAgICAgICAgICAg ICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0r LS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1dGVz IiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IDQsICJuZGlzdGluY3QiIDogNH1dIiB8IE11bHRpcGxl ICJuZGlzdGluY3QiIGtleXMgYXJlIG5vdCBhbGxvd2VkLiB8ICAgICAgfCAyMlAwMgorKDEgcm93 KQorCistLSBNaXNzaW5nIGtleQorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdfV0nOjpw Z19uZGlzdGluY3Q7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1 dGVzIiA6IFsyLDNdfV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXX1d Jzo6cGdfbmRpc3RpbmN0OworICAgICAgICAgICAgICAgXgorREVUQUlMOiAgSXRlbSBtdXN0IGNv bnRhaW4gIm5kaXN0aW5jdCIga2V5LgorU0VMRUNUICdbeyJuZGlzdGluY3QiIDogNH1dJzo6cGdf bmRpc3RpbmN0OworRVJST1I6ICBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3sibmRpc3RpbmN0 IiA6IDR9XSIKK0xJTkUgMTogU0VMRUNUICdbeyJuZGlzdGluY3QiIDogNH1dJzo6cGdfbmRpc3Rp bmN0OworICAgICAgICAgICAgICAgXgorREVUQUlMOiAgSXRlbSBtdXN0IGNvbnRhaW4gImF0dHJp YnV0ZXMiIGtleS4KK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmli dXRlcyIgOiBbMiwzXX1dJywgJ3BnX25kaXN0aW5jdCcpOworICAgICAgICAgICAgICAgICAgICAg IG1lc3NhZ2UgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICBkZXRhaWwgICAg ICAgICAgICAgICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFsZm9ybWVkIHBnX25kaXN0 aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDogWzIsM119XSIgfCBJdGVtIG11c3QgY29udGFpbiAibmRp c3RpbmN0IiBrZXkuIHwgICAgICB8IDIyUDAyCisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gcGdf aW5wdXRfZXJyb3JfaW5mbygnW3sibmRpc3RpbmN0IiA6IDR9XScsICdwZ19uZGlzdGluY3QnKTsK KyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgIGRldGFpbCAgICAgICAgICAgICAgICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxm b3JtZWQgcGdfbmRpc3RpbmN0OiAiW3sibmRpc3RpbmN0IiA6IDR9XSIgfCBJdGVtIG11c3QgY29u dGFpbiAiYXR0cmlidXRlcyIga2V5LiB8ICAgICAgfCAyMlAwMgorKDEgcm93KQorCistLSBWYWxp ZCBrZXlzLCB0b28gbWFueSBhdHRyaWJ1dGVzCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzEs MiwzLDQsNSw2LDcsOCw5XSwgIm5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlzdGluY3Q7CitFUlJP UjogIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1dGVzIiA6IFsxLDIsMyw0LDUs Niw3LDgsOV0sICJuZGlzdGluY3QiIDogNH1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0dHJpYnV0 ZXMiIDogWzEsMiwzLDQsNSw2LDcsOCw5XSwgIm5kaXN0aW5jdCIgOiAuLi4KKyAgICAgICAgICAg ICAgIF4KK0RFVEFJTDogIFRoZSAiYXR0cmlidXRlcyIga2V5IG11c3QgY29udGFpbiBhbiBhcnJh eSBvZiBhdCBsZWFzdCAyIGFuZCBubyBtb3JlIHRoYW4gOCBhdHRyaWJ1dGVzLgorLS0gU3BlY2lh bCBjaGFyYWN0ZXJzCitTRUxFQ1QgJ1t7Ilx1ZDgzZFx1ZGUwNFx1ZDgzZFx1ZGMzNiIgOiBbMSwg Ml0sICJuZGlzdGluY3QiIDogNH1dJzo6cGdfbmRpc3RpbmN0OworRVJST1I6ICBtYWxmb3JtZWQg cGdfbmRpc3RpbmN0OiAiW3siXHVkODNkXHVkZTA0XHVkODNkXHVkYzM2IiA6IFsxLCAyXSwgIm5k aXN0aW5jdCIgOiA0fV0iCitMSU5FIDE6IFNFTEVDVCAnW3siXHVkODNkXHVkZTA0XHVkODNkXHVk YzM2IiA6IFsxLCAyXSwgIm5kaXN0aW5jdCIgOi4uLgorICAgICAgICAgICAgICAgXgorREVUQUlM OiAgT25seSBhbGxvd2VkIGtleXMgYXJlICJhdHRyaWJ1dGVzIiBhbmQgIm5kaXN0aW5jdCIuCitT RUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzEsIDJdLCAiXHVkODNkXHVkZTA0XHVkODNkXHVkYzM2 IiA6IDR9XSc6OnBnX25kaXN0aW5jdDsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDog Ilt7ImF0dHJpYnV0ZXMiIDogWzEsIDJdLCAiXHVkODNkXHVkZTA0XHVkODNkXHVkYzM2IiA6IDR9 XSIKK0xJTkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsxLCAyXSwgIlx1ZDgzZFx1ZGUw NFx1ZDgzZFx1ZGMzNiIgLi4uCisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBPbmx5IGFsbG93 ZWQga2V5cyBhcmUgImF0dHJpYnV0ZXMiIGFuZCAibmRpc3RpbmN0Ii4KK1NFTEVDVCAnW3siYXR0 cmlidXRlcyIgOiBbMSwgMl0sICJuZGlzdGluY3QiIDogIlx1ZDgzZFx1ZGUwNFx1ZDgzZFx1ZGMz NiJ9XSc6OnBnX25kaXN0aW5jdDsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7 ImF0dHJpYnV0ZXMiIDogWzEsIDJdLCAibmRpc3RpbmN0IiA6ICJcdWQ4M2RcdWRlMDRcdWQ4M2Rc dWRjMzYifV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMSwgMl0sICJuZGlz dGluY3QiIDogIlx1ZDgzZFx1ZGUwNC4uLgorICAgICAgICAgICAgICAgXgorREVUQUlMOiAgSW52 YWxpZCAibmRpc3RpbmN0IiB2YWx1ZS4KK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbIlx1ZDgz ZFx1ZGUwNFx1ZDgzZFx1ZGMzNiIsIDJdLCAibmRpc3RpbmN0IiA6IDF9XSc6OnBnX25kaXN0aW5j dDsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDogWyJc dWQ4M2RcdWRlMDRcdWQ4M2RcdWRjMzYiLCAyXSwgIm5kaXN0aW5jdCIgOiAxfV0iCitMSU5FIDE6 IFNFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbIlx1ZDgzZFx1ZGUwNFx1ZDgzZFx1ZGMzNiIsIDJd LCAibi4uLgorICAgICAgICAgICAgICAgXgorREVUQUlMOiAgSW52YWxpZCAiYXR0cmlidXRlcyIg dmFsdWUuCistLSBWYWxpZCBrZXlzLCBpbnZhbGlkIHZhbHVlcworU0VMRUNUICdbeyJhdHRyaWJ1 dGVzIiA6IG51bGwsICJuZGlzdGluY3QiIDogNH1dJzo6cGdfbmRpc3RpbmN0OworRVJST1I6ICBt YWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3siYXR0cmlidXRlcyIgOiBudWxsLCAibmRpc3RpbmN0 IiA6IDR9XSIKK0xJTkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IG51bGwsICJuZGlzdGlu Y3QiIDogNH1dJzo6cGdfbmRpc3RpLi4uCisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBVbmV4 cGVjdGVkIHNjYWxhci4KK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbXSwgIm5kaXN0aW5jdCIg OiAxfV0nOjpwZ19uZGlzdGluY3Q7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJb eyJhdHRyaWJ1dGVzIiA6IFtdLCAibmRpc3RpbmN0IiA6IDF9XSIKK0xJTkUgMTogU0VMRUNUICdb eyJhdHRyaWJ1dGVzIiA6IFtdLCAibmRpc3RpbmN0IiA6IDF9XSc6OnBnX25kaXN0aW5jLi4uCisg ICAgICAgICAgICAgICBeCitERVRBSUw6ICBUaGUgImF0dHJpYnV0ZXMiIGtleSBtdXN0IGJlIGFu IG5vbi1lbXB0eSBhcnJheS4KK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMl0sICJuZGlzdGlu Y3QiIDogNH1dJzo6cGdfbmRpc3RpbmN0OworRVJST1I6ICBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0 OiAiW3siYXR0cmlidXRlcyIgOiBbMl0sICJuZGlzdGluY3QiIDogNH1dIgorTElORSAxOiBTRUxF Q1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzJdLCAibmRpc3RpbmN0IiA6IDR9XSc6OnBnX25kaXN0aW4u Li4KKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIFRoZSAiYXR0cmlidXRlcyIga2V5IG11c3Qg Y29udGFpbiBhbiBhcnJheSBvZiBhdCBsZWFzdCAyIGFuZCBubyBtb3JlIHRoYW4gOCBhdHRyaWJ1 dGVzLgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLG51bGxdLCAibmRpc3RpbmN0IiA6IDR9 XSc6OnBnX25kaXN0aW5jdDsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0 dHJpYnV0ZXMiIDogWzIsbnVsbF0sICJuZGlzdGluY3QiIDogNH1dIgorTElORSAxOiBTRUxFQ1Qg J1t7ImF0dHJpYnV0ZXMiIDogWzIsbnVsbF0sICJuZGlzdGluY3QiIDogNH1dJzo6cGdfbmQuLi4K KyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIEF0dHJpYnV0ZSBudW1iZXIgYXJyYXkgY2Fubm90 IGJlIG51bGwuCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDog bnVsbH1dJzo6cGdfbmRpc3RpbmN0OworRVJST1I6ICBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAi W3siYXR0cmlidXRlcyIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiBudWxsfV0iCitMSU5FIDE6IFNF TEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiBudWxsfV0nOjpwZ19u ZC4uLgorICAgICAgICAgICAgICAgXgorREVUQUlMOiAgSW52YWxpZCAibmRpc3RpbmN0IiB2YWx1 ZS4KK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwiYSJdLCAibmRpc3RpbmN0IiA6IDR9XSc6 OnBnX25kaXN0aW5jdDsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJp YnV0ZXMiIDogWzIsImEiXSwgIm5kaXN0aW5jdCIgOiA0fV0iCitMSU5FIDE6IFNFTEVDVCAnW3si YXR0cmlidXRlcyIgOiBbMiwiYSJdLCAibmRpc3RpbmN0IiA6IDR9XSc6OnBnX25kaS4uLgorICAg ICAgICAgICAgICAgXgorREVUQUlMOiAgSW52YWxpZCAiYXR0cmlidXRlcyIgdmFsdWUuCitTRUxF Q1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogImEifV0nOjpwZ19uZGlz dGluY3Q7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1dGVzIiA6 IFsyLDNdLCAibmRpc3RpbmN0IiA6ICJhIn1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0dHJpYnV0 ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogImEifV0nOjpwZ19uZGkuLi4KKyAgICAgICAgICAg ICAgIF4KK0RFVEFJTDogIEludmFsaWQgIm5kaXN0aW5jdCIgdmFsdWUuCitTRUxFQ1QgJ1t7ImF0 dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogW119XSc6OnBnX25kaXN0aW5jdDsKK0VS Uk9SOiAgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJu ZGlzdGluY3QiIDogW119XSIKK0xJTkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNd LCAibmRpc3RpbmN0IiA6IFtdfV0nOjpwZ19uZGlzLi4uCisgICAgICAgICAgICAgICBeCitERVRB SUw6ICBBcnJheSBmb3VuZCBpbiB1bmV4cGVjdGVkIHBsYWNlLgorU0VMRUNUICdbeyJhdHRyaWJ1 dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IFtudWxsXX1dJzo6cGdfbmRpc3RpbmN0OworRVJS T1I6ICBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgIm5k aXN0aW5jdCIgOiBbbnVsbF19XSIKK0xJTkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsy LDNdLCAibmRpc3RpbmN0IiA6IFtudWxsXX1dJzo6cGdfLi4uCisgICAgICAgICAgICAgICBeCitE RVRBSUw6ICBBcnJheSBmb3VuZCBpbiB1bmV4cGVjdGVkIHBsYWNlLgorU0VMRUNUICdbeyJhdHRy aWJ1dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IFsxLG51bGxdfV0nOjpwZ19uZGlzdGluY3Q7 CitFUlJPUjogIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNd LCAibmRpc3RpbmN0IiA6IFsxLG51bGxdfV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRl cyIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiBbMSxudWxsXX1dJzo6cC4uLgorICAgICAgICAgICAg ICAgXgorREVUQUlMOiAgQXJyYXkgZm91bmQgaW4gdW5leHBlY3RlZCBwbGFjZS4KK1NFTEVDVCAn W3siYXR0cmlidXRlcyIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiB7ImEiOiAxfX1dJzo6cGdfbmRp c3RpbmN0OworRVJST1I6ICBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3siYXR0cmlidXRlcyIg OiBbMiwzXSwgIm5kaXN0aW5jdCIgOiB7ImEiOiAxfX1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0 dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogeyJhIjogMX19XSc6OnAuLi4KKyAgICAg ICAgICAgICAgIF4KK0RFVEFJTDogIFZhbHVlIG9mICJuZGlzdGluY3QiIG11c3QgYmUgYW4gaW50 ZWdlci4KK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMCwxXSwgIm5kaXN0aW5jdCIgOiAxfV0n OjpwZ19uZGlzdGluY3Q7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRy aWJ1dGVzIiA6IFswLDFdLCAibmRpc3RpbmN0IiA6IDF9XSIKK0xJTkUgMTogU0VMRUNUICdbeyJh dHRyaWJ1dGVzIiA6IFswLDFdLCAibmRpc3RpbmN0IiA6IDF9XSc6OnBnX25kaXN0Li4uCisgICAg ICAgICAgICAgICBeCitERVRBSUw6ICBJbnZhbGlkICJhdHRyaWJ1dGVzIiBlbGVtZW50OiAwLgor U0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFstNywtOV0sICJuZGlzdGluY3QiIDogMX1dJzo6cGdf bmRpc3RpbmN0OworRVJST1I6ICBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3siYXR0cmlidXRl cyIgOiBbLTcsLTldLCAibmRpc3RpbmN0IiA6IDF9XSIKK0xJTkUgMTogU0VMRUNUICdbeyJhdHRy aWJ1dGVzIiA6IFstNywtOV0sICJuZGlzdGluY3QiIDogMX1dJzo6cGdfbmRpLi4uCisgICAgICAg ICAgICAgICBeCitERVRBSUw6ICBJbnZhbGlkICJhdHRyaWJ1dGVzIiBlbGVtZW50OiAtOS4KK1NF TEVDVCAnW3siYXR0cmlidXRlcyIgOiAxLCAibmRpc3RpbmN0IiA6IDR9XSc6OnBnX25kaXN0aW5j dDsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDogMSwg Im5kaXN0aW5jdCIgOiA0fV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRlcyIgOiAxLCAi bmRpc3RpbmN0IiA6IDR9XSc6OnBnX25kaXN0aW5jdC4uLgorICAgICAgICAgICAgICAgXgorREVU QUlMOiAgVW5leHBlY3RlZCBzY2FsYXIuCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogImEiLCAi bmRpc3RpbmN0IiA6IDR9XSc6OnBnX25kaXN0aW5jdDsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX25k aXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDogImEiLCAibmRpc3RpbmN0IiA6IDR9XSIKK0xJTkUg MTogU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6ICJhIiwgIm5kaXN0aW5jdCIgOiA0fV0nOjpwZ19u ZGlzdGluLi4uCisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBVbmV4cGVjdGVkIHNjYWxhci4K K1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiB7ImEiOiAxfSwgIm5kaXN0aW5jdCIgOiAxfV0nOjpw Z19uZGlzdGluY3Q7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1 dGVzIiA6IHsiYSI6IDF9LCAibmRpc3RpbmN0IiA6IDF9XSIKK0xJTkUgMTogU0VMRUNUICdbeyJh dHRyaWJ1dGVzIiA6IHsiYSI6IDF9LCAibmRpc3RpbmN0IiA6IDF9XSc6OnBnX25kLi4uCisgICAg ICAgICAgICAgICBeCitERVRBSUw6ICBWYWx1ZSBvZiAiYXR0cmlidXRlcyIgbXVzdCBiZSBhbiBh cnJheSBvZiBhdHRyaWJ1dGUgbnVtYmVycy4KK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMSwg eyJhIjogMX1dLCAibmRpc3RpbmN0IiA6IDF9XSc6OnBnX25kaXN0aW5jdDsKK0VSUk9SOiAgbWFs Zm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDogWzEsIHsiYSI6IDF9XSwgIm5k aXN0aW5jdCIgOiAxfV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMSwgeyJh IjogMX1dLCAibmRpc3RpbmN0IiA6IDF9XSc6Oi4uLgorICAgICAgICAgICAgICAgXgorREVUQUlM OiAgQXR0cmlidXRlIGxpc3RzIGNhbiBvbmx5IGNvbnRhaW4gYXR0cmlidXRlIG51bWJlcnMuCitT RUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogbnVsbCwg Im5kaXN0aW5jdCIgOiA0fV0nLCAncGdfbmRpc3RpbmN0Jyk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ZGV0YWlsICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfbmRp c3RpbmN0OiAiW3siYXR0cmlidXRlcyIgOiBudWxsLCAibmRpc3RpbmN0IiA6IDR9XSIgfCBVbmV4 cGVjdGVkIHNjYWxhci4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBw Z19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFtdLCAibmRpc3RpbmN0IiA6IDF9 XScsICdwZ19uZGlzdGluY3QnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2Fn ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgZGV0 YWlsICAgICAgICAgICAgICAgICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJp YnV0ZXMiIDogW10sICJuZGlzdGluY3QiIDogMX1dIiB8IFRoZSAiYXR0cmlidXRlcyIga2V5IG11 c3QgYmUgYW4gbm9uLWVtcHR5IGFycmF5LiB8ICAgICAgfCAyMlAwMgorKDEgcm93KQorCitTRUxF Q1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzJdLCAibmRp c3RpbmN0IiA6IDR9XScsICdwZ19uZGlzdGluY3QnKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1lc3NhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0K KyBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3siYXR0cmlidXRlcyIgOiBbMl0sICJuZGlzdGlu Y3QiIDogNH1dIiB8IFRoZSAiYXR0cmlidXRlcyIga2V5IG11c3QgY29udGFpbiBhbiBhcnJheSBv ZiBhdCBsZWFzdCAyIGFuZCBubyBtb3JlIHRoYW4gOCBhdHRyaWJ1dGVzLiB8ICAgICAgfCAyMlAw MgorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJp YnV0ZXMiIDogWzIsbnVsbF0sICJuZGlzdGluY3QiIDogNH1dJywgJ3BnX25kaXN0aW5jdCcpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgZGV0YWlsICAgICAgICAgICAgICAgICB8 IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFsZm9y bWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDogWzIsbnVsbF0sICJuZGlzdGluY3Qi IDogNH1dIiB8IEF0dHJpYnV0ZSBudW1iZXIgYXJyYXkgY2Fubm90IGJlIG51bGwuIHwgICAgICB8 IDIyUDAyCisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3si YXR0cmlidXRlcyIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiBudWxsfV0nLCAncGdfbmRpc3RpbmN0 Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICBkZXRhaWwgICAgICAgICAgIHwgaGludCB8 IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAi W3siYXR0cmlidXRlcyIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiBudWxsfV0iIHwgSW52YWxpZCAi bmRpc3RpbmN0IiB2YWx1ZS4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykKKworU0VMRUNUICogRlJP TSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLCJhIl0sICJuZGlzdGlu Y3QiIDogNH1dJywgJ3BnX25kaXN0aW5jdCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICBk ZXRhaWwgICAgICAgICAgICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisg bWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDogWzIsImEiXSwgIm5kaXN0 aW5jdCIgOiA0fV0iIHwgSW52YWxpZCAiYXR0cmlidXRlcyIgdmFsdWUuIHwgICAgICB8IDIyUDAy CisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmli dXRlcyIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiAiYSJ9XScsICdwZ19uZGlzdGluY3QnKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgZGV0YWlsICAgICAgICAgICB8IGhpbnQgfCBzcWxfZXJy b3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3siYXR0cmli dXRlcyIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiAiYSJ9XSIgfCBJbnZhbGlkICJuZGlzdGluY3Qi IHZhbHVlLiB8ICAgICAgfCAyMlAwMgorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0 X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogW119XScs ICdwZ19uZGlzdGluY3QnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdl ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICBkZXRhaWwgICAg ICAgICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFs Zm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3Qi IDogW119XSIgfCBBcnJheSBmb3VuZCBpbiB1bmV4cGVjdGVkIHBsYWNlLiB8ICAgICAgfCAyMlAw MgorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJp YnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogW251bGxdfV0nLCAncGdfbmRpc3RpbmN0Jyk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIGRldGFpbCAgICAgICAgICAgICAgfCBo aW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFsZm9ybWVkIHBn X25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogW251bGxd fV0iIHwgQXJyYXkgZm91bmQgaW4gdW5leHBlY3RlZCBwbGFjZS4gfCAgICAgIHwgMjJQMDIKKygx IHJvdykKKworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVz IiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IFsxLG51bGxdfV0nLCAncGdfbmRpc3RpbmN0Jyk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgZGV0YWlsICAgICAgICAgICAgICB8IGhp bnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBw Z19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IFsxLG51 bGxdfV0iIHwgQXJyYXkgZm91bmQgaW4gdW5leHBlY3RlZCBwbGFjZS4gfCAgICAgIHwgMjJQMDIK KygxIHJvdykKKworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1 dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IHsiYSI6IDF9fV0nLCAncGdfbmRpc3RpbmN0Jyk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIGRldGFpbCAgICAgICAgICAg ICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0KKyBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3siYXR0cmlidXRlcyIgOiBbMiwzXSwg Im5kaXN0aW5jdCIgOiB7ImEiOiAxfX1dIiB8IFZhbHVlIG9mICJuZGlzdGluY3QiIG11c3QgYmUg YW4gaW50ZWdlci4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBwZ19p bnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IDEsICJuZGlzdGluY3QiIDogNH1dJywg J3BnX25kaXN0aW5jdCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIGRldGFpbCAgICAgICB8IGhpbnQgfCBz cWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0t LS0tLS0tLS0tLS0tCisgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDog MSwgIm5kaXN0aW5jdCIgOiA0fV0iIHwgVW5leHBlY3RlZCBzY2FsYXIuIHwgICAgICB8IDIyUDAy CisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmli dXRlcyIgOiAiYSIsICJuZGlzdGluY3QiIDogNH1dJywgJ3BnX25kaXN0aW5jdCcpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgZGV0YWlsICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZv cm1lZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1dGVzIiA6ICJhIiwgIm5kaXN0aW5jdCIgOiA0 fV0iIHwgVW5leHBlY3RlZCBzY2FsYXIuIHwgICAgICB8IDIyUDAyCisoMSByb3cpCisKK1NFTEVD VCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiB7ImEiOiAxfSwg Im5kaXN0aW5jdCIgOiAxfV0nLCAncGdfbmRpc3RpbmN0Jyk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG1lc3NhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbCAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0r LS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1dGVz IiA6IHsiYSI6IDF9LCAibmRpc3RpbmN0IiA6IDF9XSIgfCBWYWx1ZSBvZiAiYXR0cmlidXRlcyIg bXVzdCBiZSBhbiBhcnJheSBvZiBhdHRyaWJ1dGUgbnVtYmVycy4gfCAgICAgIHwgMjJQMDIKKygx IHJvdykKKworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVz IiA6IFsxLCB7ImEiOiAxfV0sICJuZGlzdGluY3QiIDogMX1dJywgJ3BnX25kaXN0aW5jdCcpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWwgICAgICAg ICAgICAgICAgICAgICAgICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7 ImF0dHJpYnV0ZXMiIDogWzEsIHsiYSI6IDF9XSwgIm5kaXN0aW5jdCIgOiAxfV0iIHwgQXR0cmli dXRlIGxpc3RzIGNhbiBvbmx5IGNvbnRhaW4gYXR0cmlidXRlIG51bWJlcnMuIHwgICAgICB8IDIy UDAyCisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0 cmlidXRlcyIgOiBbLTcsLTldLCAibmRpc3RpbmN0IiA6IDF9XScsICdwZ19uZGlzdGluY3QnKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgZGV0YWlsICAgICAgICAgICAgICAgfCBoaW50 IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19uZGlz dGluY3Q6ICJbeyJhdHRyaWJ1dGVzIiA6IFstNywtOV0sICJuZGlzdGluY3QiIDogMX1dIiB8IElu dmFsaWQgImF0dHJpYnV0ZXMiIGVsZW1lbnQ6IC05LiB8ICAgICAgfCAyMlAwMgorKDEgcm93KQor CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogMSwg Im5kaXN0aW5jdCIgOiA0fV0nLCAncGdfbmRpc3RpbmN0Jyk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG1lc3NhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgZGV0 YWlsICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0 OiAiW3siYXR0cmlidXRlcyIgOiAxLCAibmRpc3RpbmN0IiA6IDR9XSIgfCBVbmV4cGVjdGVkIHNj YWxhci4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykKKworLS0gRHVwbGljYXRlZCBhdHRyaWJ1dGVz CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsMl0sICJuZGlzdGluY3QiIDogNH1dJzo6cGdf bmRpc3RpbmN0OworRVJST1I6ICBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3siYXR0cmlidXRl cyIgOiBbMiwyXSwgIm5kaXN0aW5jdCIgOiA0fV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmli dXRlcyIgOiBbMiwyXSwgIm5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlzdC4uLgorICAgICAgICAg ICAgICAgXgorREVUQUlMOiAgSW52YWxpZCAiYXR0cmlidXRlcyIgZWxlbWVudDogMiBjYW5ub3Qg Zm9sbG93IDIuCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0 ZXMiIDogWzIsMl0sICJuZGlzdGluY3QiIDogNH1dJywgJ3BnX25kaXN0aW5jdCcpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBkZXRhaWwgICAgICAgICAgICAgICAgICAgICAg fCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0K KyBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3siYXR0cmlidXRlcyIgOiBbMiwyXSwgIm5kaXN0 aW5jdCIgOiA0fV0iIHwgSW52YWxpZCAiYXR0cmlidXRlcyIgZWxlbWVudDogMiBjYW5ub3QgZm9s bG93IDIuIHwgICAgICB8IDIyUDAyCisoMSByb3cpCisKKy0tIER1cGxpY2F0ZWQgYXR0cmlidXRl IGxpc3RzLgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IDR9 LAorICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IDR9XSc6OnBn X25kaXN0aW5jdDsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0 ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogNH0sCisgICAgICAgICB7ImF0dHJpYnV0ZXMiIDog WzIsM10sICJuZGlzdGluY3QiIDogNH1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMi IDogWzIsM10sICJuZGlzdGluY3QiIDogNH0sCisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBE dXBsaWNhdGVkICJhdHRyaWJ1dGVzIiBhcnJheSBmb3VuZDogWzIsIDNdCitTRUxFQ1QgKiBGUk9N IHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3Qi IDogNH0sCisgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogNH1d JywgJ3BnX25kaXN0aW5jdCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2Fn ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIGRldGFp bCAgICAgICAgICAgICAgICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3siYXR0cmlidXRlcyIg OiBbMiwzXSwgIm5kaXN0aW5jdCIgOiA0fSwrfCBEdXBsaWNhdGVkICJhdHRyaWJ1dGVzIiBhcnJh eSBmb3VuZDogWzIsIDNdIHwgICAgICB8IDIyUDAyCisgICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6 IFsyLDNdLCAibmRpc3RpbmN0IiA6IDR9XSIgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgfCAKKygxIHJvdykKKworLS0g UGFydGlhbGx5LWNvdmVyZWQgYXR0cmlidXRlIGxpc3RzLgorU0VMRUNUICdbeyJhdHRyaWJ1dGVz IiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IDR9LAorICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsy LC0xXSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzLC0x XSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMSwzLC0xLC0y XSwgIm5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlzdGluY3Q7CitFUlJPUjogIG1hbGZvcm1lZCBw Z19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IDR9LAor ICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLC0xXSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAgICAg ICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzLC0xXSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAgICAgICAg IHsiYXR0cmlidXRlcyIgOiBbMSwzLC0xLC0yXSwgIm5kaXN0aW5jdCIgOiA0fV0iCitMSU5FIDE6 IFNFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAgICAg ICAgICAgICAgIF4KK0RFVEFJTDogICJhdHRyaWJ1dGVzIiBhcnJheTogWzIsIDNdIG11c3QgYmUg YSBzdWJzZXQgb2YgYXJyYXk6IFsxLCAzLCAtMSwgLTJdCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0 X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogNH0sCisg ICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsLTFdLCAibmRpc3RpbmN0IiA6IDR9LAorICAgICAg ICAgeyJhdHRyaWJ1dGVzIiA6IFsyLDMsLTFdLCAibmRpc3RpbmN0IiA6IDR9LAorICAgICAgICAg eyJhdHRyaWJ1dGVzIiA6IFsxLDMsLTEsLTJdLCAibmRpc3RpbmN0IiA6IDR9XScsICdwZ19uZGlz dGluY3QnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0 YWlsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGhpbnQgfCBzcWxfZXJyb3JfY29k ZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBt YWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgIm5kaXN0aW5j dCIgOiA0fSwrfCAiYXR0cmlidXRlcyIgYXJyYXk6IFsyLCAzXSBtdXN0IGJlIGEgc3Vic2V0IG9m IGFycmF5OiBbMSwgMywgLTEsIC0yXSB8ICAgICAgfCAyMlAwMgorICAgICAgICAgIHsiYXR0cmli dXRlcyIgOiBbMiwtMV0sICJuZGlzdGluY3QiIDogNH0sICAgICAgICAgICAgICAgICt8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICB8IAorICAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzLC0xXSwgIm5k aXN0aW5jdCIgOiA0fSwgICAgICAgICAgICAgICt8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICB8IAorICAg ICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMSwzLC0xLC0yXSwgIm5kaXN0aW5jdCIgOiA0fV0iICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICB8IAorKDEgcm93KQorCistLSBWYWxpZCBpbnB1 dHMKKy0tIFR3byBhdHRyaWJ1dGVzLgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsxLDJdLCAi bmRpc3RpbmN0IiA6IDR9XSc6OnBnX25kaXN0aW5jdDsKKyAgICAgICAgICAgICAgIHBnX25kaXN0 aW5jdCAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgW3siYXR0cmlidXRlcyI6IFsxLCAyXSwgIm5kaXN0aW5jdCI6IDR9XQorKDEgcm93 KQorCistLSBUaHJlZSBhdHRyaWJ1dGVzLgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLC0x XSwgIm5kaXN0aW5jdCIgOiAxfSwKKyAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMywtMV0sICJu ZGlzdGluY3QiIDogMn0sCisJIHsiYXR0cmlidXRlcyIgOiBbMiwzLC0xXSwgIm5kaXN0aW5jdCIg OiAzfV0nOjpwZ19uZGlzdGluY3Q7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGdfbmRpc3RpbmN0ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBb eyJhdHRyaWJ1dGVzIjogWzIsIC0xXSwgIm5kaXN0aW5jdCI6IDF9LCB7ImF0dHJpYnV0ZXMiOiBb MywgLTFdLCAibmRpc3RpbmN0IjogMn0sIHsiYXR0cmlidXRlcyI6IFsyLCAzLCAtMV0sICJuZGlz dGluY3QiOiAzfV0KKygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJh bGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXgg ZjU2NDgyZmI5ZjEuLmYzZjBiNWYyZjMxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3Bh cmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUK QEAgLTI4LDcgKzI4LDcgQEAgdGVzdDogc3RyaW5ncyBtZDUgbnVtZXJvbG9neSBwb2ludCBsc2Vn IGxpbmUgYm94IHBhdGggcG9seWdvbiBjaXJjbGUgZGF0ZSB0aW1lIHQKICMgZ2VvbWV0cnkgZGVw ZW5kcyBvbiBwb2ludCwgbHNlZywgbGluZSwgYm94LCBwYXRoLCBwb2x5Z29uLCBjaXJjbGUKICMg aG9yb2xvZ3kgZGVwZW5kcyBvbiBkYXRlLCB0aW1lLCB0aW1ldHosIHRpbWVzdGFtcCwgdGltZXN0 YW1wdHosIGludGVydmFsCiAjIC0tLS0tLS0tLS0KLXRlc3Q6IGdlb21ldHJ5IGhvcm9sb2d5IHRz dHlwZXMgcmVnZXggdHlwZV9zYW5pdHkgb3ByX3Nhbml0eSBtaXNjX3Nhbml0eSBjb21tZW50cyBl eHByZXNzaW9ucyB1bmljb2RlIHhpZCBtdmNjIGRhdGFiYXNlIHN0YXRzX2ltcG9ydAordGVzdDog Z2VvbWV0cnkgaG9yb2xvZ3kgdHN0eXBlcyByZWdleCB0eXBlX3Nhbml0eSBvcHJfc2FuaXR5IG1p c2Nfc2FuaXR5IGNvbW1lbnRzIGV4cHJlc3Npb25zIHVuaWNvZGUgeGlkIG12Y2MgZGF0YWJhc2Ug c3RhdHNfaW1wb3J0IHBnX25kaXN0aW5jdAogCiAjIC0tLS0tLS0tLS0KICMgTG9hZCBodWdlIGFt b3VudHMgb2YgZGF0YQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGdfbmRpc3Rp bmN0LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BnX25kaXN0aW5jdC5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjEwNGExN2RhOTQ4Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGdfbmRpc3RpbmN0LnNxbApAQCAtMCwwICsxLDk4 IEBACistLSBUZXN0cyBmb3IgdHlwZSBwZ19uZGlzdGluY3QKKworLS0gSW52YWxpZCBpbnB1dHMK K1NFTEVDVCAnbnVsbCc6OnBnX25kaXN0aW5jdDsKK1NFTEVDVCAneyJhIjogMX0nOjpwZ19uZGlz dGluY3Q7CitTRUxFQ1QgJ1tdJzo6cGdfbmRpc3RpbmN0OworU0VMRUNUICd7fSc6OnBnX25kaXN0 aW5jdDsKK1NFTEVDVCAnW251bGxdJzo6cGdfbmRpc3RpbmN0OworU0VMRUNUICogRlJPTSBwZ19p bnB1dF9lcnJvcl9pbmZvKCdudWxsJywgJ3BnX25kaXN0aW5jdCcpOworU0VMRUNUICogRlJPTSBw Z19pbnB1dF9lcnJvcl9pbmZvKCd7ImEiOiAxfScsICdwZ19uZGlzdGluY3QnKTsKK1NFTEVDVCAq IEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW10nLCAncGdfbmRpc3RpbmN0Jyk7CitTRUxFQ1Qg KiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ3t9JywgJ3BnX25kaXN0aW5jdCcpOworU0VMRUNU ICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbbnVsbF0nLCAncGdfbmRpc3RpbmN0Jyk7Cist LSBJbnZhbGlkIGtleXMKK1NFTEVDVCAnW3siYXR0cmlidXRlc19pbnZhbGlkIiA6IFsyLDNdLCAi bmRpc3RpbmN0IiA6IDR9XSc6OnBnX25kaXN0aW5jdDsKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIg OiBbMiwzXSwgImludmFsaWQiIDogMywgIm5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlzdGluY3Q7 CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJhdHRyaWJ1dGVzIiA6IFsxLDNdLCAi bmRpc3RpbmN0IiA6IDR9XSc6OnBnX25kaXN0aW5jdDsKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIg OiBbMiwzXSwgIm5kaXN0aW5jdCIgOiA0LCAibmRpc3RpbmN0IiA6IDR9XSc6OnBnX25kaXN0aW5j dDsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlc19pbnZh bGlkIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IDR9XScsICdwZ19uZGlzdGluY3QnKTsKK1NFTEVD VCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImlu dmFsaWQiIDogMywgIm5kaXN0aW5jdCIgOiA0fV0nLCAncGdfbmRpc3RpbmN0Jyk7CitTRUxFQ1Qg KiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJhdHRy aWJ1dGVzIiA6IFsxLDNdLCAibmRpc3RpbmN0IiA6IDR9XScsICdwZ19uZGlzdGluY3QnKTsKK1NF TEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwg Im5kaXN0aW5jdCIgOiA0LCAibmRpc3RpbmN0IiA6IDR9XScsICdwZ19uZGlzdGluY3QnKTsKKwor LS0gTWlzc2luZyBrZXkKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXX1dJzo6cGdfbmRp c3RpbmN0OworU0VMRUNUICdbeyJuZGlzdGluY3QiIDogNH1dJzo6cGdfbmRpc3RpbmN0OworU0VM RUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdfV0n LCAncGdfbmRpc3RpbmN0Jyk7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7 Im5kaXN0aW5jdCIgOiA0fV0nLCAncGdfbmRpc3RpbmN0Jyk7CisKKy0tIFZhbGlkIGtleXMsIHRv byBtYW55IGF0dHJpYnV0ZXMKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMSwyLDMsNCw1LDYs Nyw4LDldLCAibmRpc3RpbmN0IiA6IDR9XSc6OnBnX25kaXN0aW5jdDsKKworLS0gU3BlY2lhbCBj aGFyYWN0ZXJzCitTRUxFQ1QgJ1t7Ilx1ZDgzZFx1ZGUwNFx1ZDgzZFx1ZGMzNiIgOiBbMSwgMl0s ICJuZGlzdGluY3QiIDogNH1dJzo6cGdfbmRpc3RpbmN0OworU0VMRUNUICdbeyJhdHRyaWJ1dGVz IiA6IFsxLCAyXSwgIlx1ZDgzZFx1ZGUwNFx1ZDgzZFx1ZGMzNiIgOiA0fV0nOjpwZ19uZGlzdGlu Y3Q7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzEsIDJdLCAibmRpc3RpbmN0IiA6ICJcdWQ4 M2RcdWRlMDRcdWQ4M2RcdWRjMzYifV0nOjpwZ19uZGlzdGluY3Q7CitTRUxFQ1QgJ1t7ImF0dHJp YnV0ZXMiIDogWyJcdWQ4M2RcdWRlMDRcdWQ4M2RcdWRjMzYiLCAyXSwgIm5kaXN0aW5jdCIgOiAx fV0nOjpwZ19uZGlzdGluY3Q7CisKKy0tIFZhbGlkIGtleXMsIGludmFsaWQgdmFsdWVzCitTRUxF Q1QgJ1t7ImF0dHJpYnV0ZXMiIDogbnVsbCwgIm5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlzdGlu Y3Q7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogW10sICJuZGlzdGluY3QiIDogMX1dJzo6cGdf bmRpc3RpbmN0OworU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyXSwgIm5kaXN0aW5jdCIgOiA0 fV0nOjpwZ19uZGlzdGluY3Q7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsbnVsbF0sICJu ZGlzdGluY3QiIDogNH1dJzo6cGdfbmRpc3RpbmN0OworU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6 IFsyLDNdLCAibmRpc3RpbmN0IiA6IG51bGx9XSc6OnBnX25kaXN0aW5jdDsKK1NFTEVDVCAnW3si YXR0cmlidXRlcyIgOiBbMiwiYSJdLCAibmRpc3RpbmN0IiA6IDR9XSc6OnBnX25kaXN0aW5jdDsK K1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiAiYSJ9XSc6OnBn X25kaXN0aW5jdDsKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgIm5kaXN0aW5jdCIg OiBbXX1dJzo6cGdfbmRpc3RpbmN0OworU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAi bmRpc3RpbmN0IiA6IFtudWxsXX1dJzo6cGdfbmRpc3RpbmN0OworU0VMRUNUICdbeyJhdHRyaWJ1 dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IFsxLG51bGxdfV0nOjpwZ19uZGlzdGluY3Q7CitT RUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogeyJhIjogMX19XSc6 OnBnX25kaXN0aW5jdDsKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMCwxXSwgIm5kaXN0aW5j dCIgOiAxfV0nOjpwZ19uZGlzdGluY3Q7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWy03LC05 XSwgIm5kaXN0aW5jdCIgOiAxfV0nOjpwZ19uZGlzdGluY3Q7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0 ZXMiIDogMSwgIm5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlzdGluY3Q7CitTRUxFQ1QgJ1t7ImF0 dHJpYnV0ZXMiIDogImEiLCAibmRpc3RpbmN0IiA6IDR9XSc6OnBnX25kaXN0aW5jdDsKK1NFTEVD VCAnW3siYXR0cmlidXRlcyIgOiB7ImEiOiAxfSwgIm5kaXN0aW5jdCIgOiAxfV0nOjpwZ19uZGlz dGluY3Q7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzEsIHsiYSI6IDF9XSwgIm5kaXN0aW5j dCIgOiAxfV0nOjpwZ19uZGlzdGluY3Q7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2lu Zm8oJ1t7ImF0dHJpYnV0ZXMiIDogbnVsbCwgIm5kaXN0aW5jdCIgOiA0fV0nLCAncGdfbmRpc3Rp bmN0Jyk7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMi IDogW10sICJuZGlzdGluY3QiIDogMX1dJywgJ3BnX25kaXN0aW5jdCcpOworU0VMRUNUICogRlJP TSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyXSwgIm5kaXN0aW5jdCIg OiA0fV0nLCAncGdfbmRpc3RpbmN0Jyk7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2lu Zm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsbnVsbF0sICJuZGlzdGluY3QiIDogNH1dJywgJ3BnX25k aXN0aW5jdCcpOworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1 dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IG51bGx9XScsICdwZ19uZGlzdGluY3QnKTsKK1NF TEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBbMiwiYSJd LCAibmRpc3RpbmN0IiA6IDR9XScsICdwZ19uZGlzdGluY3QnKTsKK1NFTEVDVCAqIEZST00gcGdf aW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiAi YSJ9XScsICdwZ19uZGlzdGluY3QnKTsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5m bygnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiBbXX1dJywgJ3BnX25kaXN0 aW5jdCcpOworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVz IiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IFtudWxsXX1dJywgJ3BnX25kaXN0aW5jdCcpOworU0VM RUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAi bmRpc3RpbmN0IiA6IFsxLG51bGxdfV0nLCAncGdfbmRpc3RpbmN0Jyk7CitTRUxFQ1QgKiBGUk9N IHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3Qi IDogeyJhIjogMX19XScsICdwZ19uZGlzdGluY3QnKTsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRf ZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiAxLCAibmRpc3RpbmN0IiA6IDR9XScsICdwZ19u ZGlzdGluY3QnKTsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmli dXRlcyIgOiAiYSIsICJuZGlzdGluY3QiIDogNH1dJywgJ3BnX25kaXN0aW5jdCcpOworU0VMRUNU ICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IHsiYSI6IDF9LCAi bmRpc3RpbmN0IiA6IDF9XScsICdwZ19uZGlzdGluY3QnKTsKK1NFTEVDVCAqIEZST00gcGdfaW5w dXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBbMSwgeyJhIjogMX1dLCAibmRpc3RpbmN0 IiA6IDF9XScsICdwZ19uZGlzdGluY3QnKTsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3Jf aW5mbygnW3siYXR0cmlidXRlcyIgOiBbLTcsLTldLCAibmRpc3RpbmN0IiA6IDF9XScsICdwZ19u ZGlzdGluY3QnKTsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmli dXRlcyIgOiAxLCAibmRpc3RpbmN0IiA6IDR9XScsICdwZ19uZGlzdGluY3QnKTsKKy0tIER1cGxp Y2F0ZWQgYXR0cmlidXRlcworU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDJdLCAibmRpc3Rp bmN0IiA6IDR9XSc6OnBnX25kaXN0aW5jdDsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3Jf aW5mbygnW3siYXR0cmlidXRlcyIgOiBbMiwyXSwgIm5kaXN0aW5jdCIgOiA0fV0nLCAncGdfbmRp c3RpbmN0Jyk7CistLSBEdXBsaWNhdGVkIGF0dHJpYnV0ZSBsaXN0cy4KK1NFTEVDVCAnW3siYXR0 cmlidXRlcyIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAgICAgICAgIHsiYXR0cmlidXRl cyIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlzdGluY3Q7CitTRUxFQ1QgKiBG Uk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGlu Y3QiIDogNH0sCisgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDog NH1dJywgJ3BnX25kaXN0aW5jdCcpOworLS0gUGFydGlhbGx5LWNvdmVyZWQgYXR0cmlidXRlIGxp c3RzLgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IDR9LAor ICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLC0xXSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAgICAg ICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzLC0xXSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAgICAgICAg IHsiYXR0cmlidXRlcyIgOiBbMSwzLC0xLC0yXSwgIm5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlz dGluY3Q7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMi IDogWzIsM10sICJuZGlzdGluY3QiIDogNH0sCisgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIs LTFdLCAibmRpc3RpbmN0IiA6IDR9LAorICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLDMsLTFd LCAibmRpc3RpbmN0IiA6IDR9LAorICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsxLDMsLTEsLTJd LCAibmRpc3RpbmN0IiA6IDR9XScsICdwZ19uZGlzdGluY3QnKTsKKworLS0gVmFsaWQgaW5wdXRz CistLSBUd28gYXR0cmlidXRlcy4KK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMSwyXSwgIm5k aXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlzdGluY3Q7CistLSBUaHJlZSBhdHRyaWJ1dGVzLgorU0VM RUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLC0xXSwgIm5kaXN0aW5jdCIgOiAxfSwKKyAgICAgICAg IHsiYXR0cmlidXRlcyIgOiBbMywtMV0sICJuZGlzdGluY3QiIDogMn0sCisJIHsiYXR0cmlidXRl cyIgOiBbMiwzLC0xXSwgIm5kaXN0aW5jdCIgOiAzfV0nOjpwZ19uZGlzdGluY3Q7CmRpZmYgLS1n aXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVu dC90eXBlZGVmcy5saXN0CmluZGV4IGM3NTFjMjVhMDRkLi43YTIxOTVjZjI1ZSAxMDA2NDQKLS0t IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKQEAgLTE3MzIsNiArMTczMiw4IEBAIE11bHRpcmFuZ2VJT0RhdGEK IE11bHRpcmFuZ2VQYXJzZVN0YXRlCiBNdWx0aXJhbmdlVHlwZQogTkRCT1gKK05EaXN0aW5jdFBh cnNlU3RhdGUKK05EaXN0aW5jdFNlbWFudGljU3RhdGUKIE5MU1ZFUlNJT05JTkZPRVgKIE5PREUK IE5UU1RBVFVTCgpiYXNlLWNvbW1pdDogNWQ0ZGMxMTJjN2M2YzEwYmU3MzlkNjFlOGJlMDEyZjIw ZTlmZGJiZgotLSAKMi41MS4xCgo= --0000000000009429ff06440ec5f4 Content-Type: text/x-patch; charset="US-ASCII"; name="v16-0002-Add-working-input-function-for-pg_dependencies.patch" Content-Disposition: attachment; filename="v16-0002-Add-working-input-function-for-pg_dependencies.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mi81k38y1 RnJvbSAyOWJjMjcwMzZhMTk2NmRiYzI5YzQxNGQxZGQ2YTE1MTJlMGFkNTI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNaWNoYWVsIFBhcXVpZXIgPG1pY2hhZWxAcGFxdWllci54eXo+ CkRhdGU6IE1vbiwgMTcgTm92IDIwMjUgMTU6NDk6MzYgKzA5MDAKU3ViamVjdDogW1BBVENIIHYx NiAyLzVdIEFkZCB3b3JraW5nIGlucHV0IGZ1bmN0aW9uIGZvciBwZ19kZXBlbmRlbmNpZXMuCgpU aGlzIHdpbGwgY29uc3VtZSB0aGUgZm9ybWF0IHRoYXQgd2FzIGVzdGFibGlzaGVkIHdoZW4gdGhl IG91dHB1dApmdW5jdGlvbiBmb3IgcGdfZGVwZW5kZW5jaWVzIHdhcyByZWNlbnRseSBjaGFuZ2Vk LgoKVGhpcyB3aWxsIGJlIG5lZWRlZCBmb3IgaW1wb3J0aW5nIGV4dGVuZGVkIHN0YXRpc3RpY3Mu Ci0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX2RlcGVuZGVuY2llcy5jICAgICAgIHwgODEw ICsrKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wZ19kZXBlbmRl bmNpZXMub3V0IHwgMzc2ICsrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVk dWxlICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BnX2RlcGVuZGVu Y2llcy5zcWwgICAgICB8ICA5OSArKysKIDQgZmlsZXMgY2hhbmdlZCwgMTI3NiBpbnNlcnRpb25z KCspLCAxMSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BnX2RlcGVuZGVuY2llcy5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVz dC9yZWdyZXNzL3NxbC9wZ19kZXBlbmRlbmNpZXMuc3FsCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3BnX2RlcGVuZGVuY2llcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bn X2RlcGVuZGVuY2llcy5jCmluZGV4IDg3MTgxYWEwMGU5Li5iYzg3OTU0NDhiMiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX2RlcGVuZGVuY2llcy5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9wZ19kZXBlbmRlbmNpZXMuYwpAQCAtMTQsMjkgKzE0LDgxOSBAQAogCiAj aW5jbHVkZSAicG9zdGdyZXMuaCIKIAorI2luY2x1ZGUgImNvbW1vbi9pbnQuaCIKKyNpbmNsdWRl ICJjb21tb24vanNvbmFwaS5oIgogI2luY2x1ZGUgImxpYi9zdHJpbmdpbmZvLmgiCisjaW5jbHVk ZSAibWIvcGdfd2NoYXIuaCIKKyNpbmNsdWRlICJub2Rlcy9taXNjbm9kZXMuaCIKICNpbmNsdWRl ICJzdGF0aXN0aWNzL2V4dGVuZGVkX3N0YXRzX2ludGVybmFsLmgiCiAjaW5jbHVkZSAic3RhdGlz dGljcy9zdGF0aXN0aWNzX2Zvcm1hdC5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisj aW5jbHVkZSAidXRpbHMvZmxvYXQuaCIKICNpbmNsdWRlICJ1dGlscy9mbWdycHJvdG9zLmgiCiAK K3R5cGVkZWYgZW51bQoreworCURFUFNfRVhQRUNUX1NUQVJUID0gMCwKKwlERVBTX0VYUEVDVF9J VEVNLAorCURFUFNfRVhQRUNUX0tFWSwKKwlERVBTX0VYUEVDVF9BVFROVU1fTElTVCwKKwlERVBT X0VYUEVDVF9BVFROVU0sCisJREVQU19FWFBFQ1RfREVQRU5ERU5DWSwKKwlERVBTX0VYUEVDVF9E RUdSRUUsCisJREVQU19QQVJTRV9DT01QTEVURQorfSBEZXBzUGFyc2VTZW1hbnRpY1N0YXRlOwor Cit0eXBlZGVmIHN0cnVjdAoreworCWNvbnN0IGNoYXIgKnN0cjsKKwlEZXBzUGFyc2VTZW1hbnRp Y1N0YXRlIHN0YXRlOworCisJTGlzdAkgICAqZGVwZW5kZW5jeV9saXN0OworCU5vZGUJICAgKmVz Y29udGV4dDsKKworCWJvb2wJCWZvdW5kX2F0dHJpYnV0ZXM7CS8qIEl0ZW0gaGFzIGFuIGF0dHJp YnV0ZXMga2V5ICovCisJYm9vbAkJZm91bmRfZGVwZW5kZW5jeTsJLyogSXRlbSBoYXMgYW4gZGVw ZW5kZW5jeSBrZXkgKi8KKwlib29sCQlmb3VuZF9kZWdyZWU7CS8qIEl0ZW0gaGFzIGRlZ3JlZSBr ZXkgKi8KKwlMaXN0CSAgICphdHRudW1fbGlzdDsJLyogQWNjdW11bGF0ZWQgYXR0cmlidXRlcyBh dHRudW1zICovCisJQXR0ck51bWJlcglkZXBlbmRlbmN5OworCWRvdWJsZQkJZGVncmVlOworfSBE ZXBlbmRlbmNpZXNQYXJzZVN0YXRlOworCisvKgorICogSW52b2tlZCBhdCB0aGUgc3RhcnQgb2Yg ZWFjaCBNVkRlcGVuZGVuY3kgb2JqZWN0LgorICoKKyAqIFRoZSBlbnRpcmUgSlNPTiBkb2N1bWVu dCBzaG91bGQgYmUgb25lIGFycmF5IG9mIE1WRGVwZW5kZW5jeSBvYmplY3RzLgorICoKKyAqIElm IHdlIGFyZSBhbnl3aGVyZSBlbHNlIGluIHRoZSBkb2N1bWVudCwgaXQncyBhbiBlcnJvci4KKyAq Lworc3RhdGljIEpzb25QYXJzZUVycm9yVHlwZQorZGVwZW5kZW5jaWVzX29iamVjdF9zdGFydCh2 b2lkICpzdGF0ZSkKK3sKKwlEZXBlbmRlbmNpZXNQYXJzZVN0YXRlICpwYXJzZSA9IHN0YXRlOwor CisJc3dpdGNoKHBhcnNlLT5zdGF0ZSkKKwl7CisJCWNhc2UgREVQU19FWFBFQ1RfSVRFTToKKwkJ CS8qIE5vdyB3ZSBleHBlY3QgdG8gc2VlIGF0dHJpYnV0ZXMvZGVwZW5kZW5jeS9kZWdyZWUga2V5 cyAqLworCQkJcGFyc2UtPnN0YXRlID0gREVQU19FWFBFQ1RfS0VZOworCQkJcmV0dXJuIEpTT05f U1VDQ0VTUzsKKwkJCWJyZWFrOworCisJCWNhc2UgREVQU19FWFBFQ1RfU1RBUlQ6CisJCQkvKiBw Z19kZXBlbmRlbmNpZXMgbXVzdCBiZWdpbiB3aXRoIGEgJ1snICovCisJCQllcnJzYXZlKHBhcnNl LT5lc2NvbnRleHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5U QVRJT04pLAorCQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6IFwiJXNcIiIs IHBhcnNlLT5zdHIpLAorCQkJCQllcnJkZXRhaWwoIkluaXRpYWwgZWxlbWVudCBtdXN0IGJlIGFu IGFycmF5LiIpKTsKKwkJCWJyZWFrOworCisJCWNhc2UgREVQU19FWFBFQ1RfS0VZOgorCQkJLyog SW4gYW4gb2JqZWN0LCBleHBlY3Rpbmcga2V5ICovCisJCQllcnJzYXZlKHBhcnNlLT5lc2NvbnRl eHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAor CQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6IFwiJXNcIiIsIHBhcnNlLT5z dHIpLAorCQkJCQllcnJkZXRhaWwoIkV4cGVjdGVkIGFuIG9iamVjdCBrZXkuIikpOworCQkJYnJl YWs7CisKKwkJY2FzZSBERVBTX0VYUEVDVF9BVFROVU1fTElTVDoKKwkJCS8qIEp1c3QgZm9sbG93 ZWQgYW4gImF0dHJpYnV0ZXMiOiBrZXkgKi8KKwkJCWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwK KwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJ CWVycm1zZygibWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogXCIlc1wiIiwgcGFyc2UtPnN0ciks CisJCQkJCWVycmRldGFpbCgiVmFsdWUgb2YgXCIlc1wiIG11c3QgYmUgYW4gYXJyYXkgb2YgYXR0 cmlidXRlIG51bWJlcnMuIiwKKwkJCQkJCQkgIFBHX0RFUEVOREVOQ0lFU19LRVlfQVRUUklCVVRF UykpOworCQkJYnJlYWs7CisKKwkJY2FzZSBERVBTX0VYUEVDVF9BVFROVU06CisJCQkvKiBJbiBh biBhdHRudW0gbGlzdCwgZXhwZWN0IG9ubHkgc2NhbGFyIGludGVnZXJzICovCisJCQllcnJzYXZl KHBhcnNlLT5lc2NvbnRleHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQ UkVTRU5UQVRJT04pLAorCQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6IFwi JXNcIiIsIHBhcnNlLT5zdHIpLAorCQkJCQllcnJkZXRhaWwoIkF0dHJpYnV0ZSBsaXN0cyBjYW4g b25seSBjb250YWluIGF0dHJpYnV0ZSBudW1iZXJzLiIpKTsKKwkJCWJyZWFrOworCisJCWNhc2Ug REVQU19FWFBFQ1RfREVQRU5ERU5DWToKKwkJCS8qIEp1c3QgZm9sbG93ZWQgYSAiZGVwZW5kZW5j eSIga2V5ICovCisJCQllcnJzYXZlKHBhcnNlLT5lc2NvbnRleHQsCisJCQkJCWVycmNvZGUoRVJS Q09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCQllcnJtc2coIm1hbGZvcm1l ZCBwZ19kZXBlbmRlbmNpZXM6IFwiJXNcIiIsIHBhcnNlLT5zdHIpLAorCQkJCQllcnJkZXRhaWwo IlZhbHVlIG9mIFwiJXNcIiBtdXN0IGJlIGFuIGludGVnZXIuIiwKKwkJCQkJCQkgIFBHX0RFUEVO REVOQ0lFU19LRVlfREVQRU5ERU5DWSkpOworCQkJYnJlYWs7CisKKwkJY2FzZSBERVBTX0VYUEVD VF9ERUdSRUU6CisJCQkvKiBKdXN0IGZvbGxvd2VkIGEgImRlZ3JlZSIga2V5ICovCisJCQllcnJz YXZlKHBhcnNlLT5lc2NvbnRleHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRf UkVQUkVTRU5UQVRJT04pLAorCQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6 IFwiJXNcIiIsIHBhcnNlLT5zdHIpLAorCQkJCQllcnJkZXRhaWwoIlZhbHVlIG9mIFwiJXNcIiBt dXN0IGJlIGFuIGludGVnZXIuIiwKKwkJCQkJCQkgIFBHX0RFUEVOREVOQ0lFU19LRVlfREVHUkVF KSk7CisJCQlicmVhazsKKworCQlkZWZhdWx0OgorCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0 LAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJ CQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiBcIiVzXCIiLCBwYXJzZS0+c3Ry KSwKKwkJCQkJZXJyZGV0YWlsKCJVbmV4cGVjdGVkIHBhcnNlIHN0YXRlOiAlZCIsIChpbnQpIHBh cnNlLT5zdGF0ZSkpOworCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIEpTT05fU0VNX0FDVElPTl9G QUlMRUQ7Cit9CisKK3N0YXRpYyBKc29uUGFyc2VFcnJvclR5cGUKK2RlcGVuZGVuY2llc19vYmpl Y3RfZW5kKHZvaWQgKnN0YXRlKQoreworCURlcGVuZGVuY2llc1BhcnNlU3RhdGUgKnBhcnNlID0g c3RhdGU7CisKKwlNVkRlcGVuZGVuY3kgKmRlcDsKKworCWludAkJCW5hdHRzID0gMDsKKworCWlm IChwYXJzZS0+c3RhdGUgIT0gREVQU19FWFBFQ1RfS0VZKQorCXsKKwkJZXJyc2F2ZShwYXJzZS0+ ZXNjb250ZXh0LAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJ T04pLAorCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogXCIlc1wiIiwgcGFy c2UtPnN0ciksCisJCQkJZXJyZGV0YWlsKCJVbmV4cGVjdGVkIHBhcnNlIHN0YXRlOiAlZCIsIChp bnQpIHBhcnNlLT5zdGF0ZSkpOworCQlyZXR1cm4gSlNPTl9TRU1fQUNUSU9OX0ZBSUxFRDsKKwl9 CisKKwlpZiAoIXBhcnNlLT5mb3VuZF9hdHRyaWJ1dGVzKQorCXsKKwkJZXJyc2F2ZShwYXJzZS0+ ZXNjb250ZXh0LAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJ T04pLAorCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogXCIlc1wiIiwgcGFy c2UtPnN0ciksCisJCQkJZXJyZGV0YWlsKCJJdGVtIG11c3QgY29udGFpbiBcIiVzXCIga2V5IiwK KwkJCQkJCSAgUEdfREVQRU5ERU5DSUVTX0tFWV9BVFRSSUJVVEVTKSk7CisJCXJldHVybiBKU09O X1NFTV9BQ1RJT05fRkFJTEVEOworCX0KKworCWlmICghcGFyc2UtPmZvdW5kX2RlcGVuZGVuY3kp CisJeworCQllcnJzYXZlKHBhcnNlLT5lc2NvbnRleHQsCisJCQkJZXJyY29kZShFUlJDT0RFX0lO VkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfZGVw ZW5kZW5jaWVzOiBcIiVzXCIiLCBwYXJzZS0+c3RyKSwKKwkJCQllcnJkZXRhaWwoIkl0ZW0gbXVz dCBjb250YWluIFwiJXNcIiBrZXkuIiwKKwkJCQkJCSAgUEdfREVQRU5ERU5DSUVTX0tFWV9ERVBF TkRFTkNZKSk7CisJCXJldHVybiBKU09OX1NFTV9BQ1RJT05fRkFJTEVEOworCX0KKworCWlmICgh cGFyc2UtPmZvdW5kX2RlZ3JlZSkKKwl7CisJCWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJ CQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQllcnJt c2coIm1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6IFwiJXNcIiIsIHBhcnNlLT5zdHIpLAorCQkJ CWVycmRldGFpbCgiSXRlbSBtdXN0IGNvbnRhaW4gXCIlc1wiIGtleS4iLAorCQkJCQkJICBQR19E RVBFTkRFTkNJRVNfS0VZX0RFR1JFRSkpOworCQlyZXR1cm4gSlNPTl9TRU1fQUNUSU9OX0ZBSUxF RDsKKwl9CisKKwkvKgorCSAqIFdlIG5lZWQgYXQgbGVhc3Qgb25lIGF0dHJpYnV0ZSBudW1iZXIg YSBkZXBlbmRlbmNpZXMgaXRlbSwgYW55dGhpbmcKKwkgKiBsZXNzIGlzIG1hbGZvcm1lZC4KKwkg Ki8KKwluYXR0cyA9IHBhcnNlLT5hdHRudW1fbGlzdC0+bGVuZ3RoOworCWlmICgobmF0dHMgPCAx KSB8fCAobmF0dHMgPiAoU1RBVFNfTUFYX0RJTUVOU0lPTlMgLSAxKSkpCisJeworCQllcnJzYXZl KHBhcnNlLT5lc2NvbnRleHQsCisJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBS RVNFTlRBVElPTiksCisJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiBcIiVz XCIiLCBwYXJzZS0+c3RyKSwKKwkJCQllcnJkZXRhaWwoIlRoZSBcIiVzXCIga2V5IG11c3QgY29u dGFpbiBhbiBhcnJheSBvZiBhdCBsZWFzdCAlZCAiCisJCQkJCQkgICIgYW5kIG5vIHRoYW4gJWQg ZWxlbWVudHMuIiwKKwkJCQkJCSAgUEdfREVQRU5ERU5DSUVTX0tFWV9BVFRSSUJVVEVTLCAxLCBT VEFUU19NQVhfRElNRU5TSU9OUyAtIDEpKTsKKwkJcmV0dXJuIEpTT05fU0VNX0FDVElPTl9GQUlM RUQ7CisJfQorCisJLyoKKwkgKiBBbGxvY2F0ZSBlbm91Z2ggc3BhY2UgZm9yIHRoZSBkZXBlbmRl bmN5LCB0aGUgYXR0bnVtcyBpbiB0aGUgbGlzdCwgcGx1cworCSAqIHRoZSBmaW5hbCBhdHRudW0u CisJICovCisJZGVwID0gcGFsbG9jMChvZmZzZXRvZihNVkRlcGVuZGVuY3ksIGF0dHJpYnV0ZXMp ICsgKChuYXR0cyArIDEpICogc2l6ZW9mKEF0dHJOdW1iZXIpKSk7CisJZGVwLT5uYXR0cmlidXRl cyA9IG5hdHRzICsgMTsKKworCWRlcC0+YXR0cmlidXRlc1tuYXR0c10gPSBwYXJzZS0+ZGVwZW5k ZW5jeTsKKwlkZXAtPmRlZ3JlZSA9IHBhcnNlLT5kZWdyZWU7CisKKwlmb3IgKGludCBpID0gMDsg aSA8IG5hdHRzOyBpKyspCisJeworCQlkZXAtPmF0dHJpYnV0ZXNbaV0gPSAoQXR0ck51bWJlcikg bGlzdF9udGhfaW50KHBhcnNlLT5hdHRudW1fbGlzdCwgaSk7CisJCWlmIChkZXAtPmF0dHJpYnV0 ZXNbaV0gPT0gcGFyc2UtPmRlcGVuZGVuY3kpCisJCXsKKwkJCWVycnNhdmUocGFyc2UtPmVzY29u dGV4dCwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiks CisJCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogXCIlc1wiIiwgcGFyc2Ut PnN0ciksCisJCQkJCWVycmRldGFpbCgiSXRlbSBcIiVzXCIgdmFsdWUgJWQgZm91bmQgaW4gdGhl IFwiJXNcIiBsaXN0LiIsCisJCQkJCQkJICBQR19ERVBFTkRFTkNJRVNfS0VZX0RFUEVOREVOQ1ks IHBhcnNlLT5kZXBlbmRlbmN5LAorCQkJICAgCQkJCSAgUEdfREVQRU5ERU5DSUVTX0tFWV9BVFRS SUJVVEVTKSk7CisJCQlyZXR1cm4gSlNPTl9TRU1fQUNUSU9OX0ZBSUxFRDsKKwkJfQorCX0KKwor CXBhcnNlLT5kZXBlbmRlbmN5X2xpc3QgPSBsYXBwZW5kKHBhcnNlLT5kZXBlbmRlbmN5X2xpc3Qs ICh2b2lkICopIGRlcCk7CisKKwkvKiBSZXNldCBkZXBlbmRlbmN5IGl0ZW0gc3RhdGUgdmFyaWFi bGVzICovCisJbGlzdF9mcmVlKHBhcnNlLT5hdHRudW1fbGlzdCk7CisJcGFyc2UtPmF0dG51bV9s aXN0ID0gTklMOworCXBhcnNlLT5kZXBlbmRlbmN5ID0gMDsKKwlwYXJzZS0+ZGVncmVlID0gMC4w OworCXBhcnNlLT5mb3VuZF9hdHRyaWJ1dGVzID0gZmFsc2U7CisJcGFyc2UtPmZvdW5kX2RlcGVu ZGVuY3kgPSBmYWxzZTsKKwlwYXJzZS0+Zm91bmRfZGVncmVlID0gZmFsc2U7CisKKwkvKiBOb3cg d2UgYXJlIGxvb2tpbmcgZm9yIHRoZSBuZXh0IE1WRGVwZW5kZW5jeSAqLworCXBhcnNlLT5zdGF0 ZSA9IERFUFNfRVhQRUNUX0lURU07CisJcmV0dXJuIEpTT05fU1VDQ0VTUzsKK30KKworLyoKKyAq IERlcGVuZGVuY3kgaW5wdXQgZm9ybWF0IGRvZXMgbm90IGhhdmUgYXJyYXlzLCBzbyBhbnkgYXJy YXkgZWxlbWVudHMKKyAqIGVuY291bnRlcmVkIGFyZSBhbiBlcnJvci4KKyAqLworc3RhdGljIEpz b25QYXJzZUVycm9yVHlwZQorZGVwZW5kZW5jaWVzX2FycmF5X3N0YXJ0KHZvaWQgKnN0YXRlKQor eworCURlcGVuZGVuY2llc1BhcnNlU3RhdGUgKnBhcnNlID0gc3RhdGU7CisKKwlzd2l0Y2ggKHBh cnNlLT5zdGF0ZSkKKwl7CisJCWNhc2UgREVQU19FWFBFQ1RfQVRUTlVNX0xJU1Q6CisJCQlwYXJz ZS0+c3RhdGUgPSBERVBTX0VYUEVDVF9BVFROVU07CisJCQlicmVhazsKKwkJY2FzZSBERVBTX0VY UEVDVF9TVEFSVDoKKwkJCXBhcnNlLT5zdGF0ZSA9IERFUFNfRVhQRUNUX0lURU07CisJCQlicmVh azsKKwkJZGVmYXVsdDoKKwkJCWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQkJZXJyY29k ZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJCWVycm1zZygibWFs Zm9ybWVkIHBnX2RlcGVuZGVuY2llczogXCIlc1wiIiwgcGFyc2UtPnN0ciksCisJCQkJCWVycmRl dGFpbCgiQXJyYXkgZm91bmQgaW4gdW5leHBlY3RlZCBwbGFjZS4iKSk7CisJCQlyZXR1cm4gSlNP Tl9TRU1fQUNUSU9OX0ZBSUxFRDsKKwkJCWJyZWFrOworCX0KKworCXJldHVybiBKU09OX1NVQ0NF U1M7Cit9CisKKy8qCisgKiBFaXRoZXIgdGhlIGVuZCBvZiBhbiBhdHRudW0gbGlzdCBvciB0aGUg d2hvbGUgb2JqZWN0LgorICovCitzdGF0aWMgSnNvblBhcnNlRXJyb3JUeXBlCitkZXBlbmRlbmNp ZXNfYXJyYXlfZW5kKHZvaWQgKnN0YXRlKQoreworCURlcGVuZGVuY2llc1BhcnNlU3RhdGUgKnBh cnNlID0gc3RhdGU7CisKKwlzd2l0Y2ggKHBhcnNlLT5zdGF0ZSkKKwl7CisJCWNhc2UgREVQU19F WFBFQ1RfQVRUTlVNOgorCQkJaWYgKHBhcnNlLT5hdHRudW1fbGlzdCAhPSBOSUwpCisJCQl7CisJ CQkJcGFyc2UtPnN0YXRlID0gREVQU19FWFBFQ1RfS0VZOworCQkJCXJldHVybiBKU09OX1NVQ0NF U1M7CisJCQl9CisKKwkJCWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQkJZXJyY29kZShF UlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJCWVycm1zZygibWFsZm9y bWVkIHBnX2RlcGVuZGVuY2llczogXCIlc1wiIiwgcGFyc2UtPnN0ciksCisJCQkJCWVycmRldGFp bCgiVGhlIFwiJXNcIiBrZXkgbXVzdCBiZSBhbiBub24tZW1wdHkgYXJyYXkuIiwKKwkJCQkJCQkg IFBHX0RFUEVOREVOQ0lFU19LRVlfQVRUUklCVVRFUykpOworCQkJYnJlYWs7CisKKwkJY2FzZSBE RVBTX0VYUEVDVF9JVEVNOgorCQkJaWYgKHBhcnNlLT5kZXBlbmRlbmN5X2xpc3QgIT0gTklMKQor CQkJeworCQkJCXBhcnNlLT5zdGF0ZSA9IERFUFNfUEFSU0VfQ09NUExFVEU7CisJCQkJcmV0dXJu IEpTT05fU1VDQ0VTUzsKKwkJCX0KKworCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJ CQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQkJZXJy bXNnKCJtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiBcIiVzXCIiLCBwYXJzZS0+c3RyKSwKKwkJ CQkJZXJyZGV0YWlsKCJJdGVtIGFycmF5IGNhbm5vdCBiZSBlbXB0eS4iKSk7CisJCQlicmVhazsK KworCQlkZWZhdWx0OgorCQkJLyoKKwkJCSAqIFRoaXMgY2FuIG9ubHkgaGFwcGVuIGlmIGEgY2Fz ZSB3YXMgbWlzc2VkIGluIGRlcGVuZW5jZWllc19hcnJheV9zdGFydCgpCisJCQkgKi8KKwkJCWVy cnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVY VF9SRVBSRVNFTlRBVElPTiksCisJCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX2RlcGVuZGVuY2ll czogXCIlc1wiIiwgcGFyc2UtPnN0ciksCisJCQkJCWVycmRldGFpbCgiQXJyYXkgZm91bmQgaW4g dW5leHBlY3RlZCBwbGFjZS4iKSk7CisJCQlicmVhazsKKwl9CisJcmV0dXJuIEpTT05fU0VNX0FD VElPTl9GQUlMRUQ7Cit9CisKKy8qCisgKiBUaGUgdmFsaWQga2V5cyBmb3IgdGhlIE1WRGVwZW5k ZW5jeSBvYmplY3QgYXJlOgorICogICAtIGF0dHJpYnV0ZXMKKyAqICAgLSBkZXBlZW5kZW5jeQor ICogICAtIGRlZ3JlZQorICovCitzdGF0aWMgSnNvblBhcnNlRXJyb3JUeXBlCitkZXBlbmRlbmNp ZXNfb2JqZWN0X2ZpZWxkX3N0YXJ0KHZvaWQgKnN0YXRlLCBjaGFyICpmbmFtZSwgYm9vbCBpc251 bGwpCit7CisJRGVwZW5kZW5jaWVzUGFyc2VTdGF0ZSAqcGFyc2UgPSBzdGF0ZTsKKworCWlmIChz dHJjbXAoZm5hbWUsIFBHX0RFUEVOREVOQ0lFU19LRVlfQVRUUklCVVRFUykgPT0gMCkKKwl7CisJ CWlmIChwYXJzZS0+Zm91bmRfYXR0cmlidXRlcykKKwkJeworCQkJZXJyc2F2ZShwYXJzZS0+ZXNj b250ZXh0LAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9O KSwKKwkJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiBcIiVzXCIiLCBwYXJz ZS0+c3RyKSwKKwkJCQkJZXJyZGV0YWlsKCJNdWx0aXBsZSBcIiVzXCIga2V5cyBhcmUgbm90IGFs bG93ZWQuIiwKKwkJCQkJCQlQR19ERVBFTkRFTkNJRVNfS0VZX0FUVFJJQlVURVMpKTsKKwkJCXJl dHVybiBKU09OX1NFTV9BQ1RJT05fRkFJTEVEOworCQl9CisKKwkJcGFyc2UtPmZvdW5kX2F0dHJp YnV0ZXMgPSB0cnVlOworCQlwYXJzZS0+c3RhdGUgPSBERVBTX0VYUEVDVF9BVFROVU1fTElTVDsK KwkJcmV0dXJuIEpTT05fU1VDQ0VTUzsKKwl9CisKKwlpZiAoc3RyY21wKGZuYW1lLCBQR19ERVBF TkRFTkNJRVNfS0VZX0RFUEVOREVOQ1kpID09IDApCisJeworCQlpZiAocGFyc2UtPmZvdW5kX2Rl cGVuZGVuY3kpCisJCXsKKwkJCWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQkJZXJyY29k ZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJCWVycm1zZygibWFs Zm9ybWVkIHBnX2RlcGVuZGVuY2llczogXCIlc1wiIiwgcGFyc2UtPnN0ciksCisJCQkJCWVycmRl dGFpbCgiTXVsdGlwbGUgXCIlc1wiIGtleXMgYXJlIG5vdCBhbGxvd2VkLiIsCisJCQkJCQkJUEdf REVQRU5ERU5DSUVTX0tFWV9ERVBFTkRFTkNZKSk7CisJCQlyZXR1cm4gSlNPTl9TRU1fQUNUSU9O X0ZBSUxFRDsKKwkJfQorCisJCXBhcnNlLT5mb3VuZF9kZXBlbmRlbmN5ID0gdHJ1ZTsKKwkJcGFy c2UtPnN0YXRlID0gREVQU19FWFBFQ1RfREVQRU5ERU5DWTsKKwkJcmV0dXJuIEpTT05fU1VDQ0VT UzsKKwl9CisKKwlpZiAoc3RyY21wKGZuYW1lLCBQR19ERVBFTkRFTkNJRVNfS0VZX0RFR1JFRSkg PT0gMCkKKwl7CisJCWlmIChwYXJzZS0+Zm91bmRfZGVncmVlKQorCQl7CisJCQllcnJzYXZlKHBh cnNlLT5lc2NvbnRleHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVT RU5UQVRJT04pLAorCQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6IFwiJXNc IiIsIHBhcnNlLT5zdHIpLAorCQkJCQllcnJkZXRhaWwoIk11bHRpcGxlIFwiJXNcIiBrZXlzIGFy ZSBub3QgYWxsb3dlZC4iLAorCQkJCQkJCVBHX0RFUEVOREVOQ0lFU19LRVlfREVHUkVFKSk7CisJ CQlyZXR1cm4gSlNPTl9TRU1fQUNUSU9OX0ZBSUxFRDsKKwkJfQorCisJCXBhcnNlLT5mb3VuZF9k ZWdyZWUgPSB0cnVlOworCQlwYXJzZS0+c3RhdGUgPSBERVBTX0VYUEVDVF9ERUdSRUU7CisJCXJl dHVybiBKU09OX1NVQ0NFU1M7CisJfQorCisJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJ ZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQllcnJtc2co Im1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6IFwiJXNcIiIsIHBhcnNlLT5zdHIpLAorCQkJZXJy ZGV0YWlsKCJPbmx5IGFsbG93ZWQga2V5cyBhcmUgXCIlc1wiLCBcIiVzXCIgYW5kIFwiJXNcIi4i LAorCQkJCQkgIFBHX0RFUEVOREVOQ0lFU19LRVlfQVRUUklCVVRFUywKKwkJCQkJICBQR19ERVBF TkRFTkNJRVNfS0VZX0RFUEVOREVOQ1ksCisJCQkJCSAgUEdfREVQRU5ERU5DSUVTX0tFWV9ERUdS RUUpKTsKKwlyZXR1cm4gSlNPTl9TRU1fQUNUSU9OX0ZBSUxFRDsKK30KKworLyoKKyAqIHBnX2Rl cGVuZGVuY2llcyBpbnB1dCBmb3JtYXQgZG9lcyBub3QgaGF2ZSBhcnJheXMsIHNvIGFueSBhcnJh eSBlbGVtZW50cworICogZW5jb3VudGVyZWQgYXJlIGFuIGVycm9yLgorICovCitzdGF0aWMgSnNv blBhcnNlRXJyb3JUeXBlCitkZXBlbmRlbmNpZXNfYXJyYXlfZWxlbWVudF9zdGFydCh2b2lkICpz dGF0ZSwgYm9vbCBpc251bGwpCit7CisJRGVwZW5kZW5jaWVzUGFyc2VTdGF0ZSAqcGFyc2UgPSBz dGF0ZTsKKworCXN3aXRjaChwYXJzZS0+c3RhdGUpCisJeworCQljYXNlIERFUFNfRVhQRUNUX0FU VE5VTToKKwkJCWlmICghaXNudWxsKQorCQkJCXJldHVybiBKU09OX1NVQ0NFU1M7CisKKwkJCWVy cnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVY VF9SRVBSRVNFTlRBVElPTiksCisJCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX2RlcGVuZGVuY2ll czogXCIlc1wiIiwgcGFyc2UtPnN0ciksCisJCQkJCWVycmRldGFpbCgiQXR0cmlidXRlIG51bWJl ciBhcnJheSBjYW5ub3QgYmUgbnVsbC4iKSk7CisKKwkJCXJldHVybiBKU09OX1NFTV9BQ1RJT05f RkFJTEVEOworCQkJYnJlYWs7CisKKwkJY2FzZSBERVBTX0VYUEVDVF9JVEVNOgorCQkJaWYgKCFp c251bGwpCisJCQkJcmV0dXJuIEpTT05fU1VDQ0VTUzsKKwkJCWVycnNhdmUocGFyc2UtPmVzY29u dGV4dCwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiks CisJCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogXCIlc1wiIiwgcGFyc2Ut PnN0ciksCisJCQkJCWVycmRldGFpbCgiSXRlbSBsaXN0IGVsZW1lbnRzIGNhbm5vdCBiZSBudWxs LiIpKTsKKworCQkJcmV0dXJuIEpTT05fU0VNX0FDVElPTl9GQUlMRUQ7CisJCQlicmVhazsKKwor CQlkZWZhdWx0OgorCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJCQllcnJjb2RlKEVS UkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQkJZXJybXNnKCJtYWxmb3Jt ZWQgcGdfZGVwZW5kZW5jaWVzOiBcIiVzXCIiLCBwYXJzZS0+c3RyKSwKKwkJCQkJZXJyZGV0YWls KCJVbmV4cGVjdGVkIGFycmF5IGVsZW1lbnQuIikpOworCQkJYnJlYWs7CisJfQorCisJcmV0dXJu IEpTT05fU0VNX0FDVElPTl9GQUlMRUQ7Cit9CisKKy8qCisgKiBUZXN0IGZvciB2YWxpZCBzdWJz ZXF1ZW50IGF0dHJpYnV0ZSBudW1iZXIuCisgKgorICogSWYgdGhlIHByZXZpb3VzIHZhbHVlIGlz IHBvc2l0aXZlLCB0aGVuIGN1cnJlbnQgdmFsdWUgbXVzdCBlaXRoZXIgYmUKKyAqIGdyZWF0ZXIg dGhhbiB0aGUgcHJldmlvdXMgdmFsdWUsIG9yIG5lZ2F0aXZlLgorICoKKyAqIElmIHRoZSBwcmV2 aW91cyB2YWx1ZSBpcyBuZWdhdGl2ZSwgdGhlbiB0aGUgdmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4K KyAqIHRoZSBwcmV2aW91cyB2YWx1ZS4KKyAqCisgKiBEdXBsaWNhdGUgdmFsdWVzIGFyZSBvYnZp b3VzbHkgbm90IGFsbG93ZWQsIGJ1dCB0aGF0IGlzIGFscmVhZHkgY292ZXJlZAorICogYnkgdGhl IHJ1bGVzIGxpc3RlZCBhYm92ZS4KKyAqLworc3RhdGljIGJvb2wKK3ZhbGlkX3N1YnNlcXVlbnRf YXR0bnVtKGNvbnN0IEF0dHJOdW1iZXIgcHJldiwgY29uc3QgQXR0ck51bWJlciBjdXIpCit7CisJ QXNzZXJ0KHByZXYgIT0gMCk7CisKKwlpZiAocHJldiA+IDApCisJCXJldHVybiAoKGN1ciA+IHBy ZXYpIHx8IChjdXIgPCAwKSk7CisKKwlyZXR1cm4gKGN1ciA8IHByZXYpOworfQorCisvKgorICog SGFuZGxlIHNjYWxhciBldmVudHMgZnJvbSB0aGUgZGVwZW5kZW5jaWVzIGlucHV0IHBhcnNlci4K KyAqCisgKiBUaGVyZSBpcyBvbmx5IG9uZSBjYXNlIHdoZXJlIHdlIHdpbGwgZW5jb3VudGVyIGEg c2NhbGFyLCBhbmQgdGhhdCBpcyB0aGUKKyAqIGRlcGVuZGVuY3kgZGVncmVlIGZvciB0aGUgcHJl dmlvdXMgb2JqZWN0IGtleS4KKyAqLworc3RhdGljIEpzb25QYXJzZUVycm9yVHlwZQorZGVwZW5k ZW5jaWVzX3NjYWxhcih2b2lkICpzdGF0ZSwgY2hhciAqdG9rZW4sIEpzb25Ub2tlblR5cGUgdG9r ZW50eXBlKQoreworCURlcGVuZGVuY2llc1BhcnNlU3RhdGUgKnBhcnNlID0gc3RhdGU7CisJQXR0 ck51bWJlcglhdHRudW07CisJRXJyb3JTYXZlQ29udGV4dCBlc2NvbnRleHQgPSB7VF9FcnJvclNh dmVDb250ZXh0fTsKKworCXN3aXRjaChwYXJzZS0+c3RhdGUpCisJeworCQljYXNlIERFUFNfRVhQ RUNUX0FUVE5VTToKKwkJCWF0dG51bSA9IHBnX3N0cnRvaW50MTZfc2FmZSh0b2tlbiwgKE5vZGUg KikgJmVzY29udGV4dCk7CisKKwkJCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKCZlc2NvbnRleHQp KQorCQkJeworCQkJCWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQkJCWVycmNvZGUoRVJS Q09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCQkJZXJybXNnKCJtYWxmb3Jt ZWQgcGdfZGVwZW5kZW5jaWVzOiBcIiVzXCIiLCBwYXJzZS0+c3RyKSwKKwkJCQkJCWVycmRldGFp bCgiSW52YWxpZCBcIiVzXCIgdmFsdWUuIiwgUEdfREVQRU5ERU5DSUVTX0tFWV9BVFRSSUJVVEVT KSk7CisJCQkJcmV0dXJuIEpTT05fU0VNX0FDVElPTl9GQUlMRUQ7CisJCQl9CisKKwkJCS8qCisJ CQkgKiBUaGUgYXR0bnVtIGNhbm5vdCBiZSB6ZXJvIGEgbmVnYXRpdmUgbnVtYmVyIGJleW9uZCB0 aGUgbnVtYmVyIG9mIHRoZQorCQkJICogcG9zc2libGUgZXhwcmVzc2lvbnMuCisJCQkgKi8KKwkJ CWlmIChhdHRudW0gPT0gMCB8fCBhdHRudW0gPCAoMC1TVEFUU19NQVhfRElNRU5TSU9OUykpCisJ CQl7CisJCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJCQkJZXJyY29kZShFUlJDT0RF X0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJCQllcnJtc2coIm1hbGZvcm1lZCBw Z19kZXBlbmRlbmNpZXM6IFwiJXNcIiIsIHBhcnNlLT5zdHIpLAorCQkJCQkJZXJyZGV0YWlsKCJJ bnZhbGlkIFwiJXNcIiBlbGVtZW50OiAlZC4iLAorCQkJCQkJCQkgIFBHX0RFUEVOREVOQ0lFU19L RVlfQVRUUklCVVRFUywgYXR0bnVtKSk7CisJCQkJcmV0dXJuIEpTT05fU0VNX0FDVElPTl9GQUlM RUQ7CisJCQl9CisKKwkJCWlmIChwYXJzZS0+YXR0bnVtX2xpc3QgIT0gTklMKQorCQkJeworCQkJ CWNvbnN0IEF0dHJOdW1iZXIgcHJldiA9IGxsYXN0X2ludChwYXJzZS0+YXR0bnVtX2xpc3QpOwor CisJCQkJaWYgKCF2YWxpZF9zdWJzZXF1ZW50X2F0dG51bShwcmV2LCBhdHRudW0pKQorCQkJCXsK KwkJCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9J TlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCQkJCWVycm1zZygibWFsZm9ybWVkIHBn X2RlcGVuZGVuY2llczogXCIlc1wiIiwgcGFyc2UtPnN0ciksCisJCQkJCQkJZXJyZGV0YWlsKCJJ bnZhbGlkIFwiJXNcIiBlbGVtZW50OiAlZCBjYW5ub3QgZm9sbG93ICVkLiIsCisJCQkJCQkJCQlQ R19ERVBFTkRFTkNJRVNfS0VZX0FUVFJJQlVURVMsIGF0dG51bSwgcHJldikpOworCQkJCQlyZXR1 cm4gSlNPTl9TRU1fQUNUSU9OX0ZBSUxFRDsKKwkJCQl9CisJCQl9CisKKwkJCXBhcnNlLT5hdHRu dW1fbGlzdCA9IGxhcHBlbmRfaW50KHBhcnNlLT5hdHRudW1fbGlzdCwgKGludCkgYXR0bnVtKTsK KwkJCXJldHVybiBKU09OX1NVQ0NFU1M7CisJCQlicmVhazsKKworCQljYXNlIERFUFNfRVhQRUNU X0RFUEVOREVOQ1k6CisJCQlwYXJzZS0+ZGVwZW5kZW5jeSA9IChBdHRyTnVtYmVyKQorCQkJCXBn X3N0cnRvaW50MTZfc2FmZSh0b2tlbiwgKE5vZGUgKikgJmVzY29udGV4dCk7CisKKwkJCWlmIChT T0ZUX0VSUk9SX09DQ1VSUkVEKCZlc2NvbnRleHQpKQorCQkJeworCQkJCWVycnNhdmUocGFyc2Ut PmVzY29udGV4dCwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5U QVRJT04pLAorCQkJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiBcIiVzXCIi LCBwYXJzZS0+c3RyKSwKKwkJCQkJCWVycmRldGFpbCgiSW52YWxpZCBcIiVzXCIgdmFsdWUuIiwg UEdfREVQRU5ERU5DSUVTX0tFWV9ERVBFTkRFTkNZKSk7CisJCQkJcmV0dXJuIEpTT05fU0VNX0FD VElPTl9GQUlMRUQ7CisJCQl9CisKKwkJCXBhcnNlLT5zdGF0ZSA9IERFUFNfRVhQRUNUX0tFWTsK KwkJCXJldHVybiBKU09OX1NVQ0NFU1M7CisJCQlicmVhazsKKworCQljYXNlIERFUFNfRVhQRUNU X0RFR1JFRToKKwkJCXBhcnNlLT5kZWdyZWUgPSBmbG9hdDhpbl9pbnRlcm5hbCh0b2tlbiwgTlVM TCwgImRvdWJsZSIsCisJCQkJCQkJCQkJCSAgdG9rZW4sIChOb2RlICopICZlc2NvbnRleHQpOwor CisJCQlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRCgmZXNjb250ZXh0KSkKKwkJCXsKKwkJCQllcnJz YXZlKHBhcnNlLT5lc2NvbnRleHQsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhU X1JFUFJFU0VOVEFUSU9OKSwKKwkJCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX2RlcGVuZGVuY2ll czogXCIlc1wiIiwgcGFyc2UtPnN0ciksCisJCQkJCQllcnJkZXRhaWwoIkludmFsaWQgXCIlc1wi IHZhbHVlLiIsIFBHX0RFUEVOREVOQ0lFU19LRVlfREVHUkVFKSk7CisJCQkJcmV0dXJuIEpTT05f U0VNX0FDVElPTl9GQUlMRUQ7CisJCQl9CisKKwkJCXBhcnNlLT5zdGF0ZSA9IERFUFNfRVhQRUNU X0tFWTsKKwkJCXJldHVybiBKU09OX1NVQ0NFU1M7CisJCQlicmVhazsKKworCQlkZWZhdWx0Ogor CQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJ RF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfZGVwZW5k ZW5jaWVzOiBcIiVzXCIiLCBwYXJzZS0+c3RyKSwKKwkJCQkJZXJyZGV0YWlsKCJVbmV4cGVjdGVk IHNjYWxhci4iKSk7CisJCQlicmVhazsKKwl9CisKKwlyZXR1cm4gSlNPTl9TRU1fQUNUSU9OX0ZB SUxFRDsKK30KKworLyoKKyAqIENvbXBhcmUgdGhlIGF0dHJpYnV0ZSBhcnJheXMgb2YgdHdvIE1W RGVwZW5kZW5jeSB2YWx1ZXMsCisgKiBsb29raW5nIGZvciBkdXBsaWNhdGUgc2V0cy4KKyAqLwor c3RhdGljIGJvb2wKK2hhc19kdXBsaWNhdGVfYXR0cmlidXRlcyhjb25zdCBNVkRlcGVuZGVuY3kg KmEsIGNvbnN0IE1WRGVwZW5kZW5jeSAqYikKK3sKKwlpbnQJCWk7CisKKwlpZiAoYS0+bmF0dHJp YnV0ZXMgIT0gYi0+bmF0dHJpYnV0ZXMpCisJCXJldHVybiBmYWxzZTsKKworCWZvciAoaSA9IDA7 IGkgPCBhLT5uYXR0cmlidXRlczsgaSsrKQorCXsKKwkJaWYgKGEtPmF0dHJpYnV0ZXNbaV0gIT0g Yi0+YXR0cmlidXRlc1tpXSkKKwkJCXJldHVybiBmYWxzZTsKKwl9CisKKwlyZXR1cm4gdHJ1ZTsK K30KKworLyoKKyAqIEVuc3VyZSB0aGF0IGFuIGF0dG51bSBhcHBlYXJzIGFzIG9uZSBvZiB0aGUg YXR0bnVtcyBpbiBhIGdpdmVuCisgKiBNVkRlcGVuZGVuY3kuCisgKi8KK3N0YXRpYyBib29sCitk ZXBfaGFzX2F0dG51bShjb25zdCBNVkRlcGVuZGVuY3kgKml0ZW0sIEF0dHJOdW1iZXIgYXR0bnVt KQoreworCWZvciAoaW50IGkgPSAwOyBpIDwgaXRlbS0+bmF0dHJpYnV0ZXM7IGkrKykKKwl7CisJ CWlmIChhdHRudW0gPT0gaXRlbS0+YXR0cmlidXRlc1tpXSkKKwkJCXJldHVybiB0cnVlOworCX0K KwlyZXR1cm4gZmFsc2U7Cit9CisKKy8qCisgKiBFbnN1cmUgdGhhdCB0aGUgYXR0cmlidXRlcyBv ZiBvbmUgTVZEZXBlbmRlbmN5IEEgYXJlIGEgcHJvcGVyIHN1YnNldAorICogb2YgdGhlIHJlZmVy ZW5jZSBNVkRlcGVuZGVuY3kgQi4KKyAqLworc3RhdGljIGJvb2wKK2RlcF9pc19hdHRudW1fc3Vi c2V0KGNvbnN0IE1WRGVwZW5kZW5jeSAqaXRlbSwKKwkJCQkJIGNvbnN0IE1WRGVwZW5kZW5jeSAq cmVmaXRlbSkKK3sKKwlmb3IgKGludCBpID0gMDsgaSA8IGl0ZW0tPm5hdHRyaWJ1dGVzOyBpKysp CisJeworCQlpZiAoIWRlcF9oYXNfYXR0bnVtKHJlZml0ZW0saXRlbS0+YXR0cmlidXRlc1tpXSkp CisJCQlyZXR1cm4gZmFsc2U7CisJfQorCXJldHVybiB0cnVlOworfQorCisvKgorICogR2VuZXJh dGUgYSBzdHJpbmcgcmVwcmVzZW50aW5nIGFuIGFycmF5IG9mIGF0dG51bXMuIEludGVybmFsbHks IHRoZQorICogZGVwZW5kZW5jeSBhdHRyaWJ1dGUgaXMgdGhlIGxhc3QgZWxlbWVudCwgc28gd2Ug bGVhdmUgdGhhdCBvZmYuCisgKgorICoKKyAqIEZyZWVpbmcgdGhlIGFsbG9jYXRlZCBzdHJpbmcg aXMgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGNhbGxlci4KKyAqLworc3RhdGljIGNvbnN0IGNoYXIg KgorZGVwX2F0dG51bV9saXN0KGNvbnN0IE1WRGVwZW5kZW5jeSAqaXRlbSkKK3sKKwlTdHJpbmdJ bmZvRGF0YQlzdHI7CisKKwlpbml0U3RyaW5nSW5mbygmc3RyKTsKKworCWFwcGVuZFN0cmluZ0lu Zm8oJnN0ciwgIiVkIiwgaXRlbS0+YXR0cmlidXRlc1swXSk7CisKKwlmb3IgKGludCBpID0gMTsg aSA8IGl0ZW0tPm5hdHRyaWJ1dGVzIC0gMTsgaSsrKQorCQlhcHBlbmRTdHJpbmdJbmZvKCZzdHIs ICIsICVkIiwgaXRlbS0+YXR0cmlidXRlc1tpXSk7CisKKwlyZXR1cm4gc3RyLmRhdGE7Cit9CisK Ky8qCisgKiBSZXR1cm4gdGhlIGRlcGVuZGVuY3ksIHdoaWNoIGlzIHRoZSBsYXN0IGF0dHJpYnV0 ZSBlbGVtZW50LgorICovCitzdGF0aWMgY29uc3QgQXR0ck51bWJlcgorZGVwX2F0dG51bV9kZXBl bmRlbmN5KGNvbnN0IE1WRGVwZW5kZW5jeSAqaXRlbSkKK3sKKwlyZXR1cm4gaXRlbS0+YXR0cmli dXRlc1tpdGVtLT5uYXR0cmlidXRlcyAtIDFdOworfQorCiAvKgogICogcGdfZGVwZW5kZW5jaWVz X2luCQktIGlucHV0IHJvdXRpbmUgZm9yIHR5cGUgcGdfZGVwZW5kZW5jaWVzLgogICoKLSAqIHBn X2RlcGVuZGVuY2llcyBpcyByZWFsIGVub3VnaCB0byBiZSBhIHRhYmxlIGNvbHVtbiwgYnV0IGl0 IGhhcyBubyBvcGVyYXRpb25zCi0gKiBvZiBpdHMgb3duLCBhbmQgZGlzYWxsb3dzIGlucHV0IHRv bworICogVGhpcyBmb3JtYXQgaXMgdmFsaWQgSlNPTiwgd2l0aCB0aGUgZXhwZWN0ZWQgZm9ybWF0 OgorICogICAgW3siYXR0cmlidXRlcyI6IFsxLDJdLCAiZGVwZW5kZW5jeSI6IC0xLCAiZGVncmVl IjogMS4wMDAwfSwKKyAqICAgICB7ImF0dHJpYnV0ZXMiOiBbMSwtMV0sICJkZXBlbmRlbmN5Ijog MiwgImRlZ3JlZSI6IDAuMDAwMH0sCisgKiAgICAgeyJhdHRyaWJ1dGVzIjogWzIsLTFdLCAiZGVw ZW5kZW5jeSI6IDEsICJkZWdyZWUiOiAxLjAwMDB9XQorICoKICAqLwogRGF0dW0KIHBnX2RlcGVu ZGVuY2llc19pbihQR19GVU5DVElPTl9BUkdTKQogewotCS8qCi0JICogcGdfbm9kZV9saXN0IHN0 b3JlcyB0aGUgZGF0YSBpbiBiaW5hcnkgZm9ybSBhbmQgcGFyc2luZyB0ZXh0IGlucHV0IGlzCi0J ICogbm90IG5lZWRlZCwgc28gZGlzYWxsb3cgdGhpcy4KLQkgKi8KLQllcmVwb3J0KEVSUk9SLAot CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJIGVycm1zZygi Y2Fubm90IGFjY2VwdCBhIHZhbHVlIG9mIHR5cGUgJXMiLCAicGdfZGVwZW5kZW5jaWVzIikpKTsK KwljaGFyCSAgICpzdHIgPSBQR19HRVRBUkdfQ1NUUklORygwKTsKIAotCVBHX1JFVFVSTl9WT0lE KCk7CQkJLyoga2VlcCBjb21waWxlciBxdWlldCAqLworCURlcGVuZGVuY2llc1BhcnNlU3RhdGUg cGFyc2Vfc3RhdGU7CisJSnNvblBhcnNlRXJyb3JUeXBlIHJlc3VsdDsKKwlKc29uTGV4Q29udGV4 dCAqbGV4OworCUpzb25TZW1BY3Rpb24gc2VtX2FjdGlvbjsKKworCS8qIGluaXRpYWxpemUgdGhl IHNlbWFudGljIHN0YXRlICovCisJcGFyc2Vfc3RhdGUuc3RyID0gc3RyOworCXBhcnNlX3N0YXRl LnN0YXRlID0gREVQU19FWFBFQ1RfU1RBUlQ7CisJcGFyc2Vfc3RhdGUuZGVwZW5kZW5jeV9saXN0 ID0gTklMOworCXBhcnNlX3N0YXRlLmF0dG51bV9saXN0ID0gTklMOworCXBhcnNlX3N0YXRlLmRl cGVuZGVuY3kgPSAwOworCXBhcnNlX3N0YXRlLmRlZ3JlZSA9IDAuMDsKKwlwYXJzZV9zdGF0ZS5m b3VuZF9hdHRyaWJ1dGVzID0gZmFsc2U7CisJcGFyc2Vfc3RhdGUuZm91bmRfZGVwZW5kZW5jeSA9 IGZhbHNlOworCXBhcnNlX3N0YXRlLmZvdW5kX2RlZ3JlZSA9IGZhbHNlOworCXBhcnNlX3N0YXRl LmVzY29udGV4dCA9IGZjaW5mby0+Y29udGV4dDsKKworCS8qIHNldCBjYWxsYmFja3MgKi8KKwlz ZW1fYWN0aW9uLnNlbXN0YXRlID0gKHZvaWQgKikgJnBhcnNlX3N0YXRlOworCXNlbV9hY3Rpb24u b2JqZWN0X3N0YXJ0ID0gZGVwZW5kZW5jaWVzX29iamVjdF9zdGFydDsKKwlzZW1fYWN0aW9uLm9i amVjdF9lbmQgPSBkZXBlbmRlbmNpZXNfb2JqZWN0X2VuZDsKKwlzZW1fYWN0aW9uLmFycmF5X3N0 YXJ0ID0gZGVwZW5kZW5jaWVzX2FycmF5X3N0YXJ0OworCXNlbV9hY3Rpb24uYXJyYXlfZW5kID0g ZGVwZW5kZW5jaWVzX2FycmF5X2VuZDsKKwlzZW1fYWN0aW9uLmFycmF5X2VsZW1lbnRfc3RhcnQg PSBkZXBlbmRlbmNpZXNfYXJyYXlfZWxlbWVudF9zdGFydDsKKwlzZW1fYWN0aW9uLmFycmF5X2Vs ZW1lbnRfZW5kID0gTlVMTDsKKwlzZW1fYWN0aW9uLm9iamVjdF9maWVsZF9zdGFydCA9IGRlcGVu ZGVuY2llc19vYmplY3RfZmllbGRfc3RhcnQ7CisJc2VtX2FjdGlvbi5vYmplY3RfZmllbGRfZW5k ID0gTlVMTDsKKwlzZW1fYWN0aW9uLnNjYWxhciA9IGRlcGVuZGVuY2llc19zY2FsYXI7CisKKwls ZXggPSBtYWtlSnNvbkxleENvbnRleHRDc3RyaW5nTGVuKE5VTEwsIHN0ciwgc3RybGVuKHN0ciks IFBHX1VURjgsIHRydWUpOworCisJcmVzdWx0ID0gcGdfcGFyc2VfanNvbihsZXgsICZzZW1fYWN0 aW9uKTsKKwlmcmVlSnNvbkxleENvbnRleHQobGV4KTsKKworCWlmIChyZXN1bHQgPT0gSlNPTl9T VUNDRVNTKQorCXsKKwkJTGlzdAkgICAqbGlzdCA9IHBhcnNlX3N0YXRlLmRlcGVuZGVuY3lfbGlz dDsKKwkJaW50CQkJbmRlcHMgPSBsaXN0LT5sZW5ndGg7CisJCU1WRGVwZW5kZW5jaWVzICptdmRl cHM7CisJCWJ5dGVhCSAgICpieXRlczsKKworCQlpbnQJCWRlcF9tb3N0X2F0dHJzID0gMDsKKwkJ aW50CQlkZXBfbW9zdF9hdHRyc19pZHggPSAwOworCisJCXN3aXRjaChwYXJzZV9zdGF0ZS5zdGF0 ZSkKKwkJeworCQkJY2FzZSBERVBTX1BBUlNFX0NPTVBMRVRFOgorCQkJCS8qCisJCQkJICogUGFy c2UgZW5kZWQgaW4gdGhlIGV4cGVjdGVkIHBsYWNlLiBXZSBzaG91bGQgaGF2ZSBhIGxpc3Qgb2Yg aXRlbXMsCisJCQkJICogYnV0IGlmIHdlIGRvbid0IGl0IGlzIGJlY2F1c2UgdGhlcmUgYXJlIGJ1 Z3MgaW4gb3RoZXIgcGFyc2Ugc3RlcHMuCisJCQkJICovCisJCQkJaWYgKHBhcnNlX3N0YXRlLmRl cGVuZGVuY3lfbGlzdCA9PSBOSUwpCisJCQkJCWVsb2coRVJST1IsCisJCQkJCQkgInBnX2RlcGVu ZGVuY2llcyBwYXJzc2luZyBjbGFpbXMgc3VjY2VzcyB3aXRoIGFuIGVtcHR5IGl0ZW0gbGlzdC4i KTsKKworCQkJCWJyZWFrOworCisJCQljYXNlIERFUFNfRVhQRUNUX1NUQVJUOgorCQkJCS8qIGJs YW5rICovCisJCQkJZXJyc2F2ZShwYXJzZV9zdGF0ZS5lc2NvbnRleHQsCisJCQkJCQllcnJjb2Rl KEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQkJCWVycm1zZygibWFs Zm9ybWVkIHBnX2RlcGVuZGVuY2llczogXCIlc1wiIiwgc3RyKSwKKwkJCQkJCWVycmRldGFpbCgi VmFsdWUgY2Fubm90IGJlIGVtcHR5LiIpKTsKKwkJCQlQR19SRVRVUk5fTlVMTCgpOworCQkJCWJy ZWFrOworCisJCQlkZWZhdWx0OgorCQkJCS8qIFVuZXhwZWN0ZWQgZW5kLXN0YXRlLiBUT0RPOiBJ cyB0aGlzIGFuIGVsb2coKT8gKi8KKwkJCQllcnJzYXZlKHBhcnNlX3N0YXRlLmVzY29udGV4dCwK KwkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJ CQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiBcIiVzXCIiLCBzdHIpLAorCQkJ CQkJZXJyZGV0YWlsKCJVbmV4cGVjdGVkIGVuZCBzdGF0ZSAlZC4iLCBwYXJzZV9zdGF0ZS5zdGF0 ZSkpOworCQkJCVBHX1JFVFVSTl9OVUxMKCk7CisJCQkJYnJlYWs7CisJCX0KKworCQltdmRlcHMg PSBwYWxsb2MwKG9mZnNldG9mKE1WRGVwZW5kZW5jaWVzLCBkZXBzKSArIG5kZXBzICogc2l6ZW9m KE1WRGVwZW5kZW5jeSkpOworCQltdmRlcHMtPm1hZ2ljID0gU1RBVFNfREVQU19NQUdJQzsKKwkJ bXZkZXBzLT50eXBlID0gU1RBVFNfREVQU19UWVBFX0JBU0lDOworCQltdmRlcHMtPm5kZXBzID0g bmRlcHM7CisKKwkJLyogY29weSBNVkRlcGVuZGVuY3kgc3RydWN0cyBvdXQgb2YgdGhlIGxpc3Qg aW50byB0aGUgTVZEZXBlbmRlbmNpZXMgKi8KKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBuZGVwczsg aSsrKQorCQl7CisJCQltdmRlcHMtPmRlcHNbaV0gPSAoTVZEZXBlbmRlbmN5ICopIGxpc3RfbnRo KGxpc3QsIGkpOworCisJCQkvKgorCQkJICogRW5zdXJlIHRoYXQgdGhpcyBpdGVtIGRvZXMgbm90 IGR1cGxpY2F0ZSB0aGUgYXR0cmlidXRlcyBvZiBhbnkKKwkJCSAqIHByZS1leGlzdGluZyBpdGVt LgorCQkJICovCisJCQlmb3IgKGludCBqID0gMDsgaiA8IGk7IGorKykKKwkJCXsKKwkJCQlpZiAo aGFzX2R1cGxpY2F0ZV9hdHRyaWJ1dGVzKG12ZGVwcy0+ZGVwc1tpXSwgbXZkZXBzLT5kZXBzW2pd KSkKKwkJCQl7CisJCQkJCU1WRGVwZW5kZW5jeSAgICpkZXAgPSBtdmRlcHMtPmRlcHNbaV07CisK KwkJCQkJZXJyc2F2ZShwYXJzZV9zdGF0ZS5lc2NvbnRleHQsCisJCQkJCQkJZXJyY29kZShFUlJD T0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJCQkJZXJybXNnKCJtYWxmb3Jt ZWQgcGdfZGVwZW5kZW5jaWVzOiBcIiVzXCIiLCBzdHIpLAorCQkJCQkJCWVycmRldGFpbCgiRHVw bGljYXRlIFwiIiBQR19ERVBFTkRFTkNJRVNfS0VZX0FUVFJJQlVURVMgIlwiIGFycmF5OiBbJXNd IgorCQkJCQkJCQkJICAiIHdpdGggXCIiIFBHX0RFUEVOREVOQ0lFU19LRVlfREVQRU5ERU5DWSAi XCI6ICVkLiIsCisJCQkJCQkJCQkgIGRlcF9hdHRudW1fbGlzdChkZXApLCBkZXBfYXR0bnVtX2Rl cGVuZGVuY3koZGVwKSkpOworCQkJCQlQR19SRVRVUk5fTlVMTCgpOworCQkJCX0KKwkJCX0KKwor CQkJLyoKKwkJCSAqIEtlZXAgdHJhY2sgb2YgdGhlIGZpcnN0IGxvbmdlc3QgYXR0cmlidXRlIGxp c3QuIEFsbCBvdGhlciBhdHRyaWJ1dGUKKwkJCSAqIGxpc3RzIG11c3QgYmUgYSBzdWJzZXQgb2Yg dGhpcyBsaXN0LgorCQkJICovCisJCQlpZiAobXZkZXBzLT5kZXBzW2ldLT5uYXR0cmlidXRlcyA+ IGRlcF9tb3N0X2F0dHJzKQorCQkJeworCQkJCWRlcF9tb3N0X2F0dHJzID0gbXZkZXBzLT5kZXBz W2ldLT5uYXR0cmlidXRlczsKKwkJCQlkZXBfbW9zdF9hdHRyc19pZHggPSBpOworCQkJfQorCQl9 CisKKwkJLyoKKwkJICogVmVyaWZ5IHRoYXQgYWxsIGF0dG51bSBzZXRzIGFyZSBhIHByb3BlciBz dWJzZXQgb2YgdGhlIGZpcnN0IGxvbmdlc3QKKwkJICogYXR0bnVtIHNldC4KKwkJICovCisJCWZv ciAoaW50IGkgPSAwOyBpIDwgbmRlcHM7IGkrKykKKwkJeworCQkJaWYgKGkgPT0gZGVwX21vc3Rf YXR0cnNfaWR4KQorCQkJCWNvbnRpbnVlOworCisJCQlpZiAoIWRlcF9pc19hdHRudW1fc3Vic2V0 KG12ZGVwcy0+ZGVwc1tpXSwKKwkJCQkJCQkJCSAgbXZkZXBzLT5kZXBzW2RlcF9tb3N0X2F0dHJz X2lkeF0pKQorCQkJeworCQkJCU1WRGVwZW5kZW5jeSAgICpkZXAgPSBtdmRlcHMtPmRlcHNbaV07 CisJCQkJTVZEZXBlbmRlbmN5ICAgKnJlZmRlcCA9IG12ZGVwcy0+ZGVwc1tkZXBfbW9zdF9hdHRy c19pZHhdOworCQkJCWNvbnN0IGNoYXIgKmRlcF9saXN0ID0gZGVwX2F0dG51bV9saXN0KGRlcCk7 CisJCQkJY29uc3QgY2hhciAqcmVmZGVwX2xpc3QgPSBkZXBfYXR0bnVtX2xpc3QocmVmZGVwKTsK KworCQkJCWVycnNhdmUocGFyc2Vfc3RhdGUuZXNjb250ZXh0LAorCQkJCQkJZXJyY29kZShFUlJD T0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJCQllcnJtc2coIm1hbGZvcm1l ZCBwZ19kZXBlbmRlbmNpZXM6IFwiJXNcIiIsIHN0ciksCisJCQkJCQllcnJkZXRhaWwoIlwiIiBQ R19ERVBFTkRFTkNJRVNfS0VZX0FUVFJJQlVURVMgIlwiIGFycmF5OiBbJXNdIgorCQkJCQkJCQkg ICIgd2l0aCBkZXBlbmRlbmN5ICVkIG11c3QgYmUgYSBzdWJzZXQgb2YgYXJyYXk6IFslc10iCisJ CQkJCQkJCSAgIiB3aXRoIGRlcGVuZGVuY3kgJWQuIiwKKwkJCQkJCQkJICBkZXBfbGlzdCwgZGVw X2F0dG51bV9kZXBlbmRlbmN5KGRlcCksCisJCQkJCQkJCSAgcmVmZGVwX2xpc3QsIGRlcF9hdHRu dW1fZGVwZW5kZW5jeShyZWZkZXApKSk7CisJCQkJUEdfUkVUVVJOX05VTEwoKTsKKwkJCX0KKwkJ fQorCQlieXRlcyA9IHN0YXRleHRfZGVwZW5kZW5jaWVzX3NlcmlhbGl6ZShtdmRlcHMpOworCisJ CWxpc3RfZnJlZShsaXN0KTsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBuZGVwczsgaSsrKQorCQkJ cGZyZWUobXZkZXBzLT5kZXBzW2ldKTsKKwkJcGZyZWUobXZkZXBzKTsKKworCQlQR19SRVRVUk5f QllURUFfUChieXRlcyk7CisJfQorCisJLyoKKwkgKiBJZiBlc2NvbnRleHQgYWxyZWFkeSBzZXQs IGp1c3QgdXNlIHRoYXQuCisJICogQW55dGhpbmcgZWxzZSBpcyBhIGdlbmVyaWMgSlNPTiBwYXJz ZSBlcnJvci4KKwkgKi8KKwlpZiAoIVNPRlRfRVJST1JfT0NDVVJSRUQocGFyc2Vfc3RhdGUuZXNj b250ZXh0KSkKKwkJZXJyc2F2ZShwYXJzZV9zdGF0ZS5lc2NvbnRleHQsCisJCQkJZXJyY29kZShF UlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJZXJybXNnKCJtYWxmb3Jt ZWQgcGdfZGVwZW5kZW5jaWVzOiBcIiVzXCIiLCBzdHIpLAorCQkJCWVycmRldGFpbCgiTXVzdCBi ZSB2YWxpZCBKU09OLiIpKTsKKworCVBHX1JFVFVSTl9OVUxMKCk7CQkJLyoga2VlcCBjb21waWxl ciBxdWlldCAqLwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wZ19kZXBlbmRlbmNpZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wZ19kZXBl bmRlbmNpZXMub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jMjYz YzEzM2YwOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGdf ZGVwZW5kZW5jaWVzLm91dApAQCAtMCwwICsxLDM3NiBAQAorLS0gVGVzdHMgZm9yIHR5cGUgcGdf ZGlzdGluY3QKKy0tIEludmFsaWQgaW5wdXRzCitTRUxFQ1QgJ251bGwnOjpwZ19kZXBlbmRlbmNp ZXM7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJudWxsIgorTElORSAxOiBT RUxFQ1QgJ251bGwnOjpwZ19kZXBlbmRlbmNpZXM7CisgICAgICAgICAgICAgICBeCitERVRBSUw6 ICBVbmV4cGVjdGVkIHNjYWxhci4KK1NFTEVDVCAneyJhIjogMX0nOjpwZ19kZXBlbmRlbmNpZXM7 CitFUlJPUjogIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJ7ImEiOiAxfSIKK0xJTkUgMTog U0VMRUNUICd7ImEiOiAxfSc6OnBnX2RlcGVuZGVuY2llczsKKyAgICAgICAgICAgICAgIF4KK0RF VEFJTDogIEluaXRpYWwgZWxlbWVudCBtdXN0IGJlIGFuIGFycmF5LgorU0VMRUNUICdbXSc6OnBn X2RlcGVuZGVuY2llczsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIltdIgor TElORSAxOiBTRUxFQ1QgJ1tdJzo6cGdfZGVwZW5kZW5jaWVzOworICAgICAgICAgICAgICAgXgor REVUQUlMOiAgSXRlbSBhcnJheSBjYW5ub3QgYmUgZW1wdHkuCitTRUxFQ1QgJ3t9Jzo6cGdfZGVw ZW5kZW5jaWVzOworRVJST1I6ICBtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAie30iCitMSU5F IDE6IFNFTEVDVCAne30nOjpwZ19kZXBlbmRlbmNpZXM7CisgICAgICAgICAgICAgICBeCitERVRB SUw6ICBJbml0aWFsIGVsZW1lbnQgbXVzdCBiZSBhbiBhcnJheS4KK1NFTEVDVCAnW251bGxdJzo6 cGdfZGVwZW5kZW5jaWVzOworRVJST1I6ICBtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAiW251 bGxdIgorTElORSAxOiBTRUxFQ1QgJ1tudWxsXSc6OnBnX2RlcGVuZGVuY2llczsKKyAgICAgICAg ICAgICAgIF4KK0RFVEFJTDogIEl0ZW0gbGlzdCBlbGVtZW50cyBjYW5ub3QgYmUgbnVsbC4KK1NF TEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnbnVsbCcsICdwZ19kZXBlbmRlbmNpZXMn KTsKKyAgICAgICAgICAgICAgbWVzc2FnZSAgICAgICAgICAgICAgfCAgICAgICBkZXRhaWwgICAg ICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1h bGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJudWxsIiB8IFVuZXhwZWN0ZWQgc2NhbGFyLiB8ICAg ICAgfCAyMlAwMgorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8o J3siYSI6IDF9JywgJ3BnX2RlcGVuZGVuY2llcycpOworICAgICAgICAgICAgICAgIG1lc3NhZ2Ug ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgZGV0YWlsICAgICAgICAgICAgICAgfCBoaW50 IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0KKyBtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAieyJhIjogMX0iIHwgSW5pdGlhbCBl bGVtZW50IG11c3QgYmUgYW4gYXJyYXkuIHwgICAgICB8IDIyUDAyCisoMSByb3cpCisKK1NFTEVD VCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW10nLCAncGdfZGVwZW5kZW5jaWVzJyk7Cisg ICAgICAgICAgICAgbWVzc2FnZSAgICAgICAgICAgICB8ICAgICAgICAgICBkZXRhaWwgICAgICAg ICAgICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0t LS0tLQorIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbXSIgfCBJdGVtIGFycmF5IGNhbm5v dCBiZSBlbXB0eS4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBwZ19p bnB1dF9lcnJvcl9pbmZvKCd7fScsICdwZ19kZXBlbmRlbmNpZXMnKTsKKyAgICAgICAgICAgICBt ZXNzYWdlICAgICAgICAgICAgIHwgICAgICAgICAgICAgIGRldGFpbCAgICAgICAgICAgICAgIHwg aGludCB8IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0t LS0tCisgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogInt9IiB8IEluaXRpYWwgZWxlbWVudCBt dXN0IGJlIGFuIGFycmF5LiB8ICAgICAgfCAyMlAwMgorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9N IHBnX2lucHV0X2Vycm9yX2luZm8oJ1tudWxsXScsICdwZ19kZXBlbmRlbmNpZXMnKTsKKyAgICAg ICAgICAgICAgIG1lc3NhZ2UgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgZGV0YWlsICAg ICAgICAgICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbbnVs bF0iIHwgSXRlbSBsaXN0IGVsZW1lbnRzIGNhbm5vdCBiZSBudWxsLiB8ICAgICAgfCAyMlAwMgor KDEgcm93KQorCistLSBJbnZhbGlkIGtleXMKK1NFTEVDVCAnW3siYXR0cmlidXRlc19pbnZhbGlk IiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0fV0nOjpwZ19kZXBlbmRlbmNpZXM7CitFUlJPUjog IG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVzX2ludmFsaWQiIDogWzIs M10sICJkZXBlbmRlbmN5IiA6IDR9XSIKK0xJTkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1dGVzX2lu dmFsaWQiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDR9XSc6Li4uCisgICAgICAgICAgICAgICBe CitERVRBSUw6ICBPbmx5IGFsbG93ZWQga2V5cyBhcmUgImF0dHJpYnV0ZXMiLCAiZGVwZW5kZW5j eSIgYW5kICJkZWdyZWUiLgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiaW52YWxp ZCIgOiAzLCAiZGVwZW5kZW5jeSIgOiA0fV0nOjpwZ19kZXBlbmRlbmNpZXM7CitFUlJPUjogIG1h bGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiaW52YWxp ZCIgOiAzLCAiZGVwZW5kZW5jeSIgOiA0fV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRl cyIgOiBbMiwzXSwgImludmFsaWQiIDogMywgImRlcGVuZGVuY3kiIC4uLgorICAgICAgICAgICAg ICAgXgorREVUQUlMOiAgT25seSBhbGxvd2VkIGtleXMgYXJlICJhdHRyaWJ1dGVzIiwgImRlcGVu ZGVuY3kiIGFuZCAiZGVncmVlIi4KK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygn W3siYXR0cmlidXRlc19pbnZhbGlkIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0fV0nLCAncGdf ZGVwZW5kZW5jaWVzJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVz c2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkZXRhaWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaGludCB8 IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAiW3siYXR0cmli dXRlc19pbnZhbGlkIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0fV0iIHwgT25seSBhbGxvd2Vk IGtleXMgYXJlICJhdHRyaWJ1dGVzIiwgImRlcGVuZGVuY3kiIGFuZCAiZGVncmVlIi4gfCAgICAg IHwgMjJQMDIKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdb eyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiaW52YWxpZCIgOiAzLCAiZGVwZW5kZW5jeSIgOiA0fV0n LCAncGdfZGVwZW5kZW5jaWVzJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWVzc2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19kZXBl bmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiaW52YWxpZCIgOiAzLCAiZGVwZW5k ZW5jeSIgOiA0fV0iIHwgT25seSBhbGxvd2VkIGtleXMgYXJlICJhdHRyaWJ1dGVzIiwgImRlcGVu ZGVuY3kiIGFuZCAiZGVncmVlIi4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykKKworLS0gTWlzc2lu ZyBrZXlzCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDR9 XSc6OnBnX2RlcGVuZGVuY2llczsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczog Ilt7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDR9XSIKK0xJTkUgMTogU0VM RUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0fV0nOjpwZ19kZXBl Li4uCisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBJdGVtIG11c3QgY29udGFpbiAiZGVncmVl IiBrZXkuCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZWdyZWUiIDogMS4wMDB9 XSc6OnBnX2RlcGVuZGVuY2llczsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczog Ilt7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZWdyZWUiIDogMS4wMDB9XSIKK0xJTkUgMTogU0VM RUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVncmVlIiA6IDEuMDAwfV0nOjpwZ19kZXBl Li4uCisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBJdGVtIG11c3QgY29udGFpbiAiZGVwZW5k ZW5jeSIga2V5LgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIg OiA0fV0nOjpwZ19kZXBlbmRlbmNpZXM7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNp ZXM6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0fV0iCitMSU5FIDE6 IFNFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogNH1dJzo6cGdf ZGVwZS4uLgorICAgICAgICAgICAgICAgXgorREVUQUlMOiAgSXRlbSBtdXN0IGNvbnRhaW4gImRl Z3JlZSIga2V5LgorU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1 dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0fV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICBkZXRhaWwgICAgICAgICAgICAgIHwgaGludCB8 IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfZGVwZW5k ZW5jaWVzOiAiW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogNH1dIiB8IEl0 ZW0gbXVzdCBjb250YWluICJkZWdyZWUiIGtleS4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykKKwor U0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNd LCAiZGVncmVlIiA6IDEuMDAwfV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIGRldGFpbCAgICAgICAgICAgICAgICB8IGhpbnQgfCBzcWxfZXJy b3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNp ZXM6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVncmVlIiA6IDEuMDAwfV0iIHwgSXRlbSBt dXN0IGNvbnRhaW4gImRlcGVuZGVuY3kiIGtleS4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykKKwor U0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNd LCAiZGVwZW5kZW5jeSIgOiA0fV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICBkZXRhaWwgICAgICAgICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9j b2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAiW3si YXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogNH1dIiB8IEl0ZW0gbXVzdCBjb250 YWluICJkZWdyZWUiIGtleS4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykKKworLS0gVmFsaWQga2V5 cywgdG9vIG1hbnkgYXR0cmlidXRlcworU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsxLDIsMyw0 LDUsNiw3LDhdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XSc6OnBnX2RlcGVu ZGVuY2llczsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0 ZXMiIDogWzEsMiwzLDQsNSw2LDcsOF0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAw MH1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzEsMiwzLDQsNSw2LDcsOF0s ICJkZXBlbmRlbmN5IiA6IDQuLi4KKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIFRoZSAiYXR0 cmlidXRlcyIga2V5IG11c3QgY29udGFpbiBhbiBhcnJheSBvZiBhdCBsZWFzdCAxICBhbmQgbm8g dGhhbiA3IGVsZW1lbnRzLgorU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJh dHRyaWJ1dGVzIiA6IFsxLDIsMyw0LDUsNiw3LDhdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVl IjogMS4wMDB9XScsICdwZ19kZXBlbmRlbmNpZXMnKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRldGFpbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaGludCB8 IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0t CisgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDogWzEsMiwzLDQs NSw2LDcsOF0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1dIiB8IFRoZSAiYXR0 cmlidXRlcyIga2V5IG11c3QgY29udGFpbiBhbiBhcnJheSBvZiBhdCBsZWFzdCAxICBhbmQgbm8g dGhhbiA3IGVsZW1lbnRzLiB8ICAgICAgfCAyMlAwMgorKDEgcm93KQorCistLSBWYWxpZCBrZXlz LCBpbnZhbGlkIHZhbHVlcworU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IG51bGwsICJkZXBlbmRl bmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1dJzo6cGdfZGVwZW5kZW5jaWVzOworRVJST1I6ICBt YWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAiW3siYXR0cmlidXRlcyIgOiBudWxsLCAiZGVwZW5k ZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XSIKK0xJTkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1 dGVzIiA6IG51bGwsICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLi4uCisgICAgICAgICAg ICAgICBeCitERVRBSUw6ICBVbmV4cGVjdGVkIHNjYWxhci4KK1NFTEVDVCAnW3siYXR0cmlidXRl cyIgOiBbMixudWxsXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDEuMDAwfV0nOjpwZ19k ZXBlbmRlbmNpZXM7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJhdHRy aWJ1dGVzIiA6IFsyLG51bGxdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XSIK K0xJTkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLG51bGxdLCAiZGVwZW5kZW5jeSIg OiA0LCAiZGVncmVlLi4uCisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBBdHRyaWJ1dGUgbnVt YmVyIGFycmF5IGNhbm5vdCBiZSBudWxsLgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNd LCAiZGVwZW5kZW5jeSIgOiBudWxsLCAiZGVncmVlIjogMS4wMDB9XSc6OnBnX2RlcGVuZGVuY2ll czsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDog WzIsM10sICJkZXBlbmRlbmN5IiA6IG51bGwsICJkZWdyZWUiOiAxLjAwMH1dIgorTElORSAxOiBT RUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IG51bGwsICJkZWdy ZWUuLi4KKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIEludmFsaWQgImRlcGVuZGVuY3kiIHZh bHVlLgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLCJhIl0sICJkZXBlbmRlbmN5IiA6IDQs ICJkZWdyZWUiOiAxLjAwMH1dJzo6cGdfZGVwZW5kZW5jaWVzOworRVJST1I6ICBtYWxmb3JtZWQg cGdfZGVwZW5kZW5jaWVzOiAiW3siYXR0cmlidXRlcyIgOiBbMiwiYSJdLCAiZGVwZW5kZW5jeSIg OiA0LCAiZGVncmVlIjogMS4wMDB9XSIKK0xJTkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6 IFsyLCJhIl0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiLi4uCisgICAgICAgICAgICAgICBe CitERVRBSUw6ICBJbnZhbGlkICJhdHRyaWJ1dGVzIiB2YWx1ZS4KK1NFTEVDVCAnW3siYXR0cmli dXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogImEiLCAiZGVncmVlIjogMS4wMDB9XSc6OnBn X2RlcGVuZGVuY2llczsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0 dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6ICJhIiwgImRlZ3JlZSI6IDEuMDAwfV0i CitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDog ImEiLCAiZGVncmVlIi4uLgorICAgICAgICAgICAgICAgXgorREVUQUlMOiAgSW52YWxpZCAiZGVw ZW5kZW5jeSIgdmFsdWUuCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRl bmN5IiA6IFtdLCAiZGVncmVlIjogMS4wMDB9XSc6OnBnX2RlcGVuZGVuY2llczsKK0VSUk9SOiAg bWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBl bmRlbmN5IiA6IFtdLCAiZGVncmVlIjogMS4wMDB9XSIKK0xJTkUgMTogU0VMRUNUICdbeyJhdHRy aWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiBbXSwgImRlZ3JlZSI6Li4uCisgICAgICAg ICAgICAgICBeCitERVRBSUw6ICBBcnJheSBmb3VuZCBpbiB1bmV4cGVjdGVkIHBsYWNlLgorU0VM RUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiBbbnVsbF0sICJkZWdy ZWUiOiAxLjAwMH1dJzo6cGdfZGVwZW5kZW5jaWVzOworRVJST1I6ICBtYWxmb3JtZWQgcGdfZGVw ZW5kZW5jaWVzOiAiW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogW251bGxd LCAiZGVncmVlIjogMS4wMDB9XSIKK0xJTkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsy LDNdLCAiZGVwZW5kZW5jeSIgOiBbbnVsbF0sICJkZWdyLi4uCisgICAgICAgICAgICAgICBeCitE RVRBSUw6ICBBcnJheSBmb3VuZCBpbiB1bmV4cGVjdGVkIHBsYWNlLgorU0VMRUNUICdbeyJhdHRy aWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiBbMSxudWxsXSwgImRlZ3JlZSI6IDEuMDAw fV0nOjpwZ19kZXBlbmRlbmNpZXM7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6 ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiBbMSxudWxsXSwgImRlZ3Jl ZSI6IDEuMDAwfV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRl cGVuZGVuY3kiIDogWzEsbnVsbF0sICJkZS4uLgorICAgICAgICAgICAgICAgXgorREVUQUlMOiAg QXJyYXkgZm91bmQgaW4gdW5leHBlY3RlZCBwbGFjZS4KK1NFTEVDVCAnW3siYXR0cmlidXRlcyIg OiAxLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XSc6OnBnX2RlcGVuZGVuY2ll czsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDog MSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDEuMDAwfV0iCitMSU5FIDE6IFNFTEVDVCAn W3siYXR0cmlidXRlcyIgOiAxLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMC4uLgor ICAgICAgICAgICAgICAgXgorREVUQUlMOiAgVW5leHBlY3RlZCBzY2FsYXIuCitTRUxFQ1QgJ1t7 ImF0dHJpYnV0ZXMiIDogImEiLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XSc6 OnBnX2RlcGVuZGVuY2llczsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7 ImF0dHJpYnV0ZXMiIDogImEiLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XSIK K0xJTkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6ICJhIiwgImRlcGVuZGVuY3kiIDogNCwg ImRlZ3JlZSI6IDEuLi4uCisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBVbmV4cGVjdGVkIHNj YWxhci4KK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogNCwg ImRlZ3JlZSI6IE5hTn1dJzo6cGdfZGVwZW5kZW5jaWVzOworRVJST1I6ICBtYWxmb3JtZWQgcGdf ZGVwZW5kZW5jaWVzOiAiW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogNCwg ImRlZ3JlZSI6IE5hTn1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10s ICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAuLi4KKyAgICAgICAgICAgICAgIF4KK0RFVEFJ TDogIE11c3QgYmUgdmFsaWQgSlNPTi4KK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5m bygnW3siYXR0cmlidXRlcyIgOiBudWxsLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4w MDB9XScsICdwZ19kZXBlbmRlbmNpZXMnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbWVzc2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICBkZXRhaWwgICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0t LS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVz IiA6IG51bGwsICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1dIiB8IFVuZXhwZWN0 ZWQgc2NhbGFyLiB8ICAgICAgfCAyMlAwMgorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHBnX2lu cHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsbnVsbF0sICJkZXBlbmRlbmN5IiA6 IDQsICJkZWdyZWUiOiAxLjAwMH1dJywgJ3BnX2RlcGVuZGVuY2llcycpOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgZGV0YWlsICAgICAgICAg ICAgICAgICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0 dHJpYnV0ZXMiIDogWzIsbnVsbF0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1d IiB8IEF0dHJpYnV0ZSBudW1iZXIgYXJyYXkgY2Fubm90IGJlIG51bGwuIHwgICAgICB8IDIyUDAy CisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmli dXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogbnVsbCwgImRlZ3JlZSI6IDEuMDAwfV0nLCAn cGdfZGVwZW5kZW5jaWVzJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWVzc2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICBkZXRhaWwgICAgICAgICAgICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNp ZXM6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiBudWxsLCAiZGVncmVl IjogMS4wMDB9XSIgfCBJbnZhbGlkICJkZXBlbmRlbmN5IiB2YWx1ZS4gfCAgICAgIHwgMjJQMDIK KygxIHJvdykKKworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1 dGVzIiA6IFsyLCJhIl0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1dJywgJ3Bn X2RlcGVuZGVuY2llcycpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbWVzc2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICBkZXRhaWwgICAgICAgICAgICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczog Ilt7ImF0dHJpYnV0ZXMiIDogWzIsImEiXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDEu MDAwfV0iIHwgSW52YWxpZCAiYXR0cmlidXRlcyIgdmFsdWUuIHwgICAgICB8IDIyUDAyCisoMSBy b3cpCisKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIg OiBbMiwzXSwgImRlcGVuZGVuY3kiIDogImEiLCAiZGVncmVlIjogMS4wMDB9XScsICdwZ19kZXBl bmRlbmNpZXMnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1l c3NhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgZGV0YWlsICAgICAgICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJh dHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiAiYSIsICJkZWdyZWUiOiAxLjAwMH1d IiB8IEludmFsaWQgImRlcGVuZGVuY3kiIHZhbHVlLiB8ICAgICAgfCAyMlAwMgorKDEgcm93KQor CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIs M10sICJkZXBlbmRlbmN5IiA6IFtdLCAiZGVncmVlIjogMS4wMDB9XScsICdwZ19kZXBlbmRlbmNp ZXMnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2Ug ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICBk ZXRhaWwgICAgICAgICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7 ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IFtdLCAiZGVncmVlIjogMS4wMDB9 XSIgfCBBcnJheSBmb3VuZCBpbiB1bmV4cGVjdGVkIHBsYWNlLiB8ICAgICAgfCAyMlAwMgorKDEg cm93KQorCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMi IDogWzIsM10sICJkZXBlbmRlbmN5IiA6IFtudWxsXSwgImRlZ3JlZSI6IDEuMDAwfV0nLCAncGdf ZGVwZW5kZW5jaWVzJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1lc3NhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgIGRldGFpbCAgICAgICAgICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFsZm9ybWVkIHBn X2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IFtu dWxsXSwgImRlZ3JlZSI6IDEuMDAwfV0iIHwgQXJyYXkgZm91bmQgaW4gdW5leHBlY3RlZCBwbGFj ZS4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJv cl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiBbMSxudWxsXSwg ImRlZ3JlZSI6IDEuMDAwfV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgZGV0YWlsICAgICAgICAgICAg ICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0t LS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVz IiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiBbMSxudWxsXSwgImRlZ3JlZSI6IDEuMDAwfV0iIHwg QXJyYXkgZm91bmQgaW4gdW5leHBlY3RlZCBwbGFjZS4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykK KworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IDEs ICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1dJywgJ3BnX2RlcGVuZGVuY2llcycp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIGRldGFpbCAgICAgICB8IGhp bnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFsZm9ybWVkIHBnX2Rl cGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDogMSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3Jl ZSI6IDEuMDAwfV0iIHwgVW5leHBlY3RlZCBzY2FsYXIuIHwgICAgICB8IDIyUDAyCisoMSByb3cp CisKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiAi YSIsICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1dJywgJ3BnX2RlcGVuZGVuY2ll cycpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgZGV0YWlsICAgICAg IHwgaGludCB8IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1l ZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVzIiA6ICJhIiwgImRlcGVuZGVuY3kiIDog NCwgImRlZ3JlZSI6IDEuMDAwfV0iIHwgVW5leHBlY3RlZCBzY2FsYXIuIHwgICAgICB8IDIyUDAy CisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmli dXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IE5hTn1dJywgJ3BnX2Rl cGVuZGVuY2llcycpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1l c3NhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgZGV0 YWlsICAgICAgICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0t CisgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJk ZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiBOYU59XSIgfCBNdXN0IGJlIHZhbGlkIEpTT04uIHwg ICAgICB8IDIyUDAyCisoMSByb3cpCisKKy0tIER1cGxpY2F0ZWQga2V5cworU0VMRUNUICdbeyJh dHRyaWJ1dGVzIiA6IFsyLDNdLCAiYXR0cmlidXRlcyI6IFsxLDJdLCAiZGVwZW5kZW5jeSIgOiA0 LCAiZGVncmVlIjogMS4wMDB9XSc6OnBnX2RlcGVuZGVuY2llczsKK0VSUk9SOiAgbWFsZm9ybWVk IHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJhdHRyaWJ1dGVzIjog WzEsMl0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1dIgorTElORSAxOiBTRUxF Q1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJhdHRyaWJ1dGVzIjogWzEsMl0sICJkZXBlbmQu Li4KKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIE11bHRpcGxlICJhdHRyaWJ1dGVzIiBrZXlz IGFyZSBub3QgYWxsb3dlZC4KK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVu ZGVuY3kiIDogNCwgImRlcGVuZGVuY3kiOiA0LCAiZGVncmVlIjogMS4wMDB9XSc6OnBnX2RlcGVu ZGVuY2llczsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0 ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDQsICJkZXBlbmRlbmN5IjogNCwgImRlZ3JlZSI6 IDEuMDAwfV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVu ZGVuY3kiIDogNCwgImRlcGVuZGVuYy4uLgorICAgICAgICAgICAgICAgXgorREVUQUlMOiAgTXVs dGlwbGUgImRlcGVuZGVuY3kiIGtleXMgYXJlIG5vdCBhbGxvd2VkLgorU0VMRUNUICdbeyJhdHRy aWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSI6IDQsICJkZWdyZWUiOiAxLjAwMCwgImRlZ3Jl ZSI6IDEuMDAwfV0nOjpwZ19kZXBlbmRlbmNpZXM7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19kZXBl bmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSI6IDQsICJkZWdy ZWUiOiAxLjAwMCwgImRlZ3JlZSI6IDEuMDAwfV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmli dXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiOiA0LCAiZGVncmVlIjogMS4uLgorICAgICAgICAg ICAgICAgXgorREVUQUlMOiAgTXVsdGlwbGUgImRlZ3JlZSIga2V5cyBhcmUgbm90IGFsbG93ZWQu CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIs M10sICJhdHRyaWJ1dGVzIjogWzEsMl0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAw MH1dJywgJ3BnX2RlcGVuZGVuY2llcycpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICBkZXRhaWwgICAgICAg ICAgICAgICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZv cm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiYXR0cmlidXRl cyI6IFsxLDJdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XSIgfCBNdWx0aXBs ZSAiYXR0cmlidXRlcyIga2V5cyBhcmUgbm90IGFsbG93ZWQuIHwgICAgICB8IDIyUDAyCisoMSBy b3cpCisKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIg OiBbMiwzXSwgImRlcGVuZGVuY3kiIDogNCwgImRlcGVuZGVuY3kiOiA0LCAiZGVncmVlIjogMS4w MDB9XScsICdwZ19kZXBlbmRlbmNpZXMnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICBkZXRhaWwgICAgICAgICAg ICAgICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFsZm9ybWVkIHBn X2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDQs ICJkZXBlbmRlbmN5IjogNCwgImRlZ3JlZSI6IDEuMDAwfV0iIHwgTXVsdGlwbGUgImRlcGVuZGVu Y3kiIGtleXMgYXJlIG5vdCBhbGxvd2VkLiB8ICAgICAgfCAyMlAwMgorKDEgcm93KQorCitTRUxF Q1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJk ZXBlbmRlbmN5IjogNCwgImRlZ3JlZSI6IDEuMDAwLCAiZGVncmVlIjogMS4wMDB9XScsICdwZ19k ZXBlbmRlbmNpZXMnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICBkZXRhaWwgICAgICAgICAgICAgICAgICB8IGhpbnQg fCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAiW3siYXR0 cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiOiA0LCAiZGVncmVlIjogMS4wMDAsICJkZWdy ZWUiOiAxLjAwMH1dIiB8IE11bHRpcGxlICJkZWdyZWUiIGtleXMgYXJlIG5vdCBhbGxvd2VkLiB8 ICAgICAgfCAyMlAwMgorKDEgcm93KQorCistLSBJbnZhbGlkIGF0dG51bXMKK1NFTEVDVCAnW3si YXR0cmlidXRlcyIgOiBbMCwyXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDAuNTAwfV0n OjpwZ19kZXBlbmRlbmNpZXM7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJb eyJhdHRyaWJ1dGVzIiA6IFswLDJdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMC41MDB9 XSIKK0xJTkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFswLDJdLCAiZGVwZW5kZW5jeSIg OiA0LCAiZGVncmVlIjogLi4uCisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBJbnZhbGlkICJh dHRyaWJ1dGVzIiBlbGVtZW50OiAwLgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFstNywtOV0s ICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAwLjUwMH1dJzo6cGdfZGVwZW5kZW5jaWVzOwor RVJST1I6ICBtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAiW3siYXR0cmlidXRlcyIgOiBbLTcs LTldLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMC41MDB9XSIKK0xJTkUgMTogU0VMRUNU ICdbeyJhdHRyaWJ1dGVzIiA6IFstNywtOV0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiLi4u CisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBJbnZhbGlkICJhdHRyaWJ1dGVzIiBlbGVtZW50 OiAtOS4KK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIg OiBbMCwyXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDAuNTAwfV0nLCAncGdfZGVwZW5k ZW5jaWVzJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3Nh Z2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICBkZXRhaWwgICAgICAgICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAi W3siYXR0cmlidXRlcyIgOiBbMCwyXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDAuNTAw fV0iIHwgSW52YWxpZCAiYXR0cmlidXRlcyIgZWxlbWVudDogMC4gfCAgICAgIHwgMjJQMDIKKygx IHJvdykKKworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVz IiA6IFstNywtOV0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAwLjUwMH1dJywgJ3BnX2Rl cGVuZGVuY2llcycpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bWVzc2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICBkZXRhaWwgICAgICAgICAgICAgICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFsZm9ybWVkIHBnX2RlcGVu ZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDogWy03LC05XSwgImRlcGVuZGVuY3kiIDogNCwgImRl Z3JlZSI6IDAuNTAwfV0iIHwgSW52YWxpZCAiYXR0cmlidXRlcyIgZWxlbWVudDogLTkuIHwgICAg ICB8IDIyUDAyCisoMSByb3cpCisKKy0tIER1cGxpY2F0ZWQgYXR0cmlidXRlcworU0VMRUNUICdb eyJhdHRyaWJ1dGVzIiA6IFsyLDJdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMC41MDB9 XSc6OnBnX2RlcGVuZGVuY2llczsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczog Ilt7ImF0dHJpYnV0ZXMiIDogWzIsMl0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAwLjUw MH1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsMl0sICJkZXBlbmRlbmN5 IiA6IDQsICJkZWdyZWUiOiAuLi4KKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIEludmFsaWQg ImF0dHJpYnV0ZXMiIGVsZW1lbnQ6IDIgY2Fubm90IGZvbGxvdyAyLgorU0VMRUNUICogRlJPTSBw Z19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDJdLCAiZGVwZW5kZW5jeSIg OiA0LCAiZGVncmVlIjogMC41MDB9XScsICdwZ19kZXBlbmRlbmNpZXMnKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsICAgICAg ICAgICAgICAgICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFsZm9ybWVkIHBnX2RlcGVu ZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDogWzIsMl0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdy ZWUiOiAwLjUwMH1dIiB8IEludmFsaWQgImF0dHJpYnV0ZXMiIGVsZW1lbnQ6IDIgY2Fubm90IGZv bGxvdyAyLiB8ICAgICAgfCAyMlAwMgorKDEgcm93KQorCistLSBEdXBsaWNhdGVkIGF0dHJpYnV0 ZSBsaXN0cy4KK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDog NCwgImRlZ3JlZSI6IDEuMDAwfSwKKyAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzXSwgImRl cGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDEuMDAwfV0nOjpwZ19kZXBlbmRlbmNpZXM7CitFUlJP UjogIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAi ZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9LAorICAgICAgICAgeyJhdHRyaWJ1dGVz IiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XSIKK0xJTkUgMTog U0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVl IjogLi4uCisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBEdXBsaWNhdGUgImF0dHJpYnV0ZXMi IGFycmF5OiBbMiwgM10gd2l0aCAiZGVwZW5kZW5jeSI6IDQuCitTRUxFQ1QgKiBGUk9NIHBnX2lu cHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDQs ICJkZWdyZWUiOiAxLjAwMH0sCisgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBl bmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1dJywgJ3BnX2RlcGVuZGVuY2llcycpOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGV0YWlsICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0KKyBtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAiW3siYXR0cmlidXRlcyIgOiBbMiwz XSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDEuMDAwfSwrfCBEdXBsaWNhdGUgImF0dHJp YnV0ZXMiIGFycmF5OiBbMiwgM10gd2l0aCAiZGVwZW5kZW5jeSI6IDQuIHwgICAgICB8IDIyUDAy CisgICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVn cmVlIjogMS4wMDB9XSIgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgfCAKKygxIHJvdykK KworLS0gUGFydGlhbGx5LWNvdmVyZWQgYXR0cmlidXRlIGxpc3RzLgorU0VMRUNUICdbeyJhdHRy aWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9LAorICAg ICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsxLC0xXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6 IDEuMDAwfSwKKyAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzLC0xXSwgImRlcGVuZGVuY3ki IDogNCwgImRlZ3JlZSI6IDEuMDAwfSwKKyAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzLC0x LC0yXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDEuMDAwfV0nOjpwZ19kZXBlbmRlbmNp ZXM7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVzIiA6 IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9LAorICAgICAgICAgeyJh dHRyaWJ1dGVzIiA6IFsxLC0xXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDEuMDAwfSwK KyAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzLC0xXSwgImRlcGVuZGVuY3kiIDogNCwgImRl Z3JlZSI6IDEuMDAwfSwKKyAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzLC0xLC0yXSwgImRl cGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDEuMDAwfV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0 cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IC4uLgorICAgICAg ICAgICAgICAgXgorREVUQUlMOiAgImF0dHJpYnV0ZXMiIGFycmF5OiBbMSwgLTFdIHdpdGggZGVw ZW5kZW5jeSA0IG11c3QgYmUgYSBzdWJzZXQgb2YgYXJyYXk6IFsyLCAzLCAtMSwgLTJdIHdpdGgg ZGVwZW5kZW5jeSA0LgorU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRy aWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9LAorICAg ICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsxLC0xXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6 IDEuMDAwfSwKKyAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzLC0xXSwgImRlcGVuZGVuY3ki IDogNCwgImRlZ3JlZSI6IDEuMDAwfSwKKyAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzLC0x LC0yXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDEuMDAwfV0nLCAncGdfZGVwZW5kZW5j aWVzJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2Ug ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGhpbnQgfCBzcWxfZXJyb3JfY29k ZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQor IG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVw ZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9LCt8ICJhdHRyaWJ1dGVzIiBhcnJheTogWzEs IC0xXSB3aXRoIGRlcGVuZGVuY3kgNCBtdXN0IGJlIGEgc3Vic2V0IG9mIGFycmF5OiBbMiwgMywg LTEsIC0yXSB3aXRoIGRlcGVuZGVuY3kgNC4gfCAgICAgIHwgMjJQMDIKKyAgICAgICAgICB7ImF0 dHJpYnV0ZXMiIDogWzEsLTFdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9LCAg ICAgICAgICAgICAgICAgICArfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICB8IAorICAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzLC0x XSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDEuMDAwfSwgICAgICAgICAgICAgICAgICt8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg IHwgCisgICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLDMsLTEsLTJdLCAiZGVwZW5kZW5jeSIg OiA0LCAiZGVncmVlIjogMS4wMDB9XSIgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgfCAKKygxIHJvdykKKworLS0g VmFsaWQgaW5wdXRzCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5 IiA6IDQsICJkZWdyZWUiOiAwLjI1MH0sCisgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsLTFd LCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMC41MDB9LAorICAgICAgICAgeyJhdHRyaWJ1 dGVzIiA6IFsyLDMsLTFdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMC43NTB9LAorICAg ICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLDMsLTEsLTJdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVn cmVlIjogMS4wMDB9XSc6OnBnX2RlcGVuZGVuY2llczsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZGVwZW5kZW5jaWVz ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbeyJhdHRyaWJ1dGVz IjogWzIsIDNdLCAiZGVwZW5kZW5jeSI6IDQsICJkZWdyZWUiOiAwLjI1MDAwMH0sIHsiYXR0cmli dXRlcyI6IFsyLCAtMV0sICJkZXBlbmRlbmN5IjogNCwgImRlZ3JlZSI6IDAuNTAwMDAwfSwgeyJh dHRyaWJ1dGVzIjogWzIsIDMsIC0xXSwgImRlcGVuZGVuY3kiOiA0LCAiZGVncmVlIjogMC43NTAw MDB9LCB7ImF0dHJpYnV0ZXMiOiBbMiwgMywgLTEsIC0yXSwgImRlcGVuZGVuY3kiOiA0LCAiZGVn cmVlIjogMS4wMDAwMDB9XQorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9y X2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUi OiAwLjI1MH0sCisgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsLTFdLCAiZGVwZW5kZW5jeSIg OiA0LCAiZGVncmVlIjogMC41MDB9LAorICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLDMsLTFd LCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMC43NTB9LAorICAgICAgICAgeyJhdHRyaWJ1 dGVzIiA6IFsyLDMsLTEsLTJdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XScs ICdwZ19kZXBlbmRlbmNpZXMnKTsKKyBtZXNzYWdlIHwgZGV0YWlsIHwgaGludCB8IHNxbF9lcnJv cl9jb2RlIAorLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICB8ICAgICAgICB8ICAgICAgfCAKKygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2No ZWR1bGUKaW5kZXggZjNmMGI1ZjJmMzEuLmNjNmQ3OTliY2VhIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxs ZWxfc2NoZWR1bGUKQEAgLTI4LDcgKzI4LDcgQEAgdGVzdDogc3RyaW5ncyBtZDUgbnVtZXJvbG9n eSBwb2ludCBsc2VnIGxpbmUgYm94IHBhdGggcG9seWdvbiBjaXJjbGUgZGF0ZSB0aW1lIHQKICMg Z2VvbWV0cnkgZGVwZW5kcyBvbiBwb2ludCwgbHNlZywgbGluZSwgYm94LCBwYXRoLCBwb2x5Z29u LCBjaXJjbGUKICMgaG9yb2xvZ3kgZGVwZW5kcyBvbiBkYXRlLCB0aW1lLCB0aW1ldHosIHRpbWVz dGFtcCwgdGltZXN0YW1wdHosIGludGVydmFsCiAjIC0tLS0tLS0tLS0KLXRlc3Q6IGdlb21ldHJ5 IGhvcm9sb2d5IHRzdHlwZXMgcmVnZXggdHlwZV9zYW5pdHkgb3ByX3Nhbml0eSBtaXNjX3Nhbml0 eSBjb21tZW50cyBleHByZXNzaW9ucyB1bmljb2RlIHhpZCBtdmNjIGRhdGFiYXNlIHN0YXRzX2lt cG9ydCBwZ19uZGlzdGluY3QKK3Rlc3Q6IGdlb21ldHJ5IGhvcm9sb2d5IHRzdHlwZXMgcmVnZXgg dHlwZV9zYW5pdHkgb3ByX3Nhbml0eSBtaXNjX3Nhbml0eSBjb21tZW50cyBleHByZXNzaW9ucyB1 bmljb2RlIHhpZCBtdmNjIGRhdGFiYXNlIHN0YXRzX2ltcG9ydCBwZ19uZGlzdGluY3QgcGdfZGVw ZW5kZW5jaWVzCiAKICMgLS0tLS0tLS0tLQogIyBMb2FkIGh1Z2UgYW1vdW50cyBvZiBkYXRhCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wZ19kZXBlbmRlbmNpZXMuc3FsIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcGdfZGVwZW5kZW5jaWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uMGRkYTlmNzZiMWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9wZ19kZXBlbmRlbmNpZXMuc3FsCkBAIC0wLDAgKzEsOTkgQEAKKy0t IFRlc3RzIGZvciB0eXBlIHBnX2Rpc3RpbmN0CisKKy0tIEludmFsaWQgaW5wdXRzCitTRUxFQ1Qg J251bGwnOjpwZ19kZXBlbmRlbmNpZXM7CitTRUxFQ1QgJ3siYSI6IDF9Jzo6cGdfZGVwZW5kZW5j aWVzOworU0VMRUNUICdbXSc6OnBnX2RlcGVuZGVuY2llczsKK1NFTEVDVCAne30nOjpwZ19kZXBl bmRlbmNpZXM7CitTRUxFQ1QgJ1tudWxsXSc6OnBnX2RlcGVuZGVuY2llczsKK1NFTEVDVCAqIEZS T00gcGdfaW5wdXRfZXJyb3JfaW5mbygnbnVsbCcsICdwZ19kZXBlbmRlbmNpZXMnKTsKK1NFTEVD VCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygneyJhIjogMX0nLCAncGdfZGVwZW5kZW5jaWVz Jyk7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1tdJywgJ3BnX2RlcGVuZGVu Y2llcycpOworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCd7fScsICdwZ19kZXBl bmRlbmNpZXMnKTsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW251bGxdJywg J3BnX2RlcGVuZGVuY2llcycpOworCistLSBJbnZhbGlkIGtleXMKK1NFTEVDVCAnW3siYXR0cmli dXRlc19pbnZhbGlkIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0fV0nOjpwZ19kZXBlbmRlbmNp ZXM7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJpbnZhbGlkIiA6IDMsICJkZXBl bmRlbmN5IiA6IDR9XSc6OnBnX2RlcGVuZGVuY2llczsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRf ZXJyb3JfaW5mbygnW3siYXR0cmlidXRlc19pbnZhbGlkIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIg OiA0fV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9y X2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJpbnZhbGlkIiA6IDMsICJkZXBlbmRlbmN5 IiA6IDR9XScsICdwZ19kZXBlbmRlbmNpZXMnKTsKKworLS0gTWlzc2luZyBrZXlzCitTRUxFQ1Qg J1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDR9XSc6OnBnX2RlcGVuZGVu Y2llczsKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlZ3JlZSIgOiAxLjAwMH1d Jzo6cGdfZGVwZW5kZW5jaWVzOworU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVw ZW5kZW5jeSIgOiA0fV0nOjpwZ19kZXBlbmRlbmNpZXM7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0 X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDR9XScs ICdwZ19kZXBlbmRlbmNpZXMnKTsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygn W3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlZ3JlZSIgOiAxLjAwMH1dJywgJ3BnX2RlcGVuZGVu Y2llcycpOworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVz IiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0fV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7CisKKy0t IFZhbGlkIGtleXMsIHRvbyBtYW55IGF0dHJpYnV0ZXMKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIg OiBbMSwyLDMsNCw1LDYsNyw4XSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDEuMDAwfV0n OjpwZ19kZXBlbmRlbmNpZXM7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7 ImF0dHJpYnV0ZXMiIDogWzEsMiwzLDQsNSw2LDcsOF0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdy ZWUiOiAxLjAwMH1dJywgJ3BnX2RlcGVuZGVuY2llcycpOworCistLSBWYWxpZCBrZXlzLCBpbnZh bGlkIHZhbHVlcworU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IG51bGwsICJkZXBlbmRlbmN5IiA6 IDQsICJkZWdyZWUiOiAxLjAwMH1dJzo6cGdfZGVwZW5kZW5jaWVzOworU0VMRUNUICdbeyJhdHRy aWJ1dGVzIiA6IFsyLG51bGxdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XSc6 OnBnX2RlcGVuZGVuY2llczsKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVu ZGVuY3kiIDogbnVsbCwgImRlZ3JlZSI6IDEuMDAwfV0nOjpwZ19kZXBlbmRlbmNpZXM7CitTRUxF Q1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsImEiXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6 IDEuMDAwfV0nOjpwZ19kZXBlbmRlbmNpZXM7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIs M10sICJkZXBlbmRlbmN5IiA6ICJhIiwgImRlZ3JlZSI6IDEuMDAwfV0nOjpwZ19kZXBlbmRlbmNp ZXM7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IFtdLCAi ZGVncmVlIjogMS4wMDB9XSc6OnBnX2RlcGVuZGVuY2llczsKK1NFTEVDVCAnW3siYXR0cmlidXRl cyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogW251bGxdLCAiZGVncmVlIjogMS4wMDB9XSc6OnBn X2RlcGVuZGVuY2llczsKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVu Y3kiIDogWzEsbnVsbF0sICJkZWdyZWUiOiAxLjAwMH1dJzo6cGdfZGVwZW5kZW5jaWVzOworU0VM RUNUICdbeyJhdHRyaWJ1dGVzIiA6IDEsICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAw MH1dJzo6cGdfZGVwZW5kZW5jaWVzOworU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6ICJhIiwgImRl cGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDEuMDAwfV0nOjpwZ19kZXBlbmRlbmNpZXM7CitTRUxF Q1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiBO YU59XSc6OnBnX2RlcGVuZGVuY2llczsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5m bygnW3siYXR0cmlidXRlcyIgOiBudWxsLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4w MDB9XScsICdwZ19kZXBlbmRlbmNpZXMnKTsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3Jf aW5mbygnW3siYXR0cmlidXRlcyIgOiBbMixudWxsXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3Jl ZSI6IDEuMDAwfV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0 X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IG51bGws ICJkZWdyZWUiOiAxLjAwMH1dJywgJ3BnX2RlcGVuZGVuY2llcycpOworU0VMRUNUICogRlJPTSBw Z19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLCJhIl0sICJkZXBlbmRlbmN5 IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1dJywgJ3BnX2RlcGVuZGVuY2llcycpOworU0VMRUNUICog RlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5k ZW5jeSIgOiAiYSIsICJkZWdyZWUiOiAxLjAwMH1dJywgJ3BnX2RlcGVuZGVuY2llcycpOworU0VM RUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAi ZGVwZW5kZW5jeSIgOiBbXSwgImRlZ3JlZSI6IDEuMDAwfV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7 CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIs M10sICJkZXBlbmRlbmN5IiA6IFtudWxsXSwgImRlZ3JlZSI6IDEuMDAwfV0nLCAncGdfZGVwZW5k ZW5jaWVzJyk7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0 ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IFsxLG51bGxdLCAiZGVncmVlIjogMS4wMDB9XScs ICdwZ19kZXBlbmRlbmNpZXMnKTsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygn W3siYXR0cmlidXRlcyIgOiAxLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XScs ICdwZ19kZXBlbmRlbmNpZXMnKTsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygn W3siYXR0cmlidXRlcyIgOiAiYSIsICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1d JywgJ3BnX2RlcGVuZGVuY2llcycpOworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZv KCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogTmFO fV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7CisKKy0tIER1cGxpY2F0ZWQga2V5cworU0VMRUNUICdb eyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiYXR0cmlidXRlcyI6IFsxLDJdLCAiZGVwZW5kZW5jeSIg OiA0LCAiZGVncmVlIjogMS4wMDB9XSc6OnBnX2RlcGVuZGVuY2llczsKK1NFTEVDVCAnW3siYXR0 cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogNCwgImRlcGVuZGVuY3kiOiA0LCAiZGVn cmVlIjogMS4wMDB9XSc6OnBnX2RlcGVuZGVuY2llczsKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIg OiBbMiwzXSwgImRlcGVuZGVuY3kiOiA0LCAiZGVncmVlIjogMS4wMDAsICJkZWdyZWUiOiAxLjAw MH1dJzo6cGdfZGVwZW5kZW5jaWVzOworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZv KCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiYXR0cmlidXRlcyI6IFsxLDJdLCAiZGVwZW5kZW5j eSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XScsICdwZ19kZXBlbmRlbmNpZXMnKTsKK1NFTEVDVCAq IEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVu ZGVuY3kiIDogNCwgImRlcGVuZGVuY3kiOiA0LCAiZGVncmVlIjogMS4wMDB9XScsICdwZ19kZXBl bmRlbmNpZXMnKTsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmli dXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiOiA0LCAiZGVncmVlIjogMS4wMDAsICJkZWdyZWUi OiAxLjAwMH1dJywgJ3BnX2RlcGVuZGVuY2llcycpOworCistLSBJbnZhbGlkIGF0dG51bXMKK1NF TEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMCwyXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6 IDAuNTAwfV0nOjpwZ19kZXBlbmRlbmNpZXM7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWy03 LC05XSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDAuNTAwfV0nOjpwZ19kZXBlbmRlbmNp ZXM7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDog WzAsMl0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAwLjUwMH1dJywgJ3BnX2RlcGVuZGVu Y2llcycpOworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVz IiA6IFstNywtOV0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAwLjUwMH1dJywgJ3BnX2Rl cGVuZGVuY2llcycpOworCistLSBEdXBsaWNhdGVkIGF0dHJpYnV0ZXMKK1NFTEVDVCAnW3siYXR0 cmlidXRlcyIgOiBbMiwyXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDAuNTAwfV0nOjpw Z19kZXBlbmRlbmNpZXM7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0 dHJpYnV0ZXMiIDogWzIsMl0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAwLjUwMH1dJywg J3BnX2RlcGVuZGVuY2llcycpOworCistLSBEdXBsaWNhdGVkIGF0dHJpYnV0ZSBsaXN0cy4KK1NF TEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6 IDEuMDAwfSwKKyAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDog NCwgImRlZ3JlZSI6IDEuMDAwfV0nOjpwZ19kZXBlbmRlbmNpZXM7CitTRUxFQ1QgKiBGUk9NIHBn X2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6 IDQsICJkZWdyZWUiOiAxLjAwMH0sCisgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJk ZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1dJywgJ3BnX2RlcGVuZGVuY2llcycpOwor CistLSBQYXJ0aWFsbHktY292ZXJlZCBhdHRyaWJ1dGUgbGlzdHMuCitTRUxFQ1QgJ1t7ImF0dHJp YnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH0sCisgICAg ICAgICB7ImF0dHJpYnV0ZXMiIDogWzEsLTFdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjog MS4wMDB9LAorICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLDMsLTFdLCAiZGVwZW5kZW5jeSIg OiA0LCAiZGVncmVlIjogMS4wMDB9LAorICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLDMsLTEs LTJdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XSc6OnBnX2RlcGVuZGVuY2ll czsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBb MiwzXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDEuMDAwfSwKKyAgICAgICAgIHsiYXR0 cmlidXRlcyIgOiBbMSwtMV0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH0sCisg ICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsMywtMV0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdy ZWUiOiAxLjAwMH0sCisgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsMywtMSwtMl0sICJkZXBl bmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1dJywgJ3BnX2RlcGVuZGVuY2llcycpOworCist LSBWYWxpZCBpbnB1dHMKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVu Y3kiIDogNCwgImRlZ3JlZSI6IDAuMjUwfSwKKyAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwt MV0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAwLjUwMH0sCisgICAgICAgICB7ImF0dHJp YnV0ZXMiIDogWzIsMywtMV0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAwLjc1MH0sCisg ICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsMywtMSwtMl0sICJkZXBlbmRlbmN5IiA6IDQsICJk ZWdyZWUiOiAxLjAwMH1dJzo6cGdfZGVwZW5kZW5jaWVzOworU0VMRUNUICogRlJPTSBwZ19pbnB1 dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0LCAi ZGVncmVlIjogMC4yNTB9LAorICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLC0xXSwgImRlcGVu ZGVuY3kiIDogNCwgImRlZ3JlZSI6IDAuNTAwfSwKKyAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBb MiwzLC0xXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDAuNzUwfSwKKyAgICAgICAgIHsi YXR0cmlidXRlcyIgOiBbMiwzLC0xLC0yXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDEu MDAwfV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7Ci0tIAoyLjUxLjEKCg== --0000000000009429ff06440ec5f4 Content-Type: text/x-patch; charset="US-ASCII"; name="v16-0003-Expose-attribute-statistics-functions-for-use-in.patch" Content-Disposition: attachment; filename="v16-0003-Expose-attribute-statistics-functions-for-use-in.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mi81k6hc2 RnJvbSBlMGM3ZjNmZGYyYTgyYzM5YWFhNmUzMzQxMzg0ZGIxMjkzYTM3NDQ5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDb3JleSBIdWlua2VyIDxjb3JleS5odWlua2VyQGdtYWlsLmNv bT4KRGF0ZTogVHVlLCA0IE5vdiAyMDI1IDIzOjUwOjAxIC0wNTAwClN1YmplY3Q6IFtQQVRDSCB2 MTYgMy81XSBFeHBvc2UgYXR0cmlidXRlIHN0YXRpc3RpY3MgZnVuY3Rpb25zIGZvciB1c2UgaW4K IGV4dGVuZGVkX3N0YXRzLgoKTWFueSBvZiB0aGUgb3BlcmF0aW9ucyBvZiBhdHRyaWJ1dGUgc3Rh dHMgaGF2ZSBhbmFsb2dvdXMgb3BlcmF0aW9ucyBpbgpleHRlbmRlZCBzdGF0cy4KCiogZ2V0X2F0 dHJfc3RhdF90eXBlKCkgcmVuYW1lZCB0byBzdGF0YXR0X2dldF90eXBlKCkKKiBpbml0X2VtcHR5 X3N0YXRzX3R1cGxlKCkgcmVuYW1lZCB0byBzdGF0YXR0X2luaXRfZW1wdHlfdHVwbGUoKQoqIHRl eHRfdG9fc3RhdmFsdWVzKCkKKiBnZXRfZWxlbV9zdGF0X3R5cGUoKSByZW5hbWVkIHRvIHN0YXRh dHRfZ2V0X2VsZW1fdHlwZSgpCgpBbHNvLCBhZGQgY29tbWVudHMgZXhwbGFpbmluZyB0aGUgZnVu Y3Rpb24gYXJndW1lbnQgaW5kZXggZW51bXMsIGFuZCB0aGUKYXJyYXlzIHRoYXQgYXJlIGluZGV4 ZWQgYnkgdGhvc2UgZW51bXMuCi0tLQogc3JjL2luY2x1ZGUvc3RhdGlzdGljcy9zdGF0aXN0aWNz LmggICAgICB8ICAxNyArKysKIHNyYy9iYWNrZW5kL3N0YXRpc3RpY3MvYXR0cmlidXRlX3N0YXRz LmMgfCAxMjYgKysrKysrKysrKystLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNzcgaW5z ZXJ0aW9ucygrKSwgNjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvc3Rh dGlzdGljcy9zdGF0aXN0aWNzLmggYi9zcmMvaW5jbHVkZS9zdGF0aXN0aWNzL3N0YXRpc3RpY3Mu aAppbmRleCA3ZGQwZjk3NTU0NS4uMGRmNjZiMzUyYTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3N0YXRpc3RpY3Mvc3RhdGlzdGljcy5oCisrKyBiL3NyYy9pbmNsdWRlL3N0YXRpc3RpY3Mvc3Rh dGlzdGljcy5oCkBAIC0xMjcsNCArMTI3LDIxIEBAIGV4dGVybiBTdGF0aXN0aWNFeHRJbmZvICpj aG9vc2VfYmVzdF9zdGF0aXN0aWNzKExpc3QgKnN0YXRzLCBjaGFyIHJlcXVpcmVka2luZCwKIAkJ CQkJCQkJCQkJCWludCBuY2xhdXNlcyk7CiBleHRlcm4gSGVhcFR1cGxlIHN0YXRleHRfZXhwcmVz c2lvbnNfbG9hZChPaWQgc3R4b2lkLCBib29sIGluaCwgaW50IGlkeCk7CiAKK2V4dGVybiB2b2lk IHN0YXRhdHRfZ2V0X3R5cGUoT2lkIHJlbG9pZCwgQXR0ck51bWJlciBhdHRudW0sCisJCQkJCQkJ IE9pZCAqYXR0dHlwaWQsIGludDMyICphdHR0eXBtb2QsCisJCQkJCQkJIGNoYXIgKmF0dHR5cHR5 cGUsIE9pZCAqYXR0dHlwY29sbCwKKwkJCQkJCQkgT2lkICplcV9vcHIsIE9pZCAqbHRfb3ByKTsK K2V4dGVybiB2b2lkIHN0YXRhdHRfaW5pdF9lbXB0eV90dXBsZShPaWQgcmVsb2lkLCBpbnQxNiBh dHRudW0sIGJvb2wgaW5oZXJpdGVkLAorCQkJCQkJCQkJIERhdHVtICp2YWx1ZXMsIGJvb2wgKm51 bGxzLCBib29sICpyZXBsYWNlcyk7CisKK2V4dGVybiB2b2lkIHN0YXRhdHRfc2V0X3Nsb3QoRGF0 dW0gKnZhbHVlcywgYm9vbCAqbnVsbHMsIGJvb2wgKnJlcGxhY2VzLAorCQkJCQkJCSBpbnQxNiBz dGFraW5kLCBPaWQgc3Rhb3AsIE9pZCBzdGFjb2xsLAorCQkJCQkJCSBEYXR1bSBzdGFudW1iZXJz LCBib29sIHN0YW51bWJlcnNfaXNudWxsLAorCQkJCQkJCSBEYXR1bSBzdGF2YWx1ZXMsIGJvb2wg c3RhdmFsdWVzX2lzbnVsbCk7CisKK2V4dGVybiBEYXR1bSB0ZXh0X3RvX3N0YXZhbHVlcyhjb25z dCBjaGFyICpzdGFuYW1lLCBGbWdySW5mbyAqYXJyYXlfaW4sIERhdHVtIGQsCisJCQkJCQkJICAg T2lkIHR5cGlkLCBpbnQzMiB0eXBtb2QsIGJvb2wgKm9rKTsKK2V4dGVybiBib29sIHN0YXRhdHRf Z2V0X2VsZW1fdHlwZShPaWQgYXR0dHlwaWQsIGNoYXIgYXR0dHlwdHlwZSwKKwkJCQkJCQkJICBP aWQgKmVsZW10eXBpZCwgT2lkICplbGVtX2VxX29wcik7CisKICNlbmRpZgkJCQkJCQkvKiBTVEFU SVNUSUNTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0YXRpc3RpY3MvYXR0cmlidXRl X3N0YXRzLmMgYi9zcmMvYmFja2VuZC9zdGF0aXN0aWNzL2F0dHJpYnV0ZV9zdGF0cy5jCmluZGV4 IGVmNGQ3NjhmZWFiLi5kMGM2N2E0MTI4ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RhdGlz dGljcy9hdHRyaWJ1dGVfc3RhdHMuYworKysgYi9zcmMvYmFja2VuZC9zdGF0aXN0aWNzL2F0dHJp YnV0ZV9zdGF0cy5jCkBAIC02NCw2ICs2NCwxMCBAQCBlbnVtIGF0dHJpYnV0ZV9zdGF0c19hcmdu dW0KIAlOVU1fQVRUUklCVVRFX1NUQVRTX0FSR1MKIH07CiAKKy8qCisgKiBUaGUgYXJndW1lbnQg bmFtZXMgYW5kIHR5cG9pZHMgb2YgdGhlIGFyZ3VtZW50cyBmb3IKKyAqIGF0dHJpYnV0ZV9zdGF0 aXN0aWNzX3VwZGF0ZS4KKyAqLwogc3RhdGljIHN0cnVjdCBTdGF0c0FyZ0luZm8gYXR0YXJnaW5m b1tdID0KIHsKIAlbQVRUUkVMU0NIRU1BX0FSR10gPSB7InNjaGVtYW5hbWUiLCBURVhUT0lEfSwK QEAgLTEwMSw2ICsxMDUsMTAgQEAgZW51bSBjbGVhcl9hdHRyaWJ1dGVfc3RhdHNfYXJnbnVtCiAJ Q19OVU1fQVRUUklCVVRFX1NUQVRTX0FSR1MKIH07CiAKKy8qCisgKiBUaGUgYXJndW1lbnQgbmFt ZXMgYW5kIHR5cG9pZHMgb2YgdGhlIGFyZ3VtZW50cyBmb3IKKyAqIHBnX2NsZWFyX2F0dHJpYnV0 ZV9zdGF0cy4KKyAqLwogc3RhdGljIHN0cnVjdCBTdGF0c0FyZ0luZm8gY2xlYXJhcmdpbmZvW10g PQogewogCVtDX0FUVFJFTFNDSEVNQV9BUkddID0geyJyZWxhdGlvbiIsIFRFWFRPSUR9LApAQCAt MTEyLDIzICsxMjAsOSBAQCBzdGF0aWMgc3RydWN0IFN0YXRzQXJnSW5mbyBjbGVhcmFyZ2luZm9b XSA9CiAKIHN0YXRpYyBib29sIGF0dHJpYnV0ZV9zdGF0aXN0aWNzX3VwZGF0ZShGdW5jdGlvbkNh bGxJbmZvIGZjaW5mbyk7CiBzdGF0aWMgTm9kZSAqZ2V0X2F0dHJfZXhwcihSZWxhdGlvbiByZWws IGludCBhdHRudW0pOwotc3RhdGljIHZvaWQgZ2V0X2F0dHJfc3RhdF90eXBlKE9pZCByZWxvaWQs IEF0dHJOdW1iZXIgYXR0bnVtLAotCQkJCQkJCSAgIE9pZCAqYXR0dHlwaWQsIGludDMyICphdHR0 eXBtb2QsCi0JCQkJCQkJICAgY2hhciAqYXR0dHlwdHlwZSwgT2lkICphdHR0eXBjb2xsLAotCQkJ CQkJCSAgIE9pZCAqZXFfb3ByLCBPaWQgKmx0X29wcik7Ci1zdGF0aWMgYm9vbCBnZXRfZWxlbV9z dGF0X3R5cGUoT2lkIGF0dHR5cGlkLCBjaGFyIGF0dHR5cHR5cGUsCi0JCQkJCQkJICAgT2lkICpl bGVtdHlwaWQsIE9pZCAqZWxlbV9lcV9vcHIpOwotc3RhdGljIERhdHVtIHRleHRfdG9fc3RhdmFs dWVzKGNvbnN0IGNoYXIgKnN0YW5hbWUsIEZtZ3JJbmZvICphcnJheV9pbiwgRGF0dW0gZCwKLQkJ CQkJCQkgICBPaWQgdHlwaWQsIGludDMyIHR5cG1vZCwgYm9vbCAqb2spOwotc3RhdGljIHZvaWQg c2V0X3N0YXRzX3Nsb3QoRGF0dW0gKnZhbHVlcywgYm9vbCAqbnVsbHMsIGJvb2wgKnJlcGxhY2Vz LAotCQkJCQkJICAgaW50MTYgc3Rha2luZCwgT2lkIHN0YW9wLCBPaWQgc3RhY29sbCwKLQkJCQkJ CSAgIERhdHVtIHN0YW51bWJlcnMsIGJvb2wgc3RhbnVtYmVyc19pc251bGwsCi0JCQkJCQkgICBE YXR1bSBzdGF2YWx1ZXMsIGJvb2wgc3RhdmFsdWVzX2lzbnVsbCk7CiBzdGF0aWMgdm9pZCB1cHNl cnRfcGdfc3RhdGlzdGljKFJlbGF0aW9uIHN0YXJlbCwgSGVhcFR1cGxlIG9sZHR1cCwKIAkJCQkJ CQkJY29uc3QgRGF0dW0gKnZhbHVlcywgY29uc3QgYm9vbCAqbnVsbHMsIGNvbnN0IGJvb2wgKnJl cGxhY2VzKTsKIHN0YXRpYyBib29sIGRlbGV0ZV9wZ19zdGF0aXN0aWMoT2lkIHJlbG9pZCwgQXR0 ck51bWJlciBhdHRudW0sIGJvb2wgc3RhaW5oZXJpdCk7Ci1zdGF0aWMgdm9pZCBpbml0X2VtcHR5 X3N0YXRzX3R1cGxlKE9pZCByZWxvaWQsIGludDE2IGF0dG51bSwgYm9vbCBpbmhlcml0ZWQsCi0J CQkJCQkJCSAgIERhdHVtICp2YWx1ZXMsIGJvb2wgKm51bGxzLCBib29sICpyZXBsYWNlcyk7CiAK IC8qCiAgKiBJbnNlcnQgb3IgVXBkYXRlIEF0dHJpYnV0ZSBTdGF0aXN0aWNzCkBAIC0yOTgsMTYg KzI5MiwxNiBAQCBhdHRyaWJ1dGVfc3RhdGlzdGljc191cGRhdGUoRnVuY3Rpb25DYWxsSW5mbyBm Y2luZm8pCiAJfQogCiAJLyogZGVyaXZlIGluZm9ybWF0aW9uIGZyb20gYXR0cmlidXRlICovCi0J Z2V0X2F0dHJfc3RhdF90eXBlKHJlbG9pZCwgYXR0bnVtLAotCQkJCQkgICAmYXR0dHlwaWQsICZh dHR0eXBtb2QsCi0JCQkJCSAgICZhdHR0eXB0eXBlLCAmYXR0dHlwY29sbCwKLQkJCQkJICAgJmVx X29wciwgJmx0X29wcik7CisJc3RhdGF0dF9nZXRfdHlwZShyZWxvaWQsIGF0dG51bSwKKwkJCQkJ ICZhdHR0eXBpZCwgJmF0dHR5cG1vZCwKKwkJCQkJICZhdHR0eXB0eXBlLCAmYXR0dHlwY29sbCwK KwkJCQkJICZlcV9vcHIsICZsdF9vcHIpOwogCiAJLyogaWYgbmVlZGVkLCBkZXJpdmUgZWxlbWVu dCB0eXBlICovCiAJaWYgKGRvX21jZWxlbSB8fCBkb19kZWNoaXN0KQogCXsKLQkJaWYgKCFnZXRf ZWxlbV9zdGF0X3R5cGUoYXR0dHlwaWQsIGF0dHR5cHR5cGUsCi0JCQkJCQkJCSZlbGVtdHlwaWQs ICZlbGVtX2VxX29wcikpCisJCWlmICghc3RhdGF0dF9nZXRfZWxlbV90eXBlKGF0dHR5cGlkLCBh dHR0eXB0eXBlLAorCQkJCQkJCQkgICAmZWxlbXR5cGlkLCAmZWxlbV9lcV9vcHIpKQogCQl7CiAJ CQllcmVwb3J0KFdBUk5JTkcsCiAJCQkJCShlcnJtc2coImNvdWxkIG5vdCBkZXRlcm1pbmUgZWxl bWVudCB0eXBlIG9mIGNvbHVtbiBcIiVzXCIiLCBhdHRuYW1lKSwKQEAgLTM2MSw3ICszNTUsNyBA QCBhdHRyaWJ1dGVfc3RhdGlzdGljc191cGRhdGUoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8pCiAJ aWYgKEhlYXBUdXBsZUlzVmFsaWQoc3RhdHVwKSkKIAkJaGVhcF9kZWZvcm1fdHVwbGUoc3RhdHVw LCBSZWxhdGlvbkdldERlc2NyKHN0YXJlbCksIHZhbHVlcywgbnVsbHMpOwogCWVsc2UKLQkJaW5p dF9lbXB0eV9zdGF0c190dXBsZShyZWxvaWQsIGF0dG51bSwgaW5oZXJpdGVkLCB2YWx1ZXMsIG51 bGxzLAorCQlzdGF0YXR0X2luaXRfZW1wdHlfdHVwbGUocmVsb2lkLCBhdHRudW0sIGluaGVyaXRl ZCwgdmFsdWVzLCBudWxscywKIAkJCQkJCQkgICByZXBsYWNlcyk7CiAKIAkvKiBpZiBzcGVjaWZp ZWQsIHNldCB0byBhcmd1bWVudCB2YWx1ZXMgKi8KQEAgLTM5NCwxMCArMzg4LDEwIEBAIGF0dHJp YnV0ZV9zdGF0aXN0aWNzX3VwZGF0ZShGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbykKIAogCQlpZiAo Y29udmVydGVkKQogCQl7Ci0JCQlzZXRfc3RhdHNfc2xvdCh2YWx1ZXMsIG51bGxzLCByZXBsYWNl cywKLQkJCQkJCSAgIFNUQVRJU1RJQ19LSU5EX01DViwKLQkJCQkJCSAgIGVxX29wciwgYXR0dHlw Y29sbCwKLQkJCQkJCSAgIHN0YW51bWJlcnMsIGZhbHNlLCBzdGF2YWx1ZXMsIGZhbHNlKTsKKwkJ CXN0YXRhdHRfc2V0X3Nsb3QodmFsdWVzLCBudWxscywgcmVwbGFjZXMsCisJCQkJCQkJIFNUQVRJ U1RJQ19LSU5EX01DViwKKwkJCQkJCQkgZXFfb3ByLCBhdHR0eXBjb2xsLAorCQkJCQkJCSBzdGFu dW1iZXJzLCBmYWxzZSwgc3RhdmFsdWVzLCBmYWxzZSk7CiAJCX0KIAkJZWxzZQogCQkJcmVzdWx0 ID0gZmFsc2U7CkBAIC00MTcsMTAgKzQxMSwxMCBAQCBhdHRyaWJ1dGVfc3RhdGlzdGljc191cGRh dGUoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8pCiAKIAkJaWYgKGNvbnZlcnRlZCkKIAkJewotCQkJ c2V0X3N0YXRzX3Nsb3QodmFsdWVzLCBudWxscywgcmVwbGFjZXMsCi0JCQkJCQkgICBTVEFUSVNU SUNfS0lORF9ISVNUT0dSQU0sCi0JCQkJCQkgICBsdF9vcHIsIGF0dHR5cGNvbGwsCi0JCQkJCQkg ICAwLCB0cnVlLCBzdGF2YWx1ZXMsIGZhbHNlKTsKKwkJCXN0YXRhdHRfc2V0X3Nsb3QodmFsdWVz LCBudWxscywgcmVwbGFjZXMsCisJCQkJCQkJIFNUQVRJU1RJQ19LSU5EX0hJU1RPR1JBTSwKKwkJ CQkJCQkgbHRfb3ByLCBhdHR0eXBjb2xsLAorCQkJCQkJCSAwLCB0cnVlLCBzdGF2YWx1ZXMsIGZh bHNlKTsKIAkJfQogCQllbHNlCiAJCQlyZXN1bHQgPSBmYWxzZTsKQEAgLTQzMywxMCArNDI3LDEw IEBAIGF0dHJpYnV0ZV9zdGF0aXN0aWNzX3VwZGF0ZShGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbykK IAkJQXJyYXlUeXBlICAqYXJyeSA9IGNvbnN0cnVjdF9hcnJheV9idWlsdGluKGVsZW1zLCAxLCBG TE9BVDRPSUQpOwogCQlEYXR1bQkJc3RhbnVtYmVycyA9IFBvaW50ZXJHZXREYXR1bShhcnJ5KTsK IAotCQlzZXRfc3RhdHNfc2xvdCh2YWx1ZXMsIG51bGxzLCByZXBsYWNlcywKLQkJCQkJICAgU1RB VElTVElDX0tJTkRfQ09SUkVMQVRJT04sCi0JCQkJCSAgIGx0X29wciwgYXR0dHlwY29sbCwKLQkJ CQkJICAgc3RhbnVtYmVycywgZmFsc2UsIDAsIHRydWUpOworCQlzdGF0YXR0X3NldF9zbG90KHZh bHVlcywgbnVsbHMsIHJlcGxhY2VzLAorCQkJCQkJIFNUQVRJU1RJQ19LSU5EX0NPUlJFTEFUSU9O LAorCQkJCQkJIGx0X29wciwgYXR0dHlwY29sbCwKKwkJCQkJCSBzdGFudW1iZXJzLCBmYWxzZSwg MCwgdHJ1ZSk7CiAJfQogCiAJLyogU1RBVElTVElDX0tJTkRfTUNFTEVNICovCkBAIC00NTQsMTAg KzQ0OCwxMCBAQCBhdHRyaWJ1dGVfc3RhdGlzdGljc191cGRhdGUoRnVuY3Rpb25DYWxsSW5mbyBm Y2luZm8pCiAKIAkJaWYgKGNvbnZlcnRlZCkKIAkJewotCQkJc2V0X3N0YXRzX3Nsb3QodmFsdWVz LCBudWxscywgcmVwbGFjZXMsCi0JCQkJCQkgICBTVEFUSVNUSUNfS0lORF9NQ0VMRU0sCi0JCQkJ CQkgICBlbGVtX2VxX29wciwgYXR0dHlwY29sbCwKLQkJCQkJCSAgIHN0YW51bWJlcnMsIGZhbHNl LCBzdGF2YWx1ZXMsIGZhbHNlKTsKKwkJCXN0YXRhdHRfc2V0X3Nsb3QodmFsdWVzLCBudWxscywg cmVwbGFjZXMsCisJCQkJCQkJIFNUQVRJU1RJQ19LSU5EX01DRUxFTSwKKwkJCQkJCQkgZWxlbV9l cV9vcHIsIGF0dHR5cGNvbGwsCisJCQkJCQkJIHN0YW51bWJlcnMsIGZhbHNlLCBzdGF2YWx1ZXMs IGZhbHNlKTsKIAkJfQogCQllbHNlCiAJCQlyZXN1bHQgPSBmYWxzZTsKQEAgLTQ2OCwxMCArNDYy LDEwIEBAIGF0dHJpYnV0ZV9zdGF0aXN0aWNzX3VwZGF0ZShGdW5jdGlvbkNhbGxJbmZvIGZjaW5m bykKIAl7CiAJCURhdHVtCQlzdGFudW1iZXJzID0gUEdfR0VUQVJHX0RBVFVNKEVMRU1fQ09VTlRf SElTVE9HUkFNX0FSRyk7CiAKLQkJc2V0X3N0YXRzX3Nsb3QodmFsdWVzLCBudWxscywgcmVwbGFj ZXMsCi0JCQkJCSAgIFNUQVRJU1RJQ19LSU5EX0RFQ0hJU1QsCi0JCQkJCSAgIGVsZW1fZXFfb3By LCBhdHR0eXBjb2xsLAotCQkJCQkgICBzdGFudW1iZXJzLCBmYWxzZSwgMCwgdHJ1ZSk7CisJCXN0 YXRhdHRfc2V0X3Nsb3QodmFsdWVzLCBudWxscywgcmVwbGFjZXMsCisJCQkJCQkgU1RBVElTVElD X0tJTkRfREVDSElTVCwKKwkJCQkJCSBlbGVtX2VxX29wciwgYXR0dHlwY29sbCwKKwkJCQkJCSBz dGFudW1iZXJzLCBmYWxzZSwgMCwgdHJ1ZSk7CiAJfQogCiAJLyoKQEAgLTQ5NCwxMCArNDg4LDEw IEBAIGF0dHJpYnV0ZV9zdGF0aXN0aWNzX3VwZGF0ZShGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbykK IAogCQlpZiAoY29udmVydGVkKQogCQl7Ci0JCQlzZXRfc3RhdHNfc2xvdCh2YWx1ZXMsIG51bGxz LCByZXBsYWNlcywKLQkJCQkJCSAgIFNUQVRJU1RJQ19LSU5EX0JPVU5EU19ISVNUT0dSQU0sCi0J CQkJCQkgICBJbnZhbGlkT2lkLCBJbnZhbGlkT2lkLAotCQkJCQkJICAgMCwgdHJ1ZSwgc3RhdmFs dWVzLCBmYWxzZSk7CisJCQlzdGF0YXR0X3NldF9zbG90KHZhbHVlcywgbnVsbHMsIHJlcGxhY2Vz LAorCQkJCQkJCSBTVEFUSVNUSUNfS0lORF9CT1VORFNfSElTVE9HUkFNLAorCQkJCQkJCSBJbnZh bGlkT2lkLCBJbnZhbGlkT2lkLAorCQkJCQkJCSAwLCB0cnVlLCBzdGF2YWx1ZXMsIGZhbHNlKTsK IAkJfQogCQllbHNlCiAJCQlyZXN1bHQgPSBmYWxzZTsKQEAgLTUyMSwxMCArNTE1LDEwIEBAIGF0 dHJpYnV0ZV9zdGF0aXN0aWNzX3VwZGF0ZShGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbykKIAogCQlp ZiAoY29udmVydGVkKQogCQl7Ci0JCQlzZXRfc3RhdHNfc2xvdCh2YWx1ZXMsIG51bGxzLCByZXBs YWNlcywKLQkJCQkJCSAgIFNUQVRJU1RJQ19LSU5EX1JBTkdFX0xFTkdUSF9ISVNUT0dSQU0sCi0J CQkJCQkgICBGbG9hdDhMZXNzT3BlcmF0b3IsIEludmFsaWRPaWQsCi0JCQkJCQkgICBzdGFudW1i ZXJzLCBmYWxzZSwgc3RhdmFsdWVzLCBmYWxzZSk7CisJCQlzdGF0YXR0X3NldF9zbG90KHZhbHVl cywgbnVsbHMsIHJlcGxhY2VzLAorCQkJCQkJCSBTVEFUSVNUSUNfS0lORF9SQU5HRV9MRU5HVEhf SElTVE9HUkFNLAorCQkJCQkJCSBGbG9hdDhMZXNzT3BlcmF0b3IsIEludmFsaWRPaWQsCisJCQkJ CQkJIHN0YW51bWJlcnMsIGZhbHNlLCBzdGF2YWx1ZXMsIGZhbHNlKTsKIAkJfQogCQllbHNlCiAJ CQlyZXN1bHQgPSBmYWxzZTsKQEAgLTU4NCwxMSArNTc4LDExIEBAIGdldF9hdHRyX2V4cHIoUmVs YXRpb24gcmVsLCBpbnQgYXR0bnVtKQogLyoKICAqIERlcml2ZSB0eXBlIGluZm9ybWF0aW9uIGZy b20gdGhlIGF0dHJpYnV0ZS4KICAqLwotc3RhdGljIHZvaWQKLWdldF9hdHRyX3N0YXRfdHlwZShP aWQgcmVsb2lkLCBBdHRyTnVtYmVyIGF0dG51bSwKLQkJCQkgICBPaWQgKmF0dHR5cGlkLCBpbnQz MiAqYXR0dHlwbW9kLAotCQkJCSAgIGNoYXIgKmF0dHR5cHR5cGUsIE9pZCAqYXR0dHlwY29sbCwK LQkJCQkgICBPaWQgKmVxX29wciwgT2lkICpsdF9vcHIpCit2b2lkCitzdGF0YXR0X2dldF90eXBl KE9pZCByZWxvaWQsIEF0dHJOdW1iZXIgYXR0bnVtLAorCQkJCSBPaWQgKmF0dHR5cGlkLCBpbnQz MiAqYXR0dHlwbW9kLAorCQkJCSBjaGFyICphdHR0eXB0eXBlLCBPaWQgKmF0dHR5cGNvbGwsCisJ CQkJIE9pZCAqZXFfb3ByLCBPaWQgKmx0X29wcikKIHsKIAlSZWxhdGlvbglyZWwgPSByZWxhdGlv bl9vcGVuKHJlbG9pZCwgQWNjZXNzU2hhcmVMb2NrKTsKIAlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRy OwpAQCAtNjY2LDkgKzY2MCw5IEBAIGdldF9hdHRyX3N0YXRfdHlwZShPaWQgcmVsb2lkLCBBdHRy TnVtYmVyIGF0dG51bSwKIC8qCiAgKiBEZXJpdmUgZWxlbWVudCB0eXBlIGluZm9ybWF0aW9uIGZy b20gdGhlIGF0dHJpYnV0ZSB0eXBlLgogICovCi1zdGF0aWMgYm9vbAotZ2V0X2VsZW1fc3RhdF90 eXBlKE9pZCBhdHR0eXBpZCwgY2hhciBhdHR0eXB0eXBlLAotCQkJCSAgIE9pZCAqZWxlbXR5cGlk LCBPaWQgKmVsZW1fZXFfb3ByKQorYm9vbAorc3RhdGF0dF9nZXRfZWxlbV90eXBlKE9pZCBhdHR0 eXBpZCwgY2hhciBhdHR0eXB0eXBlLAorCQkJCQkgIE9pZCAqZWxlbXR5cGlkLCBPaWQgKmVsZW1f ZXFfb3ByKQogewogCVR5cGVDYWNoZUVudHJ5ICplbGVtdHlwY2FjaGU7CiAKQEAgLTcwNiw3ICs3 MDAsNyBAQCBnZXRfZWxlbV9zdGF0X3R5cGUoT2lkIGF0dHR5cGlkLCBjaGFyIGF0dHR5cHR5cGUs CiAgKiB0byBmYWxzZS4gSWYgdGhlIHJlc3VsdGluZyBhcnJheSBjb250YWlucyBOVUxMcywgcmFp c2UgYSBXQVJOSU5HIGFuZCBzZXQgb2sKICAqIHRvIGZhbHNlLiBPdGhlcndpc2UsIHNldCBvayB0 byB0cnVlLgogICovCi1zdGF0aWMgRGF0dW0KK0RhdHVtCiB0ZXh0X3RvX3N0YXZhbHVlcyhjb25z dCBjaGFyICpzdGFuYW1lLCBGbWdySW5mbyAqYXJyYXlfaW4sIERhdHVtIGQsIE9pZCB0eXBpZCwK IAkJCQkgIGludDMyIHR5cG1vZCwgYm9vbCAqb2spCiB7CkBAIC03NTksMTEgKzc1MywxMSBAQCB0 ZXh0X3RvX3N0YXZhbHVlcyhjb25zdCBjaGFyICpzdGFuYW1lLCBGbWdySW5mbyAqYXJyYXlfaW4s IERhdHVtIGQsIE9pZCB0eXBpZCwKICAqIEZpbmQgYW5kIHVwZGF0ZSB0aGUgc2xvdCB3aXRoIHRo ZSBnaXZlbiBzdGFraW5kLCBvciB1c2UgdGhlIGZpcnN0IGVtcHR5CiAgKiBzbG90LgogICovCi1z dGF0aWMgdm9pZAotc2V0X3N0YXRzX3Nsb3QoRGF0dW0gKnZhbHVlcywgYm9vbCAqbnVsbHMsIGJv b2wgKnJlcGxhY2VzLAotCQkJICAgaW50MTYgc3Rha2luZCwgT2lkIHN0YW9wLCBPaWQgc3RhY29s bCwKLQkJCSAgIERhdHVtIHN0YW51bWJlcnMsIGJvb2wgc3RhbnVtYmVyc19pc251bGwsCi0JCQkg ICBEYXR1bSBzdGF2YWx1ZXMsIGJvb2wgc3RhdmFsdWVzX2lzbnVsbCkKK3ZvaWQKK3N0YXRhdHRf c2V0X3Nsb3QoRGF0dW0gKnZhbHVlcywgYm9vbCAqbnVsbHMsIGJvb2wgKnJlcGxhY2VzLAorCQkJ CSBpbnQxNiBzdGFraW5kLCBPaWQgc3Rhb3AsIE9pZCBzdGFjb2xsLAorCQkJCSBEYXR1bSBzdGFu dW1iZXJzLCBib29sIHN0YW51bWJlcnNfaXNudWxsLAorCQkJCSBEYXR1bSBzdGF2YWx1ZXMsIGJv b2wgc3RhdmFsdWVzX2lzbnVsbCkKIHsKIAlpbnQJCQlzbG90aWR4OwogCWludAkJCWZpcnN0X2Vt cHR5ID0gLTE7CkBAIC04ODMsOSArODc3LDkgQEAgZGVsZXRlX3BnX3N0YXRpc3RpYyhPaWQgcmVs b2lkLCBBdHRyTnVtYmVyIGF0dG51bSwgYm9vbCBzdGFpbmhlcml0KQogLyoKICAqIEluaXRpYWxp emUgdmFsdWVzIGFuZCBudWxscyBmb3IgYSBuZXcgc3RhdHMgdHVwbGUuCiAgKi8KLXN0YXRpYyB2 b2lkCi1pbml0X2VtcHR5X3N0YXRzX3R1cGxlKE9pZCByZWxvaWQsIGludDE2IGF0dG51bSwgYm9v bCBpbmhlcml0ZWQsCi0JCQkJCSAgIERhdHVtICp2YWx1ZXMsIGJvb2wgKm51bGxzLCBib29sICpy ZXBsYWNlcykKK3ZvaWQKK3N0YXRhdHRfaW5pdF9lbXB0eV90dXBsZShPaWQgcmVsb2lkLCBpbnQx NiBhdHRudW0sIGJvb2wgaW5oZXJpdGVkLAorCQkJCQkJIERhdHVtICp2YWx1ZXMsIGJvb2wgKm51 bGxzLCBib29sICpyZXBsYWNlcykKIHsKIAltZW1zZXQobnVsbHMsIHRydWUsIHNpemVvZihib29s KSAqIE5hdHRzX3BnX3N0YXRpc3RpYyk7CiAJbWVtc2V0KHJlcGxhY2VzLCB0cnVlLCBzaXplb2Yo Ym9vbCkgKiBOYXR0c19wZ19zdGF0aXN0aWMpOwotLSAKMi41MS4xCgo= --0000000000009429ff06440ec5f4 Content-Type: text/x-patch; charset="US-ASCII"; name="v16-0004-Add-extended-statistics-support-functions.patch" Content-Disposition: attachment; filename="v16-0004-Add-extended-statistics-support-functions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mi81k9hq3 RnJvbSAyZWFmMmM4MWFjZDBlNTcwZGY3YjE0YTM2MjVlYmViYjFjODVlZDliIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNaWNoYWVsIFBhcXVpZXIgPG1pY2hhZWxAcGFxdWllci54eXo+ CkRhdGU6IFR1ZSwgMTEgTm92IDIwMjUgMTY6NTg6MjYgKzA5MDAKU3ViamVjdDogW1BBVENIIHYx NiA0LzVdIEFkZCBleHRlbmRlZCBzdGF0aXN0aWNzIHN1cHBvcnQgZnVuY3Rpb25zLgoKQWRkIHBn X3Jlc3RvcmVfZXh0ZW5kZWRfc3RhdHMoKSBhbmQgcGdfY2xlYXJfZXh0ZW5kZWRfc3RhdHMoKS4g VGhlc2UKZnVuY3Rpb25zIGNsb3NlbHkgbWlycm9yIHRoZWlyIHJlbGF0aW9uIGFuZCBhdHRyaWJ1 dGUgY291bnRlcnBhcnRzLApidXQgZm9yIGV4dGVuZGVkIHN0YXRpc3RpY3MgKGkuZS4gIENSRUFU RSBTVEFUSVNUSUNTKSBvYmplY3RzLgotLS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5k YXQgICAgICAgICAgICAgICB8ICAgMTggKwogLi4uL3N0YXRpc3RpY3MvZXh0ZW5kZWRfc3RhdHNf aW50ZXJuYWwuaCAgICAgIHwgICAxNyArCiBzcmMvYmFja2VuZC9zdGF0aXN0aWNzL2RlcGVuZGVu Y2llcy5jICAgICAgICAgfCAgIDYxICsKIHNyYy9iYWNrZW5kL3N0YXRpc3RpY3MvZXh0ZW5kZWRf c3RhdHMuYyAgICAgICB8IDExNDEgKysrKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL3N0YXRp c3RpY3MvbWN2LmMgICAgICAgICAgICAgICAgICB8ICAxNDQgKysrCiBzcmMvYmFja2VuZC9zdGF0 aXN0aWNzL212ZGlzdGluY3QuYyAgICAgICAgICAgfCAgIDYyICsKIHNyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc3RhdHNfaW1wb3J0Lm91dCAgICB8IDExMjUgKysrKysrKysrKysrKysrKwogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc3RhdHNfaW1wb3J0LnNxbCAgICAgICAgIHwgIDM2NCArKysrKysK IGRvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtYWRtaW4uc2dtbCAgICAgICAgICAgICB8ICAgOTggKysK IDkgZmlsZXMgY2hhbmdlZCwgMzAyOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggYWFhZGZkOGM3NDguLmNiNDBlYjVkNDQ5IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvYy5kYXQKQEAgLTEyNTk0LDYgKzEyNTk0LDI0IEBACiAgIHByb25hbWUgPT4g J2dpc3RfdHJhbnNsYXRlX2NtcHR5cGVfY29tbW9uJywgcHJvcmV0dHlwZSA9PiAnaW50MicsCiAg IHByb2FyZ3R5cGVzID0+ICdpbnQ0JywgcHJvc3JjID0+ICdnaXN0X3RyYW5zbGF0ZV9jbXB0eXBl X2NvbW1vbicgfSwKIAorIyBFeHRlbmRlZCBTdGF0aXN0aWNzIEltcG9ydAoreyBvaWQgPT4gJzk5 NDcnLAorICBkZXNjciA9PiAncmVzdG9yZSBzdGF0aXN0aWNzIG9uIGV4dGVuZGVkIHN0YXRpc3Rp Y3Mgb2JqZWN0JywKKyAgcHJvbmFtZSA9PiAncGdfcmVzdG9yZV9leHRlbmRlZF9zdGF0cycsIHBy b3ZvbGF0aWxlID0+ICd2JywgcHJvaXNzdHJpY3QgPT4gJ2YnLAorICBwcm92YXJpYWRpYyA9PiAn YW55JywKKyAgcHJvcGFyYWxsZWwgPT4gJ3UnLCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJv YXJndHlwZXMgPT4gJ2FueScsCisgIHByb2FyZ25hbWVzID0+ICd7a3dhcmdzfScsCisgIHByb2Fy Z21vZGVzID0+ICd7dn0nLAorICBwcm9zcmMgPT4gJ3BnX3Jlc3RvcmVfZXh0ZW5kZWRfc3RhdHMn IH0sCit7IG9pZCA9PiAnOTk0OCcsCisgIGRlc2NyID0+ICdjbGVhciBzdGF0aXN0aWNzIG9uIGV4 dGVuZGVkIHN0YXRpc3RpY3Mgb2JqZWN0JywKKyAgcHJvbmFtZSA9PiAncGdfY2xlYXJfZXh0ZW5k ZWRfc3RhdHMnLCBwcm92b2xhdGlsZSA9PiAndicsIHByb2lzc3RyaWN0ID0+ICdmJywKKyAgcHJv cGFyYWxsZWwgPT4gJ3UnLCBwcm9yZXR0eXBlID0+ICd2b2lkJywKKyAgcHJvYXJndHlwZXMgPT4g J3RleHQgdGV4dCBib29sJywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tzdGF0aXN0aWNzX3NjaGVtYW5h bWUsc3RhdGlzdGljc19uYW1lLGluaGVyaXRlZH0nLAorICBwcm9zcmMgPT4gJ3BnX2NsZWFyX2V4 dGVuZGVkX3N0YXRzJyB9LAorCiAjIEFJTyByZWxhdGVkIGZ1bmN0aW9ucwogeyBvaWQgPT4gJzYz OTknLCBkZXNjciA9PiAnaW5mb3JtYXRpb24gYWJvdXQgaW4tcHJvZ3Jlc3MgYXN5bmNocm9ub3Vz IElPcycsCiAgIHByb25hbWUgPT4gJ3BnX2dldF9haW9zJywgcHJvcm93cyA9PiAnMTAwJywgcHJv cmV0c2V0ID0+ICd0JywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0YXRpc3RpY3MvZXh0ZW5k ZWRfc3RhdHNfaW50ZXJuYWwuaCBiL3NyYy9pbmNsdWRlL3N0YXRpc3RpY3MvZXh0ZW5kZWRfc3Rh dHNfaW50ZXJuYWwuaAppbmRleCBlZmNiN2RjMzU0Ni4uYmE3ZjVkY2FkODIgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3N0YXRpc3RpY3MvZXh0ZW5kZWRfc3RhdHNfaW50ZXJuYWwuaAorKysgYi9z cmMvaW5jbHVkZS9zdGF0aXN0aWNzL2V4dGVuZGVkX3N0YXRzX2ludGVybmFsLmgKQEAgLTEyNyw0 ICsxMjcsMjEgQEAgZXh0ZXJuIFNlbGVjdGl2aXR5IG1jdl9jbGF1c2Vfc2VsZWN0aXZpdHlfb3Io UGxhbm5lckluZm8gKnJvb3QsCiAJCQkJCQkJCQkJCSBTZWxlY3Rpdml0eSAqb3ZlcmxhcF9iYXNl c2VsLAogCQkJCQkJCQkJCQkgU2VsZWN0aXZpdHkgKnRvdGFsc2VsKTsKIAorZXh0ZXJuIERhdHVt IGltcG9ydF9tY3ZsaXN0KEhlYXBUdXBsZSB0dXAsIGludCBlbGV2ZWwsIGludCBudW1hdHRycywK KwkJCQkJCQlPaWQgKmF0dHR5cGlkcywgaW50MzIgKmF0dHR5cG1vZHMsIE9pZCAqYXR0dHlwY29s bHMsCisJCQkJCQkJaW50IG5pdGVtcywgRGF0dW0gKm1jdl9lbGVtcywgYm9vbCAqbWN2X251bGxz LAorCQkJCQkJCWJvb2wgKm1jdl9lbGVtX251bGxzLCBmbG9hdDggKmZyZXFzLCBmbG9hdDggKmJh c2VfZnJlcXMpOworCitleHRlcm4gRGF0dW0gaW1wb3J0X21jdmxpc3QoSGVhcFR1cGxlIHR1cCwg aW50IGVsZXZlbCwgaW50IG51bWF0dHJzLAorCQkJCQkJCU9pZCAqYXR0dHlwaWRzLCBpbnQzMiAq YXR0dHlwbW9kcywgT2lkICphdHR0eXBjb2xscywKKwkJCQkJCQlpbnQgbml0ZW1zLCBEYXR1bSAq bWN2X2VsZW1zLCBib29sICptY3ZfbnVsbHMsCisJCQkJCQkJYm9vbCAqbWN2X2VsZW1fbnVsbHMs IGZsb2F0OCAqZnJlcXMsIGZsb2F0OCAqYmFzZV9mcmVxcyk7CitleHRlcm4gYm9vbCBwZ19uZGlz dGluY3RfdmFsaWRhdGVfaXRlbXMoTVZORGlzdGluY3QgKm5kaXN0aW5jdCwgaW50MnZlY3RvciAq c3R4a2V5cywKKwkJCQkJCQkJCQlpbnQgbnVtZXhwcnMsIGludCBlbGV2ZWwpOworZXh0ZXJuIHZv aWQgZnJlZV9wZ19uZGlzdGluY3QoTVZORGlzdGluY3QgKm5kaXN0aW5jdCk7CitleHRlcm4gYm9v bCBwZ19kZXBlbmRlbmNpZXNfdmFsaWRhdGVfZGVwcyhNVkRlcGVuZGVuY2llcyAqZGVwZW5kZW5j aWVzLAorCQkJCQkJCQkJCSAgaW50MnZlY3RvciAqc3R4a2V5cywgaW50IG51bWV4cHJzLAorCQkJ CQkJCQkJCSAgaW50IGVsZXZlbCk7CitleHRlcm4gdm9pZCBmcmVlX3BnX2RlcGVuZGVuY2llcyhN VkRlcGVuZGVuY2llcyAqZGVwZW5kZW5jaWVzKTsKKwogI2VuZGlmCQkJCQkJCS8qIEVYVEVOREVE X1NUQVRTX0lOVEVSTkFMX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0YXRpc3RpY3Mv ZGVwZW5kZW5jaWVzLmMgYi9zcmMvYmFja2VuZC9zdGF0aXN0aWNzL2RlcGVuZGVuY2llcy5jCmlu ZGV4IDZmNjNiNGYzZmZiLi4zMWE5ZjFjZmM3YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3Rh dGlzdGljcy9kZXBlbmRlbmNpZXMuYworKysgYi9zcmMvYmFja2VuZC9zdGF0aXN0aWNzL2RlcGVu ZGVuY2llcy5jCkBAIC0xMDY1LDYgKzEwNjUsNTUgQEAgY2xhdXNlbGlzdF9hcHBseV9kZXBlbmRl bmNpZXMoUGxhbm5lckluZm8gKnJvb3QsIExpc3QgKmNsYXVzZXMsCiAJcmV0dXJuIHMxOwogfQog CisvKgorICogVmFsaWRhdGUgYW4gTVZEZXBlbmRlbmNpZXMgYWdhaW5zdCB0aGUgZXh0ZW5kZWQg c3RhdGlzdGljcyBvYmplY3QgZGVmaW5pdGlvbi4KKyAqCisgKiBFdmVyeSBNVkRlcGVuZGVuY2ll cyBtdXN0IGJlIGNoZWNrZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGF0dG51bXMgaW4gdGhlCisgKiBh dHRyaWJ1dGVzIGxpc3QgY29ycmVzcG9uZCB0byBhdHRudW1zL2V4cHJlc3Npb25zIGRlZmluZWQg YnkgdGhlCisgKiBleHRlbmRlZCBzdGF0aXN0aWNzIG9iamVjdC4KKyAqCisgKiBQb3NpdGl2ZSBh dHRudW1zIGFyZSBhdHRyaWJ1dGVzIHdoaWNoIG11c3QgYmUgZm91bmQgaW4gdGhlIHN0eGtleXMs CisgKiB3aGlsZSBuZWdhdGl2ZSBhdHRudW1zIGNvcnJlc3BvbmQgdG8gYW4gZXhwciBudW1iZXIs IHNvIHRoZSBhdHRudW0KKyAqIGNhbid0IGJlIGJlbG93ICgwIC0gbnVtZXhwcnMpLgorICovCiti b29sCitwZ19kZXBlbmRlbmNpZXNfdmFsaWRhdGVfZGVwcyhNVkRlcGVuZGVuY2llcyAqZGVwZW5k ZW5jaWVzLCBpbnQydmVjdG9yICpzdHhrZXlzLCBpbnQgbnVtZXhwcnMsIGludCBlbGV2ZWwpCit7 CisJaW50CQlhdHRudW1fZXhwcl9sb3dib3VuZCA9IDAgLSBudW1leHByczsKKworCWZvciAoaW50 IGkgPSAwOyBpIDwgZGVwZW5kZW5jaWVzLT5uZGVwczsgaSsrKQorCXsKKwkJTVZEZXBlbmRlbmN5 ICpkZXAgPSBkZXBlbmRlbmNpZXMtPmRlcHNbaV07CisKKwkJZm9yIChpbnQgaiA9IDA7IGogPCBk ZXAtPm5hdHRyaWJ1dGVzOyBqKyspCisJCXsKKwkJCUF0dHJOdW1iZXIJYXR0bnVtID0gZGVwLT5h dHRyaWJ1dGVzW2pdOworCQkJYm9vbAkJb2sgPSBmYWxzZTsKKworCQkJaWYgKGF0dG51bSA+IDAp CisJCQl7CisJCQkJZm9yIChpbnQgayA9IDA7IGsgPCBzdHhrZXlzLT5kaW0xOyBrKyspCisJCQkJ CWlmIChhdHRudW0gPT0gc3R4a2V5cy0+dmFsdWVzW2tdKQorCQkJCQl7CisJCQkJCQlvayA9IHRy dWU7CisJCQkJCQlicmVhazsKKwkJCQkJfQorCQkJfQorCQkJZWxzZSBpZiAoKGF0dG51bSA8IDAp ICYmIChhdHRudW0gPj0gYXR0bnVtX2V4cHJfbG93Ym91bmQpKQorCQkJCW9rID0gdHJ1ZTsKKwor CQkJaWYgKCFvaykKKwkJCXsKKwkJCQllcmVwb3J0KGVsZXZlbCwKKwkJCQkJCShlcnJjb2RlKEVS UkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQkJCWVycm1zZygicGdfZGVw ZW5kZW5jaWVzOiBpbnZhbGlkIGF0dG51bSBmb3IgdGhpcyBzdGF0aXN0aWNzIG9iamVjdDogJWQi LCBhdHRudW0pKSk7CisJCQkJcmV0dXJuIGZhbHNlOworCQkJfQorCQl9CisJfQorCXJldHVybiB0 cnVlOworfQorCiAvKgogICogZGVwZW5kZW5jeV9pc19jb21wYXRpYmxlX2V4cHJlc3Npb24KICAq CQlEZXRlcm1pbmVzIGlmIHRoZSBleHByZXNzaW9uIGlzIGNvbXBhdGlibGUgd2l0aCBmdW5jdGlv bmFsIGRlcGVuZGVuY2llcwpAQCAtMTI0OCw2ICsxMjk3LDE4IEBAIGRlcGVuZGVuY3lfaXNfY29t cGF0aWJsZV9leHByZXNzaW9uKE5vZGUgKmNsYXVzZSwgSW5kZXggcmVsaWQsIExpc3QgKnN0YXRs aXN0LCBOCiAJcmV0dXJuIGZhbHNlOwogfQogCisvKgorICogRnJlZSBhbGxvY2F0aW9ucyBvZiBh biBNVk5EaXN0aW5jdAorICovCit2b2lkCitmcmVlX3BnX2RlcGVuZGVuY2llcyhNVkRlcGVuZGVu Y2llcyAqZGVwZW5kZW5jaWVzKQoreworCWZvciAoaW50IGkgPSAwOyBpIDwgZGVwZW5kZW5jaWVz LT5uZGVwczsgaSsrKQorCQlwZnJlZShkZXBlbmRlbmNpZXMtPmRlcHNbaV0pOworCisJcGZyZWUo ZGVwZW5kZW5jaWVzKTsKK30KKwogLyoKICAqIGRlcGVuZGVuY2llc19jbGF1c2VsaXN0X3NlbGVj dGl2aXR5CiAgKgkJUmV0dXJuIHRoZSBlc3RpbWF0ZWQgc2VsZWN0aXZpdHkgb2YgKGEgc3Vic2V0 IG9mKSB0aGUgZ2l2ZW4gY2xhdXNlcwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RhdGlzdGlj cy9leHRlbmRlZF9zdGF0cy5jIGIvc3JjL2JhY2tlbmQvc3RhdGlzdGljcy9leHRlbmRlZF9zdGF0 cy5jCmluZGV4IDNjM2QyZDMxNWM2Li4yM2FiM2NmODdlMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvc3RhdGlzdGljcy9leHRlbmRlZF9zdGF0cy5jCisrKyBiL3NyYy9iYWNrZW5kL3N0YXRpc3Rp Y3MvZXh0ZW5kZWRfc3RhdHMuYwpAQCAtMTgsMjEgKzE4LDI4IEBACiAKICNpbmNsdWRlICJhY2Nl c3MvZGV0b2FzdC5oIgogI2luY2x1ZGUgImFjY2Vzcy9nZW5hbS5oIgorI2luY2x1ZGUgImFjY2Vz cy9oZWFwYW0uaCIKKyNpbmNsdWRlICJhY2Nlc3MvaHR1cC5oIgogI2luY2x1ZGUgImFjY2Vzcy9o dHVwX2RldGFpbHMuaCIKICNpbmNsdWRlICJhY2Nlc3MvdGFibGUuaCIKICNpbmNsdWRlICJjYXRh bG9nL2luZGV4aW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3N0YXRpc3RpY19leHQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N0 YXRpc3RpY19leHRfZGF0YS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZV9kLmgiCisjaW5j bHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIK ICNpbmNsdWRlICJjb21tYW5kcy9wcm9ncmVzcy5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1 dG9yLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNz LmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL29w dGltaXplci5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZXRyZWUuaCIKICNpbmNsdWRlICJwZ3N0 YXQuaCIKICNpbmNsdWRlICJwb3N0bWFzdGVyL2F1dG92YWN1dW0uaCIKICNpbmNsdWRlICJzdGF0 aXN0aWNzL2V4dGVuZGVkX3N0YXRzX2ludGVybmFsLmgiCisjaW5jbHVkZSAic3RhdGlzdGljcy9z dGF0X3V0aWxzLmgiCiAjaW5jbHVkZSAic3RhdGlzdGljcy9zdGF0aXN0aWNzLmgiCiAjaW5jbHVk ZSAidXRpbHMvYWNsLmgiCiAjaW5jbHVkZSAidXRpbHMvYXJyYXkuaCIKQEAgLTcyLDYgKzc5LDg0 IEBAIHR5cGVkZWYgc3RydWN0IFN0YXRFeHRFbnRyeQogCUxpc3QJICAgKmV4cHJzOwkJCS8qIGV4 cHJlc3Npb25zICovCiB9IFN0YXRFeHRFbnRyeTsKIAorLyoKKyAqIEFuIGluZGV4IG9mIHRoZSBh cmdzIGZvciBleHRlbmRlZF9zdGF0aXN0aWNzX3VwZGF0ZSgpLgorICovCitlbnVtIGV4dGVuZGVk X3N0YXRzX2FyZ251bQoreworCVNUQVRTQ0hFTUFfQVJHID0gMCwKKwlTVEFUTkFNRV9BUkcsCisJ SU5IRVJJVEVEX0FSRywKKwlORElTVElOQ1RfQVJHLAorCURFUEVOREVOQ0lFU19BUkcsCisJTU9T VF9DT01NT05fVkFMU19BUkcsCisJTU9TVF9DT01NT05fVkFMX05VTExTX0FSRywKKwlNT1NUX0NP TU1PTl9GUkVRU19BUkcsCisJTU9TVF9DT01NT05fQkFTRV9GUkVRU19BUkcsCisJRVhQUkVTU0lP TlNfQVJHLAorCU5VTV9FWFRFTkRFRF9TVEFUU19BUkdTCit9OworCisvKgorICogVGhlIGFyZ3Vt ZW50IG5hbWVzIGFuZCB0eXBvaWRzIG9mIHRoZSBhcmd1bWVudHMgZm9yCisgKiBleHRlbmRlZF9z dGF0aXN0aWNzX3VwZGF0ZSgpLgorICovCitzdGF0aWMgc3RydWN0IFN0YXRzQXJnSW5mbyBleHRh cmdpbmZvW10gPQoreworCVtTVEFUU0NIRU1BX0FSR10gPSB7InN0YXRpc3RpY3Nfc2NoZW1hbmFt ZSIsIFRFWFRPSUR9LAorCVtTVEFUTkFNRV9BUkddID0geyJzdGF0aXN0aWNzX25hbWUiLCBURVhU T0lEfSwKKwlbSU5IRVJJVEVEX0FSR10gPSB7ImluaGVyaXRlZCIsIEJPT0xPSUR9LAorCVtORElT VElOQ1RfQVJHXSA9IHsibl9kaXN0aW5jdCIsIFBHX05ESVNUSU5DVE9JRH0sCisJW0RFUEVOREVO Q0lFU19BUkddID0geyJkZXBlbmRlbmNpZXMiLCBQR19ERVBFTkRFTkNJRVNPSUR9LAorCVtNT1NU X0NPTU1PTl9WQUxTX0FSR10gPSB7Im1vc3RfY29tbW9uX3ZhbHMiLCBURVhUQVJSQVlPSUR9LAor CVtNT1NUX0NPTU1PTl9WQUxfTlVMTFNfQVJHXSA9IHsibW9zdF9jb21tb25fdmFsX251bGxzIiwg Qk9PTEFSUkFZT0lEfSwKKwlbTU9TVF9DT01NT05fRlJFUVNfQVJHXSA9IHsibW9zdF9jb21tb25f ZnJlcXMiLCBGTE9BVDhBUlJBWU9JRH0sCisJW01PU1RfQ09NTU9OX0JBU0VfRlJFUVNfQVJHXSA9 IHsibW9zdF9jb21tb25fYmFzZV9mcmVxcyIsIEZMT0FUOEFSUkFZT0lEfSwKKwlbRVhQUkVTU0lP TlNfQVJHXSA9IHsiZXhwcnMiLCBURVhUQVJSQVlPSUR9LAorCVtOVU1fRVhURU5ERURfU1RBVFNf QVJHU10gPSB7MH0KK307CisKKy8qCisgKiBBbiBpbmRleCBvZiB0aGUgZWxlbWVudHMgb2YgdGhl IHN0eGRleHBycyBkYXR1bSwgd2hpY2ggcmVwZWF0IGZvciBlYWNoCisgKiBleHByZXNzaW9uIGlu IHRoZSBleHRlbmRlZCBzdGF0aXN0aWNzIG9iamVjdC4KKyAqCisgKiBOT1RFOiB0aGUgUkFOR0Vf TEVOR1RIICYgUkFOR0VfQk9VTkRTIHN0YXRzIGFyZSBub3QgeWV0IHJlZmxlY3RlZCBpbiBhbnkK KyAqIHZlcnNpb24gb2YgcGdfc3RhdF9leHRfZXhwcnMuCisgKi8KK2VudW0gZXh0ZW5kZWRfc3Rh dHNfZXhwcnNfZWxlbWVudAoreworCU5VTExfRlJBQ19FTEVNID0gMCwKKwlBVkdfV0lEVEhfRUxF TSwKKwlOX0RJU1RJTkNUX0VMRU0sCisJTU9TVF9DT01NT05fVkFMU19FTEVNLAorCU1PU1RfQ09N TU9OX0ZSRVFTX0VMRU0sCisJSElTVE9HUkFNX0JPVU5EU19FTEVNLAorCUNPUlJFTEFUSU9OX0VM RU0sCisJTU9TVF9DT01NT05fRUxFTVNfRUxFTSwKKwlNT1NUX0NPTU1PTl9FTEVNX0ZSRVFTX0VM RU0sCisJRUxFTV9DT1VOVF9ISVNUT0dSQU1fRUxFTSwKKwlOVU1fQVRUUklCVVRFX1NUQVRTX0VM RU1TCit9OworCisvKgorICogVGhlIGFyZ3VtZW50IG5hbWVzIGFuZCB0eXBvaWRzIG9mIHRoZSBy ZXBlYXRpbmcgYXJndW1lbnRzIGZvciBzdHhkZXhwcnMuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgU3Rh dHNBcmdJbmZvIGV4dGV4cHJhcmdpbmZvW10gPQoreworCVtOVUxMX0ZSQUNfRUxFTV0gPSB7Im51 bGxfZnJhYyIsIEZMT0FUNE9JRH0sCisJW0FWR19XSURUSF9FTEVNXSA9IHsiYXZnX3dpZHRoIiwg SU5UNE9JRH0sCisJW05fRElTVElOQ1RfRUxFTV0gPSB7Im5fZGlzdGluY3QiLCBGTE9BVDRPSUR9 LAorCVtNT1NUX0NPTU1PTl9WQUxTX0VMRU1dID0geyJtb3N0X2NvbW1vbl92YWxzIiwgVEVYVE9J RH0sCisJW01PU1RfQ09NTU9OX0ZSRVFTX0VMRU1dID0geyJtb3N0X2NvbW1vbl9mcmVxcyIsIEZM T0FUNEFSUkFZT0lEfSwKKwlbSElTVE9HUkFNX0JPVU5EU19FTEVNXSA9IHsiaGlzdG9ncmFtX2Jv dW5kcyIsIFRFWFRPSUR9LAorCVtDT1JSRUxBVElPTl9FTEVNXSA9IHsiY29ycmVsYXRpb24iLCBG TE9BVDRPSUR9LAorCVtNT1NUX0NPTU1PTl9FTEVNU19FTEVNXSA9IHsibW9zdF9jb21tb25fZWxl bXMiLCBURVhUT0lEfSwKKwlbTU9TVF9DT01NT05fRUxFTV9GUkVRU19FTEVNXSA9IHsibW9zdF9j b21tb25fZWxlbV9mcmVxcyIsIEZMT0FUNEFSUkFZT0lEfSwKKwlbRUxFTV9DT1VOVF9ISVNUT0dS QU1fRUxFTV0gPSB7ImVsZW1fY291bnRfaGlzdG9ncmFtIiwgRkxPQVQ0QVJSQVlPSUR9LAorCVtO VU1fQVRUUklCVVRFX1NUQVRTX0VMRU1TXSA9IHswfQorfTsKKworc3RhdGljIGJvb2wgZXh0ZW5k ZWRfc3RhdGlzdGljc191cGRhdGUoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8pOwogCiBzdGF0aWMg TGlzdCAqZmV0Y2hfc3RhdGVudHJpZXNfZm9yX3JlbGF0aW9uKFJlbGF0aW9uIHBnX3N0YXRleHQs IE9pZCByZWxpZCk7CiBzdGF0aWMgVmFjQXR0clN0YXRzICoqbG9va3VwX3Zhcl9hdHRyX3N0YXRz KEJpdG1hcHNldCAqYXR0cnMsIExpc3QgKmV4cHJzLApAQCAtOTksNiArMTg0LDI4IEBAIHN0YXRp YyBTdGF0c0J1aWxkRGF0YSAqbWFrZV9idWlsZF9kYXRhKFJlbGF0aW9uIHJlbCwgU3RhdEV4dEVu dHJ5ICpzdGF0LAogCQkJCQkJCQkJICAgaW50IG51bXJvd3MsIEhlYXBUdXBsZSAqcm93cywKIAkJ CQkJCQkJCSAgIFZhY0F0dHJTdGF0cyAqKnN0YXRzLCBpbnQgc3RhdHRhcmdldCk7CiAKK3N0YXRp YyBIZWFwVHVwbGUgZ2V0X3BnX3N0YXRpc3RpY19leHQoUmVsYXRpb24gcGdfc3RleHQsIE9pZCBu c3BvaWQsCisJCQkJCQkJCQkgIGNvbnN0IGNoYXIgKnN0eG5hbWUpOworc3RhdGljIGJvb2wgZGVs ZXRlX3BnX3N0YXRpc3RpY19leHRfZGF0YShPaWQgc3R4b2lkLCBib29sIGluaGVyaXRlZCk7CisK K3R5cGVkZWYgc3RydWN0Cit7CisJYm9vbAkJbmRpc3RpbmN0OworCWJvb2wJCWRlcGVuZGVuY2ll czsKKwlib29sCQltY3Y7CisJYm9vbAkJZXhwcmVzc2lvbnM7Cit9CQkJc3Rha2luZEZsYWdzOwor CitzdGF0aWMgdm9pZCBleHBhbmRfc3R4a2luZChIZWFwVHVwbGUgdHVwLCBzdGFraW5kRmxhZ3Mg KiBlbmFibGVkKTsKK3N0YXRpYyB2b2lkIHVwc2VydF9wZ19zdGF0aXN0aWNfZXh0X2RhdGEoRGF0 dW0gKnZhbHVlcywgYm9vbCAqbnVsbHMsIGJvb2wgKnJlcGxhY2VzKTsKK3N0YXRpYyBib29sIGNo ZWNrX21jdmxpc3RfYXJyYXkoQXJyYXlUeXBlICphcnIsIGludCBhcmdpbmRleCwKKwkJCQkJCQkJ aW50IHJlcXVpcmVkX25kaW1zLCBpbnQgbWN2X2xlbmd0aCk7CitzdGF0aWMgRGF0dW0gaW1wb3J0 X2V4cHJlc3Npb25zKFJlbGF0aW9uIHBnc2QsIGludCBudW1leHBycywKKwkJCQkJCQkJT2lkICph dHR0eXBpZHMsIGludDMyICphdHR0eXBtb2RzLAorCQkJCQkJCQlPaWQgKmF0dHR5cGNvbGxzLCBB cnJheVR5cGUgKmV4cHJzX2Fycik7CitzdGF0aWMgYm9vbCB0ZXh0X3RvX2Zsb2F0NChEYXR1bSBp bnB1dCwgRGF0dW0gKm91dHB1dCk7CitzdGF0aWMgYm9vbCB0ZXh0X3RvX2ludDQoRGF0dW0gaW5w dXQsIERhdHVtICpvdXRwdXQpOworCiAKIC8qCiAgKiBDb21wdXRlIHJlcXVlc3RlZCBleHRlbmRl ZCBzdGF0cywgdXNpbmcgdGhlIHJvd3Mgc2FtcGxlZCBmb3IgdGhlIHBsYWluCkBAIC0xMjEsNyAr MjI4LDcgQEAgQnVpbGRSZWxhdGlvbkV4dFN0YXRpc3RpY3MoUmVsYXRpb24gb25lcmVsLCBib29s IGluaCwgZG91YmxlIHRvdGFscm93cywKIAogCS8qIERvIG5vdGhpbmcgaWYgdGhlcmUgYXJlIG5v IGNvbHVtbnMgdG8gYW5hbHl6ZS4gKi8KIAlpZiAoIW5hdHRzKQotCQlyZXR1cm47CisJcmV0dXJu OwogCiAJLyogdGhlIGxpc3Qgb2Ygc3RhdHMgaGFzIHRvIGJlIGFsbG9jYXRlZCBvdXRzaWRlIHRo ZSBtZW1vcnkgY29udGV4dCAqLwogCXBnX3N0ZXh0ID0gdGFibGVfb3BlbihTdGF0aXN0aWNFeHRS ZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKQEAgLTI2MTIsMyArMjcxOSwxMDM1IEBAIG1h a2VfYnVpbGRfZGF0YShSZWxhdGlvbiByZWwsIFN0YXRFeHRFbnRyeSAqc3RhdCwgaW50IG51bXJv d3MsIEhlYXBUdXBsZSAqcm93cywKIAogCXJldHVybiByZXN1bHQ7CiB9CisKK3N0YXRpYyBIZWFw VHVwbGUKK2dldF9wZ19zdGF0aXN0aWNfZXh0KFJlbGF0aW9uIHBnX3N0ZXh0LCBPaWQgbnNwb2lk LCBjb25zdCBjaGFyICpzdHhuYW1lKQoreworCVNjYW5LZXlEYXRhIGtleVsyXTsKKwlTeXNTY2Fu RGVzYyBzY2FuOworCUhlYXBUdXBsZQl0dXA7CisJT2lkCQkJc3R4b2lkID0gSW52YWxpZE9pZDsK KworCVNjYW5LZXlJbml0KCZrZXlbMF0sCisJCQkJQW51bV9wZ19zdGF0aXN0aWNfZXh0X3N0eG5h bWUsCisJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLAorCQkJCUZfTkFNRUVRLAorCQkJCUNTdHJp bmdHZXREYXR1bShzdHhuYW1lKSk7CisJU2NhbktleUluaXQoJmtleVsxXSwKKwkJCQlBbnVtX3Bn X3N0YXRpc3RpY19leHRfc3R4bmFtZXNwYWNlLAorCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwK KwkJCQlGX09JREVRLAorCQkJCU9iamVjdElkR2V0RGF0dW0obnNwb2lkKSk7CisKKwkvKgorCSAq IFRyeSB0byBmaW5kIG1hdGNoaW5nIHBnX3N0YXRpc3RpY19leHQgcm93LgorCSAqLworCXNjYW4g PSBzeXN0YWJsZV9iZWdpbnNjYW4ocGdfc3RleHQsCisJCQkJCQkJICBTdGF0aXN0aWNFeHROYW1l SW5kZXhJZCwKKwkJCQkJCQkgIHRydWUsCisJCQkJCQkJICBOVUxMLAorCQkJCQkJCSAgMiwKKwkJ CQkJCQkgIGtleSk7CisKKwkvKiBVbmlxdWUgaW5kZXgsIGVpdGhlciB3ZSBnZXQgYSB0dXBsZSBv ciB3ZSBkb24ndC4gKi8KKwl0dXAgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pOworCisJaWYgKEhl YXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJc3R4b2lkID0gKChGb3JtX3BnX3N0YXRpc3RpY19leHQp IEdFVFNUUlVDVCh0dXApKS0+b2lkOworCisJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsKKworCWlm ICghT2lkSXNWYWxpZChzdHhvaWQpKQorCQlyZXR1cm4gTlVMTDsKKworCXJldHVybiBTZWFyY2hT eXNDYWNoZUNvcHkxKFNUQVRFWFRPSUQsIE9iamVjdElkR2V0RGF0dW0oc3R4b2lkKSk7Cit9CisK Ky8qCisgKiBEZWNvZGUgdGhlIHN0eGtpbmQgY29sdW1uIHNvIHRoYXQgd2Uga25vdyB3aGljaCBz dGF0cyB0eXBlcyB0byBleHBlY3QuCisgKi8KK3N0YXRpYyB2b2lkCitleHBhbmRfc3R4a2luZChI ZWFwVHVwbGUgdHVwLCBzdGFraW5kRmxhZ3MgKiBlbmFibGVkKQoreworCURhdHVtCQlkYXR1bTsK KwlBcnJheVR5cGUgICphcnI7CisJY2hhcgkgICAqa2luZHM7CisKKwlkYXR1bSA9IFN5c0NhY2hl R2V0QXR0ck5vdE51bGwoU1RBVEVYVE9JRCwKKwkJCQkJCQkJICAgdHVwLAorCQkJCQkJCQkgICBB bnVtX3BnX3N0YXRpc3RpY19leHRfc3R4a2luZCk7CisJYXJyID0gRGF0dW1HZXRBcnJheVR5cGVQ KGRhdHVtKTsKKwlpZiAoQVJSX05ESU0oYXJyKSAhPSAxIHx8IEFSUl9IQVNOVUxMKGFycikgfHwg QVJSX0VMRU1UWVBFKGFycikgIT0gQ0hBUk9JRCkKKwkJZWxvZyhFUlJPUiwgInN0eGtpbmQgaXMg bm90IGEgMS1EIGNoYXIgYXJyYXkiKTsKKworCWtpbmRzID0gKGNoYXIgKikgQVJSX0RBVEFfUFRS KGFycik7CisKKwlmb3IgKGludCBpID0gMDsgaSA8IEFSUl9ESU1TKGFycilbMF07IGkrKykKKwkJ aWYgKGtpbmRzW2ldID09IFNUQVRTX0VYVF9ORElTVElOQ1QpCisJCQllbmFibGVkLT5uZGlzdGlu Y3QgPSB0cnVlOworCQllbHNlIGlmIChraW5kc1tpXSA9PSBTVEFUU19FWFRfREVQRU5ERU5DSUVT KQorCQkJZW5hYmxlZC0+ZGVwZW5kZW5jaWVzID0gdHJ1ZTsKKwkJZWxzZSBpZiAoa2luZHNbaV0g PT0gU1RBVFNfRVhUX01DVikKKwkJCWVuYWJsZWQtPm1jdiA9IHRydWU7CisJCWVsc2UgaWYgKGtp bmRzW2ldID09IFNUQVRTX0VYVF9FWFBSRVNTSU9OUykKKwkJCWVuYWJsZWQtPmV4cHJlc3Npb25z ID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQKK3Vwc2VydF9wZ19zdGF0aXN0aWNfZXh0X2RhdGEo RGF0dW0gKnZhbHVlcywgYm9vbCAqbnVsbHMsIGJvb2wgKnJlcGxhY2VzKQoreworCVJlbGF0aW9u CXBnX3N0ZXh0ZGF0YTsKKwlIZWFwVHVwbGUJc3R4ZHR1cDsKKwlIZWFwVHVwbGUJbmV3dHVwOwor CisJcGdfc3RleHRkYXRhID0gdGFibGVfb3BlbihTdGF0aXN0aWNFeHREYXRhUmVsYXRpb25JZCwg Um93RXhjbHVzaXZlTG9jayk7CisKKwlzdHhkdHVwID0gU2VhcmNoU3lzQ2FjaGUyKFNUQVRFWFRE QVRBU1RYT0lELAorCQkJCQkJCSAgdmFsdWVzW0FudW1fcGdfc3RhdGlzdGljX2V4dF9kYXRhX3N0 eG9pZCAtIDFdLAorCQkJCQkJCSAgdmFsdWVzW0FudW1fcGdfc3RhdGlzdGljX2V4dF9kYXRhX3N0 eGRpbmhlcml0IC0gMV0pOworCisJaWYgKEhlYXBUdXBsZUlzVmFsaWQoc3R4ZHR1cCkpCisJewor CQluZXd0dXAgPSBoZWFwX21vZGlmeV90dXBsZShzdHhkdHVwLAorCQkJCQkJCQkgICBSZWxhdGlv bkdldERlc2NyKHBnX3N0ZXh0ZGF0YSksCisJCQkJCQkJCSAgIHZhbHVlcywKKwkJCQkJCQkJICAg bnVsbHMsCisJCQkJCQkJCSAgIHJlcGxhY2VzKTsKKwkJQ2F0YWxvZ1R1cGxlVXBkYXRlKHBnX3N0 ZXh0ZGF0YSwgJm5ld3R1cC0+dF9zZWxmLCBuZXd0dXApOworCQlSZWxlYXNlU3lzQ2FjaGUoc3R4 ZHR1cCk7CisJfQorCWVsc2UKKwl7CisJCW5ld3R1cCA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlv bkdldERlc2NyKHBnX3N0ZXh0ZGF0YSksIHZhbHVlcywgbnVsbHMpOworCQlDYXRhbG9nVHVwbGVJ bnNlcnQocGdfc3RleHRkYXRhLCBuZXd0dXApOworCX0KKworCWhlYXBfZnJlZXR1cGxlKG5ld3R1 cCk7CisKKwlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOworCisJdGFibGVfY2xvc2UocGdfc3Rl eHRkYXRhLCBSb3dFeGNsdXNpdmVMb2NrKTsKK30KKworLyoKKyAqIEluc2VydCBvciBVcGRhdGUg RXh0ZW5kZWQgU3RhdGlzdGljcworICoKKyAqIE1ham9yIGVycm9ycywgc3VjaCBhcyB0aGUgdGFi bGUgbm90IGV4aXN0aW5nLCB0aGUgc3RhdGlzdGljcyBvYmplY3Qgbm90CisgKiBleGlzdGluZywg b3IgYSBwZXJtaXNzaW9ucyBmYWlsdXJlIGFyZSBhbHdheXMgcmVwb3J0ZWQgYXQgRVJST1IuIE90 aGVyCisgKiBlcnJvcnMsIHN1Y2ggYXMgYSBjb252ZXJzaW9uIGZhaWx1cmUgb24gb25lIHN0YXRp c3RpYyBraW5kLCBhcmUgcmVwb3J0ZWQKKyAqIGFzIFdBUk5JTkdzLCBhbmQgb3RoZXIgc3RhdGlz dGljIGtpbmRzIG1heSBzdGlsbCBiZSB1cGRhdGVkLgorICovCitzdGF0aWMgYm9vbAorZXh0ZW5k ZWRfc3RhdGlzdGljc191cGRhdGUoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8pCit7CisJT2lkCQkJ bnNwb2lkOworCWNoYXIJICAgKm5zcG5hbWU7CisJY2hhcgkgICAqc3R4bmFtZTsKKwlib29sCQlp bmhlcml0ZWQ7CisJUmVsYXRpb24JcGdfc3RleHQ7CisJSGVhcFR1cGxlCXR1cCA9IE5VTEw7CisK KwlzdGFraW5kRmxhZ3MgZW5hYmxlZDsKKwlzdGFraW5kRmxhZ3MgaGFzOworCisJRm9ybV9wZ19z dGF0aXN0aWNfZXh0IHN0eGZvcm07CisKKwlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3N0YXRpc3Rp Y19leHRfZGF0YV07CisJYm9vbAkJbnVsbHNbTmF0dHNfcGdfc3RhdGlzdGljX2V4dF9kYXRhXTsK Kwlib29sCQlyZXBsYWNlc1tOYXR0c19wZ19zdGF0aXN0aWNfZXh0X2RhdGFdOworCisJYm9vbAkJ c3VjY2VzcyA9IHRydWU7CisKKwlEYXR1bQkJZXhwcmRhdHVtOworCWJvb2wJCWlzbnVsbDsKKwlM aXN0CSAgICpleHBycyA9IE5JTDsKKwlpbnQJCQludW1hdHRudW1zID0gMDsKKwlpbnQJCQludW1l eHBycyA9IDA7CisJaW50CQkJbnVtYXR0cnMgPSAwOworCisJLyogYXJyYXlzIG9mIHR5cGUgaW5m bywgaWYgd2UgbmVlZCB0aGVtICovCisJT2lkCQkgICAqYXR0dHlwaWRzID0gTlVMTDsKKwlpbnQz MgkgICAqYXR0dHlwbW9kcyA9IE5VTEw7CisJT2lkCQkgICAqYXR0dHlwY29sbHMgPSBOVUxMOwor CVJlbGF0aW9uCXJlbDsKKwlPaWQJCQlsb2NrZWRfdGFibGUgPSBJbnZhbGlkT2lkOworCisJbWVt c2V0KG51bGxzLCBmYWxzZSwgc2l6ZW9mKG51bGxzKSk7CisJbWVtc2V0KHZhbHVlcywgMCwgc2l6 ZW9mKHZhbHVlcykpOworCW1lbXNldChyZXBsYWNlcywgMCwgc2l6ZW9mKHJlcGxhY2VzKSk7CisJ bWVtc2V0KCZlbmFibGVkLCAwLCBzaXplb2YoZW5hYmxlZCkpOworCisJaGFzLm1jdiA9ICghUEdf QVJHSVNOVUxMKE1PU1RfQ09NTU9OX1ZBTFNfQVJHKSAmJgorCQkJICAgIVBHX0FSR0lTTlVMTChN T1NUX0NPTU1PTl9WQUxfTlVMTFNfQVJHKSAmJgorCQkJICAgIVBHX0FSR0lTTlVMTChNT1NUX0NP TU1PTl9GUkVRU19BUkcpICYmCisJCQkgICAhUEdfQVJHSVNOVUxMKE1PU1RfQ09NTU9OX0JBU0Vf RlJFUVNfQVJHKSk7CisJaGFzLm5kaXN0aW5jdCA9ICFQR19BUkdJU05VTEwoTkRJU1RJTkNUX0FS Ryk7CisJaGFzLmRlcGVuZGVuY2llcyA9ICFQR19BUkdJU05VTEwoREVQRU5ERU5DSUVTX0FSRyk7 CisJaGFzLmV4cHJlc3Npb25zID0gIVBHX0FSR0lTTlVMTChFWFBSRVNTSU9OU19BUkcpOworCisJ aWYgKFJlY292ZXJ5SW5Qcm9ncmVzcygpKQorCXsKKwkJZXJlcG9ydChXQVJOSU5HLAorCQkJCShl cnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAorCQkJCSBl cnJtc2coInJlY292ZXJ5IGlzIGluIHByb2dyZXNzIiksCisJCQkJIGVycmhpbnQoIlN0YXRpc3Rp Y3MgY2Fubm90IGJlIG1vZGlmaWVkIGR1cmluZyByZWNvdmVyeS4iKSkpOworCQlQR19SRVRVUk5f Qk9PTChmYWxzZSk7CisJfQorCisJc3RhdHNfY2hlY2tfcmVxdWlyZWRfYXJnKGZjaW5mbywgZXh0 YXJnaW5mbywgU1RBVFNDSEVNQV9BUkcpOworCW5zcG5hbWUgPSBUZXh0RGF0dW1HZXRDU3RyaW5n KFBHX0dFVEFSR19EQVRVTShTVEFUU0NIRU1BX0FSRykpOworCXN0YXRzX2NoZWNrX3JlcXVpcmVk X2FyZyhmY2luZm8sIGV4dGFyZ2luZm8sIFNUQVROQU1FX0FSRyk7CisJc3R4bmFtZSA9IFRleHRE YXR1bUdldENTdHJpbmcoUEdfR0VUQVJHX0RBVFVNKFNUQVROQU1FX0FSRykpOworCXN0YXRzX2No ZWNrX3JlcXVpcmVkX2FyZyhmY2luZm8sIGV4dGFyZ2luZm8sIElOSEVSSVRFRF9BUkcpOworCWlu aGVyaXRlZCA9IFBHX0dFVEFSR19OQU1FKElOSEVSSVRFRF9BUkcpOworCisJbnNwb2lkID0gZ2V0 X25hbWVzcGFjZV9vaWQobnNwbmFtZSwgdHJ1ZSk7CisJaWYgKG5zcG9pZCA9PSBJbnZhbGlkT2lk KQorCXsKKwkJZXJlcG9ydChXQVJOSU5HLAorCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVE X09CSkVDVCksCisJCQkJIGVycm1zZygiTmFtZXNwYWNlIFwiJXNcIiBub3QgZm91bmQuIiwgc3R4 bmFtZSkpKTsKKwkJUEdfUkVUVVJOX0JPT0woZmFsc2UpOworCX0KKworCXBnX3N0ZXh0ID0gdGFi bGVfb3BlbihTdGF0aXN0aWNFeHRSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwl0dXAg PSBnZXRfcGdfc3RhdGlzdGljX2V4dChwZ19zdGV4dCwgbnNwb2lkLCBzdHhuYW1lKTsKKworCWlm ICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCXsKKwkJdGFibGVfY2xvc2UocGdfc3RleHQsIFJv d0V4Y2x1c2l2ZUxvY2spOworCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJKGVycmNvZGUoRVJSQ09E RV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJFeHRlbmRlZCBTdGF0aXN0aWNzIE9i amVjdCBcIiVzXCIuXCIlc1wiIG5vdCBmb3VuZC4iLAorCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1l KG5zcG9pZCksIHN0eG5hbWUpKSk7CisJCVBHX1JFVFVSTl9CT09MKGZhbHNlKTsKKwl9CisKKwlz dHhmb3JtID0gKEZvcm1fcGdfc3RhdGlzdGljX2V4dCkgR0VUU1RSVUNUKHR1cCk7CisJZXhwYW5k X3N0eGtpbmQodHVwLCAmZW5hYmxlZCk7CisJbnVtYXR0bnVtcyA9IHN0eGZvcm0tPnN0eGtleXMu ZGltMTsKKworCS8qIGRlY29kZSBleHByZXNzaW9uIChpZiBhbnkpICovCisJZXhwcmRhdHVtID0g U3lzQ2FjaGVHZXRBdHRyKFNUQVRFWFRPSUQsCisJCQkJCQkJCXR1cCwKKwkJCQkJCQkJQW51bV9w Z19zdGF0aXN0aWNfZXh0X3N0eGV4cHJzLAorCQkJCQkJCQkmaXNudWxsKTsKKworCWlmICghaXNu dWxsKQorCXsKKwkJY2hhcgkgICAqczsKKworCQlzID0gVGV4dERhdHVtR2V0Q1N0cmluZyhleHBy ZGF0dW0pOworCQlleHBycyA9IChMaXN0ICopIHN0cmluZ1RvTm9kZShzKTsKKwkJcGZyZWUocyk7 CisKKwkJLyoKKwkJCSogUnVuIHRoZSBleHByZXNzaW9ucyB0aHJvdWdoIGV2YWxfY29uc3RfZXhw cmVzc2lvbnMuIFRoaXMgaXMgbm90CisJCQkqIGp1c3QgYW4gb3B0aW1pemF0aW9uLCBidXQgaXMg bmVjZXNzYXJ5LCBiZWNhdXNlIHRoZSBwbGFubmVyCisJCQkqIHdpbGwgYmUgY29tcGFyaW5nIHRo ZW0gdG8gc2ltaWxhcmx5LXByb2Nlc3NlZCBxdWFsIGNsYXVzZXMsIGFuZAorCQkJKiBtYXkgZmFp bCB0byBkZXRlY3QgdmFsaWQgbWF0Y2hlcyB3aXRob3V0IHRoaXMuICBXZSBtdXN0IG5vdCB1c2UK KwkJCSogY2Fub25pY2FsaXplX3F1YWwsIGhvd2V2ZXIsIHNpbmNlIHRoZXNlIGFyZW4ndCBxdWFs CisJCQkqIGV4cHJlc3Npb25zLgorCQkJKi8KKwkJZXhwcnMgPSAoTGlzdCAqKSBldmFsX2NvbnN0 X2V4cHJlc3Npb25zKE5VTEwsIChOb2RlICopIGV4cHJzKTsKKworCQkvKiBNYXkgYXMgd2VsbCBm aXggb3BmdW5jaWRzIHRvbyAqLworCQlmaXhfb3BmdW5jaWRzKChOb2RlICopIGV4cHJzKTsKKwl9 CisJbnVtZXhwcnMgPSBsaXN0X2xlbmd0aChleHBycyk7CisJbnVtYXR0cnMgPSBudW1hdHRudW1z ICsgbnVtZXhwcnM7CisKKwkvKiBSb3VuZGFib3V0IHdheSBvZiBnZXR0aW5nIGEgUmFuZ2VWYXIg b24gdGhlIHVuZGVybHlpbmcgdGFibGUgKi8KKwlyZWwgPSByZWxhdGlvbl9vcGVuKHN0eGZvcm0t PnN0eHJlbGlkLCBBY2Nlc3NTaGFyZUxvY2spOworCisJLyogbm8gbmVlZCB0byBmZXRjaCByZWxv aWQsIHdlIGFscmVhZHkgaGF2ZSBpdCAqLworCVJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZChtYWtl UmFuZ2VWYXIobnNwbmFtZSwKKwkJCQkJCQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShy ZWwpLCAtMSksCisJCQkJICAgU2hhcmVVcGRhdGVFeGNsdXNpdmVMb2NrLCAwLAorCQkJCSAgIFJh bmdlVmFyQ2FsbGJhY2tGb3JTdGF0cywgJmxvY2tlZF90YWJsZSk7CisKKwlyZWxhdGlvbl9jbG9z ZShyZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwlpZiAoaGFzLm1jdikKKwl7CisJCWlmICghZW5h YmxlZC5tY3YpCisJCXsKKwkJCWVyZXBvcnQoV0FSTklORywKKwkJCQkJKGVycmNvZGUoRVJSQ09E RV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCSBlcnJtc2coIk1DViBwYXJhbWV0ZXJz IFwiJXNcIiwgXCIlc1wiLCBcIiVzXCIsIGFuZCBcIiVzXCIgd2VyZSBhbGwgIgorCQkJCQkJCSJz cGVjaWZpZWQgZm9yIGV4dGVuZGVkIHN0YXRpc3RpY3Mgb2JqZWN0IHRoYXQgZG9lcyBub3QgZXhw ZWN0IE1DViAiLAorCQkJCQkJCWV4dGFyZ2luZm9bTU9TVF9DT01NT05fVkFMU19BUkddLmFyZ25h bWUsCisJCQkJCQkJZXh0YXJnaW5mb1tNT1NUX0NPTU1PTl9WQUxfTlVMTFNfQVJHXS5hcmduYW1l LAorCQkJCQkJCWV4dGFyZ2luZm9bTU9TVF9DT01NT05fRlJFUVNfQVJHXS5hcmduYW1lLAorCQkJ CQkJCWV4dGFyZ2luZm9bTU9TVF9DT01NT05fQkFTRV9GUkVRU19BUkddLmFyZ25hbWUpKSk7CisJ CQloYXMubWN2ID0gZmFsc2U7CisJCQlzdWNjZXNzID0gZmFsc2U7CisJCX0KKwl9CisJZWxzZQor CXsKKwkJLyogVGhlIE1DViBhcmdzIG11c3QgYWxsIGJlIE5VTEwgKi8KKwkJaWYgKCFQR19BUkdJ U05VTEwoTU9TVF9DT01NT05fVkFMU19BUkcpIHx8CisJCQkhUEdfQVJHSVNOVUxMKE1PU1RfQ09N TU9OX1ZBTF9OVUxMU19BUkcpIHx8CisJCQkhUEdfQVJHSVNOVUxMKE1PU1RfQ09NTU9OX0ZSRVFT X0FSRykgfHwKKwkJCSFQR19BUkdJU05VTEwoTU9TVF9DT01NT05fQkFTRV9GUkVRU19BUkcpKQor CQl7CisJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9Q QVJBTUVURVJfVkFMVUUpLAorCQkJCQkgZXJybXNnKCJNQ1YgcGFyYW1ldGVycyBcIiVzXCIsIFwi JXNcIiwgXCIlc1wiLCBhbmQgXCIlc1wiIG11c3QgYmUgYWxsIHNwZWNpZmllZCBpZiBhbnkgYXJl IHNwZWNpZmllZCIsCisJCQkJCQkJZXh0YXJnaW5mb1tNT1NUX0NPTU1PTl9WQUxTX0FSR10uYXJn bmFtZSwKKwkJCQkJCQlleHRhcmdpbmZvW01PU1RfQ09NTU9OX1ZBTF9OVUxMU19BUkddLmFyZ25h bWUsCisJCQkJCQkJZXh0YXJnaW5mb1tNT1NUX0NPTU1PTl9GUkVRU19BUkddLmFyZ25hbWUsCisJ CQkJCQkJZXh0YXJnaW5mb1tNT1NUX0NPTU1PTl9CQVNFX0ZSRVFTX0FSR10uYXJnbmFtZSkpKTsK KwkJCXN1Y2Nlc3MgPSBmYWxzZTsKKwkJfQorCX0KKworCWlmIChoYXMubmRpc3RpbmN0ICYmICFl bmFibGVkLm5kaXN0aW5jdCkKKwl7CisJCWVyZXBvcnQoV0FSTklORywKKwkJCQkoZXJyY29kZShF UlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkgZXJybXNnKCJQYXJhbWV0ZXJz IFwiJXNcIiB3YXMgc3BlY2lmaWVkIGZvciBleHRlbmRlZCBzdGF0aXN0aWNzIG9iamVjdCAiCisJ CQkJCQkidGhhdCBkb2VzIG5vdCBleHBlY3QgXCIlc1wiIiwKKwkJCQkJCWV4dGFyZ2luZm9bTkRJ U1RJTkNUX0FSR10uYXJnbmFtZSwKKwkJCQkJCWV4dGFyZ2luZm9bTkRJU1RJTkNUX0FSR10uYXJn bmFtZSkpKTsKKwkJaGFzLm5kaXN0aW5jdCA9IGZhbHNlOworCQlzdWNjZXNzID0gZmFsc2U7CisJ fQorCisJaWYgKGhhcy5kZXBlbmRlbmNpZXMgJiYgIWVuYWJsZWQuZGVwZW5kZW5jaWVzKQorCXsK KwkJZXJlcG9ydChXQVJOSU5HLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVU RVJfVkFMVUUpLAorCQkJCSBlcnJtc2coIlBhcmFtZXRlcnMgXCIlc1wiIHdhcyBzcGVjaWZpZWQg Zm9yIGV4dGVuZGVkIHN0YXRpc3RpY3Mgb2JqZWN0ICIKKwkJCQkJCSJ0aGF0IGRvZXMgbm90IGV4 cGVjdCBcIiVzXCIiLAorCQkJCQkJZXh0YXJnaW5mb1tERVBFTkRFTkNJRVNfQVJHXS5hcmduYW1l LAorCQkJCQkJZXh0YXJnaW5mb1tERVBFTkRFTkNJRVNfQVJHXS5hcmduYW1lKSkpOworCQloYXMu ZGVwZW5kZW5jaWVzID0gZmFsc2U7CisJCXN1Y2Nlc3MgPSBmYWxzZTsKKwl9CisKKwlpZiAoaGFz LmV4cHJlc3Npb25zICYmICFlbmFibGVkLmV4cHJlc3Npb25zKQorCXsKKwkJZXJlcG9ydChXQVJO SU5HLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJ CSBlcnJtc2coIlBhcmFtZXRlcnMgXCIlc1wiIHdhcyBzcGVjaWZpZWQgZm9yIGV4dGVuZGVkIHN0 YXRpc3RpY3Mgb2JqZWN0ICIKKwkJCQkJCSJ0aGF0IGRvZXMgbm90IGV4cGVjdCBcIiVzXCIiLAor CQkJCQkJZXh0YXJnaW5mb1tERVBFTkRFTkNJRVNfQVJHXS5hcmduYW1lLAorCQkJCQkJZXh0YXJn aW5mb1tERVBFTkRFTkNJRVNfQVJHXS5hcmduYW1lKSkpOworCQloYXMuZXhwcmVzc2lvbnMgPSBm YWxzZTsKKwkJc3VjY2VzcyA9IGZhbHNlOworCX0KKworCS8qCisJICogRWl0aGVyIG9mIHRoZXNl IHN0YXRzaXN0aWMgdHlwZXMgcmVxdWlyZXMgdGhhdCB3ZSBzdXBwbHkKKwkgKiBzZW1pLWZpbGxl ZC1vdXQgVmFjQXR0clN0YXRQIGFycmF5LgorCSAqCisJICoKKwkgKiBJdCBpcyBub3QgcG9zc2li bGUgdG8gdXNlIHRoZSBleGlzdGluZyBsb29rdXBfdmFyX2F0dHJfc3RhdHMoKSBhbmQKKwkgKiBl eGFtaW5lX2F0dHJpYnV0ZSgpIGJlY2F1c2UgdGhlc2UgZnVuY3Rpb25zIHdpbGwgc2tpcCBhdHRy aWJ1dGVzIGZvcgorCSAqIHdoaWNoIGF0dHN0YXR0YXJnZXQgaXMgMCwgYW5kIHdlIG1heSBoYXZl IHN0YXRzIHRvIGltcG9ydCBmb3IgdGhvc2UKKwkgKiBhdHRyaWJ1dGVzLgorCSAqLworCWlmICho YXMubWN2IHx8IGhhcy5leHByZXNzaW9ucykKKwl7CisJCWF0dHR5cGlkcyA9IHBhbGxvYzAobnVt YXR0cnMgKiBzaXplb2YoT2lkKSk7CisJCWF0dHR5cG1vZHMgPSBwYWxsb2MwKG51bWF0dHJzICog c2l6ZW9mKGludDMyKSk7CisJCWF0dHR5cGNvbGxzID0gcGFsbG9jMChudW1hdHRycyAqIHNpemVv ZihPaWQpKTsKKworCQlmb3IgKGludCBpID0gMDsgaSA8IG51bWF0dG51bXM7IGkrKykKKwkJewor CQkJQXR0ck51bWJlcglhdHRudW0gPSBzdHhmb3JtLT5zdHhrZXlzLnZhbHVlc1tpXTsKKworCQkJ T2lkCQkJbHRfb3ByOworCQkJT2lkCQkJZXFfb3ByOworCQkJY2hhcgkJdHlwZXR5cGU7CisKKwkJ CS8qCisJCQkgKiBmZXRjaCBhdHRyaWJ1dGUgZW50cmllcyB0aGUgc2FtZSBhcyBhcmUgZG9uZSBm b3IgYXR0cmlidXRlCisJCQkgKiBzdGF0cworCQkJICovCisJCQlzdGF0YXR0X2dldF90eXBlKHN0 eGZvcm0tPnN0eHJlbGlkLAorCQkJCQkJCSBhdHRudW0sCisJCQkJCQkJICZhdHR0eXBpZHNbaV0s CisJCQkJCQkJICZhdHR0eXBtb2RzW2ldLAorCQkJCQkJCSAmdHlwZXR5cGUsCisJCQkJCQkJICZh dHR0eXBjb2xsc1tpXSwKKwkJCQkJCQkgJmx0X29wciwKKwkJCQkJCQkgJmVxX29wcik7CisJCX0K KworCQlmb3IgKGludCBpID0gbnVtYXR0bnVtczsgaSA8IG51bWF0dHJzOyBpKyspCisJCXsKKwkJ CU5vZGUJICAgKmV4cHIgPSBsaXN0X250aChleHBycywgaSAtIG51bWF0dG51bXMpOworCisJCQlh dHR0eXBpZHNbaV0gPSBleHByVHlwZShleHByKTsKKwkJCWF0dHR5cG1vZHNbaV0gPSBleHByVHlw bW9kKGV4cHIpOworCQkJYXR0dHlwY29sbHNbaV0gPSBleHByQ29sbGF0aW9uKGV4cHIpOworCisJ CQkvKgorCQkJICogRHVwbGljYXRlIGxvZ2ljIGZyb20gZ2V0X2F0dHJfc3RhdF90eXBlCisJCQkg Ki8KKworCQkJLyoKKwkJCSAqIElmIGl0J3MgYSBtdWx0aXJhbmdlLCBzdGVwIGRvd24gdG8gdGhl IHJhbmdlIHR5cGUsIGFzIGlzIGRvbmUKKwkJCSAqIGJ5IG11bHRpcmFuZ2VfdHlwYW5hbHl6ZSgp LgorCQkJICovCisJCQlpZiAodHlwZV9pc19tdWx0aXJhbmdlKGF0dHR5cGlkc1tpXSkpCisJCQkJ YXR0dHlwaWRzW2ldID0gZ2V0X211bHRpcmFuZ2VfcmFuZ2UoYXR0dHlwaWRzW2ldKTsKKworCQkJ LyoKKwkJCSAqIFNwZWNpYWwgY2FzZTogY29sbGF0aW9uIGZvciB0c3ZlY3RvciBpcyBERUZBVUxU X0NPTExBVElPTl9PSUQuCisJCQkgKiBTZWUgY29tcHV0ZV90c3ZlY3Rvcl9zdGF0cygpLgorCQkJ ICovCisJCQlpZiAoYXR0dHlwaWRzW2ldID09IFRTVkVDVE9ST0lEKQorCQkJCWF0dHR5cGNvbGxz W2ldID0gREVGQVVMVF9DT0xMQVRJT05fT0lEOworCisJCX0KKwl9CisKKwkvKiBQcmltYXJ5IEtl eTogY2Fubm90IGJlIE5VTEwgb3IgcmVwbGFjZWQuICovCisJdmFsdWVzW0FudW1fcGdfc3RhdGlz dGljX2V4dF9kYXRhX3N0eG9pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShzdHhmb3JtLT5vaWQp OworCXZhbHVlc1tBbnVtX3BnX3N0YXRpc3RpY19leHRfZGF0YV9zdHhkaW5oZXJpdCAtIDFdID0g Qm9vbEdldERhdHVtKGluaGVyaXRlZCk7CisKKwlpZiAoaGFzLm5kaXN0aW5jdCkKKwl7CisJCURh dHVtCQkJbmRpc3RpbmN0X2RhdHVtID0gUEdfR0VUQVJHX0RBVFVNKE5ESVNUSU5DVF9BUkcpOwor CQlieXRlYQkJICAgKmRhdGEgPSBEYXR1bUdldEJ5dGVhUFAobmRpc3RpbmN0X2RhdHVtKTsKKwkJ TVZORGlzdGluY3QJICAgKm5kaXN0aW5jdCA9IHN0YXRleHRfbmRpc3RpbmN0X2Rlc2VyaWFsaXpl KGRhdGEpOworCisJCWlmIChwZ19uZGlzdGluY3RfdmFsaWRhdGVfaXRlbXMobmRpc3RpbmN0LCAm c3R4Zm9ybS0+c3R4a2V5cywgbnVtZXhwcnMsIFdBUk5JTkcpKQorCQl7CisJCQl2YWx1ZXNbQW51 bV9wZ19zdGF0aXN0aWNfZXh0X2RhdGFfc3R4ZG5kaXN0aW5jdCAtIDFdID0gbmRpc3RpbmN0X2Rh dHVtOworCQkJcmVwbGFjZXNbQW51bV9wZ19zdGF0aXN0aWNfZXh0X2RhdGFfc3R4ZG5kaXN0aW5j dCAtIDFdID0gdHJ1ZTsKKwkJfQorCQllbHNlCisJCXsKKwkJCW51bGxzW0FudW1fcGdfc3RhdGlz dGljX2V4dF9kYXRhX3N0eGRuZGlzdGluY3QgLSAxXSA9IHRydWU7CisJCQlzdWNjZXNzID0gZmFs c2U7CisJCX0KKworCQlmcmVlX3BnX25kaXN0aW5jdChuZGlzdGluY3QpOworCX0KKwllbHNlCisJ CW51bGxzW0FudW1fcGdfc3RhdGlzdGljX2V4dF9kYXRhX3N0eGRuZGlzdGluY3QgLSAxXSA9IHRy dWU7CisKKwlpZiAoaGFzLmRlcGVuZGVuY2llcykKKwl7CisJCURhdHVtCQkJZGVwZW5kZW5jaWVz X2RhdHVtID0gUEdfR0VUQVJHX0RBVFVNKERFUEVOREVOQ0lFU19BUkcpOworCQlieXRlYQkJICAg KmRhdGEgPSBEYXR1bUdldEJ5dGVhUFAoZGVwZW5kZW5jaWVzX2RhdHVtKTsKKwkJTVZEZXBlbmRl bmNpZXMgKmRlcGVuZGVuY2llcyA9IHN0YXRleHRfZGVwZW5kZW5jaWVzX2Rlc2VyaWFsaXplKGRh dGEpOworCisJCWlmIChwZ19kZXBlbmRlbmNpZXNfdmFsaWRhdGVfZGVwcyhkZXBlbmRlbmNpZXMs ICZzdHhmb3JtLT5zdHhrZXlzLCBudW1leHBycywgV0FSTklORykpCisJCXsKKwkJCXZhbHVlc1tB bnVtX3BnX3N0YXRpc3RpY19leHRfZGF0YV9zdHhkZGVwZW5kZW5jaWVzIC0gMV0gPSBkZXBlbmRl bmNpZXNfZGF0dW07CisJCQlyZXBsYWNlc1tBbnVtX3BnX3N0YXRpc3RpY19leHRfZGF0YV9zdHhk ZGVwZW5kZW5jaWVzIC0gMV0gPSB0cnVlOworCQl9CisJCWVsc2UKKwkJeworCQkJbnVsbHNbQW51 bV9wZ19zdGF0aXN0aWNfZXh0X2RhdGFfc3R4ZGRlcGVuZGVuY2llcyAtIDFdID0gdHJ1ZTsKKwkJ CXN1Y2Nlc3MgPSBmYWxzZTsKKwkJfQorCisJCWZyZWVfcGdfZGVwZW5kZW5jaWVzKGRlcGVuZGVu Y2llcyk7CisJfQorCWVsc2UKKwkJbnVsbHNbQW51bV9wZ19zdGF0aXN0aWNfZXh0X2RhdGFfc3R4 ZGRlcGVuZGVuY2llcyAtIDFdID0gdHJ1ZTsKKworCWlmIChoYXMubWN2KQorCXsKKwkJRGF0dW0J CWRhdHVtOworCQlBcnJheVR5cGUgICptY3ZfYXJyID0gUEdfR0VUQVJHX0FSUkFZVFlQRV9QKE1P U1RfQ09NTU9OX1ZBTFNfQVJHKTsKKwkJQXJyYXlUeXBlICAqbnVsbHNfYXJyID0gUEdfR0VUQVJH X0FSUkFZVFlQRV9QKE1PU1RfQ09NTU9OX1ZBTF9OVUxMU19BUkcpOworCQlBcnJheVR5cGUgICpm cmVxc19hcnIgPSBQR19HRVRBUkdfQVJSQVlUWVBFX1AoTU9TVF9DT01NT05fRlJFUVNfQVJHKTsK KwkJQXJyYXlUeXBlICAqYmFzZV9mcmVxc19hcnIgPSBQR19HRVRBUkdfQVJSQVlUWVBFX1AoTU9T VF9DT01NT05fQkFTRV9GUkVRU19BUkcpOworCQlpbnQJCQluaXRlbXM7CisJCURhdHVtCSAgICpt Y3ZfZWxlbXM7CisJCWJvb2wJICAgKm1jdl9udWxsczsKKwkJaW50CQkJY2hlY2tfbnVtbWN2Owor CisJCS8qCisJCSAqIFRoZSBtY3ZfYXJyIGlzIGFuIGFycmF5IG9mIGFycmF5cyBvZiB0ZXh0LCBh bmQgd2UgdXNlIGl0IGFzIHRoZQorCQkgKiByZWZlcmVuY2UgYXJyYXkgZm9yIGNoZWNraW5nIHRo ZSBsZW5ndGhzIG9mIHRoZSBvdGhlciAzIGFycmF5cy4KKwkJICovCisJCWlmIChBUlJfTkRJTSht Y3ZfYXJyKSAhPSAyKQorCQl7CisJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJCShlcnJjb2RlKEVS UkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkgZXJybXNnKCJQYXJhbWV0ZXJz IFwiJXNcIiBtdXN0IGJlIGEgdGV4dCBhcnJheSBvZiAyIGRpbWVuc2lvbnMuIiwKKwkJCQkJCQll eHRhcmdpbmZvW01PU1RfQ09NTU9OX1ZBTFNfQVJHXS5hcmduYW1lKSkpOworCQkJcmV0dXJuIChE YXR1bSkgMDsKKwkJfQorCisJCW5pdGVtcyA9IEFSUl9ESU1TKG1jdl9hcnIpWzBdOworCisJCS8q IGZpeGVkIGxlbmd0aCBhcnJheXMgdGhhdCBjYW5ub3QgY29udGFpbiBOVUxMcyAqLworCQlpZiAo IWNoZWNrX21jdmxpc3RfYXJyYXkobnVsbHNfYXJyLCBNT1NUX0NPTU1PTl9WQUxfTlVMTFNfQVJH LAorCQkJCQkJCQkgMiwgbml0ZW1zKSB8fAorCQkJIWNoZWNrX21jdmxpc3RfYXJyYXkoZnJlcXNf YXJyLCBNT1NUX0NPTU1PTl9GUkVRU19BUkcsCisJCQkJCQkJCSAxLCBuaXRlbXMpIHx8CisJCQkh Y2hlY2tfbWN2bGlzdF9hcnJheShiYXNlX2ZyZXFzX2FyciwgTU9TVF9DT01NT05fQkFTRV9GUkVR U19BUkcsCisJCQkJCQkJCSAxLCBuaXRlbXMpKQorCQkJcmV0dXJuIChEYXR1bSkgMDsKKworCisJ CWRlY29uc3RydWN0X2FycmF5X2J1aWx0aW4obWN2X2FyciwgVEVYVE9JRCwgJm1jdl9lbGVtcywK KwkJCQkJCQkJICAmbWN2X251bGxzLCAmY2hlY2tfbnVtbWN2KTsKKworCQlBc3NlcnQoY2hlY2tf bnVtbWN2ID09IChuaXRlbXMgKiBudW1hdHRycykpOworCisJCWRhdHVtID0gaW1wb3J0X21jdmxp c3QodHVwLCBXQVJOSU5HLCBudW1hdHRycywKKwkJCQkJCQkgICBhdHR0eXBpZHMsIGF0dHR5cG1v ZHMsIGF0dHR5cGNvbGxzLAorCQkJCQkJCSAgIG5pdGVtcywgbWN2X2VsZW1zLCBtY3ZfbnVsbHMs CisJCQkJCQkJICAgKGJvb2wgKikgQVJSX0RBVEFfUFRSKG51bGxzX2FyciksCisJCQkJCQkJICAg KGZsb2F0OCAqKSBBUlJfREFUQV9QVFIoZnJlcXNfYXJyKSwKKwkJCQkJCQkgICAoZmxvYXQ4ICop IEFSUl9EQVRBX1BUUihiYXNlX2ZyZXFzX2FycikpOworCisJCXZhbHVlc1tBbnVtX3BnX3N0YXRp c3RpY19leHRfZGF0YV9zdHhkbWN2IC0gMV0gPSBkYXR1bTsKKwkJcmVwbGFjZXNbQW51bV9wZ19z dGF0aXN0aWNfZXh0X2RhdGFfc3R4ZG1jdiAtIDFdID0gdHJ1ZTsKKwl9CisJZWxzZQorCQludWxs c1tBbnVtX3BnX3N0YXRpc3RpY19leHRfZGF0YV9zdHhkbWN2IC0gMV0gPSB0cnVlOworCisJaWYg KGhhcy5leHByZXNzaW9ucykKKwl7CisJCURhdHVtCQlkYXR1bTsKKwkJUmVsYXRpb24JcGdzZDsK KworCQlwZ3NkID0gdGFibGVfb3BlbihTdGF0aXN0aWNSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVM b2NrKTsKKworCQlkYXR1bSA9IGltcG9ydF9leHByZXNzaW9ucyhwZ3NkLCBudW1leHBycywKKwkJ CQkJCQkJICAgJmF0dHR5cGlkc1tudW1hdHRudW1zXSwgJmF0dHR5cG1vZHNbbnVtYXR0bnVtc10s CisJCQkJCQkJCSAgICZhdHR0eXBjb2xsc1tudW1hdHRudW1zXSwKKwkJCQkJCQkJICAgUEdfR0VU QVJHX0FSUkFZVFlQRV9QKEVYUFJFU1NJT05TX0FSRykpOworCisJCXRhYmxlX2Nsb3NlKHBnc2Qs IFJvd0V4Y2x1c2l2ZUxvY2spOworCisJCXZhbHVlc1tBbnVtX3BnX3N0YXRpc3RpY19leHRfZGF0 YV9zdHhkZXhwciAtIDFdID0gZGF0dW07CisJCXJlcGxhY2VzW0FudW1fcGdfc3RhdGlzdGljX2V4 dF9kYXRhX3N0eGRleHByIC0gMV0gPSB0cnVlOworCX0KKwllbHNlCisJCW51bGxzW0FudW1fcGdf c3RhdGlzdGljX2V4dF9kYXRhX3N0eGRleHByIC0gMV0gPSB0cnVlOworCisJdXBzZXJ0X3BnX3N0 YXRpc3RpY19leHRfZGF0YSh2YWx1ZXMsIG51bGxzLCByZXBsYWNlcyk7CisKKwloZWFwX2ZyZWV0 dXBsZSh0dXApOworCXRhYmxlX2Nsb3NlKHBnX3N0ZXh0LCBSb3dFeGNsdXNpdmVMb2NrKTsKKwor CWlmIChhdHR0eXBpZHMgIT0gTlVMTCkKKwkJcGZyZWUoYXR0dHlwaWRzKTsKKwlpZiAoYXR0dHlw bW9kcyAhPSBOVUxMKQorCQlwZnJlZShhdHR0eXBtb2RzKTsKKwlpZiAoYXR0dHlwY29sbHMgIT0g TlVMTCkKKwkJcGZyZWUoYXR0dHlwY29sbHMpOworCXJldHVybiBzdWNjZXNzOworfQorCisvKgor ICogQ29uc2lzdGVuY3kgY2hlY2tzIHRvIGVuc3VyZSB0aGF0IG90aGVyIG1jdmxpc3QgYXJyYXlz IGFyZSBpbiBhbGlnbm1lbnQKKyAqIHdpdGggdGhlIG1jdiBhcnJheS4KKyAqLworc3RhdGljIGJv b2wKK2NoZWNrX21jdmxpc3RfYXJyYXkoQXJyYXlUeXBlICphcnIsIGludCBhcmdpbmRleCwgaW50 IHJlcXVpcmVkX25kaW1zLAorCQkJCQlpbnQgbWN2X2xlbmd0aCkKK3sKKwlpZiAoQVJSX05ESU0o YXJyKSAhPSByZXF1aXJlZF9uZGltcykKKwl7CisJCWVyZXBvcnQoV0FSTklORywKKwkJCQkoZXJy Y29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkgZXJybXNnKCJQYXJh bWV0ZXIgXCIlc1wiIG11c3QgYmUgYW4gYXJyYXkgb2YgJWQgZGltZW5zaW9ucy4iLAorCQkJCQkJ ZXh0YXJnaW5mb1thcmdpbmRleF0uYXJnbmFtZSwgcmVxdWlyZWRfbmRpbXMpKSk7CisJCXJldHVy biBmYWxzZTsKKwl9CisKKwlpZiAoYXJyYXlfY29udGFpbnNfbnVsbHMoYXJyKSkKKwl7CisJCWVy ZXBvcnQoV0FSTklORywKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZB TFVFKSwKKwkJCQkgZXJybXNnKCJBcnJheSBcIiVzXCIgY2Fubm90IGNvbnRhaW4gTlVMTHMuIiwK KwkJCQkJCWV4dGFyZ2luZm9bYXJnaW5kZXhdLmFyZ25hbWUpKSk7CisJCXJldHVybiBmYWxzZTsK Kwl9CisKKwlpZiAoQVJSX0RJTVMoYXJyKVswXSAhPSBtY3ZfbGVuZ3RoKQorCXsKKwkJZXJlcG9y dChXQVJOSU5HLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUp LAorCQkJCSBlcnJtc2coIlBhcmFtZXRlcnMgXCIlc1wiIG11c3QgaGF2ZSB0aGUgc2FtZSBudW1i ZXIgb2YgZWxlbWVudHMgYXMgXCIlc1wiIiwKKwkJCQkJCWV4dGFyZ2luZm9bYXJnaW5kZXhdLmFy Z25hbWUsCisJCQkJCQlleHRhcmdpbmZvW01PU1RfQ09NTU9OX1ZBTFNfQVJHXS5hcmduYW1lKSkp OworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBDcmVh dGUgdGhlIHN0eGRleHBycyBkYXR1bSB1c2luZyB0aGUgdXNlciBpbnB1dCBpbiBhbiBhcnJheSBv ZiBhcnJheSBvZgorICogdGV4dCwgcmVmZXJlbmNlZCBhZ2FpbnN0IHRoZSBkYXRhdHlwZXMgZm9y IHRoZSBleHByZXNzaW9ucy4KKyAqLworc3RhdGljIERhdHVtCitpbXBvcnRfZXhwcmVzc2lvbnMo UmVsYXRpb24gcGdzZCwgaW50IG51bWV4cHJzLAorCQkJCSAgIE9pZCAqYXR0dHlwaWRzLCBpbnQz MiAqYXR0dHlwbW9kcywKKwkJCQkgICBPaWQgKmF0dHR5cGNvbGxzLCBBcnJheVR5cGUgKmV4cHJz X2FycikKK3sKKwlEYXR1bQkgICAqZXhwcnNfZWxlbXM7CisJYm9vbAkgICAqZXhwcnNfbnVsbHM7 CisJaW50CQkJY2hlY2tfbnVtZXhwcnM7CisJaW50CQkJb2Zmc2V0ID0gMDsKKworCUZtZ3JJbmZv CWFycmF5X2luX2ZuOworCisJT2lkCQkJcGdzdHlwb2lkID0gZ2V0X3JlbF90eXBlX2lkKFN0YXRp c3RpY1JlbGF0aW9uSWQpOworCisJQXJyYXlCdWlsZFN0YXRlICphc3RhdGUgPSBOVUxMOworCisK KwlpZiAoQVJSX05ESU0oZXhwcnNfYXJyKSAhPSAyKQorCXsKKwkJZXJlcG9ydChXQVJOSU5HLAor CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCSBlcnJt c2coIlBhcmFtZXRlciBcIiVzXCIgbXVzdCBiZSBhIHRleHQgYXJyYXkgb2YgMiBkaW1lbnNpb25z LiIsCisJCQkJCQlleHRhcmdpbmZvW0VYUFJFU1NJT05TX0FSR10uYXJnbmFtZSkpKTsKKwkJcmV0 dXJuIChEYXR1bSkgMDsKKwl9CisKKwlpZiAoQVJSX0RJTVMoZXhwcnNfYXJyKVswXSAhPSBudW1l eHBycykKKwl7CisJCWVyZXBvcnQoV0FSTklORywKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFM SURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkgZXJybXNnKCJQYXJhbWV0ZXIgXCIlc1wiIG11c3Qg aGF2ZSBhbiBvdXRlciBkaW1lbnNpb24gb2YgJWQgZWxlbWVudHMuIiwKKwkJCQkJCWV4dGFyZ2lu Zm9bRVhQUkVTU0lPTlNfQVJHXS5hcmduYW1lLCBudW1leHBycykpKTsKKwkJcmV0dXJuIChEYXR1 bSkgMDsKKwl9CisJaWYgKEFSUl9ESU1TKGV4cHJzX2FycilbMV0gIT0gTlVNX0FUVFJJQlVURV9T VEFUU19FTEVNUykKKwl7CisJCWVyZXBvcnQoV0FSTklORywKKwkJCQkoZXJyY29kZShFUlJDT0RF X0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkgZXJybXNnKCJQYXJhbWV0ZXIgXCIlc1wi IG11c3QgaGF2ZSBhbiBpbm5lciBkaW1lbnNpb24gb2YgJWQgZWxlbWVudHMuIiwKKwkJCQkJCWV4 dGFyZ2luZm9bRVhQUkVTU0lPTlNfQVJHXS5hcmduYW1lLAorCQkJCQkJTlVNX0FUVFJJQlVURV9T VEFUU19FTEVNUykpKTsKKwkJcmV0dXJuIChEYXR1bSkgMDsKKwl9CisKKwlmbWdyX2luZm8oRl9B UlJBWV9JTiwgJmFycmF5X2luX2ZuKTsKKworCWRlY29uc3RydWN0X2FycmF5X2J1aWx0aW4oZXhw cnNfYXJyLCBURVhUT0lELCAmZXhwcnNfZWxlbXMsCisJCQkJCQkJICAmZXhwcnNfbnVsbHMsICZj aGVja19udW1leHBycyk7CisKKwlmb3IgKGludCBpID0gMDsgaSA8IG51bWV4cHJzOyBpKyspCisJ eworCQlPaWQJCQl0eXBpZCA9IGF0dHR5cGlkc1tpXTsKKwkJaW50MzIJCXR5cG1vZCA9IGF0dHR5 cG1vZHNbaV07CisJCU9pZAkJCXN0YWNvbGwgPSBhdHR0eXBjb2xsc1tpXTsKKwkJVHlwZUNhY2hl RW50cnkgKnR5cGNhY2hlOworCisJCU9pZAkJCWVsZW10eXBpZCA9IEludmFsaWRPaWQ7CisJCU9p ZAkJCWVsZW1fZXFfb3ByID0gSW52YWxpZE9pZDsKKworCQlib29sCQlvazsKKworCQlEYXR1bQkJ dmFsdWVzW05hdHRzX3BnX3N0YXRpc3RpY107CisJCWJvb2wJCW51bGxzW05hdHRzX3BnX3N0YXRp c3RpY107CisJCWJvb2wJCXJlcGxhY2VzW05hdHRzX3BnX3N0YXRpc3RpY107CisKKwkJSGVhcFR1 cGxlCXBnc3R1cDsKKwkJRGF0dW0JCXBnc3RkYXQ7CisKKwkJLyogZmluZHMgdGhlIHJpZ2h0IG9w ZXJhdG9ycyBldmVuIGlmIGF0dHR5cGlkIGlzIGEgZG9tYWluICovCisJCXR5cGNhY2hlID0gbG9v a3VwX3R5cGVfY2FjaGUodHlwaWQsIFRZUEVDQUNIRV9MVF9PUFIgfCBUWVBFQ0FDSEVfRVFfT1BS KTsKKworCQlzdGF0YXR0X2luaXRfZW1wdHlfdHVwbGUoSW52YWxpZE9pZCwgSW52YWxpZEF0dHJO dW1iZXIsIGZhbHNlLAorCQkJCQkJCQkgdmFsdWVzLCBudWxscywgcmVwbGFjZXMpOworCisJCWlm ICghZXhwcnNfbnVsbHNbb2Zmc2V0ICsgTlVMTF9GUkFDX0VMRU1dKQorCQl7CisJCQlvayA9IHRl eHRfdG9fZmxvYXQ0KGV4cHJzX2VsZW1zW29mZnNldCArIE5VTExfRlJBQ19FTEVNXSwKKwkJCQkJ CQkJJnZhbHVlc1tBbnVtX3BnX3N0YXRpc3RpY19zdGFudWxsZnJhYyAtIDFdKTsKKworCQkJaWYg KCFvaykKKwkJCXsKKwkJCQljaGFyCSAgICpzID0gVGV4dERhdHVtR2V0Q1N0cmluZyhleHByc19l bGVtc1tvZmZzZXQgKyBOVUxMX0ZSQUNfRUxFTV0pOworCisJCQkJZXJlcG9ydChXQVJOSU5HLAor CQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCQkg ZXJybXNnKCJFeHByZXNzaW9uICVzIGVsZW1lbnQgXCIlc1wiIGRvZXMgbm90IG1hdGNoIGV4cGVj dGVkIGlucHV0IHR5cGUuIiwKKwkJCQkJCQkJZXh0ZXhwcmFyZ2luZm9bTlVMTF9GUkFDX0VMRU1d LmFyZ25hbWUsIHMpKSk7CisJCQkJcGZyZWUocyk7CisJCQkJcmV0dXJuIChEYXR1bSkgMDsKKwkJ CX0KKwkJfQorCisJCWlmICghZXhwcnNfbnVsbHNbb2Zmc2V0ICsgQVZHX1dJRFRIX0VMRU1dKQor CQl7CisJCQlvayA9IHRleHRfdG9faW50NChleHByc19lbGVtc1tvZmZzZXQgKyBBVkdfV0lEVEhf RUxFTV0sCisJCQkJCQkJICAmdmFsdWVzW0FudW1fcGdfc3RhdGlzdGljX3N0YXdpZHRoIC0gMV0p OworCisJCQlpZiAoIW9rKQorCQkJeworCQkJCWNoYXIJICAgKnMgPSBUZXh0RGF0dW1HZXRDU3Ry aW5nKGV4cHJzX2VsZW1zW29mZnNldCArIE5VTExfRlJBQ19FTEVNXSk7CisKKwkJCQllcmVwb3J0 KFdBUk5JTkcsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVF KSwKKwkJCQkJCSBlcnJtc2coIkV4cHJlc3Npb24gJXMgZWxlbWVudCBcIiVzXCIgZG9lcyBub3Qg bWF0Y2ggZXhwZWN0ZWQgaW5wdXQgdHlwZS4iLAorCQkJCQkJCQlleHRleHByYXJnaW5mb1tBVkdf V0lEVEhfRUxFTV0uYXJnbmFtZSwgcykpKTsKKwkJCQlwZnJlZShzKTsKKwkJCQlyZXR1cm4gKERh dHVtKSAwOworCQkJfQorCQl9CisKKwkJaWYgKCFleHByc19udWxsc1tvZmZzZXQgKyBOX0RJU1RJ TkNUX0VMRU1dKQorCQl7CisJCQlvayA9IHRleHRfdG9fZmxvYXQ0KGV4cHJzX2VsZW1zW29mZnNl dCArIE5fRElTVElOQ1RfRUxFTV0sCisJCQkJCQkJCSZ2YWx1ZXNbQW51bV9wZ19zdGF0aXN0aWNf c3RhZGlzdGluY3QgLSAxXSk7CisKKwkJCWlmICghb2spCisJCQl7CisJCQkJY2hhcgkgICAqcyA9 IFRleHREYXR1bUdldENTdHJpbmcoZXhwcnNfZWxlbXNbb2Zmc2V0ICsgTlVMTF9GUkFDX0VMRU1d KTsKKworCQkJCWVyZXBvcnQoV0FSTklORywKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJ RF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkJIGVycm1zZygiRXhwcmVzc2lvbiAlcyBlbGVtZW50 IFwiJXNcIiBkb2VzIG5vdCBtYXRjaCBleHBlY3RlZCBpbnB1dCB0eXBlLiIsCisJCQkJCQkJCWV4 dGV4cHJhcmdpbmZvW05fRElTVElOQ1RfRUxFTV0uYXJnbmFtZSwgcykpKTsKKwkJCQlwZnJlZShz KTsKKwkJCQlyZXR1cm4gKERhdHVtKSAwOworCQkJfQorCQl9CisKKwkJLyoKKwkJICogVGhlIFNU QUtJTkQgc3RhdGlzdGljcyBhcmUgdGhlIHNhbWUgYXMgdGhlIG9uZXMgZm91bmQgaW4gYXR0cmli dXRlCisJCSAqIHN0YXRzLiBIb3dldmVyLCB0aGVzZSBhcmUgYWxsIGRlcml2ZWQgZnJvbSB0ZXh0 IGNvbHVtbnMsIHdoZXJlYXMKKwkJICogdGhlIG9uZXMgZGVyaXZlZCBmb3IgYXR0cmlidXRlIHN0 YXRzIGFyZSBhIG1peCBvZiBkYXRhdHlwZXMuIFRoaXMKKwkJICogbGltaXRzIHRoZSBvcHBvcnR1 bml0aWVzIGZvciBjb2RlIHNoYXJpbmcgYmV0d2VlbiB0aGUgdHdvLgorCQkgKi8KKworCQkvKiBT VEFUSVNUSUNfS0lORF9NQ1YgKi8KKwkJaWYgKGV4cHJzX251bGxzW29mZnNldCArIE1PU1RfQ09N TU9OX1ZBTFNfRUxFTV0gIT0KKwkJCWV4cHJzX251bGxzW29mZnNldCArIE1PU1RfQ09NTU9OX0ZS RVFTX0VMRU1dKQorCQl7CisJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJCShlcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkgZXJybXNnKCJFeHByZXNzaW9uICVz IGFuZCAlcyBtdXN0IGJvdGggYmUgTk9UIE5VTEwgb3IgYm90aCBOVUxMLiIsCisJCQkJCQkJZXh0 ZXhwcmFyZ2luZm9bTU9TVF9DT01NT05fVkFMU19FTEVNXS5hcmduYW1lLAorCQkJCQkJCWV4dGV4 cHJhcmdpbmZvW01PU1RfQ09NTU9OX0ZSRVFTX0VMRU1dLmFyZ25hbWUpKSk7CisJCQlyZXR1cm4g KERhdHVtKSAwOworCQl9CisKKwkJaWYgKCFleHByc19udWxsc1tvZmZzZXQgKyBNT1NUX0NPTU1P Tl9WQUxTX0VMRU1dKQorCQl7CisJCQlEYXR1bQkJc3RhdmFsdWVzOworCQkJRGF0dW0JCXN0YW51 bWJlcnM7CisKKwkJCXN0YXZhbHVlcyA9IHRleHRfdG9fc3RhdmFsdWVzKGV4dGV4cHJhcmdpbmZv W01PU1RfQ09NTU9OX1ZBTFNfRUxFTV0uYXJnbmFtZSwKKwkJCQkJCQkJCQkgICZhcnJheV9pbl9m biwgZXhwcnNfZWxlbXNbb2Zmc2V0ICsgTU9TVF9DT01NT05fVkFMU19FTEVNXSwKKwkJCQkJCQkJ CQkgIHR5cGlkLCB0eXBtb2QsICZvayk7CisKKwkJCWlmICghb2spCisJCQkJcmV0dXJuIChEYXR1 bSkgMDsKKworCQkJc3RhbnVtYmVycyA9IHRleHRfdG9fc3RhdmFsdWVzKGV4dGV4cHJhcmdpbmZv W01PU1RfQ09NTU9OX1ZBTFNfRUxFTV0uYXJnbmFtZSwKKwkJCQkJCQkJCQkgICAmYXJyYXlfaW5f Zm4sIGV4cHJzX2VsZW1zW29mZnNldCArIE1PU1RfQ09NTU9OX0ZSRVFTX0VMRU1dLAorCQkJCQkJ CQkJCSAgIEZMT0FUNE9JRCwgLTEsICZvayk7CisKKwkJCWlmICghb2spCisJCQkJcmV0dXJuIChE YXR1bSkgMDsKKworCQkJc3RhdGF0dF9zZXRfc2xvdCh2YWx1ZXMsIG51bGxzLCByZXBsYWNlcywK KwkJCQkJCQkgU1RBVElTVElDX0tJTkRfTUNWLAorCQkJCQkJCSB0eXBjYWNoZS0+ZXFfb3ByLCBz dGFjb2xsLAorCQkJCQkJCSBzdGFudW1iZXJzLCBmYWxzZSwgc3RhdmFsdWVzLCBmYWxzZSk7CisJ CX0KKworCQkvKiBTVEFUSVNUSUNfS0lORF9ISVNUT0dSQU0gKi8KKwkJaWYgKCFleHByc19udWxs c1tvZmZzZXQgKyBISVNUT0dSQU1fQk9VTkRTX0VMRU1dKQorCQl7CisJCQlEYXR1bQkJc3RhdmFs dWVzOworCisJCQlzdGF2YWx1ZXMgPSB0ZXh0X3RvX3N0YXZhbHVlcyhleHRleHByYXJnaW5mb1tI SVNUT0dSQU1fQk9VTkRTX0VMRU1dLmFyZ25hbWUsCisJCQkJCQkJCQkJICAmYXJyYXlfaW5fZm4s IGV4cHJzX2VsZW1zW29mZnNldCArIEhJU1RPR1JBTV9CT1VORFNfRUxFTV0sCisJCQkJCQkJCQkJ ICB0eXBpZCwgdHlwbW9kLCAmb2spOworCisJCQlpZiAoIW9rKQorCQkJCXJldHVybiAoRGF0dW0p IDA7CisKKwkJCXN0YXRhdHRfc2V0X3Nsb3QodmFsdWVzLCBudWxscywgcmVwbGFjZXMsCisJCQkJ CQkJIFNUQVRJU1RJQ19LSU5EX0hJU1RPR1JBTSwKKwkJCQkJCQkgdHlwY2FjaGUtPmx0X29wciwg c3RhY29sbCwKKwkJCQkJCQkgMCwgdHJ1ZSwgc3RhdmFsdWVzLCBmYWxzZSk7CisJCX0KKworCQkv KiBTVEFUSVNUSUNfS0lORF9DT1JSRUxBVElPTiAqLworCQlpZiAoIWV4cHJzX251bGxzW29mZnNl dCArIENPUlJFTEFUSU9OX0VMRU1dKQorCQl7CisJCQlEYXR1bQkJY29ycltdID0geyhEYXR1bSkg MH07CisJCQlBcnJheVR5cGUgICphcnJ5OworCQkJRGF0dW0JCXN0YW51bWJlcnM7CisKKwkJCW9r ID0gdGV4dF90b19mbG9hdDQoZXhwcnNfZWxlbXNbb2Zmc2V0ICsgQ09SUkVMQVRJT05fRUxFTV0s ICZjb3JyWzBdKTsKKworCQkJaWYgKCFvaykKKwkJCXsKKwkJCQljaGFyCSAgICpzID0gVGV4dERh dHVtR2V0Q1N0cmluZyhleHByc19lbGVtc1tvZmZzZXQgKyBDT1JSRUxBVElPTl9FTEVNXSk7CisK KwkJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFS QU1FVEVSX1ZBTFVFKSwKKwkJCQkJCSBlcnJtc2coIkV4cHJlc3Npb24gJXMgZWxlbWVudCBcIiVz XCIgZG9lcyBub3QgbWF0Y2ggZXhwZWN0ZWQgaW5wdXQgdHlwZS4iLAorCQkJCQkJCQlleHRleHBy YXJnaW5mb1tDT1JSRUxBVElPTl9FTEVNXS5hcmduYW1lLCBzKSkpOworCQkJCXJldHVybiAoRGF0 dW0pIDA7CisJCQl9CisKKwkJCWFycnkgPSBjb25zdHJ1Y3RfYXJyYXlfYnVpbHRpbihjb3JyLCAx LCBGTE9BVDRPSUQpOworCisJCQlzdGFudW1iZXJzID0gUG9pbnRlckdldERhdHVtKGFycnkpOwor CisJCQlzdGF0YXR0X3NldF9zbG90KHZhbHVlcywgbnVsbHMsIHJlcGxhY2VzLAorCQkJCQkJCSBT VEFUSVNUSUNfS0lORF9DT1JSRUxBVElPTiwKKwkJCQkJCQkgdHlwY2FjaGUtPmx0X29wciwgc3Rh Y29sbCwKKwkJCQkJCQkgc3RhbnVtYmVycywgZmFsc2UsIDAsIHRydWUpOworCQl9CisKKwkJLyog U1RBVElTVElDX0tJTkRfTUNFTEVNICovCisJCWlmIChleHByc19udWxsc1tvZmZzZXQgKyBNT1NU X0NPTU1PTl9FTEVNU19FTEVNXSAhPQorCQkJZXhwcnNfbnVsbHNbb2Zmc2V0ICsgTU9TVF9DT01N T05fRUxFTV9GUkVRU19FTEVNXSkKKwkJeworCQkJZXJlcG9ydChXQVJOSU5HLAorCQkJCQkoZXJy Y29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJIGVycm1zZygiRXhw cmVzc2lvbiAlcyBhbmQgJXMgbXVzdCBib3RoIGJlIE5PVCBOVUxMIG9yIGJvdGggTlVMTC4iLAor CQkJCQkJCWV4dGV4cHJhcmdpbmZvW01PU1RfQ09NTU9OX0VMRU1TX0VMRU1dLmFyZ25hbWUsCisJ CQkJCQkJZXh0ZXhwcmFyZ2luZm9bTU9TVF9DT01NT05fRUxFTV9GUkVRU19FTEVNXS5hcmduYW1l KSkpOworCQkJcmV0dXJuIChEYXR1bSkgMDsKKwkJfQorCisJCS8qCisJCSAqIFdlIG9ubHkgbmVl ZCB0byBmZXRjaCBlbGVtZW50IHR5cGUgYW5kIGVxIG9wZXJhdG9yIGlmIHdlIGhhdmUgYQorCQkg KiBzdGF0IG9mIHR5cGUgTUNFTEVNIG9yIERFQ0hJU1QuCisJCSAqLworCQlpZiAoIWV4cHJzX251 bGxzW29mZnNldCArIE1PU1RfQ09NTU9OX0VMRU1TX0VMRU1dIHx8CisJCQkhZXhwcnNfbnVsbHNb b2Zmc2V0ICsgRUxFTV9DT1VOVF9ISVNUT0dSQU1fRUxFTV0pCisJCXsKKwkJCWlmICghc3RhdGF0 dF9nZXRfZWxlbV90eXBlKHR5cGlkLCB0eXBjYWNoZS0+dHlwdHlwZSwKKwkJCQkJCQkJCSAgICZl bGVtdHlwaWQsICZlbGVtX2VxX29wcikpCisJCQl7CisJCQkJZXJlcG9ydChXQVJOSU5HLAorCQkJ CQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCQkgKGVy cm1zZygidW5hYmxlIHRvIGRldGVybWluZSBlbGVtZW50IHR5cGUgb2YgZXhwcmVzc2lvbiIpKSkp OworCQkJCXJldHVybiAoRGF0dW0pIDA7CisJCQl9CisJCX0KKworCQlpZiAoIWV4cHJzX251bGxz W29mZnNldCArIE1PU1RfQ09NTU9OX0VMRU1TX0VMRU1dKQorCQl7CisJCQlEYXR1bQkJc3RhdmFs dWVzOworCQkJRGF0dW0JCXN0YW51bWJlcnM7CisKKwkJCXN0YXZhbHVlcyA9IHRleHRfdG9fc3Rh dmFsdWVzKGV4dGV4cHJhcmdpbmZvW01PU1RfQ09NTU9OX0VMRU1TX0VMRU1dLmFyZ25hbWUsCisJ CQkJCQkJCQkJICAmYXJyYXlfaW5fZm4sCisJCQkJCQkJCQkJICBleHByc19lbGVtc1tvZmZzZXQg KyBNT1NUX0NPTU1PTl9FTEVNU19FTEVNXSwKKwkJCQkJCQkJCQkgIGVsZW10eXBpZCwgdHlwbW9k LCAmb2spOworCisJCQlpZiAoIW9rKQorCQkJCXJldHVybiAoRGF0dW0pIDA7CisKKwkJCXN0YW51 bWJlcnMgPSB0ZXh0X3RvX3N0YXZhbHVlcyhleHRleHByYXJnaW5mb1tNT1NUX0NPTU1PTl9FTEVN X0ZSRVFTX0VMRU1dLmFyZ25hbWUsCisJCQkJCQkJCQkJICAgJmFycmF5X2luX2ZuLAorCQkJCQkJ CQkJCSAgIGV4cHJzX2VsZW1zW29mZnNldCArIE1PU1RfQ09NTU9OX0VMRU1fRlJFUVNfRUxFTV0s CisJCQkJCQkJCQkJICAgRkxPQVQ0T0lELCAtMSwgJm9rKTsKKworCQkJaWYgKCFvaykKKwkJCQly ZXR1cm4gKERhdHVtKSAwOworCisJCQlzdGF0YXR0X3NldF9zbG90KHZhbHVlcywgbnVsbHMsIHJl cGxhY2VzLAorCQkJCQkJCSBTVEFUSVNUSUNfS0lORF9NQ0VMRU0sCisJCQkJCQkJIGVsZW1fZXFf b3ByLCBzdGFjb2xsLAorCQkJCQkJCSBzdGFudW1iZXJzLCBmYWxzZSwgc3RhdmFsdWVzLCBmYWxz ZSk7CisJCX0KKworCQlpZiAoIWV4cHJzX251bGxzW29mZnNldCArIEVMRU1fQ09VTlRfSElTVE9H UkFNX0VMRU1dKQorCQl7CisJCQlEYXR1bQkJc3RhbnVtYmVyczsKKworCQkJc3RhbnVtYmVycyA9 IHRleHRfdG9fc3RhdmFsdWVzKGV4dGV4cHJhcmdpbmZvW0VMRU1fQ09VTlRfSElTVE9HUkFNX0VM RU1dLmFyZ25hbWUsCisJCQkJCQkJCQkJICAgJmFycmF5X2luX2ZuLAorCQkJCQkJCQkJCSAgIGV4 cHJzX2VsZW1zW29mZnNldCArIEVMRU1fQ09VTlRfSElTVE9HUkFNX0VMRU1dLAorCQkJCQkJCQkJ CSAgIEZMT0FUNE9JRCwgLTEsICZvayk7CisKKwkJCWlmICghb2spCisJCQkJcmV0dXJuIChEYXR1 bSkgMDsKKworCQkJc3RhdGF0dF9zZXRfc2xvdCh2YWx1ZXMsIG51bGxzLCByZXBsYWNlcywgU1RB VElTVElDX0tJTkRfREVDSElTVCwKKwkJCQkJCQkgZWxlbV9lcV9vcHIsIHN0YWNvbGwsCisJCQkJ CQkJIHN0YW51bWJlcnMsIGZhbHNlLCAwLCB0cnVlKTsKKwkJfQorCisJCS8qCisJCSAqIEN1cnJl bnRseSB0aGVyZSBhcmUgbm8gZXh0ZW5kZWQgc3RhdHMgZXhwb3J0cyBvZiB0aGUgc3RhdGlzdGlj CisJCSAqIGtpbmRzIFNUQVRJU1RJQ19LSU5EX0JPVU5EU19ISVNUT0dSQU0gb3IKKwkJICogU1RB VElTVElDX0tJTkRfUkFOR0VfTEVOR1RIX0hJU1RPR1JBTSBzbyB0aGVzZSBjYW5ub3QgYmUgaW1w b3J0ZWQuCisJCSAqIFRoZXNlIG1heSBiZSBhZGRlZCBpbiB0aGUgZnV0dXJlLgorCQkgKi8KKwor CQlwZ3N0dXAgPSBoZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihwZ3NkKSwgdmFsdWVz LCBudWxscyk7CisJCXBnc3RkYXQgPSBoZWFwX2NvcHlfdHVwbGVfYXNfZGF0dW0ocGdzdHVwLCBS ZWxhdGlvbkdldERlc2NyKHBnc2QpKTsKKwkJYXN0YXRlID0gYWNjdW1BcnJheVJlc3VsdChhc3Rh dGUsIHBnc3RkYXQsIGZhbHNlLCBwZ3N0eXBvaWQsCisJCQkJCQkJCSAgQ3VycmVudE1lbW9yeUNv bnRleHQpOworCisJCW9mZnNldCArPSBOVU1fQVRUUklCVVRFX1NUQVRTX0VMRU1TOworCX0KKwor CXBmcmVlKGV4cHJzX2VsZW1zKTsKKwlwZnJlZShleHByc19udWxscyk7CisKKwlyZXR1cm4gbWFr ZUFycmF5UmVzdWx0KGFzdGF0ZSwgQ3VycmVudE1lbW9yeUNvbnRleHQpOworfQorCitzdGF0aWMg Ym9vbAordGV4dF90b19mbG9hdDQoRGF0dW0gaW5wdXQsIERhdHVtICpvdXRwdXQpCit7CisJRXJy b3JTYXZlQ29udGV4dCBlc2NvbnRleHQgPSB7VF9FcnJvclNhdmVDb250ZXh0fTsKKworCWNoYXIJ ICAgKnM7CisJYm9vbAkJb2s7CisKKwlzID0gVGV4dERhdHVtR2V0Q1N0cmluZyhpbnB1dCk7CisJ b2sgPSBEaXJlY3RJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoZmxvYXQ0aW4sIHMsIEludmFsaWRPaWQs IC0xLAorCQkJCQkJCQkJIChOb2RlICopICZlc2NvbnRleHQsIG91dHB1dCk7CisKKwlwZnJlZShz KTsKKwlyZXR1cm4gb2s7Cit9CisKKworc3RhdGljIGJvb2wKK3RleHRfdG9faW50NChEYXR1bSBp bnB1dCwgRGF0dW0gKm91dHB1dCkKK3sKKwlFcnJvclNhdmVDb250ZXh0IGVzY29udGV4dCA9IHtU X0Vycm9yU2F2ZUNvbnRleHR9OworCisJY2hhcgkgICAqczsKKwlib29sCQlvazsKKworCXMgPSBU ZXh0RGF0dW1HZXRDU3RyaW5nKGlucHV0KTsKKwlvayA9IERpcmVjdElucHV0RnVuY3Rpb25DYWxs U2FmZShpbnQ0aW4sIHMsIEludmFsaWRPaWQsIC0xLAorCQkJCQkJCQkJIChOb2RlICopICZlc2Nv bnRleHQsIG91dHB1dCk7CisKKwlwZnJlZShzKTsKKwlyZXR1cm4gb2s7Cit9CisKK3N0YXRpYyBi b29sCitkZWxldGVfcGdfc3RhdGlzdGljX2V4dF9kYXRhKE9pZCBzdHhvaWQsIGJvb2wgaW5oZXJp dGVkKQoreworCVJlbGF0aW9uCXNlZCA9IHRhYmxlX29wZW4oU3RhdGlzdGljRXh0RGF0YVJlbGF0 aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCUhlYXBUdXBsZQlvbGR0dXA7CisJYm9vbAkJcmVz dWx0ID0gZmFsc2U7CisKKwkvKiBJcyB0aGVyZSBhbHJlYWR5IGEgcGdfc3RhdGlzdGljIHR1cGxl IGZvciB0aGlzIGF0dHJpYnV0ZT8gKi8KKwlvbGR0dXAgPSBTZWFyY2hTeXNDYWNoZTIoU1RBVEVY VERBVEFTVFhPSUQsCisJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0oc3R4b2lkKSwKKwkJCQkJCQkg Qm9vbEdldERhdHVtKGluaGVyaXRlZCkpOworCisJaWYgKEhlYXBUdXBsZUlzVmFsaWQob2xkdHVw KSkKKwl7CisJCUNhdGFsb2dUdXBsZURlbGV0ZShzZWQsICZvbGR0dXAtPnRfc2VsZik7CisJCVJl bGVhc2VTeXNDYWNoZShvbGR0dXApOworCQlyZXN1bHQgPSB0cnVlOworCX0KKworCXRhYmxlX2Ns b3NlKHNlZCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlDb21tYW5kQ291bnRlckluY3JlbWVudCgp OworCisJcmV0dXJuIHJlc3VsdDsKK30KKworRGF0dW0KK3BnX3Jlc3RvcmVfZXh0ZW5kZWRfc3Rh dHMoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlMT0NBTF9GQ0lORk8ocG9zaXRpb25hbF9mY2luZm8s IE5VTV9FWFRFTkRFRF9TVEFUU19BUkdTKTsKKwlib29sCQlyZXN1bHQgPSB0cnVlOworCisJSW5p dEZ1bmN0aW9uQ2FsbEluZm9EYXRhKCpwb3NpdGlvbmFsX2ZjaW5mbywgTlVMTCwgTlVNX0VYVEVO REVEX1NUQVRTX0FSR1MsCisJCQkJCQkJIEludmFsaWRPaWQsIE5VTEwsIE5VTEwpOworCisJaWYg KCFzdGF0c19maWxsX2ZjaW5mb19mcm9tX2FyZ19wYWlycyhmY2luZm8sIHBvc2l0aW9uYWxfZmNp bmZvLCBleHRhcmdpbmZvKSkKKwkJcmVzdWx0ID0gZmFsc2U7CisKKwlpZiAoIWV4dGVuZGVkX3N0 YXRpc3RpY3NfdXBkYXRlKHBvc2l0aW9uYWxfZmNpbmZvKSkKKwkJcmVzdWx0ID0gZmFsc2U7CisK KwlQR19SRVRVUk5fQk9PTChyZXN1bHQpOworfQorCisvKgorICogRGVsZXRlIHN0YXRpc3RpY3Mg Zm9yIHRoZSBnaXZlbiBzdGF0aXN0aWNzIG9iamVjdC4KKyAqLworRGF0dW0KK3BnX2NsZWFyX2V4 dGVuZGVkX3N0YXRzKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJY2hhcgkgICAqbnNwbmFtZTsKKwlP aWQJCQluc3BvaWQ7CisJY2hhcgkgICAqc3R4bmFtZTsKKwlib29sCQlpbmhlcml0ZWQ7CisJUmVs YXRpb24JcGdfc3RleHQ7CisJSGVhcFR1cGxlCXR1cDsKKwlSZWxhdGlvbglyZWw7CisJT2lkCQkJ bG9ja2VkX3RhYmxlID0gSW52YWxpZE9pZDsKKworCUZvcm1fcGdfc3RhdGlzdGljX2V4dCBzdHhm b3JtOworCisJc3RhdHNfY2hlY2tfcmVxdWlyZWRfYXJnKGZjaW5mbywgZXh0YXJnaW5mbywgU1RB VFNDSEVNQV9BUkcpOworCW5zcG5hbWUgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKFBHX0dFVEFSR19E QVRVTShTVEFUU0NIRU1BX0FSRykpOworCXN0YXRzX2NoZWNrX3JlcXVpcmVkX2FyZyhmY2luZm8s IGV4dGFyZ2luZm8sIFNUQVROQU1FX0FSRyk7CisJc3R4bmFtZSA9IFRleHREYXR1bUdldENTdHJp bmcoUEdfR0VUQVJHX0RBVFVNKFNUQVROQU1FX0FSRykpOworCXN0YXRzX2NoZWNrX3JlcXVpcmVk X2FyZyhmY2luZm8sIGV4dGFyZ2luZm8sIElOSEVSSVRFRF9BUkcpOworCWluaGVyaXRlZCA9IFBH X0dFVEFSR19OQU1FKElOSEVSSVRFRF9BUkcpOworCisJaWYgKFJlY292ZXJ5SW5Qcm9ncmVzcygp KQorCXsKKwkJZXJlcG9ydChXQVJOSU5HLAorCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05P VF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAorCQkJCSBlcnJtc2coInJlY292ZXJ5IGlzIGluIHBy b2dyZXNzIiksCisJCQkJIGVycmhpbnQoIlN0YXRpc3RpY3MgY2Fubm90IGJlIG1vZGlmaWVkIGR1 cmluZyByZWNvdmVyeS4iKSkpOworCQlQR19SRVRVUk5fVk9JRCgpOworCX0KKworCW5zcG9pZCA9 IGdldF9uYW1lc3BhY2Vfb2lkKG5zcG5hbWUsIHRydWUpOworCWlmIChuc3BvaWQgPT0gSW52YWxp ZE9pZCkKKwl7CisJCWVyZXBvcnQoV0FSTklORywKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVG SU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coIk5hbWVzcGFjZSBcIiVzXCIgbm90IGZvdW5kLiIs IHN0eG5hbWUpKSk7CisJCVBHX1JFVFVSTl9WT0lEKCk7CisJfQorCisJcGdfc3RleHQgPSB0YWJs ZV9vcGVuKFN0YXRpc3RpY0V4dFJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCXR1cCA9 IGdldF9wZ19zdGF0aXN0aWNfZXh0KHBnX3N0ZXh0LCBuc3BvaWQsIHN0eG5hbWUpOworCisJaWYg KCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJeworCQl0YWJsZV9jbG9zZShwZ19zdGV4dCwgUm93 RXhjbHVzaXZlTG9jayk7CisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9V TkRFRklORURfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJFeHRlbmRlZCBTdGF0aXN0aWNzIE9iamVj dCBcIiVzXCIuXCIlc1wiIG5vdCBmb3VuZC4iLAorCQkJCQkJbnNwbmFtZSwgc3R4bmFtZSkpKTsK KwkJUEdfUkVUVVJOX1ZPSUQoKTsKKwl9CisKKwlzdHhmb3JtID0gKEZvcm1fcGdfc3RhdGlzdGlj X2V4dCkgR0VUU1RSVUNUKHR1cCk7CisKKwkvKiBSb3VuZGFib3V0IHdheSBvZiBnZXR0aW5nIGEg UmFuZ2VWYXIgb24gdGhlIHVuZGVybHlpbmcgdGFibGUgKi8KKwlyZWwgPSByZWxhdGlvbl9vcGVu KHN0eGZvcm0tPnN0eHJlbGlkLCBBY2Nlc3NTaGFyZUxvY2spOworCisJLyogbm8gbmVlZCB0byBm ZXRjaCByZWxvaWQsIHdlIGFscmVhZHkgaGF2ZSBpdCAqLworCVJhbmdlVmFyR2V0UmVsaWRFeHRl bmRlZChtYWtlUmFuZ2VWYXIobnNwbmFtZSwKKwkJCQkJCQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZShyZWwpLCAtMSksCisJCQkJICAgU2hhcmVVcGRhdGVFeGNsdXNpdmVMb2NrLCAwLAor CQkJCSAgIFJhbmdlVmFyQ2FsbGJhY2tGb3JTdGF0cywgJmxvY2tlZF90YWJsZSk7CisKKwlyZWxh dGlvbl9jbG9zZShyZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwlkZWxldGVfcGdfc3RhdGlzdGlj X2V4dF9kYXRhKHN0eGZvcm0tPm9pZCwgaW5oZXJpdGVkKTsKKwloZWFwX2ZyZWV0dXBsZSh0dXAp OworCXRhYmxlX2Nsb3NlKHBnX3N0ZXh0LCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCVBHX1JFVFVS Tl9WT0lEKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdGF0aXN0aWNzL21jdi5jIGIv c3JjL2JhY2tlbmQvc3RhdGlzdGljcy9tY3YuYwppbmRleCBmNTlmYjgyMTU0My4uYTkxNzA3OWNl YjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0YXRpc3RpY3MvbWN2LmMKKysrIGIvc3JjL2Jh Y2tlbmQvc3RhdGlzdGljcy9tY3YuYwpAQCAtMjE3MywzICsyMTczLDE0NyBAQCBtY3ZfY2xhdXNl X3NlbGVjdGl2aXR5X29yKFBsYW5uZXJJbmZvICpyb290LCBTdGF0aXN0aWNFeHRJbmZvICpzdGF0 LAogCiAJcmV0dXJuIHM7CiB9CisKKy8qCisgICogVGhlIE1DViBpcyBhbiBhcnJheSBvZiByZWNv cmRzLCBidXQgdGhpcyBpcyBleHBlY3RlZCBhcyA0IHNlcGFyYXRlIGFycmF5cy4KKyAgKiBJdCBp cyBub3QgcG9zc2libGUgdG8gaGF2ZSBhIGdlbmVyaWMgaW5wdXQgZnVuY3Rpb24gZm9yIHBnX21j dl9saXN0CisgICogYmVjYXVzZSB0aGUgbW9zdF9jb21tb25fdmFsdWVzIGlzIGEgY29tcG9zaXRl IHR5cGUgd2l0aCBlbGVtZW50IHR5cGVzCisgICogZGVmaW5lZCBieSB0aGUgc3BlY2lmaWMgc3Rh dGlzdGljcyBvYmplY3QuCisgICovCitEYXR1bQoraW1wb3J0X21jdmxpc3QoSGVhcFR1cGxlIHR1 cCwgaW50IGVsZXZlbCwgaW50IG51bWF0dHJzLCBPaWQgKmF0dHR5cGlkcywKKwkJCSAgIGludDMy ICphdHR0eXBtb2RzLCBPaWQgKmF0dHR5cGNvbGxzLCBpbnQgbml0ZW1zLAorCQkJICAgRGF0dW0g Km1jdl9lbGVtcywgYm9vbCAqbWN2X251bGxzLAorCQkJICAgYm9vbCAqbWN2X2VsZW1fbnVsbHMs IGZsb2F0OCAqZnJlcXMsIGZsb2F0OCAqYmFzZV9mcmVxcykKK3sKKwlNQ1ZMaXN0ICAgICptY3Zs aXN0OworCWJ5dGVhCSAgICpieXRlczsKKworCUhlYXBUdXBsZSAgKnZhdHVwbGVzOworCVZhY0F0 dHJTdGF0cyAqKnZhc3RhdHM7CisKKwkvKgorCSAqIEFsbG9jYXRlIHRoZSBNQ1YgbGlzdCBzdHJ1 Y3R1cmUsIHNldCB0aGUgZ2xvYmFsIHBhcmFtZXRlcnMuCisJICovCisJbWN2bGlzdCA9IChNQ1ZM aXN0ICopIHBhbGxvYzAob2Zmc2V0b2YoTUNWTGlzdCwgaXRlbXMpICsKKwkJCQkJCQkJICAoc2l6 ZW9mKE1DVkl0ZW0pICogbml0ZW1zKSk7CisKKwltY3ZsaXN0LT5tYWdpYyA9IFNUQVRTX01DVl9N QUdJQzsKKwltY3ZsaXN0LT50eXBlID0gU1RBVFNfTUNWX1RZUEVfQkFTSUM7CisJbWN2bGlzdC0+ bmRpbWVuc2lvbnMgPSBudW1hdHRyczsKKwltY3ZsaXN0LT5uaXRlbXMgPSBuaXRlbXM7CisKKwkv KiBTZXQgdGhlIHZhbHVlcyBmb3IgdGhlIDEtRCBhcnJheXMgYW5kIGFsbG9jYXRlIHNwYWNlIGZv ciB0aGUgMi1EIGFycmF5cyAqLworCWZvciAoaW50IGkgPSAwOyBpIDwgbml0ZW1zOyBpKyspCisJ eworCQlNQ1ZJdGVtICAgICppdGVtID0gJm1jdmxpc3QtPml0ZW1zW2ldOworCisJCWl0ZW0tPmZy ZXF1ZW5jeSA9IGZyZXFzW2ldOworCQlpdGVtLT5iYXNlX2ZyZXF1ZW5jeSA9IGJhc2VfZnJlcXNb aV07CisJCWl0ZW0tPnZhbHVlcyA9IChEYXR1bSAqKSBwYWxsb2MwKHNpemVvZihEYXR1bSkgKiBu dW1hdHRycyk7CisJCWl0ZW0tPmlzbnVsbCA9IChib29sICopIHBhbGxvYzAoc2l6ZW9mKGJvb2wp ICogbnVtYXR0cnMpOworCX0KKworCS8qIFdhbGsgdGhyb3VnaCBlYWNoIGRpbWVuc2lvbiAqLwor CWZvciAoaW50IGogPSAwOyBqIDwgbnVtYXR0cnM7IGorKykKKwl7CisJCUZtZ3JJbmZvCWZpbmZv OworCQlPaWQJCQlpb3BhcmFtOworCQlPaWQJCQlpbmZ1bmM7CisJCWludAkJCWluZGV4ID0gajsK KworCQlnZXRUeXBlSW5wdXRJbmZvKGF0dHR5cGlkc1tqXSwgJmluZnVuYywgJmlvcGFyYW0pOwor CQlmbWdyX2luZm8oaW5mdW5jLCAmZmluZm8pOworCisJCS8qIHN0b3JlIGluZm8gYWJvdXQgZGF0 YSB0eXBlIE9JRHMgKi8KKwkJbWN2bGlzdC0+dHlwZXNbal0gPSBhdHR0eXBpZHNbal07CisKKwkJ Zm9yIChpbnQgaSA9IDA7IGkgPCBuaXRlbXM7IGkrKykKKwkJeworCQkJTUNWSXRlbSAgICAqaXRl bSA9ICZtY3ZsaXN0LT5pdGVtc1tpXTsKKworCQkJLyogVGhlc2Ugc2hvdWxkIGJlIGluIGFncmVl bWVudCwgYnV0IGp1c3QgdG8gYmUgc2FmZSBjaGVjayBib3RoICovCisJCQlpZiAobWN2X2VsZW1f bnVsbHNbaW5kZXhdIHx8IG1jdl9udWxsc1tpbmRleF0pCisJCQl7CisJCQkJaXRlbS0+dmFsdWVz W2pdID0gKERhdHVtKSAwOworCQkJCWl0ZW0tPmlzbnVsbFtqXSA9IHRydWU7CisJCQl9CisJCQll bHNlCisJCQl7CisJCQkJY2hhcgkgICAqcyA9IFRleHREYXR1bUdldENTdHJpbmcobWN2X2VsZW1z W2luZGV4XSk7CisJCQkJRXJyb3JTYXZlQ29udGV4dCBlc2NvbnRleHQgPSB7VF9FcnJvclNhdmVD b250ZXh0fTsKKworCQkJCWlmICghSW5wdXRGdW5jdGlvbkNhbGxTYWZlKCZmaW5mbywgcywgaW9w YXJhbSwgYXR0dHlwbW9kc1tqXSwKKwkJCQkJCQkJCQkgICAoTm9kZSAqKSAmZXNjb250ZXh0LCAm aXRlbS0+dmFsdWVzW2pdKSkKKwkJCQl7CisJCQkJCWVyZXBvcnQoZWxldmVsLAorCQkJCQkJCShl cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkJCSBlcnJtc2co Ik1DViBlbGVtZW1lbnQgXCIlc1wiIGRvZXMgbm90IG1hdGNoIGV4cGVjdGVkIGlucHV0IHR5cGUu IiwgcykpKTsKKwkJCQkJcmV0dXJuIChEYXR1bSkgMDsKKwkJCQl9CisKKwkJCQlwZnJlZShzKTsK KwkJCX0KKworCQkJaW5kZXggKz0gbnVtYXR0cnM7CisJCX0KKwl9CisKKwkvKgorCSAqIFRoZSBm dW5jdGlvbiBzdGF0ZXh0X21jdl9zZXJpYWxpemUoKSByZXF1aXJlcyBhbiBhcnJheSBvZiBwb2lu dGVycyB0bworCSAqIFZhY0F0dHJTdGF0cyByZWNvcmRzLCBidXQgb25seSBhIGZldyBmaWVsZHMg d2l0aGluIHRob3NlIHJlY29yZHMgaGF2ZQorCSAqIHRvIGJlIGZpbGxlZCBvdXQuCisJICovCisJ dmFzdGF0cyA9IChWYWNBdHRyU3RhdHMgKiopIHBhbGxvYzAobnVtYXR0cnMgKiBzaXplb2YoVmFj QXR0clN0YXRzKSk7CisJdmF0dXBsZXMgPSAoSGVhcFR1cGxlICopIHBhbGxvYzAobnVtYXR0cnMg KiBzaXplb2YoSGVhcFR1cGxlKSk7CisKKwlmb3IgKGludCBpID0gMDsgaSA8IG51bWF0dHJzOyBp KyspCisJeworCQlPaWQJCQl0eXBpZCA9IGF0dHR5cGlkc1tpXTsKKwkJSGVhcFR1cGxlCXR5cHR1 cGxlOworCisJCXR5cHR1cGxlID0gU2VhcmNoU3lzQ2FjaGVDb3B5MShUWVBFT0lELCBPYmplY3RJ ZEdldERhdHVtKHR5cGlkKSk7CisKKwkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR5cHR1cGxlKSkK KwkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB0eXBlICV1IiwgdHlwaWQp OworCisJCXZhdHVwbGVzW2ldID0gdHlwdHVwbGU7CisKKwkJdmFzdGF0c1tpXSA9IHBhbGxvYzAo c2l6ZW9mKFZhY0F0dHJTdGF0cykpOworCisJCXZhc3RhdHNbaV0tPmF0dHJ0eXBlID0gKEZvcm1f cGdfdHlwZSkgR0VUU1RSVUNUKHR5cHR1cGxlKTsKKwkJdmFzdGF0c1tpXS0+YXR0cnR5cGlkID0g dHlwaWQ7CisJCXZhc3RhdHNbaV0tPmF0dHJjb2xsaWQgPSBhdHR0eXBjb2xsc1tpXTsKKwl9CisK KwlieXRlcyA9IHN0YXRleHRfbWN2X3NlcmlhbGl6ZShtY3ZsaXN0LCB2YXN0YXRzKTsKKworCWZv ciAoaW50IGkgPSAwOyBpIDwgbnVtYXR0cnM7IGkrKykKKwl7CisJCXBmcmVlKHZhdHVwbGVzW2ld KTsKKwkJcGZyZWUodmFzdGF0c1tpXSk7CisJfQorCXBmcmVlKCh2b2lkICopIHZhdHVwbGVzKTsK KwlwZnJlZSgodm9pZCAqKSB2YXN0YXRzKTsKKworCWlmIChieXRlcyA9PSBOVUxMKQorCXsKKwkJ ZXJlcG9ydChlbGV2ZWwsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9W QUxVRSksCisJCQkJIGVycm1zZygiVW5hYmxlIHRvIGltcG9ydCBtY3YgbGlzdCIpKSk7CisJCXJl dHVybiAoRGF0dW0pIDA7CisJfQorCisJZm9yIChpbnQgaSA9IDA7IGkgPCBuaXRlbXM7IGkrKykK Kwl7CisJCU1DVkl0ZW0gICAgKml0ZW0gPSAmbWN2bGlzdC0+aXRlbXNbaV07CisKKwkJcGZyZWUo aXRlbS0+dmFsdWVzKTsKKwkJcGZyZWUoaXRlbS0+aXNudWxsKTsKKwl9CisJcGZyZWUobWN2bGlz dCk7CisJcGZyZWUobWN2X2VsZW1zKTsKKwlwZnJlZShtY3ZfbnVsbHMpOworCisJcmV0dXJuIFBv aW50ZXJHZXREYXR1bShieXRlcyk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdGF0aXN0 aWNzL212ZGlzdGluY3QuYyBiL3NyYy9iYWNrZW5kL3N0YXRpc3RpY3MvbXZkaXN0aW5jdC5jCmlu ZGV4IGZlNDUyZjUzYWU0Li44MzliY2M5YWY5MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3Rh dGlzdGljcy9tdmRpc3RpbmN0LmMKKysrIGIvc3JjL2JhY2tlbmQvc3RhdGlzdGljcy9tdmRpc3Rp bmN0LmMKQEAgLTU5OSw2ICs1OTksNjggQEAgZ2VuZXJhdGVfY29tYmluYXRpb25zX3JlY3Vyc2Uo Q29tYmluYXRpb25HZW5lcmF0b3IgKnN0YXRlLAogCX0KIH0KIAorLyoKKyAqIEZyZWUgYWxsb2Nh dGlvbnMgb2YgYW4gTVZORGlzdGluY3QKKyAqLwordm9pZAorZnJlZV9wZ19uZGlzdGluY3QoTVZO RGlzdGluY3QgKm5kaXN0aW5jdCkKK3sKKwlmb3IgKGludCBpID0gMDsgaSA8IG5kaXN0aW5jdC0+ bml0ZW1zOyBpKyspCisJCXBmcmVlKG5kaXN0aW5jdC0+aXRlbXNbaV0uYXR0cmlidXRlcyk7CisK KwlwZnJlZShuZGlzdGluY3QpOworfQorCisvKgorICogVmFsaWRhdGUgYW4gTVZORGlzdGluY3Qg YWdhaW5zdCB0aGUgZXh0ZW5kZWQgc3RhdGlzdGljcyBvYmplY3QgZGVmaW5pdGlvbi4KKyAqCisg KiBFdmVyeSBNVk5EaXN0aW5jdEl0ZW0gbXVzdCBiZSBjaGVja2VkIHRvIGVuc3VyZSB0aGF0IHRo ZSBhdHRudW1zIGluIHRoZQorICogYXR0cmlidXRlcyBsaXN0IGNvcnJlc3BvbmQgdG8gYXR0bnVt cy9leHByZXNzaW9ucyBkZWZpbmVkIGJ5IHRoZQorICogZXh0ZW5kZWQgc3RhdGlzdGljcyBvYmpl Y3QuCisgKgorICogUG9zaXRpdmUgYXR0bnVtcyBhcmUgYXR0cmlidXRlcyB3aGljaCBtdXN0IGJl IGZvdW5kIGluIHRoZSBzdHhrZXlzLAorICogd2hpbGUgbmVnYXRpdmUgYXR0bnVtcyBjb3JyZXNw b25kIHRvIGFuIGV4cHIgbnVtYmVyLCBzbyB0aGUgYXR0bnVtCisgKiBjYW4ndCBiZSBiZWxvdyAo MCAtIG51bWV4cHJzKS4KKyAqLworYm9vbAorcGdfbmRpc3RpbmN0X3ZhbGlkYXRlX2l0ZW1zKE1W TkRpc3RpbmN0ICpuZGlzdGluY3QsIGludDJ2ZWN0b3IgKnN0eGtleXMsIGludCBudW1leHBycywg aW50IGVsZXZlbCkKK3sKKwlpbnQJCWF0dG51bV9leHByX2xvd2JvdW5kID0gMCAtIG51bWV4cHJz OworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBuZGlzdGluY3QtPm5pdGVtczsgaSsrKQorCXsKKwkJ TVZORGlzdGluY3RJdGVtIGl0ZW0gPSBuZGlzdGluY3QtPml0ZW1zW2ldOworCisJCWZvciAoaW50 IGogPSAwOyBqIDwgaXRlbS5uYXR0cmlidXRlczsgaisrKQorCQl7CisJCQlBdHRyTnVtYmVyCWF0 dG51bSA9IGl0ZW0uYXR0cmlidXRlc1tqXTsKKwkJCWJvb2wJCW9rID0gZmFsc2U7CisKKwkJCWlm IChhdHRudW0gPiAwKQorCQkJeworCQkJCWZvciAoaW50IGsgPSAwOyBrIDwgc3R4a2V5cy0+ZGlt MTsgaysrKQorCQkJCQlpZiAoYXR0bnVtID09IHN0eGtleXMtPnZhbHVlc1trXSkKKwkJCQkJewor CQkJCQkJb2sgPSB0cnVlOworCQkJCQkJYnJlYWs7CisJCQkJCX0KKwkJCX0KKwkJCWVsc2UgaWYg KChhdHRudW0gPCAwKSAmJiAoYXR0bnVtID49IGF0dG51bV9leHByX2xvd2JvdW5kKSkKKwkJCQlv ayA9IHRydWU7CisKKwkJCWlmICghb2spCisJCQl7CisJCQkJZXJlcG9ydChlbGV2ZWwsCisJCQkJ CQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJCQll cnJtc2coInBnX25kaXN0aW5jdDogaW52YWxpZCBhdHRudW0gZm9yIHRoaXMgc3RhdGlzdGljcyBv YmplY3Q6ICVkIiwgYXR0bnVtKSkpOworCQkJCXJldHVybiBmYWxzZTsKKwkJCX0KKwkJfQorCX0K KwlyZXR1cm4gdHJ1ZTsKK30KKworCiAvKgogICogZ2VuZXJhdGVfY29tYmluYXRpb25zCiAgKgkJ Z2VuZXJhdGUgYWxsIGstY29tYmluYXRpb25zIG9mIE4gZWxlbWVudHMKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3RhdHNfaW1wb3J0Lm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc3RhdHNfaW1wb3J0Lm91dAppbmRleCA5OGNlN2RjMjg0MS4uOGFmNDc4MjFk MjIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3RhdHNfaW1wb3J0Lm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N0YXRzX2ltcG9ydC5vdXQKQEAgLTEw ODQsMTEgKzEwODQsMTUgQEAgU0VMRUNUIDMsICd0cmUnLCAoMywgMy4zLCAnVFJFJywgJzIwMDMt MDMtMDMnLCBOVUxMKTo6c3RhdHNfaW1wb3J0LmNvbXBsZXhfdHlwZSwKIFVOSU9OIEFMTAogU0VM RUNUIDQsICdmb3VyJywgTlVMTCwgaW50NHJhbmdlKDAsMTAwKSwgTlVMTDsKIENSRUFURSBJTkRF WCBpc19vZGQgT04gc3RhdHNfaW1wb3J0LnRlc3QoKChjb21wKS5hICUgMiA9IDEpKTsKK0NSRUFU RSBTVEFUSVNUSUNTIHN0YXRzX2ltcG9ydC50ZXN0X3N0YXQgT04gbmFtZSwgY29tcCwgbG93ZXIo YXJhbmdlKSwgYXJyYXlfbGVuZ3RoKHRhZ3MsMSkKK0ZST00gc3RhdHNfaW1wb3J0LnRlc3Q7CiAt LSBHZW5lcmF0ZSBzdGF0aXN0aWNzIG9uIHRhYmxlIHdpdGggZGF0YQogQU5BTFlaRSBzdGF0c19p bXBvcnQudGVzdDsKIENSRUFURSBUQUJMRSBzdGF0c19pbXBvcnQudGVzdF9jbG9uZSAoIExJS0Ug c3RhdHNfaW1wb3J0LnRlc3QgKQogICAgIFdJVEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IGZhbHNl KTsKIENSRUFURSBJTkRFWCBpc19vZGRfY2xvbmUgT04gc3RhdHNfaW1wb3J0LnRlc3RfY2xvbmUo KChjb21wKS5hICUgMiA9IDEpKTsKK0NSRUFURSBTVEFUSVNUSUNTIHN0YXRzX2ltcG9ydC50ZXN0 X3N0YXRfY2xvbmUgT04gbmFtZSwgY29tcCwgbG93ZXIoYXJhbmdlKSwgYXJyYXlfbGVuZ3RoKHRh Z3MsMSkKK0ZST00gc3RhdHNfaW1wb3J0LnRlc3RfY2xvbmU7CiAtLQogLS0gQ29weSBzdGF0cyBm cm9tIHRlc3QgdG8gdGVzdF9jbG9uZSwgYW5kIGlzX29kZCB0byBpc19vZGRfY2xvbmUKIC0tCkBA IC0xMzQyLDYgKzEzNDYsMTEyNyBAQCBBTkQgYXR0bmFtZSA9ICdpJzsKICgxIHJvdykKIAogRFJP UCBUQUJMRSBzdGF0c190ZW1wOworLS0gc2V0IG5fZGlzdGluY3QgdXNpbmcgYXQgYXR0bnVtICgx KSB0aGF0IGlzIG5vdCBpbiB0aGUgc3RhdGlzdGljcyBvYmplY3QKK1NFTEVDVAorICAgIHBnX2Nh dGFsb2cucGdfcmVzdG9yZV9leHRlbmRlZF9zdGF0cygKKyAgICAgICAgJ3N0YXRpc3RpY3Nfc2No ZW1hbmFtZScsICdzdGF0c19pbXBvcnQnLAorICAgICAgICAnc3RhdGlzdGljc19uYW1lJywgJ3Rl c3Rfc3RhdF9jbG9uZScsCisgICAgICAgICdpbmhlcml0ZWQnLCBmYWxzZSwKKyAgICAgICAgJ25f ZGlzdGluY3QnLCAnW3siYXR0cmlidXRlcyIgOiBbMywtMV0sICJuZGlzdGluY3QiIDogNH0sCisg ICAgICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzMsLTJdLCAibmRpc3RpbmN0 IiA6IDR9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFstMSwtMl0s ICJuZGlzdGluY3QiIDogM30sCisgICAgICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0ZXMi IDogWzIsMywtMV0sICJuZGlzdGluY3QiIDogNH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7 ImF0dHJpYnV0ZXMiIDogWzIsMywtMl0sICJuZGlzdGluY3QiIDogNH0sCisgICAgICAgICAgICAg ICAgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsLTEsLTJdLCAibmRpc3RpbmN0IiA6IDR9LAor ICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFszLC0xLC0yXSwgIm5kaXN0 aW5jdCIgOiA0fSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMSwy LDMsLTEsLTJdLCAibmRpc3RpbmN0IiA6IDR9XSc6OnBnX25kaXN0aW5jdAorICAgICAgKTsKK1dB Uk5JTkc6ICBwZ19uZGlzdGluY3Q6IGludmFsaWQgYXR0bnVtIGZvciB0aGlzIHN0YXRpc3RpY3Mg b2JqZWN0OiAxCisgcGdfcmVzdG9yZV9leHRlbmRlZF9zdGF0cyAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworLS0gc2V0IG5fZGlzdGluY3QgdXNpbmcgYXQgYXR0 bnVtIHRoYXQgaXMgMAorU0VMRUNUCisgICAgcGdfY2F0YWxvZy5wZ19yZXN0b3JlX2V4dGVuZGVk X3N0YXRzKAorICAgICAgICAnc3RhdGlzdGljc19zY2hlbWFuYW1lJywgJ3N0YXRzX2ltcG9ydCcs CisgICAgICAgICdzdGF0aXN0aWNzX25hbWUnLCAndGVzdF9zdGF0X2Nsb25lJywKKyAgICAgICAg J2luaGVyaXRlZCcsIGZhbHNlLAorICAgICAgICAnbl9kaXN0aW5jdCcsICdbeyJhdHRyaWJ1dGVz IiA6IFszLC0xXSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsi YXR0cmlidXRlcyIgOiBbMywtMl0sICJuZGlzdGluY3QiIDogNH0sCisgICAgICAgICAgICAgICAg ICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWy0xLC0yXSwgIm5kaXN0aW5jdCIgOiAzfSwKKyAgICAg ICAgICAgICAgICAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzLC0xXSwgIm5kaXN0aW5jdCIg OiA0fSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzLC0yXSwg Im5kaXN0aW5jdCIgOiA0fSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsiYXR0cmlidXRlcyIg OiBbMiwtMSwtMl0sICJuZGlzdGluY3QiIDogNH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7 ImF0dHJpYnV0ZXMiIDogWzAsMiwzLC0xLC0yXSwgIm5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlz dGluY3QKKyAgICAgICk7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRy aWJ1dGVzIiA6IFszLC0xXSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAgICAgICAgICAgICAgICAgICAg ICAgIHsiYXR0cmlidXRlcyIgOiBbMywtMl0sICJuZGlzdGluY3QiIDogNH0sCisgICAgICAgICAg ICAgICAgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWy0xLC0yXSwgIm5kaXN0aW5jdCIgOiAzfSwK KyAgICAgICAgICAgICAgICAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzLC0xXSwgIm5kaXN0 aW5jdCIgOiA0fSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwz LC0yXSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsiYXR0cmli dXRlcyIgOiBbMiwtMSwtMl0sICJuZGlzdGluY3QiIDogNH0sCisgICAgICAgICAgICAgICAgICAg ICAgICB7ImF0dHJpYnV0ZXMiIDogWzAsMiwzLC0xLC0yXSwgIm5kaXN0aW5jdCIgOiA0fV0iCitM SU5FIDY6ICAgICAgICAgJ25fZGlzdGluY3QnLCAnW3siYXR0cmlidXRlcyIgOiBbMywtMV0sICJu ZGlzdGluY3QiIC4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorREVUQUlMOiAg SW52YWxpZCAiYXR0cmlidXRlcyIgZWxlbWVudDogMC4KKy0tIHNldCBuX2Rpc3RpbmN0IHVzaW5n IGF0IGF0dG51bSB0aGF0IGlzIG91dHNpZGUgdGhlIGV4cHJlc3Npb24gYm91bmRzKGJlbG93IC0y KQorU0VMRUNUCisgICAgcGdfY2F0YWxvZy5wZ19yZXN0b3JlX2V4dGVuZGVkX3N0YXRzKAorICAg ICAgICAnc3RhdGlzdGljc19zY2hlbWFuYW1lJywgJ3N0YXRzX2ltcG9ydCcsCisgICAgICAgICdz dGF0aXN0aWNzX25hbWUnLCAndGVzdF9zdGF0X2Nsb25lJywKKyAgICAgICAgJ2luaGVyaXRlZCcs IGZhbHNlLAorICAgICAgICAnbl9kaXN0aW5jdCcsICdbeyJhdHRyaWJ1dGVzIiA6IFszLC0xXSwg Im5kaXN0aW5jdCIgOiA0fSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsiYXR0cmlidXRlcyIg OiBbMywtMl0sICJuZGlzdGluY3QiIDogNH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7ImF0 dHJpYnV0ZXMiIDogWy0xLC0yXSwgIm5kaXN0aW5jdCIgOiAzfSwKKyAgICAgICAgICAgICAgICAg ICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMywtMSwtNF0sICJuZGlzdGluY3QiIDogNH0sCisgICAg ICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzMsLTIsLTRdLCAibmRpc3RpbmN0 IiA6IDR9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFstMSwtMiwt NF0sICJuZGlzdGluY3QiIDogNH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0 ZXMiIDogWzMsLTEsLTIsLTRdLCAibmRpc3RpbmN0IiA6IDR9XSc6OnBnX25kaXN0aW5jdAorICAg ICAgKTsKK1dBUk5JTkc6ICBwZ19uZGlzdGluY3Q6IGludmFsaWQgYXR0bnVtIGZvciB0aGlzIHN0 YXRpc3RpY3Mgb2JqZWN0OiAtNAorIHBnX3Jlc3RvcmVfZXh0ZW5kZWRfc3RhdHMgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKKy0tIG9rCitTRUxFQ1QKKyAgICBw Z19jYXRhbG9nLnBnX3Jlc3RvcmVfZXh0ZW5kZWRfc3RhdHMoCisgICAgICAgICdzdGF0aXN0aWNz X3NjaGVtYW5hbWUnLCAnc3RhdHNfaW1wb3J0JywKKyAgICAgICAgJ3N0YXRpc3RpY3NfbmFtZScs ICd0ZXN0X3N0YXRfY2xvbmUnLAorICAgICAgICAnaW5oZXJpdGVkJywgZmFsc2UsCisgICAgICAg ICduX2Rpc3RpbmN0JywgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogNH0s CisgICAgICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsLTFdLCAibmRpc3Rp bmN0IiA6IDR9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFszLC0x XSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsiYXR0cmlidXRl cyIgOiBbMywtMl0sICJuZGlzdGluY3QiIDogNH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7 ImF0dHJpYnV0ZXMiIDogWy0xLC0yXSwgIm5kaXN0aW5jdCIgOiAzfSwKKyAgICAgICAgICAgICAg ICAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzLC0xXSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAg ICAgICAgICAgICAgICAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzLC0yXSwgIm5kaXN0aW5j dCIgOiA0fSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwtMSwt Ml0sICJuZGlzdGluY3QiIDogNH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0 ZXMiIDogWzIsMywtMSwtMl0sICJuZGlzdGluY3QiIDogNH1dJzo6cGdfbmRpc3RpbmN0CisgICAg ICApOworIHBnX3Jlc3RvcmVfZXh0ZW5kZWRfc3RhdHMgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVAorICAgIGpzb25iX3ByZXR0eShlLm5fZGlzdGlu Y3Q6OnRleHQ6Ompzb25iKSBBUyBuX2Rpc3RpbmN0LAorICAgIGUuZGVwZW5kZW5jaWVzLAorICAg IGUubW9zdF9jb21tb25fdmFscywgZS5tb3N0X2NvbW1vbl92YWxfbnVsbHMsCisgICAgZS5tb3N0 X2NvbW1vbl9mcmVxcywgZS5tb3N0X2NvbW1vbl9iYXNlX2ZyZXFzCitGUk9NIHBnX3N0YXRzX2V4 dCBBUyBlCitXSEVSRSBlLnN0YXRpc3RpY3Nfc2NoZW1hbmFtZSA9ICdzdGF0c19pbXBvcnQnCitB TkQgZS5zdGF0aXN0aWNzX25hbWUgPSAndGVzdF9zdGF0X2Nsb25lJworQU5EIGUuaW5oZXJpdGVk ID0gZmFsc2UKK1xneAorLVsgUkVDT1JEIDEgXS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCituX2Rpc3RpbmN0ICAgICAgICAgICAgIHwgWyAgICAgICAgICAgICAgICAgICAgICAr CisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHsgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAibmRpc3RpbmN0IjogNCwrCisgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsrCisgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgMiwgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgMyAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICBdICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0sICAg ICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHsgICAgICAgICAg ICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAibmRpc3RpbmN0Ijog NCwrCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsrCisg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgMiwgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTEgICAgICAgICArCisgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICBdICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgIH0sICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgIHsgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAibmRpc3RpbmN0IjogNCwrCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiYXR0 cmlidXRlcyI6IFsrCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgMywgICAg ICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTEgICAgICAgICAr CisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICBdICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgIH0sICAgICAgICAgICAgICAgICArCisgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgIHsgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAibmRpc3RpbmN0IjogNCwrCisgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsrCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgMywgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgLTIgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICBdICAgICAg ICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0sICAgICAgICAgICAgICAg ICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHsgICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAibmRpc3RpbmN0IjogMywrCisgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsrCisgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgLTEsICAgICAgICArCisgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgLTIgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICBdICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0s ICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHsgICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAibmRpc3RpbmN0 IjogNCwrCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsr CisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgMiwgICAgICAgICArCisgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgMywgICAgICAgICArCisgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTEgICAgICAgICArCisgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICBdICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAg IHwgICAgIH0sICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAg IHsgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAi bmRpc3RpbmN0IjogNCwrCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiYXR0cmli dXRlcyI6IFsrCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgMiwgICAgICAg ICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgMywgICAgICAgICArCisg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTIgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICBdICAgICAgICAgICAgICArCisgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgIH0sICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgIHsgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAibmRpc3RpbmN0IjogNCwrCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAiYXR0cmlidXRlcyI6IFsrCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg MiwgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTEsICAg ICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTIgICAgICAgICAr CisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICBdICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgIH0sICAgICAgICAgICAgICAgICArCisgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgIHsgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAibmRpc3RpbmN0IjogNCwrCisgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsrCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgMiwgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgMywgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTEs ICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTIgICAgICAg ICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICBdICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0gICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgICAgIHwgXQorZGVwZW5kZW5jaWVzICAgICAgICAgICB8IAorbW9zdF9jb21t b25fdmFscyAgICAgICB8IAorbW9zdF9jb21tb25fdmFsX251bGxzICB8IAorbW9zdF9jb21tb25f ZnJlcXMgICAgICB8IAorbW9zdF9jb21tb25fYmFzZV9mcmVxcyB8IAorCistLSBzZXQgZGVwZW5k ZW5jaWVzIHVzaW5nIGF0IGF0dG51bSAoMSkgdGhhdCBpcyBub3QgaW4gdGhlIHN0YXRpc3RpY3Mg b2JqZWN0CitTRUxFQ1QKKyAgICBwZ19jYXRhbG9nLnBnX3Jlc3RvcmVfZXh0ZW5kZWRfc3RhdHMo CisgICAgICAgICdzdGF0aXN0aWNzX3NjaGVtYW5hbWUnLCAnc3RhdHNfaW1wb3J0JywKKyAgICAg ICAgJ3N0YXRpc3RpY3NfbmFtZScsICd0ZXN0X3N0YXRfY2xvbmUnLAorICAgICAgICAnaW5oZXJp dGVkJywgZmFsc2UsCisgICAgICAgICdkZXBlbmRlbmNpZXMnLCAnW3siYXR0cmlidXRlcyI6IFsy XSwgImRlcGVuZGVuY3kiOiAxLCAiZGVncmVlIjogMS4wMDAwMDB9XSc6OnBnX2RlcGVuZGVuY2ll cworICAgICAgKTsKK1dBUk5JTkc6ICBwZ19kZXBlbmRlbmNpZXM6IGludmFsaWQgYXR0bnVtIGZv ciB0aGlzIHN0YXRpc3RpY3Mgb2JqZWN0OiAxCisgcGdfcmVzdG9yZV9leHRlbmRlZF9zdGF0cyAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworLS0gc2V0IGRlcGVu ZGVuY2llcyB1c2luZyBhdCBhdHRudW0gdGhhdCBpcyAwCitTRUxFQ1QKKyAgICBwZ19jYXRhbG9n LnBnX3Jlc3RvcmVfZXh0ZW5kZWRfc3RhdHMoCisgICAgICAgICdzdGF0aXN0aWNzX3NjaGVtYW5h bWUnLCAnc3RhdHNfaW1wb3J0JywKKyAgICAgICAgJ3N0YXRpc3RpY3NfbmFtZScsICd0ZXN0X3N0 YXRfY2xvbmUnLAorICAgICAgICAnaW5oZXJpdGVkJywgZmFsc2UsCisgICAgICAgICdkZXBlbmRl bmNpZXMnLCAnW3siYXR0cmlidXRlcyI6IFswXSwgImRlcGVuZGVuY3kiOiAtMSwgImRlZ3JlZSI6 IDEuMDAwMDAwfV0nOjpwZ19kZXBlbmRlbmNpZXMKKyAgICAgICk7CitFUlJPUjogIG1hbGZvcm1l ZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVzIjogWzBdLCAiZGVwZW5kZW5jeSI6IC0x LCAiZGVncmVlIjogMS4wMDAwMDB9XSIKK0xJTkUgNjogICAgICAgICAnZGVwZW5kZW5jaWVzJywg J1t7ImF0dHJpYnV0ZXMiOiBbMF0sICJkZXBlbmRlbmN5IjogLi4uCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIEludmFsaWQgImF0dHJpYnV0ZXMiIGVsZW1lbnQ6 IDAuCistLSBzZXQgZGVwZW5kZW5jaWVzIHVzaW5nIGF0IGF0dG51bSB0aGF0IGlzIG91dHNpZGUg dGhlIGV4cHJlc3Npb24gYm91bmRzKGJlbG93IC0yKQorU0VMRUNUCisgICAgcGdfY2F0YWxvZy5w Z19yZXN0b3JlX2V4dGVuZGVkX3N0YXRzKAorICAgICAgICAnc3RhdGlzdGljc19zY2hlbWFuYW1l JywgJ3N0YXRzX2ltcG9ydCcsCisgICAgICAgICdzdGF0aXN0aWNzX25hbWUnLCAndGVzdF9zdGF0 X2Nsb25lJywKKyAgICAgICAgJ2luaGVyaXRlZCcsIGZhbHNlLAorICAgICAgICAnZGVwZW5kZW5j aWVzJywgJ1t7ImF0dHJpYnV0ZXMiOiBbMl0sICJkZXBlbmRlbmN5IjogLTMsICJkZWdyZWUiOiAx LjAwMDAwMH1dJzo6cGdfZGVwZW5kZW5jaWVzCisgICAgICApOworV0FSTklORzogIHBnX2RlcGVu ZGVuY2llczogaW52YWxpZCBhdHRudW0gZm9yIHRoaXMgc3RhdGlzdGljcyBvYmplY3Q6IC0zCisg cGdfcmVzdG9yZV9leHRlbmRlZF9zdGF0cyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IGYKKygxIHJvdykKKworLS0gb2sKK1NFTEVDVAorICAgIHBnX2NhdGFsb2cucGdfcmVzdG9yZV9l eHRlbmRlZF9zdGF0cygKKyAgICAgICAgJ3N0YXRpc3RpY3Nfc2NoZW1hbmFtZScsICdzdGF0c19p bXBvcnQnLAorICAgICAgICAnc3RhdGlzdGljc19uYW1lJywgJ3Rlc3Rfc3RhdF9jbG9uZScsCisg ICAgICAgICdpbmhlcml0ZWQnLCBmYWxzZSwKKyAgICAgICAgJ2RlcGVuZGVuY2llcycsICdbeyJh dHRyaWJ1dGVzIjogWzJdLCAiZGVwZW5kZW5jeSI6IDMsICJkZWdyZWUiOiAxLjAwMDAwMH0sCisg ICAgICAgICAgICAgICAgICAgICAgICAgIHsiYXR0cmlidXRlcyI6IFsyXSwgImRlcGVuZGVuY3ki OiAtMSwgImRlZ3JlZSI6IDEuMDAwMDAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeyJh dHRyaWJ1dGVzIjogWzJdLCAiZGVwZW5kZW5jeSI6IC0yLCAiZGVncmVlIjogMS4wMDAwMDB9LAor ICAgICAgICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0ZXMiOiBbM10sICJkZXBlbmRlbmN5 IjogMiwgImRlZ3JlZSI6IDEuMDAwMDAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeyJh dHRyaWJ1dGVzIjogWzNdLCAiZGVwZW5kZW5jeSI6IC0xLCAiZGVncmVlIjogMS4wMDAwMDB9LAor ICAgICAgICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0ZXMiOiBbM10sICJkZXBlbmRlbmN5 IjogLTIsICJkZWdyZWUiOiAxLjAwMDAwMH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHsi YXR0cmlidXRlcyI6IFstMV0sICJkZXBlbmRlbmN5IjogMiwgImRlZ3JlZSI6IDAuNTAwMDAwfSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGVzIjogWy0xXSwgImRlcGVuZGVu Y3kiOiAzLCAiZGVncmVlIjogMC41MDAwMDB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICB7 ImF0dHJpYnV0ZXMiOiBbLTFdLCAiZGVwZW5kZW5jeSI6IC0yLCAiZGVncmVlIjogMS4wMDAwMDB9 LAorICAgICAgICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0ZXMiOiBbLTJdLCAiZGVwZW5k ZW5jeSI6IDIsICJkZWdyZWUiOiAwLjUwMDAwMH0sCisgICAgICAgICAgICAgICAgICAgICAgICAg IHsiYXR0cmlidXRlcyI6IFstMl0sICJkZXBlbmRlbmN5IjogMywgImRlZ3JlZSI6IDAuNTAwMDAw fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGVzIjogWy0yXSwgImRlcGVu ZGVuY3kiOiAtMSwgImRlZ3JlZSI6IDEuMDAwMDAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgeyJhdHRyaWJ1dGVzIjogWzIsM10sICJkZXBlbmRlbmN5IjogLTEsICJkZWdyZWUiOiAxLjAw MDAwMH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHsiYXR0cmlidXRlcyI6IFsyLDNdLCAi ZGVwZW5kZW5jeSI6IC0yLCAiZGVncmVlIjogMS4wMDAwMDB9LAorICAgICAgICAgICAgICAgICAg ICAgICAgICB7ImF0dHJpYnV0ZXMiOiBbMiwtMV0sICJkZXBlbmRlbmN5IjogMywgImRlZ3JlZSI6 IDEuMDAwMDAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGVzIjogWzIs LTFdLCAiZGVwZW5kZW5jeSI6IC0yLCAiZGVncmVlIjogMS4wMDAwMDB9LAorICAgICAgICAgICAg ICAgICAgICAgICAgICB7ImF0dHJpYnV0ZXMiOiBbMiwtMl0sICJkZXBlbmRlbmN5IjogMywgImRl Z3JlZSI6IDEuMDAwMDAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGVz IjogWzIsLTJdLCAiZGVwZW5kZW5jeSI6IC0xLCAiZGVncmVlIjogMS4wMDAwMDB9LAorICAgICAg ICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0ZXMiOiBbMywtMV0sICJkZXBlbmRlbmN5Ijog MiwgImRlZ3JlZSI6IDEuMDAwMDAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRy aWJ1dGVzIjogWzMsLTFdLCAiZGVwZW5kZW5jeSI6IC0yLCAiZGVncmVlIjogMS4wMDAwMDB9LAor ICAgICAgICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0ZXMiOiBbMywtMl0sICJkZXBlbmRl bmN5IjogMiwgImRlZ3JlZSI6IDEuMDAwMDAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg eyJhdHRyaWJ1dGVzIjogWzMsLTJdLCAiZGVwZW5kZW5jeSI6IC0xLCAiZGVncmVlIjogMS4wMDAw MDB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0ZXMiOiBbLTEsLTJdLCAi ZGVwZW5kZW5jeSI6IDIsICJkZWdyZWUiOiAwLjUwMDAwMH0sCisgICAgICAgICAgICAgICAgICAg ICAgICAgIHsiYXR0cmlidXRlcyI6IFstMSwtMl0sICJkZXBlbmRlbmN5IjogMywgImRlZ3JlZSI6 IDAuNTAwMDAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGVzIjogWzIs MywtMl0sICJkZXBlbmRlbmN5IjogLTEsICJkZWdyZWUiOiAxLjAwMDAwMH0sCisgICAgICAgICAg ICAgICAgICAgICAgICAgIHsiYXR0cmlidXRlcyI6IFsyLC0xLC0yXSwgImRlcGVuZGVuY3kiOiAz LCAiZGVncmVlIjogMS4wMDAwMDB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICB7ImF0dHJp YnV0ZXMiOiBbMywtMSwtMl0sICJkZXBlbmRlbmN5IjogMiwgImRlZ3JlZSI6IDEuMDAwMDAwfV0n OjpwZ19kZXBlbmRlbmNpZXMKKyAgICAgICk7CisgcGdfcmVzdG9yZV9leHRlbmRlZF9zdGF0cyAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUCisgICAg anNvbmJfcHJldHR5KGUubl9kaXN0aW5jdDo6dGV4dDo6anNvbmIpIEFTIG5fZGlzdGluY3QsCisg ICAganNvbmJfcHJldHR5KGUuZGVwZW5kZW5jaWVzOjp0ZXh0Ojpqc29uYikgQVMgZGVwZW5kZW5j aWVzLAorICAgIGUubW9zdF9jb21tb25fdmFscywgZS5tb3N0X2NvbW1vbl92YWxfbnVsbHMsCisg ICAgZS5tb3N0X2NvbW1vbl9mcmVxcywgZS5tb3N0X2NvbW1vbl9iYXNlX2ZyZXFzCitGUk9NIHBn X3N0YXRzX2V4dCBBUyBlCitXSEVSRSBlLnN0YXRpc3RpY3Nfc2NoZW1hbmFtZSA9ICdzdGF0c19p bXBvcnQnCitBTkQgZS5zdGF0aXN0aWNzX25hbWUgPSAndGVzdF9zdGF0X2Nsb25lJworQU5EIGUu aW5oZXJpdGVkID0gZmFsc2UKK1xneAorLVsgUkVDT1JEIDEgXS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorbl9kaXN0aW5jdCAgICAgICAgICAgICB8IFsgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgeyAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAibmRpc3Rp bmN0IjogNCwgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImF0dHJpYnV0 ZXMiOiBbICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAyLCAgICAg ICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgMyAgICAgICAg ICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgXSAgICAgICAgICAgICAg ICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfSwgICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHsgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIm5kaXN0aW5jdCI6IDQsICAgICsK KyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJhdHRyaWJ1dGVzIjogWyAgICArCisg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgMiwgICAgICAgICAgICAgKworICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIC0xICAgICAgICAgICAgICsKKyAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgIF0gICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgIH0sICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICB7ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICJuZGlzdGluY3QiOiA0LCAgICArCisgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsgICAgKworICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgIDMsICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAtMSAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICBdICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICB9LCAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgeyAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAibmRpc3RpbmN0IjogNCwgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgImF0dHJpYnV0ZXMiOiBbICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAzLCAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgLTIgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg XSAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfSwgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHsgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIm5kaXN0 aW5jdCI6IDMsICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJhdHRyaWJ1 dGVzIjogWyAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTEsICAg ICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIC0yICAgICAg ICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIF0gICAgICAgICAgICAg ICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0sICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB7ICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJuZGlzdGluY3QiOiA0LCAgICAr CisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsgICAgKwor ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIDIsICAgICAgICAgICAgICsKKyAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAzLCAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTEgICAgICAgICAgICAgKworICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgXSAgICAgICAgICAgICAgICAgICsKKyAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgfSwgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgIHsgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgIm5kaXN0aW5jdCI6IDQsICAgICsKKyAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICJhdHRyaWJ1dGVzIjogWyAgICArCisgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgMiwgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgIDMsICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAtMiAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICBdICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICB9LCAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgeyAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAibmRpc3RpbmN0IjogNCwgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgImF0dHJpYnV0ZXMiOiBbICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAyLCAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgLTEsICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg IC0yICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIF0gICAg ICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0sICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB7ICAgICAgICAgICAg ICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJuZGlzdGluY3Qi OiA0LCAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiYXR0cmlidXRlcyI6 IFsgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIDIsICAgICAgICAg ICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAzLCAgICAgICAgICAg ICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTEsICAgICAgICAgICAg KworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIC0yICAgICAgICAgICAgICsK KyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIF0gICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0gICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAgICAgICAgICAgICB8IF0KK2RlcGVuZGVuY2llcyAgICAgICAgICAgfCBbICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHsgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImRl Z3JlZSI6IDEuMDAwMDAwLCsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJhdHRy aWJ1dGVzIjogWyAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgMiAg ICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgXSwgICAgICAg ICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJkZXBlbmRlbmN5 IjogMyAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0sICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB7ICAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJkZWdyZWUiOiAxLjAwMDAw MCwrCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsgICAg KworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIDIgICAgICAgICAgICAgICsK KyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIF0sICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiZGVwZW5kZW5jeSI6IC0xICAgKworICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICB9LCAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgeyAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAiZGVncmVlIjogMS4wMDAwMDAsKworICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgImF0dHJpYnV0ZXMiOiBbICAgICsKKyAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAyICAgICAgICAgICAgICArCisgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICBdLCAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgImRlcGVuZGVuY3kiOiAtMiAgICsKKyAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgfSwgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgIHsgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgImRlZ3JlZSI6IDEuMDAwMDAwLCsKKyAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICJhdHRyaWJ1dGVzIjogWyAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgMyAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgXSwgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICJkZXBlbmRlbmN5IjogMiAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0s ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB7ICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJk ZWdyZWUiOiAxLjAwMDAwMCwrCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiYXR0 cmlidXRlcyI6IFsgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIDMg ICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIF0sICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiZGVwZW5kZW5j eSI6IC0xICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB9LCAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgeyAgICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiZGVncmVlIjogMS4wMDAw MDAsKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImF0dHJpYnV0ZXMiOiBbICAg ICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAzICAgICAgICAgICAgICAr CisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICBdLCAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImRlcGVuZGVuY3kiOiAtMiAgICsKKyAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgfSwgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgIHsgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgImRlZ3JlZSI6IDAuNTAwMDAwLCsKKyAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICJhdHRyaWJ1dGVzIjogWyAgICArCisgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTEgICAgICAgICAgICAgKworICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgXSwgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICJkZXBlbmRlbmN5IjogMiAgICArCisgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgIH0sICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICB7ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICJkZWdyZWUiOiAwLjUwMDAwMCwrCisgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgIC0xICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgIF0sICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAiZGVwZW5kZW5jeSI6IDMgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB9 LCAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgeyAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAi ZGVncmVlIjogMS4wMDAwMDAsKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImF0 dHJpYnV0ZXMiOiBbICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAt MSAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICBdLCAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImRlcGVuZGVu Y3kiOiAtMiAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfSwgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHsgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImRlZ3JlZSI6IDAuNTAw MDAwLCsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJhdHRyaWJ1dGVzIjogWyAg ICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTIgICAgICAgICAgICAg KworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgXSwgICAgICAgICAgICAgICAgICsK KyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJkZXBlbmRlbmN5IjogMiAgICArCisg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0sICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICB7ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJkZWdyZWUiOiAwLjUwMDAwMCwrCisgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsgICAgKworICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgIC0yICAgICAgICAgICAgICsKKyAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgIF0sICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAiZGVwZW5kZW5jeSI6IDMgICAgKworICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICB9LCAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgeyAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAiZGVncmVlIjogMS4wMDAwMDAsKworICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgImF0dHJpYnV0ZXMiOiBbICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAtMiAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICBdLCAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgImRlcGVuZGVuY3kiOiAtMSAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg fSwgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHsg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ImRlZ3JlZSI6IDEuMDAwMDAwLCsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJh dHRyaWJ1dGVzIjogWyAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg MiwgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIDMg ICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIF0sICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiZGVwZW5kZW5j eSI6IC0xICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB9LCAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgeyAgICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiZGVncmVlIjogMS4wMDAw MDAsKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImF0dHJpYnV0ZXMiOiBbICAg ICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAyLCAgICAgICAgICAgICAr CisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgMyAgICAgICAgICAgICAgKwor ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgXSwgICAgICAgICAgICAgICAgICsKKyAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJkZXBlbmRlbmN5IjogLTIgICArCisgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgIH0sICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICB7ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICJkZWdyZWUiOiAxLjAwMDAwMCwrCisgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsgICAgKworICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgIDIsICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAtMSAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICBdLCAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgImRlcGVuZGVuY3kiOiAzICAgICsKKyAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgfSwgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAg IHwgICAgIHsgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgImRlZ3JlZSI6IDEuMDAwMDAwLCsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICJhdHRyaWJ1dGVzIjogWyAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgMiwgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgIC0xICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg IF0sICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAi ZGVwZW5kZW5jeSI6IC0yICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB9LCAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgeyAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiZGVncmVl IjogMS4wMDAwMDAsKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImF0dHJpYnV0 ZXMiOiBbICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAyLCAgICAg ICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTIgICAgICAg ICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgXSwgICAgICAgICAgICAg ICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJkZXBlbmRlbmN5IjogMyAg ICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0sICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB7ICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJkZWdyZWUiOiAxLjAwMDAwMCwrCisg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsgICAgKworICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIDIsICAgICAgICAgICAgICsKKyAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAtMiAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICBdLCAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgImRlcGVuZGVuY3kiOiAtMSAgICsKKyAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgfSwgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgIHsgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgImRlZ3JlZSI6IDEuMDAwMDAwLCsKKyAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICJhdHRyaWJ1dGVzIjogWyAgICArCisgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgMywgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgIC0xICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgIF0sICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAiZGVwZW5kZW5jeSI6IDIgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICB9LCAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg eyAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAiZGVncmVlIjogMS4wMDAwMDAsKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ImF0dHJpYnV0ZXMiOiBbICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAzLCAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg LTEgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgXSwgICAg ICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJkZXBlbmRl bmN5IjogLTIgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0sICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB7ICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJkZWdyZWUiOiAxLjAw MDAwMCwrCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsg ICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIDMsICAgICAgICAgICAg ICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAtMiAgICAgICAgICAgICAr CisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICBdLCAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImRlcGVuZGVuY3kiOiAyICAgICsKKyAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgfSwgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgIHsgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgImRlZ3JlZSI6IDEuMDAwMDAwLCsKKyAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICJhdHRyaWJ1dGVzIjogWyAgICArCisgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgMywgICAgICAgICAgICAgKworICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgIC0yICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgIF0sICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAiZGVwZW5kZW5jeSI6IC0xICAgKworICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICB9LCAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgeyAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAiZGVncmVlIjogMC41MDAwMDAsKworICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgImF0dHJpYnV0ZXMiOiBbICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAtMSwgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgLTIgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgXSwgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICJkZXBlbmRlbmN5IjogMiAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0sICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB7ICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJkZWdy ZWUiOiAwLjUwMDAwMCwrCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiYXR0cmli dXRlcyI6IFsgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIC0xLCAg ICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAtMiAgICAg ICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICBdLCAgICAgICAgICAg ICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImRlcGVuZGVuY3kiOiAz ICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfSwgICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHsgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImRlZ3JlZSI6IDEuMDAwMDAwLCsK KyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJhdHRyaWJ1dGVzIjogWyAgICArCisg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgMiwgICAgICAgICAgICAgKworICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIDMsICAgICAgICAgICAgICsKKyAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAtMiAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICBdLCAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgImRlcGVuZGVuY3kiOiAtMSAgICsKKyAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgfSwgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgIHsgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgImRlZ3JlZSI6IDEuMDAwMDAwLCsKKyAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICJhdHRyaWJ1dGVzIjogWyAgICArCisgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgMiwgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgIC0xLCAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAtMiAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICBdLCAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgImRlcGVuZGVuY3kiOiAzICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg fSwgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHsg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ImRlZ3JlZSI6IDEuMDAwMDAwLCsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJh dHRyaWJ1dGVzIjogWyAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg MywgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIC0x LCAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAtMiAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICBdLCAgICAgICAg ICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImRlcGVuZGVuY3ki OiAyICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfSAgICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgXQorbW9zdF9jb21tb25fdmFscyAgICAg ICB8IAorbW9zdF9jb21tb25fdmFsX251bGxzICB8IAorbW9zdF9jb21tb25fZnJlcXMgICAgICB8 IAorbW9zdF9jb21tb25fYmFzZV9mcmVxcyB8IAorCistLSBpZiBhbnkgb25lIG1jdiBwYXJhbSBz cGVjaWZpZWQsIGFsbCBmb3VyIG11c3QgYmUgc3BlY2lmaWVkIChwYXJ0IDEpCitTRUxFQ1QKKyAg ICBwZ19jYXRhbG9nLnBnX3Jlc3RvcmVfZXh0ZW5kZWRfc3RhdHMoCisgICAgICAgICdzdGF0aXN0 aWNzX3NjaGVtYW5hbWUnLCAnc3RhdHNfaW1wb3J0JywKKyAgICAgICAgJ3N0YXRpc3RpY3NfbmFt ZScsICd0ZXN0X3N0YXRfY2xvbmUnLAorICAgICAgICAnaW5oZXJpdGVkJywgZmFsc2UsCisgICAg ICAgICdtb3N0X2NvbW1vbl92YWxzJywgJ3t7Zm91cixOVUxMLDAsTlVMTH0se29uZSwiKDEsMS4x LE9ORSwwMS0wMS0yMDAxLFwie1wiXCJ4a2V5XCJcIjogXCJcInh2YWxcIlwifVwiKSIsMSwyfSx7 dHJlLCIoMywzLjMsVFJFLDAzLTAzLTIwMDMsKSIsLTEsM30se3R3bywiKDIsMi4yLFRXTywwMi0w Mi0yMDAyLFwiW3RydWUsIDQsIFwiXCJzaXhcIlwiXVwiKSIsMSwyfX0nOjp0ZXh0W10KKyAgICAg ICk7CitXQVJOSU5HOiAgTUNWIHBhcmFtZXRlcnMgIm1vc3RfY29tbW9uX3ZhbHMiLCAibW9zdF9j b21tb25fdmFsX251bGxzIiwgIm1vc3RfY29tbW9uX2ZyZXFzIiwgYW5kICJtb3N0X2NvbW1vbl9i YXNlX2ZyZXFzIiBtdXN0IGJlIGFsbCBzcGVjaWZpZWQgaWYgYW55IGFyZSBzcGVjaWZpZWQKKyBw Z19yZXN0b3JlX2V4dGVuZGVkX3N0YXRzIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ZgorKDEgcm93KQorCistLSBpZiBhbnkgb25lIG1jdiBwYXJhbSBzcGVjaWZpZWQsIGFsbCBmb3Vy IG11c3QgYmUgc3BlY2lmaWVkIChwYXJ0IDIpCitTRUxFQ1QKKyAgICBwZ19jYXRhbG9nLnBnX3Jl c3RvcmVfZXh0ZW5kZWRfc3RhdHMoCisgICAgICAgICdzdGF0aXN0aWNzX3NjaGVtYW5hbWUnLCAn c3RhdHNfaW1wb3J0JywKKyAgICAgICAgJ3N0YXRpc3RpY3NfbmFtZScsICd0ZXN0X3N0YXRfY2xv bmUnLAorICAgICAgICAnaW5oZXJpdGVkJywgZmFsc2UsCisgICAgICAgICdtb3N0X2NvbW1vbl92 YWxfbnVsbHMnLCAne3tmLHQsZix0fSx7ZixmLGYsZn0se2YsZixmLGZ9LHtmLGYsZixmfX0nOjpi b29sZWFuW10KKyAgICAgICk7CitXQVJOSU5HOiAgTUNWIHBhcmFtZXRlcnMgIm1vc3RfY29tbW9u X3ZhbHMiLCAibW9zdF9jb21tb25fdmFsX251bGxzIiwgIm1vc3RfY29tbW9uX2ZyZXFzIiwgYW5k ICJtb3N0X2NvbW1vbl9iYXNlX2ZyZXFzIiBtdXN0IGJlIGFsbCBzcGVjaWZpZWQgaWYgYW55IGFy ZSBzcGVjaWZpZWQKKyBwZ19yZXN0b3JlX2V4dGVuZGVkX3N0YXRzIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCistLSBpZiBhbnkgb25lIG1jdiBwYXJhbSBzcGVj aWZpZWQsIGFsbCBmb3VyIG11c3QgYmUgc3BlY2lmaWVkIChwYXJ0IDMpCitTRUxFQ1QKKyAgICBw Z19jYXRhbG9nLnBnX3Jlc3RvcmVfZXh0ZW5kZWRfc3RhdHMoCisgICAgICAgICdzdGF0aXN0aWNz X3NjaGVtYW5hbWUnLCAnc3RhdHNfaW1wb3J0JywKKyAgICAgICAgJ3N0YXRpc3RpY3NfbmFtZScs ICd0ZXN0X3N0YXRfY2xvbmUnLAorICAgICAgICAnaW5oZXJpdGVkJywgZmFsc2UsCisgICAgICAg ICdtb3N0X2NvbW1vbl9mcmVxcycsICd7MC4yNSwwLjI1LDAuMjUsMC4yNX0nOjpkb3VibGUgcHJl Y2lzaW9uW10KKyAgICAgICk7CitXQVJOSU5HOiAgTUNWIHBhcmFtZXRlcnMgIm1vc3RfY29tbW9u X3ZhbHMiLCAibW9zdF9jb21tb25fdmFsX251bGxzIiwgIm1vc3RfY29tbW9uX2ZyZXFzIiwgYW5k ICJtb3N0X2NvbW1vbl9iYXNlX2ZyZXFzIiBtdXN0IGJlIGFsbCBzcGVjaWZpZWQgaWYgYW55IGFy ZSBzcGVjaWZpZWQKKyBwZ19yZXN0b3JlX2V4dGVuZGVkX3N0YXRzIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCistLSBpZiBhbnkgb25lIG1jdiBwYXJhbSBzcGVj aWZpZWQsIGFsbCBmb3VyIG11c3QgYmUgc3BlY2lmaWVkIChwYXJ0IDQpCitTRUxFQ1QKKyAgICBw Z19jYXRhbG9nLnBnX3Jlc3RvcmVfZXh0ZW5kZWRfc3RhdHMoCisgICAgICAgICdzdGF0aXN0aWNz X3NjaGVtYW5hbWUnLCAnc3RhdHNfaW1wb3J0JywKKyAgICAgICAgJ3N0YXRpc3RpY3NfbmFtZScs ICd0ZXN0X3N0YXRfY2xvbmUnLAorICAgICAgICAnaW5oZXJpdGVkJywgZmFsc2UsCisgICAgICAg ICdtb3N0X2NvbW1vbl9iYXNlX2ZyZXFzJywgJ3swLjAwMzkwNjI1LDAuMDE1NjI1LDAuMDAzOTA2 MjUsMC4wMTU2MjV9Jzo6ZG91YmxlIHByZWNpc2lvbltdCisgICAgICApOworV0FSTklORzogIE1D ViBwYXJhbWV0ZXJzICJtb3N0X2NvbW1vbl92YWxzIiwgIm1vc3RfY29tbW9uX3ZhbF9udWxscyIs ICJtb3N0X2NvbW1vbl9mcmVxcyIsIGFuZCAibW9zdF9jb21tb25fYmFzZV9mcmVxcyIgbXVzdCBi ZSBhbGwgc3BlY2lmaWVkIGlmIGFueSBhcmUgc3BlY2lmaWVkCisgcGdfcmVzdG9yZV9leHRlbmRl ZF9zdGF0cyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworLS0g b2sKK1NFTEVDVAorICAgIHBnX2NhdGFsb2cucGdfcmVzdG9yZV9leHRlbmRlZF9zdGF0cygKKyAg ICAgICAgJ3N0YXRpc3RpY3Nfc2NoZW1hbmFtZScsICdzdGF0c19pbXBvcnQnLAorICAgICAgICAn c3RhdGlzdGljc19uYW1lJywgJ3Rlc3Rfc3RhdF9jbG9uZScsCisgICAgICAgICdpbmhlcml0ZWQn LCBmYWxzZSwKKyAgICAgICAgJ21vc3RfY29tbW9uX3ZhbHMnLCAne3tmb3VyLE5VTEwsMCxOVUxM fSx7b25lLCIoMSwxLjEsT05FLDAxLTAxLTIwMDEsXCJ7XCJcInhrZXlcIlwiOiBcIlwieHZhbFwi XCJ9XCIpIiwxLDJ9LHt0cmUsIigzLDMuMyxUUkUsMDMtMDMtMjAwMywpIiwtMSwzfSx7dHdvLCIo MiwyLjIsVFdPLDAyLTAyLTIwMDIsXCJbdHJ1ZSwgNCwgXCJcInNpeFwiXCJdXCIpIiwxLDJ9fSc6 OnRleHRbXSwKKyAgICAgICAgJ21vc3RfY29tbW9uX3ZhbF9udWxscycsICd7e2YsdCxmLHR9LHtm LGYsZixmfSx7ZixmLGYsZn0se2YsZixmLGZ9fSc6OmJvb2xlYW5bXSwKKyAgICAgICAgJ21vc3Rf Y29tbW9uX2ZyZXFzJywgJ3swLjI1LDAuMjUsMC4yNSwwLjI1fSc6OmRvdWJsZSBwcmVjaXNpb25b XSwKKyAgICAgICAgJ21vc3RfY29tbW9uX2Jhc2VfZnJlcXMnLCAnezAuMDAzOTA2MjUsMC4wMTU2 MjUsMC4wMDM5MDYyNSwwLjAxNTYyNX0nOjpkb3VibGUgcHJlY2lzaW9uW10KKyAgICAgICk7Cisg cGdfcmVzdG9yZV9leHRlbmRlZF9zdGF0cyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IHQKKygxIHJvdykKKworU0VMRUNUCisgICAganNvbmJfcHJldHR5KGUubl9kaXN0aW5jdDo6dGV4 dDo6anNvbmIpIEFTIG5fZGlzdGluY3QsCisgICAganNvbmJfcHJldHR5KGUuZGVwZW5kZW5jaWVz Ojp0ZXh0Ojpqc29uYikgQVMgZGVwZW5kZW5jaWVzLAorICAgIGUubW9zdF9jb21tb25fdmFscywg ZS5tb3N0X2NvbW1vbl92YWxfbnVsbHMsCisgICAgZS5tb3N0X2NvbW1vbl9mcmVxcywgZS5tb3N0 X2NvbW1vbl9iYXNlX2ZyZXFzCitGUk9NIHBnX3N0YXRzX2V4dCBBUyBlCitXSEVSRSBlLnN0YXRp c3RpY3Nfc2NoZW1hbmFtZSA9ICdzdGF0c19pbXBvcnQnCitBTkQgZS5zdGF0aXN0aWNzX25hbWUg PSAndGVzdF9zdGF0X2Nsb25lJworQU5EIGUuaW5oZXJpdGVkID0gZmFsc2UKK1xneAorLVsgUkVD T1JEIDEgXS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK25fZGlzdGluY3QgICAgICAgICAg ICAgfCBbICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAibmRpc3RpbmN0Ijog NCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJhdHRyaWJ1dGVzIjogWyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgIDIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIF0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB9LCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICJuZGlzdGluY3QiOiA0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImF0 dHJpYnV0ZXMiOiBbICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgMiwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAtMSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0s ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgeyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIm5kaXN0aW5jdCI6IDQsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIC0x ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICBdICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAi bmRpc3RpbmN0IjogNCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJhdHRyaWJ1dGVzIjog WyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIDMsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgLTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgIF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB9LCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICJuZGlzdGluY3QiOiAzLCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgImF0dHJpYnV0ZXMiOiBbICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg LTEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAtMiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgeyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIm5kaXN0aW5jdCI6 IDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgIDMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTEg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIF0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICB9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAg IHwgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJu ZGlzdGluY3QiOiA0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImF0dHJpYnV0ZXMiOiBb ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgMiwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgIC0yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICBdICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAibmRpc3RpbmN0IjogNCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJhdHRy aWJ1dGVzIjogWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIDIsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTEsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAtMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg XSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0sICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgIm5kaXN0aW5jdCI6IDQsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAiYXR0cmlidXRlcyI6IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAyLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIDMsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTEsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAtMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgXSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICAgICAgICAgICAgICAgICAgfCBdCitkZXBlbmRlbmNpZXMgICAgICAgICAgIHwgWyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgeyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImRlZ3JlZSI6IDEuMDAwMDAwLCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgXSwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiZGVwZW5kZW5jeSI6IDMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiZGVn cmVlIjogMS4wMDAwMDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJhdHRyaWJ1dGVzIjogWyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICJkZXBlbmRlbmN5IjogLTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB9LCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICJkZWdyZWUiOiAxLjAwMDAwMCwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgImF0dHJpYnV0ZXMiOiBbICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgMiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIF0sICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgImRlcGVuZGVuY3kiOiAtMiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAg IHwgICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgeyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImRlZ3JlZSI6IDEuMDAw MDAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiZGVwZW5kZW5j eSI6IDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAiZGVncmVlIjogMS4wMDAwMDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJhdHRy aWJ1dGVzIjogWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIDMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICJkZXBlbmRlbmN5IjogLTEgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB9LCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJkZWdyZWUiOiAxLjAwMDAwMCwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgImF0dHJpYnV0ZXMiOiBbICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIF0sICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImRlcGVuZGVuY3kiOiAtMiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImRl Z3JlZSI6IDAuNTAwMDAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAtMSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAiZGVwZW5kZW5jeSI6IDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfSwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAiZGVncmVlIjogMC41MDAwMDAsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICJhdHRyaWJ1dGVzIjogWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIC0x ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICBdLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICJkZXBlbmRlbmN5IjogMyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICB9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJkZWdyZWUiOiAxLjAw MDAwMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImF0dHJpYnV0ZXMiOiBbICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgLTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImRlcGVuZGVu Y3kiOiAtMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgImRlZ3JlZSI6IDAuNTAwMDAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiYXR0 cmlidXRlcyI6IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAtMiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAiZGVwZW5kZW5jeSI6IDIgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfSwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiZGVncmVlIjogMC41MDAwMDAsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICJhdHRyaWJ1dGVzIjogWyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgIC0yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICBdLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJkZXBlbmRlbmN5IjogMyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICB9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAg IHwgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJk ZWdyZWUiOiAxLjAwMDAwMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImF0dHJpYnV0ZXMiOiBb ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTIgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgImRlcGVuZGVuY3kiOiAtMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0sICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgImRlZ3JlZSI6IDEuMDAwMDAwLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAiYXR0cmlidXRlcyI6IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAy LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIDMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICJkZXBlbmRlbmN5IjogLTEgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB9LCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJkZWdyZWUiOiAxLjAwMDAwMCwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgImF0dHJpYnV0ZXMiOiBbICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgMiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAzICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgXSwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAiZGVwZW5kZW5jeSI6IC0yICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiZGVncmVlIjogMS4wMDAw MDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJhdHRyaWJ1dGVzIjogWyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgIDIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgLTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIF0sICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImRlcGVuZGVuY3kiOiAzICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImRlZ3Jl ZSI6IDEuMDAwMDAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAyLCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgIC0xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICBd LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJkZXBlbmRlbmN5Ijog LTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICB9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICJkZWdyZWUiOiAxLjAwMDAwMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImF0dHJpYnV0 ZXMiOiBbICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgMiwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAtMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiZGVw ZW5kZW5jeSI6IDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfSwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAiZGVncmVlIjogMS4wMDAwMDAsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICJhdHRyaWJ1dGVzIjogWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIDIsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgImRlcGVuZGVuY3kiOiAtMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0sICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgeyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgImRlZ3JlZSI6IDEuMDAwMDAwLCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIC0xICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICBdLCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICJkZXBlbmRlbmN5IjogMiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB9 LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJkZWdyZWUiOiAxLjAwMDAwMCwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgImF0dHJpYnV0ZXMiOiBbICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgMywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAt MSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgXSwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAiZGVwZW5kZW5jeSI6IC0yICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiZGVncmVlIjogMS4w MDAwMDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJhdHRyaWJ1dGVzIjogWyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgIDMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgLTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIF0sICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImRlcGVuZGVuY3kiOiAyICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImRl Z3JlZSI6IDEuMDAwMDAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAzLCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgIC0yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICJkZXBlbmRlbmN5 IjogLTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB9LCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICJkZWdyZWUiOiAwLjUwMDAwMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgImF0dHJp YnV0ZXMiOiBbICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTEsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAtMiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAi ZGVwZW5kZW5jeSI6IDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfSwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAiZGVncmVlIjogMC41MDAwMDAsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICJhdHRyaWJ1dGVzIjogWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIC0xLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTIgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgImRlcGVuZGVuY3kiOiAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0sICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgeyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgImRlZ3JlZSI6IDEuMDAwMDAwLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIDMsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgImRlcGVuZGVuY3kiOiAtMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0sICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgeyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgImRlZ3JlZSI6IDEuMDAwMDAwLCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAiYXR0cmlidXRlcyI6IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIC0xLCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTIgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgImRlcGVuZGVuY3kiOiAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0sICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgImRlZ3JlZSI6IDEuMDAwMDAwLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAiYXR0cmlidXRlcyI6IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAz LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIC0xLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgLTIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ImRlcGVuZGVuY3kiOiAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIH0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgICAgICAgICAgICAgICAgICAgfCBdCittb3N0X2NvbW1vbl92YWxzICAgICAgIHwge3tmb3Vy LE5VTEwsMCxOVUxMfSx7b25lLCIoMSwxLjEsT05FLDAxLTAxLTIwMDEsXCJ7XCJcInhrZXlcIlwi OiBcIlwieHZhbFwiXCJ9XCIpIiwxLDJ9LHt0cmUsIigzLDMuMyxUUkUsMDMtMDMtMjAwMywpIiwt MSwzfSx7dHdvLCIoMiwyLjIsVFdPLDAyLTAyLTIwMDIsXCJbdHJ1ZSwgNCwgXCJcInNpeFwiXCJd XCIpIiwxLDJ9fQorbW9zdF9jb21tb25fdmFsX251bGxzICB8IHt7Zix0LGYsdH0se2YsZixmLGZ9 LHtmLGYsZixmfSx7ZixmLGYsZn19Cittb3N0X2NvbW1vbl9mcmVxcyAgICAgIHwgezAuMjUsMC4y NSwwLjI1LDAuMjV9Cittb3N0X2NvbW1vbl9iYXNlX2ZyZXFzIHwgezAuMDAzOTA2MjUsMC4wMTU2 MjUsMC4wMDM5MDYyNSwwLjAxNTYyNX0KKworU0VMRUNUCisgICAgcGdfY2F0YWxvZy5wZ19yZXN0 b3JlX2V4dGVuZGVkX3N0YXRzKAorICAgICAgICAnc3RhdGlzdGljc19zY2hlbWFuYW1lJywgJ3N0 YXRzX2ltcG9ydCcsCisgICAgICAgICdzdGF0aXN0aWNzX25hbWUnLCAndGVzdF9zdGF0X2Nsb25l JywKKyAgICAgICAgJ2luaGVyaXRlZCcsIGZhbHNlLAorICAgICAgICAnZXhwcnMnLCAne3swLDQs LTAuNzUsInsxfSIsInswLjV9Iiwiey0xLDB9IiwtMC42LE5VTEwsTlVMTCxOVUxMfSx7MC4yNSw0 LC0wLjUsInsyfSIsInswLjV9IixOVUxMLDEsTlVMTCxOVUxMLE5VTEx9fSc6OnRleHRbXQorICAg ICAgKTsKKyBwZ19yZXN0b3JlX2V4dGVuZGVkX3N0YXRzIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QKKyAgICBlLmluaGVyaXRlZCwgZS5udWxsX2Zy YWMsIGUuYXZnX3dpZHRoLCBlLm5fZGlzdGluY3QsIGUubW9zdF9jb21tb25fdmFscywKKyAgICBl Lm1vc3RfY29tbW9uX2ZyZXFzLCBlLmhpc3RvZ3JhbV9ib3VuZHMsIGUuY29ycmVsYXRpb24sCisg ICAgZS5tb3N0X2NvbW1vbl9lbGVtcywgZS5tb3N0X2NvbW1vbl9lbGVtX2ZyZXFzLCBlLmVsZW1f Y291bnRfaGlzdG9ncmFtCitGUk9NIHBnX3N0YXRzX2V4dF9leHBycyBBUyBlCitXSEVSRSBlLnN0 YXRpc3RpY3Nfc2NoZW1hbmFtZSA9ICdzdGF0c19pbXBvcnQnCitBTkQgZS5zdGF0aXN0aWNzX25h bWUgPSAndGVzdF9zdGF0X2Nsb25lJworYW5kIGUuaW5oZXJpdGVkID0gZmFsc2UKK1xneAorLVsg UkVDT1JEIDEgXS0tLS0tLS0tLS0rLS0tLS0tLQoraW5oZXJpdGVkICAgICAgICAgICAgICB8IGYK K251bGxfZnJhYyAgICAgICAgICAgICAgfCAwCithdmdfd2lkdGggICAgICAgICAgICAgIHwgNAor bl9kaXN0aW5jdCAgICAgICAgICAgICB8IC0wLjc1Cittb3N0X2NvbW1vbl92YWxzICAgICAgIHwg ezF9Cittb3N0X2NvbW1vbl9mcmVxcyAgICAgIHwgezAuNX0KK2hpc3RvZ3JhbV9ib3VuZHMgICAg ICAgfCB7LTEsMH0KK2NvcnJlbGF0aW9uICAgICAgICAgICAgfCAtMC42Cittb3N0X2NvbW1vbl9l bGVtcyAgICAgIHwgCittb3N0X2NvbW1vbl9lbGVtX2ZyZXFzIHwgCitlbGVtX2NvdW50X2hpc3Rv Z3JhbSAgIHwgCistWyBSRUNPUkQgMiBdLS0tLS0tLS0tLSstLS0tLS0tCitpbmhlcml0ZWQgICAg ICAgICAgICAgIHwgZgorbnVsbF9mcmFjICAgICAgICAgICAgICB8IDAuMjUKK2F2Z193aWR0aCAg ICAgICAgICAgICAgfCA0CituX2Rpc3RpbmN0ICAgICAgICAgICAgIHwgLTAuNQorbW9zdF9jb21t b25fdmFscyAgICAgICB8IHsyfQorbW9zdF9jb21tb25fZnJlcXMgICAgICB8IHswLjV9CitoaXN0 b2dyYW1fYm91bmRzICAgICAgIHwgCitjb3JyZWxhdGlvbiAgICAgICAgICAgIHwgMQorbW9zdF9j b21tb25fZWxlbXMgICAgICB8IAorbW9zdF9jb21tb25fZWxlbV9mcmVxcyB8IAorZWxlbV9jb3Vu dF9oaXN0b2dyYW0gICB8IAorCitTRUxFQ1QKKyAgICBwZ19jYXRhbG9nLnBnX2NsZWFyX2V4dGVu ZGVkX3N0YXRzKAorICAgICAgICBzdGF0aXN0aWNzX3NjaGVtYW5hbWUgPT4gJ3N0YXRzX2ltcG9y dCcsCisgICAgICAgIHN0YXRpc3RpY3NfbmFtZSA9PiAndGVzdF9zdGF0X2Nsb25lJywKKyAgICAg ICAgaW5oZXJpdGVkID0+IGZhbHNlKTsKKyBwZ19jbGVhcl9leHRlbmRlZF9zdGF0cyAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENPVU5UKCopCitGUk9N IHBnX3N0YXRzX2V4dCBBUyBlCitXSEVSRSBlLnN0YXRpc3RpY3Nfc2NoZW1hbmFtZSA9ICdzdGF0 c19pbXBvcnQnCitBTkQgZS5zdGF0aXN0aWNzX25hbWUgPSAndGVzdF9zdGF0X2Nsb25lJworQU5E IGUuaW5oZXJpdGVkID0gZmFsc2U7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykK KworU0VMRUNUIENPVU5UKCopCitGUk9NIHBnX3N0YXRzX2V4dF9leHBycyBBUyBlCitXSEVSRSBl LnN0YXRpc3RpY3Nfc2NoZW1hbmFtZSA9ICdzdGF0c19pbXBvcnQnCitBTkQgZS5zdGF0aXN0aWNz X25hbWUgPSAndGVzdF9zdGF0X2Nsb25lJworQU5EIGUuaW5oZXJpdGVkID0gZmFsc2U7CisgY291 bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworLS0KKy0tIENvcHkgc3RhdHMgZnJvbSB0 ZXN0X3N0YXQgdG8gdGVzdF9zdGF0X2Nsb25lCistLQorU0VMRUNUCisgICAgZS5zdGF0aXN0aWNz X25hbWUsCisgICAgcGdfY2F0YWxvZy5wZ19yZXN0b3JlX2V4dGVuZGVkX3N0YXRzKAorICAgICAg ICAnc3RhdGlzdGljc19zY2hlbWFuYW1lJywgZS5zdGF0aXN0aWNzX3NjaGVtYW5hbWU6OnRleHQs CisgICAgICAgICdzdGF0aXN0aWNzX25hbWUnLCAndGVzdF9zdGF0X2Nsb25lJywKKyAgICAgICAg J2luaGVyaXRlZCcsIGUuaW5oZXJpdGVkLAorICAgICAgICAnbl9kaXN0aW5jdCcsIGUubl9kaXN0 aW5jdCwKKyAgICAgICAgJ2RlcGVuZGVuY2llcycsIGUuZGVwZW5kZW5jaWVzLAorICAgICAgICAn bW9zdF9jb21tb25fdmFscycsIGUubW9zdF9jb21tb25fdmFscywKKyAgICAgICAgJ21vc3RfY29t bW9uX3ZhbF9udWxscycsIGUubW9zdF9jb21tb25fdmFsX251bGxzLAorICAgICAgICAnbW9zdF9j b21tb25fZnJlcXMnLCBlLm1vc3RfY29tbW9uX2ZyZXFzLAorICAgICAgICAnbW9zdF9jb21tb25f YmFzZV9mcmVxcycsIGUubW9zdF9jb21tb25fYmFzZV9mcmVxcywKKyAgICAgICAgJ2V4cHJzJywg eC5leHBycworICAgICkKK0ZST00gcGdfc3RhdHNfZXh0IEFTIGUKK0NST1NTIEpPSU4gTEFURVJB TCAoCisgICAgU0VMRUNUCisgICAgICAgIGFycmF5X2FnZygKKyAgICAgICAgICAgIEFSUkFZW2Vl Lm51bGxfZnJhYzo6dGV4dCwgZWUuYXZnX3dpZHRoOjp0ZXh0LAorICAgICAgICAgICAgICAgICAg ZWUubl9kaXN0aW5jdDo6dGV4dCwgZWUubW9zdF9jb21tb25fdmFsczo6dGV4dCwKKyAgICAgICAg ICAgICAgICAgIGVlLm1vc3RfY29tbW9uX2ZyZXFzOjp0ZXh0LCBlZS5oaXN0b2dyYW1fYm91bmRz Ojp0ZXh0LAorICAgICAgICAgICAgICAgICAgZWUuY29ycmVsYXRpb246OnRleHQsIGVlLm1vc3Rf Y29tbW9uX2VsZW1zOjp0ZXh0LAorICAgICAgICAgICAgICAgICAgZWUubW9zdF9jb21tb25fZWxl bV9mcmVxczo6dGV4dCwKKyAgICAgICAgICAgICAgICAgIGVlLmVsZW1fY291bnRfaGlzdG9ncmFt Ojp0ZXh0XSkKKyAgICBGUk9NIHBnX3N0YXRzX2V4dF9leHBycyBBUyBlZQorICAgIFdIRVJFIGVl LnN0YXRpc3RpY3Nfc2NoZW1hbmFtZSA9IGUuc3RhdGlzdGljc19zY2hlbWFuYW1lCisgICAgQU5E IGVlLnN0YXRpc3RpY3NfbmFtZSA9IGUuc3RhdGlzdGljc19uYW1lCisgICAgQU5EIGVlLmluaGVy aXRlZCA9IGUuaW5oZXJpdGVkCisgICAgKSBBUyB4KGV4cHJzKQorV0hFUkUgZS5zdGF0aXN0aWNz X3NjaGVtYW5hbWUgPSAnc3RhdHNfaW1wb3J0JworQU5EIGUuc3RhdGlzdGljc19uYW1lID0gJ3Rl c3Rfc3RhdCc7Cisgc3RhdGlzdGljc19uYW1lIHwgcGdfcmVzdG9yZV9leHRlbmRlZF9zdGF0cyAK Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHRlc3Rfc3Rh dCAgICAgICB8IHQKKygxIHJvdykKKworU0VMRUNUIG8uaW5oZXJpdGVkLAorICAgICAgIG8ubl9k aXN0aW5jdCwgby5kZXBlbmRlbmNpZXMsIG8ubW9zdF9jb21tb25fdmFscywKKyAgICAgICBvLm1v c3RfY29tbW9uX3ZhbF9udWxscywgby5tb3N0X2NvbW1vbl9mcmVxcywKKyAgICAgICBvLm1vc3Rf Y29tbW9uX2Jhc2VfZnJlcXMKK0ZST00gcGdfc3RhdHNfZXh0IEFTIG8KK1dIRVJFIG8uc3RhdGlz dGljc19zY2hlbWFuYW1lID0gJ3N0YXRzX2ltcG9ydCcKK0FORCBvLnN0YXRpc3RpY3NfbmFtZSA9 ICd0ZXN0X3N0YXQnCitFWENFUFQKK1NFTEVDVCBuLmluaGVyaXRlZCwKKyAgICAgICBuLm5fZGlz dGluY3QsIG4uZGVwZW5kZW5jaWVzLCBuLm1vc3RfY29tbW9uX3ZhbHMsCisgICAgICAgbi5tb3N0 X2NvbW1vbl92YWxfbnVsbHMsIG4ubW9zdF9jb21tb25fZnJlcXMsCisgICAgICAgbi5tb3N0X2Nv bW1vbl9iYXNlX2ZyZXFzCitGUk9NIHBnX3N0YXRzX2V4dCBBUyBuCitXSEVSRSBuLnN0YXRpc3Rp Y3Nfc2NoZW1hbmFtZSA9ICdzdGF0c19pbXBvcnQnCitBTkQgbi5zdGF0aXN0aWNzX25hbWUgPSAn dGVzdF9zdGF0X2Nsb25lJzsKKyBpbmhlcml0ZWQgfCBuX2Rpc3RpbmN0IHwgZGVwZW5kZW5jaWVz IHwgbW9zdF9jb21tb25fdmFscyB8IG1vc3RfY29tbW9uX3ZhbF9udWxscyB8IG1vc3RfY29tbW9u X2ZyZXFzIHwgbW9zdF9jb21tb25fYmFzZV9mcmVxcyAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3Mp CisKK1NFTEVDVCBuLmluaGVyaXRlZCwKKyAgICAgICBuLm5fZGlzdGluY3QsIG4uZGVwZW5kZW5j aWVzLCBuLm1vc3RfY29tbW9uX3ZhbHMsCisgICAgICAgbi5tb3N0X2NvbW1vbl92YWxfbnVsbHMs IG4ubW9zdF9jb21tb25fZnJlcXMsCisgICAgICAgbi5tb3N0X2NvbW1vbl9iYXNlX2ZyZXFzCitG Uk9NIHBnX3N0YXRzX2V4dCBBUyBuCitXSEVSRSBuLnN0YXRpc3RpY3Nfc2NoZW1hbmFtZSA9ICdz dGF0c19pbXBvcnQnCitBTkQgbi5zdGF0aXN0aWNzX25hbWUgPSAndGVzdF9zdGF0X2Nsb25lJwor RVhDRVBUCitTRUxFQ1Qgby5pbmhlcml0ZWQsCisgICAgICAgby5uX2Rpc3RpbmN0LCBvLmRlcGVu ZGVuY2llcywgby5tb3N0X2NvbW1vbl92YWxzLAorICAgICAgIG8ubW9zdF9jb21tb25fdmFsX251 bGxzLCBvLm1vc3RfY29tbW9uX2ZyZXFzLAorICAgICAgIG8ubW9zdF9jb21tb25fYmFzZV9mcmVx cworRlJPTSBwZ19zdGF0c19leHQgQVMgbworV0hFUkUgby5zdGF0aXN0aWNzX3NjaGVtYW5hbWUg PSAnc3RhdHNfaW1wb3J0JworQU5EIG8uc3RhdGlzdGljc19uYW1lID0gJ3Rlc3Rfc3RhdCc7Cisg aW5oZXJpdGVkIHwgbl9kaXN0aW5jdCB8IGRlcGVuZGVuY2llcyB8IG1vc3RfY29tbW9uX3ZhbHMg fCBtb3N0X2NvbW1vbl92YWxfbnVsbHMgfCBtb3N0X2NvbW1vbl9mcmVxcyB8IG1vc3RfY29tbW9u X2Jhc2VfZnJlcXMgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCitTRUxFQ1Qgby5pbmhlcml0 ZWQsCisgICAgICAgby5udWxsX2ZyYWMsIG8uYXZnX3dpZHRoLCBvLm5fZGlzdGluY3QsCisgICAg ICAgby5tb3N0X2NvbW1vbl92YWxzOjp0ZXh0IEFTIG1vc3RfY29tbW9uX3ZhbHMsCisgICAgICAg by5tb3N0X2NvbW1vbl9mcmVxcywKKyAgICAgICBvLmhpc3RvZ3JhbV9ib3VuZHM6OnRleHQgQVMg aGlzdG9ncmFtX2JvdW5kcywKKyAgICAgICBvLmNvcnJlbGF0aW9uLAorICAgICAgIG8ubW9zdF9j b21tb25fZWxlbXM6OnRleHQgQVMgbW9zdF9jb21tb25fZWxlbXMsCisgICAgICAgby5tb3N0X2Nv bW1vbl9lbGVtX2ZyZXFzLCBvLmVsZW1fY291bnRfaGlzdG9ncmFtCitGUk9NIHBnX3N0YXRzX2V4 dF9leHBycyBBUyBvCitXSEVSRSBvLnN0YXRpc3RpY3Nfc2NoZW1hbmFtZSA9ICdzdGF0c19pbXBv cnQnCitBTkQgby5zdGF0aXN0aWNzX25hbWUgPSAndGVzdF9zdGF0JworRVhDRVBUCitTRUxFQ1Qg bi5pbmhlcml0ZWQsCisgICAgICAgbi5udWxsX2ZyYWMsIG4uYXZnX3dpZHRoLCBuLm5fZGlzdGlu Y3QsCisgICAgICAgbi5tb3N0X2NvbW1vbl92YWxzOjp0ZXh0IEFTIG1vc3RfY29tbW9uX3ZhbHMs CisgICAgICAgbi5tb3N0X2NvbW1vbl9mcmVxcywKKyAgICAgICBuLmhpc3RvZ3JhbV9ib3VuZHM6 OnRleHQgQVMgaGlzdG9ncmFtX2JvdW5kcywKKyAgICAgICBuLmNvcnJlbGF0aW9uLAorICAgICAg IG4ubW9zdF9jb21tb25fZWxlbXM6OnRleHQgQVMgbW9zdF9jb21tb25fZWxlbXMsCisgICAgICAg bi5tb3N0X2NvbW1vbl9lbGVtX2ZyZXFzLCBuLmVsZW1fY291bnRfaGlzdG9ncmFtCitGUk9NIHBn X3N0YXRzX2V4dF9leHBycyBBUyBuCitXSEVSRSBuLnN0YXRpc3RpY3Nfc2NoZW1hbmFtZSA9ICdz dGF0c19pbXBvcnQnCitBTkQgbi5zdGF0aXN0aWNzX25hbWUgPSAndGVzdF9zdGF0X2Nsb25lJzsK KyBpbmhlcml0ZWQgfCBudWxsX2ZyYWMgfCBhdmdfd2lkdGggfCBuX2Rpc3RpbmN0IHwgbW9zdF9j b21tb25fdmFscyB8IG1vc3RfY29tbW9uX2ZyZXFzIHwgaGlzdG9ncmFtX2JvdW5kcyB8IGNvcnJl bGF0aW9uIHwgbW9zdF9jb21tb25fZWxlbXMgfCBtb3N0X2NvbW1vbl9lbGVtX2ZyZXFzIHwgZWxl bV9jb3VudF9oaXN0b2dyYW0gCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKDAgcm93cykKKworU0VMRUNU IG4uaW5oZXJpdGVkLAorICAgICAgIG4ubnVsbF9mcmFjLCBuLmF2Z193aWR0aCwgbi5uX2Rpc3Rp bmN0LAorICAgICAgIG4ubW9zdF9jb21tb25fdmFsczo6dGV4dCBBUyBtb3N0X2NvbW1vbl92YWxz LAorICAgICAgIG4ubW9zdF9jb21tb25fZnJlcXMsCisgICAgICAgbi5oaXN0b2dyYW1fYm91bmRz Ojp0ZXh0IEFTIGhpc3RvZ3JhbV9ib3VuZHMsCisgICAgICAgbi5jb3JyZWxhdGlvbiwKKyAgICAg ICBuLm1vc3RfY29tbW9uX2VsZW1zOjp0ZXh0IEFTIG1vc3RfY29tbW9uX2VsZW1zLAorICAgICAg IG4ubW9zdF9jb21tb25fZWxlbV9mcmVxcywgbi5lbGVtX2NvdW50X2hpc3RvZ3JhbQorRlJPTSBw Z19zdGF0c19leHRfZXhwcnMgQVMgbgorV0hFUkUgbi5zdGF0aXN0aWNzX3NjaGVtYW5hbWUgPSAn c3RhdHNfaW1wb3J0JworQU5EIG4uc3RhdGlzdGljc19uYW1lID0gJ3Rlc3Rfc3RhdF9jbG9uZScK K0VYQ0VQVAorU0VMRUNUIG8uaW5oZXJpdGVkLAorICAgICAgIG8ubnVsbF9mcmFjLCBvLmF2Z193 aWR0aCwgby5uX2Rpc3RpbmN0LAorICAgICAgIG8ubW9zdF9jb21tb25fdmFsczo6dGV4dCBBUyBt b3N0X2NvbW1vbl92YWxzLAorICAgICAgIG8ubW9zdF9jb21tb25fZnJlcXMsCisgICAgICAgby5o aXN0b2dyYW1fYm91bmRzOjp0ZXh0IEFTIGhpc3RvZ3JhbV9ib3VuZHMsCisgICAgICAgby5jb3Jy ZWxhdGlvbiwKKyAgICAgICBvLm1vc3RfY29tbW9uX2VsZW1zOjp0ZXh0IEFTIG1vc3RfY29tbW9u X2VsZW1zLAorICAgICAgIG8ubW9zdF9jb21tb25fZWxlbV9mcmVxcywgby5lbGVtX2NvdW50X2hp c3RvZ3JhbQorRlJPTSBwZ19zdGF0c19leHRfZXhwcnMgQVMgbworV0hFUkUgby5zdGF0aXN0aWNz X3NjaGVtYW5hbWUgPSAnc3RhdHNfaW1wb3J0JworQU5EIG8uc3RhdGlzdGljc19uYW1lID0gJ3Rl c3Rfc3RhdCc7CisgaW5oZXJpdGVkIHwgbnVsbF9mcmFjIHwgYXZnX3dpZHRoIHwgbl9kaXN0aW5j dCB8IG1vc3RfY29tbW9uX3ZhbHMgfCBtb3N0X2NvbW1vbl9mcmVxcyB8IGhpc3RvZ3JhbV9ib3Vu ZHMgfCBjb3JyZWxhdGlvbiB8IG1vc3RfY29tbW9uX2VsZW1zIHwgbW9zdF9jb21tb25fZWxlbV9m cmVxcyB8IGVsZW1fY291bnRfaGlzdG9ncmFtIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3Mp CisKIERST1AgU0NIRU1BIHN0YXRzX2ltcG9ydCBDQVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNj YWRlcyB0byA2IG90aGVyIG9iamVjdHMKIERFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gdHlwZSBz dGF0c19pbXBvcnQuY29tcGxleF90eXBlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zdGF0c19pbXBvcnQuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3RhdHNfaW1wb3J0LnNx bAppbmRleCBkMTQwNzMzYTc1MC4uODYxOTQ1MTkwMDAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3N0YXRzX2ltcG9ydC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Rh dHNfaW1wb3J0LnNxbApAQCAtNzY2LDYgKzc2Niw5IEBAIFNFTEVDVCA0LCAnZm91cicsIE5VTEws IGludDRyYW5nZSgwLDEwMCksIE5VTEw7CiAKIENSRUFURSBJTkRFWCBpc19vZGQgT04gc3RhdHNf aW1wb3J0LnRlc3QoKChjb21wKS5hICUgMiA9IDEpKTsKIAorQ1JFQVRFIFNUQVRJU1RJQ1Mgc3Rh dHNfaW1wb3J0LnRlc3Rfc3RhdCBPTiBuYW1lLCBjb21wLCBsb3dlcihhcmFuZ2UpLCBhcnJheV9s ZW5ndGgodGFncywxKQorRlJPTSBzdGF0c19pbXBvcnQudGVzdDsKKwogLS0gR2VuZXJhdGUgc3Rh dGlzdGljcyBvbiB0YWJsZSB3aXRoIGRhdGEKIEFOQUxZWkUgc3RhdHNfaW1wb3J0LnRlc3Q7CiAK QEAgLTc3NCw2ICs3NzcsOSBAQCBDUkVBVEUgVEFCTEUgc3RhdHNfaW1wb3J0LnRlc3RfY2xvbmUg KCBMSUtFIHN0YXRzX2ltcG9ydC50ZXN0ICkKIAogQ1JFQVRFIElOREVYIGlzX29kZF9jbG9uZSBP TiBzdGF0c19pbXBvcnQudGVzdF9jbG9uZSgoKGNvbXApLmEgJSAyID0gMSkpOwogCitDUkVBVEUg U1RBVElTVElDUyBzdGF0c19pbXBvcnQudGVzdF9zdGF0X2Nsb25lIE9OIG5hbWUsIGNvbXAsIGxv d2VyKGFyYW5nZSksIGFycmF5X2xlbmd0aCh0YWdzLDEpCitGUk9NIHN0YXRzX2ltcG9ydC50ZXN0 X2Nsb25lOworCiAtLQogLS0gQ29weSBzdGF0cyBmcm9tIHRlc3QgdG8gdGVzdF9jbG9uZSwgYW5k IGlzX29kZCB0byBpc19vZGRfY2xvbmUKIC0tCkBAIC05NzAsNCArOTc2LDM2MiBAQCBBTkQgdGFi bGVuYW1lID0gJ3N0YXRzX3RlbXAnCiBBTkQgaW5oZXJpdGVkID0gZmFsc2UKIEFORCBhdHRuYW1l ID0gJ2knOwogRFJPUCBUQUJMRSBzdGF0c190ZW1wOworCistLSBzZXQgbl9kaXN0aW5jdCB1c2lu ZyBhdCBhdHRudW0gKDEpIHRoYXQgaXMgbm90IGluIHRoZSBzdGF0aXN0aWNzIG9iamVjdAorU0VM RUNUCisgICAgcGdfY2F0YWxvZy5wZ19yZXN0b3JlX2V4dGVuZGVkX3N0YXRzKAorICAgICAgICAn c3RhdGlzdGljc19zY2hlbWFuYW1lJywgJ3N0YXRzX2ltcG9ydCcsCisgICAgICAgICdzdGF0aXN0 aWNzX25hbWUnLCAndGVzdF9zdGF0X2Nsb25lJywKKyAgICAgICAgJ2luaGVyaXRlZCcsIGZhbHNl LAorICAgICAgICAnbl9kaXN0aW5jdCcsICdbeyJhdHRyaWJ1dGVzIiA6IFszLC0xXSwgIm5kaXN0 aW5jdCIgOiA0fSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMywt Ml0sICJuZGlzdGluY3QiIDogNH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0 ZXMiIDogWy0xLC0yXSwgIm5kaXN0aW5jdCIgOiAzfSwKKyAgICAgICAgICAgICAgICAgICAgICAg IHsiYXR0cmlidXRlcyIgOiBbMiwzLC0xXSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAgICAgICAgICAg ICAgICAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzLC0yXSwgIm5kaXN0aW5jdCIgOiA0fSwK KyAgICAgICAgICAgICAgICAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwtMSwtMl0sICJuZGlz dGluY3QiIDogNH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzMs LTEsLTJdLCAibmRpc3RpbmN0IiA6IDR9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRy aWJ1dGVzIiA6IFsxLDIsMywtMSwtMl0sICJuZGlzdGluY3QiIDogNH1dJzo6cGdfbmRpc3RpbmN0 CisgICAgICApOworCistLSBzZXQgbl9kaXN0aW5jdCB1c2luZyBhdCBhdHRudW0gdGhhdCBpcyAw CitTRUxFQ1QKKyAgICBwZ19jYXRhbG9nLnBnX3Jlc3RvcmVfZXh0ZW5kZWRfc3RhdHMoCisgICAg ICAgICdzdGF0aXN0aWNzX3NjaGVtYW5hbWUnLCAnc3RhdHNfaW1wb3J0JywKKyAgICAgICAgJ3N0 YXRpc3RpY3NfbmFtZScsICd0ZXN0X3N0YXRfY2xvbmUnLAorICAgICAgICAnaW5oZXJpdGVkJywg ZmFsc2UsCisgICAgICAgICduX2Rpc3RpbmN0JywgJ1t7ImF0dHJpYnV0ZXMiIDogWzMsLTFdLCAi bmRpc3RpbmN0IiA6IDR9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6 IFszLC0yXSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsiYXR0 cmlidXRlcyIgOiBbLTEsLTJdLCAibmRpc3RpbmN0IiA6IDN9LAorICAgICAgICAgICAgICAgICAg ICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLDMsLTFdLCAibmRpc3RpbmN0IiA6IDR9LAorICAgICAg ICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLDMsLTJdLCAibmRpc3RpbmN0IiA6 IDR9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLC0xLC0yXSwg Im5kaXN0aW5jdCIgOiA0fSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsiYXR0cmlidXRlcyIg OiBbMCwyLDMsLTEsLTJdLCAibmRpc3RpbmN0IiA6IDR9XSc6OnBnX25kaXN0aW5jdAorICAgICAg KTsKKworLS0gc2V0IG5fZGlzdGluY3QgdXNpbmcgYXQgYXR0bnVtIHRoYXQgaXMgb3V0c2lkZSB0 aGUgZXhwcmVzc2lvbiBib3VuZHMoYmVsb3cgLTIpCitTRUxFQ1QKKyAgICBwZ19jYXRhbG9nLnBn X3Jlc3RvcmVfZXh0ZW5kZWRfc3RhdHMoCisgICAgICAgICdzdGF0aXN0aWNzX3NjaGVtYW5hbWUn LCAnc3RhdHNfaW1wb3J0JywKKyAgICAgICAgJ3N0YXRpc3RpY3NfbmFtZScsICd0ZXN0X3N0YXRf Y2xvbmUnLAorICAgICAgICAnaW5oZXJpdGVkJywgZmFsc2UsCisgICAgICAgICduX2Rpc3RpbmN0 JywgJ1t7ImF0dHJpYnV0ZXMiIDogWzMsLTFdLCAibmRpc3RpbmN0IiA6IDR9LAorICAgICAgICAg ICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFszLC0yXSwgIm5kaXN0aW5jdCIgOiA0fSwK KyAgICAgICAgICAgICAgICAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbLTEsLTJdLCAibmRpc3Rp bmN0IiA6IDN9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFszLC0x LC00XSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsiYXR0cmli dXRlcyIgOiBbMywtMiwtNF0sICJuZGlzdGluY3QiIDogNH0sCisgICAgICAgICAgICAgICAgICAg ICAgICB7ImF0dHJpYnV0ZXMiIDogWy0xLC0yLC00XSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAgICAg ICAgICAgICAgICAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMywtMSwtMiwtNF0sICJuZGlzdGlu Y3QiIDogNH1dJzo6cGdfbmRpc3RpbmN0CisgICAgICApOworCistLSBvaworU0VMRUNUCisgICAg cGdfY2F0YWxvZy5wZ19yZXN0b3JlX2V4dGVuZGVkX3N0YXRzKAorICAgICAgICAnc3RhdGlzdGlj c19zY2hlbWFuYW1lJywgJ3N0YXRzX2ltcG9ydCcsCisgICAgICAgICdzdGF0aXN0aWNzX25hbWUn LCAndGVzdF9zdGF0X2Nsb25lJywKKyAgICAgICAgJ2luaGVyaXRlZCcsIGZhbHNlLAorICAgICAg ICAnbl9kaXN0aW5jdCcsICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IDR9 LAorICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLC0xXSwgIm5kaXN0 aW5jdCIgOiA0fSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMywt MV0sICJuZGlzdGluY3QiIDogNH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0 ZXMiIDogWzMsLTJdLCAibmRpc3RpbmN0IiA6IDR9LAorICAgICAgICAgICAgICAgICAgICAgICAg eyJhdHRyaWJ1dGVzIiA6IFstMSwtMl0sICJuZGlzdGluY3QiIDogM30sCisgICAgICAgICAgICAg ICAgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsMywtMV0sICJuZGlzdGluY3QiIDogNH0sCisg ICAgICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsMywtMl0sICJuZGlzdGlu Y3QiIDogNH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsLTEs LTJdLCAibmRpc3RpbmN0IiA6IDR9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1 dGVzIiA6IFsyLDMsLTEsLTJdLCAibmRpc3RpbmN0IiA6IDR9XSc6OnBnX25kaXN0aW5jdAorICAg ICAgKTsKKworU0VMRUNUCisgICAganNvbmJfcHJldHR5KGUubl9kaXN0aW5jdDo6dGV4dDo6anNv bmIpIEFTIG5fZGlzdGluY3QsCisgICAgZS5kZXBlbmRlbmNpZXMsCisgICAgZS5tb3N0X2NvbW1v bl92YWxzLCBlLm1vc3RfY29tbW9uX3ZhbF9udWxscywKKyAgICBlLm1vc3RfY29tbW9uX2ZyZXFz LCBlLm1vc3RfY29tbW9uX2Jhc2VfZnJlcXMKK0ZST00gcGdfc3RhdHNfZXh0IEFTIGUKK1dIRVJF IGUuc3RhdGlzdGljc19zY2hlbWFuYW1lID0gJ3N0YXRzX2ltcG9ydCcKK0FORCBlLnN0YXRpc3Rp Y3NfbmFtZSA9ICd0ZXN0X3N0YXRfY2xvbmUnCitBTkQgZS5pbmhlcml0ZWQgPSBmYWxzZQorXGd4 CisKKy0tIHNldCBkZXBlbmRlbmNpZXMgdXNpbmcgYXQgYXR0bnVtICgxKSB0aGF0IGlzIG5vdCBp biB0aGUgc3RhdGlzdGljcyBvYmplY3QKK1NFTEVDVAorICAgIHBnX2NhdGFsb2cucGdfcmVzdG9y ZV9leHRlbmRlZF9zdGF0cygKKyAgICAgICAgJ3N0YXRpc3RpY3Nfc2NoZW1hbmFtZScsICdzdGF0 c19pbXBvcnQnLAorICAgICAgICAnc3RhdGlzdGljc19uYW1lJywgJ3Rlc3Rfc3RhdF9jbG9uZScs CisgICAgICAgICdpbmhlcml0ZWQnLCBmYWxzZSwKKyAgICAgICAgJ2RlcGVuZGVuY2llcycsICdb eyJhdHRyaWJ1dGVzIjogWzJdLCAiZGVwZW5kZW5jeSI6IDEsICJkZWdyZWUiOiAxLjAwMDAwMH1d Jzo6cGdfZGVwZW5kZW5jaWVzCisgICAgICApOworCistLSBzZXQgZGVwZW5kZW5jaWVzIHVzaW5n IGF0IGF0dG51bSB0aGF0IGlzIDAKK1NFTEVDVAorICAgIHBnX2NhdGFsb2cucGdfcmVzdG9yZV9l eHRlbmRlZF9zdGF0cygKKyAgICAgICAgJ3N0YXRpc3RpY3Nfc2NoZW1hbmFtZScsICdzdGF0c19p bXBvcnQnLAorICAgICAgICAnc3RhdGlzdGljc19uYW1lJywgJ3Rlc3Rfc3RhdF9jbG9uZScsCisg ICAgICAgICdpbmhlcml0ZWQnLCBmYWxzZSwKKyAgICAgICAgJ2RlcGVuZGVuY2llcycsICdbeyJh dHRyaWJ1dGVzIjogWzBdLCAiZGVwZW5kZW5jeSI6IC0xLCAiZGVncmVlIjogMS4wMDAwMDB9XSc6 OnBnX2RlcGVuZGVuY2llcworICAgICAgKTsKKworLS0gc2V0IGRlcGVuZGVuY2llcyB1c2luZyBh dCBhdHRudW0gdGhhdCBpcyBvdXRzaWRlIHRoZSBleHByZXNzaW9uIGJvdW5kcyhiZWxvdyAtMikK K1NFTEVDVAorICAgIHBnX2NhdGFsb2cucGdfcmVzdG9yZV9leHRlbmRlZF9zdGF0cygKKyAgICAg ICAgJ3N0YXRpc3RpY3Nfc2NoZW1hbmFtZScsICdzdGF0c19pbXBvcnQnLAorICAgICAgICAnc3Rh dGlzdGljc19uYW1lJywgJ3Rlc3Rfc3RhdF9jbG9uZScsCisgICAgICAgICdpbmhlcml0ZWQnLCBm YWxzZSwKKyAgICAgICAgJ2RlcGVuZGVuY2llcycsICdbeyJhdHRyaWJ1dGVzIjogWzJdLCAiZGVw ZW5kZW5jeSI6IC0zLCAiZGVncmVlIjogMS4wMDAwMDB9XSc6OnBnX2RlcGVuZGVuY2llcworICAg ICAgKTsKKworLS0gb2sKK1NFTEVDVAorICAgIHBnX2NhdGFsb2cucGdfcmVzdG9yZV9leHRlbmRl ZF9zdGF0cygKKyAgICAgICAgJ3N0YXRpc3RpY3Nfc2NoZW1hbmFtZScsICdzdGF0c19pbXBvcnQn LAorICAgICAgICAnc3RhdGlzdGljc19uYW1lJywgJ3Rlc3Rfc3RhdF9jbG9uZScsCisgICAgICAg ICdpbmhlcml0ZWQnLCBmYWxzZSwKKyAgICAgICAgJ2RlcGVuZGVuY2llcycsICdbeyJhdHRyaWJ1 dGVzIjogWzJdLCAiZGVwZW5kZW5jeSI6IDMsICJkZWdyZWUiOiAxLjAwMDAwMH0sCisgICAgICAg ICAgICAgICAgICAgICAgICAgIHsiYXR0cmlidXRlcyI6IFsyXSwgImRlcGVuZGVuY3kiOiAtMSwg ImRlZ3JlZSI6IDEuMDAwMDAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1 dGVzIjogWzJdLCAiZGVwZW5kZW5jeSI6IC0yLCAiZGVncmVlIjogMS4wMDAwMDB9LAorICAgICAg ICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0ZXMiOiBbM10sICJkZXBlbmRlbmN5IjogMiwg ImRlZ3JlZSI6IDEuMDAwMDAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1 dGVzIjogWzNdLCAiZGVwZW5kZW5jeSI6IC0xLCAiZGVncmVlIjogMS4wMDAwMDB9LAorICAgICAg ICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0ZXMiOiBbM10sICJkZXBlbmRlbmN5IjogLTIs ICJkZWdyZWUiOiAxLjAwMDAwMH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHsiYXR0cmli dXRlcyI6IFstMV0sICJkZXBlbmRlbmN5IjogMiwgImRlZ3JlZSI6IDAuNTAwMDAwfSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGVzIjogWy0xXSwgImRlcGVuZGVuY3kiOiAz LCAiZGVncmVlIjogMC41MDAwMDB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICB7ImF0dHJp YnV0ZXMiOiBbLTFdLCAiZGVwZW5kZW5jeSI6IC0yLCAiZGVncmVlIjogMS4wMDAwMDB9LAorICAg ICAgICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0ZXMiOiBbLTJdLCAiZGVwZW5kZW5jeSI6 IDIsICJkZWdyZWUiOiAwLjUwMDAwMH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHsiYXR0 cmlidXRlcyI6IFstMl0sICJkZXBlbmRlbmN5IjogMywgImRlZ3JlZSI6IDAuNTAwMDAwfSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGVzIjogWy0yXSwgImRlcGVuZGVuY3ki OiAtMSwgImRlZ3JlZSI6IDEuMDAwMDAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeyJh dHRyaWJ1dGVzIjogWzIsM10sICJkZXBlbmRlbmN5IjogLTEsICJkZWdyZWUiOiAxLjAwMDAwMH0s CisgICAgICAgICAgICAgICAgICAgICAgICAgIHsiYXR0cmlidXRlcyI6IFsyLDNdLCAiZGVwZW5k ZW5jeSI6IC0yLCAiZGVncmVlIjogMS4wMDAwMDB9LAorICAgICAgICAgICAgICAgICAgICAgICAg ICB7ImF0dHJpYnV0ZXMiOiBbMiwtMV0sICJkZXBlbmRlbmN5IjogMywgImRlZ3JlZSI6IDEuMDAw MDAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGVzIjogWzIsLTFdLCAi ZGVwZW5kZW5jeSI6IC0yLCAiZGVncmVlIjogMS4wMDAwMDB9LAorICAgICAgICAgICAgICAgICAg ICAgICAgICB7ImF0dHJpYnV0ZXMiOiBbMiwtMl0sICJkZXBlbmRlbmN5IjogMywgImRlZ3JlZSI6 IDEuMDAwMDAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGVzIjogWzIs LTJdLCAiZGVwZW5kZW5jeSI6IC0xLCAiZGVncmVlIjogMS4wMDAwMDB9LAorICAgICAgICAgICAg ICAgICAgICAgICAgICB7ImF0dHJpYnV0ZXMiOiBbMywtMV0sICJkZXBlbmRlbmN5IjogMiwgImRl Z3JlZSI6IDEuMDAwMDAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGVz IjogWzMsLTFdLCAiZGVwZW5kZW5jeSI6IC0yLCAiZGVncmVlIjogMS4wMDAwMDB9LAorICAgICAg ICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0ZXMiOiBbMywtMl0sICJkZXBlbmRlbmN5Ijog MiwgImRlZ3JlZSI6IDEuMDAwMDAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRy aWJ1dGVzIjogWzMsLTJdLCAiZGVwZW5kZW5jeSI6IC0xLCAiZGVncmVlIjogMS4wMDAwMDB9LAor ICAgICAgICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0ZXMiOiBbLTEsLTJdLCAiZGVwZW5k ZW5jeSI6IDIsICJkZWdyZWUiOiAwLjUwMDAwMH0sCisgICAgICAgICAgICAgICAgICAgICAgICAg IHsiYXR0cmlidXRlcyI6IFstMSwtMl0sICJkZXBlbmRlbmN5IjogMywgImRlZ3JlZSI6IDAuNTAw MDAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGVzIjogWzIsMywtMl0s ICJkZXBlbmRlbmN5IjogLTEsICJkZWdyZWUiOiAxLjAwMDAwMH0sCisgICAgICAgICAgICAgICAg ICAgICAgICAgIHsiYXR0cmlidXRlcyI6IFsyLC0xLC0yXSwgImRlcGVuZGVuY3kiOiAzLCAiZGVn cmVlIjogMS4wMDAwMDB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICB7ImF0dHJpYnV0ZXMi OiBbMywtMSwtMl0sICJkZXBlbmRlbmN5IjogMiwgImRlZ3JlZSI6IDEuMDAwMDAwfV0nOjpwZ19k ZXBlbmRlbmNpZXMKKyAgICAgICk7CisKK1NFTEVDVAorICAgIGpzb25iX3ByZXR0eShlLm5fZGlz dGluY3Q6OnRleHQ6Ompzb25iKSBBUyBuX2Rpc3RpbmN0LAorICAgIGpzb25iX3ByZXR0eShlLmRl cGVuZGVuY2llczo6dGV4dDo6anNvbmIpIEFTIGRlcGVuZGVuY2llcywKKyAgICBlLm1vc3RfY29t bW9uX3ZhbHMsIGUubW9zdF9jb21tb25fdmFsX251bGxzLAorICAgIGUubW9zdF9jb21tb25fZnJl cXMsIGUubW9zdF9jb21tb25fYmFzZV9mcmVxcworRlJPTSBwZ19zdGF0c19leHQgQVMgZQorV0hF UkUgZS5zdGF0aXN0aWNzX3NjaGVtYW5hbWUgPSAnc3RhdHNfaW1wb3J0JworQU5EIGUuc3RhdGlz dGljc19uYW1lID0gJ3Rlc3Rfc3RhdF9jbG9uZScKK0FORCBlLmluaGVyaXRlZCA9IGZhbHNlCitc Z3gKKworLS0gaWYgYW55IG9uZSBtY3YgcGFyYW0gc3BlY2lmaWVkLCBhbGwgZm91ciBtdXN0IGJl IHNwZWNpZmllZCAocGFydCAxKQorU0VMRUNUCisgICAgcGdfY2F0YWxvZy5wZ19yZXN0b3JlX2V4 dGVuZGVkX3N0YXRzKAorICAgICAgICAnc3RhdGlzdGljc19zY2hlbWFuYW1lJywgJ3N0YXRzX2lt cG9ydCcsCisgICAgICAgICdzdGF0aXN0aWNzX25hbWUnLCAndGVzdF9zdGF0X2Nsb25lJywKKyAg ICAgICAgJ2luaGVyaXRlZCcsIGZhbHNlLAorICAgICAgICAnbW9zdF9jb21tb25fdmFscycsICd7 e2ZvdXIsTlVMTCwwLE5VTEx9LHtvbmUsIigxLDEuMSxPTkUsMDEtMDEtMjAwMSxcIntcIlwieGtl eVwiXCI6IFwiXCJ4dmFsXCJcIn1cIikiLDEsMn0se3RyZSwiKDMsMy4zLFRSRSwwMy0wMy0yMDAz LCkiLC0xLDN9LHt0d28sIigyLDIuMixUV08sMDItMDItMjAwMixcIlt0cnVlLCA0LCBcIlwic2l4 XCJcIl1cIikiLDEsMn19Jzo6dGV4dFtdCisgICAgICApOworCistLSBpZiBhbnkgb25lIG1jdiBw YXJhbSBzcGVjaWZpZWQsIGFsbCBmb3VyIG11c3QgYmUgc3BlY2lmaWVkIChwYXJ0IDIpCitTRUxF Q1QKKyAgICBwZ19jYXRhbG9nLnBnX3Jlc3RvcmVfZXh0ZW5kZWRfc3RhdHMoCisgICAgICAgICdz dGF0aXN0aWNzX3NjaGVtYW5hbWUnLCAnc3RhdHNfaW1wb3J0JywKKyAgICAgICAgJ3N0YXRpc3Rp Y3NfbmFtZScsICd0ZXN0X3N0YXRfY2xvbmUnLAorICAgICAgICAnaW5oZXJpdGVkJywgZmFsc2Us CisgICAgICAgICdtb3N0X2NvbW1vbl92YWxfbnVsbHMnLCAne3tmLHQsZix0fSx7ZixmLGYsZn0s e2YsZixmLGZ9LHtmLGYsZixmfX0nOjpib29sZWFuW10KKyAgICAgICk7CisKKy0tIGlmIGFueSBv bmUgbWN2IHBhcmFtIHNwZWNpZmllZCwgYWxsIGZvdXIgbXVzdCBiZSBzcGVjaWZpZWQgKHBhcnQg MykKK1NFTEVDVAorICAgIHBnX2NhdGFsb2cucGdfcmVzdG9yZV9leHRlbmRlZF9zdGF0cygKKyAg ICAgICAgJ3N0YXRpc3RpY3Nfc2NoZW1hbmFtZScsICdzdGF0c19pbXBvcnQnLAorICAgICAgICAn c3RhdGlzdGljc19uYW1lJywgJ3Rlc3Rfc3RhdF9jbG9uZScsCisgICAgICAgICdpbmhlcml0ZWQn LCBmYWxzZSwKKyAgICAgICAgJ21vc3RfY29tbW9uX2ZyZXFzJywgJ3swLjI1LDAuMjUsMC4yNSww LjI1fSc6OmRvdWJsZSBwcmVjaXNpb25bXQorICAgICAgKTsKKworLS0gaWYgYW55IG9uZSBtY3Yg cGFyYW0gc3BlY2lmaWVkLCBhbGwgZm91ciBtdXN0IGJlIHNwZWNpZmllZCAocGFydCA0KQorU0VM RUNUCisgICAgcGdfY2F0YWxvZy5wZ19yZXN0b3JlX2V4dGVuZGVkX3N0YXRzKAorICAgICAgICAn c3RhdGlzdGljc19zY2hlbWFuYW1lJywgJ3N0YXRzX2ltcG9ydCcsCisgICAgICAgICdzdGF0aXN0 aWNzX25hbWUnLCAndGVzdF9zdGF0X2Nsb25lJywKKyAgICAgICAgJ2luaGVyaXRlZCcsIGZhbHNl LAorICAgICAgICAnbW9zdF9jb21tb25fYmFzZV9mcmVxcycsICd7MC4wMDM5MDYyNSwwLjAxNTYy NSwwLjAwMzkwNjI1LDAuMDE1NjI1fSc6OmRvdWJsZSBwcmVjaXNpb25bXQorICAgICAgKTsKKwor LS0gb2sKK1NFTEVDVAorICAgIHBnX2NhdGFsb2cucGdfcmVzdG9yZV9leHRlbmRlZF9zdGF0cygK KyAgICAgICAgJ3N0YXRpc3RpY3Nfc2NoZW1hbmFtZScsICdzdGF0c19pbXBvcnQnLAorICAgICAg ICAnc3RhdGlzdGljc19uYW1lJywgJ3Rlc3Rfc3RhdF9jbG9uZScsCisgICAgICAgICdpbmhlcml0 ZWQnLCBmYWxzZSwKKyAgICAgICAgJ21vc3RfY29tbW9uX3ZhbHMnLCAne3tmb3VyLE5VTEwsMCxO VUxMfSx7b25lLCIoMSwxLjEsT05FLDAxLTAxLTIwMDEsXCJ7XCJcInhrZXlcIlwiOiBcIlwieHZh bFwiXCJ9XCIpIiwxLDJ9LHt0cmUsIigzLDMuMyxUUkUsMDMtMDMtMjAwMywpIiwtMSwzfSx7dHdv LCIoMiwyLjIsVFdPLDAyLTAyLTIwMDIsXCJbdHJ1ZSwgNCwgXCJcInNpeFwiXCJdXCIpIiwxLDJ9 fSc6OnRleHRbXSwKKyAgICAgICAgJ21vc3RfY29tbW9uX3ZhbF9udWxscycsICd7e2YsdCxmLHR9 LHtmLGYsZixmfSx7ZixmLGYsZn0se2YsZixmLGZ9fSc6OmJvb2xlYW5bXSwKKyAgICAgICAgJ21v c3RfY29tbW9uX2ZyZXFzJywgJ3swLjI1LDAuMjUsMC4yNSwwLjI1fSc6OmRvdWJsZSBwcmVjaXNp b25bXSwKKyAgICAgICAgJ21vc3RfY29tbW9uX2Jhc2VfZnJlcXMnLCAnezAuMDAzOTA2MjUsMC4w MTU2MjUsMC4wMDM5MDYyNSwwLjAxNTYyNX0nOjpkb3VibGUgcHJlY2lzaW9uW10KKyAgICAgICk7 CisKK1NFTEVDVAorICAgIGpzb25iX3ByZXR0eShlLm5fZGlzdGluY3Q6OnRleHQ6Ompzb25iKSBB UyBuX2Rpc3RpbmN0LAorICAgIGpzb25iX3ByZXR0eShlLmRlcGVuZGVuY2llczo6dGV4dDo6anNv bmIpIEFTIGRlcGVuZGVuY2llcywKKyAgICBlLm1vc3RfY29tbW9uX3ZhbHMsIGUubW9zdF9jb21t b25fdmFsX251bGxzLAorICAgIGUubW9zdF9jb21tb25fZnJlcXMsIGUubW9zdF9jb21tb25fYmFz ZV9mcmVxcworRlJPTSBwZ19zdGF0c19leHQgQVMgZQorV0hFUkUgZS5zdGF0aXN0aWNzX3NjaGVt YW5hbWUgPSAnc3RhdHNfaW1wb3J0JworQU5EIGUuc3RhdGlzdGljc19uYW1lID0gJ3Rlc3Rfc3Rh dF9jbG9uZScKK0FORCBlLmluaGVyaXRlZCA9IGZhbHNlCitcZ3gKKworU0VMRUNUCisgICAgcGdf Y2F0YWxvZy5wZ19yZXN0b3JlX2V4dGVuZGVkX3N0YXRzKAorICAgICAgICAnc3RhdGlzdGljc19z Y2hlbWFuYW1lJywgJ3N0YXRzX2ltcG9ydCcsCisgICAgICAgICdzdGF0aXN0aWNzX25hbWUnLCAn dGVzdF9zdGF0X2Nsb25lJywKKyAgICAgICAgJ2luaGVyaXRlZCcsIGZhbHNlLAorICAgICAgICAn ZXhwcnMnLCAne3swLDQsLTAuNzUsInsxfSIsInswLjV9Iiwiey0xLDB9IiwtMC42LE5VTEwsTlVM TCxOVUxMfSx7MC4yNSw0LC0wLjUsInsyfSIsInswLjV9IixOVUxMLDEsTlVMTCxOVUxMLE5VTEx9 fSc6OnRleHRbXQorICAgICAgKTsKKworU0VMRUNUCisgICAgZS5pbmhlcml0ZWQsIGUubnVsbF9m cmFjLCBlLmF2Z193aWR0aCwgZS5uX2Rpc3RpbmN0LCBlLm1vc3RfY29tbW9uX3ZhbHMsCisgICAg ZS5tb3N0X2NvbW1vbl9mcmVxcywgZS5oaXN0b2dyYW1fYm91bmRzLCBlLmNvcnJlbGF0aW9uLAor ICAgIGUubW9zdF9jb21tb25fZWxlbXMsIGUubW9zdF9jb21tb25fZWxlbV9mcmVxcywgZS5lbGVt X2NvdW50X2hpc3RvZ3JhbQorRlJPTSBwZ19zdGF0c19leHRfZXhwcnMgQVMgZQorV0hFUkUgZS5z dGF0aXN0aWNzX3NjaGVtYW5hbWUgPSAnc3RhdHNfaW1wb3J0JworQU5EIGUuc3RhdGlzdGljc19u YW1lID0gJ3Rlc3Rfc3RhdF9jbG9uZScKK2FuZCBlLmluaGVyaXRlZCA9IGZhbHNlCitcZ3gKKwor U0VMRUNUCisgICAgcGdfY2F0YWxvZy5wZ19jbGVhcl9leHRlbmRlZF9zdGF0cygKKyAgICAgICAg c3RhdGlzdGljc19zY2hlbWFuYW1lID0+ICdzdGF0c19pbXBvcnQnLAorICAgICAgICBzdGF0aXN0 aWNzX25hbWUgPT4gJ3Rlc3Rfc3RhdF9jbG9uZScsCisgICAgICAgIGluaGVyaXRlZCA9PiBmYWxz ZSk7CisKK1NFTEVDVCBDT1VOVCgqKQorRlJPTSBwZ19zdGF0c19leHQgQVMgZQorV0hFUkUgZS5z dGF0aXN0aWNzX3NjaGVtYW5hbWUgPSAnc3RhdHNfaW1wb3J0JworQU5EIGUuc3RhdGlzdGljc19u YW1lID0gJ3Rlc3Rfc3RhdF9jbG9uZScKK0FORCBlLmluaGVyaXRlZCA9IGZhbHNlOworCitTRUxF Q1QgQ09VTlQoKikKK0ZST00gcGdfc3RhdHNfZXh0X2V4cHJzIEFTIGUKK1dIRVJFIGUuc3RhdGlz dGljc19zY2hlbWFuYW1lID0gJ3N0YXRzX2ltcG9ydCcKK0FORCBlLnN0YXRpc3RpY3NfbmFtZSA9 ICd0ZXN0X3N0YXRfY2xvbmUnCitBTkQgZS5pbmhlcml0ZWQgPSBmYWxzZTsKKworLS0KKy0tIENv cHkgc3RhdHMgZnJvbSB0ZXN0X3N0YXQgdG8gdGVzdF9zdGF0X2Nsb25lCistLQorU0VMRUNUCisg ICAgZS5zdGF0aXN0aWNzX25hbWUsCisgICAgcGdfY2F0YWxvZy5wZ19yZXN0b3JlX2V4dGVuZGVk X3N0YXRzKAorICAgICAgICAnc3RhdGlzdGljc19zY2hlbWFuYW1lJywgZS5zdGF0aXN0aWNzX3Nj aGVtYW5hbWU6OnRleHQsCisgICAgICAgICdzdGF0aXN0aWNzX25hbWUnLCAndGVzdF9zdGF0X2Ns b25lJywKKyAgICAgICAgJ2luaGVyaXRlZCcsIGUuaW5oZXJpdGVkLAorICAgICAgICAnbl9kaXN0 aW5jdCcsIGUubl9kaXN0aW5jdCwKKyAgICAgICAgJ2RlcGVuZGVuY2llcycsIGUuZGVwZW5kZW5j aWVzLAorICAgICAgICAnbW9zdF9jb21tb25fdmFscycsIGUubW9zdF9jb21tb25fdmFscywKKyAg ICAgICAgJ21vc3RfY29tbW9uX3ZhbF9udWxscycsIGUubW9zdF9jb21tb25fdmFsX251bGxzLAor ICAgICAgICAnbW9zdF9jb21tb25fZnJlcXMnLCBlLm1vc3RfY29tbW9uX2ZyZXFzLAorICAgICAg ICAnbW9zdF9jb21tb25fYmFzZV9mcmVxcycsIGUubW9zdF9jb21tb25fYmFzZV9mcmVxcywKKyAg ICAgICAgJ2V4cHJzJywgeC5leHBycworICAgICkKK0ZST00gcGdfc3RhdHNfZXh0IEFTIGUKK0NS T1NTIEpPSU4gTEFURVJBTCAoCisgICAgU0VMRUNUCisgICAgICAgIGFycmF5X2FnZygKKyAgICAg ICAgICAgIEFSUkFZW2VlLm51bGxfZnJhYzo6dGV4dCwgZWUuYXZnX3dpZHRoOjp0ZXh0LAorICAg ICAgICAgICAgICAgICAgZWUubl9kaXN0aW5jdDo6dGV4dCwgZWUubW9zdF9jb21tb25fdmFsczo6 dGV4dCwKKyAgICAgICAgICAgICAgICAgIGVlLm1vc3RfY29tbW9uX2ZyZXFzOjp0ZXh0LCBlZS5o aXN0b2dyYW1fYm91bmRzOjp0ZXh0LAorICAgICAgICAgICAgICAgICAgZWUuY29ycmVsYXRpb246 OnRleHQsIGVlLm1vc3RfY29tbW9uX2VsZW1zOjp0ZXh0LAorICAgICAgICAgICAgICAgICAgZWUu bW9zdF9jb21tb25fZWxlbV9mcmVxczo6dGV4dCwKKyAgICAgICAgICAgICAgICAgIGVlLmVsZW1f Y291bnRfaGlzdG9ncmFtOjp0ZXh0XSkKKyAgICBGUk9NIHBnX3N0YXRzX2V4dF9leHBycyBBUyBl ZQorICAgIFdIRVJFIGVlLnN0YXRpc3RpY3Nfc2NoZW1hbmFtZSA9IGUuc3RhdGlzdGljc19zY2hl bWFuYW1lCisgICAgQU5EIGVlLnN0YXRpc3RpY3NfbmFtZSA9IGUuc3RhdGlzdGljc19uYW1lCisg ICAgQU5EIGVlLmluaGVyaXRlZCA9IGUuaW5oZXJpdGVkCisgICAgKSBBUyB4KGV4cHJzKQorV0hF UkUgZS5zdGF0aXN0aWNzX3NjaGVtYW5hbWUgPSAnc3RhdHNfaW1wb3J0JworQU5EIGUuc3RhdGlz dGljc19uYW1lID0gJ3Rlc3Rfc3RhdCc7CisKK1NFTEVDVCBvLmluaGVyaXRlZCwKKyAgICAgICBv Lm5fZGlzdGluY3QsIG8uZGVwZW5kZW5jaWVzLCBvLm1vc3RfY29tbW9uX3ZhbHMsCisgICAgICAg by5tb3N0X2NvbW1vbl92YWxfbnVsbHMsIG8ubW9zdF9jb21tb25fZnJlcXMsCisgICAgICAgby5t b3N0X2NvbW1vbl9iYXNlX2ZyZXFzCitGUk9NIHBnX3N0YXRzX2V4dCBBUyBvCitXSEVSRSBvLnN0 YXRpc3RpY3Nfc2NoZW1hbmFtZSA9ICdzdGF0c19pbXBvcnQnCitBTkQgby5zdGF0aXN0aWNzX25h bWUgPSAndGVzdF9zdGF0JworRVhDRVBUCitTRUxFQ1Qgbi5pbmhlcml0ZWQsCisgICAgICAgbi5u X2Rpc3RpbmN0LCBuLmRlcGVuZGVuY2llcywgbi5tb3N0X2NvbW1vbl92YWxzLAorICAgICAgIG4u bW9zdF9jb21tb25fdmFsX251bGxzLCBuLm1vc3RfY29tbW9uX2ZyZXFzLAorICAgICAgIG4ubW9z dF9jb21tb25fYmFzZV9mcmVxcworRlJPTSBwZ19zdGF0c19leHQgQVMgbgorV0hFUkUgbi5zdGF0 aXN0aWNzX3NjaGVtYW5hbWUgPSAnc3RhdHNfaW1wb3J0JworQU5EIG4uc3RhdGlzdGljc19uYW1l ID0gJ3Rlc3Rfc3RhdF9jbG9uZSc7CisKK1NFTEVDVCBuLmluaGVyaXRlZCwKKyAgICAgICBuLm5f ZGlzdGluY3QsIG4uZGVwZW5kZW5jaWVzLCBuLm1vc3RfY29tbW9uX3ZhbHMsCisgICAgICAgbi5t b3N0X2NvbW1vbl92YWxfbnVsbHMsIG4ubW9zdF9jb21tb25fZnJlcXMsCisgICAgICAgbi5tb3N0 X2NvbW1vbl9iYXNlX2ZyZXFzCitGUk9NIHBnX3N0YXRzX2V4dCBBUyBuCitXSEVSRSBuLnN0YXRp c3RpY3Nfc2NoZW1hbmFtZSA9ICdzdGF0c19pbXBvcnQnCitBTkQgbi5zdGF0aXN0aWNzX25hbWUg PSAndGVzdF9zdGF0X2Nsb25lJworRVhDRVBUCitTRUxFQ1Qgby5pbmhlcml0ZWQsCisgICAgICAg by5uX2Rpc3RpbmN0LCBvLmRlcGVuZGVuY2llcywgby5tb3N0X2NvbW1vbl92YWxzLAorICAgICAg IG8ubW9zdF9jb21tb25fdmFsX251bGxzLCBvLm1vc3RfY29tbW9uX2ZyZXFzLAorICAgICAgIG8u bW9zdF9jb21tb25fYmFzZV9mcmVxcworRlJPTSBwZ19zdGF0c19leHQgQVMgbworV0hFUkUgby5z dGF0aXN0aWNzX3NjaGVtYW5hbWUgPSAnc3RhdHNfaW1wb3J0JworQU5EIG8uc3RhdGlzdGljc19u YW1lID0gJ3Rlc3Rfc3RhdCc7CisKK1NFTEVDVCBvLmluaGVyaXRlZCwKKyAgICAgICBvLm51bGxf ZnJhYywgby5hdmdfd2lkdGgsIG8ubl9kaXN0aW5jdCwKKyAgICAgICBvLm1vc3RfY29tbW9uX3Zh bHM6OnRleHQgQVMgbW9zdF9jb21tb25fdmFscywKKyAgICAgICBvLm1vc3RfY29tbW9uX2ZyZXFz LAorICAgICAgIG8uaGlzdG9ncmFtX2JvdW5kczo6dGV4dCBBUyBoaXN0b2dyYW1fYm91bmRzLAor ICAgICAgIG8uY29ycmVsYXRpb24sCisgICAgICAgby5tb3N0X2NvbW1vbl9lbGVtczo6dGV4dCBB UyBtb3N0X2NvbW1vbl9lbGVtcywKKyAgICAgICBvLm1vc3RfY29tbW9uX2VsZW1fZnJlcXMsIG8u ZWxlbV9jb3VudF9oaXN0b2dyYW0KK0ZST00gcGdfc3RhdHNfZXh0X2V4cHJzIEFTIG8KK1dIRVJF IG8uc3RhdGlzdGljc19zY2hlbWFuYW1lID0gJ3N0YXRzX2ltcG9ydCcKK0FORCBvLnN0YXRpc3Rp Y3NfbmFtZSA9ICd0ZXN0X3N0YXQnCitFWENFUFQKK1NFTEVDVCBuLmluaGVyaXRlZCwKKyAgICAg ICBuLm51bGxfZnJhYywgbi5hdmdfd2lkdGgsIG4ubl9kaXN0aW5jdCwKKyAgICAgICBuLm1vc3Rf Y29tbW9uX3ZhbHM6OnRleHQgQVMgbW9zdF9jb21tb25fdmFscywKKyAgICAgICBuLm1vc3RfY29t bW9uX2ZyZXFzLAorICAgICAgIG4uaGlzdG9ncmFtX2JvdW5kczo6dGV4dCBBUyBoaXN0b2dyYW1f Ym91bmRzLAorICAgICAgIG4uY29ycmVsYXRpb24sCisgICAgICAgbi5tb3N0X2NvbW1vbl9lbGVt czo6dGV4dCBBUyBtb3N0X2NvbW1vbl9lbGVtcywKKyAgICAgICBuLm1vc3RfY29tbW9uX2VsZW1f ZnJlcXMsIG4uZWxlbV9jb3VudF9oaXN0b2dyYW0KK0ZST00gcGdfc3RhdHNfZXh0X2V4cHJzIEFT IG4KK1dIRVJFIG4uc3RhdGlzdGljc19zY2hlbWFuYW1lID0gJ3N0YXRzX2ltcG9ydCcKK0FORCBu LnN0YXRpc3RpY3NfbmFtZSA9ICd0ZXN0X3N0YXRfY2xvbmUnOworCitTRUxFQ1Qgbi5pbmhlcml0 ZWQsCisgICAgICAgbi5udWxsX2ZyYWMsIG4uYXZnX3dpZHRoLCBuLm5fZGlzdGluY3QsCisgICAg ICAgbi5tb3N0X2NvbW1vbl92YWxzOjp0ZXh0IEFTIG1vc3RfY29tbW9uX3ZhbHMsCisgICAgICAg bi5tb3N0X2NvbW1vbl9mcmVxcywKKyAgICAgICBuLmhpc3RvZ3JhbV9ib3VuZHM6OnRleHQgQVMg aGlzdG9ncmFtX2JvdW5kcywKKyAgICAgICBuLmNvcnJlbGF0aW9uLAorICAgICAgIG4ubW9zdF9j b21tb25fZWxlbXM6OnRleHQgQVMgbW9zdF9jb21tb25fZWxlbXMsCisgICAgICAgbi5tb3N0X2Nv bW1vbl9lbGVtX2ZyZXFzLCBuLmVsZW1fY291bnRfaGlzdG9ncmFtCitGUk9NIHBnX3N0YXRzX2V4 dF9leHBycyBBUyBuCitXSEVSRSBuLnN0YXRpc3RpY3Nfc2NoZW1hbmFtZSA9ICdzdGF0c19pbXBv cnQnCitBTkQgbi5zdGF0aXN0aWNzX25hbWUgPSAndGVzdF9zdGF0X2Nsb25lJworRVhDRVBUCitT RUxFQ1Qgby5pbmhlcml0ZWQsCisgICAgICAgby5udWxsX2ZyYWMsIG8uYXZnX3dpZHRoLCBvLm5f ZGlzdGluY3QsCisgICAgICAgby5tb3N0X2NvbW1vbl92YWxzOjp0ZXh0IEFTIG1vc3RfY29tbW9u X3ZhbHMsCisgICAgICAgby5tb3N0X2NvbW1vbl9mcmVxcywKKyAgICAgICBvLmhpc3RvZ3JhbV9i b3VuZHM6OnRleHQgQVMgaGlzdG9ncmFtX2JvdW5kcywKKyAgICAgICBvLmNvcnJlbGF0aW9uLAor ICAgICAgIG8ubW9zdF9jb21tb25fZWxlbXM6OnRleHQgQVMgbW9zdF9jb21tb25fZWxlbXMsCisg ICAgICAgby5tb3N0X2NvbW1vbl9lbGVtX2ZyZXFzLCBvLmVsZW1fY291bnRfaGlzdG9ncmFtCitG Uk9NIHBnX3N0YXRzX2V4dF9leHBycyBBUyBvCitXSEVSRSBvLnN0YXRpc3RpY3Nfc2NoZW1hbmFt ZSA9ICdzdGF0c19pbXBvcnQnCitBTkQgby5zdGF0aXN0aWNzX25hbWUgPSAndGVzdF9zdGF0JzsK KwogRFJPUCBTQ0hFTUEgc3RhdHNfaW1wb3J0IENBU0NBREU7CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvZnVuYy9mdW5jLWFkbWluLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWFkbWlu LnNnbWwKaW5kZXggMWI0NjViYzhiYTcuLjU3NGQ0YTM1YTY0IDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvZnVuYy9mdW5jLWFkbWluLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy1h ZG1pbi5zZ21sCkBAIC0yMTY3LDYgKzIxNjcsMTA0IEBAIFNFTEVDVCBwZ19yZXN0b3JlX2F0dHJp YnV0ZV9zdGF0cygKICAgICAgICAgPC9wYXJhPgogICAgICAgIDwvZW50cnk+CiAgICAgICA8L3Jv dz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAg IDxwcmltYXJ5PnBnX3Jlc3RvcmVfZXh0ZW5kZWRfc3RhdHM8L3ByaW1hcnk+CisgICAgICAgIDwv aW5kZXh0ZXJtPgorICAgICAgICA8ZnVuY3Rpb24+cGdfcmVzdG9yZV9leHRlbmRlZF9zdGF0czwv ZnVuY3Rpb24+ICgKKyAgICAgICAgPGxpdGVyYWw+VkFSSUFESUM8L2xpdGVyYWw+IDxwYXJhbWV0 ZXI+a3dhcmdzPC9wYXJhbWV0ZXI+IDx0eXBlPiJhbnkiPC90eXBlPiApCisgICAgICAgIDxyZXR1 cm52YWx1ZT5ib29sZWFuPC9yZXR1cm52YWx1ZT4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8 cGFyYT4KKyAgICAgICAgIENyZWF0ZXMgb3IgdXBkYXRlcyBzdGF0aXN0aWNzIGZvciBzdGF0aXN0 aWNzIG9iamVjdHMuICBPcmRpbmFyaWx5LAorICAgICAgICAgdGhlc2Ugc3RhdGlzdGljcyBhcmUg Y29sbGVjdGVkIGF1dG9tYXRpY2FsbHkgb3IgdXBkYXRlZCBhcyBhIHBhcnQgb2YKKyAgICAgICAg IDx4cmVmIGxpbmtlbmQ9InNxbC12YWN1dW0iLz4gb3IgPHhyZWYgbGlua2VuZD0ic3FsLWFuYWx5 emUiLz4sIHNvCisgICAgICAgICBpdCdzIG5vdCBuZWNlc3NhcnkgdG8gY2FsbCB0aGlzIGZ1bmN0 aW9uLiAgSG93ZXZlciwgaXQgaXMgdXNlZnVsCisgICAgICAgICBhZnRlciBhIHJlc3RvcmUgdG8g ZW5hYmxlIHRoZSBvcHRpbWl6ZXIgdG8gY2hvb3NlIGJldHRlciBwbGFucyBpZgorICAgICAgICAg PGNvbW1hbmQ+QU5BTFlaRTwvY29tbWFuZD4gaGFzIG5vdCBiZWVuIHJ1biB5ZXQuCisgICAgICAg IDwvcGFyYT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaGUgdHJhY2tlZCBzdGF0aXN0aWNz IG1heSBjaGFuZ2UgZnJvbSB2ZXJzaW9uIHRvIHZlcnNpb24sIHNvCisgICAgICAgICBhcmd1bWVu dHMgYXJlIHBhc3NlZCBhcyBwYWlycyBvZiA8cmVwbGFjZWFibGU+YXJnbmFtZTwvcmVwbGFjZWFi bGU+CisgICAgICAgICBhbmQgPHJlcGxhY2VhYmxlPmFyZ3ZhbHVlPC9yZXBsYWNlYWJsZT4gaW4g dGhlIGZvcm06Cis8cHJvZ3JhbWxpc3Rpbmc+CisgU0VMRUNUIHBnX3Jlc3RvcmVfZXh0ZW5kZWRf c3RhdHMoCisgICAgJzxyZXBsYWNlYWJsZT5hcmcxbmFtZTwvcmVwbGFjZWFibGU+JywgJzxyZXBs YWNlYWJsZT5hcmcxdmFsdWU8L3JlcGxhY2VhYmxlPic6OjxyZXBsYWNlYWJsZT5hcmcxdHlwZTwv cmVwbGFjZWFibGU+LAorICAgICc8cmVwbGFjZWFibGU+YXJnMm5hbWU8L3JlcGxhY2VhYmxlPics ICc8cmVwbGFjZWFibGU+YXJnMnZhbHVlPC9yZXBsYWNlYWJsZT4nOjo8cmVwbGFjZWFibGU+YXJn MnR5cGU8L3JlcGxhY2VhYmxlPiwKKyAgICAnPHJlcGxhY2VhYmxlPmFyZzNuYW1lPC9yZXBsYWNl YWJsZT4nLCAnPHJlcGxhY2VhYmxlPmFyZzN2YWx1ZTwvcmVwbGFjZWFibGU+Jzo6PHJlcGxhY2Vh YmxlPmFyZzN0eXBlPC9yZXBsYWNlYWJsZT4pOworPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgICAg PC9wYXJhPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIEZvciBleGFtcGxlLCB0byBzZXQgdGhl IDxzdHJ1Y3RmaWVsZD5uX2Rpc3RpbmN0PC9zdHJ1Y3RmaWVsZD4sCisgICAgICAgICA8c3RydWN0 ZmllbGQ+ZGVwZW5kZW5jaWVzPC9zdHJ1Y3RmaWVsZD4sIGFuZCA8c3RydWN0ZmllbGQ+ZXhwcnM8 L3N0cnVjdGZpZWxkPgorICAgICAgICAgdmFsdWVzIGZvciB0aGUgc3RhdGlzdGljcyBvYmplY3Qg PHN0cnVjdG5hbWU+bXlzY2hlbWEubXlzdGF0c29iajwvc3RydWN0bmFtZT46Cis8cHJvZ3JhbWxp c3Rpbmc+CisgU0VMRUNUIHBnX3Jlc3RvcmVfZXh0ZW5kZWRfc3RhdHMoCisgICAgJ3N0YXRpc3Rp Y3Nfc2NoZW1hbmFtZScsICdteXNjaGVtYSc6Om5hbWUsCisgICAgJ3N0YXRpc3RpY3NfbmFtZScs ICAgICAgICdteXRhYmxlJzo6bmFtZSwKKyAgICAnaW5oZXJpdGVkJywgICAgICAgICAgICAgZmFs c2UsCisgICAgJ25fZGlzdGluY3QnLCAgICAgICAgICAgICd7IjIsIDMiOiA0LCAiMiwgLTEiOiA0 LCAiMiwgLTIiOiA0LCAiMywgLTEiOiA0LCAiMywgLTIiOiA0fSc6OnBnX25kaXN0aW5jdCwKKyAg ICAnZGVwZW5kZW5jaWVzJywgICAgICAgICAgJ3siMiA9PiAxIjogMS4wMDAwMDAsICIyID0+IC0x IjogMS4wMDAwMDAsICIyID0+IC0yIjogMS4wMDAwMDB9Jzo6cGdfZGVwZW5kZW5jaWVzCisgICAg J2V4cHJzJywgICAgICAgICAgICAgICAgICd7ezAsNCwtMC43NSwiezF9IiwiezAuNX0iLCJ7LTEs MH0iLC0wLjYsTlVMTCxOVUxMLE5VTEx9LHswLjI1LDQsLTAuNSwiezJ9IiwiezAuNX0iLE5VTEws MSxOVUxMLE5VTEwsTlVMTH19Jzo6dGV4dFtdKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgICAg IDwvcGFyYT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaGUgcmVxdWlyZWQgYXJndW1lbnRz IGFyZSA8bGl0ZXJhbD5zdGF0aXN0aWNzX3NjaGVtYW5hbWU8L2xpdGVyYWw+IHdpdGggYSB2YWx1 ZQorICAgICAgICAgb2YgdHlwZSA8dHlwZT5uYW1lPC90eXBlPiwgd2hpY2ggc3BlY2lmaWVzIHRo ZSBzdGF0aXN0aWNzIG9iamVjdCdzIHNjaGVtYTsKKyAgICAgICAgIDxsaXRlcmFsPnN0YXRpc3Rp Y3NfbmFtZTwvbGl0ZXJhbD4gd2l0aCBhIHZhbHVlIG9mIHR5cGUgPHR5cGU+bmFtZTwvdHlwZT4s IHdoaWNoIHNwZWNpZmllcworICAgICAgICAgdGhlIG5hbWUgb2YgdGhlIHN0YXRpc3RpY3Mgb2Jq ZWN0OyBhbmQgPGxpdGVyYWw+aW5oZXJpdGVkPC9saXRlcmFsPiwgd2hpY2gKKyAgICAgICAgIHNw ZWNpZmllcyB3aGV0aGVyIHRoZSBzdGF0aXN0aWNzIGluY2x1ZGUgdmFsdWVzIGZyb20gY2hpbGQg dGFibGVzLgorICAgICAgICAgT3RoZXIgYXJndW1lbnRzIGFyZSB0aGUgbmFtZXMgYW5kIHZhbHVl cyBvZiBzdGF0aXN0aWNzIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgIHRvIGNvbHVtbnMgaW4gPGxp bmsgbGlua2VuZD0idmlldy1wZy1zdGF0cy1leHQiPjxzdHJ1Y3RuYW1lPnBnX3N0YXRzX2V4dDwv c3RydWN0bmFtZT4KKyAgICAgICAgIDwvbGluaz4uIFRvIGFjY2VwdCBzdGF0aXN0aWNzIGZvciBh bnkgZXhwcmVzc2lvbnMgaW4gdGhlIGV4dGVuZGVkIHN0YXRpc3RpY3Mgb2JqZWN0LCB0aGUKKyAg ICAgICAgIHBhcmFtZXRlciA8bGl0ZXJhbD5leHByczwvbGl0ZXJhbD4gd2l0aCBhIHR5cGUgPHR5 cGU+dGV4dFtdPC90eXBlPiBpcyBhdmFpbGFibGUsIHRoZSBhcnJheQorICAgICAgICAgbXVzdCBi ZSB0d28gZGltZW5zaW9uYWwgd2l0aCBhbiBvdXRlciBhcnJheSBpbiBsZW5ndGggZXF1YWwgdG8g dGhlIG51bWJlciBvZiBleHByZXNzaW9ucyBpbgorICAgICAgICAgdGhlIG9iamVjdCwgYW5kIHRo ZSBpbm5lciBhcnJheSBlbGVtZW50cyBmb3IgZWFjaCBvZiB0aGUgc3RhdGlzdGljYWwgY29sdW1u cyBpbiA8bGluaworICAgICAgICAgbGlua2VuZD0idmlldy1wZy1zdGF0cy1leHQtZXhwcnMiPjxz dHJ1Y3RuYW1lPnBnX3N0YXRzX2V4dF9leHByczwvc3RydWN0bmFtZT48L2xpbms+LCBzb21lCisg ICAgICAgICBvZiB3aGljaCBhcmUgdGhlbXNlbHZlcyBhcnJheXMuCisgICAgICAgIDwvcGFyYT4K KyAgICAgICAgPHBhcmE+CisgICAgICAgICBBZGRpdGlvbmFsbHksIHRoaXMgZnVuY3Rpb24gYWNj ZXB0cyBhcmd1bWVudCBuYW1lCisgICAgICAgICA8bGl0ZXJhbD52ZXJzaW9uPC9saXRlcmFsPiBv ZiB0eXBlIDx0eXBlPmludGVnZXI8L3R5cGU+LCB3aGljaAorICAgICAgICAgc3BlY2lmaWVzIHRo ZSBzZXJ2ZXIgdmVyc2lvbiBmcm9tIHdoaWNoIHRoZSBzdGF0aXN0aWNzIG9yaWdpbmF0ZWQuCisg ICAgICAgICBUaGlzIGlzIGFudGljaXBhdGVkIHRvIGJlIGhlbHBmdWwgaW4gcG9ydGluZyBzdGF0 aXN0aWNzIGZyb20gb2xkZXIKKyAgICAgICAgIHZlcnNpb25zIG9mIDxwcm9kdWN0bmFtZT5Qb3N0 Z3JlU1FMPC9wcm9kdWN0bmFtZT4uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPHBhcmE+Cisg ICAgICAgICBNaW5vciBlcnJvcnMgYXJlIHJlcG9ydGVkIGFzIGEgPGxpdGVyYWw+V0FSTklORzwv bGl0ZXJhbD4gYW5kCisgICAgICAgICBpZ25vcmVkLCBhbmQgcmVtYWluaW5nIHN0YXRpc3RpY3Mg d2lsbCBzdGlsbCBiZSByZXN0b3JlZC4gSWYgYWxsCisgICAgICAgICBzcGVjaWZpZWQgc3RhdGlz dGljcyBhcmUgc3VjY2Vzc2Z1bGx5IHJlc3RvcmVkLCByZXR1cm5zCisgICAgICAgICA8bGl0ZXJh bD50cnVlPC9saXRlcmFsPiwgb3RoZXJ3aXNlIDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPi4KKyAg ICAgICAgPC9wYXJhPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBjYWxsZXIgbXVzdCBo YXZlIHRoZSA8bGl0ZXJhbD5NQUlOVEFJTjwvbGl0ZXJhbD4gcHJpdmlsZWdlIG9uIHRoZQorICAg ICAgICAgdGFibGUgb3IgYmUgdGhlIG93bmVyIG9mIHRoZSBkYXRhYmFzZS4KKyAgICAgICAgPC9w YXJhPgorICAgICAgIDwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAg PGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPgorICAgICAgICA8cGFyYSByb2xlPSJmdW5j X3NpZ25hdHVyZSI+CisgICAgICAgICA8aW5kZXh0ZXJtPgorICAgICAgICAgIDxwcmltYXJ5PnBn X2NsZWFyX2V4dGVuZGVkX3N0YXRzPC9wcmltYXJ5PgorICAgICAgICAgPC9pbmRleHRlcm0+Cisg ICAgICAgICA8ZnVuY3Rpb24+cGdfY2xlYXJfZXh0ZW5kZWRfc3RhdHM8L2Z1bmN0aW9uPiAoCisg ICAgICAgICA8cGFyYW1ldGVyPnN0YXRpc3RpY3Nfc2NoZW1hbmFtZTwvcGFyYW1ldGVyPiA8dHlw ZT5uYW1lPC90eXBlPiwKKyAgICAgICAgIDxwYXJhbWV0ZXI+c3RhdGlzdGljc19uYW1lPC9wYXJh bWV0ZXI+IDx0eXBlPm5hbWU8L3R5cGU+LAorICAgICAgICAgPHBhcmFtZXRlcj5pbmhlcml0ZWQ8 L3BhcmFtZXRlcj4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4gKQorICAgICAgICAgPHJldHVybnZhbHVl PnZvaWQ8L3JldHVybnZhbHVlPgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDxwYXJhPgorICAg ICAgICAgQ2xlYXJzIHN0YXRpc3RpY3MgZm9yIHRoZSBnaXZlbiBzdGF0aXN0aWNzIG9iamVjdCwg YXMKKyAgICAgICAgIHRob3VnaCB0aGUgb2JqZWN0IHdhcyBuZXdseSBjcmVhdGVkLgorICAgICAg ICA8L3BhcmE+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhlIGNhbGxlciBtdXN0IGhhdmUg dGhlIDxsaXRlcmFsPk1BSU5UQUlOPC9saXRlcmFsPiBwcml2aWxlZ2Ugb24KKyAgICAgICAgIHRo ZSB0YWJsZSBvciBiZSB0aGUgb3duZXIgb2YgdGhlIGRhdGFiYXNlLgorICAgICAgICA8L3BhcmE+ CisgICAgICAgPC9lbnRyeT4KKyAgICAgIDwvcm93PgogICAgICA8L3Rib2R5PgogICAgIDwvdGdy b3VwPgogICAgPC90YWJsZT4KLS0gCjIuNTEuMQoK --0000000000009429ff06440ec5f4 Content-Type: text/x-patch; charset="US-ASCII"; name="v16-0005-Include-Extended-Statistics-in-pg_dump.patch" Content-Disposition: attachment; filename="v16-0005-Include-Extended-Statistics-in-pg_dump.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mi81kc5o4 RnJvbSBkZjY5NDI0ZjhkZTcxZTdjNzBiNmJlYTIyODdjMzljNjUyYTM4NjZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDb3JleSBIdWlua2VyIDxjb3JleS5odWlua2VyQGdtYWlsLmNv bT4KRGF0ZTogV2VkLCA1IE5vdiAyMDI1IDAxOjEzOjA0IC0wNTAwClN1YmplY3Q6IFtQQVRDSCB2 MTYgNS81XSBJbmNsdWRlIEV4dGVuZGVkIFN0YXRpc3RpY3MgaW4gcGdfZHVtcC4KCkluY29ycG9y YXRlIHRoZSBuZXcgcGdfcmVzdG9yZV9leHRlbmRlZF9zdGF0cygpIGZ1bmN0aW9uIGludG8gcGdf ZHVtcC4KVGhpcyBkZXRlY3RzIHRoZSBleGlzdGVuY2Ugb2YgZXh0ZW5kZWQgc3RhdGlzdGljcyBz dGF0aXN0aWNzIChpLmUuCnBnX3N0YXRpc3RpY19leHRfZGF0YSByb3dzKS4KClRoaXMgaGFuZGxl cyBtYW55IG9mIHRoZSBjaGFuZ2VzIHRoYXQgaGF2ZSBoYXBwZW5lZCB0byBleHRlbmRlZApzdGF0 aXN0aWMgc3RhdGlzdGljcyBvdmVyIHRoZSB2YXJpb3VzIHZlcnNpb25zLCBpbmNsdWRpbmc6Cgoq IEZvcm1hdCBjaGFuZ2UgZm9yIHBnX25kaXN0aW5jdCBhbmQgcGdfZGVwZW5kZW5jaWVzIGluIGN1 cnJlbnQKICBkZXZlbG9wbWVudCB2ZXJzaW9uLiBFYXJsaWVyIHZlcnNpb25zIGhhdmUgdGhlIGZv cm1hdCB0cmFuc2xhdGVkIHZpYQogIHRoZSBwZ19kdW1wIFNRTCBzdGF0ZW1lbnQuCgoqIEluaGVy aXRlZCBleHRlbmRlZCBzdGF0aXN0aWNzIHdlcmUgaW50cm9kdWNlZCBpbiB2MTUuCgoqIEV4cHJl c3Npb25zIHdlcmUgaW50cm9kdWNlZCB0byBleHRlbmRlZCBzdGF0aXN0aWNzIGluIHYxNC4KCiog TUNWIGV4dGVuZGVkIHN0YXRpc3RpY3Mgd2VyZSBpbnRyb2R1Y2VkIGluIHYxMy4KCiogcGdfc3Rh dGlzdGljX2V4dF9kYXRhIGFuZCBwZ19zdGF0c19leHQgaW50cm9kdWNlZCBpbiB2MTIsIHByaW9y IHRvCiAgdGhhdCBuZHN0aW5jdCBhbmQgZGVwZGVuZGVuY2llcyBkYXRhICh0aGUgb25seSBraW5k IG9mIHN0YXRzIHRoYXQKICBleGlzdGVkIHdlcmUgZGlyZWN0bHkgb24gcGdfc3RhdGlzdGljX2V4 dC4KCiogRXh0ZW5kZWQgU3RhdGlzdGljcyB3ZXJlIGludHJvZHVjZWQgaW4gdjEwLCBzbyB0aGVy ZSBpcyBubyBzdXBwb3J0IGZvcgogIHByaW9yIHZlcnNpb25zIG5lY2Vzc2FyeS4KLS0tCiBzcmMv YmluL3BnX2R1bXAvcGdfYmFja3VwLmggICAgICAgICAgfCAgIDEgKwogc3JjL2Jpbi9wZ19kdW1w L3BnX2JhY2t1cF9hcmNoaXZlci5jIHwgICAzICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5j ICAgICAgICAgICAgfCAyNTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvYmluL3Bn X2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgfCAgMjggKysrCiA0IGZpbGVzIGNoYW5nZWQsIDI4 MyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19k dW1wL3BnX2JhY2t1cC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCmluZGV4IGQ5MDQx ZGFkNzIwLi5kZjcwOGU0Y2VkNiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1 cC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaApAQCAtNjgsNiArNjgsNyBAQCBl bnVtIF9kdW1wUHJlcGFyZWRRdWVyaWVzCiAJUFJFUFFVRVJZX0RVTVBDT01QT1NJVEVUWVBFLAog CVBSRVBRVUVSWV9EVU1QRE9NQUlOLAogCVBSRVBRVUVSWV9EVU1QRU5VTVRZUEUsCisJUFJFUFFV RVJZX0RVTVBFWFRTVEFUU1NUQVRTLAogCVBSRVBRVUVSWV9EVU1QRlVOQywKIAlQUkVQUVVFUllf RFVNUE9QUiwKIAlQUkVQUVVFUllfRFVNUFJBTkdFVFlQRSwKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBf YXJjaGl2ZXIuYwppbmRleCBjODRiMDE3ZjIxYi4uYWI5Y2I3NWE4NmYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYworKysgYi9zcmMvYmluL3BnX2R1bXAv cGdfYmFja3VwX2FyY2hpdmVyLmMKQEAgLTMwMDgsNyArMzAwOCw4IEBAIF90b2NFbnRyeVJlcXVp cmVkKFRvY0VudHJ5ICp0ZSwgdGVTZWN0aW9uIGN1clNlY3Rpb24sIEFyY2hpdmVIYW5kbGUgKkFI KQogCQlzdHJjbXAodGUtPmRlc2MsICJTRUFSQ0hQQVRIIikgPT0gMCkKIAkJcmV0dXJuIFJFUV9T UEVDSUFMOwogCi0JaWYgKHN0cmNtcCh0ZS0+ZGVzYywgIlNUQVRJU1RJQ1MgREFUQSIpID09IDAp CisJaWYgKChzdHJjbXAodGUtPmRlc2MsICJTVEFUSVNUSUNTIERBVEEiKSA9PSAwKSB8fAorCQko c3RyY21wKHRlLT5kZXNjLCAiRVhURU5ERUQgU1RBVElTVElDUyBEQVRBIikgPT0gMCkpCiAJewog CQlpZiAoIXJvcHQtPmR1bXBTdGF0aXN0aWNzKQogCQkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRl eCBhMDA5MThiYWNiNC4uOGM1ODUwZjllOWIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtMzI0LDYgKzMyNCw3 IEBAIHN0YXRpYyB2b2lkIGR1bXBTZXF1ZW5jZURhdGEoQXJjaGl2ZSAqZm91dCwgY29uc3QgVGFi bGVEYXRhSW5mbyAqdGRpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBJbmRleChBcmNoaXZlICpmb3V0 LCBjb25zdCBJbmR4SW5mbyAqaW5keGluZm8pOwogc3RhdGljIHZvaWQgZHVtcEluZGV4QXR0YWNo KEFyY2hpdmUgKmZvdXQsIGNvbnN0IEluZGV4QXR0YWNoSW5mbyAqYXR0YWNoaW5mbyk7CiBzdGF0 aWMgdm9pZCBkdW1wU3RhdGlzdGljc0V4dChBcmNoaXZlICpmb3V0LCBjb25zdCBTdGF0c0V4dElu Zm8gKnN0YXRzZXh0aW5mbyk7CitzdGF0aWMgdm9pZCBkdW1wU3RhdGlzdGljc0V4dFN0YXRzKEFy Y2hpdmUgKmZvdXQsIGNvbnN0IFN0YXRzRXh0SW5mbyAqc3RhdHNleHRpbmZvKTsKIHN0YXRpYyB2 b2lkIGR1bXBDb25zdHJhaW50KEFyY2hpdmUgKmZvdXQsIGNvbnN0IENvbnN0cmFpbnRJbmZvICpj b25pbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBUYWJsZUNvbnN0cmFpbnRDb21tZW50KEFyY2hpdmUg KmZvdXQsIGNvbnN0IENvbnN0cmFpbnRJbmZvICpjb25pbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBU U1BhcnNlcihBcmNoaXZlICpmb3V0LCBjb25zdCBUU1BhcnNlckluZm8gKnByc2luZm8pOwpAQCAt ODI1OCw2ICs4MjU5LDkgQEAgZ2V0RXh0ZW5kZWRTdGF0aXN0aWNzKEFyY2hpdmUgKmZvdXQpCiAK IAkJLyogRGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBkdW1wIGl0ICovCiAJCXNlbGVjdER1bXBh YmxlU3RhdGlzdGljc09iamVjdCgmKHN0YXRzZXh0aW5mb1tpXSksIGZvdXQpOworCisJCWlmIChm b3V0LT5kb3B0LT5kdW1wU3RhdGlzdGljcykKKwkJCXN0YXRzZXh0aW5mb1tpXS5kb2JqLmNvbXBv bmVudHMgfD0gRFVNUF9DT01QT05FTlRfU1RBVElTVElDUzsKIAl9CiAKIAlQUWNsZWFyKHJlcyk7 CkBAIC0xMTcxMiw2ICsxMTcxNiw3IEBAIGR1bXBEdW1wYWJsZU9iamVjdChBcmNoaXZlICpmb3V0 LCBEdW1wYWJsZU9iamVjdCAqZG9iaikKIAkJCWJyZWFrOwogCQljYXNlIERPX1NUQVRTRVhUOgog CQkJZHVtcFN0YXRpc3RpY3NFeHQoZm91dCwgKGNvbnN0IFN0YXRzRXh0SW5mbyAqKSBkb2JqKTsK KwkJCWR1bXBTdGF0aXN0aWNzRXh0U3RhdHMoZm91dCwgKGNvbnN0IFN0YXRzRXh0SW5mbyAqKSBk b2JqKTsKIAkJCWJyZWFrOwogCQljYXNlIERPX1JFRlJFU0hfTUFUVklFVzoKIAkJCXJlZnJlc2hN YXRWaWV3RGF0YShmb3V0LCAoY29uc3QgVGFibGVEYXRhSW5mbyAqKSBkb2JqKTsKQEAgLTE4NTE0 LDYgKzE4NTE5LDI1MyBAQCBkdW1wU3RhdGlzdGljc0V4dChBcmNoaXZlICpmb3V0LCBjb25zdCBT dGF0c0V4dEluZm8gKnN0YXRzZXh0aW5mbykKIAlmcmVlKHFzdGF0c2V4dG5hbWUpOwogfQogCisv KgorICogZHVtcFN0YXRpc3RpY3NFeHRTdGF0cworICoJICB3cml0ZSBvdXQgdG8gZm91dCB0aGUg c3RhdHMgZm9yIGFuIGV4dGVuZGVkIHN0YXRpc3RpY3Mgb2JqZWN0CisgKi8KK3N0YXRpYyB2b2lk CitkdW1wU3RhdGlzdGljc0V4dFN0YXRzKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN0YXRzRXh0SW5m byAqc3RhdHNleHRpbmZvKQoreworCUR1bXBPcHRpb25zICpkb3B0ID0gZm91dC0+ZG9wdDsKKwlQ UUV4cEJ1ZmZlciBxdWVyeTsKKwlQR3Jlc3VsdCAgICpyZXM7CisJaW50CQkJbnN0YXRzOworCisJ LyogRG8gbm90aGluZyBpZiBub3QgZHVtcGluZyBzdGF0aXN0aWNzICovCisJaWYgKCFkb3B0LT5k dW1wU3RhdGlzdGljcykKKwkJcmV0dXJuOworCisJaWYgKCFmb3V0LT5pc19wcmVwYXJlZFtQUkVQ UVVFUllfRFVNUEVYVFNUQVRTU1RBVFNdKQorCXsKKwkJUFFFeHBCdWZmZXIgcHEgPSBjcmVhdGVQ UUV4cEJ1ZmZlcigpOworCisJCS8qCisJCSAqIFNldCB1cCBxdWVyeSBmb3IgY29uc3RyYWludC1z cGVjaWZpYyBkZXRhaWxzLgorCQkgKgorCQkgKiAxOSs6IHF1ZXJ5IHBnX3N0YXRzX2V4dCBhbmQg cGdfc3RhdHNfZXh0X2V4cHJzIGFzLWlzIDE1LTE4OiBxdWVyeQorCQkgKiBwZ19zdGF0c19leHQg dHJhbnNsYXRpbmcgdGhlIG5kaXN0aW5jdCBhbmQgZGVwZGVuZGVuY2llcywgMTQ6CisJCSAqIGlu aGVyaXRlZCBpcyBhbHdheXMgTlVMTCAxMi0xMzogbm8gcGdfc3RhdHNfZXh0X2V4cHJzIDEwLTEx OiBubworCQkgKiBwZ19zdGF0c19leHQsIGpvaW4gcGdfc3RhdGlzdGljX2V4dCBhbmQgcGdfbmFt ZXNwYWNlCisJCSAqLworCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHBxLAorCQkJCQkJCSAiUFJF UEFSRSBnZXRFeHRTdGF0c1N0YXRzKHBnX2NhdGFsb2cubmFtZSwgcGdfY2F0YWxvZy5uYW1lKSBB U1xuIgorCQkJCQkJCSAiU0VMRUNUICIpOworCisJCS8qCisJCSAqIFZlcnNpb25zIDE1KyBoYXZl IGluaGVyaXRlZCBzdGF0cy4KKwkJICoKKwkJICogQ3JlYXRlIHRoaXMgY29sdW1uIGluIGFsbCB2 ZXJzaW9uIGJlY2F1c2Ugd2UgbmVlZCB0byBvcmRlciBieSBpdCBsYXRlci4KKwkJICovCisJCWlm IChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE1MDAwMCkKKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KHBxLCAiZS5pbmhlcml0ZWQsICIpOworCQllbHNlCisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihw cSwgImZhbHNlIEFTIGluaGVyaXRlZCwgIik7CisKKwkJLyoKKwkJICogVmVyc2lvbnMgPCAxOSB1 c2UgdGhlIG9sZCBuZGlzdGludGluY3QgYW5kIGRlcGRlbmRlbmNpZXMgZm9ybWF0cworCQkgKgor CQkgKiBUaGVzZSB0cmFuc2Zvcm1hdGlvbnMgbWF5IGxvb2sgc2NhcnksIGJ1dCBhbGwgd2UncmUg ZG9pbmcgaXMgdHJhbnNsYXRpbmcKKwkJICoKKwkJICogeyIzLCA0IjogMTEsICIzLCA2IjogMTEs ICI0LCA2IjogMTEsICIzLCA0LCA2IjogMTF9CisJCSAqCisJCSAqIHRvCisJCSAqCisJCSAqIFt7 Im5kaXN0aW5jdCI6IDExLCAiYXR0cmlidXRlcyI6IFszLDRdfSwKKwkJICogIHsibmRpc3RpbmN0 IjogMTEsICJhdHRyaWJ1dGVzIjogWzMsNl19LAorCQkgKiAgeyJuZGlzdGluY3QiOiAxMSwgImF0 dHJpYnV0ZXMiOiBbNCw2XX0sCisJCSAqICB7Im5kaXN0aW5jdCI6IDExLCAiYXR0cmlidXRlcyI6 IFszLDQsNl19XQorCQkgKgorCQkgKiBhbmQKKwkJICogeyIzID0+IDQiOiAxLjAwMDAwMCwgIjMg PT4gNiI6IDEuMDAwMDAwLCAiNCA9PiA2IjogMS4wMDAwMDAsCisJCSAqICAiMywgNCA9PiA2Ijog MS4wMDAwMDAsICIzLCA2ID0+IDQiOiAxLjAwMDAwMH0KKwkJICoKKwkJICogIHRvCisJCSAqCisJ CSAqIFt7ImRlZ3JlZSI6IDEuMDAwMDAwLCAiYXR0cmlidXRlcyI6IFszXSwgImRlcGVuZGVuY3ki OiA0fSwKKwkJICogIHsiZGVncmVlIjogMS4wMDAwMDAsICJhdHRyaWJ1dGVzIjogWzNdLCAiZGVw ZW5kZW5jeSI6IDZ9LAorCQkgKiAgeyJkZWdyZWUiOiAxLjAwMDAwMCwgImF0dHJpYnV0ZXMiOiBb NF0sICJkZXBlbmRlbmN5IjogNn0sCisJCSAqICB7ImRlZ3JlZSI6IDEuMDAwMDAwLCAiYXR0cmli dXRlcyI6IFszLDRdLCAiZGVwZW5kZW5jeSI6IDZ9LAorCQkgKiAgeyJkZWdyZWUiOiAxLjAwMDAw MCwgImF0dHJpYnV0ZXMiOiBbMyw2XSwgImRlcGVuZGVuY3kiOiA0fV0KKwkJICovCisJCWlmIChm b3V0LT5yZW1vdGVWZXJzaW9uID49IDE5MDAwMCkKKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHBx LCAiZS5uX2Rpc3RpbmN0LCBlLmRlcGVuZGVuY2llcywgIik7CisJCWVsc2UKKwkJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHBxLAorCQkJCQkJCQkgIiggIgorCQkJCQkJCQkgIlNFTEVDVCBqc29uX2Fn ZyggIgorCQkJCQkJCQkgIiAgICBqc29uX2J1aWxkX29iamVjdCggIgorCQkJCQkJCQkgIiAgICAg ICAgJ2F0dHJpYnV0ZXMnLCAiCisJCQkJCQkJCSAiICAgICAgICAgc3RyaW5nX3RvX2FycmF5KGt2 LmtleSwgJywgJyk6OmludGVnZXJbXSwgIgorCQkJCQkJCQkgIiAgICAgICAgJ25kaXN0aW5jdCcs ICIKKwkJCQkJCQkJICIgICAgICAgIGt2LnZhbHVlOjpiaWdpbnQgKSkgIgorCQkJCQkJCQkgIkZS T00ganNvbl9lYWNoX3RleHQoZS5uX2Rpc3RpbmN0Ojp0ZXh0Ojpqc29uKSBBUyBrdiIKKwkJCQkJ CQkJICIpIEFTIG5fZGlzdGluY3QsICIKKwkJCQkJCQkJICIoICIKKwkJCQkJCQkJICJTRUxFQ1Qg anNvbl9hZ2coICIKKwkJCQkJCQkJICIgICAganNvbl9idWlsZF9vYmplY3QoICIKKwkJCQkJCQkJ ICIgICAgICAgICdhdHRyaWJ1dGVzJywgIgorCQkJCQkJCQkgIiAgICAgICAgc3RyaW5nX3RvX2Fy cmF5KCAiCisJCQkJCQkJCSAiICAgICAgICAgICAgc3BsaXRfcGFydChrdi5rZXksICcgPT4gJywg MSksICIKKwkJCQkJCQkJICIgICAgICAgICAgICAnLCAnKTo6aW50ZWdlcltdLCAiCisJCQkJCQkJ CSAiICAgICAgICAnZGVwZW5kZW5jeScsICIKKwkJCQkJCQkJICIgICAgICAgIHNwbGl0X3BhcnQo a3Yua2V5LCAnID0+ICcsIDIpOjppbnRlZ2VyLCAiCisJCQkJCQkJCSAiICAgICAgICAnZGVncmVl JywgIgorCQkJCQkJCQkgIiAgICAgICAga3YudmFsdWU6OmRvdWJsZSBwcmVjaXNpb24gKSkgIgor CQkJCQkJCQkgIkZST00ganNvbl9lYWNoX3RleHQoZS5kZXBlbmRlbmNpZXM6OnRleHQ6Ompzb24p IEFTIGt2ICIKKwkJCQkJCQkJICIpIEFTIGRlcGVuZGVuY2llcywgIik7CisKKwkJLyogVmVyc2lv bnMgPCAxMiBkbyBub3QgaGF2ZSBNQ1YgKi8KKwkJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0g MTMwMDAwKQorCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocHEsCisJCQkJCQkJCSAiZS5tb3N0X2Nv bW1vbl92YWxzLCBlLm1vc3RfY29tbW9uX3ZhbF9udWxscywgIgorCQkJCQkJCQkgImUubW9zdF9j b21tb25fZnJlcXMsIGUubW9zdF9jb21tb25fYmFzZV9mcmVxcywgIik7CisJCWVsc2UKKwkJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKHBxLAorCQkJCQkJCQkgIk5VTEwgQVMgbW9zdF9jb21tb25fdmFs cywgTlVMTCBBUyBtb3N0X2NvbW1vbl92YWxfbnVsbHMsICIKKwkJCQkJCQkJICJOVUxMIEFTIG1v c3RfY29tbW9uX2ZyZXFzLCBOVUxMIEFTIG1vc3RfY29tbW9uX2Jhc2VfZnJlcXMsICIpOworCisJ CS8qIEV4cHJlc3Npb25zIHdlcmUgaW50cm9kdWNlZCBpbiB2MTQgKi8KKwkJaWYgKGZvdXQtPnJl bW90ZVZlcnNpb24gPj0gMTQwMDAwKQorCQl7CisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihwcSwK KwkJCQkJCQkJICIoICIKKwkJCQkJCQkJICJTRUxFQ1QgYXJyYXlfYWdnKCAiCisJCQkJCQkJCSAi ICAgIEFSUkFZW2VlLm51bGxfZnJhYzo6dGV4dCwgZWUuYXZnX3dpZHRoOjp0ZXh0LCAiCisJCQkJ CQkJCSAiICAgICAgICAgIGVlLm5fZGlzdGluY3Q6OnRleHQsIGVlLm1vc3RfY29tbW9uX3ZhbHM6 OnRleHQsICIKKwkJCQkJCQkJICIgICAgICAgICAgZWUubW9zdF9jb21tb25fZnJlcXM6OnRleHQs IGVlLmhpc3RvZ3JhbV9ib3VuZHM6OnRleHQsICIKKwkJCQkJCQkJICIgICAgICAgICAgZWUuY29y cmVsYXRpb246OnRleHQsIGVlLm1vc3RfY29tbW9uX2VsZW1zOjp0ZXh0LCAiCisJCQkJCQkJCSAi ICAgICAgICAgIGVlLm1vc3RfY29tbW9uX2VsZW1fZnJlcXM6OnRleHQsICIKKwkJCQkJCQkJICIg ICAgICAgICAgZWUuZWxlbV9jb3VudF9oaXN0b2dyYW06OnRleHRdKSAiCisJCQkJCQkJCSAiRlJP TSBwZ19zdGF0c19leHRfZXhwcnMgQVMgZWUgIgorCQkJCQkJCQkgIldIRVJFIGVlLnN0YXRpc3Rp Y3Nfc2NoZW1hbmFtZSA9ICQxICIKKwkJCQkJCQkJICJBTkQgZWUuc3RhdGlzdGljc19uYW1lID0g JDIgIik7CisKKwkJCS8qIEluaGVyaXRlZCBleHByZXNzaW9ucyBpbnRyb2R1Y2VkIGluIHYxNSAq LworCQkJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTUwMDAwKQorCQkJCWFwcGVuZFBRRXhw QnVmZmVyU3RyKHBxLCAiQU5EIGVlLmluaGVyaXRlZCA9IGUuaW5oZXJpdGVkIik7CisKKwkJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKHBxLCAiKSBBUyBleHBycyAiKTsKKwkJfQorCQllbHNlCisJCQlh cHBlbmRQUUV4cEJ1ZmZlclN0cihwcSwgIk5VTEwgQVMgZXhwcnMgIik7CisKKwkJLyogcGdfc3Rh dHNfZXh0IGludHJvZHVjZWQgaW4gdjEyICovCisJCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49 IDEyMDAwMCkKKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHBxLAorCQkJCQkJCQkgIkZST00gcGdf Y2F0YWxvZy5wZ19zdGF0c19leHQgQVMgZSAiCisJCQkJCQkJCSAiV0hFUkUgZS5zdGF0aXN0aWNz X3NjaGVtYW5hbWUgPSAkMSAiCisJCQkJCQkJCSAiQU5EIGUuc3RhdGlzdGljc19uYW1lID0gJDIg Iik7CisJCWVsc2UKKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHBxLAorCQkJCQkJCQkgIkZST00g KCAiCisJCQkJCQkJCSAiU0VMRUNUIHMuc3R4bmRpc3RpbmN0IEFTIG5fZGlzdGluY3QsICIKKwkJ CQkJCQkJICIgICAgcy5zdHhkZXBlbmRlbmNpZXMgQVMgZGVwZW5kZW5jaWVzICIKKwkJCQkJCQkJ ICJGUk9NIHBnX2NhdGFsb2cucGdfc3RhdGlzdGljc19leHQgQVMgcyAiCisJCQkJCQkJCSAiSk9J TiBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBBUyBuICIKKwkJCQkJCQkJICJPTiBuLm9pZCA9IHMu c3R4bmFtZXNwYWNlICIKKwkJCQkJCQkJICJXSEVSRSBuLm5zcG5hbWUgPSAkMSAiCisJCQkJCQkJ CSAiQU5EIGUuc3R4bmFtZSA9ICQyICIKKwkJCQkJCQkJICIpIEFTIGUgIik7CisKKwkJLyogd2Ug YWx3YXlzIGhhdmUgYW4gaW5oZXJpdGVkIGNvbHVtbiwgYnV0IGl0IG1heSBiZSBhIGNvbnN0YW50 ICovCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHBxLCAiT1JERVIgQlkgaW5oZXJpdGVkIik7CisK KwkJRXhlY3V0ZVNxbFN0YXRlbWVudChmb3V0LCBwcS0+ZGF0YSk7CisKKwkJZm91dC0+aXNfcHJl cGFyZWRbUFJFUFFVRVJZX0RVTVBFWFRTVEFUU1NUQVRTXSA9IHRydWU7CisKKwkJZGVzdHJveVBR RXhwQnVmZmVyKHBxKTsKKwl9CisKKwlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwlh cHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIkVYRUNVVEUgZ2V0RXh0U3RhdHNTdGF0cygiKTsK KwlhcHBlbmRTdHJpbmdMaXRlcmFsQUgocXVlcnksIHN0YXRzZXh0aW5mby0+ZG9iai5uYW1lc3Bh Y2UtPmRvYmoubmFtZSwgZm91dCk7CisJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICI6OnBn X2NhdGFsb2cubmFtZSwgIik7CisJYXBwZW5kU3RyaW5nTGl0ZXJhbEFIKHF1ZXJ5LCBzdGF0c2V4 dGluZm8tPmRvYmoubmFtZSwgZm91dCk7CisJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICI6 OnBnX2NhdGFsb2cubmFtZSkiKTsKKworCXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxdWVy eS0+ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKKworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7 CisKKwluc3RhdHMgPSBQUW50dXBsZXMocmVzKTsKKworCWlmIChuc3RhdHMgPiAwKQorCXsKKwkJ UFFFeHBCdWZmZXIgb3V0ID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKworCQlpbnQJCQlpX2luaGVy aXRlZCA9IFBRZm51bWJlcihyZXMsICJpbmhlcml0ZWQiKTsKKwkJaW50CQkJaV9uZGlzdGluY3Qg PSBQUWZudW1iZXIocmVzLCAibl9kaXN0aW5jdCIpOworCQlpbnQJCQlpX2RlcGVuZGVuY2llcyA9 IFBRZm51bWJlcihyZXMsICJkZXBlbmRlbmNpZXMiKTsKKwkJaW50CQkJaV9tY3YgPSBQUWZudW1i ZXIocmVzLCAibW9zdF9jb21tb25fdmFscyIpOworCQlpbnQJCQlpX21jdl9udWxscyA9IFBRZm51 bWJlcihyZXMsICJtb3N0X2NvbW1vbl92YWxfbnVsbHMiKTsKKwkJaW50CQkJaV9tY2YgPSBQUWZu dW1iZXIocmVzLCAibW9zdF9jb21tb25fZnJlcXMiKTsKKwkJaW50CQkJaV9tY2JmID0gUFFmbnVt YmVyKHJlcywgIm1vc3RfY29tbW9uX2Jhc2VfZnJlcXMiKTsKKwkJaW50CQkJaV9leHBycyA9IFBR Zm51bWJlcihyZXMsICJleHBycyIpOworCisJCWZvciAoaW50IGkgPSAwOyBpIDwgbnN0YXRzOyBp KyspCisJCXsKKwkJCWlmIChQUWdldGlzbnVsbChyZXMsIGksIGlfaW5oZXJpdGVkKSkKKwkJCQlw Z19mYXRhbCgiaW5oZXJpdGVkIGNhbm5vdCBiZSBOVUxMIik7CisKKwkJCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKG91dCwKKwkJCQkJCQkJICJTRUxFQ1QgKiBGUk9NIHBnX2NhdGFsb2cucGdfcmVzdG9y ZV9leHRlbmRlZF9zdGF0cyhcbiIpOworCQkJYXBwZW5kUFFFeHBCdWZmZXIob3V0LCAiXHQndmVy c2lvbicsICclZCc6OmludGVnZXIsXG4iLAorCQkJCQkJCSAgZm91dC0+cmVtb3RlVmVyc2lvbik7 CisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihvdXQsICJcdCdzdGF0aXN0aWNzX3NjaGVtYW5hbWUn LCAiKTsKKwkJCWFwcGVuZFN0cmluZ0xpdGVyYWxBSChvdXQsIHN0YXRzZXh0aW5mby0+ZG9iai5u YW1lc3BhY2UtPmRvYmoubmFtZSwgZm91dCk7CisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihvdXQs ICIsXG5cdCdzdGF0aXN0aWNzX25hbWUnLCAiKTsKKwkJCWFwcGVuZFN0cmluZ0xpdGVyYWxBSChv dXQsIHN0YXRzZXh0aW5mby0+ZG9iai5uYW1lLCBmb3V0KTsKKwkJCWFwcGVuZE5hbWVkQXJndW1l bnQob3V0LCBmb3V0LCAiaW5oZXJpdGVkIiwgImJvb2xlYW4iLAorCQkJCQkJCQlQUWdldHZhbHVl KHJlcywgaSwgaV9pbmhlcml0ZWQpKTsKKworCQkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIGlf bmRpc3RpbmN0KSkKKwkJCQlhcHBlbmROYW1lZEFyZ3VtZW50KG91dCwgZm91dCwgIm5fZGlzdGlu Y3QiLCAicGdfbmRpc3RpbmN0IiwKKwkJCQkJCQkJCVBRZ2V0dmFsdWUocmVzLCBpLCBpX25kaXN0 aW5jdCkpOworCisJCQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgaSwgaV9kZXBlbmRlbmNpZXMpKQor CQkJCWFwcGVuZE5hbWVkQXJndW1lbnQob3V0LCBmb3V0LCAiZGVwZW5kZW5jaWVzIiwgInBnX2Rl cGVuZGVuY2llcyIsCisJCQkJCQkJCQlQUWdldHZhbHVlKHJlcywgaSwgaV9kZXBlbmRlbmNpZXMp KTsKKworCQkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIGlfbWN2KSkKKwkJCQlhcHBlbmROYW1l ZEFyZ3VtZW50KG91dCwgZm91dCwgIm1vc3RfY29tbW9uX3ZhbHMiLCAidGV4dFtdIiwKKwkJCQkJ CQkJCVBRZ2V0dmFsdWUocmVzLCBpLCBpX21jdikpOworCisJCQlpZiAoIVBRZ2V0aXNudWxsKHJl cywgaSwgaV9tY3ZfbnVsbHMpKQorCQkJCWFwcGVuZE5hbWVkQXJndW1lbnQob3V0LCBmb3V0LCAi bW9zdF9jb21tb25fdmFsX251bGxzIiwgImJvb2xlYW5bXSIsCisJCQkJCQkJCQlQUWdldHZhbHVl KHJlcywgaSwgaV9tY3ZfbnVsbHMpKTsKKworCQkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIGlf bWNmKSkKKwkJCQlhcHBlbmROYW1lZEFyZ3VtZW50KG91dCwgZm91dCwgIm1vc3RfY29tbW9uX2Zy ZXFzIiwgImRvdWJsZSBwcmVjaXNpb25bXSIsCisJCQkJCQkJCQlQUWdldHZhbHVlKHJlcywgaSwg aV9tY2YpKTsKKworCQkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIGlfbWNiZikpCisJCQkJYXBw ZW5kTmFtZWRBcmd1bWVudChvdXQsIGZvdXQsICJtb3N0X2NvbW1vbl9iYXNlX2ZyZXFzIiwgImRv dWJsZSBwcmVjaXNpb25bXSIsCisJCQkJCQkJCQlQUWdldHZhbHVlKHJlcywgaSwgaV9tY2JmKSk7 CisKKwkJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCBpX2V4cHJzKSkKKwkJCQlhcHBlbmROYW1l ZEFyZ3VtZW50KG91dCwgZm91dCwgImV4cHJzIiwgInRleHRbXSIsCisJCQkJCQkJCQlQUWdldHZh bHVlKHJlcywgaSwgaV9leHBycykpOworCisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihvdXQsICJc bik7XG4iKTsKKwkJfQorCisJCUFyY2hpdmVFbnRyeShmb3V0LCBuaWxDYXRhbG9nSWQsIGNyZWF0 ZUR1bXBJZCgpLAorCQkJCQkgQVJDSElWRV9PUFRTKC50YWcgPSBzdGF0c2V4dGluZm8tPmRvYmou bmFtZSwKKwkJCQkJCQkJICAubmFtZXNwYWNlID0gc3RhdHNleHRpbmZvLT5kb2JqLm5hbWVzcGFj ZS0+ZG9iai5uYW1lLAorCQkJCQkJCQkgIC5vd25lciA9IHN0YXRzZXh0aW5mby0+cm9sbmFtZSwK KwkJCQkJCQkJICAuZGVzY3JpcHRpb24gPSAiRVhURU5ERUQgU1RBVElTVElDUyBEQVRBIiwKKwkJ CQkJCQkJICAuc2VjdGlvbiA9IFNFQ1RJT05fUE9TVF9EQVRBLAorCQkJCQkJCQkgIC5jcmVhdGVT dG10ID0gb3V0LT5kYXRhLAorCQkJCQkJCQkgIC5kZXBzID0gJnN0YXRzZXh0aW5mby0+ZG9iai5k dW1wSWQsCisJCQkJCQkJCSAgLm5EZXBzID0gMSkpOworCQlkZXN0cm95UFFFeHBCdWZmZXIob3V0 KTsKKwl9CisJUFFjbGVhcihyZXMpOworfQorCiAvKgogICogZHVtcENvbnN0cmFpbnQKICAqCSAg d3JpdGUgb3V0IHRvIGZvdXQgYSB1c2VyLWRlZmluZWQgY29uc3RyYWludApkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJf cGdfZHVtcC5wbAppbmRleCA0NDVhNTQxYWJmNi4uNjY4MTI2NTk3NGYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAw Ml9wZ19kdW1wLnBsCkBAIC00NzcyLDYgKzQ3NzIsMzQgQEAgbXkgJXRlc3RzID0gKAogCQl9LAog CX0sCiAKKwkjCisJIyBFWFRFTkRFRCBzdGF0cyB3aWxsIGVuZCB1cCBpbiBTRUNUSU9OX1BPU1Rf REFUQS4KKwkjCisJJ2V4dGVuZGVkX3N0YXRpc3RpY3NfaW1wb3J0JyA9PiB7CisJCWNyZWF0ZV9z cWwgPT4gJworCQkJQ1JFQVRFIFRBQkxFIGR1bXBfdGVzdC5oYXNfZXh0X3N0YXRzCisJCQlBUyBT RUxFQ1QgZy5nIEFTIHgsIGcuZyAvIDIgQVMgeSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMCkg QVMgZyhnKTsKKwkJCUNSRUFURSBTVEFUSVNUSUNTIGR1bXBfdGVzdC5lczEgT04geCwgKHkgJSAy KSBGUk9NIGR1bXBfdGVzdC5oYXNfZXh0X3N0YXRzOworCQkJQU5BTFlaRSBkdW1wX3Rlc3QuaGFz X2V4dF9zdGF0czsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFTRUxFQ1QgKiBGUk9NIHBnX2Nh dGFsb2cucGdfcmVzdG9yZV9leHRlbmRlZF9zdGF0cyhcRVxzKy94bSwKKwkJbGlrZSA9PiB7CisJ CQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCW5vX2RhdGFfbm9f c2NoZW1hID0+IDEsCisJCQlub19zY2hlbWEgPT4gMSwKKwkJCXNlY3Rpb25fcG9zdF9kYXRhID0+ IDEsCisJCQlzdGF0aXN0aWNzX29ubHkgPT4gMSwKKwkJCXNjaGVtYV9vbmx5X3dpdGhfc3RhdGlz dGljcyA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2No ZW1hID0+IDEsCisJCQlub19zdGF0aXN0aWNzID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1l bnQgPT4gMSwKKwkJCXNjaGVtYV9vbmx5ID0+IDEsCisJCX0sCisJfSwKKwogCSMKIAkjIFdoaWxl IGF0dHJpYnV0ZSBzdGF0cyAoYWthIHBnX3N0YXRpc3RpYyBzdGF0cykgb25seSBhcHBlYXIgZm9y IHRhYmxlcwogCSMgdGhhdCBoYXZlIGJlZW4gYW5hbHl6ZWQsIGFsbCB0YWJsZXMgd2lsbCBoYXZl IHJlbGF0aW9uIHN0YXRzIGJlY2F1c2UKLS0gCjIuNTEuMQoK --0000000000009429ff06440ec5f4--