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 1vMix9-000I1t-0q for pgsql-hackers@arkaria.postgresql.org; Sat, 22 Nov 2025 08:26:44 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vMix7-00Au0b-2j for pgsql-hackers@arkaria.postgresql.org; Sat, 22 Nov 2025 08:26:42 +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 1vMix7-00Au0R-0j for pgsql-hackers@lists.postgresql.org; Sat, 22 Nov 2025 08:26:41 +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 1vMix2-000rYq-1C for pgsql-hackers@lists.postgresql.org; Sat, 22 Nov 2025 08:26:41 +0000 Received: by mail-il1-x12b.google.com with SMTP id e9e14a558f8ab-43380a6fe8cso14520855ab.0 for ; Sat, 22 Nov 2025 00:26:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763799994; x=1764404794; 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=IB1z4RArVlDBZlEI0Z6BN10+ymNZwl3aEydR9KobNTM=; b=gJ4U45Gpl2AKhbN9wEYsiqJPQMNl5ljod6mpLL4rPfnoRwfH7/1P9zkqe3iMnD8ipQ cgU8D2RLSN2smD7F+kZOWOshNpDHY9v7RAg7VQAslwXSkvZj/XbZh+/t7OeJIW1sVu++ dveuNRIe+x5WJPhpL4F4DBeU3HIe3eT/3umsKMFzo5PYjS4tvxmMznOxSFpolBq3PxTM jLlZZ6QbpBWQf39tK7FM80WhJsC3dfSM7GLZzweslo/8aSMrev45ZT4u8Gn6fhA+3XaA 9/MtxCoDhgxy9W5n3UMwSwynkXzOSUJav/ZpGXwMhbaG9+9fChg7XRo9QgKWz9ME8Mtl s2Ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763799994; x=1764404794; 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=IB1z4RArVlDBZlEI0Z6BN10+ymNZwl3aEydR9KobNTM=; b=OO1RICi4iY2JPUjX55rOTOfWdCU/10gFlRHjXT+vdp1VmQKifh2oaLnN69QpLuZkS7 9GUATwfzI/3hGCbijalsuqKydX75UgIDx5fp7QtSgu08sTgn95puToV3+t8yoQaSLovk ZKvu6NEwD/SnJ79hYI7C/X4CLP5nP/TT+TQSDN0vVR2nod3hJ6ZFzHnggh5/wiubXUvP l0R6N/C9bbUPO1c2S/BZjRV/o+VfKFVbBKjXlyTXtnSaRkJrL/rpp+tlms9QJ8GYjXYw z6mhtdVVevtVRhZEmZYeTbSZDv6/PRP39QJLheLsiadZLBl8R18GE3LuOfD8SJ/fBcIA 9dcQ== X-Forwarded-Encrypted: i=1; AJvYcCVk4s7MsuIaIOaFul4cucOSawzOfbQ6GseFjp766VNQSAtw+4FDWw/bGvAiVQv/cSQO4cIeoJjPUgVEoJkh@lists.postgresql.org X-Gm-Message-State: AOJu0Ywde93N4A5XrdR5Pd+s822OlnjQBTkHf8bVUzSWRGmZmKtxTve+ jAPILIhesa4jSqSQsaIif6qWeHQIYqj9cZzhQbb0kGF0qhiGNjNQYjLflIIYhcsNYXpJwTHxsJ2 CNzATKOROfTxNHqfVkec61XD6piPTiCE= X-Gm-Gg: ASbGncu93+xPoq1Dz2js9xxeQDmDdHp8vsLKcRwFnFwaZXIuip23Blv6qA+G0yd9RJ9 qasQUyz+Lpfbf5yPaFmjvp8rz7NSuDZ1tuc1mkp0ArZr1J4ghKqHyKUu1li5Dj2eqs23ckZDLei HDau4scjfAgXb8DtB4t8iRAmA1X1hte5m9SUAeaqg+WbRuIJ+3iL25A+g/WYsTHon+WH28MTi+X 6NOoSE9KoHNx3W8Hg07vdT1KpXpdIB3ULagWQka1oiLDYxI7FVvmuvCXB8DNkHyR+vdQFETnXjo Zp1uIYdfEgkAgAyjUksoUzaDLFNwTxJSUAt41Q== X-Google-Smtp-Source: AGHT+IFDpCyYQJkDTuwIg/QLor/X5teVQAJ+ep07Y4XRDRBYGjvBLZEEOzTTA8M93wpSPvF1DR1FRaXtBh3HkeLK9O8= X-Received: by 2002:a05:6e02:1fc6:b0:433:7a94:6fd2 with SMTP id e9e14a558f8ab-435b8e61f97mr47274995ab.28.1763799993875; Sat, 22 Nov 2025 00:26:33 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Corey Huinker Date: Sat, 22 Nov 2025 03:26:19 -0500 X-Gm-Features: AWmQ_bm8IH15aFmSatdJx6ynkSpRrZ7Noy5xv_AIQjqEc2VwPKQhfvexqsL3m0Q 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="00000000000017315e06442ab082" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000017315e06442ab082 Content-Type: multipart/alternative; boundary="00000000000017315b06442ab080" --00000000000017315b06442ab080 Content-Type: text/plain; charset="UTF-8" > > > wondering, should we check the value of "degree" is between 0 to 1? > I'm open to it, but there was significant pushback to having tight validity checks on other stats types. The more things that we make errors, the more chances we have to breaking a dump/restore. Granted, such values should never happen, but odd things do happen. > > IF the value of ""dependency" > does not meet > ``(if (parse->dependency == 0 || parse->dependency < > (0-STATS_MAX_DIMENSIONS))`` > then error out. > see the attached patch. > Good catch. Incorporated these patches as well as Yuefei's feedback especially around memory management. I added a comment debating the feasibility of testing for subsets of attribute sets in pg_dependencies. Basically, I think we can't have the test at all, but I haven't removed it just yet pending consensus. --00000000000017315b06442ab080 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

wondering, should we check the value of "degree" is between 0 to = 1?

I'm open to it, but there was si= gnificant pushback to having tight validity checks on other stats types.

The more things that we make errors, the more chance= s we have to breaking a dump/restore. Granted, such values should never hap= pen, but odd things do happen.
=C2=A0

IF the value of ""dependency"
does not meet
``(if (parse->dependency =3D=3D 0 || parse->dependency < (0-STATS_= MAX_DIMENSIONS))``
then error out.
see the attached patch.

Good catch.

Incorporated these patches as well as Yuefei's fe= edback especially around memory management.

I adde= d a comment debating the feasibility of testing for subsets of attribute se= ts in pg_dependencies. Basically, I think we can't have the test at all= , but I haven't removed it just yet pending consensus.


--00000000000017315b06442ab080-- --00000000000017315e06442ab082 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0001-Add-working-input-function-for-pg_ndistinct.patch" Content-Disposition: attachment; filename="v17-0001-Add-working-input-function-for-pg_ndistinct.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mia0ycuo0 RnJvbSA5MmUzNDRlZGYwMmRkYzA1YTllZjI5ZTg5OTAwZjYzMzU3MTI1MzMxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNaWNoYWVsIFBhcXVpZXIgPG1pY2hhZWxAcGFxdWllci54eXo+ CkRhdGU6IE1vbiwgMTcgTm92IDIwMjUgMTQ6NTI6MjIgKzA5MDAKU3ViamVjdDogW1BBVENIIHYx NyAxLzVdIEFkZCB3b3JraW5nIGlucHV0IGZ1bmN0aW9uIGZvciBwZ19uZGlzdGluY3QuCgpUaGlz IHdpbGwgY29uc3VtZSB0aGUgZm9ybWF0IHRoYXQgd2FzIGVzdGFibGlzaGVkIHdoZW4gdGhlIG91 dHB1dApmdW5jdGlvbiBmb3IgcGdfbmRpc3RpbmN0IHdhcyByZWNlbnRseSBjaGFuZ2VkLgoKVGhp cyB3aWxsIGJlIG5lZWRlZCBmb3IgaW1wb3J0aW5nIGV4dGVuZGVkIHN0YXRpc3RpY3MuICBXaXRo IHRoZXNlCmNoYW5nZXMgaW4gcGxhY2UsIGNvdmVyYWdlIG9mIHBnX25kaXN0aW5jdC5jIHJlYWNo ZXMgOTElLgotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ19uZGlzdGluY3QuYyAgICAgICB8 IDc2MSArKysrKysrKysrKysrKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGdf bmRpc3RpbmN0Lm91dCB8IDQwOSArKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxl bF9zY2hlZHVsZSAgICAgICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wZ19uZGlz dGluY3Quc3FsICAgICAgfCAgOTggKysrCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dCAgICAgICAgICAgfCAgIDIgKwogNSBmaWxlcyBjaGFuZ2VkLCAxMjYzIGluc2VydGlvbnMoKyks IDkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wZ19uZGlzdGluY3Qub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVz cy9zcWwvcGdfbmRpc3RpbmN0LnNxbAoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9wZ19uZGlzdGluY3QuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ19uZGlzdGluY3QuYwpp bmRleCA5N2VmYzI5MGVmNS4uNDQzZTA4Mjg2NTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9wZ19uZGlzdGluY3QuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfbmRp c3RpbmN0LmMKQEAgLTE0LDI5ICsxNCw3NzQgQEAKIAogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAK KyNpbmNsdWRlICJjb21tb24vaW50LmgiCisjaW5jbHVkZSAiY29tbW9uL2pzb25hcGkuaCIKICNp bmNsdWRlICJsaWIvc3RyaW5naW5mby5oIgorI2luY2x1ZGUgIm1iL3BnX3djaGFyLmgiCisjaW5j bHVkZSAibm9kZXMvbWlzY25vZGVzLmgiCiAjaW5jbHVkZSAic3RhdGlzdGljcy9leHRlbmRlZF9z dGF0c19pbnRlcm5hbC5oIgogI2luY2x1ZGUgInN0YXRpc3RpY3Mvc3RhdGlzdGljc19mb3JtYXQu aCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2ZtZ3Jwcm90 b3MuaCIKIAorLyogUGFyc2luZyBzdGF0ZSBkYXRhICovCit0eXBlZGVmIGVudW0KK3sKKwlORElT VF9FWFBFQ1RfU1RBUlQgPSAwLAorCU5ESVNUX0VYUEVDVF9JVEVNLAorCU5ESVNUX0VYUEVDVF9L RVksCisJTkRJU1RfRVhQRUNUX0FUVE5VTV9MSVNULAorCU5ESVNUX0VYUEVDVF9BVFROVU0sCisJ TkRJU1RfRVhQRUNUX05ESVNUSU5DVCwKKwlORElTVF9FWFBFQ1RfQ09NUExFVEUsCit9IE5EaXN0 aW5jdFNlbWFudGljU3RhdGU7CisKK3R5cGVkZWYgc3RydWN0Cit7CisJY29uc3QgY2hhciAqc3Ry OworCU5EaXN0aW5jdFNlbWFudGljU3RhdGUgc3RhdGU7CisKKwlMaXN0CSAgICpkaXN0aW5jdF9p dGVtczsgLyogQWNjdW11bGF0ZWQgY29tcGxldGUgTVZORGlzdGluY3RJdGVtcyAqLworCU5vZGUJ ICAgKmVzY29udGV4dDsKKworCWJvb2wJCWZvdW5kX2F0dHJpYnV0ZXM7CS8qIEl0ZW0gaGFzICJh dHRyaWJ1dGVzIiBrZXkgKi8KKwlib29sCQlmb3VuZF9uZGlzdGluY3Q7CS8qIEl0ZW0gaGFzICJu ZGlzdGluY3QiIGtleSAqLworCUxpc3QJICAgKmF0dG51bV9saXN0OwkvKiBBY2N1bXVsYXRlZCBh dHRyaWJ1dGVzIGF0dG51bXMgKi8KKwlpbnQzMgkJbmRpc3RpbmN0OworfSBORGlzdGluY3RQYXJz ZVN0YXRlOworCisvKgorICogSW52b2tlZCBhdCB0aGUgc3RhcnQgb2YgZWFjaCBNVk5EaXN0aW5j dEl0ZW0uCisgKgorICogVGhlIGVudGlyZSBKU09OIGRvY3VtZW50IHNob3VsZCBiZSBvbmUgYXJy YXkgb2YgTVZORGlzdGluY3RJdGVtIG9iamVjdHMuCisgKiBJZiB3ZSBhcmUgYW55d2hlcmUgZWxz ZSBpbiB0aGUgZG9jdW1lbnQsIGl0IGlzIGFuIGVycm9yLgorICovCitzdGF0aWMgSnNvblBhcnNl RXJyb3JUeXBlCituZGlzdGluY3Rfb2JqZWN0X3N0YXJ0KHZvaWQgKnN0YXRlKQoreworCU5EaXN0 aW5jdFBhcnNlU3RhdGUgKnBhcnNlID0gc3RhdGU7CisKKwlzd2l0Y2ggKHBhcnNlLT5zdGF0ZSkK Kwl7CisJCWNhc2UgTkRJU1RfRVhQRUNUX0lURU06CisJCQkvKiBOb3cgd2UgZXhwZWN0IHRvIHNl ZSBhdHRyaWJ1dGVzL25kaXN0aW5jdCBrZXlzICovCisJCQlwYXJzZS0+c3RhdGUgPSBORElTVF9F WFBFQ1RfS0VZOworCQkJcmV0dXJuIEpTT05fU1VDQ0VTUzsKKworCQljYXNlIE5ESVNUX0VYUEVD VF9TVEFSVDoKKwkJCS8qIHBnX25kaXN0aW5jdCBtdXN0IGJlZ2luIHdpdGggYSAnWycgKi8KKwkJ CWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURf VEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX25kaXN0aW5j dDogXCIlc1wiIiwgcGFyc2UtPnN0ciksCisJCQkJCWVycmRldGFpbCgiSW5pdGlhbCBlbGVtZW50 IG11c3QgYmUgYW4gYXJyYXkuIikpOworCQkJYnJlYWs7CisKKwkJY2FzZSBORElTVF9FWFBFQ1Rf S0VZOgorCQkJLyogSW4gYW4gb2JqZWN0LCBleHBlY3Rpbmcga2V5ICovCisJCQllcnJzYXZlKHBh cnNlLT5lc2NvbnRleHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVT RU5UQVRJT04pLAorCQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6IFwiJXNcIiIs IHBhcnNlLT5zdHIpLAorCQkJCQllcnJkZXRhaWwoIkV4cGVjdGVkIGFuIG9iamVjdCBrZXkuIikp OworCQkJYnJlYWs7CisKKwkJY2FzZSBORElTVF9FWFBFQ1RfQVRUTlVNX0xJU1Q6CisJCQkvKiBK dXN0IGZvbGxvd2VkIGFuICJhdHRyaWJ1dGVzIiBrZXkgKi8KKwkJCWVycnNhdmUocGFyc2UtPmVz Y29udGV4dCwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElP TiksCisJCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX25kaXN0aW5jdDogXCIlc1wiIiwgcGFyc2Ut PnN0ciksCisJCQkJCWVycmRldGFpbCgiVmFsdWUgb2YgXCIlc1wiIG11c3QgYmUgYW4gYXJyYXkg b2YgYXR0cmlidXRlIG51bWJlcnMuIiwKKwkJCQkJCQkgIFBHX05ESVNUSU5DVF9LRVlfQVRUUklC VVRFUykpOworCQkJYnJlYWs7CisKKwkJY2FzZSBORElTVF9FWFBFQ1RfQVRUTlVNOgorCQkJLyog SW4gYW4gYXR0bnVtIGxpc3QsIGV4cGVjdCBvbmx5IHNjYWxhciBpbnRlZ2VycyAqLworCQkJZXJy c2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhU X1JFUFJFU0VOVEFUSU9OKSwKKwkJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiBc IiVzXCIiLCBwYXJzZS0+c3RyKSwKKwkJCQkJZXJyZGV0YWlsKCJBdHRyaWJ1dGUgbGlzdHMgY2Fu IG9ubHkgY29udGFpbiBhdHRyaWJ1dGUgbnVtYmVycy4iKSk7CisJCQlicmVhazsKKworCQljYXNl IE5ESVNUX0VYUEVDVF9ORElTVElOQ1Q6CisJCQkvKiBKdXN0IGZvbGxvd2VkIGFuICJuZGlzdGlu Y3QiIGtleSAqLworCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJCQllcnJjb2RlKEVS UkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQkJZXJybXNnKCJtYWxmb3Jt ZWQgcGdfbmRpc3RpbmN0OiBcIiVzXCIiLCBwYXJzZS0+c3RyKSwKKwkJCQkJZXJyZGV0YWlsKCJW YWx1ZSBvZiBcIiVzXCIgbXVzdCBiZSBhbiBpbnRlZ2VyLiIsCisJCQkJCQkJICBQR19ORElTVElO Q1RfS0VZX05ESVNUSU5DVCkpOworCQkJYnJlYWs7CisKKwkJZGVmYXVsdDoKKwkJCWVycnNhdmUo cGFyc2UtPmVzY29udGV4dCwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBS RVNFTlRBVElPTiksCisJCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX25kaXN0aW5jdDogXCIlc1wi IiwgcGFyc2UtPnN0ciksCisJCQkJCWVycmRldGFpbCgiVW5leHBlY3RlZCBwYXJzZSBzdGF0ZTog JWQiLCAoaW50KSBwYXJzZS0+c3RhdGUpKTsKKwkJCWJyZWFrOworCX0KKworCXJldHVybiBKU09O X1NFTV9BQ1RJT05fRkFJTEVEOworfQorCisvKgorICogSW52b2tlZCBhdCB0aGUgZW5kIG9mIGFu IG9iamVjdC4KKyAqCisgKiBDaGVjayB0byBlbnN1cmUgdGhhdCBpdCB3YXMgYSBjb21wbGV0ZSBN Vk5EaXN0aW5jdEl0ZW0KKyAqLworc3RhdGljIEpzb25QYXJzZUVycm9yVHlwZQorbmRpc3RpbmN0 X29iamVjdF9lbmQodm9pZCAqc3RhdGUpCit7CisJTkRpc3RpbmN0UGFyc2VTdGF0ZSAqcGFyc2Ug PSBzdGF0ZTsKKworCWludAkJCW5hdHRzID0gMDsKKworCU1WTkRpc3RpbmN0SXRlbSAqaXRlbTsK KworCWlmIChwYXJzZS0+c3RhdGUgIT0gTkRJU1RfRVhQRUNUX0tFWSkKKwl7CisJCWVycnNhdmUo cGFyc2UtPmVzY29udGV4dCwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJF U0VOVEFUSU9OKSwKKwkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6IFwiJXNcIiIs IHBhcnNlLT5zdHIpLAorCQkJCWVycmRldGFpbCgiVW5leHBlY3RlZCBwYXJzZSBzdGF0ZTogJWQi LCAoaW50KSBwYXJzZS0+c3RhdGUpKTsKKwkJcmV0dXJuIEpTT05fU0VNX0FDVElPTl9GQUlMRUQ7 CisJfQorCisJaWYgKCFwYXJzZS0+Zm91bmRfYXR0cmlidXRlcykKKwl7CisJCWVycnNhdmUocGFy c2UtPmVzY29udGV4dCwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VO VEFUSU9OKSwKKwkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6IFwiJXNcIiIsIHBh cnNlLT5zdHIpLAorCQkJCWVycmRldGFpbCgiSXRlbSBtdXN0IGNvbnRhaW4gXCIlc1wiIGtleS4i LAorCQkJCQkJICBQR19ORElTVElOQ1RfS0VZX0FUVFJJQlVURVMpKTsKKwkJcmV0dXJuIEpTT05f U0VNX0FDVElPTl9GQUlMRUQ7CisJfQorCisJaWYgKCFwYXJzZS0+Zm91bmRfbmRpc3RpbmN0KQor CXsKKwkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZB TElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX25kaXN0 aW5jdDogXCIlc1wiIiwgcGFyc2UtPnN0ciksCisJCQkJZXJyZGV0YWlsKCJJdGVtIG11c3QgY29u dGFpbiBcIiVzXCIga2V5LiIsCisJCQkJCQkgIFBHX05ESVNUSU5DVF9LRVlfTkRJU1RJTkNUKSk7 CisJCXJldHVybiBKU09OX1NFTV9BQ1RJT05fRkFJTEVEOworCX0KKworCS8qCisJICogV2UgbmVl ZCBhdCBsZWFzdCB0d28gYXR0cmlidXRlIG51bWJlcnMgZm9yIGEgbmRpc3RpbmN0IGl0ZW0sIGFu eXRoaW5nCisJICogbGVzcyBpcyBtYWxmb3JtZWQuCisJICovCisJbmF0dHMgPSBsaXN0X2xlbmd0 aChwYXJzZS0+YXR0bnVtX2xpc3QpOworCWlmICgobmF0dHMgPCAyKSB8fCAobmF0dHMgPiBTVEFU U19NQVhfRElNRU5TSU9OUykpCisJeworCQllcnJzYXZlKHBhcnNlLT5lc2NvbnRleHQsCisJCQkJ ZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJZXJybXNn KCJtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiBcIiVzXCIiLCBwYXJzZS0+c3RyKSwKKwkJCQllcnJk ZXRhaWwoIlRoZSBcIiVzXCIga2V5IG11c3QgY29udGFpbiBhbiBhcnJheSBvZiBhdCBsZWFzdCAl ZCAiCisJCQkJCQkgICJhbmQgbm8gbW9yZSB0aGFuICVkIGF0dHJpYnV0ZXMuIiwKKwkJCQkJCSAg UEdfTkRJU1RJTkNUX0tFWV9BVFRSSUJVVEVTLCAyLCBTVEFUU19NQVhfRElNRU5TSU9OUykpOwor CQlyZXR1cm4gSlNPTl9TRU1fQUNUSU9OX0ZBSUxFRDsKKwl9CisKKwkvKiBDcmVhdGUgdGhlIE1W TkRpc3RpbmN0SXRlbSAqLworCWl0ZW0gPSBwYWxsb2Moc2l6ZW9mKE1WTkRpc3RpbmN0SXRlbSkp OworCWl0ZW0tPm5hdHRyaWJ1dGVzID0gbmF0dHM7CisJaXRlbS0+YXR0cmlidXRlcyA9IHBhbGxv YzAobmF0dHMgKiBzaXplb2YoQXR0ck51bWJlcikpOworCWl0ZW0tPm5kaXN0aW5jdCA9IChkb3Vi bGUpIHBhcnNlLT5uZGlzdGluY3Q7CisKKwlmb3IgKGludCBpID0gMDsgaSA8IG5hdHRzOyBpKysp CisJCWl0ZW0tPmF0dHJpYnV0ZXNbaV0gPSAoQXR0ck51bWJlcikgbGlzdF9udGhfaW50KHBhcnNl LT5hdHRudW1fbGlzdCwgaSk7CisKKwlwYXJzZS0+ZGlzdGluY3RfaXRlbXMgPSBsYXBwZW5kKHBh cnNlLT5kaXN0aW5jdF9pdGVtcywgKHZvaWQgKikgaXRlbSk7CisKKwkvKiByZXNldCBpdGVtIHN0 YXRlIHZhcnMgKi8KKwlsaXN0X2ZyZWUocGFyc2UtPmF0dG51bV9saXN0KTsKKwlwYXJzZS0+YXR0 bnVtX2xpc3QgPSBOSUw7CisJcGFyc2UtPm5kaXN0aW5jdCA9IDA7CisJcGFyc2UtPmZvdW5kX2F0 dHJpYnV0ZXMgPSBmYWxzZTsKKwlwYXJzZS0+Zm91bmRfbmRpc3RpbmN0ID0gZmFsc2U7CisKKwkv KiBOb3cgd2UgYXJlIGxvb2tpbmcgZm9yIHRoZSBuZXh0IE1WTkRpc3RpbmN0SXRlbSAqLworCXBh cnNlLT5zdGF0ZSA9IE5ESVNUX0VYUEVDVF9JVEVNOworCXJldHVybiBKU09OX1NVQ0NFU1M7Cit9 CisKIAogLyoKLSAqIHBnX25kaXN0aW5jdF9pbgotICoJCWlucHV0IHJvdXRpbmUgZm9yIHR5cGUg cGdfbmRpc3RpbmN0CisgKiBuZGlzdGluY3QgaW5wdXQgZm9ybWF0IGhhcyB0d28gdHlwZXMgb2Yg YXJyYXlzLCB0aGUgb3V0ZXIgTVZORGlzdGluY3RJdGVtCisgKiBhcnJheSBhbmQgdGhlIGF0dHJp YnV0ZSBudW1iZXIgYXJyYXkgd2l0aGluIGVhY2ggTVZORGlzdGluY3RJdGVtLgorICovCitzdGF0 aWMgSnNvblBhcnNlRXJyb3JUeXBlCituZGlzdGluY3RfYXJyYXlfc3RhcnQodm9pZCAqc3RhdGUp Cit7CisJTkRpc3RpbmN0UGFyc2VTdGF0ZSAqcGFyc2UgPSBzdGF0ZTsKKworCXN3aXRjaCAocGFy c2UtPnN0YXRlKQorCXsKKwkJY2FzZSBORElTVF9FWFBFQ1RfQVRUTlVNX0xJU1Q6CisJCQlwYXJz ZS0+c3RhdGUgPSBORElTVF9FWFBFQ1RfQVRUTlVNOworCQkJYnJlYWs7CisKKwkJY2FzZSBORElT VF9FWFBFQ1RfU1RBUlQ6CisJCQlwYXJzZS0+c3RhdGUgPSBORElTVF9FWFBFQ1RfSVRFTTsKKwkJ CWJyZWFrOworCisJCWRlZmF1bHQ6CisJCQllcnJzYXZlKHBhcnNlLT5lc2NvbnRleHQsCisJCQkJ CWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCQllcnJt c2coIm1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6IFwiJXNcIiIsIHBhcnNlLT5zdHIpLAorCQkJCQll cnJkZXRhaWwoIkFycmF5IGZvdW5kIGluIHVuZXhwZWN0ZWQgcGxhY2UuIikpOworCQkJcmV0dXJu IEpTT05fU0VNX0FDVElPTl9GQUlMRUQ7CisJfQorCisJcmV0dXJuIEpTT05fU1VDQ0VTUzsKK30K KworCisvKgorICogQXJyYXlzIGNhbiBuZXZlciBiZSBlbXB0eS4KKyAqLworc3RhdGljIEpzb25Q YXJzZUVycm9yVHlwZQorbmRpc3RpbmN0X2FycmF5X2VuZCh2b2lkICpzdGF0ZSkKK3sKKwlORGlz dGluY3RQYXJzZVN0YXRlICpwYXJzZSA9IHN0YXRlOworCisJc3dpdGNoIChwYXJzZS0+c3RhdGUp CisJeworCQljYXNlIE5ESVNUX0VYUEVDVF9BVFROVU06CisJCQlpZiAobGlzdF9sZW5ndGgocGFy c2UtPmF0dG51bV9saXN0KSA+IDApCisJCQl7CisJCQkJLyoKKwkJCQkgKiBUaGUgYXR0cmlidXRl IG51bWJlciBsaXN0IGlzIGNvbXBsZXRlLCBsb29rIGZvciBtb3JlCisJCQkJICogTVZORGlzdGlu Y3RJdGVtIGtleXMuCisJCQkJICovCisJCQkJcGFyc2UtPnN0YXRlID0gTkRJU1RfRVhQRUNUX0tF WTsKKwkJCQlyZXR1cm4gSlNPTl9TVUNDRVNTOworCQkJfQorCisJCQllcnJzYXZlKHBhcnNlLT5l c2NvbnRleHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJ T04pLAorCQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6IFwiJXNcIiIsIHBhcnNl LT5zdHIpLAorCQkJCQllcnJkZXRhaWwoIlRoZSBcIiVzXCIga2V5IG11c3QgYmUgYSBub24tZW1w dHkgYXJyYXkuIiwKKwkJCQkJCQkgIFBHX05ESVNUSU5DVF9LRVlfQVRUUklCVVRFUykpOworCQkJ YnJlYWs7CisKKwkJY2FzZSBORElTVF9FWFBFQ1RfSVRFTToKKwkJCWlmIChsaXN0X2xlbmd0aChw YXJzZS0+ZGlzdGluY3RfaXRlbXMpID4gMCkKKwkJCXsKKwkJCQkvKiBJdGVtIGxpc3QgaXMgY29t cGxldGUsIHdlIGFyZSBkb25lLiAqLworCQkJCXBhcnNlLT5zdGF0ZSA9IE5ESVNUX0VYUEVDVF9D T01QTEVURTsKKwkJCQlyZXR1cm4gSlNPTl9TVUNDRVNTOworCQkJfQorCisJCQllcnJzYXZlKHBh cnNlLT5lc2NvbnRleHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVT RU5UQVRJT04pLAorCQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6IFwiJXNcIiIs IHBhcnNlLT5zdHIpLAorCQkJCQllcnJkZXRhaWwoIkl0ZW0gYXJyYXkgY2Fubm90IGJlIGVtcHR5 LiIpKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCisJCQkvKgorCQkJICogVGhpcyBjYW4gb25s eSBoYXBwZW4gaWYgYSBjYXNlIHdhcyBtaXNzZWQgaW4KKwkJCSAqIG5kaXN0aW5jdF9hcnJheV9z dGFydCgpLgorCQkJICovCisJCQllcnJzYXZlKHBhcnNlLT5lc2NvbnRleHQsCisJCQkJCWVycmNv ZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCQllcnJtc2coIm1h bGZvcm1lZCBwZ19uZGlzdGluY3Q6IFwiJXNcIiIsIHBhcnNlLT5zdHIpLAorCQkJCQllcnJkZXRh aWwoIkFycmF5IGZvdW5kIGluIHVuZXhwZWN0ZWQgcGxhY2UuIikpOworCQkJYnJlYWs7CisJfQor CisJcmV0dXJuIEpTT05fU0VNX0FDVElPTl9GQUlMRUQ7Cit9CisKKy8qCisgKiBUaGUgdmFsaWQg a2V5cyBmb3IgdGhlIE1WTkRpc3RpbmN0SXRlbSBvYmplY3QgYXJlOgorICogICAtIGF0dHJpYnV0 ZXMKKyAqICAgLSBuZGlzdGluY3QKKyAqLworc3RhdGljIEpzb25QYXJzZUVycm9yVHlwZQorbmRp c3RpbmN0X29iamVjdF9maWVsZF9zdGFydCh2b2lkICpzdGF0ZSwgY2hhciAqZm5hbWUsIGJvb2wg aXNudWxsKQoreworCU5EaXN0aW5jdFBhcnNlU3RhdGUgKnBhcnNlID0gc3RhdGU7CisKKwlpZiAo c3RyY21wKGZuYW1lLCBQR19ORElTVElOQ1RfS0VZX0FUVFJJQlVURVMpID09IDApCisJeworCQlp ZiAocGFyc2UtPmZvdW5kX2F0dHJpYnV0ZXMpCisJCXsKKwkJCWVycnNhdmUocGFyc2UtPmVzY29u dGV4dCwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiks CisJCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX25kaXN0aW5jdDogXCIlc1wiIiwgcGFyc2UtPnN0 ciksCisJCQkJCWVycmRldGFpbCgiTXVsdGlwbGUgXCIlc1wiIGtleXMgYXJlIG5vdCBhbGxvd2Vk LiIsCisJCQkJCQkJUEdfTkRJU1RJTkNUX0tFWV9BVFRSSUJVVEVTKSk7CisJCQlyZXR1cm4gSlNP Tl9TRU1fQUNUSU9OX0ZBSUxFRDsKKwkJfQorCQlwYXJzZS0+Zm91bmRfYXR0cmlidXRlcyA9IHRy dWU7CisJCXBhcnNlLT5zdGF0ZSA9IE5ESVNUX0VYUEVDVF9BVFROVU1fTElTVDsKKwkJcmV0dXJu IEpTT05fU1VDQ0VTUzsKKwl9CisKKwlpZiAoc3RyY21wKGZuYW1lLCBQR19ORElTVElOQ1RfS0VZ X05ESVNUSU5DVCkgPT0gMCkKKwl7CisJCWlmIChwYXJzZS0+Zm91bmRfbmRpc3RpbmN0KQorCQl7 CisJCQllcnJzYXZlKHBhcnNlLT5lc2NvbnRleHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZB TElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19uZGlz dGluY3Q6IFwiJXNcIiIsIHBhcnNlLT5zdHIpLAorCQkJCQllcnJkZXRhaWwoIk11bHRpcGxlIFwi JXNcIiBrZXlzIGFyZSBub3QgYWxsb3dlZC4iLAorCQkJCQkJCVBHX05ESVNUSU5DVF9LRVlfTkRJ U1RJTkNUKSk7CisJCQlyZXR1cm4gSlNPTl9TRU1fQUNUSU9OX0ZBSUxFRDsKKwkJfQorCQlwYXJz ZS0+Zm91bmRfbmRpc3RpbmN0ID0gdHJ1ZTsKKwkJcGFyc2UtPnN0YXRlID0gTkRJU1RfRVhQRUNU X05ESVNUSU5DVDsKKwkJcmV0dXJuIEpTT05fU1VDQ0VTUzsKKwl9CisKKwllcnJzYXZlKHBhcnNl LT5lc2NvbnRleHQsCisJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFU SU9OKSwKKwkJCWVycm1zZygibWFsZm9ybWVkIHBnX25kaXN0aW5jdDogXCIlc1wiIiwgcGFyc2Ut PnN0ciksCisJCQllcnJkZXRhaWwoIk9ubHkgYWxsb3dlZCBrZXlzIGFyZSBcIiVzXCIgYW5kIFwi JXNcIi4iLAorCQkJCQkgIFBHX05ESVNUSU5DVF9LRVlfQVRUUklCVVRFUywKKwkJCQkJICBQR19O RElTVElOQ1RfS0VZX05ESVNUSU5DVCkpOworCXJldHVybiBKU09OX1NFTV9BQ1RJT05fRkFJTEVE OworfQorCisvKgorICogVGhlIG92ZXJhbGwgc3RydWN0dXJlIG9mIHRoZSBkYXRhdHlwZSBpcyBh biBhcnJheSwgYnV0IHRoZXJlIGFyZSBhbHNvCisgKiBhcnJheXMgYXMgdGhlIHZhbHVlIG9mIGV2 ZXJ5IGF0dHJpYnV0ZXMga2V5LgorICovCitzdGF0aWMgSnNvblBhcnNlRXJyb3JUeXBlCituZGlz dGluY3RfYXJyYXlfZWxlbWVudF9zdGFydCh2b2lkICpzdGF0ZSwgYm9vbCBpc251bGwpCit7CisJ Y29uc3QgTkRpc3RpbmN0UGFyc2VTdGF0ZSAqcGFyc2UgPSBzdGF0ZTsKKworCXN3aXRjaCAocGFy c2UtPnN0YXRlKQorCXsKKwkJY2FzZSBORElTVF9FWFBFQ1RfQVRUTlVNOgorCQkJaWYgKCFpc251 bGwpCisJCQkJcmV0dXJuIEpTT05fU1VDQ0VTUzsKKworCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250 ZXh0LAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwK KwkJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiBcIiVzXCIiLCBwYXJzZS0+c3Ry KSwKKwkJCQkJZXJyZGV0YWlsKCJBdHRyaWJ1dGUgbnVtYmVyIGFycmF5IGNhbm5vdCBiZSBudWxs LiIpKTsKKwkJCWJyZWFrOworCisJCWNhc2UgTkRJU1RfRVhQRUNUX0lURU06CisJCQlpZiAoIWlz bnVsbCkKKwkJCQlyZXR1cm4gSlNPTl9TVUNDRVNTOworCisJCQllcnJzYXZlKHBhcnNlLT5lc2Nv bnRleHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04p LAorCQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6IFwiJXNcIiIsIHBhcnNlLT5z dHIpLAorCQkJCQllcnJkZXRhaWwoIkl0ZW0gbGlzdCBlbGVtZW50cyBjYW5ub3QgYmUgbnVsbC4i KSk7CisKKwkJCWJyZWFrOworCisJCWRlZmF1bHQ6CisJCQllcnJzYXZlKHBhcnNlLT5lc2NvbnRl eHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAor CQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6IFwiJXNcIiIsIHBhcnNlLT5zdHIp LAorCQkJCQllcnJkZXRhaWwoIlVuZXhwZWN0ZWQgYXJyYXkgZWxlbWVudC4iKSk7CisJCQlicmVh azsKKwl9CisKKwlyZXR1cm4gSlNPTl9TRU1fQUNUSU9OX0ZBSUxFRDsKK30KKworLyoKKyAqIFRl c3QgZm9yIHZhbGlkIHN1YnNlcXVlbnQgYXR0cmlidXRlIG51bWJlci4KICAqCi0gKiBwZ19uZGlz dGluY3QgaXMgcmVhbCBlbm91Z2ggdG8gYmUgYSB0YWJsZSBjb2x1bW4sIGJ1dCBpdCBoYXMgbm8K LSAqIG9wZXJhdGlvbnMgb2YgaXRzIG93biwgYW5kIGRpc2FsbG93cyBpbnB1dCAoanVzdCBsaWtl IHBnX25vZGVfdHJlZSkuCisgKiBJZiB0aGUgcHJldmlvdXMgdmFsdWUgaXMgcG9zaXRpdmUsIHRo ZW4gY3VycmVudCB2YWx1ZSBtdXN0IGVpdGhlciBiZQorICogZ3JlYXRlciB0aGFuIHRoZSBwcmV2 aW91cyB2YWx1ZSwgb3IgbmVnYXRpdmUuCisgKgorICogSWYgdGhlIHByZXZpb3VzIHZhbHVlIGlz IG5lZ2F0aXZlLCB0aGVuIHRoZSB2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbgorICogdGhlIHByZXZp b3VzIHZhbHVlLgorICoKKyAqIER1cGxpY2F0ZSB2YWx1ZXMgYXJlIG9idmlvdXNseSBub3QgYWxs b3dlZCwgYnV0IHRoYXQgaXMgYWxyZWFkeSBjb3ZlcmVkCisgKiBieSB0aGUgcnVsZXMgbGlzdGVk IGFib3ZlLgorICovCitzdGF0aWMgYm9vbAordmFsaWRfc3Vic2VxdWVudF9hdHRudW0oQXR0ck51 bWJlciBwcmV2LCBBdHRyTnVtYmVyIGN1cikKK3sKKwlBc3NlcnQocHJldiAhPSAwKTsKKworCWlm IChwcmV2ID4gMCkKKwkJcmV0dXJuICgoY3VyID4gcHJldikgfHwgKGN1ciA8IDApKTsKKworCXJl dHVybiAoY3VyIDwgcHJldik7Cit9CisKKy8qCisgKiBIYW5kbGUgc2NhbGFyIGV2ZW50cyBmcm9t IHRoZSBuZGlzdGluY3QgaW5wdXQgcGFyc2VyLgorICoKKyAqIE92ZXJyaWRlIGludGVnZXIgcGFy c2UgZXJyb3IgbWVzc2FnZXMgYW5kIHJlcGxhY2UgdGhlbSB3aXRoIGVycm9ycworICogc3BlY2lm aWMgdG8gdGhlIGNvbnRleHQuCisgKi8KK3N0YXRpYyBKc29uUGFyc2VFcnJvclR5cGUKK25kaXN0 aW5jdF9zY2FsYXIodm9pZCAqc3RhdGUsIGNoYXIgKnRva2VuLCBKc29uVG9rZW5UeXBlIHRva2Vu dHlwZSkKK3sKKwlORGlzdGluY3RQYXJzZVN0YXRlICpwYXJzZSA9IHN0YXRlOworCUF0dHJOdW1i ZXIJYXR0bnVtOworCUVycm9yU2F2ZUNvbnRleHQgZXNjb250ZXh0ID0ge1RfRXJyb3JTYXZlQ29u dGV4dH07CisKKwlzd2l0Y2ggKHBhcnNlLT5zdGF0ZSkKKwl7CisJCWNhc2UgTkRJU1RfRVhQRUNU X0FUVE5VTToKKwkJCWF0dG51bSA9IHBnX3N0cnRvaW50MTZfc2FmZSh0b2tlbiwgKE5vZGUgKikg JmVzY29udGV4dCk7CisKKwkJCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKCZlc2NvbnRleHQpKQor CQkJeworCQkJCWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQkJCWVycmNvZGUoRVJSQ09E RV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCQkJZXJybXNnKCJtYWxmb3JtZWQg cGdfbmRpc3RpbmN0OiBcIiVzXCIiLCBwYXJzZS0+c3RyKSwKKwkJCQkJCWVycmRldGFpbCgiSW52 YWxpZCBcIiVzXCIgdmFsdWUuIiwgUEdfTkRJU1RJTkNUX0tFWV9BVFRSSUJVVEVTKSk7CisJCQkJ cmV0dXJuIEpTT05fU0VNX0FDVElPTl9GQUlMRUQ7CisJCQl9CisKKwkJCS8qCisJCQkgKiBUaGUg YXR0bnVtIGNhbm5vdCBiZSB6ZXJvIGEgbmVnYXRpdmUgbnVtYmVyIGJleW9uZCB0aGUgbnVtYmVy IG9mIHRoZQorCQkJICogcG9zc2libGUgZXhwcmVzc2lvbnMuCisJCQkgKi8KKwkJCWlmIChhdHRu dW0gPT0gMCB8fCBhdHRudW0gPCAoMC1TVEFUU19NQVhfRElNRU5TSU9OUykpCisJCQl7CisJCQkJ ZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURf VEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19uZGlzdGlu Y3Q6IFwiJXNcIiIsIHBhcnNlLT5zdHIpLAorCQkJCQkJZXJyZGV0YWlsKCJJbnZhbGlkIFwiJXNc IiBlbGVtZW50OiAlZC4iLAorCQkJCQkJCQkJUEdfTkRJU1RJTkNUX0tFWV9BVFRSSUJVVEVTLCBh dHRudW0pKTsKKwkJCQlyZXR1cm4gSlNPTl9TRU1fQUNUSU9OX0ZBSUxFRDsKKwkJCX0KKworCQkJ aWYgKGxpc3RfbGVuZ3RoKHBhcnNlLT5hdHRudW1fbGlzdCkgPiAwKQorCQkJeworCQkJCWNvbnN0 IEF0dHJOdW1iZXIgcHJldiA9IGxsYXN0X2ludChwYXJzZS0+YXR0bnVtX2xpc3QpOworCisJCQkJ aWYgKCF2YWxpZF9zdWJzZXF1ZW50X2F0dG51bShwcmV2LCBhdHRudW0pKQorCQkJCXsKKwkJCQkJ ZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElE X1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX25kaXN0 aW5jdDogXCIlc1wiIiwgcGFyc2UtPnN0ciksCisJCQkJCQkJZXJyZGV0YWlsKCJJbnZhbGlkIFwi JXNcIiBlbGVtZW50OiAlZCBjYW5ub3QgZm9sbG93ICVkLiIsCisJCQkJCQkJCQlQR19ORElTVElO Q1RfS0VZX0FUVFJJQlVURVMsIGF0dG51bSwgcHJldikpOworCQkJCQlyZXR1cm4gSlNPTl9TRU1f QUNUSU9OX0ZBSUxFRDsKKwkJCQl9CisJCQl9CisKKwkJCXBhcnNlLT5hdHRudW1fbGlzdCA9IGxh cHBlbmRfaW50KHBhcnNlLT5hdHRudW1fbGlzdCwgKGludCkgYXR0bnVtKTsKKwkJCXJldHVybiBK U09OX1NVQ0NFU1M7CisJCQlicmVhazsKKworCQljYXNlIE5ESVNUX0VYUEVDVF9ORElTVElOQ1Q6 CisKKwkJCS8qCisJCQkgKiBXaGlsZSB0aGUgc3RydWN0dXJlIGRpY3RhdGVzIHRoYXQgbmRpc3Rp bmN0IGlzIGEgZG91YmxlCisJCQkgKiBwcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQsIGl0IGhhcyBh bHdheXMgYmVlbiBhbiBpbnRlZ2VyIGluIHRoZQorCQkJICogb3V0cHV0IGdlbmVyYXRlZC4gIFRo ZXJlZm9yZSwgd2UgcGFyc2UgaXQgYXMgYW4gaW50ZWdlciBoZXJlLgorCQkJICovCisJCQlwYXJz ZS0+bmRpc3RpbmN0ID0gcGdfc3RydG9pbnQzMl9zYWZlKHRva2VuLCAoTm9kZSAqKSAmZXNjb250 ZXh0KTsKKworCQkJaWYgKCFTT0ZUX0VSUk9SX09DQ1VSUkVEKCZlc2NvbnRleHQpKQorCQkJewor CQkJCXBhcnNlLT5zdGF0ZSA9IE5ESVNUX0VYUEVDVF9LRVk7CisJCQkJcmV0dXJuIEpTT05fU1VD Q0VTUzsKKwkJCX0KKwkJCWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQkJZXJyY29kZShF UlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJCWVycm1zZygibWFsZm9y bWVkIHBnX25kaXN0aW5jdDogXCIlc1wiIiwgcGFyc2UtPnN0ciksCisJCQkJCWVycmRldGFpbCgi SW52YWxpZCBcIiVzXCIgdmFsdWUuIiwKKwkJCQkJCQkgIFBHX05ESVNUSU5DVF9LRVlfTkRJU1RJ TkNUKSk7CisJCQlicmVhazsKKworCQlkZWZhdWx0OgorCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250 ZXh0LAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwK KwkJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiBcIiVzXCIiLCBwYXJzZS0+c3Ry KSwKKwkJCQkJZXJyZGV0YWlsKCJVbmV4cGVjdGVkIHNjYWxhci4iKSk7CisJCQlicmVhazsKKwl9 CisKKwlyZXR1cm4gSlNPTl9TRU1fQUNUSU9OX0ZBSUxFRDsKK30KKworLyoKKyAqIENvbXBhcmUg dGhlIGF0dHJpYnV0ZSBhcnJheXMgb2YgdHdvIE1WTkRpc3RpbmN0SXRlbSB2YWx1ZXMsCisgKiBs b29raW5nIGZvciBkdXBsaWNhdGUgc2V0cy4gUmV0dXJuIHRydWUgaWYgYSBkdXBsaWNhdGUgc2V0 IGlzIGZvdW5kLgorICoKKyAqIFRoZSBhcnJheXMgYXJlIHJlcXVpcmVkIHRvIGJlIGluIGNhbm9u aWNhbCBvcmRlciAoYWxsIHBvc2l0aXZlIG51bWJlcnMKKyAqIGluIGFzY2VuZGluZyBvcmRlciBm aXJzdCwgZm9sbG93ZWQgYnkgYWxsIG5lZ2F0aXZlIG51bWJlcnMgaW4gZGVzY2VuZGluZworICog b3JkZXIpIHNvIGl0J3Mgc2FmZSB0byBjb21wYXJlIHRoZSBhdHRybnVtcyBpbiBvcmRlciwgc3Rv cHBpbmcgYXQgdGhlCisgKiBmaXJzdCBkaWZmZXJlbmNlLgorICovCitzdGF0aWMgYm9vbAoraXRl bV9hdHRyYnV0ZXNfZXEoY29uc3QgTVZORGlzdGluY3RJdGVtICphLCBjb25zdCBNVk5EaXN0aW5j dEl0ZW0gKmIpCit7CisJaWYgKGEtPm5hdHRyaWJ1dGVzICE9IGItPm5hdHRyaWJ1dGVzKQorCQly ZXR1cm4gZmFsc2U7CisKKwlmb3IgKGludCBpID0gMDsgaSA8IGEtPm5hdHRyaWJ1dGVzOyBpKysp CisJeworCQlpZiAoYS0+YXR0cmlidXRlc1tpXSAhPSBiLT5hdHRyaWJ1dGVzW2ldKQorCQkJcmV0 dXJuIGZhbHNlOworCX0KKworCXJldHVybiB0cnVlOworfQorCisvKgorICogRW5zdXJlIHRoYXQg YW4gYXR0cmlidXRlIG51bWJlciBhcHBlYXJzIGFzIG9uZSBvZiB0aGUgYXR0cmlidXRlIG51bWJl cnMKKyAqIGluIGEgTVZORGlzdGluY3RJdGVtLgorICovCitzdGF0aWMgYm9vbAoraXRlbV9oYXNf YXR0bnVtKGNvbnN0IE1WTkRpc3RpbmN0SXRlbSAqaXRlbSwgQXR0ck51bWJlciBhdHRudW0pCit7 CisJZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVtLT5uYXR0cmlidXRlczsgaSsrKQorCXsKKwkJaWYg KGF0dG51bSA9PSBpdGVtLT5hdHRyaWJ1dGVzW2ldKQorCQkJcmV0dXJuIHRydWU7CisJfQorCXJl dHVybiBmYWxzZTsKK30KKworLyoKKyAqIEVuc3VyZSB0aGF0IHRoZSBhdHRyaWJ1dGVzIGluIE1W TkRpc3RpbmN0SXRlbSBBIGFyZSBhIHN1YnNldCBvZiB0aGUKKyAqIHJlZmVyZW5jZSBNVk5EaXN0 aW5jdEl0ZW0gQi4KKyAqLworc3RhdGljIGJvb2wKK2l0ZW1faXNfYXR0bnVtX3N1YnNldChjb25z dCBNVk5EaXN0aW5jdEl0ZW0gKml0ZW0sCisJCQkJCSAgY29uc3QgTVZORGlzdGluY3RJdGVtICpy ZWZpdGVtKQoreworCWZvciAoaW50IGkgPSAwOyBpIDwgaXRlbS0+bmF0dHJpYnV0ZXM7IGkrKykK Kwl7CisJCWlmICghaXRlbV9oYXNfYXR0bnVtKHJlZml0ZW0sIGl0ZW0tPmF0dHJpYnV0ZXNbaV0p KQorCQkJcmV0dXJuIGZhbHNlOworCX0KKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIEdlbmVy YXRlIGEgc3RyaW5nIHJlcHJlc2VudGluZyBhbiBhcnJheSBvZiBhdHRudW0uCisgKgorICogRnJl ZWluZyB0aGUgYWxsb2NhdGVkIHN0cmluZyBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGNh bGxlci4KKyAqLworc3RhdGljIGNoYXIgKgoraXRlbV9hdHRudW1fbGlzdChjb25zdCBNVk5EaXN0 aW5jdEl0ZW0gKml0ZW0pCit7CisJU3RyaW5nSW5mb0RhdGEgc3RyOworCisJaW5pdFN0cmluZ0lu Zm8oJnN0cik7CisKKwlhcHBlbmRTdHJpbmdJbmZvKCZzdHIsICIlZCIsIGl0ZW0tPmF0dHJpYnV0 ZXNbMF0pOworCisJZm9yIChpbnQgaSA9IDE7IGkgPCBpdGVtLT5uYXR0cmlidXRlczsgaSsrKQor CQlhcHBlbmRTdHJpbmdJbmZvKCZzdHIsICIsICVkIiwgaXRlbS0+YXR0cmlidXRlc1tpXSk7CisK KwlyZXR1cm4gc3RyLmRhdGE7Cit9CisKKy8qCisgKiBBdHRlbXB0IHRvIGJ1aWxkIGFuZCBzZXJp YWxpemUgdGhlIE1WTkRpc3RpbmN0IG9iamVjdC4KKyAqCisgKiBUaGlzIGNhbiBvbmx5IGJlIGV4 ZWN1dGVkIGFmdGVyIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBKU09OIHBhcnNpbmcuCisgKgorICog SW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLCBzZXQgdGhlIGVycm9yIGNvbnRleHQgYW5kIHJldHVy biBOVUxMLgorICovCitzdGF0aWMgYnl0ZWEgKgorYnVpbGRfbXZuZGlzdGluY3QoTkRpc3RpbmN0 UGFyc2VTdGF0ZSAqcGFyc2UsIGNoYXIgKnN0cikKK3sKKwlNVk5EaXN0aW5jdCAqbmRpc3RpbmN0 OworCWludAkJCW5pdGVtcyA9IGxpc3RfbGVuZ3RoKHBhcnNlLT5kaXN0aW5jdF9pdGVtcyk7CisJ Ynl0ZWEJICAgKmJ5dGVzOworCWludAkJCWl0ZW1fbW9zdF9hdHRycyA9IDA7CisJaW50CQkJaXRl bV9tb3N0X2F0dHJzX2lkeCA9IDA7CisKKwlzd2l0Y2ggKHBhcnNlLT5zdGF0ZSkKKwl7CisJCWNh c2UgTkRJU1RfRVhQRUNUX0NPTVBMRVRFOgorCisJCQkvKgorCQkJICogUGFyc2luZyBoYXMgZW5k ZWQgY29ycmVjdGx5IGFuZCB3ZSBzaG91bGQgaGF2ZSBhIGxpc3Qgb2YKKwkJCSAqIGl0ZW1zLiAg SWYgd2UgZG9uJ3QsIHNvbWV0aGluZyBoYXMgYmVlbiBkb25lIHdyb25nIGluIG9uZQorCQkJICog b2YgdGhlIGVhcmxpZXIgcGFyc2luZyBzdGVwcy4KKwkJCSAqLworCQkJaWYgKG5pdGVtcyA9PSAw KQorCQkJCWVsb2coRVJST1IsCisJCQkJCSAiY2Fubm90IGhhdmUgZW1wdHkgaXRlbSBsaXN0IGFm dGVyIHBhcnNpbmcgc3VjY2Vzcy4iKTsKKwkJCWJyZWFrOworCisJCWNhc2UgTkRJU1RfRVhQRUNU X1NUQVJUOgorCQkJLyogYmxhbmsgKi8KKwkJCWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJ CQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJCWVy cm1zZygibWFsZm9ybWVkIHBnX25kaXN0aW5jdDogXCIlc1wiIiwgc3RyKSwKKwkJCQkJZXJyZGV0 YWlsKCJWYWx1ZSBjYW5ub3QgYmUgZW1wdHkuIikpOworCQkJcmV0dXJuIE5VTEw7CisKKwkJZGVm YXVsdDoKKwkJCS8qIFVuZXhwZWN0ZWQgZW5kLXN0YXRlLiAqLworCQkJZXJyc2F2ZShwYXJzZS0+ ZXNjb250ZXh0LAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFU SU9OKSwKKwkJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiBcIiVzXCIiLCBzdHIp LAorCQkJCQllcnJkZXRhaWwoIlVuZXhwZWN0ZWQgZW5kIHN0YXRlICVkLiIsIHBhcnNlLT5zdGF0 ZSkpOworCQkJcmV0dXJuIE5VTEw7CisJfQorCisJbmRpc3RpbmN0ID0gcGFsbG9jKG9mZnNldG9m KE1WTkRpc3RpbmN0LCBpdGVtcykgKworCQkJCQkgICBuaXRlbXMgKiBzaXplb2YoTVZORGlzdGlu Y3RJdGVtKSk7CisKKwluZGlzdGluY3QtPm1hZ2ljID0gU1RBVFNfTkRJU1RJTkNUX01BR0lDOwor CW5kaXN0aW5jdC0+dHlwZSA9IFNUQVRTX05ESVNUSU5DVF9UWVBFX0JBU0lDOworCW5kaXN0aW5j dC0+bml0ZW1zID0gbml0ZW1zOworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBuaXRlbXM7IGkrKykK Kwl7CisJCU1WTkRpc3RpbmN0SXRlbSAqaXRlbSA9IGxpc3RfbnRoKHBhcnNlLT5kaXN0aW5jdF9p dGVtcywgaSk7CisKKwkJLyoKKwkJICogRW5zdXJlIHRoYXQgdGhpcyBpdGVtIGRvZXMgbm90IGR1 cGxpY2F0ZSB0aGUgYXR0cmlidXRlcyBvZiBhbnkKKwkJICogcHJlLWV4aXN0aW5nIGl0ZW0uCisJ CSAqLworCQlmb3IgKGludCBqID0gMDsgaiA8IGk7IGorKykKKwkJeworCQkJaWYgKGl0ZW1fYXR0 cmJ1dGVzX2VxKGl0ZW0sICZuZGlzdGluY3QtPml0ZW1zW2pdKSkKKwkJCXsKKwkJCQljaGFyICpz ID0gaXRlbV9hdHRudW1fbGlzdChpdGVtKTsKKworCQkJCWVycnNhdmUocGFyc2UtPmVzY29udGV4 dCwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAor CQkJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiBcIiVzXCIiLCBzdHIpLAorCQkJ CQkJZXJyZGV0YWlsKCJEdXBsaWNhdGVkIFwiJXNcIiBhcnJheSBmb3VuZDogWyVzXSIsCisJCQkJ CQkJCSAgUEdfTkRJU1RJTkNUX0tFWV9BVFRSSUJVVEVTLCBzKSk7CisJCQkJcGZyZWUocyk7CisJ CQkJcmV0dXJuIE5VTEw7CisJCQl9CisJCX0KKworCQluZGlzdGluY3QtPml0ZW1zW2ldLm5kaXN0 aW5jdCA9IGl0ZW0tPm5kaXN0aW5jdDsKKwkJbmRpc3RpbmN0LT5pdGVtc1tpXS5uYXR0cmlidXRl cyA9IGl0ZW0tPm5hdHRyaWJ1dGVzOworCisJCS8qCisJCSAqIFRoaXMgdHJhbnNmZXJzIGZyZWUt aW5nIHJlc3BvbnNpYmlsaXR5IGZyb20gdGhlIGRpc3RpbmN0X2l0ZW1zCisJCSAqIGxpc3QgdG8g dGhlIG5kaXN0aW5jdCBvYmplY3QuCisJCSAqLworCQluZGlzdGluY3QtPml0ZW1zW2ldLmF0dHJp YnV0ZXMgPSBpdGVtLT5hdHRyaWJ1dGVzOworCisJCS8qCisJCSAqIEtlZXAgdHJhY2sgb2YgdGhl IGZpcnN0IGxvbmdlc3QgYXR0cmlidXRlIGxpc3QuIEFsbCBvdGhlcgorCQkgKiBhdHRyaWJ1dGUg bGlzdHMgbXVzdCBiZSBhIHN1YnNldCBvZiB0aGlzIGxpc3QuCisJCSAqLworCQlpZiAoaXRlbS0+ bmF0dHJpYnV0ZXMgPiBpdGVtX21vc3RfYXR0cnMpCisJCXsKKwkJCWl0ZW1fbW9zdF9hdHRycyA9 IGl0ZW0tPm5hdHRyaWJ1dGVzOworCQkJaXRlbV9tb3N0X2F0dHJzX2lkeCA9IGk7CisJCX0KKwl9 CisKKwkvKgorCSAqIFZlcmlmeSB0aGF0IGFsbCB0aGUgc2V0cyBvZiBhdHRyaWJ1dGUgbnVtYmVy cyBhcmUgYSBwcm9wZXIgc3Vic2V0CisJICogb2YgdGhlIGxvbmdlc3Qgc2V0IHJlY29yZGVkLiAg VGhpcyBhY3RzIGFzIGFuIGV4dHJhIHNhbml0eSBjaGVjaworCSAqIGJhc2VkIG9uIHRoZSBpbnB1 dCBnaXZlbi4gIE5vdGUgdGhhdCB0aGlzIHN0aWxsIG5lZWRzIHRvIGJlCisJICogY3Jvc3MtY2hl Y2tlZCB3aXRoIHRoZSBleHRlbmRlZCBzdGF0aXN0aWNzIG9iamVjdHMgdGhpcyB3b3VsZCBiZQor CSAqIGFzc2lnbmVkIHRvLCBidXQgaXQgcHJvdmlkZXMgb25lIGV4dHJhIGxheWVyIG9mIHByb3Rl Y3Rpb24uCisJICovCisJZm9yIChpbnQgaSA9IDA7IGkgPCBuaXRlbXM7IGkrKykKKwl7CisJCWlm IChpID09IGl0ZW1fbW9zdF9hdHRyc19pZHgpCisJCQljb250aW51ZTsKKworCQlpZiAoIWl0ZW1f aXNfYXR0bnVtX3N1YnNldCgmbmRpc3RpbmN0LT5pdGVtc1tpXSwKKwkJCQkJCQkJICAgJm5kaXN0 aW5jdC0+aXRlbXNbaXRlbV9tb3N0X2F0dHJzX2lkeF0pKQorCQl7CisJCQljb25zdCBNVk5EaXN0 aW5jdEl0ZW0gKml0ZW0gPSAmbmRpc3RpbmN0LT5pdGVtc1tpXTsKKwkJCWNvbnN0IE1WTkRpc3Rp bmN0SXRlbSAqcmVmaXRlbSA9ICZuZGlzdGluY3QtPml0ZW1zW2l0ZW1fbW9zdF9hdHRyc19pZHhd OworCQkJY2hhciAqaXRlbV9saXN0ID0gaXRlbV9hdHRudW1fbGlzdChpdGVtKTsKKwkJCWNoYXIg KnJlZml0ZW1fbGlzdCA9IGl0ZW1fYXR0bnVtX2xpc3QocmVmaXRlbSk7CisKKwkJCWVycnNhdmUo cGFyc2UtPmVzY29udGV4dCwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBS RVNFTlRBVElPTiksCisJCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX25kaXN0aW5jdDogXCIlc1wi Iiwgc3RyKSwKKwkJCQkJZXJyZGV0YWlsKCJcIiVzXCIgYXJyYXk6IFslc10gbXVzdCBiZSBhIHN1 YnNldCBvZiBhcnJheTogWyVzXSIsCisJCQkJCQkJICBQR19ORElTVElOQ1RfS0VZX0FUVFJJQlVU RVMsCisJCQkJCQkJICBpdGVtX2xpc3QsIHJlZml0ZW1fbGlzdCkpOworCQkJcGZyZWUoaXRlbV9s aXN0KTsKKwkJCXBmcmVlKHJlZml0ZW1fbGlzdCk7CisJCQlyZXR1cm4gTlVMTDsKKwkJfQorCX0K KworCWJ5dGVzID0gc3RhdGV4dF9uZGlzdGluY3Rfc2VyaWFsaXplKG5kaXN0aW5jdCk7CisKKwkv KgorCSAqIEZyZWUgdGhlIGF0dHJpYnV0ZSBsaXN0cywgYmVmb3JlIHRoZSBuZGlzdGluY3QgaXRz ZWxmLgorCSAqLworCWZvciAoaW50IGkgPSAwOyBpIDwgbml0ZW1zOyBpKyspCisJCXBmcmVlKG5k aXN0aW5jdC0+aXRlbXNbaV0uYXR0cmlidXRlcyk7CisJcGZyZWUobmRpc3RpbmN0KTsKKworCXJl dHVybiBieXRlczsKK30KKworLyoKKyAqIHBnX25kaXN0aW5jdF9pbgorICoJCWlucHV0IHJvdXRp bmUgZm9yIHR5cGUgcGdfbmRpc3RpbmN0LgogICovCiBEYXR1bQogcGdfbmRpc3RpbmN0X2luKFBH X0ZVTkNUSU9OX0FSR1MpCiB7Ci0JZXJlcG9ydChFUlJPUiwKLQkJCShlcnJjb2RlKEVSUkNPREVf RkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCSBlcnJtc2coImNhbm5vdCBhY2NlcHQgYSB2YWx1 ZSBvZiB0eXBlICVzIiwgInBnX25kaXN0aW5jdCIpKSk7CisJY2hhcgkgICAqc3RyID0gUEdfR0VU QVJHX0NTVFJJTkcoMCk7CisJTkRpc3RpbmN0UGFyc2VTdGF0ZSBwYXJzZV9zdGF0ZTsKKwlKc29u UGFyc2VFcnJvclR5cGUgcmVzdWx0OworCUpzb25MZXhDb250ZXh0ICpsZXg7CisJSnNvblNlbUFj dGlvbiBzZW1fYWN0aW9uOworCWJ5dGVhCSAgICpieXRlcyA9IE5VTEw7CiAKLQlQR19SRVRVUk5f Vk9JRCgpOwkJCS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KKwkvKiBpbml0aWFsaXplIHNlbWFu dGljIHN0YXRlICovCisJcGFyc2Vfc3RhdGUuc3RyID0gc3RyOworCXBhcnNlX3N0YXRlLnN0YXRl ID0gTkRJU1RfRVhQRUNUX1NUQVJUOworCXBhcnNlX3N0YXRlLmRpc3RpbmN0X2l0ZW1zID0gTklM OworCXBhcnNlX3N0YXRlLmVzY29udGV4dCA9IGZjaW5mby0+Y29udGV4dDsKKwlwYXJzZV9zdGF0 ZS5mb3VuZF9hdHRyaWJ1dGVzID0gZmFsc2U7CisJcGFyc2Vfc3RhdGUuZm91bmRfbmRpc3RpbmN0 ID0gZmFsc2U7CisJcGFyc2Vfc3RhdGUuYXR0bnVtX2xpc3QgPSBOSUw7CisJcGFyc2Vfc3RhdGUu bmRpc3RpbmN0ID0gMDsKKworCS8qIHNldCBjYWxsYmFja3MgKi8KKwlzZW1fYWN0aW9uLnNlbXN0 YXRlID0gKHZvaWQgKikgJnBhcnNlX3N0YXRlOworCXNlbV9hY3Rpb24ub2JqZWN0X3N0YXJ0ID0g bmRpc3RpbmN0X29iamVjdF9zdGFydDsKKwlzZW1fYWN0aW9uLm9iamVjdF9lbmQgPSBuZGlzdGlu Y3Rfb2JqZWN0X2VuZDsKKwlzZW1fYWN0aW9uLmFycmF5X3N0YXJ0ID0gbmRpc3RpbmN0X2FycmF5 X3N0YXJ0OworCXNlbV9hY3Rpb24uYXJyYXlfZW5kID0gbmRpc3RpbmN0X2FycmF5X2VuZDsKKwlz ZW1fYWN0aW9uLm9iamVjdF9maWVsZF9zdGFydCA9IG5kaXN0aW5jdF9vYmplY3RfZmllbGRfc3Rh cnQ7CisJc2VtX2FjdGlvbi5vYmplY3RfZmllbGRfZW5kID0gTlVMTDsKKwlzZW1fYWN0aW9uLmFy cmF5X2VsZW1lbnRfc3RhcnQgPSBuZGlzdGluY3RfYXJyYXlfZWxlbWVudF9zdGFydDsKKwlzZW1f YWN0aW9uLmFycmF5X2VsZW1lbnRfZW5kID0gTlVMTDsKKwlzZW1fYWN0aW9uLnNjYWxhciA9IG5k aXN0aW5jdF9zY2FsYXI7CisKKwlsZXggPSBtYWtlSnNvbkxleENvbnRleHRDc3RyaW5nTGVuKE5V TEwsIHN0ciwgc3RybGVuKHN0ciksCisJCQkJCQkJCQkgICBQR19VVEY4LCB0cnVlKTsKKwlyZXN1 bHQgPSBwZ19wYXJzZV9qc29uKGxleCwgJnNlbV9hY3Rpb24pOworCWZyZWVKc29uTGV4Q29udGV4 dChsZXgpOworCisJaWYgKHJlc3VsdCA9PSBKU09OX1NVQ0NFU1MpCisJCWJ5dGVzID0gYnVpbGRf bXZuZGlzdGluY3QoJnBhcnNlX3N0YXRlLCBzdHIpOworCisJbGlzdF9mcmVlKHBhcnNlX3N0YXRl LmF0dG51bV9saXN0KTsKKwlsaXN0X2ZyZWVfZGVlcChwYXJzZV9zdGF0ZS5kaXN0aW5jdF9pdGVt cyk7CisKKwlpZiAoYnl0ZXMpCisJCVBHX1JFVFVSTl9CWVRFQV9QKGJ5dGVzKTsKKworCS8qCisJ ICogSWYgZXNjb250ZXh0IGFscmVhZHkgc2V0LCBqdXN0IHVzZSB0aGF0LiBBbnl0aGluZyBlbHNl IGlzIGEgZ2VuZXJpYworCSAqIEpTT04gcGFyc2UgZXJyb3IuCisJICovCisJaWYgKCFTT0ZUX0VS Uk9SX09DQ1VSUkVEKHBhcnNlX3N0YXRlLmVzY29udGV4dCkpCisJCWVycnNhdmUocGFyc2Vfc3Rh dGUuZXNjb250ZXh0LAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5U QVRJT04pLAorCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX25kaXN0aW5jdDogXCIlc1wiIiwgc3Ry KSwKKwkJCQllcnJkZXRhaWwoIk11c3QgYmUgdmFsaWQgSlNPTi4iKSk7CisKKwlQR19SRVRVUk5f TlVMTCgpOwogfQogCisKIC8qCiAgKiBwZ19uZGlzdGluY3Rfb3V0CiAgKgkJb3V0cHV0IHJvdXRp bmUgZm9yIHR5cGUgcGdfbmRpc3RpbmN0CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BnX25kaXN0aW5jdC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BnX25k aXN0aW5jdC5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjEwYWRl YmJkZmY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wZ19u ZGlzdGluY3Qub3V0CkBAIC0wLDAgKzEsNDA5IEBACistLSBUZXN0cyBmb3IgdHlwZSBwZ19uZGlz dGluY3QKKy0tIEludmFsaWQgaW5wdXRzCitTRUxFQ1QgJ251bGwnOjpwZ19uZGlzdGluY3Q7CitF UlJPUjogIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJudWxsIgorTElORSAxOiBTRUxFQ1QgJ251 bGwnOjpwZ19uZGlzdGluY3Q7CisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBVbmV4cGVjdGVk IHNjYWxhci4KK1NFTEVDVCAneyJhIjogMX0nOjpwZ19uZGlzdGluY3Q7CitFUlJPUjogIG1hbGZv cm1lZCBwZ19uZGlzdGluY3Q6ICJ7ImEiOiAxfSIKK0xJTkUgMTogU0VMRUNUICd7ImEiOiAxfSc6 OnBnX25kaXN0aW5jdDsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIEluaXRpYWwgZWxlbWVu dCBtdXN0IGJlIGFuIGFycmF5LgorU0VMRUNUICdbXSc6OnBnX25kaXN0aW5jdDsKK0VSUk9SOiAg bWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIltdIgorTElORSAxOiBTRUxFQ1QgJ1tdJzo6cGdfbmRp c3RpbmN0OworICAgICAgICAgICAgICAgXgorREVUQUlMOiAgSXRlbSBhcnJheSBjYW5ub3QgYmUg ZW1wdHkuCitTRUxFQ1QgJ3t9Jzo6cGdfbmRpc3RpbmN0OworRVJST1I6ICBtYWxmb3JtZWQgcGdf bmRpc3RpbmN0OiAie30iCitMSU5FIDE6IFNFTEVDVCAne30nOjpwZ19uZGlzdGluY3Q7CisgICAg ICAgICAgICAgICBeCitERVRBSUw6ICBJbml0aWFsIGVsZW1lbnQgbXVzdCBiZSBhbiBhcnJheS4K K1NFTEVDVCAnW251bGxdJzo6cGdfbmRpc3RpbmN0OworRVJST1I6ICBtYWxmb3JtZWQgcGdfbmRp c3RpbmN0OiAiW251bGxdIgorTElORSAxOiBTRUxFQ1QgJ1tudWxsXSc6OnBnX25kaXN0aW5jdDsK KyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIEl0ZW0gbGlzdCBlbGVtZW50cyBjYW5ub3QgYmUg bnVsbC4KK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnbnVsbCcsICdwZ19uZGlz dGluY3QnKTsKKyAgICAgICAgICAgIG1lc3NhZ2UgICAgICAgICAgICAgfCAgICAgICBkZXRhaWwg ICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1h bGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJudWxsIiB8IFVuZXhwZWN0ZWQgc2NhbGFyLiB8ICAgICAg fCAyMlAwMgorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ3si YSI6IDF9JywgJ3BnX25kaXN0aW5jdCcpOworICAgICAgICAgICAgICBtZXNzYWdlICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgZGV0YWlsICAgICAgICAgICAgICAgfCBoaW50IHwgc3FsX2Vy cm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxm b3JtZWQgcGdfbmRpc3RpbmN0OiAieyJhIjogMX0iIHwgSW5pdGlhbCBlbGVtZW50IG11c3QgYmUg YW4gYXJyYXkuIHwgICAgICB8IDIyUDAyCisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gcGdfaW5w dXRfZXJyb3JfaW5mbygnW10nLCAncGdfbmRpc3RpbmN0Jyk7CisgICAgICAgICAgIG1lc3NhZ2Ug ICAgICAgICAgICB8ICAgICAgICAgICBkZXRhaWwgICAgICAgICAgICB8IGhpbnQgfCBzcWxfZXJy b3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19uZGlz dGluY3Q6ICJbXSIgfCBJdGVtIGFycmF5IGNhbm5vdCBiZSBlbXB0eS4gfCAgICAgIHwgMjJQMDIK KygxIHJvdykKKworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCd7fScsICdwZ19u ZGlzdGluY3QnKTsKKyAgICAgICAgICAgbWVzc2FnZSAgICAgICAgICAgIHwgICAgICAgICAgICAg IGRldGFpbCAgICAgICAgICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogInt9IiB8 IEluaXRpYWwgZWxlbWVudCBtdXN0IGJlIGFuIGFycmF5LiB8ICAgICAgfCAyMlAwMgorKDEgcm93 KQorCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1tudWxsXScsICdwZ19uZGlz dGluY3QnKTsKKyAgICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgZGV0YWlsICAgICAgICAgICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6 ICJbbnVsbF0iIHwgSXRlbSBsaXN0IGVsZW1lbnRzIGNhbm5vdCBiZSBudWxsLiB8ICAgICAgfCAy MlAwMgorKDEgcm93KQorCistLSBJbnZhbGlkIGtleXMKK1NFTEVDVCAnW3siYXR0cmlidXRlc19p bnZhbGlkIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IDR9XSc6OnBnX25kaXN0aW5jdDsKK0VSUk9S OiAgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXNfaW52YWxpZCIgOiBbMiwz XSwgIm5kaXN0aW5jdCIgOiA0fV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRlc19pbnZh bGlkIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IDR9XSc6Oi4uLgorICAgICAgICAgICAgICAgXgor REVUQUlMOiAgT25seSBhbGxvd2VkIGtleXMgYXJlICJhdHRyaWJ1dGVzIiBhbmQgIm5kaXN0aW5j dCIuCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJpbnZhbGlkIiA6IDMsICJuZGlz dGluY3QiIDogNH1dJzo6cGdfbmRpc3RpbmN0OworRVJST1I6ICBtYWxmb3JtZWQgcGdfbmRpc3Rp bmN0OiAiW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImludmFsaWQiIDogMywgIm5kaXN0aW5jdCIg OiA0fV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImludmFsaWQi IDogMywgIm5kaXN0aW5jdCIgOi4uLgorICAgICAgICAgICAgICAgXgorREVUQUlMOiAgT25seSBh bGxvd2VkIGtleXMgYXJlICJhdHRyaWJ1dGVzIiBhbmQgIm5kaXN0aW5jdCIuCitTRUxFQ1QgJ1t7 ImF0dHJpYnV0ZXMiIDogWzIsM10sICJhdHRyaWJ1dGVzIiA6IFsxLDNdLCAibmRpc3RpbmN0IiA6 IDR9XSc6OnBnX25kaXN0aW5jdDsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7 ImF0dHJpYnV0ZXMiIDogWzIsM10sICJhdHRyaWJ1dGVzIiA6IFsxLDNdLCAibmRpc3RpbmN0IiA6 IDR9XSIKK0xJTkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiYXR0cmlidXRl cyIgOiBbMSwzXSwgIm5kaXN0Li4uCisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBNdWx0aXBs ZSAiYXR0cmlidXRlcyIga2V5cyBhcmUgbm90IGFsbG93ZWQuCitTRUxFQ1QgJ1t7ImF0dHJpYnV0 ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogNCwgIm5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlz dGluY3Q7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1dGVzIiA6 IFsyLDNdLCAibmRpc3RpbmN0IiA6IDQsICJuZGlzdGluY3QiIDogNH1dIgorTElORSAxOiBTRUxF Q1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogNCwgIm5kaXN0aW5jdCIu Li4KKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIE11bHRpcGxlICJuZGlzdGluY3QiIGtleXMg YXJlIG5vdCBhbGxvd2VkLgorU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJh dHRyaWJ1dGVzX2ludmFsaWQiIDogWzIsM10sICJuZGlzdGluY3QiIDogNH1dJywgJ3BnX25kaXN0 aW5jdCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICBkZXRh aWwgICAgICAgICAgICAgICAgICAgICAgICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFsZm9ybWVkIHBnX25kaXN0 aW5jdDogIlt7ImF0dHJpYnV0ZXNfaW52YWxpZCIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiA0fV0i IHwgT25seSBhbGxvd2VkIGtleXMgYXJlICJhdHRyaWJ1dGVzIiBhbmQgIm5kaXN0aW5jdCIuIHwg ICAgICB8IDIyUDAyCisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5m bygnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImludmFsaWQiIDogMywgIm5kaXN0aW5jdCIgOiA0 fV0nLCAncGdfbmRpc3RpbmN0Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1lc3NhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICBkZXRhaWwgICAgICAgICAgICAgICAgICAgICAgICB8IGhpbnQgfCBz cWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0t LS0tLS0tLQorIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNd LCAiaW52YWxpZCIgOiAzLCAibmRpc3RpbmN0IiA6IDR9XSIgfCBPbmx5IGFsbG93ZWQga2V5cyBh cmUgImF0dHJpYnV0ZXMiIGFuZCAibmRpc3RpbmN0Ii4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykK KworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsy LDNdLCAiYXR0cmlidXRlcyIgOiBbMSwzXSwgIm5kaXN0aW5jdCIgOiA0fV0nLCAncGdfbmRpc3Rp bmN0Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdl ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICBkZXRhaWwgICAgICAgICAgICAgICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9jb2RlIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxmb3Jt ZWQgcGdfbmRpc3RpbmN0OiAiW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImF0dHJpYnV0ZXMiIDog WzEsM10sICJuZGlzdGluY3QiIDogNH1dIiB8IE11bHRpcGxlICJhdHRyaWJ1dGVzIiBrZXlzIGFy ZSBub3QgYWxsb3dlZC4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBw Z19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6 IDQsICJuZGlzdGluY3QiIDogNH1dJywgJ3BnX25kaXN0aW5jdCcpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIGRldGFpbCAgICAgICAgICAgICAgICAg ICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0t LS0tLS0tLS0tLS0tCisgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDog WzIsM10sICJuZGlzdGluY3QiIDogNCwgIm5kaXN0aW5jdCIgOiA0fV0iIHwgTXVsdGlwbGUgIm5k aXN0aW5jdCIga2V5cyBhcmUgbm90IGFsbG93ZWQuIHwgICAgICB8IDIyUDAyCisoMSByb3cpCisK Ky0tIE1pc3Npbmcga2V5CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM119XSc6OnBnX25k aXN0aW5jdDsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMi IDogWzIsM119XSIKK0xJTkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdfV0nOjpw Z19uZGlzdGluY3Q7CisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBJdGVtIG11c3QgY29udGFp biAibmRpc3RpbmN0IiBrZXkuCitTRUxFQ1QgJ1t7Im5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlz dGluY3Q7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJbeyJuZGlzdGluY3QiIDog NH1dIgorTElORSAxOiBTRUxFQ1QgJ1t7Im5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlzdGluY3Q7 CisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBJdGVtIG11c3QgY29udGFpbiAiYXR0cmlidXRl cyIga2V5LgorU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVz IiA6IFsyLDNdfV0nLCAncGdfbmRpc3RpbmN0Jyk7CisgICAgICAgICAgICAgICAgICAgICAgbWVz c2FnZSAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIGRldGFpbCAgICAgICAg ICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0 OiAiW3siYXR0cmlidXRlcyIgOiBbMiwzXX1dIiB8IEl0ZW0gbXVzdCBjb250YWluICJuZGlzdGlu Y3QiIGtleS4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBwZ19pbnB1 dF9lcnJvcl9pbmZvKCdbeyJuZGlzdGluY3QiIDogNH1dJywgJ3BnX25kaXN0aW5jdCcpOworICAg ICAgICAgICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgZGV0YWlsICAgICAgICAgICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1l ZCBwZ19uZGlzdGluY3Q6ICJbeyJuZGlzdGluY3QiIDogNH1dIiB8IEl0ZW0gbXVzdCBjb250YWlu ICJhdHRyaWJ1dGVzIiBrZXkuIHwgICAgICB8IDIyUDAyCisoMSByb3cpCisKKy0tIFZhbGlkIGtl eXMsIHRvbyBtYW55IGF0dHJpYnV0ZXMKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMSwyLDMs NCw1LDYsNyw4LDldLCAibmRpc3RpbmN0IiA6IDR9XSc6OnBnX25kaXN0aW5jdDsKK0VSUk9SOiAg bWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDogWzEsMiwzLDQsNSw2LDcs OCw5XSwgIm5kaXN0aW5jdCIgOiA0fV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRlcyIg OiBbMSwyLDMsNCw1LDYsNyw4LDldLCAibmRpc3RpbmN0IiA6IC4uLgorICAgICAgICAgICAgICAg XgorREVUQUlMOiAgVGhlICJhdHRyaWJ1dGVzIiBrZXkgbXVzdCBjb250YWluIGFuIGFycmF5IG9m IGF0IGxlYXN0IDIgYW5kIG5vIG1vcmUgdGhhbiA4IGF0dHJpYnV0ZXMuCistLSBTcGVjaWFsIGNo YXJhY3RlcnMKK1NFTEVDVCAnW3siXHVkODNkXHVkZTA0XHVkODNkXHVkYzM2IiA6IFsxLCAyXSwg Im5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlzdGluY3Q7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19u ZGlzdGluY3Q6ICJbeyJcdWQ4M2RcdWRlMDRcdWQ4M2RcdWRjMzYiIDogWzEsIDJdLCAibmRpc3Rp bmN0IiA6IDR9XSIKK0xJTkUgMTogU0VMRUNUICdbeyJcdWQ4M2RcdWRlMDRcdWQ4M2RcdWRjMzYi IDogWzEsIDJdLCAibmRpc3RpbmN0IiA6Li4uCisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBP bmx5IGFsbG93ZWQga2V5cyBhcmUgImF0dHJpYnV0ZXMiIGFuZCAibmRpc3RpbmN0Ii4KK1NFTEVD VCAnW3siYXR0cmlidXRlcyIgOiBbMSwgMl0sICJcdWQ4M2RcdWRlMDRcdWQ4M2RcdWRjMzYiIDog NH1dJzo6cGdfbmRpc3RpbmN0OworRVJST1I6ICBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3si YXR0cmlidXRlcyIgOiBbMSwgMl0sICJcdWQ4M2RcdWRlMDRcdWQ4M2RcdWRjMzYiIDogNH1dIgor TElORSAxOiBTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzEsIDJdLCAiXHVkODNkXHVkZTA0XHVk ODNkXHVkYzM2IiAuLi4KKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIE9ubHkgYWxsb3dlZCBr ZXlzIGFyZSAiYXR0cmlidXRlcyIgYW5kICJuZGlzdGluY3QiLgorU0VMRUNUICdbeyJhdHRyaWJ1 dGVzIiA6IFsxLCAyXSwgIm5kaXN0aW5jdCIgOiAiXHVkODNkXHVkZTA0XHVkODNkXHVkYzM2In1d Jzo6cGdfbmRpc3RpbmN0OworRVJST1I6ICBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3siYXR0 cmlidXRlcyIgOiBbMSwgMl0sICJuZGlzdGluY3QiIDogIlx1ZDgzZFx1ZGUwNFx1ZDgzZFx1ZGMz NiJ9XSIKK0xJTkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsxLCAyXSwgIm5kaXN0aW5j dCIgOiAiXHVkODNkXHVkZTA0Li4uCisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBJbnZhbGlk ICJuZGlzdGluY3QiIHZhbHVlLgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsiXHVkODNkXHVk ZTA0XHVkODNkXHVkYzM2IiwgMl0sICJuZGlzdGluY3QiIDogMX1dJzo6cGdfbmRpc3RpbmN0Owor RVJST1I6ICBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3siYXR0cmlidXRlcyIgOiBbIlx1ZDgz ZFx1ZGUwNFx1ZDgzZFx1ZGMzNiIsIDJdLCAibmRpc3RpbmN0IiA6IDF9XSIKK0xJTkUgMTogU0VM RUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsiXHVkODNkXHVkZTA0XHVkODNkXHVkYzM2IiwgMl0sICJu Li4uCisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBJbnZhbGlkICJhdHRyaWJ1dGVzIiB2YWx1 ZS4KKy0tIFZhbGlkIGtleXMsIGludmFsaWQgdmFsdWVzCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMi IDogbnVsbCwgIm5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlzdGluY3Q7CitFUlJPUjogIG1hbGZv cm1lZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1dGVzIiA6IG51bGwsICJuZGlzdGluY3QiIDog NH1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogbnVsbCwgIm5kaXN0aW5jdCIg OiA0fV0nOjpwZ19uZGlzdGkuLi4KKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIFVuZXhwZWN0 ZWQgc2NhbGFyLgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFtdLCAibmRpc3RpbmN0IiA6IDF9 XSc6OnBnX25kaXN0aW5jdDsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0 dHJpYnV0ZXMiIDogW10sICJuZGlzdGluY3QiIDogMX1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0 dHJpYnV0ZXMiIDogW10sICJuZGlzdGluY3QiIDogMX1dJzo6cGdfbmRpc3RpbmMuLi4KKyAgICAg ICAgICAgICAgIF4KK0RFVEFJTDogIFRoZSAiYXR0cmlidXRlcyIga2V5IG11c3QgYmUgYSBub24t ZW1wdHkgYXJyYXkuCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzJdLCAibmRpc3RpbmN0IiA6 IDR9XSc6OnBnX25kaXN0aW5jdDsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7 ImF0dHJpYnV0ZXMiIDogWzJdLCAibmRpc3RpbmN0IiA6IDR9XSIKK0xJTkUgMTogU0VMRUNUICdb eyJhdHRyaWJ1dGVzIiA6IFsyXSwgIm5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlzdGluLi4uCisg ICAgICAgICAgICAgICBeCitERVRBSUw6ICBUaGUgImF0dHJpYnV0ZXMiIGtleSBtdXN0IGNvbnRh aW4gYW4gYXJyYXkgb2YgYXQgbGVhc3QgMiBhbmQgbm8gbW9yZSB0aGFuIDggYXR0cmlidXRlcy4K K1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMixudWxsXSwgIm5kaXN0aW5jdCIgOiA0fV0nOjpw Z19uZGlzdGluY3Q7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1 dGVzIiA6IFsyLG51bGxdLCAibmRpc3RpbmN0IiA6IDR9XSIKK0xJTkUgMTogU0VMRUNUICdbeyJh dHRyaWJ1dGVzIiA6IFsyLG51bGxdLCAibmRpc3RpbmN0IiA6IDR9XSc6OnBnX25kLi4uCisgICAg ICAgICAgICAgICBeCitERVRBSUw6ICBBdHRyaWJ1dGUgbnVtYmVyIGFycmF5IGNhbm5vdCBiZSBu dWxsLgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IG51bGx9 XSc6OnBnX25kaXN0aW5jdDsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0 dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogbnVsbH1dIgorTElORSAxOiBTRUxFQ1Qg J1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogbnVsbH1dJzo6cGdfbmQuLi4K KyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIEludmFsaWQgIm5kaXN0aW5jdCIgdmFsdWUuCitT RUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsImEiXSwgIm5kaXN0aW5jdCIgOiA0fV0nOjpwZ19u ZGlzdGluY3Q7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1dGVz IiA6IFsyLCJhIl0sICJuZGlzdGluY3QiIDogNH1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0dHJp YnV0ZXMiIDogWzIsImEiXSwgIm5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGkuLi4KKyAgICAgICAg ICAgICAgIF4KK0RFVEFJTDogIEludmFsaWQgImF0dHJpYnV0ZXMiIHZhbHVlLgorU0VMRUNUICdb eyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6ICJhIn1dJzo6cGdfbmRpc3RpbmN0 OworRVJST1I6ICBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3siYXR0cmlidXRlcyIgOiBbMiwz XSwgIm5kaXN0aW5jdCIgOiAiYSJ9XSIKK0xJTkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6 IFsyLDNdLCAibmRpc3RpbmN0IiA6ICJhIn1dJzo6cGdfbmRpLi4uCisgICAgICAgICAgICAgICBe CitERVRBSUw6ICBJbnZhbGlkICJuZGlzdGluY3QiIHZhbHVlLgorU0VMRUNUICdbeyJhdHRyaWJ1 dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IFtdfV0nOjpwZ19uZGlzdGluY3Q7CitFUlJPUjog IG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAibmRpc3Rp bmN0IiA6IFtdfV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgIm5k aXN0aW5jdCIgOiBbXX1dJzo6cGdfbmRpcy4uLgorICAgICAgICAgICAgICAgXgorREVUQUlMOiAg QXJyYXkgZm91bmQgaW4gdW5leHBlY3RlZCBwbGFjZS4KK1NFTEVDVCAnW3siYXR0cmlidXRlcyIg OiBbMiwzXSwgIm5kaXN0aW5jdCIgOiBbbnVsbF19XSc6OnBnX25kaXN0aW5jdDsKK0VSUk9SOiAg bWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGlu Y3QiIDogW251bGxdfV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwg Im5kaXN0aW5jdCIgOiBbbnVsbF19XSc6OnBnXy4uLgorICAgICAgICAgICAgICAgXgorREVUQUlM OiAgQXJyYXkgZm91bmQgaW4gdW5leHBlY3RlZCBwbGFjZS4KK1NFTEVDVCAnW3siYXR0cmlidXRl cyIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiBbMSxudWxsXX1dJzo6cGdfbmRpc3RpbmN0OworRVJS T1I6ICBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgIm5k aXN0aW5jdCIgOiBbMSxudWxsXX1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDog WzIsM10sICJuZGlzdGluY3QiIDogWzEsbnVsbF19XSc6OnAuLi4KKyAgICAgICAgICAgICAgIF4K K0RFVEFJTDogIEFycmF5IGZvdW5kIGluIHVuZXhwZWN0ZWQgcGxhY2UuCitTRUxFQ1QgJ1t7ImF0 dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogeyJhIjogMX19XSc6OnBnX25kaXN0aW5j dDsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDogWzIs M10sICJuZGlzdGluY3QiIDogeyJhIjogMX19XSIKK0xJTkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1 dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IHsiYSI6IDF9fV0nOjpwLi4uCisgICAgICAgICAg ICAgICBeCitERVRBSUw6ICBWYWx1ZSBvZiAibmRpc3RpbmN0IiBtdXN0IGJlIGFuIGludGVnZXIu CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzAsMV0sICJuZGlzdGluY3QiIDogMX1dJzo6cGdf bmRpc3RpbmN0OworRVJST1I6ICBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3siYXR0cmlidXRl cyIgOiBbMCwxXSwgIm5kaXN0aW5jdCIgOiAxfV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmli dXRlcyIgOiBbMCwxXSwgIm5kaXN0aW5jdCIgOiAxfV0nOjpwZ19uZGlzdC4uLgorICAgICAgICAg ICAgICAgXgorREVUQUlMOiAgSW52YWxpZCAiYXR0cmlidXRlcyIgZWxlbWVudDogMC4KK1NFTEVD VCAnW3siYXR0cmlidXRlcyIgOiBbLTcsLTldLCAibmRpc3RpbmN0IiA6IDF9XSc6OnBnX25kaXN0 aW5jdDsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDog Wy03LC05XSwgIm5kaXN0aW5jdCIgOiAxfV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRl cyIgOiBbLTcsLTldLCAibmRpc3RpbmN0IiA6IDF9XSc6OnBnX25kaS4uLgorICAgICAgICAgICAg ICAgXgorREVUQUlMOiAgSW52YWxpZCAiYXR0cmlidXRlcyIgZWxlbWVudDogLTkuCitTRUxFQ1Qg J1t7ImF0dHJpYnV0ZXMiIDogMSwgIm5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlzdGluY3Q7CitF UlJPUjogIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1dGVzIiA6IDEsICJuZGlz dGluY3QiIDogNH1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogMSwgIm5kaXN0 aW5jdCIgOiA0fV0nOjpwZ19uZGlzdGluY3QuLi4KKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDog IFVuZXhwZWN0ZWQgc2NhbGFyLgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6ICJhIiwgIm5kaXN0 aW5jdCIgOiA0fV0nOjpwZ19uZGlzdGluY3Q7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19uZGlzdGlu Y3Q6ICJbeyJhdHRyaWJ1dGVzIiA6ICJhIiwgIm5kaXN0aW5jdCIgOiA0fV0iCitMSU5FIDE6IFNF TEVDVCAnW3siYXR0cmlidXRlcyIgOiAiYSIsICJuZGlzdGluY3QiIDogNH1dJzo6cGdfbmRpc3Rp bi4uLgorICAgICAgICAgICAgICAgXgorREVUQUlMOiAgVW5leHBlY3RlZCBzY2FsYXIuCitTRUxF Q1QgJ1t7ImF0dHJpYnV0ZXMiIDogeyJhIjogMX0sICJuZGlzdGluY3QiIDogMX1dJzo6cGdfbmRp c3RpbmN0OworRVJST1I6ICBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3siYXR0cmlidXRlcyIg OiB7ImEiOiAxfSwgIm5kaXN0aW5jdCIgOiAxfV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmli dXRlcyIgOiB7ImEiOiAxfSwgIm5kaXN0aW5jdCIgOiAxfV0nOjpwZ19uZC4uLgorICAgICAgICAg ICAgICAgXgorREVUQUlMOiAgVmFsdWUgb2YgImF0dHJpYnV0ZXMiIG11c3QgYmUgYW4gYXJyYXkg b2YgYXR0cmlidXRlIG51bWJlcnMuCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzEsIHsiYSI6 IDF9XSwgIm5kaXN0aW5jdCIgOiAxfV0nOjpwZ19uZGlzdGluY3Q7CitFUlJPUjogIG1hbGZvcm1l ZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1dGVzIiA6IFsxLCB7ImEiOiAxfV0sICJuZGlzdGlu Y3QiIDogMX1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzEsIHsiYSI6IDF9 XSwgIm5kaXN0aW5jdCIgOiAxfV0nOjouLi4KKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIEF0 dHJpYnV0ZSBsaXN0cyBjYW4gb25seSBjb250YWluIGF0dHJpYnV0ZSBudW1iZXJzLgorU0VMRUNU ICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IG51bGwsICJuZGlz dGluY3QiIDogNH1dJywgJ3BnX25kaXN0aW5jdCcpOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWVzc2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIGRldGFp bCAgICAgICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFsZm9ybWVkIHBnX25kaXN0aW5j dDogIlt7ImF0dHJpYnV0ZXMiIDogbnVsbCwgIm5kaXN0aW5jdCIgOiA0fV0iIHwgVW5leHBlY3Rl ZCBzY2FsYXIuIHwgICAgICB8IDIyUDAyCisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gcGdfaW5w dXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBbXSwgIm5kaXN0aW5jdCIgOiAxfV0nLCAn cGdfbmRpc3RpbmN0Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgZGV0YWlsICAg ICAgICAgICAgICAgICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3siYXR0cmlidXRlcyIg OiBbXSwgIm5kaXN0aW5jdCIgOiAxfV0iIHwgVGhlICJhdHRyaWJ1dGVzIiBrZXkgbXVzdCBiZSBh IG5vbi1lbXB0eSBhcnJheS4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykKKworU0VMRUNUICogRlJP TSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyXSwgIm5kaXN0aW5jdCIg OiA0fV0nLCAncGdfbmRpc3RpbmN0Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt ZXNzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGV0YWlsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFsZm9y bWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDogWzJdLCAibmRpc3RpbmN0IiA6IDR9 XSIgfCBUaGUgImF0dHJpYnV0ZXMiIGtleSBtdXN0IGNvbnRhaW4gYW4gYXJyYXkgb2YgYXQgbGVh c3QgMiBhbmQgbm8gbW9yZSB0aGFuIDggYXR0cmlidXRlcy4gfCAgICAgIHwgMjJQMDIKKygxIHJv dykKKworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6 IFsyLG51bGxdLCAibmRpc3RpbmN0IiA6IDR9XScsICdwZ19uZGlzdGluY3QnKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgIGRldGFpbCAgICAgICAgICAgICAgICAgfCBoaW50IHwg c3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19u ZGlzdGluY3Q6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLG51bGxdLCAibmRpc3RpbmN0IiA6IDR9XSIg fCBBdHRyaWJ1dGUgbnVtYmVyIGFycmF5IGNhbm5vdCBiZSBudWxsLiB8ICAgICAgfCAyMlAwMgor KDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0 ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogbnVsbH1dJywgJ3BnX25kaXN0aW5jdCcpOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgZGV0YWlsICAgICAgICAgICB8IGhpbnQgfCBzcWxfZXJy b3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJp YnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogbnVsbH1dIiB8IEludmFsaWQgIm5kaXN0aW5j dCIgdmFsdWUuIHwgICAgICB8IDIyUDAyCisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gcGdfaW5w dXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBbMiwiYSJdLCAibmRpc3RpbmN0IiA6IDR9 XScsICdwZ19uZGlzdGluY3QnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVz c2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgZGV0YWlsICAg ICAgICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1l ZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLCJhIl0sICJuZGlzdGluY3QiIDog NH1dIiB8IEludmFsaWQgImF0dHJpYnV0ZXMiIHZhbHVlLiB8ICAgICAgfCAyMlAwMgorKDEgcm93 KQorCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDog WzIsM10sICJuZGlzdGluY3QiIDogImEifV0nLCAncGdfbmRpc3RpbmN0Jyk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgIGRldGFpbCAgICAgICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0t LS0tLS0tLS0tLS0tCisgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDog WzIsM10sICJuZGlzdGluY3QiIDogImEifV0iIHwgSW52YWxpZCAibmRpc3RpbmN0IiB2YWx1ZS4g fCAgICAgIHwgMjJQMDIKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9p bmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IFtdfV0nLCAncGdfbmRp c3RpbmN0Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgZGV0YWlsICAgICAgICAgICAg ICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBw Z19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IFtdfV0i IHwgQXJyYXkgZm91bmQgaW4gdW5leHBlY3RlZCBwbGFjZS4gfCAgICAgIHwgMjJQMDIKKygxIHJv dykKKworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6 IFsyLDNdLCAibmRpc3RpbmN0IiA6IFtudWxsXX1dJywgJ3BnX25kaXN0aW5jdCcpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICBkZXRhaWwgICAgICAgICAgICAgIHwgaGludCB8IHNx bF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19uZGlzdGlu Y3Q6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IFtudWxsXX1dIiB8IEFy cmF5IGZvdW5kIGluIHVuZXhwZWN0ZWQgcGxhY2UuIHwgICAgICB8IDIyUDAyCisoMSByb3cpCisK K1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBbMiwz XSwgIm5kaXN0aW5jdCIgOiBbMSxudWxsXX1dJywgJ3BnX25kaXN0aW5jdCcpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgIGRldGFpbCAgICAgICAgICAgICAgfCBoaW50IHwgc3Fs X2Vycm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfbmRpc3Rp bmN0OiAiW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiBbMSxudWxsXX1dIiB8 IEFycmF5IGZvdW5kIGluIHVuZXhwZWN0ZWQgcGxhY2UuIHwgICAgICB8IDIyUDAyCisoMSByb3cp CisKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBb MiwzXSwgIm5kaXN0aW5jdCIgOiB7ImEiOiAxfX1dJywgJ3BnX25kaXN0aW5jdCcpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICBkZXRhaWwgICAgICAgICAgICAgICAgICB8 IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisg bWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGlu Y3QiIDogeyJhIjogMX19XSIgfCBWYWx1ZSBvZiAibmRpc3RpbmN0IiBtdXN0IGJlIGFuIGludGVn ZXIuIHwgICAgICB8IDIyUDAyCisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJy b3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiAxLCAibmRpc3RpbmN0IiA6IDR9XScsICdwZ19uZGlz dGluY3QnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICBkZXRhaWwgICAgICAgfCBoaW50IHwgc3FsX2Vycm9y X2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0t LS0tLQorIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1dGVzIiA6IDEsICJuZGlz dGluY3QiIDogNH1dIiB8IFVuZXhwZWN0ZWQgc2NhbGFyLiB8ICAgICAgfCAyMlAwMgorKDEgcm93 KQorCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDog ImEiLCAibmRpc3RpbmN0IiA6IDR9XScsICdwZ19uZGlzdGluY3QnKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG1lc3NhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgIGRldGFpbCAgICAgICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdf bmRpc3RpbmN0OiAiW3siYXR0cmlidXRlcyIgOiAiYSIsICJuZGlzdGluY3QiIDogNH1dIiB8IFVu ZXhwZWN0ZWQgc2NhbGFyLiB8ICAgICAgfCAyMlAwMgorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9N IHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogeyJhIjogMX0sICJuZGlzdGlu Y3QiIDogMX1dJywgJ3BnX25kaXN0aW5jdCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkZXRhaWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBoaW50 IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAiW3siYXR0cmlidXRlcyIgOiB7ImEi OiAxfSwgIm5kaXN0aW5jdCIgOiAxfV0iIHwgVmFsdWUgb2YgImF0dHJpYnV0ZXMiIG11c3QgYmUg YW4gYXJyYXkgb2YgYXR0cmlidXRlIG51bWJlcnMuIHwgICAgICB8IDIyUDAyCisoMSByb3cpCisK K1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBbMSwg eyJhIjogMX1dLCAibmRpc3RpbmN0IiA6IDF9XScsICdwZ19uZGlzdGluY3QnKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsICAgICAgICAgICAgICAg ICAgICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1 dGVzIiA6IFsxLCB7ImEiOiAxfV0sICJuZGlzdGluY3QiIDogMX1dIiB8IEF0dHJpYnV0ZSBsaXN0 cyBjYW4gb25seSBjb250YWluIGF0dHJpYnV0ZSBudW1iZXJzLiB8ICAgICAgfCAyMlAwMgorKDEg cm93KQorCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMi IDogWy03LC05XSwgIm5kaXN0aW5jdCIgOiAxfV0nLCAncGdfbmRpc3RpbmN0Jyk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgIGRldGFpbCAgICAgICAgICAgICAgIHwgaGludCB8IHNxbF9l cnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfbmRpc3RpbmN0OiAi W3siYXR0cmlidXRlcyIgOiBbLTcsLTldLCAibmRpc3RpbmN0IiA6IDF9XSIgfCBJbnZhbGlkICJh dHRyaWJ1dGVzIiBlbGVtZW50OiAtOS4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykKKworU0VMRUNU ICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IDEsICJuZGlzdGlu Y3QiIDogNH1dJywgJ3BnX25kaXN0aW5jdCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtZXNzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIGRldGFpbCAgICAg ICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0 dHJpYnV0ZXMiIDogMSwgIm5kaXN0aW5jdCIgOiA0fV0iIHwgVW5leHBlY3RlZCBzY2FsYXIuIHwg ICAgICB8IDIyUDAyCisoMSByb3cpCisKKy0tIER1cGxpY2F0ZWQgYXR0cmlidXRlcworU0VMRUNU ICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDJdLCAibmRpc3RpbmN0IiA6IDR9XSc6OnBnX25kaXN0aW5j dDsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDogWzIs Ml0sICJuZGlzdGluY3QiIDogNH1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDog WzIsMl0sICJuZGlzdGluY3QiIDogNH1dJzo6cGdfbmRpc3QuLi4KKyAgICAgICAgICAgICAgIF4K K0RFVEFJTDogIEludmFsaWQgImF0dHJpYnV0ZXMiIGVsZW1lbnQ6IDIgY2Fubm90IGZvbGxvdyAy LgorU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsy LDJdLCAibmRpc3RpbmN0IiA6IDR9XScsICdwZ19uZGlzdGluY3QnKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgZGV0YWlsICAgICAgICAgICAgICAgICAgICAgIHwgaGludCB8 IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFsZm9y bWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDogWzIsMl0sICJuZGlzdGluY3QiIDog NH1dIiB8IEludmFsaWQgImF0dHJpYnV0ZXMiIGVsZW1lbnQ6IDIgY2Fubm90IGZvbGxvdyAyLiB8 ICAgICAgfCAyMlAwMgorKDEgcm93KQorCistLSBEdXBsaWNhdGVkIGF0dHJpYnV0ZSBsaXN0cy4K K1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAgICAg ICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlzdGlu Y3Q7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19uZGlzdGluY3Q6ICJbeyJhdHRyaWJ1dGVzIiA6IFsy LDNdLCAibmRpc3RpbmN0IiA6IDR9LAorICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAi bmRpc3RpbmN0IiA6IDR9XSIKK0xJTkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNd LCAibmRpc3RpbmN0IiA6IDR9LAorICAgICAgICAgICAgICAgXgorREVUQUlMOiAgRHVwbGljYXRl ZCAiYXR0cmlidXRlcyIgYXJyYXkgZm91bmQ6IFsyLCAzXQorU0VMRUNUICogRlJPTSBwZ19pbnB1 dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IDR9LAor ICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IDR9XScsICdwZ19u ZGlzdGluY3QnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICBkZXRhaWwgICAgICAg ICAgICAgICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0t LS0tLS0tCisgbWFsZm9ybWVkIHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDogWzIsM10s ICJuZGlzdGluY3QiIDogNH0sK3wgRHVwbGljYXRlZCAiYXR0cmlidXRlcyIgYXJyYXkgZm91bmQ6 IFsyLCAzXSB8ICAgICAgfCAyMlAwMgorICAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzXSwg Im5kaXN0aW5jdCIgOiA0fV0iICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgIHwgCisoMSByb3cpCisKKy0tIFBhcnRpYWxs eS1jb3ZlcmVkIGF0dHJpYnV0ZSBsaXN0cy4KK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwz XSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwtMV0sICJu ZGlzdGluY3QiIDogNH0sCisgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsMywtMV0sICJuZGlz dGluY3QiIDogNH0sCisgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzEsMywtMSwtMl0sICJuZGlz dGluY3QiIDogNH1dJzo6cGdfbmRpc3RpbmN0OworRVJST1I6ICBtYWxmb3JtZWQgcGdfbmRpc3Rp bmN0OiAiW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAgICAgICAg IHsiYXR0cmlidXRlcyIgOiBbMiwtMV0sICJuZGlzdGluY3QiIDogNH0sCisgICAgICAgICB7ImF0 dHJpYnV0ZXMiIDogWzIsMywtMV0sICJuZGlzdGluY3QiIDogNH0sCisgICAgICAgICB7ImF0dHJp YnV0ZXMiIDogWzEsMywtMSwtMl0sICJuZGlzdGluY3QiIDogNH1dIgorTElORSAxOiBTRUxFQ1Qg J1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogNH0sCisgICAgICAgICAgICAg ICBeCitERVRBSUw6ICAiYXR0cmlidXRlcyIgYXJyYXk6IFsyLCAzXSBtdXN0IGJlIGEgc3Vic2V0 IG9mIGFycmF5OiBbMSwgMywgLTEsIC0yXQorU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9p bmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IDR9LAorICAgICAgICAg eyJhdHRyaWJ1dGVzIiA6IFsyLC0xXSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAgICAgICAgIHsiYXR0 cmlidXRlcyIgOiBbMiwzLC0xXSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAgICAgICAgIHsiYXR0cmli dXRlcyIgOiBbMSwzLC0xLC0yXSwgIm5kaXN0aW5jdCIgOiA0fV0nLCAncGdfbmRpc3RpbmN0Jyk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgbWFsZm9ybWVk IHBnX25kaXN0aW5jdDogIlt7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogNH0s K3wgImF0dHJpYnV0ZXMiIGFycmF5OiBbMiwgM10gbXVzdCBiZSBhIHN1YnNldCBvZiBhcnJheTog WzEsIDMsIC0xLCAtMl0gfCAgICAgIHwgMjJQMDIKKyAgICAgICAgICB7ImF0dHJpYnV0ZXMiIDog WzIsLTFdLCAibmRpc3RpbmN0IiA6IDR9LCAgICAgICAgICAgICAgICArfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgfCAKKyAgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsMywtMV0sICJuZGlzdGluY3Qi IDogNH0sICAgICAgICAgICAgICArfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgfCAKKyAgICAgICAgICB7 ImF0dHJpYnV0ZXMiIDogWzEsMywtMSwtMl0sICJuZGlzdGluY3QiIDogNH1dIiAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgfCAKKygxIHJvdykKKworLS0gVmFsaWQgaW5wdXRzCistLSBU d28gYXR0cmlidXRlcy4KK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMSwyXSwgIm5kaXN0aW5j dCIgOiA0fV0nOjpwZ19uZGlzdGluY3Q7CisgICAgICAgICAgICAgICBwZ19uZGlzdGluY3QgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IFt7ImF0dHJpYnV0ZXMiOiBbMSwgMl0sICJuZGlzdGluY3QiOiA0fV0KKygxIHJvdykKKworLS0g VGhyZWUgYXR0cmlidXRlcy4KK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwtMV0sICJuZGlz dGluY3QiIDogMX0sCisgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzMsLTFdLCAibmRpc3RpbmN0 IiA6IDJ9LAorCSB7ImF0dHJpYnV0ZXMiIDogWzIsMywtMV0sICJuZGlzdGluY3QiIDogM31dJzo6 cGdfbmRpc3RpbmN0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBnX25kaXN0aW5jdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgW3siYXR0cmli dXRlcyI6IFsyLCAtMV0sICJuZGlzdGluY3QiOiAxfSwgeyJhdHRyaWJ1dGVzIjogWzMsIC0xXSwg Im5kaXN0aW5jdCI6IDJ9LCB7ImF0dHJpYnV0ZXMiOiBbMiwgMywgLTFdLCAibmRpc3RpbmN0Ijog M31dCisoMSByb3cpCisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2No ZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IGY1NjQ4MmZi OWYxLi5mM2YwYjVmMmYzMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9z Y2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC0yOCw3 ICsyOCw3IEBAIHRlc3Q6IHN0cmluZ3MgbWQ1IG51bWVyb2xvZ3kgcG9pbnQgbHNlZyBsaW5lIGJv eCBwYXRoIHBvbHlnb24gY2lyY2xlIGRhdGUgdGltZSB0CiAjIGdlb21ldHJ5IGRlcGVuZHMgb24g cG9pbnQsIGxzZWcsIGxpbmUsIGJveCwgcGF0aCwgcG9seWdvbiwgY2lyY2xlCiAjIGhvcm9sb2d5 IGRlcGVuZHMgb24gZGF0ZSwgdGltZSwgdGltZXR6LCB0aW1lc3RhbXAsIHRpbWVzdGFtcHR6LCBp bnRlcnZhbAogIyAtLS0tLS0tLS0tCi10ZXN0OiBnZW9tZXRyeSBob3JvbG9neSB0c3R5cGVzIHJl Z2V4IHR5cGVfc2FuaXR5IG9wcl9zYW5pdHkgbWlzY19zYW5pdHkgY29tbWVudHMgZXhwcmVzc2lv bnMgdW5pY29kZSB4aWQgbXZjYyBkYXRhYmFzZSBzdGF0c19pbXBvcnQKK3Rlc3Q6IGdlb21ldHJ5 IGhvcm9sb2d5IHRzdHlwZXMgcmVnZXggdHlwZV9zYW5pdHkgb3ByX3Nhbml0eSBtaXNjX3Nhbml0 eSBjb21tZW50cyBleHByZXNzaW9ucyB1bmljb2RlIHhpZCBtdmNjIGRhdGFiYXNlIHN0YXRzX2lt cG9ydCBwZ19uZGlzdGluY3QKIAogIyAtLS0tLS0tLS0tCiAjIExvYWQgaHVnZSBhbW91bnRzIG9m IGRhdGEKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BnX25kaXN0aW5jdC5zcWwg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wZ19uZGlzdGluY3Quc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xMDRhMTdkYTk0OAotLS0gL2Rldi9udWxsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3BnX25kaXN0aW5jdC5zcWwKQEAgLTAsMCArMSw5OCBAQAorLS0g VGVzdHMgZm9yIHR5cGUgcGdfbmRpc3RpbmN0CisKKy0tIEludmFsaWQgaW5wdXRzCitTRUxFQ1Qg J251bGwnOjpwZ19uZGlzdGluY3Q7CitTRUxFQ1QgJ3siYSI6IDF9Jzo6cGdfbmRpc3RpbmN0Owor U0VMRUNUICdbXSc6OnBnX25kaXN0aW5jdDsKK1NFTEVDVCAne30nOjpwZ19uZGlzdGluY3Q7CitT RUxFQ1QgJ1tudWxsXSc6OnBnX25kaXN0aW5jdDsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJy b3JfaW5mbygnbnVsbCcsICdwZ19uZGlzdGluY3QnKTsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRf ZXJyb3JfaW5mbygneyJhIjogMX0nLCAncGdfbmRpc3RpbmN0Jyk7CitTRUxFQ1QgKiBGUk9NIHBn X2lucHV0X2Vycm9yX2luZm8oJ1tdJywgJ3BnX25kaXN0aW5jdCcpOworU0VMRUNUICogRlJPTSBw Z19pbnB1dF9lcnJvcl9pbmZvKCd7fScsICdwZ19uZGlzdGluY3QnKTsKK1NFTEVDVCAqIEZST00g cGdfaW5wdXRfZXJyb3JfaW5mbygnW251bGxdJywgJ3BnX25kaXN0aW5jdCcpOworLS0gSW52YWxp ZCBrZXlzCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXNfaW52YWxpZCIgOiBbMiwzXSwgIm5kaXN0aW5j dCIgOiA0fV0nOjpwZ19uZGlzdGluY3Q7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10s ICJpbnZhbGlkIiA6IDMsICJuZGlzdGluY3QiIDogNH1dJzo6cGdfbmRpc3RpbmN0OworU0VMRUNU ICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiYXR0cmlidXRlcyIgOiBbMSwzXSwgIm5kaXN0aW5j dCIgOiA0fV0nOjpwZ19uZGlzdGluY3Q7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10s ICJuZGlzdGluY3QiIDogNCwgIm5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlzdGluY3Q7CitTRUxF Q1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXNfaW52YWxpZCIgOiBb MiwzXSwgIm5kaXN0aW5jdCIgOiA0fV0nLCAncGdfbmRpc3RpbmN0Jyk7CitTRUxFQ1QgKiBGUk9N IHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJpbnZhbGlkIiA6 IDMsICJuZGlzdGluY3QiIDogNH1dJywgJ3BnX25kaXN0aW5jdCcpOworU0VMRUNUICogRlJPTSBw Z19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiYXR0cmlidXRlcyIg OiBbMSwzXSwgIm5kaXN0aW5jdCIgOiA0fV0nLCAncGdfbmRpc3RpbmN0Jyk7CitTRUxFQ1QgKiBG Uk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGlu Y3QiIDogNCwgIm5kaXN0aW5jdCIgOiA0fV0nLCAncGdfbmRpc3RpbmN0Jyk7CisKKy0tIE1pc3Np bmcga2V5CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM119XSc6OnBnX25kaXN0aW5jdDsK K1NFTEVDVCAnW3sibmRpc3RpbmN0IiA6IDR9XSc6OnBnX25kaXN0aW5jdDsKK1NFTEVDVCAqIEZS T00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBbMiwzXX1dJywgJ3BnX25k aXN0aW5jdCcpOworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJuZGlzdGlu Y3QiIDogNH1dJywgJ3BnX25kaXN0aW5jdCcpOworCistLSBWYWxpZCBrZXlzLCB0b28gbWFueSBh dHRyaWJ1dGVzCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzEsMiwzLDQsNSw2LDcsOCw5XSwg Im5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlzdGluY3Q7CisKKy0tIFNwZWNpYWwgY2hhcmFjdGVy cworU0VMRUNUICdbeyJcdWQ4M2RcdWRlMDRcdWQ4M2RcdWRjMzYiIDogWzEsIDJdLCAibmRpc3Rp bmN0IiA6IDR9XSc6OnBnX25kaXN0aW5jdDsKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMSwg Ml0sICJcdWQ4M2RcdWRlMDRcdWQ4M2RcdWRjMzYiIDogNH1dJzo6cGdfbmRpc3RpbmN0OworU0VM RUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsxLCAyXSwgIm5kaXN0aW5jdCIgOiAiXHVkODNkXHVkZTA0 XHVkODNkXHVkYzM2In1dJzo6cGdfbmRpc3RpbmN0OworU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6 IFsiXHVkODNkXHVkZTA0XHVkODNkXHVkYzM2IiwgMl0sICJuZGlzdGluY3QiIDogMX1dJzo6cGdf bmRpc3RpbmN0OworCistLSBWYWxpZCBrZXlzLCBpbnZhbGlkIHZhbHVlcworU0VMRUNUICdbeyJh dHRyaWJ1dGVzIiA6IG51bGwsICJuZGlzdGluY3QiIDogNH1dJzo6cGdfbmRpc3RpbmN0OworU0VM RUNUICdbeyJhdHRyaWJ1dGVzIiA6IFtdLCAibmRpc3RpbmN0IiA6IDF9XSc6OnBnX25kaXN0aW5j dDsKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMl0sICJuZGlzdGluY3QiIDogNH1dJzo6cGdf bmRpc3RpbmN0OworU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLG51bGxdLCAibmRpc3RpbmN0 IiA6IDR9XSc6OnBnX25kaXN0aW5jdDsKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwg Im5kaXN0aW5jdCIgOiBudWxsfV0nOjpwZ19uZGlzdGluY3Q7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0 ZXMiIDogWzIsImEiXSwgIm5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlzdGluY3Q7CitTRUxFQ1Qg J1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogImEifV0nOjpwZ19uZGlzdGlu Y3Q7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogW119XSc6 OnBnX25kaXN0aW5jdDsKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgIm5kaXN0aW5j dCIgOiBbbnVsbF19XSc6OnBnX25kaXN0aW5jdDsKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBb MiwzXSwgIm5kaXN0aW5jdCIgOiBbMSxudWxsXX1dJzo6cGdfbmRpc3RpbmN0OworU0VMRUNUICdb eyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IHsiYSI6IDF9fV0nOjpwZ19uZGlz dGluY3Q7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzAsMV0sICJuZGlzdGluY3QiIDogMX1d Jzo6cGdfbmRpc3RpbmN0OworU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFstNywtOV0sICJuZGlz dGluY3QiIDogMX1dJzo6cGdfbmRpc3RpbmN0OworU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IDEs ICJuZGlzdGluY3QiIDogNH1dJzo6cGdfbmRpc3RpbmN0OworU0VMRUNUICdbeyJhdHRyaWJ1dGVz IiA6ICJhIiwgIm5kaXN0aW5jdCIgOiA0fV0nOjpwZ19uZGlzdGluY3Q7CitTRUxFQ1QgJ1t7ImF0 dHJpYnV0ZXMiIDogeyJhIjogMX0sICJuZGlzdGluY3QiIDogMX1dJzo6cGdfbmRpc3RpbmN0Owor U0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsxLCB7ImEiOiAxfV0sICJuZGlzdGluY3QiIDogMX1d Jzo6cGdfbmRpc3RpbmN0OworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJh dHRyaWJ1dGVzIiA6IG51bGwsICJuZGlzdGluY3QiIDogNH1dJywgJ3BnX25kaXN0aW5jdCcpOwor U0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFtdLCAi bmRpc3RpbmN0IiA6IDF9XScsICdwZ19uZGlzdGluY3QnKTsKK1NFTEVDVCAqIEZST00gcGdfaW5w dXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBbMl0sICJuZGlzdGluY3QiIDogNH1dJywg J3BnX25kaXN0aW5jdCcpOworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJh dHRyaWJ1dGVzIiA6IFsyLG51bGxdLCAibmRpc3RpbmN0IiA6IDR9XScsICdwZ19uZGlzdGluY3Qn KTsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBb MiwzXSwgIm5kaXN0aW5jdCIgOiBudWxsfV0nLCAncGdfbmRpc3RpbmN0Jyk7CitTRUxFQ1QgKiBG Uk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsImEiXSwgIm5kaXN0 aW5jdCIgOiA0fV0nLCAncGdfbmRpc3RpbmN0Jyk7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vy cm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogImEifV0nLCAn cGdfbmRpc3RpbmN0Jyk7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0 dHJpYnV0ZXMiIDogWzIsM10sICJuZGlzdGluY3QiIDogW119XScsICdwZ19uZGlzdGluY3QnKTsK K1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBbMiwz XSwgIm5kaXN0aW5jdCIgOiBbbnVsbF19XScsICdwZ19uZGlzdGluY3QnKTsKK1NFTEVDVCAqIEZS T00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgIm5kaXN0aW5j dCIgOiBbMSxudWxsXX1dJywgJ3BnX25kaXN0aW5jdCcpOworU0VMRUNUICogRlJPTSBwZ19pbnB1 dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IHsiYSI6 IDF9fV0nLCAncGdfbmRpc3RpbmN0Jyk7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2lu Zm8oJ1t7ImF0dHJpYnV0ZXMiIDogMSwgIm5kaXN0aW5jdCIgOiA0fV0nLCAncGdfbmRpc3RpbmN0 Jyk7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDog ImEiLCAibmRpc3RpbmN0IiA6IDR9XScsICdwZ19uZGlzdGluY3QnKTsKK1NFTEVDVCAqIEZST00g cGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiB7ImEiOiAxfSwgIm5kaXN0aW5j dCIgOiAxfV0nLCAncGdfbmRpc3RpbmN0Jyk7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9y X2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzEsIHsiYSI6IDF9XSwgIm5kaXN0aW5jdCIgOiAxfV0n LCAncGdfbmRpc3RpbmN0Jyk7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7 ImF0dHJpYnV0ZXMiIDogWy03LC05XSwgIm5kaXN0aW5jdCIgOiAxfV0nLCAncGdfbmRpc3RpbmN0 Jyk7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDog MSwgIm5kaXN0aW5jdCIgOiA0fV0nLCAncGdfbmRpc3RpbmN0Jyk7CistLSBEdXBsaWNhdGVkIGF0 dHJpYnV0ZXMKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwyXSwgIm5kaXN0aW5jdCIgOiA0 fV0nOjpwZ19uZGlzdGluY3Q7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7 ImF0dHJpYnV0ZXMiIDogWzIsMl0sICJuZGlzdGluY3QiIDogNH1dJywgJ3BnX25kaXN0aW5jdCcp OworLS0gRHVwbGljYXRlZCBhdHRyaWJ1dGUgbGlzdHMuCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMi IDogWzIsM10sICJuZGlzdGluY3QiIDogNH0sCisgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIs M10sICJuZGlzdGluY3QiIDogNH1dJzo6cGdfbmRpc3RpbmN0OworU0VMRUNUICogRlJPTSBwZ19p bnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IDR9 LAorICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAibmRpc3RpbmN0IiA6IDR9XScsICdw Z19uZGlzdGluY3QnKTsKKy0tIFBhcnRpYWxseS1jb3ZlcmVkIGF0dHJpYnV0ZSBsaXN0cy4KK1NF TEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgIm5kaXN0aW5jdCIgOiA0fSwKKyAgICAgICAg IHsiYXR0cmlidXRlcyIgOiBbMiwtMV0sICJuZGlzdGluY3QiIDogNH0sCisgICAgICAgICB7ImF0 dHJpYnV0ZXMiIDogWzIsMywtMV0sICJuZGlzdGluY3QiIDogNH0sCisgICAgICAgICB7ImF0dHJp YnV0ZXMiIDogWzEsMywtMSwtMl0sICJuZGlzdGluY3QiIDogNH1dJzo6cGdfbmRpc3RpbmN0Owor U0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNd LCAibmRpc3RpbmN0IiA6IDR9LAorICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLC0xXSwgIm5k aXN0aW5jdCIgOiA0fSwKKyAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzLC0xXSwgIm5kaXN0 aW5jdCIgOiA0fSwKKyAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMSwzLC0xLC0yXSwgIm5kaXN0 aW5jdCIgOiA0fV0nLCAncGdfbmRpc3RpbmN0Jyk7CisKKy0tIFZhbGlkIGlucHV0cworLS0gVHdv IGF0dHJpYnV0ZXMuCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzEsMl0sICJuZGlzdGluY3Qi IDogNH1dJzo6cGdfbmRpc3RpbmN0OworLS0gVGhyZWUgYXR0cmlidXRlcy4KK1NFTEVDVCAnW3si YXR0cmlidXRlcyIgOiBbMiwtMV0sICJuZGlzdGluY3QiIDogMX0sCisgICAgICAgICB7ImF0dHJp YnV0ZXMiIDogWzMsLTFdLCAibmRpc3RpbmN0IiA6IDJ9LAorCSB7ImF0dHJpYnV0ZXMiIDogWzIs MywtMV0sICJuZGlzdGluY3QiIDogM31dJzo6cGdfbmRpc3RpbmN0OwpkaWZmIC0tZ2l0IGEvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdAppbmRleCAyN2E0ZDEzMTg5Ny4uZDQyMmYyYzA3MGMgMTAwNjQ0Ci0tLSBhL3NyYy90 b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0CkBAIC0xNzMyLDYgKzE3MzIsOCBAQCBNdWx0aXJhbmdlSU9EYXRhCiBNdWx0aXJh bmdlUGFyc2VTdGF0ZQogTXVsdGlyYW5nZVR5cGUKIE5EQk9YCitORGlzdGluY3RQYXJzZVN0YXRl CitORGlzdGluY3RTZW1hbnRpY1N0YXRlCiBOTFNWRVJTSU9OSU5GT0VYCiBOT0RFCiBOVFNUQVRV UwoKYmFzZS1jb21taXQ6IDUxZGE3NjY0OTRkY2M4NGI2ZjhkNzkzZWNhYTA2NDM2M2E5MjQzYzIK LS0gCjIuNTEuMQoK --00000000000017315e06442ab082 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0002-Add-working-input-function-for-pg_dependencies.patch" Content-Disposition: attachment; filename="v17-0002-Add-working-input-function-for-pg_dependencies.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mia0yfiw1 RnJvbSBjNDdhNTUzODZjYWZiYjk1YjAxZGQzMzhlYTA4OThiZDAzOTU0ODZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNaWNoYWVsIFBhcXVpZXIgPG1pY2hhZWxAcGFxdWllci54eXo+ CkRhdGU6IE1vbiwgMTcgTm92IDIwMjUgMTU6NDk6MzYgKzA5MDAKU3ViamVjdDogW1BBVENIIHYx NyAyLzVdIEFkZCB3b3JraW5nIGlucHV0IGZ1bmN0aW9uIGZvciBwZ19kZXBlbmRlbmNpZXMuCgpU aGlzIHdpbGwgY29uc3VtZSB0aGUgZm9ybWF0IHRoYXQgd2FzIGVzdGFibGlzaGVkIHdoZW4gdGhl IG91dHB1dApmdW5jdGlvbiBmb3IgcGdfZGVwZW5kZW5jaWVzIHdhcyByZWNlbnRseSBjaGFuZ2Vk LgoKVGhpcyB3aWxsIGJlIG5lZWRlZCBmb3IgaW1wb3J0aW5nIGV4dGVuZGVkIHN0YXRpc3RpY3Mu Ci0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX2RlcGVuZGVuY2llcy5jICAgICAgIHwgODY5 ICsrKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wZ19kZXBlbmRl bmNpZXMub3V0IHwgNDQ3ICsrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hl ZHVsZSAgICAgICAgICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wZ19kZXBlbmRl bmNpZXMuc3FsICAgICAgfCAxMTYgKysrCiA0IGZpbGVzIGNoYW5nZWQsIDE0MjMgaW5zZXJ0aW9u cygrKSwgMTEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wZ19kZXBlbmRlbmNpZXMub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rl c3QvcmVncmVzcy9zcWwvcGdfZGVwZW5kZW5jaWVzLnNxbAoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9wZ19kZXBlbmRlbmNpZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9w Z19kZXBlbmRlbmNpZXMuYwppbmRleCA4NzE4MWFhMDBlOS4uYmFhNDI3MGE3YzggMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ19kZXBlbmRlbmNpZXMuYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvcGdfZGVwZW5kZW5jaWVzLmMKQEAgLTE0LDMxICsxNCw4ODAgQEAKIAog I2luY2x1ZGUgInBvc3RncmVzLmgiCiAKKyNpbmNsdWRlICJjb21tb24vaW50LmgiCisjaW5jbHVk ZSAiY29tbW9uL2pzb25hcGkuaCIKICNpbmNsdWRlICJsaWIvc3RyaW5naW5mby5oIgorI2luY2x1 ZGUgIm1iL3BnX3djaGFyLmgiCisjaW5jbHVkZSAibm9kZXMvbWlzY25vZGVzLmgiCiAjaW5jbHVk ZSAic3RhdGlzdGljcy9leHRlbmRlZF9zdGF0c19pbnRlcm5hbC5oIgogI2luY2x1ZGUgInN0YXRp c3RpY3Mvc3RhdGlzdGljc19mb3JtYXQuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgor I2luY2x1ZGUgInV0aWxzL2Zsb2F0LmgiCiAjaW5jbHVkZSAidXRpbHMvZm1ncnByb3Rvcy5oIgog Cit0eXBlZGVmIGVudW0KK3sKKwlERVBTX0VYUEVDVF9TVEFSVCA9IDAsCisJREVQU19FWFBFQ1Rf SVRFTSwKKwlERVBTX0VYUEVDVF9LRVksCisJREVQU19FWFBFQ1RfQVRUTlVNX0xJU1QsCisJREVQ U19FWFBFQ1RfQVRUTlVNLAorCURFUFNfRVhQRUNUX0RFUEVOREVOQ1ksCisJREVQU19FWFBFQ1Rf REVHUkVFLAorCURFUFNfUEFSU0VfQ09NUExFVEUsCit9IERlcHNQYXJzZVNlbWFudGljU3RhdGU7 CisKK3R5cGVkZWYgc3RydWN0Cit7CisJY29uc3QgY2hhciAqc3RyOworCURlcHNQYXJzZVNlbWFu dGljU3RhdGUgc3RhdGU7CisKKwlMaXN0CSAgICpkZXBlbmRlbmN5X2xpc3Q7CisJTm9kZQkgICAq ZXNjb250ZXh0OworCisJYm9vbAkJZm91bmRfYXR0cmlidXRlczsJLyogSXRlbSBoYXMgYW4gYXR0 cmlidXRlcyBrZXkgKi8KKwlib29sCQlmb3VuZF9kZXBlbmRlbmN5OwkvKiBJdGVtIGhhcyBhbiBk ZXBlbmRlbmN5IGtleSAqLworCWJvb2wJCWZvdW5kX2RlZ3JlZTsJLyogSXRlbSBoYXMgZGVncmVl IGtleSAqLworCUxpc3QJICAgKmF0dG51bV9saXN0OwkvKiBBY2N1bXVsYXRlZCBhdHRyaWJ1dGVz IGF0dG51bXMgKi8KKwlBdHRyTnVtYmVyCWRlcGVuZGVuY3k7CisJZG91YmxlCQlkZWdyZWU7Cit9 IERlcGVuZGVuY2llc1BhcnNlU3RhdGU7CisKKy8qCisgKiBJbnZva2VkIGF0IHRoZSBzdGFydCBv ZiBlYWNoIE1WRGVwZW5kZW5jeSBvYmplY3QuCisgKgorICogVGhlIGVudGlyZSBKU09OIGRvY3Vt ZW50IHNob3VsZCBiZSBvbmUgYXJyYXkgb2YgTVZEZXBlbmRlbmN5IG9iamVjdHMuCisgKgorICog SWYgd2UgYXJlIGFueXdoZXJlIGVsc2UgaW4gdGhlIGRvY3VtZW50LCBpdCdzIGFuIGVycm9yLgor ICovCitzdGF0aWMgSnNvblBhcnNlRXJyb3JUeXBlCitkZXBlbmRlbmNpZXNfb2JqZWN0X3N0YXJ0 KHZvaWQgKnN0YXRlKQoreworCURlcGVuZGVuY2llc1BhcnNlU3RhdGUgKnBhcnNlID0gc3RhdGU7 CisKKwlzd2l0Y2gocGFyc2UtPnN0YXRlKQorCXsKKwkJY2FzZSBERVBTX0VYUEVDVF9JVEVNOgor CQkJLyogTm93IHdlIGV4cGVjdCB0byBzZWUgYXR0cmlidXRlcy9kZXBlbmRlbmN5L2RlZ3JlZSBr ZXlzICovCisJCQlwYXJzZS0+c3RhdGUgPSBERVBTX0VYUEVDVF9LRVk7CisJCQlyZXR1cm4gSlNP Tl9TVUNDRVNTOworCisJCWNhc2UgREVQU19FWFBFQ1RfU1RBUlQ6CisJCQkvKiBwZ19kZXBlbmRl bmNpZXMgbXVzdCBiZWdpbiB3aXRoIGEgJ1snICovCisJCQllcnJzYXZlKHBhcnNlLT5lc2NvbnRl eHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAor CQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6IFwiJXNcIiIsIHBhcnNlLT5z dHIpLAorCQkJCQllcnJkZXRhaWwoIkluaXRpYWwgZWxlbWVudCBtdXN0IGJlIGFuIGFycmF5LiIp KTsKKwkJCWJyZWFrOworCisJCWNhc2UgREVQU19FWFBFQ1RfS0VZOgorCQkJLyogSW4gYW4gb2Jq ZWN0LCBleHBlY3Rpbmcga2V5ICovCisJCQllcnJzYXZlKHBhcnNlLT5lc2NvbnRleHQsCisJCQkJ CWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCQllcnJt c2coIm1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6IFwiJXNcIiIsIHBhcnNlLT5zdHIpLAorCQkJ CQllcnJkZXRhaWwoIkV4cGVjdGVkIGFuIG9iamVjdCBrZXkuIikpOworCQkJYnJlYWs7CisKKwkJ Y2FzZSBERVBTX0VYUEVDVF9BVFROVU1fTElTVDoKKwkJCS8qIEp1c3QgZm9sbG93ZWQgYW4gImF0 dHJpYnV0ZXMiOiBrZXkgKi8KKwkJCWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQkJZXJy Y29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJCWVycm1zZygi bWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogXCIlc1wiIiwgcGFyc2UtPnN0ciksCisJCQkJCWVy cmRldGFpbCgiVmFsdWUgb2YgXCIlc1wiIG11c3QgYmUgYW4gYXJyYXkgb2YgYXR0cmlidXRlIG51 bWJlcnMuIiwKKwkJCQkJCQkgIFBHX0RFUEVOREVOQ0lFU19LRVlfQVRUUklCVVRFUykpOworCQkJ YnJlYWs7CisKKwkJY2FzZSBERVBTX0VYUEVDVF9BVFROVU06CisJCQkvKiBJbiBhbiBhdHRudW0g bGlzdCwgZXhwZWN0IG9ubHkgc2NhbGFyIGludGVnZXJzICovCisJCQllcnJzYXZlKHBhcnNlLT5l c2NvbnRleHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJ T04pLAorCQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6IFwiJXNcIiIsIHBh cnNlLT5zdHIpLAorCQkJCQllcnJkZXRhaWwoIkF0dHJpYnV0ZSBsaXN0cyBjYW4gb25seSBjb250 YWluIGF0dHJpYnV0ZSBudW1iZXJzLiIpKTsKKwkJCWJyZWFrOworCisJCWNhc2UgREVQU19FWFBF Q1RfREVQRU5ERU5DWToKKwkJCS8qIEp1c3QgZm9sbG93ZWQgYSAiZGVwZW5kZW5jeSIga2V5ICov CisJCQllcnJzYXZlKHBhcnNlLT5lc2NvbnRleHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZB TElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19kZXBl bmRlbmNpZXM6IFwiJXNcIiIsIHBhcnNlLT5zdHIpLAorCQkJCQllcnJkZXRhaWwoIlZhbHVlIG9m IFwiJXNcIiBtdXN0IGJlIGFuIGludGVnZXIuIiwKKwkJCQkJCQkgIFBHX0RFUEVOREVOQ0lFU19L RVlfREVQRU5ERU5DWSkpOworCQkJYnJlYWs7CisKKwkJY2FzZSBERVBTX0VYUEVDVF9ERUdSRUU6 CisJCQkvKiBKdXN0IGZvbGxvd2VkIGEgImRlZ3JlZSIga2V5ICovCisJCQllcnJzYXZlKHBhcnNl LT5lc2NvbnRleHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5U QVRJT04pLAorCQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6IFwiJXNcIiIs IHBhcnNlLT5zdHIpLAorCQkJCQllcnJkZXRhaWwoIlZhbHVlIG9mIFwiJXNcIiBtdXN0IGJlIGFu IGludGVnZXIuIiwKKwkJCQkJCQkgIFBHX0RFUEVOREVOQ0lFU19LRVlfREVHUkVFKSk7CisJCQli cmVhazsKKworCQlkZWZhdWx0OgorCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJCQll cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQkJZXJybXNn KCJtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiBcIiVzXCIiLCBwYXJzZS0+c3RyKSwKKwkJCQkJ ZXJyZGV0YWlsKCJVbmV4cGVjdGVkIHBhcnNlIHN0YXRlOiAlZCIsIChpbnQpIHBhcnNlLT5zdGF0 ZSkpOworCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIEpTT05fU0VNX0FDVElPTl9GQUlMRUQ7Cit9 CisKKy8qCisgKiBIYW5kbGUgdGhlIGVuZCBvZiBhbiBNVkRlcGVuZGVuY3kgb2JqZWN0J3MgSlNP TiByZXByZXNlbnRhdGlvbi4KKyAqLworc3RhdGljIEpzb25QYXJzZUVycm9yVHlwZQorZGVwZW5k ZW5jaWVzX29iamVjdF9lbmQodm9pZCAqc3RhdGUpCit7CisJRGVwZW5kZW5jaWVzUGFyc2VTdGF0 ZSAqcGFyc2UgPSBzdGF0ZTsKKworCU1WRGVwZW5kZW5jeSAqZGVwOworCisJaW50CQkJbmF0dHMg PSAwOworCisJaWYgKHBhcnNlLT5zdGF0ZSAhPSBERVBTX0VYUEVDVF9LRVkpCisJeworCQllcnJz YXZlKHBhcnNlLT5lc2NvbnRleHQsCisJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9S RVBSRVNFTlRBVElPTiksCisJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiBc IiVzXCIiLCBwYXJzZS0+c3RyKSwKKwkJCQllcnJkZXRhaWwoIlVuZXhwZWN0ZWQgcGFyc2Ugc3Rh dGU6ICVkIiwgKGludCkgcGFyc2UtPnN0YXRlKSk7CisJCXJldHVybiBKU09OX1NFTV9BQ1RJT05f RkFJTEVEOworCX0KKworCWlmICghcGFyc2UtPmZvdW5kX2F0dHJpYnV0ZXMpCisJeworCQllcnJz YXZlKHBhcnNlLT5lc2NvbnRleHQsCisJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9S RVBSRVNFTlRBVElPTiksCisJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiBc IiVzXCIiLCBwYXJzZS0+c3RyKSwKKwkJCQllcnJkZXRhaWwoIkl0ZW0gbXVzdCBjb250YWluIFwi JXNcIiBrZXkiLAorCQkJCQkJICBQR19ERVBFTkRFTkNJRVNfS0VZX0FUVFJJQlVURVMpKTsKKwkJ cmV0dXJuIEpTT05fU0VNX0FDVElPTl9GQUlMRUQ7CisJfQorCisJaWYgKCFwYXJzZS0+Zm91bmRf ZGVwZW5kZW5jeSkKKwl7CisJCWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQllcnJjb2Rl KEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQllcnJtc2coIm1hbGZv cm1lZCBwZ19kZXBlbmRlbmNpZXM6IFwiJXNcIiIsIHBhcnNlLT5zdHIpLAorCQkJCWVycmRldGFp bCgiSXRlbSBtdXN0IGNvbnRhaW4gXCIlc1wiIGtleS4iLAorCQkJCQkJICBQR19ERVBFTkRFTkNJ RVNfS0VZX0RFUEVOREVOQ1kpKTsKKwkJcmV0dXJuIEpTT05fU0VNX0FDVElPTl9GQUlMRUQ7CisJ fQorCisJaWYgKCFwYXJzZS0+Zm91bmRfZGVncmVlKQorCXsKKwkJZXJyc2F2ZShwYXJzZS0+ZXNj b250ZXh0LAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04p LAorCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogXCIlc1wiIiwgcGFyc2Ut PnN0ciksCisJCQkJZXJyZGV0YWlsKCJJdGVtIG11c3QgY29udGFpbiBcIiVzXCIga2V5LiIsCisJ CQkJCQkgIFBHX0RFUEVOREVOQ0lFU19LRVlfREVHUkVFKSk7CisJCXJldHVybiBKU09OX1NFTV9B Q1RJT05fRkFJTEVEOworCX0KKworCS8qCisJICogV2UgbmVlZCBhdCBsZWFzdCBvbmUgYXR0cmli dXRlIG51bWJlciBhIGRlcGVuZGVuY2llcyBpdGVtLCBhbnl0aGluZworCSAqIGxlc3MgaXMgbWFs Zm9ybWVkLgorCSAqLworCW5hdHRzID0gbGlzdF9sZW5ndGgocGFyc2UtPmF0dG51bV9saXN0KTsK KwlpZiAoKG5hdHRzIDwgMSkgfHwgKG5hdHRzID4gKFNUQVRTX01BWF9ESU1FTlNJT05TIC0gMSkp KQorCXsKKwkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJCWVycmNvZGUoRVJSQ09ERV9J TlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX2Rl cGVuZGVuY2llczogXCIlc1wiIiwgcGFyc2UtPnN0ciksCisJCQkJZXJyZGV0YWlsKCJUaGUgXCIl c1wiIGtleSBtdXN0IGNvbnRhaW4gYW4gYXJyYXkgb2YgYXQgbGVhc3QgJWQgIgorCQkJCQkJICAi YW5kIG5vIG1vcmUgdGhhbiAlZCBlbGVtZW50cy4iLAorCQkJCQkJICBQR19ERVBFTkRFTkNJRVNf S0VZX0FUVFJJQlVURVMsIDEsIFNUQVRTX01BWF9ESU1FTlNJT05TIC0gMSkpOworCQlyZXR1cm4g SlNPTl9TRU1fQUNUSU9OX0ZBSUxFRDsKKwl9CisKKwkvKgorCSAqIEFsbG9jYXRlIGVub3VnaCBz cGFjZSBmb3IgdGhlIGRlcGVuZGVuY3ksIHRoZSBhdHRudW1zIGluIHRoZSBsaXN0LCBwbHVzCisJ ICogdGhlIGZpbmFsIGF0dG51bS4KKwkgKi8KKwlkZXAgPSBwYWxsb2MwKG9mZnNldG9mKE1WRGVw ZW5kZW5jeSwgYXR0cmlidXRlcykgKyAoKG5hdHRzICsgMSkgKiBzaXplb2YoQXR0ck51bWJlcikp KTsKKwlkZXAtPm5hdHRyaWJ1dGVzID0gbmF0dHMgKyAxOworCisJZGVwLT5hdHRyaWJ1dGVzW25h dHRzXSA9IHBhcnNlLT5kZXBlbmRlbmN5OworCWRlcC0+ZGVncmVlID0gcGFyc2UtPmRlZ3JlZTsK KworCS8qCisJICogQXNzaWduIGF0dG51bXMgdG8gdGhlIGF0dHJpYnV0ZXMgYXJyYXksIGNvbXBh cmluZyBlYWNoIG9uZSBhZ2FpbnN0IHRoZQorCSAqIGRlcGVuZGVuY3kgYXR0cmlidXRlcyB0byBl bnN1cmUgdGhhdCB0aGVyZSB0aGVyZSBhcmUgbm8gbWF0Y2hlcy4KKwkgKi8KKwlmb3IgKGludCBp ID0gMDsgaSA8IG5hdHRzOyBpKyspCisJeworCQlkZXAtPmF0dHJpYnV0ZXNbaV0gPSAoQXR0ck51 bWJlcikgbGlzdF9udGhfaW50KHBhcnNlLT5hdHRudW1fbGlzdCwgaSk7CisJCWlmIChkZXAtPmF0 dHJpYnV0ZXNbaV0gPT0gcGFyc2UtPmRlcGVuZGVuY3kpCisJCXsKKwkJCWVycnNhdmUocGFyc2Ut PmVzY29udGV4dCwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRB VElPTiksCisJCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogXCIlc1wiIiwg cGFyc2UtPnN0ciksCisJCQkJCWVycmRldGFpbCgiSXRlbSBcIiVzXCIgdmFsdWUgJWQgZm91bmQg aW4gdGhlIFwiJXNcIiBsaXN0LiIsCisJCQkJCQkJICBQR19ERVBFTkRFTkNJRVNfS0VZX0RFUEVO REVOQ1ksIHBhcnNlLT5kZXBlbmRlbmN5LAorCQkJICAgCQkJCSAgUEdfREVQRU5ERU5DSUVTX0tF WV9BVFRSSUJVVEVTKSk7CisJCQlyZXR1cm4gSlNPTl9TRU1fQUNUSU9OX0ZBSUxFRDsKKwkJfQor CX0KKworCXBhcnNlLT5kZXBlbmRlbmN5X2xpc3QgPSBsYXBwZW5kKHBhcnNlLT5kZXBlbmRlbmN5 X2xpc3QsICh2b2lkICopIGRlcCk7CisKKwkvKgorCSAqIFJlc2V0IGRlcGVuZGVuY3kgaXRlbSBz dGF0ZSB2YXJpYWJsZXMgdG8gbG9vayBmb3IgdGhlIG5leHQgTVZEZXBlbmRlbmN5LgorCSAqLwor CWxpc3RfZnJlZShwYXJzZS0+YXR0bnVtX2xpc3QpOworCXBhcnNlLT5hdHRudW1fbGlzdCA9IE5J TDsKKwlwYXJzZS0+ZGVwZW5kZW5jeSA9IDA7CisJcGFyc2UtPmRlZ3JlZSA9IDAuMDsKKwlwYXJz ZS0+Zm91bmRfYXR0cmlidXRlcyA9IGZhbHNlOworCXBhcnNlLT5mb3VuZF9kZXBlbmRlbmN5ID0g ZmFsc2U7CisJcGFyc2UtPmZvdW5kX2RlZ3JlZSA9IGZhbHNlOworCXBhcnNlLT5zdGF0ZSA9IERF UFNfRVhQRUNUX0lURU07CisKKwlyZXR1cm4gSlNPTl9TVUNDRVNTOworfQorCisvKgorICogRGVw ZW5kZW5jeSBpbnB1dCBmb3JtYXQgZG9lcyBub3QgaGF2ZSBhcnJheXMsIHNvIGFueSBhcnJheSBl bGVtZW50cworICogZW5jb3VudGVyZWQgYXJlIGFuIGVycm9yLgorICovCitzdGF0aWMgSnNvblBh cnNlRXJyb3JUeXBlCitkZXBlbmRlbmNpZXNfYXJyYXlfc3RhcnQodm9pZCAqc3RhdGUpCit7CisJ RGVwZW5kZW5jaWVzUGFyc2VTdGF0ZSAqcGFyc2UgPSBzdGF0ZTsKKworCXN3aXRjaCAocGFyc2Ut PnN0YXRlKQorCXsKKwkJY2FzZSBERVBTX0VYUEVDVF9BVFROVU1fTElTVDoKKwkJCXBhcnNlLT5z dGF0ZSA9IERFUFNfRVhQRUNUX0FUVE5VTTsKKwkJCWJyZWFrOworCQljYXNlIERFUFNfRVhQRUNU X1NUQVJUOgorCQkJcGFyc2UtPnN0YXRlID0gREVQU19FWFBFQ1RfSVRFTTsKKwkJCWJyZWFrOwor CQlkZWZhdWx0OgorCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJCQllcnJjb2RlKEVS UkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQkJZXJybXNnKCJtYWxmb3Jt ZWQgcGdfZGVwZW5kZW5jaWVzOiBcIiVzXCIiLCBwYXJzZS0+c3RyKSwKKwkJCQkJZXJyZGV0YWls KCJBcnJheSBmb3VuZCBpbiB1bmV4cGVjdGVkIHBsYWNlLiIpKTsKKwkJCXJldHVybiBKU09OX1NF TV9BQ1RJT05fRkFJTEVEOworCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIEpTT05fU1VDQ0VTUzsK K30KKworLyoKKyAqIEVpdGhlciB0aGUgZW5kIG9mIGFuIGF0dG51bSBsaXN0IG9yIHRoZSB3aG9s ZSBvYmplY3QuCisgKi8KK3N0YXRpYyBKc29uUGFyc2VFcnJvclR5cGUKK2RlcGVuZGVuY2llc19h cnJheV9lbmQodm9pZCAqc3RhdGUpCit7CisJRGVwZW5kZW5jaWVzUGFyc2VTdGF0ZSAqcGFyc2Ug PSBzdGF0ZTsKKworCXN3aXRjaCAocGFyc2UtPnN0YXRlKQorCXsKKwkJY2FzZSBERVBTX0VYUEVD VF9BVFROVU06CisJCQlpZiAobGlzdF9sZW5ndGgocGFyc2UtPmF0dG51bV9saXN0KSA+IDApCisJ CQl7CisJCQkJcGFyc2UtPnN0YXRlID0gREVQU19FWFBFQ1RfS0VZOworCQkJCXJldHVybiBKU09O X1NVQ0NFU1M7CisJCQl9CisKKwkJCWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQkJZXJy Y29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJCWVycm1zZygi bWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogXCIlc1wiIiwgcGFyc2UtPnN0ciksCisJCQkJCWVy cmRldGFpbCgiVGhlIFwiJXNcIiBrZXkgbXVzdCBiZSBhbiBub24tZW1wdHkgYXJyYXkuIiwKKwkJ CQkJCQkgIFBHX0RFUEVOREVOQ0lFU19LRVlfQVRUUklCVVRFUykpOworCQkJYnJlYWs7CisKKwkJ Y2FzZSBERVBTX0VYUEVDVF9JVEVNOgorCQkJaWYgKGxpc3RfbGVuZ3RoKHBhcnNlLT5kZXBlbmRl bmN5X2xpc3QpID4gMCkKKwkJCXsKKwkJCQlwYXJzZS0+c3RhdGUgPSBERVBTX1BBUlNFX0NPTVBM RVRFOworCQkJCXJldHVybiBKU09OX1NVQ0NFU1M7CisJCQl9CisKKwkJCWVycnNhdmUocGFyc2Ut PmVzY29udGV4dCwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRB VElPTiksCisJCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogXCIlc1wiIiwg cGFyc2UtPnN0ciksCisJCQkJCWVycmRldGFpbCgiSXRlbSBhcnJheSBjYW5ub3QgYmUgZW1wdHku IikpOworCQkJYnJlYWs7CisKKwkJZGVmYXVsdDoKKwkJCS8qCisJCQkgKiBUaGlzIGNhbiBvbmx5 IGhhcHBlbiBpZiBhIGNhc2Ugd2FzIG1pc3NlZCBpbiBkZXBlbmVuY2VpZXNfYXJyYXlfc3RhcnQo KQorCQkJICovCisJCQllcnJzYXZlKHBhcnNlLT5lc2NvbnRleHQsCisJCQkJCWVycmNvZGUoRVJS Q09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCQllcnJtc2coIm1hbGZvcm1l ZCBwZ19kZXBlbmRlbmNpZXM6IFwiJXNcIiIsIHBhcnNlLT5zdHIpLAorCQkJCQllcnJkZXRhaWwo IkFycmF5IGZvdW5kIGluIHVuZXhwZWN0ZWQgcGxhY2UuIikpOworCQkJYnJlYWs7CisJfQorCXJl dHVybiBKU09OX1NFTV9BQ1RJT05fRkFJTEVEOworfQorCisvKgorICogVGhlIHZhbGlkIGtleXMg Zm9yIHRoZSBNVkRlcGVuZGVuY3kgb2JqZWN0IGFyZToKKyAqICAgLSBhdHRyaWJ1dGVzCisgKiAg IC0gZGVwZW5kZW5jeQorICogICAtIGRlZ3JlZQorICovCitzdGF0aWMgSnNvblBhcnNlRXJyb3JU eXBlCitkZXBlbmRlbmNpZXNfb2JqZWN0X2ZpZWxkX3N0YXJ0KHZvaWQgKnN0YXRlLCBjaGFyICpm bmFtZSwgYm9vbCBpc251bGwpCit7CisJRGVwZW5kZW5jaWVzUGFyc2VTdGF0ZSAqcGFyc2UgPSBz dGF0ZTsKKworCWlmIChzdHJjbXAoZm5hbWUsIFBHX0RFUEVOREVOQ0lFU19LRVlfQVRUUklCVVRF UykgPT0gMCkKKwl7CisJCWlmIChwYXJzZS0+Zm91bmRfYXR0cmlidXRlcykKKwkJeworCQkJZXJy c2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhU X1JFUFJFU0VOVEFUSU9OKSwKKwkJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVz OiBcIiVzXCIiLCBwYXJzZS0+c3RyKSwKKwkJCQkJZXJyZGV0YWlsKCJNdWx0aXBsZSBcIiVzXCIg a2V5cyBhcmUgbm90IGFsbG93ZWQuIiwKKwkJCQkJCQkgIFBHX0RFUEVOREVOQ0lFU19LRVlfQVRU UklCVVRFUykpOworCQkJcmV0dXJuIEpTT05fU0VNX0FDVElPTl9GQUlMRUQ7CisJCX0KKworCQlw YXJzZS0+Zm91bmRfYXR0cmlidXRlcyA9IHRydWU7CisJCXBhcnNlLT5zdGF0ZSA9IERFUFNfRVhQ RUNUX0FUVE5VTV9MSVNUOworCQlyZXR1cm4gSlNPTl9TVUNDRVNTOworCX0KKworCWlmIChzdHJj bXAoZm5hbWUsIFBHX0RFUEVOREVOQ0lFU19LRVlfREVQRU5ERU5DWSkgPT0gMCkKKwl7CisJCWlm IChwYXJzZS0+Zm91bmRfZGVwZW5kZW5jeSkKKwkJeworCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250 ZXh0LAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwK KwkJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiBcIiVzXCIiLCBwYXJzZS0+ c3RyKSwKKwkJCQkJZXJyZGV0YWlsKCJNdWx0aXBsZSBcIiVzXCIga2V5cyBhcmUgbm90IGFsbG93 ZWQuIiwKKwkJCQkJCQkgIFBHX0RFUEVOREVOQ0lFU19LRVlfREVQRU5ERU5DWSkpOworCQkJcmV0 dXJuIEpTT05fU0VNX0FDVElPTl9GQUlMRUQ7CisJCX0KKworCQlwYXJzZS0+Zm91bmRfZGVwZW5k ZW5jeSA9IHRydWU7CisJCXBhcnNlLT5zdGF0ZSA9IERFUFNfRVhQRUNUX0RFUEVOREVOQ1k7CisJ CXJldHVybiBKU09OX1NVQ0NFU1M7CisJfQorCisJaWYgKHN0cmNtcChmbmFtZSwgUEdfREVQRU5E RU5DSUVTX0tFWV9ERUdSRUUpID09IDApCisJeworCQlpZiAocGFyc2UtPmZvdW5kX2RlZ3JlZSkK KwkJeworCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJCQllcnJjb2RlKEVSUkNPREVf SU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdf ZGVwZW5kZW5jaWVzOiBcIiVzXCIiLCBwYXJzZS0+c3RyKSwKKwkJCQkJZXJyZGV0YWlsKCJNdWx0 aXBsZSBcIiVzXCIga2V5cyBhcmUgbm90IGFsbG93ZWQuIiwKKwkJCQkJCQkgIFBHX0RFUEVOREVO Q0lFU19LRVlfREVHUkVFKSk7CisJCQlyZXR1cm4gSlNPTl9TRU1fQUNUSU9OX0ZBSUxFRDsKKwkJ fQorCisJCXBhcnNlLT5mb3VuZF9kZWdyZWUgPSB0cnVlOworCQlwYXJzZS0+c3RhdGUgPSBERVBT X0VYUEVDVF9ERUdSRUU7CisJCXJldHVybiBKU09OX1NVQ0NFU1M7CisJfQorCisJZXJyc2F2ZShw YXJzZS0+ZXNjb250ZXh0LAorCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNF TlRBVElPTiksCisJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6IFwiJXNcIiIs IHBhcnNlLT5zdHIpLAorCQkJZXJyZGV0YWlsKCJPbmx5IGFsbG93ZWQga2V5cyBhcmUgXCIlc1wi LCBcIiVzXCIgYW5kIFwiJXNcIi4iLAorCQkJCQkgIFBHX0RFUEVOREVOQ0lFU19LRVlfQVRUUklC VVRFUywKKwkJCQkJICBQR19ERVBFTkRFTkNJRVNfS0VZX0RFUEVOREVOQ1ksCisJCQkJCSAgUEdf REVQRU5ERU5DSUVTX0tFWV9ERUdSRUUpKTsKKwlyZXR1cm4gSlNPTl9TRU1fQUNUSU9OX0ZBSUxF RDsKK30KKworLyoKKyAqIHBnX2RlcGVuZGVuY2llcyBpbnB1dCBmb3JtYXQgZG9lcyBub3QgaGF2 ZSBhcnJheXMsIHNvIGFueSBhcnJheSBlbGVtZW50cworICogZW5jb3VudGVyZWQgYXJlIGFuIGVy cm9yLgorICovCitzdGF0aWMgSnNvblBhcnNlRXJyb3JUeXBlCitkZXBlbmRlbmNpZXNfYXJyYXlf ZWxlbWVudF9zdGFydCh2b2lkICpzdGF0ZSwgYm9vbCBpc251bGwpCit7CisJRGVwZW5kZW5jaWVz UGFyc2VTdGF0ZSAqcGFyc2UgPSBzdGF0ZTsKKworCXN3aXRjaChwYXJzZS0+c3RhdGUpCisJewor CQljYXNlIERFUFNfRVhQRUNUX0FUVE5VTToKKwkJCWlmICghaXNudWxsKQorCQkJCXJldHVybiBK U09OX1NVQ0NFU1M7CisKKwkJCWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQkJZXJyY29k ZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJCWVycm1zZygibWFs Zm9ybWVkIHBnX2RlcGVuZGVuY2llczogXCIlc1wiIiwgcGFyc2UtPnN0ciksCisJCQkJCWVycmRl dGFpbCgiQXR0cmlidXRlIG51bWJlciBhcnJheSBjYW5ub3QgYmUgbnVsbC4iKSk7CisKKwkJCXJl dHVybiBKU09OX1NFTV9BQ1RJT05fRkFJTEVEOworCQkJYnJlYWs7CisKKwkJY2FzZSBERVBTX0VY UEVDVF9JVEVNOgorCQkJaWYgKCFpc251bGwpCisJCQkJcmV0dXJuIEpTT05fU1VDQ0VTUzsKKwkJ CWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURf VEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX2RlcGVuZGVu Y2llczogXCIlc1wiIiwgcGFyc2UtPnN0ciksCisJCQkJCWVycmRldGFpbCgiSXRlbSBsaXN0IGVs ZW1lbnRzIGNhbm5vdCBiZSBudWxsLiIpKTsKKworCQkJcmV0dXJuIEpTT05fU0VNX0FDVElPTl9G QUlMRUQ7CisJCQlicmVhazsKKworCQlkZWZhdWx0OgorCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250 ZXh0LAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwK KwkJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiBcIiVzXCIiLCBwYXJzZS0+ c3RyKSwKKwkJCQkJZXJyZGV0YWlsKCJVbmV4cGVjdGVkIGFycmF5IGVsZW1lbnQuIikpOworCQkJ YnJlYWs7CisJfQorCisJcmV0dXJuIEpTT05fU0VNX0FDVElPTl9GQUlMRUQ7Cit9CisKKy8qCisg KiBUZXN0IGZvciB2YWxpZCBzdWJzZXF1ZW50IGF0dHJpYnV0ZSBudW1iZXIuCisgKgorICogSWYg dGhlIHByZXZpb3VzIHZhbHVlIGlzIHBvc2l0aXZlLCB0aGVuIGN1cnJlbnQgdmFsdWUgbXVzdCBl aXRoZXIgYmUKKyAqIGdyZWF0ZXIgdGhhbiB0aGUgcHJldmlvdXMgdmFsdWUsIG9yIG5lZ2F0aXZl LgorICoKKyAqIElmIHRoZSBwcmV2aW91cyB2YWx1ZSBpcyBuZWdhdGl2ZSwgdGhlbiB0aGUgdmFs dWUgbXVzdCBiZSBsZXNzIHRoYW4KKyAqIHRoZSBwcmV2aW91cyB2YWx1ZS4KKyAqCisgKiBEdXBs aWNhdGUgdmFsdWVzIGFyZSBvYnZpb3VzbHkgbm90IGFsbG93ZWQsIGJ1dCB0aGF0IGlzIGFscmVh ZHkgY292ZXJlZAorICogYnkgdGhlIHJ1bGVzIGxpc3RlZCBhYm92ZS4KKyAqLworc3RhdGljIGJv b2wKK3ZhbGlkX3N1YnNlcXVlbnRfYXR0bnVtKGNvbnN0IEF0dHJOdW1iZXIgcHJldiwgY29uc3Qg QXR0ck51bWJlciBjdXIpCit7CisJQXNzZXJ0KHByZXYgIT0gMCk7CisKKwlpZiAocHJldiA+IDAp CisJCXJldHVybiAoKGN1ciA+IHByZXYpIHx8IChjdXIgPCAwKSk7CisKKwlyZXR1cm4gKGN1ciA8 IHByZXYpOworfQorCisvKgorICogSGFuZGxlIHNjYWxhciBldmVudHMgZnJvbSB0aGUgZGVwZW5k ZW5jaWVzIGlucHV0IHBhcnNlci4KKyAqCisgKiBUaGVyZSBpcyBvbmx5IG9uZSBjYXNlIHdoZXJl IHdlIHdpbGwgZW5jb3VudGVyIGEgc2NhbGFyLCBhbmQgdGhhdCBpcyB0aGUKKyAqIGRlcGVuZGVu Y3kgZGVncmVlIGZvciB0aGUgcHJldmlvdXMgb2JqZWN0IGtleS4KKyAqLworc3RhdGljIEpzb25Q YXJzZUVycm9yVHlwZQorZGVwZW5kZW5jaWVzX3NjYWxhcih2b2lkICpzdGF0ZSwgY2hhciAqdG9r ZW4sIEpzb25Ub2tlblR5cGUgdG9rZW50eXBlKQoreworCURlcGVuZGVuY2llc1BhcnNlU3RhdGUg KnBhcnNlID0gc3RhdGU7CisJQXR0ck51bWJlcglhdHRudW07CisJRXJyb3JTYXZlQ29udGV4dCBl c2NvbnRleHQgPSB7VF9FcnJvclNhdmVDb250ZXh0fTsKKworCXN3aXRjaChwYXJzZS0+c3RhdGUp CisJeworCQljYXNlIERFUFNfRVhQRUNUX0FUVE5VTToKKwkJCWF0dG51bSA9IHBnX3N0cnRvaW50 MTZfc2FmZSh0b2tlbiwgKE5vZGUgKikgJmVzY29udGV4dCk7CisKKwkJCWlmIChTT0ZUX0VSUk9S X09DQ1VSUkVEKCZlc2NvbnRleHQpKQorCQkJeworCQkJCWVycnNhdmUocGFyc2UtPmVzY29udGV4 dCwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAor CQkJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiBcIiVzXCIiLCBwYXJzZS0+ c3RyKSwKKwkJCQkJCWVycmRldGFpbCgiSW52YWxpZCBcIiVzXCIgdmFsdWUuIiwgUEdfREVQRU5E RU5DSUVTX0tFWV9BVFRSSUJVVEVTKSk7CisJCQkJcmV0dXJuIEpTT05fU0VNX0FDVElPTl9GQUlM RUQ7CisJCQl9CisKKwkJCS8qCisJCQkgKiBUaGUgYXR0bnVtIGNhbm5vdCBiZSB6ZXJvIGEgbmVn YXRpdmUgbnVtYmVyIGJleW9uZCB0aGUgbnVtYmVyIG9mIHRoZQorCQkJICogcG9zc2libGUgZXhw cmVzc2lvbnMuCisJCQkgKi8KKwkJCWlmIChhdHRudW0gPT0gMCB8fCBhdHRudW0gPCAoMC1TVEFU U19NQVhfRElNRU5TSU9OUykpCisJCQl7CisJCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAor CQkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJ CQllcnJtc2coIm1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6IFwiJXNcIiIsIHBhcnNlLT5zdHIp LAorCQkJCQkJZXJyZGV0YWlsKCJJbnZhbGlkIFwiJXNcIiBlbGVtZW50OiAlZC4iLAorCQkJCQkJ CQkgIFBHX0RFUEVOREVOQ0lFU19LRVlfQVRUUklCVVRFUywgYXR0bnVtKSk7CisJCQkJcmV0dXJu IEpTT05fU0VNX0FDVElPTl9GQUlMRUQ7CisJCQl9CisKKwkJCWlmIChwYXJzZS0+YXR0bnVtX2xp c3QgIT0gTklMKQorCQkJeworCQkJCWNvbnN0IEF0dHJOdW1iZXIgcHJldiA9IGxsYXN0X2ludChw YXJzZS0+YXR0bnVtX2xpc3QpOworCisJCQkJaWYgKCF2YWxpZF9zdWJzZXF1ZW50X2F0dG51bShw cmV2LCBhdHRudW0pKQorCQkJCXsKKwkJCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJ CQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCQkJ CWVycm1zZygibWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogXCIlc1wiIiwgcGFyc2UtPnN0ciks CisJCQkJCQkJZXJyZGV0YWlsKCJJbnZhbGlkIFwiJXNcIiBlbGVtZW50OiAlZCBjYW5ub3QgZm9s bG93ICVkLiIsCisJCQkJCQkJCQkgIFBHX0RFUEVOREVOQ0lFU19LRVlfQVRUUklCVVRFUywgYXR0 bnVtLCBwcmV2KSk7CisJCQkJCXJldHVybiBKU09OX1NFTV9BQ1RJT05fRkFJTEVEOworCQkJCX0K KwkJCX0KKworCQkJcGFyc2UtPmF0dG51bV9saXN0ID0gbGFwcGVuZF9pbnQocGFyc2UtPmF0dG51 bV9saXN0LCAoaW50KSBhdHRudW0pOworCQkJcmV0dXJuIEpTT05fU1VDQ0VTUzsKKwkJCWJyZWFr OworCisJCWNhc2UgREVQU19FWFBFQ1RfREVQRU5ERU5DWToKKwkJCXBhcnNlLT5kZXBlbmRlbmN5 ID0gKEF0dHJOdW1iZXIpCisJCQkJcGdfc3RydG9pbnQxNl9zYWZlKHRva2VuLCAoTm9kZSAqKSAm ZXNjb250ZXh0KTsKKworCQkJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoJmVzY29udGV4dCkpCisJ CQl7CisJCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAorCQkJCQkJZXJyY29kZShFUlJDT0RF X0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJCQllcnJtc2coIm1hbGZvcm1lZCBw Z19kZXBlbmRlbmNpZXM6IFwiJXNcIiIsIHBhcnNlLT5zdHIpLAorCQkJCQkJZXJyZGV0YWlsKCJJ bnZhbGlkIFwiJXNcIiB2YWx1ZS4iLCBQR19ERVBFTkRFTkNJRVNfS0VZX0RFUEVOREVOQ1kpKTsK KwkJCQlyZXR1cm4gSlNPTl9TRU1fQUNUSU9OX0ZBSUxFRDsKKwkJCX0KKworCQkJLyoKKwkJCSAq IFRoZSBkZXBlbmRlbmN5IGF0dG51bSBjYW5ub3QgYmUgemVybyBhIG5lZ2F0aXZlIG51bWJlciBi ZXlvbmQgdGhlIG51bWJlcgorCQkJICogb2YgdGhlIHBvc3NpYmxlIGV4cHJlc3Npb25zLgorCQkJ ICovCisJCQlpZiAocGFyc2UtPmRlcGVuZGVuY3kgPT0gMCB8fCBwYXJzZS0+ZGVwZW5kZW5jeSA8 ICgwLVNUQVRTX01BWF9ESU1FTlNJT05TKSkKKwkJCXsKKwkJCQllcnJzYXZlKHBhcnNlLT5lc2Nv bnRleHQsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9O KSwKKwkJCQkJCWVycm1zZygibWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogXCIlc1wiIiwgcGFy c2UtPnN0ciksCisJCQkJCQllcnJkZXRhaWwoIkludmFsaWQgXCIlc1wiIHZhbHVlOiAlZC4iLAor CQkJCQkJCQkgIFBHX0RFUEVOREVOQ0lFU19LRVlfREVQRU5ERU5DWSwgcGFyc2UtPmRlcGVuZGVu Y3kpKTsKKwkJCQlyZXR1cm4gSlNPTl9TRU1fQUNUSU9OX0ZBSUxFRDsKKwkJCX0KKworCQkJcGFy c2UtPnN0YXRlID0gREVQU19FWFBFQ1RfS0VZOworCQkJcmV0dXJuIEpTT05fU1VDQ0VTUzsKKwkJ CWJyZWFrOworCisJCWNhc2UgREVQU19FWFBFQ1RfREVHUkVFOgorCQkJcGFyc2UtPmRlZ3JlZSA9 IGZsb2F0OGluX2ludGVybmFsKHRva2VuLCBOVUxMLCAiZG91YmxlIiwKKwkJCQkJCQkJCQkJICB0 b2tlbiwgKE5vZGUgKikgJmVzY29udGV4dCk7CisKKwkJCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVE KCZlc2NvbnRleHQpKQorCQkJeworCQkJCWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQkJ CWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCQkJZXJy bXNnKCJtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiBcIiVzXCIiLCBwYXJzZS0+c3RyKSwKKwkJ CQkJCWVycmRldGFpbCgiSW52YWxpZCBcIiVzXCIgdmFsdWUuIiwgUEdfREVQRU5ERU5DSUVTX0tF WV9ERUdSRUUpKTsKKwkJCQlyZXR1cm4gSlNPTl9TRU1fQUNUSU9OX0ZBSUxFRDsKKwkJCX0KKwor CQkJcGFyc2UtPnN0YXRlID0gREVQU19FWFBFQ1RfS0VZOworCQkJcmV0dXJuIEpTT05fU1VDQ0VT UzsKKwkJCWJyZWFrOworCisJCWRlZmF1bHQ6CisJCQllcnJzYXZlKHBhcnNlLT5lc2NvbnRleHQs CisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJ CQllcnJtc2coIm1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6IFwiJXNcIiIsIHBhcnNlLT5zdHIp LAorCQkJCQllcnJkZXRhaWwoIlVuZXhwZWN0ZWQgc2NhbGFyLiIpKTsKKwkJCWJyZWFrOworCX0K KworCXJldHVybiBKU09OX1NFTV9BQ1RJT05fRkFJTEVEOworfQorCisvKgorICogQ29tcGFyZSB0 aGUgYXR0cmlidXRlIGFycmF5cyBvZiB0d28gTVZEZXBlbmRlbmN5IHZhbHVlcywKKyAqIGxvb2tp bmcgZm9yIGR1cGxpY2F0ZSBzZXRzLgorICovCitzdGF0aWMgYm9vbAorZGVwX2F0dHJidXRlc19l cShjb25zdCBNVkRlcGVuZGVuY3kgKmEsIGNvbnN0IE1WRGVwZW5kZW5jeSAqYikKK3sKKwlpbnQJ CWk7CisKKwlpZiAoYS0+bmF0dHJpYnV0ZXMgIT0gYi0+bmF0dHJpYnV0ZXMpCisJCXJldHVybiBm YWxzZTsKKworCWZvciAoaSA9IDA7IGkgPCBhLT5uYXR0cmlidXRlczsgaSsrKQorCXsKKwkJaWYg KGEtPmF0dHJpYnV0ZXNbaV0gIT0gYi0+YXR0cmlidXRlc1tpXSkKKwkJCXJldHVybiBmYWxzZTsK Kwl9CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIEVuc3VyZSB0aGF0IGFuIGF0dG51bSBh cHBlYXJzIGFzIG9uZSBvZiB0aGUgYXR0bnVtcyBpbiBhIGdpdmVuCisgKiBNVkRlcGVuZGVuY3ku CisgKi8KK3N0YXRpYyBib29sCitkZXBfaGFzX2F0dG51bShjb25zdCBNVkRlcGVuZGVuY3kgKml0 ZW0sIEF0dHJOdW1iZXIgYXR0bnVtKQoreworCWZvciAoaW50IGkgPSAwOyBpIDwgaXRlbS0+bmF0 dHJpYnV0ZXM7IGkrKykKKwl7CisJCWlmIChhdHRudW0gPT0gaXRlbS0+YXR0cmlidXRlc1tpXSkK KwkJCXJldHVybiB0cnVlOworCX0KKwlyZXR1cm4gZmFsc2U7Cit9CisKKy8qCisgKiBFbnN1cmUg dGhhdCB0aGUgYXR0cmlidXRlcyBvZiBvbmUgTVZEZXBlbmRlbmN5IEEgYXJlIGEgcHJvcGVyIHN1 YnNldAorICogb2YgdGhlIHJlZmVyZW5jZSBNVkRlcGVuZGVuY3kgQi4KKyAqLworc3RhdGljIGJv b2wKK2RlcF9pc19hdHRudW1fc3Vic2V0KGNvbnN0IE1WRGVwZW5kZW5jeSAqaXRlbSwKKwkJCQkJ IGNvbnN0IE1WRGVwZW5kZW5jeSAqcmVmaXRlbSkKK3sKKwlmb3IgKGludCBpID0gMDsgaSA8IGl0 ZW0tPm5hdHRyaWJ1dGVzOyBpKyspCisJeworCQlpZiAoIWRlcF9oYXNfYXR0bnVtKHJlZml0ZW0s aXRlbS0+YXR0cmlidXRlc1tpXSkpCisJCQlyZXR1cm4gZmFsc2U7CisJfQorCXJldHVybiB0cnVl OworfQorCisvKgorICogR2VuZXJhdGUgYSBzdHJpbmcgcmVwcmVzZW50aW5nIGFuIGFycmF5IG9m IGF0dG51bXMuIEludGVybmFsbHksIHRoZQorICogZGVwZW5kZW5jeSBhdHRyaWJ1dGUgaXMgdGhl IGxhc3QgZWxlbWVudCwgc28gd2UgbGVhdmUgdGhhdCBvZmYuCisgKgorICoKKyAqIEZyZWVpbmcg dGhlIGFsbG9jYXRlZCBzdHJpbmcgaXMgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGNhbGxlci4KKyAq Lworc3RhdGljIGNoYXIgKgorZGVwX2F0dG51bV9saXN0KGNvbnN0IE1WRGVwZW5kZW5jeSAqaXRl bSkKK3sKKwlTdHJpbmdJbmZvRGF0YQlzdHI7CisKKwlpbml0U3RyaW5nSW5mbygmc3RyKTsKKwor CWFwcGVuZFN0cmluZ0luZm8oJnN0ciwgIiVkIiwgaXRlbS0+YXR0cmlidXRlc1swXSk7CisKKwlm b3IgKGludCBpID0gMTsgaSA8IGl0ZW0tPm5hdHRyaWJ1dGVzIC0gMTsgaSsrKQorCQlhcHBlbmRT dHJpbmdJbmZvKCZzdHIsICIsICVkIiwgaXRlbS0+YXR0cmlidXRlc1tpXSk7CisKKwlyZXR1cm4g c3RyLmRhdGE7Cit9CisKKy8qCisgKiBSZXR1cm4gdGhlIGRlcGVuZGVuY3ksIHdoaWNoIGlzIHRo ZSBsYXN0IGF0dHJpYnV0ZSBlbGVtZW50LgorICovCitzdGF0aWMgQXR0ck51bWJlcgorZGVwX2F0 dG51bV9kZXBlbmRlbmN5KGNvbnN0IE1WRGVwZW5kZW5jeSAqaXRlbSkKK3sKKwlyZXR1cm4gaXRl bS0+YXR0cmlidXRlc1tpdGVtLT5uYXR0cmlidXRlcyAtIDFdOworfQorCisvKgorICogQXR0ZW1w dCB0byBidWlsZCBhbmQgc2VyaWFsaXplIHRoZSBNVkRlcGVuZGVuY2llcyBvYmplY3QuCisgKgor ICogVGhpcyBjYW4gb25seSBiZSBleGVjdXRlZCBhZnRlciB0aGUgY29tcGxldGlvbiBvZiB0aGUg SlNPTiBwYXJzaW5nLgorICoKKyAqIEluIHRoZSBldmVudCBvZiBhbiBlcnJvciwgc2V0IHRoZSBl cnJvciBjb250ZXh0IGFuZCByZXR1cm4gTlVMTC4KKyAqLworc3RhdGljIGJ5dGVhICoKK2J1aWxk X212ZGVwZW5kZW5jaWVzKERlcGVuZGVuY2llc1BhcnNlU3RhdGUgKnBhcnNlLCBjaGFyICpzdHIp Cit7CisJaW50CQluZGVwcyA9IGxpc3RfbGVuZ3RoKHBhcnNlLT5kZXBlbmRlbmN5X2xpc3QpOwor CisJTVZEZXBlbmRlbmNpZXMgKm12ZGVwczsKKwlieXRlYQkgICAqYnl0ZXM7CisKKwlpbnQJCWRl cF9tb3N0X2F0dHJzID0gMDsKKwlpbnQJCWRlcF9tb3N0X2F0dHJzX2lkeCA9IDA7CisKKwlzd2l0 Y2gocGFyc2UtPnN0YXRlKQorCXsKKwkJY2FzZSBERVBTX1BBUlNFX0NPTVBMRVRFOgorCQkJLyoK KwkJCSAqIFBhcnNlIGVuZGVkIGluIHRoZSBleHBlY3RlZCBwbGFjZS4gV2Ugc2hvdWxkIGhhdmUg YSBsaXN0IG9mIGl0ZW1zLAorCQkJICogYnV0IGlmIHdlIGRvbid0IGl0IGlzIGJlY2F1c2UgdGhl cmUgYXJlIGJ1Z3MgaW4gb3RoZXIgcGFyc2Ugc3RlcHMuCisJCQkgKi8KKwkJCWlmIChuZGVwcyA9 PSAwKQorCQkJCWVsb2coRVJST1IsCisJCQkJCSAicGdfZGVwZW5kZW5jaWVzIHBhcnNpbmcgY2xh aW1zIHN1Y2Nlc3Mgd2l0aCBhbiBlbXB0eSBpdGVtIGxpc3QuIik7CisKKwkJCWJyZWFrOworCisJ CWNhc2UgREVQU19FWFBFQ1RfU1RBUlQ6CisJCQkvKiBibGFuayAqLworCQkJZXJyc2F2ZShwYXJz ZS0+ZXNjb250ZXh0LAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VO VEFUSU9OKSwKKwkJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiBcIiVzXCIi LCBzdHIpLAorCQkJCQllcnJkZXRhaWwoIlZhbHVlIGNhbm5vdCBiZSBlbXB0eS4iKSk7CisJCQly ZXR1cm4gTlVMTDsKKworCQlkZWZhdWx0OgorCQkJLyogVW5leHBlY3RlZCBlbmQtc3RhdGUuIFRP RE86IElzIHRoaXMgYW4gZWxvZygpPyAqLworCQkJZXJyc2F2ZShwYXJzZS0+ZXNjb250ZXh0LAor CQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQkJ ZXJybXNnKCJtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiBcIiVzXCIiLCBzdHIpLAorCQkJCQll cnJkZXRhaWwoIlVuZXhwZWN0ZWQgZW5kIHN0YXRlICVkLiIsIHBhcnNlLT5zdGF0ZSkpOworCQkJ cmV0dXJuIE5VTEw7CisJfQorCisJbXZkZXBzID0gcGFsbG9jMChvZmZzZXRvZihNVkRlcGVuZGVu Y2llcywgZGVwcykKKwkJCQkJICsgKG5kZXBzICogc2l6ZW9mKE1WRGVwZW5kZW5jeSAqKSkpOwor CW12ZGVwcy0+bWFnaWMgPSBTVEFUU19ERVBTX01BR0lDOworCW12ZGVwcy0+dHlwZSA9IFNUQVRT X0RFUFNfVFlQRV9CQVNJQzsKKwltdmRlcHMtPm5kZXBzID0gbmRlcHM7CisKKwlmb3IgKGludCBp ID0gMDsgaSA8IG5kZXBzOyBpKyspCisJeworCQkvKgorCQkgKiBVc2UgdGhlIE1WRGVwZW5kZW5j eSBvYmplY3RzIGluIHRoZSBkZXBlbmRlbmN5X2xpc3QuCisJCSAqCisJCSAqIEJlY2F1c2Ugd2Ug ZnJlZSB0aGUgZGVwZW5kZW5jeV9saXN0IGFmdGVyIHBhcnNpbmcgaXMgZG9uZSwgd2UgY2Fubm90 CisJCSAqIGZyZWUgaXQgaGVyZS4KKwkJICovCisJCW12ZGVwcy0+ZGVwc1tpXSA9IGxpc3RfbnRo KHBhcnNlLT5kZXBlbmRlbmN5X2xpc3QsIGkpOworCisJCS8qCisJCSAqIEVuc3VyZSB0aGF0IHRo aXMgaXRlbSBkb2VzIG5vdCBkdXBsaWNhdGUgdGhlIGF0dHJpYnV0ZXMgb2YgYW55CisJCSAqIHBy ZS1leGlzdGluZyBpdGVtLgorCQkgKi8KKwkJZm9yIChpbnQgaiA9IDA7IGogPCBpOyBqKyspCisJ CXsKKwkJCWlmIChkZXBfYXR0cmJ1dGVzX2VxKG12ZGVwcy0+ZGVwc1tpXSwgbXZkZXBzLT5kZXBz W2pdKSkKKwkJCXsKKwkJCQlNVkRlcGVuZGVuY3kgICAqZGVwID0gbXZkZXBzLT5kZXBzW2ldOwor CQkJCWNoYXIJCSAgICphdHRudW1fbGlzdCA9IGRlcF9hdHRudW1fbGlzdChkZXApOworCQkJCUF0 dHJOdW1iZXIJCWF0dG51bV9kZXAgPSBkZXBfYXR0bnVtX2RlcGVuZGVuY3koZGVwKTsKKworCQkJ CWVycnNhdmUocGFyc2UtPmVzY29udGV4dCwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElE X1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCQkJZXJybXNnKCJtYWxmb3JtZWQgcGdfZGVwZW5k ZW5jaWVzOiBcIiVzXCIiLCBzdHIpLAorCQkJCQkJZXJyZGV0YWlsKCJEdXBsaWNhdGUgXCIiIFBH X0RFUEVOREVOQ0lFU19LRVlfQVRUUklCVVRFUyAiXCIgYXJyYXk6IFslc10iCisJCQkJCQkJCSAg IiB3aXRoIFwiIiBQR19ERVBFTkRFTkNJRVNfS0VZX0RFUEVOREVOQ1kgIlwiOiAlZC4iLAorCQkJ CQkJCQkgIGF0dG51bV9saXN0LCBhdHRudW1fZGVwKSk7CisJCQkJcGZyZWUobXZkZXBzKTsKKwkJ CQlyZXR1cm4gTlVMTDsKKwkJCX0KKwkJfQorCisJCS8qCisJCSAqIEtlZXAgdHJhY2sgb2YgdGhl IGZpcnN0IGxvbmdlc3QgYXR0cmlidXRlIGxpc3QuIEFsbCBvdGhlciBhdHRyaWJ1dGUKKwkJICog bGlzdHMgbXVzdCBiZSBhIHN1YnNldCBvZiB0aGlzIGxpc3QuCisJCSAqLworCQlpZiAobXZkZXBz LT5kZXBzW2ldLT5uYXR0cmlidXRlcyA+IGRlcF9tb3N0X2F0dHJzKQorCQl7CisJCQlkZXBfbW9z dF9hdHRycyA9IG12ZGVwcy0+ZGVwc1tpXS0+bmF0dHJpYnV0ZXM7CisJCQlkZXBfbW9zdF9hdHRy c19pZHggPSBpOworCQl9CisJfQorCisJLyoKKwkgKiBWZXJpZnkgdGhhdCBhbGwgYXR0bnVtIHNl dHMgYXJlIGEgcHJvcGVyIHN1YnNldCBvZiB0aGUgZmlyc3QgbG9uZ2VzdAorCSAqIGF0dG51bSBz ZXQuCisJICoKKwkgKiBUT0RPOgorCSAqCisJICogSSdtIGZhaXJseSBjZXJ0YWluIHRoYXQgYmVj YXVzZSBzdGF0aXN0aWNzYWxseSBpbnNpZ25pZmljYW50IGRlcGVuZGVuY3kKKwkgKiBjb21iaW5h dGlvbnMgYXJlIG5vdCBzdG9yZWQsIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgdGhlIGxvbmdlc3Qg ZGVwZW5kZW5jeQorCSAqIGRvZXMgbm90IGV4aXN0LCBhbmQgdGhlcmVmb3JlIHRoaXMgdGVzdCBj YW5ub3QgYmUgZG9uZS4gSSBoYXZlIGxlZnQgdGhlCisJICogdGVzdCBpbiBwbGFjZSBmb3IgdGhl IHRpbWUgYmVpbmcgdW50aWwgdGhlIGlzc3VlIGNhbiBiZSBkZWZpbml0aXZlbHkKKwkgKiBzZXR0 bGVkLgorCSAqLworCWZvciAoaW50IGkgPSAwOyBpIDwgbmRlcHM7IGkrKykKKwl7CisJCWlmIChp ID09IGRlcF9tb3N0X2F0dHJzX2lkeCkKKwkJCWNvbnRpbnVlOworCisJCWlmICghZGVwX2lzX2F0 dG51bV9zdWJzZXQobXZkZXBzLT5kZXBzW2ldLAorCQkJCQkJCQkgIG12ZGVwcy0+ZGVwc1tkZXBf bW9zdF9hdHRyc19pZHhdKSkKKwkJeworCQkJTVZEZXBlbmRlbmN5ICAgKmRlcCA9IG12ZGVwcy0+ ZGVwc1tpXTsKKwkJCU1WRGVwZW5kZW5jeSAgICpyZWZkZXAgPSBtdmRlcHMtPmRlcHNbZGVwX21v c3RfYXR0cnNfaWR4XTsKKwkJCWNoYXIgKmRlcF9saXN0ID0gZGVwX2F0dG51bV9saXN0KGRlcCk7 CisJCQljaGFyICpyZWZkZXBfbGlzdCA9IGRlcF9hdHRudW1fbGlzdChyZWZkZXApOworCisJCQll cnJzYXZlKHBhcnNlLT5lc2NvbnRleHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RF WFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCQllcnJtc2coIm1hbGZvcm1lZCBwZ19kZXBlbmRlbmNp ZXM6IFwiJXNcIiIsIHN0ciksCisJCQkJCWVycmRldGFpbCgiXCIiIFBHX0RFUEVOREVOQ0lFU19L RVlfQVRUUklCVVRFUyAiXCIgYXJyYXk6IFslc10iCisJCQkJCQkJICAiIHdpdGggZGVwZW5kZW5j eSAlZCBtdXN0IGJlIGEgc3Vic2V0IG9mIGFycmF5OiBbJXNdIgorCQkJCQkJCSAgIiB3aXRoIGRl cGVuZGVuY3kgJWQuIiwKKwkJCQkJCQkgIGRlcF9saXN0LCBkZXBfYXR0bnVtX2RlcGVuZGVuY3ko ZGVwKSwKKwkJCQkJCQkgIHJlZmRlcF9saXN0LCBkZXBfYXR0bnVtX2RlcGVuZGVuY3kocmVmZGVw KSkpOworCQkJcGZyZWUobXZkZXBzKTsKKwkJCXJldHVybiBOVUxMOworCQl9CisJfQorCisJYnl0 ZXMgPSBzdGF0ZXh0X2RlcGVuZGVuY2llc19zZXJpYWxpemUobXZkZXBzKTsKKworCS8qCisJICog Tm8gbmVlZCB0byBmcmVlIHRoZSBpbmRpdmlkdWFsIE1WRGVwZW5kZW5jeSBvYmplY3RzLCBiZWNh dXNlIHRoZXkgYXJlIHN0aWxsCisJICogaW4gdGhlIGRlcGVuZGVuY3lfbGlzdCwgYW5kIHdpbGwg YmUgZnJlZWQgd2l0aCB0aGF0LgorCSAqLworCXBmcmVlKG12ZGVwcyk7CisKKwlyZXR1cm4gYnl0 ZXM7Cit9CisKKwogLyoKICAqIHBnX2RlcGVuZGVuY2llc19pbgkJLSBpbnB1dCByb3V0aW5lIGZv ciB0eXBlIHBnX2RlcGVuZGVuY2llcy4KICAqCi0gKiBwZ19kZXBlbmRlbmNpZXMgaXMgcmVhbCBl bm91Z2ggdG8gYmUgYSB0YWJsZSBjb2x1bW4sIGJ1dCBpdCBoYXMgbm8gb3BlcmF0aW9ucwotICog b2YgaXRzIG93biwgYW5kIGRpc2FsbG93cyBpbnB1dCB0b28KKyAqIFRoaXMgZm9ybWF0IGlzIHZh bGlkIEpTT04sIHdpdGggdGhlIGV4cGVjdGVkIGZvcm1hdDoKKyAqICAgIFt7ImF0dHJpYnV0ZXMi OiBbMSwyXSwgImRlcGVuZGVuY3kiOiAtMSwgImRlZ3JlZSI6IDEuMDAwMH0sCisgKiAgICAgeyJh dHRyaWJ1dGVzIjogWzEsLTFdLCAiZGVwZW5kZW5jeSI6IDIsICJkZWdyZWUiOiAwLjAwMDB9LAor ICogICAgIHsiYXR0cmlidXRlcyI6IFsyLC0xXSwgImRlcGVuZGVuY3kiOiAxLCAiZGVncmVlIjog MS4wMDAwfV0KKyAqCiAgKi8KIERhdHVtCiBwZ19kZXBlbmRlbmNpZXNfaW4oUEdfRlVOQ1RJT05f QVJHUykKIHsKLQkvKgotCSAqIHBnX25vZGVfbGlzdCBzdG9yZXMgdGhlIGRhdGEgaW4gYmluYXJ5 IGZvcm0gYW5kIHBhcnNpbmcgdGV4dCBpbnB1dCBpcwotCSAqIG5vdCBuZWVkZWQsIHNvIGRpc2Fs bG93IHRoaXMuCi0JICovCi0JZXJlcG9ydChFUlJPUiwKLQkJCShlcnJjb2RlKEVSUkNPREVfRkVB VFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCSBlcnJtc2coImNhbm5vdCBhY2NlcHQgYSB2YWx1ZSBv ZiB0eXBlICVzIiwgInBnX2RlcGVuZGVuY2llcyIpKSk7CisJY2hhcgkgICAqc3RyID0gUEdfR0VU QVJHX0NTVFJJTkcoMCk7CisJYnl0ZWEJICAgKmJ5dGVzID0gTlVMTDsKIAotCVBHX1JFVFVSTl9W T0lEKCk7CQkJLyoga2VlcCBjb21waWxlciBxdWlldCAqLworCURlcGVuZGVuY2llc1BhcnNlU3Rh dGUJcGFyc2Vfc3RhdGU7CisJSnNvblBhcnNlRXJyb3JUeXBlCXJlc3VsdDsKKwlKc29uTGV4Q29u dGV4dAkgICAqbGV4OworCUpzb25TZW1BY3Rpb24JCXNlbV9hY3Rpb247CisKKwkvKiBpbml0aWFs aXplIHRoZSBzZW1hbnRpYyBzdGF0ZSAqLworCXBhcnNlX3N0YXRlLnN0ciA9IHN0cjsKKwlwYXJz ZV9zdGF0ZS5zdGF0ZSA9IERFUFNfRVhQRUNUX1NUQVJUOworCXBhcnNlX3N0YXRlLmRlcGVuZGVu Y3lfbGlzdCA9IE5JTDsKKwlwYXJzZV9zdGF0ZS5hdHRudW1fbGlzdCA9IE5JTDsKKwlwYXJzZV9z dGF0ZS5kZXBlbmRlbmN5ID0gMDsKKwlwYXJzZV9zdGF0ZS5kZWdyZWUgPSAwLjA7CisJcGFyc2Vf c3RhdGUuZm91bmRfYXR0cmlidXRlcyA9IGZhbHNlOworCXBhcnNlX3N0YXRlLmZvdW5kX2RlcGVu ZGVuY3kgPSBmYWxzZTsKKwlwYXJzZV9zdGF0ZS5mb3VuZF9kZWdyZWUgPSBmYWxzZTsKKwlwYXJz ZV9zdGF0ZS5lc2NvbnRleHQgPSBmY2luZm8tPmNvbnRleHQ7CisKKwkvKiBzZXQgY2FsbGJhY2tz ICovCisJc2VtX2FjdGlvbi5zZW1zdGF0ZSA9ICh2b2lkICopICZwYXJzZV9zdGF0ZTsKKwlzZW1f YWN0aW9uLm9iamVjdF9zdGFydCA9IGRlcGVuZGVuY2llc19vYmplY3Rfc3RhcnQ7CisJc2VtX2Fj dGlvbi5vYmplY3RfZW5kID0gZGVwZW5kZW5jaWVzX29iamVjdF9lbmQ7CisJc2VtX2FjdGlvbi5h cnJheV9zdGFydCA9IGRlcGVuZGVuY2llc19hcnJheV9zdGFydDsKKwlzZW1fYWN0aW9uLmFycmF5 X2VuZCA9IGRlcGVuZGVuY2llc19hcnJheV9lbmQ7CisJc2VtX2FjdGlvbi5hcnJheV9lbGVtZW50 X3N0YXJ0ID0gZGVwZW5kZW5jaWVzX2FycmF5X2VsZW1lbnRfc3RhcnQ7CisJc2VtX2FjdGlvbi5h cnJheV9lbGVtZW50X2VuZCA9IE5VTEw7CisJc2VtX2FjdGlvbi5vYmplY3RfZmllbGRfc3RhcnQg PSBkZXBlbmRlbmNpZXNfb2JqZWN0X2ZpZWxkX3N0YXJ0OworCXNlbV9hY3Rpb24ub2JqZWN0X2Zp ZWxkX2VuZCA9IE5VTEw7CisJc2VtX2FjdGlvbi5zY2FsYXIgPSBkZXBlbmRlbmNpZXNfc2NhbGFy OworCisJbGV4ID0gbWFrZUpzb25MZXhDb250ZXh0Q3N0cmluZ0xlbihOVUxMLCBzdHIsIHN0cmxl bihzdHIpLCBQR19VVEY4LCB0cnVlKTsKKworCXJlc3VsdCA9IHBnX3BhcnNlX2pzb24obGV4LCAm c2VtX2FjdGlvbik7CisJZnJlZUpzb25MZXhDb250ZXh0KGxleCk7CisKKwlpZiAocmVzdWx0ID09 IEpTT05fU1VDQ0VTUykKKwkJYnl0ZXMgPSBidWlsZF9tdmRlcGVuZGVuY2llcygmcGFyc2Vfc3Rh dGUsIHN0cik7CisKKwlsaXN0X2ZyZWVfZGVlcChwYXJzZV9zdGF0ZS5kZXBlbmRlbmN5X2xpc3Qp OworCWxpc3RfZnJlZShwYXJzZV9zdGF0ZS5hdHRudW1fbGlzdCk7CisKKwlpZiAoYnl0ZXMpCisJ CVBHX1JFVFVSTl9CWVRFQV9QKGJ5dGVzKTsKKworCS8qCisJICogSWYgZXNjb250ZXh0IGFscmVh ZHkgc2V0LCBqdXN0IHVzZSB0aGF0LgorCSAqIEFueXRoaW5nIGVsc2UgaXMgYSBnZW5lcmljIEpT T04gcGFyc2UgZXJyb3IuCisJICovCisJaWYgKCFTT0ZUX0VSUk9SX09DQ1VSUkVEKHBhcnNlX3N0 YXRlLmVzY29udGV4dCkpCisJCWVycnNhdmUocGFyc2Vfc3RhdGUuZXNjb250ZXh0LAorCQkJCWVy cmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCWVycm1zZygi bWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogXCIlc1wiIiwgc3RyKSwKKwkJCQllcnJkZXRhaWwo Ik11c3QgYmUgdmFsaWQgSlNPTi4iKSk7CisKKwlQR19SRVRVUk5fTlVMTCgpOwogfQogCisKIC8q CiAgKiBwZ19kZXBlbmRlbmNpZXNfb3V0CQktIG91dHB1dCByb3V0aW5lIGZvciB0eXBlIHBnX2Rl cGVuZGVuY2llcy4KICAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w Z19kZXBlbmRlbmNpZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wZ19kZXBlbmRl bmNpZXMub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mY2Y1MTQ0 YTVlYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGdfZGVw ZW5kZW5jaWVzLm91dApAQCAtMCwwICsxLDQ0NyBAQAorLS0gVGVzdHMgZm9yIHR5cGUgcGdfZGlz dGluY3QKKy0tIEludmFsaWQgaW5wdXRzCitTRUxFQ1QgJ251bGwnOjpwZ19kZXBlbmRlbmNpZXM7 CitFUlJPUjogIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJudWxsIgorTElORSAxOiBTRUxF Q1QgJ251bGwnOjpwZ19kZXBlbmRlbmNpZXM7CisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBV bmV4cGVjdGVkIHNjYWxhci4KK1NFTEVDVCAneyJhIjogMX0nOjpwZ19kZXBlbmRlbmNpZXM7CitF UlJPUjogIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJ7ImEiOiAxfSIKK0xJTkUgMTogU0VM RUNUICd7ImEiOiAxfSc6OnBnX2RlcGVuZGVuY2llczsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJ TDogIEluaXRpYWwgZWxlbWVudCBtdXN0IGJlIGFuIGFycmF5LgorU0VMRUNUICdbXSc6OnBnX2Rl cGVuZGVuY2llczsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIltdIgorTElO RSAxOiBTRUxFQ1QgJ1tdJzo6cGdfZGVwZW5kZW5jaWVzOworICAgICAgICAgICAgICAgXgorREVU QUlMOiAgSXRlbSBhcnJheSBjYW5ub3QgYmUgZW1wdHkuCitTRUxFQ1QgJ3t9Jzo6cGdfZGVwZW5k ZW5jaWVzOworRVJST1I6ICBtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAie30iCitMSU5FIDE6 IFNFTEVDVCAne30nOjpwZ19kZXBlbmRlbmNpZXM7CisgICAgICAgICAgICAgICBeCitERVRBSUw6 ICBJbml0aWFsIGVsZW1lbnQgbXVzdCBiZSBhbiBhcnJheS4KK1NFTEVDVCAnW251bGxdJzo6cGdf ZGVwZW5kZW5jaWVzOworRVJST1I6ICBtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAiW251bGxd IgorTElORSAxOiBTRUxFQ1QgJ1tudWxsXSc6OnBnX2RlcGVuZGVuY2llczsKKyAgICAgICAgICAg ICAgIF4KK0RFVEFJTDogIEl0ZW0gbGlzdCBlbGVtZW50cyBjYW5ub3QgYmUgbnVsbC4KK1NFTEVD VCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnbnVsbCcsICdwZ19kZXBlbmRlbmNpZXMnKTsK KyAgICAgICAgICAgICAgbWVzc2FnZSAgICAgICAgICAgICAgfCAgICAgICBkZXRhaWwgICAgICAg fCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZv cm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJudWxsIiB8IFVuZXhwZWN0ZWQgc2NhbGFyLiB8ICAgICAg fCAyMlAwMgorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ3si YSI6IDF9JywgJ3BnX2RlcGVuZGVuY2llcycpOworICAgICAgICAgICAgICAgIG1lc3NhZ2UgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgZGV0YWlsICAgICAgICAgICAgICAgfCBoaW50IHwg c3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0KKyBtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAieyJhIjogMX0iIHwgSW5pdGlhbCBlbGVt ZW50IG11c3QgYmUgYW4gYXJyYXkuIHwgICAgICB8IDIyUDAyCisoMSByb3cpCisKK1NFTEVDVCAq IEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW10nLCAncGdfZGVwZW5kZW5jaWVzJyk7CisgICAg ICAgICAgICAgbWVzc2FnZSAgICAgICAgICAgICB8ICAgICAgICAgICBkZXRhaWwgICAgICAgICAg ICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0t LQorIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbXSIgfCBJdGVtIGFycmF5IGNhbm5vdCBi ZSBlbXB0eS4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBwZ19pbnB1 dF9lcnJvcl9pbmZvKCd7fScsICdwZ19kZXBlbmRlbmNpZXMnKTsKKyAgICAgICAgICAgICBtZXNz YWdlICAgICAgICAgICAgIHwgICAgICAgICAgICAgIGRldGFpbCAgICAgICAgICAgICAgIHwgaGlu dCB8IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0t CisgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogInt9IiB8IEluaXRpYWwgZWxlbWVudCBtdXN0 IGJlIGFuIGFycmF5LiB8ICAgICAgfCAyMlAwMgorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHBn X2lucHV0X2Vycm9yX2luZm8oJ1tudWxsXScsICdwZ19kZXBlbmRlbmNpZXMnKTsKKyAgICAgICAg ICAgICAgIG1lc3NhZ2UgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgZGV0YWlsICAgICAg ICAgICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbbnVsbF0i IHwgSXRlbSBsaXN0IGVsZW1lbnRzIGNhbm5vdCBiZSBudWxsLiB8ICAgICAgfCAyMlAwMgorKDEg cm93KQorCistLSBJbnZhbGlkIGtleXMKK1NFTEVDVCAnW3siYXR0cmlidXRlc19pbnZhbGlkIiA6 IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0fV0nOjpwZ19kZXBlbmRlbmNpZXM7CitFUlJPUjogIG1h bGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVzX2ludmFsaWQiIDogWzIsM10s ICJkZXBlbmRlbmN5IiA6IDR9XSIKK0xJTkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1dGVzX2ludmFs aWQiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDR9XSc6Li4uCisgICAgICAgICAgICAgICBeCitE RVRBSUw6ICBPbmx5IGFsbG93ZWQga2V5cyBhcmUgImF0dHJpYnV0ZXMiLCAiZGVwZW5kZW5jeSIg YW5kICJkZWdyZWUiLgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiaW52YWxpZCIg OiAzLCAiZGVwZW5kZW5jeSIgOiA0fV0nOjpwZ19kZXBlbmRlbmNpZXM7CitFUlJPUjogIG1hbGZv cm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiaW52YWxpZCIg OiAzLCAiZGVwZW5kZW5jeSIgOiA0fV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRlcyIg OiBbMiwzXSwgImludmFsaWQiIDogMywgImRlcGVuZGVuY3kiIC4uLgorICAgICAgICAgICAgICAg XgorREVUQUlMOiAgT25seSBhbGxvd2VkIGtleXMgYXJlICJhdHRyaWJ1dGVzIiwgImRlcGVuZGVu Y3kiIGFuZCAiZGVncmVlIi4KK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3si YXR0cmlidXRlc19pbnZhbGlkIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0fV0nLCAncGdfZGVw ZW5kZW5jaWVzJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2Fn ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkZXRhaWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaGludCB8IHNx bF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAiW3siYXR0cmlidXRl c19pbnZhbGlkIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0fV0iIHwgT25seSBhbGxvd2VkIGtl eXMgYXJlICJhdHRyaWJ1dGVzIiwgImRlcGVuZGVuY3kiIGFuZCAiZGVncmVlIi4gfCAgICAgIHwg MjJQMDIKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJh dHRyaWJ1dGVzIiA6IFsyLDNdLCAiaW52YWxpZCIgOiAzLCAiZGVwZW5kZW5jeSIgOiA0fV0nLCAn cGdfZGVwZW5kZW5jaWVzJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbWVzc2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19kZXBlbmRl bmNpZXM6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiaW52YWxpZCIgOiAzLCAiZGVwZW5kZW5j eSIgOiA0fV0iIHwgT25seSBhbGxvd2VkIGtleXMgYXJlICJhdHRyaWJ1dGVzIiwgImRlcGVuZGVu Y3kiIGFuZCAiZGVncmVlIi4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykKKworLS0gTWlzc2luZyBr ZXlzCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDR9XSc6 OnBnX2RlcGVuZGVuY2llczsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7 ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDR9XSIKK0xJTkUgMTogU0VMRUNU ICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0fV0nOjpwZ19kZXBlLi4u CisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBJdGVtIG11c3QgY29udGFpbiAiZGVncmVlIiBr ZXkuCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZWdyZWUiIDogMS4wMDB9XSc6 OnBnX2RlcGVuZGVuY2llczsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7 ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZWdyZWUiIDogMS4wMDB9XSIKK0xJTkUgMTogU0VMRUNU ICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVncmVlIiA6IDEuMDAwfV0nOjpwZ19kZXBlLi4u CisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBJdGVtIG11c3QgY29udGFpbiAiZGVwZW5kZW5j eSIga2V5LgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0 fV0nOjpwZ19kZXBlbmRlbmNpZXM7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6 ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0fV0iCitMSU5FIDE6IFNF TEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogNH1dJzo6cGdfZGVw ZS4uLgorICAgICAgICAgICAgICAgXgorREVUQUlMOiAgSXRlbSBtdXN0IGNvbnRhaW4gImRlZ3Jl ZSIga2V5LgorU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVz IiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0fV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICBkZXRhaWwgICAgICAgICAgICAgIHwgaGludCB8IHNx bF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfZGVwZW5kZW5j aWVzOiAiW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogNH1dIiB8IEl0ZW0g bXVzdCBjb250YWluICJkZWdyZWUiIGtleS4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykKKworU0VM RUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAi ZGVncmVlIiA6IDEuMDAwfV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgIGRldGFpbCAgICAgICAgICAgICAgICB8IGhpbnQgfCBzcWxfZXJyb3Jf Y29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6 ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVncmVlIiA6IDEuMDAwfV0iIHwgSXRlbSBtdXN0 IGNvbnRhaW4gImRlcGVuZGVuY3kiIGtleS4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykKKworU0VM RUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAi ZGVwZW5kZW5jeSIgOiA0fV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICBkZXRhaWwgICAgICAgICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9jb2Rl IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAiW3siYXR0 cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogNH1dIiB8IEl0ZW0gbXVzdCBjb250YWlu ICJkZWdyZWUiIGtleS4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykKKworLS0gVmFsaWQga2V5cywg dG9vIG1hbnkgYXR0cmlidXRlcworU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsxLDIsMyw0LDUs Niw3LDhdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XSc6OnBnX2RlcGVuZGVu Y2llczsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMi IDogWzEsMiwzLDQsNSw2LDcsOF0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1d IgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzEsMiwzLDQsNSw2LDcsOF0sICJk ZXBlbmRlbmN5IiA6IDQuLi4KKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIFRoZSAiYXR0cmli dXRlcyIga2V5IG11c3QgY29udGFpbiBhbiBhcnJheSBvZiBhdCBsZWFzdCAxIGFuZCBubyBtb3Jl IHRoYW4gNyBlbGVtZW50cy4KK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3si YXR0cmlidXRlcyIgOiBbMSwyLDMsNCw1LDYsNyw4XSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3Jl ZSI6IDEuMDAwfV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRldGFpbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBo aW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0t LS0tLS0tLS0tCisgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDog WzEsMiwzLDQsNSw2LDcsOF0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1dIiB8 IFRoZSAiYXR0cmlidXRlcyIga2V5IG11c3QgY29udGFpbiBhbiBhcnJheSBvZiBhdCBsZWFzdCAx IGFuZCBubyBtb3JlIHRoYW4gNyBlbGVtZW50cy4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykKKwor LS0gVmFsaWQga2V5cywgaW52YWxpZCB2YWx1ZXMKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBu dWxsLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XSc6OnBnX2RlcGVuZGVuY2ll czsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDog bnVsbCwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDEuMDAwfV0iCitMSU5FIDE6IFNFTEVD VCAnW3siYXR0cmlidXRlcyIgOiBudWxsLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4u LgorICAgICAgICAgICAgICAgXgorREVUQUlMOiAgVW5leHBlY3RlZCBzY2FsYXIuCitTRUxFQ1Qg J1t7ImF0dHJpYnV0ZXMiIDogWzIsbnVsbF0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAx LjAwMH1dJzo6cGdfZGVwZW5kZW5jaWVzOworRVJST1I6ICBtYWxmb3JtZWQgcGdfZGVwZW5kZW5j aWVzOiAiW3siYXR0cmlidXRlcyIgOiBbMixudWxsXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3Jl ZSI6IDEuMDAwfV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMixudWxsXSwg ImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZS4uLgorICAgICAgICAgICAgICAgXgorREVUQUlMOiAg QXR0cmlidXRlIG51bWJlciBhcnJheSBjYW5ub3QgYmUgbnVsbC4KK1NFTEVDVCAnW3siYXR0cmli dXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogbnVsbCwgImRlZ3JlZSI6IDEuMDAwfV0nOjpw Z19kZXBlbmRlbmNpZXM7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJh dHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiBudWxsLCAiZGVncmVlIjogMS4wMDB9 XSIKK0xJTkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIg OiBudWxsLCAiZGVncmVlLi4uCisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBJbnZhbGlkICJk ZXBlbmRlbmN5IiB2YWx1ZS4KK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwiYSJdLCAiZGVw ZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XSc6OnBnX2RlcGVuZGVuY2llczsKK0VSUk9S OiAgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDogWzIsImEiXSwg ImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDEuMDAwfV0iCitMSU5FIDE6IFNFTEVDVCAnW3si YXR0cmlidXRlcyIgOiBbMiwiYSJdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIi4uLgorICAg ICAgICAgICAgICAgXgorREVUQUlMOiAgSW52YWxpZCAiYXR0cmlidXRlcyIgdmFsdWUuCitTRUxF Q1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6ICJhIiwgImRlZ3JlZSI6 IDEuMDAwfV0nOjpwZ19kZXBlbmRlbmNpZXM7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19kZXBlbmRl bmNpZXM6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiAiYSIsICJkZWdy ZWUiOiAxLjAwMH1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJk ZXBlbmRlbmN5IiA6ICJhIiwgImRlZ3JlZSIuLi4KKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDog IEludmFsaWQgImRlcGVuZGVuY3kiIHZhbHVlLgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsy LDNdLCAiZGVwZW5kZW5jeSIgOiBbXSwgImRlZ3JlZSI6IDEuMDAwfV0nOjpwZ19kZXBlbmRlbmNp ZXM7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVzIiA6 IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiBbXSwgImRlZ3JlZSI6IDEuMDAwfV0iCitMSU5FIDE6IFNF TEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogW10sICJkZWdyZWUi Oi4uLgorICAgICAgICAgICAgICAgXgorREVUQUlMOiAgQXJyYXkgZm91bmQgaW4gdW5leHBlY3Rl ZCBwbGFjZS4KK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDog W251bGxdLCAiZGVncmVlIjogMS4wMDB9XSc6OnBnX2RlcGVuZGVuY2llczsKK0VSUk9SOiAgbWFs Zm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRl bmN5IiA6IFtudWxsXSwgImRlZ3JlZSI6IDEuMDAwfV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0 cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogW251bGxdLCAiZGVnci4uLgorICAgICAg ICAgICAgICAgXgorREVUQUlMOiAgQXJyYXkgZm91bmQgaW4gdW5leHBlY3RlZCBwbGFjZS4KK1NF TEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogWzEsbnVsbF0sICJk ZWdyZWUiOiAxLjAwMH1dJzo6cGdfZGVwZW5kZW5jaWVzOworRVJST1I6ICBtYWxmb3JtZWQgcGdf ZGVwZW5kZW5jaWVzOiAiW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogWzEs bnVsbF0sICJkZWdyZWUiOiAxLjAwMH1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMi IDogWzIsM10sICJkZXBlbmRlbmN5IiA6IFsxLG51bGxdLCAiZGUuLi4KKyAgICAgICAgICAgICAg IF4KK0RFVEFJTDogIEFycmF5IGZvdW5kIGluIHVuZXhwZWN0ZWQgcGxhY2UuCitTRUxFQ1QgJ1t7 ImF0dHJpYnV0ZXMiIDogMSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDEuMDAwfV0nOjpw Z19kZXBlbmRlbmNpZXM7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJh dHRyaWJ1dGVzIiA6IDEsICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1dIgorTElO RSAxOiBTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogMSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3Jl ZSI6IDEuMDAuLi4KKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIFVuZXhwZWN0ZWQgc2NhbGFy LgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6ICJhIiwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3Jl ZSI6IDEuMDAwfV0nOjpwZ19kZXBlbmRlbmNpZXM7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19kZXBl bmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVzIiA6ICJhIiwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3Jl ZSI6IDEuMDAwfV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRlcyIgOiAiYSIsICJkZXBl bmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLi4uLgorICAgICAgICAgICAgICAgXgorREVUQUlMOiAg VW5leHBlY3RlZCBzY2FsYXIuCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBl bmRlbmN5IiA6IDQsICJkZWdyZWUiOiBOYU59XSc6OnBnX2RlcGVuZGVuY2llczsKK0VSUk9SOiAg bWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBl bmRlbmN5IiA6IDQsICJkZWdyZWUiOiBOYU59XSIKK0xJTkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1 dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogLi4uCisgICAgICAgICAg ICAgICBeCitERVRBSUw6ICBNdXN0IGJlIHZhbGlkIEpTT04uCitTRUxFQ1QgKiBGUk9NIHBnX2lu cHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogbnVsbCwgImRlcGVuZGVuY3kiIDogNCwg ImRlZ3JlZSI6IDEuMDAwfV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgZGV0YWlsICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9j b2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAi W3siYXR0cmlidXRlcyIgOiBudWxsLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9 XSIgfCBVbmV4cGVjdGVkIHNjYWxhci4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykKKworU0VMRUNU ICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLG51bGxdLCAi ZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XScsICdwZ19kZXBlbmRlbmNpZXMnKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgIGRl dGFpbCAgICAgICAgICAgICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19kZXBlbmRl bmNpZXM6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLG51bGxdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVn cmVlIjogMS4wMDB9XSIgfCBBdHRyaWJ1dGUgbnVtYmVyIGFycmF5IGNhbm5vdCBiZSBudWxsLiB8 ICAgICAgfCAyMlAwMgorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2lu Zm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IG51bGwsICJkZWdyZWUi OiAxLjAwMH1dJywgJ3BnX2RlcGVuZGVuY2llcycpOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgZGV0YWlsICAgICAgICAgICAgfCBoaW50IHwgc3FsX2Vy cm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQg cGdfZGVwZW5kZW5jaWVzOiAiW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDog bnVsbCwgImRlZ3JlZSI6IDEuMDAwfV0iIHwgSW52YWxpZCAiZGVwZW5kZW5jeSIgdmFsdWUuIHwg ICAgICB8IDIyUDAyCisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5m bygnW3siYXR0cmlidXRlcyIgOiBbMiwiYSJdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjog MS4wMDB9XScsICdwZ19kZXBlbmRlbmNpZXMnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG1lc3NhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgZGV0YWlsICAgICAgICAgICAgfCBoaW50IHwgc3FsX2Vycm9y X2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19k ZXBlbmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLCJhIl0sICJkZXBlbmRlbmN5IiA6IDQs ICJkZWdyZWUiOiAxLjAwMH1dIiB8IEludmFsaWQgImF0dHJpYnV0ZXMiIHZhbHVlLiB8ICAgICAg fCAyMlAwMgorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7 ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6ICJhIiwgImRlZ3JlZSI6IDEuMDAw fV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgIGRldGFpbCAgICAgICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9jb2Rl IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfZGVwZW5k ZW5jaWVzOiAiW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogImEiLCAiZGVn cmVlIjogMS4wMDB9XSIgfCBJbnZhbGlkICJkZXBlbmRlbmN5IiB2YWx1ZS4gfCAgICAgIHwgMjJQ MDIKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRy aWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiBbXSwgImRlZ3JlZSI6IDEuMDAwfV0nLCAn cGdfZGVwZW5kZW5jaWVzJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgZGV0YWlsICAgICAgICAgICAgICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19kZXBl bmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiBbXSwgImRl Z3JlZSI6IDEuMDAwfV0iIHwgQXJyYXkgZm91bmQgaW4gdW5leHBlY3RlZCBwbGFjZS4gfCAgICAg IHwgMjJQMDIKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdb eyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiBbbnVsbF0sICJkZWdyZWUiOiAx LjAwMH1dJywgJ3BnX2RlcGVuZGVuY2llcycpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICBkZXRhaWwgICAgICAgICAgICAgIHwgaGludCB8IHNx bF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQor IG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVw ZW5kZW5jeSIgOiBbbnVsbF0sICJkZWdyZWUiOiAxLjAwMH1dIiB8IEFycmF5IGZvdW5kIGluIHVu ZXhwZWN0ZWQgcGxhY2UuIHwgICAgICB8IDIyUDAyCisoMSByb3cpCisKK1NFTEVDVCAqIEZST00g cGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3ki IDogWzEsbnVsbF0sICJkZWdyZWUiOiAxLjAwMH1dJywgJ3BnX2RlcGVuZGVuY2llcycpOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIGRldGFp bCAgICAgICAgICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAi W3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogWzEsbnVsbF0sICJkZWdyZWUi OiAxLjAwMH1dIiB8IEFycmF5IGZvdW5kIGluIHVuZXhwZWN0ZWQgcGxhY2UuIHwgICAgICB8IDIy UDAyCisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0 cmlidXRlcyIgOiAxLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XScsICdwZ19k ZXBlbmRlbmNpZXMnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1l c3NhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICBkZXRh aWwgICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1h bGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVzIiA6IDEsICJkZXBlbmRlbmN5 IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1dIiB8IFVuZXhwZWN0ZWQgc2NhbGFyLiB8ICAgICAgfCAy MlAwMgorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0 dHJpYnV0ZXMiIDogImEiLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XScsICdw Z19kZXBlbmRlbmNpZXMnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtZXNzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg IGRldGFpbCAgICAgICB8IGhpbnQgfCBzcWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0KKyBtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAiW3siYXR0cmlidXRlcyIgOiAiYSIsICJk ZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1dIiB8IFVuZXhwZWN0ZWQgc2NhbGFyLiB8 ICAgICAgfCAyMlAwMgorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2lu Zm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiBO YU59XScsICdwZ19kZXBlbmRlbmNpZXMnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgIGRldGFpbCAgICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0t LS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVz IiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogTmFOfV0iIHwgTXVzdCBiZSB2 YWxpZCBKU09OLiB8ICAgICAgfCAyMlAwMgorKDEgcm93KQorCitTRUxFQ1QgJ1t7ImF0dHJpYnV0 ZXMiOiBbXSwgImRlcGVuZGVuY3kiOiAyLCAiZGVncmVlIjogMX1dJyA6OnBnX2RlcGVuZGVuY2ll czsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiOiBb XSwgImRlcGVuZGVuY3kiOiAyLCAiZGVncmVlIjogMX1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0 dHJpYnV0ZXMiOiBbXSwgImRlcGVuZGVuY3kiOiAyLCAiZGVncmVlIjogMX1dJyAuLi4KKyAgICAg ICAgICAgICAgIF4KK0RFVEFJTDogIFRoZSAiYXR0cmlidXRlcyIga2V5IG11c3QgYmUgYW4gbm9u LWVtcHR5IGFycmF5LgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IHsiYSI6IDF9LCAiZGVwZW5k ZW5jeSIgOiA0LCAiZGVncmVlIjogIjEuMiJ9XSc6OnBnX2RlcGVuZGVuY2llczsKK0VSUk9SOiAg bWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDogeyJhIjogMX0sICJk ZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAiMS4yIn1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0 dHJpYnV0ZXMiIDogeyJhIjogMX0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUuLi4KKyAgICAg ICAgICAgICAgIF4KK0RFVEFJTDogIFZhbHVlIG9mICJhdHRyaWJ1dGVzIiBtdXN0IGJlIGFuIGFy cmF5IG9mIGF0dHJpYnV0ZSBudW1iZXJzLgorU0VMRUNUICdbeyJkZXBlbmRlbmN5IiA6IDQsICJk ZWdyZWUiOiAiMS4yIn1dJzo6cGdfZGVwZW5kZW5jaWVzOworRVJST1I6ICBtYWxmb3JtZWQgcGdf ZGVwZW5kZW5jaWVzOiAiW3siZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogIjEuMiJ9XSIKK0xJ TkUgMTogU0VMRUNUICdbeyJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAiMS4yIn1dJzo6cGdf ZGVwZW5kZW5jLi4uCisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBJdGVtIG11c3QgY29udGFp biAiYXR0cmlidXRlcyIga2V5CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzEsMiwzLDQsNSw2 LDddLCAiZGVwZW5kZW5jeSIgOiAwLCAiZGVncmVlIjogIjEuMiJ9XSc6OnBnX2RlcGVuZGVuY2ll czsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDog WzEsMiwzLDQsNSw2LDddLCAiZGVwZW5kZW5jeSIgOiAwLCAiZGVncmVlIjogIjEuMiJ9XSIKK0xJ TkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsxLDIsMyw0LDUsNiw3XSwgImRlcGVuZGVu Y3kiIDogMCwgLi4uCisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBJbnZhbGlkICJkZXBlbmRl bmN5IiB2YWx1ZTogMC4KK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMSwyLDMsNCw1LDYsN10s ICJkZXBlbmRlbmN5IiA6IC05LCAiZGVncmVlIjogIjEuMiJ9XSc6OnBnX2RlcGVuZGVuY2llczsK K0VSUk9SOiAgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDogWzEs MiwzLDQsNSw2LDddLCAiZGVwZW5kZW5jeSIgOiAtOSwgImRlZ3JlZSI6ICIxLjIifV0iCitMSU5F IDE6IFNFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMSwyLDMsNCw1LDYsN10sICJkZXBlbmRlbmN5 IiA6IC05LC4uLgorICAgICAgICAgICAgICAgXgorREVUQUlMOiAgSW52YWxpZCAiZGVwZW5kZW5j eSIgdmFsdWU6IC05LgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIjogWzEsMl0sICJkZXBlbmRlbmN5 IjogMiwgImRlZ3JlZSI6IDF9XScgOjpwZ19kZXBlbmRlbmNpZXM7CitFUlJPUjogIG1hbGZvcm1l ZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVzIjogWzEsMl0sICJkZXBlbmRlbmN5Ijog MiwgImRlZ3JlZSI6IDF9XSIKK0xJTkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1dGVzIjogWzEsMl0s ICJkZXBlbmRlbmN5IjogMiwgImRlZ3JlZSI6IDF9Li4uCisgICAgICAgICAgICAgICBeCitERVRB SUw6ICBJdGVtICJkZXBlbmRlbmN5IiB2YWx1ZSAyIGZvdW5kIGluIHRoZSAiYXR0cmlidXRlcyIg bGlzdC4KK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMSwge31dLCAiZGVwZW5kZW5jeSIgOiAx LCAiZGVncmVlIjogIjEuMiJ9XSc6OnBnX2RlcGVuZGVuY2llczsKK0VSUk9SOiAgbWFsZm9ybWVk IHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDogWzEsIHt9XSwgImRlcGVuZGVuY3ki IDogMSwgImRlZ3JlZSI6ICIxLjIifV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRlcyIg OiBbMSwge31dLCAiZGVwZW5kZW5jeSIgOiAxLCAiZGVncmVlIi4uLgorICAgICAgICAgICAgICAg XgorREVUQUlMOiAgQXR0cmlidXRlIGxpc3RzIGNhbiBvbmx5IGNvbnRhaW4gYXR0cmlidXRlIG51 bWJlcnMuCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzEsMl0sICJkZXBlbmRlbmN5IiA6IHt9 LCAiZGVncmVlIjogMS4wfV0nOjpwZ19kZXBlbmRlbmNpZXM7CitFUlJPUjogIG1hbGZvcm1lZCBw Z19kZXBlbmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVzIiA6IFsxLDJdLCAiZGVwZW5kZW5jeSIgOiB7 fSwgImRlZ3JlZSI6IDEuMH1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzEs Ml0sICJkZXBlbmRlbmN5IiA6IHt9LCAiZGVncmVlIjouLi4KKyAgICAgICAgICAgICAgIF4KK0RF VEFJTDogIFZhbHVlIG9mICJkZXBlbmRlbmN5IiBtdXN0IGJlIGFuIGludGVnZXIuCitTRUxFQ1Qg J1t7ImF0dHJpYnV0ZXMiIDogWzEsMl0sICJkZXBlbmRlbmN5IiA6IDMsICJkZWdyZWUiOiB7fX1d Jzo6cGdfZGVwZW5kZW5jaWVzOworRVJST1I6ICBtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAi W3siYXR0cmlidXRlcyIgOiBbMSwyXSwgImRlcGVuZGVuY3kiIDogMywgImRlZ3JlZSI6IHt9fV0i CitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMSwyXSwgImRlcGVuZGVuY3kiIDog MywgImRlZ3JlZSI6IC4uLgorICAgICAgICAgICAgICAgXgorREVUQUlMOiAgVmFsdWUgb2YgImRl Z3JlZSIgbXVzdCBiZSBhbiBpbnRlZ2VyLgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsxLDJd LCAiZGVwZW5kZW5jeSIgOiAxLCAiZGVncmVlIjogImEifV0nOjpwZ19kZXBlbmRlbmNpZXM7CitF UlJPUjogIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVzIiA6IFsxLDJd LCAiZGVwZW5kZW5jeSIgOiAxLCAiZGVncmVlIjogImEifV0iCitMSU5FIDE6IFNFTEVDVCAnW3si YXR0cmlidXRlcyIgOiBbMSwyXSwgImRlcGVuZGVuY3kiIDogMSwgImRlZ3JlZSI6IC4uLgorICAg ICAgICAgICAgICAgXgorREVUQUlMOiAgSW52YWxpZCAiZGVncmVlIiB2YWx1ZS4KK1NFTEVDVCAn W3siYXR0cmlidXRlcyIgOiBbMl0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAiTmFOIn1d Jzo6cGdfZGVwZW5kZW5jaWVzOworICAgICAgICAgICAgICAgICAgICBwZ19kZXBlbmRlbmNpZXMg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFt7ImF0dHJpYnV0ZXMiOiBbMl0sICJkZXBlbmRlbmN5Ijog NCwgImRlZ3JlZSI6IE5hTn1dCisoMSByb3cpCisKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBb Ml0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAiLWluZiJ9XSc6OnBnX2RlcGVuZGVuY2ll czsKKyAgICAgICAgICAgICAgICAgICAgICAgcGdfZGVwZW5kZW5jaWVzICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBbeyJhdHRyaWJ1dGVzIjogWzJdLCAiZGVwZW5kZW5jeSI6IDQsICJk ZWdyZWUiOiAtSW5maW5pdHl9XQorKDEgcm93KQorCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDog WzJdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogImluZiJ9XSc6OnBnX2RlcGVuZGVuY2ll czsKKyAgICAgICAgICAgICAgICAgICAgICBwZ19kZXBlbmRlbmNpZXMgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgW3siYXR0cmlidXRlcyI6IFsyXSwgImRlcGVuZGVuY3kiOiA0LCAiZGVn cmVlIjogSW5maW5pdHl9XQorKDEgcm93KQorCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzJd LCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogIi1pbmYifV0nOjpwZ19kZXBlbmRlbmNpZXM6 OnRleHQ6OnBnX2RlcGVuZGVuY2llczsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2ll czogIlt7ImF0dHJpYnV0ZXMiOiBbMl0sICJkZXBlbmRlbmN5IjogNCwgImRlZ3JlZSI6IC1JbmZp bml0eX1dIgorREVUQUlMOiAgTXVzdCBiZSB2YWxpZCBKU09OLgorLS0gRHVwbGljYXRlZCBrZXlz CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJhdHRyaWJ1dGVzIjogWzEsMl0sICJk ZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1dJzo6cGdfZGVwZW5kZW5jaWVzOworRVJS T1I6ICBtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAiW3siYXR0cmlidXRlcyIgOiBbMiwzXSwg ImF0dHJpYnV0ZXMiOiBbMSwyXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDEuMDAwfV0i CitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImF0dHJpYnV0ZXMiOiBb MSwyXSwgImRlcGVuZC4uLgorICAgICAgICAgICAgICAgXgorREVUQUlMOiAgTXVsdGlwbGUgImF0 dHJpYnV0ZXMiIGtleXMgYXJlIG5vdCBhbGxvd2VkLgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6 IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVwZW5kZW5jeSI6IDQsICJkZWdyZWUiOiAxLjAw MH1dJzo6cGdfZGVwZW5kZW5jaWVzOworRVJST1I6ICBtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVz OiAiW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogNCwgImRlcGVuZGVuY3ki OiA0LCAiZGVncmVlIjogMS4wMDB9XSIKK0xJTkUgMTogU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6 IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVwZW5kZW5jLi4uCisgICAgICAgICAgICAgICBe CitERVRBSUw6ICBNdWx0aXBsZSAiZGVwZW5kZW5jeSIga2V5cyBhcmUgbm90IGFsbG93ZWQuCitT RUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IjogNCwgImRlZ3JlZSI6 IDEuMDAwLCAiZGVncmVlIjogMS4wMDB9XSc6OnBnX2RlcGVuZGVuY2llczsKK0VSUk9SOiAgbWFs Zm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRl bmN5IjogNCwgImRlZ3JlZSI6IDEuMDAwLCAiZGVncmVlIjogMS4wMDB9XSIKK0xJTkUgMTogU0VM RUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSI6IDQsICJkZWdyZWUiOiAx Li4uCisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBNdWx0aXBsZSAiZGVncmVlIiBrZXlzIGFy ZSBub3QgYWxsb3dlZC4KK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0 cmlidXRlcyIgOiBbMiwzXSwgImF0dHJpYnV0ZXMiOiBbMSwyXSwgImRlcGVuZGVuY3kiIDogNCwg ImRlZ3JlZSI6IDEuMDAwfV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg IGRldGFpbCAgICAgICAgICAgICAgICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0t LS0tLS0tCisgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDogWzIs M10sICJhdHRyaWJ1dGVzIjogWzEsMl0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAw MH1dIiB8IE11bHRpcGxlICJhdHRyaWJ1dGVzIiBrZXlzIGFyZSBub3QgYWxsb3dlZC4gfCAgICAg IHwgMjJQMDIKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdb eyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVwZW5kZW5jeSI6IDQs ICJkZWdyZWUiOiAxLjAwMH1dJywgJ3BnX2RlcGVuZGVuY2llcycpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIGRl dGFpbCAgICAgICAgICAgICAgICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0K KyBtYWxmb3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAiW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRl cGVuZGVuY3kiIDogNCwgImRlcGVuZGVuY3kiOiA0LCAiZGVncmVlIjogMS4wMDB9XSIgfCBNdWx0 aXBsZSAiZGVwZW5kZW5jeSIga2V5cyBhcmUgbm90IGFsbG93ZWQuIHwgICAgICB8IDIyUDAyCiso MSByb3cpCisKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRl cyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiOiA0LCAiZGVncmVlIjogMS4wMDAsICJkZWdyZWUiOiAx LjAwMH1dJywgJ3BnX2RlcGVuZGVuY2llcycpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgIGRldGFpbCAgICAgICAgICAg ICAgICAgIHwgaGludCB8IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19kZXBlbmRl bmNpZXM6ICJbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSI6IDQsICJkZWdyZWUi OiAxLjAwMCwgImRlZ3JlZSI6IDEuMDAwfV0iIHwgTXVsdGlwbGUgImRlZ3JlZSIga2V5cyBhcmUg bm90IGFsbG93ZWQuIHwgICAgICB8IDIyUDAyCisoMSByb3cpCisKKy0tIEludmFsaWQgYXR0bnVt cworU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFswLDJdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVn cmVlIjogMC41MDB9XSc6OnBnX2RlcGVuZGVuY2llczsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX2Rl cGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMiIDogWzAsMl0sICJkZXBlbmRlbmN5IiA6IDQsICJk ZWdyZWUiOiAwLjUwMH1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzAsMl0s ICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAuLi4KKyAgICAgICAgICAgICAgIF4KK0RFVEFJ TDogIEludmFsaWQgImF0dHJpYnV0ZXMiIGVsZW1lbnQ6IDAuCitTRUxFQ1QgJ1t7ImF0dHJpYnV0 ZXMiIDogWy03LC05XSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDAuNTAwfV0nOjpwZ19k ZXBlbmRlbmNpZXM7CitFUlJPUjogIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJhdHRy aWJ1dGVzIiA6IFstNywtOV0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAwLjUwMH1dIgor TElORSAxOiBTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWy03LC05XSwgImRlcGVuZGVuY3kiIDog NCwgImRlZ3JlZSIuLi4KKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIEludmFsaWQgImF0dHJp YnV0ZXMiIGVsZW1lbnQ6IC05LgorU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdb eyJhdHRyaWJ1dGVzIiA6IFswLDJdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMC41MDB9 XScsICdwZ19kZXBlbmRlbmNpZXMnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbWVzc2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgIGRldGFpbCAgICAgICAgICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2Nv ZGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19k ZXBlbmRlbmNpZXM6ICJbeyJhdHRyaWJ1dGVzIiA6IFswLDJdLCAiZGVwZW5kZW5jeSIgOiA0LCAi ZGVncmVlIjogMC41MDB9XSIgfCBJbnZhbGlkICJhdHRyaWJ1dGVzIiBlbGVtZW50OiAwLiB8ICAg ICAgfCAyMlAwMgorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8o J1t7ImF0dHJpYnV0ZXMiIDogWy03LC05XSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDAu NTAwfV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtZXNzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgIGRldGFpbCAgICAgICAgICAgICAgIHwgaGludCB8IHNxbF9l cnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxm b3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAiW3siYXR0cmlidXRlcyIgOiBbLTcsLTldLCAiZGVwZW5k ZW5jeSIgOiA0LCAiZGVncmVlIjogMC41MDB9XSIgfCBJbnZhbGlkICJhdHRyaWJ1dGVzIiBlbGVt ZW50OiAtOS4gfCAgICAgIHwgMjJQMDIKKygxIHJvdykKKworLS0gRHVwbGljYXRlZCBhdHRyaWJ1 dGVzCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsMl0sICJkZXBlbmRlbmN5IiA6IDQsICJk ZWdyZWUiOiAwLjUwMH1dJzo6cGdfZGVwZW5kZW5jaWVzOworRVJST1I6ICBtYWxmb3JtZWQgcGdf ZGVwZW5kZW5jaWVzOiAiW3siYXR0cmlidXRlcyIgOiBbMiwyXSwgImRlcGVuZGVuY3kiIDogNCwg ImRlZ3JlZSI6IDAuNTAwfV0iCitMSU5FIDE6IFNFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwy XSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IC4uLgorICAgICAgICAgICAgICAgXgorREVU QUlMOiAgSW52YWxpZCAiYXR0cmlidXRlcyIgZWxlbWVudDogMiBjYW5ub3QgZm9sbG93IDIuCitT RUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsMl0s ICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAwLjUwMH1dJywgJ3BnX2RlcGVuZGVuY2llcycp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICBkZXRhaWwgICAgICAgICAgICAgICAgICAgICAgfCBoaW50IHwgc3FsX2Vycm9yX2NvZGUgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyBtYWxm b3JtZWQgcGdfZGVwZW5kZW5jaWVzOiAiW3siYXR0cmlidXRlcyIgOiBbMiwyXSwgImRlcGVuZGVu Y3kiIDogNCwgImRlZ3JlZSI6IDAuNTAwfV0iIHwgSW52YWxpZCAiYXR0cmlidXRlcyIgZWxlbWVu dDogMiBjYW5ub3QgZm9sbG93IDIuIHwgICAgICB8IDIyUDAyCisoMSByb3cpCisKKy0tIER1cGxp Y2F0ZWQgYXR0cmlidXRlIGxpc3RzLgorU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAi ZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9LAorICAgICAgICAgeyJhdHRyaWJ1dGVz IiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XSc6OnBnX2RlcGVu ZGVuY2llczsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0 ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH0sCisgICAgICAg ICB7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAw MH1dIgorTElORSAxOiBTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5 IiA6IDQsICJkZWdyZWUiOiAuLi4KKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIER1cGxpY2F0 ZSAiYXR0cmlidXRlcyIgYXJyYXk6IFsyLCAzXSB3aXRoICJkZXBlbmRlbmN5IjogNC4KK1NFTEVD VCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRl cGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDEuMDAwfSwKKyAgICAgICAgIHsiYXR0cmlidXRlcyIg OiBbMiwzXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDEuMDAwfV0nLCAncGdfZGVwZW5k ZW5jaWVzJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3Nh Z2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICBkZXRhaWwgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGhpbnQgfCBz cWxfZXJyb3JfY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0rLS0tLS0tLS0tLS0tLS0tLQorIG1hbGZvcm1lZCBwZ19kZXBlbmRlbmNpZXM6ICJbeyJhdHRy aWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9LCt8IER1 cGxpY2F0ZSAiYXR0cmlidXRlcyIgYXJyYXk6IFsyLCAzXSB3aXRoICJkZXBlbmRlbmN5IjogNC4g fCAgICAgIHwgMjJQMDIKKyAgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRl bmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1dIiAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICB8IAorKDEgcm93KQorCistLSBQYXJ0aWFsbHktY292ZXJlZCBhdHRyaWJ1dGUgbGlzdHMuCitT RUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUi OiAxLjAwMH0sCisgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzEsLTFdLCAiZGVwZW5kZW5jeSIg OiA0LCAiZGVncmVlIjogMS4wMDB9LAorICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLDMsLTFd LCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9LAorICAgICAgICAgeyJhdHRyaWJ1 dGVzIiA6IFsyLDMsLTEsLTJdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XSc6 OnBnX2RlcGVuZGVuY2llczsKK0VSUk9SOiAgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7 ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH0s CisgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzEsLTFdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVn cmVlIjogMS4wMDB9LAorICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLDMsLTFdLCAiZGVwZW5k ZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9LAorICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsy LDMsLTEsLTJdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XSIKK0xJTkUgMTog U0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVl IjogLi4uCisgICAgICAgICAgICAgICBeCitERVRBSUw6ICAiYXR0cmlidXRlcyIgYXJyYXk6IFsx LCAtMV0gd2l0aCBkZXBlbmRlbmN5IDQgbXVzdCBiZSBhIHN1YnNldCBvZiBhcnJheTogWzIsIDMs IC0xLCAtMl0gd2l0aCBkZXBlbmRlbmN5IDQuCitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9y X2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUi OiAxLjAwMH0sCisgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzEsLTFdLCAiZGVwZW5kZW5jeSIg OiA0LCAiZGVncmVlIjogMS4wMDB9LAorICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLDMsLTFd LCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9LAorICAgICAgICAgeyJhdHRyaWJ1 dGVzIiA6IFsyLDMsLTEsLTJdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XScs ICdwZ19kZXBlbmRlbmNpZXMnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWVzc2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaGludCB8 IHNxbF9lcnJvcl9jb2RlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0t LS0tLS0tLS0tLS0tCisgbWFsZm9ybWVkIHBnX2RlcGVuZGVuY2llczogIlt7ImF0dHJpYnV0ZXMi IDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH0sK3wgImF0dHJpYnV0 ZXMiIGFycmF5OiBbMSwgLTFdIHdpdGggZGVwZW5kZW5jeSA0IG11c3QgYmUgYSBzdWJzZXQgb2Yg YXJyYXk6IFsyLCAzLCAtMSwgLTJdIHdpdGggZGVwZW5kZW5jeSA0LiB8ICAgICAgfCAyMlAwMgor ICAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMSwtMV0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdy ZWUiOiAxLjAwMH0sICAgICAgICAgICAgICAgICAgICt8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgIHwgCisgICAgICAgICAgeyJhdHRyaWJ1 dGVzIiA6IFsyLDMsLTFdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9LCAgICAg ICAgICAgICAgICAgK3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgfCAKKyAgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsMywtMSwtMl0s ICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1dIiAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICB8IAor KDEgcm93KQorCistLSBWYWxpZCBpbnB1dHMKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwz XSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDAuMjUwfSwKKyAgICAgICAgIHsiYXR0cmli dXRlcyIgOiBbMiwtMV0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAwLjUwMH0sCisgICAg ICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsMywtMV0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUi OiAwLjc1MH0sCisgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsMywtMSwtMl0sICJkZXBlbmRl bmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1dJzo6cGdfZGVwZW5kZW5jaWVzOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw Z19kZXBlbmRlbmNpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IFt7ImF0dHJpYnV0ZXMiOiBbMiwgM10sICJkZXBlbmRlbmN5IjogNCwgImRlZ3JlZSI6IDAuMjUw MDAwfSwgeyJhdHRyaWJ1dGVzIjogWzIsIC0xXSwgImRlcGVuZGVuY3kiOiA0LCAiZGVncmVlIjog MC41MDAwMDB9LCB7ImF0dHJpYnV0ZXMiOiBbMiwgMywgLTFdLCAiZGVwZW5kZW5jeSI6IDQsICJk ZWdyZWUiOiAwLjc1MDAwMH0sIHsiYXR0cmlidXRlcyI6IFsyLCAzLCAtMSwgLTJdLCAiZGVwZW5k ZW5jeSI6IDQsICJkZWdyZWUiOiAxLjAwMDAwMH1dCisoMSByb3cpCisKK1NFTEVDVCAqIEZST00g cGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3ki IDogNCwgImRlZ3JlZSI6IDAuMjUwfSwKKyAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwtMV0s ICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAwLjUwMH0sCisgICAgICAgICB7ImF0dHJpYnV0 ZXMiIDogWzIsMywtMV0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAwLjc1MH0sCisgICAg ICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsMywtMSwtMl0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdy ZWUiOiAxLjAwMH1dJywgJ3BnX2RlcGVuZGVuY2llcycpOworIG1lc3NhZ2UgfCBkZXRhaWwgfCBo aW50IHwgc3FsX2Vycm9yX2NvZGUgCistLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0KKyAgICAgICAgIHwgICAgICAgIHwgICAgICB8IAorKDEgcm93KQorCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVz cy9wYXJhbGxlbF9zY2hlZHVsZQppbmRleCBmM2YwYjVmMmYzMS4uY2M2ZDc5OWJjZWEgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAtMjgsNyArMjgsNyBAQCB0ZXN0OiBzdHJpbmdz IG1kNSBudW1lcm9sb2d5IHBvaW50IGxzZWcgbGluZSBib3ggcGF0aCBwb2x5Z29uIGNpcmNsZSBk YXRlIHRpbWUgdAogIyBnZW9tZXRyeSBkZXBlbmRzIG9uIHBvaW50LCBsc2VnLCBsaW5lLCBib3gs IHBhdGgsIHBvbHlnb24sIGNpcmNsZQogIyBob3JvbG9neSBkZXBlbmRzIG9uIGRhdGUsIHRpbWUs IHRpbWV0eiwgdGltZXN0YW1wLCB0aW1lc3RhbXB0eiwgaW50ZXJ2YWwKICMgLS0tLS0tLS0tLQot dGVzdDogZ2VvbWV0cnkgaG9yb2xvZ3kgdHN0eXBlcyByZWdleCB0eXBlX3Nhbml0eSBvcHJfc2Fu aXR5IG1pc2Nfc2FuaXR5IGNvbW1lbnRzIGV4cHJlc3Npb25zIHVuaWNvZGUgeGlkIG12Y2MgZGF0 YWJhc2Ugc3RhdHNfaW1wb3J0IHBnX25kaXN0aW5jdAordGVzdDogZ2VvbWV0cnkgaG9yb2xvZ3kg dHN0eXBlcyByZWdleCB0eXBlX3Nhbml0eSBvcHJfc2FuaXR5IG1pc2Nfc2FuaXR5IGNvbW1lbnRz IGV4cHJlc3Npb25zIHVuaWNvZGUgeGlkIG12Y2MgZGF0YWJhc2Ugc3RhdHNfaW1wb3J0IHBnX25k aXN0aW5jdCBwZ19kZXBlbmRlbmNpZXMKIAogIyAtLS0tLS0tLS0tCiAjIExvYWQgaHVnZSBhbW91 bnRzIG9mIGRhdGEKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BnX2RlcGVuZGVu Y2llcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wZ19kZXBlbmRlbmNpZXMuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hZDkxZGY5OTExMAotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BnX2RlcGVuZGVuY2llcy5zcWwKQEAgLTAs MCArMSwxMTYgQEAKKy0tIFRlc3RzIGZvciB0eXBlIHBnX2Rpc3RpbmN0CisKKy0tIEludmFsaWQg aW5wdXRzCitTRUxFQ1QgJ251bGwnOjpwZ19kZXBlbmRlbmNpZXM7CitTRUxFQ1QgJ3siYSI6IDF9 Jzo6cGdfZGVwZW5kZW5jaWVzOworU0VMRUNUICdbXSc6OnBnX2RlcGVuZGVuY2llczsKK1NFTEVD VCAne30nOjpwZ19kZXBlbmRlbmNpZXM7CitTRUxFQ1QgJ1tudWxsXSc6OnBnX2RlcGVuZGVuY2ll czsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnbnVsbCcsICdwZ19kZXBlbmRl bmNpZXMnKTsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygneyJhIjogMX0nLCAn cGdfZGVwZW5kZW5jaWVzJyk7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1td JywgJ3BnX2RlcGVuZGVuY2llcycpOworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZv KCd7fScsICdwZ19kZXBlbmRlbmNpZXMnKTsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3Jf aW5mbygnW251bGxdJywgJ3BnX2RlcGVuZGVuY2llcycpOworCistLSBJbnZhbGlkIGtleXMKK1NF TEVDVCAnW3siYXR0cmlidXRlc19pbnZhbGlkIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0fV0n OjpwZ19kZXBlbmRlbmNpZXM7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJpbnZh bGlkIiA6IDMsICJkZXBlbmRlbmN5IiA6IDR9XSc6OnBnX2RlcGVuZGVuY2llczsKK1NFTEVDVCAq IEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlc19pbnZhbGlkIiA6IFsyLDNd LCAiZGVwZW5kZW5jeSIgOiA0fV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7CitTRUxFQ1QgKiBGUk9N IHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJpbnZhbGlkIiA6 IDMsICJkZXBlbmRlbmN5IiA6IDR9XScsICdwZ19kZXBlbmRlbmNpZXMnKTsKKworLS0gTWlzc2lu ZyBrZXlzCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDR9 XSc6OnBnX2RlcGVuZGVuY2llczsKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRl Z3JlZSIgOiAxLjAwMH1dJzo6cGdfZGVwZW5kZW5jaWVzOworU0VMRUNUICdbeyJhdHRyaWJ1dGVz IiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0fV0nOjpwZ19kZXBlbmRlbmNpZXM7CitTRUxFQ1Qg KiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBl bmRlbmN5IiA6IDR9XScsICdwZ19kZXBlbmRlbmNpZXMnKTsKK1NFTEVDVCAqIEZST00gcGdfaW5w dXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlZ3JlZSIgOiAxLjAwMH1d JywgJ3BnX2RlcGVuZGVuY2llcycpOworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZv KCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0fV0nLCAncGdfZGVwZW5k ZW5jaWVzJyk7CisKKy0tIFZhbGlkIGtleXMsIHRvbyBtYW55IGF0dHJpYnV0ZXMKK1NFTEVDVCAn W3siYXR0cmlidXRlcyIgOiBbMSwyLDMsNCw1LDYsNyw4XSwgImRlcGVuZGVuY3kiIDogNCwgImRl Z3JlZSI6IDEuMDAwfV0nOjpwZ19kZXBlbmRlbmNpZXM7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0 X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzEsMiwzLDQsNSw2LDcsOF0sICJkZXBlbmRl bmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1dJywgJ3BnX2RlcGVuZGVuY2llcycpOworCistLSBW YWxpZCBrZXlzLCBpbnZhbGlkIHZhbHVlcworU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IG51bGws ICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1dJzo6cGdfZGVwZW5kZW5jaWVzOwor U0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyLG51bGxdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVn cmVlIjogMS4wMDB9XSc6OnBnX2RlcGVuZGVuY2llczsKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIg OiBbMiwzXSwgImRlcGVuZGVuY3kiIDogbnVsbCwgImRlZ3JlZSI6IDEuMDAwfV0nOjpwZ19kZXBl bmRlbmNpZXM7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsImEiXSwgImRlcGVuZGVuY3ki IDogNCwgImRlZ3JlZSI6IDEuMDAwfV0nOjpwZ19kZXBlbmRlbmNpZXM7CitTRUxFQ1QgJ1t7ImF0 dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6ICJhIiwgImRlZ3JlZSI6IDEuMDAwfV0n OjpwZ19kZXBlbmRlbmNpZXM7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBl bmRlbmN5IiA6IFtdLCAiZGVncmVlIjogMS4wMDB9XSc6OnBnX2RlcGVuZGVuY2llczsKK1NFTEVD VCAnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogW251bGxdLCAiZGVncmVl IjogMS4wMDB9XSc6OnBnX2RlcGVuZGVuY2llczsKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBb MiwzXSwgImRlcGVuZGVuY3kiIDogWzEsbnVsbF0sICJkZWdyZWUiOiAxLjAwMH1dJzo6cGdfZGVw ZW5kZW5jaWVzOworU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IDEsICJkZXBlbmRlbmN5IiA6IDQs ICJkZWdyZWUiOiAxLjAwMH1dJzo6cGdfZGVwZW5kZW5jaWVzOworU0VMRUNUICdbeyJhdHRyaWJ1 dGVzIiA6ICJhIiwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDEuMDAwfV0nOjpwZ19kZXBl bmRlbmNpZXM7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6 IDQsICJkZWdyZWUiOiBOYU59XSc6OnBnX2RlcGVuZGVuY2llczsKK1NFTEVDVCAqIEZST00gcGdf aW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBudWxsLCAiZGVwZW5kZW5jeSIgOiA0 LCAiZGVncmVlIjogMS4wMDB9XScsICdwZ19kZXBlbmRlbmNpZXMnKTsKK1NFTEVDVCAqIEZST00g cGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBbMixudWxsXSwgImRlcGVuZGVu Y3kiIDogNCwgImRlZ3JlZSI6IDEuMDAwfV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7CitTRUxFQ1Qg KiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBl bmRlbmN5IiA6IG51bGwsICJkZWdyZWUiOiAxLjAwMH1dJywgJ3BnX2RlcGVuZGVuY2llcycpOwor U0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLCJh Il0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH1dJywgJ3BnX2RlcGVuZGVuY2ll cycpOworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6 IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiAiYSIsICJkZWdyZWUiOiAxLjAwMH1dJywgJ3BnX2RlcGVu ZGVuY2llcycpOworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1 dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiBbXSwgImRlZ3JlZSI6IDEuMDAwfV0nLCAncGdf ZGVwZW5kZW5jaWVzJyk7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0 dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IFtudWxsXSwgImRlZ3JlZSI6IDEuMDAw fV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2lu Zm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IFsxLG51bGxdLCAiZGVn cmVlIjogMS4wMDB9XScsICdwZ19kZXBlbmRlbmNpZXMnKTsKK1NFTEVDVCAqIEZST00gcGdfaW5w dXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiAxLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVn cmVlIjogMS4wMDB9XScsICdwZ19kZXBlbmRlbmNpZXMnKTsKK1NFTEVDVCAqIEZST00gcGdfaW5w dXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiAiYSIsICJkZXBlbmRlbmN5IiA6IDQsICJk ZWdyZWUiOiAxLjAwMH1dJywgJ3BnX2RlcGVuZGVuY2llcycpOworU0VMRUNUICogRlJPTSBwZ19p bnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0 LCAiZGVncmVlIjogTmFOfV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7CisKK1NFTEVDVCAnW3siYXR0 cmlidXRlcyI6IFtdLCAiZGVwZW5kZW5jeSI6IDIsICJkZWdyZWUiOiAxfV0nIDo6cGdfZGVwZW5k ZW5jaWVzOworU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IHsiYSI6IDF9LCAiZGVwZW5kZW5jeSIg OiA0LCAiZGVncmVlIjogIjEuMiJ9XSc6OnBnX2RlcGVuZGVuY2llczsKKworU0VMRUNUICdbeyJk ZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAiMS4yIn1dJzo6cGdfZGVwZW5kZW5jaWVzOworU0VM RUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsxLDIsMyw0LDUsNiw3XSwgImRlcGVuZGVuY3kiIDogMCwg ImRlZ3JlZSI6ICIxLjIifV0nOjpwZ19kZXBlbmRlbmNpZXM7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0 ZXMiIDogWzEsMiwzLDQsNSw2LDddLCAiZGVwZW5kZW5jeSIgOiAtOSwgImRlZ3JlZSI6ICIxLjIi fV0nOjpwZ19kZXBlbmRlbmNpZXM7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiOiBbMSwyXSwgImRl cGVuZGVuY3kiOiAyLCAiZGVncmVlIjogMX1dJyA6OnBnX2RlcGVuZGVuY2llczsKK1NFTEVDVCAn W3siYXR0cmlidXRlcyIgOiBbMSwge31dLCAiZGVwZW5kZW5jeSIgOiAxLCAiZGVncmVlIjogIjEu MiJ9XSc6OnBnX2RlcGVuZGVuY2llczsKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMSwyXSwg ImRlcGVuZGVuY3kiIDoge30sICJkZWdyZWUiOiAxLjB9XSc6OnBnX2RlcGVuZGVuY2llczsKK1NF TEVDVCAnW3siYXR0cmlidXRlcyIgOiBbMSwyXSwgImRlcGVuZGVuY3kiIDogMywgImRlZ3JlZSI6 IHt9fV0nOjpwZ19kZXBlbmRlbmNpZXM7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzEsMl0s ICJkZXBlbmRlbmN5IiA6IDEsICJkZWdyZWUiOiAiYSJ9XSc6OnBnX2RlcGVuZGVuY2llczsKKwor U0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFsyXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6 ICJOYU4ifV0nOjpwZ19kZXBlbmRlbmNpZXM7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzJd LCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogIi1pbmYifV0nOjpwZ19kZXBlbmRlbmNpZXM7 CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzJdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVl IjogImluZiJ9XSc6OnBnX2RlcGVuZGVuY2llczsKK1NFTEVDVCAnW3siYXR0cmlidXRlcyIgOiBb Ml0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAiLWluZiJ9XSc6OnBnX2RlcGVuZGVuY2ll czo6dGV4dDo6cGdfZGVwZW5kZW5jaWVzOworCistLSBEdXBsaWNhdGVkIGtleXMKK1NFTEVDVCAn W3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImF0dHJpYnV0ZXMiOiBbMSwyXSwgImRlcGVuZGVuY3ki IDogNCwgImRlZ3JlZSI6IDEuMDAwfV0nOjpwZ19kZXBlbmRlbmNpZXM7CitTRUxFQ1QgJ1t7ImF0 dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDQsICJkZXBlbmRlbmN5IjogNCwgImRl Z3JlZSI6IDEuMDAwfV0nOjpwZ19kZXBlbmRlbmNpZXM7CitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMi IDogWzIsM10sICJkZXBlbmRlbmN5IjogNCwgImRlZ3JlZSI6IDEuMDAwLCAiZGVncmVlIjogMS4w MDB9XSc6OnBnX2RlcGVuZGVuY2llczsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5m bygnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImF0dHJpYnV0ZXMiOiBbMSwyXSwgImRlcGVuZGVu Y3kiIDogNCwgImRlZ3JlZSI6IDEuMDAwfV0nLCAncGdfZGVwZW5kZW5jaWVzJyk7CitTRUxFQ1Qg KiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBl bmRlbmN5IiA6IDQsICJkZXBlbmRlbmN5IjogNCwgImRlZ3JlZSI6IDEuMDAwfV0nLCAncGdfZGVw ZW5kZW5jaWVzJyk7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJp YnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IjogNCwgImRlZ3JlZSI6IDEuMDAwLCAiZGVncmVl IjogMS4wMDB9XScsICdwZ19kZXBlbmRlbmNpZXMnKTsKKworLS0gSW52YWxpZCBhdHRudW1zCitT RUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzAsMl0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUi OiAwLjUwMH1dJzo6cGdfZGVwZW5kZW5jaWVzOworU0VMRUNUICdbeyJhdHRyaWJ1dGVzIiA6IFst NywtOV0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAwLjUwMH1dJzo6cGdfZGVwZW5kZW5j aWVzOworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6 IFswLDJdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMC41MDB9XScsICdwZ19kZXBlbmRl bmNpZXMnKTsKK1NFTEVDVCAqIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRl cyIgOiBbLTcsLTldLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMC41MDB9XScsICdwZ19k ZXBlbmRlbmNpZXMnKTsKKworLS0gRHVwbGljYXRlZCBhdHRyaWJ1dGVzCitTRUxFQ1QgJ1t7ImF0 dHJpYnV0ZXMiIDogWzIsMl0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAwLjUwMH1dJzo6 cGdfZGVwZW5kZW5jaWVzOworU0VMRUNUICogRlJPTSBwZ19pbnB1dF9lcnJvcl9pbmZvKCdbeyJh dHRyaWJ1dGVzIiA6IFsyLDJdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMC41MDB9XScs ICdwZ19kZXBlbmRlbmNpZXMnKTsKKworLS0gRHVwbGljYXRlZCBhdHRyaWJ1dGUgbGlzdHMuCitT RUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUi OiAxLjAwMH0sCisgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRlbmN5IiA6 IDQsICJkZWdyZWUiOiAxLjAwMH1dJzo6cGdfZGVwZW5kZW5jaWVzOworU0VMRUNUICogRlJPTSBw Z19pbnB1dF9lcnJvcl9pbmZvKCdbeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIg OiA0LCAiZGVncmVlIjogMS4wMDB9LAorICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLDNdLCAi ZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XScsICdwZ19kZXBlbmRlbmNpZXMnKTsK KworLS0gUGFydGlhbGx5LWNvdmVyZWQgYXR0cmlidXRlIGxpc3RzLgorU0VMRUNUICdbeyJhdHRy aWJ1dGVzIiA6IFsyLDNdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9LAorICAg ICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsxLC0xXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6 IDEuMDAwfSwKKyAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzLC0xXSwgImRlcGVuZGVuY3ki IDogNCwgImRlZ3JlZSI6IDEuMDAwfSwKKyAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwzLC0x LC0yXSwgImRlcGVuZGVuY3kiIDogNCwgImRlZ3JlZSI6IDEuMDAwfV0nOjpwZ19kZXBlbmRlbmNp ZXM7CitTRUxFQ1QgKiBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJ1t7ImF0dHJpYnV0ZXMiIDog WzIsM10sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAxLjAwMH0sCisgICAgICAgICB7ImF0 dHJpYnV0ZXMiIDogWzEsLTFdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9LAor ICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLDMsLTFdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVn cmVlIjogMS4wMDB9LAorICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLDMsLTEsLTJdLCAiZGVw ZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMS4wMDB9XScsICdwZ19kZXBlbmRlbmNpZXMnKTsKKwor LS0gVmFsaWQgaW5wdXRzCitTRUxFQ1QgJ1t7ImF0dHJpYnV0ZXMiIDogWzIsM10sICJkZXBlbmRl bmN5IiA6IDQsICJkZWdyZWUiOiAwLjI1MH0sCisgICAgICAgICB7ImF0dHJpYnV0ZXMiIDogWzIs LTFdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMC41MDB9LAorICAgICAgICAgeyJhdHRy aWJ1dGVzIiA6IFsyLDMsLTFdLCAiZGVwZW5kZW5jeSIgOiA0LCAiZGVncmVlIjogMC43NTB9LAor ICAgICAgICAgeyJhdHRyaWJ1dGVzIiA6IFsyLDMsLTEsLTJdLCAiZGVwZW5kZW5jeSIgOiA0LCAi ZGVncmVlIjogMS4wMDB9XSc6OnBnX2RlcGVuZGVuY2llczsKK1NFTEVDVCAqIEZST00gcGdfaW5w dXRfZXJyb3JfaW5mbygnW3siYXR0cmlidXRlcyIgOiBbMiwzXSwgImRlcGVuZGVuY3kiIDogNCwg ImRlZ3JlZSI6IDAuMjUwfSwKKyAgICAgICAgIHsiYXR0cmlidXRlcyIgOiBbMiwtMV0sICJkZXBl bmRlbmN5IiA6IDQsICJkZWdyZWUiOiAwLjUwMH0sCisgICAgICAgICB7ImF0dHJpYnV0ZXMiIDog WzIsMywtMV0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAwLjc1MH0sCisgICAgICAgICB7 ImF0dHJpYnV0ZXMiIDogWzIsMywtMSwtMl0sICJkZXBlbmRlbmN5IiA6IDQsICJkZWdyZWUiOiAx LjAwMH1dJywgJ3BnX2RlcGVuZGVuY2llcycpOwotLSAKMi41MS4xCgo= --00000000000017315e06442ab082 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0003-Expose-attribute-statistics-functions-for-use-in.patch" Content-Disposition: attachment; filename="v17-0003-Expose-attribute-statistics-functions-for-use-in.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mia0yi2s2 RnJvbSA5NzM1Zjk1ZDViY2FlYjg5ZmNkZTZjMmFlMWIxNDAyZjg5MDRkNzgxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDb3JleSBIdWlua2VyIDxjb3JleS5odWlua2VyQGdtYWlsLmNv bT4KRGF0ZTogVHVlLCA0IE5vdiAyMDI1IDIzOjUwOjAxIC0wNTAwClN1YmplY3Q6IFtQQVRDSCB2 MTcgMy81XSBFeHBvc2UgYXR0cmlidXRlIHN0YXRpc3RpY3MgZnVuY3Rpb25zIGZvciB1c2UgaW4K 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= --00000000000017315e06442ab082 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0004-Add-extended-statistics-support-functions.patch" Content-Disposition: attachment; filename="v17-0004-Add-extended-statistics-support-functions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mia0ynsh3 RnJvbSAwYTc3NzY3NDc0YTgwYmUzMmE5MWZmNmFkNzc5YjUyYjM0MzQxNjQxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNaWNoYWVsIFBhcXVpZXIgPG1pY2hhZWxAcGFxdWllci54eXo+ CkRhdGU6IFR1ZSwgMTEgTm92IDIwMjUgMTY6NTg6MjYgKzA5MDAKU3ViamVjdDogW1BBVENIIHYx NyA0LzVdIEFkZCBleHRlbmRlZCBzdGF0aXN0aWNzIHN1cHBvcnQgZnVuY3Rpb25zLgoKQWRkIHBn 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 --00000000000017315e06442ab082 Content-Type: text/x-patch; charset="US-ASCII"; name="v17-0005-Include-Extended-Statistics-in-pg_dump.patch" Content-Disposition: attachment; filename="v17-0005-Include-Extended-Statistics-in-pg_dump.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mia0yqgl4 RnJvbSBlNWExYTMyNDRmNGE2ODM2Yzc4MmFkYzk0ODg2YmRjNmIyZWU1ZTA1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDb3JleSBIdWlua2VyIDxjb3JleS5odWlua2VyQGdtYWlsLmNv bT4KRGF0ZTogV2VkLCA1IE5vdiAyMDI1IDAxOjEzOjA0IC0wNTAwClN1YmplY3Q6IFtQQVRDSCB2 MTcgNS81XSBJbmNsdWRlIEV4dGVuZGVkIFN0YXRpc3RpY3MgaW4gcGdfZHVtcC4KCkluY29ycG9y 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 --00000000000017315e06442ab082--