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 1ojEAU-0002tp-FC for pgsql-hackers@arkaria.postgresql.org; Fri, 14 Oct 2022 06:27:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1ojEAS-0003GH-W5 for pgsql-hackers@arkaria.postgresql.org; Fri, 14 Oct 2022 06:27:37 +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 1ojEAS-0003G8-7b for pgsql-hackers@lists.postgresql.org; Fri, 14 Oct 2022 06:27:36 +0000 Received: from wout3-smtp.messagingengine.com ([64.147.123.19]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ojEAE-0001lu-Sh for pgsql-hackers@postgresql.org; Fri, 14 Oct 2022 06:27:35 +0000 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.west.internal (Postfix) with ESMTP id BCB013200A15 for ; Fri, 14 Oct 2022 02:27:19 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Fri, 14 Oct 2022 02:27:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=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= fm3; t=1665728839; x=1665815239; bh=1mNHBtNbPqP1wnHDcmVURI8WxkE5 rcNSUfRnOhnMckA=; b=WL525oe4HBUJWHVjrvMKkM3l1IdVdWtTitw9LOX8zt3H kP9ZKEk9k178HJjyWdOw3RAHSx+1fIMM5Kji2VsS1KjM1fq6Jl/GhsxYfME9LdfD wVWF2lIsTsbxBfutM9y4EfmTTHb4ngM+6RjuAGBHvTnKmQpri9IIuOakvIPtRhhn cNUsBMwnf5OntuYbbGtYY5zVarlM602lVCYtjEI7/ShLt0widzraSp4Hzohyqw+c aK9qxAAsxFBGjH3R3Ib4vXXt2BrHrOvyYUxm+O4gnIDgL7FgAce2v+ZWnp7bJiK/ TMswpsu6c8iHRxexlXx9pqz9uQ4iuT1VFY9Lkczr6Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrfeekuddguddtlecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurheptgfkffggfgfuhffvfhgjsehmtd erredtfeejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghr rdgvihhsvghnthhrrghuthesvghnthgvrhhprhhishgvuggsrdgtohhmqeenucggtffrrg htthgvrhhnpeekteetfeehvefhvdeltdefgeeluedtkeekkeevieefueffveejueejheff jeeijeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe hpvghtvghrrdgvihhsvghnthhrrghuthesvghnthgvrhhprhhishgvuggsrdgtohhm X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Fri, 14 Oct 2022 02:27:17 -0400 (EDT) Content-Type: multipart/mixed; boundary="------------HFQTtoftmxtSEYcroP4J1iNc" Message-ID: Date: Fri, 14 Oct 2022 08:27:15 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.3.1 Subject: Re: Transparent column encryption Content-Language: en-US From: Peter Eisentraut To: pgsql-hackers References: <89157929-c2b6-817b-6025-8e4b2d89d88f@enterprisedb.com> <48a9f2c2-4a57-27d8-7c53-16a23a01014e@enterprisedb.com> <79f08a39-a7da-5157-cef4-378fb60c18f8@enterprisedb.com> <258c5064-437e-f41e-7537-5e8c343c33cc@enterprisedb.com> <6bd99fea-3298-854d-d37f-554151342f36@enterprisedb.com> <963aa100-7e78-3463-0645-700eaaa325f2@enterprisedb.com> <06830254-6d87-86b2-0280-bf2eee7736a5@enterprisedb.com> In-Reply-To: <06830254-6d87-86b2-0280-bf2eee7736a5@enterprisedb.com> 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. --------------HFQTtoftmxtSEYcroP4J1iNc Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Here is an updated version with the tests on Windows working again, and some typos fixed. On 27.09.22 15:51, Peter Eisentraut wrote: > Updated version with meson build system support added (for added files > and new tests). > > On 21.09.22 23:37, Peter Eisentraut wrote: >> New version with some merge conflicts resolved, and I have worked to >> resolve several "TODO" items that I had noted in the code. >> >> On 13.09.22 10:27, Peter Eisentraut wrote: >>> Here is an updated patch that resolves some merge conflicts; no >>> functionality changes over v6. >>> >>> On 30.08.22 13:35, Peter Eisentraut wrote: >>>> Here is an updated patch. >>>> >>>> I mainly spent time on adding a full set of DDL commands for the >>>> keys. This made the patch very bulky now, but there is not really >>>> anything surprising in there.  It probably needs another check of >>>> permission handling etc., but it's got everything there to try it >>>> out.  Along with the DDL commands, the pg_dump side is now fully >>>> implemented. >>>> >>>> Secondly, I isolated the protocol changes into a protocol extension >>>> with the name _pq_.column_encryption.  So by default there are no >>>> protocol changes and this feature is disabled.  AFAICT, we haven't >>>> actually ever used the _pq_ protocol extension mechanism, so it >>>> would be good to review whether this was done here in the intended way. >>>> >>>> At this point, the patch is sort of feature complete, meaning it has >>>> all the concepts, commands, and interfaces that I had in mind.  I >>>> have a long list of things to recheck and tighten up, based on >>>> earlier feedback and some things I found along the way.  But I don't >>>> currently plan any more major architectural or design changes, >>>> pending feedback.  (Also, the patch is now very big, so anything >>>> additional might be better for a future separate patch.) --------------HFQTtoftmxtSEYcroP4J1iNc Content-Type: text/plain; charset=UTF-8; name="v10-0001-Transparent-column-encryption.patch" Content-Disposition: attachment; filename="v10-0001-Transparent-column-encryption.patch" Content-Transfer-Encoding: base64 RnJvbSA4YTdiZjk2NTdhNjVhODQwYTJmYzlhMGU2YTYwNDM5OTM0NGM4OWQ5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogRnJpLCAxNCBPY3QgMjAyMiAwODoyMDo1NSArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjEwXSBUcmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbgoKVGhpcyBmZWF0 dXJlIGVuYWJsZXMgdGhlIGF1dG9tYXRpYywgdHJhbnNwYXJlbnQgZW5jcnlwdGlvbiBhbmQK ZGVjcnlwdGlvbiBvZiBwYXJ0aWN1bGFyIGNvbHVtbnMgaW4gdGhlIGNsaWVudC4gIFRoZSBk YXRhIGZvciB0aG9zZQpjb2x1bW5zIHRoZW4gb25seSBldmVyIGFwcGVhcnMgaW4gY2lwaGVy dGV4dCBvbiB0aGUgc2VydmVyLCBzbyBpdCBpcwpwcm90ZWN0ZWQgZnJvbSBEQkFzLCBzeXNh ZG1pbnMsIGNsb3VkIG9wZXJhdG9ycywgZXRjLiBhcyB3ZWxsIGFzCmFjY2lkZW50YWwgbGVh a2FnZSB0byBzZXJ2ZXIgbG9ncywgZmlsZS1zeXN0ZW0gYmFja3VwcywgZXRjLiAgVGhlCmNh bm9uaWNhbCB1c2UgY2FzZSBmb3IgdGhpcyBmZWF0dXJlIGlzIHN0b3JpbmcgY3JlZGl0IGNh cmQgbnVtYmVycwplbmNyeXB0ZWQsIGluIGFjY29yZGFuY2Ugd2l0aCBQQ0kgRFNTLCBhcyB3 ZWxsIGFzIHNpbWlsYXIgc2l0dWF0aW9ucwppbnZvbHZpbmcgc29jaWFsIHNlY3VyaXR5IG51 bWJlcnMgZXRjLiAgT25lIGNhbid0IGRvIGFueSBjb21wdXRhdGlvbnMKd2l0aCBlbmNyeXB0 ZWQgdmFsdWVzIG9uIHRoZSBzZXJ2ZXIsIGJ1dCBmb3IgdGhlc2UgdXNlIGNhc2VzLCB0aGF0 IGlzCm5vdCBuZWNlc3NhcnkuICBUaGlzIGZlYXR1cmUgZG9lcyBzdXBwb3J0IGRldGVybWlu aXN0aWMgZW5jcnlwdGlvbiBhcwphbiBhbHRlcm5hdGl2ZSB0byB0aGUgZGVmYXVsdCByYW5k b21pemVkIGVuY3J5cHRpb24sIHNvIGluIHRoYXQgbW9kZQpvbmUgY2FuIGRvIGVxdWFsaXR5 IGxvb2t1cHMsIGF0IHRoZSBjb3N0IG9mIHNvbWUgc2VjdXJpdHkuCgpUaGlzIGZ1bmN0aW9u YWxpdHkgYWxzbyBleGlzdHMgaW4gb3RoZXIgZGF0YWJhc2UgcHJvZHVjdHMsIGFuZCB0aGUK b3ZlcmFsbCBjb25jZXB0cyB3ZXJlIG1vc3RseSBhZG9wdGVkIGZyb20gdGhlcmUuCgooTm90 ZTogVGhpcyBmZWF0dXJlIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggYW55IG9uLWRpc2sgZW5j cnlwdGlvbgpmZWF0dXJlLiAgQm90aCBjYW4gZXhpc3QgaW5kZXBlbmRlbnRseS4pCgpZb3Ug ZGVjbGFyZSBhIGNvbHVtbiBhcyBlbmNyeXB0ZWQgaW4gYSBDUkVBVEUgVEFCTEUgc3RhdGVt ZW50LiAgVGhlCmNvbHVtbiB2YWx1ZSBpcyBlbmNyeXB0ZWQgYnkgYSBzeW1tZXRyaWMga2V5 IGNhbGxlZCB0aGUgY29sdW1uCmVuY3J5cHRpb24ga2V5IChDRUspLiAgVGhlIENFSyBpcyBh IGNhdGFsb2cgb2JqZWN0LiAgVGhlIENFSyBrZXkKbWF0ZXJpYWwgaXMgaW4gdHVybiBlbmNy eXB0ZWQgYnkgYW4gYXN5bW1ldHJpYyBrZXkgY2FsbGVkIHRoZSBjb2x1bW4KbWFzdGVyIGtl eSAoQ01LKS4gIFRoZSBDTUsgaXMgbm90IHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UgYnV0IHNv bWV3aGVyZQp3aGVyZSB0aGUgY2xpZW50IGNhbiBnZXQgdG8gaXQsIGZvciBleGFtcGxlIGlu IGEgZmlsZSBvciBpbiBhIGtleQptYW5hZ2VtZW50IHN5c3RlbS4gIFdoZW4gYSBzZXJ2ZXIg c2VuZHMgcm93cyBjb250YWluaW5nIGVuY3J5cHRlZApjb2x1bW4gdmFsdWVzIHRvIHRoZSBj bGllbnQsIGl0IGZpcnN0IHNlbmRzIHRoZSByZXF1aXJlZCBDTUsgYW5kIENFSwppbmZvcm1h dGlvbiAobmV3IHByb3RvY29sIG1lc3NhZ2VzKSwgd2hpY2ggdGhlIGNsaWVudCBuZWVkcyB0 byByZWNvcmQuClRoZW4sIHRoZSBjbGllbnQgY2FuIHVzZSB0aGlzIGluZm9ybWF0aW9uIHRv IGF1dG9tYXRpY2FsbHkgZGVjcnlwdCB0aGUKaW5jb21pbmcgcm93IGRhdGEgYW5kIGZvcndh cmQgaXQgaW4gcGxhaW50ZXh0IHRvIHRoZSBhcHBsaWNhdGlvbi4KCkZvciB0aGUgQ01Lcywg bGlicHEgaGFzIGEgbmV3IGNvbm5lY3Rpb24gcGFyYW1ldGVyICJjbWtsb29rdXAiIHRoYXQK c3BlY2lmaWVzIHZpYSBhIG1pbmktbGFuZ3VhZ2Ugd2hlcmUgdG8gZ2V0IHRoZSBrZXlzLiAg UmlnaHQgbm93LCB5b3UKY2FuIHVzZSAiZmlsZSIgdG8gcmVhZCBpdCBmcm9tIGEgZmlsZSwg b3IgInJ1biIgdG8gcnVuIHNvbWUgcHJvZ3JhbSwKd2hpY2ggY291bGQgZ2V0IGl0IGZyb20g YSBLTVMuCgpUaGUgZ2VuZXJhbCBpZGVhIHdvdWxkIGJlIGZvciBhbiBhcHBsaWNhdGlvbiB0 byBoYXZlIG9uZSBDTUsgcGVyIGFyZWEKb2Ygc2VjcmV0IHN0dWZmLCBmb3IgZXhhbXBsZSwg Zm9yIGNyZWRpdCBjYXJkIGRhdGEuICBUaGUgQ01LIGNhbiBiZQpyb3RhdGVkOiBlYWNoIENF SyBjYW4gYmUgcmVwcmVzZW50ZWQgbXVsdGlwbGUgdGltZXMgaW4gdGhlIGRhdGFiYXNlLApl bmNyeXB0ZWQgYnkgYSBkaWZmZXJlbnQgQ01LLiAgKFRoZSBDRUsgY2FuJ3QgYmUgcm90YXRl ZCBlYXNpbHksIHNpbmNlCnRoYXQgd291bGQgcmVxdWlyZSByZWFkaW5nIG91dCBhbGwgdGhl IGRhdGEgZnJvbSBhIHRhYmxlL2NvbHVtbiBhbmQKcmVlbmNyeXB0aW5nIGl0LiAgV2UgY291 bGQvc2hvdWxkIGFkZCBzb21lIGN1c3RvbSB0b29saW5nIGZvciB0aGF0LApidXQgaXQgd291 bGRuJ3QgYmUgYSByb3V0aW5lIG9wZXJhdGlvbi4pCgpTZXZlcmFsIGVuY3J5cHRpb24gYWxn b3JpdGhtcyBhcmUgcHJvdmlkZWQuICBUaGUgQ01LIHByb2Nlc3MgdXNlcwpQR19DTUtfUlNB RVNfT0FFUF9TSEFfMSBvciBfMjU2LiAgVGhlIENFSyBwcm9jZXNzIHVzZXMKQUVBRF9BRVNf Kl9DQkNfSE1BQ19TSEFfKiB3aXRoIHNldmVyYWwgc3RyZW5ndGhzLgoKSW4gdGhlIHNlcnZl ciwgdGhlIGVuY3J5cHRlZCBkYXR1bXMgYXJlIHN0b3JlZCBpbiB0eXBlcyBjYWxsZWQKcGdf ZW5jcnlwdGVkX3JuZCBhbmQgcGdfZW5jcnlwdGVkX2RldCAoZm9yIHJhbmRvbWl6ZWQgYW5k CmRldGVybWluaXN0aWMgZW5jcnlwdGlvbikuICBUaGVzZSBhcmUgZXNzZW50aWFsbHkgY291 c2lucyBvZiBieXRlYS4KRm9yIHRoZSByZXN0IG9mIHRoZSBkYXRhYmFzZSBzeXN0ZW0gYmVs b3cgdGhlIHByb3RvY29sIGhhbmRsaW5nLCB0aGVyZQppcyBub3RoaW5nIHNwZWNpYWwgYWJv dXQgdGhvc2UuICBGb3IgZXhhbXBsZSwgcGdfZW5jcnlwdGVkX3JuZCBoYXMgbm8Kb3BlcmF0 b3JzIGF0IGFsbCwgcGdfZW5jcnlwdGVkX2RldCBoYXMgb25seSBhbiBlcXVhbGl0eSBvcGVy YXRvci4KcGdfYXR0cmlidXRlIGhhcyBhIG5ldyBjb2x1bW4gYXR0cmVhbHR5cGlkIHRoYXQg c3RvcmVzIHRoZSBvcmlnaW5hbAp0eXBlIG9mIHRoZSBkYXRhIGluIHRoZSBjb2x1bW4uICBU aGlzIGlzIG9ubHkgdXNlZCBmb3IgcHJvdmlkaW5nIGl0IHRvCmNsaWVudHMsIHNvIHRoYXQg aGlnaGVyLWxldmVsIGNsaWVudHMgY2FuIGNvbnZlcnQgdGhlIGRlY3J5cHRlZCB2YWx1ZQp0 byB0aGVpciBhcHByb3ByaWF0ZSBkYXRhIHR5cGVzIGluIHRoZWlyIGVudmlyb25tZW50cy4K ClRoZSBwcm90b2NvbCBleHRlbnNpb25zIGFyZSBndWFyZGVkIGJ5IGEgbmV3IHByb3RvY29s IGV4dGVuc2lvbiBvcHRpb24KIl9wcV8uY29sdW1uX2VuY3J5cHRpb24iLiAgSWYgdGhpcyBp cyBub3Qgc2V0LCBub3RoaW5nIGNoYW5nZXMsIHRoZQpwcm90b2NvbCBzdGF5cyB0aGUgc2Ft ZSwgYW5kIG5vIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbiBoYXBwZW5zLgoKVGhlIHRyaWNr aWVzdCBwYXJ0IG9mIHRoaXMgd2hvbGUgdGhpbmcgYXBwZWFycyB0byBiZSBob3cgdG8gZ2V0 CnRyYW5zcGFyZW50bHkgZW5jcnlwdGVkIGRhdGEgaW50byB0aGUgZGF0YWJhc2UgKGFzIG9w cG9zZWQgdG8gcmVhZGluZwppdCBvdXQpLiAgSXQgaXMgcmVxdWlyZWQgdG8gdXNlIHByb3Rv Y29sLWxldmVsIHByZXBhcmVkIHN0YXRlbWVudHMKKGkuZS4sIGV4dGVuZGVkIHF1ZXJ5KSBm b3IgdGhpcy4gIFRoZSBjbGllbnQgbXVzdCBmaXJzdCBwcmVwYXJlIGEKc3RhdGVtZW50LCB0 aGVuIGRlc2NyaWJlIHRoZSBzdGF0ZW1lbnQgdG8gZ2V0IHBhcmFtZXRlciBtZXRhZGF0YSwK d2hpY2ggaW5kaWNhdGVzIHdoaWNoIHBhcmFtZXRlcnMgYXJlIHRvIGJlIGVuY3J5cHRlZCBh bmQgaG93LiAgU28gdGhpcwp3aWxsIHJlcXVpcmUgc29tZSBjYXJlIGJ5IGFwcGxpY2F0aW9u cyB0aGF0IHdhbnQgdG8gZG8gdGhpcywgYnV0LAp3ZWxsLCB0aGV5IHByb2JhYmx5IHNob3Vs ZCBiZSBjYXJlZnVsIGFueXdheS4gIEluIGxpYnBxLCB0aGUgZXhpc3RpbmcKQVBJcyBtYWtl IHRoaXMgZGlmZmljdWx0LCBiZWNhdXNlIHRoZXJlIGlzIG5vIHdheSB0byBwYXNzIHRoZSBy ZXN1bHQKb2YgYSBkZXNjcmliZS1zdGF0ZW1lbnQgY2FsbCBiYWNrIGludG8KZXhlY3V0ZS1z dGF0ZW1lbnQtd2l0aC1wYXJhbWV0ZXJzLiAgSSBhZGRlZCBuZXcgZnVuY3Rpb25zIHRoYXQg ZG8KdGhpcywgc28geW91IHRoZW4gZXNzZW50aWFsbHkgZG8KCiAgICByZXMwID0gUFFkZXNj cmliZVByZXBhcmVkKGNvbm4sICIiKTsKICAgIHJlcyA9IFBRZXhlY1ByZXBhcmVkMihjb25u LCAiIiwgMiwgdmFsdWVzLCBOVUxMLCBOVUxMLCAwLCByZXMwKTsKCihUaGUgbmFtZSBjb3Vs ZCBvYnZpb3VzbHkgYmUgaW1wcm92ZWQuKSAgT3RoZXIgY2xpZW50IEFQSXMgdGhhdCBoYXZl IGEKInN0YXRlbWVudCBoYW5kbGUiIGNvbmNlcHQgY291bGQgZG8gdGhpcyBtb3JlIGVsZWdh bnRseSBhbmQgcHJvYmFibHkKd2l0aG91dCBhbnkgQVBJIGNoYW5nZXMuCgpBbm90aGVyIGNo YWxsZW5nZSBpcyB0aGF0IHRoZSBwYXJzZSBhbmFseXNpcyBtdXN0IGNoZWNrIHdoaWNoCnVu ZGVybHlpbmcgY29sdW1uIGEgcGFyYW1ldGVyIGNvcnJlc3BvbmRzIHRvLiAgVGhpcyBpcyBz aW1pbGFyIHRvCnJlc29yaWd0YmwgYW5kIHJlc29yaWdjb2wgaW4gdGhlIG9wcG9zaXRlIGRp cmVjdGlvbi4gIFRoZSBjdXJyZW50CmltcGxlbWVudGF0aW9uIG9mIHRoaXMgd29ya3MgZm9y IHRoZSB0ZXN0IGNhc2VzLCBidXQgSSBrbm93IGl0IGhhcwpzb21lIHByb2JsZW1zLCBzbyBJ J2xsIGNvbnRpbnVlIHdvcmtpbmcgaW4gdGhpcy4gIFRoaXMgZnVuY3Rpb25hbGl0eQppcyBp biBwcmluY2lwbGUgYXZhaWxhYmxlIHRvIGFsbCBwcmVwYXJlZC1zdGF0ZW1lbnQgdmFyaWFu dHMsIG5vdCBvbmx5CnByb3RvY29sLWxldmVsLiAgU28geW91IGNhbiBzZWUgaW4gdGhlIHRl c3RzIHRoYXQgSSBleHBhbmRlZCB0aGUKcGdfcHJlcGFyZWRfc3RhdGVtZW50cyB2aWV3IHRv IHNob3cgdGhpcyBpbmZvcm1hdGlvbiBhcyB3ZWxsLCB3aGljaAphbHNvIHByb3ZpZGVzIGFu IGVhc3kgd2F5IHRvIHRlc3QgYW5kIGRlYnVnIHRoaXMgZnVuY3Rpb25hbGl0eQppbmRlcGVu ZGVudCBvZiBjb2x1bW4gZW5jcnlwdGlvbi4KCnBzcWwgZG9lc24ndCB1c2UgcHJlcGFyZWQg c3RhdGVtZW50cywgc28gd3JpdGluZyBpbnRvIGVuY3J5cHRlZApjb2x1bW5zIHdvdWxkbid0 IHdvcmsgYXQgYWxsIHZpYSBwc3FsLiAgKFJlYWRpbmcgd29ya3Mgbm8KcHJvYmxlbS4pICBJ IGFkZGVkIGEgbmV3IHBzcWwgY29tbWFuZCBcZ2VuY3IgdGhhdCB5b3UgY2FuIHVzZSBsaWtl CgpJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKCQxLCAkMikgXGdlbmNyICd2YWwxJyAndmFsMicK ClRPRE86IFRoaXMgcGF0Y2ggdmVyc2lvbiBoYXMgYWxsIHRoZSBuZWNlc3NhcnkgcGllY2Vz IGluIHBsYWNlIHRvIG1ha2UKdGhpcyB3b3JrLCBzbyB5b3UgY2FuIGhhdmUgYW4gaWRlYSBo b3cgdGhlIG92ZXJhbGwgc3lzdGVtIHdvcmtzLiAgSXQKY29udGFpbnMgc29tZSBkb2N1bWVu dGF0aW9uIGFuZCB0ZXN0cyB0byBoZWxwIGlsbHVzdHJhdGUgdGhlCmZ1bmN0aW9uYWxpdHku ICBNaXNzaW5nOgoKLSBwc3FsIFxkIHN1cHBvcnQKCkRpc2N1c3Npb246IGh0dHBzOi8vd3d3 LnBvc3RncmVzcWwub3JnL21lc3NhZ2UtaWQvZmxhdC84OTE1NzkyOS1jMmI2LTgxN2ItNjAy NS04ZTRiMmQ4OWQ4OGYlNDBlbnRlcnByaXNlZGIuY29tCi0tLQogZG9jL3NyYy9zZ21sL2Fj cm9ueW1zLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDE4ICsKIGRvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8IDI3NSArKysrKysKIGRvYy9zcmMv c2dtbC9kYXRhdHlwZS5zZ21sICAgICAgICAgICAgICAgICAgICB8ICA0NyArKwogZG9jL3Ny Yy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzc5ICsrKysrKysr KwogZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDIz ICsKIGRvYy9zcmMvc2dtbC9saWJwcS5zZ21sICAgICAgICAgICAgICAgICAgICAgICB8IDI4 MCArKysrKystCiBkb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbCAgICAgICAgICAgICAgICAg ICAgfCAzOTIgKysrKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgICAg ICAgICAgICAgICAgfCAgIDYgKwogLi4uL3NnbWwvcmVmL2FsdGVyX2NvbHVtbl9lbmNyeXB0 aW9uX2tleS5zZ21sIHwgMTg2ICsrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2NvbHVt bl9tYXN0ZXJfa2V5LnNnbWwgfCAxMTcgKysrCiAuLi4vcmVmL2NyZWF0ZV9jb2x1bW5fZW5j cnlwdGlvbl9rZXkuc2dtbCAgICAgfCAxNjMgKysrKwogLi4uL3NnbWwvcmVmL2NyZWF0ZV9j b2x1bW5fbWFzdGVyX2tleS5zZ21sICAgIHwgMTA2ICsrKwogZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdGFibGUuc2dtbCAgICAgICAgICAgIHwgIDQyICstCiAuLi4vc2dtbC9yZWYvZHJv cF9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbCAgfCAxMTIgKysrCiBkb2Mvc3JjL3NnbWwv cmVmL2Ryb3BfY29sdW1uX21hc3Rlcl9rZXkuc2dtbCAgfCAxMTIgKysrCiBkb2Mvc3JjL3Nn bWwvcmVmL3BnX2R1bXAuc2dtbCAgICAgICAgICAgICAgICAgfCAgMzEgKwogZG9jL3NyYy9z Z21sL3JlZi9wZ19kdW1wYWxsLnNnbWwgICAgICAgICAgICAgIHwgIDI3ICsKIGRvYy9zcmMv c2dtbC9yZWYvcHNxbC1yZWYuc2dtbCAgICAgICAgICAgICAgICB8ICAzMyArCiBkb2Mvc3Jj L3NnbWwvcmVmZXJlbmNlLnNnbWwgICAgICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2Jh Y2tlbmQvYWNjZXNzL2NvbW1vbi9wcmludHNpbXBsZS5jICAgICAgIHwgICA3ICsKIHNyYy9i YWNrZW5kL2FjY2Vzcy9jb21tb24vcHJpbnR0dXAuYyAgICAgICAgICB8IDE5MSArKysrLQog c3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi90dXBkZXNjLmMgICAgICAgICAgIHwgIDEyICsK IHNyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxpZGF0ZS5jICAgICAgICB8ICAgMiAr LQogc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgICAz ICstCiBzcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jICAgICAgICAgICAgICAgICAgfCAg NjQgKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jICAgICAgICAgICAgICB8 ICAxOCArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyAgICAgICAgICAgICAgICAgICAg fCAgIDMgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgICAgICAgICAg IHwgMjIwICsrKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZSAgICAgICAgICAg ICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYyAgICAgICAgICAg ICAgICAgIHwgIDE1ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGVuY2NtZHMuYyAgICAg ICAgICAgICB8IDM1NCArKysrKysrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJp Z2dlci5jICAgICAgICAgIHwgIDEyICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1 aWxkICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJl LmMgICAgICAgICAgICAgICAgfCAgNzQgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xh YmVsLmMgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYyAgICAgICAgICAgICAgfCAgOTYgKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy92 YXJpYWJsZS5jICAgICAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L3NwaS5jICAgICAgICAgICAgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9ub2Rlcy9u b2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvcGFyc2Vy L2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwgICAzICstCiBzcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAxMjEgKystCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfcGFyYW0uYyAgICAgICAgICAgICAgfCAgNDkgKy0KIHNyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV90YXJnZXQuYyAgICAgICAgICAgICB8ICAgNiArCiBzcmMvYmFja2Vu ZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYyAgICAgICAgICAgfCAgMTkgKy0KIHNyYy9iYWNr ZW5kL3Rjb3AvcG9zdGdyZXMuYyAgICAgICAgICAgICAgICAgICB8ICA1NyArLQogc3JjL2Jh Y2tlbmQvdGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDQyICstCiBzcmMv YmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jICAgICAgICAgICAgfCAgIDEgKwogc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgICAgICAgICAgIHwgMTExICsrKwog c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICAgIHwgIDMxICst CiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9zeXNjYWNoZS5jICAgICAgICAgICAgfCAgNTgg KysKIHNyYy9iYWNrZW5kL3V0aWxzL21iL21idXRpbHMuYyAgICAgICAgICAgICAgICB8ICAx OCArLQogc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jICAgICAgICAgICAgICAgICAgICAgIHwg ICA2ICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaCAgICAgICAgICAgICAgICAgICB8 ICAgMSArCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMgICAgICAgICAg fCAgIDQgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9kYi5jICAgICAgICAgICAgICAg IHwgICA5ICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAg ICAgfCAzNTAgKysrKysrKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggICAgICAgICAg ICAgICAgICAgICB8ICAzMSArCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgICAg ICAgICAgICAgICAgfCAgMTQgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBhbGwuYyAgICAg ICAgICAgICAgICAgIHwgICA1ICsKIHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBs ICAgICAgICAgICAgICB8ICA1NiArLQogc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYyAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDMxICsKIHNyYy9iaW4vcHNxbC9jb21tb24uYyAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAzOSArLQogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAg ICAgICAgICAgICAgICAgICAgIHwgIDI5ICstCiBzcmMvYmluL3BzcWwvaGVscC5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2Jpbi9wc3FsL3NldHRpbmdzLmgg ICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICsKIHNyYy9iaW4vcHNxbC9zdGFydHVwLmMg ICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmMgICAgICAgICAgICAgICAgICAgfCAgNTEgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9w cmludHR1cC5oICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9jYXRhbG9n L2RlcGVuZGVuY3kuaCAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL2NhdGFs b2cvcGdfYW1vcC5kYXQgICAgICAgICAgICAgICB8ICAgNSArCiBzcmMvaW5jbHVkZS9jYXRh bG9nL3BnX2FtcHJvYy5kYXQgICAgICAgICAgICAgfCAgIDUgKwogc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19hdHRyaWJ1dGUuaCAgICAgICAgICAgIHwgICA5ICsKIHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfY2FzdC5kYXQgICAgICAgICAgICAgICB8ICAgNiArCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2NvbGVuY2tleS5oICAgICAgICAgICAgfCAgNTUgKysKIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5oICAgICAgICB8ICA0NiArKwogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCAgICAgICAgIHwgIDQ1ICsKIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfb3BjbGFzcy5kYXQgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX29wZXJhdG9yLmRhdCAgICAgICAgICAgfCAgMTAgKwogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19vcGZhbWlseS5kYXQgICAgICAgICAgIHwgICAyICsKIHNyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAxMyArLQogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmRhdCAgICAgICAgICAgICAgIHwgIDEyICsKIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5oICAgICAgICAgICAgICAgICB8ICAgMSArCiBz cmMvaW5jbHVkZS9jb21tYW5kcy9jb2xlbmNjbWRzLmggICAgICAgICAgICAgfCAgMjUgKwog c3JjL2luY2x1ZGUvbGlicHEvbGlicHEtYmUuaCAgICAgICAgICAgICAgICAgIHwgICAxICsK IHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxNyAr CiBzcmMvaW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oICAgICAgICAgICAgICAgICAgfCAgIDQg Ky0KIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICAg MiArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAg IDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3BhcmFtLmggICAgICAgICAgICAgIHwg ICAzICstCiBzcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCAgICAgICAgICAgICAgICAg fCAgIDYgKwogc3JjL2luY2x1ZGUvdGNvcC90Y29wcHJvdC5oICAgICAgICAgICAgICAgICAg IHwgICAyICsKIHNyYy9pbmNsdWRlL3V0aWxzL2FjbC5oICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMiArCiBzcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCAgICAgICAgICAgICAg ICAgfCAgIDYgKwogc3JjL2luY2x1ZGUvdXRpbHMvcGxhbmNhY2hlLmggICAgICAgICAgICAg ICAgIHwgICA2ICsKIHNyYy9pbmNsdWRlL3V0aWxzL3N5c2NhY2hlLmggICAgICAgICAgICAg ICAgICB8ICAgNiArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmlsZSAgICAgICAgICAg ICAgICAgfCAgIDEgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvZXhwb3J0cy50eHQgICAgICAg ICAgICAgIHwgICA0ICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3QuYyAgICAg ICAgICAgICB8ICAzOCArLQogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZW5jcnlwdC1vcGVu c3NsLmMgICAgIHwgNzgyICsrKysrKysrKysrKysrKysrKwogc3JjL2ludGVyZmFjZXMvbGli cHEvZmUtZW5jcnlwdC5oICAgICAgICAgICAgIHwgIDMzICsKIHNyYy9pbnRlcmZhY2VzL2xp YnBxL2ZlLWV4ZWMuYyAgICAgICAgICAgICAgICB8IDU4MCArKysrKysrKysrKystCiBzcmMv aW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMuYyAgICAgICAgICAgfCAxODAgKysrLQog c3JjL2ludGVyZmFjZXMvbGlicHEvZmUtdHJhY2UuYyAgICAgICAgICAgICAgIHwgIDU1ICst CiBzcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1mZS5oICAgICAgICAgICAgICAgfCAgMjIg Kwogc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmggICAgICAgICAgICAgIHwgIDM3 ICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29uLmJ1aWxkICAgICAgICAgICAgICB8ICAg MSArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9ubHMubWsgICAgICAgICAgICAgICAgICAgfCAg IDIgKy0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvLmdpdGlnbm9yZSAgICAgICAgICB8 ICAgMSArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0L01ha2VmaWxlICAgICAgICAgICAg fCAgIDcgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC9tZXNvbi5idWlsZCAgICAgICAg IHwgICAyICsKIHNyYy90ZXN0L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgNCArLQogc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vLmdpdGlnbm9yZSAgICAg ICAgIHwgICAzICsKIHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxlICAgICAg ICAgICB8ICAyOSArCiBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi9tZXNvbi5idWlsZCAg ICAgICAgfCAgMjAgKwogLi4uL3QvMDAxX2NvbHVtbl9lbmNyeXB0aW9uLnBsICAgICAgICAg ICAgICAgIHwgMTg2ICsrKysrCiAuLi4vY29sdW1uX2VuY3J5cHRpb24vdC8wMDJfY21rX3Jv dGF0aW9uLnBsICAgfCAxMDggKysrCiBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0 X2NsaWVudC5jICAgICAgfCAyMTAgKysrKysKIC4uLi9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0 X3J1bl9kZWNyeXB0LnBsICAgICB8ICA0MSArCiBzcmMvdGVzdC9tZXNvbi5idWlsZCAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvY29s dW1uX2VuY3J5cHRpb24ub3V0ICAgIHwgMTQzICsrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvb2JqZWN0X2FkZHJlc3Mub3V0ICB8IDE1MyArKy0tCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL29pZGpvaW5zLm91dCAgICAgICAgfCAgIDYgKwogc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCAgICAgIHwgIDEyICstCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3ByZXBhcmUub3V0ICAgICAgICAgfCAgMzggKy0KIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgICAgICAgICAgICB8ICAyNSArCiBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCAgICAgICAgICAgfCAgIDQgKy0KIHNyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvdHlwZV9zYW5pdHkub3V0ICAgICB8ICA0NiArLQogc3JjL3Rl c3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAzICsKIHNyYy90 ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzc19tYWluLmMgICAgICAgICAgICB8ICAgMiArLQogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvY29sdW1uX2VuY3J5cHRpb24uc3FsICAgIHwgMTI0ICsrKwog c3JjL3Rlc3QvcmVncmVzcy9zcWwvb2JqZWN0X2FkZHJlc3Muc3FsICAgICAgIHwgIDE4ICst CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wcmVwYXJlLnNxbCAgICAgICAgICAgICAgfCAgIDIg Ky0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsICAgICAgICAgICAgICAgICB8ICAx NyArCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC90eXBlX3Nhbml0eS5zcWwgICAgICAgICAgfCAg IDIgKwogMTM1IGZpbGVzIGNoYW5nZWQsIDc2MzkgaW5zZXJ0aW9ucygrKSwgMjA4IGRlbGV0 aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29s dW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbAog Y3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9tYXN0 ZXJfa2V5LnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3Bf Y29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3Jj L3NnbWwvcmVmL2Ryb3BfY29sdW1uX21hc3Rlcl9rZXkuc2dtbAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGVuY2NtZHMuYwogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5LmgKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleWRhdGEuaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jb21tYW5kcy9jb2xlbmNjbWRzLmgKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LW9wZW5zc2wu YwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQu aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uLy5naXRp Z25vcmUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi9N YWtlZmlsZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9u L21lc29uLmJ1aWxkCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvY29sdW1uX2VuY3J5 cHRpb24vdC8wMDFfY29sdW1uX2VuY3J5cHRpb24ucGwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMl9jbWtfcm90YXRpb24ucGwKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0X2NsaWVudC5j CiBjcmVhdGUgbW9kZSAxMDA3NTUgc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdGVzdF9y dW5fZGVjcnlwdC5wbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvY29sdW1uX2VuY3J5cHRpb24ub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rl c3QvcmVncmVzcy9zcWwvY29sdW1uX2VuY3J5cHRpb24uc3FsCgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL2Fjcm9ueW1zLnNnbWwgYi9kb2Mvc3JjL3NnbWwvYWNyb255bXMuc2dtbApp bmRleCAyZGY2NTU5YWNjY2UuLmJkMWEwMTg1ZWQ3YSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2Fjcm9ueW1zLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Fjcm9ueW1zLnNnbWwKQEAg LTU2LDYgKzU2LDE1IEBAIDx0aXRsZT5BY3JvbnltczwvdGl0bGU+CiAgICAgPC9saXN0aXRl bT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJt PjxhY3JvbnltPkNFSzwvYWNyb255bT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8 cGFyYT4KKyAgICAgIENvbHVtbiBFbmNyeXB0aW9uIEtleQorICAgICA8L3BhcmE+CisgICAg PC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5Pgog ICAgIDx0ZXJtPjxhY3JvbnltPkNJRFI8L2Fjcm9ueW0+PC90ZXJtPgogICAgIDxsaXN0aXRl bT4KQEAgLTY3LDYgKzc2LDE1IEBAIDx0aXRsZT5BY3JvbnltczwvdGl0bGU+CiAgICAgPC9s aXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAg IDx0ZXJtPjxhY3JvbnltPkNNSzwvYWNyb255bT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgor ICAgICA8cGFyYT4KKyAgICAgIENvbHVtbiBNYXN0ZXIgS2V5CisgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+ CiAgICAgPHRlcm0+PGFjcm9ueW0+Q1BBTjwvYWNyb255bT48L3Rlcm0+CiAgICAgPGxpc3Rp dGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCAwMGY4MzNkMjEwZTcuLjYzOGJlMWM4NTA3YiAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL2NhdGFsb2dzLnNnbWwKQEAgLTEwNSw2ICsxMDUsMjEgQEAgPHRpdGxlPlN5c3RlbSBD YXRhbG9nczwvdGl0bGU+CiAgICAgICA8ZW50cnk+Y29sbGF0aW9ucyAobG9jYWxlIGluZm9y bWF0aW9uKTwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50 cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jb2xlbmNrZXkiPjxzdHJ1Y3RuYW1lPnBn X2NvbGVuY2tleTwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5j b2x1bW4gZW5jcnlwdGlvbiBrZXlzPC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJv dz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbGVuY2tleWRh dGEiPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleWRhdGE8L3N0cnVjdG5hbWU+PC9saW5rPjwv ZW50cnk+CisgICAgICA8ZW50cnk+Y29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGE8L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaW5rIGxpbmtl bmQ9ImNhdGFsb2ctcGctY29sbWFzdGVya2V5Ij48c3RydWN0bmFtZT5wZ19jb2xtYXN0ZXJr ZXk8L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CisgICAgICA8ZW50cnk+Y29sdW1uIG1h c3RlciBrZXlzPC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxl bnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbnN0cmFpbnQiPjxzdHJ1Y3RuYW1l PnBnX2NvbnN0cmFpbnQ8L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CiAgICAgICA8ZW50 cnk+Y2hlY2sgY29uc3RyYWludHMsIHVuaXF1ZSBjb25zdHJhaW50cywgcHJpbWFyeSBrZXkg Y29uc3RyYWludHMsIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnRzPC9lbnRyeT4KQEAgLTEzNjAs NiArMTM3NSw0MCBAQCA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfYXR0cmlidXRlPC9zdHJ1Y3Ru YW1lPiBDb2x1bW5zPC90aXRsZT4KICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jv dz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+YXR0Y2VrPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZl cmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY29sZW5ja2V5Ij48c3RydWN0bmFt ZT5wZ19jb2xlbmNrZXk8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9z dHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBJZiB0 aGUgY29sdW1uIGlzIGVuY3J5cHRlZCwgYSByZWZlcmVuY2UgdG8gdGhlIGNvbHVtbiBlbmNy eXB0aW9uIGtleSwgZWxzZSAwLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD5hdHRyZWFsdHlwaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAg KHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy10eXBlIj48c3RydWN0bmFt ZT5wZ190eXBlPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0 ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgSWYgdGhlIGNv bHVtbiBpcyBlbmNyeXB0ZWQsIHRoZW4gdGhpcyBjb2x1bW4gaW5kaWNhdGVzIHRoZSB0eXBl IG9mIHRoZQorICAgICAgIGVuY3J5cHRlZCBkYXRhIHRoYXQgaXMgcmVwb3J0ZWQgdG8gdGhl IGNsaWVudC4gIEZvciBlbmNyeXB0ZWQgY29sdW1ucywKKyAgICAgICB0aGUgZmllbGQgPHN0 cnVjdGZpZWxkPmF0dHR5cGlkPC9zdHJ1Y3RmaWVsZD4gaXMgZWl0aGVyCisgICAgICAgPHR5 cGU+cGdfZW5jcnlwdGVkX2RldDwvdHlwZT4gb3IgPHR5cGU+cGdfZW5jcnlwdGVkX3JuZDwv dHlwZT4uICBJZiB0aGUKKyAgICAgICBjb2x1bW4gaXMgbm90IGVuY3J5cHRlZCwgdGhlbiAw LgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5hdHRlbmNhbGc8L3N0cnVj dGZpZWxkPiA8dHlwZT5pbnQxNjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJh PgorICAgICAgIElmIHRoZSBjb2x1bW4gaXMgZW5jcnlwdGVkLCB0aGUgaWRlbnRpZmllciBv ZiB0aGUgZW5jcnlwdGlvbiBhbGdvcml0aG07CisgICAgICAgc2VlIDx4cmVmIGxpbmtlbmQ9 InByb3RvY29sLWNlayIvPiBmb3IgcG9zc2libGUgdmFsdWVzLgorICAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K ICAgICAgICA8c3RydWN0ZmllbGQ+YXR0aW5oY291bnQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5p bnQ0PC90eXBlPgpAQCAtMjQ1Niw2ICsyNTA1LDIzMiBAQCA8dGl0bGU+PHN0cnVjdG5hbWU+ cGdfY29sbGF0aW9uPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KICAgPC9wYXJhPgog IDwvc2VjdDE+CiAKKyA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctY29sZW5ja2V5Ij4KKyAgPHRp dGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleTwvc3RydWN0bmFtZT48L3RpdGxlPgorCisg IDxpbmRleHRlcm0gem9uZT0iY2F0YWxvZy1wZy1jb2xlbmNrZXkiPgorICAgPHByaW1hcnk+ cGdfY29sZW5ja2V5PC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8cGFyYT4KKyAg IFRoZSBjYXRhbG9nIDxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleTwvc3RydWN0bmFtZT4gY29u dGFpbnMgaW5mb3JtYXRpb24KKyAgIGFib3V0IHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXlz IGluIHRoZSBkYXRhYmFzZS4gIFRoZSBhY3R1YWwga2V5IG1hdGVyaWFsCisgICBvZiB0aGUg Y29sdW1uIGVuY3J5cHRpb24ga2V5cyBpcyBpbiB0aGUgY2F0YWxvZyA8bGluaworICAgbGlu a2VuZD0iY2F0YWxvZy1wZy1jb2xlbmNrZXlkYXRhIj48c3RydWN0bmFtZT5wZ19jb2xlbmNr ZXlkYXRhPC9zdHJ1Y3RuYW1lPjwvbGluaz4uCisgIDwvcGFyYT4KKworICA8dGFibGU+Cisg ICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5PC9zdHJ1Y3RuYW1lPiBDb2x1bW5z PC90aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgUm93IGlkZW50aWZpZXIKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+Y2VrbmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBDb2x1bW4gZW5jcnlwdGlvbiBrZXkgbmFt ZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jZWtvd25lcjwvc3RydWN0 ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5r ZW5kPSJjYXRhbG9nLXBnLWF1dGhpZCI+PHN0cnVjdG5hbWU+cGdfYXV0aGlkPC9zdHJ1Y3Ru YW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgT3duZXIgb2YgdGhlIGNvbHVtbiBlbmNyeXB0 aW9uIGtleQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJv ZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlk PSJjYXRhbG9nLXBnLWNvbGVuY2tleWRhdGEiPgorICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdf Y29sZW5ja2V5ZGF0YTwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0gem9u ZT0iY2F0YWxvZy1wZy1jb2xlbmNrZXlkYXRhIj4KKyAgIDxwcmltYXJ5PnBnX2NvbGVuY2tl eWRhdGE8L3ByaW1hcnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgorICAgVGhlIGNh dGFsb2cgPHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5ZGF0YTwvc3RydWN0bmFtZT4gY29udGFp bnMgdGhlIGtleQorICAgbWF0ZXJpYWwgb2YgY29sdW1uIGVuY3J5cHRpb24ga2V5cy4gIEVh Y2ggY29sdW1uIGVuY3J5cHRpb24ga2V5IG9iamVjdCBjYW4KKyAgIGNvbnRhaW4gc2V2ZXJh bCB2ZXJzaW9ucyBvZiB0aGUga2V5IG1hdGVyaWFsLCBlYWNoIGVuY3J5cHRlZCB3aXRoIGEK KyAgIGRpZmZlcmVudCBjb2x1bW4gbWFzdGVyIGtleS4gIFRoYXQgYWxsb3dzIHRoZSBncmFk dWFsIHJvdGF0aW9uIG9mIHRoZQorICAgY29sdW1uIG1hc3RlciBrZXlzLiAgVGh1cywgPGxp dGVyYWw+KGNrZGNla2lkLCBja2RjbWtpZCk8L2xpdGVyYWw+IGlzIGEKKyAgIHVuaXF1ZSBr ZXkgb2YgdGhpcyB0YWJsZS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIGtleSBt YXRlcmlhbCBvZiBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzIHNob3VsZCBuZXZlciBiZSBkZWNy eXB0ZWQgaW5zaWRlCisgICB0aGUgZGF0YWJhc2UgaW5zdGFuY2UuICBJdCBpcyBtZWFudCB0 byBiZSBzZW50IGFzLWlzIHRvIHRoZSBjbGllbnQsIHdoZXJlCisgICBpdCBpcyBkZWNyeXB0 ZWQgdXNpbmcgdGhlIGFzc29jaWF0ZWQgY29sdW1uIG1hc3RlciBrZXksIGFuZCB0aGVuIHVz ZWQgdG8KKyAgIGVuY3J5cHQgb3IgZGVjcnlwdCBjb2x1bW4gdmFsdWVzLgorICA8L3BhcmE+ CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleWRhdGE8 L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4KKyAg ICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENvbHVt biBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlv bgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisK KyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRlbnRpZmllcgorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ja2RjZWtpZDwvc3RydWN0ZmllbGQ+IDx0eXBl Pm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9n LXBnLWNvbGVuY2tleSI+PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5PC9zdHJ1Y3RuYW1lPjwv bGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgVGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSB0aGlzIGVu dHJ5IGJlbG9uZ3MgdG8KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y2tk Y21raWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5j ZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jb2xtYXN0ZXJrZXkiPjxzdHJ1Y3RuYW1l PnBnX2NvbG1hc3RlcmtleTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8 L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRo ZSBjb2x1bW4gbWFzdGVyIGtleSB0aGF0IHRoZSBrZXkgbWF0ZXJpYWwgaXMgZW5jcnlwdGVk IHdpdGgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y2tkY21rYWxnPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+aW50MTY8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBUaGUgZW5jcnlwdGlvbiBhbGdvcml0aG0gdXNlZCBmb3IgZW5jcnlw dGluZyB0aGUga2V5IG1hdGVyaWFsOyBzZWUKKyAgICAgICA8eHJlZiBsaW5rZW5kPSJwcm90 b2NvbC1jbWsiLz4gZm9yIHBvc3NpYmxlIHZhbHVlcy4KKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+Y2tkZW5jdmFsPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ynl0ZWE8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUga2V5IG1hdGVy aWFsIG9mIHRoaXMgY29sdW1uIGVuY3J5cHRpb24ga2V5LCBlbmNyeXB0ZWQgdXNpbmcgdGhl CisgICAgICAgcmVmZXJlbmNlZCBjb2x1bW4gbWFzdGVyIGtleQorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90 YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJjYXRhbG9nLXBnLWNvbG1hc3Rlcmtl eSI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19jb2xtYXN0ZXJrZXk8L3N0cnVjdG5hbWU+ PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9ImNhdGFsb2ctcGctY29sbWFzdGVya2V5 Ij4KKyAgIDxwcmltYXJ5PnBnX2NvbG1hc3RlcmtleTwvcHJpbWFyeT4KKyAgPC9pbmRleHRl cm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxvZyA8c3RydWN0bmFtZT5wZ19jb2xtYXN0 ZXJrZXk8L3N0cnVjdG5hbWU+IGNvbnRhaW5zIGluZm9ybWF0aW9uCisgICBhYm91dCBjb2x1 bW4gbWFzdGVyIGtleXMuICBUaGUga2V5cyB0aGVtc2VsdmVzIGFyZSBub3Qgc3RvcmVkIGlu IHRoZQorICAgZGF0YWJhc2UuICBUaGUgY2F0YWxvZyBlbnRyeSBvbmx5IGNvbnRhaW5zIGlu Zm9ybWF0aW9uIHRoYXQgaXMgdXNlZCBieQorICAgY2xpZW50cyB0byBsb2NhdGUgdGhlIGtl eXMsIGZvciBleGFtcGxlIGluIGEgZmlsZSBvciBpbiBhIGtleSBtYW5hZ2VtZW50CisgICBz eXN0ZW0uCisgIDwvcGFyYT4KKworICA8dGFibGU+CisgICA8dGl0bGU+PHN0cnVjdG5hbWU+ cGdfY29sbWFzdGVya2V5PC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0Z3Jv dXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lk PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUm93IGlkZW50 aWZpZXIKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y21rbmFtZTwvc3Ry dWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBDb2x1bW4gbWFzdGVyIGtleSBuYW1lCisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPmNta293bmVyPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBl PgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctYXV0aGlk Ij48c3RydWN0bmFtZT5wZ19hdXRoaWQ8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0Zmll bGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBPd25lciBvZiB0aGUgY29sdW1uIG1hc3RlciBrZXkKKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAg ICAgICA8c3RydWN0ZmllbGQ+Y21rcmVhbG08L3N0cnVjdGZpZWxkPiA8dHlwZT50ZXh0PC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgQSA8cXVvdGU+cmVh bG08L3F1b3RlPiBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb2x1bW4gbWFzdGVyIGtleS4gIFRo aXMgaXMKKyAgICAgICBhIGZyZWVseSBjaG9zZW4gc3RyaW5nIHRoYXQgaXMgdXNlZCBieSBj bGllbnRzIHRvIGRldGVybWluZSBob3cgdG8gbG9vaworICAgICAgIHVwIHRoZSBrZXkuICBB IHR5cGljYWwgY29uZmlndXJhdGlvbiB3b3VsZCBwdXQgYWxsIENNS3MgdGhhdCBhcmUgbG9v a2VkCisgICAgICAgdXAgaW4gdGhlIHNhbWUgd2F5IGludG8gdGhlIHNhbWUgcmVhbG0uCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90Ym9keT4KKyAgIDwv dGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisKICA8c2VjdDEgaWQ9ImNhdGFsb2ct cGctY29uc3RyYWludCI+CiAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19jb25zdHJhaW50PC9z dHJ1Y3RuYW1lPjwvdGl0bGU+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kYXRhdHlw ZS5zZ21sIGIvZG9jL3NyYy9zZ21sL2RhdGF0eXBlLnNnbWwKaW5kZXggYjAzMGIzNjAwMmY0 Li5iYjNjNmE2ODVmNGEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kYXRhdHlwZS5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9kYXRhdHlwZS5zZ21sCkBAIC01MzU5LDQgKzUzNTksNTEg QEAgPHRpdGxlPlBzZXVkby1UeXBlczwvdGl0bGU+CiAKICAgPC9zZWN0MT4KIAorICA8c2Vj dDEgaWQ9ImRhdGF0eXBlLWVuY3J5cHRlZCI+CisgICA8dGl0bGU+VHlwZXMgUmVsYXRlZCB0 byBFbmNyeXB0aW9uPC90aXRsZT4KKworICAgPHBhcmE+CisgICAgQW4gZW5jcnlwdGVkIGNv bHVtbiB2YWx1ZSAoc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1jb2x1bW4tZW5jcnlwdGlvbiIv PikgaXMKKyAgICBpbnRlcm5hbGx5IHN0b3JlZCB1c2luZyB0aGUgdHlwZXMKKyAgICA8dHlw ZT5wZ19lbmNyeXB0ZWRfcm5kPC90eXBlPiAoZm9yIHJhbmRvbWl6ZWQgZW5jcnlwdGlvbikg b3IKKyAgICA8dHlwZT5wZ19lbmNyeXB0ZWRfZGV0PC90eXBlPiAoZm9yIGRldGVybWluaXN0 aWMgZW5jcnlwdGlvbik7IHNlZSA8eHJlZgorICAgIGxpbmtlbmQ9ImRhdGF0eXBlLWVuY3J5 cHRlZC10YWJsZSIvPi4gIE1vc3Qgb2YgdGhlIGRhdGFiYXNlIHN5c3RlbSB0cmVhdHMKKyAg ICB0aGlzIGFzIG5vcm1hbCB0eXBlcy4gIEZvciBleGFtcGxlLCB0aGUgdHlwZSA8dHlwZT5w Z19lbmNyeXB0ZWRfZGV0PC90eXBlPiBoYXMKKyAgICBhbiBlcXVhbHMgb3BlcmF0b3IgdGhh dCBhbGxvd3MgbG9va3VwIG9mIGVuY3J5cHRlZCB2YWx1ZXMuICBUaGUgZXh0ZXJuYWwKKyAg ICByZXByZXNlbnRhdGlvbiBvZiB0aGVzZSB0eXBlcyBpcyB0aGUgc2FtZSBhcyB0aGUgPHR5 cGU+Ynl0ZWE8L3R5cGU+IHR5cGUuCisgICAgVGh1cywgY2xpZW50cyB0aGF0IGRvbid0IHN1 cHBvcnQgdHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24gb3IgaGF2ZQorICAgIGRpc2Fi bGVkIGl0IHdpbGwgc2VlIHRoZSBlbmNyeXB0ZWQgdmFsdWVzIGFzIGJ5dGUgYXJyYXlzLiAg Q2xpZW50cyB0aGF0CisgICAgc3VwcG9ydCB0cmFuc3BhcmVudCBkYXRhIGVuY3J5cHRpb24g d2lsbCBub3Qgc2VlIHRoZXNlIHR5cGVzIGluIHJlc3VsdAorICAgIHNldHMsIGFzIHRoZSBw cm90b2NvbCBsYXllciB3aWxsIHRyYW5zbGF0ZSB0aGVtIGJhY2sgdG8gZGVjbGFyZWQKKyAg ICB1bmRlcmx5aW5nIHR5cGUgaW4gdGhlIHRhYmxlIGRlZmluaXRpb24uCisgICA8L3BhcmE+ CisKKyAgICA8dGFibGUgaWQ9ImRhdGF0eXBlLWVuY3J5cHRlZC10YWJsZSI+CisgICAgIDx0 aXRsZT5UeXBlcyBSZWxhdGVkIHRvIEVuY3J5cHRpb248L3RpdGxlPgorICAgICA8dGdyb3Vw IGNvbHM9IjMiPgorICAgICAgPGNvbHNwZWMgY29sbmFtZT0iY29sMSIgY29sd2lkdGg9IjEq Ii8+CisgICAgICA8Y29sc3BlYyBjb2xuYW1lPSJjb2wyIiBjb2x3aWR0aD0iMyoiLz4KKyAg ICAgIDxjb2xzcGVjIGNvbG5hbWU9ImNvbDMiIGNvbHdpZHRoPSIyKiIvPgorICAgICAgPHRo ZWFkPgorICAgICAgIDxyb3c+CisgICAgICAgIDxlbnRyeT5OYW1lPC9lbnRyeT4KKyAgICAg ICAgPGVudHJ5PlN0b3JhZ2UgU2l6ZTwvZW50cnk+CisgICAgICAgIDxlbnRyeT5EZXNjcmlw dGlvbjwvZW50cnk+CisgICAgICAgPC9yb3c+CisgICAgICA8L3RoZWFkPgorICAgICAgPHRi b2R5PgorICAgICAgIDxyb3c+CisgICAgICAgIDxlbnRyeT48dHlwZT5wZ19lbmNyeXB0ZWRf ZGV0PC90eXBlPjwvZW50cnk+CisgICAgICAgIDxlbnRyeT4xIG9yIDQgYnl0ZXMgcGx1cyB0 aGUgYWN0dWFsIGJpbmFyeSBzdHJpbmc8L2VudHJ5PgorICAgICAgICA8ZW50cnk+ZW5jcnlw dGVkIGNvbHVtbiB2YWx1ZSwgZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uPC9lbnRyeT4KKyAg ICAgICA8L3Jvdz4KKyAgICAgICA8cm93PgorICAgICAgICA8ZW50cnk+PHR5cGU+cGdfZW5j cnlwdGVkX3JuZDwvdHlwZT48L2VudHJ5PgorICAgICAgICA8ZW50cnk+MSBvciA0IGJ5dGVz IHBsdXMgdGhlIGFjdHVhbCBiaW5hcnkgc3RyaW5nPC9lbnRyeT4KKyAgICAgICAgPGVudHJ5 PmVuY3J5cHRlZCBjb2x1bW4gdmFsdWUsIHJhbmRvbWl6ZWQgZW5jcnlwdGlvbjwvZW50cnk+ CisgICAgICAgPC9yb3c+CisgICAgICA8L3Rib2R5PgorICAgICA8L3Rncm91cD4KKyAgICA8 L3RhYmxlPgorICA8L3NlY3QxPgogIDwvY2hhcHRlcj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCAwM2MwMTkzNzA5 NGIuLjg5OGU0ZjdmOTNiMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtMTIxMSw2ICsxMjExLDM4NSBAQCA8dGl0 bGU+RXhjbHVzaW9uIENvbnN0cmFpbnRzPC90aXRsZT4KICAgPC9zZWN0Mj4KICA8L3NlY3Qx PgogCisgPHNlY3QxIGlkPSJkZGwtY29sdW1uLWVuY3J5cHRpb24iPgorICA8dGl0bGU+VHJh bnNwYXJlbnQgQ29sdW1uIEVuY3J5cHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgV2l0 aCA8Zmlyc3R0ZXJtPnRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uPC9maXJzdHRlcm0+ LCBjb2x1bW5zIGNhbiBiZQorICAgc3RvcmVkIGVuY3J5cHRlZCBpbiB0aGUgZGF0YWJhc2Uu ICBUaGUgZW5jcnlwdGlvbiBhbmQgZGVjcnlwdGlvbiBoYXBwZW5zIG9uCisgICB0aGUgY2xp ZW50LCBzbyB0aGF0IHRoZSBwbGFpbnRleHQgdmFsdWUgaXMgbmV2ZXIgc2VlbiBpbiB0aGUg ZGF0YWJhc2UKKyAgIGluc3RhbmNlIG9yIG9uIHRoZSBzZXJ2ZXIgaG9zdGluZyB0aGUgZGF0 YWJhc2UuICBUaGUgZHJhd2JhY2sgaXMgdGhhdCBtb3N0CisgICBvcGVyYXRpb25zLCBzdWNo IGFzIGZ1bmN0aW9uIGNhbGxzIG9yIHNvcnRpbmcsIGFyZSBub3QgcG9zc2libGUgb24KKyAg IGVuY3J5cHRlZCB2YWx1ZXMuCisgIDwvcGFyYT4KKworICA8c2VjdDI+CisgICA8dGl0bGU+ VXNpbmcgVHJhbnNwYXJlbnQgQ29sdW1uIEVuY3J5cHRpb248L3RpdGxlPgorCisgIDxwYXJh PgorICAgVHJhbnBhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiB1c2VzIHR3byBsZXZlbHMgb2Yg Y3J5cHRvZ3JhcGhpYyBrZXlzLiAgVGhlCisgICBhY3R1YWwgY29sdW1uIHZhbHVlIGlzIGVu Y3J5cHRlZCB1c2luZyBhIHN5bW1ldHJpYyBhbGdvcml0aG0sIHN1Y2ggYXMgQUVTLAorICAg dXNpbmcgYSA8Zmlyc3R0ZXJtPmNvbHVtbiBlbmNyeXB0aW9uIGtleTwvZmlyc3R0ZXJtPgor ICAgKDxhY3JvbnltPkNFSzwvYWNyb255bT4pLiAgVGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtl eSBpcyBpbiB0dXJuIGVuY3J5cHRlZAorICAgdXNpbmcgYW4gYXN5bW1ldHJpYyBhbGdvcml0 aG0sIHN1Y2ggYXMgUlNBLCB1c2luZyBhIDxmaXJzdHRlcm0+Y29sdW1uCisgICBtYXN0ZXIg a2V5PC9maXJzdHRlcm0+ICg8YWNyb255bT5DTUs8L2Fjcm9ueW0+KS4gIFRoZSBlbmNyeXB0 ZWQgQ0VLIGlzCisgICBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlIHN5c3RlbS4gIFRoZSBDTUsg aXMgbm90IHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UKKyAgIHN5c3RlbTsgaXQgaXMgc3RvcmVk IG9uIHRoZSBjbGllbnQgb3Igc29tZXdoZXJlIHdoZXJlIHRoZSBjbGllbnQgY2FuIGFjY2Vz cworICAgaXQsIHN1Y2ggYXMgaW4gYSBsb2NhbCBmaWxlIG9yIGluIGEga2V5IG1hbmFnZW1l bnQgc3lzdGVtLiAgVGhlIGRhdGFiYXNlCisgICBzeXN0ZW0gb25seSByZWNvcmRzIHdoZXJl IHRoZSBDTUsgaXMgc3RvcmVkIGFuZCBwcm92aWRlcyB0aGlzIGluZm9ybWF0aW9uCisgICB0 byB0aGUgY2xpZW50LiAgV2hlbiByb3dzIGNvbnRhaW5pbmcgZW5jcnlwdGVkIGNvbHVtbnMg YXJlIHNlbnQgdG8gdGhlCisgICBjbGllbnQsIHRoZSBzZXJ2ZXIgZmlyc3Qgc2VuZHMgYW55 IG5lY2Vzc2FyeSBDTUsgaW5mb3JtYXRpb24sIGZvbGxvd2VkIGJ5CisgICBhbnkgcmVxdWly ZWQgQ0VLLiAgVGhlIGNsaWVudCB0aGVuIGxvb2tzIHVwIHRoZSBDTUsgYW5kIHVzZXMgdGhh dCB0bworICAgZGVjcnlwdCB0aGUgQ0VLLiAgVGhlbiBpdCBkZWNyeXB0cyBpbmNvbWluZyBy b3cgZGF0YSB1c2luZyB0aGUgQ0VLIGFuZAorICAgcHJvdmlkZXMgdGhlIGRlY3J5cHRlZCBy b3cgZGF0YSB0byB0aGUgYXBwbGljYXRpb24uCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAg IEhlcmUgaXMgYW4gZXhhbXBsZSBkZWNsYXJpbmcgYSBjb2x1bW4gYXMgZW5jcnlwdGVkOgor PHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFRBQkxFIGN1c3RvbWVycyAoCisgICAgaWQgaW50 IFBSSU1BUlkgS0VZLAorICAgIG5hbWUgdGV4dCBOT1QgTlVMTCwKKyAgICAuLi4KKyAgICBj cmVkaXRjYXJkX251bSB0ZXh0IDxlbXBoYXNpcz5FTkNSWVBURUQgV0lUSCAoY29sdW1uX2Vu Y3J5cHRpb25fa2V5ID0gY2VrMSk8L2VtcGhhc2lzPgorKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+ CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIENvbHVtbiBlbmNyeXB0aW9uIHN1cHBvcnRz IDxmaXJzdHRlcm0+cmFuZG9taXplZDwvZmlyc3R0ZXJtPgorICAgKGFsc28ga25vd24gYXMg PGZpcnN0dGVybT5wcm9iYWJpbGlzdGljPC9maXJzdHRlcm0+KSBhbmQKKyAgIDxmaXJzdHRl cm0+ZGV0ZXJtaW5pc3RpYzwvZmlyc3R0ZXJtPiBlbmNyeXB0aW9uLiAgVGhlIGFib3ZlIGV4 YW1wbGUgdXNlcworICAgcmFuZG9taXplZCBlbmNyeXB0aW9uLCB3aGljaCBpcyB0aGUgZGVm YXVsdC4gIFJhbmRvbWl6ZWQgZW5jcnlwdGlvbiB1c2VzIGEKKyAgIHJhbmRvbSBpbml0aWFs aXphdGlvbiB2ZWN0b3IgZm9yIGVhY2ggZW5jcnlwdGlvbiwgc28gdGhhdCBldmVuIGlmIHRo ZQorICAgcGxhaW50ZXh0IG9mIHR3byByb3dzIGlzIGVxdWFsLCB0aGUgZW5jcnlwdGVkIHZh bHVlcyB3aWxsIGJlIGRpZmZlcmVudC4KKyAgIFRoaXMgcHJldmVudHMgc29tZW9uZSB3aXRo IGRpcmVjdCBhY2Nlc3MgdG8gdGhlIGRhdGFiYXNlIHNlcnZlciB0byBtYWtlCisgICBjb21w dXRhdGlvbnMgc3VjaCBhcyBkaXN0aW5jdCBjb3VudHMgb24gdGhlIGVuY3J5cHRlZCB2YWx1 ZXMuCisgICBEZXRlcm1pbmlzdGljIGVuY3J5cHRpb24gdXNlcyBhIGZpeGVkIGluaXRpYWxp emF0aW9uIHZlY3Rvci4gIFRoaXMgcmVkdWNlcworICAgc2VjdXJpdHksIGJ1dCBpdCBhbGxv d3MgZXF1YWxpdHkgc2VhcmNoZXMgb24gZW5jcnlwdGVkIHZhbHVlcy4gIFRoZQorICAgZm9s bG93aW5nIGV4YW1wbGUgZGVjbGFyZXMgYSBjb2x1bW4gd2l0aCBkZXRlcm1pbmlzdGljIGVu Y3J5cHRpb246Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVEFCTEUgZW1wbG95ZWVzICgK KyAgICBpZCBpbnQgUFJJTUFSWSBLRVksCisgICAgbmFtZSB0ZXh0IE5PVCBOVUxMLAorICAg IC4uLgorICAgIHNzbiB0ZXh0IEVOQ1JZUFRFRCBXSVRIICgKKyAgICAgICAgY29sdW1uX2Vu Y3J5cHRpb25fa2V5ID0gY2VrMSwgPGVtcGhhc2lzPmVuY3J5cHRpb25fdHlwZSA9IGRldGVy bWluaXN0aWM8L2VtcGhhc2lzPikKKyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+ CisKKyAgPHBhcmE+CisgICBOdWxsIHZhbHVlcyBhcmUgbm90IGVuY3J5cHRlZCBieSB0cmFu c3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbjsgbnVsbCB2YWx1ZXMKKyAgIHNlbnQgYnkgdGhl IGNsaWVudCBhcmUgdmlzaWJsZSBhcyBudWxsIHZhbHVlcyBpbiB0aGUgZGF0YWJhc2UuICBJ ZiB0aGUgZmFjdAorICAgdGhhdCBhIHZhbHVlIGlzIG51bGwgbmVlZHMgdG8gYmUgaGlkZGVu IGZyb20gdGhlIHNlcnZlciwgdGhpcyBpbmZvcm1hdGlvbgorICAgbmVlZHMgdG8gYmUgZW5j b2RlZCBpbnRvIGEgbm9ubnVsbCB2YWx1ZSBpbiB0aGUgY2xpZW50IHNvbWVob3cuCisgIDwv cGFyYT4KKyAgPC9zZWN0Mj4KKworICA8c2VjdDI+CisgICA8dGl0bGU+UmVhZGluZyBhbmQg V3JpdGluZyBFbmNyeXB0ZWQgQ29sdW1uczwvdGl0bGU+CisKKyAgIDxwYXJhPgorICAgIFJl YWRpbmcgYW5kIHdyaXRpbmcgZW5jcnlwdGVkIGNvbHVtbnMgaXMgbWVhbnQgdG8gYmUgaGFu ZGxlZCBhdXRvbWF0aWNhbGx5CisgICAgYnkgdGhlIGNsaWVudCBsaWJyYXJ5L2RyaXZlciBh bmQgc2hvdWxkIGJlIG1vc3RseSB0cmFuc3BhcmVudCB0byB0aGUKKyAgICBhcHBsaWNhdGlv biBjb2RlLCBpZiBjZXJ0YWluIHByZXJlcXVpc2l0ZXMgYXJlIGZ1bGZpbGxlZDoKKworICAg IDxpdGVtaXplZGxpc3Q+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAg IFRoZSBjbGllbnQgbGlicmFyeSBuZWVkcyB0byBzdXBwb3J0IHRyYW5zcGFyZW50IGNvbHVt biBlbmNyeXB0aW9uLiAgTm90CisgICAgICAgYWxsIGNsaWVudCBsaWJyYXJpZXMgZG8uICBG dXJ0aGVybW9yZSwgdGhlIGNsaWVudCBsaWJyYXJ5IG1pZ2h0IHJlcXVpcmUKKyAgICAgICB0 aGF0IHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uIGlzIGV4cGxpY2l0bHkgZW5hYmxl ZCBhdCBjb25uZWN0aW9uCisgICAgICAgdGltZS4gIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBv ZiB0aGUgY2xpZW50IGxpYnJhcnkgZm9yIGRldGFpbHMuCisgICAgICA8L3BhcmE+CisgICAg IDwvbGlzdGl0ZW0+CisKKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAg Q29sdW1uIG1hc3RlciBrZXlzIGFuZCBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzIGhhdmUgYmVl biBzZXQgdXAsIGFuZCB0aGUKKyAgICAgICBjbGllbnQgbGlicmFyeSBoYXMgYmVlbiBjb25m aWd1cmVkIHRvIGJlIGFibGUgdG8gbG9vayB1cCBjb2x1bW4gbWFzdGVyCisgICAgICAga2V5 cyBmcm9tIHRoZSBrZXkgc3RvcmUgb3Iga2V5IG1hbmFnZW1lbnQgc3lzdGVtLgorICAgICAg PC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgPC9w YXJhPgorCisgICA8cGFyYT4KKyAgICBSZWFkaW5nIGZyb20gZW5jcnlwdGVkIGNvbHVtbnMg d2lsbCB0aGVuIHdvcmsgYXV0b21hdGljYWxseS4gIEZvciBleGFtcGxlLAorICAgIHVzaW5n IHRoZSBhYm92ZSBleGFtcGxlLAorPHByb2dyYW1saXN0aW5nPgorU0VMRUNUIHNzbiBGUk9N IGVtcGxveWVlcyBXSEVSRSBpZCA9IDU7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgIHdpbGwg cmV0dXJuIHRoZSB1bmVuY3J5cHRlZCB2YWx1ZSBmb3IgdGhlIDxsaXRlcmFsPnNzbjwvbGl0 ZXJhbD4gY29sdW1uIGluCisgICAgYW55IHJvd3MgZm91bmQuCisgICA8L3BhcmE+CisKKyAg IDxwYXJhPgorICAgIFdyaXRpbmcgdG8gZW5jcnlwdGVkIGNvbHVtbnMgcmVxdWlyZXMgdGhh dCB0aGUgZXh0ZW5kZWQgcXVlcnkgcHJvdG9jb2wKKyAgICAocHJvdG9jb2wtbGV2ZWwgcHJl cGFyZWQgc3RhdGVtZW50cykgYmUgdXNlZCwgc28gdGhhdCB0aGUgdmFsdWVzIHRvIGJlCisg ICAgZW5jcnlwdGVkIGFyZSBzdXBwbGllZCBzZXBhcmF0ZWx5IGZyb20gdGhlIFNRTCBjb21t YW5kLiAgRm9yIGV4YW1wbGUsCisgICAgdXNpbmcsIHNheSwgcHNxbCBvciBsaWJwcSwgdGhl IGZvbGxvd2luZyB3b3VsZCBub3Qgd29yazoKKzxwcm9ncmFtbGlzdGluZz4KKy0tIFdST05H IQorSU5TRVJUIElOVE8gc3NuIChpZCwgbmFtZSwgc3NuKSBWQUxVRVMgKDEsICdTb21lb25l JywgJzEyMzQ1Jyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgIFRoaXMgd2lsbCBsZWFrIHRo ZSB1bmVuY3J5cHRlZCB2YWx1ZSA8bGl0ZXJhbD4xMjM0NTwvbGl0ZXJhbD4gdG8gdGhlCisg ICAgc2VydmVyLCB0aHVzIGRlZmVhdGluZyB0aGUgcG9pbnQgb2YgY29sdW1uIGVuY3J5cHRp b24uCisgICAgTm90ZSB0aGF0IHVzaW5nIHNlcnZlci1zaWRlIHByZXBhcmVkIHN0YXRlbWVu dHMgdXNpbmcgdGhlIFNRTCBjb21tYW5kcworICAgIDxjb21tYW5kPlBSRVBBUkU8L2NvbW1h bmQ+IGFuZCA8Y29tbWFuZD5FWEVDVVRFPC9jb21tYW5kPiBpcyBlcXVhbGx5CisgICAgaW5j b3JyZWN0LCBzaW5jZSB0aGF0IHdvdWxkIGFsc28gbGVhayB0aGUgcGFyYW1ldGVycyBwcm92 aWRlZCB0bworICAgIDxjb21tYW5kPkVYRUNVVEU8L2NvbW1hbmQ+IHRvIHRoZSBzZXJ2ZXIu CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSBjb3JyZWN0IG5vdGlvbmFsIG9y ZGVyIG9mIG9wZXJhdGlvbnMgaXMgaWxsdXN0cmF0ZWQgaGVyZSB1c2luZworICAgIGxpYnBx LWxpa2UgY29kZSAod2l0aG91dCBlcnJvciBjaGVja2luZyk6Cis8cHJvZ3JhbWxpc3Rpbmc+ CitQR3Jlc3VsdCAgICp0bXByZXMsCisgICAgICAgICAgICpyZXM7Citjb25zdCBjaGFyICp2 YWx1ZXNbXSA9IHsiMSIsICJTb21lb25lIiwgIjEyMzQ1In07CisKK1BRcHJlcGFyZShjb25u LCAiIiwgIklOU0VSVCBJTlRPIHNzbiAoaWQsIG5hbWUsIHNzbikgVkFMVUVTICgkMSwgJDIs ICQzKSIsIDMsIE5VTEwpOworCisvKiBUaGlzIGZldGNoZXMgaW5mb3JtYXRpb24gYWJvdXQg d2hpY2ggcGFyYW1ldGVycyBuZWVkIHRvIGJlIGVuY3J5cHRlZC4gKi8KK3RtcHJlcyA9IFBR ZGVzY3JpYmVQcmVwYXJlZChjb25uLCAiIik7CisKK3JlcyA9IFBRZXhlY1ByZXBhcmVkMihj b25uLCAiIiwgMywgdmFsdWVzLCBOVUxMLCBOVUxMLCBOVUxMLCAwLCB0bXByZXMpOworCisv KiBwcmludCByZXN1bHQgaW4gcmVzICovCis8L3Byb2dyYW1saXN0aW5nPgorICAgIEhpZ2hl ci1sZXZlbCBjbGllbnQgbGlicmFyaWVzIG1pZ2h0IHVzZSB0aGUgcHJvdG9jb2wtbGV2ZWwg cHJlcGFyZWQKKyAgICBzdGF0ZW1lbnRzIGF1dG9tYXRpY2FsbHkgYW5kIHRodXMgd29uJ3Qg cmVxdWlyZSBhbnkgY29kZSBjaGFuZ2VzLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAg ICA8YXBwbGljYXRpb24+cHNxbDwvYXBwbGljYXRpb24+IHByb3ZpZGVzIHRoZSBjb21tYW5k CisgICAgPGxpdGVyYWw+XGdlbmNyPC9saXRlcmFsPiB0byBydW4gcHJlcGFyZWQgc3RhdGVt ZW50cyBsaWtlIHRoaXM6Cis8cHJvZ3JhbWxpc3Rpbmc+CitJTlNFUlQgSU5UTyBzc24gKGlk LCBuYW1lLCBzc24pIFZBTFVFUyAoJDEsICQyLCAkMykgXGdlbmNyICcxJyAnU29tZW9uZScs ICcxMjM0NScKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICA8L3BhcmE+CisgIDwvc2VjdDI+CisK KyAgPHNlY3QyPgorICAgPHRpdGxlPlNldHRpbmcgdXAgVHJhbnNwYXJlbnQgQ29sdW1uIEVu Y3J5cHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIHN0ZXBzIHRvIHNldCB1cCB0 cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiBmb3IgYSBkYXRhYmFzZSBhcmU6CisKKyAg IDxvcmRlcmVkbGlzdD4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQ3Jl YXRlIHRoZSBrZXkgbWF0ZXJpYWwgZm9yIHRoZSBDTUssIGZvciBleGFtcGxlLCB1c2luZyBh IGNyeXB0b2dyYXBoaWMKKyAgICAgIGxpYnJhcnkgb3IgdG9vbGtpdCwgb3IgYSBrZXkgbWFu YWdlbWVudCBzeXN0ZW0uICBTZWN1cmUgYWNjZXNzIHRvIHRoZQorICAgICAga2V5IGFzIGFw cHJvcHJpYXRlLCB1c2luZyBhY2Nlc3MgY29udHJvbCwgcGFzc3dvcmRzLCBldGMuCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIFJlZ2lzdGVyIHRoZSBDTUsgaW4gdGhlIGRhdGFiYXNlIHVzaW5nIHRoZSBT UUwgY29tbWFuZCA8eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlLWNvbHVtbi1tYXN0ZXIta2V5 Ii8+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBDcmVhdGUgdGhlICh1bmVuY3J5cHRlZCkga2V5IG1hdGVy aWFsIGZvciB0aGUgQ0VLIGluIGEgdGVtcG9yYXJ5CisgICAgICBsb2NhdGlvbi4gIChJdCB3 aWxsIGJlIGVuY3J5cHRlZCBpbiB0aGUgbmV4dCBzdGVwLiAgRGVwZW5kaW5nIG9uIHRoZQor ICAgICAgYXZhaWxhYmxlIHRvb2xzLCBpdCBtaWdodCBiZSBwb3NzaWJsZSBhbmQgc2Vuc2li bGUgdG8gY29tYmluZSB0aGVzZSB0d28KKyAgICAgIHN0ZXBzLikKKyAgICAgPC9wYXJhPgor ICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg RW5jcnlwdCB0aGUgY3JlYXRlZCBDRUsga2V5IG1hdGVyaWFsIHVzaW5nIHRoZSBDTUsgKGNy ZWF0ZWQgZWFybGllcikuCisgICAgICAoVGhlIHVuZW5jcnlwdGVkIHZlcnNpb24gb2YgdGhl IENFSyBrZXkgbWF0ZXJpYWwgY2FuIG5vdyBiZSBkaXNwb3NlZAorICAgICAgb2YuKQorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICBSZWdpc3RlciB0aGUgQ0VLIGluIHRoZSBkYXRhYmFzZSB1c2luZyB0aGUg U1FMIGNvbW1hbmQgPHhyZWYKKyAgICAgIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1uLWVu Y3J5cHRpb24ta2V5Ii8+LiAgVGhpcyBjb21tYW5kCisgICAgICA8cXVvdGU+dXBsb2Fkczwv cXVvdGU+IHRoZSBlbmNyeXB0ZWQgQ0VLIGtleSBtYXRlcmlhbCBjcmVhdGVkIGluIHRoZQor ICAgICAgcHJldmlvdXMgc3RlcCB0byB0aGUgZGF0YWJhc2Ugc2VydmVyLiAgVGhlIGxvY2Fs IGNvcHkgb2YgdGhlIENFSyBrZXkKKyAgICAgIG1hdGVyaWFsIGNhbiB0aGVuIGJlIHJlbW92 ZWQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgor ICAgICA8cGFyYT4KKyAgICAgIENyZWF0ZSBlbmNyeXB0ZWQgY29sdW1ucyB1c2luZyB0aGUg Y3JlYXRlZCBDRUsuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIENvbmZpZ3VyZSB0aGUgY2xpZW50IGxpYnJh cnkvZHJpdmVyIHRvIGJlIGFibGUgdG8gbG9vayB1cCB0aGUgQ01LCisgICAgICBjcmVhdGVk IGVhcmxpZXIuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC9vcmRlcmVk bGlzdD4KKworICAgT25jZSB0aGlzIGlzIGRvbmUsIHZhbHVlcyBjYW4gYmUgd3JpdHRlbiB0 byBhbmQgcmVhZCBmcm9tIHRoZSBlbmNyeXB0ZWQKKyAgIGNvbHVtbnMgaW4gYSB0cmFuc3Bh cmVudCB3YXkuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIE5vdGUgdGhhdCB0aGVzZSBz dGVwcyBzaG91bGQgbm90IGJlIHJ1biBvbiB0aGUgZGF0YWJhc2Ugc2VydmVyLCBidXQgb24g c29tZQorICAgY2xpZW50IG1hY2hpbmUuICBOZWl0aGVyIHRoZSBDTUsgbm9yIHRoZSB1bmVu Y3J5cHRlZCBDRUsgc2hvdWxkIGV2ZXIgYXBwZWFyCisgICBvbiB0aGUgZGF0YWJhc2Ugc2Vy dmVyIGhvc3QuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSBzcGVjaWZpYyBkZXRh aWxzIG9mIHRoaXMgc2V0dXAgZGVwZW5kIG9uIHRoZSBkZXNpcmVkIENNSyBzdG9yYWdlCisg ICBtZWNoYW5pc20va2V5IG1hbmFnZW1lbnQgc3lzdGVtIGFzIHdlbGwgYXMgdGhlIGNsaWVu dCBsaWJyYXJpZXMgdG8gYmUgdXNlZC4KKyAgIFRoZSBmb2xsb3dpbmcgZXhhbXBsZSB1c2Vz IHRoZSA8Y29tbWFuZD5vcGVuc3NsPC9jb21tYW5kPiBjb21tYW5kLWxpbmUgdG9vbAorICAg dG8gc2V0IHVwIHRoZSBrZXlzLgorCisgICA8b3JkZXJlZGxpc3Q+CisgICAgPGxpc3RpdGVt PgorICAgICA8cGFyYT4KKyAgICAgIENyZWF0ZSB0aGUga2V5IG1hdGVyaWFsIGZvciB0aGUg Q01LIGFuZCB3cml0ZSBpdCB0byBhIGZpbGU6Cis8cHJvZ3JhbWxpc3Rpbmc+CitvcGVuc3Ns IGdlbnBrZXkgLWFsZ29yaXRobSByc2EgLW91dCBjbWsxLnBlbQorPC9wcm9ncmFtbGlzdGlu Zz4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+Cisg ICAgIDxwYXJhPgorICAgICAgUmVnaXN0ZXIgdGhlIENNSyBpbiB0aGUgZGF0YWJhc2U6Cis8 cHJvZ3JhbWxpc3Rpbmc+Citwc3FsIC4uLiAtYyAiQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZ IGNtazEgV0lUSCAocmVhbG0gPSAnJykiCis8L3Byb2dyYW1saXN0aW5nPgorICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+Cisg ICAgICBDcmVhdGUgdGhlIHVuZW5jcnlwdGVkIENFSyBrZXkgbWF0ZXJpYWwgaW4gYSBmaWxl OgorPHByb2dyYW1saXN0aW5nPgorb3BlbnNzbCByYW5kIC1vdXQgY2VrMS5iaW4gMzIKKzwv cHJvZ3JhbWxpc3Rpbmc+CisgICAgICAoU2VlIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWNl ay10YWJsZSIvPiBmb3IgcmVxdWlyZWQga2V5IGxlbmd0aHMuKQorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBF bmNyeXB0IHRoZSBjcmVhdGVkIENFSyBrZXkgbWF0ZXJpYWw6Cis8cHJvZ3JhbWxpc3Rpbmc+ CitvcGVuc3NsIHBrZXl1dGwgLWVuY3J5cHQgLWlua2V5IGNtazEucGVtIC1wa2V5b3B0IHJz YV9wYWRkaW5nX21vZGU6b2FlcCAtaW4gY2VrMS5iaW4gLW91dCBjZWsxLmJpbi5lbmMKK3Jt IGNlazEuYmluCis8L3Byb2dyYW1saXN0aW5nPgorICAgICA8L3BhcmE+CisgICAgPC9saXN0 aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBSZWdpc3RlciB0 aGUgQ0VLIGluIHRoZSBkYXRhYmFzZToKKzxwcm9ncmFtbGlzdGluZz4KKyMgY29udmVydCBm aWxlIGNvbnRlbnRzIHRvIGhleCBlbmNvZGluZzsgdGhpcyBpcyBqdXN0IG9uZSBwb3NzaWJs ZSB3YXkKK2Nla2VuY2hleD0kKHBlcmwgLTBuZSAncHJpbnQgdW5wYWNrICJIKiInIGNlazEu YmluLmVuYykKK3BzcWwgLi4uIC1jICJDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNl azEgV0lUSCBWQUxVRVMgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwgZW5jcnlwdGVkX3Zh bHVlID0gJ1xceCR7Y2VrZW5jaGV4fScpIgorcm0gY2VrMS5iaW4uZW5jCis8L3Byb2dyYW1s aXN0aW5nPgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRl bT4KKyAgICAgPHBhcmE+CisgICAgICBDcmVhdGUgZW5jcnlwdGVkIGNvbHVtbnMgYXMgc2hv d24gaW4gdGhlIGV4YW1wbGVzIGFib3ZlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBDb25maWd1cmUgdGhl IGxpYnBxIGZvciBDTUsgbG9va3VwIChzZWUgYWxzbyA8eHJlZiBsaW5rZW5kPSJsaWJwcS1j b25uZWN0LWNta2xvb2t1cCIvPik6Cis8cHJvZ3JhbWxpc3Rpbmc+CitQR0NNS0xPT0tVUD0i Kj1maWxlOiRQV0QvJWsucGVtIgorZXhwb3J0IFBHQ01LTE9PS1VQCis8L3Byb2dyYW1saXN0 aW5nPgorICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBBZGRpdGlvbmFsbHks IGxpYnBxIHJlcXVpcmVzIHRoYXQgdGhlIGNvbm5lY3Rpb24gcGFyYW1ldGVyIDx4cmVmCisg ICAgICBsaW5rZW5kPSJsaWJwcS1jb25uZWN0LWNvbHVtbi1lbmNyeXB0aW9uIi8+IGJlIHNl dCBpbiBvcmRlciB0byBhY3RpdmF0ZQorICAgICAgdGhlIHRyYW5zcGFyZW50IGNvbHVtbiBl bmNyeXB0aW9uIGZ1bmN0aW9uYWxpdHkuICBUaGlzIHNob3VsZCBiZSBkb25lIGluCisgICAg ICB0aGUgY29ubmVjdGlvbiBwYXJhbWV0ZXJzIG9mIHRoZSBhcHBsaWNhdGlvbiwgYnV0IGFu IGVudmlyb25tZW50CisgICAgICB2YXJpYWJsZSAoPGVudmFyPlBHQ09MVU1ORU5DUllQVElP TjwvZW52YXI+KSBpcyBhbHNvIGF2YWlsYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisgICA8L29yZGVyZWRsaXN0PgorICA8L3BhcmE+CisgIDwvc2VjdDI+CisKKyAg PHNlY3QyPgorICAgPHRpdGxlPkd1aWRhbmNlIG9uIFVzaW5nIFRyYW5zcGFyZW50IENvbHVt biBFbmNyeXB0aW9uPC90aXRsZT4KKworICAgPHBhcmE+CisgICAgVGhpcyBzZWN0aW9uIGNv bnRhaW5zIHNvbWUgaW5mb3JtYXRpb24gb24gd2hlbiBpdCBpcyBvciBpcyBub3QgYXBwcm9w cmlhdGUKKyAgICB0byB1c2UgdHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24sIGFuZCB3 aGF0IHByZWNhdXRpb25zIG5lZWQgdG8gYmUKKyAgICB0YWtlbiB0byBtYWludGFpbiBpdHMg c2VjdXJpdHkuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIEluIGdlbmVyYWwsIGNv bHVtbiBlbmNyeXB0aW9uIGlzIG5ldmVyIGEgcmVwbGFjZW1lbnQgZm9yIGFkZGl0aW9uYWwK KyAgICBzZWN1cml0eSBhbmQgZW5jcnlwdGlvbiB0ZWNobmlxdWVzIHN1Y2ggYXMgdHJhbnNt aXNzaW9uIGVuY3J5cHRpb24KKyAgICAoU1NML1RMUyksIHN0b3JhZ2UgZW5jcnlwdGlvbiwg c3Ryb25nIGFjY2VzcyBjb250cm9sLCBhbmQgcGFzc3dvcmQKKyAgICBzZWN1cml0eS4gIENv bHVtbiBlbmNyeXB0aW9uIG9ubHkgdGFyZ2V0cyBzcGVjaWZpYyB1c2UgY2FzZXMgYW5kIHNo b3VsZCBiZQorICAgIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBhZGRpdGlvbmFsIHNlY3Vy aXR5IG1lYXN1cmVzLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBBIHR5cGljYWwg dXNlIGNhc2UgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGlzIHRvIGVuY3J5cHQgc3BlY2lmaWMg dmFsdWVzCisgICAgd2l0aCBhZGRpdGlvbmFsIHNlY3VyaXR5IHJlcXVpcmVtZW50cywgZm9y IGV4YW1wbGUgY3JlZGl0IGNhcmQgbnVtYmVycy4KKyAgICBUaGlzIHdvdWxkIGFsbG93IHlv dSB0byBzdG9yZSB0aGF0IHNlY3VyaXR5LXNlbnNpdGl2ZSBkYXRhIHRvZ2V0aGVyIHdpdGgK KyAgICB0aGUgcmVzdCBvZiB5b3VyIGRhdGEgKHRodXMgZ2V0dGluZyB2YXJpb3VzIGJlbmVm aXRzLCBzdWNoIGFzIHJlZmVyZW50aWFsCisgICAgaW50ZWdyaXR5LCBjb25zaXN0ZW50IGJh Y2t1cHMpLCB3aGlsZSBnaXZpbmcgYWNjZXNzIHRvIHRoYXQgZGF0YSBvbmx5IHRvCisgICAg c3BlY2lmaWMgY2xpZW50cyBhbmQgcHJldmVudGluZyBhY2NpZGVudGFsIGxlYWthZ2Ugb24g dGhlIHNlcnZlciBzaWRlCisgICAgKHNlcnZlciBsb2dzLCBmaWxlIHN5c3RlbSBiYWNrdXBz LCBldGMuKS4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgQ29sdW1uIGVuY3J5cHRp b24gY2Fubm90IGhpZGUgdGhlIGV4aXN0ZW5jZSBvciBhYnNlbmNlIG9mIGRhdGEsIGl0IGNh bgorICAgIG9ubHkgZGlzZ3Vpc2UgdGhlIHBhcnRpY3VsYXIgZGF0YSB0aGF0IGlzIGtub3du IHRvIGV4aXN0LiAgRm9yIGV4YW1wbGUsCisgICAgc3RvcmluZyBhIGNsZWFydGV4dCBwZXJz b24gbmFtZSBhbmQgYW4gZW5jcnlwdGVkIGNyZWRpdCBjYXJkIG51bWJlcgorICAgIGluZGlj YXRlcyB0aGF0IHRoZSBwZXJzb24gaGFzIGEgY3JlZGl0IGNhcmQuICBUaGF0IG1pZ2h0IG5v dCByZXZlYWwgdG9vCisgICAgbXVjaCBpZiB0aGUgZGF0YWJhc2UgaXMgZm9yIGFuIG9ubGlu ZSBzdG9yZSBhbmQgdGhlcmUgaXMgb3RoZXIgZGF0YSBuZWFyYnkKKyAgICB0aGF0IHNob3dz IHRoYXQgdGhlIHBlcnNvbiBoYXMgcmVjZW50bHkgbWFkZSBwdXJjaGFzZXMuICBCdXQgaW4g YW5vdGhlcgorICAgIGV4YW1wbGUsIHN0b3JpbmcgYSBjbGVhcnRleHQgcGVyc29uIG5hbWUg YW5kIGFuIGVuY3J5cHRlZCBkaWFnbm9zaXMgaW4gYQorICAgIG1lZGljYWwgZGF0YWJhc2Ug cHJvYmFibHkgaW5kaWNhdGVzIHRoYXQgdGhlIHBlcnNvbiBoYXMgYSBtZWRpY2FsIGlzc3Vl LgorICAgIERlcGVuZGluZyBvbiB0aGUgY2lyY3Vtc3RhbmNlcywgdGhhdCBtaWdodCBub3Qg YnkgaXRzZWxmIGJlIHN1ZmZpY2llbnQKKyAgICBzZWN1cml0eS4KKyAgIDwvcGFyYT4KKwor ICAgPHBhcmE+CisgICAgRW5jcnlwdGlvbiBjYW5ub3QgY29tcGxldGVseSBoaWRlIHRoZSBs ZW5ndGggb2YgdmFsdWVzLiAgVGhlIGVuY3J5cHRpb24KKyAgICBtZXRob2RzIHdpbGwgcGFk IHZhbHVlcyB0byBtdWx0aXBsZXMgb2YgdGhlIHVuZGVybHlpbmcgY2lwaGVyJ3MgYmxvY2sg c2l6ZQorICAgICh1c3VhbGx5IDE2IGJ5dGVzKSwgc28gc29tZSBsZW5ndGggZGlmZmVyZW5j ZXMgd2lsbCBiZSB1bmlmaWVkIHRoaXMgd2F5LgorICAgIFRoZXJlIGlzIG5vIGNvbmNlcm4g aWYgYWxsIHZhbHVlcyBhcmUgb2YgdGhlIHNhbWUgbGVuZ3RoIChlLmcuLCBjcmVkaXQKKyAg ICBjYXJkIG51bWJlcnMpLiAgQnV0IGlmIHRoZXJlIGFyZSBzaWduZmljYW50IGxlbmd0aCBk aWZmZXJlbmNlcyBiZXR3ZWVuCisgICAgdmFsaWQgdmFsdWVzIGFuZCB0aGF0IGxlbmd0aCBp bmZvcm1hdGlvbiBpcyBzZWN1cml0eS1zZW5zaXRpdmUsIHRoZW4KKyAgICBhcHBsaWNhdGlv bi1zcGVjaWZpYyB3b3JrYXJvdW5kcyBzdWNoIGFzIHBhZGRpbmcgd291bGQgbmVlZCB0byBi ZSBhcHBsaWVkLgorICAgIEhvdyB0byBkbyB0aGF0IHNlY3VyZWx5IGlzIGJleW9uZCB0aGUg c2NvcGUgb2YgdGhpcyBtYW51YWwuCisgICA8L3BhcmE+CisKKyAgIDxub3RlPgorICAgIDxw YXJhPgorICAgICBTdG9yaW5nIGRhdGEgc3VjaCBjcmVkaXQgY2FyZCBkYXRhLCBtZWRpY2Fs IGRhdGEsIGFuZCBzbyBvbiBpcyB1c3VhbGx5CisgICAgIHN1YmplY3QgdG8gZ292ZXJubWVu dCBvciBpbmR1c3RyeSByZWd1bGF0aW9ucy4gIFRoaXMgc2VjdGlvbiBpcyBub3QgbWVhbnQK KyAgICAgdG8gcHJvdmlkZSBjb21wbGV0ZSBpbnN0cnVjdGlvbnMgb24gaG93IHRvIGRvIHRo aXMgY29ycmVjdGx5LiAgUGxlYXNlCisgICAgIHNlZWsgYWRkaXRpb25hbCBhZHZpY2Ugd2hl biBlbmdhZ2luZyBpbiBzdWNoIHByb2plY3RzLgorICAgIDwvcGFyYT4KKyAgIDwvbm90ZT4K KyAgPC9zZWN0Mj4KKyA8L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJkZGwtc3lzdGVtLWNvbHVt bnMiPgogICA8dGl0bGU+U3lzdGVtIENvbHVtbnM8L3RpdGxlPgogCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbCBiL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21s CmluZGV4IGQ2ZDBhM2E4MTQwYy4uMTA1MDdlNDM5MTFlIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvZ2xvc3Nhcnkuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbApA QCAtMzUzLDYgKzM1MywyOSBAQCA8dGl0bGU+R2xvc3Nhcnk8L3RpdGxlPgogICAgPC9nbG9z c2RlZj4KICAgPC9nbG9zc2VudHJ5PgogCisgIDxnbG9zc2VudHJ5IGlkPSJnbG9zc2FyeS1j b2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorICAgPGdsb3NzdGVybT5Db2x1bW4gZW5jcnlwdGlv biBrZXk8L2dsb3NzdGVybT4KKyAgIDxnbG9zc2RlZj4KKyAgICA8cGFyYT4KKyAgICAgQSBj cnlwdG9ncmFwaGljIGtleSB1c2VkIHRvIGVuY3J5cHQgY29sdW1uIHZhbHVlcyB3aGVuIHVz aW5nIHRyYW5zcGFyZW50CisgICAgIGNvbHVtbiBlbmNyeXB0aW9uLiAgQ29sdW1uIGVuY3J5 cHRpb24ga2V5cyBhcmUgc3RvcmVkIGluIHRoZSBkYXRhYmFzZQorICAgICBlbmNyeXB0ZWQg YnkgYW5vdGhlciBrZXksIHRoZSBjb2x1bW4gbWFzdGVyIGtleS4KKyAgICA8L3BhcmE+Cisg ICA8L2dsb3NzZGVmPgorICA8L2dsb3NzZW50cnk+CisKKyAgPGdsb3NzZW50cnkgaWQ9Imds b3NzYXJ5LWNvbHVtbi1tYXN0ZXIta2V5Ij4KKyAgIDxnbG9zc3Rlcm0+Q29sdW1uIG1hc3Rl ciBrZXk8L2dsb3NzdGVybT4KKyAgIDxnbG9zc2RlZj4KKyAgICA8cGFyYT4KKyAgICAgQSBj cnlwdG9ncmFwaGljIGtleSB1c2VkIHRvIGVuY3J5cHQgY29sdW1uIGVuY3J5cHRpb24ga2V5 cy4gIChTbyB0aGUKKyAgICAgY29sdW1uIG1hc3RlciBrZXkgaXMgYSA8Zmlyc3R0ZXJtPmtl eSBlbmNyeXB0aW9uIGtleTwvZmlyc3R0ZXJtPi4pCisgICAgIENvbHVtbiBtYXN0ZXIga2V5 cyBhcmUgc3RvcmVkIG91dHNpZGUgdGhlIGRhdGFiYXNlIHN5c3RlbSwgZm9yIGV4YW1wbGUg aW4KKyAgICAgYSBrZXkgbWFuYWdlbWVudCBzeXN0ZW0uCisgICAgPC9wYXJhPgorICAgPC9n bG9zc2RlZj4KKyAgPC9nbG9zc2VudHJ5PgorCiAgIDxnbG9zc2VudHJ5IGlkPSJnbG9zc2Fy eS1jb21taXQiPgogICAgPGdsb3NzdGVybT5Db21taXQ8L2dsb3NzdGVybT4KICAgIDxnbG9z c2RlZj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sIGIvZG9jL3NyYy9z Z21sL2xpYnBxLnNnbWwKaW5kZXggM2M5YmQzZDY3MzA3Li4xM2FiZjQ1NmIxMjUgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9saWJw cS5zZ21sCkBAIC0xOTY0LDYgKzE5NjQsMTIzIEBAIDx0aXRsZT5QYXJhbWV0ZXIgS2V5IFdv cmRzPC90aXRsZT4KICAgICAgICA8L3BhcmE+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8 L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1jb25uZWN0 LWNvbHVtbi1lbmNyeXB0aW9uIiB4cmVmbGFiZWw9ImNvbHVtbl9lbmNyeXB0aW9uIj4KKyAg ICAgIDx0ZXJtPjxsaXRlcmFsPmNvbHVtbl9lbmNyeXB0aW9uPC9saXRlcmFsPjwvdGVybT4K KyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgSWYgc2V0IHRvIDEs IHRoaXMgZW5hYmxlcyB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiBmb3IgdGhlCisg ICAgICAgIGNvbm5lY3Rpb24uICBJZiBlbmNyeXB0ZWQgY29sdW1ucyBhcmUgcXVlcmllZCBh bmQgdGhpcyBpcyBub3QgZW5hYmxlZCwKKyAgICAgICAgdGhlIGVuY3J5cHRlZCB2YWx1ZSBp cyByZXR1cm5lZC4gIFNlZSA8eHJlZgorICAgICAgICBsaW5rZW5kPSJkZGwtY29sdW1uLWVu Y3J5cHRpb24iLz4gZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcworICAgICAgICBm ZWF0dXJlLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFy bGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLWNvbm5lY3QtY21r bG9va3VwIiB4cmVmbGFiZWw9ImNta2xvb2t1cCI+CisgICAgICA8dGVybT48bGl0ZXJhbD5j bWtsb29rdXA8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxw YXJhPgorICAgICAgICBUaGlzIHNwZWNpZmllcyBob3cgbGlicHEgc2hvdWxkIGxvb2sgdXAg Y29sdW1uIG1hc3RlciBrZXlzIChDTUtzKSBpbgorICAgICAgICBvcmRlciB0byBkZWNyeXB0 IHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzIChDRUtzKS4KKyAgICAgICAgVGhlIHZhbHVl IGlzIGEgbGlzdCBvZiA8bGl0ZXJhbD5rZXk9dmFsdWU8L2xpdGVyYWw+IGVudHJpZXMgc2Vw YXJhdGVkCisgICAgICAgIGJ5IHNlbWljb2xvbnMuICBFYWNoIGtleSBpcyB0aGUgbmFtZSBv ZiBhIGtleSByZWFsbSwgb3IKKyAgICAgICAgPGxpdGVyYWw+KjwvbGl0ZXJhbD4gdG8gbWF0 Y2ggYWxsIHJlYWxtcy4gIFRoZSB2YWx1ZSBpcyBhCisgICAgICAgIDxsaXRlcmFsPnNjaGVt ZTpkYXRhPC9saXRlcmFsPiBzcGVjaWZpY2F0aW9uLiAgVGhlIHNjaGVtZSBzcGVjaWZpZXMK KyAgICAgICAgdGhlIG1ldGhvZCB0byBsb29rIHVwIHRoZSBrZXksIHRoZSByZW1haW5pbmcg ZGF0YSBpcyBzcGVjaWZpYyB0byB0aGUKKyAgICAgICAgc2NoZW1lLiAgUGxhY2Vob2xkZXJz IGFyZSByZXBsYWNlZCBpbiB0aGUgcmVtYWluaW5nIGRhdGEgYXMgZm9sbG93czoKKworICAg ICAgICA8dmFyaWFibGVsaXN0PgorICAgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAg ICA8dGVybT48bGl0ZXJhbD4lYTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgICAgPGxpc3Rp dGVtPgorICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgIFRoZSBDTUsgYWxnb3JpdGht IG5hbWUgKHNlZSA8eHJlZiBsaW5rZW5kPSJwcm90b2NvbC1jbWstdGFibGUiLz4pCisgICAg ICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgPC92YXJs aXN0ZW50cnk+CisKKyAgICAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgICAgPHRlcm0+ PGxpdGVyYWw+JWI8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAg ICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICBUaGUgZW5jcnlwdGVkIENFSyBkYXRhIGlu IEJhc2U2NCBlbmNvZGluZyAob25seSBmb3IgdGhlIDxsaXRlcmFsPnJ1bjwvbGl0ZXJhbD4g c2NoZW1lKQorICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAg ICAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICAgICA8dmFybGlzdGVudHJ5PgorICAg ICAgICAgIDx0ZXJtPjxsaXRlcmFsPiVrPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgICA8 bGlzdGl0ZW0+CisgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgVGhlIENNSyBrZXkg bmFtZQorICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAg ICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAg ICAgIDx0ZXJtPjxsaXRlcmFsPiVyPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgICA8bGlz dGl0ZW0+CisgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgVGhlIHJlYWxtIG5hbWUK KyAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8 L3Zhcmxpc3RlbnRyeT4KKyAgICAgICAgPC92YXJpYWJsZWxpc3Q+CisgICAgICAgPC9wYXJh PgorCisgICAgICAgPHBhcmE+CisgICAgICAgIEF2YWlsYWJsZSBzY2hlbWVzIGFyZToKKyAg ICAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAg ICAgPHRlcm0+PGxpdGVyYWw+ZmlsZTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgICAgPGxp c3RpdGVtPgorICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgIExvYWQgdGhlIGtleSBt YXRlcmlhbCBmcm9tIGEgZmlsZS4gIFRoZSByZW1haW5pbmcgZGF0YSBpcyB0aGUgZmlsZQor ICAgICAgICAgICAgbmFtZS4gIFVzZSB0aGlzIGlmIHRoZSBDTUtzIGFyZSBrZXB0IGluIGEg ZmlsZSBvbiB0aGUgZmlsZSBzeXN0ZW0uCisgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAg ICA8L2xpc3RpdGVtPgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgICAgIDx2 YXJsaXN0ZW50cnk+CisgICAgICAgICAgPHRlcm0+PGxpdGVyYWw+cnVuPC9saXRlcmFsPjwv dGVybT4KKyAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgIDxwYXJhPgorICAgICAg ICAgICAgUnVuIHRoZSBzcGVjaWZpZWQgY29tbWFuZCB0byBkZWNyeXB0IHRoZSBDRUsuICBU aGUgcmVtYWluaW5nIGRhdGEKKyAgICAgICAgICAgIGlzIGEgc2hlbGwgY29tbWFuZC4gIFVz ZSB0aGlzIHdpdGgga2V5IG1hbmFnZW1lbnQgc3lzdGVtcyB0aGF0CisgICAgICAgICAgICBw ZXJmb3JtIHRoZSBkZWNyeXB0aW9uIHRoZW1zZWx2ZXMuICBUaGUgY29tbWFuZCBtdXN0IHBy aW50IHRoZQorICAgICAgICAgICAgZGVjcnlwdGVkIHBsYWludGV4dCBpbiBCYXNlNjQgZm9y bWF0IG9uIHRoZSBzdGFuZGFyZCBvdXRwdXQuCisgICAgICAgICAgIDwvcGFyYT4KKyAgICAg ICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgICAgIDwv dmFyaWFibGVsaXN0PgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAg ICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBlbXB0eS4KKyAgICAgICA8L3BhcmE+CisKKyAgICAg ICA8cGFyYT4KKyAgICAgICAgRXhhbXBsZToKKzxwcm9ncmFtbGlzdGluZz4KK2Nta2xvb2t1 cD0icjE9ZmlsZTovc29tZS93aGVyZS9zZWNyZXRzLyVrLnBlbTsqPWZpbGU6L2Vsc2Uvd2hl cmUvJXIvJWsucGVtIgorPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgICAgVGhpcyBzcGVjaWZp Y2F0aW9uIHNheXMsIGZvciBrZXlzIGluIHJlYWxtIDxxdW90ZT5yMTwvcXVvdGU+LCBsb2Fk CisgICAgICAgIHRoZW0gZnJvbSB0aGUgc3BlY2lmaWVkIGZpbGUsIHJlcGxhY2luZyA8bGl0 ZXJhbD4lazwvbGl0ZXJhbD4gYnkgdGhlCisgICAgICAgIGtleSBuYW1lLiAgRm9yIGtleXMg aW4gb3RoZXIgcmVhbG1zLCBsb2FkIHRoZW0gZnJvbSB0aGUgZmlsZSwKKyAgICAgICAgcmVw bGFjaW5nIHJlYWxtIGFuZCBrZXkgbmFtZXMgYXMgc3BlY2lmaWVkLgorICAgICAgIDwvcGFy YT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBBbiBleGFtcGxlIGZvciBpbnRlcmFjdGlu ZyB3aXRoIGEgKGh5cG90aGV0aWNhbCkga2V5IG1hbmFnZW1lbnQKKyAgICAgICAgc3lzdGVt OgorPHByb2dyYW1saXN0aW5nPgorY21rbG9va3VwPSIqPXJ1bjphY21la21zIGRlY3J5cHQg LS1rZXkgJWsgLS1hbGcgJWEgLS1ibG9iICclYiciCis8L3Byb2dyYW1saXN0aW5nPgorICAg ICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5Pgog ICAgIDwvdmFyaWFibGVsaXN0PgogICAgPC9wYXJhPgogICA8L3NlY3QyPgpAQCAtMzAyOCw2 ICszMTQ1LDU3IEBAIDx0aXRsZT5NYWluIEZ1bmN0aW9uczwvdGl0bGU+CiAgICAgICA8L2xp c3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICA8dmFybGlzdGVudHJ5IGlk PSJsaWJwcS1QUWV4ZWNQcmVwYXJlZDIiPgorICAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRZXhl Y1ByZXBhcmVkMjwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUWV4ZWNQcmVwYXJl ZDI8L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgorCisgICAgICA8bGlzdGl0ZW0+Cisg ICAgICAgPHBhcmE+CisgICAgICAgIFNlbmRzIGEgcmVxdWVzdCB0byBleGVjdXRlIGEgcHJl cGFyZWQgc3RhdGVtZW50IHdpdGggZ2l2ZW4KKyAgICAgICAgcGFyYW1ldGVycywgYW5kIHdh aXRzIGZvciB0aGUgcmVzdWx0LCB3aXRoIHN1cHBvcnQgZm9yIGVuY3J5cHRlZCBjb2x1bW5z LgorPHN5bm9wc2lzPgorUEdyZXN1bHQgKlBRZXhlY1ByZXBhcmVkMihQR2Nvbm4gKmNvbm4s CisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnN0bXROYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQgblBhcmFtcywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgY2hhciAqIGNvbnN0ICpwYXJhbVZhbHVlcywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCisgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAorICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBpbnQgKnBhcmFtRm9yY2VDb2x1bW5FbmNyeXB0aW9ucywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlc3VsdEZvcm1hdCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgUEdyZXN1bHQgKnBhcmFtRGVzYyk7Cis8L3N5bm9wc2lzPgorICAg ICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICA8eHJlZiBsaW5rZW5kPSJs aWJwcS1QUWV4ZWNQcmVwYXJlZDIiLz4gaXMgbGlrZSA8eHJlZgorICAgICAgICBsaW5rZW5k PSJsaWJwcS1QUWV4ZWNQcmVwYXJlZCIvPiB3aXRoIGFkZGl0aW9uYWwgc3VwcG9ydCBmb3Ig ZW5jcnlwdGVkCisgICAgICAgIGNvbHVtbnMuICBUaGUgcGFyYW1ldGVyIDxwYXJhbWV0ZXI+ cGFyYW1EZXNjPC9wYXJhbWV0ZXI+IG11c3QgYmUgYQorICAgICAgICByZXN1bHQgc2V0IG9i dGFpbmVkIGZyb20gPHhyZWYgbGlua2VuZD0ibGlicHEtUFFkZXNjcmliZVByZXBhcmVkIi8+ IG9uCisgICAgICAgIHRoZSBzYW1lIHByZXBhcmVkIHN0YXRlbWVudC4KKyAgICAgICA8L3Bh cmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBmdW5jdGlvbiBtdXN0IGJlIHVz ZWQgaWYgYSBzdGF0ZW1lbnQgcGFyYW1ldGVyIGNvcnJlc3BvbmRzIHRvIGFuCisgICAgICAg IHVuZGVybHlpbmcgZW5jcnlwdGVkIGNvbHVtbi4gIEluIHRoYXQgc2l0dWF0aW9uLCB0aGUg cHJlcGFyZWQKKyAgICAgICAgc3RhdGVtZW50IG5lZWRzIHRvIGJlIGRlc2NyaWJlZCBmaXJz dCBzbyB0aGF0IGxpYnBxIGNhbiBvYnRhaW4gdGhlCisgICAgICAgIG5lY2Vzc2FyeSBrZXkg YW5kIG90aGVyIGluZm9ybWF0aW9uIGZyb20gdGhlIHNlcnZlci4gIFdoZW4gdGhhdCBpcwor ICAgICAgICBkb25lLCB0aGUgcGFyYW1ldGVycyBjb3JyZXNwb25kaW5nIHRvIGVuY3J5cHRl ZCBjb2x1bW5zIGFyZQorICAgICAgICBhdXRvbWF0aWNhbGx5IGVuY3J5cHRlZCBhcHByb3By aWF0ZWx5IGJlZm9yZSBiZWluZyBzZW50IHRvIHRoZSBzZXJ2ZXIuCisgICAgICAgPC9wYXJh PgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBwYXJhbWV0ZXIgPHBhcmFtZXRlcj5w YXJhbUZvcmNlQ29sdW1uRW5jcnlwdGlvbnM8L3BhcmFtZXRlcj4KKyAgICAgICAgc3BlY2lm aWVzIHdoZXRoZXIgZW5jcnlwdGlvbiBzaG91bGQgYmUgZm9yY2VkIGZvciBhIHBhcmFtZXRl ci4gIElmCisgICAgICAgIGVuY3J5cHRpb24gaXMgZm9yY2VkIGZvciBhIHBhcmFtZXRlciBi dXQgaXQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhbgorICAgICAgICBlbmNyeXB0ZWQgY29s dW1uIG9uIHRoZSBzZXJ2ZXIsIHRoZW4gdGhlIGNhbGwgd2lsbCBmYWlsIGFuZCB0aGUKKyAg ICAgICAgcGFyYW1ldGVyIHdpbGwgbm90IGJlIHNlbnQuICBUaGlzIGNhbiBiZSB1c2VkIGZv ciBhZGRpdGlvbmFsIHNlY3VyaXR5CisgICAgICAgIGFnYWluc3QgYSBjb21wcmltaXNlZCBz ZXJ2ZXIuICAoVGhlIGRyYXdiYWNrIGlzIHRoYXQgYXBwbGljYXRpb24gY29kZQorICAgICAg ICB0aGVuIG5lZWRzIHRvIGJlIGtlcHQgdXAgdG8gZGF0ZSB3aXRoIGtub3dsZWRnZSBhYm91 dCB3aGljaCBjb2x1bW5zCisgICAgICAgIGFyZSBlbmNyeXB0ZWQgcmF0aGVyIHRoYW4gbGV0 dGluZyB0aGUgc2VydmVyIHNwZWNpZnkgdGhpcy4pICBJZiB0aGUKKyAgICAgICAgYXJyYXkg cG9pbnRlciBpcyBudWxsIHRoZW4gZW5jcnlwdGlvbiBpcyBub3QgZm9yY2VkIGZvciBhbnkg cGFyYW1ldGVyLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwv dmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLVBRZGVzY3Jp YmVQcmVwYXJlZCI+CiAgICAgICA8dGVybT48ZnVuY3Rpb24+UFFkZXNjcmliZVByZXBhcmVk PC9mdW5jdGlvbj48aW5kZXh0ZXJtPjxwcmltYXJ5PlBRZGVzY3JpYmVQcmVwYXJlZDwvcHJp bWFyeT48L2luZGV4dGVybT48L3Rlcm0+CiAKQEAgLTM4NzgsNiArNDA0NiwyOCBAQCA8dGl0 bGU+UmV0cmlldmluZyBRdWVyeSBSZXN1bHQgSW5mb3JtYXRpb248L3RpdGxlPgogICAgICA8 L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgPHZhcmxpc3RlbnRyeSBp ZD0ibGlicHEtUFFmaXNlbmNyeXB0ZWQiPgorICAgICA8dGVybT48ZnVuY3Rpb24+UFFmaXNl bmNyeXB0ZWQ8L2Z1bmN0aW9uPjxpbmRleHRlcm0+PHByaW1hcnk+UFFmaXNlbmNyeXB0ZWQ8 L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgorCisgICAgIDxsaXN0aXRlbT4KKyAgICAg IDxwYXJhPgorICAgICAgIFJldHVybnMgd2hldGhlciB0aGUgdmFsdWUgZm9yIHRoZSBnaXZl biBjb2x1bW4gY2FtZSBmcm9tIGFuIGVuY3J5cHRlZAorICAgICAgIGNvbHVtbi4gIENvbHVt biBudW1iZXJzIHN0YXJ0IGF0IDAuCis8c3lub3BzaXM+CitpbnQgUFFmaXNlbmNyeXB0ZWQo Y29uc3QgUEdyZXN1bHQgKnJlcywKKyAgICAgICAgICAgICAgICAgICBpbnQgY29sdW1uX251 bWJlcik7Cis8L3N5bm9wc2lzPgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAg ICAgICBFbmNyeXB0ZWQgY29sdW1uIHZhbHVlcyBhcmUgYXV0b21hdGljYWxseSBkZWNyeXB0 ZWQsIHNvIHRoaXMgZnVuY3Rpb24KKyAgICAgICBpcyBub3QgbmVjZXNzYXJ5IHRvIGFjY2Vz cyB0aGUgY29sdW1uIHZhbHVlLiAgSXQgY2FuIGJlIHVzZWQgZm9yIGV4dHJhCisgICAgICAg c2VjdXJpdHkgdG8gY2hlY2sgd2hldGhlciB0aGUgdmFsdWUgd2FzIHN0b3JlZCBlbmNyeXB0 ZWQgd2hlbiBvbmUKKyAgICAgICB0aG91Z2h0IGl0IHNob3VsZCBiZS4KKyAgICAgIDwvcGFy YT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgIDx2YXJs aXN0ZW50cnkgaWQ9ImxpYnBxLVBRZnNpemUiPgogICAgICA8dGVybT48ZnVuY3Rpb24+UFFm c2l6ZTwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUWZzaXplPC9wcmltYXJ5Pjwv aW5kZXh0ZXJtPjwvdGVybT4KIApAQCAtNDA1MywxMiArNDI0MywzNyBAQCA8dGl0bGU+UmV0 cmlldmluZyBRdWVyeSBSZXN1bHQgSW5mb3JtYXRpb248L3RpdGxlPgogCiAgICAgICA8cGFy YT4KICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgdXNlZnVsIHdoZW4gaW5zcGVjdGlu ZyB0aGUgcmVzdWx0IG9mCi0gICAgICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFkZXNjcmli ZVByZXBhcmVkIi8+LiAgRm9yIG90aGVyIHR5cGVzIG9mIHF1ZXJpZXMgaXQKKyAgICAgICA8 eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWRlc2NyaWJlUHJlcGFyZWQiLz4uICBGb3Igb3RoZXIg dHlwZXMgb2YgcmVzdWx0cyBpdAogICAgICAgIHdpbGwgcmV0dXJuIHplcm8uCiAgICAgICA8 L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICA8 dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1QUXBhcmFtaXNlbmNyeXB0ZWQiPgorICAgICA8dGVy bT48ZnVuY3Rpb24+UFFwYXJhbWlzZW5jcnlwdGVkPC9mdW5jdGlvbj48aW5kZXh0ZXJtPjxw cmltYXJ5PlBRcGFyYW1pc2VuY3J5cHRlZDwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+ CisKKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgUmV0dXJucyB3aGV0 aGVyIHRoZSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHBhcmFtZXRlciBpcyBkZXN0aW5lZCBmb3Ig YW4KKyAgICAgICBlbmNyeXB0ZWQgY29sdW1uLiAgUGFyYW1ldGVyIG51bWJlcnMgc3RhcnQg YXQgMC4KKzxzeW5vcHNpcz4KK2ludCBQUXBhcmFtaXNlbmNyeXB0ZWQoY29uc3QgUEdyZXN1 bHQgKnJlcywgaW50IHBhcmFtX251bWJlcik7Cis8L3N5bm9wc2lzPgorICAgICAgPC9wYXJh PgorCisgICAgICA8cGFyYT4KKyAgICAgICBWYWx1ZXMgZm9yIHBhcmFtZXRlcnMgZGVzdGlu ZWQgZm9yIGVuY3J5cHRlZCBjb2x1bW5zIGFyZSBhdXRvbWF0aWNhbGx5CisgICAgICAgZW5j cnlwdGVkLCBzbyB0aGlzIGZ1bmN0aW9uIGlzIG5vdCBuZWNlc3NhcnkgdG8gcHJlcGFyZSB0 aGUgcGFyYW1ldGVyCisgICAgICAgdmFsdWUuICBJdCBjYW4gYmUgdXNlZCBmb3IgZXh0cmEg c2VjdXJpdHkgdG8gY2hlY2sgd2hldGhlciB0aGUgdmFsdWUKKyAgICAgICB3aWxsIGJlIHN0 b3JlZCBlbmNyeXB0ZWQgd2hlbiBvbmUgdGhvdWdodCBpdCBzaG91bGQgYmUuICAoQnV0IHNl ZSBhbHNvCisgICAgICAgYXQgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFleGVjUHJlcGFyZWQy Ii8+IGZvciBhbm90aGVyIHdheSB0byBkbyB0aGF0LikKKyAgICAgICBUaGlzIGZ1bmN0aW9u IGlzIG9ubHkgdXNlZnVsIHdoZW4gaW5zcGVjdGluZyB0aGUgcmVzdWx0IG9mIDx4cmVmCisg ICAgICAgbGlua2VuZD0ibGlicHEtUFFkZXNjcmliZVByZXBhcmVkIi8+LiAgRm9yIG90aGVy IHR5cGVzIG9mIHJlc3VsdHMgaXQKKyAgICAgICB3aWxsIHJldHVybiBmYWxzZS4KKyAgICAg IDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAg IDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLVBRcHJpbnQiPgogICAgICA8dGVybT48ZnVuY3Rp b24+UFFwcmludDwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUXByaW50PC9wcmlt YXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KIApAQCAtNDU4NCw2ICs0Nzk5LDcgQEAgPHRpdGxl PkFzeW5jaHJvbm91cyBDb21tYW5kIFByb2Nlc3Npbmc8L3RpdGxlPgogICAgPHhyZWYgbGlu a2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQYXJhbXMiLz4sCiAgICA8eHJlZiBsaW5rZW5kPSJs aWJwcS1QUXNlbmRQcmVwYXJlIi8+LAogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5k UXVlcnlQcmVwYXJlZCIvPiwKKyAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1ZXJ5 UHJlcGFyZWQyIi8+LAogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kRGVzY3JpYmVQ cmVwYXJlZCIvPiwgYW5kCiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmREZXNjcmli ZVBvcnRhbCIvPiwKICAgIHdoaWNoIGNhbiBiZSB1c2VkIHdpdGggPHhyZWYgbGlua2VuZD0i bGlicHEtUFFnZXRSZXN1bHQiLz4gdG8gZHVwbGljYXRlCkBAIC00NTkxLDYgKzQ4MDcsNyBA QCA8dGl0bGU+QXN5bmNocm9ub3VzIENvbW1hbmQgUHJvY2Vzc2luZzwvdGl0bGU+CiAgICA8 eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWV4ZWNQYXJhbXMiLz4sCiAgICA8eHJlZiBsaW5rZW5k PSJsaWJwcS1QUXByZXBhcmUiLz4sCiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWV4ZWNQ cmVwYXJlZCIvPiwKKyAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZXhlY1ByZXBhcmVkMiIv PiwKICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZGVzY3JpYmVQcmVwYXJlZCIvPiwgYW5k CiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWRlc2NyaWJlUG9ydGFsIi8+CiAgICByZXNw ZWN0aXZlbHkuCkBAIC00NzAxLDYgKzQ5MTgsNDYgQEAgPHRpdGxlPkFzeW5jaHJvbm91cyBD b21tYW5kIFByb2Nlc3Npbmc8L3RpdGxlPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFy bGlzdGVudHJ5PgogCisgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtUFFzZW5kUXVlcnlQ cmVwYXJlZDIiPgorICAgICA8dGVybT48ZnVuY3Rpb24+UFFzZW5kUXVlcnlQcmVwYXJlZDI8 L2Z1bmN0aW9uPjxpbmRleHRlcm0+PHByaW1hcnk+UFFzZW5kUXVlcnlQcmVwYXJlZDI8L3By aW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgorCisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxw YXJhPgorICAgICAgIFNlbmRzIGEgcmVxdWVzdCB0byBleGVjdXRlIGEgcHJlcGFyZWQgc3Rh dGVtZW50IHdpdGggZ2l2ZW4KKyAgICAgICBwYXJhbWV0ZXJzLCB3aXRob3V0IHdhaXRpbmcg Zm9yIHRoZSByZXN1bHQocyksIHdpdGggc3VwcG9ydCBmb3IgZW5jcnlwdGVkIGNvbHVtbnMu Cis8c3lub3BzaXM+CitpbnQgUFFzZW5kUXVlcnlQcmVwYXJlZDIoUEdjb25uICpjb25uLAor ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnN0bXROYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgIGludCBuUGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKiBjb25zdCAqcGFyYW1WYWx1ZXMsCisgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCisgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgaW50ICpwYXJhbUZvcmNlQ29sdW1uRW5jcnlwdGlvbnMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgaW50IHJlc3VsdEZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICBQR3Jlc3VsdCAqcGFyYW1EZXNjKTsKKzwvc3lub3BzaXM+CisgICAgICA8L3BhcmE+ CisKKyAgICAgIDxwYXJhPgorICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1 ZXJ5UHJlcGFyZWQyIi8+IGlzIGxpa2UgPHhyZWYKKyAgICAgICBsaW5rZW5kPSJsaWJwcS1Q UXNlbmRRdWVyeVByZXBhcmVkIi8+IHdpdGggYWRkaXRpb25hbCBzdXBwb3J0IGZvciBlbmNy eXB0ZWQKKyAgICAgICBjb2x1bW5zLiAgVGhlIHBhcmFtZXRlciA8cGFyYW1ldGVyPnBhcmFt RGVzYzwvcGFyYW1ldGVyPiBtdXN0IGJlIGEKKyAgICAgICByZXN1bHQgc2V0IG9idGFpbmVk IGZyb20gPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kRGVzY3JpYmVQcmVwYXJlZCIvPiBv bgorICAgICAgIHRoZSBzYW1lIHByZXBhcmVkIHN0YXRlbWVudC4KKyAgICAgIDwvcGFyYT4K KworICAgICAgPHBhcmE+CisgICAgICAgVGhpcyBmdW5jdGlvbiBtdXN0IGJlIHVzZWQgaWYg YSBzdGF0ZW1lbnQgcGFyYW1ldGVyIGNvcnJlc3BvbmRzIHRvIGFuCisgICAgICAgdW5kZXJs eWluZyBlbmNyeXB0ZWQgY29sdW1uLiAgSW4gdGhhdCBzaXR1YXRpb24sIHRoZSBwcmVwYXJl ZAorICAgICAgIHN0YXRlbWVudCBuZWVkcyB0byBiZSBkZXNjcmliZWQgZmlyc3Qgc28gdGhh dCBsaWJwcSBjYW4gb2J0YWluIHRoZQorICAgICAgIG5lY2Vzc2FyeSBrZXkgYW5kIG90aGVy IGluZm9ybWF0aW9uIGZyb20gdGhlIHNlcnZlci4gIFdoZW4gdGhhdCBpcworICAgICAgIGRv bmUsIHRoZSBwYXJhbWV0ZXJzIGNvcnJlc3BvbmRpbmcgdG8gZW5jcnlwdGVkIGNvbHVtbnMg YXJlCisgICAgICAgYXV0b21hdGljYWxseSBlbmNyeXB0ZWQgYXBwcm9wcmlhdGVseSBiZWZv cmUgYmVpbmcgc2VudCB0byB0aGUgc2VydmVyLgorICAgICAgIFNlZSBhbHNvIHVuZGVyIDx4 cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZXhlY1ByZXBhcmVkMiIvPi4KKyAgICAgIDwvcGFyYT4K KyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgIDx2YXJsaXN0 ZW50cnkgaWQ9ImxpYnBxLVBRc2VuZERlc2NyaWJlUHJlcGFyZWQiPgogICAgICA8dGVybT48 ZnVuY3Rpb24+UFFzZW5kRGVzY3JpYmVQcmVwYXJlZDwvZnVuY3Rpb24+PGluZGV4dGVybT48 cHJpbWFyeT5QUXNlbmREZXNjcmliZVByZXBhcmVkPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwv dGVybT4KIApAQCAtNDc1MSw2ICs1MDA4LDcgQEAgPHRpdGxlPkFzeW5jaHJvbm91cyBDb21t YW5kIFByb2Nlc3Npbmc8L3RpdGxlPgogICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBR c2VuZFF1ZXJ5UGFyYW1zIi8+LAogICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2Vu ZFByZXBhcmUiLz4sCiAgICAgICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQ cmVwYXJlZCIvPiwKKyAgICAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRRdWVyeVBy ZXBhcmVkMiIvPiwKICAgICAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmREZXNjcmli ZVByZXBhcmVkIi8+LAogICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZERlc2Ny aWJlUG9ydGFsIi8+LCBvcgogICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRcGlwZWxp bmVTeW5jIi8+CkBAIC03NzgzLDYgKzgwNDEsMjYgQEAgPHRpdGxlPkVudmlyb25tZW50IFZh cmlhYmxlczwvdGl0bGU+CiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogCisgICAg PGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIDxpbmRleHRlcm0+CisgICAgICAgPHBy aW1hcnk+PGVudmFyPlBHQ01LTE9PS1VQPC9lbnZhcj48L3ByaW1hcnk+CisgICAgICA8L2lu ZGV4dGVybT4KKyAgICAgIDxlbnZhcj5QR0NNS0xPT0tVUDwvZW52YXI+IGJlaGF2ZXMgdGhl IHNhbWUgYXMgdGhlIDx4cmVmCisgICAgICBsaW5rZW5kPSJsaWJwcS1jb25uZWN0LWNta2xv b2t1cCIvPiBjb25uZWN0aW9uIHBhcmFtZXRlci4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgPGluZGV4dGVy bT4KKyAgICAgICA8cHJpbWFyeT48ZW52YXI+UEdDT0xVTU5FTkNSWVBUSU9OPC9lbnZhcj48 L3ByaW1hcnk+CisgICAgICA8L2luZGV4dGVybT4KKyAgICAgIDxlbnZhcj5QR0NPTFVNTkVO Q1JZUFRJT048L2VudmFyPiBiZWhhdmVzIHRoZSBzYW1lIGFzIHRoZSA8eHJlZgorICAgICAg bGlua2VuZD0ibGlicHEtY29ubmVjdC1jb2x1bW4tZW5jcnlwdGlvbiIvPiBjb25uZWN0aW9u IHBhcmFtZXRlci4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKICAgICA8bGlz dGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgPGluZGV4dGVybT4KZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwK aW5kZXggNWZkZDQyOWUwNWQzLi4yYWFlNjZjZThkMmYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9wcm90b2NvbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sCkBA IC0xMTA4LDYgKzExMDgsNjggQEAgPHRpdGxlPlBpcGVsaW5pbmc8L3RpdGxlPgogICAgPC9w YXJhPgogICA8L3NlY3QyPgogCisgIDxzZWN0MiBpZD0icHJvdG9jb2wtdHJhbnNwYXJlbnQt Y29sdW1uLWVuY3J5cHRpb24tZmxvdyI+CisgICA8dGl0bGU+VHJhbnNwYXJlbnQgQ29sdW1u IEVuY3J5cHRpb248L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICBUcmFuc3BhcmVudCBjb2x1 bW4gZW5jcnlwdGlvbiBpcyBlbmFibGVkIGJ5IHNlbmRpbmcgdGhlIHBhcmFtZXRlcgorICAg IDxsaXRlcmFsPl9wcV8uY29sdW1uX2VuY3J5cHRpb248L2xpdGVyYWw+IHdpdGggYSB2YWx1 ZSBvZgorICAgIDxsaXRlcmFsPjE8L2xpdGVyYWw+IGluIHRoZSBTdGFydHVwTWVzc2FnZS4g IFRoaXMgaXMgYSBwcm90b2NvbCBleHRlbnNpb24KKyAgICB0aGF0IGVuYWJsZXMgYSBmZXcg YWRkaXRpb25hbCBwcm90b2NvbCBtZXNzYWdlcyBhbmQgYWRkcyBhZGRpdGlvbmFsIGZpZWxk cworICAgIHRvIGV4aXN0aW5nIHByb3RvY29sIG1lc3NhZ2VzLiAgQ2xpZW50IGRyaXZlcnMg c2hvdWxkIG9ubHkgYWN0aXZhdGUgdGhpcworICAgIHByb3RvY29sIGV4dGVuc2lvbiB3aGVu IHJlcXVlc3RlZCBieSB0aGUgdXNlciwgZm9yIGV4YW1wbGUgdGhyb3VnaCBhCisgICAgY29u bmVjdGlvbiBwYXJhbWV0ZXIuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFdoZW4g dHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24gaXMgZW5hYmxlZCwgdGhlIG1lc3NhZ2Vz CisgICAgQ29sdW1uTWFzdGVyS2V5IGFuZCBDb2x1bW5FbmNyeXB0aW9uS2V5IGNhbiBhcHBl YXIgYmVmb3JlIFJvd0Rlc2NyaXB0aW9uCisgICAgYW5kIFBhcmFtZXRlckRlc2NyaXB0aW9u IG1lc3NhZ2VzLiAgQ2xpZW50cyBzaG91bGQgY29sbGVjdCB0aGUgaW5mb3JtYXRpb24KKyAg ICBpbiB0aGVzZSBtZXNzYWdlcyBhbmQga2VlcCB0aGVtIGZvciB0aGUgZHVyYXRpb24gb2Yg dGhlIGNvbm5lY3Rpb24uICBBCisgICAgc2VydmVyIGlzIG5vdCByZXF1aXJlZCB0byByZXNl bmQgdGhlIGtleSBpbmZvcm1hdGlvbiBmb3IgZWFjaCBzdGF0ZW1lbnQKKyAgICBjeWNsZSBp ZiBpdCB3YXMgYWxyZWFkeSBzZW50IGR1cmluZyB0aGlzIGNvbm5lY3Rpb24uICBJZiBhIHNl cnZlciByZXNlbmRzCisgICAgYSBrZXkgdGhhdCB0aGUgY2xpZW50IGhhcyBhbHJlYWR5IHN0 b3JlZCAodGhhdCBpcywgYSBrZXkgaGF2aW5nIGFuIElECisgICAgZXF1YWwgdG8gb25lIGFs cmVhZHkgc3RvcmVkKSwgdGhlIG5ldyBpbmZvcm1hdGlvbiBzaG91bGQgcmVwbGFjZSB0aGUg b2xkLgorICAgIChUaGlzIGNvdWxkIGhhcHBlbiwgZm9yIGV4YW1wbGUsIGlmIHRoZSBrZXkg d2FzIGFsdGVyZWQgYnkgc2VydmVyLXNpZGUgRERMCisgICAgY29tbWFuZHMuKQorICAgPC9w YXJhPgorCisgICA8cGFyYT4KKyAgICBBIGNsaWVudCBzdXBwb3J0aW5nIHRyYW5zcGFyZW50 IGNvbHVtbiBlbmNyeXB0aW9uIHNob3VsZCBhdXRvbWF0aWNhbGx5CisgICAgZGVjcnlwdCB0 aGUgY29sdW1uIHZhbHVlIGZpZWxkcyBvZiBEYXRhUm93IG1lc3NhZ2VzIGNvcnJlc3BvbmRp bmcgdG8KKyAgICBlbmNyeXB0ZWQgY29sdW1ucywgYW5kIGl0IHNob3VsZCBhdXRvbWF0aWNh bGx5IGVuY3J5cHQgdGhlIHBhcmFtZXRlciB2YWx1ZQorICAgIGZpZWxkcyBvZiBCaW5kIG1l c3NhZ2VzIGNvcnJlc3BvbmRpbmcgdG8gZW5jcnlwdGVkIGNvbHVtbnMuCisgICA8L3BhcmE+ CisKKyAgIDxwYXJhPgorICAgIFdoZW4gY29sdW1uIGVuY3J5cHRpb24gaXMgdXNlZCwgdGhl IHBsYWludGV4dCBpcyBhbHdheXMgaW4gdGV4dCBmb3JtYXQKKyAgICAobm90IGJpbmFyeSBm b3JtYXQpLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBXaGVuIGRldGVybWluaXN0 aWMgZW5jcnlwdGlvbiBpcyB1c2VkLCBjbGllbnRzIG5lZWQgdG8gdGFrZSBjYXJlIHRvCisg ICAgcmVwcmVzZW50IHBsYWludGV4dCB0byBiZSBlbmNyeXB0ZWQgaW4gYSBjb25zaXN0ZW50 IGZvcm0uICBGb3IgZXhhbXBsZSwKKyAgICBlbmNyeXB0aW5nIGFuIGludGVnZXIgcmVwcmVz ZW50ZWQgYnkgdGhlIHN0cmluZyA8bGl0ZXJhbD4xMDA8L2xpdGVyYWw+IGFuZAorICAgIGFu IGludGVnZXIgcmVwcmVzZW50ZWQgYnkgdGhlIHN0cmluZyA8bGl0ZXJhbD4rMTAwPC9saXRl cmFsPiB3b3VsZCByZXN1bHQKKyAgICBpbiB0d28gZGlmZmVyZW50IGNpcGhlcnRleHRzLCB0 aHVzIGRlZmVhdGluZyB0aGUgbWFpbiBwb2ludCBvZgorICAgIGRldGVybWluaXN0aWMgZW5j cnlwdGlvbi4gIFRoaXMgcHJvdG9jb2wgc3BlY2lmaWNhdGlvbiByZXF1aXJlcyB0aGUKKyAg ICBwbGFpbnRleHQgdG8gYmUgaW4gPHF1b3RlPmNhbm9uaWNhbDwvcXVvdGU+IGZvcm0sIHdo aWNoIGlzIHRoZSBmb3JtIHRoYXQKKyAgICBpcyBwcm9kdWNlZCBieSB0aGUgc2VydmVyIHdo ZW4gaXQgb3V0cHV0cyBhIHBhcnRpY3VsYXIgdmFsdWUgaW4gdGV4dAorICAgIGZvcm1hdC4K KyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgV2hlbiB0cmFuc3BhcmVudCBjb2x1bW4g ZW5jcnlwdGlvbiBpcyBlbmFibGVkLCB0aGUgY2xpZW50IGVuY29kaW5nIG11c3QKKyAgICBt YXRjaCB0aGUgc2VydmVyIGVuY29kaW5nLiAgVGhpcyBlbnN1cmVzIHRoYXQgYWxsIHZhbHVl cyBlbmNyeXB0ZWQgb3IKKyAgICBkZWNyeXB0ZWQgYnkgdGhlIGNsaWVudCBtYXRjaCB0aGUg c2VydmVyIGVuY29kaW5nLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgY3J5 cHRvZ3JhcGhpYyBvcGVyYXRpb25zIHVzZWQgZm9yIHRyYW5zcGFyZW50IGNvbHVtbiBlbmNy eXB0aW9uIGFyZQorICAgIGRlc2NyaWJlZCBpbiA8eHJlZiBsaW5rZW5kPSJwcm90b2NvbC10 cmFuc3BhcmVudC1jb2x1bW4tZW5jcnlwdGlvbi1jcnlwdG8iLz4uCisgICA8L3BhcmE+Cisg IDwvc2VjdDI+CisKICAgPHNlY3QyPgogICAgPHRpdGxlPkZ1bmN0aW9uIENhbGw8L3RpdGxl PgogCkBAIC00MDU1LDYgKzQxMTcsMTQwIEBAIDx0aXRsZT5NZXNzYWdlIEZvcm1hdHM8L3Rp dGxlPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxp c3RlbnRyeSBpZD0icHJvdG9jb2wtbWVzc2FnZS1mb3JtYXRzLUNvbHVtbkVuY3J5cHRpb25L ZXkiPgorICAgIDx0ZXJtPkNvbHVtbkVuY3J5cHRpb25LZXkgKEIpPC90ZXJtPgorICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIG1lc3NhZ2UgY2FuIG9ubHkgYXBw ZWFyIGlmIHRoZSBwcm90b2NvbCBleHRlbnNpb24KKyAgICAgIDxsaXRlcmFsPl9wcV8uY29s dW1uX2VuY3J5cHRpb248L2xpdGVyYWw+IGlzIGVuYWJsZWQuICAoU2VlIDx4cmVmCisgICAg ICBsaW5rZW5kPSJwcm90b2NvbC10cmFuc3BhcmVudC1jb2x1bW4tZW5jcnlwdGlvbi1mbG93 Ii8+LikKKyAgICAgPC9wYXJhPgorCisgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICA8dmFy bGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkJ5dGUxKCdZJyk8L3Rlcm0+CisgICAgICAgPGxp c3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIElkZW50aWZpZXMgdGhlIG1lc3Nh Z2UgYXMgYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgbWVzc2FnZS4KKyAgICAgICAgPC9wYXJh PgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQzMjwvdGVybT4KKyAgICAgICA8bGlz dGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgTGVuZ3RoIG9mIG1lc3NhZ2UgY29u dGVudHMgaW4gYnl0ZXMsIGluY2x1ZGluZyBzZWxmLgorICAgICAgICA8L3BhcmE+CisgICAg ICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlz dGVudHJ5PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4K KyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaGUgc2Vzc2lvbi1zcGVjaWZpYyBpZGVudGlm aWVyIG9mIHRoZSBrZXkuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgor ICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAg PHRlcm0+SW50MzI8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4K KyAgICAgICAgIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBtYXN0ZXIga2V5IHVzZWQgdG8gZW5j cnlwdCB0aGlzIGtleS4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+Cisg ICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8 dGVybT5JbnQxNjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgor ICAgICAgICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFsZ29yaXRobSB1c2VkIHRvIGVuY3J5 cHQgdGhpcyBrZXkuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAg ICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRl cm0+SW50MzI8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAg ICAgICAgIFRoZSBsZW5ndGggb2YgdGhlIGZvbGxvd2luZyBrZXkgbWF0ZXJpYWwuCisgICAg ICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+Qnl0ZTxyZXBsYWNlYWJs ZT5uPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8 cGFyYT4KKyAgICAgICAgIFRoZSBrZXkgbWF0ZXJpYWwsIGVuY3J5cHRlZCB3aXRoIHRoZSBt YXN0ZXIga2V5IHJlZmVyZW5jZWQgYWJvdmUuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8 L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgIDwvdmFyaWFibGVsaXN0 PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3Rl bnRyeSBpZD0icHJvdG9jb2wtbWVzc2FnZS1mb3JtYXRzLUNvbHVtbk1hc3RlcktleSI+Cisg ICAgPHRlcm0+Q29sdW1uTWFzdGVyS2V5IChCKTwvdGVybT4KKyAgICA8bGlzdGl0ZW0+Cisg ICAgIDxwYXJhPgorICAgICAgVGhpcyBtZXNzYWdlIGNhbiBvbmx5IGFwcGVhciBpZiB0aGUg cHJvdG9jb2wgZXh0ZW5zaW9uCisgICAgICA8bGl0ZXJhbD5fcHFfLmNvbHVtbl9lbmNyeXB0 aW9uPC9saXRlcmFsPiBpcyBlbmFibGVkLiAgKFNlZSA8eHJlZgorICAgICAgbGlua2VuZD0i cHJvdG9jb2wtdHJhbnNwYXJlbnQtY29sdW1uLWVuY3J5cHRpb24tZmxvdyIvPi4pCisgICAg IDwvcGFyYT4KKworICAgICA8dmFyaWFibGVsaXN0PgorICAgICAgPHZhcmxpc3RlbnRyeT4K KyAgICAgICA8dGVybT5CeXRlMSgneScpPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAg ICAgICAgPHBhcmE+CisgICAgICAgICBJZGVudGlmaWVzIHRoZSBtZXNzYWdlIGFzIGEgY29s dW1uIG1hc3RlciBrZXkgbWVzc2FnZS4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlz dGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4K KyAgICAgICA8dGVybT5JbnQzMjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAg IDxwYXJhPgorICAgICAgICAgTGVuZ3RoIG9mIG1lc3NhZ2UgY29udGVudHMgaW4gYnl0ZXMs IGluY2x1ZGluZyBzZWxmLgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4K KyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAg IDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+ CisgICAgICAgICBUaGUgc2Vzc2lvbi1zcGVjaWZpYyBpZGVudGlmaWVyIG9mIHRoZSBrZXku CisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0 ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+U3RyaW5nPC90 ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaGUg bmFtZSBvZiB0aGUga2V5LgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4K KyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAg IDx0ZXJtPlN0cmluZzwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJh PgorICAgICAgICAgVGhlIGtleSdzIHJlYWxtLgorICAgICAgICA8L3BhcmE+CisgICAgICAg PC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICA8L3ZhcmlhYmxlbGlz dD4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0 ZW50cnkgaWQ9InByb3RvY29sLW1lc3NhZ2UtZm9ybWF0cy1Db21tYW5kQ29tcGxldGUiPgog ICAgIDx0ZXJtPkNvbW1hbmRDb21wbGV0ZSAoQik8L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpA QCAtNTE1MSw2ICs1MzQ3LDQ2IEBAIDx0aXRsZT5NZXNzYWdlIEZvcm1hdHM8L3RpdGxlPgog ICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KICAgICAgPC92YXJp YWJsZWxpc3Q+CisKKyAgICAgPHBhcmE+CisgICAgICBJZiB0aGUgcHJvdG9jb2wgZXh0ZW5z aW9uIDxsaXRlcmFsPl9wcV8uY29sdW1uX2VuY3J5cHRpb248L2xpdGVyYWw+IGlzCisgICAg ICBlbmFibGVkIChzZWUgPHhyZWYKKyAgICAgIGxpbmtlbmQ9InByb3RvY29sLXRyYW5zcGFy ZW50LWNvbHVtbi1lbmNyeXB0aW9uLWZsb3ciLz4pLCB0aGVuIHRoZXJlIGlzCisgICAgICBh bHNvIHRoZSBmb2xsb3dpbmcgZm9yIGVhY2ggcGFyYW1ldGVyOgorICAgICA8L3BhcmE+CisK KyAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRl cm0+SW50MzI8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAg ICAgICAgIElmIHRoaXMgcGFyYW1ldGVyIGlzIHRvIGJlIGVuY3J5cHRlZCwgdGhpcyBzcGVj aWZpZXMgdGhlCisgICAgICAgICBpZGVudGlmaWVyIG9mIHRoZSBjb2x1bW4gZW5jcnlwdGlv biBrZXkgdG8gdXNlLCBlbHNlIHplcm8uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xp c3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+ CisgICAgICAgPHRlcm0+SW50MTY8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAg ICA8cGFyYT4KKyAgICAgICAgIElmIHRoaXMgcGFyYW1ldGVyIGlzIHRvIGJlIGVuY3J5cHRl ZCwgdGhpcyBzcGVjaWZpZXMgdGhlCisgICAgICAgICBpZGVudGlmaWVyIG9mIHRoZSBlbmNy eXB0aW9uIGFsZ29yaXRobSwgZWxzZSB6ZXJvLgorICAgICAgICA8L3BhcmE+CisgICAgICAg PC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVu dHJ5PgorICAgICAgIDx0ZXJtPkludDE2PC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAg ICAgICAgPHBhcmE+CisgICAgICAgICBUaGlzIGlzIHVzZWQgYXMgYSBiaXQgZmllbGQgb2Yg ZmxhZ3MuICBJZiB0aGUgY29sdW1uIGlzCisgICAgICAgICBlbmNyeXB0ZWQgYW5kIGJpdCAw eDAxIGlzIHNldCwgdGhlIGNvbHVtbiB1c2VzIGRldGVybWluaXN0aWMKKyAgICAgICAgIGVu Y3J5cHRpb24sIG90aGVyd2lzZSByYW5kb21pemVkIGVuY3J5cHRpb24uCisgICAgICAgIDwv cGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAg IDwvdmFyaWFibGVsaXN0PgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4K IApAQCAtNTUzOSw2ICs1Nzc1LDM1IEBAIDx0aXRsZT5NZXNzYWdlIEZvcm1hdHM8L3RpdGxl PgogICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KICAgICAgPC92 YXJpYWJsZWxpc3Q+CisKKyAgICAgPHBhcmE+CisgICAgICBJZiB0aGUgcHJvdG9jb2wgZXh0 ZW5zaW9uIDxsaXRlcmFsPl9wcV8uY29sdW1uX2VuY3J5cHRpb248L2xpdGVyYWw+IGlzCisg ICAgICBlbmFibGVkIChzZWUgPHhyZWYKKyAgICAgIGxpbmtlbmQ9InByb3RvY29sLXRyYW5z cGFyZW50LWNvbHVtbi1lbmNyeXB0aW9uLWZsb3ciLz4pLCB0aGVuIHRoZXJlIGlzCisgICAg ICBhbHNvIHRoZSBmb2xsb3dpbmcgZm9yIGVhY2ggZmllbGQ6CisgICAgIDwvcGFyYT4KKwor ICAgICA8dmFyaWFibGVsaXN0PgorICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVy bT5JbnQzMjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAg ICAgICAgSWYgdGhlIGZpZWxkIGlzIGVuY3J5cHRlZCwgdGhpcyBzcGVjaWZpZXMgdGhlIGlk ZW50aWZpZXIgb2YgdGhlCisgICAgICAgICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgdG8gdXNl LCBlbHNlIHplcm8uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAg ICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRl cm0+SW50MTY8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAg ICAgICAgIElmIHRoZSBmaWVsZCBpcyBlbmNyeXB0ZWQsIHRoaXMgc3BlY2lmaWVzIHRoZSBp ZGVudGlmaWVyIG9mIHRoZQorICAgICAgICAgZW5jcnlwdCBhbGdvcml0aG0sIGVsc2UgemVy by4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxp c3RlbnRyeT4KKyAgICAgPC92YXJpYWJsZWxpc3Q+CiAgICAgPC9saXN0aXRlbT4KICAgIDwv dmFybGlzdGVudHJ5PgogCkBAIC03MzQyLDYgKzc2MDcsMTMzIEBAIDx0aXRsZT5Mb2dpY2Fs IFJlcGxpY2F0aW9uIE1lc3NhZ2UgRm9ybWF0czwvdGl0bGU+CiAgIDwvdmFyaWFibGVsaXN0 PgogIDwvc2VjdDE+CiAKKyA8c2VjdDEgaWQ9InByb3RvY29sLXRyYW5zcGFyZW50LWNvbHVt bi1lbmNyeXB0aW9uLWNyeXB0byI+CisgIDx0aXRsZT5UcmFuc3BhcmVudCBDb2x1bW4gRW5j cnlwdGlvbiBDcnlwdG9ncmFwaHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhpcyBzZWN0 aW9uIGRlc2NyaWJlcyB0aGUgY3J5cHRvZ3JhcGhpYyBvcGVyYXRpb25zIHVzZWQgYnkgdHJh bnNwYXJlbnQKKyAgIGNvbHVtbiBlbmNyeXB0aW9uLiAgQSBjbGllbnQgdGhhdCBzdXBwb3J0 cyB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbgorICAgbmVlZHMgdG8gaW1wbGVtZW50 IHRoZXNlIG9wZXJhdGlvbnMgYXMgc3BlY2lmaWVkIGhlcmUgaW4gb3JkZXIgdG8gYmUgYWJs ZQorICAgdG8gaW50ZXJvcGVyYXRlIHdpdGggb3RoZXIgY2xpZW50cy4KKyAgPC9wYXJhPgor CisgIDxwYXJhPgorICAgQ29sdW1uIGVuY3J5cHRpb24ga2V5IGFsZ29yaXRobXMgYW5kIGNv bHVtbiBtYXN0ZXIga2V5IGFsZ29yaXRobXMgYXJlCisgICBpZGVudGlmaWVkIGJ5IGludGVn ZXJzIGluIHRoZSBwcm90b2NvbCBtZXNzYWdlcyBhbmQgdGhlIHN5c3RlbSBjYXRhbG9ncy4K KyAgIEFkZGl0aW9uYWwgYWxnb3JpdGhtcyBtYXkgYmUgYWRkZWQgdG8gdGhpcyBwcm90b2Nv bCBzcGVjaWZpY2F0aW9uIHdpdGhvdXQgYQorICAgY2hhbmdlIGluIHRoZSBwcm90b2NvbCB2 ZXJzaW9uIG51bWJlci4gIENsaWVudHMgc2hvdWxkIGltcGxlbWVudCBzdXBwb3J0CisgICBm b3IgYWxsIHRoZSBhbGdvcml0aG1zIHNwZWNpZmllZCBoZXJlLiAgSWYgYSBjbGllbnQgZW5j b3VudGVycyBhbiBhbGdvcml0aG0KKyAgIGlkZW50aWZpZXIgaXQgZG9lcyBub3QgcmVjb2du aXplIG9yIGRvZXMgbm90IHN1cHBvcnQsIGl0IG11c3QgcmFpc2UgYW4KKyAgIGVycm9yLiAg QSBzdWl0YWJsZSBlcnJvciBtZXNzYWdlIHNob3VsZCBiZSBwcm92aWRlZCB0byB0aGUgYXBw bGljYXRpb24gb3IKKyAgIHVzZXIuCisgIDwvcGFyYT4KKworICA8c2VjdDIgaWQ9InByb3Rv Y29sLWNtayI+CisgICA8dGl0bGU+Q29sdW1uIE1hc3RlciBLZXlzPC90aXRsZT4KKworICAg PHBhcmE+CisgICAgVGhlIGN1cnJlbnRseSBkZWZpbmVkIGFsZ29yaXRobXMgZm9yIGNvbHVt biBtYXN0ZXIga2V5cyBhcmUgbGlzdGVkIGluCisgICAgPHhyZWYgbGlua2VuZD0icHJvdG9j b2wtY21rLXRhYmxlIi8+LgorICAgPC9wYXJhPgorCisgICA8dGFibGUgaWQ9InByb3RvY29s LWNtay10YWJsZSI+CisgICAgPHRpdGxlPkNvbHVtbiBNYXN0ZXIgS2V5IEFsZ29yaXRobXM8 L3RpdGxlPgorICAgIDx0Z3JvdXAgY29scz0iMyI+CisgICAgIDx0aGVhZD4KKyAgICAgIDxy b3c+CisgICAgICAgPGVudHJ5PklEPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+TmFtZTwvZW50 cnk+CisgICAgICAgPGVudHJ5PlJlZmVyZW5jZTwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAg ICAgPC90aGVhZD4KKyAgICAgPHRib2R5PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+ MTwvZW50cnk+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPlJTQUVTX09BRVBfU0hBXzE8L2xp dGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PHVsaW5rIHVybD0iaHR0cHM6Ly9kYXRh dHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM4MDE3Ij5SRkMgODAxNzwvdWxpbms+IChQ S0NTICMxKTwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVu dHJ5PjI8L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5SU0FFU19PQUVQX1NIQV8y NTY8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PHVsaW5rIHVybD0iaHR0cHM6 Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM4MDE3Ij5SRkMgODAxNzwvdWxp bms+IChQS0NTICMxKTwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgPC90Ym9keT4KKyAg ICA8L3Rncm91cD4KKyAgIDwvdGFibGU+CisgIDwvc2VjdDI+CisKKyAgPHNlY3QyIGlkPSJw cm90b2NvbC1jZWsiPgorICAgPHRpdGxlPkNvbHVtbiBFbmNyeXB0aW9uIEtleXM8L3RpdGxl PgorCisgICA8cGFyYT4KKyAgICBUaGUgY3VycmVudGx5IGRlZmluZWQgYWxnb3JpdGhtcyBm b3IgY29sdW1uIGVuY3J5cHRpb24ga2V5cyBhcmUgbGlzdGVkIGluCisgICAgPHhyZWYgbGlu a2VuZD0icHJvdG9jb2wtY2VrLXRhYmxlIi8+LgorICAgPC9wYXJhPgorCisgICA8dGFibGUg aWQ9InByb3RvY29sLWNlay10YWJsZSI+CisgICAgPHRpdGxlPkNvbHVtbiBFbmNyeXB0aW9u IEtleSBBbGdvcml0aG1zPC90aXRsZT4KKyAgICA8dGdyb3VwIGNvbHM9IjMiPgorICAgICA8 dGhlYWQ+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT5JRDwvZW50cnk+CisgICAgICAg PGVudHJ5Pk5hbWU8L2VudHJ5PgorICAgICAgIDxlbnRyeT5SZWZlcmVuY2U8L2VudHJ5Pgor ICAgICAgIDxlbnRyeT5LZXkgbGVuZ3RoIChvY3RldHMpPC9lbnRyeT4KKyAgICAgIDwvcm93 PgorICAgICA8L3RoZWFkPgorICAgICA8dGJvZHk+CisgICAgICA8cm93PgorICAgICAgIDxl bnRyeT4xMzA8L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5BRUFEX0FFU18xMjhf Q0JDX0hNQUNfU0hBXzI1NjwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dWxp bmsgdXJsPSJodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LW1j Z3Jldy1hZWFkLWFlcy1jYmMtaG1hYy1zaGEyLTA1Ii8+PC9lbnRyeT4KKyAgICAgICA8ZW50 cnk+MzI8L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRy eT4xMzE8L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5BRUFEX0FFU18xOTJfQ0JD X0hNQUNfU0hBXzM4NDwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dWxpbmsg dXJsPSJodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jl dy1hZWFkLWFlcy1jYmMtaG1hYy1zaGEyLTA1Ii8+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+ NDg8L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT4x MzI8L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5BRUFEX0FFU18yNTZfQ0JDX0hN QUNfU0hBXzM4NDwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dWxpbmsgdXJs PSJodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1h ZWFkLWFlcy1jYmMtaG1hYy1zaGEyLTA1Ii8+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+NTY8 L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT4xMzM8 L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5BRUFEX0FFU18yNTZfQ0JDX0hNQUNf U0hBXzUxMjwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dWxpbmsgdXJsPSJo dHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1hZWFk LWFlcy1jYmMtaG1hYy1zaGEyLTA1Ii8+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+NjQ8L2Vu dHJ5PgorICAgICAgPC9yb3c+CisgICAgIDwvdGJvZHk+CisgICAgPC90Z3JvdXA+CisgICA8 L3RhYmxlPgorCisgICA8cGFyYT4KKyAgICBUaGUgPHF1b3RlPmFzc29jaWF0ZWQgZGF0YTwv cXVvdGU+IGluIHRoZXNlIGFsZ29yaXRobXMgY29uc2lzdHMgb2YgNAorICAgIGJ5dGVzOiBU aGUgQVNDSUkgbGV0dGVycyA8bGl0ZXJhbD5QPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+Rzwv bGl0ZXJhbD4KKyAgICAoYnl0ZSB2YWx1ZXMgODAgYW5kIDcxKSwgZm9sbG93ZWQgYnkgdGhl IGFsZ29yaXRobSBJRCBhcyBhIDE2LWJpdCB1bnNpZ25lZAorICAgIGludGVnZXIgaW4gbmV0 d29yayBieXRlIG9yZGVyLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgbGVu Z3RoIG9mIHRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgaXMgMTYgb2N0ZXRzIGZvciBhbGwg Q0VLIGFsZ29yaXRobQorICAgIHZhcmlhbnRzLiAgRm9yIHJhbmRvbWl6ZWQgZW5jcnlwdGlv biwgdGhlIGluaXRpYWxpemF0aW9uIHZlY3RvciBzaG91bGQgYmUKKyAgICAoY3J5cHRvZ3Jh cGhpY2FsbHkgc3Ryb25nKSByYW5kb20gYnl0ZXMuICBGb3IgZGV0ZXJtaW5pc3RpYyBlbmNy eXB0aW9uLAorICAgIHRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgaXMgY29uc3RydWN0ZWQg YXMKKzxwcm9ncmFtbGlzdGluZz4KK1NVQlNUUklORyg8cmVwbGFjZWFibGU+SE1BQzwvcmVw bGFjZWFibGU+KDxyZXBsYWNlYWJsZT5LPC9yZXBsYWNlYWJsZT4sIDxyZXBsYWNlYWJsZT5Q PC9yZXBsYWNlYWJsZT4pIEZPUiA8cmVwbGFjZWFibGU+SVZMRU48L3JlcGxhY2VhYmxlPikK KzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgd2hlcmUgPHJlcGxhY2VhYmxlPkhNQUM8L3JlcGxh Y2VhYmxlPiBpcyB0aGUgSE1BQyBmdW5jdGlvbiBhc3NvY2lhdGVkIHdpdGgKKyAgICB0aGUg YWxnb3JpdGhtLCA8cmVwbGFjZWFibGU+SzwvcmVwbGFjZWFibGU+IGlzIHRoZSBwcmVmaXgg b2YgdGhlIENFSyBvZgorICAgIHRoZSBsZW5ndGggcmVxdWlyZWQgYnkgdGhlIEhNQUMgZnVu Y3Rpb24sIGFuZCA8cmVwbGFjZWFibGU+UDwvcmVwbGFjZWFibGU+CisgICAgaXMgdGhlIHBs YWludGV4dCB0byBiZSBlbmNyeXB0ZWQuICAoVGhpcyBpcyB0aGUgc2FtZSBwb3J0aW9uIG9m IHRoZSBDRUsKKyAgICB0aGF0IHRoZSBBRUFEX0FFU18qX0hNQUNfKiBhbGdvcml0aG1zIHVz ZSBmb3IgdGhlIE1BQyBwYXJ0LikKKyAgIDwvcGFyYT4KKyAgPC9zZWN0Mj4KKyA8L3NlY3Qx PgorCiAgPHNlY3QxIGlkPSJwcm90b2NvbC1jaGFuZ2VzIj4KICAgPHRpdGxlPlN1bW1hcnkg b2YgQ2hhbmdlcyBzaW5jZSBQcm90b2NvbCAyLjA8L3RpdGxlPgogCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZp bGVzLnNnbWwKaW5kZXggZTkwYTBlMWY4MzcyLi4zMzFiMWYwMTBiNWMgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L2FsbGZpbGVzLnNnbWwKQEAgLTgsNiArOCw4IEBACiA8IUVOVElUWSBhYm9ydCAgICAgICAg ICAgICAgU1lTVEVNICJhYm9ydC5zZ21sIj4KIDwhRU5USVRZIGFsdGVyQWdncmVnYXRlICAg ICBTWVNURU0gImFsdGVyX2FnZ3JlZ2F0ZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyQ29sbGF0 aW9uICAgICBTWVNURU0gImFsdGVyX2NvbGxhdGlvbi5zZ21sIj4KKzwhRU5USVRZIGFsdGVy Q29sdW1uRW5jcnlwdGlvbktleSBTWVNURU0gImFsdGVyX2NvbHVtbl9lbmNyeXB0aW9uX2tl eS5zZ21sIj4KKzwhRU5USVRZIGFsdGVyQ29sdW1uTWFzdGVyS2V5IFNZU1RFTSAiYWx0ZXJf Y29sdW1uX21hc3Rlcl9rZXkuc2dtbCI+CiA8IUVOVElUWSBhbHRlckNvbnZlcnNpb24gICAg U1lTVEVNICJhbHRlcl9jb252ZXJzaW9uLnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJEYXRhYmFz ZSAgICAgIFNZU1RFTSAiYWx0ZXJfZGF0YWJhc2Uuc2dtbCI+CiA8IUVOVElUWSBhbHRlckRl ZmF1bHRQcml2aWxlZ2VzIFNZU1RFTSAiYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwi PgpAQCAtNjIsNiArNjQsOCBAQAogPCFFTlRJVFkgY3JlYXRlQWdncmVnYXRlICAgIFNZU1RF TSAiY3JlYXRlX2FnZ3JlZ2F0ZS5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZUNhc3QgICAgICAg ICBTWVNURU0gImNyZWF0ZV9jYXN0LnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlQ29sbGF0aW9u ICAgIFNZU1RFTSAiY3JlYXRlX2NvbGxhdGlvbi5zZ21sIj4KKzwhRU5USVRZIGNyZWF0ZUNv bHVtbkVuY3J5cHRpb25LZXkgU1lTVEVNICJjcmVhdGVfY29sdW1uX2VuY3J5cHRpb25fa2V5 LnNnbWwiPgorPCFFTlRJVFkgY3JlYXRlQ29sdW1uTWFzdGVyS2V5IFNZU1RFTSAiY3JlYXRl X2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlQ29udmVyc2lvbiAg IFNZU1RFTSAiY3JlYXRlX2NvbnZlcnNpb24uc2dtbCI+CiA8IUVOVElUWSBjcmVhdGVEYXRh YmFzZSAgICAgU1lTVEVNICJjcmVhdGVfZGF0YWJhc2Uuc2dtbCI+CiA8IUVOVElUWSBjcmVh dGVEb21haW4gICAgICAgU1lTVEVNICJjcmVhdGVfZG9tYWluLnNnbWwiPgpAQCAtMTA5LDYg KzExMyw4IEBACiA8IUVOVElUWSBkcm9wQWdncmVnYXRlICAgICAgU1lTVEVNICJkcm9wX2Fn Z3JlZ2F0ZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BDYXN0ICAgICAgICAgICBTWVNURU0gImRy b3BfY2FzdC5zZ21sIj4KIDwhRU5USVRZIGRyb3BDb2xsYXRpb24gICAgICBTWVNURU0gImRy b3BfY29sbGF0aW9uLnNnbWwiPgorPCFFTlRJVFkgZHJvcENvbHVtbkVuY3J5cHRpb25LZXkg U1lTVEVNICJkcm9wX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sIj4KKzwhRU5USVRZIGRy b3BDb2x1bW5NYXN0ZXJLZXkgU1lTVEVNICJkcm9wX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwi PgogPCFFTlRJVFkgZHJvcENvbnZlcnNpb24gICAgIFNZU1RFTSAiZHJvcF9jb252ZXJzaW9u LnNnbWwiPgogPCFFTlRJVFkgZHJvcERhdGFiYXNlICAgICAgIFNZU1RFTSAiZHJvcF9kYXRh YmFzZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BEb21haW4gICAgICAgICBTWVNURU0gImRyb3Bf ZG9tYWluLnNnbWwiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1 bW5fZW5jcnlwdGlvbl9rZXkuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1u X2VuY3J5cHRpb25fa2V5LnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi43NTk3Y2Q4MGNhNmEKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwv cmVmL2FsdGVyX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sCkBAIC0wLDAgKzEsMTg2IEBA Cis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5z Z21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNx bC1hbHRlci1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorIDxpbmRleHRlcm0gem9uZT0ic3Fs LWFsdGVyLWNvbHVtbi1lbmNyeXB0aW9uLWtleSI+CisgIDxwcmltYXJ5PkFMVEVSIENPTFVN TiBFTkNSWVBUSU9OIEtFWTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRh PgorICA8cmVmZW50cnl0aXRsZT5BTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVk8L3JlZmVu dHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+ U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgor CisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtF WTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+Y2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGEg Y29sdW1uIGVuY3J5cHRpb24ga2V5PC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKwor IDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9O IEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IEFERCBWQUxVRSAoCisgICAg Q09MVU1OX01BU1RFUl9LRVkgPSA8cmVwbGFjZWFibGU+Y21rPC9yZXBsYWNlYWJsZT4sCisg ICAgWyBBTEdPUklUSE0gPSA8cmVwbGFjZWFibGU+YWxnb3JpdGhtPC9yZXBsYWNlYWJsZT4s IF0KKyAgICBFTkNSWVBURURfVkFMVUUgPSA8cmVwbGFjZWFibGU+ZW5jdmFsPC9yZXBsYWNl YWJsZT4KKykKKworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIDxyZXBsYWNlYWJsZT5u YW1lPC9yZXBsYWNlYWJsZT4gRFJPUCBWQUxVRSAoCisgICAgQ09MVU1OX01BU1RFUl9LRVkg PSA8cmVwbGFjZWFibGU+Y21rPC9yZXBsYWNlYWJsZT4KKykKKworQUxURVIgQ09MVU1OIEVO Q1JZUFRJT04gS0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRP IDxyZXBsYWNlYWJsZT5uZXdfbmFtZTwvcmVwbGFjZWFibGU+CitBTFRFUiBDT0xVTU4gRU5D UllQVElPTiBLRVkgPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBPV05FUiBUTyB7 IDxyZXBsYWNlYWJsZT5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfUk9MRSB8 IENVUlJFTlRfVVNFUiB8IFNFU1NJT05fVVNFUiB9Cis8L3N5bm9wc2lzPgorIDwvcmVmc3lu b3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+ CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5BTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVk8 L2NvbW1hbmQ+IGNoYW5nZXMgdGhlIGRlZmluaXRpb24gb2YgYQorICAgY29sdW1uIGVuY3J5 cHRpb24ga2V5LgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgZmlyc3QgZm9ybSBh ZGRzIG5ldyBlbmNyeXB0ZWQga2V5IGRhdGEgdG8gYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXks CisgICB3aGljaCBtdXN0IGJlIGVuY3J5cHRlZCB3aXRoIGEgZGlmZmVyZW50IGNvbHVtbiBt YXN0ZXIga2V5IHRoYW4gdGhlCisgICBleGlzdGluZyBrZXkgZGF0YS4gIFRoZSBzZWNvbmQg Zm9ybSByZW1vdmVzIGEga2V5IGRhdGEgZW50cnkgZm9yIGEgZ2l2ZW4KKyAgIGNvbHVtbiBt YXN0ZXIga2V5LiAgVG9nZXRoZXIsIHRoZXNlIGZvcm1zIGNhbiBiZSB1c2VkIGZvciBjb2x1 bW4gbWFzdGVyIGtleQorICAgcm90YXRpb24uCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAg IFlvdSBtdXN0IG93biB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5IHRvIHVzZSA8Y29tbWFu ZD5BTFRFUiBDT0xVTU4KKyAgIEVOQ1JZUFRJT04gS0VZPC9jb21tYW5kPi4gIFRvIGFsdGVy IHRoZSBvd25lciwgeW91IG11c3QgYWxzbyBiZSBhIGRpcmVjdCBvcgorICAgaW5kaXJlY3Qg bWVtYmVyIG9mIHRoZSBuZXcgb3duaW5nIHJvbGUsIGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZl CisgICA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+IHByaXZpbGVnZSBvbiB0aGUgY29sdW1u IGVuY3J5cHRpb24ga2V5J3MKKyAgIGRhdGFiYXNlLiAgKFRoZXNlIHJlc3RyaWN0aW9ucyBl bmZvcmNlIHRoYXQgYWx0ZXJpbmcgdGhlIG93bmVyIGRvZXNuJ3QgZG8KKyAgIGFueXRoaW5n IHlvdSBjb3VsZG4ndCBkbyBieSBkcm9wcGluZyBhbmQgcmVjcmVhdGluZyB0aGUgY29sdW1u IGVuY3J5cHRpb24KKyAgIGtleS4gIEhvd2V2ZXIsIGEgc3VwZXJ1c2VyIGNhbiBhbHRlciBv d25lcnNoaXAgb2YgYW55IGNvbHVtbiBlbmNyeXB0aW9uIGtleQorICAgYW55d2F5LikKKyAg PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0 ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAg ICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFi bGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFt ZSBvZiBhbiBleGlzdGluZyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkuCisgICAgIDwvcGFyYT4K KyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50 cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlPmNtazwvcmVwbGFjZWFibGU+PC90ZXJtPgor CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBj b2x1bW4gbWFzdGVyIGtleSB0aGF0IHdhcyB1c2VkIHRvIGVuY3J5cHQgdGhpcyBjb2x1bW4K KyAgICAgIGVuY3J5cHRpb24ga2V5LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxy ZXBsYWNlYWJsZT5hbGdvcml0aG08L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0 aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgZW5jcnlwdGlvbiBhbGdvcml0aG0gdGhh dCB3YXMgdXNlZCB0byBlbmNyeXB0IHRoZSBrZXkgbWF0ZXJpYWwgb2YKKyAgICAgIHRoaXMg Y29sdW1uIGVuY3J5cHRpb24ga2V5LiAgU2VlIDx4cmVmCisgICAgICBsaW5rZW5kPSJzcWwt Y3JlYXRlLWNvbHVtbi1lbmNyeXB0aW9uLWtleSIvPiBmb3IgZGV0YWlscworICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlz dGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5lbmN2YWw8L3JlcGxhY2VhYmxlPjwv dGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUga2V5IG1h dGVyaWFsIG9mIHRoaXMgY29sdW1uIGVuY3J5cHRpb24ga2V5LCBlbmNyeXB0ZWQgd2l0aCB0 aGUKKyAgICAgIHNwZWNpZmllZCBjb2x1bW4gbWFzdGVyIGtleSB1c2luZyB0aGUgc3BlY2lm aWVkIGFsZ29yaXRobS4gIFRoZSB2YWx1ZQorICAgICAgbXVzdCBiZSBhIDx0eXBlPmJ5dGVh PC90eXBlPi1jb21wYXRpYmxlIGxpdGVyYWwuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3Rp dGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRl cm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19uYW1lPC9yZXBsYWNlYWJs ZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuZXcg bmFtZSBvZiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5LgorICAgICA8L3BhcmE+CisgICAg PC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5Pgor ICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfb3duZXI8L3Jl cGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg VGhlIG5ldyBvd25lciBvZiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5LgorICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorICA8L3ZhcmlhYmxl bGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8 L3RpdGxlPgorCisgIDxwYXJhPgorICAgVG8gcm90YXRlIHRoZSBtYXN0ZXIga2V5cyB1c2Vk IHRvIGVuY3J5cHQgYSBnaXZlbiBjb2x1bW4gZW5jcnlwdGlvbiBrZXksCisgICB1c2UgYSBj b21tYW5kIHNlcXVlbmNlIGxpa2UgdGhpczoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIENP TFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIEFERCBWQUxVRSAoCisgICAgQ09MVU1OX01BU1RF Ul9LRVkgPSBjbWsyLAorICAgIEVOQ1JZUFRFRF9WQUxVRSA9ICdceDAxMDIwMjA0Li4uJwor KTsKKworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgRFJPUCBWQUxVRSAoCisg ICAgQ09MVU1OX01BU1RFUl9LRVkgPSBjbWsxCispOworPC9wcm9ncmFtbGlzdGluZz4KKyAg PC9wYXJhPgorCisgIDxwYXJhPgorICAgVG8gcmVuYW1lIHRoZSBjb2x1bW4gZW5jcnlwdGlv biBrZXkgPGxpdGVyYWw+Y2VrMTwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPmNlazI8L2xp dGVyYWw+OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZ IGNlazEgUkVOQU1FIFRPIGNlazI7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisK KyAgPHBhcmE+CisgICBUbyBjaGFuZ2UgdGhlIG93bmVyIG9mIHRoZSBjb2x1bW4gZW5jcnlw dGlvbiBrZXkgPGxpdGVyYWw+Y2VrMTwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPmpvZTwv bGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBL RVkgY2VrMSBPV05FUiBUTyBqb2U7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyA8L3Jl ZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+ CisKKyAgPHBhcmE+CisgICBUaGVyZSBpcyBubyA8Y29tbWFuZD5BTFRFUiBDT0xVTU4gRU5D UllQVElPTiBLRVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbiB0aGUKKyAgIFNRTCBzdGFuZGFy ZC4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5T ZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxt ZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZS1jb2x1bW4tZW5jcnlwdGlvbi1rZXki Lz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3AtY29sdW1u LWVuY3J5cHRpb24ta2V5Ii8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNl Y3QxPgorPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf Y29sdW1uX21hc3Rlcl9rZXkuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1u X21hc3Rlcl9rZXkuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjEzZTMxMGIyMjc0OAotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfY29sdW1uX21hc3Rlcl9rZXkuc2dtbApAQCAtMCwwICsxLDExNyBAQAorPCEtLQor ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCitQb3N0Z3Jl U1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1hbHRlci1jb2x1 bW4tbWFzdGVyLWtleSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtYWx0ZXItY29sdW1uLW1h c3Rlci1rZXkiPgorICA8cHJpbWFyeT5BTFRFUiBDT0xVTU4gTUFTVEVSIEtFWTwvcHJpbWFy eT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5BTFRF UiBDT0xVTU4gTUFTVEVSIEtFWTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9t YW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9y ZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+ QUxURVIgQ09MVU1OIE1BU1RFUiBLRVk8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPmNoYW5n ZSB0aGUgZGVmaW5pdGlvbiBvZiBhIGNvbHVtbiBtYXN0ZXIga2V5PC9yZWZwdXJwb3NlPgor IDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0FMVEVS IENPTFVNTiBNQVNURVIgS0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gUkVO QU1FIFRPIDxyZXBsYWNlYWJsZT5uZXdfbmFtZTwvcmVwbGFjZWFibGU+CitBTFRFUiBDT0xV TU4gTUFTVEVSIEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IE9XTkVSIFRP IHsgPHJlcGxhY2VhYmxlPm5ld19vd25lcjwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9ST0xF IHwgQ1VSUkVOVF9VU0VSIHwgU0VTU0lPTl9VU0VSIH0KKzwvc3lub3BzaXM+CisgPC9yZWZz eW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRs ZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkFMVEVSIENPTFVNTiBNQVNURVIgS0VZPC9j b21tYW5kPiBjaGFuZ2VzIHRoZSBkZWZpbml0aW9uIG9mIGEKKyAgIGNvbHVtbiBtYXN0ZXIg a2V5LgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBZb3UgbXVzdCBvd24gdGhlIGNvbHVt biBtYXN0ZXIga2V5IHRvIHVzZSA8Y29tbWFuZD5BTFRFUiBDT0xVTU4gTUFTVEVSCisgICBL RVk8L2NvbW1hbmQ+LiAgVG8gYWx0ZXIgdGhlIG93bmVyLCB5b3UgbXVzdCBhbHNvIGJlIGEg ZGlyZWN0IG9yIGluZGlyZWN0CisgICBtZW1iZXIgb2YgdGhlIG5ldyBvd25pbmcgcm9sZSwg YW5kIHRoYXQgcm9sZSBtdXN0IGhhdmUKKyAgIDxsaXRlcmFsPkNSRUFURTwvbGl0ZXJhbD4g cHJpdmlsZWdlIG9uIHRoZSBjb2x1bW4gbWFzdGVyIGtleSdzIGRhdGFiYXNlLgorICAgKFRo ZXNlIHJlc3RyaWN0aW9ucyBlbmZvcmNlIHRoYXQgYWx0ZXJpbmcgdGhlIG93bmVyIGRvZXNu J3QgZG8gYW55dGhpbmcgeW91CisgICBjb3VsZG4ndCBkbyBieSBkcm9wcGluZyBhbmQgcmVj cmVhdGluZyB0aGUgY29sdW1uIG1hc3RlciBrZXkuICBIb3dldmVyLCBhCisgICBzdXBlcnVz ZXIgY2FuIGFsdGVyIG93bmVyc2hpcCBvZiBhbnkgY29sdW1uIG1hc3RlciBrZXkgYW55d2F5 LikKKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Q YXJhbWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRy eT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVw bGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBU aGUgbmFtZSAob3B0aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkKSBvZiBhbiBleGlzdGluZyBj b2x1bW4gbWFzdGVyIGtleS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8 L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X25hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4K KyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5ldyBuYW1lIG9mIHRo ZSBjb2x1bW4gbWFzdGVyIGtleS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+Cisg ICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X293bmVyPC9yZXBsYWNlYWJsZT48L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuZXcgb3duZXIg b2YgdGhlIGNvbHVtbiBtYXN0ZXIga2V5LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKyAgIDwvdmFybGlzdGVudHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3Qx PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxwYXJh PgorICAgVG8gcmVuYW1lIHRoZSBjb2x1bW4gbWFzdGVyIGtleSA8bGl0ZXJhbD5jbWsxPC9s aXRlcmFsPiB0bworICAgPGxpdGVyYWw+Y21rMjwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rp bmc+CitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFJFTkFNRSBUTyBjbWsyOworPC9w cm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVG8gY2hhbmdlIHRo ZSBvd25lciBvZiB0aGUgY29sdW1uIG1hc3RlciBrZXkgPGxpdGVyYWw+Y21rMTwvbGl0ZXJh bD4gdG8KKyAgIDxsaXRlcmFsPmpvZTwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitB TFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIE9XTkVSIFRPIGpvZTsKKzwvcHJvZ3JhbWxp c3Rpbmc+PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5D b21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZXJlIGlzIG5vIDxjb21t YW5kPkFMVEVSIENPTFVNTiBNQVNURVIgS0VZPC9jb21tYW5kPiBzdGF0ZW1lbnQgaW4gdGhl CisgICBTUUwgc3RhbmRhcmQuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNl Y3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9 ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1u LW1hc3Rlci1rZXkiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3Fs LWRyb3AtY29sdW1uLW1hc3Rlci1rZXkiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0Pgor IDwvcmVmc2VjdDE+Cis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLmE5NGIwOTI0YjE1MwotLS0gL2Rldi9udWxsCisrKyBi L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sCkBA IC0wLDAgKzEsMTYzIEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5f ZW5jcnlwdGlvbl9rZXkuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKwor PHJlZmVudHJ5IGlkPSJzcWwtY3JlYXRlLWNvbHVtbi1lbmNyeXB0aW9uLWtleSI+CisgPGlu ZGV4dGVybSB6b25lPSJzcWwtY3JlYXRlLWNvbHVtbi1lbmNyeXB0aW9uLWtleSI+CisgIDxw cmltYXJ5PkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVk8L3ByaW1hcnk+CisgPC9pbmRl eHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+Q1JFQVRFIENPTFVNTiBF TkNSWVBUSU9OIEtFWTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xu dW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNj aW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+Q1JFQVRF IENPTFVNTiBFTkNSWVBUSU9OIEtFWTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+ZGVmaW5l IGEgbmV3IGNvbHVtbiBlbmNyeXB0aW9uIGtleTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVk aXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitDUkVBVEUgQ09MVU1OIEVO Q1JZUFRJT04gS0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gV0lUSCBWQUxV RVMgKAorICAgIENPTFVNTl9NQVNURVJfS0VZID0gPHJlcGxhY2VhYmxlPmNtazwvcmVwbGFj ZWFibGU+LAorICAgIFsgQUxHT1JJVEhNID0gPHJlcGxhY2VhYmxlPmFsZ29yaXRobTwvcmVw bGFjZWFibGU+LCBdCisgICAgRU5DUllQVEVEX1ZBTFVFID0gPHJlcGxhY2VhYmxlPmVuY3Zh bDwvcmVwbGFjZWFibGU+CispCitbICwgLi4uIF0KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5v cHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4K KworICA8cGFyYT4KKyAgIDxjb21tYW5kPkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVk8 L2NvbW1hbmQ+IGRlZmluZXMgYSBuZXcgY29sdW1uCisgICBlbmNyeXB0aW9uIGtleS4gIEEg Y29sdW1uIGVuY3J5cHRpb24ga2V5IGlzIHVzZWQgZm9yIGNsaWVudC1zaWRlIGVuY3J5cHRp b24KKyAgIG9mIHRhYmxlIGNvbHVtbnMgdGhhdCBoYXZlIGJlZW4gZGVmaW5lZCBhcyBlbmNy eXB0ZWQuICBUaGUga2V5IG1hdGVyaWFsIG9mCisgICBhIGNvbHVtbiBlbmNyeXB0aW9uIGtl eSBpcyBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlJ3Mgc3lzdGVtIGNhdGFsb2dzLAorICAgZW5j cnlwdGVkICh3cmFwcGVkKSBieSBhIGNvbHVtbiBtYXN0ZXIga2V5ICh3aGljaCBpbiB0dXJu IGlzIG9ubHkKKyAgIGFjY2Vzc2libGUgdG8gdGhlIGNsaWVudCwgbm90IHRoZSBkYXRhYmFz ZSBzZXJ2ZXIpLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBBIGNvbHVtbiBlbmNyeXB0 aW9uIGtleSBjYW4gYmUgYXNzb2NpYXRlZCB3aXRoIG1vcmUgdGhhbiBvbmUgY29sdW1uIG1h c3RlcgorICAga2V5LiAgVG8gc3BlY2lmeSB0aGF0LCBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUg cGFyZW50aGVzaXplZCBkZWZpbml0aW9uIChzZWUKKyAgIGFsc28gdGhlIGV4YW1wbGVzKS4K KyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJh bWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4K KyAgICA8dGVybT48cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisg ICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBuZXcg Y29sdW1uIGVuY3J5cHRpb24ga2V5LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxy ZXBsYWNlYWJsZT5jbWs8L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSBvZiB0aGUgY29sdW1uIG1hc3RlciBrZXkg dGhhdCB3YXMgdXNlZCB0byBlbmNyeXB0IHRoaXMgY29sdW1uCisgICAgICBlbmNyeXB0aW9u IGtleS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGU+YWxnb3Jp dGhtPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJh PgorICAgICAgVGhlIGVuY3J5cHRpb24gYWxnb3JpdGhtIHRoYXQgd2FzIHVzZWQgdG8gZW5j cnlwdCB0aGUga2V5IG1hdGVyaWFsIG9mCisgICAgICB0aGlzIGNvbHVtbiBlbmNyeXB0aW9u IGtleS4gIFN1cHBvcnRlZCBhbGdvcml0aG1zIGFyZToKKyAgICAgIDxpdGVtaXplZGxpc3Q+ CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT48bGl0ZXJhbD5SU0FFU19PQUVQ X1NIQV8xPC9saXRlcmFsPiAoZGVmYXVsdCk8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4K KyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPjxsaXRlcmFsPlJTQUVTX09BRVBf U0hBXzI1NjwvbGl0ZXJhbD4gKGRlZmF1bHQpPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+ CisgICAgICA8L2l0ZW1pemVkbGlzdD4KKyAgICAgPC9wYXJhPgorCisgICAgIDxwYXJhPgor ICAgICAgVGhpcyBpcyBpbmZvcm1hdGlvbmFsIG9ubHkuICBUaGUgc3BlY2lmaWVkIHZhbHVl IGlzIHByb3ZpZGVkIHRvIHRoZQorICAgICAgY2xpZW50LCB3aGljaCBtYXkgdXNlIGl0IGZv ciBkZWNyeXB0aW5nIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgb24gdGhlCisgICAgICBj bGllbnQgc2lkZS4gIEJ1dCBhIGNsaWVudCBpcyBhbHNvIGZyZWUgdG8gaWdub3JlIHRoaXMg aW5mb3JtYXRpb24gYW5kCisgICAgICBmaWd1cmUgb3V0IGhvdyB0byBhcnJhbmdlIHRoZSBk ZWNyeXB0aW9uIGluIHNvbWUgb3RoZXIgd2F5LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0 aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0 ZXJtPjxyZXBsYWNlYWJsZT5lbmN2YWw8L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUga2V5IG1hdGVyaWFsIG9mIHRoaXMg Y29sdW1uIGVuY3J5cHRpb24ga2V5LCBlbmNyeXB0ZWQgd2l0aCB0aGUKKyAgICAgIHNwZWNp ZmllZCBjb2x1bW4gbWFzdGVyIGtleSB1c2luZyB0aGUgc3BlY2lmaWVkIGFsZ29yaXRobS4g IFRoZSB2YWx1ZQorICAgICAgbXVzdCBiZSBhIDx0eXBlPmJ5dGVhPC90eXBlPi1jb21wYXRp YmxlIGxpdGVyYWwuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2Vj dDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+Cis8cHJvZ3JhbWxp c3Rpbmc+CitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgV0lUSCBWQUxVRVMg KAorICAgIENPTFVNTl9NQVNURVJfS0VZID0gY21rMSwKKyAgICBFTkNSWVBURURfVkFMVUUg PSAnXHgwMTAyMDIwNC4uLicKKyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisK KyAgPHBhcmE+CisgICBUbyBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUgYXNzb2NpYXRlZCBjb2x1 bW4gbWFzdGVyIGtleToKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBDT0xVTU4gRU5DUllQ VElPTiBLRVkgY2VrMSBXSVRIIFZBTFVFUyAoCisgICAgQ09MVU1OX01BU1RFUl9LRVkgPSBj bWsxLAorICAgIEVOQ1JZUFRFRF9WQUxVRSA9ICdceDAxMDIwMjA0Li4uJworKSwKKygKKyAg ICBDT0xVTU5fTUFTVEVSX0tFWSA9IGNtazIsCisgICAgRU5DUllQVEVEX1ZBTFVFID0gJ1x4 RjFGMkYyRjQuLi4nCispOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorIDwvcmVm c2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4K KworICA8cGFyYT4KKyAgIFRoZXJlIGlzIG5vIDxjb21tYW5kPkNSRUFURSBDT0xVTU4gRU5D UllQVElPTiBLRVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbgorICAgdGhlIFNRTCBzdGFuZGFy ZC4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5T ZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxt ZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVyLWNvbHVtbi1lbmNyeXB0aW9uLWtleSIv PjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcC1jb2x1bW4t ZW5jcnlwdGlvbi1rZXkiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0i c3FsLWNyZWF0ZS1jb2x1bW4tbWFzdGVyLWtleSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxp c3Q+CisgPC9yZWZzZWN0MT4KKworPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uZWM1ZmE0Y2RlNTcxCi0tLSAvZGV2L251bGwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX21hc3Rlcl9rZXkuc2dtbApAQCAtMCww ICsxLDEwNiBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX21hc3Rl cl9rZXkuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5 IGlkPSJzcWwtY3JlYXRlLWNvbHVtbi1tYXN0ZXIta2V5Ij4KKyA8aW5kZXh0ZXJtIHpvbmU9 InNxbC1jcmVhdGUtY29sdW1uLW1hc3Rlci1rZXkiPgorICA8cHJpbWFyeT5DUkVBVEUgQ09M VU1OIE1BU1RFUiBLRVk8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4K KyAgPHJlZmVudHJ5dGl0bGU+Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZPC9yZWZlbnRyeXRp dGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAt IExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxy ZWZuYW1lZGl2PgorICA8cmVmbmFtZT5DUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVk8L3JlZm5h bWU+CisgIDxyZWZwdXJwb3NlPmRlZmluZSBhIG5ldyBjb2x1bW4gbWFzdGVyIGtleTwvcmVm cHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3Bz aXM+CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxh Y2VhYmxlPiBXSVRIICgKKyAgICBbIFJFQUxNID0gPHJlcGxhY2VhYmxlPnJlYWxtPC9yZXBs YWNlYWJsZT4gXQorKQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJl ZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAg PGNvbW1hbmQ+Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZPC9jb21tYW5kPiBkZWZpbmVzIGEg bmV3IGNvbHVtbiBtYXN0ZXIKKyAgIGtleS4gIEEgY29sdW1uIG1hc3RlciBrZXkgaXMgdXNl ZCB0byBlbmNyeXB0IGNvbHVtbiBlbmNyeXB0aW9uIGtleXMsIHdoaWNoCisgICBhcmUgdGhl IGtleXMgdGhhdCBhY3R1YWxseSBlbmNyeXB0IHRoZSBjb2x1bW4gZGF0YS4gIFRoZSBrZXkg bWF0ZXJpYWwgb2YKKyAgIHRoZSBjb2x1bW4gbWFzdGVyIGtleSBpcyBub3Qgc3RvcmVkIGlu IHRoZSBkYXRhYmFzZS4gIFRoZSBkZWZpbml0aW9uIG9mIGEKKyAgIGNvbHVtbiBtYXN0ZXIg a2V5IHJlY29yZHMgaW5mb3JtYXRpb24gdGhhdCB3aWxsIGFsbG93IGEgY2xpZW50IHRvIGxv Y2F0ZQorICAgdGhlIGtleSBtYXRlcmlhbCwgZm9yIGV4YW1wbGUgaW4gYSBmaWxlIG9yIGlu IGEga2V5IG1hbmFnZW1lbnQgc3lzdGVtLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKwor IDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJpYWJs ZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5uYW1l PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgor ICAgICAgVGhlIG5hbWUgb2YgdGhlIG5ldyBjb2x1bW4gbWFzdGVyIGtleS4KKyAgICAgPC9w YXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxp c3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGU+cmVhbG08L3JlcGxhY2VhYmxlPjwv dGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGlzIGFu IG9wdGlvbmFsIHN0cmluZyB0aGF0IGNhbiBiZSB1c2VkIHRvIG9yZ2FuaXplIGNvbHVtbiBt YXN0ZXIKKyAgICAgIGtleXMgaW50byBncm91cHMgZm9yIGxvb2t1cCBieSBjbGllbnRzLiAg VGhlIGludGVudCBpcyB0aGF0IGFsbCBjb2x1bW4KKyAgICAgIG1hc3RlciBrZXlzIHRoYXQg YXJlIHN0b3JlZCBpbiB0aGUgc2FtZSBzeXN0ZW0gKGZpbGUgc3lzdGVtIGxvY2F0aW9uLAor ICAgICAga2V5IG1hbmFnZW1lbnQgc3lzdGVtLCBldGMuKSBzaG91bGQgYmUgaW4gdGhlIHNh bWUgcmVhbG0uICBBIGNsaWVudAorICAgICAgd291bGQgdGhlbiBiZSBjb25maWd1cmVkIHRv IGxvb2sgdXAgYWxsIGtleXMgaW4gYSBnaXZlbiByZWFsbSBpbiBhCisgICAgICBjZXJ0YWlu IHdheS4gIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgcmVzcGVjdGl2ZSBjbGllbnQg bGlicmFyeSBmb3IKKyAgICAgIGZ1cnRoZXIgdXNhZ2UgaW5zdHJ1Y3Rpb25zLgorICAgICA8 L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBUaGUgZGVmYXVsdCBpcyB0aGUgZW1wdHkg c3RyaW5nLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVu dHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgor ICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUg Q09MVU1OIE1BU1RFUiBLRVkgY21rMSAocmVhbG0gPSAnbXlyZWFsbScpOworPC9wcm9ncmFt bGlzdGluZz4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0 aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGVyZSBpcyBubyA8Y29tbWFuZD5D UkVBVEUgQ09MVU1OIE1BU1RFUiBLRVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbgorICAgdGhl IFNRTCBzdGFuZGFyZC4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5s aW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVyLWNvbHVtbi1tYXN0 ZXIta2V5Ii8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9w LWNvbHVtbi1tYXN0ZXIta2V5Ii8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtl bmQ9InNxbC1jcmVhdGUtY29sdW1uLWVuY3J5cHRpb24ta2V5Ii8+PC9tZW1iZXI+CisgIDwv c2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX3RhYmxlLnNnbWwKaW5kZXggYzE0YjIwMTBkODFkLi5mZWViZjUxZmQ5YTUgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbApAQCAtMjIsNyArMjIsNyBAQAogIDxy ZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KIENSRUFURSBbIFsgR0xPQkFMIHwgTE9DQUwg XSB7IFRFTVBPUkFSWSB8IFRFTVAgfSB8IFVOTE9HR0VEIF0gVEFCTEUgWyBJRiBOT1QgRVhJ U1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxh Y2VhYmxlPiAoIFsKLSAgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1u X25hbWU8L3JlcGxhY2VhYmxlPiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0 YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBTVE9SQUdFIHsgUExBSU4gfCBFWFRFUk5BTCB8IEVY VEVOREVEIHwgTUFJTiB9IF0gWyBDT01QUkVTU0lPTiA8cmVwbGFjZWFibGU+Y29tcHJlc3Np b25fbWV0aG9kPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlPmNvbGxh dGlvbjwvcmVwbGFjZWFibGU+IF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sdW1uX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiBbIC4uLiBdIF0KKyAgeyA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBF TkNSWVBURUQgV0lUSCAoIDxyZXBsYWNlYWJsZT5lbmNyeXB0aW9uX29wdGlvbnM8L3JlcGxh Y2VhYmxlPiApIF0gWyBTVE9SQUdFIHsgUExBSU4gfCBFWFRFUk5BTCB8IEVYVEVOREVEIHwg TUFJTiB9IF0gWyBDT01QUkVTU0lPTiA8cmVwbGFjZWFibGU+Y29tcHJlc3Npb25fbWV0aG9k PC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlPmNvbGxhdGlvbjwvcmVw bGFjZWFibGU+IF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX2Nv bnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiBbIC4uLiBdIF0KICAgICB8IDxyZXBsYWNlYWJsZT50 YWJsZV9jb25zdHJhaW50PC9yZXBsYWNlYWJsZT4KICAgICB8IExJS0UgPHJlcGxhY2VhYmxl PnNvdXJjZV90YWJsZTwvcmVwbGFjZWFibGU+IFsgPHJlcGxhY2VhYmxlPmxpa2Vfb3B0aW9u PC9yZXBsYWNlYWJsZT4gLi4uIF0gfQogICAgIFssIC4uLiBdCkBAIC0zNDksNiArMzQ5LDQ2 IEBAIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92 YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+ RU5DUllQVEVEIFdJVEggKCA8cmVwbGFjZWFibGU+ZW5jcnlwdGlvbl9vcHRpb25zPC9yZXBs YWNlYWJsZT4gKTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIEVuYWJsZXMgdHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24gZm9yIHRo ZSBjb2x1bW4uCisgICAgICA8cmVwbGFjZWFibGU+ZW5jcnlwdGlvbl9vcHRpb25zPC9yZXBs YWNlYWJsZT4gYXJlIGNvbW1hLXNlcGFyYXRlZAorICAgICAgPGxpdGVyYWw+a2V5PXZhbHVl PC9saXRlcmFsPiBzcGVjaWZpY2F0aW9ucy4gIFRoZSBmb2xsb3dpbmcgb3B0aW9ucyBhcmUK KyAgICAgIGF2YWlsYWJsZToKKyAgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICAgPHZhcmxp c3RlbnRyeT4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+Y29sdW1uX2VuY3J5cHRpb25fa2V5 PC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+ CisgICAgICAgICAgU3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBjb2x1bW4gZW5jcnlwdGlv biBrZXkgdG8gdXNlLiAgU3BlY2lmeWluZworICAgICAgICAgIHRoaXMgaXMgbWFuZGF0b3J5 LgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFy bGlzdGVudHJ5PgorICAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgIDx0ZXJtPjxsaXRl cmFsPmVuY3J5cHRpb25fdHlwZTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRl bT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIDxsaXRlcmFsPnJhbmRvbWl6ZWQ8L2xp dGVyYWw+ICh0aGUgZGVmYXVsdCkgb3IgPGxpdGVyYWw+ZGV0ZXJtaW5pc3RpYzwvbGl0ZXJh bD4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8L3Zh cmxpc3RlbnRyeT4KKyAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICA8dGVybT48bGl0 ZXJhbD5hbGdvcml0aG08L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+Cisg ICAgICAgICA8cGFyYT4KKyAgICAgICAgICBUaGUgZW5jcnlwdGlvbiBhbGdvcml0aG0gdG8g dXNlLiAgVGhlIGRlZmF1bHQgaXMKKyAgICAgICAgICA8bGl0ZXJhbD5BRUFEX0FFU18xMjhf Q0JDX0hNQUNfU0hBXzI1NjwvbGl0ZXJhbD4uCisgICAgICAgICA8L3BhcmE+CisgICAgICAg IDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgICA8L3ZhcmlhYmxl bGlzdD4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRy eT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48bGl0ZXJhbD5JTkhFUklUUyAo IDxyZXBsYWNlYWJsZT5wYXJlbnRfdGFibGU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApPC9s aXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2Ryb3BfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2Ryb3BfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45ZDE1N2RlOWM1ZjgKLS0tIC9kZXYvbnVsbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKQEAg LTAsMCArMSwxMTIgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvZHJvcF9jb2x1bW5fZW5j cnlwdGlvbl9rZXkuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJl ZmVudHJ5IGlkPSJzcWwtZHJvcC1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorIDxpbmRleHRl cm0gem9uZT0ic3FsLWRyb3AtY29sdW1uLWVuY3J5cHRpb24ta2V5Ij4KKyAgPHByaW1hcnk+ RFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVk8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisK KyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+RFJPUCBDT0xVTU4gRU5DUllQVElPTiBL RVk8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVm bWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9y ZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkRST1AgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5yZW1vdmUgYSBjb2x1bW4gZW5j cnlwdGlvbiBrZXk8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9w c2lzZGl2PgorPHN5bm9wc2lzPgorRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgWyBJRiBF WElTVFMgXSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IFsgQ0FTQ0FERSB8IFJF U1RSSUNUIF0KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0 MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21t YW5kPkRST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9jb21tYW5kPiByZW1vdmVzIGEgcHJl dmlvdXNseSBkZWZpbmVkCisgICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkuICBUbyBiZSBhYmxl IHRvIGRyb3AgYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXksIHlvdQorICAgbXVzdCBiZSBpdHMg b3duZXIuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0 bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgIDx2YXJpYWJsZWxpc3Q+CisgICAgPHZhcmxp c3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+SUYgRVhJU1RTPC9saXRlcmFsPjwvdGVy bT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgRG8gbm90IHRocm93 IGFuIGVycm9yIGlmIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZG9lcyBub3QgZXhpc3Qu CisgICAgICAgQSBub3RpY2UgaXMgaXNzdWVkIGluIHRoaXMgY2FzZS4KKyAgICAgIDwvcGFy YT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJs aXN0ZW50cnk+CisgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT48 L3Rlcm0+CisKKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIG5h bWUgb2YgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleS4KKyAgICAgIDwvcGFyYT4KKyAgICAg PC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0ZW50cnk+ CisgICAgIDx0ZXJtPjxsaXRlcmFsPkNBU0NBREU8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8 bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBBdXRvbWF0aWNhbGx5IGRyb3Agb2Jq ZWN0cyB0aGF0IGRlcGVuZCBvbiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5LAorICAgICAg IGFuZCBpbiB0dXJuIGFsbCBvYmplY3RzIHRoYXQgZGVwZW5kIG9uIHRob3NlIG9iamVjdHMK KyAgICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1kZXBlbmQiLz4pLgorICAgICAgPC9w YXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+UkVTVFJJQ1Q8L2xpdGVyYWw+PC90 ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBSZWZ1c2UgdG8g ZHJvcCB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5IGlmIGFueSBvYmplY3RzIGRlcGVuZCBv biBpdC4gIFRoaXMKKyAgICAgICBpcyB0aGUgZGVmYXVsdC4KKyAgICAgIDwvcGFyYT4KKyAg ICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgIDwvdmFyaWFibGVsaXN0 PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0 bGU+CisKKyAgPHBhcmE+Cis8cHJvZ3JhbWxpc3Rpbmc+CitEUk9QIENPTFVNTiBFTkNSWVBU SU9OIEtFWSBjZWsxOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisgPC9yZWZzZWN0MT4K KworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxw YXJhPgorICAgVGhlcmUgaXMgbm8gPGNvbW1hbmQ+RFJPUCBDT0xVTU4gRU5DUllQVElPTiBL RVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbgorICAgdGhlIFNRTCBzdGFuZGFyZC4KKyAgPC9w YXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwv dGl0bGU+CisKKyAgICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48 eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXItY29sdW1uLWVuY3J5cHRpb24ta2V5Ii8+PC9tZW1i ZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1uLWVuY3J5 cHRpb24ta2V5Ii8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgor Cis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX2NvbHVt bl9tYXN0ZXJfa2V5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfY29sdW1uX21hc3Rl cl9rZXkuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmM4 NTA5OGVhMWM5OQotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF9j b2x1bW5fbWFzdGVyX2tleS5zZ21sCkBAIC0wLDAgKzEsMTEyIEBACis8IS0tCitkb2Mvc3Jj L3NnbWwvcmVmL2Ryb3BfY29sdW1uX21hc3Rlcl9rZXkuc2dtbAorUG9zdGdyZVNRTCBkb2N1 bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtZHJvcC1jb2x1bW4tbWFzdGVy LWtleSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtZHJvcC1jb2x1bW4tbWFzdGVyLWtleSI+ CisgIDxwcmltYXJ5PkRST1AgQ09MVU1OIE1BU1RFUiBLRVk8L3ByaW1hcnk+CisgPC9pbmRl eHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+RFJPUCBDT0xVTU4gTUFT VEVSIEtFWTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+Cisg IDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4K KyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+RFJPUCBDT0xVTU4g TUFTVEVSIEtFWTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+cmVtb3ZlIGEgY29sdW1uIG1h c3RlciBrZXk8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lz ZGl2PgorPHN5bm9wc2lzPgorRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBbIElGIEVYSVNUUyBd IDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gWyBDQVNDQURFIHwgUkVTVFJJQ1Qg XQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8 dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+RFJP UCBDT0xVTU4gTUFTVEVSIEtFWTwvY29tbWFuZD4gcmVtb3ZlcyBhIHByZXZpb3VzbHkgZGVm aW5lZAorICAgY29sdW1uIG1hc3RlciBrZXkuICBUbyBiZSBhYmxlIHRvIGRyb3AgYSBjb2x1 bW4gbWFzdGVyIGtleSwgeW91CisgICBtdXN0IGJlIGl0cyBvd25lci4KKyAgPC9wYXJhPgor IDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRs ZT4KKworICAgPHZhcmlhYmxlbGlzdD4KKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVy bT48bGl0ZXJhbD5JRiBFWElTVFM8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+ CisgICAgICA8cGFyYT4KKyAgICAgICBEbyBub3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIGNv bHVtbiBtYXN0ZXIga2V5IGRvZXMgbm90IGV4aXN0LgorICAgICAgIEEgbm90aWNlIGlzIGlz c3VlZCBpbiB0aGlzIGNhc2UuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+Cisg ICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48 cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisgICAgIDxsaXN0aXRl bT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBuYW1lIG9mIHRoZSBjb2x1bW4gbWFzdGVy IGtleS4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3Rl bnRyeT4KKworICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRlcmFsPkNBU0NB REU8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAg ICAgICBBdXRvbWF0aWNhbGx5IGRyb3Agb2JqZWN0cyB0aGF0IGRlcGVuZCBvbiB0aGUgY29s dW1uIG1hc3RlciBrZXksCisgICAgICAgYW5kIGluIHR1cm4gYWxsIG9iamVjdHMgdGhhdCBk ZXBlbmQgb24gdGhvc2Ugb2JqZWN0cworICAgICAgIChzZWUgPHhyZWYgbGlua2VuZD0iZGRs LWRlcGVuZCIvPikuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJh bD5SRVNUUklDVDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxw YXJhPgorICAgICAgIFJlZnVzZSB0byBkcm9wIHRoZSBjb2x1bW4gbWFzdGVyIGtleSBpZiBh bnkgb2JqZWN0cyBkZXBlbmQgb24gaXQuICBUaGlzCisgICAgICAgaXMgdGhlIGRlZmF1bHQu CisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+ CisgICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8 dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxwYXJhPgorPHByb2dyYW1saXN0aW5nPgor RFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBjZWsxOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+ CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8 L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlcmUgaXMgbm8gPGNvbW1hbmQ+RFJPUCBDT0xV TU4gTUFTVEVSIEtFWTwvY29tbWFuZD4gc3RhdGVtZW50IGluCisgICB0aGUgU1FMIHN0YW5k YXJkLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxl PlNlZSBBbHNvPC90aXRsZT4KKworICAgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+Cisg ICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlci1jb2x1bW4tbWFzdGVyLWtleSIv PjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlLWNvbHVt bi1tYXN0ZXIta2V5Ii8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3Qx PgorCis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1w LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXAuc2dtbAppbmRleCA4YjlkOWY0Y2Fk NDMuLjcyMDQ5NzFlMWExMiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1w LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1wLnNnbWwKQEAgLTY5MSw2ICs2 OTEsMzcgQEAgPHRpdGxlPk9wdGlvbnM8L3RpdGxlPgogICAgICAgPC9saXN0aXRlbT4KICAg ICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJt PjxvcHRpb24+LS1kZWNyeXB0LWVuY3J5cHRlZC1jb2x1bW5zPC9vcHRpb24+PC90ZXJtPgor ICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIG9wdGlvbiBj YXVzZXMgdGhlIHZhbHVlcyBvZiBhbGwgZW5jcnlwdGVkIGNvbHVtbnMgdG8gYmUgZGVjcnlw dGVkCisgICAgICAgIGFuZCB3cml0dGVuIHRvIHRoZSBvdXRwdXQgaW4gcGxhaW50ZXh0LiAg QnkgZGVmYXVsdCwgdGhlIHZhbHVlcyBvZgorICAgICAgICBlbmNyeXB0ZWQgY29sdW1ucyBh cmUgd3JpdHRlbiB0byB0aGUgZHVtcCBpbiBjaXBoZXJ0ZXh0ICh0aGF0IGlzLCB0aGV5Cisg ICAgICAgIGFyZSBub3QgZGVjcnlwdGVkKS4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8 cGFyYT4KKyAgICAgICAgVGhpcyBvcHRpb24gcmVxdWlyZXMgdGhhdCA8b3B0aW9uPi0taW5z ZXJ0czwvb3B0aW9uPiwKKyAgICAgICAgPG9wdGlvbj4tLWNvbHVtbi1pbnNlcnRzPC9vcHRp b24+IG9yCisgICAgICAgIDxvcHRpb24+LS1yb3dzLXBlci1pbnNlcnQ8L29wdGlvbj4gaXMg YWxzbyBzcGVjaWZpZWQuCisgICAgICAgICg8Y29tbWFuZD5DT1BZPC9jb21tYW5kPiBkb2Vz IG5vdCBzdXBwb3J0IGNvbHVtbiBkZWNyeXB0aW9uLikKKyAgICAgICA8L3BhcmE+CisKKyAg ICAgICA8cGFyYT4KKyAgICAgICAgRm9yIHJvdXRpbmUgYmFja3VwcywgdGhlIGRlZmF1bHQg YmVoYXZpb3IgaXMgYXBwcm9wcmlhdGUgYW5kIG1vc3QKKyAgICAgICAgZWZmaWNpZW50LiAg VGhpcyBvcHRpb24gaXMgc3VpdGFibGUgaWYgdGhlIGRhdGEgaXMgbWVhbnQgdG8gYmUKKyAg ICAgICAgaW5zcGVjdGVkIG9yIGV4cG9ydGVkIGZvciBvdGhlciBwdXJwb3Nlcy4gIE5vdGUg dGhhdCBhIGR1bXAgY3JlYXRlZAorICAgICAgICB3aXRoIHRoaXMgb3B0aW9uIGNhbm5vdCBi ZSByZXN0b3JlZCBpbnRvIGEgZGF0YWJhc2Ugd2l0aCBjb2x1bW4KKyAgICAgICAgZW5jcnlw dGlvbi4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPCEtLQorICAgICAgICAgICBYWFg6IFRo ZSBsYXR0ZXIgd291bGQgcmVxdWlyZSBhbm90aGVyIHBnX2R1bXAgb3B0aW9uIHRvIHB1dCBv dXQKKyAgICAgICAgICAgSU5TRVJUIC4uLiBcZ2VuY3IgY29tbWFuZHMuCisgICAgICAgLS0+ CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFy bGlzdGVudHJ5PgogICAgICAgPHRlcm0+PG9wdGlvbj4tLWRpc2FibGUtZG9sbGFyLXF1b3Rp bmc8L29wdGlvbj48L3Rlcm0+CiAgICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvcmVmL3BnX2R1bXBhbGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfZHVt cGFsbC5zZ21sCmluZGV4IGU2MmQwNWU1YWI1OC4uNGJmNjBjNzI5ZjdmIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXBhbGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv cmVmL3BnX2R1bXBhbGwuc2dtbApAQCAtMjU5LDYgKzI1OSwzMyBAQCA8dGl0bGU+T3B0aW9u czwvdGl0bGU+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAor ICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PG9wdGlvbj4tLWRlY3J5cHQtZW5j cnlwdGVkLWNvbHVtbnM8L29wdGlvbj48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAg ICAgPHBhcmE+CisgICAgICAgIFRoaXMgb3B0aW9uIGNhdXNlcyB0aGUgdmFsdWVzIG9mIGFs bCBlbmNyeXB0ZWQgY29sdW1ucyB0byBiZSBkZWNyeXB0ZWQKKyAgICAgICAgYW5kIHdyaXR0 ZW4gdG8gdGhlIG91dHB1dCBpbiBwbGFpbnRleHQuICBCeSBkZWZhdWx0LCB0aGUgdmFsdWVz IG9mCisgICAgICAgIGVuY3J5cHRlZCBjb2x1bW5zIGFyZSB3cml0dGVuIHRvIHRoZSBkdW1w IGluIGNpcGhlcnRleHQgKHRoYXQgaXMsIHRoZXkKKyAgICAgICAgYXJlIG5vdCBkZWNyeXB0 ZWQpLgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIG9w dGlvbiByZXF1aXJlcyB0aGF0IDxvcHRpb24+LS1pbnNlcnRzPC9vcHRpb24+LAorICAgICAg ICA8b3B0aW9uPi0tY29sdW1uLWluc2VydHM8L29wdGlvbj4gb3IKKyAgICAgICAgPG9wdGlv bj4tLXJvd3MtcGVyLWluc2VydDwvb3B0aW9uPiBpcyBhbHNvIHNwZWNpZmllZC4KKyAgICAg ICAgKDxjb21tYW5kPkNPUFk8L2NvbW1hbmQ+IGRvZXMgbm90IHN1cHBvcnQgY29sdW1uIGRl Y3J5cHRpb24uKQorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBG b3Igcm91dGluZSBiYWNrdXBzLCB0aGUgZGVmYXVsdCBiZWhhdmlvciBpcyBhcHByb3ByaWF0 ZSBhbmQgbW9zdAorICAgICAgICBlZmZpY2llbnQuICBUaGlzIG9wdGlvbiBpcyBzdWl0YWJs ZSBpZiB0aGUgZGF0YSBpcyBtZWFudCB0byBiZQorICAgICAgICBpbnNwZWN0ZWQgb3IgZXhw b3J0ZWQgZm9yIG90aGVyIHB1cnBvc2VzLiAgTm90ZSB0aGF0IGEgZHVtcCBjcmVhdGVkCisg ICAgICAgIHdpdGggdGhpcyBvcHRpb24gY2Fubm90IGJlIHJlc3RvcmVkIGludG8gYSBkYXRh YmFzZSB3aXRoIGNvbHVtbgorICAgICAgICBlbmNyeXB0aW9uLgorICAgICAgIDwvcGFyYT4K KyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJs aXN0ZW50cnk+CiAgICAgICA8dGVybT48b3B0aW9uPi0tZGlzYWJsZS1kb2xsYXItcXVvdGlu Zzwvb3B0aW9uPjwvdGVybT4KICAgICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYu c2dtbAppbmRleCA5NDk0ZjI4MDYzYWQuLmNkNjFlOTllODZmZSAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcHNx bC1yZWYuc2dtbApAQCAtMjI1NSw2ICsyMjU1LDI4IEBAIDx0aXRsZT5NZXRhLUNvbW1hbmRz PC90aXRsZT4KICAgICAgIDwvdmFybGlzdGVudHJ5PgogCiAKKyAgICAgIDx2YXJsaXN0ZW50 cnk+CisgICAgICAgPHRlcm0+PGxpdGVyYWw+XGdlbmNyPC9saXRlcmFsPiBbIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXJhbWV0ZXI8L3JlcGxhY2VhYmxlPiBdIC4uLiA8 L3Rlcm0+CisKKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAg U2VuZHMgdGhlIGN1cnJlbnQgcXVlcnkgYnVmZmVyIHRvIHRoZSBzZXJ2ZXIgZm9yIGV4ZWN1 dGlvbiwgYXMgd2l0aAorICAgICAgICAgPGxpdGVyYWw+XGc8L2xpdGVyYWw+LCB3aXRoIHRo ZSBzcGVjaWZpZWQgcGFyYW1ldGVycyBwYXNzZWQgZm9yIGFueQorICAgICAgICAgcGFyYW1l dGVyIHBsYWNlaG9sZGVycyAoPGxpdGVyYWw+JDE8L2xpdGVyYWw+IGV0Yy4pLiAgVGhpcyBj b21tYW5kCisgICAgICAgICBlbnN1cmVzIHRoYXQgYW55IHBhcmFtZXRlcnMgY29ycmVzcG9u ZGluZyB0byBlbmNyeXB0ZWQgY29sdW1ucyBhcmUKKyAgICAgICAgIHNlbnQgdG8gdGhlIHNl cnZlciBlbmNyeXB0ZWQuCisgICAgICAgIDwvcGFyYT4KKworICAgICAgICA8cGFyYT4KKyAg ICAgICAgIEV4YW1wbGU6Cis8cHJvZ3JhbWxpc3Rpbmc+CitJTlNFUlQgSU5UTyB0YmwxIFZB TFVFUyAoJDEsICQyKSBcZ2VuY3IgJ2ZpcnN0IHZhbHVlJyAnc2Vjb25kIHZhbHVlJworPC9w cm9ncmFtbGlzdGluZz4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+Cisg ICAgICA8L3Zhcmxpc3RlbnRyeT4KKworCiAgICAgICA8dmFybGlzdGVudHJ5PgogICAgICAg ICA8dGVybT48bGl0ZXJhbD5cZ2V0ZW52IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5wc3FsX3ZhcjwvcmVwbGFjZWFibGU+IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5lbnZfdmFyPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90ZXJtPgogCkBAIC0zOTc4LDYg KzQwMDAsMTcgQEAgPHRpdGxlPlZhcmlhYmxlczwvdGl0bGU+CiAgICAgICAgIDwvbGlzdGl0 ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICAgPHZhcmxpc3RlbnRyeT4KKyAg ICAgICAgPHRlcm0+PHZhcm5hbWU+SElERV9DT0xVTU5fRU5DUllQVElPTjwvdmFybmFtZT48 L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBJ ZiB0aGlzIHZhcmlhYmxlIGlzIHNldCB0byA8bGl0ZXJhbD50cnVlPC9saXRlcmFsPiwgY29s dW1uIGVuY3J5cHRpb24KKyAgICAgICAgIGRldGFpbHMgYXJlIG5vdCBkaXNwbGF5ZWQuIFRo aXMgaXMgbWFpbmx5IHVzZWZ1bCBmb3IgcmVncmVzc2lvbgorICAgICAgICAgdGVzdHMuCisg ICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVu dHJ5PgorCiAgICAgICA8dmFybGlzdGVudHJ5PgogICAgICAgICA8dGVybT48dmFybmFtZT5I SURFX1RPQVNUX0NPTVBSRVNTSU9OPC92YXJuYW1lPjwvdGVybT4KICAgICAgICAgPGxpc3Rp dGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sIGIvZG9jL3Ny Yy9zZ21sL3JlZmVyZW5jZS5zZ21sCmluZGV4IGEzYjc0M2U4YzFlNy4uZTE0MjVjMjIyZmFi IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZmVyZW5jZS5zZ21sCkBAIC0zNiw2ICszNiw4IEBAIDx0aXRsZT5TUUwgQ29t bWFuZHM8L3RpdGxlPgogICAgJmFib3J0OwogICAgJmFsdGVyQWdncmVnYXRlOwogICAgJmFs dGVyQ29sbGF0aW9uOworICAgJmFsdGVyQ29sdW1uRW5jcnlwdGlvbktleTsKKyAgICZhbHRl ckNvbHVtbk1hc3RlcktleTsKICAgICZhbHRlckNvbnZlcnNpb247CiAgICAmYWx0ZXJEYXRh YmFzZTsKICAgICZhbHRlckRlZmF1bHRQcml2aWxlZ2VzOwpAQCAtOTAsNiArOTIsOCBAQCA8 dGl0bGU+U1FMIENvbW1hbmRzPC90aXRsZT4KICAgICZjcmVhdGVBZ2dyZWdhdGU7CiAgICAm Y3JlYXRlQ2FzdDsKICAgICZjcmVhdGVDb2xsYXRpb247CisgICAmY3JlYXRlQ29sdW1uRW5j cnlwdGlvbktleTsKKyAgICZjcmVhdGVDb2x1bW5NYXN0ZXJLZXk7CiAgICAmY3JlYXRlQ29u dmVyc2lvbjsKICAgICZjcmVhdGVEYXRhYmFzZTsKICAgICZjcmVhdGVEb21haW47CkBAIC0x MzcsNiArMTQxLDggQEAgPHRpdGxlPlNRTCBDb21tYW5kczwvdGl0bGU+CiAgICAmZHJvcEFn Z3JlZ2F0ZTsKICAgICZkcm9wQ2FzdDsKICAgICZkcm9wQ29sbGF0aW9uOworICAgJmRyb3BD b2x1bW5FbmNyeXB0aW9uS2V5OworICAgJmRyb3BDb2x1bW5NYXN0ZXJLZXk7CiAgICAmZHJv cENvbnZlcnNpb247CiAgICAmZHJvcERhdGFiYXNlOwogICAgJmRyb3BEb21haW47CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50c2ltcGxlLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50c2ltcGxlLmMKaW5kZXggYzk5YWU1NGNiMDI2 Li44NjQ4MmViNGM4MWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24v cHJpbnRzaW1wbGUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50c2lt cGxlLmMKQEAgLTIwLDcgKzIwLDkgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy9wcmludHNpbXBs ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImxpYnBxL2xp YnBxLWJlLmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKKyNpbmNsdWRlICJtaXNj YWRtaW4uaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogCiAvKgpAQCAtNDYsNiAr NDgsMTEgQEAgcHJpbnRzaW1wbGVfc3RhcnR1cChEZXN0UmVjZWl2ZXIgKnNlbGYsIGludCBv cGVyYXRpb24sIFR1cGxlRGVzYyB0dXBkZXNjKQogCQlwcV9zZW5kaW50MTYoJmJ1ZiwgYXR0 ci0+YXR0bGVuKTsKIAkJcHFfc2VuZGludDMyKCZidWYsIGF0dHItPmF0dHR5cG1vZCk7CiAJ CXBxX3NlbmRpbnQxNigmYnVmLCAwKTsJLyogZm9ybWF0IGNvZGUgKi8KKwkJaWYgKE15UHJv Y1BvcnQtPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpCisJCXsKKwkJCXBxX3NlbmRpbnQz MigmYnVmLCAwKTsJLyogQ0VLICovCisJCQlwcV9zZW5kaW50MTYoJmJ1ZiwgMCk7CS8qIENF SyBhbGcgKi8KKwkJfQogCX0KIAogCXBxX2VuZG1lc3NhZ2UoJmJ1Zik7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50dHVwLmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvY29tbW9uL3ByaW50dHVwLmMKaW5kZXggZDJmM2I1NzI4ODQ2Li44MGFiNWU4NzVi ZDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcHJpbnR0dXAuYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50dHVwLmMKQEAgLTE1LDEzICsx NSwyOCBAQAogICovCiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAorI2luY2x1ZGUgImFjY2Vz cy9nZW5hbS5oIgogI2luY2x1ZGUgImFjY2Vzcy9wcmludHR1cC5oIgorI2luY2x1ZGUgImFj Y2Vzcy9za2V5LmgiCisjaW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ19jb2xlbmNrZXkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleWRh dGEuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oIgogI2luY2x1ZGUg ImxpYnBxL2xpYnBxLmgiCisjaW5jbHVkZSAibGlicHEvbGlicHEtYmUuaCIKICNpbmNsdWRl ICJsaWJwcS9wcWZvcm1hdC5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUg InRjb3AvcHF1ZXJ5LmgiCisjaW5jbHVkZSAidXRpbHMvYXJyYXkuaCIKKyNpbmNsdWRlICJ1 dGlscy9hcnJheWFjY2Vzcy5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5j bHVkZSAidXRpbHMvZm1ncm9pZHMuaCIKKyNpbmNsdWRlICJ1dGlscy9pbnZhbC5oIgogI2lu Y2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL21lbWRlYnVnLmgi CiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKKyNpbmNsdWRlICJ1dGlscy9yZWwuaCIK KyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCiAKIHN0YXRpYyB2b2lkIHByaW50dHVw X3N0YXJ0dXAoRGVzdFJlY2VpdmVyICpzZWxmLCBpbnQgb3BlcmF0aW9uLApAQCAtMTUxLDYg KzE2NiwxMzkgQEAgcHJpbnR0dXBfc3RhcnR1cChEZXN0UmVjZWl2ZXIgKnNlbGYsIGludCBv cGVyYXRpb24sIFR1cGxlRGVzYyB0eXBlaW5mbykKIAkgKi8KIH0KIAorLyoKKyAqIFNlbmQg Q29sdW1uTWFzdGVyS2V5IG1lc3NhZ2UsIHVubGVzcyBpdCdzIGFscmVhZHkgYmVlbiBzZW50 IGluIHRoaXMgc2Vzc2lvbgorICogZm9yIHRoaXMga2V5LgorICovCitMaXN0CSAgICpjbWtf c2VudCA9IE5JTDsKKworc3RhdGljIHZvaWQKK2Nta19jaGFuZ2VfY2IoRGF0dW0gYXJnLCBp bnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKK3sKKwlsaXN0X2ZyZWUoY21rX3NlbnQp OworCWNta19zZW50ID0gTklMOworfQorCitzdGF0aWMgdm9pZAorTWF5YmVTZW5kQ29sdW1u TWFzdGVyS2V5TWVzc2FnZShPaWQgY21raWQpCit7CisJSGVhcFR1cGxlCXR1cGxlOworCUZv cm1fcGdfY29sbWFzdGVya2V5IGNta2Zvcm07CisJRGF0dW0JCWRhdHVtOworCWJvb2wJCWlz bnVsbDsKKwlTdHJpbmdJbmZvRGF0YSBidWY7CisJc3RhdGljIGJvb2wgcmVnaXN0ZXJlZF9p bnZhbCA9IGZhbHNlOworCU1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsKKworCUFzc2VydChN eVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKTsKKworCWlmIChsaXN0X21l bWJlcl9vaWQoY21rX3NlbnQsIGNta2lkKSkKKwkJcmV0dXJuOworCisJdHVwbGUgPSBTZWFy Y2hTeXNDYWNoZTEoQ01LT0lELCBPYmplY3RJZEdldERhdHVtKGNta2lkKSk7CisJaWYgKCFI ZWFwVHVwbGVJc1ZhbGlkKHR1cGxlKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBm YWlsZWQgZm9yIGNvbHVtbiBtYXN0ZXIga2V5ICV1IiwgY21raWQpOworCWNta2Zvcm0gPSAo Rm9ybV9wZ19jb2xtYXN0ZXJrZXkpIEdFVFNUUlVDVCh0dXBsZSk7CisKKwlwcV9iZWdpbm1l c3NhZ2UoJmJ1ZiwgJ3knKTsgLyogQ29sdW1uTWFzdGVyS2V5ICovCisJcHFfc2VuZGludDMy KCZidWYsIGNta2Zvcm0tPm9pZCk7CisJcHFfc2VuZHN0cmluZygmYnVmLCBOYW1lU3RyKGNt a2Zvcm0tPmNta25hbWUpKTsKKwlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0cihDTUtPSUQsIHR1 cGxlLCBBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtyZWFsbSwgJmlzbnVsbCk7CisJQXNzZXJ0 KCFpc251bGwpOworCXBxX3NlbmRzdHJpbmcoJmJ1ZiwgVGV4dERhdHVtR2V0Q1N0cmluZyhk YXR1bSkpOworCXBxX2VuZG1lc3NhZ2UoJmJ1Zik7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVw bGUpOworCisJaWYgKCFyZWdpc3RlcmVkX2ludmFsKQorCXsKKwkJQ2FjaGVSZWdpc3RlclN5 c2NhY2hlQ2FsbGJhY2soQ01LT0lELCBjbWtfY2hhbmdlX2NiLCAoRGF0dW0pIDApOworCQly ZWdpc3RlcmVkX2ludmFsID0gdHJ1ZTsKKwl9CisKKwlvbGRjb250ZXh0ID0gTWVtb3J5Q29u dGV4dFN3aXRjaFRvKFRvcE1lbW9yeUNvbnRleHQpOworCWNta19zZW50ID0gbGFwcGVuZF9v aWQoY21rX3NlbnQsIGNta2lkKTsKKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4 dCk7Cit9CisKKy8qCisgKiBTZW5kIENvbHVtbkVuY3J5cHRpb25LZXkgbWVzc2FnZSwgdW5s ZXNzIGl0J3MgYWxyZWFkeSBiZWVuIHNlbnQgaW4gdGhpcworICogc2Vzc2lvbiBmb3IgdGhp cyBrZXkuCisgKi8KK0xpc3QJICAgKmNla19zZW50ID0gTklMOworCitzdGF0aWMgdm9pZAor Y2VrX2NoYW5nZV9jYihEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIgaGFzaHZhbHVl KQoreworCWxpc3RfZnJlZShjZWtfc2VudCk7CisJY2VrX3NlbnQgPSBOSUw7Cit9CisKK3Zv aWQKK01heWJlU2VuZENvbHVtbkVuY3J5cHRpb25LZXlNZXNzYWdlKE9pZCBhdHRjZWspCit7 CisJSGVhcFR1cGxlCXR1cGxlOworCVNjYW5LZXlEYXRhIHNrZXlbMV07CisJU3lzU2NhbkRl c2Mgc2Q7CisJUmVsYXRpb24JcmVsOworCWJvb2wJCWZvdW5kID0gZmFsc2U7CisJc3RhdGlj IGJvb2wgcmVnaXN0ZXJlZF9pbnZhbCA9IGZhbHNlOworCU1lbW9yeUNvbnRleHQgb2xkY29u dGV4dDsKKworCUFzc2VydChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVk KTsKKworCWlmIChsaXN0X21lbWJlcl9vaWQoY2VrX3NlbnQsIGF0dGNlaykpCisJCXJldHVy bjsKKworCVNjYW5LZXlJbml0KCZza2V5WzBdLAorCQkJCUFudW1fcGdfY29sZW5ja2V5ZGF0 YV9ja2RjZWtpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJ T2JqZWN0SWRHZXREYXR1bShhdHRjZWspKTsKKwlyZWwgPSB0YWJsZV9vcGVuKENvbHVtbkVu Y0tleURhdGFSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCXNkID0gc3lzdGFibGVf YmVnaW5zY2FuKHJlbCwgQ29sdW1uRW5jS2V5Q2VraWRDbWtpZEluZGV4SWQsIHRydWUsIE5V TEwsIDEsIHNrZXkpOworCisJd2hpbGUgKCh0dXBsZSA9IHN5c3RhYmxlX2dldG5leHQoc2Qp KSkKKwl7CisJCUZvcm1fcGdfY29sZW5ja2V5ZGF0YSBja2Rmb3JtID0gKEZvcm1fcGdfY29s ZW5ja2V5ZGF0YSkgR0VUU1RSVUNUKHR1cGxlKTsKKwkJRGF0dW0JCWRhdHVtOworCQlib29s CQlpc251bGw7CisJCWJ5dGVhCSAgICpiYTsKKwkJU3RyaW5nSW5mb0RhdGEgYnVmOworCisJ CU1heWJlU2VuZENvbHVtbk1hc3RlcktleU1lc3NhZ2UoY2tkZm9ybS0+Y2tkY21raWQpOwor CisJCWRhdHVtID0gaGVhcF9nZXRhdHRyKHR1cGxlLCBBbnVtX3BnX2NvbGVuY2tleWRhdGFf Y2tkZW5jdmFsLCBSZWxhdGlvbkdldERlc2NyKHJlbCksICZpc251bGwpOworCQlBc3NlcnQo IWlzbnVsbCk7CisJCWJhID0gcGdfZGV0b2FzdF9kYXR1bV9wYWNrZWQoKGJ5dGVhICopIERh dHVtR2V0UG9pbnRlcihkYXR1bSkpOworCisJCXBxX2JlZ2lubWVzc2FnZSgmYnVmLCAnWScp OyAvKiBDb2x1bW5FbmNyeXB0aW9uS2V5ICovCisJCXBxX3NlbmRpbnQzMigmYnVmLCBja2Rm b3JtLT5ja2RjZWtpZCk7CisJCXBxX3NlbmRpbnQzMigmYnVmLCBja2Rmb3JtLT5ja2RjbWtp ZCk7CisJCXBxX3NlbmRpbnQxNigmYnVmLCBja2Rmb3JtLT5ja2RjbWthbGcpOworCQlwcV9z ZW5kaW50MzIoJmJ1ZiwgVkFSU0laRV9BTllfRVhIRFIoYmEpKTsKKwkJcHFfc2VuZGJ5dGVz KCZidWYsIFZBUkRBVEFfQU5ZKGJhKSwgVkFSU0laRV9BTllfRVhIRFIoYmEpKTsKKwkJcHFf ZW5kbWVzc2FnZSgmYnVmKTsKKworCQlmb3VuZCA9IHRydWU7CisJfQorCisJaWYgKCFmb3Vu ZCkKKwkJZWxvZyhFUlJPUiwgImxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBlbmNyeXB0aW9u IGtleSBkYXRhICV1IiwgYXR0Y2VrKTsKKworCXN5c3RhYmxlX2VuZHNjYW4oc2QpOworCXRh YmxlX2Nsb3NlKHJlbCwgTm9Mb2NrKTsKKworCWlmICghcmVnaXN0ZXJlZF9pbnZhbCkKKwl7 CisJCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKENFS0RBVEFPSUQsIGNla19jaGFu Z2VfY2IsIChEYXR1bSkgMCk7CisJCXJlZ2lzdGVyZWRfaW52YWwgPSB0cnVlOworCX0KKwor CW9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oVG9wTWVtb3J5Q29udGV4dCk7 CisJY2VrX3NlbnQgPSBsYXBwZW5kX29pZChjZWtfc2VudCwgYXR0Y2VrKTsKKwlNZW1vcnlD b250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7Cit9CisKIC8qCiAgKiBTZW5kUm93RGVzY3Jp cHRpb25NZXNzYWdlIC0tLSBzZW5kIGEgUm93RGVzY3JpcHRpb24gbWVzc2FnZSB0byB0aGUg ZnJvbnRlbmQKICAqCkBAIC0xNjcsNiArMzE1LDcgQEAgU2VuZFJvd0Rlc2NyaXB0aW9uTWVz c2FnZShTdHJpbmdJbmZvIGJ1ZiwgVHVwbGVEZXNjIHR5cGVpbmZvLAogCQkJCQkJICBMaXN0 ICp0YXJnZXRsaXN0LCBpbnQxNiAqZm9ybWF0cykKIHsKIAlpbnQJCQluYXR0cyA9IHR5cGVp bmZvLT5uYXR0czsKKwlzaXplX3QJCXN6OwogCWludAkJCWk7CiAJTGlzdENlbGwgICAqdGxp c3RfaXRlbSA9IGxpc3RfaGVhZCh0YXJnZXRsaXN0KTsKIApAQCAtMTgzLDE0ICszMzIsMTcg QEAgU2VuZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZShTdHJpbmdJbmZvIGJ1ZiwgVHVwbGVEZXNj IHR5cGVpbmZvLAogCSAqIEhhdmUgdG8gb3ZlcmVzdGltYXRlIHRoZSBzaXplIG9mIHRoZSBj b2x1bW4tbmFtZXMsIHRvIGFjY291bnQgZm9yCiAJICogY2hhcmFjdGVyIHNldCBvdmVyaGVh ZC4KIAkgKi8KLQllbmxhcmdlU3RyaW5nSW5mbyhidWYsIChOQU1FREFUQUxFTiAqIE1BWF9D T05WRVJTSU9OX0dST1dUSCAvKiBhdHRuYW1lICovCi0JCQkJCQkJKyBzaXplb2YoT2lkKQkv KiByZXNvcmlndGJsICovCi0JCQkJCQkJKyBzaXplb2YoQXR0ck51bWJlcikJLyogcmVzb3Jp Z2NvbCAqLwotCQkJCQkJCSsgc2l6ZW9mKE9pZCkJLyogYXR0dHlwaWQgKi8KLQkJCQkJCQkr IHNpemVvZihpbnQxNikgLyogYXR0bGVuICovCi0JCQkJCQkJKyBzaXplb2YoaW50MzIpIC8q IGF0dHlwbW9kICovCi0JCQkJCQkJKyBzaXplb2YoaW50MTYpIC8qIGZvcm1hdCAqLwotCQkJ CQkJCSkgKiBuYXR0cyk7CisJc3ogPSAoTkFNRURBVEFMRU4gKiBNQVhfQ09OVkVSU0lPTl9H Uk9XVEggLyogYXR0bmFtZSAqLworCQkgICsgc2l6ZW9mKE9pZCkJLyogcmVzb3JpZ3RibCAq LworCQkgICsgc2l6ZW9mKEF0dHJOdW1iZXIpCS8qIHJlc29yaWdjb2wgKi8KKwkJICArIHNp emVvZihPaWQpCS8qIGF0dHR5cGlkICovCisJCSAgKyBzaXplb2YoaW50MTYpIC8qIGF0dGxl biAqLworCQkgICsgc2l6ZW9mKGludDMyKSAvKiBhdHR5cG1vZCAqLworCQkgICsgc2l6ZW9m KGludDE2KSk7IC8qIGZvcm1hdCAqLworCWlmIChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlw dGlvbl9lbmFibGVkKQorCQlzeiArPSAoc2l6ZW9mKGludDMyKQkJLyogYXR0Y2VraWQgKi8K KwkJCSAgICsgc2l6ZW9mKGludDE2KSk7CS8qIGF0dGVuY2FsZyAqLworCWVubGFyZ2VTdHJp bmdJbmZvKGJ1Ziwgc3ogKiBuYXR0cyk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbmF0dHM7ICsr aSkKIAl7CkBAIC0yMDAsNiArMzUyLDggQEAgU2VuZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZShT dHJpbmdJbmZvIGJ1ZiwgVHVwbGVEZXNjIHR5cGVpbmZvLAogCQlPaWQJCQlyZXNvcmlndGJs OwogCQlBdHRyTnVtYmVyCXJlc29yaWdjb2w7CiAJCWludDE2CQlmb3JtYXQ7CisJCU9pZAkJ CWF0dGNla2lkID0gSW52YWxpZE9pZDsKKwkJaW50MTYJCWF0dGVuY2FsZyA9IDA7CiAKIAkJ LyoKIAkJICogSWYgY29sdW1uIGlzIGEgZG9tYWluLCBzZW5kIHRoZSBiYXNlIHR5cGUgYW5k IHR5cG1vZCBpbnN0ZWFkLgpAQCAtMjMxLDYgKzM4NSwyMiBAQCBTZW5kUm93RGVzY3JpcHRp b25NZXNzYWdlKFN0cmluZ0luZm8gYnVmLCBUdXBsZURlc2MgdHlwZWluZm8sCiAJCWVsc2UK IAkJCWZvcm1hdCA9IDA7CiAKKwkJaWYgKE15UHJvY1BvcnQtPmNvbHVtbl9lbmNyeXB0aW9u X2VuYWJsZWQgJiYgdHlwZV9pc19lbmNyeXB0ZWQoYXR0dHlwaWQpKQorCQl7CisJCQlIZWFw VHVwbGUJdHA7CisJCQlGb3JtX3BnX2F0dHJpYnV0ZSBvcmlnX2F0dDsKKworCQkJdHAgPSBT ZWFyY2hTeXNDYWNoZTIoQVRUTlVNLCBPYmplY3RJZEdldERhdHVtKHJlc29yaWd0YmwpLCBJ bnQxNkdldERhdHVtKHJlc29yaWdjb2wpKTsKKwkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0 cCkpCisJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGF0dHJpYnV0 ZSAlZCBvZiByZWxhdGlvbiAldSIsIHJlc29yaWdjb2wsIHJlc29yaWd0YmwpOworCQkJb3Jp Z19hdHQgPSAoRm9ybV9wZ19hdHRyaWJ1dGUpIEdFVFNUUlVDVCh0cCk7CisJCQlNYXliZVNl bmRDb2x1bW5FbmNyeXB0aW9uS2V5TWVzc2FnZShvcmlnX2F0dC0+YXR0Y2VrKTsKKwkJCWF0 dHR5cGlkID0gb3JpZ19hdHQtPmF0dHJlYWx0eXBpZDsKKwkJCWF0dGNla2lkID0gb3JpZ19h dHQtPmF0dGNlazsKKwkJCWF0dGVuY2FsZyA9IG9yaWdfYXR0LT5hdHRlbmNhbGc7CisJCQlS ZWxlYXNlU3lzQ2FjaGUodHApOworCQl9CisKIAkJcHFfd3JpdGVzdHJpbmcoYnVmLCBOYW1l U3RyKGF0dC0+YXR0bmFtZSkpOwogCQlwcV93cml0ZWludDMyKGJ1ZiwgcmVzb3JpZ3RibCk7 CiAJCXBxX3dyaXRlaW50MTYoYnVmLCByZXNvcmlnY29sKTsKQEAgLTIzOCw2ICs0MDgsMTEg QEAgU2VuZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZShTdHJpbmdJbmZvIGJ1ZiwgVHVwbGVEZXNj IHR5cGVpbmZvLAogCQlwcV93cml0ZWludDE2KGJ1ZiwgYXR0LT5hdHRsZW4pOwogCQlwcV93 cml0ZWludDMyKGJ1ZiwgYXR0dHlwbW9kKTsKIAkJcHFfd3JpdGVpbnQxNihidWYsIGZvcm1h dCk7CisJCWlmIChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQl7 CisJCQlwcV93cml0ZWludDMyKGJ1ZiwgYXR0Y2VraWQpOworCQkJcHFfd3JpdGVpbnQxNihi dWYsIGF0dGVuY2FsZyk7CisJCX0KIAl9CiAKIAlwcV9lbmRtZXNzYWdlX3JldXNlKGJ1Zik7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vdHVwZGVzYy5jCmluZGV4IGQ2ZmIyNjFlMjAxNi4u ZTNlY2M2NGVhN2E1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1 cGRlc2MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYwpAQCAt NDU5LDYgKzQ1OSwxMiBAQCBlcXVhbFR1cGxlRGVzY3MoVHVwbGVEZXNjIHR1cGRlc2MxLCBU dXBsZURlc2MgdHVwZGVzYzIpCiAJCQlyZXR1cm4gZmFsc2U7CiAJCWlmIChhdHRyMS0+YXR0 aXNsb2NhbCAhPSBhdHRyMi0+YXR0aXNsb2NhbCkKIAkJCXJldHVybiBmYWxzZTsKKwkJaWYg KGF0dHIxLT5hdHRjZWsgIT0gYXR0cjItPmF0dGNlaykKKwkJCXJldHVybiBmYWxzZTsKKwkJ aWYgKGF0dHIxLT5hdHRyZWFsdHlwaWQgIT0gYXR0cjItPmF0dHJlYWx0eXBpZCkKKwkJCXJl dHVybiBmYWxzZTsKKwkJaWYgKGF0dHIxLT5hdHRlbmNhbGcgIT0gYXR0cjItPmF0dGVuY2Fs ZykKKwkJCXJldHVybiBmYWxzZTsKIAkJaWYgKGF0dHIxLT5hdHRpbmhjb3VudCAhPSBhdHRy Mi0+YXR0aW5oY291bnQpCiAJCQlyZXR1cm4gZmFsc2U7CiAJCWlmIChhdHRyMS0+YXR0Y29s bGF0aW9uICE9IGF0dHIyLT5hdHRjb2xsYXRpb24pCkBAIC02MjksNiArNjM1LDkgQEAgVHVw bGVEZXNjSW5pdEVudHJ5KFR1cGxlRGVzYyBkZXNjLAogCWF0dC0+YXR0Z2VuZXJhdGVkID0g J1wwJzsKIAlhdHQtPmF0dGlzZHJvcHBlZCA9IGZhbHNlOwogCWF0dC0+YXR0aXNsb2NhbCA9 IHRydWU7CisJYXR0LT5hdHRjZWsgPSAwOworCWF0dC0+YXR0cmVhbHR5cGlkID0gMDsKKwlh dHQtPmF0dGVuY2FsZyA9IDA7CiAJYXR0LT5hdHRpbmhjb3VudCA9IDA7CiAJLyogdmFyaWFi bGUtbGVuZ3RoIGZpZWxkcyBhcmUgbm90IHByZXNlbnQgaW4gdHVwbGVkZXNjcyAqLwogCkBA IC02OTAsNiArNjk5LDkgQEAgVHVwbGVEZXNjSW5pdEJ1aWx0aW5FbnRyeShUdXBsZURlc2Mg ZGVzYywKIAlhdHQtPmF0dGdlbmVyYXRlZCA9ICdcMCc7CiAJYXR0LT5hdHRpc2Ryb3BwZWQg PSBmYWxzZTsKIAlhdHQtPmF0dGlzbG9jYWwgPSB0cnVlOworCWF0dC0+YXR0Y2VrID0gMDsK KwlhdHQtPmF0dHJlYWx0eXBpZCA9IDA7CisJYXR0LT5hdHRlbmNhbGcgPSAwOwogCWF0dC0+ YXR0aW5oY291bnQgPSAwOwogCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgYXJlIG5vdCBw cmVzZW50IGluIHR1cGxlZGVzY3MgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hhc2gvaGFzaHZhbGlkYXRlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNo dmFsaWRhdGUuYwppbmRleCAxMGJmMjZjZTdjMDcuLmNlYTkxZDRhODhhMyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHZhbGlkYXRlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hhc2gvaGFzaHZhbGlkYXRlLmMKQEAgLTMzMSw3ICszMzEsNyBAQCBj aGVja19oYXNoX2Z1bmNfc2lnbmF0dXJlKE9pZCBmdW5jaWQsIGludDE2IGFtcHJvY251bSwg T2lkIGFyZ3R5cGUpCiAJCQkJIGFyZ3R5cGUgPT0gQk9PTE9JRCkKIAkJCSAvKiBva2F5LCBh bGxvd2VkIHVzZSBvZiBoYXNoY2hhcigpICovIDsKIAkJZWxzZSBpZiAoKGZ1bmNpZCA9PSBG X0hBU0hWQVJMRU5BIHx8IGZ1bmNpZCA9PSBGX0hBU0hWQVJMRU5BRVhURU5ERUQpICYmCi0J CQkJIGFyZ3R5cGUgPT0gQllURUFPSUQpCisJCQkJIChhcmd0eXBlID09IEJZVEVBT0lEIHx8 IGFyZ3R5cGUgPT0gUEdfRU5DUllQVEVEX0RFVE9JRCkpCiAJCQkgLyogb2theSwgYWxsb3dl ZCB1c2Ugb2YgaGFzaHZhcmxlbmEoKSAqLyA7CiAJCWVsc2UKIAkJCXJlc3VsdCA9IGZhbHNl OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvTWFrZWZpbGUKaW5kZXggODlhMDIyMWVjOWI4Li43ZTFhOTFiOTc0OWMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKKysrIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9NYWtlZmlsZQpAQCAtNzIsNyArNzIsOCBAQCBDQVRBTE9HX0hFQURF UlMgOj0gXAogCXBnX2NvbGxhdGlvbi5oIHBnX3BhcmFtZXRlcl9hY2wuaCBwZ19wYXJ0aXRp b25lZF90YWJsZS5oIFwKIAlwZ19yYW5nZS5oIHBnX3RyYW5zZm9ybS5oIFwKIAlwZ19zZXF1 ZW5jZS5oIHBnX3B1YmxpY2F0aW9uLmggcGdfcHVibGljYXRpb25fbmFtZXNwYWNlLmggXAot CXBnX3B1YmxpY2F0aW9uX3JlbC5oIHBnX3N1YnNjcmlwdGlvbi5oIHBnX3N1YnNjcmlwdGlv bl9yZWwuaAorCXBnX3B1YmxpY2F0aW9uX3JlbC5oIHBnX3N1YnNjcmlwdGlvbi5oIHBnX3N1 YnNjcmlwdGlvbl9yZWwuaCBcCisJcGdfY29sbWFzdGVya2V5LmggcGdfY29sZW5ja2V5Lmgg cGdfY29sZW5ja2V5ZGF0YS5oCiAKIEdFTkVSQVRFRF9IRUFERVJTIDo9ICQoQ0FUQUxPR19I RUFERVJTOiUuaD0lX2QuaCkgc2NoZW1hcGcuaCBzeXN0ZW1fZmtfaW5mby5oCiAKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgYi9zcmMvYmFja2VuZC9jYXRh bG9nL2FjbGNoay5jCmluZGV4IGFhNWEyZWQ5NDgzZS4uMzE5NzgzMzBjM2Y3IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCisrKyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvYWNsY2hrLmMKQEAgLTMyLDcgKzMyLDkgQEAKICNpbmNsdWRlICJjYXRhbG9nL3Bn X2FtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoaWQuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX2Nhc3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19j b2xtYXN0ZXJrZXkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnZlcnNpb24uaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX2RhdGFiYXNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19k ZWZhdWx0X2FjbC5oIgpAQCAtMzU3Nyw2ICszNTc5LDkgQEAgYWNsY2hlY2tfZXJyb3IoQWNs UmVzdWx0IGFjbGVyciwgT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9CSkVDVF9B TVBST0M6CiAJCQkJCWNhc2UgT0JKRUNUX0FUVFJJQlVURToKIAkJCQkJY2FzZSBPQkpFQ1Rf Q0FTVDoKKwkJCQkJY2FzZSBPQkpFQ1RfQ0VLOgorCQkJCQljYXNlIE9CSkVDVF9DRUtEQVRB OgorCQkJCQljYXNlIE9CSkVDVF9DTUs6CiAJCQkJCWNhc2UgT0JKRUNUX0RFRkFVTFQ6CiAJ CQkJCWNhc2UgT0JKRUNUX0RFRkFDTDoKIAkJCQkJY2FzZSBPQkpFQ1RfRE9NQ09OU1RSQUlO VDoKQEAgLTM2MDcsNiArMzYxMiwxMiBAQCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNs ZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNhc2UgT0JKRUNUX0FHR1JFR0FURToK IAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBvd25lciBvZiBhZ2dyZWdhdGUg JXMiKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIE9CSkVDVF9DRUs6CisJCQkJCQltc2cg PSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2YgY29sdW1uIGVuY3J5cHRpb24ga2V5 ICVzIik7CisJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpFQ1RfQ01LOgorCQkJCQkJbXNn ID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIGNvbHVtbiBtYXN0ZXIga2V5ICVz Iik7CisJCQkJCQlicmVhazsKIAkJCQkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQkJCQkJ bXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIGNvbGxhdGlvbiAlcyIpOwog CQkJCQkJYnJlYWs7CkBAIC0zNzE3LDYgKzM3MjgsNyBAQCBhY2xjaGVja19lcnJvcihBY2xS ZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNhc2UgT0JKRUNUX0FN UFJPQzoKIAkJCQkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQkJCQljYXNlIE9CSkVDVF9D QVNUOgorCQkJCQljYXNlIE9CSkVDVF9DRUtEQVRBOgogCQkJCQljYXNlIE9CSkVDVF9ERUZB VUxUOgogCQkJCQljYXNlIE9CSkVDVF9ERUZBQ0w6CiAJCQkJCWNhc2UgT0JKRUNUX0RPTUNP TlNUUkFJTlQ6CkBAIC01NTgwLDYgKzU1OTIsNTggQEAgcGdfY29sbGF0aW9uX293bmVyY2hl Y2soT2lkIGNvbGxfb2lkLCBPaWQgcm9sZWlkKQogCXJldHVybiBoYXNfcHJpdnNfb2Zfcm9s ZShyb2xlaWQsIG93bmVySWQpOwogfQogCisvKgorICogT3duZXJzaGlwIGNoZWNrIGZvciBh IGNvbHVtbiBlbmNyeXB0aW9uIGtleSAoc3BlY2lmaWVkIGJ5IE9JRCkuCisgKi8KK2Jvb2wK K3BnX2NvbHVtbl9lbmNyeXB0aW9uX2tleV9vd25lcmNoZWNrKE9pZCBjZWtfb2lkLCBPaWQg cm9sZWlkKQoreworCUhlYXBUdXBsZQl0dXBsZTsKKwlPaWQJCQlvd25lcklkOworCisJLyog U3VwZXJ1c2VycyBieXBhc3MgYWxsIHBlcm1pc3Npb24gY2hlY2tpbmcuICovCisJaWYgKHN1 cGVydXNlcl9hcmcocm9sZWlkKSkKKwkJcmV0dXJuIHRydWU7CisKKwl0dXBsZSA9IFNlYXJj aFN5c0NhY2hlMShDRUtPSUQsIE9iamVjdElkR2V0RGF0dW0oY2VrX29pZCkpOworCWlmICgh SGVhcFR1cGxlSXNWYWxpZCh0dXBsZSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNv ZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4gZW5j cnlwdGlvbiBrZXkgd2l0aCBPSUQgJXUgZG9lcyBub3QgZXhpc3QiLCBjZWtfb2lkKSkpOwor CisJb3duZXJJZCA9ICgoRm9ybV9wZ19jb2xlbmNrZXkpIEdFVFNUUlVDVCh0dXBsZSkpLT5j ZWtvd25lcjsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CisKKwlyZXR1cm4gaGFzX3By aXZzX29mX3JvbGUocm9sZWlkLCBvd25lcklkKTsKK30KKworLyoKKyAqIE93bmVyc2hpcCBj aGVjayBmb3IgYSBjb2x1bW4gbWFzdGVyIGtleSAoc3BlY2lmaWVkIGJ5IE9JRCkuCisgKi8K K2Jvb2wKK3BnX2NvbHVtbl9tYXN0ZXJfa2V5X293bmVyY2hlY2soT2lkIGNta19vaWQsIE9p ZCByb2xlaWQpCit7CisJSGVhcFR1cGxlCXR1cGxlOworCU9pZAkJCW93bmVySWQ7CisKKwkv KiBTdXBlcnVzZXJzIGJ5cGFzcyBhbGwgcGVybWlzc2lvbiBjaGVja2luZy4gKi8KKwlpZiAo c3VwZXJ1c2VyX2FyZyhyb2xlaWQpKQorCQlyZXR1cm4gdHJ1ZTsKKworCXR1cGxlID0gU2Vh cmNoU3lzQ2FjaGUxKENNS09JRCwgT2JqZWN0SWRHZXREYXR1bShjbWtfb2lkKSk7CisJaWYg KCFIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJy Y29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coImNvbHVtbiBt YXN0ZXIga2V5IHdpdGggT0lEICV1IGRvZXMgbm90IGV4aXN0IiwgY21rX29pZCkpKTsKKwor CW93bmVySWQgPSAoKEZvcm1fcGdfY29sbWFzdGVya2V5KSBHRVRTVFJVQ1QodHVwbGUpKS0+ Y21rb3duZXI7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOworCisJcmV0dXJuIGhhc19w cml2c19vZl9yb2xlKHJvbGVpZCwgb3duZXJJZCk7Cit9CisKIC8qCiAgKiBPd25lcnNoaXAg Y2hlY2sgZm9yIGEgY29udmVyc2lvbiAoc3BlY2lmaWVkIGJ5IE9JRCkuCiAgKi8KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9kZXBlbmRlbmN5LmMKaW5kZXggN2YzZTY0YjVhZTYxLi44ZjFmMmZhZTZhMDAg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCkBAIC0zMCw3ICszMCwxMCBAQAogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRo X21lbWJlcnMuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Nhc3QuaCIKKyNpbmNsdWRlICJj YXRhbG9nL3BnX2NvbGVuY2tleS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5 ZGF0YS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnN0 cmFpbnQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnZlcnNpb24uaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX2RhdGFiYXNlLmgiCkBAIC0xNTMsNiArMTU2LDkgQEAgc3RhdGljIGNv bnN0IE9pZCBvYmplY3RfY2xhc3Nlc1tdID0gewogCVR5cGVSZWxhdGlvbklkLAkJCQkvKiBP Q0xBU1NfVFlQRSAqLwogCUNhc3RSZWxhdGlvbklkLAkJCQkvKiBPQ0xBU1NfQ0FTVCAqLwog CUNvbGxhdGlvblJlbGF0aW9uSWQsCQkvKiBPQ0xBU1NfQ09MTEFUSU9OICovCisJQ29sdW1u RW5jS2V5UmVsYXRpb25JZCwJCS8qIE9DTEFTU19DRUsgKi8KKwlDb2x1bW5FbmNLZXlEYXRh UmVsYXRpb25JZCwJLyogT0NMQVNTX0NFS0RBVEEgKi8KKwlDb2x1bW5NYXN0ZXJLZXlSZWxh dGlvbklkLAkvKiBPQ0xBU1NfQ01LICovCiAJQ29uc3RyYWludFJlbGF0aW9uSWQsCQkvKiBP Q0xBU1NfQ09OU1RSQUlOVCAqLwogCUNvbnZlcnNpb25SZWxhdGlvbklkLAkJLyogT0NMQVNT X0NPTlZFUlNJT04gKi8KIAlBdHRyRGVmYXVsdFJlbGF0aW9uSWQsCQkvKiBPQ0xBU1NfREVG QVVMVCAqLwpAQCAtMTQ4Nyw2ICsxNDkzLDkgQEAgZG9EZWxldGlvbihjb25zdCBPYmplY3RB ZGRyZXNzICpvYmplY3QsIGludCBmbGFncykKIAogCQljYXNlIE9DTEFTU19DQVNUOgogCQlj YXNlIE9DTEFTU19DT0xMQVRJT046CisJCWNhc2UgT0NMQVNTX0NFSzoKKwkJY2FzZSBPQ0xB U1NfQ0VLREFUQToKKwkJY2FzZSBPQ0xBU1NfQ01LOgogCQljYXNlIE9DTEFTU19DT05WRVJT SU9OOgogCQljYXNlIE9DTEFTU19MQU5HVUFHRToKIAkJY2FzZSBPQ0xBU1NfT1BDTEFTUzoK QEAgLTI4NTksNiArMjg2OCwxNSBAQCBnZXRPYmplY3RDbGFzcyhjb25zdCBPYmplY3RBZGRy ZXNzICpvYmplY3QpCiAJCWNhc2UgQ29sbGF0aW9uUmVsYXRpb25JZDoKIAkJCXJldHVybiBP Q0xBU1NfQ09MTEFUSU9OOwogCisJCWNhc2UgQ29sdW1uRW5jS2V5UmVsYXRpb25JZDoKKwkJ CXJldHVybiBPQ0xBU1NfQ0VLOworCisJCWNhc2UgQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9u SWQ6CisJCQlyZXR1cm4gT0NMQVNTX0NFS0RBVEE7CisKKwkJY2FzZSBDb2x1bW5NYXN0ZXJL ZXlSZWxhdGlvbklkOgorCQkJcmV0dXJuIE9DTEFTU19DTUs7CisKIAkJY2FzZSBDb25zdHJh aW50UmVsYXRpb25JZDoKIAkJCXJldHVybiBPQ0xBU1NfQ09OU1RSQUlOVDsKIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9n L2hlYXAuYwppbmRleCA1YjQ5Y2M1YTA5ODkuLmZiZDk3YWIyOTQ2ZiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9o ZWFwLmMKQEAgLTc0OSw2ICs3NDksOSBAQCBJbnNlcnRQZ0F0dHJpYnV0ZVR1cGxlcyhSZWxh dGlvbiBwZ19hdHRyaWJ1dGVfcmVsLAogCQlzbG90W3Nsb3RDb3VudF0tPnR0c192YWx1ZXNb QW51bV9wZ19hdHRyaWJ1dGVfYXR0Z2VuZXJhdGVkIC0gMV0gPSBDaGFyR2V0RGF0dW0oYXR0 cnMtPmF0dGdlbmVyYXRlZCk7CiAJCXNsb3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVt X3BnX2F0dHJpYnV0ZV9hdHRpc2Ryb3BwZWQgLSAxXSA9IEJvb2xHZXREYXR1bShhdHRycy0+ YXR0aXNkcm9wcGVkKTsKIAkJc2xvdFtzbG90Q291bnRdLT50dHNfdmFsdWVzW0FudW1fcGdf YXR0cmlidXRlX2F0dGlzbG9jYWwgLSAxXSA9IEJvb2xHZXREYXR1bShhdHRycy0+YXR0aXNs b2NhbCk7CisJCXNsb3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJpYnV0 ZV9hdHRjZWsgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oYXR0cnMtPmF0dGNlayk7CisJCXNs b3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHRyZWFsdHlw aWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oYXR0cnMtPmF0dHJlYWx0eXBpZCk7CisJCXNs b3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHRlbmNhbGcg LSAxXSA9IEludDE2R2V0RGF0dW0oYXR0cnMtPmF0dGVuY2FsZyk7CiAJCXNsb3Rbc2xvdENv dW50XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHRpbmhjb3VudCAtIDFdID0g SW50MzJHZXREYXR1bShhdHRycy0+YXR0aW5oY291bnQpOwogCQlzbG90W3Nsb3RDb3VudF0t PnR0c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1dGVfYXR0Y29sbGF0aW9uIC0gMV0gPSBPYmpl Y3RJZEdldERhdHVtKGF0dHJzLT5hdHRjb2xsYXRpb24pOwogCQlpZiAoYXR0b3B0aW9ucyAm JiBhdHRvcHRpb25zW25hdHRzXSAhPSAoRGF0dW0pIDApCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2Jq ZWN0YWRkcmVzcy5jCmluZGV4IDI4NGNhNTU0NjllMC4uNjJmZGI2ZDcwYTcwIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYworKysgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwpAQCAtMjksNyArMjksMTAgQEAKICNpbmNs dWRlICJjYXRhbG9nL3BnX2F1dGhpZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aF9t ZW1iZXJzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jYXN0LmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ19jb2xlbmNrZXkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleWRh dGEuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgorI2luY2x1ZGUgImNh dGFsb2cvcGdfY29sbWFzdGVya2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb25zdHJh aW50LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19kYXRhYmFzZS5oIgpAQCAtMTkxLDYgKzE5NCw0OCBAQCBzdGF0aWMgY29u c3QgT2JqZWN0UHJvcGVydHlUeXBlIE9iamVjdFByb3BlcnR5W10gPQogCQlPQkpFQ1RfQ09M TEFUSU9OLAogCQl0cnVlCiAJfSwKKwl7CisJCSJjb2x1bW4gZW5jcnlwdGlvbiBrZXkiLAor CQlDb2x1bW5FbmNLZXlSZWxhdGlvbklkLAorCQlDb2x1bW5FbmNLZXlPaWRJbmRleElkLAor CQlDRUtPSUQsCisJCUNFS05BTUUsCisJCUFudW1fcGdfY29sZW5ja2V5X29pZCwKKwkJQW51 bV9wZ19jb2xlbmNrZXlfY2VrbmFtZSwKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCUFudW1f cGdfY29sZW5ja2V5X2Nla293bmVyLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJT0JKRUNU X0NFSywKKwkJdHJ1ZQorCX0sCisJeworCQkiY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEi LAorCQlDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25JZCwKKwkJQ29sdW1uRW5jS2V5RGF0YU9p ZEluZGV4SWQsCisJCUNFS0RBVEFPSUQsCisJCS0xLAorCQlBbnVtX3BnX2NvbGVuY2tleWRh dGFfb2lkLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJ CUludmFsaWRBdHRyTnVtYmVyLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJLTEsCisJCWZh bHNlCisJfSwKKwl7CisJCSJjb2x1bW4gbWFzdGVyIGtleSIsCisJCUNvbHVtbk1hc3Rlcktl eVJlbGF0aW9uSWQsCisJCUNvbHVtbk1hc3RlcktleU9pZEluZGV4SWQsCisJCUNNS09JRCwK KwkJQ01LTkFNRSwKKwkJQW51bV9wZ19jb2xtYXN0ZXJrZXlfb2lkLAorCQlBbnVtX3BnX2Nv bG1hc3RlcmtleV9jbWtuYW1lLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJQW51bV9wZ19j b2xtYXN0ZXJrZXlfY21rb3duZXIsCisJCUludmFsaWRBdHRyTnVtYmVyLAorCQlPQkpFQ1Rf Q01LLAorCQl0cnVlCisJfSwKIAl7CiAJCSJjb25zdHJhaW50IiwKIAkJQ29uc3RyYWludFJl bGF0aW9uSWQsCkBAIC03MjMsNiArNzY4LDE4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2Jq ZWN0X3R5cGVfbWFwCiAJewogCQkiY29sbGF0aW9uIiwgT0JKRUNUX0NPTExBVElPTgogCX0s CisJLyogT0NMQVNTX0NFSyAqLworCXsKKwkJImNvbHVtbiBlbmNyeXB0aW9uIGtleSIsIE9C SkVDVF9DRUsKKwl9LAorCS8qIE9DTEFTU19DRUtEQVRBICovCisJeworCQkiY29sdW1uIGVu Y3J5cHRpb24ga2V5IGRhdGEiLCBPQkpFQ1RfQ0VLREFUQQorCX0sCisJLyogT0NMQVNTX0NN SyAqLworCXsKKwkJImNvbHVtbiBtYXN0ZXIga2V5IiwgT0JKRUNUX0NNSworCX0sCiAJLyog T0NMQVNTX0NPTlNUUkFJTlQgKi8KIAl7CiAJCSJ0YWJsZSBjb25zdHJhaW50IiwgT0JKRUNU X1RBQkNPTlNUUkFJTlQKQEAgLTEwMjgsNiArMTA4NSw4IEBAIGdldF9vYmplY3RfYWRkcmVz cyhPYmplY3RUeXBlIG9ianR5cGUsIE5vZGUgKm9iamVjdCwKIAkJCQkJYWRkcmVzcy5vYmpl Y3RTdWJJZCA9IDA7CiAJCQkJfQogCQkJCWJyZWFrOworCQkJY2FzZSBPQkpFQ1RfQ0VLOgor CQkJY2FzZSBPQkpFQ1RfQ01LOgogCQkJY2FzZSBPQkpFQ1RfREFUQUJBU0U6CiAJCQljYXNl IE9CSkVDVF9FWFRFTlNJT046CiAJCQljYXNlIE9CSkVDVF9UQUJMRVNQQUNFOgpAQCAtMTEw Nyw2ICsxMTY2LDIxIEBAIGdldF9vYmplY3RfYWRkcmVzcyhPYmplY3RUeXBlIG9ianR5cGUs IE5vZGUgKm9iamVjdCwKIAkJCQkJYWRkcmVzcy5vYmplY3RTdWJJZCA9IDA7CiAJCQkJfQog CQkJCWJyZWFrOworCQkJY2FzZSBPQkpFQ1RfQ0VLREFUQToKKwkJCQl7CisJCQkJCWNoYXIJ ICAgKmNla25hbWUgPSBzdHJWYWwobGluaXRpYWwoY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSkp OworCQkJCQljaGFyCSAgICpjbWtuYW1lID0gc3RyVmFsKGxzZWNvbmQoY2FzdE5vZGUoTGlz dCwgb2JqZWN0KSkpOworCQkJCQlPaWQJCQljZWtpZDsKKwkJCQkJT2lkCQkJY21raWQ7CisK KwkJCQkJY2VraWQgPSBnZXRfY2VrX29pZChjZWtuYW1lLCBtaXNzaW5nX29rKTsKKwkJCQkJ Y21raWQgPSBnZXRfY21rX29pZChjbWtuYW1lLCBtaXNzaW5nX29rKTsKKworCQkJCQlhZGRy ZXNzLmNsYXNzSWQgPSBDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25JZDsKKwkJCQkJYWRkcmVz cy5vYmplY3RJZCA9IGdldF9jZWtkYXRhX29pZChjZWtpZCwgY21raWQsIG1pc3Npbmdfb2sp OworCQkJCQlhZGRyZXNzLm9iamVjdFN1YklkID0gMDsKKwkJCQl9CisJCQkJYnJlYWs7CiAJ CQljYXNlIE9CSkVDVF9UUkFOU0ZPUk06CiAJCQkJewogCQkJCQlUeXBlTmFtZSAgICp0eXBl bmFtZSA9IGxpbml0aWFsX25vZGUoVHlwZU5hbWUsIGNhc3ROb2RlKExpc3QsIG9iamVjdCkp OwpAQCAtMTI5NCw2ICsxMzY4LDE2IEBAIGdldF9vYmplY3RfYWRkcmVzc191bnF1YWxpZmll ZChPYmplY3RUeXBlIG9ianR5cGUsCiAJCQlhZGRyZXNzLm9iamVjdElkID0gZ2V0X2FtX29p ZChuYW1lLCBtaXNzaW5nX29rKTsKIAkJCWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAwOwogCQkJ YnJlYWs7CisJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCWFkZHJlc3MuY2xhc3NJZCA9IENvbHVt bkVuY0tleVJlbGF0aW9uSWQ7CisJCQlhZGRyZXNzLm9iamVjdElkID0gZ2V0X2Nla19vaWQo bmFtZSwgbWlzc2luZ19vayk7CisJCQlhZGRyZXNzLm9iamVjdFN1YklkID0gMDsKKwkJCWJy ZWFrOworCQljYXNlIE9CSkVDVF9DTUs6CisJCQlhZGRyZXNzLmNsYXNzSWQgPSBDb2x1bW5N YXN0ZXJLZXlSZWxhdGlvbklkOworCQkJYWRkcmVzcy5vYmplY3RJZCA9IGdldF9jbWtfb2lk KG5hbWUsIG1pc3Npbmdfb2spOworCQkJYWRkcmVzcy5vYmplY3RTdWJJZCA9IDA7CisJCQli cmVhazsKIAkJY2FzZSBPQkpFQ1RfREFUQUJBU0U6CiAJCQlhZGRyZXNzLmNsYXNzSWQgPSBE YXRhYmFzZVJlbGF0aW9uSWQ7CiAJCQlhZGRyZXNzLm9iamVjdElkID0gZ2V0X2RhdGFiYXNl X29pZChuYW1lLCBtaXNzaW5nX29rKTsKQEAgLTIyNTQsNiArMjMzOCw3IEBAIHBnX2dldF9v YmplY3RfYWRkcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCSAqLwogCXN3aXRjaCAodHlwZSkK IAl7CisJCWNhc2UgT0JKRUNUX0NFS0RBVEE6CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9O X05BTUVTUEFDRToKIAkJY2FzZSBPQkpFQ1RfVVNFUl9NQVBQSU5HOgogCQkJaWYgKGxpc3Rf bGVuZ3RoKG5hbWUpICE9IDEpCkBAIC0yMzI4LDYgKzI0MTMsOCBAQCBwZ19nZXRfb2JqZWN0 X2FkZHJlc3MoUEdfRlVOQ1RJT05fQVJHUykKIAkJCW9iam5vZGUgPSAoTm9kZSAqKSBuYW1l OwogCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX0FDQ0VTU19NRVRIT0Q6CisJCWNhc2UgT0JK RUNUX0NFSzoKKwkJY2FzZSBPQkpFQ1RfQ01LOgogCQljYXNlIE9CSkVDVF9EQVRBQkFTRToK IAkJY2FzZSBPQkpFQ1RfRVZFTlRfVFJJR0dFUjoKIAkJY2FzZSBPQkpFQ1RfRVhURU5TSU9O OgpAQCAtMjM1OCw2ICsyNDQ1LDcgQEAgcGdfZ2V0X29iamVjdF9hZGRyZXNzKFBHX0ZVTkNU SU9OX0FSR1MpCiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX1JFTDoKIAkJCW9iam5vZGUg PSAoTm9kZSAqKSBsaXN0X21ha2UyKG5hbWUsIGxpbml0aWFsKGFyZ3MpKTsKIAkJCWJyZWFr OworCQljYXNlIE9CSkVDVF9DRUtEQVRBOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9O QU1FU1BBQ0U6CiAJCWNhc2UgT0JKRUNUX1VTRVJfTUFQUElORzoKIAkJCW9iam5vZGUgPSAo Tm9kZSAqKSBsaXN0X21ha2UyKGxpbml0aWFsKG5hbWUpLCBsaW5pdGlhbChhcmdzKSk7CkBA IC0yNjM1LDYgKzI3MjMsMTYgQEAgY2hlY2tfb2JqZWN0X293bmVyc2hpcChPaWQgcm9sZWlk LCBPYmplY3RUeXBlIG9ianR5cGUsIE9iamVjdEFkZHJlc3MgYWRkcmVzcywKIAkJCQlhY2xj aGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIG9ianR5cGUsCiAJCQkJCQkJICAgTmFt ZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpKSk7CiAJCQlicmVhazsKKwkJ Y2FzZSBPQkpFQ1RfQ0VLOgorCQkJaWYgKCFwZ19jb2x1bW5fZW5jcnlwdGlvbl9rZXlfb3du ZXJjaGVjayhhZGRyZXNzLm9iamVjdElkLCByb2xlaWQpKQorCQkJCWFjbGNoZWNrX2Vycm9y KEFDTENIRUNLX05PVF9PV05FUiwgb2JqdHlwZSwKKwkJCQkJCQkgICBzdHJWYWwob2JqZWN0 KSk7CisJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfQ01LOgorCQkJaWYgKCFwZ19jb2x1bW5f bWFzdGVyX2tleV9vd25lcmNoZWNrKGFkZHJlc3Mub2JqZWN0SWQsIHJvbGVpZCkpCisJCQkJ YWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBvYmp0eXBlLAorCQkJCQkJCSAg IHN0clZhbChvYmplY3QpKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJP UiwgInVucmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLAogCQkJCSAoaW50KSBvYmp0eXBl KTsKQEAgLTMwOTUsNiArMzE5Myw0OCBAQCBnZXRPYmplY3REZXNjcmlwdGlvbihjb25zdCBP YmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJCQlicmVhazsKIAkJ CX0KIAorCQljYXNlIE9DTEFTU19DRUs6CisJCQl7CisJCQkJY2hhcgkgICAqY2VrbmFtZSA9 IGdldF9jZWtfbmFtZShvYmplY3QtPm9iamVjdElkLCBtaXNzaW5nX29rKTsKKworCQkJCWlm IChjZWtuYW1lKQorCQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsIF8oImNvbHVtbiBl bmNyeXB0aW9uIGtleSAlcyIpLCBjZWtuYW1lKTsKKwkJCQlicmVhazsKKwkJCX0KKworCQlj YXNlIE9DTEFTU19DRUtEQVRBOgorCQkJeworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9y bV9wZ19jb2xlbmNrZXlkYXRhIGNla2RhdGE7CisKKwkJCQl0dXAgPSBTZWFyY2hTeXNDYWNo ZTEoQ0VLREFUQU9JRCwgT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJ CQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCQkJeworCQkJCQlpZiAoIW1pc3Np bmdfb2spCisJCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29s dW1uIGVuY3J5cHRpb24ga2V5IGRhdGEgJXUiLAorCQkJCQkJCSBvYmplY3QtPm9iamVjdElk KTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCisJCQkJY2VrZGF0YSA9IChGb3JtX3BnX2NvbGVu Y2tleWRhdGEpIEdFVFNUUlVDVCh0dXApOworCisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVm ZmVyLCBfKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgJXMgZGF0YSBmb3IgbWFzdGVyIGtleSAl cyIpLAorCQkJCQkJCQkgZ2V0X2Nla19uYW1lKGNla2RhdGEtPmNrZGNla2lkLCBmYWxzZSks CisJCQkJCQkJCSBnZXRfY21rX25hbWUoY2VrZGF0YS0+Y2tkY21raWQsIGZhbHNlKSk7CisK KwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJCQlicmVhazsKKwkJCX0KKworCQljYXNl IE9DTEFTU19DTUs6CisJCQl7CisJCQkJY2hhcgkgICAqY21rbmFtZSA9IGdldF9jbWtfbmFt ZShvYmplY3QtPm9iamVjdElkLCBtaXNzaW5nX29rKTsKKworCQkJCWlmIChjbWtuYW1lKQor CQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsIF8oImNvbHVtbiBtYXN0ZXIga2V5ICVz IiksIGNta25hbWUpOworCQkJCWJyZWFrOworCQkJfQorCiAJCWNhc2UgT0NMQVNTX0NPTlNU UkFJTlQ6CiAJCQl7CiAJCQkJSGVhcFR1cGxlCWNvblR1cDsKQEAgLTQ1MTksNiArNDY1OSwx OCBAQCBnZXRPYmplY3RUeXBlRGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2Jq ZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZm ZXIsICJjb2xsYXRpb24iKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgT0NMQVNTX0NFSzoKKwkJ CWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgImNvbHVtbiBlbmNyeXB0aW9uIGtl eSIpOworCQkJYnJlYWs7CisKKwkJY2FzZSBPQ0xBU1NfQ0VLREFUQToKKwkJCWFwcGVuZFN0 cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgImNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhIik7 CisJCQlicmVhazsKKworCQljYXNlIE9DTEFTU19DTUs6CisJCQlhcHBlbmRTdHJpbmdJbmZv U3RyaW5nKCZidWZmZXIsICJjb2x1bW4gbWFzdGVyIGtleSIpOworCQkJYnJlYWs7CisKIAkJ Y2FzZSBPQ0xBU1NfQ09OU1RSQUlOVDoKIAkJCWdldENvbnN0cmFpbnRUeXBlRGVzY3JpcHRp b24oJmJ1ZmZlciwgb2JqZWN0LT5vYmplY3RJZCwKIAkJCQkJCQkJCQkgbWlzc2luZ19vayk7 CkBAIC00OTg0LDYgKzUxMzYsNzQgQEAgZ2V0T2JqZWN0SWRlbnRpdHlQYXJ0cyhjb25zdCBP YmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBPQ0xB U1NfQ0VLOgorCQkJeworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9wZ19jb2xlbmNr ZXkgZm9ybTsKKworCQkJCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShDRUtPSUQsIE9iamVjdElk R2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxp ZCh0dXApKQorCQkJCXsKKwkJCQkJaWYgKCFtaXNzaW5nX29rKQorCQkJCQkJZWxvZyhFUlJP UiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAldSIs CisJCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOworCQkJCQlicmVhazsKKwkJCQl9CisJCQkJ Zm9ybSA9IChGb3JtX3BnX2NvbGVuY2tleSkgR0VUU1RSVUNUKHR1cCk7CisJCQkJYXBwZW5k U3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLAorCQkJCQkJCQkJICAgcXVvdGVfaWRlbnRpZmll cihOYW1lU3RyKGZvcm0tPmNla25hbWUpKSk7CisJCQkJaWYgKG9iam5hbWUpCisJCQkJCSpv YmpuYW1lID0gbGlzdF9tYWtlMShwc3RyZHVwKE5hbWVTdHIoZm9ybS0+Y2VrbmFtZSkpKTsK KwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJCQlicmVhazsKKwkJCX0KKworCQljYXNl IE9DTEFTU19DRUtEQVRBOgorCQkJeworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9w Z19jb2xlbmNrZXlkYXRhIGZvcm07CisKKwkJCQl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoQ0VL REFUQU9JRCwgT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYg KCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCQkJeworCQkJCQlpZiAoIW1pc3Npbmdfb2sp CisJCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29sdW1uIGVu Y3J5cHRpb24ga2V5IGRhdGEgJXUiLAorCQkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsKKwkJ CQkJYnJlYWs7CisJCQkJfQorCQkJCWZvcm0gPSAoRm9ybV9wZ19jb2xlbmNrZXlkYXRhKSBH RVRTVFJVQ1QodHVwKTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsCisJCQkJCQkJ CSAib2YgJXMgZm9yICVzIiwgZ2V0X2Nla19uYW1lKGZvcm0tPmNrZGNla2lkLCBmYWxzZSks IGdldF9jbWtfbmFtZShmb3JtLT5ja2RjbWtpZCwgZmFsc2UpKTsKKwkJCQlpZiAob2JqbmFt ZSkKKwkJCQkJKm9iam5hbWUgPSBsaXN0X21ha2UxKGdldF9jZWtfbmFtZShmb3JtLT5ja2Rj ZWtpZCwgZmFsc2UpKTsKKwkJCQlpZiAob2JqYXJncykKKwkJCQkJKm9iamFyZ3MgPSBsaXN0 X21ha2UxKGdldF9jbWtfbmFtZShmb3JtLT5ja2RjbWtpZCwgZmFsc2UpKTsKKwkJCQlSZWxl YXNlU3lzQ2FjaGUodHVwKTsKKwkJCQlicmVhazsKKwkJCX0KKworCQljYXNlIE9DTEFTU19D TUs6CisJCQl7CisJCQkJSGVhcFR1cGxlCXR1cDsKKwkJCQlGb3JtX3BnX2NvbG1hc3Rlcmtl eSBmb3JtOworCisJCQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENNS09JRCwgT2JqZWN0SWRH ZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlk KHR1cCkpCisJCQkJeworCQkJCQlpZiAoIW1pc3Npbmdfb2spCisJCQkJCQllbG9nKEVSUk9S LCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29sdW1uIG1hc3RlciBrZXkgJXUiLAorCQkJ CQkJCSBvYmplY3QtPm9iamVjdElkKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJCWZvcm0g PSAoRm9ybV9wZ19jb2xtYXN0ZXJrZXkpIEdFVFNUUlVDVCh0dXApOworCQkJCWFwcGVuZFN0 cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwKKwkJCQkJCQkJCSAgIHF1b3RlX2lkZW50aWZpZXIo TmFtZVN0cihmb3JtLT5jbWtuYW1lKSkpOworCQkJCWlmIChvYmpuYW1lKQorCQkJCQkqb2Jq bmFtZSA9IGxpc3RfbWFrZTEocHN0cmR1cChOYW1lU3RyKGZvcm0tPmNta25hbWUpKSk7CisJ CQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKIAkJY2FzZSBP Q0xBU1NfQ09OU1RSQUlOVDoKIAkJCXsKIAkJCQlIZWFwVHVwbGUJY29uVHVwOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9NYWtlZmlsZQppbmRleCA0OGY3MzQ4ZjkxYzcuLjY5ZjYxNzVjNjBlMCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvTWFrZWZpbGUKQEAgLTE5LDYgKzE5LDcgQEAgT0JKUyA9IFwKIAlhbmFseXpl Lm8gXAogCWFzeW5jLm8gXAogCWNsdXN0ZXIubyBcCisJY29sZW5jY21kcy5vIFwKIAljb2xs YXRpb25jbWRzLm8gXAogCWNvbW1lbnQubyBcCiAJY29uc3RyYWludC5vIFwKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9hbHRlci5jCmluZGV4IDU1MjE5YmIwOTc0YS4uNmNhYTIxZTMyNWZiIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2FsdGVyLmMKQEAgLTIyLDcgKzIyLDkgQEAKICNpbmNsdWRlICJjYXRhbG9nL2luZGV4 aW5nLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRh bG9nL29iamVjdGFjY2Vzcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5Lmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9n L3BnX2NvbG1hc3RlcmtleS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29udmVyc2lvbi5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZXZlbnRfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIuaCIKQEAgLTgwLDYgKzgyLDEyIEBAIHJl cG9ydF9uYW1lX2NvbmZsaWN0KE9pZCBjbGFzc0lkLCBjb25zdCBjaGFyICpuYW1lKQogCiAJ c3dpdGNoIChjbGFzc0lkKQogCXsKKwkJY2FzZSBDb2x1bW5FbmNLZXlSZWxhdGlvbklkOgor CQkJbXNnZm10ID0gZ2V0dGV4dF9ub29wKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgXCIlc1wi IGFscmVhZHkgZXhpc3RzIik7CisJCQlicmVhazsKKwkJY2FzZSBDb2x1bW5NYXN0ZXJLZXlS ZWxhdGlvbklkOgorCQkJbXNnZm10ID0gZ2V0dGV4dF9ub29wKCJjb2x1bW4gbWFzdGVyIGtl eSBcIiVzXCIgYWxyZWFkeSBleGlzdHMiKTsKKwkJCWJyZWFrOwogCQljYXNlIEV2ZW50VHJp Z2dlclJlbGF0aW9uSWQ6CiAJCQltc2dmbXQgPSBnZXR0ZXh0X25vb3AoImV2ZW50IHRyaWdn ZXIgXCIlc1wiIGFscmVhZHkgZXhpc3RzIik7CiAJCQlicmVhazsKQEAgLTM3NSw2ICszODMs OCBAQCBFeGVjUmVuYW1lU3RtdChSZW5hbWVTdG10ICpzdG10KQogCQkJcmV0dXJuIFJlbmFt ZVR5cGUoc3RtdCk7CiAKIAkJY2FzZSBPQkpFQ1RfQUdHUkVHQVRFOgorCQljYXNlIE9CSkVD VF9DRUs6CisJCWNhc2UgT0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgog CQljYXNlIE9CSkVDVF9DT05WRVJTSU9OOgogCQljYXNlIE9CSkVDVF9FVkVOVF9UUklHR0VS OgpAQCAtNjM5LDYgKzY0OSw5IEBAIEFsdGVyT2JqZWN0TmFtZXNwYWNlX29pZChPaWQgY2xh c3NJZCwgT2lkIG9iamlkLCBPaWQgbnNwT2lkLAogCQkJYnJlYWs7CiAKIAkJY2FzZSBPQ0xB U1NfQ0FTVDoKKwkJY2FzZSBPQ0xBU1NfQ0VLOgorCQljYXNlIE9DTEFTU19DRUtEQVRBOgor CQljYXNlIE9DTEFTU19DTUs6CiAJCWNhc2UgT0NMQVNTX0NPTlNUUkFJTlQ6CiAJCWNhc2Ug T0NMQVNTX0RFRkFVTFQ6CiAJCWNhc2UgT0NMQVNTX0xBTkdVQUdFOgpAQCAtODcyLDYgKzg4 NSw4IEBAIEV4ZWNBbHRlck93bmVyU3RtdChBbHRlck93bmVyU3RtdCAqc3RtdCkKIAogCQkJ LyogR2VuZXJpYyBjYXNlcyAqLwogCQljYXNlIE9CSkVDVF9BR0dSRUdBVEU6CisJCWNhc2Ug T0JKRUNUX0NFSzoKKwkJY2FzZSBPQkpFQ1RfQ01LOgogCQljYXNlIE9CSkVDVF9DT0xMQVRJ T046CiAJCWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CiAJCWNhc2UgT0JKRUNUX0ZVTkNUSU9O OgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sZW5jY21kcy5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvY29sZW5jY21kcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uYmVmOGYwMGI5ODM0Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvY29sZW5jY21kcy5jCkBAIC0wLDAgKzEsMzU0IEBACisvKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBjb2xlbmNjbWRzLmMKKyAqCSAgY29sdW1uLWVu Y3J5cHRpb24tcmVsYXRlZCBjb21tYW5kcyBzdXBwb3J0IGNvZGUKKyAqCisgKiBQb3J0aW9u cyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1l bnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0 aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICoKKyAqIElERU5USUZJQ0FUSU9O CisgKgkgIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGVuY2NtZHMuYworICoKKyAqLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICovCisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKworI2luY2x1ZGUg ImFjY2Vzcy9odHVwX2RldGFpbHMuaCIKKyNpbmNsdWRlICJhY2Nlc3MvdGFibGUuaCIKKyNp bmNsdWRlICJjYXRhbG9nL2NhdGFsb2cuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2RlcGVuZGVu Y3kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2luZGV4aW5nLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9vYmplY3RhY2Nlc3MuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5oIgorI2luY2x1ZGUgImNhdGFs b2cvcGdfY29sbWFzdGVya2V5LmgiCisjaW5jbHVkZSAiY29tbWFuZHMvY29sZW5jY21kcy5o IgorI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKKyNpbmNsdWRlICJjb21tYW5k cy9kZWZyZW0uaCIKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJ1dGlscy9h Y2wuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2xz eXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3JlbC5oIgorI2luY2x1ZGUgInV0aWxzL3N5 c2NhY2hlLmgiCisKK3N0YXRpYyB2b2lkCitwYXJzZV9jZWtfYXR0cmlidXRlcyhQYXJzZVN0 YXRlICpwc3RhdGUsIExpc3QgKmRlZmluaXRpb24sIE9pZCAqY21rb2lkX3AsIGludDE2ICph bGdfcCwgY2hhciAqKmVuY3ZhbF9wKQoreworCUxpc3RDZWxsICAgKmxjOworCURlZkVsZW0g ICAgKmNta0VsID0gTlVMTDsKKwlEZWZFbGVtICAgICphbGdFbCA9IE5VTEw7CisJRGVmRWxl bSAgICAqZW5jdmFsRWwgPSBOVUxMOworCU9pZAkJCWNta29pZCA9IDA7CisJaW50MTYJCWFs ZzsKKwljaGFyCSAgICplbmN2YWw7CisKKwlBc3NlcnQoY21rb2lkX3ApOworCisJZm9yZWFj aChsYywgZGVmaW5pdGlvbikKKwl7CisJCURlZkVsZW0gICAgKmRlZmVsID0gbGZpcnN0X25v ZGUoRGVmRWxlbSwgbGMpOworCQlEZWZFbGVtICAgKipkZWZlbHA7CisKKwkJaWYgKHN0cmNt cChkZWZlbC0+ZGVmbmFtZSwgImNvbHVtbl9tYXN0ZXJfa2V5IikgPT0gMCkKKwkJCWRlZmVs cCA9ICZjbWtFbDsKKwkJZWxzZSBpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAiYWxnb3Jp dGhtIikgPT0gMCkKKwkJCWRlZmVscCA9ICZhbGdFbDsKKwkJZWxzZSBpZiAoc3RyY21wKGRl ZmVsLT5kZWZuYW1lLCAiZW5jcnlwdGVkX3ZhbHVlIikgPT0gMCkKKwkJCWRlZmVscCA9ICZl bmN2YWxFbDsKKwkJZWxzZQorCQl7CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29k ZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2coImNvbHVtbiBlbmNyeXB0 aW9uIGtleSBhdHRyaWJ1dGUgXCIlc1wiIG5vdCByZWNvZ25pemVkIiwKKwkJCQkJCQlkZWZl bC0+ZGVmbmFtZSksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBkZWZlbC0+ bG9jYXRpb24pKSk7CisJCX0KKwkJaWYgKCpkZWZlbHAgIT0gTlVMTCkKKwkJCWVycm9yQ29u ZmxpY3RpbmdEZWZFbGVtKGRlZmVsLCBwc3RhdGUpOworCQkqZGVmZWxwID0gZGVmZWw7CisJ fQorCisJaWYgKGNta0VsKQorCXsKKwkJY2hhcgkgICAqdmFsID0gZGVmR2V0U3RyaW5nKGNt a0VsKTsKKworCQljbWtvaWQgPSBHZXRTeXNDYWNoZU9pZDEoQ01LTkFNRSwgQW51bV9wZ19j b2xtYXN0ZXJrZXlfb2lkLCBQb2ludGVyR2V0RGF0dW0odmFsKSk7CisJCWlmICghY21rb2lk KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9P QkpFQ1QpLAorCQkJCQllcnJtc2coImNvbHVtbiBtYXN0ZXIga2V5IFwiJXNcIiBkb2VzIG5v dCBleGlzdCIsIHZhbCkpOworCX0KKwllbHNlCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCSBlcnJtc2coImF0dHJpYnV0ZSBc IiVzXCIgbXVzdCBiZSBzcGVjaWZpZWQiLAorCQkJCQkJImNvbHVtbl9tYXN0ZXJfa2V5Iikp KTsKKworCWlmIChhbGdFbCkKKwl7CisJCWNoYXIJICAgKnZhbCA9IGRlZkdldFN0cmluZyhh bGdFbCk7CisKKwkJaWYgKCFhbGdfcCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJj b2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygiYXR0cmlidXRlIFwi JXNcIiBtdXN0IG5vdCBiZSBzcGVjaWZpZWQiLAorCQkJCQkJCSJhbGdvcml0aG0iKSkpOwor CisJCWlmIChzdHJjbXAodmFsLCAiUlNBRVNfT0FFUF9TSEFfMSIpID09IDApCisJCQlhbGcg PSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMTsKKwkJZWxzZSBpZiAoc3RyY21wKHZhbCwgIlBH X0NNS19SU0FFU19PQUVQX1NIQV8yNTYiKSA9PSAwKQorCQkJYWxnID0gUEdfQ01LX1JTQUVT X09BRVBfU0hBXzI1NjsKKwkJZWxzZQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29k ZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJZXJybXNnKCJ1bnJl Y29nbml6ZWQgZW5jcnlwdGlvbiBhbGdvcml0aG06ICVzIiwgdmFsKSk7CisJfQorCWVsc2UK KwkJYWxnID0gUEdfQ01LX1JTQUVTX09BRVBfU0hBXzE7CisKKwlpZiAoZW5jdmFsRWwpCisJ eworCQlpZiAoIWVuY3ZhbF9wKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUo RVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkgZXJybXNnKCJhdHRyaWJ1dGUgXCIlc1wi IG11c3Qgbm90IGJlIHNwZWNpZmllZCIsCisJCQkJCQkJImVuY3J5cHRlZF92YWx1ZSIpKSk7 CisKKwkJZW5jdmFsID0gZGVmR2V0U3RyaW5nKGVuY3ZhbEVsKTsKKwl9CisJZWxzZQorCXsK KwkJaWYgKGVuY3ZhbF9wKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJS Q09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkgZXJybXNnKCJhdHRyaWJ1dGUgXCIlc1wiIG11 c3QgYmUgc3BlY2lmaWVkIiwKKwkJCQkJCQkiZW5jcnlwdGVkX3ZhbHVlIikpKTsKKwl9CisK KwkqY21rb2lkX3AgPSBjbWtvaWQ7CisJaWYgKGFsZ19wKQorCQkqYWxnX3AgPSBhbGc7CisJ aWYgKGVuY3ZhbF9wKQorCQkqZW5jdmFsX3AgPSBlbmN2YWw7Cit9CisKK3N0YXRpYyB2b2lk CitpbnNlcnRfY2VrZGF0YV9yZWNvcmQoT2lkIGNla29pZCwgT2lkIGNta29pZCwgaW50MTYg YWxnLCBjaGFyICplbmN2YWwpCit7CisJT2lkCQkJY2VrZGF0YW9pZDsKKwlSZWxhdGlvbgly ZWw7CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19jb2xlbmNrZXlkYXRhXSA9IHswfTsKKwli b29sCQludWxsc1tOYXR0c19wZ19jb2xlbmNrZXlkYXRhXSA9IHswfTsKKwlIZWFwVHVwbGUJ dHVwOworCU9iamVjdEFkZHJlc3MgbXlzZWxmOworCU9iamVjdEFkZHJlc3Mgb3RoZXI7CisK KwlyZWwgPSB0YWJsZV9vcGVuKENvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkLCBSb3dFeGNs dXNpdmVMb2NrKTsKKworCWNla2RhdGFvaWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBD b2x1bW5FbmNLZXlEYXRhT2lkSW5kZXhJZCwgQW51bV9wZ19jb2xlbmNrZXlkYXRhX29pZCk7 CisJdmFsdWVzW0FudW1fcGdfY29sZW5ja2V5ZGF0YV9vaWQgLSAxXSA9IE9iamVjdElkR2V0 RGF0dW0oY2VrZGF0YW9pZCk7CisJdmFsdWVzW0FudW1fcGdfY29sZW5ja2V5ZGF0YV9ja2Rj ZWtpZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShjZWtvaWQpOworCXZhbHVlc1tBbnVtX3Bn X2NvbGVuY2tleWRhdGFfY2tkY21raWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oY21rb2lk KTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNrZXlkYXRhX2NrZGNta2FsZyAtIDFdID0gSW50 MTZHZXREYXR1bShhbGcpOworCXZhbHVlc1tBbnVtX3BnX2NvbGVuY2tleWRhdGFfY2tkZW5j dmFsIC0gMV0gPSBEaXJlY3RGdW5jdGlvbkNhbGwxKGJ5dGVhaW4sIENTdHJpbmdHZXREYXR1 bShlbmN2YWwpKTsKKworCXR1cCA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2Ny KHJlbCksIHZhbHVlcywgbnVsbHMpOworCUNhdGFsb2dUdXBsZUluc2VydChyZWwsIHR1cCk7 CisJaGVhcF9mcmVldHVwbGUodHVwKTsKKworCU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBD b2x1bW5FbmNLZXlEYXRhUmVsYXRpb25JZCwgY2VrZGF0YW9pZCk7CisKKwkvKiBkZXBlbmRl bmN5IGNla2RhdGEgLT4gY2VrICovCisJT2JqZWN0QWRkcmVzc1NldChvdGhlciwgQ29sdW1u RW5jS2V5UmVsYXRpb25JZCwgY2Vrb2lkKTsKKwlyZWNvcmREZXBlbmRlbmN5T24oJm15c2Vs ZiwgJm90aGVyLCBERVBFTkRFTkNZX0FVVE8pOworCisJLyogZGVwZW5kZW5jeSBjZWtkYXRh IC0+IGNtayAqLworCU9iamVjdEFkZHJlc3NTZXQob3RoZXIsIENvbHVtbk1hc3RlcktleVJl bGF0aW9uSWQsIGNta29pZCk7CisJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZvdGhl ciwgREVQRU5ERU5DWV9OT1JNQUwpOworCisJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOwor fQorCitPYmplY3RBZGRyZXNzCitDcmVhdGVDRUsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBEZWZp bmVTdG10ICpzdG10KQoreworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJUmVsYXRpb24JcmVs OworCU9iamVjdEFkZHJlc3MgbXlzZWxmOworCU9pZAkJCWNla29pZDsKKwlMaXN0Q2VsbCAg ICpsYzsKKwlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX2NvbGVuY2tleV0gPSB7MH07CisJYm9v bAkJbnVsbHNbTmF0dHNfcGdfY29sZW5ja2V5XSA9IHswfTsKKwlIZWFwVHVwbGUJdHVwOwor CisJYWNscmVzdWx0ID0gcGdfZGF0YWJhc2VfYWNsY2hlY2soTXlEYXRhYmFzZUlkLCBHZXRV c2VySWQoKSwgQUNMX0NSRUFURSk7CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykK KwkJYWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfREFUQUJBU0UsCisJCQkJCSAg IGdldF9kYXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkpOworCisJcmVsID0gdGFibGVfb3Bl bihDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCWNla29p ZCA9IEdldFN5c0NhY2hlT2lkMShDRUtOQU1FLCBBbnVtX3BnX2NvbGVuY2tleV9vaWQsCisJ CQkJCQkJIENTdHJpbmdHZXREYXR1bShzdHJWYWwobGxhc3Qoc3RtdC0+ZGVmbmFtZXMpKSkp OworCWlmIChPaWRJc1ZhbGlkKGNla29pZCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4g ZW5jcnlwdGlvbiBrZXkgXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwKKwkJCQkJCXN0clZhbChs bGFzdChzdG10LT5kZWZuYW1lcykpKSkpOworCisJY2Vrb2lkID0gR2V0TmV3T2lkV2l0aElu ZGV4KHJlbCwgQ29sdW1uRW5jS2V5T2lkSW5kZXhJZCwgQW51bV9wZ19jb2xlbmNrZXlfb2lk KTsKKworCWZvcmVhY2ggKGxjLCBzdG10LT5kZWZpbml0aW9uKQorCXsKKwkJTGlzdAkgICAq ZGVmaW5pdGlvbiA9IGxmaXJzdF9ub2RlKExpc3QsIGxjKTsKKwkJT2lkCQkJY21rb2lkID0g MDsKKwkJaW50MTYJCWFsZzsKKwkJY2hhcgkgICAqZW5jdmFsOworCisJCXBhcnNlX2Nla19h dHRyaWJ1dGVzKHBzdGF0ZSwgZGVmaW5pdGlvbiwgJmNta29pZCwgJmFsZywgJmVuY3ZhbCk7 CisKKwkJLyogcGdfY29sZW5ja2V5ZGF0YSAqLworCQlpbnNlcnRfY2VrZGF0YV9yZWNvcmQo Y2Vrb2lkLCBjbWtvaWQsIGFsZywgZW5jdmFsKTsKKwl9CisKKwkvKiBwZ19jb2xlbmNrZXkg Ki8KKwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNrZXlfb2lkIC0gMV0gPSBPYmplY3RJZEdldERh dHVtKGNla29pZCk7CisJdmFsdWVzW0FudW1fcGdfY29sZW5ja2V5X2Nla25hbWUgLSAxXSA9 CisJCURpcmVjdEZ1bmN0aW9uQ2FsbDEobmFtZWluLCBDU3RyaW5nR2V0RGF0dW0oc3RyVmFs KGxsYXN0KHN0bXQtPmRlZm5hbWVzKSkpKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNrZXlf Y2Vrb3duZXIgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oR2V0VXNlcklkKCkpOworCisJdHVw ID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxs cyk7CisJQ2F0YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVwKTsKKwloZWFwX2ZyZWV0dXBsZSh0 dXApOworCisJT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIENvbHVtbkVuY0tleVJlbGF0aW9u SWQsIGNla29pZCk7CisJcmVjb3JkRGVwZW5kZW5jeU9uT3duZXIoQ29sdW1uRW5jS2V5UmVs YXRpb25JZCwgY2Vrb2lkLCBHZXRVc2VySWQoKSk7CisKKwl0YWJsZV9jbG9zZShyZWwsIFJv d0V4Y2x1c2l2ZUxvY2spOworCisJSW52b2tlT2JqZWN0UG9zdENyZWF0ZUhvb2soQ29sdW1u RW5jS2V5UmVsYXRpb25JZCwgY2Vrb2lkLCAwKTsKKworCXJldHVybiBteXNlbGY7Cit9CisK K09iamVjdEFkZHJlc3MKK0FsdGVyQ29sdW1uRW5jcnlwdGlvbktleShQYXJzZVN0YXRlICpw c3RhdGUsIEFsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQgKnN0bXQpCit7CisJT2lkCQkJ Y2Vrb2lkOworCU9iamVjdEFkZHJlc3MgYWRkcmVzczsKKworCWNla29pZCA9IGdldF9jZWtf b2lkKHN0bXQtPmNla25hbWUsIGZhbHNlKTsKKworCWlmICghcGdfY29sdW1uX2VuY3J5cHRp b25fa2V5X293bmVyY2hlY2soY2Vrb2lkLCBHZXRVc2VySWQoKSkpCisJCWFjbGNoZWNrX2Vy cm9yKEFDTENIRUNLX05PVF9PV05FUiwgT0JKRUNUX0NFSywgc3RtdC0+Y2VrbmFtZSk7CisK KwlpZiAoc3RtdC0+aXNEcm9wKQorCXsKKwkJT2lkCQkJY21rb2lkID0gMDsKKwkJT2lkCQkJ Y2VrZGF0YW9pZDsKKwkJT2JqZWN0QWRkcmVzcyBvYmo7CisKKwkJcGFyc2VfY2VrX2F0dHJp YnV0ZXMocHN0YXRlLCBzdG10LT5kZWZpbml0aW9uLCAmY21rb2lkLCBOVUxMLCBOVUxMKTsK KwkJY2VrZGF0YW9pZCA9IGdldF9jZWtkYXRhX29pZChjZWtvaWQsIGNta29pZCwgZmFsc2Up OworCQlPYmplY3RBZGRyZXNzU2V0KG9iaiwgQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQs IGNla2RhdGFvaWQpOworCQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgRFJPUF9DQVNDQURFLCAw KTsKKwkJLy8gVE9ETzogcHJldmVudCBkZWxldGluZyBhbGwgZGF0YSBlbnRyaWVzIGZvciBh IGtleT8KKwl9CisJZWxzZQorCXsKKwkJT2lkCQkJY21rb2lkID0gMDsKKwkJaW50MTYJCWFs ZzsKKwkJY2hhcgkgICAqZW5jdmFsOworCisJCXBhcnNlX2Nla19hdHRyaWJ1dGVzKHBzdGF0 ZSwgc3RtdC0+ZGVmaW5pdGlvbiwgJmNta29pZCwgJmFsZywgJmVuY3ZhbCk7CisJCWlmIChn ZXRfY2VrZGF0YV9vaWQoY2Vrb2lkLCBjbWtvaWQsIHRydWUpKQorCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJCQllcnJt c2coImNvbHVtbiBlbmNyeXB0aW9uIGtleSBcIiVzXCIgYWxyZWFkeSBoYXMgZGF0YSBmb3Ig bWFzdGVyIGtleSBcIiVzXCIiLAorCQkJCQkJICAgc3RtdC0+Y2VrbmFtZSwgZ2V0X2Nta19u YW1lKGNta29pZCwgZmFsc2UpKSk7CisJCWluc2VydF9jZWtkYXRhX3JlY29yZChjZWtvaWQs IGNta29pZCwgYWxnLCBlbmN2YWwpOworCX0KKworCUludm9rZU9iamVjdFBvc3RBbHRlckhv b2soQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwgY2Vrb2lkLCAwKTsKKwlPYmplY3RBZGRyZXNz U2V0KGFkZHJlc3MsIENvbHVtbkVuY0tleVJlbGF0aW9uSWQsIGNla29pZCk7CisKKwlyZXR1 cm4gYWRkcmVzczsKK30KKworT2JqZWN0QWRkcmVzcworQ3JlYXRlQ01LKFBhcnNlU3RhdGUg KnBzdGF0ZSwgRGVmaW5lU3RtdCAqc3RtdCkKK3sKKwlBY2xSZXN1bHQJYWNscmVzdWx0Owor CVJlbGF0aW9uCXJlbDsKKwlPYmplY3RBZGRyZXNzIG15c2VsZjsKKwlPaWQJCQljbWtvaWQ7 CisJTGlzdENlbGwgICAqbGM7CisJRGVmRWxlbSAgICAqcmVhbG1FbCA9IE5VTEw7CisJY2hh cgkgICAqcmVhbG07CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19jb2xtYXN0ZXJrZXldID0g ezB9OworCWJvb2wJCW51bGxzW05hdHRzX3BnX2NvbG1hc3RlcmtleV0gPSB7MH07CisJSGVh cFR1cGxlCXR1cDsKKworCWFjbHJlc3VsdCA9IHBnX2RhdGFiYXNlX2FjbGNoZWNrKE15RGF0 YWJhc2VJZCwgR2V0VXNlcklkKCksIEFDTF9DUkVBVEUpOworCWlmIChhY2xyZXN1bHQgIT0g QUNMQ0hFQ0tfT0spCisJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX0RBVEFC QVNFLAorCQkJCQkgICBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKTsKKworCXJl bCA9IHRhYmxlX29wZW4oQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgUm93RXhjbHVzaXZl TG9jayk7CisKKwljbWtvaWQgPSBHZXRTeXNDYWNoZU9pZDEoQ01LTkFNRSwgQW51bV9wZ19j b2xtYXN0ZXJrZXlfb2lkLAorCQkJCQkJCSBDU3RyaW5nR2V0RGF0dW0oc3RyVmFsKGxsYXN0 KHN0bXQtPmRlZm5hbWVzKSkpKTsKKwlpZiAoT2lkSXNWYWxpZChjbWtvaWQpKQorCQllcmVw b3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCksCisJ CQkJIGVycm1zZygiY29sdW1uIG1hc3RlciBrZXkgXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwK KwkJCQkJCXN0clZhbChsbGFzdChzdG10LT5kZWZuYW1lcykpKSkpOworCisJZm9yZWFjaChs Yywgc3RtdC0+ZGVmaW5pdGlvbikKKwl7CisJCURlZkVsZW0gICAgKmRlZmVsID0gbGZpcnN0 X25vZGUoRGVmRWxlbSwgbGMpOworCQlEZWZFbGVtICAgKipkZWZlbHA7CisKKwkJaWYgKHN0 cmNtcChkZWZlbC0+ZGVmbmFtZSwgInJlYWxtIikgPT0gMCkKKwkJCWRlZmVscCA9ICZyZWFs bUVsOworCQllbHNlCisJCXsKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVS UkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygiY29sdW1uIG1hc3RlciBrZXkg YXR0cmlidXRlIFwiJXNcIiBub3QgcmVjb2duaXplZCIsCisJCQkJCQkJZGVmZWwtPmRlZm5h bWUpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZGVmZWwtPmxvY2F0aW9u KSkpOworCQl9CisJCWlmICgqZGVmZWxwICE9IE5VTEwpCisJCQllcnJvckNvbmZsaWN0aW5n RGVmRWxlbShkZWZlbCwgcHN0YXRlKTsKKwkJKmRlZmVscCA9IGRlZmVsOworCX0KKworCWlm IChyZWFsbUVsKQorCQlyZWFsbSA9IGRlZkdldFN0cmluZyhyZWFsbUVsKTsKKwllbHNlCisJ CXJlYWxtID0gIiI7CisKKwljbWtvaWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBDb2x1 bW5NYXN0ZXJLZXlPaWRJbmRleElkLCBBbnVtX3BnX2NvbG1hc3RlcmtleV9vaWQpOworCXZh bHVlc1tBbnVtX3BnX2NvbG1hc3RlcmtleV9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0o Y21rb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rbmFtZSAtIDFdID0K KwkJRGlyZWN0RnVuY3Rpb25DYWxsMShuYW1laW4sIENTdHJpbmdHZXREYXR1bShzdHJWYWwo bGxhc3Qoc3RtdC0+ZGVmbmFtZXMpKSkpOworCXZhbHVlc1tBbnVtX3BnX2NvbG1hc3Rlcmtl eV9jbWtvd25lciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShHZXRVc2VySWQoKSk7CisJdmFs dWVzW0FudW1fcGdfY29sbWFzdGVya2V5X2Nta3JlYWxtIC0gMV0gPSBDU3RyaW5nR2V0VGV4 dERhdHVtKHJlYWxtKTsKKworCXR1cCA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERl c2NyKHJlbCksIHZhbHVlcywgbnVsbHMpOworCUNhdGFsb2dUdXBsZUluc2VydChyZWwsIHR1 cCk7CisJaGVhcF9mcmVldHVwbGUodHVwKTsKKworCXJlY29yZERlcGVuZGVuY3lPbk93bmVy KENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIGNta29pZCwgR2V0VXNlcklkKCkpOworCisJ T2JqZWN0QWRkcmVzc1NldChteXNlbGYsIENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIGNt a29pZCk7CisKKwl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJSW52 b2tlT2JqZWN0UG9zdENyZWF0ZUhvb2soQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgY21r b2lkLCAwKTsKKworCXJldHVybiBteXNlbGY7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVu dF90cmlnZ2VyLmMKaW5kZXggNDQxZjI5ZDY4NGZmLi41MWI4Njg2ZDQ2MzIgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKQEAgLTk1MSw2ICs5NTEsOSBAQCBFdmVu dFRyaWdnZXJTdXBwb3J0c09iamVjdFR5cGUoT2JqZWN0VHlwZSBvYnR5cGUpCiAJCWNhc2Ug T0JKRUNUX0FNUFJPQzoKIAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQljYXNlIE9CSkVD VF9DQVNUOgorCQljYXNlIE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NFS0RBVEE6CisJ CWNhc2UgT0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09MVU1OOgogCQljYXNlIE9CSkVD VF9DT0xMQVRJT046CiAJCWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CkBAIC0xMDI3LDYgKzEw MzAsOSBAQCBFdmVudFRyaWdnZXJTdXBwb3J0c09iamVjdENsYXNzKE9iamVjdENsYXNzIG9i amNsYXNzKQogCQljYXNlIE9DTEFTU19UWVBFOgogCQljYXNlIE9DTEFTU19DQVNUOgogCQlj YXNlIE9DTEFTU19DT0xMQVRJT046CisJCWNhc2UgT0NMQVNTX0NFSzoKKwkJY2FzZSBPQ0xB U1NfQ0VLREFUQToKKwkJY2FzZSBPQ0xBU1NfQ01LOgogCQljYXNlIE9DTEFTU19DT05TVFJB SU5UOgogCQljYXNlIE9DTEFTU19DT05WRVJTSU9OOgogCQljYXNlIE9DTEFTU19ERUZBVUxU OgpAQCAtMjA1Niw2ICsyMDYyLDkgQEAgc3RyaW5naWZ5X2dyYW50X29ianR5cGUoT2JqZWN0 VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9BTVBST0M6CiAJCWNhc2UgT0JKRUNUX0FU VFJJQlVURToKIAkJY2FzZSBPQkpFQ1RfQ0FTVDoKKwkJY2FzZSBPQkpFQ1RfQ0VLOgorCQlj YXNlIE9CSkVDVF9DRUtEQVRBOgorCQljYXNlIE9CSkVDVF9DTUs6CiAJCWNhc2UgT0JKRUNU X0NPTExBVElPTjoKIAkJY2FzZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJY2FzZSBPQkpFQ1Rf REVGQVVMVDoKQEAgLTIxMzksNiArMjE0OCw5IEBAIHN0cmluZ2lmeV9hZGVmcHJpdnNfb2Jq dHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX0FNUFJPQzoKIAkJY2Fz ZSBPQkpFQ1RfQVRUUklCVVRFOgogCQljYXNlIE9CSkVDVF9DQVNUOgorCQljYXNlIE9CSkVD VF9DRUs6CisJCWNhc2UgT0JKRUNUX0NFS0RBVEE6CisJCWNhc2UgT0JKRUNUX0NNSzoKIAkJ Y2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9CSkVDVF9DT05WRVJTSU9OOgogCQlj YXNlIE9CSkVDVF9ERUZBVUxUOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv bWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZAppbmRleCA5 YjM1MGQwMjVmZmMuLjZlMjZlMTU4YzQ0OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVp bGQKQEAgLTUsNiArNSw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ2FuYWx5 emUuYycsCiAgICdhc3luYy5jJywKICAgJ2NsdXN0ZXIuYycsCisgICdjb2xlbmNjbWRzLmMn LAogICAnY29sbGF0aW9uY21kcy5jJywKICAgJ2NvbW1lbnQuYycsCiAgICdjb25zdHJhaW50 LmMnLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IGM0YjU0ZDA1NDc1Ny4uNjVkZGUz MjQ0MTllIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKKysr IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCkBAIC01MCw3ICs1MCw2IEBAIHN0 YXRpYyB2b2lkIEluaXRRdWVyeUhhc2hUYWJsZSh2b2lkKTsKIHN0YXRpYyBQYXJhbUxpc3RJ bmZvIEV2YWx1YXRlUGFyYW1zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCVByZXBh cmVkU3RhdGVtZW50ICpwc3RtdCwgTGlzdCAqcGFyYW1zLAogCQkJCQkJCQkJRVN0YXRlICpl c3RhdGUpOwotc3RhdGljIERhdHVtIGJ1aWxkX3JlZ3R5cGVfYXJyYXkoT2lkICpwYXJhbV90 eXBlcywgaW50IG51bV9wYXJhbXMpOwogCiAvKgogICogSW1wbGVtZW50cyB0aGUgJ1BSRVBB UkUnIHV0aWxpdHkgc3RhdGVtZW50LgpAQCAtNjIsNiArNjEsOCBAQCBQcmVwYXJlUXVlcnko UGFyc2VTdGF0ZSAqcHN0YXRlLCBQcmVwYXJlU3RtdCAqc3RtdCwKIAlSYXdTdG10ICAgICpy YXdzdG10OwogCUNhY2hlZFBsYW5Tb3VyY2UgKnBsYW5zb3VyY2U7CiAJT2lkCQkgICAqYXJn dHlwZXMgPSBOVUxMOworCU9pZAkJICAgKmFyZ29yaWd0YmxzID0gTlVMTDsKKwlBdHRyTnVt YmVyICphcmdvcmlnY29scyA9IE5VTEw7CiAJaW50CQkJbmFyZ3M7CiAJTGlzdAkgICAqcXVl cnlfbGlzdDsKIApAQCAtMTA4LDYgKzEwOSw5IEBAIFByZXBhcmVRdWVyeShQYXJzZVN0YXRl ICpwc3RhdGUsIFByZXBhcmVTdG10ICpzdG10LAogCiAJCQlhcmd0eXBlc1tpKytdID0gdG9p ZDsKIAkJfQorCisJCWFyZ29yaWd0YmxzID0gcGFsbG9jMF9hcnJheShPaWQsIG5hcmdzKTsK KwkJYXJnb3JpZ2NvbHMgPSBwYWxsb2MwX2FycmF5KEF0dHJOdW1iZXIsIG5hcmdzKTsKIAl9 CiAKIAkvKgpAQCAtMTE3LDcgKzEyMSw5IEBAIFByZXBhcmVRdWVyeShQYXJzZVN0YXRlICpw c3RhdGUsIFByZXBhcmVTdG10ICpzdG10LAogCSAqIFJld3JpdGUgdGhlIHF1ZXJ5LiBUaGUg cmVzdWx0IGNvdWxkIGJlIDAsIDEsIG9yIG1hbnkgcXVlcmllcy4KIAkgKi8KIAlxdWVyeV9s aXN0ID0gcGdfYW5hbHl6ZV9hbmRfcmV3cml0ZV92YXJwYXJhbXMocmF3c3RtdCwgcHN0YXRl LT5wX3NvdXJjZXRleHQsCi0JCQkJCQkJCQkJCQkgICZhcmd0eXBlcywgJm5hcmdzLCBOVUxM KTsKKwkJCQkJCQkJCQkJCSAgJmFyZ3R5cGVzLCAmbmFyZ3MsCisJCQkJCQkJCQkJCQkgICZh cmdvcmlndGJscywgJmFyZ29yaWdjb2xzLAorCQkJCQkJCQkJCQkJICBOVUxMKTsKIAogCS8q IEZpbmlzaCBmaWxsaW5nIGluIHRoZSBDYWNoZWRQbGFuU291cmNlICovCiAJQ29tcGxldGVD YWNoZWRQbGFuKHBsYW5zb3VyY2UsCkBAIC0xMjUsNiArMTMxLDggQEAgUHJlcGFyZVF1ZXJ5 KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUHJlcGFyZVN0bXQgKnN0bXQsCiAJCQkJCSAgIE5VTEws CiAJCQkJCSAgIGFyZ3R5cGVzLAogCQkJCQkgICBuYXJncywKKwkJCQkJICAgYXJnb3JpZ3Ri bHMsCisJCQkJCSAgIGFyZ29yaWdjb2xzLAogCQkJCQkgICBOVUxMLAogCQkJCQkgICBOVUxM LAogCQkJCQkgICBDVVJTT1JfT1BUX1BBUkFMTEVMX09LLAkvKiBhbGxvdyBwYXJhbGxlbCBt b2RlICovCkBAIC02ODMsMzQgKzY5MSw0OSBAQCBwZ19wcmVwYXJlZF9zdGF0ZW1lbnQoUEdf RlVOQ1RJT05fQVJHUykKIAkJaGFzaF9zZXFfaW5pdCgmaGFzaF9zZXEsIHByZXBhcmVkX3F1 ZXJpZXMpOwogCQl3aGlsZSAoKHByZXBfc3RtdCA9IGhhc2hfc2VxX3NlYXJjaCgmaGFzaF9z ZXEpKSAhPSBOVUxMKQogCQl7CisJCQlpbnQJCQludW1fcGFyYW1zID0gcHJlcF9zdG10LT5w bGFuc291cmNlLT5udW1fcGFyYW1zOwogCQkJVHVwbGVEZXNjCXJlc3VsdF9kZXNjOwotCQkJ RGF0dW0JCXZhbHVlc1s4XTsKLQkJCWJvb2wJCW51bGxzWzhdID0gezB9OworCQkJRGF0dW0J ICAgKnRtcF9hcnk7CisJCQlEYXR1bQkJdmFsdWVzWzEwXTsKKwkJCWJvb2wJCW51bGxzWzEw XSA9IHswfTsKIAogCQkJcmVzdWx0X2Rlc2MgPSBwcmVwX3N0bXQtPnBsYW5zb3VyY2UtPnJl c3VsdERlc2M7CiAKIAkJCXZhbHVlc1swXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0ocHJlcF9z dG10LT5zdG10X25hbWUpOwogCQkJdmFsdWVzWzFdID0gQ1N0cmluZ0dldFRleHREYXR1bShw cmVwX3N0bXQtPnBsYW5zb3VyY2UtPnF1ZXJ5X3N0cmluZyk7CiAJCQl2YWx1ZXNbMl0gPSBU aW1lc3RhbXBUekdldERhdHVtKHByZXBfc3RtdC0+cHJlcGFyZV90aW1lKTsKLQkJCXZhbHVl c1szXSA9IGJ1aWxkX3JlZ3R5cGVfYXJyYXkocHJlcF9zdG10LT5wbGFuc291cmNlLT5wYXJh bV90eXBlcywKLQkJCQkJCQkJCQkJcHJlcF9zdG10LT5wbGFuc291cmNlLT5udW1fcGFyYW1z KTsKKworCQkJdG1wX2FyeSA9IHBhbGxvY19hcnJheShEYXR1bSwgbnVtX3BhcmFtcyk7CisJ CQlmb3IgKGludCBpID0gMDsgaSA8IG51bV9wYXJhbXM7IGkrKykKKwkJCQl0bXBfYXJ5W2ld ID0gT2JqZWN0SWRHZXREYXR1bShwcmVwX3N0bXQtPnBsYW5zb3VyY2UtPnBhcmFtX3R5cGVz W2ldKTsKKwkJCXZhbHVlc1szXSA9IFBvaW50ZXJHZXREYXR1bShjb25zdHJ1Y3RfYXJyYXlf YnVpbHRpbih0bXBfYXJ5LCBudW1fcGFyYW1zLCBSRUdUWVBFT0lEKSk7CisKKwkJCXRtcF9h cnkgPSBwYWxsb2NfYXJyYXkoRGF0dW0sIG51bV9wYXJhbXMpOworCQkJZm9yIChpbnQgaSA9 IDA7IGkgPCBudW1fcGFyYW1zOyBpKyspCisJCQkJdG1wX2FyeVtpXSA9IE9iamVjdElkR2V0 RGF0dW0ocHJlcF9zdG10LT5wbGFuc291cmNlLT5wYXJhbV9vcmlndGJsc1tpXSk7CisJCQl2 YWx1ZXNbNF0gPSBQb2ludGVyR2V0RGF0dW0oY29uc3RydWN0X2FycmF5X2J1aWx0aW4odG1w X2FyeSwgbnVtX3BhcmFtcywgUkVHQ0xBU1NPSUQpKTsKKworCQkJdG1wX2FyeSA9IHBhbGxv Y19hcnJheShEYXR1bSwgbnVtX3BhcmFtcyk7CisJCQlmb3IgKGludCBpID0gMDsgaSA8IG51 bV9wYXJhbXM7IGkrKykKKwkJCQl0bXBfYXJ5W2ldID0gSW50MTZHZXREYXR1bShwcmVwX3N0 bXQtPnBsYW5zb3VyY2UtPnBhcmFtX29yaWdjb2xzW2ldKTsKKwkJCXZhbHVlc1s1XSA9IFBv aW50ZXJHZXREYXR1bShjb25zdHJ1Y3RfYXJyYXlfYnVpbHRpbih0bXBfYXJ5LCBudW1fcGFy YW1zLCBJTlQyT0lEKSk7CisKIAkJCWlmIChyZXN1bHRfZGVzYykKIAkJCXsKLQkJCQlPaWQJ CSAgICpyZXN1bHRfdHlwZXM7Ci0KLQkJCQlyZXN1bHRfdHlwZXMgPSBwYWxsb2NfYXJyYXko T2lkLCByZXN1bHRfZGVzYy0+bmF0dHMpOworCQkJCXRtcF9hcnkgPSBwYWxsb2NfYXJyYXko RGF0dW0sIHJlc3VsdF9kZXNjLT5uYXR0cyk7CiAJCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBy ZXN1bHRfZGVzYy0+bmF0dHM7IGkrKykKLQkJCQkJcmVzdWx0X3R5cGVzW2ldID0gcmVzdWx0 X2Rlc2MtPmF0dHJzW2ldLmF0dHR5cGlkOwotCQkJCXZhbHVlc1s0XSA9IGJ1aWxkX3JlZ3R5 cGVfYXJyYXkocmVzdWx0X3R5cGVzLCByZXN1bHRfZGVzYy0+bmF0dHMpOworCQkJCQl0bXBf YXJ5W2ldID0gT2JqZWN0SWRHZXREYXR1bShyZXN1bHRfZGVzYy0+YXR0cnNbaV0uYXR0dHlw aWQpOworCQkJCXZhbHVlc1s2XSA9IFBvaW50ZXJHZXREYXR1bShjb25zdHJ1Y3RfYXJyYXlf YnVpbHRpbih0bXBfYXJ5LCByZXN1bHRfZGVzYy0+bmF0dHMsIFJFR1RZUEVPSUQpKTsKIAkJ CX0KIAkJCWVsc2UKIAkJCXsKIAkJCQkvKiBubyByZXN1bHQgZGVzY3JpcHRvciAoZm9yIGV4 YW1wbGUsIERNTCBzdGF0ZW1lbnQpICovCi0JCQkJbnVsbHNbNF0gPSB0cnVlOworCQkJCW51 bGxzWzZdID0gdHJ1ZTsKIAkJCX0KLQkJCXZhbHVlc1s1XSA9IEJvb2xHZXREYXR1bShwcmVw X3N0bXQtPmZyb21fc3FsKTsKLQkJCXZhbHVlc1s2XSA9IEludDY0R2V0RGF0dW1GYXN0KHBy ZXBfc3RtdC0+cGxhbnNvdXJjZS0+bnVtX2dlbmVyaWNfcGxhbnMpOwotCQkJdmFsdWVzWzdd ID0gSW50NjRHZXREYXR1bUZhc3QocHJlcF9zdG10LT5wbGFuc291cmNlLT5udW1fY3VzdG9t X3BsYW5zKTsKKworCQkJdmFsdWVzWzddID0gQm9vbEdldERhdHVtKHByZXBfc3RtdC0+ZnJv bV9zcWwpOworCQkJdmFsdWVzWzhdID0gSW50NjRHZXREYXR1bUZhc3QocHJlcF9zdG10LT5w bGFuc291cmNlLT5udW1fZ2VuZXJpY19wbGFucyk7CisJCQl2YWx1ZXNbOV0gPSBJbnQ2NEdl dERhdHVtRmFzdChwcmVwX3N0bXQtPnBsYW5zb3VyY2UtPm51bV9jdXN0b21fcGxhbnMpOwog CiAJCQl0dXBsZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNldFJlc3VsdCwgcnNpbmZvLT5z ZXREZXNjLAogCQkJCQkJCQkgdmFsdWVzLCBudWxscyk7CkBAIC03MTksMjQgKzc0MiwzIEBA IHBnX3ByZXBhcmVkX3N0YXRlbWVudChQR19GVU5DVElPTl9BUkdTKQogCiAJcmV0dXJuIChE YXR1bSkgMDsKIH0KLQotLyoKLSAqIFRoaXMgdXRpbGl0eSBmdW5jdGlvbiB0YWtlcyBhIEMg YXJyYXkgb2YgT2lkcywgYW5kIHJldHVybnMgYSBEYXR1bQotICogcG9pbnRpbmcgdG8gYSBv bmUtZGltZW5zaW9uYWwgUG9zdGdyZXMgYXJyYXkgb2YgcmVndHlwZXMuIEFuIGVtcHR5Ci0g KiBhcnJheSBpcyByZXR1cm5lZCBhcyBhIHplcm8tZWxlbWVudCBhcnJheSwgbm90IE5VTEwu Ci0gKi8KLXN0YXRpYyBEYXR1bQotYnVpbGRfcmVndHlwZV9hcnJheShPaWQgKnBhcmFtX3R5 cGVzLCBpbnQgbnVtX3BhcmFtcykKLXsKLQlEYXR1bQkgICAqdG1wX2FyeTsKLQlBcnJheVR5 cGUgICpyZXN1bHQ7Ci0JaW50CQkJaTsKLQotCXRtcF9hcnkgPSBwYWxsb2NfYXJyYXkoRGF0 dW0sIG51bV9wYXJhbXMpOwotCi0JZm9yIChpID0gMDsgaSA8IG51bV9wYXJhbXM7IGkrKykK LQkJdG1wX2FyeVtpXSA9IE9iamVjdElkR2V0RGF0dW0ocGFyYW1fdHlwZXNbaV0pOwotCi0J cmVzdWx0ID0gY29uc3RydWN0X2FycmF5X2J1aWx0aW4odG1wX2FyeSwgbnVtX3BhcmFtcywg UkVHVFlQRU9JRCk7Ci0JcmV0dXJuIFBvaW50ZXJHZXREYXR1bShyZXN1bHQpOwotfQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3NlY2xhYmVsLmMKaW5kZXggN2FlMTliOThiYjlhLi4wN2FkNjQ2YTUyMGMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwpAQCAtNjYsNiArNjYsOSBAQCBTZWNMYWJl bFN1cHBvcnRzT2JqZWN0VHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNU X0FNUFJPQzoKIAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQljYXNlIE9CSkVDVF9DQVNU OgorCQljYXNlIE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NFS0RBVEE6CisJCWNhc2Ug T0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9CSkVDVF9D T05WRVJTSU9OOgogCQljYXNlIE9CSkVDVF9ERUZBVUxUOgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYwppbmRleCAyMDEzNWVmMWIwMDkuLmEzMGQ3ODcyZjQ4ZSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvdGFibGVjbWRzLmMKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJjYXRhbG9n L3BhcnRpdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYW0uaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX2F0dHJkZWYuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19jb25zdHJhaW50LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kZXBlbmQuaCIKQEAg LTYzNiw2ICs2MzcsNyBAQCBzdGF0aWMgTGlzdCAqR2V0UGFyZW50ZWRGb3JlaWduS2V5UmVm cyhSZWxhdGlvbiBwYXJ0aXRpb24pOwogc3RhdGljIHZvaWQgQVREZXRhY2hDaGVja05vRm9y ZWlnbktleVJlZnMoUmVsYXRpb24gcGFydGl0aW9uKTsKIHN0YXRpYyBjaGFyIEdldEF0dHJp YnV0ZUNvbXByZXNzaW9uKE9pZCBhdHR0eXBpZCwgY2hhciAqY29tcHJlc3Npb24pOwogc3Rh dGljIGNoYXIgR2V0QXR0cmlidXRlU3RvcmFnZShPaWQgYXR0dHlwaWQsIGNvbnN0IGNoYXIg KnN0b3JhZ2Vtb2RlKTsKK3N0YXRpYyB2b2lkIEdldENvbHVtbkVuY3J5cHRpb24oY29uc3Qg TGlzdCAqY29sZGVmZW5jcnlwdGlvbiwgRm9ybV9wZ19hdHRyaWJ1dGUgYXR0cik7CiAKIAog LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpAQCAtOTM1LDYgKzkzNyw5IEBAIERlZmluZVJlbGF0aW9uKENyZWF0 ZVN0bXQgKnN0bXQsIGNoYXIgcmVsa2luZCwgT2lkIG93bmVySWQsCiAJCQlhdHRyLT5hdHRj b21wcmVzc2lvbiA9IEdldEF0dHJpYnV0ZUNvbXByZXNzaW9uKGF0dHItPmF0dHR5cGlkLAog CQkJCQkJCQkJCQkJCQkgICBjb2xEZWYtPmNvbXByZXNzaW9uKTsKIAorCQlpZiAoY29sRGVm LT5lbmNyeXB0aW9uKQorCQkJR2V0Q29sdW1uRW5jcnlwdGlvbihjb2xEZWYtPmVuY3J5cHRp b24sIGF0dHIpOworCiAJCWlmIChjb2xEZWYtPnN0b3JhZ2VfbmFtZSkKIAkJCWF0dHItPmF0 dHN0b3JhZ2UgPSBHZXRBdHRyaWJ1dGVTdG9yYWdlKGF0dHItPmF0dHR5cGlkLCBjb2xEZWYt PnN0b3JhZ2VfbmFtZSk7CiAJfQpAQCAtNjg3MCw2ICs2ODc1LDE0IEBAIEFURXhlY0FkZENv bHVtbihMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJl bCwKIAlhdHRyaWJ1dGUuYXR0aXNsb2NhbCA9IGNvbERlZi0+aXNfbG9jYWw7CiAJYXR0cmli dXRlLmF0dGluaGNvdW50ID0gY29sRGVmLT5pbmhjb3VudDsKIAlhdHRyaWJ1dGUuYXR0Y29s bGF0aW9uID0gY29sbE9pZDsKKwlpZiAoY29sRGVmLT5lbmNyeXB0aW9uKQorCQlHZXRDb2x1 bW5FbmNyeXB0aW9uKGNvbERlZi0+ZW5jcnlwdGlvbiwgJmF0dHJpYnV0ZSk7CisJZWxzZQor CXsKKwkJYXR0cmlidXRlLmF0dGNlayA9IDA7CisJCWF0dHJpYnV0ZS5hdHRyZWFsdHlwaWQg PSAwOworCQlhdHRyaWJ1dGUuYXR0ZW5jYWxnID0gMDsKKwl9CiAKIAlSZWxlYXNlU3lzQ2Fj aGUodHlwZVR1cGxlKTsKIApAQCAtMTI2NzcsNiArMTI2OTAsOSBAQCBBVEV4ZWNBbHRlckNv bHVtblR5cGUoQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJCQljYXNl IE9DTEFTU19UWVBFOgogCQkJY2FzZSBPQ0xBU1NfQ0FTVDoKIAkJCWNhc2UgT0NMQVNTX0NP TExBVElPTjoKKwkJCWNhc2UgT0NMQVNTX0NFSzoKKwkJCWNhc2UgT0NMQVNTX0NFS0RBVEE6 CisJCQljYXNlIE9DTEFTU19DTUs6CiAJCQljYXNlIE9DTEFTU19DT05WRVJTSU9OOgogCQkJ Y2FzZSBPQ0xBU1NfTEFOR1VBR0U6CiAJCQljYXNlIE9DTEFTU19MQVJHRU9CSkVDVDoKQEAg LTE5MzEyLDMgKzE5MzI4LDgzIEBAIEdldEF0dHJpYnV0ZVN0b3JhZ2UoT2lkIGF0dHR5cGlk LCBjb25zdCBjaGFyICpzdG9yYWdlbW9kZSkKIAogCXJldHVybiBjc3RvcmFnZTsKIH0KKwor LyoKKyAqIHJlc29sdmUgY29sdW1uIGVuY3J5cHRpb24gc3BlY2lmaWNhdGlvbgorICovCitz dGF0aWMgdm9pZAorR2V0Q29sdW1uRW5jcnlwdGlvbihjb25zdCBMaXN0ICpjb2xkZWZlbmNy eXB0aW9uLCBGb3JtX3BnX2F0dHJpYnV0ZSBhdHRyKQoreworCUxpc3RDZWxsICAgKmxjOwor CWNoYXIJICAgKmNlayA9IE5VTEw7CisJT2lkCQkJY2Vrb2lkOworCWJvb2wJCWVuY2RldCA9 IGZhbHNlOworCWludAkJCWFsZyA9IFBHX0NFS19BRUFEX0FFU18xMjhfQ0JDX0hNQUNfU0hB XzI1NjsKKworCWZvcmVhY2gobGMsIGNvbGRlZmVuY3J5cHRpb24pCisJeworCQlEZWZFbGVt ICAgICplbCA9IGxmaXJzdF9ub2RlKERlZkVsZW0sIGxjKTsKKworCQlpZiAoc3RyY21wKGVs LT5kZWZuYW1lLCAiY29sdW1uX2VuY3J5cHRpb25fa2V5IikgPT0gMCkKKwkJCWNlayA9IHN0 clZhbChsaW5pdGlhbChjYXN0Tm9kZShUeXBlTmFtZSwgZWwtPmFyZyktPm5hbWVzKSk7CisJ CWVsc2UgaWYgKHN0cmNtcChlbC0+ZGVmbmFtZSwgImVuY3J5cHRpb25fdHlwZSIpID09IDAp CisJCXsKKwkJCWNoYXIJICAgKnZhbCA9IHN0clZhbChsaW5pdGlhbChjYXN0Tm9kZShUeXBl TmFtZSwgZWwtPmFyZyktPm5hbWVzKSk7CisKKwkJCWlmIChzdHJjbXAodmFsLCAiZGV0ZXJt aW5pc3RpYyIpID09IDApCisJCQkJZW5jZGV0ID0gdHJ1ZTsKKwkJCWVsc2UgaWYgKHN0cmNt cCh2YWwsICJyYW5kb21pemVkIikgPT0gMCkKKwkJCQllbmNkZXQgPSBmYWxzZTsKKwkJCWVs c2UKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURf UEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJCWVycm1zZygidW5yZWNvZ25pemVkIGVuY3J5cHRp b24gdHlwZTogJXMiLCB2YWwpKTsKKwkJfQorCQllbHNlIGlmIChzdHJjbXAoZWwtPmRlZm5h bWUsICJhbGdvcml0aG0iKSA9PSAwKQorCQl7CisJCQljaGFyCSAgICp2YWwgPSBzdHJWYWwo ZWwtPmFyZyk7CisKKwkJCWlmIChzdHJjbXAodmFsLCAiQUVBRF9BRVNfMTI4X0NCQ19ITUFD X1NIQV8yNTYiKSA9PSAwKQorCQkJCWFsZyA9IFBHX0NFS19BRUFEX0FFU18xMjhfQ0JDX0hN QUNfU0hBXzI1NjsKKwkJCWVsc2UgaWYgKHN0cmNtcCh2YWwsICJBRUFEX0FFU18xOTJfQ0JD X0hNQUNfU0hBXzM4NCIpID09IDApCisJCQkJYWxnID0gUEdfQ0VLX0FFQURfQUVTXzE5Ml9D QkNfSE1BQ19TSEFfMzg0OworCQkJZWxzZSBpZiAoc3RyY21wKHZhbCwgIkFFQURfQUVTXzI1 Nl9DQkNfSE1BQ19TSEFfMzg0IikgPT0gMCkKKwkJCQlhbGcgPSBQR19DRUtfQUVBRF9BRVNf MjU2X0NCQ19ITUFDX1NIQV8zODQ7CisJCQllbHNlIGlmIChzdHJjbXAodmFsLCAiQUVBRF9B RVNfMjU2X0NCQ19ITUFDX1NIQV81MTIiKSA9PSAwKQorCQkJCWFsZyA9IFBHX0NFS19BRUFE X0FFU18yNTZfQ0JDX0hNQUNfU0hBXzUxMjsKKwkJCWVsc2UKKwkJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJ CQkJCWVycm1zZygidW5yZWNvZ25pemVkIGVuY3J5cHRpb24gYWxnb3JpdGhtOiAlcyIsIHZh bCkpOworCQl9CisJCWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJS Q09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCWVycm1zZygidW5yZWNvZ25p emVkIGNvbHVtbiBlbmNyeXB0aW9uIHBhcmFtZXRlcjogJXMiLCBlbC0+ZGVmbmFtZSkpOwor CX0KKworCWlmICghY2VrKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09E RV9JTlZBTElEX0NPTFVNTl9ERUZJTklUSU9OKSwKKwkJCQllcnJtc2coImNvbHVtbiBlbmNy eXB0aW9uIGtleSBtdXN0IGJlIHNwZWNpZmllZCIpKTsKKworCWNla29pZCA9IEdldFN5c0Nh Y2hlT2lkMShDRUtOQU1FLCBBbnVtX3BnX2NvbGVuY2tleV9vaWQsIFBvaW50ZXJHZXREYXR1 bShjZWspKTsKKwlpZiAoIWNla29pZCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2Rl KEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJZXJybXNnKCJjb2x1bW4gZW5jcnlw dGlvbiBrZXkgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY2VrKSk7CisKKwlhdHRyLT5hdHRj ZWsgPSBjZWtvaWQ7CisJYXR0ci0+YXR0cmVhbHR5cGlkID0gYXR0ci0+YXR0dHlwaWQ7CisJ YXR0ci0+YXR0ZW5jYWxnID0gYWxnOworCisJLyogb3ZlcnJpZGUgcGh5c2ljYWwgdHlwZSAq LworCWlmIChlbmNkZXQpCisJCWF0dHItPmF0dHR5cGlkID0gUEdfRU5DUllQVEVEX0RFVE9J RDsKKwllbHNlCisJCWF0dHItPmF0dHR5cGlkID0gUEdfRU5DUllQVEVEX1JORE9JRDsKKwln ZXRfdHlwbGVuYnl2YWxhbGlnbihhdHRyLT5hdHR0eXBpZCwKKwkJCQkJCSAmYXR0ci0+YXR0 bGVuLCAmYXR0ci0+YXR0Ynl2YWwsICZhdHRyLT5hdHRhbGlnbik7CisJYXR0ci0+YXR0c3Rv cmFnZSA9IGdldF90eXBzdG9yYWdlKGF0dHItPmF0dHR5cGlkKTsKKwlhdHRyLT5hdHRjb2xs YXRpb24gPSBJbnZhbGlkT2lkOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhcmlhYmxlLmMKaW5kZXgg ZTU1NWZiMzE1MDE5Li40NmJlNGQxMDZjNTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFyaWFibGUu YwpAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy94bG9ncHJlZmV0Y2hlci5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY29tbW9uL3N0 cmluZy5oIgorI2luY2x1ZGUgImxpYnBxL2xpYnBxLWJlLmgiCiAjaW5jbHVkZSAibWIvcGdf d2NoYXIuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJwb3N0bWFzdGVy L3Bvc3RtYXN0ZXIuaCIKQEAgLTcwNiw3ICs3MDcsMTEgQEAgY2hlY2tfY2xpZW50X2VuY29k aW5nKGNoYXIgKipuZXd2YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSkKIAkg Ki8KIAlpZiAoUHJlcGFyZUNsaWVudEVuY29kaW5nKGVuY29kaW5nKSA8IDApCiAJewotCQlp ZiAoSXNUcmFuc2FjdGlvblN0YXRlKCkpCisJCWlmIChNeVByb2NQb3J0LT5jb2x1bW5fZW5j cnlwdGlvbl9lbmFibGVkKQorCQkJR1VDX2NoZWNrX2VycmRldGFpbCgiQ29udmVyc2lvbiBi ZXR3ZWVuICVzIGFuZCAlcyBpcyBub3QgcG9zc2libGUgd2hlbiBjb2x1bW4gZW5jcnlwdGlv biBpcyBlbmFibGVkLiIsCisJCQkJCQkJCWNhbm9uaWNhbF9uYW1lLAorCQkJCQkJCQlHZXRE YXRhYmFzZUVuY29kaW5nTmFtZSgpKTsKKwkJZWxzZSBpZiAoSXNUcmFuc2FjdGlvblN0YXRl KCkpCiAJCXsKIAkJCS8qIE11c3QgYmUgYSBnZW51aW5lIG5vLXN1Y2gtY29udmVyc2lvbiBw cm9ibGVtICovCiAJCQlHVUNfY2hlY2tfZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NV UFBPUlRFRCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCmluZGV4IGZkNTc5NmYxYjllMS4uOGE3NzYwNTk0 NTA5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYworKysgYi9zcmMv YmFja2VuZC9leGVjdXRvci9zcGkuYwpAQCAtMjI3OSw2ICsyMjc5LDggQEAgX1NQSV9wcmVw YXJlX3BsYW4oY29uc3QgY2hhciAqc3JjLCBTUElQbGFuUHRyIHBsYW4pCiAJCQkJCQkgICBO VUxMLAogCQkJCQkJICAgcGxhbi0+YXJndHlwZXMsCiAJCQkJCQkgICBwbGFuLT5uYXJncywK KwkJCQkJCSAgIE5VTEwsCisJCQkJCQkgICBOVUxMLAogCQkJCQkJICAgcGxhbi0+cGFyc2Vy U2V0dXAsCiAJCQkJCQkgICBwbGFuLT5wYXJzZXJTZXR1cEFyZywKIAkJCQkJCSAgIHBsYW4t PmN1cnNvcl9vcHRpb25zLApAQCAtMjUxNiw2ICsyNTE4LDggQEAgX1NQSV9leGVjdXRlX3Bs YW4oU1BJUGxhblB0ciBwbGFuLCBjb25zdCBTUElFeGVjdXRlT3B0aW9ucyAqb3B0aW9ucywK IAkJCQkJCQkgICBOVUxMLAogCQkJCQkJCSAgIHBsYW4tPmFyZ3R5cGVzLAogCQkJCQkJCSAg IHBsYW4tPm5hcmdzLAorCQkJCQkJCSAgIE5VTEwsCisJCQkJCQkJICAgTlVMTCwKIAkJCQkJ CQkgICBwbGFuLT5wYXJzZXJTZXR1cCwKIAkJCQkJCQkgICBwbGFuLT5wYXJzZXJTZXR1cEFy ZywKIAkJCQkJCQkgICBwbGFuLT5jdXJzb3Jfb3B0aW9ucywKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL25vZGVzL25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNz LmMKaW5kZXggMGE3YjIyZjk3ZTdiLi5hNTQ5Yjk4NWQzNjUgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVG dW5jcy5jCkBAIC00MDA2LDYgKzQwMDYsOCBAQCByYXdfZXhwcmVzc2lvbl90cmVlX3dhbGtl cl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVlOwogCQkJCWlmIChXQUxLKGNv bGRlZi0+Y29tcHJlc3Npb24pKQogCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhj b2xkZWYtPmVuY3J5cHRpb24pKQorCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCQlpZiAoV0FMSyhj b2xkZWYtPnJhd19kZWZhdWx0KSkKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQkJaWYgKFdBTEso Y29sZGVmLT5jb2xsQ2xhdXNlKSkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9h bmFseXplLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IDY2ODhjMmE4 NjViOC4uY2U5YjdhNWY1ZjM4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTE0NSw2ICsx NDUsNyBAQCBwYXJzZV9hbmFseXplX2ZpeGVkcGFyYW1zKFJhd1N0bXQgKnBhcnNlVHJlZSwg Y29uc3QgY2hhciAqc291cmNlVGV4dCwKIFF1ZXJ5ICoKIHBhcnNlX2FuYWx5emVfdmFycGFy YW1zKFJhd1N0bXQgKnBhcnNlVHJlZSwgY29uc3QgY2hhciAqc291cmNlVGV4dCwKIAkJCQkJ CU9pZCAqKnBhcmFtVHlwZXMsIGludCAqbnVtUGFyYW1zLAorCQkJCQkJT2lkICoqcGFyYW1P cmlnVGJscywgQXR0ck51bWJlciAqKnBhcmFtT3JpZ0NvbHMsCiAJCQkJCQlRdWVyeUVudmly b25tZW50ICpxdWVyeUVudikKIHsKIAlQYXJzZVN0YXRlICpwc3RhdGUgPSBtYWtlX3BhcnNl c3RhdGUoTlVMTCk7CkBAIC0xNTUsNyArMTU2LDcgQEAgcGFyc2VfYW5hbHl6ZV92YXJwYXJh bXMoUmF3U3RtdCAqcGFyc2VUcmVlLCBjb25zdCBjaGFyICpzb3VyY2VUZXh0LAogCiAJcHN0 YXRlLT5wX3NvdXJjZXRleHQgPSBzb3VyY2VUZXh0OwogCi0Jc2V0dXBfcGFyc2VfdmFyaWFi bGVfcGFyYW1ldGVycyhwc3RhdGUsIHBhcmFtVHlwZXMsIG51bVBhcmFtcyk7CisJc2V0dXBf cGFyc2VfdmFyaWFibGVfcGFyYW1ldGVycyhwc3RhdGUsIHBhcmFtVHlwZXMsIG51bVBhcmFt cywgcGFyYW1PcmlnVGJscywgcGFyYW1PcmlnQ29scyk7CiAKIAlwc3RhdGUtPnBfcXVlcnlF bnYgPSBxdWVyeUVudjsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggOTRkNTE0MmE0YTA2Li42NGI5 N2YyYTc2YmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjgwLDcgKzI4MCw3IEBAIHN0YXRpYyBO b2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlh c2VzLCBOb2RlICpxdWVyeSk7CiB9CiAKICV0eXBlIDxub2RlPglzdG10IHRvcGxldmVsX3N0 bXQgc2NoZW1hX3N0bXQgcm91dGluZV9ib2R5X3N0bXQKLQkJQWx0ZXJFdmVudFRyaWdTdG10 IEFsdGVyQ29sbGF0aW9uU3RtdAorCQlBbHRlckV2ZW50VHJpZ1N0bXQgQWx0ZXJDb2xsYXRp b25TdG10IEFsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQKIAkJQWx0ZXJEYXRhYmFzZVN0 bXQgQWx0ZXJEYXRhYmFzZVNldFN0bXQgQWx0ZXJEb21haW5TdG10IEFsdGVyRW51bVN0bXQK IAkJQWx0ZXJGZHdTdG10IEFsdGVyRm9yZWlnblNlcnZlclN0bXQgQWx0ZXJHcm91cFN0bXQK IAkJQWx0ZXJPYmplY3REZXBlbmRzU3RtdCBBbHRlck9iamVjdFNjaGVtYVN0bXQgQWx0ZXJP d25lclN0bXQKQEAgLTQyMCw2ICs0MjAsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkp OwogCiAldHlwZSA8bGlzdD4JcGFyc2VfdG9wbGV2ZWwgc3RtdG11bHRpIHJvdXRpbmVfYm9k eV9zdG10X2xpc3QKIAkJCQlPcHRUYWJsZUVsZW1lbnRMaXN0IFRhYmxlRWxlbWVudExpc3Qg T3B0SW5oZXJpdCBkZWZpbml0aW9uCisJCQkJbGlzdF9vZl9kZWZpbml0aW9ucwogCQkJCU9w dFR5cGVkVGFibGVFbGVtZW50TGlzdCBUeXBlZFRhYmxlRWxlbWVudExpc3QKIAkJCQlyZWxv cHRpb25zIG9wdF9yZWxvcHRpb25zCiAJCQkJT3B0V2l0aCBvcHRfZGVmaW5pdGlvbiBmdW5j X2FyZ3MgZnVuY19hcmdzX2xpc3QKQEAgLTU5Myw2ICs1OTQsNyBAQCBzdGF0aWMgTm9kZSAq bWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywg Tm9kZSAqcXVlcnkpOwogJXR5cGUgPG5vZGU+CVRhYmxlQ29uc3RyYWludCBUYWJsZUxpa2VD bGF1c2UKICV0eXBlIDxpdmFsPglUYWJsZUxpa2VPcHRpb25MaXN0IFRhYmxlTGlrZU9wdGlv bgogJXR5cGUgPHN0cj4JCWNvbHVtbl9jb21wcmVzc2lvbiBvcHRfY29sdW1uX2NvbXByZXNz aW9uIGNvbHVtbl9zdG9yYWdlIG9wdF9jb2x1bW5fc3RvcmFnZQorJXR5cGUgPGxpc3Q+CW9w dF9jb2x1bW5fZW5jcnlwdGlvbgogJXR5cGUgPGxpc3Q+CUNvbFF1YWxMaXN0CiAldHlwZSA8 bm9kZT4JQ29sQ29uc3RyYWludCBDb2xDb25zdHJhaW50RWxlbSBDb25zdHJhaW50QXR0cgog JXR5cGUgPGl2YWw+CWtleV9tYXRjaApAQCAtNjkxLDggKzY5Myw4IEBAIHN0YXRpYyBOb2Rl ICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2Vz LCBOb2RlICpxdWVyeSk7CiAJREVUQUNIIERJQ1RJT05BUlkgRElTQUJMRV9QIERJU0NBUkQg RElTVElOQ1QgRE8gRE9DVU1FTlRfUCBET01BSU5fUAogCURPVUJMRV9QIERST1AKIAotCUVB Q0ggRUxTRSBFTkFCTEVfUCBFTkNPRElORyBFTkNSWVBURUQgRU5EX1AgRU5VTV9QIEVTQ0FQ RSBFVkVOVCBFWENFUFQKLQlFWENMVURFIEVYQ0xVRElORyBFWENMVVNJVkUgRVhFQ1VURSBF WElTVFMgRVhQTEFJTiBFWFBSRVNTSU9OCisJRUFDSCBFTFNFIEVOQUJMRV9QIEVOQ09ESU5H IEVOQ1JZUFRJT04gRU5DUllQVEVEIEVORF9QIEVOVU1fUCBFU0NBUEUKKwlFVkVOVCBFWENF UFQgRVhDTFVERSBFWENMVURJTkcgRVhDTFVTSVZFIEVYRUNVVEUgRVhJU1RTIEVYUExBSU4g RVhQUkVTU0lPTgogCUVYVEVOU0lPTiBFWFRFUk5BTCBFWFRSQUNUCiAKIAlGQUxTRV9QIEZB TUlMWSBGRVRDSCBGSUxURVIgRklOQUxJWkUgRklSU1RfUCBGTE9BVF9QIEZPTExPV0lORyBG T1IKQEAgLTcxNSw3ICs3MTcsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdT ZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCUxF QURJTkcgTEVBS1BST09GIExFQVNUIExFRlQgTEVWRUwgTElLRSBMSU1JVCBMSVNURU4gTE9B RCBMT0NBTAogCUxPQ0FMVElNRSBMT0NBTFRJTUVTVEFNUCBMT0NBVElPTiBMT0NLX1AgTE9D S0VEIExPR0dFRAogCi0JTUFQUElORyBNQVRDSCBNQVRDSEVEIE1BVEVSSUFMSVpFRCBNQVhW QUxVRSBNRVJHRSBNRVRIT0QKKwlNQVBQSU5HIE1BU1RFUiBNQVRDSCBNQVRDSEVEIE1BVEVS SUFMSVpFRCBNQVhWQUxVRSBNRVJHRSBNRVRIT0QKIAlNSU5VVEVfUCBNSU5WQUxVRSBNT0RF IE1PTlRIX1AgTU9WRQogCiAJTkFNRV9QIE5BTUVTIE5BVElPTkFMIE5BVFVSQUwgTkNIQVIg TkVXIE5FWFQgTkZDIE5GRCBORktDIE5GS0QgTk8gTk9ORQpAQCAtOTQzLDYgKzk0NSw3IEBA IHRvcGxldmVsX3N0bXQ6CiBzdG10OgogCQkJQWx0ZXJFdmVudFRyaWdTdG10CiAJCQl8IEFs dGVyQ29sbGF0aW9uU3RtdAorCQkJfCBBbHRlckNvbHVtbkVuY3J5cHRpb25LZXlTdG10CiAJ CQl8IEFsdGVyRGF0YWJhc2VTdG10CiAJCQl8IEFsdGVyRGF0YWJhc2VTZXRTdG10CiAJCQl8 IEFsdGVyRGVmYXVsdFByaXZpbGVnZXNTdG10CkBAIC0zNjgxLDE0ICszNjg0LDE1IEBAIFR5 cGVkVGFibGVFbGVtZW50OgogCQkJfCBUYWJsZUNvbnN0cmFpbnQJCQkJCXsgJCQgPSAkMTsg fQogCQk7CiAKLWNvbHVtbkRlZjoJQ29sSWQgVHlwZW5hbWUgb3B0X2NvbHVtbl9zdG9yYWdl IG9wdF9jb2x1bW5fY29tcHJlc3Npb24gY3JlYXRlX2dlbmVyaWNfb3B0aW9ucyBDb2xRdWFs TGlzdAorY29sdW1uRGVmOglDb2xJZCBUeXBlbmFtZSBvcHRfY29sdW1uX2VuY3J5cHRpb24g b3B0X2NvbHVtbl9zdG9yYWdlIG9wdF9jb2x1bW5fY29tcHJlc3Npb24gY3JlYXRlX2dlbmVy aWNfb3B0aW9ucyBDb2xRdWFsTGlzdAogCQkJCXsKIAkJCQkJQ29sdW1uRGVmICpuID0gbWFr ZU5vZGUoQ29sdW1uRGVmKTsKIAogCQkJCQluLT5jb2xuYW1lID0gJDE7CiAJCQkJCW4tPnR5 cGVOYW1lID0gJDI7Ci0JCQkJCW4tPnN0b3JhZ2VfbmFtZSA9ICQzOwotCQkJCQluLT5jb21w cmVzc2lvbiA9ICQ0OworCQkJCQluLT5lbmNyeXB0aW9uID0gJDM7CisJCQkJCW4tPnN0b3Jh Z2VfbmFtZSA9ICQ0OworCQkJCQluLT5jb21wcmVzc2lvbiA9ICQ1OwogCQkJCQluLT5pbmhj b3VudCA9IDA7CiAJCQkJCW4tPmlzX2xvY2FsID0gdHJ1ZTsKIAkJCQkJbi0+aXNfbm90X251 bGwgPSBmYWxzZTsKQEAgLTM2OTcsOCArMzcwMSw4IEBAIGNvbHVtbkRlZjoJQ29sSWQgVHlw ZW5hbWUgb3B0X2NvbHVtbl9zdG9yYWdlIG9wdF9jb2x1bW5fY29tcHJlc3Npb24gY3JlYXRl X2dlbmVyCiAJCQkJCW4tPnJhd19kZWZhdWx0ID0gTlVMTDsKIAkJCQkJbi0+Y29va2VkX2Rl ZmF1bHQgPSBOVUxMOwogCQkJCQluLT5jb2xsT2lkID0gSW52YWxpZE9pZDsKLQkJCQkJbi0+ ZmR3b3B0aW9ucyA9ICQ1OwotCQkJCQlTcGxpdENvbFF1YWxMaXN0KCQ2LCAmbi0+Y29uc3Ry YWludHMsICZuLT5jb2xsQ2xhdXNlLAorCQkJCQluLT5mZHdvcHRpb25zID0gJDY7CisJCQkJ CVNwbGl0Q29sUXVhbExpc3QoJDcsICZuLT5jb25zdHJhaW50cywgJm4tPmNvbGxDbGF1c2Us CiAJCQkJCQkJCQkgeXlzY2FubmVyKTsKIAkJCQkJbi0+bG9jYXRpb24gPSBAMTsKIAkJCQkJ JCQgPSAoTm9kZSAqKSBuOwpAQCAtMzc1NSw2ICszNzU5LDExIEBAIG9wdF9jb2x1bW5fY29t cHJlc3Npb246CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IE5VTEw7IH0KIAkJOwog CitvcHRfY29sdW1uX2VuY3J5cHRpb246CisJCQlFTkNSWVBURUQgV0lUSCAnKCcgZGVmX2xp c3QgJyknCQkJeyAkJCA9ICQ0OyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IE5V TEw7IH0KKwkJOworCiBjb2x1bW5fc3RvcmFnZToKIAkJCVNUT1JBR0UgQ29sSWQJCQkJCQkJ eyAkJCA9ICQyOyB9CiAJCTsKQEAgLTYyNTAsNiArNjI1OSwyNCBAQCBEZWZpbmVTdG10Ogog CQkJCQluLT5pZl9ub3RfZXhpc3RzID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwog CQkJCX0KKwkJCXwgQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBhbnlfbmFtZSBXSVRI IFZBTFVFUyBsaXN0X29mX2RlZmluaXRpb25zCisJCQkJeworCQkJCQlEZWZpbmVTdG10ICpu ID0gbWFrZU5vZGUoRGVmaW5lU3RtdCk7CisKKwkJCQkJbi0+a2luZCA9IE9CSkVDVF9DRUs7 CisJCQkJCW4tPmRlZm5hbWVzID0gJDU7CisJCQkJCW4tPmRlZmluaXRpb24gPSAkODsKKwkJ CQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQ1JFQVRFIENPTFVNTiBNQVNURVIg S0VZIGFueV9uYW1lIFdJVEggZGVmaW5pdGlvbgorCQkJCXsKKwkJCQkJRGVmaW5lU3RtdCAq biA9IG1ha2VOb2RlKERlZmluZVN0bXQpOworCisJCQkJCW4tPmtpbmQgPSBPQkpFQ1RfQ01L OworCQkJCQluLT5kZWZuYW1lcyA9ICQ1OworCQkJCQluLT5kZWZpbml0aW9uID0gJDc7CisJ CQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CiAJCTsKIAogZGVmaW5pdGlvbjogJygnIGRl Zl9saXN0ICcpJwkJCQkJCXsgJCQgPSAkMjsgfQpAQCAtNjI2OSw2ICs2Mjk2LDEwIEBAIGRl Zl9lbGVtOglDb2xMYWJlbCAnPScgZGVmX2FyZwogCQkJCX0KIAkJOwogCitsaXN0X29mX2Rl ZmluaXRpb25zOiBkZWZpbml0aW9uCQkJCQkJeyAkJCA9IGxpc3RfbWFrZTEoJDEpOyB9CisJ CQl8IGxpc3Rfb2ZfZGVmaW5pdGlvbnMgJywnIGRlZmluaXRpb24JeyAkJCA9IGxhcHBlbmQo JDEsICQzKTsgfQorCQk7CisKIC8qIE5vdGU6IGFueSBzaW1wbGUgaWRlbnRpZmllciB3aWxs IGJlIHJldHVybmVkIGFzIGEgdHlwZSBuYW1lISAqLwogZGVmX2FyZzoJZnVuY190eXBlCQkJ CQkJeyAkJCA9IChOb2RlICopICQxOyB9CiAJCQl8IHJlc2VydmVkX2tleXdvcmQJCQkJeyAk JCA9IChOb2RlICopIG1ha2VTdHJpbmcocHN0cmR1cCgkMSkpOyB9CkBAIC02ODA0LDYgKzY4 MzUsOCBAQCBvYmplY3RfdHlwZV9uYW1lOgogCiBkcm9wX3R5cGVfbmFtZToKIAkJCUFDQ0VT UyBNRVRIT0QJCQkJCQkJeyAkJCA9IE9CSkVDVF9BQ0NFU1NfTUVUSE9EOyB9CisJCQl8IENP TFVNTiBFTkNSWVBUSU9OIEtFWQkJCQkJeyAkJCA9IE9CSkVDVF9DRUs7IH0KKwkJCXwgQ09M VU1OIE1BU1RFUiBLRVkJCQkJCQl7ICQkID0gT0JKRUNUX0NNSzsgfQogCQkJfCBFVkVOVCBU UklHR0VSCQkJCQkJCXsgJCQgPSBPQkpFQ1RfRVZFTlRfVFJJR0dFUjsgfQogCQkJfCBFWFRF TlNJT04JCQkJCQkJCXsgJCQgPSBPQkpFQ1RfRVhURU5TSU9OOyB9CiAJCQl8IEZPUkVJR04g REFUQV9QIFdSQVBQRVIJCQkJeyAkJCA9IE9CSkVDVF9GRFc7IH0KQEAgLTkxMjAsNiArOTE1 MywyNiBAQCBSZW5hbWVTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJn dHlwZXMgUkVOQU1FIFRPIG5hbWUKIAkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwogCQkJ CQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBBTFRFUiBDT0xVTU4gRU5DUllQVElP TiBLRVkgbmFtZSBSRU5BTUUgVE8gbmFtZQorCQkJCXsKKwkJCQkJUmVuYW1lU3RtdCAqbiA9 IG1ha2VOb2RlKFJlbmFtZVN0bXQpOworCisJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1Rf Q0VLOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSBtYWtlU3RyaW5nKCQ1KTsKKwkJCQkJ bi0+bmV3bmFtZSA9ICQ4OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQk ID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IEFMVEVSIENPTFVNTiBNQVNURVIgS0VZIG5h bWUgUkVOQU1FIFRPIG5hbWUKKwkJCQl7CisJCQkJCVJlbmFtZVN0bXQgKm4gPSBtYWtlTm9k ZShSZW5hbWVTdG10KTsKKworCQkJCQluLT5yZW5hbWVUeXBlID0gT0JKRUNUX0NNSzsKKwkJ CQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgbWFrZVN0cmluZygkNSk7CisJCQkJCW4tPm5ld25h bWUgPSAkODsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkkJCA9IChOb2Rl ICopIG47CisJCQkJfQogCQkJfCBBTFRFUiBDT05WRVJTSU9OX1AgYW55X25hbWUgUkVOQU1F IFRPIG5hbWUKIAkJCQl7CiAJCQkJCVJlbmFtZVN0bXQgKm4gPSBtYWtlTm9kZShSZW5hbWVT dG10KTsKQEAgLTEwMTI4LDYgKzEwMTgxLDI0IEBAIEFsdGVyT3duZXJTdG10OiBBTFRFUiBB R0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlwZXMgT1dORVIgVE8gUm9sZVNwZWMKIAkJ CQkJbi0+bmV3b3duZXIgPSAkNjsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJ CXwgQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIG5hbWUgT1dORVIgVE8gUm9sZVNwZWMK KwkJCQl7CisJCQkJCUFsdGVyT3duZXJTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPd25lclN0 bXQpOworCisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfQ0VLOworCQkJCQluLT5vYmpl Y3QgPSAoTm9kZSAqKSBtYWtlU3RyaW5nKCQ1KTsKKwkJCQkJbi0+bmV3b3duZXIgPSAkODsK KwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQUxURVIgQ09MVU1OIE1BU1RF UiBLRVkgbmFtZSBPV05FUiBUTyBSb2xlU3BlYworCQkJCXsKKwkJCQkJQWx0ZXJPd25lclN0 bXQgKm4gPSBtYWtlTm9kZShBbHRlck93bmVyU3RtdCk7CisKKwkJCQkJbi0+b2JqZWN0VHlw ZSA9IE9CSkVDVF9DTUs7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopIG1ha2VTdHJpbmco JDUpOworCQkJCQluLT5uZXdvd25lciA9ICQ4OworCQkJCQkkJCA9IChOb2RlICopIG47CisJ CQkJfQogCQkJfCBBTFRFUiBDT05WRVJTSU9OX1AgYW55X25hbWUgT1dORVIgVE8gUm9sZVNw ZWMKIAkJCQl7CiAJCQkJCUFsdGVyT3duZXJTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPd25l clN0bXQpOwpAQCAtMTEyODQsNiArMTEzNTUsMzQgQEAgQWx0ZXJDb2xsYXRpb25TdG10OiBB TFRFUiBDT0xMQVRJT04gYW55X25hbWUgUkVGUkVTSCBWRVJTSU9OX1AKIAkJOwogCiAKKy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqCQlBTFRFUiBDT0xVTU4gRU5DUllQVElP TiBLRVkKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0FsdGVyQ29sdW1uRW5j cnlwdGlvbktleVN0bXQ6CisJCQlBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgbmFtZSBB RERfUCBWQUxVRV9QIGRlZmluaXRpb24KKwkJCQl7CisJCQkJCUFsdGVyQ29sdW1uRW5jcnlw dGlvbktleVN0bXQgKm4gPSBtYWtlTm9kZShBbHRlckNvbHVtbkVuY3J5cHRpb25LZXlTdG10 KTsKKworCQkJCQluLT5jZWtuYW1lID0gJDU7CisJCQkJCW4tPmlzRHJvcCA9IGZhbHNlOwor CQkJCQluLT5kZWZpbml0aW9uID0gJDg7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9 CisJCQl8IEFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBuYW1lIERST1AgVkFMVUVfUCBk ZWZpbml0aW9uCisJCQkJeworCQkJCQlBbHRlckNvbHVtbkVuY3J5cHRpb25LZXlTdG10ICpu ID0gbWFrZU5vZGUoQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdCk7CisKKwkJCQkJbi0+ Y2VrbmFtZSA9ICQ1OworCQkJCQluLT5pc0Ryb3AgPSB0cnVlOworCQkJCQluLT5kZWZpbml0 aW9uID0gJDg7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCTsKKworCiAvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKICAqCiAgKgkJQUxURVIgU1lTVEVNCkBAIC0xNjcyNiw2 ICsxNjgyNSw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgRU5BQkxFX1AKIAkJCXwg RU5DT0RJTkcKIAkJCXwgRU5DUllQVEVECisJCQl8IEVOQ1JZUFRJT04KIAkJCXwgRU5VTV9Q CiAJCQl8IEVTQ0FQRQogCQkJfCBFVkVOVApAQCAtMTY3ODksNiArMTY4ODksNyBAQCB1bnJl c2VydmVkX2tleXdvcmQ6CiAJCQl8IExPQ0tFRAogCQkJfCBMT0dHRUQKIAkJCXwgTUFQUElO RworCQkJfCBNQVNURVIKIAkJCXwgTUFUQ0gKIAkJCXwgTUFUQ0hFRAogCQkJfCBNQVRFUklB TElaRUQKQEAgLTE3MjcyLDYgKzE3MzczLDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJ fCBFTkFCTEVfUAogCQkJfCBFTkNPRElORwogCQkJfCBFTkNSWVBURUQKKwkJCXwgRU5DUllQ VElPTgogCQkJfCBFTkRfUAogCQkJfCBFTlVNX1AKIAkJCXwgRVNDQVBFCkBAIC0xNzM2MCw2 ICsxNzQ2Miw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgTE9DS0VECiAJCQl8IExP R0dFRAogCQkJfCBNQVBQSU5HCisJCQl8IE1BU1RFUgogCQkJfCBNQVRDSAogCQkJfCBNQVRD SEVECiAJCQl8IE1BVEVSSUFMSVpFRApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3BhcmFtLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcGFyYW0uYwppbmRl eCBmNjY4YWJmY2IzMzYuLmQwYmVjMGEwNmQxOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3BhcmFtLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Bh cmFtLmMKQEAgLTQ5LDYgKzQ5LDggQEAgdHlwZWRlZiBzdHJ1Y3QgVmFyUGFyYW1TdGF0ZQog ewogCU9pZAkJICAqKnBhcmFtVHlwZXM7CQkvKiBhcnJheSBvZiBwYXJhbWV0ZXIgdHlwZSBP SURzICovCiAJaW50CQkgICAqbnVtUGFyYW1zOwkJLyogbnVtYmVyIG9mIGFycmF5IGVudHJp ZXMgKi8KKwlPaWQJCSAgKipwYXJhbU9yaWdUYmxzOwkvKiB1bmRlcmx5aW5nIHRhYmxlcyAo MCBpZiBub25lKSAqLworCUF0dHJOdW1iZXIgKipwYXJhbU9yaWdDb2xzOyAvKiB1bmRlcmx5 aW5nIGNvbHVtbnMgKDAgaWYgbm9uZSkgKi8KIH0gVmFyUGFyYW1TdGF0ZTsKIAogc3RhdGlj IE5vZGUgKmZpeGVkX3BhcmFtcmVmX2hvb2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbVJl ZiAqcHJlZik7CkBAIC01Niw2ICs1OCw3IEBAIHN0YXRpYyBOb2RlICp2YXJpYWJsZV9wYXJh bXJlZl9ob29rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW1SZWYgKnByZWYpOwogc3RhdGlj IE5vZGUgKnZhcmlhYmxlX2NvZXJjZV9wYXJhbV9ob29rKFBhcnNlU3RhdGUgKnBzdGF0ZSwg UGFyYW0gKnBhcmFtLAogCQkJCQkJCQkJCU9pZCB0YXJnZXRUeXBlSWQsIGludDMyIHRhcmdl dFR5cGVNb2QsCiAJCQkJCQkJCQkJaW50IGxvY2F0aW9uKTsKK3N0YXRpYyB2b2lkIHZhcmlh YmxlX3BhcmFtX2Fzc2lnbl9vcmlnX2hvb2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbSAq cGFyYW0sIE9pZCBvcmlndGJsLCBBdHRyTnVtYmVyIG9yaWdjb2wpOwogc3RhdGljIGJvb2wg Y2hlY2tfcGFyYW1ldGVyX3Jlc29sdXRpb25fd2Fsa2VyKE5vZGUgKm5vZGUsIFBhcnNlU3Rh dGUgKnBzdGF0ZSk7CiBzdGF0aWMgYm9vbCBxdWVyeV9jb250YWluc19leHRlcm5fcGFyYW1z X3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KTsKIApAQCAtODEsMTUgKzg0LDE5 IEBAIHNldHVwX3BhcnNlX2ZpeGVkX3BhcmFtZXRlcnMoUGFyc2VTdGF0ZSAqcHN0YXRlLAog ICovCiB2b2lkCiBzZXR1cF9wYXJzZV92YXJpYWJsZV9wYXJhbWV0ZXJzKFBhcnNlU3RhdGUg KnBzdGF0ZSwKLQkJCQkJCQkJT2lkICoqcGFyYW1UeXBlcywgaW50ICpudW1QYXJhbXMpCisJ CQkJCQkJCU9pZCAqKnBhcmFtVHlwZXMsIGludCAqbnVtUGFyYW1zLAorCQkJCQkJCQlPaWQg KipwYXJhbU9yaWdUYmxzLCBBdHRyTnVtYmVyICoqcGFyYW1PcmlnQ29scykKIHsKIAlWYXJQ YXJhbVN0YXRlICpwYXJzdGF0ZSA9IHBhbGxvYyhzaXplb2YoVmFyUGFyYW1TdGF0ZSkpOwog CiAJcGFyc3RhdGUtPnBhcmFtVHlwZXMgPSBwYXJhbVR5cGVzOwogCXBhcnN0YXRlLT5udW1Q YXJhbXMgPSBudW1QYXJhbXM7CisJcGFyc3RhdGUtPnBhcmFtT3JpZ1RibHMgPSBwYXJhbU9y aWdUYmxzOworCXBhcnN0YXRlLT5wYXJhbU9yaWdDb2xzID0gcGFyYW1PcmlnQ29sczsKIAlw c3RhdGUtPnBfcmVmX2hvb2tfc3RhdGUgPSAodm9pZCAqKSBwYXJzdGF0ZTsKIAlwc3RhdGUt PnBfcGFyYW1yZWZfaG9vayA9IHZhcmlhYmxlX3BhcmFtcmVmX2hvb2s7CiAJcHN0YXRlLT5w X2NvZXJjZV9wYXJhbV9ob29rID0gdmFyaWFibGVfY29lcmNlX3BhcmFtX2hvb2s7CisJcHN0 YXRlLT5wX3BhcmFtX2Fzc2lnbl9vcmlnX2hvb2sgPSB2YXJpYWJsZV9wYXJhbV9hc3NpZ25f b3JpZ19ob29rOwogfQogCiAvKgpAQCAtMTQ1LDE0ICsxNTIsMzYgQEAgdmFyaWFibGVfcGFy YW1yZWZfaG9vayhQYXJzZVN0YXRlICpwc3RhdGUsIFBhcmFtUmVmICpwcmVmKQogCXsKIAkJ LyogTmVlZCB0byBlbmxhcmdlIHBhcmFtIGFycmF5ICovCiAJCWlmICgqcGFyc3RhdGUtPnBh cmFtVHlwZXMpCi0JCQkqcGFyc3RhdGUtPnBhcmFtVHlwZXMgPSAoT2lkICopIHJlcGFsbG9j KCpwYXJzdGF0ZS0+cGFyYW1UeXBlcywKLQkJCQkJCQkJCQkJCQkgcGFyYW1ubyAqIHNpemVv ZihPaWQpKTsKKwkJeworCQkJKnBhcnN0YXRlLT5wYXJhbVR5cGVzID0gcmVwYWxsb2NfYXJy YXkoKnBhcnN0YXRlLT5wYXJhbVR5cGVzLAorCQkJCQkJCQkJCQkJICAgT2lkLCBwYXJhbW5v KTsKKwkJCWlmIChwYXJzdGF0ZS0+cGFyYW1PcmlnVGJscykKKwkJCQkqcGFyc3RhdGUtPnBh cmFtT3JpZ1RibHMgPSByZXBhbGxvY19hcnJheSgqcGFyc3RhdGUtPnBhcmFtT3JpZ1RibHMs CisJCQkJCQkJCQkJCQkJCSAgT2lkLCBwYXJhbW5vKTsKKwkJCWlmIChwYXJzdGF0ZS0+cGFy YW1PcmlnQ29scykKKwkJCQkqcGFyc3RhdGUtPnBhcmFtT3JpZ0NvbHMgPSByZXBhbGxvY19h cnJheSgqcGFyc3RhdGUtPnBhcmFtT3JpZ0NvbHMsCisJCQkJCQkJCQkJCQkJCSAgQXR0ck51 bWJlciwgcGFyYW1ubyk7CisJCX0KIAkJZWxzZQotCQkJKnBhcnN0YXRlLT5wYXJhbVR5cGVz ID0gKE9pZCAqKSBwYWxsb2MocGFyYW1ubyAqIHNpemVvZihPaWQpKTsKKwkJeworCQkJKnBh cnN0YXRlLT5wYXJhbVR5cGVzID0gcGFsbG9jX2FycmF5KE9pZCwgcGFyYW1ubyk7CisJCQlp ZiAocGFyc3RhdGUtPnBhcmFtT3JpZ1RibHMpCisJCQkJKnBhcnN0YXRlLT5wYXJhbU9yaWdU YmxzID0gcGFsbG9jX2FycmF5KE9pZCwgcGFyYW1ubyk7CisJCQlpZiAocGFyc3RhdGUtPnBh cmFtT3JpZ0NvbHMpCisJCQkJKnBhcnN0YXRlLT5wYXJhbU9yaWdDb2xzID0gcGFsbG9jX2Fy cmF5KEF0dHJOdW1iZXIsIHBhcmFtbm8pOworCQl9CiAJCS8qIFplcm8gb3V0IHRoZSBwcmV2 aW91c2x5LXVucmVmZXJlbmNlZCBzbG90cyAqLwogCQlNZW1TZXQoKnBhcnN0YXRlLT5wYXJh bVR5cGVzICsgKnBhcnN0YXRlLT5udW1QYXJhbXMsCiAJCQkgICAwLAogCQkJICAgKHBhcmFt bm8gLSAqcGFyc3RhdGUtPm51bVBhcmFtcykgKiBzaXplb2YoT2lkKSk7CisJCWlmIChwYXJz dGF0ZS0+cGFyYW1PcmlnVGJscykKKwkJCU1lbVNldCgqcGFyc3RhdGUtPnBhcmFtT3JpZ1Ri bHMgKyAqcGFyc3RhdGUtPm51bVBhcmFtcywKKwkJCQkgICAwLAorCQkJCSAgIChwYXJhbW5v IC0gKnBhcnN0YXRlLT5udW1QYXJhbXMpICogc2l6ZW9mKE9pZCkpOworCQlpZiAocGFyc3Rh dGUtPnBhcmFtT3JpZ0NvbHMpCisJCQlNZW1TZXQoKnBhcnN0YXRlLT5wYXJhbU9yaWdDb2xz ICsgKnBhcnN0YXRlLT5udW1QYXJhbXMsCisJCQkJICAgMCwKKwkJCQkgICAocGFyYW1ubyAt ICpwYXJzdGF0ZS0+bnVtUGFyYW1zKSAqIHNpemVvZihBdHRyTnVtYmVyKSk7CiAJCSpwYXJz dGF0ZS0+bnVtUGFyYW1zID0gcGFyYW1ubzsKIAl9CiAKQEAgLTI2MCw2ICsyODksMTggQEAg dmFyaWFibGVfY29lcmNlX3BhcmFtX2hvb2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbSAq cGFyYW0sCiAJcmV0dXJuIE5VTEw7CiB9CiAKK3N0YXRpYyB2b2lkCit2YXJpYWJsZV9wYXJh bV9hc3NpZ25fb3JpZ19ob29rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW0gKnBhcmFtLCBP aWQgb3JpZ3RibCwgQXR0ck51bWJlciBvcmlnY29sKQoreworCVZhclBhcmFtU3RhdGUgKnBh cnN0YXRlID0gKFZhclBhcmFtU3RhdGUgKikgcHN0YXRlLT5wX3JlZl9ob29rX3N0YXRlOwor CWludAkJCXBhcmFtbm8gPSBwYXJhbS0+cGFyYW1pZDsKKworCWlmIChwYXJzdGF0ZS0+cGFy YW1PcmlnVGJscykKKwkJKCpwYXJzdGF0ZS0+cGFyYW1PcmlnVGJscylbcGFyYW1ubyAtIDFd ID0gb3JpZ3RibDsKKwlpZiAocGFyc3RhdGUtPnBhcmFtT3JpZ0NvbHMpCisJCSgqcGFyc3Rh dGUtPnBhcmFtT3JpZ0NvbHMpW3BhcmFtbm8gLSAxXSA9IG9yaWdjb2w7Cit9CisKIC8qCiAg KiBDaGVjayBmb3IgY29uc2lzdGVudCBhc3NpZ25tZW50IG9mIHZhcmlhYmxlIHBhcmFtZXRl cnMgYWZ0ZXIgY29tcGxldGlvbgogICogb2YgcGFyc2luZyB3aXRoIHBhcnNlX3ZhcmlhYmxl X3BhcmFtZXRlcnMuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFy Z2V0LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKaW5kZXggYmQ4MDU3 YmMzZTc0Li4zNzQwNmRkNzNkMWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMK QEAgLTU5NCw2ICs1OTQsMTIgQEAgdHJhbnNmb3JtQXNzaWduZWRFeHByKFBhcnNlU3RhdGUg KnBzdGF0ZSwKIAkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlv bihvcmlnX2V4cHIpKSkpOwogCX0KIAorCWlmIChJc0EoZXhwciwgUGFyYW0pKQorCXsKKwkJ aWYgKHBzdGF0ZS0+cF9wYXJhbV9hc3NpZ25fb3JpZ19ob29rKQorCQkJcHN0YXRlLT5wX3Bh cmFtX2Fzc2lnbl9vcmlnX2hvb2socHN0YXRlLCBjYXN0Tm9kZShQYXJhbSwgZXhwciksIFJl bGF0aW9uR2V0UmVsaWQocHN0YXRlLT5wX3RhcmdldF9yZWxhdGlvbiksIGF0dHJubyk7CisJ fQorCiAJcHN0YXRlLT5wX2V4cHJfa2luZCA9IHN2X2V4cHJfa2luZDsKIAogCXJldHVybiBl eHByOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMg Yi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYwppbmRleCAzODNiYzQ3NzZl ZjkuLjUxMmJjOTJiMjk2NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9w b3N0bWFzdGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMK QEAgLTIyNTQsMTIgKzIyNTQsMjcgQEAgUHJvY2Vzc1N0YXJ0dXBQYWNrZXQoUG9ydCAqcG9y dCwgYm9vbCBzc2xfZG9uZSwgYm9vbCBnc3NfZG9uZSkKIAkJCQkJCQkJCXZhbHB0ciksCiAJ CQkJCQkJIGVycmhpbnQoIlZhbGlkIHZhbHVlcyBhcmU6IFwiZmFsc2VcIiwgMCwgXCJ0cnVl XCIsIDEsIFwiZGF0YWJhc2VcIi4iKSkpOwogCQkJfQorCQkJZWxzZSBpZiAoc3RyY21wKG5h bWVwdHIsICJfcHFfLmNvbHVtbl9lbmNyeXB0aW9uIikgPT0gMCkKKwkJCXsKKwkJCQkvKgor CQkJCSAqIFJpZ2h0IG5vdywgdGhlIG9ubHkgYWNjZXB0ZWQgdmFsdWUgaXMgIjEiLiAgVGhp cyBnaXZlcyByb29tCisJCQkJICogdG8gZXhwYW5kIHRoaXMgaW50byBhIHZlcnNpb24gbnVt YmVyLCBmb3IgZXhhbXBsZS4KKwkJCQkgKi8KKwkJCQlpZiAoc3RyY21wKHZhbHB0ciwgIjEi KSA9PSAwKQorCQkJCQlwb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkID0gdHJ1ZTsK KwkJCQllbHNlCisJCQkJCWVyZXBvcnQoRkFUQUwsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09E RV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCQkJIGVycm1zZygiaW52YWxpZCB2 YWx1ZSBmb3IgcGFyYW1ldGVyIFwiJXNcIjogXCIlc1wiIiwKKwkJCQkJCQkJCSJjb2x1bW5f ZW5jcnlwdGlvbiIsCisJCQkJCQkJCQl2YWxwdHIpLAorCQkJCQkJCSBlcnJoaW50KCJWYWxp ZCB2YWx1ZXMgYXJlOiAxLiIpKSk7CisJCQl9CiAJCQllbHNlIGlmIChzdHJuY21wKG5hbWVw dHIsICJfcHFfLiIsIDUpID09IDApCiAJCQl7CiAJCQkJLyoKIAkJCQkgKiBBbnkgb3B0aW9u IGJlZ2lubmluZyB3aXRoIF9wcV8uIGlzIHJlc2VydmVkIGZvciB1c2UgYXMgYQotCQkJCSAq IHByb3RvY29sLWxldmVsIG9wdGlvbiwgYnV0IGF0IHByZXNlbnQgbm8gc3VjaCBvcHRpb25z IGFyZQotCQkJCSAqIGRlZmluZWQuCisJCQkJICogcHJvdG9jb2wtbGV2ZWwgb3B0aW9uLgog CQkJCSAqLwogCQkJCXVucmVjb2duaXplZF9wcm90b2NvbF9vcHRpb25zID0KIAkJCQkJbGFw cGVuZCh1bnJlY29nbml6ZWRfcHJvdG9jb2xfb3B0aW9ucywgcHN0cmR1cChuYW1lcHRyKSk7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgYi9zcmMvYmFja2Vu ZC90Y29wL3Bvc3RncmVzLmMKaW5kZXggMjdkZWUyOWY0MjBiLi5hNjhlOWZlMDIyNWQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYworKysgYi9zcmMvYmFja2Vu ZC90Y29wL3Bvc3RncmVzLmMKQEAgLTcyLDYgKzcyLDcgQEAKICNpbmNsdWRlICJ1dGlscy9t ZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxzL3BzX3N0YXR1cy5oIgogI2luY2x1ZGUgInV0 aWxzL3NuYXBtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogI2luY2x1ZGUg InV0aWxzL3RpbWVvdXQuaCIKICNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKIApAQCAt Njc4LDYgKzY3OSw4IEBAIHBnX2FuYWx5emVfYW5kX3Jld3JpdGVfdmFycGFyYW1zKFJhd1N0 bXQgKnBhcnNldHJlZSwKIAkJCQkJCQkJIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywKIAkJ CQkJCQkJIE9pZCAqKnBhcmFtVHlwZXMsCiAJCQkJCQkJCSBpbnQgKm51bVBhcmFtcywKKwkJ CQkJCQkJIE9pZCAqKnBhcmFtT3JpZ1RibHMsCisJCQkJCQkJCSBBdHRyTnVtYmVyICoqcGFy YW1PcmlnQ29scywKIAkJCQkJCQkJIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52KQogewog CVF1ZXJ5CSAgICpxdWVyeTsKQEAgLTY5Miw3ICs2OTUsNyBAQCBwZ19hbmFseXplX2FuZF9y ZXdyaXRlX3ZhcnBhcmFtcyhSYXdTdG10ICpwYXJzZXRyZWUsCiAJCVJlc2V0VXNhZ2UoKTsK IAogCXF1ZXJ5ID0gcGFyc2VfYW5hbHl6ZV92YXJwYXJhbXMocGFyc2V0cmVlLCBxdWVyeV9z dHJpbmcsIHBhcmFtVHlwZXMsIG51bVBhcmFtcywKLQkJCQkJCQkJCXF1ZXJ5RW52KTsKKwkJ CQkJCQkJCXBhcmFtT3JpZ1RibHMsIHBhcmFtT3JpZ0NvbHMsIHF1ZXJ5RW52KTsKIAogCS8q CiAJICogQ2hlY2sgYWxsIHBhcmFtZXRlciB0eXBlcyBnb3QgZGV0ZXJtaW5lZC4KQEAgLTEz NjYsNiArMTM2OSw4IEBAIGV4ZWNfcGFyc2VfbWVzc2FnZShjb25zdCBjaGFyICpxdWVyeV9z dHJpbmcsCS8qIHN0cmluZyB0byBleGVjdXRlICovCiAJYm9vbAkJaXNfbmFtZWQ7CiAJYm9v bAkJc2F2ZV9sb2dfc3RhdGVtZW50X3N0YXRzID0gbG9nX3N0YXRlbWVudF9zdGF0czsKIAlj aGFyCQltc2VjX3N0clszMl07CisJT2lkCQkgICAqcGFyYW1PcmlnVGJscyA9IHBhbGxvY19h cnJheShPaWQsIG51bVBhcmFtcyk7CisJQXR0ck51bWJlciAqcGFyYW1PcmlnQ29scyA9IHBh bGxvY19hcnJheShBdHRyTnVtYmVyLCBudW1QYXJhbXMpOwogCiAJLyoKIAkgKiBSZXBvcnQg cXVlcnkgdG8gdmFyaW91cyBtb25pdG9yaW5nIGZhY2lsaXRpZXMuCkBAIC0xNDg2LDYgKzE0 OTEsOCBAQCBleGVjX3BhcnNlX21lc3NhZ2UoY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLAkv KiBzdHJpbmcgdG8gZXhlY3V0ZSAqLwogCQkJCQkJCQkJCQkJCQkgIHF1ZXJ5X3N0cmluZywK IAkJCQkJCQkJCQkJCQkJICAmcGFyYW1UeXBlcywKIAkJCQkJCQkJCQkJCQkJICAmbnVtUGFy YW1zLAorCQkJCQkJCQkJCQkJCQkgICZwYXJhbU9yaWdUYmxzLAorCQkJCQkJCQkJCQkJCQkg ICZwYXJhbU9yaWdDb2xzLAogCQkJCQkJCQkJCQkJCQkgIE5VTEwpOwogCiAJCS8qIERvbmUg d2l0aCB0aGUgc25hcHNob3QgdXNlZCBmb3IgcGFyc2luZyAqLwpAQCAtMTUxNiw2ICsxNTIz LDggQEAgZXhlY19wYXJzZV9tZXNzYWdlKGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywJLyog c3RyaW5nIHRvIGV4ZWN1dGUgKi8KIAkJCQkJICAgdW5uYW1lZF9zdG10X2NvbnRleHQsCiAJ CQkJCSAgIHBhcmFtVHlwZXMsCiAJCQkJCSAgIG51bVBhcmFtcywKKwkJCQkJICAgcGFyYW1P cmlnVGJscywKKwkJCQkJICAgcGFyYW1PcmlnQ29scywKIAkJCQkJICAgTlVMTCwKIAkJCQkJ ICAgTlVMTCwKIAkJCQkJICAgQ1VSU09SX09QVF9QQVJBTExFTF9PSywJLyogYWxsb3cgcGFy YWxsZWwgbW9kZSAqLwpAQCAtMTgxMyw2ICsxODIyLDE2IEBAIGV4ZWNfYmluZF9tZXNzYWdl KFN0cmluZ0luZm8gaW5wdXRfbWVzc2FnZSkKIAkJCWVsc2UKIAkJCQlwZm9ybWF0ID0gMDsJ LyogZGVmYXVsdCA9IHRleHQgKi8KIAorCQkJaWYgKHR5cGVfaXNfZW5jcnlwdGVkKHB0eXBl KSkKKwkJCXsKKwkJCQlpZiAocGZvcm1hdCAmIDB4RjApCisJCQkJCXBmb3JtYXQgJj0gfjB4 RjA7CisJCQkJZWxzZQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVS UkNPREVfUFJPVE9DT0xfVklPTEFUSU9OKSwKKwkJCQkJCQkgZXJybXNnKCJwYXJhbWV0ZXIg Y29ycmVzcG9uZHMgdG8gYW4gZW5jcnlwdGVkIGNvbHVtbiwgYnV0IHRoZSBwYXJhbWV0ZXIg dmFsdWUgd2FzIG5vdCBlbmNyeXB0ZWQiKSkpOworCQkJfQorCiAJCQlpZiAocGZvcm1hdCA9 PSAwKQkvKiB0ZXh0IG1vZGUgKi8KIAkJCXsKIAkJCQlPaWQJCQl0eXBpbnB1dDsKQEAgLTI2 MDMsOCArMjYyMiw0NCBAQCBleGVjX2Rlc2NyaWJlX3N0YXRlbWVudF9tZXNzYWdlKGNvbnN0 IGNoYXIgKnN0bXRfbmFtZSkKIAlmb3IgKGludCBpID0gMDsgaSA8IHBzcmMtPm51bV9wYXJh bXM7IGkrKykKIAl7CiAJCU9pZAkJCXB0eXBlID0gcHNyYy0+cGFyYW1fdHlwZXNbaV07CisJ CU9pZAkJCXBjZWtpZCA9IEludmFsaWRPaWQ7CisJCWludAkJCXBjZWthbGcgPSAwOworCQlp bnQxNgkJcGZsYWdzID0gMDsKKworCQlpZiAoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRp b25fZW5hYmxlZCAmJiB0eXBlX2lzX2VuY3J5cHRlZChwdHlwZSkpCisJCXsKKwkJCU9pZAkJ CXBvcmlndGJsID0gcHNyYy0+cGFyYW1fb3JpZ3RibHNbaV07CisJCQlBdHRyTnVtYmVyCXBv cmlnY29sID0gcHNyYy0+cGFyYW1fb3JpZ2NvbHNbaV07CisJCQlIZWFwVHVwbGUJdHA7CisJ CQlGb3JtX3BnX2F0dHJpYnV0ZSBvcmlnX2F0dDsKKworCQkJaWYgKHBvcmlndGJsID09IElu dmFsaWRPaWQgfHwgcG9yaWdjb2wgPD0gMCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJ KGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1z ZygicGFyYW1ldGVyICVkIGNvcnJlc3BvbmRzIHRvIGFuIGVuY3J5cHRlZCBjb2x1bW4sIGJ1 dCBhbiB1bmRlcmx5aW5nIHRhYmxlIGFuZCBjb2x1bW4gY291bGQgbm90IGJlIGRldGVybWlu ZWQiLCBpKSkpOworCisJCQl0cCA9IFNlYXJjaFN5c0NhY2hlMihBVFROVU0sIE9iamVjdElk R2V0RGF0dW0ocG9yaWd0YmwpLCBJbnQxNkdldERhdHVtKHBvcmlnY29sKSk7CisJCQlpZiAo IUhlYXBUdXBsZUlzVmFsaWQodHApKQorCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAg ZmFpbGVkIGZvciBhdHRyaWJ1dGUgJWQgb2YgcmVsYXRpb24gJXUiLCBwb3JpZ2NvbCwgcG9y aWd0YmwpOworCQkJb3JpZ19hdHQgPSAoRm9ybV9wZ19hdHRyaWJ1dGUpIEdFVFNUUlVDVCh0 cCk7CisJCQlwdHlwZSA9IG9yaWdfYXR0LT5hdHRyZWFsdHlwaWQ7CisJCQlwY2VraWQgPSBv cmlnX2F0dC0+YXR0Y2VrOworCQkJcGNla2FsZyA9IG9yaWdfYXR0LT5hdHRlbmNhbGc7CisJ CQlSZWxlYXNlU3lzQ2FjaGUodHApOworCisJCQlpZiAocHNyYy0+cGFyYW1fdHlwZXNbaV0g PT0gUEdfRU5DUllQVEVEX0RFVE9JRCkKKwkJCQlwZmxhZ3MgfD0gMHgwMTsKKworCQkJTWF5 YmVTZW5kQ29sdW1uRW5jcnlwdGlvbktleU1lc3NhZ2UocGNla2lkKTsKKwkJfQogCiAJCXBx X3NlbmRpbnQzMigmcm93X2Rlc2NyaXB0aW9uX2J1ZiwgKGludCkgcHR5cGUpOworCQlpZiAo TXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJeworCQkJcHFfc2Vu ZGludDMyKCZyb3dfZGVzY3JpcHRpb25fYnVmLCAoaW50KSBwY2VraWQpOworCQkJcHFfc2Vu ZGludDE2KCZyb3dfZGVzY3JpcHRpb25fYnVmLCBwY2VrYWxnKTsKKwkJCXBxX3NlbmRpbnQx Nigmcm93X2Rlc2NyaXB0aW9uX2J1ZiwgcGZsYWdzKTsKKwkJfQogCX0KIAlwcV9lbmRtZXNz YWdlX3JldXNlKCZyb3dfZGVzY3JpcHRpb25fYnVmKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwppbmRl eCAyNDdkMDgxNmFkODEuLjM4YTVkOGYxYzAzOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKQEAgLTMw LDYgKzMwLDcgQEAKICNpbmNsdWRlICJjb21tYW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNv bW1hbmRzL2FzeW5jLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvY2x1c3Rlci5oIgorI2luY2x1 ZGUgImNvbW1hbmRzL2NvbGVuY2NtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jb2xsYXRp b25jbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvY29tbWVudC5oIgogI2luY2x1ZGUgImNv bW1hbmRzL2NvbnZlcnNpb25jbWRzLmgiCkBAIC0xMzcsNiArMTM4LDcgQEAgQ2xhc3NpZnlV dGlsaXR5Q29tbWFuZEFzUmVhZE9ubHkoTm9kZSAqcGFyc2V0cmVlKQogCXN3aXRjaCAobm9k ZVRhZyhwYXJzZXRyZWUpKQogCXsKIAkJY2FzZSBUX0FsdGVyQ29sbGF0aW9uU3RtdDoKKwkJ Y2FzZSBUX0FsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQ6CiAJCWNhc2UgVF9BbHRlckRh dGFiYXNlUmVmcmVzaENvbGxTdG10OgogCQljYXNlIFRfQWx0ZXJEYXRhYmFzZVNldFN0bXQ6 CiAJCWNhc2UgVF9BbHRlckRhdGFiYXNlU3RtdDoKQEAgLTE0NDEsNiArMTQ0MywxNCBAQCBQ cm9jZXNzVXRpbGl0eVNsb3coUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCQkJCQkJ c3RtdC0+ZGVmaW5pdGlvbiwKIAkJCQkJCQkJCQkJCQkJCSZzZWNvbmRhcnlPYmplY3QpOwog CQkJCQkJCWJyZWFrOworCQkJCQkJY2FzZSBPQkpFQ1RfQ0VLOgorCQkJCQkJCUFzc2VydChz dG10LT5hcmdzID09IE5JTCk7CisJCQkJCQkJYWRkcmVzcyA9IENyZWF0ZUNFSyhwc3RhdGUs IHN0bXQpOworCQkJCQkJCWJyZWFrOworCQkJCQkJY2FzZSBPQkpFQ1RfQ01LOgorCQkJCQkJ CUFzc2VydChzdG10LT5hcmdzID09IE5JTCk7CisJCQkJCQkJYWRkcmVzcyA9IENyZWF0ZUNN Syhwc3RhdGUsIHN0bXQpOworCQkJCQkJCWJyZWFrOwogCQkJCQkJY2FzZSBPQkpFQ1RfQ09M TEFUSU9OOgogCQkJCQkJCUFzc2VydChzdG10LT5hcmdzID09IE5JTCk7CiAJCQkJCQkJYWRk cmVzcyA9IERlZmluZUNvbGxhdGlvbihwc3RhdGUsCkBAIC0xOTAzLDYgKzE5MTMsMTAgQEAg UHJvY2Vzc1V0aWxpdHlTbG93KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQlhZGRyZXNzID0g QWx0ZXJDb2xsYXRpb24oKEFsdGVyQ29sbGF0aW9uU3RtdCAqKSBwYXJzZXRyZWUpOwogCQkJ CWJyZWFrOwogCisJCQljYXNlIFRfQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdDoKKwkJ CQlhZGRyZXNzID0gQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5KHBzdGF0ZSwgKEFsdGVyQ29s dW1uRW5jcnlwdGlvbktleVN0bXQgKikgcGFyc2V0cmVlKTsKKwkJCQlicmVhazsKKwogCQkJ ZGVmYXVsdDoKIAkJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQi LAogCQkJCQkgKGludCkgbm9kZVRhZyhwYXJzZXRyZWUpKTsKQEAgLTIyMjUsNiArMjIzOSwx MiBAQCBBbHRlck9iamVjdFR5cGVDb21tYW5kVGFnKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJ Y2FzZSBPQkpFQ1RfQ09MVU1OOgogCQkJdGFnID0gQ01EVEFHX0FMVEVSX1RBQkxFOwogCQkJ YnJlYWs7CisJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCXRhZyA9IENNRFRBR19BTFRFUl9DT0xV TU5fRU5DUllQVElPTl9LRVk7CisJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfQ01LOgorCQkJ dGFnID0gQ01EVEFHX0FMVEVSX0NPTFVNTl9NQVNURVJfS0VZOworCQkJYnJlYWs7CiAJCWNh c2UgT0JKRUNUX0NPTlZFUlNJT046CiAJCQl0YWcgPSBDTURUQUdfQUxURVJfQ09OVkVSU0lP TjsKIAkJCWJyZWFrOwpAQCAtMjY0MCw2ICsyNjYwLDEyIEBAIENyZWF0ZUNvbW1hbmRUYWco Tm9kZSAqcGFyc2V0cmVlKQogCQkJCWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6CiAJCQkJ CXRhZyA9IENNRFRBR19EUk9QX1NUQVRJU1RJQ1M7CiAJCQkJCWJyZWFrOworCQkJCWNhc2Ug T0JKRUNUX0NFSzoKKwkJCQkJdGFnID0gQ01EVEFHX0RST1BfQ09MVU1OX0VOQ1JZUFRJT05f S0VZOworCQkJCQlicmVhazsKKwkJCQljYXNlIE9CSkVDVF9DTUs6CisJCQkJCXRhZyA9IENN RFRBR19EUk9QX0NPTFVNTl9NQVNURVJfS0VZOworCQkJCQlicmVhazsKIAkJCQlkZWZhdWx0 OgogCQkJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsKIAkJCX0KQEAgLTI3NjAsNiArMjc4Niwx MiBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCQljYXNlIE9CSkVD VF9DT0xMQVRJT046CiAJCQkJCXRhZyA9IENNRFRBR19DUkVBVEVfQ09MTEFUSU9OOwogCQkJ CQlicmVhazsKKwkJCQljYXNlIE9CSkVDVF9DRUs6CisJCQkJCXRhZyA9IENNRFRBR19DUkVB VEVfQ09MVU1OX0VOQ1JZUFRJT05fS0VZOworCQkJCQlicmVhazsKKwkJCQljYXNlIE9CSkVD VF9DTUs6CisJCQkJCXRhZyA9IENNRFRBR19DUkVBVEVfQ09MVU1OX01BU1RFUl9LRVk7CisJ CQkJCWJyZWFrOwogCQkJCWNhc2UgT0JKRUNUX0FDQ0VTU19NRVRIT0Q6CiAJCQkJCXRhZyA9 IENNRFRBR19DUkVBVEVfQUNDRVNTX01FVEhPRDsKIAkJCQkJYnJlYWs7CkBAIC0zMDYzLDYg KzMwOTUsMTAgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQl0YWcg PSBDTURUQUdfQUxURVJfQ09MTEFUSU9OOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0FsdGVy Q29sdW1uRW5jcnlwdGlvbktleVN0bXQ6CisJCQl0YWcgPSBDTURUQUdfQUxURVJfQ09MVU1O X0VOQ1JZUFRJT05fS0VZOworCQkJYnJlYWs7CisKIAkJY2FzZSBUX1ByZXBhcmVTdG10Ogog CQkJdGFnID0gQ01EVEFHX1BSRVBBUkU7CiAJCQlicmVhazsKQEAgLTMyMTcsNyArMzI1Myw3 IEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJYnJlYWs7CiAKIAkJ ZGVmYXVsdDoKLQkJCWVsb2coV0FSTklORywgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVk IiwKKwkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJ IChpbnQpIG5vZGVUYWcocGFyc2V0cmVlKSk7CiAJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsK IAkJCWJyZWFrOwpAQCAtMzY4OCw2ICszNzI0LDEwIEBAIEdldENvbW1hbmRMb2dMZXZlbChO b2RlICpwYXJzZXRyZWUpCiAJCQlsZXYgPSBMT0dTVE1UX0RETDsKIAkJCWJyZWFrOwogCisJ CWNhc2UgVF9BbHRlckNvbHVtbkVuY3J5cHRpb25LZXlTdG10OgorCQkJbGV2ID0gTE9HU1RN VF9EREw7CisJCQlicmVhazsKKwogCQkJLyogYWxyZWFkeS1wbGFubmVkIHF1ZXJpZXMgKi8K IAkJY2FzZSBUX1BsYW5uZWRTdG10OgogCQkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2FycmF5ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1 bmNzLmMKaW5kZXggNDk1ZTQ0OWE5ZTlhLi40MDVmMDhhOWIzNzggMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2FycmF5ZnVuY3MuYwpAQCAtMzM4Niw2ICszMzg2LDcgQEAgY29uc3RydWN0X2Fy cmF5X2J1aWx0aW4oRGF0dW0gKmVsZW1zLCBpbnQgbmVsZW1zLCBPaWQgZWxtdHlwZSkKIAkJ CWJyZWFrOwogCiAJCWNhc2UgT0lET0lEOgorCQljYXNlIFJFR0NMQVNTT0lEOgogCQljYXNl IFJFR1RZUEVPSUQ6CiAJCQllbG1sZW4gPSBzaXplb2YoT2lkKTsKIAkJCWVsbWJ5dmFsID0g dHJ1ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKaW5kZXggYTE2YTYzZjQ5 NTdiLi5kNWVhMTY4OWUyOWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hl L2xzeXNjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5j CkBAIC0yNCw3ICsyNCwxMCBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfYW1vcC5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfYW1wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jYXN0 LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXkuaCIKKyNpbmNsdWRlICJjYXRh bG9nL3BnX2NvbGVuY2tleWRhdGEuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlv bi5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19jb25zdHJhaW50LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19sYW5ndWFn ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfbmFtZXNwYWNlLmgiCkBAIC0yNjU4LDYgKzI2 NjEsMjUgQEAgdHlwZV9pc19tdWx0aXJhbmdlKE9pZCB0eXBpZCkKIAlyZXR1cm4gKGdldF90 eXB0eXBlKHR5cGlkKSA9PSBUWVBUWVBFX01VTFRJUkFOR0UpOwogfQogCitib29sCit0eXBl X2lzX2VuY3J5cHRlZChPaWQgdHlwaWQpCit7CisJSGVhcFR1cGxlCXRwOworCisJdHAgPSBT ZWFyY2hTeXNDYWNoZTEoVFlQRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh0eXBpZCkpOworCWlm IChIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwl7CisJCUZvcm1fcGdfdHlwZSB0eXB0dXAgPSAo Rm9ybV9wZ190eXBlKSBHRVRTVFJVQ1QodHApOworCQlib29sCQlyZXN1bHQ7CisKKwkJcmVz dWx0ID0gKHR5cHR1cC0+dHlwY2F0ZWdvcnkgPT0gVFlQQ0FURUdPUllfRU5DUllQVEVEKTsK KwkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwkJcmV0dXJuIHJlc3VsdDsKKwl9CisJZWxzZQor CQlyZXR1cm4gZmFsc2U7Cit9CisKIC8qCiAgKiBnZXRfdHlwZV9jYXRlZ29yeV9wcmVmZXJy ZWQKICAqCkBAIC0zNjc5LDMgKzM3MDEsOTIgQEAgZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9p ZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29rKQogCiAJcmV0dXJuIHN1Ym5hbWU7CiB9CisKK09p ZAorZ2V0X2Nla19vaWQoY29uc3QgY2hhciAqY2VrbmFtZSwgYm9vbCBtaXNzaW5nX29rKQor eworCU9pZAkJCW9pZDsKKworCW9pZCA9IEdldFN5c0NhY2hlT2lkMShDRUtOQU1FLCBBbnVt X3BnX2NvbGVuY2tleV9vaWQsCisJCQkJCQkgIENTdHJpbmdHZXREYXR1bShjZWtuYW1lKSk7 CisJaWYgKCFPaWRJc1ZhbGlkKG9pZCkgJiYgIW1pc3Npbmdfb2spCisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkgZXJy bXNnKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY2Vr bmFtZSkpKTsKKwlyZXR1cm4gb2lkOworfQorCitjaGFyICoKK2dldF9jZWtfbmFtZShPaWQg Y2VraWQsIGJvb2wgbWlzc2luZ19vaykKK3sKKwlIZWFwVHVwbGUJdHVwOworCWNoYXIJICAg KmNla25hbWU7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoQ0VLT0lELCBPYmplY3RJZEdl dERhdHVtKGNla2lkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwl7CisJ CWlmICghbWlzc2luZ19vaykKKwkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVk IGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgJXUiLCBjZWtpZCk7CisJCXJldHVybiBOVUxM OworCX0KKworCWNla25hbWUgPSBwc3RyZHVwKE5hbWVTdHIoKChGb3JtX3BnX2NvbGVuY2tl eSkgR0VUU1RSVUNUKHR1cCkpLT5jZWtuYW1lKSk7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVw KTsKKworCXJldHVybiBjZWtuYW1lOworfQorCitPaWQKK2dldF9jZWtkYXRhX29pZChPaWQg Y2VraWQsIE9pZCBjbWtpZCwgYm9vbCBtaXNzaW5nX29rKQoreworCU9pZAkJCWNla2RhdGFp ZDsKKworCWNla2RhdGFpZCA9IEdldFN5c0NhY2hlT2lkMihDRUtEQVRBQ0VLQ01LLCBBbnVt X3BnX2NvbGVuY2tleWRhdGFfb2lkLAorCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKGNla2lk KSwKKwkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShjbWtpZCkpOworCWlmICghT2lkSXNWYWxp ZChjZWtkYXRhaWQpICYmICFtaXNzaW5nX29rKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShl cnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJIGVycm1zZygiY29sdW1u IGVuY3J5cHRpb24ga2V5IFwiJXNcIiBoYXMgbm8gZGF0YSBmb3IgbWFzdGVyIGtleSBcIiVz XCIiLAorCQkJCQkJZ2V0X2Nla19uYW1lKGNla2lkLCBmYWxzZSksIGdldF9jbWtfbmFtZShj bWtpZCwgZmFsc2UpKSkpOworCisJcmV0dXJuIGNla2RhdGFpZDsKK30KKworT2lkCitnZXRf Y21rX29pZChjb25zdCBjaGFyICpjbWtuYW1lLCBib29sIG1pc3Npbmdfb2spCit7CisJT2lk CQkJb2lkOworCisJb2lkID0gR2V0U3lzQ2FjaGVPaWQxKENNS05BTUUsIEFudW1fcGdfY29s bWFzdGVya2V5X29pZCwKKwkJCQkJCSAgQ1N0cmluZ0dldERhdHVtKGNta25hbWUpKTsKKwlp ZiAoIU9pZElzVmFsaWQob2lkKSAmJiAhbWlzc2luZ19vaykKKwkJZXJlcG9ydChFUlJPUiwK KwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2co ImNvbHVtbiBtYXN0ZXIga2V5IFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNta25hbWUpKSk7 CisJcmV0dXJuIG9pZDsKK30KKworY2hhciAqCitnZXRfY21rX25hbWUoT2lkIGNta2lkLCBi b29sIG1pc3Npbmdfb2spCit7CisJSGVhcFR1cGxlCXR1cDsKKwljaGFyCSAgICpjbWtuYW1l OworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENNS09JRCwgT2JqZWN0SWRHZXREYXR1bShj bWtpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJeworCQlpZiAoIW1p c3Npbmdfb2spCisJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29s dW1uIG1hc3RlciBrZXkgJXUiLCBjbWtpZCk7CisJCXJldHVybiBOVUxMOworCX0KKworCWNt a25hbWUgPSBwc3RyZHVwKE5hbWVTdHIoKChGb3JtX3BnX2NvbG1hc3RlcmtleSkgR0VUU1RS VUNUKHR1cCkpLT5jbWtuYW1lKSk7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJl dHVybiBjbWtuYW1lOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv cGxhbmNhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwppbmRl eCAwZDZhMjk1Njc0ODcuLmYyYTVlMDI5ZTNhNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv cGxhbmNhY2hlLmMKQEAgLTM0MCw2ICszNDAsOCBAQCBDb21wbGV0ZUNhY2hlZFBsYW4oQ2Fj aGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZSwKIAkJCQkgICBNZW1vcnlDb250ZXh0IHF1ZXJ5 dHJlZV9jb250ZXh0LAogCQkJCSAgIE9pZCAqcGFyYW1fdHlwZXMsCiAJCQkJICAgaW50IG51 bV9wYXJhbXMsCisJCQkJICAgT2lkICpwYXJhbV9vcmlndGJscywKKwkJCQkgICBBdHRyTnVt YmVyICpwYXJhbV9vcmlnY29scywKIAkJCQkgICBQYXJzZXJTZXR1cEhvb2sgcGFyc2VyU2V0 dXAsCiAJCQkJICAgdm9pZCAqcGFyc2VyU2V0dXBBcmcsCiAJCQkJICAgaW50IGN1cnNvcl9v cHRpb25zLApAQCAtNDE3LDggKzQxOSwxNiBAQCBDb21wbGV0ZUNhY2hlZFBsYW4oQ2FjaGVk UGxhblNvdXJjZSAqcGxhbnNvdXJjZSwKIAogCWlmIChudW1fcGFyYW1zID4gMCkKIAl7Ci0J CXBsYW5zb3VyY2UtPnBhcmFtX3R5cGVzID0gKE9pZCAqKSBwYWxsb2MobnVtX3BhcmFtcyAq IHNpemVvZihPaWQpKTsKKwkJcGxhbnNvdXJjZS0+cGFyYW1fdHlwZXMgPSBwYWxsb2NfYXJy YXkoT2lkLCBudW1fcGFyYW1zKTsKIAkJbWVtY3B5KHBsYW5zb3VyY2UtPnBhcmFtX3R5cGVz LCBwYXJhbV90eXBlcywgbnVtX3BhcmFtcyAqIHNpemVvZihPaWQpKTsKKworCQlwbGFuc291 cmNlLT5wYXJhbV9vcmlndGJscyA9IHBhbGxvYzBfYXJyYXkoT2lkLCBudW1fcGFyYW1zKTsK KwkJaWYgKHBhcmFtX29yaWd0YmxzKQorCQkJbWVtY3B5KHBsYW5zb3VyY2UtPnBhcmFtX29y aWd0YmxzLCBwYXJhbV9vcmlndGJscywgbnVtX3BhcmFtcyAqIHNpemVvZihPaWQpKTsKKwor CQlwbGFuc291cmNlLT5wYXJhbV9vcmlnY29scyA9IHBhbGxvYzBfYXJyYXkoQXR0ck51bWJl ciwgbnVtX3BhcmFtcyk7CisJCWlmIChwYXJhbV9vcmlnY29scykKKwkJCW1lbWNweShwbGFu c291cmNlLT5wYXJhbV9vcmlnY29scywgcGFyYW1fb3JpZ2NvbHMsIG51bV9wYXJhbXMgKiBz aXplb2YoQXR0ck51bWJlcikpOwogCX0KIAllbHNlCiAJCXBsYW5zb3VyY2UtPnBhcmFtX3R5 cGVzID0gTlVMTDsKQEAgLTE1MzUsMTMgKzE1NDUsMjIgQEAgQ29weUNhY2hlZFBsYW4oQ2Fj aGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZSkKIAluZXdzb3VyY2UtPmNvbW1hbmRUYWcgPSBw bGFuc291cmNlLT5jb21tYW5kVGFnOwogCWlmIChwbGFuc291cmNlLT5udW1fcGFyYW1zID4g MCkKIAl7Ci0JCW5ld3NvdXJjZS0+cGFyYW1fdHlwZXMgPSAoT2lkICopCi0JCQlwYWxsb2Mo cGxhbnNvdXJjZS0+bnVtX3BhcmFtcyAqIHNpemVvZihPaWQpKTsKKwkJbmV3c291cmNlLT5w YXJhbV90eXBlcyA9IHBhbGxvY19hcnJheShPaWQsIHBsYW5zb3VyY2UtPm51bV9wYXJhbXMp OwogCQltZW1jcHkobmV3c291cmNlLT5wYXJhbV90eXBlcywgcGxhbnNvdXJjZS0+cGFyYW1f dHlwZXMsCiAJCQkgICBwbGFuc291cmNlLT5udW1fcGFyYW1zICogc2l6ZW9mKE9pZCkpOwor CQlpZiAocGxhbnNvdXJjZS0+cGFyYW1fb3JpZ3RibHMpCisJCXsKKwkJCW5ld3NvdXJjZS0+ cGFyYW1fb3JpZ3RibHMgPSBwYWxsb2NfYXJyYXkoT2lkLCBwbGFuc291cmNlLT5udW1fcGFy YW1zKTsKKwkJCW1lbWNweShuZXdzb3VyY2UtPnBhcmFtX29yaWd0YmxzLCBwbGFuc291cmNl LT5wYXJhbV9vcmlndGJscywKKwkJCQkgICBwbGFuc291cmNlLT5udW1fcGFyYW1zICogc2l6 ZW9mKE9pZCkpOworCQl9CisJCWlmIChwbGFuc291cmNlLT5wYXJhbV9vcmlnY29scykKKwkJ eworCQkJbmV3c291cmNlLT5wYXJhbV9vcmlnY29scyA9IHBhbGxvY19hcnJheShBdHRyTnVt YmVyLCBwbGFuc291cmNlLT5udW1fcGFyYW1zKTsKKwkJCW1lbWNweShuZXdzb3VyY2UtPnBh cmFtX29yaWdjb2xzLCBwbGFuc291cmNlLT5wYXJhbV9vcmlnY29scywKKwkJCQkgICBwbGFu c291cmNlLT5udW1fcGFyYW1zICogc2l6ZW9mKEF0dHJOdW1iZXIpKTsKKwkJfQogCX0KLQll bHNlCi0JCW5ld3NvdXJjZS0+cGFyYW1fdHlwZXMgPSBOVUxMOwogCW5ld3NvdXJjZS0+bnVt X3BhcmFtcyA9IHBsYW5zb3VyY2UtPm51bV9wYXJhbXM7CiAJbmV3c291cmNlLT5wYXJzZXJT ZXR1cCA9IHBsYW5zb3VyY2UtPnBhcnNlclNldHVwOwogCW5ld3NvdXJjZS0+cGFyc2VyU2V0 dXBBcmcgPSBwbGFuc291cmNlLT5wYXJzZXJTZXR1cEFyZzsKQEAgLTE1NDksOCArMTU2OCw2 IEBAIENvcHlDYWNoZWRQbGFuKENhY2hlZFBsYW5Tb3VyY2UgKnBsYW5zb3VyY2UpCiAJbmV3 c291cmNlLT5maXhlZF9yZXN1bHQgPSBwbGFuc291cmNlLT5maXhlZF9yZXN1bHQ7CiAJaWYg KHBsYW5zb3VyY2UtPnJlc3VsdERlc2MpCiAJCW5ld3NvdXJjZS0+cmVzdWx0RGVzYyA9IENy ZWF0ZVR1cGxlRGVzY0NvcHkocGxhbnNvdXJjZS0+cmVzdWx0RGVzYyk7Ci0JZWxzZQotCQlu ZXdzb3VyY2UtPnJlc3VsdERlc2MgPSBOVUxMOwogCW5ld3NvdXJjZS0+Y29udGV4dCA9IHNv dXJjZV9jb250ZXh0OwogCiAJcXVlcnl0cmVlX2NvbnRleHQgPSBBbGxvY1NldENvbnRleHRD cmVhdGUoc291cmNlX2NvbnRleHQsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9j YWNoZS9zeXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvc3lzY2FjaGUuYwpp bmRleCBlZWM2NDRlYzg0ODkuLjYzMzdmMjdiZmNmZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvY2FjaGUvc3lzY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNo ZS9zeXNjYWNoZS5jCkBAIC0yOSw3ICsyOSwxMCBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdf YXV0aF9tZW1iZXJzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoaWQuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX2Nhc3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tl eS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5ZGF0YS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xtYXN0 ZXJrZXkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX2NvbnZlcnNpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RhdGFi YXNlLmgiCkBAIC0yNjcsNiArMjcwLDQzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2FjaGVk ZXNjIGNhY2hlaW5mb1tdID0gewogCQl9LAogCQkyNTYKIAl9LAorCXsKKwkJQ29sdW1uRW5j S2V5RGF0YVJlbGF0aW9uSWQsIC8qIENFS0RBVEFDRUtDTUsgKi8KKwkJQ29sdW1uRW5jS2V5 Q2VraWRDbWtpZEluZGV4SWQsCisJCTIsCisJCXsKKwkJCUFudW1fcGdfY29sZW5ja2V5ZGF0 YV9ja2RjZWtpZCwKKwkJCUFudW1fcGdfY29sZW5ja2V5ZGF0YV9ja2RjbWtpZCwKKwkJfSwK KwkJOAorCX0sCisJeworCQlDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25JZCwgLyogQ0VLREFU QU9JRCAqLworCQlDb2x1bW5FbmNLZXlEYXRhT2lkSW5kZXhJZCwKKwkJMSwKKwkJeworCQkJ QW51bV9wZ19jb2xlbmNrZXlkYXRhX29pZCwKKwkJfSwKKwkJOAorCX0sCisJeworCQlDb2x1 bW5FbmNLZXlSZWxhdGlvbklkLCAvKiBDRUtOQU1FICovCisJCUNvbHVtbkVuY0tleU5hbWVJ bmRleElkLAorCQkxLAorCQl7CisJCQlBbnVtX3BnX2NvbGVuY2tleV9jZWtuYW1lLAorCQl9 LAorCQk4CisJfSwKKwl7CisJCUNvbHVtbkVuY0tleVJlbGF0aW9uSWQsIC8qIENFS09JRCAq LworCQlDb2x1bW5FbmNLZXlPaWRJbmRleElkLAorCQkxLAorCQl7CisJCQlBbnVtX3BnX2Nv bGVuY2tleV9vaWQsCisJCX0sCisJCTgKKwl9LAogCXtPcGVyYXRvckNsYXNzUmVsYXRpb25J ZCwJLyogQ0xBQU1OQU1FTlNQICovCiAJCU9wY2xhc3NBbU5hbWVOc3BJbmRleElkLAogCQkz LApAQCAtMjg5LDYgKzMyOSwyNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNhY2hlZGVzYyBj YWNoZWluZm9bXSA9IHsKIAkJfSwKIAkJOAogCX0sCisJeworCQlDb2x1bW5NYXN0ZXJLZXlS ZWxhdGlvbklkLCAvKiBDTUtOQU1FICovCisJCUNvbHVtbk1hc3RlcktleU5hbWVJbmRleElk LAorCQkxLAorCQl7CisJCQlBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtuYW1lLAorCQl9LAor CQk4CisJfSwKKwl7CisJCUNvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsCS8qIENNS09JRCAq LworCQlDb2x1bW5NYXN0ZXJLZXlPaWRJbmRleElkLAorCQkxLAorCQl7CisJCQlBbnVtX3Bn X2NvbG1hc3RlcmtleV9vaWQsCisJCX0sCisJCTgKKwl9LAogCXtDb2xsYXRpb25SZWxhdGlv bklkLAkJLyogQ09MTE5BTUVFTkNOU1AgKi8KIAkJQ29sbGF0aW9uTmFtZUVuY05zcEluZGV4 SWQsCiAJCTMsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9tYi9tYnV0aWxzLmMg Yi9zcmMvYmFja2VuZC91dGlscy9tYi9tYnV0aWxzLmMKaW5kZXggNDc0YWI0NzZmNWZiLi4z M2U4NzFmZjA2MDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21iL21idXRpbHMu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9tYi9tYnV0aWxzLmMKQEAgLTM2LDcgKzM2LDkg QEAKIAogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1l c3BhY2UuaCIKKyNpbmNsdWRlICJsaWJwcS9saWJwcS1iZS5oIgogI2luY2x1ZGUgIm1iL3Bn X3djaGFyLmgiCisjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVp bHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxz L3N5c2NhY2hlLmgiCkBAIC0xMjksNiArMTMxLDEyIEBAIFByZXBhcmVDbGllbnRFbmNvZGlu ZyhpbnQgZW5jb2RpbmcpCiAJCWVuY29kaW5nID09IFBHX1NRTF9BU0NJSSkKIAkJcmV0dXJu IDA7CiAKKwkvKgorCSAqIENhbm5vdCBkbyBjb252ZXJzaW9uIHdoZW4gY29sdW1uIGVuY3J5 cHRpb24gaXMgZW5hYmxlZC4KKwkgKi8KKwlpZiAoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5 cHRpb25fZW5hYmxlZCkKKwkJcmV0dXJuIC0xOworCiAJaWYgKElzVHJhbnNhY3Rpb25TdGF0 ZSgpKQogCXsKIAkJLyoKQEAgLTIzNiw2ICsyNDQsMTIgQEAgU2V0Q2xpZW50RW5jb2Rpbmco aW50IGVuY29kaW5nKQogCQlyZXR1cm4gMDsKIAl9CiAKKwkvKgorCSAqIENhbm5vdCBkbyBj b252ZXJzaW9uIHdoZW4gY29sdW1uIGVuY3J5cHRpb24gaXMgZW5hYmxlZC4KKwkgKi8KKwlp ZiAoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJcmV0dXJuIC0x OworCiAJLyoKIAkgKiBTZWFyY2ggdGhlIGNhY2hlIGZvciB0aGUgZW50cnkgcHJldmlvdXNs eSBwcmVwYXJlZCBieQogCSAqIFByZXBhcmVDbGllbnRFbmNvZGluZzsgaWYgdGhlcmUgaXNu J3Qgb25lLCB3ZSBsb3NlLiAgV2hpbGUgYXQgaXQsCkBAIC0yOTYsNyArMzEwLDkgQEAgSW5p dGlhbGl6ZUNsaWVudEVuY29kaW5nKHZvaWQpCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFU VVJFX05PVF9TVVBQT1JURUQpLAogCQkJCSBlcnJtc2coImNvbnZlcnNpb24gYmV0d2VlbiAl cyBhbmQgJXMgaXMgbm90IHN1cHBvcnRlZCIsCiAJCQkJCQlwZ19lbmMybmFtZV90YmxbcGVu ZGluZ19jbGllbnRfZW5jb2RpbmddLm5hbWUsCi0JCQkJCQlHZXREYXRhYmFzZUVuY29kaW5n TmFtZSgpKSkpOworCQkJCQkJR2V0RGF0YWJhc2VFbmNvZGluZ05hbWUoKSksCisJCQkJIChN eVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKSA/CisJCQkJIGVycmRldGFp bCgiRW5jb2RpbmcgY29udmVyc2lvbiBpcyBub3QgcG9zc2libGUgd2hlbiBjb2x1bW4gZW5j cnlwdGlvbiBpcyBlbmFibGVkLiIpIDogMCkpOwogCX0KIAogCS8qCmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvY29tbW9uLmMgYi9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKaW5k ZXggNDRmYTUyY2M1NWZlLi44OWZlY2ViM2JkZTEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf ZHVtcC9jb21tb24uYworKysgYi9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKQEAgLTIwMSw2 ICsyMDEsMTIgQEAgZ2V0U2NoZW1hRGF0YShBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxl c1B0cikKIAlwZ19sb2dfaW5mbygicmVhZGluZyB1c2VyLWRlZmluZWQgY29sbGF0aW9ucyIp OwogCSh2b2lkKSBnZXRDb2xsYXRpb25zKGZvdXQsICZudW1Db2xsYXRpb25zKTsKIAorCXBn X2xvZ19pbmZvKCJyZWFkaW5nIGNvbHVtbiBtYXN0ZXIga2V5cyIpOworCWdldENvbHVtbk1h c3RlcktleXMoZm91dCk7CisKKwlwZ19sb2dfaW5mbygicmVhZGluZyBjb2x1bW4gZW5jcnlw dGlvbiBrZXlzIik7CisJZ2V0Q29sdW1uRW5jcnlwdGlvbktleXMoZm91dCk7CisKIAlwZ19s b2dfaW5mbygicmVhZGluZyB1c2VyLWRlZmluZWQgY29udmVyc2lvbnMiKTsKIAlnZXRDb252 ZXJzaW9ucyhmb3V0LCAmbnVtQ29udmVyc2lvbnMpOwogCmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2R1bXAvcGdfYmFja3VwLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgKaW5k ZXggZThiNzg5ODI5NzFlLi5mODlkYWFhMjMxNzEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19iYWNrdXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgKQEAg LTg0LDYgKzg0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX2Nvbm5QYXJhbXMKIAljaGFyCSAgICpw Z2hvc3Q7CiAJY2hhcgkgICAqdXNlcm5hbWU7CiAJdHJpdmFsdWUJcHJvbXB0UGFzc3dvcmQ7 CisJaW50CQkJY29sdW1uX2VuY3J5cHRpb247CiAJLyogSWYgbm90IE5VTEwsIHRoaXMgb3Zl cnJpZGVzIHRoZSBkYm5hbWUgb2J0YWluZWQgZnJvbSBjb21tYW5kIGxpbmUgKi8KIAkvKiAo YnV0ICpvbmx5KiB0aGUgREIgbmFtZSwgbm90IGFueXRoaW5nIGVsc2UgaW4gdGhlIGNvbm5z dHJpbmcpICovCiAJY2hhcgkgICAqb3ZlcnJpZGVfZGJuYW1lOwpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2JhY2t1cF9hcmNoaXZlci5jCmluZGV4IDIzMzE5OGFmYzBjOS4uOGEyYmQ3ZmI5NWFiIDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKKysrIGIv c3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCkBAIC0zNDExLDYgKzM0MTEs OCBAQCBfZ2V0T2JqZWN0RGVzY3JpcHRpb24oUFFFeHBCdWZmZXIgYnVmLCBUb2NFbnRyeSAq dGUpCiAKIAkvKiBvYmplY3RzIHRoYXQgZG9uJ3QgcmVxdWlyZSBzcGVjaWFsIGRlY29yYXRp b24gKi8KIAlpZiAoc3RyY21wKHR5cGUsICJDT0xMQVRJT04iKSA9PSAwIHx8CisJCXN0cmNt cCh0eXBlLCAiQ09MVU1OIEVOQ1JZUFRJT04gS0VZIikgPT0gMCB8fAorCQlzdHJjbXAodHlw ZSwgIkNPTFVNTiBNQVNURVIgS0VZIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIkNPTlZF UlNJT04iKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiRE9NQUlOIikgPT0gMCB8fAogCQlz dHJjbXAodHlwZSwgIlRBQkxFIikgPT0gMCB8fApAQCAtMzU4OCw2ICszNTkwLDggQEAgX3By aW50VG9jRW50cnkoQXJjaGl2ZUhhbmRsZSAqQUgsIFRvY0VudHJ5ICp0ZSwgYm9vbCBpc0Rh dGEpCiAJCWlmIChzdHJjbXAodGUtPmRlc2MsICJBR0dSRUdBVEUiKSA9PSAwIHx8CiAJCQlz dHJjbXAodGUtPmRlc2MsICJCTE9CIikgPT0gMCB8fAogCQkJc3RyY21wKHRlLT5kZXNjLCAi Q09MTEFUSU9OIikgPT0gMCB8fAorCQkJc3RyY21wKHRlLT5kZXNjLCAiQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIikgPT0gMCB8fAorCQkJc3RyY21wKHRlLT5kZXNjLCAiQ09MVU1OIE1BU1RF UiBLRVkiKSA9PSAwIHx8CiAJCQlzdHJjbXAodGUtPmRlc2MsICJDT05WRVJTSU9OIikgPT0g MCB8fAogCQkJc3RyY21wKHRlLT5kZXNjLCAiREFUQUJBU0UiKSA9PSAwIHx8CiAJCQlzdHJj bXAodGUtPmRlc2MsICJET01BSU4iKSA9PSAwIHx8CmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X2R1bXAvcGdfYmFja3VwX2RiLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2RiLmMK aW5kZXggMjhiYWE2OGZkNGU5Li45NjBjM2YzOWE5MWMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfZHVtcC9wZ19iYWNrdXBfZGIuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3Vw X2RiLmMKQEAgLTEzMyw4ICsxMzMsOCBAQCBDb25uZWN0RGF0YWJhc2UoQXJjaGl2ZSAqQUhY LAogCSAqLwogCWRvCiAJewotCQljb25zdCBjaGFyICprZXl3b3Jkc1s4XTsKLQkJY29uc3Qg Y2hhciAqdmFsdWVzWzhdOworCQljb25zdCBjaGFyICprZXl3b3Jkc1s5XTsKKwkJY29uc3Qg Y2hhciAqdmFsdWVzWzldOwogCQlpbnQJCQlpID0gMDsKIAogCQkvKgpAQCAtMTU5LDYgKzE1 OSwxMSBAQCBDb25uZWN0RGF0YWJhc2UoQXJjaGl2ZSAqQUhYLAogCQl9CiAJCWtleXdvcmRz W2ldID0gImZhbGxiYWNrX2FwcGxpY2F0aW9uX25hbWUiOwogCQl2YWx1ZXNbaSsrXSA9IHBy b2duYW1lOworCQlpZiAoY3BhcmFtcy0+Y29sdW1uX2VuY3J5cHRpb24pCisJCXsKKwkJCWtl eXdvcmRzW2ldID0gImNvbHVtbl9lbmNyeXB0aW9uIjsKKwkJCXZhbHVlc1tpKytdID0gIjEi OworCQl9CiAJCWtleXdvcmRzW2ldID0gTlVMTDsKIAkJdmFsdWVzW2krK10gPSBOVUxMOwog CQlBc3NlcnQoaSA8PSBsZW5ndGhvZihrZXl3b3JkcykpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXgg YmQ5YjA2NmU0ZWI4Li45ZGZlMDkxMTkxMjMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNDcsNiAr NDcsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkX2QuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX2Nhc3RfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY2xhc3NfZC5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19kZWZhdWx0X2FjbF9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19sYXJnZW9iamVjdF9k LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19sYXJnZW9iamVjdF9tZXRhZGF0YV9kLmgiCkBA IC0yMjYsNiArMjI3LDggQEAgc3RhdGljIHZvaWQgZHVtcEFjY2Vzc01ldGhvZChBcmNoaXZl ICpmb3V0LCBjb25zdCBBY2Nlc3NNZXRob2RJbmZvICphbWluZm8pOwogc3RhdGljIHZvaWQg ZHVtcE9wY2xhc3MoQXJjaGl2ZSAqZm91dCwgY29uc3QgT3BjbGFzc0luZm8gKm9wY2luZm8p Owogc3RhdGljIHZvaWQgZHVtcE9wZmFtaWx5KEFyY2hpdmUgKmZvdXQsIGNvbnN0IE9wZmFt aWx5SW5mbyAqb3BmaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wQ29sbGF0aW9uKEFyY2hpdmUg KmZvdXQsIGNvbnN0IENvbGxJbmZvICpjb2xsaW5mbyk7CitzdGF0aWMgdm9pZCBkdW1wQ29s dW1uRW5jcnlwdGlvbktleShBcmNoaXZlICpmb3V0LCBjb25zdCBDZWtJbmZvICpjZWtpbmZv KTsKK3N0YXRpYyB2b2lkIGR1bXBDb2x1bW5NYXN0ZXJLZXkoQXJjaGl2ZSAqZm91dCwgY29u c3QgQ21rSW5mbyAqY2VraW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wQ29udmVyc2lvbihBcmNo aXZlICpmb3V0LCBjb25zdCBDb252SW5mbyAqY29udmluZm8pOwogc3RhdGljIHZvaWQgZHVt cFJ1bGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgUnVsZUluZm8gKnJpbmZvKTsKIHN0YXRpYyB2 b2lkIGR1bXBBZ2coQXJjaGl2ZSAqZm91dCwgY29uc3QgQWdnSW5mbyAqYWdnaW5mbyk7CkBA IC0zODUsNiArMzg4LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCXsiYXR0 cmlidXRlLWluc2VydHMiLCBub19hcmd1bWVudCwgJmRvcHQuY29sdW1uX2luc2VydHMsIDF9 LAogCQl7ImJpbmFyeS11cGdyYWRlIiwgbm9fYXJndW1lbnQsICZkb3B0LmJpbmFyeV91cGdy YWRlLCAxfSwKIAkJeyJjb2x1bW4taW5zZXJ0cyIsIG5vX2FyZ3VtZW50LCAmZG9wdC5jb2x1 bW5faW5zZXJ0cywgMX0sCisJCXsiZGVjcnlwdC1lbmNyeXB0ZWQtY29sdW1ucyIsIG5vX2Fy Z3VtZW50LCAmZG9wdC5jcGFyYW1zLmNvbHVtbl9lbmNyeXB0aW9uLCAxfSwKIAkJeyJkaXNh YmxlLWRvbGxhci1xdW90aW5nIiwgbm9fYXJndW1lbnQsICZkb3B0LmRpc2FibGVfZG9sbGFy X3F1b3RpbmcsIDF9LAogCQl7ImRpc2FibGUtdHJpZ2dlcnMiLCBub19hcmd1bWVudCwgJmRv cHQuZGlzYWJsZV90cmlnZ2VycywgMX0sCiAJCXsiZW5hYmxlLXJvdy1zZWN1cml0eSIsIG5v X2FyZ3VtZW50LCAmZG9wdC5lbmFibGVfcm93X3NlY3VyaXR5LCAxfSwKQEAgLTY3Nyw2ICs2 ODEsOSBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkgKiAtLWluc2VydHMgYXJl IGFscmVhZHkgaW1wbGllZCBhYm92ZSBpZiAtLWNvbHVtbi1pbnNlcnRzIG9yCiAJICogLS1y b3dzLXBlci1pbnNlcnQgd2VyZSBzcGVjaWZpZWQuCiAJICovCisJaWYgKGRvcHQuY3BhcmFt cy5jb2x1bW5fZW5jcnlwdGlvbiAmJiBkb3B0LmR1bXBfaW5zZXJ0cyA9PSAwKQorCQlwZ19m YXRhbCgib3B0aW9uIC0tZGVjcnlwdF9lbmNyeXB0ZWRfY29sdW1ucyByZXF1aXJlcyBvcHRp b24gLS1pbnNlcnRzLCAtLXJvd3MtcGVyLWluc2VydCwgb3IgLS1jb2x1bW4taW5zZXJ0cyIp OworCiAJaWYgKGRvcHQuZG9fbm90aGluZyAmJiBkb3B0LmR1bXBfaW5zZXJ0cyA9PSAwKQog CQlwZ19mYXRhbCgib3B0aW9uIC0tb24tY29uZmxpY3QtZG8tbm90aGluZyByZXF1aXJlcyBv cHRpb24gLS1pbnNlcnRzLCAtLXJvd3MtcGVyLWluc2VydCwgb3IgLS1jb2x1bW4taW5zZXJ0 cyIpOwogCkBAIC0xMDIyLDYgKzEwMjksNyBAQCBoZWxwKGNvbnN0IGNoYXIgKnByb2duYW1l KQogCXByaW50ZihfKCIgIC14LCAtLW5vLXByaXZpbGVnZXMgICAgICAgICAgZG8gbm90IGR1 bXAgcHJpdmlsZWdlcyAoZ3JhbnQvcmV2b2tlKVxuIikpOwogCXByaW50ZihfKCIgIC0tYmlu YXJ5LXVwZ3JhZGUgICAgICAgICAgICAgZm9yIHVzZSBieSB1cGdyYWRlIHV0aWxpdGllcyBv bmx5XG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1jb2x1bW4taW5zZXJ0cyAgICAgICAgICAgICBk dW1wIGRhdGEgYXMgSU5TRVJUIGNvbW1hbmRzIHdpdGggY29sdW1uIG5hbWVzXG4iKSk7CisJ cHJpbnRmKF8oIiAgLS1kZWNyeXB0LWVuY3J5cHRlZC1jb2x1bW5zICBkZWNyeXB0IGVuY3J5 cHRlZCBjb2x1bW5zIGluIHRoZSBvdXRwdXRcbiIpKTsKIAlwcmludGYoXygiICAtLWRpc2Fi bGUtZG9sbGFyLXF1b3RpbmcgICAgIGRpc2FibGUgZG9sbGFyIHF1b3RpbmcsIHVzZSBTUUwg c3RhbmRhcmQgcXVvdGluZ1xuIikpOwogCXByaW50ZihfKCIgIC0tZGlzYWJsZS10cmlnZ2Vy cyAgICAgICAgICAgZGlzYWJsZSB0cmlnZ2VycyBkdXJpbmcgZGF0YS1vbmx5IHJlc3RvcmVc biIpKTsKIAlwcmludGYoXygiICAtLWVuYWJsZS1yb3ctc2VjdXJpdHkgICAgICAgIGVuYWJs ZSByb3cgc2VjdXJpdHkgKGR1bXAgb25seSBjb250ZW50IHVzZXIgaGFzXG4iCkBAIC01NTE4 LDYgKzU1MjYsMTM4IEBAIGdldENvbGxhdGlvbnMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1D b2xsYXRpb25zKQogCXJldHVybiBjb2xsaW5mbzsKIH0KIAorLyoKKyAqIGdldENvbHVtbkVu Y3J5cHRpb25LZXlzCisgKgkgIGdldCBpbmZvcm1hdGlvbiBhYm91dCBjb2x1bW4gZW5jcnlw dGlvbiBrZXlzCisgKi8KK3ZvaWQKK2dldENvbHVtbkVuY3J5cHRpb25LZXlzKEFyY2hpdmUg KmZvdXQpCit7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJUEdyZXN1bHQgICAqcmVzOworCWlu dAkJCW50dXBzOworCUNla0luZm8JICAgKmNla2luZm87CisJaW50CQkJaV90YWJsZW9pZDsK KwlpbnQJCQlpX29pZDsKKwlpbnQJCQlpX2Nla25hbWU7CisJaW50CQkJaV9jZWtvd25lcjsK KworCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uIDwgMTYwMDAwKQorCQlyZXR1cm47CisKKwlx dWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVy eSwKKwkJCQkJICAiU0VMRUNUIGNlay50YWJsZW9pZCwgY2VrLm9pZCwgY2VrLmNla25hbWUs XG4iCisJCQkJCSAgIiBjZWsuY2Vrb3duZXJcbiIKKwkJCQkJICAiRlJPTSBwZ19jb2xlbmNr ZXkgY2VrIik7CisKKwlyZXMgPSBFeGVjdXRlU3FsUXVlcnkoZm91dCwgcXVlcnktPmRhdGEs IFBHUkVTX1RVUExFU19PSyk7CisKKwludHVwcyA9IFBRbnR1cGxlcyhyZXMpOworCisJaV90 YWJsZW9pZCA9IFBRZm51bWJlcihyZXMsICJ0YWJsZW9pZCIpOworCWlfb2lkID0gUFFmbnVt YmVyKHJlcywgIm9pZCIpOworCWlfY2VrbmFtZSA9IFBRZm51bWJlcihyZXMsICJjZWtuYW1l Iik7CisJaV9jZWtvd25lciA9IFBRZm51bWJlcihyZXMsICJjZWtvd25lciIpOworCisJY2Vr aW5mbyA9IHBnX21hbGxvYyhudHVwcyAqIHNpemVvZihDZWtJbmZvKSk7CisKKwlmb3IgKGlu dCBpID0gMDsgaSA8IG50dXBzOyBpKyspCisJeworCQlQR3Jlc3VsdAkgICAqcmVzMjsKKwkJ aW50CQkJCW50dXBzMjsKKworCQljZWtpbmZvW2ldLmRvYmoub2JqVHlwZSA9IERPX0NFSzsK KwkJY2VraW5mb1tpXS5kb2JqLmNhdElkLnRhYmxlb2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUo cmVzLCBpLCBpX3RhYmxlb2lkKSk7CisJCWNla2luZm9baV0uZG9iai5jYXRJZC5vaWQgPSBh dG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfb2lkKSk7CisJCUFzc2lnbkR1bXBJZCgmY2Vr aW5mb1tpXS5kb2JqKTsKKwkJY2VraW5mb1tpXS5kb2JqLm5hbWUgPSBwZ19zdHJkdXAoUFFn ZXR2YWx1ZShyZXMsIGksIGlfY2VrbmFtZSkpOworCQljZWtpbmZvW2ldLnJvbG5hbWUgPSBn ZXRSb2xlTmFtZShQUWdldHZhbHVlKHJlcywgaSwgaV9jZWtvd25lcikpOworCisJCXJlc2V0 UFFFeHBCdWZmZXIocXVlcnkpOworCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKKwkJCQkJ CSAgIlNFTEVDVCAoU0VMRUNUIGNta25hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbG1hc3Rl cmtleSBXSEVSRSBwZ19jb2xtYXN0ZXJrZXkub2lkID0gY2tkY21raWQpIEFTIGNla2Nta25h bWUsXG4iCisJCQkJCQkgICIgY2tkY21rYWxnLCBja2RlbmN2YWxcbiIKKwkJCQkJCSAgIkZS T00gcGdfY2F0YWxvZy5wZ19jb2xlbmNrZXlkYXRhXG4iCisJCQkJCQkgICJXSEVSRSBja2Rj ZWtpZCA9ICV1IiwgY2VraW5mb1tpXS5kb2JqLmNhdElkLm9pZCk7CisJCXJlczIgPSBFeGVj dXRlU3FsUXVlcnkoZm91dCwgcXVlcnktPmRhdGEsIFBHUkVTX1RVUExFU19PSyk7CisJCW50 dXBzMiA9IFBRbnR1cGxlcyhyZXMyKTsKKwkJY2VraW5mb1tpXS5udW1kYXRhID0gbnR1cHMy OworCQljZWtpbmZvW2ldLmNla2Nta25hbWVzID0gcGdfbWFsbG9jKHNpemVvZihjaGFyICop ICogbnR1cHMyKTsKKwkJY2VraW5mb1tpXS5jZWtjbWthbGdzID0gcGdfbWFsbG9jKHNpemVv ZihpbnQpICogbnR1cHMyKTsKKwkJY2VraW5mb1tpXS5jZWtlbmN2YWxzID0gcGdfbWFsbG9j KHNpemVvZihjaGFyICopICogbnR1cHMyKTsKKwkJZm9yIChpbnQgaiA9IDA7IGogPCBudHVw czI7IGorKykKKwkJeworCQkJY2VraW5mb1tpXS5jZWtjbWtuYW1lc1tqXSA9IHBnX3N0cmR1 cChQUWdldHZhbHVlKHJlczIsIGosIFBRZm51bWJlcihyZXMyLCAiY2VrY21rbmFtZSIpKSk7 CisJCQljZWtpbmZvW2ldLmNla2Nta2FsZ3Nbal0gPSBhdG9pKFBRZ2V0dmFsdWUocmVzMiwg aiwgUFFmbnVtYmVyKHJlczIsICJja2RjbWthbGciKSkpOworCQkJY2VraW5mb1tpXS5jZWtl bmN2YWxzW2pdID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzMiwgaiwgUFFmbnVtYmVyKHJl czIsICJja2RlbmN2YWwiKSkpOworCQl9CisJCVBRY2xlYXIocmVzMik7CisKKwkJc2VsZWN0 RHVtcGFibGVPYmplY3QoJihjZWtpbmZvW2ldLmRvYmopLCBmb3V0KTsKKwl9CisJUFFjbGVh cihyZXMpOworCisJZGVzdHJveVBRRXhwQnVmZmVyKHF1ZXJ5KTsKK30KKworLyoKKyAqIGdl dENvbHVtbk1hc3RlcktleXMKKyAqCSAgZ2V0IGluZm9ybWF0aW9uIGFib3V0IGNvbHVtbiBt YXN0ZXIga2V5cworICovCit2b2lkCitnZXRDb2x1bW5NYXN0ZXJLZXlzKEFyY2hpdmUgKmZv dXQpCit7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJUEdyZXN1bHQgICAqcmVzOworCWludAkJ CW50dXBzOworCUNta0luZm8JICAgKmNta2luZm87CisJaW50CQkJaV90YWJsZW9pZDsKKwlp bnQJCQlpX29pZDsKKwlpbnQJCQlpX2Nta25hbWU7CisJaW50CQkJaV9jbWtvd25lcjsKKwlp bnQJCQlpX2Nta3JlYWxtOworCisJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPCAxNjAwMDAp CisJCXJldHVybjsKKworCXF1ZXJ5ID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKworCWFwcGVu ZFBRRXhwQnVmZmVyKHF1ZXJ5LAorCQkJCQkgICJTRUxFQ1QgY21rLnRhYmxlb2lkLCBjbWsu b2lkLCBjbWsuY21rbmFtZSxcbiIKKwkJCQkJICAiIGNtay5jbWtvd25lciwgY21rLmNta3Jl YWxtXG4iCisJCQkJCSAgIkZST00gcGdfY29sbWFzdGVya2V5IGNtayIpOworCisJcmVzID0g RXhlY3V0ZVNxbFF1ZXJ5KGZvdXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0spOwor CisJbnR1cHMgPSBQUW50dXBsZXMocmVzKTsKKworCWlfdGFibGVvaWQgPSBQUWZudW1iZXIo cmVzLCAidGFibGVvaWQiKTsKKwlpX29pZCA9IFBRZm51bWJlcihyZXMsICJvaWQiKTsKKwlp X2Nta25hbWUgPSBQUWZudW1iZXIocmVzLCAiY21rbmFtZSIpOworCWlfY21rb3duZXIgPSBQ UWZudW1iZXIocmVzLCAiY21rb3duZXIiKTsKKwlpX2Nta3JlYWxtID0gUFFmbnVtYmVyKHJl cywgImNta3JlYWxtIik7CisKKwljbWtpbmZvID0gcGdfbWFsbG9jKG50dXBzICogc2l6ZW9m KENta0luZm8pKTsKKworCWZvciAoaW50IGkgPSAwOyBpIDwgbnR1cHM7IGkrKykKKwl7CisJ CWNta2luZm9baV0uZG9iai5vYmpUeXBlID0gRE9fQ01LOworCQljbWtpbmZvW2ldLmRvYmou Y2F0SWQudGFibGVvaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdGFibGVvaWQp KTsKKwkJY21raW5mb1tpXS5kb2JqLmNhdElkLm9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJl cywgaSwgaV9vaWQpKTsKKwkJQXNzaWduRHVtcElkKCZjbWtpbmZvW2ldLmRvYmopOworCQlj bWtpbmZvW2ldLmRvYmoubmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9j bWtuYW1lKSk7CisJCWNta2luZm9baV0ucm9sbmFtZSA9IGdldFJvbGVOYW1lKFBRZ2V0dmFs dWUocmVzLCBpLCBpX2Nta293bmVyKSk7CisJCWNta2luZm9baV0uY21rcmVhbG0gPSBwZ19z dHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfY21rcmVhbG0pKTsKKworCQlzZWxlY3REdW1w YWJsZU9iamVjdCgmKGNta2luZm9baV0uZG9iaiksIGZvdXQpOworCX0KKwlQUWNsZWFyKHJl cyk7CisKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOworfQorCiAvKgogICogZ2V0Q29u dmVyc2lvbnM6CiAgKgkgIHJlYWQgYWxsIGNvbnZlcnNpb25zIGluIHRoZSBzeXN0ZW0gY2F0 YWxvZ3MgYW5kIHJldHVybiB0aGVtIGluIHRoZQpAQCAtODEwOCw2ICs4MjQ4LDkgQEAgZ2V0 VGFibGVBdHRycyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRibGluZm8sIGludCBudW1U YWJsZXMpCiAJaW50CQkJaV90eXBzdG9yYWdlOwogCWludAkJCWlfYXR0aWRlbnRpdHk7CiAJ aW50CQkJaV9hdHRnZW5lcmF0ZWQ7CisJaW50CQkJaV9hdHRjZWtuYW1lOworCWludAkJCWlf YXR0ZW5jYWxnOworCWludAkJCWlfYXR0ZW5jZGV0OwogCWludAkJCWlfYXR0aXNkcm9wcGVk OwogCWludAkJCWlfYXR0bGVuOwogCWludAkJCWlfYXR0YWxpZ247CkBAIC04MjE3LDE3ICs4 MzYwLDI5IEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0Ymxp bmZvLCBpbnQgbnVtVGFibGVzKQogCiAJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTIw MDAwKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLAotCQkJCQkJCSAiYS5hdHRnZW5lcmF0 ZWRcbiIpOworCQkJCQkJCSAiYS5hdHRnZW5lcmF0ZWQsXG4iKTsKKwllbHNlCisJCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKHEsCisJCQkJCQkJICInJyBBUyBhdHRnZW5lcmF0ZWQsXG4iKTsK KworCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE2MDAwMCkKKwkJYXBwZW5kUFFFeHBC dWZmZXIocSwKKwkJCQkJCSAgIihTRUxFQ1QgY2VrbmFtZSBGUk9NIHBnX2NvbGVuY2tleSBj ZWsgV0hFUkUgY2VrLm9pZCA9IGEuYXR0Y2VrKSBBUyBhdHRjZWtuYW1lLFxuIgorCQkJCQkJ ICAiQ0FTRSBhdHR0eXBpZCBXSEVOICV1IFRIRU4gdHJ1ZSBXSEVOICV1IFRIRU4gZmFsc2Ug RU5EIEFTIGF0dGVuY2RldCxcbiIKKwkJCQkJCSAgImF0dGVuY2FsZ1xuIiwKKwkJCQkJCSAg UEdfRU5DUllQVEVEX0RFVE9JRCwgUEdfRU5DUllQVEVEX1JORE9JRCk7CiAJZWxzZQogCQlh cHBlbmRQUUV4cEJ1ZmZlclN0cihxLAotCQkJCQkJCSAiJycgQVMgYXR0Z2VuZXJhdGVkXG4i KTsKKwkJCQkJCQkgIk5VTEwgQVMgYXR0Y2VrbmFtZSxcbiIKKwkJCQkJCQkgIk5VTEwgQVMg YXR0ZW5jZGV0LFxuIgorCQkJCQkJCSAiTlVMTCBBUyBhdHRlbmNhbGdcbiIpOwogCiAJLyog bmVlZCBsZWZ0IGpvaW4gdG8gcGdfdHlwZSB0byBub3QgZmFpbCBvbiBkcm9wcGVkIGNvbHVt bnMgLi4uICovCiAJYXBwZW5kUFFFeHBCdWZmZXIocSwKIAkJCQkJICAiRlJPTSB1bm5lc3Qo JyVzJzo6cGdfY2F0YWxvZy5vaWRbXSkgQVMgc3JjKHRibG9pZClcbiIKIAkJCQkJICAiSk9J TiBwZ19jYXRhbG9nLnBnX2F0dHJpYnV0ZSBhIE9OIChzcmMudGJsb2lkID0gYS5hdHRyZWxp ZCkgIgogCQkJCQkgICJMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ190eXBlIHQgIgotCQkJCQkg ICJPTiAoYS5hdHR0eXBpZCA9IHQub2lkKVxuIgorCQkJCQkgICJPTiAoQ0FTRSBXSEVOIGEu YXR0cmVhbHR5cGlkIDw+IDAgVEhFTiBhLmF0dHJlYWx0eXBpZCBFTFNFIGEuYXR0dHlwaWQg RU5EID0gdC5vaWQpXG4iCiAJCQkJCSAgIldIRVJFIGEuYXR0bnVtID4gMDo6cGdfY2F0YWxv Zy5pbnQyXG4iCiAJCQkJCSAgIk9SREVSIEJZIGEuYXR0cmVsaWQsIGEuYXR0bnVtIiwKIAkJ CQkJICB0YmxvaWRzLT5kYXRhKTsKQEAgLTgyNDYsNiArODQwMSw5IEBAIGdldFRhYmxlQXR0 cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQgbnVtVGFibGVzKQog CWlfdHlwc3RvcmFnZSA9IFBRZm51bWJlcihyZXMsICJ0eXBzdG9yYWdlIik7CiAJaV9hdHRp ZGVudGl0eSA9IFBRZm51bWJlcihyZXMsICJhdHRpZGVudGl0eSIpOwogCWlfYXR0Z2VuZXJh dGVkID0gUFFmbnVtYmVyKHJlcywgImF0dGdlbmVyYXRlZCIpOworCWlfYXR0Y2VrbmFtZSA9 IFBRZm51bWJlcihyZXMsICJhdHRjZWtuYW1lIik7CisJaV9hdHRlbmNkZXQgPSBQUWZudW1i ZXIocmVzLCAiYXR0ZW5jZGV0Iik7CisJaV9hdHRlbmNhbGcgPSBQUWZudW1iZXIocmVzLCAi YXR0ZW5jYWxnIik7CiAJaV9hdHRpc2Ryb3BwZWQgPSBQUWZudW1iZXIocmVzLCAiYXR0aXNk cm9wcGVkIik7CiAJaV9hdHRsZW4gPSBQUWZudW1iZXIocmVzLCAiYXR0bGVuIik7CiAJaV9h dHRhbGlnbiA9IFBRZm51bWJlcihyZXMsICJhdHRhbGlnbiIpOwpAQCAtODMwNyw2ICs4NDY1 LDkgQEAgZ2V0VGFibGVBdHRycyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRibGluZm8s IGludCBudW1UYWJsZXMpCiAJCXRiaW5mby0+dHlwc3RvcmFnZSA9IChjaGFyICopIHBnX21h bGxvYyhudW1hdHRzICogc2l6ZW9mKGNoYXIpKTsKIAkJdGJpbmZvLT5hdHRpZGVudGl0eSA9 IChjaGFyICopIHBnX21hbGxvYyhudW1hdHRzICogc2l6ZW9mKGNoYXIpKTsKIAkJdGJpbmZv LT5hdHRnZW5lcmF0ZWQgPSAoY2hhciAqKSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihj aGFyKSk7CisJCXRiaW5mby0+YXR0Y2VrbmFtZSA9IChjaGFyICoqKSBwZ19tYWxsb2MobnVt YXR0cyAqIHNpemVvZihjaGFyICopKTsKKwkJdGJpbmZvLT5hdHRlbmNkZXQgPSAoYm9vbCAq KSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihib29sKSk7CisJCXRiaW5mby0+YXR0ZW5j YWxnID0gKGludCAqKSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihpbnQpKTsKIAkJdGJp bmZvLT5hdHRpc2Ryb3BwZWQgPSAoYm9vbCAqKSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVv Zihib29sKSk7CiAJCXRiaW5mby0+YXR0bGVuID0gKGludCAqKSBwZ19tYWxsb2MobnVtYXR0 cyAqIHNpemVvZihpbnQpKTsKIAkJdGJpbmZvLT5hdHRhbGlnbiA9IChjaGFyICopIHBnX21h bGxvYyhudW1hdHRzICogc2l6ZW9mKGNoYXIpKTsKQEAgLTgzMzUsNiArODQ5NiwxOCBAQCBn ZXRUYWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJsaW5mbywgaW50IG51 bVRhYmxlcykKIAkJCXRiaW5mby0+YXR0aWRlbnRpdHlbal0gPSAqKFBRZ2V0dmFsdWUocmVz LCByLCBpX2F0dGlkZW50aXR5KSk7CiAJCQl0YmluZm8tPmF0dGdlbmVyYXRlZFtqXSA9ICoo UFFnZXR2YWx1ZShyZXMsIHIsIGlfYXR0Z2VuZXJhdGVkKSk7CiAJCQl0YmluZm8tPm5lZWRz X292ZXJyaWRlID0gdGJpbmZvLT5uZWVkc19vdmVycmlkZSB8fCAodGJpbmZvLT5hdHRpZGVu dGl0eVtqXSA9PSBBVFRSSUJVVEVfSURFTlRJVFlfQUxXQVlTKTsKKwkJCWlmICghUFFnZXRp c251bGwocmVzLCByLCBpX2F0dGNla25hbWUpKQorCQkJCXRiaW5mby0+YXR0Y2VrbmFtZVtq XSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgciwgaV9hdHRjZWtuYW1lKSk7CisJCQll bHNlCisJCQkJdGJpbmZvLT5hdHRjZWtuYW1lW2pdID0gTlVMTDsKKwkJCWlmICghUFFnZXRp c251bGwocmVzLCByLCBpX2F0dGVuY2RldCkpCisJCQkJdGJpbmZvLT5hdHRlbmNkZXRbal0g PSAoUFFnZXR2YWx1ZShyZXMsIHIsIGlfYXR0ZW5jZGV0KVswXSA9PSAndCcpOworCQkJZWxz ZQorCQkJCXRiaW5mby0+YXR0ZW5jZGV0W2pdID0gMDsKKwkJCWlmICghUFFnZXRpc251bGwo cmVzLCByLCBpX2F0dGVuY2FsZykpCisJCQkJdGJpbmZvLT5hdHRlbmNhbGdbal0gPSBhdG9p KFBRZ2V0dmFsdWUocmVzLCByLCBpX2F0dGVuY2FsZykpOworCQkJZWxzZQorCQkJCXRiaW5m by0+YXR0ZW5jYWxnW2pdID0gMDsKIAkJCXRiaW5mby0+YXR0aXNkcm9wcGVkW2pdID0gKFBR Z2V0dmFsdWUocmVzLCByLCBpX2F0dGlzZHJvcHBlZClbMF0gPT0gJ3QnKTsKIAkJCXRiaW5m by0+YXR0bGVuW2pdID0gYXRvaShQUWdldHZhbHVlKHJlcywgciwgaV9hdHRsZW4pKTsKIAkJ CXRiaW5mby0+YXR0YWxpZ25bal0gPSAqKFBRZ2V0dmFsdWUocmVzLCByLCBpX2F0dGFsaWdu KSk7CkBAIC05ODU5LDYgKzEwMDMyLDEyIEBAIGR1bXBEdW1wYWJsZU9iamVjdChBcmNoaXZl ICpmb3V0LCBEdW1wYWJsZU9iamVjdCAqZG9iaikKIAkJY2FzZSBET19PUEZBTUlMWToKIAkJ CWR1bXBPcGZhbWlseShmb3V0LCAoY29uc3QgT3BmYW1pbHlJbmZvICopIGRvYmopOwogCQkJ YnJlYWs7CisJCWNhc2UgRE9fQ0VLOgorCQkJZHVtcENvbHVtbkVuY3J5cHRpb25LZXkoZm91 dCwgKGNvbnN0IENla0luZm8gKikgZG9iaik7CisJCQlicmVhazsKKwkJY2FzZSBET19DTUs6 CisJCQlkdW1wQ29sdW1uTWFzdGVyS2V5KGZvdXQsIChjb25zdCBDbWtJbmZvICopIGRvYmop OworCQkJYnJlYWs7CiAJCWNhc2UgRE9fQ09MTEFUSU9OOgogCQkJZHVtcENvbGxhdGlvbihm b3V0LCAoY29uc3QgQ29sbEluZm8gKikgZG9iaik7CiAJCQlicmVhazsKQEAgLTEzMjUyLDYg KzEzNDMxLDE1MyBAQCBkdW1wQ29sbGF0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IENvbGxJ bmZvICpjb2xsaW5mbykKIAlmcmVlKHFjb2xsbmFtZSk7CiB9CiAKK3N0YXRpYyBjb25zdCBj aGFyICoKK2dldF9lbmNhbGdfbmFtZShpbnQgbnVtKQoreworCXN3aXRjaCAobnVtKQorCXsK KwkJY2FzZSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMToKKwkJCXJldHVybiAiUlNBRVNfT0FF UF9TSEFfMSI7CisJCWNhc2UgUEdfQ01LX1JTQUVTX09BRVBfU0hBXzI1NjoKKwkJCXJldHVy biAiUlNBRVNfT0FFUF9TSEFfMjU2IjsKKworCQljYXNlIFBHX0NFS19BRUFEX0FFU18xMjhf Q0JDX0hNQUNfU0hBXzI1NjoKKwkJCXJldHVybiAiQUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NI QV8yNTYiOworCQljYXNlIFBHX0NFS19BRUFEX0FFU18xOTJfQ0JDX0hNQUNfU0hBXzM4NDoK KwkJCXJldHVybiAiQUVBRF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8zODQiOworCQljYXNlIFBH X0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4NDoKKwkJCXJldHVybiAiQUVBRF9B RVNfMjU2X0NCQ19ITUFDX1NIQV8zODQiOworCQljYXNlIFBHX0NFS19BRUFEX0FFU18yNTZf Q0JDX0hNQUNfU0hBXzUxMjoKKwkJCXJldHVybiAiQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NI QV81MTIiOworCisJCWRlZmF1bHQ6CisJCQlyZXR1cm4gTlVMTDsKKwl9Cit9CisKKy8qCisg KiBkdW1wQ29sdW1uRW5jcnlwdGlvbktleQorICoJICBkdW1wIHRoZSBkZWZpbml0aW9uIG9m IHRoZSBnaXZlbiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkKKyAqLworc3RhdGljIHZvaWQKK2R1 bXBDb2x1bW5FbmNyeXB0aW9uS2V5KEFyY2hpdmUgKmZvdXQsIGNvbnN0IENla0luZm8gKmNl a2luZm8pCit7CisJRHVtcE9wdGlvbnMgKmRvcHQgPSBmb3V0LT5kb3B0OworCVBRRXhwQnVm ZmVyIGRlbHE7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJY2hhcgkgICAqcWNla25hbWU7CisK KwkvKiBEbyBub3RoaW5nIGluIGRhdGEtb25seSBkdW1wICovCisJaWYgKGRvcHQtPmRhdGFP bmx5KQorCQlyZXR1cm47CisKKwlkZWxxID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKwlxdWVy eSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwlxY2VrbmFtZSA9IHBnX3N0cmR1cChmbXRJ ZChjZWtpbmZvLT5kb2JqLm5hbWUpKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEsICJE Uk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSAlcztcbiIsCisJCQkJCSAgcWNla25hbWUpOwor CisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04g S0VZICVzIFdJVEggVkFMVUVTICIsCisJCQkJCSAgcWNla25hbWUpOworCisJZm9yIChpbnQg aSA9IDA7IGkgPCBjZWtpbmZvLT5udW1kYXRhOyBpKyspCisJeworCQlhcHBlbmRQUUV4cEJ1 ZmZlcihxdWVyeSwgIigiKTsKKworCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgImNvbHVt bl9tYXN0ZXJfa2V5ID0gJXMsICIsIGZtdElkKGNla2luZm8tPmNla2Nta25hbWVzW2ldKSk7 CisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiYWxnb3JpdGhtID0gJyVzJywgIiwgZ2V0 X2VuY2FsZ19uYW1lKGNla2luZm8tPmNla2Nta2FsZ3NbaV0pKTsKKwkJYXBwZW5kUFFFeHBC dWZmZXIocXVlcnksICJlbmNyeXB0ZWRfdmFsdWUgPSAiKTsKKwkJYXBwZW5kU3RyaW5nTGl0 ZXJhbEFIKHF1ZXJ5LCBjZWtpbmZvLT5jZWtlbmN2YWxzW2ldLCBmb3V0KTsKKworCQlhcHBl bmRQUUV4cEJ1ZmZlcihxdWVyeSwgIikiKTsKKwkJaWYgKGkgPCBjZWtpbmZvLT5udW1kYXRh IC0gMSkKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIsICIpOworCX0KKworCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiO1xuIik7CisKKwlpZiAoY2VraW5mby0+ZG9iai5k dW1wICYgRFVNUF9DT01QT05FTlRfREVGSU5JVElPTikKKwkJQXJjaGl2ZUVudHJ5KGZvdXQs IGNla2luZm8tPmRvYmouY2F0SWQsIGNla2luZm8tPmRvYmouZHVtcElkLAorCQkJCQkgQVJD SElWRV9PUFRTKC50YWcgPSBjZWtpbmZvLT5kb2JqLm5hbWUsCisJCQkJCQkJCSAgLm93bmVy ID0gY2VraW5mby0+cm9sbmFtZSwKKwkJCQkJCQkJICAuZGVzY3JpcHRpb24gPSAiQ09MVU1O IEVOQ1JZUFRJT04gS0VZIiwKKwkJCQkJCQkJICAuc2VjdGlvbiA9IFNFQ1RJT05fUFJFX0RB VEEsCisJCQkJCQkJCSAgLmNyZWF0ZVN0bXQgPSBxdWVyeS0+ZGF0YSwKKwkJCQkJCQkJICAu ZHJvcFN0bXQgPSBkZWxxLT5kYXRhKSk7CisKKwlpZiAoY2VraW5mby0+ZG9iai5kdW1wICYg RFVNUF9DT01QT05FTlRfQ09NTUVOVCkKKwkJZHVtcENvbW1lbnQoZm91dCwgIkNPTFVNTiBF TkNSWVBUSU9OIEtFWSIsIHFjZWtuYW1lLAorCQkJCQlOVUxMLCBjZWtpbmZvLT5yb2xuYW1l LAorCQkJCQljZWtpbmZvLT5kb2JqLmNhdElkLCAwLCBjZWtpbmZvLT5kb2JqLmR1bXBJZCk7 CisKKwlpZiAoY2VraW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfU0VDTEFCRUwp CisJCWR1bXBTZWNMYWJlbChmb3V0LCAiQ09MVU1OIEVOQ1JZUFRJT04gS0VZIiwgcWNla25h bWUsCisJCQkJCSBOVUxMLCBjZWtpbmZvLT5yb2xuYW1lLAorCQkJCQkgY2VraW5mby0+ZG9i ai5jYXRJZCwgMCwgY2VraW5mby0+ZG9iai5kdW1wSWQpOworCisJZGVzdHJveVBRRXhwQnVm ZmVyKGRlbHEpOworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7CisJZnJlZShxY2VrbmFt ZSk7Cit9CisKKy8qCisgKiBkdW1wQ29sdW1uTWFzdGVyS2V5CisgKgkgIGR1bXAgdGhlIGRl ZmluaXRpb24gb2YgdGhlIGdpdmVuIGNvbHVtbiBtYXN0ZXIga2V5CisgKi8KK3N0YXRpYyB2 b2lkCitkdW1wQ29sdW1uTWFzdGVyS2V5KEFyY2hpdmUgKmZvdXQsIGNvbnN0IENta0luZm8g KmNta2luZm8pCit7CisJRHVtcE9wdGlvbnMgKmRvcHQgPSBmb3V0LT5kb3B0OworCVBRRXhw QnVmZmVyIGRlbHE7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJY2hhcgkgICAqcWNta25hbWU7 CisKKwkvKiBEbyBub3RoaW5nIGluIGRhdGEtb25seSBkdW1wICovCisJaWYgKGRvcHQtPmRh dGFPbmx5KQorCQlyZXR1cm47CisKKwlkZWxxID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKwlx dWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwlxY21rbmFtZSA9IHBnX3N0cmR1cChm bXRJZChjbWtpbmZvLT5kb2JqLm5hbWUpKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEs ICJEUk9QIENPTFVNTiBNQVNURVIgS0VZICVzO1xuIiwKKwkJCQkJICBxY21rbmFtZSk7CisK KwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSAl cyBXSVRIICgiLAorCQkJCQkgIHFjbWtuYW1lKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1 ZXJ5LCAicmVhbG0gPSAiKTsKKwlhcHBlbmRTdHJpbmdMaXRlcmFsQUgocXVlcnksIGNta2lu Zm8tPmNta3JlYWxtLCBmb3V0KTsKKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAi KTtcbiIpOworCisJaWYgKGNta2luZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0RF RklOSVRJT04pCisJCUFyY2hpdmVFbnRyeShmb3V0LCBjbWtpbmZvLT5kb2JqLmNhdElkLCBj bWtpbmZvLT5kb2JqLmR1bXBJZCwKKwkJCQkJIEFSQ0hJVkVfT1BUUygudGFnID0gY21raW5m by0+ZG9iai5uYW1lLAorCQkJCQkJCQkgIC5vd25lciA9IGNta2luZm8tPnJvbG5hbWUsCisJ CQkJCQkJCSAgLmRlc2NyaXB0aW9uID0gIkNPTFVNTiBNQVNURVIgS0VZIiwKKwkJCQkJCQkJ ICAuc2VjdGlvbiA9IFNFQ1RJT05fUFJFX0RBVEEsCisJCQkJCQkJCSAgLmNyZWF0ZVN0bXQg PSBxdWVyeS0+ZGF0YSwKKwkJCQkJCQkJICAuZHJvcFN0bXQgPSBkZWxxLT5kYXRhKSk7CisK KwlpZiAoY21raW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfQ09NTUVOVCkKKwkJ ZHVtcENvbW1lbnQoZm91dCwgIkNPTFVNTiBNQVNURVIgS0VZIiwgcWNta25hbWUsCisJCQkJ CU5VTEwsIGNta2luZm8tPnJvbG5hbWUsCisJCQkJCWNta2luZm8tPmRvYmouY2F0SWQsIDAs IGNta2luZm8tPmRvYmouZHVtcElkKTsKKworCWlmIChjbWtpbmZvLT5kb2JqLmR1bXAgJiBE VU1QX0NPTVBPTkVOVF9TRUNMQUJFTCkKKwkJZHVtcFNlY0xhYmVsKGZvdXQsICJDT0xVTU4g TUFTVEVSIEtFWSIsIHFjbWtuYW1lLAorCQkJCQkgTlVMTCwgY21raW5mby0+cm9sbmFtZSwK KwkJCQkJIGNta2luZm8tPmRvYmouY2F0SWQsIDAsIGNta2luZm8tPmRvYmouZHVtcElkKTsK KworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihkZWxxKTsKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVl cnkpOworCWZyZWUocWNta25hbWUpOworfQorCiAvKgogICogZHVtcENvbnZlcnNpb24KICAq CSAgd3JpdGUgb3V0IGEgc2luZ2xlIGNvbnZlcnNpb24gZGVmaW5pdGlvbgpAQCAtMTUzMzUs NiArMTU2NjEsMjIgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFRh YmxlSW5mbyAqdGJpbmZvKQogCQkJCQkJCQkJCSAgdGJpbmZvLT5hdHR0eXBuYW1lc1tqXSk7 CiAJCQkJCX0KIAorCQkJCQlpZiAodGJpbmZvLT5hdHRjZWtuYW1lW2pdKQorCQkJCQl7CisJ CQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiIEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5j cnlwdGlvbl9rZXkgPSAlcywgIiwKKwkJCQkJCQkJCQkgIGZtdElkKHRiaW5mby0+YXR0Y2Vr bmFtZVtqXSkpOworCQkJCQkJLyoKKwkJCQkJCSAqIFRvIHJlZHVjZSBvdXRwdXQgc2l6ZSwg d2UgZG9uJ3QgcHJpbnQgdGhlIGRlZmF1bHQKKwkJCQkJCSAqIG9mIGVuY3J5cHRpb25fdHlw ZSwgYnV0IHdlIGRvIHByaW50IHRoZSBkZWZhdWx0IG9mCisJCQkJCQkgKiBhbGdvcml0aG0s IHNpbmNlIHdlIG1pZ2h0IHdhbnQgdG8gY2hhbmdlIHRvIGEgbmV3CisJCQkJCQkgKiBkZWZh dWx0IGFsZ29yaXRobSBzb21ldGltZSBpbiB0aGUgZnV0dXJlLgorCQkJCQkJICovCisJCQkJ CQlpZiAodGJpbmZvLT5hdHRlbmNkZXRbal0pCisJCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIo cSwgImVuY3J5cHRpb25fdHlwZSA9IGRldGVybWluaXN0aWMsICIpOworCQkJCQkJYXBwZW5k UFFFeHBCdWZmZXIocSwgImFsZ29yaXRobSA9ICclcycpIiwKKwkJCQkJCQkJCQkgIGdldF9l bmNhbGdfbmFtZSh0YmluZm8tPmF0dGVuY2FsZ1tqXSkpOworCQkJCQl9CisKIAkJCQkJaWYg KHByaW50X2RlZmF1bHQpCiAJCQkJCXsKIAkJCQkJCWlmICh0YmluZm8tPmF0dGdlbmVyYXRl ZFtqXSA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRCkKQEAgLTE3ODk5LDYgKzE4MjQx LDggQEAgYWRkQm91bmRhcnlEZXBlbmRlbmNpZXMoRHVtcGFibGVPYmplY3QgKipkb2Jqcywg aW50IG51bU9ianMsCiAJCQljYXNlIERPX0FDQ0VTU19NRVRIT0Q6CiAJCQljYXNlIERPX09Q Q0xBU1M6CiAJCQljYXNlIERPX09QRkFNSUxZOgorCQkJY2FzZSBET19DRUs6CisJCQljYXNl IERPX0NNSzoKIAkJCWNhc2UgRE9fQ09MTEFUSU9OOgogCQkJY2FzZSBET19DT05WRVJTSU9O OgogCQkJY2FzZSBET19UQUJMRToKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDQyN2Y1ZDQ1ZjY1Yi4u Y2JkYmFlOTAzZjMzIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisr KyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTQ3LDYgKzQ3LDggQEAgdHlwZWRl ZiBlbnVtCiAJRE9fQUNDRVNTX01FVEhPRCwKIAlET19PUENMQVNTLAogCURPX09QRkFNSUxZ LAorCURPX0NFSywKKwlET19DTUssCiAJRE9fQ09MTEFUSU9OLAogCURPX0NPTlZFUlNJT04s CiAJRE9fVEFCTEUsCkBAIC0zMzMsNiArMzM1LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgX3RhYmxl SW5mbwogCWJvb2wJICAgKmF0dGlzZHJvcHBlZDsJLyogdHJ1ZSBpZiBhdHRyIGlzIGRyb3Bw ZWQ7IGRvbid0IGR1bXAgaXQgKi8KIAljaGFyCSAgICphdHRpZGVudGl0eTsKIAljaGFyCSAg ICphdHRnZW5lcmF0ZWQ7CisJY2hhcgkgICoqYXR0Y2VrbmFtZTsKKwlpbnQJCSAgICphdHRl bmNhbGc7CisJYm9vbAkgICAqYXR0ZW5jZGV0OwogCWludAkJICAgKmF0dGxlbjsJCQkvKiBh dHRyaWJ1dGUgbGVuZ3RoLCB1c2VkIGJ5IGJpbmFyeV91cGdyYWRlICovCiAJY2hhcgkgICAq YXR0YWxpZ247CQkvKiBhdHRyaWJ1dGUgYWxpZ24sIHVzZWQgYnkgYmluYXJ5X3VwZ3JhZGUg Ki8KIAlib29sCSAgICphdHRpc2xvY2FsOwkJLyogdHJ1ZSBpZiBhdHRyIGhhcyBsb2NhbCBk ZWZpbml0aW9uICovCkBAIC02NjQsNiArNjY5LDMwIEBAIHR5cGVkZWYgc3RydWN0IF9TdWJz Y3JpcHRpb25JbmZvCiAJY2hhcgkgICAqc3VicHVibGljYXRpb25zOwogfSBTdWJzY3JpcHRp b25JbmZvOwogCisvKgorICogVGhlIENla0luZm8gc3RydWN0IGlzIHVzZWQgdG8gcmVwcmVz ZW50IGNvbHVtbiBlbmNyeXB0aW9uIGtleS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgX0Nla0lu Zm8KK3sKKwlEdW1wYWJsZU9iamVjdCBkb2JqOworCWNvbnN0IGNoYXIgKnJvbG5hbWU7CisJ aW50CQkJbnVtZGF0YTsKKwkvKiBUaGUgZm9sbG93aW5nIGFyZSBhcnJheXMgb2YgbnVtZGF0 YSBlbnRyaWVzIGVhY2g6ICovCisJY2hhcgkgICoqY2VrY21rbmFtZXM7CisJaW50CQkgICAq Y2VrY21rYWxnczsKKwljaGFyCSAgKipjZWtlbmN2YWxzOworfSBDZWtJbmZvOworCisvKgor ICogVGhlIENta0luZm8gc3RydWN0IGlzIHVzZWQgdG8gcmVwcmVzZW50IGNvbHVtbiBtYXN0 ZXIga2V5LgorICovCit0eXBlZGVmIHN0cnVjdCBfQ21rSW5mbworeworCUR1bXBhYmxlT2Jq ZWN0IGRvYmo7CisJY29uc3QgY2hhciAqcm9sbmFtZTsKKwljaGFyCSAgICpjbWtyZWFsbTsK K30gQ21rSW5mbzsKKwogLyoKICAqCWNvbW1vbiB1dGlsaXR5IGZ1bmN0aW9ucwogICovCkBA IC03MTEsNiArNzQwLDggQEAgZXh0ZXJuIEFjY2Vzc01ldGhvZEluZm8gKmdldEFjY2Vzc01l dGhvZHMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1BY2Nlc3NNZXRob2RzKTsKIGV4dGVybiBP cGNsYXNzSW5mbyAqZ2V0T3BjbGFzc2VzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtT3BjbGFz c2VzKTsKIGV4dGVybiBPcGZhbWlseUluZm8gKmdldE9wZmFtaWxpZXMoQXJjaGl2ZSAqZm91 dCwgaW50ICpudW1PcGZhbWlsaWVzKTsKIGV4dGVybiBDb2xsSW5mbyAqZ2V0Q29sbGF0aW9u cyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bUNvbGxhdGlvbnMpOworZXh0ZXJuIHZvaWQgZ2V0 Q29sdW1uRW5jcnlwdGlvbktleXMoQXJjaGl2ZSAqZm91dCk7CitleHRlcm4gdm9pZCBnZXRD b2x1bW5NYXN0ZXJLZXlzKEFyY2hpdmUgKmZvdXQpOwogZXh0ZXJuIENvbnZJbmZvICpnZXRD b252ZXJzaW9ucyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bUNvbnZlcnNpb25zKTsKIGV4dGVy biBUYWJsZUluZm8gKmdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcyk7 CiBleHRlcm4gdm9pZCBnZXRPd25lZFNlcXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRi bGluZm9bXSwgaW50IG51bVRhYmxlcyk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcF9zb3J0LmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKaW5kZXgg NWRlMzI0MWViNDk2Li5lNTYyYTY3N2VkNmEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wX3NvcnQuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMK QEAgLTY5LDYgKzY5LDggQEAgZW51bSBkYk9iamVjdFR5cGVQcmlvcml0aWVzCiAJUFJJT19U U1RFTVBMQVRFLAogCVBSSU9fVFNESUNULAogCVBSSU9fVFNDT05GSUcsCisJUFJJT19DTUss CisJUFJJT19DRUssCiAJUFJJT19GRFcsCiAJUFJJT19GT1JFSUdOX1NFUlZFUiwKIAlQUklP X1RBQkxFLApAQCAtMTExLDYgKzExMyw4IEBAIHN0YXRpYyBjb25zdCBpbnQgZGJPYmplY3RU eXBlUHJpb3JpdHlbXSA9CiAJUFJJT19BQ0NFU1NfTUVUSE9ELAkJCS8qIERPX0FDQ0VTU19N RVRIT0QgKi8KIAlQUklPX09QRkFNSUxZLAkJCQkvKiBET19PUENMQVNTICovCiAJUFJJT19P UEZBTUlMWSwJCQkJLyogRE9fT1BGQU1JTFkgKi8KKwlQUklPX0NFSywJCQkJCS8qIERPX0NF SyAqLworCVBSSU9fQ01LLAkJCQkJLyogRE9fQ01LICovCiAJUFJJT19DT0xMQVRJT04sCQkJ CS8qIERPX0NPTExBVElPTiAqLwogCVBSSU9fQ09OVkVSU0lPTiwJCQkvKiBET19DT05WRVJT SU9OICovCiAJUFJJT19UQUJMRSwJCQkJCS8qIERPX1RBQkxFICovCkBAIC0xMzIyLDYgKzEz MjYsMTYgQEAgZGVzY3JpYmVEdW1wYWJsZU9iamVjdChEdW1wYWJsZU9iamVjdCAqb2JqLCBj aGFyICpidWYsIGludCBidWZzaXplKQogCQkJCQkgIk9QRVJBVE9SIEZBTUlMWSAlcyAgKElE ICVkIE9JRCAldSkiLAogCQkJCQkgb2JqLT5uYW1lLCBvYmotPmR1bXBJZCwgb2JqLT5jYXRJ ZC5vaWQpOwogCQkJcmV0dXJuOworCQljYXNlIERPX0NFSzoKKwkJCXNucHJpbnRmKGJ1Ziwg YnVmc2l6ZSwKKwkJCQkJICJDT0xVTU4gRU5DUllQVElPTiBLRVkgKElEICVkIE9JRCAldSki LAorCQkJCQkgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKKwkJCXJldHVybjsKKwkJ Y2FzZSBET19DTUs6CisJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCisJCQkJCSAiQ09MVU1O IE1BU1RFUiBLRVkgKElEICVkIE9JRCAldSkiLAorCQkJCQkgb2JqLT5kdW1wSWQsIG9iai0+ Y2F0SWQub2lkKTsKKwkJCXJldHVybjsKIAkJY2FzZSBET19DT0xMQVRJT046CiAJCQlzbnBy aW50ZihidWYsIGJ1ZnNpemUsCiAJCQkJCSAiQ09MTEFUSU9OICVzICAoSUQgJWQgT0lEICV1 KSIsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcGFsbC5jIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXBhbGwuYwppbmRleCAwODMwMTJjYTM5ZDUuLmJmZTc2ZGQzMTVk NCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBhbGwuYworKysgYi9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcGFsbC5jCkBAIC05Myw2ICs5Myw3IEBAIHN0YXRpYyBib29s IGRvc3luYyA9IHRydWU7CiAKIHN0YXRpYyBpbnQJYmluYXJ5X3VwZ3JhZGUgPSAwOwogc3Rh dGljIGludAljb2x1bW5faW5zZXJ0cyA9IDA7CitzdGF0aWMgaW50CWRlY3J5cHRfZW5jcnlw dGVkX2NvbHVtbnMgPSAwOwogc3RhdGljIGludAlkaXNhYmxlX2RvbGxhcl9xdW90aW5nID0g MDsKIHN0YXRpYyBpbnQJZGlzYWJsZV90cmlnZ2VycyA9IDA7CiBzdGF0aWMgaW50CWlmX2V4 aXN0cyA9IDA7CkBAIC0xNTQsNiArMTU1LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKQogCQl7ImF0dHJpYnV0ZS1pbnNlcnRzIiwgbm9fYXJndW1lbnQsICZjb2x1bW5faW5z ZXJ0cywgMX0sCiAJCXsiYmluYXJ5LXVwZ3JhZGUiLCBub19hcmd1bWVudCwgJmJpbmFyeV91 cGdyYWRlLCAxfSwKIAkJeyJjb2x1bW4taW5zZXJ0cyIsIG5vX2FyZ3VtZW50LCAmY29sdW1u X2luc2VydHMsIDF9LAorCQl7ImRlY3J5cHQtZW5jcnlwdGVkLWNvbHVtbnMiLCBub19hcmd1 bWVudCwgJmRlY3J5cHRfZW5jcnlwdGVkX2NvbHVtbnMsIDF9LAogCQl7ImRpc2FibGUtZG9s bGFyLXF1b3RpbmciLCBub19hcmd1bWVudCwgJmRpc2FibGVfZG9sbGFyX3F1b3RpbmcsIDF9 LAogCQl7ImRpc2FibGUtdHJpZ2dlcnMiLCBub19hcmd1bWVudCwgJmRpc2FibGVfdHJpZ2dl cnMsIDF9LAogCQl7ImV4Y2x1ZGUtZGF0YWJhc2UiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVM TCwgNn0sCkBAIC00MjQsNiArNDI2LDggQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltd KQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihwZ2R1bXBvcHRzLCAiIC0tYmluYXJ5LXVwZ3Jh ZGUiKTsKIAlpZiAoY29sdW1uX2luc2VydHMpCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHBn ZHVtcG9wdHMsICIgLS1jb2x1bW4taW5zZXJ0cyIpOworCWlmIChkZWNyeXB0X2VuY3J5cHRl ZF9jb2x1bW5zKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihwZ2R1bXBvcHRzLCAiIC0tZGVj cnlwdC1lbmNyeXB0ZWQtY29sdW1ucyIpOwogCWlmIChkaXNhYmxlX2RvbGxhcl9xdW90aW5n KQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihwZ2R1bXBvcHRzLCAiIC0tZGlzYWJsZS1kb2xs YXItcXVvdGluZyIpOwogCWlmIChkaXNhYmxlX3RyaWdnZXJzKQpAQCAtNjQ5LDYgKzY1Myw3 IEBAIGhlbHAodm9pZCkKIAlwcmludGYoXygiICAteCwgLS1uby1wcml2aWxlZ2VzICAgICAg ICAgIGRvIG5vdCBkdW1wIHByaXZpbGVnZXMgKGdyYW50L3Jldm9rZSlcbiIpKTsKIAlwcmlu dGYoXygiICAtLWJpbmFyeS11cGdyYWRlICAgICAgICAgICAgIGZvciB1c2UgYnkgdXBncmFk ZSB1dGlsaXRpZXMgb25seVxuIikpOwogCXByaW50ZihfKCIgIC0tY29sdW1uLWluc2VydHMg ICAgICAgICAgICAgZHVtcCBkYXRhIGFzIElOU0VSVCBjb21tYW5kcyB3aXRoIGNvbHVtbiBu YW1lc1xuIikpOworCXByaW50ZihfKCIgIC0tZGVjcnlwdC1lbmNyeXB0ZWQtY29sdW1ucyAg ZGVjcnlwdCBlbmNyeXB0ZWQgY29sdW1ucyBpbiB0aGUgb3V0cHV0XG4iKSk7CiAJcHJpbnRm KF8oIiAgLS1kaXNhYmxlLWRvbGxhci1xdW90aW5nICAgICBkaXNhYmxlIGRvbGxhciBxdW90 aW5nLCB1c2UgU1FMIHN0YW5kYXJkIHF1b3RpbmdcbiIpKTsKIAlwcmludGYoXygiICAtLWRp c2FibGUtdHJpZ2dlcnMgICAgICAgICAgIGRpc2FibGUgdHJpZ2dlcnMgZHVyaW5nIGRhdGEt b25seSByZXN0b3JlXG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1leGNsdWRlLWRhdGFiYXNlPVBB VFRFUk4gICBleGNsdWRlIGRhdGFiYXNlcyB3aG9zZSBuYW1lIG1hdGNoZXMgUEFUVEVSTlxu IikpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9z cmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCBhODY5MzIxY2RmYzMuLmM1 YWNhNjUyZmFlYiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAu cGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTU5Myw2ICs1 OTMsMTggQEAKIAkJdW5saWtlICAgID0+IHsgJWR1bXBfdGVzdF9zY2hlbWFfcnVucywgbm9f b3duZXIgPT4gMSwgfSwKIAl9LAogCisJJ0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBj ZWsxIE9XTkVSIFRPJyA9PiB7CisJCXJlZ2V4cCA9PiBxci9eQUxURVIgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIGNlazEgT1dORVIgVE8gLis7L20sCisJCWxpa2UgICA9PiB7ICVmdWxsX3J1 bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwKKwkJdW5saWtlID0+IHsgbm9fb3duZXIg PT4gMSwgfSwKKwl9LAorCisJJ0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazEgT1dORVIg VE8nID0+IHsKKwkJcmVnZXhwID0+IHFyL15BTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsx IE9XTkVSIFRPIC4rOy9tLAorCQlsaWtlICAgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3By ZV9kYXRhID0+IDEsIH0sCisJCXVubGlrZSA9PiB7IG5vX293bmVyID0+IDEsIH0sCisJfSwK KwogCSdBTFRFUiBGT1JFSUdOIERBVEEgV1JBUFBFUiBkdW1teSBPV05FUiBUTycgPT4gewog CQlyZWdleHAgPT4gcXIvXkFMVEVSIEZPUkVJR04gREFUQSBXUkFQUEVSIGR1bW15IE9XTkVS IFRPIC4rOy9tLAogCQlsaWtlICAgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3ByZV9kYXRh ID0+IDEsIH0sCkBAIC0xMTkzLDYgKzEyMDUsMjQgQEAKIAkJbGlrZSAgICAgID0+IHsgJWZ1 bGxfcnVucywgc2VjdGlvbl9wcmVfZGF0YSA9PiAxLCB9LAogCX0sCiAKKwknQ09NTUVOVCBP TiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4g NTUsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ09NTUVOVCBPTiBDT0xVTU4gRU5DUllQVElPTiBL RVkgY2VrMQorCQkJCQkgICBJUyBcJ2NvbW1lbnQgb24gY29sdW1uIGVuY3J5cHRpb24ga2V5 XCc7JywKKwkJcmVnZXhwID0+CisJCSAgcXIvXkNPTU1FTlQgT04gQ09MVU1OIEVOQ1JZUFRJ T04gS0VZIGNlazEgSVMgJ2NvbW1lbnQgb24gY29sdW1uIGVuY3J5cHRpb24ga2V5JzsvbSwK KwkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwKKwl9 LAorCisJJ0NPTU1FTlQgT04gQ09MVU1OIE1BU1RFUiBLRVkgY21rMScgPT4geworCQljcmVh dGVfb3JkZXIgPT4gNTUsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ09NTUVOVCBPTiBDT0xVTU4g TUFTVEVSIEtFWSBjbWsxCisJCQkJCSAgIElTIFwnY29tbWVudCBvbiBjb2x1bW4gbWFzdGVy IGtleVwnOycsCisJCXJlZ2V4cCA9PgorCQkgIHFyL15DT01NRU5UIE9OIENPTFVNTiBNQVNU RVIgS0VZIGNtazEgSVMgJ2NvbW1lbnQgb24gY29sdW1uIG1hc3RlciBrZXknOy9tLAorCQls aWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wcmVfZGF0YSA9PiAxLCB9LAorCX0sCisK IAknQ09NTUVOVCBPTiBMQVJHRSBPQkpFQ1QgLi4uJyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9 PiA2NSwKIAkJY3JlYXRlX3NxbCAgID0+ICdETyAkJApAQCAtMTYxMSw2ICsxNjQxLDI0IEBA CiAJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEsIH0sCiAJ fSwKIAorCSdDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEnID0+IHsKKwkJY3Jl YXRlX29yZGVyID0+IDUxLAorCQljcmVhdGVfc3FsICAgPT4gIkNSRUFURSBDT0xVTU4gRU5D UllQVElPTiBLRVkgY2VrMSBXSVRIIFZBTFVFUyAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsx LCBlbmNyeXB0ZWRfdmFsdWUgPSAnXFx4REVBREJFRUYnKTsiLAorCQlyZWdleHAgICAgICAg PT4gcXIvXgorCQkJXFFDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgV0lUSCBW QUxVRVMgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwgYWxnb3JpdGhtID0gJ1JTQUVTX09B RVBfU0hBXzEnLCBlbmNyeXB0ZWRfdmFsdWUgPSBcRQorCQkJL3htLAorCQlsaWtlID0+IHsg JWZ1bGxfcnVucywgc2VjdGlvbl9wcmVfZGF0YSA9PiAxLCB9LAorCX0sCisKKwknQ1JFQVRF IENPTFVNTiBNQVNURVIgS0VZIGNtazEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDUwLAor CQljcmVhdGVfc3FsICAgPT4gIkNSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFdJVEgg KHJlYWxtID0gJ215cmVhbG0nKTsiLAorCQlyZWdleHAgICAgICAgPT4gcXIvXgorCQkJXFFD UkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBXSVRIIChyZWFsbSA9ICdteXJlYWxtJyk7 XEUKKwkJCS94bSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEg PT4gMSwgfSwKKwl9LAorCiAJJ0NSRUFURSBEQVRBQkFTRSBwb3N0Z3JlcycgPT4gewogCQly ZWdleHAgPT4gcXIvXgogCQkJXFFDUkVBVEUgREFUQUJBU0UgcG9zdGdyZXMgV0lUSCBURU1Q TEFURSA9IHRlbXBsYXRlMCBcRQpAQCAtMzk4NCw4ICs0MDMyLDEyIEBACiAJCQluZXh0Owog CQl9CiAKLQkJIyBBZGQgdGVybWluYXRpbmcgc2VtaWNvbG9uCi0JCSRjcmVhdGVfc3FseyR0 ZXN0X2RifSAuPSAkdGVzdHN7JHRlc3R9LT57Y3JlYXRlX3NxbH0gLiAiOyI7CisJCSMgTm9y bWFsaXplIGNvbW1hbmQgZW5kaW5nOiBzdHJpcCBhbGwgbGluZSBlbmRpbmdzLCBhZGQKKwkJ IyBzZW1pY29sb24gaWYgbWlzc2luZywgYWRkIHR3byBuZXdsaW5lcy4KKwkJbXkgJGNyZWF0 ZV9zcWwgPSAkdGVzdHN7JHRlc3R9LT57Y3JlYXRlX3NxbH07CisJCWNob21wICRjcmVhdGVf c3FsOworCQkkY3JlYXRlX3NxbCAuPSAnOycgdW5sZXNzIHN1YnN0cigkY3JlYXRlX3NxbCwg LTEpIGVxICc7JzsKKwkJJGNyZWF0ZV9zcWx7JHRlc3RfZGJ9IC49ICRjcmVhdGVfc3FsIC4g IlxuXG4iOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYyBi L3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKaW5kZXggYWI2MTNkZDQ5ZTBhLi41ODg3ZmZjNGJk MWMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKKysrIGIvc3JjL2Jpbi9w c3FsL2NvbW1hbmQuYwpAQCAtOTgsNiArOTgsNyBAQCBzdGF0aWMgYmFja3NsYXNoUmVzdWx0 IHByb2Nlc3NfY29tbWFuZF9nX29wdGlvbnMoY2hhciAqZmlyc3Rfb3B0aW9uLAogCQkJCQkJ CQkJCQkJIGJvb2wgYWN0aXZlX2JyYW5jaCwKIAkJCQkJCQkJCQkJCSBjb25zdCBjaGFyICpj bWQpOwogc3RhdGljIGJhY2tzbGFzaFJlc3VsdCBleGVjX2NvbW1hbmRfZ2Rlc2MoUHNxbFNj YW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gpOworc3RhdGljIGJhY2tz bGFzaFJlc3VsdCBleGVjX2NvbW1hbmRfZ2VuY3IoUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRl LCBib29sIGFjdGl2ZV9icmFuY2gpOwogc3RhdGljIGJhY2tzbGFzaFJlc3VsdCBleGVjX2Nv bW1hbmRfZ2V0ZW52KFBzcWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJh bmNoLAogCQkJCQkJCQkJCSAgIGNvbnN0IGNoYXIgKmNtZCk7CiBzdGF0aWMgYmFja3NsYXNo UmVzdWx0IGV4ZWNfY29tbWFuZF9nZXhlYyhQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJv b2wgYWN0aXZlX2JyYW5jaCk7CkBAIC0zNTAsNiArMzUxLDggQEAgZXhlY19jb21tYW5kKGNv bnN0IGNoYXIgKmNtZCwKIAkJc3RhdHVzID0gZXhlY19jb21tYW5kX2coc2Nhbl9zdGF0ZSwg YWN0aXZlX2JyYW5jaCwgY21kKTsKIAllbHNlIGlmIChzdHJjbXAoY21kLCAiZ2Rlc2MiKSA9 PSAwKQogCQlzdGF0dXMgPSBleGVjX2NvbW1hbmRfZ2Rlc2Moc2Nhbl9zdGF0ZSwgYWN0aXZl X2JyYW5jaCk7CisJZWxzZSBpZiAoc3RyY21wKGNtZCwgImdlbmNyIikgPT0gMCkKKwkJc3Rh dHVzID0gZXhlY19jb21tYW5kX2dlbmNyKHNjYW5fc3RhdGUsIGFjdGl2ZV9icmFuY2gpOwog CWVsc2UgaWYgKHN0cmNtcChjbWQsICJnZXRlbnYiKSA9PSAwKQogCQlzdGF0dXMgPSBleGVj X2NvbW1hbmRfZ2V0ZW52KHNjYW5fc3RhdGUsIGFjdGl2ZV9icmFuY2gsIGNtZCk7CiAJZWxz ZSBpZiAoc3RyY21wKGNtZCwgImdleGVjIikgPT0gMCkKQEAgLTE0OTIsNiArMTQ5NSwzNCBA QCBleGVjX2NvbW1hbmRfZ2Rlc2MoUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFj dGl2ZV9icmFuY2gpCiAJcmV0dXJuIHN0YXR1czsKIH0KIAorLyoKKyAqIFxnZW5jciAtLSBz ZW5kIHF1ZXJ5LCB3aXRoIHN1cHBvcnQgZm9yIHBhcmFtZXRlciBlbmNyeXB0aW9uCisgKi8K K3N0YXRpYyBiYWNrc2xhc2hSZXN1bHQKK2V4ZWNfY29tbWFuZF9nZW5jcihQc3FsU2NhblN0 YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCkKK3sKKwliYWNrc2xhc2hSZXN1 bHQgc3RhdHVzID0gUFNRTF9DTURfU0tJUF9MSU5FOworCWNoYXIJICAgKmFwOworCisJcHNl dC5udW1fcGFyYW1zID0gMDsKKwlwc2V0LnBhcmFtcyA9IE5VTEw7CisJd2hpbGUgKChhcCA9 IHBzcWxfc2Nhbl9zbGFzaF9vcHRpb24oc2Nhbl9zdGF0ZSwKKwkJCQkJCQkJCQlPVF9OT1JN QUwsIE5VTEwsIHRydWUpKSAhPSBOVUxMKQorCXsKKwkJcHNldC5udW1fcGFyYW1zKys7CisJ CXBzZXQucGFyYW1zID0gcGdfcmVhbGxvYyhwc2V0LnBhcmFtcywgcHNldC5udW1fcGFyYW1z ICogc2l6ZW9mKGNoYXIgKikpOworCQlwc2V0LnBhcmFtc1twc2V0Lm51bV9wYXJhbXMgLSAx XSA9IGFwOworCX0KKworCWlmIChhY3RpdmVfYnJhbmNoKQorCXsKKwkJcHNldC5nZW5jcl9m bGFnID0gdHJ1ZTsKKwkJc3RhdHVzID0gUFNRTF9DTURfU0VORDsKKwl9CisKKwlyZXR1cm4g c3RhdHVzOworfQorCiAvKgogICogXGdldGVudiAtLSBzZXQgdmFyaWFibGUgZnJvbSBlbnZp cm9ubWVudCB2YXJpYWJsZQogICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvY29tbW9u LmMgYi9zcmMvYmluL3BzcWwvY29tbW9uLmMKaW5kZXggNGYzMTBhODAxOWRjLi5hNDc1NzVh MzYzOWEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9jb21tb24uYworKysgYi9zcmMvYmlu L3BzcWwvY29tbW9uLmMKQEAgLTEyMzAsNiArMTIzMCwxNCBAQCBTZW5kUXVlcnkoY29uc3Qg Y2hhciAqcXVlcnkpCiAJLyogcmVzZXQgXGdkZXNjIHRyaWdnZXIgKi8KIAlwc2V0LmdkZXNj X2ZsYWcgPSBmYWxzZTsKIAorCS8qIHJlc2V0IFxnZW5jciB0cmlnZ2VyICovCisJcHNldC5n ZW5jcl9mbGFnID0gZmFsc2U7CisJZm9yIChpID0gMDsgaSA8IHBzZXQubnVtX3BhcmFtczsg aSsrKQorCQlwZ19mcmVlKHBzZXQucGFyYW1zW2ldKTsKKwlwZ19mcmVlKHBzZXQucGFyYW1z KTsKKwlwc2V0LnBhcmFtcyA9IE5VTEw7CisJcHNldC5udW1fcGFyYW1zID0gMDsKKwogCS8q IHJlc2V0IFxnZXhlYyB0cmlnZ2VyICovCiAJcHNldC5nZXhlY19mbGFnID0gZmFsc2U7CiAK QEAgLTEzOTcsNyArMTQwNSwzNiBAQCBFeGVjUXVlcnlBbmRQcm9jZXNzUmVzdWx0cyhjb25z dCBjaGFyICpxdWVyeSwKIAlpZiAodGltaW5nKQogCQlJTlNUUl9USU1FX1NFVF9DVVJSRU5U KGJlZm9yZSk7CiAKLQlzdWNjZXNzID0gUFFzZW5kUXVlcnkocHNldC5kYiwgcXVlcnkpOwor CWlmIChwc2V0LmdlbmNyX2ZsYWcpCisJeworCQlQR3Jlc3VsdCAgICpyZXMxLAorCQkJCSAg ICpyZXMyOworCisJCXJlczEgPSBQUXByZXBhcmUocHNldC5kYiwgIiIsIHF1ZXJ5LCBwc2V0 Lm51bV9wYXJhbXMsIE5VTEwpOworCQlpZiAoUFFyZXN1bHRTdGF0dXMocmVzMSkgIT0gUEdS RVNfQ09NTUFORF9PSykKKwkJeworCQkJcGdfbG9nX2luZm8oIiVzIiwgUFFlcnJvck1lc3Nh Z2UocHNldC5kYikpOworCQkJQ2xlYXJPclNhdmVSZXN1bHQocmVzMSk7CisJCQlyZXR1cm4g LTE7CisJCX0KKwkJUFFjbGVhcihyZXMxKTsKKworCQlyZXMyID0gUFFkZXNjcmliZVByZXBh cmVkKHBzZXQuZGIsICIiKTsKKwkJaWYgKFBRcmVzdWx0U3RhdHVzKHJlczIpICE9IFBHUkVT X0NPTU1BTkRfT0spCisJCXsKKwkJCXBnX2xvZ19pbmZvKCIlcyIsIFBRZXJyb3JNZXNzYWdl KHBzZXQuZGIpKTsKKwkJCUNsZWFyT3JTYXZlUmVzdWx0KHJlczIpOworCQkJcmV0dXJuIC0x OworCQl9CisKKwkJc3VjY2VzcyA9IFBRc2VuZFF1ZXJ5UHJlcGFyZWQyKHBzZXQuZGIsICIi LCBwc2V0Lm51bV9wYXJhbXMsIChjb25zdCBjaGFyICpjb25zdCAqKSBwc2V0LnBhcmFtcywg TlVMTCwgTlVMTCwgTlVMTCwgMCwgcmVzMik7CisKKwkJUFFjbGVhcihyZXMyKTsKKwl9CisJ ZWxzZQorCXsKKwkJc3VjY2VzcyA9IFBRc2VuZFF1ZXJ5KHBzZXQuZGIsIHF1ZXJ5KTsKKwl9 CiAKIAlpZiAoIXN1Y2Nlc3MpCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBjNjQ1ZDY2NDE4YTkuLjNm YmZlNWRjNjg2NSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTE1MzIsNyArMTUzMiw3IEBAIGRlc2NyaWJl T25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJYm9vbAkJcHJpbnRU YWJsZUluaXRpYWxpemVkID0gZmFsc2U7CiAJaW50CQkJaTsKIAljaGFyCSAgICp2aWV3X2Rl ZiA9IE5VTEw7Ci0JY2hhcgkgICAqaGVhZGVyc1sxMl07CisJY2hhcgkgICAqaGVhZGVyc1sx M107CiAJUFFFeHBCdWZmZXJEYXRhIHRpdGxlOwogCVBRRXhwQnVmZmVyRGF0YSB0bXBidWY7 CiAJaW50CQkJY29sczsKQEAgLTE1NDgsNiArMTU0OCw3IEBAIGRlc2NyaWJlT25lVGFibGVE ZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQkJZmR3b3B0c19jb2wgPSAtMSwK IAkJCQlhdHRzdG9yYWdlX2NvbCA9IC0xLAogCQkJCWF0dGNvbXByZXNzaW9uX2NvbCA9IC0x LAorCQkJCWF0dGNla25hbWVfY29sID0gLTEsCiAJCQkJYXR0c3RhdHRhcmdldF9jb2wgPSAt MSwKIAkJCQlhdHRkZXNjcl9jb2wgPSAtMTsKIAlpbnQJCQludW1yb3dzOwpAQCAtMTg0Niw3 ICsxODQ3LDcgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1h bmFtZSwKIAljb2xzID0gMDsKIAlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLCAiU0VMRUNUIGEu YXR0bmFtZSIpOwogCWF0dG5hbWVfY29sID0gY29scysrOwotCWFwcGVuZFBRRXhwQnVmZmVy U3RyKCZidWYsICIsXG4gIHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUoYS5hdHR0eXBpZCwgYS5h dHR0eXBtb2QpIik7CisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgcGdfY2F0 YWxvZy5mb3JtYXRfdHlwZShDQVNFIFdIRU4gYS5hdHRyZWFsdHlwaWQgPD4gMCBUSEVOIGEu YXR0cmVhbHR5cGlkIEVMU0UgYS5hdHR0eXBpZCBFTkQsIGEuYXR0dHlwbW9kKSIpOwogCWF0 dHR5cGVfY29sID0gY29scysrOwogCiAJaWYgKHNob3dfY29sdW1uX2RldGFpbHMpCkBAIC0x ODYwLDcgKzE4NjEsNyBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpz Y2hlbWFuYW1lLAogCQlhdHRyZGVmX2NvbCA9IGNvbHMrKzsKIAkJYXR0bm90bnVsbF9jb2wg PSBjb2xzKys7CiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIChTRUxFQ1Qg Yy5jb2xsbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfY29sbGF0aW9uIGMsIHBnX2NhdGFsb2cu cGdfdHlwZSB0XG4iCi0JCQkJCQkJICIgICBXSEVSRSBjLm9pZCA9IGEuYXR0Y29sbGF0aW9u IEFORCB0Lm9pZCA9IGEuYXR0dHlwaWQgQU5EIGEuYXR0Y29sbGF0aW9uIDw+IHQudHlwY29s bGF0aW9uKSBBUyBhdHRjb2xsYXRpb24iKTsKKwkJCQkJCQkgIiAgIFdIRVJFIGMub2lkID0g YS5hdHRjb2xsYXRpb24gQU5EIHQub2lkID0gKENBU0UgV0hFTiBhLmF0dHJlYWx0eXBpZCA8 PiAwIFRIRU4gYS5hdHRyZWFsdHlwaWQgRUxTRSBhLmF0dHR5cGlkIEVORCkgQU5EIGEuYXR0 Y29sbGF0aW9uIDw+IHQudHlwY29sbGF0aW9uKSBBUyBhdHRjb2xsYXRpb24iKTsKIAkJYXR0 Y29sbF9jb2wgPSBjb2xzKys7CiAJCWlmIChwc2V0LnN2ZXJzaW9uID49IDEwMDAwMCkKIAkJ CWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIGEuYXR0aWRlbnRpdHkiKTsKQEAg LTE5MTEsNiArMTkxMiwxNSBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFy ICpzY2hlbWFuYW1lLAogCQkJYXR0Y29tcHJlc3Npb25fY29sID0gY29scysrOwogCQl9CiAK KwkJLyogZW5jcnlwdGlvbiBpbmZvICovCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE2MDAw MCAmJgorCQkJIXBzZXQuaGlkZV9jb2x1bW5fZW5jcnlwdGlvbiAmJgorCQkJKHRhYmxlaW5m by5yZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04pKQorCQl7CisJCQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cigmYnVmLCAiLFxuICAoU0VMRUNUIGNla25hbWUgRlJPTSBwZ19jb2xlbmNrZXkg Y2VrIFdIRVJFIGNlay5vaWQgPSBhLmF0dGNlaykgQVMgYXR0Y2VrbmFtZSIpOworCQkJYXR0 Y2VrbmFtZV9jb2wgPSBjb2xzKys7CisJCX0KKwogCQkvKiBzdGF0cyB0YXJnZXQsIGlmIHJl bGV2YW50IHRvIHJlbGtpbmQgKi8KIAkJaWYgKHRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJ TkRfUkVMQVRJT04gfHwKIAkJCXRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfSU5ERVgg fHwKQEAgLTIwMzQsNiArMjA0NCw4IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0 IGNoYXIgKnNjaGVtYW5hbWUsCiAJCWhlYWRlcnNbY29scysrXSA9IGdldHRleHRfbm9vcCgi U3RvcmFnZSIpOwogCWlmIChhdHRjb21wcmVzc2lvbl9jb2wgPj0gMCkKIAkJaGVhZGVyc1tj b2xzKytdID0gZ2V0dGV4dF9ub29wKCJDb21wcmVzc2lvbiIpOworCWlmIChhdHRjZWtuYW1l X2NvbCA+PSAwKQorCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0ZXh0X25vb3AoIkVuY3J5cHRp b24iKTsKIAlpZiAoYXR0c3RhdHRhcmdldF9jb2wgPj0gMCkKIAkJaGVhZGVyc1tjb2xzKytd ID0gZ2V0dGV4dF9ub29wKCJTdGF0cyB0YXJnZXQiKTsKIAlpZiAoYXR0ZGVzY3JfY29sID49 IDApCkBAIC0yMTI2LDYgKzIxMzgsMTcgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29u c3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJCQkJCQkgIGZhbHNlLCBmYWxzZSk7CiAJCX0KIAor CQkvKiBDb2x1bW4gZW5jcnlwdGlvbiAqLworCQlpZiAoYXR0Y2VrbmFtZV9jb2wgPj0gMCkK KwkJeworCQkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIGF0dGNla25hbWVfY29sKSkKKwkJ CQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGF0dGNla25h bWVfY29sKSwKKwkJCQkJCQkJICBmYWxzZSwgZmFsc2UpOworCQkJZWxzZQorCQkJCXByaW50 VGFibGVBZGRDZWxsKCZjb250LCAiIiwKKwkJCQkJCQkJICBmYWxzZSwgZmFsc2UpOworCQl9 CisKIAkJLyogU3RhdGlzdGljcyB0YXJnZXQsIGlmIHRoZSByZWxraW5kIHN1cHBvcnRzIHRo aXMgZmVhdHVyZSAqLwogCQlpZiAoYXR0c3RhdHRhcmdldF9jb2wgPj0gMCkKIAkJCXByaW50 VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgYXR0c3RhdHRhcmdldF9j b2wpLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2hlbHAuYyBiL3NyYy9iaW4vcHNxbC9o ZWxwLmMKaW5kZXggZjhjZTFhMDcwNjBkLi45ZjRmY2UyNmZkZmUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC9oZWxwLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpAQCAtMTk1LDYg KzE5NSw3IEBAIHNsYXNoVXNhZ2UodW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQogCUhFTFAw KCIgIFxcZyBbKE9QVElPTlMpXSBbRklMRV0gIGV4ZWN1dGUgcXVlcnkgKGFuZCBzZW5kIHJl c3VsdCB0byBmaWxlIG9yIHxwaXBlKTtcbiIKIAkJICAiICAgICAgICAgICAgICAgICAgICAg ICAgIFxcZyB3aXRoIG5vIGFyZ3VtZW50cyBpcyBlcXVpdmFsZW50IHRvIGEgc2VtaWNvbG9u XG4iKTsKIAlIRUxQMCgiICBcXGdkZXNjICAgICAgICAgICAgICAgICBkZXNjcmliZSByZXN1 bHQgb2YgcXVlcnksIHdpdGhvdXQgZXhlY3V0aW5nIGl0XG4iKTsKKwlIRUxQMCgiICBcXGdl bmNyIFtQQVJBTV0uLi4gICAgICBleGVjdXRlIHF1ZXJ5LCB3aXRoIHN1cHBvcnQgZm9yIHBh cmFtZXRlciBlbmNyeXB0aW9uXG4iKTsKIAlIRUxQMCgiICBcXGdleGVjICAgICAgICAgICAg ICAgICBleGVjdXRlIHF1ZXJ5LCB0aGVuIGV4ZWN1dGUgZWFjaCB2YWx1ZSBpbiBpdHMgcmVz dWx0XG4iKTsKIAlIRUxQMCgiICBcXGdzZXQgW1BSRUZJWF0gICAgICAgICBleGVjdXRlIHF1 ZXJ5IGFuZCBzdG9yZSByZXN1bHQgaW4gcHNxbCB2YXJpYWJsZXNcbiIpOwogCUhFTFAwKCIg IFxcZ3ggWyhPUFRJT05TKV0gW0ZJTEVdIGFzIFxcZywgYnV0IGZvcmNlcyBleHBhbmRlZCBv dXRwdXQgbW9kZVxuIik7CkBAIC00MTIsNiArNDEzLDggQEAgaGVscFZhcmlhYmxlcyh1bnNp Z25lZCBzaG9ydCBpbnQgcGFnZXIpCiAJCSAgIiAgICB0cnVlIGlmIGxhc3QgcXVlcnkgZmFp bGVkLCBlbHNlIGZhbHNlXG4iKTsKIAlIRUxQMCgiICBGRVRDSF9DT1VOVFxuIgogCQkgICIg ICAgdGhlIG51bWJlciBvZiByZXN1bHQgcm93cyB0byBmZXRjaCBhbmQgZGlzcGxheSBhdCBh IHRpbWUgKDAgPSB1bmxpbWl0ZWQpXG4iKTsKKwlIRUxQMCgiICBISURFX0NPTFVNTl9FTkNS WVBUSU9OXG4iCisJCSAgIiAgICBpZiBzZXQsIGNvbHVtbiBlbmNyeXB0aW9uIGRldGFpbHMg YXJlIG5vdCBkaXNwbGF5ZWRcbiIpOwogCUhFTFAwKCIgIEhJREVfVEFCTEVBTVxuIgogCQkg ICIgICAgaWYgc2V0LCB0YWJsZSBhY2Nlc3MgbWV0aG9kcyBhcmUgbm90IGRpc3BsYXllZFxu Iik7CiAJSEVMUDAoIiAgSElERV9UT0FTVF9DT01QUkVTU0lPTlxuIgpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wc3FsL3NldHRpbmdzLmggYi9zcmMvYmluL3BzcWwvc2V0dGluZ3MuaAppbmRl eCAyMzk5Y2ZmYTNmYmEuLjYzNjcyOWRmMWQyOCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3Fs L3NldHRpbmdzLmgKKysrIGIvc3JjL2Jpbi9wc3FsL3NldHRpbmdzLmgKQEAgLTk1LDYgKzk1 LDEwIEBAIHR5cGVkZWYgc3RydWN0IF9wc3FsU2V0dGluZ3MKIAogCWNoYXIJICAgKmdzZXRf cHJlZml4OwkvKiBvbmUtc2hvdCBwcmVmaXggYXJndW1lbnQgZm9yIFxnc2V0ICovCiAJYm9v bAkJZ2Rlc2NfZmxhZzsJCS8qIG9uZS1zaG90IHJlcXVlc3QgdG8gZGVzY3JpYmUgcXVlcnkg cmVzdWx0ICovCisJYm9vbAkJZ2VuY3JfZmxhZzsJCS8qIG9uZS1zaG90IHJlcXVlc3QgdG8g c2VuZCBxdWVyeSB3aXRoIHN1cHBvcnQKKwkJCQkJCQkJICogZm9yIHBhcmFtZXRlciBlbmNy eXB0aW9uICovCisJaW50CQkJbnVtX3BhcmFtczsJCS8qIG51bWJlciBvZiBxdWVyeSBwYXJh bWV0ZXJzICovCisJY2hhcgkgICoqcGFyYW1zOwkJCS8qIHF1ZXJ5IHBhcmFtZXRlcnMgKi8K IAlib29sCQlnZXhlY19mbGFnOwkJLyogb25lLXNob3QgcmVxdWVzdCB0byBleGVjdXRlIHF1 ZXJ5IHJlc3VsdCAqLwogCWJvb2wJCWNyb3NzdGFiX2ZsYWc7CS8qIG9uZS1zaG90IHJlcXVl c3QgdG8gY3Jvc3N0YWIgcmVzdWx0ICovCiAJY2hhcgkgICAqY3R2X2FyZ3NbNF07CS8qIFxj cm9zc3RhYnZpZXcgYXJndW1lbnRzICovCkBAIC0xMzQsNiArMTM4LDcgQEAgdHlwZWRlZiBz dHJ1Y3QgX3BzcWxTZXR0aW5ncwogCWJvb2wJCXF1aWV0OwogCWJvb2wJCXNpbmdsZWxpbmU7 CiAJYm9vbAkJc2luZ2xlc3RlcDsKKwlib29sCQloaWRlX2NvbHVtbl9lbmNyeXB0aW9uOwog CWJvb2wJCWhpZGVfY29tcHJlc3Npb247CiAJYm9vbAkJaGlkZV90YWJsZWFtOwogCWludAkJ CWZldGNoX2NvdW50OwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3N0YXJ0dXAuYyBiL3Ny Yy9iaW4vcHNxbC9zdGFydHVwLmMKaW5kZXggZjViOWUyNjhmMjAwLi4wYjgxMmYzMzIyMTEg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9zdGFydHVwLmMKKysrIGIvc3JjL2Jpbi9wc3Fs L3N0YXJ0dXAuYwpAQCAtMTE4OCw2ICsxMTg4LDEzIEBAIGhpZGVfY29tcHJlc3Npb25faG9v ayhjb25zdCBjaGFyICpuZXd2YWwpCiAJCQkJCQkJICZwc2V0LmhpZGVfY29tcHJlc3Npb24p OwogfQogCitzdGF0aWMgYm9vbAoraGlkZV9jb2x1bW5fZW5jcnlwdGlvbl9ob29rKGNvbnN0 IGNoYXIgKm5ld3ZhbCkKK3sKKwlyZXR1cm4gUGFyc2VWYXJpYWJsZUJvb2wobmV3dmFsLCAi SElERV9DT0xVTU5fRU5DUllQVElPTiIsCisJCQkJCQkJICZwc2V0LmhpZGVfY29sdW1uX2Vu Y3J5cHRpb24pOworfQorCiBzdGF0aWMgYm9vbAogaGlkZV90YWJsZWFtX2hvb2soY29uc3Qg Y2hhciAqbmV3dmFsKQogewpAQCAtMTI1OSw2ICsxMjY2LDkgQEAgRXN0YWJsaXNoVmFyaWFi bGVTcGFjZSh2b2lkKQogCVNldFZhcmlhYmxlSG9va3MocHNldC52YXJzLCAiU0hPV19DT05U RVhUIiwKIAkJCQkJIHNob3dfY29udGV4dF9zdWJzdGl0dXRlX2hvb2ssCiAJCQkJCSBzaG93 X2NvbnRleHRfaG9vayk7CisJU2V0VmFyaWFibGVIb29rcyhwc2V0LnZhcnMsICJISURFX0NP TFVNTl9FTkNSWVBUSU9OIiwKKwkJCQkJIGJvb2xfc3Vic3RpdHV0ZV9ob29rLAorCQkJCQkg aGlkZV9jb2x1bW5fZW5jcnlwdGlvbl9ob29rKTsKIAlTZXRWYXJpYWJsZUhvb2tzKHBzZXQu dmFycywgIkhJREVfVE9BU1RfQ09NUFJFU1NJT04iLAogCQkJCQkgYm9vbF9zdWJzdGl0dXRl X2hvb2ssCiAJCQkJCSBoaWRlX2NvbXByZXNzaW9uX2hvb2spOwpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5j CmluZGV4IDU4NGQ5ZDVhZTY0Mi4uMWU5YTE5ZTRlNzUxIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5j CkBAIC0xMTY5LDYgKzExNjksMTYgQEAgc3RhdGljIGNvbnN0IFZlcnNpb25lZFF1ZXJ5IFF1 ZXJ5X2Zvcl9saXN0X29mX3N1YnNjcmlwdGlvbnNbXSA9IHsKIAl7MCwgTlVMTH0KIH07CiAK K3N0YXRpYyBjb25zdCBWZXJzaW9uZWRRdWVyeSBRdWVyeV9mb3JfbGlzdF9vZl9jZWtzW10g PSB7CisJezE2MDAwMCwgIlNFTEVDVCBjZWtuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xl bmNrZXkgV0hFUkUgY2VrbmFtZSBMSUtFICclcycifSwKKwl7MCwgTlVMTH0KK307CisKK3N0 YXRpYyBjb25zdCBWZXJzaW9uZWRRdWVyeSBRdWVyeV9mb3JfbGlzdF9vZl9jbWtzW10gPSB7 CisJezE2MDAwMCwgIlNFTEVDVCBjbWtuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xtYXN0 ZXJrZXkgV0hFUkUgY21rbmFtZSBMSUtFICclcycifSwKKwl7MCwgTlVMTH0KK307CisKIC8q CiAgKiBUaGlzIGlzIGEgbGlzdCBvZiBhbGwgInRoaW5ncyIgaW4gUGdzcWwsIHdoaWNoIGNh biBzaG93IHVwIGFmdGVyIENSRUFURSBvcgogICogRFJPUDsgYW5kIHRoZXJlIGlzIGFsc28g YSBxdWVyeSB0byBnZXQgYSBsaXN0IG9mIHRoZW0uCkBAIC0xMjAyLDYgKzEyMTIsOCBAQCBz dGF0aWMgY29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRlcl9jcmVhdGVbXSA9IHsKIAl7 IkNBU1QiLCBOVUxMLCBOVUxMLCBOVUxMfSwgLyogQ2FzdHMgaGF2ZSBjb21wbGV4IHN0cnVj dHVyZXMgZm9yIG5hbWVzLCBzbwogCQkJCQkJCQkgKiBza2lwIGl0ICovCiAJeyJDT0xMQVRJ T04iLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfY29sbGF0aW9uc30sCisJeyJD T0xVTU4gRU5DUllQVElPTiBLRVkiLCBOVUxMLCBOVUxMLCBOVUxMfSwKKwl7IkNPTFVNTiBN QVNURVIgS0VZIEtFWSIsIE5VTEwsIE5VTEwsIE5VTEx9LAogCiAJLyoKIAkgKiBDUkVBVEUg Q09OU1RSQUlOVCBUUklHR0VSIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZSBiZWNhdXNlIGl0IGlz IGRlc2lnbmVkCkBAIC0xNjkyLDcgKzE3MDQsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3Qg Y2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQkiXFxlY2hvIiwgIlxcZWRpdCIs ICJcXGVmIiwgIlxcZWxpZiIsICJcXGVsc2UiLCAiXFxlbmNvZGluZyIsCiAJCSJcXGVuZGlm IiwgIlxcZXJydmVyYm9zZSIsICJcXGV2IiwKIAkJIlxcZiIsCi0JCSJcXGciLCAiXFxnZGVz YyIsICJcXGdldGVudiIsICJcXGdleGVjIiwgIlxcZ3NldCIsICJcXGd4IiwKKwkJIlxcZyIs ICJcXGdkZXNjIiwgIlxcZ2VuY3IiLCAiXFxnZXRlbnYiLCAiXFxnZXhlYyIsICJcXGdzZXQi LCAiXFxneCIsCiAJCSJcXGhlbHAiLCAiXFxodG1sIiwKIAkJIlxcaWYiLCAiXFxpbmNsdWRl IiwgIlxcaW5jbHVkZV9yZWxhdGl2ZSIsICJcXGlyIiwKIAkJIlxcbGlzdCIsICJcXGxvX2lt cG9ydCIsICJcXGxvX2V4cG9ydCIsICJcXGxvX2xpc3QiLCAiXFxsb191bmxpbmsiLApAQCAt MTkwMCw2ICsxOTEyLDIyIEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBp bnQgc3RhcnQsIGludCBlbmQpCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiQ09MTEFU SU9OIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJPV05FUiBUTyIsICJSRUZSRVNI IFZFUlNJT04iLCAiUkVOQU1FIFRPIiwgIlNFVCBTQ0hFTUEiKTsKIAorCS8qIEFMVEVSL0RS T1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZICovCisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVJ8 RFJPUCIsICJDT0xVTU4iLCAiRU5DUllQVElPTiIsICJLRVkiKSkKKwkJQ09NUExFVEVfV0lU SF9WRVJTSU9ORURfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfY2Vrcyk7CisKKwkvKiBBTFRF UiBDT0xVTU4gRU5DUllQVElPTiBLRVkgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIs ICJDT0xVTU4iLCAiRU5DUllQVElPTiIsICJLRVkiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRF X1dJVEgoIkFERCBWQUxVRSAoIiwgIkRST1AgVkFMVUUgKCIsICJPV05FUiBUTyIsICJSRU5B TUUgVE8iKTsKKworCS8qIEFMVEVSL0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgKi8KKwllbHNl IGlmIChNYXRjaGVzKCJBTFRFUnxEUk9QIiwgIkNPTFVNTiIsICJNQVNURVIiLCAiS0VZIikp CisJCUNPTVBMRVRFX1dJVEhfVkVSU0lPTkVEX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2Nt a3MpOworCisJLyogQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgKi8KKwllbHNlIGlmIChNYXRj aGVzKCJBTFRFUiIsICJDT0xVTU4iLCAiTUFTVEVSIiwgIktFWSIsIE1hdGNoQW55KSkKKwkJ Q09NUExFVEVfV0lUSCgiT1dORVIgVE8iLCAiUkVOQU1FIFRPIik7CisKIAkvKiBBTFRFUiBD T05WRVJTSU9OIDxuYW1lPiAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIkNPTlZF UlNJT04iLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIk9XTkVSIFRPIiwgIlJFTkFN RSBUTyIsICJTRVQgU0NIRU1BIik7CkBAIC0yNzk0LDYgKzI4MjIsMjYgQEAgcHNxbF9jb21w bGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJCUNPTVBM RVRFX1dJVEgoInRydWUiLCAiZmFsc2UiKTsKIAl9CiAKKwkvKiBDUkVBVEUvQUxURVIvRFJP UCBDT0xVTU4gLi4uIEtFWSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURXxBTFRFUnxE Uk9QIiwgIkNPTFVNTiIpKQorCQlDT01QTEVURV9XSVRIKCJFTkNSWVBUSU9OIiwgIk1BU1RF UiIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURXxBTFRFUnxEUk9QIiwgIkNPTFVNTiIs ICJFTkNSWVBUSU9OfE1BU1RFUiIpKQorCQlDT01QTEVURV9XSVRIKCJLRVkiKTsKKworCS8q IENSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJD UkVBVEUiLCAiQ09MVU1OIiwgIkVOQ1JZUFRJT04iLCAiS0VZIiwgTWF0Y2hBbnkpKQorCQlD T01QTEVURV9XSVRIKCJXSVRIIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIkNP TFVNTiIsICJFTkNSWVBUSU9OIiwgIktFWSIsIE1hdGNoQW55LCAiV0lUSCIpKQorCQlDT01Q TEVURV9XSVRIKCJWQUxVRVMiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiQ09M VU1OIiwgIkVOQ1JZUFRJT04iLCAiS0VZIiwgTWF0Y2hBbnksICJXSVRIIiwgIlZBTFVFUyIp KQorCQlDT01QTEVURV9XSVRIKCIoIik7CisKKwkvKiBDUkVBVEUgQ09MVU1OIE1BU1RFUiBL RVkgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiQ09MVU1OIiwgIk1BU1RFUiIs ICJLRVkiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIldJVEgiKTsKKwllbHNlIGlm IChNYXRjaGVzKCJDUkVBVEUiLCAiQ09MVU1OIiwgIk1BU1RFUiIsICJLRVkiLCBNYXRjaEFu eSwgIldJVEgiKSkKKwkJQ09NUExFVEVfV0lUSCgiKCIpOworCiAJLyogQ1JFQVRFIERBVEFC QVNFICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIkRBVEFCQVNFIiwgTWF0Y2hB bnkpKQogCQlDT01QTEVURV9XSVRIKCJPV05FUiIsICJURU1QTEFURSIsICJFTkNPRElORyIs ICJUQUJMRVNQQUNFIiwKQEAgLTM1MTksNiArMzU2Nyw3IEBAIHBzcWxfY29tcGxldGlvbihj b25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCQkgTWF0Y2hlcygiRFJP UCIsICJBQ0NFU1MiLCAiTUVUSE9EIiwgTWF0Y2hBbnkpIHx8CiAJCQkgKE1hdGNoZXMoIkRS T1AiLCAiQUdHUkVHQVRFfEZVTkNUSU9OfFBST0NFRFVSRXxST1VUSU5FIiwgTWF0Y2hBbnks IE1hdGNoQW55KSAmJgogCQkJICBlbmRzX3dpdGgocHJldl93ZCwgJyknKSkgfHwKKwkJCSBN YXRjaGVzKCJEUk9QIiwgIkNPTFVNTiIsICJFTkNSWVBUSU9OfE1BU1RFUiIsICJLRVkiLCBN YXRjaEFueSkgfHwKIAkJCSBNYXRjaGVzKCJEUk9QIiwgIkVWRU5UIiwgIlRSSUdHRVIiLCBN YXRjaEFueSkgfHwKIAkJCSBNYXRjaGVzKCJEUk9QIiwgIkZPUkVJR04iLCAiREFUQSIsICJX UkFQUEVSIiwgTWF0Y2hBbnkpIHx8CiAJCQkgTWF0Y2hlcygiRFJPUCIsICJGT1JFSUdOIiwg IlRBQkxFIiwgTWF0Y2hBbnkpIHx8CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv cHJpbnR0dXAuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9wcmludHR1cC5oCmluZGV4IDk3MWE3 NGNmMjJiNC4uZGIxZjNiODgxMWExIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv cHJpbnR0dXAuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvcHJpbnR0dXAuaApAQCAtMjAs NiArMjAsOCBAQCBleHRlcm4gRGVzdFJlY2VpdmVyICpwcmludHR1cF9jcmVhdGVfRFIoQ29t bWFuZERlc3QgZGVzdCk7CiAKIGV4dGVybiB2b2lkIFNldFJlbW90ZURlc3RSZWNlaXZlclBh cmFtcyhEZXN0UmVjZWl2ZXIgKnNlbGYsIFBvcnRhbCBwb3J0YWwpOwogCitleHRlcm4gdm9p ZCBNYXliZVNlbmRDb2x1bW5FbmNyeXB0aW9uS2V5TWVzc2FnZShPaWQgYXR0Y2VrKTsKKwog ZXh0ZXJuIHZvaWQgU2VuZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZShTdHJpbmdJbmZvIGJ1ZiwK IAkJCQkJCQkJCSAgVHVwbGVEZXNjIHR5cGVpbmZvLCBMaXN0ICp0YXJnZXRsaXN0LCBpbnQx NiAqZm9ybWF0cyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvZGVwZW5k ZW5jeS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9kZXBlbmRlbmN5LmgKaW5kZXggOThhMWE4 NDI4OTA3Li4xYTJhODE3N2QxYTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv ZGVwZW5kZW5jeS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvZGVwZW5kZW5jeS5oCkBA IC05Miw2ICs5Miw5IEBAIHR5cGVkZWYgZW51bSBPYmplY3RDbGFzcwogCU9DTEFTU19UWVBF LAkJCQkvKiBwZ190eXBlICovCiAJT0NMQVNTX0NBU1QsCQkJCS8qIHBnX2Nhc3QgKi8KIAlP Q0xBU1NfQ09MTEFUSU9OLAkJCS8qIHBnX2NvbGxhdGlvbiAqLworCU9DTEFTU19DRUssCQkJ CQkvKiBwZ19jb2xlbmNrZXkgKi8KKwlPQ0xBU1NfQ0VLREFUQSwJCQkJLyogcGdfY29sZW5j a2V5ZGF0YSAqLworCU9DTEFTU19DTUssCQkJCQkvKiBwZ19jb2xtYXN0ZXJrZXkgKi8KIAlP Q0xBU1NfQ09OU1RSQUlOVCwJCQkvKiBwZ19jb25zdHJhaW50ICovCiAJT0NMQVNTX0NPTlZF UlNJT04sCQkJLyogcGdfY29udmVyc2lvbiAqLwogCU9DTEFTU19ERUZBVUxULAkJCQkvKiBw Z19hdHRyZGVmICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1 aWxkIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZAppbmRleCA0NWZmYTk5Njky ZTkuLmYzYTBiMWNlZTljMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNv bi5idWlsZAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCkBAIC02Myw2 ICs2Myw5IEBAIGNhdGFsb2dfaGVhZGVycyA9IFsKICAgJ3BnX3B1YmxpY2F0aW9uX3JlbC5o JywKICAgJ3BnX3N1YnNjcmlwdGlvbi5oJywKICAgJ3BnX3N1YnNjcmlwdGlvbl9yZWwuaCcs CisgICdwZ19jb2xtYXN0ZXJrZXkuaCcsCisgICdwZ19jb2xlbmNrZXkuaCcsCisgICdwZ19j b2xlbmNrZXlkYXRhLmgnLAogXQogCiBia2lfZGF0YSA9IFsKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfYW1vcC5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Ft b3AuZGF0CmluZGV4IDYxY2Q1OTE0MzA0YS4uYTBiZDcwODEzMjdjIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Ftb3AuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfYW1vcC5kYXQKQEAgLTEwMjgsNiArMTAyOCwxMSBAQAogICBhbW9wcmlnaHR0eXBl ID0+ICdieXRlYScsIGFtb3BzdHJhdGVneSA9PiAnMScsIGFtb3BvcHIgPT4gJz0oYnl0ZWEs Ynl0ZWEpJywKICAgYW1vcG1ldGhvZCA9PiAnaGFzaCcgfSwKIAorIyBwZ19lbmNyeXB0ZWRf ZGV0X29wcworeyBhbW9wZmFtaWx5ID0+ICdoYXNoL3BnX2VuY3J5cHRlZF9kZXRfb3BzJywg YW1vcGxlZnR0eXBlID0+ICdwZ19lbmNyeXB0ZWRfZGV0JywKKyAgYW1vcHJpZ2h0dHlwZSA9 PiAncGdfZW5jcnlwdGVkX2RldCcsIGFtb3BzdHJhdGVneSA9PiAnMScsIGFtb3BvcHIgPT4g Jz0ocGdfZW5jcnlwdGVkX2RldCxwZ19lbmNyeXB0ZWRfZGV0KScsCisgIGFtb3BtZXRob2Qg PT4gJ2hhc2gnIH0sCisKICMgeGlkX29wcwogeyBhbW9wZmFtaWx5ID0+ICdoYXNoL3hpZF9v cHMnLCBhbW9wbGVmdHR5cGUgPT4gJ3hpZCcsIGFtb3ByaWdodHR5cGUgPT4gJ3hpZCcsCiAg IGFtb3BzdHJhdGVneSA9PiAnMScsIGFtb3BvcHIgPT4gJz0oeGlkLHhpZCknLCBhbW9wbWV0 aG9kID0+ICdoYXNoJyB9LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19h bXByb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0CmluZGV4IDRj YzEyOWJlYmQ4My4uZGRkYjI3MTEzZmExIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX2FtcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2Mu ZGF0CkBAIC00MDIsNiArNDAyLDExIEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnaGFzaC9ieXRl YV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYnl0ZWEnLAogICBhbXByb2NyaWdodHR5cGUg PT4gJ2J5dGVhJywgYW1wcm9jbnVtID0+ICcyJywKICAgYW1wcm9jID0+ICdoYXNodmFybGVu YWV4dGVuZGVkJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2hhc2gvcGdfZW5jcnlwdGVkX2Rl dF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsCisgIGFtcHJv Y3JpZ2h0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsIGFtcHJvY251bSA9PiAnMScsIGFt cHJvYyA9PiAnaGFzaHZhcmxlbmEnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnaGFzaC9wZ19l bmNyeXB0ZWRfZGV0X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdwZ19lbmNyeXB0ZWRfZGV0 JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdwZ19lbmNyeXB0ZWRfZGV0JywgYW1wcm9jbnVt ID0+ICcyJywKKyAgYW1wcm9jID0+ICdoYXNodmFybGVuYWV4dGVuZGVkJyB9LAogeyBhbXBy b2NmYW1pbHkgPT4gJ2hhc2gveGlkX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd4aWQnLAog ICBhbXByb2NyaWdodHR5cGUgPT4gJ3hpZCcsIGFtcHJvY251bSA9PiAnMScsIGFtcHJvYyA9 PiAnaGFzaGludDQnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnaGFzaC94aWRfb3BzJywgYW1w cm9jbGVmdHR5cGUgPT4gJ3hpZCcsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2F0dHJpYnV0ZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaApp bmRleCAwNTMyOTRjOTlmMzcuLjU1MGE1MzY0OWJlYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X2F0dHJpYnV0ZS5oCkBAIC0xNjQsNiArMTY0LDE1IEBAIENBVEFMT0cocGdfYXR0cmlidXRl LDEyNDksQXR0cmlidXRlUmVsYXRpb25JZCkgQktJX0JPT1RTVFJBUCBCS0lfUk9XVFlQRV9P SUQoNzUsCiAJICovCiAJYm9vbAkJYXR0aXNsb2NhbCBCS0lfREVGQVVMVCh0KTsKIAorCS8q IGNvbHVtbiBlbmNyeXB0aW9uIGtleSAqLworCU9pZAkJCWF0dGNlayBCS0lfREVGQVVMVCgw KSBCS0lfTE9PS1VQX09QVChwZ19jb2xlbmNrZXkpOworCisJLyogcmVhbCB0eXBlIGlmIGVu Y3J5cHRlZCAqLworCU9pZAkJCWF0dHJlYWx0eXBpZCBCS0lfREVGQVVMVCgwKSBCS0lfTE9P S1VQX09QVChwZ190eXBlKTsKKworCS8qIGVuY3J5cHRpb24gYWxnb3JpdGhtIChQR19DRUtf KiB2YWx1ZXMpICovCisJaW50MTYJCWF0dGVuY2FsZyBCS0lfREVGQVVMVCgwKTsKKwogCS8q IE51bWJlciBvZiB0aW1lcyBpbmhlcml0ZWQgZnJvbSBkaXJlY3QgcGFyZW50IHJlbGF0aW9u KHMpICovCiAJaW50MzIJCWF0dGluaGNvdW50IEJLSV9ERUZBVUxUKDApOwogCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0IGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19jYXN0LmRhdAppbmRleCA0NDcxZWI2YmJlYTQuLjg3OGIwYmNiYmY1MCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdAorKysgYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0CkBAIC01NDYsNCArNTQ2LDEwIEBACiB7IGNhc3Rz b3VyY2UgPT4gJ3RzdHpyYW5nZScsIGNhc3R0YXJnZXQgPT4gJ3RzdHptdWx0aXJhbmdlJywK ICAgY2FzdGZ1bmMgPT4gJ3RzdHptdWx0aXJhbmdlKHRzdHpyYW5nZSknLCBjYXN0Y29udGV4 dCA9PiAnZScsCiAgIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisKK3sgY2FzdHNvdXJjZSA9PiAn Ynl0ZWEnLCBjYXN0dGFyZ2V0ID0+ICdwZ19lbmNyeXB0ZWRfZGV0JywgY2FzdGZ1bmMgPT4g JzAnLAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCit7IGNh c3Rzb3VyY2UgPT4gJ2J5dGVhJywgY2FzdHRhcmdldCA9PiAncGdfZW5jcnlwdGVkX3JuZCcs IGNhc3RmdW5jID0+ICcwJywKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ ICdiJyB9LAorCiBdCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVu Y2tleS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXkuaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjA5NWVkNzEyYjAzYgotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5LmgKQEAgLTAsMCAr MSw1NSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfY29sZW5ja2V5LmgK KyAqCSAgZGVmaW5pdGlvbiBvZiB0aGUgImNvbHVtbiBlbmNyeXB0aW9uIGtleSIgc3lzdGVt IGNhdGFsb2cKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisg KgorICogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmtleS5oCisgKgorICogTk9URVMK KyAqCSAgVGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVyaXZl cyBzY2hlbWEKKyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgKi8KKyNpZm5kZWYgUEdfQ09MRU5DS0VZX0gKKyNkZWZpbmUgUEdfQ09MRU5DS0VZX0gK KworI2luY2x1ZGUgImNhdGFsb2cvZ2VuYmtpLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19j b2xlbmNrZXlfZC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJcGdfY29sZW5ja2V5 IGRlZmluaXRpb24uIGNwcCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVmIHN0cnVjdCBG b3JtRGF0YV9wZ19jb2xlbmNrZXkKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLworQ0FUQUxP RyhwZ19jb2xlbmNrZXksODIzNCxDb2x1bW5FbmNLZXlSZWxhdGlvbklkKQoreworCU9pZAkJ CW9pZDsKKwlOYW1lRGF0YQljZWtuYW1lOworCU9pZAkJCWNla293bmVyIEJLSV9MT09LVVAo cGdfYXV0aGlkKTsKK30gRm9ybURhdGFfcGdfY29sZW5ja2V5OworCit0eXBlZGVmIEZvcm1E YXRhX3BnX2NvbGVuY2tleSAqRm9ybV9wZ19jb2xlbmNrZXk7CisKK0RFQ0xBUkVfVU5JUVVF X0lOREVYX1BLRVkocGdfY29sZW5ja2V5X29pZF9pbmRleCwgODI0MCwgQ29sdW1uRW5jS2V5 T2lkSW5kZXhJZCwgb24gcGdfY29sZW5ja2V5IHVzaW5nIGJ0cmVlKG9pZCBvaWRfb3BzKSk7 CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ19jb2xlbmNrZXlfY2VrbmFtZV9pbmRleCwgODI0 MiwgQ29sdW1uRW5jS2V5TmFtZUluZGV4SWQsIG9uIHBnX2NvbGVuY2tleSB1c2luZyBidHJl ZShjZWtuYW1lIG5hbWVfb3BzKSk7CisKKy8qCisgKiBDb25zdGFudHMgZm9yIENNSyBhbmQg Q0VLIGFsZ29yaXRobXMuICBOb3RlIHRoYXQgdGhlc2UgYXJlIHBhcnQgb2YgdGhlCisgKiBw cm90b2NvbC4gIEZvciBjbGFyaXR5LCB0aGUgYXNzaWduZWQgbnVtYmVycyBhcmUgbm90IHJl dXNlZCBiZXR3ZWVuIENNS3MKKyAqIGFuZCBDRUtzLCBidXQgdGhhdCBpcyBub3QgdGVjaG5p Y2FsbHkgcmVxdWlyZWQuICBJbiBlaXRoZXIgY2FzZSwgZG9uJ3QKKyAqIGFzc2lnbiB6ZXJv LCBzbyB0aGF0IHRoYXQgY2FuIGJlIHVzZWQgYXMgYW4gaW52YWxpZCB2YWx1ZS4KKyAqLwor CisjZGVmaW5lIFBHX0NNS19SU0FFU19PQUVQX1NIQV8xCQkJMQorI2RlZmluZSBQR19DTUtf UlNBRVNfT0FFUF9TSEFfMjU2CQkyCisKKyNkZWZpbmUgUEdfQ0VLX0FFQURfQUVTXzEyOF9D QkNfSE1BQ19TSEFfMjU2CTEzMAorI2RlZmluZSBQR19DRUtfQUVBRF9BRVNfMTkyX0NCQ19I TUFDX1NIQV8zODQJMTMxCisjZGVmaW5lIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNf U0hBXzM4NAkxMzIKKyNkZWZpbmUgUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFf NTEyCTEzMworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf Y29sZW5ja2V5ZGF0YS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRh LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zZTRkZWE3MjE4 MGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tl eWRhdGEuaApAQCAtMCwwICsxLDQ2IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisg KiBwZ19jb2xlbmNrZXlkYXRhLmgKKyAqCSAgZGVmaW5pdGlvbiBvZiB0aGUgImNvbHVtbiBl bmNyeXB0aW9uIGtleSBkYXRhIiBzeXN0ZW0gY2F0YWxvZworICoKKyAqIFBvcnRpb25zIENv cHlyaWdodCAoYykgMTk5Ni0yMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBH cm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBV bml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X2NvbGVua2V5ZGF0YS5oCisgKgorICogTk9URVMKKyAqCSAgVGhlIENhdGFsb2cucG0gbW9k dWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVyaXZlcyBzY2hlbWEKKyAqCSAgaW5mb3JtYXRp b24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpZm5kZWYgUEdfQ09MRU5D S0VZREFUQV9ICisjZGVmaW5lIFBHX0NPTEVOQ0tFWURBVEFfSAorCisjaW5jbHVkZSAiY2F0 YWxvZy9nZW5ia2kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleWRhdGFfZC5o IgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJcGdfY29sZW5ja2V5ZGF0YSBkZWZpbml0 aW9uLiBjcHAgdHVybnMgdGhpcyBpbnRvCisgKgkJdHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFf cGdfY29sZW5ja2V5ZGF0YQorICogLS0tLS0tLS0tLS0tLS0tLQorICovCitDQVRBTE9HKHBn X2NvbGVuY2tleWRhdGEsODI1MCxDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25JZCkKK3sKKwlP aWQJCQlvaWQ7CisJT2lkCQkJY2tkY2VraWQgQktJX0xPT0tVUChwZ19jb2xlbmNrZXkpOwor CU9pZAkJCWNrZGNta2lkIEJLSV9MT09LVVAocGdfY29sbWFzdGVya2V5KTsKKwlpbnQxNgkJ Y2tkY21rYWxnOwkJLyogUEdfQ01LXyogdmFsdWVzICovCisjaWZkZWYgQ0FUQUxPR19WQVJM RU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8KKwlieXRlYQkJ Y2tkZW5jdmFsIEJLSV9GT1JDRV9OT1RfTlVMTDsKKyNlbmRpZgorfSBGb3JtRGF0YV9wZ19j b2xlbmNrZXlkYXRhOworCit0eXBlZGVmIEZvcm1EYXRhX3BnX2NvbGVuY2tleWRhdGEgKkZv cm1fcGdfY29sZW5ja2V5ZGF0YTsKKworREVDTEFSRV9UT0FTVChwZ19jb2xlbmNrZXlkYXRh LCA4MjM3LCA4MjM4KTsKKworREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ19jb2xlbmNr ZXlkYXRhX29pZF9pbmRleCwgODI1MSwgQ29sdW1uRW5jS2V5RGF0YU9pZEluZGV4SWQsIG9u IHBnX2NvbGVuY2tleWRhdGEgdXNpbmcgYnRyZWUob2lkIG9pZF9vcHMpKTsKK0RFQ0xBUkVf VU5JUVVFX0lOREVYKHBnX2NvbGVuY2tleWRhdGFfY2tkY2VraWRfY2tkY21raWRfaW5kZXgs IDgyNTIsIENvbHVtbkVuY0tleUNla2lkQ21raWRJbmRleElkLCBvbiBwZ19jb2xlbmNrZXlk YXRhIHVzaW5nIGJ0cmVlKGNrZGNla2lkIG9pZF9vcHMsIGNrZGNta2lkIG9pZF9vcHMpKTsK KworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbG1hc3Rl cmtleS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjAzNDRjYzQyMDE2OAotLS0gL2Rl di9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgKQEAg LTAsMCArMSw0NSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfY29sbWFz dGVya2V5LmgKKyAqCSAgZGVmaW5pdGlvbiBvZiB0aGUgImNvbHVtbiBtYXN0ZXIga2V5IiBz eXN0ZW0gY2F0YWxvZworICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDIy LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29w eXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3Ju aWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oCisgKgor ICogTk9URVMKKyAqCSAgVGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBh bmQgZGVyaXZlcyBzY2hlbWEKKyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgKi8KKyNpZm5kZWYgUEdfQ09MTUFTVEVSS0VZX0gKKyNkZWZpbmUgUEdf Q09MTUFTVEVSS0VZX0gKKworI2luY2x1ZGUgImNhdGFsb2cvZ2VuYmtpLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXlfZC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0t CisgKgkJcGdfY29sbWFzdGVya2V5IGRlZmluaXRpb24uIGNwcCB0dXJucyB0aGlzIGludG8K KyAqCQl0eXBlZGVmIHN0cnVjdCBGb3JtRGF0YV9wZ19jb2xtYXN0ZXJrZXkKKyAqIC0tLS0t LS0tLS0tLS0tLS0KKyAqLworQ0FUQUxPRyhwZ19jb2xtYXN0ZXJrZXksODIzMyxDb2x1bW5N YXN0ZXJLZXlSZWxhdGlvbklkKQoreworCU9pZAkJCW9pZDsKKwlOYW1lRGF0YQljbWtuYW1l OworCU9pZAkJCWNta293bmVyIEJLSV9MT09LVVAocGdfYXV0aGlkKTsKKyNpZmRlZiBDQVRB TE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwor CXRleHQJCWNta3JlYWxtIEJLSV9GT1JDRV9OT1RfTlVMTDsKKyNlbmRpZgorfSBGb3JtRGF0 YV9wZ19jb2xtYXN0ZXJrZXk7CisKK3R5cGVkZWYgRm9ybURhdGFfcGdfY29sbWFzdGVya2V5 ICpGb3JtX3BnX2NvbG1hc3RlcmtleTsKKworREVDTEFSRV9UT0FTVChwZ19jb2xtYXN0ZXJr ZXksIDgyMzUsIDgyMzYpOworCitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBnX2NvbG1h c3RlcmtleV9vaWRfaW5kZXgsIDgyMzksIENvbHVtbk1hc3RlcktleU9pZEluZGV4SWQsIG9u IHBnX2NvbG1hc3RlcmtleSB1c2luZyBidHJlZShvaWQgb2lkX29wcykpOworREVDTEFSRV9V TklRVUVfSU5ERVgocGdfY29sbWFzdGVya2V5X2Nta25hbWVfaW5kZXgsIDgyNDEsIENvbHVt bk1hc3RlcktleU5hbWVJbmRleElkLCBvbiBwZ19jb2xtYXN0ZXJrZXkgdXNpbmcgYnRyZWUo Y21rbmFtZSBuYW1lX29wcykpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfb3BjbGFzcy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wY2xh c3MuZGF0CmluZGV4IGRiY2FlN2ZmZGQyMS4uMGNhNDAxZmZlNDc4IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wY2xhc3MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfb3BjbGFzcy5kYXQKQEAgLTE2Niw2ICsxNjYsOCBAQAogICBvcGNpbnR5cGUg PT4gJ2Jvb2wnIH0sCiB7IG9wY21ldGhvZCA9PiAnaGFzaCcsIG9wY25hbWUgPT4gJ2J5dGVh X29wcycsIG9wY2ZhbWlseSA9PiAnaGFzaC9ieXRlYV9vcHMnLAogICBvcGNpbnR5cGUgPT4g J2J5dGVhJyB9LAoreyBvcGNtZXRob2QgPT4gJ2hhc2gnLCBvcGNuYW1lID0+ICdwZ19lbmNy eXB0ZWRfZGV0X29wcycsIG9wY2ZhbWlseSA9PiAnaGFzaC9wZ19lbmNyeXB0ZWRfZGV0X29w cycsCisgIG9wY2ludHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcgfSwKIHsgb3BjbWV0aG9k ID0+ICdidHJlZScsIG9wY25hbWUgPT4gJ3RpZF9vcHMnLCBvcGNmYW1pbHkgPT4gJ2J0cmVl L3RpZF9vcHMnLAogICBvcGNpbnR5cGUgPT4gJ3RpZCcgfSwKIHsgb3BjbWV0aG9kID0+ICdo YXNoJywgb3BjbmFtZSA9PiAneGlkX29wcycsIG9wY2ZhbWlseSA9PiAnaGFzaC94aWRfb3Bz JywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0IGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGVyYXRvci5kYXQKaW5kZXggYmM1ZjgyMTNmM2Fm Li40NzM3YTdmOWVkMTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3Bl cmF0b3IuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0CkBA IC0zNDU4LDQgKzM0NTgsMTQgQEAKICAgb3ByY29kZSA9PiAnbXVsdGlyYW5nZV9hZnRlcl9t dWx0aXJhbmdlJywgb3BycmVzdCA9PiAnbXVsdGlyYW5nZXNlbCcsCiAgIG9wcmpvaW4gPT4g J3NjYWxhcmd0am9pbnNlbCcgfSwKIAoreyBvaWQgPT4gJzgyNDcnLCBkZXNjciA9PiAnZXF1 YWwnLAorICBvcHJuYW1lID0+ICc9Jywgb3ByY2FubWVyZ2UgPT4gJ2YnLCBvcHJjYW5oYXNo ID0+ICd0Jywgb3BybGVmdCA9PiAncGdfZW5jcnlwdGVkX2RldCcsCisgIG9wcnJpZ2h0ID0+ ICdwZ19lbmNyeXB0ZWRfZGV0Jywgb3BycmVzdWx0ID0+ICdib29sJywgb3ByY29tID0+ICc9 KHBnX2VuY3J5cHRlZF9kZXQscGdfZW5jcnlwdGVkX2RldCknLAorICBvcHJuZWdhdGUgPT4g Jzw+KHBnX2VuY3J5cHRlZF9kZXQscGdfZW5jcnlwdGVkX2RldCknLCBvcHJjb2RlID0+ICdw Z19lbmNyeXB0ZWRfZGV0X2VxJywgb3BycmVzdCA9PiAnZXFzZWwnLAorICBvcHJqb2luID0+ ICdlcWpvaW5zZWwnIH0sCit7IG9pZCA9PiAnODI0OCcsIGRlc2NyID0+ICdub3QgZXF1YWwn LAorICBvcHJuYW1lID0+ICc8PicsIG9wcmxlZnQgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCBv cHJyaWdodCA9PiAncGdfZW5jcnlwdGVkX2RldCcsIG9wcnJlc3VsdCA9PiAnYm9vbCcsCisg IG9wcmNvbSA9PiAnPD4ocGdfZW5jcnlwdGVkX2RldCxwZ19lbmNyeXB0ZWRfZGV0KScsIG9w cm5lZ2F0ZSA9PiAnPShwZ19lbmNyeXB0ZWRfZGV0LHBnX2VuY3J5cHRlZF9kZXQpJywKKyAg b3ByY29kZSA9PiAncGdfZW5jcnlwdGVkX2RldF9uZScsIG9wcnJlc3QgPT4gJ25lcXNlbCcs IG9wcmpvaW4gPT4gJ25lcWpvaW5zZWwnIH0sCisKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfb3BmYW1pbHkuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19v cGZhbWlseS5kYXQKaW5kZXggYjNiNmE3ZTYxNmE5Li41MzQzNTgwYjA2MzIgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BmYW1pbHkuZGF0CisrKyBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfb3BmYW1pbHkuZGF0CkBAIC0xMDgsNiArMTA4LDggQEAKICAgb3Bm bWV0aG9kID0+ICdoYXNoJywgb3BmbmFtZSA9PiAnYm9vbF9vcHMnIH0sCiB7IG9pZCA9PiAn MjIyMycsCiAgIG9wZm1ldGhvZCA9PiAnaGFzaCcsIG9wZm5hbWUgPT4gJ2J5dGVhX29wcycg fSwKK3sgb2lkID0+ICc4MjQ5JywKKyAgb3BmbWV0aG9kID0+ICdoYXNoJywgb3BmbmFtZSA9 PiAncGdfZW5jcnlwdGVkX2RldF9vcHMnIH0sCiB7IG9pZCA9PiAnMjc4OScsCiAgIG9wZm1l dGhvZCA9PiAnYnRyZWUnLCBvcGZuYW1lID0+ICd0aWRfb3BzJyB9LAogeyBvaWQgPT4gJzIy MjUnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggNjhiYjAzMmQzZWE1Li45MDQ3 MjNhNWNjZTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQK KysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtODAzNiw5ICs4MDM2 LDkgQEAKICAgcHJvbmFtZSA9PiAncGdfcHJlcGFyZWRfc3RhdGVtZW50JywgcHJvcm93cyA9 PiAnMTAwMCcsIHByb3JldHNldCA9PiAndCcsCiAgIHByb3ZvbGF0aWxlID0+ICdzJywgcHJv cGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLAogICBwcm9hcmd0eXBl cyA9PiAnJywKLSAgcHJvYWxsYXJndHlwZXMgPT4gJ3t0ZXh0LHRleHQsdGltZXN0YW1wdHos X3JlZ3R5cGUsX3JlZ3R5cGUsYm9vbCxpbnQ4LGludDh9JywKLSAgcHJvYXJnbW9kZXMgPT4g J3tvLG8sbyxvLG8sbyxvLG99JywKLSAgcHJvYXJnbmFtZXMgPT4gJ3tuYW1lLHN0YXRlbWVu dCxwcmVwYXJlX3RpbWUscGFyYW1ldGVyX3R5cGVzLHJlc3VsdF90eXBlcyxmcm9tX3NxbCxn ZW5lcmljX3BsYW5zLGN1c3RvbV9wbGFuc30nLAorICBwcm9hbGxhcmd0eXBlcyA9PiAne3Rl eHQsdGV4dCx0aW1lc3RhbXB0eixfcmVndHlwZSxfcmVnY2xhc3MsX2ludDIsX3JlZ3R5cGUs Ym9vbCxpbnQ4LGludDh9JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxvLG8s byxvfScsCisgIHByb2FyZ25hbWVzID0+ICd7bmFtZSxzdGF0ZW1lbnQscHJlcGFyZV90aW1l LHBhcmFtZXRlcl90eXBlcyxwYXJhbWV0ZXJfb3JpZ190YWJsZXMscGFyYW1ldGVyX29yaWdf Y29sdW1ucyxyZXN1bHRfdHlwZXMsZnJvbV9zcWwsZ2VuZXJpY19wbGFucyxjdXN0b21fcGxh bnN9JywKICAgcHJvc3JjID0+ICdwZ19wcmVwYXJlZF9zdGF0ZW1lbnQnIH0sCiB7IG9pZCA9 PiAnMjUxMScsIGRlc2NyID0+ICdnZXQgdGhlIG9wZW4gY3Vyc29ycyBmb3IgdGhpcyBzZXNz aW9uJywKICAgcHJvbmFtZSA9PiAncGdfY3Vyc29yJywgcHJvcm93cyA9PiAnMTAwMCcsIHBy b3JldHNldCA9PiAndCcsCkBAIC0xMTgyMyw0ICsxMTgyMywxMSBAQAogICBwcm9yZXR0eXBl ID0+ICdieXRlYScsIHByb2FyZ3R5cGVzID0+ICdwZ19icmluX21pbm1heF9tdWx0aV9zdW1t YXJ5JywKICAgcHJvc3JjID0+ICdicmluX21pbm1heF9tdWx0aV9zdW1tYXJ5X3NlbmQnIH0s CiAKK3sgb2lkID0+ICc4MjQ1JywKKyAgcHJvbmFtZSA9PiAncGdfZW5jcnlwdGVkX2RldF9l cScsIHByb2xlYWtwcm9vZiA9PiAndCcsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9h cmd0eXBlcyA9PiAncGdfZW5jcnlwdGVkX2RldCBwZ19lbmNyeXB0ZWRfZGV0JywgcHJvc3Jj ID0+ICdieXRlYWVxJyB9LAoreyBvaWQgPT4gJzgyNDYnLAorICBwcm9uYW1lID0+ICdwZ19l bmNyeXB0ZWRfZGV0X25lJywgcHJvbGVha3Byb29mID0+ICd0JywgcHJvcmV0dHlwZSA9PiAn Ym9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICdwZ19lbmNyeXB0ZWRfZGV0IHBnX2VuY3J5cHRl ZF9kZXQnLCBwcm9zcmMgPT4gJ2J5dGVhbmUnIH0sCisKIF0KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5 cGUuZGF0CmluZGV4IGRmNDU4Nzk0NjM1Ny4uODUxMDYzY2Y1ZjA1IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfdHlwZS5kYXQKQEAgLTY5Miw0ICs2OTIsMTYgQEAKICAgdHlwcmVjZWl2ZSA9PiAn YnJpbl9taW5tYXhfbXVsdGlfc3VtbWFyeV9yZWN2JywKICAgdHlwc2VuZCA9PiAnYnJpbl9t aW5tYXhfbXVsdGlfc3VtbWFyeV9zZW5kJywgdHlwYWxpZ24gPT4gJ2knLAogICB0eXBzdG9y YWdlID0+ICd4JywgdHlwY29sbGF0aW9uID0+ICdkZWZhdWx0JyB9LAorCit7IG9pZCA9PiAn ODI0MycsIGRlc2NyID0+ICdlbmNyeXB0ZWQgY29sdW1uIChkZXRlcm1pbmlzdGljKScsCisg IHR5cG5hbWUgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCB0eXBsZW4gPT4gJy0xJywgdHlwYnl2 YWwgPT4gJ2YnLCB0eXB0eXBlID0+ICdiJywKKyAgdHlwY2F0ZWdvcnkgPT4gJ1knLCB0eXBp bnB1dCA9PiAnYnl0ZWFpbicsIHR5cG91dHB1dCA9PiAnYnl0ZWFvdXQnLAorICB0eXByZWNl aXZlID0+ICdieXRlYXJlY3YnLCB0eXBzZW5kID0+ICdieXRlYXNlbmQnLCB0eXBhbGlnbiA9 PiAnaScsCisgIHR5cHN0b3JhZ2UgPT4gJ2UnIH0sCit7IG9pZCA9PiAnODI0NCcsIGRlc2Ny ID0+ICdlbmNyeXB0ZWQgY29sdW1uIChyYW5kb21pemVkKScsCisgIHR5cG5hbWUgPT4gJ3Bn X2VuY3J5cHRlZF9ybmQnLCB0eXBsZW4gPT4gJy0xJywgdHlwYnl2YWwgPT4gJ2YnLCB0eXB0 eXBlID0+ICdiJywKKyAgdHlwY2F0ZWdvcnkgPT4gJ1knLCB0eXBpbnB1dCA9PiAnYnl0ZWFp bicsIHR5cG91dHB1dCA9PiAnYnl0ZWFvdXQnLAorICB0eXByZWNlaXZlID0+ICdieXRlYXJl Y3YnLCB0eXBzZW5kID0+ICdieXRlYXNlbmQnLCB0eXBhbGlnbiA9PiAnaScsCisgIHR5cHN0 b3JhZ2UgPT4gJ2UnIH0sCisKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdHlwZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmgKaW5kZXggNDhhMjU1 OTEzNzQyLi5jMWQzMDkwM2I1YjIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdHlwZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5oCkBAIC0yOTQs NiArMjk0LDcgQEAgREVDTEFSRV9VTklRVUVfSU5ERVgocGdfdHlwZV90eXBuYW1lX25zcF9p bmRleCwgMjcwNCwgVHlwZU5hbWVOc3BJbmRleElkLCBvbiBwZ18KICNkZWZpbmUgIFRZUENB VEVHT1JZX1VTRVIJCSdVJwogI2RlZmluZSAgVFlQQ0FURUdPUllfQklUU1RSSU5HCSdWJyAv KiBlciAuLi4gInZhcmJpdCI/ICovCiAjZGVmaW5lICBUWVBDQVRFR09SWV9VTktOT1dOCSdY JworI2RlZmluZSAgVFlQQ0FURUdPUllfRU5DUllQVEVECSdZJwogI2RlZmluZSAgVFlQQ0FU RUdPUllfSU5URVJOQUwJJ1onCiAKICNkZWZpbmUgIFRZUEFMSUdOX0NIQVIJCQknYycgLyog Y2hhciBhbGlnbm1lbnQgKGkuZS4gdW5hbGlnbmVkKSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvY29tbWFuZHMvY29sZW5jY21kcy5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29s ZW5jY21kcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDk3 NDFlMTAwYmIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29s ZW5jY21kcy5oCkBAIC0wLDAgKzEsMjUgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoK KyAqIGNvbGVuY2NtZHMuaAorICoJICBwcm90b3R5cGVzIGZvciBjb2xlbmNjbWRzLmMuCisg KgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDIyLCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAx OTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBz cmMvaW5jbHVkZS9jb21tYW5kcy9jb2xlbmNjbWRzLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAqLworCisjaWZuZGVmIENPTEVOQ0NNRFNfSAorI2RlZmluZSBDT0xFTkNDTURT X0gKKworI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5oIgorI2luY2x1ZGUgInBh cnNlci9wYXJzZV9ub2RlLmgiCisKK2V4dGVybiBPYmplY3RBZGRyZXNzIENyZWF0ZUNFSyhQ YXJzZVN0YXRlICpwc3RhdGUsIERlZmluZVN0bXQgKnN0bXQpOworZXh0ZXJuIE9iamVjdEFk ZHJlc3MgQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0 ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdCAqc3RtdCk7CitleHRlcm4gT2JqZWN0QWRkcmVz cyBDcmVhdGVDTUsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBEZWZpbmVTdG10ICpzdG10KTsKKwor I2VuZGlmCQkJCQkJCS8qIENPTEVOQ0NNRFNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvbGlicHEvbGlicHEtYmUuaCBiL3NyYy9pbmNsdWRlL2xpYnBxL2xpYnBxLWJlLmgKaW5k ZXggNmQ0NTJlYzZkOTU2Li5lMzJjNzc3OWM5NTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2xpYnBxL2xpYnBxLWJlLmgKKysrIGIvc3JjL2luY2x1ZGUvbGlicHEvbGlicHEtYmUuaApA QCAtMTY0LDYgKzE2NCw3IEBAIHR5cGVkZWYgc3RydWN0IFBvcnQKIAkgKi8KIAljaGFyCSAg ICpkYXRhYmFzZV9uYW1lOwogCWNoYXIJICAgKnVzZXJfbmFtZTsKKwlib29sCQljb2x1bW5f ZW5jcnlwdGlvbl9lbmFibGVkOwogCWNoYXIJICAgKmNtZGxpbmVfb3B0aW9uczsKIAlMaXN0 CSAgICpndWNfb3B0aW9uczsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDYzM2U3 NjcxYjNlYS4uNzU1NmQwMGUzNDhmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC02 ODcsNiArNjg3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ29sdW1uRGVmCiAJY2hhcgkgICAqY29s bmFtZTsJCS8qIG5hbWUgb2YgY29sdW1uICovCiAJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkv KiB0eXBlIG9mIGNvbHVtbiAqLwogCWNoYXIJICAgKmNvbXByZXNzaW9uOwkvKiBjb21wcmVz c2lvbiBtZXRob2QgZm9yIGNvbHVtbiAqLworCUxpc3QJICAgKmVuY3J5cHRpb247CQkvKiBl bmNyeXB0aW9uIGluZm8gZm9yIGNvbHVtbiAqLwogCWludAkJCWluaGNvdW50OwkJLyogbnVt YmVyIG9mIHRpbWVzIGNvbHVtbiBpcyBpbmhlcml0ZWQgKi8KIAlib29sCQlpc19sb2NhbDsJ CS8qIGNvbHVtbiBoYXMgbG9jYWwgKG5vbi1pbmhlcml0ZWQpIGRlZiduICovCiAJYm9vbAkJ aXNfbm90X251bGw7CS8qIE5PVCBOVUxMIGNvbnN0cmFpbnQgc3BlY2lmaWVkPyAqLwpAQCAt MTg2NSw2ICsxODY2LDkgQEAgdHlwZWRlZiBlbnVtIE9iamVjdFR5cGUKIAlPQkpFQ1RfQ0FT VCwKIAlPQkpFQ1RfQ09MVU1OLAogCU9CSkVDVF9DT0xMQVRJT04sCisJT0JKRUNUX0NFSywK KwlPQkpFQ1RfQ0VLREFUQSwKKwlPQkpFQ1RfQ01LLAogCU9CSkVDVF9DT05WRVJTSU9OLAog CU9CSkVDVF9EQVRBQkFTRSwKIAlPQkpFQ1RfREVGQVVMVCwKQEAgLTIwNTcsNiArMjA2MSwx OSBAQCB0eXBlZGVmIHN0cnVjdCBBbHRlckNvbGxhdGlvblN0bXQKIH0gQWx0ZXJDb2xsYXRp b25TdG10OwogCiAKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIEFsdGVyIENvbHVt biBFbmNyeXB0aW9uIEtleQorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBl ZGVmIHN0cnVjdCBBbHRlckNvbHVtbkVuY3J5cHRpb25LZXlTdG10Cit7CisJTm9kZVRhZwkJ dHlwZTsKKwljaGFyCSAgICpjZWtuYW1lOworCWJvb2wJCWlzRHJvcDsJCQkvKiBBREQgb3Ig RFJPUCB0aGUgaXRlbXM/ICovCisJTGlzdAkgICAqZGVmaW5pdGlvbjsKK30gQWx0ZXJDb2x1 bW5FbmNyeXB0aW9uS2V5U3RtdDsKKworCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg KglBbHRlciBEb21haW4KICAqCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvYW5h bHl6ZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2FuYWx5emUuaAppbmRleCAzZDNhNTkxOGMy ZmMuLjZjMjg2NmQxOWY4YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2FuYWx5 emUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oCkBAIC0yOCw3ICsyOCw5 IEBAIGV4dGVybiBQR0RMTElNUE9SVCBwb3N0X3BhcnNlX2FuYWx5emVfaG9va190eXBlIHBv c3RfcGFyc2VfYW5hbHl6ZV9ob29rOwogZXh0ZXJuIFF1ZXJ5ICpwYXJzZV9hbmFseXplX2Zp eGVkcGFyYW1zKFJhd1N0bXQgKnBhcnNlVHJlZSwgY29uc3QgY2hhciAqc291cmNlVGV4dCwK IAkJCQkJCQkJCQljb25zdCBPaWQgKnBhcmFtVHlwZXMsIGludCBudW1QYXJhbXMsIFF1ZXJ5 RW52aXJvbm1lbnQgKnF1ZXJ5RW52KTsKIGV4dGVybiBRdWVyeSAqcGFyc2VfYW5hbHl6ZV92 YXJwYXJhbXMoUmF3U3RtdCAqcGFyc2VUcmVlLCBjb25zdCBjaGFyICpzb3VyY2VUZXh0LAot CQkJCQkJCQkJICBPaWQgKipwYXJhbVR5cGVzLCBpbnQgKm51bVBhcmFtcywgUXVlcnlFbnZp cm9ubWVudCAqcXVlcnlFbnYpOworCQkJCQkJCQkJICBPaWQgKipwYXJhbVR5cGVzLCBpbnQg Km51bVBhcmFtcywKKwkJCQkJCQkJCSAgT2lkICoqcGFyYW1PcmlnVGJscywgQXR0ck51bWJl ciAqKnBhcmFtT3JpZ0NvbHMsCisJCQkJCQkJCQkgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5 RW52KTsKIGV4dGVybiBRdWVyeSAqcGFyc2VfYW5hbHl6ZV93aXRoY2IoUmF3U3RtdCAqcGFy c2VUcmVlLCBjb25zdCBjaGFyICpzb3VyY2VUZXh0LAogCQkJCQkJCQkgICBQYXJzZXJTZXR1 cEhvb2sgcGFyc2VyU2V0dXAsCiAJCQkJCQkJCSAgIHZvaWQgKnBhcnNlclNldHVwQXJnLApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUv cGFyc2VyL2t3bGlzdC5oCmluZGV4IGNjYzkyNzg1MWNiOS4uMjRhNjgzZjRhZTBlIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUv cGFyc2VyL2t3bGlzdC5oCkBAIC0xNDksNiArMTQ5LDcgQEAgUEdfS0VZV09SRCgiZWxzZSIs IEVMU0UsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlbmFi bGUiLCBFTkFCTEVfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZ V09SRCgiZW5jb2RpbmciLCBFTkNPRElORywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgiZW5jcnlwdGVkIiwgRU5DUllQVEVELCBVTlJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJlbmNyeXB0aW9uIiwgRU5DUllQVElP TiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZW5kIiwg RU5EX1AsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlbnVt IiwgRU5VTV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JE KCJlc2NhcGUiLCBFU0NBUEUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKQEAg LTI1MCw2ICsyNTEsNyBAQCBQR19LRVlXT1JEKCJsb2NrIiwgTE9DS19QLCBVTlJFU0VSVkVE X0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsb2NrZWQiLCBMT0NLRUQsIFVO UkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxvZ2dlZCIsIExP R0dFRCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibWFw cGluZyIsIE1BUFBJTkcsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tF WVdPUkQoIm1hc3RlciIsIE1BU1RFUiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQogUEdfS0VZV09SRCgibWF0Y2giLCBNQVRDSCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgibWF0Y2hlZCIsIE1BVENIRUQsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoIm1hdGVyaWFsaXplZCIsIE1BVEVSSUFM SVpFRCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9ub2RlLmgKaW5kZXggOTYyZWJmNjVkZTE4Li5mNmE3MTc4NzY2ZWYgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFy c2VyL3BhcnNlX25vZGUuaApAQCAtOTMsNiArOTMsNyBAQCB0eXBlZGVmIE5vZGUgKigqUGFy c2VQYXJhbVJlZkhvb2spIChQYXJzZVN0YXRlICpwc3RhdGUsIFBhcmFtUmVmICpwcmVmKTsK IHR5cGVkZWYgTm9kZSAqKCpDb2VyY2VQYXJhbUhvb2spIChQYXJzZVN0YXRlICpwc3RhdGUs IFBhcmFtICpwYXJhbSwKIAkJCQkJCQkJICBPaWQgdGFyZ2V0VHlwZUlkLCBpbnQzMiB0YXJn ZXRUeXBlTW9kLAogCQkJCQkJCQkgIGludCBsb2NhdGlvbik7Cit0eXBlZGVmIHZvaWQgKCpQ YXJhbUFzc2lnbk9yaWdIb29rKSAoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbSAqcGFyYW0s IE9pZCBvcmlndGJsLCBBdHRyTnVtYmVyIG9yaWdjb2wpOwogCiAKIC8qCkBAIC0yMjIsNiAr MjIzLDcgQEAgc3RydWN0IFBhcnNlU3RhdGUKIAlQb3N0UGFyc2VDb2x1bW5SZWZIb29rIHBf cG9zdF9jb2x1bW5yZWZfaG9vazsKIAlQYXJzZVBhcmFtUmVmSG9vayBwX3BhcmFtcmVmX2hv b2s7CiAJQ29lcmNlUGFyYW1Ib29rIHBfY29lcmNlX3BhcmFtX2hvb2s7CisJUGFyYW1Bc3Np Z25PcmlnSG9vayBwX3BhcmFtX2Fzc2lnbl9vcmlnX2hvb2s7CiAJdm9pZAkgICAqcF9yZWZf aG9va19zdGF0ZTsJLyogY29tbW9uIHBhc3N0aHJvdWdoIGxpbmsgZm9yIGFib3ZlICovCiB9 OwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcGFyYW0uaCBiL3Ny Yy9pbmNsdWRlL3BhcnNlci9wYXJzZV9wYXJhbS5oCmluZGV4IGRmMWVlNjYwZDgzMS4uZGEy MDJiMjhhN2MzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcGFyYW0u aAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcGFyYW0uaApAQCAtMTgsNyArMTgs OCBAQAogZXh0ZXJuIHZvaWQgc2V0dXBfcGFyc2VfZml4ZWRfcGFyYW1ldGVycyhQYXJzZVN0 YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJIGNvbnN0IE9pZCAqcGFyYW1UeXBlcywgaW50IG51 bVBhcmFtcyk7CiBleHRlcm4gdm9pZCBzZXR1cF9wYXJzZV92YXJpYWJsZV9wYXJhbWV0ZXJz KFBhcnNlU3RhdGUgKnBzdGF0ZSwKLQkJCQkJCQkJCQkJT2lkICoqcGFyYW1UeXBlcywgaW50 ICpudW1QYXJhbXMpOworCQkJCQkJCQkJCQlPaWQgKipwYXJhbVR5cGVzLCBpbnQgKm51bVBh cmFtcywKKwkJCQkJCQkJCQkJT2lkICoqcGFyYW1PcmlnVGJscywgQXR0ck51bWJlciAqKnBh cmFtT3JpZ0NvbHMpOwogZXh0ZXJuIHZvaWQgY2hlY2tfdmFyaWFibGVfcGFyYW1ldGVycyhQ YXJzZVN0YXRlICpwc3RhdGUsIFF1ZXJ5ICpxdWVyeSk7CiBleHRlcm4gYm9vbCBxdWVyeV9j b250YWluc19leHRlcm5fcGFyYW1zKFF1ZXJ5ICpxdWVyeSk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWds aXN0LmgKaW5kZXggOWU5NGY0NGM1ZjQzLi5kODJhMmUxMTcxYmEgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvY21k dGFnbGlzdC5oCkBAIC0yOSw2ICsyOSw4IEBAIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfQUND RVNTX01FVEhPRCwgIkFMVEVSIEFDQ0VTUyBNRVRIT0QiLCB0cnVlLCBmYWxzZSwgZmFsc2Up CiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX0FHR1JFR0FURSwgIkFMVEVSIEFHR1JFR0FURSIs IHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfQ0FTVCwgIkFM VEVSIENBU1QiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVS X0NPTExBVElPTiwgIkFMVEVSIENPTExBVElPTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BH X0NNRFRBRyhDTURUQUdfQUxURVJfQ09MVU1OX0VOQ1JZUFRJT05fS0VZLCAiQUxURVIgQ09M VU1OIEVOQ1JZUFRJT04gS0VZIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENN RFRBR19BTFRFUl9DT0xVTU5fTUFTVEVSX0tFWSwgIkFMVEVSIENPTFVNTiBNQVNURVIgS0VZ IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9DT05TVFJB SU5ULCAiQUxURVIgQ09OU1RSQUlOVCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRB RyhDTURUQUdfQUxURVJfQ09OVkVSU0lPTiwgIkFMVEVSIENPTlZFUlNJT04iLCB0cnVlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX0RBVEFCQVNFLCAiQUxURVIg REFUQUJBU0UiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpAQCAtODYsNiArODgsOCBAQCBQR19D TURUQUcoQ01EVEFHX0NSRUFURV9BQ0NFU1NfTUVUSE9ELCAiQ1JFQVRFIEFDQ0VTUyBNRVRI T0QiLCB0cnVlLCBmYWxzZSwgZmFscwogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQUdHUkVH QVRFLCAiQ1JFQVRFIEFHR1JFR0FURSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRB RyhDTURUQUdfQ1JFQVRFX0NBU1QsICJDUkVBVEUgQ0FTVCIsIHRydWUsIGZhbHNlLCBmYWxz ZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX0NPTExBVElPTiwgIkNSRUFURSBDT0xMQVRJ T04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0NSRUFURV9DT0xV TU5fRU5DUllQVElPTl9LRVksICJDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQ09MVU1OX01BU1RF Ul9LRVksICJDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkiLCB0cnVlLCBmYWxzZSwgZmFsc2Up CiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9DT05TVFJBSU5ULCAiQ1JFQVRFIENPTlNUUkFJ TlQiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9DT05W RVJTSU9OLCAiQ1JFQVRFIENPTlZFUlNJT04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19D TURUQUcoQ01EVEFHX0NSRUFURV9EQVRBQkFTRSwgIkNSRUFURSBEQVRBQkFTRSIsIGZhbHNl LCBmYWxzZSwgZmFsc2UpCkBAIC0xMzgsNiArMTQyLDggQEAgUEdfQ01EVEFHKENNRFRBR19E Uk9QX0FDQ0VTU19NRVRIT0QsICJEUk9QIEFDQ0VTUyBNRVRIT0QiLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQUdHUkVHQVRFLCAiRFJPUCBBR0dSRUdB VEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQ0FTVCwg IkRST1AgQ0FTVCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJP UF9DT0xMQVRJT04sICJEUk9QIENPTExBVElPTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BH X0NNRFRBRyhDTURUQUdfRFJPUF9DT0xVTU5fRU5DUllQVElPTl9LRVksICJEUk9QIENPTFVN TiBFTkNSWVBUSU9OIEtFWSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURU QUdfRFJPUF9DT0xVTU5fTUFTVEVSX0tFWSwgIkRST1AgQ09MVU1OIE1BU1RFUiBLRVkiLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQ09OU1RSQUlOVCwg IkRST1AgQ09OU1RSQUlOVCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfRFJPUF9DT05WRVJTSU9OLCAiRFJPUCBDT05WRVJTSU9OIiwgdHJ1ZSwgZmFsc2UsIGZh bHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0RBVEFCQVNFLCAiRFJPUCBEQVRBQkFTRSIs IGZhbHNlLCBmYWxzZSwgZmFsc2UpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29wL3Rj b3Bwcm90LmggYi9zcmMvaW5jbHVkZS90Y29wL3Rjb3Bwcm90LmgKaW5kZXggNWQzNDk3OGYz MjllLi43NTAyZDcxYjBkMjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvdGNvcHBy b3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL3Rjb3Bwcm90LmgKQEAgLTUzLDYgKzUzLDgg QEAgZXh0ZXJuIExpc3QgKnBnX2FuYWx5emVfYW5kX3Jld3JpdGVfdmFycGFyYW1zKFJhd1N0 bXQgKnBhcnNldHJlZSwKIAkJCQkJCQkJCQkJICBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcs CiAJCQkJCQkJCQkJCSAgT2lkICoqcGFyYW1UeXBlcywKIAkJCQkJCQkJCQkJICBpbnQgKm51 bVBhcmFtcywKKwkJCQkJCQkJCQkJICBPaWQgKipwYXJhbU9yaWdUYmxzLAorCQkJCQkJCQkJ CQkgIEF0dHJOdW1iZXIgKipwYXJhbU9yaWdDb2xzLAogCQkJCQkJCQkJCQkgIFF1ZXJ5RW52 aXJvbm1lbnQgKnF1ZXJ5RW52KTsKIGV4dGVybiBMaXN0ICpwZ19hbmFseXplX2FuZF9yZXdy aXRlX3dpdGhjYihSYXdTdG10ICpwYXJzZXRyZWUsCiAJCQkJCQkJCQkJICAgY29uc3QgY2hh ciAqcXVlcnlfc3RyaW5nLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgg Yi9zcmMvaW5jbHVkZS91dGlscy9hY2wuaAppbmRleCA5YTRkZjNhNWRhY2MuLmE3YzUxZGMz Yzg5YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKKysrIGIvc3JjL2lu Y2x1ZGUvdXRpbHMvYWNsLmgKQEAgLTMxOCw2ICszMTgsOCBAQCBleHRlcm4gYm9vbCBwZ19v cGNsYXNzX293bmVyY2hlY2soT2lkIG9wY19vaWQsIE9pZCByb2xlaWQpOwogZXh0ZXJuIGJv b2wgcGdfb3BmYW1pbHlfb3duZXJjaGVjayhPaWQgb3BmX29pZCwgT2lkIHJvbGVpZCk7CiBl eHRlcm4gYm9vbCBwZ19kYXRhYmFzZV9vd25lcmNoZWNrKE9pZCBkYl9vaWQsIE9pZCByb2xl aWQpOwogZXh0ZXJuIGJvb2wgcGdfY29sbGF0aW9uX293bmVyY2hlY2soT2lkIGNvbGxfb2lk LCBPaWQgcm9sZWlkKTsKK2V4dGVybiBib29sIHBnX2NvbHVtbl9lbmNyeXB0aW9uX2tleV9v d25lcmNoZWNrKE9pZCBjZWtfb2lkLCBPaWQgcm9sZWlkKTsKK2V4dGVybiBib29sIHBnX2Nv bHVtbl9tYXN0ZXJfa2V5X293bmVyY2hlY2soT2lkIGNta19vaWQsIE9pZCByb2xlaWQpOwog ZXh0ZXJuIGJvb2wgcGdfY29udmVyc2lvbl9vd25lcmNoZWNrKE9pZCBjb252X29pZCwgT2lk IHJvbGVpZCk7CiBleHRlcm4gYm9vbCBwZ190c19kaWN0X293bmVyY2hlY2soT2lkIGRpY3Rf b2lkLCBPaWQgcm9sZWlkKTsKIGV4dGVybiBib29sIHBnX3RzX2NvbmZpZ19vd25lcmNoZWNr KE9pZCBjZmdfb2lkLCBPaWQgcm9sZWlkKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0 aWxzL2xzeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKaW5kZXgg NTBmMDI4ODMwNTI1Li43MjU4ZDQwMDc3MDUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0 aWxzL2xzeXNjYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCkBA IC0xNjMsNiArMTYzLDcgQEAgZXh0ZXJuIGJvb2wgdHlwZV9pc19yb3d0eXBlKE9pZCB0eXBp ZCk7CiBleHRlcm4gYm9vbCB0eXBlX2lzX2VudW0oT2lkIHR5cGlkKTsKIGV4dGVybiBib29s IHR5cGVfaXNfcmFuZ2UoT2lkIHR5cGlkKTsKIGV4dGVybiBib29sIHR5cGVfaXNfbXVsdGly YW5nZShPaWQgdHlwaWQpOworZXh0ZXJuIGJvb2wgdHlwZV9pc19lbmNyeXB0ZWQoT2lkIHR5 cGlkKTsKIGV4dGVybiB2b2lkIGdldF90eXBlX2NhdGVnb3J5X3ByZWZlcnJlZChPaWQgdHlw aWQsCiAJCQkJCQkJCQkJY2hhciAqdHlwY2F0ZWdvcnksCiAJCQkJCQkJCQkJYm9vbCAqdHlw aXNwcmVmZXJyZWQpOwpAQCAtMjAyLDYgKzIwMywxMSBAQCBleHRlcm4gT2lkCWdldF9wdWJs aWNhdGlvbl9vaWQoY29uc3QgY2hhciAqcHVibmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4 dGVybiBjaGFyICpnZXRfcHVibGljYXRpb25fbmFtZShPaWQgcHViaWQsIGJvb2wgbWlzc2lu Z19vayk7CiBleHRlcm4gT2lkCWdldF9zdWJzY3JpcHRpb25fb2lkKGNvbnN0IGNoYXIgKnN1 Ym5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gY2hhciAqZ2V0X3N1YnNjcmlwdGlv bl9uYW1lKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVybiBPaWQJZ2V0X2Nl a19vaWQoY29uc3QgY2hhciAqY2VrbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVybiBj aGFyICpnZXRfY2VrX25hbWUoT2lkIGNla2lkLCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJu IE9pZAlnZXRfY2VrZGF0YV9vaWQoT2lkIGNla2lkLCBPaWQgY21raWQsIGJvb2wgbWlzc2lu Z19vayk7CitleHRlcm4gT2lkCWdldF9jbWtfb2lkKGNvbnN0IGNoYXIgKmNta25hbWUsIGJv b2wgbWlzc2luZ19vayk7CitleHRlcm4gY2hhciAqZ2V0X2Nta19uYW1lKE9pZCBjbWtpZCwg Ym9vbCBtaXNzaW5nX29rKTsKIAogI2RlZmluZSB0eXBlX2lzX2FycmF5KHR5cGlkKSAgKGdl dF9lbGVtZW50X3R5cGUodHlwaWQpICE9IEludmFsaWRPaWQpCiAvKiB0eXBlX2lzX2FycmF5 X2RvbWFpbiBhY2NlcHRzIGJvdGggcGxhaW4gYXJyYXlzIGFuZCBkb21haW5zIG92ZXIgYXJy YXlzICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9wbGFuY2FjaGUuaCBiL3Ny Yy9pbmNsdWRlL3V0aWxzL3BsYW5jYWNoZS5oCmluZGV4IDA0OTk2MzVmNTk0NS4uOWE3Y2Y3 OTRjZWNmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9wbGFuY2FjaGUuaAorKysg Yi9zcmMvaW5jbHVkZS91dGlscy9wbGFuY2FjaGUuaApAQCAtMTAxLDYgKzEwMSwxMCBAQCB0 eXBlZGVmIHN0cnVjdCBDYWNoZWRQbGFuU291cmNlCiAJQ29tbWFuZFRhZwljb21tYW5kVGFn OwkJLyogJ251ZmYgc2FpZCAqLwogCU9pZAkJICAgKnBhcmFtX3R5cGVzOwkvKiBhcnJheSBv ZiBwYXJhbWV0ZXIgdHlwZSBPSURzLCBvciBOVUxMICovCiAJaW50CQkJbnVtX3BhcmFtczsJ CS8qIGxlbmd0aCBvZiBwYXJhbV90eXBlcyBhcnJheSAqLworCU9pZAkJICAgKnBhcmFtX29y aWd0YmxzOyAvKiBhcnJheSBvZiB1bmRlcmx5aW5nIHRhYmxlcyBvZiBwYXJhbWV0ZXJzLAor CQkJCQkJCQkgKiBvciBOVUxMICovCisJQXR0ck51bWJlciAqcGFyYW1fb3JpZ2NvbHM7IC8q IGFycmF5IG9mIHVuZGVybHlpbmcgY29sdW1ucyBvZiBwYXJhbWV0ZXJzLAorCQkJCQkJCQkg KiBvciBOVUxMICovCiAJUGFyc2VyU2V0dXBIb29rIHBhcnNlclNldHVwOwkvKiBhbHRlcm5h dGl2ZSBwYXJhbWV0ZXIgc3BlYyBtZXRob2QgKi8KIAl2b2lkCSAgICpwYXJzZXJTZXR1cEFy ZzsKIAlpbnQJCQljdXJzb3Jfb3B0aW9uczsgLyogY3Vyc29yIG9wdGlvbnMgdXNlZCBmb3Ig cGxhbm5pbmcgKi8KQEAgLTE5OSw2ICsyMDMsOCBAQCBleHRlcm4gdm9pZCBDb21wbGV0ZUNh Y2hlZFBsYW4oQ2FjaGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZSwKIAkJCQkJCQkgICBNZW1v cnlDb250ZXh0IHF1ZXJ5dHJlZV9jb250ZXh0LAogCQkJCQkJCSAgIE9pZCAqcGFyYW1fdHlw ZXMsCiAJCQkJCQkJICAgaW50IG51bV9wYXJhbXMsCisJCQkJCQkJICAgT2lkICpwYXJhbV9v cmlndGJscywKKwkJCQkJCQkgICBBdHRyTnVtYmVyICpwYXJhbV9vcmlnY29scywKIAkJCQkJ CQkgICBQYXJzZXJTZXR1cEhvb2sgcGFyc2VyU2V0dXAsCiAJCQkJCQkJICAgdm9pZCAqcGFy c2VyU2V0dXBBcmcsCiAJCQkJCQkJICAgaW50IGN1cnNvcl9vcHRpb25zLApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvdXRpbHMvc3lzY2FjaGUuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3N5 c2NhY2hlLmgKaW5kZXggNDQ2M2VhNjZiZWE1Li40ODljNmVlNzM0YmIgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3V0aWxzL3N5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMv c3lzY2FjaGUuaApAQCAtNDQsOCArNDQsMTQgQEAgZW51bSBTeXNDYWNoZUlkZW50aWZpZXIK IAlBVVRITkFNRSwKIAlBVVRIT0lELAogCUNBU1RTT1VSQ0VUQVJHRVQsCisJQ0VLREFUQUNF S0NNSywKKwlDRUtEQVRBT0lELAorCUNFS05BTUUsCisJQ0VLT0lELAogCUNMQUFNTkFNRU5T UCwKIAlDTEFPSUQsCisJQ01LTkFNRSwKKwlDTUtPSUQsCiAJQ09MTE5BTUVFTkNOU1AsCiAJ Q09MTE9JRCwKIAlDT05ERUZBVUxULApkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGli cHEvTWFrZWZpbGUgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmlsZQppbmRleCAxZDMx YjI1NmZjOWUuLjQ4MTJmODYyY2E2YSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGli cHEvTWFrZWZpbGUKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUKQEAgLTU0 LDYgKzU0LDcgQEAgZW5kaWYKIAogaWZlcSAoJCh3aXRoX3NzbCksb3BlbnNzbCkKIE9CSlMg Kz0gXAorCWZlLWVuY3J5cHQtb3BlbnNzbC5vIFwKIAlmZS1zZWN1cmUtb3BlbnNzbC5vCiBl bmRpZgogCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4dCBi L3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0CmluZGV4IGU4YmNjODgzNzA5MS4u ZmFiYWQzOGFjMGYxIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRz LnR4dAorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4dApAQCAtMTg2LDMg KzE4Niw3IEBAIFBRcGlwZWxpbmVTdGF0dXMgICAgICAgICAgMTgzCiBQUXNldFRyYWNlRmxh Z3MgICAgICAgICAgIDE4NAogUFFtYmxlbkJvdW5kZWQgICAgICAgICAgICAxODUKIFBRc2Vu ZEZsdXNoUmVxdWVzdCAgICAgICAgMTg2CitQUWV4ZWNQcmVwYXJlZDIgICAgICAgICAgIDE4 NworUFFzZW5kUXVlcnlQcmVwYXJlZDIgICAgICAxODgKK1BRZmlzZW5jcnlwdGVkICAgICAg ICAgICAgMTg5CitQUXBhcmFtaXNlbmNyeXB0ZWQgICAgICAgIDE5MApkaWZmIC0tZ2l0IGEv c3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jIGIvc3JjL2ludGVyZmFjZXMvbGli cHEvZmUtY29ubmVjdC5jCmluZGV4IDc0NmU5YjRmMWVmYy4uZjJhMzczOTA4NDdlIDEwMDY0 NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMKKysrIGIvc3JjL2lu dGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jCkBAIC0zNDEsNiArMzQxLDE0IEBAIHN0YXRp YyBjb25zdCBpbnRlcm5hbFBRY29ubmluZm9PcHRpb24gUFFjb25uaW5mb09wdGlvbnNbXSA9 IHsKIAkJIlRhcmdldC1TZXNzaW9uLUF0dHJzIiwgIiIsIDE1LCAvKiBzaXplb2YoInByZWZl ci1zdGFuZGJ5IikgPSAxNSAqLwogCW9mZnNldG9mKHN0cnVjdCBwZ19jb25uLCB0YXJnZXRf c2Vzc2lvbl9hdHRycyl9LAogCisJeyJjbWtsb29rdXAiLCAiUEdDTUtMT09LVVAiLCAiIiwg TlVMTCwKKwkJIkNNSy1Mb29rdXAiLCAiIiwgNjQsCisJb2Zmc2V0b2Yoc3RydWN0IHBnX2Nv bm4sIGNta2xvb2t1cCl9LAorCisJeyJjb2x1bW5fZW5jcnlwdGlvbiIsICJQR0NPTFVNTkVO Q1JZUFRJT04iLCAiMCIsIE5VTEwsCisJCSJDb2x1bW4tRW5jcnlwdGlvbiIsICIiLCAxLAor CW9mZnNldG9mKHN0cnVjdCBwZ19jb25uLCBjb2x1bW5fZW5jcnlwdGlvbl9zZXR0aW5nKX0s CisKIAkvKiBUZXJtaW5hdGluZyBlbnRyeSAtLS0gTVVTVCBCRSBMQVNUICovCiAJe05VTEws IE5VTEwsIE5VTEwsIE5VTEwsCiAJTlVMTCwgTlVMTCwgMH0KQEAgLTI0NTQsNiArMjQ2Miw3 IEBAIFBRY29ubmVjdFBvbGwoUEdjb25uICpjb25uKQogI2lmZGVmIEVOQUJMRV9HU1MKIAkJ Y29ubi0+dHJ5X2dzcyA9IChjb25uLT5nc3NlbmNtb2RlWzBdICE9ICdkJyk7CS8qICJkaXNh YmxlIiAqLwogI2VuZGlmCisJCWNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQgPSAo Y29ubi0+Y29sdW1uX2VuY3J5cHRpb25fc2V0dGluZ1swXSA9PSAnMScpOwogCiAJCXJlc2V0 X2Nvbm5lY3Rpb25fc3RhdGVfbWFjaGluZSA9IGZhbHNlOwogCQluZWVkX25ld19jb25uZWN0 aW9uID0gdHJ1ZTsKQEAgLTMyNDksNyArMzI1OCw3IEBAIFBRY29ubmVjdFBvbGwoUEdjb25u ICpjb25uKQogCQkJCSAqIHJlcXVlc3Qgb3IgYW4gZXJyb3IgaGVyZS4gIEFueXRoaW5nIGVs c2UgcHJvYmFibHkgbWVhbnMKIAkJCQkgKiBpdCdzIG5vdCBQb3N0Z3JlcyBvbiB0aGUgb3Ro ZXIgZW5kIGF0IGFsbC4KIAkJCQkgKi8KLQkJCQlpZiAoIShiZXJlc3AgPT0gJ1InIHx8IGJl cmVzcCA9PSAnRScpKQorCQkJCWlmICghKGJlcmVzcCA9PSAnUicgfHwgYmVyZXNwID09ICdF JyB8fCBiZXJlc3AgPT0gJ3YnKSkKIAkJCQl7CiAJCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZj b25uLT5lcnJvck1lc3NhZ2UsCiAJCQkJCQkJCQkgIGxpYnBxX2dldHRleHQoImV4cGVjdGVk IGF1dGhlbnRpY2F0aW9uIHJlcXVlc3QgZnJvbSBzZXJ2ZXIsIGJ1dCByZWNlaXZlZCAlY1xu IiksCkBAIC0zNDA1LDYgKzM0MTQsMTcgQEAgUFFjb25uZWN0UG9sbChQR2Nvbm4gKmNvbm4p CiAKIAkJCQkJZ290byBlcnJvcl9yZXR1cm47CiAJCQkJfQorCQkJCWVsc2UgaWYgKGJlcmVz cCA9PSAndicpCisJCQkJeworCQkJCQlpZiAocHFHZXROZWdvdGlhdGVQcm90b2NvbFZlcnNp b24zKGNvbm4pKQorCQkJCQl7CisJCQkJCQkvKiBXZSdsbCBjb21lIGJhY2sgd2hlbiB0aGVy ZSBpcyBtb3JlIGRhdGEgKi8KKwkJCQkJCXJldHVybiBQR1JFU19QT0xMSU5HX1JFQURJTkc7 CisJCQkJCX0KKwkJCQkJLyogT0ssIHdlIHJlYWQgdGhlIG1lc3NhZ2U7IG1hcmsgZGF0YSBj b25zdW1lZCAqLworCQkJCQljb25uLT5pblN0YXJ0ID0gY29ubi0+aW5DdXJzb3I7CisJCQkJ CWdvdG8gZXJyb3JfcmV0dXJuOworCQkJCX0KIAogCQkJCS8qIEl0IGlzIGFuIGF1dGhlbnRp Y2F0aW9uIHJlcXVlc3QuICovCiAJCQkJY29ubi0+YXV0aF9yZXFfcmVjZWl2ZWQgPSB0cnVl OwpAQCAtNDA4MCw2ICs0MTAwLDIyIEBAIGZyZWVQR2Nvbm4oUEdjb25uICpjb25uKQogCWZy ZWUoY29ubi0+a3Jic3J2bmFtZSk7CiAJZnJlZShjb25uLT5nc3NsaWIpOwogCWZyZWUoY29u bi0+Y29ubmlwKTsKKwlmcmVlKGNvbm4tPmNta2xvb2t1cCk7CisJZm9yIChpbnQgaSA9IDA7 IGkgPCBjb25uLT5uY21rczsgaSsrKQorCXsKKwkJZnJlZShjb25uLT5jbWtzW2ldLmNta25h bWUpOworCQlmcmVlKGNvbm4tPmNta3NbaV0uY21rcmVhbG0pOworCX0KKwlmcmVlKGNvbm4t PmNta3MpOworCWZvciAoaW50IGkgPSAwOyBpIDwgY29ubi0+bmNla3M7IGkrKykKKwl7CisJ CWlmIChjb25uLT5jZWtzW2ldLmNla2RhdGEpCisJCXsKKwkJCWV4cGxpY2l0X2J6ZXJvKGNv bm4tPmNla3NbaV0uY2VrZGF0YSwgY29ubi0+Y2Vrc1tpXS5jZWtkYXRhbGVuKTsKKwkJCWZy ZWUoY29ubi0+Y2Vrc1tpXS5jZWtkYXRhKTsKKwkJfQorCX0KKwlmcmVlKGNvbm4tPmNla3Mp OwogCS8qIE5vdGUgdGhhdCBjb25uLT5QZmRlYnVnIGlzIG5vdCBvdXJzIHRvIGNsb3NlIG9y IGZyZWUgKi8KIAlmcmVlKGNvbm4tPndyaXRlX2Vycl9tc2cpOwogCWZyZWUoY29ubi0+aW5C dWZmZXIpOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZW5jcnlwdC1v cGVuc3NsLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LW9wZW5zc2wuYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmVlMDM5ZjY2YTViOQot LS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3Bl bnNzbC5jCkBAIC0wLDAgKzEsNzgyIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisg KiBmZS1lbmNyeXB0LW9wZW5zc2wuYworICoJICBlbmNyeXB0aW9uIHN1cHBvcnQgdXNpbmcg T3BlblNTTAorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwg UG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHly aWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlh CisgKgorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9pbnRlcmZhY2VzL2xpYnBx L2ZlLWVuY3J5cHQtb3BlbnNzbC5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8K KworI2luY2x1ZGUgInBvc3RncmVzX2ZlLmgiCisKKyNpbmNsdWRlICJmZS1lbmNyeXB0Lmgi CisjaW5jbHVkZSAibGlicHEtaW50LmgiCisKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVu Y2tleS5oIgorI2luY2x1ZGUgInBvcnQvcGdfYnN3YXAuaCIKKworI2luY2x1ZGUgPG9wZW5z c2wvZXZwLmg+CisKKworI2lmZGVmIFRFU1RfRU5DUllQVAorCisvKgorICogVGVzdCBkYXRh IGZyb20KKyAqIDxodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0 LW1jZ3Jldy1hZWFkLWFlcy1jYmMtaG1hYy1zaGEyLTA1I3NlY3Rpb24tNT4KKyAqLworCisv KgorICogVGhlIGRpZmZlcmVudCB0ZXN0IGNhc2VzIGp1c3QgdXNlIGRpZmZlcmVudCBwcmVm aXhlcyBvZiBLLCBzbyBvbmUgY29uc3RhbnQKKyAqIGlzIGVub3VnaCBoZXJlLgorICovCitz dGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBLW10gPSB7CisJMHgwMCwgMHgwMSwgMHgwMiwg MHgwMywgMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywgMHgwOCwgMHgwOSwgMHgwYSwgMHgwYiwg MHgwYywgMHgwZCwgMHgwZSwgMHgwZiwKKwkweDEwLCAweDExLCAweDEyLCAweDEzLCAweDE0 LCAweDE1LCAweDE2LCAweDE3LCAweDE4LCAweDE5LCAweDFhLCAweDFiLCAweDFjLCAweDFk LCAweDFlLCAweDFmLAorCTB4MjAsIDB4MjEsIDB4MjIsIDB4MjMsIDB4MjQsIDB4MjUsIDB4 MjYsIDB4MjcsIDB4MjgsIDB4MjksIDB4MmEsIDB4MmIsIDB4MmMsIDB4MmQsIDB4MmUsIDB4 MmYsCisJMHgzMCwgMHgzMSwgMHgzMiwgMHgzMywgMHgzNCwgMHgzNSwgMHgzNiwgMHgzNywg MHgzOCwgMHgzOSwgMHgzYSwgMHgzYiwgMHgzYywgMHgzZCwgMHgzZSwgMHgzZiwKK307CisK K3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIFBbXSA9IHsKKwkweDQxLCAweDIwLCAweDYz LCAweDY5LCAweDcwLCAweDY4LCAweDY1LCAweDcyLCAweDIwLCAweDczLCAweDc5LCAweDcz LCAweDc0LCAweDY1LCAweDZkLCAweDIwLAorCTB4NmQsIDB4NzUsIDB4NzMsIDB4NzQsIDB4 MjAsIDB4NmUsIDB4NmYsIDB4NzQsIDB4MjAsIDB4NjIsIDB4NjUsIDB4MjAsIDB4NzIsIDB4 NjUsIDB4NzEsIDB4NzUsCisJMHg2OSwgMHg3MiwgMHg2NSwgMHg2NCwgMHgyMCwgMHg3NCwg MHg2ZiwgMHgyMCwgMHg2MiwgMHg2NSwgMHgyMCwgMHg3MywgMHg2NSwgMHg2MywgMHg3Miwg MHg2NSwKKwkweDc0LCAweDJjLCAweDIwLCAweDYxLCAweDZlLCAweDY0LCAweDIwLCAweDY5 LCAweDc0LCAweDIwLCAweDZkLCAweDc1LCAweDczLCAweDc0LCAweDIwLCAweDYyLAorCTB4 NjUsIDB4MjAsIDB4NjEsIDB4NjIsIDB4NmMsIDB4NjUsIDB4MjAsIDB4NzQsIDB4NmYsIDB4 MjAsIDB4NjYsIDB4NjEsIDB4NmMsIDB4NmMsIDB4MjAsIDB4NjksCisJMHg2ZSwgMHg3NCwg MHg2ZiwgMHgyMCwgMHg3NCwgMHg2OCwgMHg2NSwgMHgyMCwgMHg2OCwgMHg2MSwgMHg2ZSwg MHg2NCwgMHg3MywgMHgyMCwgMHg2ZiwgMHg2NiwKKwkweDIwLCAweDc0LCAweDY4LCAweDY1 LCAweDIwLCAweDY1LCAweDZlLCAweDY1LCAweDZkLCAweDc5LCAweDIwLCAweDc3LCAweDY5 LCAweDc0LCAweDY4LCAweDZmLAorCTB4NzUsIDB4NzQsIDB4MjAsIDB4NjksIDB4NmUsIDB4 NjMsIDB4NmYsIDB4NmUsIDB4NzYsIDB4NjUsIDB4NmUsIDB4NjksIDB4NjUsIDB4NmUsIDB4 NjMsIDB4NjUsCit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciB0ZXN0X0lWW10g PSB7CisJMHgxYSwgMHhmMywgMHg4YywgMHgyZCwgMHhjMiwgMHhiOSwgMHg2ZiwgMHhmZCwg MHhkOCwgMHg2NiwgMHg5NCwgMHgwOSwgMHgyMywgMHg0MSwgMHhiYywgMHgwNCwKK307CisK K3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHRlc3RfQVtdID0geworCTB4NTQsIDB4Njgs IDB4NjUsIDB4MjAsIDB4NzMsIDB4NjUsIDB4NjMsIDB4NmYsIDB4NmUsIDB4NjQsIDB4MjAs IDB4NzAsIDB4NzIsIDB4NjksIDB4NmUsIDB4NjMsCisJMHg2OSwgMHg3MCwgMHg2YywgMHg2 NSwgMHgyMCwgMHg2ZiwgMHg2NiwgMHgyMCwgMHg0MSwgMHg3NSwgMHg2NywgMHg3NSwgMHg3 MywgMHg3NCwgMHg2NSwgMHgyMCwKKwkweDRiLCAweDY1LCAweDcyLCAweDYzLCAweDZiLCAw eDY4LCAweDZmLCAweDY2LCAweDY2LCAweDczLAorfTsKKworCisjZGVmaW5lIGxpYnBxX2dl dHRleHQoeCkgKHgpCisKKyNlbmRpZgkJCQkJCQkvKiBURVNUX0VOQ1JZUFQgKi8KKworCit1 bnNpZ25lZCBjaGFyICoKK2RlY3J5cHRfY2VrX2Zyb21fZmlsZShQR2Nvbm4gKmNvbm4sIGNv bnN0IGNoYXIgKmNta2ZpbGVuYW1lLCBpbnQgY21rYWxnLAorCQkJCQkgIGludCBmcm9tbGVu LCBjb25zdCB1bnNpZ25lZCBjaGFyICpmcm9tLAorCQkJCQkgIGludCAqdG9sZW4pCit7CisJ Y29uc3QgRVZQX01EICptZCA9IE5VTEw7CisJRVZQX1BLRVkgICAqa2V5ID0gTlVMTDsKKwlS U0EJCSAgICpyc2EgPSBOVUxMOworCUJJTwkJICAgKmJpbyA9IE5VTEw7CisJRVZQX1BLRVlf Q1RYICpjdHggPSBOVUxMOworCXVuc2lnbmVkIGNoYXIgKm91dCA9IE5VTEw7CisJc2l6ZV90 CQlvdXRsZW47CisKKwlzd2l0Y2ggKGNta2FsZykKKwl7CisJCWNhc2UgUEdfQ01LX1JTQUVT X09BRVBfU0hBXzE6CisJCQltZCA9IEVWUF9zaGExKCk7CisJCQlicmVhazsKKwkJY2FzZSBQ R19DTUtfUlNBRVNfT0FFUF9TSEFfMjU2OgorCQkJbWQgPSBFVlBfc2hhMjU2KCk7CisJCQli cmVhazsKKwkJZGVmYXVsdDoKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1l c3NhZ2UsCisJCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJ1bnN1cHBvcnRlZCBDTUsgYWxnb3Jp dGhtIElEOiAlZFxuIiksIGNta2FsZyk7CisJCQlnb3RvIGZhaWw7CisJfQorCisJYmlvID0g QklPX25ld19maWxlKGNta2ZpbGVuYW1lLCAiciIpOworCWlmICghYmlvKQorCXsKKwkJYXBw ZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0 dGV4dCgiY291bGQgbm90IG9wZW4gZmlsZSBcIiVzXCI6ICVtXG4iKSwgY21rZmlsZW5hbWUp OworCQlnb3RvIGZhaWw7CisJfQorCisJcnNhID0gUlNBX25ldygpOworCWlmICghcnNhKQor CXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAg bGlicHFfZ2V0dGV4dCgiY291bGQgbm90IGFsbG9jYXRlIFJTQSBzdHJ1Y3R1cmU6ICVzXG4i KSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7 CisJCWdvdG8gZmFpbDsKKwl9CisJLyoKKwkgKiBOb3RlOiBXZSBtdXN0IGdvIHRocm91Z2gg QklPIGFuZCBub3Qgc2F5IHVzZSBQRU1fcmVhZF9SU0FQcml2YXRlS2V5KCkKKwkgKiBkaXJl Y3RseSBvbiBhIEZJTEUuICBPdGhlcndpc2UsIHdlIGdldCBpbnRvICJubyBPUEVOU1NMX0Fw cGxpbmsiIGhlbGwKKwkgKiBvbiBXaW5kb3dzICh3aGljaCBoYXBwZW5zIHdoZW5ldmVyIHlv dSBwYXNzIGEgc3RkaW8gaGFuZGxlIGZyb20gdGhlCisJICogYXBwbGljYXRpb24gaW50byBP cGVuU1NMKS4KKwkgKi8KKwlyc2EgPSBQRU1fcmVhZF9iaW9fUlNBUHJpdmF0ZUtleShiaW8s ICZyc2EsIE5VTEwsIE5VTEwpOworCWlmICghcnNhKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZm ZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiY291bGQg bm90IHJlYWQgUlNBIHByaXZhdGUga2V5OiAlc1xuIiksCisJCQkJCQkgIEVSUl9yZWFzb25f ZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJ a2V5ID0gRVZQX1BLRVlfbmV3KCk7CisJaWYgKCFrZXkpCisJeworCQlhcHBlbmRQUUV4cEJ1 ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJjb3Vs ZCBub3QgYWxsb2NhdGUgcHJpdmF0ZSBrZXkgc3RydWN0dXJlOiAlc1xuIiksCisJCQkJCQkg IEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZh aWw7CisJfQorCisJaWYgKCFFVlBfUEtFWV9hc3NpZ25fUlNBKGtleSwgcnNhKSkKKwl7CisJ CWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBx X2dldHRleHQoImNvdWxkIG5vdCBhc3NpZ24gcHJpdmF0ZSBrZXk6ICVzXG4iKSwKKwkJCQkJ CSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdvdG8g ZmFpbDsKKwl9CisKKwljdHggPSBFVlBfUEtFWV9DVFhfbmV3KGtleSwgTlVMTCk7CisJaWYg KCFjdHgpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAor CQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJjb3VsZCBub3QgYWxsb2NhdGUgcHVibGljIGtleSBh bGdvcml0aG0gY29udGV4dDogJXNcbiIpLAorCQkJCQkJICBFUlJfcmVhc29uX2Vycm9yX3N0 cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCWlmIChFVlBf UEtFWV9kZWNyeXB0X2luaXQoY3R4KSA8PSAwKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIo JmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiZGVjcnlwdGlv biBpbml0aWFsaXphdGlvbiBmYWlsZWQ6ICVzXG4iKSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9l cnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlp ZiAoRVZQX1BLRVlfQ1RYX3NldF9yc2FfcGFkZGluZyhjdHgsIFJTQV9QS0NTMV9PQUVQX1BB RERJTkcpIDw9IDAgfHwKKwkJRVZQX1BLRVlfQ1RYX3NldF9yc2FfbWdmMV9tZChjdHgsIG1k KSA8PSAwIHx8CisJCUVWUF9QS0VZX0NUWF9zZXRfcnNhX29hZXBfbWQoY3R4LCBtZCkgPD0g MCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJ CQkgIGxpYnBxX2dldHRleHQoImNvdWxkIG5vdCBzZXQgUlNBIHBhcmFtZXRlcjogJXNcbiIp LAorCQkJCQkJICBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsK KwkJZ290byBmYWlsOworCX0KKworCWlmIChFVlBfUEtFWV9kZWNyeXB0KGN0eCwgTlVMTCwg Jm91dGxlbiwgZnJvbSwgZnJvbWxlbikgPD0gMCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVy KCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoIlJTQSBkZWNy eXB0aW9uIGZhaWxlZDogJXNcbiIpLAorCQkJCQkJICBFUlJfcmVhc29uX2Vycm9yX3N0cmlu ZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCW91dCA9IG1hbGxv YyhvdXRsZW4pOworCWlmICghb3V0KQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4t PmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgib3V0IG9mIG1lbW9yeVxu IikpOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKEVWUF9QS0VZX2RlY3J5cHQoY3R4LCBv dXQsICZvdXRsZW4sIGZyb20sIGZyb21sZW4pIDw9IDApCisJeworCQlhcHBlbmRQUUV4cEJ1 ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJSU0Eg ZGVjcnlwdGlvbiBmYWlsZWQ6ICVzXG4iKSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9z dHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWZyZWUob3V0KTsKKwkJb3V0ID0gTlVMTDsK KwkJZ290byBmYWlsOworCX0KKworCSp0b2xlbiA9IG91dGxlbjsKKworZmFpbDoKKwlFVlBf UEtFWV9DVFhfZnJlZShjdHgpOworCUVWUF9QS0VZX2ZyZWUoa2V5KTsKKwlCSU9fZnJlZShi aW8pOworCisJcmV0dXJuIG91dDsKK30KKworc3RhdGljIGNvbnN0IEVWUF9DSVBIRVIgKgor cGdfY2VrYWxnX3RvX29wZW5zc2xfY2lwaGVyKGludCBjZWthbGcpCit7CisJY29uc3QgRVZQ X0NJUEhFUiAqY2lwaGVyOworCisJc3dpdGNoIChjZWthbGcpCisJeworCQljYXNlIFBHX0NF S19BRUFEX0FFU18xMjhfQ0JDX0hNQUNfU0hBXzI1NjoKKwkJCWNpcGhlciA9IEVWUF9hZXNf MTI4X2NiYygpOworCQkJYnJlYWs7CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzE5Ml9DQkNf SE1BQ19TSEFfMzg0OgorCQkJY2lwaGVyID0gRVZQX2Flc18xOTJfY2JjKCk7CisJCQlicmVh azsKKwkJY2FzZSBQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV8zODQ6CisJCWNh c2UgUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfNTEyOgorCQkJY2lwaGVyID0g RVZQX2Flc18yNTZfY2JjKCk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWNpcGhlciA9 IE5VTEw7CisJfQorCisJcmV0dXJuIGNpcGhlcjsKK30KKworc3RhdGljIGNvbnN0IEVWUF9N RCAqCitwZ19jZWthbGdfdG9fb3BlbnNzbF9tZChpbnQgY2VrYWxnKQoreworCWNvbnN0IEVW UF9NRCAqbWQ7CisKKwlzd2l0Y2ggKGNla2FsZykKKwl7CisJCWNhc2UgUEdfQ0VLX0FFQURf QUVTXzEyOF9DQkNfSE1BQ19TSEFfMjU2OgorCQkJbWQgPSBFVlBfc2hhMjU2KCk7CisJCQli cmVhazsKKwkJY2FzZSBQR19DRUtfQUVBRF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8zODQ6CisJ CWNhc2UgUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfMzg0OgorCQkJbWQgPSBF VlBfc2hhMzg0KCk7CisJCQlicmVhazsKKwkJY2FzZSBQR19DRUtfQUVBRF9BRVNfMjU2X0NC Q19ITUFDX1NIQV81MTI6CisJCQltZCA9IEVWUF9zaGE1MTIoKTsKKwkJCWJyZWFrOworCQlk ZWZhdWx0OgorCQkJbWQgPSBOVUxMOworCX0KKworCXJldHVybiBtZDsKK30KKworc3RhdGlj IGludAorbWRfa2V5X2xlbmd0aChjb25zdCBFVlBfTUQgKm1kKQoreworCWlmIChtZCA9PSBF VlBfc2hhMjU2KCkpCisJCXJldHVybiAxNjsKKwllbHNlIGlmIChtZCA9PSBFVlBfc2hhMzg0 KCkpCisJCXJldHVybiAyNDsKKwllbHNlIGlmIChtZCA9PSBFVlBfc2hhNTEyKCkpCisJCXJl dHVybiAzMjsKKwllbHNlCisJCXJldHVybiAtMTsKK30KKworc3RhdGljIGludAorbWRfaGFz aF9sZW5ndGgoY29uc3QgRVZQX01EICptZCkKK3sKKwlpZiAobWQgPT0gRVZQX3NoYTI1Nigp KQorCQlyZXR1cm4gMzI7CisJZWxzZSBpZiAobWQgPT0gRVZQX3NoYTM4NCgpKQorCQlyZXR1 cm4gNDg7CisJZWxzZSBpZiAobWQgPT0gRVZQX3NoYTUxMigpKQorCQlyZXR1cm4gNjQ7CisJ ZWxzZQorCQlyZXR1cm4gLTE7Cit9CisKKyNpZm5kZWYgVEVTVF9FTkNSWVBUCisjZGVmaW5l IFBHX0FEX0xFTiA0CisjZWxzZQorI2RlZmluZSBQR19BRF9MRU4gc2l6ZW9mKHRlc3RfQSkK KyNlbmRpZgorCitzdGF0aWMgYm9vbAorZ2V0X21lc3NhZ2VfYXV0aF90YWcoY29uc3QgRVZQ X01EICptZCwKKwkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm1hY19rZXksIGludCBtYWNf a2V5X2xlbiwKKwkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmVuY3IsIGludCBlbmNybGVu LAorCQkJCQkgaW50IGNla2FsZywKKwkJCQkJIHVuc2lnbmVkIGNoYXIgKm1kX3ZhbHVlLCBz aXplX3QgKm1kX2xlbl9wLAorCQkJCQkgY29uc3QgY2hhciAqKmVycm1zZ3ApCit7CisJc3Rh dGljIGNoYXIgbXNnYnVmWzEwMjRdOworCUVWUF9NRF9DVFggKmV2cF9tZF9jdHggPSBOVUxM OworCUVWUF9QS0VZICAgKnBrZXkgPSBOVUxMOworCXNpemVfdAkJYnVmc2l6ZTsKKwl1bnNp Z25lZCBjaGFyICpidWYgPSBOVUxMOworCWJvb2wJCXJlc3VsdCA9IGZhbHNlOworCisJaWYg KGVuY3JsZW4gPCAwKQorCXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwK KwkJCQkgbGlicHFfZ2V0dGV4dCgiZW5jcnlwdGVkIHZhbHVlIGhhcyBpbnZhbGlkIGxlbmd0 aCIpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlldnBf bWRfY3R4ID0gRVZQX01EX0NUWF9uZXcoKTsKKworCXBrZXkgPSBFVlBfUEtFWV9uZXdfcmF3 X3ByaXZhdGVfa2V5KEVWUF9QS0VZX0hNQUMsIE5VTEwsIG1hY19rZXksIG1hY19rZXlfbGVu KTsKKwlpZiAoIXBrZXkpCisJeworCQlzbnByaW50Zihtc2didWYsIHNpemVvZihtc2didWYp LAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJjb3VsZCBub3QgYWxsb2NhdGUga2V5IGZvciBITUFD OiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkp KTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlidWZzaXpl ID0gUEdfQURfTEVOICsgZW5jcmxlbiArIHNpemVvZihpbnQ2NCk7CisJYnVmID0gbWFsbG9j KGJ1ZnNpemUpOworCWlmICghYnVmKQorCXsKKwkJKmVycm1zZ3AgPSBsaWJwcV9nZXR0ZXh0 KCJvdXQgb2YgbWVtb3J5Iik7CisJCWdvdG8gZmFpbDsKKwl9CisjaWZuZGVmIFRFU1RfRU5D UllQVAorCWJ1ZlswXSA9ICdQJzsKKwlidWZbMV0gPSAnRyc7CisJKihpbnQxNiAqKSAoYnVm ICsgMikgPSBwZ19odG9uMTYoY2VrYWxnKTsKKyNlbHNlCisJbWVtY3B5KGJ1ZiwgdGVzdF9B LCBzaXplb2YodGVzdF9BKSk7CisjZW5kaWYKKwltZW1jcHkoYnVmICsgUEdfQURfTEVOLCBl bmNyLCBlbmNybGVuKTsKKwkqKGludDY0ICopIChidWYgKyBQR19BRF9MRU4gKyBlbmNybGVu KSA9IHBnX2h0b242NChQR19BRF9MRU4gKiA4KTsKKworCWlmICghRVZQX0RpZ2VzdFNpZ25J bml0KGV2cF9tZF9jdHgsIE5VTEwsIG1kLCBOVUxMLCBwa2V5KSkKKwl7CisJCXNucHJpbnRm KG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoImRpZ2VzdCBp bml0aWFsaXphdGlvbiBmYWlsZWQ6ICVzIiksCisJCQkJIEVSUl9yZWFzb25fZXJyb3Jfc3Ry aW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBm YWlsOworCX0KKworCWlmICghRVZQX0RpZ2VzdFNpZ25VcGRhdGUoZXZwX21kX2N0eCwgYnVm LCBidWZzaXplKSkKKwl7CisJCXNucHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJ CQkJIGxpYnBxX2dldHRleHQoImRpZ2VzdCBzaWduaW5nIGZhaWxlZDogJXMiKSwKKwkJCQkg RVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCSplcnJtc2dw ID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKCFFVlBfRGlnZXN0U2lnbkZp bmFsKGV2cF9tZF9jdHgsIG1kX3ZhbHVlLCBtZF9sZW5fcCkpCisJeworCQlzbnByaW50Ziht c2didWYsIHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJkaWdlc3Qgc2ln bmluZyBmYWlsZWQ6ICVzIiksCisJCQkJIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9n ZXRfZXJyb3IoKSkpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0K KwlBc3NlcnQoKm1kX2xlbl9wID09IG1kX2hhc2hfbGVuZ3RoKG1kKSk7CisKKwkvKiB0cnVu Y2F0ZSBvdXRwdXQgdG8gaGFsZiB0aGUgbGVuZ3RoLCBwZXIgc3BlYyAqLworCSptZF9sZW5f cCAvPSAyOworCisJcmVzdWx0ID0gdHJ1ZTsKK2ZhaWw6CisJZnJlZShidWYpOworCUVWUF9Q S0VZX2ZyZWUocGtleSk7CisJRVZQX01EX0NUWF9mcmVlKGV2cF9tZF9jdHgpOworCXJldHVy biByZXN1bHQ7Cit9CisKK3Vuc2lnbmVkIGNoYXIgKgorZGVjcnlwdF92YWx1ZShQR3Jlc3Vs dCAqcmVzLCBjb25zdCBQR0NFSyAqY2VrLCBpbnQgY2VrYWxnLCBjb25zdCB1bnNpZ25lZCBj aGFyICppbnB1dCwgaW50IGlucHV0bGVuLCBjb25zdCBjaGFyICoqZXJybXNncCkKK3sKKwlz dGF0aWMgY2hhciBtc2didWZbMTAyNF07CisKKwljb25zdCB1bnNpZ25lZCBjaGFyICppdiA9 IE5VTEw7CisJc2l6ZV90CQlpdmxlbjsKKworCWNvbnN0IEVWUF9DSVBIRVIgKmNpcGhlcjsK Kwljb25zdCBFVlBfTUQgKm1kOworCUVWUF9DSVBIRVJfQ1RYICpldnBfY2lwaGVyX2N0eCA9 IE5VTEw7CisJaW50CQkJZW5jX2tleV9sZW47CisJaW50CQkJbWFjX2tleV9sZW47CisJaW50 CQkJa2V5X2xlbjsKKwljb25zdCB1bnNpZ25lZCBjaGFyICplbmNfa2V5OworCWNvbnN0IHVu c2lnbmVkIGNoYXIgKm1hY19rZXk7CisJdW5zaWduZWQgY2hhciBtZF92YWx1ZVtFVlBfTUFY X01EX1NJWkVdOworCXNpemVfdAkJbWRfbGVuID0gc2l6ZW9mKG1kX3ZhbHVlKTsKKwlzaXpl X3QJCWJ1ZnNpemU7CisJdW5zaWduZWQgY2hhciAqYnVmID0gTlVMTDsKKwl1bnNpZ25lZCBj aGFyICpkZWNyOworCWludAkJCWRlY3JsZW4sCisJCQkJZGVjcmxlbjI7CisKKwl1bnNpZ25l ZCBjaGFyICpyZXN1bHQgPSBOVUxMOworCisJY2lwaGVyID0gcGdfY2VrYWxnX3RvX29wZW5z c2xfY2lwaGVyKGNla2FsZyk7CisJaWYgKCFjaXBoZXIpCisJeworCQlzbnByaW50Zihtc2di dWYsIHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJ1bnJlY29nbml6ZWQg ZW5jcnlwdGlvbiBhbGdvcml0aG0gaWRlbnRpZmllcjogJWQiKSwgY2VrYWxnKTsKKwkJKmVy cm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFpbDsKKwl9CisKKwltZCA9IHBnX2Nla2FsZ190 b19vcGVuc3NsX21kKGNla2FsZyk7CisJaWYgKCFtZCkKKwl7CisJCXNucHJpbnRmKG1zZ2J1 Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoInVucmVjb2duaXplZCBk aWdlc3QgYWxnb3JpdGhtIGlkZW50aWZpZXI6ICVkIiksIGNla2FsZyk7CisJCSplcnJtc2dw ID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJZXZwX2NpcGhlcl9jdHggPSBFVlBf Q0lQSEVSX0NUWF9uZXcoKTsKKworCWlmICghRVZQX0RlY3J5cHRJbml0X2V4KGV2cF9jaXBo ZXJfY3R4LCBjaXBoZXIsIE5VTEwsIE5VTEwsIE5VTEwpKQorCXsKKwkJc25wcmludGYobXNn YnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiZGVjcnlwdGlvbiBp bml0aWFsaXphdGlvbiBmYWlsZWQ6ICVzIiksCisJCQkJIEVSUl9yZWFzb25fZXJyb3Jfc3Ry aW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBm YWlsOworCX0KKworCWVuY19rZXlfbGVuID0gRVZQX0NJUEhFUl9DVFhfa2V5X2xlbmd0aChl dnBfY2lwaGVyX2N0eCk7CisJbWFjX2tleV9sZW4gPSBtZF9rZXlfbGVuZ3RoKG1kKTsKKwlr ZXlfbGVuID0gbWFjX2tleV9sZW4gKyBlbmNfa2V5X2xlbjsKKworCWlmIChjZWstPmNla2Rh dGFsZW4gIT0ga2V5X2xlbikKKwl7CisJCXNucHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1 ZiksCisJCQkJIGxpYnBxX2dldHRleHQoImNvbHVtbiBlbmNyeXB0aW9uIGtleSBoYXMgd3Jv bmcgbGVuZ3RoIGZvciBhbGdvcml0aG0gKGhhczogJXp1LCByZXF1aXJlZDogJWQpIiksCisJ CQkJIGNlay0+Y2VrZGF0YWxlbiwga2V5X2xlbik7CisJCSplcnJtc2dwID0gbXNnYnVmOwor CQlnb3RvIGZhaWw7CisJfQorCisJZW5jX2tleSA9IGNlay0+Y2VrZGF0YSArIG1hY19rZXlf bGVuOworCW1hY19rZXkgPSBjZWstPmNla2RhdGE7CisKKwlpZiAoIWdldF9tZXNzYWdlX2F1 dGhfdGFnKG1kLCBtYWNfa2V5LCBtYWNfa2V5X2xlbiwKKwkJCQkJCQkgIGlucHV0LCBpbnB1 dGxlbiAtIChtZF9oYXNoX2xlbmd0aChtZCkgLyAyKSwKKwkJCQkJCQkgIGNla2FsZywKKwkJ CQkJCQkgIG1kX3ZhbHVlLCAmbWRfbGVuLAorCQkJCQkJCSAgZXJybXNncCkpCisJeworCQln b3RvIGZhaWw7CisJfQorCisJaWYgKG1lbWNtcChpbnB1dCArIChpbnB1dGxlbiAtIG1kX2xl biksIG1kX3ZhbHVlLCBtZF9sZW4pICE9IDApCisJeworCQkqZXJybXNncCA9IGxpYnBxX2dl dHRleHQoIk1BQyBtaXNtYXRjaCIpOworCQlnb3RvIGZhaWw7CisJfQorCisJaXZsZW4gPSBF VlBfQ0lQSEVSX0NUWF9pdl9sZW5ndGgoZXZwX2NpcGhlcl9jdHgpOworCWl2ID0gaW5wdXQ7 CisJaW5wdXQgKz0gaXZsZW47CisJaW5wdXRsZW4gLT0gaXZsZW47CisJaWYgKCFFVlBfRGVj cnlwdEluaXRfZXgoZXZwX2NpcGhlcl9jdHgsIE5VTEwsIE5VTEwsIGVuY19rZXksIGl2KSkK Kwl7CisJCXNucHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxpYnBxX2dl dHRleHQoImRlY3J5cHRpb24gaW5pdGlhbGl6YXRpb24gZmFpbGVkOiAlcyIpLAorCQkJCSBF UlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3Ag PSBtc2didWY7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlidWZzaXplID0gaW5wdXRsZW4gKyBF VlBfQ0lQSEVSX0NUWF9ibG9ja19zaXplKGV2cF9jaXBoZXJfY3R4KSArIDE7CisjaWZuZGVm IFRFU1RfRU5DUllQVAorCWJ1ZiA9IHBxUmVzdWx0QWxsb2MocmVzLCBidWZzaXplLCBmYWxz ZSk7CisjZWxzZQorCWJ1ZiA9IG1hbGxvYyhidWZzaXplKTsKKyNlbmRpZgorCWlmICghYnVm KQorCXsKKwkJKmVycm1zZ3AgPSBsaWJwcV9nZXR0ZXh0KCJvdXQgb2YgbWVtb3J5Iik7CisJ CWdvdG8gZmFpbDsKKwl9CisJZGVjciA9IGJ1ZjsKKwlpZiAoIUVWUF9EZWNyeXB0VXBkYXRl KGV2cF9jaXBoZXJfY3R4LCBkZWNyLCAmZGVjcmxlbiwgaW5wdXQsIGlucHV0bGVuIC0gbWRf bGVuKSkKKwl7CisJCXNucHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxp YnBxX2dldHRleHQoImRlY3J5cHRpb24gZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29u X2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7 CisJCWdvdG8gZmFpbDsKKwl9CisJaWYgKCFFVlBfRGVjcnlwdEZpbmFsX2V4KGV2cF9jaXBo ZXJfY3R4LCBkZWNyICsgZGVjcmxlbiwgJmRlY3JsZW4yKSkKKwl7CisJCXNucHJpbnRmKG1z Z2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoImRlY3J5cHRpb24g ZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vy cm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFpbDsKKwl9CisJZGVj cmxlbiArPSBkZWNybGVuMjsKKwlBc3NlcnQoZGVjcmxlbiA8IGJ1ZnNpemUpOworCWRlY3Jb ZGVjcmxlbl0gPSAnXDAnOworCXJlc3VsdCA9IGRlY3I7CisKK2ZhaWw6CisJRVZQX0NJUEhF Ul9DVFhfZnJlZShldnBfY2lwaGVyX2N0eCk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCisj aWZuZGVmIFRFU1RfRU5DUllQVAorc3RhdGljIGJvb2wKK21ha2Vfc2l2KFBHY29ubiAqY29u biwKKwkJIHVuc2lnbmVkIGNoYXIgKml2LCBzaXplX3QgaXZsZW4sCisJCSBjb25zdCBFVlBf TUQgKm1kLAorCQkgY29uc3QgdW5zaWduZWQgY2hhciAqaXZfa2V5LCBpbnQgaXZfa2V5X2xl biwKKwkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnBsYWludGV4dCwgaW50IHBsYWludGV4dF9s ZW4pCit7CisJRVZQX01EX0NUWCAqZXZwX21kX2N0eCA9IE5VTEw7CisJRVZQX1BLRVkgICAq cGtleSA9IE5VTEw7CisJdW5zaWduZWQgY2hhciBtZF92YWx1ZVtFVlBfTUFYX01EX1NJWkVd OworCXNpemVfdAkJbWRfbGVuID0gc2l6ZW9mKG1kX3ZhbHVlKTsKKwlib29sCQlyZXN1bHQg PSBmYWxzZTsKKworCWV2cF9tZF9jdHggPSBFVlBfTURfQ1RYX25ldygpOworCisJcGtleSA9 IEVWUF9QS0VZX25ld19yYXdfcHJpdmF0ZV9rZXkoRVZQX1BLRVlfSE1BQywgTlVMTCwgaXZf a2V5LCBpdl9rZXlfbGVuKTsKKwlpZiAoIXBrZXkpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZl cigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJjb3VsZCBu b3QgYWxsb2NhdGUga2V5IGZvciBITUFDOiAlc1xuIiksCisJCQkJCQkgIEVSUl9yZWFzb25f ZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJ aWYgKCFFVlBfRGlnZXN0U2lnbkluaXQoZXZwX21kX2N0eCwgTlVMTCwgbWQsIE5VTEwsIHBr ZXkpKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJ CQkJCSAgbGlicHFfZ2V0dGV4dCgiZGlnZXN0IGluaXRpYWxpemF0aW9uIGZhaWxlZDogJXNc biIpLAorCQkJCQkJICBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkp KTsKKwkJZ290byBmYWlsOworCX0KKworCWlmICghRVZQX0RpZ2VzdFNpZ25VcGRhdGUoZXZw X21kX2N0eCwgcGxhaW50ZXh0LCBwbGFpbnRleHRfbGVuKSkKKwl7CisJCWFwcGVuZFBRRXhw QnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoImRp Z2VzdCBzaWduaW5nIGZhaWxlZDogJXNcbiIpLAorCQkJCQkJICBFUlJfcmVhc29uX2Vycm9y X3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCWlmICgh RVZQX0RpZ2VzdFNpZ25GaW5hbChldnBfbWRfY3R4LCBtZF92YWx1ZSwgJm1kX2xlbikpCisJ eworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBs aWJwcV9nZXR0ZXh0KCJkaWdlc3Qgc2lnbmluZyBmYWlsZWQ6ICVzIiksCisJCQkJCQkgIEVS Ul9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7 CisJfQorCUFzc2VydChtZF9sZW4gPT0gbWRfaGFzaF9sZW5ndGgobWQpKTsKKwltZW1jcHko aXYsIG1kX3ZhbHVlLCBpdmxlbik7CisKKwlyZXN1bHQgPSB0cnVlOworZmFpbDoKKwlFVlBf UEtFWV9mcmVlKHBrZXkpOworCUVWUF9NRF9DVFhfZnJlZShldnBfbWRfY3R4KTsKKwlyZXR1 cm4gcmVzdWx0OworfQorI2VuZGlmCQkJCQkJCS8qIFRFU1RfRU5DUllQVCAqLworCit1bnNp Z25lZCBjaGFyICoKK2VuY3J5cHRfdmFsdWUoUEdjb25uICpjb25uLCBjb25zdCBQR0NFSyAq Y2VrLCBpbnQgY2VrYWxnLCBjb25zdCB1bnNpZ25lZCBjaGFyICp2YWx1ZSwgaW50ICpuYnl0 ZXNwLCBib29sIGVuY19kZXQpCit7CisJaW50CQkJbmJ5dGVzID0gKm5ieXRlc3A7CisJdW5z aWduZWQgY2hhciBpdltFVlBfTUFYX0lWX0xFTkdUSF07CisJc2l6ZV90CQlpdmxlbjsKKwlj b25zdCBFVlBfQ0lQSEVSICpjaXBoZXI7CisJY29uc3QgRVZQX01EICptZDsKKwlFVlBfQ0lQ SEVSX0NUWCAqZXZwX2NpcGhlcl9jdHggPSBOVUxMOworCWludAkJCWVuY19rZXlfbGVuOwor CWludAkJCW1hY19rZXlfbGVuOworCWludAkJCWtleV9sZW47CisJY29uc3QgdW5zaWduZWQg Y2hhciAqZW5jX2tleTsKKwljb25zdCB1bnNpZ25lZCBjaGFyICptYWNfa2V5OworCXNpemVf dAkJYnVmc2l6ZTsKKwl1bnNpZ25lZCBjaGFyICpidWYgPSBOVUxMOworCXVuc2lnbmVkIGNo YXIgKmVuY3I7CisJaW50CQkJZW5jcmxlbiwKKwkJCQllbmNybGVuMjsKKworCWNvbnN0IGNo YXIgKmVycm1zZzsKKwl1bnNpZ25lZCBjaGFyIG1kX3ZhbHVlW0VWUF9NQVhfTURfU0laRV07 CisJc2l6ZV90CQltZF9sZW4gPSBzaXplb2YobWRfdmFsdWUpOworCXNpemVfdAkJYnVmMnNp emU7CisJdW5zaWduZWQgY2hhciAqYnVmMiA9IE5VTEw7CisKKwl1bnNpZ25lZCBjaGFyICpy ZXN1bHQgPSBOVUxMOworCisJY2lwaGVyID0gcGdfY2VrYWxnX3RvX29wZW5zc2xfY2lwaGVy KGNla2FsZyk7CisJaWYgKCFjaXBoZXIpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29u bi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJ1bnJlY29nbml6ZWQg ZW5jcnlwdGlvbiBhbGdvcml0aG0gaWRlbnRpZmllcjogJWRcbiIpLCBjZWthbGcpOworCQln b3RvIGZhaWw7CisJfQorCisJbWQgPSBwZ19jZWthbGdfdG9fb3BlbnNzbF9tZChjZWthbGcp OworCWlmICghbWQpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNz YWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJ1bnJlY29nbml6ZWQgZGlnZXN0IGFsZ29y aXRobSBpZGVudGlmaWVyOiAlZFxuIiksIGNla2FsZyk7CisJCWdvdG8gZmFpbDsKKwl9CisK KwlldnBfY2lwaGVyX2N0eCA9IEVWUF9DSVBIRVJfQ1RYX25ldygpOworCisJaWYgKCFFVlBf RW5jcnlwdEluaXRfZXgoZXZwX2NpcGhlcl9jdHgsIGNpcGhlciwgTlVMTCwgTlVMTCwgTlVM TCkpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJ CQkJICBsaWJwcV9nZXR0ZXh0KCJlbmNyeXB0aW9uIGluaXRpYWxpemF0aW9uIGZhaWxlZDog JXNcbiIpLAorCQkJCQkJICBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9y KCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCWVuY19rZXlfbGVuID0gRVZQX0NJUEhFUl9D VFhfa2V5X2xlbmd0aChldnBfY2lwaGVyX2N0eCk7CisJbWFjX2tleV9sZW4gPSBtZF9rZXlf bGVuZ3RoKG1kKTsKKwlrZXlfbGVuID0gbWFjX2tleV9sZW4gKyBlbmNfa2V5X2xlbjsKKwor CWlmIChjZWstPmNla2RhdGFsZW4gIT0ga2V5X2xlbikKKwl7CisJCWFwcGVuZFBRRXhwQnVm ZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoImNvbHVt biBlbmNyeXB0aW9uIGtleSBoYXMgd3JvbmcgbGVuZ3RoIGZvciBhbGdvcml0aG0gKGhhczog JXp1LCByZXF1aXJlZDogJWQpXG4iKSwKKwkJCQkJCSAgY2VrLT5jZWtkYXRhbGVuLCBrZXlf bGVuKTsKKwkJZ290byBmYWlsOworCX0KKworCWVuY19rZXkgPSBjZWstPmNla2RhdGEgKyBt YWNfa2V5X2xlbjsKKwltYWNfa2V5ID0gY2VrLT5jZWtkYXRhOworCisJaXZsZW4gPSBFVlBf Q0lQSEVSX0NUWF9pdl9sZW5ndGgoZXZwX2NpcGhlcl9jdHgpOworCUFzc2VydChpdmxlbiA8 PSBzaXplb2YoaXYpKTsKKwlpZiAoZW5jX2RldCkKKwl7CisjaWZuZGVmIFRFU1RfRU5DUllQ VAorCQltYWtlX3Npdihjb25uLCBpdiwgaXZsZW4sIG1kLCBtYWNfa2V5LCBtYWNfa2V5X2xl biwgdmFsdWUsIG5ieXRlcyk7CisjZWxzZQorCQltZW1jcHkoaXYsIHRlc3RfSVYsIGl2bGVu KTsKKyNlbmRpZgorCX0KKwllbHNlCisJCXBnX3N0cm9uZ19yYW5kb20oaXYsIGl2bGVuKTsK KwlpZiAoIUVWUF9FbmNyeXB0SW5pdF9leChldnBfY2lwaGVyX2N0eCwgTlVMTCwgTlVMTCwg ZW5jX2tleSwgaXYpKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVz c2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiZW5jcnlwdGlvbiBpbml0aWFsaXphdGlv biBmYWlsZWQ6ICVzXG4iKSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJS X2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlidWZzaXplID0gaXZsZW4g KyAobmJ5dGVzICsgMiAqIEVWUF9DSVBIRVJfQ1RYX2Jsb2NrX3NpemUoZXZwX2NpcGhlcl9j dHgpIC0gMSk7CisJYnVmID0gbWFsbG9jKGJ1ZnNpemUpOworCWlmICghYnVmKQorCXsKKwkJ YXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFf Z2V0dGV4dCgib3V0IG9mIG1lbW9yeVxuIikpOworCQlnb3RvIGZhaWw7CisJfQorCW1lbWNw eShidWYsIGl2LCBpdmxlbik7CisJZW5jciA9IGJ1ZiArIGl2bGVuOworCWlmICghRVZQX0Vu Y3J5cHRVcGRhdGUoZXZwX2NpcGhlcl9jdHgsIGVuY3IsICZlbmNybGVuLCB2YWx1ZSwgbmJ5 dGVzKSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJ CQkJCQkgIGxpYnBxX2dldHRleHQoImVuY3J5cHRpb24gZmFpbGVkOiAlc1xuIiksCisJCQkJ CQkgIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3Rv IGZhaWw7CisJfQorCWlmICghRVZQX0VuY3J5cHRGaW5hbF9leChldnBfY2lwaGVyX2N0eCwg ZW5jciArIGVuY3JsZW4sICZlbmNybGVuMikpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigm Y29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJlbmNyeXB0aW9u IGZhaWxlZDogJXNcbiIpLAorCQkJCQkJICBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJf Z2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKwllbmNybGVuICs9IGVuY3JsZW4y OworCisJZW5jciAtPSBpdmxlbjsKKwllbmNybGVuICs9IGl2bGVuOworCisJQXNzZXJ0KGVu Y3JsZW4gPD0gYnVmc2l6ZSk7CisKKwlpZiAoIWdldF9tZXNzYWdlX2F1dGhfdGFnKG1kLCBt YWNfa2V5LCBtYWNfa2V5X2xlbiwKKwkJCQkJCQkgIGVuY3IsIGVuY3JsZW4sCisJCQkJCQkJ ICBjZWthbGcsCisJCQkJCQkJICBtZF92YWx1ZSwgJm1kX2xlbiwKKwkJCQkJCQkgICZlcnJt c2cpKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwgIiVz XG4iLCBlcnJtc2cpOworCQlnb3RvIGZhaWw7CisJfQorCisJYnVmMnNpemUgPSBlbmNybGVu ICsgbWRfbGVuOworCWJ1ZjIgPSBtYWxsb2MoYnVmMnNpemUpOworCWlmICghYnVmMikKKwl7 CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxp YnBxX2dldHRleHQoIm91dCBvZiBtZW1vcnlcbiIpKTsKKwkJZ290byBmYWlsOworCX0KKwlt ZW1jcHkoYnVmMiwgZW5jciwgZW5jcmxlbik7CisJbWVtY3B5KGJ1ZjIgKyBlbmNybGVuLCBt ZF92YWx1ZSwgbWRfbGVuKTsKKworCXJlc3VsdCA9IGJ1ZjI7CisJbmJ5dGVzID0gYnVmMnNp emU7CisKK2ZhaWw6CisJZnJlZShidWYpOworCUVWUF9DSVBIRVJfQ1RYX2ZyZWUoZXZwX2Np cGhlcl9jdHgpOworCisJKm5ieXRlc3AgPSBuYnl0ZXM7CisJcmV0dXJuIHJlc3VsdDsKK30K KworCisvKgorICogUnVuIHRlc3QgY2FzZXMKKyAqLworI2lmZGVmIFRFU1RfRU5DUllQVAor CitzdGF0aWMgdm9pZAorZGVidWdfcHJpbnRfaGV4KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0 IHVuc2lnbmVkIGNoYXIgKnZhbCwgaW50IGxlbikKK3sKKwlwcmludGYoIiVzID0iLCBuYW1l KTsKKwlmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgaSsrKQorCXsKKwkJaWYgKGkgJSAxNiA9 PSAwKQorCQkJcHJpbnRmKCJcbiIpOworCQllbHNlCisJCQlwcmludGYoIiAiKTsKKwkJcHJp bnRmKCIlMDJ4IiwgdmFsW2ldKTsKKwl9CisJcHJpbnRmKCJcbiIpOworfQorCitzdGF0aWMg dm9pZAordGVzdF9jYXNlKGludCBhbGcsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKkssIHNpemVf dCBLX2xlbiwgY29uc3QgdW5zaWduZWQgY2hhciAqUCwgc2l6ZV90IFBfbGVuKQoreworCXVu c2lnbmVkIGNoYXIgKkM7CisJaW50CQkJbmJ5dGVzOworCVBHQ0VLCQljZWs7CisKKwluYnl0 ZXMgPSBQX2xlbjsKKwljZWsuY2VrZGF0YSA9IHVuY29uc3RpZnkodW5zaWduZWQgY2hhciAq LCBLKTsKKwljZWsuY2VrZGF0YWxlbiA9IEtfbGVuOworCisJQyA9IGVuY3J5cHRfdmFsdWUo TlVMTCwgJmNlaywgYWxnLCBQLCAmbmJ5dGVzLCB0cnVlKTsKKwlkZWJ1Z19wcmludF9oZXgo IkMiLCBDLCBuYnl0ZXMpOworfQorCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2 KQoreworCXByaW50ZigiNS4xXG4iKTsKKwl0ZXN0X2Nhc2UoUEdfQ0VLX0FFQURfQUVTXzEy OF9DQkNfSE1BQ19TSEFfMjU2LCBLLCAzMiwgUCwgc2l6ZW9mKFApKTsKKwlwcmludGYoIjUu MlxuIik7CisJdGVzdF9jYXNlKFBHX0NFS19BRUFEX0FFU18xOTJfQ0JDX0hNQUNfU0hBXzM4 NCwgSywgNDgsIFAsIHNpemVvZihQKSk7CisJcHJpbnRmKCI1LjNcbiIpOworCXRlc3RfY2Fz ZShQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV8zODQsIEssIDU2LCBQLCBzaXpl b2YoUCkpOworCXByaW50ZigiNS40XG4iKTsKKwl0ZXN0X2Nhc2UoUEdfQ0VLX0FFQURfQUVT XzI1Nl9DQkNfSE1BQ19TSEFfNTEyLCBLLCA2NCwgUCwgc2l6ZW9mKFApKTsKKworCXJldHVy biAwOworfQorCisjZW5kaWYJCQkJCQkJLyogVEVTVF9FTkNSWVBUICovCmRpZmYgLS1naXQg YS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LmggYi9zcmMvaW50ZXJmYWNlcy9s aWJwcS9mZS1lbmNyeXB0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi5jMGY5ZjM2MjUwZTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW50ZXJmYWNlcy9s aWJwcS9mZS1lbmNyeXB0LmgKQEAgLTAsMCArMSwzMyBAQAorLyotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgKgorICogZmUtZW5jcnlwdC5oCisgKgorICogZW5jcnlwdGlvbiBzdXBwb3J0Cisg KgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjIsIFBvc3RncmVTUUwgR2xv YmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQs IFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIElERU5U SUZJQ0FUSU9OCisgKgkgIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQuaAorICoK KyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpZm5kZWYgRkVfRU5DUllQVF9ICisj ZGVmaW5lIEZFX0VOQ1JZUFRfSAorCisjaW5jbHVkZSAibGlicHEtZmUuaCIKKyNpbmNsdWRl ICJsaWJwcS1pbnQuaCIKKworZXh0ZXJuIHVuc2lnbmVkIGNoYXIgKmRlY3J5cHRfY2VrX2Zy b21fZmlsZShQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKmNta2ZpbGVuYW1lLCBpbnQgY21r YWxnLAorCQkJCQkJCQkJCQlpbnQgZnJvbWxlbiwgY29uc3QgdW5zaWduZWQgY2hhciAqZnJv bSwKKwkJCQkJCQkJCQkJaW50ICp0b2xlbik7CisKK2V4dGVybiB1bnNpZ25lZCBjaGFyICpk ZWNyeXB0X3ZhbHVlKFBHcmVzdWx0ICpyZXMsIGNvbnN0IFBHQ0VLICpjZWssIGludCBjZWth bGcsCisJCQkJCQkJCQljb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgaW50IGlucHV0bGVu LAorCQkJCQkJCQkJY29uc3QgY2hhciAqKmVycm1zZ3ApOworCitleHRlcm4gdW5zaWduZWQg Y2hhciAqZW5jcnlwdF92YWx1ZShQR2Nvbm4gKmNvbm4sIGNvbnN0IFBHQ0VLICpjZWssIGlu dCBjZWthbGcsCisJCQkJCQkJCQljb25zdCB1bnNpZ25lZCBjaGFyICp2YWx1ZSwgaW50ICpu Ynl0ZXNwLCBib29sIGVuY19kZXQpOworCisjZW5kaWYJCQkJCQkJLyogRkVfRU5DUllQVF9I ICovCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMgYi9zcmMv aW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMKaW5kZXggMDI3NGMxYjE1NmM2Li5iZjczMjAy Y2I4NTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4ZWMuYworKysg Yi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMKQEAgLTI0LDYgKzI0LDkgQEAKICNp bmNsdWRlIDx1bmlzdGQuaD4KICNlbmRpZgogCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xl bmNrZXkuaCIKKyNpbmNsdWRlICJjb21tb24vYmFzZTY0LmgiCisjaW5jbHVkZSAiZmUtZW5j cnlwdC5oIgogI2luY2x1ZGUgImxpYnBxLWZlLmgiCiAjaW5jbHVkZSAibGlicHEtaW50Lmgi CiAjaW5jbHVkZSAibWIvcGdfd2NoYXIuaCIKQEAgLTcyLDcgKzc1LDkgQEAgc3RhdGljIGlu dAlQUXNlbmRRdWVyeUd1dHMoUEdjb25uICpjb25uLAogCQkJCQkJCWNvbnN0IGNoYXIgKmNv bnN0ICpwYXJhbVZhbHVlcywKIAkJCQkJCQljb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKIAkJ CQkJCQljb25zdCBpbnQgKnBhcmFtRm9ybWF0cywKLQkJCQkJCQlpbnQgcmVzdWx0Rm9ybWF0 KTsKKwkJCQkJCQljb25zdCBpbnQgKnBhcmFtRm9yY2VDb2x1bW5FbmNyeXB0aW9ucywKKwkJ CQkJCQlpbnQgcmVzdWx0Rm9ybWF0LAorCQkJCQkJCVBHcmVzdWx0ICpwYXJhbURlc2MpOwog c3RhdGljIHZvaWQgcGFyc2VJbnB1dChQR2Nvbm4gKmNvbm4pOwogc3RhdGljIFBHcmVzdWx0 ICpnZXRDb3B5UmVzdWx0KFBHY29ubiAqY29ubiwgRXhlY1N0YXR1c1R5cGUgY29weXR5cGUp Owogc3RhdGljIGJvb2wgUFFleGVjU3RhcnQoUEdjb25uICpjb25uKTsKQEAgLTExODUsNiAr MTE5MCwzNjkgQEAgcHFTYXZlUGFyYW1ldGVyU3RhdHVzKFBHY29ubiAqY29ubiwgY29uc3Qg Y2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCiAJfQogfQogCitpbnQKK3BxU2F2ZUNv bHVtbk1hc3RlcktleShQR2Nvbm4gKmNvbm4sIGludCBrZXlpZCwgY29uc3QgY2hhciAqa2V5 bmFtZSwKKwkJCQkJICBjb25zdCBjaGFyICprZXlyZWFsbSkKK3sKKwljaGFyCSAgICprZXlu YW1lX2NvcHk7CisJY2hhcgkgICAqa2V5cmVhbG1fY29weTsKKwlib29sCQlmb3VuZDsKKwor CWtleW5hbWVfY29weSA9IHN0cmR1cChrZXluYW1lKTsKKwlpZiAoIWtleW5hbWVfY29weSkK KwkJcmV0dXJuIEVPRjsKKwlrZXlyZWFsbV9jb3B5ID0gc3RyZHVwKGtleXJlYWxtKTsKKwlp ZiAoIWtleXJlYWxtX2NvcHkpCisJeworCQlmcmVlKGtleW5hbWVfY29weSk7CisJCXJldHVy biBFT0Y7CisJfQorCisJZm91bmQgPSBmYWxzZTsKKwlmb3IgKGludCBpID0gMDsgaSA8IGNv bm4tPm5jbWtzOyBpKyspCisJeworCQlzdHJ1Y3QgcGdfY21rICpjaGVja2NtayA9ICZjb25u LT5jbWtzW2ldOworCisJCS8qIHJlcGxhY2UgZXhpc3Rpbmc/ICovCisJCWlmIChjaGVja2Nt ay0+Y21raWQgPT0ga2V5aWQpCisJCXsKKwkJCWZyZWUoY2hlY2tjbWstPmNta25hbWUpOwor CQkJZnJlZShjaGVja2Ntay0+Y21rcmVhbG0pOworCQkJY2hlY2tjbWstPmNta25hbWUgPSBr ZXluYW1lX2NvcHk7CisJCQljaGVja2Ntay0+Y21rcmVhbG0gPSBrZXlyZWFsbV9jb3B5Owor CQkJZm91bmQgPSB0cnVlOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwkvKiBhcHBlbmQgbmV3 PyAqLworCWlmICghZm91bmQpCisJeworCQlpbnQJCQluZXduY21rczsKKwkJc3RydWN0IHBn X2NtayAqbmV3Y21rczsKKwkJc3RydWN0IHBnX2NtayAqbmV3Y21rOworCisJCW5ld25jbWtz ID0gY29ubi0+bmNta3MgKyAxOworCQlpZiAobmV3bmNta3MgPD0gMCkKKwkJCXJldHVybiBF T0Y7CisJCW5ld2Nta3MgPSByZWFsbG9jKGNvbm4tPmNta3MsIG5ld25jbWtzICogc2l6ZW9m KHN0cnVjdCBwZ19jbWspKTsKKwkJaWYgKCFuZXdjbWtzKQorCQl7CisJCQlmcmVlKGtleW5h bWVfY29weSk7CisJCQlmcmVlKGtleXJlYWxtX2NvcHkpOworCQkJcmV0dXJuIEVPRjsKKwkJ fQorCisJCW5ld2NtayA9ICZuZXdjbWtzW25ld25jbWtzIC0gMV07CisJCW5ld2Ntay0+Y21r aWQgPSBrZXlpZDsKKwkJbmV3Y21rLT5jbWtuYW1lID0ga2V5bmFtZV9jb3B5OworCQluZXdj bWstPmNta3JlYWxtID0ga2V5cmVhbG1fY29weTsKKworCQljb25uLT5uY21rcyA9IG5ld25j bWtzOworCQljb25uLT5jbWtzID0gbmV3Y21rczsKKwl9CisKKwlyZXR1cm4gMDsKK30KKwor LyoKKyAqIFJlcGxhY2UgcGxhY2Vob2xkZXJzIGluIGlucHV0IHN0cmluZy4gIFJldHVybiB2 YWx1ZSBtYWxsb2MnZWQuCisgKi8KK3N0YXRpYyBjaGFyICoKK3JlcGxhY2VfY21rX3BsYWNl aG9sZGVycyhjb25zdCBjaGFyICppbiwgY29uc3QgY2hhciAqY21rbmFtZSwgY29uc3QgY2hh ciAqY21rcmVhbG0sIGludCBjbWthbGcsIGNvbnN0IGNoYXIgKmI2NGRhdGEpCit7CisJUFFF eHBCdWZmZXJEYXRhIGJ1ZjsKKworCWluaXRQUUV4cEJ1ZmZlcigmYnVmKTsKKworCWZvciAo Y29uc3QgY2hhciAqcCA9IGluOyAqcDsgcCsrKQorCXsKKwkJaWYgKHBbMF0gPT0gJyUnKQor CQl7CisJCQlzd2l0Y2ggKHBbMV0pCisJCQl7CisJCQkJY2FzZSAnYSc6CisJCQkJCXsKKwkJ CQkJCWNvbnN0IGNoYXIgKnM7CisKKwkJCQkJCXN3aXRjaCAoY21rYWxnKQorCQkJCQkJewor CQkJCQkJCWNhc2UgUEdfQ01LX1JTQUVTX09BRVBfU0hBXzE6CisJCQkJCQkJCXMgPSAiUlNB RVNfT0FFUF9TSEFfMSI7CisJCQkJCQkJCWJyZWFrOworCQkJCQkJCWNhc2UgUEdfQ01LX1JT QUVTX09BRVBfU0hBXzI1NjoKKwkJCQkJCQkJcyA9ICJSU0FFU19PQUVQX1NIQV8yNTYiOwor CQkJCQkJCQlicmVhazsKKwkJCQkJCQlkZWZhdWx0OgorCQkJCQkJCQlzID0gIklOVkFMSUQi OworCQkJCQkJfQorCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1Ziwgcyk7CisJCQkJ CX0KKwkJCQkJcCsrOworCQkJCQlicmVhazsKKwkJCQljYXNlICdiJzoKKwkJCQkJYXBwZW5k UFFFeHBCdWZmZXJTdHIoJmJ1ZiwgYjY0ZGF0YSk7CisJCQkJCXArKzsKKwkJCQkJYnJlYWs7 CisJCQkJY2FzZSAnayc6CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsIGNta25h bWUpOworCQkJCQlwKys7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgJ3InOgorCQkJCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cigmYnVmLCBjbWtyZWFsbSk7CisJCQkJCXArKzsKKwkJCQkJYnJl YWs7CisJCQkJZGVmYXVsdDoKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXJDaGFyKCZidWYsIHBb MF0pOworCQkJfQorCQl9CisJCWVsc2UKKwkJCWFwcGVuZFBRRXhwQnVmZmVyQ2hhcigmYnVm LCBwWzBdKTsKKwl9CisKKwlyZXR1cm4gYnVmLmRhdGE7Cit9CisKKyNpZm5kZWYgVVNFX1NT TAorLyoKKyAqIER1bW15IGltcGxlbWVudGF0aW9uIGZvciBub24tU1NMIGJ1aWxkcworICov Cit1bnNpZ25lZCBjaGFyICoKK2RlY3J5cHRfY2VrX2Zyb21fZmlsZShQR2Nvbm4gKmNvbm4s IGNvbnN0IGNoYXIgKmNta2ZpbGVuYW1lLCBpbnQgY21rYWxnLAorCQkJCQkgIGludCBmcm9t bGVuLCBjb25zdCB1bnNpZ25lZCBjaGFyICpmcm9tLAorCQkJCQkgIGludCAqdG9sZW4pCit7 CisJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJICBsaWJw cV9nZXR0ZXh0KCJjb2x1bW4gZW5jcnlwdGlvbiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnVp bGRcbiIpKTsKKwlyZXR1cm4gTlVMTDsKK30KKyNlbmRpZgorCisvKgorICogRGVjcnlwdCBh IENFSyB1c2luZyB0aGUgZ2l2ZW4gQ01LLiAgVGhlIGNpcGhlcnRleHQgaXMgcGFzc2VkIGlu CisgKiAiZnJvbSIgYW5kICJmcm9tbGVuIi4gIFJldHVybiB0aGUgZGVjcnlwdGVkIHZhbHVl IGluIGEgbWFsbG9jJ2VkIGFyZWEsIGl0cworICogbGVuZ3RoIHZpYSAidG9sZW4iLiAgUmV0 dXJuIE5VTEwgb24gZXJyb3I7IGFkZCBlcnJvciBtZXNzYWdlcyBkaXJlY3RseSB0bworICog ImNvbm4iLgorICovCitzdGF0aWMgdW5zaWduZWQgY2hhciAqCitkZWNyeXB0X2NlayhQR2Nv bm4gKmNvbm4sIGNvbnN0IFBHQ01LICpjbWssIGludCBjbWthbGcsCisJCQlpbnQgZnJvbWxl biwgY29uc3QgdW5zaWduZWQgY2hhciAqZnJvbSwKKwkJCWludCAqdG9sZW4pCit7CisJY2hh cgkgICAqY21rbG9va3VwOworCWJvb2wJCWZvdW5kID0gZmFsc2U7CisJdW5zaWduZWQgY2hh ciAqcmVzdWx0ID0gTlVMTDsKKworCWNta2xvb2t1cCA9IHN0cmR1cChjb25uLT5jbWtsb29r dXAgPyBjb25uLT5jbWtsb29rdXAgOiAiIik7CisKKwlpZiAoIWNta2xvb2t1cCkKKwl7CisJ CWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsIGxpYnBxX2dldHRleHQo Im91dCBvZiBtZW1vcnlcbiIpKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJLyoKKwkgKiBB bmFseXplIHNlbWljb2xvbi1zZXBhcmF0ZWQgbGlzdAorCSAqLworCWZvciAoY2hhciAqcyA9 IHN0cnRvayhjbWtsb29rdXAsICI7Iik7IHM7IHMgPSBzdHJ0b2soTlVMTCwgIjsiKSkKKwl7 CisJCWNoYXIJICAgKnNlcDsKKworCQkvKiBzcGxpdCBmb3VuZCB0b2tlbiBhdCAnPScgKi8K KwkJc2VwID0gc3RyY2hyKHMsICc9Jyk7CisJCWlmICghc2VwKQorCQl7CisJCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJCSAgbGlicHFfZ2V0dGV4 dCgic3ludGF4IGVycm9yIGluIENNSyBsb29rdXAgc3BlY2lmaWNhdGlvbiwgbWlzc2luZyBc IiVjXCI6ICVzXG4iKSwgJz0nLCBzKTsKKwkJCWJyZWFrOworCQl9CisKKwkJLyogbWF0Y2hp bmcgcmVhbG0/ICovCisJCWlmIChzdHJuY21wKHMsICIqIiwgc2VwIC0gcykgPT0gMCB8fCBz dHJuY21wKHMsIGNtay0+Y21rcmVhbG0sIHNlcCAtIHMpID09IDApCisJCXsKKwkJCWNoYXIJ ICAgKnNlcDI7CisKKwkJCWZvdW5kID0gdHJ1ZTsKKworCQkJc2VwMiA9IHN0cmNocihzZXAs ICc6Jyk7CisJCQlpZiAoIXNlcDIpCisJCQl7CisJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNv bm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJzeW50YXggZXJy b3IgaW4gQ01LIGxvb2t1cCBzcGVjaWZpY2F0aW9uLCBtaXNzaW5nIFwiJWNcIjogJXNcbiIp LCAnOicsIHMpOworCQkJCWdvdG8gZmFpbDsKKwkJCX0KKworCQkJaWYgKHN0cm5jbXAoc2Vw ICsgMSwgImZpbGUiLCBzZXAyIC0gKHNlcCArIDEpKSA9PSAwKQorCQkJeworCQkJCWNoYXIJ ICAgKmNta2ZpbGVuYW1lOworCisJCQkJY21rZmlsZW5hbWUgPSByZXBsYWNlX2Nta19wbGFj ZWhvbGRlcnMoc2VwMiArIDEsIGNtay0+Y21rbmFtZSwgY21rLT5jbWtyZWFsbSwgY21rYWxn LCAiSU5WQUxJRCIpOworCQkJCXJlc3VsdCA9IGRlY3J5cHRfY2VrX2Zyb21fZmlsZShjb25u LCBjbWtmaWxlbmFtZSwgY21rYWxnLCBmcm9tbGVuLCBmcm9tLCB0b2xlbik7CisJCQkJZnJl ZShjbWtmaWxlbmFtZSk7CisJCQl9CisJCQllbHNlIGlmIChzdHJuY21wKHNlcCArIDEsICJy dW4iLCBzZXAyIC0gKHNlcCArIDEpKSA9PSAwKQorCQkJeworCQkJCWludAkJCWVuY2xlbjsK KwkJCQljaGFyCSAgICplbmM7CisJCQkJY2hhcgkgICAqY29tbWFuZDsKKwkJCQlGSUxFCSAg ICpmcDsKKwkJCQljaGFyCQlidWZbNDA5Nl07CisKKwkJCQllbmNsZW4gPSBwZ19iNjRfZW5j X2xlbihmcm9tbGVuKTsKKwkJCQllbmMgPSBtYWxsb2MoZW5jbGVuICsgMSk7CisJCQkJaWYg KCFlbmMpCisJCQkJeworCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNz YWdlLCBsaWJwcV9nZXR0ZXh0KCJvdXQgb2YgbWVtb3J5XG4iKSk7CisJCQkJCWdvdG8gZmFp bDsKKwkJCQl9CisJCQkJZW5jbGVuID0gcGdfYjY0X2VuY29kZSgoY29uc3QgY2hhciAqKSBm cm9tLCBmcm9tbGVuLCBlbmMsIGVuY2xlbik7CisJCQkJaWYgKGVuY2xlbiA8IDApCisJCQkJ eworCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLCBsaWJwcV9n ZXR0ZXh0KCJiYXNlNjQgZW5jb2RpbmcgZmFpbGVkXG4iKSk7CisJCQkJCWZyZWUoZW5jKTsK KwkJCQkJZ290byBmYWlsOworCQkJCX0KKwkJCQljb21tYW5kID0gcmVwbGFjZV9jbWtfcGxh Y2Vob2xkZXJzKHNlcDIgKyAxLCBjbWstPmNta25hbWUsIGNtay0+Y21rcmVhbG0sIGNta2Fs ZywgZW5jKTsKKwkJCQlmcmVlKGVuYyk7CisJCQkJZnAgPSBwb3Blbihjb21tYW5kLCAiciIp OworCQkJCWlmICghZnApCisJCQkJeworCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ ZXJyb3JNZXNzYWdlLAorCQkJCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJjb3VsZCBub3QgcnVu IGNvbW1hbmQgXCIlc1wiOiAlbVxuIiksIGNvbW1hbmQpOworCQkJCQlmcmVlKGNvbW1hbmQp OworCQkJCQlnb3RvIGZhaWw7CisJCQkJfQorCQkJCWZyZWUoY29tbWFuZCk7CisJCQkJaWYg KGZnZXRzKGJ1Ziwgc2l6ZW9mKGJ1ZiksIGZwKSkKKwkJCQl7CisJCQkJCWludAkJCWxpbmVs ZW47CisJCQkJCWludAkJCWRlY2xlbjsKKwkJCQkJY2hhcgkgICAqZGVjOworCisJCQkJCWxp bmVsZW4gPSBzdHJsZW4oYnVmKTsKKwkJCQkJaWYgKGJ1ZltsaW5lbGVuIC0gMV0gPT0gJ1xu JykKKwkJCQkJeworCQkJCQkJYnVmW2xpbmVsZW4gLSAxXSA9ICdcMCc7CisJCQkJCQlsaW5l bGVuLS07CisJCQkJCX0KKwkJCQkJZGVjbGVuID0gcGdfYjY0X2RlY19sZW4obGluZWxlbik7 CisJCQkJCWRlYyA9IG1hbGxvYyhkZWNsZW4pOworCQkJCQlpZiAoIWRlYykKKwkJCQkJewor CQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwgbGlicHFfZ2V0 dGV4dCgib3V0IG9mIG1lbW9yeVxuIikpOworCQkJCQkJZ290byBmYWlsOworCQkJCQl9CisJ CQkJCWRlY2xlbiA9IHBnX2I2NF9kZWNvZGUoYnVmLCBsaW5lbGVuLCBkZWMsIGRlY2xlbik7 CisJCQkJCWlmIChkZWNsZW4gPCAwKQorCQkJCQl7CisJCQkJCQlhcHBlbmRQUUV4cEJ1ZmZl cigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiYmFz ZTY0IGRlY29kaW5nIGZhaWxlZFxuIikpOworCQkJCQkJZnJlZShkZWMpOworCQkJCQkJZ290 byBmYWlsOworCQkJCQl9CisJCQkJCXJlc3VsdCA9ICh1bnNpZ25lZCBjaGFyICopIGRlYzsK KwkJCQkJKnRvbGVuID0gZGVjbGVuOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQlh cHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJCQkJICBsaWJw cV9nZXR0ZXh0KCJjb3VsZCBub3QgcmVhZCBmcm9tIGNvbW1hbmQ6ICVtXG4iKSk7CisJCQkJ CXBjbG9zZShmcCk7CisJCQkJCWdvdG8gZmFpbDsKKwkJCQl9CisJCQkJcGNsb3NlKGZwKTsK KwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJy b3JNZXNzYWdlLAorCQkJCQkJCQkgIGxpYnBxX2dldHRleHQoIkNNSyBsb29rdXAgc2NoZW1l IFwiJXNcIiBub3QgcmVjb2duaXplZFxuIiksIHNlcCArIDEpOworCQkJCWdvdG8gZmFpbDsK KwkJCX0KKwkJfQorCX0KKworCWlmICghZm91bmQpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZl cigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJubyBDTUsg bG9va3VwIGZvdW5kIGZvciByZWFsbSBcIiVzXCJcbiIpLCBjbWstPmNta3JlYWxtKTsKKwl9 CisKK2ZhaWw6CisJZnJlZShjbWtsb29rdXApOworCXJldHVybiByZXN1bHQ7Cit9CisKK2lu dAorcHFTYXZlQ29sdW1uRW5jcnlwdGlvbktleShQR2Nvbm4gKmNvbm4sIGludCBrZXlpZCwg aW50IGNta2lkLCBpbnQgY21rYWxnLCBjb25zdCB1bnNpZ25lZCBjaGFyICp2YWx1ZSwgaW50 IGxlbikKK3sKKwlQR0NNSwkgICAqY21rID0gTlVMTDsKKwl1bnNpZ25lZCBjaGFyICpwbGFp bnZhbCA9IE5VTEw7CisJaW50CQkJcGxhaW52YWxsZW4gPSAwOworCWJvb2wJCWZvdW5kOwor CisJZm9yIChpbnQgaSA9IDA7IGkgPCBjb25uLT5uY21rczsgaSsrKQorCXsKKwkJaWYgKGNv bm4tPmNta3NbaV0uY21raWQgPT0gY21raWQpCisJCXsKKwkJCWNtayA9ICZjb25uLT5jbWtz W2ldOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAoIWNtaykKKwkJcmV0dXJuIEVPRjsK KworCXBsYWludmFsID0gZGVjcnlwdF9jZWsoY29ubiwgY21rLCBjbWthbGcsIGxlbiwgdmFs dWUsICZwbGFpbnZhbGxlbik7CisJaWYgKCFwbGFpbnZhbCkKKwkJcmV0dXJuIEVPRjsKKwor CWZvdW5kID0gZmFsc2U7CisJZm9yIChpbnQgaSA9IDA7IGkgPCBjb25uLT5uY2VrczsgaSsr KQorCXsKKwkJc3RydWN0IHBnX2NlayAqY2hlY2tjZWsgPSAmY29ubi0+Y2Vrc1tpXTsKKwor CQkvKiByZXBsYWNlIGV4aXN0aW5nPyAqLworCQlpZiAoY2hlY2tjZWstPmNla2lkID09IGtl eWlkKQorCQl7CisJCQlmcmVlKGNoZWNrY2VrLT5jZWtkYXRhKTsKKwkJCWNoZWNrY2VrLT5j ZWtkYXRhID0gcGxhaW52YWw7CisJCQljaGVja2Nlay0+Y2VrZGF0YWxlbiA9IHBsYWludmFs bGVuOworCQkJZm91bmQgPSB0cnVlOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwkvKiBhcHBl bmQgbmV3PyAqLworCWlmICghZm91bmQpCisJeworCQlpbnQJCQluZXduY2VrczsKKwkJc3Ry dWN0IHBnX2NlayAqbmV3Y2VrczsKKwkJc3RydWN0IHBnX2NlayAqbmV3Y2VrOworCisJCW5l d25jZWtzID0gY29ubi0+bmNla3MgKyAxOworCQlpZiAobmV3bmNla3MgPD0gMCkKKwkJewor CQkJZnJlZShwbGFpbnZhbCk7CisJCQlyZXR1cm4gRU9GOworCQl9CisJCW5ld2Nla3MgPSBy ZWFsbG9jKGNvbm4tPmNla3MsIG5ld25jZWtzICogc2l6ZW9mKHN0cnVjdCBwZ19jZWspKTsK KwkJaWYgKCFuZXdjZWtzKQorCQl7CisJCQlmcmVlKHBsYWludmFsKTsKKwkJCXJldHVybiBF T0Y7CisJCX0KKworCQluZXdjZWsgPSAmbmV3Y2Vrc1tuZXduY2VrcyAtIDFdOworCQluZXdj ZWstPmNla2lkID0ga2V5aWQ7CisJCW5ld2Nlay0+Y2VrZGF0YSA9IHBsYWludmFsOworCQlu ZXdjZWstPmNla2RhdGFsZW4gPSBwbGFpbnZhbGxlbjsKKworCQljb25uLT5uY2VrcyA9IG5l d25jZWtzOworCQljb25uLT5jZWtzID0gbmV3Y2VrczsKKwl9CisKKwlyZXR1cm4gMDsKK30K IAogLyoKICAqIHBxUm93UHJvY2Vzc29yCkBAIC0xMjUzLDYgKzE2MjEsNTUgQEAgcHFSb3dQ cm9jZXNzb3IoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICoqZXJybXNncCkKIAkJCWJvb2wJ CWlzYmluYXJ5ID0gKHJlcy0+YXR0RGVzY3NbaV0uZm9ybWF0ICE9IDApOwogCQkJY2hhcgkg ICAqdmFsOwogCisJCQlpZiAocmVzLT5hdHREZXNjc1tpXS5jZWtpZCkKKwkJCXsKKyNpZmRl ZiBVU0VfU1NMCisJCQkJUEdDRUsJICAgKmNlayA9IE5VTEw7CisKKwkJCQlmb3IgKGludCBq ID0gMDsgaiA8IGNvbm4tPm5jZWtzOyBqKyspCisJCQkJeworCQkJCQlpZiAoY29ubi0+Y2Vr c1tqXS5jZWtpZCA9PSByZXMtPmF0dERlc2NzW2ldLmNla2lkKQorCQkJCQl7CisJCQkJCQlj ZWsgPSAmY29ubi0+Y2Vrc1tqXTsKKwkJCQkJCWJyZWFrOworCQkJCQl9CisJCQkJfQorCQkJ CWlmICghY2VrKQorCQkJCXsKKwkJCQkJKmVycm1zZ3AgPSBsaWJwcV9nZXR0ZXh0KCJjb2x1 bW4gZW5jcnlwdGlvbiBrZXkgbm90IGZvdW5kIik7CisJCQkJCWdvdG8gZmFpbDsKKwkJCQl9 CisKKwkJCQlpZiAoaXNiaW5hcnkpCisJCQkJeworCQkJCQl2YWwgPSAoY2hhciAqKSBkZWNy eXB0X3ZhbHVlKHJlcywgY2VrLCByZXMtPmF0dERlc2NzW2ldLmNla2FsZywKKwkJCQkJCQkJ CQkJCSAoY29uc3QgdW5zaWduZWQgY2hhciAqKSBjb2x1bW5zW2ldLnZhbHVlLCBjbGVuLCBl cnJtc2dwKTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJdW5zaWduZWQgY2hhciAq YnVmOworCQkJCQl1bnNpZ25lZCBjaGFyICplbmNjb2x2YWw7CisJCQkJCXNpemVfdAkJZW5j Y29sdmFsbGVuOworCisJCQkJCWJ1ZiA9IG1hbGxvYyhjbGVuICsgMSk7CisJCQkJCW1lbWNw eShidWYsIGNvbHVtbnNbaV0udmFsdWUsIGNsZW4pOworCQkJCQlidWZbY2xlbl0gPSAnXDAn OworCQkJCQllbmNjb2x2YWwgPSBQUXVuZXNjYXBlQnl0ZWEoYnVmLCAmZW5jY29sdmFsbGVu KTsKKwkJCQkJdmFsID0gKGNoYXIgKikgZGVjcnlwdF92YWx1ZShyZXMsIGNlaywgcmVzLT5h dHREZXNjc1tpXS5jZWthbGcsCisJCQkJCQkJCQkJCQkgZW5jY29sdmFsLCBlbmNjb2x2YWxs ZW4sIGVycm1zZ3ApOworCQkJCQlmcmVlKGVuY2NvbHZhbCk7CisJCQkJCWZyZWUoYnVmKTsK KwkJCQl9CisKKwkJCQlpZiAodmFsID09IE5VTEwpCisJCQkJCWdvdG8gZmFpbDsKKyNlbHNl CisJCQkJKmVycm1zZ3AgPSBsaWJwcV9nZXR0ZXh0KCJjb2x1bW4gZW5jcnlwdGlvbiBub3Qg c3VwcG9ydGVkIGJ5IHRoaXMgYnVpbGQiKTsKKwkJCQlnb3RvIGZhaWw7CisjZW5kaWYKKwkJ CX0KKwkJCWVsc2UKKwkJCXsKIAkJCXZhbCA9IChjaGFyICopIHBxUmVzdWx0QWxsb2MocmVz LCBjbGVuICsgMSwgaXNiaW5hcnkpOwogCQkJaWYgKHZhbCA9PSBOVUxMKQogCQkJCWdvdG8g ZmFpbDsKQEAgLTEyNjAsNiArMTY3Nyw3IEBAIHBxUm93UHJvY2Vzc29yKFBHY29ubiAqY29u biwgY29uc3QgY2hhciAqKmVycm1zZ3ApCiAJCQkvKiBjb3B5IGFuZCB6ZXJvLXRlcm1pbmF0 ZSB0aGUgZGF0YSAoZXZlbiBpZiBpdCdzIGJpbmFyeSkgKi8KIAkJCW1lbWNweSh2YWwsIGNv bHVtbnNbaV0udmFsdWUsIGNsZW4pOwogCQkJdmFsW2NsZW5dID0gJ1wwJzsKKwkJCX0KIAog CQkJdHVwW2ldLmxlbiA9IGNsZW47CiAJCQl0dXBbaV0udmFsdWUgPSB2YWw7CkBAIC0xNTMx LDcgKzE5NDksOSBAQCBQUXNlbmRRdWVyeVBhcmFtcyhQR2Nvbm4gKmNvbm4sCiAJCQkJCQkg ICBwYXJhbVZhbHVlcywKIAkJCQkJCSAgIHBhcmFtTGVuZ3RocywKIAkJCQkJCSAgIHBhcmFt Rm9ybWF0cywKLQkJCQkJCSAgIHJlc3VsdEZvcm1hdCk7CisJCQkJCQkgICBOVUxMLAorCQkJ CQkJICAgcmVzdWx0Rm9ybWF0LAorCQkJCQkJICAgTlVMTCk7CiB9CiAKIC8qCkBAIC0xNjQ5 LDYgKzIwNjksMjAgQEAgUFFzZW5kUXVlcnlQcmVwYXJlZChQR2Nvbm4gKmNvbm4sCiAJCQkJ CWNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAogCQkJCQljb25zdCBpbnQgKnBhcmFtRm9ybWF0 cywKIAkJCQkJaW50IHJlc3VsdEZvcm1hdCkKK3sKKwlyZXR1cm4gUFFzZW5kUXVlcnlQcmVw YXJlZDIoY29ubiwgc3RtdE5hbWUsIG5QYXJhbXMsIHBhcmFtVmFsdWVzLCBwYXJhbUxlbmd0 aHMsIHBhcmFtRm9ybWF0cywgTlVMTCwgcmVzdWx0Rm9ybWF0LCBOVUxMKTsKK30KKworaW50 CitQUXNlbmRRdWVyeVByZXBhcmVkMihQR2Nvbm4gKmNvbm4sCisJCQkJCSBjb25zdCBjaGFy ICpzdG10TmFtZSwKKwkJCQkJIGludCBuUGFyYW1zLAorCQkJCQkgY29uc3QgY2hhciAqY29u c3QgKnBhcmFtVmFsdWVzLAorCQkJCQkgY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCisJCQkJ CSBjb25zdCBpbnQgKnBhcmFtRm9ybWF0cywKKwkJCQkJIGNvbnN0IGludCAqcGFyYW1Gb3Jj ZUNvbHVtbkVuY3J5cHRpb25zLAorCQkJCQkgaW50IHJlc3VsdEZvcm1hdCwKKwkJCQkJIFBH cmVzdWx0ICpwYXJhbURlc2MpCiB7CiAJaWYgKCFQUXNlbmRRdWVyeVN0YXJ0KGNvbm4sIHRy dWUpKQogCQlyZXR1cm4gMDsKQEAgLTE2NzYsNyArMjExMCw5IEBAIFBRc2VuZFF1ZXJ5UHJl cGFyZWQoUEdjb25uICpjb25uLAogCQkJCQkJICAgcGFyYW1WYWx1ZXMsCiAJCQkJCQkgICBw YXJhbUxlbmd0aHMsCiAJCQkJCQkgICBwYXJhbUZvcm1hdHMsCi0JCQkJCQkgICByZXN1bHRG b3JtYXQpOworCQkJCQkJICAgcGFyYW1Gb3JjZUNvbHVtbkVuY3J5cHRpb25zLAorCQkJCQkJ ICAgcmVzdWx0Rm9ybWF0LAorCQkJCQkJICAgcGFyYW1EZXNjKTsKIH0KIAogLyoKQEAgLTE3 NzcsNyArMjIxMyw5IEBAIFBRc2VuZFF1ZXJ5R3V0cyhQR2Nvbm4gKmNvbm4sCiAJCQkJY29u c3QgY2hhciAqY29uc3QgKnBhcmFtVmFsdWVzLAogCQkJCWNvbnN0IGludCAqcGFyYW1MZW5n dGhzLAogCQkJCWNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAotCQkJCWludCByZXN1bHRGb3Jt YXQpCisJCQkJY29uc3QgaW50ICpwYXJhbUZvcmNlQ29sdW1uRW5jcnlwdGlvbnMsCisJCQkJ aW50IHJlc3VsdEZvcm1hdCwKKwkJCQlQR3Jlc3VsdCAqcGFyYW1EZXNjKQogewogCWludAkJ CWk7CiAJUEdjbWRRdWV1ZUVudHJ5ICplbnRyeTsKQEAgLTE4MjQsMTQgKzIyNjIsNTMgQEAg UFFzZW5kUXVlcnlHdXRzKFBHY29ubiAqY29ubiwKIAkJcHFQdXRzKHN0bXROYW1lLCBjb25u KSA8IDApCiAJCWdvdG8gc2VuZEZhaWxlZDsKIAorCS8qIENoZWNrIGZvcmNlIGNvbHVtbiBl bmNyeXB0aW9uICovCisJaWYgKG5QYXJhbXMgPiAwICYmIHBhcmFtRm9yY2VDb2x1bW5FbmNy eXB0aW9ucykKKwl7CisJCWZvciAoaSA9IDA7IGkgPCBuUGFyYW1zOyBpKyspCisJCXsKKwkJ CWlmIChwYXJhbUZvcmNlQ29sdW1uRW5jcnlwdGlvbnNbaV0pCisJCQl7CisJCQkJaWYgKCEo cGFyYW1EZXNjICYmCisJCQkJCSAgcGFyYW1EZXNjLT5wYXJhbURlc2NzICYmCisJCQkJCSAg cGFyYW1EZXNjLT5wYXJhbURlc2NzW2ldLmNla2lkKSkKKwkJCQl7CisJCQkJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkJCQkJIGxpYnBxX2dl dHRleHQoInBhcmFtZXRlciB3aXRoIGZvcmNlZCBlbmNyeXB0aW9uIGlzIG5vdCB0byBiZSBl bmNyeXB0ZWRcbiIpKTsKKwkJCQkJZ290byBzZW5kRmFpbGVkOworCQkJCX0KKwkJCX0KKwkJ fQorCX0KKwogCS8qIFNlbmQgcGFyYW1ldGVyIGZvcm1hdHMgKi8KLQlpZiAoblBhcmFtcyA+ IDAgJiYgcGFyYW1Gb3JtYXRzKQorCWlmIChuUGFyYW1zID4gMCAmJiAocGFyYW1Gb3JtYXRz IHx8IChwYXJhbURlc2MgJiYgcGFyYW1EZXNjLT5wYXJhbURlc2NzKSkpCiAJewogCQlpZiAo cHFQdXRJbnQoblBhcmFtcywgMiwgY29ubikgPCAwKQogCQkJZ290byBzZW5kRmFpbGVkOwor CiAJCWZvciAoaSA9IDA7IGkgPCBuUGFyYW1zOyBpKyspCiAJCXsKLQkJCWlmIChwcVB1dElu dChwYXJhbUZvcm1hdHNbaV0sIDIsIGNvbm4pIDwgMCkKKwkJCWludAkJCWZvcm1hdCA9IHBh cmFtRm9ybWF0cyA/IHBhcmFtRm9ybWF0c1tpXSA6IDA7CisKKwkJCWlmIChwYXJhbURlc2Mg JiYgcGFyYW1EZXNjLT5wYXJhbURlc2NzKQorCQkJeworCQkJCVBHcmVzUGFyYW1EZXNjICpw ZCA9ICZwYXJhbURlc2MtPnBhcmFtRGVzY3NbaV07CisKKwkJCQlpZiAocGQtPmNla2lkKQor CQkJCXsKKwkJCQkJaWYgKGZvcm1hdCAhPSAwKQorCQkJCQl7CisJCQkJCQlhcHBlbmRQUUV4 cEJ1ZmZlclN0cigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJCQkJCQkgbGlicHFfZ2V0 dGV4dCgiZm9ybWF0IG11c3QgYmUgdGV4dCBmb3IgZW5jcnlwdGVkIHBhcmFtZXRlclxuIikp OworCQkJCQkJZ290byBzZW5kRmFpbGVkOworCQkJCQl9CisJCQkJCWZvcm1hdCA9IDE7CisJ CQkJCWZvcm1hdCB8PSAweDEwOworCQkJCX0KKwkJCX0KKworCQkJaWYgKHBxUHV0SW50KGZv cm1hdCwgMiwgY29ubikgPCAwKQogCQkJCWdvdG8gc2VuZEZhaWxlZDsKIAkJfQogCX0KQEAg LTE4NTAsNiArMjMyNyw3IEBAIFBRc2VuZFF1ZXJ5R3V0cyhQR2Nvbm4gKmNvbm4sCiAJCWlm IChwYXJhbVZhbHVlcyAmJiBwYXJhbVZhbHVlc1tpXSkKIAkJewogCQkJaW50CQkJbmJ5dGVz OworCQkJY29uc3QgY2hhciAqcGFyYW1WYWx1ZTsKIAogCQkJaWYgKHBhcmFtRm9ybWF0cyAm JiBwYXJhbUZvcm1hdHNbaV0gIT0gMCkKIAkJCXsKQEAgLTE4NjgsOSArMjM0Niw1NCBAQCBQ UXNlbmRRdWVyeUd1dHMoUEdjb25uICpjb25uLAogCQkJCS8qIHRleHQgcGFyYW1ldGVyLCBk byBub3QgdXNlIHBhcmFtTGVuZ3RocyAqLwogCQkJCW5ieXRlcyA9IHN0cmxlbihwYXJhbVZh bHVlc1tpXSk7CiAJCQl9CisKKwkJCXBhcmFtVmFsdWUgPSBwYXJhbVZhbHVlc1tpXTsKKwor CQkJaWYgKHBhcmFtRGVzYyAmJiBwYXJhbURlc2MtPnBhcmFtRGVzY3MgJiYgcGFyYW1EZXNj LT5wYXJhbURlc2NzW2ldLmNla2lkKQorCQkJeworI2lmZGVmIFVTRV9TU0wKKwkJCQlib29s CQllbmNfZGV0ID0gKHBhcmFtRGVzYy0+cGFyYW1EZXNjc1tpXS5mbGFncyAmIDB4MDEpICE9 IDA7CisJCQkJUEdDRUsJICAgKmNlayA9IE5VTEw7CisJCQkJY2hhcgkgICAqZW5jX3BhcmFt VmFsdWU7CisJCQkJaW50CQkJZW5jX25ieXRlcyA9IG5ieXRlczsKKworCQkJCWZvciAoaW50 IGogPSAwOyBqIDwgY29ubi0+bmNla3M7IGorKykKKwkJCQl7CisJCQkJCWlmIChjb25uLT5j ZWtzW2pdLmNla2lkID09IHBhcmFtRGVzYy0+cGFyYW1EZXNjc1tpXS5jZWtpZCkKKwkJCQkJ eworCQkJCQkJY2VrID0gJmNvbm4tPmNla3Nbal07CisJCQkJCQlicmVhazsKKwkJCQkJfQor CQkJCX0KKwkJCQlpZiAoIWNlaykKKwkJCQl7CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZj b25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkJCQkgIGxpYnBxX2dldHRleHQoImNvbHVtbiBl bmNyeXB0aW9uIGtleSBub3QgZm91bmRcbiIpKTsKKwkJCQkJZ290byBzZW5kRmFpbGVkOwor CQkJCX0KKworCQkJCWVuY19wYXJhbVZhbHVlID0gKGNoYXIgKikgZW5jcnlwdF92YWx1ZShj b25uLCBjZWssIHBhcmFtRGVzYy0+cGFyYW1EZXNjc1tpXS5jZWthbGcsCisJCQkJCQkJCQkJ CQkJCShjb25zdCB1bnNpZ25lZCBjaGFyICopIHBhcmFtVmFsdWUsICZlbmNfbmJ5dGVzLCBl bmNfZGV0KTsKKwkJCQlpZiAoIWVuY19wYXJhbVZhbHVlKQorCQkJCQlnb3RvIHNlbmRGYWls ZWQ7CisKKwkJCQlpZiAocHFQdXRJbnQoZW5jX25ieXRlcywgNCwgY29ubikgPCAwIHx8CisJ CQkJCXBxUHV0bmNoYXIoZW5jX3BhcmFtVmFsdWUsIGVuY19uYnl0ZXMsIGNvbm4pIDwgMCkK KwkJCQkJZ290byBzZW5kRmFpbGVkOworCisJCQkJZnJlZShlbmNfcGFyYW1WYWx1ZSk7Cisj ZWxzZQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJ CQkJCSAgbGlicHFfZ2V0dGV4dCgiY29sdW1uIGVuY3J5cHRpb24gbm90IHN1cHBvcnRlZCBi eSB0aGlzIGJ1aWxkXG4iKSk7CisJCQkJZ290byBzZW5kRmFpbGVkOworI2VuZGlmCisJCQl9 CisJCQllbHNlCisJCQl7CiAJCQlpZiAocHFQdXRJbnQobmJ5dGVzLCA0LCBjb25uKSA8IDAg fHwKLQkJCQlwcVB1dG5jaGFyKHBhcmFtVmFsdWVzW2ldLCBuYnl0ZXMsIGNvbm4pIDwgMCkK KwkJCQlwcVB1dG5jaGFyKHBhcmFtVmFsdWUsIG5ieXRlcywgY29ubikgPCAwKQogCQkJCWdv dG8gc2VuZEZhaWxlZDsKKwkJCX0KIAkJfQogCQllbHNlCiAJCXsKQEAgLTIzMDgsMTIgKzI4 MzEsMjcgQEAgUFFleGVjUHJlcGFyZWQoUEdjb25uICpjb25uLAogCQkJICAgY29uc3QgaW50 ICpwYXJhbUxlbmd0aHMsCiAJCQkgICBjb25zdCBpbnQgKnBhcmFtRm9ybWF0cywKIAkJCSAg IGludCByZXN1bHRGb3JtYXQpCit7CisJcmV0dXJuIFBRZXhlY1ByZXBhcmVkMihjb25uLCBz dG10TmFtZSwgblBhcmFtcywgcGFyYW1WYWx1ZXMsIHBhcmFtTGVuZ3RocywgcGFyYW1Gb3Jt YXRzLCBOVUxMLCByZXN1bHRGb3JtYXQsIE5VTEwpOworfQorCitQR3Jlc3VsdCAqCitQUWV4 ZWNQcmVwYXJlZDIoUEdjb25uICpjb25uLAorCQkJCWNvbnN0IGNoYXIgKnN0bXROYW1lLAor CQkJCWludCBuUGFyYW1zLAorCQkJCWNvbnN0IGNoYXIgKmNvbnN0ICpwYXJhbVZhbHVlcywK KwkJCQljb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKKwkJCQljb25zdCBpbnQgKnBhcmFtRm9y bWF0cywKKwkJCQljb25zdCBpbnQgKnBhcmFtRm9yY2VDb2x1bW5FbmNyeXB0aW9ucywKKwkJ CQlpbnQgcmVzdWx0Rm9ybWF0LAorCQkJCVBHcmVzdWx0ICpwYXJhbURlc2MpCiB7CiAJaWYg KCFQUWV4ZWNTdGFydChjb25uKSkKIAkJcmV0dXJuIE5VTEw7Ci0JaWYgKCFQUXNlbmRRdWVy eVByZXBhcmVkKGNvbm4sIHN0bXROYW1lLAotCQkJCQkJCSBuUGFyYW1zLCBwYXJhbVZhbHVl cywgcGFyYW1MZW5ndGhzLAotCQkJCQkJCSBwYXJhbUZvcm1hdHMsIHJlc3VsdEZvcm1hdCkp CisJaWYgKCFQUXNlbmRRdWVyeVByZXBhcmVkMihjb25uLCBzdG10TmFtZSwKKwkJCQkJCQkg IG5QYXJhbXMsIHBhcmFtVmFsdWVzLCBwYXJhbUxlbmd0aHMsCisJCQkJCQkJICBwYXJhbUZv cm1hdHMsIHBhcmFtRm9yY2VDb2x1bW5FbmNyeXB0aW9ucywKKwkJCQkJCQkgIHJlc3VsdEZv cm1hdCwgcGFyYW1EZXNjKSkKIAkJcmV0dXJuIE5VTEw7CiAJcmV0dXJuIFBRZXhlY0Zpbmlz aChjb25uKTsKIH0KQEAgLTM2MTIsNiArNDE1MCwxNyBAQCBQUWZtb2QoY29uc3QgUEdyZXN1 bHQgKnJlcywgaW50IGZpZWxkX251bSkKIAkJcmV0dXJuIDA7CiB9CiAKK2ludAorUFFmaXNl bmNyeXB0ZWQoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxkX251bSkKK3sKKwlpZiAo IWNoZWNrX2ZpZWxkX251bWJlcihyZXMsIGZpZWxkX251bSkpCisJCXJldHVybiBmYWxzZTsK KwlpZiAocmVzLT5hdHREZXNjcykKKwkJcmV0dXJuIChyZXMtPmF0dERlc2NzW2ZpZWxkX251 bV0uY2VraWQgIT0gMCk7CisJZWxzZQorCQlyZXR1cm4gZmFsc2U7Cit9CisKIGNoYXIgKgog UFFjbWRTdGF0dXMoUEdyZXN1bHQgKnJlcykKIHsKQEAgLTM3OTcsNiArNDM0NiwxNyBAQCBQ UXBhcmFtdHlwZShjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgcGFyYW1fbnVtKQogCQlyZXR1 cm4gSW52YWxpZE9pZDsKIH0KIAoraW50CitQUXBhcmFtaXNlbmNyeXB0ZWQoY29uc3QgUEdy ZXN1bHQgKnJlcywgaW50IHBhcmFtX251bSkKK3sKKwlpZiAoIWNoZWNrX3BhcmFtX251bWJl cihyZXMsIHBhcmFtX251bSkpCisJCXJldHVybiBmYWxzZTsKKwlpZiAocmVzLT5wYXJhbURl c2NzKQorCQlyZXR1cm4gKHJlcy0+cGFyYW1EZXNjc1twYXJhbV9udW1dLmNla2lkICE9IDAp OworCWVsc2UKKwkJcmV0dXJuIGZhbHNlOworfQorCiAKIC8qIFBRc2V0bm9uYmxvY2tpbmc6 CiAgKglzZXRzIHRoZSBQR2Nvbm4ncyBkYXRhYmFzZSBjb25uZWN0aW9uIG5vbi1ibG9ja2lu ZyBpZiB0aGUgYXJnIGlzIHRydWUKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBx L2ZlLXByb3RvY29sMy5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtcHJvdG9jb2wzLmMK aW5kZXggZjAwMTEzN2I3NjkyLi40MTg0MzNlZDY5NTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRl cmZhY2VzL2xpYnBxL2ZlLXByb3RvY29sMy5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBx L2ZlLXByb3RvY29sMy5jCkBAIC00Myw2ICs0Myw4IEBAIHN0YXRpYyBpbnQJZ2V0Um93RGVz Y3JpcHRpb25zKFBHY29ubiAqY29ubiwgaW50IG1zZ0xlbmd0aCk7CiBzdGF0aWMgaW50CWdl dFBhcmFtRGVzY3JpcHRpb25zKFBHY29ubiAqY29ubiwgaW50IG1zZ0xlbmd0aCk7CiBzdGF0 aWMgaW50CWdldEFub3RoZXJUdXBsZShQR2Nvbm4gKmNvbm4sIGludCBtc2dMZW5ndGgpOwog c3RhdGljIGludAlnZXRQYXJhbWV0ZXJTdGF0dXMoUEdjb25uICpjb25uKTsKK3N0YXRpYyBp bnQJZ2V0Q29sdW1uTWFzdGVyS2V5KFBHY29ubiAqY29ubik7CitzdGF0aWMgaW50CWdldENv bHVtbkVuY3J5cHRpb25LZXkoUEdjb25uICpjb25uKTsKIHN0YXRpYyBpbnQJZ2V0Tm90aWZ5 KFBHY29ubiAqY29ubik7CiBzdGF0aWMgaW50CWdldENvcHlTdGFydChQR2Nvbm4gKmNvbm4s IEV4ZWNTdGF0dXNUeXBlIGNvcHl0eXBlKTsKIHN0YXRpYyBpbnQJZ2V0UmVhZHlGb3JRdWVy eShQR2Nvbm4gKmNvbm4pOwpAQCAtMzAxLDYgKzMwMywyMiBAQCBwcVBhcnNlSW5wdXQzKFBH Y29ubiAqY29ubikKIAkJCQkJaWYgKHBxR2V0SW50KCYoY29ubi0+YmVfa2V5KSwgNCwgY29u bikpCiAJCQkJCQlyZXR1cm47CiAJCQkJCWJyZWFrOworCQkJCWNhc2UgJ3knOgkJLyogQ29s dW1uIE1hc3RlciBLZXkgKi8KKwkJCQkJaWYgKGdldENvbHVtbk1hc3RlcktleShjb25uKSkK KwkJCQkJeworCQkJCQkJLy8gVE9ETzogcmV2aWV3IGVycm9yIGhhbmRsaW5nIGhlcmUKKwkJ CQkJCXBxU2F2ZUVycm9yUmVzdWx0KGNvbm4pOworCQkJCQkJcHFJbnRlcm5hbE5vdGljZSgm Y29ubi0+bm90aWNlSG9va3MsICIlcyIsIGNvbm4tPmVycm9yTWVzc2FnZS5kYXRhKTsKKwkJ CQkJfQorCQkJCQlicmVhazsKKwkJCQljYXNlICdZJzoJCS8qIENvbHVtbiBFbmNyeXB0aW9u IEtleSAqLworCQkJCQlpZiAoZ2V0Q29sdW1uRW5jcnlwdGlvbktleShjb25uKSkKKwkJCQkJ eworCQkJCQkJLy8gVE9ETzogcmV2aWV3IGVycm9yIGhhbmRsaW5nIGhlcmUKKwkJCQkJCXBx U2F2ZUVycm9yUmVzdWx0KGNvbm4pOworCQkJCQkJcHFJbnRlcm5hbE5vdGljZSgmY29ubi0+ bm90aWNlSG9va3MsICIlcyIsIGNvbm4tPmVycm9yTWVzc2FnZS5kYXRhKTsKKwkJCQkJfQor CQkJCQlicmVhazsKIAkJCQljYXNlICdUJzoJCS8qIFJvdyBEZXNjcmlwdGlvbiAqLwogCQkJ CQlpZiAoY29ubi0+ZXJyb3JfcmVzdWx0IHx8CiAJCQkJCQkoY29ubi0+cmVzdWx0ICE9IE5V TEwgJiYKQEAgLTU1OCw2ICs1NzYsOCBAQCBnZXRSb3dEZXNjcmlwdGlvbnMoUEdjb25uICpj b25uLCBpbnQgbXNnTGVuZ3RoKQogCQlpbnQJCQl0eXBsZW47CiAJCWludAkJCWF0dHR5cG1v ZDsKIAkJaW50CQkJZm9ybWF0OworCQlpbnQJCQljZWtpZDsKKwkJaW50CQkJY2VrYWxnOwog CiAJCWlmIChwcUdldHMoJmNvbm4tPndvcmtCdWZmZXIsIGNvbm4pIHx8CiAJCQlwcUdldElu dCgmdGFibGVpZCwgNCwgY29ubikgfHwKQEAgLTU3Miw2ICs1OTIsMjEgQEAgZ2V0Um93RGVz Y3JpcHRpb25zKFBHY29ubiAqY29ubiwgaW50IG1zZ0xlbmd0aCkKIAkJCWdvdG8gYWR2YW5j ZV9hbmRfZXJyb3I7CiAJCX0KIAorCQlpZiAoY29ubi0+Y29sdW1uX2VuY3J5cHRpb25fZW5h YmxlZCkKKwkJeworCQkJaWYgKHBxR2V0SW50KCZjZWtpZCwgNCwgY29ubikgfHwKKwkJCQlw cUdldEludCgmY2VrYWxnLCAyLCBjb25uKSkKKwkJCXsKKwkJCQllcnJtc2cgPSBsaWJwcV9n ZXR0ZXh0KCJpbnN1ZmZpY2llbnQgZGF0YSBpbiBcIlRcIiBtZXNzYWdlIik7CisJCQkJZ290 byBhZHZhbmNlX2FuZF9lcnJvcjsKKwkJCX0KKwkJfQorCQllbHNlCisJCXsKKwkJCWNla2lk ID0gMDsKKwkJCWNla2FsZyA9IDA7CisJCX0KKwogCQkvKgogCQkgKiBTaW5jZSBwcUdldElu dCB0cmVhdHMgMi1ieXRlIGludGVnZXJzIGFzIHVuc2lnbmVkLCB3ZSBuZWVkIHRvCiAJCSAq IGNvZXJjZSB0aGVzZSByZXN1bHRzIHRvIHNpZ25lZCBmb3JtLgpAQCAtNTkzLDggKzYyOCwx MCBAQCBnZXRSb3dEZXNjcmlwdGlvbnMoUEdjb25uICpjb25uLCBpbnQgbXNnTGVuZ3RoKQog CQlyZXN1bHQtPmF0dERlc2NzW2ldLnR5cGlkID0gdHlwaWQ7CiAJCXJlc3VsdC0+YXR0RGVz Y3NbaV0udHlwbGVuID0gdHlwbGVuOwogCQlyZXN1bHQtPmF0dERlc2NzW2ldLmF0dHR5cG1v ZCA9IGF0dHR5cG1vZDsKKwkJcmVzdWx0LT5hdHREZXNjc1tpXS5jZWtpZCA9IGNla2lkOwor CQlyZXN1bHQtPmF0dERlc2NzW2ldLmNla2FsZyA9IGNla2FsZzsKIAotCQlpZiAoZm9ybWF0 ICE9IDEpCisJCWlmICgoZm9ybWF0ICYgMHgwRikgIT0gMSkKIAkJCXJlc3VsdC0+YmluYXJ5 ID0gMDsKIAl9CiAKQEAgLTY5NiwxMCArNzMzLDMxIEBAIGdldFBhcmFtRGVzY3JpcHRpb25z KFBHY29ubiAqY29ubiwgaW50IG1zZ0xlbmd0aCkKIAlmb3IgKGkgPSAwOyBpIDwgbnBhcmFt czsgaSsrKQogCXsKIAkJaW50CQkJdHlwaWQ7CisJCWludAkJCWNla2lkOworCQlpbnQJCQlj ZWthbGc7CisJCWludAkJCWZsYWdzOwogCiAJCWlmIChwcUdldEludCgmdHlwaWQsIDQsIGNv bm4pKQogCQkJZ290byBub3RfZW5vdWdoX2RhdGE7CisJCWlmIChjb25uLT5jb2x1bW5fZW5j cnlwdGlvbl9lbmFibGVkKQorCQl7CisJCQlpZiAocHFHZXRJbnQoJmNla2lkLCA0LCBjb25u KSkKKwkJCQlnb3RvIG5vdF9lbm91Z2hfZGF0YTsKKwkJCWlmIChwcUdldEludCgmY2VrYWxn LCAyLCBjb25uKSkKKwkJCQlnb3RvIG5vdF9lbm91Z2hfZGF0YTsKKwkJCWlmIChwcUdldElu dCgmZmxhZ3MsIDIsIGNvbm4pKQorCQkJCWdvdG8gbm90X2Vub3VnaF9kYXRhOworCQl9CisJ CWVsc2UKKwkJeworCQkJY2VraWQgPSAwOworCQkJY2VrYWxnID0gMDsKKwkJCWZsYWdzID0g MDsKKwkJfQogCQlyZXN1bHQtPnBhcmFtRGVzY3NbaV0udHlwaWQgPSB0eXBpZDsKKwkJcmVz dWx0LT5wYXJhbURlc2NzW2ldLmNla2lkID0gY2VraWQ7CisJCXJlc3VsdC0+cGFyYW1EZXNj c1tpXS5jZWthbGcgPSBjZWthbGc7CisJCXJlc3VsdC0+cGFyYW1EZXNjc1tpXS5mbGFncyA9 IGZsYWdzOwogCX0KIAogCS8qIFN1Y2Nlc3MhICovCkBAIC0xMzk3LDYgKzE0NTUsNDAgQEAg cmVwb3J0RXJyb3JQb3NpdGlvbihQUUV4cEJ1ZmZlciBtc2csIGNvbnN0IGNoYXIgKnF1ZXJ5 LCBpbnQgbG9jLCBpbnQgZW5jb2RpbmcpCiB9CiAKIAoraW50CitwcUdldE5lZ290aWF0ZVBy b3RvY29sVmVyc2lvbjMoUEdjb25uICpjb25uKQoreworCWludAkJCXRoZWlyX3ZlcnNpb247 CisJaW50CQkJbnVtOworCVBRRXhwQnVmZmVyRGF0YSBidWY7CisKKwlpbml0UFFFeHBCdWZm ZXIoJmJ1Zik7CisJaWYgKHBxR2V0SW50KCZ0aGVpcl92ZXJzaW9uLCA0LCBjb25uKSAhPSAw KQorCQlyZXR1cm4gRU9GOworCWlmIChwcUdldEludCgmbnVtLCA0LCBjb25uKSAhPSAwKQor CQlyZXR1cm4gRU9GOworCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtOyBpKyspCisJeworCQlp ZiAocHFHZXRzKCZjb25uLT53b3JrQnVmZmVyLCBjb25uKSkKKwkJCXJldHVybiBFT0Y7CisJ CWlmIChidWYubGVuID4gMCkKKwkJCWFwcGVuZFBRRXhwQnVmZmVyQ2hhcigmYnVmLCAnICcp OworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCBjb25uLT53b3JrQnVmZmVyLmRhdGEp OworCX0KKworCWlmICh0aGVpcl92ZXJzaW9uICE9IGNvbm4tPnB2ZXJzaW9uKQorCQlhcHBl bmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0 ZXh0KCJwcm90b2NvbCB2ZXJzaW9uIG5vdCBzdXBwb3J0ZWQgYnkgc2VydmVyOiBjbGllbnQg dXNlcyAlZC4lZCwgc2VydmVyIHN1cHBvcnRzICVkLiVkIiksCisJCQkJCQkgIFBHX1BST1RP Q09MX01BSk9SKGNvbm4tPnB2ZXJzaW9uKSwgUEdfUFJPVE9DT0xfTUlOT1IoY29ubi0+cHZl cnNpb24pLAorCQkJCQkJICBQR19QUk9UT0NPTF9NQUpPUih0aGVpcl92ZXJzaW9uKSwgUEdf UFJPVE9DT0xfTUlOT1IodGhlaXJfdmVyc2lvbikpOworCWVsc2UKKwkJYXBwZW5kUFFFeHBC dWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgicHJv dG9jb2wgZXh0ZW5zaW9uIG5vdCBzdXBwb3J0ZWQgYnkgc2VydmVyOiAlc1xuIiksIGJ1Zi5k YXRhKTsKKworCXRlcm1QUUV4cEJ1ZmZlcigmYnVmKTsKKwlyZXR1cm4gMDsKK30KKwogLyoK ICAqIEF0dGVtcHQgdG8gcmVhZCBhIFBhcmFtZXRlclN0YXR1cyBtZXNzYWdlLgogICogVGhp cyBpcyBwb3NzaWJsZSBpbiBzZXZlcmFsIHBsYWNlcywgc28gd2UgYnJlYWsgaXQgb3V0IGFz IGEgc3Vicm91dGluZS4KQEAgLTE0MjUsNiArMTUxNyw4OSBAQCBnZXRQYXJhbWV0ZXJTdGF0 dXMoUEdjb25uICpjb25uKQogCXJldHVybiAwOwogfQogCisvKgorICogQXR0ZW1wdCB0byBy ZWFkIGEgQ29sdW1uTWFzdGVyS2V5IG1lc3NhZ2UuCisgKiBFbnRyeTogJ3knIG1lc3NhZ2Ug dHlwZSBhbmQgbGVuZ3RoIGhhdmUgYWxyZWFkeSBiZWVuIGNvbnN1bWVkLgorICogRXhpdDog cmV0dXJucyAwIGlmIHN1Y2Nlc3NmdWxseSBjb25zdW1lZCBtZXNzYWdlLgorICoJCSByZXR1 cm5zIEVPRiBpZiBub3QgZW5vdWdoIGRhdGEuCisgKi8KK3N0YXRpYyBpbnQKK2dldENvbHVt bk1hc3RlcktleShQR2Nvbm4gKmNvbm4pCit7CisJaW50CQkJa2V5aWQ7CisJY2hhcgkgICAq a2V5bmFtZTsKKwljaGFyCSAgICprZXlyZWFsbTsKKwlpbnQJCQlyZXQ7CisKKwkvKiBHZXQg dGhlIGtleSBJRCAqLworCWlmIChwcUdldEludCgma2V5aWQsIDQsIGNvbm4pICE9IDApCisJ CXJldHVybiBFT0Y7CisJLyogR2V0IHRoZSBrZXkgbmFtZSAqLworCWlmIChwcUdldHMoJmNv bm4tPndvcmtCdWZmZXIsIGNvbm4pICE9IDApCisJCXJldHVybiBFT0Y7CisJa2V5bmFtZSA9 IHN0cmR1cChjb25uLT53b3JrQnVmZmVyLmRhdGEpOworCWlmICgha2V5bmFtZSkKKwkJcmV0 dXJuIEVPRjsKKwkvKiBHZXQgdGhlIGtleSByZWFsbSAqLworCWlmIChwcUdldHMoJmNvbm4t PndvcmtCdWZmZXIsIGNvbm4pICE9IDApCisJCXJldHVybiBFT0Y7CisJa2V5cmVhbG0gPSBz dHJkdXAoY29ubi0+d29ya0J1ZmZlci5kYXRhKTsKKwlpZiAoIWtleXJlYWxtKQorCQlyZXR1 cm4gRU9GOworCS8qIEFuZCBzYXZlIGl0ICovCisJcmV0ID0gcHFTYXZlQ29sdW1uTWFzdGVy S2V5KGNvbm4sIGtleWlkLCBrZXluYW1lLCBrZXlyZWFsbSk7CisKKwlmcmVlKGtleW5hbWUp OworCWZyZWUoa2V5cmVhbG0pOworCisJcmV0dXJuIHJldDsKK30KKworLyoKKyAqIEF0dGVt cHQgdG8gcmVhZCBhIENvbHVtbkVuY3J5cHRpb25LZXkgbWVzc2FnZS4KKyAqIEVudHJ5OiAn WScgbWVzc2FnZSB0eXBlIGFuZCBsZW5ndGggaGF2ZSBhbHJlYWR5IGJlZW4gY29uc3VtZWQu CisgKiBFeGl0OiByZXR1cm5zIDAgaWYgc3VjY2Vzc2Z1bGx5IGNvbnN1bWVkIG1lc3NhZ2Uu CisgKgkJIHJldHVybnMgRU9GIGlmIG5vdCBlbm91Z2ggZGF0YS4KKyAqLworc3RhdGljIGlu dAorZ2V0Q29sdW1uRW5jcnlwdGlvbktleShQR2Nvbm4gKmNvbm4pCit7CisJaW50CQkJa2V5 aWQ7CisJaW50CQkJY21raWQ7CisJaW50CQkJY21rYWxnOworCWNoYXIJICAgKmJ1ZjsKKwlp bnQJCQl2YWxsZW47CisKKwkvKiBHZXQgdGhlIGtleSBJRCAqLworCWlmIChwcUdldEludCgm a2V5aWQsIDQsIGNvbm4pICE9IDApCisJCXJldHVybiBFT0Y7CisJLyogR2V0IHRoZSBDTUsg SUQgKi8KKwlpZiAocHFHZXRJbnQoJmNta2lkLCA0LCBjb25uKSAhPSAwKQorCQlyZXR1cm4g RU9GOworCS8qIEdldCB0aGUgQ01LIGFsZ29yaXRobSAqLworCWlmIChwcUdldEludCgmY21r YWxnLCAyLCBjb25uKSAhPSAwKQorCQlyZXR1cm4gRU9GOworCS8qIEdldCB0aGUga2V5IGRh dGEgbGVuICovCisJaWYgKHBxR2V0SW50KCZ2YWxsZW4sIDQsIGNvbm4pICE9IDApCisJCXJl dHVybiBFT0Y7CisJLyogR2V0IHRoZSBrZXkgZGF0YSAqLworCWJ1ZiA9IG1hbGxvYyh2YWxs ZW4pOworCWlmICghYnVmKQorCQlyZXR1cm4gRU9GOworCWlmIChwcUdldG5jaGFyKGJ1Ziwg dmFsbGVuLCBjb25uKSAhPSAwKQorCXsKKwkJZnJlZShidWYpOworCQlyZXR1cm4gRU9GOwor CX0KKwkvKiBBbmQgc2F2ZSBpdCAqLworCWlmIChwcVNhdmVDb2x1bW5FbmNyeXB0aW9uS2V5 KGNvbm4sIGtleWlkLCBjbWtpZCwgY21rYWxnLCAodW5zaWduZWQgY2hhciAqKSBidWYsIHZh bGxlbikgIT0gMCkKKwl7CisJCWZyZWUoYnVmKTsKKwkJcmV0dXJuIEVPRjsKKwl9CisJZnJl ZShidWYpOworCXJldHVybiAwOworfQogCiAvKgogICogQXR0ZW1wdCB0byByZWFkIGEgTm90 aWZ5IHJlc3BvbnNlIG1lc3NhZ2UuCkBAIC0yMjUwLDYgKzI0MjUsOSBAQCBidWlsZF9zdGFy dHVwX3BhY2tldChjb25zdCBQR2Nvbm4gKmNvbm4sIGNoYXIgKnBhY2tldCwKIAlpZiAoY29u bi0+Y2xpZW50X2VuY29kaW5nX2luaXRpYWwgJiYgY29ubi0+Y2xpZW50X2VuY29kaW5nX2lu aXRpYWxbMF0pCiAJCUFERF9TVEFSVFVQX09QVElPTigiY2xpZW50X2VuY29kaW5nIiwgY29u bi0+Y2xpZW50X2VuY29kaW5nX2luaXRpYWwpOwogCisJaWYgKGNvbm4tPmNvbHVtbl9lbmNy eXB0aW9uX2VuYWJsZWQpCisJCUFERF9TVEFSVFVQX09QVElPTigiX3BxXy5jb2x1bW5fZW5j cnlwdGlvbiIsICIxIik7CisKIAkvKiBBZGQgYW55IGVudmlyb25tZW50LWRyaXZlbiBHVUMg c2V0dGluZ3MgbmVlZGVkICovCiAJZm9yIChuZXh0X2VvID0gb3B0aW9uczsgbmV4dF9lby0+ ZW52TmFtZTsgbmV4dF9lbysrKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xp YnBxL2ZlLXRyYWNlLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS10cmFjZS5jCmluZGV4 IDVkNjhjZjJlYjNiNS4uODM5Njg4OGE1YjE2IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNl cy9saWJwcS9mZS10cmFjZS5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXRyYWNl LmMKQEAgLTQ1MCw3ICs0NTAsOCBAQCBwcVRyYWNlT3V0cHV0UyhGSUxFICpmLCBjb25zdCBj aGFyICptZXNzYWdlLCBpbnQgKmN1cnNvcikKIAogLyogUGFyYW1ldGVyRGVzY3JpcHRpb24g Ki8KIHN0YXRpYyB2b2lkCi1wcVRyYWNlT3V0cHV0dChGSUxFICpmLCBjb25zdCBjaGFyICpt ZXNzYWdlLCBpbnQgKmN1cnNvciwgYm9vbCByZWdyZXNzKQorcHFUcmFjZU91dHB1dHQoRklM RSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcywK KwkJCSAgIGJvb2wgY29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKIHsKIAlpbnQJCQluZmll bGRzOwogCkBAIC00NTgsMTIgKzQ1OSwyMSBAQCBwcVRyYWNlT3V0cHV0dChGSUxFICpmLCBj b25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwgYm9vbCByZWdyZXNzKQogCW5maWVs ZHMgPSBwcVRyYWNlT3V0cHV0SW50MTYoZiwgbWVzc2FnZSwgY3Vyc29yKTsKIAogCWZvciAo aW50IGkgPSAwOyBpIDwgbmZpZWxkczsgaSsrKQorCXsKIAkJcHFUcmFjZU91dHB1dEludDMy KGYsIG1lc3NhZ2UsIGN1cnNvciwgcmVncmVzcyk7CisJCWlmIChjb2x1bW5fZW5jcnlwdGlv bl9lbmFibGVkKQorCQl7CisJCQlwcVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2FnZSwgY3Vy c29yLCByZWdyZXNzKTsKKwkJCXBxVHJhY2VPdXRwdXRJbnQxNihmLCBtZXNzYWdlLCBjdXJz b3IpOworCQkJcHFUcmFjZU91dHB1dEludDE2KGYsIG1lc3NhZ2UsIGN1cnNvcik7CisJCX0K Kwl9CiB9CiAKIC8qIFJvd0Rlc2NyaXB0aW9uICovCiBzdGF0aWMgdm9pZAotcHFUcmFjZU91 dHB1dFQoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wg cmVncmVzcykKK3BxVHJhY2VPdXRwdXRUKEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1lc3NhZ2Us IGludCAqY3Vyc29yLCBib29sIHJlZ3Jlc3MsCisJCQkgICBib29sIGNvbHVtbl9lbmNyeXB0 aW9uX2VuYWJsZWQpCiB7CiAJaW50CQkJbmZpZWxkczsKIApAQCAtNDc5LDYgKzQ4OSwxMSBA QCBwcVRyYWNlT3V0cHV0VChGSUxFICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1 cnNvciwgYm9vbCByZWdyZXNzKQogCQlwcVRyYWNlT3V0cHV0SW50MTYoZiwgbWVzc2FnZSwg Y3Vyc29yKTsKIAkJcHFUcmFjZU91dHB1dEludDMyKGYsIG1lc3NhZ2UsIGN1cnNvciwgZmFs c2UpOwogCQlwcVRyYWNlT3V0cHV0SW50MTYoZiwgbWVzc2FnZSwgY3Vyc29yKTsKKwkJaWYg KGNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpCisJCXsKKwkJCXBxVHJhY2VPdXRwdXRJbnQz MihmLCBtZXNzYWdlLCBjdXJzb3IsIHJlZ3Jlc3MpOworCQkJcHFUcmFjZU91dHB1dEludDE2 KGYsIG1lc3NhZ2UsIGN1cnNvcik7CisJCX0KIAl9CiB9CiAKQEAgLTUxNCw2ICs1MjksMzAg QEAgcHFUcmFjZU91dHB1dFcoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpj dXJzb3IsIGludCBsZW5ndGgpCiAJCXBxVHJhY2VPdXRwdXRJbnQxNihmLCBtZXNzYWdlLCBj dXJzb3IpOwogfQogCisvKiBDb2x1bW5NYXN0ZXJLZXkgKi8KK3N0YXRpYyB2b2lkCitwcVRy YWNlT3V0cHV0eShGSUxFICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwg Ym9vbCByZWdyZXNzKQoreworCWZwcmludGYoZiwgIkNvbHVtbk1hc3RlcktleVx0Iik7CisJ cHFUcmFjZU91dHB1dEludDMyKGYsIG1lc3NhZ2UsIGN1cnNvciwgcmVncmVzcyk7CisJcHFU cmFjZU91dHB1dFN0cmluZyhmLCBtZXNzYWdlLCBjdXJzb3IsIGZhbHNlKTsKKwlwcVRyYWNl T3V0cHV0U3RyaW5nKGYsIG1lc3NhZ2UsIGN1cnNvciwgZmFsc2UpOworfQorCisvKiBDb2x1 bW5FbmNyeXB0aW9uS2V5ICovCitzdGF0aWMgdm9pZAorcHFUcmFjZU91dHB1dFkoRklMRSAq ZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcykKK3sK KwlpbnQJCQlsZW47CisKKwlmcHJpbnRmKGYsICJDb2x1bW5FbmNyeXB0aW9uS2V5XHQiKTsK KwlwcVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2FnZSwgY3Vyc29yLCByZWdyZXNzKTsKKwlw cVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2FnZSwgY3Vyc29yLCByZWdyZXNzKTsKKwlwcVRy YWNlT3V0cHV0SW50MTYoZiwgbWVzc2FnZSwgY3Vyc29yKTsKKwlsZW4gPSBwcVRyYWNlT3V0 cHV0SW50MzIoZiwgbWVzc2FnZSwgY3Vyc29yLCBmYWxzZSk7CisJcHFUcmFjZU91dHB1dE5j aGFyKGYsIGxlbiwgbWVzc2FnZSwgY3Vyc29yKTsKK30KKwogLyogUmVhZHlGb3JRdWVyeSAq Lwogc3RhdGljIHZvaWQKIHBxVHJhY2VPdXRwdXRaKEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1l c3NhZ2UsIGludCAqY3Vyc29yKQpAQCAtNjQ3LDEwICs2ODYsMTIgQEAgcHFUcmFjZU91dHB1 dE1lc3NhZ2UoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICptZXNzYWdlLCBib29sIHRvU2Vy dmVyKQogCQkJCWZwcmludGYoY29ubi0+UGZkZWJ1ZywgIlN5bmMiKTsgLyogbm8gbWVzc2Fn ZSBjb250ZW50ICovCiAJCQlicmVhazsKIAkJY2FzZSAndCc6CQkJCS8qIFBhcmFtZXRlciBE ZXNjcmlwdGlvbiAqLwotCQkJcHFUcmFjZU91dHB1dHQoY29ubi0+UGZkZWJ1ZywgbWVzc2Fn ZSwgJmxvZ0N1cnNvciwgcmVncmVzcyk7CisJCQlwcVRyYWNlT3V0cHV0dChjb25uLT5QZmRl YnVnLCBtZXNzYWdlLCAmbG9nQ3Vyc29yLCByZWdyZXNzLAorCQkJCQkJICAgY29ubi0+Y29s dW1uX2VuY3J5cHRpb25fZW5hYmxlZCk7CiAJCQlicmVhazsKIAkJY2FzZSAnVCc6CQkJCS8q IFJvdyBEZXNjcmlwdGlvbiAqLwotCQkJcHFUcmFjZU91dHB1dFQoY29ubi0+UGZkZWJ1Zywg bWVzc2FnZSwgJmxvZ0N1cnNvciwgcmVncmVzcyk7CisJCQlwcVRyYWNlT3V0cHV0VChjb25u LT5QZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vyc29yLCByZWdyZXNzLAorCQkJCQkJICAgY29u bi0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCk7CiAJCQlicmVhazsKIAkJY2FzZSAndic6 CQkJCS8qIE5lZ290aWF0ZSBQcm90b2NvbCBWZXJzaW9uICovCiAJCQlwcVRyYWNlT3V0cHV0 dihjb25uLT5QZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vyc29yKTsKQEAgLTY2NSw2ICs3MDYs MTIgQEAgcHFUcmFjZU91dHB1dE1lc3NhZ2UoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpt ZXNzYWdlLCBib29sIHRvU2VydmVyKQogCQkJZnByaW50Zihjb25uLT5QZmRlYnVnLCAiVGVy bWluYXRlIik7CiAJCQkvKiBObyBtZXNzYWdlIGNvbnRlbnQgKi8KIAkJCWJyZWFrOworCQlj YXNlICd5JzoKKwkJCXBxVHJhY2VPdXRwdXR5KGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZs b2dDdXJzb3IsIHJlZ3Jlc3MpOworCQkJYnJlYWs7CisJCWNhc2UgJ1knOgorCQkJcHFUcmFj ZU91dHB1dFkoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvciwgcmVncmVzcyk7 CisJCQlicmVhazsKIAkJY2FzZSAnWic6CQkJCS8qIFJlYWR5IEZvciBRdWVyeSAqLwogCQkJ cHFUcmFjZU91dHB1dFooY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvcik7CiAJ CQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmgg Yi9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1mZS5oCmluZGV4IGI3ZGYzMjI0YzBmNy4u MDIzNDcyNDM5NmQzIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1m ZS5oCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmgKQEAgLTI2Nyw2ICsy NjcsOCBAQCB0eXBlZGVmIHN0cnVjdCBwZ3Jlc0F0dERlc2MKIAlPaWQJCQl0eXBpZDsJCQkv KiB0eXBlIGlkICovCiAJaW50CQkJdHlwbGVuOwkJCS8qIHR5cGUgc2l6ZSAqLwogCWludAkJ CWF0dHR5cG1vZDsJCS8qIHR5cGUtc3BlY2lmaWMgbW9kaWZpZXIgaW5mbyAqLworCU9pZAkJ CWNla2lkOworCWludAkJCWNla2FsZzsKIH0gUEdyZXNBdHREZXNjOwogCiAvKiAtLS0tLS0t LS0tLS0tLS0tCkBAIC00MzgsNiArNDQwLDE1IEBAIGV4dGVybiBQR3Jlc3VsdCAqUFFleGVj UHJlcGFyZWQoUEdjb25uICpjb25uLAogCQkJCQkJCQljb25zdCBpbnQgKnBhcmFtTGVuZ3Ro cywKIAkJCQkJCQkJY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCiAJCQkJCQkJCWludCByZXN1 bHRGb3JtYXQpOworZXh0ZXJuIFBHcmVzdWx0ICpQUWV4ZWNQcmVwYXJlZDIoUEdjb25uICpj b25uLAorCQkJCQkJCQkgY29uc3QgY2hhciAqc3RtdE5hbWUsCisJCQkJCQkJCSBpbnQgblBh cmFtcywKKwkJCQkJCQkJIGNvbnN0IGNoYXIgKmNvbnN0ICpwYXJhbVZhbHVlcywKKwkJCQkJ CQkJIGNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAorCQkJCQkJCQkgY29uc3QgaW50ICpwYXJh bUZvcm1hdHMsCisJCQkJCQkJCSBjb25zdCBpbnQgKnBhcmFtRm9yY2VDb2x1bW5FbmNyeXB0 aW9ucywKKwkJCQkJCQkJIGludCByZXN1bHRGb3JtYXQsCisJCQkJCQkJCSBQR3Jlc3VsdCAq cGFyYW1EZXNjKTsKIAogLyogSW50ZXJmYWNlIGZvciBtdWx0aXBsZS1yZXN1bHQgb3IgYXN5 bmNocm9ub3VzIHF1ZXJpZXMgKi8KICNkZWZpbmUgUFFfUVVFUllfUEFSQU1fTUFYX0xJTUlU IDY1NTM1CkBAIC00NjEsNiArNDcyLDE1IEBAIGV4dGVybiBpbnQJUFFzZW5kUXVlcnlQcmVw YXJlZChQR2Nvbm4gKmNvbm4sCiAJCQkJCQkJCWNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAog CQkJCQkJCQljb25zdCBpbnQgKnBhcmFtRm9ybWF0cywKIAkJCQkJCQkJaW50IHJlc3VsdEZv cm1hdCk7CitleHRlcm4gaW50CVBRc2VuZFF1ZXJ5UHJlcGFyZWQyKFBHY29ubiAqY29ubiwK KwkJCQkJCQkJIGNvbnN0IGNoYXIgKnN0bXROYW1lLAorCQkJCQkJCQkgaW50IG5QYXJhbXMs CisJCQkJCQkJCSBjb25zdCBjaGFyICpjb25zdCAqcGFyYW1WYWx1ZXMsCisJCQkJCQkJCSBj b25zdCBpbnQgKnBhcmFtTGVuZ3RocywKKwkJCQkJCQkJIGNvbnN0IGludCAqcGFyYW1Gb3Jt YXRzLAorCQkJCQkJCQkgY29uc3QgaW50ICpwYXJhbUZvcmNlQ29sdW1uRW5jcnlwdGlvbnMs CisJCQkJCQkJCSBpbnQgcmVzdWx0Rm9ybWF0LAorCQkJCQkJCQkgUEdyZXN1bHQgKnBhcmFt RGVzYyk7CiBleHRlcm4gaW50CVBRc2V0U2luZ2xlUm93TW9kZShQR2Nvbm4gKmNvbm4pOwog ZXh0ZXJuIFBHcmVzdWx0ICpQUWdldFJlc3VsdChQR2Nvbm4gKmNvbm4pOwogCkBAIC01MzEs NiArNTUxLDcgQEAgZXh0ZXJuIGludAlQUWZmb3JtYXQoY29uc3QgUEdyZXN1bHQgKnJlcywg aW50IGZpZWxkX251bSk7CiBleHRlcm4gT2lkCVBRZnR5cGUoY29uc3QgUEdyZXN1bHQgKnJl cywgaW50IGZpZWxkX251bSk7CiBleHRlcm4gaW50CVBRZnNpemUoY29uc3QgUEdyZXN1bHQg KnJlcywgaW50IGZpZWxkX251bSk7CiBleHRlcm4gaW50CVBRZm1vZChjb25zdCBQR3Jlc3Vs dCAqcmVzLCBpbnQgZmllbGRfbnVtKTsKK2V4dGVybiBpbnQJUFFmaXNlbmNyeXB0ZWQoY29u c3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxkX251bSk7CiBleHRlcm4gY2hhciAqUFFjbWRT dGF0dXMoUEdyZXN1bHQgKnJlcyk7CiBleHRlcm4gY2hhciAqUFFvaWRTdGF0dXMoY29uc3Qg UEdyZXN1bHQgKnJlcyk7CS8qIG9sZCBhbmQgdWdseSAqLwogZXh0ZXJuIE9pZAlQUW9pZFZh bHVlKGNvbnN0IFBHcmVzdWx0ICpyZXMpOwkvKiBuZXcgYW5kIGltcHJvdmVkICovCkBAIC01 NDAsNiArNTYxLDcgQEAgZXh0ZXJuIGludAlQUWdldGxlbmd0aChjb25zdCBQR3Jlc3VsdCAq cmVzLCBpbnQgdHVwX251bSwgaW50IGZpZWxkX251bSk7CiBleHRlcm4gaW50CVBRZ2V0aXNu dWxsKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCB0dXBfbnVtLCBpbnQgZmllbGRfbnVtKTsK IGV4dGVybiBpbnQJUFFucGFyYW1zKGNvbnN0IFBHcmVzdWx0ICpyZXMpOwogZXh0ZXJuIE9p ZAlQUXBhcmFtdHlwZShjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgcGFyYW1fbnVtKTsKK2V4 dGVybiBpbnQJUFFwYXJhbWlzZW5jcnlwdGVkKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCBw YXJhbV9udW0pOwogCiAvKiBEZXNjcmliZSBwcmVwYXJlZCBzdGF0ZW1lbnRzIGFuZCBwb3J0 YWxzICovCiBleHRlcm4gUEdyZXN1bHQgKlBRZGVzY3JpYmVQcmVwYXJlZChQR2Nvbm4gKmNv bm4sIGNvbnN0IGNoYXIgKnN0bXQpOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGli cHEvbGlicHEtaW50LmggYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaAppbmRl eCBjNzVlZDYzYTJjNjIuLjA5MzA3ZGFiMTFjMSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFj ZXMvbGlicHEvbGlicHEtaW50LmgKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEt aW50LmgKQEAgLTExMiw2ICsxMTIsOSBAQCB1bmlvbiBwZ3Jlc3VsdF9kYXRhCiB0eXBlZGVm IHN0cnVjdCBwZ3Jlc1BhcmFtRGVzYwogewogCU9pZAkJCXR5cGlkOwkJCS8qIHR5cGUgaWQg Ki8KKwlPaWQJCQljZWtpZDsKKwlpbnQJCQljZWthbGc7CisJaW50CQkJZmxhZ3M7CiB9IFBH cmVzUGFyYW1EZXNjOwogCiAvKgpAQCAtMzQzLDYgKzM0NiwyNiBAQCB0eXBlZGVmIHN0cnVj dCBwZ19jb25uX2hvc3QKIAkJCQkJCQkJICogZm91bmQgaW4gcGFzc3dvcmQgZmlsZS4gKi8K IH0gcGdfY29ubl9ob3N0OwogCisvKgorICogQ29sdW1uIGVuY3J5cHRpb24gc3VwcG9ydCBk YXRhCisgKi8KKworLyogY29sdW1uIG1hc3RlciBrZXkgKi8KK3R5cGVkZWYgc3RydWN0IHBn X2NtaworeworCU9pZAkJCWNta2lkOworCWNoYXIJICAgKmNta25hbWU7CisJY2hhcgkgICAq Y21rcmVhbG07Cit9IFBHQ01LOworCisvKiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgKi8KK3R5 cGVkZWYgc3RydWN0IHBnX2NlaworeworCU9pZAkJCWNla2lkOworCXVuc2lnbmVkIGNoYXIg KmNla2RhdGE7CQkvKiAoZGVjcnlwdGVkKSAqLworCXNpemVfdAkJY2VrZGF0YWxlbjsKK30g UEdDRUs7CisKIC8qCiAgKiBQR2Nvbm4gc3RvcmVzIGFsbCB0aGUgc3RhdGUgZGF0YSBhc3Nv Y2lhdGVkIHdpdGggYSBzaW5nbGUgY29ubmVjdGlvbgogICogdG8gYSBiYWNrZW5kLgpAQCAt Mzk2LDYgKzQxOSw4IEBAIHN0cnVjdCBwZ19jb25uCiAJY2hhcgkgICAqc3NsX21pbl9wcm90 b2NvbF92ZXJzaW9uOwkvKiBtaW5pbXVtIFRMUyBwcm90b2NvbCB2ZXJzaW9uICovCiAJY2hh cgkgICAqc3NsX21heF9wcm90b2NvbF92ZXJzaW9uOwkvKiBtYXhpbXVtIFRMUyBwcm90b2Nv bCB2ZXJzaW9uICovCiAJY2hhcgkgICAqdGFyZ2V0X3Nlc3Npb25fYXR0cnM7CS8qIGRlc2ly ZWQgc2Vzc2lvbiBwcm9wZXJ0aWVzICovCisJY2hhcgkgICAqY21rbG9va3VwOwkJLyogQ01L IGxvb2t1cCBzcGVjaWZpY2F0aW9uICovCisJY2hhcgkgICAqY29sdW1uX2VuY3J5cHRpb25f c2V0dGluZzsJLyogY29sdW1uX2VuY3J5cHRpb24gY29ubmVjdGlvbiBwYXJhbWV0ZXIgKDAg b3IgMSkgKi8KIAogCS8qIE9wdGlvbmFsIGZpbGUgdG8gd3JpdGUgdHJhY2UgaW5mbyB0byAq LwogCUZJTEUJICAgKlBmZGVidWc7CkBAIC00NzcsNiArNTAyLDEzIEBAIHN0cnVjdCBwZ19j b25uCiAJUEdWZXJib3NpdHkgdmVyYm9zaXR5OwkJLyogZXJyb3Ivbm90aWNlIG1lc3NhZ2Ug dmVyYm9zaXR5ICovCiAJUEdDb250ZXh0VmlzaWJpbGl0eSBzaG93X2NvbnRleHQ7CS8qIHdo ZXRoZXIgdG8gc2hvdyBDT05URVhUIGZpZWxkICovCiAJUEdsb2JqZnVuY3MgKmxvYmpmdW5j czsJCS8qIHByaXZhdGUgc3RhdGUgZm9yIGxhcmdlLW9iamVjdCBhY2Nlc3MgZm5zICovCisJ Ym9vbAkJY29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZDsJLyogcGFyc2VkIHZlcnNpb24gb2Yg Y29sdW1uX2VuY3J5cHRpb25fc2V0dGluZyAqLworCisJLyogQ29sdW1uIGVuY3J5cHRpb24g c3VwcG9ydCBkYXRhICovCisJaW50CQkJbmNta3M7CisJUEdDTUsJICAgKmNta3M7CisJaW50 CQkJbmNla3M7CisJUEdDRUsJICAgKmNla3M7CiAKIAkvKiBCdWZmZXIgZm9yIGRhdGEgcmVj ZWl2ZWQgZnJvbSBiYWNrZW5kIGFuZCBub3QgeWV0IHByb2Nlc3NlZCAqLwogCWNoYXIJICAg KmluQnVmZmVyOwkJLyogY3VycmVudGx5IGFsbG9jYXRlZCBidWZmZXIgKi8KQEAgLTY3Myw2 ICs3MDUsMTAgQEAgZXh0ZXJuIHZvaWQgcHFTYXZlTWVzc2FnZUZpZWxkKFBHcmVzdWx0ICpy ZXMsIGNoYXIgY29kZSwKIAkJCQkJCQkgICBjb25zdCBjaGFyICp2YWx1ZSk7CiBleHRlcm4g dm9pZCBwcVNhdmVQYXJhbWV0ZXJTdGF0dXMoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpu YW1lLAogCQkJCQkJCQkgIGNvbnN0IGNoYXIgKnZhbHVlKTsKK2V4dGVybiBpbnQJcHFTYXZl Q29sdW1uTWFzdGVyS2V5KFBHY29ubiAqY29ubiwgaW50IGtleWlkLCBjb25zdCBjaGFyICpr ZXluYW1lLAorCQkJCQkJCQkgIGNvbnN0IGNoYXIgKmtleXJlYWxtKTsKK2V4dGVybiBpbnQJ cHFTYXZlQ29sdW1uRW5jcnlwdGlvbktleShQR2Nvbm4gKmNvbm4sIGludCBrZXlpZCwgaW50 IGNta2lkLCBpbnQgY21rYWxnLAorCQkJCQkJCQkJICBjb25zdCB1bnNpZ25lZCBjaGFyICp2 YWx1ZSwgaW50IGxlbik7CiBleHRlcm4gaW50CXBxUm93UHJvY2Vzc29yKFBHY29ubiAqY29u biwgY29uc3QgY2hhciAqKmVycm1zZ3ApOwogZXh0ZXJuIHZvaWQgcHFDb21tYW5kUXVldWVB ZHZhbmNlKFBHY29ubiAqY29ubik7CiBleHRlcm4gaW50CVBRc2VuZFF1ZXJ5Q29udGludWUo UEdjb25uICpjb25uLCBjb25zdCBjaGFyICpxdWVyeSk7CkBAIC02ODUsNiArNzIxLDcgQEAg ZXh0ZXJuIHZvaWQgcHFQYXJzZUlucHV0MyhQR2Nvbm4gKmNvbm4pOwogZXh0ZXJuIGludAlw cUdldEVycm9yTm90aWNlMyhQR2Nvbm4gKmNvbm4sIGJvb2wgaXNFcnJvcik7CiBleHRlcm4g dm9pZCBwcUJ1aWxkRXJyb3JNZXNzYWdlMyhQUUV4cEJ1ZmZlciBtc2csIGNvbnN0IFBHcmVz dWx0ICpyZXMsCiAJCQkJCQkJCSBQR1ZlcmJvc2l0eSB2ZXJib3NpdHksIFBHQ29udGV4dFZp c2liaWxpdHkgc2hvd19jb250ZXh0KTsKK2V4dGVybiBpbnQJcHFHZXROZWdvdGlhdGVQcm90 b2NvbFZlcnNpb24zKFBHY29ubiAqY29ubik7CiBleHRlcm4gaW50CXBxR2V0Q29weURhdGEz KFBHY29ubiAqY29ubiwgY2hhciAqKmJ1ZmZlciwgaW50IGFzeW5jKTsKIGV4dGVybiBpbnQJ cHFHZXRsaW5lMyhQR2Nvbm4gKmNvbm4sIGNoYXIgKnMsIGludCBtYXhsZW4pOwogZXh0ZXJu IGludAlwcUdldGxpbmVBc3luYzMoUEdjb25uICpjb25uLCBjaGFyICpidWZmZXIsIGludCBi dWZzaXplKTsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29uLmJ1aWxk IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVpbGQKaW5kZXggOGU2OTZmMTE4M2Nm Li5hM2UyZDJlOThiYTYgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29u LmJ1aWxkCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29uLmJ1aWxkCkBAIC0yNyw2 ICsyNyw3IEBAIGVuZGlmCiAKIGlmIHNzbC5mb3VuZCgpCiAgIGxpYnBxX3NvdXJjZXMgKz0g ZmlsZXMoJ2ZlLXNlY3VyZS1jb21tb24uYycpCisgIGxpYnBxX3NvdXJjZXMgKz0gZmlsZXMo J2ZlLWVuY3J5cHQtb3BlbnNzbC5jJykKICAgbGlicHFfc291cmNlcyArPSBmaWxlcygnZmUt c2VjdXJlLW9wZW5zc2wuYycpCiBlbmRpZgogCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNl cy9saWJwcS9ubHMubWsgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9ubHMubWsKaW5kZXggOTI1 NmI0MjZjMWQ0Li5jNDVmZTg2ZDFkMjQgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xp YnBxL25scy5taworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9ubHMubWsKQEAgLTEsNSAr MSw1IEBACiAjIHNyYy9pbnRlcmZhY2VzL2xpYnBxL25scy5tawogQ0FUQUxPR19OQU1FICAg ICA9IGxpYnBxCi1HRVRURVhUX0ZJTEVTICAgID0gZmUtYXV0aC5jIGZlLWF1dGgtc2NyYW0u YyBmZS1jb25uZWN0LmMgZmUtZXhlYy5jIGZlLWdzc2FwaS1jb21tb24uYyBmZS1sb2JqLmMg ZmUtbWlzYy5jIGZlLXByb3RvY29sMy5jIGZlLXNlY3VyZS5jIGZlLXNlY3VyZS1jb21tb24u YyBmZS1zZWN1cmUtZ3NzYXBpLmMgZmUtc2VjdXJlLW9wZW5zc2wuYyB3aW4zMi5jIC4uLy4u L3BvcnQvdGhyZWFkLmMKK0dFVFRFWFRfRklMRVMgICAgPSBmZS1hdXRoLmMgZmUtYXV0aC1z Y3JhbS5jIGZlLWNvbm5lY3QuYyBmZS1lbmNyeXB0LW9wZW5zc2wuYyBmZS1leGVjLmMgZmUt Z3NzYXBpLWNvbW1vbi5jIGZlLWxvYmouYyBmZS1taXNjLmMgZmUtcHJvdG9jb2wzLmMgZmUt c2VjdXJlLmMgZmUtc2VjdXJlLWNvbW1vbi5jIGZlLXNlY3VyZS1nc3NhcGkuYyBmZS1zZWN1 cmUtb3BlbnNzbC5jIHdpbjMyLmMgLi4vLi4vcG9ydC90aHJlYWQuYwogR0VUVEVYVF9UUklH R0VSUyA9IGxpYnBxX2dldHRleHQgcHFJbnRlcm5hbE5vdGljZToyCiBHRVRURVhUX0ZMQUdT ICAgID0gbGlicHFfZ2V0dGV4dDoxOnBhc3MtYy1mb3JtYXQgcHFJbnRlcm5hbE5vdGljZToy OmMtZm9ybWF0CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0Ly5naXRp Z25vcmUgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0Ly5naXRpZ25vcmUKaW5kZXggNmJh NzhhZGI2Nzg2Li4xODQ2NTk0ZWM1MTYgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xp YnBxL3Rlc3QvLmdpdGlnbm9yZQorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0Ly5n aXRpZ25vcmUKQEAgLTEsMiArMSwzIEBACisvbGlicHFfdGVzdF9lbmNyeXB0CiAvbGlicHFf dGVzdGNsaWVudAogL2xpYnBxX3VyaV9yZWdyZXNzCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJm YWNlcy9saWJwcS90ZXN0L01ha2VmaWxlIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC9N YWtlZmlsZQppbmRleCA3NWFjMDhmOTQzZDkuLmIxZWJhYjkwZDRlNiAxMDA2NDQKLS0tIGEv c3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC9NYWtlZmlsZQorKysgYi9zcmMvaW50ZXJmYWNl cy9saWJwcS90ZXN0L01ha2VmaWxlCkBAIC0xNSwxMCArMTUsMTcgQEAgb3ZlcnJpZGUgQ1BQ RkxBR1MgOj0gLUkkKGxpYnBxX3NyY2RpcikgJChDUFBGTEFHUykKIExERkxBR1NfSU5URVJO QUwgKz0gJChsaWJwcV9wZ3BvcnQpCiAKIFBST0dTID0gbGlicHFfdGVzdGNsaWVudCBsaWJw cV91cmlfcmVncmVzcworaWZlcSAoJCh3aXRoX3NzbCksb3BlbnNzbCkKK1BST0dTICs9IGxp YnBxX3Rlc3RfZW5jcnlwdAorZW5kaWYKKwogCiBhbGw6ICQoUFJPR1MpCiAKICQoUFJPR1Mp OiAkKFdJTjMyUkVTKQogCitsaWJwcV90ZXN0X2VuY3J5cHQ6IC4uL2ZlLWVuY3J5cHQtb3Bl bnNzbC5jCisJJChDQykgJChDUFBGTEFHUykgLURURVNUX0VOQ1JZUFQgJChDRkxBR1MpICRe ICQoTERGTEFHUykgJChMREZMQUdTX0VYKSAkKExJQlMpIC1vICRAJChYKQorCiBjbGVhbiBk aXN0Y2xlYW4gbWFpbnRhaW5lci1jbGVhbjoKIAlybSAtZiAkKFBST0dTKSAqLm8KZGlmZiAt LWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvbWVzb24uYnVpbGQgYi9zcmMvaW50 ZXJmYWNlcy9saWJwcS90ZXN0L21lc29uLmJ1aWxkCmluZGV4IDAxN2Y3MjlkNDM1ZC4uZmVh NjEzZGQ2MzRiIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0L21lc29u LmJ1aWxkCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvbWVzb24uYnVpbGQKQEAg LTM0LDMgKzM0LDUgQEAgZXhlY3V0YWJsZSgnbGlicHFfdGVzdGNsaWVudCcsCiAgICAgJ2lu c3RhbGwnOiBmYWxzZSwKICAgfQogKQorCisjIFRPRE86IGxpYnBxX3Rlc3RfZW5jcnlwdApk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvTWFrZWZpbGUgYi9zcmMvdGVzdC9NYWtlZmlsZQppbmRl eCBkYmQzMTkyODc0ZDMuLmM4YmExNzA1MDMwYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvTWFr ZWZpbGUKKysrIGIvc3JjL3Rlc3QvTWFrZWZpbGUKQEAgLTI0LDcgKzI0LDcgQEAgaWZlcSAo JCh3aXRoX2xkYXApLHllcykKIFNVQkRJUlMgKz0gbGRhcAogZW5kaWYKIGlmZXEgKCQod2l0 aF9zc2wpLG9wZW5zc2wpCi1TVUJESVJTICs9IHNzbAorU1VCRElSUyArPSBjb2x1bW5fZW5j cnlwdGlvbiBzc2wKIGVuZGlmCiAKICMgVGVzdCBzdWl0ZXMgdGhhdCBhcmUgbm90IHNhZmUg YnkgZGVmYXVsdCBidXQgY2FuIGJlIHJ1biBpZiBzZWxlY3RlZApAQCAtMzYsNyArMzYsNyBA QCBleHBvcnQgUEdfVEVTVF9FWFRSQQogIyBjbGVhbiIgZXRjIHRvIHJlY3Vyc2UgaW50byB0 aGVtLiAgKFdlIG11c3QgZmlsdGVyIG91dCB0aG9zZSB0aGF0IHdlCiAjIGhhdmUgY29uZGl0 aW9uYWxseSBpbmNsdWRlZCBpbnRvIFNVQkRJUlMgYWJvdmUsIGVsc2UgdGhlcmUgd2lsbCBi ZQogIyBtYWtlIGNvbmZ1c2lvbi4pCi1BTFdBWVNfU1VCRElSUyA9ICQoZmlsdGVyLW91dCAk KFNVQkRJUlMpLGV4YW1wbGVzIGtlcmJlcm9zIGljdSBsZGFwIHNzbCkKK0FMV0FZU19TVUJE SVJTID0gJChmaWx0ZXItb3V0ICQoU1VCRElSUyksZXhhbXBsZXMga2VyYmVyb3MgaWN1IGxk YXAgc3NsIGNvbHVtbl9lbmNyeXB0aW9uKQogCiAjIFdlIHdhbnQgdG8gcmVjdXJzZSB0byBh bGwgc3ViZGlycyBmb3IgYWxsIHN0YW5kYXJkIHRhcmdldHMsIGV4Y2VwdCB0aGF0CiAjIGlu c3RhbGxjaGVjayBhbmQgaW5zdGFsbCBzaG91bGQgbm90IHJlY3Vyc2UgaW50byB0aGUgc3Vi ZGlyZWN0b3J5ICJtb2R1bGVzIi4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2NvbHVtbl9lbmNy eXB0aW9uLy5naXRpZ25vcmUgYi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi8uZ2l0aWdu b3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDU2ZGJmNjlk MmE0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vLmdp dGlnbm9yZQpAQCAtMCwwICsxLDMgQEAKKy90ZXN0X2NsaWVudAorIyBHZW5lcmF0ZWQgYnkg dGVzdCBzdWl0ZQorL3RtcF9jaGVjay8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2NvbHVtbl9l bmNyeXB0aW9uL01ha2VmaWxlIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vTWFrZWZp bGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43YWNhODRiMTdh MDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi9NYWtl ZmlsZQpAQCAtMCwwICsxLDI5IEBACisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIworIyBNYWtl ZmlsZSBmb3Igc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24KKyMKKyMgUG9ydGlvbnMgQ29w eXJpZ2h0IChjKSAxOTk2LTIwMjIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdy b3VwCisjIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5p dmVyc2l0eSBvZiBDYWxpZm9ybmlhCisjCisjIHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9u L01ha2VmaWxlCisjCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitzdWJkaXIgPSBzcmMvdGVz dC9jb2x1bW5fZW5jcnlwdGlvbgordG9wX2J1aWxkZGlyID0gLi4vLi4vLi4KK2luY2x1ZGUg JCh0b3BfYnVpbGRkaXIpL3NyYy9NYWtlZmlsZS5nbG9iYWwKKworb3ZlcnJpZGUgQ1BQRkxB R1MgOj0gLUkkKGxpYnBxX3NyY2RpcikgJChDUFBGTEFHUykKK0xERkxBR1NfSU5URVJOQUwg Kz0gLUwkKHRvcF9idWlsZGRpcikvc3JjL2ZlX3V0aWxzIC1scGdmZXV0aWxzICQobGlicHFf cGdwb3J0KQorCithbGw6IHRlc3RfY2xpZW50CisKK2NoZWNrOiBhbGwKKwkkKHByb3ZlX2No ZWNrKQorCitpbnN0YWxsY2hlY2s6CisJJChwcm92ZV9pbnN0YWxsY2hlY2spCisKK2NsZWFu IGRpc3RjbGVhbiBtYWludGFpbmVyLWNsZWFuOgorCXJtIC1mIHRlc3RfY2xpZW50Lm8gdGVz dF9jbGllbnQKKwlybSAtcmYgdG1wX2NoZWNrCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jb2x1 bW5fZW5jcnlwdGlvbi9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9u L21lc29uLmJ1aWxkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u YTA1MjVkYTM2NjE1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5 cHRpb24vbWVzb24uYnVpbGQKQEAgLTAsMCArMSwyMCBAQAorY29sdW1uX2VuY3J5cHRpb25f dGVzdF9jbGllbnQgPSBleGVjdXRhYmxlKCd0ZXN0X2NsaWVudCcsCisgIGZpbGVzKCd0ZXN0 X2NsaWVudC5jJyksCisgIGRlcGVuZGVuY2llczogW2Zyb250ZW5kX2NvZGUsIGxpYnBxXSwK KyAga3dhcmdzOiBkZWZhdWx0X2Jpbl9hcmdzICsgeworICAgICdpbnN0YWxsJzogZmFsc2Us CisgIH0sCispCit0ZXN0cHJlcF90YXJnZXRzICs9IGNvbHVtbl9lbmNyeXB0aW9uX3Rlc3Rf Y2xpZW50CisKK3Rlc3RzICs9IHsKKyAgJ25hbWUnOiAnY29sdW1uX2VuY3J5cHRpb24nLAor ICAnc2QnOiBtZXNvbi5jdXJyZW50X3NvdXJjZV9kaXIoKSwKKyAgJ2JkJzogbWVzb24uY3Vy cmVudF9idWlsZF9kaXIoKSwKKyAgJ3RhcCc6IHsKKyAgICAndGVzdHMnOiBbCisgICAgICAn dC8wMDFfY29sdW1uX2VuY3J5cHRpb24ucGwnLAorICAgICAgJ3QvMDAyX2Nta19yb3RhdGlv bi5wbCcsCisgICAgXSwKKyAgfSwKK30KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2NvbHVtbl9l bmNyeXB0aW9uL3QvMDAxX2NvbHVtbl9lbmNyeXB0aW9uLnBsIGIvc3JjL3Rlc3QvY29sdW1u X2VuY3J5cHRpb24vdC8wMDFfY29sdW1uX2VuY3J5cHRpb24ucGwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iOGYwN2NlNTJkMDEKLS0tIC9kZXYvbnVsbAor KysgYi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMV9jb2x1bW5fZW5jcnlwdGlv bi5wbApAQCAtMCwwICsxLDE4NiBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiwgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKwordXNlIHN0cmljdDsKK3VzZSB3 YXJuaW5nczsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVT UUw6OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKK215ICRub2RlID0gUG9zdGdy ZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdub2RlJyk7Ciskbm9kZS0+aW5pdDsKKyRub2Rl LT5zdGFydDsKKworCitzdWIgY3JlYXRlX2NtaworeworCW15ICgkY21rbmFtZSkgPSBAXzsK KwlteSAkY21rZmlsZW5hbWUgPSAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2No ZWNrfS8ke2Nta25hbWV9LnBlbSI7CisJc3lzdGVtX29yX2JhaWwgJ29wZW5zc2wnLCAnZ2Vu cGtleScsICctYWxnb3JpdGhtJywgJ3JzYScsICctb3V0JywgJGNta2ZpbGVuYW1lOworCSRu b2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZ ICR7Y21rbmFtZX0gV0lUSCAocmVhbG0gPSAnJyl9KTsKKwlyZXR1cm4gJGNta2ZpbGVuYW1l OworfQorCitzdWIgY3JlYXRlX2NlaworeworCW15ICgkY2VrbmFtZSwgJGJ5dGVzLCAkY21r bmFtZSwgJGNta2ZpbGVuYW1lKSA9IEBfOworCisJIyBnZW5lcmF0ZSByYW5kb20gYnl0ZXMK KwlzeXN0ZW1fb3JfYmFpbCAnb3BlbnNzbCcsICdyYW5kJywgJy1vdXQnLCAiJHtQb3N0Z3Jl U1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbiIsICRieXRlczsK KworCSMgZW5jcnlwdCBDRUsgdXNpbmcgQ01LCisJc3lzdGVtX29yX2JhaWwgJ29wZW5zc2wn LCAncGtleXV0bCcsICctZW5jcnlwdCcsCisJICAnLWlua2V5JywgJGNta2ZpbGVuYW1lLAor CSAgJy1wa2V5b3B0JywgJ3JzYV9wYWRkaW5nX21vZGU6b2FlcCcsCisJICAnLWluJywgIiR7 UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtuYW1lfS5iaW4iLAor CSAgJy1vdXQnLCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nl a25hbWV9LmJpbi5lbmMiOworCisJbXkgJGNla2VuY2hleCA9IHVucGFjaygnSConLCBzbHVy cF9maWxlICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y2VrbmFt ZX0uYmluLmVuYyIpOworCisJIyBjcmVhdGUgQ0VLIGluIGRhdGFiYXNlCisJJG5vZGUtPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCBxcXtDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZICR7 Y2VrbmFtZX0gV0lUSCBWQUxVRVMgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gJHtjbWtuYW1lfSwg ZW5jcnlwdGVkX3ZhbHVlID0gJ1xceCR7Y2VrZW5jaGV4fScpO30pOworCisJcmV0dXJuOwor fQorCisKK215ICRjbWsxZmlsZW5hbWUgPSBjcmVhdGVfY21rKCdjbWsxJyk7CitteSAkY21r MmZpbGVuYW1lID0gY3JlYXRlX2NtaygnY21rMicpOworY3JlYXRlX2NlaygnY2VrMScsIDMy LCAnY21rMScsICRjbWsxZmlsZW5hbWUpOworY3JlYXRlX2NlaygnY2VrMicsIDQ4LCAnY21r MicsICRjbWsyZmlsZW5hbWUpOworCiskRU5WeydQR0NPTFVNTkVOQ1JZUFRJT04nfSA9ICcx JzsKKyRFTlZ7J1BHQ01LTE9PS1VQJ30gPSAnKj1maWxlOicgLiAke1Bvc3RncmVTUUw6OlRl c3Q6OlV0aWxzOjp0bXBfY2hlY2t9IC4gJy8lay5wZW0nOworCisKKyRub2RlLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgcXF7CitDUkVBVEUgVEFCTEUgdGJsMSAoCisgICAgYSBpbnQsCisg ICAgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsx KSwKKyAgICBjIHNtYWxsaW50IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9r ZXkgPSBjZWsxKQorKTsKK30pOworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFx eworQ1JFQVRFIFRBQkxFIHRibDIgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCBFTkNSWVBU RUQgV0lUSCAoZW5jcnlwdGlvbl90eXBlID0gZGV0ZXJtaW5pc3RpYywgY29sdW1uX2VuY3J5 cHRpb25fa2V5ID0gY2VrMSkKKyk7Cit9KTsKKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCBxcXsKK0NSRUFURSBUQUJMRSB0YmwzICgKKyAgICBhIGludCwKKyAgICBiIHRleHQg RU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpLAorICAgIGMg dGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMiwgYWxn b3JpdGhtID0gJ0FFQURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFfMzg0JykKKyk7Cit9KTsKKwor JG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxeworSU5TRVJUIElOVE8gdGJsMSAoYSwg YiwgYykgVkFMVUVTICgxLCAkMSwgJDIpIFxnZW5jciAndmFsMScgMTEKK0lOU0VSVCBJTlRP IHRibDEgKGEsIGIsIGMpIFZBTFVFUyAoMiwgJDEsICQyKSBcZ2VuY3IgJ3ZhbDInIDIyCit9 KTsKKworIyBFeHBlY3RlZCBjaXBoZXJ0ZXh0IGxlbmd0aCBpcyAyIGJsb2NrcyBvZiBBRVMg b3V0cHV0ICgyICogMTYpIHBsdXMKKyMgaGFsZiBTSEEtMjU2IG91dHB1dCAoMTYpIGluIGhl eCBlbmNvZGluZzogKDIgKiAxNiArIDE2KSAqIDIgPSA5NgorbGlrZSgkbm9kZS0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsIHF7Q09QWSAoU0VMRUNUICogRlJPTSB0YmwxKSBUTyBTVERPVVR9 KSwKKwlxci8xXHRcXFxceFswLTlhLWZdezk2fVx0XFxcXHhbMC05YS1mXXs5Nn1cbjJcdFxc XFx4WzAtOWEtZl17OTZ9XHRcXFxceFswLTlhLWZdezk2fS8sCisJJ2luc2VydGVkIGRhdGEg aXMgZW5jcnlwdGVkJyk7CisKK215ICRyZXN1bHQ7CisKKyRyZXN1bHQgPSAkbm9kZS0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwxIFxnZGVzY30p OworaXMoJHJlc3VsdCwKKwlxKGF8aW50ZWdlcgorYnx0ZXh0CitjfHNtYWxsaW50KSwKKwkn cXVlcnkgcmVzdWx0IGRlc2NyaXB0aW9uIGhhcyBvcmlnaW5hbCB0eXBlJyk7CisKKyRyZXN1 bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIsIGMgRlJP TSB0YmwxfSk7CitpcygkcmVzdWx0LAorCXEoMXx2YWwxfDExCisyfHZhbDJ8MjIpLAorCSdk ZWNyeXB0ZWQgcXVlcnkgcmVzdWx0Jyk7CisKK3sKKwlsb2NhbCAkRU5WeydQR0NNS0xPT0tV UCd9ID0gJyo9cnVuOmJyb2tlbiAlayAiJWIiJzsKKwkkcmVzdWx0ID0gJG5vZGUtPnBzcWwo J3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDF9KTsKKwlpc250KCRyZXN1 bHQsIDAsICdxdWVyeSBmYWlscyB3aXRoIGJyb2tlbiBjbWtsb29rdXAgcnVuIHNldHRpbmcn KTsKK30KKworVE9ETzogeworCWxvY2FsICRUT0RPID0gJ3BhdGggbm90IGJlaW5nIHBhc3Nl ZCBjb3JyZWN0bHkgb24gV2luZG93cycgaWYgJHdpbmRvd3Nfb3M7CisKKwlsb2NhbCAkRU5W eydQR0NNS0xPT0tVUCd9ID0gIio9cnVuOnBlcmwgLi90ZXN0X3J1bl9kZWNyeXB0LnBsICck e1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9JyAlayAlYSAnJWInIjsKKwor CW15ICRzdGRvdXQ7CisJJHJlc3VsdCA9ICRub2RlLT5wc3FsKCdwb3N0Z3JlcycsIHF7U0VM RUNUIGEsIGIsIGMgRlJPTSB0YmwxfSwgc3Rkb3V0ID0+IFwkc3Rkb3V0KTsKKwlpcygkc3Rk b3V0LAorCQlxKDF8dmFsMXwxMQorMnx2YWwyfDIyKSwKKwkJJ2RlY3J5cHRlZCBxdWVyeSBy ZXN1bHQgd2l0aCBjbWtsb29rdXAgcnVuJyk7Cit9CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgcXsKK0lOU0VSVCBJTlRPIHRibDMgKGEsIGIsIGMpIFZBTFVFUyAoMSwgJDEs ICQyKSBcZ2VuY3IgJ3ZhbEIxJyAndmFsQzEnCit9KTsKKworJHJlc3VsdCA9ICRub2RlLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDN9KTsKK2lz KCRyZXN1bHQsCisJcSgxfHZhbEIxfHZhbEMxKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3Vs dCBtdWx0aXBsZSBrZXlzJyk7CisKKworJG5vZGUtPmNvbW1hbmRfZmFpbHNfbGlrZShbJ3Rl c3RfY2xpZW50JywgJ3Rlc3QxJ10sIHFyL25vdCBlbmNyeXB0ZWQvLCAndGVzdCBjbGllbnQg ZmFpbHMgYmVjYXVzZSBwYXJhbWV0ZXJzIG5vdCBlbmNyeXB0ZWQnKTsKKworJHJlc3VsdCA9 ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRi bDF9KTsKK2lzKCRyZXN1bHQsCisJcSgxfHZhbDF8MTEKKzJ8dmFsMnwyMiksCisJJ2RlY3J5 cHRlZCBxdWVyeSByZXN1bHQgYWZ0ZXIgdGVzdCBjbGllbnQgaW5zZXJ0Jyk7CisKKyRub2Rl LT5jb21tYW5kX29rKFsndGVzdF9jbGllbnQnLCAndGVzdDInXSwgJ3Rlc3QgY2xpZW50IHRl c3QgMicpOworCiskcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NF TEVDVCBhLCBiLCBjIEZST00gdGJsMX0pOworaXMoJHJlc3VsdCwKKwlxKDF8dmFsMXwxMQor Mnx2YWwyfDIyCiszfHZhbDN8MzMpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IGFmdGVy IHRlc3QgY2xpZW50IGluc2VydCAyJyk7CisKK2xpa2UoJG5vZGUtPnNhZmVfcHNxbCgncG9z dGdyZXMnLCBxe0NPUFkgKFNFTEVDVCAqIEZST00gdGJsMSBXSEVSRSBhID0gMykgVE8gU1RE T1VUfSksCisJcXIvM1x0XFxcXHhbMC05YS1mXXs5Nn0vLAorCSdpbnNlcnRlZCBkYXRhIGlz IGVuY3J5cHRlZCcpOworCiskbm9kZS0+Y29tbWFuZF9vayhbJ3Rlc3RfY2xpZW50JywgJ3Rl c3QzJ10sICd0ZXN0IGNsaWVudCB0ZXN0IDMnKTsKKworJHJlc3VsdCA9ICRub2RlLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDF9KTsKK2lzKCRy ZXN1bHQsCisJcSgxfHZhbDF8MTEKKzJ8dmFsMnwyMgorM3x2YWwzdXBkfDMzKSwKKwknZGVj cnlwdGVkIHF1ZXJ5IHJlc3VsdCBhZnRlciB0ZXN0IGNsaWVudCBpbnNlcnQgMycpOworCisk bm9kZS0+Y29tbWFuZF9vayhbJ3Rlc3RfY2xpZW50JywgJ3Rlc3Q0J10sICd0ZXN0IGNsaWVu dCB0ZXN0IDQnKTsKKworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg cXtTRUxFQ1QgYSwgYiBGUk9NIHRibDJ9KTsKK2lzKCRyZXN1bHQsCisJcSgxfHZhbEEKKzJ8 dmFsQgorM3x2YWxBKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCBhZnRlciB0ZXN0IGNs aWVudCBpbnNlcnQgNCcpOworCitpcygkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7 U0VMRUNUIGIsIGNvdW50KCopIEZST00gdGJsMiBHUk9VUCBCWSBiIE9SREVSIEJZIDJ9KSwK KwlxKHZhbEJ8MQordmFsQXwyKSwKKwknZ3JvdXAgYnkgZGV0ZXJtaW5pc3RpY2FsbHkgZW5j cnlwdGVkIGNvbHVtbicpOworCiskbm9kZS0+Y29tbWFuZF9vayhbJ3Rlc3RfY2xpZW50Jywg J3Rlc3Q1J10sICd0ZXN0IGNsaWVudCB0ZXN0IDUnKTsKKworJHJlc3VsdCA9ICRub2RlLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDN9KTsKK2lz KCRyZXN1bHQsCisJcSgxfHZhbEIxfHZhbEMxCisyfHZhbEIyfHZhbEMyCiszfHZhbEIzfHZh bEMzKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCBtdWx0aXBsZSBrZXlzIGFmdGVyIHRl c3QgY2xpZW50IGluc2VydCA1Jyk7CisKK2RvbmVfdGVzdGluZygpOwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdC8wMDJfY21rX3JvdGF0aW9uLnBsIGIvc3Jj L3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdC8wMDJfY21rX3JvdGF0aW9uLnBsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZWM0NDc4NzJhYjI0Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdC8wMDJfY21rX3JvdGF0 aW9uLnBsCkBAIC0wLDAgKzEsMTA4IEBACisjIENvcHlyaWdodCAoYykgMjAyMS0yMDIyLCBQ b3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCisjIFRlc3QgY29sdW1uIG1h c3RlciBrZXkgcm90YXRpb24uICBGaXJzdCwgd2UgZ2VuZXJhdGUgQ01LMSBhbmQgYSBDRUsK KyMgZW5jcnlwdGVkIHdpdGggaXQuICBUaGVuIHdlIGFkZCBhIENNSzIgYW5kIGVuY3J5cHQg dGhlIENFSyB3aXRoIGl0CisjIGFzIHdlbGwuICAoUmVjYWxsIHRoYXQgYSBDRUsgY2FuIGJl IGFzc29jaWF0ZWQgd2l0aCBtdWx0aXBsZSBDTUtzLAorIyBmb3IgdGhpcyByZWFzb24uICBU aGF0J3Mgd2h5IHBnX2NvbGVuY2tleWRhdGEgaXMgc3BsaXQgb3V0IGZyb20KKyMgcGdfY29s ZW5ja2V5LikgIFRoZW4gd2UgcmVtb3ZlIENNSzEuICBXZSB0ZXN0IHRoYXQgd2UgY2FuIGdl dAorIyBkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0cyBhdCBlYWNoIHN0ZXAuCisKK3VzZSBzdHJp Y3Q7Cit1c2Ugd2FybmluZ3M7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKK3Vz ZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczsKK3VzZSBUZXN0OjpNb3JlOworCitteSAkbm9k ZSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnbm9kZScpOworJG5vZGUtPmlu aXQ7Ciskbm9kZS0+c3RhcnQ7CisKKworc3ViIGNyZWF0ZV9jbWsKK3sKKwlteSAoJGNta25h bWUpID0gQF87CisJbXkgJGNta2ZpbGVuYW1lID0gIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRp bHM6OnRtcF9jaGVja30vJHtjbWtuYW1lfS5wZW0iOworCXN5c3RlbV9vcl9iYWlsICdvcGVu c3NsJywgJ2dlbnBrZXknLCAnLWFsZ29yaXRobScsICdyc2EnLCAnLW91dCcsICRjbWtmaWxl bmFtZTsKKwkkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxe0NSRUFURSBDT0xVTU4g TUFTVEVSIEtFWSAke2Nta25hbWV9IFdJVEggKHJlYWxtID0gJycpfSk7CisJcmV0dXJuICRj bWtmaWxlbmFtZTsKK30KKworCitteSAkY21rMWZpbGVuYW1lID0gY3JlYXRlX2NtaygnY21r MScpOworCisjIGNyZWF0ZSBDRUsKK215ICgkY2VrbmFtZSwgJGJ5dGVzKSA9ICgnY2VrMScs IDE2KzE2KTsKKworIyBnZW5lcmF0ZSByYW5kb20gYnl0ZXMKK3N5c3RlbV9vcl9iYWlsICdv cGVuc3NsJywgJ3JhbmQnLCAnLW91dCcsICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0 bXBfY2hlY2t9LyR7Y2VrbmFtZX0uYmluIiwgJGJ5dGVzOworCisjIGVuY3J5cHQgQ0VLIHVz aW5nIENNSworc3lzdGVtX29yX2JhaWwgJ29wZW5zc2wnLCAncGtleXV0bCcsICctZW5jcnlw dCcsCisgICctaW5rZXknLCAkY21rMWZpbGVuYW1lLAorICAnLXBrZXlvcHQnLCAncnNhX3Bh ZGRpbmdfbW9kZTpvYWVwJywKKyAgJy1pbicsICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxz Ojp0bXBfY2hlY2t9LyR7Y2VrbmFtZX0uYmluIiwKKyAgJy1vdXQnLCAiJHtQb3N0Z3JlU1FM OjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbi5lbmMiOworCitteSAk Y2VrZW5jaGV4ID0gdW5wYWNrKCdIKicsIHNsdXJwX2ZpbGUgIiR7UG9zdGdyZVNRTDo6VGVz dDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtuYW1lfS5iaW4uZW5jIik7CisKKyMgY3JlYXRl IENFSyBpbiBkYXRhYmFzZQorJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXtDUkVB VEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZICR7Y2VrbmFtZX0gV0lUSCBWQUxVRVMgKGNvbHVt bl9tYXN0ZXJfa2V5ID0gY21rMSwgZW5jcnlwdGVkX3ZhbHVlID0gJ1xceCR7Y2VrZW5jaGV4 fScpO30pOworCiskRU5WeydQR0NPTFVNTkVOQ1JZUFRJT04nfSA9ICcxJzsKKyRFTlZ7J1BH Q01LTE9PS1VQJ30gPSAnKj1maWxlOicgLiAke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0 bXBfY2hlY2t9IC4gJy8lay5wZW0nOworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs IHFxeworQ1JFQVRFIFRBQkxFIHRibDEgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCBFTkNS WVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSkKKyk7Cit9KTsKKwor JG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxeworSU5TRVJUIElOVE8gdGJsMSAoYSwg YikgVkFMVUVTICgxLCAkMSkgXGdlbmNyICd2YWwxJworSU5TRVJUIElOVE8gdGJsMSAoYSwg YikgVkFMVUVTICgyLCAkMSkgXGdlbmNyICd2YWwyJworfSk7CisKK2lzKCRub2RlLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiBGUk9NIHRibDF9KSwKKwlxKDF8dmFs MQorMnx2YWwyKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCB3aXRoIG9uZSBDTUsnKTsK KworCisjIGNyZWF0ZSBuZXcgQ01LCitteSAkY21rMmZpbGVuYW1lID0gY3JlYXRlX2Ntaygn Y21rMicpOworCisjIGVuY3J5cHQgQ0VLIHVzaW5nIG5ldyBDTUsKKyMKKyMgKEhlcmUsIHdl IHN0aWxsIGhhdmUgdGhlIHBsYWludGV4dCBvZiB0aGUgQ0VLIGF2YWlsYWJsZSBmcm9tCisj IGVhcmxpZXIuICBJbiByZWFsaXR5LCBvbmUgd291bGQgZGVjcnlwdCB0aGUgQ0VLIHdpdGgg dGhlIGZpcnN0IENNSworIyBhbmQgdGhlbiByZS1lbmNyeXB0IGl0IHdpdGggdGhlIHNlY29u ZCBDTUsuKQorc3lzdGVtX29yX2JhaWwgJ29wZW5zc2wnLCAncGtleXV0bCcsICctZW5jcnlw dCcsCisgICctaW5rZXknLCAkY21rMmZpbGVuYW1lLAorICAnLXBrZXlvcHQnLCAncnNhX3Bh ZGRpbmdfbW9kZTpvYWVwJywKKyAgJy1pbicsICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxz Ojp0bXBfY2hlY2t9LyR7Y2VrbmFtZX0uYmluIiwKKyAgJy1vdXQnLCAiJHtQb3N0Z3JlU1FM OjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbi5lbmMiOworCiskY2Vr ZW5jaGV4ID0gdW5wYWNrKCdIKicsIHNsdXJwX2ZpbGUgIiR7UG9zdGdyZVNRTDo6VGVzdDo6 VXRpbHM6OnRtcF9jaGVja30vJHtjZWtuYW1lfS5iaW4uZW5jIik7CisKKyMgYWRkIG5ldyBk YXRhIHJlY29yZCBmb3IgQ0VLIGluIGRhdGFiYXNlCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsIHFxe0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSAke2Nla25hbWV9IEFERCBW QUxVRSAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsyLCBlbmNyeXB0ZWRfdmFsdWUgPSAnXFx4 JHtjZWtlbmNoZXh9Jyk7fSk7CisKKworaXMoJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMn LCBxe1NFTEVDVCBhLCBiIEZST00gdGJsMX0pLAorCXEoMXx2YWwxCisyfHZhbDIpLAorCSdk ZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IHdpdGggdHdvIENNS3MnKTsKKworCisjIGRlbGV0ZSBD RUsgcmVjb3JkIGZvciBmaXJzdCBDTUsKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg cXF7QUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZICR7Y2VrbmFtZX0gRFJPUCBWQUxVRSAo Y29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxKTt9KTsKKworCitpcygkbm9kZS0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIgRlJPTSB0YmwxfSksCisJcSgxfHZhbDEKKzJ8 dmFsMiksCisJJ2RlY3J5cHRlZCBxdWVyeSByZXN1bHQgd2l0aCBvbmx5IG5ldyBDTUsnKTsK KworCitkb25lX3Rlc3RpbmcoKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2NvbHVtbl9lbmNy eXB0aW9uL3Rlc3RfY2xpZW50LmMgYi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0 X2NsaWVudC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjM2 ZGU4OGM3ODUxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRp b24vdGVzdF9jbGllbnQuYwpAQCAtMCwwICsxLDIxMCBAQAorLyoKKyAqIENvcHlyaWdodCAo YykgMjAyMS0yMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICov CisKKyNpbmNsdWRlICJwb3N0Z3Jlc19mZS5oIgorCisjaW5jbHVkZSAibGlicHEtZmUuaCIK KworCitzdGF0aWMgaW50Cit0ZXN0MShQR2Nvbm4gKmNvbm4pCit7CisJUEdyZXN1bHQgICAq cmVzOworCWNvbnN0IGNoYXIgKnZhbHVlc1tdID0geyIzIiwgInZhbDMiLCAiMzMifTsKKwor CXJlcyA9IFBRZXhlY1BhcmFtcyhjb25uLCAiSU5TRVJUIElOVE8gdGJsMSAoYSwgYiwgYykg VkFMVUVTICgkMSwgJDIsICQzKSIsCisJCQkJCSAgIDMsIE5VTEwsIHZhbHVlcywgTlVMTCwg TlVMTCwgMCk7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9P SykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiUFFleGVjUGFyYW1zKCkgZmFpbGVkOiAlc1xu IiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJl dHVybiAwOworfQorCitzdGF0aWMgaW50Cit0ZXN0MihQR2Nvbm4gKmNvbm4pCit7CisJUEdy ZXN1bHQgICAqcmVzLAorCQkJICAgKnJlczI7CisJY29uc3QgY2hhciAqdmFsdWVzW10gPSB7 IjMiLCAidmFsMyIsICIzMyJ9OworCWludAkJCWZvcmNlc1tdID0ge2ZhbHNlLCB0cnVlfTsK KworCXJlcyA9IFBRcHJlcGFyZShjb25uLCAiIiwgIklOU0VSVCBJTlRPIHRibDEgKGEsIGIs IGMpIFZBTFVFUyAoJDEsICQyLCAkMykiLAorCQkJCQkzLCBOVUxMKTsKKwlpZiAoUFFyZXN1 bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQorCXsKKwkJZnByaW50ZihzdGRl cnIsICJQUXByZXBhcmUoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNv bm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmVzMiA9IFBRZGVzY3JpYmVQcmVwYXJlZChj b25uLCAiIik7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlczIpICE9IFBHUkVTX0NPTU1BTkRf T0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIlBRZGVzY3JpYmVQcmVwYXJlZCgpIGZhaWxl ZDogJXNcbiIsCisJCQkJUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9 CisKKwlpZiAoISghUFFwYXJhbWlzZW5jcnlwdGVkKHJlczIsIDApICYmCisJCSAgUFFwYXJh bWlzZW5jcnlwdGVkKHJlczIsIDEpKSkKKwl7CisJCWZwcmludGYoc3RkZXJyLCAid3Jvbmcg cmVzdWx0cyBmcm9tIFBRcGFyYW1pc2VuY3J5cHRlZCgpXG4iKTsKKwkJcmV0dXJuIDE7CisJ fQorCisJcmVzID0gUFFleGVjUHJlcGFyZWQyKGNvbm4sICIiLCAzLCB2YWx1ZXMsIE5VTEws IE5VTEwsIGZvcmNlcywgMCwgcmVzMik7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0g UEdSRVNfQ09NTUFORF9PSykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiUFFleGVjUHJlcGFy ZWQoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0 dXJuIDE7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3QzKFBHY29u biAqY29ubikKK3sKKwlQR3Jlc3VsdCAgICpyZXMsCisJCQkgICAqcmVzMjsKKwljb25zdCBj aGFyICp2YWx1ZXNbXSA9IHsiMyIsICJ2YWwzdXBkIn07CisKKwlyZXMgPSBQUXByZXBhcmUo Y29ubiwgIiIsICJVUERBVEUgdGJsMSBTRVQgYiA9ICQyIFdIRVJFIGEgPSAkMSIsCisJCQkJ CTIsIE5VTEwpOworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRf T0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIlBRcHJlcGFyZSgpIGZhaWxlZDogJXNcbiIs CisJCQkJUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9CisKKwlyZXMy ID0gUFFkZXNjcmliZVByZXBhcmVkKGNvbm4sICIiKTsKKwlpZiAoUFFyZXN1bHRTdGF0dXMo cmVzMikgIT0gUEdSRVNfQ09NTUFORF9PSykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiUFFk ZXNjcmliZVByZXBhcmVkKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVycm9yTWVzc2FnZShj b25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJlcyA9IFBRZXhlY1ByZXBhcmVkMihjb25u LCAiIiwgMiwgdmFsdWVzLCBOVUxMLCBOVUxMLCBOVUxMLCAwLCByZXMyKTsKKwlpZiAoUFFy ZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQorCXsKKwkJZnByaW50Zihz dGRlcnIsICJQUWV4ZWNQcmVwYXJlZCgpIGZhaWxlZDogJXNcbiIsCisJCQkJUFFlcnJvck1l c3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3Rh dGljIGludAordGVzdDQoUEdjb25uICpjb25uKQoreworCVBHcmVzdWx0ICAgKnJlcywKKwkJ CSAgICpyZXMyOworCWNvbnN0IGNoYXIgKnZhbHVlc1tdID0geyIxIiwgInZhbEEiLCAiMiIs ICJ2YWxCIiwgIjMiLCAidmFsQSJ9OworCisJcmVzID0gUFFwcmVwYXJlKGNvbm4sICIiLCAi SU5TRVJUIElOVE8gdGJsMiAoYSwgYikgVkFMVUVTICgkMSwgJDIpLCAoJDMsICQ0KSwgKCQ1 LCAkNikiLAorCQkJCQk2LCBOVUxMKTsKKwlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQ R1JFU19DT01NQU5EX09LKQorCXsKKwkJZnByaW50ZihzdGRlcnIsICJQUXByZXBhcmUoKSBm YWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7 CisJfQorCisJcmVzMiA9IFBRZGVzY3JpYmVQcmVwYXJlZChjb25uLCAiIik7CisJaWYgKFBR cmVzdWx0U3RhdHVzKHJlczIpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJeworCQlmcHJpbnRm KHN0ZGVyciwgIlBRZGVzY3JpYmVQcmVwYXJlZCgpIGZhaWxlZDogJXNcbiIsCisJCQkJUFFl cnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9CisKKwlyZXMgPSBQUWV4ZWNQ cmVwYXJlZDIoY29ubiwgIiIsIDYsIHZhbHVlcywgTlVMTCwgTlVMTCwgTlVMTCwgMCwgcmVz Mik7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykKKwl7 CisJCWZwcmludGYoc3RkZXJyLCAiUFFleGVjUHJlcGFyZWQoKSBmYWlsZWQ6ICVzXG4iLAor CQkJCVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmV0dXJu IDA7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3Q1KFBHY29ubiAqY29ubikKK3sKKwlQR3Jlc3Vs dCAgICpyZXMsCisJCQkgICAqcmVzMjsKKwljb25zdCBjaGFyICp2YWx1ZXNbXSA9IHsKKwkJ IjIiLCAidmFsQjIiLCAidmFsQzIiLAorCQkiMyIsICJ2YWxCMyIsICJ2YWxDMyIKKwl9Owor CisJcmVzID0gUFFwcmVwYXJlKGNvbm4sICIiLCAiSU5TRVJUIElOVE8gdGJsMyAoYSwgYiwg YykgVkFMVUVTICgkMSwgJDIsICQzKSwgKCQ0LCAkNSwgJDYpIiwKKwkJCQkJNiwgTlVMTCk7 CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykKKwl7CisJ CWZwcmludGYoc3RkZXJyLCAiUFFwcmVwYXJlKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVy cm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJlczIgPSBQUWRlc2Ny aWJlUHJlcGFyZWQoY29ubiwgIiIpOworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMyKSAhPSBQ R1JFU19DT01NQU5EX09LKQorCXsKKwkJZnByaW50ZihzdGRlcnIsICJQUWRlc2NyaWJlUHJl cGFyZWQoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJ cmV0dXJuIDE7CisJfQorCisJcmVzID0gUFFleGVjUHJlcGFyZWQyKGNvbm4sICIiLCA2LCB2 YWx1ZXMsIE5VTEwsIE5VTEwsIE5VTEwsIDAsIHJlczIpOworCWlmIChQUXJlc3VsdFN0YXR1 cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIlBR ZXhlY1ByZXBhcmVkKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25u KSk7CisJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOworfQorCitpbnQKK21haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQoreworCVBHY29ubgkgICAqY29ubjsKKwlpbnQJCQlyZXQg PSAwOworCisJY29ubiA9IFBRY29ubmVjdGRiKCIiKTsKKwlpZiAoUFFzdGF0dXMoY29ubikg IT0gQ09OTkVDVElPTl9PSykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiQ29ubmVjdGlvbiB0 byBkYXRhYmFzZSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsK KwkJcmV0dXJuIDE7CisJfQorCisJaWYgKGFyZ2MgPCAyIHx8IGFyZ3ZbMV0gPT0gTlVMTCkK KwkJcmV0dXJuIDg3OworCWVsc2UgaWYgKHN0cmNtcChhcmd2WzFdLCAidGVzdDEiKSA9PSAw KQorCQlyZXQgPSB0ZXN0MShjb25uKTsKKwllbHNlIGlmIChzdHJjbXAoYXJndlsxXSwgInRl c3QyIikgPT0gMCkKKwkJcmV0ID0gdGVzdDIoY29ubik7CisJZWxzZSBpZiAoc3RyY21wKGFy Z3ZbMV0sICJ0ZXN0MyIpID09IDApCisJCXJldCA9IHRlc3QzKGNvbm4pOworCWVsc2UgaWYg KHN0cmNtcChhcmd2WzFdLCAidGVzdDQiKSA9PSAwKQorCQlyZXQgPSB0ZXN0NChjb25uKTsK KwllbHNlIGlmIChzdHJjbXAoYXJndlsxXSwgInRlc3Q1IikgPT0gMCkKKwkJcmV0ID0gdGVz dDUoY29ubik7CisJZWxzZQorCQlyZXQgPSA4ODsKKworCVBRZmluaXNoKGNvbm4pOworCXJl dHVybiByZXQ7Cit9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90 ZXN0X3J1bl9kZWNyeXB0LnBsIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdGVzdF9y dW5fZGVjcnlwdC5wbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAu LjA3YjFmYjFiYjM4MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNy eXB0aW9uL3Rlc3RfcnVuX2RlY3J5cHQucGwKQEAgLTAsMCArMSw0MSBAQAorIyEvdXNyL2Jp bi9wZXJsCisKKyMgVGVzdC9zYW1wbGUgY29tbWFuZCBmb3IgbGlicHEgY21rbG9va3VwIHJ1 biBzY2hlbWUKKyMKKyMgVGhpcyBqdXN0IHBsYWNlcyB0aGUgZGF0YSBpbnRvIHRlbXBvcmFy eSBmaWxlcyBhbmQgcnVucyB0aGUgb3BlbnNzbAorIyBjb21tYW5kIG9uIGl0LiAgKEluIHBy YWN0aWNlLCB0aGlzIGNvdWxkIG1vcmUgc2ltcGx5IGJlIHdyaXR0ZW4gYXMgYQorIyBzaGVs bCBzY3JpcHQsIGJ1dCB0aGlzIHdheSBpdCdzIG1vcmUgcG9ydGFibGUuKQorCisjIENvcHly aWdodCAoYykgMjAyMS0yMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91 cAorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOworCit1c2UgTUlNRTo6QmFzZTY0Owor CitteSAoJHRtcGRpciwgJGNta25hbWUsICRhbGcsICRiNjRkYXRhKSA9IEBBUkdWOworCitk aWUgdW5sZXNzICRhbGcgZXEgJ1JTQUVTX09BRVBfU0hBXzEnOworCitvcGVuIG15ICRmaCwg Jz46cmF3JywgIiR7dG1wZGlyfS9pbnB1dC50bXAiIG9yIGRpZSAkITsKK3ByaW50ICRmaCBk ZWNvZGVfYmFzZTY0KCRiNjRkYXRhKTsKK2Nsb3NlICRmaDsKKworc3lzdGVtKCdvcGVuc3Ns JywgJ3BrZXl1dGwnLCAnLWRlY3J5cHQnLAorCSctaW5rZXknLCAiJHt0bXBkaXJ9LyR7Y21r bmFtZX0ucGVtIiwgJy1wa2V5b3B0JywgJ3JzYV9wYWRkaW5nX21vZGU6b2FlcCcsCisJJy1p bicsICIke3RtcGRpcn0vaW5wdXQudG1wIiwgJy1vdXQnLCAiJHt0bXBkaXJ9L291dHB1dC50 bXAiKSA9PSAwIG9yIGRpZSAic3lzdGVtIGZhaWxlZDogJD8iOworCitvcGVuICRmaCwgJzw6 cmF3JywgIiR7dG1wZGlyfS9vdXRwdXQudG1wIiBvciBkaWUgJCE7CitteSAkZGF0YSA9ICcn OworCit3aGlsZSAoMSkgeworCW15ICRzdWNjZXNzID0gcmVhZCAkZmgsICRkYXRhLCAxMDAs IGxlbmd0aCgkZGF0YSk7CisJZGllICQhIGlmIG5vdCBkZWZpbmVkICRzdWNjZXNzOworCWxh c3QgaWYgbm90ICRzdWNjZXNzOworfQorCitjbG9zZSAkZmg7CisKK3VubGluayAiJHt0bXBk aXJ9L2lucHV0LnRtcCIsICIke3RtcGRpcn0vb3V0cHV0LnRtcCI7CisKK3ByaW50IGVuY29k ZV9iYXNlNjQoJGRhdGEpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbWVzb24uYnVpbGQgYi9z cmMvdGVzdC9tZXNvbi5idWlsZAppbmRleCAyNDFkOWQ0OGFhNTMuLjBkMzljZWRlYjEwOSAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rlc3QvbWVzb24u YnVpbGQKQEAgLTcsNiArNyw3IEBAIHN1YmRpcignc3Vic2NyaXB0aW9uJykKIHN1YmRpcign bW9kdWxlcycpCiAKIGlmIHNzbC5mb3VuZCgpCisgIHN1YmRpcignY29sdW1uX2VuY3J5cHRp b24nKQogICBzdWJkaXIoJ3NzbCcpCiBlbmRpZgogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2NvbHVtbl9lbmNyeXB0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY29sdW1uX2VuY3J5cHRpb24ub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uY2JkOGNkOTgzMzY5Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2x1bW5fZW5jcnlwdGlvbi5vdXQKQEAgLTAs MCArMSwxNDMgQEAKK1xzZXQgSElERV9DT0xVTU5fRU5DUllQVElPTiBmYWxzZQorQ1JFQVRF IFJPTEUgcmVncmVzc19lbmNfdXNlcjE7CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21r MSBXSVRIICgKKyAgICByZWFsbSA9ICd0ZXN0JworKTsKK0NPTU1FTlQgT04gQ09MVU1OIE1B U1RFUiBLRVkgY21rMSBJUyAnY29sdW1uIG1hc3RlciBrZXknOworQ1JFQVRFIENPTFVNTiBN QVNURVIgS0VZIGNtazFhIFdJVEggKAorICAgIHJlYWxtID0gJ3Rlc3QnCispOworQ1JFQVRF IENPTFVNTiBNQVNURVIgS0VZIGNtazIgV0lUSCAoCisgICAgcmVhbG0gPSAndGVzdDInCisp OworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGNtazJhIFdJVEggKAorICAgIHJlYWxtID0g J3Rlc3QyJworKTsKK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBXSVRIIFZB TFVFUyAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLAorICAgIGFsZ29yaXRobSA9 ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVF RicKKyk7CitDT01NRU5UIE9OIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIElTICdjb2x1 bW4gZW5jcnlwdGlvbiBrZXknOworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEg QUREIFZBTFVFICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhLAorICAgIGFsZ29y aXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhE RUFEQkVFRicKKyk7CistLSBkdXBsaWNhdGUKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtF WSBjZWsxIEFERCBWQUxVRSAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxYSwKKyAg ICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVl ID0gJ1x4REVBREJFRUYnCispOworRVJST1I6ICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgImNl azEiIGFscmVhZHkgaGFzIGRhdGEgZm9yIG1hc3RlciBrZXkgImNtazFhIgorQUxURVIgQ09M VU1OIEVOQ1JZUFRJT04gS0VZIGZhaWwgQUREIFZBTFVFICgKKyAgICBjb2x1bW5fbWFzdGVy X2tleSA9IGNtazFhLAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAg ICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyk7CitFUlJPUjogIGNvbHVtbiBl bmNyeXB0aW9uIGtleSAiZmFpbCIgZG9lcyBub3QgZXhpc3QKK0NSRUFURSBDT0xVTU4gRU5D UllQVElPTiBLRVkgY2VrMiBXSVRIIFZBTFVFUyAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkg PSBjbWsyLAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNy eXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyksCisoCisgICAgY29sdW1uX21hc3Rlcl9r ZXkgPSBjbWsyYSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAg ZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworQ1JFQVRFIENPTFVNTiBFTkNS WVBUSU9OIEtFWSBjZWs0IFdJVEggVkFMVUVTICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9 IGNtazEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5 cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsKK0NSRUFURSBUQUJMRSB0YmxfZmFpbCAo CisgICAgYSBpbnQsCisgICAgYiB0ZXh0LAorICAgIGMgdGV4dCBFTkNSWVBURUQgV0lUSCAo Y29sdW1uX2VuY3J5cHRpb25fa2V5ID0gbm90ZXhpc3QpCispOworRVJST1I6ICBjb2x1bW4g ZW5jcnlwdGlvbiBrZXkgIm5vdGV4aXN0IiBkb2VzIG5vdCBleGlzdAorQ1JFQVRFIFRBQkxF IHRibF8yOWYzICgKKyAgICBhIGludCwKKyAgICBiIHRleHQsCisgICAgYyB0ZXh0IEVOQ1JZ UFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKTsKK1xkIHRibF8y OWYzCisgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGJsXzI5ZjMiCisgQ29sdW1uIHwg IFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGEgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGIgICAgICB8IHRleHQgICAgfCAg ICAgICAgICAgfCAgICAgICAgICB8IAorIGMgICAgICB8IHRleHQgICAgfCAgICAgICAgICAg fCAgICAgICAgICB8IAorCitcZCsgdGJsXzI5ZjMKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnRibF8yOWYzIgorIENvbHVtbiB8ICBU eXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgfCBTdG9yYWdlICB8IEVu Y3J5cHRpb24gfCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdl ciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgIHwgICAgICAg ICAgICB8ICAgICAgICAgICAgICB8IAorIGIgICAgICB8IHRleHQgICAgfCAgICAgICAgICAg fCAgICAgICAgICB8ICAgICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAgfCAgICAgICAg ICAgICAgfCAKKyBjICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAg ICAgICAgIHwgZXh0ZXJuYWwgfCBjZWsxICAgICAgIHwgICAgICAgICAgICAgIHwgCisKK0NS RUFURSBUQUJMRSB0YmxfNDQ3ZiAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0CispOworQUxU RVIgVEFCTEUgdGJsXzQ0N2YgQUREIENPTFVNTiBjIHRleHQgRU5DUllQVEVEIFdJVEggKGNv bHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpOworXGQgdGJsXzQ0N2YKKyAgICAgICAgICAg ICAgVGFibGUgInB1YmxpYy50YmxfNDQ3ZiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgCisgYiAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgCisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisK K1xkKyB0YmxfNDQ3ZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFRhYmxlICJwdWJsaWMudGJsXzQ0N2YiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlv biB8IE51bGxhYmxlIHwgRGVmYXVsdCB8IFN0b3JhZ2UgIHwgRW5jcnlwdGlvbiB8IFN0YXRz IHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwg ICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAgIHwgICAgICAgICAg ICAgIHwgCisgYiAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAg ICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICB8IAorIGMgICAg ICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBleHRlcm5h bCB8IGNlazEgICAgICAgfCAgICAgICAgICAgICAgfCAKKworRFJPUCBDT0xVTU4gTUFTVEVS IEtFWSBjbWsxIFJFU1RSSUNUOyAgLS0gZmFpbAorRVJST1I6ICBjYW5ub3QgZHJvcCBjb2x1 bW4gbWFzdGVyIGtleSBjbWsxIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQK K0RFVEFJTDogIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBjZWsxIGRhdGEgZm9yIG1hc3RlciBr ZXkgY21rMSBkZXBlbmRzIG9uIGNvbHVtbiBtYXN0ZXIga2V5IGNtazEKK2NvbHVtbiBlbmNy eXB0aW9uIGtleSBjZWs0IGRhdGEgZm9yIG1hc3RlciBrZXkgY21rMSBkZXBlbmRzIG9uIGNv bHVtbiBtYXN0ZXIga2V5IGNtazEKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBk cm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCitBTFRFUiBDT0xVTU4gTUFTVEVSIEtF WSBjbWsyIFJFTkFNRSBUTyBjbWszOworQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBS RU5BTUUgVE8gY21rMzsgIC0tIGZhaWwKK0VSUk9SOiAgY29sdW1uIG1hc3RlciBrZXkgImNt azMiIGFscmVhZHkgZXhpc3RzCitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWt4IFJFTkFN RSBUTyBjbWt5OyAgLS0gZmFpbAorRVJST1I6ICBjb2x1bW4gbWFzdGVyIGtleSAiY21reCIg ZG9lcyBub3QgZXhpc3QKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsyIFJFTkFN RSBUTyBjZWszOworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgUkVOQU1FIFRP IGNlazM7ICAtLSBmYWlsCitFUlJPUjogIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAiY2VrMyIg YWxyZWFkeSBleGlzdHMKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWt4IFJFTkFN RSBUTyBjZWt5OyAgLS0gZmFpbAorRVJST1I6ICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgImNl a3giIGRvZXMgbm90IGV4aXN0CitTRVQgUk9MRSByZWdyZXNzX2VuY191c2VyMTsKK0RST1Ag Q09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazM7ICAtLSBmYWlsCitFUlJPUjogIG11c3QgYmUg b3duZXIgb2YgY29sdW1uIGVuY3J5cHRpb24ga2V5IGNlazMKK0RST1AgQ09MVU1OIE1BU1RF UiBLRVkgY21rMzsgIC0tIGZhaWwKK0VSUk9SOiAgbXVzdCBiZSBvd25lciBvZiBjb2x1bW4g bWFzdGVyIGtleSBjbWszCitSRVNFVCBST0xFOworQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkg Y21rMyBPV05FUiBUTyByZWdyZXNzX2VuY191c2VyMTsKK0FMVEVSIENPTFVNTiBFTkNSWVBU SU9OIEtFWSBjZWszIE9XTkVSIFRPIHJlZ3Jlc3NfZW5jX3VzZXIxOworU0VUIFJPTEUgcmVn cmVzc19lbmNfdXNlcjE7CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWszOyAgLS0g b2sgbm93CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGNtazM7ICAtLSBvayBub3cKK1JFU0VU IFJPTEU7CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBEUk9QIFZBTFVFIChj b2x1bW5fbWFzdGVyX2tleSA9IGNtazFhKTsKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtF WSBjZWsxIERST1AgVkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEpOyAgLS0gZmFp bAorRVJST1I6ICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgImNlazEiIGhhcyBubyBkYXRhIGZv ciBtYXN0ZXIga2V5ICJjbWsxYSIKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsx IERST1AgVkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gZmFpbCk7ICAtLSBmYWlsCitFUlJP UjogIGNvbHVtbiBtYXN0ZXIga2V5ICJmYWlsIiBkb2VzIG5vdCBleGlzdAorQUxURVIgQ09M VU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgRFJPUCBWQUxVRSAoY29sdW1uX21hc3Rlcl9rZXkg PSBjbWsxYSwgYWxnb3JpdGhtID0gJ2ZvbycpOyAgLS0gZmFpbAorRVJST1I6ICBhdHRyaWJ1 dGUgImFsZ29yaXRobSIgbXVzdCBub3QgYmUgc3BlY2lmaWVkCitEUk9QIENPTFVNTiBFTkNS WVBUSU9OIEtFWSBjZWs0OworRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgZmFpbDsKK0VS Uk9SOiAgY29sdW1uIGVuY3J5cHRpb24ga2V5ICJmYWlsIiBkb2VzIG5vdCBleGlzdAorRFJP UCBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxYTsKK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgZmFp bDsKK0VSUk9SOiAgY29sdW1uIG1hc3RlciBrZXkgImZhaWwiIGRvZXMgbm90IGV4aXN0CitE Uk9QIFJPTEUgcmVncmVzc19lbmNfdXNlcjE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL29iamVjdF9hZGRyZXNzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvb2JqZWN0X2FkZHJlc3Mub3V0CmluZGV4IGRhZGQ1OGU4YjljMy4uOTUxYWMxZThi NGQyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVjdF9hZGRy ZXNzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVjdF9hZGRyZXNz Lm91dApAQCAtMzcsNiArMzcsOCBAQCBDUkVBVEUgU0VSVkVSICJpbnRlZ2VyIiBGT1JFSUdO IERBVEEgV1JBUFBFUiBhZGRyX2ZkdzsKIENSRUFURSBVU0VSIE1BUFBJTkcgRk9SIHJlZ3Jl c3NfYWRkcl91c2VyIFNFUlZFUiAiaW50ZWdlciI7CiBBTFRFUiBERUZBVUxUIFBSSVZJTEVH RVMgRk9SIFJPTEUgcmVncmVzc19hZGRyX3VzZXIgSU4gU0NIRU1BIHB1YmxpYyBHUkFOVCBB TEwgT04gVEFCTEVTIFRPIHJlZ3Jlc3NfYWRkcl91c2VyOwogQUxURVIgREVGQVVMVCBQUklW SUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3NfYWRkcl91c2VyIFJFVk9LRSBERUxFVEUgT04gVEFC TEVTIEZST00gcmVncmVzc19hZGRyX3VzZXI7CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkg YWRkcl9jbWsgV0lUSCAocmVhbG0gPSAnJyk7CitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04g S0VZIGFkZHJfY2VrIFdJVEggVkFMVUVTIChjb2x1bW5fbWFzdGVyX2tleSA9IGFkZHJfY21r LCBlbmNyeXB0ZWRfdmFsdWUgPSAnJyk7CiAtLSB0aGlzIHRyYW5zZm9ybSB3b3VsZCBiZSBx dWl0ZSB1bnNhZmUgdG8gbGVhdmUgbHlpbmcgYXJvdW5kLAogLS0gZXhjZXB0IHRoYXQgdGhl IFNRTCBsYW5ndWFnZSBwYXlzIG5vIGF0dGVudGlvbiB0byB0cmFuc2Zvcm1zOgogQ1JFQVRF IFRSQU5TRk9STSBGT1IgaW50IExBTkdVQUdFIFNRTCAoCkBAIC0xMDYsNyArMTA4LDggQEAg QkVHSU4KIAkJKCd0ZXh0IHNlYXJjaCB0ZW1wbGF0ZScpLCAoJ3RleHQgc2VhcmNoIGNvbmZp Z3VyYXRpb24nKSwKIAkJKCdwb2xpY3knKSwgKCd1c2VyIG1hcHBpbmcnKSwgKCdkZWZhdWx0 IGFjbCcpLCAoJ3RyYW5zZm9ybScpLAogCQkoJ29wZXJhdG9yIG9mIGFjY2VzcyBtZXRob2Qn KSwgKCdmdW5jdGlvbiBvZiBhY2Nlc3MgbWV0aG9kJyksCi0JCSgncHVibGljYXRpb24gbmFt ZXNwYWNlJyksICgncHVibGljYXRpb24gcmVsYXRpb24nKQorCQkoJ3B1YmxpY2F0aW9uIG5h bWVzcGFjZScpLCAoJ3B1YmxpY2F0aW9uIHJlbGF0aW9uJyksCisJCSgnY29sdW1uIGVuY3J5 cHRpb24ga2V5JyksICgnY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEnKSwgKCdjb2x1bW4g bWFzdGVyIGtleScpCiAJTE9PUAogCQlGT1IgbmFtZXMgSU4gVkFMVUVTICgne2VpbnN9Jyks ICgne2FkZHJfbnNwLCB6d2VpfScpLCAoJ3tlaW5zLCB6d2VpLCBkcmVpfScpCiAJCUxPT1AK QEAgLTMyNiw2ICszMjksMjQgQEAgV0FSTklORzogIGVycm9yIGZvciBwdWJsaWNhdGlvbiBy ZWxhdGlvbix7YWRkcl9uc3AsendlaX0se306IGFyZ3VtZW50IGxpc3QgbGVuZ3QKIFdBUk5J Tkc6ICBlcnJvciBmb3IgcHVibGljYXRpb24gcmVsYXRpb24se2FkZHJfbnNwLHp3ZWl9LHtp bnRlZ2VyfTogcmVsYXRpb24gImFkZHJfbnNwLnp3ZWkiIGRvZXMgbm90IGV4aXN0CiBXQVJO SU5HOiAgZXJyb3IgZm9yIHB1YmxpY2F0aW9uIHJlbGF0aW9uLHtlaW5zLHp3ZWksZHJlaX0s e306IGFyZ3VtZW50IGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhhY3RseSAxCiBXQVJOSU5HOiAg ZXJyb3IgZm9yIHB1YmxpY2F0aW9uIHJlbGF0aW9uLHtlaW5zLHp3ZWksZHJlaX0se2ludGVn ZXJ9OiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJl aW5zLnp3ZWkuZHJlaSIKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIGVuY3J5cHRpb24g a2V5LHtlaW5zfSx7fTogY29sdW1uIGVuY3J5cHRpb24ga2V5ICJlaW5zIiBkb2VzIG5vdCBl eGlzdAorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkse2VpbnN9 LHtpbnRlZ2VyfTogY29sdW1uIGVuY3J5cHRpb24ga2V5ICJlaW5zIiBkb2VzIG5vdCBleGlz dAorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkse2FkZHJfbnNw LHp3ZWl9LHt9OiBuYW1lIGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhhY3RseSAxCitXQVJOSU5H OiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSx7YWRkcl9uc3AsendlaX0se2lu dGVnZXJ9OiBuYW1lIGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhhY3RseSAxCitXQVJOSU5HOiAg ZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSx7ZWlucyx6d2VpLGRyZWl9LHt9OiBu YW1lIGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhhY3RseSAxCitXQVJOSU5HOiAgZXJyb3IgZm9y IGNvbHVtbiBlbmNyeXB0aW9uIGtleSx7ZWlucyx6d2VpLGRyZWl9LHtpbnRlZ2VyfTogbmFt ZSBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4YWN0bHkgMQorV0FSTklORzogIGVycm9yIGZvciBj b2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSx7ZWluc30se306IGFyZ3VtZW50IGxpc3QgbGVu Z3RoIG11c3QgYmUgZXhhY3RseSAxCitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNy eXB0aW9uIGtleSBkYXRhLHtlaW5zfSx7aW50ZWdlcn06IGNvbHVtbiBlbmNyeXB0aW9uIGtl eSAiZWlucyIgZG9lcyBub3QgZXhpc3QKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIGVu Y3J5cHRpb24ga2V5IGRhdGEse2FkZHJfbnNwLHp3ZWl9LHt9OiBuYW1lIGxpc3QgbGVuZ3Ro IG11c3QgYmUgZXhhY3RseSAxCitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0 aW9uIGtleSBkYXRhLHthZGRyX25zcCx6d2VpfSx7aW50ZWdlcn06IG5hbWUgbGlzdCBsZW5n dGggbXVzdCBiZSBleGFjdGx5IDEKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIGVuY3J5 cHRpb24ga2V5IGRhdGEse2VpbnMsendlaSxkcmVpfSx7fTogbmFtZSBsaXN0IGxlbmd0aCBt dXN0IGJlIGV4YWN0bHkgMQorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlwdGlv biBrZXkgZGF0YSx7ZWlucyx6d2VpLGRyZWl9LHtpbnRlZ2VyfTogbmFtZSBsaXN0IGxlbmd0 aCBtdXN0IGJlIGV4YWN0bHkgMQorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gbWFzdGVy IGtleSx7ZWluc30se306IGNvbHVtbiBtYXN0ZXIga2V5ICJlaW5zIiBkb2VzIG5vdCBleGlz dAorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gbWFzdGVyIGtleSx7ZWluc30se2ludGVn ZXJ9OiBjb2x1bW4gbWFzdGVyIGtleSAiZWlucyIgZG9lcyBub3QgZXhpc3QKK1dBUk5JTkc6 ICBlcnJvciBmb3IgY29sdW1uIG1hc3RlciBrZXkse2FkZHJfbnNwLHp3ZWl9LHt9OiBuYW1l IGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhhY3RseSAxCitXQVJOSU5HOiAgZXJyb3IgZm9yIGNv bHVtbiBtYXN0ZXIga2V5LHthZGRyX25zcCx6d2VpfSx7aW50ZWdlcn06IG5hbWUgbGlzdCBs ZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIG1h c3RlciBrZXkse2VpbnMsendlaSxkcmVpfSx7fTogbmFtZSBsaXN0IGxlbmd0aCBtdXN0IGJl IGV4YWN0bHkgMQorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gbWFzdGVyIGtleSx7ZWlu cyx6d2VpLGRyZWl9LHtpbnRlZ2VyfTogbmFtZSBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4YWN0 bHkgMQogLS0gdGhlc2Ugb2JqZWN0IHR5cGVzIGNhbm5vdCBiZSBxdWFsaWZpZWQgbmFtZXMK IFNFTEVDVCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ2xhbmd1YWdlJywgJ3tvbmV9JywgJ3t9 Jyk7CiBFUlJPUjogIGxhbmd1YWdlICJvbmUiIGRvZXMgbm90IGV4aXN0CkBAIC0zODEsNiAr NDAyLDE0IEBAIFNFTEVDVCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ3N1YnNjcmlwdGlvbics ICd7b25lfScsICd7fScpOwogRVJST1I6ICBzdWJzY3JpcHRpb24gIm9uZSIgZG9lcyBub3Qg ZXhpc3QKIFNFTEVDVCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ3N1YnNjcmlwdGlvbicsICd7 b25lLHR3b30nLCAne30nKTsKIEVSUk9SOiAgbmFtZSBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4 YWN0bHkgMQorU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygnY29sdW1uIGVuY3J5cHRp b24ga2V5JywgJ3tvbmV9JywgJ3t9Jyk7CitFUlJPUjogIGNvbHVtbiBlbmNyeXB0aW9uIGtl eSAib25lIiBkb2VzIG5vdCBleGlzdAorU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygn Y29sdW1uIGVuY3J5cHRpb24ga2V5JywgJ3tvbmUsdHdvfScsICd7fScpOworRVJST1I6ICBu YW1lIGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhhY3RseSAxCitTRUxFQ1QgcGdfZ2V0X29iamVj dF9hZGRyZXNzKCdjb2x1bW4gbWFzdGVyIGtleScsICd7b25lfScsICd7fScpOworRVJST1I6 ICBjb2x1bW4gbWFzdGVyIGtleSAib25lIiBkb2VzIG5vdCBleGlzdAorU0VMRUNUIHBnX2dl dF9vYmplY3RfYWRkcmVzcygnY29sdW1uIG1hc3RlciBrZXknLCAne29uZSx0d299JywgJ3t9 Jyk7CitFUlJPUjogIG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKIC0tIHRl c3Qgc3VjY2Vzc2Z1bCBjYXNlcwogV0lUSCBvYmplY3RzICh0eXBlLCBuYW1lLCBhcmdzKSBB UyAoVkFMVUVTCiAJCQkJKCd0YWJsZScsICd7YWRkcl9uc3AsIGdlbnRhYmxlfSc6OnRleHRb XSwgJ3t9Jzo6dGV4dFtdKSwKQEAgLTQwMyw2ICs0MzIsOSBAQCBXSVRIIG9iamVjdHMgKHR5 cGUsIG5hbWUsIGFyZ3MpIEFTIChWQUxVRVMKIAkJCQkoJ3R5cGUnLCAne2FkZHJfbnNwLmdl bmVudW19JywgJ3t9JyksCiAJCQkJKCdjYXN0JywgJ3tpbnQ4fScsICd7aW50NH0nKSwKIAkJ CQkoJ2NvbGxhdGlvbicsICd7ZGVmYXVsdH0nLCAne30nKSwKKwkJCQkoJ2NvbHVtbiBlbmNy eXB0aW9uIGtleScsICd7YWRkcl9jZWt9JywgJ3t9JyksCisJCQkJKCdjb2x1bW4gZW5jcnlw dGlvbiBrZXkgZGF0YScsICd7YWRkcl9jZWt9JywgJ3thZGRyX2Nta30nKSwKKwkJCQkoJ2Nv bHVtbiBtYXN0ZXIga2V5JywgJ3thZGRyX2Nta30nLCAne30nKSwKIAkJCQkoJ3RhYmxlIGNv bnN0cmFpbnQnLCAne2FkZHJfbnNwLCBnZW50YWJsZSwgYV9jaGt9JywgJ3t9JyksCiAJCQkJ KCdkb21haW4gY29uc3RyYWludCcsICd7YWRkcl9uc3AuZ2VuZG9tYWlufScsICd7ZG9tY29u c3RyfScpLAogCQkJCSgnY29udmVyc2lvbicsICd7cGdfY2F0YWxvZywga29pOF9yX3RvX21p Y30nLCAne30nKSwKQEAgLTQ0OCw1OSArNDgwLDYyIEBAIFNFTEVDVCAocGdfaWRlbnRpZnlf b2JqZWN0KGFkZHIxLmNsYXNzaWQsIGFkZHIxLm9iamlkLCBhZGRyMS5vYmpzdWJpZCkpLios CiAJCQlwZ19pZGVudGlmeV9vYmplY3RfYXNfYWRkcmVzcyhjbGFzc2lkLCBvYmppZCwgb2Jq c3ViaWQpIGlvYSh0eXAsbm1zLGFyZ3MpLAogCQkJcGdfZ2V0X29iamVjdF9hZGRyZXNzKHR5 cCwgbm1zLCBpb2EuYXJncykgYXMgYWRkcjIKIAlPUkRFUiBCWSBhZGRyMS5jbGFzc2lkLCBh ZGRyMS5vYmppZCwgYWRkcjEub2Jqc3ViaWQ7Ci0gICAgICAgICAgIHR5cGUgICAgICAgICAg ICB8ICAgc2NoZW1hICAgfCAgICAgICBuYW1lICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlkZW50aXR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg P2NvbHVtbj8gCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gZGVmYXVs dCBhY2wgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8 IGZvciByb2xlIHJlZ3Jlc3NfYWRkcl91c2VyIGluIHNjaGVtYSBwdWJsaWMgb24gdGFibGVz ICAgICAgICAgICAgICAgIHwgdAotIGRlZmF1bHQgYWNsICAgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCBmb3Igcm9sZSByZWdyZXNzX2FkZHJfdXNl ciBvbiB0YWJsZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKLSB0eXBl ICAgICAgICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyB8IF9pbnQ0ICAgICAgICAgICAg IHwgaW50ZWdlcltdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCB0Ci0gdHlwZSAgICAgICAgICAgICAgICAgICAgICB8IGFk ZHJfbnNwICAgfCBnZW5jb21wdHlwZSAgICAgICB8IGFkZHJfbnNwLmdlbmNvbXB0eXBlICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAotIHR5 cGUgICAgICAgICAgICAgICAgICAgICAgfCBhZGRyX25zcCAgIHwgZ2VuZW51bSAgICAgICAg ICAgfCBhZGRyX25zcC5nZW5lbnVtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IHQKLSB0eXBlICAgICAgICAgICAgICAgICAgICAgIHwg YWRkcl9uc3AgICB8IGdlbmRvbWFpbiAgICAgICAgIHwgYWRkcl9uc3AuZ2VuZG9tYWluICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0Ci0g ZnVuY3Rpb24gICAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgfCAgICAgICAgICAgICAg ICAgICB8IHBnX2NhdGFsb2cucGdfaWRlbnRpZnlfb2JqZWN0KHBnX2NhdGFsb2cub2lkLHBn X2NhdGFsb2cub2lkLGludGVnZXIpIHwgdAotIGFnZ3JlZ2F0ZSAgICAgICAgICAgICAgICAg fCBhZGRyX25zcCAgIHwgICAgICAgICAgICAgICAgICAgfCBhZGRyX25zcC5nZW5hZ2dyKGlu dGVnZXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQK LSBwcm9jZWR1cmUgICAgICAgICAgICAgICAgIHwgYWRkcl9uc3AgICB8ICAgICAgICAgICAg ICAgICAgIHwgYWRkcl9uc3AucHJvYyhpbnRlZ2VyKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCB0Ci0gc2VxdWVuY2UgICAgICAgICAgICAgICAg ICB8IGFkZHJfbnNwICAgfCBnZW50YWJsZV9hX3NlcSAgICB8IGFkZHJfbnNwLmdlbnRhYmxl X2Ffc2VxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg dAotIHRhYmxlICAgICAgICAgICAgICAgICAgICAgfCBhZGRyX25zcCAgIHwgZ2VudGFibGUg ICAgICAgICAgfCBhZGRyX25zcC5nZW50YWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKLSB0YWJsZSBjb2x1bW4gICAgICAgICAg ICAgIHwgYWRkcl9uc3AgICB8IGdlbnRhYmxlICAgICAgICAgIHwgYWRkcl9uc3AuZ2VudGFi bGUuYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCB0Ci0gaW5kZXggICAgICAgICAgICAgICAgICAgICB8IGFkZHJfbnNwICAgfCBnZW50YWJs ZV9wa2V5ICAgICB8IGFkZHJfbnNwLmdlbnRhYmxlX3BrZXkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAotIHRhYmxlICAgICAgICAgICAgICAg ICAgICAgfCBhZGRyX25zcCAgIHwgcGFydHRhYmxlICAgICAgICAgfCBhZGRyX25zcC5wYXJ0 dGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHQKLSBpbmRleCAgICAgICAgICAgICAgICAgICAgIHwgYWRkcl9uc3AgICB8IHBhcnR0 YWJsZV9wa2V5ICAgIHwgYWRkcl9uc3AucGFydHRhYmxlX3BrZXkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0Ci0gdmlldyAgICAgICAgICAgICAg ICAgICAgICB8IGFkZHJfbnNwICAgfCBnZW52aWV3ICAgICAgICAgICB8IGFkZHJfbnNwLmdl bnZpZXcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgdAotIG1hdGVyaWFsaXplZCB2aWV3ICAgICAgICAgfCBhZGRyX25zcCAgIHwgZ2Vu bWF0dmlldyAgICAgICAgfCBhZGRyX25zcC5nZW5tYXR2aWV3ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKLSBmb3JlaWduIHRhYmxlICAg ICAgICAgICAgIHwgYWRkcl9uc3AgICB8IGdlbmZ0YWJsZSAgICAgICAgIHwgYWRkcl9uc3Au Z2VuZnRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCB0Ci0gZm9yZWlnbiB0YWJsZSBjb2x1bW4gICAgICB8IGFkZHJfbnNwICAgfCBn ZW5mdGFibGUgICAgICAgICB8IGFkZHJfbnNwLmdlbmZ0YWJsZS5hICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAotIHJvbGUgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgcmVncmVzc19hZGRyX3VzZXIgfCByZWdyZXNz X2FkZHJfdXNlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IHQKLSBzZXJ2ZXIgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8 IGFkZHJfZnNlcnYgICAgICAgIHwgYWRkcl9mc2VydiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0Ci0gdXNlciBtYXBwaW5n ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IHJlZ3Jl c3NfYWRkcl91c2VyIG9uIHNlcnZlciBpbnRlZ2VyICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgdAotIGZvcmVpZ24tZGF0YSB3cmFwcGVyICAgICAgfCAgICAgICAgICAg IHwgYWRkcl9mZHcgICAgICAgICAgfCBhZGRyX2ZkdyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKLSBhY2Nlc3MgbWV0 aG9kICAgICAgICAgICAgIHwgICAgICAgICAgICB8IGJ0cmVlICAgICAgICAgICAgIHwgYnRy ZWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCB0Ci0gb3BlcmF0b3Igb2YgYWNjZXNzIG1ldGhvZCB8ICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICB8IG9wZXJhdG9yIDEgKGludGVnZXIsIGludGVnZXIp IG9mIHBnX2NhdGFsb2cuaW50ZWdlcl9vcHMgVVNJTkcgYnRyZWUgIHwgdAotIGZ1bmN0aW9u IG9mIGFjY2VzcyBtZXRob2QgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCBm dW5jdGlvbiAyIChpbnRlZ2VyLCBpbnRlZ2VyKSBvZiBwZ19jYXRhbG9nLmludGVnZXJfb3Bz IFVTSU5HIGJ0cmVlICB8IHQKLSBkZWZhdWx0IHZhbHVlICAgICAgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgZm9yIGFkZHJfbnNwLmdlbnRhYmxlLmIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0Ci0gY2FzdCAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8 IChiaWdpbnQgQVMgaW50ZWdlcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgdAotIHRhYmxlIGNvbnN0cmFpbnQgICAgICAgICAgfCBhZGRy X25zcCAgIHwgICAgICAgICAgICAgICAgICAgfCBhX2NoayBvbiBhZGRyX25zcC5nZW50YWJs ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKLSBkb21h aW4gY29uc3RyYWludCAgICAgICAgIHwgYWRkcl9uc3AgICB8ICAgICAgICAgICAgICAgICAg IHwgZG9tY29uc3RyIG9uIGFkZHJfbnNwLmdlbmRvbWFpbiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCB0Ci0gY29udmVyc2lvbiAgICAgICAgICAgICAgICB8IHBn X2NhdGFsb2cgfCBrb2k4X3JfdG9fbWljICAgICB8IHBnX2NhdGFsb2cua29pOF9yX3RvX21p YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAotIGxh bmd1YWdlICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgcGxwZ3NxbCAgICAgICAg ICAgfCBwbHBnc3FsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IHQKLSBzY2hlbWEgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICB8IGFkZHJfbnNwICAgICAgICAgIHwgYWRkcl9uc3AgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0Ci0g b3BlcmF0b3IgY2xhc3MgICAgICAgICAgICB8IHBnX2NhdGFsb2cgfCBpbnQ0X29wcyAgICAg ICAgICB8IHBnX2NhdGFsb2cuaW50NF9vcHMgVVNJTkcgYnRyZWUgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgdAotIG9wZXJhdG9yICAgICAgICAgICAgICAgICAg fCBwZ19jYXRhbG9nIHwgICAgICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nLisoaW50ZWdl cixpbnRlZ2VyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQK LSBydWxlICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgIl9SRVRVUk4iIG9uIGFkZHJfbnNwLmdlbnZpZXcgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCB0Ci0gdHJpZ2dlciAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IHQgb24gYWRkcl9uc3AuZ2Vu dGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg dAotIG9wZXJhdG9yIGZhbWlseSAgICAgICAgICAgfCBwZ19jYXRhbG9nIHwgaW50ZWdlcl9v cHMgICAgICAgfCBwZ19jYXRhbG9nLmludGVnZXJfb3BzIFVTSU5HIGJ0cmVlICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKLSBwb2xpY3kgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgZ2VucG9sIG9uIGFkZHJf bnNwLmdlbnRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCB0Ci0gc3RhdGlzdGljcyBvYmplY3QgICAgICAgICB8IGFkZHJfbnNwICAgfCBnZW50YWJs ZV9zdGF0ICAgICB8IGFkZHJfbnNwLmdlbnRhYmxlX3N0YXQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAotIGNvbGxhdGlvbiAgICAgICAgICAg ICAgICAgfCBwZ19jYXRhbG9nIHwgImRlZmF1bHQiICAgICAgICAgfCBwZ19jYXRhbG9nLiJk ZWZhdWx0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHQKLSB0cmFuc2Zvcm0gICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgIHwgZm9yIGludGVnZXIgb24gbGFuZ3VhZ2Ugc3FsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0Ci0gdGV4dCBzZWFyY2ggZGljdGlv bmFyeSAgICB8IGFkZHJfbnNwICAgfCBhZGRyX3RzX2RpY3QgICAgICB8IGFkZHJfbnNwLmFk ZHJfdHNfZGljdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgdAotIHRleHQgc2VhcmNoIHBhcnNlciAgICAgICAgfCBhZGRyX25zcCAgIHwgYWRk cl90c19wcnMgICAgICAgfCBhZGRyX25zcC5hZGRyX3RzX3BycyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKLSB0ZXh0IHNlYXJjaCBjb25m aWd1cmF0aW9uIHwgYWRkcl9uc3AgICB8IGFkZHJfdHNfY29uZiAgICAgIHwgYWRkcl9uc3Au YWRkcl90c19jb25mICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCB0Ci0gdGV4dCBzZWFyY2ggdGVtcGxhdGUgICAgICB8IGFkZHJfbnNwICAgfCBh ZGRyX3RzX3RlbXAgICAgICB8IGFkZHJfbnNwLmFkZHJfdHNfdGVtcCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAotIHN1YnNjcmlwdGlvbiAg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgcmVncmVzc19hZGRyX3N1YiAgfCByZWdyZXNz X2FkZHJfc3ViICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IHQKLSBwdWJsaWNhdGlvbiAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8 IGFkZHJfcHViICAgICAgICAgIHwgYWRkcl9wdWIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0Ci0gcHVibGljYXRpb24g cmVsYXRpb24gICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IGFkZHJf bnNwLmdlbnRhYmxlIGluIHB1YmxpY2F0aW9uIGFkZHJfcHViICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgdAotIHB1YmxpY2F0aW9uIG5hbWVzcGFjZSAgICAgfCAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgfCBhZGRyX25zcCBpbiBwdWJsaWNhdGlvbiBhZGRyX3B1 Yl9zY2hlbWEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKLSg1MCByb3dzKQor ICAgICAgICAgICAgdHlwZSAgICAgICAgICAgIHwgICBzY2hlbWEgICB8ICAgICAgIG5hbWUg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnRpdHkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCA/Y29sdW1uPyAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCisgZGVmYXVsdCBhY2wgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCBmb3Igcm9sZSByZWdyZXNzX2FkZHJfdXNl ciBpbiBzY2hlbWEgcHVibGljIG9uIHRhYmxlcyAgICAgICAgICAgICAgICB8IHQKKyBkZWZh dWx0IGFjbCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICB8IGZvciByb2xlIHJlZ3Jlc3NfYWRkcl91c2VyIG9uIHRhYmxlcyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgdAorIHR5cGUgICAgICAgICAgICAgICAgICAgICAgIHwg cGdfY2F0YWxvZyB8IF9pbnQ0ICAgICAgICAgICAgIHwgaW50ZWdlcltdICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0Cisg dHlwZSAgICAgICAgICAgICAgICAgICAgICAgfCBhZGRyX25zcCAgIHwgZ2VuY29tcHR5cGUg ICAgICAgfCBhZGRyX25zcC5nZW5jb21wdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IHQKKyB0eXBlICAgICAgICAgICAgICAgICAgICAg ICB8IGFkZHJfbnNwICAgfCBnZW5lbnVtICAgICAgICAgICB8IGFkZHJfbnNwLmdlbmVudW0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg dAorIHR5cGUgICAgICAgICAgICAgICAgICAgICAgIHwgYWRkcl9uc3AgICB8IGdlbmRvbWFp biAgICAgICAgIHwgYWRkcl9uc3AuZ2VuZG9tYWluICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0CisgZnVuY3Rpb24gICAgICAgICAgICAg ICAgICAgfCBwZ19jYXRhbG9nIHwgICAgICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nLnBn X2lkZW50aWZ5X29iamVjdChwZ19jYXRhbG9nLm9pZCxwZ19jYXRhbG9nLm9pZCxpbnRlZ2Vy KSB8IHQKKyBhZ2dyZWdhdGUgICAgICAgICAgICAgICAgICB8IGFkZHJfbnNwICAgfCAgICAg ICAgICAgICAgICAgICB8IGFkZHJfbnNwLmdlbmFnZ3IoaW50ZWdlcikgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAorIHByb2NlZHVyZSAgICAgICAg ICAgICAgICAgIHwgYWRkcl9uc3AgICB8ICAgICAgICAgICAgICAgICAgIHwgYWRkcl9uc3Au cHJvYyhpbnRlZ2VyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCB0Cisgc2VxdWVuY2UgICAgICAgICAgICAgICAgICAgfCBhZGRyX25zcCAgIHwg Z2VudGFibGVfYV9zZXEgICAgfCBhZGRyX25zcC5nZW50YWJsZV9hX3NlcSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKKyB0YWJsZSAgICAgICAg ICAgICAgICAgICAgICB8IGFkZHJfbnNwICAgfCBnZW50YWJsZSAgICAgICAgICB8IGFkZHJf bnNwLmdlbnRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgdAorIHRhYmxlIGNvbHVtbiAgICAgICAgICAgICAgIHwgYWRkcl9uc3Ag ICB8IGdlbnRhYmxlICAgICAgICAgIHwgYWRkcl9uc3AuZ2VudGFibGUuYiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0CisgaW5kZXggICAg ICAgICAgICAgICAgICAgICAgfCBhZGRyX25zcCAgIHwgZ2VudGFibGVfcGtleSAgICAgfCBh ZGRyX25zcC5nZW50YWJsZV9wa2V5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IHQKKyB0YWJsZSAgICAgICAgICAgICAgICAgICAgICB8IGFkZHJf bnNwICAgfCBwYXJ0dGFibGUgICAgICAgICB8IGFkZHJfbnNwLnBhcnR0YWJsZSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAorIGluZGV4 ICAgICAgICAgICAgICAgICAgICAgIHwgYWRkcl9uc3AgICB8IHBhcnR0YWJsZV9wa2V5ICAg IHwgYWRkcl9uc3AucGFydHRhYmxlX3BrZXkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCB0CisgdmlldyAgICAgICAgICAgICAgICAgICAgICAgfCBh ZGRyX25zcCAgIHwgZ2VudmlldyAgICAgICAgICAgfCBhZGRyX25zcC5nZW52aWV3ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKKyBt YXRlcmlhbGl6ZWQgdmlldyAgICAgICAgICB8IGFkZHJfbnNwICAgfCBnZW5tYXR2aWV3ICAg ICAgICB8IGFkZHJfbnNwLmdlbm1hdHZpZXcgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgdAorIGZvcmVpZ24gdGFibGUgICAgICAgICAgICAg IHwgYWRkcl9uc3AgICB8IGdlbmZ0YWJsZSAgICAgICAgIHwgYWRkcl9uc3AuZ2VuZnRhYmxl ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0 CisgZm9yZWlnbiB0YWJsZSBjb2x1bW4gICAgICAgfCBhZGRyX25zcCAgIHwgZ2VuZnRhYmxl ICAgICAgICAgfCBhZGRyX25zcC5nZW5mdGFibGUuYSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKKyByb2xlICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCByZWdyZXNzX2FkZHJfdXNlciB8IHJlZ3Jlc3NfYWRkcl91 c2VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgdAorIHNlcnZlciAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8IGFkZHJf ZnNlcnYgICAgICAgIHwgYWRkcl9mc2VydiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0CisgdXNlciBtYXBwaW5nICAgICAg ICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX2Fk ZHJfdXNlciBvbiBzZXJ2ZXIgaW50ZWdlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IHQKKyBmb3JlaWduLWRhdGEgd3JhcHBlciAgICAgICB8ICAgICAgICAgICAgfCBh ZGRyX2ZkdyAgICAgICAgICB8IGFkZHJfZmR3ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAorIGFjY2VzcyBtZXRob2Qg ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IGJ0cmVlICAgICAgICAgICAgIHwgYnRyZWUg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCB0Cisgb3BlcmF0b3Igb2YgYWNjZXNzIG1ldGhvZCAgfCAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgfCBvcGVyYXRvciAxIChpbnRlZ2VyLCBpbnRlZ2VyKSBv ZiBwZ19jYXRhbG9nLmludGVnZXJfb3BzIFVTSU5HIGJ0cmVlICB8IHQKKyBmdW5jdGlvbiBv ZiBhY2Nlc3MgbWV0aG9kICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IGZ1 bmN0aW9uIDIgKGludGVnZXIsIGludGVnZXIpIG9mIHBnX2NhdGFsb2cuaW50ZWdlcl9vcHMg VVNJTkcgYnRyZWUgIHwgdAorIGRlZmF1bHQgdmFsdWUgICAgICAgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgZm9yIGFkZHJfbnNwLmdlbnRhYmxlLmIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0CisgY2FzdCAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg fCAoYmlnaW50IEFTIGludGVnZXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IHQKKyB0YWJsZSBjb25zdHJhaW50ICAgICAgICAgICB8IGFk ZHJfbnNwICAgfCAgICAgICAgICAgICAgICAgICB8IGFfY2hrIG9uIGFkZHJfbnNwLmdlbnRh YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAorIGRv bWFpbiBjb25zdHJhaW50ICAgICAgICAgIHwgYWRkcl9uc3AgICB8ICAgICAgICAgICAgICAg ICAgIHwgZG9tY29uc3RyIG9uIGFkZHJfbnNwLmdlbmRvbWFpbiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCB0CisgY29udmVyc2lvbiAgICAgICAgICAgICAgICAg fCBwZ19jYXRhbG9nIHwga29pOF9yX3RvX21pYyAgICAgfCBwZ19jYXRhbG9nLmtvaThfcl90 b19taWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQK KyBsYW5ndWFnZSAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCBwbHBnc3FsICAg ICAgICAgICB8IHBscGdzcWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAorIHNjaGVtYSAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICB8IGFkZHJfbnNwICAgICAgICAgIHwgYWRkcl9uc3AgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCB0Cisgb3BlcmF0b3IgY2xhc3MgICAgICAgICAgICAgfCBwZ19jYXRhbG9nIHwgaW50NF9v cHMgICAgICAgICAgfCBwZ19jYXRhbG9nLmludDRfb3BzIFVTSU5HIGJ0cmVlICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKKyBvcGVyYXRvciAgICAgICAgICAg ICAgICAgICB8IHBnX2NhdGFsb2cgfCAgICAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cu KyhpbnRlZ2VyLGludGVnZXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgdAorIHJ1bGUgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgIHwgIl9SRVRVUk4iIG9uIGFkZHJfbnNwLmdlbnZpZXcgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0CisgdHJpZ2dlciAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCB0IG9uIGFk ZHJfbnNwLmdlbnRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IHQKKyBvcGVyYXRvciBmYW1pbHkgICAgICAgICAgICB8IHBnX2NhdGFsb2cg fCBpbnRlZ2VyX29wcyAgICAgICB8IHBnX2NhdGFsb2cuaW50ZWdlcl9vcHMgVVNJTkcgYnRy ZWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAorIHBvbGljeSAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgZ2Vu cG9sIG9uIGFkZHJfbnNwLmdlbnRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCB0Cisgc3RhdGlzdGljcyBvYmplY3QgICAgICAgICAgfCBhZGRyX25z cCAgIHwgZ2VudGFibGVfc3RhdCAgICAgfCBhZGRyX25zcC5nZW50YWJsZV9zdGF0ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKKyBjb2xsYXRp b24gICAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgfCAiZGVmYXVsdCIgICAgICAgICB8 IHBnX2NhdGFsb2cuImRlZmF1bHQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgdAorIHRyYW5zZm9ybSAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgZm9yIGludGVnZXIgb24gbGFuZ3VhZ2Ug c3FsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0CisgdGV4 dCBzZWFyY2ggZGljdGlvbmFyeSAgICAgfCBhZGRyX25zcCAgIHwgYWRkcl90c19kaWN0ICAg ICAgfCBhZGRyX25zcC5hZGRyX3RzX2RpY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IHQKKyB0ZXh0IHNlYXJjaCBwYXJzZXIgICAgICAgICB8 IGFkZHJfbnNwICAgfCBhZGRyX3RzX3BycyAgICAgICB8IGFkZHJfbnNwLmFkZHJfdHNfcHJz ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAor IHRleHQgc2VhcmNoIGNvbmZpZ3VyYXRpb24gIHwgYWRkcl9uc3AgICB8IGFkZHJfdHNfY29u ZiAgICAgIHwgYWRkcl9uc3AuYWRkcl90c19jb25mICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCB0CisgdGV4dCBzZWFyY2ggdGVtcGxhdGUgICAg ICAgfCBhZGRyX25zcCAgIHwgYWRkcl90c190ZW1wICAgICAgfCBhZGRyX25zcC5hZGRyX3Rz X3RlbXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IHQKKyBzdWJzY3JpcHRpb24gICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCByZWdyZXNz X2FkZHJfc3ViICB8IHJlZ3Jlc3NfYWRkcl9zdWIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAorIHB1YmxpY2F0aW9uICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICB8IGFkZHJfcHViICAgICAgICAgIHwgYWRkcl9wdWIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCB0CisgcHVibGljYXRpb24gcmVsYXRpb24gICAgICAgfCAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgfCBhZGRyX25zcC5nZW50YWJsZSBpbiBwdWJsaWNhdGlvbiBhZGRy X3B1YiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKKyBwdWJsaWNhdGlvbiBuYW1l c3BhY2UgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IGFkZHJfbnNw IGluIHB1YmxpY2F0aW9uIGFkZHJfcHViX3NjaGVtYSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgdAorIGNvbHVtbiBtYXN0ZXIga2V5ICAgICAgICAgIHwgICAgICAgICAgICB8 IGFkZHJfY21rICAgICAgICAgIHwgYWRkcl9jbWsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0CisgY29sdW1uIGVuY3J5 cHRpb24ga2V5ICAgICAgfCAgICAgICAgICAgIHwgYWRkcl9jZWsgICAgICAgICAgfCBhZGRy X2NlayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IHQKKyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSB8ICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICB8IG9mIGFkZHJfY2VrIGZvciBhZGRyX2NtayAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAorKDUzIHJvd3Mp CiAKIC0tLQogLS0tIENsZWFudXAgcmVzb3VyY2VzCkBAIC01MTQsNiArNTQ5LDggQEAgZHJv cCBjYXNjYWRlcyB0byB1c2VyIG1hcHBpbmcgZm9yIHJlZ3Jlc3NfYWRkcl91c2VyIG9uIHNl cnZlciBpbnRlZ2VyCiBEUk9QIFBVQkxJQ0FUSU9OIGFkZHJfcHViOwogRFJPUCBQVUJMSUNB VElPTiBhZGRyX3B1Yl9zY2hlbWE7CiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2FkZHJf c3ViOworRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgYWRkcl9jZWs7CitEUk9QIENPTFVN TiBNQVNURVIgS0VZIGFkZHJfY21rOwogRFJPUCBTQ0hFTUEgYWRkcl9uc3AgQ0FTQ0FERTsK IE5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMTQgb3RoZXIgb2JqZWN0cwogREVUQUlMOiAg ZHJvcCBjYXNjYWRlcyB0byB0ZXh0IHNlYXJjaCBkaWN0aW9uYXJ5IGFkZHJfdHNfZGljdApA QCAtNTQ5LDYgKzU4Niw5IEBAIFdJVEggb2JqZWN0cyAoY2xhc3NpZCwgb2JqaWQsIG9ianN1 YmlkKSBBUyAoVkFMVUVTCiAgICAgKCdwZ190eXBlJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBu byB0eXBlCiAgICAgKCdwZ19jYXN0Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjYXN0CiAg ICAgKCdwZ19jb2xsYXRpb24nOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNvbGxhdGlvbgor ICAgICgncGdfY29sZW5ja2V5Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb2x1bW4gZW5j cnlwdGlvbiBrZXkKKyAgICAoJ3BnX2NvbGVuY2tleWRhdGEnOjpyZWdjbGFzcywgMCwgMCks IC0tIG5vIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhCisgICAgKCdwZ19jb2xtYXN0ZXJr ZXknOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNvbHVtbiBtYXN0ZXIga2V5CiAgICAgKCdw Z19jb25zdHJhaW50Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb25zdHJhaW50CiAgICAg KCdwZ19jb252ZXJzaW9uJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb252ZXJzaW9uCiAg ICAgKCdwZ19hdHRyZGVmJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBkZWZhdWx0IGF0dHJp YnV0ZQpAQCAtNTc5LDYgKzYxOSw3IEBAIFdJVEggb2JqZWN0cyAoY2xhc3NpZCwgb2JqaWQs IG9ianN1YmlkKSBBUyAoVkFMVUVTCiAgICAgKCdwZ19ldmVudF90cmlnZ2VyJzo6cmVnY2xh c3MsIDAsIDApLCAtLSBubyBldmVudCB0cmlnZ2VyCiAgICAgKCdwZ19wb2xpY3knOjpyZWdj bGFzcywgMCwgMCksIC0tIG5vIHBvbGljeQogICAgICgncGdfcHVibGljYXRpb24nOjpyZWdj bGFzcywgMCwgMCksIC0tIG5vIHB1YmxpY2F0aW9uCisgICAgKCdwZ19wdWJsaWNhdGlvbl9u YW1lc3BhY2UnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIHB1YmxpY2F0aW9uIG5hbWVzcGFj ZQogICAgICgncGdfcHVibGljYXRpb25fcmVsJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBw dWJsaWNhdGlvbiByZWxhdGlvbgogICAgICgncGdfc3Vic2NyaXB0aW9uJzo6cmVnY2xhc3Ms IDAsIDApLCAtLSBubyBzdWJzY3JpcHRpb24KICAgICAoJ3BnX3RyYW5zZm9ybSc6OnJlZ2Ns YXNzLCAwLCAwKSAtLSBubyB0cmFuc2Zvcm1hdGlvbgpAQCAtNjMwLDUgKzY3MSw5IEBAIE9S REVSIEJZIG9iamVjdHMuY2xhc3NpZCwgb2JqZWN0cy5vYmppZCwgb2JqZWN0cy5vYmpzdWJp ZDsKICgiKHN1YnNjcmlwdGlvbiwsLCkiKXwoIihzdWJzY3JpcHRpb24sLCkiKXxOVUxMCiAo IihwdWJsaWNhdGlvbiwsLCkiKXwoIihwdWJsaWNhdGlvbiwsKSIpfE5VTEwKICgiKCIicHVi bGljYXRpb24gcmVsYXRpb24iIiwsLCkiKXwoIigiInB1YmxpY2F0aW9uIHJlbGF0aW9uIiIs LCkiKXxOVUxMCisoIigiInB1YmxpY2F0aW9uIG5hbWVzcGFjZSIiLCwsKSIpfCgiKCIicHVi bGljYXRpb24gbmFtZXNwYWNlIiIsLCkiKXxOVUxMCisoIigiImNvbHVtbiBtYXN0ZXIga2V5 IiIsLCwpIil8KCIoIiJjb2x1bW4gbWFzdGVyIGtleSIiLCwpIil8TlVMTAorKCIoIiJjb2x1 bW4gZW5jcnlwdGlvbiBrZXkiIiwsLCkiKXwoIigiImNvbHVtbiBlbmNyeXB0aW9uIGtleSIi LCwpIil8TlVMTAorKCIoIiJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSIiLCwsKSIpfCgi KCIiY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEiIiwsKSIpfE5VTEwKIC0tIHJlc3RvcmUg bm9ybWFsIG91dHB1dCBtb2RlCiBcYVx0CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL29pZGpvaW5zLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lk am9pbnMub3V0CmluZGV4IDIxNWViODk5YmUzZS4uMmFhMGUxNjMyMzE3IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dApAQCAtNzMsNiArNzMsOCBAQCBOT1RJ Q0U6ICBjaGVja2luZyBwZ190eXBlIHt0eXBiYXNldHlwZX0gPT4gcGdfdHlwZSB7b2lkfQog Tk9USUNFOiAgY2hlY2tpbmcgcGdfdHlwZSB7dHlwY29sbGF0aW9ufSA9PiBwZ19jb2xsYXRp b24ge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX2F0dHJpYnV0ZSB7YXR0cmVsaWR9ID0+ IHBnX2NsYXNzIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19hdHRyaWJ1dGUge2F0dHR5 cGlkfSA9PiBwZ190eXBlIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19hdHRyaWJ1dGUg e2F0dGNla30gPT4gcGdfY29sZW5ja2V5IHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19h dHRyaWJ1dGUge2F0dHJlYWx0eXBpZH0gPT4gcGdfdHlwZSB7b2lkfQogTk9USUNFOiAgY2hl Y2tpbmcgcGdfYXR0cmlidXRlIHthdHRjb2xsYXRpb259ID0+IHBnX2NvbGxhdGlvbiB7b2lk fQogTk9USUNFOiAgY2hlY2tpbmcgcGdfY2xhc3Mge3JlbG5hbWVzcGFjZX0gPT4gcGdfbmFt ZXNwYWNlIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19jbGFzcyB7cmVsdHlwZX0gPT4g cGdfdHlwZSB7b2lkfQpAQCAtMjY2LDMgKzI2OCw3IEBAIE5PVElDRTogIGNoZWNraW5nIHBn X3N1YnNjcmlwdGlvbiB7c3ViZGJpZH0gPT4gcGdfZGF0YWJhc2Uge29pZH0KIE5PVElDRTog IGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbiB7c3Vib3duZXJ9ID0+IHBnX2F1dGhpZCB7b2lk fQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uX3JlbCB7c3JzdWJpZH0gPT4g cGdfc3Vic2NyaXB0aW9uIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRp b25fcmVsIHtzcnJlbGlkfSA9PiBwZ19jbGFzcyB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcg cGdfY29sbWFzdGVya2V5IHtjbWtvd25lcn0gPT4gcGdfYXV0aGlkIHtvaWR9CitOT1RJQ0U6 ICBjaGVja2luZyBwZ19jb2xlbmNrZXkge2Nla293bmVyfSA9PiBwZ19hdXRoaWQge29pZH0K K05PVElDRTogIGNoZWNraW5nIHBnX2NvbGVuY2tleWRhdGEge2NrZGNla2lkfSA9PiBwZ19j b2xlbmNrZXkge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX2NvbGVuY2tleWRhdGEge2Nr ZGNta2lkfSA9PiBwZ19jb2xtYXN0ZXJrZXkge29pZH0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL29wcl9zYW5pdHkub3V0CmluZGV4IDMzMGViMGY3NjU2Yi4uNjQ2NTA3ZjAyOTBj IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKQEAgLTE3 NSwxMyArMTc1LDE0IEBAIFdIRVJFIHAxLm9pZCAhPSBwMi5vaWQgQU5ECiBPUkRFUiBCWSAx LCAyOwogICAgICAgICAgcHJvYXJndHlwZXMgICAgICAgICB8ICAgICAgIHByb2FyZ3R5cGVz ICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgYnl0ZWEgICAgICAgICAgICAgICAgICAgICAgIHwgcGdfZW5jcnlw dGVkX2RldAogIGJpZ2ludCAgICAgICAgICAgICAgICAgICAgICB8IHhpZDgKICB0ZXh0ICAg ICAgICAgICAgICAgICAgICAgICAgfCBjaGFyYWN0ZXIKICB0ZXh0ICAgICAgICAgICAgICAg ICAgICAgICAgfCBjaGFyYWN0ZXIgdmFyeWluZwogIHRpbWVzdGFtcCB3aXRob3V0IHRpbWUg em9uZSB8IHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZQogIGJpdCAgICAgICAgICAgICAgICAg ICAgICAgICB8IGJpdCB2YXJ5aW5nCiAgdHhpZF9zbmFwc2hvdCAgICAgICAgICAgICAgIHwg cGdfc25hcHNob3QKLSg2IHJvd3MpCisoNyByb3dzKQogCiBTRUxFQ1QgRElTVElOQ1QgcDEu cHJvYXJndHlwZXNbMV06OnJlZ3R5cGUsIHAyLnByb2FyZ3R5cGVzWzFdOjpyZWd0eXBlCiBG Uk9NIHBnX3Byb2MgQVMgcDEsIHBnX3Byb2MgQVMgcDIKQEAgLTE5NywxMiArMTk4LDEzIEBA IFdIRVJFIHAxLm9pZCAhPSBwMi5vaWQgQU5ECiBPUkRFUiBCWSAxLCAyOwogICAgICAgICAg cHJvYXJndHlwZXMgICAgICAgICB8ICAgICAgIHByb2FyZ3R5cGVzICAgICAgICAKIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Ynl0ZWEgICAgICAgICAgICAgICAgICAgICAgIHwgcGdfZW5jcnlwdGVkX2RldAogIGludGVn ZXIgICAgICAgICAgICAgICAgICAgICB8IHhpZAogIHRpbWVzdGFtcCB3aXRob3V0IHRpbWUg em9uZSB8IHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZQogIGJpdCAgICAgICAgICAgICAgICAg ICAgICAgICB8IGJpdCB2YXJ5aW5nCiAgdHhpZF9zbmFwc2hvdCAgICAgICAgICAgICAgIHwg cGdfc25hcHNob3QKICBhbnlyYW5nZSAgICAgICAgICAgICAgICAgICAgfCBhbnltdWx0aXJh bmdlCi0oNSByb3dzKQorKDYgcm93cykKIAogU0VMRUNUIERJU1RJTkNUIHAxLnByb2FyZ3R5 cGVzWzJdOjpyZWd0eXBlLCBwMi5wcm9hcmd0eXBlc1syXTo6cmVndHlwZQogRlJPTSBwZ19w cm9jIEFTIHAxLCBwZ19wcm9jIEFTIHAyCkBAIC04NDEsNiArODQzLDggQEAgeGlkOGdlKHhp ZDgseGlkOCkKIHhpZDhlcSh4aWQ4LHhpZDgpCiB4aWQ4bmUoeGlkOCx4aWQ4KQogeGlkOGNt cCh4aWQ4LHhpZDgpCitwZ19lbmNyeXB0ZWRfZGV0X2VxKHBnX2VuY3J5cHRlZF9kZXQscGdf ZW5jcnlwdGVkX2RldCkKK3BnX2VuY3J5cHRlZF9kZXRfbmUocGdfZW5jcnlwdGVkX2RldCxw Z19lbmNyeXB0ZWRfZGV0KQogLS0gcmVzdG9yZSBub3JtYWwgb3V0cHV0IG1vZGUKIFxhXHQK IC0tIExpc3Qgb2YgZnVuY3Rpb25zIHVzZWQgYnkgbGlicHEncyBmZS1sb2JqLmMKQEAgLTk4 OCw3ICs5OTIsOSBAQCBXSEVSRSBjLmNhc3RtZXRob2QgPSAnYicgQU5ECiAgeG1sICAgICAg ICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICB8ICAgICAgICAwIHwgYQogIHhtbCAgICAg ICAgICAgICAgIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCAgICAgICAgMCB8IGEKICB4bWwgICAg ICAgICAgICAgICB8IGNoYXJhY3RlciAgICAgICAgIHwgICAgICAgIDAgfCBhCi0oMTAgcm93 cykKKyBieXRlYSAgICAgICAgICAgICB8IHBnX2VuY3J5cHRlZF9kZXQgIHwgICAgICAgIDAg fCBlCisgYnl0ZWEgICAgICAgICAgICAgfCBwZ19lbmNyeXB0ZWRfcm5kICB8ICAgICAgICAw IHwgZQorKDEyIHJvd3MpCiAKIC0tICoqKioqKioqKioqKioqKiogcGdfY29udmVyc2lvbiAq KioqKioqKioqKioqKioqCiAtLSBMb29rIGZvciBpbGxlZ2FsIHZhbHVlcyBpbiBwZ19jb252 ZXJzaW9uIGZpZWxkcy4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHJlcGFyZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByZXBhcmUub3V0Cmlu ZGV4IDU4MTVlMTdiMzljYy4uNDQ4MmE2NWQyNDU5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3ByZXBhcmUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHJlcGFyZS5vdXQKQEAgLTE2MiwyNiArMTYyLDI2IEBAIFBSRVBBUkUgcTcodW5r bm93bikgQVMKIC0tIERNTCBzdGF0ZW1lbnRzCiBQUkVQQVJFIHE4IEFTCiAgICAgVVBEQVRF IHRlbmsxIFNFVCBzdHJpbmd1MSA9ICQyIFdIRVJFIHVuaXF1ZTEgPSAkMTsKLVNFTEVDVCBu YW1lLCBzdGF0ZW1lbnQsIHBhcmFtZXRlcl90eXBlcywgcmVzdWx0X3R5cGVzIEZST00gcGdf cHJlcGFyZWRfc3RhdGVtZW50cworU0VMRUNUIG5hbWUsIHN0YXRlbWVudCwgcGFyYW1ldGVy X3R5cGVzLCBwYXJhbWV0ZXJfb3JpZ190YWJsZXMsIHBhcmFtZXRlcl9vcmlnX2NvbHVtbnMs IHJlc3VsdF90eXBlcyBGUk9NIHBnX3ByZXBhcmVkX3N0YXRlbWVudHMKICAgICBPUkRFUiBC WSBuYW1lOwotIG5hbWUgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZW1lbnQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICBwYXJhbWV0 ZXJfdHlwZXMgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfdHlwZXMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBxMiAgIHwgUFJFUEFSRSBxMih0ZXh0KSBBUyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IHt0ZXh0fSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwge25hbWUsYm9v bGVhbixib29sZWFufQotICAgICAgfCAgICAgICAgIFNFTEVDVCBkYXRuYW1lLCBkYXRpc3Rl bXBsYXRlLCBkYXRhbGxvd2Nvbm4gICAgICAgICAgICAgK3wgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAKLSAgICAgIHwgICAgICAgICBG Uk9NIHBnX2RhdGFiYXNlIFdIRVJFIGRhdG5hbWUgPSAkMTsgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgCi0gcTMgICB8IFBSRVBBUkUgcTModGV4dCwgaW50LCBmbG9hdCwgYm9vbGVhbiwgc21h bGxpbnQpIEFTICAgICAgICAgICAgICArfCB7dGV4dCxpbnRlZ2VyLCJkb3VibGUgcHJlY2lz aW9uIixib29sZWFuLHNtYWxsaW50fSB8IHtpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRl Z2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGlu dGVnZXIsaW50ZWdlcixpbnRlZ2VyLG5hbWUsbmFtZSxuYW1lfQotICAgICAgfCAgICAgICAg IFNFTEVDVCAqIEZST00gdGVuazEgV0hFUkUgc3RyaW5nNCA9ICQxIEFORCAoZm91ciA9ICQy IE9SK3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAKLSAgICAgIHwgICAgICAgICB0ZW4gPSAkMzo6YmlnaW50IE9SIHRydWUgPSAkNCBP UiBvZGQgPSAkNTo6aW50KSAgICAgICAgICt8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgCi0gICAgICB8ICAgICAgICAgT1JERVIgQlkg dW5pcXVlMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAotIHE1 ICAgfCBQUkVQQVJFIHE1KGludCwgdGV4dCkgQVMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgK3wge2ludGVnZXIsdGV4dH0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCB7aW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRl Z2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGlu dGVnZXIsaW50ZWdlcixuYW1lLG5hbWUsbmFtZX0KLSAgICAgIHwgICAgICAgICBTRUxFQ1Qg KiBGUk9NIHRlbmsxIFdIRVJFIHVuaXF1ZTEgPSAkMSBPUiBzdHJpbmd1MSA9ICQyICt8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgCi0g ICAgICB8ICAgICAgICAgT1JERVIgQlkgdW5pcXVlMTsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IAotIHE2ICAgfCBQUkVQQVJFIHE2IEFTICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3wge2ludGVnZXIsbmFt ZX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB7aW50ZWdlcixpbnRl Z2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGlu dGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixuYW1lLG5hbWUsbmFtZX0K LSAgICAgIHwgICAgIFNFTEVDVCAqIEZST00gdGVuazEgV0hFUkUgdW5pcXVlMSA9ICQxIEFO RCBzdHJpbmd1MSA9ICQyOyAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgCi0gcTcgICB8IFBSRVBBUkUgcTcodW5rbm93bikgQVMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCB7cGF0aH0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHt0ZXh0LHBhdGh9 Ci0gICAgICB8ICAgICBTRUxFQ1QgKiBGUk9NIHJvYWQgV0hFUkUgdGhlcGF0aCA9ICQxOyAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IAotIHE4ICAgfCBQUkVQQVJFIHE4IEFTICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3wge2ludGVnZXIs bmFtZX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAKLSAgICAgIHwg ICAgIFVQREFURSB0ZW5rMSBTRVQgc3RyaW5ndTEgPSAkMiBXSEVSRSB1bmlxdWUxID0gJDE7 ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgCisgbmFtZSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRl bWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHBh cmFtZXRlcl90eXBlcyAgICAgICAgICAgICAgICAgICB8IHBhcmFtZXRlcl9vcmlnX3RhYmxl cyB8IHBhcmFtZXRlcl9vcmlnX2NvbHVtbnMgfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfdHlwZXMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgcTIgICB8IFBSRVBBUkUgcTIodGV4dCkgQVMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCB7dGV4dH0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHstfSAgICAgICAgICAg ICAgICAgICB8IHswfSAgICAgICAgICAgICAgICAgICAgfCB7bmFtZSxib29sZWFuLGJvb2xl YW59CisgICAgICB8ICAgICAgICAgU0VMRUNUIGRhdG5hbWUsIGRhdGlzdGVtcGxhdGUsIGRh dGFsbG93Y29ubiAgICAgICAgICAgICArfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgfCAKKyAgICAgIHwgICAgICAgICBGUk9NIHBnX2RhdGFiYXNl IFdIRVJFIGRhdG5hbWUgPSAkMTsgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8IAorIHEzICAgfCBQUkVQQVJF IHEzKHRleHQsIGludCwgZmxvYXQsIGJvb2xlYW4sIHNtYWxsaW50KSBBUyAgICAgICAgICAg ICAgK3wge3RleHQsaW50ZWdlciwiZG91YmxlIHByZWNpc2lvbiIsYm9vbGVhbixzbWFsbGlu dH0gfCB7LSwtLC0sLSwtfSAgICAgICAgICAgfCB7MCwwLDAsMCwwfSAgICAgICAgICAgIHwg e2ludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVn ZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsbmFt ZSxuYW1lLG5hbWV9CisgICAgICB8ICAgICAgICAgU0VMRUNUICogRlJPTSB0ZW5rMSBXSEVS RSBzdHJpbmc0ID0gJDEgQU5EIChmb3VyID0gJDIgT1IrfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgIHwgICAgICAgICB0ZW4gPSAk Mzo6YmlnaW50IE9SIHRydWUgPSAkNCBPUiBvZGQgPSAkNTo6aW50KSAgICAgICAgICt8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8IAorICAgICAg fCAgICAgICAgIE9SREVSIEJZIHVuaXF1ZTE7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgIHwgCisgcTUgICB8IFBSRVBBUkUgcTUoaW50LCB0ZXh0KSBBUyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCB7aW50ZWdlcix0ZXh0fSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHstLC19ICAgICAgICAgICAgICAgICB8 IHswLDB9ICAgICAgICAgICAgICAgICAgfCB7aW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50 ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixp bnRlZ2VyLGludGVnZXIsaW50ZWdlcixuYW1lLG5hbWUsbmFtZX0KKyAgICAgIHwgICAgICAg ICBTRUxFQ1QgKiBGUk9NIHRlbmsxIFdIRVJFIHVuaXF1ZTEgPSAkMSBPUiBzdHJpbmd1MSA9 ICQyICt8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8 IAorICAgICAgfCAgICAgICAgIE9SREVSIEJZIHVuaXF1ZTE7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgIHwgCisgcTYgICB8IFBSRVBBUkUgcTYgQVMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCB7aW50ZWdlcixuYW1l fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHstLC19ICAgICAgICAg ICAgICAgICB8IHswLDB9ICAgICAgICAgICAgICAgICAgfCB7aW50ZWdlcixpbnRlZ2VyLGlu dGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIs aW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixuYW1lLG5hbWUsbmFtZX0KKyAgICAg IHwgICAgIFNFTEVDVCAqIEZST00gdGVuazEgV0hFUkUgdW5pcXVlMSA9ICQxIEFORCBzdHJp bmd1MSA9ICQyOyAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICB8IAorIHE3ICAgfCBQUkVQQVJFIHE3KHVua25vd24pIEFTICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3wge3BhdGh9ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB7LX0gICAgICAgICAgICAgICAgICAg fCB7MH0gICAgICAgICAgICAgICAgICAgIHwge3RleHQscGF0aH0KKyAgICAgIHwgICAgIFNF TEVDVCAqIEZST00gcm9hZCBXSEVSRSB0aGVwYXRoID0gJDE7ICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8 IAorIHE4ICAgfCBQUkVQQVJFIHE4IEFTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgK3wge2ludGVnZXIsbmFtZX0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCB7LSx0ZW5rMX0gICAgICAgICAgICAgfCB7MCwxNH0g ICAgICAgICAgICAgICAgIHwgCisgICAgICB8ICAgICBVUERBVEUgdGVuazEgU0VUIHN0cmlu Z3UxID0gJDIgV0hFUkUgdW5pcXVlMSA9ICQxOyAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAKICg2IHJvd3MpCiAKIC0tIHRl c3QgREVBTExPQ0FURSBBTEw7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3BzcWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRl eCBhN2Y1NzAwZWRjMTIuLjJlZTVmNzU0NmQ1YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3BzcWwub3V0CkBAIC0yMzcsNiArMjM3LDMxIEBAIFNFTEVDVCAzIEFTIHgsICdIZWxsbycs IDQgQVMgeSwgdHJ1ZSBBUyAiZGlydHlcbmFtZSIgXGdkZXNjIFxnCiAgMyB8IEhlbGxvICAg IHwgNCB8IHQKICgxIHJvdykKIAorLS0gXGdlbmNyCistLSAoVGhpcyBqdXN0IHRlc3RzIHRo ZSBwYXJhbWV0ZXIgcGFzc2luZzsgdGhlcmUgaXMgbm8gZW5jcnlwdGlvbiBoZXJlLikKK0NS RUFURSBUQUJMRSB0ZXN0X2dlbmNyIChhIGludCwgYiB0ZXh0KTsKK0lOU0VSVCBJTlRPIHRl c3RfZ2VuY3IgVkFMVUVTICgxLCAnb25lJykgXGdlbmNyCitTRUxFQ1QgKiBGUk9NIHRlc3Rf Z2VuY3IgV0hFUkUgYSA9IDEgXGdlbmNyCisgYSB8ICBiICAKKy0tLSstLS0tLQorIDEgfCBv bmUKKygxIHJvdykKKworSU5TRVJUIElOVE8gdGVzdF9nZW5jciBWQUxVRVMgKCQxLCAkMikg XGdlbmNyIDIgJ3R3bycKK1NFTEVDVCAqIEZST00gdGVzdF9nZW5jciBXSEVSRSBhIElOICgk MSwgJDIpIFxnZW5jciAyIDMKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMiB8IHR3bworKDEg cm93KQorCistLSB0ZXN0IHBhcnNlIGVycm9yCitTRUxFQ1QgKiBGUk9NIHRlc3RfZ2VuY3Ig V0hFUkUgYSA9IHggXGdlbmNyCitFUlJPUjogIGNvbHVtbiAieCIgZG9lcyBub3QgZXhpc3QK K0xJTkUgMTogU0VMRUNUICogRlJPTSB0ZXN0X2dlbmNyIFdIRVJFIGEgPSB4IAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIHRlc3QgYmluZCBl cnJvcgorU0VMRUNUICogRlJPTSB0ZXN0X2dlbmNyIFdIRVJFIGEgPSAkMSBcZ2VuY3IKK0VS Uk9SOiAgYmluZCBtZXNzYWdlIHN1cHBsaWVzIDAgcGFyYW1ldGVycywgYnV0IHByZXBhcmVk IHN0YXRlbWVudCAiIiByZXF1aXJlcyAxCiAtLSBcZ2V4ZWMKIGNyZWF0ZSB0ZW1wb3Jhcnkg dGFibGUgZ2V4ZWNfdGVzdChhIGludCwgYiB0ZXh0LCBjIGRhdGUsIGQgZmxvYXQpOwogc2Vs ZWN0IGZvcm1hdCgnY3JlYXRlIGluZGV4IG9uIGdleGVjX3Rlc3QoJUkpJywgYXR0bmFtZSkK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggOWRkMTM3NDE1ZTg2Li43 ZWJmNmZkYjI1YTEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVs ZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0x NDIzLDExICsxNDIzLDEzIEBAIHBnX3ByZXBhcmVkX3N0YXRlbWVudHN8IFNFTEVDVCBwLm5h bWUsCiAgICAgcC5zdGF0ZW1lbnQsCiAgICAgcC5wcmVwYXJlX3RpbWUsCiAgICAgcC5wYXJh bWV0ZXJfdHlwZXMsCisgICAgcC5wYXJhbWV0ZXJfb3JpZ190YWJsZXMsCisgICAgcC5wYXJh bWV0ZXJfb3JpZ19jb2x1bW5zLAogICAgIHAucmVzdWx0X3R5cGVzLAogICAgIHAuZnJvbV9z cWwsCiAgICAgcC5nZW5lcmljX3BsYW5zLAogICAgIHAuY3VzdG9tX3BsYW5zCi0gICBGUk9N IHBnX3ByZXBhcmVkX3N0YXRlbWVudCgpIHAobmFtZSwgc3RhdGVtZW50LCBwcmVwYXJlX3Rp bWUsIHBhcmFtZXRlcl90eXBlcywgcmVzdWx0X3R5cGVzLCBmcm9tX3NxbCwgZ2VuZXJpY19w bGFucywgY3VzdG9tX3BsYW5zKTsKKyAgIEZST00gcGdfcHJlcGFyZWRfc3RhdGVtZW50KCkg cChuYW1lLCBzdGF0ZW1lbnQsIHByZXBhcmVfdGltZSwgcGFyYW1ldGVyX3R5cGVzLCBwYXJh bWV0ZXJfb3JpZ190YWJsZXMsIHBhcmFtZXRlcl9vcmlnX2NvbHVtbnMsIHJlc3VsdF90eXBl cywgZnJvbV9zcWwsIGdlbmVyaWNfcGxhbnMsIGN1c3RvbV9wbGFucyk7CiBwZ19wcmVwYXJl ZF94YWN0c3wgU0VMRUNUIHAudHJhbnNhY3Rpb24sCiAgICAgcC5naWQsCiAgICAgcC5wcmVw YXJlZCwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHlwZV9zYW5p dHkub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90eXBlX3Nhbml0eS5vdXQKaW5k ZXggZDNhYzA4YzllZTNlLi4zNTcwOTVlMWI5YjYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvdHlwZV9zYW5pdHkub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvdHlwZV9zYW5pdHkub3V0CkBAIC03NSw3ICs3NSw5IEBAIE9SREVSIEJZIHQx Lm9pZDsKICA0NjAwIHwgcGdfYnJpbl9ibG9vbV9zdW1tYXJ5CiAgNDYwMSB8IHBnX2JyaW5f bWlubWF4X211bHRpX3N1bW1hcnkKICA1MDE3IHwgcGdfbWN2X2xpc3QKLSg2IHJvd3MpCisg ODI0MyB8IHBnX2VuY3J5cHRlZF9kZXQKKyA4MjQ0IHwgcGdfZW5jcnlwdGVkX3JuZAorKDgg cm93cykKIAogLS0gTWFrZSBzdXJlIHR5cGFycmF5IHBvaW50cyB0byBhICJ0cnVlIiBhcnJh eSB0eXBlIG9mIG91ciBvd24gYmFzZQogU0VMRUNUIHQxLm9pZCwgdDEudHlwbmFtZSBhcyBi YXNldHlwZSwgdDIudHlwbmFtZSBhcyBhcnJheXR5cGUsCkBAIC0xNzEsMTAgKzE3MywxMiBA QCBXSEVSRSB0MS50eXBpbnB1dCA9IHAxLm9pZCBBTkQgdDEudHlwdHlwZSBpbiAoJ2InLCAn cCcpIEFORCBOT1QKICAgICAodDEudHlwZWxlbSAhPSAwIEFORCB0MS50eXBsZW4gPCAwKSBB TkQgTk9UCiAgICAgKHAxLnByb3JldHR5cGUgPSB0MS5vaWQgQU5EIE5PVCBwMS5wcm9yZXRz ZXQpCiBPUkRFUiBCWSAxOwotIG9pZCAgfCAgdHlwbmFtZSAgfCBvaWQgfCBwcm9uYW1lIAot LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0tLQotIDE3OTAgfCByZWZjdXJzb3Ig fCAgNDYgfCB0ZXh0aW4KLSgxIHJvdykKKyBvaWQgIHwgICAgIHR5cG5hbWUgICAgICB8IG9p ZCAgfCBwcm9uYW1lIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0t LS0tCisgMTc5MCB8IHJlZmN1cnNvciAgICAgICAgfCAgIDQ2IHwgdGV4dGluCisgODI0MyB8 IHBnX2VuY3J5cHRlZF9kZXQgfCAxMjQ0IHwgYnl0ZWFpbgorIDgyNDQgfCBwZ19lbmNyeXB0 ZWRfcm5kIHwgMTI0NCB8IGJ5dGVhaW4KKygzIHJvd3MpCiAKIC0tIFZhcmxlbmEgYXJyYXkg dHlwZXMgd2lsbCBwb2ludCB0byBhcnJheV9pbgogLS0gRXhjZXB0aW9uIGFzIG9mIDguMTog aW50MnZlY3RvciBhbmQgb2lkdmVjdG9yIGhhdmUgdGhlaXIgb3duIEkvTyByb3V0aW5lcwpA QCAtMjIzLDEwICsyMjcsMTIgQEAgV0hFUkUgdDEudHlwb3V0cHV0ID0gcDEub2lkIEFORCB0 MS50eXB0eXBlIGluICgnYicsICdwJykgQU5EIE5PVAogICAgICAgKHAxLm9pZCA9ICdhcnJh eV9vdXQnOjpyZWdwcm9jIEFORAogICAgICAgIHQxLnR5cGVsZW0gIT0gMCBBTkQgdDEudHlw bGVuID0gLTEpKSkKIE9SREVSIEJZIDE7Ci0gb2lkICB8ICB0eXBuYW1lICB8IG9pZCB8IHBy b25hbWUgCi0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0rLS0tLS0tLS0tCi0gMTc5MCB8IHJl ZmN1cnNvciB8ICA0NyB8IHRleHRvdXQKLSgxIHJvdykKKyBvaWQgIHwgICAgIHR5cG5hbWUg ICAgICB8IG9pZCB8IHByb25hbWUgIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LSstLS0tLS0tLS0tCisgMTc5MCB8IHJlZmN1cnNvciAgICAgICAgfCAgNDcgfCB0ZXh0b3V0 CisgODI0MyB8IHBnX2VuY3J5cHRlZF9kZXQgfCAgMzEgfCBieXRlYW91dAorIDgyNDQgfCBw Z19lbmNyeXB0ZWRfcm5kIHwgIDMxIHwgYnl0ZWFvdXQKKygzIHJvd3MpCiAKIFNFTEVDVCB0 MS5vaWQsIHQxLnR5cG5hbWUsIHAxLm9pZCwgcDEucHJvbmFtZQogRlJPTSBwZ190eXBlIEFT IHQxLCBwZ19wcm9jIEFTIHAxCkBAIC0yODcsMTAgKzI5MywxMiBAQCBXSEVSRSB0MS50eXBy ZWNlaXZlID0gcDEub2lkIEFORCB0MS50eXB0eXBlIGluICgnYicsICdwJykgQU5EIE5PVAog ICAgICh0MS50eXBlbGVtICE9IDAgQU5EIHQxLnR5cGxlbiA8IDApIEFORCBOT1QKICAgICAo cDEucHJvcmV0dHlwZSA9IHQxLm9pZCBBTkQgTk9UIHAxLnByb3JldHNldCkKIE9SREVSIEJZ IDE7Ci0gb2lkICB8ICB0eXBuYW1lICB8IG9pZCAgfCBwcm9uYW1lICAKLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLQotIDE3OTAgfCByZWZjdXJzb3IgfCAyNDE0IHwg dGV4dHJlY3YKLSgxIHJvdykKKyBvaWQgIHwgICAgIHR5cG5hbWUgICAgICB8IG9pZCAgfCAg cHJvbmFtZSAgCistLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0t LQorIDE3OTAgfCByZWZjdXJzb3IgICAgICAgIHwgMjQxNCB8IHRleHRyZWN2CisgODI0MyB8 IHBnX2VuY3J5cHRlZF9kZXQgfCAyNDEyIHwgYnl0ZWFyZWN2CisgODI0NCB8IHBnX2VuY3J5 cHRlZF9ybmQgfCAyNDEyIHwgYnl0ZWFyZWN2CisoMyByb3dzKQogCiAtLSBWYXJsZW5hIGFy cmF5IHR5cGVzIHdpbGwgcG9pbnQgdG8gYXJyYXlfcmVjdgogLS0gRXhjZXB0aW9uIGFzIG9m IDguMTogaW50MnZlY3RvciBhbmQgb2lkdmVjdG9yIGhhdmUgdGhlaXIgb3duIEkvTyByb3V0 aW5lcwpAQCAtMzQ4LDEwICszNTYsMTIgQEAgV0hFUkUgdDEudHlwc2VuZCA9IHAxLm9pZCBB TkQgdDEudHlwdHlwZSBpbiAoJ2InLCAncCcpIEFORCBOT1QKICAgICAgIChwMS5vaWQgPSAn YXJyYXlfc2VuZCc6OnJlZ3Byb2MgQU5ECiAgICAgICAgdDEudHlwZWxlbSAhPSAwIEFORCB0 MS50eXBsZW4gPSAtMSkpKQogT1JERVIgQlkgMTsKLSBvaWQgIHwgIHR5cG5hbWUgIHwgb2lk ICB8IHByb25hbWUgIAotLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tCi0g MTc5MCB8IHJlZmN1cnNvciB8IDI0MTUgfCB0ZXh0c2VuZAotKDEgcm93KQorIG9pZCAgfCAg ICAgdHlwbmFtZSAgICAgIHwgb2lkICB8ICBwcm9uYW1lICAKKy0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tCisgMTc5MCB8IHJlZmN1cnNvciAgICAgICAg fCAyNDE1IHwgdGV4dHNlbmQKKyA4MjQzIHwgcGdfZW5jcnlwdGVkX2RldCB8IDI0MTMgfCBi eXRlYXNlbmQKKyA4MjQ0IHwgcGdfZW5jcnlwdGVkX3JuZCB8IDI0MTMgfCBieXRlYXNlbmQK KygzIHJvd3MpCiAKIFNFTEVDVCB0MS5vaWQsIHQxLnR5cG5hbWUsIHAxLm9pZCwgcDEucHJv bmFtZQogRlJPTSBwZ190eXBlIEFTIHQxLCBwZ19wcm9jIEFTIHAxCkBAIC03MDcsNiArNzE3 LDggQEAgQ1JFQVRFIFRBQkxFIHRhYl9jb3JlX3R5cGVzIEFTIFNFTEVDVAogICAndHh0Jzo6 dGV4dCwKICAgdHJ1ZTo6Ym9vbCwKICAgRSdcXHhERUFEQkVFRic6OmJ5dGVhLAorICBFJ1xc eERFQURCRUVGJzo6cGdfZW5jcnlwdGVkX3JuZCwKKyAgRSdcXHhERUFEQkVFRic6OnBnX2Vu Y3J5cHRlZF9kZXQsCiAgIEInMTAwMDEnOjpiaXQsCiAgIEInMTAwMDEnOjp2YXJiaXQgQVMg dmFyYml0LAogICAnMTIuMzQnOjptb25leSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVk dWxlCmluZGV4IDlmNjQ0YTBjMWIyYy4uZTY4YmNjZmRjODc5IDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv cGFyYWxsZWxfc2NoZWR1bGUKQEAgLTEyOSw2ICsxMjksOSBAQCB0ZXN0OiBwbGFuY2FjaGUg bGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUgY29u dmVyc2lvbiB0cgogIyAtLS0tLS0tLS0tCiB0ZXN0OiBwYXJ0aXRpb25fam9pbiBwYXJ0aXRp b25fcHJ1bmUgcmVsb3B0aW9ucyBoYXNoX3BhcnQgaW5kZXhpbmcgcGFydGl0aW9uX2FnZ3Jl Z2F0ZSBwYXJ0aXRpb25faW5mbyB0dXBsZXNvcnQgZXhwbGFpbiBjb21wcmVzc2lvbiBtZW1v aXplIHN0YXRzCiAKKyMgV0lQCit0ZXN0OiBjb2x1bW5fZW5jcnlwdGlvbgorCiAjIGV2ZW50 X3RyaWdnZXIgY2Fubm90IHJ1biBjb25jdXJyZW50bHkgd2l0aCBhbnkgdGVzdCB0aGF0IHJ1 bnMgRERMCiAjIG9pZGpvaW5zIGlzIHJlYWQtb25seSwgdGhvdWdoLCBhbmQgc2hvdWxkIHJ1 biBsYXRlIGZvciBiZXN0IGNvdmVyYWdlCiB0ZXN0OiBldmVudF90cmlnZ2VyIG9pZGpvaW5z CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3NfbWFpbi5jIGIvc3Jj L3Rlc3QvcmVncmVzcy9wZ19yZWdyZXNzX21haW4uYwppbmRleCBhNGIzNTRjOWU2YzAuLjhh ZDFmNDU4ZDUwMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdyZXNzX21h aW4uYworKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3NfbWFpbi5jCkBAIC04Miw3 ICs4Miw3IEBAIHBzcWxfc3RhcnRfdGVzdChjb25zdCBjaGFyICp0ZXN0bmFtZSwKIAkJCQkJ ICAgYmluZGlyID8gYmluZGlyIDogIiIsCiAJCQkJCSAgIGJpbmRpciA/ICIvIiA6ICIiLAog CQkJCQkgICBkYmxpc3QtPnN0ciwKLQkJCQkJICAgIi12IEhJREVfVEFCTEVBTT1vbiAtdiBI SURFX1RPQVNUX0NPTVBSRVNTSU9OPW9uIiwKKwkJCQkJICAgIi12IEhJREVfVEFCTEVBTT1v biAtdiBISURFX1RPQVNUX0NPTVBSRVNTSU9OPW9uIC12IEhJREVfQ09MVU1OX0VOQ1JZUFRJ T049b24iLAogCQkJCQkgICBpbmZpbGUsCiAJCQkJCSAgIG91dGZpbGUpOwogCWlmIChvZmZz ZXQgPj0gc2l6ZW9mKHBzcWxfY21kKSkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2NvbHVtbl9lbmNyeXB0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbHVt bl9lbmNyeXB0aW9uLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLmQwNTY3MzdhZDUxNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2NvbHVtbl9lbmNyeXB0aW9uLnNxbApAQCAtMCwwICsxLDEyNCBAQAorXHNldCBISURF X0NPTFVNTl9FTkNSWVBUSU9OIGZhbHNlCisKK0NSRUFURSBST0xFIHJlZ3Jlc3NfZW5jX3Vz ZXIxOworCitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBXSVRIICgKKyAgICByZWFs bSA9ICd0ZXN0JworKTsKKworQ09NTUVOVCBPTiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIElT ICdjb2x1bW4gbWFzdGVyIGtleSc7CisKK0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsx YSBXSVRIICgKKyAgICByZWFsbSA9ICd0ZXN0JworKTsKKworQ1JFQVRFIENPTFVNTiBNQVNU RVIgS0VZIGNtazIgV0lUSCAoCisgICAgcmVhbG0gPSAndGVzdDInCispOworCitDUkVBVEUg Q09MVU1OIE1BU1RFUiBLRVkgY21rMmEgV0lUSCAoCisgICAgcmVhbG0gPSAndGVzdDInCisp OworCitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgV0lUSCBWQUxVRVMgKAor ICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNf T0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOwor CitDT01NRU5UIE9OIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIElTICdjb2x1bW4gZW5j cnlwdGlvbiBrZXknOworCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBBREQg VkFMVUUgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEsCisgICAgYWxnb3JpdGht ID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURC RUVGJworKTsKKworLS0gZHVwbGljYXRlCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkg Y2VrMSBBREQgVkFMVUUgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEsCisgICAg YWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9 ICdceERFQURCRUVGJworKTsKKworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGZhaWwg QUREIFZBTFVFICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhLAorICAgIGFsZ29y aXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhE RUFEQkVFRicKKyk7CisKK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMiBXSVRI IFZBTFVFUyAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsyLAorICAgIGFsZ29yaXRo bSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFE QkVFRicKKyksCisoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsyYSwKKyAgICBhbGdv cml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4 REVBREJFRUYnCispOworCitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazQgV0lU SCBWQUxVRVMgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwKKyAgICBhbGdvcml0 aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVB REJFRUYnCispOworCitDUkVBVEUgVEFCTEUgdGJsX2ZhaWwgKAorICAgIGEgaW50LAorICAg IGIgdGV4dCwKKyAgICBjIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9u X2tleSA9IG5vdGV4aXN0KQorKTsKKworQ1JFQVRFIFRBQkxFIHRibF8yOWYzICgKKyAgICBh IGludCwKKyAgICBiIHRleHQsCisgICAgYyB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5f ZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKTsKKworXGQgdGJsXzI5ZjMKK1xkKyB0YmxfMjlm MworCitDUkVBVEUgVEFCTEUgdGJsXzQ0N2YgKAorICAgIGEgaW50LAorICAgIGIgdGV4dAor KTsKKworQUxURVIgVEFCTEUgdGJsXzQ0N2YgQUREIENPTFVNTiBjIHRleHQgRU5DUllQVEVE IFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpOworCitcZCB0YmxfNDQ3Zgor XGQrIHRibF80NDdmCisKK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBSRVNUUklDVDsg IC0tIGZhaWwKKworQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMiBSRU5BTUUgVE8gY21r MzsKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazEgUkVOQU1FIFRPIGNtazM7ICAtLSBm YWlsCitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWt4IFJFTkFNRSBUTyBjbWt5OyAgLS0g ZmFpbAorCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMiBSRU5BTUUgVE8gY2Vr MzsKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIFJFTkFNRSBUTyBjZWszOyAg LS0gZmFpbAorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNla3ggUkVOQU1FIFRPIGNl a3k7ICAtLSBmYWlsCisKK1NFVCBST0xFIHJlZ3Jlc3NfZW5jX3VzZXIxOworRFJPUCBDT0xV TU4gRU5DUllQVElPTiBLRVkgY2VrMzsgIC0tIGZhaWwKK0RST1AgQ09MVU1OIE1BU1RFUiBL RVkgY21rMzsgIC0tIGZhaWwKK1JFU0VUIFJPTEU7CitBTFRFUiBDT0xVTU4gTUFTVEVSIEtF WSBjbWszIE9XTkVSIFRPIHJlZ3Jlc3NfZW5jX3VzZXIxOworQUxURVIgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIGNlazMgT1dORVIgVE8gcmVncmVzc19lbmNfdXNlcjE7CitTRVQgUk9MRSBy ZWdyZXNzX2VuY191c2VyMTsKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazM7ICAt LSBvayBub3cKK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgY21rMzsgIC0tIG9rIG5vdworUkVT RVQgUk9MRTsKKworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgRFJPUCBWQUxV RSAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxYSk7CitBTFRFUiBDT0xVTU4gRU5DUllQVElP TiBLRVkgY2VrMSBEUk9QIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhKTsgIC0t IGZhaWwKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIERST1AgVkFMVUUgKGNv bHVtbl9tYXN0ZXJfa2V5ID0gZmFpbCk7ICAtLSBmYWlsCitBTFRFUiBDT0xVTU4gRU5DUllQ VElPTiBLRVkgY2VrMSBEUk9QIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhLCBh bGdvcml0aG0gPSAnZm9vJyk7ICAtLSBmYWlsCisKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04g S0VZIGNlazQ7CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBmYWlsOworCitEUk9QIENP TFVNTiBNQVNURVIgS0VZIGNtazFhOworRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBmYWlsOwor CitEUk9QIFJPTEUgcmVncmVzc19lbmNfdXNlcjE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9vYmplY3RfYWRkcmVzcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9v YmplY3RfYWRkcmVzcy5zcWwKaW5kZXggZTkxMDcyYTc1ZDFkLi5jOWY1ZjBjZWQ5ZjIgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29iamVjdF9hZGRyZXNzLnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9vYmplY3RfYWRkcmVzcy5zcWwKQEAgLTQwLDYgKzQw LDggQEAgQ1JFQVRFIFNFUlZFUiAiaW50ZWdlciIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgYWRk cl9mZHc7CiBDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiByZWdyZXNzX2FkZHJfdXNlciBTRVJW RVIgImludGVnZXIiOwogQUxURVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBST0xFIHJlZ3Jl c3NfYWRkcl91c2VyIElOIFNDSEVNQSBwdWJsaWMgR1JBTlQgQUxMIE9OIFRBQkxFUyBUTyBy ZWdyZXNzX2FkZHJfdXNlcjsKIEFMVEVSIERFRkFVTFQgUFJJVklMRUdFUyBGT1IgUk9MRSBy ZWdyZXNzX2FkZHJfdXNlciBSRVZPS0UgREVMRVRFIE9OIFRBQkxFUyBGUk9NIHJlZ3Jlc3Nf YWRkcl91c2VyOworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGFkZHJfY21rIFdJVEggKHJl YWxtID0gJycpOworQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBhZGRyX2NlayBXSVRI IFZBTFVFUyAoY29sdW1uX21hc3Rlcl9rZXkgPSBhZGRyX2NtaywgZW5jcnlwdGVkX3ZhbHVl ID0gJycpOwogLS0gdGhpcyB0cmFuc2Zvcm0gd291bGQgYmUgcXVpdGUgdW5zYWZlIHRvIGxl YXZlIGx5aW5nIGFyb3VuZCwKIC0tIGV4Y2VwdCB0aGF0IHRoZSBTUUwgbGFuZ3VhZ2UgcGF5 cyBubyBhdHRlbnRpb24gdG8gdHJhbnNmb3JtczoKIENSRUFURSBUUkFOU0ZPUk0gRk9SIGlu dCBMQU5HVUFHRSBTUUwgKApAQCAtOTgsNyArMTAwLDggQEAgQ1JFQVRFIFNUQVRJU1RJQ1Mg YWRkcl9uc3AuZ2VudGFibGVfc3RhdCBPTiBhLCBiIEZST00gYWRkcl9uc3AuZ2VudGFibGU7 CiAJCSgndGV4dCBzZWFyY2ggdGVtcGxhdGUnKSwgKCd0ZXh0IHNlYXJjaCBjb25maWd1cmF0 aW9uJyksCiAJCSgncG9saWN5JyksICgndXNlciBtYXBwaW5nJyksICgnZGVmYXVsdCBhY2wn KSwgKCd0cmFuc2Zvcm0nKSwKIAkJKCdvcGVyYXRvciBvZiBhY2Nlc3MgbWV0aG9kJyksICgn ZnVuY3Rpb24gb2YgYWNjZXNzIG1ldGhvZCcpLAotCQkoJ3B1YmxpY2F0aW9uIG5hbWVzcGFj ZScpLCAoJ3B1YmxpY2F0aW9uIHJlbGF0aW9uJykKKwkJKCdwdWJsaWNhdGlvbiBuYW1lc3Bh Y2UnKSwgKCdwdWJsaWNhdGlvbiByZWxhdGlvbicpLAorCQkoJ2NvbHVtbiBlbmNyeXB0aW9u IGtleScpLCAoJ2NvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhJyksICgnY29sdW1uIG1hc3Rl ciBrZXknKQogCUxPT1AKIAkJRk9SIG5hbWVzIElOIFZBTFVFUyAoJ3tlaW5zfScpLCAoJ3th ZGRyX25zcCwgendlaX0nKSwgKCd7ZWlucywgendlaSwgZHJlaX0nKQogCQlMT09QCkBAIC0x NDMsNiArMTQ2LDEwIEBAIENSRUFURSBTVEFUSVNUSUNTIGFkZHJfbnNwLmdlbnRhYmxlX3N0 YXQgT04gYSwgYiBGUk9NIGFkZHJfbnNwLmdlbnRhYmxlOwogU0VMRUNUIHBnX2dldF9vYmpl Y3RfYWRkcmVzcygncHVibGljYXRpb24nLCAne29uZSx0d299JywgJ3t9Jyk7CiBTRUxFQ1Qg cGdfZ2V0X29iamVjdF9hZGRyZXNzKCdzdWJzY3JpcHRpb24nLCAne29uZX0nLCAne30nKTsK IFNFTEVDVCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ3N1YnNjcmlwdGlvbicsICd7b25lLHR3 b30nLCAne30nKTsKK1NFTEVDVCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ2NvbHVtbiBlbmNy eXB0aW9uIGtleScsICd7b25lfScsICd7fScpOworU0VMRUNUIHBnX2dldF9vYmplY3RfYWRk cmVzcygnY29sdW1uIGVuY3J5cHRpb24ga2V5JywgJ3tvbmUsdHdvfScsICd7fScpOworU0VM RUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygnY29sdW1uIG1hc3RlciBrZXknLCAne29uZX0n LCAne30nKTsKK1NFTEVDVCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ2NvbHVtbiBtYXN0ZXIg a2V5JywgJ3tvbmUsdHdvfScsICd7fScpOwogCiAtLSB0ZXN0IHN1Y2Nlc3NmdWwgY2FzZXMK IFdJVEggb2JqZWN0cyAodHlwZSwgbmFtZSwgYXJncykgQVMgKFZBTFVFUwpAQCAtMTY2LDYg KzE3Myw5IEBAIENSRUFURSBTVEFUSVNUSUNTIGFkZHJfbnNwLmdlbnRhYmxlX3N0YXQgT04g YSwgYiBGUk9NIGFkZHJfbnNwLmdlbnRhYmxlOwogCQkJCSgndHlwZScsICd7YWRkcl9uc3Au Z2VuZW51bX0nLCAne30nKSwKIAkJCQkoJ2Nhc3QnLCAne2ludDh9JywgJ3tpbnQ0fScpLAog CQkJCSgnY29sbGF0aW9uJywgJ3tkZWZhdWx0fScsICd7fScpLAorCQkJCSgnY29sdW1uIGVu Y3J5cHRpb24ga2V5JywgJ3thZGRyX2Nla30nLCAne30nKSwKKwkJCQkoJ2NvbHVtbiBlbmNy eXB0aW9uIGtleSBkYXRhJywgJ3thZGRyX2Nla30nLCAne2FkZHJfY21rfScpLAorCQkJCSgn Y29sdW1uIG1hc3RlciBrZXknLCAne2FkZHJfY21rfScsICd7fScpLAogCQkJCSgndGFibGUg Y29uc3RyYWludCcsICd7YWRkcl9uc3AsIGdlbnRhYmxlLCBhX2Noa30nLCAne30nKSwKIAkJ CQkoJ2RvbWFpbiBjb25zdHJhaW50JywgJ3thZGRyX25zcC5nZW5kb21haW59JywgJ3tkb21j b25zdHJ9JyksCiAJCQkJKCdjb252ZXJzaW9uJywgJ3twZ19jYXRhbG9nLCBrb2k4X3JfdG9f bWljfScsICd7fScpLApAQCAtMjE5LDYgKzIyOSw4IEBAIENSRUFURSBTVEFUSVNUSUNTIGFk ZHJfbnNwLmdlbnRhYmxlX3N0YXQgT04gYSwgYiBGUk9NIGFkZHJfbnNwLmdlbnRhYmxlOwog RFJPUCBQVUJMSUNBVElPTiBhZGRyX3B1YjsKIERST1AgUFVCTElDQVRJT04gYWRkcl9wdWJf c2NoZW1hOwogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19hZGRyX3N1YjsKK0RST1AgQ09M VU1OIEVOQ1JZUFRJT04gS0VZIGFkZHJfY2VrOworRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBh ZGRyX2NtazsKIAogRFJPUCBTQ0hFTUEgYWRkcl9uc3AgQ0FTQ0FERTsKIApAQCAtMjQzLDYg KzI1NSw5IEBAIENSRUFURSBTVEFUSVNUSUNTIGFkZHJfbnNwLmdlbnRhYmxlX3N0YXQgT04g YSwgYiBGUk9NIGFkZHJfbnNwLmdlbnRhYmxlOwogICAgICgncGdfdHlwZSc6OnJlZ2NsYXNz LCAwLCAwKSwgLS0gbm8gdHlwZQogICAgICgncGdfY2FzdCc6OnJlZ2NsYXNzLCAwLCAwKSwg LS0gbm8gY2FzdAogICAgICgncGdfY29sbGF0aW9uJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBu byBjb2xsYXRpb24KKyAgICAoJ3BnX2NvbGVuY2tleSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0g bm8gY29sdW1uIGVuY3J5cHRpb24ga2V5CisgICAgKCdwZ19jb2xlbmNrZXlkYXRhJzo6cmVn Y2xhc3MsIDAsIDApLCAtLSBubyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YQorICAgICgn cGdfY29sbWFzdGVya2V5Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb2x1bW4gbWFzdGVy IGtleQogICAgICgncGdfY29uc3RyYWludCc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gY29u c3RyYWludAogICAgICgncGdfY29udmVyc2lvbic6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8g Y29udmVyc2lvbgogICAgICgncGdfYXR0cmRlZic6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8g ZGVmYXVsdCBhdHRyaWJ1dGUKQEAgLTI3Myw2ICsyODgsNyBAQCBDUkVBVEUgU1RBVElTVElD UyBhZGRyX25zcC5nZW50YWJsZV9zdGF0IE9OIGEsIGIgRlJPTSBhZGRyX25zcC5nZW50YWJs ZTsKICAgICAoJ3BnX2V2ZW50X3RyaWdnZXInOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGV2 ZW50IHRyaWdnZXIKICAgICAoJ3BnX3BvbGljeSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8g cG9saWN5CiAgICAgKCdwZ19wdWJsaWNhdGlvbic6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8g cHVibGljYXRpb24KKyAgICAoJ3BnX3B1YmxpY2F0aW9uX25hbWVzcGFjZSc6OnJlZ2NsYXNz LCAwLCAwKSwgLS0gbm8gcHVibGljYXRpb24gbmFtZXNwYWNlCiAgICAgKCdwZ19wdWJsaWNh dGlvbl9yZWwnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIHB1YmxpY2F0aW9uIHJlbGF0aW9u CiAgICAgKCdwZ19zdWJzY3JpcHRpb24nOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIHN1YnNj cmlwdGlvbgogICAgICgncGdfdHJhbnNmb3JtJzo6cmVnY2xhc3MsIDAsIDApIC0tIG5vIHRy YW5zZm9ybWF0aW9uCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcmVwYXJl LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByZXBhcmUuc3FsCmluZGV4IGM2MDk4ZGM5 NWNlZS4uN2RiNzg4NzM1YzdmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9w cmVwYXJlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcmVwYXJlLnNxbApAQCAt NzUsNyArNzUsNyBAQCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFIHE1X3ByZXBfbm9kYXRhIEFT IEVYRUNVVEUgcTUoMjAwLCAnRFRBQUFBJykKIFBSRVBBUkUgcTggQVMKICAgICBVUERBVEUg dGVuazEgU0VUIHN0cmluZ3UxID0gJDIgV0hFUkUgdW5pcXVlMSA9ICQxOwogCi1TRUxFQ1Qg bmFtZSwgc3RhdGVtZW50LCBwYXJhbWV0ZXJfdHlwZXMsIHJlc3VsdF90eXBlcyBGUk9NIHBn X3ByZXBhcmVkX3N0YXRlbWVudHMKK1NFTEVDVCBuYW1lLCBzdGF0ZW1lbnQsIHBhcmFtZXRl cl90eXBlcywgcGFyYW1ldGVyX29yaWdfdGFibGVzLCBwYXJhbWV0ZXJfb3JpZ19jb2x1bW5z LCByZXN1bHRfdHlwZXMgRlJPTSBwZ19wcmVwYXJlZF9zdGF0ZW1lbnRzCiAgICAgT1JERVIg QlkgbmFtZTsKIAogLS0gdGVzdCBERUFMTE9DQVRFIEFMTDsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5z cWwKaW5kZXggMTE0OWM2YTgzOWVmLi5lODhjNzBkMzAyNGMgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Bz cWwuc3FsCkBAIC0xMTksNiArMTE5LDIzIEBAIENSRUFURSBUQUJMRSBidWJ1YnUoYSBpbnQp IFxnZGVzYwogLS0gYWxsIG9uIG9uZSBsaW5lCiBTRUxFQ1QgMyBBUyB4LCAnSGVsbG8nLCA0 IEFTIHksIHRydWUgQVMgImRpcnR5XG5hbWUiIFxnZGVzYyBcZwogCisKKy0tIFxnZW5jcgor LS0gKFRoaXMganVzdCB0ZXN0cyB0aGUgcGFyYW1ldGVyIHBhc3Npbmc7IHRoZXJlIGlzIG5v IGVuY3J5cHRpb24gaGVyZS4pCisKK0NSRUFURSBUQUJMRSB0ZXN0X2dlbmNyIChhIGludCwg YiB0ZXh0KTsKK0lOU0VSVCBJTlRPIHRlc3RfZ2VuY3IgVkFMVUVTICgxLCAnb25lJykgXGdl bmNyCitTRUxFQ1QgKiBGUk9NIHRlc3RfZ2VuY3IgV0hFUkUgYSA9IDEgXGdlbmNyCisKK0lO U0VSVCBJTlRPIHRlc3RfZ2VuY3IgVkFMVUVTICgkMSwgJDIpIFxnZW5jciAyICd0d28nCitT RUxFQ1QgKiBGUk9NIHRlc3RfZ2VuY3IgV0hFUkUgYSBJTiAoJDEsICQyKSBcZ2VuY3IgMiAz CisKKy0tIHRlc3QgcGFyc2UgZXJyb3IKK1NFTEVDVCAqIEZST00gdGVzdF9nZW5jciBXSEVS RSBhID0geCBcZ2VuY3IKKy0tIHRlc3QgYmluZCBlcnJvcgorU0VMRUNUICogRlJPTSB0ZXN0 X2dlbmNyIFdIRVJFIGEgPSAkMSBcZ2VuY3IKKworCiAtLSBcZ2V4ZWMKIAogY3JlYXRlIHRl bXBvcmFyeSB0YWJsZSBnZXhlY190ZXN0KGEgaW50LCBiIHRleHQsIGMgZGF0ZSwgZCBmbG9h dCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC90eXBlX3Nhbml0eS5zcWwg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC90eXBlX3Nhbml0eS5zcWwKaW5kZXggNWVkYzFmMWY2 ZWQwLi4wZmZlNDVmZDM3MDcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3R5 cGVfc2FuaXR5LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC90eXBlX3Nhbml0eS5z cWwKQEAgLTUyOSw2ICs1MjksOCBAQCBDUkVBVEUgVEFCTEUgdGFiX2NvcmVfdHlwZXMgQVMg U0VMRUNUCiAgICd0eHQnOjp0ZXh0LAogICB0cnVlOjpib29sLAogICBFJ1xceERFQURCRUVG Jzo6Ynl0ZWEsCisgIEUnXFx4REVBREJFRUYnOjpwZ19lbmNyeXB0ZWRfcm5kLAorICBFJ1xc eERFQURCRUVGJzo6cGdfZW5jcnlwdGVkX2RldCwKICAgQicxMDAwMSc6OmJpdCwKICAgQicx MDAwMSc6OnZhcmJpdCBBUyB2YXJiaXQsCiAgICcxMi4zNCc6Om1vbmV5LAoKYmFzZS1jb21t aXQ6IDUyNjNjNmIwOTVjOWJhYzJhNGE3NDRiNzI0MjVlNjY5MDEyMWM3OWQKLS0gCjIuMzcu MwoK --------------HFQTtoftmxtSEYcroP4J1iNc--