Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vIlUe-00DTCk-1Z for pgsql-hackers@arkaria.postgresql.org; Tue, 11 Nov 2025 10:20:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vIlUc-005E96-0l for pgsql-hackers@arkaria.postgresql.org; Tue, 11 Nov 2025 10:20:54 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vIlUb-005E8y-18 for pgsql-hackers@lists.postgresql.org; Tue, 11 Nov 2025 10:20:53 +0000 Received: from mail-oi1-x22c.google.com ([2607:f8b0:4864:20::22c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vIlUZ-006WvL-0p for pgsql-hackers@lists.postgresql.org; Tue, 11 Nov 2025 10:20:52 +0000 Received: by mail-oi1-x22c.google.com with SMTP id 5614622812f47-44ffed84cccso712399b6e.0 for ; Tue, 11 Nov 2025 02:20:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1762856450; x=1763461250; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=hoAeYdUMCko3BPr/KMo3jR975h3X0AwjyltzlGY83lk=; b=ltkHG8M7pf9YsG/afOJj6aYlHKUZoOiX6PWuJraBmQ4DAXezYkdaBktId/x5cnemex dgoFKeGBaQhrNM/Se1xKcC8RBBR6Ida5wAb05iNA87vcgcqx6XJCcOpbQk5Ub6f4/9d1 m10IFu/bP4urCPs0yAKPh+7zikzJBzsVsPcJOT5PORREyg6sJ+V40qLMauVKt86w95JE TGA34498OR85+p4176h5Wv9nP2hIeJTvQBthCC5SdlFMLhKmR3ew3AULv5vxfm5Zvmyp vbAeOxl1dahz3aY4nOQ2CPXewSJcSWj5UgOisNJ51Q5ivJyt/gHf7Bmnp527Iy9cb9OL Kl6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762856450; x=1763461250; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=hoAeYdUMCko3BPr/KMo3jR975h3X0AwjyltzlGY83lk=; b=V/DQJTlSi/ufddz7xGerpkcqb5mbN0XCUwoCM6Q30G4+1mT1yAzth481jIVashvXjp 6faZ3kPU4b8XQF9tETa+YDaMiixQ4f5AfWBJRa+8UUnL4M9Nrk1r7J10fuPaAu0cF65s vQsBbEKA1VvyoUZILkpyJXb1MklLq6Z1sTBppRXkKbe4c3wkfp/rQNx6RDW25W3aGjhO 9XraXQxUMl1MK0+GINQ4AnNiKpOPZAst31uC13weoGlw/B4zULNvyksk+yduDH1HXyZ3 GR+boKwQc3r/jl/pMBE1Xl+pql1KG11B2ACqgH+ug/bX1zmt5Q+Ja3P9EkCRGoLAmloB wOZA== X-Forwarded-Encrypted: i=1; AJvYcCUNMyBeK89Tl1s1pfB2D1Uvt0r7fDpcs33rDRL4Cmhe9HPSM460ZwZ+A8QLk+BarPPaQB4Y/3qYadxIjsrp@lists.postgresql.org X-Gm-Message-State: AOJu0YwGfp2B0N8kWPycMiC6PYZqL8j6u6FRpQjMclvfAN2YoZNxdicz Xu3G9z34s47VVldjzwCILicgMsd2UKubUXBl81TPiQknrCWtMFVp3DObnq8cd5fLVMevv+LpKH8 Gw/fouURoffOecqQzfNbqeAYZdZu8BCU= X-Gm-Gg: ASbGncsE//E/W4QjoV7gT/PNEl/R4zBeFBHcIqgmqbjkIxm6wQlCYqm29zsAUacriCF PmzqvH6rSTNZtr0pPmoGW+GCYfY125lq/+7ITRnf/1kDjSP/5FSN0hiYUAKWn/r9cFoH6QSSqXG MekFEX+XpRGbMRabuIpUkg4UMm0PkE2bksB1Rea4yBpHcRpRLNraGHwNxjl2J0PXyLDKY2ty5rO y361dlDDYNLkjJxlCMOulIsuy19K45iIYfd+VlCrnnFEWNZ0j2bA+EOmEVdxBHU99CGNrKs8A== X-Google-Smtp-Source: AGHT+IFK0Zt99dQgOCAn40Zirg1Btck5hbCBoraVCY+V5kVt6NR801A7numW+VpUyNpMz6eUzWM1NzlUS8PwzsojWss= X-Received: by 2002:a05:6808:1b10:b0:441:ef6b:e690 with SMTP id 5614622812f47-4502a2e01a1mr6249069b6e.34.1762856450339; Tue, 11 Nov 2025 02:20:50 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Shlok Kyal Date: Tue, 11 Nov 2025 15:50:36 +0530 X-Gm-Features: AWmQ_blqfhqzypr2M3uwq5azkPj19zMs8CLjAUtHk-038OcmK1ePZChspZozM6o Message-ID: Subject: Re: Skipping schema changes in publication To: Peter Smith Cc: vignesh C , Amit Kapila , "Zhijie Hou (Fujitsu)" , YeXiu <1518981153@qq.com>, Ian Lawrence Barwick , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000838c5d06434f008e" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000838c5d06434f008e Content-Type: text/plain; charset="UTF-8" On Fri, 7 Nov 2025 at 11:36, Peter Smith wrote: > > Hi Shlok. > > Some questions for the patch v25-0002 (EXCEPT tables) > > ====== > doc/src/sgml/ref/alter_publication.sgml > > 1. > +ALTER PUBLICATION name > ADD ALL TABLES [ EXCEPT [ TABLE ] ( class="parameter">exception_object [, ... ] ) ] > > You can do both ADD/SET the , so really there > should be an ADD/SET ALL TABLES command as well, right? > These patches only added the ADD ALL TABLES command. I think once the ADD ALL TABLES patch is committed, we can add the syntax SET ALL TABLES. > ~~~ > > 2. > What was your reason for changing the syntax? > AFAICT those added "( )" are not strictly necessary, so I just > wondered your reason. > > For example, we do not have any "( )" for [,...]. > It is: ALTER PUBLICATION name ADD publication_object [, ...] > Not: ALTER PUBLICATION name ADD (publication_object [, ...]) > > So in the same way we could have EXCEPT syntax like that: > ALTER PUBLICATION name ADD ALL TABLES [EXCEPT [, ...]] > Where table_exception_object is: [ TABLE ] [ ONLY ] table_name [ * ] > > Currently, if the user just wants to exclude a single table they must do: > ALTER PUBLICATION name ADD ALL TABLES EXCEPT (t1); > instead of just ALTER PUBLICATION name ADD ALL TABLES EXCEPT t1; > With recent commit now we support CREATE PUBLICATION .. FOR ALL TABLES, ALL SEQUENCES. Now when I am trying to support "FOR ALL TABLE EXCEPT t1, t2" , I am getting a conflict when compiling this grammar. For example CREATE PUBLICATION .. FOR ALL TABLES EXCEPT t1, ... After this comma, bison is giving conflict because it is not able to figure whether to pick ExceptPublicationObjSpec or a PublicationAllObjSpec. So to handle this I introduced brackets around the table list. And to make ALTER PUBLICATION similar to CREATE PUBLICATION, I have added the same syntax for it. So current syntax for CREATE/ALTER PUBLICATION is like: CREATE PUBLICATION ... ALL TABLES EXCEPT TABLE(t1, t2, t3); ALTER PUBLICATION ... ADD ALL TABLES EXCEPT TABLE(t1, t2, t3); > ~~~ > > 3. > BTW, I think you may need to consider a > instead of a generic name like , because in the > future if we EXCEPT SEQUENCES the name may be not > appropriate because things like [ONLY] and [*] are not applicable for > sequences. Fixed I have attached the latest patch here. I have also addressed the comments for [1], [2]. [1]: https://www.postgresql.org/message-id/CALDaNm0xDv96F%2B5LzcJYV6RC3Jg%2BRtdUqpQ-zoauwq3woTFzmQ%40mail.gmail.com [2]: https://www.postgresql.org/message-id/CAHut+PsRD8ybC7MDBNBXXs=J2DuGiOc8kSePRyZc0s63U5f7tw@mail.gmail.com Thanks, Shlok Kyal --000000000000838c5d06434f008e Content-Type: application/octet-stream; name="v26-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Disposition: attachment; filename="v26-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhuezgn40 RnJvbSA5Nzc4NWVkOWZhMDVlMDRiYmU4NzU4N2NjYjk3OWFmNzllMTFiNzIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFRodSwgMzAgT2N0IDIwMjUgMTA6NTI6NTYgKzA1MzAKU3ViamVjdDogW1BBVENIIHYy NiAxLzNdIEFkZCBSRVNFVCBjbGF1c2UgdG8gQWx0ZXIgUHVibGljYXRpb24gd2hpY2ggd2lsbCAK IHJlc2V0IHRoZSBwdWJsaWNhdGlvbiB3aXRoIGRlZmF1bHQgdmFsdWVzLgoKVGhpcyBwYXRjaCBh ZGRzIGEgbmV3IFJFU0VUIGNsYXVzZSB0byBBTFRFUiBQVUJMSUNBVElPTiB3aGljaCB3aWxsIHJl c2V0CnRoZSBwdWJsaWNhdGlvbiB0byB0aGUgZGVmYXVsdCBzdGF0ZS4gVGhpcyBpbmNsdWRlcyBy ZXNldHRpbmcgdGhlIHB1YmxpY2F0aW9uCnBhcmFtZXRlcnMsIHNldHRpbmcgQUxMIFRBQkxFUyBh bmQgQUxMIFNFUVVFTkNFUyBmbGFncyB0byBmYWxzZSBhbmQgZHJvcHBpbmcKdGhlIHJlbGF0aW9u cyBhbmQgc2NoZW1hcyB0aGF0IGFyZSBhc3NvY2lhdGVkIHdpdGggdGhlIHB1YmxpY2F0aW9uLgpV c2FnZToKQUxURVIgUFVCTElDQVRJT04gcHViMSBSRVNFVDsKLS0tCiBkb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwgICB8ICAzNSArKysrKy0tCiBzcmMvYmFja2VuZC9jb21t YW5kcy9wdWJsaWNhdGlvbmNtZHMuYyAgICB8IDEwOCArKysrKysrKysrKysrKysrKystLQogc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgfCAgMTMgKystCiBzcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oICAgICAgfCAgMTAgKysKIHNyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaCAgICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcHVibGljYXRpb24ub3V0IHwgMTE5ICsrKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCAgICAgIHwgIDUzICsrKysrKysrKysKIDggZmls ZXMgY2hhbmdlZCwgMzI1IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAppbmRleCBjMzZlNzU0Zjg4Ny4uYTlkYjM1NjQ0 NzQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTI3LDYgKzI3 LDcgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5h bWU8L3JlcGxhY2VhYmxlPiBEUk9QIDxyZXBsYWMKIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gU0VUICggPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX3BhcmFtZXRlcjwvcmVwbGFjZWFibGU+ IFs9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+XSBb LCAuLi4gXSApCiBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+IE9XTkVSIFRPIHsgPHJlcGxhY2VhYmxlPm5ld19vd25lcjwv cmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9ST0xFIHwgQ1VSUkVOVF9VU0VSIHwgU0VTU0lPTl9VU0VS IH0KIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1l PC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyZXBsYWNlYWJsZT5uZXdfbmFtZTwvcmVwbGFjZWFi bGU+CitBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+IFJFU0VUCiAKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8 L3BocmFzZT4KIApAQCAtNjksMTggKzcwLDMyIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyCiAg IDwvcGFyYT4KIAogICA8cGFyYT4KLSAgIFRoZSByZW1haW5pbmcgdmFyaWFudHMgY2hhbmdlIHRo ZSBvd25lciBhbmQgdGhlIG5hbWUgb2YgdGhlIHB1YmxpY2F0aW9uLgorICAgVGhlIDxsaXRlcmFs Pk9XTkVSPC9saXRlcmFsPiBjbGF1c2Ugd2lsbCBjaGFuZ2UgdGhlIG93bmVyIG9mIHRoZQorICAg cHVibGljYXRpb24uCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSA8bGl0ZXJhbD5SRU5B TUU8L2xpdGVyYWw+IGNsYXVzZSB3aWxsIGNoYW5nZSB0aGUgbmFtZSBvZiB0aGUKKyAgIHB1Ymxp Y2F0aW9uLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgPGxpdGVyYWw+UkVTRVQ8L2xp dGVyYWw+IGNsYXVzZSB3aWxsIHJlc2V0IHRoZSBwdWJsaWNhdGlvbiB0byB0aGUgZGVmYXVsdAor ICAgc3RhdGUuIFRoaXMgaW5jbHVkZXMgcmVzZXR0aW5nIGFsbCBwdWJsaWNhdGlvbiBwYXJhbWV0 ZXJzLCBzZXR0aW5nIHRoZQorICAgPGxpdGVyYWw+QUxMIFRBQkxFUzwvbGl0ZXJhbD4gYW5kIDxs aXRlcmFsPkFMTCBTRVFVRU5DRVM8L2xpdGVyYWw+IGZsYWdzIHRvCisgICA8bGl0ZXJhbD5mYWxz ZTwvbGl0ZXJhbD4sIGFuZCByZW1vdmluZyBhbGwgYXNzb2NpYXRlZCB0YWJsZXMgYW5kIHNjaGVt YXMgZnJvbQorICAgdGhlIHB1YmxpY2F0aW9uLgogICA8L3BhcmE+CiAKICAgPHBhcmE+CiAgICBZ b3UgbXVzdCBvd24gdGhlIHB1YmxpY2F0aW9uIHRvIHVzZSA8Y29tbWFuZD5BTFRFUiBQVUJMSUNB VElPTjwvY29tbWFuZD4uCiAgICBBZGRpbmcgYSB0YWJsZSB0byBhIHB1YmxpY2F0aW9uIGFkZGl0 aW9uYWxseSByZXF1aXJlcyBvd25pbmcgdGhhdCB0YWJsZS4KLSAgIFRoZSA8bGl0ZXJhbD5BREQg VEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gYW5kCi0gICA8bGl0ZXJhbD5TRVQgVEFCTEVTIElO IFNDSEVNQTwvbGl0ZXJhbD4gdG8gYSBwdWJsaWNhdGlvbiByZXF1aXJlcyB0aGUKLSAgIGludm9r aW5nIHVzZXIgdG8gYmUgYSBzdXBlcnVzZXIuCi0gICBUbyBhbHRlciB0aGUgb3duZXIsIHlvdSBt dXN0IGJlIGFibGUgdG8gPGxpdGVyYWw+U0VUIFJPTEU8L2xpdGVyYWw+IHRvIHRoZQotICAgbmV3 IG93bmluZyByb2xlLCBhbmQgdGhhdCByb2xlIG11c3QgaGF2ZSA8bGl0ZXJhbD5DUkVBVEU8L2xp dGVyYWw+Ci0gICBwcml2aWxlZ2Ugb24gdGhlIGRhdGFiYXNlLgorICAgVGhlIDxsaXRlcmFsPkFE RCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiwKKyAgIDxsaXRlcmFsPlNFVCBUQUJMRVMgSU4g U0NIRU1BPC9saXRlcmFsPiB0byBhIHB1YmxpY2F0aW9uIGFuZAorICAgPGxpdGVyYWw+UkVTRVQ8 L2xpdGVyYWw+IG9mIHB1YmxpY2F0aW9uIHJlcXVpcmVzIHRoZSBpbnZva2luZyB1c2VyIHRvIGJl IGEKKyAgIHN1cGVydXNlci4gVG8gYWx0ZXIgdGhlIG93bmVyLCB5b3UgbXVzdCBiZSBhYmxlIHRv CisgICA8bGl0ZXJhbD5TRVQgUk9MRTwvbGl0ZXJhbD4gdG8gdGhlIG5ldyBvd25pbmcgcm9sZSwg YW5kIHRoYXQgcm9sZSBtdXN0IGhhdmUKKyAgIDxsaXRlcmFsPkNSRUFURTwvbGl0ZXJhbD4gcHJp dmlsZWdlIG9uIHRoZSBkYXRhYmFzZS4KICAgIEFsc28sIHRoZSBuZXcgb3duZXIgb2YgYQogICAg PGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9uLXBhcmFtcy1mb3ItdGFibGVzLWlu LXNjaGVtYSI+PGxpdGVyYWw+Rk9SIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+PC9saW5rPgog ICAgb3IgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9uLXBhcmFtcy1mb3ItYWxs LXRhYmxlcyI+PGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+PC9saW5rPgpAQCAtMjMy LDYgKzI0NywxMiBAQCBBTFRFUiBQVUJMSUNBVElPTiBzYWxlc19wdWJsaWNhdGlvbiBBREQgVEFC TEVTIElOIFNDSEVNQSBtYXJrZXRpbmcsIHNhbGVzOwogICAgPHN0cnVjdG5hbWU+cHJvZHVjdGlv bl9wdWJsaWNhdGlvbjwvc3RydWN0bmFtZT46CiA8cHJvZ3JhbWxpc3Rpbmc+CiBBTFRFUiBQVUJM SUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFERCBUQUJMRSB1c2VycywgZGVwYXJ0bWVu dHMsIFRBQkxFUyBJTiBTQ0hFTUEgcHJvZHVjdGlvbjsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJh PgorCisgIDxwYXJhPgorICAgUmVzZXQgdGhlIHB1YmxpY2F0aW9uIDxzdHJ1Y3RuYW1lPnByb2R1 Y3Rpb25fcHVibGljYXRpb248L3N0cnVjdG5hbWU+OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIg UFVCTElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBSRVNFVDsKIDwvcHJvZ3JhbWxpc3Rp bmc+PC9wYXJhPgogIDwvcmVmc2VjdDE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25j bWRzLmMKaW5kZXggMWZhZjNhOGMzNzIuLjUwMjM5NTEzZTNmIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9wdWJsaWNhdGlvbmNtZHMuYwpAQCAtOTAsMTIgKzkwLDEyIEBAIHBhcnNlX3B1YmxpY2F0aW9u X29wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCSpwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5z X2dpdmVuID0gZmFsc2U7CiAKIAkvKiBkZWZhdWx0cyAqLwotCXB1YmFjdGlvbnMtPnB1Ymluc2Vy dCA9IHRydWU7Ci0JcHViYWN0aW9ucy0+cHVidXBkYXRlID0gdHJ1ZTsKLQlwdWJhY3Rpb25zLT5w dWJkZWxldGUgPSB0cnVlOwotCXB1YmFjdGlvbnMtPnB1YnRydW5jYXRlID0gdHJ1ZTsKLQkqcHVi bGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSBmYWxzZTsKLQkqcHVibGlzaF9nZW5lcmF0ZWRfY29s dW1ucyA9IFBVQkxJU0hfR0VOQ09MU19OT05FOworCXB1YmFjdGlvbnMtPnB1Ymluc2VydCA9IFBV Ql9ERUZBVUxUX0FDVElPTl9JTlNFUlQ7CisJcHViYWN0aW9ucy0+cHVidXBkYXRlID0gUFVCX0RF RkFVTFRfQUNUSU9OX1VQREFURTsKKwlwdWJhY3Rpb25zLT5wdWJkZWxldGUgPSBQVUJfREVGQVVM VF9BQ1RJT05fREVMRVRFOworCXB1YmFjdGlvbnMtPnB1YnRydW5jYXRlID0gUFVCX0RFRkFVTFRf QUNUSU9OX1RSVU5DQVRFOworCSpwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IFBVQl9ERUZB VUxUX1ZJQV9ST09UOworCSpwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zID0gUFVCX0RFRkFVTFRf R0VOQ09MUzsKIAogCS8qIFBhcnNlIG9wdGlvbnMgKi8KIAlmb3JlYWNoKGxjLCBvcHRpb25zKQpA QCAtMTIwOSw2ICsxMjA5LDEwMCBAQCBJbnZhbGlkYXRlUHVibGljYXRpb25SZWxzKExpc3QgKnJl bGlkcykKIAkJQ2FjaGVJbnZhbGlkYXRlUmVsY2FjaGVBbGwoKTsKIH0KIAorLyoKKyAqIFJlc2V0 IHRoZSBwdWJsaWNhdGlvbi4KKyAqCisgKiBSZXNldCB0aGUgcHVibGljYXRpb24gcGFyYW1ldGVy cywgc2V0dGluZyBBTEwgVEFCTEVTIGZsYWcgdG8gZmFsc2UgYW5kIGRyb3AKKyAqIGFsbCByZWxh dGlvbnMgYW5kIHNjaGVtYXMgdGhhdCBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlv bi4KKyAqLworc3RhdGljIHZvaWQKK0FsdGVyUHVibGljYXRpb25SZXNldChQYXJzZVN0YXRlICpw c3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAorCQkJCQkgIFJlbGF0aW9uIHJlbCwg SGVhcFR1cGxlIHR1cCkKK3sKKwlGb3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gPSAoRm9ybV9w Z19wdWJsaWNhdGlvbikgR0VUU1RSVUNUKHR1cCk7CisJT2lkCQkJcHViaWQgPSBwdWJmb3JtLT5v aWQ7CisJTGlzdAkgICAqc2NoZW1haWRzID0gTklMOworCUxpc3QJICAgKnJlbHMgPSBOSUw7CisJ TGlzdAkgICAqcmVsaWRzID0gTklMOworCWJvb2wJCW51bGxzW05hdHRzX3BnX3B1YmxpY2F0aW9u XTsKKwlib29sCQlyZXBsYWNlc1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisJRGF0dW0JCXZhbHVl c1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisKKwkvKiBSRVNFVCBwdWJsaWNhdGlvbiByZXF1aXJl cyBzdXBlcnVzZXIgKi8KKwlpZiAoIXN1cGVydXNlcigpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJ CWVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQllcnJtc2coIm11 c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9uIikpOworCisJbWVtc2V0KHZhbHVl cywgMCwgc2l6ZW9mKHZhbHVlcykpOworCW1lbXNldChudWxscywgZmFsc2UsIHNpemVvZihudWxs cykpOworCW1lbXNldChyZXBsYWNlcywgZmFsc2UsIHNpemVvZihyZXBsYWNlcykpOworCisJLyog UmVzZXQgdGhlIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMgKi8KKwl2YWx1ZXNbQW51bV9wZ19wdWJs aWNhdGlvbl9wdWJpbnNlcnQgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVGQVVMVF9BQ1RJT05f SU5TRVJUKTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1Ymluc2VydCAtIDFdID0g dHJ1ZTsKKworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnVwZGF0ZSAtIDFdID0gQm9v bEdldERhdHVtKFBVQl9ERUZBVUxUX0FDVElPTl9VUERBVEUpOworCXJlcGxhY2VzW0FudW1fcGdf cHVibGljYXRpb25fcHVidXBkYXRlIC0gMV0gPSB0cnVlOworCisJdmFsdWVzW0FudW1fcGdfcHVi bGljYXRpb25fcHViZGVsZXRlIC0gMV0gPSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUNUSU9O X0RFTEVURSk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJkZWxldGUgLSAxXSA9 IHRydWU7CisKKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ0cnVuY2F0ZSAtIDFdID0g Qm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX0FDVElPTl9UUlVOQ0FURSk7CisJcmVwbGFjZXNbQW51 bV9wZ19wdWJsaWNhdGlvbl9wdWJ0cnVuY2F0ZSAtIDFdID0gdHJ1ZTsKKworCXZhbHVlc1tBbnVt X3BnX3B1YmxpY2F0aW9uX3B1YnZpYXJvb3QgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVGQVVM VF9WSUFfUk9PVCk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ2aWFyb290IC0g MV0gPSB0cnVlOworCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViZ2VuY29scyAtIDFd ID0gQ2hhckdldERhdHVtKFBVQl9ERUZBVUxUX0dFTkNPTFMpOworCXJlcGxhY2VzW0FudW1fcGdf cHVibGljYXRpb25fcHViZ2VuY29scyAtIDFdID0gdHJ1ZTsKKworCXZhbHVlc1tBbnVtX3BnX3B1 YmxpY2F0aW9uX3B1YmFsbHRhYmxlcyAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX0FM TF9UQUJMRVMpOworCXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHViYWxsdGFibGVzIC0g MV0gPSB0cnVlOworCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViYWxsc2VxdWVuY2Vz IC0gMV0gPSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUxMX1NFUVVFTkNFUyk7CisJcmVwbGFj ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJhbGxzZXF1ZW5jZXMgLSAxXSA9IHRydWU7CisKKwlp ZiAocHViZm9ybS0+cHViYWxsdGFibGVzKQorCQlDYWNoZUludmFsaWRhdGVSZWxjYWNoZUFsbCgp OworCisJdHVwID0gaGVhcF9tb2RpZnlfdHVwbGUodHVwLCBSZWxhdGlvbkdldERlc2NyKHJlbCks IHZhbHVlcywgbnVsbHMsCisJCQkJCQkJcmVwbGFjZXMpOworCisJLyogVXBkYXRlIHRoZSBjYXRh bG9nLiAqLworCUNhdGFsb2dUdXBsZVVwZGF0ZShyZWwsICZ0dXAtPnRfc2VsZiwgdHVwKTsKKwor CS8qIFJlbW92ZSB0aGUgYXNzb2NpYXRlZCBzY2hlbWFzIGZyb20gdGhlIHB1YmxpY2F0aW9uICov CisJc2NoZW1haWRzID0gR2V0UHVibGljYXRpb25TY2hlbWFzKHB1YmlkKTsKKworCS8qCisJICog U2NoZW1hIGxvY2sgaXMgaGVsZCB1bnRpbCB0aGUgcHVibGljYXRpb24gaXMgYWx0ZXJlZCB0byBw cmV2ZW50CisJICogY29uY3VycmVudCBzY2hlbWEgZGVsZXRpb24uCisJICovCisJTG9ja1NjaGVt YUxpc3Qoc2NoZW1haWRzKTsKKworCS8qIFJlbW92ZSBTY2hlbWFzICovCisJUHVibGljYXRpb25E cm9wU2NoZW1hcyhwdWJpZCwgc2NoZW1haWRzLCB0cnVlKTsKKworCS8qIEdldCBhbGwgcmVsYXRp b25zIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gKi8KKwlyZWxpZHMgPSBHZXRQdWJs aWNhdGlvblJlbGF0aW9ucyhwdWJpZCwgUFVCTElDQVRJT05fUEFSVF9ST09UKTsKKworCWZvcmVh Y2hfb2lkKHJlbGlkLCByZWxpZHMpCisJeworCQlQdWJsaWNhdGlvblJlbEluZm8gKnJlbDsKKwor CQlyZWwgPSBwYWxsb2Moc2l6ZW9mKFB1YmxpY2F0aW9uUmVsSW5mbykpOworCQlyZWwtPndoZXJl Q2xhdXNlID0gTlVMTDsKKwkJcmVsLT5jb2x1bW5zID0gTklMOworCQlyZWwtPnJlbGF0aW9uID0g dGFibGVfb3BlbihyZWxpZCwgU2hhcmVVcGRhdGVFeGNsdXNpdmVMb2NrKTsKKwkJcmVscyA9IGxh cHBlbmQocmVscywgcmVsKTsKKwl9CisKKwkvKiBSZW1vdmUgdGhlIGFzc29jaWF0ZWQgcmVsYXRp b25zIGZyb20gdGhlIHB1YmxpY2F0aW9uICovCisJUHVibGljYXRpb25Ecm9wVGFibGVzKHB1Ymlk LCByZWxzLCB0cnVlKTsKKwlDbG9zZVRhYmxlTGlzdChyZWxzKTsKK30KKwogLyoKICAqIEFkZCBv ciByZW1vdmUgdGFibGUgdG8vZnJvbSBwdWJsaWNhdGlvbi4KICAqLwpAQCAtMTU1Myw2ICsxNjQ3 LDggQEAgQWx0ZXJQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRp b25TdG10ICpzdG10KQogCiAJaWYgKHN0bXQtPm9wdGlvbnMpCiAJCUFsdGVyUHVibGljYXRpb25P cHRpb25zKHBzdGF0ZSwgc3RtdCwgcmVsLCB0dXApOworCWVsc2UgaWYgKHN0bXQtPmFjdGlvbiA9 PSBBUF9SZXNldCkKKwkJQWx0ZXJQdWJsaWNhdGlvblJlc2V0KHBzdGF0ZSwgc3RtdCwgcmVsLCB0 dXApOwogCWVsc2UKIAl7CiAJCUxpc3QJICAgKnJlbGF0aW9ucyA9IE5JTDsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55Cmlu ZGV4IDU3ZmUwMTg2NTQ3Li5jOWU4M2YwNWFmOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0xMDkwNSwxNSAr MTA5MDUsMTcgQEAgcHViX29ial90eXBlX2xpc3Q6CVB1YmxpY2F0aW9uQWxsT2JqU3BlYwogICoK ICAqIEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgQUREIHB1Yl9vYmogWywgLi4uXQogICoKLSAqIEFM VEVSIFBVQkxJQ0FUSU9OIG5hbWUgRFJPUCBwdWJfb2JqIFssIC4uLl0KLSAqCiAgKiBBTFRFUiBQ VUJMSUNBVElPTiBuYW1lIFNFVCBwdWJfb2JqIFssIC4uLl0KICAqCisgKiBBTFRFUiBQVUJMSUNB VElPTiBuYW1lIERST1AgcHViX29iaiBbLCAuLi5dCisgKgogICogcHViX29iaiBpcyBvbmUgb2Y6 CiAgKgogICoJCVRBQkxFIHRhYmxlX25hbWUgWywgLi4uXQogICoJCVRBQkxFUyBJTiBTQ0hFTUEg c2NoZW1hX25hbWUgWywgLi4uXQogICoKKyAqIEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgUkVTRVQK KyAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIEFsdGVyUHVibGljYXRpb25TdG10OgpAQCAt MTA5NTUsNiArMTA5NTcsMTMgQEAgQWx0ZXJQdWJsaWNhdGlvblN0bXQ6CiAJCQkJCW4tPmFjdGlv biA9IEFQX0Ryb3BPYmplY3RzOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBB TFRFUiBQVUJMSUNBVElPTiBuYW1lIFJFU0VUCisJCQkJeworCQkJCQlBbHRlclB1YmxpY2F0aW9u U3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyUHVibGljYXRpb25TdG10KTsKKwkJCQkJbi0+cHVibmFt ZSA9ICQzOworCQkJCQluLT5hY3Rpb24gPSBBUF9SZXNldDsKKwkJCQkJJCQgPSAoTm9kZSAqKW47 CisJCQkJfQogCQk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j CmluZGV4IDMxNmEyZGFmYmYxLi5kMTYxODFiYzExNSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpA QCAtMjI4OCw3ICsyMjg4LDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQs CiAKIAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8bmFtZT4gKi8KIAllbHNlIGlmIChNYXRjaGVzKCJB TFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55KSkKLQkJQ09NUExFVEVfV0lUSCgiQUREIiwg IkRST1AiLCAiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlNFVCIpOworCQlDT01QTEVURV9XSVRI KCJBREQiLCAiRFJPUCIsICJPV05FUiBUTyIsICJSRU5BTUUgVE8iLCAiUkVTRVQiLCAiU0VUIik7 CiAJLyogQUxURVIgUFVCTElDQVRJT04gPG5hbWU+IEFERCAqLwogCWVsc2UgaWYgKE1hdGNoZXMo IkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiKSkKIAkJQ09NUExFVEVfV0lU SCgiVEFCTEVTIElOIFNDSEVNQSIsICJUQUJMRSIpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNh dGlvbi5oCmluZGV4IDIyZjQ4YmI4OTc1Li43N2IwYTJmOWViOCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHVibGljYXRpb24uaApAQCAtMTUyLDYgKzE1MiwxNiBAQCBleHRlcm4gUHVibGljYXRpb24g KkdldFB1YmxpY2F0aW9uKE9pZCBwdWJpZCk7CiBleHRlcm4gUHVibGljYXRpb24gKkdldFB1Ymxp Y2F0aW9uQnlOYW1lKGNvbnN0IGNoYXIgKnB1Ym5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRl cm4gTGlzdCAqR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkKTsKIAorLyogZGVmYXVs dCB2YWx1ZXMgZm9yIGZsYWdzIGFuZCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXJzICovCisjZGVmaW5l IFBVQl9ERUZBVUxUX0FDVElPTl9JTlNFUlQgdHJ1ZQorI2RlZmluZSBQVUJfREVGQVVMVF9BQ1RJ T05fVVBEQVRFIHRydWUKKyNkZWZpbmUgUFVCX0RFRkFVTFRfQUNUSU9OX0RFTEVURSB0cnVlCisj ZGVmaW5lIFBVQl9ERUZBVUxUX0FDVElPTl9UUlVOQ0FURSB0cnVlCisjZGVmaW5lIFBVQl9ERUZB VUxUX1ZJQV9ST09UIGZhbHNlCisjZGVmaW5lIFBVQl9ERUZBVUxUX0FMTF9UQUJMRVMgZmFsc2UK KyNkZWZpbmUgUFVCX0RFRkFVTFRfQUxMX1NFUVVFTkNFUyBmYWxzZQorI2RlZmluZSBQVUJfREVG QVVMVF9HRU5DT0xTIFBVQkxJU0hfR0VOQ09MU19OT05FCisKIC8qLS0tLS0tLS0tCiAgKiBFeHBl Y3RlZCB2YWx1ZXMgZm9yIHB1Yl9wYXJ0b3B0IHBhcmFtZXRlciBvZiBHZXRQdWJsaWNhdGlvblJl bGF0aW9ucygpLAogICogd2hpY2ggYWxsb3dzIGNhbGxlcnMgdG8gc3BlY2lmeSB3aGljaCBwYXJ0 aXRpb25zIG9mIHBhcnRpdGlvbmVkIHRhYmxlcwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGQx NDI5NGE0ZWNlLi44Y2Y3NTcyNGE3YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDMyNiw2 ICs0MzI2LDcgQEAgdHlwZWRlZiBlbnVtIEFsdGVyUHVibGljYXRpb25BY3Rpb24KIAlBUF9BZGRP YmplY3RzLAkJCQkvKiBhZGQgb2JqZWN0cyB0byBwdWJsaWNhdGlvbiAqLwogCUFQX0Ryb3BPYmpl Y3RzLAkJCQkvKiByZW1vdmUgb2JqZWN0cyBmcm9tIHB1YmxpY2F0aW9uICovCiAJQVBfU2V0T2Jq ZWN0cywJCQkJLyogc2V0IGxpc3Qgb2Ygb2JqZWN0cyAqLworCUFQX1Jlc2V0LAkJCQkJLyogcmVz ZXQgdGhlIHB1YmxpY2F0aW9uICovCiB9IEFsdGVyUHVibGljYXRpb25BY3Rpb247CiAKIHR5cGVk ZWYgc3RydWN0IEFsdGVyUHVibGljYXRpb25TdG10CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHVibGljYXRpb24ub3V0CmluZGV4IGU3MmQxMzA4OTY3Li5lM2JlMjllMzc4ZCAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTIwMDksNiArMjAwOSwxMjUg QEAgVGFibGVzOgogRFJPUCBQVUJMSUNBVElPTiBwdWIxOwogRFJPUCBQVUJMSUNBVElPTiBwdWIy OwogRFJPUCBUQUJMRSBnZW5jb2xzOworLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4u LiBSRVNFVAorQ1JFQVRFIFNDSEVNQSBwdWJfc2NoMTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50 YmwxIChhIGludCk7CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBGT1IgQUxMIFRBQkxFUzsKK1JFU0VUIGNsaWVudF9t aW5fbWVzc2FnZXM7CistLSBWZXJpZnkgdGhhdCBvbmx5IHN1cGVydXNlciBjYW4gcmVzZXQgYSBw dWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBPV05FUiBUTyByZWdy ZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2Vy MjsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7IC0tIGZhaWwgLSBtdXN0 IGJlIHN1cGVydXNlcgorRVJST1I6ICBtdXN0IGJlIHN1cGVydXNlciB0byBSRVNFVCBwdWJsaWNh dGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBPV05FUiBUTyByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXI7CitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXI7CistLSBW ZXJpZnkgdGhhdCAnQUxMIFRBQkxFUycgZmxhZyBpcyByZXNldAorXGRScCsgdGVzdHB1Yl9yZXNl dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVi bGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0 YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1 bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAg ICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsK K1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRh dGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3Qg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAg fCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAg IHwgbm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKKy0tIFZlcmlmeSB0aGF0IGFzc29j aWF0ZWQgdGFibGVzIGFyZSByZW1vdmVkIGZyb20gdGhlIHB1YmxpY2F0aW9uIGFmdGVyIFJFU0VU CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRSBwdWJfc2NoMS50Ymwx OworXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVw ZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9v dCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAg ICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg ICAgfCBub25lICAgICAgICAgICAgICB8IGYKK1RhYmxlczoKKyAgICAicHViX3NjaDEudGJsMSIK KworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJf cmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBB bGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8 IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAg ICAgICAgfCBmCisoMSByb3cpCisKKy0tIFZlcmlmeSB0aGF0IGFzc29jaWF0ZWQgc2NoZW1hcyBh cmUgcmVtb3ZlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbiBhZnRlciBSRVNFVAorQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7CitcZFJwKyB0 ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERl bGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAg ICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUg ICAgICAgICAgICAgIHwgZgorVGFibGVzIGZyb20gc2NoZW1hczoKKyAgICAicHVibGljIgorCitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNl dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVi bGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0 YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1 bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAg ICB8IGYKKygxIHJvdykKKworLS0gVmVyaWZ5IHRoYXQgJ1BVQkxJU0gnIHBhcmFtZXRlciBpcyBy ZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJU0ggPSAnJyk7 CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBk YXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290 IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IGYgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAg ICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9y ZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVu Y2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVk IGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlv bl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKKygxIHJvdykKKwor LS0gVmVyaWZ5IHRoYXQgJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UJyBwYXJhbWV0ZXIgaXMg cmVzZXQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIX1ZJQV9Q QVJUSVRJT05fUk9PVCA9ICd0cnVlJyk7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0 cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBz ZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5l cmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1Ymxp Y2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgdAorKDEgcm93 KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1 Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVz IHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAg ICAgICAgICB8IGYKKygxIHJvdykKKworLS0gVmVyaWZ5IHRoYXQgJ1BVQkxJU0hfR0VORVJBVEVE X0NPTFVNTlMnIHBhcmFtZXRlciBpcyByZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldCBTRVQgKFBVQkxJU0hfR0VORVJBVEVEX0NPTFVNTlMgPSBzdG9yZWQpOworXGRScCsgdGVz dHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxl dGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBzdG9yZWQg ICAgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2Vy dHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwg VmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK0RST1AgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldDsKK0RST1AgVEFCTEUgcHViX3NjaDEudGJsMTsKK0RST1AgU0NI RU1BIHB1Yl9zY2gxOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIC0tIFRlc3QgdGhhdCB0 aGUgSU5TRVJUIE9OIENPTkZMSUNUIGNvbW1hbmQgY29ycmVjdGx5IGNoZWNrcyBSRVBMSUNBIElE RU5USVRZCiAtLSB3aGVuIHRoZSB0YXJnZXQgdGFibGUgaXMgcHVibGlzaGVkLgpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IDAwMzkwYWVjZDQ3Li44NGRlYWFmNWExZiAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApAQCAtMTI2OCw2ICsxMjY4LDU5IEBAIERS T1AgUFVCTElDQVRJT04gcHViMTsKIERST1AgUFVCTElDQVRJT04gcHViMjsKIERST1AgVEFCTEUg Z2VuY29sczsKIAorLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAorQ1JF QVRFIFNDSEVNQSBwdWJfc2NoMTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7 CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldCBGT1IgQUxMIFRBQkxFUzsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7 CisKKy0tIFZlcmlmeSB0aGF0IG9ubHkgc3VwZXJ1c2VyIGNhbiByZXNldCBhIHB1YmxpY2F0aW9u CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlcjI7CitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1 c2VyCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVi bGljYXRpb25fdXNlcjsKK1NFVCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjsKKworLS0g VmVyaWZ5IHRoYXQgJ0FMTCBUQUJMRVMnIGZsYWcgaXMgcmVzZXQKK1xkUnArIHRlc3RwdWJfcmVz ZXQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHVi X3Jlc2V0CisKKy0tIFZlcmlmeSB0aGF0IGFzc29jaWF0ZWQgdGFibGVzIGFyZSByZW1vdmVkIGZy b20gdGhlIHB1YmxpY2F0aW9uIGFmdGVyIFJFU0VUCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X3Jlc2V0IEFERCBUQUJMRSBwdWJfc2NoMS50YmwxOworXGRScCsgdGVzdHB1Yl9yZXNldAorQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQK KworLS0gVmVyaWZ5IHRoYXQgYXNzb2NpYXRlZCBzY2hlbWFzIGFyZSByZW1vdmVkIGZyb20gdGhl IHB1YmxpY2F0aW9uIGFmdGVyIFJFU0VUCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKK1xkUnArIHRlc3RwdWJfcmVzZXQKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisK Ky0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIJyBwYXJhbWV0ZXIgaXMgcmVzZXQKK0FMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIID0gJycpOworXGRScCsgdGVzdHB1Yl9y ZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3Rw dWJfcmVzZXQKKworLS0gVmVyaWZ5IHRoYXQgJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UJyBw YXJhbWV0ZXIgaXMgcmVzZXQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQ VUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCA9ICd0cnVlJyk7CitcZFJwKyB0ZXN0cHViX3Jlc2V0 CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9y ZXNldAorCistLSBWZXJpZnkgdGhhdCAnUFVCTElTSF9HRU5FUkFURURfQ09MVU1OUycgcGFyYW1l dGVyIGlzIHJlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElT SF9HRU5FUkFURURfQ09MVU1OUyA9IHN0b3JlZCk7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CitBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAor CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CitEUk9QIFRBQkxFIHB1Yl9zY2gxLnRi bDE7CitEUk9QIFNDSEVNQSBwdWJfc2NoMTsKKwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsK IAogLS0gVGVzdCB0aGF0IHRoZSBJTlNFUlQgT04gQ09ORkxJQ1QgY29tbWFuZCBjb3JyZWN0bHkg Y2hlY2tzIFJFUExJQ0EgSURFTlRJVFkKLS0gCjIuMzQuMQoK --000000000000838c5d06434f008e Content-Type: application/octet-stream; name="v26-0003-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Disposition: attachment; filename="v26-0003-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhuezgnc2 RnJvbSAwN2E5NjI2YWUwNTlhNDA2NTI3YWIxNjdkZWEzY2JkNzQ4Njc4MWZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTEgTm92IDIwMjUgMTM6MDY6MjcgKzA1MzAKU3ViamVjdDogW1BBVENIIHYy NiAzLzNdIFNraXAgcHVibGlzaGluZyB0aGUgY29sdW1ucyBzcGVjaWZpZWQgaW4gRk9SIFRBQkxF CiBFWENFUFQKCkEgbmV3ICJUQUJMRSB0YWJsZV9uYW1lIEVYQ0VQVCAoY29sdW1uX2xpc3QpIiBj bGF1c2UgZm9yIENSRUFURS9BTFRFUgpQVUJMSUNBVElPTiBhbGxvd3Mgb25lIG9yIG1vcmUgY29s dW1ucyB0byBiZSBleGNsdWRlZC4gVGhlIHB1Ymxpc2hlcgp3aWxsIG5vdCBzZW5kIHRoZSBkYXRh IG9mIGV4Y2x1ZGVkIGNvbHVtbnMgdG8gdGhlIHN1YnNjcmliZXIuCgpUaGUgbmV3IHN5bnRheCBh bGxvd3Mgc3BlY2lmeWluZyBleGNsdWRlZCBjb2x1bW4gbGlzdCB3aGVuIGNyZWF0aW5nIG9yCmFs dGVyaW5nIGEgcHVibGljYXRpb24uIEZvciBleGFtcGxlOgpDUkVBVEUgUFVCTElDQVRJT04gcHVi bmFtZSBGT1IgVEFCTEUgdGFibmFtZSBFWENFUFQgKGNvbDEsIGNvbDIsIGNvbDMpCm9yCkFMVEVS IFBVQkxJQ0FUSU9OIHB1Ym5hbWUgQUREIFRBQkxFIHRhYm5hbWUgRVhDRVBUIChjb2wxLCBjb2wy LCBjb2wzKQoKV2hlbiBjb2x1bW4gInByZXhjZXB0IiBvZiBzeXN0ZW0gY2F0YWxvZyAicGdfcHVi bGljYXRpb25fcmVsIiBpcyBzZXQKdG8gInRydWUiLCBhbmQgY29sdW1uICJwcmF0dHJzIiBvZiBz eXN0ZW0gY2F0YWxvZyAicGdfcHVibGljYXRpb25fcmVsIgppcyBub3QgTlVMTCwgdGhhdCBtZWFu cyB0aGUgcHVibGljYXRpb24gd2FzIGNyZWF0ZWQgd2l0aCAiRVhDRVBUCihjb2x1bW4tbGlzdCki LCBhbmQgdGhlIGNvbHVtbnMgaW4gInByYXR0cnMiIHdpbGwgYmUgZXhjbHVkZWQgZnJvbQpiZWlu ZyBwdWJsaXNoZWQuCgpwZ19kdW1wIGlzIHVwZGF0ZWQgdG8gaWRlbnRpZnkgYW5kIGR1bXAgdGhl IGV4Y2x1ZGVkIGNvbHVtbiBsaXN0IG9mIHRoZQpwdWJsaWNhdGlvbi4KClRoZSBwc3FsIFxkIGZh bWlseSBvZiBjb21tYW5kcyBjYW4gbm93IGRpc3BsYXkgZXhjbHVkZWQgY29sdW1uIGxpc3QuIGUu Zy4KcHNxbCBcZFJwKyB2YXJpYW50IHdpbGwgbm93IGRpc3BsYXkgYXNzb2NpYXRlZCAiRVhDRVBU IChjb2x1bW5fbGlzdCkiIGlmCmFueS4KLS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAg ICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIGRvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0 aW9uLnNnbWwgICAgICAgICB8IDEwNiArKysrKy0tCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1 YmxpY2F0aW9uLnNnbWwgICAgICAgfCAgMTAgKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1 YmxpY2F0aW9uLnNnbWwgICAgICB8ICA1MiArKystCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1 YmxpY2F0aW9uLmMgICAgICAgICAgfCAgNzUgKysrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3B1 YmxpY2F0aW9uY21kcy5jICAgICAgICB8ICA1MiArKy0tCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55ICAgICAgICAgICAgICAgICAgICAgfCAgNDQgKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL3RhYmxlc3luYy5jICAgfCAgNDEgKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9wZ291dHB1dC9wZ291dHB1dC5jICAgfCAgNzAgKysrKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMgICAgICAgICAgICAgICAgICAgICB8ICA0NSArLS0KIHNyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUu YyAgICAgICAgICAgICAgICAgICAgICAgfCAyNjIgKysrKysrKysrKystLS0tLS0tCiBzcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgICAgfCAgMTMgKy0KIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCAgICAgICAgICB8ICAgNiArLQogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaCAgICAgIHwgICA1ICstCiBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCAgICAgfCAgODggKysrKysrCiBzcmMvdGVz dC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgICAgICAgICAgfCAgNTUgKysrKwogc3JjL3Rl c3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkICAgICAgICAgICAgIHwgICAxICsKIC4uLi90LzAz OF9yZXBfY2hhbmdlc19leGNlcHRfY29sbGlzdC5wbCAgICAgICB8IDE5MyArKysrKysrKysrKysr CiAxOSBmaWxlcyBjaGFuZ2VkLCA5MDcgaW5zZXJ0aW9ucygrKSwgMjE3IGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzOF9yZXBfY2hhbmdl c19leGNlcHRfY29sbGlzdC5wbAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5z Z21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggMTQ0ZjNmYmRlZjIuLmM1ZTk3 ZDE1NzVmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtNjU4Niw3ICs2NTg2LDEwIEBAIFNDUkFNLVNIQS0y NTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJl cGxhY2VhYmxlPiZsCiAgICAgICA8c3RydWN0ZmllbGQ+cHJleGNlcHQ8L3N0cnVjdGZpZWxkPiA8 dHlwZT5ib29sPC90eXBlPgogICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+Ci0gICAgICAgVHJ1 ZSBpZiB0aGUgcmVsYXRpb24gbXVzdCBiZSBleGNsdWRlZAorICAgICAgIFRydWUgaWYgdGhlIGNv bHVtbiBsaXN0IG9yIHJlbGF0aW9uIG11c3QgYmUgZXhjbHVkZWQgZnJvbSBwdWJsaWNhdGlvbi4K KyAgICAgICBJZiBhIGNvbHVtbiBsaXN0IGlzIHNwZWNpZmllZCBpbiA8bGl0ZXJhbD5wcmF0dHJz PC9saXRlcmFsPiwgdGhlbgorICAgICAgIGV4Y2x1ZGUgb25seSB0aG9zZSBjb2x1bW5zLiBJZiA8 bGl0ZXJhbD5wcmF0dHJzPC9saXRlcmFsPiBpcyBudWxsLAorICAgICAgIHRoZW4gZXhjbHVkZSB0 aGUgZW50aXJlIHJlbGF0aW9uLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93Pgog CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sIGIvZG9j L3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbAppbmRleCA3MTQ3YzE5MGJhNC4uZjRl MDk1OGVkN2EgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbApAQCAtMTM3NCwx MCArMTM3NCwxMCBAQCBQdWJsaWNhdGlvbnM6CiAgIDx0aXRsZT5Db2x1bW4gTGlzdHM8L3RpdGxl PgogCiAgIDxwYXJhPgotICAgRWFjaCBwdWJsaWNhdGlvbiBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5 IHdoaWNoIGNvbHVtbnMgb2YgZWFjaCB0YWJsZSBhcmUKLSAgIHJlcGxpY2F0ZWQgdG8gc3Vic2Ny aWJlcnMuIFRoZSB0YWJsZSBvbiB0aGUgc3Vic2NyaWJlciBzaWRlIG11c3QgaGF2ZSBhdAotICAg bGVhc3QgYWxsIHRoZSBjb2x1bW5zIHRoYXQgYXJlIHB1Ymxpc2hlZC4gSWYgbm8gY29sdW1uIGxp c3QgaXMgc3BlY2lmaWVkLAotICAgdGhlbiBhbGwgY29sdW1ucyBvbiB0aGUgcHVibGlzaGVyIGFy ZSByZXBsaWNhdGVkLgorICAgRWFjaCBwdWJsaWNhdGlvbiBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5 IHdoaWNoIGNvbHVtbnMgb2YgZWFjaCB0YWJsZSBzaG91bGQgYmUKKyAgIHJlcGxpY2F0ZWQgb3Ig ZXhjbHVkZWQgZnJvbSByZXBsaWNhdGlvbi4gVGhlIHRhYmxlIG9uIHRoZSBzdWJzY3JpYmVyIHNp ZGUKKyAgIG11c3QgaGF2ZSBhdCBsZWFzdCBhbGwgdGhlIGNvbHVtbnMgdGhhdCBhcmUgcHVibGlz aGVkLiBJZiBubyBjb2x1bW4gbGlzdCBpcworICAgc3BlY2lmaWVkLCB0aGVuIGFsbCBjb2x1bW5z IG9uIHRoZSBwdWJsaXNoZXIgYXJlIHJlcGxpY2F0ZWQuCiAgICBTZWUgPHhyZWYgbGlua2VuZD0i c3FsLWNyZWF0ZXB1YmxpY2F0aW9uIi8+IGZvciBkZXRhaWxzIG9uIHRoZSBzeW50YXguCiAgIDwv cGFyYT4KIApAQCAtMTM5MSw4ICsxMzkxLDExIEBAIFB1YmxpY2F0aW9uczoKIAogICA8cGFyYT4K ICAgIElmIG5vIGNvbHVtbiBsaXN0IGlzIHNwZWNpZmllZCwgYW55IGNvbHVtbnMgYWRkZWQgdG8g dGhlIHRhYmxlIGxhdGVyIGFyZQotICAgYXV0b21hdGljYWxseSByZXBsaWNhdGVkLiBUaGlzIG1l YW5zIHRoYXQgaGF2aW5nIGEgY29sdW1uIGxpc3Qgd2hpY2ggbmFtZXMKLSAgIGFsbCBjb2x1bW5z IGlzIG5vdCB0aGUgc2FtZSBhcyBoYXZpbmcgbm8gY29sdW1uIGxpc3QgYXQgYWxsLgorICAgYXV0 b21hdGljYWxseSByZXBsaWNhdGVkLiBIb3dldmVyLCBhIG5vcm1hbCBjb2x1bW4gbGlzdCAod2l0 aG91dAorICAgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPikgb25seSByZXBsaWNhdGVzIHRoZSBz cGVjaWZpZWQgY29sdW1ucyBhbmQgbm8gbW9yZS4KKyAgIFRoZXJlZm9yZSwgaGF2aW5nIGEgY29s dW1uIGxpc3QgdGhhdCBuYW1lcyBhbGwgY29sdW1ucyBpcyBub3QgdGhlIHNhbWUgYXMKKyAgIGhh dmluZyBubyBjb2x1bW4gbGlzdCBhdCBhbGwsIGFzIG1vcmUgY29sdW1ucyBtYXkgYmUgYWRkZWQg dG8gdGhlIHRhYmxlCisgICBsYXRlci4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpAQCAtMTQwNCw2 ICsxNDA3LDE0IEBAIFB1YmxpY2F0aW9uczoKICAgIEdlbmVyYXRlZCBjb2x1bW5zIGNhbiBhbHNv IGJlIHNwZWNpZmllZCBpbiBhIGNvbHVtbiBsaXN0LiBUaGlzIGFsbG93cwogICAgZ2VuZXJhdGVk IGNvbHVtbnMgdG8gYmUgcHVibGlzaGVkLCByZWdhcmRsZXNzIG9mIHRoZSBwdWJsaWNhdGlvbiBw YXJhbWV0ZXIKICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMt d2l0aC1wdWJsaXNoLWdlbmVyYXRlZC1jb2x1bW5zIj4KKyAgIDxsaXRlcmFsPnB1Ymxpc2hfZ2Vu ZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+PC9saW5rPi4gU3BlY2lmeWluZyBnZW5lcmF0ZWQKKyAg IGNvbHVtbnMgdXNpbmcgdGhlIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNlIGV4Y2x1 ZGVzIHRob3NlIGNvbHVtbnMKKyAgIGZyb20gYmVpbmcgcHVibGlzaGVkLCByZWdhcmRsZXNzIG9m IHRoZQorICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9uLXBhcmFtcy13aXRo LXB1Ymxpc2gtZ2VuZXJhdGVkLWNvbHVtbnMiPgorICAgPGxpdGVyYWw+cHVibGlzaF9nZW5lcmF0 ZWRfY29sdW1uczwvbGl0ZXJhbD48L2xpbms+IHNldHRpbmcuIEhvd2V2ZXIsIGZvcgorICAgZ2Vu ZXJhdGVkIGNvbHVtbnMgdGhhdCBhcmUgbm90IGxpc3RlZCBpbiB0aGUgPGxpdGVyYWw+RVhDRVBU PC9saXRlcmFsPgorICAgY2xhdXNlLCB3aGV0aGVyIHRoZXkgYXJlIHB1Ymxpc2hlZCBvciBub3Qg c3RpbGwgZGVwZW5kcyBvbiB0aGUgdmFsdWUgb2YKKyAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVh dGVwdWJsaWNhdGlvbi1wYXJhbXMtd2l0aC1wdWJsaXNoLWdlbmVyYXRlZC1jb2x1bW5zIj4KICAg IDxsaXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+PC9saW5rPi4gU2Vl CiAgICA8eHJlZiBsaW5rZW5kPSJsb2dpY2FsLXJlcGxpY2F0aW9uLWdlbmNvbHMiLz4gZm9yIGRl dGFpbHMuCiAgIDwvcGFyYT4KQEAgLTE0MjUsMTEgKzE0MzYsMTQgQEAgUHVibGljYXRpb25zOgog CiAgIDxwYXJhPgogICAgSWYgYSBwdWJsaWNhdGlvbiBwdWJsaXNoZXMgPGNvbW1hbmQ+VVBEQVRF PC9jb21tYW5kPiBvcgotICAgPGNvbW1hbmQ+REVMRVRFPC9jb21tYW5kPiBvcGVyYXRpb25zLCBh bnkgY29sdW1uIGxpc3QgbXVzdCBpbmNsdWRlIHRoZQotICAgdGFibGUncyByZXBsaWNhIGlkZW50 aXR5IGNvbHVtbnMgKHNlZQotICAgPHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydGFibGUtcmVwbGlj YS1pZGVudGl0eSIvPikuCisgICA8Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+IG9wZXJhdGlvbnMs IGFueSBjb2x1bW4gbGlzdCBtdXN0IGluY2x1ZGUgdGFibGUncworICAgcmVwbGljYSBpZGVudGl0 eSBjb2x1bW5zIGFuZCBhbnkgY29sdW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGgKKyAgIDxsaXRlcmFs PkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNlIG11c3Qgbm90IGluY2x1ZGUgdGhlIHRhYmxlJ3MgcmVw bGljYQorICAgaWRlbnRpdHkgY29sdW1ucyAoc2VlIDx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnRh YmxlLXJlcGxpY2EtaWRlbnRpdHkiLz4pLgogICAgSWYgYSBwdWJsaWNhdGlvbiBwdWJsaXNoZXMg b25seSA8Y29tbWFuZD5JTlNFUlQ8L2NvbW1hbmQ+IG9wZXJhdGlvbnMsIHRoZW4KLSAgIHRoZSBj b2x1bW4gbGlzdCBtYXkgb21pdCByZXBsaWNhIGlkZW50aXR5IGNvbHVtbnMuCisgICB0aGUgY29s dW1uIGxpc3QgbWF5IG9taXQgcmVwbGljYSBpZGVudGl0eSBjb2x1bW5zIGFuZCB0aGUgY29sdW1u IGxpc3QKKyAgIHNwZWNpZmllZCB3aXRoIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNl IG1heSBpbmNsdWRlIHJlcGxpY2EgaWRlbnRpdHkKKyAgIGNvbHVtbnMuCiAgIDwvcGFyYT4KIAog ICA8cGFyYT4KQEAgLTE0NzQsMTggKzE0ODgsMjEgQEAgUHVibGljYXRpb25zOgogICAgPHRpdGxl PkV4YW1wbGVzPC90aXRsZT4KIAogICAgPHBhcmE+Ci0gICAgQ3JlYXRlIGEgdGFibGUgPHN0cnVj dG5hbWU+dDE8L3N0cnVjdG5hbWU+IHRvIGJlIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBleGFtcGxl LgorICAgIENyZWF0ZSB0YWJsZXMgPGxpdGVyYWw+dDE8L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD50 MjwvbGl0ZXJhbD4gdG8gYmUgdXNlZCBpbgorICAgIHRoZSBmb2xsb3dpbmcgZXhhbXBsZS4KIDxw cm9ncmFtbGlzdGluZz4KIC8qIHB1YiAjICovIENSRUFURSBUQUJMRSB0MShpZCBpbnQsIGEgdGV4 dCwgYiB0ZXh0LCBjIHRleHQsIGQgdGV4dCwgZSB0ZXh0LCBQUklNQVJZIEtFWShpZCkpOworLyog cHViICMgKi8gQ1JFQVRFIFRBQkxFIHQyKGlkIGludCwgYSB0ZXh0LCBiIHRleHQsIGMgdGV4dCwg ZCB0ZXh0LCBlIHRleHQsIFBSSU1BUlkgS0VZKGlkKSk7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFy YT4KIAogICAgPHBhcmE+CiAgICAgQ3JlYXRlIGEgcHVibGljYXRpb24gPGxpdGVyYWw+cDE8L2xp dGVyYWw+LiBBIGNvbHVtbiBsaXN0IGlzIGRlZmluZWQgZm9yCi0gICAgdGFibGUgPHN0cnVjdG5h bWU+dDE8L3N0cnVjdG5hbWU+IHRvIHJlZHVjZSB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgdGhhdCB3 aWxsIGJlCi0gICAgcmVwbGljYXRlZC4gTm90aWNlIHRoYXQgdGhlIG9yZGVyIG9mIGNvbHVtbiBu YW1lcyBpbiB0aGUgY29sdW1uIGxpc3QgZG9lcwotICAgIG5vdCBtYXR0ZXIuCisgICAgdGFibGUg PGxpdGVyYWw+dDE8L2xpdGVyYWw+LCBhbmQgYW5vdGhlciBjb2x1bW4gbGlzdCBpcyBkZWZpbmVk IGZvciB0YWJsZQorICAgIDxsaXRlcmFsPnQyPC9saXRlcmFsPiB1c2luZyB0aGUgPGxpdGVyYWw+ RVhDRVBUPC9saXRlcmFsPiBjbGF1c2UgdG8gcmVkdWNlCisgICAgdGhlIG51bWJlciBvZiBjb2x1 bW5zIHRoYXQgd2lsbCBiZSByZXBsaWNhdGVkLiBOb3RlIHRoYXQgdGhlIG9yZGVyIG9mIGNvbHVt bgorICAgIG5hbWVzIGluIHRoZSBjb2x1bW4gbGlzdHMgZG9lcyBub3QgbWF0dGVyLgogPHByb2dy YW1saXN0aW5nPgotLyogcHViICMgKi8gQ1JFQVRFIFBVQkxJQ0FUSU9OIHAxIEZPUiBUQUJMRSB0 MSAoaWQsIGIsIGEsIGQpOworLyogcHViICMgKi8gQ1JFQVRFIFBVQkxJQ0FUSU9OIHAxIEZPUiBU QUJMRSB0MSAoaWQsIGIsIGEsIGQpLCB0MiBFWENFUFQgKGQsIGEpOwogPC9wcm9ncmFtbGlzdGlu Zz48L3BhcmE+CiAKICAgICA8cGFyYT4KQEAgLTE0OTksNiArMTUxNiw3IEBAIFB1YmxpY2F0aW9u czoKICBwb3N0Z3JlcyB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCiBUYWJs ZXM6CiAgICAgInB1YmxpYy50MSIgKGlkLCBhLCBiLCBkKQorICAgICJwdWJsaWMudDIiIEVYQ0VQ VCAoYSwgZCkKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCiAgICAgPHBhcmE+CkBAIC0xNTE5 LDIzICsxNTM3LDQxIEBAIEluZGV4ZXM6CiAgICAgInQxX3BrZXkiIFBSSU1BUlkgS0VZLCBidHJl ZSAoaWQpCiBQdWJsaWNhdGlvbnM6CiAgICAgInAxIiAoaWQsIGEsIGIsIGQpCisKKy8qIHB1YiAj ICovIFxkIHQyCisgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudDIiCisgQ29sdW1uIHwg IFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdAorLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgIHwgaW50ZWdlciB8 ICAgICAgICAgICB8IG5vdCBudWxsIHwKKyBhICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwg ICAgICAgICAgfAorIGIgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8Cisg YyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwKKyBkICAgICAgfCB0ZXh0 ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfAorIGUgICAgICB8IHRleHQgICAgfCAgICAgICAg ICAgfCAgICAgICAgICB8CitJbmRleGVzOgorICAgICJ0Ml9wa2V5IiBQUklNQVJZIEtFWSwgYnRy ZWUgKGlkKQorUHVibGljYXRpb25zOgorICAgICJwMSIgRVhDRVBUIChhLCBkKQogPC9wcm9ncmFt bGlzdGluZz48L3BhcmE+CiAKICAgICA8cGFyYT4KLSAgICAgT24gdGhlIHN1YnNjcmliZXIgbm9k ZSwgY3JlYXRlIGEgdGFibGUgPHN0cnVjdG5hbWU+dDE8L3N0cnVjdG5hbWU+IHdoaWNoIG5vdwot ICAgICBvbmx5IG5lZWRzIGEgc3Vic2V0IG9mIHRoZSBjb2x1bW5zIHRoYXQgd2VyZSBvbiB0aGUg cHVibGlzaGVyIHRhYmxlCi0gICAgIDxzdHJ1Y3RuYW1lPnQxPC9zdHJ1Y3RuYW1lPiwgYW5kIGFs c28gY3JlYXRlIHRoZSBzdWJzY3JpcHRpb24KKyAgICAgT24gdGhlIHN1YnNjcmliZXIgbm9kZSwg Y3JlYXRlIHRhYmxlcyA8bGl0ZXJhbD50MTwvbGl0ZXJhbD4gYW5kCisgICAgIDxsaXRlcmFsPnQy PC9saXRlcmFsPiB3aGljaCBub3cgb25seSBuZWVkcyBhIHN1YnNldCBvZiB0aGUgY29sdW1ucyB0 aGF0CisgICAgIHdlcmUgb24gdGhlIHB1Ymxpc2hlciB0YWJsZXMgPGxpdGVyYWw+dDE8L2xpdGVy YWw+IGFuZAorICAgICA8bGl0ZXJhbD50MjwvbGl0ZXJhbD4sIGFuZCBhbHNvIGNyZWF0ZSB0aGUg c3Vic2NyaXB0aW9uCiAgICAgIDxsaXRlcmFsPnMxPC9saXRlcmFsPiB0aGF0IHN1YnNjcmliZXMg dG8gdGhlIHB1YmxpY2F0aW9uCiAgICAgIDxsaXRlcmFsPnAxPC9saXRlcmFsPi4KIDxwcm9ncmFt bGlzdGluZz4KIC8qIHN1YiAjICovIENSRUFURSBUQUJMRSB0MShpZCBpbnQsIGIgdGV4dCwgYSB0 ZXh0LCBkIHRleHQsIFBSSU1BUlkgS0VZKGlkKSk7CisvKiBzdWIgIyAqLyBDUkVBVEUgVEFCTEUg dDIoaWQgaW50LCBiIHRleHQsIGMgdGV4dCwgZSB0ZXh0LCBQUklNQVJZIEtFWShpZCkpOwogLyog c3ViICMgKi8gQ1JFQVRFIFNVQlNDUklQVElPTiBzMQogLyogc3ViIC0gKi8gQ09OTkVDVElPTiAn aG9zdD1sb2NhbGhvc3QgZGJuYW1lPXRlc3RfcHViIGFwcGxpY2F0aW9uX25hbWU9czEnCiAvKiBz dWIgLSAqLyBQVUJMSUNBVElPTiBwMTsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCiAgICAg PHBhcmE+Ci0gICAgIE9uIHRoZSBwdWJsaXNoZXIgbm9kZSwgaW5zZXJ0IHNvbWUgcm93cyB0byB0 YWJsZSA8c3RydWN0bmFtZT50MTwvc3RydWN0bmFtZT4uCisgICAgIE9uIHRoZSBwdWJsaXNoZXIg bm9kZSwgaW5zZXJ0IHNvbWUgcm93cyB0byB0YWJsZXMgPGxpdGVyYWw+dDE8L2xpdGVyYWw+Cisg ICAgIGFuZCA8bGl0ZXJhbD50MjwvbGl0ZXJhbD4KIDxwcm9ncmFtbGlzdGluZz4KIC8qIHB1YiAj ICovIElOU0VSVCBJTlRPIHQxIFZBTFVFUygxLCAnYS0xJywgJ2ItMScsICdjLTEnLCAnZC0xJywg J2UtMScpOwogLyogcHViICMgKi8gSU5TRVJUIElOVE8gdDEgVkFMVUVTKDIsICdhLTInLCAnYi0y JywgJ2MtMicsICdkLTInLCAnZS0yJyk7CkBAIC0xNTQ3LDExICsxNTgzLDIxIEBAIFB1YmxpY2F0 aW9uczoKICAgMiB8IGEtMiB8IGItMiB8IGMtMiB8IGQtMiB8IGUtMgogICAzIHwgYS0zIHwgYi0z IHwgYy0zIHwgZC0zIHwgZS0zCiAoMyByb3dzKQorLyogcHViICMgKi8gSU5TRVJUIElOVE8gdDIg VkFMVUVTKDEsICdhLTEnLCAnYi0xJywgJ2MtMScsICdkLTEnLCAnZS0xJyk7CisvKiBwdWIgIyAq LyBJTlNFUlQgSU5UTyB0MiBWQUxVRVMoMiwgJ2EtMicsICdiLTInLCAnYy0yJywgJ2QtMicsICdl LTInKTsKKy8qIHB1YiAjICovIElOU0VSVCBJTlRPIHQyIFZBTFVFUygzLCAnYS0zJywgJ2ItMycs ICdjLTMnLCAnZC0zJywgJ2UtMycpOworLyogcHViICMgKi8gU0VMRUNUICogRlJPTSB0MiBPUkRF UiBCWSBpZDsKKyBpZCB8ICBhICB8ICBiICB8ICBjICB8ICBkICB8ICBlCistLS0tKy0tLS0tKy0t LS0tKy0tLS0tKy0tLS0tKy0tLS0tCisgIDEgfCBhLTEgfCBiLTEgfCBjLTEgfCBkLTEgfCBlLTEK KyAgMiB8IGEtMiB8IGItMiB8IGMtMiB8IGQtMiB8IGUtMgorICAzIHwgYS0zIHwgYi0zIHwgYy0z IHwgZC0zIHwgZS0zCisoMyByb3dzKQogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAKICAgICA8 cGFyYT4KLSAgICAgT25seSBkYXRhIGZyb20gdGhlIGNvbHVtbiBsaXN0IG9mIHB1YmxpY2F0aW9u IDxsaXRlcmFsPnAxPC9saXRlcmFsPiBpcwotICAgICByZXBsaWNhdGVkLgorICAgICBPbmx5IGRh dGEgc3BlY2lmaWVkIGJ5IHRoZSBjb2x1bW4gbGlzdHMgb2YgcHVibGljYXRpb24KKyAgICAgPGxp dGVyYWw+cDE8L2xpdGVyYWw+IGlzIHJlcGxpY2F0ZWQuCiA8cHJvZ3JhbWxpc3Rpbmc+CiAvKiBz dWIgIyAqLyBTRUxFQ1QgKiBGUk9NIHQxIE9SREVSIEJZIGlkOwogIGlkIHwgIGIgIHwgIGEgIHwg IGQKQEAgLTE1NjAsNiArMTYwNiwxMyBAQCBQdWJsaWNhdGlvbnM6CiAgIDIgfCBiLTIgfCBhLTIg fCBkLTIKICAgMyB8IGItMyB8IGEtMyB8IGQtMwogKDMgcm93cykKKy8qIHN1YiAjICovIFNFTEVD VCAqIEZST00gdDIgT1JERVIgQlkgaWQ7CisgaWQgfCAgYiAgfCAgYyAgfCAgZQorLS0tLSstLS0t LSstLS0tLSstLS0tLQorICAxIHwgYi0xIHwgYy0xIHwgZS0xCisgIDIgfCBiLTIgfCBjLTIgfCBl LTIKKyAgMyB8IGItMyB8IGMtMyB8IGUtMworKDMgcm93cykKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9w YXJhPgogCiAgIDwvc2VjdDI+CkBAIC0xNjU2LDYgKzE3MDksMTcgQEAgUHVibGljYXRpb25zOgog ICAgPC9pdGVtaXplZGxpc3Q+CiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIEdlbmVyYXRlZCBj b2x1bW5zIHNwZWNpZmllZCBpbiB0aGUgY29sdW1uIGxpc3Qgd2l0aCB0aGUKKyAgIDxsaXRlcmFs PkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNlIGFyZSBub3QgcHVibGlzaGVkLCByZWdhcmRsZXNzIG9m IHRoZSB2YWx1ZQorICAgb2YgdGhlIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlv bi1wYXJhbXMtd2l0aC1wdWJsaXNoLWdlbmVyYXRlZC1jb2x1bW5zIj4KKyAgIDxsaXRlcmFsPnB1 Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+PC9saW5rPiBwYXJhbWV0ZXIuIEhvd2V2 ZXIsCisgICBnZW5lcmF0ZWQgY29sdW1ucyB0aGF0IGFyZSBub3QgcGFydCBvZiB0aGUgY29sdW1u IGxpc3Qgd2l0aCB0aGUKKyAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNlIGFyZSBw dWJsaXNoZWQgYWNjb3JkaW5nIHRvIHRoZSB2YWx1ZSBvZiB0aGUKKyAgIDxsaW5rIGxpbmtlbmQ9 InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtd2l0aC1wdWJsaXNoLWdlbmVyYXRlZC1jb2x1 bW5zIj4KKyAgIDxsaXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+PC9s aW5rPiBwYXJhbWV0ZXIuCisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIFRoZSBmb2xsb3dpbmcg dGFibGUgc3VtbWFyaXplcyBiZWhhdmlvciB3aGVuIHRoZXJlIGFyZSBnZW5lcmF0ZWQgY29sdW1u cwogICAgaW52b2x2ZWQgaW4gdGhlIGxvZ2ljYWwgcmVwbGljYXRpb24uIFJlc3VsdHMgYXJlIHNo b3duIGZvciB3aGVuCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0 aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKaW5kZXgg ZTBlOTQwZmY4YzMuLjFmNDhhOTRlMWYyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Fs dGVyX3B1YmxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNh dGlvbi5zZ21sCkBAIC0zMiw3ICszMiw3IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVTRVQKIAogPHBocmFzZT53 aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fb2JqZWN0PC9y ZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNlPgogCi0gICAgVEFCTEUgWyBPTkxZIF0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICog XSBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNl YWJsZT4gWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXSBbLCAuLi4gXQorICAgIFRBQkxFIFsgT05M WSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJs ZT4gWyAqIF0gWyBbIEVYQ0VQVCBdICggY29sdW1uX25hbWUgWywgLi4uIF0gKSBdIFsgV0hFUkUg KCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ ICkgXSBbLCAuLi4gXQogICAgIFRBQkxFUyBJTiBTQ0hFTUEgeyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NIRU1BIH0g WywgLi4uIF0KIAogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ dGFibGVfZXhjZXB0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgpAQCAtMjYz LDYgKzI2MywxNCBAQCBBTFRFUiBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFE RCBBTEwgVEFCTEVTIEVYQ0VQVCAodXNlcnMsIGRlcGFydG1lbgogICAgPHN0cnVjdG5hbWU+cHJv ZHVjdGlvbl9wdWJsaWNhdGlvbjwvc3RydWN0bmFtZT46CiA8cHJvZ3JhbWxpc3Rpbmc+CiBBTFRF UiBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFERCBUQUJMRSB1c2VycywgZGVw YXJ0bWVudHMsIFRBQkxFUyBJTiBTQ0hFTUEgcHJvZHVjdGlvbjsKKzwvcHJvZ3JhbWxpc3Rpbmc+ PC9wYXJhPgorCisgIDxwYXJhPgorICAgQWx0ZXIgcHVibGljYXRpb24gPHN0cnVjdG5hbWU+bXlw dWJsaWNhdGlvbjwvc3RydWN0bmFtZT4gdG8gYWRkIHRhYmxlCisgICA8c3RydWN0bmFtZT51c2Vy czwvc3RydWN0bmFtZT4gZXhjZXB0IGNvbHVtbgorICAgPHN0cnVjdG5hbWU+c2VjdXJpdHlfcGlu PC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFBVQkxJQ0FUSU9OIHByb2R1 Y3Rpb25fcHVibGljYXRpb24gQUREIFRBQkxFIHVzZXJzIEVYQ0VQVCAoc2VjdXJpdHlfcGluKTsK IDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCiAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3B1YmxpY2F0aW9uLnNnbWwKaW5kZXggOGI2MTY2NTEyNzIuLjlmNTgxZTk2NDQwIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTI3LDcgKzI3LDcgQEAg Q1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9y ZXBsYWNlYWJsZT4KIAogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cHVibGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNlPgog Ci0gICAgVEFCTEUgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxl X25hbWU8L3JlcGxhY2VhYmxlPiBbICogXSBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXSBb LCAuLi4gXQorICAgIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWyBbIEVYQ0VQVCBdICggY29sdW1uX25h bWUgWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXSBbLCAuLi4gXQogICAgIFRBQkxFUyBJTiBTQ0hF TUEgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2Vh YmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWywgLi4uIF0KIAogPHBocmFzZT53aGVyZSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YWxsX3B1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFi bGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KQEAgLTk2LDE3ICs5NiwyNCBAQCBDUkVBVEUgUFVCTElD QVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgog ICAgICA8L3BhcmE+CiAKICAgICAgPHBhcmE+Ci0gICAgICBXaGVuIGEgY29sdW1uIGxpc3QgaXMg c3BlY2lmaWVkLCBvbmx5IHRoZSBuYW1lZCBjb2x1bW5zIGFyZSByZXBsaWNhdGVkLgotICAgICAg VGhlIGNvbHVtbiBsaXN0IGNhbiBjb250YWluIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1ucyBhcyB3 ZWxsLiBJZiB0aGUKLSAgICAgIGNvbHVtbiBsaXN0IGlzIG9taXR0ZWQsIHRoZSBwdWJsaWNhdGlv biB3aWxsIHJlcGxpY2F0ZSBhbGwgbm9uLWdlbmVyYXRlZAotICAgICAgY29sdW1ucyAoaW5jbHVk aW5nIGFueSBhZGRlZCBpbiB0aGUgZnV0dXJlKSBieSBkZWZhdWx0LiBTdG9yZWQgZ2VuZXJhdGVk Ci0gICAgICBjb2x1bW5zIGNhbiBhbHNvIGJlIHJlcGxpY2F0ZWQgaWYgPGxpdGVyYWw+cHVibGlz aF9nZW5lcmF0ZWRfY29sdW1uczwvbGl0ZXJhbD4KLSAgICAgIGlzIHNldCB0byA8bGl0ZXJhbD5z dG9yZWQ8L2xpdGVyYWw+LiBTcGVjaWZ5aW5nIGEgY29sdW1uIGxpc3QgaGFzIG5vCi0gICAgICBl ZmZlY3Qgb24gPGxpdGVyYWw+VFJVTkNBVEU8L2xpdGVyYWw+IGNvbW1hbmRzLiBTZWUKKyAgICAg IFdoZW4gYSBjb2x1bW4gbGlzdCB3aXRob3V0IDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gaXMg c3BlY2lmaWVkLCBvbmx5CisgICAgICB0aGUgbmFtZWQgY29sdW1ucyBhcmUgcmVwbGljYXRlZC4g VGhlIGNvbHVtbiBsaXN0IGNhbiBjb250YWluIHN0b3JlZAorICAgICAgZ2VuZXJhdGVkIGNvbHVt bnMgYXMgd2VsbC4gSWYgdGhlIGNvbHVtbiBsaXN0IGlzIG9taXR0ZWQsIHRoZSBwdWJsaWNhdGlv bgorICAgICAgd2lsbCByZXBsaWNhdGUgYWxsIG5vbi1nZW5lcmF0ZWQgY29sdW1ucyAoaW5jbHVk aW5nIGFueSBhZGRlZCBpbiB0aGUKKyAgICAgIGZ1dHVyZSkgYnkgZGVmYXVsdC4gU3RvcmVkIGdl bmVyYXRlZCBjb2x1bW5zIGNhbiBhbHNvIGJlIHJlcGxpY2F0ZWQgaWYKKyAgICAgIDxsaXRlcmFs PnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+IGlzIHNldCB0bworICAgICAgPGxp dGVyYWw+c3RvcmVkPC9saXRlcmFsPi4gU3BlY2lmeWluZyBhIGNvbHVtbiBsaXN0IGhhcyBubyBl ZmZlY3Qgb24KKyAgICAgIDxsaXRlcmFsPlRSVU5DQVRFPC9saXRlcmFsPiBjb21tYW5kcy4gU2Vl CiAgICAgICA8eHJlZiBsaW5rZW5kPSJsb2dpY2FsLXJlcGxpY2F0aW9uLWNvbC1saXN0cyIvPiBm b3IgZGV0YWlscyBhYm91dCBjb2x1bW4KICAgICAgIGxpc3RzLgogICAgICA8L3BhcmE+CiAKKyAg ICAgPHBhcmE+CisgICAgICBXaGVuIGEgY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVkIHdpdGggPGxp dGVyYWw+RVhDRVBUPC9saXRlcmFsPiwgdGhlIG5hbWVkCisgICAgICBjb2x1bW5zIGFyZSBub3Qg cmVwbGljYXRlZC4gU3BlY2lmeWluZyBhIGNvbHVtbiBsaXN0IGhhcyBubyBlZmZlY3Qgb24KKyAg ICAgIDxsaXRlcmFsPlRSVU5DQVRFPC9saXRlcmFsPiBjb21tYW5kcy4KKyAgICAgPC9wYXJhPgor CiAgICAgIDxwYXJhPgogICAgICAgT25seSBwZXJzaXN0ZW50IGJhc2UgdGFibGVzIGFuZCBwYXJ0 aXRpb25lZCB0YWJsZXMgY2FuIGJlIHBhcnQgb2YgYQogICAgICAgcHVibGljYXRpb24uICBUZW1w b3JhcnkgdGFibGVzLCB1bmxvZ2dlZCB0YWJsZXMsIGZvcmVpZ24gdGFibGVzLApAQCAtMzY3LDEw ICszNzQsMTIgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgotICAgQW55IGNv bHVtbiBsaXN0IG11c3QgaW5jbHVkZSB0aGUgPGxpdGVyYWw+UkVQTElDQSBJREVOVElUWTwvbGl0 ZXJhbD4gY29sdW1ucwotICAgaW4gb3JkZXIgZm9yIDxjb21tYW5kPlVQREFURTwvY29tbWFuZD4g b3IgPGNvbW1hbmQ+REVMRVRFPC9jb21tYW5kPgotICAgb3BlcmF0aW9ucyB0byBiZSBwdWJsaXNo ZWQuIFRoZXJlIGFyZSBubyBjb2x1bW4gbGlzdCByZXN0cmljdGlvbnMgaWYgdGhlCi0gICBwdWJs aWNhdGlvbiBwdWJsaXNoZXMgb25seSA8Y29tbWFuZD5JTlNFUlQ8L2NvbW1hbmQ+IG9wZXJhdGlv bnMuCisgICBJbiBvcmRlciBmb3IgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiBvciA8Y29tbWFu ZD5ERUxFVEU8L2NvbW1hbmQ+CisgICBvcGVyYXRpb25zIHRvIHdvcmssIGFsbCB0aGUgPGxpdGVy YWw+UkVQTElDQSBJREVOVElUWTwvbGl0ZXJhbD4gY29sdW1ucyBtdXN0CisgICBiZSBwdWJsaXNo ZWQuIFNvLCBhbnkgY29sdW1uIGxpc3QgbXVzdCBuYW1lIGFsbAorICAgPGxpdGVyYWw+UkVQTElD QSBJREVOVElUWTwvbGl0ZXJhbD4gY29sdW1ucywgYW5kIGFueQorICAgPGxpdGVyYWw+RVhDRVBU PC9saXRlcmFsPiBjb2x1bW4gbGlzdCBtdXN0IG5vdCBuYW1lIGFueQorICAgPGxpdGVyYWw+UkVQ TElDQSBJREVOVElUWTwvbGl0ZXJhbD4gY29sdW1ucy4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpA QCAtMzkzLDYgKzQwMiwxNiBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAgdG8gYmUgcHVibGlzaGVkLgogICA8 L3BhcmE+CiAKKyAgPHBhcmE+CisgICBUaGUgZ2VuZXJhdGVkIGNvbHVtbnMgdGhhdCBhcmUgcGFy dCBvZiB0aGUgY29sdW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGggdGhlCisgICA8bGl0ZXJhbD5FWENF UFQ8L2xpdGVyYWw+IGNsYXVzZSBhcmUgbm90IHB1Ymxpc2hlZCwgcmVnYXJkbGVzcyBvZiB0aGUK KyAgIDxsaXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+IG9wdGlvbi4g SG93ZXZlciwgZ2VuZXJhdGVkCisgICBjb2x1bW5zIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIHRoZSBj b2x1bW4gbGlzdCBzcGVjaWZpZWQgd2l0aCB0aGUKKyAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJh bD4gY2xhdXNlIGFyZSBwdWJsaXNoZWQgYWNjb3JkaW5nIHRvIHRoZSB2YWx1ZSBvZiB0aGUKKyAg IDxsaXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+IG9wdGlvbi4gU2Vl CisgICA8eHJlZiBsaW5rZW5kPSJsb2dpY2FsLXJlcGxpY2F0aW9uLWdlbmNvbHMiLz4gZm9yIGRl dGFpbHMuCisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIFRoZSByb3cgZmlsdGVyIG9uIGEgdGFi bGUgYmVjb21lcyByZWR1bmRhbnQgaWYKICAgIDxsaXRlcmFsPkZPUiBUQUJMRVMgSU4gU0NIRU1B PC9saXRlcmFsPiBpcyBzcGVjaWZpZWQgYW5kIHRoZSB0YWJsZQpAQCAtNTE0LDYgKzUzMywxNSBA QCBDUkVBVEUgUFVCTElDQVRJT04gbXlwdWJsaWNhdGlvbiBGT1IgQUxMIFRBQkxFUyBFWENFUFQg KHVzZXJzLCBkZXBhcnRtZW50cyk7CiBDUkVBVEUgUFVCTElDQVRJT04gdXNlcnNfZmlsdGVyZWQg Rk9SIFRBQkxFIHVzZXJzICh1c2VyX2lkLCBmaXJzdG5hbWUpOwogPC9wcm9ncmFtbGlzdGluZz48 L3BhcmE+CiAKKyAgPHBhcmE+CisgICBDcmVhdGUgYSBwdWJsaWNhdGlvbiB0aGF0IHB1Ymxpc2hl cyBhbGwgY2hhbmdlcyBmb3IgdGFibGUKKyAgIDxzdHJ1Y3RuYW1lPnVzZXJzPC9zdHJ1Y3RuYW1l PiBleGNlcHQgY2hhbmdlcyBmb3IgY29sdW1uCisgICA8c3RydWN0bmFtZT5zZWN1cml0eV9waW48 L3N0cnVjdG5hbWU+OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHVzZXJz X3NhZmUgRk9SIFRBQkxFIHVzZXJzIEVYQ0VQVCAoc2VjdXJpdHlfcGluKTsKKzwvcHJvZ3JhbWxp c3Rpbmc+CisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIENyZWF0ZSBhIHB1YmxpY2F0aW9uIHRo YXQgcHVibGlzaGVzIGFsbCBzZXF1ZW5jZXMgZm9yIHN5bmNocm9uaXphdGlvbjoKIDxwcm9ncmFt bGlzdGluZz4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24u YyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwppbmRleCBiZWMzYTM0ZTQ4 Zi4uMDJhMTIwM2RjYWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGlj YXRpb24uYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKQEAgLTI2 NiwxNCArMjY2LDE5IEBAIGlzX3NjaGVtYV9wdWJsaWNhdGlvbihPaWQgcHViaWQpCiAgKiBJZiBh IGNvbHVtbiBsaXN0IGlzIGZvdW5kLCB0aGUgY29ycmVzcG9uZGluZyBiaXRtYXAgaXMgcmV0dXJu ZWQgdGhyb3VnaCB0aGUKICAqIGNvbHMgcGFyYW1ldGVyLCBpZiBwcm92aWRlZC4gVGhlIGJpdG1h cCBpcyBjb25zdHJ1Y3RlZCB3aXRoaW4gdGhlIGdpdmVuCiAgKiBtZW1vcnkgY29udGV4dCAobWN4 dCkuCisgKgorICogSWYgYSBjb2x1bW4gbGlzdCBpcyBmb3VuZCBzcGVjaWZpZWQgd2l0aCBFWENF UFQgY2xhdXNlLCBleGNlcHRfY29sdW1ucyBpcyBzZXQKKyAqIHRvIHRydWUuCiAgKi8KIGJvb2wK IGNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChQdWJsaWNhdGlvbiAqcHViLCBPaWQgcmVsaWQs IE1lbW9yeUNvbnRleHQgbWN4dCwKLQkJCQkJCQlCaXRtYXBzZXQgKipjb2xzKQorCQkJCQkJCUJp dG1hcHNldCAqKmNvbHMsIGJvb2wgKmV4Y2VwdF9jb2x1bW5zKQogewogCUhlYXBUdXBsZQljZnR1 cGxlOwogCWJvb2wJCWZvdW5kID0gZmFsc2U7CiAKKwkqZXhjZXB0X2NvbHVtbnMgPSBmYWxzZTsK KwogCWlmIChwdWItPmFsbHRhYmxlcykKIAkJcmV0dXJuIGZhbHNlOwogCkBAIC0yOTksNiArMzA0 LDE2IEBAIGNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChQdWJsaWNhdGlvbiAqcHViLCBPaWQg cmVsaWQsIE1lbW9yeUNvbnRleHQgbWN4dCwKIAkJCWZvdW5kID0gdHJ1ZTsKIAkJfQogCisJCS8q IExvb2t1cCB0aGUgZXhjZXB0IGF0dHJpYnV0ZSAqLworCQljZmRhdHVtID0gU3lzQ2FjaGVHZXRB dHRyKFBVQkxJQ0FUSU9OUkVMTUFQLCBjZnR1cGxlLAorCQkJCQkJCQkgIEFudW1fcGdfcHVibGlj YXRpb25fcmVsX3ByZXhjZXB0LCAmaXNudWxsKTsKKworCQlpZiAoIWlzbnVsbCkKKwkJeworCQkJ QXNzZXJ0KCFwdWItPmFsbHRhYmxlcyk7CisJCQkqZXhjZXB0X2NvbHVtbnMgPSBEYXR1bUdldEJv b2woY2ZkYXR1bSk7CisJCX0KKwogCQlSZWxlYXNlU3lzQ2FjaGUoY2Z0dXBsZSk7CiAJfQogCkBA IC02NjAsMTAgKzY3NSwxMiBAQCBwdWJfY29sbGlzdF90b19iaXRtYXBzZXQoQml0bWFwc2V0ICpj b2x1bW5zLCBEYXR1bSBwdWJjb2xzLCBNZW1vcnlDb250ZXh0IG1jeHQpCiAgKiBSZXR1cm5zIGEg Yml0bWFwIHJlcHJlc2VudGluZyB0aGUgY29sdW1ucyBvZiB0aGUgc3BlY2lmaWVkIHRhYmxlLgog ICoKICAqIEdlbmVyYXRlZCBjb2x1bW5zIGFyZSBpbmNsdWRlZCBpZiBpbmNsdWRlX2dlbmNvbHNf dHlwZSBpcwotICogUFVCTElTSF9HRU5DT0xTX1NUT1JFRC4KKyAqIFBVQkxJU0hfR0VOQ09MU19T VE9SRUQuIENvbHVtbnMgdGhhdCBhcmUgaW4gdGhlIGV4Y2VwdF9jb2xzIGFyZSBleGNsdWRlZCBm cm9tCisgKiB0aGUgY29sdW1uIGxpc3QuCiAgKi8KIEJpdG1hcHNldCAqCi1wdWJfZm9ybV9jb2xz X21hcChSZWxhdGlvbiByZWxhdGlvbiwgUHVibGlzaEdlbmNvbHNUeXBlIGluY2x1ZGVfZ2VuY29s c190eXBlKQorcHViX2Zvcm1fY29sc19tYXAoUmVsYXRpb24gcmVsYXRpb24sIFB1Ymxpc2hHZW5j b2xzVHlwZSBpbmNsdWRlX2dlbmNvbHNfdHlwZSwKKwkJCQkgIEJpdG1hcHNldCAqZXhjZXB0X2Nv bHMpCiB7CiAJQml0bWFwc2V0ICAqcmVzdWx0ID0gTlVMTDsKIAlUdXBsZURlc2MJZGVzYyA9IFJl bGF0aW9uR2V0RGVzY3IocmVsYXRpb24pOwpAQCAtNjg2LDYgKzcwMyw5IEBAIHB1Yl9mb3JtX2Nv bHNfbWFwKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaXNoR2VuY29sc1R5cGUgaW5jbHVkZV9nZW5j b2xzX3R5cGUpCiAJCQkJY29udGludWU7CiAJCX0KIAorCQlpZiAoZXhjZXB0X2NvbHMgJiYgYm1z X2lzX21lbWJlcihhdHQtPmF0dG51bSwgZXhjZXB0X2NvbHMpKQorCQkJY29udGludWU7CisKIAkJ cmVzdWx0ID0gYm1zX2FkZF9tZW1iZXIocmVzdWx0LCBhdHQtPmF0dG51bSk7CiAJfQogCkBAIC03 OTAsOCArODEwLDEwIEBAIEdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCwgYm9vbCBl eGNlcHRfZmxhZykKIAl7CiAJCUhlYXBUdXBsZQl0dXAgPSAmcHVicmVsbGlzdC0+bWVtYmVyc1tp XS0+dHVwbGU7CiAJCU9pZAkJCXB1YmlkID0gKChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VU U1RSVUNUKHR1cCkpLT5wcnB1YmlkOworCQlib29sCQlpc19leGNlcHRfdGFibGUgPSAoKEZvcm1f cGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnByZXhjZXB0ICYmCisJCQloZWFw X2F0dGlzbnVsbCh0dXAsIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3ByYXR0cnMsIE5VTEwpOwog Ci0JCWlmIChleGNlcHRfZmxhZyA9PSAoKEZvcm1fcGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJV Q1QodHVwKSktPnByZXhjZXB0KQorCQlpZiAoZXhjZXB0X2ZsYWcgPT0gaXNfZXhjZXB0X3RhYmxl KQogCQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCBwdWJpZCk7CiAJfQogCkBAIC04MzEs MTAgKzg1MywxMiBAQCBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0 aW9uUGFydE9wdCBwdWJfcGFydG9wdCwKIAl3aGlsZSAoSGVhcFR1cGxlSXNWYWxpZCh0dXAgPSBz eXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKIAl7CiAJCUZvcm1fcGdfcHVibGljYXRpb25fcmVsIHB1 YnJlbDsKKwkJYm9vbAkJaGFzX2NvbGxpc3QgPSBmYWxzZTsKIAogCQlwdWJyZWwgPSAoRm9ybV9w Z19wdWJsaWNhdGlvbl9yZWwpIEdFVFNUUlVDVCh0dXApOworCQloYXNfY29sbGlzdCA9ICFoZWFw X2F0dGlzbnVsbCh0dXAsIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3ByYXR0cnMsIE5VTEwpOwog Ci0JCWlmIChleGNlcHRfZmxhZyA9PSBwdWJyZWwtPnByZXhjZXB0KQorCQlpZiAoZXhjZXB0X2Zs YWcgPT0gKHB1YnJlbC0+cHJleGNlcHQgJiYgIWhhc19jb2xsaXN0KSkKIAkJCXJlc3VsdCA9IEdl dFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9ucyhyZXN1bHQsIHB1Yl9wYXJ0b3B0LAogCQkJCQkJ CQkJCQkJCXB1YnJlbC0+cHJyZWxpZCk7CiAKQEAgLTEyOTEsNiArMTMxNSw3IEBAIHBnX2dldF9w dWJsaWNhdGlvbl90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJT2lkCQkJc2NoZW1haWQgPSBn ZXRfcmVsX25hbWVzcGFjZShyZWxpZCk7CiAJCURhdHVtCQl2YWx1ZXNbTlVNX1BVQkxJQ0FUSU9O X1RBQkxFU19FTEVNXSA9IHswfTsKIAkJYm9vbAkJbnVsbHNbTlVNX1BVQkxJQ0FUSU9OX1RBQkxF U19FTEVNXSA9IHswfTsKKwkJQml0bWFwc2V0ICAqZXhjZXB0X2NvbHVtbnMgPSBOVUxMOwogCiAJ CS8qCiAJCSAqIEZvcm0gdHVwbGUgd2l0aCBhcHByb3ByaWF0ZSBkYXRhLgpAQCAtMTMxNSwxMSAr MTM0MCwyOSBAQCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAK IAkJaWYgKEhlYXBUdXBsZUlzVmFsaWQocHVidHVwbGUpKQogCQl7Ci0JCQkvKiBMb29rdXAgdGhl IGNvbHVtbiBsaXN0IGF0dHJpYnV0ZS4gKi8KIAkJCXZhbHVlc1syXSA9IFN5c0NhY2hlR2V0QXR0 cihQVUJMSUNBVElPTlJFTE1BUCwgcHVidHVwbGUsCiAJCQkJCQkJCQkJQW51bV9wZ19wdWJsaWNh dGlvbl9yZWxfcHJhdHRycywKIAkJCQkJCQkJCQkmKG51bGxzWzJdKSk7CiAKKwkJCWlmICghbnVs bHNbMl0pCisJCQl7CisJCQkJRGF0dW0JCWV4Y2VwdERhdHVtOworCQkJCWJvb2wJCWlzbnVsbDsK KworCQkJCS8qCisJCQkJICogV2UgZmV0Y2ggcHVidHVwbGUgaWYgcHVibGljYXRpb24gaXMgbm90 IEZPUiBBTEwgVEFCTEVTIGFuZAorCQkJCSAqIG5vdCBGT1IgVEFCTEVTIElOIFNDSEVNQS4gU28g aWYgcHJleGNlcHQgaXMgdHJ1ZSwgaXQKKwkJCQkgKiBpbmRpY2F0ZXMgdGhhdCBwcmF0dHJzIGNv bnRhaW5zIGNvbHVtbnMgdG8gYmUgZXhjbHVkZWQgZm9yCisJCQkJICogcmVwbGljYXRpb24uCisJ CQkJICovCisJCQkJZXhjZXB0RGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoUFVCTElDQVRJT05SRUxN QVAsIHB1YnR1cGxlLAorCQkJCQkJCQkJCQkgIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3ByZXhj ZXB0LAorCQkJCQkJCQkJCQkgICZpc251bGwpOworCisJCQkJaWYgKCFpc251bGwgJiYgRGF0dW1H ZXRCb29sKGV4Y2VwdERhdHVtKSkKKwkJCQkJZXhjZXB0X2NvbHVtbnMgPSBwdWJfY29sbGlzdF90 b19iaXRtYXBzZXQoTlVMTCwgdmFsdWVzWzJdLCBOVUxMKTsKKwkJCX0KKwogCQkJLyogTnVsbCBp bmRpY2F0ZXMgbm8gZmlsdGVyLiAqLwogCQkJdmFsdWVzWzNdID0gU3lzQ2FjaGVHZXRBdHRyKFBV QkxJQ0FUSU9OUkVMTUFQLCBwdWJ0dXBsZSwKIAkJCQkJCQkJCQlBbnVtX3BnX3B1YmxpY2F0aW9u X3JlbF9wcnF1YWwsCkBAIC0xMzMxLDggKzEzNzQsMTIgQEAgcGdfZ2V0X3B1YmxpY2F0aW9uX3Rh YmxlcyhQR19GVU5DVElPTl9BUkdTKQogCQkJbnVsbHNbM10gPSB0cnVlOwogCQl9CiAKLQkJLyog U2hvdyBhbGwgY29sdW1ucyB3aGVuIHRoZSBjb2x1bW4gbGlzdCBpcyBub3Qgc3BlY2lmaWVkLiAq LwotCQlpZiAobnVsbHNbMl0pCisJCS8qCisJCSAqIENvbnN0cnVjdCBjb2x1bW4gbGlzdCB0byBz aG93IGFsbCBjb2x1bW5zIHdoZW4gbm8gY29sdW1uIGxpc3QgaXMKKwkJICogc3BlY2lmaWVkIG9y IHRvIHNob3cgcmVtYWluaW5nIGNvbHVtbnMgd2hlbiBhIGNvbHVtbiBsaXN0IGlzCisJCSAqIHBy b3ZpZGVkIHdpdGggRVhDRVBULgorCQkgKi8KKwkJaWYgKGV4Y2VwdF9jb2x1bW5zIHx8IG51bGxz WzJdKQogCQl7CiAJCQlSZWxhdGlvbglyZWwgPSB0YWJsZV9vcGVuKHJlbGlkLCBBY2Nlc3NTaGFy ZUxvY2spOwogCQkJaW50CQkJbmF0dG51bXMgPSAwOwpAQCAtMTM2Myw2ICsxNDEwLDEzIEBAIHBn X2dldF9wdWJsaWNhdGlvbl90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJCWNvbnRpbnVl OwogCQkJCX0KIAorCQkJCS8qCisJCQkJICogU2tpcCBjb2x1bW5zIHRoYXQgYXJlIHBhcnQgb2Yg Y29sdW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGgKKwkJCQkgKiBFWENFUFQuCisJCQkJICovCisJCQkJ aWYgKGV4Y2VwdF9jb2x1bW5zICYmIGJtc19pc19tZW1iZXIoYXR0LT5hdHRudW0sIGV4Y2VwdF9j b2x1bW5zKSkKKwkJCQkJY29udGludWU7CisKIAkJCQlhdHRudW1zW25hdHRudW1zKytdID0gYXR0 LT5hdHRudW07CiAJCQl9CiAKQEAgLTEzNzEsNiArMTQyNSwxMSBAQCBwZ19nZXRfcHVibGljYXRp b25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJdmFsdWVzWzJdID0gUG9pbnRlckdldERh dHVtKGJ1aWxkaW50MnZlY3RvcihhdHRudW1zLCBuYXR0bnVtcykpOwogCQkJCW51bGxzWzJdID0g ZmFsc2U7CiAJCQl9CisJCQllbHNlCisJCQl7CisJCQkJdmFsdWVzWzJdID0gKERhdHVtKSAwOwor CQkJCW51bGxzWzJdID0gdHJ1ZTsKKwkJCX0KIAogCQkJdGFibGVfY2xvc2UocmVsLCBBY2Nlc3NT aGFyZUxvY2spOwogCQl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNh dGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCmluZGV4 IDZmYjY5ZTNmM2JhLi4wNGU3NWM1ZWYxYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvcHVibGljYXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRp b25jbWRzLmMKQEAgLTIyNyw3ICsyMjcsNiBAQCBPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcyhM aXN0ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJc3dpdGNoIChwdWJv YmotPnB1Ym9ianR5cGUpCiAJCXsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpfVEFCTEU6Ci0JCQkJ cHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gZmFsc2U7CiAJCQkJKnJlbHMgPSBsYXBwZW5kKCpy ZWxzLCBwdWJvYmotPnB1YnRhYmxlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgUFVCTElDQVRJT05P QkpfRVhDRVBUX1RBQkxFOgpAQCAtMzgxLDggKzM4MCw4IEBAIHB1Yl9yZl9jb250YWluc19pbnZh bGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMs CiAgKiBUaGlzIGZ1bmN0aW9uIGV2YWx1YXRlcyB0d28gY29uZGl0aW9uczoKICAqCiAgKiAxLiBF bnN1cmVzIHRoYXQgYWxsIGNvbHVtbnMgcmVmZXJlbmNlZCBpbiB0aGUgUkVQTElDQSBJREVOVElU WSBhcmUgY292ZXJlZAotICogICAgYnkgdGhlIGNvbHVtbiBsaXN0LiBJZiBhbnkgY29sdW1uIGlz IG1pc3NpbmcsICppbnZhbGlkX2NvbHVtbl9saXN0IGlzIHNldAotICogICAgdG8gdHJ1ZS4KKyAq ICAgIGJ5IHRoZSBjb2x1bW4gbGlzdCBhbmQgYXJlIG5vdCBwYXJ0IG9mIHRoZSBjb2x1bW4gbGlz dCBzcGVjaWZpZWQgd2l0aAorICogICAgRVhDRVBULiBJZiBhbnkgY29sdW1uIGlzIG1pc3Npbmcs ICppbnZhbGlkX2NvbHVtbl9saXN0IGlzIHNldCB0byB0cnVlLgogICogMi4gRW5zdXJlcyB0aGF0 IGFsbCB0aGUgZ2VuZXJhdGVkIGNvbHVtbnMgcmVmZXJlbmNlZCBpbiB0aGUgUkVQTElDQSBJREVO VElUWQogICogICAgYXJlIHB1Ymxpc2hlZCwgZWl0aGVyIGJ5IGJlaW5nIGV4cGxpY2l0bHkgbmFt ZWQgaW4gdGhlIGNvbHVtbiBsaXN0IG9yLCBpZgogICogICAgbm8gY29sdW1uIGxpc3QgaXMgc3Bl Y2lmaWVkLCBieSBzZXR0aW5nIHRoZSBvcHRpb24KQEAgLTQwNCw2ICs0MDMsNyBAQCBwdWJfY29u dGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAq YW5jZXN0b3JzLAogCVR1cGxlRGVzYwlkZXNjID0gUmVsYXRpb25HZXREZXNjcihyZWxhdGlvbik7 CiAJUHVibGljYXRpb24gKnB1YjsKIAlpbnQJCQl4OworCWJvb2wJCWV4Y2VwdF9jb2x1bW5zID0g ZmFsc2U7CiAKIAkqaW52YWxpZF9jb2x1bW5fbGlzdCA9IGZhbHNlOwogCSppbnZhbGlkX2dlbl9j b2wgPSBmYWxzZTsKQEAgLTQyNyw3ICs0MjcsOCBAQCBwdWJfY29udGFpbnNfaW52YWxpZF9jb2x1 bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogCiAJLyog RmV0Y2ggdGhlIGNvbHVtbiBsaXN0ICovCiAJcHViID0gR2V0UHVibGljYXRpb24ocHViaWQpOwot CWNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChwdWIsIHB1Ymxpc2hfYXNfcmVsaWQsIE5VTEws ICZjb2x1bW5zKTsKKwljaGVja19hbmRfZmV0Y2hfY29sdW1uX2xpc3QocHViLCBwdWJsaXNoX2Fz X3JlbGlkLCBOVUxMLCAmY29sdW1ucywKKwkJCQkJCQkJJmV4Y2VwdF9jb2x1bW5zKTsKIAogCWlm IChyZWxhdGlvbi0+cmRfcmVsLT5yZWxyZXBsaWRlbnQgPT0gUkVQTElDQV9JREVOVElUWV9GVUxM KQogCXsKQEAgLTUxNyw4ICs1MTgsMTQgQEAgcHViX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9p ZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywKIAkJCWF0dG51bSA9 IGdldF9hdHRudW0ocHVibGlzaF9hc19yZWxpZCwgY29sbmFtZSk7CiAJCX0KIAotCQkvKiByZXBs aWNhIGlkZW50aXR5IGNvbHVtbiwgbm90IGNvdmVyZWQgYnkgdGhlIGNvbHVtbiBsaXN0ICovCi0J CSppbnZhbGlkX2NvbHVtbl9saXN0IHw9ICFibXNfaXNfbWVtYmVyKGF0dG51bSwgY29sdW1ucyk7 CisJCS8qCisJCSAqIFJlcGxpY2EgaWRlbnRpdHkgY29sdW1uLCBub3QgY292ZXJlZCBieSB0aGUg Y29sdW1uIGxpc3Qgb3IgaXMgcGFydAorCQkgKiBvZiBjb2x1bW4gbGlzdCBzcGVjaWZpZWQgd2l0 aCBFWENFUFQuCisJCSAqLworCQlpZiAoZXhjZXB0X2NvbHVtbnMpCisJCQkqaW52YWxpZF9jb2x1 bW5fbGlzdCB8PSBibXNfaXNfbWVtYmVyKGF0dG51bSwgY29sdW1ucyk7CisJCWVsc2UKKwkJCSpp bnZhbGlkX2NvbHVtbl9saXN0IHw9ICFibXNfaXNfbWVtYmVyKGF0dG51bSwgY29sdW1ucyk7CiAK IAkJaWYgKCppbnZhbGlkX2NvbHVtbl9saXN0ICYmICppbnZhbGlkX2dlbl9jb2wpCiAJCQlicmVh azsKQEAgLTE1MDAsNiArMTUwNyw3IEBAIEFsdGVyUHVibGljYXRpb25UYWJsZXMoQWx0ZXJQdWJs aWNhdGlvblN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAJCQlIZWFwVHVwbGUJcmZ0dXBsZTsK IAkJCU5vZGUJICAgKm9sZHJlbHdoZXJlY2xhdXNlID0gTlVMTDsKIAkJCUJpdG1hcHNldCAgKm9s ZGNvbHVtbnMgPSBOVUxMOworCQkJYm9vbAkJb2xkZXhjZXB0ID0gZmFsc2U7CiAKIAkJCS8qIGxv b2sgdXAgdGhlIGNhY2hlIGZvciB0aGUgb2xkIHJlbG1hcCAqLwogCQkJcmZ0dXBsZSA9IFNlYXJj aFN5c0NhY2hlMihQVUJMSUNBVElPTlJFTE1BUCwKQEAgLTE1MTMsMjMgKzE1MjEsMjggQEAgQWx0 ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxl IHR1cCwKIAkJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHJmdHVwbGUpKQogCQkJewogCQkJCWJvb2wJ CWlzbnVsbCA9IHRydWU7Ci0JCQkJRGF0dW0JCXdoZXJlQ2xhdXNlRGF0dW07Ci0JCQkJRGF0dW0J CWNvbHVtbkxpc3REYXR1bTsKKwkJCQlEYXR1bQkJZGF0dW07CiAKIAkJCQkvKiBMb2FkIHRoZSBX SEVSRSBjbGF1c2UgZm9yIHRoaXMgdGFibGUuICovCi0JCQkJd2hlcmVDbGF1c2VEYXR1bSA9IFN5 c0NhY2hlR2V0QXR0cihQVUJMSUNBVElPTlJFTE1BUCwgcmZ0dXBsZSwKLQkJCQkJCQkJCQkJCSAg IEFudW1fcGdfcHVibGljYXRpb25fcmVsX3BycXVhbCwKLQkJCQkJCQkJCQkJCSAgICZpc251bGwp OworCQkJCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyKFBVQkxJQ0FUSU9OUkVMTUFQLCByZnR1cGxl LAorCQkJCQkJCQkJCUFudW1fcGdfcHVibGljYXRpb25fcmVsX3BycXVhbCwKKwkJCQkJCQkJCQkm aXNudWxsKTsKIAkJCQlpZiAoIWlzbnVsbCkKLQkJCQkJb2xkcmVsd2hlcmVjbGF1c2UgPSBzdHJp bmdUb05vZGUoVGV4dERhdHVtR2V0Q1N0cmluZyh3aGVyZUNsYXVzZURhdHVtKSk7CisJCQkJCW9s ZHJlbHdoZXJlY2xhdXNlID0gc3RyaW5nVG9Ob2RlKFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0p KTsKIAogCQkJCS8qIFRyYW5zZm9ybSB0aGUgaW50MnZlY3RvciBjb2x1bW4gbGlzdCB0byBhIGJp dG1hcC4gKi8KLQkJCQljb2x1bW5MaXN0RGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoUFVCTElDQVRJ T05SRUxNQVAsIHJmdHVwbGUsCi0JCQkJCQkJCQkJCQkgIEFudW1fcGdfcHVibGljYXRpb25fcmVs X3ByYXR0cnMsCi0JCQkJCQkJCQkJCQkgICZpc251bGwpOworCQkJCWRhdHVtID0gU3lzQ2FjaGVH ZXRBdHRyKFBVQkxJQ0FUSU9OUkVMTUFQLCByZnR1cGxlLAorCQkJCQkJCQkJCUFudW1fcGdfcHVi bGljYXRpb25fcmVsX3ByYXR0cnMsCisJCQkJCQkJCQkJJmlzbnVsbCk7CisJCQkJaWYgKCFpc251 bGwpCisJCQkJCW9sZGNvbHVtbnMgPSBwdWJfY29sbGlzdF90b19iaXRtYXBzZXQoTlVMTCwgZGF0 dW0sIE5VTEwpOwogCisJCQkJLyogTG9hZCB0aGUgcHJleGNlcHQgZmxhZyBmb3IgdGhpcyB0YWJs ZS4gKi8KKwkJCQlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0cihQVUJMSUNBVElPTlJFTE1BUCwgcmZ0 dXBsZSwKKwkJCQkJCQkJCQlBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmV4Y2VwdCwKKwkJCQkJ CQkJCQkmaXNudWxsKTsKIAkJCQlpZiAoIWlzbnVsbCkKLQkJCQkJb2xkY29sdW1ucyA9IHB1Yl9j b2xsaXN0X3RvX2JpdG1hcHNldChOVUxMLCBjb2x1bW5MaXN0RGF0dW0sIE5VTEwpOworCQkJCQlv bGRleGNlcHQgPSBEYXR1bUdldEJvb2woZGF0dW0pOwogCiAJCQkJUmVsZWFzZVN5c0NhY2hlKHJm dHVwbGUpOwogCQkJfQpAQCAtMTU1NiwxMyArMTU2OSwxNCBAQCBBbHRlclB1YmxpY2F0aW9uVGFi bGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBIZWFwVHVwbGUgdHVwLAogCQkJCSAqIENo ZWNrIGlmIGFueSBvZiB0aGUgbmV3IHNldCBvZiByZWxhdGlvbnMgbWF0Y2hlcyB3aXRoIHRoZQog CQkJCSAqIGV4aXN0aW5nIHJlbGF0aW9ucyBpbiB0aGUgcHVibGljYXRpb24uIEFkZGl0aW9uYWxs eSwgaWYgdGhlCiAJCQkJICogcmVsYXRpb24gaGFzIGFuIGFzc29jaWF0ZWQgV0hFUkUgY2xhdXNl LCBjaGVjayB0aGUgV0hFUkUKLQkJCQkgKiBleHByZXNzaW9ucyBhbHNvIG1hdGNoLiBTYW1lIGZv ciB0aGUgY29sdW1uIGxpc3QuIERyb3AgdGhlCi0JCQkJICogcmVzdC4KKwkJCQkgKiBleHByZXNz aW9ucyBhbHNvIG1hdGNoLiBTYW1lIGZvciB0aGUgY29sdW1uIGxpc3QgYW5kIGV4Y2VwdAorCQkJ CSAqIGZsYWcuIERyb3AgdGhlIHJlc3QuCiAJCQkJICovCiAJCQkJaWYgKG5ld3JlbGlkID09IG9s ZHJlbGlkKQogCQkJCXsKIAkJCQkJaWYgKGVxdWFsKG9sZHJlbHdoZXJlY2xhdXNlLCBuZXdwdWJy ZWwtPndoZXJlQ2xhdXNlKSAmJgotCQkJCQkJYm1zX2VxdWFsKG9sZGNvbHVtbnMsIG5ld2NvbHVt bnMpKQorCQkJCQkJYm1zX2VxdWFsKG9sZGNvbHVtbnMsIG5ld2NvbHVtbnMpICYmCisJCQkJCQlv bGRleGNlcHQgPT0gbmV3cHVicmVsLT5leGNlcHQpCiAJCQkJCXsKIAkJCQkJCWZvdW5kID0gdHJ1 ZTsKIAkJCQkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBi L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggZTQzNzkwYWUzZmQuLjU4NzY0MGVkM2Y2 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkKQEAgLTUzNSw3ICs1MzUsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vy c2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkp OwogCQkJCU9wdFdoZXJlQ2xhdXNlIG9wZXJhdG9yX2RlZl9hcmcKICV0eXBlIDxsaXN0PglvcHRf Y29sdW1uX2FuZF9wZXJpb2RfbGlzdAogJXR5cGUgPGxpc3Q+CXJvd3Nmcm9tX2l0ZW0gcm93c2Zy b21fbGlzdCBvcHRfY29sX2RlZl9saXN0Ci0ldHlwZSA8Ym9vbGVhbj4gb3B0X29yZGluYWxpdHkg b3B0X3dpdGhvdXRfb3ZlcmxhcHMKKyV0eXBlIDxib29sZWFuPiBvcHRfb3JkaW5hbGl0eSBvcHRf d2l0aG91dF9vdmVybGFwcyBvcHRfZXhjZXB0CiAldHlwZSA8bGlzdD4JRXhjbHVzaW9uQ29uc3Ry YWludExpc3QgRXhjbHVzaW9uQ29uc3RyYWludEVsZW0KICV0eXBlIDxsaXN0PglmdW5jX2FyZ19s aXN0IGZ1bmNfYXJnX2xpc3Rfb3B0CiAldHlwZSA8bm9kZT4JZnVuY19hcmdfZXhwcgpAQCAtNDQ4 MCw2ICs0NDgwLDExIEBAIG9wdF93aXRob3V0X292ZXJsYXBzOgogCQkJfCAvKkVNUFRZKi8JCQkJ CQkJCXsgJCQgPSBmYWxzZTsgfQogCTsKIAorb3B0X2V4Y2VwdDoKKwkJCUVYQ0VQVAkJCQkJCQkJ CXsgJCQgPSB0cnVlOyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IGZhbHNlOyB9CisJ CTsKKwogb3B0X2NvbHVtbl9saXN0OgogCQkJJygnIGNvbHVtbkxpc3QgJyknCQkJCQkJeyAkJCA9 ICQyOyB9CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IE5JTDsgfQpAQCAtMTA3OTYsMTQg KzEwODAxLDE1IEBAIENyZWF0ZVB1YmxpY2F0aW9uU3RtdDoKICAqIHJlbGF0aW9uX2V4cHIgaGVy ZS4KICAqLwogUHVibGljYXRpb25PYmpTcGVjOgotCQkJVEFCTEUgcmVsYXRpb25fZXhwciBvcHRf Y29sdW1uX2xpc3QgT3B0V2hlcmVDbGF1c2UKKwkJCVRBQkxFIHJlbGF0aW9uX2V4cHIgb3B0X2V4 Y2VwdCBvcHRfY29sdW1uX2xpc3QgT3B0V2hlcmVDbGF1c2UKIAkJCQl7CiAJCQkJCSQkID0gbWFr ZU5vZGUoUHVibGljYXRpb25PYmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNB VElPTk9CSl9UQUJMRTsKIAkJCQkJJCQtPnB1YnRhYmxlID0gbWFrZU5vZGUoUHVibGljYXRpb25U YWJsZSk7CiAJCQkJCSQkLT5wdWJ0YWJsZS0+cmVsYXRpb24gPSAkMjsKLQkJCQkJJCQtPnB1YnRh YmxlLT5jb2x1bW5zID0gJDM7Ci0JCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNDsK KwkJCQkJJCQtPnB1YnRhYmxlLT5leGNlcHQgPSAkMzsKKwkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1 bW5zID0gJDQ7CisJCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNTsKIAkJCQkJJCQt PmxvY2F0aW9uID0gQDE7CiAJCQkJfQogCQkJfCBUQUJMRVMgSU5fUCBTQ0hFTUEgQ29sSWQKQEAg LTEwODE5LDcgKzEwODI1LDcgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJCQkkJC0+cHVib2Jq dHlwZSA9IFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9DVVJfU0NIRU1BOwogCQkJCQkkJC0+bG9j YXRpb24gPSBANDsKIAkJCQl9Ci0JCQl8IENvbElkIG9wdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNs YXVzZQorCQkJfCBDb2xJZCBvcHRfZXhjZXB0IG9wdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVz ZQogCQkJCXsKIAkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOwogCQkJCQkk JC0+cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVBVElPTjsKQEAgLTEwODI3LDcg KzEwODMzLDcgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJCQkgKiBJZiBlaXRoZXIgYSByb3cg ZmlsdGVyIG9yIGNvbHVtbiBsaXN0IGlzIHNwZWNpZmllZCwgY3JlYXRlCiAJCQkJCSAqIGEgUHVi bGljYXRpb25UYWJsZSBvYmplY3QuCiAJCQkJCSAqLwotCQkJCQlpZiAoJDIgfHwgJDMpCisJCQkJ CWlmICgkMiB8fCAkMyB8fCAkNCkKIAkJCQkJewogCQkJCQkJLyoKIAkJCQkJCSAqIFRoZSBPcHRX aGVyZUNsYXVzZSBtdXN0IGJlIHN0b3JlZCBoZXJlIGJ1dCBpdCBpcwpAQCAtMTA4MzcsOCArMTA4 NDMsOSBAQCBQdWJsaWNhdGlvbk9ialNwZWM6CiAJCQkJCQkgKi8KIAkJCQkJCSQkLT5wdWJ0YWJs ZSA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uVGFibGUpOwogCQkJCQkJJCQtPnB1YnRhYmxlLT5yZWxh dGlvbiA9IG1ha2VSYW5nZVZhcihOVUxMLCAkMSwgQDEpOwotCQkJCQkJJCQtPnB1YnRhYmxlLT5j b2x1bW5zID0gJDI7Ci0JCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDM7CisJCQkJ CQkkJC0+cHVidGFibGUtPmV4Y2VwdCA9ICQyOworCQkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5z ID0gJDM7CisJCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDQ7CiAJCQkJCX0KIAkJ CQkJZWxzZQogCQkJCQl7CkBAIC0xMDg0NiwyNSArMTA4NTMsMjcgQEAgUHVibGljYXRpb25PYmpT cGVjOgogCQkJCQl9CiAJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOwogCQkJCX0KLQkJCXwgQ29sSWQg aW5kaXJlY3Rpb24gb3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCisJCQl8IENvbElkIGlu ZGlyZWN0aW9uIG9wdF9leGNlcHQgb3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCiAJCQkJ ewogCQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CiAJCQkJCSQkLT5wdWJv Ymp0eXBlID0gUFVCTElDQVRJT05PQkpfQ09OVElOVUFUSU9OOwogCQkJCQkkJC0+cHVidGFibGUg PSBtYWtlTm9kZShQdWJsaWNhdGlvblRhYmxlKTsKIAkJCQkJJCQtPnB1YnRhYmxlLT5yZWxhdGlv biA9IG1ha2VSYW5nZVZhckZyb21RdWFsaWZpZWROYW1lKCQxLCAkMiwgQDEsIHl5c2Nhbm5lcik7 Ci0JCQkJCSQkLT5wdWJ0YWJsZS0+Y29sdW1ucyA9ICQzOwotCQkJCQkkJC0+cHVidGFibGUtPndo ZXJlQ2xhdXNlID0gJDQ7CisJCQkJCSQkLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gJDM7CisJCQkJCSQk LT5wdWJ0YWJsZS0+Y29sdW1ucyA9ICQ0OworCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNl ID0gJDU7CiAJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOwogCQkJCX0KIAkJCS8qIGdyYW1tYXIgbGlr ZSB0YWJsZW5hbWUgKiAsIE9OTFkgdGFibGVuYW1lLCBPTkxZICggdGFibGVuYW1lICkgKi8KLQkJ CXwgZXh0ZW5kZWRfcmVsYXRpb25fZXhwciBvcHRfY29sdW1uX2xpc3QgT3B0V2hlcmVDbGF1c2UK KwkJCXwgZXh0ZW5kZWRfcmVsYXRpb25fZXhwciBvcHRfZXhjZXB0IG9wdF9jb2x1bW5fbGlzdCBP cHRXaGVyZUNsYXVzZQogCQkJCXsKIAkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNw ZWMpOwogCQkJCQkkJC0+cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVBVElPTjsK IAkJCQkJJCQtPnB1YnRhYmxlID0gbWFrZU5vZGUoUHVibGljYXRpb25UYWJsZSk7CiAJCQkJCSQk LT5wdWJ0YWJsZS0+cmVsYXRpb24gPSAkMTsKLQkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5zID0g JDI7Ci0JCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkMzsKKwkJCQkJJCQtPnB1YnRh YmxlLT5leGNlcHQgPSAkMjsKKwkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5zID0gJDM7CisJCQkJ CSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNDsKIAkJCQl9CiAJCQl8IENVUlJFTlRfU0NI RU1BCiAJCQkJewpAQCAtMTk4NTYsNiArMTk4NjUsMTMgQEAgcHJlcHJvY2Vzc19wdWJvYmpfbGlz dChMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQogCQkJCQkJ ZXJybXNnKCJpbnZhbGlkIHRhYmxlIG5hbWUiKSwKIAkJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihw dWJvYmotPmxvY2F0aW9uKSk7CiAKKwkJCWlmIChwdWJvYmotPnB1YnRhYmxlICYmIHB1Ym9iai0+ cHVidGFibGUtPmV4Y2VwdCAmJgorCQkJCXB1Ym9iai0+cHVidGFibGUtPmNvbHVtbnMgPT0gTlVM TCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJP UiksCisJCQkJCQllcnJtc2coInRhYmxlIHdpdGhvdXQgY29sdW1uIGxpc3QgY2Fubm90IHVzZSBF WENFUFQgY2xhdXNlIiksCisJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHVib2JqLT5sb2NhdGlv bikpOworCiAJCQlpZiAocHVib2JqLT5uYW1lKQogCQkJewogCQkJCS8qIGNvbnZlcnQgaXQgdG8g UHVibGljYXRpb25UYWJsZSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC90YWJsZXN5bmMuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFi bGVzeW5jLmMKaW5kZXggZGNjNjEyNGNjNzMuLjI5YTQ1M2Q1ZjYzIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jCisrKyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMKQEAgLTcyMCwxMCArNzIwLDE4IEBAIGNv cHlfcmVhZF9kYXRhKHZvaWQgKm91dGJ1ZiwgaW50IG1pbnJlYWQsIGludCBtYXhyZWFkKQogICog VGhpcyBmdW5jdGlvbiBhbHNvIHJldHVybnMgKGEpIHRoZSByZWxhdGlvbiBxdWFsaWZpY2F0aW9u cyB0byBiZSB1c2VkIGluCiAgKiB0aGUgQ09QWSBjb21tYW5kLCBhbmQgKGIpIHdoZXRoZXIgdGhl IHJlbW90ZSByZWxhdGlvbiBoYXMgcHVibGlzaGVkIGFueQogICogZ2VuZXJhdGVkIGNvbHVtbi4K KyAqCisgKiBXaXRoIHRoZSBpbnRyb2R1Y3Rpb24gb2YgdGhlIEVYQ0VQVCBxdWFsaWZpZXIgaW4g Y29sdW1uIGxpc3RzLCBpdCBpcyBub3cKKyAqIHBvc3NpYmxlIHRvIGRlZmluZSBhIHB1YmxpY2F0 aW9uIHRoYXQgZXhjbHVkZXMgYWxsIGNvbHVtbnMgb2YgYSB0YWJsZS4gV2hlbgorICogdGhlIGNv bHVtbiBsaXN0IGlzIGZldGNoZWQgZnJvbSB0aGUgcmVtb3RlIHNlcnZlciBhbmQgaXMgTlVMTCwg aXQgbm9ybWFsbHkKKyAqIGluZGljYXRlcyB0aGF0IGFsbCBjb2x1bW5zIGFyZSBpbmNsdWRlZC4g VG8gZGlzdGluZ3Vpc2ggdGhpcyBmcm9tIHRoZSBjYXNlCisgKiB3aGVyZSBhbGwgY29sdW1ucyBh cmUgZXhwbGljaXRseSBleGNsdWRlZCwgdGhlICdhbGxfY29sc19leGNsdWRlZCcgZmxhZyBoYXMK KyAqIGJlZW4gaW50cm9kdWNlZC4KICAqLwogc3RhdGljIHZvaWQKIGZldGNoX3JlbW90ZV90YWJs ZV9pbmZvKGNoYXIgKm5zcG5hbWUsIGNoYXIgKnJlbG5hbWUsIExvZ2ljYWxSZXBSZWxhdGlvbiAq bHJlbCwKLQkJCQkJCUxpc3QgKipxdWFsLCBib29sICpnZW5jb2xfcHVibGlzaGVkKQorCQkJCQkJ TGlzdCAqKnF1YWwsIGJvb2wgKmdlbmNvbF9wdWJsaXNoZWQsCisJCQkJCQlib29sICphbGxfY29s c19leGNsdWRlZCkKIHsKIAlXYWxSY3ZFeGVjUmVzdWx0ICpyZXM7CiAJU3RyaW5nSW5mb0RhdGEg Y21kOwpAQCAtNzM3LDYgKzc0NSw5IEBAIGZldGNoX3JlbW90ZV90YWJsZV9pbmZvKGNoYXIgKm5z cG5hbWUsIGNoYXIgKnJlbG5hbWUsIExvZ2ljYWxSZXBSZWxhdGlvbiAqbHJlbCwKIAlCaXRtYXBz ZXQgICppbmNsdWRlZF9jb2xzID0gTlVMTDsKIAlpbnQJCQlzZXJ2ZXJfdmVyc2lvbiA9IHdhbHJj dl9zZXJ2ZXJfdmVyc2lvbihMb2dSZXBXb3JrZXJXYWxSY3ZDb25uKTsKIAorCUFzc2VydCgqZ2Vu Y29sX3B1Ymxpc2hlZCA9PSBmYWxzZSk7CisJQXNzZXJ0KCphbGxfY29sc19leGNsdWRlZCA9PSBm YWxzZSk7CisKIAlscmVsLT5uc3BuYW1lID0gbnNwbmFtZTsKIAlscmVsLT5yZWxuYW1lID0gcmVs bmFtZTsKIApAQCAtNzg3LDcgKzc5OCw3IEBAIGZldGNoX3JlbW90ZV90YWJsZV9pbmZvKGNoYXIg Km5zcG5hbWUsIGNoYXIgKnJlbG5hbWUsIExvZ2ljYWxSZXBSZWxhdGlvbiAqbHJlbCwKIAl7CiAJ CVdhbFJjdkV4ZWNSZXN1bHQgKnB1YnJlczsKIAkJVHVwbGVUYWJsZVNsb3QgKnRzbG90OwotCQlP aWQJCQlhdHRyc1Jvd1tdID0ge0lOVDJWRUNUT1JPSUR9OworCQlPaWQJCQlhdHRyc1Jvd1tdID0g e0lOVDJWRUNUT1JPSUQsIEJPT0xPSUR9OwogCiAJCS8qIEJ1aWxkIHRoZSBwdWJfbmFtZXMgY29t bWEtc2VwYXJhdGVkIHN0cmluZy4gKi8KIAkJcHViX25hbWVzID0gbWFrZVN0cmluZ0luZm8oKTsK QEAgLTgwMSw3ICs4MTIsMTcgQEAgZmV0Y2hfcmVtb3RlX3RhYmxlX2luZm8oY2hhciAqbnNwbmFt ZSwgY2hhciAqcmVsbmFtZSwgTG9naWNhbFJlcFJlbGF0aW9uICpscmVsLAogCQlhcHBlbmRTdHJp bmdJbmZvKCZjbWQsCiAJCQkJCQkgIlNFTEVDVCBESVNUSU5DVCIKIAkJCQkJCSAiICAoQ0FTRSBX SEVOIChhcnJheV9sZW5ndGgoZ3B0LmF0dHJzLCAxKSA9IGMucmVsbmF0dHMpIgotCQkJCQkJICIg ICBUSEVOIE5VTEwgRUxTRSBncHQuYXR0cnMgRU5EKSIKKwkJCQkJCSAiICAgVEhFTiBOVUxMIEVM U0UgZ3B0LmF0dHJzIEVORCkiKTsKKworCQkvKgorCQkgKiBXaGVuIHB1YmxpY2F0aW9uIGlzIGNy ZWF0ZWQgd2l0aCBFWENFUFQgKGNvbHVtbi1saXN0KSBhbmQgYWxsCisJCSAqIGNvbHVtbnMgYXJl IHNwZWNpZmllZCwgZ3B0LmF0dHJzIHdpbGwgYmUgTlVMTCBhbmQgbm8gY29sdW1ucyBhcmUKKwkJ ICogcHVibGlzaGVkIGluIHRoaXMgY2FzZS4KKwkJICovCisJCWlmIChzZXJ2ZXJfdmVyc2lvbiA+ PSAxOTAwMDApCisJCQlhcHBlbmRTdHJpbmdJbmZvKCZjbWQsICIsIGdwdC5hdHRycyBJUyBOVUxM IEFORCBjLnJlbG5hdHRzID4gMCIpOworCisJCWFwcGVuZFN0cmluZ0luZm8oJmNtZCwKIAkJCQkJ CSAiICBGUk9NIHBnX3B1YmxpY2F0aW9uIHAsIgogCQkJCQkJICIgIExBVEVSQUwgcGdfZ2V0X3B1 YmxpY2F0aW9uX3RhYmxlcyhwLnB1Ym5hbWUpIGdwdCwiCiAJCQkJCQkgIiAgcGdfY2xhc3MgYyIK QEAgLTgxMSw3ICs4MzIsNyBAQCBmZXRjaF9yZW1vdGVfdGFibGVfaW5mbyhjaGFyICpuc3BuYW1l LCBjaGFyICpyZWxuYW1lLCBMb2dpY2FsUmVwUmVsYXRpb24gKmxyZWwsCiAJCQkJCQkgcHViX25h bWVzLT5kYXRhKTsKIAogCQlwdWJyZXMgPSB3YWxyY3ZfZXhlYyhMb2dSZXBXb3JrZXJXYWxSY3ZD b25uLCBjbWQuZGF0YSwKLQkJCQkJCQkgbGVuZ3Rob2YoYXR0cnNSb3cpLCBhdHRyc1Jvdyk7CisJ CQkJCQkJIHNlcnZlcl92ZXJzaW9uID49IDE5MDAwMCA/IDIgOiAxLCBhdHRyc1Jvdyk7CiAKIAkJ aWYgKHB1YnJlcy0+c3RhdHVzICE9IFdBTFJDVl9PS19UVVBMRVMpCiAJCQllcmVwb3J0KEVSUk9S LApAQCAtODU4LDYgKzg3OSw5IEBAIGZldGNoX3JlbW90ZV90YWJsZV9pbmZvKGNoYXIgKm5zcG5h bWUsIGNoYXIgKnJlbG5hbWUsIExvZ2ljYWxSZXBSZWxhdGlvbiAqbHJlbCwKIAkJCQkJaW5jbHVk ZWRfY29scyA9IGJtc19hZGRfbWVtYmVyKGluY2x1ZGVkX2NvbHMsIGVsZW1zW25hdHRdKTsKIAkJ CX0KIAorCQkJaWYgKHNlcnZlcl92ZXJzaW9uID49IDE5MDAwMCkKKwkJCQkqYWxsX2NvbHNfZXhj bHVkZWQgPSBEYXR1bUdldEJvb2woc2xvdF9nZXRhdHRyKHRzbG90LCAyLCAmaXNudWxsKSk7CisK IAkJCUV4ZWNDbGVhclR1cGxlKHRzbG90KTsKIAkJfQogCQlFeGVjRHJvcFNpbmdsZVR1cGxlVGFi bGVTbG90KHRzbG90KTsKQEAgLTkyMCw3ICs5NDQsOCBAQCBmZXRjaF9yZW1vdGVfdGFibGVfaW5m byhjaGFyICpuc3BuYW1lLCBjaGFyICpyZWxuYW1lLCBMb2dpY2FsUmVwUmVsYXRpb24gKmxyZWws CiAJCUFzc2VydCghaXNudWxsKTsKIAogCQkvKiBJZiB0aGUgY29sdW1uIGlzIG5vdCBpbiB0aGUg Y29sdW1uIGxpc3QsIHNraXAgaXQuICovCi0JCWlmIChpbmNsdWRlZF9jb2xzICE9IE5VTEwgJiYg IWJtc19pc19tZW1iZXIoYXR0bnVtLCBpbmNsdWRlZF9jb2xzKSkKKwkJaWYgKCphbGxfY29sc19l eGNsdWRlZCB8fAorCQkJKGluY2x1ZGVkX2NvbHMgIT0gTlVMTCAmJiAhYm1zX2lzX21lbWJlcihh dHRudW0sIGluY2x1ZGVkX2NvbHMpKSkKIAkJewogCQkJRXhlY0NsZWFyVHVwbGUoc2xvdCk7CiAJ CQljb250aW51ZTsKQEAgLTEwNTIsMTEgKzEwNzcsMTUgQEAgY29weV90YWJsZShSZWxhdGlvbiBy ZWwpCiAJUGFyc2VTdGF0ZSAqcHN0YXRlOwogCUxpc3QJICAgKm9wdGlvbnMgPSBOSUw7CiAJYm9v bAkJZ2VuY29sX3B1Ymxpc2hlZCA9IGZhbHNlOworCWJvb2wJCWFsbF9jb2xzX2V4Y2x1ZGVkID0g ZmFsc2U7CiAKIAkvKiBHZXQgdGhlIHB1Ymxpc2hlciByZWxhdGlvbiBpbmZvLiAqLwogCWZldGNo X3JlbW90ZV90YWJsZV9pbmZvKGdldF9uYW1lc3BhY2VfbmFtZShSZWxhdGlvbkdldE5hbWVzcGFj ZShyZWwpKSwKIAkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpLCAmbHJlbCwgJnF1 YWwsCi0JCQkJCQkJJmdlbmNvbF9wdWJsaXNoZWQpOworCQkJCQkJCSZnZW5jb2xfcHVibGlzaGVk LCAmYWxsX2NvbHNfZXhjbHVkZWQpOworCisJaWYgKGFsbF9jb2xzX2V4Y2x1ZGVkKQorCQlyZXR1 cm47CiAKIAkvKiBQdXQgdGhlIHJlbGF0aW9uIGludG8gcmVsbWFwLiAqLwogCWxvZ2ljYWxyZXBf cmVsbWFwX3VwZGF0ZSgmbHJlbCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9wZ291dHB1dC9wZ291dHB1dC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQv cGdvdXRwdXQuYwppbmRleCBhOTU5M2M1ZDlkYS4uN2Y1MzQ2MThjZjQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKKysrIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwpAQCAtMTg1LDYgKzE4NSwxNiBAQCB0 eXBlZGVmIHN0cnVjdCBSZWxhdGlvblN5bmNFbnRyeQogCSAqIHJvdyBmaWx0ZXIgZXhwcmVzc2lv bnMsIGNvbHVtbiBsaXN0LCBldGMuCiAJICovCiAJTWVtb3J5Q29udGV4dCBlbnRyeV9jeHQ7CisK KwkvKgorCSAqIEluZGljYXRlcyB3aGV0aGVyIG5vIGNvbHVtbnMgYXJlIHB1Ymxpc2hlZCBmb3Ig YSBnaXZlbiByZWxhdGlvbi4gV2l0aAorCSAqIHRoZSBpbnRyb2R1Y3Rpb24gb2YgdGhlIEVYQ0VQ VCBxdWFsaWZpZXIgaW4gY29sdW1uIGxpc3RzLCBpdCBpcyBub3cKKwkgKiBwb3NzaWJsZSB0byBk ZWZpbmUgYSBwdWJsaWNhdGlvbiB0aGF0IGV4Y2x1ZGVzIGFsbCBjb2x1bW5zIG9mIGEgdGFibGUu CisJICogSG93ZXZlciwgdGhlICdjb2x1bW5zJyBhdHRyaWJ1dGUgY2Fubm90IHJlcHJlc2VudCB0 aGlzIGNhc2UsIHNpbmNlIGEKKwkgKiBOVUxMIHZhbHVlIGltcGxpZXMgdGhhdCBhbGwgY29sdW1u cyBhcmUgcHVibGlzaGVkLiBUbyBkaXN0aW5ndWlzaCB0aGlzCisJICogc2NlbmFyaW8sIHRoZSAn YWxsX2NvbHNfZXhjbHVkZWQnIGZsYWcgaXMgaW50cm9kdWNlZC4KKwkgKi8KKwlib29sCQlhbGxf Y29sc19leGNsdWRlZDsKIH0gUmVsYXRpb25TeW5jRW50cnk7CiAKIC8qCkBAIC0xMDkxLDEyICsx MTAxLDIxIEBAIGNoZWNrX2FuZF9pbml0X2dlbmNvbChQR091dHB1dERhdGEgKmRhdGEsIExpc3Qg KnB1YmxpY2F0aW9ucywKIAkgKi8KIAlmb3JlYWNoX3B0cihQdWJsaWNhdGlvbiwgcHViLCBwdWJs aWNhdGlvbnMpCiAJeworCQlib29sCQloYXNfY29sdW1uX2xpc3QgPSBmYWxzZTsKKwkJYm9vbAkJ ZXhjZXB0X2NvbHVtbnMgPSBmYWxzZTsKKworCQloYXNfY29sdW1uX2xpc3QgPSBjaGVja19hbmRf ZmV0Y2hfY29sdW1uX2xpc3QocHViLAorCQkJCQkJCQkJCQkJCSAgZW50cnktPnB1Ymxpc2hfYXNf cmVsaWQsCisJCQkJCQkJCQkJCQkJICBOVUxMLCBOVUxMLAorCQkJCQkJCQkJCQkJCSAgJmV4Y2Vw dF9jb2x1bW5zKTsKKwogCQkvKgogCQkgKiBUaGUgY29sdW1uIGxpc3QgdGFrZXMgcHJlY2VkZW5j ZSBvdmVyIHRoZQogCQkgKiAncHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucycgcGFyYW1ldGVyLiBU aG9zZSB3aWxsIGJlIGNoZWNrZWQgbGF0ZXIsCi0JCSAqIHNlZSBwZ291dHB1dF9jb2x1bW5fbGlz dF9pbml0LgorCQkgKiBzZWUgcGdvdXRwdXRfY29sdW1uX2xpc3RfaW5pdC4gQnV0IHdoZW4gYSBj b2x1bW4gbGlzdCBpcyBzcGVjaWZpZWQKKwkJICogd2l0aCBFWENFUFQsIGl0IHNob3VsZCBiZSBj aGVja2VkLgogCQkgKi8KLQkJaWYgKGNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChwdWIsIGVu dHJ5LT5wdWJsaXNoX2FzX3JlbGlkLCBOVUxMLCBOVUxMKSkKKwkJaWYgKGhhc19jb2x1bW5fbGlz dCAmJiAhZXhjZXB0X2NvbHVtbnMpCiAJCQljb250aW51ZTsKIAogCQlpZiAoZmlyc3QpCkBAIC0x MTQ1LDE5ICsxMTY0LDQxIEBAIHBnb3V0cHV0X2NvbHVtbl9saXN0X2luaXQoUEdPdXRwdXREYXRh ICpkYXRhLCBMaXN0ICpwdWJsaWNhdGlvbnMsCiAJewogCQlQdWJsaWNhdGlvbiAqcHViID0gbGZp cnN0KGxjKTsKIAkJQml0bWFwc2V0ICAqY29scyA9IE5VTEw7CisJCWJvb2wJCWV4Y2VwdF9jb2x1 bW5zID0gZmFsc2U7CisJCWJvb2wJCWFsbF9jb2xzX2V4Y2x1ZGVkID0gZmFsc2U7CiAKIAkJLyog UmV0cmlldmUgdGhlIGJpdG1hcCBvZiBjb2x1bW5zIGZvciBhIGNvbHVtbiBsaXN0IHB1YmxpY2F0 aW9uLiAqLwogCQlmb3VuZF9wdWJfY29sbGlzdCB8PSBjaGVja19hbmRfZmV0Y2hfY29sdW1uX2xp c3QocHViLAogCQkJCQkJCQkJCQkJCQkgZW50cnktPnB1Ymxpc2hfYXNfcmVsaWQsCi0JCQkJCQkJ CQkJCQkJCSBlbnRyeS0+ZW50cnlfY3h0LCAmY29scyk7CisJCQkJCQkJCQkJCQkJCSBlbnRyeS0+ ZW50cnlfY3h0LCAmY29scywKKwkJCQkJCQkJCQkJCQkJICZleGNlcHRfY29sdW1ucyk7CisKKwkJ LyoKKwkJICogSWYgY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVkIHdpdGggRVhDRVBUIHJldHJpZXZl IGJpdG1hcCBvZiBjb2x1bW5zCisJCSAqIHdoaWNoIGFyZSBub3QgcGFydCBvZiB0aGlzIGNvbHVt biBsaXN0LgorCQkgKi8KKwkJaWYgKGV4Y2VwdF9jb2x1bW5zKQorCQl7CisJCQlNZW1vcnlDb250 ZXh0IG9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhlbnRyeS0+ZW50cnlfY3h0KTsKKwor CQkJY29scyA9IHB1Yl9mb3JtX2NvbHNfbWFwKHJlbGF0aW9uLAorCQkJCQkJCQkJIGVudHJ5LT5p bmNsdWRlX2dlbmNvbHNfdHlwZSwgY29scyk7CisJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xk Y3h0KTsKKworCQkJaWYgKCFjb2xzKQorCQkJCWFsbF9jb2xzX2V4Y2x1ZGVkID0gdHJ1ZTsKKwkJ fQogCiAJCS8qCi0JCSAqIEZvciBub24tY29sdW1uIGxpc3QgcHVibGljYXRpb25zIOKAlCBlLmcu IFRBQkxFICh3aXRob3V0IGEgY29sdW1uCi0JCSAqIGxpc3QpLCBBTEwgVEFCTEVTLCBvciBBTEwg VEFCTEVTIElOIFNDSEVNQSwgd2UgY29uc2lkZXIgYWxsIGNvbHVtbnMKLQkJICogb2YgdGhlIHRh YmxlIChpbmNsdWRpbmcgZ2VuZXJhdGVkIGNvbHVtbnMgd2hlbgorCQkgKiBJZiAnY29scycgaXMg bnVsbCwgaXQgaW5kaWNhdGVzIHRoYXQgdGhlIHB1YmxpY2F0aW9uIGlzIGVpdGhlciBhCisJCSAq IG5vbi1jb2x1bW4gbGlzdCBwdWJsaWNhdGlvbiBvciBvbmUgd2hlcmUgYWxsIGNvbHVtbnMgYXJl IGV4Y2x1ZGVkLgorCQkgKiBXaGVuICdhbGxfY29sc19leGNsdWRlZCcgaXMgdHJ1ZSwgaXQgZXhw bGljaXRseSBtZWFucyBhbGwgY29sdW1ucworCQkgKiBoYXZlIGJlZW4gZXhjbHVkZWQuIEZvciBu b24tY29sdW1uIGxpc3QgcHVibGljYXRpb25zIOKAlCBlLmcuIFRBQkxFCisJCSAqICh3aXRob3V0 IGEgY29sdW1uIGxpc3QpLCBBTEwgVEFCTEVTLCBvciBBTEwgVEFCTEVTIElOIFNDSEVNQSwgd2UK KwkJICogY29uc2lkZXIgYWxsIGNvbHVtbnMgb2YgdGhlIHRhYmxlIChpbmNsdWRpbmcgZ2VuZXJh dGVkIGNvbHVtbnMgd2hlbgogCQkgKiAncHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucycgcGFyYW1l dGVyIGlzIHRydWUpLgogCQkgKi8KLQkJaWYgKCFjb2xzKQorCQlpZiAoIWFsbF9jb2xzX2V4Y2x1 ZGVkICYmICFjb2xzKQogCQl7CiAJCQkvKgogCQkJICogQ2FjaGUgdGhlIHRhYmxlIGNvbHVtbnMg Zm9yIHRoZSBmaXJzdCBwdWJsaWNhdGlvbiB3aXRoIG5vCkBAIC0xMTY5LDcgKzEyMTAsNyBAQCBw Z291dHB1dF9jb2x1bW5fbGlzdF9pbml0KFBHT3V0cHV0RGF0YSAqZGF0YSwgTGlzdCAqcHVibGlj YXRpb25zLAogCQkJCU1lbW9yeUNvbnRleHQgb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRv KGVudHJ5LT5lbnRyeV9jeHQpOwogCiAJCQkJcmVsY29scyA9IHB1Yl9mb3JtX2NvbHNfbWFwKHJl bGF0aW9uLAotCQkJCQkJCQkJCQllbnRyeS0+aW5jbHVkZV9nZW5jb2xzX3R5cGUpOworCQkJCQkJ CQkJCQllbnRyeS0+aW5jbHVkZV9nZW5jb2xzX3R5cGUsIE5VTEwpOwogCQkJCU1lbW9yeUNvbnRl eHRTd2l0Y2hUbyhvbGRjeHQpOwogCQkJfQogCkBAIC0xMTc5LDkgKzEyMjAsMTEgQEAgcGdvdXRw dXRfY29sdW1uX2xpc3RfaW5pdChQR091dHB1dERhdGEgKmRhdGEsIExpc3QgKnB1YmxpY2F0aW9u cywKIAkJaWYgKGZpcnN0KQogCQl7CiAJCQllbnRyeS0+Y29sdW1ucyA9IGNvbHM7CisJCQllbnRy eS0+YWxsX2NvbHNfZXhjbHVkZWQgPSBhbGxfY29sc19leGNsdWRlZDsKIAkJCWZpcnN0ID0gZmFs c2U7CiAJCX0KLQkJZWxzZSBpZiAoIWJtc19lcXVhbChlbnRyeS0+Y29sdW1ucywgY29scykpCisJ CWVsc2UgaWYgKChlbnRyeS0+YWxsX2NvbHNfZXhjbHVkZWQgIT0gYWxsX2NvbHNfZXhjbHVkZWQp IHx8CisJCQkJICFibXNfZXF1YWwoZW50cnktPmNvbHVtbnMsIGNvbHMpKQogCQkJZXJlcG9ydChF UlJPUiwKIAkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJ CWVycm1zZygiY2Fubm90IHVzZSBkaWZmZXJlbnQgY29sdW1uIGxpc3RzIGZvciB0YWJsZSBcIiVz LiVzXCIgaW4gZGlmZmVyZW50IHB1YmxpY2F0aW9ucyIsCkBAIC0xNTA1LDYgKzE1NDgsMTMgQEAg cGdvdXRwdXRfY2hhbmdlKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwgUmVvcmRlckJ1ZmZl clRYTiAqdHhuLAogCiAJcmVsZW50cnkgPSBnZXRfcmVsX3N5bmNfZW50cnkoZGF0YSwgcmVsYXRp b24pOwogCisJLyoKKwkgKiBJZiBhbGwgY29sdW1ucyBvZiBhIHRhYmxlIGFyZSBwcmVzZW50IGlu IGNvbHVtbiBsaXN0IHNwZWNpZmllZCB3aXRoCisJICogRVhDRVBULCBza2lwIHB1Ymxpc2hpbmcg dGhlIGNoYW5nZXMuCisJICovCisJaWYgKHJlbGVudHJ5LT5hbGxfY29sc19leGNsdWRlZCkKKwkJ cmV0dXJuOworCiAJLyogRmlyc3QgY2hlY2sgdGhlIHRhYmxlIGZpbHRlciAqLwogCXN3aXRjaCAo YWN0aW9uKQogCXsKQEAgLTIwNzgsNiArMjEyOCw3IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091 dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCQllbnRyeS0+cHVibGlzaF9hc19y ZWxpZCA9IEludmFsaWRPaWQ7CiAJCWVudHJ5LT5jb2x1bW5zID0gTlVMTDsKIAkJZW50cnktPmF0 dHJtYXAgPSBOVUxMOworCQllbnRyeS0+YWxsX2NvbHNfZXhjbHVkZWQgPSBmYWxzZTsKIAl9CiAK IAkvKiBWYWxpZGF0ZSB0aGUgZW50cnkgKi8KQEAgLTIxMjcsNiArMjE3OCw3IEBAIGdldF9yZWxf c3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCQllbnRy eS0+cHViYWN0aW9ucy5wdWJ1cGRhdGUgPSBmYWxzZTsKIAkJZW50cnktPnB1YmFjdGlvbnMucHVi ZGVsZXRlID0gZmFsc2U7CiAJCWVudHJ5LT5wdWJhY3Rpb25zLnB1YnRydW5jYXRlID0gZmFsc2U7 CisJCWVudHJ5LT5hbGxfY29sc19leGNsdWRlZCA9IGZhbHNlOwogCiAJCS8qCiAJCSAqIFR1cGxl IHNsb3RzIGNsZWFudXBzLiAoV2lsbCBiZSByZWJ1aWx0IGxhdGVyIGlmIG5lZWRlZCkuCmRpZmYg LS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYwppbmRleCBlMzRhYWJhNzkzNy4uMWZkYjkwZjY0ODIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNDkz MywyNCArNDkzMyw3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxl SW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJCWlmICh0YmluZm8gPT0gTlVMTCkKIAkJ CWNvbnRpbnVlOwogCi0JCS8qIE9LLCBtYWtlIGEgRHVtcGFibGVPYmplY3QgZm9yIHRoaXMgcmVs YXRpb25zaGlwICovCi0JCWlmIChzdHJjbXAocHJleGNlcHQsICJmIikgPT0gMCkKLQkJCXB1YnJp bmZvW2pdLmRvYmoub2JqVHlwZSA9IERPX1BVQkxJQ0FUSU9OX1JFTDsKLQkJZWxzZQotCQkJcHVi cmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTDsKLQotCQlw dWJyaW5mb1tqXS5kb2JqLmNhdElkLnRhYmxlb2lkID0KLQkJCWF0b29pZChQUWdldHZhbHVlKHJl cywgaSwgaV90YWJsZW9pZCkpOwotCQlwdWJyaW5mb1tqXS5kb2JqLmNhdElkLm9pZCA9IGF0b29p ZChQUWdldHZhbHVlKHJlcywgaSwgaV9vaWQpKTsKLQkJQXNzaWduRHVtcElkKCZwdWJyaW5mb1tq XS5kb2JqKTsKLQkJcHVicmluZm9bal0uZG9iai5uYW1lc3BhY2UgPSB0YmluZm8tPmRvYmoubmFt ZXNwYWNlOwotCQlwdWJyaW5mb1tqXS5kb2JqLm5hbWUgPSB0YmluZm8tPmRvYmoubmFtZTsKLQkJ cHVicmluZm9bal0ucHVibGljYXRpb24gPSBwdWJpbmZvOwotCQlwdWJyaW5mb1tqXS5wdWJ0YWJs ZSA9IHRiaW5mbzsKLQkJaWYgKFBRZ2V0aXNudWxsKHJlcywgaSwgaV9wcnJlbHF1YWwpKQotCQkJ cHVicmluZm9bal0ucHVicmVscXVhbCA9IE5VTEw7Ci0JCWVsc2UKLQkJCXB1YnJpbmZvW2pdLnB1 YnJlbHF1YWwgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfcHJyZWxxdWFsKSk7CisJ CXB1YnJpbmZvW2pdLnB1YmV4Y2VwdCA9IChzdHJjbXAocHJleGNlcHQsICJ0IikgPT0gMCk7CiAK IAkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIGlfcHJhdHRycykpCiAJCXsKQEAgLTQ5NzYsMTAg KzQ5NTksMjkgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZv IHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJZWxzZQogCQkJcHVicmluZm9bal0ucHVicmF0 dHJzID0gTlVMTDsKIAorCQkvKiBPSywgbWFrZSBhIER1bXBhYmxlT2JqZWN0IGZvciB0aGlzIHJl bGF0aW9uc2hpcCAqLworCQlpZiAocHVicmluZm9bal0ucHViZXhjZXB0ICYmICFwdWJyaW5mb1tq XS5wdWJyYXR0cnMpCisJCQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19QVUJMSUNBVElP Tl9FWENFUFRfUkVMOworCQllbHNlCisJCQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19Q VUJMSUNBVElPTl9SRUw7CisKKwkJcHVicmluZm9bal0uZG9iai5jYXRJZC50YWJsZW9pZCA9CisJ CQlhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdGFibGVvaWQpKTsKKwkJcHVicmluZm9bal0u ZG9iai5jYXRJZC5vaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfb2lkKSk7CisJCUFz c2lnbkR1bXBJZCgmcHVicmluZm9bal0uZG9iaik7CisJCXB1YnJpbmZvW2pdLmRvYmoubmFtZXNw YWNlID0gdGJpbmZvLT5kb2JqLm5hbWVzcGFjZTsKKwkJcHVicmluZm9bal0uZG9iai5uYW1lID0g dGJpbmZvLT5kb2JqLm5hbWU7CisJCXB1YnJpbmZvW2pdLnB1YmxpY2F0aW9uID0gcHViaW5mbzsK KwkJcHVicmluZm9bal0ucHVidGFibGUgPSB0YmluZm87CisJCWlmIChQUWdldGlzbnVsbChyZXMs IGksIGlfcHJyZWxxdWFsKSkKKwkJCXB1YnJpbmZvW2pdLnB1YnJlbHF1YWwgPSBOVUxMOworCQll bHNlCisJCQlwdWJyaW5mb1tqXS5wdWJyZWxxdWFsID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVz LCBpLCBpX3BycmVscXVhbCkpOworCiAJCS8qIERlY2lkZSB3aGV0aGVyIHdlIHdhbnQgdG8gZHVt cCBpdCAqLwogCQlzZWxlY3REdW1wYWJsZVB1YmxpY2F0aW9uT2JqZWN0KCYocHVicmluZm9bal0u ZG9iaiksIGZvdXQpOwogCi0JCWlmIChzdHJjbXAocHJleGNlcHQsICJ0IikgPT0gMCkKKwkJaWYg KHB1YnJpbmZvW2pdLnB1YmV4Y2VwdCAmJiAhcHVicmluZm9bal0ucHVicmF0dHJzKQogCQkJc2lt cGxlX3B0cl9saXN0X2FwcGVuZCgmZXhjZXB0aW5mbywgJnB1YnJpbmZvW2pdKTsKIAogCQlqKys7 CkBAIC01MDU5LDcgKzUwNjEsMTIgQEAgZHVtcFB1YmxpY2F0aW9uVGFibGUoQXJjaGl2ZSAqZm91 dCwgY29uc3QgUHVibGljYXRpb25SZWxJbmZvICpwdWJyaW5mbykKIAkJCQkJICBmbXRRdWFsaWZp ZWREdW1wYWJsZSh0YmluZm8pKTsKIAogCWlmIChwdWJyaW5mby0+cHVicmF0dHJzKQorCXsKKwkJ aWYgKHB1YnJpbmZvLT5wdWJleGNlcHQpCisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwg IiBFWENFUFQiKTsKKwogCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiAoJXMpIiwgcHVicmlu Zm8tPnB1YnJhdHRycyk7CisJfQogCiAJaWYgKHB1YnJpbmZvLT5wdWJyZWxxdWFsKQogCXsKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5oCmluZGV4IDcyM2I1NTc1YzUzLi5jYTJkMzU2ZjcyYSAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC02 OTAsNiArNjkwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1B1YmxpY2F0aW9uUmVsSW5mbwogCVRhYmxl SW5mbyAgKnB1YnRhYmxlOwogCWNoYXIJICAgKnB1YnJlbHF1YWw7CiAJY2hhcgkgICAqcHVicmF0 dHJzOworCWJvb2wJCXB1YmV4Y2VwdDsKIH0gUHVibGljYXRpb25SZWxJbmZvOwogCiAvKgpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUu YwppbmRleCA1MGIxZDQzNTM1OS4uNmNlYjEwOGEzNWIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNx bC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0xNTYwLDYgKzE1 NjAsOTEgQEAgZGVzY3JpYmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2 ZXJib3NlLCBib29sIHNob3dTeXN0ZW0pCiAJcmV0dXJuIHRydWU7CiB9CiAKKy8qCisgKiBBZGQg YSBmb290ZXIgdG8gYSBwdWJsaWNhdGlvbiBkZXNjcmlwdGlvbiBvciBhIHRhYmxlIGRlc2NyaXB0 aW9uLgorICoKKyAqICdpc19wdWJfZGVzYycgLSB0cnVlIGZvciBhIHB1YiBkZXNjOyBmYWxzZSBm b3IgYSB0YWJsZSBkZXNjCisgKiAncHViX3NjaGVtYXMnIC0gdHJ1ZSBpZiB0aGUgcHViX2Rlc2Mg b25seSBzaG93cyBzY2hlbWFzLCBvdGhlcndpc2UgZmFsc2UKKyAqLworc3RhdGljIGJvb2wKK2Fk ZEZvb3RlclRvUHVibGljYXRpb25PclRhYmxlRGVzYyhQUUV4cEJ1ZmZlciBidWYsCisJCQkJCQkJ CSAgcHJpbnRUYWJsZUNvbnRlbnQgKmNvbnN0IGNvbnQsCisJCQkJCQkJCSAgY29uc3QgY2hhciAq Zm9vdGVybXNnLAorCQkJCQkJCQkgIGJvb2wgaXNfcHViX2Rlc2MsIGJvb2wgcHViX3NjaGVtYXMp Cit7CisJUEdyZXN1bHQgICAqcmVzOworCWludAkJCWNvdW50OworCWludAkJCWNvbCA9IGlzX3B1 Yl9kZXNjID8gMSA6IDA7CisKKwlyZXMgPSBQU1FMZXhlYyhidWYtPmRhdGEpOworCWlmICghcmVz KQorCQlyZXR1cm4gZmFsc2U7CisKKwljb3VudCA9IFBRbnR1cGxlcyhyZXMpOworCWlmIChjb3Vu dCA+IDApCisJCXByaW50VGFibGVBZGRGb290ZXIoY29udCwgZm9vdGVybXNnKTsKKworCS8qLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKwkgKiBEZXNjcmlwdGlvbiBjb2x1bW5zIGZvcjoKKwkgKgorCSAqIFBVQiAgICAgIFRCTAor CSAqIFswXSAgICAgIC0gICAgICA6IHNjaGVtYSBuYW1lIChuc3BuYW1lKQorCSAqIFtjb2xdICAg IC0gICAgICA6IHRhYmxlIG5hbWUgKHJlbG5hbWUpCisJICogLSAgICAgICAgW2NvbF0gIDogcHVi bGljYXRpb24gbmFtZSAocHVibmFtZSkKKwkgKiBbY29sKzFdICBbY29sKzFdOiByb3cgZmlsdGVy IGV4cHJlc3Npb24gKHBycXVhbCksIG1heSBiZSBOVUxMCisJICogW2NvbCsyXSAgW2NvbCsyXTog Y29sdW1uIGxpc3QgKGNvbW1hLXNlcGFyYXRlZCksIG1heSBiZSBOVUxMCisJICogW2NvbCszXSAg W2NvbCszXTogZXhjZXB0IGZsYWcgKCJ0IiBpZiBFWENFUFQsIGVsc2UgImYiKQorCSAqLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KwkgKi8KKwlmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspCisJeworCQlwcmludGZQUUV4 cEJ1ZmZlcihidWYsICIgICAgIik7IC8qIGluZGVudCAqLworCisJCS8qCisJCSAqIEZvb3RlciBl bnRyaWVzIGZvciBhIHB1YmxpY2F0aW9uIGRlc2NyaXB0aW9uIG9yIGEgdGFibGUKKwkJICogZGVz Y3JpcHRpb24KKwkJICovCisJCWlmIChpc19wdWJfZGVzYykKKwkJeworCQkJaWYgKHB1Yl9zY2hl bWFzKQorCQkJeworCQkJCS8qIFNjaGVtYXMgb2YgdGhlIHB1YmxpY2F0aW9uLi4uICovCisJCQkJ YXBwZW5kUFFFeHBCdWZmZXIoYnVmLCAiXCIlc1wiIiwgUFFnZXR2YWx1ZShyZXMsIGksIDApKTsK KwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQkvKiBUYWJsZXMgb2YgdGhlIHB1YmxpY2F0aW9uLi4u ICovCisJCQkJYXBwZW5kUFFFeHBCdWZmZXIoYnVmLCAiXCIlcy4lc1wiIiwgUFFnZXR2YWx1ZShy ZXMsIGksIDApLAorCQkJCQkJCQkgIFBRZ2V0dmFsdWUocmVzLCBpLCBjb2wpKTsKKwkJCX0KKwkJ fQorCQllbHNlCisJCXsKKwkJCS8qIFB1YmxpY2F0aW9ucyBvZiB0aGUgdGFibGUuLi4gKi8KKwkJ CWFwcGVuZFBRRXhwQnVmZmVyKGJ1ZiwgIlwiJXNcIiIsIFBRZ2V0dmFsdWUocmVzLCBpLCBjb2wp KTsKKwkJfQorCisJCS8qIENvbW1vbiBmb290ZXIgb3V0cHV0IGZvciBjb2x1bW4gbGlzdCBhbmQv b3Igcm93IGZpbHRlciAqLworCQlpZiAoIXB1Yl9zY2hlbWFzKQorCQl7CisJCQlpZiAoIVBRZ2V0 aXNudWxsKHJlcywgaSwgY29sICsgMikpCisJCQl7CisJCQkJaWYgKHN0cmNtcChQUWdldHZhbHVl KHJlcywgaSwgY29sICsgMyksICJ0IikgPT0gMCkKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoYnVm LCAiIEVYQ0VQVCIpOworCQkJCWFwcGVuZFBRRXhwQnVmZmVyKGJ1ZiwgIiAoJXMpIiwgUFFnZXR2 YWx1ZShyZXMsIGksIGNvbCArIDIpKTsKKwkJCX0KKworCQkJaWYgKCFQUWdldGlzbnVsbChyZXMs IGksIGNvbCArIDEpKQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyKGJ1ZiwgIiBXSEVSRSAlcyIsIFBR Z2V0dmFsdWUocmVzLCBpLCBjb2wgKyAxKSk7CisJCX0KKworCQlwcmludFRhYmxlQWRkRm9vdGVy KGNvbnQsIGJ1Zi0+ZGF0YSk7CisJfQorCisJUFFjbGVhcihyZXMpOworCXJldHVybiB0cnVlOwor fQorCiAvKgogICogZGVzY3JpYmVPbmVUYWJsZURldGFpbHMgKGZvciBcZCkKICAqCkBAIC0zMDUz LDE2ICszMTM4LDI3IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVt YW5hbWUsCiAJCS8qIHByaW50IGFueSBwdWJsaWNhdGlvbnMgKi8KIAkJaWYgKHBzZXQuc3ZlcnNp b24gPj0gMTAwMDAwKQogCQl7Ci0JCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNTAwMDApCisJCQlp ZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCiAJCQl7CiAJCQkJcHJpbnRmUFFFeHBCdWZmZXIo JmJ1ZiwKKworCQkJCS8qCisJCQkJICogR2V0IGFsbCBwdWJsaWNhdGlvbnMgZm9yIHRoZSBzY2hl bWEgdGhhdCB0aGlzIHJlbGF0aW9uIGlzCisJCQkJICogcGFydCBvZgorCQkJCSAqLwogCQkJCQkJ CQkgICJTRUxFQ1QgcHVibmFtZVxuIgogCQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgogCQkJCQkJ CQkgICIgICAgICwgTlVMTFxuIgorCQkJCQkJCQkgICIJCSwgTlVMTFxuIgogCQkJCQkJCQkgICJG Uk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgogCQkJCQkJCQkgICIgICAgIEpPSU4g cGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UgcG4gT04gcC5vaWQgPSBwbi5wbnB1 YmlkXG4iCiAJCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIHBjIE9OIHBj LnJlbG5hbWVzcGFjZSA9IHBuLnBubnNwaWRcbiIKIAkJCQkJCQkJICAiV0hFUkUgcGMub2lkID0n JXMnIGFuZCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKCclcycpXG4iCisK KwkJCQkvKgorCQkJCSAqIEdldCBhbGwgcHVibGljYXRpb25zIGZvciB0aGlzIHJlbGF0aW9uIGNy ZWF0ZWQgdXNpbmcgRk9SCisJCQkJICogVEFCTEUKKwkJCQkgKi8KIAkJCQkJCQkJICAiVU5JT05c biIKIAkJCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIKIAkJCQkJCQkJICAiICAgICAsIHBnX2dl dF9leHByKHByLnBycXVhbCwgYy5vaWQpXG4iCkBAIC0zMDcyLDM1ICszMTY4LDY3IEBAIGRlc2Ny aWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQkJCQkJCSAgIiAg ICAgICAgICAgICAgICBwZ19jYXRhbG9nLnBnX2F0dHJpYnV0ZVxuIgogCQkJCQkJCQkgICIgICAg ICAgICAgV0hFUkUgYXR0cmVsaWQgPSBwci5wcnJlbGlkIEFORCBhdHRudW0gPSBwcmF0dHJzW3Nd KVxuIgogCQkJCQkJCQkgICIgICAgICAgIEVMU0UgTlVMTCBFTkQpICIKKwkJCQkJCQkJICAiCQks IHByZXhjZXB0ICIKIAkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBc biIKIAkJCQkJCQkJICAiCQlKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9O IHAub2lkID0gcHIucHJwdWJpZFxuIgogCQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19j bGFzcyBjIE9OIGMub2lkID0gcHIucHJyZWxpZFxuIgotCQkJCQkJCQkgICJXSEVSRSBwci5wcnJl bGlkID0gJyVzJ1xuIiwKLQkJCQkJCQkJICBvaWQsIG9pZCwgb2lkKTsKLQotCQkJCWlmIChwc2V0 LnN2ZXJzaW9uID49IDE5MDAwMCkKLQkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIiBB TkQgTk9UIHByLnByZXhjZXB0XG4iKTsKKwkJCQkJCQkJICAiV0hFUkUgcHIucHJyZWxpZCA9ICcl cycgIgorCQkJCQkJCQkgICJBTkQJcC5wdWJhbGx0YWJsZXMgPSBmYWxzZVxuIgorCQkJCQkJCQkg ICJBTkQgIGMucmVsbmFtZXNwYWNlIE5PVCBJTiAoXG4gIgorCQkJCQkJCQkgICIgCVNFTEVDVCBw bm5zcGlkIEZST01cbiIKKwkJCQkJCQkJICAiIAlwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX25h bWVzcGFjZSlcbiIKIAotCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJLyoKKwkJCQkg KiBHZXQgYWxsIEZPUiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9ucyB0aGF0IGluY2x1ZGUgdGhpcwor CQkJCSAqIHJlbGF0aW9uCisJCQkJICovCiAJCQkJCQkJCSAgIlVOSU9OXG4iCiAJCQkJCQkJCSAg IlNFTEVDVCBwdWJuYW1lXG4iCiAJCQkJCQkJCSAgIgkJLCBOVUxMXG4iCiAJCQkJCQkJCSAgIgkJ LCBOVUxMXG4iCisJCQkJCQkJCSAgIgkJLCBOVUxMXG4iCiAJCQkJCQkJCSAgIkZST00gcGdfY2F0 YWxvZy5wZ19wdWJsaWNhdGlvbiBwXG4iCi0JCQkJCQkJCSAgIldIRVJFIHAucHViYWxsdGFibGVz IEFORCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKCclcycpXG4iLAotCQkJ CQkJCQkgIG9pZCk7Ci0KLQkJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCi0JCQkJCWFw cGVuZFBRRXhwQnVmZmVyKCZidWYsCi0JCQkJCQkJCQkgICIgICAgIEFORCBOT1QgRVhJU1RTIChc biIKLQkJCQkJCQkJCSAgIgkJU0VMRUNUIDFcbiIKLQkJCQkJCQkJCSAgIgkJRlJPTSBwZ19jYXRh bG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwclxuIgotCQkJCQkJCQkJICAiCQlKT0lOIHBnX2NhdGFs b2cucGdfY2xhc3MgcGNcbiIKLQkJCQkJCQkJCSAgIgkJT04gcHIucHJyZWxpZCA9IHBjLm9pZFxu IgotCQkJCQkJCQkJICAiCQlXSEVSRSBwci5wcnJlbGlkID0gJyVzJyBBTkQgcHIucHJwdWJpZCA9 IHAub2lkKVxuIiwKLQkJCQkJCQkJCSAgb2lkKTsKLQotCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KCZidWYsICJPUkRFUiBCWSAxOyIpOworCQkJCQkJCQkgICJXSEVSRSBwLnB1YmFsbHRhYmxlcyBB TkQgcGdfY2F0YWxvZy5wZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgnJXMnKVxuIgorCQkJCQkJ CQkgICIgICAgIEFORCBOT1QgRVhJU1RTIChcbiIKKwkJCQkJCQkJICAiCQlTRUxFQ1QgMVxuIgor CQkJCQkJCQkgICIJCUZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHJcbiIKKwkJ CQkJCQkJICAiCQlKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgcGNcbiIKKwkJCQkJCQkJICAiCQlP TiBwci5wcnJlbGlkID0gcGMub2lkXG4iCisJCQkJCQkJCSAgIgkJV0hFUkUgcHIucHJyZWxpZCA9 ICclcycgQU5EIHByLnBycHViaWQgPSBwLm9pZClcbiIKKwkJCQkJCQkJICAiT1JERVIgQlkgMTsi LAorCQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQsIG9pZCwgb2lkKTsKKwkJCX0KKwkJCWVsc2UgaWYg KHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQorCQkJeworCQkJCXByaW50ZlBRRXhwQnVmZmVyKCZi dWYsCisJCQkJCQkJCSAgIlNFTEVDVCBwdWJuYW1lXG4iCisJCQkJCQkJCSAgIiAgICAgLCBOVUxM XG4iCisJCQkJCQkJCSAgIiAgICAgLCBOVUxMXG4iCisJCQkJCQkJCSAgIkZST00gcGdfY2F0YWxv Zy5wZ19wdWJsaWNhdGlvbiBwXG4iCisJCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRhbG9nLnBn X3B1YmxpY2F0aW9uX25hbWVzcGFjZSBwbiBPTiBwLm9pZCA9IHBuLnBucHViaWRcbiIKKwkJCQkJ CQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgcGMgT04gcGMucmVsbmFtZXNwYWNl ID0gcG4ucG5uc3BpZFxuIgorCQkJCQkJCQkgICJXSEVSRSBwYy5vaWQgPSclcycgYW5kIHBnX2Nh dGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylcbiIKKwkJCQkJCQkJICAiVU5J T05cbiIKKwkJCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIKKwkJCQkJCQkJICAiICAgICAsIHBn X2dldF9leHByKHByLnBycXVhbCwgYy5vaWQpXG4iCisJCQkJCQkJCSAgIiAgICAgLCAoQ0FTRSBX SEVOIHByLnByYXR0cnMgSVMgTk9UIE5VTEwgVEhFTlxuIgorCQkJCQkJCQkgICIgICAgICAgICAo U0VMRUNUIHN0cmluZ19hZ2coYXR0bmFtZSwgJywgJylcbiIKKwkJCQkJCQkJICAiICAgICAgICAg ICBGUk9NIHBnX2NhdGFsb2cuZ2VuZXJhdGVfc2VyaWVzKDAsIHBnX2NhdGFsb2cuYXJyYXlfdXBw ZXIocHIucHJhdHRyczo6cGdfY2F0YWxvZy5pbnQyW10sIDEpKSBzLFxuIgorCQkJCQkJCQkgICIg ICAgICAgICAgICAgICAgcGdfY2F0YWxvZy5wZ19hdHRyaWJ1dGVcbiIKKwkJCQkJCQkJICAiICAg ICAgICAgIFdIRVJFIGF0dHJlbGlkID0gcHIucHJyZWxpZCBBTkQgYXR0bnVtID0gcHJhdHRyc1tz XSlcbiIKKwkJCQkJCQkJICAiICAgICAgICBFTFNFIE5VTEwgRU5EKSAiCisJCQkJCQkJCSAgIkZS T00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbiBwXG4iCisJCQkJCQkJCSAgIiAgICAgSk9JTiBw Z19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciBPTiBwLm9pZCA9IHByLnBycHViaWRcbiIK KwkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgYyBPTiBjLm9pZCA9IHBy LnBycmVsaWRcbiIKKwkJCQkJCQkJICAiV0hFUkUgcHIucHJyZWxpZCA9ICclcydcbiIKKwkJCQkJ CQkJICAiVU5JT05cbiIKKwkJCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIKKwkJCQkJCQkJICAi ICAgICAsIE5VTExcbiIKKwkJCQkJCQkJICAiICAgICAsIE5VTExcbiIKKwkJCQkJCQkJICAiRlJP TSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKKwkJCQkJCQkJICAiV0hFUkUgcC5wdWJh bGx0YWJsZXMgQU5EIHBnX2NhdGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylc biIKKwkJCQkJCQkJICAiT1JERVIgQlkgMTsiLAorCQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQsIG9p ZCk7CiAJCQl9CiAJCQllbHNlCiAJCQl7CkBAIC0zMTIxLDM0ICszMjQ5LDggQEAgZGVzY3JpYmVP bmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJCQkJCQkJICBvaWQsIG9p ZCk7CiAJCQl9CiAKLQkJCXJlc3VsdCA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsKLQkJCWlmICghcmVz dWx0KQorCQkJaWYgKCFhZGRGb290ZXJUb1B1YmxpY2F0aW9uT3JUYWJsZURlc2MoJmJ1ZiwgJmNv bnQsIF8oIlB1YmxpY2F0aW9uczoiKSwgZmFsc2UsIGZhbHNlKSkKIAkJCQlnb3RvIGVycm9yX3Jl dHVybjsKLQkJCWVsc2UKLQkJCQl0dXBsZXMgPSBQUW50dXBsZXMocmVzdWx0KTsKLQotCQkJaWYg KHR1cGxlcyA+IDApCi0JCQkJcHJpbnRUYWJsZUFkZEZvb3RlcigmY29udCwgXygiUHVibGljYXRp b25zOiIpKTsKLQotCQkJLyogTWlnaHQgYmUgYW4gZW1wdHkgc2V0IC0gdGhhdCdzIG9rICovCi0J CQlmb3IgKGkgPSAwOyBpIDwgdHVwbGVzOyBpKyspCi0JCQl7Ci0JCQkJcHJpbnRmUFFFeHBCdWZm ZXIoJmJ1ZiwgIiAgICBcIiVzXCIiLAotCQkJCQkJCQkgIFBRZ2V0dmFsdWUocmVzdWx0LCBpLCAw KSk7Ci0KLQkJCQkvKiBjb2x1bW4gbGlzdCAoaWYgYW55KSAqLwotCQkJCWlmICghUFFnZXRpc251 bGwocmVzdWx0LCBpLCAyKSkKLQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwgIiAoJXMpIiwK LQkJCQkJCQkJCSAgUFFnZXR2YWx1ZShyZXN1bHQsIGksIDIpKTsKLQotCQkJCS8qIHJvdyBmaWx0 ZXIgKGlmIGFueSkgKi8KLQkJCQlpZiAoIVBRZ2V0aXNudWxsKHJlc3VsdCwgaSwgMSkpCi0JCQkJ CWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIgV0hFUkUgJXMiLAotCQkJCQkJCQkJICBQUWdldHZh bHVlKHJlc3VsdCwgaSwgMSkpOwotCi0JCQkJcHJpbnRUYWJsZUFkZEZvb3RlcigmY29udCwgYnVm LmRhdGEpOwotCQkJfQotCQkJUFFjbGVhcihyZXN1bHQpOwogCQl9CiAKIAkJLyoKQEAgLTY1MzIs NDkgKzY2MzQsNiBAQCBsaXN0UHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJcmV0 dXJuIHRydWU7CiB9CiAKLS8qCi0gKiBBZGQgZm9vdGVyIHRvIHB1YmxpY2F0aW9uIGRlc2NyaXB0 aW9uLgotICovCi1zdGF0aWMgYm9vbAotYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRlc2MoUFFFeHBC dWZmZXIgYnVmLCBjb25zdCBjaGFyICpmb290ZXJtc2csCi0JCQkJCQkgICBib29sIGFzX3NjaGVt YSwgcHJpbnRUYWJsZUNvbnRlbnQgKmNvbnN0IGNvbnQpCi17Ci0JUEdyZXN1bHQgICAqcmVzOwot CWludAkJCWNvdW50ID0gMDsKLQlpbnQJCQlpID0gMDsKLQotCXJlcyA9IFBTUUxleGVjKGJ1Zi0+ ZGF0YSk7Ci0JaWYgKCFyZXMpCi0JCXJldHVybiBmYWxzZTsKLQllbHNlCi0JCWNvdW50ID0gUFFu dHVwbGVzKHJlcyk7Ci0KLQlpZiAoY291bnQgPiAwKQotCQlwcmludFRhYmxlQWRkRm9vdGVyKGNv bnQsIGZvb3Rlcm1zZyk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykKLQl7Ci0JCWlm IChhc19zY2hlbWEpCi0JCQlwcmludGZQUUV4cEJ1ZmZlcihidWYsICIgICAgXCIlc1wiIiwgUFFn ZXR2YWx1ZShyZXMsIGksIDApKTsKLQkJZWxzZQotCQl7Ci0JCQlwcmludGZQUUV4cEJ1ZmZlcihi dWYsICIgICAgXCIlcy4lc1wiIiwgUFFnZXR2YWx1ZShyZXMsIGksIDApLAotCQkJCQkJCSAgUFFn ZXR2YWx1ZShyZXMsIGksIDEpKTsKLQotCQkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIDMpKQot CQkJCWFwcGVuZFBRRXhwQnVmZmVyKGJ1ZiwgIiAoJXMpIiwgUFFnZXR2YWx1ZShyZXMsIGksIDMp KTsKLQotCQkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIDIpKQotCQkJCWFwcGVuZFBRRXhwQnVm ZmVyKGJ1ZiwgIiBXSEVSRSAlcyIsIFBRZ2V0dmFsdWUocmVzLCBpLCAyKSk7Ci0JCX0KLQotCQlw cmludFRhYmxlQWRkRm9vdGVyKGNvbnQsIGJ1Zi0+ZGF0YSk7Ci0JfQotCi0JUFFjbGVhcihyZXMp OwotCXJldHVybiB0cnVlOwotfQotCiAvKgogICogXGRScCsKICAqIERlc2NyaWJlcyBwdWJsaWNh dGlvbnMgaW5jbHVkaW5nIHRoZSBjb250ZW50cy4KQEAgLTY3NjQsNiArNjgyMywxMiBAQCBkZXNj cmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQkJZWxzZQogCQkJCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKCZidWYsCiAJCQkJCQkJCQkgIiwgTlVMTCwgTlVMTCIpOworCisJCQlp ZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCisJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1 ZiwgIiwgcHJleGNlcHQiKTsKKwkJCWVsc2UKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVm LCAiLCBOVUxMIik7CisKIAkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCiAJCQkJCQkJICAiXG5G Uk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYyxcbiIKIAkJCQkJCQkgICIgICAgIHBnX2NhdGFsb2cu cGdfbmFtZXNwYWNlIG4sXG4iCkBAIC02NzcyLDExICs2ODM3LDggQEAgZGVzY3JpYmVQdWJsaWNh dGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJCQkgICIgIEFORCBjLm9pZCA9IHByLnBy cmVsaWRcbiIKIAkJCQkJCQkgICIgIEFORCBwci5wcnB1YmlkID0gJyVzJ1xuIiwgcHViaWQpOwog Ci0JCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCi0JCQkJYXBwZW5kUFFFeHBCdWZmZXIo JmJ1ZiwgIiAgQU5EIE5PVCBwci5wcmV4Y2VwdFxuIik7Ci0KIAkJCWFwcGVuZFBRRXhwQnVmZmVy KCZidWYsICJPUkRFUiBCWSAxLDIiKTsKLQkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRl c2MoJmJ1ZiwgXygiVGFibGVzOiIpLCBmYWxzZSwgJmNvbnQpKQorCQkJaWYgKCFhZGRGb290ZXJU b1B1YmxpY2F0aW9uT3JUYWJsZURlc2MoJmJ1ZiwgJmNvbnQsIF8oIlRhYmxlczoiKSwgdHJ1ZSwg ZmFsc2UpKQogCQkJCWdvdG8gZXJyb3JfcmV0dXJuOwogCiAJCQlpZiAocHNldC5zdmVyc2lvbiA+ PSAxNTAwMDApCkBAIC02Nzg4LDggKzY4NTAsOCBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25z dCBjaGFyICpwYXR0ZXJuKQogCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJs aWNhdGlvbl9uYW1lc3BhY2UgcG4gT04gbi5vaWQgPSBwbi5wbm5zcGlkXG4iCiAJCQkJCQkJCSAg IldIRVJFIHBuLnBucHViaWQgPSAnJXMnXG4iCiAJCQkJCQkJCSAgIk9SREVSIEJZIDEiLCBwdWJp ZCk7Ci0JCQkJaWYgKCFhZGRGb290ZXJUb1B1YmxpY2F0aW9uRGVzYygmYnVmLCBfKCJUYWJsZXMg ZnJvbSBzY2hlbWFzOiIpLAotCQkJCQkJCQkJCQkJdHJ1ZSwgJmNvbnQpKQorCQkJCWlmICghYWRk Rm9vdGVyVG9QdWJsaWNhdGlvbk9yVGFibGVEZXNjKCZidWYsICZjb250LAorCQkJCQkJCQkJCQkJ CSAgIF8oIlRhYmxlcyBmcm9tIHNjaGVtYXM6IiksIHRydWUsIHRydWUpKQogCQkJCQlnb3RvIGVy cm9yX3JldHVybjsKIAkJCX0KIAkJfQpAQCAtNjc5OSwxNCArNjg2MSwxNCBAQCBkZXNjcmliZVB1 YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQkJewogCQkJCS8qIEdldCB0aGUgZXhj bHVkZWQgdGFibGVzIGZvciB0aGUgc3BlY2lmaWVkIHB1YmxpY2F0aW9uICovCiAJCQkJcHJpbnRm UFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkJICAiU0VMRUNUIGNvbmNhdChjLnJlbG5hbWVzcGFj ZTo6cmVnbmFtZXNwYWNlLCAnLicsIGMucmVsbmFtZSlcbiIKKwkJCQkJCQkJICAiU0VMRUNUIGMu cmVsbmFtZXNwYWNlOjpyZWduYW1lc3BhY2UsIGMucmVsbmFtZSwgTlVMTCwgTlVMTFxuIgogCQkJ CQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgY1xuIgogCQkJCQkJCQkgICIgICAgIEpP SU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gYy5vaWQgPSBwci5wcnJlbGlk XG4iCiAJCQkJCQkJCSAgIldIRVJFIHByLnBycHViaWQgPSAnJXMnXG4iCiAJCQkJCQkJCSAgIiAg QU5EIHByLnByZXhjZXB0XG4iCiAJCQkJCQkJCSAgIk9SREVSIEJZIDEiLCBwdWJpZCk7Ci0JCQkJ aWYgKCFhZGRGb290ZXJUb1B1YmxpY2F0aW9uRGVzYygmYnVmLCBfKCJFeGNlcHQgdGFibGVzOiIp LAotCQkJCQkJCQkJCQkJdHJ1ZSwgJmNvbnQpKQorCQkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNh dGlvbk9yVGFibGVEZXNjKCZidWYsICZjb250LAorCQkJCQkJCQkJCQkJCSAgIF8oIkV4Y2VwdCB0 YWJsZXM6IiksIHRydWUsIGZhbHNlKSkKIAkJCQkJZ290byBlcnJvcl9yZXR1cm47CiAJCQl9CiAJ CX0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4v cHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCBjNWM4ZTZlODUzNC4uZjcyYmU5M2Q5NDIgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTIyOTQsNiArMjI5NCwxMCBAQCBtYXRjaF9wcmV2aW91 c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lUSCgiQUxMIFRBQkxFUyIsICJU QUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAi UFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJBTEwiLCAiVEFCTEVTIikpCiAJCUNPTVBM RVRFX1dJVEgoIkVYQ0VQVCBUQUJMRSIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBV QkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIiwgTWF0Y2hBbnkpICYmICFl bmRzX3dpdGgocHJldl93ZCwgJywnKSkKKwkJQ09NUExFVEVfV0lUSCgiRVhDRVBUICgiKTsKKwll bHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCBNYXRjaEFu eU4sICJFWENFUFQiKSkKKwkJQ09NUExFVEVfV0lUSCgiKCIpOwogCWVsc2UgaWYgKE1hdGNoZXMo IkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikpCiAJ CUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CiAJ ZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIs ICJBTEwiLCAiVEFCTEVTIiwgIkVYQ0VQVCIsICJUQUJMRSIpKQpAQCAtMjMxNCwxMCArMjMxOCwx MyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lU SCgiKCIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hB bnksIE1hdGNoQW55TiwgIldIRVJFIiwgIigiKSkKIAkJQ09NUExFVEVfV0lUSF9BVFRSKHByZXYz X3dkKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55 LCBNYXRjaEFueU4sICJFWENFUFQiLCAiKCIpKQorCQlDT01QTEVURV9XSVRIX0FUVFIocHJldjNf d2QpOwogCWVsc2UgaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNo QW55LCAiQUREfFNFVCIsICJUQUJMRSIpICYmCi0JCQkgIVRhaWxNYXRjaGVzKCJXSEVSRSIsICIo KikiKSkKKwkJCSAhVGFpbE1hdGNoZXMoIldIRVJFIiwgIigqKSIpICYmICFUYWlsTWF0Y2hlcygi RVhDRVBUIiwgIigiKSkKIAkJQ09NUExFVEVfV0lUSCgiLCIsICJXSEVSRSAoIik7Ci0JZWxzZSBp ZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VU IiwgIlRBQkxFIikpCisJZWxzZSBpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9O IiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikgJiYKKwkJCSAhZW5kc193aXRoKHByZXZf d2QsICcoJykpCiAJCUNPTVBMRVRFX1dJVEgoIiwiKTsKIAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8 bmFtZT4gRFJPUCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwg TWF0Y2hBbnksICJEUk9QIikpCkBAIC0zNjM1LDcgKzM2NDIsNyBAQCBtYXRjaF9wcmV2aW91c193 b3JkcyhpbnQgcGF0dGVybl9pZCwKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElD QVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRVMiKSkKIAkJQ09NUExFVEVfV0lUSCgiSU4g U0NIRU1BIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0 Y2hBbnksICJGT1IiLCAiVEFCTEUiLCBNYXRjaEFueSkgJiYgIWVuZHNfd2l0aChwcmV2X3dkLCAn LCcpKQotCQlDT01QTEVURV9XSVRIKCJXSEVSRSAoIiwgIldJVEggKCIpOworCQlDT01QTEVURV9X SVRIKCJFWENFUFQgKCIsICJXSEVSRSAoIiwgIldJVEggKCIpOwogCS8qIENvbXBsZXRlICJDUkVB VEUgUFVCTElDQVRJT04gPG5hbWU+IEZPUiBUQUJMRSIgd2l0aCAiPHRhYmxlPiwgLi4uIiAqLwog CWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9S IiwgIlRBQkxFIikpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0 X29mX3RhYmxlcyk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0 aW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKaW5kZXggMGQzOWNi Njc3NzkuLjU5NGEyZTE0Njc2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1 YmxpY2F0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCkBA IC0xOTgsNyArMTk4LDggQEAgZXh0ZXJuIE9pZAlHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0 aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywKIGV4dGVybiBib29sIGlzX3B1Ymxpc2hh YmxlX3JlbGF0aW9uKFJlbGF0aW9uIHJlbCk7CiBleHRlcm4gYm9vbCBpc19zY2hlbWFfcHVibGlj YXRpb24oT2lkIHB1YmlkKTsKIGV4dGVybiBib29sIGNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlz dChQdWJsaWNhdGlvbiAqcHViLCBPaWQgcmVsaWQsCi0JCQkJCQkJCQkJTWVtb3J5Q29udGV4dCBt Y3h0LCBCaXRtYXBzZXQgKipjb2xzKTsKKwkJCQkJCQkJCQlNZW1vcnlDb250ZXh0IG1jeHQsIEJp dG1hcHNldCAqKmNvbHMsCisJCQkJCQkJCQkJYm9vbCAqZXhjZXB0X2NvbHVtbnMpOwogZXh0ZXJu IE9iamVjdEFkZHJlc3MgcHVibGljYXRpb25fYWRkX3JlbGF0aW9uKE9pZCBwdWJpZCwgUHVibGlj YXRpb25SZWxJbmZvICpwcmksCiAJCQkJCQkJCQkJCSAgYm9vbCBpZl9ub3RfZXhpc3RzKTsKIGV4 dGVybiBCaXRtYXBzZXQgKnB1Yl9jb2xsaXN0X3ZhbGlkYXRlKFJlbGF0aW9uIHRhcmdldHJlbCwg TGlzdCAqY29sdW1ucyk7CkBAIC0yMDgsNiArMjA5LDcgQEAgZXh0ZXJuIE9iamVjdEFkZHJlc3Mg cHVibGljYXRpb25fYWRkX3NjaGVtYShPaWQgcHViaWQsIE9pZCBzY2hlbWFpZCwKIGV4dGVybiBC aXRtYXBzZXQgKnB1Yl9jb2xsaXN0X3RvX2JpdG1hcHNldChCaXRtYXBzZXQgKmNvbHVtbnMsIERh dHVtIHB1YmNvbHMsCiAJCQkJCQkJCQkJICAgTWVtb3J5Q29udGV4dCBtY3h0KTsKIGV4dGVybiBC aXRtYXBzZXQgKnB1Yl9mb3JtX2NvbHNfbWFwKFJlbGF0aW9uIHJlbGF0aW9uLAotCQkJCQkJCQkJ UHVibGlzaEdlbmNvbHNUeXBlIGluY2x1ZGVfZ2VuY29sc190eXBlKTsKKwkJCQkJCQkJCVB1Ymxp c2hHZW5jb2xzVHlwZSBpbmNsdWRlX2dlbmNvbHNfdHlwZSwKKwkJCQkJCQkJCUJpdG1hcHNldCAq ZXhjZXB0X2NvbHMpOwogCiAjZW5kaWYJCQkJCQkJLyogUEdfUFVCTElDQVRJT05fSCAqLwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaCBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmgKaW5kZXggZTdkN2YzYmE4NWMuLjZh MjE2OGZjMzJjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9u X3JlbC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmgKQEAg LTMxLDExICszMSwxMiBAQCBDQVRBTE9HKHBnX3B1YmxpY2F0aW9uX3JlbCw2MTA2LFB1YmxpY2F0 aW9uUmVsUmVsYXRpb25JZCkKIAlPaWQJCQlvaWQ7CQkJLyogb2lkICovCiAJT2lkCQkJcHJwdWJp ZCBCS0lfTE9PS1VQKHBnX3B1YmxpY2F0aW9uKTsgLyogT2lkIG9mIHRoZSBwdWJsaWNhdGlvbiAq LwogCU9pZAkJCXBycmVsaWQgQktJX0xPT0tVUChwZ19jbGFzcyk7CS8qIE9pZCBvZiB0aGUgcmVs YXRpb24gKi8KLQlib29sCQlwcmV4Y2VwdCBCS0lfREVGQVVMVChmKTsJLyogZXhjbHVkZSB0aGUg cmVsYXRpb24gKi8KKwlib29sCQlwcmV4Y2VwdCBCS0lfREVGQVVMVChmKTsJLyogZXhjbHVkZSB0 aGUgcmVsYXRpb24gb3IgY29sdW1ucyAqLwogCiAjaWZkZWYJQ0FUQUxPR19WQVJMRU4JCQkvKiB2 YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8KIAlwZ19ub2RlX3RyZWUgcHJxdWFs OwkJLyogcXVhbGlmaWNhdGlvbnMgKi8KLQlpbnQydmVjdG9yCXByYXR0cnM7CQkvKiBjb2x1bW5z IHRvIHJlcGxpY2F0ZSAqLworCWludDJ2ZWN0b3IJcHJhdHRyczsJCS8qIGNvbHVtbnMgdG8gcmVw bGljYXRlIG9yIGV4Y2x1ZGUgdG8KKwkJCQkJCQkJICogcmVwbGljYXRlICovCiAjZW5kaWYKIH0g Rm9ybURhdGFfcGdfcHVibGljYXRpb25fcmVsOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHVibGljYXRpb24ub3V0CmluZGV4IDU1Y2M3ZDVlZTcxLi5kMzhiMDkzOWMxNiAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTIyMTQsNiArMjIxNCw5NCBA QCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogRFJPUCBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0OwogRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwxOwogRFJPUCBUQUJMRSBw dWJfc2NoMS50YmwyOworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLSBUZXN0IEVYQ0VQVCBjb2x1bW5zIGZvciBDUkVBVEUgUFVCTElD QVRJT04KK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBUQUJMRSBw dWJfdGVzdF9leGNlcHQxIChhIGludCBOT1QgTlVMTCwgYiBpbnQsIGMgaW50IE5PVCBOVUxMLCBk IGludCk7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEucHViX3Rlc3RfZXhjZXB0MiAoYSBpbnQsIGIg aW50LCBjIGludCwgZCBpbnQpOworLS0gVmVyaWZ5IHRoYXQgcHVibGljYXRpb24gaXMgY3JlYXRl ZCB3aXRoIEVYQ0VQVAorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IEZPUiBUQUJM RSBwdWJfdGVzdF9leGNlcHQxLCBwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyIEVYQ0VQVCAoYiwg Yyk7CitTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxlcyBXSEVSRSBwdWJuYW1lID0g J3Rlc3RwdWJfZXhjZXB0JzsKKyAgICBwdWJuYW1lICAgICB8IHNjaGVtYW5hbWUgfCAgICB0YWJs ZW5hbWUgICAgIHwgYXR0bmFtZXMgIHwgcm93ZmlsdGVyIAorLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgdGVz dHB1Yl9leGNlcHQgfCBwdWJsaWMgICAgIHwgcHViX3Rlc3RfZXhjZXB0MSB8IHthLGIsYyxkfSB8 IAorIHRlc3RwdWJfZXhjZXB0IHwgcHViX3NjaDEgICB8IHB1Yl90ZXN0X2V4Y2VwdDIgfCB7YSxk fSAgICAgfCAKKygyIHJvd3MpCisKKy0tIENhbm5vdCB1c2UgRVhDRVBUIGNvbC1saXN0cyBjb21i aW5lZCB3aXRoIFRBQkxFUyBJTiBTQ0hFTUEKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4 Y2VwdDIgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3NjaDEsIFRBQkxFIHB1Yl90ZXN0X2V4Y2Vw dDEgRVhDRVBUIChiLCBjKTsKK0VSUk9SOiAgY2Fubm90IHVzZSBjb2x1bW4gbGlzdCBmb3IgcmVs YXRpb24gInB1YmxpYy5wdWJfdGVzdF9leGNlcHQxIiBpbiBwdWJsaWNhdGlvbiAidGVzdHB1Yl9l eGNlcHQyIgorREVUQUlMOiAgQ29sdW1uIGxpc3RzIGNhbm5vdCBiZSBzcGVjaWZpZWQgaW4gcHVi bGljYXRpb25zIGNvbnRhaW5pbmcgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgZWxlbWVudHMuCistLSBT eW50YXggZXJyb3IgRVhDRVBUIHdpdGhvdXQgYSBjb2wtbGlzdAorQ1JFQVRFIFBVQkxJQ0FUSU9O IHRlc3RwdWJfZXhjZXB0MiBGT1IgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBFWENFUFQ7CitFUlJP UjogIHRhYmxlIHdpdGhvdXQgY29sdW1uIGxpc3QgY2Fubm90IHVzZSBFWENFUFQgY2xhdXNlCitM SU5FIDE6IENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdDIgRk9SIFRBQkxFIHB1Yl90 ZXN0X2V4Y2VwdC4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCistLSBWZXJpZnkgb2sgLSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gU0VUIC4uLiBFWENF UFQgKGNvbC1saXN0KQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQgU0VUIFRBQkxF IHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChhLCBiKSwgcHViX3NjaDEucHViX3Rlc3RfZXhjZXB0 MjsKK1xkUnArIHRlc3RwdWJfZXhjZXB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2V4Y2VwdAorICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8 IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEg cm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAg ICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKK1RhYmxlczoKKyAgICAicHViX3NjaDEucHVi X3Rlc3RfZXhjZXB0MiIKKyAgICAicHVibGljLnB1Yl90ZXN0X2V4Y2VwdDEiIEVYQ0VQVCAoYSwg YikKKworLS0gVmVyaWZ5IGZhaWxzIC0gQUxURVIgUFVCTElDQVRJT04gLi4uIERST1AgLi4uIEVY Q0VQVCAoY29sLWxpc3QpCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBEUk9QIFRB QkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChhLCBiKTsKK0VSUk9SOiAgY29sdW1uIGxpc3Qg bXVzdCBub3QgYmUgc3BlY2lmaWVkIGluIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBEUk9QCistLSBW ZXJpZnkgb2sgLSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gRFJPUAorQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9leGNlcHQgRFJPUCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxOworLS0gVmVyaWZ5IG9r IC0gQUxURVIgUFVCTElDQVRJT04gLi4uIEFERCAuLi4gRVhDRVBUIChjb2wtbGlzdCkKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IEFERCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIEVY Q0VQVCAoYywgZCk7CitcZFJwKyB0ZXN0cHViX2V4Y2VwdAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9leGNlcHQK KyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8 IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1 bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl ciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCitUYWJsZXM6CisgICAgInB1 Yl9zY2gxLnB1Yl90ZXN0X2V4Y2VwdDIiCisgICAgInB1YmxpYy5wdWJfdGVzdF9leGNlcHQxIiBF WENFUFQgKGMsIGQpCisKKy0tIFZlcmlmeSBmYWlscyAtIEVYQ0VQVCBjb2wtbGlzdCBjYW5ub3Qg Y29udGFpbiBSSSBjb2xzICh3aGVuIHVzaW5nIFJJIEZVTEwpCitBTFRFUiBUQUJMRSBwdWJfdGVz dF9leGNlcHQxIFJFUExJQ0EgSURFTlRJVFkgRlVMTDsKK1VQREFURSBwdWJfdGVzdF9leGNlcHQx IFNFVCBhID0gMyBXSEVSRSBhID0gMTsKK0VSUk9SOiAgY2Fubm90IHVwZGF0ZSB0YWJsZSAicHVi X3Rlc3RfZXhjZXB0MSIKK0RFVEFJTDogIENvbHVtbiBsaXN0IHVzZWQgYnkgdGhlIHB1YmxpY2F0 aW9uIGRvZXMgbm90IGNvdmVyIHRoZSByZXBsaWNhIGlkZW50aXR5LgorLS0gVmVyaWZ5IGZhaWxz IC0gRVhDRVBUIGNvbC1saXN0IGNhbm5vdCBjb250YWluIFJJIGNvbHMgKHdoZW4gdXNpbmcgSU5E RVgpCitDUkVBVEUgVU5JUVVFIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYWNfaWR4IE9OIHB1Yl90 ZXN0X2V4Y2VwdDEgKGEsIGMpOworQUxURVIgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBSRVBMSUNB IElERU5USVRZIFVTSU5HIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYWNfaWR4OworVVBEQVRFIHB1 Yl90ZXN0X2V4Y2VwdDEgU0VUIGEgPSAzIFdIRVJFIGEgPSAxOworRVJST1I6ICBjYW5ub3QgdXBk YXRlIHRhYmxlICJwdWJfdGVzdF9leGNlcHQxIgorREVUQUlMOiAgQ29sdW1uIGxpc3QgdXNlZCBi eSB0aGUgcHVibGljYXRpb24gZG9lcyBub3QgY292ZXIgdGhlIHJlcGxpY2EgaWRlbnRpdHkuCitE Uk9QIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYWNfaWR4OworLS0gVmVyaWZ5IG9rIC0gbm8gY2xh c2ggYmV0d2VlbiBSSSBjb2xzIGFuZCB0aGUgRVhDRVBUIGNvbC1saXN0CitDUkVBVEUgVU5JUVVF IElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHggT04gcHViX3Rlc3RfZXhjZXB0MSAoYSk7CitB TFRFUiBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVgg cHViX3Rlc3RfZXhjZXB0MV9hX2lkeDsKK1VQREFURSBwdWJfdGVzdF9leGNlcHQxIFNFVCBhID0g MyBXSEVSRSBhID0gMTsKKy0tIFZlcmlmeSBkZXNjcmlwdGlvbiBvZiBhIHRhYmxlIHdpdGggcHVi bGljYXRpb24gd2l0aCBFWENFUFQgY29sLWxpc3QKK1xkKyBwdWJfdGVzdF9leGNlcHQxCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMucHViX3Rlc3RfZXhjZXB0MSIK KyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgU3Rv cmFnZSB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwg ICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCBpbnRlZ2VyIHwg ICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAgICAgICB8 IAorIGMgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCBub3QgbnVsbCB8ICAgICAgICAgfCBw bGFpbiAgIHwgICAgICAgICAgICAgIHwgCisgZCAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKK0luZGV4ZXM6 CisgICAgInB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHgiIFVOSVFVRSwgYnRyZWUgKGEpIFJFUExJQ0Eg SURFTlRJVFkKK1B1YmxpY2F0aW9uczoKKyAgICAidGVzdHB1Yl9leGNlcHQiIEVYQ0VQVCAoYywg ZCkKK05vdC1udWxsIGNvbnN0cmFpbnRzOgorICAgICJwdWJfdGVzdF9leGNlcHQxX2Ffbm90X251 bGwiIE5PVCBOVUxMICJhIgorICAgICJwdWJfdGVzdF9leGNlcHQxX2Nfbm90X251bGwiIE5PVCBO VUxMICJjIgorCistLSBjbGVhbnVwCitEUk9QIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHg7 CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0OworRFJPUCBUQUJMRSBwdWJfdGVzdF9l eGNlcHQxOworRFJPUCBUQUJMRSBwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyOwogRFJPUCBTQ0hF TUEgcHViX3NjaDE7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogLS0gVGVzdCB0aGF0IHRo ZSBJTlNFUlQgT04gQ09ORkxJQ1QgY29tbWFuZCBjb3JyZWN0bHkgY2hlY2tzIFJFUExJQ0EgSURF TlRJVFkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAppbmRleCBkM2MwM2Y1NDI3OC4u YzkxN2JiMDAwYWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9u LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKQEAgLTEzNTks NiArMTM1OSw2MSBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogRFJP UCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0OwogRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwxOwog RFJPUCBUQUJMRSBwdWJfc2NoMS50YmwyOworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFRlc3QgRVhDRVBUIGNvbHVtbnMgZm9y IENSRUFURSBQVUJMSUNBVElPTgorCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7 CitDUkVBVEUgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSAoYSBpbnQgTk9UIE5VTEwsIGIgaW50LCBj IGludCBOT1QgTlVMTCwgZCBpbnQpOworQ1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnB1Yl90ZXN0X2V4 Y2VwdDIgKGEgaW50LCBiIGludCwgYyBpbnQsIGQgaW50KTsKKworLS0gVmVyaWZ5IHRoYXQgcHVi bGljYXRpb24gaXMgY3JlYXRlZCB3aXRoIEVYQ0VQVAorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfZXhjZXB0IEZPUiBUQUJMRSBwdWJfdGVzdF9leGNlcHQxLCBwdWJfc2NoMS5wdWJfdGVzdF9l eGNlcHQyIEVYQ0VQVCAoYiwgYyk7CitTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxl cyBXSEVSRSBwdWJuYW1lID0gJ3Rlc3RwdWJfZXhjZXB0JzsKKworLS0gQ2Fubm90IHVzZSBFWENF UFQgY29sLWxpc3RzIGNvbWJpbmVkIHdpdGggVEFCTEVTIElOIFNDSEVNQQorQ1JFQVRFIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfZXhjZXB0MiBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfc2NoMSwgVEFC TEUgcHViX3Rlc3RfZXhjZXB0MSBFWENFUFQgKGIsIGMpOworCistLSBTeW50YXggZXJyb3IgRVhD RVBUIHdpdGhvdXQgYSBjb2wtbGlzdAorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0 MiBGT1IgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBFWENFUFQ7CisKKy0tIFZlcmlmeSBvayAtIEFM VEVSIFBVQkxJQ0FUSU9OIC4uLiBTRVQgLi4uIEVYQ0VQVCAoY29sLWxpc3QpCitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBTRVQgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBFWENFUFQg KGEsIGIpLCBwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyOworXGRScCsgdGVzdHB1Yl9leGNlcHQK KworLS0gVmVyaWZ5IGZhaWxzIC0gQUxURVIgUFVCTElDQVRJT04gLi4uIERST1AgLi4uIEVYQ0VQ VCAoY29sLWxpc3QpCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBEUk9QIFRBQkxF IHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChhLCBiKTsKKworLS0gVmVyaWZ5IG9rIC0gQUxURVIg UFVCTElDQVRJT04gLi4uIERST1AKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IERS T1AgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MTsKKworLS0gVmVyaWZ5IG9rIC0gQUxURVIgUFVCTElD QVRJT04gLi4uIEFERCAuLi4gRVhDRVBUIChjb2wtbGlzdCkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfZXhjZXB0IEFERCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVCAoYywgZCk7Citc ZFJwKyB0ZXN0cHViX2V4Y2VwdAorCistLSBWZXJpZnkgZmFpbHMgLSBFWENFUFQgY29sLWxpc3Qg Y2Fubm90IGNvbnRhaW4gUkkgY29scyAod2hlbiB1c2luZyBSSSBGVUxMKQorQUxURVIgVEFCTEUg cHViX3Rlc3RfZXhjZXB0MSBSRVBMSUNBIElERU5USVRZIEZVTEw7CitVUERBVEUgcHViX3Rlc3Rf ZXhjZXB0MSBTRVQgYSA9IDMgV0hFUkUgYSA9IDE7CisKKy0tIFZlcmlmeSBmYWlscyAtIEVYQ0VQ VCBjb2wtbGlzdCBjYW5ub3QgY29udGFpbiBSSSBjb2xzICh3aGVuIHVzaW5nIElOREVYKQorQ1JF QVRFIFVOSVFVRSBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FjX2lkeCBPTiBwdWJfdGVzdF9leGNl cHQxIChhLCBjKTsKK0FMVEVSIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgUkVQTElDQSBJREVOVElU WSBVU0lORyBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FjX2lkeDsKK1VQREFURSBwdWJfdGVzdF9l eGNlcHQxIFNFVCBhID0gMyBXSEVSRSBhID0gMTsKK0RST1AgSU5ERVggcHViX3Rlc3RfZXhjZXB0 MV9hY19pZHg7CisKKy0tIFZlcmlmeSBvayAtIG5vIGNsYXNoIGJldHdlZW4gUkkgY29scyBhbmQg dGhlIEVYQ0VQVCBjb2wtbGlzdAorQ1JFQVRFIFVOSVFVRSBJTkRFWCBwdWJfdGVzdF9leGNlcHQx X2FfaWR4IE9OIHB1Yl90ZXN0X2V4Y2VwdDEgKGEpOworQUxURVIgVEFCTEUgcHViX3Rlc3RfZXhj ZXB0MSBSRVBMSUNBIElERU5USVRZIFVTSU5HIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHg7 CitVUERBVEUgcHViX3Rlc3RfZXhjZXB0MSBTRVQgYSA9IDMgV0hFUkUgYSA9IDE7CisKKy0tIFZl cmlmeSBkZXNjcmlwdGlvbiBvZiBhIHRhYmxlIHdpdGggcHVibGljYXRpb24gd2l0aCBFWENFUFQg Y29sLWxpc3QKK1xkKyBwdWJfdGVzdF9leGNlcHQxCisKKy0tIGNsZWFudXAKK0RST1AgSU5ERVgg cHViX3Rlc3RfZXhjZXB0MV9hX2lkeDsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQ7 CitEUk9QIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDE7CitEUk9QIFRBQkxFIHB1Yl9zY2gxLnB1Yl90 ZXN0X2V4Y2VwdDI7CiBEUk9QIFNDSEVNQSBwdWJfc2NoMTsKIAogUkVTRVQgY2xpZW50X21pbl9t ZXNzYWdlczsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZCBi L3NyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZAppbmRleCBiOGU1YzU0YzMxNC4uZThl NjlmNzQ0M2QgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZAor KysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQKQEAgLTQ3LDYgKzQ3LDcgQEAg dGVzdHMgKz0gewogICAgICAgJ3QvMDM1X2NvbmZsaWN0cy5wbCcsCiAgICAgICAndC8wMzZfc2Vx dWVuY2VzLnBsJywKICAgICAgICd0LzAzN19yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwnLAor ICAgICAgJ3QvMDM4X3JlcF9jaGFuZ2VzX2V4Y2VwdF9jb2xsaXN0LnBsJywKICAgICAgICd0LzEw MF9idWdzLnBsJywKICAgICBdLAogICB9LApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0 aW9uL3QvMDM4X3JlcF9jaGFuZ2VzX2V4Y2VwdF9jb2xsaXN0LnBsIGIvc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL3QvMDM4X3JlcF9jaGFuZ2VzX2V4Y2VwdF9jb2xsaXN0LnBsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZGZkMjY2YmMzZAotLS0gL2Rldi9udWxsCisrKyBi L3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzOF9yZXBfY2hhbmdlc19leGNlcHRfY29sbGlzdC5w bApAQCAtMCwwICsxLDE5MyBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyNSwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIyBMb2dpY2FsIHJlcGxpY2F0aW9uIHRlc3Rz IGZvciBFWENFUFQgKGNvbHVtbi1saXN0KSBwdWJsaWNhdGlvbnMKK3VzZSBzdHJpY3Q7Cit1c2Ug d2FybmluZ3M7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKK3VzZSBQb3N0Z3JlU1FM OjpUZXN0OjpVdGlsczsKK3VzZSBUZXN0OjpNb3JlOworCisjIEluaXRpYWxpemUgcHVibGlzaGVy IG5vZGUKK215ICRub2RlX3B1Ymxpc2hlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5l dygncHVibGlzaGVyJyk7Ciskbm9kZV9wdWJsaXNoZXItPmluaXQoYWxsb3dzX3N0cmVhbWluZyA9 PiAnbG9naWNhbCcpOworJG5vZGVfcHVibGlzaGVyLT5zdGFydDsKKworIyBDcmVhdGUgc3Vic2Ny aWJlciBub2RlCitteSAkbm9kZV9zdWJzY3JpYmVyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rl ci0+bmV3KCdzdWJzY3JpYmVyJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5pbml0KGFsbG93c19zdHJl YW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRub2RlX3N1YnNjcmliZXItPnN0YXJ0OworCisjIEluaXRp YWwgc2V0dXAKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxICgK KwlDUkVBVEUgU0NIRU1BIHNjaDE7CisJQ1JFQVRFIFRBQkxFIHRhYjEgKGEgaW50LCBiIGludCBO T1QgTlVMTCwgYyBpbnQpOworCUNSRUFURSBUQUJMRSBzY2gxLnRhYjEgKGEgaW50LCBiIGludCwg YyBpbnQpOworCUNSRUFURSBUQUJMRSB0YWIyIChhIGludCwgYiBpbnQsIGMgaW50KTsKKwlDUkVB VEUgVEFCTEUgdGFiMyAoYSBpbnQsIGJnZW4gaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAy KSBTVE9SRUQsIGNnZW4gaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAzKSBTVE9SRUQpOwor CUNSRUFURSBUQUJMRSB0YWI0IChhIGludCwgYmdlbiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDIpIFNUT1JFRCwgY2dlbiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFNUT1JF RCk7CisJQ1JFQVRFIFRBQkxFIHRhYjUgKGEgaW50LCBiIGludCwgYyBpbnQpOworCUlOU0VSVCBJ TlRPIHRhYjEgVkFMVUVTICgxLCAyLCAzKTsKKwlJTlNFUlQgSU5UTyBzY2gxLnRhYjEgVkFMVUVT ICgxLCAyLCAzKTsKKwlDUkVBVEUgUFVCTElDQVRJT04gdGFwX3B1Yl9jb2wgRk9SIFRBQkxFIHRh YjEgRVhDRVBUIChhKSwgc2NoMS50YWIxIEVYQ0VQVCAoYiwgYyk7CispKTsKKworJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxICgKKwlDUkVBVEUgU0NIRU1BIHNj aDE7CisJQ1JFQVRFIFRBQkxFIHRhYjEgKGEgaW50LCBiIGludCBOT1QgTlVMTCwgYyBpbnQpOwor CUNSRUFURSBUQUJMRSBzY2gxLnRhYjEgKGEgaW50LCBiIGludCwgYyBpbnQpOworCUNSRUFURSBU QUJMRSB0YWIyIChhIGludCwgYiBpbnQsIGMgaW50KTsKKwlDUkVBVEUgVEFCTEUgdGFiMyAoYSBp bnQsIGJnZW4gaW50LCBjZ2VuIGludCk7CisJQ1JFQVRFIFRBQkxFIHRhYjQgKGEgaW50LCBiZ2Vu IGludCwgY2dlbiBpbnQpOworCUNSRUFURSBUQUJMRSB0YWI1IChhIGludCwgYiBpbnQsIGMgaW50 LCBkIGludCk7CispKTsKKworIyBTZXR1cCBsb2dpY2FsIHJlcGxpY2F0aW9uCitteSAkcHVibGlz aGVyX2Nvbm5zdHIgPSAkbm9kZV9wdWJsaXNoZXItPmNvbm5zdHIgLiAnIGRibmFtZT1wb3N0Z3Jl cyc7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNV QlNDUklQVElPTiB0YXBfc3ViX2NvbCBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBV QkxJQ0FUSU9OIHRhcF9wdWJfY29sIgorKTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1 YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwgJ3RhcF9zdWJfY29sJyk7CisKKyMgVGVz dCBpbml0aWFsIHN5bmMKK215ICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gdGFiMSIpOworaXMoJHJlc3VsdCwgcXEofDJ8Myks CisJJ1ZlcmlmeSBpbml0aWFsIHN5bmMgb2YgdGFiMSBpbiBhIHB1YmxpY2F0aW9uIHVzaW5nIEVY Q0VQVCAoY29sdW1uLWxpc3QpJworKTsKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gc2NoMS50YWIxIik7CitpcygkcmVzdWx0 LCBxcSgxfHwpLAorCSdWZXJpZnkgaW5pdGlhbCBzeW5jIG9mIHNjaDEudGFiMSBpbiBhIHB1Ymxp Y2F0aW9uIHVzaW5nIEVYQ0VQVCAoY29sdW1uLWxpc3QpJworKTsKKworIyBUZXN0IGluY3JlbWVu dGFsIGNoYW5nZXMKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFx ICgKKwlJTlNFUlQgSU5UTyB0YWIxIFZBTFVFUyAoNCwgNSwgNik7CisJSU5TRVJUIElOVE8gc2No MS50YWIxIFZBTFVFUyAoNCwgNSwgNik7CispKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3Jf Y2F0Y2h1cCgndGFwX3N1Yl9jb2wnKTsKKyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gdGFiMSBPUkRFUiBCWSBhIik7Citp cyggJHJlc3VsdCwgcXEofDJ8MworfDV8NiksCisJJ1ZlcmlmeSBpbmNyZW1lbnRhbCBpbnNlcnRz IG9uIHRhYjEgaW4gYSBwdWJsaWNhdGlvbiB1c2luZyBFWENFUFQgKGNvbHVtbi1saXN0KScKKyk7 CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNF TEVDVCAqIEZST00gc2NoMS50YWIxIE9SREVSIEJZIGEiKTsKK2lzKCAkcmVzdWx0LCBxcSgxfHwK KzR8fCksCisJJ1ZlcmlmeSBpbmNyZW1lbnRhbCBpbnNlcnRzIG9uIHNjaDEudGFiMSBpbiBhIHB1 YmxpY2F0aW9uIHVzaW5nIEVYQ0VQVCAoY29sdW1uLWxpc3QpJworKTsKKworIyBUZXN0IGZvciB1 cGRhdGUKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlD UkVBVEUgVU5JUVVFIElOREVYIGJfaWR4IE9OIHRhYjEgKGIpOworCUFMVEVSIFRBQkxFIHRhYjEg UkVQTElDQSBJREVOVElUWSBVU0lORyBJTkRFWCBiX2lkeDsKKykpOworJG5vZGVfcHVibGlzaGVy LT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQ1JFQVRFIFVOSVFVRSBJTkRFWCBiX2lk eCBPTiB0YWIxIChiKTsKKwlBTFRFUiBUQUJMRSB0YWIxIFJFUExJQ0EgSURFTlRJVFkgVVNJTkcg SU5ERVggYl9pZHg7CisJVVBEQVRFIHRhYjEgU0VUIGEgPSA5OTEsIGIgPSA5OTIsIGMgPSA5OTMg V0hFUkUgYSA9IDE7CispKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFw X3N1Yl9jb2wnKTsKKyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgIlNFTEVDVCAqIEZST00gdGFiMSAgT1JERVIgQlkgYSIpOworaXMoICRyZXN1bHQs IHFxKHw1fDYKK3w5OTJ8OTkzKSwKKwknY2hlY2sgdXBkYXRlIGZvciBFWENFUFQgKGNvbHVtbi1s aXN0KSBwdWJsaWNhdGlvbicpOworCisjIFRlc3QgQUxURVIgUFVCTElDQVRJT04gZm9yIEVYQ0VQ VCAoY29sdW1uLWxpc3QpCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAor CSJBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX2NvbCBBREQgVEFCTEUgdGFiMiBFWENFUFQoYiki KTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBTVUJT Q1JJUFRJT04gdGFwX3N1Yl9jb2wgUkVGUkVTSCBQVUJMSUNBVElPTiIpOworJG5vZGVfc3Vic2Ny aWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVibGlzaGVyLCAndGFwX3N1 Yl9jb2wnKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIklOU0VS VCBJTlRPIHRhYjIgVkFMVUVTICgxLCAyLCAzKSIpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zv cl9jYXRjaHVwKCd0YXBfc3ViX2NvbCcpOworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSB0YWIyIik7CitpcygkcmVzdWx0LCBx cSgxfHwzKSwgJ2NoZWNrIGFsdGVyIHB1YmxpY2F0aW9uIHdpdGggRVhDRVBUIChjb2x1bW4tbGlz dCknKTsKKworIyBUZXN0IGZvciBwdWJsaWNhdGlvbiBjcmVhdGVkIHdpdGggJ3B1Ymxpc2hfZ2Vu ZXJhdGVkX2NvbHVtbnMnIGFzICdzdG9yZWQnIG9uCisjIHRhYmxlICd0YWIzJyBhbmQgd2l0aCBj b2x1bW4gJ2JnZW4nIGluIGNvbHVtbiBsaXN0IHdpdGggRVhDRVBUIGNsYXVzZS4KKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKElOU0VSVCBJTlRPIHRhYjMgVkFM VUVTICgxKTsKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX2NvbCBTRVQgKHB1Ymxpc2hfZ2Vu ZXJhdGVkX2NvbHVtbnMgPSBzdG9yZWQpOworCUFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfY29s IFNFVCBUQUJMRSB0YWIzIEVYQ0VQVChiZ2VuKTsKKykpOworJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFNVQlNDUklQVElPTiB0YXBfc3ViX2NvbCBSRUZS RVNIIFBVQkxJQ0FUSU9OIik7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRp b25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0YXBfc3ViX2NvbCcpOworCiskbm9kZV9wdWJsaXNo ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5TRVJUIElOVE8gdGFiMyBWQUxVRVMgKDIpIik7 Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfY29sJyk7CiskcmVz dWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1Qg KiBGUk9NIHRhYjMgT1JERVIgQlkgYSIpOworCisjIGNvbHVtbiAnYmdlbicgaXMgc3BlY2lmaWVk IGluIEVYQ0VQVCAoY29sdW1tLWxpc3QpLiBTbyBkYXRhIGNvcnJlc3BvbmRpbmcgdG8KKyMgJ2Jn ZW4nIGlzIG5vdCByZXBsaWNhdGVkLiBQYXJhbWV0ZXIgJ3B1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVt bnMnIGlzIHNldCBhcworIyAnc3RvcmVkJywgc28gZGF0YSBjb3JyZXNwb25kaW5nIHRvIGNvbHVt biAnY2dlbicgaXMgcmVwbGljYXRlZC4KK2lzKCAkcmVzdWx0LCBxcSgxfHwzCisyfHw2KSwKKwkn Y2hlY2sgcHVibGljYXRpb24ocHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucyBhcyBzdG9yZWQpIHdp dGggZ2VuZXJhdGVkIGNvbHVtbnMgYW5kIEVYQ0VQVCAoY29sdW1uLWxpc3QpJworKTsKKworIyBU ZXN0IGZvciBwdWJsaWNhdGlvbiBjcmVhdGVkIHdpdGggJ3B1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVt bnMnIGFzICdub25lJyBvbgorIyB0YWJsZSB3aXRoIGdlbmVyYXRlZCBjb2x1bW5zIGFuZCBjb2x1 bW4gbGlzdCBzcGVjaWZpZWQgd2l0aCBFWENFUFQgY2xhdXNlLgorJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJSU5TRVJUIElOVE8gdGFiNCBWQUxVRVMgKDEp OworCUFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfY29sIFNFVCAocHVibGlzaF9nZW5lcmF0ZWRf Y29sdW1ucyA9IG5vbmUpOworCUFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfY29sIFNFVCBUQUJM RSB0YWI0IEVYQ0VQVChiZ2VuKTsKKykpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIkFMVEVSIFNVQlNDUklQVElPTiB0YXBfc3ViX2NvbCBSRUZSRVNIIFBVQkxJ Q0FUSU9OIik7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygk bm9kZV9wdWJsaXNoZXIsICd0YXBfc3ViX2NvbCcpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAiSU5TRVJUIElOVE8gdGFiNCBWQUxVRVMgKDIpIik7Ciskbm9kZV9w dWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfY29sJyk7CiskcmVzdWx0ID0KKyAg JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHRh YjQgT1JERVIgQlkgYSIpOworCisjIGNvbHVtbiAnYmdlbicgaXMgc3BlY2lmaWVkIGluIEVYQ0VQ VCAoY29sdW1tLWxpc3QpLiBTbyBkYXRhIGNvcnJlc3BvbmRpbmcgdG8KKyMgJ2JnZW4nIGlzIG5v dCByZXBsaWNhdGVkLiBQYXJhbWV0ZXIgJ3B1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMnIGlzIHNl dCBhcworIyAnbm9uZScsIHNvIGRhdGEgY29ycmVzcG9uZGluZyB0byBjb2x1bW4gJ2NnZW4nIGlz IG5vdCByZXBsaWNhdGVkLgoraXMoICRyZXN1bHQsIHFxKDF8fAorMnx8KSwKKwknY2hlY2sgcHVi bGljYXRpb24ocHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucyBhcyBub25lKSB3aXRoIGdlbmVyYXRl ZCBjb2x1bW5zIGFuZCBFWENFUFQgKGNvbHVtbi1saXN0KScKKyk7CisKKyMgQWxsIGNvbHVtbnMg YXJlIHByZXNlbnQgaW4gRVhDRVBUIChjb2x1bW4tbGlzdCkKKyRub2RlX3B1Ymxpc2hlci0+c2Fm ZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfY29s IFNFVCBUQUJMRSB0YWI1IEVYQ0VQVChhLCBiLCBjKTsKKwlJTlNFUlQgSU5UTyB0YWI1IFZBTFVF UyAoMSwgMiwgMyk7CispKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9jb2wgUkVGUkVTSCBQVUJMSUNBVElPTiIp OworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVi bGlzaGVyLCAndGFwX3N1Yl9jb2wnKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgIklOU0VSVCBJTlRPIHRhYjUgVkFMVUVTICg0LCA1LCA2KSIpOworJG5vZGVfcHVi bGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX2NvbCcpOworJHJlc3VsdCA9ICRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSB0YWI1Iik7 CitpcygkcmVzdWx0LCBxcSgpLCAnYWxsIGNvbHVtbnMgYXJlIHNwZWNpZmllZCBpbiBFWENFUFQg KGNvbHVtbi1saXN0KScpOworCisjIEFkZCBhIG5ldyBjb2x1bW4gYW5kIGNoZWNrIHRoYXQgaXQg aXMgcmVwbGljYXRlZAorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywg cXEoCisJQUxURVIgVEFCTEUgdGFiNSBBREQgQ09MVU1OIGQgaW50OworKSk7Ciskbm9kZV9wdWJs aXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0YWI1IFZBTFVFUyAo NywgOCwgOSwgMTApIik7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9z dWJfY29sJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgIlNFTEVDVCAqIEZST00gdGFiNSIpOworaXMoJHJlc3VsdCwgcXEofHx8MTApLCAnbmV3 bHkgYWRkZWQgY29sdW1uIGlzIHJlcGxpY2F0ZWQnKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c3Rv cCgnZmFzdCcpOworJG5vZGVfcHVibGlzaGVyLT5zdG9wKCdmYXN0Jyk7CisKK2RvbmVfdGVzdGlu ZygpOwotLSAKMi4zNC4xCgo= --000000000000838c5d06434f008e Content-Type: application/octet-stream; name="v26-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Disposition: attachment; filename="v26-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhuezgna1 RnJvbSBkZGQwMTgwMGMxMzlkNjZkM2Y1YmMzOWRiMTc0NjU3ZmNlOTRmZTBmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTEgTm92IDIwMjUgMTM6NTI6MTcgKzA1MzAKU3ViamVjdDogW1BBVENIIHYy NiAyLzNdIFNraXAgcHVibGlzaGluZyB0aGUgdGFibGVzIHNwZWNpZmllZCBpbiBFWENFUFQgVEFC TEUuCgpBIG5ldyAiRVhDRVBUIFRBQkxFIiBjbGF1c2UgZm9yIENSRUFURS9BTFRFUiBQVUJMSUNB VElPTiBhbGxvd3Mgb25lIG9yCm1vcmUgdGFibGVzIHRvIGJlIGV4Y2x1ZGVkLiBUaGUgcHVibGlz aGVyIHdpbGwgbm90IHNlbmQgdGhlIGRhdGEgb2YKZXhjbHVkZWQgdGFibGVzIHRvIHRoZSBzdWJz Y3JpYmVyLgoKVGhlIG5ldyBzeW50YXggYWxsb3dzIHNwZWNpZnlpbmcgZXhjbHVkZWQgcmVsYXRp b25zIHdoZW4gY3JlYXRpbmcgb3IgYWx0ZXJpbmcKYSBwdWJsaWNhdGlvbi4gRm9yIGV4YW1wbGU6 CkNSRUFURSBQVUJMSUNBVElPTiBwdWIxIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAodDEs dDIpOwpvcgpBTFRFUiBQVUJMSUNBVElPTiBwdWIxIEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJM RSAodDEsdDIpOwoKQSBuZXcgY29sdW1uICJwcmV4Y2VwdCIgaXMgYWRkZWQgdG8gdGFibGUgInBn X3B1YmxpY2F0aW9uX3JlbCIsIHRvIGZsYWcKdGhlIHJlbGF0aW9ucyB0aGF0IHRoZSB1c2VyIHdh bnRzIHRvIGV4Y2x1ZGUgZnJvbSB0aGUgcHVibGljYXRpb25zLgoKcGdfZHVtcCBpcyB1cGRhdGVk IHRvIGlkZW50aWZ5IGFuZCBkdW1wIHRoZSBleGNsdWRlZCB0YWJsZXMgb2YgdGhlIHB1YmxpY2F0 aW9ucy4KClRoZSBwc3FsIFxkIGZhbWlseSBvZiBjb21tYW5kcyBjYW4gbm93IGRpc3BsYXkgZXhj bHVkZWQgdGFibGVzLiBlLmcuIHBzcWwKXGRScCsgdmFyaWFudCB3aWxsIG5vdyBkaXNwbGF5IGFz c29jaWF0ZWQgImV4Y2VwdCB0YWJsZXMiIGlmIGFueS4KCkJ1bXAgY2F0YWxvZyB2ZXJzaW9uLgot LS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgOSAr CiBkb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sICAgICAgICAgfCAgIDkgKy0K IGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCAgICAgICB8ICAyMiArLQog ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCAgICAgIHwgIDQ3ICsrKy0K IGRvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCAgICAgICAgICAgICAgICB8ICAgNSArLQog c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAgICAgICAgIHwgIDk5ICsrKysr LS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jICAgICAgICB8IDI0NyAr KysrKysrKysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAg ICAgICAgICB8ICAgNCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAg ICAgICAgIHwgIDQxICsrLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRw dXQuYyAgIHwgIDI1ICstCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jICAgICAg ICAgICAgfCAgMTcgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAg ICAgICB8ICA1NiArKystCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAg ICAgICAgfCAgIDEgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jICAgICAgICAgICAg ICAgIHwgIDE4ICsrCiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAg ICAgfCAgMjIgKy0KIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAg ICB8ICA1OCArKystCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAg ICAgfCAgMTUgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCAgICAgICAg ICB8ICAxMCArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaCAgICAg IHwgICAxICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oICAgICAgICB8 ICAgNSArLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwg ICA0ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0ICAgICB8ICA5 OSArKysrKystCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgICAgICAgICAg fCAgNTIgKysrLQogc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkICAgICAgICAgICAg IHwgICAxICsKIC4uLi90LzAzN19yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwgICAgICAgICB8 IDE4NiArKysrKysrKysrKysrCiAyNSBmaWxlcyBjaGFuZ2VkLCA5MDggaW5zZXJ0aW9ucygrKSwg MTQ1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3N1YnNjcmlwdGlv bi90LzAzN19yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwKCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IDZj OGEwZjE3M2M5Li4xNDRmM2ZiZGVmMiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dz LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTY1ODEsNiArNjU4MSwx NSBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0Ozwv cmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgaWYgdGhlcmUgaXMgbm8gcHVibGlj YXRpb24gcXVhbGlmeWluZyBjb25kaXRpb24uPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93Pgog CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgPHN0cnVjdGZpZWxkPnByZXhjZXB0 PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgIFRydWUgaWYgdGhlIHJlbGF0aW9uIG11c3QgYmUgZXhjbHVkZWQKKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KICAgICAgICA8c3RydWN0ZmllbGQ+cHJhdHRyczwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDJ2 ZWN0b3I8L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlv bi5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbAppbmRleCBkNjRl ZDlkYzM2Yi4uNzE0N2MxOTBiYTQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJl cGxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dt bApAQCAtMjMwMSwxMCArMjMwMSwxMSBAQCBDT05URVhUOiAgcHJvY2Vzc2luZyByZW1vdGUgZGF0 YSBmb3IgcmVwbGljYXRpb24gb3JpZ2luICJwZ18xNjM5NSIgZHVyaW5nICJJTlNFUgogICA8L3Bh cmE+CiAKICAgPHBhcmE+Ci0gICBUbyBhZGQgdGFibGVzIHRvIGEgcHVibGljYXRpb24sIHRoZSB1 c2VyIG11c3QgaGF2ZSBvd25lcnNoaXAgcmlnaHRzIG9uIHRoZQotICAgdGFibGUuIFRvIGFkZCBh bGwgdGFibGVzIGluIHNjaGVtYSB0byBhIHB1YmxpY2F0aW9uLCB0aGUgdXNlciBtdXN0IGJlIGEK LSAgIHN1cGVydXNlci4gVG8gY3JlYXRlIGEgcHVibGljYXRpb24gdGhhdCBwdWJsaXNoZXMgYWxs IHRhYmxlcyBvciBhbGwgdGFibGVzIGluCi0gICBzY2hlbWEgYXV0b21hdGljYWxseSwgdGhlIHVz ZXIgbXVzdCBiZSBhIHN1cGVydXNlci4KKyAgIFRvIGNyZWF0ZSBhIHB1YmxpY2F0aW9uIHVzaW5n IDxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPiBvcgorICAgPGxpdGVyYWw+Rk9SIFRB QkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+LCB0aGUgdXNlciBtdXN0IGJlIGEgc3VwZXJ1c2VyLiBU byBhZGQKKyAgIDxsaXRlcmFsPkFMTCBUQUJMRVM8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPlRBQkxF UyBJTiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGEKKyAgIHB1YmxpY2F0aW9uLCB0aGUgdXNlciBtdXN0 IGJlIGEgc3VwZXJ1c2VyLiBUbyBhZGQgdGFibGVzIHRvIGEgcHVibGljYXRpb24sCisgICB0aGUg dXNlciBtdXN0IGhhdmUgb3duZXJzaGlwIHJpZ2h0cyBvbiB0aGUgdGFibGUuCiAgIDwvcGFyYT4K IAogICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRp b24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAppbmRleCBh OWRiMzU2NDQ3NC4uZTBlOTQwZmY4YzMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0 ZXJfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0 aW9uLnNnbWwKQEAgLTIyLDYgKzIyLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJl ZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBBREQgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLl0K K0FMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9y ZXBsYWNlYWJsZT4gQUREIEFMTCBUQUJMRVMgWyBFWENFUFQgWyBUQUJMRSBdICggPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX2V4Y2VwdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxl PiBbLCAuLi4gXSApIF0KIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gU0VUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5wdWJsaWNhdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCiBBTFRFUiBQVUJM SUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ IERST1AgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwv cmVwbGFjZWFibGU+IFssIC4uLl0KIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gU0VUICggPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX3BhcmFtZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSAp CkBAIC0zMyw2ICszNCwxMSBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFU0VUCiAKICAgICBUQUJMRSBbIE9OTFkg XSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+ IFsgKiBdIFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3Jl cGxhY2VhYmxlPiBbLCAuLi4gXSApIF0gWyBXSEVSRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBdIFssIC4uLiBdCiAgICAgVEFCTEVT IElOIFNDSEVNQSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwv cmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9TQ0hFTUEgfSBbLCAuLi4gXQorCis8cGhyYXNlPndoZXJl IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9leGNlcHRpb25fb2JqZWN0PC9y ZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CisKKyAgICBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdCisKIDwvc3lub3Bz aXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApAQCAtODksOCArOTUsOSBAQCBBTFRFUiBQVUJMSUNB VElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJF U0VUCiAKICAgPHBhcmE+CiAgICBZb3UgbXVzdCBvd24gdGhlIHB1YmxpY2F0aW9uIHRvIHVzZSA8 Y29tbWFuZD5BTFRFUiBQVUJMSUNBVElPTjwvY29tbWFuZD4uCi0gICBBZGRpbmcgYSB0YWJsZSB0 byBhIHB1YmxpY2F0aW9uIGFkZGl0aW9uYWxseSByZXF1aXJlcyBvd25pbmcgdGhhdCB0YWJsZS4K LSAgIFRoZSA8bGl0ZXJhbD5BREQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sCisgICBBZGRp bmcgb3IgZXhjbHVkaW5nIGEgdGFibGUgZnJvbSBhIHB1YmxpY2F0aW9uIHJlcXVpcmVzIG93bmVy c2hpcCBvZiB0aGF0CisgICB0YWJsZS4gVGhlIDxsaXRlcmFsPkFERCBBTEwgVEFCTEVTPC9saXRl cmFsPiwKKyAgIDxsaXRlcmFsPkFERCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiwKICAgIDxs aXRlcmFsPlNFVCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiB0byBhIHB1YmxpY2F0aW9uIGFu ZAogICAgPGxpdGVyYWw+UkVTRVQ8L2xpdGVyYWw+IG9mIHB1YmxpY2F0aW9uIHJlcXVpcmVzIHRo ZSBpbnZva2luZyB1c2VyIHRvIGJlIGEKICAgIHN1cGVydXNlci4gVG8gYWx0ZXIgdGhlIG93bmVy LCB5b3UgbXVzdCBiZSBhYmxlIHRvCkBAIC0xMzEsNyArMTM4LDggQEAgQUxURVIgUFVCTElDQVRJ T04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRVNF VAogICAgICAgdGFibGUgbmFtZSwgb25seSB0aGF0IHRhYmxlIGlzIGFmZmVjdGVkLiAgSWYgPGxp dGVyYWw+T05MWTwvbGl0ZXJhbD4gaXMgbm90CiAgICAgICBzcGVjaWZpZWQsIHRoZSB0YWJsZSBh bmQgYWxsIGl0cyBkZXNjZW5kYW50IHRhYmxlcyAoaWYgYW55KSBhcmUKICAgICAgIGFmZmVjdGVk LiAgT3B0aW9uYWxseSwgPGxpdGVyYWw+KjwvbGl0ZXJhbD4gY2FuIGJlIHNwZWNpZmllZCBhZnRl ciB0aGUgdGFibGUKLSAgICAgIG5hbWUgdG8gZXhwbGljaXRseSBpbmRpY2F0ZSB0aGF0IGRlc2Nl bmRhbnQgdGFibGVzIGFyZSBpbmNsdWRlZC4KKyAgICAgIG5hbWUgdG8gZXhwbGljaXRseSBpbmRp Y2F0ZSB0aGF0IGRlc2NlbmRhbnQgdGFibGVzIGFyZSBhZmZlY3RlZC4gRm9yCisgICAgICBwYXJ0 aXRpb25lZCB0YWJsZXMsIDxsaXRlcmFsPk9OTFk8L2xpdGVyYWw+IGRvZXMgbm90IGhhdmUgYW55 IGVmZmVjdC4KICAgICAgPC9wYXJhPgogCiAgICAgIDxwYXJhPgpAQCAtMjQwLDYgKzI0OCwxNCBA QCBBTFRFUiBQVUJMSUNBVElPTiBzYWxlc19wdWJsaWNhdGlvbiBBREQgVEFCTEVTIElOIFNDSEVN QSBtYXJrZXRpbmcsIHNhbGVzOwogPC9wcm9ncmFtbGlzdGluZz4KICAgPC9wYXJhPgogCisgIDxw YXJhPgorICAgQWx0ZXIgcHVibGljYXRpb24gPHN0cnVjdG5hbWU+cHJvZHVjdGlvbl9wdWJsaWNh dGlvbjwvc3RydWN0bmFtZT4gdG8gcHVibGlzaAorICAgYWxsIHRhYmxlcyBleGNlcHQgPHN0cnVj dG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+IGFuZAorICAgPHN0cnVjdG5hbWU+ZGVwYXJ0bWVudHM8 L3N0cnVjdG5hbWU+OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgUFVCTElDQVRJT04gcHJvZHVj dGlvbl9wdWJsaWNhdGlvbiBBREQgQUxMIFRBQkxFUyBFWENFUFQgKHVzZXJzLCBkZXBhcnRtZW50 cyk7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKwogICA8cGFyYT4KICAgIEFkZCB0YWJsZXMg PHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+LAogICAgPHN0cnVjdG5hbWU+ZGVwYXJ0bWVu dHM8L3N0cnVjdG5hbWU+IGFuZCBzY2hlbWEKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNh dGlvbi5zZ21sCmluZGV4IDY2YTcwZTVjNWI1Li44YjYxNjY1MTI3MiAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCkBAIC0zMiw4ICszMiwxMiBAQCBDUkVBVEUgUFVC TElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxl PgogCiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hbGxfcHVi bGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNlPgogCi0gICAg QUxMIFRBQkxFUworICAgIEFMTCBUQUJMRVMgWyBFWENFUFQgWyBUQUJMRSBdICggPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX2V4Y2VwdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxl PiBbLCAuLi4gXSApIF0KICAgICBBTEwgU0VRVUVOQ0VTCisKKzxwaHJhc2U+d2hlcmUgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX2V4Y2VwdGlvbl9vYmplY3Q8L3JlcGxhY2Vh YmxlPiBpczo8L3BocmFzZT4KKworICAgIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0KIDwvc3lub3BzaXM+CiAgPC9y ZWZzeW5vcHNpc2Rpdj4KIApAQCAtMTYwLDcgKzE2NCw5IEBAIENSRUFURSBQVUJMSUNBVElPTiA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgPGxp c3RpdGVtPgogICAgICA8cGFyYT4KICAgICAgIE1hcmtzIHRoZSBwdWJsaWNhdGlvbiBhcyBvbmUg dGhhdCByZXBsaWNhdGVzIGNoYW5nZXMgZm9yIGFsbCB0YWJsZXMgaW4KLSAgICAgIHRoZSBkYXRh YmFzZSwgaW5jbHVkaW5nIHRhYmxlcyBjcmVhdGVkIGluIHRoZSBmdXR1cmUuCisgICAgICB0aGUg ZGF0YWJhc2UsIGluY2x1ZGluZyB0YWJsZXMgY3JlYXRlZCBpbiB0aGUgZnV0dXJlLiBJZgorICAg ICAgPGxpdGVyYWw+RVhDRVBUIFRBQkxFPC9saXRlcmFsPiBpcyBzcGVjaWZpZWQsIHRoZW4gZXhj bHVkZSByZXBsaWNhdGluZworICAgICAgdGhlIGNoYW5nZXMgZm9yIHRoZSBzcGVjaWZpZWQgdGFi bGVzLgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpA QCAtMTgwLDYgKzE4NiwzNSBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zh cmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9u LXBhcmFtcy1mb3ItZXhjZXB0LXRhYmxlIj4KKyAgICA8dGVybT48bGl0ZXJhbD5FWENFUFQgVEFC TEU8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBU aGlzIGNsYXVzZSBzcGVjaWZpZXMgYSBsaXN0IG9mIHRhYmxlcyB0byBiZSBleGNsdWRlZCBmcm9t IHRoZQorICAgICAgcHVibGljYXRpb24uIEl0IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCA8bGl0ZXJh bD5GT1IgQUxMIFRBQkxFUzwvbGl0ZXJhbD4uCisgICAgICBJZiA8bGl0ZXJhbD5PTkxZPC9saXRl cmFsPiBpcyBzcGVjaWZpZWQgYmVmb3JlIHRoZSB0YWJsZSBuYW1lLCBvbmx5CisgICAgICB0aGF0 IHRhYmxlIGlzIGV4Y2x1ZGVkIGZyb20gdGhlIHB1YmxpY2F0aW9uLiBJZiA8bGl0ZXJhbD5PTkxZ PC9saXRlcmFsPiBpcworICAgICAgbm90IHNwZWNpZmllZCwgdGhlIHRhYmxlIGFuZCBhbGwgaXRz IGRlc2NlbmRhbnQgdGFibGVzIChpZiBhbnkpIGFyZQorICAgICAgZXhjbHVkZWQuIE9wdGlvbmFs bHksIDxsaXRlcmFsPio8L2xpdGVyYWw+IGNhbiBiZSBzcGVjaWZpZWQgYWZ0ZXIgdGhlCisgICAg ICB0YWJsZSBuYW1lIHRvIGV4cGxpY2l0bHkgaW5kaWNhdGUgdGhhdCBkZXNjZW5kYW50IHRhYmxl cyBhcmUgZXhjbHVkZWQuCisgICAgIDwvcGFyYT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgcGFy dGl0aW9uZWQgdGFibGUgb3IgaXRzIHBhcnRpdGlvbnMgYXJlIGV4Y2x1ZGVkIGZyb20gdGhlIHB1 YmxpY2F0aW9uCisgICAgICBiYXNlZCBvbiB0aGUgcGFyYW1ldGVyIDxsaXRlcmFsPnB1Ymxpc2hf dmlhX3BhcnRpdGlvbl9yb290PC9saXRlcmFsPi4KKyAgICAgIFdoZW4gPGxpdGVyYWw+cHVibGlz aF92aWFfcGFydGl0aW9uX3Jvb3Q8L2xpdGVyYWw+IGlzIHNldCB0bworICAgICAgPGxpdGVyYWw+ dHJ1ZTwvbGl0ZXJhbD4sIHNwZWNpZnlpbmcgYSByb290IHBhcnRpdGlvbmVkIHRhYmxlIGluCisg ICAgICA8bGl0ZXJhbD5FWENFUFQgVEFCTEU8L2xpdGVyYWw+IGV4Y2x1ZGVzIGl0IGFuZCBhbGwg aXRzIHBhcnRpdGlvbnMgZnJvbQorICAgICAgcmVwbGljYXRpb24uIFNwZWNpZnlpbmcgYSBsZWFm IHBhcnRpdGlvbiBoYXMgbm8gZWZmZWN0LCBhcyBpdHMgY2hhbmdlcyBhcmUKKyAgICAgIHN0aWxs IHJlcGxpY2F0ZWQgdmlhIHRoZSByb290IHBhcnRpdGlvbmVkIHRhYmxlLiBXaGVuCisgICAgICA8 bGl0ZXJhbD5wdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdDwvbGl0ZXJhbD4gaXMgc2V0IHRvCisg ICAgICA8bGl0ZXJhbD5mYWxzZTwvbGl0ZXJhbD4sIHNwZWNpZnlpbmcgYSBwYXJ0aXRpb25lZCB0 YWJsZSBvciBub24tbGVhZgorICAgICAgcGFydGl0aW9uIGhhcyBubyBlZmZlY3QsIGFzIGNoYW5n ZXMgYXJlIHJlcGxpY2F0ZWQgdmlhIHRoZSBsZWFmCisgICAgICBwYXJ0aXRpb25zLiBTcGVjaWZ5 aW5nIGEgbGVhZiBwYXJ0aXRpb24gZXhjbHVkZXMgb25seSB0aGF0IHBhcnRpdGlvbiBmcm9tCisg ICAgICByZXBsaWNhdGlvbi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zh cmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9u LXBhcmFtcy13aXRoIj4KICAgICA8dGVybT48bGl0ZXJhbD5XSVRIICggPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX3BhcmFtZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4g XSApPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC00NjMsNiArNDk4LDE0IEBA IENSRUFURSBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEZPUiBUQUJMRSB1c2Vy cywgZGVwYXJ0bWVudHMsIFRBQkxFUyBJCiBDUkVBVEUgUFVCTElDQVRJT04gc2FsZXNfcHVibGlj YXRpb24gRk9SIFRBQkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsKIDwvcHJvZ3JhbWxp c3Rpbmc+PC9wYXJhPgogCisgIDxwYXJhPgorICAgQ3JlYXRlIGEgcHVibGljYXRpb24gdGhhdCBw dWJsaXNoZXMgYWxsIGNoYW5nZXMgaW4gYWxsIHRoZSB0YWJsZXMgZXhjZXB0CisgICA8c3RydWN0 bmFtZT51c2Vyczwvc3RydWN0bmFtZT4gYW5kIDxzdHJ1Y3RuYW1lPmRlcGFydG1lbnRzPC9zdHJ1 Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBQVUJMSUNBVElPTiBteXB1YmxpY2F0 aW9uIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCAodXNlcnMsIGRlcGFydG1lbnRzKTsKKzwvcHJvZ3Jh bWxpc3Rpbmc+CisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIENyZWF0ZSBhIHB1YmxpY2F0aW9u IHRoYXQgcHVibGlzaGVzIGFsbCBjaGFuZ2VzIGZvciB0YWJsZSA8c3RydWN0bmFtZT51c2Vyczwv c3RydWN0bmFtZT4sCiAgICBidXQgcmVwbGljYXRlcyBvbmx5IGNvbHVtbnMgPHN0cnVjdG5hbWU+ dXNlcl9pZDwvc3RydWN0bmFtZT4gYW5kCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3Bz cWwtcmVmLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKaW5kZXggZjU2Yzcw MjYzZTAuLmYxYjNjZTM4MGI2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVm LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0yMTAzLDggKzIx MDMsOSBAQCBTRUxFQ1QgJDEgXHBhcnNlIHN0bXQxCiAgICAgICAgIGxpc3RlZC4KICAgICAgICAg SWYgPGxpdGVyYWw+eDwvbGl0ZXJhbD4gaXMgYXBwZW5kZWQgdG8gdGhlIGNvbW1hbmQgbmFtZSwg dGhlIHJlc3VsdHMKICAgICAgICAgYXJlIGRpc3BsYXllZCBpbiBleHBhbmRlZCBtb2RlLgotICAg ICAgICBJZiA8bGl0ZXJhbD4rPC9saXRlcmFsPiBpcyBhcHBlbmRlZCB0byB0aGUgY29tbWFuZCBu YW1lLCB0aGUgdGFibGVzIGFuZAotICAgICAgICBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCBlYWNo IHB1YmxpY2F0aW9uIGFyZSBzaG93biBhcyB3ZWxsLgorICAgICAgICBJZiA8bGl0ZXJhbD4rPC9s aXRlcmFsPiBpcyBhcHBlbmRlZCB0byB0aGUgY29tbWFuZCBuYW1lLCB0aGUgdGFibGVzLAorICAg ICAgICBleGNsdWRlZCB0YWJsZXMsIGFuZCBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHB1 YmxpY2F0aW9uIGFyZSBzaG93bgorICAgICAgICBhcyB3ZWxsLgogICAgICAgICA8L3BhcmE+CiAg ICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfcHVibGljYXRpb24uYwppbmRleCBhYzJmNGVlMzU2MS4uYmVjM2EzNGU0OGYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYworKysgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKQEAgLTM1NCw3ICszNTQsOCBAQCBHZXRQdWJQYXJ0 aXRpb25PcHRpb25SZWxhdGlvbnMoTGlzdCAqcmVzdWx0LCBQdWJsaWNhdGlvblBhcnRPcHQgcHVi X3BhcnRvcHQsCiAgKiBhbmNlc3RvciBpcyBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LgogICovCiBP aWQKLUdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5j ZXN0b3JzLCBpbnQgKmFuY2VzdG9yX2xldmVsKQorR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNh dGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsCisJCQkJCQkJCWludCAqYW5jZXN0b3Jf bGV2ZWwsIGJvb2wgcHViYWxsdGFibGVzKQogewogCUxpc3RDZWxsICAgKmxjOwogCU9pZAkJCXRv cG1vc3RfcmVsaWQgPSBJbnZhbGlkT2lkOwpAQCAtMzY2LDMyICszNjcsNDQgQEAgR2V0VG9wTW9z dEFuY2VzdG9ySW5QdWJsaWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsIGludCAq YW5jZXN0b3JfbGV2ZWwKIAlmb3JlYWNoKGxjLCBhbmNlc3RvcnMpCiAJewogCQlPaWQJCQlhbmNl c3RvciA9IGxmaXJzdF9vaWQobGMpOwotCQlMaXN0CSAgICphcHViaWRzID0gR2V0UmVsYXRpb25Q dWJsaWNhdGlvbnMoYW5jZXN0b3IpOwotCQlMaXN0CSAgICphc2NoZW1hUHViaWRzID0gTklMOwor CQlMaXN0CSAgICphcHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoYW5jZXN0b3IsIGZh bHNlKTsKKwkJTGlzdAkgICAqYXNjaGVtYXB1YmlkcyA9IE5JTDsKKwkJTGlzdAkgICAqYWV4Y2Vw dHB1YmlkcyA9IE5JTDsKKwkJYm9vbAkJc2V0X3RvcCA9IGZhbHNlOwogCiAJCWxldmVsKys7CiAK LQkJaWYgKGxpc3RfbWVtYmVyX29pZChhcHViaWRzLCBwdWJvaWQpKQorCQkvKiBjaGVjayBpZiBt ZW1iZXIgb2YgdGFibGUgcHVibGljYXRpb25zICovCisJCXNldF90b3AgPSBsaXN0X21lbWJlcl9v aWQoYXB1YmlkcywgcHVib2lkKTsKKwkJaWYgKCFzZXRfdG9wKQogCQl7Ci0JCQl0b3Btb3N0X3Jl bGlkID0gYW5jZXN0b3I7CisJCQlhc2NoZW1hcHViaWRzID0gR2V0U2NoZW1hUHVibGljYXRpb25z KGdldF9yZWxfbmFtZXNwYWNlKGFuY2VzdG9yKSk7CiAKLQkJCWlmIChhbmNlc3Rvcl9sZXZlbCkK LQkJCQkqYW5jZXN0b3JfbGV2ZWwgPSBsZXZlbDsKKwkJCS8qIGNoZWNrIGlmIG1lbWJlciBvZiBz Y2hlbWEgcHVibGljYXRpb25zICovCisJCQlzZXRfdG9wID0gbGlzdF9tZW1iZXJfb2lkKGFzY2hl bWFwdWJpZHMsIHB1Ym9pZCk7CisKKwkJCS8qCisJCQkgKiBJZiB0aGUgcHVibGljYXRpb24gaXMg YWxsIHRhYmxlcyBwdWJsaWNhdGlvbiBhbmQgdGhlIHRhYmxlIGlzCisJCQkgKiBub3QgcGFydCBv ZiBleGNlcHRpb24gdGFibGVzLgorCQkJICovCisJCQlpZiAoIXNldF90b3AgJiYgcHViYWxsdGFi bGVzKQorCQkJeworCQkJCWFleGNlcHRwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhh bmNlc3RvciwgdHJ1ZSk7CisJCQkJc2V0X3RvcCA9ICFsaXN0X21lbWJlcl9vaWQoYWV4Y2VwdHB1 YmlkcywgcHVib2lkKTsKKwkJCX0KIAkJfQotCQllbHNlCisKKwkJaWYgKHNldF90b3ApCiAJCXsK LQkJCWFzY2hlbWFQdWJpZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoZ2V0X3JlbF9uYW1lc3Bh Y2UoYW5jZXN0b3IpKTsKLQkJCWlmIChsaXN0X21lbWJlcl9vaWQoYXNjaGVtYVB1YmlkcywgcHVi b2lkKSkKLQkJCXsKLQkJCQl0b3Btb3N0X3JlbGlkID0gYW5jZXN0b3I7CisJCQl0b3Btb3N0X3Jl bGlkID0gYW5jZXN0b3I7CiAKLQkJCQlpZiAoYW5jZXN0b3JfbGV2ZWwpCi0JCQkJCSphbmNlc3Rv cl9sZXZlbCA9IGxldmVsOwotCQkJfQorCQkJaWYgKGFuY2VzdG9yX2xldmVsKQorCQkJCSphbmNl c3Rvcl9sZXZlbCA9IGxldmVsOwogCQl9CiAKIAkJbGlzdF9mcmVlKGFwdWJpZHMpOwotCQlsaXN0 X2ZyZWUoYXNjaGVtYVB1Ymlkcyk7CisJCWxpc3RfZnJlZShhc2NoZW1hcHViaWRzKTsKKwkJbGlz dF9mcmVlKGFleGNlcHRwdWJpZHMpOwogCX0KIAogCXJldHVybiB0b3Btb3N0X3JlbGlkOwpAQCAt NDY2LDYgKzQ3OSwxNyBAQCBwdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oT2lkIHB1YmlkLCBQdWJs aWNhdGlvblJlbEluZm8gKnByaSwKIAkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdl dHJlbCksIHB1Yi0+bmFtZSkpKTsKIAl9CiAKKwkvKgorCSAqIENoZWNrIGZvciBwYXJ0aXRpb25z IG9mIHBhcnRpdGlvbmVkIHRhYmxlIHdoaWNoIGFyZSBzcGVjaWZpZWQgd2l0aAorCSAqIEVYQ0VQ VCBjbGF1c2UgYW5kIHBhcnRpdGlvbmVkIHRhYmxlIGlzIHB1Ymxpc2hlZCB3aXRoCisJICogcHVi bGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSB0cnVlLgorCSAqLworCWlmIChwdWItPmFsbHRhYmxl cyAmJiBwcmktPmV4Y2VwdCAmJiB0YXJnZXRyZWwtPnJkX3JlbC0+cmVsaXNwYXJ0aXRpb24gJiYK KwkJcHViLT5wdWJ2aWFyb290KQorCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJKGVycm1zZygicGFy dGl0aW9uIFwiJXNcIiB3aWxsIGJlIHJlcGxpY2F0ZWQgYXMgcHVibGlzaF92aWFfcGFydGl0aW9u X3Jvb3QgaXMgXCIlc1wiIiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJl bCksICJ0cnVlIikpKTsKKwogCWNoZWNrX3B1YmxpY2F0aW9uX2FkZF9yZWxhdGlvbih0YXJnZXRy ZWwpOwogCiAJLyogVmFsaWRhdGUgYW5kIHRyYW5zbGF0ZSBjb2x1bW4gbmFtZXMgaW50byBhIEJp dG1hcHNldCBvZiBhdHRudW1zLiAqLwpAQCAtNDgyLDYgKzUwNiw4IEBAIHB1YmxpY2F0aW9uX2Fk ZF9yZWxhdGlvbihPaWQgcHViaWQsIFB1YmxpY2F0aW9uUmVsSW5mbyAqcHJpLAogCQlPYmplY3RJ ZEdldERhdHVtKHB1YmlkKTsKIAl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfcHJyZWxp ZCAtIDFdID0KIAkJT2JqZWN0SWRHZXREYXR1bShyZWxpZCk7CisJdmFsdWVzW0FudW1fcGdfcHVi bGljYXRpb25fcmVsX3ByZXhjZXB0IC0gMV0gPQorCQlCb29sR2V0RGF0dW0ocHJpLT5leGNlcHQp OwogCiAJLyogQWRkIHF1YWxpZmljYXRpb25zLCBpZiBhdmFpbGFibGUgKi8KIAlpZiAocHJpLT53 aGVyZUNsYXVzZSAhPSBOVUxMKQpAQCAtNzQ5LDkgKzc3NSw5IEBAIHB1YmxpY2F0aW9uX2FkZF9z Y2hlbWEoT2lkIHB1YmlkLCBPaWQgc2NoZW1haWQsIGJvb2wgaWZfbm90X2V4aXN0cykKIAlyZXR1 cm4gbXlzZWxmOwogfQogCi0vKiBHZXRzIGxpc3Qgb2YgcHVibGljYXRpb24gb2lkcyBmb3IgYSBy ZWxhdGlvbiAqLworLyogR2V0cyBsaXN0IG9mIHB1YmxpY2F0aW9uIG9pZHMgZm9yIGEgcmVsYXRp b24gdGhhdCBtYXRjaGVzIHRoZSBleGNlcHRfZmxhZyAqLwogTGlzdCAqCi1HZXRSZWxhdGlvblB1 YmxpY2F0aW9ucyhPaWQgcmVsaWQpCitHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhPaWQgcmVsaWQs IGJvb2wgZXhjZXB0X2ZsYWcpCiB7CiAJTGlzdAkgICAqcmVzdWx0ID0gTklMOwogCUNhdENMaXN0 ICAgKnB1YnJlbGxpc3Q7CkBAIC03NjUsNyArNzkxLDggQEAgR2V0UmVsYXRpb25QdWJsaWNhdGlv bnMoT2lkIHJlbGlkKQogCQlIZWFwVHVwbGUJdHVwID0gJnB1YnJlbGxpc3QtPm1lbWJlcnNbaV0t PnR1cGxlOwogCQlPaWQJCQlwdWJpZCA9ICgoRm9ybV9wZ19wdWJsaWNhdGlvbl9yZWwpIEdFVFNU UlVDVCh0dXApKS0+cHJwdWJpZDsKIAotCQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQsIHB1 YmlkKTsKKwkJaWYgKGV4Y2VwdF9mbGFnID09ICgoRm9ybV9wZ19wdWJsaWNhdGlvbl9yZWwpIEdF VFNUUlVDVCh0dXApKS0+cHJleGNlcHQpCisJCQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQs IHB1YmlkKTsKIAl9CiAKIAlSZWxlYXNlU3lzQ2FjaGVMaXN0KHB1YnJlbGxpc3QpOwpAQCAtNzc0 LDEzICs4MDEsMTQgQEAgR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkKQogfQogCiAv KgotICogR2V0cyBsaXN0IG9mIHJlbGF0aW9uIG9pZHMgZm9yIGEgcHVibGljYXRpb24uCisgKiBH ZXRzIGxpc3Qgb2YgcmVsYXRpb24gb2lkcyBmb3IgYSBwdWJsaWNhdGlvbiB0aGF0IG1hdGNoZXMg dGhlIGV4Y2VwdF9mbGFnLgogICoKICAqIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBGT1IgVEFC TEUgcHVibGljYXRpb25zLCB0aGUgRk9SIEFMTCBUQUJMRVMvU0VRVUVOQ0VTCiAgKiBzaG91bGQg dXNlIEdldEFsbFB1YmxpY2F0aW9uUmVsYXRpb25zKCkuCiAgKi8KIExpc3QgKgotR2V0UHVibGlj YXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQp CitHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBw dWJfcGFydG9wdCwKKwkJCQkJCWJvb2wgZXhjZXB0X2ZsYWcpCiB7CiAJTGlzdAkgICAqcmVzdWx0 OwogCVJlbGF0aW9uCXB1YnJlbHNyZWw7CkBAIC04MDUsOCArODMzLDExIEBAIEdldFB1YmxpY2F0 aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KQog CQlGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCBwdWJyZWw7CiAKIAkJcHVicmVsID0gKEZvcm1fcGdf cHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKTsKLQkJcmVzdWx0ID0gR2V0UHViUGFydGl0 aW9uT3B0aW9uUmVsYXRpb25zKHJlc3VsdCwgcHViX3BhcnRvcHQsCi0JCQkJCQkJCQkJCQlwdWJy ZWwtPnBycmVsaWQpOworCisJCWlmIChleGNlcHRfZmxhZyA9PSBwdWJyZWwtPnByZXhjZXB0KQor CQkJcmVzdWx0ID0gR2V0UHViUGFydGl0aW9uT3B0aW9uUmVsYXRpb25zKHJlc3VsdCwgcHViX3Bh cnRvcHQsCisJCQkJCQkJCQkJCQkJcHVicmVsLT5wcnJlbGlkKTsKKwogCX0KIAogCXN5c3RhYmxl X2VuZHNjYW4oc2Nhbik7CkBAIC04NjYsMTMgKzg5NywxOSBAQCBHZXRBbGxUYWJsZXNQdWJsaWNh dGlvbnModm9pZCkKICAqIHB1YmxpY2F0aW9uLgogICovCiBMaXN0ICoKLUdldEFsbFB1YmxpY2F0 aW9uUmVsYXRpb25zKGNoYXIgcmVsa2luZCwgYm9vbCBwdWJ2aWFyb290KQorR2V0QWxsUHVibGlj YXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBjaGFyIHJlbGtpbmQsIGJvb2wgcHVidmlhcm9vdCkK IHsKIAlSZWxhdGlvbgljbGFzc1JlbDsKIAlTY2FuS2V5RGF0YSBrZXlbMV07CiAJVGFibGVTY2Fu RGVzYyBzY2FuOwogCUhlYXBUdXBsZQl0dXBsZTsKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CisJ TGlzdAkgICAqZXhjZXB0bGlzdDsKKworCWV4Y2VwdGxpc3QgPSBHZXRQdWJsaWNhdGlvblJlbGF0 aW9ucyhwdWJpZCwgcHVidmlhcm9vdCA/CisJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfQUxM IDoKKwkJCQkJCQkJCQkgUFVCTElDQVRJT05fUEFSVF9ST09ULAorCQkJCQkJCQkJCSB0cnVlKTsK IAogCUFzc2VydCghKHJlbGtpbmQgPT0gUkVMS0lORF9TRVFVRU5DRSAmJiBwdWJ2aWFyb290KSk7 CiAKQEAgLTg5MSw3ICs5MjgsOCBAQCBHZXRBbGxQdWJsaWNhdGlvblJlbGF0aW9ucyhjaGFyIHJl bGtpbmQsIGJvb2wgcHVidmlhcm9vdCkKIAkJT2lkCQkJcmVsaWQgPSByZWxGb3JtLT5vaWQ7CiAK IAkJaWYgKGlzX3B1Ymxpc2hhYmxlX2NsYXNzKHJlbGlkLCByZWxGb3JtKSAmJgotCQkJIShyZWxG b3JtLT5yZWxpc3BhcnRpdGlvbiAmJiBwdWJ2aWFyb290KSkKKwkJCSEocmVsRm9ybS0+cmVsaXNw YXJ0aXRpb24gJiYgcHVidmlhcm9vdCkgJiYKKwkJCSFsaXN0X21lbWJlcl9vaWQoZXhjZXB0bGlz dCwgcmVsaWQpKQogCQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCByZWxpZCk7CiAJfQog CkBAIC05MTIsNyArOTUwLDggQEAgR2V0QWxsUHVibGljYXRpb25SZWxhdGlvbnMoY2hhciByZWxr aW5kLCBib29sIHB1YnZpYXJvb3QpCiAJCQlPaWQJCQlyZWxpZCA9IHJlbEZvcm0tPm9pZDsKIAog CQkJaWYgKGlzX3B1Ymxpc2hhYmxlX2NsYXNzKHJlbGlkLCByZWxGb3JtKSAmJgotCQkJCSFyZWxG b3JtLT5yZWxpc3BhcnRpdGlvbikKKwkJCQkhcmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24gJiYKKwkJ CQkhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdGxpc3QsIHJlbGlkKSkKIAkJCQlyZXN1bHQgPSBsYXBw ZW5kX29pZChyZXN1bHQsIHJlbGlkKTsKIAkJfQogCkBAIC0xMTY4LDcgKzEyMDcsOCBAQCBwZ19n ZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkgKiB0aG9zZS4gT3Ro ZXJ3aXNlLCBnZXQgdGhlIHBhcnRpdGlvbmVkIHRhYmxlIGl0c2VsZi4KIAkJCSAqLwogCQkJaWYg KHB1Yl9lbGVtLT5hbGx0YWJsZXMpCi0JCQkJcHViX2VsZW1fdGFibGVzID0gR2V0QWxsUHVibGlj YXRpb25SZWxhdGlvbnMoUkVMS0lORF9SRUxBVElPTiwKKwkJCQlwdWJfZWxlbV90YWJsZXMgPSBH ZXRBbGxQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJfZWxlbS0+b2lkLAorCQkJCQkJCQkJCQkJCQkJ IFJFTEtJTkRfUkVMQVRJT04sCiAJCQkJCQkJCQkJCQkJCQkgcHViX2VsZW0tPnB1YnZpYXJvb3Qp OwogCQkJZWxzZQogCQkJewpAQCAtMTE3OCw3ICsxMjE4LDggQEAgcGdfZ2V0X3B1YmxpY2F0aW9u X3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCQkJCXJlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVs YXRpb25zKHB1Yl9lbGVtLT5vaWQsCiAJCQkJCQkJCQkJCQkgcHViX2VsZW0tPnB1YnZpYXJvb3Qg PwogCQkJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCA6Ci0JCQkJCQkJCQkJCQkgUFVC TElDQVRJT05fUEFSVF9MRUFGKTsKKwkJCQkJCQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX0xFQUYs CisJCQkJCQkJCQkJCQkgZmFsc2UpOwogCQkJCXNjaGVtYXJlbGlkcyA9IEdldEFsbFNjaGVtYVB1 YmxpY2F0aW9uUmVsYXRpb25zKHB1Yl9lbGVtLT5vaWQsCiAJCQkJCQkJCQkJCQkJCQkJcHViX2Vs ZW0tPnB1YnZpYXJvb3QgPwogCQkJCQkJCQkJCQkJCQkJCVBVQkxJQ0FUSU9OX1BBUlRfUk9PVCA6 CkBAIC0xMzY3LDcgKzE0MDgsNyBAQCBwZ19nZXRfcHVibGljYXRpb25fc2VxdWVuY2VzKFBHX0ZV TkNUSU9OX0FSR1MpCiAJCXB1YmxpY2F0aW9uID0gR2V0UHVibGljYXRpb25CeU5hbWUocHVibmFt ZSwgZmFsc2UpOwogCiAJCWlmIChwdWJsaWNhdGlvbi0+YWxsc2VxdWVuY2VzKQotCQkJc2VxdWVu Y2VzID0gR2V0QWxsUHVibGljYXRpb25SZWxhdGlvbnMoUkVMS0lORF9TRVFVRU5DRSwgZmFsc2Up OworCQkJc2VxdWVuY2VzID0gR2V0QWxsUHVibGljYXRpb25SZWxhdGlvbnMocHVibGljYXRpb24t Pm9pZCwgUkVMS0lORF9TRVFVRU5DRSwgZmFsc2UpOwogCiAJCWZ1bmNjdHgtPnVzZXJfZmN0eCA9 ICh2b2lkICopIHNlcXVlbmNlczsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv cHVibGljYXRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMu YwppbmRleCA1MDIzOTUxM2UzZi4uNmZiNjllM2YzYmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1 YmxpY2F0aW9uY21kcy5jCkBAIC0xNzAsNiArMTcwLDM5IEBAIHBhcnNlX3B1YmxpY2F0aW9uX29w dGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCX0KIH0KIAorLyoKKyAqIENvbnZlcnQgdGhlIFB1 YmxpY2F0aW9uT2JqU3BlYyBsaXN0IHdoaWNoIGlzIHBhcnQgb2YKKyAqIFB1YmxpY2F0aW9uQWxs T2JqU3BlY1R5cGUgbGlzdCBpbnRvIFB1YmxpY2F0aW9uVGFibGUgbGlzdC4KKyAqLworc3RhdGlj IHZvaWQKK09iamVjdHNJbkFsbFB1YmxpY2F0aW9uVG9PaWRzKExpc3QgKnB1YmFsbG9ianNwZWNf bGlzdCwKKwkJCQkJCQkgIFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqKnJlbHMpCit7CisJaWYg KCFwdWJhbGxvYmpzcGVjX2xpc3QpCisJCXJldHVybjsKKworCWZvcmVhY2hfcHRyKFB1YmxpY2F0 aW9uQWxsT2JqU3BlYywgcHViYWxsb2JqLCBwdWJhbGxvYmpzcGVjX2xpc3QpCisJeworCQlzd2l0 Y2ggKHB1YmFsbG9iai0+cHVib2JqdHlwZSkKKwkJeworCQkJY2FzZSBQVUJMSUNBVElPTl9BTExf U0VRVUVOQ0VTOgorCQkJCWJyZWFrOworCQkJY2FzZSBQVUJMSUNBVElPTl9BTExfVEFCTEVTOgor CQkJCWZvcmVhY2hfcHRyKFB1YmxpY2F0aW9uT2JqU3BlYywgcHVib2JqLCBwdWJhbGxvYmotPmV4 Y2VwdF9vYmplY3RzKQorCQkJCXsKKwkJCQkJcHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gdHJ1 ZTsKKwkJCQkJKnJlbHMgPSBsYXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1YnRhYmxlKTsKKwkJCQl9 CisJCQkJYnJlYWs7CisJCQlkZWZhdWx0OgorCQkJCS8qIHNob3VsZG4ndCBoYXBwZW4gKi8KKwkJ CQllbG9nKEVSUk9SLCAiaW52YWxpZCBwdWJsaWNhdGlvbiBvYmplY3QgdHlwZSAlZCIsCisJCQkJ CSBwdWJhbGxvYmotPnB1Ym9ianR5cGUpOworCQkJCWJyZWFrOworCQl9CisJfQorfQorCiAvKgog ICogQ29udmVydCB0aGUgUHVibGljYXRpb25PYmpTcGVjVHlwZSBsaXN0IGludG8gc2NoZW1hIG9p ZCBsaXN0IGFuZAogICogUHVibGljYXRpb25UYWJsZSBsaXN0LgpAQCAtMTk0LDYgKzIyNywxMSBA QCBPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcyhMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNl U3RhdGUgKnBzdGF0ZSwKIAkJc3dpdGNoIChwdWJvYmotPnB1Ym9ianR5cGUpCiAJCXsKIAkJCWNh c2UgUFVCTElDQVRJT05PQkpfVEFCTEU6CisJCQkJcHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0g ZmFsc2U7CisJCQkJKnJlbHMgPSBsYXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1YnRhYmxlKTsKKwkJ CQlicmVhazsKKwkJCWNhc2UgUFVCTElDQVRJT05PQkpfRVhDRVBUX1RBQkxFOgorCQkJCXB1Ym9i ai0+cHVidGFibGUtPmV4Y2VwdCA9IHRydWU7CiAJCQkJKnJlbHMgPSBsYXBwZW5kKCpyZWxzLCBw dWJvYmotPnB1YnRhYmxlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpfVEFC TEVTX0lOX1NDSEVNQToKQEAgLTI2OCw3ICszMDYsNyBAQCBjb250YWluX2ludmFsaWRfcmZjb2x1 bW5fd2Fsa2VyKE5vZGUgKm5vZGUsIHJmX2NvbnRleHQgKmNvbnRleHQpCiAgKi8KIGJvb2wKIHB1 Yl9yZl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9u LCBMaXN0ICphbmNlc3RvcnMsCi0JCQkJCQkJICAgYm9vbCBwdWJ2aWFyb290KQorCQkJCQkJCSAg IGJvb2wgcHVidmlhcm9vdCwgYm9vbCBwdWJhbGx0YWJsZXMpCiB7CiAJSGVhcFR1cGxlCXJmdHVw bGU7CiAJT2lkCQkJcmVsaWQgPSBSZWxhdGlvbkdldFJlbGlkKHJlbGF0aW9uKTsKQEAgLTI5NSw3 ICszMzMsOCBAQCBwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxh dGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogCWlmIChwdWJ2aWFyb290ICYmIHJlbGF0 aW9uLT5yZF9yZWwtPnJlbGlzcGFydGl0aW9uKQogCXsKIAkJcHVibGlzaF9hc19yZWxpZAotCQkJ PSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwp OworCQkJPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMs IE5VTEwsCisJCQkJCQkJCQkJCSAgcHViYWxsdGFibGVzKTsKIAogCQlpZiAoIU9pZElzVmFsaWQo cHVibGlzaF9hc19yZWxpZCkpCiAJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7CkBAIC0zNTUs NyArMzk0LDcgQEAgcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVs YXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywKIGJvb2wKIHB1Yl9jb250YWluc19pbnZh bGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMs CiAJCQkJCQkJYm9vbCBwdWJ2aWFyb290LCBjaGFyIHB1YmdlbmNvbHNfdHlwZSwKLQkJCQkJCQli b29sICppbnZhbGlkX2NvbHVtbl9saXN0LAorCQkJCQkJCWJvb2wgcHViYWxsdGFibGVzLCBib29s ICppbnZhbGlkX2NvbHVtbl9saXN0LAogCQkJCQkJCWJvb2wgKmludmFsaWRfZ2VuX2NvbCkKIHsK IAlPaWQJCQlyZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQocmVsYXRpb24pOwpAQCAtMzc5LDcgKzQx OCw4IEBAIHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJl bGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAJICovCiAJaWYgKHB1YnZpYXJvb3QgJiYgcmVsYXRp b24tPnJkX3JlbC0+cmVsaXNwYXJ0aXRpb24pCiAJewotCQlwdWJsaXNoX2FzX3JlbGlkID0gR2V0 VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMKTsKKwkJ cHVibGlzaF9hc19yZWxpZCA9IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQs IGFuY2VzdG9ycywKKwkJCQkJCQkJCQkJCQkJICAgTlVMTCwgcHViYWxsdGFibGVzKTsKIAogCQlp ZiAoIU9pZElzVmFsaWQocHVibGlzaF9hc19yZWxpZCkpCiAJCQlwdWJsaXNoX2FzX3JlbGlkID0g cmVsaWQ7CkBAIC01MTUsNyArNTU1LDcgQEAgSW52YWxpZGF0ZVB1YlJlbFN5bmNDYWNoZShPaWQg cHViaWQsIGJvb2wgcHViYWxsdGFibGVzKQogCQkgKiBpdHMgbGVhdmVzLgogCQkgKi8KIAkJcmVs aWRzID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsCi0JCQkJCQkJCQkJIFBVQkxJQ0FU SU9OX1BBUlRfQUxMKTsKKwkJCQkJCQkJCQkgUFVCTElDQVRJT05fUEFSVF9BTEwsIGZhbHNlKTsK IAkJc2NoZW1hcmVsaWRzID0gR2V0QWxsU2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMocHViaWQs CiAJCQkJCQkJCQkJCQkJCVBVQkxJQ0FUSU9OX1BBUlRfQUxMKTsKIApAQCAtOTIzLDU2ICs5NjMs NTQgQEAgQ3JlYXRlUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVQdWJsaWNh dGlvblN0bXQgKnN0bXQpCiAJLyogTWFrZSB0aGUgY2hhbmdlcyB2aXNpYmxlLiAqLwogCUNvbW1h bmRDb3VudGVySW5jcmVtZW50KCk7CiAKLQkvKiBBc3NvY2lhdGUgb2JqZWN0cyB3aXRoIHRoZSBw dWJsaWNhdGlvbi4gKi8KIAlpZiAoc3RtdC0+Zm9yX2FsbF90YWJsZXMpCi0JewotCQkvKgotCQkg KiBJbnZhbGlkYXRlIHJlbGNhY2hlIHNvIHRoYXQgcHVibGljYXRpb24gaW5mbyBpcyByZWJ1aWx0 LiBTZXF1ZW5jZXMKLQkJICogcHVibGljYXRpb24gZG9lc24ndCByZXF1aXJlIGludmFsaWRhdGlv biwgYXMgcmVwbGljYSBpZGVudGl0eQotCQkgKiBjaGVja3MgZG9uJ3QgYXBwbHkgdG8gdGhlbS4K LQkJICovCi0JCUNhY2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxsKCk7Ci0JfQorCQlPYmplY3RzSW5B bGxQdWJsaWNhdGlvblRvT2lkcyhzdG10LT5wdWJvYmplY3RzLCBwc3RhdGUsICZyZWxhdGlvbnMp OworCiAJZWxzZSBpZiAoIXN0bXQtPmZvcl9hbGxfc2VxdWVuY2VzKQotCXsKIAkJT2JqZWN0c0lu UHVibGljYXRpb25Ub09pZHMoc3RtdC0+cHVib2JqZWN0cywgcHN0YXRlLCAmcmVsYXRpb25zLAog CQkJCQkJCQkgICAmc2NoZW1haWRsaXN0KTsKIAotCQkvKiBGT1IgVEFCTEVTIElOIFNDSEVNQSBy ZXF1aXJlcyBzdXBlcnVzZXIgKi8KLQkJaWYgKHNjaGVtYWlkbGlzdCAhPSBOSUwgJiYgIXN1cGVy dXNlcigpKQotCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJZXJyY29kZShFUlJDT0RFX0lOU1VGRklD SUVOVF9QUklWSUxFR0UpLAotCQkJCQllcnJtc2coIm11c3QgYmUgc3VwZXJ1c2VyIHRvIGNyZWF0 ZSBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWNhdGlvbiIpKTsKKwkvKiBGT1IgVEFCTEVTIElO IFNDSEVNQSByZXF1aXJlcyBzdXBlcnVzZXIgKi8KKwlpZiAoc2NoZW1haWRsaXN0ICE9IE5JTCAm JiAhc3VwZXJ1c2VyKCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX0lO U1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCWVycm1zZygibXVzdCBiZSBzdXBlcnVzZXIgdG8g Y3JlYXRlIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpY2F0aW9uIikpOwogCi0JCWlmIChyZWxh dGlvbnMgIT0gTklMKQotCQl7Ci0JCQlMaXN0CSAgICpyZWxzOworCWlmIChyZWxhdGlvbnMgIT0g TklMKQorCXsKKwkJTGlzdAkgICAqcmVsczsKIAotCQkJcmVscyA9IE9wZW5UYWJsZUxpc3QocmVs YXRpb25zKTsKLQkJCVRyYW5zZm9ybVB1YldoZXJlQ2xhdXNlcyhyZWxzLCBwc3RhdGUtPnBfc291 cmNldGV4dCwKLQkJCQkJCQkJCSBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CisJCXJlbHMg PSBPcGVuVGFibGVMaXN0KHJlbGF0aW9ucyk7CisJCVRyYW5zZm9ybVB1YldoZXJlQ2xhdXNlcyhy ZWxzLCBwc3RhdGUtPnBfc291cmNldGV4dCwKKwkJCQkJCQkJIHB1Ymxpc2hfdmlhX3BhcnRpdGlv bl9yb290KTsKIAotCQkJQ2hlY2tQdWJSZWxhdGlvbkNvbHVtbkxpc3Qoc3RtdC0+cHVibmFtZSwg cmVscywKLQkJCQkJCQkJCSAgIHNjaGVtYWlkbGlzdCAhPSBOSUwsCi0JCQkJCQkJCQkgICBwdWJs aXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CisJCUNoZWNrUHViUmVsYXRpb25Db2x1bW5MaXN0KHN0 bXQtPnB1Ym5hbWUsIHJlbHMsCisJCQkJCQkJCSAgIHNjaGVtYWlkbGlzdCAhPSBOSUwsCisJCQkJ CQkJCSAgIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290KTsKIAotCQkJUHVibGljYXRpb25BZGRU YWJsZXMocHVib2lkLCByZWxzLCB0cnVlLCBOVUxMKTsKLQkJCUNsb3NlVGFibGVMaXN0KHJlbHMp OwotCQl9CisJCVB1YmxpY2F0aW9uQWRkVGFibGVzKHB1Ym9pZCwgcmVscywgdHJ1ZSwgTlVMTCk7 CisJCUNsb3NlVGFibGVMaXN0KHJlbHMpOworCX0KIAotCQlpZiAoc2NoZW1haWRsaXN0ICE9IE5J TCkKLQkJewotCQkJLyoKLQkJCSAqIFNjaGVtYSBsb2NrIGlzIGhlbGQgdW50aWwgdGhlIHB1Ymxp Y2F0aW9uIGlzIGNyZWF0ZWQgdG8gcHJldmVudAotCQkJICogY29uY3VycmVudCBzY2hlbWEgZGVs ZXRpb24uCi0JCQkgKi8KLQkJCUxvY2tTY2hlbWFMaXN0KHNjaGVtYWlkbGlzdCk7Ci0JCQlQdWJs aWNhdGlvbkFkZFNjaGVtYXMocHVib2lkLCBzY2hlbWFpZGxpc3QsIHRydWUsIE5VTEwpOwotCQl9 CisJaWYgKHNjaGVtYWlkbGlzdCAhPSBOSUwpCisJeworCQkvKgorCQkgKiBTY2hlbWEgbG9jayBp cyBoZWxkIHVudGlsIHRoZSBwdWJsaWNhdGlvbiBpcyBjcmVhdGVkIHRvIHByZXZlbnQKKwkJICog Y29uY3VycmVudCBzY2hlbWEgZGVsZXRpb24uCisJCSAqLworCQlMb2NrU2NoZW1hTGlzdChzY2hl bWFpZGxpc3QpOworCQlQdWJsaWNhdGlvbkFkZFNjaGVtYXMocHVib2lkLCBzY2hlbWFpZGxpc3Qs IHRydWUsIE5VTEwpOwogCX0KIAogCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7 CiAKKwkvKiBBc3NvY2lhdGUgb2JqZWN0cyB3aXRoIHRoZSBwdWJsaWNhdGlvbi4gKi8KKwlpZiAo c3RtdC0+Zm9yX2FsbF90YWJsZXMpCisJeworCQkvKiBJbnZhbGlkYXRlIHJlbGNhY2hlIHNvIHRo YXQgcHVibGljYXRpb24gaW5mbyBpcyByZWJ1aWx0LiAqLworCQlDYWNoZUludmFsaWRhdGVSZWxj YWNoZUFsbCgpOworCX0KKwogCUludm9rZU9iamVjdFBvc3RDcmVhdGVIb29rKFB1YmxpY2F0aW9u UmVsYXRpb25JZCwgcHVib2lkLCAwKTsKIAogCWlmICh3YWxfbGV2ZWwgIT0gV0FMX0xFVkVMX0xP R0lDQUwpCkBAIC0xMDQxLDcgKzEwNzksNyBAQCBBbHRlclB1YmxpY2F0aW9uT3B0aW9ucyhQYXJz ZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAogCQkJCQkJICAgQWNj ZXNzU2hhcmVMb2NrKTsKIAogCQlyb290X3JlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25z KHB1YmZvcm0tPm9pZCwKLQkJCQkJCQkJCQkJICBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCQkJ CQkJCQkJCQkgIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCwgZmFsc2UpOwogCiAJCWZvcmVhY2gobGMs IHJvb3RfcmVsaWRzKQogCQl7CkBAIC0xMTYxLDcgKzExOTksNyBAQCBBbHRlclB1YmxpY2F0aW9u T3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAog CQkgKi8KIAkJaWYgKHJvb3RfcmVsaWRzID09IE5JTCkKIAkJCXJlbGlkcyA9IEdldFB1YmxpY2F0 aW9uUmVsYXRpb25zKHB1YmZvcm0tPm9pZCwKLQkJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRf QUxMKTsKKwkJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfQUxMLCBmYWxzZSk7CiAJCWVsc2UK IAkJewogCQkJLyoKQEAgLTEyNjMsNiArMTMwMSwyNyBAQCBBbHRlclB1YmxpY2F0aW9uUmVzZXQo UGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAl2YWx1ZXNb QW51bV9wZ19wdWJsaWNhdGlvbl9wdWJhbGxzZXF1ZW5jZXMgLSAxXSA9IEJvb2xHZXREYXR1bShQ VUJfREVGQVVMVF9BTExfU0VRVUVOQ0VTKTsKIAlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9u X3B1YmFsbHNlcXVlbmNlcyAtIDFdID0gdHJ1ZTsKIAorCS8qCisJICogTG9jayB0aGUgcHVibGlj YXRpb24gc28gbm9ib2R5IGVsc2UgY2FuIGRvIGFueXRoaW5nIHdpdGggaXQuIFRoaXMKKwkgKiBw cmV2ZW50cyBjb25jdXJyZW50IHB1YmxpY2F0aW9uIHBhcmFtZXRlciBjaGFuZ2VzLCBhZGQvZHJv cCB0YWJsZXMocykKKwkgKiB0byB0aGUgcHVibGljYXRpb24gYW5kIGFkZC9kcm9wIHNjaGVtYShz KSB0byB0aGUgcHVibGljYXRpb24uCisJICovCisJTG9ja0RhdGFiYXNlT2JqZWN0KFB1YmxpY2F0 aW9uUmVsYXRpb25JZCwgcHViaWQsIDAsCisJCQkJCSAgIEFjY2Vzc0V4Y2x1c2l2ZUxvY2spOwor CisJLyoKKwkgKiBJdCBpcyBwb3NzaWJsZSB0aGF0IGJ5IHRoZSB0aW1lIHdlIGFjcXVpcmUgdGhl IGxvY2sgb24gcHVibGljYXRpb24sCisJICogY29uY3VycmVudCBEREwgaGFzIHJlbW92ZWQgaXQu IFdlIGNhbiB0ZXN0IHRoaXMgYnkgY2hlY2tpbmcgdGhlCisJICogZXhpc3RlbmNlIG9mIHB1Ymxp Y2F0aW9uLiBXZSBnZXQgdGhlIHR1cGxlIGFnYWluIHRvIGF2b2lkIHRoZSByaXNrIG9mCisJICog YW55IHB1YmxpY2F0aW9uIG9wdGlvbiBnZXR0aW5nIGNoYW5nZWQuCisJICovCisJdHVwID0gU2Vh cmNoU3lzQ2FjaGVDb3B5MShQVUJMSUNBVElPTk9JRCwgT2JqZWN0SWRHZXREYXR1bShwdWJpZCkp OworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVy cmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQllcnJtc2coInB1YmxpY2F0aW9u IFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCSAgIHN0bXQtPnB1Ym5hbWUpKTsKKwogCWlm IChwdWJmb3JtLT5wdWJhbGx0YWJsZXMpCiAJCUNhY2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxsKCk7 CiAKQEAgLTEyODUsNyArMTM0NCwxMCBAQCBBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAlQdWJsaWNhdGlvbkRyb3BT Y2hlbWFzKHB1YmlkLCBzY2hlbWFpZHMsIHRydWUpOwogCiAJLyogR2V0IGFsbCByZWxhdGlvbnMg YXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiAqLwotCXJlbGlkcyA9IEdldFB1YmxpY2F0 aW9uUmVsYXRpb25zKHB1YmlkLCBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCWlmIChwdWJmb3Jt LT5wdWJhbGx0YWJsZXMpCisJCXJlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1Ymlk LCBQVUJMSUNBVElPTl9QQVJUX1JPT1QsIHRydWUpOworCWVsc2UKKwkJcmVsaWRzID0gR2V0UHVi bGljYXRpb25SZWxhdGlvbnMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCwgZmFsc2UpOwog CiAJZm9yZWFjaF9vaWQocmVsaWQsIHJlbGlkcykKIAl7CkBAIC0xMzAzLDYgKzEzNjUsODAgQEAg QWx0ZXJQdWJsaWNhdGlvblJlc2V0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlv blN0bXQgKnN0bXQsCiAJQ2xvc2VUYWJsZUxpc3QocmVscyk7CiB9CiAKKy8qCisgKiBDaGVjayBp ZiB0aGUgcHVibGljYXRpb24gaGFzIGRlZmF1bHQgdmFsdWVzLgorICoKKyAqIFJldHVybnMgdHJ1 ZSBpZiB0aGUgcHVibGljYXRpb24gc2F0aXNmaWVzIGFsbCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv bnM6CisgKiBhKSBQdWJsaWNhdGlvbiBpcyBub3Qgc2V0IHdpdGggIkZPUiBBTEwgVEFCTEVTIgor ICogYikgUHVibGljYXRpb24gaXMgaGF2aW5nIGRlZmF1bHQgcHVibGljYXRpb24gcGFyYW1ldGVy IHZhbHVlcworICogYykgUHVibGljYXRpb24gaXMgbm90IGFzc29jaWF0ZWQgd2l0aCBzY2hlbWFz CisgKiBkKSBQdWJsaWNhdGlvbiBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIHJlbGF0aW9ucworICov CitzdGF0aWMgYm9vbAorQ2hlY2tQdWJsaWNhdGlvbkRlZlZhbHVlcyhIZWFwVHVwbGUgdHVwKQor eworCUZvcm1fcGdfcHVibGljYXRpb24gcHViZm9ybSA9IChGb3JtX3BnX3B1YmxpY2F0aW9uKSBH RVRTVFJVQ1QodHVwKTsKKwlPaWQJCQlwdWJpZCA9IHB1YmZvcm0tPm9pZDsKKwlMaXN0CSAgICpw dWJvYmpzID0gTklMOworCisJaWYgKHB1YmZvcm0tPnB1YmFsbHRhYmxlcyAhPSBQVUJfREVGQVVM VF9BTExfVEFCTEVTIHx8CisJCXB1YmZvcm0tPnB1YmFsbHNlcXVlbmNlcyAhPSBQVUJfREVGQVVM VF9BTExfU0VRVUVOQ0VTKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAocHViZm9ybS0+cHViaW5z ZXJ0ICE9IFBVQl9ERUZBVUxUX0FDVElPTl9JTlNFUlQgfHwKKwkJcHViZm9ybS0+cHVidXBkYXRl ICE9IFBVQl9ERUZBVUxUX0FDVElPTl9VUERBVEUgfHwKKwkJcHViZm9ybS0+cHViZGVsZXRlICE9 IFBVQl9ERUZBVUxUX0FDVElPTl9ERUxFVEUgfHwKKwkJcHViZm9ybS0+cHVidHJ1bmNhdGUgIT0g UFVCX0RFRkFVTFRfQUNUSU9OX1RSVU5DQVRFIHx8CisJCXB1YmZvcm0tPnB1YnZpYXJvb3QgIT0g UFVCX0RFRkFVTFRfVklBX1JPT1QpCisJCXJldHVybiBmYWxzZTsKKworCXB1Ym9ianMgPSBHZXRQ dWJsaWNhdGlvblNjaGVtYXMocHViaWQpOworCWlmIChsaXN0X2xlbmd0aChwdWJvYmpzKSkKKwkJ cmV0dXJuIGZhbHNlOworCisJcHVib2JqcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1Ymlk LCBQVUJMSUNBVElPTl9QQVJUX1JPT1QsIGZhbHNlKTsKKwlpZiAobGlzdF9sZW5ndGgocHVib2Jq cykpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0cnVlOworfQorCisvKgorICogU2V0IHB1 YmxpY2F0aW9uIHRvIHB1Ymxpc2ggYWxsIHRhYmxlcy4KKyAqLworc3RhdGljIHZvaWQKK0FsdGVy UHVibGljYXRpb25TZXRBbGxUYWJsZXMoUmVsYXRpb24gcmVsLCBIZWFwVHVwbGUgdHVwKQorewor CUZvcm1fcGdfcHVibGljYXRpb24gcHViZm9ybSBQR19VU0VEX0ZPUl9BU1NFUlRTX09OTFkgPSAo Rm9ybV9wZ19wdWJsaWNhdGlvbikgR0VUU1RSVUNUKHR1cCk7CisJYm9vbAkJbnVsbHNbTmF0dHNf cGdfcHVibGljYXRpb25dOworCWJvb2wJCXJlcGxhY2VzW05hdHRzX3BnX3B1YmxpY2F0aW9uXTsK KwlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3B1YmxpY2F0aW9uXTsKKworI2lmZGVmIFVTRV9BU1NF UlRfQ0hFQ0tJTkcKKwlBc3NlcnQoIXB1YmZvcm0tPnB1YmFsbHRhYmxlcyk7CisjZW5kaWYKKwor CS8qIEFkZCBBTEwgVEFCTEVTIHRvIHRoZSBwdWJsaWNhdGlvbiByZXF1aXJlcyBzdXBlcnVzZXIg Ki8KKwlpZiAoIXN1cGVydXNlcigpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJS Q09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQllcnJtc2coIm11c3QgYmUgc3VwZXJ1 c2VyIHRvIEFERCBBTEwgVEFCTEVTIHRvIHRoZSBwdWJsaWNhdGlvbiIpKTsKKworCW1lbXNldCh2 YWx1ZXMsIDAsIHNpemVvZih2YWx1ZXMpKTsKKwltZW1zZXQobnVsbHMsIGZhbHNlLCBzaXplb2Yo bnVsbHMpKTsKKwltZW1zZXQocmVwbGFjZXMsIGZhbHNlLCBzaXplb2YocmVwbGFjZXMpKTsKKwor CS8qIFNldCBBTEwgVEFCTEVTIGZsYWcgKi8KKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9w dWJhbGx0YWJsZXMgLSAxXSA9IEJvb2xHZXREYXR1bSh0cnVlKTsKKwlyZXBsYWNlc1tBbnVtX3Bn X3B1YmxpY2F0aW9uX3B1YmFsbHRhYmxlcyAtIDFdID0gdHJ1ZTsKKworCXR1cCA9IGhlYXBfbW9k aWZ5X3R1cGxlKHR1cCwgUmVsYXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzLAorCQkJ CQkJCXJlcGxhY2VzKTsKKworCS8qIFVwZGF0ZSB0aGUgY2F0YWxvZy4gKi8KKwlDYXRhbG9nVHVw bGVVcGRhdGUocmVsLCAmdHVwLT50X3NlbGYsIHR1cCk7Cit9CisKIC8qCiAgKiBBZGQgb3IgcmVt b3ZlIHRhYmxlIHRvL2Zyb20gcHVibGljYXRpb24uCiAgKi8KQEAgLTEzNDEsNyArMTQ3Nyw4IEBA IEFsdGVyUHVibGljYXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsIEhlYXBU dXBsZSB0dXAsCiAJZWxzZQkJCQkJCS8qIEFQX1NldE9iamVjdHMgKi8KIAl7CiAJCUxpc3QJICAg Km9sZHJlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLAotCQkJCQkJCQkJCQkJ CQlQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCQkJCQkJCQkJCQkJCQlQVUJMSUNBVElPTl9QQVJU X1JPT1QsCisJCQkJCQkJCQkJCQkJCWZhbHNlKTsKIAkJTGlzdAkgICAqZGVscmVscyA9IE5JTDsK IAkJTGlzdENlbGwgICAqb2xkbGM7CiAKQEAgLTE0NDIsNiArMTU3OSw3IEBAIEFsdGVyUHVibGlj YXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAJ CQkJb2xkcmVsID0gcGFsbG9jKHNpemVvZihQdWJsaWNhdGlvblJlbEluZm8pKTsKIAkJCQlvbGRy ZWwtPndoZXJlQ2xhdXNlID0gTlVMTDsKIAkJCQlvbGRyZWwtPmNvbHVtbnMgPSBOSUw7CisJCQkJ b2xkcmVsLT5leGNlcHQgPSBmYWxzZTsKIAkJCQlvbGRyZWwtPnJlbGF0aW9uID0gdGFibGVfb3Bl bihvbGRyZWxpZCwKIAkJCQkJCQkJCQkJICBTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2spOwogCQkJ CWRlbHJlbHMgPSBsYXBwZW5kKGRlbHJlbHMsIG9sZHJlbCk7CkBAIC0xNDkyLDcgKzE2MzAsOCBA QCBBbHRlclB1YmxpY2F0aW9uU2NoZW1hcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAkJ TGlzdENlbGwgICAqbGM7CiAJCUxpc3QJICAgKnJlbG9pZHM7CiAKLQkJcmVsb2lkcyA9IEdldFB1 YmxpY2F0aW9uUmVsYXRpb25zKHB1YmZvcm0tPm9pZCwgUFVCTElDQVRJT05fUEFSVF9ST09UKTsK KwkJcmVsb2lkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmZvcm0tPm9pZCwgUFVCTElD QVRJT05fUEFSVF9ST09ULAorCQkJCQkJCQkJCSAgZmFsc2UpOwogCiAJCWZvcmVhY2gobGMsIHJl bG9pZHMpCiAJCXsKQEAgLTE2NDUsNiArMTc4NCwyMCBAQCBBbHRlclB1YmxpY2F0aW9uKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJCWFjbGNoZWNrX2Vy cm9yKEFDTENIRUNLX05PVF9PV05FUiwgT0JKRUNUX1BVQkxJQ0FUSU9OLAogCQkJCQkgICBzdG10 LT5wdWJuYW1lKTsKIAorCWlmIChzdG10LT5mb3JfYWxsX3RhYmxlcykKKwl7CisJCWJvb2wJCWlz ZGVmYXVsdCA9IENoZWNrUHVibGljYXRpb25EZWZWYWx1ZXModHVwKTsKKworCQlpZiAoIWlzZGVm YXVsdCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09C SkVDVF9ERUZJTklUSU9OKSwKKwkJCQkJZXJybXNnKCJhZGRpbmcgQUxMIFRBQkxFUyByZXF1aXJl cyB0aGUgcHVibGljYXRpb24gdG8gaGF2ZSBkZWZhdWx0IHB1YmxpY2F0aW9uIHBhcmFtZXRlciB2 YWx1ZXMiKSwKKwkJCQkJZXJyZGV0YWlsKCJBTEwgVEFCTEVTIGZsYWcgc2hvdWxkIG5vdCBiZSBz ZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFzIHNob3VsZCBiZSBhc3NvY2lhdGVkLiIpLAorCQkJCQll cnJoaW50KCJVc2UgQUxURVIgUFVCTElDQVRJT04gLi4uIFJFU0VUIHRvIHJlc2V0IHRoZSBwdWJs aWNhdGlvbiIpKTsKKworCQlBbHRlclB1YmxpY2F0aW9uU2V0QWxsVGFibGVzKHJlbCwgdHVwKTsK Kwl9CisKIAlpZiAoc3RtdC0+b3B0aW9ucykKIAkJQWx0ZXJQdWJsaWNhdGlvbk9wdGlvbnMocHN0 YXRlLCBzdG10LCByZWwsIHR1cCk7CiAJZWxzZSBpZiAoc3RtdC0+YWN0aW9uID09IEFQX1Jlc2V0 KQpAQCAtMTg1Nyw2ICsyMDEwLDcgQEAgT3BlblRhYmxlTGlzdChMaXN0ICp0YWJsZXMpCiAJCXB1 Yl9yZWwtPnJlbGF0aW9uID0gcmVsOwogCQlwdWJfcmVsLT53aGVyZUNsYXVzZSA9IHQtPndoZXJl Q2xhdXNlOwogCQlwdWJfcmVsLT5jb2x1bW5zID0gdC0+Y29sdW1uczsKKwkJcHViX3JlbC0+ZXhj ZXB0ID0gdC0+ZXhjZXB0OwogCQlyZWxzID0gbGFwcGVuZChyZWxzLCBwdWJfcmVsKTsKIAkJcmVs aWRzID0gbGFwcGVuZF9vaWQocmVsaWRzLCBteXJlbGlkKTsKIApAQCAtMTkyOSw2ICsyMDgzLDcg QEAgT3BlblRhYmxlTGlzdChMaXN0ICp0YWJsZXMpCiAKIAkJCQkvKiBjaGlsZCBpbmhlcml0cyBj b2x1bW4gbGlzdCBmcm9tIHBhcmVudCAqLwogCQkJCXB1Yl9yZWwtPmNvbHVtbnMgPSB0LT5jb2x1 bW5zOworCQkJCXB1Yl9yZWwtPmV4Y2VwdCA9IHQtPmV4Y2VwdDsKIAkJCQlyZWxzID0gbGFwcGVu ZChyZWxzLCBwdWJfcmVsKTsKIAkJCQlyZWxpZHMgPSBsYXBwZW5kX29pZChyZWxpZHMsIGNoaWxk cmVsaWQpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDNhYWM0NTllNDgzLi43ZmM4 ZjA4YjBlYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysr IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTg2NTEsNyArODY1MSw3IEBA IEFURXhlY1NldEV4cHJlc3Npb24oQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWws IGNvbnN0IGNoYXIgKmNvbE5hbWUsCiAJICogZXhwcmVzc2lvbnMuCiAJICovCiAJaWYgKGF0dGdl bmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwgJiYKLQkJR2V0UmVsYXRpb25Q dWJsaWNhdGlvbnMoUmVsYXRpb25HZXRSZWxpZChyZWwpKSAhPSBOSUwpCisJCUdldFJlbGF0aW9u UHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgZmFsc2UpICE9IE5JTCkKIAkJZXJl cG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCks CiAJCQkJIGVycm1zZygiQUxURVIgVEFCTEUgLyBTRVQgRVhQUkVTU0lPTiBpcyBub3Qgc3VwcG9y dGVkIGZvciB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGluIHRhYmxlcyB0aGF0IGFyZSBwYXJ0 IG9mIGEgcHVibGljYXRpb24iKSwKQEAgLTE4ODQ2LDcgKzE4ODQ2LDcgQEAgQVRQcmVwQ2hhbmdl UGVyc2lzdGVuY2UoQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsIGJvb2wgdG9M b2dnZWQpCiAJICogVU5MT0dHRUQsIGFzIFVOTE9HR0VEIHRhYmxlcyBjYW4ndCBiZSBwdWJsaXNo ZWQuCiAJICovCiAJaWYgKCF0b0xvZ2dlZCAmJgotCQlHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhS ZWxhdGlvbkdldFJlbGlkKHJlbCkpICE9IE5JTCkKKwkJbGlzdF9sZW5ndGgoR2V0UmVsYXRpb25Q dWJsaWNhdGlvbnMoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBmYWxzZSkpID4gMCkKIAkJZXJlcG9y dChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRF X1NUQVRFKSwKIAkJCQkgZXJybXNnKCJjYW5ub3QgY2hhbmdlIHRhYmxlIFwiJXNcIiB0byB1bmxv Z2dlZCBiZWNhdXNlIGl0IGlzIHBhcnQgb2YgYSBwdWJsaWNhdGlvbiIsCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRl eCBjOWU4M2YwNWFmOS4uZTQzNzkwYWUzZmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNDU0LDYgKzQ1NCw3 IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBM aXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCQkJVHJpZ2dlclRyYW5zaXRpb25zIFRyaWdn ZXJSZWZlcmVuY2luZwogCQkJCXZhY3V1bV9yZWxhdGlvbl9saXN0IG9wdF92YWN1dW1fcmVsYXRp b25fbGlzdAogCQkJCWRyb3Bfb3B0aW9uX2xpc3QgcHViX29ial9saXN0IHB1Yl9vYmpfdHlwZV9s aXN0CisJCQkJZXhjZXB0X3B1Yl9vYmpfbGlzdCBvcHRfZXhjZXB0X2NsYXVzZQogCiAldHlwZSA8 cmV0Y2xhdXNlPiByZXR1cm5pbmdfY2xhdXNlCiAldHlwZSA8bm9kZT4JcmV0dXJuaW5nX29wdGlv bgpAQCAtNTkxLDYgKzU5Miw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVj dChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8bm9k ZT4JdmFyX3ZhbHVlIHpvbmVfdmFsdWUKICV0eXBlIDxyb2xlc3BlYz4gYXV0aF9pZGVudCBSb2xl U3BlYyBvcHRfZ3JhbnRlZF9ieQogJXR5cGUgPHB1YmxpY2F0aW9ub2JqZWN0c3BlYz4gUHVibGlj YXRpb25PYmpTcGVjCisldHlwZSA8cHVibGljYXRpb25vYmplY3RzcGVjPiBFeGNlcHRQdWJsaWNh dGlvbk9ialNwZWMKICV0eXBlIDxwdWJsaWNhdGlvbmFsbG9iamVjdHNwZWM+IFB1YmxpY2F0aW9u QWxsT2JqU3BlYwogCiAldHlwZSA8a2V5d29yZD4gdW5yZXNlcnZlZF9rZXl3b3JkIHR5cGVfZnVu Y19uYW1lX2tleXdvcmQKQEAgLTEwODAyLDYgKzEwODA0LDcgQEAgUHVibGljYXRpb25PYmpTcGVj OgogCQkJCQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gJDI7CiAJCQkJCSQkLT5wdWJ0YWJsZS0+ Y29sdW1ucyA9ICQzOwogCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDQ7CisJCQkJ CSQkLT5sb2NhdGlvbiA9IEAxOwogCQkJCX0KIAkJCXwgVEFCTEVTIElOX1AgU0NIRU1BIENvbElk CiAJCQkJewpAQCAtMTA4NzgsMTAgKzEwODgxLDEzIEBAIHB1Yl9vYmpfbGlzdDoJUHVibGljYXRp b25PYmpTcGVjCiAJOwogCiBQdWJsaWNhdGlvbkFsbE9ialNwZWM6Ci0JCQkJQUxMIFRBQkxFUwor CQkJCUFMTCBUQUJMRVMgb3B0X2V4Y2VwdF9jbGF1c2UKIAkJCQkJewogCQkJCQkJJCQgPSBtYWtl Tm9kZShQdWJsaWNhdGlvbkFsbE9ialNwZWMpOwogCQkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJM SUNBVElPTl9BTExfVEFCTEVTOworCQkJCQkJJCQtPmV4Y2VwdF9vYmplY3RzID0gKExpc3QgKikg JDM7CisJCQkJCQlpZigkJC0+ZXhjZXB0X29iamVjdHMgIT0gTlVMTCkKKwkJCQkJCQlwcmVwcm9j ZXNzX3B1Ym9ial9saXN0KCQkLT5leGNlcHRfb2JqZWN0cywgeXlzY2FubmVyKTsKIAkJCQkJCSQk LT5sb2NhdGlvbiA9IEAxOwogCQkJCQl9CiAJCQkJfCBBTEwgU0VRVUVOQ0VTCkBAIC0xMDg5OCw2 ICsxMDkwNCwyOCBAQCBwdWJfb2JqX3R5cGVfbGlzdDoJUHVibGljYXRpb25BbGxPYmpTcGVjCiAJ CQkJCXsgJCQgPSBsYXBwZW5kKCQxLCAkMyk7IH0KIAk7CiAKK29wdF9leGNlcHRfY2xhdXNlOgor CQkJRVhDRVBUIG9wdF90YWJsZSAnKCcgZXhjZXB0X3B1Yl9vYmpfbGlzdCAnKScJeyAkJCA9ICQ0 OyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQkJCQl7ICQkID0gTklMOyB9CisJCTsKKworRXhjZXB0 UHVibGljYXRpb25PYmpTcGVjOgorCQkJIHJlbGF0aW9uX2V4cHIKKwkJCQl7CisJCQkJCSQkID0g bWFrZU5vZGUoUHVibGljYXRpb25PYmpTcGVjKTsKKwkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJM SUNBVElPTk9CSl9FWENFUFRfVEFCTEU7CisJCQkJCSQkLT5wdWJ0YWJsZSA9IG1ha2VOb2RlKFB1 YmxpY2F0aW9uVGFibGUpOworCQkJCQkkJC0+cHVidGFibGUtPmV4Y2VwdCA9IHRydWU7CisJCQkJ CSQkLT5wdWJ0YWJsZS0+cmVsYXRpb24gPSAkMTsKKwkJCQkJJCQtPmxvY2F0aW9uID0gQDE7CisJ CQkJfQorCTsKKworZXhjZXB0X3B1Yl9vYmpfbGlzdDogRXhjZXB0UHVibGljYXRpb25PYmpTcGVj CisJCQkJCXsgJCQgPSBsaXN0X21ha2UxKCQxKTsgfQorCQkJfCBleGNlcHRfcHViX29ial9saXN0 ICcsJyBFeGNlcHRQdWJsaWNhdGlvbk9ialNwZWMKKwkJCQkJeyAkJCA9IGxhcHBlbmQoJDEsICQz KTsgfQorCTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgpAQCAtMTA5MTQsNiArMTA5NDIs OCBAQCBwdWJfb2JqX3R5cGVfbGlzdDoJUHVibGljYXRpb25BbGxPYmpTcGVjCiAgKgkJVEFCTEUg dGFibGVfbmFtZSBbLCAuLi5dCiAgKgkJVEFCTEVTIElOIFNDSEVNQSBzY2hlbWFfbmFtZSBbLCAu Li5dCiAgKgorICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBBREQgQUxMIFRBQkxFUyBFWENFUFQg W1RBQkxFXSAodGFibGVfbmFtZSBbLCAuLi5dKQorICoKICAqIEFMVEVSIFBVQkxJQ0FUSU9OIG5h bWUgUkVTRVQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC0xMDk1Nyw2ICsxMDk4Nywx NSBAQCBBbHRlclB1YmxpY2F0aW9uU3RtdDoKIAkJCQkJbi0+YWN0aW9uID0gQVBfRHJvcE9iamVj dHM7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFBVQkxJQ0FUSU9O IG5hbWUgQUREX1AgQUxMIFRBQkxFUyBvcHRfZXhjZXB0X2NsYXVzZQorCQkJCXsKKwkJCQkJQWx0 ZXJQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtlTm9kZShBbHRlclB1YmxpY2F0aW9uU3RtdCk7CisJ CQkJCW4tPnB1Ym5hbWUgPSAkMzsKKwkJCQkJbi0+cHVib2JqZWN0cyA9IChMaXN0ICopICQ3Owor CQkJCQluLT5mb3JfYWxsX3RhYmxlcyA9IHRydWU7CisJCQkJCW4tPmFjdGlvbiA9IEFQX0FkZE9i amVjdHM7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KIAkJCXwgQUxURVIgUFVCTElDQVRJ T04gbmFtZSBSRVNFVAogCQkJCXsKIAkJCQkJQWx0ZXJQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtl Tm9kZShBbHRlclB1YmxpY2F0aW9uU3RtdCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdv dXRwdXQvcGdvdXRwdXQuYwppbmRleCA5NDJlMWFiZGI1OC4uYTk1OTNjNWQ5ZGEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKKysrIGIvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwpAQCAtMjA4NCw3ICsyMDg0 LDggQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVs YXRpb24pCiAJaWYgKCFlbnRyeS0+cmVwbGljYXRlX3ZhbGlkKQogCXsKIAkJT2lkCQkJc2NoZW1h SWQgPSBnZXRfcmVsX25hbWVzcGFjZShyZWxpZCk7Ci0JCUxpc3QJICAgKnB1YmlkcyA9IEdldFJl bGF0aW9uUHVibGljYXRpb25zKHJlbGlkKTsKKwkJTGlzdAkgICAqcHViaWRzID0gR2V0UmVsYXRp b25QdWJsaWNhdGlvbnMocmVsaWQsIGZhbHNlKTsKKwkJTGlzdAkgICAqZXhjZXB0VGFibGVQdWJp ZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCwgdHJ1ZSk7CiAKIAkJLyoKIAkJICog V2UgZG9uJ3QgYWNxdWlyZSBhIGxvY2sgb24gdGhlIG5hbWVzcGFjZSBzeXN0ZW0gdGFibGUgYXMg d2UgYnVpbGQKQEAgLTIxOTUsMjIgKzIxOTYsNiBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRw dXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJCU9pZAkJCXB1Yl9yZWxpZCA9IHJl bGlkOwogCQkJaW50CQkJYW5jZXN0b3JfbGV2ZWwgPSAwOwogCi0JCQkvKgotCQkJICogSWYgdGhp cyBpcyBhIEZPUiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9uLCBwaWNrIHRoZSBwYXJ0aXRpb24KLQkJ CSAqIHJvb3QgYW5kIHNldCB0aGUgYW5jZXN0b3IgbGV2ZWwgYWNjb3JkaW5nbHkuCi0JCQkgKi8K LQkJCWlmIChwdWItPmFsbHRhYmxlcykKLQkJCXsKLQkJCQlwdWJsaXNoID0gdHJ1ZTsKLQkJCQlp ZiAocHViLT5wdWJ2aWFyb290ICYmIGFtX3BhcnRpdGlvbikKLQkJCQl7Ci0JCQkJCUxpc3QJICAg KmFuY2VzdG9ycyA9IGdldF9wYXJ0aXRpb25fYW5jZXN0b3JzKHJlbGlkKTsKLQotCQkJCQlwdWJf cmVsaWQgPSBsbGFzdF9vaWQoYW5jZXN0b3JzKTsKLQkJCQkJYW5jZXN0b3JfbGV2ZWwgPSBsaXN0 X2xlbmd0aChhbmNlc3RvcnMpOwotCQkJCX0KLQkJCX0KLQogCQkJaWYgKCFwdWJsaXNoKQogCQkJ ewogCQkJCWJvb2wJCWFuY2VzdG9yX3B1Ymxpc2hlZCA9IGZhbHNlOwpAQCAtMjIyOSw3ICsyMjE0 LDggQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVs YXRpb24pCiAKIAkJCQkJYW5jZXN0b3IgPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9u KHB1Yi0+b2lkLAogCQkJCQkJCQkJCQkJCQkJICAgYW5jZXN0b3JzLAotCQkJCQkJCQkJCQkJCQkJ ICAgJmxldmVsKTsKKwkJCQkJCQkJCQkJCQkJCSAgICZsZXZlbCwKKwkJCQkJCQkJCQkJCQkJCSAg IHB1Yi0+YWxsdGFibGVzKTsKIAogCQkJCQlpZiAoYW5jZXN0b3IgIT0gSW52YWxpZE9pZCkKIAkJ CQkJewpAQCAtMjI0NCw2ICsyMjMwLDggQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0 YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAKIAkJCQlpZiAobGlzdF9tZW1iZXJfb2lkKHB1 YmlkcywgcHViLT5vaWQpIHx8CiAJCQkJCWxpc3RfbWVtYmVyX29pZChzY2hlbWFQdWJpZHMsIHB1 Yi0+b2lkKSB8fAorCQkJCQkocHViLT5hbGx0YWJsZXMgJiYKKwkJCQkJICFsaXN0X21lbWJlcl9v aWQoZXhjZXB0VGFibGVQdWJpZHMsIHB1Yi0+b2lkKSkgfHwKIAkJCQkJYW5jZXN0b3JfcHVibGlz aGVkKQogCQkJCQlwdWJsaXNoID0gdHJ1ZTsKIAkJCX0KQEAgLTIzMjIsNiArMjMxMCw3IEBAIGdl dF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQog CiAJCWxpc3RfZnJlZShwdWJpZHMpOwogCQlsaXN0X2ZyZWUoc2NoZW1hUHViaWRzKTsKKwkJbGlz dF9mcmVlKGV4Y2VwdFRhYmxlUHViaWRzKTsKIAkJbGlzdF9mcmVlKHJlbF9wdWJsaWNhdGlvbnMp OwogCiAJCWVudHJ5LT5yZXBsaWNhdGVfdmFsaWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3Jl bGNhY2hlLmMKaW5kZXggOTE1ZDBiYzkwODQuLjk2ZGQwY2NmNDFhIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Nh Y2hlL3JlbGNhY2hlLmMKQEAgLTU3OTQsNiArNTc5NCw4IEBAIHZvaWQKIFJlbGF0aW9uQnVpbGRQ dWJsaWNhdGlvbkRlc2MoUmVsYXRpb24gcmVsYXRpb24sIFB1YmxpY2F0aW9uRGVzYyAqcHViZGVz YykKIHsKIAlMaXN0CSAgICpwdWJvaWRzOworCUxpc3QJICAgKmFsbHRhYmxlc3B1Ym9pZHM7CisJ TGlzdAkgICAqZXhjZXB0cHVib2lkcyA9IE5JTDsKIAlMaXN0Q2VsbCAgICpsYzsKIAlNZW1vcnlD b250ZXh0IG9sZGN4dDsKIAlPaWQJCQlzY2hlbWFpZDsKQEAgLTU4MzEsOSArNTgzMywxMCBAQCBS ZWxhdGlvbkJ1aWxkUHVibGljYXRpb25EZXNjKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaWNhdGlv bkRlc2MgKnB1YmRlc2MpCiAJcHViZGVzYy0+Z2VuY29sc192YWxpZF9mb3JfZGVsZXRlID0gdHJ1 ZTsKIAogCS8qIEZldGNoIHRoZSBwdWJsaWNhdGlvbiBtZW1iZXJzaGlwIGluZm8uICovCi0JcHVi b2lkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkKTsKKwlwdWJvaWRzID0gR2V0UmVs YXRpb25QdWJsaWNhdGlvbnMocmVsaWQsIGZhbHNlKTsKIAlzY2hlbWFpZCA9IFJlbGF0aW9uR2V0 TmFtZXNwYWNlKHJlbGF0aW9uKTsKIAlwdWJvaWRzID0gbGlzdF9jb25jYXRfdW5pcXVlX29pZChw dWJvaWRzLCBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoc2NoZW1haWQpKTsKKwlleGNlcHRwdWJvaWRz ID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVsaWQsIHRydWUpOwogCiAJaWYgKHJlbGF0aW9u LT5yZF9yZWwtPnJlbGlzcGFydGl0aW9uKQogCXsKQEAgLTU4NDUsMTQgKzU4NDgsMTkgQEAgUmVs YXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25E ZXNjICpwdWJkZXNjKQogCQkJT2lkCQkJYW5jZXN0b3IgPSBsZmlyc3Rfb2lkKGxjKTsKIAogCQkJ cHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywKLQkJCQkJCQkJCQkJIEdl dFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yKSk7CisJCQkJCQkJCQkJCSBHZXRSZWxhdGlv blB1YmxpY2F0aW9ucyhhbmNlc3RvciwgZmFsc2UpKTsKIAkJCXNjaGVtYWlkID0gZ2V0X3JlbF9u YW1lc3BhY2UoYW5jZXN0b3IpOwogCQkJcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQo cHVib2lkcywKIAkJCQkJCQkJCQkJIEdldFNjaGVtYVB1YmxpY2F0aW9ucyhzY2hlbWFpZCkpOwor CQkJZXhjZXB0cHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQoZXhjZXB0cHVib2lkcywK KwkJCQkJCQkJCQkJCSAgIEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yLCB0cnVlKSk7 CiAJCX0KIAl9Ci0JcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywgR2V0 QWxsVGFibGVzUHVibGljYXRpb25zKCkpOwogCisJYWxsdGFibGVzcHVib2lkcyA9IEdldEFsbFRh Ymxlc1B1YmxpY2F0aW9ucygpOworCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1 Ym9pZHMsCisJCQkJCQkJCQkgbGlzdF9kaWZmZXJlbmNlX29pZChhbGx0YWJsZXNwdWJvaWRzLAor CQkJCQkJCQkJCQkJCQkgZXhjZXB0cHVib2lkcykpOwogCWZvcmVhY2gobGMsIHB1Ym9pZHMpCiAJ ewogCQlPaWQJCQlwdWJpZCA9IGxmaXJzdF9vaWQobGMpOwpAQCAtNTg4Myw3ICs1ODkxLDcgQEAg UmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRp b25EZXNjICpwdWJkZXNjKQogCQlpZiAoIXB1YmZvcm0tPnB1YmFsbHRhYmxlcyAmJgogCQkJKHB1 YmZvcm0tPnB1YnVwZGF0ZSB8fCBwdWJmb3JtLT5wdWJkZWxldGUpICYmCiAJCQlwdWJfcmZfY29u dGFpbnNfaW52YWxpZF9jb2x1bW4ocHViaWQsIHJlbGF0aW9uLCBhbmNlc3RvcnMsCi0JCQkJCQkJ CQkJICAgcHViZm9ybS0+cHVidmlhcm9vdCkpCisJCQkJCQkJCQkJICAgcHViZm9ybS0+cHVidmlh cm9vdCwgcHViZm9ybS0+cHViYWxsdGFibGVzKSkKIAkJewogCQkJaWYgKHB1YmZvcm0tPnB1YnVw ZGF0ZSkKIAkJCQlwdWJkZXNjLT5yZl92YWxpZF9mb3JfdXBkYXRlID0gZmFsc2U7CkBAIC01OTAx LDYgKzU5MDksNyBAQCBSZWxhdGlvbkJ1aWxkUHVibGljYXRpb25EZXNjKFJlbGF0aW9uIHJlbGF0 aW9uLCBQdWJsaWNhdGlvbkRlc2MgKnB1YmRlc2MpCiAJCQlwdWJfY29udGFpbnNfaW52YWxpZF9j b2x1bW4ocHViaWQsIHJlbGF0aW9uLCBhbmNlc3RvcnMsCiAJCQkJCQkJCQkJcHViZm9ybS0+cHVi dmlhcm9vdCwKIAkJCQkJCQkJCQlwdWJmb3JtLT5wdWJnZW5jb2xzLAorCQkJCQkJCQkJCXB1YmZv cm0tPnB1YmFsbHRhYmxlcywKIAkJCQkJCQkJCQkmaW52YWxpZF9jb2x1bW5fbGlzdCwKIAkJCQkJ CQkJCQkmaW52YWxpZF9nZW5fY29sKSkKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggYTAwOTE4YmFjYjQu LmUzNGFhYmE3OTM3IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTE4Niw2ICsxODYsOCBAQCBzdGF0aWMgU2lt cGxlT2lkTGlzdCBleHRlbnNpb25faW5jbHVkZV9vaWRzID0ge05VTEwsIE5VTEx9Owogc3RhdGlj IFNpbXBsZVN0cmluZ0xpc3QgZXh0ZW5zaW9uX2V4Y2x1ZGVfcGF0dGVybnMgPSB7TlVMTCwgTlVM TH07CiBzdGF0aWMgU2ltcGxlT2lkTGlzdCBleHRlbnNpb25fZXhjbHVkZV9vaWRzID0ge05VTEws IE5VTEx9OwogCitzdGF0aWMgU2ltcGxlUHRyTGlzdCBleGNlcHRpbmZvID0ge05VTEwsIE5VTEx9 OworCiBzdGF0aWMgY29uc3QgQ2F0YWxvZ0lkIG5pbENhdGFsb2dJZCA9IHswLCAwfTsKIAogLyog b3ZlcnJpZGUgZm9yIHN0YW5kYXJkIGV4dHJhX2Zsb2F0X2RpZ2l0cyBzZXR0aW5nICovCkBAIC00 NjYyLDcgKzQ2NjQsMzQgQEAgZHVtcFB1YmxpY2F0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1 YmxpY2F0aW9uSW5mbyAqcHViaW5mbykKIAlpZiAocHViaW5mby0+cHViYWxsdGFibGVzICYmIHB1 YmluZm8tPnB1YmFsbHNlcXVlbmNlcykKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIg Rk9SIEFMTCBUQUJMRVMsIEFMTCBTRVFVRU5DRVMiKTsKIAllbHNlIGlmIChwdWJpbmZvLT5wdWJh bGx0YWJsZXMpCisJeworCQlTaW1wbGVQdHJMaXN0Q2VsbCAqY2VsbDsKKwogCQlhcHBlbmRQUUV4 cEJ1ZmZlclN0cihxdWVyeSwgIiBGT1IgQUxMIFRBQkxFUyIpOworCisJCS8qIEluY2x1ZGUgZXhj ZXB0aW9uIHRhYmxlcyBpZiB0aGUgcHVibGljYXRpb24gaGFzIGV4Y2VwdCB0YWJsZXMgKi8KKwkJ Zm9yIChjZWxsID0gZXhjZXB0aW5mby5oZWFkOyBjZWxsOyBjZWxsID0gY2VsbC0+bmV4dCkKKwkJ eworCQkJUHVibGljYXRpb25SZWxJbmZvICpwdWJyaW5mbyA9IChQdWJsaWNhdGlvblJlbEluZm8g KikgY2VsbC0+cHRyOworCQkJVGFibGVJbmZvICAqdGJpbmZvOworCisJCQlpZiAocHViaW5mbyA9 PSBwdWJyaW5mby0+cHVibGljYXRpb24pCisJCQl7CisJCQkJdGJpbmZvID0gcHVicmluZm8tPnB1 YnRhYmxlOworCisJCQkJaWYgKGZpcnN0KQorCQkJCXsKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXJT dHIocXVlcnksICIgRVhDRVBUIFRBQkxFICgiKTsKKwkJCQkJZmlyc3QgPSBmYWxzZTsKKwkJCQl9 CisJCQkJZWxzZQorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiwgIik7CisJCQkJ YXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJPTkxZICVzIiwgZm10UXVhbGlmaWVkRHVtcGFibGUo dGJpbmZvKSk7CisJCQl9CisJCX0KKwkJaWYgKCFmaXJzdCkKKwkJCWFwcGVuZFBRRXhwQnVmZmVy U3RyKHF1ZXJ5LCAiKSIpOworCX0KIAllbHNlIGlmIChwdWJpbmZvLT5wdWJhbGxzZXF1ZW5jZXMp CiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIEZPUiBBTEwgU0VRVUVOQ0VTIik7CiAK QEAgLTQ4MzEsNiArNDg2MCw3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQs IFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJaW50CQkJaV9wcnJlbGlkOwog CWludAkJCWlfcHJyZWxxdWFsOwogCWludAkJCWlfcHJhdHRyczsKKwlpbnQJCQlpX3ByZXhjZXB0 OwogCWludAkJCWksCiAJCQkJaiwKIAkJCQludHVwczsKQEAgLTQ4NDIsOCArNDg3MiwxNiBAQCBn ZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBp bnQgbnVtVGFibGVzKQogCiAJLyogQ29sbGVjdCBhbGwgcHVibGljYXRpb24gbWVtYmVyc2hpcCBp bmZvLiAqLwogCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE1MDAwMCkKKwl7CisJCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAorCQkJCQkJCSAiU0VMRUNUIHRhYmxlb2lkLCBvaWQsIHBy cHViaWQsIHBycmVsaWQsXG4iKTsKKworCQlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxOTAw MDApCisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBwcmV4Y2VwdCxcbiIpOworCQll bHNlCisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBmYWxzZSBBUyBwcmV4Y2VwdCxc biIpOworCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAotCQkJCQkJCSAiU0VMRUNUIHRh Ymxlb2lkLCBvaWQsIHBycHViaWQsIHBycmVsaWQsICIKIAkJCQkJCQkgInBnX2NhdGFsb2cucGdf Z2V0X2V4cHIocHJxdWFsLCBwcnJlbGlkKSBBUyBwcnJlbHF1YWwsICIKIAkJCQkJCQkgIihDQVNF XG4iCiAJCQkJCQkJICIgIFdIRU4gcHIucHJhdHRycyBJUyBOT1QgTlVMTCBUSEVOXG4iCkBAIC00 ODU0LDYgKzQ4OTIsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJs ZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCQkJCQkJCSAiICAgICAgV0hFUkUgYXR0 cmVsaWQgPSBwci5wcnJlbGlkIEFORCBhdHRudW0gPSBwcmF0dHJzW3NdKVxuIgogCQkJCQkJCSAi ICBFTFNFIE5VTEwgRU5EKSBwcmF0dHJzICIKIAkJCQkJCQkgIkZST00gcGdfY2F0YWxvZy5wZ19w dWJsaWNhdGlvbl9yZWwgcHIiKTsKKwl9CiAJZWxzZQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihx dWVyeSwKIAkJCQkJCQkgIlNFTEVDVCB0YWJsZW9pZCwgb2lkLCBwcnB1YmlkLCBwcnJlbGlkLCAi CkBAIC00ODY5LDYgKzQ5MDgsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0 LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCWlfcHJyZWxpZCA9IFBRZm51 bWJlcihyZXMsICJwcnJlbGlkIik7CiAJaV9wcnJlbHF1YWwgPSBQUWZudW1iZXIocmVzLCAicHJy ZWxxdWFsIik7CiAJaV9wcmF0dHJzID0gUFFmbnVtYmVyKHJlcywgInByYXR0cnMiKTsKKwlpX3By ZXhjZXB0ID0gUFFmbnVtYmVyKHJlcywgInByZXhjZXB0Iik7CiAKIAkvKiB0aGlzIGFsbG9jYXRp b24gbWF5IGJlIG1vcmUgdGhhbiB3ZSBuZWVkICovCiAJcHVicmluZm8gPSBwZ19tYWxsb2MobnR1 cHMgKiBzaXplb2YoUHVibGljYXRpb25SZWxJbmZvKSk7CkBAIC00ODgwLDYgKzQ5MjAsNyBAQCBn ZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBp bnQgbnVtVGFibGVzKQogCQlPaWQJCQlwcnJlbGlkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBp LCBpX3BycmVsaWQpKTsKIAkJUHVibGljYXRpb25JbmZvICpwdWJpbmZvOwogCQlUYWJsZUluZm8g ICp0YmluZm87CisJCWNoYXIJICAgKnByZXhjZXB0ID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVz LCBpLCBpX3ByZXhjZXB0KSk7CiAKIAkJLyoKIAkJICogSWdub3JlIGFueSBlbnRyaWVzIGZvciB3 aGljaCB3ZSBhcmVuJ3QgaW50ZXJlc3RlZCBpbiBlaXRoZXIgdGhlCkBAIC00ODkzLDcgKzQ5MzQs MTEgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGlu Zm9bXSwgaW50IG51bVRhYmxlcykKIAkJCWNvbnRpbnVlOwogCiAJCS8qIE9LLCBtYWtlIGEgRHVt cGFibGVPYmplY3QgZm9yIHRoaXMgcmVsYXRpb25zaGlwICovCi0JCXB1YnJpbmZvW2pdLmRvYmou b2JqVHlwZSA9IERPX1BVQkxJQ0FUSU9OX1JFTDsKKwkJaWYgKHN0cmNtcChwcmV4Y2VwdCwgImYi KSA9PSAwKQorCQkJcHVicmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05fUkVM OworCQllbHNlCisJCQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19QVUJMSUNBVElPTl9F WENFUFRfUkVMOworCiAJCXB1YnJpbmZvW2pdLmRvYmouY2F0SWQudGFibGVvaWQgPQogCQkJYXRv b2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3RhYmxlb2lkKSk7CiAJCXB1YnJpbmZvW2pdLmRvYmou Y2F0SWQub2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29pZCkpOwpAQCAtNDkzNCw2 ICs0OTc5LDkgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZv IHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJLyogRGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0 byBkdW1wIGl0ICovCiAJCXNlbGVjdER1bXBhYmxlUHVibGljYXRpb25PYmplY3QoJihwdWJyaW5m b1tqXS5kb2JqKSwgZm91dCk7CiAKKwkJaWYgKHN0cmNtcChwcmV4Y2VwdCwgInQiKSA9PSAwKQor CQkJc2ltcGxlX3B0cl9saXN0X2FwcGVuZCgmZXhjZXB0aW5mbywgJnB1YnJpbmZvW2pdKTsKKwog CQlqKys7CiAJfQogCkBAIC0xMTgxMiw2ICsxMTg2MCw5IEBAIGR1bXBEdW1wYWJsZU9iamVjdChB cmNoaXZlICpmb3V0LCBEdW1wYWJsZU9iamVjdCAqZG9iaikKIAkJY2FzZSBET19QVUJMSUNBVElP TjoKIAkJCWR1bXBQdWJsaWNhdGlvbihmb3V0LCAoY29uc3QgUHVibGljYXRpb25JbmZvICopIGRv YmopOwogCQkJYnJlYWs7CisJCWNhc2UgRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTDoKKwkJCS8q IHdpbGwgYmUgZHVtcGVkIGluIGR1bXBQdWJsaWNhdGlvbiAqLworCQkJYnJlYWs7CiAJCWNhc2Ug RE9fUFVCTElDQVRJT05fUkVMOgogCQkJZHVtcFB1YmxpY2F0aW9uVGFibGUoZm91dCwgKGNvbnN0 IFB1YmxpY2F0aW9uUmVsSW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFrOwpAQCAtMjAxODIsNiArMjAy MzMsNyBAQCBhZGRCb3VuZGFyeURlcGVuZGVuY2llcyhEdW1wYWJsZU9iamVjdCAqKmRvYmpzLCBp bnQgbnVtT2JqcywKIAkJCWNhc2UgRE9fREVGQVVMVF9BQ0w6CiAJCQljYXNlIERPX1BPTElDWToK IAkJCWNhc2UgRE9fUFVCTElDQVRJT046CisJCQljYXNlIERPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9S RUw6CiAJCQljYXNlIERPX1BVQkxJQ0FUSU9OX1JFTDoKIAkJCWNhc2UgRE9fUFVCTElDQVRJT05f VEFCTEVfSU5fU0NIRU1BOgogCQkJY2FzZSBET19TVUJTQ1JJUFRJT046CmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRl eCA3MmEwMGUxYmMyMC4uNzIzYjU1NzVjNTMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtODEsNiArODEsNyBA QCB0eXBlZGVmIGVudW0KIAlET19SRUZSRVNIX01BVFZJRVcsCiAJRE9fUE9MSUNZLAogCURPX1BV QkxJQ0FUSU9OLAorCURPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUwsCiAJRE9fUFVCTElDQVRJT05f UkVMLAogCURPX1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQSwKIAlET19SRUxfU1RBVFMsCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgYi9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcF9zb3J0LmMKaW5kZXggMTY0Yzc2ZTA4NjQuLmYzYzMwZjNiZTM3IDEwMDY0NAot LS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXBfc29ydC5jCkBAIC05Miw2ICs5Miw3IEBAIGVudW0gZGJPYmplY3RUeXBlUHJpb3Jp dGllcwogCVBSSU9fRktfQ09OU1RSQUlOVCwKIAlQUklPX1BPTElDWSwKIAlQUklPX1BVQkxJQ0FU SU9OLAorCVBSSU9fUFVCTElDQVRJT05fRVhDRVBUX1JFTCwKIAlQUklPX1BVQkxJQ0FUSU9OX1JF TCwKIAlQUklPX1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQSwKIAlQUklPX1NVQlNDUklQVElP TiwKQEAgLTE0Nyw2ICsxNDgsNyBAQCBzdGF0aWMgY29uc3QgaW50IGRiT2JqZWN0VHlwZVByaW9y aXR5W10gPQogCVtET19SRUZSRVNIX01BVFZJRVddID0gUFJJT19SRUZSRVNIX01BVFZJRVcsCiAJ W0RPX1BPTElDWV0gPSBQUklPX1BPTElDWSwKIAlbRE9fUFVCTElDQVRJT05dID0gUFJJT19QVUJM SUNBVElPTiwKKwlbRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTF0gPSBQUklPX1BVQkxJQ0FUSU9O X0VYQ0VQVF9SRUwsCiAJW0RPX1BVQkxJQ0FUSU9OX1JFTF0gPSBQUklPX1BVQkxJQ0FUSU9OX1JF TCwKIAlbRE9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BXSA9IFBSSU9fUFVCTElDQVRJT05f VEFCTEVfSU5fU0NIRU1BLAogCVtET19SRUxfU1RBVFNdID0gUFJJT19TVEFUSVNUSUNTX0RBVEFf REFUQSwKQEAgLTQ0Myw2ICs0NDUsMTcgQEAgRE9UeXBlTmFtZUNvbXBhcmUoY29uc3Qgdm9pZCAq cDEsIGNvbnN0IHZvaWQgKnAyKQogCQlpZiAoY21wdmFsICE9IDApCiAJCQlyZXR1cm4gY21wdmFs OwogCX0KKwllbHNlIGlmIChvYmoxLT5vYmpUeXBlID09IERPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9S RUwpCisJeworCQlQdWJsaWNhdGlvblJlbEluZm8gKnByb2JqMSA9ICooUHVibGljYXRpb25SZWxJ bmZvICpjb25zdCAqKSBwMTsKKwkJUHVibGljYXRpb25SZWxJbmZvICpwcm9iajIgPSAqKFB1Ymxp Y2F0aW9uUmVsSW5mbyAqY29uc3QgKikgcDI7CisKKwkJLyogU29ydCBieSBwdWJsaWNhdGlvbiBu YW1lLCBzaW5jZSAobmFtZXNwYWNlLCBuYW1lKSBtYXRjaCB0aGUgcmVsICovCisJCWNtcHZhbCA9 IHN0cmNtcChwcm9iajEtPnB1YmxpY2F0aW9uLT5kb2JqLm5hbWUsCisJCQkJCQlwcm9iajItPnB1 YmxpY2F0aW9uLT5kb2JqLm5hbWUpOworCQlpZiAoY21wdmFsICE9IDApCisJCQlyZXR1cm4gY21w dmFsOworCX0KIAllbHNlIGlmIChvYmoxLT5vYmpUeXBlID09IERPX1BVQkxJQ0FUSU9OX1RBQkxF X0lOX1NDSEVNQSkKIAl7CiAJCVB1YmxpY2F0aW9uU2NoZW1hSW5mbyAqcHNvYmoxID0gKihQdWJs aWNhdGlvblNjaGVtYUluZm8gKmNvbnN0ICopIHAxOwpAQCAtMTcxNSw2ICsxNzI4LDExIEBAIGRl c2NyaWJlRHVtcGFibGVPYmplY3QoRHVtcGFibGVPYmplY3QgKm9iaiwgY2hhciAqYnVmLCBpbnQg YnVmc2l6ZSkKIAkJCQkJICJQVUJMSUNBVElPTiAoSUQgJWQgT0lEICV1KSIsCiAJCQkJCSBvYmot PmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQpOwogCQkJcmV0dXJuOworCQljYXNlIERPX1BVQkxJQ0FU SU9OX0VYQ0VQVF9SRUw6CisJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCisJCQkJCSAiUFVCTElD QVRJT04gRVhDRVBUIFRBQkxFIChJRCAlZCBPSUQgJXUpIiwKKwkJCQkJIG9iai0+ZHVtcElkLCBv YmotPmNhdElkLm9pZCk7CisJCQlyZXR1cm47CiAJCWNhc2UgRE9fUFVCTElDQVRJT05fUkVMOgog CQkJc25wcmludGYoYnVmLCBidWZzaXplLAogCQkJCQkgIlBVQkxJQ0FUSU9OIFRBQkxFIChJRCAl ZCBPSUQgJXUpIiwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBs IGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggNDQ1YTU0MWFiZjYuLjE1 NjMxOWI4MDM4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAor KysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtMzE3MCw2ICszMTcwLDI2 IEBAIG15ICV0ZXN0cyA9ICgKIAkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9k YXRhID0+IDEsIH0sCiAJfSwKIAorCSdDUkVBVEUgUFVCTElDQVRJT04gcHViOCcgPT4geworCQlj cmVhdGVfb3JkZXIgPT4gNTAsCisJCWNyZWF0ZV9zcWwgPT4KKwkJICAnQ1JFQVRFIFBVQkxJQ0FU SU9OIHB1YjggRk9SIEFMTCBUQUJMRVMgRVhDRVBUIChkdW1wX3Rlc3QudGVzdF90YWJsZSk7JywK KwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjggRk9SIEFMTCBU QUJMRVMgRVhDRVBUIFRBQkxFIChPTkxZIGR1bXBfdGVzdC50ZXN0X3RhYmxlKSBXSVRIIChwdWJs aXNoID0gJ2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJyk7XEUKKwkJCS94bSwKKwkJ bGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJfSwKKwor CSdDUkVBVEUgUFVCTElDQVRJT04gcHViOScgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTAsCisJ CWNyZWF0ZV9zcWwgPT4KKwkJICAnQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjkgRk9SIEFMTCBUQUJM RVMgRVhDRVBUIFRBQkxFIChkdW1wX3Rlc3QudGVzdF90YWJsZSwgZHVtcF90ZXN0LnRlc3Rfc2Vj b25kX3RhYmxlKTsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgUFVCTElDQVRJT04g cHViOSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKE9OTFkgZHVtcF90ZXN0LnRlc3RfdGFi bGUsIE9OTFkgZHVtcF90ZXN0LnRlc3Rfc2Vjb25kX3RhYmxlKSBXSVRIIChwdWJsaXNoID0gJ2lu c2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJyk7XEUKKwkJCS94bSwKKwkJbGlrZSA9PiB7 ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJfSwKKwogCSdDUkVBVEUg U1VCU0NSSVBUSU9OIHN1YjEnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDUwLAogCQljcmVhdGVf c3FsID0+ICdDUkVBVEUgU1VCU0NSSVBUSU9OIHN1YjEKQEAgLTUxNTcsNyArNTE3Nyw3IEBAIGZv cmVhY2ggbXkgJHJ1biAoc29ydCBrZXlzICVwZ2R1bXBfcnVucykKIAkJIwogCQkjIEVpdGhlciAi YWxsX3J1bnMiIHNob3VsZCBiZSBzZXQgb3IgdGhlcmUgc2hvdWxkIGJlIGEgImxpa2UiIGxpc3Qs CiAJCSMgZXZlbiBpZiBpdCBpcyBlbXB0eS4gIChUaGlzIG1ha2VzIHRoZSB0ZXN0IG1vcmUgc2Vs Zi1kb2N1bWVudGluZy4pCi0JCWlmICghZGVmaW5lZCgkdGVzdHN7JHRlc3R9LT57YWxsX3J1bnN9 KQorCQlpZiAoICAgIWRlZmluZWQoJHRlc3RzeyR0ZXN0fS0+e2FsbF9ydW5zfSkKIAkJCSYmICFk ZWZpbmVkKCR0ZXN0c3skdGVzdH0tPntsaWtlfSkpCiAJCXsKIAkJCWRpZSAibWlzc2luZyBcImxp a2VcIiBpbiB0ZXN0IFwiJHRlc3RcIiI7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3Jp YmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDM2ZjI0NTAyODQyLi41MGIxZDQz NTM1OSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMKQEAgLTMwNzMsMTcgKzMwNzMsMzQgQEAgZGVzY3JpYmVPbmVUYWJsZURl dGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJCQkJCQkJICAiICAgICAgICAgIFdIRVJF IGF0dHJlbGlkID0gcHIucHJyZWxpZCBBTkQgYXR0bnVtID0gcHJhdHRyc1tzXSlcbiIKIAkJCQkJ CQkJICAiICAgICAgICBFTFNFIE5VTEwgRU5EKSAiCiAJCQkJCQkJCSAgIkZST00gcGdfY2F0YWxv Zy5wZ19wdWJsaWNhdGlvbiBwXG4iCi0JCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRhbG9nLnBn X3B1YmxpY2F0aW9uX3JlbCBwciBPTiBwLm9pZCA9IHByLnBycHViaWRcbiIKLQkJCQkJCQkJICAi ICAgICBKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgYyBPTiBjLm9pZCA9IHByLnBycmVsaWRcbiIK LQkJCQkJCQkJICAiV0hFUkUgcHIucHJyZWxpZCA9ICclcydcbiIKKwkJCQkJCQkJICAiCQlKT0lO IHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9OIHAub2lkID0gcHIucHJwdWJpZFxu IgorCQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBjIE9OIGMub2lkID0gcHIu cHJyZWxpZFxuIgorCQkJCQkJCQkgICJXSEVSRSBwci5wcnJlbGlkID0gJyVzJ1xuIiwKKwkJCQkJ CQkJICBvaWQsIG9pZCwgb2lkKTsKKworCQkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAwMCkK KwkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIiBBTkQgTk9UIHByLnByZXhjZXB0XG4i KTsKKworCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCiAJCQkJCQkJCSAgIlVOSU9OXG4iCiAJ CQkJCQkJCSAgIlNFTEVDVCBwdWJuYW1lXG4iCi0JCQkJCQkJCSAgIiAgICAgLCBOVUxMXG4iCi0J CQkJCQkJCSAgIiAgICAgLCBOVUxMXG4iCisJCQkJCQkJCSAgIgkJLCBOVUxMXG4iCisJCQkJCQkJ CSAgIgkJLCBOVUxMXG4iCiAJCQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlv biBwXG4iCi0JCQkJCQkJCSAgIldIRVJFIHAucHViYWxsdGFibGVzIEFORCBwZ19jYXRhbG9nLnBn X3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKCclcycpXG4iCi0JCQkJCQkJCSAgIk9SREVSIEJZIDE7 IiwKLQkJCQkJCQkJICBvaWQsIG9pZCwgb2lkLCBvaWQpOworCQkJCQkJCQkgICJXSEVSRSBwLnB1 YmFsbHRhYmxlcyBBTkQgcGdfY2F0YWxvZy5wZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgnJXMn KVxuIiwKKwkJCQkJCQkJICBvaWQpOworCisJCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAw KQorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCQkJICAiICAgICBBTkQgTk9U IEVYSVNUUyAoXG4iCisJCQkJCQkJCQkgICIJCVNFTEVDVCAxXG4iCisJCQkJCQkJCQkgICIJCUZS T00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHJcbiIKKwkJCQkJCQkJCSAgIgkJSk9J TiBwZ19jYXRhbG9nLnBnX2NsYXNzIHBjXG4iCisJCQkJCQkJCQkgICIJCU9OIHByLnBycmVsaWQg PSBwYy5vaWRcbiIKKwkJCQkJCQkJCSAgIgkJV0hFUkUgcHIucHJyZWxpZCA9ICclcycgQU5EIHBy LnBycHViaWQgPSBwLm9pZClcbiIsCisJCQkJCQkJCQkgIG9pZCk7CisKKwkJCQlhcHBlbmRQUUV4 cEJ1ZmZlclN0cigmYnVmLCAiT1JERVIgQlkgMTsiKTsKIAkJCX0KIAkJCWVsc2UKIAkJCXsKQEAg LTY3NTMsOCArNjc3MCwxMiBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0 ZXJuKQogCQkJCQkJCSAgIiAgICAgcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHJcbiIK IAkJCQkJCQkgICJXSEVSRSBjLnJlbG5hbWVzcGFjZSA9IG4ub2lkXG4iCiAJCQkJCQkJICAiICBB TkQgYy5vaWQgPSBwci5wcnJlbGlkXG4iCi0JCQkJCQkJICAiICBBTkQgcHIucHJwdWJpZCA9ICcl cydcbiIKLQkJCQkJCQkgICJPUkRFUiBCWSAxLDIiLCBwdWJpZCk7CisJCQkJCQkJICAiICBBTkQg cHIucHJwdWJpZCA9ICclcydcbiIsIHB1YmlkKTsKKworCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0g MTkwMDAwKQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIgIEFORCBOT1QgcHIucHJleGNl cHRcbiIpOworCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiT1JERVIgQlkgMSwyIik7CiAJ CQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25EZXNjKCZidWYsIF8oIlRhYmxlczoiKSwgZmFs c2UsICZjb250KSkKIAkJCQlnb3RvIGVycm9yX3JldHVybjsKIApAQCAtNjc3Miw2ICs2NzkzLDIz IEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJCQkJCWdvdG8g ZXJyb3JfcmV0dXJuOwogCQkJfQogCQl9CisJCWVsc2UKKwkJeworCQkJaWYgKHBzZXQuc3ZlcnNp b24gPj0gMTkwMDAwKQorCQkJeworCQkJCS8qIEdldCB0aGUgZXhjbHVkZWQgdGFibGVzIGZvciB0 aGUgc3BlY2lmaWVkIHB1YmxpY2F0aW9uICovCisJCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwK KwkJCQkJCQkJICAiU0VMRUNUIGNvbmNhdChjLnJlbG5hbWVzcGFjZTo6cmVnbmFtZXNwYWNlLCAn LicsIGMucmVsbmFtZSlcbiIKKwkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGNc biIKKwkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHBy IE9OIGMub2lkID0gcHIucHJyZWxpZFxuIgorCQkJCQkJCQkgICJXSEVSRSBwci5wcnB1YmlkID0g JyVzJ1xuIgorCQkJCQkJCQkgICIgIEFORCBwci5wcmV4Y2VwdFxuIgorCQkJCQkJCQkgICJPUkRF UiBCWSAxIiwgcHViaWQpOworCQkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRlc2MoJmJ1 ZiwgXygiRXhjZXB0IHRhYmxlczoiKSwKKwkJCQkJCQkJCQkJCXRydWUsICZjb250KSkKKwkJCQkJ Z290byBlcnJvcl9yZXR1cm47CisJCQl9CisJCX0KIAogCQlwcmludFRhYmxlKCZjb250LCBwc2V0 LnF1ZXJ5Rm91dCwgZmFsc2UsIHBzZXQubG9nZmlsZSk7CiAJCXByaW50VGFibGVDbGVhbnVwKCZj b250KTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9i aW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCBkMTYxODFiYzExNS4uYzVjOGU2ZTg1MzQg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTIyOTEsMTEgKzIyOTEsMTYgQEAgbWF0Y2hfcHJl dmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEgoIkFERCIsICJEUk9Q IiwgIk9XTkVSIFRPIiwgIlJFTkFNRSBUTyIsICJSRVNFVCIsICJTRVQiKTsKIAkvKiBBTFRFUiBQ VUJMSUNBVElPTiA8bmFtZT4gQUREICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVC TElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIpKQotCQlDT01QTEVURV9XSVRIKCJUQUJMRVMgSU4g U0NIRU1BIiwgIlRBQkxFIik7CisJCUNPTVBMRVRFX1dJVEgoIkFMTCBUQUJMRVMiLCAiVEFCTEVT IElOIFNDSEVNQSIsICJUQUJMRSIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJ Q0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAiQUxMIiwgIlRBQkxFUyIpKQorCQlDT01QTEVURV9X SVRIKCJFWENFUFQgVEFCTEUiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNB VElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIpKQogCQlDT01QTEVURV9XSVRIX1ND SEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXMpOwotCWVsc2UgaWYgKEhlYWRNYXRj aGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIp ICYmCi0JCQkgZW5kc193aXRoKHByZXZfd2QsICcsJykpCisJZWxzZSBpZiAoTWF0Y2hlcygiQUxU RVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJBTEwiLCAiVEFCTEVTIiwgIkVY Q0VQVCIsICJUQUJMRSIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3Jf bGlzdF9vZl90YWJsZXMpOworCWVsc2UgaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNB VElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIpICYmIGVuZHNfd2l0aChwcmV2X3dk LCAnLCcpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl90 YWJsZXMpOworCWVsc2UgaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1h dGNoQW55LCAiQUREIiwgIkFMTCIsICJUQUJMRVMiLCAiRVhDRVBUIiwgIlRBQkxFIikgJiYgZW5k c193aXRoKHByZXZfd2QsICcsJykpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5 X2Zvcl9saXN0X29mX3RhYmxlcyk7CiAKIAkvKgpAQCAtMzYyMiw2ICszNjI3LDEwIEBAIG1hdGNo X3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFU RSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIkFMTCIpKQogCQlDT01QTEVURV9X SVRIKCJUQUJMRVMiLCAiU0VRVUVOQ0VTIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwg IlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxMIiwgIlRBQkxFUyIpKQorCQlDT01Q TEVURV9XSVRIKCJFWENFUFQgVEFCTEUiLCAiV0lUSCAoIik7CisJZWxzZSBpZiAoTWF0Y2hlcygi Q1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxMIiwgIlRBQkxFUyIs ICJFWENFUFQiKSkKKwkJQ09NUExFVEVfV0lUSCgiVEFCTEUiKTsKKwllbHNlIGlmIChNYXRjaGVz KCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJBTEwiLCAiVEFCTEVT IiwgIkVYQ0VQVCIsICJUQUJMRSIsIE1hdGNoQW55KSAmJiAhZW5kc193aXRoKHByZXZfd2QsICcs JykpCiAJCUNPTVBMRVRFX1dJVEgoIldJVEggKCIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFU RSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFUyIpKQogCQlDT01QTEVU RV9XSVRIKCJJTiBTQ0hFTUEiKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHVibGljYXRpb24uaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaAppbmRl eCA3N2IwYTJmOWViOC4uMGQzOWNiNjc3NzkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHVibGljYXRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0 aW9uLmgKQEAgLTE0NiwxMSArMTQ2LDEyIEBAIHR5cGVkZWYgc3RydWN0IFB1YmxpY2F0aW9uUmVs SW5mbwogCVJlbGF0aW9uCXJlbGF0aW9uOwogCU5vZGUJICAgKndoZXJlQ2xhdXNlOwogCUxpc3QJ ICAgKmNvbHVtbnM7CisJYm9vbAkJZXhjZXB0OwogfSBQdWJsaWNhdGlvblJlbEluZm87CiAKIGV4 dGVybiBQdWJsaWNhdGlvbiAqR2V0UHVibGljYXRpb24oT2lkIHB1YmlkKTsKIGV4dGVybiBQdWJs aWNhdGlvbiAqR2V0UHVibGljYXRpb25CeU5hbWUoY29uc3QgY2hhciAqcHVibmFtZSwgYm9vbCBt aXNzaW5nX29rKTsKLWV4dGVybiBMaXN0ICpHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhPaWQgcmVs aWQpOworZXh0ZXJuIExpc3QgKkdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCwgYm9v bCBleGNlcHRfZmxhZyk7CiAKIC8qIGRlZmF1bHQgdmFsdWVzIGZvciBmbGFncyBhbmQgcHVibGlj YXRpb24gcGFyYW1ldGVycyAqLwogI2RlZmluZSBQVUJfREVGQVVMVF9BQ1RJT05fSU5TRVJUIHRy dWUKQEAgLTE3OCw5ICsxNzksMTAgQEAgdHlwZWRlZiBlbnVtIFB1YmxpY2F0aW9uUGFydE9wdAog CVBVQkxJQ0FUSU9OX1BBUlRfQUxMLAogfSBQdWJsaWNhdGlvblBhcnRPcHQ7CiAKLWV4dGVybiBM aXN0ICpHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9w dCBwdWJfcGFydG9wdCk7CitleHRlcm4gTGlzdCAqR2V0UHVibGljYXRpb25SZWxhdGlvbnMoT2lk IHB1YmlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQsCisJCQkJCQkJCQkgYm9vbCBl eGNlcHRfZmxhZyk7CiBleHRlcm4gTGlzdCAqR2V0QWxsVGFibGVzUHVibGljYXRpb25zKHZvaWQp OwotZXh0ZXJuIExpc3QgKkdldEFsbFB1YmxpY2F0aW9uUmVsYXRpb25zKGNoYXIgcmVsa2luZCwg Ym9vbCBwdWJ2aWFyb290KTsKK2V4dGVybiBMaXN0ICpHZXRBbGxQdWJsaWNhdGlvblJlbGF0aW9u cyhPaWQgcHViaWQsIGNoYXIgcmVsa2luZCwgYm9vbCBwdWJ2aWFyb290KTsKIGV4dGVybiBMaXN0 ICpHZXRQdWJsaWNhdGlvblNjaGVtYXMoT2lkIHB1YmlkKTsKIGV4dGVybiBMaXN0ICpHZXRTY2hl bWFQdWJsaWNhdGlvbnMoT2lkIHNjaGVtYWlkKTsKIGV4dGVybiBMaXN0ICpHZXRTY2hlbWFQdWJs aWNhdGlvblJlbGF0aW9ucyhPaWQgc2NoZW1haWQsCkBAIC0xOTEsNyArMTkzLDcgQEAgZXh0ZXJu IExpc3QgKkdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9ucyhMaXN0ICpyZXN1bHQsCiAJCQkJ CQkJCQkJCVB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCwKIAkJCQkJCQkJCQkJT2lkIHJl bGlkKTsKIGV4dGVybiBPaWQJR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihPaWQgcHVi b2lkLCBMaXN0ICphbmNlc3RvcnMsCi0JCQkJCQkJCQkJCWludCAqYW5jZXN0b3JfbGV2ZWwpOwor CQkJCQkJCQkJCQlpbnQgKmFuY2VzdG9yX2xldmVsLCBib29sIHB1YmFsbHRhYmxlcyk7CiAKIGV4 dGVybiBib29sIGlzX3B1Ymxpc2hhYmxlX3JlbGF0aW9uKFJlbGF0aW9uIHJlbCk7CiBleHRlcm4g Ym9vbCBpc19zY2hlbWFfcHVibGljYXRpb24oT2lkIHB1YmlkKTsKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3B1YmxpY2F0aW9uX3JlbC5oCmluZGV4IDkyY2MzNmRmZGY2Li5lN2Q3ZjNiYTg1YyAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaAorKysgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCkBAIC0zMSw2ICszMSw3IEBA IENBVEFMT0cocGdfcHVibGljYXRpb25fcmVsLDYxMDYsUHVibGljYXRpb25SZWxSZWxhdGlvbklk KQogCU9pZAkJCW9pZDsJCQkvKiBvaWQgKi8KIAlPaWQJCQlwcnB1YmlkIEJLSV9MT09LVVAocGdf cHVibGljYXRpb24pOyAvKiBPaWQgb2YgdGhlIHB1YmxpY2F0aW9uICovCiAJT2lkCQkJcHJyZWxp ZCBCS0lfTE9PS1VQKHBnX2NsYXNzKTsJLyogT2lkIG9mIHRoZSByZWxhdGlvbiAqLworCWJvb2wJ CXByZXhjZXB0IEJLSV9ERUZBVUxUKGYpOwkvKiBleGNsdWRlIHRoZSByZWxhdGlvbiAqLwogCiAj aWZkZWYJQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhl cmUgKi8KIAlwZ19ub2RlX3RyZWUgcHJxdWFsOwkJLyogcXVhbGlmaWNhdGlvbnMgKi8KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oIGIvc3JjL2luY2x1 ZGUvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmgKaW5kZXggZjkwY2YxZWY4OTYuLjBhZDVkMjg3 NTRkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaAor KysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaApAQCAtMzIsMTAgKzMy LDExIEBAIGV4dGVybiBPYmplY3RBZGRyZXNzIEFsdGVyUHVibGljYXRpb25Pd25lcihjb25zdCBj aGFyICpuYW1lLCBPaWQgbmV3T3duZXJJZCk7CiBleHRlcm4gdm9pZCBBbHRlclB1YmxpY2F0aW9u T3duZXJfb2lkKE9pZCBwdWJpZCwgT2lkIG5ld093bmVySWQpOwogZXh0ZXJuIHZvaWQgSW52YWxp ZGF0ZVB1YmxpY2F0aW9uUmVscyhMaXN0ICpyZWxpZHMpOwogZXh0ZXJuIGJvb2wgcHViX3JmX2Nv bnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sCi0JCQkJ CQkJCQkJICAgTGlzdCAqYW5jZXN0b3JzLCBib29sIHB1YnZpYXJvb3QpOworCQkJCQkJCQkJCSAg IExpc3QgKmFuY2VzdG9ycywgYm9vbCBwdWJ2aWFyb290LAorCQkJCQkJCQkJCSAgIGJvb2wgcHVi YWxsdGFibGVzKTsKIGV4dGVybiBib29sIHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQg cHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLAogCQkJCQkJCQkJCUxpc3QgKmFuY2VzdG9ycywgYm9v bCBwdWJ2aWFyb290LAotCQkJCQkJCQkJCWNoYXIgcHViZ2VuY29sc190eXBlLAorCQkJCQkJCQkJ CWNoYXIgcHViZ2VuY29sc190eXBlLCBib29sIHB1YmFsbHRhYmxlcywKIAkJCQkJCQkJCQlib29s ICppbnZhbGlkX2NvbHVtbl9saXN0LAogCQkJCQkJCQkJCWJvb2wgKmludmFsaWRfZ2VuX2NvbCk7 CiBleHRlcm4gdm9pZCBJbnZhbGlkYXRlUHViUmVsU3luY0NhY2hlKE9pZCBwdWJpZCwgYm9vbCBw dWJhbGx0YWJsZXMpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o IGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDhjZjc1NzI0YTdiLi5hMTRl Y2VkYjI3ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBi L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDI3MSw2ICs0MjcxLDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25UYWJsZQogCVJhbmdlVmFyICAgKnJlbGF0aW9uOwkJLyog cmVsYXRpb24gdG8gYmUgcHVibGlzaGVkICovCiAJTm9kZQkgICAqd2hlcmVDbGF1c2U7CS8qIHF1 YWxpZmljYXRpb25zICovCiAJTGlzdAkgICAqY29sdW1uczsJCS8qIExpc3Qgb2YgY29sdW1ucyBp biBhIHB1YmxpY2F0aW9uIHRhYmxlICovCisJYm9vbAkJZXhjZXB0OwkJCS8qIGV4Y2x1ZGUgdGhl IHJlbGF0aW9uICovCiB9IFB1YmxpY2F0aW9uVGFibGU7CiAKIC8qCkBAIC00Mjc5LDYgKzQyODAs NyBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvblRhYmxlCiB0eXBlZGVmIGVudW0gUHVibGlj YXRpb25PYmpTcGVjVHlwZQogewogCVBVQkxJQ0FUSU9OT0JKX1RBQkxFLAkJLyogQSB0YWJsZSAq LworCVBVQkxJQ0FUSU9OT0JKX0VYQ0VQVF9UQUJMRSwJLyogQSB0YWJsZSB0byBiZSBleGNsdWRl ZCAqLwogCVBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9TQ0hFTUEsCS8qIEFsbCB0YWJsZXMgaW4g c2NoZW1hICovCiAJUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX0NVUl9TQ0hFTUEsCS8qIEFsbCB0 YWJsZXMgaW4gZmlyc3QgZWxlbWVudCBvZgogCQkJCQkJCQkJCQkgKiBzZWFyY2hfcGF0aCAqLwpA QCAtNDMwNyw2ICs0MzA5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25BbGxPYmpTcGVj CiB7CiAJTm9kZVRhZwkJdHlwZTsKIAlQdWJsaWNhdGlvbkFsbE9ialR5cGUgcHVib2JqdHlwZTsJ LyogdHlwZSBvZiB0aGlzIHB1YmxpY2F0aW9uIG9iamVjdCAqLworCUxpc3QJICAgKmV4Y2VwdF9v YmplY3RzOyAvKiBMaXN0IG9mIHB1YmxpY2F0aW9uIG9iamVjdCB0byBiZSBleGNsdWRlZCAqLwog CVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24g Ki8KIH0gUHVibGljYXRpb25BbGxPYmpTcGVjOwogCkBAIC00MzQyLDYgKzQzNDUsNyBAQCB0eXBl ZGVmIHN0cnVjdCBBbHRlclB1YmxpY2F0aW9uU3RtdAogCSAqIG9iamVjdHMuCiAJICovCiAJTGlz dAkgICAqcHVib2JqZWN0czsJCS8qIE9wdGlvbmFsIGxpc3Qgb2YgcHVibGljYXRpb24gb2JqZWN0 cyAqLworCWJvb2wJCWZvcl9hbGxfdGFibGVzOyAvKiBTcGVjaWFsIHB1YmxpY2F0aW9uIGZvciBh bGwgdGFibGVzIGluIGRiICovCiAJQWx0ZXJQdWJsaWNhdGlvbkFjdGlvbiBhY3Rpb247CS8qIFdo YXQgYWN0aW9uIHRvIHBlcmZvcm0gd2l0aCB0aGUgZ2l2ZW4KIAkJCQkJCQkJCSAqIG9iamVjdHMg Ki8KIH0gQWx0ZXJQdWJsaWNhdGlvblN0bXQ7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVi bGljYXRpb24ub3V0CmluZGV4IGUzYmUyOWUzNzhkLi41NWNjN2Q1ZWU3MSAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTIxMywxMyArMjEzLDM3IEBAIE5v dC1udWxsIGNvbnN0cmFpbnRzOgogIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAg ICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAgICAg ICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCiAoMSByb3cpCiAKK1NFVCBjbGllbnRfbWluX21l c3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxl c19leGNlcHR0YWJsZSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKHRlc3RwdWJfdGJsMSwg dGVzdHB1Yl90YmwyKTsKKy0tIHNwZWNpZnkgRVhDRVBUIHdpdGhvdXQgVEFCTEUKK0NSRUFURSBQ VUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEgRk9SIEFMTCBUQUJM RVMgRVhDRVBUICh0ZXN0cHViX3RibDEpOworUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKK1xk UnArIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19l eGNlcHR0YWJsZQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwg c2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2Vu ZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKK0V4Y2Vw dCB0YWJsZXM6CisgICAgInB1YmxpYy50ZXN0cHViX3RibDEiCisgICAgInB1YmxpYy50ZXN0cHVi X3RibDIiCisKK1xkUnArIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2Zv cmFsbHRhYmxlc19leGNlcHR0YWJsZTEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwg dGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRy dW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQor IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAg ICAgfCBmCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJsaWMudGVzdHB1Yl90YmwxIgorCiBEUk9Q IFRBQkxFIHRlc3RwdWJfdGJsMjsKLURST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJs ZXMsIHRlc3RwdWJfZm9ydGFibGUsIHRlc3RwdWJfZm9yc2NoZW1hLCB0ZXN0cHViX2Zvcl90Ymxf c2NoZW1hOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcywgdGVzdHB1Yl9m b3J0YWJsZSwgdGVzdHB1Yl9mb3JzY2hlbWEsIHRlc3RwdWJfZm9yX3RibF9zY2hlbWEsIHRlc3Rw dWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0 YWJsZTE7CiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzIChhIGludCk7CiBDUkVBVEUgVEFCTEUg dGVzdHB1Yl90YmwzYSAoYiB0ZXh0KSBJTkhFUklUUyAodGVzdHB1Yl90YmwzKTsKIFNFVCBjbGll bnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViMyBG T1IgVEFCTEUgdGVzdHB1Yl90YmwzOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI0IEZPUiBU QUJMRSBPTkxZIHRlc3RwdWJfdGJsMzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNSBGT1Ig QUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKHRlc3RwdWJfdGJsMyk7CitDUkVBVEUgUFVCTElDQVRJ T04gdGVzdHB1YjYgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIChPTkxZIHRlc3RwdWJfdGJs Myk7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogXGRScCsgdGVzdHB1YjMKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9u IHRlc3RwdWIzCkBAIC0yMzgsOCArMjYyLDI1IEBAIFRhYmxlczoKIFRhYmxlczoKICAgICAicHVi bGljLnRlc3RwdWJfdGJsMyIKIAorXGRScCsgdGVzdHB1YjUKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWI1Cisg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJ bnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1u cyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIg fCB0ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorRXhjZXB0IHRhYmxlczoKKyAg ICAicHVibGljLnRlc3RwdWJfdGJsMyIKKyAgICAicHVibGljLnRlc3RwdWJfdGJsM2EiCisKK1xk UnArIHRlc3RwdWI2CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViNgorICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxl dGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAg ICAgICAgICAgICB8IGYKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1YmxpYy50ZXN0cHViX3RibDMi CisKIERST1AgVEFCTEUgdGVzdHB1Yl90YmwzLCB0ZXN0cHViX3RibDNhOwotRFJPUCBQVUJMSUNB VElPTiB0ZXN0cHViMywgdGVzdHB1YjQ7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWIzLCB0ZXN0 cHViNCwgdGVzdHB1YjUsIHRlc3RwdWI2OwogLS0tIFRlc3RzIGZvciBwdWJsaWNhdGlvbnMgd2l0 aCBTRVFVRU5DRVMKIENSRUFURSBTRVFVRU5DRSByZWdyZXNzX3B1Yl9zZXEwOwogQ1JFQVRFIFNF UVVFTkNFIHB1Yl90ZXN0LnJlZ3Jlc3NfcHViX3NlcTE7CkBAIC0yMDEyLDYgKzIwNTMsNyBAQCBE Uk9QIFRBQkxFIGdlbmNvbHM7CiAtLSBUZXN0cyBmb3IgQUxURVIgUFVCTElDQVRJT04gLi4uIFJF U0VUCiBDUkVBVEUgU0NIRU1BIHB1Yl9zY2gxOwogQ1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnRibDEg KGEgaW50KTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwyIChhIGludCk7CiBTRVQgY2xpZW50 X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBGT1IgQUxMIFRBQkxFUzsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CkBAIC0yMDIwLDgg KzIwNjIsMTggQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBPV05FUiBUTyByZWdy ZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwogU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2Vy MjsKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7IC0tIGZhaWwgLSBtdXN0 IGJlIHN1cGVydXNlcgogRVJST1I6ICBtdXN0IGJlIHN1cGVydXNlciB0byBSRVNFVCBwdWJsaWNh dGlvbgorLS0gVmVyaWZ5IHRoYXQgb25seSBzdXBlcnVzZXIgY2FuIEFERCBBTEwgVEFCTEVTCitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTOworRVJST1I6ICBh ZGRpbmcgQUxMIFRBQkxFUyByZXF1aXJlcyB0aGUgcHVibGljYXRpb24gdG8gaGF2ZSBkZWZhdWx0 IHB1YmxpY2F0aW9uIHBhcmFtZXRlciB2YWx1ZXMKK0RFVEFJTDogIEFMTCBUQUJMRVMgZmxhZyBz aG91bGQgbm90IGJlIHNldCBhbmQgbm8gdGFibGVzL3NjaGVtYXMgc2hvdWxkIGJlIGFzc29jaWF0 ZWQuCitISU5UOiAgVXNlIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0aGUg cHVibGljYXRpb24KIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgT1dORVIgVE8gcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyOwogU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2Vy OworLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB0byAnRk9SIEFMTCBUQUJMRVMnIHB1YmxpY2F0 aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQ VCBUQUJMRSAocHViX3NjaDEudGJsMSk7CitFUlJPUjogIGFkZGluZyBBTEwgVEFCTEVTIHJlcXVp cmVzIHRoZSBwdWJsaWNhdGlvbiB0byBoYXZlIGRlZmF1bHQgcHVibGljYXRpb24gcGFyYW1ldGVy IHZhbHVlcworREVUQUlMOiAgQUxMIFRBQkxFUyBmbGFnIHNob3VsZCBub3QgYmUgc2V0IGFuZCBu byB0YWJsZXMvc2NoZW1hcyBzaG91bGQgYmUgYXNzb2NpYXRlZC4KK0hJTlQ6ICBVc2UgQUxURVIg UFVCTElDQVRJT04gLi4uIFJFU0VUIHRvIHJlc2V0IHRoZSBwdWJsaWNhdGlvbgogLS0gVmVyaWZ5 IHRoYXQgJ0FMTCBUQUJMRVMnIGZsYWcgaXMgcmVzZXQKIFxkUnArIHRlc3RwdWJfcmVzZXQKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0 aW9uIHRlc3RwdWJfcmVzZXQKQEAgLTIwMzgsOCArMjA5MCwyNSBAQCBBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCiAoMSByb3cpCiAKLS0tIFZlcmlmeSB0aGF0 IGFzc29jaWF0ZWQgdGFibGVzIGFyZSByZW1vdmVkIGZyb20gdGhlIHB1YmxpY2F0aW9uIGFmdGVy IFJFU0VUCistLSBTaG91bGQgd29yayBub3cgYWZ0ZXIgcmVzZXR0aW5nIHRoZSBwdWJsaWNhdGlv bgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQg VEFCTEUgKHB1Yl9zY2gxLnRibDEsIHB1Yl9zY2gxLnRibDIpOworXGRScCsgdGVzdHB1Yl9yZXNl dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVi bGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0 YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1 bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAg ICB8IGYKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1Yl9zY2gxLnRibDEiCisgICAgInB1Yl9zY2gx LnRibDIiCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CistLSBDYW4n dCBhZGQgRVhDRVBUIFRBQkxFIHRvICdGT1IgVEFCTEUnIHB1YmxpY2F0aW9uCiBBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRSBwdWJfc2NoMS50YmwxOworQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKHB1Yl9z Y2gxLnRibDEpOworRVJST1I6ICBhZGRpbmcgQUxMIFRBQkxFUyByZXF1aXJlcyB0aGUgcHVibGlj YXRpb24gdG8gaGF2ZSBkZWZhdWx0IHB1YmxpY2F0aW9uIHBhcmFtZXRlciB2YWx1ZXMKK0RFVEFJ TDogIEFMTCBUQUJMRVMgZmxhZyBzaG91bGQgbm90IGJlIHNldCBhbmQgbm8gdGFibGVzL3NjaGVt YXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuCitISU5UOiAgVXNlIEFMVEVSIFBVQkxJQ0FUSU9OIC4u LiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24KKy0tIFZlcmlmeSB0aGF0IGFzc29jaWF0 ZWQgdGFibGVzIGFyZSByZW1vdmVkIGZyb20gdGhlIHB1YmxpY2F0aW9uIGFmdGVyIFJFU0VUCiBc ZFJwKyB0ZXN0cHViX3Jlc2V0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CiAgICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRl cyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IApA QCAtMjA1Niw4ICsyMTI1LDEzIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVT RVQ7CiAgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAg ICAgICAgICB8IGYKICgxIHJvdykKIAotLS0gVmVyaWZ5IHRoYXQgYXNzb2NpYXRlZCBzY2hlbWFz IGFyZSByZW1vdmVkIGZyb20gdGhlIHB1YmxpY2F0aW9uIGFmdGVyIFJFU0VUCistLSBDYW4ndCBh ZGQgRVhDRVBUIFRBQkxFIHRvICdGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEnIHB1YmxpY2F0aW9u CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1 YmxpYzsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhD RVBUIFRBQkxFIChwdWJfc2NoMS50YmwxKTsKK0VSUk9SOiAgYWRkaW5nIEFMTCBUQUJMRVMgcmVx dWlyZXMgdGhlIHB1YmxpY2F0aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0 ZXIgdmFsdWVzCitERVRBSUw6ICBBTEwgVEFCTEVTIGZsYWcgc2hvdWxkIG5vdCBiZSBzZXQgYW5k IG5vIHRhYmxlcy9zY2hlbWFzIHNob3VsZCBiZSBhc3NvY2lhdGVkLgorSElOVDogIFVzZSBBTFRF UiBQVUJMSUNBVElPTiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uCistLSBWZXJp ZnkgdGhhdCBhc3NvY2lhdGVkIHNjaGVtYXMgYXJlIHJlbW92ZWQgZnJvbSB0aGUgcHVibGljYXRp b24gYWZ0ZXIgUkVTRVQKIFxkUnArIHRlc3RwdWJfcmVzZXQKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQK ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8 IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1 bW5zIHwgVmlhIHJvb3QgCkBAIC0yMDc0LDggKzIxNDgsMTQgQEAgQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldCBSRVNFVDsKICByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgogKDEgcm93KQogCi0tLSBWZXJpZnkgdGhhdCAn UFVCTElTSCcgcGFyYW1ldGVyIGlzIHJlc2V0CistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHdo ZW4gdGhlICdQVUJMSVNIJyBwYXJhbWV0ZXIgZG9lcyBub3QgaGF2ZSBkZWZhdWx0CistLSB2YWx1 ZQogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJU0ggPSAnJyk7CitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJM RSAocHViX3NjaDEudGJsMSk7CitFUlJPUjogIGFkZGluZyBBTEwgVEFCTEVTIHJlcXVpcmVzIHRo ZSBwdWJsaWNhdGlvbiB0byBoYXZlIGRlZmF1bHQgcHVibGljYXRpb24gcGFyYW1ldGVyIHZhbHVl cworREVUQUlMOiAgQUxMIFRBQkxFUyBmbGFnIHNob3VsZCBub3QgYmUgc2V0IGFuZCBubyB0YWJs ZXMvc2NoZW1hcyBzaG91bGQgYmUgYXNzb2NpYXRlZC4KK0hJTlQ6ICBVc2UgQUxURVIgUFVCTElD QVRJT04gLi4uIFJFU0VUIHRvIHJlc2V0IHRoZSBwdWJsaWNhdGlvbgorLS0gVmVyaWZ5IHRoYXQg J1BVQkxJU0gnIHBhcmFtZXRlciBpcyByZXNldAogXGRScCsgdGVzdHB1Yl9yZXNldAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24g dGVzdHB1Yl9yZXNldAogICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBB bGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwg R2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKQEAgLTIwOTEsOCArMjE3MSwxNCBAQCBBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogIHJlZ3Jlc3NfcHVibGljYXRpb25f dXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCiAoMSByb3cpCiAKLS0t IFZlcmlmeSB0aGF0ICdQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCcgcGFyYW1ldGVyIGlzIHJl c2V0CistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHdoZW4gJ1BVQkxJU0hfVklBX1BBUlRJVElP Tl9ST09UJyBwYXJhbWV0ZXIgZG9lcyBub3QKKy0tIGhhdmUgZGVmYXVsdCB2YWx1ZQogQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJU0hfVklBX1BBUlRJVElPTl9ST09U ID0gJ3RydWUnKTsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJM RVMgRVhDRVBUIFRBQkxFIChwdWJfc2NoMS50YmwxKTsKK0VSUk9SOiAgYWRkaW5nIEFMTCBUQUJM RVMgcmVxdWlyZXMgdGhlIHB1YmxpY2F0aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJsaWNhdGlvbiBw YXJhbWV0ZXIgdmFsdWVzCitERVRBSUw6ICBBTEwgVEFCTEVTIGZsYWcgc2hvdWxkIG5vdCBiZSBz ZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFzIHNob3VsZCBiZSBhc3NvY2lhdGVkLgorSElOVDogIFVz ZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uCist LSBWZXJpZnkgdGhhdCAnUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QnIHBhcmFtZXRlciBpcyBy ZXNldAogXGRScCsgdGVzdHB1Yl9yZXNldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAogICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8 IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEg cm9vdCAKQEAgLTIxMjcsNiArMjIxMyw3IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVz ZXQgUkVTRVQ7CiAKIERST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldDsKIERST1AgVEFCTEUg cHViX3NjaDEudGJsMTsKK0RST1AgVEFCTEUgcHViX3NjaDEudGJsMjsKIERST1AgU0NIRU1BIHB1 Yl9zY2gxOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIC0tIFRlc3QgdGhhdCB0aGUgSU5T RVJUIE9OIENPTkZMSUNUIGNvbW1hbmQgY29ycmVjdGx5IGNoZWNrcyBSRVBMSUNBIElERU5USVRZ CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKaW5kZXggODRkZWFhZjVhMWYuLmQzYzAz ZjU0Mjc4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCkBAIC0xMDUsMjAgKzEw NSwzMyBAQCBTRUxFQ1QgcHVibmFtZSwgcHViYWxsdGFibGVzIEZST00gcGdfcHVibGljYXRpb24g V0hFUkUgcHVibmFtZSA9ICd0ZXN0cHViX2ZvcmFsbAogXGQrIHRlc3RwdWJfdGJsMgogXGRScCsg dGVzdHB1Yl9mb3JhbGx0YWJsZXMKIAorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1In OworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlIEZP UiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAodGVzdHB1Yl90YmwxLCB0ZXN0cHViX3RibDIpOwor LS0gc3BlY2lmeSBFWENFUFQgd2l0aG91dCBUQUJMRQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgKHRlc3Rw dWJfdGJsMSk7CitSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOworCitcZFJwKyB0ZXN0cHViX2Zv cmFsbHRhYmxlc19leGNlcHR0YWJsZQorXGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0 dGFibGUxCisKIERST1AgVEFCTEUgdGVzdHB1Yl90YmwyOwotRFJPUCBQVUJMSUNBVElPTiB0ZXN0 cHViX2ZvcmFsbHRhYmxlcywgdGVzdHB1Yl9mb3J0YWJsZSwgdGVzdHB1Yl9mb3JzY2hlbWEsIHRl c3RwdWJfZm9yX3RibF9zY2hlbWE7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFi bGVzLCB0ZXN0cHViX2ZvcnRhYmxlLCB0ZXN0cHViX2ZvcnNjaGVtYSwgdGVzdHB1Yl9mb3JfdGJs X3NjaGVtYSwgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUsIHRlc3RwdWJfZm9yYWxs dGFibGVzX2V4Y2VwdHRhYmxlMTsKIAogQ1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJsMyAoYSBpbnQp OwogQ1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJsM2EgKGIgdGV4dCkgSU5IRVJJVFMgKHRlc3RwdWJf dGJsMyk7CiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1YjMgRk9SIFRBQkxFIHRlc3RwdWJfdGJsMzsKIENSRUFURSBQVUJMSUNBVElP TiB0ZXN0cHViNCBGT1IgVEFCTEUgT05MWSB0ZXN0cHViX3RibDM7CitDUkVBVEUgUFVCTElDQVRJ T04gdGVzdHB1YjUgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFICh0ZXN0cHViX3RibDMpOwor Q1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI2IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAo T05MWSB0ZXN0cHViX3RibDMpOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIFxkUnArIHRl c3RwdWIzCiBcZFJwKyB0ZXN0cHViNAorXGRScCsgdGVzdHB1YjUKK1xkUnArIHRlc3RwdWI2CiAK IERST1AgVEFCTEUgdGVzdHB1Yl90YmwzLCB0ZXN0cHViX3RibDNhOwotRFJPUCBQVUJMSUNBVElP TiB0ZXN0cHViMywgdGVzdHB1YjQ7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWIzLCB0ZXN0cHVi NCwgdGVzdHB1YjUsIHRlc3RwdWI2OwogCiAtLS0gVGVzdHMgZm9yIHB1YmxpY2F0aW9ucyB3aXRo IFNFUVVFTkNFUwogQ1JFQVRFIFNFUVVFTkNFIHJlZ3Jlc3NfcHViX3NlcTA7CkBAIC0xMjcxLDYg KzEyODQsNyBAQCBEUk9QIFRBQkxFIGdlbmNvbHM7CiAtLSBUZXN0cyBmb3IgQUxURVIgUFVCTElD QVRJT04gLi4uIFJFU0VUCiBDUkVBVEUgU0NIRU1BIHB1Yl9zY2gxOwogQ1JFQVRFIFRBQkxFIHB1 Yl9zY2gxLnRibDEgKGEgaW50KTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwyIChhIGludCk7 CiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldCBGT1IgQUxMIFRBQkxFUzsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7 CkBAIC0xMjc5LDM0ICsxMjkzLDU5IEBAIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25f dXNlcjI7CiBTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwogQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1c2VyCisK Ky0tIFZlcmlmeSB0aGF0IG9ubHkgc3VwZXJ1c2VyIGNhbiBBREQgQUxMIFRBQkxFUworQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUzsKIEFMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfcmVzZXQgT1dORVIgVE8gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyOwogU0VU IFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyOwogCistLSBDYW4ndCBhZGQgRVhDRVBUIFRB QkxFIHRvICdGT1IgQUxMIFRBQkxFUycgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIChwdWJfc2NoMS50YmwxKTsK KwogLS0gVmVyaWZ5IHRoYXQgJ0FMTCBUQUJMRVMnIGZsYWcgaXMgcmVzZXQKIFxkUnArIHRlc3Rw dWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiBcZFJwKyB0 ZXN0cHViX3Jlc2V0CiAKLS0tIFZlcmlmeSB0aGF0IGFzc29jaWF0ZWQgdGFibGVzIGFyZSByZW1v dmVkIGZyb20gdGhlIHB1YmxpY2F0aW9uIGFmdGVyIFJFU0VUCistLSBTaG91bGQgd29yayBub3cg YWZ0ZXIgcmVzZXR0aW5nIHRoZSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKHB1Yl9zY2gxLnRibDEsIHB1Yl9z Y2gxLnRibDIpOworXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBSRVNFVDsKKworLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB0byAnRk9SIFRBQkxF JyBwdWJsaWNhdGlvbgogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEUg cHViX3NjaDEudGJsMTsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBU QUJMRVMgRVhDRVBUIFRBQkxFIChwdWJfc2NoMS50YmwxKTsKKworLS0gVmVyaWZ5IHRoYXQgYXNz b2NpYXRlZCB0YWJsZXMgYXJlIHJlbW92ZWQgZnJvbSB0aGUgcHVibGljYXRpb24gYWZ0ZXIgUkVT RVQKIFxkUnArIHRlc3RwdWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg UkVTRVQ7CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiAKLS0tIFZlcmlmeSB0aGF0IGFzc29jaWF0ZWQg c2NoZW1hcyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbiBhZnRlciBSRVNFVAorLS0g Q2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB0byAnRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BJyBwdWJs aWNhdGlvbgogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEVTIElOIFND SEVNQSBwdWJsaWM7CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFC TEVTIEVYQ0VQVCBUQUJMRSAocHViX3NjaDEudGJsMSk7CisKKy0tIFZlcmlmeSB0aGF0IGFzc29j aWF0ZWQgc2NoZW1hcyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbiBhZnRlciBSRVNF VAogXGRScCsgdGVzdHB1Yl9yZXNldAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBS RVNFVDsKIFxkUnArIHRlc3RwdWJfcmVzZXQKIAotLS0gVmVyaWZ5IHRoYXQgJ1BVQkxJU0gnIHBh cmFtZXRlciBpcyByZXNldAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB3aGVuIHRoZSAnUFVC TElTSCcgcGFyYW1ldGVyIGRvZXMgbm90IGhhdmUgZGVmYXVsdAorLS0gdmFsdWUKIEFMVEVSIFBV QkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIID0gJycpOworQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKHB1Yl9zY2gx LnRibDEpOworCistLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcgcGFyYW1ldGVyIGlzIHJlc2V0CiBc ZFJwKyB0ZXN0cHViX3Jlc2V0CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VU OwogXGRScCsgdGVzdHB1Yl9yZXNldAogCi0tLSBWZXJpZnkgdGhhdCAnUFVCTElTSF9WSUFfUEFS VElUSU9OX1JPT1QnIHBhcmFtZXRlciBpcyByZXNldAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJM RSB3aGVuICdQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCcgcGFyYW1ldGVyIGRvZXMgbm90Cist LSBoYXZlIGRlZmF1bHQgdmFsdWUKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VU IChQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCA9ICd0cnVlJyk7CitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAocHViX3NjaDEudGJs MSk7CisKKy0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCcgcGFyYW1l dGVyIGlzIHJlc2V0CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IFJFU0VUOwogXGRScCsgdGVzdHB1Yl9yZXNldApAQCAtMTMxOSw2ICsxMzU4LDcg QEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKIAogRFJPUCBQVUJMSUNB VElPTiB0ZXN0cHViX3Jlc2V0OwogRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwxOworRFJPUCBUQUJM RSBwdWJfc2NoMS50YmwyOwogRFJPUCBTQ0hFTUEgcHViX3NjaDE7CiAKIFJFU0VUIGNsaWVudF9t aW5fbWVzc2FnZXM7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVp bGQgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQKaW5kZXggODVkMTBhODk5OTQu LmI4ZTVjNTRjMzE0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVp bGQKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCkBAIC00Niw2ICs0Niw3 IEBAIHRlc3RzICs9IHsKICAgICAgICd0LzAzNF90ZW1wb3JhbC5wbCcsCiAgICAgICAndC8wMzVf Y29uZmxpY3RzLnBsJywKICAgICAgICd0LzAzNl9zZXF1ZW5jZXMucGwnLAorICAgICAgJ3QvMDM3 X3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbCcsCiAgICAgICAndC8xMDBfYnVncy5wbCcsCiAg ICAgXSwKICAgfSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19yZXBf Y2hhbmdlc19leGNlcHRfdGFibGUucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfcmVw X2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi4wOTZlMDYwNjM2NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlw dGlvbi90LzAzN19yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwKQEAgLTAsMCArMSwxODYgQEAK KworIyBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1l bnQgR3JvdXAKKworIyBMb2dpY2FsIHJlcGxpY2F0aW9uIHRlc3RzIGZvciBleGNlcHQgdGFibGUg cHVibGljYXRpb25zCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6 OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6 TW9yZTsKKworIyBJbml0aWFsaXplIHB1Ymxpc2hlciBub2RlCitteSAkbm9kZV9wdWJsaXNoZXIg PSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3B1Ymxpc2hlcicpOworJG5vZGVfcHVi bGlzaGVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRub2RlX3B1Ymxp c2hlci0+c3RhcnQ7CisKKyMgQ3JlYXRlIHN1YnNjcmliZXIgbm9kZQorbXkgJG5vZGVfc3Vic2Ny aWJlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJlcicpOworJG5v ZGVfc3Vic2NyaWJlci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2FsJyk7Ciskbm9k ZV9zdWJzY3JpYmVyLT5zdGFydDsKKworIyBUZXN0IHJlcGxpY2F0aW9uIHdpdGggcHVibGljYXRp b25zIGNyZWF0ZWQgdXNpbmcgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFCisjIGNsYXVzZS4K KyMgQ3JlYXRlIHNjaGVtYXMgYW5kIHRhYmxlcyBvbiBwdWJsaXNoZXIKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUNSRUFURSBTQ0hFTUEgc2NoMTsKKwlD UkVBVEUgVEFCTEUgc2NoMS50YWIxIEFTIFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgQVMg YTsKKwlDUkVBVEUgVEFCTEUgcHVibGljLnRhYjEoYSBpbnQpOworKSk7CisKKyMgQ3JlYXRlIHNj aGVtYXMgYW5kIHRhYmxlcyBvbiBzdWJzY3JpYmVyCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3Bz cWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQ1JFQVRFIFNDSEVNQSBzY2gxOworCUNSRUFURSBUQUJM RSBzY2gxLnRhYjEgKGEgaW50KTsKKwlDUkVBVEUgVEFCTEUgcHVibGljLnRhYjEgKGEgaW50KTsK KykpOworCisjIFNldHVwIGxvZ2ljYWwgcmVwbGljYXRpb24KK215ICRwdWJsaXNoZXJfY29ubnN0 ciA9ICRub2RlX3B1Ymxpc2hlci0+Y29ubnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKKyRub2Rl X3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBQVUJMSUNBVElPTiB0 YXBfcHViX3NjaGVtYSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKHNjaDEudGFiMSkiCisp OworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNV QlNDUklQVElPTiB0YXBfc3ViX3NjaGVtYSBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHIn IFBVQkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1hIgorKTsKKworIyBXYWl0IGZvciBpbml0aWFsIHRh YmxlIHN5bmMgdG8gZmluaXNoCiskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRp b25fc3luYygkbm9kZV9wdWJsaXNoZXIsCisJJ3RhcF9zdWJfc2NoZW1hJyk7CisKKyMgQ2hlY2sg dGhlIHRhYmxlIGRhdGEgZG9lcyBub3Qgc3luYyBmb3IgZXhjbHVkZWQgdGFibGUKK215ICRyZXN1 bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNv dW50KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHNjaDEudGFiMSIpOworaXMoJHJlc3VsdCwgcXEo MHx8KSwKKwknY2hlY2sgdGhlcmUgaXMgbm8gaW5pdGlhbCBkYXRhIGNvcGllZCBmb3IgdGhlIGV4 Y2x1ZGVkIHRhYmxlJyk7CisKKyMgSW5zZXJ0IHNvbWUgZGF0YSBhbmQgdmVyaWZ5IHRoYXQgaW5z ZXJ0ZWQgZGF0YSBpcyBub3QgcmVwbGljYXRlZAorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gc2NoMS50YWIxIFZBTFVFUyhnZW5lcmF0ZV9zZXJp ZXMoMTEsMjApKSIpOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9z dWJfc2NoZW1hJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHNjaDEudGFi MSIpOworaXMoJHJlc3VsdCwgcXEoMHx8KSwgJ2NoZWNrIHJlcGxpY2F0ZWQgaW5zZXJ0cyBvbiBz dWJzY3JpYmVyJyk7CisKKyMgQWx0ZXIgcHVibGljYXRpb24gdG8gZXhjbHVkZSBkYXRhIGNoYW5n ZXMgaW4gcHVibGljLnRhYjEgYW5kIHZlcmlmeSB0aGF0CisjIHN1YnNjcmliZXIgZG9lcyBub3Qg Z2V0IHRoZSBjaGFuZ2VkIGRhdGEgZm9yIHRoaXMgdGFibGUuCiskbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX3Nj aGVtYSBSRVNFVDsKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX3NjaGVtYSBBREQgQUxMIFRB QkxFUyBFWENFUFQgVEFCTEUgKHNjaDEudGFiMSwgcHVibGljLnRhYjEpOworCUlOU0VSVCBJTlRP IHB1YmxpYy50YWIxIFZBTFVFUyhnZW5lcmF0ZV9zZXJpZXMoMSwxMCkpOworKSk7Ciskbm9kZV9w dWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfc2NoZW1hJyk7CisKKyRyZXN1bHQg PSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50 KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHB1YmxpYy50YWIxIik7CitpcygkcmVzdWx0LCBxcSgw fHwpLCAnY2hlY2sgcm93cyBvbiBzdWJzY3JpYmVyIGNhdGNodXAnKTsKKworIyBjbGVhbnVwCisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBQVUJMSUNBVElPTiB0 YXBfcHViX3NjaGVtYSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICJEUk9QIFNVQlNDUklQVElPTiB0YXBfc3ViX3NjaGVtYSIpOworCisKKyMgQ2hlY2sgYmVoYXZp b3VyIG9mIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290IGFuZCBFWENFUFQgY2xhdXNlIHdpdGgK KyMgcGFydGl0aW9uZWQgdGFibGUgb3IgcGFydGlpdGlvbnMgb2YgcGFydGl0aW9uZWQgdGFibGUu Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlDUkVBVEUg VEFCTEUgc2NoMS50MShhIGludCkgUEFSVElUSU9OIEJZIFJBTkdFKGEpOworCUNSRUFURSBUQUJM RSBzY2gxLnBhcnQxIFBBUlRJVElPTiBPRiBzY2gxLnQxIEZPUiBWQUxVRVMgRlJPTSAoMCkgVE8g KDUpOworCUlOU0VSVCBJTlRPIHNjaDEudDEgVkFMVUVTICgxKTsKKykpOworCiskbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQ1JFQVRFIFRBQkxFIHNjaDEu dDEoYSBpbnQpOworCUNSRUFURSBUQUJMRSBzY2gxLnBhcnQxKGEgaW50KTsKKykpOworCisjIHB1 Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gZmFsc2UgYW5kIEVYQ0VQVCBzY2gxLnBhcnQxCisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgUFVCTElDQVRJ T04gdGFwX3B1Yl9wYXJ0IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAoc2NoMS5wYXJ0MSki KTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU1VC U0NSSVBUSU9OIHRhcF9zdWJfcGFydCBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBV QkxJQ0FUSU9OIHRhcF9wdWJfcGFydCIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9z dWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0YXBfc3ViX3BhcnQnKTsKKyRub2Rl X3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJJTlNFUlQgSU5UTyBzY2gxLnQxIFZB TFVFUyAoMikiKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9w YXJ0Jyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgIlNFTEVDVCAqIEZST00gc2NoMS50MSIpOworaXMoJHJlc3VsdCwgcXEoKSwgJ2NoZWNrIHJv d3Mgb24gcGFydGl0aW9uZWQgdGFibGUnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSBzY2gxLnBhcnQxIik7Citpcygk cmVzdWx0LCBxcSgpLCAnY2hlY2sgcm93cyBvbiBwYXJ0aXRpb25zJyk7CisKKyMgcHVibGlzaF92 aWFfcGFydGl0aW9uX3Jvb3QgPSBmYWxzZSBhbmQgRVhDRVBUIHNjaDEudDEKKyRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUFMVEVSIFBVQkxJQ0FUSU9OIHRh cF9wdWJfcGFydCBSRVNFVDsKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQgQUREIEFM TCBUQUJMRVMgRVhDRVBUIChzY2gxLnQxKTsKKykpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFNVQlNDUklQVElPTiB0YXBfc3ViX3BhcnQgUkVGUkVT SCBQVUJMSUNBVElPTiIpOworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9u X3N5bmMoJG5vZGVfcHVibGlzaGVyLCAndGFwX3N1Yl9wYXJ0Jyk7Ciskbm9kZV9wdWJsaXNoZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5TRVJUIElOVE8gc2NoMS50MSBWQUxVRVMgKDMpIik7 Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfcGFydCcpOworCisk cmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1Qg KiBGUk9NIHNjaDEudDEiKTsKK2lzKCRyZXN1bHQsIHFxKCksICdjaGVjayByb3dzIG9uIHBhcnRp dGlvbmVkIHRhYmxlJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gc2NoMS5wYXJ0MSIpOworaXMoICRyZXN1bHQsIHFx KDEKKzIKKzMpLCAnY2hlY2sgcm93cyBvbiBwYXJ0aXRpb25zJyk7Ciskbm9kZV9wdWJsaXNoZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiVFJVTkNBVEUgc2NoMS50MSIpOworJG5vZGVfcHVibGlz aGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX3BhcnQnKTsKKyRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9wYXJ0Iik7 Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBQVUJMSUNBVElP TiB0YXBfcHViX3BhcnQ7Iik7CisKKyMgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSB0cnVl IGFuZCBFWENFUFQgc2NoMS50MQorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3Rn cmVzJywgcXEoCisJQ1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWJfcGFydCBGT1IgQUxMIFRBQkxF UyBFWENFUFQgVEFCTEUgKHNjaDEudDEpIFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290 KTsKKwlJTlNFUlQgSU5UTyBzY2gxLnQxIFZBTFVFUyAoMSkKKykpOworJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9w YXJ0IENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gdGFwX3B1Yl9w YXJ0IgorKTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRu b2RlX3B1Ymxpc2hlciwgJ3RhcF9zdWJfcGFydCcpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgIklOU0VSVCBJTlRPIHNjaDEudDEgVkFMVUVTICgyKSIpOworJG5vZGVf cHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX3BhcnQnKTsKKworJHJlc3VsdCA9 ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSBz Y2gxLnQxIik7CitpcygkcmVzdWx0LCBxcSgpLCAnY2hlY2sgcm93cyBvbiBwYXJ0aXRpb25lZCB0 YWJsZScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICJTRUxFQ1QgKiBGUk9NIHNjaDEucGFydDEiKTsKK2lzKCRyZXN1bHQsIHFxKCksICdjaGVj ayByb3dzIG9uIHBhcnRpdGlvbnMnKTsKKworIyBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9 IHRydWUgYW5kIEVYQ0VQVCBzY2gxLnBhcnQxCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgK KwkncG9zdGdyZXMnLCBxcSgKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQgUkVTRVQ7 CisJQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCAo c2NoMS5wYXJ0MSk7CisJQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IFNFVCAocHVibGlz aF92aWFfcGFydGl0aW9uX3Jvb3QpOworKSk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKKwkiQUxURVIgU1VCU0NSSVBUSU9OIHRhcF9zdWJfcGFydCBSRUZSRVNIIFBV QkxJQ0FUSU9OIik7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3lu Yygkbm9kZV9wdWJsaXNoZXIsICd0YXBfc3ViX3BhcnQnKTsKKyRub2RlX3B1Ymxpc2hlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsICJJTlNFUlQgSU5UTyBzY2gxLnQxIFZBTFVFUyAoMykiKTsKKyRu b2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9wYXJ0Jyk7CisKKyRyZXN1 bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZS T00gc2NoMS50MSIpOworaXMoICRyZXN1bHQsIHFxKDEKKzIKKzMpLCAnY2hlY2sgcm93cyBvbiBw YXJ0aXRpb25lZCB0YWJsZScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHNjaDEucGFydDEiKTsKK2lzKCRyZXN1bHQs IHFxKCksICdjaGVjayByb3dzIG9uIHBhcnRpdGlvbnMnKTsKKworJG5vZGVfc3Vic2NyaWJlci0+ c3RvcCgnZmFzdCcpOworJG5vZGVfcHVibGlzaGVyLT5zdG9wKCdmYXN0Jyk7CisKK2RvbmVfdGVz dGluZygpOwotLSAKMi4zNC4xCgo= --000000000000838c5d06434f008e--