Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p3EtP-0005Oa-H4 for pgsql-hackers@arkaria.postgresql.org; Thu, 08 Dec 2022 11:16:44 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1p3EtO-0007z9-C3 for pgsql-hackers@arkaria.postgresql.org; Thu, 08 Dec 2022 11:16:42 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p3EtN-0007yx-0q for pgsql-hackers@lists.postgresql.org; Thu, 08 Dec 2022 11:16:42 +0000 Received: from new4-smtp.messagingengine.com ([66.111.4.230]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p3EtH-0000F6-Qf for pgsql-hackers@postgresql.org; Thu, 08 Dec 2022 11:16:40 +0000 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailnew.nyi.internal (Postfix) with ESMTP id 272DA580223; Thu, 8 Dec 2022 06:16:33 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Thu, 08 Dec 2022 06:16:33 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; t=1670498193; x=1670505393; bh=hcOsVtDYEj4GNwReF9MIjVPo0OPn 6hmw7VdCJ3RVCtw=; b=IGiPNvyLb5EcqZg4duxg9+GTvsKZFG3uSFv8690dEB9H xEl+YRTLXX08nIl1SJTHXUguxQUUWw98vULCkPPpVyRwimsUcDYiYj/ChAQgngoj cPn2ssSDb6slmsP76JBVTKmnDhDfqpf8VZM88r4bEcTtM+rhebTjeFzyg2rhMoXi jZ6JriB8Y2WG3doc1OKR/S7c5u/TiQ1xlTkw6Lo8YuRtqD8OBrKRFyXyUJivwALB JuV6CojvVUaK0fAOJWCxzP95sb/eq25A88Oapi+US3vJWxHGkNSZwlL+42v3kzBe uLrTzfTvh9logJXOj6qubL7ZlYkZgk5CjZZGEH0zSA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrvddtgddvhecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpegtkfffgggfuffvvehfhfgjsehmtderredtfeejnecuhfhrohhmpefrvghtvghr ucfgihhsvghnthhrrghuthcuoehpvghtvghrrdgvihhsvghnthhrrghuthesvghnthgvrh hprhhishgvuggsrdgtohhmqeenucggtffrrghtthgvrhhnpeeutdekheeuhedtvdfgffeh leetfefhieefudeitdffiedtledujefhjedufeffffenucevlhhushhtvghrufhiiigvpe dtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpvghtvghrrdgvihhsvghnthhrrghuthes vghnthgvrhhprhhishgvuggsrdgtohhm X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 8 Dec 2022 06:16:31 -0500 (EST) Content-Type: multipart/mixed; boundary="------------KFSQ520i0k0kgnjZU41afrqh" Message-ID: <404b6297-a22f-afea-cdcb-848543c39193@enterprisedb.com> Date: Thu, 8 Dec 2022 12:16:29 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 Subject: Re: Non-decimal integer literals Content-Language: en-US To: David Rowley Cc: Dean Rasheed , John Naylor , pgsql-hackers References: <2317133.1643155358@sss.pgh.pa.us> <97aa22d7-b80f-efa1-f368-3dbf73a15980@enterprisedb.com> <071c40f2-15cf-5db3-8799-dbac041bb881@enterprisedb.com> <791aee01-f488-0706-2694-08c5b57a3bdd@enterprisedb.com> <164fea20-dae9-d0fb-9917-772cd0068d29@enterprisedb.com> From: Peter Eisentraut In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------KFSQ520i0k0kgnjZU41afrqh Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 29.11.22 21:22, David Rowley wrote: > There seems to be a small bug in the pg_strtointXX functions in the > code that checks that there's at least 1 digit. This causes 0x to be > a valid representation of zero. That does not seem to be allowed by > the parser, so I think we should likely reject it in COPY too. > -- probably shouldn't work > postgres=# copy a from stdin; > Enter data to be copied followed by a newline. > End with a backslash and a period on a line by itself, or an EOF signal. >>> 0x >>> \. > COPY 1 Fixed in new patch. I moved the "require at least one digit" checks after the loops over the digits, to make it easier to write one check for all bases. This patch is also incorporates your changes to the digit analysis algorithm. I didn't check it carefully, but all the tests still pass. ;-) --------------KFSQ520i0k0kgnjZU41afrqh Content-Type: text/plain; charset=UTF-8; name="v12-0001-Non-decimal-integer-literals.patch" Content-Disposition: attachment; filename="v12-0001-Non-decimal-integer-literals.patch" Content-Transfer-Encoding: base64 RnJvbSA3NjUxMGYyMDc3ZDMwNzU2NTNhOWJiZTg5OWI5ZDQ3NTI5NTNkMzBlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCA4IERlYyAyMDIyIDEyOjEwOjQxICswMTAwClN1YmplY3Q6 IFtQQVRDSCB2MTJdIE5vbi1kZWNpbWFsIGludGVnZXIgbGl0ZXJhbHMKCkFkZCBzdXBwb3J0 IGZvciBoZXhhZGVjaW1hbCwgb2N0YWwsIGFuZCBiaW5hcnkgaW50ZWdlciBsaXRlcmFsczoK CiAgICAweDQyRgogICAgMG8yNzMKICAgIDBiMTAwMTAxCgpwZXIgU1FMOjIwMnggZHJhZnQu CgpUaGlzIGFkZHMgc3VwcG9ydCBpbiB0aGUgbGV4ZXIgYXMgd2VsbCBhcyBpbiB0aGUgaW50 ZWdlciB0eXBlIGlucHV0CmZ1bmN0aW9ucy4KCkRpc2N1c3Npb246IGh0dHBzOi8vd3d3LnBv c3RncmVzcWwub3JnL21lc3NhZ2UtaWQvZmxhdC9iMjM5NTY0Yy1jYWQwLWIyM2UtYzU3ZS0x NjZkODgzY2I5N2RAZW50ZXJwcmlzZWRiLmNvbQotLS0KIGRvYy9zcmMvc2dtbC9zeW50YXgu c2dtbCAgICAgICAgICAgICAgICAgICB8ICAzNCArKysrCiBzcmMvYmFja2VuZC9jYXRhbG9n L2luZm9ybWF0aW9uX3NjaGVtYS5zcWwgfCAgIDYgKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cv c3FsX2ZlYXR1cmVzLnR4dCAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFy c2Vfbm9kZS5jICAgICAgICAgICAgfCAgMzcgKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL3Nj YW4ubCAgICAgICAgICAgICAgICAgIHwgMTAxICsrKysrKysrLS0tCiBzcmMvYmFja2VuZC91 dGlscy9hZHQvbnVtdXRpbHMuYyAgICAgICAgICAgfCAxODUgKysrKysrKysrKysrKysrKyst LS0KIHNyYy9mZV91dGlscy9wc3Fsc2Nhbi5sICAgICAgICAgICAgICAgICAgICB8ICA3OCAr KysrKysrLS0KIHNyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9wZ2MubCAgICAgICAgICB8 IDEwNiArKysrKystLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbnQyLm91dCAg ICAgICAgIHwgIDkyICsrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvaW50 NC5vdXQgICAgICAgICB8ICA5MiArKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2ludDgub3V0ICAgICAgICAgfCAgOTIgKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dCAgIHwgMTkzICsrKysrKysrKysrKysrKysrKysr LQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvaW50Mi5zcWwgICAgICAgICAgICAgIHwgIDI2ICsr Kwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvaW50NC5zcWwgICAgICAgICAgICAgIHwgIDI2ICsr Kwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvaW50OC5zcWwgICAgICAgICAgICAgIHwgIDI2ICsr Kwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvbnVtZXJvbG9neS5zcWwgICAgICAgIHwgIDUxICsr KysrLQogMTYgZmlsZXMgY2hhbmdlZCwgMTAyOCBpbnNlcnRpb25zKCspLCAxMTggZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sIGIvZG9jL3Ny Yy9zZ21sL3N5bnRheC5zZ21sCmluZGV4IDkzYWQ3MTczN2YuLjk1NjE4MmU3YzYgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9zeW50YXguc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvc3lu dGF4LnNnbWwKQEAgLTY5NCw2ICs2OTQsNDAgQEAgPHRpdGxlPk51bWVyaWMgQ29uc3RhbnRz PC90aXRsZT4KIDwvbGl0ZXJhbGxheW91dD4KICAgICA8L3BhcmE+CiAKKyAgICA8cGFyYT4K KyAgICAgQWRkaXRpb25hbGx5LCBub24tZGVjaW1hbCBpbnRlZ2VyIGNvbnN0YW50cyBjYW4g YmUgdXNlZCBpbiB0aGVzZSBmb3JtczoKKzxzeW5vcHNpcz4KKzB4PHJlcGxhY2VhYmxlPmhl eGRpZ2l0czwvcmVwbGFjZWFibGU+CiswbzxyZXBsYWNlYWJsZT5vY3RkaWdpdHM8L3JlcGxh Y2VhYmxlPgorMGI8cmVwbGFjZWFibGU+YmluZGlnaXRzPC9yZXBsYWNlYWJsZT4KKzwvc3lu b3BzaXM+CisgICAgIDxyZXBsYWNlYWJsZT5oZXhkaWdpdHM8L3JlcGxhY2VhYmxlPiBpcyBv bmUgb3IgbW9yZSBoZXhhZGVjaW1hbCBkaWdpdHMKKyAgICAgKDAtOSwgQS1GKSwgPHJlcGxh Y2VhYmxlPm9jdGRpZ2l0czwvcmVwbGFjZWFibGU+IGlzIG9uZSBvciBtb3JlIG9jdGFsCisg ICAgIGRpZ2l0cyAoMC03KSwgPHJlcGxhY2VhYmxlPmJpbmRpZ2l0czwvcmVwbGFjZWFibGU+ IGlzIG9uZSBvciBtb3JlIGJpbmFyeQorICAgICBkaWdpdHMgKDAgb3IgMSkuICBIZXhhZGVj aW1hbCBkaWdpdHMgYW5kIHRoZSByYWRpeCBwcmVmaXhlcyBjYW4gYmUgaW4KKyAgICAgdXBw ZXIgb3IgbG93ZXIgY2FzZS4gIE5vdGUgdGhhdCBvbmx5IGludGVnZXJzIGNhbiBoYXZlIG5v bi1kZWNpbWFsIGZvcm1zLAorICAgICBub3QgbnVtYmVycyB3aXRoIGZyYWN0aW9uYWwgcGFy dHMuCisgICAgPC9wYXJhPgorCisgICAgPHBhcmE+CisgICAgIFRoZXNlIGFyZSBzb21lIGV4 YW1wbGVzIG9mIHRoaXM6Cis8bGl0ZXJhbGxheW91dD4wYjEwMDEwMQorMEIxMDAxMTAwMQor MG8yNzMKKzBPNzU1CisweDQyZgorMFhGRkZGCis8L2xpdGVyYWxsYXlvdXQ+CisgICAgPC9w YXJhPgorCisgICAgPG5vdGU+CisgICAgIDxwYXJhPgorICAgICAgTm9uZGVjaW1hbCBpbnRl Z2VyIGNvbnN0YW50cyBhcmUgY3VycmVudGx5IG9ubHkgc3VwcG9ydGVkIGluIHRoZSByYW5n ZQorICAgICAgb2YgdGhlIDx0eXBlPmJpZ2ludDwvdHlwZT4gdHlwZSAoc2VlIDx4cmVmCisg ICAgICBsaW5rZW5kPSJkYXRhdHlwZS1udW1lcmljLXRhYmxlIi8+KS4KKyAgICAgPC9wYXJh PgorICAgIDwvbm90ZT4KKwogICAgIDxwYXJhPgogICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5 PmludGVnZXI8L3ByaW1hcnk+PC9pbmRleHRlcm0+CiAgICAgIDxpbmRleHRlcm0+PHByaW1h cnk+YmlnaW50PC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsCmluZGV4IDE4NzI1YTAyZDEuLjk1YzI3YTYyNWUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5mb3JtYXRpb25fc2NoZW1hLnNx bAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZm9ybWF0aW9uX3NjaGVtYS5zcWwKQEAg LTExOSw3ICsxMTksNyBAQCBDUkVBVEUgRlVOQ1RJT04gX3BnX251bWVyaWNfcHJlY2lzaW9u KHR5cGlkIG9pZCwgdHlwbW9kIGludDQpIFJFVFVSTlMgaW50ZWdlcgogICAgICAgICAgV0hF TiAxNzAwIC8qbnVtZXJpYyovIFRIRU4KICAgICAgICAgICAgICAgQ0FTRSBXSEVOICQyID0g LTEKICAgICAgICAgICAgICAgICAgICBUSEVOIG51bGwKLSAgICAgICAgICAgICAgICAgICBF TFNFICgoJDIgLSA0KSA+PiAxNikgJiA2NTUzNQorICAgICAgICAgICAgICAgICAgIEVMU0Ug KCgkMiAtIDQpID4+IDE2KSAmIDB4RkZGRgogICAgICAgICAgICAgICAgICAgIEVORAogICAg ICAgICAgV0hFTiA3MDAgLypmbG9hdDQqLyBUSEVOIDI0IC8qRkxUX01BTlRfRElHKi8KICAg ICAgICAgIFdIRU4gNzAxIC8qZmxvYXQ4Ki8gVEhFTiA1MyAvKkRCTF9NQU5UX0RJRyovCkBA IC0xNDcsNyArMTQ3LDcgQEAgQ1JFQVRFIEZVTkNUSU9OIF9wZ19udW1lcmljX3NjYWxlKHR5 cGlkIG9pZCwgdHlwbW9kIGludDQpIFJFVFVSTlMgaW50ZWdlcgogICAgICAgIFdIRU4gJDEg SU4gKDE3MDApIFRIRU4KICAgICAgICAgICAgIENBU0UgV0hFTiAkMiA9IC0xCiAgICAgICAg ICAgICAgICAgIFRIRU4gbnVsbAotICAgICAgICAgICAgICAgICBFTFNFICgkMiAtIDQpICYg NjU1MzUKKyAgICAgICAgICAgICAgICAgRUxTRSAoJDIgLSA0KSAmIDB4RkZGRgogICAgICAg ICAgICAgICAgICBFTkQKICAgICAgICBFTFNFIG51bGwKICAgRU5EOwpAQCAtMTYzLDcgKzE2 Myw3IEBAIENSRUFURSBGVU5DVElPTiBfcGdfZGF0ZXRpbWVfcHJlY2lzaW9uKHR5cGlkIG9p ZCwgdHlwbW9kIGludDQpIFJFVFVSTlMgaW50ZWdlcgogICAgICAgIFdIRU4gJDEgSU4gKDEw ODMsIDExMTQsIDExODQsIDEyNjYpIC8qIHRpbWUsIHRpbWVzdGFtcCwgc2FtZSArIHR6ICov CiAgICAgICAgICAgIFRIRU4gQ0FTRSBXSEVOICQyIDwgMCBUSEVOIDYgRUxTRSAkMiBFTkQK ICAgICAgICBXSEVOICQxIElOICgxMTg2KSAvKiBpbnRlcnZhbCAqLwotICAgICAgICAgICBU SEVOIENBU0UgV0hFTiAkMiA8IDAgT1IgJDIgJiA2NTUzNSA9IDY1NTM1IFRIRU4gNiBFTFNF ICQyICYgNjU1MzUgRU5ECisgICAgICAgICAgIFRIRU4gQ0FTRSBXSEVOICQyIDwgMCBPUiAk MiAmIDB4RkZGRiA9IDB4RkZGRiBUSEVOIDYgRUxTRSAkMiAmIDB4RkZGRiBFTkQKICAgICAg ICBFTFNFIG51bGwKICAgRU5EOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9n L3NxbF9mZWF0dXJlcy50eHQgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0dXJlcy50 eHQKaW5kZXggODcwNGE0MmI2MC4uYWJhZDIxNmI3ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0CisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv c3FsX2ZlYXR1cmVzLnR4dApAQCAtNTI3LDYgKzUyNyw3IEBAIFQ2NTIJU1FMLWR5bmFtaWMg c3RhdGVtZW50cyBpbiBTUUwgcm91dGluZXMJCQlOTwogVDY1MwlTUUwtc2NoZW1hIHN0YXRl bWVudHMgaW4gZXh0ZXJuYWwgcm91dGluZXMJCQlZRVMJCiBUNjU0CVNRTC1keW5hbWljIHN0 YXRlbWVudHMgaW4gZXh0ZXJuYWwgcm91dGluZXMJCQlOTwkKIFQ2NTUJQ3ljbGljYWxseSBk ZXBlbmRlbnQgcm91dGluZXMJCQlZRVMJCitUNjYxCU5vbi1kZWNpbWFsIGludGVnZXIgbGl0 ZXJhbHMJCQlZRVMJU1FMOjIwMnggZHJhZnQKIFQ4MTEJQmFzaWMgU1FML0pTT04gY29uc3Ry dWN0b3IgZnVuY3Rpb25zCQkJTk8JCiBUODEyCVNRTC9KU09OOiBKU09OX09CSkVDVEFHRwkJ CU5PCQogVDgxMwlTUUwvSlNPTjogSlNPTl9BUlJBWUFHRyB3aXRoIE9SREVSIEJZCQkJTk8J CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX25vZGUuYwppbmRleCA0MDE0ZGI0YjgwLi5kMzNlM2MxNzlk IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ub2RlLmMKQEAgLTM4NSwxMSArMzg1LDQ2IEBAIG1h a2VfY29uc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0NvbnN0ICphY29uc3QpCiAJCQl7CiAJ CQkJLyogY291bGQgYmUgYW4gb3ZlcnNpemUgaW50ZWdlciBhcyB3ZWxsIGFzIGEgZmxvYXQg Li4uICovCiAKKwkJCQlpbnQJCQliYXNlID0gMTA7CisJCQkJY2hhcgkgICAqc3RhcnRwdHI7 CisJCQkJaW50CQkJc2lnbjsKKwkJCQljaGFyCSAgICp0ZXN0dmFsdWU7CiAJCQkJaW50NjQJ CXZhbDY0OwogCQkJCWNoYXIJICAgKmVuZHB0cjsKIAorCQkJCXN0YXJ0cHRyID0gYWNvbnN0 LT52YWwuZnZhbC5mdmFsOworCQkJCWlmIChzdGFydHB0clswXSA9PSAnLScpCisJCQkJewor CQkJCQlzaWduID0gLTE7CisJCQkJCXN0YXJ0cHRyKys7CisJCQkJfQorCQkJCWVsc2UKKwkJ CQkJc2lnbiA9ICsxOworCQkJCWlmIChzdGFydHB0clswXSA9PSAnMCcpCisJCQkJeworCQkJ CQlpZiAoc3RhcnRwdHJbMV0gPT0gJ2InIHx8IHN0YXJ0cHRyWzFdID09ICdCJykKKwkJCQkJ eworCQkJCQkJYmFzZSA9IDI7CisJCQkJCQlzdGFydHB0ciArPSAyOworCQkJCQl9CisJCQkJ CWVsc2UgaWYgKHN0YXJ0cHRyWzFdID09ICdvJyB8fCBzdGFydHB0clsxXSA9PSAnTycpCisJ CQkJCXsKKwkJCQkJCWJhc2UgPSA4OworCQkJCQkJc3RhcnRwdHIgKz0gMjsKKwkJCQkJfQor CQkJCQlpZiAoc3RhcnRwdHJbMV0gPT0gJ3gnIHx8IHN0YXJ0cHRyWzFdID09ICdYJykKKwkJ CQkJeworCQkJCQkJYmFzZSA9IDE2OworCQkJCQkJc3RhcnRwdHIgKz0gMjsKKwkJCQkJfQor CQkJCX0KKworCQkJCWlmIChzaWduID09ICsxKQorCQkJCQl0ZXN0dmFsdWUgPSBzdGFydHB0 cjsKKwkJCQllbHNlCisJCQkJCXRlc3R2YWx1ZSA9IHBzcHJpbnRmKCItJXMiLCBzdGFydHB0 cik7CiAJCQkJZXJybm8gPSAwOwotCQkJCXZhbDY0ID0gc3RydG9pNjQoYWNvbnN0LT52YWwu ZnZhbC5mdmFsLCAmZW5kcHRyLCAxMCk7CisJCQkJdmFsNjQgPSBzdHJ0b2k2NCh0ZXN0dmFs dWUsICZlbmRwdHIsIGJhc2UpOwogCQkJCWlmIChlcnJubyA9PSAwICYmICplbmRwdHIgPT0g J1wwJykKIAkJCQl7CiAJCQkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIv c2Nhbi5sIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3NjYW4ubAppbmRleCBkYjhiMGZlOGViLi45 YWQ5ZTBjOGJhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvc2Nhbi5sCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9zY2FuLmwKQEAgLTEyNCw3ICsxMjQsNyBAQCBzdGF0aWMg dm9pZCBhZGRsaXQoY2hhciAqeXRleHQsIGludCB5bGVuZywgY29yZV95eXNjYW5fdCB5eXNj YW5uZXIpOwogc3RhdGljIHZvaWQgYWRkbGl0Y2hhcih1bnNpZ25lZCBjaGFyIHljaGFyLCBj b3JlX3l5c2Nhbl90IHl5c2Nhbm5lcik7CiBzdGF0aWMgY2hhciAqbGl0YnVmZHVwKGNvcmVf eXlzY2FuX3QgeXlzY2FubmVyKTsKIHN0YXRpYyB1bnNpZ25lZCBjaGFyIHVuZXNjYXBlX3Np bmdsZV9jaGFyKHVuc2lnbmVkIGNoYXIgYywgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIpOwot c3RhdGljIGludAlwcm9jZXNzX2ludGVnZXJfbGl0ZXJhbChjb25zdCBjaGFyICp0b2tlbiwg WVlTVFlQRSAqbHZhbCk7CitzdGF0aWMgaW50CXByb2Nlc3NfaW50ZWdlcl9saXRlcmFsKGNv bnN0IGNoYXIgKnRva2VuLCBZWVNUWVBFICpsdmFsLCBpbnQgYmFzZSk7CiBzdGF0aWMgdm9p ZCBhZGR1bmljb2RlKHBnX3djaGFyIGMsIHl5c2Nhbl90IHl5c2Nhbm5lcik7CiAKICNkZWZp bmUgeXllcnJvcihtc2cpICBzY2FubmVyX3l5ZXJyb3IobXNnLCB5eXNjYW5uZXIpCkBAIC0z ODUsMjUgKzM4NSw0MCBAQCBvcGVyYXRvcgkJe29wX2NoYXJzfSsKICAqIFVuYXJ5IG1pbnVz IGlzIG5vdCBwYXJ0IG9mIGEgbnVtYmVyIGhlcmUuICBJbnN0ZWFkIHdlIHBhc3MgaXQgc2Vw YXJhdGVseSB0bwogICogdGhlIHBhcnNlciwgYW5kIHRoZXJlIGl0IGdldHMgY29lcmNlZCB2 aWEgZG9OZWdhdGUoKS4KICAqCi0gKiB7ZGVjaW1hbGZhaWx9IGlzIHVzZWQgYmVjYXVzZSB3 ZSB3b3VsZCBsaWtlICIxLi4xMCIgdG8gbGV4IGFzIDEsIGRvdF9kb3QsIDEwLgorICoge251 bWVyaWNmYWlsfSBpcyB1c2VkIGJlY2F1c2Ugd2Ugd291bGQgbGlrZSAiMS4uMTAiIHRvIGxl eCBhcyAxLCBkb3RfZG90LCAxMC4KICAqCiAgKiB7cmVhbGZhaWx9IGlzIGFkZGVkIHRvIHBy ZXZlbnQgdGhlIG5lZWQgZm9yIHNjYW5uZXIKICAqIGJhY2t1cCB3aGVuIHRoZSB7cmVhbH0g cnVsZSBmYWlscyB0byBtYXRjaCBjb21wbGV0ZWx5LgogICovCi1kaWdpdAkJCVswLTldCi0K LWludGVnZXIJCQl7ZGlnaXR9KwotZGVjaW1hbAkJCSgoe2RpZ2l0fSpcLntkaWdpdH0rKXwo e2RpZ2l0fStcLntkaWdpdH0qKSkKLWRlY2ltYWxmYWlsCQl7ZGlnaXR9K1wuXC4KLXJlYWwJ CQkoe2ludGVnZXJ9fHtkZWNpbWFsfSlbRWVdWy0rXT97ZGlnaXR9KwotcmVhbGZhaWwJCSh7 aW50ZWdlcn18e2RlY2ltYWx9KVtFZV1bLStdCi0KLWludGVnZXJfanVuawl7aW50ZWdlcn17 aWRlbnRfc3RhcnR9Ci1kZWNpbWFsX2p1bmsJe2RlY2ltYWx9e2lkZW50X3N0YXJ0fQorZGVj ZGlnaXQJCVswLTldCitoZXhkaWdpdAkJWzAtOUEtRmEtZl0KK29jdGRpZ2l0CQlbMC03XQor YmluZGlnaXQJCVswLTFdCisKK2RlY2ludGVnZXIJCXtkZWNkaWdpdH0rCitoZXhpbnRlZ2Vy CQkwW3hYXXtoZXhkaWdpdH0rCitvY3RpbnRlZ2VyCQkwW29PXXtvY3RkaWdpdH0rCitiaW5p bnRlZ2VyCQkwW2JCXXtiaW5kaWdpdH0rCisKK2hleGZhaWwJCQkwW3hYXQorb2N0ZmFpbAkJ CTBbb09dCitiaW5mYWlsCQkJMFtiQl0KKworbnVtZXJpYwkJCSgoe2RlY2ludGVnZXJ9XC57 ZGVjaW50ZWdlcn0/KXwoXC57ZGVjaW50ZWdlcn0pKQorbnVtZXJpY2ZhaWwJCXtkZWNkaWdp dH0rXC5cLgorCityZWFsCQkJKHtkZWNpbnRlZ2VyfXx7bnVtZXJpY30pW0VlXVstK10/e2Rl Y2RpZ2l0fSsKK3JlYWxmYWlsCQkoe2RlY2ludGVnZXJ9fHtudW1lcmljfSlbRWVdWy0rXQor CitkZWNpbnRlZ2VyX2p1bmsJe2RlY2ludGVnZXJ9e2lkZW50X3N0YXJ0fQoraGV4aW50ZWdl cl9qdW5rCXtoZXhpbnRlZ2VyfXtpZGVudF9zdGFydH0KK29jdGludGVnZXJfanVuawl7b2N0 aW50ZWdlcn17aWRlbnRfc3RhcnR9CitiaW5pbnRlZ2VyX2p1bmsJe2JpbmludGVnZXJ9e2lk ZW50X3N0YXJ0fQorbnVtZXJpY19qdW5rCXtudW1lcmljfXtpZGVudF9zdGFydH0KIHJlYWxf anVuawkJe3JlYWx9e2lkZW50X3N0YXJ0fQogCi1wYXJhbQkJCVwke2ludGVnZXJ9Ci1wYXJh bV9qdW5rCQlcJHtpbnRlZ2VyfXtpZGVudF9zdGFydH0KK3BhcmFtCQkJXCR7ZGVjaW50ZWdl cn0KK3BhcmFtX2p1bmsJCVwke2RlY2ludGVnZXJ9e2lkZW50X3N0YXJ0fQogCiBvdGhlcgkJ CS4KIApAQCAtOTgzLDIwICs5OTgsNDQgQEAgb3RoZXIJCQkuCiAJCQkJCXl5ZXJyb3IoInRy YWlsaW5nIGp1bmsgYWZ0ZXIgcGFyYW1ldGVyIik7CiAJCQkJfQogCi17aW50ZWdlcn0JCXsK K3tkZWNpbnRlZ2VyfQl7CisJCQkJCVNFVF9ZWUxMT0MoKTsKKwkJCQkJcmV0dXJuIHByb2Nl c3NfaW50ZWdlcl9saXRlcmFsKHl5dGV4dCwgeXlsdmFsLCAxMCk7CisJCQkJfQore2hleGlu dGVnZXJ9CXsKKwkJCQkJU0VUX1lZTExPQygpOworCQkJCQlyZXR1cm4gcHJvY2Vzc19pbnRl Z2VyX2xpdGVyYWwoeXl0ZXh0LCB5eWx2YWwsIDE2KTsKKwkJCQl9Cit7b2N0aW50ZWdlcn0J eworCQkJCQlTRVRfWVlMTE9DKCk7CisJCQkJCXJldHVybiBwcm9jZXNzX2ludGVnZXJfbGl0 ZXJhbCh5eXRleHQsIHl5bHZhbCwgOCk7CisJCQkJfQore2JpbmludGVnZXJ9CXsKKwkJCQkJ U0VUX1lZTExPQygpOworCQkJCQlyZXR1cm4gcHJvY2Vzc19pbnRlZ2VyX2xpdGVyYWwoeXl0 ZXh0LCB5eWx2YWwsIDIpOworCQkJCX0KK3toZXhmYWlsfQkJeworCQkJCQlTRVRfWVlMTE9D KCk7CisJCQkJCXl5ZXJyb3IoImludmFsaWQgaGV4YWRlY2ltYWwgaW50ZWdlciIpOworCQkJ CX0KK3tvY3RmYWlsfQkJewogCQkJCQlTRVRfWVlMTE9DKCk7Ci0JCQkJCXJldHVybiBwcm9j ZXNzX2ludGVnZXJfbGl0ZXJhbCh5eXRleHQsIHl5bHZhbCk7CisJCQkJCXl5ZXJyb3IoImlu dmFsaWQgb2N0YWwgaW50ZWdlciIpOwogCQkJCX0KLXtkZWNpbWFsfQkJewore2JpbmZhaWx9 CQl7CisJCQkJCVNFVF9ZWUxMT0MoKTsKKwkJCQkJeXllcnJvcigiaW52YWxpZCBiaW5hcnkg aW50ZWdlciIpOworCQkJCX0KK3tudW1lcmljfQkJewogCQkJCQlTRVRfWVlMTE9DKCk7CiAJ CQkJCXl5bHZhbC0+c3RyID0gcHN0cmR1cCh5eXRleHQpOwogCQkJCQlyZXR1cm4gRkNPTlNU OwogCQkJCX0KLXtkZWNpbWFsZmFpbH0Jewore251bWVyaWNmYWlsfQl7CiAJCQkJCS8qIHRo cm93IGJhY2sgdGhlIC4uLCBhbmQgdHJlYXQgYXMgaW50ZWdlciAqLwogCQkJCQl5eWxlc3Mo eXlsZW5nIC0gMik7CiAJCQkJCVNFVF9ZWUxMT0MoKTsKLQkJCQkJcmV0dXJuIHByb2Nlc3Nf aW50ZWdlcl9saXRlcmFsKHl5dGV4dCwgeXlsdmFsKTsKKwkJCQkJcmV0dXJuIHByb2Nlc3Nf aW50ZWdlcl9saXRlcmFsKHl5dGV4dCwgeXlsdmFsLCAxMCk7CiAJCQkJfQoge3JlYWx9CQkJ ewogCQkJCQlTRVRfWVlMTE9DKCk7CkBAIC0xMDA3LDExICsxMDQ2LDIzIEBAIG90aGVyCQkJ LgogCQkJCQlTRVRfWVlMTE9DKCk7CiAJCQkJCXl5ZXJyb3IoInRyYWlsaW5nIGp1bmsgYWZ0 ZXIgbnVtZXJpYyBsaXRlcmFsIik7CiAJCQkJfQote2ludGVnZXJfanVua30Jewore2RlY2lu dGVnZXJfanVua30JeworCQkJCQlTRVRfWVlMTE9DKCk7CisJCQkJCXl5ZXJyb3IoInRyYWls aW5nIGp1bmsgYWZ0ZXIgbnVtZXJpYyBsaXRlcmFsIik7CisJCQkJfQore2hleGludGVnZXJf anVua30JeworCQkJCQlTRVRfWVlMTE9DKCk7CisJCQkJCXl5ZXJyb3IoInRyYWlsaW5nIGp1 bmsgYWZ0ZXIgbnVtZXJpYyBsaXRlcmFsIik7CisJCQkJfQore29jdGludGVnZXJfanVua30J eworCQkJCQlTRVRfWVlMTE9DKCk7CisJCQkJCXl5ZXJyb3IoInRyYWlsaW5nIGp1bmsgYWZ0 ZXIgbnVtZXJpYyBsaXRlcmFsIik7CisJCQkJfQore2JpbmludGVnZXJfanVua30JewogCQkJ CQlTRVRfWVlMTE9DKCk7CiAJCQkJCXl5ZXJyb3IoInRyYWlsaW5nIGp1bmsgYWZ0ZXIgbnVt ZXJpYyBsaXRlcmFsIik7CiAJCQkJfQote2RlY2ltYWxfanVua30Jewore251bWVyaWNfanVu a30JewogCQkJCQlTRVRfWVlMTE9DKCk7CiAJCQkJCXl5ZXJyb3IoInRyYWlsaW5nIGp1bmsg YWZ0ZXIgbnVtZXJpYyBsaXRlcmFsIik7CiAJCQkJfQpAQCAtMTMwNywxNyArMTM1OCwxNyBA QCBsaXRidWZkdXAoY29yZV95eXNjYW5fdCB5eXNjYW5uZXIpCiB9CiAKIC8qCi0gKiBQcm9j ZXNzIHtpbnRlZ2VyfS4gIE5vdGUgdGhpcyB3aWxsIGFsc28gZG8gdGhlIHJpZ2h0IHRoaW5n IHdpdGgge2RlY2ltYWx9LAotICogaWUgZGlnaXRzIGFuZCBhIGRlY2ltYWwgcG9pbnQuCisg KiBQcm9jZXNzIHtkZWNpbnRlZ2VyfSwge2hleGludGVnZXJ9LCBldGMuICBOb3RlIHRoaXMg d2lsbCBhbHNvIGRvIHRoZSByaWdodAorICogdGhpbmcgd2l0aCB7bnVtZXJpY30sIGllIGRp Z2l0cyBhbmQgYSBkZWNpbWFsIHBvaW50LgogICovCiBzdGF0aWMgaW50Ci1wcm9jZXNzX2lu dGVnZXJfbGl0ZXJhbChjb25zdCBjaGFyICp0b2tlbiwgWVlTVFlQRSAqbHZhbCkKK3Byb2Nl c3NfaW50ZWdlcl9saXRlcmFsKGNvbnN0IGNoYXIgKnRva2VuLCBZWVNUWVBFICpsdmFsLCBp bnQgYmFzZSkKIHsKIAlpbnQJCQl2YWw7CiAJY2hhcgkgICAqZW5kcHRyOwogCiAJZXJybm8g PSAwOwotCXZhbCA9IHN0cnRvaW50KHRva2VuLCAmZW5kcHRyLCAxMCk7CisJdmFsID0gc3Ry dG9pbnQoYmFzZSA9PSAxMCA/IHRva2VuIDogdG9rZW4gKyAyLCAmZW5kcHRyLCBiYXNlKTsK IAlpZiAoKmVuZHB0ciAhPSAnXDAnIHx8IGVycm5vID09IEVSQU5HRSkKIAl7CiAJCS8qIGlu dGVnZXIgdG9vIGxhcmdlIChvciBjb250YWlucyBkZWNpbWFsIHB0KSwgdHJlYXQgaXQgYXMg YSBmbG9hdCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bXV0aWxz LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtdXRpbHMuYwppbmRleCBhNjQ0MjJjOGQw Li4yYTM3ZjgyM2RlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtdXRp bHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtdXRpbHMuYwpAQCAtODUsNiAr ODUsMTcgQEAgZGVjaW1hbExlbmd0aDY0KGNvbnN0IHVpbnQ2NCB2KQogCXJldHVybiB0ICsg KHYgPj0gUG93ZXJzT2ZUZW5bdF0pOwogfQogCitzdGF0aWMgY29uc3QgaW50OCBoZXhsb29r dXBbMTI4XSA9IHsKKwktMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwg LTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKwktMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwg LTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKwktMSwgLTEsIC0xLCAtMSwg LTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKwkwLCAx LCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLAorCS0x LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwg LTEsIC0xLAorCS0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwg LTEsIC0xLCAtMSwgLTEsIC0xLAorCS0xLCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAtMSwg LTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLAorCS0xLCAtMSwgLTEsIC0xLCAtMSwg LTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLAorfTsKKwogLyoK ICAqIENvbnZlcnQgaW5wdXQgc3RyaW5nIHRvIGEgc2lnbmVkIDE2IGJpdCBpbnRlZ2VyLgog ICoKQEAgLTk5LDYgKzExMCw3IEBAIGludDE2CiBwZ19zdHJ0b2ludDE2KGNvbnN0IGNoYXIg KnMpCiB7CiAJY29uc3QgY2hhciAqcHRyID0gczsKKwljb25zdCBjaGFyICpmaXJzdGRpZ2l0 OwogCXVpbnQxNgkJdG1wID0gMDsKIAlib29sCQluZWcgPSBmYWxzZTsKIApAQCAtMTE1LDE5 ICsxMjcsNjAgQEAgcGdfc3RydG9pbnQxNihjb25zdCBjaGFyICpzKQogCWVsc2UgaWYgKCpw dHIgPT0gJysnKQogCQlwdHIrKzsKIAotCS8qIHJlcXVpcmUgYXQgbGVhc3Qgb25lIGRpZ2l0 ICovCi0JaWYgKHVubGlrZWx5KCFpc2RpZ2l0KCh1bnNpZ25lZCBjaGFyKSAqcHRyKSkpCi0J CWdvdG8gaW52YWxpZF9zeW50YXg7Ci0KIAkvKiBwcm9jZXNzIGRpZ2l0cyAqLwotCXdoaWxl ICgqcHRyICYmIGlzZGlnaXQoKHVuc2lnbmVkIGNoYXIpICpwdHIpKQorCWlmIChwdHJbMF0g PT0gJzAnICYmIChwdHJbMV0gPT0gJ3gnIHx8IHB0clsxXSA9PSAnWCcpKQogCXsKLQkJaWYg KHVubGlrZWx5KHRtcCA+IC0oUEdfSU5UMTZfTUlOIC8gMTApKSkKLQkJCWdvdG8gb3V0X29m X3JhbmdlOworCQlmaXJzdGRpZ2l0ID0gcHRyICs9IDI7CisKKwkJd2hpbGUgKCpwdHIgJiYg aXN4ZGlnaXQoKHVuc2lnbmVkIGNoYXIpICpwdHIpKQorCQl7CisJCQlpZiAodW5saWtlbHko dG1wID4gLShQR19JTlQxNl9NSU4gLyAxNikpKQorCQkJCWdvdG8gb3V0X29mX3JhbmdlOwor CisJCQl0bXAgPSB0bXAgKiAxNiArIGhleGxvb2t1cFsodW5zaWduZWQgY2hhcikgKnB0cisr XTsKKwkJfQorCX0KKwllbHNlIGlmIChwdHJbMF0gPT0gJzAnICYmIChwdHJbMV0gPT0gJ28n IHx8IHB0clsxXSA9PSAnTycpKQorCXsKKwkJZmlyc3RkaWdpdCA9IHB0ciArPSAyOworCisJ CXdoaWxlICgqcHRyICYmICgqcHRyID49ICcwJyAmJiAqcHRyIDw9ICc3JykpCisJCXsKKwkJ CWlmICh1bmxpa2VseSh0bXAgPiAtKFBHX0lOVDE2X01JTiAvIDgpKSkKKwkJCQlnb3RvIG91 dF9vZl9yYW5nZTsKKworCQkJdG1wID0gdG1wICogOCArICgqcHRyKysgLSAnMCcpOworCQl9 CisJfQorCWVsc2UgaWYgKHB0clswXSA9PSAnMCcgJiYgKHB0clsxXSA9PSAnYicgfHwgcHRy WzFdID09ICdCJykpCisJeworCQlmaXJzdGRpZ2l0ID0gcHRyICs9IDI7CisKKwkJd2hpbGUg KCpwdHIgJiYgKCpwdHIgPj0gJzAnICYmICpwdHIgPD0gJzEnKSkKKwkJeworCQkJaWYgKHVu bGlrZWx5KHRtcCA+IC0oUEdfSU5UMTZfTUlOIC8gMikpKQorCQkJCWdvdG8gb3V0X29mX3Jh bmdlOworCisJCQl0bXAgPSB0bXAgKiAyICsgKCpwdHIrKyAtICcwJyk7CisJCX0KKwl9CisJ ZWxzZQorCXsKKwkJZmlyc3RkaWdpdCA9IHB0cjsKIAotCQl0bXAgPSB0bXAgKiAxMCArICgq cHRyKysgLSAnMCcpOworCQl3aGlsZSAoKnB0ciAmJiBpc2RpZ2l0KCh1bnNpZ25lZCBjaGFy KSAqcHRyKSkKKwkJeworCQkJaWYgKHVubGlrZWx5KHRtcCA+IC0oUEdfSU5UMTZfTUlOIC8g MTApKSkKKwkJCQlnb3RvIG91dF9vZl9yYW5nZTsKKworCQkJdG1wID0gdG1wICogMTAgKyAo KnB0cisrIC0gJzAnKTsKKwkJfQogCX0KIAorCS8qIHJlcXVpcmUgYXQgbGVhc3Qgb25lIGRp Z2l0ICovCisJaWYgKHVubGlrZWx5KHB0ciA9PSBmaXJzdGRpZ2l0KSkKKwkJZ290byBpbnZh bGlkX3N5bnRheDsKKwogCS8qIGFsbG93IHRyYWlsaW5nIHdoaXRlc3BhY2UsIGJ1dCBub3Qg b3RoZXIgdHJhaWxpbmcgY2hhcnMgKi8KIAl3aGlsZSAoKnB0ciAhPSAnXDAnICYmIGlzc3Bh Y2UoKHVuc2lnbmVkIGNoYXIpICpwdHIpKQogCQlwdHIrKzsKQEAgLTE3Nyw2ICsyMzAsNyBA QCBpbnQzMgogcGdfc3RydG9pbnQzMihjb25zdCBjaGFyICpzKQogewogCWNvbnN0IGNoYXIg KnB0ciA9IHM7CisJY29uc3QgY2hhciAqZmlyc3RkaWdpdDsKIAl1aW50MzIJCXRtcCA9IDA7 CiAJYm9vbAkJbmVnID0gZmFsc2U7CiAKQEAgLTE5MywxOSArMjQ3LDYwIEBAIHBnX3N0cnRv aW50MzIoY29uc3QgY2hhciAqcykKIAllbHNlIGlmICgqcHRyID09ICcrJykKIAkJcHRyKys7 CiAKLQkvKiByZXF1aXJlIGF0IGxlYXN0IG9uZSBkaWdpdCAqLwotCWlmICh1bmxpa2VseSgh aXNkaWdpdCgodW5zaWduZWQgY2hhcikgKnB0cikpKQotCQlnb3RvIGludmFsaWRfc3ludGF4 OwotCiAJLyogcHJvY2VzcyBkaWdpdHMgKi8KLQl3aGlsZSAoKnB0ciAmJiBpc2RpZ2l0KCh1 bnNpZ25lZCBjaGFyKSAqcHRyKSkKKwlpZiAocHRyWzBdID09ICcwJyAmJiAocHRyWzFdID09 ICd4JyB8fCBwdHJbMV0gPT0gJ1gnKSkKIAl7Ci0JCWlmICh1bmxpa2VseSh0bXAgPiAtKFBH X0lOVDMyX01JTiAvIDEwKSkpCi0JCQlnb3RvIG91dF9vZl9yYW5nZTsKKwkJZmlyc3RkaWdp dCA9IHB0ciArPSAyOworCisJCXdoaWxlICgqcHRyICYmIGlzeGRpZ2l0KCh1bnNpZ25lZCBj aGFyKSAqcHRyKSkKKwkJeworCQkJaWYgKHVubGlrZWx5KHRtcCA+IC0oUEdfSU5UMzJfTUlO IC8gMTYpKSkKKwkJCQlnb3RvIG91dF9vZl9yYW5nZTsKKworCQkJdG1wID0gdG1wICogMTYg KyBoZXhsb29rdXBbKHVuc2lnbmVkIGNoYXIpICpwdHIrK107CisJCX0KKwl9CisJZWxzZSBp ZiAocHRyWzBdID09ICcwJyAmJiAocHRyWzFdID09ICdvJyB8fCBwdHJbMV0gPT0gJ08nKSkK Kwl7CisJCWZpcnN0ZGlnaXQgPSBwdHIgKz0gMjsKKworCQl3aGlsZSAoKnB0ciAmJiAoKnB0 ciA+PSAnMCcgJiYgKnB0ciA8PSAnNycpKQorCQl7CisJCQlpZiAodW5saWtlbHkodG1wID4g LShQR19JTlQzMl9NSU4gLyA4KSkpCisJCQkJZ290byBvdXRfb2ZfcmFuZ2U7CisKKwkJCXRt cCA9IHRtcCAqIDggKyAoKnB0cisrIC0gJzAnKTsKKwkJfQorCX0KKwllbHNlIGlmIChwdHJb MF0gPT0gJzAnICYmIChwdHJbMV0gPT0gJ2InIHx8IHB0clsxXSA9PSAnQicpKQorCXsKKwkJ Zmlyc3RkaWdpdCA9IHB0ciArPSAyOworCisJCXdoaWxlICgqcHRyICYmICgqcHRyID49ICcw JyAmJiAqcHRyIDw9ICcxJykpCisJCXsKKwkJCWlmICh1bmxpa2VseSh0bXAgPiAtKFBHX0lO VDMyX01JTiAvIDIpKSkKKwkJCQlnb3RvIG91dF9vZl9yYW5nZTsKKworCQkJdG1wID0gdG1w ICogMiArICgqcHRyKysgLSAnMCcpOworCQl9CisJfQorCWVsc2UKKwl7CisJCWZpcnN0ZGln aXQgPSBwdHI7CisKKwkJd2hpbGUgKCpwdHIgJiYgaXNkaWdpdCgodW5zaWduZWQgY2hhcikg KnB0cikpCisJCXsKKwkJCWlmICh1bmxpa2VseSh0bXAgPiAtKFBHX0lOVDMyX01JTiAvIDEw KSkpCisJCQkJZ290byBvdXRfb2ZfcmFuZ2U7CiAKLQkJdG1wID0gdG1wICogMTAgKyAoKnB0 cisrIC0gJzAnKTsKKwkJCXRtcCA9IHRtcCAqIDEwICsgKCpwdHIrKyAtICcwJyk7CisJCX0K IAl9CiAKKwkvKiByZXF1aXJlIGF0IGxlYXN0IG9uZSBkaWdpdCAqLworCWlmICh1bmxpa2Vs eShwdHIgPT0gZmlyc3RkaWdpdCkpCisJCWdvdG8gaW52YWxpZF9zeW50YXg7CisKIAkvKiBh bGxvdyB0cmFpbGluZyB3aGl0ZXNwYWNlLCBidXQgbm90IG90aGVyIHRyYWlsaW5nIGNoYXJz ICovCiAJd2hpbGUgKCpwdHIgIT0gJ1wwJyAmJiBpc3NwYWNlKCh1bnNpZ25lZCBjaGFyKSAq cHRyKSkKIAkJcHRyKys7CkBAIC0yNTUsNiArMzUwLDcgQEAgaW50NjQKIHBnX3N0cnRvaW50 NjQoY29uc3QgY2hhciAqcykKIHsKIAljb25zdCBjaGFyICpwdHIgPSBzOworCWNvbnN0IGNo YXIgKmZpcnN0ZGlnaXQ7CiAJdWludDY0CQl0bXAgPSAwOwogCWJvb2wJCW5lZyA9IGZhbHNl OwogCkBAIC0yNzEsMTggKzM2Nyw1OSBAQCBwZ19zdHJ0b2ludDY0KGNvbnN0IGNoYXIgKnMp CiAJZWxzZSBpZiAoKnB0ciA9PSAnKycpCiAJCXB0cisrOwogCi0JLyogcmVxdWlyZSBhdCBs ZWFzdCBvbmUgZGlnaXQgKi8KLQlpZiAodW5saWtlbHkoIWlzZGlnaXQoKHVuc2lnbmVkIGNo YXIpICpwdHIpKSkKLQkJZ290byBpbnZhbGlkX3N5bnRheDsKLQogCS8qIHByb2Nlc3MgZGln aXRzICovCi0Jd2hpbGUgKCpwdHIgJiYgaXNkaWdpdCgodW5zaWduZWQgY2hhcikgKnB0cikp CisJaWYgKHB0clswXSA9PSAnMCcgJiYgKHB0clsxXSA9PSAneCcgfHwgcHRyWzFdID09ICdY JykpCiAJewotCQlpZiAodW5saWtlbHkodG1wID4gLShQR19JTlQ2NF9NSU4gLyAxMCkpKQot CQkJZ290byBvdXRfb2ZfcmFuZ2U7CisJCWZpcnN0ZGlnaXQgPSBwdHIgKz0gMjsKKworCQl3 aGlsZSAoKnB0ciAmJiBpc3hkaWdpdCgodW5zaWduZWQgY2hhcikgKnB0cikpCisJCXsKKwkJ CWlmICh1bmxpa2VseSh0bXAgPiAtKFBHX0lOVDY0X01JTiAvIDE2KSkpCisJCQkJZ290byBv dXRfb2ZfcmFuZ2U7CiAKLQkJdG1wID0gdG1wICogMTAgKyAoKnB0cisrIC0gJzAnKTsKKwkJ CXRtcCA9IHRtcCAqIDE2ICsgaGV4bG9va3VwWyh1bnNpZ25lZCBjaGFyKSAqcHRyKytdOwor CQl9CiAJfQorCWVsc2UgaWYgKHB0clswXSA9PSAnMCcgJiYgKHB0clsxXSA9PSAnbycgfHwg cHRyWzFdID09ICdPJykpCisJeworCQlmaXJzdGRpZ2l0ID0gcHRyICs9IDI7CisKKwkJd2hp bGUgKCpwdHIgJiYgKCpwdHIgPj0gJzAnICYmICpwdHIgPD0gJzcnKSkKKwkJeworCQkJaWYg KHVubGlrZWx5KHRtcCA+IC0oUEdfSU5UNjRfTUlOIC8gOCkpKQorCQkJCWdvdG8gb3V0X29m X3JhbmdlOworCisJCQl0bXAgPSB0bXAgKiA4ICsgKCpwdHIrKyAtICcwJyk7CisJCX0KKwl9 CisJZWxzZSBpZiAocHRyWzBdID09ICcwJyAmJiAocHRyWzFdID09ICdiJyB8fCBwdHJbMV0g PT0gJ0InKSkKKwl7CisJCWZpcnN0ZGlnaXQgPSBwdHIgKz0gMjsKKworCQl3aGlsZSAoKnB0 ciAmJiAoKnB0ciA+PSAnMCcgJiYgKnB0ciA8PSAnMScpKQorCQl7CisJCQlpZiAodW5saWtl bHkodG1wID4gLShQR19JTlQ2NF9NSU4gLyAyKSkpCisJCQkJZ290byBvdXRfb2ZfcmFuZ2U7 CisKKwkJCXRtcCA9IHRtcCAqIDIgKyAoKnB0cisrIC0gJzAnKTsKKwkJfQorCX0KKwllbHNl CisJeworCQlmaXJzdGRpZ2l0ID0gcHRyOworCisJCXdoaWxlICgqcHRyICYmIGlzZGlnaXQo KHVuc2lnbmVkIGNoYXIpICpwdHIpKQorCQl7CisJCQlpZiAodW5saWtlbHkodG1wID4gLShQ R19JTlQ2NF9NSU4gLyAxMCkpKQorCQkJCWdvdG8gb3V0X29mX3JhbmdlOworCisJCQl0bXAg PSB0bXAgKiAxMCArICgqcHRyKysgLSAnMCcpOworCQl9CisJfQorCisJLyogcmVxdWlyZSBh dCBsZWFzdCBvbmUgZGlnaXQgKi8KKwlpZiAodW5saWtlbHkocHRyID09IGZpcnN0ZGlnaXQp KQorCQlnb3RvIGludmFsaWRfc3ludGF4OwogCiAJLyogYWxsb3cgdHJhaWxpbmcgd2hpdGVz cGFjZSwgYnV0IG5vdCBvdGhlciB0cmFpbGluZyBjaGFycyAqLwogCXdoaWxlICgqcHRyICE9 ICdcMCcgJiYgaXNzcGFjZSgodW5zaWduZWQgY2hhcikgKnB0cikpCmRpZmYgLS1naXQgYS9z cmMvZmVfdXRpbHMvcHNxbHNjYW4ubCBiL3NyYy9mZV91dGlscy9wc3Fsc2Nhbi5sCmluZGV4 IGFlNTMxZWMyNDAuLmNiMWZjNTIxMzggMTAwNjQ0Ci0tLSBhL3NyYy9mZV91dGlscy9wc3Fs c2Nhbi5sCisrKyBiL3NyYy9mZV91dGlscy9wc3Fsc2Nhbi5sCkBAIC0zMjMsMjUgKzMyMyw0 MCBAQCBvcGVyYXRvcgkJe29wX2NoYXJzfSsKICAqIFVuYXJ5IG1pbnVzIGlzIG5vdCBwYXJ0 IG9mIGEgbnVtYmVyIGhlcmUuICBJbnN0ZWFkIHdlIHBhc3MgaXQgc2VwYXJhdGVseSB0bwog ICogdGhlIHBhcnNlciwgYW5kIHRoZXJlIGl0IGdldHMgY29lcmNlZCB2aWEgZG9OZWdhdGUo KS4KICAqCi0gKiB7ZGVjaW1hbGZhaWx9IGlzIHVzZWQgYmVjYXVzZSB3ZSB3b3VsZCBsaWtl ICIxLi4xMCIgdG8gbGV4IGFzIDEsIGRvdF9kb3QsIDEwLgorICoge251bWVyaWNmYWlsfSBp cyB1c2VkIGJlY2F1c2Ugd2Ugd291bGQgbGlrZSAiMS4uMTAiIHRvIGxleCBhcyAxLCBkb3Rf ZG90LCAxMC4KICAqCiAgKiB7cmVhbGZhaWx9IGlzIGFkZGVkIHRvIHByZXZlbnQgdGhlIG5l ZWQgZm9yIHNjYW5uZXIKICAqIGJhY2t1cCB3aGVuIHRoZSB7cmVhbH0gcnVsZSBmYWlscyB0 byBtYXRjaCBjb21wbGV0ZWx5LgogICovCi1kaWdpdAkJCVswLTldCi0KLWludGVnZXIJCQl7 ZGlnaXR9KwotZGVjaW1hbAkJCSgoe2RpZ2l0fSpcLntkaWdpdH0rKXwoe2RpZ2l0fStcLntk aWdpdH0qKSkKLWRlY2ltYWxmYWlsCQl7ZGlnaXR9K1wuXC4KLXJlYWwJCQkoe2ludGVnZXJ9 fHtkZWNpbWFsfSlbRWVdWy0rXT97ZGlnaXR9KwotcmVhbGZhaWwJCSh7aW50ZWdlcn18e2Rl Y2ltYWx9KVtFZV1bLStdCi0KLWludGVnZXJfanVuawl7aW50ZWdlcn17aWRlbnRfc3RhcnR9 Ci1kZWNpbWFsX2p1bmsJe2RlY2ltYWx9e2lkZW50X3N0YXJ0fQorZGVjZGlnaXQJCVswLTld CitoZXhkaWdpdAkJWzAtOUEtRmEtZl0KK29jdGRpZ2l0CQlbMC03XQorYmluZGlnaXQJCVsw LTFdCisKK2RlY2ludGVnZXIJCXtkZWNkaWdpdH0rCitoZXhpbnRlZ2VyCQkwW3hYXXtoZXhk aWdpdH0rCitvY3RpbnRlZ2VyCQkwW29PXXtvY3RkaWdpdH0rCitiaW5pbnRlZ2VyCQkwW2JC XXtiaW5kaWdpdH0rCisKK2hleGZhaWwJCQkwW3hYXQorb2N0ZmFpbAkJCTBbb09dCitiaW5m YWlsCQkJMFtiQl0KKworbnVtZXJpYwkJCSgoe2RlY2ludGVnZXJ9XC57ZGVjaW50ZWdlcn0/ KXwoXC57ZGVjaW50ZWdlcn0pKQorbnVtZXJpY2ZhaWwJCXtkZWNkaWdpdH0rXC5cLgorCity ZWFsCQkJKHtkZWNpbnRlZ2VyfXx7bnVtZXJpY30pW0VlXVstK10/e2RlY2RpZ2l0fSsKK3Jl YWxmYWlsCQkoe2RlY2ludGVnZXJ9fHtudW1lcmljfSlbRWVdWy0rXQorCitkZWNpbnRlZ2Vy X2p1bmsJe2RlY2ludGVnZXJ9e2lkZW50X3N0YXJ0fQoraGV4aW50ZWdlcl9qdW5rCXtoZXhp bnRlZ2VyfXtpZGVudF9zdGFydH0KK29jdGludGVnZXJfanVuawl7b2N0aW50ZWdlcn17aWRl bnRfc3RhcnR9CitiaW5pbnRlZ2VyX2p1bmsJe2JpbmludGVnZXJ9e2lkZW50X3N0YXJ0fQor bnVtZXJpY19qdW5rCXtudW1lcmljfXtpZGVudF9zdGFydH0KIHJlYWxfanVuawkJe3JlYWx9 e2lkZW50X3N0YXJ0fQogCi1wYXJhbQkJCVwke2ludGVnZXJ9Ci1wYXJhbV9qdW5rCQlcJHtp bnRlZ2VyfXtpZGVudF9zdGFydH0KK3BhcmFtCQkJXCR7ZGVjaW50ZWdlcn0KK3BhcmFtX2p1 bmsJCVwke2RlY2ludGVnZXJ9e2lkZW50X3N0YXJ0fQogCiAvKiBwc3FsLXNwZWNpZmljOiBj aGFyYWN0ZXJzIGFsbG93ZWQgaW4gdmFyaWFibGUgbmFtZXMgKi8KIHZhcmlhYmxlX2NoYXIJ W0EtWmEtelwyMDAtXDM3N18wLTldCkBAIC04NDcsMTMgKzg2MiwzMSBAQCBvdGhlcgkJCS4K IAkJCQkJRUNITzsKIAkJCQl9CiAKLXtpbnRlZ2VyfQkJewore2RlY2ludGVnZXJ9CXsKKwkJ CQkJRUNITzsKKwkJCQl9Cit7aGV4aW50ZWdlcn0JeworCQkJCQlFQ0hPOworCQkJCX0KK3tv Y3RpbnRlZ2VyfQl7CisJCQkJCUVDSE87CisJCQkJfQore2JpbmludGVnZXJ9CXsKKwkJCQkJ RUNITzsKKwkJCQl9Cit7aGV4ZmFpbH0JCXsKIAkJCQkJRUNITzsKIAkJCQl9Ci17ZGVjaW1h bH0JCXsKK3tvY3RmYWlsfQkJewogCQkJCQlFQ0hPOwogCQkJCX0KLXtkZWNpbWFsZmFpbH0J ewore2JpbmZhaWx9CQl7CisJCQkJCUVDSE87CisJCQkJfQore251bWVyaWN9CQl7CisJCQkJ CUVDSE87CisJCQkJfQore251bWVyaWNmYWlsfQl7CiAJCQkJCS8qIHRocm93IGJhY2sgdGhl IC4uLCBhbmQgdHJlYXQgYXMgaW50ZWdlciAqLwogCQkJCQl5eWxlc3MoeXlsZW5nIC0gMik7 CiAJCQkJCUVDSE87CkBAIC04NjQsMTAgKzg5NywxOSBAQCBvdGhlcgkJCS4KIHtyZWFsZmFp bH0JCXsKIAkJCQkJRUNITzsKIAkJCQl9Ci17aW50ZWdlcl9qdW5rfQl7Cit7ZGVjaW50ZWdl cl9qdW5rfQl7CisJCQkJCUVDSE87CisJCQkJfQore2hleGludGVnZXJfanVua30JeworCQkJ CQlFQ0hPOworCQkJCX0KK3tvY3RpbnRlZ2VyX2p1bmt9CXsKKwkJCQkJRUNITzsKKwkJCQl9 Cit7YmluaW50ZWdlcl9qdW5rfQl7CiAJCQkJCUVDSE87CiAJCQkJfQote2RlY2ltYWxfanVu a30Jewore251bWVyaWNfanVua30JewogCQkJCQlFQ0hPOwogCQkJCX0KIHtyZWFsX2p1bmt9 CQl7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvcGdjLmwgYi9z cmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvcGdjLmwKaW5kZXggYzE0NWM5Njk4Zi4uMmMw OWM2Y2I0ZiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL3BnYy5s CisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9wZ2MubApAQCAtNTcsNyArNTcs NyBAQCBzdGF0aWMgYm9vbAkJaW5jbHVkZV9uZXh0OwogI2RlZmluZSBzdGFydGxpdCgpCShs aXRlcmFsYnVmWzBdID0gJ1wwJywgbGl0ZXJhbGxlbiA9IDApCiBzdGF0aWMgdm9pZCBhZGRs aXQoY2hhciAqeXRleHQsIGludCB5bGVuZyk7CiBzdGF0aWMgdm9pZCBhZGRsaXRjaGFyKHVu c2lnbmVkIGNoYXIgeWNoYXIpOwotc3RhdGljIGludAlwcm9jZXNzX2ludGVnZXJfbGl0ZXJh bChjb25zdCBjaGFyICp0b2tlbiwgWVlTVFlQRSAqbHZhbCk7CitzdGF0aWMgaW50CXByb2Nl c3NfaW50ZWdlcl9saXRlcmFsKGNvbnN0IGNoYXIgKnRva2VuLCBZWVNUWVBFICpsdmFsLCBp bnQgYmFzZSk7CiBzdGF0aWMgdm9pZCBwYXJzZV9pbmNsdWRlKHZvaWQpOwogc3RhdGljIGJv b2wgZWNwZ19pc3NwYWNlKGNoYXIgY2gpOwogc3RhdGljIGJvb2wgaXNkZWZpbmUodm9pZCk7 CkBAIC0zNTEsMjUgKzM1MSw0MCBAQCBvcGVyYXRvcgkJe29wX2NoYXJzfSsKICAqIFVuYXJ5 IG1pbnVzIGlzIG5vdCBwYXJ0IG9mIGEgbnVtYmVyIGhlcmUuICBJbnN0ZWFkIHdlIHBhc3Mg aXQgc2VwYXJhdGVseSB0bwogICogdGhlIHBhcnNlciwgYW5kIHRoZXJlIGl0IGdldHMgY29l cmNlZCB2aWEgZG9OZWdhdGUoKS4KICAqCi0gKiB7ZGVjaW1hbGZhaWx9IGlzIHVzZWQgYmVj YXVzZSB3ZSB3b3VsZCBsaWtlICIxLi4xMCIgdG8gbGV4IGFzIDEsIGRvdF9kb3QsIDEwLgor ICoge251bWVyaWNmYWlsfSBpcyB1c2VkIGJlY2F1c2Ugd2Ugd291bGQgbGlrZSAiMS4uMTAi IHRvIGxleCBhcyAxLCBkb3RfZG90LCAxMC4KICAqCiAgKiB7cmVhbGZhaWx9IGlzIGFkZGVk IHRvIHByZXZlbnQgdGhlIG5lZWQgZm9yIHNjYW5uZXIKICAqIGJhY2t1cCB3aGVuIHRoZSB7 cmVhbH0gcnVsZSBmYWlscyB0byBtYXRjaCBjb21wbGV0ZWx5LgogICovCi1kaWdpdAkJCVsw LTldCi0KLWludGVnZXIJCQl7ZGlnaXR9KwotZGVjaW1hbAkJCSgoe2RpZ2l0fSpcLntkaWdp dH0rKXwoe2RpZ2l0fStcLntkaWdpdH0qKSkKLWRlY2ltYWxmYWlsCQl7ZGlnaXR9K1wuXC4K LXJlYWwJCQkoe2ludGVnZXJ9fHtkZWNpbWFsfSlbRWVdWy0rXT97ZGlnaXR9KwotcmVhbGZh aWwJCSh7aW50ZWdlcn18e2RlY2ltYWx9KVtFZV1bLStdCi0KLWludGVnZXJfanVuawl7aW50 ZWdlcn17aWRlbnRfc3RhcnR9Ci1kZWNpbWFsX2p1bmsJe2RlY2ltYWx9e2lkZW50X3N0YXJ0 fQorZGVjZGlnaXQJCVswLTldCitoZXhkaWdpdAkJWzAtOUEtRmEtZl0KK29jdGRpZ2l0CQlb MC03XQorYmluZGlnaXQJCVswLTFdCisKK2RlY2ludGVnZXIJCXtkZWNkaWdpdH0rCitoZXhp bnRlZ2VyCQkwW3hYXXtoZXhkaWdpdH0rCitvY3RpbnRlZ2VyCQkwW29PXXtvY3RkaWdpdH0r CitiaW5pbnRlZ2VyCQkwW2JCXXtiaW5kaWdpdH0rCisKK2hleGZhaWwJCQkwW3hYXQorb2N0 ZmFpbAkJCTBbb09dCitiaW5mYWlsCQkJMFtiQl0KKworbnVtZXJpYwkJCSgoe2RlY2ludGVn ZXJ9XC57ZGVjaW50ZWdlcn0/KXwoXC57ZGVjaW50ZWdlcn0pKQorbnVtZXJpY2ZhaWwJCXtk ZWNkaWdpdH0rXC5cLgorCityZWFsCQkJKHtkZWNpbnRlZ2VyfXx7bnVtZXJpY30pW0VlXVst K10/e2RlY2RpZ2l0fSsKK3JlYWxmYWlsCQkoe2RlY2ludGVnZXJ9fHtudW1lcmljfSlbRWVd Wy0rXQorCitkZWNpbnRlZ2VyX2p1bmsJe2RlY2ludGVnZXJ9e2lkZW50X3N0YXJ0fQoraGV4 aW50ZWdlcl9qdW5rCXtoZXhpbnRlZ2VyfXtpZGVudF9zdGFydH0KK29jdGludGVnZXJfanVu awl7b2N0aW50ZWdlcn17aWRlbnRfc3RhcnR9CitiaW5pbnRlZ2VyX2p1bmsJe2JpbmludGVn ZXJ9e2lkZW50X3N0YXJ0fQorbnVtZXJpY19qdW5rCXtudW1lcmljfXtpZGVudF9zdGFydH0K IHJlYWxfanVuawkJe3JlYWx9e2lkZW50X3N0YXJ0fQogCi1wYXJhbQkJCVwke2ludGVnZXJ9 Ci1wYXJhbV9qdW5rCQlcJHtpbnRlZ2VyfXtpZGVudF9zdGFydH0KK3BhcmFtCQkJXCR7ZGVj aW50ZWdlcn0KK3BhcmFtX2p1bmsJCVwke2RlY2ludGVnZXJ9e2lkZW50X3N0YXJ0fQogCiAv KiBzcGVjaWFsIGNoYXJhY3RlcnMgZm9yIG90aGVyIGRibXMgKi8KIC8qIHdlIGhhdmUgdG8g cmVhY3QgZGlmZmVyZW50bHkgaW4gY29tcGF0IG1vZGUgKi8KQEAgLTM5OSw5ICs0MTQsNiBA QCBpbmNsdWRlX25leHQJW2lJXVtuTl1bY0NdW2xMXVt1VV1bZERdW2VFXV9bbk5dW2VFXVt4 WF1bdFRdCiBpbXBvcnQJCQlbaUldW21NXVtwUF1bb09dW3JSXVt0VF0KIHVuZGVmCQkJW3VV XVtuTl1bZERdW2VFXVtmRl0KIAotLyogQyB2ZXJzaW9uIG9mIGhleCBudW1iZXIgKi8KLXhj aAkJCQkwW3hYXVswLTlBLUZhLWZdKgotCiBjY29tbWVudAkJIi8vIi4qXG4KIAogaWYJCQkJ W2lJXVtmRl0KQEAgLTQxNCw3ICs0MjYsNyBAQCBlbmRpZgkJCVtlRV1bbk5dW2REXVtpSV1b ZkZdCiBzdHJ1Y3QJCQlbc1NdW3RUXVtyUl1bdVVdW2NDXVt0VF0KIAogZXhlY19zcWwJCXtl eGVjfXtzcGFjZX0qe3NxbH17c3BhY2V9KgotaXBkaWdpdAkJCSh7ZGlnaXR9fHtkaWdpdH17 ZGlnaXR9fHtkaWdpdH17ZGlnaXR9e2RpZ2l0fSkKK2lwZGlnaXQJCQkoe2RlY2RpZ2l0fXx7 ZGVjZGlnaXR9e2RlY2RpZ2l0fXx7ZGVjZGlnaXR9e2RlY2RpZ2l0fXtkZWNkaWdpdH0pCiBp cAkJCQl7aXBkaWdpdH1cLntpcGRpZ2l0fVwue2lwZGlnaXR9XC57aXBkaWdpdH0KIAogLyog d2UgbWlnaHQgd2FudCB0byBwYXJzZSBhbGwgY3BwIGluY2x1ZGUgZmlsZXMgKi8KQEAgLTkz MiwxNyArOTQ0LDIwIEBAIGNwcGxpbmUJCQl7c3BhY2V9KiMoW15pXVtBLVphLXpdKnx7aWZ9 fHtpZmRlZn18e2lmbmRlZn18e2ltcG9ydH0pKChcL1wqW14qL10qXCorCiB9ICAvKiA8U1FM PiAqLwogCiA8QyxTUUw+ewote2ludGVnZXJ9CQl7Ci0JCQkJCXJldHVybiBwcm9jZXNzX2lu dGVnZXJfbGl0ZXJhbCh5eXRleHQsICZiYXNlX3l5bHZhbCk7Cit7ZGVjaW50ZWdlcn0Jewor CQkJCQlyZXR1cm4gcHJvY2Vzc19pbnRlZ2VyX2xpdGVyYWwoeXl0ZXh0LCAmYmFzZV95eWx2 YWwsIDEwKTsKIAkJCQl9Ci17ZGVjaW1hbH0JCXsKK3toZXhpbnRlZ2VyfQl7CisJCQkJCXJl dHVybiBwcm9jZXNzX2ludGVnZXJfbGl0ZXJhbCh5eXRleHQsICZiYXNlX3l5bHZhbCwgMTYp OworCQkJCX0KK3tudW1lcmljfQkJewogCQkJCQliYXNlX3l5bHZhbC5zdHIgPSBtbV9zdHJk dXAoeXl0ZXh0KTsKIAkJCQkJcmV0dXJuIEZDT05TVDsKIAkJCQl9Ci17ZGVjaW1hbGZhaWx9 CXsKK3tudW1lcmljZmFpbH0JewogCQkJCQkvKiB0aHJvdyBiYWNrIHRoZSAuLiwgYW5kIHRy ZWF0IGFzIGludGVnZXIgKi8KIAkJCQkJeXlsZXNzKHl5bGVuZyAtIDIpOwotCQkJCQlyZXR1 cm4gcHJvY2Vzc19pbnRlZ2VyX2xpdGVyYWwoeXl0ZXh0LCAmYmFzZV95eWx2YWwpOworCQkJ CQlyZXR1cm4gcHJvY2Vzc19pbnRlZ2VyX2xpdGVyYWwoeXl0ZXh0LCAmYmFzZV95eWx2YWws IDEwKTsKIAkJCQl9CiB7cmVhbH0JCQl7CiAJCQkJCWJhc2VfeXlsdmFsLnN0ciA9IG1tX3N0 cmR1cCh5eXRleHQpOwpAQCAtOTUxLDIyICs5NjYsMzggQEAgY3BwbGluZQkJCXtzcGFjZX0q IyhbXmldW0EtWmEtel0qfHtpZn18e2lmZGVmfXx7aWZuZGVmfXx7aW1wb3J0fSkoKFwvXCpb XiovXSpcKisKIHtyZWFsZmFpbH0JCXsKIAkJCQkJLyoKIAkJCQkJICogdGhyb3cgYmFjayB0 aGUgW0VlXVsrLV0sIGFuZCBmaWd1cmUgb3V0IHdoZXRoZXIgd2hhdAotCQkJCQkgKiByZW1h aW5zIGlzIGFuIHtpbnRlZ2VyfSBvciB7ZGVjaW1hbH0uCisJCQkJCSAqIHJlbWFpbnMgaXMg YW4ge2RlY2ludGVnZXJ9IG9yIHtudW1lcmljfS4KIAkJCQkJICovCiAJCQkJCXl5bGVzcyh5 eWxlbmcgLSAyKTsKLQkJCQkJcmV0dXJuIHByb2Nlc3NfaW50ZWdlcl9saXRlcmFsKHl5dGV4 dCwgJmJhc2VfeXlsdmFsKTsKKwkJCQkJcmV0dXJuIHByb2Nlc3NfaW50ZWdlcl9saXRlcmFs KHl5dGV4dCwgJmJhc2VfeXlsdmFsLCAxMCk7CiAJCQkJfQogfSAvKiA8QyxTUUw+ICovCiAK IDxTUUw+ewore29jdGludGVnZXJ9CXsKKwkJCQkJcmV0dXJuIHByb2Nlc3NfaW50ZWdlcl9s aXRlcmFsKHl5dGV4dCwgJmJhc2VfeXlsdmFsLCA4KTsKKwkJCQl9Cit7YmluaW50ZWdlcn0J eworCQkJCQlyZXR1cm4gcHJvY2Vzc19pbnRlZ2VyX2xpdGVyYWwoeXl0ZXh0LCAmYmFzZV95 eWx2YWwsIDIpOworCQkJCX0KKwogCS8qCiAJICogTm90ZSB0aGF0IHNvbWUgdHJhaWxpbmcg anVuayBpcyB2YWxpZCBpbiBDIChzdWNoIGFzIDEwMExMKSwgc28gd2UKIAkgKiBjb250YWlu IHRoaXMgdG8gU1FMIG1vZGUuCiAJICovCi17aW50ZWdlcl9qdW5rfQl7Cit7ZGVjaW50ZWdl cl9qdW5rfQl7CiAJCQkJCW1tZmF0YWwoUEFSU0VfRVJST1IsICJ0cmFpbGluZyBqdW5rIGFm dGVyIG51bWVyaWMgbGl0ZXJhbCIpOwogCQkJCX0KLXtkZWNpbWFsX2p1bmt9CXsKK3toZXhp bnRlZ2VyX2p1bmt9CXsKKwkJCQkJbW1mYXRhbChQQVJTRV9FUlJPUiwgInRyYWlsaW5nIGp1 bmsgYWZ0ZXIgbnVtZXJpYyBsaXRlcmFsIik7CisJCQkJfQore29jdGludGVnZXJfanVua30J eworCQkJCQltbWZhdGFsKFBBUlNFX0VSUk9SLCAidHJhaWxpbmcganVuayBhZnRlciBudW1l cmljIGxpdGVyYWwiKTsKKwkJCQl9Cit7YmluaW50ZWdlcl9qdW5rfQl7CisJCQkJCW1tZmF0 YWwoUEFSU0VfRVJST1IsICJ0cmFpbGluZyBqdW5rIGFmdGVyIG51bWVyaWMgbGl0ZXJhbCIp OworCQkJCX0KK3tudW1lcmljX2p1bmt9CXsKIAkJCQkJbW1mYXRhbChQQVJTRV9FUlJPUiwg InRyYWlsaW5nIGp1bmsgYWZ0ZXIgbnVtZXJpYyBsaXRlcmFsIik7CiAJCQkJfQoge3JlYWxf anVua30JCXsKQEAgLTEwMzYsMTkgKzEwNjcsNiBAQCBjcHBsaW5lCQkJe3NwYWNlfSojKFte aV1bQS1aYS16XSp8e2lmfXx7aWZkZWZ9fHtpZm5kZWZ9fHtpbXBvcnR9KSgoXC9cKlteKi9d KlwqKwogCQkJCQkJCXJldHVybiBTX0FOWVRISU5HOwogCQkJCQkgfQogPEM+e2Njb21tZW50 fQkJeyBFQ0hPOyB9Ci08Qz57eGNofQkJCXsKLQkJCQkJCWNoYXIqIGVuZHB0cjsKLQotCQkJ CQkJZXJybm8gPSAwOwotCQkJCQkJYmFzZV95eWx2YWwuaXZhbCA9IHN0cnRvdWwoKGNoYXIg KikgeXl0ZXh0LCAmZW5kcHRyLCAxNik7Ci0JCQkJCQlpZiAoKmVuZHB0ciAhPSAnXDAnIHx8 IGVycm5vID09IEVSQU5HRSkKLQkJCQkJCXsKLQkJCQkJCQllcnJubyA9IDA7Ci0JCQkJCQkJ YmFzZV95eWx2YWwuc3RyID0gbW1fc3RyZHVwKHl5dGV4dCk7Ci0JCQkJCQkJcmV0dXJuIFND T05TVDsKLQkJCQkJCX0KLQkJCQkJCXJldHVybiBJQ09OU1Q7Ci0JCQkJCX0KIDxDPntjcHBp bmNsdWRlfQkJewogCQkJCQkJaWYgKHN5c3RlbV9pbmNsdWRlcykKIAkJCQkJCXsKQEAgLTE1 NzMsMTcgKzE1OTEsMTcgQEAgYWRkbGl0Y2hhcih1bnNpZ25lZCBjaGFyIHljaGFyKQogfQog CiAvKgotICogUHJvY2VzcyB7aW50ZWdlcn0uICBOb3RlIHRoaXMgd2lsbCBhbHNvIGRvIHRo ZSByaWdodCB0aGluZyB3aXRoIHtkZWNpbWFsfSwKLSAqIGllIGRpZ2l0cyBhbmQgYSBkZWNp bWFsIHBvaW50LgorICogUHJvY2VzcyB7ZGVjaW50ZWdlcn0sIHtoZXhpbnRlZ2VyfSwgZXRj LiAgTm90ZSB0aGlzIHdpbGwgYWxzbyBkbyB0aGUgcmlnaHQKKyAqIHRoaW5nIHdpdGgge251 bWVyaWN9LCBpZSBkaWdpdHMgYW5kIGEgZGVjaW1hbCBwb2ludC4KICAqLwogc3RhdGljIGlu dAotcHJvY2Vzc19pbnRlZ2VyX2xpdGVyYWwoY29uc3QgY2hhciAqdG9rZW4sIFlZU1RZUEUg Kmx2YWwpCitwcm9jZXNzX2ludGVnZXJfbGl0ZXJhbChjb25zdCBjaGFyICp0b2tlbiwgWVlT VFlQRSAqbHZhbCwgaW50IGJhc2UpCiB7CiAJaW50CQkJdmFsOwogCWNoYXIJICAgKmVuZHB0 cjsKIAogCWVycm5vID0gMDsKLQl2YWwgPSBzdHJ0b2ludCh0b2tlbiwgJmVuZHB0ciwgMTAp OworCXZhbCA9IHN0cnRvaW50KGJhc2UgPT0gMTAgPyB0b2tlbiA6IHRva2VuICsgMiwgJmVu ZHB0ciwgYmFzZSk7CiAJaWYgKCplbmRwdHIgIT0gJ1wwJyB8fCBlcnJubyA9PSBFUkFOR0Up CiAJewogCQkvKiBpbnRlZ2VyIHRvbyBsYXJnZSAob3IgY29udGFpbnMgZGVjaW1hbCBwdCks IHRyZWF0IGl0IGFzIGEgZmxvYXQgKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvaW50Mi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2ludDIub3V0 CmluZGV4IDEwOWNmOWJhYWEuLjg3ZmIzNjlkNzYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvaW50Mi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9pbnQyLm91dApAQCAtMzA0LDMgKzMwNCw5NSBAQCBGUk9NIChWQUxVRVMgKC0yLjU6Om51 bWVyaWMpLAogICAyLjUgfCAgICAgICAgICAzCiAoNyByb3dzKQogCistLSBub24tZGVjaW1h bCBsaXRlcmFscworU0VMRUNUIGludDIgJzBiMTAwMTAxJzsKKyBpbnQyIAorLS0tLS0tCisg ICAzNworKDEgcm93KQorCitTRUxFQ1QgaW50MiAnMG8yNzMnOworIGludDIgCistLS0tLS0K KyAgMTg3CisoMSByb3cpCisKK1NFTEVDVCBpbnQyICcweDQyRic7CisgaW50MiAKKy0tLS0t LQorIDEwNzEKKygxIHJvdykKKworU0VMRUNUIGludDIgJzBiJzsKK0VSUk9SOiAgaW52YWxp ZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgc21hbGxpbnQ6ICIwYiIKK0xJTkUgMTogU0VMRUNU IGludDIgJzBiJzsKKyAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIGludDIgJzBvJzsK K0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgc21hbGxpbnQ6ICIwbyIK K0xJTkUgMTogU0VMRUNUIGludDIgJzBvJzsKKyAgICAgICAgICAgICAgICAgICAgXgorU0VM RUNUIGludDIgJzB4JzsKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUg c21hbGxpbnQ6ICIweCIKK0xJTkUgMTogU0VMRUNUIGludDIgJzB4JzsKKyAgICAgICAgICAg ICAgICAgICAgXgorLS0gY2FzZXMgbmVhciBvdmVyZmxvdworU0VMRUNUIGludDIgJzBiMTEx MTExMTExMTExMTExJzsKKyBpbnQyICAKKy0tLS0tLS0KKyAzMjc2NworKDEgcm93KQorCitT RUxFQ1QgaW50MiAnMGIxMDAwMDAwMDAwMDAwMDAwJzsKK0VSUk9SOiAgdmFsdWUgIjBiMTAw MDAwMDAwMDAwMDAwMCIgaXMgb3V0IG9mIHJhbmdlIGZvciB0eXBlIHNtYWxsaW50CitMSU5F IDE6IFNFTEVDVCBpbnQyICcwYjEwMDAwMDAwMDAwMDAwMDAnOworICAgICAgICAgICAgICAg ICAgICBeCitTRUxFQ1QgaW50MiAnMG83Nzc3Nyc7CisgaW50MiAgCistLS0tLS0tCisgMzI3 NjcKKygxIHJvdykKKworU0VMRUNUIGludDIgJzBvMTAwMDAwJzsKK0VSUk9SOiAgdmFsdWUg IjBvMTAwMDAwIiBpcyBvdXQgb2YgcmFuZ2UgZm9yIHR5cGUgc21hbGxpbnQKK0xJTkUgMTog U0VMRUNUIGludDIgJzBvMTAwMDAwJzsKKyAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNU IGludDIgJzB4N0ZGRic7CisgaW50MiAgCistLS0tLS0tCisgMzI3NjcKKygxIHJvdykKKwor U0VMRUNUIGludDIgJzB4ODAwMCc7CitFUlJPUjogIHZhbHVlICIweDgwMDAiIGlzIG91dCBv ZiByYW5nZSBmb3IgdHlwZSBzbWFsbGludAorTElORSAxOiBTRUxFQ1QgaW50MiAnMHg4MDAw JzsKKyAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIGludDIgJy0wYjEwMDAwMDAwMDAw MDAwMDAnOworICBpbnQyICAKKy0tLS0tLS0tCisgLTMyNzY4CisoMSByb3cpCisKK1NFTEVD VCBpbnQyICctMGIxMDAwMDAwMDAwMDAwMDAxJzsKK0VSUk9SOiAgdmFsdWUgIi0wYjEwMDAw MDAwMDAwMDAwMDEiIGlzIG91dCBvZiByYW5nZSBmb3IgdHlwZSBzbWFsbGludAorTElORSAx OiBTRUxFQ1QgaW50MiAnLTBiMTAwMDAwMDAwMDAwMDAwMSc7CisgICAgICAgICAgICAgICAg ICAgIF4KK1NFTEVDVCBpbnQyICctMG8xMDAwMDAnOworICBpbnQyICAKKy0tLS0tLS0tCisg LTMyNzY4CisoMSByb3cpCisKK1NFTEVDVCBpbnQyICctMG8xMDAwMDEnOworRVJST1I6ICB2 YWx1ZSAiLTBvMTAwMDAxIiBpcyBvdXQgb2YgcmFuZ2UgZm9yIHR5cGUgc21hbGxpbnQKK0xJ TkUgMTogU0VMRUNUIGludDIgJy0wbzEwMDAwMSc7CisgICAgICAgICAgICAgICAgICAgIF4K K1NFTEVDVCBpbnQyICctMHg4MDAwJzsKKyAgaW50MiAgCistLS0tLS0tLQorIC0zMjc2OAor KDEgcm93KQorCitTRUxFQ1QgaW50MiAnLTB4ODAwMSc7CitFUlJPUjogIHZhbHVlICItMHg4 MDAxIiBpcyBvdXQgb2YgcmFuZ2UgZm9yIHR5cGUgc21hbGxpbnQKK0xJTkUgMTogU0VMRUNU IGludDIgJy0weDgwMDEnOworICAgICAgICAgICAgICAgICAgICBeCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2ludDQub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9pbnQ0Lm91dAppbmRleCBmYmNjMGU4ZDllLi5lMDUwMzhhNGE0IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2ludDQub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvaW50NC5vdXQKQEAgLTQzMSwzICs0MzEsOTUgQEAgU0VMRUNU IGxjbSgoLTIxNDc0ODM2NDgpOjppbnQ0LCAxOjppbnQ0KTsgLS0gb3ZlcmZsb3cKIEVSUk9S OiAgaW50ZWdlciBvdXQgb2YgcmFuZ2UKIFNFTEVDVCBsY20oMjE0NzQ4MzY0Nzo6aW50NCwg MjE0NzQ4MzY0Njo6aW50NCk7IC0tIG92ZXJmbG93CiBFUlJPUjogIGludGVnZXIgb3V0IG9m IHJhbmdlCistLSBub24tZGVjaW1hbCBsaXRlcmFscworU0VMRUNUIGludDQgJzBiMTAwMTAx JzsKKyBpbnQ0IAorLS0tLS0tCisgICAzNworKDEgcm93KQorCitTRUxFQ1QgaW50NCAnMG8y NzMnOworIGludDQgCistLS0tLS0KKyAgMTg3CisoMSByb3cpCisKK1NFTEVDVCBpbnQ0ICcw eDQyRic7CisgaW50NCAKKy0tLS0tLQorIDEwNzEKKygxIHJvdykKKworU0VMRUNUIGludDQg JzBiJzsKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZWdlcjog IjBiIgorTElORSAxOiBTRUxFQ1QgaW50NCAnMGInOworICAgICAgICAgICAgICAgICAgICBe CitTRUxFQ1QgaW50NCAnMG8nOworRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3Ig dHlwZSBpbnRlZ2VyOiAiMG8iCitMSU5FIDE6IFNFTEVDVCBpbnQ0ICcwbyc7CisgICAgICAg ICAgICAgICAgICAgIF4KK1NFTEVDVCBpbnQ0ICcweCc7CitFUlJPUjogIGludmFsaWQgaW5w dXQgc3ludGF4IGZvciB0eXBlIGludGVnZXI6ICIweCIKK0xJTkUgMTogU0VMRUNUIGludDQg JzB4JzsKKyAgICAgICAgICAgICAgICAgICAgXgorLS0gY2FzZXMgbmVhciBvdmVyZmxvdwor U0VMRUNUIGludDQgJzBiMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMSc7CisgICAg aW50NCAgICAKKy0tLS0tLS0tLS0tLQorIDIxNDc0ODM2NDcKKygxIHJvdykKKworU0VMRUNU IGludDQgJzBiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnOworRVJST1I6ICB2 YWx1ZSAiMGIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIgaXMgb3V0IG9mIHJh bmdlIGZvciB0eXBlIGludGVnZXIKK0xJTkUgMTogU0VMRUNUIGludDQgJzBiMTAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnOworICAgICAgICAgICAgICAgICAgICBeCitTRUxF Q1QgaW50NCAnMG8xNzc3Nzc3Nzc3Nyc7CisgICAgaW50NCAgICAKKy0tLS0tLS0tLS0tLQor IDIxNDc0ODM2NDcKKygxIHJvdykKKworU0VMRUNUIGludDQgJzBvMjAwMDAwMDAwMDAnOwor RVJST1I6ICB2YWx1ZSAiMG8yMDAwMDAwMDAwMCIgaXMgb3V0IG9mIHJhbmdlIGZvciB0eXBl IGludGVnZXIKK0xJTkUgMTogU0VMRUNUIGludDQgJzBvMjAwMDAwMDAwMDAnOworICAgICAg ICAgICAgICAgICAgICBeCitTRUxFQ1QgaW50NCAnMHg3RkZGRkZGRic7CisgICAgaW50NCAg ICAKKy0tLS0tLS0tLS0tLQorIDIxNDc0ODM2NDcKKygxIHJvdykKKworU0VMRUNUIGludDQg JzB4ODAwMDAwMDAnOworRVJST1I6ICB2YWx1ZSAiMHg4MDAwMDAwMCIgaXMgb3V0IG9mIHJh bmdlIGZvciB0eXBlIGludGVnZXIKK0xJTkUgMTogU0VMRUNUIGludDQgJzB4ODAwMDAwMDAn OworICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgaW50NCAnLTBiMTAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAnOworICAgIGludDQgICAgIAorLS0tLS0tLS0tLS0tLQor IC0yMTQ3NDgzNjQ4CisoMSByb3cpCisKK1NFTEVDVCBpbnQ0ICctMGIxMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMSc7CitFUlJPUjogIHZhbHVlICItMGIxMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMSIgaXMgb3V0IG9mIHJhbmdlIGZvciB0eXBlIGludGVnZXIK K0xJTkUgMTogU0VMRUNUIGludDQgJy0wYjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAxJzsKKyAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIGludDQgJy0wbzIwMDAwMDAw MDAwJzsKKyAgICBpbnQ0ICAgICAKKy0tLS0tLS0tLS0tLS0KKyAtMjE0NzQ4MzY0OAorKDEg cm93KQorCitTRUxFQ1QgaW50NCAnLTBvMjAwMDAwMDAwMDEnOworRVJST1I6ICB2YWx1ZSAi LTBvMjAwMDAwMDAwMDEiIGlzIG91dCBvZiByYW5nZSBmb3IgdHlwZSBpbnRlZ2VyCitMSU5F IDE6IFNFTEVDVCBpbnQ0ICctMG8yMDAwMDAwMDAwMSc7CisgICAgICAgICAgICAgICAgICAg IF4KK1NFTEVDVCBpbnQ0ICctMHg4MDAwMDAwMCc7CisgICAgaW50NCAgICAgCistLS0tLS0t LS0tLS0tCisgLTIxNDc0ODM2NDgKKygxIHJvdykKKworU0VMRUNUIGludDQgJy0weDgwMDAw MDAxJzsKK0VSUk9SOiAgdmFsdWUgIi0weDgwMDAwMDAxIiBpcyBvdXQgb2YgcmFuZ2UgZm9y IHR5cGUgaW50ZWdlcgorTElORSAxOiBTRUxFQ1QgaW50NCAnLTB4ODAwMDAwMDEnOworICAg ICAgICAgICAgICAgICAgICBeCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2ludDgub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbnQ4Lm91dAppbmRl eCAxYWUyM2NmM2Y5Li4yNDRjZWY0OGY1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2ludDgub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvaW50 OC5vdXQKQEAgLTkyNywzICs5MjcsOTUgQEAgU0VMRUNUIGxjbSgoLTkyMjMzNzIwMzY4NTQ3 NzU4MDgpOjppbnQ4LCAxOjppbnQ4KTsgLS0gb3ZlcmZsb3cKIEVSUk9SOiAgYmlnaW50IG91 dCBvZiByYW5nZQogU0VMRUNUIGxjbSg5MjIzMzcyMDM2ODU0Nzc1ODA3OjppbnQ4LCA5MjIz MzcyMDM2ODU0Nzc1ODA2OjppbnQ4KTsgLS0gb3ZlcmZsb3cKIEVSUk9SOiAgYmlnaW50IG91 dCBvZiByYW5nZQorLS0gbm9uLWRlY2ltYWwgbGl0ZXJhbHMKK1NFTEVDVCBpbnQ4ICcwYjEw MDEwMSc7CisgaW50OCAKKy0tLS0tLQorICAgMzcKKygxIHJvdykKKworU0VMRUNUIGludDgg JzBvMjczJzsKKyBpbnQ4IAorLS0tLS0tCisgIDE4NworKDEgcm93KQorCitTRUxFQ1QgaW50 OCAnMHg0MkYnOworIGludDggCistLS0tLS0KKyAxMDcxCisoMSByb3cpCisKK1NFTEVDVCBp bnQ4ICcwYic7CitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZvciB0eXBlIGJpZ2lu dDogIjBiIgorTElORSAxOiBTRUxFQ1QgaW50OCAnMGInOworICAgICAgICAgICAgICAgICAg ICBeCitTRUxFQ1QgaW50OCAnMG8nOworRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBm b3IgdHlwZSBiaWdpbnQ6ICIwbyIKK0xJTkUgMTogU0VMRUNUIGludDggJzBvJzsKKyAgICAg ICAgICAgICAgICAgICAgXgorU0VMRUNUIGludDggJzB4JzsKK0VSUk9SOiAgaW52YWxpZCBp bnB1dCBzeW50YXggZm9yIHR5cGUgYmlnaW50OiAiMHgiCitMSU5FIDE6IFNFTEVDVCBpbnQ4 ICcweCc7CisgICAgICAgICAgICAgICAgICAgIF4KKy0tIGNhc2VzIG5lYXIgb3ZlcmZsb3cK K1NFTEVDVCBpbnQ4ICcwYjExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMSc7CisgICAgICAgIGludDggICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIDkyMjMzNzIwMzY4NTQ3NzU4MDcKKygxIHJvdykKKwor U0VMRUNUIGludDggJzBiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7CitFUlJPUjogIHZhbHVlICIwYjEwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAiIGlzIG91dCBvZiByYW5nZSBmb3IgdHlwZSBiaWdpbnQKK0xJTkUgMTogU0VMRUNUIGlu dDggJzBiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4u CisgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBpbnQ4ICcwbzc3Nzc3Nzc3Nzc3Nzc3 Nzc3Nzc3Nyc7CisgICAgICAgIGludDggICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIDkyMjMzNzIwMzY4NTQ3NzU4MDcKKygxIHJvdykKKworU0VMRUNUIGludDggJzBvMTAw MDAwMDAwMDAwMDAwMDAwMDAwMCc7CitFUlJPUjogIHZhbHVlICIwbzEwMDAwMDAwMDAwMDAw MDAwMDAwMDAiIGlzIG91dCBvZiByYW5nZSBmb3IgdHlwZSBiaWdpbnQKK0xJTkUgMTogU0VM RUNUIGludDggJzBvMTAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7CisgICAgICAgICAgICAgICAg ICAgIF4KK1NFTEVDVCBpbnQ4ICcweDdGRkZGRkZGRkZGRkZGRkYnOworICAgICAgICBpbnQ4 ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA5MjIzMzcyMDM2ODU0Nzc1ODA3 CisoMSByb3cpCisKK1NFTEVDVCBpbnQ4ICcweDgwMDAwMDAwMDAwMDAwMDAnOworRVJST1I6 ICB2YWx1ZSAiMHg4MDAwMDAwMDAwMDAwMDAwIiBpcyBvdXQgb2YgcmFuZ2UgZm9yIHR5cGUg YmlnaW50CitMSU5FIDE6IFNFTEVDVCBpbnQ4ICcweDgwMDAwMDAwMDAwMDAwMDAnOworICAg ICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgaW50OCAnLTBiMTAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7CisgICAg ICAgICBpbnQ4ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgLTkyMjMzNzIw MzY4NTQ3NzU4MDgKKygxIHJvdykKKworU0VMRUNUIGludDggJy0wYjEwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEnOwor RVJST1I6ICB2YWx1ZSAiLTBiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMSIgaXMgb3V0IG9mIHJhbmdlIGZvciB0eXBl IGJpZ2ludAorTElORSAxOiBTRUxFQ1QgaW50OCAnLTBiMTAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLi4KKyAgICAgICAgICAgICAgICAgICAgXgorU0VM RUNUIGludDggJy0wbzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAnOworICAgICAgICAgaW50OCAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIC05MjIzMzcyMDM2ODU0Nzc1ODA4 CisoMSByb3cpCisKK1NFTEVDVCBpbnQ4ICctMG8xMDAwMDAwMDAwMDAwMDAwMDAwMDAxJzsK K0VSUk9SOiAgdmFsdWUgIi0wbzEwMDAwMDAwMDAwMDAwMDAwMDAwMDEiIGlzIG91dCBvZiBy YW5nZSBmb3IgdHlwZSBiaWdpbnQKK0xJTkUgMTogU0VMRUNUIGludDggJy0wbzEwMDAwMDAw MDAwMDAwMDAwMDAwMDEnOworICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgaW50OCAn LTB4ODAwMDAwMDAwMDAwMDAwMCc7CisgICAgICAgICBpbnQ4ICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgLTkyMjMzNzIwMzY4NTQ3NzU4MDgKKygxIHJvdykKKworU0VM RUNUIGludDggJy0weDgwMDAwMDAwMDAwMDAwMDEnOworRVJST1I6ICB2YWx1ZSAiLTB4ODAw MDAwMDAwMDAwMDAwMSIgaXMgb3V0IG9mIHJhbmdlIGZvciB0eXBlIGJpZ2ludAorTElORSAx OiBTRUxFQ1QgaW50OCAnLTB4ODAwMDAwMDAwMDAwMDAwMSc7CisgICAgICAgICAgICAgICAg ICAgIF4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVtZXJvbG9n eS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251bWVyb2xvZ3kub3V0CmluZGV4 IDc3ZDQ4NDM0MTcuLjE1Y2Q2YjE2NzIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvbnVtZXJvbG9neS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9udW1lcm9sb2d5Lm91dApAQCAtMywxNCArMywxNjcgQEAKIC0tIFRlc3QgdmFyaW91cyBj b21iaW5hdGlvbnMgb2YgbnVtZXJpYyB0eXBlcyBhbmQgZnVuY3Rpb25zLgogLS0KIC0tCi0t LSBUcmFpbGluZyBqdW5rIGluIG51bWVyaWMgbGl0ZXJhbHMKKy0tIG51bWVyaWMgbGl0ZXJh bHMKIC0tCitTRUxFQ1QgMGIxMDAxMDE7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgICAg ICAgMzcKKygxIHJvdykKKworU0VMRUNUIDBvMjczOworID9jb2x1bW4/IAorLS0tLS0tLS0t LQorICAgICAgMTg3CisoMSByb3cpCisKK1NFTEVDVCAweDQyRjsKKyA/Y29sdW1uPyAKKy0t LS0tLS0tLS0KKyAgICAgMTA3MQorKDEgcm93KQorCistLSBjYXNlcyBuZWFyIGludDQgb3Zl cmZsb3cKK1NFTEVDVCAwYjExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTE7CisgID9j b2x1bW4/ICAKKy0tLS0tLS0tLS0tLQorIDIxNDc0ODM2NDcKKygxIHJvdykKKworU0VMRUNU IDBiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA7CisgID9jb2x1bW4/ICAKKy0t LS0tLS0tLS0tLQorIDIxNDc0ODM2NDgKKygxIHJvdykKKworU0VMRUNUIDBvMTc3Nzc3Nzc3 Nzc7CisgID9jb2x1bW4/ICAKKy0tLS0tLS0tLS0tLQorIDIxNDc0ODM2NDcKKygxIHJvdykK KworU0VMRUNUIDBvMjAwMDAwMDAwMDA7CisgID9jb2x1bW4/ICAKKy0tLS0tLS0tLS0tLQor IDIxNDc0ODM2NDgKKygxIHJvdykKKworU0VMRUNUIDB4N0ZGRkZGRkY7CisgID9jb2x1bW4/ ICAKKy0tLS0tLS0tLS0tLQorIDIxNDc0ODM2NDcKKygxIHJvdykKKworU0VMRUNUIDB4ODAw MDAwMDA7CisgID9jb2x1bW4/ICAKKy0tLS0tLS0tLS0tLQorIDIxNDc0ODM2NDgKKygxIHJv dykKKworU0VMRUNUIC0wYjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOworICA/ Y29sdW1uPyAgIAorLS0tLS0tLS0tLS0tLQorIC0yMTQ3NDgzNjQ4CisoMSByb3cpCisKK1NF TEVDVCAtMGIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTsKKyAgP2NvbHVtbj8g ICAKKy0tLS0tLS0tLS0tLS0KKyAtMjE0NzQ4MzY0OQorKDEgcm93KQorCitTRUxFQ1QgLTBv MjAwMDAwMDAwMDA7CisgID9jb2x1bW4/ICAgCistLS0tLS0tLS0tLS0tCisgLTIxNDc0ODM2 NDgKKygxIHJvdykKKworU0VMRUNUIC0wbzIwMDAwMDAwMDAxOworICA/Y29sdW1uPyAgIAor LS0tLS0tLS0tLS0tLQorIC0yMTQ3NDgzNjQ5CisoMSByb3cpCisKK1NFTEVDVCAtMHg4MDAw MDAwMDsKKyAgP2NvbHVtbj8gICAKKy0tLS0tLS0tLS0tLS0KKyAtMjE0NzQ4MzY0OAorKDEg cm93KQorCitTRUxFQ1QgLTB4ODAwMDAwMDE7CisgID9jb2x1bW4/ICAgCistLS0tLS0tLS0t LS0tCisgLTIxNDc0ODM2NDkKKygxIHJvdykKKworLS0gY2FzZXMgbmVhciBpbnQ4IG92ZXJm bG93CitTRUxFQ1QgMGIxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTE7CisgICAgICA/Y29sdW1uPyAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIDkyMjMzNzIwMzY4NTQ3NzU4MDcKKygxIHJvdykKKworU0VM RUNUIDBiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDsKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5 cGUgbnVtZXJpYzogIjBiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIKK0xJTkUgMTogU0VMRUNUIDBiMTAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4uCisgICAgICAg ICAgICAgICBeCitTRUxFQ1QgMG83Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc7CisgICAgICA/Y29s dW1uPyAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDkyMjMzNzIwMzY4NTQ3NzU4 MDcKKygxIHJvdykKKworU0VMRUNUIDBvMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDsKK0VSUk9S OiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgbnVtZXJpYzogIjBvMTAwMDAwMDAw MDAwMDAwMDAwMDAwMCIKK0xJTkUgMTogU0VMRUNUIDBvMTAwMDAwMDAwMDAwMDAwMDAwMDAw MDsKKyAgICAgICAgICAgICAgIF4KK1NFTEVDVCAweDdGRkZGRkZGRkZGRkZGRkY7CisgICAg ICA/Y29sdW1uPyAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDkyMjMzNzIwMzY4 NTQ3NzU4MDcKKygxIHJvdykKKworU0VMRUNUIDB4ODAwMDAwMDAwMDAwMDAwMDsKK0VSUk9S OiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgbnVtZXJpYzogIjB4ODAwMDAwMDAw MDAwMDAwMCIKK0xJTkUgMTogU0VMRUNUIDB4ODAwMDAwMDAwMDAwMDAwMDsKKyAgICAgICAg ICAgICAgIF4KK1NFTEVDVCAtMGIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOworICAgICAgID9jb2x1bW4/ICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIC05MjIzMzcyMDM2ODU0Nzc1ODA4CisoMSBy b3cpCisKK1NFTEVDVCAtMGIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxOworRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5 bnRheCBmb3IgdHlwZSBudW1lcmljOiAiLTBiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMSIKK0xJTkUgMTogU0VMRUNU IC0wYjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw Li4uCisgICAgICAgICAgICAgICBeCitTRUxFQ1QgLTBvMTAwMDAwMDAwMDAwMDAwMDAwMDAw MDsKKyAgICAgICA/Y29sdW1uPyAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAt OTIyMzM3MjAzNjg1NDc3NTgwOAorKDEgcm93KQorCitTRUxFQ1QgLTBvMTAwMDAwMDAwMDAw MDAwMDAwMDAwMTsKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgbnVt ZXJpYzogIi0wbzEwMDAwMDAwMDAwMDAwMDAwMDAwMDEiCitMSU5FIDE6IFNFTEVDVCAtMG8x MDAwMDAwMDAwMDAwMDAwMDAwMDAxOworICAgICAgICAgICAgICAgXgorU0VMRUNUIC0weDgw MDAwMDAwMDAwMDAwMDA7CisgICAgICAgP2NvbHVtbj8gICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgLTkyMjMzNzIwMzY4NTQ3NzU4MDgKKygxIHJvdykKKworU0VMRUNUIC0w eDgwMDAwMDAwMDAwMDAwMDE7CitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZvciB0 eXBlIG51bWVyaWM6ICItMHg4MDAwMDAwMDAwMDAwMDAxIgorTElORSAxOiBTRUxFQ1QgLTB4 ODAwMDAwMDAwMDAwMDAwMTsKKyAgICAgICAgICAgICAgIF4KKy0tIGVycm9yIGNhc2VzCiBT RUxFQ1QgMTIzYWJjOwogRVJST1I6ICB0cmFpbGluZyBqdW5rIGFmdGVyIG51bWVyaWMgbGl0 ZXJhbCBhdCBvciBuZWFyICIxMjNhIgogTElORSAxOiBTRUxFQ1QgMTIzYWJjOwogICAgICAg ICAgICAgICAgXgogU0VMRUNUIDB4MG87Ci1FUlJPUjogIHRyYWlsaW5nIGp1bmsgYWZ0ZXIg bnVtZXJpYyBsaXRlcmFsIGF0IG9yIG5lYXIgIjB4IgorRVJST1I6ICB0cmFpbGluZyBqdW5r IGFmdGVyIG51bWVyaWMgbGl0ZXJhbCBhdCBvciBuZWFyICIweDBvIgogTElORSAxOiBTRUxF Q1QgMHgwbzsKICAgICAgICAgICAgICAgIF4KIFNFTEVDVCAxXzJfMzsKQEAgLTQ1LDYgKzE5 OCw0MiBAQCBQUkVQQVJFIHAxIEFTIFNFTEVDVCAkMWE7CiBFUlJPUjogIHRyYWlsaW5nIGp1 bmsgYWZ0ZXIgcGFyYW1ldGVyIGF0IG9yIG5lYXIgIiQxYSIKIExJTkUgMTogUFJFUEFSRSBw MSBBUyBTRUxFQ1QgJDFhOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxF Q1QgMGI7CitFUlJPUjogIGludmFsaWQgYmluYXJ5IGludGVnZXIgYXQgb3IgbmVhciAiMGIi CitMSU5FIDE6IFNFTEVDVCAwYjsKKyAgICAgICAgICAgICAgIF4KK1NFTEVDVCAxYjsKK0VS Uk9SOiAgdHJhaWxpbmcganVuayBhZnRlciBudW1lcmljIGxpdGVyYWwgYXQgb3IgbmVhciAi MWIiCitMSU5FIDE6IFNFTEVDVCAxYjsKKyAgICAgICAgICAgICAgIF4KK1NFTEVDVCAwYjB4 OworRVJST1I6ICB0cmFpbGluZyBqdW5rIGFmdGVyIG51bWVyaWMgbGl0ZXJhbCBhdCBvciBu ZWFyICIwYjB4IgorTElORSAxOiBTRUxFQ1QgMGIweDsKKyAgICAgICAgICAgICAgIF4KK1NF TEVDVCAwbzsKK0VSUk9SOiAgaW52YWxpZCBvY3RhbCBpbnRlZ2VyIGF0IG9yIG5lYXIgIjBv IgorTElORSAxOiBTRUxFQ1QgMG87CisgICAgICAgICAgICAgICBeCitTRUxFQ1QgMW87CitF UlJPUjogIHRyYWlsaW5nIGp1bmsgYWZ0ZXIgbnVtZXJpYyBsaXRlcmFsIGF0IG9yIG5lYXIg IjFvIgorTElORSAxOiBTRUxFQ1QgMW87CisgICAgICAgICAgICAgICBeCitTRUxFQ1QgMG8w eDsKK0VSUk9SOiAgdHJhaWxpbmcganVuayBhZnRlciBudW1lcmljIGxpdGVyYWwgYXQgb3Ig bmVhciAiMG8weCIKK0xJTkUgMTogU0VMRUNUIDBvMHg7CisgICAgICAgICAgICAgICBeCitT RUxFQ1QgMHg7CitFUlJPUjogIGludmFsaWQgaGV4YWRlY2ltYWwgaW50ZWdlciBhdCBvciBu ZWFyICIweCIKK0xJTkUgMTogU0VMRUNUIDB4OworICAgICAgICAgICAgICAgXgorU0VMRUNU IDF4OworRVJST1I6ICB0cmFpbGluZyBqdW5rIGFmdGVyIG51bWVyaWMgbGl0ZXJhbCBhdCBv ciBuZWFyICIxeCIKK0xJTkUgMTogU0VMRUNUIDF4OworICAgICAgICAgICAgICAgXgorU0VM RUNUIDB4MHk7CitFUlJPUjogIHRyYWlsaW5nIGp1bmsgYWZ0ZXIgbnVtZXJpYyBsaXRlcmFs IGF0IG9yIG5lYXIgIjB4MHkiCitMSU5FIDE6IFNFTEVDVCAweDB5OworICAgICAgICAgICAg ICAgXgogLS0KIC0tIFRlc3QgaW1wbGljaXQgdHlwZSBjb252ZXJzaW9ucwogLS0gVGhpcyBm YWlscyBmb3IgUG9zdGdyZXMgdjYuMSAoYW5kIGVhcmxpZXI/KQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvaW50Mi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9pbnQy LnNxbAppbmRleCBlYTI5MDY2Yjc4Li5jOTdmNDgzMGUxIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9pbnQyLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9pbnQy LnNxbApAQCAtMTA0LDMgKzEwNCwyOSBAQAogICAgICAgICAgICAgICgwLjU6Om51bWVyaWMp LAogICAgICAgICAgICAgICgxLjU6Om51bWVyaWMpLAogICAgICAgICAgICAgICgyLjU6Om51 bWVyaWMpKSB0KHgpOworCisKKy0tIG5vbi1kZWNpbWFsIGxpdGVyYWxzCisKK1NFTEVDVCBp bnQyICcwYjEwMDEwMSc7CitTRUxFQ1QgaW50MiAnMG8yNzMnOworU0VMRUNUIGludDIgJzB4 NDJGJzsKKworU0VMRUNUIGludDIgJzBiJzsKK1NFTEVDVCBpbnQyICcwbyc7CitTRUxFQ1Qg aW50MiAnMHgnOworCistLSBjYXNlcyBuZWFyIG92ZXJmbG93CitTRUxFQ1QgaW50MiAnMGIx MTExMTExMTExMTExMTEnOworU0VMRUNUIGludDIgJzBiMTAwMDAwMDAwMDAwMDAwMCc7CitT RUxFQ1QgaW50MiAnMG83Nzc3Nyc7CitTRUxFQ1QgaW50MiAnMG8xMDAwMDAnOworU0VMRUNU IGludDIgJzB4N0ZGRic7CitTRUxFQ1QgaW50MiAnMHg4MDAwJzsKKworU0VMRUNUIGludDIg Jy0wYjEwMDAwMDAwMDAwMDAwMDAnOworU0VMRUNUIGludDIgJy0wYjEwMDAwMDAwMDAwMDAw MDEnOworU0VMRUNUIGludDIgJy0wbzEwMDAwMCc7CitTRUxFQ1QgaW50MiAnLTBvMTAwMDAx JzsKK1NFTEVDVCBpbnQyICctMHg4MDAwJzsKK1NFTEVDVCBpbnQyICctMHg4MDAxJzsKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2ludDQuc3FsIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvaW50NC5zcWwKaW5kZXggZjE5MDc3ZjNkYS4uOGRmYWFhYzg4YSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvaW50NC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvaW50NC5zcWwKQEAgLTE2NCwzICsxNjQsMjkgQEAKIAogU0VMRUNUIGxjbSgo LTIxNDc0ODM2NDgpOjppbnQ0LCAxOjppbnQ0KTsgLS0gb3ZlcmZsb3cKIFNFTEVDVCBsY20o MjE0NzQ4MzY0Nzo6aW50NCwgMjE0NzQ4MzY0Njo6aW50NCk7IC0tIG92ZXJmbG93CisKKwor LS0gbm9uLWRlY2ltYWwgbGl0ZXJhbHMKKworU0VMRUNUIGludDQgJzBiMTAwMTAxJzsKK1NF TEVDVCBpbnQ0ICcwbzI3Myc7CitTRUxFQ1QgaW50NCAnMHg0MkYnOworCitTRUxFQ1QgaW50 NCAnMGInOworU0VMRUNUIGludDQgJzBvJzsKK1NFTEVDVCBpbnQ0ICcweCc7CisKKy0tIGNh c2VzIG5lYXIgb3ZlcmZsb3cKK1NFTEVDVCBpbnQ0ICcwYjExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTEnOworU0VMRUNUIGludDQgJzBiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAnOworU0VMRUNUIGludDQgJzBvMTc3Nzc3Nzc3NzcnOworU0VMRUNUIGludDQg JzBvMjAwMDAwMDAwMDAnOworU0VMRUNUIGludDQgJzB4N0ZGRkZGRkYnOworU0VMRUNUIGlu dDQgJzB4ODAwMDAwMDAnOworCitTRUxFQ1QgaW50NCAnLTBiMTAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAnOworU0VMRUNUIGludDQgJy0wYjEwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAxJzsKK1NFTEVDVCBpbnQ0ICctMG8yMDAwMDAwMDAwMCc7CitTRUxFQ1Qg aW50NCAnLTBvMjAwMDAwMDAwMDEnOworU0VMRUNUIGludDQgJy0weDgwMDAwMDAwJzsKK1NF TEVDVCBpbnQ0ICctMHg4MDAwMDAwMSc7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9pbnQ4LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2ludDguc3FsCmluZGV4IDM4 Yjc3MTk2NGQuLmQ2ZTZkNzcwZDEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2ludDguc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2ludDguc3FsCkBAIC0yNDUs MyArMjQ1LDI5IEBACiAKIFNFTEVDVCBsY20oKC05MjIzMzcyMDM2ODU0Nzc1ODA4KTo6aW50 OCwgMTo6aW50OCk7IC0tIG92ZXJmbG93CiBTRUxFQ1QgbGNtKDkyMjMzNzIwMzY4NTQ3NzU4 MDc6OmludDgsIDkyMjMzNzIwMzY4NTQ3NzU4MDY6OmludDgpOyAtLSBvdmVyZmxvdworCisK Ky0tIG5vbi1kZWNpbWFsIGxpdGVyYWxzCisKK1NFTEVDVCBpbnQ4ICcwYjEwMDEwMSc7CitT RUxFQ1QgaW50OCAnMG8yNzMnOworU0VMRUNUIGludDggJzB4NDJGJzsKKworU0VMRUNUIGlu dDggJzBiJzsKK1NFTEVDVCBpbnQ4ICcwbyc7CitTRUxFQ1QgaW50OCAnMHgnOworCistLSBj YXNlcyBuZWFyIG92ZXJmbG93CitTRUxFQ1QgaW50OCAnMGIxMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEnOworU0VMRUNU IGludDggJzBiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMCc7CitTRUxFQ1QgaW50OCAnMG83Nzc3Nzc3Nzc3Nzc3Nzc3 Nzc3NzcnOworU0VMRUNUIGludDggJzBvMTAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7CitTRUxF Q1QgaW50OCAnMHg3RkZGRkZGRkZGRkZGRkZGJzsKK1NFTEVDVCBpbnQ4ICcweDgwMDAwMDAw MDAwMDAwMDAnOworCitTRUxFQ1QgaW50OCAnLTBiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7CitTRUxFQ1QgaW50 OCAnLTBiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMSc7CitTRUxFQ1QgaW50OCAnLTBvMTAwMDAwMDAwMDAwMDAwMDAw MDAwMCc7CitTRUxFQ1QgaW50OCAnLTBvMTAwMDAwMDAwMDAwMDAwMDAwMDAwMSc7CitTRUxF Q1QgaW50OCAnLTB4ODAwMDAwMDAwMDAwMDAwMCc7CitTRUxFQ1QgaW50OCAnLTB4ODAwMDAw MDAwMDAwMDAwMSc7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9udW1lcm9s b2d5LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL251bWVyb2xvZ3kuc3FsCmluZGV4IGJl N2Q2ZGZlMGMuLjMxMGQ5ZTU3NjYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L251bWVyb2xvZ3kuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL251bWVyb2xvZ3ku c3FsCkBAIC0zLDEwICszLDQ2IEBACiAtLSBUZXN0IHZhcmlvdXMgY29tYmluYXRpb25zIG9m IG51bWVyaWMgdHlwZXMgYW5kIGZ1bmN0aW9ucy4KIC0tCiAKKwogLS0KLS0tIFRyYWlsaW5n IGp1bmsgaW4gbnVtZXJpYyBsaXRlcmFscworLS0gbnVtZXJpYyBsaXRlcmFscwogLS0KIAor U0VMRUNUIDBiMTAwMTAxOworU0VMRUNUIDBvMjczOworU0VMRUNUIDB4NDJGOworCistLSBj YXNlcyBuZWFyIGludDQgb3ZlcmZsb3cKK1NFTEVDVCAwYjExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTE7CitTRUxFQ1QgMGIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDsKK1NFTEVDVCAwbzE3Nzc3Nzc3Nzc3OworU0VMRUNUIDBvMjAwMDAwMDAwMDA7CitTRUxF Q1QgMHg3RkZGRkZGRjsKK1NFTEVDVCAweDgwMDAwMDAwOworCitTRUxFQ1QgLTBiMTAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA7CitTRUxFQ1QgLTBiMTAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDE7CitTRUxFQ1QgLTBvMjAwMDAwMDAwMDA7CitTRUxFQ1QgLTBv MjAwMDAwMDAwMDE7CitTRUxFQ1QgLTB4ODAwMDAwMDA7CitTRUxFQ1QgLTB4ODAwMDAwMDE7 CisKKy0tIGNhc2VzIG5lYXIgaW50OCBvdmVyZmxvdworU0VMRUNUIDBiMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExOwor U0VMRUNUIDBiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDsKK1NFTEVDVCAwbzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzsK K1NFTEVDVCAwbzEwMDAwMDAwMDAwMDAwMDAwMDAwMDA7CitTRUxFQ1QgMHg3RkZGRkZGRkZG RkZGRkZGOworU0VMRUNUIDB4ODAwMDAwMDAwMDAwMDAwMDsKKworU0VMRUNUIC0wYjEwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDA7CitTRUxFQ1QgLTBiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTsKK1NFTEVDVCAtMG8xMDAwMDAwMDAwMDAw MDAwMDAwMDAwOworU0VMRUNUIC0wbzEwMDAwMDAwMDAwMDAwMDAwMDAwMDE7CitTRUxFQ1Qg LTB4ODAwMDAwMDAwMDAwMDAwMDsKK1NFTEVDVCAtMHg4MDAwMDAwMDAwMDAwMDAxOworCist LSBlcnJvciBjYXNlcwogU0VMRUNUIDEyM2FiYzsKIFNFTEVDVCAweDBvOwogU0VMRUNUIDFf Ml8zOwpAQCAtMTgsNiArNTQsMTkgQEAKIFNFTEVDVCAwLjBlK2E7CiBQUkVQQVJFIHAxIEFT IFNFTEVDVCAkMWE7CiAKK1NFTEVDVCAwYjsKK1NFTEVDVCAxYjsKK1NFTEVDVCAwYjB4Owor CitTRUxFQ1QgMG87CitTRUxFQ1QgMW87CitTRUxFQ1QgMG8weDsKKworU0VMRUNUIDB4Owor U0VMRUNUIDF4OworU0VMRUNUIDB4MHk7CisKKwogLS0KIC0tIFRlc3QgaW1wbGljaXQgdHlw ZSBjb252ZXJzaW9ucwogLS0gVGhpcyBmYWlscyBmb3IgUG9zdGdyZXMgdjYuMSAoYW5kIGVh cmxpZXI/KQoKYmFzZS1jb21taXQ6IDRiM2UzNzk5MzI1NGVkMDk4MjE5ZTYyY2VmZmIxYjMy ZmFjMzg4Y2IKLS0gCjIuMzguMQoK --------------KFSQ520i0k0kgnjZU41afrqh--