Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753383AbcD0Vts (ORCPT ); Wed, 27 Apr 2016 17:49:48 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:47123 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752290AbcD0Vtj (ORCPT ); Wed, 27 Apr 2016 17:49:39 -0400 Message-ID: <1461792049.1169.1.camel@decadent.org.uk> Subject: Re: [PATCH 3.16 000/217] 3.16.35-rc1 review From: Ben Hutchings To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: torvalds@linux-foundation.org, Guenter Roeck , Phil Jensen , akpm@linux-foundation.org Date: Wed, 27 Apr 2016 23:20:49 +0200 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-nqLERlbfsjjIqBjwES7v" X-Mailer: Evolution 3.18.5.1-1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 94.197.120.192 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 333248 Lines: 4357 --=-nqLERlbfsjjIqBjwES7v Content-Type: multipart/mixed; boundary="=-sr8VIHkm/IULWSu3toIg" --=-sr8VIHkm/IULWSu3toIg Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined diff for 3.16.35-rc1 relative to 3.16.7-ckt27. Ben. --=20 Ben Hutchings Once a job is fouled up, anything done to improve it makes it worse. --=-sr8VIHkm/IULWSu3toIg Content-Disposition: attachment; filename="linux-3.16.35-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.16.35-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMKaW5kZXggYjg5ODJjMGFjOGIx Li4xMjc4ZDE5NTBkMDUgMTAwNjQ0Ci0tLSBhL01BSU5UQUlORVJTCisrKyBiL01BSU5UQUlORVJT CkBAIC0yMTgsMTMgKzIxOCwxMyBAQCBGOglrZXJuZWwvc3lzX25pLmMKIAogQUJJVCBVR1VSVSAx LDIgSEFSRFdBUkUgTU9OSVRPUiBEUklWRVIKIE06CUhhbnMgZGUgR29lZGUgPGhkZWdvZWRlQHJl ZGhhdC5jb20+Ci1MOglsbS1zZW5zb3JzQGxtLXNlbnNvcnMub3JnCitMOglsaW51eC1od21vbkB2 Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIEY6CWRyaXZlcnMvaHdtb24vYWJpdHVndXJ1 LmMKIAogQUJJVCBVR1VSVSAzIEhBUkRXQVJFIE1PTklUT1IgRFJJVkVSCiBNOglBbGlzdGFpciBK b2huIFN0cmFjaGFuIDxhbGlzdGFpckBkZXZ6ZXJvLmNvLnVrPgotTDoJbG0tc2Vuc29yc0BsbS1z ZW5zb3JzLm9yZworTDoJbGludXgtaHdtb25Admdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVk CiBGOglkcml2ZXJzL2h3bW9uL2FiaXR1Z3VydTMuYwogCkBAIC0zNTUsMTQgKzM1NSwxNCBAQCBT OglNYWludGFpbmVkCiAKIEFETTEwMjUgSEFSRFdBUkUgTU9OSVRPUiBEUklWRVIKIE06CUplYW4g RGVsdmFyZSA8amRlbHZhcmVAc3VzZS5kZT4KLUw6CWxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcK K0w6CWxpbnV4LWh3bW9uQHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogRjoJRG9jdW1l bnRhdGlvbi9od21vbi9hZG0xMDI1CiBGOglkcml2ZXJzL2h3bW9uL2FkbTEwMjUuYwogCiBBRE0x MDI5IEhBUkRXQVJFIE1PTklUT1IgRFJJVkVSCiBNOglDb3JlbnRpbiBMYWJiZSA8Y2xhYmJlLm1v bnRqb2llQGdtYWlsLmNvbT4KLUw6CWxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKK0w6CWxpbnV4 LWh3bW9uQHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogRjoJZHJpdmVycy9od21vbi9h ZG0xMDI5LmMKIApAQCAtNDA3LDcgKzQwNyw3IEBAIEY6CWRyaXZlcnMvdmlkZW8vYmFja2xpZ2h0 L2FkcDg4NjBfYmwuYwogCiBBRFMxMDE1IEhBUkRXQVJFIE1PTklUT1IgRFJJVkVSCiBNOglEaXJr IEVpYmFjaCA8ZWliYWNoQGdkc3lzLmRlPgotTDoJbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZwor TDoJbGludXgtaHdtb25Admdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiBGOglEb2N1bWVu dGF0aW9uL2h3bW9uL2FkczEwMTUKIEY6CWRyaXZlcnMvaHdtb24vYWRzMTAxNS5jCkBAIC00MjAs NyArNDIwLDcgQEAgRjoJZHJpdmVycy9tYWNpbnRvc2gvdGhlcm1fYWR0NzQ2eC5jCiAKIEFEVDc0 NzUgSEFSRFdBUkUgTU9OSVRPUiBEUklWRVIKIE06CUplYW4gRGVsdmFyZSA8amRlbHZhcmVAc3Vz ZS5kZT4KLUw6CWxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKK0w6CWxpbnV4LWh3bW9uQHZnZXIu a2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogRjoJRG9jdW1lbnRhdGlvbi9od21vbi9hZHQ3NDc1 CiBGOglkcml2ZXJzL2h3bW9uL2FkdDc0NzUuYwpAQCAtNTY4LDcgKzU2OCw3IEBAIEY6CWluY2x1 ZGUvbGludXgvY2NwLmgKIAogQU1EIEZBTTE1SCBQUk9DRVNTT1IgUE9XRVIgTU9OSVRPUklORyBE UklWRVIKIE06CUFuZHJlYXMgSGVycm1hbm4gPGhlcnJtYW5uLmRlci51c2VyQGdvb2dsZW1haWwu Y29tPgotTDoJbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZworTDoJbGludXgtaHdtb25Admdlci5r ZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9uL2h3bW9uL2ZhbTE1aF9w b3dlcgogRjoJZHJpdmVycy9od21vbi9mYW0xNWhfcG93ZXIuYwpAQCAtNjg5LDcgKzY4OSw3IEBA IEY6CWRyaXZlcnMvaW5wdXQvbW91c2UvYmNtNTk3NC5jCiAKIEFQUExFIFNNQyBEUklWRVIKIE06 CUhlbnJpayBSeWRiZXJnIDxyeWRiZXJnQGV1cm9tYWlsLnNlPgotTDoJbG0tc2Vuc29yc0BsbS1z ZW5zb3JzLm9yZworTDoJbGludXgtaHdtb25Admdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVk CiBGOglkcml2ZXJzL2h3bW9uL2FwcGxlc21jLmMKIApAQCAtMTUwNCw3ICsxNTA0LDcgQEAgRjoJ aW5jbHVkZS9tZWRpYS9hczM2NDVhLmgKIAogQVNDNzYyMSBIQVJEV0FSRSBNT05JVE9SIERSSVZF UgogTToJR2VvcmdlIEpvc2VwaCA8Z2VvcmdlLmpvc2VwaEBmYWlydmlldzUuY29tPgotTDoJbG0t c2Vuc29yc0BsbS1zZW5zb3JzLm9yZworTDoJbGludXgtaHdtb25Admdlci5rZXJuZWwub3JnCiBT OglNYWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9uL2h3bW9uL2FzYzc2MjEKIEY6CWRyaXZlcnMv aHdtb24vYXNjNzYyMS5jCkBAIC0xNTgzLDcgKzE1ODMsNyBAQCBGOglkcml2ZXJzL25ldC93aXJl bGVzcy9hdGgvY2FybDkxNzAvCiAKIEFUSzAxMTAgSFdNT04gRFJJVkVSCiBNOglMdWNhIFRldHRh bWFudGkgPGtyb25vcy5pdEBnbWFpbC5jb20+Ci1MOglsbS1zZW5zb3JzQGxtLXNlbnNvcnMub3Jn CitMOglsaW51eC1od21vbkB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIEY6CWRyaXZl cnMvaHdtb24vYXN1c19hdGswMTEwLmMKIApAQCAtMjQ1OSw3ICsyNDU5LDcgQEAgRjoJbW0vcGFn ZV9jZ3JvdXAuYwogCiBDT1JFVEVNUCBIQVJEV0FSRSBNT05JVE9SSU5HIERSSVZFUgogTToJRmVu Z2h1YSBZdSA8ZmVuZ2h1YS55dUBpbnRlbC5jb20+Ci1MOglsbS1zZW5zb3JzQGxtLXNlbnNvcnMu b3JnCitMOglsaW51eC1od21vbkB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIEY6CURv Y3VtZW50YXRpb24vaHdtb24vY29yZXRlbXAKIEY6CWRyaXZlcnMvaHdtb24vY29yZXRlbXAuYwpA QCAtMjkzMSw3ICsyOTMxLDcgQEAgVDoJZ2l0IGdpdDovL2dpdC5pbmZyYWRlYWQub3JnL3VzZXJz L3Zrb3VsL3NsYXZlLWRtYS5naXQgKHNsYXZlLWRtYSkKIAogRE1FMTczNyBIQVJEV0FSRSBNT05J VE9SIERSSVZFUgogTToJSnVlcmcgSGFlZmxpZ2VyIDxqdWVyZ2hAZ21haWwuY29tPgotTDoJbG0t c2Vuc29yc0BsbS1zZW5zb3JzLm9yZworTDoJbGludXgtaHdtb25Admdlci5rZXJuZWwub3JnCiBT OglNYWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9uL2h3bW9uL2RtZTE3MzcKIEY6CWRyaXZlcnMv aHdtb24vZG1lMTczNy5jCkBAIC0zNTU5LDcgKzM1NTksNyBAQCBGOglpbmNsdWRlL3ZpZGVvL2V4 eW5vc19taXBpKgogCiBGNzE4MDVGIEhBUkRXQVJFIE1PTklUT1JJTkcgRFJJVkVSCiBNOglKZWFu IERlbHZhcmUgPGpkZWx2YXJlQHN1c2UuZGU+Ci1MOglsbS1zZW5zb3JzQGxtLXNlbnNvcnMub3Jn CitMOglsaW51eC1od21vbkB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIEY6CURvY3Vt ZW50YXRpb24vaHdtb24vZjcxODA1ZgogRjoJZHJpdmVycy9od21vbi9mNzE4MDVmLmMKQEAgLTM2 MzIsNyArMzYzMiw3IEBAIEY6CWZzLyoKIAogRklOVEVLIEY3NTM3NVMgSEFSRFdBUkUgTU9OSVRP UiBBTkQgRkFOIENPTlRST0xMRVIgRFJJVkVSCiBNOglSaWt1IFZvaXBpbyA8cmlrdS52b2lwaW9A aWtpLmZpPgotTDoJbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZworTDoJbGludXgtaHdtb25Admdl ci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiBGOglkcml2ZXJzL2h3bW9uL2Y3NTM3NXMuYwog RjoJaW5jbHVkZS9saW51eC9mNzUzNzVzLmgKQEAgLTQwOTMsOCArNDA5Myw4IEBAIEY6CWRyaXZl cnMvdHR5L2h2Yy8KIEhBUkRXQVJFIE1PTklUT1JJTkcKIE06CUplYW4gRGVsdmFyZSA8amRlbHZh cmVAc3VzZS5kZT4KIE06CUd1ZW50ZXIgUm9lY2sgPGxpbnV4QHJvZWNrLXVzLm5ldD4KLUw6CWxt LXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKLVc6CWh0dHA6Ly93d3cubG0tc2Vuc29ycy5vcmcvCitM OglsaW51eC1od21vbkB2Z2VyLmtlcm5lbC5vcmcKK1c6CWh0dHA6Ly9od21vbi53aWtpLmtlcm5l bC5vcmcvCiBUOglxdWlsdCBrZXJuZWwub3JnL3B1Yi9saW51eC9rZXJuZWwvcGVvcGxlL2pkZWx2 YXJlL2xpbnV4LTIuNi9qZGVsdmFyZS1od21vbi8KIFQ6CWdpdCBnaXQ6Ly9naXQua2VybmVsLm9y Zy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvZ3JvZWNrL2xpbnV4LXN0YWdpbmcuZ2l0CiBTOglN YWludGFpbmVkCkBAIC00NTQwLDcgKzQ1NDAsNyBAQCBGOglkcml2ZXJzL3VzYi9hdG0vdWVhZ2xl LWF0bS5jCiAKIElOQTIwOSBIQVJEV0FSRSBNT05JVE9SIERSSVZFUgogTToJR3VlbnRlciBSb2Vj ayA8bGludXhAcm9lY2stdXMubmV0PgotTDoJbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZworTDoJ bGludXgtaHdtb25Admdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiBGOglEb2N1bWVudGF0 aW9uL2h3bW9uL2luYTIwOQogRjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2ky Yy9pbmEyMDkudHh0CkBAIC00NTQ4LDcgKzQ1NDgsNyBAQCBGOglkcml2ZXJzL2h3bW9uL2luYTIw OS5jCiAKIElOQTJYWCBIQVJEV0FSRSBNT05JVE9SIERSSVZFUgogTToJR3VlbnRlciBSb2VjayA8 bGludXhAcm9lY2stdXMubmV0PgotTDoJbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZworTDoJbGlu dXgtaHdtb25Admdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9u L2h3bW9uL2luYTJ4eAogRjoJZHJpdmVycy9od21vbi9pbmEyeHguYwpAQCAtNDk2Nyw3ICs0OTY3 LDcgQEAgRjoJZHJpdmVycy9pc2RuL2hhcmR3YXJlL2VpY29uLwogCiBJVDg3IEhBUkRXQVJFIE1P TklUT1JJTkcgRFJJVkVSCiBNOglKZWFuIERlbHZhcmUgPGpkZWx2YXJlQHN1c2UuZGU+Ci1MOgls bS1zZW5zb3JzQGxtLXNlbnNvcnMub3JnCitMOglsaW51eC1od21vbkB2Z2VyLmtlcm5lbC5vcmcK IFM6CU1haW50YWluZWQKIEY6CURvY3VtZW50YXRpb24vaHdtb24vaXQ4NwogRjoJZHJpdmVycy9o d21vbi9pdDg3LmMKQEAgLTUwMDMsNyArNTAwMyw3IEBAIEY6CWRyaXZlcnMvbWVkaWEvZHZiLWZy b250ZW5kcy9peDI1MDV2KgogCiBKQzQyLjQgVEVNUEVSQVRVUkUgU0VOU09SIERSSVZFUgogTToJ R3VlbnRlciBSb2VjayA8bGludXhAcm9lY2stdXMubmV0PgotTDoJbG0tc2Vuc29yc0BsbS1zZW5z b3JzLm9yZworTDoJbGludXgtaHdtb25Admdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiBG Oglkcml2ZXJzL2h3bW9uL2pjNDIuYwogRjoJRG9jdW1lbnRhdGlvbi9od21vbi9qYzQyCkBAIC01 MDU0LDE0ICs1MDU0LDE0IEBAIEY6CWRyaXZlcnMvdHR5L3NlcmlhbC9qc20vCiAKIEsxMFRFTVAg SEFSRFdBUkUgTU9OSVRPUklORyBEUklWRVIKIE06CUNsZW1lbnMgTGFkaXNjaCA8Y2xlbWVuc0Bs YWRpc2NoLmRlPgotTDoJbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZworTDoJbGludXgtaHdtb25A dmdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9uL2h3bW9uL2sx MHRlbXAKIEY6CWRyaXZlcnMvaHdtb24vazEwdGVtcC5jCiAKIEs4VEVNUCBIQVJEV0FSRSBNT05J VE9SSU5HIERSSVZFUgogTToJUnVkb2xmIE1hcmVrIDxyLm1hcmVrQGFzc2VtYmxlci5jej4KLUw6 CWxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKK0w6CWxpbnV4LWh3bW9uQHZnZXIua2VybmVsLm9y ZwogUzoJTWFpbnRhaW5lZAogRjoJRG9jdW1lbnRhdGlvbi9od21vbi9rOHRlbXAKIEY6CWRyaXZl cnMvaHdtb24vazh0ZW1wLmMKQEAgLTU0NjcsMjcgKzU0NjcsMjcgQEAgRjoJbmV0L2xsYy8KIAog TE03MyBIQVJEV0FSRSBNT05JVE9SIERSSVZFUgogTToJR3VpbGxhdW1lIExpZ25ldWwgPGd1aWxs YXVtZS5saWduZXVsQGdtYWlsLmNvbT4KLUw6CWxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKK0w6 CWxpbnV4LWh3bW9uQHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogRjoJZHJpdmVycy9o d21vbi9sbTczLmMKIAogTE03OCBIQVJEV0FSRSBNT05JVE9SIERSSVZFUgogTToJSmVhbiBEZWx2 YXJlIDxqZGVsdmFyZUBzdXNlLmRlPgotTDoJbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZworTDoJ bGludXgtaHdtb25Admdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiBGOglEb2N1bWVudGF0 aW9uL2h3bW9uL2xtNzgKIEY6CWRyaXZlcnMvaHdtb24vbG03OC5jCiAKIExNODMgSEFSRFdBUkUg TU9OSVRPUiBEUklWRVIKIE06CUplYW4gRGVsdmFyZSA8amRlbHZhcmVAc3VzZS5kZT4KLUw6CWxt LXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKK0w6CWxpbnV4LWh3bW9uQHZnZXIua2VybmVsLm9yZwog UzoJTWFpbnRhaW5lZAogRjoJRG9jdW1lbnRhdGlvbi9od21vbi9sbTgzCiBGOglkcml2ZXJzL2h3 bW9uL2xtODMuYwogCiBMTTkwIEhBUkRXQVJFIE1PTklUT1IgRFJJVkVSCiBNOglKZWFuIERlbHZh cmUgPGpkZWx2YXJlQHN1c2UuZGU+Ci1MOglsbS1zZW5zb3JzQGxtLXNlbnNvcnMub3JnCitMOgls aW51eC1od21vbkB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIEY6CURvY3VtZW50YXRp b24vaHdtb24vbG05MAogRjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2h3bW9u L2xtOTAudHh0CkBAIC01NDk1LDcgKzU0OTUsNyBAQCBGOglkcml2ZXJzL2h3bW9uL2xtOTAuYwog CiBMTTk1MjM0IEhBUkRXQVJFIE1PTklUT1IgRFJJVkVSCiBNOglHdWVudGVyIFJvZWNrIDxsaW51 eEByb2Vjay11cy5uZXQ+Ci1MOglsbS1zZW5zb3JzQGxtLXNlbnNvcnMub3JnCitMOglsaW51eC1o d21vbkB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIEY6CURvY3VtZW50YXRpb24vaHdt b24vbG05NTIzNAogRjoJZHJpdmVycy9od21vbi9sbTk1MjM0LmMKQEAgLTU1NjIsNyArNTU2Miw3 IEBAIEY6CWRyaXZlcnMvc2NzaS9zeW01M2M4eHhfMi8KIAogTFRDNDI2MSBIQVJEV0FSRSBNT05J VE9SIERSSVZFUgogTToJR3VlbnRlciBSb2VjayA8bGludXhAcm9lY2stdXMubmV0PgotTDoJbG0t c2Vuc29yc0BsbS1zZW5zb3JzLm9yZworTDoJbGludXgtaHdtb25Admdlci5rZXJuZWwub3JnCiBT OglNYWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9uL2h3bW9uL2x0YzQyNjEKIEY6CWRyaXZlcnMv aHdtb24vbHRjNDI2MS5jCkBAIC01NzMzLDIxICs1NzMzLDIxIEBAIEY6CWluY2x1ZGUvdWFwaS9s aW51eC9tYXRyb3hmYi5oCiAKIE1BWDE2MDY1IEhBUkRXQVJFIE1PTklUT1IgRFJJVkVSCiBNOglH dWVudGVyIFJvZWNrIDxsaW51eEByb2Vjay11cy5uZXQ+Ci1MOglsbS1zZW5zb3JzQGxtLXNlbnNv cnMub3JnCitMOglsaW51eC1od21vbkB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIEY6 CURvY3VtZW50YXRpb24vaHdtb24vbWF4MTYwNjUKIEY6CWRyaXZlcnMvaHdtb24vbWF4MTYwNjUu YwogCiBNQVg2NjUwIEhBUkRXQVJFIE1PTklUT1IgQU5EIEZBTiBDT05UUk9MTEVSIERSSVZFUgog TToJIkhhbnMgSi4gS29jaCIgPGhqa0BoYW5zamtvY2guZGU+Ci1MOglsbS1zZW5zb3JzQGxtLXNl bnNvcnMub3JnCitMOglsaW51eC1od21vbkB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQK IEY6CURvY3VtZW50YXRpb24vaHdtb24vbWF4NjY1MAogRjoJZHJpdmVycy9od21vbi9tYXg2NjUw LmMKIAogTUFYNjY5NyBIQVJEV0FSRSBNT05JVE9SIERSSVZFUgogTToJR3VlbnRlciBSb2VjayA8 bGludXhAcm9lY2stdXMubmV0PgotTDoJbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZworTDoJbGlu dXgtaHdtb25Admdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9u L2h3bW9uL21heDY2OTcKIEY6CURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMv bWF4NjY5Ny50eHQKQEAgLTYxMDUsNyArNjEwNSw3IEBAIEY6CWRyaXZlcnMvc2NzaS9OQ1JfRDcw MC4qCiAKIE5DVDY3NzUgSEFSRFdBUkUgTU9OSVRPUiBEUklWRVIKIE06CUd1ZW50ZXIgUm9lY2sg PGxpbnV4QHJvZWNrLXVzLm5ldD4KLUw6CWxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKK0w6CWxp bnV4LWh3bW9uQHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogRjoJRG9jdW1lbnRhdGlv bi9od21vbi9uY3Q2Nzc1CiBGOglkcml2ZXJzL2h3bW9uL25jdDY3NzUuYwpAQCAtNjc0NSw3ICs2 NzQ1LDcgQEAgRjoJZHJpdmVycy92aWRlby9sb2dvL2xvZ29fcGFyaXNjKgogCiBQQzg3MzYwIEhB UkRXQVJFIE1PTklUT1JJTkcgRFJJVkVSCiBNOglKaW0gQ3JvbWllIDxqaW0uY3JvbWllQGdtYWls LmNvbT4KLUw6CWxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKK0w6CWxpbnV4LWh3bW9uQHZnZXIu a2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogRjoJRG9jdW1lbnRhdGlvbi9od21vbi9wYzg3MzYw CiBGOglkcml2ZXJzL2h3bW9uL3BjODczNjAuYwpAQCAtNjc1Nyw3ICs2NzU3LDcgQEAgRjoJZHJp dmVycy9jaGFyL3BjODczNnhfZ3Bpby5jCiAKIFBDODc0MjcgSEFSRFdBUkUgTU9OSVRPUklORyBE UklWRVIKIE06CUplYW4gRGVsdmFyZSA8amRlbHZhcmVAc3VzZS5kZT4KLUw6CWxtLXNlbnNvcnNA bG0tc2Vuc29ycy5vcmcKK0w6CWxpbnV4LWh3bW9uQHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRh aW5lZAogRjoJRG9jdW1lbnRhdGlvbi9od21vbi9wYzg3NDI3CiBGOglkcml2ZXJzL2h3bW9uL3Bj ODc0MjcuYwpAQCAtNjk5OSw4ICs2OTk5LDggQEAgRjoJZHJpdmVycy9ydGMvcnRjLXB1djMuYwog CiBQTUJVUyBIQVJEV0FSRSBNT05JVE9SSU5HIERSSVZFUlMKIE06CUd1ZW50ZXIgUm9lY2sgPGxp bnV4QHJvZWNrLXVzLm5ldD4KLUw6CWxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKLVc6CWh0dHA6 Ly93d3cubG0tc2Vuc29ycy5vcmcvCitMOglsaW51eC1od21vbkB2Z2VyLmtlcm5lbC5vcmcKK1c6 CWh0dHA6Ly9od21vbi53aWtpLmtlcm5lbC5vcmcvCiBXOglodHRwOi8vd3d3LnJvZWNrLXVzLm5l dC9saW51eC9kcml2ZXJzLwogVDoJZ2l0IGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGlu dXgva2VybmVsL2dpdC9ncm9lY2svbGludXgtc3RhZ2luZy5naXQKIFM6CU1haW50YWluZWQKQEAg LTgyOTAsMjggKzgyOTAsMjggQEAgRjoJZHJpdmVycy9tZWRpYS9pMmMvc21pYXBwLXBsbC5oCiAK IFNNTTY2NSBIQVJEV0FSRSBNT05JVE9SIERSSVZFUgogTToJR3VlbnRlciBSb2VjayA8bGludXhA cm9lY2stdXMubmV0PgotTDoJbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZworTDoJbGludXgtaHdt b25Admdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9uL2h3bW9u L3NtbTY2NQogRjoJZHJpdmVycy9od21vbi9zbW02NjUuYwogCiBTTVNDIEVNQzIxMDMgSEFSRFdB UkUgTU9OSVRPUiBEUklWRVIKIE06CVN0ZXZlIEdsZW5kaW5uaW5nIDxzdGV2ZS5nbGVuZGlubmlu Z0BzaGF3ZWxsLm5ldD4KLUw6CWxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKK0w6CWxpbnV4LWh3 bW9uQHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogRjoJRG9jdW1lbnRhdGlvbi9od21v bi9lbWMyMTAzCiBGOglkcml2ZXJzL2h3bW9uL2VtYzIxMDMuYwogCiBTTVNDIFNDSDU2MjcgSEFS RFdBUkUgTU9OSVRPUiBEUklWRVIKIE06CUhhbnMgZGUgR29lZGUgPGhkZWdvZWRlQHJlZGhhdC5j b20+Ci1MOglsbS1zZW5zb3JzQGxtLXNlbnNvcnMub3JnCitMOglsaW51eC1od21vbkB2Z2VyLmtl cm5lbC5vcmcKIFM6CVN1cHBvcnRlZAogRjoJRG9jdW1lbnRhdGlvbi9od21vbi9zY2g1NjI3CiBG Oglkcml2ZXJzL2h3bW9uL3NjaDU2MjcuYwogCiBTTVNDNDdCMzk3IEhBUkRXQVJFIE1PTklUT1Ig RFJJVkVSCiBNOglKZWFuIERlbHZhcmUgPGpkZWx2YXJlQHN1c2UuZGU+Ci1MOglsbS1zZW5zb3Jz QGxtLXNlbnNvcnMub3JnCitMOglsaW51eC1od21vbkB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50 YWluZWQKIEY6CURvY3VtZW50YXRpb24vaHdtb24vc21zYzQ3YjM5NwogRjoJZHJpdmVycy9od21v bi9zbXNjNDdiMzk3LmMKQEAgLTkxNzUsNyArOTE3NSw3IEBAIEY6CWluY2x1ZGUvbGludXgvbW1j L3NoX21vYmlsZV9zZGhpLmgKIAogVE1QNDAxIEhBUkRXQVJFIE1PTklUT1IgRFJJVkVSCiBNOglH dWVudGVyIFJvZWNrIDxsaW51eEByb2Vjay11cy5uZXQ+Ci1MOglsbS1zZW5zb3JzQGxtLXNlbnNv cnMub3JnCitMOglsaW51eC1od21vbkB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIEY6 CURvY3VtZW50YXRpb24vaHdtb24vdG1wNDAxCiBGOglkcml2ZXJzL2h3bW9uL3RtcDQwMS5jCkBA IC05ODEzLDE0ICs5ODEzLDE0IEBAIEY6CWluY2x1ZGUvbGludXgvcmVndWxhdG9yLwogCiBWVDEy MTEgSEFSRFdBUkUgTU9OSVRPUiBEUklWRVIKIE06CUp1ZXJnIEhhZWZsaWdlciA8anVlcmdoQGdt YWlsLmNvbT4KLUw6CWxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKK0w6CWxpbnV4LWh3bW9uQHZn ZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogRjoJRG9jdW1lbnRhdGlvbi9od21vbi92dDEy MTEKIEY6CWRyaXZlcnMvaHdtb24vdnQxMjExLmMKIAogVlQ4MjMxIEhBUkRXQVJFIE1PTklUT1Ig RFJJVkVSCiBNOglSb2dlciBMdWNhcyA8dnQ4MjMxQGhpZGRlbmVuZ2luZS5jby51az4KLUw6CWxt LXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKK0w6CWxpbnV4LWh3bW9uQHZnZXIua2VybmVsLm9yZwog UzoJTWFpbnRhaW5lZAogRjoJZHJpdmVycy9od21vbi92dDgyMzEuYwogCkBAIC05ODM5LDIxICs5 ODM5LDIxIEBAIEY6CWRyaXZlcnMvdzEvCiAKIFc4Mzc5MUQgSEFSRFdBUkUgTU9OSVRPUklORyBE UklWRVIKIE06CU1hcmMgSHVsc21hbiA8bS5odWxzbWFuQHR1ZGVsZnQubmw+Ci1MOglsbS1zZW5z b3JzQGxtLXNlbnNvcnMub3JnCitMOglsaW51eC1od21vbkB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1h aW50YWluZWQKIEY6CURvY3VtZW50YXRpb24vaHdtb24vdzgzNzkxZAogRjoJZHJpdmVycy9od21v bi93ODM3OTFkLmMKIAogVzgzNzkzIEhBUkRXQVJFIE1PTklUT1JJTkcgRFJJVkVSCiBNOglSdWRv bGYgTWFyZWsgPHIubWFyZWtAYXNzZW1ibGVyLmN6PgotTDoJbG0tc2Vuc29yc0BsbS1zZW5zb3Jz Lm9yZworTDoJbGludXgtaHdtb25Admdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiBGOglE b2N1bWVudGF0aW9uL2h3bW9uL3c4Mzc5MwogRjoJZHJpdmVycy9od21vbi93ODM3OTMuYwogCiBX ODM3OTUgSEFSRFdBUkUgTU9OSVRPUklORyBEUklWRVIKIE06CUplYW4gRGVsdmFyZSA8amRlbHZh cmVAc3VzZS5kZT4KLUw6CWxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKK0w6CWxpbnV4LWh3bW9u QHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogRjoJZHJpdmVycy9od21vbi93ODM3OTUu YwogCmRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCmluZGV4IDA1Y2I2MTk0OTA1ZC4u ZTM5ZmI4ZThiOTNjIDEwMDY0NAotLS0gYS9NYWtlZmlsZQorKysgYi9NYWtlZmlsZQpAQCAtMSw3 ICsxLDcgQEAKIFZFUlNJT04gPSAzCiBQQVRDSExFVkVMID0gMTYKLVNVQkxFVkVMID0gNwotRVhU UkFWRVJTSU9OID0tY2t0MjcKK1NVQkxFVkVMID0gMzUKK0VYVFJBVkVSU0lPTiA9IC1yYzEKIE5B TUUgPSBNdXNldW0gb2YgRmlzaGllZ29vZGllcwogCiAjICpET0NVTUVOVEFUSU9OKgpkaWZmIC0t Z2l0IGEvYXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLTM3NS5kdHNpIGIvYXJjaC9hcm0vYm9vdC9k dHMvYXJtYWRhLTM3NS5kdHNpCmluZGV4IGZiOTI1NTFhMWU3MS4uYjg2ZWM0ZjFhOGMwIDEwMDY0 NAotLS0gYS9hcmNoL2FybS9ib290L2R0cy9hcm1hZGEtMzc1LmR0c2kKKysrIGIvYXJjaC9hcm0v Ym9vdC9kdHMvYXJtYWRhLTM3NS5kdHNpCkBAIC00MTAsNyArNDEwLDcgQEAKIAkJCX07CiAKIAkJ CXNhdGFAYTAwMDAgewotCQkJCWNvbXBhdGlibGUgPSAibWFydmVsbCxvcmlvbi1zYXRhIjsKKwkJ CQljb21wYXRpYmxlID0gIm1hcnZlbGwsYXJtYWRhLTM3MC1zYXRhIjsKIAkJCQlyZWcgPSA8MHhh MDAwMCAweDUwMDA+OwogCQkJCWludGVycnVwdHMgPSA8R0lDX1NQSSAyNiBJUlFfVFlQRV9MRVZF TF9ISUdIPjsKIAkJCQljbG9ja3MgPSA8JmdhdGVjbGsgMTQ+LCA8JmdhdGVjbGsgMjA+OwpkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1kYXZpbmNpL0tjb25maWcgYi9hcmNoL2FybS9tYWNoLWRh dmluY2kvS2NvbmZpZwppbmRleCA1ODRlOGQ0ZTI4OTIuLmFjNmFhMjI3ODZjNyAxMDA2NDQKLS0t IGEvYXJjaC9hcm0vbWFjaC1kYXZpbmNpL0tjb25maWcKKysrIGIvYXJjaC9hcm0vbWFjaC1kYXZp bmNpL0tjb25maWcKQEAgLTY1LDggKzY1LDYgQEAgY29uZmlnIE1BQ0hfREFWSU5DSV9FVk0KIAli b29sICJUSSBETTY0NHggRVZNIgogCWRlZmF1bHQgQVJDSF9EQVZJTkNJX0RNNjQ0eAogCWRlcGVu ZHMgb24gQVJDSF9EQVZJTkNJX0RNNjQ0eAotCXNlbGVjdCBFRVBST01fQVQyNAotCXNlbGVjdCBJ MkMKIAloZWxwCiAJICBDb25maWd1cmUgdGhpcyBvcHRpb24gdG8gc3BlY2lmeSB0aGUgd2hldGhl ciB0aGUgYm9hcmQgdXNlZAogCSAgZm9yIGRldmVsb3BtZW50IGlzIGEgRE02NDR4IEVWTQpAQCAt NzQsOCArNzIsNiBAQCBjb25maWcgTUFDSF9EQVZJTkNJX0VWTQogY29uZmlnIE1BQ0hfU0ZGU0RS CiAJYm9vbCAiTHlydGVjaCBTRkZTRFIiCiAJZGVwZW5kcyBvbiBBUkNIX0RBVklOQ0lfRE02NDR4 Ci0Jc2VsZWN0IEVFUFJPTV9BVDI0Ci0Jc2VsZWN0IEkyQwogCWhlbHAKIAkgIFNheSBZIGhlcmUg dG8gc2VsZWN0IHRoZSBMeXJ0ZWNoIFNtYWxsIEZvcm0gRmFjdG9yCiAJICBTb2Z0d2FyZSBEZWZp bmVkIFJhZGlvIChTRkZTRFIpIGJvYXJkLgpAQCAtMTA2LDggKzEwMiw2IEBAIGNvbmZpZyBNQUNI X0RBVklOQ0lfRE02NDY3X0VWTQogCWJvb2wgIlRJIERNNjQ2NyBFVk0iCiAJZGVmYXVsdCBBUkNI X0RBVklOQ0lfRE02NDZ4CiAJZGVwZW5kcyBvbiBBUkNIX0RBVklOQ0lfRE02NDZ4Ci0Jc2VsZWN0 IEVFUFJPTV9BVDI0Ci0Jc2VsZWN0IEkyQwogCXNlbGVjdCBNQUNIX0RBVklOQ0lfRE02NDY3VEVW TQogCWhlbHAKIAkgIENvbmZpZ3VyZSB0aGlzIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSB3aGV0aGVy IHRoZSBib2FyZCB1c2VkCkBAIC0xMjAsOCArMTE0LDYgQEAgY29uZmlnIE1BQ0hfREFWSU5DSV9E TTM2NV9FVk0KIAlib29sICJUSSBETTM2NSBFVk0iCiAJZGVmYXVsdCBBUkNIX0RBVklOQ0lfRE0z NjUKIAlkZXBlbmRzIG9uIEFSQ0hfREFWSU5DSV9ETTM2NQotCXNlbGVjdCBFRVBST01fQVQyNAot CXNlbGVjdCBJMkMKIAloZWxwCiAJICBDb25maWd1cmUgdGhpcyBvcHRpb24gdG8gc3BlY2lmeSB3 aGV0aGVyIHRoZSBib2FyZCB1c2VkCiAJICBmb3IgZGV2ZWxvcG1lbnQgaXMgYSBETTM2NSBFVk0K QEAgLTEzMCw5ICsxMjIsNyBAQCBjb25maWcgTUFDSF9EQVZJTkNJX0RBODMwX0VWTQogCWJvb2wg IlRJIERBODMwL09NQVAtTDEzNy9BTTE3eCBSZWZlcmVuY2UgUGxhdGZvcm0iCiAJZGVmYXVsdCBB UkNIX0RBVklOQ0lfREE4MzAKIAlkZXBlbmRzIG9uIEFSQ0hfREFWSU5DSV9EQTgzMAotCXNlbGVj dCBFRVBST01fQVQyNAotCXNlbGVjdCBHUElPX1BDRjg1N1gKLQlzZWxlY3QgSTJDCisJc2VsZWN0 IEdQSU9fUENGODU3WCBpZiBJMkMKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIHNlbGVjdCB0aGUg VEkgREE4MzAvT01BUC1MMTM3L0FNMTd4IEV2YWx1YXRpb24gTW9kdWxlLgogCkBAIC0yMTIsOCAr MjAyLDYgQEAgY29uZmlnIERBODUwX1dMMTJYWAogY29uZmlnIE1BQ0hfTUlUWU9NQVBMMTM4CiAJ Ym9vbCAiQ3JpdGljYWwgTGluayBNaXR5RFNQLUwxMzgvTWl0eUFSTS0xODA4IFNvTSIKIAlkZXBl bmRzIG9uIEFSQ0hfREFWSU5DSV9EQTg1MAotCXNlbGVjdCBFRVBST01fQVQyNAotCXNlbGVjdCBJ MkMKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIHNlbGVjdCB0aGUgQ3JpdGljYWwgTGluayBNaXR5 RFNQLUwxMzgvTWl0eUFSTS0xODA4CiAJICBTeXN0ZW0gb24gTW9kdWxlLiAgSW5mb3JtYXRpb24g b24gdGhpcyBTb00gbWF5IGJlIGZvdW5kIGF0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWRh dmluY2kvYm9hcmQtZG02NDR4LWV2bS5jIGIvYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2JvYXJkLWRt NjQ0eC1ldm0uYwppbmRleCBlNTgzZTU4YjVlMWUuLmYyZTBkODJmNDE0ZiAxMDA2NDQKLS0tIGEv YXJjaC9hcm0vbWFjaC1kYXZpbmNpL2JvYXJkLWRtNjQ0eC1ldm0uYworKysgYi9hcmNoL2FybS9t YWNoLWRhdmluY2kvYm9hcmQtZG02NDR4LWV2bS5jCkBAIC0yNjcsNyArMjY3LDcgQEAgc3RhdGlj IHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcnRjX2RldiA9IHsKIHN0YXRpYyBzdHJ1Y3Qgc25kX3Bs YXRmb3JtX2RhdGEgZG02NDR4X2V2bV9zbmRfZGF0YTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQor I2lmZGVmIENPTkZJR19JMkMKIC8qCiAgKiBJMkMgR1BJTyBleHBhbmRlcnMKICAqLwpAQCAtNjE0 LDYgKzYxNCw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBldm1faW5pdF9pMmModm9pZCkKIAlpMmNf YWRkX2RyaXZlcigmZG02NDQ2ZXZtX21zcF9kcml2ZXIpOwogCWkyY19yZWdpc3Rlcl9ib2FyZF9p bmZvKDEsIGkyY19pbmZvLCBBUlJBWV9TSVpFKGkyY19pbmZvKSk7CiB9CisjZW5kaWYKIAogI2Rl ZmluZSBWRU5DX1NURF9BTEwJKFY0TDJfU1REX05UU0MgfCBWNEwyX1NURF9QQUwpCiAKQEAgLTc4 Myw3ICs3ODQsOSBAQCBzdGF0aWMgX19pbml0IHZvaWQgZGF2aW5jaV9ldm1faW5pdCh2b2lkKQog CQkJCXByX3dhcm4oIiVzOiBDYW5ub3QgY29uZmlndXJlIEFFTUlGLlxuIiwKIAkJCQkJX19mdW5j X18pOwogCisjaWZkZWYgQ09ORklHX0kyQwogCQkJZXZtX2xlZHNbN10uZGVmYXVsdF90cmlnZ2Vy ID0gIm5hbmQtZGlzayI7CisjZW5kaWYKIAkJCWlmIChIQVNfTk9SKQogCQkJCXByX3dhcm5pbmco IldBUk5JTkc6IGJvdGggTkFORCBhbmQgTk9SIGZsYXNoICIKIAkJCQkJImFyZSBlbmFibGVkOyBk aXNhYmxlIG9uZSBvZiB0aGVtLlxuIik7CkBAIC03OTMsOSArNzk2LDEwIEBAIHN0YXRpYyBfX2lu aXQgdm9pZCBkYXZpbmNpX2V2bV9pbml0KHZvaWQpCiAKIAlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhk YXZpbmNpX2V2bV9kZXZpY2VzLAogCQkJICAgICBBUlJBWV9TSVpFKGRhdmluY2lfZXZtX2Rldmlj ZXMpKTsKKyNpZmRlZiBDT05GSUdfSTJDCiAJZXZtX2luaXRfaTJjKCk7Ci0KIAlkYXZpbmNpX3Nl dHVwX21tYygwLCAmZG02NDQ2ZXZtX21tY19jb25maWcpOworI2VuZGlmCiAJZG02NDR4X2luaXRf dmlkZW8oJmRtNjQ0eGV2bV9jYXB0dXJlX2NmZywgJmRtNjQ0eGV2bV9kaXNwbGF5X2NmZyk7CiAK IAlkYXZpbmNpX3NlcmlhbF9pbml0KGRtNjQ0eF9zZXJpYWxfZGV2aWNlKTsKZGlmZiAtLWdpdCBh L2FyY2gvYXJtL21hY2gtZGF2aW5jaS9ib2FyZC1kbTY0NngtZXZtLmMgYi9hcmNoL2FybS9tYWNo LWRhdmluY2kvYm9hcmQtZG02NDZ4LWV2bS5jCmluZGV4IGFlMTI5YmM0OTI3My4uM2UzZTgzYjk3 NGNhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWRhdmluY2kvYm9hcmQtZG02NDZ4LWV2bS5j CisrKyBiL2FyY2gvYXJtL21hY2gtZGF2aW5jaS9ib2FyZC1kbTY0NngtZXZtLmMKQEAgLTEyMiw2 ICsxMjIsNyBAQCBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBkYXZpbmNpX25hbmRfZGV2 aWNlID0gewogCiAjZGVmaW5lIEhBU19BVEEJCUlTX0VOQUJMRUQoQ09ORklHX0JMS19ERVZfUEFM TUNISVBfQkszNzEwKQogCisjaWZkZWYgQ09ORklHX0kyQwogLyogQ1BMRCBSZWdpc3RlciAwIGJp dHMgdG8gY29udHJvbCBBVEEgKi8KICNkZWZpbmUgRE02NDZYX0VWTV9BVEFfUlNUCQlCSVQoMCkK ICNkZWZpbmUgRE02NDZYX0VWTV9BVEFfUFdECQlCSVQoMSkKQEAgLTMxNyw2ICszMTgsNyBAQCBz dGF0aWMgc3RydWN0IGF0MjRfcGxhdGZvcm1fZGF0YSBlZXByb21faW5mbyA9IHsKIAkuc2V0dXAg ICAgICAgICAgPSBkYXZpbmNpX2dldF9tYWNfYWRkciwKIAkuY29udGV4dAk9ICh2b2lkICopMHg3 ZjAwLAogfTsKKyNlbmRpZgogCiBzdGF0aWMgdTggZG02NDZ4X2lpc19zZXJpYWxpemVyX2RpcmVj dGlvbltdID0gewogICAgICAgIFRYX01PREUsIFJYX01PREUsIElOQUNUSVZFX01PREUsIElOQUNU SVZFX01PREUsCkBAIC0zNDcsNiArMzQ5LDcgQEAgc3RhdGljIHN0cnVjdCBzbmRfcGxhdGZvcm1f ZGF0YSBkbTY0NnhfZXZtX3NuZF9kYXRhW10gPSB7CiAJfSwKIH07CiAKKyNpZmRlZiBDT05GSUdf STJDCiBzdGF0aWMgc3RydWN0IGkyY19jbGllbnQgKmNwbGRfY2xpZW50OwogCiBzdGF0aWMgaW50 IGNwbGRfdmlkZW9fcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKQEAgLTcxNCw2ICs3 MTcsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZXZtX2luaXRfaTJjKHZvaWQpCiAJZXZtX2luaXRf Y3BsZCgpOwogCWV2bV9pbml0X3ZpZGVvKCk7CiB9CisjZW5kaWYKIAogI2RlZmluZSBDRENFOTQ5 X1hJTl9SQVRFCTI3MDAwMDAwCiAKQEAgLTc5NSw3ICs3OTksMTAgQEAgc3RhdGljIF9faW5pdCB2 b2lkIGV2bV9pbml0KHZvaWQpCiAJaWYgKHJldCkKIAkJcHJfd2FybigiJXM6IEdQSU8gaW5pdCBm YWlsZWQ6ICVkXG4iLCBfX2Z1bmNfXywgcmV0KTsKIAorI2lmZGVmIENPTkZJR19JMkMKIAlldm1f aW5pdF9pMmMoKTsKKyNlbmRpZgorCiAJZGF2aW5jaV9zZXJpYWxfaW5pdChkbTY0Nnhfc2VyaWFs X2RldmljZSk7CiAJZG02NDZ4X2luaXRfbWNhc3AwKCZkbTY0NnhfZXZtX3NuZF9kYXRhWzBdKTsK IAlkbTY0NnhfaW5pdF9tY2FzcDEoJmRtNjQ2eF9ldm1fc25kX2RhdGFbMV0pOwpkaWZmIC0tZ2l0 IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jcHVpZGxlMzR4eC5jIGIvYXJjaC9hcm0vbWFjaC1vbWFw Mi9jcHVpZGxlMzR4eC5jCmluZGV4IGUxODcwOWQzYjk1ZC4uMzhlMWJkY2FmMDE1IDEwMDY0NAot LS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2NwdWlkbGUzNHh4LmMKKysrIGIvYXJjaC9hcm0vbWFj aC1vbWFwMi9jcHVpZGxlMzR4eC5jCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAicG0uaCIK ICNpbmNsdWRlICJjb250cm9sLmgiCiAjaW5jbHVkZSAiY29tbW9uLmgiCisjaW5jbHVkZSAic29j LmgiCiAKIC8qIE1hY2ggc3BlY2lmaWMgaW5mb3JtYXRpb24gdG8gYmUgcmVjb3JkZWQgaW4gdGhl IEMtc3RhdGUgZHJpdmVyX2RhdGEgKi8KIHN0cnVjdCBvbWFwM19pZGxlX3N0YXRlZGF0YSB7CkBA IC0zMjIsNiArMzIzLDY5IEBAIHN0YXRpYyBzdHJ1Y3QgY3B1aWRsZV9kcml2ZXIgb21hcDNfaWRs ZV9kcml2ZXIgPSB7CiAJLnNhZmVfc3RhdGVfaW5kZXggPSAwLAogfTsKIAorLyoKKyAqIE51bWJl cnMgYmFzZWQgb24gbWVhc3VyZW1lbnRzIG1hZGUgaW4gT2N0b2JlciAyMDA5IGZvciBQTSBvcHRp bWl6ZWQga2VybmVsCisgKiB3aXRoIENQVSBmcmVxIGVuYWJsZWQgb24gZGV2aWNlIE5va2lhIE45 MDAuIEFzc3VtZXMgT1BQMiAobWFpbiBpZGxlIE9QUCwKKyAqIGFuZCB3b3JzdCBjYXNlIGxhdGVu Y2llcykuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgY3B1aWRsZV9kcml2ZXIgb21hcDM0MzBfaWRsZV9k cml2ZXIgPSB7CisJLm5hbWUgICAgICAgICAgICAgPSAib21hcDM0MzBfaWRsZSIsCisJLm93bmVy ICAgICAgICAgICAgPSBUSElTX01PRFVMRSwKKwkuc3RhdGVzID0geworCQl7CisJCQkuZW50ZXIJ CSAgPSBvbWFwM19lbnRlcl9pZGxlX2JtLAorCQkJLmV4aXRfbGF0ZW5jeQkgID0gMTEwICsgMTYy LAorCQkJLnRhcmdldF9yZXNpZGVuY3kgPSA1LAorCQkJLm5hbWUJCSAgPSAiQzEiLAorCQkJLmRl c2MJCSAgPSAiTVBVIE9OICsgQ09SRSBPTiIsCisJCX0sCisJCXsKKwkJCS5lbnRlcgkJICA9IG9t YXAzX2VudGVyX2lkbGVfYm0sCisJCQkuZXhpdF9sYXRlbmN5CSAgPSAxMDYgKyAxODAsCisJCQku dGFyZ2V0X3Jlc2lkZW5jeSA9IDMwOSwKKwkJCS5uYW1lCQkgID0gIkMyIiwKKwkJCS5kZXNjCQkg ID0gIk1QVSBPTiArIENPUkUgT04iLAorCQl9LAorCQl7CisJCQkuZW50ZXIJCSAgPSBvbWFwM19l bnRlcl9pZGxlX2JtLAorCQkJLmV4aXRfbGF0ZW5jeQkgID0gMTA3ICsgNDEwLAorCQkJLnRhcmdl dF9yZXNpZGVuY3kgPSA0NjA1NywKKwkJCS5uYW1lCQkgID0gIkMzIiwKKwkJCS5kZXNjCQkgID0g Ik1QVSBSRVQgKyBDT1JFIE9OIiwKKwkJfSwKKwkJeworCQkJLmVudGVyCQkgID0gb21hcDNfZW50 ZXJfaWRsZV9ibSwKKwkJCS5leGl0X2xhdGVuY3kJICA9IDEyMSArIDMzNzQsCisJCQkudGFyZ2V0 X3Jlc2lkZW5jeSA9IDQ2MDU3LAorCQkJLm5hbWUJCSAgPSAiQzQiLAorCQkJLmRlc2MJCSAgPSAi TVBVIE9GRiArIENPUkUgT04iLAorCQl9LAorCQl7CisJCQkuZW50ZXIJCSAgPSBvbWFwM19lbnRl cl9pZGxlX2JtLAorCQkJLmV4aXRfbGF0ZW5jeQkgID0gODU1ICsgMTE0NiwKKwkJCS50YXJnZXRf cmVzaWRlbmN5ID0gNDYwNTcsCisJCQkubmFtZQkJICA9ICJDNSIsCisJCQkuZGVzYwkJICA9ICJN UFUgUkVUICsgQ09SRSBSRVQiLAorCQl9LAorCQl7CisJCQkuZW50ZXIJCSAgPSBvbWFwM19lbnRl cl9pZGxlX2JtLAorCQkJLmV4aXRfbGF0ZW5jeQkgID0gNzU4MCArIDQxMzQsCisJCQkudGFyZ2V0 X3Jlc2lkZW5jeSA9IDQ4NDMyOSwKKwkJCS5uYW1lCQkgID0gIkM2IiwKKwkJCS5kZXNjCQkgID0g Ik1QVSBPRkYgKyBDT1JFIFJFVCIsCisJCX0sCisJCXsKKwkJCS5lbnRlcgkJICA9IG9tYXAzX2Vu dGVyX2lkbGVfYm0sCisJCQkuZXhpdF9sYXRlbmN5CSAgPSA3NTA1ICsgMTUyNzQsCisJCQkudGFy Z2V0X3Jlc2lkZW5jeSA9IDQ4NDMyOSwKKwkJCS5uYW1lCQkgID0gIkM3IiwKKwkJCS5kZXNjCQkg ID0gIk1QVSBPRkYgKyBDT1JFIE9GRiIsCisJCX0sCisJfSwKKwkuc3RhdGVfY291bnQgPSBBUlJB WV9TSVpFKG9tYXAzX2lkbGVfZGF0YSksCisJLnNhZmVfc3RhdGVfaW5kZXggPSAwLAorfTsKKwog LyogUHVibGljIGZ1bmN0aW9ucyAqLwogCiAvKioKQEAgLTM0MCw1ICs0MDQsOCBAQCBpbnQgX19p bml0IG9tYXAzX2lkbGVfaW5pdCh2b2lkKQogCWlmICghbXB1X3BkIHx8ICFjb3JlX3BkIHx8ICFw ZXJfcGQgfHwgIWNhbV9wZCkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKLQlyZXR1cm4gY3B1aWRsZV9y ZWdpc3Rlcigmb21hcDNfaWRsZV9kcml2ZXIsIE5VTEwpOworCWlmIChjcHVfaXNfb21hcDM0MzAo KSkKKwkJcmV0dXJuIGNwdWlkbGVfcmVnaXN0ZXIoJm9tYXAzNDMwX2lkbGVfZHJpdmVyLCBOVUxM KTsKKwllbHNlCisJCXJldHVybiBjcHVpZGxlX3JlZ2lzdGVyKCZvbWFwM19pZGxlX2RyaXZlciwg TlVMTCk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9pbmNsdWRlL2FzbS91YWNjZXNzLmgg Yi9hcmNoL3BhcmlzYy9pbmNsdWRlL2FzbS91YWNjZXNzLmgKaW5kZXggNDAwNjk2NGQ4ZTEyLi5k ZTJkYjE5MTA3NTUgMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNjL2luY2x1ZGUvYXNtL3VhY2Nlc3Mu aAorKysgYi9hcmNoL3BhcmlzYy9pbmNsdWRlL2FzbS91YWNjZXNzLmgKQEAgLTc5LDYgKzc5LDcg QEAgc3RydWN0IGV4Y2VwdGlvbl90YWJsZV9lbnRyeSB7CiAgKi8KIHN0cnVjdCBleGNlcHRpb25f ZGF0YSB7CiAJdW5zaWduZWQgbG9uZyBmYXVsdF9pcDsKKwl1bnNpZ25lZCBsb25nIGZhdWx0X2dw OwogCXVuc2lnbmVkIGxvbmcgZmF1bHRfc3BhY2U7CiAJdW5zaWduZWQgbG9uZyBmYXVsdF9hZGRy OwogfTsKZGlmZiAtLWdpdCBhL2FyY2gvcGFyaXNjL2tlcm5lbC9hc20tb2Zmc2V0cy5jIGIvYXJj aC9wYXJpc2Mva2VybmVsL2FzbS1vZmZzZXRzLmMKaW5kZXggZGNkNTUxMDNhNGJiLi5hMGRjMWU1 MGUzYTMgMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNjL2tlcm5lbC9hc20tb2Zmc2V0cy5jCisrKyBi L2FyY2gvcGFyaXNjL2tlcm5lbC9hc20tb2Zmc2V0cy5jCkBAIC0yOTIsNiArMjkyLDcgQEAgaW50 IG1haW4odm9pZCkKIAlERUZJTkUoQVNNX1BUX0lOSVRJQUwsIFBUX0lOSVRJQUwpOwogCUJMQU5L KCk7CiAJREVGSU5FKEVYQ0RBVEFfSVAsIG9mZnNldG9mKHN0cnVjdCBleGNlcHRpb25fZGF0YSwg ZmF1bHRfaXApKTsKKwlERUZJTkUoRVhDREFUQV9HUCwgb2Zmc2V0b2Yoc3RydWN0IGV4Y2VwdGlv bl9kYXRhLCBmYXVsdF9ncCkpOwogCURFRklORShFWENEQVRBX1NQQUNFLCBvZmZzZXRvZihzdHJ1 Y3QgZXhjZXB0aW9uX2RhdGEsIGZhdWx0X3NwYWNlKSk7CiAJREVGSU5FKEVYQ0RBVEFfQUREUiwg b2Zmc2V0b2Yoc3RydWN0IGV4Y2VwdGlvbl9kYXRhLCBmYXVsdF9hZGRyKSk7CiAJQkxBTksoKTsK ZGlmZiAtLWdpdCBhL2FyY2gvcGFyaXNjL2tlcm5lbC9wYXJpc2Nfa3N5bXMuYyBiL2FyY2gvcGFy aXNjL2tlcm5lbC9wYXJpc2Nfa3N5bXMuYwppbmRleCA1NjhiMmM2MWVhMDIuLjNjYWQ4YWFkYzY5 ZSAxMDA2NDQKLS0tIGEvYXJjaC9wYXJpc2Mva2VybmVsL3BhcmlzY19rc3ltcy5jCisrKyBiL2Fy Y2gvcGFyaXNjL2tlcm5lbC9wYXJpc2Nfa3N5bXMuYwpAQCAtNDcsMTEgKzQ3LDExIEBAIEVYUE9S VF9TWU1CT0woX19jbXB4Y2hnX3U2NCk7CiBFWFBPUlRfU1lNQk9MKGxjbGVhcl91c2VyKTsKIEVY UE9SVF9TWU1CT0wobHN0cm5sZW5fdXNlcik7CiAKLS8qIEdsb2JhbCBmaXh1cHMgKi8KLWV4dGVy biB2b2lkIGZpeHVwX2dldF91c2VyX3NraXBfMSh2b2lkKTsKLWV4dGVybiB2b2lkIGZpeHVwX2dl dF91c2VyX3NraXBfMih2b2lkKTsKLWV4dGVybiB2b2lkIGZpeHVwX3B1dF91c2VyX3NraXBfMSh2 b2lkKTsKLWV4dGVybiB2b2lkIGZpeHVwX3B1dF91c2VyX3NraXBfMih2b2lkKTsKKy8qIEdsb2Jh bCBmaXh1cHMgLSBkZWZpbmVkIGFzIGludCB0byBhdm9pZCBjcmVhdGlvbiBvZiBmdW5jdGlvbiBw b2ludGVycyAqLworZXh0ZXJuIGludCBmaXh1cF9nZXRfdXNlcl9za2lwXzE7CitleHRlcm4gaW50 IGZpeHVwX2dldF91c2VyX3NraXBfMjsKK2V4dGVybiBpbnQgZml4dXBfcHV0X3VzZXJfc2tpcF8x OworZXh0ZXJuIGludCBmaXh1cF9wdXRfdXNlcl9za2lwXzI7CiBFWFBPUlRfU1lNQk9MKGZpeHVw X2dldF91c2VyX3NraXBfMSk7CiBFWFBPUlRfU1lNQk9MKGZpeHVwX2dldF91c2VyX3NraXBfMik7 CiBFWFBPUlRfU1lNQk9MKGZpeHVwX3B1dF91c2VyX3NraXBfMSk7CmRpZmYgLS1naXQgYS9hcmNo L3BhcmlzYy9rZXJuZWwvdHJhcHMuYyBiL2FyY2gvcGFyaXNjL2tlcm5lbC90cmFwcy5jCmluZGV4 IDQ3ZWU2MjBkMTVkMi4uMDVhYWIxMzMzZGZhIDEwMDY0NAotLS0gYS9hcmNoL3BhcmlzYy9rZXJu ZWwvdHJhcHMuYworKysgYi9hcmNoL3BhcmlzYy9rZXJuZWwvdHJhcHMuYwpAQCAtODAyLDYgKzgw Miw5IEBAIHZvaWQgbm90cmFjZSBoYW5kbGVfaW50ZXJydXB0aW9uKGludCBjb2RlLCBzdHJ1Y3Qg cHRfcmVncyAqcmVncykKIAogCSAgICBpZiAoZmF1bHRfc3BhY2UgPT0gMCAmJiAhaW5fYXRvbWlj KCkpCiAJICAgIHsKKwkJLyogQ2xlYW4gdXAgYW5kIHJldHVybiBpZiBpbiBleGNlcHRpb24gdGFi bGUuICovCisJCWlmIChmaXh1cF9leGNlcHRpb24ocmVncykpCisJCQlyZXR1cm47CiAJCXBkY19j aGFzc2lzX3NlbmRfc3RhdHVzKFBEQ19DSEFTU0lTX0RJUkVDVF9QQU5JQyk7CiAJCXBhcmlzY190 ZXJtaW5hdGUoIktlcm5lbCBGYXVsdCIsIHJlZ3MsIGNvZGUsIGZhdWx0X2FkZHJlc3MpOwogCSAg ICB9CmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9saWIvZml4dXAuUyBiL2FyY2gvcGFyaXNjL2xp Yi9maXh1cC5TCmluZGV4IGY4YzQ1Y2MyOTQ3ZC4uMTM4ZGQxZTVhODdhIDEwMDY0NAotLS0gYS9h cmNoL3BhcmlzYy9saWIvZml4dXAuUworKysgYi9hcmNoL3BhcmlzYy9saWIvZml4dXAuUwpAQCAt MjYsNiArMjYsNyBAQAogCiAjaWZkZWYgQ09ORklHX1NNUAogCS5tYWNybyAgZ2V0X2ZhdWx0X2lw IHQxIHQyCisJbG9hZGdwCiAJYWRkaWwgTFQlX19wZXJfY3B1X29mZnNldCwlcjI3CiAJTERSRUcg UlQlX19wZXJfY3B1X29mZnNldCglcjEpLFx0MQogCS8qIHQyID0gc21wX3Byb2Nlc3Nvcl9pZCgp ICovCkBAIC00MCwxNCArNDEsMTkgQEAKIAlMRFJFRyBSVCVleGNlcHRpb25fZGF0YSglcjEpLFx0 MQogCS8qIHQxID0gJl9fZ2V0X2NwdV92YXIoZXhjZXB0aW9uX2RhdGEpICovCiAJYWRkLGwgXHQx LFx0MixcdDEKKwkvKiAlcjI3ID0gdDEtPmZhdWx0X2dwIC0gcmVzdG9yZSBncCAqLworCUxEUkVH IEVYQ0RBVEFfR1AoXHQxKSwgJXIyNwogCS8qIHQxID0gdDEtPmZhdWx0X2lwICovCiAJTERSRUcg RVhDREFUQV9JUChcdDEpLCBcdDEKIAkuZW5kbQogI2Vsc2UKIAkubWFjcm8gIGdldF9mYXVsdF9p cCB0MSB0MgorCWxvYWRncAogCS8qIHQxID0gJl9fZ2V0X2NwdV92YXIoZXhjZXB0aW9uX2RhdGEp ICovCiAJYWRkaWwgTFQlZXhjZXB0aW9uX2RhdGEsJXIyNwogCUxEUkVHIFJUJWV4Y2VwdGlvbl9k YXRhKCVyMSksXHQyCisJLyogJXIyNyA9IHQyLT5mYXVsdF9ncCAtIHJlc3RvcmUgZ3AgKi8KKwlM RFJFRyBFWENEQVRBX0dQKFx0MiksICVyMjcKIAkvKiB0MSA9IHQyLT5mYXVsdF9pcCAqLwogCUxE UkVHIEVYQ0RBVEFfSVAoXHQyKSwgXHQxCiAJLmVuZG0KZGlmZiAtLWdpdCBhL2FyY2gvcGFyaXNj L21tL2ZhdWx0LmMgYi9hcmNoL3BhcmlzYy9tbS9mYXVsdC5jCmluZGV4IGU1MTIwZTY1MzI0MC4u NTBkNjRhN2ZjNjcyIDEwMDY0NAotLS0gYS9hcmNoL3BhcmlzYy9tbS9mYXVsdC5jCisrKyBiL2Fy Y2gvcGFyaXNjL21tL2ZhdWx0LmMKQEAgLTE1MSw2ICsxNTEsNyBAQCBpbnQgZml4dXBfZXhjZXB0 aW9uKHN0cnVjdCBwdF9yZWdzICpyZWdzKQogCQlzdHJ1Y3QgZXhjZXB0aW9uX2RhdGEgKmQ7CiAJ CWQgPSB0aGlzX2NwdV9wdHIoJmV4Y2VwdGlvbl9kYXRhKTsKIAkJZC0+ZmF1bHRfaXAgPSByZWdz LT5pYW9xWzBdOworCQlkLT5mYXVsdF9ncCA9IHJlZ3MtPmdyWzI3XTsKIAkJZC0+ZmF1bHRfc3Bh Y2UgPSByZWdzLT5pc3I7CiAJCWQtPmZhdWx0X2FkZHIgPSByZWdzLT5pb3I7CiAKZGlmZiAtLWdp dCBhL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9tbXVfY29udGV4dC5oIGIvYXJjaC9zMzkwL2luY2x1 ZGUvYXNtL21tdV9jb250ZXh0LmgKaW5kZXggMzgxNWJmZWExYjJkLi5kOTU4ZGU1M2QzNGEgMTAw NjQ0Ci0tLSBhL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9tbXVfY29udGV4dC5oCisrKyBiL2FyY2gv czM5MC9pbmNsdWRlL2FzbS9tbXVfY29udGV4dC5oCkBAIC0xNSwxNiArMTUsMjIgQEAKIHN0YXRp YyBpbmxpbmUgaW50IGluaXRfbmV3X2NvbnRleHQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssCiAJ CQkJICAgc3RydWN0IG1tX3N0cnVjdCAqbW0pCiB7CisJc3Bpbl9sb2NrX2luaXQoJm1tLT5jb250 ZXh0Lmxpc3RfbG9jayk7CisJSU5JVF9MSVNUX0hFQUQoJm1tLT5jb250ZXh0LnBndGFibGVfbGlz dCk7CisJSU5JVF9MSVNUX0hFQUQoJm1tLT5jb250ZXh0LmdtYXBfbGlzdCk7CiAJY3B1bWFza19j bGVhcigmbW0tPmNvbnRleHQuY3B1X2F0dGFjaF9tYXNrKTsKIAlhdG9taWNfc2V0KCZtbS0+Y29u dGV4dC5hdHRhY2hfY291bnQsIDApOwogCW1tLT5jb250ZXh0LmZsdXNoX21tID0gMDsKLQltbS0+ Y29udGV4dC5hc2NlX2JpdHMgPSBfQVNDRV9UQUJMRV9MRU5HVEggfCBfQVNDRV9VU0VSX0JJVFM7 Ci0jaWZkZWYgQ09ORklHXzY0QklUCi0JbW0tPmNvbnRleHQuYXNjZV9iaXRzIHw9IF9BU0NFX1RZ UEVfUkVHSU9OMzsKLSNlbmRpZgogCW1tLT5jb250ZXh0Lmhhc19wZ3N0ZSA9IDA7CiAJbW0tPmNv bnRleHQudXNlX3NrZXkgPSAwOwotCW1tLT5jb250ZXh0LmFzY2VfbGltaXQgPSBTVEFDS19UT1Bf TUFYOworCWlmIChtbS0+Y29udGV4dC5hc2NlX2xpbWl0ID09IDApIHsKKwkJLyogY29udGV4dCBj cmVhdGVkIGJ5IGV4ZWMsIHNldCBhc2NlIGxpbWl0IHRvIDRUQiAqLworCQltbS0+Y29udGV4dC5h c2NlX2JpdHMgPSBfQVNDRV9UQUJMRV9MRU5HVEggfCBfQVNDRV9VU0VSX0JJVFM7CisjaWZkZWYg Q09ORklHXzY0QklUCisJCW1tLT5jb250ZXh0LmFzY2VfYml0cyB8PSBfQVNDRV9UWVBFX1JFR0lP TjM7CisjZW5kaWYKKwkJbW0tPmNvbnRleHQuYXNjZV9saW1pdCA9IFNUQUNLX1RPUF9NQVg7CisJ fQogCWNyc3RfdGFibGVfaW5pdCgodW5zaWduZWQgbG9uZyAqKSBtbS0+cGdkLCBwZ2RfZW50cnlf dHlwZShtbSkpOwogCXJldHVybiAwOwogfQpAQCAtMTEwLDEwICsxMTYsNiBAQCBzdGF0aWMgaW5s aW5lIHZvaWQgYWN0aXZhdGVfbW0oc3RydWN0IG1tX3N0cnVjdCAqcHJldiwKIHN0YXRpYyBpbmxp bmUgdm9pZCBhcmNoX2R1cF9tbWFwKHN0cnVjdCBtbV9zdHJ1Y3QgKm9sZG1tLAogCQkJCSBzdHJ1 Y3QgbW1fc3RydWN0ICptbSkKIHsKLSNpZmRlZiBDT05GSUdfNjRCSVQKLQlpZiAob2xkbW0tPmNv bnRleHQuYXNjZV9saW1pdCA8IG1tLT5jb250ZXh0LmFzY2VfbGltaXQpCi0JCWNyc3RfdGFibGVf ZG93bmdyYWRlKG1tLCBvbGRtbS0+Y29udGV4dC5hc2NlX2xpbWl0KTsKLSNlbmRpZgogfQogCiBz dGF0aWMgaW5saW5lIHZvaWQgYXJjaF9leGl0X21tYXAoc3RydWN0IG1tX3N0cnVjdCAqbW0pCmRp ZmYgLS1naXQgYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vcGNpLmggYi9hcmNoL3MzOTAvaW5jbHVk ZS9hc20vcGNpLmgKaW5kZXggYzAzMDkwMDMyMGUwLi5mNDQ3MTRhNGEyOTIgMTAwNjQ0Ci0tLSBh L2FyY2gvczM5MC9pbmNsdWRlL2FzbS9wY2kuaAorKysgYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20v cGNpLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RydWN0IHpwY2lfZm1iIHsKIAlhdG9taWM2NF90IGFs bG9jYXRlZF9wYWdlczsKIAlhdG9taWM2NF90IG1hcHBlZF9wYWdlczsKIAlhdG9taWM2NF90IHVu bWFwcGVkX3BhZ2VzOwotfSBfX3BhY2tlZCBfX2FsaWduZWQoMTYpOworfSBfX3BhY2tlZCBfX2Fs aWduZWQoNjQpOwogCiAjZGVmaW5lIFpQQ0lfTVNJX1ZFQ19CSVRTCTExCiAjZGVmaW5lIFpQQ0lf TVNJX1ZFQ19NQVgJKDEgPDwgWlBDSV9NU0lfVkVDX0JJVFMpCmRpZmYgLS1naXQgYS9hcmNoL3Mz OTAvaW5jbHVkZS9hc20vcGdhbGxvYy5oIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL3BnYWxsb2Mu aAppbmRleCA5ZTE4YTYxZDNkZjMuLjllMGUxMTc2YTIyMiAxMDA2NDQKLS0tIGEvYXJjaC9zMzkw L2luY2x1ZGUvYXNtL3BnYWxsb2MuaAorKysgYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vcGdhbGxv Yy5oCkBAIC0xMjQsMTIgKzEyNCwyNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcHVkX3BvcHVsYXRl KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwdWRfdCAqcHVkLCBwbWRfdCAqcG1kKQogCiBzdGF0aWMg aW5saW5lIHBnZF90ICpwZ2RfYWxsb2Moc3RydWN0IG1tX3N0cnVjdCAqbW0pCiB7Ci0Jc3Bpbl9s b2NrX2luaXQoJm1tLT5jb250ZXh0Lmxpc3RfbG9jayk7Ci0JSU5JVF9MSVNUX0hFQUQoJm1tLT5j b250ZXh0LnBndGFibGVfbGlzdCk7Ci0JSU5JVF9MSVNUX0hFQUQoJm1tLT5jb250ZXh0LmdtYXBf bGlzdCk7Ci0JcmV0dXJuIChwZ2RfdCAqKSBjcnN0X3RhYmxlX2FsbG9jKG1tKTsKKwl1bnNpZ25l ZCBsb25nICp0YWJsZSA9IGNyc3RfdGFibGVfYWxsb2MobW0pOworCisJaWYgKCF0YWJsZSkKKwkJ cmV0dXJuIE5VTEw7CisJaWYgKG1tLT5jb250ZXh0LmFzY2VfbGltaXQgPT0gKDFVTCA8PCAzMSkp IHsKKwkJLyogRm9ya2luZyBhIGNvbXBhdCBwcm9jZXNzIHdpdGggMiBwYWdlIHRhYmxlIGxldmVs cyAqLworCQlpZiAoIXBndGFibGVfcG1kX3BhZ2VfY3Rvcih2aXJ0X3RvX3BhZ2UodGFibGUpKSkg eworCQkJY3JzdF90YWJsZV9mcmVlKG1tLCB0YWJsZSk7CisJCQlyZXR1cm4gTlVMTDsKKwkJfQor CX0KKwlyZXR1cm4gKHBnZF90ICopIHRhYmxlOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcGdk X2ZyZWUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBnZF90ICpwZ2QpCit7CisJaWYgKG1tLT5jb250 ZXh0LmFzY2VfbGltaXQgPT0gKDFVTCA8PCAzMSkpCisJCXBndGFibGVfcG1kX3BhZ2VfZHRvcih2 aXJ0X3RvX3BhZ2UocGdkKSk7CisJY3JzdF90YWJsZV9mcmVlKG1tLCAodW5zaWduZWQgbG9uZyAq KSBwZ2QpOwogfQotI2RlZmluZSBwZ2RfZnJlZShtbSwgcGdkKSBjcnN0X3RhYmxlX2ZyZWUobW0s ICh1bnNpZ25lZCBsb25nICopIHBnZCkKIAogc3RhdGljIGlubGluZSB2b2lkIHBtZF9wb3B1bGF0 ZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwKIAkJCQlwbWRfdCAqcG1kLCBwZ3RhYmxlX3QgcHRlKQpk aWZmIC0tZ2l0IGEvYXJjaC9zMzkwL3BjaS9wY2kuYyBiL2FyY2gvczM5MC9wY2kvcGNpLmMKaW5k ZXggMzBkZTQyNzMwYjJmLi5jY2RkOTgxZjNkMDAgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9wY2kv cGNpLmMKKysrIGIvYXJjaC9zMzkwL3BjaS9wY2kuYwpAQCAtODQwLDggKzg0MCwxMSBAQCBzdGF0 aWMgaW5saW5lIGludCBiYXJzaXplKHU4IHNpemUpCiAKIHN0YXRpYyBpbnQgenBjaV9tZW1faW5p dCh2b2lkKQogeworCUJVSUxEX0JVR19PTighaXNfcG93ZXJfb2ZfMihfX2FsaWdub2ZfXyhzdHJ1 Y3QgenBjaV9mbWIpKSB8fAorCQkgICAgIF9fYWxpZ25vZl9fKHN0cnVjdCB6cGNpX2ZtYikgPCBz aXplb2Yoc3RydWN0IHpwY2lfZm1iKSk7CisKIAl6ZGV2X2ZtYl9jYWNoZSA9IGttZW1fY2FjaGVf Y3JlYXRlKCJQQ0lfRk1CX2NhY2hlIiwgc2l6ZW9mKHN0cnVjdCB6cGNpX2ZtYiksCi0JCQkJMTYs IDAsIE5VTEwpOworCQkJCQkgICBfX2FsaWdub2ZfXyhzdHJ1Y3QgenBjaV9mbWIpLCAwLCBOVUxM KTsKIAlpZiAoIXpkZXZfZm1iX2NhY2hlKQogCQlnb3RvIGVycm9yX3pkZXY7CiAKZGlmZiAtLWdp dCBhL2FyY2gvdW0vZHJpdmVycy9tY29uc29sZV9rZXJuLmMgYi9hcmNoL3VtL2RyaXZlcnMvbWNv bnNvbGVfa2Vybi5jCmluZGV4IDI5ODgwYzliMzI0ZS4uZTIyZTU3Mjk4NTIyIDEwMDY0NAotLS0g YS9hcmNoL3VtL2RyaXZlcnMvbWNvbnNvbGVfa2Vybi5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy9t Y29uc29sZV9rZXJuLmMKQEAgLTEzMyw3ICsxMzMsNyBAQCB2b2lkIG1jb25zb2xlX3Byb2Moc3Ry dWN0IG1jX3JlcXVlc3QgKnJlcSkKIAlwdHIgKz0gc3RybGVuKCJwcm9jIik7CiAJcHRyID0gc2tp cF9zcGFjZXMocHRyKTsKIAotCWZpbGUgPSBmaWxlX29wZW5fcm9vdChtbnQtPm1udF9yb290LCBt bnQsIHB0ciwgT19SRE9OTFkpOworCWZpbGUgPSBmaWxlX29wZW5fcm9vdChtbnQtPm1udF9yb290 LCBtbnQsIHB0ciwgT19SRE9OTFksIDApOwogCWlmIChJU19FUlIoZmlsZSkpIHsKIAkJbWNvbnNv bGVfcmVwbHkocmVxLCAiRmFpbGVkIHRvIG9wZW4gZmlsZSIsIDEsIDApOwogCQlwcmludGsoS0VS Tl9FUlIgIm9wZW4gL3Byb2MvJXM6ICVsZFxuIiwgcHRyLCBQVFJfRVJSKGZpbGUpKTsKZGlmZiAt LWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FwaWMuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNt L2FwaWMuaAppbmRleCAxOWIwZWJhZmNkM2UuLmQyNDAxOGVmMTk3YSAxMDA2NDQKLS0tIGEvYXJj aC94ODYvaW5jbHVkZS9hc20vYXBpYy5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FwaWMu aApAQCAtNjg3LDggKzY4Nyw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBlbnRlcmluZ19pcnEodm9p ZCkKIAogc3RhdGljIGlubGluZSB2b2lkIGVudGVyaW5nX2Fja19pcnEodm9pZCkKIHsKLQlhY2tf QVBJQ19pcnEoKTsKIAllbnRlcmluZ19pcnEoKTsKKwlhY2tfQVBJQ19pcnEoKTsKIH0KIAogc3Rh dGljIGlubGluZSB2b2lkIGV4aXRpbmdfaXJxKHZvaWQpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9p bmNsdWRlL2FzbS9wZXJmX2V2ZW50LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZXJmX2V2ZW50 LmgKaW5kZXggODI0OWRmNDVkMmYyLi5iNTUyMjY3MmQ0N2MgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2 L2luY2x1ZGUvYXNtL3BlcmZfZXZlbnQuaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZXJm X2V2ZW50LmgKQEAgLTE1MSw2ICsxNTEsOCBAQCBzdHJ1Y3QgeDg2X3BtdV9jYXBhYmlsaXR5IHsK ICAqLwogI2RlZmluZSBJTlRFTF9QTUNfSURYX0ZJWEVEX0JUUwkJCQkoSU5URUxfUE1DX0lEWF9G SVhFRCArIDE2KQogCisjZGVmaW5lIEdMT0JBTF9TVEFUVVNfVFJBQ0VfVE9QQVBNSQkJCUJJVF9V TEwoNTUpCisKIC8qCiAgKiBJQlMgY3B1aWQgZmVhdHVyZSBkZXRlY3Rpb24KICAqLwpkaWZmIC0t Z2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9wZXJmX2V2ZW50LmMgYi9hcmNoL3g4Ni9rZXJuZWwv Y3B1L3BlcmZfZXZlbnQuYwppbmRleCA3YzA4ZjU1YTA3Y2QuLjcwZjVlYjI0NTU3ZCAxMDA2NDQK LS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9wZXJmX2V2ZW50LmMKKysrIGIvYXJjaC94ODYva2Vy bmVsL2NwdS9wZXJmX2V2ZW50LmMKQEAgLTUwNCw2ICs1MDQsMTkgQEAgdm9pZCB4ODZfcG11X2Rp c2FibGVfYWxsKHZvaWQpCiAJfQogfQogCisvKgorICogVGhlcmUgbWF5IGJlIFBNSSBsYW5kaW5n IGFmdGVyIGVuYWJsZWQ9MC4gVGhlIFBNSSBoaXR0aW5nIGNvdWxkIGJlIGJlZm9yZSBvcgorICog YWZ0ZXIgZGlzYWJsZV9hbGwuCisgKgorICogSWYgUE1JIGhpdHMgYmVmb3JlIGRpc2FibGVfYWxs LCB0aGUgUE1VIHdpbGwgYmUgZGlzYWJsZWQgaW4gdGhlIE5NSSBoYW5kbGVyLgorICogSXQgd2ls bCBub3QgYmUgcmUtZW5hYmxlZCBpbiB0aGUgTk1JIGhhbmRsZXIgYWdhaW4sIGJlY2F1c2UgZW5h YmxlZD0wLiBBZnRlcgorICogaGFuZGxpbmcgdGhlIE5NSSwgZGlzYWJsZV9hbGwgd2lsbCBiZSBj YWxsZWQsIHdoaWNoIHdpbGwgbm90IGNoYW5nZSB0aGUKKyAqIHN0YXRlIGVpdGhlci4gSWYgUE1J IGhpdHMgYWZ0ZXIgZGlzYWJsZV9hbGwsIHRoZSBQTVUgaXMgYWxyZWFkeSBkaXNhYmxlZAorICog YmVmb3JlIGVudGVyaW5nIE5NSSBoYW5kbGVyLiBUaGUgTk1JIGhhbmRsZXIgd2lsbCBub3QgY2hh bmdlIHRoZSBzdGF0ZQorICogZWl0aGVyLgorICoKKyAqIFNvIGVpdGhlciBzaXR1YXRpb24gaXMg aGFybWxlc3MuCisgKi8KIHN0YXRpYyB2b2lkIHg4Nl9wbXVfZGlzYWJsZShzdHJ1Y3QgcG11ICpw bXUpCiB7CiAJc3RydWN0IGNwdV9od19ldmVudHMgKmNwdWMgPSAmX19nZXRfY3B1X3ZhcihjcHVf aHdfZXZlbnRzKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvcGVyZl9ldmVudC5o IGIvYXJjaC94ODYva2VybmVsL2NwdS9wZXJmX2V2ZW50LmgKaW5kZXggOGFkZTkzMTExZTAzLi4z ZDM3YzA0NzE4YTUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvcGVyZl9ldmVudC5o CisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvcGVyZl9ldmVudC5oCkBAIC00NDcsNiArNDQ3LDcg QEAgc3RydWN0IHg4Nl9wbXUgewogCQkJcGVic19hY3RpdmUJOjEsCiAJCQlwZWJzX2Jyb2tlbgk6 MTsKIAlpbnQJCXBlYnNfcmVjb3JkX3NpemU7CisJaW50CQlwZWJzX2J1ZmZlcl9zaXplOwogCXZv aWQJCSgqZHJhaW5fcGVicykoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwogCXN0cnVjdCBldmVudF9j b25zdHJhaW50ICpwZWJzX2NvbnN0cmFpbnRzOwogCXZvaWQJCSgqcGVic19hbGlhc2VzKShzdHJ1 Y3QgcGVyZl9ldmVudCAqZXZlbnQpOwpAQCAtNzA1LDYgKzcwNiw4IEBAIHZvaWQgaW50ZWxfcG11 X2xicl9pbml0X2F0b20odm9pZCk7CiAKIHZvaWQgaW50ZWxfcG11X2xicl9pbml0X3NuYih2b2lk KTsKIAordm9pZCBpbnRlbF9wbXVfcGVic19kYXRhX3NvdXJjZV9uaG0odm9pZCk7CisKIGludCBp bnRlbF9wbXVfc2V0dXBfbGJyX2ZpbHRlcihzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQpOwogCiBp bnQgcDRfcG11X2luaXQodm9pZCk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L3Bl cmZfZXZlbnRfaW50ZWwuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvcGVyZl9ldmVudF9pbnRlbC5j CmluZGV4IDI1MDJkMGQ5ZDI0Ni4uMGY1NmYxNTU3M2U5IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9r ZXJuZWwvY3B1L3BlcmZfZXZlbnRfaW50ZWwuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L3Bl cmZfZXZlbnRfaW50ZWwuYwpAQCAtMTA0Myw2ICsxMDQzLDE3IEBAIHN0YXRpYyBpbmxpbmUgYm9v bCBpbnRlbF9wbXVfbmVlZHNfbGJyX3NtcGwoc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KQogCXJl dHVybiBmYWxzZTsKIH0KIAorLyoKKyAqIFVzZWQgZnJvbSBQTUlzIHdoZXJlIHRoZSBMQlJzIGFy ZSBhbHJlYWR5IGRpc2FibGVkLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gY291bGQgYmUgY2FsbGVk IGNvbnNlY3V0aXZlbHkuIEl0IGlzIHJlcXVpcmVkIHRvIHJlbWFpbiBpbgorICogZGlzYWJsZWQg c3RhdGUgaWYgY2FsbGVkIGNvbnNlY3V0aXZlbHkuCisgKgorICogRHVyaW5nIGNvbnNlY3V0aXZl IGNhbGxzLCB0aGUgc2FtZSBkaXNhYmxlIHZhbHVlIHdpbGwgYmUgd3JpdHRlbiB0byByZWxhdGVk CisgKiByZWdpc3RlcnMsIHNvIHRoZSBQTVUgc3RhdGUgcmVtYWlucyB1bmNoYW5nZWQuIGh3LnN0 YXRlIGluCisgKiBpbnRlbF9idHNfZGlzYWJsZV9sb2NhbCB3aWxsIHJlbWFpbiBQRVJGX0hFU19T VE9QUEVEIHRvbyBpbiBjb25zZWN1dGl2ZQorICogY2FsbHMuCisgKi8KIHN0YXRpYyB2b2lkIGlu dGVsX3BtdV9kaXNhYmxlX2FsbCh2b2lkKQogewogCXN0cnVjdCBjcHVfaHdfZXZlbnRzICpjcHVj ID0gJl9fZ2V0X2NwdV92YXIoY3B1X2h3X2V2ZW50cyk7CkBAIC0xMzk2LDYgKzE0MDcsMTYgQEAg YWdhaW46CiAJaWYgKF9fdGVzdF9hbmRfY2xlYXJfYml0KDYyLCAodW5zaWduZWQgbG9uZyAqKSZz dGF0dXMpKSB7CiAJCWhhbmRsZWQrKzsKIAkJeDg2X3BtdS5kcmFpbl9wZWJzKHJlZ3MpOworCQkv KgorCQkgKiBUaGVyZSBhcmUgY2FzZXMgd2hlcmUsIGV2ZW4gdGhvdWdoLCB0aGUgUEVCUyBvdmZs IGJpdCBpcyBzZXQKKwkJICogaW4gR0xPQkFMX09WRl9TVEFUVVMsIHRoZSBQRUJTIGV2ZW50cyBt YXkgYWxzbyBoYXZlIHRoZWlyCisJCSAqIG92ZXJmbG93IGJpdHMgc2V0IGZvciB0aGVpciBjb3Vu dGVycy4gV2UgbXVzdCBjbGVhciB0aGVtCisJCSAqIGhlcmUgYmVjYXVzZSB0aGV5IGhhdmUgYmVl biBwcm9jZXNzZWQgYXMgZXhhY3Qgc2FtcGxlcyBpbgorCQkgKiB0aGUgZHJhaW5fcGVicygpIHJv dXRpbmUuIFRoZXkgbXVzdCBub3QgYmUgcHJvY2Vzc2VkIGFnYWluCisJCSAqIGluIHRoZSBmb3Jf ZWFjaF9iaXRfc2V0KCkgbG9vcCBmb3IgcmVndWxhciBzYW1wbGVzIGJlbG93LgorCQkgKi8KKwkJ c3RhdHVzICY9IH5jcHVjLT5wZWJzX2VuYWJsZWQ7CisJCXN0YXR1cyAmPSB4ODZfcG11LmludGVs X2N0cmwgfCBHTE9CQUxfU1RBVFVTX1RSQUNFX1RPUEFQTUk7CiAJfQogCiAJLyoKQEAgLTE0MzMs NyArMTQ1NCwxMCBAQCBhZ2FpbjoKIAkJZ290byBhZ2FpbjsKIAogZG9uZToKLQlpbnRlbF9wbXVf ZW5hYmxlX2FsbCgwKTsKKwkvKiBPbmx5IHJlc3RvcmUgUE1VIHN0YXRlIHdoZW4gaXQncyBhY3Rp dmUuIFNlZSB4ODZfcG11X2Rpc2FibGUoKS4gKi8KKwlpZiAoY3B1Yy0+ZW5hYmxlZCkKKwkJaW50 ZWxfcG11X2VuYWJsZV9hbGwoMCk7CisKIAkvKgogCSAqIE9ubHkgdW5tYXNrIHRoZSBOTUkgYWZ0 ZXIgdGhlIG92ZXJmbG93IGNvdW50ZXJzCiAJICogaGF2ZSBiZWVuIHJlc2V0LiBUaGlzIGF2b2lk cyBzcHVyaW91cyBOTUlzIG9uCkBAIC0yNDEwLDYgKzI0MzQsNyBAQCBfX2luaXQgaW50IGludGVs X3BtdV9pbml0KHZvaWQpCiAJCWludGVsX3BlcmZtb25fZXZlbnRfbWFwW1BFUkZfQ09VTlRfSFdf U1RBTExFRF9DWUNMRVNfQkFDS0VORF0gPQogCQkJWDg2X0NPTkZJRyguZXZlbnQ9MHhiMSwgLnVt YXNrPTB4M2YsIC5pbnY9MSwgLmNtYXNrPTEpOwogCisJCWludGVsX3BtdV9wZWJzX2RhdGFfc291 cmNlX25obSgpOwogCQl4ODZfYWRkX3F1aXJrKGludGVsX25laGFsZW1fcXVpcmspOwogCiAJCXBy X2NvbnQoIk5laGFsZW0gZXZlbnRzLCAiKTsKQEAgLTI0NzEsNiArMjQ5Niw3IEBAIF9faW5pdCBp bnQgaW50ZWxfcG11X2luaXQodm9pZCkKIAkJaW50ZWxfcGVyZm1vbl9ldmVudF9tYXBbUEVSRl9D T1VOVF9IV19TVEFMTEVEX0NZQ0xFU19CQUNLRU5EXSA9CiAJCQlYODZfQ09ORklHKC5ldmVudD0w eGIxLCAudW1hc2s9MHgzZiwgLmludj0xLCAuY21hc2s9MSk7CiAKKwkJaW50ZWxfcG11X3BlYnNf ZGF0YV9zb3VyY2VfbmhtKCk7CiAJCXByX2NvbnQoIldlc3RtZXJlIGV2ZW50cywgIik7CiAJCWJy ZWFrOwogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L3BlcmZfZXZlbnRfaW50ZWxf ZHMuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvcGVyZl9ldmVudF9pbnRlbF9kcy5jCmluZGV4IDY5 NmFkZTMxMWRlZC4uYmFlMmJmYTJhZjBlIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1 L3BlcmZfZXZlbnRfaW50ZWxfZHMuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L3BlcmZfZXZl bnRfaW50ZWxfZHMuYwpAQCAtNTEsNyArNTEsOCBAQCB1bmlvbiBpbnRlbF94ODZfcGVic19kc2Ug ewogI2RlZmluZSBPUF9MSCAoUChPUCwgTE9BRCkgfCBQKExWTCwgSElUKSkKICNkZWZpbmUgU05P T1BfTk9ORV9NSVNTIChQKFNOT09QLCBOT05FKSB8IFAoU05PT1AsIE1JU1MpKQogCi1zdGF0aWMg Y29uc3QgdTY0IHBlYnNfZGF0YV9zb3VyY2VbXSA9IHsKKy8qIFZlcnNpb24gZm9yIFNhbmR5IEJy aWRnZSBhbmQgbGF0ZXIgKi8KK3N0YXRpYyB1NjQgcGVic19kYXRhX3NvdXJjZVtdID0gewogCVAo T1AsIExPQUQpIHwgUChMVkwsIE1JU1MpIHwgUChMVkwsIEwzKSB8IFAoU05PT1AsIE5BKSwvKiAw eDAwOnVrbiBMMyAqLwogCU9QX0xIIHwgUChMVkwsIEwxKSAgfCBQKFNOT09QLCBOT05FKSwJLyog MHgwMTogTDEgbG9jYWwgKi8KIAlPUF9MSCB8IFAoTFZMLCBMRkIpIHwgUChTTk9PUCwgTk9ORSks CS8qIDB4MDI6IExGQiBoaXQgKi8KQEAgLTcwLDYgKzcxLDE0IEBAIHN0YXRpYyBjb25zdCB1NjQg cGVic19kYXRhX3NvdXJjZVtdID0gewogCU9QX0xIIHwgUChMVkwsIFVOQykgfCBQKFNOT09QLCBO T05FKSwgLyogMHgwZjogdW5jYWNoZWQgKi8KIH07CiAKKy8qIFBhdGNoIHVwIG1pbm9yIGRpZmZl cmVuY2VzIGluIHRoZSBiaXRzICovCit2b2lkIF9faW5pdCBpbnRlbF9wbXVfcGVic19kYXRhX3Nv dXJjZV9uaG0odm9pZCkKK3sKKwlwZWJzX2RhdGFfc291cmNlWzB4MDVdID0gT1BfTEggfCBQKExW TCwgTDMpICB8IFAoU05PT1AsIEhJVCk7CisJcGVic19kYXRhX3NvdXJjZVsweDA2XSA9IE9QX0xI IHwgUChMVkwsIEwzKSAgfCBQKFNOT09QLCBISVRNKTsKKwlwZWJzX2RhdGFfc291cmNlWzB4MDdd ID0gT1BfTEggfCBQKExWTCwgTDMpICB8IFAoU05PT1AsIEhJVE0pOworfQorCiBzdGF0aWMgdTY0 IHByZWNpc2Vfc3RvcmVfZGF0YSh1NjQgc3RhdHVzKQogewogCXVuaW9uIGludGVsX3g4Nl9wZWJz X2RzZSBkc2U7CkBAIC0yNTcsNyArMjY2LDcgQEAgc3RhdGljIGludCBhbGxvY19wZWJzX2J1ZmZl cihpbnQgY3B1KQogCWlmICgheDg2X3BtdS5wZWJzKQogCQlyZXR1cm4gMDsKIAotCWJ1ZmZlciA9 IGt6YWxsb2Nfbm9kZShQRUJTX0JVRkZFUl9TSVpFLCBHRlBfS0VSTkVMLCBub2RlKTsKKwlidWZm ZXIgPSBremFsbG9jX25vZGUoeDg2X3BtdS5wZWJzX2J1ZmZlcl9zaXplLCBHRlBfS0VSTkVMLCBu b2RlKTsKIAlpZiAodW5saWtlbHkoIWJ1ZmZlcikpCiAJCXJldHVybiAtRU5PTUVNOwogCkBAIC0y NzQsNyArMjgzLDcgQEAgc3RhdGljIGludCBhbGxvY19wZWJzX2J1ZmZlcihpbnQgY3B1KQogCQlw ZXJfY3B1KGluc25fYnVmZmVyLCBjcHUpID0gaWJ1ZmZlcjsKIAl9CiAKLQltYXggPSBQRUJTX0JV RkZFUl9TSVpFIC8geDg2X3BtdS5wZWJzX3JlY29yZF9zaXplOworCW1heCA9IHg4Nl9wbXUucGVi c19idWZmZXJfc2l6ZSAvIHg4Nl9wbXUucGVic19yZWNvcmRfc2l6ZTsKIAogCWRzLT5wZWJzX2J1 ZmZlcl9iYXNlID0gKHU2NCkodW5zaWduZWQgbG9uZylidWZmZXI7CiAJZHMtPnBlYnNfaW5kZXgg PSBkcy0+cGVic19idWZmZXJfYmFzZTsKQEAgLTEwNjUsNiArMTA3NCw3IEBAIHZvaWQgaW50ZWxf ZHNfaW5pdCh2b2lkKQogCiAJeDg2X3BtdS5idHMgID0gYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJF X0JUUyk7CiAJeDg2X3BtdS5wZWJzID0gYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1BFQlMpOwor CXg4Nl9wbXUucGVic19idWZmZXJfc2l6ZSA9IFBFQlNfQlVGRkVSX1NJWkU7CiAJaWYgKHg4Nl9w bXUucGVicykgewogCQljaGFyIHBlYnNfdHlwZSA9IHg4Nl9wbXUuaW50ZWxfY2FwLnBlYnNfdHJh cCA/ICAnKycgOiAnLSc7CiAJCWludCBmb3JtYXQgPSB4ODZfcG11LmludGVsX2NhcC5wZWJzX2Zv cm1hdDsKQEAgLTEwNzMsNiArMTA4MywxNCBAQCB2b2lkIGludGVsX2RzX2luaXQodm9pZCkKIAkJ Y2FzZSAwOgogCQkJcHJpbnRrKEtFUk5fQ09OVCAiUEVCUyBmbXQwJWMsICIsIHBlYnNfdHlwZSk7 CiAJCQl4ODZfcG11LnBlYnNfcmVjb3JkX3NpemUgPSBzaXplb2Yoc3RydWN0IHBlYnNfcmVjb3Jk X2NvcmUpOworCQkJLyoKKwkJCSAqIFVzaW5nID5QQUdFX1NJWkUgYnVmZmVycyBtYWtlcyB0aGUg V1JNU1IgdG8KKwkJCSAqIFBFUkZfR0xPQkFMX0NUUkwgaW4gaW50ZWxfcG11X2VuYWJsZV9hbGwo KQorCQkJICogbXlzdGVyaW91c2x5IGhhbmcgb24gQ29yZTIuCisJCQkgKgorCQkJICogQXMgYSB3 b3JrYXJvdW5kLCB3ZSBkb24ndCBkbyB0aGlzLgorCQkJICovCisJCQl4ODZfcG11LnBlYnNfYnVm ZmVyX3NpemUgPSBQQUdFX1NJWkU7CiAJCQl4ODZfcG11LmRyYWluX3BlYnMgPSBpbnRlbF9wbXVf ZHJhaW5fcGVic19jb3JlOwogCQkJYnJlYWs7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5l bC9jcHUvcGVyZl9ldmVudF9rbmMuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvcGVyZl9ldmVudF9r bmMuYwppbmRleCA4MzhmYTg3NzJjNjIuLjgwOGVkZDlkMmFhMyAxMDA2NDQKLS0tIGEvYXJjaC94 ODYva2VybmVsL2NwdS9wZXJmX2V2ZW50X2tuYy5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUv cGVyZl9ldmVudF9rbmMuYwpAQCAtMjYzLDcgKzI2Myw5IEBAIGFnYWluOgogCQlnb3RvIGFnYWlu OwogCiBkb25lOgotCWtuY19wbXVfZW5hYmxlX2FsbCgwKTsKKwkvKiBPbmx5IHJlc3RvcmUgUE1V IHN0YXRlIHdoZW4gaXQncyBhY3RpdmUuIFNlZSB4ODZfcG11X2Rpc2FibGUoKS4gKi8KKwlpZiAo Y3B1Yy0+ZW5hYmxlZCkKKwkJa25jX3BtdV9lbmFibGVfYWxsKDApOwogCiAJcmV0dXJuIGhhbmRs ZWQ7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaW9wb3J0LmMgYi9hcmNoL3g4Ni9r ZXJuZWwvaW9wb3J0LmMKaW5kZXggNGRkYWY2NmVhMzVmLi43OTI2MjFhMzI0NTcgMTAwNjQ0Ci0t LSBhL2FyY2gveDg2L2tlcm5lbC9pb3BvcnQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvaW9wb3J0 LmMKQEAgLTk2LDkgKzk2LDE0IEBAIGFzbWxpbmthZ2UgbG9uZyBzeXNfaW9wZXJtKHVuc2lnbmVk IGxvbmcgZnJvbSwgdW5zaWduZWQgbG9uZyBudW0sIGludCB0dXJuX29uKQogU1lTQ0FMTF9ERUZJ TkUxKGlvcGwsIHVuc2lnbmVkIGludCwgbGV2ZWwpCiB7CiAJc3RydWN0IHB0X3JlZ3MgKnJlZ3Mg PSBjdXJyZW50X3B0X3JlZ3MoKTsKLQl1bnNpZ25lZCBpbnQgb2xkID0gKHJlZ3MtPmZsYWdzID4+ IDEyKSAmIDM7CiAJc3RydWN0IHRocmVhZF9zdHJ1Y3QgKnQgPSAmY3VycmVudC0+dGhyZWFkOwog CisJLyoKKwkgKiBDYXJlZnVsOiB0aGUgSU9QTCBiaXRzIGluIHJlZ3MtPmZsYWdzIGFyZSB1bmRl ZmluZWQgdW5kZXIgWGVuIFBWCisJICogYW5kIGNoYW5naW5nIHRoZW0gaGFzIG5vIGVmZmVjdC4K KwkgKi8KKwl1bnNpZ25lZCBpbnQgb2xkID0gdC0+aW9wbCA+PiBYODZfRUZMQUdTX0lPUExfQklU OworCiAJaWYgKGxldmVsID4gMykKIAkJcmV0dXJuIC1FSU5WQUw7CiAJLyogVHJ5aW5nIHRvIGdh aW4gbW9yZSBwcml2aWxlZ2VzPyAqLwpAQCAtMTA2LDggKzExMSw5IEBAIFNZU0NBTExfREVGSU5F MShpb3BsLCB1bnNpZ25lZCBpbnQsIGxldmVsKQogCQlpZiAoIWNhcGFibGUoQ0FQX1NZU19SQVdJ TykpCiAJCQlyZXR1cm4gLUVQRVJNOwogCX0KLQlyZWdzLT5mbGFncyA9IChyZWdzLT5mbGFncyAm IH5YODZfRUZMQUdTX0lPUEwpIHwgKGxldmVsIDw8IDEyKTsKLQl0LT5pb3BsID0gbGV2ZWwgPDwg MTI7CisJcmVncy0+ZmxhZ3MgPSAocmVncy0+ZmxhZ3MgJiB+WDg2X0VGTEFHU19JT1BMKSB8CisJ CShsZXZlbCA8PCBYODZfRUZMQUdTX0lPUExfQklUKTsKKwl0LT5pb3BsID0gbGV2ZWwgPDwgWDg2 X0VGTEFHU19JT1BMX0JJVDsKIAlzZXRfaW9wbF9tYXNrKHQtPmlvcGwpOwogCiAJcmV0dXJuIDA7 CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vaTgyNTQuYyBiL2FyY2gveDg2L2t2bS9pODI1NC5j CmluZGV4IGYyMDA2ZTY1YTIzOC4uNGFmMmY4ZjE5Njc1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9r dm0vaTgyNTQuYworKysgYi9hcmNoL3g4Ni9rdm0vaTgyNTQuYwpAQCAtMjQ0LDcgKzI0NCw3IEBA IHN0YXRpYyB2b2lkIGt2bV9waXRfYWNrX2lycShzdHJ1Y3Qga3ZtX2lycV9hY2tfbm90aWZpZXIg KmtpYW4pCiAJCSAqIFBJQyBpcyBiZWluZyByZXNldC4gIEhhbmRsZSBpdCBncmFjZWZ1bGx5IGhl cmUKIAkJICovCiAJCWF0b21pY19pbmMoJnBzLT5wZW5kaW5nKTsKLQllbHNlIGlmICh2YWx1ZSA+ IDApCisJZWxzZSBpZiAodmFsdWUgPiAwICYmIHBzLT5yZWluamVjdCkKIAkJLyogaW4gdGhpcyBj YXNlLCB3ZSBoYWQgbXVsdGlwbGUgb3V0c3RhbmRpbmcgcGl0IGludGVycnVwdHMKIAkJICogdGhh dCB3ZSBuZWVkZWQgdG8gaW5qZWN0LiAgUmVpbmplY3QKIAkJICovCkBAIC0yODcsNyArMjg3LDkg QEAgc3RhdGljIHZvaWQgcGl0X2RvX3dvcmsoc3RydWN0IGt0aHJlYWRfd29yayAqd29yaykKIAkg KiBsYXN0IG9uZSBoYXMgYmVlbiBhY2tlZC4KIAkgKi8KIAlzcGluX2xvY2soJnBzLT5pbmplY3Rf bG9jayk7Ci0JaWYgKHBzLT5pcnFfYWNrKSB7CisJaWYgKCFwcy0+cmVpbmplY3QpCisJCWluamVj dCA9IDE7CisJZWxzZSBpZiAocHMtPmlycV9hY2spIHsKIAkJcHMtPmlycV9hY2sgPSAwOwogCQlp bmplY3QgPSAxOwogCX0KQEAgLTMxNiwxMCArMzE4LDEwIEBAIHN0YXRpYyBlbnVtIGhydGltZXJf cmVzdGFydCBwaXRfdGltZXJfZm4oc3RydWN0IGhydGltZXIgKmRhdGEpCiAJc3RydWN0IGt2bV9r cGl0X3N0YXRlICpwcyA9IGNvbnRhaW5lcl9vZihkYXRhLCBzdHJ1Y3Qga3ZtX2twaXRfc3RhdGUs IHRpbWVyKTsKIAlzdHJ1Y3Qga3ZtX3BpdCAqcHQgPSBwcy0+a3ZtLT5hcmNoLnZwaXQ7CiAKLQlp ZiAocHMtPnJlaW5qZWN0IHx8ICFhdG9taWNfcmVhZCgmcHMtPnBlbmRpbmcpKSB7CisJaWYgKHBz LT5yZWluamVjdCkKIAkJYXRvbWljX2luYygmcHMtPnBlbmRpbmcpOwotCQlxdWV1ZV9rdGhyZWFk X3dvcmsoJnB0LT53b3JrZXIsICZwdC0+ZXhwaXJlZCk7Ci0JfQorCisJcXVldWVfa3RocmVhZF93 b3JrKCZwdC0+d29ya2VyLCAmcHQtPmV4cGlyZWQpOwogCiAJaWYgKHBzLT5pc19wZXJpb2RpYykg ewogCQlocnRpbWVyX2FkZF9leHBpcmVzX25zKCZwcy0+dGltZXIsIHBzLT5wZXJpb2QpOwpkaWZm IC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC5jIGIvYXJjaC94ODYva3ZtL3ZteC5jCmluZGV4IGU3 Y2Q0YzgzM2M0MC4uZTg5MGMwMzk4ZDYyIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0vdm14LmMK KysrIGIvYXJjaC94ODYva3ZtL3ZteC5jCkBAIC02NjAxLDYgKzY2MDEsNyBAQCBzdGF0aWMgaW50 IGhhbmRsZV9pbnZlcHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCWlmICghKHR5cGVzICYgKDFV TCA8PCB0eXBlKSkpIHsKIAkJbmVzdGVkX3ZteF9mYWlsVmFsaWQodmNwdSwKIAkJCQlWTVhFUlJf SU5WQUxJRF9PUEVSQU5EX1RPX0lOVkVQVF9JTlZWUElEKTsKKwkJc2tpcF9lbXVsYXRlZF9pbnN0 cnVjdGlvbih2Y3B1KTsKIAkJcmV0dXJuIDE7CiAJfQogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9r dm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmMKaW5kZXggODllMDZlYzM5ZGQ3Li4yNmE0NTQx ZTE5MGEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS94ODYuYworKysgYi9hcmNoL3g4Ni9rdm0v eDg2LmMKQEAgLTU5MTEsMTIgKzU5MTEsMTAgQEAgc3RhdGljIGludCBpbmplY3RfcGVuZGluZ19l dmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgcmVxX2ludF93aW4pCiAJfQogCiAJLyog dHJ5IHRvIGluamVjdCBuZXcgZXZlbnQgaWYgcGVuZGluZyAqLwotCWlmICh2Y3B1LT5hcmNoLm5t aV9wZW5kaW5nKSB7Ci0JCWlmIChrdm1feDg2X29wcy0+bm1pX2FsbG93ZWQodmNwdSkpIHsKLQkJ CS0tdmNwdS0+YXJjaC5ubWlfcGVuZGluZzsKLQkJCXZjcHUtPmFyY2gubm1pX2luamVjdGVkID0g dHJ1ZTsKLQkJCWt2bV94ODZfb3BzLT5zZXRfbm1pKHZjcHUpOwotCQl9CisJaWYgKHZjcHUtPmFy Y2gubm1pX3BlbmRpbmcgJiYga3ZtX3g4Nl9vcHMtPm5taV9hbGxvd2VkKHZjcHUpKSB7CisJCS0t dmNwdS0+YXJjaC5ubWlfcGVuZGluZzsKKwkJdmNwdS0+YXJjaC5ubWlfaW5qZWN0ZWQgPSB0cnVl OworCQlrdm1feDg2X29wcy0+c2V0X25taSh2Y3B1KTsKIAl9IGVsc2UgaWYgKGt2bV9jcHVfaGFz X2luamVjdGFibGVfaW50cih2Y3B1KSkgewogCQkvKgogCQkgKiBCZWNhdXNlIGludGVycnVwdHMg Y2FuIGJlIGluamVjdGVkIGFzeW5jaHJvbm91c2x5LCB3ZSBhcmUKQEAgLTYwNDQsMTAgKzYwNDIs MTIgQEAgc3RhdGljIGludCB2Y3B1X2VudGVyX2d1ZXN0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkK IAkJaWYgKGluamVjdF9wZW5kaW5nX2V2ZW50KHZjcHUsIHJlcV9pbnRfd2luKSAhPSAwKQogCQkJ cmVxX2ltbWVkaWF0ZV9leGl0ID0gdHJ1ZTsKIAkJLyogZW5hYmxlIE5NSS9JUlEgd2luZG93IG9w ZW4gZXhpdHMgaWYgbmVlZGVkICovCi0JCWVsc2UgaWYgKHZjcHUtPmFyY2gubm1pX3BlbmRpbmcp Ci0JCQlrdm1feDg2X29wcy0+ZW5hYmxlX25taV93aW5kb3codmNwdSk7Ci0JCWVsc2UgaWYgKGt2 bV9jcHVfaGFzX2luamVjdGFibGVfaW50cih2Y3B1KSB8fCByZXFfaW50X3dpbikKLQkJCWt2bV94 ODZfb3BzLT5lbmFibGVfaXJxX3dpbmRvdyh2Y3B1KTsKKwkJZWxzZSB7CisJCQlpZiAodmNwdS0+ YXJjaC5ubWlfcGVuZGluZykKKwkJCQlrdm1feDg2X29wcy0+ZW5hYmxlX25taV93aW5kb3codmNw dSk7CisJCQlpZiAoa3ZtX2NwdV9oYXNfaW5qZWN0YWJsZV9pbnRyKHZjcHUpIHx8IHJlcV9pbnRf d2luKQorCQkJCWt2bV94ODZfb3BzLT5lbmFibGVfaXJxX3dpbmRvdyh2Y3B1KTsKKwkJfQogCiAJ CWlmIChrdm1fbGFwaWNfZW5hYmxlZCh2Y3B1KSkgewogCQkJLyoKZGlmZiAtLWdpdCBhL2FyY2gv eDg2L21tL21tYXAuYyBiL2FyY2gveDg2L21tL21tYXAuYwppbmRleCAzNjAxZmYyODRiOTIuLjJj ZDg5YmU2YmI0YSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vbW1hcC5jCisrKyBiL2FyY2gveDg2 L21tL21tYXAuYwpAQCAtNjcsMjIgKzY3LDIxIEBAIHN0YXRpYyBpbnQgbW1hcF9pc19sZWdhY3ko dm9pZCkKIAogc3RhdGljIHVuc2lnbmVkIGxvbmcgbW1hcF9ybmQodm9pZCkKIHsKLQl1bnNpZ25l ZCBsb25nIHJuZCA9IDA7CisJdW5zaWduZWQgbG9uZyBybmQ7CiAKIAkvKgotCSogIDggYml0cyBv ZiByYW5kb21uZXNzIGluIDMyYml0IG1tYXBzLCAyMCBhZGRyZXNzIHNwYWNlIGJpdHMKLQkqIDI4 IGJpdHMgb2YgcmFuZG9tbmVzcyBpbiA2NGJpdCBtbWFwcywgNDAgYWRkcmVzcyBzcGFjZSBiaXRz Ci0JKi8KLQlpZiAoY3VycmVudC0+ZmxhZ3MgJiBQRl9SQU5ET01JWkUpIHsKLQkJaWYgKG1tYXBf aXNfaWEzMigpKQotCQkJcm5kID0gZ2V0X3JhbmRvbV9pbnQoKSAlICgxPDw4KTsKLQkJZWxzZQot CQkJcm5kID0gZ2V0X3JhbmRvbV9pbnQoKSAlICgxPDwyOCk7Ci0JfQorCSAqICA4IGJpdHMgb2Yg cmFuZG9tbmVzcyBpbiAzMmJpdCBtbWFwcywgMjAgYWRkcmVzcyBzcGFjZSBiaXRzCisJICogMjgg Yml0cyBvZiByYW5kb21uZXNzIGluIDY0Yml0IG1tYXBzLCA0MCBhZGRyZXNzIHNwYWNlIGJpdHMK KwkgKi8KKwlpZiAobW1hcF9pc19pYTMyKCkpCisJCXJuZCA9ICh1bnNpZ25lZCBsb25nKWdldF9y YW5kb21faW50KCkgJSAoMTw8OCk7CisJZWxzZQorCQlybmQgPSAodW5zaWduZWQgbG9uZylnZXRf cmFuZG9tX2ludCgpICUgKDE8PDI4KTsKKwogCXJldHVybiBybmQgPDwgUEFHRV9TSElGVDsKIH0K IAotc3RhdGljIHVuc2lnbmVkIGxvbmcgbW1hcF9iYXNlKHZvaWQpCitzdGF0aWMgdW5zaWduZWQg bG9uZyBtbWFwX2Jhc2UodW5zaWduZWQgbG9uZyBybmQpCiB7CiAJdW5zaWduZWQgbG9uZyBnYXAg PSBybGltaXQoUkxJTUlUX1NUQUNLKTsKIApAQCAtOTEsMTkgKzkwLDcgQEAgc3RhdGljIHVuc2ln bmVkIGxvbmcgbW1hcF9iYXNlKHZvaWQpCiAJZWxzZSBpZiAoZ2FwID4gTUFYX0dBUCkKIAkJZ2Fw ID0gTUFYX0dBUDsKIAotCXJldHVybiBQQUdFX0FMSUdOKFRBU0tfU0laRSAtIGdhcCAtIG1tYXBf cm5kKCkpOwotfQotCi0vKgotICogQm90dG9tLXVwIChsZWdhY3kpIGxheW91dCBvbiBYODZfMzIg ZGlkIG5vdCBzdXBwb3J0IHJhbmRvbWl6YXRpb24sIFg4Nl82NAotICogZG9lcywgYnV0IG5vdCB3 aGVuIGVtdWxhdGluZyBYODZfMzIKLSAqLwotc3RhdGljIHVuc2lnbmVkIGxvbmcgbW1hcF9sZWdh Y3lfYmFzZSh2b2lkKQotewotCWlmIChtbWFwX2lzX2lhMzIoKSkKLQkJcmV0dXJuIFRBU0tfVU5N QVBQRURfQkFTRTsKLQllbHNlCi0JCXJldHVybiBUQVNLX1VOTUFQUEVEX0JBU0UgKyBtbWFwX3Ju ZCgpOworCXJldHVybiBQQUdFX0FMSUdOKFRBU0tfU0laRSAtIGdhcCAtIHJuZCk7CiB9CiAKIC8q CkBAIC0xMTIsMTMgKzk5LDE4IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIG1tYXBfbGVnYWN5X2Jh c2Uodm9pZCkKICAqLwogdm9pZCBhcmNoX3BpY2tfbW1hcF9sYXlvdXQoc3RydWN0IG1tX3N0cnVj dCAqbW0pCiB7Ci0JbW0tPm1tYXBfbGVnYWN5X2Jhc2UgPSBtbWFwX2xlZ2FjeV9iYXNlKCk7Ci0J bW0tPm1tYXBfYmFzZSA9IG1tYXBfYmFzZSgpOworCXVuc2lnbmVkIGxvbmcgcmFuZG9tX2ZhY3Rv ciA9IDBVTDsKKworCWlmIChjdXJyZW50LT5mbGFncyAmIFBGX1JBTkRPTUlaRSkKKwkJcmFuZG9t X2ZhY3RvciA9IG1tYXBfcm5kKCk7CisKKwltbS0+bW1hcF9sZWdhY3lfYmFzZSA9IFRBU0tfVU5N QVBQRURfQkFTRSArIHJhbmRvbV9mYWN0b3I7CiAKIAlpZiAobW1hcF9pc19sZWdhY3koKSkgewog CQltbS0+bW1hcF9iYXNlID0gbW0tPm1tYXBfbGVnYWN5X2Jhc2U7CiAJCW1tLT5nZXRfdW5tYXBw ZWRfYXJlYSA9IGFyY2hfZ2V0X3VubWFwcGVkX2FyZWE7CiAJfSBlbHNlIHsKKwkJbW0tPm1tYXBf YmFzZSA9IG1tYXBfYmFzZShyYW5kb21fZmFjdG9yKTsKIAkJbW0tPmdldF91bm1hcHBlZF9hcmVh ID0gYXJjaF9nZXRfdW5tYXBwZWRfYXJlYV90b3Bkb3duOwogCX0KIH0KZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L3BjaS9maXh1cC5jIGIvYXJjaC94ODYvcGNpL2ZpeHVwLmMKaW5kZXggOWEyYjcxMDFh ZThhLi5mMTZhZjk2YzYwYTIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3BjaS9maXh1cC5jCisrKyBi L2FyY2gveDg2L3BjaS9maXh1cC5jCkBAIC01NTMsMyArNTUzLDEwIEBAIHN0YXRpYyB2b2lkIHR3 aW5oZWFkX3Jlc2VydmVfa2lsbGluZ196b25lKHN0cnVjdCBwY2lfZGV2ICpkZXYpCiAgICAgICAg IH0KIH0KIERFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX0lOVEVMLCAweDI3 QjksIHR3aW5oZWFkX3Jlc2VydmVfa2lsbGluZ196b25lKTsKKworc3RhdGljIHZvaWQgcGNpX2Jk d2VwX2JhcihzdHJ1Y3QgcGNpX2RldiAqZGV2KQoreworCWRldi0+bm9uX2NvbXBsaWFudF9iYXJz ID0gMTsKK30KK0RFQ0xBUkVfUENJX0ZJWFVQX0VBUkxZKFBDSV9WRU5ET1JfSURfSU5URUwsIDB4 NmZhMCwgcGNpX2Jkd2VwX2Jhcik7CitERUNMQVJFX1BDSV9GSVhVUF9FQVJMWShQQ0lfVkVORE9S X0lEX0lOVEVMLCAweDZmYzAsIHBjaV9iZHdlcF9iYXIpOwpkaWZmIC0tZ2l0IGEvYXJjaC94dGVu c2Eva2VybmVsL2hlYWQuUyBiL2FyY2gveHRlbnNhL2tlcm5lbC9oZWFkLlMKaW5kZXggMzg0YTQ5 N2Q4NTY2Li45ZDBhYmVlYjY1MzMgMTAwNjQ0Ci0tLSBhL2FyY2gveHRlbnNhL2tlcm5lbC9oZWFk LlMKKysrIGIvYXJjaC94dGVuc2Eva2VybmVsL2hlYWQuUwpAQCAtMTIzLDcgKzEyMyw3IEBAIEVO VFJZKF9zdGFydHVwKQogCXdzcglhMCwgaWNvdW50bGV2ZWwKIAogCS5zZXQJX2luZGV4LCAwCi0J LnJlcHQJWENIQUxfTlVNX0RCUkVBSyAtIDEKKwkucmVwdAlYQ0hBTF9OVU1fREJSRUFLCiAJd3Ny CWEwLCBTUkVHX0RCUkVBS0MgKyBfaW5kZXgKIAkuc2V0CV9pbmRleCwgX2luZGV4ICsgMQogCS5l bmRyCmRpZmYgLS1naXQgYS9hcmNoL3h0ZW5zYS9wbGF0Zm9ybXMvaXNzL2NvbnNvbGUuYyBiL2Fy Y2gveHRlbnNhL3BsYXRmb3Jtcy9pc3MvY29uc29sZS5jCmluZGV4IDcwY2I0MDhiYzIwZC4uOTJk Nzg1ZmVmYjZkIDEwMDY0NAotLS0gYS9hcmNoL3h0ZW5zYS9wbGF0Zm9ybXMvaXNzL2NvbnNvbGUu YworKysgYi9hcmNoL3h0ZW5zYS9wbGF0Zm9ybXMvaXNzL2NvbnNvbGUuYwpAQCAtMTAwLDIxICsx MDAsMjMgQEAgc3RhdGljIHZvaWQgcnNfcG9sbCh1bnNpZ25lZCBsb25nIHByaXYpCiB7CiAJc3Ry dWN0IHR0eV9wb3J0ICpwb3J0ID0gKHN0cnVjdCB0dHlfcG9ydCAqKXByaXY7CiAJaW50IGkgPSAw OworCWludCByZCA9IDE7CiAJdW5zaWduZWQgY2hhciBjOwogCiAJc3Bpbl9sb2NrKCZ0aW1lcl9s b2NrKTsKIAogCXdoaWxlIChzaW1jX3BvbGwoMCkpIHsKLQkJc2ltY19yZWFkKDAsICZjLCAxKTsK KwkJcmQgPSBzaW1jX3JlYWQoMCwgJmMsIDEpOworCQlpZiAocmQgPD0gMCkKKwkJCWJyZWFrOwog CQl0dHlfaW5zZXJ0X2ZsaXBfY2hhcihwb3J0LCBjLCBUVFlfTk9STUFMKTsKIAkJaSsrOwogCX0K IAogCWlmIChpKQogCQl0dHlfZmxpcF9idWZmZXJfcHVzaChwb3J0KTsKLQotCi0JbW9kX3RpbWVy KCZzZXJpYWxfdGltZXIsIGppZmZpZXMgKyBTRVJJQUxfVElNRVJfVkFMVUUpOworCWlmIChyZCkK KwkJbW9kX3RpbWVyKCZzZXJpYWxfdGltZXIsIGppZmZpZXMgKyBTRVJJQUxfVElNRVJfVkFMVUUp OwogCXNwaW5fdW5sb2NrKCZ0aW1lcl9sb2NrKTsKIH0KIApkaWZmIC0tZ2l0IGEvY3J5cHRvL2dj bS5jIGIvY3J5cHRvL2djbS5jCmluZGV4IDljZWE0ZDBiNjkwNC4uZjBiZDAwYjE1ZjI2IDEwMDY0 NAotLS0gYS9jcnlwdG8vZ2NtLmMKKysrIGIvY3J5cHRvL2djbS5jCkBAIC0xMTczLDYgKzExNzMs OSBAQCBzdGF0aWMgc3RydWN0IGFlYWRfcmVxdWVzdCAqY3J5cHRvX3JmYzQ1NDNfY3J5cHQoc3Ry dWN0IGFlYWRfcmVxdWVzdCAqcmVxLAogCWFlYWRfcmVxdWVzdF9zZXRfdGZtKHN1YnJlcSwgY3R4 LT5jaGlsZCk7CiAJYWVhZF9yZXF1ZXN0X3NldF9jYWxsYmFjayhzdWJyZXEsIHJlcS0+YmFzZS5m bGFncywgY3J5cHRvX3JmYzQ1NDNfZG9uZSwKIAkJCQkgIHJlcSk7CisJaWYgKCFlbmMpCisJCWFl YWRfcmVxdWVzdF9zZXRfY2FsbGJhY2soc3VicmVxLCByZXEtPmJhc2UuZmxhZ3MsCisJCQkJCSAg cmVxLT5iYXNlLmNvbXBsZXRlLCByZXEtPmJhc2UuZGF0YSk7CiAJYWVhZF9yZXF1ZXN0X3NldF9j cnlwdChzdWJyZXEsIGNpcGhlciwgY2lwaGVyLCBlbmMgPyAwIDogYXV0aHNpemUsIGl2KTsKIAlh ZWFkX3JlcXVlc3Rfc2V0X2Fzc29jKHN1YnJlcSwgYXNzb2MsIGFzc29jbGVuKTsKIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ibG9jay9tdGlwMzJ4eC9tdGlwMzJ4eC5jIGIvZHJpdmVycy9ibG9jay9t dGlwMzJ4eC9tdGlwMzJ4eC5jCmluZGV4IDI5NWYzYWZiYmVmNS4uOTMyMmU4NDg2NGQ1IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2Jsb2NrL210aXAzMnh4L210aXAzMnh4LmMKKysrIGIvZHJpdmVycy9i bG9jay9tdGlwMzJ4eC9tdGlwMzJ4eC5jCkBAIC02MjEsOCArNjIxLDYgQEAgc3RhdGljIHZvaWQg bXRpcF9oYW5kbGVfdGZlKHN0cnVjdCBkcml2ZXJfZGF0YSAqZGQpCiAKIAlwb3J0ID0gZGQtPnBv cnQ7CiAKLQlzZXRfYml0KE1USVBfUEZfRUhfQUNUSVZFX0JJVCwgJnBvcnQtPmZsYWdzKTsKLQog CWlmICh0ZXN0X2JpdChNVElQX1BGX0lDX0FDVElWRV9CSVQsICZwb3J0LT5mbGFncykgJiYKIAkJ CXRlc3RfYml0KE1USVBfVEFHX0lOVEVSTkFMLCBwb3J0LT5hbGxvY2F0ZWQpKSB7CiAJCWNtZCA9 IG10aXBfY21kX2Zyb21fdGFnKGRkLCBNVElQX1RBR19JTlRFUk5BTCk7CkBAIC02MzIsNyArNjMw LDcgQEAgc3RhdGljIHZvaWQgbXRpcF9oYW5kbGVfdGZlKHN0cnVjdCBkcml2ZXJfZGF0YSAqZGQp CiAJCQljbWQtPmNvbXBfZnVuYyhwb3J0LCBNVElQX1RBR19JTlRFUk5BTCwKIAkJCQkJY21kLCBQ T1JUX0lSUV9URl9FUlIpOwogCQl9Ci0JCWdvdG8gaGFuZGxlX3RmZV9leGl0OworCQlyZXR1cm47 CiAJfQogCiAJLyogY2xlYXIgdGhlIHRhZyBhY2N1bXVsYXRvciAqLwpAQCAtNzc1LDExICs3NzMs NiBAQCBzdGF0aWMgdm9pZCBtdGlwX2hhbmRsZV90ZmUoc3RydWN0IGRyaXZlcl9kYXRhICpkZCkK IAkJfQogCX0KIAlwcmludF90YWdzKGRkLCAicmVpc3N1ZWQgKFRGRSkiLCB0YWdhY2N1bSwgY21k X2NudCk7Ci0KLWhhbmRsZV90ZmVfZXhpdDoKLQkvKiBjbGVhciBlaF9hY3RpdmUgKi8KLQljbGVh cl9iaXQoTVRJUF9QRl9FSF9BQ1RJVkVfQklULCAmcG9ydC0+ZmxhZ3MpOwotCXdha2VfdXBfaW50 ZXJydXB0aWJsZSgmcG9ydC0+c3ZjX3dhaXQpOwogfQogCiAvKgpAQCAtMjk4Miw5ICsyOTc1LDcg QEAgc3RhdGljIGludCBtdGlwX3NlcnZpY2VfdGhyZWFkKHZvaWQgKmRhdGEpCiAJCSAqIGlzIGlu IHByb2dyZXNzIG5vciBlcnJvciBoYW5kbGluZyBpcyBhY3RpdmUKIAkJICovCiAJCXdhaXRfZXZl bnRfaW50ZXJydXB0aWJsZShwb3J0LT5zdmNfd2FpdCwgKHBvcnQtPmZsYWdzKSAmJgotCQkJIShw b3J0LT5mbGFncyAmIE1USVBfUEZfUEFVU0VfSU8pKTsKLQotCQlzZXRfYml0KE1USVBfUEZfU1ZD X1RIRF9BQ1RJVkVfQklULCAmcG9ydC0+ZmxhZ3MpOworCQkJKHBvcnQtPmZsYWdzICYgTVRJUF9Q Rl9TVkNfVEhEX1dPUkspKTsKIAogCQlpZiAoa3RocmVhZF9zaG91bGRfc3RvcCgpIHx8CiAJCQl0 ZXN0X2JpdChNVElQX1BGX1NWQ19USERfU1RPUF9CSVQsICZwb3J0LT5mbGFncykpCkBAIC0yOTk4 LDYgKzI5ODksOCBAQCBzdGF0aWMgaW50IG10aXBfc2VydmljZV90aHJlYWQodm9pZCAqZGF0YSkK IAkJCQkmZGQtPmRkX2ZsYWcpKSkKIAkJCWdvdG8gc3Rfb3V0OwogCisJCXNldF9iaXQoTVRJUF9Q Rl9TVkNfVEhEX0FDVElWRV9CSVQsICZwb3J0LT5mbGFncyk7CisKIHJlc3RhcnRfZWg6CiAJCS8q IERlbXV4IGJpdHM6IHN0YXJ0IHdpdGggZXJyb3IgaGFuZGxpbmcgKi8KIAkJaWYgKHRlc3RfYml0 KE1USVBfUEZfRUhfQUNUSVZFX0JJVCwgJnBvcnQtPmZsYWdzKSkgewpAQCAtMzM1MiwyMCArMzM0 NSwyNSBAQCBvdXQxOgogCXJldHVybiBydjsKIH0KIAotc3RhdGljIHZvaWQgbXRpcF9zdGFuZGJ5 X2RyaXZlKHN0cnVjdCBkcml2ZXJfZGF0YSAqZGQpCitzdGF0aWMgaW50IG10aXBfc3RhbmRieV9k cml2ZShzdHJ1Y3QgZHJpdmVyX2RhdGEgKmRkKQogewotCWlmIChkZC0+c3IpCi0JCXJldHVybjsK KwlpbnQgcnYgPSAwOwogCisJaWYgKGRkLT5zciB8fCAhZGQtPnBvcnQpCisJCXJldHVybiAtRU5P REVWOwogCS8qCiAJICogU2VuZCBzdGFuZGJ5IGltbWVkaWF0ZSAoRTBoKSB0byB0aGUgZHJpdmUg c28gdGhhdCBpdAogCSAqIHNhdmVzIGl0cyBzdGF0ZS4KIAkgKi8KIAlpZiAoIXRlc3RfYml0KE1U SVBfUEZfUkVCVUlMRF9CSVQsICZkZC0+cG9ydC0+ZmxhZ3MpICYmCi0JICAgICF0ZXN0X2JpdChN VElQX0RERl9TRUNfTE9DS19CSVQsICZkZC0+ZGRfZmxhZykpCi0JCWlmIChtdGlwX3N0YW5kYnlf aW1tZWRpYXRlKGRkLT5wb3J0KSkKKwkgICAgIXRlc3RfYml0KE1USVBfRERGX1JFQlVJTERfRkFJ TEVEX0JJVCwgJmRkLT5kZF9mbGFnKSAmJgorCSAgICAhdGVzdF9iaXQoTVRJUF9EREZfU0VDX0xP Q0tfQklULCAmZGQtPmRkX2ZsYWcpKSB7CisJCXJ2ID0gbXRpcF9zdGFuZGJ5X2ltbWVkaWF0ZShk ZC0+cG9ydCk7CisJCWlmIChydikKIAkJCWRldl93YXJuKCZkZC0+cGRldi0+ZGV2LAogCQkJCSJT VEFOREJZIElNTUVESUFURSBmYWlsZWRcbiIpOworCX0KKwlyZXR1cm4gcnY7CiB9CiAKIC8qCkBA IC0zNDIyLDggKzM0MjAsNyBAQCBzdGF0aWMgaW50IG10aXBfaHdfc2h1dGRvd24oc3RydWN0IGRy aXZlcl9kYXRhICpkZCkKIAkgKiBTZW5kIHN0YW5kYnkgaW1tZWRpYXRlIChFMGgpIHRvIHRoZSBk cml2ZSBzbyB0aGF0IGl0CiAJICogc2F2ZXMgaXRzIHN0YXRlLgogCSAqLwotCWlmICghZGQtPnNy ICYmIGRkLT5wb3J0KQotCQltdGlwX3N0YW5kYnlfaW1tZWRpYXRlKGRkLT5wb3J0KTsKKwltdGlw X3N0YW5kYnlfZHJpdmUoZGQpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0zNDQ2LDcgKzM0NDMsNyBA QCBzdGF0aWMgaW50IG10aXBfaHdfc3VzcGVuZChzdHJ1Y3QgZHJpdmVyX2RhdGEgKmRkKQogCSAq IFNlbmQgc3RhbmRieSBpbW1lZGlhdGUgKEUwaCkgdG8gdGhlIGRyaXZlCiAJICogc28gdGhhdCBp dCBzYXZlcyBpdHMgc3RhdGUuCiAJICovCi0JaWYgKG10aXBfc3RhbmRieV9pbW1lZGlhdGUoZGQt PnBvcnQpICE9IDApIHsKKwlpZiAobXRpcF9zdGFuZGJ5X2RyaXZlKGRkKSAhPSAwKSB7CiAJCWRl dl9lcnIoJmRkLT5wZGV2LT5kZXYsCiAJCQkiRmFpbGVkIHN0YW5kYnktaW1tZWRpYXRlIGNvbW1h bmRcbiIpOwogCQlyZXR1cm4gLUVGQVVMVDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svbXRp cDMyeHgvbXRpcDMyeHguaCBiL2RyaXZlcnMvYmxvY2svbXRpcDMyeHgvbXRpcDMyeHguaAppbmRl eCBiYTFiMzFlZTIyZWMuLjAzZDE2MDdkOGE5MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay9t dGlwMzJ4eC9tdGlwMzJ4eC5oCisrKyBiL2RyaXZlcnMvYmxvY2svbXRpcDMyeHgvbXRpcDMyeHgu aApAQCAtMTQ1LDYgKzE0NSwxMSBAQCBlbnVtIHsKIAlNVElQX1BGX1NSX0NMRUFOVVBfQklUICAg ICAgPSA3LAogCU1USVBfUEZfU1ZDX1RIRF9TVE9QX0JJVCAgICA9IDgsCiAKKwlNVElQX1BGX1NW Q19USERfV09SSwk9ICgoMSA8PCBNVElQX1BGX0VIX0FDVElWRV9CSVQpIHwKKwkJCQkgICgxIDw8 IE1USVBfUEZfSVNTVUVfQ01EU19CSVQpIHwKKwkJCQkgICgxIDw8IE1USVBfUEZfUkVCVUlMRF9C SVQpIHwKKwkJCQkgICgxIDw8IE1USVBfUEZfU1ZDX1RIRF9TVE9QX0JJVCkpLAorCiAJLyogYmVs b3cgYXJlIGJpdCBudW1iZXJzIGluICdkZF9mbGFnJyBkZWZpbmVkIGluIGRyaXZlcl9kYXRhICov CiAJTVRJUF9EREZfU0VDX0xPQ0tfQklUCSAgICA9IDAsCiAJTVRJUF9EREZfUkVNT1ZFX1BFTkRJ TkdfQklUID0gMSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svbmJkLmMgYi9kcml2ZXJzL2Js b2NrL25iZC5jCmluZGV4IDMwZjBlYzY1NDE1Zi4uN2JlNDRlNDY0NDYyIDEwMDY0NAotLS0gYS9k cml2ZXJzL2Jsb2NrL25iZC5jCisrKyBiL2RyaXZlcnMvYmxvY2svbmJkLmMKQEAgLTU3OCw4ICs1 NzgsOCBAQCBzdGF0aWMgdm9pZCBkb19uYmRfcmVxdWVzdChzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAq cSkKIAkJQlVHX09OKG5iZC0+bWFnaWMgIT0gTkJEX01BR0lDKTsKIAogCQlpZiAodW5saWtlbHko IW5iZC0+c29jaykpIHsKLQkJCWRldl9lcnIoZGlza190b19kZXYobmJkLT5kaXNrKSwKLQkJCQki QXR0ZW1wdGVkIHNlbmQgb24gY2xvc2VkIHNvY2tldFxuIik7CisJCQlkZXZfZXJyX3JhdGVsaW1p dGVkKGRpc2tfdG9fZGV2KG5iZC0+ZGlzayksCisJCQkJCSAgICAiQXR0ZW1wdGVkIHNlbmQgb24g Y2xvc2VkIHNvY2tldFxuIik7CiAJCQlyZXEtPmVycm9ycysrOwogCQkJbmJkX2VuZF9yZXF1ZXN0 KHJlcSk7CiAJCQlzcGluX2xvY2tfaXJxKHEtPnF1ZXVlX2xvY2spOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ibG9jay9wYXJpZGUvcGQuYyBiL2RyaXZlcnMvYmxvY2svcGFyaWRlL3BkLmMKaW5kZXgg ZmVhN2U3NmEwMGRlLi41MWQ1YmZkYzQ1Y2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svcGFy aWRlL3BkLmMKKysrIGIvZHJpdmVycy9ibG9jay9wYXJpZGUvcGQuYwpAQCAtMTI2LDcgKzEyNiw3 IEBACiAqLwogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAKLXN0YXRpYyBib29sIHZlcmJvc2Ug PSAwOworc3RhdGljIGludCB2ZXJib3NlID0gMDsKIHN0YXRpYyBpbnQgbWFqb3IgPSBQRF9NQUpP UjsKIHN0YXRpYyBjaGFyICpuYW1lID0gUERfTkFNRTsKIHN0YXRpYyBpbnQgY2x1c3RlciA9IDY0 OwpAQCAtMTYxLDcgKzE2MSw3IEBAIGVudW0ge0RfUFJULCBEX1BSTywgRF9VTkksIERfTU9ELCBE X0dFTywgRF9TQlksIERfRExZLCBEX1NMVn07CiBzdGF0aWMgREVGSU5FX01VVEVYKHBkX211dGV4 KTsKIHN0YXRpYyBERUZJTkVfU1BJTkxPQ0socGRfbG9jayk7CiAKLW1vZHVsZV9wYXJhbSh2ZXJi b3NlLCBib29sLCAwKTsKK21vZHVsZV9wYXJhbSh2ZXJib3NlLCBpbnQsIDApOwogbW9kdWxlX3Bh cmFtKG1ham9yLCBpbnQsIDApOwogbW9kdWxlX3BhcmFtKG5hbWUsIGNoYXJwLCAwKTsKIG1vZHVs ZV9wYXJhbShjbHVzdGVyLCBpbnQsIDApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9wYXJp ZGUvcHQuYyBiL2RyaXZlcnMvYmxvY2svcGFyaWRlL3B0LmMKaW5kZXggMjU5NjA0MmViOTg3Li5h ZGE0NTA1OGUwNGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svcGFyaWRlL3B0LmMKKysrIGIv ZHJpdmVycy9ibG9jay9wYXJpZGUvcHQuYwpAQCAtMTE3LDcgKzExNyw3IEBACiAKICovCiAKLXN0 YXRpYyBib29sIHZlcmJvc2UgPSAwOworc3RhdGljIGludCB2ZXJib3NlID0gMDsKIHN0YXRpYyBp bnQgbWFqb3IgPSBQVF9NQUpPUjsKIHN0YXRpYyBjaGFyICpuYW1lID0gUFRfTkFNRTsKIHN0YXRp YyBpbnQgZGlzYWJsZSA9IDA7CkBAIC0xNTIsNyArMTUyLDcgQEAgc3RhdGljIGludCAoKmRyaXZl c1s0XSlbNl0gPSB7JmRyaXZlMCwgJmRyaXZlMSwgJmRyaXZlMiwgJmRyaXZlM307CiAKICNpbmNs dWRlIDxhc20vdWFjY2Vzcy5oPgogCi1tb2R1bGVfcGFyYW0odmVyYm9zZSwgYm9vbCwgMCk7Citt b2R1bGVfcGFyYW0odmVyYm9zZSwgaW50LCAwKTsKIG1vZHVsZV9wYXJhbShtYWpvciwgaW50LCAw KTsKIG1vZHVsZV9wYXJhbShuYW1lLCBjaGFycCwgMCk7CiBtb2R1bGVfcGFyYW1fYXJyYXkoZHJp dmUwLCBpbnQsIE5VTEwsIDApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibHVldG9vdGgvYXRoM2su YyBiL2RyaXZlcnMvYmx1ZXRvb3RoL2F0aDNrLmMKaW5kZXggNzE1YjE1OTdlZTYxLi44ZTUxYjZj OGNjYWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmx1ZXRvb3RoL2F0aDNrLmMKKysrIGIvZHJpdmVy cy9ibHVldG9vdGgvYXRoM2suYwpAQCAtODIsNiArODIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IHVzYl9kZXZpY2VfaWQgYXRoM2tfdGFibGVbXSA9IHsKIAl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAw eGUwNWYpIH0sCiAJeyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhlMDc2KSB9LAogCXsgVVNCX0RFVklD RSgweDA0ODksIDB4ZTA3OCkgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAweGUwOTUpIH0sCiAJ eyBVU0JfREVWSUNFKDB4MDRjNSwgMHgxMzMwKSB9LAogCXsgVVNCX0RFVklDRSgweDA0Q0EsIDB4 MzAwNCkgfSwKIAl7IFVTQl9ERVZJQ0UoMHgwNENBLCAweDMwMDUpIH0sCkBAIC05Miw2ICs5Myw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBhdGgza190YWJsZVtdID0gewog CXsgVVNCX0RFVklDRSgweDA0Q0EsIDB4MzAwZCkgfSwKIAl7IFVTQl9ERVZJQ0UoMHgwNENBLCAw eDMwMGYpIH0sCiAJeyBVU0JfREVWSUNFKDB4MDRDQSwgMHgzMDEwKSB9LAorCXsgVVNCX0RFVklD RSgweDA0Q0EsIDB4MzAxNCkgfSwKIAl7IFVTQl9ERVZJQ0UoMHgwOTMwLCAweDAyMTkpIH0sCiAJ eyBVU0JfREVWSUNFKDB4MDkzMCwgMHgwMjFjKSB9LAogCXsgVVNCX0RFVklDRSgweDA5MzAsIDB4 MDIyMCkgfSwKQEAgLTExMywxMCArMTE1LDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2Rl dmljZV9pZCBhdGgza190YWJsZVtdID0gewogCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzM2Mikg fSwKIAl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDMzNzUpIH0sCiAJeyBVU0JfREVWSUNFKDB4MTNk MywgMHgzMzkzKSB9LAorCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzM5NSkgfSwKIAl7IFVTQl9E RVZJQ0UoMHgxM2QzLCAweDM0MDIpIH0sCiAJeyBVU0JfREVWSUNFKDB4MTNkMywgMHgzNDA4KSB9 LAogCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzQyMykgfSwKIAl7IFVTQl9ERVZJQ0UoMHgxM2Qz LCAweDM0MzIpIH0sCisJeyBVU0JfREVWSUNFKDB4MTNkMywgMHgzNDcyKSB9LAogCXsgVVNCX0RF VklDRSgweDEzZDMsIDB4MzQ3NCkgfSwKIAogCS8qIEF0aGVyb3MgQVI1QkJVMTIgd2l0aCBzZmxh c2ggZmlybXdhcmUgKi8KQEAgLTE0NCw2ICsxNDgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVz Yl9kZXZpY2VfaWQgYXRoM2tfYmxpc3RfdGJsW10gPSB7CiAJeyBVU0JfREVWSUNFKDB4MDQ4OSwg MHhlMDVmKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAogCXsgVVNCX0RFVklDRSgw eDA0ODksIDB4ZTA3NiksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKIAl7IFVTQl9E RVZJQ0UoMHgwNDg5LCAweGUwNzgpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCisJ eyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhlMDk1KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAx MiB9LAogCXsgVVNCX0RFVklDRSgweDA0YzUsIDB4MTMzMCksIC5kcml2ZXJfaW5mbyA9IEJUVVNC X0FUSDMwMTIgfSwKIAl7IFVTQl9ERVZJQ0UoMHgwNGNhLCAweDMwMDQpLCAuZHJpdmVyX2luZm8g PSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBVU0JfREVWSUNFKDB4MDRjYSwgMHgzMDA1KSwgLmRyaXZl cl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LApAQCAtMTU0LDYgKzE1OSw3IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBhdGgza19ibGlzdF90YmxbXSA9IHsKIAl7IFVTQl9ERVZJ Q0UoMHgwNGNhLCAweDMwMGQpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBV U0JfREVWSUNFKDB4MDRjYSwgMHgzMDBmKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9 LAogCXsgVVNCX0RFVklDRSgweDA0Y2EsIDB4MzAxMCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FU SDMwMTIgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwNGNhLCAweDMwMTQpLCAuZHJpdmVyX2luZm8gPSBC VFVTQl9BVEgzMDEyIH0sCiAJeyBVU0JfREVWSUNFKDB4MDkzMCwgMHgwMjE5KSwgLmRyaXZlcl9p bmZvID0gQlRVU0JfQVRIMzAxMiB9LAogCXsgVVNCX0RFVklDRSgweDA5MzAsIDB4MDIxYyksIC5k cml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKIAl7IFVTQl9ERVZJQ0UoMHgwOTMwLCAweDAy MjApLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCkBAIC0xNzUsMTAgKzE4MSwxMiBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgYXRoM2tfYmxpc3RfdGJsW10gPSB7 CiAJeyBVU0JfREVWSUNFKDB4MTNkMywgMHgzMzYyKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRI MzAxMiB9LAogCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzM3NSksIC5kcml2ZXJfaW5mbyA9IEJU VVNCX0FUSDMwMTIgfSwKIAl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDMzOTMpLCAuZHJpdmVyX2lu Zm8gPSBCVFVTQl9BVEgzMDEyIH0sCisJeyBVU0JfREVWSUNFKDB4MTNkMywgMHgzMzk1KSwgLmRy aXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAogCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzQw MiksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKIAl7IFVTQl9ERVZJQ0UoMHgxM2Qz LCAweDM0MDgpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBVU0JfREVWSUNF KDB4MTNkMywgMHgzNDIzKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAogCXsgVVNC X0RFVklDRSgweDEzZDMsIDB4MzQzMiksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwK Kwl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDM0NzIpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgz MDEyIH0sCiAJeyBVU0JfREVWSUNFKDB4MTNkMywgMHgzNDc0KSwgLmRyaXZlcl9pbmZvID0gQlRV U0JfQVRIMzAxMiB9LAogCiAJLyogQXRoZXJvcyBBUjVCQlUyMiB3aXRoIHNmbGFzaCBmaXJtd2Fy ZSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibHVldG9vdGgvYnR1c2IuYyBiL2RyaXZlcnMvYmx1 ZXRvb3RoL2J0dXNiLmMKaW5kZXggYWYyYWIyZTI4ZGEwLi5hOWNjZWUzNTk3M2UgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvYmx1ZXRvb3RoL2J0dXNiLmMKKysrIGIvZHJpdmVycy9ibHVldG9vdGgvYnR1 c2IuYwpAQCAtMTc2LDYgKzE3Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9p ZCBibGFja2xpc3RfdGFibGVbXSA9IHsKIAl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAweGUwNWYpLCAu ZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhl MDc2KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAogCXsgVVNCX0RFVklDRSgweDA0 ODksIDB4ZTA3OCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKKwl7IFVTQl9ERVZJ Q0UoMHgwNDg5LCAweGUwOTUpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBV U0JfREVWSUNFKDB4MDRjNSwgMHgxMzMwKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9 LAogCXsgVVNCX0RFVklDRSgweDA0Y2EsIDB4MzAwNCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FU SDMwMTIgfSwKIAl7IFVTQl9ERVZJQ0UoMHgwNGNhLCAweDMwMDUpLCAuZHJpdmVyX2luZm8gPSBC VFVTQl9BVEgzMDEyIH0sCkBAIC0xODYsNiArMTg3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1 c2JfZGV2aWNlX2lkIGJsYWNrbGlzdF90YWJsZVtdID0gewogCXsgVVNCX0RFVklDRSgweDA0Y2Es IDB4MzAwZCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKIAl7IFVTQl9ERVZJQ0Uo MHgwNGNhLCAweDMwMGYpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBVU0Jf REVWSUNFKDB4MDRjYSwgMHgzMDEwKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAor CXsgVVNCX0RFVklDRSgweDA0Y2EsIDB4MzAxNCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMw MTIgfSwKIAl7IFVTQl9ERVZJQ0UoMHgwOTMwLCAweDAyMTkpLCAuZHJpdmVyX2luZm8gPSBCVFVT Ql9BVEgzMDEyIH0sCiAJeyBVU0JfREVWSUNFKDB4MDkzMCwgMHgwMjFjKSwgLmRyaXZlcl9pbmZv ID0gQlRVU0JfQVRIMzAxMiB9LAogCXsgVVNCX0RFVklDRSgweDA5MzAsIDB4MDIyMCksIC5kcml2 ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKQEAgLTIwNywxMCArMjA5LDEyIEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBibGFja2xpc3RfdGFibGVbXSA9IHsKIAl7IFVTQl9E RVZJQ0UoMHgxM2QzLCAweDMzNjIpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAJ eyBVU0JfREVWSUNFKDB4MTNkMywgMHgzMzc1KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAx MiB9LAogCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzM5MyksIC5kcml2ZXJfaW5mbyA9IEJUVVNC X0FUSDMwMTIgfSwKKwl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDMzOTUpLCAuZHJpdmVyX2luZm8g PSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBVU0JfREVWSUNFKDB4MTNkMywgMHgzNDAyKSwgLmRyaXZl cl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAogCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzQwOCks IC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKIAl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAw eDM0MjMpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBVU0JfREVWSUNFKDB4 MTNkMywgMHgzNDMyKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAorCXsgVVNCX0RF VklDRSgweDEzZDMsIDB4MzQ3MiksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKIAl7 IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDM0NzQpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEy IH0sCiAKIAkvKiBBdGhlcm9zIEFSNUJCVTEyIHdpdGggc2ZsYXNoIGZpcm13YXJlICovCmRpZmYg LS1naXQgYS9kcml2ZXJzL2J1cy9pbXgtd2VpbS5jIGIvZHJpdmVycy9idXMvaW14LXdlaW0uYwpp bmRleCBmOGVlMTNjN2JmN2IuLjU4NDQzYjNmOWJkNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9idXMv aW14LXdlaW0uYworKysgYi9kcml2ZXJzL2J1cy9pbXgtd2VpbS5jCkBAIC0xNTAsNyArMTUwLDcg QEAgc3RhdGljIGludCBfX2luaXQgd2VpbV9wYXJzZV9kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2LAogCQkJcmV0dXJuIHJldDsKIAl9CiAKLQlmb3JfZWFjaF9jaGlsZF9vZl9ub2RlKHBk ZXYtPmRldi5vZl9ub2RlLCBjaGlsZCkgeworCWZvcl9lYWNoX2F2YWlsYWJsZV9jaGlsZF9vZl9u b2RlKHBkZXYtPmRldi5vZl9ub2RlLCBjaGlsZCkgewogCQlpZiAoIWNoaWxkLT5uYW1lKQogCQkJ Y29udGludWU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2Nsay14Z2VuZS5jIGIvZHJpdmVy cy9jbGsvY2xrLXhnZW5lLmMKaW5kZXggMWVjNWZlODQ5NGExLi5kOTQyMWY4YzIxM2IgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvY2xrL2Nsay14Z2VuZS5jCisrKyBiL2RyaXZlcnMvY2xrL2Nsay14Z2Vu ZS5jCkBAIC0zNTEsOCArMzUxLDggQEAgc3RhdGljIGludCB4Z2VuZV9jbGtfc2V0X3JhdGUoc3Ry dWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcmF0ZSwKIAkJLyogU2V0IG5ldyBkaXZpZGVy ICovCiAJCWRhdGEgPSB4Z2VuZV9jbGtfcmVhZChwY2xrLT5wYXJhbS5kaXZpZGVyX3JlZyArCiAJ CQkJcGNsay0+cGFyYW0ucmVnX2RpdmlkZXJfb2Zmc2V0KTsKLQkJZGF0YSAmPSB+KCgxIDw8IHBj bGstPnBhcmFtLnJlZ19kaXZpZGVyX3dpZHRoKSAtIDEpCi0JCQkJPDwgcGNsay0+cGFyYW0ucmVn X2RpdmlkZXJfc2hpZnQ7CisJCWRhdGEgJj0gfigoKDEgPDwgcGNsay0+cGFyYW0ucmVnX2Rpdmlk ZXJfd2lkdGgpIC0gMSkKKwkJCQk8PCBwY2xrLT5wYXJhbS5yZWdfZGl2aWRlcl9zaGlmdCk7CiAJ CWRhdGEgfD0gZGl2aWRlcjsKIAkJeGdlbmVfY2xrX3dyaXRlKGRhdGEsIHBjbGstPnBhcmFtLmRp dmlkZXJfcmVnICsKIAkJCQkJcGNsay0+cGFyYW0ucmVnX2RpdmlkZXJfb2Zmc2V0KTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvY2xrL3ZlcnNhdGlsZS9jbGstc3A4MTAuYyBiL2RyaXZlcnMvY2xrL3Zl cnNhdGlsZS9jbGstc3A4MTAuYwppbmRleCA1MTIyZWYyNWY1OTUuLmU2M2MzZWY5YjVlYyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9jbGsvdmVyc2F0aWxlL2Nsay1zcDgxMC5jCisrKyBiL2RyaXZlcnMv Y2xrL3ZlcnNhdGlsZS9jbGstc3A4MTAuYwpAQCAtMTQxLDYgKzE0MSw3IEBAIHZvaWQgX19pbml0 IGNsa19zcDgxMF9vZl9zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUpCiAJY29uc3QgY2hh ciAqcGFyZW50X25hbWVzWzJdOwogCWNoYXIgbmFtZVsxMl07CiAJc3RydWN0IGNsa19pbml0X2Rh dGEgaW5pdDsKKwlzdGF0aWMgaW50IGluc3RhbmNlOwogCWludCBpOwogCiAJaWYgKCFzcDgxMCkg ewpAQCAtMTcyLDcgKzE3Myw3IEBAIHZvaWQgX19pbml0IGNsa19zcDgxMF9vZl9zZXR1cChzdHJ1 Y3QgZGV2aWNlX25vZGUgKm5vZGUpCiAJaW5pdC5udW1fcGFyZW50cyA9IEFSUkFZX1NJWkUocGFy ZW50X25hbWVzKTsKIAogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHNwODEwLT50aW1lcmNs a2VuKTsgaSsrKSB7Ci0JCXNucHJpbnRmKG5hbWUsIEFSUkFZX1NJWkUobmFtZSksICJ0aW1lcmNs a2VuJWQiLCBpKTsKKwkJc25wcmludGYobmFtZSwgc2l6ZW9mKG5hbWUpLCAic3A4MTBfJWRfJWQi LCBpbnN0YW5jZSwgaSk7CiAKIAkJc3A4MTAtPnRpbWVyY2xrZW5baV0uc3A4MTAgPSBzcDgxMDsK IAkJc3A4MTAtPnRpbWVyY2xrZW5baV0uY2hhbm5lbCA9IGk7CkBAIC0xODQsNSArMTg1LDYgQEAg dm9pZCBfX2luaXQgY2xrX3NwODEwX29mX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSkK IAl9CiAKIAlvZl9jbGtfYWRkX3Byb3ZpZGVyKG5vZGUsIGNsa19zcDgxMF90aW1lcmNsa2VuX29m X2dldCwgc3A4MTApOworCWluc3RhbmNlKys7CiB9CiBDTEtfT0ZfREVDTEFSRShzcDgxMCwgImFy bSxzcDgxMCIsIGNsa19zcDgxMF9vZl9zZXR1cCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0 by9jY3AvY2NwLWNyeXB0by1hZXMtY21hYy5jIGIvZHJpdmVycy9jcnlwdG8vY2NwL2NjcC1jcnlw dG8tYWVzLWNtYWMuYwppbmRleCA4ZTE2MmFkODIwODUuLjVjOTNhZmIxODQxYSAxMDA2NDQKLS0t IGEvZHJpdmVycy9jcnlwdG8vY2NwL2NjcC1jcnlwdG8tYWVzLWNtYWMuYworKysgYi9kcml2ZXJz L2NyeXB0by9jY3AvY2NwLWNyeXB0by1hZXMtY21hYy5jCkBAIC0yMDEsNiArMjAxLDM5IEBAIHN0 YXRpYyBpbnQgY2NwX2Flc19jbWFjX2RpZ2VzdChzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQog CXJldHVybiBjY3BfYWVzX2NtYWNfZmludXAocmVxKTsKIH0KIAorc3RhdGljIGludCBjY3BfYWVz X2NtYWNfZXhwb3J0KHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEsIHZvaWQgKm91dCkKK3sKKwlz dHJ1Y3QgY2NwX2Flc19jbWFjX3JlcV9jdHggKnJjdHggPSBhaGFzaF9yZXF1ZXN0X2N0eChyZXEp OworCXN0cnVjdCBjY3BfYWVzX2NtYWNfZXhwX2N0eCBzdGF0ZTsKKworCXN0YXRlLm51bGxfbXNn ID0gcmN0eC0+bnVsbF9tc2c7CisJbWVtY3B5KHN0YXRlLml2LCByY3R4LT5pdiwgc2l6ZW9mKHN0 YXRlLml2KSk7CisJc3RhdGUuYnVmX2NvdW50ID0gcmN0eC0+YnVmX2NvdW50OworCW1lbWNweShz dGF0ZS5idWYsIHJjdHgtPmJ1Ziwgc2l6ZW9mKHN0YXRlLmJ1ZikpOworCisJLyogJ291dCcgbWF5 IG5vdCBiZSBhbGlnbmVkIHNvIG1lbWNweSBmcm9tIGxvY2FsIHZhcmlhYmxlICovCisJbWVtY3B5 KG91dCwgJnN0YXRlLCBzaXplb2Yoc3RhdGUpKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMg aW50IGNjcF9hZXNfY21hY19pbXBvcnQoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSwgY29uc3Qg dm9pZCAqaW4pCit7CisJc3RydWN0IGNjcF9hZXNfY21hY19yZXFfY3R4ICpyY3R4ID0gYWhhc2hf cmVxdWVzdF9jdHgocmVxKTsKKwlzdHJ1Y3QgY2NwX2Flc19jbWFjX2V4cF9jdHggc3RhdGU7CisK KwkvKiAnaW4nIG1heSBub3QgYmUgYWxpZ25lZCBzbyBtZW1jcHkgdG8gbG9jYWwgdmFyaWFibGUg Ki8KKwltZW1jcHkoJnN0YXRlLCBpbiwgc2l6ZW9mKHN0YXRlKSk7CisKKwltZW1zZXQocmN0eCwg MCwgc2l6ZW9mKCpyY3R4KSk7CisJcmN0eC0+bnVsbF9tc2cgPSBzdGF0ZS5udWxsX21zZzsKKwlt ZW1jcHkocmN0eC0+aXYsIHN0YXRlLml2LCBzaXplb2YocmN0eC0+aXYpKTsKKwlyY3R4LT5idWZf Y291bnQgPSBzdGF0ZS5idWZfY291bnQ7CisJbWVtY3B5KHJjdHgtPmJ1Ziwgc3RhdGUuYnVmLCBz aXplb2YocmN0eC0+YnVmKSk7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludCBjY3BfYWVz X2NtYWNfc2V0a2V5KHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSwgY29uc3QgdTggKmtleSwKIAkJ CSAgIHVuc2lnbmVkIGludCBrZXlfbGVuKQogewpAQCAtMzMyLDEwICszNjUsMTMgQEAgaW50IGNj cF9yZWdpc3Rlcl9hZXNfY21hY19hbGdzKHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCiAJYWxnLT5m aW5hbCA9IGNjcF9hZXNfY21hY19maW5hbDsKIAlhbGctPmZpbnVwID0gY2NwX2Flc19jbWFjX2Zp bnVwOwogCWFsZy0+ZGlnZXN0ID0gY2NwX2Flc19jbWFjX2RpZ2VzdDsKKwlhbGctPmV4cG9ydCA9 IGNjcF9hZXNfY21hY19leHBvcnQ7CisJYWxnLT5pbXBvcnQgPSBjY3BfYWVzX2NtYWNfaW1wb3J0 OwogCWFsZy0+c2V0a2V5ID0gY2NwX2Flc19jbWFjX3NldGtleTsKIAogCWhhbGcgPSAmYWxnLT5o YWxnOwogCWhhbGctPmRpZ2VzdHNpemUgPSBBRVNfQkxPQ0tfU0laRTsKKwloYWxnLT5zdGF0ZXNp emUgPSBzaXplb2Yoc3RydWN0IGNjcF9hZXNfY21hY19leHBfY3R4KTsKIAogCWJhc2UgPSAmaGFs Zy0+YmFzZTsKIAlzbnByaW50ZihiYXNlLT5jcmFfbmFtZSwgQ1JZUFRPX01BWF9BTEdfTkFNRSwg ImNtYWMoYWVzKSIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vY2NwL2NjcC1jcnlwdG8t c2hhLmMgYi9kcml2ZXJzL2NyeXB0by9jY3AvY2NwLWNyeXB0by1zaGEuYwppbmRleCA4NzNmMjM0 MjUyNDUuLjRjNjc0MmZjMjE0NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jcnlwdG8vY2NwL2NjcC1j cnlwdG8tc2hhLmMKKysrIGIvZHJpdmVycy9jcnlwdG8vY2NwL2NjcC1jcnlwdG8tc2hhLmMKQEAg LTE5Myw2ICsxOTMsNDMgQEAgc3RhdGljIGludCBjY3Bfc2hhX2RpZ2VzdChzdHJ1Y3QgYWhhc2hf cmVxdWVzdCAqcmVxKQogCXJldHVybiBjY3Bfc2hhX2ZpbnVwKHJlcSk7CiB9CiAKK3N0YXRpYyBp bnQgY2NwX3NoYV9leHBvcnQoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSwgdm9pZCAqb3V0KQor eworCXN0cnVjdCBjY3Bfc2hhX3JlcV9jdHggKnJjdHggPSBhaGFzaF9yZXF1ZXN0X2N0eChyZXEp OworCXN0cnVjdCBjY3Bfc2hhX2V4cF9jdHggc3RhdGU7CisKKwlzdGF0ZS50eXBlID0gcmN0eC0+ dHlwZTsKKwlzdGF0ZS5tc2dfYml0cyA9IHJjdHgtPm1zZ19iaXRzOworCXN0YXRlLmZpcnN0ID0g cmN0eC0+Zmlyc3Q7CisJbWVtY3B5KHN0YXRlLmN0eCwgcmN0eC0+Y3R4LCBzaXplb2Yoc3RhdGUu Y3R4KSk7CisJc3RhdGUuYnVmX2NvdW50ID0gcmN0eC0+YnVmX2NvdW50OworCW1lbWNweShzdGF0 ZS5idWYsIHJjdHgtPmJ1Ziwgc2l6ZW9mKHN0YXRlLmJ1ZikpOworCisJLyogJ291dCcgbWF5IG5v dCBiZSBhbGlnbmVkIHNvIG1lbWNweSBmcm9tIGxvY2FsIHZhcmlhYmxlICovCisJbWVtY3B5KG91 dCwgJnN0YXRlLCBzaXplb2Yoc3RhdGUpKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50 IGNjcF9zaGFfaW1wb3J0KHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEsIGNvbnN0IHZvaWQgKmlu KQoreworCXN0cnVjdCBjY3Bfc2hhX3JlcV9jdHggKnJjdHggPSBhaGFzaF9yZXF1ZXN0X2N0eChy ZXEpOworCXN0cnVjdCBjY3Bfc2hhX2V4cF9jdHggc3RhdGU7CisKKwkvKiAnaW4nIG1heSBub3Qg YmUgYWxpZ25lZCBzbyBtZW1jcHkgdG8gbG9jYWwgdmFyaWFibGUgKi8KKwltZW1jcHkoJnN0YXRl LCBpbiwgc2l6ZW9mKHN0YXRlKSk7CisKKwltZW1zZXQocmN0eCwgMCwgc2l6ZW9mKCpyY3R4KSk7 CisJcmN0eC0+dHlwZSA9IHN0YXRlLnR5cGU7CisJcmN0eC0+bXNnX2JpdHMgPSBzdGF0ZS5tc2df Yml0czsKKwlyY3R4LT5maXJzdCA9IHN0YXRlLmZpcnN0OworCW1lbWNweShyY3R4LT5jdHgsIHN0 YXRlLmN0eCwgc2l6ZW9mKHJjdHgtPmN0eCkpOworCXJjdHgtPmJ1Zl9jb3VudCA9IHN0YXRlLmJ1 Zl9jb3VudDsKKwltZW1jcHkocmN0eC0+YnVmLCBzdGF0ZS5idWYsIHNpemVvZihyY3R4LT5idWYp KTsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IGNjcF9zaGFfc2V0a2V5KHN0cnVjdCBj cnlwdG9fYWhhc2ggKnRmbSwgY29uc3QgdTggKmtleSwKIAkJCSAgdW5zaWduZWQgaW50IGtleV9s ZW4pCiB7CkBAIC0zODksOSArNDI2LDEyIEBAIHN0YXRpYyBpbnQgY2NwX3JlZ2lzdGVyX3NoYV9h bGcoc3RydWN0IGxpc3RfaGVhZCAqaGVhZCwKIAlhbGctPmZpbmFsID0gY2NwX3NoYV9maW5hbDsK IAlhbGctPmZpbnVwID0gY2NwX3NoYV9maW51cDsKIAlhbGctPmRpZ2VzdCA9IGNjcF9zaGFfZGln ZXN0OworCWFsZy0+ZXhwb3J0ID0gY2NwX3NoYV9leHBvcnQ7CisJYWxnLT5pbXBvcnQgPSBjY3Bf c2hhX2ltcG9ydDsKIAogCWhhbGcgPSAmYWxnLT5oYWxnOwogCWhhbGctPmRpZ2VzdHNpemUgPSBk ZWYtPmRpZ2VzdF9zaXplOworCWhhbGctPnN0YXRlc2l6ZSA9IHNpemVvZihzdHJ1Y3QgY2NwX3No YV9leHBfY3R4KTsKIAogCWJhc2UgPSAmaGFsZy0+YmFzZTsKIAlzbnByaW50ZihiYXNlLT5jcmFf bmFtZSwgQ1JZUFRPX01BWF9BTEdfTkFNRSwgIiVzIiwgZGVmLT5uYW1lKTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvY3J5cHRvL2NjcC9jY3AtY3J5cHRvLmggYi9kcml2ZXJzL2NyeXB0by9jY3AvY2Nw LWNyeXB0by5oCmluZGV4IDlhYTRhZTE4NGY3Zi4uN2EwYmIwMjlhYzhlIDEwMDY0NAotLS0gYS9k cml2ZXJzL2NyeXB0by9jY3AvY2NwLWNyeXB0by5oCisrKyBiL2RyaXZlcnMvY3J5cHRvL2NjcC9j Y3AtY3J5cHRvLmgKQEAgLTEzMiw2ICsxMzIsMTUgQEAgc3RydWN0IGNjcF9hZXNfY21hY19yZXFf Y3R4IHsKIAlzdHJ1Y3QgY2NwX2NtZCBjbWQ7CiB9OwogCitzdHJ1Y3QgY2NwX2Flc19jbWFjX2V4 cF9jdHggeworCXVuc2lnbmVkIGludCBudWxsX21zZzsKKworCXU4IGl2W0FFU19CTE9DS19TSVpF XTsKKworCXVuc2lnbmVkIGludCBidWZfY291bnQ7CisJdTggYnVmW0FFU19CTE9DS19TSVpFXTsK K307CisKIC8qKioqKiBTSEEgcmVsYXRlZCBkZWZpbmVzICoqKioqLwogI2RlZmluZSBNQVhfU0hB X0NPTlRFWFRfU0laRQlTSEEyNTZfRElHRVNUX1NJWkUKICNkZWZpbmUgTUFYX1NIQV9CTE9DS19T SVpFCVNIQTI1Nl9CTE9DS19TSVpFCkBAIC0xNzQsNiArMTgzLDE5IEBAIHN0cnVjdCBjY3Bfc2hh X3JlcV9jdHggewogCXN0cnVjdCBjY3BfY21kIGNtZDsKIH07CiAKK3N0cnVjdCBjY3Bfc2hhX2V4 cF9jdHggeworCWVudW0gY2NwX3NoYV90eXBlIHR5cGU7CisKKwl1NjQgbXNnX2JpdHM7CisKKwl1 bnNpZ25lZCBpbnQgZmlyc3Q7CisKKwl1OCBjdHhbTUFYX1NIQV9DT05URVhUX1NJWkVdOworCisJ dW5zaWduZWQgaW50IGJ1Zl9jb3VudDsKKwl1OCBidWZbTUFYX1NIQV9CTE9DS19TSVpFXTsKK307 CisKIC8qKioqKiBDb21tb24gQ29udGV4dCBTdHJ1Y3R1cmUgKioqKiovCiBzdHJ1Y3QgY2NwX2N0 eCB7CiAJaW50ICgqY29tcGxldGUpKHN0cnVjdCBjcnlwdG9fYXN5bmNfcmVxdWVzdCAqcmVxLCBp bnQgcmV0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZWRhYy9hbWQ2NF9lZGFjLmMgYi9kcml2ZXJz L2VkYWMvYW1kNjRfZWRhYy5jCmluZGV4IDRhZjNhZTRmY2Q5Ni4uNWZkZTkxMGFlYjYyIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2VkYWMvYW1kNjRfZWRhYy5jCisrKyBiL2RyaXZlcnMvZWRhYy9hbWQ2 NF9lZGFjLmMKQEAgLTEzMDIsNyArMTMwMiw3IEBAIHN0YXRpYyB1NjQgZjF4X2dldF9ub3JtX2Rj dF9hZGRyKHN0cnVjdCBhbWQ2NF9wdnQgKnB2dCwgdTggcmFuZ2UsCiAJdTY0IGNoYW5fb2ZmOwog CXU2NCBkcmFtX2Jhc2UJCT0gZ2V0X2RyYW1fYmFzZShwdnQsIHJhbmdlKTsKIAl1NjQgaG9sZV9v ZmYJCT0gZjEwX2RoYXJfb2Zmc2V0KHB2dCk7Ci0JdTY0IGRjdF9zZWxfYmFzZV9vZmYJPSAocHZ0 LT5kY3Rfc2VsX2hpICYgMHhGRkZGRkMwMCkgPDwgMTY7CisJdTY0IGRjdF9zZWxfYmFzZV9vZmYJ PSAodTY0KShwdnQtPmRjdF9zZWxfaGkgJiAweEZGRkZGQzAwKSA8PCAxNjsKIAogCWlmIChoaV9y bmcpIHsKIAkJLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3Bpby9ncGlvLXBjYTk1M3guYyBiL2Ry aXZlcnMvZ3Bpby9ncGlvLXBjYTk1M3guYwppbmRleCBlNzIxYTM3YzM0NzMuLjEwM2RlMGYwMTkz NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncGlvL2dwaW8tcGNhOTUzeC5jCisrKyBiL2RyaXZlcnMv Z3Bpby9ncGlvLXBjYTk1M3guYwpAQCAtMTgsNiArMTgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ky Yy5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvcGNhOTUzeC5oPgogI2luY2x1ZGUg PGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxhc20vdW5hbGlnbmVkLmg+CiAjaWZkZWYgQ09ORklH X09GX0dQSU8KICNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPgogI2VuZGlmCkBAIC0xNTQs NyArMTU1LDcgQEAgc3RhdGljIGludCBwY2E5NTN4X3dyaXRlX3JlZ3Moc3RydWN0IHBjYTk1M3hf Y2hpcCAqY2hpcCwgaW50IHJlZywgdTggKnZhbCkKIAkJc3dpdGNoIChjaGlwLT5jaGlwX3R5cGUp IHsKIAkJY2FzZSBQQ0E5NTNYX1RZUEU6CiAJCQlyZXQgPSBpMmNfc21idXNfd3JpdGVfd29yZF9k YXRhKGNoaXAtPmNsaWVudCwKLQkJCQkJCQlyZWcgPDwgMSwgKHUxNikgKnZhbCk7CisJCQkgICAg cmVnIDw8IDEsIGNwdV90b19sZTE2KGdldF91bmFsaWduZWQoKHUxNiAqKXZhbCkpKTsKIAkJCWJy ZWFrOwogCQljYXNlIFBDQTk1N1hfVFlQRToKIAkJCXJldCA9IGkyY19zbWJ1c193cml0ZV9ieXRl X2RhdGEoY2hpcC0+Y2xpZW50LCByZWcgPDwgMSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3Bpby9n cGlvbGliLmMgYi9kcml2ZXJzL2dwaW8vZ3Bpb2xpYi5jCmluZGV4IGI1ZjkxNTYwOWRjNS4uYzZl YWE3YTQ1MzljIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwaW8vZ3Bpb2xpYi5jCisrKyBiL2RyaXZl cnMvZ3Bpby9ncGlvbGliLmMKQEAgLTI0MjAsNyArMjQyMCw3IEBAIHZvaWQgZ3Bpb2Rfc2V0X3Jh d192YWx1ZShzdHJ1Y3QgZ3Bpb19kZXNjICpkZXNjLCBpbnQgdmFsdWUpCiB7CiAJaWYgKCFkZXNj KQogCQlyZXR1cm47Ci0JLyogU2hvdWxkIGJlIHVzaW5nIGdwaW9fc2V0X3ZhbHVlX2NhbnNsZWVw KCkgKi8KKwkvKiBTaG91bGQgYmUgdXNpbmcgZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKCkgKi8K IAlXQVJOX09OKGRlc2MtPmNoaXAtPmNhbl9zbGVlcCk7CiAJX2dwaW9kX3NldF9yYXdfdmFsdWUo ZGVzYywgdmFsdWUpOwogfQpAQCAtMjQ0MSw3ICsyNDQxLDcgQEAgdm9pZCBncGlvZF9zZXRfdmFs dWUoc3RydWN0IGdwaW9fZGVzYyAqZGVzYywgaW50IHZhbHVlKQogewogCWlmICghZGVzYykKIAkJ cmV0dXJuOwotCS8qIFNob3VsZCBiZSB1c2luZyBncGlvX3NldF92YWx1ZV9jYW5zbGVlcCgpICov CisJLyogU2hvdWxkIGJlIHVzaW5nIGdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcCgpICovCiAJV0FS Tl9PTihkZXNjLT5jaGlwLT5jYW5fc2xlZXApOwogCWlmICh0ZXN0X2JpdChGTEFHX0FDVElWRV9M T1csICZkZXNjLT5mbGFncykpCiAJCXZhbHVlID0gIXZhbHVlOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2RybV9kcF9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfaGVscGVy LmMKaW5kZXggOWY1OWM5MDI3ZWJlLi40NDUyYzg4NmU4YjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fZHBfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9oZWxw ZXIuYwpAQCAtMzY4LDcgKzM2OCw3IEBAIHN0YXRpYyBpbnQgZHJtX2RwX2RwY2RfYWNjZXNzKHN0 cnVjdCBkcm1fZHBfYXV4ICphdXgsIHU4IHJlcXVlc3QsCiB7CiAJc3RydWN0IGRybV9kcF9hdXhf bXNnIG1zZzsKIAl1bnNpZ25lZCBpbnQgcmV0cnk7Ci0JaW50IGVycjsKKwlpbnQgZXJyID0gMDsK IAogCW1lbXNldCgmbXNnLCAwLCBzaXplb2YobXNnKSk7CiAJbXNnLmFkZHJlc3MgPSBvZmZzZXQ7 CkBAIC0zNzYsNiArMzc2LDggQEAgc3RhdGljIGludCBkcm1fZHBfZHBjZF9hY2Nlc3Moc3RydWN0 IGRybV9kcF9hdXggKmF1eCwgdTggcmVxdWVzdCwKIAltc2cuYnVmZmVyID0gYnVmZmVyOwogCW1z Zy5zaXplID0gc2l6ZTsKIAorCW11dGV4X2xvY2soJmF1eC0+aHdfbXV0ZXgpOworCiAJLyoKIAkg KiBUaGUgc3BlY2lmaWNhdGlvbiBkb2Vzbid0IGdpdmUgYW55IHJlY29tbWVuZGF0aW9uIG9uIGhv dyBvZnRlbiB0bwogCSAqIHJldHJ5IG5hdGl2ZSB0cmFuc2FjdGlvbnMuIFdlIHVzZWQgdG8gcmV0 cnkgNyB0aW1lcyBsaWtlIGZvcgpAQCAtMzg0LDI1ICszODYsMjQgQEAgc3RhdGljIGludCBkcm1f ZHBfZHBjZF9hY2Nlc3Moc3RydWN0IGRybV9kcF9hdXggKmF1eCwgdTggcmVxdWVzdCwKIAkgKi8K IAlmb3IgKHJldHJ5ID0gMDsgcmV0cnkgPCAzMjsgcmV0cnkrKykgewogCi0JCW11dGV4X2xvY2so JmF1eC0+aHdfbXV0ZXgpOwogCQllcnIgPSBhdXgtPnRyYW5zZmVyKGF1eCwgJm1zZyk7Ci0JCW11 dGV4X3VubG9jaygmYXV4LT5od19tdXRleCk7CiAJCWlmIChlcnIgPCAwKSB7CiAJCQlpZiAoZXJy ID09IC1FQlVTWSkKIAkJCQljb250aW51ZTsKIAotCQkJcmV0dXJuIGVycjsKKwkJCWdvdG8gdW5s b2NrOwogCQl9CiAKIAogCQlzd2l0Y2ggKG1zZy5yZXBseSAmIERQX0FVWF9OQVRJVkVfUkVQTFlf TUFTSykgewogCQljYXNlIERQX0FVWF9OQVRJVkVfUkVQTFlfQUNLOgogCQkJaWYgKGVyciA8IHNp emUpCi0JCQkJcmV0dXJuIC1FUFJPVE87Ci0JCQlyZXR1cm4gZXJyOworCQkJCWVyciA9IC1FUFJP VE87CisJCQlnb3RvIHVubG9jazsKIAogCQljYXNlIERQX0FVWF9OQVRJVkVfUkVQTFlfTkFDSzoK LQkJCXJldHVybiAtRUlPOworCQkJZXJyID0gLUVJTzsKKwkJCWdvdG8gdW5sb2NrOwogCiAJCWNh c2UgRFBfQVVYX05BVElWRV9SRVBMWV9ERUZFUjoKIAkJCXVzbGVlcF9yYW5nZSg0MDAsIDUwMCk7 CkBAIC00MTEsNyArNDEyLDExIEBAIHN0YXRpYyBpbnQgZHJtX2RwX2RwY2RfYWNjZXNzKHN0cnVj dCBkcm1fZHBfYXV4ICphdXgsIHU4IHJlcXVlc3QsCiAJfQogCiAJRFJNX0RFQlVHX0tNUygidG9v IG1hbnkgcmV0cmllcywgZ2l2aW5nIHVwXG4iKTsKLQlyZXR1cm4gLUVJTzsKKwllcnIgPSAtRUlP OworCit1bmxvY2s6CisJbXV0ZXhfdW5sb2NrKCZhdXgtPmh3X211dGV4KTsKKwlyZXR1cm4gZXJy OwogfQogCiAvKioKQEAgLTYwMCw5ICs2MDUsNyBAQCBzdGF0aWMgaW50IGRybV9kcF9pMmNfZG9f bXNnKHN0cnVjdCBkcm1fZHBfYXV4ICphdXgsIHN0cnVjdCBkcm1fZHBfYXV4X21zZyAqbXNnKQog CSAqIGJlZm9yZSBnaXZpbmcgdXAgdGhlIEFVWCB0cmFuc2FjdGlvbi4KIAkgKi8KIAlmb3IgKHJl dHJ5ID0gMDsgcmV0cnkgPCA3OyByZXRyeSsrKSB7Ci0JCW11dGV4X2xvY2soJmF1eC0+aHdfbXV0 ZXgpOwogCQllcnIgPSBhdXgtPnRyYW5zZmVyKGF1eCwgbXNnKTsKLQkJbXV0ZXhfdW5sb2NrKCZh dXgtPmh3X211dGV4KTsKIAkJaWYgKGVyciA8IDApIHsKIAkJCWlmIChlcnIgPT0gLUVCVVNZKQog CQkJCWNvbnRpbnVlOwpAQCAtNjgyLDYgKzY4NSw4IEBAIHN0YXRpYyBpbnQgZHJtX2RwX2kyY194 ZmVyKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciwgc3RydWN0IGkyY19tc2cgKm1zZ3MsCiAK IAltZW1zZXQoJm1zZywgMCwgc2l6ZW9mKG1zZykpOwogCisJbXV0ZXhfbG9jaygmYXV4LT5od19t dXRleCk7CisKIAlmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKIAkJbXNnLmFkZHJlc3MgPSBt c2dzW2ldLmFkZHI7CiAJCW1zZy5yZXF1ZXN0ID0gKG1zZ3NbaV0uZmxhZ3MgJiBJMkNfTV9SRCkg PwpAQCAtNzI2LDYgKzczMSw4IEBAIHN0YXRpYyBpbnQgZHJtX2RwX2kyY194ZmVyKHN0cnVjdCBp MmNfYWRhcHRlciAqYWRhcHRlciwgc3RydWN0IGkyY19tc2cgKm1zZ3MsCiAJbXNnLnNpemUgPSAw OwogCSh2b2lkKWRybV9kcF9pMmNfZG9fbXNnKGF1eCwgJm1zZyk7CiAKKwltdXRleF91bmxvY2so JmF1eC0+aHdfbXV0ZXgpOworCiAJcmV0dXJuIGVycjsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19lbmNvZGVycy5jIGIvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9hdG9tYmlvc19lbmNvZGVycy5jCmluZGV4IDc5NjFiODBiNmE3OC4uZjc0ZjNkNTk5Nzhi IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2VuY29kZXJzLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19lbmNvZGVycy5jCkBAIC04OTYs OCArODk2LDYgQEAgYXRvbWJpb3NfZGlnX2VuY29kZXJfc2V0dXAoc3RydWN0IGRybV9lbmNvZGVy ICplbmNvZGVyLCBpbnQgYWN0aW9uLCBpbnQgcGFuZWxfbW8KIAkJCWVsc2UKIAkJCQlhcmdzLnYx LnVjTGFuZU51bSA9IDQ7CiAKLQkJCWlmIChFTkNPREVSX01PREVfSVNfRFAoYXJncy52MS51Y0Vu Y29kZXJNb2RlKSAmJiAoZHBfY2xvY2sgPT0gMjcwMDAwKSkKLQkJCQlhcmdzLnYxLnVjQ29uZmln IHw9IEFUT01fRU5DT0RFUl9DT05GSUdfRFBMSU5LUkFURV8yXzcwR0haOwogCQkJc3dpdGNoIChy YWRlb25fZW5jb2Rlci0+ZW5jb2Rlcl9pZCkgewogCQkJY2FzZSBFTkNPREVSX09CSkVDVF9JRF9J TlRFUk5BTF9VTklQSFk6CiAJCQkJYXJncy52MS51Y0NvbmZpZyA9IEFUT01fRU5DT0RFUl9DT05G SUdfVjJfVFJBTlNNSVRURVIxOwpAQCAtOTE0LDYgKzkxMiwxMCBAQCBhdG9tYmlvc19kaWdfZW5j b2Rlcl9zZXR1cChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIGludCBhY3Rpb24sIGludCBw YW5lbF9tbwogCQkJCWFyZ3MudjEudWNDb25maWcgfD0gQVRPTV9FTkNPREVSX0NPTkZJR19MSU5L QjsKIAkJCWVsc2UKIAkJCQlhcmdzLnYxLnVjQ29uZmlnIHw9IEFUT01fRU5DT0RFUl9DT05GSUdf TElOS0E7CisKKwkJCWlmIChFTkNPREVSX01PREVfSVNfRFAoYXJncy52MS51Y0VuY29kZXJNb2Rl KSAmJiAoZHBfY2xvY2sgPT0gMjcwMDAwKSkKKwkJCQlhcmdzLnYxLnVjQ29uZmlnIHw9IEFUT01f RU5DT0RFUl9DT05GSUdfRFBMSU5LUkFURV8yXzcwR0haOworCiAJCQlicmVhazsKIAkJY2FzZSAy OgogCQljYXNlIDM6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5o IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaAppbmRleCBlMTJmMDI2YTE2MTMuLjg2 M2QxY2EyMWExYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oCkBAIC0yMzUwLDYgKzIzNTAsNyBA QCBzdHJ1Y3QgcmFkZW9uX2RldmljZSB7CiAKIAlzdHJ1Y3QgZGV2X3BtX2RvbWFpbiB2Z2FfcG1f ZG9tYWluOwogCWJvb2wgaGF2ZV9kaXNwX3Bvd2VyX3JlZjsKKwl1MzIgcHhfcXVpcmtfZmxhZ3M7 CiB9OwogCiBib29sIHJhZGVvbl9pc19weChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2RldmljZS5jIGIvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yYWRlb25fZGV2aWNlLmMKaW5kZXggY2E0NzBmYjE3YWE0Li5lODEyMmM5 MWVkY2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2RldmljZS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2RldmljZS5jCkBAIC0xMDMsNiAr MTAzLDM1IEBAIHN0YXRpYyBjb25zdCBjaGFyIHJhZGVvbl9mYW1pbHlfbmFtZVtdWzE2XSA9IHsK IAkiTEFTVCIsCiB9OwogCisjZGVmaW5lIFJBREVPTl9QWF9RVUlSS19ESVNBQkxFX1BYICAoMSA8 PCAwKQorI2RlZmluZSBSQURFT05fUFhfUVVJUktfTE9OR19XQUtFVVAgKDEgPDwgMSkKKworc3Ry dWN0IHJhZGVvbl9weF9xdWlyayB7CisJdTMyIGNoaXBfdmVuZG9yOworCXUzMiBjaGlwX2Rldmlj ZTsKKwl1MzIgc3Vic3lzX3ZlbmRvcjsKKwl1MzIgc3Vic3lzX2RldmljZTsKKwl1MzIgcHhfcXVp cmtfZmxhZ3M7Cit9OworCitzdGF0aWMgc3RydWN0IHJhZGVvbl9weF9xdWlyayByYWRlb25fcHhf cXVpcmtfbGlzdFtdID0geworCS8qIEFjZXIgYXNwaXJlIDU1NjBnIChDUFU6IEFNRCBBNC0zMzA1 TTsgR1BVOiBBTUQgUmFkZW9uIEhEIDY0ODBnICsgNzQ3MG0pCisJICogaHR0cHM6Ly9idWd6aWxs YS5rZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9pZD03NDU1MQorCSAqLworCXsgUENJX1ZFTkRPUl9J RF9BVEksIDB4Njc2MCwgMHgxMDI1LCAweDA2NzIsIFJBREVPTl9QWF9RVUlSS19ESVNBQkxFX1BY IH0sCisJLyogQXN1cyBLNzNUQSBsYXB0b3Agd2l0aCBBTUQgQTYtMzQwME0gQVBVIGFuZCBSYWRl b24gNjU1MCBHUFUKKwkgKiBodHRwczovL2J1Z3ppbGxhLmtlcm5lbC5vcmcvc2hvd19idWcuY2dp P2lkPTUxMzgxCisJICovCisJeyBQQ0lfVkVORE9SX0lEX0FUSSwgMHg2NzQxLCAweDEwNDMsIDB4 MTA4YywgUkFERU9OX1BYX1FVSVJLX0RJU0FCTEVfUFggfSwKKwkvKiBBc3VzIEs1M1RLIGxhcHRv cCB3aXRoIEFNRCBBNi0zNDIwTSBBUFUgYW5kIFJhZGVvbiA3NjcwbSBHUFUKKwkgKiBodHRwczov L2J1Z3ppbGxhLmtlcm5lbC5vcmcvc2hvd19idWcuY2dpP2lkPTUxMzgxCisJICovCisJeyBQQ0lf VkVORE9SX0lEX0FUSSwgMHg2ODQwLCAweDEwNDMsIDB4MjEyMiwgUkFERU9OX1BYX1FVSVJLX0RJ U0FCTEVfUFggfSwKKwkvKiBtYWNib29rIHBybyA4LjIgKi8KKwl7IFBDSV9WRU5ET1JfSURfQVRJ LCAweDY3NDEsIFBDSV9WRU5ET1JfSURfQVBQTEUsIDB4MDBlMiwgUkFERU9OX1BYX1FVSVJLX0xP TkdfV0FLRVVQIH0sCisJeyAwLCAwLCAwLCAwLCAwIH0sCit9OworCiBib29sIHJhZGVvbl9pc19w eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKQEAgLTExMiw2ICsxNDEsMjYgQEAgYm9vbCByYWRlb25faXNf cHgoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlyZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyB2 b2lkIHJhZGVvbl9kZXZpY2VfaGFuZGxlX3B4X3F1aXJrcyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAq cmRldikKK3sKKwlzdHJ1Y3QgcmFkZW9uX3B4X3F1aXJrICpwID0gcmFkZW9uX3B4X3F1aXJrX2xp c3Q7CisKKwkvKiBBcHBseSBQWCBxdWlya3MgKi8KKwl3aGlsZSAocCAmJiBwLT5jaGlwX2Rldmlj ZSAhPSAwKSB7CisJCWlmIChyZGV2LT5wZGV2LT52ZW5kb3IgPT0gcC0+Y2hpcF92ZW5kb3IgJiYK KwkJICAgIHJkZXYtPnBkZXYtPmRldmljZSA9PSBwLT5jaGlwX2RldmljZSAmJgorCQkgICAgcmRl di0+cGRldi0+c3Vic3lzdGVtX3ZlbmRvciA9PSBwLT5zdWJzeXNfdmVuZG9yICYmCisJCSAgICBy ZGV2LT5wZGV2LT5zdWJzeXN0ZW1fZGV2aWNlID09IHAtPnN1YnN5c19kZXZpY2UpIHsKKwkJCXJk ZXYtPnB4X3F1aXJrX2ZsYWdzID0gcC0+cHhfcXVpcmtfZmxhZ3M7CisJCQlicmVhazsKKwkJfQor CQkrK3A7CisJfQorCisJaWYgKHJkZXYtPnB4X3F1aXJrX2ZsYWdzICYgUkFERU9OX1BYX1FVSVJL X0RJU0FCTEVfUFgpCisJCXJkZXYtPmZsYWdzICY9IH5SQURFT05fSVNfUFg7Cit9CisKIC8qKgog ICogcmFkZW9uX3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UgLSBwcm9ncmFtIGFuIGFycmF5IG9m IHJlZ2lzdGVycy4KICAqCkBAIC0xMDkzLDI1ICsxMTQyLDYgQEAgc3RhdGljIHZvaWQgcmFkZW9u X2NoZWNrX2FyZ3VtZW50cyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIH0KIAogLyoqCi0g KiByYWRlb25fc3dpdGNoZXJvb19xdWlya19sb25nX3dha2V1cCAtIHJldHVybiB0cnVlIGlmIGxv bmdlciBkMyBkZWxheSBpcwotICogbmVlZGVkIGZvciB3YWtpbmcgdXAuCi0gKgotICogQHBkZXY6 IHBjaSBkZXYgcG9pbnRlcgotICovCi1zdGF0aWMgYm9vbCByYWRlb25fc3dpdGNoZXJvb19xdWly a19sb25nX3dha2V1cChzdHJ1Y3QgcGNpX2RldiAqcGRldikKLXsKLQotCS8qIDY2MDBtIGluIGEg bWFjYm9vayBwcm8gKi8KLQlpZiAocGRldi0+c3Vic3lzdGVtX3ZlbmRvciA9PSBQQ0lfVkVORE9S X0lEX0FQUExFICYmCi0JICAgIHBkZXYtPnN1YnN5c3RlbV9kZXZpY2UgPT0gMHgwMGUyKSB7Ci0J CXByaW50ayhLRVJOX0lORk8gInJhZGVvbjogcXVpcmtpbmcgbG9uZ2VyIGQzIHdha2V1cCBkZWxh eVxuIik7Ci0JCXJldHVybiB0cnVlOwotCX0KLQotCXJldHVybiBmYWxzZTsKLX0KLQotLyoqCiAg KiByYWRlb25fc3dpdGNoZXJvb19zZXRfc3RhdGUgLSBzZXQgc3dpdGNoZXJvbyBzdGF0ZQogICoK ICAqIEBwZGV2OiBwY2kgZGV2IHBvaW50ZXIKQEAgLTExMjMsNiArMTE1Myw3IEBAIHN0YXRpYyBi b29sIHJhZGVvbl9zd2l0Y2hlcm9vX3F1aXJrX2xvbmdfd2FrZXVwKHN0cnVjdCBwY2lfZGV2ICpw ZGV2KQogc3RhdGljIHZvaWQgcmFkZW9uX3N3aXRjaGVyb29fc2V0X3N0YXRlKHN0cnVjdCBwY2lf ZGV2ICpwZGV2LCBlbnVtIHZnYV9zd2l0Y2hlcm9vX3N0YXRlIHN0YXRlKQogewogCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHJhZGVvbl9k ZXZpY2UgKnJkZXYgPSBkZXYtPmRldl9wcml2YXRlOwogCiAJaWYgKHJhZGVvbl9pc19weChkZXYp ICYmIHN0YXRlID09IFZHQV9TV0lUQ0hFUk9PX09GRikKIAkJcmV0dXJuOwpAQCAtMTEzNCw3ICsx MTY1LDcgQEAgc3RhdGljIHZvaWQgcmFkZW9uX3N3aXRjaGVyb29fc2V0X3N0YXRlKHN0cnVjdCBw Y2lfZGV2ICpwZGV2LCBlbnVtIHZnYV9zd2l0Y2hlcm8KIAkJLyogZG9uJ3Qgc3VzcGVuZCBvciBy ZXN1bWUgY2FyZCBub3JtYWxseSAqLwogCQlkZXYtPnN3aXRjaF9wb3dlcl9zdGF0ZSA9IERSTV9T V0lUQ0hfUE9XRVJfQ0hBTkdJTkc7CiAKLQkJaWYgKGQzX2RlbGF5IDwgMjAgJiYgcmFkZW9uX3N3 aXRjaGVyb29fcXVpcmtfbG9uZ193YWtldXAocGRldikpCisJCWlmIChkM19kZWxheSA8IDIwICYm IChyZGV2LT5weF9xdWlya19mbGFncyAmIFJBREVPTl9QWF9RVUlSS19MT05HX1dBS0VVUCkpCiAJ CQlkZXYtPnBkZXYtPmQzX2RlbGF5ID0gMjA7CiAKIAkJcmFkZW9uX3Jlc3VtZV9rbXMoZGV2LCB0 cnVlLCB0cnVlKTsKQEAgLTEzMzgsNiArMTM2OSw5IEBAIGludCByYWRlb25fZGV2aWNlX2luaXQo c3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJaWYgKHJkZXYtPnJpb19tZW0gPT0gTlVMTCkK IAkJRFJNX0VSUk9SKCJVbmFibGUgdG8gZmluZCBQQ0kgSS9PIEJBUlxuIik7CiAKKwlpZiAocmRl di0+ZmxhZ3MgJiBSQURFT05fSVNfUFgpCisJCXJhZGVvbl9kZXZpY2VfaGFuZGxlX3B4X3F1aXJr cyhyZGV2KTsKKwogCS8qIGlmIHdlIGhhdmUgPiAxIFZHQSBjYXJkcywgdGhlbiBkaXNhYmxlIHRo ZSByYWRlb24gVkdBIHJlc291cmNlcyAqLwogCS8qIHRoaXMgd2lsbCBmYWlsIGZvciBjYXJkcyB0 aGF0IGFyZW4ndCBWR0EgY2xhc3MgZGV2aWNlcywganVzdAogCSAqIGlnbm9yZSBpdCAqLwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaV9kcG0uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vc2lfZHBtLmMKaW5kZXggOTVhZWMzMjE4NmMwLi40MmIyYmFmMGU2ZDcgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vc2lfZHBtLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9zaV9kcG0uYwpAQCAtMjkyMSw5ICsyOTIxLDExIEBAIHN0YXRpYyBzdHJ1Y3Qg c2lfZHBtX3F1aXJrIHNpX2RwbV9xdWlya19saXN0W10gPSB7CiAJLyogUElUQ0FJUk4gLSBodHRw czovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ5MCAqLwogCXsgUENJ X1ZFTkRPUl9JRF9BVEksIDB4NjgxMCwgMHgxNDYyLCAweDMwMzYsIDAsIDEyMDAwMCB9LAogCXsg UENJX1ZFTkRPUl9JRF9BVEksIDB4NjgxMSwgMHgxNzRiLCAweGUyNzEsIDAsIDEyMDAwMCB9LAor CXsgUENJX1ZFTkRPUl9JRF9BVEksIDB4NjgxMSwgMHgxNzRiLCAweDIwMTUsIDAsIDEyMDAwMCB9 LAogCXsgUENJX1ZFTkRPUl9JRF9BVEksIDB4NjgxMCwgMHgxNzRiLCAweGUyNzEsIDg1MDAwLCA5 MDAwMCB9LAogCXsgUENJX1ZFTkRPUl9JRF9BVEksIDB4NjgxMSwgMHgxNDYyLCAweDIwMTUsIDAs IDEyMDAwMCB9LAogCXsgUENJX1ZFTkRPUl9JRF9BVEksIDB4NjgxMSwgMHgxMDQzLCAweDIwMTUs IDAsIDEyMDAwMCB9LAorCXsgUENJX1ZFTkRPUl9JRF9BVEksIDB4NjgxMSwgMHgxNDhjLCAweDIw MTUsIDAsIDEyMDAwMCB9LAogCXsgMCwgMCwgMCwgMCB9LAogfTsKIApAQCAtMzAxNSw2ICszMDE3 LDEwIEBAIHN0YXRpYyB2b2lkIHNpX2FwcGx5X3N0YXRlX2FkanVzdF9ydWxlcyhzdHJ1Y3QgcmFk ZW9uX2RldmljZSAqcmRldiwKIAkJCQlwcy0+cGVyZm9ybWFuY2VfbGV2ZWxzW2ldLnNjbGsgPSBt YXhfc2NsazsKIAkJfQogCX0KKwkvKiBsaW1pdCBtY2xrIG9uIGFsbCBSNyAzNzAgcGFydHMgZm9y IHN0YWJpbGl0eSAqLworCWlmIChyZGV2LT5wZGV2LT5kZXZpY2UgPT0gMHg2ODExICYmCisJICAg IHJkZXYtPnBkZXYtPnJldmlzaW9uID09IDB4ODEpCisJCW1heF9tY2xrID0gMTIwMDAwOwogCiAJ LyogWFhYIHZhbGlkYXRlIHRoZSBtaW4gY2xvY2tzIHJlcXVpcmVkIGZvciBkaXNwbGF5ICovCiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2ZiLmMgYi9kcml2ZXJzL2dwdS9k cm0vdWRsL3VkbF9mYi5jCmluZGV4IDM3NzE3NjM3MmRhOC4uOGNkNTBkYTIyYzdlIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9mYi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS91 ZGwvdWRsX2ZiLmMKQEAgLTU0NSw3ICs1NDUsNyBAQCBzdGF0aWMgaW50IHVkbGZiX2NyZWF0ZShz dHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAogCiAJcmV0dXJuIHJldDsKIG91dF9nZnJlZToK LQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmdWZiZGV2LT51ZmIub2JqLT5iYXNlKTsKKwlk cm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZCgmdWZiZGV2LT51ZmIub2JqLT5iYXNl KTsKIG91dDoKIAlyZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Vk bC91ZGxfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9nZW0uYwppbmRleCBjMDQxY2Q3 M2YzOTkuLmZkNmRjMWY5YjNiMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxf Z2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfZ2VtLmMKQEAgLTUxLDcgKzUxLDcg QEAgdWRsX2dlbV9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlLAogCQlyZXR1cm4gcmV0Owog CX0KIAotCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZvYmotPmJhc2UpOworCWRybV9nZW1f b2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKCZvYmotPmJhc2UpOwogCSpoYW5kbGVfcCA9IGhh bmRsZTsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaGlkL2hpZC1jb3JlLmMg Yi9kcml2ZXJzL2hpZC9oaWQtY29yZS5jCmluZGV4IGZiMTZjODEyODE2YS4uOGMzNzNjZGUwNTFj IDEwMDY0NAotLS0gYS9kcml2ZXJzL2hpZC9oaWQtY29yZS5jCisrKyBiL2RyaXZlcnMvaGlkL2hp ZC1jb3JlLmMKQEAgLTE4MTcsNiArMTgxNyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGlkX2Rl dmljZV9pZCBoaWRfaGF2ZV9zcGVjaWFsX2RyaXZlcltdID0gewogCXsgSElEX1VTQl9ERVZJQ0Uo VVNCX1ZFTkRPUl9JRF9MT0dJVEVDSCwgVVNCX0RFVklDRV9JRF9MT0dJVEVDSF9FTElURV9LQkQp IH0sCiAJeyBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0xPR0lURUNILCBVU0JfREVWSUNF X0lEX0xPR0lURUNIX0NPUkRMRVNTX0RFU0tUT1BfTFg1MDApIH0sCiAJeyBISURfVVNCX0RFVklD RShVU0JfVkVORE9SX0lEX0xPR0lURUNILCBVU0JfREVWSUNFX0lEX0xPR0lURUNIX0VYVFJFTUVf M0QpIH0sCisJeyBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0xPR0lURUNILCBVU0JfREVW SUNFX0lEX0xPR0lURUNIX0RVQUxfQUNUSU9OKSB9LAogCXsgSElEX1VTQl9ERVZJQ0UoVVNCX1ZF TkRPUl9JRF9MT0dJVEVDSCwgVVNCX0RFVklDRV9JRF9MT0dJVEVDSF9XSEVFTCkgfSwKIAl7IEhJ RF9VU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfTE9HSVRFQ0gsIFVTQl9ERVZJQ0VfSURfTE9HSVRF Q0hfUlVNQkxFUEFEX0NPUkQpIH0sCiAJeyBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0xP R0lURUNILCBVU0JfREVWSUNFX0lEX0xPR0lURUNIX1JVTUJMRVBBRCkgfSwKQEAgLTI1MzAsOCAr MjUzMSwxMCBAQCBpbnQgaGlkX2FkZF9kZXZpY2Uoc3RydWN0IGhpZF9kZXZpY2UgKmhkZXYpCiAJ LyoKIAkgKiBTY2FuIGdlbmVyaWMgZGV2aWNlcyBmb3IgZ3JvdXAgaW5mb3JtYXRpb24KIAkgKi8K LQlpZiAoaGlkX2lnbm9yZV9zcGVjaWFsX2RyaXZlcnMgfHwKLQkgICAgIWhpZF9tYXRjaF9pZCho ZGV2LCBoaWRfaGF2ZV9zcGVjaWFsX2RyaXZlcikpIHsKKwlpZiAoaGlkX2lnbm9yZV9zcGVjaWFs X2RyaXZlcnMpIHsKKwkJaGRldi0+Z3JvdXAgPSBISURfR1JPVVBfR0VORVJJQzsKKwl9IGVsc2Ug aWYgKCFoZGV2LT5ncm91cCAmJgorCQkgICAhaGlkX21hdGNoX2lkKGhkZXYsIGhpZF9oYXZlX3Nw ZWNpYWxfZHJpdmVyKSkgewogCQlyZXQgPSBoaWRfc2Nhbl9yZXBvcnQoaGRldik7CiAJCWlmIChy ZXQpCiAJCQloaWRfd2FybihoZGV2LCAiYmFkIGRldmljZSBkZXNjcmlwdG9yICglZClcbiIsIHJl dCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9pMmMtaGlkL2kyYy1oaWQuYyBiL2RyaXZlcnMv aGlkL2kyYy1oaWQvaTJjLWhpZC5jCmluZGV4IGQ0MGQxZjM2ZjQ3ZS4uMjNlZWJiN2YzMWFhIDEw MDY0NAotLS0gYS9kcml2ZXJzL2hpZC9pMmMtaGlkL2kyYy1oaWQuYworKysgYi9kcml2ZXJzL2hp ZC9pMmMtaGlkL2kyYy1oaWQuYwpAQCAtMjc3LDE3ICsyNzcsMjEgQEAgc3RhdGljIGludCBpMmNf aGlkX3NldF9vcl9zZW5kX3JlcG9ydChzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCB1OCByZXBv cnRUeXBlLAogCXUxNiBkYXRhUmVnaXN0ZXIgPSBsZTE2X3RvX2NwdShpaGlkLT5oZGVzYy53RGF0 YVJlZ2lzdGVyKTsKIAl1MTYgb3V0cHV0UmVnaXN0ZXIgPSBsZTE2X3RvX2NwdShpaGlkLT5oZGVz Yy53T3V0cHV0UmVnaXN0ZXIpOwogCXUxNiBtYXhPdXRwdXRMZW5ndGggPSBsZTE2X3RvX2NwdShp aGlkLT5oZGVzYy53TWF4T3V0cHV0TGVuZ3RoKTsKKwl1MTYgc2l6ZTsKKwlpbnQgYXJnc19sZW47 CisJaW50IGluZGV4ID0gMDsKKworCWkyY19oaWRfZGJnKGloaWQsICIlc1xuIiwgX19mdW5jX18p OworCisJaWYgKGRhdGFfbGVuID4gaWhpZC0+YnVmc2l6ZSkKKwkJcmV0dXJuIC1FSU5WQUw7CiAK LQkvKiBoaWRfaHdfKiBhbHJlYWR5IGNoZWNrZWQgdGhhdCBkYXRhX2xlbiA8IEhJRF9NQVhfQlVG RkVSX1NJWkUgKi8KLQl1MTYgc2l6ZSA9CTIJCQkvKiBzaXplICovICsKKwlzaXplID0JCTIJCQkv KiBzaXplICovICsKIAkJCShyZXBvcnRJRCA/IDEgOiAwKQkvKiByZXBvcnRJRCAqLyArCiAJCQlk YXRhX2xlbgkJLyogYnVmICovOwotCWludCBhcmdzX2xlbiA9CShyZXBvcnRJRCA+PSAweDBGID8g MSA6IDApIC8qIG9wdGlvbmFsIHRoaXJkIGJ5dGUgKi8gKworCWFyZ3NfbGVuID0JKHJlcG9ydElE ID49IDB4MEYgPyAxIDogMCkgLyogb3B0aW9uYWwgdGhpcmQgYnl0ZSAqLyArCiAJCQkyCQkJLyog ZGF0YVJlZ2lzdGVyICovICsKIAkJCXNpemUJCQkvKiBhcmdzICovOwotCWludCBpbmRleCA9IDA7 Ci0KLQlpMmNfaGlkX2RiZyhpaGlkLCAiJXNcbiIsIF9fZnVuY19fKTsKIAogCWlmICghdXNlX2Rh dGEgJiYgbWF4T3V0cHV0TGVuZ3RoID09IDApCiAJCXJldHVybiAtRU5PU1lTOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9od21vbi9tYXgxMTExLmMgYi9kcml2ZXJzL2h3bW9uL21heDExMTEuYwppbmRl eCBmNjdkNzFlZTgzODYuLjE1OWY1MGQwYWUzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9t YXgxMTExLmMKKysrIGIvZHJpdmVycy9od21vbi9tYXgxMTExLmMKQEAgLTg1LDYgKzg1LDkgQEAg c3RhdGljIHN0cnVjdCBtYXgxMTExX2RhdGEgKnRoZV9tYXgxMTExOwogCiBpbnQgbWF4MTExMV9y ZWFkX2NoYW5uZWwoaW50IGNoYW5uZWwpCiB7CisJaWYgKCF0aGVfbWF4MTExMSB8fCAhdGhlX21h eDExMTEtPnNwaSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKIAlyZXR1cm4gbWF4MTExMV9yZWFkKCZ0 aGVfbWF4MTExMS0+c3BpLT5kZXYsIGNoYW5uZWwpOwogfQogRVhQT1JUX1NZTUJPTChtYXgxMTEx X3JlYWRfY2hhbm5lbCk7CkBAIC0yNTgsNiArMjYxLDkgQEAgc3RhdGljIGludCBtYXgxMTExX3Jl bW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogewogCXN0cnVjdCBtYXgxMTExX2RhdGEgKmRh dGEgPSBzcGlfZ2V0X2RydmRhdGEoc3BpKTsKIAorI2lmZGVmIENPTkZJR19TSEFSUFNMX1BNCisJ dGhlX21heDExMTEgPSBOVUxMOworI2VuZGlmCiAJaHdtb25fZGV2aWNlX3VucmVnaXN0ZXIoZGF0 YS0+aHdtb25fZGV2KTsKIAlzeXNmc19yZW1vdmVfZ3JvdXAoJnNwaS0+ZGV2LmtvYmosICZtYXgx MTEwX2F0dHJfZ3JvdXApOwogCXN5c2ZzX3JlbW92ZV9ncm91cCgmc3BpLT5kZXYua29iaiwgJm1h eDExMTFfYXR0cl9ncm91cCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL3Ny cHQvaWJfc3JwdC5jIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9zcnB0L2liX3NycHQuYwppbmRl eCAzZmZhZjRlNmM2NzEuLjFmMTViNGQwZmQxMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmli YW5kL3VscC9zcnB0L2liX3NycHQuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL3NycHQv aWJfc3JwdC5jCkBAIC0xNzQ0LDQ3ICsxNzQ0LDYgQEAgc2VuZF9zZW5zZToKIAlyZXR1cm4gLTE7 CiB9CiAKLS8qKgotICogc3JwdF9yeF9tZ210X2ZuX3RhZygpIC0gUHJvY2VzcyBhIHRhc2sgbWFu YWdlbWVudCBmdW5jdGlvbiBieSB0YWcuCi0gKiBAY2g6IFJETUEgY2hhbm5lbCBvZiB0aGUgdGFz ayBtYW5hZ2VtZW50IHJlcXVlc3QuCi0gKiBAZm46IFRhc2sgbWFuYWdlbWVudCBmdW5jdGlvbiB0 byBwZXJmb3JtLgotICogQHJlcV90YWc6IFRhZyBvZiB0aGUgU1JQIHRhc2sgbWFuYWdlbWVudCBy ZXF1ZXN0LgotICogQG1nbXRfaW9jdHg6IEkvTyBjb250ZXh0IG9mIHRoZSB0YXNrIG1hbmFnZW1l bnQgcmVxdWVzdC4KLSAqCi0gKiBSZXR1cm5zIHplcm8gaWYgdGhlIHRhcmdldCBjb3JlIHdpbGwg cHJvY2VzcyB0aGUgdGFzayBtYW5hZ2VtZW50Ci0gKiByZXF1ZXN0IGFzeW5jaHJvbm91c2x5Lgot ICoKLSAqIE5vdGU6IEl0IGlzIGFzc3VtZWQgdGhhdCB0aGUgaW5pdGlhdG9yIHNlcmlhbGl6ZXMg dGFnLWJhc2VkIHRhc2sgbWFuYWdlbWVudAotICogcmVxdWVzdHMuCi0gKi8KLXN0YXRpYyBpbnQg c3JwdF9yeF9tZ210X2ZuX3RhZyhzdHJ1Y3Qgc3JwdF9zZW5kX2lvY3R4ICppb2N0eCwgdTY0IHRh ZykKLXsKLQlzdHJ1Y3Qgc3JwdF9kZXZpY2UgKnNkZXY7Ci0Jc3RydWN0IHNycHRfcmRtYV9jaCAq Y2g7Ci0Jc3RydWN0IHNycHRfc2VuZF9pb2N0eCAqdGFyZ2V0OwotCWludCByZXQsIGk7Ci0KLQly ZXQgPSAtRUlOVkFMOwotCWNoID0gaW9jdHgtPmNoOwotCUJVR19PTighY2gpOwotCUJVR19PTigh Y2gtPnNwb3J0KTsKLQlzZGV2ID0gY2gtPnNwb3J0LT5zZGV2OwotCUJVR19PTighc2Rldik7Ci0J c3Bpbl9sb2NrX2lycSgmc2Rldi0+c3BpbmxvY2spOwotCWZvciAoaSA9IDA7IGkgPCBjaC0+cnFf c2l6ZTsgKytpKSB7Ci0JCXRhcmdldCA9IGNoLT5pb2N0eF9yaW5nW2ldOwotCQlpZiAodGFyZ2V0 LT5jbWQuc2VfbHVuID09IGlvY3R4LT5jbWQuc2VfbHVuICYmCi0JCSAgICB0YXJnZXQtPnRhZyA9 PSB0YWcgJiYKLQkJICAgIHNycHRfZ2V0X2NtZF9zdGF0ZSh0YXJnZXQpICE9IFNSUFRfU1RBVEVf RE9ORSkgewotCQkJcmV0ID0gMDsKLQkJCS8qIG5vdyBsZXQgdGhlIHRhcmdldCBjb3JlIGFib3J0 ICZ0YXJnZXQtPmNtZDsgKi8KLQkJCWJyZWFrOwotCQl9Ci0JfQotCXNwaW5fdW5sb2NrX2lycSgm c2Rldi0+c3BpbmxvY2spOwotCXJldHVybiByZXQ7Ci19Ci0KIHN0YXRpYyBpbnQgc3JwX3Rtcl90 b190Y20oaW50IGZuKQogewogCXN3aXRjaCAoZm4pIHsKQEAgLTE4MTksNyArMTc3OCw2IEBAIHN0 YXRpYyB2b2lkIHNycHRfaGFuZGxlX3Rza19tZ210KHN0cnVjdCBzcnB0X3JkbWFfY2ggKmNoLAog CXN0cnVjdCBzZV9jbWQgKmNtZDsKIAlzdHJ1Y3Qgc2Vfc2Vzc2lvbiAqc2VzcyA9IGNoLT5zZXNz OwogCXVpbnQ2NF90IHVucGFja2VkX2x1bjsKLQl1aW50MzJfdCB0YWcgPSAwOwogCWludCB0Y21f dG1yOwogCWludCByYzsKIApAQCAtMTgzNSwyNSArMTc5MywxMCBAQCBzdGF0aWMgdm9pZCBzcnB0 X2hhbmRsZV90c2tfbWdtdChzdHJ1Y3Qgc3JwdF9yZG1hX2NoICpjaCwKIAlzcnB0X3NldF9jbWRf c3RhdGUoc2VuZF9pb2N0eCwgU1JQVF9TVEFURV9NR01UKTsKIAlzZW5kX2lvY3R4LT50YWcgPSBz cnBfdHNrLT50YWc7CiAJdGNtX3RtciA9IHNycF90bXJfdG9fdGNtKHNycF90c2stPnRza19tZ210 X2Z1bmMpOwotCWlmICh0Y21fdG1yIDwgMCkgewotCQlzZW5kX2lvY3R4LT5jbWQuc2VfdG1yX3Jl cS0+cmVzcG9uc2UgPQotCQkJVE1SX1RBU0tfTUdNVF9GVU5DVElPTl9OT1RfU1VQUE9SVEVEOwot CQlnb3RvIGZhaWw7Ci0JfQogCXVucGFja2VkX2x1biA9IHNycHRfdW5wYWNrX2x1bigodWludDhf dCAqKSZzcnBfdHNrLT5sdW4sCiAJCQkJICAgICAgIHNpemVvZihzcnBfdHNrLT5sdW4pKTsKLQot CWlmIChzcnBfdHNrLT50c2tfbWdtdF9mdW5jID09IFNSUF9UU0tfQUJPUlRfVEFTSykgewotCQly YyA9IHNycHRfcnhfbWdtdF9mbl90YWcoc2VuZF9pb2N0eCwgc3JwX3Rzay0+dGFza190YWcpOwot CQlpZiAocmMgPCAwKSB7Ci0JCQlzZW5kX2lvY3R4LT5jbWQuc2VfdG1yX3JlcS0+cmVzcG9uc2Ug PQotCQkJCQlUTVJfVEFTS19ET0VTX05PVF9FWElTVDsKLQkJCWdvdG8gZmFpbDsKLQkJfQotCQl0 YWcgPSBzcnBfdHNrLT50YXNrX3RhZzsKLQl9CiAJcmMgPSB0YXJnZXRfc3VibWl0X3Rtcigmc2Vu ZF9pb2N0eC0+Y21kLCBzZXNzLCBOVUxMLCB1bnBhY2tlZF9sdW4sCi0JCQkJc3JwX3RzaywgdGNt X3RtciwgR0ZQX0tFUk5FTCwgdGFnLAorCQkJCXNycF90c2ssIHRjbV90bXIsIEdGUF9LRVJORUws IHNycF90c2stPnRhc2tfdGFnLAogCQkJCVRBUkdFVF9TQ0ZfQUNLX0tSRUYpOwogCWlmIChyYyAh PSAwKSB7CiAJCXNlbmRfaW9jdHgtPmNtZC5zZV90bXJfcmVxLT5yZXNwb25zZSA9IFRNUl9GVU5D VElPTl9SRUpFQ1RFRDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvbWlzYy9pbXMtcGN1LmMg Yi9kcml2ZXJzL2lucHV0L21pc2MvaW1zLXBjdS5jCmluZGV4IDcxOTQxMGZlYjg0Yi4uMzJiYTJj ZjhmZGNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L21pc2MvaW1zLXBjdS5jCisrKyBiL2Ry aXZlcnMvaW5wdXQvbWlzYy9pbXMtcGN1LmMKQEAgLTE2NjMsNiArMTY2Myw4IEBAIHN0YXRpYyBp bnQgaW1zX3BjdV9wYXJzZV9jZGNfZGF0YShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Ziwgc3Ry dWN0IGltc19wY3UgKnBjCiAKIAlwY3UtPmN0cmxfaW50ZiA9IHVzYl9pZm51bV90b19pZihwY3Ut PnVkZXYsCiAJCQkJCSB1bmlvbl9kZXNjLT5iTWFzdGVySW50ZXJmYWNlMCk7CisJaWYgKCFwY3Ut PmN0cmxfaW50ZikKKwkJcmV0dXJuIC1FSU5WQUw7CiAKIAlhbHQgPSBwY3UtPmN0cmxfaW50Zi0+ Y3VyX2FsdHNldHRpbmc7CiAJcGN1LT5lcF9jdHJsID0gJmFsdC0+ZW5kcG9pbnRbMF0uZGVzYzsK QEAgLTE2NzAsNiArMTY3Miw4IEBAIHN0YXRpYyBpbnQgaW1zX3BjdV9wYXJzZV9jZGNfZGF0YShz dHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Ziwgc3RydWN0IGltc19wY3UgKnBjCiAKIAlwY3UtPmRh dGFfaW50ZiA9IHVzYl9pZm51bV90b19pZihwY3UtPnVkZXYsCiAJCQkJCSB1bmlvbl9kZXNjLT5i U2xhdmVJbnRlcmZhY2UwKTsKKwlpZiAoIXBjdS0+ZGF0YV9pbnRmKQorCQlyZXR1cm4gLUVJTlZB TDsKIAogCWFsdCA9IHBjdS0+ZGF0YV9pbnRmLT5jdXJfYWx0c2V0dGluZzsKIAlpZiAoYWx0LT5k ZXNjLmJOdW1FbmRwb2ludHMgIT0gMikgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9tb3Vz ZS9zeW5hcHRpY3MuYyBiL2RyaXZlcnMvaW5wdXQvbW91c2Uvc3luYXB0aWNzLmMKaW5kZXggMzc4 YWYzZmE3NDdkLi43YTcyMjMxNTQ4ZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvbW91c2Uv c3luYXB0aWNzLmMKKysrIGIvZHJpdmVycy9pbnB1dC9tb3VzZS9zeW5hcHRpY3MuYwpAQCAtODM4 LDggKzgzOCw5IEBAIHN0YXRpYyB2b2lkIHN5bmFwdGljc19yZXBvcnRfZXh0X2J1dHRvbnMoc3Ry dWN0IHBzbW91c2UgKnBzbW91c2UsCiAJaWYgKCFTWU5fQ0FQX01VTFRJX0JVVFRPTl9OTyhwcml2 LT5leHRfY2FwKSkKIAkJcmV0dXJuOwogCi0JLyogQnVnIGluIEZXIDguMSwgYnV0dG9ucyBhcmUg cmVwb3J0ZWQgb25seSB3aGVuIEV4dEJpdCBpcyAxICovCi0JaWYgKFNZTl9JRF9GVUxMKHByaXYt PmlkZW50aXR5KSA9PSAweDgwMSAmJgorCS8qIEJ1ZyBpbiBGVyA4LjEgJiA4LjIsIGJ1dHRvbnMg YXJlIHJlcG9ydGVkIG9ubHkgd2hlbiBFeHRCaXQgaXMgMSAqLworCWlmICgoU1lOX0lEX0ZVTEwo cHJpdi0+aWRlbnRpdHkpID09IDB4ODAxIHx8CisJICAgICBTWU5fSURfRlVMTChwcml2LT5pZGVu dGl0eSkgPT0gMHg4MDIpICYmCiAJICAgICEoKHBzbW91c2UtPnBhY2tldFswXSBeIHBzbW91c2Ut PnBhY2tldFszXSkgJiAweDAyKSkKIAkJcmV0dXJuOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21k L2JjYWNoZS9zdXBlci5jIGIvZHJpdmVycy9tZC9iY2FjaGUvc3VwZXIuYwppbmRleCA3MGRiMjRl NDE5NDcuLjNiMjYwYzY3ZGI3NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9iY2FjaGUvc3VwZXIu YworKysgYi9kcml2ZXJzL21kL2JjYWNoZS9zdXBlci5jCkBAIC03MzUsOCArNzM1LDYgQEAgc3Rh dGljIHZvaWQgYmNhY2hlX2RldmljZV9kZXRhY2goc3RydWN0IGJjYWNoZV9kZXZpY2UgKmQpCiBz dGF0aWMgdm9pZCBiY2FjaGVfZGV2aWNlX2F0dGFjaChzdHJ1Y3QgYmNhY2hlX2RldmljZSAqZCwg c3RydWN0IGNhY2hlX3NldCAqYywKIAkJCQkgdW5zaWduZWQgaWQpCiB7Ci0JQlVHX09OKHRlc3Rf Yml0KENBQ0hFX1NFVF9TVE9QUElORywgJmMtPmZsYWdzKSk7Ci0KIAlkLT5pZCA9IGlkOwogCWQt PmMgPSBjOwogCWMtPmRldmljZXNbaWRdID0gZDsKQEAgLTEzODcsNiArMTM4NSw5IEBAIHN0YXRp YyB2b2lkIGNhY2hlX3NldF9mbHVzaChzdHJ1Y3QgY2xvc3VyZSAqY2wpCiAJc3RydWN0IGJ0cmVl ICpiOwogCXVuc2lnbmVkIGk7CiAKKwlpZiAoIWMpCisJCWNsb3N1cmVfcmV0dXJuKGNsKTsKKwog CWJjaF9jYWNoZV9hY2NvdW50aW5nX2Rlc3Ryb3koJmMtPmFjY291bnRpbmcpOwogCiAJa29iamVj dF9wdXQoJmMtPmludGVybmFsKTsKQEAgLTE3NjUsNiArMTc2Niw3IEBAIGZvdW5kOgogCQlwcl9k ZWJ1Zygic2V0IHZlcnNpb24gPSAlbGx1IiwgYy0+c2IudmVyc2lvbik7CiAJfQogCisJa29iamVj dF9nZXQoJmNhLT5rb2JqKTsKIAljYS0+c2V0ID0gYzsKIAljYS0+c2V0LT5jYWNoZVtjYS0+c2Iu bnJfdGhpc19kZXZdID0gY2E7CiAJYy0+Y2FjaGVfYnlfYWxsb2NbYy0+Y2FjaGVzX2xvYWRlZCsr XSA9IGNhOwpAQCAtMTg0OCwxMSArMTg1MCwxMiBAQCBzdGF0aWMgaW50IGNhY2hlX2FsbG9jKHN0 cnVjdCBjYWNoZV9zYiAqc2IsIHN0cnVjdCBjYWNoZSAqY2EpCiAJcmV0dXJuIDA7CiB9CiAKLXN0 YXRpYyB2b2lkIHJlZ2lzdGVyX2NhY2hlKHN0cnVjdCBjYWNoZV9zYiAqc2IsIHN0cnVjdCBwYWdl ICpzYl9wYWdlLAorc3RhdGljIGludCByZWdpc3Rlcl9jYWNoZShzdHJ1Y3QgY2FjaGVfc2IgKnNi LCBzdHJ1Y3QgcGFnZSAqc2JfcGFnZSwKIAkJCQkgIHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYs IHN0cnVjdCBjYWNoZSAqY2EpCiB7CiAJY2hhciBuYW1lW0JERVZOQU1FX1NJWkVdOwotCWNvbnN0 IGNoYXIgKmVyciA9ICJjYW5ub3QgYWxsb2NhdGUgbWVtb3J5IjsKKwljb25zdCBjaGFyICplcnIg PSBOVUxMOworCWludCByZXQgPSAwOwogCiAJbWVtY3B5KCZjYS0+c2IsIHNiLCBzaXplb2Yoc3Ry dWN0IGNhY2hlX3NiKSk7CiAJY2EtPmJkZXYgPSBiZGV2OwpAQCAtMTg2NywyNSArMTg3MCwzNSBA QCBzdGF0aWMgdm9pZCByZWdpc3Rlcl9jYWNoZShzdHJ1Y3QgY2FjaGVfc2IgKnNiLCBzdHJ1Y3Qg cGFnZSAqc2JfcGFnZSwKIAlpZiAoYmxrX3F1ZXVlX2Rpc2NhcmQoYmRldl9nZXRfcXVldWUoY2Et PmJkZXYpKSkKIAkJY2EtPmRpc2NhcmQgPSBDQUNIRV9ESVNDQVJEKCZjYS0+c2IpOwogCi0JaWYg KGNhY2hlX2FsbG9jKHNiLCBjYSkgIT0gMCkKKwlyZXQgPSBjYWNoZV9hbGxvYyhzYiwgY2EpOwor CWlmIChyZXQgIT0gMCkKIAkJZ290byBlcnI7CiAKLQllcnIgPSAiZXJyb3IgY3JlYXRpbmcga29i amVjdCI7Ci0JaWYgKGtvYmplY3RfYWRkKCZjYS0+a29iaiwgJnBhcnRfdG9fZGV2KGJkZXYtPmJk X3BhcnQpLT5rb2JqLCAiYmNhY2hlIikpCi0JCWdvdG8gZXJyOworCWlmIChrb2JqZWN0X2FkZCgm Y2EtPmtvYmosICZwYXJ0X3RvX2RldihiZGV2LT5iZF9wYXJ0KS0+a29iaiwgImJjYWNoZSIpKSB7 CisJCWVyciA9ICJlcnJvciBjYWxsaW5nIGtvYmplY3RfYWRkIjsKKwkJcmV0ID0gLUVOT01FTTsK KwkJZ290byBvdXQ7CisJfQogCiAJbXV0ZXhfbG9jaygmYmNoX3JlZ2lzdGVyX2xvY2spOwogCWVy ciA9IHJlZ2lzdGVyX2NhY2hlX3NldChjYSk7CiAJbXV0ZXhfdW5sb2NrKCZiY2hfcmVnaXN0ZXJf bG9jayk7CiAKLQlpZiAoZXJyKQotCQlnb3RvIGVycjsKKwlpZiAoZXJyKSB7CisJCXJldCA9IC1F Tk9ERVY7CisJCWdvdG8gb3V0OworCX0KIAogCXByX2luZm8oInJlZ2lzdGVyZWQgY2FjaGUgZGV2 aWNlICVzIiwgYmRldm5hbWUoYmRldiwgbmFtZSkpOwotCXJldHVybjsKLWVycjoKLQlwcl9ub3Rp Y2UoImVycm9yIG9wZW5pbmcgJXM6ICVzIiwgYmRldm5hbWUoYmRldiwgbmFtZSksIGVycik7CisK K291dDoKIAlrb2JqZWN0X3B1dCgmY2EtPmtvYmopOworCitlcnI6CisJaWYgKGVycikKKwkJcHJf bm90aWNlKCJlcnJvciBvcGVuaW5nICVzOiAlcyIsIGJkZXZuYW1lKGJkZXYsIG5hbWUpLCBlcnIp OworCisJcmV0dXJuIHJldDsKIH0KIAogLyogR2xvYmFsIGludGVyZmFjZXMvaW5pdCAqLwpAQCAt MTk4Myw3ICsxOTk2LDggQEAgc3RhdGljIHNzaXplX3QgcmVnaXN0ZXJfYmNhY2hlKHN0cnVjdCBr b2JqZWN0ICprLCBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsCiAJCWlmICghY2EpCiAJCQln b3RvIGVycl9jbG9zZTsKIAotCQlyZWdpc3Rlcl9jYWNoZShzYiwgc2JfcGFnZSwgYmRldiwgY2Ep OworCQlpZiAocmVnaXN0ZXJfY2FjaGUoc2IsIHNiX3BhZ2UsIGJkZXYsIGNhKSAhPSAwKQorCQkJ Z290byBlcnJfY2xvc2U7CiAJfQogb3V0OgogCWlmIChzYl9wYWdlKQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9tZC9tdWx0aXBhdGguYyBiL2RyaXZlcnMvbWQvbXVsdGlwYXRoLmMKaW5kZXggODQ5YWQz OWY1NDdiLi43OTg3MGY0YjMxOGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvbXVsdGlwYXRoLmMK KysrIGIvZHJpdmVycy9tZC9tdWx0aXBhdGguYwpAQCAtMTMxLDcgKzEzMSw5IEBAIHN0YXRpYyB2 b2lkIG11bHRpcGF0aF9tYWtlX3JlcXVlc3Qoc3RydWN0IG1kZGV2ICptZGRldiwgc3RydWN0IGJp byAqIGJpbykKIAl9CiAJbXVsdGlwYXRoID0gY29uZi0+bXVsdGlwYXRocyArIG1wX2JoLT5wYXRo OwogCi0JbXBfYmgtPmJpbyA9ICpiaW87CisJYmlvX2luaXQoJm1wX2JoLT5iaW8pOworCV9fYmlv X2Nsb25lX2Zhc3QoJm1wX2JoLT5iaW8sIGJpbyk7CisKIAltcF9iaC0+YmlvLmJpX2l0ZXIuYmlf c2VjdG9yICs9IG11bHRpcGF0aC0+cmRldi0+ZGF0YV9vZmZzZXQ7CiAJbXBfYmgtPmJpby5iaV9i ZGV2ID0gbXVsdGlwYXRoLT5yZGV2LT5iZGV2OwogCW1wX2JoLT5iaW8uYmlfcncgfD0gUkVRX0ZB SUxGQVNUX1RSQU5TUE9SVDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvcmFpZDUuYyBiL2RyaXZl cnMvbWQvcmFpZDUuYwppbmRleCBmOTA3NTJjZTk1ZGMuLjlkOWQ3NTdhMzQ4OCAxMDA2NDQKLS0t IGEvZHJpdmVycy9tZC9yYWlkNS5jCisrKyBiL2RyaXZlcnMvbWQvcmFpZDUuYwpAQCAtNjI2NCw4 ICs2MjY0LDggQEAgc3RhdGljIGludCBydW4oc3RydWN0IG1kZGV2ICptZGRldikKIAkJfQogCiAJ CWlmIChkaXNjYXJkX3N1cHBvcnRlZCAmJgotCQkgICBtZGRldi0+cXVldWUtPmxpbWl0cy5tYXhf ZGlzY2FyZF9zZWN0b3JzID49IHN0cmlwZSAmJgotCQkgICBtZGRldi0+cXVldWUtPmxpbWl0cy5k aXNjYXJkX2dyYW51bGFyaXR5ID49IHN0cmlwZSkKKwkJICAgIG1kZGV2LT5xdWV1ZS0+bGltaXRz Lm1heF9kaXNjYXJkX3NlY3RvcnMgPj0gKHN0cmlwZSA+PiA5KSAmJgorCQkgICAgbWRkZXYtPnF1 ZXVlLT5saW1pdHMuZGlzY2FyZF9ncmFudWxhcml0eSA+PSBzdHJpcGUpCiAJCQlxdWV1ZV9mbGFn X3NldF91bmxvY2tlZChRVUVVRV9GTEFHX0RJU0NBUkQsCiAJCQkJCQltZGRldi0+cXVldWUpOwog CQllbHNlCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2kyYy9hZHY3NTExLmMgYi9kcml2ZXJz L21lZGlhL2kyYy9hZHY3NTExLmMKaW5kZXggZjk4YWNmNGFhZmQ0Li42MjFlNGMwNTgyOTcgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvaTJjL2Fkdjc1MTEuYworKysgYi9kcml2ZXJzL21lZGlh L2kyYy9hZHY3NTExLmMKQEAgLTgzMywxMiArODMzLDIzIEBAIHN0YXRpYyB2b2lkIGFkdjc1MTFf ZGJnX2R1bXBfZWRpZChpbnQgbHZsLCBpbnQgZGVidWcsIHN0cnVjdCB2NGwyX3N1YmRldiAqc2Qs IGluCiAJfQogfQogCitzdGF0aWMgdm9pZCBhZHY3NTExX25vdGlmeV9ub19lZGlkKHN0cnVjdCB2 NGwyX3N1YmRldiAqc2QpCit7CisJc3RydWN0IGFkdjc1MTFfc3RhdGUgKnN0YXRlID0gZ2V0X2Fk djc1MTFfc3RhdGUoc2QpOworCXN0cnVjdCBhZHY3NTExX2VkaWRfZGV0ZWN0IGVkOworCisJLyog V2UgZmFpbGVkIHRvIHJlYWQgdGhlIEVESUQsIHNvIHNlbmQgYW4gZXZlbnQgZm9yIHRoaXMuICov CisJZWQucHJlc2VudCA9IGZhbHNlOworCWVkLnNlZ21lbnQgPSBhZHY3NTExX3JkKHNkLCAweGM0 KTsKKwl2NGwyX3N1YmRldl9ub3RpZnkoc2QsIEFEVjc1MTFfRURJRF9ERVRFQ1QsICh2b2lkICop JmVkKTsKKwl2NGwyX2N0cmxfc19jdHJsKHN0YXRlLT5oYXZlX2VkaWQwX2N0cmwsIDB4MCk7Cit9 CisKIHN0YXRpYyB2b2lkIGFkdjc1MTFfZWRpZF9oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAq d29yaykKIHsKIAlzdHJ1Y3QgZGVsYXllZF93b3JrICpkd29yayA9IHRvX2RlbGF5ZWRfd29yayh3 b3JrKTsKIAlzdHJ1Y3QgYWR2NzUxMV9zdGF0ZSAqc3RhdGUgPSBjb250YWluZXJfb2YoZHdvcmss IHN0cnVjdCBhZHY3NTExX3N0YXRlLCBlZGlkX2hhbmRsZXIpOwogCXN0cnVjdCB2NGwyX3N1YmRl diAqc2QgPSAmc3RhdGUtPnNkOwotCXN0cnVjdCBhZHY3NTExX2VkaWRfZGV0ZWN0IGVkOwogCiAJ djRsMl9kYmcoMSwgZGVidWcsIHNkLCAiJXM6XG4iLCBfX2Z1bmNfXyk7CiAKQEAgLTg2Myw5ICs4 NzQsNyBAQCBzdGF0aWMgdm9pZCBhZHY3NTExX2VkaWRfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1 Y3QgKndvcmspCiAJfQogCiAJLyogV2UgZmFpbGVkIHRvIHJlYWQgdGhlIEVESUQsIHNvIHNlbmQg YW4gZXZlbnQgZm9yIHRoaXMuICovCi0JZWQucHJlc2VudCA9IGZhbHNlOwotCWVkLnNlZ21lbnQg PSBhZHY3NTExX3JkKHNkLCAweGM0KTsKLQl2NGwyX3N1YmRldl9ub3RpZnkoc2QsIEFEVjc1MTFf RURJRF9ERVRFQ1QsICh2b2lkICopJmVkKTsKKwlhZHY3NTExX25vdGlmeV9ub19lZGlkKHNkKTsK IAl2NGwyX2RiZygxLCBkZWJ1Zywgc2QsICIlczogbm8gZWRpZCBmb3VuZFxuIiwgX19mdW5jX18p OwogfQogCkBAIC05MzYsNyArOTQ1LDYgQEAgc3RhdGljIHZvaWQgYWR2NzUxMV9jaGVja19tb25p dG9yX3ByZXNlbnRfc3RhdHVzKHN0cnVjdCB2NGwyX3N1YmRldiAqc2QpCiAJLyogdXBkYXRlIHJl YWQgb25seSBjdHJscyAqLwogCXY0bDJfY3RybF9zX2N0cmwoc3RhdGUtPmhvdHBsdWdfY3RybCwg YWR2NzUxMV9oYXZlX2hvdHBsdWcoc2QpID8gMHgxIDogMHgwKTsKIAl2NGwyX2N0cmxfc19jdHJs KHN0YXRlLT5yeF9zZW5zZV9jdHJsLCBhZHY3NTExX2hhdmVfcnhfc2Vuc2Uoc2QpID8gMHgxIDog MHgwKTsKLQl2NGwyX2N0cmxfc19jdHJsKHN0YXRlLT5oYXZlX2VkaWQwX2N0cmwsIHN0YXRlLT5l ZGlkLnNlZ21lbnRzID8gMHgxIDogMHgwKTsKIAogCWlmICgoc3RhdHVzICYgTUFTS19BRFY3NTEx X0hQRF9ERVRFQ1QpICYmICgoc3RhdHVzICYgTUFTS19BRFY3NTExX01TRU5fREVURUNUKSB8fCBz dGF0ZS0+ZWRpZC5zZWdtZW50cykpIHsKIAkJdjRsMl9kYmcoMSwgZGVidWcsIHNkLCAiJXM6IGhv dHBsdWcgYW5kIChyeC1zZW5zZSBvciBlZGlkKVxuIiwgX19mdW5jX18pOwpAQCAtOTY2LDYgKzk3 NCw3IEBAIHN0YXRpYyB2b2lkIGFkdjc1MTFfY2hlY2tfbW9uaXRvcl9wcmVzZW50X3N0YXR1cyhz dHJ1Y3QgdjRsMl9zdWJkZXYgKnNkKQogCQl9CiAJCWFkdjc1MTFfc19wb3dlcihzZCwgZmFsc2Up OwogCQltZW1zZXQoJnN0YXRlLT5lZGlkLCAwLCBzaXplb2Yoc3RydWN0IGFkdjc1MTFfc3RhdGVf ZWRpZCkpOworCQlhZHY3NTExX25vdGlmeV9ub19lZGlkKHNkKTsKIAl9CiB9CiAKQEAgLTEwNDIs NiArMTA1MSw3IEBAIHN0YXRpYyBib29sIGFkdjc1MTFfY2hlY2tfZWRpZF9zdGF0dXMoc3RydWN0 IHY0bDJfc3ViZGV2ICpzZCkKIAkJfQogCQkvKiBvbmUgbW9yZSBzZWdtZW50IHJlYWQgb2sgKi8K IAkJc3RhdGUtPmVkaWQuc2VnbWVudHMgPSBzZWdtZW50ICsgMTsKKwkJdjRsMl9jdHJsX3NfY3Ry bChzdGF0ZS0+aGF2ZV9lZGlkMF9jdHJsLCAweDEpOwogCQlpZiAoKChzdGF0ZS0+ZWRpZC5kYXRh WzB4N2VdID4+IDEpICsgMSkgPiBzdGF0ZS0+ZWRpZC5zZWdtZW50cykgewogCQkJLyogUmVxdWVz dCBuZXh0IEVESUQgc2VnbWVudCAqLwogCQkJdjRsMl9kYmcoMSwgZGVidWcsIHNkLCAiJXM6IHJl cXVlc3Qgc2VnbWVudCAlZFxuIiwgX19mdW5jX18sIHN0YXRlLT5lZGlkLnNlZ21lbnRzKTsKQEAg LTEwNjEsNyArMTA3MSw2IEBAIHN0YXRpYyBib29sIGFkdjc1MTFfY2hlY2tfZWRpZF9zdGF0dXMo c3RydWN0IHY0bDJfc3ViZGV2ICpzZCkKIAkJZWQucHJlc2VudCA9IHRydWU7CiAJCWVkLnNlZ21l bnQgPSAwOwogCQlzdGF0ZS0+ZWRpZF9kZXRlY3RfY291bnRlcisrOwotCQl2NGwyX2N0cmxfc19j dHJsKHN0YXRlLT5oYXZlX2VkaWQwX2N0cmwsIHN0YXRlLT5lZGlkLnNlZ21lbnRzID8gMHgxIDog MHgwKTsKIAkJdjRsMl9zdWJkZXZfbm90aWZ5KHNkLCBBRFY3NTExX0VESURfREVURUNULCAodm9p ZCAqKSZlZCk7CiAJCXJldHVybiBlZC5wcmVzZW50OwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv bWVkaWEvcGNpL2J0OHh4L2J0dHYtZHJpdmVyLmMgYi9kcml2ZXJzL21lZGlhL3BjaS9idDh4eC9i dHR2LWRyaXZlci5jCmluZGV4IGRhNzgwZjQyYjEyMS4uMGRkNmVmNjI1NDBkIDEwMDY0NAotLS0g YS9kcml2ZXJzL21lZGlhL3BjaS9idDh4eC9idHR2LWRyaXZlci5jCisrKyBiL2RyaXZlcnMvbWVk aWEvcGNpL2J0OHh4L2J0dHYtZHJpdmVyLmMKQEAgLTIzMzMsNiArMjMzMywxOSBAQCBzdGF0aWMg aW50IGJ0dHZfZ19mbXRfdmlkX292ZXJsYXkoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKnByaXYs CiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB2b2lkIGJ0dHZfZ2V0X3dpZHRoX21hc2tfdmlkX2Nh cChjb25zdCBzdHJ1Y3QgYnR0dl9mb3JtYXQgKmZtdCwKKwkJCQkJdW5zaWduZWQgaW50ICp3aWR0 aF9tYXNrLAorCQkJCQl1bnNpZ25lZCBpbnQgKndpZHRoX2JpYXMpCit7CisJaWYgKGZtdC0+Zmxh Z3MgJiBGT1JNQVRfRkxBR1NfUExBTkFSKSB7CisJCSp3aWR0aF9tYXNrID0gfjE1OyAvKiB3aWR0 aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMTYgcGl4ZWxzICovCisJCSp3aWR0aF9iaWFzID0gODsg ICAvKiBuZWFyZXN0ICovCisJfSBlbHNlIHsKKwkJKndpZHRoX21hc2sgPSB+MzsgLyogd2lkdGgg bXVzdCBiZSBhIG11bHRpcGxlIG9mIDQgcGl4ZWxzICovCisJCSp3aWR0aF9iaWFzID0gMjsgIC8q IG5lYXJlc3QgKi8KKwl9Cit9CisKIHN0YXRpYyBpbnQgYnR0dl90cnlfZm10X3ZpZF9jYXAoc3Ry dWN0IGZpbGUgKmZpbGUsIHZvaWQgKnByaXYsCiAJCQkJCQlzdHJ1Y3QgdjRsMl9mb3JtYXQgKmYp CiB7CkBAIC0yMzQyLDYgKzIzNTUsNyBAQCBzdGF0aWMgaW50IGJ0dHZfdHJ5X2ZtdF92aWRfY2Fw KHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpwcml2LAogCWVudW0gdjRsMl9maWVsZCBmaWVsZDsK IAlfX3MzMiB3aWR0aCwgaGVpZ2h0OwogCV9fczMyIGhlaWdodDI7CisJdW5zaWduZWQgaW50IHdp ZHRoX21hc2ssIHdpZHRoX2JpYXM7CiAJaW50IHJjOwogCiAJZm10ID0gZm9ybWF0X2J5X2ZvdXJj YyhmLT5mbXQucGl4LnBpeGVsZm9ybWF0KTsKQEAgLTIzNzQsOSArMjM4OCw5IEBAIHN0YXRpYyBp bnQgYnR0dl90cnlfZm10X3ZpZF9jYXAoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKnByaXYsCiAJ d2lkdGggPSBmLT5mbXQucGl4LndpZHRoOwogCWhlaWdodCA9IGYtPmZtdC5waXguaGVpZ2h0Owog CisJYnR0dl9nZXRfd2lkdGhfbWFza192aWRfY2FwKGZtdCwgJndpZHRoX21hc2ssICZ3aWR0aF9i aWFzKTsKIAlyYyA9IGxpbWl0X3NjYWxlZF9zaXplX2xvY2soZmgsICZ3aWR0aCwgJmhlaWdodCwg ZmllbGQsCi0JCQkgICAgICAgLyogd2lkdGhfbWFzazogNCBwaXhlbHMgKi8gfjMsCi0JCQkgICAg ICAgLyogd2lkdGhfYmlhczogbmVhcmVzdCAqLyAyLAorCQkJICAgICAgIHdpZHRoX21hc2ssIHdp ZHRoX2JpYXMsCiAJCQkgICAgICAgLyogYWRqdXN0X3NpemUgKi8gMSwKIAkJCSAgICAgICAvKiBh ZGp1c3RfY3JvcCAqLyAwKTsKIAlpZiAoMCAhPSByYykKQEAgLTI0MDksNiArMjQyMyw3IEBAIHN0 YXRpYyBpbnQgYnR0dl9zX2ZtdF92aWRfY2FwKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpwcml2 LAogCXN0cnVjdCBidHR2X2ZoICpmaCA9IHByaXY7CiAJc3RydWN0IGJ0dHYgKmJ0diA9IGZoLT5i dHY7CiAJX19zMzIgd2lkdGgsIGhlaWdodDsKKwl1bnNpZ25lZCBpbnQgd2lkdGhfbWFzaywgd2lk dGhfYmlhczsKIAllbnVtIHY0bDJfZmllbGQgZmllbGQ7CiAKIAlyZXR2YWwgPSBidHR2X3N3aXRj aF90eXBlKGZoLCBmLT50eXBlKTsKQEAgLTI0MjMsOSArMjQzOCwxMCBAQCBzdGF0aWMgaW50IGJ0 dHZfc19mbXRfdmlkX2NhcChzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqcHJpdiwKIAloZWlnaHQg PSBmLT5mbXQucGl4LmhlaWdodDsKIAlmaWVsZCA9IGYtPmZtdC5waXguZmllbGQ7CiAKKwlmbXQg PSBmb3JtYXRfYnlfZm91cmNjKGYtPmZtdC5waXgucGl4ZWxmb3JtYXQpOworCWJ0dHZfZ2V0X3dp ZHRoX21hc2tfdmlkX2NhcChmbXQsICZ3aWR0aF9tYXNrLCAmd2lkdGhfYmlhcyk7CiAJcmV0dmFs ID0gbGltaXRfc2NhbGVkX3NpemVfbG9jayhmaCwgJndpZHRoLCAmaGVpZ2h0LCBmLT5mbXQucGl4 LmZpZWxkLAotCQkJICAgICAgIC8qIHdpZHRoX21hc2s6IDQgcGl4ZWxzICovIH4zLAotCQkJICAg ICAgIC8qIHdpZHRoX2JpYXM6IG5lYXJlc3QgKi8gMiwKKwkJCSAgICAgICB3aWR0aF9tYXNrLCB3 aWR0aF9iaWFzLAogCQkJICAgICAgIC8qIGFkanVzdF9zaXplICovIDEsCiAJCQkgICAgICAgLyog YWRqdXN0X2Nyb3AgKi8gMSk7CiAJaWYgKDAgIT0gcmV0dmFsKQpAQCAtMjQzMyw4ICsyNDQ5LDYg QEAgc3RhdGljIGludCBidHR2X3NfZm10X3ZpZF9jYXAoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQg KnByaXYsCiAKIAlmLT5mbXQucGl4LmZpZWxkID0gZmllbGQ7CiAKLQlmbXQgPSBmb3JtYXRfYnlf Zm91cmNjKGYtPmZtdC5waXgucGl4ZWxmb3JtYXQpOwotCiAJLyogdXBkYXRlIG91ciBzdGF0ZSBp bmZvcm1hdGlvbnMgKi8KIAlmaC0+Zm10ICAgICAgICAgICAgICA9IGZtdDsKIAlmaC0+Y2FwLmZp ZWxkICAgICAgICA9IGYtPmZtdC5waXguZmllbGQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlh L3BjaS9zYWE3MTM0L3NhYTcxMzQtdmlkZW8uYyBiL2RyaXZlcnMvbWVkaWEvcGNpL3NhYTcxMzQv c2FhNzEzNC12aWRlby5jCmluZGV4IGQzNzU5OTk4MDc2OC4uZDBhYWFmNDI3MzdiIDEwMDY0NAot LS0gYS9kcml2ZXJzL21lZGlhL3BjaS9zYWE3MTM0L3NhYTcxMzQtdmlkZW8uYworKysgYi9kcml2 ZXJzL21lZGlhL3BjaS9zYWE3MTM0L3NhYTcxMzQtdmlkZW8uYwpAQCAtMTIzMCwxMCArMTIzMCwx MyBAQCBzdGF0aWMgaW50IHNhYTcxMzRfZ19mbXRfdmlkX2NhcChzdHJ1Y3QgZmlsZSAqZmlsZSwg dm9pZCAqcHJpdiwKIAlmLT5mbXQucGl4LmhlaWdodCAgICAgICA9IGRldi0+aGVpZ2h0OwogCWYt PmZtdC5waXguZmllbGQgICAgICAgID0gZGV2LT5maWVsZDsKIAlmLT5mbXQucGl4LnBpeGVsZm9y bWF0ICA9IGRldi0+Zm10LT5mb3VyY2M7Ci0JZi0+Zm10LnBpeC5ieXRlc3BlcmxpbmUgPQotCQko Zi0+Zm10LnBpeC53aWR0aCAqIGRldi0+Zm10LT5kZXB0aCkgPj4gMzsKKwlpZiAoZGV2LT5mbXQt PnBsYW5hcikKKwkJZi0+Zm10LnBpeC5ieXRlc3BlcmxpbmUgPSBmLT5mbXQucGl4LndpZHRoOwor CWVsc2UKKwkJZi0+Zm10LnBpeC5ieXRlc3BlcmxpbmUgPQorCQkJKGYtPmZtdC5waXgud2lkdGgg KiBkZXYtPmZtdC0+ZGVwdGgpIC8gODsKIAlmLT5mbXQucGl4LnNpemVpbWFnZSA9Ci0JCWYtPmZt dC5waXguaGVpZ2h0ICogZi0+Zm10LnBpeC5ieXRlc3BlcmxpbmU7CisJCShmLT5mbXQucGl4Lmhl aWdodCAqIGYtPmZtdC5waXgud2lkdGggKiBkZXYtPmZtdC0+ZGVwdGgpIC8gODsKIAlmLT5mbXQu cGl4LmNvbG9yc3BhY2UgICA9IFY0TDJfQ09MT1JTUEFDRV9TTVBURTE3ME07CiAJZi0+Zm10LnBp eC5wcml2ID0gMDsKIAlyZXR1cm4gMDsKQEAgLTEzMTAsMTAgKzEzMTMsMTMgQEAgc3RhdGljIGlu dCBzYWE3MTM0X3RyeV9mbXRfdmlkX2NhcChzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqcHJpdiwK IAlpZiAoZi0+Zm10LnBpeC5oZWlnaHQgPiBtYXhoKQogCQlmLT5mbXQucGl4LmhlaWdodCA9IG1h eGg7CiAJZi0+Zm10LnBpeC53aWR0aCAmPSB+MHgwMzsKLQlmLT5mbXQucGl4LmJ5dGVzcGVybGlu ZSA9Ci0JCShmLT5mbXQucGl4LndpZHRoICogZm10LT5kZXB0aCkgPj4gMzsKKwlpZiAoZm10LT5w bGFuYXIpCisJCWYtPmZtdC5waXguYnl0ZXNwZXJsaW5lID0gZi0+Zm10LnBpeC53aWR0aDsKKwll bHNlCisJCWYtPmZtdC5waXguYnl0ZXNwZXJsaW5lID0KKwkJCShmLT5mbXQucGl4LndpZHRoICog Zm10LT5kZXB0aCkgLyA4OwogCWYtPmZtdC5waXguc2l6ZWltYWdlID0KLQkJZi0+Zm10LnBpeC5o ZWlnaHQgKiBmLT5mbXQucGl4LmJ5dGVzcGVybGluZTsKKwkJKGYtPmZtdC5waXguaGVpZ2h0ICog Zi0+Zm10LnBpeC53aWR0aCAqIGZtdC0+ZGVwdGgpIC8gODsKIAlmLT5mbXQucGl4LmNvbG9yc3Bh Y2UgICA9IFY0TDJfQ09MT1JTUEFDRV9TTVBURTE3ME07CiAJZi0+Zm10LnBpeC5wcml2ID0gMDsK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS90dW5lcnMvdHVuZXIteGMyMDI4LmMgYi9kcml2 ZXJzL21lZGlhL3R1bmVycy90dW5lci14YzIwMjguYwppbmRleCA2ZWY5M2VlMWZkY2IuLmIwZTg0 NDBkMzNmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS90dW5lcnMvdHVuZXIteGMyMDI4LmMK KysrIGIvZHJpdmVycy9tZWRpYS90dW5lcnMvdHVuZXIteGMyMDI4LmMKQEAgLTE0MDMsMTEgKzE0 MDMsMTQgQEAgc3RhdGljIGludCB4YzIwMjhfc2V0X2NvbmZpZyhzdHJ1Y3QgZHZiX2Zyb250ZW5k ICpmZSwgdm9pZCAqcHJpdl9jZmcpCiAJICogaW4gb3JkZXIgdG8gYXZvaWQgdHJvdWJsZXMgZHVy aW5nIGRldmljZSByZWxlYXNlLgogCSAqLwogCWtmcmVlKHByaXYtPmN0cmwuZm5hbWUpOworCXBy aXYtPmN0cmwuZm5hbWUgPSBOVUxMOwogCW1lbWNweSgmcHJpdi0+Y3RybCwgcCwgc2l6ZW9mKHBy aXYtPmN0cmwpKTsKIAlpZiAocC0+Zm5hbWUpIHsKIAkJcHJpdi0+Y3RybC5mbmFtZSA9IGtzdHJk dXAocC0+Zm5hbWUsIEdGUF9LRVJORUwpOwotCQlpZiAocHJpdi0+Y3RybC5mbmFtZSA9PSBOVUxM KQorCQlpZiAocHJpdi0+Y3RybC5mbmFtZSA9PSBOVUxMKSB7CiAJCQlyYyA9IC1FTk9NRU07CisJ CQlnb3RvIHVubG9jazsKKwkJfQogCX0KIAogCS8qCkBAIC0xNDM5LDYgKzE0NDIsNyBAQCBzdGF0 aWMgaW50IHhjMjAyOF9zZXRfY29uZmlnKHN0cnVjdCBkdmJfZnJvbnRlbmQgKmZlLCB2b2lkICpw cml2X2NmZykKIAkJfSBlbHNlCiAJCQlwcml2LT5zdGF0ZSA9IFhDMjAyOF9XQUlUSU5HX0ZJUk1X QVJFOwogCX0KK3VubG9jazoKIAltdXRleF91bmxvY2soJnByaXYtPmxvY2spOwogCiAJcmV0dXJu IHJjOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS91c2IvcHdjL3B3Yy1pZi5jIGIvZHJpdmVy cy9tZWRpYS91c2IvcHdjL3B3Yy1pZi5jCmluZGV4IGE3M2IwYmNlZDk2Zi4uMTk2MWIwNzg4ODI3 IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3VzYi9wd2MvcHdjLWlmLmMKKysrIGIvZHJpdmVy cy9tZWRpYS91c2IvcHdjL3B3Yy1pZi5jCkBAIC05MSw2ICs5MSw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgdXNiX2RldmljZV9pZCBwd2NfZGV2aWNlX3RhYmxlIFtdID0gewogCXsgVVNCX0RFVklD RSgweDA0NzEsIDB4MDMxMikgfSwKIAl7IFVTQl9ERVZJQ0UoMHgwNDcxLCAweDAzMTMpIH0sIC8q IHRoZSAnbmV3JyA3MjBLICovCiAJeyBVU0JfREVWSUNFKDB4MDQ3MSwgMHgwMzI5KSB9LCAvKiBQ aGlsaXBzIFNQQyA5MDBOQyBQQyBDYW1lcmEgKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNDcxLCAweDAz MkMpIH0sIC8qIFBoaWxpcHMgU1BDIDg4ME5DIFBDIENhbWVyYSAqLwogCXsgVVNCX0RFVklDRSgw eDA2OUEsIDB4MDAwMSkgfSwgLyogQXNrZXkgKi8KIAl7IFVTQl9ERVZJQ0UoMHgwNDZELCAweDA4 QjApIH0sIC8qIExvZ2l0ZWNoIFF1aWNrQ2FtIFBybyAzMDAwICovCiAJeyBVU0JfREVWSUNFKDB4 MDQ2RCwgMHgwOEIxKSB9LCAvKiBMb2dpdGVjaCBRdWlja0NhbSBOb3RlYm9vayBQcm8gKi8KQEAg LTc5OSw2ICs4MDAsMTEgQEAgc3RhdGljIGludCB1c2JfcHdjX3Byb2JlKHN0cnVjdCB1c2JfaW50 ZXJmYWNlICppbnRmLCBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZAogCQkJbmFtZSA9ICJQaGls aXBzIFNQQyA5MDBOQyB3ZWJjYW0iOwogCQkJdHlwZV9pZCA9IDc0MDsKIAkJCWJyZWFrOworCQlj YXNlIDB4MDMyQzoKKwkJCVBXQ19JTkZPKCJQaGlsaXBzIFNQQyA4ODBOQyBVU0Igd2ViY2FtIGRl dGVjdGVkLlxuIik7CisJCQluYW1lID0gIlBoaWxpcHMgU1BDIDg4ME5DIHdlYmNhbSI7CisJCQl0 eXBlX2lkID0gNzQwOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQlyZXR1cm4gLUVOT0RFVjsK IAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1jb21w YXQtaW9jdGwzMi5jIGIvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1jb21wYXQtaW9jdGwz Mi5jCmluZGV4IDY4MjJlZTQzZDgyMS4uZjZiY2M2NGI3YWMxIDEwMDY0NAotLS0gYS9kcml2ZXJz L21lZGlhL3Y0bDItY29yZS92NGwyLWNvbXBhdC1pb2N0bDMyLmMKKysrIGIvZHJpdmVycy9tZWRp YS92NGwyLWNvcmUvdjRsMi1jb21wYXQtaW9jdGwzMi5jCkBAIC0zOTIsNyArMzkyLDggQEAgc3Rh dGljIGludCBnZXRfdjRsMl9idWZmZXIzMihzdHJ1Y3QgdjRsMl9idWZmZXIgKmtwLCBzdHJ1Y3Qg djRsMl9idWZmZXIzMiBfX3VzZXIKIAkJZ2V0X3VzZXIoa3AtPmluZGV4LCAmdXAtPmluZGV4KSB8 fAogCQlnZXRfdXNlcihrcC0+dHlwZSwgJnVwLT50eXBlKSB8fAogCQlnZXRfdXNlcihrcC0+Zmxh Z3MsICZ1cC0+ZmxhZ3MpIHx8Ci0JCWdldF91c2VyKGtwLT5tZW1vcnksICZ1cC0+bWVtb3J5KSkK KwkJZ2V0X3VzZXIoa3AtPm1lbW9yeSwgJnVwLT5tZW1vcnkpIHx8CisJCWdldF91c2VyKGtwLT5s ZW5ndGgsICZ1cC0+bGVuZ3RoKSkKIAkJCXJldHVybiAtRUZBVUxUOwogCiAJaWYgKFY0TDJfVFlQ RV9JU19PVVRQVVQoa3AtPnR5cGUpKQpAQCAtNDA0LDkgKzQwNSw2IEBAIHN0YXRpYyBpbnQgZ2V0 X3Y0bDJfYnVmZmVyMzIoc3RydWN0IHY0bDJfYnVmZmVyICprcCwgc3RydWN0IHY0bDJfYnVmZmVy MzIgX191c2VyCiAJCQlyZXR1cm4gLUVGQVVMVDsKIAogCWlmIChWNEwyX1RZUEVfSVNfTVVMVElQ TEFOQVIoa3AtPnR5cGUpKSB7Ci0JCWlmIChnZXRfdXNlcihrcC0+bGVuZ3RoLCAmdXAtPmxlbmd0 aCkpCi0JCQlyZXR1cm4gLUVGQVVMVDsKLQogCQludW1fcGxhbmVzID0ga3AtPmxlbmd0aDsKIAkJ aWYgKG51bV9wbGFuZXMgPT0gMCkgewogCQkJa3AtPm0ucGxhbmVzID0gTlVMTDsKQEAgLTQzOSwx NiArNDM3LDE0IEBAIHN0YXRpYyBpbnQgZ2V0X3Y0bDJfYnVmZmVyMzIoc3RydWN0IHY0bDJfYnVm ZmVyICprcCwgc3RydWN0IHY0bDJfYnVmZmVyMzIgX191c2VyCiAJfSBlbHNlIHsKIAkJc3dpdGNo IChrcC0+bWVtb3J5KSB7CiAJCWNhc2UgVjRMMl9NRU1PUllfTU1BUDoKLQkJCWlmIChnZXRfdXNl cihrcC0+bGVuZ3RoLCAmdXAtPmxlbmd0aCkgfHwKLQkJCQlnZXRfdXNlcihrcC0+bS5vZmZzZXQs ICZ1cC0+bS5vZmZzZXQpKQorCQkJaWYgKGdldF91c2VyKGtwLT5tLm9mZnNldCwgJnVwLT5tLm9m ZnNldCkpCiAJCQkJcmV0dXJuIC1FRkFVTFQ7CiAJCQlicmVhazsKIAkJY2FzZSBWNEwyX01FTU9S WV9VU0VSUFRSOgogCQkJewogCQkJY29tcGF0X2xvbmdfdCB0bXA7CiAKLQkJCWlmIChnZXRfdXNl cihrcC0+bGVuZ3RoLCAmdXAtPmxlbmd0aCkgfHwKLQkJCSAgICBnZXRfdXNlcih0bXAsICZ1cC0+ bS51c2VycHRyKSkKKwkJCWlmIChnZXRfdXNlcih0bXAsICZ1cC0+bS51c2VycHRyKSkKIAkJCQly ZXR1cm4gLUVGQVVMVDsKIAogCQkJa3AtPm0udXNlcnB0ciA9ICh1bnNpZ25lZCBsb25nKWNvbXBh dF9wdHIodG1wKTsKQEAgLTQ5MCw3ICs0ODYsOCBAQCBzdGF0aWMgaW50IHB1dF92NGwyX2J1ZmZl cjMyKHN0cnVjdCB2NGwyX2J1ZmZlciAqa3AsIHN0cnVjdCB2NGwyX2J1ZmZlcjMyIF9fdXNlcgog CQljb3B5X3RvX3VzZXIoJnVwLT50aW1lY29kZSwgJmtwLT50aW1lY29kZSwgc2l6ZW9mKHN0cnVj dCB2NGwyX3RpbWVjb2RlKSkgfHwKIAkJcHV0X3VzZXIoa3AtPnNlcXVlbmNlLCAmdXAtPnNlcXVl bmNlKSB8fAogCQlwdXRfdXNlcihrcC0+cmVzZXJ2ZWQyLCAmdXAtPnJlc2VydmVkMikgfHwKLQkJ cHV0X3VzZXIoa3AtPnJlc2VydmVkLCAmdXAtPnJlc2VydmVkKSkKKwkJcHV0X3VzZXIoa3AtPnJl c2VydmVkLCAmdXAtPnJlc2VydmVkKSB8fAorCQlwdXRfdXNlcihrcC0+bGVuZ3RoLCAmdXAtPmxl bmd0aCkpCiAJCQlyZXR1cm4gLUVGQVVMVDsKIAogCWlmIChWNEwyX1RZUEVfSVNfTVVMVElQTEFO QVIoa3AtPnR5cGUpKSB7CkBAIC01MTMsMTMgKzUxMCwxMSBAQCBzdGF0aWMgaW50IHB1dF92NGwy X2J1ZmZlcjMyKHN0cnVjdCB2NGwyX2J1ZmZlciAqa3AsIHN0cnVjdCB2NGwyX2J1ZmZlcjMyIF9f dXNlcgogCX0gZWxzZSB7CiAJCXN3aXRjaCAoa3AtPm1lbW9yeSkgewogCQljYXNlIFY0TDJfTUVN T1JZX01NQVA6Ci0JCQlpZiAocHV0X3VzZXIoa3AtPmxlbmd0aCwgJnVwLT5sZW5ndGgpIHx8Ci0J CQkJcHV0X3VzZXIoa3AtPm0ub2Zmc2V0LCAmdXAtPm0ub2Zmc2V0KSkKKwkJCWlmIChwdXRfdXNl cihrcC0+bS5vZmZzZXQsICZ1cC0+bS5vZmZzZXQpKQogCQkJCXJldHVybiAtRUZBVUxUOwogCQkJ YnJlYWs7CiAJCWNhc2UgVjRMMl9NRU1PUllfVVNFUlBUUjoKLQkJCWlmIChwdXRfdXNlcihrcC0+ bGVuZ3RoLCAmdXAtPmxlbmd0aCkgfHwKLQkJCQlwdXRfdXNlcihrcC0+bS51c2VycHRyLCAmdXAt Pm0udXNlcnB0cikpCisJCQlpZiAocHV0X3VzZXIoa3AtPm0udXNlcnB0ciwgJnVwLT5tLnVzZXJw dHIpKQogCQkJCXJldHVybiAtRUZBVUxUOwogCQkJYnJlYWs7CiAJCWNhc2UgVjRMMl9NRU1PUllf T1ZFUkxBWToKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9LY29uZmlnIGIvZHJpdmVycy9taXNj L0tjb25maWcKaW5kZXggZWU5NDAyMzI0YTIzLi42ODVlYzBmNmVkYjggMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbWlzYy9LY29uZmlnCisrKyBiL2RyaXZlcnMvbWlzYy9LY29uZmlnCkBAIC00MzksNyAr NDM5LDcgQEAgY29uZmlnIEFSTV9DSEFSTENECiAJICBzdGlsbCB1c2VmdWwuCiAKIGNvbmZpZyBC TVAwODUKLQlib29sCisJdHJpc3RhdGUKIAlkZXBlbmRzIG9uIFNZU0ZTCiAKIGNvbmZpZyBCTVAw ODVfSTJDCmRpZmYgLS1naXQgYS9kcml2ZXJzL21pc2MvYWQ1MjV4X2Rwb3QuYyBiL2RyaXZlcnMv bWlzYy9hZDUyNXhfZHBvdC5jCmluZGV4IGE0MzA1M2RhYWQwZS4uNDYyNzJiMGFlMmRkIDEwMDY0 NAotLS0gYS9kcml2ZXJzL21pc2MvYWQ1MjV4X2Rwb3QuYworKysgYi9kcml2ZXJzL21pc2MvYWQ1 MjV4X2Rwb3QuYwpAQCAtMjE1LDcgKzIxNSw3IEBAIHN0YXRpYyBzMzIgZHBvdF9yZWFkX2kyYyhz dHJ1Y3QgZHBvdF9kYXRhICpkcG90LCB1OCByZWcpCiAJCQkgKi8KIAkJCXZhbHVlID0gc3dhYjE2 KHZhbHVlKTsKIAotCQkJaWYgKGRwb3QtPnVpZCA9PSBEUE9UX1VJRChBRDUyNzFfSUQpKQorCQkJ aWYgKGRwb3QtPnVpZCA9PSBEUE9UX1VJRChBRDUyNzRfSUQpKQogCQkJCXZhbHVlID0gdmFsdWUg Pj4gMjsKIAkJcmV0dXJuIHZhbHVlOwogCWRlZmF1bHQ6CmRpZmYgLS1naXQgYS9kcml2ZXJzL21p c2MvbWVpL2FtdGhpZi5jIGIvZHJpdmVycy9taXNjL21laS9hbXRoaWYuYwppbmRleCAwZDYyMzRk YjAwZmEuLmNmMTIwYzVlYjgwNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9taXNjL21laS9hbXRoaWYu YworKysgYi9kcml2ZXJzL21pc2MvbWVpL2FtdGhpZi5jCkBAIC0yMzQsOSArMjM0LDggQEAgaW50 IG1laV9hbXRoaWZfcmVhZChzdHJ1Y3QgbWVpX2RldmljZSAqZGV2LCBzdHJ1Y3QgZmlsZSAqZmls ZSwKIAkJICogcmVtb3ZlIG1lc3NhZ2UgZnJvbSBkZWxldGlvbiBsaXN0CiAJCSAqLwogCi0JZGV2 X2RiZygmZGV2LT5wZGV2LT5kZXYsICJhbXRoaWYgY2ItPnJlc3BvbnNlX2J1ZmZlciBzaXplIC0g JWRcbiIsCi0JICAgIGNiLT5yZXNwb25zZV9idWZmZXIuc2l6ZSk7Ci0JZGV2X2RiZygmZGV2LT5w ZGV2LT5kZXYsICJhbXRoaWYgY2ItPmJ1Zl9pZHggLSAlbHVcbiIsIGNiLT5idWZfaWR4KTsKKwlk ZXZfZGJnKCZkZXYtPnBkZXYtPmRldiwgImFtdGhpZiBjYi0+cmVzcG9uc2VfYnVmZmVyLnNpemUg LSAlenUgY2ItPmJ1Zl9pZHggLSAlenVcbiIsCisJCWNiLT5yZXNwb25zZV9idWZmZXIuc2l6ZSwg Y2ItPmJ1Zl9pZHgpOwogCiAJLyogbGVuZ3RoIGlzIGJlaW5nIHRydW5jYXRlZCB0byBQQUdFX1NJ WkUsIGhvd2V2ZXIsCiAJICogdGhlIGJ1Zl9pZHggbWF5IHBvaW50IGJleW9uZCAqLwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9taXNjL21laS9jbGllbnQuYyBiL2RyaXZlcnMvbWlzYy9tZWkvY2xpZW50 LmMKaW5kZXggMmRhMDVjMGUxMTNkLi5hNGFmYTk5NmQ0MTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bWlzYy9tZWkvY2xpZW50LmMKKysrIGIvZHJpdmVycy9taXNjL21laS9jbGllbnQuYwpAQCAtODQ5 LDcgKzg0OSw3IEBAIGludCBtZWlfY2xfaXJxX3dyaXRlKHN0cnVjdCBtZWlfY2wgKmNsLCBzdHJ1 Y3QgbWVpX2NsX2NiICpjYiwKIAkJcmV0dXJuIDA7CiAJfQogCi0JY2xfZGJnKGRldiwgY2wsICJi dWY6IHNpemUgPSAlZCBpZHggPSAlbHVcbiIsCisJY2xfZGJnKGRldiwgY2wsICJidWY6IHNpemUg PSAlenUgaWR4ID0gJXp1XG4iLAogCQkJY2ItPnJlcXVlc3RfYnVmZmVyLnNpemUsIGNiLT5idWZf aWR4KTsKIAogCXJldHMgPSBtZWlfd3JpdGVfbWVzc2FnZShkZXYsICZtZWlfaGRyLCBidWYtPmRh dGEgKyBjYi0+YnVmX2lkeCk7CkBAIC05MDAsNyArOTAwLDcgQEAgaW50IG1laV9jbF93cml0ZShz dHJ1Y3QgbWVpX2NsICpjbCwgc3RydWN0IG1laV9jbF9jYiAqY2IsIGJvb2wgYmxvY2tpbmcpCiAK IAlidWYgPSAmY2ItPnJlcXVlc3RfYnVmZmVyOwogCi0JY2xfZGJnKGRldiwgY2wsICJtZWlfY2xf d3JpdGUgJWRcbiIsIGJ1Zi0+c2l6ZSk7CisJY2xfZGJnKGRldiwgY2wsICJtZWlfY2xfd3JpdGUg JXp1XG4iLCBidWYtPnNpemUpOwogCiAJcmV0cyA9IHBtX3J1bnRpbWVfZ2V0KCZkZXYtPnBkZXYt PmRldik7CiAJaWYgKHJldHMgPCAwICYmIHJldHMgIT0gLUVJTlBST0dSRVNTKSB7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL21pc2MvbWVpL2ludGVycnVwdC5jIGIvZHJpdmVycy9taXNjL21laS9pbnRl cnJ1cHQuYwppbmRleCA0ZTNjYmE2ZGEzZjUuLjQxMTQ1ZTE1Mjg5ZSAxMDA2NDQKLS0tIGEvZHJp dmVycy9taXNjL21laS9pbnRlcnJ1cHQuYworKysgYi9kcml2ZXJzL21pc2MvbWVpL2ludGVycnVw dC5jCkBAIC0xMDIsNiArMTAyLDcgQEAgc3RhdGljIGludCBtZWlfY2xfaXJxX3JlYWRfbXNnKHN0 cnVjdCBtZWlfZGV2aWNlICpkZXYsCiAJc3RydWN0IG1laV9jbCAqY2w7CiAJc3RydWN0IG1laV9j bF9jYiAqY2IsICpuZXh0OwogCXVuc2lnbmVkIGNoYXIgKmJ1ZmZlciA9IE5VTEw7CisJc2l6ZV90 IGJ1Zl9zejsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShjYiwgbmV4dCwgJmRldi0+cmVh ZF9saXN0Lmxpc3QsIGxpc3QpIHsKIAkJY2wgPSBjYi0+Y2w7CkBAIC0xMTcsMTMgKzExOCwyMSBA QCBzdGF0aWMgaW50IG1laV9jbF9pcnFfcmVhZF9tc2coc3RydWN0IG1laV9kZXZpY2UgKmRldiwK IAkJCXJldHVybiAtRU5PTUVNOwogCQl9CiAKLQkJaWYgKGNiLT5yZXNwb25zZV9idWZmZXIuc2l6 ZSA8IG1laV9oZHItPmxlbmd0aCArIGNiLT5idWZfaWR4KSB7Ci0JCQljbF9kYmcoZGV2LCBjbCwg Im1lc3NhZ2Ugb3ZlcmZsb3cuIHNpemUgJWQgbGVuICVkIGlkeCAlbGRcbiIsCisJCWJ1Zl9zeiA9 IG1laV9oZHItPmxlbmd0aCArIGNiLT5idWZfaWR4OworCQkvKiBjYXRjaCBmb3IgaW50ZWdlciBv dmVyZmxvdyAqLworCQlpZiAoYnVmX3N6IDwgY2ItPmJ1Zl9pZHgpIHsKKwkJCWNsX2VycihkZXYs IGNsLCAibWVzc2FnZSBpcyB0b28gYmlnIGxlbiAlZCBpZHggJXp1XG4iLAorCQkJICAgICAgIG1l aV9oZHItPmxlbmd0aCwgY2ItPmJ1Zl9pZHgpOworCQorCQkJbGlzdF9kZWwoJmNiLT5saXN0KTsK KwkJCXJldHVybiAtRU1TR1NJWkU7CisJCX0KKwkKKwkJaWYgKGNiLT5yZXNwb25zZV9idWZmZXIu c2l6ZSA8IGJ1Zl9zeikgeworCQkJY2xfZGJnKGRldiwgY2wsICJtZXNzYWdlIG92ZXJmbG93LiBz aXplICV6dSBsZW4gJWQgaWR4ICV6dVxuIiwKIAkJCQljYi0+cmVzcG9uc2VfYnVmZmVyLnNpemUs CiAJCQkJbWVpX2hkci0+bGVuZ3RoLCBjYi0+YnVmX2lkeCk7Ci0JCQlidWZmZXIgPSBrcmVhbGxv YyhjYi0+cmVzcG9uc2VfYnVmZmVyLmRhdGEsCi0JCQkJCSAgbWVpX2hkci0+bGVuZ3RoICsgY2It PmJ1Zl9pZHgsCi0JCQkJCSAgR0ZQX0tFUk5FTCk7CisJCQlidWZmZXIgPSBrcmVhbGxvYyhjYi0+ cmVzcG9uc2VfYnVmZmVyLmRhdGEsIGJ1Zl9zeiwgR0ZQX0tFUk5FTCk7CiAKIAkJCWlmICghYnVm ZmVyKSB7CiAJCQkJY2xfZXJyKGRldiwgY2wsICJhbGxvY2F0aW9uIGZhaWxlZC5cbiIpOwpAQCAt MTMxLDggKzE0MCw3IEBAIHN0YXRpYyBpbnQgbWVpX2NsX2lycV9yZWFkX21zZyhzdHJ1Y3QgbWVp X2RldmljZSAqZGV2LAogCQkJCXJldHVybiAtRU5PTUVNOwogCQkJfQogCQkJY2ItPnJlc3BvbnNl X2J1ZmZlci5kYXRhID0gYnVmZmVyOwotCQkJY2ItPnJlc3BvbnNlX2J1ZmZlci5zaXplID0KLQkJ CQltZWlfaGRyLT5sZW5ndGggKyBjYi0+YnVmX2lkeDsKKwkJCWNiLT5yZXNwb25zZV9idWZmZXIu c2l6ZSA9IGJ1Zl9zejsKIAkJfQogCiAJCWJ1ZmZlciA9IGNiLT5yZXNwb25zZV9idWZmZXIuZGF0 YSArIGNiLT5idWZfaWR4OwpAQCAtMTQyLDcgKzE1MCw3IEBAIHN0YXRpYyBpbnQgbWVpX2NsX2ly cV9yZWFkX21zZyhzdHJ1Y3QgbWVpX2RldmljZSAqZGV2LAogCQlpZiAobWVpX2hkci0+bXNnX2Nv bXBsZXRlKSB7CiAJCQljbC0+c3RhdHVzID0gMDsKIAkJCWxpc3RfZGVsKCZjYi0+bGlzdCk7Ci0J CQljbF9kYmcoZGV2LCBjbCwgImNvbXBsZXRlZCByZWFkIGxlbmd0aCA9ICVsdVxuIiwKKwkJCWNs X2RiZyhkZXYsIGNsLCAiY29tcGxldGVkIHJlYWQgbGVuZ3RoID0gJXp1XG4iLAogCQkJCWNiLT5i dWZfaWR4KTsKIAkJCWxpc3RfYWRkX3RhaWwoJmNiLT5saXN0LCAmY29tcGxldGVfbGlzdC0+bGlz dCk7CiAJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9tZWkvbWFpbi5jIGIvZHJpdmVycy9t aXNjL21laS9tYWluLmMKaW5kZXggNjZmMGExYTA2NDUxLi5hZWQwNDlkNDRhODcgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbWlzYy9tZWkvbWFpbi5jCisrKyBiL2RyaXZlcnMvbWlzYy9tZWkvbWFpbi5j CkBAIC0yNjIsNyArMjYyLDcgQEAgc3RhdGljIHNzaXplX3QgbWVpX3JlYWQoc3RydWN0IGZpbGUg KmZpbGUsIGNoYXIgX191c2VyICp1YnVmLAogCX0KIAkvKiBub3cgY29weSB0aGUgZGF0YSB0byB1 c2VyIHNwYWNlICovCiBjb3B5X2J1ZmZlcjoKLQlkZXZfZGJnKCZkZXYtPnBkZXYtPmRldiwgImJ1 Zi5zaXplID0gJWQgYnVmLmlkeD0gJWxkXG4iLAorCWRldl9kYmcoJmRldi0+cGRldi0+ZGV2LCAi YnVmLnNpemUgPSAlenUgYnVmLmlkeCA9ICV6dVxuIiwKIAkgICAgY2ItPnJlc3BvbnNlX2J1ZmZl ci5zaXplLCBjYi0+YnVmX2lkeCk7CiAJaWYgKGxlbmd0aCA9PSAwIHx8IHVidWYgPT0gTlVMTCB8 fCAqb2Zmc2V0ID4gY2ItPmJ1Zl9pZHgpIHsKIAkJcmV0cyA9IC1FTVNHU0laRTsKQEAgLTI4MSw3 ICsyODEsOCBAQCBjb3B5X2J1ZmZlcjoKIAogCXJldHMgPSBsZW5ndGg7CiAJKm9mZnNldCArPSBs ZW5ndGg7Ci0JaWYgKCh1bnNpZ25lZCBsb25nKSpvZmZzZXQgPCBjYi0+YnVmX2lkeCkKKwkvKiBu b3QgYWxsIGRhdGEgd2FzIHJlYWQsIGtlZXAgdGhlIGNiICovCisJaWYgKCpvZmZzZXQgPCBjYi0+ YnVmX2lkeCkKIAkJZ290byBvdXQ7CiAKIGZyZWU6CmRpZmYgLS1naXQgYS9kcml2ZXJzL21pc2Mv bWVpL21laV9kZXYuaCBiL2RyaXZlcnMvbWlzYy9tZWkvbWVpX2Rldi5oCmluZGV4IDVjN2U5OTBl MmYyMi4uYzU1OTUwODllNGQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL21pc2MvbWVpL21laV9kZXYu aAorKysgYi9kcml2ZXJzL21pc2MvbWVpL21laV9kZXYuaApAQCAtMTQ5LDcgKzE0OSw3IEBAIGVu dW0gbWVpX2NiX2ZpbGVfb3BzIHsKICAqIEludGVsIE1FSSBtZXNzYWdlIGRhdGEgc3RydWN0CiAg Ki8KIHN0cnVjdCBtZWlfbXNnX2RhdGEgewotCXUzMiBzaXplOworCXNpemVfdCBzaXplOwogCXVu c2lnbmVkIGNoYXIgKmRhdGE7CiB9OwogCkBAIC0xOTUsNyArMTk1LDcgQEAgc3RydWN0IG1laV9j bF9jYiB7CiAJZW51bSBtZWlfY2JfZmlsZV9vcHMgZm9wX3R5cGU7CiAJc3RydWN0IG1laV9tc2df ZGF0YSByZXF1ZXN0X2J1ZmZlcjsKIAlzdHJ1Y3QgbWVpX21zZ19kYXRhIHJlc3BvbnNlX2J1ZmZl cjsKLQl1bnNpZ25lZCBsb25nIGJ1Zl9pZHg7CisJc2l6ZV90IGJ1Zl9pZHg7CiAJdW5zaWduZWQg bG9uZyByZWFkX3RpbWU7CiAJc3RydWN0IGZpbGUgKmZpbGVfb2JqZWN0OwogCXUzMiBpbnRlcm5h bDoxOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvaG9zdC9zZGhjaS5jIGIvZHJpdmVycy9tbWMv aG9zdC9zZGhjaS5jCmluZGV4IGUwYTRiZTczMmRhOC4uYTU5NWQ3ZTI4OWFiIDEwMDY0NAotLS0g YS9kcml2ZXJzL21tYy9ob3N0L3NkaGNpLmMKKysrIGIvZHJpdmVycy9tbWMvaG9zdC9zZGhjaS5j CkBAIC02NjAsOSArNjYwLDIwIEBAIHN0YXRpYyB1OCBzZGhjaV9jYWxjX3RpbWVvdXQoc3RydWN0 IHNkaGNpX2hvc3QgKmhvc3QsIHN0cnVjdCBtbWNfY29tbWFuZCAqY21kKQogCWlmICghZGF0YSkK IAkJdGFyZ2V0X3RpbWVvdXQgPSBjbWQtPmJ1c3lfdGltZW91dCAqIDEwMDA7CiAJZWxzZSB7Ci0J CXRhcmdldF90aW1lb3V0ID0gZGF0YS0+dGltZW91dF9ucyAvIDEwMDA7Ci0JCWlmIChob3N0LT5j bG9jaykKLQkJCXRhcmdldF90aW1lb3V0ICs9IGRhdGEtPnRpbWVvdXRfY2xrcyAvIGhvc3QtPmNs b2NrOworCQl0YXJnZXRfdGltZW91dCA9IERJVl9ST1VORF9VUChkYXRhLT50aW1lb3V0X25zLCAx MDAwKTsKKwkJaWYgKGhvc3QtPmNsb2NrICYmIGRhdGEtPnRpbWVvdXRfY2xrcykgeworCQkJdW5z aWduZWQgbG9uZyBsb25nIHZhbDsKKworCQkJLyoKKwkJCSAqIGRhdGEtPnRpbWVvdXRfY2xrcyBp cyBpbiB1bml0cyBvZiBjbG9jayBjeWNsZXMuCisJCQkgKiBob3N0LT5jbG9jayBpcyBpbiBIei4g IHRhcmdldF90aW1lb3V0IGlzIGluIHVzLgorCQkJICogSGVuY2UsIHVzID0gMTAwMDAwMCAqIGN5 Y2xlcyAvIEh6LiAgUm91bmQgdXAuCisJCQkgKi8KKwkJCXZhbCA9IDEwMDAwMDAgKiBkYXRhLT50 aW1lb3V0X2Nsa3M7CisJCQlpZiAoZG9fZGl2KHZhbCwgaG9zdC0+Y2xvY2spKQorCQkJCXRhcmdl dF90aW1lb3V0Kys7CisJCQl0YXJnZXRfdGltZW91dCArPSB2YWw7CisJCX0KIAl9CiAKIAkvKgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvb25lbmFuZC9vbmVuYW5kX2Jhc2UuYyBiL2RyaXZlcnMv bXRkL29uZW5hbmQvb25lbmFuZF9iYXNlLmMKaW5kZXggNjM1ZWUwMDI3NjkxLi5jM2YzMjdlZDdj MTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL29uZW5hbmQvb25lbmFuZF9iYXNlLmMKKysrIGIv ZHJpdmVycy9tdGQvb25lbmFuZC9vbmVuYW5kX2Jhc2UuYwpAQCAtMjYwNSw2ICsyNjA1LDcgQEAg c3RhdGljIGludCBvbmVuYW5kX2RlZmF1bHRfYmxvY2tfbWFya2JhZChzdHJ1Y3QgbXRkX2luZm8g Km10ZCwgbG9mZl90IG9mcykKICAqLwogc3RhdGljIGludCBvbmVuYW5kX2Jsb2NrX21hcmtiYWQo c3RydWN0IG10ZF9pbmZvICptdGQsIGxvZmZfdCBvZnMpCiB7CisJc3RydWN0IG9uZW5hbmRfY2hp cCAqdGhpcyA9IG10ZC0+cHJpdjsKIAlpbnQgcmV0OwogCiAJcmV0ID0gb25lbmFuZF9ibG9ja19p c2JhZChtdGQsIG9mcyk7CkBAIC0yNjE2LDcgKzI2MTcsNyBAQCBzdGF0aWMgaW50IG9uZW5hbmRf YmxvY2tfbWFya2JhZChzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IG9mcykKIAl9CiAKIAlv bmVuYW5kX2dldF9kZXZpY2UobXRkLCBGTF9XUklUSU5HKTsKLQlyZXQgPSBtdGRfYmxvY2tfbWFy a2JhZChtdGQsIG9mcyk7CisJcmV0ID0gdGhpcy0+YmxvY2tfbWFya2JhZChtdGQsIG9mcyk7CiAJ b25lbmFuZF9yZWxlYXNlX2RldmljZShtdGQpOwogCXJldHVybiByZXQ7CiB9CmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21nZW5ldC5jIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtZ2VuZXQuYwppbmRleCAyMDFjZWU1NDE5 ZGMuLjI1ZjI2N2NjOTY3YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRj b20vZ2VuZXQvYmNtZ2VuZXQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9n ZW5ldC9iY21nZW5ldC5jCkBAIC05MDUsNyArOTA1LDcgQEAgc3RhdGljIHZvaWQgX19iY21nZW5l dF90eF9yZWNsYWltKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQlkZXYtPnN0YXRzLnR4X2J5 dGVzICs9IHR4X2NiX3B0ci0+c2tiLT5sZW47CiAJCQlkbWFfdW5tYXBfc2luZ2xlKCZkZXYtPmRl diwKIAkJCQkJZG1hX3VubWFwX2FkZHIodHhfY2JfcHRyLCBkbWFfYWRkciksCi0JCQkJCXR4X2Ni X3B0ci0+c2tiLT5sZW4sCisJCQkJCWRtYV91bm1hcF9sZW4odHhfY2JfcHRyLCBkbWFfbGVuKSwK IAkJCQkJRE1BX1RPX0RFVklDRSk7CiAJCQliY21nZW5ldF9mcmVlX2NiKHR4X2NiX3B0cik7CiAJ CX0gZWxzZSBpZiAoZG1hX3VubWFwX2FkZHIodHhfY2JfcHRyLCBkbWFfYWRkcikpIHsKQEAgLTk3 OSw3ICs5NzksNyBAQCBzdGF0aWMgaW50IGJjbWdlbmV0X3htaXRfc2luZ2xlKHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYsCiAKIAl0eF9jYl9wdHItPnNrYiA9IHNrYjsKIAotCXNrYl9sZW4gPSBza2Jf aGVhZGxlbihza2IpIDwgRVRIX1pMRU4gPyBFVEhfWkxFTiA6IHNrYl9oZWFkbGVuKHNrYik7CisJ c2tiX2xlbiA9IHNrYl9oZWFkbGVuKHNrYik7CiAKIAltYXBwaW5nID0gZG1hX21hcF9zaW5nbGUo a2Rldiwgc2tiLT5kYXRhLCBza2JfbGVuLCBETUFfVE9fREVWSUNFKTsKIAlyZXQgPSBkbWFfbWFw cGluZ19lcnJvcihrZGV2LCBtYXBwaW5nKTsKQEAgLTk5MCw3ICs5OTAsNyBAQCBzdGF0aWMgaW50 IGJjbWdlbmV0X3htaXRfc2luZ2xlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJfQogCiAJZG1h X3VubWFwX2FkZHJfc2V0KHR4X2NiX3B0ciwgZG1hX2FkZHIsIG1hcHBpbmcpOwotCWRtYV91bm1h cF9sZW5fc2V0KHR4X2NiX3B0ciwgZG1hX2xlbiwgc2tiLT5sZW4pOworCWRtYV91bm1hcF9sZW5f c2V0KHR4X2NiX3B0ciwgZG1hX2xlbiwgc2tiX2xlbik7CiAJbGVuZ3RoX3N0YXR1cyA9IChza2Jf bGVuIDw8IERNQV9CVUZMRU5HVEhfU0hJRlQpIHwgZG1hX2Rlc2NfZmxhZ3MgfAogCQkJKHByaXYt Pmh3X3BhcmFtcy0+cXRhZ19tYXNrIDw8IERNQV9UWF9RVEFHX1NISUZUKSB8CiAJCQlETUFfVFhf QVBQRU5EX0NSQzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ptZS5jIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvam1lLmMKaW5kZXggYjc4Mzc4Y2VhNWUzLi4wNTE4MGNhODExOTAg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ptZS5jCisrKyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L2ptZS5jCkBAIC0yNzAsMTEgKzI3MCwxNyBAQCBqbWVfcmVzZXRfbWFjX3Byb2Nl c3NvcihzdHJ1Y3Qgam1lX2FkYXB0ZXIgKmptZSkKIH0KIAogc3RhdGljIGlubGluZSB2b2lkCi1q bWVfY2xlYXJfcG0oc3RydWN0IGptZV9hZGFwdGVyICpqbWUpCitqbWVfY2xlYXJfcG1fZW5hYmxl X3dvbChzdHJ1Y3Qgam1lX2FkYXB0ZXIgKmptZSkKIHsKIAlqd3JpdGUzMihqbWUsIEpNRV9QTUNT LCBQTUNTX1NUTUFTSyB8IGptZS0+cmVnX3BtY3MpOwogfQogCitzdGF0aWMgaW5saW5lIHZvaWQK K2ptZV9jbGVhcl9wbV9kaXNhYmxlX3dvbChzdHJ1Y3Qgam1lX2FkYXB0ZXIgKmptZSkKK3sKKwlq d3JpdGUzMihqbWUsIEpNRV9QTUNTLCBQTUNTX1NUTUFTSyk7Cit9CisKIHN0YXRpYyBpbnQKIGpt ZV9yZWxvYWRfZWVwcm9tKHN0cnVjdCBqbWVfYWRhcHRlciAqam1lKQogewpAQCAtMTg1Nyw3ICsx ODYzLDcgQEAgam1lX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikKIAlzdHJ1Y3Qgam1l X2FkYXB0ZXIgKmptZSA9IG5ldGRldl9wcml2KG5ldGRldik7CiAJaW50IHJjOwogCi0Jam1lX2Ns ZWFyX3BtKGptZSk7CisJam1lX2NsZWFyX3BtX2Rpc2FibGVfd29sKGptZSk7CiAJSk1FX05BUElf RU5BQkxFKGptZSk7CiAKIAl0YXNrbGV0X2luaXQoJmptZS0+bGlua2NoX3Rhc2ssIGptZV9saW5r X2NoYW5nZV90YXNrbGV0LApAQCAtMTkyOSwxMSArMTkzNSwxMSBAQCBqbWVfd2FpdF9saW5rKHN0 cnVjdCBqbWVfYWRhcHRlciAqam1lKQogc3RhdGljIHZvaWQKIGptZV9wb3dlcnNhdmVfcGh5KHN0 cnVjdCBqbWVfYWRhcHRlciAqam1lKQogewotCWlmIChqbWUtPnJlZ19wbWNzKSB7CisJaWYgKGpt ZS0+cmVnX3BtY3MgJiYgZGV2aWNlX21heV93YWtldXAoJmptZS0+cGRldi0+ZGV2KSkgewogCQlq bWVfc2V0XzEwMG1faGFsZihqbWUpOwogCQlpZiAoam1lLT5yZWdfcG1jcyAmIChQTUNTX0xGRU4g fCBQTUNTX0xSRU4pKQogCQkJam1lX3dhaXRfbGluayhqbWUpOwotCQlqbWVfY2xlYXJfcG0oam1l KTsKKwkJam1lX2NsZWFyX3BtX2VuYWJsZV93b2woam1lKTsKIAl9IGVsc2UgewogCQlqbWVfcGh5 X29mZihqbWUpOwogCX0KQEAgLTI2NTAsOSArMjY1Niw2IEBAIGptZV9zZXRfd29sKHN0cnVjdCBu ZXRfZGV2aWNlICpuZXRkZXYsCiAJaWYgKHdvbC0+d29sb3B0cyAmIFdBS0VfTUFHSUMpCiAJCWpt ZS0+cmVnX3BtY3MgfD0gUE1DU19NRkVOOwogCi0JandyaXRlMzIoam1lLCBKTUVfUE1DUywgam1l LT5yZWdfcG1jcyk7Ci0JZGV2aWNlX3NldF93YWtldXBfZW5hYmxlKCZqbWUtPnBkZXYtPmRldiwg ISEoam1lLT5yZWdfcG1jcykpOwotCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTMxNzYsOCArMzE3OSw4 IEBAIGptZV9pbml0X29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwKIAlqbWUtPm1paV9pZi5tZGlv X3JlYWQgPSBqbWVfbWRpb19yZWFkOwogCWptZS0+bWlpX2lmLm1kaW9fd3JpdGUgPSBqbWVfbWRp b193cml0ZTsKIAotCWptZV9jbGVhcl9wbShqbWUpOwotCWRldmljZV9zZXRfd2FrZXVwX2VuYWJs ZSgmcGRldi0+ZGV2LCB0cnVlKTsKKwlqbWVfY2xlYXJfcG1fZGlzYWJsZV93b2woam1lKTsKKwlk ZXZpY2VfaW5pdF93YWtldXAoJnBkZXYtPmRldiwgdHJ1ZSk7CiAKIAlqbWVfc2V0X3BoeWZpZm9f NWxldmVsKGptZSk7CiAJam1lLT5wY2lyZXYgPSBwZGV2LT5yZXZpc2lvbjsKQEAgLTMzMDgsNyAr MzMxMSw3IEBAIGptZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQogCWlmICghbmV0aWZfcnVu bmluZyhuZXRkZXYpKQogCQlyZXR1cm4gMDsKIAotCWptZV9jbGVhcl9wbShqbWUpOworCWptZV9j bGVhcl9wbV9kaXNhYmxlX3dvbChqbWUpOwogCWptZV9waHlfb24oam1lKTsKIAlpZiAodGVzdF9i aXQoSk1FX0ZMQUdfU1NFVCwgJmptZS0+ZmxhZ3MpKQogCQlqbWVfc2V0X3NldHRpbmdzKG5ldGRl diwgJmptZS0+b2xkX2VjbWQpOwpAQCAtMzMxNiwxMyArMzMxOSwxNCBAQCBqbWVfcmVzdW1lKHN0 cnVjdCBkZXZpY2UgKmRldikKIAkJam1lX3Jlc2V0X3BoeV9wcm9jZXNzb3Ioam1lKTsKIAlqbWVf cGh5X2NhbGlicmF0aW9uKGptZSk7CiAJam1lX3BoeV9zZXRFQShqbWUpOwotCWptZV9zdGFydF9p cnEoam1lKTsKIAluZXRpZl9kZXZpY2VfYXR0YWNoKG5ldGRldik7CiAKIAlhdG9taWNfaW5jKCZq bWUtPmxpbmtfY2hhbmdpbmcpOwogCiAJam1lX3Jlc2V0X2xpbmsoam1lKTsKIAorCWptZV9zdGFy dF9pcnEoam1lKTsKKwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tYXJ2ZWxsL212bmV0YS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9t dm5ldGEuYwppbmRleCAwODMwZDIzZjAxYWUuLjk5YTY5NDkwZjM5YiAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYworKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tYXJ2ZWxsL212bmV0YS5jCkBAIC0zMDc4LDcgKzMwNzgsNyBAQCBzdGF0aWMgaW50IG12 bmV0YV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWRldi0+ZmVhdHVyZXMg PSBORVRJRl9GX1NHIHwgTkVUSUZfRl9JUF9DU1VNIHwgTkVUSUZfRl9UU087CiAJZGV2LT5od19m ZWF0dXJlcyB8PSBkZXYtPmZlYXR1cmVzOwogCWRldi0+dmxhbl9mZWF0dXJlcyB8PSBkZXYtPmZl YXR1cmVzOwotCWRldi0+cHJpdl9mbGFncyB8PSBJRkZfVU5JQ0FTVF9GTFQ7CisJZGV2LT5wcml2 X2ZsYWdzIHw9IElGRl9VTklDQVNUX0ZMVCB8IElGRl9MSVZFX0FERFJfQ0hBTkdFOwogCWRldi0+ Z3NvX21heF9zZWdzID0gTVZORVRBX01BWF9UU09fU0VHUzsKIAogCWVyciA9IHJlZ2lzdGVyX25l dGRldihkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NC9yZXNvdXJjZV90cmFja2VyLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0 L3Jlc291cmNlX3RyYWNrZXIuYwppbmRleCA5ZDE0ZWQzNzJjNDQuLjkwMjY5YjMwMTNiNiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9yZXNvdXJjZV90cmFj a2VyLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9yZXNvdXJjZV90 cmFja2VyLmMKQEAgLTI4ODYsNyArMjg4Niw3IEBAIHN0YXRpYyBpbnQgdmVyaWZ5X3FwX3BhcmFt ZXRlcnMoc3RydWN0IG1seDRfZGV2ICpkZXYsCiAJCWNhc2UgUVBfVFJBTlNfUlRTMlJUUzoKIAkJ Y2FzZSBRUF9UUkFOU19TUUQyU1FEOgogCQljYXNlIFFQX1RSQU5TX1NRRDJSVFM6Ci0JCQlpZiAo c2xhdmUgIT0gbWx4NF9tYXN0ZXJfZnVuY19udW0oZGV2KSkKKwkJCWlmIChzbGF2ZSAhPSBtbHg0 X21hc3Rlcl9mdW5jX251bShkZXYpKSB7CiAJCQkJaWYgKG9wdHBhciAmIE1MWDRfUVBfT1BUUEFS X1BSSU1BUllfQUREUl9QQVRIKSB7CiAJCQkJCXBvcnQgPSAocXBfY3R4LT5wcmlfcGF0aC5zY2hl ZF9xdWV1ZSA+PiA2ICYgMSkgKyAxOwogCQkJCQlpZiAoZGV2LT5jYXBzLnBvcnRfbWFza1twb3J0 XSAhPSBNTFg0X1BPUlRfVFlQRV9JQikKQEAgLTI5MDUsNiArMjkwNSw3IEBAIHN0YXRpYyBpbnQg dmVyaWZ5X3FwX3BhcmFtZXRlcnMoc3RydWN0IG1seDRfZGV2ICpkZXYsCiAJCQkJCWlmIChxcF9j dHgtPmFsdF9wYXRoLm1naWRfaW5kZXggPj0gbnVtX2dpZHMpCiAJCQkJCQlyZXR1cm4gLUVJTlZB TDsKIAkJCQl9CisJCQl9CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWJyZWFrOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcmVsL2tzODg0Mi5jIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWljcmVsL2tzODg0Mi5jCmluZGV4IDgyMjYxNmUzYzM3NS4uNjRjOTJiNmE0MzJh IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyZWwva3M4ODQyLmMKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcmVsL2tzODg0Mi5jCkBAIC01NjEsOCArNTYxLDggQEAg c3RhdGljIGludCBfX2tzODg0Ml9zdGFydF9uZXdfcnhfZG1hKHN0cnVjdCBuZXRfZGV2aWNlICpu ZXRkZXYpCiAJCXNnX2luaXRfdGFibGUoc2csIDEpOwogCQlzZ19kbWFfYWRkcmVzcyhzZykgPSBk bWFfbWFwX3NpbmdsZShhZGFwdGVyLT5kZXYsCiAJCQljdGwtPnNrYi0+ZGF0YSwgRE1BX0JVRkZF Ul9TSVpFLCBETUFfRlJPTV9ERVZJQ0UpOwotCQllcnIgPSBkbWFfbWFwcGluZ19lcnJvcihhZGFw dGVyLT5kZXYsIHNnX2RtYV9hZGRyZXNzKHNnKSk7Ci0JCWlmICh1bmxpa2VseShlcnIpKSB7CisJ CWlmIChkbWFfbWFwcGluZ19lcnJvcihhZGFwdGVyLT5kZXYsIHNnX2RtYV9hZGRyZXNzKHNnKSkp IHsKKwkJCWVyciA9IC1FTk9NRU07CiAJCQlzZ19kbWFfYWRkcmVzcyhzZykgPSAwOwogCQkJZ290 byBvdXQ7CiAJCX0KQEAgLTU3Miw4ICs1NzIsMTAgQEAgc3RhdGljIGludCBfX2tzODg0Ml9zdGFy dF9uZXdfcnhfZG1hKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCiAJCWN0bC0+YWRlc2MgPSBk bWFlbmdpbmVfcHJlcF9zbGF2ZV9zZyhjdGwtPmNoYW4sCiAJCQlzZywgMSwgRE1BX0RFVl9UT19N RU0sIERNQV9QUkVQX0lOVEVSUlVQVCk7CiAKLQkJaWYgKCFjdGwtPmFkZXNjKQorCQlpZiAoIWN0 bC0+YWRlc2MpIHsKKwkJCWVyciA9IC1FTk9NRU07CiAJCQlnb3RvIG91dDsKKwkJfQogCiAJCWN0 bC0+YWRlc2MtPmNhbGxiYWNrX3BhcmFtID0gbmV0ZGV2OwogCQljdGwtPmFkZXNjLT5jYWxsYmFj ayA9IGtzODg0Ml9kbWFfcnhfY2I7CkBAIC01ODQsNyArNTg2LDcgQEAgc3RhdGljIGludCBfX2tz ODg0Ml9zdGFydF9uZXdfcnhfZG1hKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCiAJCWdvdG8g b3V0OwogCX0KIAotCXJldHVybiBlcnI7CisJcmV0dXJuIDA7CiBvdXQ6CiAJaWYgKHNnX2RtYV9h ZGRyZXNzKHNnKSkKIAkJZG1hX3VubWFwX3NpbmdsZShhZGFwdGVyLT5kZXYsIHNnX2RtYV9hZGRy ZXNzKHNnKSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xbGdlL3Fs Z2VfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FsZ2UvcWxnZV9tYWluLmMK aW5kZXggMDc4ZGE2NjEzMmQ1Li45MDdhMWM2ZDZlMWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L3Fsb2dpYy9xbGdlL3FsZ2VfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L3Fsb2dpYy9xbGdlL3FsZ2VfbWFpbi5jCkBAIC0xNjQ4LDcgKzE2NDgsMTggQEAgc3RhdGlj IHZvaWQgcWxfcHJvY2Vzc19tYWNfcnhfc2tiKHN0cnVjdCBxbF9hZGFwdGVyICpxZGV2LAogCQly ZXR1cm47CiAJfQogCXNrYl9yZXNlcnZlKG5ld19za2IsIE5FVF9JUF9BTElHTik7CisKKwlwY2lf ZG1hX3N5bmNfc2luZ2xlX2Zvcl9jcHUocWRldi0+cGRldiwKKwkJCQkgICAgZG1hX3VubWFwX2Fk ZHIoc2JxX2Rlc2MsIG1hcGFkZHIpLAorCQkJCSAgICBkbWFfdW5tYXBfbGVuKHNicV9kZXNjLCBt YXBsZW4pLAorCQkJCSAgICBQQ0lfRE1BX0ZST01ERVZJQ0UpOworCiAJbWVtY3B5KHNrYl9wdXQo bmV3X3NrYiwgbGVuZ3RoKSwgc2tiLT5kYXRhLCBsZW5ndGgpOworCisJcGNpX2RtYV9zeW5jX3Np bmdsZV9mb3JfZGV2aWNlKHFkZXYtPnBkZXYsCisJCQkJICAgICAgIGRtYV91bm1hcF9hZGRyKHNi cV9kZXNjLCBtYXBhZGRyKSwKKwkJCQkgICAgICAgZG1hX3VubWFwX2xlbihzYnFfZGVzYywgbWFw bGVuKSwKKwkJCQkgICAgICAgUENJX0RNQV9GUk9NREVWSUNFKTsKIAlza2IgPSBuZXdfc2tiOwog CiAJLyogRnJhbWUgZXJyb3IsIHNvIGRyb3AgdGhlIHBhY2tldC4gKi8KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3JlbmVzYXMvc2hfZXRoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9yZW5lc2FzL3NoX2V0aC5jCmluZGV4IDY0YmIxZWRiNWVmNy4uYzYwNzAxNWYwNTM4IDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZW5lc2FzL3NoX2V0aC5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L3JlbmVzYXMvc2hfZXRoLmMKQEAgLTExNjIsNyArMTE2Miw4IEBAIHN0 YXRpYyB2b2lkIHNoX2V0aF9yaW5nX2Zvcm1hdChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldikKIAlt ZHAtPmRpcnR5X3J4ID0gKHUzMikgKGkgLSBtZHAtPm51bV9yeF9yaW5nKTsKIAogCS8qIE1hcmsg dGhlIGxhc3QgZW50cnkgYXMgd3JhcHBpbmcgdGhlIHJpbmcuICovCi0JcnhkZXNjLT5zdGF0dXMg fD0gY3B1X3RvX2VkbWFjKG1kcCwgUkRfUkRFTCk7CisJaWYgKHJ4ZGVzYykKKwkJcnhkZXNjLT5z dGF0dXMgfD0gY3B1X3RvX2VkbWFjKG1kcCwgUkRfUkRFTCk7CiAKIAltZW1zZXQobWRwLT50eF9y aW5nLCAwLCB0eF9yaW5nc2l6ZSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lyZGEvaXJ0 dHktc2lyLmMgYi9kcml2ZXJzL25ldC9pcmRhL2lydHR5LXNpci5jCmluZGV4IDI0YjZkZGRkN2Yy Zi4uMTYyMTkxNjI1NjZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pcmRhL2lydHR5LXNpci5j CisrKyBiL2RyaXZlcnMvbmV0L2lyZGEvaXJ0dHktc2lyLmMKQEAgLTQzMCwxNiArNDMwLDYgQEAg c3RhdGljIGludCBpcnR0eV9vcGVuKHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpCiAKIAkvKiBNb2R1 bGUgc3R1ZmYgaGFuZGxlZCB2aWEgaXJkYV9sZGlzYy5vd25lciAtIEplYW4gSUkgKi8KIAotCS8q IEZpcnN0IG1ha2Ugc3VyZSB3ZSdyZSBub3QgYWxyZWFkeSBjb25uZWN0ZWQuICovCi0JaWYgKHR0 eS0+ZGlzY19kYXRhICE9IE5VTEwpIHsKLQkJcHJpdiA9IHR0eS0+ZGlzY19kYXRhOwotCQlpZiAo cHJpdiAmJiBwcml2LT5tYWdpYyA9PSBJUlRUWV9NQUdJQykgewotCQkJcmV0ID0gLUVFWElTVDsK LQkJCWdvdG8gb3V0OwotCQl9Ci0JCXR0eS0+ZGlzY19kYXRhID0gTlVMTDsJCS8qICMjIyAqLwot CX0KLQogCS8qIHN0b3AgdGhlIHVuZGVybHlpbmcgIGRyaXZlciAqLwogCWlydHR5X3N0b3BfcmVj ZWl2ZXIodHR5LCBUUlVFKTsKIAlpZiAodHR5LT5vcHMtPnN0b3ApCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9tYWN2dGFwLmMgYi9kcml2ZXJzL25ldC9tYWN2dGFwLmMKaW5kZXggNjE4NTg3NGEw ODhlLi5lOWMzNjc3YTE5NmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L21hY3Z0YXAuYworKysg Yi9kcml2ZXJzL25ldC9tYWN2dGFwLmMKQEAgLTY5MCw2ICs2OTAsOCBAQCBzdGF0aWMgc3NpemVf dCBtYWN2dGFwX2dldF91c2VyKHN0cnVjdCBtYWN2dGFwX3F1ZXVlICpxLCBzdHJ1Y3QgbXNnaGRy ICptLAogCQljb3B5bGVuID0gdm5ldF9oZHIuaGRyX2xlbiA/IHZuZXRfaGRyLmhkcl9sZW4gOiBH T09EQ09QWV9MRU47CiAJCWlmIChjb3B5bGVuID4gZ29vZF9saW5lYXIpCiAJCQljb3B5bGVuID0g Z29vZF9saW5lYXI7CisJCWVsc2UgaWYgKGNvcHlsZW4gPCBFVEhfSExFTikKKwkJCWNvcHlsZW4g PSBFVEhfSExFTjsKIAkJbGluZWFyID0gY29weWxlbjsKIAkJaWYgKGlvdl9wYWdlcyhpdiwgdm5l dF9oZHJfbGVuICsgY29weWxlbiwgY291bnQpCiAJCSAgICA8PSBNQVhfU0tCX0ZSQUdTKQpAQCAt Njk4LDEwICs3MDAsMTEgQEAgc3RhdGljIHNzaXplX3QgbWFjdnRhcF9nZXRfdXNlcihzdHJ1Y3Qg bWFjdnRhcF9xdWV1ZSAqcSwgc3RydWN0IG1zZ2hkciAqbSwKIAogCWlmICghemVyb2NvcHkpIHsK IAkJY29weWxlbiA9IGxlbjsKLQkJaWYgKHZuZXRfaGRyLmhkcl9sZW4gPiBnb29kX2xpbmVhcikK KwkJbGluZWFyID0gdm5ldF9oZHIuaGRyX2xlbjsKKwkJaWYgKGxpbmVhciA+IGdvb2RfbGluZWFy KQogCQkJbGluZWFyID0gZ29vZF9saW5lYXI7Ci0JCWVsc2UKLQkJCWxpbmVhciA9IHZuZXRfaGRy Lmhkcl9sZW47CisJCWVsc2UgaWYgKGxpbmVhciA8IEVUSF9ITEVOKQorCQkJbGluZWFyID0gRVRI X0hMRU47CiAJfQogCiAJc2tiID0gbWFjdnRhcF9hbGxvY19za2IoJnEtPnNrLCBNQUNWVEFQX1JF U0VSVkUsIGNvcHlsZW4sCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvbWRpby1zdW40aS5j IGIvZHJpdmVycy9uZXQvcGh5L21kaW8tc3VuNGkuYwppbmRleCAxNWJjN2Y5ZWEyMjQuLjUyOWJl ZDJkZDNmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L21kaW8tc3VuNGkuYworKysgYi9k cml2ZXJzL25ldC9waHkvbWRpby1zdW40aS5jCkBAIC0xMzIsNiArMTMyLDcgQEAgc3RhdGljIGlu dCBzdW40aV9tZGlvX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCQlyZXR1 cm4gLUVQUk9CRV9ERUZFUjsKIAogCQlkZXZfaW5mbygmcGRldi0+ZGV2LCAibm8gcmVndWxhdG9y IGZvdW5kXG4iKTsKKwkJZGF0YS0+cmVndWxhdG9yID0gTlVMTDsKIAl9IGVsc2UgewogCQlyZXQg PSByZWd1bGF0b3JfZW5hYmxlKGRhdGEtPnJlZ3VsYXRvcik7CiAJCWlmIChyZXQpCkBAIC0xNDcs NyArMTQ4LDggQEAgc3RhdGljIGludCBzdW40aV9tZGlvX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCiAJcmV0dXJuIDA7CiAKIGVycl9vdXRfZGlzYWJsZV9yZWd1bGF0b3I6Ci0J cmVndWxhdG9yX2Rpc2FibGUoZGF0YS0+cmVndWxhdG9yKTsKKwlpZiAoZGF0YS0+cmVndWxhdG9y KQorCQlyZWd1bGF0b3JfZGlzYWJsZShkYXRhLT5yZWd1bGF0b3IpOwogZXJyX291dF9mcmVlX21k aW9idXM6CiAJbWRpb2J1c19mcmVlKGJ1cyk7CiAJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jIGIvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmlj LmMKaW5kZXggNjVlZGQzNDY1NGVlLi4yYjVhYzE4MTg3OTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L3BwcC9wcHBfZ2VuZXJpYy5jCisrKyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5j CkBAIC01NjEsNyArNTYxLDcgQEAgc3RhdGljIGludCBnZXRfZmlsdGVyKHZvaWQgX191c2VyICph cmcsIHN0cnVjdCBzb2NrX2ZpbHRlciAqKnApCiAKIHN0YXRpYyBsb25nIHBwcF9pb2N0bChzdHJ1 Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCiB7Ci0J c3RydWN0IHBwcF9maWxlICpwZiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgcHBwX2Zp bGUgKnBmOwogCXN0cnVjdCBwcHAgKnBwcDsKIAlpbnQgZXJyID0gLUVGQVVMVCwgdmFsLCB2YWwy LCBpOwogCXN0cnVjdCBwcHBfaWRsZSBpZGxlOwpAQCAtNTcxLDkgKzU3MSwxNCBAQCBzdGF0aWMg bG9uZyBwcHBfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsIHVuc2ln bmVkIGxvbmcgYXJnKQogCXZvaWQgX191c2VyICphcmdwID0gKHZvaWQgX191c2VyICopYXJnOwog CWludCBfX3VzZXIgKnAgPSBhcmdwOwogCi0JaWYgKCFwZikKLQkJcmV0dXJuIHBwcF91bmF0dGFj aGVkX2lvY3RsKGN1cnJlbnQtPm5zcHJveHktPm5ldF9ucywKLQkJCQkJcGYsIGZpbGUsIGNtZCwg YXJnKTsKKwltdXRleF9sb2NrKCZwcHBfbXV0ZXgpOworCisJcGYgPSBmaWxlLT5wcml2YXRlX2Rh dGE7CisJaWYgKCFwZikgeworCQllcnIgPSBwcHBfdW5hdHRhY2hlZF9pb2N0bChjdXJyZW50LT5u c3Byb3h5LT5uZXRfbnMsCisJCQkJCSAgIHBmLCBmaWxlLCBjbWQsIGFyZyk7CisJCWdvdG8gb3V0 OworCX0KIAogCWlmIChjbWQgPT0gUFBQSU9DREVUQUNIKSB7CiAJCS8qCkBAIC01ODgsNyArNTkz LDYgQEAgc3RhdGljIGxvbmcgcHBwX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBp bnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKIAkJICogdGhpcyBmZCBhbmQgcmVvcGVuaW5nIC9k ZXYvcHBwLgogCQkgKi8KIAkJZXJyID0gLUVJTlZBTDsKLQkJbXV0ZXhfbG9jaygmcHBwX211dGV4 KTsKIAkJaWYgKHBmLT5raW5kID09IElOVEVSRkFDRSkgewogCQkJcHBwID0gUEZfVE9fUFBQKHBm KTsKIAkJCWlmIChmaWxlID09IHBwcC0+b3duZXIpCkBAIC02MDAsMTUgKzYwNCwxMyBAQCBzdGF0 aWMgbG9uZyBwcHBfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsIHVu c2lnbmVkIGxvbmcgYXJnKQogCQl9IGVsc2UKIAkJCXByX3dhcm4oIlBQUElPQ0RFVEFDSCBmaWxl LT5mX2NvdW50PSVsZFxuIiwKIAkJCQlhdG9taWNfbG9uZ19yZWFkKCZmaWxlLT5mX2NvdW50KSk7 Ci0JCW11dGV4X3VubG9jaygmcHBwX211dGV4KTsKLQkJcmV0dXJuIGVycjsKKwkJZ290byBvdXQ7 CiAJfQogCiAJaWYgKHBmLT5raW5kID09IENIQU5ORUwpIHsKIAkJc3RydWN0IGNoYW5uZWwgKnBj aDsKIAkJc3RydWN0IHBwcF9jaGFubmVsICpjaGFuOwogCi0JCW11dGV4X2xvY2soJnBwcF9tdXRl eCk7CiAJCXBjaCA9IFBGX1RPX0NIQU5ORUwocGYpOwogCiAJCXN3aXRjaCAoY21kKSB7CkBAIC02 MzAsMTcgKzYzMiwxNiBAQCBzdGF0aWMgbG9uZyBwcHBfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUs IHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQogCQkJCWVyciA9IGNoYW4tPm9w cy0+aW9jdGwoY2hhbiwgY21kLCBhcmcpOwogCQkJdXBfcmVhZCgmcGNoLT5jaGFuX3NlbSk7CiAJ CX0KLQkJbXV0ZXhfdW5sb2NrKCZwcHBfbXV0ZXgpOwotCQlyZXR1cm4gZXJyOworCQlnb3RvIG91 dDsKIAl9CiAKIAlpZiAocGYtPmtpbmQgIT0gSU5URVJGQUNFKSB7CiAJCS8qIGNhbid0IGhhcHBl biAqLwogCQlwcl9lcnIoIlBQUDogbm90IGludGVyZmFjZSBvciBjaGFubmVsPz9cbiIpOwotCQly ZXR1cm4gLUVJTlZBTDsKKwkJZXJyID0gLUVJTlZBTDsKKwkJZ290byBvdXQ7CiAJfQogCi0JbXV0 ZXhfbG9jaygmcHBwX211dGV4KTsKIAlwcHAgPSBQRl9UT19QUFAocGYpOwogCXN3aXRjaCAoY21k KSB7CiAJY2FzZSBQUFBJT0NTTVJVOgpAQCAtODExLDcgKzgxMiwxMCBAQCBzdGF0aWMgbG9uZyBw cHBfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxv bmcgYXJnKQogCWRlZmF1bHQ6CiAJCWVyciA9IC1FTk9UVFk7CiAJfQorCitvdXQ6CiAJbXV0ZXhf dW5sb2NrKCZwcHBfbXV0ZXgpOworCiAJcmV0dXJuIGVycjsKIH0KIApAQCAtODI0LDcgKzgyOCw2 IEBAIHN0YXRpYyBpbnQgcHBwX3VuYXR0YWNoZWRfaW9jdGwoc3RydWN0IG5ldCAqbmV0LCBzdHJ1 Y3QgcHBwX2ZpbGUgKnBmLAogCXN0cnVjdCBwcHBfbmV0ICpwbjsKIAlpbnQgX191c2VyICpwID0g KGludCBfX3VzZXIgKilhcmc7CiAKLQltdXRleF9sb2NrKCZwcHBfbXV0ZXgpOwogCXN3aXRjaCAo Y21kKSB7CiAJY2FzZSBQUFBJT0NORVdVTklUOgogCQkvKiBDcmVhdGUgYSBuZXcgcHBwIHVuaXQg Ki8KQEAgLTg3NSw3ICs4NzgsNyBAQCBzdGF0aWMgaW50IHBwcF91bmF0dGFjaGVkX2lvY3RsKHN0 cnVjdCBuZXQgKm5ldCwgc3RydWN0IHBwcF9maWxlICpwZiwKIAlkZWZhdWx0OgogCQllcnIgPSAt RU5PVFRZOwogCX0KLQltdXRleF91bmxvY2soJnBwcF9tdXRleCk7CisKIAlyZXR1cm4gZXJyOwog fQogCkBAIC0yMjM4LDcgKzIyNDEsNyBAQCBpbnQgcHBwX3JlZ2lzdGVyX25ldF9jaGFubmVsKHN0 cnVjdCBuZXQgKm5ldCwgc3RydWN0IHBwcF9jaGFubmVsICpjaGFuKQogCiAJcGNoLT5wcHAgPSBO VUxMOwogCXBjaC0+Y2hhbiA9IGNoYW47Ci0JcGNoLT5jaGFuX25ldCA9IG5ldDsKKwlwY2gtPmNo YW5fbmV0ID0gZ2V0X25ldChuZXQpOwogCWNoYW4tPnBwcCA9IHBjaDsKIAlpbml0X3BwcF9maWxl KCZwY2gtPmZpbGUsIENIQU5ORUwpOwogCXBjaC0+ZmlsZS5oZHJsZW4gPSBjaGFuLT5oZHJsZW47 CkBAIC0yMzM1LDYgKzIzMzgsOCBAQCBwcHBfdW5yZWdpc3Rlcl9jaGFubmVsKHN0cnVjdCBwcHBf Y2hhbm5lbCAqY2hhbikKIAlzcGluX2xvY2tfYmgoJnBuLT5hbGxfY2hhbm5lbHNfbG9jayk7CiAJ bGlzdF9kZWwoJnBjaC0+bGlzdCk7CiAJc3Bpbl91bmxvY2tfYmgoJnBuLT5hbGxfY2hhbm5lbHNf bG9jayk7CisJcHV0X25ldChwY2gtPmNoYW5fbmV0KTsKKwlwY2gtPmNoYW5fbmV0ID0gTlVMTDsK IAogCXBjaC0+ZmlsZS5kZWFkID0gMTsKIAl3YWtlX3VwX2ludGVycnVwdGlibGUoJnBjaC0+Zmls ZS5yd2FpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9yaW9uZXQuYyBiL2RyaXZlcnMvbmV0 L3Jpb25ldC5jCmluZGV4IGRhYzdhMGQ5YmI0Ni4uMThjYzJjOGQ1NDQ3IDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9yaW9uZXQuYworKysgYi9kcml2ZXJzL25ldC9yaW9uZXQuYwpAQCAtMjgwLDcg KzI4MCw3IEBAIHN0YXRpYyB2b2lkIHJpb25ldF9vdXRiX21zZ19ldmVudChzdHJ1Y3QgcmlvX21w b3J0ICptcG9ydCwgdm9pZCAqZGV2X2lkLCBpbnQgbWJvCiAJc3RydWN0IG5ldF9kZXZpY2UgKm5k ZXYgPSBkZXZfaWQ7CiAJc3RydWN0IHJpb25ldF9wcml2YXRlICpybmV0ID0gbmV0ZGV2X3ByaXYo bmRldik7CiAKLQlzcGluX2xvY2soJnJuZXQtPmxvY2spOworCXNwaW5fbG9jaygmcm5ldC0+dHhf bG9jayk7CiAKIAlpZiAobmV0aWZfbXNnX2ludHIocm5ldCkpCiAJCXByaW50ayhLRVJOX0lORk8K QEAgLTI5OSw3ICsyOTksNyBAQCBzdGF0aWMgdm9pZCByaW9uZXRfb3V0Yl9tc2dfZXZlbnQoc3Ry dWN0IHJpb19tcG9ydCAqbXBvcnQsIHZvaWQgKmRldl9pZCwgaW50IG1ibwogCWlmIChybmV0LT50 eF9jbnQgPCBSSU9ORVRfVFhfUklOR19TSVpFKQogCQluZXRpZl93YWtlX3F1ZXVlKG5kZXYpOwog Ci0Jc3Bpbl91bmxvY2soJnJuZXQtPmxvY2spOworCXNwaW5fdW5sb2NrKCZybmV0LT50eF9sb2Nr KTsKIH0KIAogc3RhdGljIGludCByaW9uZXRfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldikK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3R1bi5jIGIvZHJpdmVycy9uZXQvdHVuLmMKaW5kZXgg ZWU3NTM4ZGM5YzIxLi45OTk0ODRmZWIzNzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3R1bi5j CisrKyBiL2RyaXZlcnMvbmV0L3R1bi5jCkBAIC01NTMsNyArNTUzLDggQEAgc3RhdGljIGludCB0 dW5fYXR0YWNoKHN0cnVjdCB0dW5fc3RydWN0ICp0dW4sIHN0cnVjdCBmaWxlICpmaWxlLCBib29s IHNraXBfZmlsdGUKIAogCS8qIFJlLWF0dGFjaCB0aGUgZmlsdGVyIHRvIHBlcnNpc3QgZGV2aWNl ICovCiAJaWYgKCFza2lwX2ZpbHRlciAmJiAodHVuLT5maWx0ZXJfYXR0YWNoZWQgPT0gdHJ1ZSkp IHsKLQkJZXJyID0gc2tfYXR0YWNoX2ZpbHRlcigmdHVuLT5mcHJvZywgdGZpbGUtPnNvY2tldC5z ayk7CisJCWVyciA9IF9fc2tfYXR0YWNoX2ZpbHRlcigmdHVuLT5mcHJvZywgdGZpbGUtPnNvY2tl dC5zaywKKwkJCQkJIGxvY2tkZXBfcnRubF9pc19oZWxkKCkpOwogCQlpZiAoIWVycikKIAkJCWdv dG8gb3V0OwogCX0KQEAgLTE3OTIsNyArMTc5Myw3IEBAIHN0YXRpYyB2b2lkIHR1bl9kZXRhY2hf ZmlsdGVyKHN0cnVjdCB0dW5fc3RydWN0ICp0dW4sIGludCBuKQogCiAJZm9yIChpID0gMDsgaSA8 IG47IGkrKykgewogCQl0ZmlsZSA9IHJ0bmxfZGVyZWZlcmVuY2UodHVuLT50ZmlsZXNbaV0pOwot CQlza19kZXRhY2hfZmlsdGVyKHRmaWxlLT5zb2NrZXQuc2spOworCQlfX3NrX2RldGFjaF9maWx0 ZXIodGZpbGUtPnNvY2tldC5zaywgbG9ja2RlcF9ydG5sX2lzX2hlbGQoKSk7CiAJfQogCiAJdHVu LT5maWx0ZXJfYXR0YWNoZWQgPSBmYWxzZTsKQEAgLTE4MDUsNyArMTgwNiw4IEBAIHN0YXRpYyBp bnQgdHVuX2F0dGFjaF9maWx0ZXIoc3RydWN0IHR1bl9zdHJ1Y3QgKnR1bikKIAogCWZvciAoaSA9 IDA7IGkgPCB0dW4tPm51bXF1ZXVlczsgaSsrKSB7CiAJCXRmaWxlID0gcnRubF9kZXJlZmVyZW5j ZSh0dW4tPnRmaWxlc1tpXSk7Ci0JCXJldCA9IHNrX2F0dGFjaF9maWx0ZXIoJnR1bi0+ZnByb2cs IHRmaWxlLT5zb2NrZXQuc2spOworCQlyZXQgPSBfX3NrX2F0dGFjaF9maWx0ZXIoJnR1bi0+ZnBy b2csIHRmaWxlLT5zb2NrZXQuc2ssCisJCQkJCSBsb2NrZGVwX3J0bmxfaXNfaGVsZCgpKTsKIAkJ aWYgKHJldCkgewogCQkJdHVuX2RldGFjaF9maWx0ZXIodHVuLCBpKTsKIAkJCXJldHVybiByZXQ7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvY2RjX25jbS5jIGIvZHJpdmVycy9uZXQvdXNi L2NkY19uY20uYwppbmRleCBiN2IzZWQ1ZjY2NmMuLjU4OTkwOTM0ZjE5MiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvdXNiL2NkY19uY20uYworKysgYi9kcml2ZXJzL25ldC91c2IvY2RjX25jbS5j CkBAIC04MTUsNyArODE1LDExIEBAIGFkdmFuY2U6CiAKIAlpZmFjZV9ubyA9IGN0eC0+ZGF0YS0+ Y3VyX2FsdHNldHRpbmctPmRlc2MuYkludGVyZmFjZU51bWJlcjsKIAotCS8qIHJlc2V0IGRhdGEg aW50ZXJmYWNlICovCisJLyogUmVzZXQgZGF0YSBpbnRlcmZhY2UuIFNvbWUgZGV2aWNlcyB3aWxs IG5vdCByZXNldCBwcm9wZXJseQorCSAqIHVubGVzcyB0aGV5IGFyZSBjb25maWd1cmVkIGZpcnN0 LiAgVG9nZ2xlIHRoZSBhbHRzZXR0aW5nIHRvCisJICogZm9yY2UgYSByZXNldAorCSAqLworCXVz Yl9zZXRfaW50ZXJmYWNlKGRldi0+dWRldiwgaWZhY2Vfbm8sIGRhdGFfYWx0c2V0dGluZyk7CiAJ dGVtcCA9IHVzYl9zZXRfaW50ZXJmYWNlKGRldi0+dWRldiwgaWZhY2Vfbm8sIDApOwogCWlmICh0 ZW1wKSB7CiAJCWRldl9kYmcoJmludGYtPmRldiwgInNldCBpbnRlcmZhY2UgZmFpbGVkXG4iKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jIGIvZHJpdmVycy9uZXQvdXNi L3FtaV93d2FuLmMKaW5kZXggYWIwYTRmMzJhNDZjLi5mNmNhZWRmMDkyMGMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dh bi5jCkBAIC03NDksNiArNzQ5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lk IHByb2R1Y3RzW10gPSB7CiAJe1FNSV9GSVhFRF9JTlRGKDB4MTlkMiwgMHgxNDI2LCAyKX0sCS8q IFpURSBNRjkxICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4MTlkMiwgMHgxNDI4LCAyKX0sCS8qIFRl bGV3ZWxsIFRXLUxURSA0RyB2MiAqLwogCXtRTUlfRklYRURfSU5URigweDE5ZDIsIDB4MjAwMiwg NCl9LAkvKiBaVEUgKFZvZGFmb25lKSBLMzc2NS1aICovCisJe1FNSV9GSVhFRF9JTlRGKDB4MjAw MSwgMHg3ZTE5LCA0KX0sCS8qIEQtTGluayBEV00tMjIxIEIxICovCiAJe1FNSV9GSVhFRF9JTlRG KDB4MGYzZCwgMHg2OGEyLCA4KX0sICAgIC8qIFNpZXJyYSBXaXJlbGVzcyBNQzc3MDAgKi8KIAl7 UU1JX0ZJWEVEX0lOVEYoMHgxMTRmLCAweDY4YTIsIDgpfSwgICAgLyogU2llcnJhIFdpcmVsZXNz IE1DNzc1MCAqLwogCXtRTUlfRklYRURfSU5URigweDExOTksIDB4NjhhMiwgOCl9LAkvKiBTaWVy cmEgV2lyZWxlc3MgTUM3NzEwIGluIFFNSSBtb2RlICovCkBAIC03NTgsNiArNzU5LDcgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHByb2R1Y3RzW10gPSB7CiAJe1FNSV9GSVhF RF9JTlRGKDB4MTE5OSwgMHg5MDFjLCA4KX0sICAgIC8qIFNpZXJyYSBXaXJlbGVzcyBFTTc3MDAg Ki8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgxMTk5LCAweDkwMWYsIDgpfSwgICAgLyogU2llcnJhIFdp cmVsZXNzIEVNNzM1NSAqLwogCXtRTUlfRklYRURfSU5URigweDExOTksIDB4OTA0MSwgOCl9LAkv KiBTaWVycmEgV2lyZWxlc3MgTUM3MzA1L01DNzM1NSAqLworCXtRTUlfRklYRURfSU5URigweDEx OTksIDB4OTA0MSwgMTApfSwJLyogU2llcnJhIFdpcmVsZXNzIE1DNzMwNS9NQzczNTUgKi8KIAl7 UU1JX0ZJWEVEX0lOVEYoMHgxMTk5LCAweDkwNTEsIDgpfSwJLyogTmV0Z2VhciBBaXJDYXJkIDM0 MFUgKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgxMTk5LCAweDkwNTMsIDgpfSwJLyogU2llcnJhIFdp cmVsZXNzIE1vZGVtICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4MTE5OSwgMHg5MDU0LCA4KX0sCS8q IFNpZXJyYSBXaXJlbGVzcyBNb2RlbSAqLwpAQCAtNzY1LDYgKzc2NywxMCBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcHJvZHVjdHNbXSA9IHsKIAl7UU1JX0ZJWEVEX0lOVEYo MHgxMTk5LCAweDkwNTYsIDgpfSwJLyogU2llcnJhIFdpcmVsZXNzIE1vZGVtICovCiAJe1FNSV9G SVhFRF9JTlRGKDB4MTE5OSwgMHg5MDU3LCA4KX0sCiAJe1FNSV9GSVhFRF9JTlRGKDB4MTE5OSwg MHg5MDYxLCA4KX0sCS8qIFNpZXJyYSBXaXJlbGVzcyBNb2RlbSAqLworCXtRTUlfRklYRURfSU5U RigweDExOTksIDB4OTA3MSwgOCl9LAkvKiBTaWVycmEgV2lyZWxlc3MgTUM3NHh4ICovCisJe1FN SV9GSVhFRF9JTlRGKDB4MTE5OSwgMHg5MDcxLCAxMCl9LAkvKiBTaWVycmEgV2lyZWxlc3MgTUM3 NHh4ICovCisJe1FNSV9GSVhFRF9JTlRGKDB4MTE5OSwgMHg5MDc5LCA4KX0sCS8qIFNpZXJyYSBX aXJlbGVzcyBFTTc0eHggKi8KKwl7UU1JX0ZJWEVEX0lOVEYoMHgxMTk5LCAweDkwNzksIDEwKX0s CS8qIFNpZXJyYSBXaXJlbGVzcyBFTTc0eHggKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgxYmJiLCAw eDAxMWUsIDQpfSwJLyogVGVsZWtvbSBTcGVlZHN0aWNrIExURSBJSSAoQWxjYXRlbCBPbmUgVG91 Y2ggTDEwMFYgTFRFKSAqLwogCXtRTUlfRklYRURfSU5URigweDFiYmIsIDB4MDIwMywgMil9LAkv KiBBbGNhdGVsIEw4MDBNQSAqLwogCXtRTUlfRklYRURfSU5URigweDIzNTcsIDB4MDIwMSwgNCl9 LAkvKiBUUC1MSU5LIEhTVVBBIE1vZGVtIE1BMTgwICovCkBAIC03ODEsMTIgKzc4NywxOSBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcHJvZHVjdHNbXSA9IHsKIAl7UU1JX0ZJ WEVEX0lOVEYoMHgwYjNjLCAweGMwMGIsIDQpfSwJLyogT2xpdmV0dGkgT2xpY2FyZCA1MDAgKi8K IAl7UU1JX0ZJWEVEX0lOVEYoMHgxZTJkLCAweDAwNjAsIDQpfSwJLyogQ2ludGVyaW9uIFBMeHgg Ki8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgxZTJkLCAweDAwNTMsIDQpfSwJLyogQ2ludGVyaW9uIFBI eHgsUFh4eCAqLworCXtRTUlfRklYRURfSU5URigweDFlMmQsIDB4MDA4MiwgNCl9LAkvKiBDaW50 ZXJpb24gUEh4eCxQWHh4ICgyIFJtTmV0KSAqLworCXtRTUlfRklYRURfSU5URigweDFlMmQsIDB4 MDA4MiwgNSl9LAkvKiBDaW50ZXJpb24gUEh4eCxQWHh4ICgyIFJtTmV0KSAqLworCXtRTUlfRklY RURfSU5URigweDFlMmQsIDB4MDA4MywgNCl9LAkvKiBDaW50ZXJpb24gUEh4eCxQWHh4ICgxIFJt TmV0ICsgVVNCIEF1ZGlvKSovCiAJe1FNSV9GSVhFRF9JTlRGKDB4NDEzYywgMHg4MWEyLCA4KX0s CS8qIERlbGwgV2lyZWxlc3MgNTgwNiBHb2JpKFRNKSA0RyBMVEUgTW9iaWxlIEJyb2FkYmFuZCBD YXJkICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4NDEzYywgMHg4MWEzLCA4KX0sCS8qIERlbGwgV2ly ZWxlc3MgNTU3MCBIU1BBKyAoNDJNYnBzKSBNb2JpbGUgQnJvYWRiYW5kIENhcmQgKi8KIAl7UU1J X0ZJWEVEX0lOVEYoMHg0MTNjLCAweDgxYTQsIDgpfSwJLyogRGVsbCBXaXJlbGVzcyA1NTcwZSBI U1BBKyAoNDJNYnBzKSBNb2JpbGUgQnJvYWRiYW5kIENhcmQgKi8KIAl7UU1JX0ZJWEVEX0lOVEYo MHg0MTNjLCAweDgxYTgsIDgpfSwJLyogRGVsbCBXaXJlbGVzcyA1ODA4IEdvYmkoVE0pIDRHIExU RSBNb2JpbGUgQnJvYWRiYW5kIENhcmQgKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHg0MTNjLCAweDgx YTksIDgpfSwJLyogRGVsbCBXaXJlbGVzcyA1ODA4ZSBHb2JpKFRNKSA0RyBMVEUgTW9iaWxlIEJy b2FkYmFuZCBDYXJkICovCisJe1FNSV9GSVhFRF9JTlRGKDB4NDEzYywgMHg4MWIxLCA4KX0sCS8q IERlbGwgV2lyZWxlc3MgNTgwOWUgR29iaShUTSkgNEcgTFRFIE1vYmlsZSBCcm9hZGJhbmQgQ2Fy ZCAqLworCXtRTUlfRklYRURfSU5URigweDQxM2MsIDB4ODFiMywgOCl9LAkvKiBEZWxsIFdpcmVs ZXNzIDU4MDllIEdvYmkoVE0pIDRHIExURSBNb2JpbGUgQnJvYWRiYW5kIENhcmQgKHJldjMpICov CiAJe1FNSV9GSVhFRF9JTlRGKDB4MDNmMCwgMHg0ZTFkLCA4KX0sCS8qIEhQIGx0NDExMSBMVEUv RVYtRE8vSFNQQSsgR29iaSA0RyBNb2R1bGUgKi8KKwl7UU1JX0ZJWEVEX0lOVEYoMHgyMmRlLCAw eDkwNjEsIDMpfSwJLyogV2VUZWxlY29tIFdQRC02MDBOICovCisJe1FNSV9GSVhFRF9JTlRGKDB4 MWUwZSwgMHg5MDAxLCA1KX0sCS8qIFNJTUNvbSA3MjMwRSAqLwogCiAJLyogNC4gR29iaSAxMDAw IGRldmljZXMgKi8KIAl7UU1JX0dPQkkxS19ERVZJQ0UoMHgwNWM2LCAweDkyMTIpfSwJLyogQWNl ciBHb2JpIE1vZGVtIERldmljZSAqLwpAQCAtODE3LDYgKzgzMCw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgdXNiX2RldmljZV9pZCBwcm9kdWN0c1tdID0gewogCXtRTUlfR09CSV9ERVZJQ0UoMHgw NWM2LCAweDkyNDUpfSwJLyogU2Ftc3VuZyBHb2JpIDIwMDAgTW9kZW0gZGV2aWNlIChWTDE3Nikg Ki8KIAl7UU1JX0dPQklfREVWSUNFKDB4MDNmMCwgMHgyNTFkKX0sCS8qIEhQIEdvYmkgMjAwMCBN b2RlbSBkZXZpY2UgKFZQNDEyKSAqLwogCXtRTUlfR09CSV9ERVZJQ0UoMHgwNWM2LCAweDkyMTUp fSwJLyogQWNlciBHb2JpIDIwMDAgTW9kZW0gZGV2aWNlIChWUDQxMykgKi8KKwl7UU1JX0ZJWEVE X0lOVEYoMHgwNWM2LCAweDkyMTUsIDQpfSwJLyogUXVlY3RlbCBFQzIwIE1pbmkgUENJZSAqLwog CXtRTUlfR09CSV9ERVZJQ0UoMHgwNWM2LCAweDkyNjUpfSwJLyogQXN1cyBHb2JpIDIwMDAgTW9k ZW0gZGV2aWNlIChWUjMwNSkgKi8KIAl7UU1JX0dPQklfREVWSUNFKDB4MDVjNiwgMHg5MjM1KX0s CS8qIFRvcCBHbG9iYWwgR29iaSAyMDAwIE1vZGVtIGRldmljZSAoVlIzMDYpICovCiAJe1FNSV9H T0JJX0RFVklDRSgweDA1YzYsIDB4OTI3NSl9LAkvKiBpUmV4IFRlY2hub2xvZ2llcyBHb2JpIDIw MDAgTW9kZW0gZGV2aWNlIChWUjMwNykgKi8KQEAgLTg0OCwxMCArODYyLDI0IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBwcm9kdWN0c1tdID0gewogfTsKIE1PRFVMRV9ERVZJ Q0VfVEFCTEUodXNiLCBwcm9kdWN0cyk7CiAKK3N0YXRpYyBib29sIHF1ZWN0ZWxfZWMyMF9kZXRl Y3RlZChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZikKK3sKKwlzdHJ1Y3QgdXNiX2RldmljZSAq ZGV2ID0gaW50ZXJmYWNlX3RvX3VzYmRldihpbnRmKTsKKworCWlmIChkZXYtPmFjdGNvbmZpZyAm JgorCSAgICBsZTE2X3RvX2NwdShkZXYtPmRlc2NyaXB0b3IuaWRWZW5kb3IpID09IDB4MDVjNiAm JgorCSAgICBsZTE2X3RvX2NwdShkZXYtPmRlc2NyaXB0b3IuaWRQcm9kdWN0KSA9PSAweDkyMTUg JiYKKwkgICAgZGV2LT5hY3Rjb25maWctPmRlc2MuYk51bUludGVyZmFjZXMgPT0gNSkKKwkJcmV0 dXJuIHRydWU7CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRpYyBpbnQgcW1pX3d3YW5fcHJv YmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsCiAJCQkgIGNvbnN0IHN0cnVjdCB1c2JfZGV2 aWNlX2lkICpwcm9kKQogewogCXN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCA9IChzdHJ1Y3QgdXNi X2RldmljZV9pZCAqKXByb2Q7CisJc3RydWN0IHVzYl9pbnRlcmZhY2VfZGVzY3JpcHRvciAqZGVz YyA9ICZpbnRmLT5jdXJfYWx0c2V0dGluZy0+ZGVzYzsKIAogCS8qIFdvcmthcm91bmQgdG8gZW5h YmxlIGR5bmFtaWMgSURzLiAgVGhpcyBkaXNhYmxlcyB1c2JuZXQKIAkgKiBibGFja2xpc3Rpbmcg ZnVuY3Rpb25hbGl0eS4gIFdoaWNoLCBpZiByZXF1aXJlZCwgY2FuIGJlCkBAIC04NjMsNiArODkx LDEyIEBAIHN0YXRpYyBpbnQgcW1pX3d3YW5fcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmlu dGYsCiAJCWlkLT5kcml2ZXJfaW5mbyA9ICh1bnNpZ25lZCBsb25nKSZxbWlfd3dhbl9pbmZvOwog CX0KIAorCS8qIFF1ZWN0ZWwgRUMyMCBxdWlyayB3aGVyZSB3ZSd2ZSBRTUkgb24gaW50ZXJmYWNl IDQgaW5zdGVhZCBvZiAwICovCisJaWYgKHF1ZWN0ZWxfZWMyMF9kZXRlY3RlZChpbnRmKSAmJiBk ZXNjLT5iSW50ZXJmYWNlTnVtYmVyID09IDApIHsKKwkJZGV2X2RiZygmaW50Zi0+ZGV2LCAiUXVl Y3RlbCBFQzIwIHF1aXJrLCBza2lwcGluZyBpbnRlcmZhY2UgMFxuIik7CisJCXJldHVybiAtRU5P REVWOworCX0KKwogCXJldHVybiB1c2JuZXRfcHJvYmUoaW50ZiwgaWQpOwogfQogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC91c2IvdXNibmV0LmMgYi9kcml2ZXJzL25ldC91c2IvdXNibmV0LmMK aW5kZXggNWQ4MTlkZGU0NDhkLi40NzcyYTFmYTg1NmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L3VzYi91c2JuZXQuYworKysgYi9kcml2ZXJzL25ldC91c2IvdXNibmV0LmMKQEAgLTE3MjksNiAr MTcyOSwxMyBAQCBvdXQzOgogCWlmIChpbmZvLT51bmJpbmQpCiAJCWluZm8tPnVuYmluZCAoZGV2 LCB1ZGV2KTsKIG91dDE6CisJLyogc3ViZHJpdmVycyBtdXN0IHVuZG8gYWxsIHRoZXkgZGlkIGlu IGJpbmQoKSBpZiB0aGV5CisJICogZmFpbCBpdCwgYnV0IHdlIG1heSBmYWlsIGxhdGVyIGFuZCBh IGRlZmVycmVkIGtldmVudAorCSAqIG1heSB0cmlnZ2VyIGFuIGVycm9yIHJlc3VibWl0dGluZyBp dHNlbGYgYW5kLCB3b3JzZSwKKwkgKiBzY2hlZHVsZSBhIHRpbWVyLiBTbyB3ZSBraWxsIGl0IGFs bCBqdXN0IGluIGNhc2UuCisJICovCisJY2FuY2VsX3dvcmtfc3luYygmZGV2LT5rZXZlbnQpOwor CWRlbF90aW1lcl9zeW5jKCZkZXYtPmRlbGF5KTsKIAlmcmVlX25ldGRldihuZXQpOwogb3V0Ogog CXJldHVybiBzdGF0dXM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93YW4vZmFyc3luYy5jIGIv ZHJpdmVycy9uZXQvd2FuL2ZhcnN5bmMuYwppbmRleCAxZjA0MTI3MWY3ZmUuLjNkMTg4ZmIxMzk1 ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2FuL2ZhcnN5bmMuYworKysgYi9kcml2ZXJzL25l dC93YW4vZmFyc3luYy5jCkBAIC0yNTE2LDcgKzI1MTYsNyBAQCBmc3RfYWRkX29uZShzdHJ1Y3Qg cGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkKICAgICAgICAg ICAgICAgICBkZXYtPm1lbV9zdGFydCAgID0gY2FyZC0+cGh5c19tZW0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsgQlVGX09GRlNFVCAoIHR4QnVmZmVyW2ldWzBdWzBdKTsKICAg ICAgICAgICAgICAgICBkZXYtPm1lbV9lbmQgICAgID0gY2FyZC0+cGh5c19tZW0KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsgQlVGX09GRlNFVCAoIHR4QnVmZmVyW2ldW05VTV9U WF9CVUZGRVJdWzBdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgQlVGX09G RlNFVCAoIHR4QnVmZmVyW2ldW05VTV9UWF9CVUZGRVIgLSAxXVtMRU5fUlhfQlVGRkVSIC0gMV0p OwogICAgICAgICAgICAgICAgIGRldi0+YmFzZV9hZGRyICAgPSBjYXJkLT5wY2lfY29uZjsKICAg ICAgICAgICAgICAgICBkZXYtPmlycSAgICAgICAgID0gY2FyZC0+aXJxOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvZWVwcm9tLmMgYi9kcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoOWsvZWVwcm9tLmMKaW5kZXggOTcxZDc3MDcyMmNmLi4yYWMwNTQ4NjQy NGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9lZXByb20uYwor KysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvZWVwcm9tLmMKQEAgLTQwOCwxMCAr NDA4LDkgQEAgdm9pZCBhdGg5a19od19nZXRfZ2Fpbl9ib3VuZGFyaWVzX3BkYWRjcyhzdHJ1Y3Qg YXRoX2h3ICphaCwKIAogCWlmIChtYXRjaCkgewogCQlpZiAoQVJfU1JFVl85Mjg3KGFoKSkgewot CQkJLyogRklYTUU6IGFycmF5IG92ZXJydW4/ICovCiAJCQlmb3IgKGkgPSAwOyBpIDwgbnVtWHBk R2FpbnM7IGkrKykgewogCQkJCW1pblB3clQ0W2ldID0gZGF0YV85Mjg3W2lkeExdLnB3clBkZ1tp XVswXTsKLQkJCQltYXhQd3JUNFtpXSA9IGRhdGFfOTI4N1tpZHhMXS5wd3JQZGdbaV1bNF07CisJ CQkJbWF4UHdyVDRbaV0gPSBkYXRhXzkyODdbaWR4TF0ucHdyUGRnW2ldW2ludGVyY2VwdHMgLSAx XTsKIAkJCQlhdGg5a19od19maWxsX3ZwZF90YWJsZShtaW5Qd3JUNFtpXSwgbWF4UHdyVDRbaV0s CiAJCQkJCQlkYXRhXzkyODdbaWR4TF0ucHdyUGRnW2ldLAogCQkJCQkJZGF0YV85Mjg3W2lkeExd LnZwZFBkZ1tpXSwKQEAgLTQyMSw3ICs0MjAsNyBAQCB2b2lkIGF0aDlrX2h3X2dldF9nYWluX2Jv dW5kYXJpZXNfcGRhZGNzKHN0cnVjdCBhdGhfaHcgKmFoLAogCQl9IGVsc2UgaWYgKGVlcHJvbV80 aykgewogCQkJZm9yIChpID0gMDsgaSA8IG51bVhwZEdhaW5zOyBpKyspIHsKIAkJCQltaW5Qd3JU NFtpXSA9IGRhdGFfNGtbaWR4TF0ucHdyUGRnW2ldWzBdOwotCQkJCW1heFB3clQ0W2ldID0gZGF0 YV80a1tpZHhMXS5wd3JQZGdbaV1bNF07CisJCQkJbWF4UHdyVDRbaV0gPSBkYXRhXzRrW2lkeExd LnB3clBkZ1tpXVtpbnRlcmNlcHRzIC0gMV07CiAJCQkJYXRoOWtfaHdfZmlsbF92cGRfdGFibGUo bWluUHdyVDRbaV0sIG1heFB3clQ0W2ldLAogCQkJCQkJZGF0YV80a1tpZHhMXS5wd3JQZGdbaV0s CiAJCQkJCQlkYXRhXzRrW2lkeExdLnZwZFBkZ1tpXSwKQEAgLTQzMSw3ICs0MzAsNyBAQCB2b2lk IGF0aDlrX2h3X2dldF9nYWluX2JvdW5kYXJpZXNfcGRhZGNzKHN0cnVjdCBhdGhfaHcgKmFoLAog CQl9IGVsc2UgewogCQkJZm9yIChpID0gMDsgaSA8IG51bVhwZEdhaW5zOyBpKyspIHsKIAkJCQlt aW5Qd3JUNFtpXSA9IGRhdGFfZGVmW2lkeExdLnB3clBkZ1tpXVswXTsKLQkJCQltYXhQd3JUNFtp XSA9IGRhdGFfZGVmW2lkeExdLnB3clBkZ1tpXVs0XTsKKwkJCQltYXhQd3JUNFtpXSA9IGRhdGFf ZGVmW2lkeExdLnB3clBkZ1tpXVtpbnRlcmNlcHRzIC0gMV07CiAJCQkJYXRoOWtfaHdfZmlsbF92 cGRfdGFibGUobWluUHdyVDRbaV0sIG1heFB3clQ0W2ldLAogCQkJCQkJZGF0YV9kZWZbaWR4TF0u cHdyUGRnW2ldLAogCQkJCQkJZGF0YV9kZWZbaWR4TF0udnBkUGRnW2ldLApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvd2lyZWxlc3MvbXdpZmlleC9zdGFfaW9jdGwuYyBiL2RyaXZlcnMvbmV0L3dp cmVsZXNzL213aWZpZXgvc3RhX2lvY3RsLmMKaW5kZXggNTM2YzE0YWE3MWYzLi5jNzM0NzA1Njll NmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL213aWZpZXgvc3RhX2lvY3RsLmMK KysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbXdpZmlleC9zdGFfaW9jdGwuYwpAQCAtMzA4LDYg KzMwOCw3IEBAIGludCBtd2lmaWV4X2Jzc19zdGFydChzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpw cml2LCBzdHJ1Y3QgY2ZnODAyMTFfYnNzICpic3MsCiAJCQlkZXZfZXJyKGFkYXB0ZXItPmRldiwK IAkJCQkiQXR0ZW1wdCB0byByZWNvbm5lY3Qgb24gY3NhIGNsb3NlZCBjaGFuKCVkKVxuIiwKIAkJ CQlic3NfZGVzYy0+Y2hhbm5lbCk7CisJCQlyZXQgPSAtMTsKIAkJCWdvdG8gZG9uZTsKIAkJfQog CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyODAwdXNiLmMgYi9k cml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyODAwdXNiLmMKaW5kZXggODY5NGRkZGNjZTlh Li5hNzY5NmVmNDZiZTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9y dDI4MDB1c2IuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyODAwdXNiLmMK QEAgLTEwMjIsNiArMTAyMiw3IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydDI4MDB1 c2JfZGV2aWNlX3RhYmxlW10gPSB7CiAJeyBVU0JfREVWSUNFKDB4MDQxMSwgMHgwMWEyKSB9LAog CXsgVVNCX0RFVklDRSgweDA0MTEsIDB4MDFlZSkgfSwKIAl7IFVTQl9ERVZJQ0UoMHgwNDExLCAw eDAxYTgpIH0sCisJeyBVU0JfREVWSUNFKDB4MDQxMSwgMHgwMWZkKSB9LAogCS8qIENvcmVnYSAq LwogCXsgVVNCX0RFVklDRSgweDA3YWEsIDB4MDAyZikgfSwKIAl7IFVTQl9ERVZJQ0UoMHgwN2Fh LCAweDAwM2MpIH0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL29mL29mX3Jlc2VydmVkX21lbS5jIGIv ZHJpdmVycy9vZi9vZl9yZXNlcnZlZF9tZW0uYwppbmRleCA4NmYyODRmMDk2MGUuLjg0OGYzMmMx NWRlOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9vZi9vZl9yZXNlcnZlZF9tZW0uYworKysgYi9kcml2 ZXJzL29mL29mX3Jlc2VydmVkX21lbS5jCkBAIC0zMSwxMSArMzEsMTMgQEAgaW50IF9faW5pdCBf X3dlYWsgZWFybHlfaW5pdF9kdF9hbGxvY19yZXNlcnZlZF9tZW1vcnlfYXJjaChwaHlzX2FkZHJf dCBzaXplLAogCXBoeXNfYWRkcl90IGFsaWduLCBwaHlzX2FkZHJfdCBzdGFydCwgcGh5c19hZGRy X3QgZW5kLCBib29sIG5vbWFwLAogCXBoeXNfYWRkcl90ICpyZXNfYmFzZSkKIHsKKwlwaHlzX2Fk ZHJfdCBiYXNlOwogCS8qCiAJICogV2UgdXNlIF9fbWVtYmxvY2tfYWxsb2NfYmFzZSgpIGJlY2F1 c2UgbWVtYmxvY2tfYWxsb2NfYmFzZSgpCiAJICogcGFuaWMoKXMgb24gYWxsb2NhdGlvbiBmYWls dXJlLgogCSAqLwotCXBoeXNfYWRkcl90IGJhc2UgPSBfX21lbWJsb2NrX2FsbG9jX2Jhc2Uoc2l6 ZSwgYWxpZ24sIGVuZCk7CisJZW5kID0gIWVuZCA/IE1FTUJMT0NLX0FMTE9DX0FOWVdIRVJFIDog ZW5kOworCWJhc2UgPSBfX21lbWJsb2NrX2FsbG9jX2Jhc2Uoc2l6ZSwgYWxpZ24sIGVuZCk7CiAJ aWYgKCFiYXNlKQogCQlyZXR1cm4gLUVOT01FTTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kv aG9zdC9wY2ktaW14Ni5jIGIvZHJpdmVycy9wY2kvaG9zdC9wY2ktaW14Ni5jCmluZGV4IDcyY2Q5 MjNlNGFiMy4uMGRkY2FjMWI2ODEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9ob3N0L3BjaS1p bXg2LmMKKysrIGIvZHJpdmVycy9wY2kvaG9zdC9wY2ktaW14Ni5jCkBAIC0yOTgsMjEgKzI5OCwz MyBAQCBzdGF0aWMgdm9pZCBpbXg2X3BjaWVfaW5pdF9waHkoc3RydWN0IHBjaWVfcG9ydCAqcHAp CiAKIHN0YXRpYyBpbnQgaW14Nl9wY2llX3dhaXRfZm9yX2xpbmsoc3RydWN0IHBjaWVfcG9ydCAq cHApCiB7Ci0JaW50IGNvdW50ID0gMjAwOworCXVuc2lnbmVkIGludCByZXRyaWVzOwogCi0Jd2hp bGUgKCFkd19wY2llX2xpbmtfdXAocHApKSB7Ci0JCXVzbGVlcF9yYW5nZSgxMDAsIDEwMDApOwot CQlpZiAoLS1jb3VudCkKLQkJCWNvbnRpbnVlOwotCi0JCWRldl9lcnIocHAtPmRldiwgInBoeSBs aW5rIG5ldmVyIGNhbWUgdXBcbiIpOwotCQlkZXZfZGJnKHBwLT5kZXYsICJERUJVR19SMDogMHgl MDh4LCBERUJVR19SMTogMHglMDh4XG4iLAotCQkJcmVhZGwocHAtPmRiaV9iYXNlICsgUENJRV9Q SFlfREVCVUdfUjApLAotCQkJcmVhZGwocHAtPmRiaV9iYXNlICsgUENJRV9QSFlfREVCVUdfUjEp KTsKLQkJcmV0dXJuIC1FSU5WQUw7CisJLyoKKwkgKiBUZXN0IGlmIHRoZSBQSFkgcmVwb3J0cyB0 aGF0IHRoZSBsaW5rIGlzIHVwIGFuZCBhbHNvIHRoYXQgdGhlIExUU1NNCisJICogdHJhaW5pbmcg ZmluaXNoZWQuIFRoZXJlIGFyZSB0aHJlZSBwb3NzaWJsZSBzdGF0ZXMgb2YgdGhlIGxpbmsgd2hl bgorCSAqIHRoaXMgY29kZSBpcyBjYWxsZWQ6CisJICogMSkgVGhlIGxpbmsgaXMgRE9XTiAodW5s aWtlbHkpCisJICogICAgVGhlIGxpbmsgZGlkbid0IGNvbWUgdXAgeWV0IGZvciBzb21lIHJlYXNv bi4gVGhpcyB1c3VhbGx5IG1lYW5zCisJICogICAgd2UgaGF2ZSBhIHJlYWwgcHJvYmxlbSBzb21l d2hlcmUsIGlmIGl0IGhhcHBlbnMgd2l0aCBhIHBlcmlwaGVyYWwKKwkgKiAgICBjb25uZWN0ZWQu IFRoaXMgc3RhdGUgY2FsbHMgZm9yIGluc3BlY3Rpb24gb2YgdGhlIERFQlVHIHJlZ2lzdGVycy4K KwkgKiAyKSBUaGUgbGluayBpcyBVUCwgYnV0IHN0aWxsIGluIExUU1NNIHRyYWluaW5nCisJICog ICAgV2FpdCBmb3IgdGhlIHRyYWluaW5nIHRvIGZpbmlzaCwgd2hpY2ggc2hvdWxkIHRha2UgYSB2 ZXJ5IHNob3J0CisJICogICAgdGltZS4gSWYgdGhlIHRyYWluaW5nIGRvZXMgbm90IGZpbmlzaCwg d2UgaGF2ZSBhIHByb2JsZW0gYW5kIHdlCisJICogICAgbmVlZCB0byBpbnNwZWN0IHRoZSBERUJV RyByZWdpc3RlcnMuIElmIHRoZSB0cmFpbmluZyBkb2VzIGZpbmlzaCwKKwkgKiAgICB0aGUgbGlu ayBpcyB1cCBhbmQgb3BlcmF0aW5nIGNvcnJlY3RseS4KKwkgKiAzKSBUaGUgbGluayBpcyBVUCBh bmQgbm8gbG9uZ2VyIGluIExUU1NNIHRyYWluaW5nCisJICogICAgVGhlIGxpbmsgaXMgdXAgYW5k IG9wZXJhdGluZyBjb3JyZWN0bHkuCisJICovCisJZm9yIChyZXRyaWVzID0gMDsgcmV0cmllcyA8 IDIwMDsgcmV0cmllcysrKSB7CisJCXUzMiByZWcgPSByZWFkbChwcC0+ZGJpX2Jhc2UgKyBQQ0lF X1BIWV9ERUJVR19SMSk7CisJCWlmICgocmVnICYgUENJRV9QSFlfREVCVUdfUjFfWE1MSF9MSU5L X1VQKSAmJgorCQkgICAgIShyZWcgJiBQQ0lFX1BIWV9ERUJVR19SMV9YTUxIX0xJTktfSU5fVFJB SU5JTkcpKQorCQkJcmV0dXJuIDA7CisJCXVzbGVlcF9yYW5nZSgxMDAwLCAyMDAwKTsKIAl9CiAK LQlyZXR1cm4gMDsKKwlyZXR1cm4gLUVJTlZBTDsKIH0KIAogc3RhdGljIGlycXJldHVybl90IGlt eDZfcGNpZV9tc2lfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCkBAIC0zNDMsOCArMzU1LDEw IEBAIHN0YXRpYyBpbnQgaW14Nl9wY2llX3N0YXJ0X2xpbmsoc3RydWN0IHBjaWVfcG9ydCAqcHAp CiAJCQlJTVg2UV9HUFIxMl9QQ0lFX0NUTF8yLCAxIDw8IDEwKTsKIAogCXJldCA9IGlteDZfcGNp ZV93YWl0X2Zvcl9saW5rKHBwKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OworCWlmIChyZXQp IHsKKwkJZGV2X2luZm8ocHAtPmRldiwgIkxpbmsgbmV2ZXIgY2FtZSB1cFxuIik7CisJCWdvdG8g ZXJyX3Jlc2V0X3BoeTsKKwl9CiAKIAkvKiBBbGxvdyBHZW4yIG1vZGUgYWZ0ZXIgdGhlIGxpbmsg aXMgdXAuICovCiAJdG1wID0gcmVhZGwocHAtPmRiaV9iYXNlICsgUENJRV9SQ19MQ1IpOwpAQCAt Mzc3LDEyICszOTEsMjEgQEAgc3RhdGljIGludCBpbXg2X3BjaWVfc3RhcnRfbGluayhzdHJ1Y3Qg cGNpZV9wb3J0ICpwcCkKIAogCWlmIChyZXQpIHsKIAkJZGV2X2VycihwcC0+ZGV2LCAiRmFpbGVk IHRvIGJyaW5nIGxpbmsgdXAhXG4iKTsKKwkJZ290byBlcnJfcmVzZXRfcGh5OwogCX0gZWxzZSB7 CiAJCXRtcCA9IHJlYWRsKHBwLT5kYmlfYmFzZSArIDB4ODApOwogCQlkZXZfZGJnKHBwLT5kZXYs ICJMaW5rIHVwLCBHZW49JWlcbiIsICh0bXAgPj4gMTYpICYgMHhmKTsKIAl9CiAKIAlyZXR1cm4g cmV0OworCitlcnJfcmVzZXRfcGh5OgorCWRldl9kYmcocHAtPmRldiwgIlBIWSBERUJVR19SMD0w eCUwOHggREVCVUdfUjE9MHglMDh4XG4iLAorCQlyZWFkbChwcC0+ZGJpX2Jhc2UgKyBQQ0lFX1BI WV9ERUJVR19SMCksCisJCXJlYWRsKHBwLT5kYmlfYmFzZSArIFBDSUVfUEhZX0RFQlVHX1IxKSk7 CisJaW14Nl9wY2llX3Jlc2V0X3BoeShwcCk7CisKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMg dm9pZCBpbXg2X3BjaWVfaG9zdF9pbml0KHN0cnVjdCBwY2llX3BvcnQgKnBwKQpAQCAtNDIwLDcg KzQ0Myw3IEBAIHN0YXRpYyB2b2lkIGlteDZfcGNpZV9yZXNldF9waHkoc3RydWN0IHBjaWVfcG9y dCAqcHApCiAKIHN0YXRpYyBpbnQgaW14Nl9wY2llX2xpbmtfdXAoc3RydWN0IHBjaWVfcG9ydCAq cHApCiB7Ci0JdTMyIHJjLCBkZWJ1Z19yMCwgcnhfdmFsaWQ7CisJdTMyIHJjOwogCWludCBjb3Vu dCA9IDU7CiAKIAkvKgpAQCAtNDU0LDI2ICs0NzcsNiBAQCBzdGF0aWMgaW50IGlteDZfcGNpZV9s aW5rX3VwKHN0cnVjdCBwY2llX3BvcnQgKnBwKQogCQkgKi8KIAkJdXNsZWVwX3JhbmdlKDEwMDAs IDIwMDApOwogCX0KLQkvKgotCSAqIEZyb20gTDAsIGluaXRpYXRlIE1BQyBlbnRyeSB0byBnZW4y IGlmIEVQL1JDIHN1cHBvcnRzIGdlbjIuCi0JICogV2FpdCAybXMgKExUU1NNIHRpbWVvdXQgaXMg MjRtcywgUEhZIGxvY2sgaXMgfjV1cyBpbiBnZW4yKS4KLQkgKiBJZiAoTUFDL0xUU1NNLnN0YXRl ID09IFJlY292ZXJ5LlJjdnJMb2NrKQotCSAqICYmIChQSFkvcnhfdmFsaWQ9PTApIHRoZW4gcHVs c2UgUEhZL3J4X3Jlc2V0LiBUcmFuc2l0aW9uCi0JICogdG8gZ2VuMiBpcyBzdHVjawotCSAqLwot CXBjaWVfcGh5X3JlYWQocHAtPmRiaV9iYXNlLCBQQ0lFX1BIWV9SWF9BU0lDX09VVCwgJnJ4X3Zh bGlkKTsKLQlkZWJ1Z19yMCA9IHJlYWRsKHBwLT5kYmlfYmFzZSArIFBDSUVfUEhZX0RFQlVHX1Iw KTsKLQotCWlmIChyeF92YWxpZCAmIDB4MDEpCi0JCXJldHVybiAwOwotCi0JaWYgKChkZWJ1Z19y MCAmIDB4M2YpICE9IDB4MGQpCi0JCXJldHVybiAwOwotCi0JZGV2X2VycihwcC0+ZGV2LCAidHJh bnNpdGlvbiB0byBnZW4yIGlzIHN0dWNrLCByZXNldCBQSFkhXG4iKTsKLQlkZXZfZGJnKHBwLT5k ZXYsICJkZWJ1Z19yMD0lMDh4IGRlYnVnX3IxPSUwOHhcbiIsIGRlYnVnX3IwLCByYyk7Ci0KLQlp bXg2X3BjaWVfcmVzZXRfcGh5KHBwKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9wY2kvcHJvYmUuYyBiL2RyaXZlcnMvcGNpL3Byb2JlLmMKaW5kZXggZjA5NjA3OWQxZmEz Li41N2Q4ODRjNzQxMmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3Byb2JlLmMKKysrIGIvZHJp dmVycy9wY2kvcHJvYmUuYwpAQCAtMTc2LDYgKzE3Niw5IEBAIGludCBfX3BjaV9yZWFkX2Jhc2Uo c3RydWN0IHBjaV9kZXYgKmRldiwgZW51bSBwY2lfYmFyX3R5cGUgdHlwZSwKIAlzdHJ1Y3QgcGNp X2J1c19yZWdpb24gcmVnaW9uLCBpbnZlcnRlZF9yZWdpb247CiAJYm9vbCBiYXJfdG9vX2JpZyA9 IGZhbHNlLCBiYXJfdG9vX2hpZ2ggPSBmYWxzZSwgYmFyX2ludmFsaWQgPSBmYWxzZTsKIAorCWlm IChkZXYtPm5vbl9jb21wbGlhbnRfYmFycykKKwkJcmV0dXJuIDA7CisKIAltYXNrID0gdHlwZSA/ IFBDSV9ST01fQUREUkVTU19NQVNLIDogfjA7CiAKIAkvKiBObyBwcmludGtzIHdoaWxlIGRlY29k aW5nIGlzIGRpc2FibGVkISAqLwpAQCAtMTA5Miw2ICsxMDk1LDcgQEAgaW50IHBjaV9jZmdfc3Bh Y2Vfc2l6ZShzdHJ1Y3QgcGNpX2RldiAqZGV2KQogaW50IHBjaV9zZXR1cF9kZXZpY2Uoc3RydWN0 IHBjaV9kZXYgKmRldikKIHsKIAl1MzIgY2xhc3M7CisJdTE2IGNtZDsKIAl1OCBoZHJfdHlwZTsK IAlzdHJ1Y3QgcGNpX3Nsb3QgKnNsb3Q7CiAJaW50IHBvcyA9IDA7CkBAIC0xMTM5LDYgKzExNDMs MTYgQEAgaW50IHBjaV9zZXR1cF9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKmRldikKIAkvKiBkZXZp Y2UgY2xhc3MgbWF5IGJlIGNoYW5nZWQgYWZ0ZXIgZml4dXAgKi8KIAljbGFzcyA9IGRldi0+Y2xh c3MgPj4gODsKIAorCWlmIChkZXYtPm5vbl9jb21wbGlhbnRfYmFycykgeworCQlwY2lfcmVhZF9j b25maWdfd29yZChkZXYsIFBDSV9DT01NQU5ELCAmY21kKTsKKwkJaWYgKGNtZCAmIChQQ0lfQ09N TUFORF9JTyB8IFBDSV9DT01NQU5EX01FTU9SWSkpIHsKKwkJCWRldl9pbmZvKCZkZXYtPmRldiwg ImRldmljZSBoYXMgbm9uLWNvbXBsaWFudCBCQVJzOyBkaXNhYmxpbmcgSU8vTUVNIGRlY29kaW5n XG4iKTsKKwkJCWNtZCAmPSB+UENJX0NPTU1BTkRfSU87CisJCQljbWQgJj0gflBDSV9DT01NQU5E X01FTU9SWTsKKwkJCXBjaV93cml0ZV9jb25maWdfd29yZChkZXYsIFBDSV9DT01NQU5ELCBjbWQp OworCQl9CisJfQorCiAJc3dpdGNoIChkZXYtPmhkcl90eXBlKSB7CQkgICAgLyogaGVhZGVyIHR5 cGUgKi8KIAljYXNlIFBDSV9IRUFERVJfVFlQRV9OT1JNQUw6CQkgICAgLyogc3RhbmRhcmQgaGVh ZGVyICovCiAJCWlmIChjbGFzcyA9PSBQQ0lfQ0xBU1NfQlJJREdFX1BDSSkKZGlmZiAtLWdpdCBh L2RyaXZlcnMvcGxhdGZvcm0veDg2L2lkZWFwYWQtbGFwdG9wLmMgYi9kcml2ZXJzL3BsYXRmb3Jt L3g4Ni9pZGVhcGFkLWxhcHRvcC5jCmluZGV4IDdkYzg1NGNiMjA2My4uNjQwMTVjYzk3OGIxIDEw MDY0NAotLS0gYS9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9pZGVhcGFkLWxhcHRvcC5jCisrKyBiL2Ry aXZlcnMvcGxhdGZvcm0veDg2L2lkZWFwYWQtbGFwdG9wLmMKQEAgLTgzOSw2ICs4MzksMjAgQEAg c3RhdGljIHN0cnVjdCBkbWlfc3lzdGVtX2lkIG5vX2h3X3Jma2lsbF9saXN0W10gPSB7CiAJCX0s CiAJfSwKIAl7CisJCS5pZGVudCA9ICJMZW5vdm8gaWRlYXBhZCBZNzAwLTE1SVNLIiwKKwkJLm1h dGNoZXMgPSB7CisJCQlETUlfTUFUQ0goRE1JX1NZU19WRU5ET1IsICJMRU5PVk8iKSwKKwkJCURN SV9NQVRDSChETUlfUFJPRFVDVF9WRVJTSU9OLCAiTGVub3ZvIGlkZWFwYWQgWTcwMC0xNUlTSyIp LAorCQl9LAorCX0sCisJeworCQkuaWRlbnQgPSAiTGVub3ZvIGlkZWFwYWQgWTcwMCBUb3VjaC0x NUlTSyIsCisJCS5tYXRjaGVzID0geworCQkJRE1JX01BVENIKERNSV9TWVNfVkVORE9SLCAiTEVO T1ZPIiksCisJCQlETUlfTUFUQ0goRE1JX1BST0RVQ1RfVkVSU0lPTiwgIkxlbm92byBpZGVhcGFk IFk3MDAgVG91Y2gtMTVJU0siKSwKKwkJfSwKKwl9LAorCXsKIAkJLmlkZW50ID0gIkxlbm92byBp ZGVhcGFkIFk3MDAtMTdJU0siLAogCQkubWF0Y2hlcyA9IHsKIAkJCURNSV9NQVRDSChETUlfU1lT X1ZFTkRPUiwgIkxFTk9WTyIpLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9yZWd1bGF0b3IvczVtODc2 Ny5jIGIvZHJpdmVycy9yZWd1bGF0b3IvczVtODc2Ny5jCmluZGV4IGM3OWFmOTQzYTVjMC4uOTll MWJkMDcxZWYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3JlZ3VsYXRvci9zNW04NzY3LmMKKysrIGIv ZHJpdmVycy9yZWd1bGF0b3IvczVtODc2Ny5jCkBAIC0yMDIsOSArMjAyLDEwIEBAIHN0YXRpYyBp bnQgczVtODc2N19nZXRfcmVnaXN0ZXIoc3RydWN0IHM1bTg3NjdfaW5mbyAqczVtODc2NywgaW50 IHJlZ19pZCwKIAkJfQogCX0KIAotCWlmIChpIDwgczVtODc2Ny0+bnVtX3JlZ3VsYXRvcnMpCi0J CSplbmFibGVfY3RybCA9Ci0JCXM1bTg3Njdfb3Btb2RlX3JlZ1tyZWdfaWRdW21vZGVdIDw8IFM1 TTg3NjdfRU5DVFJMX1NISUZUOworCWlmIChpID49IHM1bTg3NjctPm51bV9yZWd1bGF0b3JzKQor CQlyZXR1cm4gLUVJTlZBTDsKKworCSplbmFibGVfY3RybCA9IHM1bTg3Njdfb3Btb2RlX3JlZ1ty ZWdfaWRdW21vZGVdIDw8IFM1TTg3NjdfRU5DVFJMX1NISUZUOwogCiAJcmV0dXJuIDA7CiB9CkBA IC05MzgsOCArOTM5LDEyIEBAIHN0YXRpYyBpbnQgczVtODc2N19wbWljX3Byb2JlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCQllbHNlCiAJCQkJcmVndWxhdG9yc1tpZF0udnNlbF9t YXNrID0gMHhmZjsKIAotCQkJczVtODc2N19nZXRfcmVnaXN0ZXIoczVtODc2NywgaWQsICZlbmFi bGVfcmVnLAorCQkJcmV0ID0gczVtODc2N19nZXRfcmVnaXN0ZXIoczVtODc2NywgaWQsICZlbmFi bGVfcmVnLAogCQkJCQkgICAgICZlbmFibGVfdmFsKTsKKwkJCWlmIChyZXQpIHsKKwkJCQlkZXZf ZXJyKHM1bTg3NjctPmRldiwgImVycm9yIHJlYWRpbmcgcmVnaXN0ZXJzXG4iKTsKKwkJCQlyZXR1 cm4gcmV0OworCQkJfQogCQkJcmVndWxhdG9yc1tpZF0uZW5hYmxlX3JlZyA9IGVuYWJsZV9yZWc7 CiAJCQlyZWd1bGF0b3JzW2lkXS5lbmFibGVfbWFzayA9IFM1TTg3NjdfRU5DVFJMX01BU0s7CiAJ CQlyZWd1bGF0b3JzW2lkXS5lbmFibGVfdmFsID0gZW5hYmxlX3ZhbDsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvcnRjL3J0Yy1oeW04NTYzLmMgYi9kcml2ZXJzL3J0Yy9ydGMtaHltODU2My5jCmluZGV4 IGI5MzZiYjQwOTZiNS4uMjgwNTg0YjI4MTNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMt aHltODU2My5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1oeW04NTYzLmMKQEAgLTE0NCw3ICsxNDQs NyBAQCBzdGF0aWMgaW50IGh5bTg1NjNfcnRjX3NldF90aW1lKHN0cnVjdCBkZXZpY2UgKmRldiwg c3RydWN0IHJ0Y190aW1lICp0bSkKIAkgKiBpdCBkb2VzIG5vdCBzZWVtIHRvIGNhcnJ5IGl0IG92 ZXIgYSBzdWJzZXF1ZW50IHdyaXRlL3JlYWQuCiAJICogU28gd2UnbGwgbGltaXQgb3Vyc2VsZiB0 byAxMDAgeWVhcnMsIHN0YXJ0aW5nIGF0IDIwMDAgZm9yIG5vdy4KIAkgKi8KLQlidWZbNl0gPSB0 bS0+dG1feWVhciAtIDEwMDsKKwlidWZbNl0gPSBiaW4yYmNkKHRtLT50bV95ZWFyIC0gMTAwKTsK IAogCS8qCiAJICogQ1RMMSBvbmx5IGNvbnRhaW5zIFRFU1QtbW9kZSBiaXRzIGFwYXJ0IGZyb20g c3RvcCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy12cjQxeHguYyBiL2RyaXZlcnMvcnRj L3J0Yy12cjQxeHguYwppbmRleCA4OGM5YzkyZTg5ZmQuLjRiMDk2NmVkNTM5NCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ydGMvcnRjLXZyNDF4eC5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy12cjQxeHgu YwpAQCAtMjcyLDEyICsyNzIsMTMgQEAgc3RhdGljIGlycXJldHVybl90IHJ0Y2xvbmcxX2ludGVy cnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRj X2NsYXNzX29wcyB2cjQxeHhfcnRjX29wcyA9IHsKLQkucmVsZWFzZQk9IHZyNDF4eF9ydGNfcmVs ZWFzZSwKLQkuaW9jdGwJCT0gdnI0MXh4X3J0Y19pb2N0bCwKLQkucmVhZF90aW1lCT0gdnI0MXh4 X3J0Y19yZWFkX3RpbWUsCi0JLnNldF90aW1lCT0gdnI0MXh4X3J0Y19zZXRfdGltZSwKLQkucmVh ZF9hbGFybQk9IHZyNDF4eF9ydGNfcmVhZF9hbGFybSwKLQkuc2V0X2FsYXJtCT0gdnI0MXh4X3J0 Y19zZXRfYWxhcm0sCisJLnJlbGVhc2UJCT0gdnI0MXh4X3J0Y19yZWxlYXNlLAorCS5pb2N0bAkJ CT0gdnI0MXh4X3J0Y19pb2N0bCwKKwkucmVhZF90aW1lCQk9IHZyNDF4eF9ydGNfcmVhZF90aW1l LAorCS5zZXRfdGltZQkJPSB2cjQxeHhfcnRjX3NldF90aW1lLAorCS5yZWFkX2FsYXJtCQk9IHZy NDF4eF9ydGNfcmVhZF9hbGFybSwKKwkuc2V0X2FsYXJtCQk9IHZyNDF4eF9ydGNfc2V0X2FsYXJt LAorCS5hbGFybV9pcnFfZW5hYmxlCT0gdnI0MXh4X3J0Y19hbGFybV9pcnFfZW5hYmxlLAogfTsK IAogc3RhdGljIGludCBydGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2NvbW1zdXAuYyBiL2RyaXZlcnMvc2NzaS9h YWNyYWlkL2NvbW1zdXAuYwppbmRleCBjYWIxOTBhZjYzNDUuLjZiMzJkZGNlZmMxMSAxMDA2NDQK LS0tIGEvZHJpdmVycy9zY3NpL2FhY3JhaWQvY29tbXN1cC5jCisrKyBiL2RyaXZlcnMvc2NzaS9h YWNyYWlkL2NvbW1zdXAuYwpAQCAtODMsOSArODMsMTIgQEAgc3RhdGljIGludCBmaWJfbWFwX2Fs bG9jKHN0cnVjdCBhYWNfZGV2ICpkZXYpCiAKIHZvaWQgYWFjX2ZpYl9tYXBfZnJlZShzdHJ1Y3Qg YWFjX2RldiAqZGV2KQogewotCXBjaV9mcmVlX2NvbnNpc3RlbnQoZGV2LT5wZGV2LAotCSAgZGV2 LT5tYXhfZmliX3NpemUgKiAoZGV2LT5zY3NpX2hvc3RfcHRyLT5jYW5fcXVldWUgKyBBQUNfTlVN X01HVF9GSUIpLAotCSAgZGV2LT5od19maWJfdmEsIGRldi0+aHdfZmliX3BhKTsKKwlpZiAoZGV2 LT5od19maWJfdmEgJiYgZGV2LT5tYXhfZmliX3NpemUpIHsKKwkJcGNpX2ZyZWVfY29uc2lzdGVu dChkZXYtPnBkZXYsCisJCShkZXYtPm1heF9maWJfc2l6ZSAqCisJCShkZXYtPnNjc2lfaG9zdF9w dHItPmNhbl9xdWV1ZSArIEFBQ19OVU1fTUdUX0ZJQikpLAorCQlkZXYtPmh3X2ZpYl92YSwgZGV2 LT5od19maWJfcGEpOworCX0KIAlkZXYtPmh3X2ZpYl92YSA9IE5VTEw7CiAJZGV2LT5od19maWJf cGEgPSAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2JlMmlzY3NpL2JlX21haW4uYyBi L2RyaXZlcnMvc2NzaS9iZTJpc2NzaS9iZV9tYWluLmMKaW5kZXggNWQxM2QxMDlkOWEyLi44MDNm ZDY0ZDA5NjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9iZTJpc2NzaS9iZV9tYWluLmMKKysr IGIvZHJpdmVycy9zY3NpL2JlMmlzY3NpL2JlX21haW4uYwpAQCAtNDQyMCw2ICs0NDIwLDcgQEAg cHV0X3Nob3N0OgogCXNjc2lfaG9zdF9wdXQocGhiYS0+c2hvc3QpOwogZnJlZV9rc2V0OgogCWlz Y3NpX2Jvb3RfZGVzdHJveV9rc2V0KHBoYmEtPmJvb3Rfa3NldCk7CisJcGhiYS0+Ym9vdF9rc2V0 ID0gTlVMTDsKIAlyZXR1cm4gLUVOT01FTTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3Np L2xwZmMvbHBmY19pbml0LmMgYi9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX2luaXQuYwppbmRleCAw NmY5YTViNzllNjYuLjE0NmFiMmFlMTg4NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2xwZmMv bHBmY19pbml0LmMKKysrIGIvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19pbml0LmMKQEAgLTI4MTcs NyArMjgxNyw3IEBAIGxwZmNfb25saW5lKHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKIAl9CiAKIAl2 cG9ydHMgPSBscGZjX2NyZWF0ZV92cG9ydF93b3JrX2FycmF5KHBoYmEpOwotCWlmICh2cG9ydHMg IT0gTlVMTCkKKwlpZiAodnBvcnRzICE9IE5VTEwpIHsKIAkJZm9yIChpID0gMDsgaSA8PSBwaGJh LT5tYXhfdnBvcnRzICYmIHZwb3J0c1tpXSAhPSBOVUxMOyBpKyspIHsKIAkJCXN0cnVjdCBTY3Np X0hvc3QgKnNob3N0OwogCQkJc2hvc3QgPSBscGZjX3Nob3N0X2Zyb21fdnBvcnQodnBvcnRzW2ld KTsKQEAgLTI4MzQsNyArMjgzNCw4IEBAIGxwZmNfb25saW5lKHN0cnVjdCBscGZjX2hiYSAqcGhi YSkKIAkJCX0KIAkJCXNwaW5fdW5sb2NrX2lycShzaG9zdC0+aG9zdF9sb2NrKTsKIAkJfQotCQls cGZjX2Rlc3Ryb3lfdnBvcnRfd29ya19hcnJheShwaGJhLCB2cG9ydHMpOworCX0KKwlscGZjX2Rl c3Ryb3lfdnBvcnRfd29ya19hcnJheShwaGJhLCB2cG9ydHMpOwogCiAJbHBmY191bmJsb2NrX21n bXRfaW8ocGhiYSk7CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2QuYyBi L2RyaXZlcnMvc2NzaS9zZC5jCmluZGV4IDQ4NTZkNTg1ZGQzZS4uOGE5OWQyNDEzNmEwIDEwMDY0 NAotLS0gYS9kcml2ZXJzL3Njc2kvc2QuYworKysgYi9kcml2ZXJzL3Njc2kvc2QuYwpAQCAtNjI3 LDEyICs2MjcsMjUgQEAgc3RhdGljIHZvaWQgc2RfY29uZmlnX2Rpc2NhcmQoc3RydWN0IHNjc2lf ZGlzayAqc2RrcCwgdW5zaWduZWQgaW50IG1vZGUpCiAJdW5zaWduZWQgaW50IGxvZ2ljYWxfYmxv Y2tfc2l6ZSA9IHNka3AtPmRldmljZS0+c2VjdG9yX3NpemU7CiAJdW5zaWduZWQgaW50IG1heF9i bG9ja3MgPSAwOwogCi0JcS0+bGltaXRzLmRpc2NhcmRfemVyb2VzX2RhdGEgPSBzZGtwLT5sYnBy ejsKLQlxLT5saW1pdHMuZGlzY2FyZF9hbGlnbm1lbnQgPSBzZGtwLT51bm1hcF9hbGlnbm1lbnQg KgotCQlsb2dpY2FsX2Jsb2NrX3NpemU7Ci0JcS0+bGltaXRzLmRpc2NhcmRfZ3JhbnVsYXJpdHkg PQotCQltYXgoc2RrcC0+cGh5c2ljYWxfYmxvY2tfc2l6ZSwKLQkJICAgIHNka3AtPnVubWFwX2dy YW51bGFyaXR5ICogbG9naWNhbF9ibG9ja19zaXplKTsKKwlxLT5saW1pdHMuZGlzY2FyZF96ZXJv ZXNfZGF0YSA9IDA7CisKKwkvKgorCSAqIFdoZW4gTEJQUlogaXMgcmVwb3J0ZWQsIGRpc2NhcmQg YWxpZ25tZW50IGFuZCBncmFudWxhcml0eQorCSAqIG11c3QgYmUgZml4ZWQgdG8gdGhlIGxvZ2lj YWwgYmxvY2sgc2l6ZS4gT3RoZXJ3aXNlIHRoZSBibG9jaworCSAqIGxheWVyIHdpbGwgZHJvcCBt aXNhbGlnbmVkIHBvcnRpb25zIG9mIHRoZSByZXF1ZXN0IHdoaWNoIGNhbgorCSAqIGxlYWQgdG8g ZGF0YSBjb3JydXB0aW9uLiBJZiBMQlBSWiBpcyBub3Qgc2V0LCB3ZSBob25vciB0aGUKKwkgKiBk ZXZpY2UgcHJlZmVyZW5jZS4KKwkgKi8KKwlpZiAoc2RrcC0+bGJwcnopIHsKKwkJcS0+bGltaXRz LmRpc2NhcmRfYWxpZ25tZW50ID0gMDsKKwkJcS0+bGltaXRzLmRpc2NhcmRfZ3JhbnVsYXJpdHkg PSBsb2dpY2FsX2Jsb2NrX3NpemU7CisJfSBlbHNlIHsKKwkJcS0+bGltaXRzLmRpc2NhcmRfYWxp Z25tZW50ID0gc2RrcC0+dW5tYXBfYWxpZ25tZW50ICoKKwkJCWxvZ2ljYWxfYmxvY2tfc2l6ZTsK KwkJcS0+bGltaXRzLmRpc2NhcmRfZ3JhbnVsYXJpdHkgPQorCQkJbWF4KHNka3AtPnBoeXNpY2Fs X2Jsb2NrX3NpemUsCisJCQkgICAgc2RrcC0+dW5tYXBfZ3JhbnVsYXJpdHkgKiBsb2dpY2FsX2Js b2NrX3NpemUpOworCX0KIAogCXNka3AtPnByb3Zpc2lvbmluZ19tb2RlID0gbW9kZTsKIApAQCAt NjUxLDExICs2NjQsMTMgQEAgc3RhdGljIHZvaWQgc2RfY29uZmlnX2Rpc2NhcmQoc3RydWN0IHNj c2lfZGlzayAqc2RrcCwgdW5zaWduZWQgaW50IG1vZGUpCiAJY2FzZSBTRF9MQlBfV1MxNjoKIAkJ bWF4X2Jsb2NrcyA9IG1pbl9ub3RfemVybyhzZGtwLT5tYXhfd3NfYmxvY2tzLAogCQkJCQkgICh1 MzIpU0RfTUFYX1dTMTZfQkxPQ0tTKTsKKwkJcS0+bGltaXRzLmRpc2NhcmRfemVyb2VzX2RhdGEg PSBzZGtwLT5sYnByejsKIAkJYnJlYWs7CiAKIAljYXNlIFNEX0xCUF9XUzEwOgogCQltYXhfYmxv Y2tzID0gbWluX25vdF96ZXJvKHNka3AtPm1heF93c19ibG9ja3MsCiAJCQkJCSAgKHUzMilTRF9N QVhfV1MxMF9CTE9DS1MpOworCQlxLT5saW1pdHMuZGlzY2FyZF96ZXJvZXNfZGF0YSA9IHNka3At PmxicHJ6OwogCQlicmVhazsKIAogCWNhc2UgU0RfTEJQX1pFUk86CkBAIC0xMjMwLDE4ICsxMjQ1 LDE5IEBAIHN0YXRpYyBpbnQgc2RfZ2V0Z2VvKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIHN0 cnVjdCBoZF9nZW9tZXRyeSAqZ2VvKQogCXN0cnVjdCBzY3NpX2Rpc2sgKnNka3AgPSBzY3NpX2Rp c2soYmRldi0+YmRfZGlzayk7CiAJc3RydWN0IHNjc2lfZGV2aWNlICpzZHAgPSBzZGtwLT5kZXZp Y2U7CiAJc3RydWN0IFNjc2lfSG9zdCAqaG9zdCA9IHNkcC0+aG9zdDsKKwlzZWN0b3JfdCBjYXBh Y2l0eSA9IGxvZ2ljYWxfdG9fc2VjdG9ycyhzZHAsIHNka3AtPmNhcGFjaXR5KTsKIAlpbnQgZGlz a2luZm9bNF07CiAKIAkvKiBkZWZhdWx0IHRvIG1vc3QgY29tbW9ubHkgdXNlZCB2YWx1ZXMgKi8K LSAgICAgICAgZGlza2luZm9bMF0gPSAweDQwOwkvKiAxIDw8IDYgKi8KLSAgICAgICAJZGlza2lu Zm9bMV0gPSAweDIwOwkvKiAxIDw8IDUgKi8KLSAgICAgICAJZGlza2luZm9bMl0gPSBzZGtwLT5j YXBhY2l0eSA+PiAxMTsKLQkKKwlkaXNraW5mb1swXSA9IDB4NDA7CS8qIDEgPDwgNiAqLworCWRp c2tpbmZvWzFdID0gMHgyMDsJLyogMSA8PCA1ICovCisJZGlza2luZm9bMl0gPSBjYXBhY2l0eSA+ PiAxMTsKKwogCS8qIG92ZXJyaWRlIHdpdGggY2FsY3VsYXRlZCwgZXh0ZW5kZWQgZGVmYXVsdCwg b3IgZHJpdmVyIHZhbHVlcyAqLwogCWlmIChob3N0LT5ob3N0dC0+Ymlvc19wYXJhbSkKLQkJaG9z dC0+aG9zdHQtPmJpb3NfcGFyYW0oc2RwLCBiZGV2LCBzZGtwLT5jYXBhY2l0eSwgZGlza2luZm8p OworCQlob3N0LT5ob3N0dC0+Ymlvc19wYXJhbShzZHAsIGJkZXYsIGNhcGFjaXR5LCBkaXNraW5m byk7CiAJZWxzZQotCQlzY3NpY2FtX2Jpb3NfcGFyYW0oYmRldiwgc2RrcC0+Y2FwYWNpdHksIGRp c2tpbmZvKTsKKwkJc2NzaWNhbV9iaW9zX3BhcmFtKGJkZXYsIGNhcGFjaXR5LCBkaXNraW5mbyk7 CiAKIAlnZW8tPmhlYWRzID0gZGlza2luZm9bMF07CiAJZ2VvLT5zZWN0b3JzID0gZGlza2luZm9b MV07CkBAIC0yMjIwLDE0ICsyMjM2LDYgQEAgZ290X2RhdGE6CiAKIAlzZHAtPnVzZV8xNl9mb3Jf cncgPSAoc2RrcC0+Y2FwYWNpdHkgPiAweGZmZmZmZmZmKTsKIAotCS8qIFJlc2NhbGUgY2FwYWNp dHkgdG8gNTEyLWJ5dGUgdW5pdHMgKi8KLQlpZiAoc2VjdG9yX3NpemUgPT0gNDA5NikKLQkJc2Rr cC0+Y2FwYWNpdHkgPDw9IDM7Ci0JZWxzZSBpZiAoc2VjdG9yX3NpemUgPT0gMjA0OCkKLQkJc2Rr cC0+Y2FwYWNpdHkgPDw9IDI7Ci0JZWxzZSBpZiAoc2VjdG9yX3NpemUgPT0gMTAyNCkKLQkJc2Rr cC0+Y2FwYWNpdHkgPDw9IDE7Ci0KIAlibGtfcXVldWVfcGh5c2ljYWxfYmxvY2tfc2l6ZShzZHAt PnJlcXVlc3RfcXVldWUsCiAJCQkJICAgICAgc2RrcC0+cGh5c2ljYWxfYmxvY2tfc2l6ZSk7CiAJ c2RrcC0+ZGV2aWNlLT5zZWN0b3Jfc2l6ZSA9IHNlY3Rvcl9zaXplOwpAQCAtMjU3MiwxMiArMjU4 MCwxMiBAQCBzdGF0aWMgdm9pZCBzZF9yZWFkX2Jsb2NrX2xpbWl0cyhzdHJ1Y3Qgc2NzaV9kaXNr ICpzZGtwKQogCiAJCX0gZWxzZSB7CS8qIExCUCBWUEQgcGFnZSB0ZWxscyB1cyB3aGF0IHRvIHVz ZSAqLwogCi0JCQlpZiAoc2RrcC0+bGJwdSAmJiBzZGtwLT5tYXhfdW5tYXBfYmxvY2tzKQotCQkJ CXNkX2NvbmZpZ19kaXNjYXJkKHNka3AsIFNEX0xCUF9VTk1BUCk7Ci0JCQllbHNlIGlmIChzZGtw LT5sYnB3cykKKwkJCWlmIChzZGtwLT5sYnB3cykKIAkJCQlzZF9jb25maWdfZGlzY2FyZChzZGtw LCBTRF9MQlBfV1MxNik7CiAJCQllbHNlIGlmIChzZGtwLT5sYnB3czEwKQogCQkJCXNkX2NvbmZp Z19kaXNjYXJkKHNka3AsIFNEX0xCUF9XUzEwKTsKKwkJCWVsc2UgaWYgKHNka3AtPmxicHUgJiYg c2RrcC0+bWF4X3VubWFwX2Jsb2NrcykKKwkJCQlzZF9jb25maWdfZGlzY2FyZChzZGtwLCBTRF9M QlBfVU5NQVApOwogCQkJZWxzZQogCQkJCXNkX2NvbmZpZ19kaXNjYXJkKHNka3AsIFNEX0xCUF9E SVNBQkxFKTsKIAkJfQpAQCAtMjc1MSw3ICsyNzU5LDcgQEAgc3RhdGljIGludCBzZF9yZXZhbGlk YXRlX2Rpc2soc3RydWN0IGdlbmRpc2sgKmRpc2spCiAKIAlibGtfcXVldWVfZmx1c2goc2RrcC0+ ZGlzay0+cXVldWUsIGZsdXNoKTsKIAotCXNldF9jYXBhY2l0eShkaXNrLCBzZGtwLT5jYXBhY2l0 eSk7CisJc2V0X2NhcGFjaXR5KGRpc2ssIGxvZ2ljYWxfdG9fc2VjdG9ycyhzZHAsIHNka3AtPmNh cGFjaXR5KSk7CiAJc2RfY29uZmlnX3dyaXRlX3NhbWUoc2RrcCk7CiAJa2ZyZWUoYnVmZmVyKTsK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3NkLmggYi9kcml2ZXJzL3Njc2kvc2QuaAppbmRl eCA2MjA4NzFlZmJmMGEuLjNiMzg3NjY5NjYwMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3Nk LmgKKysrIGIvZHJpdmVycy9zY3NpL3NkLmgKQEAgLTYzLDcgKzYzLDcgQEAgc3RydWN0IHNjc2lf ZGlzayB7CiAJc3RydWN0IGRldmljZQlkZXY7CiAJc3RydWN0IGdlbmRpc2sJKmRpc2s7CiAJYXRv bWljX3QJb3BlbmVyczsKLQlzZWN0b3JfdAljYXBhY2l0eTsJLyogc2l6ZSBpbiA1MTItYnl0ZSBz ZWN0b3JzICovCisJc2VjdG9yX3QJY2FwYWNpdHk7CS8qIHNpemUgaW4gbG9naWNhbCBibG9ja3Mg Ki8KIAl1MzIJCW1heF93c19ibG9ja3M7CiAJdTMyCQltYXhfdW5tYXBfYmxvY2tzOwogCXUzMgkJ dW5tYXBfZ3JhbnVsYXJpdHk7CkBAIC0xNDIsNiArMTQyLDExIEBAIHN0YXRpYyBpbmxpbmUgaW50 IHNjc2lfbWVkaXVtX2FjY2Vzc19jb21tYW5kKHN0cnVjdCBzY3NpX2NtbmQgKnNjbWQpCiAJcmV0 dXJuIDA7CiB9CiAKK3N0YXRpYyBpbmxpbmUgc2VjdG9yX3QgbG9naWNhbF90b19zZWN0b3JzKHN0 cnVjdCBzY3NpX2RldmljZSAqc2Rldiwgc2VjdG9yX3QgYmxvY2tzKQoreworCXJldHVybiBibG9j a3MgPDwgKGlsb2cyKHNkZXYtPnNlY3Rvcl9zaXplKSAtIDkpOworfQorCiAvKgogICogQSBESUYt Y2FwYWJsZSB0YXJnZXQgZGV2aWNlIGNhbiBiZSBmb3JtYXR0ZWQgd2l0aCBkaWZmZXJlbnQKICAq IHByb3RlY3Rpb24gc2NoZW1lcy4gIEN1cnJlbnRseSAwIHRocm91Z2ggMyBhcmUgZGVmaW5lZDoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zZy5jIGIvZHJpdmVycy9zY3NpL3NnLmMKaW5kZXgg NjM1YjE0MWM2YzA1Li5lMWE2YWJlODk5ZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9zZy5j CisrKyBiL2RyaXZlcnMvc2NzaS9zZy5jCkBAIC02MzMsNyArNjMzLDggQEAgc2dfd3JpdGUoc3Ry dWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCwgbG9m Zl90ICogcHBvcykKIAllbHNlCiAJCWhwLT5keGZlcl9kaXJlY3Rpb24gPSAobXhzaXplID4gMCkg PyBTR19EWEZFUl9GUk9NX0RFViA6IFNHX0RYRkVSX05PTkU7CiAJaHAtPmR4ZmVyX2xlbiA9IG14 c2l6ZTsKLQlpZiAoaHAtPmR4ZmVyX2RpcmVjdGlvbiA9PSBTR19EWEZFUl9UT19ERVYpCisJaWYg KChocC0+ZHhmZXJfZGlyZWN0aW9uID09IFNHX0RYRkVSX1RPX0RFVikgfHwKKwkgICAgKGhwLT5k eGZlcl9kaXJlY3Rpb24gPT0gU0dfRFhGRVJfVE9fRlJPTV9ERVYpKQogCQlocC0+ZHhmZXJwID0g KGNoYXIgX191c2VyICopYnVmICsgY21kX3NpemU7CiAJZWxzZQogCQlocC0+ZHhmZXJwID0gTlVM TDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy91c2JpcC91c2JpcF9jb21tb24uYyBiL2Ry aXZlcnMvc3RhZ2luZy91c2JpcC91c2JpcF9jb21tb24uYwppbmRleCBmYWNhYWYwMDNmMTkuLmU0 MGRhNzc1OWEwZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3VzYmlwL3VzYmlwX2NvbW1v bi5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy91c2JpcC91c2JpcF9jb21tb24uYwpAQCAtNzQxLDYg Kzc0MSwxNyBAQCBpbnQgdXNiaXBfcmVjdl94YnVmZihzdHJ1Y3QgdXNiaXBfZGV2aWNlICp1ZCwg c3RydWN0IHVyYiAqdXJiKQogCWlmICghKHNpemUgPiAwKSkKIAkJcmV0dXJuIDA7CiAKKwlpZiAo c2l6ZSA+IHVyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCkgeworCQkvKiBzaG91bGQgbm90IGhh cHBlbiwgcHJvYmFibHkgbWFsaWNpb3VzIHBhY2tldCAqLworCQlpZiAodWQtPnNpZGUgPT0gVVNC SVBfU1RVQikgeworCQkJdXNiaXBfZXZlbnRfYWRkKHVkLCBTREVWX0VWRU5UX0VSUk9SX1RDUCk7 CisJCQlyZXR1cm4gMDsKKwkJfSBlbHNlIHsKKwkJCXVzYmlwX2V2ZW50X2FkZCh1ZCwgVkRFVl9F VkVOVF9FUlJPUl9UQ1ApOworCQkJcmV0dXJuIC1FUElQRTsKKwkJfQorCX0KKwogCXJldCA9IHVz YmlwX3JlY3YodWQtPnRjcF9zb2NrZXQsIHVyYi0+dHJhbnNmZXJfYnVmZmVyLCBzaXplKTsKIAlp ZiAocmV0ICE9IHNpemUpIHsKIAkJZGV2X2VycigmdXJiLT5kZXYtPmRldiwgInJlY3YgeGJ1Ziwg JWRcbiIsIHJldCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3RhcmdldC90YXJnZXRfY29yZV90cmFu c3BvcnQuYyBiL2RyaXZlcnMvdGFyZ2V0L3RhcmdldF9jb3JlX3RyYW5zcG9ydC5jCmluZGV4IGY3 ODdlNTNlMTJlOC4uMzNmYzU4ZDUxNGQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RhcmdldC90YXJn ZXRfY29yZV90cmFuc3BvcnQuYworKysgYi9kcml2ZXJzL3RhcmdldC90YXJnZXRfY29yZV90cmFu c3BvcnQuYwpAQCAtMjU0MCw4ICsyNTQwLDYgQEAgdm9pZCB0YXJnZXRfd2FpdF9mb3Jfc2Vzc19j bWRzKHN0cnVjdCBzZV9zZXNzaW9uICpzZV9zZXNzKQogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9z YWZlKHNlX2NtZCwgdG1wX2NtZCwKIAkJCQkmc2Vfc2Vzcy0+c2Vzc193YWl0X2xpc3QsIHNlX2Nt ZF9saXN0KSB7Ci0JCWxpc3RfZGVsX2luaXQoJnNlX2NtZC0+c2VfY21kX2xpc3QpOwotCiAJCXBy X2RlYnVnKCJXYWl0aW5nIGZvciBzZV9jbWQ6ICVwIHRfc3RhdGU6ICVkLCBmYWJyaWMgc3RhdGU6 IgogCQkJIiAlZFxuIiwgc2VfY21kLCBzZV9jbWQtPnRfc3RhdGUsCiAJCQlzZV9jbWQtPnNlX3Rm by0+Z2V0X2NtZF9zdGF0ZShzZV9jbWQpKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdHR5L3Nlcmlh bC84MjUwLzgyNTBfY29yZS5jIGIvZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvODI1MF9jb3JlLmMK aW5kZXggN2E5MWM2ZDFlYjdkLi4wN2YxMzRjMTkxYjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdHR5 L3NlcmlhbC84MjUwLzgyNTBfY29yZS5jCisrKyBiL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLzgy NTBfY29yZS5jCkBAIC02ODYsMjIgKzY4NiwxNiBAQCBzdGF0aWMgaW50IHNpemVfZmlmbyhzdHJ1 Y3QgdWFydF84MjUwX3BvcnQgKnVwKQogICovCiBzdGF0aWMgdW5zaWduZWQgaW50IGF1dG9jb25m aWdfcmVhZF9kaXZpc29yX2lkKHN0cnVjdCB1YXJ0XzgyNTBfcG9ydCAqcCkKIHsKLQl1bnNpZ25l ZCBjaGFyIG9sZF9kbGwsIG9sZF9kbG0sIG9sZF9sY3I7Ci0JdW5zaWduZWQgaW50IGlkOworCXVu c2lnbmVkIGNoYXIgb2xkX2xjcjsKKwl1bnNpZ25lZCBpbnQgaWQsIG9sZF9kbDsKIAogCW9sZF9s Y3IgPSBzZXJpYWxfaW4ocCwgVUFSVF9MQ1IpOwogCXNlcmlhbF9vdXQocCwgVUFSVF9MQ1IsIFVB UlRfTENSX0NPTkZfTU9ERV9BKTsKKwlvbGRfZGwgPSBzZXJpYWxfZGxfcmVhZChwKTsKKwlzZXJp YWxfZGxfd3JpdGUocCwgMCk7CisJaWQgPSBzZXJpYWxfZGxfcmVhZChwKTsKKwlzZXJpYWxfZGxf d3JpdGUocCwgb2xkX2RsKTsKIAotCW9sZF9kbGwgPSBzZXJpYWxfaW4ocCwgVUFSVF9ETEwpOwot CW9sZF9kbG0gPSBzZXJpYWxfaW4ocCwgVUFSVF9ETE0pOwotCi0Jc2VyaWFsX291dChwLCBVQVJU X0RMTCwgMCk7Ci0Jc2VyaWFsX291dChwLCBVQVJUX0RMTSwgMCk7Ci0KLQlpZCA9IHNlcmlhbF9p bihwLCBVQVJUX0RMTCkgfCBzZXJpYWxfaW4ocCwgVUFSVF9ETE0pIDw8IDg7Ci0KLQlzZXJpYWxf b3V0KHAsIFVBUlRfRExMLCBvbGRfZGxsKTsKLQlzZXJpYWxfb3V0KHAsIFVBUlRfRExNLCBvbGRf ZGxtKTsKIAlzZXJpYWxfb3V0KHAsIFVBUlRfTENSLCBvbGRfbGNyKTsKIAogCXJldHVybiBpZDsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdHR5L3NlcmlhbC9zaC1zY2kuYyBiL2RyaXZlcnMvdHR5L3Nl cmlhbC9zaC1zY2kuYwppbmRleCA4ODIzNmRhMGRkZjcuLmRlM2NkZGUxMTU5ZSAxMDA2NDQKLS0t IGEvZHJpdmVycy90dHkvc2VyaWFsL3NoLXNjaS5jCisrKyBiL2RyaXZlcnMvdHR5L3NlcmlhbC9z aC1zY2kuYwpAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgPGxpbnV4L21ham9yLmg+CiAjaW5j bHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvbW0uaD4KLSNpbmNsdWRlIDxs aW51eC9ub3RpZmllci5oPgogI2luY2x1ZGUgPGxpbnV4L29mLmg+CiAjaW5jbHVkZSA8bGludXgv cGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgpAQCAtMTE4 LDggKzExNyw2IEBAIHN0cnVjdCBzY2lfcG9ydCB7CiAJc3RydWN0IHRpbWVyX2xpc3QJCXJ4X3Rp bWVyOwogCXVuc2lnbmVkIGludAkJCXJ4X3RpbWVvdXQ7CiAjZW5kaWYKLQotCXN0cnVjdCBub3Rp Zmllcl9ibG9jawkJZnJlcV90cmFuc2l0aW9uOwogfTsKIAogLyogRnVuY3Rpb24gcHJvdG90eXBl cyAqLwpAQCAtMTAyOSwyOSArMTAyNiw2IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBzY2lfbXB4ZWRf aW50ZXJydXB0KGludCBpcnEsIHZvaWQgKnB0cikKIAlyZXR1cm4gcmV0OwogfQogCi0vKgotICog SGVyZSB3ZSBkZWZpbmUgYSB0cmFuc2l0aW9uIG5vdGlmaWVyIHNvIHRoYXQgd2UgY2FuIHVwZGF0 ZSBhbGwgb2Ygb3VyCi0gKiBwb3J0cycgYmF1ZCByYXRlIHdoZW4gdGhlIHBlcmlwaGVyYWwgY2xv Y2sgY2hhbmdlcy4KLSAqLwotc3RhdGljIGludCBzY2lfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVy X2Jsb2NrICpzZWxmLAotCQkJdW5zaWduZWQgbG9uZyBwaGFzZSwgdm9pZCAqcCkKLXsKLQlzdHJ1 Y3Qgc2NpX3BvcnQgKnNjaV9wb3J0OwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzY2lfcG9y dCA9IGNvbnRhaW5lcl9vZihzZWxmLCBzdHJ1Y3Qgc2NpX3BvcnQsIGZyZXFfdHJhbnNpdGlvbik7 Ci0KLQlpZiAocGhhc2UgPT0gQ1BVRlJFUV9QT1NUQ0hBTkdFKSB7Ci0JCXN0cnVjdCB1YXJ0X3Bv cnQgKnBvcnQgPSAmc2NpX3BvcnQtPnBvcnQ7Ci0KLQkJc3Bpbl9sb2NrX2lycXNhdmUoJnBvcnQt PmxvY2ssIGZsYWdzKTsKLQkJcG9ydC0+dWFydGNsayA9IGNsa19nZXRfcmF0ZShzY2lfcG9ydC0+ aWNsayk7Ci0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKLQl9 Ci0KLQlyZXR1cm4gTk9USUZZX09LOwotfQotCiBzdGF0aWMgc3RydWN0IHNjaV9pcnFfZGVzYyB7 CiAJY29uc3QgY2hhcgkqZGVzYzsKIAlpcnFfaGFuZGxlcl90CWhhbmRsZXI7CkBAIC0yNDA2LDkg KzIzODAsNiBAQCBzdGF0aWMgaW50IHNjaV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq ZGV2KQogewogCXN0cnVjdCBzY2lfcG9ydCAqcG9ydCA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKGRl dik7CiAKLQljcHVmcmVxX3VucmVnaXN0ZXJfbm90aWZpZXIoJnBvcnQtPmZyZXFfdHJhbnNpdGlv biwKLQkJCQkgICAgQ1BVRlJFUV9UUkFOU0lUSU9OX05PVElGSUVSKTsKLQogCXVhcnRfcmVtb3Zl X29uZV9wb3J0KCZzY2lfdWFydF9kcml2ZXIsICZwb3J0LT5wb3J0KTsKIAogCXNjaV9jbGVhbnVw X3NpbmdsZShwb3J0KTsKQEAgLTI1NTcsMTYgKzI1MjgsNiBAQCBzdGF0aWMgaW50IHNjaV9wcm9i ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsK IAotCXNwLT5mcmVxX3RyYW5zaXRpb24ubm90aWZpZXJfY2FsbCA9IHNjaV9ub3RpZmllcjsKLQot CXJldCA9IGNwdWZyZXFfcmVnaXN0ZXJfbm90aWZpZXIoJnNwLT5mcmVxX3RyYW5zaXRpb24sCi0J CQkJCUNQVUZSRVFfVFJBTlNJVElPTl9OT1RJRklFUik7Ci0JaWYgKHVubGlrZWx5KHJldCA8IDAp KSB7Ci0JCXVhcnRfcmVtb3ZlX29uZV9wb3J0KCZzY2lfdWFydF9kcml2ZXIsICZzcC0+cG9ydCk7 Ci0JCXNjaV9jbGVhbnVwX3NpbmdsZShzcCk7Ci0JCXJldHVybiByZXQ7Ci0JfQotCiAjaWZkZWYg Q09ORklHX1NIX1NUQU5EQVJEX0JJT1MKIAlzaF9iaW9zX2dkYl9kZXRhY2goKTsKICNlbmRpZgpk aWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY29yZS9kcml2ZXIuYyBiL2RyaXZlcnMvdXNiL2NvcmUv ZHJpdmVyLmMKaW5kZXggMzdjN2NlOWFmMjIwLi5lN2JmZjk5Y2RiMmQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvdXNiL2NvcmUvZHJpdmVyLmMKKysrIGIvZHJpdmVycy91c2IvY29yZS9kcml2ZXIuYwpA QCAtNTE1LDExICs1MTUsMTUgQEAgc3RhdGljIGludCB1c2JfdW5iaW5kX2ludGVyZmFjZShzdHJ1 Y3QgZGV2aWNlICpkZXYpCiBpbnQgdXNiX2RyaXZlcl9jbGFpbV9pbnRlcmZhY2Uoc3RydWN0IHVz Yl9kcml2ZXIgKmRyaXZlciwKIAkJCQlzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaWZhY2UsIHZvaWQg KnByaXYpCiB7Ci0Jc3RydWN0IGRldmljZSAqZGV2ID0gJmlmYWNlLT5kZXY7CisJc3RydWN0IGRl dmljZSAqZGV2OwogCXN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2OwogCWludCByZXR2YWwgPSAwOwog CWludCBscG1fZGlzYWJsZV9lcnJvcjsKIAorCWlmICghaWZhY2UpCisJCXJldHVybiAtRU5PREVW OworCisJZGV2ID0gJmlmYWNlLT5kZXY7CiAJaWYgKGRldi0+ZHJpdmVyKQogCQlyZXR1cm4gLUVC VVNZOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jb3JlL2h1Yi5jIGIvZHJpdmVycy91c2Iv Y29yZS9odWIuYwppbmRleCBlNDk2YjIxMzMzM2UuLjU1NGNjMjE5YWMzNCAxMDA2NDQKLS0tIGEv ZHJpdmVycy91c2IvY29yZS9odWIuYworKysgYi9kcml2ZXJzL3VzYi9jb3JlL2h1Yi5jCkBAIC00 MjIxLDcgKzQyMjEsNyBAQCBodWJfcG9ydF9pbml0IChzdHJ1Y3QgdXNiX2h1YiAqaHViLCBzdHJ1 Y3QgdXNiX2RldmljZSAqdWRldiwgaW50IHBvcnQxLAogewogCXN0cnVjdCB1c2JfZGV2aWNlCSpo ZGV2ID0gaHViLT5oZGV2OwogCXN0cnVjdCB1c2JfaGNkCQkqaGNkID0gYnVzX3RvX2hjZChoZGV2 LT5idXMpOwotCWludAkJCWksIGosIHJldHZhbDsKKwlpbnQJCQlyZXRyaWVzLCBvcGVyYXRpb25z LCByZXR2YWwsIGk7CiAJdW5zaWduZWQJCWRlbGF5ID0gSFVCX1NIT1JUX1JFU0VUX1RJTUU7CiAJ ZW51bSB1c2JfZGV2aWNlX3NwZWVkCW9sZHNwZWVkID0gdWRldi0+c3BlZWQ7CiAJY29uc3QgY2hh cgkJKnNwZWVkOwpAQCAtNDMyMyw3ICs0MzIzLDcgQEAgaHViX3BvcnRfaW5pdCAoc3RydWN0IHVz Yl9odWIgKmh1Yiwgc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYsIGludCBwb3J0MSwKIAkgKiBmaXJz dCA4IGJ5dGVzIG9mIHRoZSBkZXZpY2UgZGVzY3JpcHRvciB0byBnZXQgdGhlIGVwMCBtYXhwYWNr ZXQKIAkgKiB2YWx1ZS4KIAkgKi8KLQlmb3IgKGkgPSAwOyBpIDwgR0VUX0RFU0NSSVBUT1JfVFJJ RVM7ICgrK2ksIG1zbGVlcCgxMDApKSkgeworCWZvciAocmV0cmllcyA9IDA7IHJldHJpZXMgPCBH RVRfREVTQ1JJUFRPUl9UUklFUzsgKCsrcmV0cmllcywgbXNsZWVwKDEwMCkpKSB7CiAJCWJvb2wg ZGlkX25ld19zY2hlbWUgPSBmYWxzZTsKIAogCQlpZiAodXNlX25ld19zY2hlbWUodWRldiwgcmV0 cnlfY291bnRlcikpIHsKQEAgLTQzNTAsNyArNDM1MCw3IEBAIGh1Yl9wb3J0X2luaXQgKHN0cnVj dCB1c2JfaHViICpodWIsIHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2LCBpbnQgcG9ydDEsCiAJCQkg KiAyNTUgaXMgZm9yIFdVU0IgZGV2aWNlcywgd2UgYWN0dWFsbHkgbmVlZCB0byB1c2UKIAkJCSAq IDUxMiAoV1VTQjEuMFs0LjguMV0pLgogCQkJICovCi0JCQlmb3IgKGogPSAwOyBqIDwgMzsgKytq KSB7CisJCQlmb3IgKG9wZXJhdGlvbnMgPSAwOyBvcGVyYXRpb25zIDwgMzsgKytvcGVyYXRpb25z KSB7CiAJCQkJYnVmLT5iTWF4UGFja2V0U2l6ZTAgPSAwOwogCQkJCXIgPSB1c2JfY29udHJvbF9t c2codWRldiwgdXNiX3JjdmFkZHIwcGlwZSgpLAogCQkJCQlVU0JfUkVRX0dFVF9ERVNDUklQVE9S LCBVU0JfRElSX0lOLApAQCAtNDM3MCw3ICs0MzcwLDEzIEBAIGh1Yl9wb3J0X2luaXQgKHN0cnVj dCB1c2JfaHViICpodWIsIHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2LCBpbnQgcG9ydDEsCiAJCQkJ CQlyID0gLUVQUk9UTzsKIAkJCQkJYnJlYWs7CiAJCQkJfQotCQkJCWlmIChyID09IDApCisJCQkJ LyoKKwkJCQkgKiBTb21lIGRldmljZXMgdGltZSBvdXQgaWYgdGhleSBhcmUgcG93ZXJlZCBvbgor CQkJCSAqIHdoZW4gYWxyZWFkeSBjb25uZWN0ZWQuIFRoZXkgbmVlZCBhIHNlY29uZAorCQkJCSAq IHJlc2V0LiBCdXQgb25seSBvbiB0aGUgZmlyc3QgYXR0ZW1wdCwKKwkJCQkgKiBsZXN0IHdlIGdl dCBpbnRvIGEgdGltZSBvdXQvcmVzZXQgbG9vcAorCQkJCSAqLworCQkJCWlmIChyID09IDAgIHx8 IChyID09IC1FVElNRURPVVQgJiYgcmV0cmllcyA9PSAwKSkKIAkJCQkJYnJlYWs7CiAJCQl9CiAJ CQl1ZGV2LT5kZXNjcmlwdG9yLmJNYXhQYWNrZXRTaXplMCA9CkBAIC00NDAyLDcgKzQ0MDgsNyBA QCBodWJfcG9ydF9pbml0IChzdHJ1Y3QgdXNiX2h1YiAqaHViLCBzdHJ1Y3QgdXNiX2RldmljZSAq dWRldiwgaW50IHBvcnQxLAogCQkgKiBhdXRob3JpemF0aW9uIHdpbGwgYXNzaWduIHRoZSBmaW5h bCBhZGRyZXNzLgogCQkgKi8KIAkJaWYgKHVkZXYtPnd1c2IgPT0gMCkgewotCQkJZm9yIChqID0g MDsgaiA8IFNFVF9BRERSRVNTX1RSSUVTOyArK2opIHsKKwkJCWZvciAob3BlcmF0aW9ucyA9IDA7 IG9wZXJhdGlvbnMgPCBTRVRfQUREUkVTU19UUklFUzsgKytvcGVyYXRpb25zKSB7CiAJCQkJcmV0 dmFsID0gaHViX3NldF9hZGRyZXNzKHVkZXYsIGRldm51bSk7CiAJCQkJaWYgKHJldHZhbCA+PSAw KQogCQkJCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2R3YzMvZHdjMy1rZXlzdG9u ZS5jIGIvZHJpdmVycy91c2IvZHdjMy9kd2MzLWtleXN0b25lLmMKaW5kZXggMWZhZDE2MThkZjZl Li43MDA1MDRhZDQ4MjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2R3YzMvZHdjMy1rZXlzdG9u ZS5jCisrKyBiL2RyaXZlcnMvdXNiL2R3YzMvZHdjMy1rZXlzdG9uZS5jCkBAIC0zOSw4ICszOSw2 IEBACiAjZGVmaW5lIFVTQlNTX0lSUV9DT1JFSVJRX0VOCUJJVCgwKQogI2RlZmluZSBVU0JTU19J UlFfQ09SRUlSUV9DTFIJQklUKDApCiAKLXN0YXRpYyB1NjQga2R3YzNfZG1hX21hc2s7Ci0KIHN0 cnVjdCBkd2MzX2tleXN0b25lIHsKIAlzdHJ1Y3QgZGV2aWNlCQkJKmRldjsKIAlzdHJ1Y3QgY2xr CQkJKmNsazsKQEAgLTExMyw5ICsxMTEsNiBAQCBzdGF0aWMgaW50IGtkd2MzX3Byb2JlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaWYgKElTX0VSUihrZHdjLT51c2JzcykpCiAJCXJl dHVybiBQVFJfRVJSKGtkd2MtPnVzYnNzKTsKIAotCWtkd2MzX2RtYV9tYXNrID0gZG1hX2dldF9t YXNrKGRldik7Ci0JZGV2LT5kbWFfbWFzayA9ICZrZHdjM19kbWFfbWFzazsKLQogCWtkd2MtPmNs ayA9IGRldm1fY2xrX2dldChrZHdjLT5kZXYsICJ1c2IiKTsKIAogCWVycm9yID0gY2xrX3ByZXBh cmVfZW5hYmxlKGtkd2MtPmNsayk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9yZW5lc2FzX3Vz YmhzL2ZpZm8uYyBiL2RyaXZlcnMvdXNiL3JlbmVzYXNfdXNiaHMvZmlmby5jCmluZGV4IDRmZDM2 NTMwYmZhMy4uNTA3NjNlYmZmMDE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9yZW5lc2FzX3Vz YmhzL2ZpZm8uYworKysgYi9kcml2ZXJzL3VzYi9yZW5lc2FzX3VzYmhzL2ZpZm8uYwpAQCAtMTY2 LDcgKzE2Niw4IEBAIHN0YXRpYyBpbnQgdXNiaHNmX3BrdF9oYW5kbGVyKHN0cnVjdCB1c2Joc19w aXBlICpwaXBlLCBpbnQgdHlwZSkKIAkJZ290byBfX3VzYmhzX3BrdF9oYW5kbGVyX2VuZDsKIAl9 CiAKLQlyZXQgPSBmdW5jKHBrdCwgJmlzX2RvbmUpOworCWlmIChsaWtlbHkoZnVuYykpCisJCXJl dCA9IGZ1bmMocGt0LCAmaXNfZG9uZSk7CiAKIAlpZiAoaXNfZG9uZSkKIAkJX191c2Joc2ZfcGt0 X2RlbChwa3QpOwpAQCAtODUwLDYgKzg1MSw3IEBAIHN0YXRpYyBpbnQgdXNiaHNmX2RtYV9wcmVw YXJlX3B1c2goc3RydWN0IHVzYmhzX3BrdCAqcGt0LCBpbnQgKmlzX2RvbmUpCiAKIAlwa3QtPnRy YW5zID0gbGVuOwogCisJdXNiaHNmX3R4X2lycV9jdHJsKHBpcGUsIDApOwogCUlOSVRfV09SSygm cGt0LT53b3JrLCB4ZmVyX3dvcmspOwogCXNjaGVkdWxlX3dvcmsoJnBrdC0+d29yayk7CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3JlbmVzYXNfdXNiaHMvbW9kX2dhZGdldC5jIGIvZHJpdmVy cy91c2IvcmVuZXNhc191c2Jocy9tb2RfZ2FkZ2V0LmMKaW5kZXggZTM0NGQ1MGY0Njk3Li40NzIw ZTM1YWIyMzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3JlbmVzYXNfdXNiaHMvbW9kX2dhZGdl dC5jCisrKyBiL2RyaXZlcnMvdXNiL3JlbmVzYXNfdXNiaHMvbW9kX2dhZGdldC5jCkBAIC0xMzcs MTAgKzEzNywxNCBAQCBzdGF0aWMgdm9pZCB1c2Joc2dfcXVldWVfZG9uZShzdHJ1Y3QgdXNiaHNf cHJpdiAqcHJpdiwgc3RydWN0IHVzYmhzX3BrdCAqcGt0KQogCXN0cnVjdCB1c2Joc19waXBlICpw aXBlID0gcGt0LT5waXBlOwogCXN0cnVjdCB1c2Joc2dfdWVwICp1ZXAgPSB1c2Joc2dfcGlwZV90 b191ZXAocGlwZSk7CiAJc3RydWN0IHVzYmhzZ19yZXF1ZXN0ICp1cmVxID0gdXNiaHNnX3BrdF90 b191cmVxKHBrdCk7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCXVyZXEtPnJlcS5hY3R1YWwg PSBwa3QtPmFjdHVhbDsKIAotCXVzYmhzZ19xdWV1ZV9wb3AodWVwLCB1cmVxLCAwKTsKKwl1c2Jo c19sb2NrKHByaXYsIGZsYWdzKTsKKwlpZiAodWVwKQorCQlfX3VzYmhzZ19xdWV1ZV9wb3AodWVw LCB1cmVxLCAwKTsKKwl1c2Joc191bmxvY2socHJpdiwgZmxhZ3MpOwogfQogCiBzdGF0aWMgdm9p ZCB1c2Joc2dfcXVldWVfcHVzaChzdHJ1Y3QgdXNiaHNnX3VlcCAqdWVwLApkaWZmIC0tZ2l0IGEv ZHJpdmVycy91c2Ivc2VyaWFsL2NwMjEweC5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2NwMjEweC5j CmluZGV4IDkyMjcyM2VkZDZiMC4uYjY4OWEyZmQ5NjBjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Vz Yi9zZXJpYWwvY3AyMTB4LmMKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2NwMjEweC5jCkBAIC0x NjQsNiArMTY0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxl W10gPSB7CiAJeyBVU0JfREVWSUNFKDB4MThFRiwgMHhFMDI1KSB9LCAvKiBFTFYgTWFyYmxlIFNv dW5kIEJvYXJkIDEgKi8KIAl7IFVTQl9ERVZJQ0UoMHgxOTAxLCAweDAxOTApIH0sIC8qIEdFIEI4 NTAgQ1AyMTA1IFJlY29yZGVyIGludGVyZmFjZSAqLwogCXsgVVNCX0RFVklDRSgweDE5MDEsIDB4 MDE5MykgfSwgLyogR0UgQjY1MCBDUDIxMDQgUE1DIGludGVyZmFjZSAqLworCXsgVVNCX0RFVklD RSgweDE5MDEsIDB4MDE5NCkgfSwJLyogR0UgSGVhbHRoY2FyZSBSZW1vdGUgQWxhcm0gQm94ICov CiAJeyBVU0JfREVWSUNFKDB4MTlDRiwgMHgzMDAwKSB9LCAvKiBQYXJyb3QgTk1FQSBHUFMgRmxp Z2h0IFJlY29yZGVyICovCiAJeyBVU0JfREVWSUNFKDB4MUFEQiwgMHgwMDAxKSB9LCAvKiBTY2h3 ZWl0emVyIEVuZ2luZWVyaW5nIEM2NjIgQ2FibGUgKi8KIAl7IFVTQl9ERVZJQ0UoMHgxQjFDLCAw eDFDMDApIH0sIC8qIENvcnNhaXIgVVNCIERvbmdsZSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91 c2Ivc2VyaWFsL2N5cHJlc3NfbTguYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9jeXByZXNzX204LmMK aW5kZXggMDFiZjUzMzkyODE5Li4yNDRhY2IxMjk5YTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNi L3NlcmlhbC9jeXByZXNzX204LmMKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2N5cHJlc3NfbTgu YwpAQCAtNDQ3LDYgKzQ0NywxMSBAQCBzdGF0aWMgaW50IGN5cHJlc3NfZ2VuZXJpY19wb3J0X3By b2JlKHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpCiAJc3RydWN0IHVzYl9zZXJpYWwgKnNl cmlhbCA9IHBvcnQtPnNlcmlhbDsKIAlzdHJ1Y3QgY3lwcmVzc19wcml2YXRlICpwcml2OwogCisJ aWYgKCFwb3J0LT5pbnRlcnJ1cHRfb3V0X3VyYiB8fCAhcG9ydC0+aW50ZXJydXB0X2luX3VyYikg eworCQlkZXZfZXJyKCZwb3J0LT5kZXYsICJyZXF1aXJlZCBlbmRwb2ludCBpcyBtaXNzaW5nXG4i KTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCiAJcHJpdiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVj dCBjeXByZXNzX3ByaXZhdGUpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXByaXYpCiAJCXJldHVybiAt RU5PTUVNOwpAQCAtNjA2LDEyICs2MTEsNiBAQCBzdGF0aWMgaW50IGN5cHJlc3Nfb3BlbihzdHJ1 Y3QgdHR5X3N0cnVjdCAqdHR5LCBzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQogCQljeXBy ZXNzX3NldF90ZXJtaW9zKHR0eSwgcG9ydCwgJnByaXYtPnRtcF90ZXJtaW9zKTsKIAogCS8qIHNl dHVwIHRoZSBwb3J0IGFuZCBzdGFydCByZWFkaW5nIGZyb20gdGhlIGRldmljZSAqLwotCWlmICgh cG9ydC0+aW50ZXJydXB0X2luX3VyYikgewotCQlkZXZfZXJyKCZwb3J0LT5kZXYsICIlcyAtIGlu dGVycnVwdF9pbl91cmIgaXMgZW1wdHkhXG4iLAotCQkJX19mdW5jX18pOwotCQlyZXR1cm4gLTE7 Ci0JfQotCiAJdXNiX2ZpbGxfaW50X3VyYihwb3J0LT5pbnRlcnJ1cHRfaW5fdXJiLCBzZXJpYWwt PmRldiwKIAkJdXNiX3JjdmludHBpcGUoc2VyaWFsLT5kZXYsIHBvcnQtPmludGVycnVwdF9pbl9l bmRwb2ludEFkZHJlc3MpLAogCQlwb3J0LT5pbnRlcnJ1cHRfaW5fdXJiLT50cmFuc2Zlcl9idWZm ZXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvZGlnaV9hY2NlbGVwb3J0LmMgYi9k cml2ZXJzL3VzYi9zZXJpYWwvZGlnaV9hY2NlbGVwb3J0LmMKaW5kZXggOGEyM2M1M2I5NDZlLi5j ZDZkZjg3NTE2M2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9kaWdpX2FjY2VsZXBv cnQuYworKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvZGlnaV9hY2NlbGVwb3J0LmMKQEAgLTEyNTIs OCArMTI1MiwyNyBAQCBzdGF0aWMgaW50IGRpZ2lfcG9ydF9pbml0KHN0cnVjdCB1c2Jfc2VyaWFs X3BvcnQgKnBvcnQsIHVuc2lnbmVkIHBvcnRfbnVtKQogCiBzdGF0aWMgaW50IGRpZ2lfc3RhcnR1 cChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQogeworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZz ZXJpYWwtPmludGVyZmFjZS0+ZGV2OwogCXN0cnVjdCBkaWdpX3NlcmlhbCAqc2VyaWFsX3ByaXY7 CiAJaW50IHJldDsKKwlpbnQgaTsKKworCS8qIGNoZWNrIHdoZXRoZXIgdGhlIGRldmljZSBoYXMg dGhlIGV4cGVjdGVkIG51bWJlciBvZiBlbmRwb2ludHMgKi8KKwlpZiAoc2VyaWFsLT5udW1fcG9y dF9wb2ludGVycyA8IHNlcmlhbC0+dHlwZS0+bnVtX3BvcnRzICsgMSkgeworCQlkZXZfZXJyKGRl diwgIk9PQiBlbmRwb2ludHMgbWlzc2luZ1xuIik7CisJCXJldHVybiAtRU5PREVWOworCX0KKwor CWZvciAoaSA9IDA7IGkgPCBzZXJpYWwtPnR5cGUtPm51bV9wb3J0cyArIDEgOyBpKyspIHsKKwkJ aWYgKCFzZXJpYWwtPnBvcnRbaV0tPnJlYWRfdXJiKSB7CisJCQlkZXZfZXJyKGRldiwgImJ1bGst aW4gZW5kcG9pbnQgbWlzc2luZ1xuIik7CisJCQlyZXR1cm4gLUVOT0RFVjsKKwkJfQorCQlpZiAo IXNlcmlhbC0+cG9ydFtpXS0+d3JpdGVfdXJiKSB7CisJCQlkZXZfZXJyKGRldiwgImJ1bGstb3V0 IGVuZHBvaW50IG1pc3NpbmdcbiIpOworCQkJcmV0dXJuIC1FTk9ERVY7CisJCX0KKwl9CiAKIAlz ZXJpYWxfcHJpdiA9IGt6YWxsb2Moc2l6ZW9mKCpzZXJpYWxfcHJpdiksIEdGUF9LRVJORUwpOwog CWlmICghc2VyaWFsX3ByaXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9z aW8uYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jCmluZGV4IGI1ZDhlMjU0NGI4Zi4u ZmIzYTgzMmQ4NmUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW8uYwor KysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW8uYwpAQCAtMTAxNyw2ICsxMDE3LDEwIEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90YWJsZV9jb21iaW5lZFtdID0g ewogCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgQ0hFVENPX1NFQVNNQVJUX0RJU1BMQVlfUElEKSB9 LAogCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgQ0hFVENPX1NFQVNNQVJUX0xJVEVfUElEKSB9LAog CXsgVVNCX0RFVklDRShGVERJX1ZJRCwgQ0hFVENPX1NFQVNNQVJUX0FOQUxPR19QSUQpIH0sCisJ LyogSUNQIERBUyBJLTc1NnhVIGRldmljZXMgKi8KKwl7IFVTQl9ERVZJQ0UoSUNQREFTX1ZJRCwg SUNQREFTX0k3NTYwVV9QSUQpIH0sCisJeyBVU0JfREVWSUNFKElDUERBU19WSUQsIElDUERBU19J NzU2MVVfUElEKSB9LAorCXsgVVNCX0RFVklDRShJQ1BEQVNfVklELCBJQ1BEQVNfSTc1NjNVX1BJ RCkgfSwKIAl7IH0JCQkJCS8qIFRlcm1pbmF0aW5nIGVudHJ5ICovCiB9OwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW9faWRzLmggYi9kcml2ZXJzL3VzYi9zZXJpYWwv ZnRkaV9zaW9faWRzLmgKaW5kZXggNzg1MDA3MWMwYWUxLi4zMzRiYzYwMDI4MmQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npb19pZHMuaAorKysgYi9kcml2ZXJzL3VzYi9z ZXJpYWwvZnRkaV9zaW9faWRzLmgKQEAgLTg3Miw2ICs4NzIsMTQgQEAKICNkZWZpbmUgTk9WSVRV U19CT05PX0VfUElECQkweDYwMTAKIAogLyoKKyAqIElDUERBUyBJLTc1NipVIGRldmljZXMKKyAq LworI2RlZmluZSBJQ1BEQVNfVklECQkJMHgxYjVjCisjZGVmaW5lIElDUERBU19JNzU2MFVfUElE CQkweDAxMDMKKyNkZWZpbmUgSUNQREFTX0k3NTYxVV9QSUQJCTB4MDEwNAorI2RlZmluZSBJQ1BE QVNfSTc1NjNVX1BJRAkJMHgwMTA1CisKKy8qCiAgKiBSVCBTeXN0ZW1zIHByb2dyYW1taW5nIGNh YmxlcyBmb3IgdmFyaW91cyBoYW0gcmFkaW9zCiAgKi8KICNkZWZpbmUgUlRTWVNURU1TX1ZJRAkJ MHgyMTAwCS8qIFZlbmRvciBJRCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL21j dF91MjMyLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvbWN0X3UyMzIuYwppbmRleCBmZDcwN2Q2YTEw ZTIuLjg5NzI2ZjcwMjIwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL21jdF91MjMy LmMKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL21jdF91MjMyLmMKQEAgLTM3NiwxNCArMzc2LDIx IEBAIHN0YXRpYyB2b2lkIG1jdF91MjMyX21zcl90b19zdGF0ZShzdHJ1Y3QgdXNiX3NlcmlhbF9w b3J0ICpwb3J0LAogCiBzdGF0aWMgaW50IG1jdF91MjMyX3BvcnRfcHJvYmUoc3RydWN0IHVzYl9z ZXJpYWxfcG9ydCAqcG9ydCkKIHsKKwlzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsID0gcG9ydC0+ c2VyaWFsOwogCXN0cnVjdCBtY3RfdTIzMl9wcml2YXRlICpwcml2OwogCisJLyogY2hlY2sgZmly c3QgdG8gc2ltcGxpZnkgZXJyb3IgaGFuZGxpbmcgKi8KKwlpZiAoIXNlcmlhbC0+cG9ydFsxXSB8 fCAhc2VyaWFsLT5wb3J0WzFdLT5pbnRlcnJ1cHRfaW5fdXJiKSB7CisJCWRldl9lcnIoJnBvcnQt PmRldiwgImV4cGVjdGVkIGVuZHBvaW50IG1pc3NpbmdcbiIpOworCQlyZXR1cm4gLUVOT0RFVjsK Kwl9CisKIAlwcml2ID0ga3phbGxvYyhzaXplb2YoKnByaXYpLCBHRlBfS0VSTkVMKTsKIAlpZiAo IXByaXYpCiAJCXJldHVybiAtRU5PTUVNOwogCiAJLyogVXNlIHNlY29uZCBpbnRlcnJ1cHQtaW4g ZW5kcG9pbnQgZm9yIHJlYWRpbmcuICovCi0JcHJpdi0+cmVhZF91cmIgPSBwb3J0LT5zZXJpYWwt PnBvcnRbMV0tPmludGVycnVwdF9pbl91cmI7CisJcHJpdi0+cmVhZF91cmIgPSBzZXJpYWwtPnBv cnRbMV0tPmludGVycnVwdF9pbl91cmI7CiAJcHJpdi0+cmVhZF91cmItPmNvbnRleHQgPSBwb3J0 OwogCiAJc3Bpbl9sb2NrX2luaXQoJnByaXYtPmxvY2spOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91 c2Ivc2VyaWFsL29wdGlvbi5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlvbi5jCmluZGV4IDUz OTZlOGJmZWI2Yi4uMWYzYzExOTcyZDM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwv b3B0aW9uLmMKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlvbi5jCkBAIC0xODI5LDYgKzE4 MjksOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgb3B0aW9uX2lkc1tdID0g ewogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oMHgyMDAxLCAweDdkMDIsIDB4ZmYs IDB4MDAsIDB4MDApIH0sCiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDIwMDEs IDB4N2QwMywgMHhmZiwgMHgwMiwgMHgwMSkgfSwKIAl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFD RV9JTkZPKDB4MjAwMSwgMHg3ZDAzLCAweGZmLCAweDAwLCAweDAwKSB9LAorCXsgVVNCX0RFVklD RV9JTlRFUkZBQ0VfQ0xBU1MoMHgyMDAxLCAweDdlMTksIDB4ZmYpLAkJCS8qIEQtTGluayBEV00t MjIxIEIxICovCisJICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJm5ldF9pbnRmNF9i bGFja2xpc3QgfSwKIAl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKDB4MDdkMSwgMHgz ZTAxLCAweGZmLCAweGZmLCAweGZmKSB9LCAvKiBELUxpbmsgRFdNLTE1Mi9DMSAqLwogCXsgVVNC X0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oMHgwN2QxLCAweDNlMDIsIDB4ZmYsIDB4ZmYsIDB4 ZmYpIH0sIC8qIEQtTGluayBEV00tMTU2L0MxICovCiAJeyBVU0JfREVWSUNFX0lOVEVSRkFDRV9D TEFTUygweDIwMjAsIDB4NDAwMCwgMHhmZikgfSwgICAgICAgICAgICAgICAgLyogT0xJQ0FSRDMw MCAtIE1UNjIyNSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc3RvcmFnZS91YXMuYyBiL2Ry aXZlcnMvdXNiL3N0b3JhZ2UvdWFzLmMKaW5kZXggNDZhZWViZGU3MmI5Li5jOGFkZWYyNDM2OGMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3N0b3JhZ2UvdWFzLmMKKysrIGIvZHJpdmVycy91c2Iv c3RvcmFnZS91YXMuYwpAQCAtMzAsNiArMzAsOCBAQAogI2luY2x1ZGUgInVhcy1kZXRlY3QuaCIK ICNpbmNsdWRlICJzY3NpZ2x1ZS5oIgogCisjZGVmaW5lIE1BWF9DTU5EUyAyNTYKKwogLyoKICAq IFRoZSByMDAtcjAxYyBzcGVjcyBkZWZpbmUgdGhpcyB2ZXJzaW9uIG9mIHRoZSBTRU5TRSBJVSBk YXRhIHN0cnVjdHVyZS4KICAqIEl0J3Mgc3RpbGwgaW4gdXNlIGJ5IHNldmVyYWwgZGlmZmVyZW50 IGZpcm13YXJlIHJlbGVhc2VzLgpAQCAtOTkxLDcgKzk5Myw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2Nz aV9ob3N0X3RlbXBsYXRlIHVhc19ob3N0X3RlbXBsYXRlID0gewogCS5laF9hYm9ydF9oYW5kbGVy ID0gdWFzX2VoX2Fib3J0X2hhbmRsZXIsCiAJLmVoX2RldmljZV9yZXNldF9oYW5kbGVyID0gdWFz X2VoX2RldmljZV9yZXNldF9oYW5kbGVyLAogCS5laF9idXNfcmVzZXRfaGFuZGxlciA9IHVhc19l aF9idXNfcmVzZXRfaGFuZGxlciwKLQkuY2FuX3F1ZXVlID0gNjU1MzYsCS8qIElzIHRoZXJlIGEg bGltaXQgb24gdGhlIF9ob3N0XyA/ICovCisJLmNhbl9xdWV1ZSA9IE1BWF9DTU5EUywKIAkudGhp c19pZCA9IC0xLAogCS5zZ190YWJsZXNpemUgPSBTR19OT05FLAogCS5jbWRfcGVyX2x1biA9IDEs CS8qIHVudGlsIHdlIG92ZXJyaWRlIGl0ICovCkBAIC0xMDU3LDcgKzEwNTksNyBAQCBzdGF0aWMg aW50IHVhc19jb25maWd1cmVfZW5kcG9pbnRzKHN0cnVjdCB1YXNfZGV2X2luZm8gKmRldmluZm8p CiAJCWRldmluZm8tPnVzZV9zdHJlYW1zID0gMDsKIAl9IGVsc2UgewogCQlkZXZpbmZvLT5xZGVw dGggPSB1c2JfYWxsb2Nfc3RyZWFtcyhkZXZpbmZvLT5pbnRmLCBlcHMgKyAxLAotCQkJCQkJICAg IDMsIDI1NiwgR0ZQX05PSU8pOworCQkJCQkJICAgIDMsIE1BWF9DTU5EUywgR0ZQX05PSU8pOwog CQlpZiAoZGV2aW5mby0+cWRlcHRoIDwgMCkKIAkJCXJldHVybiBkZXZpbmZvLT5xZGVwdGg7CiAJ CWRldmluZm8tPnVzZV9zdHJlYW1zID0gMTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJk ZXYvS2NvbmZpZyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZwppbmRleCA1OWM5OGJmZDVh OGEuLmZhYzczY2ViOTBlNSAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9LY29uZmln CisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZwpAQCAtMjI0Myw3ICsyMjQzLDYgQEAg Y29uZmlnIFhFTl9GQkRFVl9GUk9OVEVORAogCXNlbGVjdCBGQl9TWVNfSU1BR0VCTElUCiAJc2Vs ZWN0IEZCX1NZU19GT1BTCiAJc2VsZWN0IEZCX0RFRkVSUkVEX0lPCi0Jc2VsZWN0IElOUFVUX1hF Tl9LQkRERVZfRlJPTlRFTkQgaWYgSU5QVVRfTUlTQwogCXNlbGVjdCBYRU5fWEVOQlVTX0ZST05U RU5ECiAJZGVmYXVsdCB5CiAJaGVscApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9k YTh4eC1mYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9kYTh4eC1mYi5jCmluZGV4IGE4NDg0Zjc2 OGQwNC4uMDQ1YWMxMTE3NWZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2RhOHh4 LWZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9kYTh4eC1mYi5jCkBAIC0yMDksOCArMjA5 LDcgQEAgc3RhdGljIHN0cnVjdCBmYl92aWRlb21vZGUga25vd25fbGNkX3BhbmVsc1tdID0gewog CQkubG93ZXJfbWFyZ2luICAgPSAyLAogCQkuaHN5bmNfbGVuICAgICAgPSAwLAogCQkudnN5bmNf bGVuICAgICAgPSAwLAotCQkuc3luYyAgICAgICAgICAgPSBGQl9TWU5DX0NMS19JTlZFUlQgfAot CQkJRkJfU1lOQ19IT1JfSElHSF9BQ1QgfCBGQl9TWU5DX1ZFUlRfSElHSF9BQ1QsCisJCS5zeW5j ICAgICAgICAgICA9IEZCX1NZTkNfQ0xLX0lOVkVSVCwKIAl9LAogCS8qIFNoYXJwIExLMDQzVDFE RzAxICovCiAJWzFdID0gewpAQCAtMjI0LDcgKzIyMyw3IEBAIHN0YXRpYyBzdHJ1Y3QgZmJfdmlk ZW9tb2RlIGtub3duX2xjZF9wYW5lbHNbXSA9IHsKIAkJLmxvd2VyX21hcmdpbiAgID0gMiwKIAkJ LmhzeW5jX2xlbiAgICAgID0gNDEsCiAJCS52c3luY19sZW4gICAgICA9IDEwLAotCQkuc3luYyAg ICAgICAgICAgPSBGQl9TWU5DX0hPUl9ISUdIX0FDVCB8IEZCX1NZTkNfVkVSVF9ISUdIX0FDVCwK KwkJLnN5bmMgICAgICAgICAgID0gMCwKIAkJLmZsYWcgICAgICAgICAgID0gMCwKIAl9LAogCVsy XSA9IHsKQEAgLTIzOSw3ICsyMzgsNyBAQCBzdGF0aWMgc3RydWN0IGZiX3ZpZGVvbW9kZSBrbm93 bl9sY2RfcGFuZWxzW10gPSB7CiAJCS5sb3dlcl9tYXJnaW4gICA9IDEwLAogCQkuaHN5bmNfbGVu ICAgICAgPSAxMCwKIAkJLnZzeW5jX2xlbiAgICAgID0gMTAsCi0JCS5zeW5jICAgICAgICAgICA9 IEZCX1NZTkNfSE9SX0hJR0hfQUNUIHwgRkJfU1lOQ19WRVJUX0hJR0hfQUNULAorCQkuc3luYyAg ICAgICAgICAgPSAwLAogCQkuZmxhZyAgICAgICAgICAgPSAwLAogCX0sCiAJWzNdID0gewpkaWZm IC0tZ2l0IGEvZHJpdmVycy93YXRjaGRvZy9yYzMyNDM0X3dkdC5jIGIvZHJpdmVycy93YXRjaGRv Zy9yYzMyNDM0X3dkdC5jCmluZGV4IDcxZTc4ZWY0YjczNi4uM2E3NWYzYjUzNDUyIDEwMDY0NAot LS0gYS9kcml2ZXJzL3dhdGNoZG9nL3JjMzI0MzRfd2R0LmMKKysrIGIvZHJpdmVycy93YXRjaGRv Zy9yYzMyNDM0X3dkdC5jCkBAIC0yMzcsNyArMjM3LDcgQEAgc3RhdGljIGxvbmcgcmMzMjQzNF93 ZHRfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsCiAJCQlyZXR1cm4g LUVJTlZBTDsKIAkJLyogRmFsbCB0aHJvdWdoICovCiAJY2FzZSBXRElPQ19HRVRUSU1FT1VUOgot CQlyZXR1cm4gY29weV90b191c2VyKGFyZ3AsICZ0aW1lb3V0LCBzaXplb2YoaW50KSk7CisJCXJl dHVybiBjb3B5X3RvX3VzZXIoYXJncCwgJnRpbWVvdXQsIHNpemVvZihpbnQpKSA/IC1FRkFVTFQg OiAwOwogCWRlZmF1bHQ6CiAJCXJldHVybiAtRU5PVFRZOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZl cnMveGVuL2V2ZW50cy9ldmVudHNfYmFzZS5jIGIvZHJpdmVycy94ZW4vZXZlbnRzL2V2ZW50c19i YXNlLmMKaW5kZXggYmIyYWFiODVmOGU5Li42YmUwZWYwMWI4ZTYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMveGVuL2V2ZW50cy9ldmVudHNfYmFzZS5jCisrKyBiL2RyaXZlcnMveGVuL2V2ZW50cy9ldmVu dHNfYmFzZS5jCkBAIC00ODMsOSArNDgzLDE5IEBAIHN0YXRpYyB2b2lkIGVvaV9waXJxKHN0cnVj dCBpcnFfZGF0YSAqZGF0YSkKIAlzdHJ1Y3QgcGh5c2Rldl9lb2kgZW9pID0geyAuaXJxID0gcGly cV9mcm9tX2lycShkYXRhLT5pcnEpIH07CiAJaW50IHJjID0gMDsKIAotCWlycV9tb3ZlX2lycShk YXRhKTsKKwlpZiAoIVZBTElEX0VWVENITihldnRjaG4pKQorCQlyZXR1cm47CiAKLQlpZiAoVkFM SURfRVZUQ0hOKGV2dGNobikpCisJaWYgKHVubGlrZWx5KGlycWRfaXNfc2V0YWZmaW5pdHlfcGVu ZGluZyhkYXRhKSkpIHsKKwkJaW50IG1hc2tlZCA9IHRlc3RfYW5kX3NldF9tYXNrKGV2dGNobik7 CisKKwkJY2xlYXJfZXZ0Y2huKGV2dGNobik7CisKKwkJaXJxX21vdmVfbWFza2VkX2lycShkYXRh KTsKKworCQlpZiAoIW1hc2tlZCkKKwkJCXVubWFza19ldnRjaG4oZXZ0Y2huKTsKKwl9IGVsc2UK IAkJY2xlYXJfZXZ0Y2huKGV2dGNobik7CiAKIAlpZiAocGlycV9uZWVkc19lb2koZGF0YS0+aXJx KSkgewpAQCAtMTM1OSw5ICsxMzY5LDE5IEBAIHN0YXRpYyB2b2lkIGFja19keW5pcnEoc3RydWN0 IGlycV9kYXRhICpkYXRhKQogewogCWludCBldnRjaG4gPSBldnRjaG5fZnJvbV9pcnEoZGF0YS0+ aXJxKTsKIAotCWlycV9tb3ZlX2lycShkYXRhKTsKKwlpZiAoIVZBTElEX0VWVENITihldnRjaG4p KQorCQlyZXR1cm47CiAKLQlpZiAoVkFMSURfRVZUQ0hOKGV2dGNobikpCisJaWYgKHVubGlrZWx5 KGlycWRfaXNfc2V0YWZmaW5pdHlfcGVuZGluZyhkYXRhKSkpIHsKKwkJaW50IG1hc2tlZCA9IHRl c3RfYW5kX3NldF9tYXNrKGV2dGNobik7CisKKwkJY2xlYXJfZXZ0Y2huKGV2dGNobik7CisKKwkJ aXJxX21vdmVfbWFza2VkX2lycShkYXRhKTsKKworCQlpZiAoIW1hc2tlZCkKKwkJCXVubWFza19l dnRjaG4oZXZ0Y2huKTsKKwl9IGVsc2UKIAkJY2xlYXJfZXZ0Y2huKGV2dGNobik7CiB9CiAKZGlm ZiAtLWdpdCBhL2ZzL2J0cmZzL3RyZWUtbG9nLmMgYi9mcy9idHJmcy90cmVlLWxvZy5jCmluZGV4 IDZlMzQ2NjE1NzA5MC4uMmMzZmNiMzgwNjhmIDEwMDY0NAotLS0gYS9mcy9idHJmcy90cmVlLWxv Zy5jCisrKyBiL2ZzL2J0cmZzL3RyZWUtbG9nLmMKQEAgLTM4NzcsNiArMzg3NywxMjcgQEAgc3Rh dGljIGludCBsb2dnZWRfaW5vZGVfc2l6ZShzdHJ1Y3QgYnRyZnNfcm9vdCAqbG9nLCBzdHJ1Y3Qg aW5vZGUgKmlub2RlLAogCXJldHVybiAwOwogfQogCisvKgorICogV2hlbiB3ZSBhcmUgbG9nZ2lu ZyBhIG5ldyBpbm9kZSBYLCBjaGVjayBpZiBpdCBkb2Vzbid0IGhhdmUgYSByZWZlcmVuY2UgdGhh dAorICogbWF0Y2hlcyB0aGUgcmVmZXJlbmNlIGZyb20gc29tZSBvdGhlciBpbm9kZSBZIGNyZWF0 ZWQgaW4gYSBwYXN0IHRyYW5zYWN0aW9uCisgKiBhbmQgdGhhdCB3YXMgcmVuYW1lZCBpbiB0aGUg Y3VycmVudCB0cmFuc2FjdGlvbi4gSWYgd2UgZG9uJ3QgZG8gdGhpcywgdGhlbiBhdAorICogbG9n IHJlcGxheSB0aW1lIHdlIGNhbiBsb3NlIGlub2RlIFkgKGFuZCBhbGwgaXRzIGZpbGVzIGlmIGl0 J3MgYSBkaXJlY3RvcnkpOgorICoKKyAqIG1rZGlyIC9tbnQveAorICogZWNobyAiaGVsbG8gd29y bGQiID4gL21udC94L2Zvb2JhcgorICogc3luYworICogbXYgL21udC94IC9tbnQveQorICogbWtk aXIgL21udC94ICAgICAgICAgICAgICAgICAjIG9yIHRvdWNoIC9tbnQveAorICogeGZzX2lvIC1j IGZzeW5jIC9tbnQveAorICogPHBvd2VyIGZhaWw+CisgKiBtb3VudCBmcywgdHJpZ2dlciBsb2cg cmVwbGF5CisgKgorICogQWZ0ZXIgdGhlIGxvZyByZXBsYXkgcHJvY2VkdXJlLCB3ZSB3b3VsZCBs b3NlIHRoZSBmaXJzdCBkaXJlY3RvcnkgYW5kIGFsbCBpdHMKKyAqIGZpbGVzIChmaWxlIGZvb2Jh cikuCisgKiBGb3IgdGhlIGNhc2Ugd2hlcmUgaW5vZGUgWSBpcyBub3QgYSBkaXJlY3Rvcnkgd2Ug c2ltcGx5IGVuZCB1cCBsb3NpbmcgaXQ6CisgKgorICogZWNobyAiMTIzIiA+IC9tbnQvZm9vCisg KiBzeW5jCisgKiBtdiAvbW50L2ZvbyAvbW50L2JhcgorICogZWNobyAiYWJjIiA+IC9tbnQvZm9v CisgKiB4ZnNfaW8gLWMgZnN5bmMgL21udC9mb28KKyAqIDxwb3dlciBmYWlsPgorICoKKyAqIFdl IGFsc28gbmVlZCB0aGlzIGZvciBjYXNlcyB3aGVyZSBhIHNuYXBzaG90IGVudHJ5IGlzIHJlcGxh Y2VkIGJ5IHNvbWUgb3RoZXIKKyAqIGVudHJ5IChmaWxlIG9yIGRpcmVjdG9yeSkgb3RoZXJ3aXNl IHdlIGVuZCB1cCB3aXRoIGFuIHVucmVwbGF5YWJsZSBsb2cgZHVlIHRvCisgKiBhdHRlbXB0cyB0 byBkZWxldGUgdGhlIHNuYXBzaG90IGVudHJ5IChlbnRyeSBvZiB0eXBlIEJUUkZTX1JPT1RfSVRF TV9LRVkpIGFzCisgKiBpZiBpdCB3ZXJlIGEgcmVndWxhciBlbnRyeToKKyAqCisgKiBta2RpciAv bW50L3gKKyAqIGJ0cmZzIHN1YnZvbHVtZSBzbmFwc2hvdCAvbW50IC9tbnQveC9zbmFwCisgKiBi dHJmcyBzdWJ2b2x1bWUgZGVsZXRlIC9tbnQveC9zbmFwCisgKiBybWRpciAvbW50L3gKKyAqIG1r ZGlyIC9tbnQveAorICogZnN5bmMgL21udC94IG9yIGZzeW5jIHNvbWUgbmV3IGZpbGUgaW5zaWRl IGl0CisgKiA8cG93ZXIgZmFpbD4KKyAqCisgKiBUaGUgc25hcHNob3QgZGVsZXRlLCBybWRpciBv ZiB4LCBta2RpciBvZiBhIG5ldyB4IGFuZCB0aGUgZnN5bmMgYWxsIGhhcHBlbiBpbgorICogdGhl IHNhbWUgdHJhbnNhY3Rpb24uCisgKi8KK3N0YXRpYyBpbnQgYnRyZnNfY2hlY2tfcmVmX25hbWVf b3ZlcnJpZGUoc3RydWN0IGV4dGVudF9idWZmZXIgKmViLAorCQkJCQkgY29uc3QgaW50IHNsb3Qs CisJCQkJCSBjb25zdCBzdHJ1Y3QgYnRyZnNfa2V5ICprZXksCisJCQkJCSBzdHJ1Y3QgaW5vZGUg Kmlub2RlKQoreworCWludCByZXQ7CisJc3RydWN0IGJ0cmZzX3BhdGggKnNlYXJjaF9wYXRoOwor CWNoYXIgKm5hbWUgPSBOVUxMOworCXUzMiBuYW1lX2xlbiA9IDA7CisJdTMyIGl0ZW1fc2l6ZSA9 IGJ0cmZzX2l0ZW1fc2l6ZV9ucihlYiwgc2xvdCk7CisJdTMyIGN1cl9vZmZzZXQgPSAwOworCXVu c2lnbmVkIGxvbmcgcHRyID0gYnRyZnNfaXRlbV9wdHJfb2Zmc2V0KGViLCBzbG90KTsKKworCXNl YXJjaF9wYXRoID0gYnRyZnNfYWxsb2NfcGF0aCgpOworCWlmICghc2VhcmNoX3BhdGgpCisJCXJl dHVybiAtRU5PTUVNOworCXNlYXJjaF9wYXRoLT5zZWFyY2hfY29tbWl0X3Jvb3QgPSAxOworCXNl YXJjaF9wYXRoLT5za2lwX2xvY2tpbmcgPSAxOworCisJd2hpbGUgKGN1cl9vZmZzZXQgPCBpdGVt X3NpemUpIHsKKwkJdTY0IHBhcmVudDsKKwkJdTMyIHRoaXNfbmFtZV9sZW47CisJCXUzMiB0aGlz X2xlbjsKKwkJdW5zaWduZWQgbG9uZyBuYW1lX3B0cjsKKwkJc3RydWN0IGJ0cmZzX2Rpcl9pdGVt ICpkaTsKKworCQlpZiAoa2V5LT50eXBlID09IEJUUkZTX0lOT0RFX1JFRl9LRVkpIHsKKwkJCXN0 cnVjdCBidHJmc19pbm9kZV9yZWYgKmlyZWY7CisKKwkJCWlyZWYgPSAoc3RydWN0IGJ0cmZzX2lu b2RlX3JlZiAqKShwdHIgKyBjdXJfb2Zmc2V0KTsKKwkJCXBhcmVudCA9IGtleS0+b2Zmc2V0Owor CQkJdGhpc19uYW1lX2xlbiA9IGJ0cmZzX2lub2RlX3JlZl9uYW1lX2xlbihlYiwgaXJlZik7CisJ CQluYW1lX3B0ciA9ICh1bnNpZ25lZCBsb25nKShpcmVmICsgMSk7CisJCQl0aGlzX2xlbiA9IHNp emVvZigqaXJlZikgKyB0aGlzX25hbWVfbGVuOworCQl9IGVsc2UgeworCQkJc3RydWN0IGJ0cmZz X2lub2RlX2V4dHJlZiAqZXh0cmVmOworCisJCQlleHRyZWYgPSAoc3RydWN0IGJ0cmZzX2lub2Rl X2V4dHJlZiAqKShwdHIgKworCQkJCQkJCSAgICAgICBjdXJfb2Zmc2V0KTsKKwkJCXBhcmVudCA9 IGJ0cmZzX2lub2RlX2V4dHJlZl9wYXJlbnQoZWIsIGV4dHJlZik7CisJCQl0aGlzX25hbWVfbGVu ID0gYnRyZnNfaW5vZGVfZXh0cmVmX25hbWVfbGVuKGViLCBleHRyZWYpOworCQkJbmFtZV9wdHIg PSAodW5zaWduZWQgbG9uZykmZXh0cmVmLT5uYW1lOworCQkJdGhpc19sZW4gPSBzaXplb2YoKmV4 dHJlZikgKyB0aGlzX25hbWVfbGVuOworCQl9CisKKwkJaWYgKHRoaXNfbmFtZV9sZW4gPiBuYW1l X2xlbikgeworCQkJY2hhciAqbmV3X25hbWU7CisKKwkJCW5ld19uYW1lID0ga3JlYWxsb2MobmFt ZSwgdGhpc19uYW1lX2xlbiwgR0ZQX05PRlMpOworCQkJaWYgKCFuZXdfbmFtZSkgeworCQkJCXJl dCA9IC1FTk9NRU07CisJCQkJZ290byBvdXQ7CisJCQl9CisJCQluYW1lX2xlbiA9IHRoaXNfbmFt ZV9sZW47CisJCQluYW1lID0gbmV3X25hbWU7CisJCX0KKworCQlyZWFkX2V4dGVudF9idWZmZXIo ZWIsIG5hbWUsIG5hbWVfcHRyLCB0aGlzX25hbWVfbGVuKTsKKwkJZGkgPSBidHJmc19sb29rdXBf ZGlyX2l0ZW0oTlVMTCwgQlRSRlNfSShpbm9kZSktPnJvb3QsCisJCQkJCSAgIHNlYXJjaF9wYXRo LCBwYXJlbnQsCisJCQkJCSAgIG5hbWUsIHRoaXNfbmFtZV9sZW4sIDApOworCQlpZiAoZGkgJiYg IUlTX0VSUihkaSkpIHsKKwkJCXJldCA9IDE7CisJCQlnb3RvIG91dDsKKwkJfSBlbHNlIGlmIChJ U19FUlIoZGkpKSB7CisJCQlyZXQgPSBQVFJfRVJSKGRpKTsKKwkJCWdvdG8gb3V0OworCQl9CisJ CWJ0cmZzX3JlbGVhc2VfcGF0aChzZWFyY2hfcGF0aCk7CisKKwkJY3VyX29mZnNldCArPSB0aGlz X2xlbjsKKwl9CisJcmV0ID0gMDsKK291dDoKKwlidHJmc19mcmVlX3BhdGgoc2VhcmNoX3BhdGgp OworCWtmcmVlKG5hbWUpOworCXJldHVybiByZXQ7Cit9CisKIC8qIGxvZyBhIHNpbmdsZSBpbm9k ZSBpbiB0aGUgdHJlZSBsb2cuCiAgKiBBdCBsZWFzdCBvbmUgcGFyZW50IGRpcmVjdG9yeSBmb3Ig dGhpcyBpbm9kZSBtdXN0IGV4aXN0IGluIHRoZSB0cmVlCiAgKiBvciBiZSBsb2dnZWQgYWxyZWFk eS4KQEAgLTQwMjcsNiArNDE0OCwyMiBAQCBhZ2FpbjoKIAkJaWYgKG1pbl9rZXkudHlwZSA9PSBC VFJGU19JTk9ERV9JVEVNX0tFWSkKIAkJCW5lZWRfbG9nX2lub2RlX2l0ZW0gPSBmYWxzZTsKIAor CQlpZiAoKG1pbl9rZXkudHlwZSA9PSBCVFJGU19JTk9ERV9SRUZfS0VZIHx8CisJCSAgICAgbWlu X2tleS50eXBlID09IEJUUkZTX0lOT0RFX0VYVFJFRl9LRVkpICYmCisJCSAgICBCVFJGU19JKGlu b2RlKS0+Z2VuZXJhdGlvbiA9PSB0cmFucy0+dHJhbnNpZCkgeworCQkJcmV0ID0gYnRyZnNfY2hl Y2tfcmVmX25hbWVfb3ZlcnJpZGUocGF0aC0+bm9kZXNbMF0sCisJCQkJCQkJICAgIHBhdGgtPnNs b3RzWzBdLAorCQkJCQkJCSAgICAmbWluX2tleSwgaW5vZGUpOworCQkJaWYgKHJldCA8IDApIHsK KwkJCQllcnIgPSByZXQ7CisJCQkJZ290byBvdXRfdW5sb2NrOworCQkJfSBlbHNlIGlmIChyZXQg PiAwKSB7CisJCQkJZXJyID0gMTsKKwkJCQlidHJmc19zZXRfbG9nX2Z1bGxfY29tbWl0KHJvb3Qt PmZzX2luZm8sIHRyYW5zKTsKKwkJCQlnb3RvIG91dF91bmxvY2s7CisJCQl9CisJCX0KKwogCQlz cmMgPSBwYXRoLT5ub2Rlc1swXTsKIAkJaWYgKGluc19uciAmJiBpbnNfc3RhcnRfc2xvdCArIGlu c19uciA9PSBwYXRoLT5zbG90c1swXSkgewogCQkJaW5zX25yKys7CmRpZmYgLS1naXQgYS9mcy9j b3JlZHVtcC5jIGIvZnMvY29yZWR1bXAuYwppbmRleCA3MmY5N2E1Njk2NmYuLjA5YzIwMTE2MWJm ZiAxMDA2NDQKLS0tIGEvZnMvY29yZWR1bXAuYworKysgYi9mcy9jb3JlZHVtcC5jCkBAIC0zMiw2 ICszMiw5IEBACiAjaW5jbHVkZSA8bGludXgvcGlwZV9mc19pLmg+CiAjaW5jbHVkZSA8bGludXgv b29tLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGF0Lmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQu aD4KKyNpbmNsdWRlIDxsaW51eC9mcy5oPgorI2luY2x1ZGUgPGxpbnV4L3BhdGguaD4KIAogI2lu Y2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL21tdV9jb250ZXh0Lmg+CkBAIC02 MTMsNiArNjE2LDggQEAgdm9pZCBkb19jb3JlZHVtcChjb25zdCBzaWdpbmZvX3QgKnNpZ2luZm8p CiAJCX0KIAl9IGVsc2UgewogCQlzdHJ1Y3QgaW5vZGUgKmlub2RlOworCQlpbnQgb3Blbl9mbGFn cyA9IE9fQ1JFQVQgfCBPX1JEV1IgfCBPX05PRk9MTE9XIHwKKwkJCQkgT19MQVJHRUZJTEUgfCBP X0VYQ0w7CiAKIAkJaWYgKGNwcm0ubGltaXQgPCBiaW5mbXQtPm1pbl9jb3JlZHVtcCkKIAkJCWdv dG8gZmFpbF91bmxvY2s7CkBAIC02NTEsMTAgKzY1NiwyNyBAQCB2b2lkIGRvX2NvcmVkdW1wKGNv bnN0IHNpZ2luZm9fdCAqc2lnaW5mbykKIAkJICogd2hhdCBtYXR0ZXJzIGlzIHRoYXQgYXQgbGVh c3Qgb25lIG9mIHRoZSB0d28gcHJvY2Vzc2VzCiAJCSAqIHdyaXRlcyBpdHMgY29yZWR1bXAgc3Vj Y2Vzc2Z1bGx5LCBub3Qgd2hpY2ggb25lLgogCQkgKi8KLQkJY3BybS5maWxlID0gZmlscF9vcGVu KGNuLmNvcmVuYW1lLAotCQkJCSBPX0NSRUFUIHwgMiB8IE9fTk9GT0xMT1cgfAotCQkJCSBPX0xB UkdFRklMRSB8IE9fRVhDTCwKLQkJCQkgMDYwMCk7CisJCWlmIChuZWVkX3N1aWRfc2FmZSkgewor CQkJLyoKKwkJCSAqIFVzaW5nIHVzZXIgbmFtZXNwYWNlcywgbm9ybWFsIHVzZXIgdGFza3MgY2Fu IGNoYW5nZQorCQkJICogdGhlaXIgY3VycmVudC0+ZnMtPnJvb3QgdG8gcG9pbnQgdG8gYXJiaXRy YXJ5CisJCQkgKiBkaXJlY3Rvcmllcy4gU2luY2UgdGhlIGludGVudGlvbiBvZiB0aGUgIm9ubHkg ZHVtcAorCQkJICogd2l0aCBhIGZ1bGx5IHF1YWxpZmllZCBwYXRoIiBydWxlIGlzIHRvIGNvbnRy b2wgd2hlcmUKKwkJCSAqIGNvcmVkdW1wcyBtYXkgYmUgcGxhY2VkIHVzaW5nIHJvb3QgcHJpdmls ZWdlcywKKwkJCSAqIGN1cnJlbnQtPmZzLT5yb290IG11c3Qgbm90IGJlIHVzZWQuIEluc3RlYWQs IHVzZSB0aGUKKwkJCSAqIHJvb3QgZGlyZWN0b3J5IG9mIGluaXRfdGFzay4KKwkJCSAqLworCQkJ c3RydWN0IHBhdGggcm9vdDsKKworCQkJdGFza19sb2NrKCZpbml0X3Rhc2spOworCQkJZ2V0X2Zz X3Jvb3QoaW5pdF90YXNrLmZzLCAmcm9vdCk7CisJCQl0YXNrX3VubG9jaygmaW5pdF90YXNrKTsK KwkJCWNwcm0uZmlsZSA9IGZpbGVfb3Blbl9yb290KHJvb3QuZGVudHJ5LCByb290Lm1udCwKKwkJ CQljbi5jb3JlbmFtZSwgb3Blbl9mbGFncywgMDYwMCk7CisJCQlwYXRoX3B1dCgmcm9vdCk7CisJ CX0gZWxzZSB7CisJCQljcHJtLmZpbGUgPSBmaWxwX29wZW4oY24uY29yZW5hbWUsIG9wZW5fZmxh Z3MsIDA2MDApOworCQl9CiAJCWlmIChJU19FUlIoY3BybS5maWxlKSkKIAkJCWdvdG8gZmFpbF91 bmxvY2s7CiAKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvZXh0NC5oIGIvZnMvZXh0NC9leHQ0LmgKaW5k ZXggMDc5OGMwYmZlNTdiLi4wOGRjNjA1YmVjNDggMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvZXh0NC5o CisrKyBiL2ZzL2V4dDQvZXh0NC5oCkBAIC04NTAsNiArODUwLDI5IEBAIGRvIHsJCQkJCQkJCQkg ICAgICAgXAogI2luY2x1ZGUgImV4dGVudHNfc3RhdHVzLmgiCiAKIC8qCisgKiBMb2NrIHN1YmNs YXNzZXMgZm9yIGlfZGF0YV9zZW0gaW4gdGhlIGV4dDRfaW5vZGVfaW5mbyBzdHJ1Y3R1cmUuCisg KgorICogVGhlc2UgYXJlIG5lZWRlZCB0byBhdm9pZCBsb2NrZGVwIGZhbHNlIHBvc2l0aXZlcyB3 aGVuIHdlIG5lZWQgdG8KKyAqIGFsbG9jYXRlIGJsb2NrcyB0byB0aGUgcXVvdGEgaW5vZGUgZHVy aW5nIGV4dDRfbWFwX2Jsb2NrcygpLCB3aGlsZQorICogaG9sZGluZyBpX2RhdGFfc2VtIGZvciBh IG5vcm1hbCAobm9uLXF1b3RhKSBpbm9kZS4gIFNpbmNlIHdlIGRvbid0CisgKiBkbyBxdW90YSB0 cmFja2luZyBmb3IgdGhlIHF1b3RhIGlub2RlLCB0aGlzIGF2b2lkcyBkZWFkbG9jayAoYXMKKyAq IHdlbGwgYXMgaW5maW5pdGUgcmVjdXJzaW9uLCBzaW5jZSBpdCBpc24ndCB0dXJ0bGVzIGFsbCB0 aGUgd2F5CisgKiBkb3duLi4uKQorICoKKyAqICBJX0RBVEFfU0VNX05PUk1BTCAtIFVzZWQgZm9y IG1vc3QgaW5vZGVzCisgKiAgSV9EQVRBX1NFTV9PVEhFUiAgLSBVc2VkIGJ5IG1vdmVfaW5vZGUu YyBmb3IgdGhlIHNlY29uZCBub3JtYWwgaW5vZGUKKyAqCQkJICB3aGVyZSB0aGUgc2Vjb25kIGlu b2RlIGhhcyBsYXJnZXIgaW5vZGUgbnVtYmVyCisgKgkJCSAgdGhhbiB0aGUgZmlyc3QKKyAqICBJ X0RBVEFfU0VNX1FVT1RBICAtIFVzZWQgZm9yIHF1b3RhIGlub2RlcyBvbmx5CisgKi8KK2VudW0g eworCUlfREFUQV9TRU1fTk9STUFMID0gMCwKKwlJX0RBVEFfU0VNX09USEVSLAorCUlfREFUQV9T RU1fUVVPVEEsCit9OworCisKKy8qCiAgKiBmb3VydGggZXh0ZW5kZWQgZmlsZSBzeXN0ZW0gaW5v ZGUgZGF0YSBpbiBtZW1vcnkKICAqLwogc3RydWN0IGV4dDRfaW5vZGVfaW5mbyB7CmRpZmYgLS1n aXQgYS9mcy9leHQ0L2lub2RlLmMgYi9mcy9leHQ0L2lub2RlLmMKaW5kZXggOWFmN2VlN2QwMTkz Li5jOWQyMTY0MmNhNzkgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvaW5vZGUuYworKysgYi9mcy9leHQ0 L2lub2RlLmMKQEAgLTUwMDgsNiArNTAwOCw4IEBAIGludCBleHQ0X21hcmtfaW5vZGVfZGlydHko aGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSkKIAltaWdodF9zbGVlcCgpOwog CXRyYWNlX2V4dDRfbWFya19pbm9kZV9kaXJ0eShpbm9kZSwgX1JFVF9JUF8pOwogCWVyciA9IGV4 dDRfcmVzZXJ2ZV9pbm9kZV93cml0ZShoYW5kbGUsIGlub2RlLCAmaWxvYyk7CisJaWYgKGVycikK KwkJcmV0dXJuIGVycjsKIAlpZiAoZXh0NF9oYW5kbGVfdmFsaWQoaGFuZGxlKSAmJgogCSAgICBF WFQ0X0koaW5vZGUpLT5pX2V4dHJhX2lzaXplIDwgc2JpLT5zX3dhbnRfZXh0cmFfaXNpemUgJiYK IAkgICAgIWV4dDRfdGVzdF9pbm9kZV9zdGF0ZShpbm9kZSwgRVhUNF9TVEFURV9OT19FWFBBTkQp KSB7CkBAIC01MDM4LDkgKzUwNDAsNyBAQCBpbnQgZXh0NF9tYXJrX2lub2RlX2RpcnR5KGhhbmRs ZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUpCiAJCQl9CiAJCX0KIAl9Ci0JaWYgKCFl cnIpCi0JCWVyciA9IGV4dDRfbWFya19pbG9jX2RpcnR5KGhhbmRsZSwgaW5vZGUsICZpbG9jKTsK LQlyZXR1cm4gZXJyOworCXJldHVybiBleHQ0X21hcmtfaWxvY19kaXJ0eShoYW5kbGUsIGlub2Rl LCAmaWxvYyk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9mcy9leHQ0L21vdmVfZXh0ZW50LmMgYi9m cy9leHQ0L21vdmVfZXh0ZW50LmMKaW5kZXggMjQyM2IwMDY4MTgzLi40Y2RiMGRlYWI4MzAgMTAw NjQ0Ci0tLSBhL2ZzL2V4dDQvbW92ZV9leHRlbnQuYworKysgYi9mcy9leHQ0L21vdmVfZXh0ZW50 LmMKQEAgLTE1NCwxMCArMTU0LDEwIEBAIGV4dDRfZG91YmxlX2Rvd25fd3JpdGVfZGF0YV9zZW0o c3RydWN0IGlub2RlICpmaXJzdCwgc3RydWN0IGlub2RlICpzZWNvbmQpCiB7CiAJaWYgKGZpcnN0 IDwgc2Vjb25kKSB7CiAJCWRvd25fd3JpdGUoJkVYVDRfSShmaXJzdCktPmlfZGF0YV9zZW0pOwot CQlkb3duX3dyaXRlX25lc3RlZCgmRVhUNF9JKHNlY29uZCktPmlfZGF0YV9zZW0sIFNJTkdMRV9E RVBUSF9ORVNUSU5HKTsKKwkJZG93bl93cml0ZV9uZXN0ZWQoJkVYVDRfSShzZWNvbmQpLT5pX2Rh dGFfc2VtLCBJX0RBVEFfU0VNX09USEVSKTsKIAl9IGVsc2UgewogCQlkb3duX3dyaXRlKCZFWFQ0 X0koc2Vjb25kKS0+aV9kYXRhX3NlbSk7Ci0JCWRvd25fd3JpdGVfbmVzdGVkKCZFWFQ0X0koZmly c3QpLT5pX2RhdGFfc2VtLCBTSU5HTEVfREVQVEhfTkVTVElORyk7CisJCWRvd25fd3JpdGVfbmVz dGVkKCZFWFQ0X0koZmlyc3QpLT5pX2RhdGFfc2VtLCBJX0RBVEFfU0VNX09USEVSKTsKIAogCX0K IH0KQEAgLTExMjQsNiArMTEyNCwxMyBAQCBtZXh0X2NoZWNrX2FyZ3VtZW50cyhzdHJ1Y3QgaW5v ZGUgKm9yaWdfaW5vZGUsCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAorCWlmIChJU19OT1FVT1RB KG9yaWdfaW5vZGUpIHx8IElTX05PUVVPVEEoZG9ub3JfaW5vZGUpKSB7CisJCWV4dDRfZGVidWco ImV4dDQgbW92ZSBleHRlbnQ6IFRoZSBhcmd1bWVudCBmaWxlcyBzaG91bGQgIgorCQkJIm5vdCBi ZSBxdW90YSBmaWxlcyBbaW5vOm9yaWcgJWx1LCBkb25vciAlbHVdXG4iLAorCQkJb3JpZ19pbm9k ZS0+aV9pbm8sIGRvbm9yX2lub2RlLT5pX2lubyk7CisJCXJldHVybiAtRUJVU1k7CisJfQorCiAJ LyogRXh0NCBtb3ZlIGV4dGVudCBzdXBwb3J0cyBvbmx5IGV4dGVudCBiYXNlZCBmaWxlICovCiAJ aWYgKCEoZXh0NF90ZXN0X2lub2RlX2ZsYWcob3JpZ19pbm9kZSwgRVhUNF9JTk9ERV9FWFRFTlRT KSkpIHsKIAkJZXh0NF9kZWJ1ZygiZXh0NCBtb3ZlIGV4dGVudDogb3JpZyBmaWxlIGlzIG5vdCBl eHRlbnRzICIKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvc3VwZXIuYyBiL2ZzL2V4dDQvc3VwZXIuYwpp bmRleCA5YjkxNjg3MDVlMTYuLjgzMDI2ZjQwZDljZCAxMDA2NDQKLS0tIGEvZnMvZXh0NC9zdXBl ci5jCisrKyBiL2ZzL2V4dDQvc3VwZXIuYwpAQCAtNTE2MCw2ICs1MTYwLDIwIEBAIHN0YXRpYyBp bnQgZXh0NF9xdW90YV9vbl9tb3VudChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgdHlwZSkK IAkJCQkJRVhUNF9TQihzYiktPnNfanF1b3RhX2ZtdCwgdHlwZSk7CiB9CiAKK3N0YXRpYyB2b2lk IGxvY2tkZXBfc2V0X3F1b3RhX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBzdWJjbGFz cykKK3sKKwlzdHJ1Y3QgZXh0NF9pbm9kZV9pbmZvICplaSA9IEVYVDRfSShpbm9kZSk7CisKKwkv KiBUaGUgZmlyc3QgYXJndW1lbnQgb2YgbG9ja2RlcF9zZXRfc3ViY2xhc3MgaGFzIHRvIGJlCisJ ICogKmV4YWN0bHkqIHRoZSBzYW1lIGFzIHRoZSBhcmd1bWVudCB0byBpbml0X3J3c2VtKCkgLS0t IGluCisJICogdGhpcyBjYXNlLCBpbiBpbml0X29uY2UoKSAtLS0gb3IgbG9ja2RlcCBnZXRzIHVu aGFwcHkKKwkgKiBiZWNhdXNlIHRoZSBuYW1lIG9mIHRoZSBsb2NrIGlzIHNldCB1c2luZyB0aGUK KwkgKiBzdHJpbmdpZmljYXRpb24gb2YgdGhlIGFyZ3VtZW50IHRvIGluaXRfcndzZW0oKS4KKwkg Ki8KKwkodm9pZCkgZWk7CS8qIHNodXQgdXAgY2xhbmcgd2FybmluZyBpZiAhQ09ORklHX0xPQ0tE RVAgKi8KKwlsb2NrZGVwX3NldF9zdWJjbGFzcygmZWktPmlfZGF0YV9zZW0sIHN1YmNsYXNzKTsK K30KKwogLyoKICAqIFN0YW5kYXJkIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBvbiBxdW90YV9vbgog ICovCkBAIC01MTk5LDggKzUyMTMsMTIgQEAgc3RhdGljIGludCBleHQ0X3F1b3RhX29uKHN0cnVj dCBzdXBlcl9ibG9jayAqc2IsIGludCB0eXBlLCBpbnQgZm9ybWF0X2lkLAogCQlpZiAoZXJyKQog CQkJcmV0dXJuIGVycjsKIAl9Ci0KLQlyZXR1cm4gZHF1b3RfcXVvdGFfb24oc2IsIHR5cGUsIGZv cm1hdF9pZCwgcGF0aCk7CisJbG9ja2RlcF9zZXRfcXVvdGFfaW5vZGUocGF0aC0+ZGVudHJ5LT5k X2lub2RlLCBJX0RBVEFfU0VNX1FVT1RBKTsKKwllcnIgPSBkcXVvdF9xdW90YV9vbihzYiwgdHlw ZSwgZm9ybWF0X2lkLCBwYXRoKTsKKwlpZiAoZXJyKQorCQlsb2NrZGVwX3NldF9xdW90YV9pbm9k ZShwYXRoLT5kZW50cnktPmRfaW5vZGUsCisJCQkJCSAgICAgSV9EQVRBX1NFTV9OT1JNQUwpOwor CXJldHVybiBlcnI7CiB9CiAKIHN0YXRpYyBpbnQgZXh0NF9xdW90YV9lbmFibGUoc3RydWN0IHN1 cGVyX2Jsb2NrICpzYiwgaW50IHR5cGUsIGludCBmb3JtYXRfaWQsCkBAIC01MjI2LDggKzUyNDQs MTEgQEAgc3RhdGljIGludCBleHQ0X3F1b3RhX2VuYWJsZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNi LCBpbnQgdHlwZSwgaW50IGZvcm1hdF9pZCwKIAogCS8qIERvbid0IGFjY291bnQgcXVvdGEgZm9y IHF1b3RhIGZpbGVzIHRvIGF2b2lkIHJlY3Vyc2lvbiAqLwogCXFmX2lub2RlLT5pX2ZsYWdzIHw9 IFNfTk9RVU9UQTsKKwlsb2NrZGVwX3NldF9xdW90YV9pbm9kZShxZl9pbm9kZSwgSV9EQVRBX1NF TV9RVU9UQSk7CiAJZXJyID0gZHF1b3RfZW5hYmxlKHFmX2lub2RlLCB0eXBlLCBmb3JtYXRfaWQs IGZsYWdzKTsKIAlpcHV0KHFmX2lub2RlKTsKKwlpZiAoZXJyKQorCQlsb2NrZGVwX3NldF9xdW90 YV9pbm9kZShxZl9pbm9kZSwgSV9EQVRBX1NFTV9OT1JNQUwpOwogCiAJcmV0dXJuIGVycjsKIH0K ZGlmZiAtLWdpdCBhL2ZzL2ZoYW5kbGUuYyBiL2ZzL2ZoYW5kbGUuYwppbmRleCBkNTk3MTJkZmEz ZTcuLmNhM2MzZGQwMTc4OSAxMDA2NDQKLS0tIGEvZnMvZmhhbmRsZS5jCisrKyBiL2ZzL2ZoYW5k bGUuYwpAQCAtMjI4LDcgKzIyOCw3IEBAIGxvbmcgZG9faGFuZGxlX29wZW4oaW50IG1vdW50ZGly ZmQsCiAJCXBhdGhfcHV0KCZwYXRoKTsKIAkJcmV0dXJuIGZkOwogCX0KLQlmaWxlID0gZmlsZV9v cGVuX3Jvb3QocGF0aC5kZW50cnksIHBhdGgubW50LCAiIiwgb3Blbl9mbGFnKTsKKwlmaWxlID0g ZmlsZV9vcGVuX3Jvb3QocGF0aC5kZW50cnksIHBhdGgubW50LCAiIiwgb3Blbl9mbGFnLCAwKTsK IAlpZiAoSVNfRVJSKGZpbGUpKSB7CiAJCXB1dF91bnVzZWRfZmQoZmQpOwogCQlyZXR2YWwgPSAg UFRSX0VSUihmaWxlKTsKZGlmZiAtLWdpdCBhL2ZzL2Z1c2UvZmlsZS5jIGIvZnMvZnVzZS9maWxl LmMKaW5kZXggZTJhMmMxNGE5MGVlLi5hNjQ0MjA0MWFiNjQgMTAwNjQ0Ci0tLSBhL2ZzL2Z1c2Uv ZmlsZS5jCisrKyBiL2ZzL2Z1c2UvZmlsZS5jCkBAIC0yODc2LDYgKzI4NzYsNyBAQCBmdXNlX2Rp cmVjdF9JTyhpbnQgcncsIHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICppdGVy LAogCWxvZmZfdCBpX3NpemU7CiAJc2l6ZV90IGNvdW50ID0gaW92X2l0ZXJfY291bnQoaXRlcik7 CiAJc3RydWN0IGZ1c2VfaW9fcHJpdiAqaW87CisJYm9vbCBpc19zeW5jID0gaXNfc3luY19raW9j Yihpb2NiKTsKIAogCXBvcyA9IG9mZnNldDsKIAlpbm9kZSA9IGZpbGUtPmZfbWFwcGluZy0+aG9z dDsKQEAgLTI5MTUsNyArMjkxNiw3IEBAIGZ1c2VfZGlyZWN0X0lPKGludCBydywgc3RydWN0IGtp b2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIsCiAJICogdG8gd2FpdCBvbiByZWFsIGFz eW5jIEkvTyByZXF1ZXN0cywgc28gd2UgbXVzdCBzdWJtaXQgdGhpcyByZXF1ZXN0CiAJICogc3lu Y2hyb25vdXNseS4KIAkgKi8KLQlpZiAoIWlzX3N5bmNfa2lvY2IoaW9jYikgJiYgKG9mZnNldCAr IGNvdW50ID4gaV9zaXplKSAmJiBydyA9PSBXUklURSkKKwlpZiAoIWlzX3N5bmMgJiYgKG9mZnNl dCArIGNvdW50ID4gaV9zaXplKSAmJiBydyA9PSBXUklURSkKIAkJaW8tPmFzeW5jID0gZmFsc2U7 CiAKIAlpZiAocncgPT0gV1JJVEUpCkBAIC0yOTI3LDcgKzI5MjgsNyBAQCBmdXNlX2RpcmVjdF9J TyhpbnQgcncsIHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICppdGVyLAogCQlm dXNlX2Fpb19jb21wbGV0ZShpbywgcmV0IDwgMCA/IHJldCA6IDAsIC0xKTsKIAogCQkvKiB3ZSBo YXZlIGEgbm9uLWV4dGVuZGluZywgYXN5bmMgcmVxdWVzdCwgc28gcmV0dXJuICovCi0JCWlmICgh aXNfc3luY19raW9jYihpb2NiKSkKKwkJaWYgKCFpc19zeW5jKQogCQkJcmV0dXJuIC1FSU9DQlFV RVVFRDsKIAogCQlyZXQgPSB3YWl0X29uX3N5bmNfa2lvY2IoaW9jYik7CmRpZmYgLS1naXQgYS9m cy9qYmQyL2pvdXJuYWwuYyBiL2ZzL2piZDIvam91cm5hbC5jCmluZGV4IDM5YzNjMmM2NDc0MC4u ODM0YTljMjU4NWE5IDEwMDY0NAotLS0gYS9mcy9qYmQyL2pvdXJuYWwuYworKysgYi9mcy9qYmQy L2pvdXJuYWwuYwpAQCAtMTQyMywxMSArMTQyMywxMiBAQCBvdXQ6CiAvKioKICAqIGpiZDJfbWFy a19qb3VybmFsX2VtcHR5KCkgLSBNYXJrIG9uIGRpc2sgam91cm5hbCBhcyBlbXB0eS4KICAqIEBq b3VybmFsOiBUaGUgam91cm5hbCB0byB1cGRhdGUuCisgKiBAd3JpdGVfb3A6IFdpdGggd2hpY2gg b3BlcmF0aW9uIHNob3VsZCB3ZSB3cml0ZSB0aGUgam91cm5hbCBzYgogICoKICAqIFVwZGF0ZSBh IGpvdXJuYWwncyBkeW5hbWljIHN1cGVyYmxvY2sgZmllbGRzIHRvIHNob3cgdGhhdCBqb3VybmFs IGlzIGVtcHR5LgogICogV3JpdGUgdXBkYXRlZCBzdXBlcmJsb2NrIHRvIGRpc2sgd2FpdGluZyBm b3IgSU8gdG8gY29tcGxldGUuCiAgKi8KLXN0YXRpYyB2b2lkIGpiZDJfbWFya19qb3VybmFsX2Vt cHR5KGpvdXJuYWxfdCAqam91cm5hbCkKK3N0YXRpYyB2b2lkIGpiZDJfbWFya19qb3VybmFsX2Vt cHR5KGpvdXJuYWxfdCAqam91cm5hbCwgaW50IHdyaXRlX29wKQogewogCWpvdXJuYWxfc3VwZXJi bG9ja190ICpzYiA9IGpvdXJuYWwtPmpfc3VwZXJibG9jazsKIApAQCAtMTQ0NSw3ICsxNDQ2LDcg QEAgc3RhdGljIHZvaWQgamJkMl9tYXJrX2pvdXJuYWxfZW1wdHkoam91cm5hbF90ICpqb3VybmFs KQogCXNiLT5zX3N0YXJ0ICAgID0gY3B1X3RvX2JlMzIoMCk7CiAJcmVhZF91bmxvY2soJmpvdXJu YWwtPmpfc3RhdGVfbG9jayk7CiAKLQlqYmQyX3dyaXRlX3N1cGVyYmxvY2soam91cm5hbCwgV1JJ VEVfRlVBKTsKKwlqYmQyX3dyaXRlX3N1cGVyYmxvY2soam91cm5hbCwgd3JpdGVfb3ApOwogCiAJ LyogTG9nIGlzIG5vIGxvbmdlciBlbXB0eSAqLwogCXdyaXRlX2xvY2soJmpvdXJuYWwtPmpfc3Rh dGVfbG9jayk7CkBAIC0xNzMwLDcgKzE3MzEsMTMgQEAgaW50IGpiZDJfam91cm5hbF9kZXN0cm95 KGpvdXJuYWxfdCAqam91cm5hbCkKIAlpZiAoam91cm5hbC0+al9zYl9idWZmZXIpIHsKIAkJaWYg KCFpc19qb3VybmFsX2Fib3J0ZWQoam91cm5hbCkpIHsKIAkJCW11dGV4X2xvY2soJmpvdXJuYWwt PmpfY2hlY2twb2ludF9tdXRleCk7Ci0JCQlqYmQyX21hcmtfam91cm5hbF9lbXB0eShqb3VybmFs KTsKKworCQkJd3JpdGVfbG9jaygmam91cm5hbC0+al9zdGF0ZV9sb2NrKTsKKwkJCWpvdXJuYWwt PmpfdGFpbF9zZXF1ZW5jZSA9CisJCQkJKytqb3VybmFsLT5qX3RyYW5zYWN0aW9uX3NlcXVlbmNl OworCQkJd3JpdGVfdW5sb2NrKCZqb3VybmFsLT5qX3N0YXRlX2xvY2spOworCisJCQlqYmQyX21h cmtfam91cm5hbF9lbXB0eShqb3VybmFsLCBXUklURV9GTFVTSF9GVUEpOwogCQkJbXV0ZXhfdW5s b2NrKCZqb3VybmFsLT5qX2NoZWNrcG9pbnRfbXV0ZXgpOwogCQl9IGVsc2UKIAkJCWVyciA9IC1F SU87CkBAIC0xOTkxLDcgKzE5OTgsNyBAQCBpbnQgamJkMl9qb3VybmFsX2ZsdXNoKGpvdXJuYWxf dCAqam91cm5hbCkKIAkgKiB0aGUgbWFnaWMgY29kZSBmb3IgYSBmdWxseS1yZWNvdmVyZWQgc3Vw ZXJibG9jay4gIEFueSBmdXR1cmUKIAkgKiBjb21taXRzIG9mIGRhdGEgdG8gdGhlIGpvdXJuYWwg d2lsbCByZXN0b3JlIHRoZSBjdXJyZW50CiAJICogc19zdGFydCB2YWx1ZS4gKi8KLQlqYmQyX21h cmtfam91cm5hbF9lbXB0eShqb3VybmFsKTsKKwlqYmQyX21hcmtfam91cm5hbF9lbXB0eShqb3Vy bmFsLCBXUklURV9GVUEpOwogCW11dGV4X3VubG9jaygmam91cm5hbC0+al9jaGVja3BvaW50X211 dGV4KTsKIAl3cml0ZV9sb2NrKCZqb3VybmFsLT5qX3N0YXRlX2xvY2spOwogCUpfQVNTRVJUKCFq b3VybmFsLT5qX3J1bm5pbmdfdHJhbnNhY3Rpb24pOwpAQCAtMjAzNyw3ICsyMDQ0LDcgQEAgaW50 IGpiZDJfam91cm5hbF93aXBlKGpvdXJuYWxfdCAqam91cm5hbCwgaW50IHdyaXRlKQogCWlmICh3 cml0ZSkgewogCQkvKiBMb2NrIHRvIG1ha2UgYXNzZXJ0aW9ucyBoYXBweS4uLiAqLwogCQltdXRl eF9sb2NrKCZqb3VybmFsLT5qX2NoZWNrcG9pbnRfbXV0ZXgpOwotCQlqYmQyX21hcmtfam91cm5h bF9lbXB0eShqb3VybmFsKTsKKwkJamJkMl9tYXJrX2pvdXJuYWxfZW1wdHkoam91cm5hbCwgV1JJ VEVfRlVBKTsKIAkJbXV0ZXhfdW5sb2NrKCZqb3VybmFsLT5qX2NoZWNrcG9pbnRfbXV0ZXgpOwog CX0KIApkaWZmIC0tZ2l0IGEvZnMvbmZzZC9uZnM0cHJvYy5jIGIvZnMvbmZzZC9uZnM0cHJvYy5j CmluZGV4IDVkMzAzMWVjYjFkZi4uNTQzMjYwNWNjZTdkIDEwMDY0NAotLS0gYS9mcy9uZnNkL25m czRwcm9jLmMKKysrIGIvZnMvbmZzZC9uZnM0cHJvYy5jCkBAIC04ODAsNiArODgwLDcgQEAgbmZz ZDRfc2VjaW5mbyhzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3QgbmZzZDRfY29tcG91bmRf c3RhdGUgKmNzdGF0ZSwKIAkJCQkgICAgJmV4cCwgJmRlbnRyeSk7CiAJaWYgKGVycikKIAkJcmV0 dXJuIGVycjsKKwlmaF91bmxvY2soJmNzdGF0ZS0+Y3VycmVudF9maCk7CiAJaWYgKGRlbnRyeS0+ ZF9pbm9kZSA9PSBOVUxMKSB7CiAJCWV4cF9wdXQoZXhwKTsKIAkJZXJyID0gbmZzZXJyX25vZW50 OwpkaWZmIC0tZ2l0IGEvZnMvbmZzZC9uZnM0eGRyLmMgYi9mcy9uZnNkL25mczR4ZHIuYwppbmRl eCA5MGRiMGM5ZmFlYzEuLmJjMGI2NzRjMmE2OCAxMDA2NDQKLS0tIGEvZnMvbmZzZC9uZnM0eGRy LmMKKysrIGIvZnMvbmZzZC9uZnM0eGRyLmMKQEAgLTEwNzIsOCArMTA3Miw5IEBAIG5mc2Q0X2Rl Y29kZV9yZW5hbWUoc3RydWN0IG5mc2Q0X2NvbXBvdW5kYXJncyAqYXJncCwgc3RydWN0IG5mc2Q0 X3JlbmFtZSAqcmVuYW1lCiAKIAlSRUFEX0JVRig0KTsKIAlyZW5hbWUtPnJuX3NuYW1lbGVuID0g YmUzMl90b19jcHVwKHArKyk7Ci0JUkVBRF9CVUYocmVuYW1lLT5ybl9zbmFtZWxlbiArIDQpOwor CVJFQURfQlVGKHJlbmFtZS0+cm5fc25hbWVsZW4pOwogCVNBVkVNRU0ocmVuYW1lLT5ybl9zbmFt ZSwgcmVuYW1lLT5ybl9zbmFtZWxlbik7CisJUkVBRF9CVUYoNCk7CiAJcmVuYW1lLT5ybl90bmFt ZWxlbiA9IGJlMzJfdG9fY3B1cChwKyspOwogCVJFQURfQlVGKHJlbmFtZS0+cm5fdG5hbWVsZW4p OwogCVNBVkVNRU0ocmVuYW1lLT5ybl90bmFtZSwgcmVuYW1lLT5ybl90bmFtZWxlbik7CkBAIC0x MTU1LDEzICsxMTU2LDE0IEBAIG5mc2Q0X2RlY29kZV9zZXRjbGllbnRpZChzdHJ1Y3QgbmZzZDRf Y29tcG91bmRhcmdzICphcmdwLCBzdHJ1Y3QgbmZzZDRfc2V0Y2xpZW50CiAJUkVBRF9CVUYoOCk7 CiAJc2V0Y2xpZW50aWQtPnNlX2NhbGxiYWNrX3Byb2cgPSBiZTMyX3RvX2NwdXAocCsrKTsKIAlz ZXRjbGllbnRpZC0+c2VfY2FsbGJhY2tfbmV0aWRfbGVuID0gYmUzMl90b19jcHVwKHArKyk7Ci0K LQlSRUFEX0JVRihzZXRjbGllbnRpZC0+c2VfY2FsbGJhY2tfbmV0aWRfbGVuICsgNCk7CisJUkVB RF9CVUYoc2V0Y2xpZW50aWQtPnNlX2NhbGxiYWNrX25ldGlkX2xlbik7CiAJU0FWRU1FTShzZXRj bGllbnRpZC0+c2VfY2FsbGJhY2tfbmV0aWRfdmFsLCBzZXRjbGllbnRpZC0+c2VfY2FsbGJhY2tf bmV0aWRfbGVuKTsKKwlSRUFEX0JVRig0KTsKIAlzZXRjbGllbnRpZC0+c2VfY2FsbGJhY2tfYWRk cl9sZW4gPSBiZTMyX3RvX2NwdXAocCsrKTsKIAotCVJFQURfQlVGKHNldGNsaWVudGlkLT5zZV9j YWxsYmFja19hZGRyX2xlbiArIDQpOworCVJFQURfQlVGKHNldGNsaWVudGlkLT5zZV9jYWxsYmFj a19hZGRyX2xlbik7CiAJU0FWRU1FTShzZXRjbGllbnRpZC0+c2VfY2FsbGJhY2tfYWRkcl92YWws IHNldGNsaWVudGlkLT5zZV9jYWxsYmFja19hZGRyX2xlbik7CisJUkVBRF9CVUYoNCk7CiAJc2V0 Y2xpZW50aWQtPnNlX2NhbGxiYWNrX2lkZW50ID0gYmUzMl90b19jcHVwKHArKyk7CiAKIAlERUNP REVfVEFJTDsKQEAgLTE2MjgsOCArMTYzMCw5IEBAIG5mc2Q0X2RlY29kZV9jb21wb3VuZChzdHJ1 Y3QgbmZzZDRfY29tcG91bmRhcmdzICphcmdwKQogCiAJUkVBRF9CVUYoNCk7CiAJYXJncC0+dGFn bGVuID0gYmUzMl90b19jcHVwKHArKyk7Ci0JUkVBRF9CVUYoYXJncC0+dGFnbGVuICsgOCk7CisJ UkVBRF9CVUYoYXJncC0+dGFnbGVuKTsKIAlTQVZFTUVNKGFyZ3AtPnRhZywgYXJncC0+dGFnbGVu KTsKKwlSRUFEX0JVRig4KTsKIAlhcmdwLT5taW5vcnZlcnNpb24gPSBiZTMyX3RvX2NwdXAocCsr KTsKIAlhcmdwLT5vcGNudCA9IGJlMzJfdG9fY3B1cChwKyspOwogCW1heF9yZXBseSArPSA0ICsg KFhEUl9RVUFETEVOKGFyZ3AtPnRhZ2xlbikgPDwgMik7CmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9k bG0vZGxtY29udmVydC5jIGIvZnMvb2NmczIvZGxtL2RsbWNvbnZlcnQuYwppbmRleCBlMzZkNjNm ZjE3ODMuLmY5MDkzMTMzNWM2YiAxMDA2NDQKLS0tIGEvZnMvb2NmczIvZGxtL2RsbWNvbnZlcnQu YworKysgYi9mcy9vY2ZzMi9kbG0vZGxtY29udmVydC5jCkBAIC0yNjIsNiArMjYyLDcgQEAgZW51 bSBkbG1fc3RhdHVzIGRsbWNvbnZlcnRfcmVtb3RlKHN0cnVjdCBkbG1fY3R4dCAqZGxtLAogCQkJ CSAgc3RydWN0IGRsbV9sb2NrICpsb2NrLCBpbnQgZmxhZ3MsIGludCB0eXBlKQogewogCWVudW0g ZGxtX3N0YXR1cyBzdGF0dXM7CisJdTggb2xkX293bmVyID0gcmVzLT5vd25lcjsKIAogCW1sb2co MCwgInR5cGU9JWQsIGNvbnZlcnRfdHlwZT0lZCwgYnVzeT0lZFxuIiwgbG9jay0+bWwudHlwZSwK IAkgICAgIGxvY2stPm1sLmNvbnZlcnRfdHlwZSwgcmVzLT5zdGF0ZSAmIERMTV9MT0NLX1JFU19J Tl9QUk9HUkVTUyk7CkBAIC0yODcsNiArMjg4LDE5IEBAIGVudW0gZGxtX3N0YXR1cyBkbG1jb252 ZXJ0X3JlbW90ZShzdHJ1Y3QgZGxtX2N0eHQgKmRsbSwKIAkJc3RhdHVzID0gRExNX0RFTklFRDsK IAkJZ290byBiYWlsOwogCX0KKworCWlmIChsb2NrLT5tbC50eXBlID09IHR5cGUgJiYgbG9jay0+ bWwuY29udmVydF90eXBlID09IExLTV9JVk1PREUpIHsKKwkJbWxvZygwLCAibGFzdCBjb252ZXJ0 IHJlcXVlc3QgcmV0dXJuZWQgRExNX1JFQ09WRVJJTkcsIGJ1dCAiCisJCSAgICAgIm93bmVyIGhh cyBhbHJlYWR5IHF1ZXVlZCBhbmQgc2VudCBhc3QgdG8gbWUuIHJlcyAlLipzLCAiCisJCSAgICAg Iihjb29raWU9JXU6JWxsdSwgdHlwZT0lZCwgY29udj0lZClcbiIsCisJCSAgICAgcmVzLT5sb2Nr bmFtZS5sZW4sIHJlcy0+bG9ja25hbWUubmFtZSwKKwkJICAgICBkbG1fZ2V0X2xvY2tfY29va2ll X25vZGUoYmU2NF90b19jcHUobG9jay0+bWwuY29va2llKSksCisJCSAgICAgZGxtX2dldF9sb2Nr X2Nvb2tpZV9zZXEoYmU2NF90b19jcHUobG9jay0+bWwuY29va2llKSksCisJCSAgICAgbG9jay0+ bWwudHlwZSwgbG9jay0+bWwuY29udmVydF90eXBlKTsKKwkJc3RhdHVzID0gRExNX05PUk1BTDsK KwkJZ290byBiYWlsOworCX0KKwogCXJlcy0+c3RhdGUgfD0gRExNX0xPQ0tfUkVTX0lOX1BST0dS RVNTOwogCS8qIG1vdmUgbG9jayB0byBsb2NhbCBjb252ZXJ0IHF1ZXVlICovCiAJLyogZG8gbm90 IGFsdGVyIGxvY2sgcmVmY291bnQuICBzd2l0Y2hpbmcgbGlzdHMuICovCkBAIC0zMTYsMTEgKzMz MCwxOSBAQCBlbnVtIGRsbV9zdGF0dXMgZGxtY29udmVydF9yZW1vdGUoc3RydWN0IGRsbV9jdHh0 ICpkbG0sCiAJc3Bpbl9sb2NrKCZyZXMtPnNwaW5sb2NrKTsKIAlyZXMtPnN0YXRlICY9IH5ETE1f TE9DS19SRVNfSU5fUFJPR1JFU1M7CiAJbG9jay0+Y29udmVydF9wZW5kaW5nID0gMDsKLQkvKiBp ZiBpdCBmYWlsZWQsIG1vdmUgaXQgYmFjayB0byBncmFudGVkIHF1ZXVlICovCisJLyogaWYgaXQg ZmFpbGVkLCBtb3ZlIGl0IGJhY2sgdG8gZ3JhbnRlZCBxdWV1ZS4KKwkgKiBpZiBtYXN0ZXIgcmV0 dXJucyBETE1fTk9STUFMIGFuZCB0aGVuIGRvd24gYmVmb3JlIHNlbmRpbmcgYXN0LAorCSAqIGl0 IG1heSBoYXZlIGFscmVhZHkgYmVlbiBtb3ZlZCB0byBncmFudGVkIHF1ZXVlLCByZXNldCB0bwor CSAqIERMTV9SRUNPVkVSSU5HIGFuZCByZXRyeSBjb252ZXJ0ICovCiAJaWYgKHN0YXR1cyAhPSBE TE1fTk9STUFMKSB7CiAJCWlmIChzdGF0dXMgIT0gRExNX05PVFFVRVVFRCkKIAkJCWRsbV9lcnJv cihzdGF0dXMpOwogCQlkbG1fcmV2ZXJ0X3BlbmRpbmdfY29udmVydChyZXMsIGxvY2spOworCX0g ZWxzZSBpZiAoKHJlcy0+c3RhdGUgJiBETE1fTE9DS19SRVNfUkVDT1ZFUklORykgfHwKKwkJCShv bGRfb3duZXIgIT0gcmVzLT5vd25lcikpIHsKKwkJbWxvZygwLCAicmVzICUuKnMgaXMgaW4gcmVj b3ZlcmluZyBvciBoYXMgYmVlbiByZWNvdmVyZWQuXG4iLAorCQkJCXJlcy0+bG9ja25hbWUubGVu LCByZXMtPmxvY2tuYW1lLm5hbWUpOworCQlzdGF0dXMgPSBETE1fUkVDT1ZFUklORzsKIAl9CiBi YWlsOgogCXNwaW5fdW5sb2NrKCZyZXMtPnNwaW5sb2NrKTsKZGlmZiAtLWdpdCBhL2ZzL29jZnMy L2RsbS9kbG1yZWNvdmVyeS5jIGIvZnMvb2NmczIvZGxtL2RsbXJlY292ZXJ5LmMKaW5kZXggNTM5 YjU3Nzc0MGM3Li40NGY5MzA0M2IyZTkgMTAwNjQ0Ci0tLSBhL2ZzL29jZnMyL2RsbS9kbG1yZWNv dmVyeS5jCisrKyBiL2ZzL29jZnMyL2RsbS9kbG1yZWNvdmVyeS5jCkBAIC0yMDUzLDcgKzIwNTMs NiBAQCB2b2lkIGRsbV9tb3ZlX2xvY2tyZXNfdG9fcmVjb3ZlcnlfbGlzdChzdHJ1Y3QgZGxtX2N0 eHQgKmRsbSwKIAkJCWRsbV9sb2NrX2dldChsb2NrKTsKIAkJCWlmIChsb2NrLT5jb252ZXJ0X3Bl bmRpbmcpIHsKIAkJCQkvKiBtb3ZlIGNvbnZlcnRpbmcgbG9jayBiYWNrIHRvIGdyYW50ZWQgKi8K LQkJCQlCVUdfT04oaSAhPSBETE1fQ09OVkVSVElOR19MSVNUKTsKIAkJCQltbG9nKDAsICJub2Rl IGRpZWQgd2l0aCBjb252ZXJ0IHBlbmRpbmcgIgogCQkJCSAgICAgIm9uICUuKnMuIG1vdmUgYmFj ayB0byBncmFudGVkIGxpc3QuXG4iLAogCQkJCSAgICAgcmVzLT5sb2NrbmFtZS5sZW4sIHJlcy0+ bG9ja25hbWUubmFtZSk7CmRpZmYgLS1naXQgYS9mcy9vcGVuLmMgYi9mcy9vcGVuLmMKaW5kZXgg NTBmNTE0NGYzMWFiLi43OWE1MmYxNDYxODIgMTAwNjQ0Ci0tLSBhL2ZzL29wZW4uYworKysgYi9m cy9vcGVuLmMKQEAgLTk0NiwxNCArOTQ2LDEyIEBAIHN0cnVjdCBmaWxlICpmaWxwX29wZW4oY29u c3QgY2hhciAqZmlsZW5hbWUsIGludCBmbGFncywgdW1vZGVfdCBtb2RlKQogRVhQT1JUX1NZTUJP TChmaWxwX29wZW4pOwogCiBzdHJ1Y3QgZmlsZSAqZmlsZV9vcGVuX3Jvb3Qoc3RydWN0IGRlbnRy eSAqZGVudHJ5LCBzdHJ1Y3QgdmZzbW91bnQgKm1udCwKLQkJCSAgICBjb25zdCBjaGFyICpmaWxl bmFtZSwgaW50IGZsYWdzKQorCQkJICAgIGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQgZmxhZ3Ms IHVtb2RlX3QgbW9kZSkKIHsKIAlzdHJ1Y3Qgb3Blbl9mbGFncyBvcDsKLQlpbnQgZXJyID0gYnVp bGRfb3Blbl9mbGFncyhmbGFncywgMCwgJm9wKTsKKwlpbnQgZXJyID0gYnVpbGRfb3Blbl9mbGFn cyhmbGFncywgbW9kZSwgJm9wKTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gRVJSX1BUUihlcnIpOwot CWlmIChmbGFncyAmIE9fQ1JFQVQpCi0JCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCWlmICgh ZmlsZW5hbWUgJiYgKGZsYWdzICYgT19ESVJFQ1RPUlkpKQogCQlpZiAoIWRlbnRyeS0+ZF9pbm9k ZS0+aV9vcC0+bG9va3VwKQogCQkJcmV0dXJuIEVSUl9QVFIoLUVOT1RESVIpOwpkaWZmIC0tZ2l0 IGEvZnMvcHJvY19uYW1lc3BhY2UuYyBiL2ZzL3Byb2NfbmFtZXNwYWNlLmMKaW5kZXggMWE4MTM3 Mzk0N2YzLi5mMzlmZjFjNmEwNDEgMTAwNjQ0Ci0tLSBhL2ZzL3Byb2NfbmFtZXNwYWNlLmMKKysr IGIvZnMvcHJvY19uYW1lc3BhY2UuYwpAQCAtMTkxLDYgKzE5MSw4IEBAIHN0YXRpYyBpbnQgc2hv d192ZnNzdGF0KHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IHZmc21vdW50ICptbnQpCiAJaWYg KHNiLT5zX29wLT5zaG93X2Rldm5hbWUpIHsKIAkJc2VxX3B1dHMobSwgImRldmljZSAiKTsKIAkJ ZXJyID0gc2ItPnNfb3AtPnNob3dfZGV2bmFtZShtLCBtbnRfcGF0aC5kZW50cnkpOworCQlpZiAo ZXJyKQorCQkJZ290byBvdXQ7CiAJfSBlbHNlIHsKIAkJaWYgKHItPm1udF9kZXZuYW1lKSB7CiAJ CQlzZXFfcHV0cyhtLCAiZGV2aWNlICIpOwpAQCAtMjE2LDYgKzIxOCw3IEBAIHN0YXRpYyBpbnQg c2hvd192ZnNzdGF0KHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IHZmc21vdW50ICptbnQpCiAJ fQogCiAJc2VxX3B1dGMobSwgJ1xuJyk7CitvdXQ6CiAJcmV0dXJuIGVycjsKIH0KIApkaWZmIC0t Z2l0IGEvZnMvc3BsaWNlLmMgYi9mcy9zcGxpY2UuYwppbmRleCAyOGY4ZDlkZDkyZTMuLjk2MmM3 ZjdlMDNmNiAxMDA2NDQKLS0tIGEvZnMvc3BsaWNlLmMKKysrIGIvZnMvc3BsaWNlLmMKQEAgLTE4 Niw2ICsxODYsOSBAQCBzc2l6ZV90IHNwbGljZV90b19waXBlKHN0cnVjdCBwaXBlX2lub2RlX2lu Zm8gKnBpcGUsCiAJdW5zaWduZWQgaW50IHNwZF9wYWdlcyA9IHNwZC0+bnJfcGFnZXM7CiAJaW50 IHJldCwgZG9fd2FrZXVwLCBwYWdlX25yOwogCisJaWYgKCFzcGRfcGFnZXMpCisJCXJldHVybiAw OworCiAJcmV0ID0gMDsKIAlkb193YWtldXAgPSAwOwogCXBhZ2VfbnIgPSAwOwpkaWZmIC0tZ2l0 IGEvZnMveGZzL3hmc19hdHRyX2xpc3QuYyBiL2ZzL3hmcy94ZnNfYXR0cl9saXN0LmMKaW5kZXgg OTBlMmVlYjIxMjA3Li41MTEyMjRmODk0ZGMgMTAwNjQ0Ci0tLSBhL2ZzL3hmcy94ZnNfYXR0cl9s aXN0LmMKKysrIGIvZnMveGZzL3hmc19hdHRyX2xpc3QuYwpAQCAtMjA1LDggKzIwNSwxMCBAQCB4 ZnNfYXR0cl9zaG9ydGZvcm1fbGlzdCh4ZnNfYXR0cl9saXN0X2NvbnRleHRfdCAqY29udGV4dCkK IAkJCQkJc2JwLT5uYW1lbGVuLAogCQkJCQlzYnAtPnZhbHVlbGVuLAogCQkJCQkmc2JwLT5uYW1l W3NicC0+bmFtZWxlbl0pOwotCQlpZiAoZXJyb3IpCisJCWlmIChlcnJvcikgeworCQkJa21lbV9m cmVlKHNidWYpOwogCQkJcmV0dXJuIGVycm9yOworCQl9CiAJCWlmIChjb250ZXh0LT5zZWVuX2Vu b3VnaCkKIAkJCWJyZWFrOwogCQljdXJzb3ItPm9mZnNldCsrOwpAQCAtNDU0LDE0ICs0NTYsMTMg QEAgeGZzX2F0dHIzX2xlYWZfbGlzdF9pbnQoCiAJCQkJYXJncy5ybXRibGtjbnQgPSB4ZnNfYXR0 cjNfcm10X2Jsb2NrcygKIAkJCQkJCQlhcmdzLmRwLT5pX21vdW50LCB2YWx1ZWxlbik7CiAJCQkJ cmV0dmFsID0geGZzX2F0dHJfcm10dmFsX2dldCgmYXJncyk7Ci0JCQkJaWYgKHJldHZhbCkKLQkJ CQkJcmV0dXJuIHJldHZhbDsKLQkJCQlyZXR2YWwgPSBjb250ZXh0LT5wdXRfbGlzdGVudChjb250 ZXh0LAotCQkJCQkJZW50cnktPmZsYWdzLAotCQkJCQkJbmFtZV9ybXQtPm5hbWUsCi0JCQkJCQko aW50KW5hbWVfcm10LT5uYW1lbGVuLAotCQkJCQkJdmFsdWVsZW4sCi0JCQkJCQlhcmdzLnZhbHVl KTsKKwkJCQlpZiAoIXJldHZhbCkKKwkJCQkJcmV0dmFsID0gY29udGV4dC0+cHV0X2xpc3RlbnQo Y29udGV4dCwKKwkJCQkJCQllbnRyeS0+ZmxhZ3MsCisJCQkJCQkJbmFtZV9ybXQtPm5hbWUsCisJ CQkJCQkJKGludCluYW1lX3JtdC0+bmFtZWxlbiwKKwkJCQkJCQl2YWx1ZWxlbiwKKwkJCQkJCQlh cmdzLnZhbHVlKTsKIAkJCQlrbWVtX2ZyZWUoYXJncy52YWx1ZSk7CiAJCQl9IGVsc2UgewogCQkJ CXJldHZhbCA9IGNvbnRleHQtPnB1dF9saXN0ZW50KGNvbnRleHQsCmRpZmYgLS1naXQgYS9pbmNs dWRlL2FzbS1nZW5lcmljL2JpdG9wcy9sb2NrLmggYi9pbmNsdWRlL2FzbS1nZW5lcmljL2JpdG9w cy9sb2NrLmgKaW5kZXggYzMwMjY2ZTk0ODA2Li44ZWYwY2NiZjgxNjcgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2xvY2suaAorKysgYi9pbmNsdWRlL2FzbS1nZW5lcmlj L2JpdG9wcy9sb2NrLmgKQEAgLTI5LDE2ICsyOSwxNiBAQCBkbyB7CQkJCQlcCiAgKiBAbnI6IHRo ZSBiaXQgdG8gc2V0CiAgKiBAYWRkcjogdGhlIGFkZHJlc3MgdG8gc3RhcnQgY291bnRpbmcgZnJv bQogICoKLSAqIFRoaXMgb3BlcmF0aW9uIGlzIGxpa2UgY2xlYXJfYml0X3VubG9jaywgaG93ZXZl ciBpdCBpcyBub3QgYXRvbWljLgotICogSXQgZG9lcyBwcm92aWRlIHJlbGVhc2UgYmFycmllciBz ZW1hbnRpY3Mgc28gaXQgY2FuIGJlIHVzZWQgdG8gdW5sb2NrCi0gKiBhIGJpdCBsb2NrLCBob3dl dmVyIGl0IHdvdWxkIG9ubHkgYmUgdXNlZCBpZiBubyBvdGhlciBDUFUgY2FuIG1vZGlmeQotICog YW55IGJpdHMgaW4gdGhlIG1lbW9yeSB1bnRpbCB0aGUgbG9jayBpcyByZWxlYXNlZCAoYSBnb29k IGV4YW1wbGUgaXMKLSAqIGlmIHRoZSBiaXQgbG9jayBpdHNlbGYgcHJvdGVjdHMgYWNjZXNzIHRv IHRoZSBvdGhlciBiaXRzIGluIHRoZSB3b3JkKS4KKyAqIEEgd2Vha2VyIGZvcm0gb2YgY2xlYXJf Yml0X3VubG9jaygpIGFzIHVzZWQgYnkgX19iaXRfbG9ja191bmxvY2soKS4gSWYgYWxsCisgKiB0 aGUgYml0cyBpbiB0aGUgd29yZCBhcmUgcHJvdGVjdGVkIGJ5IHRoaXMgbG9jayBzb21lIGFyY2hz IGNhbiB1c2Ugd2Vha2VyCisgKiBvcHMgdG8gc2FmZWx5IHVubG9jay4KKyAqCisgKiBTZWUgZm9y IGV4YW1wbGUgeDg2J3MgaW1wbGVtZW50YXRpb24uCiAgKi8KICNkZWZpbmUgX19jbGVhcl9iaXRf dW5sb2NrKG5yLCBhZGRyKQlcCiBkbyB7CQkJCQlcCi0Jc21wX21iKCk7CQkJXAotCV9fY2xlYXJf Yml0KG5yLCBhZGRyKTsJCVwKKwlzbXBfbWJfX2JlZm9yZV9hdG9taWMoKTsJXAorCWNsZWFyX2Jp dChuciwgYWRkcik7CQlcCiB9IHdoaWxlICgwKQogCiAjZW5kaWYgLyogX0FTTV9HRU5FUklDX0JJ VE9QU19MT0NLX0hfICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLWdjYzQu aCBiL2luY2x1ZGUvbGludXgvY29tcGlsZXItZ2NjNC5oCmluZGV4IDI1MDdmZDJhMWViNC4uY2M3 ZGE5OWFkNThkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLWdjYzQuaAorKysg Yi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLWdjYzQuaApAQCAtNTQsNyArNTQsNyBAQAogI2RlZmlu ZSB1bnJlYWNoYWJsZSgpIF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpCiAKIC8qIE1hcmsgYSBmdW5j dGlvbiBkZWZpbml0aW9uIGFzIHByb2hpYml0ZWQgZnJvbSBiZWluZyBjbG9uZWQuICovCi0jZGVm aW5lIF9fbm9jbG9uZQlfX2F0dHJpYnV0ZV9fKChfX25vY2xvbmVfXykpCisjZGVmaW5lIF9fbm9j bG9uZQlfX2F0dHJpYnV0ZV9fKChfX25vY2xvbmVfXywgX19vcHRpbWl6ZV9fKCJuby10cmFjZXIi KSkpCiAKICNlbmRpZiAvKiBHQ0NfVkVSU0lPTiA+PSA0MDUwMCAqLwogCmRpZmYgLS1naXQgYS9p bmNsdWRlL2xpbnV4L2NvbXBpbGVyLWdjYzUuaCBiL2luY2x1ZGUvbGludXgvY29tcGlsZXItZ2Nj NS5oCmluZGV4IGNkZDFjYzIwMmQ1MS4uYmUzOTYyNGRlOGI1IDEwMDY0NAotLS0gYS9pbmNsdWRl L2xpbnV4L2NvbXBpbGVyLWdjYzUuaAorKysgYi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLWdjYzUu aApAQCAtNDAsNyArNDAsNyBAQAogI2RlZmluZSB1bnJlYWNoYWJsZSgpIF9fYnVpbHRpbl91bnJl YWNoYWJsZSgpCiAKIC8qIE1hcmsgYSBmdW5jdGlvbiBkZWZpbml0aW9uIGFzIHByb2hpYml0ZWQg ZnJvbSBiZWluZyBjbG9uZWQuICovCi0jZGVmaW5lIF9fbm9jbG9uZQlfX2F0dHJpYnV0ZV9fKChf X25vY2xvbmVfXykpCisjZGVmaW5lIF9fbm9jbG9uZQlfX2F0dHJpYnV0ZV9fKChfX25vY2xvbmVf XywgX19vcHRpbWl6ZV9fKCJuby10cmFjZXIiKSkpCiAKIC8qCiAgKiBUZWxsIHRoZSBvcHRpbWl6 ZXIgdGhhdCBzb21ldGhpbmcgZWxzZSB1c2VzIHRoaXMgZnVuY3Rpb24gb3IgdmFyaWFibGUuCmRp ZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2ZpbHRlci5oIGIvaW5jbHVkZS9saW51eC9maWx0ZXIu aAppbmRleCAwMmY4NTcyNjBiY2IuLjk2NTA5ZTU3OWQyMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9s aW51eC9maWx0ZXIuaAorKysgYi9pbmNsdWRlL2xpbnV4L2ZpbHRlci5oCkBAIC0zNTksNyArMzU5 LDEwIEBAIGludCBza191bmF0dGFjaGVkX2ZpbHRlcl9jcmVhdGUoc3RydWN0IHNrX2ZpbHRlciAq KnBmcCwKIHZvaWQgc2tfdW5hdHRhY2hlZF9maWx0ZXJfZGVzdHJveShzdHJ1Y3Qgc2tfZmlsdGVy ICpmcCk7CiAKIGludCBza19hdHRhY2hfZmlsdGVyKHN0cnVjdCBzb2NrX2Zwcm9nICpmcHJvZywg c3RydWN0IHNvY2sgKnNrKTsKK2ludCBfX3NrX2F0dGFjaF9maWx0ZXIoc3RydWN0IHNvY2tfZnBy b2cgKmZwcm9nLCBzdHJ1Y3Qgc29jayAqc2ssCisJCSAgICAgICBib29sIGxvY2tlZCk7CiBpbnQg c2tfZGV0YWNoX2ZpbHRlcihzdHJ1Y3Qgc29jayAqc2spOworaW50IF9fc2tfZGV0YWNoX2ZpbHRl cihzdHJ1Y3Qgc29jayAqc2ssIGJvb2wgbG9ja2VkKTsKIAogaW50IHNrX2Noa19maWx0ZXIoc3Ry dWN0IHNvY2tfZmlsdGVyICpmaWx0ZXIsIHVuc2lnbmVkIGludCBmbGVuKTsKIGludCBza19nZXRf ZmlsdGVyKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2tfZmlsdGVyIF9fdXNlciAqZmlsdGVy LApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9mcy5oIGIvaW5jbHVkZS9saW51eC9mcy5oCmlu ZGV4IDliZDZmMzdkODg1YS4uZTAzMmE4YTQwYzMwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4 L2ZzLmgKKysrIGIvaW5jbHVkZS9saW51eC9mcy5oCkBAIC0yMDMwLDcgKzIwMzAsNyBAQCBleHRl cm4gbG9uZyBkb19zeXNfb3BlbihpbnQgZGZkLCBjb25zdCBjaGFyIF9fdXNlciAqZmlsZW5hbWUs IGludCBmbGFncywKIGV4dGVybiBzdHJ1Y3QgZmlsZSAqZmlsZV9vcGVuX25hbWUoc3RydWN0IGZp bGVuYW1lICosIGludCwgdW1vZGVfdCk7CiBleHRlcm4gc3RydWN0IGZpbGUgKmZpbHBfb3Blbihj b25zdCBjaGFyICosIGludCwgdW1vZGVfdCk7CiBleHRlcm4gc3RydWN0IGZpbGUgKmZpbGVfb3Bl bl9yb290KHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IHZmc21vdW50ICosCi0JCQkJICAgY29uc3Qg Y2hhciAqLCBpbnQpOworCQkJCSAgIGNvbnN0IGNoYXIgKiwgaW50LCB1bW9kZV90KTsKIGV4dGVy biBzdHJ1Y3QgZmlsZSAqIGRlbnRyeV9vcGVuKGNvbnN0IHN0cnVjdCBwYXRoICosIGludCwgY29u c3Qgc3RydWN0IGNyZWQgKik7CiBleHRlcm4gaW50IGZpbHBfY2xvc2Uoc3RydWN0IGZpbGUgKiwg Zmxfb3duZXJfdCBpZCk7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgva2VybmVsLmggYi9p bmNsdWRlL2xpbnV4L2tlcm5lbC5oCmluZGV4IDRjNTI5MDdhNmQ4Yi4uMmE4YmY0ZGI4NGU5IDEw MDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oCisrKyBiL2luY2x1ZGUvbGludXgva2Vy bmVsLmgKQEAgLTU5Niw3ICs1OTYsNyBAQCBkbyB7CQkJCQkJCVwKIAogI2RlZmluZSBkb190cmFj ZV9wcmludGsoZm10LCBhcmdzLi4uKQkJCQkJXAogZG8gewkJCQkJCQkJCVwKLQlzdGF0aWMgY29u c3QgY2hhciAqdHJhY2VfcHJpbnRrX2ZtdAkJCQlcCisJc3RhdGljIGNvbnN0IGNoYXIgKnRyYWNl X3ByaW50a19mbXQgX191c2VkCQkJXAogCQlfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCJfX3RyYWNl X3ByaW50a19mbXQiKSkpID0JXAogCQlfX2J1aWx0aW5fY29uc3RhbnRfcChmbXQpID8gZm10IDog TlVMTDsJCQlcCiAJCQkJCQkJCQlcCkBAIC02NDAsNyArNjQwLDcgQEAgaW50IF9fdHJhY2VfcHJp bnRrKHVuc2lnbmVkIGxvbmcgaXAsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKICAqLwogCiAjZGVm aW5lIHRyYWNlX3B1dHMoc3RyKSAoewkJCQkJCVwKLQlzdGF0aWMgY29uc3QgY2hhciAqdHJhY2Vf cHJpbnRrX2ZtdAkJCQlcCisJc3RhdGljIGNvbnN0IGNoYXIgKnRyYWNlX3ByaW50a19mbXQgX191 c2VkCQkJXAogCQlfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCJfX3RyYWNlX3ByaW50a19mbXQiKSkp ID0JXAogCQlfX2J1aWx0aW5fY29uc3RhbnRfcChzdHIpID8gc3RyIDogTlVMTDsJCQlcCiAJCQkJ CQkJCQlcCkBAIC02NjIsNyArNjYyLDcgQEAgZXh0ZXJuIHZvaWQgdHJhY2VfZHVtcF9zdGFjayhp bnQgc2tpcCk7CiAjZGVmaW5lIGZ0cmFjZV92cHJpbnRrKGZtdCwgdmFyZ3MpCQkJCQlcCiBkbyB7 CQkJCQkJCQkJXAogCWlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChmbXQpKSB7CQkJCVwKLQkJc3Rh dGljIGNvbnN0IGNoYXIgKnRyYWNlX3ByaW50a19mbXQJCQlcCisJCXN0YXRpYyBjb25zdCBjaGFy ICp0cmFjZV9wcmludGtfZm10IF9fdXNlZAkJXAogCQkgIF9fYXR0cmlidXRlX18oKHNlY3Rpb24o Il9fdHJhY2VfcHJpbnRrX2ZtdCIpKSkgPQlcCiAJCQlfX2J1aWx0aW5fY29uc3RhbnRfcChmbXQp ID8gZm10IDogTlVMTDsJCVwKIAkJCQkJCQkJCVwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgv bWx4NS9kcml2ZXIuaCBiL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaAppbmRleCAyYmNlNGFh ZDI1NzAuLmZkMTUyMDMyZDc3OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tbHg1L2RyaXZl ci5oCisrKyBiL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaApAQCAtNTQsNyArNTQsNyBAQCBl bnVtIHsKIAkvKiBvbmUgbWludXRlIGZvciB0aGUgc2FrZSBvZiBicmluZ3VwLiBHZW5lcmFsbHks IGNvbW1hbmRzIG11c3QgYWx3YXlzCiAJICogY29tcGxldGUgYW5kIHdlIG1heSBuZWVkIHRvIGlu Y3JlYXNlIHRoaXMgdGltZW91dCB2YWx1ZQogCSAqLwotCU1MWDVfQ01EX1RJTUVPVVRfTVNFQwk9 IDcyMDAgKiAxMDAwLAorCU1MWDVfQ01EX1RJTUVPVVRfTVNFQwk9IDYwICogMTAwMCwKIAlNTFg1 X0NNRF9XUV9NQVhfTkFNRQk9IDMyLAogfTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9t dGQvbWFwLmggYi9pbmNsdWRlL2xpbnV4L210ZC9tYXAuaAppbmRleCA1ZjQ4N2Q3NzY0MTEuLmI1 MDFlOWNkN2QzZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tdGQvbWFwLmgKKysrIGIvaW5j bHVkZS9saW51eC9tdGQvbWFwLmgKQEAgLTIzOCw4ICsyMzgsMTEgQEAgc3RydWN0IG1hcF9pbmZv IHsKIAkgICBJZiB0aGVyZSBpcyBubyBjYWNoZSB0byBjYXJlIGFib3V0IHRoaXMgY2FuIGJlIHNl dCB0byBOVUxMLiAqLwogCXZvaWQgKCppbnZhbF9jYWNoZSkoc3RydWN0IG1hcF9pbmZvICosIHVu c2lnbmVkIGxvbmcsIHNzaXplX3QpOwogCi0JLyogc2V0X3ZwcCgpIG11c3QgaGFuZGxlIGJlaW5n IHJlZW50ZXJlZCAtLSBlbmFibGUsIGVuYWJsZSwgZGlzYWJsZQotCSAgIG11c3QgbGVhdmUgaXQg ZW5hYmxlZC4gKi8KKwkvKiBUaGlzIHdpbGwgYmUgY2FsbGVkIHdpdGggMSBhcyBwYXJhbWV0ZXIg d2hlbiB0aGUgZmlyc3QgbWFwIHVzZXIKKwkgKiBuZWVkcyBWUFAsIGFuZCBjYWxsZWQgd2l0aCAw IHdoZW4gdGhlIGxhc3QgdXNlciBleGl0cy4gVGhlIG1hcAorCSAqIGNvcmUgbWFpbnRhaW5zIGEg cmVmZXJlbmNlIGNvdW50ZXIsIGFuZCBhc3N1bWVzIHRoYXQgVlBQIGlzIGEKKwkgKiBnbG9iYWwg cmVzb3VyY2UgYXBwbHlpbmcgdG8gYWxsIG1hcHBlZCBmbGFzaCBjaGlwcyBvbiB0aGUgc3lzdGVt LgorCSAqLwogCXZvaWQgKCpzZXRfdnBwKShzdHJ1Y3QgbWFwX2luZm8gKiwgaW50KTsKIAogCXVu c2lnbmVkIGxvbmcgcGZvd19iYXNlOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9uZXRkZXZp Y2UuaCBiL2luY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmgKaW5kZXggYWI0Y2U3OGM1YmI4Li5iZmMz ZjlkZmQ5MjggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmgKKysrIGIvaW5j bHVkZS9saW51eC9uZXRkZXZpY2UuaApAQCAtMjYyLDYgKzI2Miw3IEBAIHN0cnVjdCBoZWFkZXJf b3BzIHsKIAl2b2lkCSgqY2FjaGVfdXBkYXRlKShzdHJ1Y3QgaGhfY2FjaGUgKmhoLAogCQkJCWNv bnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQkJY29uc3QgdW5zaWduZWQgY2hhciAqaGFk ZHIpOworCWJvb2wJKCp2YWxpZGF0ZSkoY29uc3QgY2hhciAqbGxfaGVhZGVyLCB1bnNpZ25lZCBp bnQgbGVuKTsKIH07CiAKIC8qIFRoZXNlIGZsYWcgYml0cyBhcmUgcHJpdmF0ZSB0byB0aGUgZ2Vu ZXJpYyBuZXR3b3JrIHF1ZXVlaW5nCkBAIC0xMzQ3LDcgKzEzNDgsNyBAQCBzdHJ1Y3QgbmV0X2Rl dmljZSB7CiAKIAl1bnNpZ25lZCBpbnQJCW10dTsJLyogaW50ZXJmYWNlIE1UVSB2YWx1ZQkJKi8K IAl1bnNpZ25lZCBzaG9ydAkJdHlwZTsJLyogaW50ZXJmYWNlIGhhcmR3YXJlIHR5cGUJKi8KLQl1 bnNpZ25lZCBzaG9ydAkJaGFyZF9oZWFkZXJfbGVuOwkvKiBoYXJkd2FyZSBoZHIgbGVuZ3RoCSov CisJdW5zaWduZWQgc2hvcnQJCWhhcmRfaGVhZGVyX2xlbjsgLyogbWF4aW11bSBoYXJkd2FyZSBo ZHIgbGVuZ3RoCSovCiAKIAkvKiBleHRyYSBoZWFkLSBhbmQgdGFpbHJvb20gdGhlIGhhcmR3YXJl IG1heSBuZWVkLCBidXQgbm90IGluIGFsbCBjYXNlcwogCSAqIGNhbiB0aGlzIGJlIGd1YXJhbnRl ZWQsIGVzcGVjaWFsbHkgdGFpbHJvb20uIFNvbWUgY2FzZXMgYWxzbyB1c2UKQEAgLTE3NTksOCAr MTc2MCw4IEBAIHN0cnVjdCBuYXBpX2dyb19jYiB7CiAJLyogVXNlZCBpbiBpcHY2X2dyb19yZWNl aXZlKCkgKi8KIAl1MTYJcHJvdG87CiAKLQkvKiBVc2VkIGluIHVkcF9ncm9fcmVjZWl2ZSAqLwot CXUxNgl1ZHBfbWFyazsKKwkvKiBVc2VkIGluIHR1bm5lbCBHUk8gcmVjZWl2ZSAqLworCXUxNgll bmNhcF9tYXJrOwogCiAJLyogdXNlZCB0byBzdXBwb3J0IENIRUNLU1VNX0NPTVBMRVRFIGZvciB0 dW5uZWxpbmcgcHJvdG9jb2xzICovCiAJX193c3VtCWNzdW07CkBAIC0yMDcxLDYgKzIwNzIsMjQg QEAgc3RhdGljIGlubGluZSBpbnQgZGV2X3JlYnVpbGRfaGVhZGVyKHN0cnVjdCBza19idWZmICpz a2IpCiAJcmV0dXJuIGRldi0+aGVhZGVyX29wcy0+cmVidWlsZChza2IpOwogfQogCisvKiBsbF9o ZWFkZXIgbXVzdCBoYXZlIGF0IGxlYXN0IGhhcmRfaGVhZGVyX2xlbiBhbGxvY2F0ZWQgKi8KK3N0 YXRpYyBpbmxpbmUgYm9vbCBkZXZfdmFsaWRhdGVfaGVhZGVyKGNvbnN0IHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYsCisJCQkJICAgICAgIGNoYXIgKmxsX2hlYWRlciwgaW50IGxlbikKK3sKKwlpZiAo bGlrZWx5KGxlbiA+PSBkZXYtPmhhcmRfaGVhZGVyX2xlbikpCisJCXJldHVybiB0cnVlOworCisJ aWYgKGNhcGFibGUoQ0FQX1NZU19SQVdJTykpIHsKKwkJbWVtc2V0KGxsX2hlYWRlciArIGxlbiwg MCwgZGV2LT5oYXJkX2hlYWRlcl9sZW4gLSBsZW4pOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlp ZiAoZGV2LT5oZWFkZXJfb3BzICYmIGRldi0+aGVhZGVyX29wcy0+dmFsaWRhdGUpCisJCXJldHVy biBkZXYtPmhlYWRlcl9vcHMtPnZhbGlkYXRlKGxsX2hlYWRlciwgbGVuKTsKKworCXJldHVybiBm YWxzZTsKK30KKwogdHlwZWRlZiBpbnQgZ2lmY29uZl9mdW5jX3Qoc3RydWN0IG5ldF9kZXZpY2Ug KiBkZXYsIGNoYXIgX191c2VyICogYnVmcHRyLCBpbnQgbGVuKTsKIGludCByZWdpc3Rlcl9naWZj b25mKHVuc2lnbmVkIGludCBmYW1pbHksIGdpZmNvbmZfZnVuY190ICpnaWZjb25mKTsKIHN0YXRp YyBpbmxpbmUgaW50IHVucmVnaXN0ZXJfZ2lmY29uZih1bnNpZ25lZCBpbnQgZmFtaWx5KQpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wY2kuaCBiL2luY2x1ZGUvbGludXgvcGNpLmgKaW5kZXgg MjYwZmIzMzFjZmRkLi43ODlhYzk5ZjVhNmMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcGNp LmgKKysrIGIvaW5jbHVkZS9saW51eC9wY2kuaApAQCAtMzUzLDYgKzM1Myw3IEBAIHN0cnVjdCBw Y2lfZGV2IHsKIAl1bnNpZ25lZCBpbnQJX19hZXJfZmlybXdhcmVfZmlyc3Q6MTsKIAl1bnNpZ25l ZCBpbnQJYnJva2VuX2ludHhfbWFza2luZzoxOwogCXVuc2lnbmVkIGludAlpb193aW5kb3dfMWs6 MTsJLyogSW50ZWwgUDJQIGJyaWRnZSAxSyBJL08gd2luZG93cyAqLworCXVuc2lnbmVkIGludAlu b25fY29tcGxpYW50X2JhcnM6MTsJLyogYnJva2VuIEJBUnM7IGlnbm9yZSB0aGVtICovCiAJcGNp X2Rldl9mbGFnc190IGRldl9mbGFnczsKIAlhdG9taWNfdAllbmFibGVfY250OwkvKiBwY2lfZW5h YmxlX2RldmljZSBoYXMgYmVlbiBjYWxsZWQgKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51 eC90dHkuaCBiL2luY2x1ZGUvbGludXgvdHR5LmgKaW5kZXggMWMzMzE2YTQ3ZDdlLi4xZDAyMzky ZmEzYmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvdHR5LmgKKysrIGIvaW5jbHVkZS9saW51 eC90dHkuaApAQCAtNTY5LDcgKzU2OSw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHR0eV9sZGlzY19y ZWNlaXZlX2J1ZihzdHJ1Y3QgdHR5X2xkaXNjICpsZCwgdW5zaWduZWQgY2hhciAqcCwKIAkJY291 bnQgPSBsZC0+b3BzLT5yZWNlaXZlX2J1ZjIobGQtPnR0eSwgcCwgZiwgY291bnQpOwogCWVsc2Ug ewogCQljb3VudCA9IG1pbl90KGludCwgY291bnQsIGxkLT50dHktPnJlY2VpdmVfcm9vbSk7Ci0J CWlmIChjb3VudCkKKwkJaWYgKGNvdW50ICYmIGxkLT5vcHMtPnJlY2VpdmVfYnVmKQogCQkJbGQt Pm9wcy0+cmVjZWl2ZV9idWYobGQtPnR0eSwgcCwgZiwgY291bnQpOwogCX0KIAlyZXR1cm4gY291 bnQ7CmRpZmYgLS1naXQgYS9rZXJuZWwvZXZlbnRzL2NvcmUuYyBiL2tlcm5lbC9ldmVudHMvY29y ZS5jCmluZGV4IGRiMmYyY2ZiNThlMy4uZGI0MGVjZDBiMzgwIDEwMDY0NAotLS0gYS9rZXJuZWwv ZXZlbnRzL2NvcmUuYworKysgYi9rZXJuZWwvZXZlbnRzL2NvcmUuYwpAQCAtNjk3NSw2ICs2OTc1 LDkgQEAgcGVyZl9ldmVudF9hbGxvYyhzdHJ1Y3QgcGVyZl9ldmVudF9hdHRyICphdHRyLCBpbnQg Y3B1LAogCQl9CiAJfQogCisJLyogc3ltbWV0cmljIHRvIHVuYWNjb3VudF9ldmVudCgpIGluIF9m cmVlX2V2ZW50KCkgKi8KKwlhY2NvdW50X2V2ZW50KGV2ZW50KTsKKwogCXJldHVybiBldmVudDsK IAogZXJyX3BtdToKQEAgLTcyNzYsOCArNzI3OSw2IEBAIFNZU0NBTExfREVGSU5FNShwZXJmX2V2 ZW50X29wZW4sCiAJCX0KIAl9CiAKLQlhY2NvdW50X2V2ZW50KGV2ZW50KTsKLQogCS8qCiAJICog U3BlY2lhbCBjYXNlIHNvZnR3YXJlIGV2ZW50cyBhbmQgYWxsb3cgdGhlbSB0byBiZSBwYXJ0IG9m CiAJICogYW55IGhhcmR3YXJlIGdyb3VwLgpAQCAtNzQ4Niw4ICs3NDg3LDYgQEAgcGVyZl9ldmVu dF9jcmVhdGVfa2VybmVsX2NvdW50ZXIoc3RydWN0IHBlcmZfZXZlbnRfYXR0ciAqYXR0ciwgaW50 IGNwdSwKIAkJZ290byBlcnI7CiAJfQogCi0JYWNjb3VudF9ldmVudChldmVudCk7Ci0KIAljdHgg PSBmaW5kX2dldF9jb250ZXh0KGV2ZW50LT5wbXUsIHRhc2ssIGNwdSk7CiAJaWYgKElTX0VSUihj dHgpKSB7CiAJCWVyciA9IFBUUl9FUlIoY3R4KTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZC9j b3JlLmMgYi9rZXJuZWwvc2NoZWQvY29yZS5jCmluZGV4IGM0OWMxNmM0MDViNy4uOWNjZTAyOGE3 N2E0IDEwMDY0NAotLS0gYS9rZXJuZWwvc2NoZWQvY29yZS5jCisrKyBiL2tlcm5lbC9zY2hlZC9j b3JlLmMKQEAgLTUxMTEsNiArNTExMSw3IEBAIG1pZ3JhdGlvbl9jYWxsKHN0cnVjdCBub3RpZmll cl9ibG9jayAqbmZiLCB1bnNpZ25lZCBsb25nIGFjdGlvbiwgdm9pZCAqaGNwdSkKIAogCWNhc2Ug Q1BVX1VQX1BSRVBBUkU6CiAJCXJxLT5jYWxjX2xvYWRfdXBkYXRlID0gY2FsY19sb2FkX3VwZGF0 ZTsKKwkJYWNjb3VudF9yZXNldF9ycShycSk7CiAJCWJyZWFrOwogCiAJY2FzZSBDUFVfT05MSU5F OgpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkL2NwdXRpbWUuYyBiL2tlcm5lbC9zY2hlZC9jcHV0 aW1lLmMKaW5kZXggNzJmZGYwNmVmODY1Li4zNDlhZGE5YTdmYTUgMTAwNjQ0Ci0tLSBhL2tlcm5l bC9zY2hlZC9jcHV0aW1lLmMKKysrIGIva2VybmVsL3NjaGVkL2NwdXRpbWUuYwpAQCAtMjU5LDIx ICsyNTksMjEgQEAgc3RhdGljIF9fYWx3YXlzX2lubGluZSBib29sIHN0ZWFsX2FjY291bnRfcHJv Y2Vzc190aWNrKHZvaWQpCiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUCiAJaWYgKHN0YXRpY19rZXlf ZmFsc2UoJnBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQpKSB7CiAJCXU2NCBzdGVhbDsKLQkJY3B1dGlt ZV90IHN0ZWFsX2N0OworCQl1bnNpZ25lZCBsb25nIHN0ZWFsX2ppZmZpZXM7CiAKIAkJc3RlYWwg PSBwYXJhdmlydF9zdGVhbF9jbG9jayhzbXBfcHJvY2Vzc29yX2lkKCkpOwogCQlzdGVhbCAtPSB0 aGlzX3JxKCktPnByZXZfc3RlYWxfdGltZTsKIAogCQkvKgotCQkgKiBjcHV0aW1lX3QgbWF5IGJl IGxlc3MgcHJlY2lzZSB0aGFuIG5zZWNzIChlZzogaWYgaXQncwotCQkgKiBiYXNlZCBvbiBqaWZm aWVzKS4gTGV0cyBjYXN0IHRoZSByZXN1bHQgdG8gY3B1dGltZQorCQkgKiBzdGVhbCBpcyBpbiBu c2VjcyBidXQgb3VyIGNhbGxlciBpcyBleHBlY3Rpbmcgc3RlYWwKKwkJICogdGltZSBpbiBqaWZm aWVzLiBMZXRzIGNhc3QgdGhlIHJlc3VsdCB0byBqaWZmaWVzCiAJCSAqIGdyYW51bGFyaXR5IGFu ZCBhY2NvdW50IHRoZSByZXN0IG9uIHRoZSBuZXh0IHJvdW5kcy4KIAkJICovCi0JCXN0ZWFsX2N0 ID0gbnNlY3NfdG9fY3B1dGltZShzdGVhbCk7Ci0JCXRoaXNfcnEoKS0+cHJldl9zdGVhbF90aW1l ICs9IGNwdXRpbWVfdG9fbnNlY3Moc3RlYWxfY3QpOworCQlzdGVhbF9qaWZmaWVzID0gbnNlY3Nf dG9famlmZmllcyhzdGVhbCk7CisJCXRoaXNfcnEoKS0+cHJldl9zdGVhbF90aW1lICs9IGppZmZp ZXNfdG9fbnNlY3Moc3RlYWxfamlmZmllcyk7CiAKLQkJYWNjb3VudF9zdGVhbF90aW1lKHN0ZWFs X2N0KTsKLQkJcmV0dXJuIHN0ZWFsX2N0OworCQlhY2NvdW50X3N0ZWFsX3RpbWUoamlmZmllc190 b19jcHV0aW1lKHN0ZWFsX2ppZmZpZXMpKTsKKwkJcmV0dXJuIHN0ZWFsX2ppZmZpZXM7CiAJfQog I2VuZGlmCiAJcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkL3NjaGVkLmgg Yi9rZXJuZWwvc2NoZWQvc2NoZWQuaAppbmRleCBkMTU5NWM3YzI4MmEuLjk0MzUzYjE2Y2ZlNSAx MDA2NDQKLS0tIGEva2VybmVsL3NjaGVkL3NjaGVkLmgKKysrIGIva2VybmVsL3NjaGVkL3NjaGVk LmgKQEAgLTE1NDgsMyArMTU0OCwxNiBAQCBzdGF0aWMgaW5saW5lIHU2NCBpcnFfdGltZV9yZWFk KGludCBjcHUpCiB9CiAjZW5kaWYgLyogQ09ORklHXzY0QklUICovCiAjZW5kaWYgLyogQ09ORklH X0lSUV9USU1FX0FDQ09VTlRJTkcgKi8KKworc3RhdGljIGlubGluZSB2b2lkIGFjY291bnRfcmVz ZXRfcnEoc3RydWN0IHJxICpycSkKK3sKKyNpZmRlZiBDT05GSUdfSVJRX1RJTUVfQUNDT1VOVElO RworCXJxLT5wcmV2X2lycV90aW1lID0gMDsKKyNlbmRpZgorI2lmZGVmIENPTkZJR19QQVJBVklS VAorCXJxLT5wcmV2X3N0ZWFsX3RpbWUgPSAwOworI2VuZGlmCisjaWZkZWYgQ09ORklHX1BBUkFW SVJUX1RJTUVfQUNDT1VOVElORworCXJxLT5wcmV2X3N0ZWFsX3RpbWVfcnEgPSAwOworI2VuZGlm Cit9CmRpZmYgLS1naXQgYS9rZXJuZWwvc3lzY3RsX2JpbmFyeS5jIGIva2VybmVsL3N5c2N0bF9i aW5hcnkuYwppbmRleCA2NTNjYmJkOWU3YWQuLmI5Mzc2M2Q3ODBkNiAxMDA2NDQKLS0tIGEva2Vy bmVsL3N5c2N0bF9iaW5hcnkuYworKysgYi9rZXJuZWwvc3lzY3RsX2JpbmFyeS5jCkBAIC0xMzIw LDcgKzEzMjAsNyBAQCBzdGF0aWMgc3NpemVfdCBiaW5hcnlfc3lzY3RsKGNvbnN0IGludCAqbmFt ZSwgaW50IG5sZW4sCiAJfQogCiAJbW50ID0gdGFza19hY3RpdmVfcGlkX25zKGN1cnJlbnQpLT5w cm9jX21udDsKLQlmaWxlID0gZmlsZV9vcGVuX3Jvb3QobW50LT5tbnRfcm9vdCwgbW50LCBwYXRo bmFtZSwgZmxhZ3MpOworCWZpbGUgPSBmaWxlX29wZW5fcm9vdChtbnQtPm1udF9yb290LCBtbnQs IHBhdGhuYW1lLCBmbGFncywgMCk7CiAJcmVzdWx0ID0gUFRSX0VSUihmaWxlKTsKIAlpZiAoSVNf RVJSKGZpbGUpKQogCQlnb3RvIG91dF9wdXRuYW1lOwpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNl L3RyYWNlLmMgYi9rZXJuZWwvdHJhY2UvdHJhY2UuYwppbmRleCA4YjkyNGZiN2Y5MTUuLjZkM2Mz ODk2NmVkYSAxMDA2NDQKLS0tIGEva2VybmVsL3RyYWNlL3RyYWNlLmMKKysrIGIva2VybmVsL3Ry YWNlL3RyYWNlLmMKQEAgLTQ2NTcsNyArNDY1NywxMCBAQCBzdGF0aWMgc3NpemVfdCB0cmFjaW5n X3NwbGljZV9yZWFkX3BpcGUoc3RydWN0IGZpbGUgKmZpbHAsCiAKIAlzcGQubnJfcGFnZXMgPSBp OwogCi0JcmV0ID0gc3BsaWNlX3RvX3BpcGUocGlwZSwgJnNwZCk7CisJaWYgKGkpCisJCXJldCA9 IHNwbGljZV90b19waXBlKHBpcGUsICZzcGQpOworCWVsc2UKKwkJcmV0ID0gMDsKIG91dDoKIAlz cGxpY2Vfc2hyaW5rX3NwZCgmc3BkKTsKIAlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEva2VybmVs L3RyYWNlL3RyYWNlX2lycXNvZmYuYyBiL2tlcm5lbC90cmFjZS90cmFjZV9pcnFzb2ZmLmMKaW5k ZXggOWJiMTA0Zjc0OGQwLi5jZmE4MTNlMTVjZjUgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90cmFjZS90 cmFjZV9pcnFzb2ZmLmMKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlX2lycXNvZmYuYwpAQCAtMTE4 LDggKzExOCwxMiBAQCBzdGF0aWMgaW50IGZ1bmNfcHJvbG9nX2RlYyhzdHJ1Y3QgdHJhY2VfYXJy YXkgKnRyLAogCQlyZXR1cm4gMDsKIAogCWxvY2FsX3NhdmVfZmxhZ3MoKmZsYWdzKTsKLQkvKiBz bGlnaHQgY2hhbmNlIHRvIGdldCBhIGZhbHNlIHBvc2l0aXZlIG9uIHRyYWNpbmdfY3B1ICovCi0J aWYgKCFpcnFzX2Rpc2FibGVkX2ZsYWdzKCpmbGFncykpCisJLyoKKwkgKiBTbGlnaHQgY2hhbmNl IHRvIGdldCBhIGZhbHNlIHBvc2l0aXZlIG9uIHRyYWNpbmdfY3B1LAorCSAqIGFsdGhvdWdoIEkn bSBzdGFydGluZyB0byB0aGluayB0aGVyZSBpc24ndCBhIGNoYW5jZS4KKwkgKiBMZWF2ZSB0aGlz IGZvciBub3cganVzdCB0byBiZSBwYXJhbm9pZC4KKwkgKi8KKwlpZiAoIWlycXNfZGlzYWJsZWRf ZmxhZ3MoKmZsYWdzKSAmJiAhcHJlZW1wdF9jb3VudCgpKQogCQlyZXR1cm4gMDsKIAogCSpkYXRh ID0gcGVyX2NwdV9wdHIodHItPnRyYWNlX2J1ZmZlci5kYXRhLCBjcHUpOwpkaWZmIC0tZ2l0IGEv a2VybmVsL3RyYWNlL3RyYWNlX3ByaW50ay5jIGIva2VybmVsL3RyYWNlL3RyYWNlX3ByaW50ay5j CmluZGV4IDdjOGNlZjY1MzE2Ni4uN2I5MDA0NzQyMDlkIDEwMDY0NAotLS0gYS9rZXJuZWwvdHJh Y2UvdHJhY2VfcHJpbnRrLmMKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlX3ByaW50ay5jCkBAIC0y OTIsNiArMjkyLDkgQEAgc3RhdGljIGludCB0X3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lk ICp2KQogCWNvbnN0IGNoYXIgKnN0ciA9ICpmbXQ7CiAJaW50IGk7CiAKKwlpZiAoISpmbXQpCisJ CXJldHVybiAwOworCiAJc2VxX3ByaW50ZihtLCAiMHglbHggOiBcIiIsICoodW5zaWduZWQgbG9u ZyAqKWZtdCk7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvbW0vcGFnZV9pc29sYXRpb24uYyBiL21tL3Bh Z2VfaXNvbGF0aW9uLmMKaW5kZXggZDE0NzNiMmU5NDgxLi44OGJkYmY0OGNmNmMgMTAwNjQ0Ci0t LSBhL21tL3BhZ2VfaXNvbGF0aW9uLmMKKysrIGIvbW0vcGFnZV9pc29sYXRpb24uYwpAQCAtMjU5 LDExICsyNTksMTEgQEAgc3RydWN0IHBhZ2UgKmFsbG9jX21pZ3JhdGVfdGFyZ2V0KHN0cnVjdCBw YWdlICpwYWdlLCB1bnNpZ25lZCBsb25nIHByaXZhdGUsCiAJICogbm93IGFzIGEgc2ltcGxlIHdv cmstYXJvdW5kLCB3ZSB1c2UgdGhlIG5leHQgbm9kZSBmb3IgZGVzdGluYXRpb24uCiAJICovCiAJ aWYgKFBhZ2VIdWdlKHBhZ2UpKSB7Ci0JCW5vZGVtYXNrX3Qgc3JjID0gbm9kZW1hc2tfb2Zfbm9k ZShwYWdlX3RvX25pZChwYWdlKSk7Ci0JCW5vZGVtYXNrX3QgZHN0OwotCQlub2Rlc19jb21wbGVt ZW50KGRzdCwgc3JjKTsKKwkJaW50IG5vZGUgPSBuZXh0X29ubGluZV9ub2RlKHBhZ2VfdG9fbmlk KHBhZ2UpKTsKKwkJaWYgKG5vZGUgPT0gTUFYX05VTU5PREVTKQorCQkJbm9kZSA9IGZpcnN0X29u bGluZV9ub2RlOwogCQlyZXR1cm4gYWxsb2NfaHVnZV9wYWdlX25vZGUocGFnZV9oc3RhdGUoY29t cG91bmRfaGVhZChwYWdlKSksCi0JCQkJCSAgICBuZXh0X25vZGUocGFnZV90b19uaWQocGFnZSks IGRzdCkpOworCQkJCQkgICAgbm9kZSk7CiAJfQogCiAJaWYgKFBhZ2VIaWdoTWVtKHBhZ2UpKQpk aWZmIC0tZ2l0IGEvbmV0L2F4MjUvYXgyNV9pcC5jIGIvbmV0L2F4MjUvYXgyNV9pcC5jCmluZGV4 IDY3ZGU2YjMzZjJjMy4uNWVlOGM2ZmMxYTc1IDEwMDY0NAotLS0gYS9uZXQvYXgyNS9heDI1X2lw LmMKKysrIGIvbmV0L2F4MjUvYXgyNV9pcC5jCkBAIC0yMzEsOSArMjMxLDI0IEBAIGludCBheDI1 X3JlYnVpbGRfaGVhZGVyKHN0cnVjdCBza19idWZmICpza2IpCiAKICNlbmRpZgogCitzdGF0aWMg Ym9vbCBheDI1X3ZhbGlkYXRlX2hlYWRlcihjb25zdCBjaGFyICpoZWFkZXIsIHVuc2lnbmVkIGlu dCBsZW4pCit7CisJYXgyNV9kaWdpIGRpZ2k7CisKKwlpZiAoIWxlbikKKwkJcmV0dXJuIGZhbHNl OworCisJaWYgKGhlYWRlclswXSkKKwkJcmV0dXJuIHRydWU7CisKKwlyZXR1cm4gYXgyNV9hZGRy X3BhcnNlKGhlYWRlciArIDEsIGxlbiAtIDEsIE5VTEwsIE5VTEwsICZkaWdpLCBOVUxMLAorCQkJ ICAgICAgIE5VTEwpOworfQorCiBjb25zdCBzdHJ1Y3QgaGVhZGVyX29wcyBheDI1X2hlYWRlcl9v cHMgPSB7CiAJLmNyZWF0ZSA9IGF4MjVfaGFyZF9oZWFkZXIsCiAJLnJlYnVpbGQgPSBheDI1X3Jl YnVpbGRfaGVhZGVyLAorCS52YWxpZGF0ZSA9IGF4MjVfdmFsaWRhdGVfaGVhZGVyLAogfTsKIAog RVhQT1JUX1NZTUJPTChheDI1X2hhcmRfaGVhZGVyKTsKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Rl di5jIGIvbmV0L2NvcmUvZGV2LmMKaW5kZXggZTEyODIzZTY4YmIwLi43NWJlN2UyMjYyNjggMTAw NjQ0Ci0tLSBhL25ldC9jb3JlL2Rldi5jCisrKyBiL25ldC9jb3JlL2Rldi5jCkBAIC0zOTc0LDcg KzM5NzQsNyBAQCBzdGF0aWMgZW51bSBncm9fcmVzdWx0IGRldl9ncm9fcmVjZWl2ZShzdHJ1Y3Qg bmFwaV9zdHJ1Y3QgKm5hcGksIHN0cnVjdCBza19idWZmCiAJCU5BUElfR1JPX0NCKHNrYiktPnNh bWVfZmxvdyA9IDA7CiAJCU5BUElfR1JPX0NCKHNrYiktPmZsdXNoID0gMDsKIAkJTkFQSV9HUk9f Q0Ioc2tiKS0+ZnJlZSA9IDA7Ci0JCU5BUElfR1JPX0NCKHNrYiktPnVkcF9tYXJrID0gMDsKKwkJ TkFQSV9HUk9fQ0Ioc2tiKS0+ZW5jYXBfbWFyayA9IDA7CiAKIAkJcHAgPSBwdHlwZS0+Y2FsbGJh Y2tzLmdyb19yZWNlaXZlKCZuYXBpLT5ncm9fbGlzdCwgc2tiKTsKIAkJYnJlYWs7CmRpZmYgLS1n aXQgYS9uZXQvY29yZS9maWx0ZXIuYyBiL25ldC9jb3JlL2ZpbHRlci5jCmluZGV4IGRmYzVmMzFk YzVhMS4uYjI3NWM1NTU5ZGMwIDEwMDY0NAotLS0gYS9uZXQvY29yZS9maWx0ZXIuYworKysgYi9u ZXQvY29yZS9maWx0ZXIuYwpAQCAtMTU5MCw3ICsxNTkwLDggQEAgRVhQT1JUX1NZTUJPTF9HUEwo c2tfdW5hdHRhY2hlZF9maWx0ZXJfZGVzdHJveSk7CiAgKiBvY2N1cnMgb3IgdGhlcmUgaXMgaW5z dWZmaWNpZW50IG1lbW9yeSBmb3IgdGhlIGZpbHRlciBhIG5lZ2F0aXZlCiAgKiBlcnJubyBjb2Rl IGlzIHJldHVybmVkLiBPbiBzdWNjZXNzIHRoZSByZXR1cm4gaXMgemVyby4KICAqLwotaW50IHNr X2F0dGFjaF9maWx0ZXIoc3RydWN0IHNvY2tfZnByb2cgKmZwcm9nLCBzdHJ1Y3Qgc29jayAqc2sp CitpbnQgX19za19hdHRhY2hfZmlsdGVyKHN0cnVjdCBzb2NrX2Zwcm9nICpmcHJvZywgc3RydWN0 IHNvY2sgKnNrLAorCQkgICAgICAgYm9vbCBsb2NrZWQpCiB7CiAJc3RydWN0IHNrX2ZpbHRlciAq ZnAsICpvbGRfZnA7CiAJdW5zaWduZWQgaW50IGZzaXplID0gc2tfZmlsdGVyX3Byb2dsZW4oZnBy b2cpOwpAQCAtMTYyOSw4ICsxNjMwLDcgQEAgaW50IHNrX2F0dGFjaF9maWx0ZXIoc3RydWN0IHNv Y2tfZnByb2cgKmZwcm9nLCBzdHJ1Y3Qgc29jayAqc2spCiAJaWYgKElTX0VSUihmcCkpCiAJCXJl dHVybiBQVFJfRVJSKGZwKTsKIAotCW9sZF9mcCA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQo c2stPnNrX2ZpbHRlciwKLQkJCQkJICAgc29ja19vd25lZF9ieV91c2VyKHNrKSk7CisJb2xkX2Zw ID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChzay0+c2tfZmlsdGVyLCBsb2NrZWQpOwogCXJj dV9hc3NpZ25fcG9pbnRlcihzay0+c2tfZmlsdGVyLCBmcCk7CiAKIAlpZiAob2xkX2ZwKQpAQCAt MTYzOCw5ICsxNjM4LDE0IEBAIGludCBza19hdHRhY2hfZmlsdGVyKHN0cnVjdCBzb2NrX2Zwcm9n ICpmcHJvZywgc3RydWN0IHNvY2sgKnNrKQogCiAJcmV0dXJuIDA7CiB9Ci1FWFBPUlRfU1lNQk9M X0dQTChza19hdHRhY2hfZmlsdGVyKTsKK0VYUE9SVF9TWU1CT0xfR1BMKF9fc2tfYXR0YWNoX2Zp bHRlcik7CiAKLWludCBza19kZXRhY2hfZmlsdGVyKHN0cnVjdCBzb2NrICpzaykKK2ludCBza19h dHRhY2hfZmlsdGVyKHN0cnVjdCBzb2NrX2Zwcm9nICpmcHJvZywgc3RydWN0IHNvY2sgKnNrKQor eworCXJldHVybiBfX3NrX2F0dGFjaF9maWx0ZXIoZnByb2csIHNrLCBzb2NrX293bmVkX2J5X3Vz ZXIoc2spKTsKK30KKworaW50IF9fc2tfZGV0YWNoX2ZpbHRlcihzdHJ1Y3Qgc29jayAqc2ssIGJv b2wgbG9ja2VkKQogewogCWludCByZXQgPSAtRU5PRU5UOwogCXN0cnVjdCBza19maWx0ZXIgKmZp bHRlcjsKQEAgLTE2NDgsOCArMTY1Myw3IEBAIGludCBza19kZXRhY2hfZmlsdGVyKHN0cnVjdCBz b2NrICpzaykKIAlpZiAoc29ja19mbGFnKHNrLCBTT0NLX0ZJTFRFUl9MT0NLRUQpKQogCQlyZXR1 cm4gLUVQRVJNOwogCi0JZmlsdGVyID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChzay0+c2tf ZmlsdGVyLAotCQkJCQkgICBzb2NrX293bmVkX2J5X3VzZXIoc2spKTsKKwlmaWx0ZXIgPSByY3Vf ZGVyZWZlcmVuY2VfcHJvdGVjdGVkKHNrLT5za19maWx0ZXIsIGxvY2tlZCk7CiAJaWYgKGZpbHRl cikgewogCQlSQ1VfSU5JVF9QT0lOVEVSKHNrLT5za19maWx0ZXIsIE5VTEwpOwogCQlza19maWx0 ZXJfdW5jaGFyZ2Uoc2ssIGZpbHRlcik7CkBAIC0xNjU4LDcgKzE2NjIsMTIgQEAgaW50IHNrX2Rl dGFjaF9maWx0ZXIoc3RydWN0IHNvY2sgKnNrKQogCiAJcmV0dXJuIHJldDsKIH0KLUVYUE9SVF9T WU1CT0xfR1BMKHNrX2RldGFjaF9maWx0ZXIpOworRVhQT1JUX1NZTUJPTF9HUEwoX19za19kZXRh Y2hfZmlsdGVyKTsKKworaW50IHNrX2RldGFjaF9maWx0ZXIoc3RydWN0IHNvY2sgKnNrKQorewor CXJldHVybiBfX3NrX2RldGFjaF9maWx0ZXIoc2ssIHNvY2tfb3duZWRfYnlfdXNlcihzaykpOwor fQogCiBpbnQgc2tfZ2V0X2ZpbHRlcihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrX2ZpbHRl ciBfX3VzZXIgKnVidWYsCiAJCSAgdW5zaWduZWQgaW50IGxlbikKZGlmZiAtLWdpdCBhL25ldC9p cHY0L2dyZV9vZmZsb2FkLmMgYi9uZXQvaXB2NC9ncmVfb2ZmbG9hZC5jCmluZGV4IDg1Yzg0ZjQ4 N2Q1OS4uN2ZmNjgyZjdlMWMzIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9ncmVfb2ZmbG9hZC5jCisr KyBiL25ldC9pcHY0L2dyZV9vZmZsb2FkLmMKQEAgLTE1NCw2ICsxNTQsMTEgQEAgc3RhdGljIHN0 cnVjdCBza19idWZmICoqZ3JlX2dyb19yZWNlaXZlKHN0cnVjdCBza19idWZmICoqaGVhZCwKIAlz dHJ1Y3QgcGFja2V0X29mZmxvYWQgKnB0eXBlOwogCV9fYmUxNiB0eXBlOwogCisJaWYgKE5BUElf R1JPX0NCKHNrYiktPmVuY2FwX21hcmspCisJCWdvdG8gb3V0OworCisJTkFQSV9HUk9fQ0Ioc2ti KS0+ZW5jYXBfbWFyayA9IDE7CisKIAlvZmYgPSBza2JfZ3JvX29mZnNldChza2IpOwogCWhsZW4g PSBvZmYgKyBzaXplb2YoKmdyZWgpOwogCWdyZWggPSBza2JfZ3JvX2hlYWRlcl9mYXN0KHNrYiwg b2ZmKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L25ldGZpbHRlci9hcnBfdGFibGVzLmMgYi9uZXQv aXB2NC9uZXRmaWx0ZXIvYXJwX3RhYmxlcy5jCmluZGV4IGY5NWI2ZjkzODE0Yi4uNzM4ZTYyZDU0 OGNlIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9uZXRmaWx0ZXIvYXJwX3RhYmxlcy5jCisrKyBiL25l dC9pcHY0L25ldGZpbHRlci9hcnBfdGFibGVzLmMKQEAgLTM1NSwxMSArMzU1LDEyIEBAIHVuc2ln bmVkIGludCBhcnB0X2RvX3RhYmxlKHN0cnVjdCBza19idWZmICpza2IsCiB9CiAKIC8qIEFsbCB6 ZXJvZXMgPT0gdW5jb25kaXRpb25hbCBydWxlLiAqLwotc3RhdGljIGlubGluZSBib29sIHVuY29u ZGl0aW9uYWwoY29uc3Qgc3RydWN0IGFycHRfYXJwICphcnApCitzdGF0aWMgaW5saW5lIGJvb2wg dW5jb25kaXRpb25hbChjb25zdCBzdHJ1Y3QgYXJwdF9lbnRyeSAqZSkKIHsKIAlzdGF0aWMgY29u c3Qgc3RydWN0IGFycHRfYXJwIHVuY29uZDsKIAotCXJldHVybiBtZW1jbXAoYXJwLCAmdW5jb25k LCBzaXplb2YodW5jb25kKSkgPT0gMDsKKwlyZXR1cm4gZS0+dGFyZ2V0X29mZnNldCA9PSBzaXpl b2Yoc3RydWN0IGFycHRfZW50cnkpICYmCisJICAgICAgIG1lbWNtcCgmZS0+YXJwLCAmdW5jb25k LCBzaXplb2YodW5jb25kKSkgPT0gMDsKIH0KIAogLyogRmlndXJlcyBvdXQgZnJvbSB3aGF0IGhv b2sgZWFjaCBydWxlIGNhbiBiZSBjYWxsZWQ6IHJldHVybnMgMCBpZgpAQCAtMzk4LDExICszOTks MTAgQEAgc3RhdGljIGludCBtYXJrX3NvdXJjZV9jaGFpbnMoY29uc3Qgc3RydWN0IHh0X3RhYmxl X2luZm8gKm5ld2luZm8sCiAJCQkJfD0gKCgxIDw8IGhvb2spIHwgKDEgPDwgTkZfQVJQX05VTUhP T0tTKSk7CiAKIAkJCS8qIFVuY29uZGl0aW9uYWwgcmV0dXJuL0VORC4gKi8KLQkJCWlmICgoZS0+ dGFyZ2V0X29mZnNldCA9PSBzaXplb2Yoc3RydWN0IGFycHRfZW50cnkpICYmCisJCQlpZiAoKHVu Y29uZGl0aW9uYWwoZSkgJiYKIAkJCSAgICAgKHN0cmNtcCh0LT50YXJnZXQudS51c2VyLm5hbWUs CiAJCQkJICAgICBYVF9TVEFOREFSRF9UQVJHRVQpID09IDApICYmCi0JCQkgICAgIHQtPnZlcmRp Y3QgPCAwICYmIHVuY29uZGl0aW9uYWwoJmUtPmFycCkpIHx8Ci0JCQkgICAgdmlzaXRlZCkgewor CQkJICAgICB0LT52ZXJkaWN0IDwgMCkgfHwgdmlzaXRlZCkgewogCQkJCXVuc2lnbmVkIGludCBv bGRwb3MsIHNpemU7CiAKIAkJCQlpZiAoKHN0cmNtcCh0LT50YXJnZXQudS51c2VyLm5hbWUsCkBA IC00NzAsMTQgKzQ3MCwxMiBAQCBzdGF0aWMgaW50IG1hcmtfc291cmNlX2NoYWlucyhjb25zdCBz dHJ1Y3QgeHRfdGFibGVfaW5mbyAqbmV3aW5mbywKIAlyZXR1cm4gMTsKIH0KIAotc3RhdGljIGlu bGluZSBpbnQgY2hlY2tfZW50cnkoY29uc3Qgc3RydWN0IGFycHRfZW50cnkgKmUsIGNvbnN0IGNo YXIgKm5hbWUpCitzdGF0aWMgaW5saW5lIGludCBjaGVja19lbnRyeShjb25zdCBzdHJ1Y3QgYXJw dF9lbnRyeSAqZSkKIHsKIAljb25zdCBzdHJ1Y3QgeHRfZW50cnlfdGFyZ2V0ICp0OwogCi0JaWYg KCFhcnBfY2hlY2tlbnRyeSgmZS0+YXJwKSkgewotCQlkdXByaW50ZigiYXJwX3RhYmxlczogYXJw IGNoZWNrIGZhaWxlZCAlcCAlcy5cbiIsIGUsIG5hbWUpOworCWlmICghYXJwX2NoZWNrZW50cnko JmUtPmFycCkpCiAJCXJldHVybiAtRUlOVkFMOwotCX0KIAogCWlmIChlLT50YXJnZXRfb2Zmc2V0 ICsgc2l6ZW9mKHN0cnVjdCB4dF9lbnRyeV90YXJnZXQpID4gZS0+bmV4dF9vZmZzZXQpCiAJCXJl dHVybiAtRUlOVkFMOwpAQCAtNTE4LDEwICs1MTYsNiBAQCBmaW5kX2NoZWNrX2VudHJ5KHN0cnVj dCBhcnB0X2VudHJ5ICplLCBjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBpbnQgc2l6ZSkKIAlz dHJ1Y3QgeHRfdGFyZ2V0ICp0YXJnZXQ7CiAJaW50IHJldDsKIAotCXJldCA9IGNoZWNrX2VudHJ5 KGUsIG5hbWUpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KIAl0ID0gYXJwdF9nZXRfdGFy Z2V0KGUpOwogCXRhcmdldCA9IHh0X3JlcXVlc3RfZmluZF90YXJnZXQoTkZQUk9UT19BUlAsIHQt PnUudXNlci5uYW1lLAogCQkJCQl0LT51LnVzZXIucmV2aXNpb24pOwpAQCAtNTQ3LDcgKzU0MSw3 IEBAIHN0YXRpYyBib29sIGNoZWNrX3VuZGVyZmxvdyhjb25zdCBzdHJ1Y3QgYXJwdF9lbnRyeSAq ZSkKIAljb25zdCBzdHJ1Y3QgeHRfZW50cnlfdGFyZ2V0ICp0OwogCXVuc2lnbmVkIGludCB2ZXJk aWN0OwogCi0JaWYgKCF1bmNvbmRpdGlvbmFsKCZlLT5hcnApKQorCWlmICghdW5jb25kaXRpb25h bChlKSkKIAkJcmV0dXJuIGZhbHNlOwogCXQgPSBhcnB0X2dldF90YXJnZXRfYyhlKTsKIAlpZiAo c3RyY21wKHQtPnUudXNlci5uYW1lLCBYVF9TVEFOREFSRF9UQVJHRVQpICE9IDApCkBAIC01NjYs OSArNTYwLDExIEBAIHN0YXRpYyBpbmxpbmUgaW50IGNoZWNrX2VudHJ5X3NpemVfYW5kX2hvb2tz KHN0cnVjdCBhcnB0X2VudHJ5ICplLAogCQkJCQkgICAgIHVuc2lnbmVkIGludCB2YWxpZF9ob29r cykKIHsKIAl1bnNpZ25lZCBpbnQgaDsKKwlpbnQgZXJyOwogCiAJaWYgKCh1bnNpZ25lZCBsb25n KWUgJSBfX2FsaWdub2ZfXyhzdHJ1Y3QgYXJwdF9lbnRyeSkgIT0gMCB8fAotCSAgICAodW5zaWdu ZWQgY2hhciAqKWUgKyBzaXplb2Yoc3RydWN0IGFycHRfZW50cnkpID49IGxpbWl0KSB7CisJICAg ICh1bnNpZ25lZCBjaGFyICopZSArIHNpemVvZihzdHJ1Y3QgYXJwdF9lbnRyeSkgPj0gbGltaXQg fHwKKwkgICAgKHVuc2lnbmVkIGNoYXIgKillICsgZS0+bmV4dF9vZmZzZXQgPiBsaW1pdCkgewog CQlkdXByaW50ZigiQmFkIG9mZnNldCAlcFxuIiwgZSk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0K QEAgLTU4MCw2ICs1NzYsMTAgQEAgc3RhdGljIGlubGluZSBpbnQgY2hlY2tfZW50cnlfc2l6ZV9h bmRfaG9va3Moc3RydWN0IGFycHRfZW50cnkgKmUsCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAor CWVyciA9IGNoZWNrX2VudHJ5KGUpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKIAkvKiBD aGVjayBob29rcyAmIHVuZGVyZmxvd3MgKi8KIAlmb3IgKGggPSAwOyBoIDwgTkZfQVJQX05VTUhP T0tTOyBoKyspIHsKIAkJaWYgKCEodmFsaWRfaG9va3MgJiAoMSA8PCBoKSkpCkBAIC01ODgsOSAr NTg4LDkgQEAgc3RhdGljIGlubGluZSBpbnQgY2hlY2tfZW50cnlfc2l6ZV9hbmRfaG9va3Moc3Ry dWN0IGFycHRfZW50cnkgKmUsCiAJCQluZXdpbmZvLT5ob29rX2VudHJ5W2hdID0gaG9va19lbnRy aWVzW2hdOwogCQlpZiAoKHVuc2lnbmVkIGNoYXIgKillIC0gYmFzZSA9PSB1bmRlcmZsb3dzW2hd KSB7CiAJCQlpZiAoIWNoZWNrX3VuZGVyZmxvdyhlKSkgewotCQkJCXByX2VycigiVW5kZXJmbG93 cyBtdXN0IGJlIHVuY29uZGl0aW9uYWwgYW5kICIKLQkJCQkgICAgICAgInVzZSB0aGUgU1RBTkRB UkQgdGFyZ2V0IHdpdGggIgotCQkJCSAgICAgICAiQUNDRVBUL0RST1BcbiIpOworCQkJCXByX2Rl YnVnKCJVbmRlcmZsb3dzIG11c3QgYmUgdW5jb25kaXRpb25hbCBhbmQgIgorCQkJCQkgInVzZSB0 aGUgU1RBTkRBUkQgdGFyZ2V0IHdpdGggIgorCQkJCQkgIkFDQ0VQVC9EUk9QXG4iKTsKIAkJCQly ZXR1cm4gLUVJTlZBTDsKIAkJCX0KIAkJCW5ld2luZm8tPnVuZGVyZmxvd1toXSA9IHVuZGVyZmxv d3NbaF07CkBAIC0xMjI0LDcgKzEyMjQsOCBAQCBjaGVja19jb21wYXRfZW50cnlfc2l6ZV9hbmRf aG9va3Moc3RydWN0IGNvbXBhdF9hcnB0X2VudHJ5ICplLAogCiAJZHVwcmludGYoImNoZWNrX2Nv bXBhdF9lbnRyeV9zaXplX2FuZF9ob29rcyAlcFxuIiwgZSk7CiAJaWYgKCh1bnNpZ25lZCBsb25n KWUgJSBfX2FsaWdub2ZfXyhzdHJ1Y3QgY29tcGF0X2FycHRfZW50cnkpICE9IDAgfHwKLQkgICAg KHVuc2lnbmVkIGNoYXIgKillICsgc2l6ZW9mKHN0cnVjdCBjb21wYXRfYXJwdF9lbnRyeSkgPj0g bGltaXQpIHsKKwkgICAgKHVuc2lnbmVkIGNoYXIgKillICsgc2l6ZW9mKHN0cnVjdCBjb21wYXRf YXJwdF9lbnRyeSkgPj0gbGltaXQgfHwKKwkgICAgKHVuc2lnbmVkIGNoYXIgKillICsgZS0+bmV4 dF9vZmZzZXQgPiBsaW1pdCkgewogCQlkdXByaW50ZigiQmFkIG9mZnNldCAlcCwgbGltaXQgPSAl cFxuIiwgZSwgbGltaXQpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0xMjM3LDcgKzEyMzgs NyBAQCBjaGVja19jb21wYXRfZW50cnlfc2l6ZV9hbmRfaG9va3Moc3RydWN0IGNvbXBhdF9hcnB0 X2VudHJ5ICplLAogCX0KIAogCS8qIEZvciBwdXJwb3NlcyBvZiBjaGVja19lbnRyeSBjYXN0aW5n IHRoZSBjb21wYXQgZW50cnkgaXMgZmluZSAqLwotCXJldCA9IGNoZWNrX2VudHJ5KChzdHJ1Y3Qg YXJwdF9lbnRyeSAqKWUsIG5hbWUpOworCXJldCA9IGNoZWNrX2VudHJ5KChzdHJ1Y3QgYXJwdF9l bnRyeSAqKWUpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKZGlmZiAtLWdpdCBhL25ldC9p cHY0L25ldGZpbHRlci9pcF90YWJsZXMuYyBiL25ldC9pcHY0L25ldGZpbHRlci9pcF90YWJsZXMu YwppbmRleCA5OWU4MTBmODQ2NzEuLjJjOGZiNzI0ZGRlNSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQv bmV0ZmlsdGVyL2lwX3RhYmxlcy5jCisrKyBiL25ldC9pcHY0L25ldGZpbHRlci9pcF90YWJsZXMu YwpAQCAtMTY4LDExICsxNjgsMTIgQEAgZ2V0X2VudHJ5KGNvbnN0IHZvaWQgKmJhc2UsIHVuc2ln bmVkIGludCBvZmZzZXQpCiAKIC8qIEFsbCB6ZXJvZXMgPT0gdW5jb25kaXRpb25hbCBydWxlLiAq LwogLyogTWlsZGx5IHBlcmYgY3JpdGljYWwgKG9ubHkgaWYgcGFja2V0IHRyYWNpbmcgaXMgb24p ICovCi1zdGF0aWMgaW5saW5lIGJvb2wgdW5jb25kaXRpb25hbChjb25zdCBzdHJ1Y3QgaXB0X2lw ICppcCkKK3N0YXRpYyBpbmxpbmUgYm9vbCB1bmNvbmRpdGlvbmFsKGNvbnN0IHN0cnVjdCBpcHRf ZW50cnkgKmUpCiB7CiAJc3RhdGljIGNvbnN0IHN0cnVjdCBpcHRfaXAgdW5jb25kOwogCi0JcmV0 dXJuIG1lbWNtcChpcCwgJnVuY29uZCwgc2l6ZW9mKHVuY29uZCkpID09IDA7CisJcmV0dXJuIGUt PnRhcmdldF9vZmZzZXQgPT0gc2l6ZW9mKHN0cnVjdCBpcHRfZW50cnkpICYmCisJICAgICAgIG1l bWNtcCgmZS0+aXAsICZ1bmNvbmQsIHNpemVvZih1bmNvbmQpKSA9PSAwOwogI3VuZGVmIEZXSU5W CiB9CiAKQEAgLTIyOSwxMSArMjMwLDEwIEBAIGdldF9jaGFpbm5hbWVfcnVsZW51bShjb25zdCBz dHJ1Y3QgaXB0X2VudHJ5ICpzLCBjb25zdCBzdHJ1Y3QgaXB0X2VudHJ5ICplLAogCX0gZWxzZSBp ZiAocyA9PSBlKSB7CiAJCSgqcnVsZW51bSkrKzsKIAotCQlpZiAocy0+dGFyZ2V0X29mZnNldCA9 PSBzaXplb2Yoc3RydWN0IGlwdF9lbnRyeSkgJiYKKwkJaWYgKHVuY29uZGl0aW9uYWwocykgJiYK IAkJICAgIHN0cmNtcCh0LT50YXJnZXQudS5rZXJuZWwudGFyZ2V0LT5uYW1lLAogCQkJICAgWFRf U1RBTkRBUkRfVEFSR0VUKSA9PSAwICYmCi0JCSAgIHQtPnZlcmRpY3QgPCAwICYmCi0JCSAgIHVu Y29uZGl0aW9uYWwoJnMtPmlwKSkgeworCQkgICB0LT52ZXJkaWN0IDwgMCkgewogCQkJLyogVGFp bCBvZiBjaGFpbnM6IFNUQU5EQVJEIHRhcmdldCAocmV0dXJuL3BvbGljeSkgKi8KIAkJCSpjb21t ZW50ID0gKmNoYWlubmFtZSA9PSBob29rbmFtZQogCQkJCT8gY29tbWVudHNbTkZfSVBfVFJBQ0Vf Q09NTUVOVF9QT0xJQ1ldCkBAIC00NzIsMTEgKzQ3MiwxMCBAQCBtYXJrX3NvdXJjZV9jaGFpbnMo Y29uc3Qgc3RydWN0IHh0X3RhYmxlX2luZm8gKm5ld2luZm8sCiAJCQllLT5jb21lZnJvbSB8PSAo KDEgPDwgaG9vaykgfCAoMSA8PCBORl9JTkVUX05VTUhPT0tTKSk7CiAKIAkJCS8qIFVuY29uZGl0 aW9uYWwgcmV0dXJuL0VORC4gKi8KLQkJCWlmICgoZS0+dGFyZ2V0X29mZnNldCA9PSBzaXplb2Yo c3RydWN0IGlwdF9lbnRyeSkgJiYKKwkJCWlmICgodW5jb25kaXRpb25hbChlKSAmJgogCQkJICAg ICAoc3RyY21wKHQtPnRhcmdldC51LnVzZXIubmFtZSwKIAkJCQkgICAgIFhUX1NUQU5EQVJEX1RB UkdFVCkgPT0gMCkgJiYKLQkJCSAgICAgdC0+dmVyZGljdCA8IDAgJiYgdW5jb25kaXRpb25hbCgm ZS0+aXApKSB8fAotCQkJICAgIHZpc2l0ZWQpIHsKKwkJCSAgICAgdC0+dmVyZGljdCA8IDApIHx8 IHZpc2l0ZWQpIHsKIAkJCQl1bnNpZ25lZCBpbnQgb2xkcG9zLCBzaXplOwogCiAJCQkJaWYgKChz dHJjbXAodC0+dGFyZ2V0LnUudXNlci5uYW1lLApAQCAtNTY1LDE0ICs1NjQsMTIgQEAgc3RhdGlj IHZvaWQgY2xlYW51cF9tYXRjaChzdHJ1Y3QgeHRfZW50cnlfbWF0Y2ggKm0sIHN0cnVjdCBuZXQg Km5ldCkKIH0KIAogc3RhdGljIGludAotY2hlY2tfZW50cnkoY29uc3Qgc3RydWN0IGlwdF9lbnRy eSAqZSwgY29uc3QgY2hhciAqbmFtZSkKK2NoZWNrX2VudHJ5KGNvbnN0IHN0cnVjdCBpcHRfZW50 cnkgKmUpCiB7CiAJY29uc3Qgc3RydWN0IHh0X2VudHJ5X3RhcmdldCAqdDsKIAotCWlmICghaXBf Y2hlY2tlbnRyeSgmZS0+aXApKSB7Ci0JCWR1cHJpbnRmKCJpcCBjaGVjayBmYWlsZWQgJXAgJXMu XG4iLCBlLCBuYW1lKTsKKwlpZiAoIWlwX2NoZWNrZW50cnkoJmUtPmlwKSkKIAkJcmV0dXJuIC1F SU5WQUw7Ci0JfQogCiAJaWYgKGUtPnRhcmdldF9vZmZzZXQgKyBzaXplb2Yoc3RydWN0IHh0X2Vu dHJ5X3RhcmdldCkgPgogCSAgICBlLT5uZXh0X29mZnNldCkKQEAgLTY2MiwxMCArNjU5LDYgQEAg ZmluZF9jaGVja19lbnRyeShzdHJ1Y3QgaXB0X2VudHJ5ICplLCBzdHJ1Y3QgbmV0ICpuZXQsIGNv bnN0IGNoYXIgKm5hbWUsCiAJc3RydWN0IHh0X210Y2hrX3BhcmFtIG10cGFyOwogCXN0cnVjdCB4 dF9lbnRyeV9tYXRjaCAqZW1hdGNoOwogCi0JcmV0ID0gY2hlY2tfZW50cnkoZSwgbmFtZSk7Ci0J aWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQogCWogPSAwOwogCW10cGFyLm5ldAk9IG5ldDsKIAlt dHBhci50YWJsZSAgICAgPSBuYW1lOwpAQCAtNzA5LDcgKzcwMiw3IEBAIHN0YXRpYyBib29sIGNo ZWNrX3VuZGVyZmxvdyhjb25zdCBzdHJ1Y3QgaXB0X2VudHJ5ICplKQogCWNvbnN0IHN0cnVjdCB4 dF9lbnRyeV90YXJnZXQgKnQ7CiAJdW5zaWduZWQgaW50IHZlcmRpY3Q7CiAKLQlpZiAoIXVuY29u ZGl0aW9uYWwoJmUtPmlwKSkKKwlpZiAoIXVuY29uZGl0aW9uYWwoZSkpCiAJCXJldHVybiBmYWxz ZTsKIAl0ID0gaXB0X2dldF90YXJnZXRfYyhlKTsKIAlpZiAoc3RyY21wKHQtPnUudXNlci5uYW1l LCBYVF9TVEFOREFSRF9UQVJHRVQpICE9IDApCkBAIC03MjksOSArNzIyLDExIEBAIGNoZWNrX2Vu dHJ5X3NpemVfYW5kX2hvb2tzKHN0cnVjdCBpcHRfZW50cnkgKmUsCiAJCQkgICB1bnNpZ25lZCBp bnQgdmFsaWRfaG9va3MpCiB7CiAJdW5zaWduZWQgaW50IGg7CisJaW50IGVycjsKIAogCWlmICgo dW5zaWduZWQgbG9uZyllICUgX19hbGlnbm9mX18oc3RydWN0IGlwdF9lbnRyeSkgIT0gMCB8fAot CSAgICAodW5zaWduZWQgY2hhciAqKWUgKyBzaXplb2Yoc3RydWN0IGlwdF9lbnRyeSkgPj0gbGlt aXQpIHsKKwkgICAgKHVuc2lnbmVkIGNoYXIgKillICsgc2l6ZW9mKHN0cnVjdCBpcHRfZW50cnkp ID49IGxpbWl0IHx8CisJICAgICh1bnNpZ25lZCBjaGFyICopZSArIGUtPm5leHRfb2Zmc2V0ID4g bGltaXQpIHsKIAkJZHVwcmludGYoIkJhZCBvZmZzZXQgJXBcbiIsIGUpOwogCQlyZXR1cm4gLUVJ TlZBTDsKIAl9CkBAIC03NDMsNiArNzM4LDEwIEBAIGNoZWNrX2VudHJ5X3NpemVfYW5kX2hvb2tz KHN0cnVjdCBpcHRfZW50cnkgKmUsCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAorCWVyciA9IGNo ZWNrX2VudHJ5KGUpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKIAkvKiBDaGVjayBob29r cyAmIHVuZGVyZmxvd3MgKi8KIAlmb3IgKGggPSAwOyBoIDwgTkZfSU5FVF9OVU1IT09LUzsgaCsr KSB7CiAJCWlmICghKHZhbGlkX2hvb2tzICYgKDEgPDwgaCkpKQpAQCAtNzUxLDkgKzc1MCw5IEBA IGNoZWNrX2VudHJ5X3NpemVfYW5kX2hvb2tzKHN0cnVjdCBpcHRfZW50cnkgKmUsCiAJCQluZXdp bmZvLT5ob29rX2VudHJ5W2hdID0gaG9va19lbnRyaWVzW2hdOwogCQlpZiAoKHVuc2lnbmVkIGNo YXIgKillIC0gYmFzZSA9PSB1bmRlcmZsb3dzW2hdKSB7CiAJCQlpZiAoIWNoZWNrX3VuZGVyZmxv dyhlKSkgewotCQkJCXByX2VycigiVW5kZXJmbG93cyBtdXN0IGJlIHVuY29uZGl0aW9uYWwgYW5k ICIKLQkJCQkgICAgICAgInVzZSB0aGUgU1RBTkRBUkQgdGFyZ2V0IHdpdGggIgotCQkJCSAgICAg ICAiQUNDRVBUL0RST1BcbiIpOworCQkJCXByX2RlYnVnKCJVbmRlcmZsb3dzIG11c3QgYmUgdW5j b25kaXRpb25hbCBhbmQgIgorCQkJCQkgInVzZSB0aGUgU1RBTkRBUkQgdGFyZ2V0IHdpdGggIgor CQkJCQkgIkFDQ0VQVC9EUk9QXG4iKTsKIAkJCQlyZXR1cm4gLUVJTlZBTDsKIAkJCX0KIAkJCW5l d2luZm8tPnVuZGVyZmxvd1toXSA9IHVuZGVyZmxvd3NbaF07CkBAIC0xNDkwLDcgKzE0ODksOCBA QCBjaGVja19jb21wYXRfZW50cnlfc2l6ZV9hbmRfaG9va3Moc3RydWN0IGNvbXBhdF9pcHRfZW50 cnkgKmUsCiAKIAlkdXByaW50ZigiY2hlY2tfY29tcGF0X2VudHJ5X3NpemVfYW5kX2hvb2tzICVw XG4iLCBlKTsKIAlpZiAoKHVuc2lnbmVkIGxvbmcpZSAlIF9fYWxpZ25vZl9fKHN0cnVjdCBjb21w YXRfaXB0X2VudHJ5KSAhPSAwIHx8Ci0JICAgICh1bnNpZ25lZCBjaGFyICopZSArIHNpemVvZihz dHJ1Y3QgY29tcGF0X2lwdF9lbnRyeSkgPj0gbGltaXQpIHsKKwkgICAgKHVuc2lnbmVkIGNoYXIg KillICsgc2l6ZW9mKHN0cnVjdCBjb21wYXRfaXB0X2VudHJ5KSA+PSBsaW1pdCB8fAorCSAgICAo dW5zaWduZWQgY2hhciAqKWUgKyBlLT5uZXh0X29mZnNldCA+IGxpbWl0KSB7CiAJCWR1cHJpbnRm KCJCYWQgb2Zmc2V0ICVwLCBsaW1pdCA9ICVwXG4iLCBlLCBsaW1pdCk7CiAJCXJldHVybiAtRUlO VkFMOwogCX0KQEAgLTE1MDMsNyArMTUwMyw3IEBAIGNoZWNrX2NvbXBhdF9lbnRyeV9zaXplX2Fu ZF9ob29rcyhzdHJ1Y3QgY29tcGF0X2lwdF9lbnRyeSAqZSwKIAl9CiAKIAkvKiBGb3IgcHVycG9z ZXMgb2YgY2hlY2tfZW50cnkgY2FzdGluZyB0aGUgY29tcGF0IGVudHJ5IGlzIGZpbmUgKi8KLQly ZXQgPSBjaGVja19lbnRyeSgoc3RydWN0IGlwdF9lbnRyeSAqKWUsIG5hbWUpOworCXJldCA9IGNo ZWNrX2VudHJ5KChzdHJ1Y3QgaXB0X2VudHJ5ICopZSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJl dDsKIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdWRwX29mZmxvYWQuYyBiL25ldC9pcHY0L3VkcF9v ZmZsb2FkLmMKaW5kZXggNTQ2ZDJkNDM5ZGRhLi5jYTQxYmNiZWEzOWMgMTAwNjQ0Ci0tLSBhL25l dC9pcHY0L3VkcF9vZmZsb2FkLmMKKysrIGIvbmV0L2lwdjQvdWRwX29mZmxvYWQuYwpAQCAtMTYw LDEyICsxNjAsMTIgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICoqdWRwX2dyb19yZWNlaXZlKHN0 cnVjdCBza19idWZmICoqaGVhZCwgc3RydWN0IHNrX2J1ZmYgKnMKIAl1bnNpZ25lZCBpbnQgaGxl biwgb2ZmOwogCWludCBmbHVzaCA9IDE7CiAKLQlpZiAoTkFQSV9HUk9fQ0Ioc2tiKS0+dWRwX21h cmsgfHwKKwlpZiAoTkFQSV9HUk9fQ0Ioc2tiKS0+ZW5jYXBfbWFyayB8fAogCSAgICAoIXNrYi0+ ZW5jYXBzdWxhdGlvbiAmJiBza2ItPmlwX3N1bW1lZCAhPSBDSEVDS1NVTV9DT01QTEVURSkpCiAJ CWdvdG8gb3V0OwogCi0JLyogbWFyayB0aGF0IHRoaXMgc2tiIHBhc3NlZCBvbmNlIHRocm91Z2gg dGhlIHVkcCBncm8gbGF5ZXIgKi8KLQlOQVBJX0dST19DQihza2IpLT51ZHBfbWFyayA9IDE7CisJ LyogbWFyayB0aGF0IHRoaXMgc2tiIHBhc3NlZCBvbmNlIHRocm91Z2ggdGhlIHR1bm5lbCBncm8g bGF5ZXIgKi8KKwlOQVBJX0dST19DQihza2IpLT5lbmNhcF9tYXJrID0gMTsKIAogCW9mZiAgPSBz a2JfZ3JvX29mZnNldChza2IpOwogCWhsZW4gPSBvZmYgKyBzaXplb2YoKnVoKTsKZGlmZiAtLWdp dCBhL25ldC9pcHY2L2lwNl9vdXRwdXQuYyBiL25ldC9pcHY2L2lwNl9vdXRwdXQuYwppbmRleCAy NjRiY2Y3ODQ5MjYuLjBmZGRhNGQ4Yjc1ZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X291dHB1 dC5jCisrKyBiL25ldC9pcHY2L2lwNl9vdXRwdXQuYwpAQCAtMTA0OSw5ICsxMDQ5LDggQEAgc3Rh dGljIGlubGluZSBpbnQgaXA2X3Vmb19hcHBlbmRfZGF0YShzdHJ1Y3Qgc29jayAqc2ssCiAJCQlp bnQgZ2V0ZnJhZyh2b2lkICpmcm9tLCBjaGFyICp0bywgaW50IG9mZnNldCwgaW50IGxlbiwKIAkJ CWludCBvZGQsIHN0cnVjdCBza19idWZmICpza2IpLAogCQkJdm9pZCAqZnJvbSwgaW50IGxlbmd0 aCwgaW50IGhoX2xlbiwgaW50IGZyYWdoZWFkZXJsZW4sCi0JCQlpbnQgdHJhbnNoZHJsZW4sIGlu dCBtdHUsdW5zaWduZWQgaW50IGZsYWdzLAotCQkJc3RydWN0IHJ0Nl9pbmZvICpydCkKLQorCQkJ aW50IGV4dGhkcmxlbiwgaW50IHRyYW5zaGRybGVuLCBpbnQgbXR1LAorCQkJdW5zaWduZWQgaW50 IGZsYWdzLCBzdHJ1Y3QgcnQ2X2luZm8gKnJ0KQogewogCXN0cnVjdCBza19idWZmICpza2I7CiAJ c3RydWN0IGZyYWdfaGRyIGZoZHI7CkBAIC0xMDc1LDcgKzEwNzQsNyBAQCBzdGF0aWMgaW5saW5l IGludCBpcDZfdWZvX2FwcGVuZF9kYXRhKHN0cnVjdCBzb2NrICpzaywKIAkJc2tiX3B1dChza2Is ZnJhZ2hlYWRlcmxlbiArIHRyYW5zaGRybGVuKTsKIAogCQkvKiBpbml0aWFsaXplIG5ldHdvcmsg aGVhZGVyIHBvaW50ZXIgKi8KLQkJc2tiX3Jlc2V0X25ldHdvcmtfaGVhZGVyKHNrYik7CisJCXNr Yl9zZXRfbmV0d29ya19oZWFkZXIoc2tiLCBleHRoZHJsZW4pOwogCiAJCS8qIGluaXRpYWxpemUg cHJvdG9jb2wgaGVhZGVyIHBvaW50ZXIgKi8KIAkJc2tiLT50cmFuc3BvcnRfaGVhZGVyID0gc2ti LT5uZXR3b3JrX2hlYWRlciArIGZyYWdoZWFkZXJsZW47CkBAIC0xMzAwLDcgKzEyOTksNyBAQCBl bXNnc2l6ZToKIAkgICAgKHJ0LT5kc3QuZGV2LT5mZWF0dXJlcyAmIE5FVElGX0ZfVUZPKSAmJgog CSAgICAoc2stPnNrX3R5cGUgPT0gU09DS19ER1JBTSkpIHsKIAkJZXJyID0gaXA2X3Vmb19hcHBl bmRfZGF0YShzaywgZ2V0ZnJhZywgZnJvbSwgbGVuZ3RoLAotCQkJCQkgIGhoX2xlbiwgZnJhZ2hl YWRlcmxlbiwKKwkJCQkJICBoaF9sZW4sIGZyYWdoZWFkZXJsZW4sIGV4dGhkcmxlbiwKIAkJCQkJ ICB0cmFuc2hkcmxlbiwgbXR1LCBmbGFncywgcnQpOwogCQlpZiAoZXJyKQogCQkJZ290byBlcnJv cjsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl90dW5uZWwuYyBiL25ldC9pcHY2L2lwNl90dW5u ZWwuYwppbmRleCA5ZmQwNGZmZjdmZWEuLmU5Mzk5ZTVjMTcwOSAxMDA2NDQKLS0tIGEvbmV0L2lw djYvaXA2X3R1bm5lbC5jCisrKyBiL25ldC9pcHY2L2lwNl90dW5uZWwuYwpAQCAtMjczLDEyICsy NzMsMTIgQEAgc3RhdGljIGludCBpcDZfdG5sX2NyZWF0ZTIoc3RydWN0IG5ldF9kZXZpY2UgKmRl dikKIAogCXQgPSBuZXRkZXZfcHJpdihkZXYpOwogCisJZGV2LT5ydG5sX2xpbmtfb3BzID0gJmlw Nl9saW5rX29wczsKIAllcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2UoZGV2KTsKIAlpZiAoZXJyIDwg MCkKIAkJZ290byBvdXQ7CiAKIAlzdHJjcHkodC0+cGFybXMubmFtZSwgZGV2LT5uYW1lKTsKLQlk ZXYtPnJ0bmxfbGlua19vcHMgPSAmaXA2X2xpbmtfb3BzOwogCiAJZGV2X2hvbGQoZGV2KTsKIAlp cDZfdG5sX2xpbmsoaXA2biwgdCk7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9uZXRmaWx0ZXIvaXA2 X3RhYmxlcy5jIGIvbmV0L2lwdjYvbmV0ZmlsdGVyL2lwNl90YWJsZXMuYwppbmRleCBlMDgwZmJi YmMwZTUuLmJjMDYxNWIxY2Y2MyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvbmV0ZmlsdGVyL2lwNl90 YWJsZXMuYworKysgYi9uZXQvaXB2Ni9uZXRmaWx0ZXIvaXA2X3RhYmxlcy5jCkBAIC0xOTUsMTEg KzE5NSwxMiBAQCBnZXRfZW50cnkoY29uc3Qgdm9pZCAqYmFzZSwgdW5zaWduZWQgaW50IG9mZnNl dCkKIAogLyogQWxsIHplcm9lcyA9PSB1bmNvbmRpdGlvbmFsIHJ1bGUuICovCiAvKiBNaWxkbHkg cGVyZiBjcml0aWNhbCAob25seSBpZiBwYWNrZXQgdHJhY2luZyBpcyBvbikgKi8KLXN0YXRpYyBp bmxpbmUgYm9vbCB1bmNvbmRpdGlvbmFsKGNvbnN0IHN0cnVjdCBpcDZ0X2lwNiAqaXB2NikKK3N0 YXRpYyBpbmxpbmUgYm9vbCB1bmNvbmRpdGlvbmFsKGNvbnN0IHN0cnVjdCBpcDZ0X2VudHJ5ICpl KQogewogCXN0YXRpYyBjb25zdCBzdHJ1Y3QgaXA2dF9pcDYgdW5jb25kOwogCi0JcmV0dXJuIG1l bWNtcChpcHY2LCAmdW5jb25kLCBzaXplb2YodW5jb25kKSkgPT0gMDsKKwlyZXR1cm4gZS0+dGFy Z2V0X29mZnNldCA9PSBzaXplb2Yoc3RydWN0IGlwNnRfZW50cnkpICYmCisJICAgICAgIG1lbWNt cCgmZS0+aXB2NiwgJnVuY29uZCwgc2l6ZW9mKHVuY29uZCkpID09IDA7CiB9CiAKIHN0YXRpYyBp bmxpbmUgY29uc3Qgc3RydWN0IHh0X2VudHJ5X3RhcmdldCAqCkBAIC0yNTUsMTEgKzI1NiwxMCBA QCBnZXRfY2hhaW5uYW1lX3J1bGVudW0oY29uc3Qgc3RydWN0IGlwNnRfZW50cnkgKnMsIGNvbnN0 IHN0cnVjdCBpcDZ0X2VudHJ5ICplLAogCX0gZWxzZSBpZiAocyA9PSBlKSB7CiAJCSgqcnVsZW51 bSkrKzsKIAotCQlpZiAocy0+dGFyZ2V0X29mZnNldCA9PSBzaXplb2Yoc3RydWN0IGlwNnRfZW50 cnkpICYmCisJCWlmICh1bmNvbmRpdGlvbmFsKHMpICYmCiAJCSAgICBzdHJjbXAodC0+dGFyZ2V0 LnUua2VybmVsLnRhcmdldC0+bmFtZSwKIAkJCSAgIFhUX1NUQU5EQVJEX1RBUkdFVCkgPT0gMCAm JgotCQkgICAgdC0+dmVyZGljdCA8IDAgJiYKLQkJICAgIHVuY29uZGl0aW9uYWwoJnMtPmlwdjYp KSB7CisJCSAgICB0LT52ZXJkaWN0IDwgMCkgewogCQkJLyogVGFpbCBvZiBjaGFpbnM6IFNUQU5E QVJEIHRhcmdldCAocmV0dXJuL3BvbGljeSkgKi8KIAkJCSpjb21tZW50ID0gKmNoYWlubmFtZSA9 PSBob29rbmFtZQogCQkJCT8gY29tbWVudHNbTkZfSVA2X1RSQUNFX0NPTU1FTlRfUE9MSUNZXQpA QCAtNDgyLDExICs0ODIsMTAgQEAgbWFya19zb3VyY2VfY2hhaW5zKGNvbnN0IHN0cnVjdCB4dF90 YWJsZV9pbmZvICpuZXdpbmZvLAogCQkJZS0+Y29tZWZyb20gfD0gKCgxIDw8IGhvb2spIHwgKDEg PDwgTkZfSU5FVF9OVU1IT09LUykpOwogCiAJCQkvKiBVbmNvbmRpdGlvbmFsIHJldHVybi9FTkQu ICovCi0JCQlpZiAoKGUtPnRhcmdldF9vZmZzZXQgPT0gc2l6ZW9mKHN0cnVjdCBpcDZ0X2VudHJ5 KSAmJgorCQkJaWYgKCh1bmNvbmRpdGlvbmFsKGUpICYmCiAJCQkgICAgIChzdHJjbXAodC0+dGFy Z2V0LnUudXNlci5uYW1lLAogCQkJCSAgICAgWFRfU1RBTkRBUkRfVEFSR0VUKSA9PSAwKSAmJgot CQkJICAgICB0LT52ZXJkaWN0IDwgMCAmJgotCQkJICAgICB1bmNvbmRpdGlvbmFsKCZlLT5pcHY2 KSkgfHwgdmlzaXRlZCkgeworCQkJICAgICB0LT52ZXJkaWN0IDwgMCkgfHwgdmlzaXRlZCkgewog CQkJCXVuc2lnbmVkIGludCBvbGRwb3MsIHNpemU7CiAKIAkJCQlpZiAoKHN0cmNtcCh0LT50YXJn ZXQudS51c2VyLm5hbWUsCkBAIC01NzUsMTQgKzU3NCwxMiBAQCBzdGF0aWMgdm9pZCBjbGVhbnVw X21hdGNoKHN0cnVjdCB4dF9lbnRyeV9tYXRjaCAqbSwgc3RydWN0IG5ldCAqbmV0KQogfQogCiBz dGF0aWMgaW50Ci1jaGVja19lbnRyeShjb25zdCBzdHJ1Y3QgaXA2dF9lbnRyeSAqZSwgY29uc3Qg Y2hhciAqbmFtZSkKK2NoZWNrX2VudHJ5KGNvbnN0IHN0cnVjdCBpcDZ0X2VudHJ5ICplKQogewog CWNvbnN0IHN0cnVjdCB4dF9lbnRyeV90YXJnZXQgKnQ7CiAKLQlpZiAoIWlwNl9jaGVja2VudHJ5 KCZlLT5pcHY2KSkgewotCQlkdXByaW50ZigiaXBfdGFibGVzOiBpcCBjaGVjayBmYWlsZWQgJXAg JXMuXG4iLCBlLCBuYW1lKTsKKwlpZiAoIWlwNl9jaGVja2VudHJ5KCZlLT5pcHY2KSkKIAkJcmV0 dXJuIC1FSU5WQUw7Ci0JfQogCiAJaWYgKGUtPnRhcmdldF9vZmZzZXQgKyBzaXplb2Yoc3RydWN0 IHh0X2VudHJ5X3RhcmdldCkgPgogCSAgICBlLT5uZXh0X29mZnNldCkKQEAgLTY3MywxMCArNjcw LDYgQEAgZmluZF9jaGVja19lbnRyeShzdHJ1Y3QgaXA2dF9lbnRyeSAqZSwgc3RydWN0IG5ldCAq bmV0LCBjb25zdCBjaGFyICpuYW1lLAogCXN0cnVjdCB4dF9tdGNoa19wYXJhbSBtdHBhcjsKIAlz dHJ1Y3QgeHRfZW50cnlfbWF0Y2ggKmVtYXRjaDsKIAotCXJldCA9IGNoZWNrX2VudHJ5KGUsIG5h bWUpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KIAlqID0gMDsKIAltdHBhci5uZXQJPSBu ZXQ7CiAJbXRwYXIudGFibGUgICAgID0gbmFtZTsKQEAgLTcyMCw3ICs3MTMsNyBAQCBzdGF0aWMg Ym9vbCBjaGVja191bmRlcmZsb3coY29uc3Qgc3RydWN0IGlwNnRfZW50cnkgKmUpCiAJY29uc3Qg c3RydWN0IHh0X2VudHJ5X3RhcmdldCAqdDsKIAl1bnNpZ25lZCBpbnQgdmVyZGljdDsKIAotCWlm ICghdW5jb25kaXRpb25hbCgmZS0+aXB2NikpCisJaWYgKCF1bmNvbmRpdGlvbmFsKGUpKQogCQly ZXR1cm4gZmFsc2U7CiAJdCA9IGlwNnRfZ2V0X3RhcmdldF9jKGUpOwogCWlmIChzdHJjbXAodC0+ dS51c2VyLm5hbWUsIFhUX1NUQU5EQVJEX1RBUkdFVCkgIT0gMCkKQEAgLTc0MCw5ICs3MzMsMTEg QEAgY2hlY2tfZW50cnlfc2l6ZV9hbmRfaG9va3Moc3RydWN0IGlwNnRfZW50cnkgKmUsCiAJCQkg ICB1bnNpZ25lZCBpbnQgdmFsaWRfaG9va3MpCiB7CiAJdW5zaWduZWQgaW50IGg7CisJaW50IGVy cjsKIAogCWlmICgodW5zaWduZWQgbG9uZyllICUgX19hbGlnbm9mX18oc3RydWN0IGlwNnRfZW50 cnkpICE9IDAgfHwKLQkgICAgKHVuc2lnbmVkIGNoYXIgKillICsgc2l6ZW9mKHN0cnVjdCBpcDZ0 X2VudHJ5KSA+PSBsaW1pdCkgeworCSAgICAodW5zaWduZWQgY2hhciAqKWUgKyBzaXplb2Yoc3Ry dWN0IGlwNnRfZW50cnkpID49IGxpbWl0IHx8CisJICAgICh1bnNpZ25lZCBjaGFyICopZSArIGUt Pm5leHRfb2Zmc2V0ID4gbGltaXQpIHsKIAkJZHVwcmludGYoIkJhZCBvZmZzZXQgJXBcbiIsIGUp OwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC03NTQsNiArNzQ5LDEwIEBAIGNoZWNrX2VudHJ5 X3NpemVfYW5kX2hvb2tzKHN0cnVjdCBpcDZ0X2VudHJ5ICplLAogCQlyZXR1cm4gLUVJTlZBTDsK IAl9CiAKKwllcnIgPSBjaGVja19lbnRyeShlKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOwor CiAJLyogQ2hlY2sgaG9va3MgJiB1bmRlcmZsb3dzICovCiAJZm9yIChoID0gMDsgaCA8IE5GX0lO RVRfTlVNSE9PS1M7IGgrKykgewogCQlpZiAoISh2YWxpZF9ob29rcyAmICgxIDw8IGgpKSkKQEAg LTc2Miw5ICs3NjEsOSBAQCBjaGVja19lbnRyeV9zaXplX2FuZF9ob29rcyhzdHJ1Y3QgaXA2dF9l bnRyeSAqZSwKIAkJCW5ld2luZm8tPmhvb2tfZW50cnlbaF0gPSBob29rX2VudHJpZXNbaF07CiAJ CWlmICgodW5zaWduZWQgY2hhciAqKWUgLSBiYXNlID09IHVuZGVyZmxvd3NbaF0pIHsKIAkJCWlm ICghY2hlY2tfdW5kZXJmbG93KGUpKSB7Ci0JCQkJcHJfZXJyKCJVbmRlcmZsb3dzIG11c3QgYmUg dW5jb25kaXRpb25hbCBhbmQgIgotCQkJCSAgICAgICAidXNlIHRoZSBTVEFOREFSRCB0YXJnZXQg d2l0aCAiCi0JCQkJICAgICAgICJBQ0NFUFQvRFJPUFxuIik7CisJCQkJcHJfZGVidWcoIlVuZGVy Zmxvd3MgbXVzdCBiZSB1bmNvbmRpdGlvbmFsIGFuZCAiCisJCQkJCSAidXNlIHRoZSBTVEFOREFS RCB0YXJnZXQgd2l0aCAiCisJCQkJCSAiQUNDRVBUL0RST1BcbiIpOwogCQkJCXJldHVybiAtRUlO VkFMOwogCQkJfQogCQkJbmV3aW5mby0+dW5kZXJmbG93W2hdID0gdW5kZXJmbG93c1toXTsKQEAg LTE1MDIsNyArMTUwMSw4IEBAIGNoZWNrX2NvbXBhdF9lbnRyeV9zaXplX2FuZF9ob29rcyhzdHJ1 Y3QgY29tcGF0X2lwNnRfZW50cnkgKmUsCiAKIAlkdXByaW50ZigiY2hlY2tfY29tcGF0X2VudHJ5 X3NpemVfYW5kX2hvb2tzICVwXG4iLCBlKTsKIAlpZiAoKHVuc2lnbmVkIGxvbmcpZSAlIF9fYWxp Z25vZl9fKHN0cnVjdCBjb21wYXRfaXA2dF9lbnRyeSkgIT0gMCB8fAotCSAgICAodW5zaWduZWQg Y2hhciAqKWUgKyBzaXplb2Yoc3RydWN0IGNvbXBhdF9pcDZ0X2VudHJ5KSA+PSBsaW1pdCkgewor CSAgICAodW5zaWduZWQgY2hhciAqKWUgKyBzaXplb2Yoc3RydWN0IGNvbXBhdF9pcDZ0X2VudHJ5 KSA+PSBsaW1pdCB8fAorCSAgICAodW5zaWduZWQgY2hhciAqKWUgKyBlLT5uZXh0X29mZnNldCA+ IGxpbWl0KSB7CiAJCWR1cHJpbnRmKCJCYWQgb2Zmc2V0ICVwLCBsaW1pdCA9ICVwXG4iLCBlLCBs aW1pdCk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTE1MTUsNyArMTUxNSw3IEBAIGNoZWNr X2NvbXBhdF9lbnRyeV9zaXplX2FuZF9ob29rcyhzdHJ1Y3QgY29tcGF0X2lwNnRfZW50cnkgKmUs CiAJfQogCiAJLyogRm9yIHB1cnBvc2VzIG9mIGNoZWNrX2VudHJ5IGNhc3RpbmcgdGhlIGNvbXBh dCBlbnRyeSBpcyBmaW5lICovCi0JcmV0ID0gY2hlY2tfZW50cnkoKHN0cnVjdCBpcDZ0X2VudHJ5 ICopZSwgbmFtZSk7CisJcmV0ID0gY2hlY2tfZW50cnkoKHN0cnVjdCBpcDZ0X2VudHJ5ICopZSk7 CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvdWRwLmMg Yi9uZXQvaXB2Ni91ZHAuYwppbmRleCBlZjdhMmViNDgxYjMuLjhlYjM4NTU4ZTE1NyAxMDA2NDQK LS0tIGEvbmV0L2lwdjYvdWRwLmMKKysrIGIvbmV0L2lwdjYvdWRwLmMKQEAgLTg5OSwxMSArODk5 LDkgQEAgaW50IF9fdWRwNl9saWJfcmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCB1ZHBf dGFibGUgKnVkcHRhYmxlLAogCQlyZXQgPSB1ZHB2Nl9xdWV1ZV9yY3Zfc2tiKHNrLCBza2IpOwog CQlzb2NrX3B1dChzayk7CiAKLQkJLyogYSByZXR1cm4gdmFsdWUgPiAwIG1lYW5zIHRvIHJlc3Vi bWl0IHRoZSBpbnB1dCwgYnV0Ci0JCSAqIGl0IHdhbnRzIHRoZSByZXR1cm4gdG8gYmUgLXByb3Rv Y29sLCBvciAwCi0JCSAqLworCQkvKiBhIHJldHVybiB2YWx1ZSA+IDAgbWVhbnMgdG8gcmVzdWJt aXQgdGhlIGlucHV0ICovCiAJCWlmIChyZXQgPiAwKQotCQkJcmV0dXJuIC1yZXQ7CisJCQlyZXR1 cm4gcmV0OwogCiAJCXJldHVybiAwOwogCX0KZGlmZiAtLWdpdCBhL25ldC9sMnRwL2wydHBfaXAu YyBiL25ldC9sMnRwL2wydHBfaXAuYwppbmRleCAzNjlhOTgyMjQ4OGMuLmU0NWQyYjc3YmI0MiAx MDA2NDQKLS0tIGEvbmV0L2wydHAvbDJ0cF9pcC5jCisrKyBiL25ldC9sMnRwL2wydHBfaXAuYwpA QCAtMTIzLDEyICsxMjMsMTEgQEAgc3RhdGljIGludCBsMnRwX2lwX3JlY3Yoc3RydWN0IHNrX2J1 ZmYgKnNrYikKIAlzdHJ1Y3QgbDJ0cF90dW5uZWwgKnR1bm5lbCA9IE5VTEw7CiAJaW50IGxlbmd0 aDsKIAotCS8qIFBvaW50IHRvIEwyVFAgaGVhZGVyICovCi0Jb3B0ciA9IHB0ciA9IHNrYi0+ZGF0 YTsKLQogCWlmICghcHNrYl9tYXlfcHVsbChza2IsIDQpKQogCQlnb3RvIGRpc2NhcmQ7CiAKKwkv KiBQb2ludCB0byBMMlRQIGhlYWRlciAqLworCW9wdHIgPSBwdHIgPSBza2ItPmRhdGE7CiAJc2Vz c2lvbl9pZCA9IG50b2hsKCooKF9fYmUzMiAqKSBwdHIpKTsKIAlwdHIgKz0gNDsKIApAQCAtMTU2 LDYgKzE1NSw5IEBAIHN0YXRpYyBpbnQgbDJ0cF9pcF9yZWN2KHN0cnVjdCBza19idWZmICpza2Ip CiAJCWlmICghcHNrYl9tYXlfcHVsbChza2IsIGxlbmd0aCkpCiAJCQlnb3RvIGRpc2NhcmQ7CiAK KwkJLyogUG9pbnQgdG8gTDJUUCBoZWFkZXIgKi8KKwkJb3B0ciA9IHB0ciA9IHNrYi0+ZGF0YTsK KwkJcHRyICs9IDQ7CiAJCXByX2RlYnVnKCIlczogaXAgcmVjdlxuIiwgdHVubmVsLT5uYW1lKTsK IAkJcHJpbnRfaGV4X2R1bXBfYnl0ZXMoIiIsIERVTVBfUFJFRklYX09GRlNFVCwgcHRyLCBsZW5n dGgpOwogCX0KZGlmZiAtLWdpdCBhL25ldC9sMnRwL2wydHBfaXA2LmMgYi9uZXQvbDJ0cC9sMnRw X2lwNi5jCmluZGV4IDdjMzUyZWMwOWVjNi4uNDU4MDhkOTE2YjdlIDEwMDY0NAotLS0gYS9uZXQv bDJ0cC9sMnRwX2lwNi5jCisrKyBiL25ldC9sMnRwL2wydHBfaXA2LmMKQEAgLTEzNSwxMiArMTM1 LDExIEBAIHN0YXRpYyBpbnQgbDJ0cF9pcDZfcmVjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCXN0 cnVjdCBsMnRwX3R1bm5lbCAqdHVubmVsID0gTlVMTDsKIAlpbnQgbGVuZ3RoOwogCi0JLyogUG9p bnQgdG8gTDJUUCBoZWFkZXIgKi8KLQlvcHRyID0gcHRyID0gc2tiLT5kYXRhOwotCiAJaWYgKCFw c2tiX21heV9wdWxsKHNrYiwgNCkpCiAJCWdvdG8gZGlzY2FyZDsKIAorCS8qIFBvaW50IHRvIEwy VFAgaGVhZGVyICovCisJb3B0ciA9IHB0ciA9IHNrYi0+ZGF0YTsKIAlzZXNzaW9uX2lkID0gbnRv aGwoKigoX19iZTMyICopIHB0cikpOwogCXB0ciArPSA0OwogCkBAIC0xNjgsNiArMTY3LDkgQEAg c3RhdGljIGludCBsMnRwX2lwNl9yZWN2KHN0cnVjdCBza19idWZmICpza2IpCiAJCWlmICghcHNr Yl9tYXlfcHVsbChza2IsIGxlbmd0aCkpCiAJCQlnb3RvIGRpc2NhcmQ7CiAKKwkJLyogUG9pbnQg dG8gTDJUUCBoZWFkZXIgKi8KKwkJb3B0ciA9IHB0ciA9IHNrYi0+ZGF0YTsKKwkJcHRyICs9IDQ7 CiAJCXByX2RlYnVnKCIlczogaXAgcmVjdlxuIiwgdHVubmVsLT5uYW1lKTsKIAkJcHJpbnRfaGV4 X2R1bXBfYnl0ZXMoIiIsIERVTVBfUFJFRklYX09GRlNFVCwgcHRyLCBsZW5ndGgpOwogCX0KZGlm ZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9yeC5jIGIvbmV0L21hYzgwMjExL3J4LmMKaW5kZXggM2Vl MmFiZDQwMDdlLi45NGQ4MTZiNTJlNTYgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS9yeC5jCisr KyBiL25ldC9tYWM4MDIxMS9yeC5jCkBAIC0yMDU4LDcgKzIwNTgsNyBAQCBpZWVlODAyMTFfcnhf aF9tZXNoX2Z3ZGluZyhzdHJ1Y3QgaWVlZTgwMjExX3J4X2RhdGEgKnJ4KQogCXN0cnVjdCBpZWVl ODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhID0gcngtPnNkYXRhOwogCXN0cnVjdCBpZWVlODAyMTFf cnhfc3RhdHVzICpzdGF0dXMgPSBJRUVFODAyMTFfU0tCX1JYQ0Ioc2tiKTsKIAlzdHJ1Y3QgaWVl ZTgwMjExX2lmX21lc2ggKmlmbXNoID0gJnNkYXRhLT51Lm1lc2g7Ci0JdTE2IHEsIGhkcmxlbjsK Kwl1MTYgYWMsIHEsIGhkcmxlbjsKIAogCWhkciA9IChzdHJ1Y3QgaWVlZTgwMjExX2hkciAqKSBz a2ItPmRhdGE7CiAJaGRybGVuID0gaWVlZTgwMjExX2hkcmxlbihoZHItPmZyYW1lX2NvbnRyb2wp OwpAQCAtMjEyOCw3ICsyMTI4LDggQEAgaWVlZTgwMjExX3J4X2hfbWVzaF9md2Rpbmcoc3RydWN0 IGllZWU4MDIxMV9yeF9kYXRhICpyeCkKIAkgICAgZXRoZXJfYWRkcl9lcXVhbChzZGF0YS0+dmlm LmFkZHIsIGhkci0+YWRkcjMpKQogCQlyZXR1cm4gUlhfQ09OVElOVUU7CiAKLQlxID0gaWVlZTgw MjExX3NlbGVjdF9xdWV1ZV84MDIxMShzZGF0YSwgc2tiLCBoZHIpOworCWFjID0gaWVlZTgwMjEx X3NlbGVjdF9xdWV1ZV84MDIxMShzZGF0YSwgc2tiLCBoZHIpOworCXEgPSBzZGF0YS0+dmlmLmh3 X3F1ZXVlW2FjXTsKIAlpZiAoaWVlZTgwMjExX3F1ZXVlX3N0b3BwZWQoJmxvY2FsLT5odywgcSkp IHsKIAkJSUVFRTgwMjExX0lGU1RBX01FU0hfQ1RSX0lOQyhpZm1zaCwgZHJvcHBlZF9mcmFtZXNf Y29uZ2VzdGlvbik7CiAJCXJldHVybiBSWF9EUk9QX01PTklUT1I7CmRpZmYgLS1naXQgYS9uZXQv bWFjODAyMTEvc3RhX2luZm8uYyBiL25ldC9tYWM4MDIxMS9zdGFfaW5mby5jCmluZGV4IGE5YjQ2 ZDhlYTIyZi4uYzAwNjgwMWYzZDgzIDEwMDY0NAotLS0gYS9uZXQvbWFjODAyMTEvc3RhX2luZm8u YworKysgYi9uZXQvbWFjODAyMTEvc3RhX2luZm8uYwpAQCAtNDg3LDExICs0ODcsMTcgQEAgc3Rh dGljIGludCBzdGFfaW5mb19pbnNlcnRfZmluaXNoKHN0cnVjdCBzdGFfaW5mbyAqc3RhKSBfX2Fj cXVpcmVzKFJDVSkKIHsKIAlzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IHN0YS0+bG9j YWw7CiAJc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEgPSBzdGEtPnNkYXRhOwot CXN0cnVjdCBzdGF0aW9uX2luZm8gc2luZm87CisJc3RydWN0IHN0YXRpb25faW5mbyAqc2luZm87 CiAJaW50IGVyciA9IDA7CiAKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZsb2NhbC0+c3RhX210eCk7 CiAKKwlzaW5mbyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBzdGF0aW9uX2luZm8pLCBHRlBfS0VS TkVMKTsKKwlpZiAoIXNpbmZvKSB7CisJCWVyciA9IC1FTk9NRU07CisJCWdvdG8gb3V0X2VycjsK Kwl9CisKIAkvKiBjaGVjayBpZiBTVEEgZXhpc3RzIGFscmVhZHkgKi8KIAlpZiAoc3RhX2luZm9f Z2V0X2JzcyhzZGF0YSwgc3RhLT5zdGEuYWRkcikpIHsKIAkJZXJyID0gLUVFWElTVDsKQEAgLTUy MywxMCArNTI5LDkgQEAgc3RhdGljIGludCBzdGFfaW5mb19pbnNlcnRfZmluaXNoKHN0cnVjdCBz dGFfaW5mbyAqc3RhKSBfX2FjcXVpcmVzKFJDVSkKIAlpZWVlODAyMTFfc3RhX2RlYnVnZnNfYWRk KHN0YSk7CiAJcmF0ZV9jb250cm9sX2FkZF9zdGFfZGVidWdmcyhzdGEpOwogCi0JbWVtc2V0KCZz aW5mbywgMCwgc2l6ZW9mKHNpbmZvKSk7Ci0Jc2luZm8uZmlsbGVkID0gMDsKLQlzaW5mby5nZW5l cmF0aW9uID0gbG9jYWwtPnN0YV9nZW5lcmF0aW9uOwotCWNmZzgwMjExX25ld19zdGEoc2RhdGEt PmRldiwgc3RhLT5zdGEuYWRkciwgJnNpbmZvLCBHRlBfS0VSTkVMKTsKKwlzaW5mby0+Z2VuZXJh dGlvbiA9IGxvY2FsLT5zdGFfZ2VuZXJhdGlvbjsKKwljZmc4MDIxMV9uZXdfc3RhKHNkYXRhLT5k ZXYsIHN0YS0+c3RhLmFkZHIsIHNpbmZvLCBHRlBfS0VSTkVMKTsKKwlrZnJlZShzaW5mbyk7CiAK IAlzdGFfZGJnKHNkYXRhLCAiSW5zZXJ0ZWQgU1RBICVwTVxuIiwgc3RhLT5zdGEuYWRkcik7CiAK QEAgLTU0Niw2ICs1NTEsNyBAQCBzdGF0aWMgaW50IHN0YV9pbmZvX2luc2VydF9maW5pc2goc3Ry dWN0IHN0YV9pbmZvICpzdGEpIF9fYWNxdWlyZXMoUkNVKQogCV9fY2xlYW51cF9zaW5nbGVfc3Rh KHN0YSk7CiAgb3V0X2VycjoKIAltdXRleF91bmxvY2soJmxvY2FsLT5zdGFfbXR4KTsKKwlrZnJl ZShzaW5mbyk7CiAJcmN1X3JlYWRfbG9jaygpOwogCXJldHVybiBlcnI7CiB9CmRpZmYgLS1naXQg YS9uZXQvbmV0ZmlsdGVyL2lwdnMvaXBfdnNfcGVfc2lwLmMgYi9uZXQvbmV0ZmlsdGVyL2lwdnMv aXBfdnNfcGVfc2lwLmMKaW5kZXggYmVkNWY3MDQyNTI5Li5iYjMxOGU0NjIzYTMgMTAwNjQ0Ci0t LSBhL25ldC9uZXRmaWx0ZXIvaXB2cy9pcF92c19wZV9zaXAuYworKysgYi9uZXQvbmV0ZmlsdGVy L2lwdnMvaXBfdnNfcGVfc2lwLmMKQEAgLTg4LDcgKzg4LDcgQEAgaXBfdnNfc2lwX2ZpbGxfcGFy YW0oc3RydWN0IGlwX3ZzX2Nvbm5fcGFyYW0gKnAsIHN0cnVjdCBza19idWZmICpza2IpCiAJZHB0 ciA9IHNrYi0+ZGF0YSArIGRhdGFvZmY7CiAJZGF0YWxlbiA9IHNrYi0+bGVuIC0gZGF0YW9mZjsK IAotCWlmIChnZXRfY2FsbGlkKGRwdHIsIGRhdGFvZmYsIGRhdGFsZW4sICZtYXRjaG9mZiwgJm1h dGNobGVuKSkKKwlpZiAoZ2V0X2NhbGxpZChkcHRyLCAwLCBkYXRhbGVuLCAmbWF0Y2hvZmYsICZt YXRjaGxlbikpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJLyogTi5COiBwZV9kYXRhIGlzIG9ubHkg c2V0IG9uIHN1Y2Nlc3MsCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9hc3NvY2lvbGEuYyBiL25ldC9z Y3RwL2Fzc29jaW9sYS5jCmluZGV4IDU2ZWJjZTY4YTFjOS4uYjMxZDMxODQ3ZjYyIDEwMDY0NAot LS0gYS9uZXQvc2N0cC9hc3NvY2lvbGEuYworKysgYi9uZXQvc2N0cC9hc3NvY2lvbGEuYwpAQCAt MTI1Niw3ICsxMjU2LDcgQEAgc3RhdGljIHN0cnVjdCBzY3RwX3RyYW5zcG9ydCAqc2N0cF90cmFu c19lbGVjdF9iZXN0KHN0cnVjdCBzY3RwX3RyYW5zcG9ydCAqY3VyciwKIAlpZiAoc2NvcmVfY3Vy ciA+IHNjb3JlX2Jlc3QpCiAJCXJldHVybiBjdXJyOwogCWVsc2UgaWYgKHNjb3JlX2N1cnIgPT0g c2NvcmVfYmVzdCkKLQkJcmV0dXJuIHNjdHBfdHJhbnNfZWxlY3RfdGllKGN1cnIsIGJlc3QpOwor CQlyZXR1cm4gc2N0cF90cmFuc19lbGVjdF90aWUoYmVzdCwgY3Vycik7CiAJZWxzZQogCQlyZXR1 cm4gYmVzdDsKIH0KZGlmZiAtLWdpdCBhL25ldC9zY3RwL2lwdjYuYyBiL25ldC9zY3RwL2lwdjYu YwppbmRleCAwNmEwZmNjMDBiMmUuLjY4MjY1YjI1NTYzOCAxMDA2NDQKLS0tIGEvbmV0L3NjdHAv aXB2Ni5jCisrKyBiL25ldC9zY3RwL2lwdjYuYwpAQCAtNTE5LDYgKzUxOSw4IEBAIHN0YXRpYyBp bnQgc2N0cF92Nl9jbXBfYWRkcihjb25zdCB1bmlvbiBzY3RwX2FkZHIgKmFkZHIxLAogCQl9CiAJ CXJldHVybiAwOwogCX0KKwlpZiAoYWRkcjEtPnY2LnNpbjZfcG9ydCAhPSBhZGRyMi0+djYuc2lu Nl9wb3J0KQorCQlyZXR1cm4gMDsKIAlpZiAoIWlwdjZfYWRkcl9lcXVhbCgmYWRkcjEtPnY2LnNp bjZfYWRkciwgJmFkZHIyLT52Ni5zaW42X2FkZHIpKQogCQlyZXR1cm4gMDsKIAkvKiBJZiB0aGlz IGlzIGEgbGlua2xvY2FsIGFkZHJlc3MsIGNvbXBhcmUgdGhlIHNjb3BlX2lkLiAqLwpkaWZmIC0t Z2l0IGEvbmV0L3NjdHAvdHJhbnNwb3J0LmMgYi9uZXQvc2N0cC90cmFuc3BvcnQuYwppbmRleCA3 ZGQ2NzJmYTY1MWYuLmQyN2YwNjRlMmQwNiAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvdHJhbnNwb3J0 LmMKKysrIGIvbmV0L3NjdHAvdHJhbnNwb3J0LmMKQEAgLTcyLDcgKzcyLDcgQEAgc3RhdGljIHN0 cnVjdCBzY3RwX3RyYW5zcG9ydCAqc2N0cF90cmFuc3BvcnRfaW5pdChzdHJ1Y3QgbmV0ICpuZXQs CiAJICovCiAJcGVlci0+cnRvID0gbXNlY3NfdG9famlmZmllcyhuZXQtPnNjdHAucnRvX2luaXRp YWwpOwogCi0JcGVlci0+bGFzdF90aW1lX2hlYXJkID0ga3RpbWVfZ2V0KCk7CisJcGVlci0+bGFz dF90aW1lX2hlYXJkID0ga3RpbWVfc2V0KDAsIDApOwogCXBlZXItPmxhc3RfdGltZV9lY25lX3Jl ZHVjZWQgPSBqaWZmaWVzOwogCiAJcGVlci0+cGFyYW1fZmxhZ3MgPSBTUFBfSEJfRElTQUJMRSB8 CmRpZmYgLS1naXQgYS9uZXQvc29ja2V0LmMgYi9uZXQvc29ja2V0LmMKaW5kZXggZmM3YmE4Y2Fi YjcyLi44ZGEyZTJlYTQxNTEgMTAwNjQ0Ci0tLSBhL25ldC9zb2NrZXQuYworKysgYi9uZXQvc29j a2V0LmMKQEAgLTI0MDQsMzEgKzI0MDQsMzEgQEAgaW50IF9fc3lzX3JlY3ZtbXNnKGludCBmZCwg c3RydWN0IG1tc2doZHIgX191c2VyICptbXNnLCB1bnNpZ25lZCBpbnQgdmxlbiwKIAkJCWJyZWFr OwogCX0KIAotb3V0X3B1dDoKLQlmcHV0X2xpZ2h0KHNvY2stPmZpbGUsIGZwdXRfbmVlZGVkKTsK LQogCWlmIChlcnIgPT0gMCkKLQkJcmV0dXJuIGRhdGFncmFtczsKKwkJZ290byBvdXRfcHV0Owog Ci0JaWYgKGRhdGFncmFtcyAhPSAwKSB7CisJaWYgKGRhdGFncmFtcyA9PSAwKSB7CisJCWRhdGFn cmFtcyA9IGVycjsKKwkJZ290byBvdXRfcHV0OworCX0KKworCS8qCisJICogV2UgbWF5IHJldHVy biBsZXNzIGVudHJpZXMgdGhhbiByZXF1ZXN0ZWQgKHZsZW4pIGlmIHRoZQorCSAqIHNvY2sgaXMg bm9uIGJsb2NrIGFuZCB0aGVyZSBhcmVuJ3QgZW5vdWdoIGRhdGFncmFtcy4uLgorCSAqLworCWlm IChlcnIgIT0gLUVBR0FJTikgewogCQkvKgotCQkgKiBXZSBtYXkgcmV0dXJuIGxlc3MgZW50cmll cyB0aGFuIHJlcXVlc3RlZCAodmxlbikgaWYgdGhlCi0JCSAqIHNvY2sgaXMgbm9uIGJsb2NrIGFu ZCB0aGVyZSBhcmVuJ3QgZW5vdWdoIGRhdGFncmFtcy4uLgorCQkgKiAuLi4gb3IgIGlmIHJlY3Zt c2cgcmV0dXJucyBhbiBlcnJvciBhZnRlciB3ZQorCQkgKiByZWNlaXZlZCBzb21lIGRhdGFncmFt cywgd2hlcmUgd2UgcmVjb3JkIHRoZQorCQkgKiBlcnJvciB0byByZXR1cm4gb24gdGhlIG5leHQg Y2FsbCBvciBpZiB0aGUKKwkJICogYXBwIGFza3MgYWJvdXQgaXQgdXNpbmcgZ2V0c29ja29wdChT T19FUlJPUikuCiAJCSAqLwotCQlpZiAoZXJyICE9IC1FQUdBSU4pIHsKLQkJCS8qCi0JCQkgKiAu Li4gb3IgIGlmIHJlY3Ztc2cgcmV0dXJucyBhbiBlcnJvciBhZnRlciB3ZQotCQkJICogcmVjZWl2 ZWQgc29tZSBkYXRhZ3JhbXMsIHdoZXJlIHdlIHJlY29yZCB0aGUKLQkJCSAqIGVycm9yIHRvIHJl dHVybiBvbiB0aGUgbmV4dCBjYWxsIG9yIGlmIHRoZQotCQkJICogYXBwIGFza3MgYWJvdXQgaXQg dXNpbmcgZ2V0c29ja29wdChTT19FUlJPUikuCi0JCQkgKi8KLQkJCXNvY2stPnNrLT5za19lcnIg PSAtZXJyOwotCQl9Ci0KLQkJcmV0dXJuIGRhdGFncmFtczsKKwkJc29jay0+c2stPnNrX2VyciA9 IC1lcnI7CiAJfQorb3V0X3B1dDoKKwlmcHV0X2xpZ2h0KHNvY2stPmZpbGUsIGZwdXRfbmVlZGVk KTsKIAotCXJldHVybiBlcnI7CisJcmV0dXJuIGRhdGFncmFtczsKIH0KIAogU1lTQ0FMTF9ERUZJ TkU1KHJlY3ZtbXNnLCBpbnQsIGZkLCBzdHJ1Y3QgbW1zZ2hkciBfX3VzZXIgKiwgbW1zZywKZGlm ZiAtLWdpdCBhL25ldC9zdW5ycGMvY2FjaGUuYyBiL25ldC9zdW5ycGMvY2FjaGUuYwppbmRleCAx NGQzOGVjNWU1M2QuLjExZTdiNTVmMDRlMiAxMDA2NDQKLS0tIGEvbmV0L3N1bnJwYy9jYWNoZS5j CisrKyBiL25ldC9zdW5ycGMvY2FjaGUuYwpAQCAtMTE4NywxNCArMTE4NywxNCBAQCBpbnQgc3Vu cnBjX2NhY2hlX3BpcGVfdXBjYWxsKHN0cnVjdCBjYWNoZV9kZXRhaWwgKmRldGFpbCwgc3RydWN0 IGNhY2hlX2hlYWQgKmgpCiAJfQogCiAJY3JxLT5xLnJlYWRlciA9IDA7Ci0JY3JxLT5pdGVtID0g Y2FjaGVfZ2V0KGgpOwogCWNycS0+YnVmID0gYnVmOwogCWNycS0+bGVuID0gMDsKIAljcnEtPnJl YWRlcnMgPSAwOwogCXNwaW5fbG9jaygmcXVldWVfbG9jayk7Ci0JaWYgKHRlc3RfYml0KENBQ0hF X1BFTkRJTkcsICZoLT5mbGFncykpCisJaWYgKHRlc3RfYml0KENBQ0hFX1BFTkRJTkcsICZoLT5m bGFncykpIHsKKwkJY3JxLT5pdGVtID0gY2FjaGVfZ2V0KGgpOwogCQlsaXN0X2FkZF90YWlsKCZj cnEtPnEubGlzdCwgJmRldGFpbC0+cXVldWUpOwotCWVsc2UKKwl9IGVsc2UKIAkJLyogTG9zdCBh IHJhY2UsIG5vIGxvbmdlciBQRU5ESU5HLCBzbyBkb24ndCBlbnF1ZXVlICovCiAJCXJldCA9IC1F QUdBSU47CiAJc3Bpbl91bmxvY2soJnF1ZXVlX2xvY2spOwpkaWZmIC0tZ2l0IGEvbmV0L3hmcm0v eGZybV9pbnB1dC5jIGIvbmV0L3hmcm0veGZybV9pbnB1dC5jCmluZGV4IDg1ZDFkNDc2NDYxMi4u ZjUzYzJhYmFiNGQ0IDEwMDY0NAotLS0gYS9uZXQveGZybS94ZnJtX2lucHV0LmMKKysrIGIvbmV0 L3hmcm0veGZybV9pbnB1dC5jCkBAIC0yNzcsMTIgKzI3NywxNSBAQCBpbnQgeGZybV9pbnB1dChz dHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5 cGUpCiAJCVhGUk1fU0tCX0NCKHNrYiktPnNlcS5pbnB1dC5oaSA9IHNlcV9oaTsKIAogCQlza2Jf ZHN0X2ZvcmNlKHNrYik7CisJCWRldl9ob2xkKHNrYi0+ZGV2KTsKIAogCQluZXh0aGRyID0geC0+ dHlwZS0+aW5wdXQoeCwgc2tiKTsKIAogCQlpZiAobmV4dGhkciA9PSAtRUlOUFJPR1JFU1MpCiAJ CQlyZXR1cm4gMDsKIHJlc3VtZToKKwkJZGV2X3B1dChza2ItPmRldik7CisKIAkJc3Bpbl9sb2Nr KCZ4LT5sb2NrKTsKIAkJaWYgKG5leHRoZHIgPD0gMCkgewogCQkJaWYgKG5leHRoZHIgPT0gLUVC QURNU0cpIHsKZGlmZiAtLWdpdCBhL3NjcmlwdHMvY29jY2luZWxsZS9pdGVyYXRvcnMvdXNlX2Fm dGVyX2l0ZXIuY29jY2kgYi9zY3JpcHRzL2NvY2NpbmVsbGUvaXRlcmF0b3JzL3VzZV9hZnRlcl9p dGVyLmNvY2NpCmluZGV4IGYwODVmNTk2OGM1Mi4uY2U4Y2M5YzAwNmU1IDEwMDY0NAotLS0gYS9z Y3JpcHRzL2NvY2NpbmVsbGUvaXRlcmF0b3JzL3VzZV9hZnRlcl9pdGVyLmNvY2NpCisrKyBiL3Nj cmlwdHMvY29jY2luZWxsZS9pdGVyYXRvcnMvdXNlX2FmdGVyX2l0ZXIuY29jY2kKQEAgLTEyMyw3 ICsxMjMsNyBAQCBsaXN0X3JlbW92ZV9oZWFkKHgsYywuLi4pCiB8CiBzaXplb2YoPCsuLi5jLi4u Kz4pCiB8Ci0mYy0+bWVtYmVyCisgJmMtPm1lbWJlcgogfAogYyA9IEUKIHwKZGlmZiAtLWdpdCBh L3NjcmlwdHMva2NvbmZpZy9jb25mZGF0YS5jIGIvc2NyaXB0cy9rY29uZmlnL2NvbmZkYXRhLmMK aW5kZXggZjg4ZDkwZjIwMjI4Li4xZDhhNjJmZTIxOGIgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMva2Nv bmZpZy9jb25mZGF0YS5jCisrKyBiL3NjcmlwdHMva2NvbmZpZy9jb25mZGF0YS5jCkBAIC0yNjEs MTEgKzI2MSw4IEBAIGludCBjb25mX3JlYWRfc2ltcGxlKGNvbnN0IGNoYXIgKm5hbWUsIGludCBk ZWYpCiAJCWlmIChpbikKIAkJCWdvdG8gbG9hZDsKIAkJc3ltX2FkZF9jaGFuZ2VfY291bnQoMSk7 Ci0JCWlmICghc3ltX2RlZmNvbmZpZ19saXN0KSB7Ci0JCQlpZiAobW9kdWxlc19zeW0pCi0JCQkJ c3ltX2NhbGNfdmFsdWUobW9kdWxlc19zeW0pOworCQlpZiAoIXN5bV9kZWZjb25maWdfbGlzdCkK IAkJCXJldHVybiAxOwotCQl9CiAKIAkJZm9yX2FsbF9kZWZhdWx0cyhzeW1fZGVmY29uZmlnX2xp c3QsIHByb3ApIHsKIAkJCWlmIChleHByX2NhbGNfdmFsdWUocHJvcC0+dmlzaWJsZS5leHByKSA9 PSBubyB8fApAQCAtMzk5LDggKzM5Niw2IEBAIHNldHN5bToKIAlmcmVlKGxpbmUpOwogCWZjbG9z ZShpbik7CiAKLQlpZiAobW9kdWxlc19zeW0pCi0JCXN5bV9jYWxjX3ZhbHVlKG1vZHVsZXNfc3lt KTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNDExLDggKzQwNiwxMiBAQCBpbnQgY29uZl9yZWFkKGNv bnN0IGNoYXIgKm5hbWUpCiAKIAlzeW1fc2V0X2NoYW5nZV9jb3VudCgwKTsKIAotCWlmIChjb25m X3JlYWRfc2ltcGxlKG5hbWUsIFNfREVGX1VTRVIpKQorCWlmIChjb25mX3JlYWRfc2ltcGxlKG5h bWUsIFNfREVGX1VTRVIpKSB7CisJCXN5bV9jYWxjX3ZhbHVlKG1vZHVsZXNfc3ltKTsKIAkJcmV0 dXJuIDE7CisJfQorCisJc3ltX2NhbGNfdmFsdWUobW9kdWxlc19zeW0pOwogCiAJZm9yX2FsbF9z eW1ib2xzKGksIHN5bSkgewogCQlzeW1fY2FsY192YWx1ZShzeW0pOwpAQCAtODQzLDYgKzg0Miw3 IEBAIHN0YXRpYyBpbnQgY29uZl9zcGxpdF9jb25maWcodm9pZCkKIAogCW5hbWUgPSBjb25mX2dl dF9hdXRvY29uZmlnX25hbWUoKTsKIAljb25mX3JlYWRfc2ltcGxlKG5hbWUsIFNfREVGX0FVVE8p OworCXN5bV9jYWxjX3ZhbHVlKG1vZHVsZXNfc3ltKTsKIAogCWlmIChjaGRpcigiaW5jbHVkZS9j b25maWciKSkKIAkJcmV0dXJuIDE7CmRpZmYgLS1naXQgYS9zY3JpcHRzL3BhY2thZ2UvbWtzcGVj IGIvc2NyaXB0cy9wYWNrYWdlL21rc3BlYwppbmRleCAxMzk1NzYwMmY3Y2EuLmM5MjM1OGQ2MWUy NiAxMDA3NTUKLS0tIGEvc2NyaXB0cy9wYWNrYWdlL21rc3BlYworKysgYi9zY3JpcHRzL3BhY2th Z2UvbWtzcGVjCkBAIC0xMzEsMTEgKzEzMSwxMSBAQCBlY2hvICdybSAtcmYgJFJQTV9CVUlMRF9S T09UJwogZWNobyAiIgogZWNobyAiJXBvc3QiCiBlY2hvICJpZiBbIC14IC9zYmluL2luc3RhbGxr ZXJuZWwgLWEgLXIgL2Jvb3Qvdm1saW51ei0kS0VSTkVMUkVMRUFTRSAtYSAtciAvYm9vdC9TeXN0 ZW0ubWFwLSRLRVJORUxSRUxFQVNFIF07IHRoZW4iCi1lY2hvICJjcCAvYm9vdC92bWxpbnV6LSRL RVJORUxSRUxFQVNFIC9ib290L3ZtbGludXotJEtFUk5FTFJFTEVBU0UtcnBtIgotZWNobyAiY3Ag L2Jvb3QvU3lzdGVtLm1hcC0kS0VSTkVMUkVMRUFTRSAvYm9vdC9TeXN0ZW0ubWFwLSRLRVJORUxS RUxFQVNFLXJwbSIKK2VjaG8gImNwIC9ib290L3ZtbGludXotJEtFUk5FTFJFTEVBU0UgL2Jvb3Qv LnZtbGludXotJEtFUk5FTFJFTEVBU0UtcnBtIgorZWNobyAiY3AgL2Jvb3QvU3lzdGVtLm1hcC0k S0VSTkVMUkVMRUFTRSAvYm9vdC8uU3lzdGVtLm1hcC0kS0VSTkVMUkVMRUFTRS1ycG0iCiBlY2hv ICJybSAtZiAvYm9vdC92bWxpbnV6LSRLRVJORUxSRUxFQVNFIC9ib290L1N5c3RlbS5tYXAtJEtF Uk5FTFJFTEVBU0UiCi1lY2hvICIvc2Jpbi9pbnN0YWxsa2VybmVsICRLRVJORUxSRUxFQVNFIC9i b290L3ZtbGludXotJEtFUk5FTFJFTEVBU0UtcnBtIC9ib290L1N5c3RlbS5tYXAtJEtFUk5FTFJF TEVBU0UtcnBtIgotZWNobyAicm0gLWYgL2Jvb3Qvdm1saW51ei0kS0VSTkVMUkVMRUFTRS1ycG0g L2Jvb3QvU3lzdGVtLm1hcC0kS0VSTkVMUkVMRUFTRS1ycG0iCitlY2hvICIvc2Jpbi9pbnN0YWxs a2VybmVsICRLRVJORUxSRUxFQVNFIC9ib290Ly52bWxpbnV6LSRLRVJORUxSRUxFQVNFLXJwbSAv Ym9vdC8uU3lzdGVtLm1hcC0kS0VSTkVMUkVMRUFTRS1ycG0iCitlY2hvICJybSAtZiAvYm9vdC8u dm1saW51ei0kS0VSTkVMUkVMRUFTRS1ycG0gL2Jvb3QvLlN5c3RlbS5tYXAtJEtFUk5FTFJFTEVB U0UtcnBtIgogZWNobyAiZmkiCiBlY2hvICIiCiBlY2hvICIlZmlsZXMiCmRpZmYgLS1naXQgYS9z b3VuZC9jb3JlL3RpbWVyLmMgYi9zb3VuZC9jb3JlL3RpbWVyLmMKaW5kZXggNDQyZTI3OTY4OTI1 Li4xNzUzODk2MWUzNTcgMTAwNjQ0Ci0tLSBhL3NvdW5kL2NvcmUvdGltZXIuYworKysgYi9zb3Vu ZC9jb3JlL3RpbWVyLmMKQEAgLTEwNTMsOCArMTA1Myw4IEBAIHN0YXRpYyBpbnQgc25kX3RpbWVy X3Nfc3RhcnQoc3RydWN0IHNuZF90aW1lciAqIHRpbWVyKQogCQluamlmZiArPSB0aW1lci0+c3Rp Y2tzIC0gcHJpdi0+Y29ycmVjdGlvbjsKIAkJcHJpdi0+Y29ycmVjdGlvbiA9IDA7CiAJfQotCXBy aXYtPmxhc3RfZXhwaXJlcyA9IHByaXYtPnRsaXN0LmV4cGlyZXMgPSBuamlmZjsKLQlhZGRfdGlt ZXIoJnByaXYtPnRsaXN0KTsKKwlwcml2LT5sYXN0X2V4cGlyZXMgPSBuamlmZjsKKwltb2RfdGlt ZXIoJnByaXYtPnRsaXN0LCBuamlmZik7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL3Nv dW5kL3BjaS9oZGEvcGF0Y2hfY2lycnVzLmMgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX2NpcnJ1cy5j CmluZGV4IGRlZTNhZGY3YjQ0MS4uOTUwODZjMTAyYTZhIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kv aGRhL3BhdGNoX2NpcnJ1cy5jCisrKyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfY2lycnVzLmMKQEAg LTE3Niw4ICsxNzYsMTIgQEAgc3RhdGljIHZvaWQgY3NfYXV0b211dGUoc3RydWN0IGhkYV9jb2Rl YyAqY29kZWMpCiAJc25kX2hkYV9nZW5fdXBkYXRlX291dHB1dHMoY29kZWMpOwogCiAJaWYgKHNw ZWMtPmdwaW9fZWFwZF9ocCB8fCBzcGVjLT5ncGlvX2VhcGRfc3BlYWtlcikgewotCQlzcGVjLT5n cGlvX2RhdGEgPSBzcGVjLT5nZW4uaHBfamFja19wcmVzZW50ID8KLQkJCXNwZWMtPmdwaW9fZWFw ZF9ocCA6IHNwZWMtPmdwaW9fZWFwZF9zcGVha2VyOworCQlpZiAoc3BlYy0+Z2VuLmF1dG9tdXRl X3NwZWFrZXIpCisJCQlzcGVjLT5ncGlvX2RhdGEgPSBzcGVjLT5nZW4uaHBfamFja19wcmVzZW50 ID8KKwkJCQlzcGVjLT5ncGlvX2VhcGRfaHAgOiBzcGVjLT5ncGlvX2VhcGRfc3BlYWtlcjsKKwkJ ZWxzZQorCQkJc3BlYy0+Z3Bpb19kYXRhID0KKwkJCQlzcGVjLT5ncGlvX2VhcGRfaHAgfCBzcGVj LT5ncGlvX2VhcGRfc3BlYWtlcjsKIAkJc25kX2hkYV9jb2RlY193cml0ZShjb2RlYywgMHgwMSwg MCwKIAkJCQkgICAgQUNfVkVSQl9TRVRfR1BJT19EQVRBLCBzcGVjLT5ncGlvX2RhdGEpOwogCX0K ZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jIGIvc291bmQvcGNpL2hkYS9w YXRjaF9oZG1pLmMKaW5kZXggZTA2M2E0YTdlODgxLi5jNGYxNDljYTFhNzIgMTAwNjQ0Ci0tLSBh L3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jCisrKyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRt aS5jCkBAIC0zMzQ1LDYgKzMzNDUsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhkYV9jb2RlY19w cmVzZXQgc25kX2hkYV9wcmVzZXRfaGRtaVtdID0gewogeyAuaWQgPSAweDEwZGUwMDcxLCAubmFt ZSA9ICJHUFUgNzEgSERNSS9EUCIsCS5wYXRjaCA9IHBhdGNoX252aGRtaSB9LAogeyAuaWQgPSAw eDEwZGUwMDcyLCAubmFtZSA9ICJHUFUgNzIgSERNSS9EUCIsCS5wYXRjaCA9IHBhdGNoX252aGRt aSB9LAogeyAuaWQgPSAweDEwZGUwMDdkLCAubmFtZSA9ICJHUFUgN2QgSERNSS9EUCIsCS5wYXRj aCA9IHBhdGNoX252aGRtaSB9LAoreyAuaWQgPSAweDEwZGUwMDgyLCAubmFtZSA9ICJHUFUgODIg SERNSS9EUCIsCS5wYXRjaCA9IHBhdGNoX252aGRtaSB9LAoreyAuaWQgPSAweDEwZGUwMDgzLCAu bmFtZSA9ICJHUFUgODMgSERNSS9EUCIsCS5wYXRjaCA9IHBhdGNoX252aGRtaSB9LAogeyAuaWQg PSAweDEwZGU4MDAxLCAubmFtZSA9ICJNQ1A3MyBIRE1JIiwJLnBhdGNoID0gcGF0Y2hfbnZoZG1p XzJjaCB9LAogeyAuaWQgPSAweDExMDY5ZjgwLCAubmFtZSA9ICJWWDkwMCBIRE1JL0RQIiwJLnBh dGNoID0gcGF0Y2hfdmlhX2hkbWkgfSwKIHsgLmlkID0gMHgxMTA2OWY4MSwgLm5hbWUgPSAiVlg5 MDAgSERNSS9EUCIsCS5wYXRjaCA9IHBhdGNoX3ZpYV9oZG1pIH0sCmRpZmYgLS1naXQgYS9zb3Vu ZC9wY2kvaGRhL3BhdGNoX3JlYWx0ZWsuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfcmVhbHRlay5j CmluZGV4IGQ3ZTEyZDcwNDE5Ni4uODhjMzUxZWQ0MTZiIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kv aGRhL3BhdGNoX3JlYWx0ZWsuYworKysgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX3JlYWx0ZWsuYwpA QCAtNDM0Myw2ICs0MzQzLDcgQEAgZW51bSB7CiAJQUxDMjkzX0ZJWFVQX0xFTk9WT19TUEtfTk9J U0UsCiAJQUxDMjU1X0ZJWFVQX0RFTExfU1BLX05PSVNFLAogCUFMQzI4MF9GSVhVUF9IUF9IRUFE U0VUX01JQywKKwlBTEMyMjFfRklYVVBfSFBfRlJPTlRfTUlDLAogfTsKIAogc3RhdGljIGNvbnN0 IHN0cnVjdCBoZGFfZml4dXAgYWxjMjY5X2ZpeHVwc1tdID0gewpAQCAtNDg0MSw2ICs0ODQyLDEz IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGRhX2ZpeHVwIGFsYzI2OV9maXh1cHNbXSA9IHsKIAkJ LmNoYWluZWQgPSB0cnVlLAogCQkuY2hhaW5faWQgPSBBTEMyNjlfRklYVVBfSEVBRFNFVF9NSUMs CiAJfSwKKwlbQUxDMjIxX0ZJWFVQX0hQX0ZST05UX01JQ10gPSB7CisJCS50eXBlID0gSERBX0ZJ WFVQX1BJTlMsCisJCS52LnBpbnMgPSAoY29uc3Qgc3RydWN0IGhkYV9waW50YmxbXSkgeworCQkJ eyAweDE5LCAweDAyYTE5MDIwIH0sIC8qIEZyb250IE1pYyAqLworCQkJeyB9CisJCX0sCisJfSwK IH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3BjaV9xdWlyayBhbGMyNjlfZml4dXBfdGJs W10gPSB7CkBAIC00OTYwLDYgKzQ5NjgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9wY2lf cXVpcmsgYWxjMjY5X2ZpeHVwX3RibFtdID0gewogCVNORF9QQ0lfUVVJUksoMHgxMDNjLCAweDIz MzcsICJIUCIsIEFMQzI2OV9GSVhVUF9IUF9NVVRFX0xFRF9NSUMxKSwKIAlTTkRfUENJX1FVSVJL X1ZFTkRPUigweDEwM2MsICJIUCIsIEFMQzI2OV9GSVhVUF9IUF9NVVRFX0xFRCksCiAJU05EX1BD SV9RVUlSSygweDEwM2MsIDB4MjIxYywgIkhQIEVsaXRlQm9vayA3NTUgRzIiLCBBTEMyODBfRklY VVBfSFBfSEVBRFNFVF9NSUMpLAorCVNORF9QQ0lfUVVJUksoMHgxMDNjLCAweDgyNTYsICJIUCIs IEFMQzIyMV9GSVhVUF9IUF9GUk9OVF9NSUMpLAogCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDEw M2YsICJBU1VTIFRYMzAwIiwgQUxDMjgyX0ZJWFVQX0FTVVNfVFgzMDApLAogCVNORF9QQ0lfUVVJ UksoMHgxMDQzLCAweDEwNmQsICJBc3VzIEs1M0JFIiwgQUxDMjY5X0ZJWFVQX0xJTUlUX0lOVF9N SUNfQk9PU1QpLAogCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDExNWQsICJBc3VzIDEwMTVFIiwg QUxDMjY5X0ZJWFVQX0xJTUlUX0lOVF9NSUNfQk9PU1QpLApAQCAtNTgxOCw2ICs1ODI3LDcgQEAg ZW51bSB7CiAJQUxDNjY4X0ZJWFVQX0FVVE9fTVVURSwKIAlBTEM2NjhfRklYVVBfREVMTF9ESVNB QkxFX0FBTUlYLAogCUFMQzY2OF9GSVhVUF9ERUxMX1hQUzEzLAorCUFMQzY2Ml9GSVhVUF9BU1VT X054NTAsCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGhkYV9maXh1cCBhbGM2NjJfZml4dXBz W10gPSB7CkBAIC02MDQ0LDYgKzYwNTQsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBoZGFfZml4 dXAgYWxjNjYyX2ZpeHVwc1tdID0gewogCQkudHlwZSA9IEhEQV9GSVhVUF9GVU5DLAogCQkudi5m dW5jID0gYWxjX2ZpeHVwX2Jhc3NfY2htYXAsCiAJfSwKKwlbQUxDNjYyX0ZJWFVQX0FTVVNfTng1 MF0gPSB7CisJCS50eXBlID0gSERBX0ZJWFVQX0ZVTkMsCisJCS52LmZ1bmMgPSBhbGNfZml4dXBf YXV0b19tdXRlX3ZpYV9hbXAsCisJCS5jaGFpbmVkID0gdHJ1ZSwKKwkJLmNoYWluX2lkID0gQUxD NjYyX0ZJWFVQX0JBU1NfMUEKKwl9LAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfcGNp X3F1aXJrIGFsYzY2Ml9maXh1cF90YmxbXSA9IHsKQEAgLTYwNjMsOCArNjA3OSw5IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3Qgc25kX3BjaV9xdWlyayBhbGM2NjJfZml4dXBfdGJsW10gPSB7CiAJU05E X1BDSV9RVUlSSygweDEwMjgsIDB4MDY5NiwgIkRlbGwiLCBBTEM2NjhfRklYVVBfREVMTF9NSUNf Tk9fUFJFU0VOQ0UpLAogCVNORF9QQ0lfUVVJUksoMHgxMDI4LCAweDA2OTgsICJEZWxsIiwgQUxD NjY4X0ZJWFVQX0RFTExfTUlDX05PX1BSRVNFTkNFKSwKIAlTTkRfUENJX1FVSVJLKDB4MTAzYywg MHgxNjMyLCAiSFAgUlA1ODAwIiwgQUxDNjYyX0ZJWFVQX0hQX1JQNTgwMCksCi0JU05EX1BDSV9R VUlSSygweDEwNDMsIDB4MTFjZCwgIkFzdXMgTjU1MCIsIEFMQzY2Ml9GSVhVUF9CQVNTXzFBKSwK KwlTTkRfUENJX1FVSVJLKDB4MTA0MywgMHgxMWNkLCAiQXN1cyBONTUwIiwgQUxDNjYyX0ZJWFVQ X0FTVVNfTng1MCksCiAJU05EX1BDSV9RVUlSSygweDEwNDMsIDB4MTNkZiwgIkFzdXMgTjU1MEpY IiwgQUxDNjYyX0ZJWFVQX0JBU1NfMUEpLAorCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDEyOWQs ICJBc3VzIE43NTAiLCBBTEM2NjJfRklYVVBfQVNVU19OeDUwKSwKIAlTTkRfUENJX1FVSVJLKDB4 MTA0MywgMHgxNDc3LCAiQVNVUyBONTZWWiIsIEFMQzY2Ml9GSVhVUF9CQVNTX01PREU0X0NITUFQ KSwKIAlTTkRfUENJX1FVSVJLKDB4MTA0MywgMHgxNWE3LCAiQVNVUyBVWDUxVlpIIiwgQUxDNjYy X0ZJWFVQX0JBU1NfMTYpLAogCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDFiNzMsICJBU1VTIE41 NVNGIiwgQUxDNjYyX0ZJWFVQX0JBU1NfMTYpLApkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2ludGVs OHgwLmMgYi9zb3VuZC9wY2kvaW50ZWw4eDAuYwppbmRleCBjOTE4NjBlMGEyOGQuLmM0ZTRiZDkw MTE5OCAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2ludGVsOHgwLmMKKysrIGIvc291bmQvcGNpL2lu dGVsOHgwLmMKQEAgLTI4OTQsNiArMjg5NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsOHgwX21lYXN1 cmVfYWM5N19jbG9jayhzdHJ1Y3QgaW50ZWw4eDAgKmNoaXApCiAKIHN0YXRpYyBzdHJ1Y3Qgc25k X3BjaV9xdWlyayBpbnRlbDh4MF9jbG9ja19saXN0W10gPSB7CiAJU05EX1BDSV9RVUlSSygweDBl MTEsIDB4MDA4YSwgIkFEMTg4NSIsIDQxMDAwKSwKKwlTTkRfUENJX1FVSVJLKDB4MTAxNCwgMHgw NTgxLCAiQUQxOTgxQiIsIDQ4MDAwKSwKIAlTTkRfUENJX1FVSVJLKDB4MTAyOCwgMHgwMGJlLCAi QUQxODg1IiwgNDQxMDApLAogCVNORF9QQ0lfUVVJUksoMHgxMDI4LCAweDAxNzcsICJBRDE5ODAi LCA0ODAwMCksCiAJU05EX1BDSV9RVUlSSygweDEwMjgsIDB4MDFhZCwgIkFEMTk4MUIiLCA0ODAw MCksCmRpZmYgLS1naXQgYS9zb3VuZC9zb2Mvc2Ftc3VuZy9zM2MtaTJzLXYyLmMgYi9zb3VuZC9z b2Mvc2Ftc3VuZy9zM2MtaTJzLXYyLmMKaW5kZXggMGZmNGJiZTIzYWYzLi44ZDk1ZmNlNmVhNzIg MTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zYW1zdW5nL3MzYy1pMnMtdjIuYworKysgYi9zb3VuZC9z b2Mvc2Ftc3VuZy9zM2MtaTJzLXYyLmMKQEAgLTcyNiw3ICs3MjYsNyBAQCBzdGF0aWMgaW50IHMz YzI0MTJfaTJzX3Jlc3VtZShzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKICNlbmRpZgogCiBpbnQg czNjX2kyc3YyX3JlZ2lzdGVyX2NvbXBvbmVudChzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBpZCwK LQkJCSAgIHN0cnVjdCBzbmRfc29jX2NvbXBvbmVudF9kcml2ZXIgKmNtcF9kcnYsCisJCQkgICBj b25zdCBzdHJ1Y3Qgc25kX3NvY19jb21wb25lbnRfZHJpdmVyICpjbXBfZHJ2LAogCQkJICAgc3Ry dWN0IHNuZF9zb2NfZGFpX2RyaXZlciAqZGFpX2RydikKIHsKIAlzdHJ1Y3Qgc25kX3NvY19kYWlf b3BzICpvcHMgPSBkYWlfZHJ2LT5vcHM7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2Mvc2Ftc3VuZy9z M2MtaTJzLXYyLmggYi9zb3VuZC9zb2Mvc2Ftc3VuZy9zM2MtaTJzLXYyLmgKaW5kZXggOTBhYmFi MzY0YjQ5Li5kMDY4NDE0NWVkMWYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zYW1zdW5nL3MzYy1p MnMtdjIuaAorKysgYi9zb3VuZC9zb2Mvc2Ftc3VuZy9zM2MtaTJzLXYyLmgKQEAgLTEwMSw3ICsx MDEsNyBAQCBleHRlcm4gaW50IHMzY19pMnN2Ml9wcm9iZShzdHJ1Y3Qgc25kX3NvY19kYWkgKmRh aSwKICAqIHNvYyBjb3JlLgogICovCiBleHRlcm4gaW50IHMzY19pMnN2Ml9yZWdpc3Rlcl9jb21w b25lbnQoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgaWQsCi0JCQkJCXN0cnVjdCBzbmRfc29jX2Nv bXBvbmVudF9kcml2ZXIgKmNtcF9kcnYsCisJCQkJCWNvbnN0IHN0cnVjdCBzbmRfc29jX2NvbXBv bmVudF9kcml2ZXIgKmNtcF9kcnYsCiAJCQkJCXN0cnVjdCBzbmRfc29jX2RhaV9kcml2ZXIgKmRh aV9kcnYpOwogCiAjZW5kaWYgLyogX19TTkRfU09DX1MzQzI0WFhfUzNDX0kyU1YyX0kyU19IICov CmRpZmYgLS1naXQgYS9zb3VuZC91c2IvcXVpcmtzLmMgYi9zb3VuZC91c2IvcXVpcmtzLmMKaW5k ZXggYThlM2ZiNGMyZTExLi4xZGNhNzBlYWQ3MDUgMTAwNjQ0Ci0tLSBhL3NvdW5kL3VzYi9xdWly a3MuYworKysgYi9zb3VuZC91c2IvcXVpcmtzLmMKQEAgLTEzOCw2ICsxMzgsNyBAQCBzdGF0aWMg aW50IGNyZWF0ZV9maXhlZF9zdHJlYW1fcXVpcmsoc3RydWN0IHNuZF91c2JfYXVkaW8gKmNoaXAs CiAJCXVzYl9hdWRpb19lcnIoY2hpcCwgImNhbm5vdCBtZW1kdXBcbiIpOwogCQlyZXR1cm4gLUVO T01FTTsKIAl9CisJSU5JVF9MSVNUX0hFQUQoJmZwLT5saXN0KTsKIAlpZiAoZnAtPm5yX3JhdGVz ID4gTUFYX05SX1JBVEVTKSB7CiAJCWtmcmVlKGZwKTsKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0x NTUsMjMgKzE1NiwxOCBAQCBzdGF0aWMgaW50IGNyZWF0ZV9maXhlZF9zdHJlYW1fcXVpcmsoc3Ry dWN0IHNuZF91c2JfYXVkaW8gKmNoaXAsCiAJc3RyZWFtID0gKGZwLT5lbmRwb2ludCAmIFVTQl9E SVJfSU4pCiAJCT8gU05EUlZfUENNX1NUUkVBTV9DQVBUVVJFIDogU05EUlZfUENNX1NUUkVBTV9Q TEFZQkFDSzsKIAllcnIgPSBzbmRfdXNiX2FkZF9hdWRpb19zdHJlYW0oY2hpcCwgc3RyZWFtLCBm cCk7Ci0JaWYgKGVyciA8IDApIHsKLQkJa2ZyZWUoZnApOwotCQlrZnJlZShyYXRlX3RhYmxlKTsK LQkJcmV0dXJuIGVycjsKLQl9CisJaWYgKGVyciA8IDApCisJCWdvdG8gZXJyb3I7CiAJaWYgKGZw LT5pZmFjZSAhPSBnZXRfaWZhY2VfZGVzYygmaWZhY2UtPmFsdHNldHRpbmdbMF0pLT5iSW50ZXJm YWNlTnVtYmVyIHx8CiAJICAgIGZwLT5hbHRzZXRfaWR4ID49IGlmYWNlLT5udW1fYWx0c2V0dGlu ZykgewotCQlrZnJlZShmcCk7Ci0JCWtmcmVlKHJhdGVfdGFibGUpOwotCQlyZXR1cm4gLUVJTlZB TDsKKwkJZXJyID0gLUVJTlZBTDsKKwkJZ290byBlcnJvcjsKIAl9CiAJYWx0cyA9ICZpZmFjZS0+ YWx0c2V0dGluZ1tmcC0+YWx0c2V0X2lkeF07CiAJYWx0c2QgPSBnZXRfaWZhY2VfZGVzYyhhbHRz KTsKIAlpZiAoYWx0c2QtPmJOdW1FbmRwb2ludHMgPCAxKSB7Ci0JCWtmcmVlKGZwKTsKLQkJa2Zy ZWUocmF0ZV90YWJsZSk7Ci0JCXJldHVybiAtRUlOVkFMOworCQllcnIgPSAtRUlOVkFMOworCQln b3RvIGVycm9yOwogCX0KIAogCWZwLT5wcm90b2NvbCA9IGFsdHNkLT5iSW50ZXJmYWNlUHJvdG9j b2w7CkBAIC0xODQsNiArMTgwLDEyIEBAIHN0YXRpYyBpbnQgY3JlYXRlX2ZpeGVkX3N0cmVhbV9x dWlyayhzdHJ1Y3Qgc25kX3VzYl9hdWRpbyAqY2hpcCwKIAlzbmRfdXNiX2luaXRfcGl0Y2goY2hp cCwgZnAtPmlmYWNlLCBhbHRzLCBmcCk7CiAJc25kX3VzYl9pbml0X3NhbXBsZV9yYXRlKGNoaXAs IGZwLT5pZmFjZSwgYWx0cywgZnAsIGZwLT5yYXRlX21heCk7CiAJcmV0dXJuIDA7CisKKyBlcnJv cjoKKwlsaXN0X2RlbCgmZnAtPmxpc3QpOyAvKiB1bmxpbmsgZm9yIGF2b2lkaW5nIGRvdWJsZS1m cmVlICovCisJa2ZyZWUoZnApOworCWtmcmVlKHJhdGVfdGFibGUpOworCXJldHVybiBlcnI7CiB9 CiAKIHN0YXRpYyBpbnQgY3JlYXRlX2F1dG9fcGNtX3F1aXJrKHN0cnVjdCBzbmRfdXNiX2F1ZGlv ICpjaGlwLApAQCAtNDU2LDYgKzQ1OCw3IEBAIHN0YXRpYyBpbnQgY3JlYXRlX3VheHhfcXVpcmso c3RydWN0IHNuZF91c2JfYXVkaW8gKmNoaXAsCiAJZnAtPmVwX2F0dHIgPSBnZXRfZW5kcG9pbnQo YWx0cywgMCktPmJtQXR0cmlidXRlczsKIAlmcC0+ZGF0YWludGVydmFsID0gMDsKIAlmcC0+bWF4 cGFja3NpemUgPSBsZTE2X3RvX2NwdShnZXRfZW5kcG9pbnQoYWx0cywgMCktPndNYXhQYWNrZXRT aXplKTsKKwlJTklUX0xJU1RfSEVBRCgmZnAtPmxpc3QpOwogCiAJc3dpdGNoIChmcC0+bWF4cGFj a3NpemUpIHsKIAljYXNlIDB4MTIwOgpAQCAtNDc5LDYgKzQ4Miw3IEBAIHN0YXRpYyBpbnQgY3Jl YXRlX3VheHhfcXVpcmsoc3RydWN0IHNuZF91c2JfYXVkaW8gKmNoaXAsCiAJCT8gU05EUlZfUENN X1NUUkVBTV9DQVBUVVJFIDogU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSzsKIAllcnIgPSBzbmRf dXNiX2FkZF9hdWRpb19zdHJlYW0oY2hpcCwgc3RyZWFtLCBmcCk7CiAJaWYgKGVyciA8IDApIHsK KwkJbGlzdF9kZWwoJmZwLT5saXN0KTsgLyogdW5saW5rIGZvciBhdm9pZGluZyBkb3VibGUtZnJl ZSAqLwogCQlrZnJlZShmcCk7CiAJCXJldHVybiBlcnI7CiAJfQpkaWZmIC0tZ2l0IGEvc291bmQv dXNiL3N0cmVhbS5jIGIvc291bmQvdXNiL3N0cmVhbS5jCmluZGV4IDMxMGEzODIyZDJiNy4uMjVl ODA3NWY5ZWEzIDEwMDY0NAotLS0gYS9zb3VuZC91c2Ivc3RyZWFtLmMKKysrIGIvc291bmQvdXNi L3N0cmVhbS5jCkBAIC0zMTUsNyArMzE1LDkgQEAgc3RhdGljIHN0cnVjdCBzbmRfcGNtX2NobWFw X2VsZW0gKmNvbnZlcnRfY2htYXAoaW50IGNoYW5uZWxzLCB1bnNpZ25lZCBpbnQgYml0cywKIC8q CiAgKiBhZGQgdGhpcyBlbmRwb2ludCB0byB0aGUgY2hpcCBpbnN0YW5jZS4KICAqIGlmIGEgc3Ry ZWFtIHdpdGggdGhlIHNhbWUgZW5kcG9pbnQgYWxyZWFkeSBleGlzdHMsIGFwcGVuZCB0byBpdC4K LSAqIGlmIG5vdCwgY3JlYXRlIGEgbmV3IHBjbSBzdHJlYW0uCisgKiBpZiBub3QsIGNyZWF0ZSBh IG5ldyBwY20gc3RyZWFtLiBub3RlLCBmcCBpcyBhZGRlZCB0byB0aGUgc3Vic3RyZWFtCisgKiBm bXRfbGlzdCBhbmQgd2lsbCBiZSBmcmVlZCBvbiB0aGUgY2hpcCBpbnN0YW5jZSByZWxlYXNlLiBk byBub3QgZnJlZQorICogZnAgb3IgZG8gcmVtb3ZlIGl0IGZyb20gdGhlIHN1YnN0cmVhbSBmbXRf bGlzdCB0byBhdm9pZCBkb3VibGUtZnJlZS4KICAqLwogaW50IHNuZF91c2JfYWRkX2F1ZGlvX3N0 cmVhbShzdHJ1Y3Qgc25kX3VzYl9hdWRpbyAqY2hpcCwKIAkJCSAgICAgaW50IHN0cmVhbSwKQEAg LTY2OCw2ICs2NzAsNyBAQCBpbnQgc25kX3VzYl9wYXJzZV9hdWRpb19pbnRlcmZhY2Uoc3RydWN0 IHNuZF91c2JfYXVkaW8gKmNoaXAsIGludCBpZmFjZV9ubykKIAkJCQkJKiAoZnAtPm1heHBhY2tz aXplICYgMHg3ZmYpOwogCQlmcC0+YXR0cmlidXRlcyA9IHBhcnNlX3VhY19lbmRwb2ludF9hdHRy aWJ1dGVzKGNoaXAsIGFsdHMsIHByb3RvY29sLCBpZmFjZV9ubyk7CiAJCWZwLT5jbG9jayA9IGNs b2NrOworCQlJTklUX0xJU1RfSEVBRCgmZnAtPmxpc3QpOwogCiAJCS8qIHNvbWUgcXVpcmtzIGZv ciBhdHRyaWJ1dGVzIGhlcmUgKi8KIApAQCAtNzE2LDYgKzcxOSw3IEBAIGludCBzbmRfdXNiX3Bh cnNlX2F1ZGlvX2ludGVyZmFjZShzdHJ1Y3Qgc25kX3VzYl9hdWRpbyAqY2hpcCwgaW50IGlmYWNl X25vKQogCQlkZXZfZGJnKCZkZXYtPmRldiwgIiV1OiVkOiBhZGQgYXVkaW8gZW5kcG9pbnQgJSN4 XG4iLCBpZmFjZV9ubywgYWx0bm8sIGZwLT5lbmRwb2ludCk7CiAJCWVyciA9IHNuZF91c2JfYWRk X2F1ZGlvX3N0cmVhbShjaGlwLCBzdHJlYW0sIGZwKTsKIAkJaWYgKGVyciA8IDApIHsKKwkJCWxp c3RfZGVsKCZmcC0+bGlzdCk7IC8qIHVubGluayBmb3IgYXZvaWRpbmcgZG91YmxlLWZyZWUgKi8K IAkJCWtmcmVlKGZwLT5yYXRlX3RhYmxlKTsKIAkJCWtmcmVlKGZwLT5jaG1hcCk7CiAJCQlrZnJl ZShmcCk7CmRpZmYgLS1naXQgYS90b29scy9wZXJmL0RvY3VtZW50YXRpb24vcGVyZi1zdGF0LnR4 dCBiL3Rvb2xzL3BlcmYvRG9jdW1lbnRhdGlvbi9wZXJmLXN0YXQudHh0CmluZGV4IDI5ZWU4NTdj MDljNi4uNmY5ZmJiNDRjZDE5IDEwMDY0NAotLS0gYS90b29scy9wZXJmL0RvY3VtZW50YXRpb24v cGVyZi1zdGF0LnR4dAorKysgYi90b29scy9wZXJmL0RvY3VtZW50YXRpb24vcGVyZi1zdGF0LnR4 dApAQCAtNTAsNiArNTAsMTQgQEAgT1BUSU9OUwogLS1zY2FsZTo6CiAJc2NhbGUvbm9ybWFsaXpl IGNvdW50ZXIgdmFsdWVzCiAKKy1kOjoKKy0tZGV0YWlsZWQ6OgorCXByaW50IG1vcmUgZGV0YWls ZWQgc3RhdGlzdGljcywgY2FuIGJlIHNwZWNpZmllZCB1cCB0byAzIHRpbWVzCisKKwkgICAtZDog ICAgICAgICAgZGV0YWlsZWQgZXZlbnRzLCBMMSBhbmQgTExDIGRhdGEgY2FjaGUKKyAgICAgICAg LWQgLWQ6ICAgICBtb3JlIGRldGFpbGVkIGV2ZW50cywgZFRMQiBhbmQgaVRMQiBldmVudHMKKyAg ICAgLWQgLWQgLWQ6ICAgICB2ZXJ5IGRldGFpbGVkIGV2ZW50cywgYWRkaW5nIHByZWZldGNoIGV2 ZW50cworCiAtcjo6CiAtLXJlcGVhdD08bj46OgogCXJlcGVhdCBjb21tYW5kIGFuZCBwcmludCBh dmVyYWdlICsgc3RkZGV2IChtYXg6IDEwMCkuIDAgbWVhbnMgZm9yZXZlci4KZGlmZiAtLWdpdCBh L3Rvb2xzL3BlcmYvdXRpbC9ldmVudC5jIGIvdG9vbHMvcGVyZi91dGlsL2V2ZW50LmMKaW5kZXgg ZDAyODFiZGZhNTgyLi4xZmIwYzA3M2U4MTEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9l dmVudC5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9ldmVudC5jCkBAIC0xOTcsNyArMTk3LDcgQEAg aW50IHBlcmZfZXZlbnRfX3N5bnRoZXNpemVfbW1hcF9ldmVudHMoc3RydWN0IHBlcmZfdG9vbCAq dG9vbCwKIAkJc3RyY3B5KGV4ZWNuYW1lLCAiIik7CiAKIAkJLyogMDA0MDAwMDAtMDA0MGMwMDAg ci14cCAwMDAwMDAwMCBmZDowMSA0MTAzOCAgL2Jpbi9jYXQgKi8KLQkJbiA9IHNzY2FuZihiZiwg IiUiUFJJeDY0Ii0lIlBSSXg2NCIgJXMgJSJQUkl4NjQiICV4OiV4ICV1ICVzXG4iLAorCQluID0g c3NjYW5mKGJmLCAiJSJQUkl4NjQiLSUiUFJJeDY0IiAlcyAlIlBSSXg2NCIgJXg6JXggJXUgJVte XG5dXG4iLAogCQkgICAgICAgJmV2ZW50LT5tbWFwMi5zdGFydCwgJmV2ZW50LT5tbWFwMi5sZW4s IHByb3QsCiAJCSAgICAgICAmZXZlbnQtPm1tYXAyLnBnb2ZmLCAmZXZlbnQtPm1tYXAyLm1haiwK IAkJICAgICAgICZldmVudC0+bW1hcDIubWluLApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGls L3BtdS5jIGIvdG9vbHMvcGVyZi91dGlsL3BtdS5jCmluZGV4IDdhODExZWI2MWY3NS4uMTdiZDYw NDlmZWFmIDEwMDY0NAotLS0gYS90b29scy9wZXJmL3V0aWwvcG11LmMKKysrIGIvdG9vbHMvcGVy Zi91dGlsL3BtdS5jCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIGludCBwZXJmX3BtdV9fcGFy c2VfdW5pdChzdHJ1Y3QgcGVyZl9wbXVfYWxpYXMgKmFsaWFzLCBjaGFyICpkaXIsIGNoYXIgKm4K IAlpZiAoZmQgPT0gLTEpCiAJCXJldHVybiAtMTsKIAotCQlzcmV0ID0gcmVhZChmZCwgYWxpYXMt PnVuaXQsIFVOSVRfTUFYX0xFTik7CisJc3JldCA9IHJlYWQoZmQsIGFsaWFzLT51bml0LCBVTklU X01BWF9MRU4pOwogCWlmIChzcmV0IDwgMCkKIAkJZ290byBlcnJvcjsKIApAQCAtMjE3LDEzICsy MTcsMTIgQEAgc3RhdGljIGludCBwbXVfYWxpYXNlc19wYXJzZShjaGFyICpkaXIsIHN0cnVjdCBs aXN0X2hlYWQgKmhlYWQpCiAJc3RydWN0IGRpcmVudCAqZXZ0X2VudDsKIAlESVIgKmV2ZW50X2Rp cjsKIAlzaXplX3QgbGVuOwotCWludCByZXQgPSAwOwogCiAJZXZlbnRfZGlyID0gb3BlbmRpcihk aXIpOwogCWlmICghZXZlbnRfZGlyKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCXdoaWxlICghcmV0 ICYmIChldnRfZW50ID0gcmVhZGRpcihldmVudF9kaXIpKSkgeworCXdoaWxlICgoZXZ0X2VudCA9 IHJlYWRkaXIoZXZlbnRfZGlyKSkpIHsKIAkJY2hhciBwYXRoW1BBVEhfTUFYXTsKIAkJY2hhciAq bmFtZSA9IGV2dF9lbnQtPmRfbmFtZTsKIAkJRklMRSAqZmlsZTsKQEAgLTI0MywxNyArMjQyLDE5 IEBAIHN0YXRpYyBpbnQgcG11X2FsaWFzZXNfcGFyc2UoY2hhciAqZGlyLCBzdHJ1Y3QgbGlzdF9o ZWFkICpoZWFkKQogCiAJCXNucHJpbnRmKHBhdGgsIFBBVEhfTUFYLCAiJXMvJXMiLCBkaXIsIG5h bWUpOwogCi0JCXJldCA9IC1FSU5WQUw7CiAJCWZpbGUgPSBmb3BlbihwYXRoLCAiciIpOwotCQlp ZiAoIWZpbGUpCi0JCQlicmVhazsKKwkJaWYgKCFmaWxlKSB7CisJCQlwcl9kZWJ1ZygiQ2Fubm90 IG9wZW4gJXNcbiIsIHBhdGgpOworCQkJY29udGludWU7CisJCX0KIAotCQlyZXQgPSBwZXJmX3Bt dV9fbmV3X2FsaWFzKGhlYWQsIGRpciwgbmFtZSwgZmlsZSk7CisJCWlmIChwZXJmX3BtdV9fbmV3 X2FsaWFzKGhlYWQsIGRpciwgbmFtZSwgZmlsZSkgPCAwKQorCQkJcHJfZGVidWcoIkNhbm5vdCBz ZXQgdXAgJXNcbiIsIG5hbWUpOwogCQlmY2xvc2UoZmlsZSk7CiAJfQogCiAJY2xvc2VkaXIoZXZl bnRfZGlyKTsKLQlyZXR1cm4gcmV0OworCXJldHVybiAwOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEv dmlydC9rdm0va3ZtX21haW4uYyBiL3ZpcnQva3ZtL2t2bV9tYWluLmMKaW5kZXggMTJmN2JkNThk YTM3Li4xOGZhYzY4ZmIwZTcgMTAwNjQ0Ci0tLSBhL3ZpcnQva3ZtL2t2bV9tYWluLmMKKysrIGIv dmlydC9rdm0va3ZtX21haW4uYwpAQCAtNDU0LDYgKzQ1NCwxNiBAQCBzdGF0aWMgc3RydWN0IGt2 bSAqa3ZtX2NyZWF0ZV92bSh1bnNpZ25lZCBsb25nIHR5cGUpCiAJaWYgKCFrdm0pCiAJCXJldHVy biBFUlJfUFRSKC1FTk9NRU0pOwogCisJc3Bpbl9sb2NrX2luaXQoJmt2bS0+bW11X2xvY2spOwor CWF0b21pY19pbmMoJmN1cnJlbnQtPm1tLT5tbV9jb3VudCk7CisJa3ZtLT5tbSA9IGN1cnJlbnQt Pm1tOworCWt2bV9ldmVudGZkX2luaXQoa3ZtKTsKKwltdXRleF9pbml0KCZrdm0tPmxvY2spOwor CW11dGV4X2luaXQoJmt2bS0+aXJxX2xvY2spOworCW11dGV4X2luaXQoJmt2bS0+c2xvdHNfbG9j ayk7CisJYXRvbWljX3NldCgma3ZtLT51c2Vyc19jb3VudCwgMSk7CisJSU5JVF9MSVNUX0hFQUQo Jmt2bS0+ZGV2aWNlcyk7CisKIAlyID0ga3ZtX2FyY2hfaW5pdF92bShrdm0sIHR5cGUpOwogCWlm IChyKQogCQlnb3RvIG91dF9lcnJfbm9fZGlzYWJsZTsKQEAgLTQ5MiwxNiArNTAyLDYgQEAgc3Rh dGljIHN0cnVjdCBrdm0gKmt2bV9jcmVhdGVfdm0odW5zaWduZWQgbG9uZyB0eXBlKQogCQkJZ290 byBvdXRfZXJyOwogCX0KIAotCXNwaW5fbG9ja19pbml0KCZrdm0tPm1tdV9sb2NrKTsKLQlrdm0t Pm1tID0gY3VycmVudC0+bW07Ci0JYXRvbWljX2luYygma3ZtLT5tbS0+bW1fY291bnQpOwotCWt2 bV9ldmVudGZkX2luaXQoa3ZtKTsKLQltdXRleF9pbml0KCZrdm0tPmxvY2spOwotCW11dGV4X2lu aXQoJmt2bS0+aXJxX2xvY2spOwotCW11dGV4X2luaXQoJmt2bS0+c2xvdHNfbG9jayk7Ci0JYXRv bWljX3NldCgma3ZtLT51c2Vyc19jb3VudCwgMSk7Ci0JSU5JVF9MSVNUX0hFQUQoJmt2bS0+ZGV2 aWNlcyk7Ci0KIAlyID0ga3ZtX2luaXRfbW11X25vdGlmaWVyKGt2bSk7CiAJaWYgKHIpCiAJCWdv dG8gb3V0X2VycjsKQEAgLTUyMyw2ICs1MjMsNyBAQCBvdXRfZXJyX25vX2Rpc2FibGU6CiAJCWtm cmVlKGt2bS0+YnVzZXNbaV0pOwogCWt2ZnJlZShrdm0tPm1lbXNsb3RzKTsKIAlrdm1fYXJjaF9m cmVlX3ZtKGt2bSk7CisJbW1kcm9wKGN1cnJlbnQtPm1tKTsKIAlyZXR1cm4gRVJSX1BUUihyKTsK IH0KIAo= --=-sr8VIHkm/IULWSu3toIg-- --=-nqLERlbfsjjIqBjwES7v Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAABCgAGBQJXIS0xAAoJEOe/yOyVhhEJ+PMQAKpz1EKT6f03utXEiaoVX6qc 7wnU/sdBwvYuG7oeDnqD/FcHR3vvw7+BX/iNSFr9uF0fibd/Je4rut7aDkVVkt4i ICOTBGJO0uX1Yg0FB128qzZ4Lixm3Z7ZJWi2fyQub6/k0Q9aNMmr1DeGvTJ5oFwg TQbdNpCejguHjhkrrkG3o+Dlkj5xR3zgzvN/g8pKRuhoxHlxuL70QveUC4Px/ikq C+i1mUbn/V8aYbIRlsArchyBpa2fRhy/oP46WCemdisPADyVI6hvqI/eDnlg3wSx 7gAv5xtCqavKKHwrTwpX12+pKev/8lfa5/Qv8M6mxgWrcBhlcCD0CN51MgX8xQeI /DZ7/uk/aeQuD8afJwUUaOr21jfFdUxx/L8mX8XZN2X46J9bPI1Xz18Sed8jHAu1 tMBD890CHAq8swUh/ZYGV6s/rebzhL0FCCjrq1U2wdQWMg+eEp633i31lxQnEb4p vCYNw8zh0CL8B0Fsp9RM7NLIZCPnD/5Fhpm62KHXn5dM0iyENL0uXF/p+Bl/25mg FO9OGct/SU6o/hF6CrRpht0e8jqmE1bNOXFKSUA3tNa/GwcUGi8PPyWL3VIAsSga ANcAnG/0ehSi4+UPfdgTCpXfN3wWEdyITKhK515o9BnDcn8aqC8655YGkG1girDK zw2BshZkTFtRd/4gzyGA =Bvfk -----END PGP SIGNATURE----- --=-nqLERlbfsjjIqBjwES7v--