Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753426Ab3GXOL1 (ORCPT ); Wed, 24 Jul 2013 10:11:27 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:46140 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751222Ab3GXOLQ (ORCPT ); Wed, 24 Jul 2013 10:11:16 -0400 Message-ID: <1374675061.18653.43.camel@deadeye.wl.decadent.org.uk> Subject: Re: [00/85] 3.2.49-rc1 review From: Ben Hutchings To: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org, torvalds@linux-foundation.org, akpm@linux-foundation.org Date: Wed, 24 Jul 2013 15:11:01 +0100 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-3jI0sZWi/DvF5u+OB4b3" X-Mailer: Evolution 3.4.4-3 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 192.168.4.101 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: 155879 Lines: 2055 --=-3jI0sZWi/DvF5u+OB4b3 Content-Type: multipart/mixed; boundary="=-nYB1caFluITzo0CMuEFa" --=-nYB1caFluITzo0CMuEFa Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined patch for 3.2.49-rc1 relative to 3.2.48. Ben. --=20 Ben Hutchings Once a job is fouled up, anything done to improve it makes it worse. --=-nYB1caFluITzo0CMuEFa Content-Disposition: attachment; filename="linux-3.2.49-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.49-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaTJjL2J1c3Nlcy9pMmMtcGlpeDQgYi9Eb2N1bWVu dGF0aW9uL2kyYy9idXNzZXMvaTJjLXBpaXg0DQppbmRleCA0NzViYjRhLi42NWRhMTU3IDEwMDY0 NA0KLS0tIGEvRG9jdW1lbnRhdGlvbi9pMmMvYnVzc2VzL2kyYy1waWl4NA0KKysrIGIvRG9jdW1l bnRhdGlvbi9pMmMvYnVzc2VzL2kyYy1waWl4NA0KQEAgLTgsNyArOCw3IEBAIFN1cHBvcnRlZCBh ZGFwdGVyczoNCiAgICAgRGF0YXNoZWV0OiBPbmx5IGF2YWlsYWJsZSB2aWEgTkRBIGZyb20gU2Vy dmVyV29ya3MNCiAgICogQVRJIElYUDIwMCwgSVhQMzAwLCBJWFA0MDAsIFNCNjAwLCBTQjcwMCBh bmQgU0I4MDAgc291dGhicmlkZ2VzDQogICAgIERhdGFzaGVldDogTm90IHB1YmxpY2x5IGF2YWls YWJsZQ0KLSAgKiBBTUQgSHVkc29uLTINCisgICogQU1EIEh1ZHNvbi0yLCBDWg0KICAgICBEYXRh c2hlZXQ6IE5vdCBwdWJsaWNseSBhdmFpbGFibGUNCiAgICogU3RhbmRhcmQgTWljcm9zeXN0ZW1z IChTTVNDKSBTTEM5MEU2NiAoVmljdG9yeTY2KSBzb3V0aGJyaWRnZQ0KICAgICBEYXRhc2hlZXQ6 IFB1YmxpY2x5IGF2YWlsYWJsZSBhdCB0aGUgU01TQyB3ZWJzaXRlIGh0dHA6Ly93d3cuc21zYy5j b20NCmRpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTDQppbmRleCA4M2YxNTZl Li44NjU5ZWJhIDEwMDY0NA0KLS0tIGEvTUFJTlRBSU5FUlMNCisrKyBiL01BSU5UQUlORVJTDQpA QCAtMTU5LDcgKzE1OSw3IEBAIFM6CU1haW50YWluZWQNCiBGOglkcml2ZXJzL25ldC9ldGhlcm5l dC9yZWFsdGVrL3I4MTY5LmMNCiANCiA4MjUwLzE2PzUwIChBTkQgQ0xPTkUgVUFSVFMpIFNFUklB TCBEUklWRVINCi1NOglHcmVnIEtyb2FoLUhhcnRtYW4gPGdyZWdraEBzdXNlLmRlPg0KK006CUdy ZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc+DQogTDoJbGludXgt c2VyaWFsQHZnZXIua2VybmVsLm9yZw0KIFc6CWh0dHA6Ly9zZXJpYWwuc291cmNlZm9yZ2UubmV0 DQogUzoJTWFpbnRhaW5lZA0KQEAgLTE3ODEsOSArMTc4MSw5IEBAIFg6CW5ldC93aXJlbGVzcy93 ZXh0Kg0KIA0KIENIQVIgYW5kIE1JU0MgRFJJVkVSUw0KIE06CUFybmQgQmVyZ21hbm4gPGFybmRA YXJuZGIuZGU+DQotTToJR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVnQGtyb2FoLmNvbT4NCitNOglH cmVnIEtyb2FoLUhhcnRtYW4gPGdyZWdraEBsaW51eGZvdW5kYXRpb24ub3JnPg0KIFQ6CWdpdCBn aXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvZ3JlZ2toL2NoYXIt bWlzYy5naXQNCi1TOglNYWludGFpbmVkDQorUzoJU3VwcG9ydGVkDQogRjoJZHJpdmVycy9jaGFy LyoNCiBGOglkcml2ZXJzL21pc2MvKg0KIA0KQEAgLTIzMTUsNyArMjMxNSw3IEBAIEY6CWxpYi9s cnVfY2FjaGUuYw0KIEY6CURvY3VtZW50YXRpb24vYmxvY2tkZXYvZHJiZC8NCiANCiBEUklWRVIg Q09SRSwgS09CSkVDVFMsIERFQlVHRlMgQU5EIFNZU0ZTDQotTToJR3JlZyBLcm9haC1IYXJ0bWFu IDxncmVna2hAc3VzZS5kZT4NCitNOglHcmVnIEtyb2FoLUhhcnRtYW4gPGdyZWdraEBsaW51eGZv dW5kYXRpb24ub3JnPg0KIFQ6CWdpdCBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4 L2tlcm5lbC9naXQvZ3JlZ2toL2RyaXZlci1jb3JlLTIuNi5naXQNCiBTOglTdXBwb3J0ZWQNCiBG OglEb2N1bWVudGF0aW9uL2tvYmplY3QudHh0DQpAQCAtNjI1NywxNSArNjI1NywxNiBAQCBTOglN YWludGFpbmVkDQogRjoJYXJjaC9hbHBoYS9rZXJuZWwvc3JtX2Vudi5jDQogDQogU1RBQkxFIEJS QU5DSA0KLU06CUdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ0Brcm9haC5jb20+DQorTToJR3JlZyBL cm9haC1IYXJ0bWFuIDxncmVna2hAbGludXhmb3VuZGF0aW9uLm9yZz4NCiBMOglzdGFibGVAdmdl ci5rZXJuZWwub3JnDQotUzoJTWFpbnRhaW5lZA0KK1M6CVN1cHBvcnRlZA0KK0Y6CURvY3VtZW50 YXRpb24vc3RhYmxlX2tlcm5lbF9ydWxlcy50eHQNCiANCiBTVEFHSU5HIFNVQlNZU1RFTQ0KLU06 CUdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ2toQHN1c2UuZGU+DQorTToJR3JlZyBLcm9haC1IYXJ0 bWFuIDxncmVna2hAbGludXhmb3VuZGF0aW9uLm9yZz4NCiBUOglnaXQgZ2l0Oi8vZ2l0Lmtlcm5l bC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2dyZWdraC9zdGFnaW5nLmdpdA0KIEw6CWRl dmVsQGRyaXZlcmRldi5vc3Vvc2wub3JnDQotUzoJTWFpbnRhaW5lZA0KK1M6CVN1cHBvcnRlZA0K IEY6CWRyaXZlcnMvc3RhZ2luZy8NCiANCiBTVEFHSU5HIC0gQUdFUkUgSEVSTUVTIElJIGFuZCBJ SS41IFdJUkVMRVNTIERSSVZFUlMNCkBAIC02NjU0LDggKzY2NTUsOCBAQCBTOglNYWludGFpbmVk DQogSzoJXlN1YmplY3Q6LiooP2kpdHJpdmlhbA0KIA0KIFRUWSBMQVlFUg0KLU06CUdyZWcgS3Jv YWgtSGFydG1hbiA8Z3JlZ2toQHN1c2UuZGU+DQotUzoJTWFpbnRhaW5lZA0KK006CUdyZWcgS3Jv YWgtSGFydG1hbiA8Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc+DQorUzoJU3VwcG9ydGVkDQog VDoJZ2l0IGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9ncmVn a2gvdHR5LTIuNi5naXQNCiBGOglkcml2ZXJzL3R0eS8qDQogRjoJZHJpdmVycy90dHkvc2VyaWFs L3NlcmlhbF9jb3JlLmMNCkBAIC02OTQzLDcgKzY5NDQsNyBAQCBTOglNYWludGFpbmVkDQogRjoJ ZHJpdmVycy91c2Ivc2VyaWFsL2RpZ2lfYWNjZWxlcG9ydC5jDQogDQogVVNCIFNFUklBTCBEUklW RVINCi1NOglHcmVnIEtyb2FoLUhhcnRtYW4gPGdyZWdraEBzdXNlLmRlPg0KK006CUdyZWcgS3Jv YWgtSGFydG1hbiA8Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc+DQogTDoJbGludXgtdXNiQHZn ZXIua2VybmVsLm9yZw0KIFM6CVN1cHBvcnRlZA0KIEY6CURvY3VtZW50YXRpb24vdXNiL3VzYi1z ZXJpYWwudHh0DQpAQCAtNjk1OCw5ICs2OTU5LDggQEAgUzoJTWFpbnRhaW5lZA0KIEY6CWRyaXZl cnMvdXNiL3NlcmlhbC9lbXBlZy5jDQogDQogVVNCIFNFUklBTCBLRVlTUEFOIERSSVZFUg0KLU06 CUdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ0Brcm9haC5jb20+DQorTToJR3JlZyBLcm9haC1IYXJ0 bWFuIDxncmVna2hAbGludXhmb3VuZGF0aW9uLm9yZz4NCiBMOglsaW51eC11c2JAdmdlci5rZXJu ZWwub3JnDQotVzoJaHR0cDovL3d3dy5rcm9haC5jb20vbGludXgvDQogUzoJTWFpbnRhaW5lZA0K IEY6CWRyaXZlcnMvdXNiL3NlcmlhbC8qa2V5c3BhbioNCiANCkBAIC02OTg4LDcgKzY5ODgsNyBA QCBGOglEb2N1bWVudGF0aW9uL3ZpZGVvNGxpbnV4L3NuOWMxMDIudHh0DQogRjoJZHJpdmVycy9t ZWRpYS92aWRlby9zbjljMTAyLw0KIA0KIFVTQiBTVUJTWVNURU0NCi1NOglHcmVnIEtyb2FoLUhh cnRtYW4gPGdyZWdraEBzdXNlLmRlPg0KK006CUdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ2toQGxp bnV4Zm91bmRhdGlvbi5vcmc+DQogTDoJbGludXgtdXNiQHZnZXIua2VybmVsLm9yZw0KIFc6CWh0 dHA6Ly93d3cubGludXgtdXNiLm9yZw0KIFQ6CWdpdCBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIv c2NtL2xpbnV4L2tlcm5lbC9naXQvZ3JlZ2toL3VzYi0yLjYuZ2l0DQpAQCAtNzA3NSw3ICs3MDc1 LDcgQEAgRjoJZnMvaHBwZnMvDQogDQogVVNFUlNQQUNFIEkvTyAoVUlPKQ0KIE06CSJIYW5zIEou IEtvY2giIDxoamtAaGFuc2prb2NoLmRlPg0KLU06CUdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ2to QHN1c2UuZGU+DQorTToJR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVna2hAbGludXhmb3VuZGF0aW9u Lm9yZz4NCiBTOglNYWludGFpbmVkDQogRjoJRG9jdW1lbnRhdGlvbi9Eb2NCb29rL3Vpby1ob3d0 by50bXBsDQogRjoJZHJpdmVycy91aW8vDQpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmls ZQ0KaW5kZXggMjk5ZTJlYi4uMmFkYzAzOSAxMDA2NDQNCi0tLSBhL01ha2VmaWxlDQorKysgYi9N YWtlZmlsZQ0KQEAgLTEsNyArMSw3IEBADQogVkVSU0lPTiA9IDMNCiBQQVRDSExFVkVMID0gMg0K LVNVQkxFVkVMID0gNDgNCi1FWFRSQVZFUlNJT04gPQ0KK1NVQkxFVkVMID0gNDkNCitFWFRSQVZF UlNJT04gPSAtcmMxDQogTkFNRSA9IFNhYmVyLXRvb3RoZWQgU3F1aXJyZWwNCiANCiAjICpET0NV TUVOVEFUSU9OKg0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2tlcm5lbC9wZXJmX2V2ZW50LmMgYi9h cmNoL2FybS9rZXJuZWwvcGVyZl9ldmVudC5jDQppbmRleCBhNTU5ZWU3Li43NzhkMjQ4IDEwMDY0 NA0KLS0tIGEvYXJjaC9hcm0va2VybmVsL3BlcmZfZXZlbnQuYw0KKysrIGIvYXJjaC9hcm0va2Vy bmVsL3BlcmZfZXZlbnQuYw0KQEAgLTc5NSw2ICs3OTUsNyBAQCBwZXJmX2NhbGxjaGFpbl91c2Vy KHN0cnVjdCBwZXJmX2NhbGxjaGFpbl9lbnRyeSAqZW50cnksIHN0cnVjdCBwdF9yZWdzICpyZWdz KQ0KIAlzdHJ1Y3QgZnJhbWVfdGFpbCBfX3VzZXIgKnRhaWw7DQogDQogDQorCXBlcmZfY2FsbGNo YWluX3N0b3JlKGVudHJ5LCByZWdzLT5BUk1fcGMpOw0KIAl0YWlsID0gKHN0cnVjdCBmcmFtZV90 YWlsIF9fdXNlciAqKXJlZ3MtPkFSTV9mcCAtIDE7DQogDQogCXdoaWxlICgoZW50cnktPm5yIDwg UEVSRl9NQVhfU1RBQ0tfREVQVEgpICYmDQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5l bC9zZXR1cF82NC5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9zZXR1cF82NC5jDQppbmRleCBmYjli YjQ2Li4yYzg4OTBhIDEwMDY0NA0KLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9zZXR1cF82NC5j DQorKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3NldHVwXzY0LmMNCkBAIC03NCw3ICs3NCw3IEBA DQogI2VuZGlmDQogDQogaW50IGJvb3RfY3B1aWQgPSAwOw0KLWludCBfX2luaXRkYXRhIHNwaW5u aW5nX3NlY29uZGFyaWVzOw0KK2ludCBzcGlubmluZ19zZWNvbmRhcmllczsNCiB1NjQgcHBjNjRf cGZ0X3NpemU7DQogDQogLyogUGljayBkZWZhdWx0cyBzaW5jZSB3ZSBtaWdodCB3YW50IHRvIHBh dGNoIGluc3RydWN0aW9ucw0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi90aW1lLmMgYi9hcmNo L3g4Ni94ZW4vdGltZS5jDQppbmRleCAwNTRjYzAxLi5kNTBhODIxIDEwMDY0NA0KLS0tIGEvYXJj aC94ODYveGVuL3RpbWUuYw0KKysrIGIvYXJjaC94ODYveGVuL3RpbWUuYw0KQEAgLTM2LDkgKzM2 LDggQEAgc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCB2Y3B1X3J1bnN0YXRlX2luZm8sIHhl bl9ydW5zdGF0ZSk7DQogLyogc25hcHNob3RzIG9mIHJ1bnN0YXRlIGluZm8gKi8NCiBzdGF0aWMg REVGSU5FX1BFUl9DUFUoc3RydWN0IHZjcHVfcnVuc3RhdGVfaW5mbywgeGVuX3J1bnN0YXRlX3Nu YXBzaG90KTsNCiANCi0vKiB1bnVzZWQgbnMgb2Ygc3RvbGVuIGFuZCBibG9ja2VkIHRpbWUgKi8N CisvKiB1bnVzZWQgbnMgb2Ygc3RvbGVuIHRpbWUgKi8NCiBzdGF0aWMgREVGSU5FX1BFUl9DUFUo dTY0LCB4ZW5fcmVzaWR1YWxfc3RvbGVuKTsNCi1zdGF0aWMgREVGSU5FX1BFUl9DUFUodTY0LCB4 ZW5fcmVzaWR1YWxfYmxvY2tlZCk7DQogDQogLyogcmV0dXJuIGFuIGNvbnNpc3RlbnQgc25hcHNo b3Qgb2YgNjQtYml0IHRpbWUvY291bnRlciB2YWx1ZSAqLw0KIHN0YXRpYyB1NjQgZ2V0NjQoY29u c3QgdTY0ICpwKQ0KQEAgLTExNSw3ICsxMTQsNyBAQCBzdGF0aWMgdm9pZCBkb19zdG9sZW5fYWNj b3VudGluZyh2b2lkKQ0KIHsNCiAJc3RydWN0IHZjcHVfcnVuc3RhdGVfaW5mbyBzdGF0ZTsNCiAJ c3RydWN0IHZjcHVfcnVuc3RhdGVfaW5mbyAqc25hcDsNCi0JczY0IGJsb2NrZWQsIHJ1bm5hYmxl LCBvZmZsaW5lLCBzdG9sZW47DQorCXM2NCBydW5uYWJsZSwgb2ZmbGluZSwgc3RvbGVuOw0KIAlj cHV0aW1lX3QgdGlja3M7DQogDQogCWdldF9ydW5zdGF0ZV9zbmFwc2hvdCgmc3RhdGUpOw0KQEAg LTEyNSw3ICsxMjQsNiBAQCBzdGF0aWMgdm9pZCBkb19zdG9sZW5fYWNjb3VudGluZyh2b2lkKQ0K IAlzbmFwID0gJl9fZ2V0X2NwdV92YXIoeGVuX3J1bnN0YXRlX3NuYXBzaG90KTsNCiANCiAJLyog d29yayBvdXQgaG93IG11Y2ggdGltZSB0aGUgVkNQVSBoYXMgbm90IGJlZW4gcnVubippbmcqICAq Lw0KLQlibG9ja2VkID0gc3RhdGUudGltZVtSVU5TVEFURV9ibG9ja2VkXSAtIHNuYXAtPnRpbWVb UlVOU1RBVEVfYmxvY2tlZF07DQogCXJ1bm5hYmxlID0gc3RhdGUudGltZVtSVU5TVEFURV9ydW5u YWJsZV0gLSBzbmFwLT50aW1lW1JVTlNUQVRFX3J1bm5hYmxlXTsNCiAJb2ZmbGluZSA9IHN0YXRl LnRpbWVbUlVOU1RBVEVfb2ZmbGluZV0gLSBzbmFwLT50aW1lW1JVTlNUQVRFX29mZmxpbmVdOw0K IA0KQEAgLTE0MSwxNyArMTM5LDYgQEAgc3RhdGljIHZvaWQgZG9fc3RvbGVuX2FjY291bnRpbmco dm9pZCkNCiAJdGlja3MgPSBpdGVyX2Rpdl91NjRfcmVtKHN0b2xlbiwgTlNfUEVSX1RJQ0ssICZz dG9sZW4pOw0KIAlfX3RoaXNfY3B1X3dyaXRlKHhlbl9yZXNpZHVhbF9zdG9sZW4sIHN0b2xlbik7 DQogCWFjY291bnRfc3RlYWxfdGlja3ModGlja3MpOw0KLQ0KLQkvKiBBZGQgdGhlIGFwcHJvcHJp YXRlIG51bWJlciBvZiB0aWNrcyBvZiBibG9ja2VkIHRpbWUsDQotCSAgIGluY2x1ZGluZyBhbnkg bGVmdC1vdmVycyBmcm9tIGxhc3QgdGltZS4gKi8NCi0JYmxvY2tlZCArPSBfX3RoaXNfY3B1X3Jl YWQoeGVuX3Jlc2lkdWFsX2Jsb2NrZWQpOw0KLQ0KLQlpZiAoYmxvY2tlZCA8IDApDQotCQlibG9j a2VkID0gMDsNCi0NCi0JdGlja3MgPSBpdGVyX2Rpdl91NjRfcmVtKGJsb2NrZWQsIE5TX1BFUl9U SUNLLCAmYmxvY2tlZCk7DQotCV9fdGhpc19jcHVfd3JpdGUoeGVuX3Jlc2lkdWFsX2Jsb2NrZWQs IGJsb2NrZWQpOw0KLQlhY2NvdW50X2lkbGVfdGlja3ModGlja3MpOw0KIH0NCiANCiAvKiBHZXQg dGhlIFRTQyBzcGVlZCBmcm9tIFhlbiAqLw0KZGlmZiAtLWdpdCBhL2Jsb2NrL2dlbmhkLmMgYi9i bG9jay9nZW5oZC5jDQppbmRleCA2ZWRmMjI4Li44YmQ0ZWYyIDEwMDY0NA0KLS0tIGEvYmxvY2sv Z2VuaGQuYw0KKysrIGIvYmxvY2svZ2VuaGQuYw0KQEAgLTUxOSw3ICs1MTksNyBAQCB2b2lkIHJl Z2lzdGVyX2Rpc2soc3RydWN0IGdlbmRpc2sgKmRpc2spDQogDQogCWRkZXYtPnBhcmVudCA9IGRp c2stPmRyaXZlcmZzX2RldjsNCiANCi0JZGV2X3NldF9uYW1lKGRkZXYsIGRpc2stPmRpc2tfbmFt ZSk7DQorCWRldl9zZXRfbmFtZShkZGV2LCAiJXMiLCBkaXNrLT5kaXNrX25hbWUpOw0KIA0KIAkv KiBkZWxheSB1ZXZlbnRzLCB1bnRpbCB3ZSBzY2FubmVkIHBhcnRpdGlvbiB0YWJsZSAqLw0KIAlk ZXZfc2V0X3VldmVudF9zdXBwcmVzcyhkZGV2LCAxKTsNCmRpZmYgLS1naXQgYS9jcnlwdG8vYWxn YXBpLmMgYi9jcnlwdG8vYWxnYXBpLmMNCmluZGV4IDU0ZGQ0ZTMuLmRjOTk5MWYgMTAwNjQ0DQot LS0gYS9jcnlwdG8vYWxnYXBpLmMNCisrKyBiL2NyeXB0by9hbGdhcGkuYw0KQEAgLTQ3Nyw3ICs0 NzcsOCBAQCBzdGF0aWMgc3RydWN0IGNyeXB0b190ZW1wbGF0ZSAqX19jcnlwdG9fbG9va3VwX3Rl bXBsYXRlKGNvbnN0IGNoYXIgKm5hbWUpDQogDQogc3RydWN0IGNyeXB0b190ZW1wbGF0ZSAqY3J5 cHRvX2xvb2t1cF90ZW1wbGF0ZShjb25zdCBjaGFyICpuYW1lKQ0KIHsNCi0JcmV0dXJuIHRyeV90 aGVuX3JlcXVlc3RfbW9kdWxlKF9fY3J5cHRvX2xvb2t1cF90ZW1wbGF0ZShuYW1lKSwgbmFtZSk7 DQorCXJldHVybiB0cnlfdGhlbl9yZXF1ZXN0X21vZHVsZShfX2NyeXB0b19sb29rdXBfdGVtcGxh dGUobmFtZSksICIlcyIsDQorCQkJCSAgICAgICBuYW1lKTsNCiB9DQogRVhQT1JUX1NZTUJPTF9H UEwoY3J5cHRvX2xvb2t1cF90ZW1wbGF0ZSk7DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEv YWhjaS5jIGIvZHJpdmVycy9hdGEvYWhjaS5jDQppbmRleCA4N2FjYzIzLi4wNDQ1ZjUyIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9hdGEvYWhjaS5jDQorKysgYi9kcml2ZXJzL2F0YS9haGNpLmMNCkBA IC0zMDIsNiArMzAyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGFoY2lf cGNpX3RibFtdID0gew0KIAl7IFBDSV9WREVWSUNFKElOVEVMLCAweDhkNjQpLCBib2FyZF9haGNp IH0sIC8qIFdlbGxzYnVyZyBSQUlEICovDQogCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OGQ2Niks IGJvYXJkX2FoY2kgfSwgLyogV2VsbHNidXJnIFJBSUQgKi8NCiAJeyBQQ0lfVkRFVklDRShJTlRF TCwgMHg4ZDZlKSwgYm9hcmRfYWhjaSB9LCAvKiBXZWxsc2J1cmcgUkFJRCAqLw0KKwl7IFBDSV9W REVWSUNFKElOVEVMLCAweDIzYTMpLCBib2FyZF9haGNpIH0sIC8qIENvbGV0byBDcmVlayBBSENJ ICovDQogDQogCS8qIEpNaWNyb24gMzYwLzEvMy81LzYsIG1hdGNoIGNsYXNzIHRvIGF2b2lkIElE RSBmdW5jdGlvbiAqLw0KIAl7IFBDSV9WRU5ET1JfSURfSk1JQ1JPTiwgUENJX0FOWV9JRCwgUENJ X0FOWV9JRCwgUENJX0FOWV9JRCwNCkBAIC0zMTgsNiArMzE5LDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBwY2lfZGV2aWNlX2lkIGFoY2lfcGNpX3RibFtdID0gew0KIA0KIAkvKiBBTUQgKi8NCiAJ eyBQQ0lfVkRFVklDRShBTUQsIDB4NzgwMCksIGJvYXJkX2FoY2kgfSwgLyogQU1EIEh1ZHNvbi0y ICovDQorCXsgUENJX1ZERVZJQ0UoQU1ELCAweDc5MDApLCBib2FyZF9haGNpIH0sIC8qIEFNRCBD WiAqLw0KIAkvKiBBTUQgaXMgdXNpbmcgUkFJRCBjbGFzcyBvbmx5IGZvciBhaGNpIGNvbnRyb2xs ZXJzICovDQogCXsgUENJX1ZFTkRPUl9JRF9BTUQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIFBD SV9BTllfSUQsDQogCSAgUENJX0NMQVNTX1NUT1JBR0VfUkFJRCA8PCA4LCAweGZmZmZmZiwgYm9h cmRfYWhjaSB9LA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL2F0YV9waWl4LmMgYi9kcml2ZXJz L2F0YS9hdGFfcGlpeC5jDQppbmRleCAwZTkyMzI2Li43YTk0OWFmIDEwMDY0NA0KLS0tIGEvZHJp dmVycy9hdGEvYXRhX3BpaXguYw0KKysrIGIvZHJpdmVycy9hdGEvYXRhX3BpaXguYw0KQEAgLTM2 MCw2ICszNjAsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcGlpeF9wY2lf dGJsW10gPSB7DQogCS8qIFNBVEEgQ29udHJvbGxlciBJREUgKEJheVRyYWlsKSAqLw0KIAl7IDB4 ODA4NiwgMHgwRjIwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBpY2g4XzJwb3J0X3Nh dGFfYnl0IH0sDQogCXsgMHg4MDg2LCAweDBGMjEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAs IDAsIGljaDhfMnBvcnRfc2F0YV9ieXQgfSwNCisJLyogU0FUQSBDb250cm9sbGVyIElERSAoQ29s ZXRvIENyZWVrKSAqLw0KKwl7IDB4ODA4NiwgMHgyM2E2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lE LCAwLCAwLCBpY2g4XzJwb3J0X3NhdGEgfSwNCiANCiAJeyB9CS8qIHRlcm1pbmF0ZSBsaXN0ICov DQogfTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9saWJhaGNpLmMgYi9kcml2ZXJzL2F0YS9s aWJhaGNpLmMNCmluZGV4IDNjOTJkYmQuLjYwZGVmMDMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2F0 YS9saWJhaGNpLmMNCisrKyBiL2RyaXZlcnMvYXRhL2xpYmFoY2kuYw0KQEAgLTE1NDEsOCArMTU0 MSw3IEBAIHN0YXRpYyB2b2lkIGFoY2lfZXJyb3JfaW50cihzdHJ1Y3QgYXRhX3BvcnQgKmFwLCB1 MzIgaXJxX3N0YXQpDQogCQl1MzIgZmJzID0gcmVhZGwocG9ydF9tbWlvICsgUE9SVF9GQlMpOw0K IAkJaW50IHBtcCA9IGZicyA+PiBQT1JUX0ZCU19EV0VfT0ZGU0VUOw0KIA0KLQkJaWYgKChmYnMg JiBQT1JUX0ZCU19TREUpICYmIChwbXAgPCBhcC0+bnJfcG1wX2xpbmtzKSAmJg0KLQkJICAgIGF0 YV9saW5rX29ubGluZSgmYXAtPnBtcF9saW5rW3BtcF0pKSB7DQorCQlpZiAoKGZicyAmIFBPUlRf RkJTX1NERSkgJiYgKHBtcCA8IGFwLT5ucl9wbXBfbGlua3MpKSB7DQogCQkJbGluayA9ICZhcC0+ cG1wX2xpbmtbcG1wXTsNCiAJCQlmYnNfbmVlZF9kZWMgPSB0cnVlOw0KIAkJfQ0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvYXRhL2xpYmF0YS1wbXAuYyBiL2RyaXZlcnMvYXRhL2xpYmF0YS1wbXAuYw0K aW5kZXggMjFiODBjNS4uZjYzYTU4OCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvYXRhL2xpYmF0YS1w bXAuYw0KKysrIGIvZHJpdmVycy9hdGEvbGliYXRhLXBtcC5jDQpAQCAtMzg5LDkgKzM4OSwxMyBA QCBzdGF0aWMgdm9pZCBzYXRhX3BtcF9xdWlya3Moc3RydWN0IGF0YV9wb3J0ICphcCkNCiAJCQkv KiBsaW5rIHJlcG9ydHMgb2ZmbGluZSBhZnRlciBMUE0gKi8NCiAJCQlsaW5rLT5mbGFncyB8PSBB VEFfTEZMQUdfTk9fTFBNOw0KIA0KLQkJCS8qIENsYXNzIGNvZGUgcmVwb3J0IGlzIHVucmVsaWFi bGUuICovDQorCQkJLyoNCisJCQkgKiBDbGFzcyBjb2RlIHJlcG9ydCBpcyB1bnJlbGlhYmxlIGFu ZCBTUlNUIHRpbWVzDQorCQkJICogb3V0IHVuZGVyIGNlcnRhaW4gY29uZmlndXJhdGlvbnMuDQor CQkJICovDQogCQkJaWYgKGxpbmstPnBtcCA8IDUpDQotCQkJCWxpbmstPmZsYWdzIHw9IEFUQV9M RkxBR19BU1NVTUVfQVRBOw0KKwkJCQlsaW5rLT5mbGFncyB8PSBBVEFfTEZMQUdfTk9fU1JTVCB8 DQorCQkJCQkgICAgICAgQVRBX0xGTEFHX0FTU1VNRV9BVEE7DQogDQogCQkJLyogcG9ydCA1IGlz IGZvciBTRU1CIGRldmljZSBhbmQgaXQgZG9lc24ndCBsaWtlIFNSU1QgKi8NCiAJCQlpZiAobGlu ay0+cG1wID09IDUpDQpAQCAtMzk5LDIwICs0MDMsMTcgQEAgc3RhdGljIHZvaWQgc2F0YV9wbXBf cXVpcmtzKHN0cnVjdCBhdGFfcG9ydCAqYXApDQogCQkJCQkgICAgICAgQVRBX0xGTEFHX0FTU1VN RV9TRU1COw0KIAkJfQ0KIAl9IGVsc2UgaWYgKHZlbmRvciA9PSAweDEwOTUgJiYgZGV2aWQgPT0g MHg0NzIzKSB7DQotCQkvKiBzaWw0NzIzIHF1aXJrcyAqLw0KLQkJYXRhX2Zvcl9lYWNoX2xpbmso bGluaywgYXAsIEVER0UpIHsNCi0JCQkvKiBsaW5rIHJlcG9ydHMgb2ZmbGluZSBhZnRlciBMUE0g Ki8NCi0JCQlsaW5rLT5mbGFncyB8PSBBVEFfTEZMQUdfTk9fTFBNOw0KLQ0KLQkJCS8qIGNsYXNz IGNvZGUgcmVwb3J0IGlzIHVucmVsaWFibGUgKi8NCi0JCQlpZiAobGluay0+cG1wIDwgMikNCi0J CQkJbGluay0+ZmxhZ3MgfD0gQVRBX0xGTEFHX0FTU1VNRV9BVEE7DQotDQotCQkJLyogdGhlIGNv bmZpZyBkZXZpY2UgYXQgcG9ydCAyIGxvY2tzIHVwIG9uIFNSU1QgKi8NCi0JCQlpZiAobGluay0+ cG1wID09IDIpDQotCQkJCWxpbmstPmZsYWdzIHw9IEFUQV9MRkxBR19OT19TUlNUIHwNCi0JCQkJ CSAgICAgICBBVEFfTEZMQUdfQVNTVU1FX0FUQTsNCi0JCX0NCisJCS8qDQorCQkgKiBzaWw0NzIz IHF1aXJrcw0KKwkJICoNCisJCSAqIExpbmsgcmVwb3J0cyBvZmZsaW5lIGFmdGVyIExQTS4gIENs YXNzIGNvZGUgcmVwb3J0IGlzDQorCQkgKiB1bnJlbGlhYmxlLiAgU0lNRyBQTVBzIG5ldmVyIGdv dCBTUlNUIHJlbGlhYmxlIGFuZCB0aGUNCisJCSAqIGNvbmZpZyBkZXZpY2UgYXQgcG9ydCAyIGxv Y2tzIHVwIG9uIFNSU1QuDQorCQkgKi8NCisJCWF0YV9mb3JfZWFjaF9saW5rKGxpbmssIGFwLCBF REdFKQ0KKwkJCWxpbmstPmZsYWdzIHw9IEFUQV9MRkxBR19OT19MUE0gfA0KKwkJCQkgICAgICAg QVRBX0xGTEFHX05PX1NSU1QgfA0KKwkJCQkgICAgICAgQVRBX0xGTEFHX0FTU1VNRV9BVEE7DQog CX0gZWxzZSBpZiAodmVuZG9yID09IDB4MTA5NSAmJiBkZXZpZCA9PSAweDQ3MjYpIHsNCiAJCS8q IHNpbDQ3MjYgcXVpcmtzICovDQogCQlhdGFfZm9yX2VhY2hfbGluayhsaW5rLCBhcCwgRURHRSkg ew0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svbmJkLmMgYi9kcml2ZXJzL2Jsb2NrL25iZC5j DQppbmRleCA0MGEwZmNiLi41ZmI2ODg1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ibG9jay9uYmQu Yw0KKysrIGIvZHJpdmVycy9ibG9jay9uYmQuYw0KQEAgLTU5OCw4ICs1OTgsMTAgQEAgc3RhdGlj IGludCBfX25iZF9pb2N0bChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzdHJ1Y3QgbmJkX2Rl dmljZSAqbG8sDQogCQlpZiAoIWxvLT5zb2NrKQ0KIAkJCXJldHVybiAtRUlOVkFMOw0KIA0KKwkJ bG8tPmRpc2Nvbm5lY3QgPSAxOw0KKw0KIAkJbmJkX3NlbmRfcmVxKGxvLCAmc3JlcSk7DQotICAg ICAgICAgICAgICAgIHJldHVybiAwOw0KKwkJcmV0dXJuIDA7DQogCX0NCiAgDQogCWNhc2UgTkJE X0NMRUFSX1NPQ0s6IHsNCkBAIC02MjksNiArNjMxLDcgQEAgc3RhdGljIGludCBfX25iZF9pb2N0 bChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzdHJ1Y3QgbmJkX2RldmljZSAqbG8sDQogCQkJ CWxvLT5zb2NrID0gU09DS0VUX0koaW5vZGUpOw0KIAkJCQlpZiAobWF4X3BhcnQgPiAwKQ0KIAkJ CQkJYmRldi0+YmRfaW52YWxpZGF0ZWQgPSAxOw0KKwkJCQlsby0+ZGlzY29ubmVjdCA9IDA7IC8q IHdlJ3JlIGNvbm5lY3RlZCBub3cgKi8NCiAJCQkJcmV0dXJuIDA7DQogCQkJfSBlbHNlIHsNCiAJ CQkJZnB1dChmaWxlKTsNCkBAIC02NzUsNyArNjc4LDggQEAgc3RhdGljIGludCBfX25iZF9pb2N0 bChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzdHJ1Y3QgbmJkX2RldmljZSAqbG8sDQogDQog CQltdXRleF91bmxvY2soJmxvLT50eF9sb2NrKTsNCiANCi0JCXRocmVhZCA9IGt0aHJlYWRfY3Jl YXRlKG5iZF90aHJlYWQsIGxvLCBsby0+ZGlzay0+ZGlza19uYW1lKTsNCisJCXRocmVhZCA9IGt0 aHJlYWRfY3JlYXRlKG5iZF90aHJlYWQsIGxvLCAiJXMiLA0KKwkJCQkJbG8tPmRpc2stPmRpc2tf bmFtZSk7DQogCQlpZiAoSVNfRVJSKHRocmVhZCkpIHsNCiAJCQltdXRleF9sb2NrKCZsby0+dHhf bG9jayk7DQogCQkJcmV0dXJuIFBUUl9FUlIodGhyZWFkKTsNCkBAIC03MDAsNiArNzA0LDggQEAg c3RhdGljIGludCBfX25iZF9pb2N0bChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzdHJ1Y3Qg bmJkX2RldmljZSAqbG8sDQogCQlzZXRfY2FwYWNpdHkobG8tPmRpc2ssIDApOw0KIAkJaWYgKG1h eF9wYXJ0ID4gMCkNCiAJCQlpb2N0bF9ieV9iZGV2KGJkZXYsIEJMS1JSUEFSVCwgMCk7DQorCQlp ZiAobG8tPmRpc2Nvbm5lY3QpIC8qIHVzZXIgcmVxdWVzdGVkLCBpZ25vcmUgc29ja2V0IGVycm9y cyAqLw0KKwkJCXJldHVybiAwOw0KIAkJcmV0dXJuIGxvLT5oYXJkZXJyb3I7DQogCX0NCiANCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2Nkcm9tL2Nkcm9tLmMgYi9kcml2ZXJzL2Nkcm9tL2Nkcm9tLmMN CmluZGV4IDI2NzhiNmYuLjEzMzE3NDAgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2Nkcm9tL2Nkcm9t LmMNCisrKyBiL2RyaXZlcnMvY2Ryb20vY2Ryb20uYw0KQEAgLTI4ODUsNyArMjg4NSw3IEBAIHN0 YXRpYyBub2lubGluZSBpbnQgbW1jX2lvY3RsX2Nkcm9tX3JlYWRfZGF0YShzdHJ1Y3QgY2Ryb21f ZGV2aWNlX2luZm8gKmNkaSwNCiAJaWYgKGxiYSA8IDApDQogCQlyZXR1cm4gLUVJTlZBTDsNCiAN Ci0JY2djLT5idWZmZXIgPSBrbWFsbG9jKGJsb2Nrc2l6ZSwgR0ZQX0tFUk5FTCk7DQorCWNnYy0+ YnVmZmVyID0ga3phbGxvYyhibG9ja3NpemUsIEdGUF9LRVJORUwpOw0KIAlpZiAoY2djLT5idWZm ZXIgPT0gTlVMTCkNCiAJCXJldHVybiAtRU5PTUVNOw0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv ZG1hL3BsMzMwLmMgYi9kcml2ZXJzL2RtYS9wbDMzMC5jDQppbmRleCBlOGVlZGI3Li43MjBjYWNl IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9kbWEvcGwzMzAuYw0KKysrIGIvZHJpdmVycy9kbWEvcGwz MzAuYw0KQEAgLTM0OSwxMCArMzQ5LDEwIEBAIHN0YXRpYyB2b2lkIHBsMzMwX2ZyZWVfY2hhbl9y ZXNvdXJjZXMoc3RydWN0IGRtYV9jaGFuICpjaGFuKQ0KIAlzdHJ1Y3QgZG1hX3BsMzMwX2NoYW4g KnBjaCA9IHRvX3BjaGFuKGNoYW4pOw0KIAl1bnNpZ25lZCBsb25nIGZsYWdzOw0KIA0KLQlzcGlu X2xvY2tfaXJxc2F2ZSgmcGNoLT5sb2NrLCBmbGFncyk7DQotDQogCXRhc2tsZXRfa2lsbCgmcGNo LT50YXNrKTsNCiANCisJc3Bpbl9sb2NrX2lycXNhdmUoJnBjaC0+bG9jaywgZmxhZ3MpOw0KKw0K IAlwbDMzMF9yZWxlYXNlX2NoYW5uZWwocGNoLT5wbDMzMF9jaGlkKTsNCiAJcGNoLT5wbDMzMF9j aGlkID0gTlVMTDsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWQtYXBwbGUuYyBiL2Ry aXZlcnMvaGlkL2hpZC1hcHBsZS5jDQppbmRleCAyZGE3MzM1Li5jZWEyNjI1IDEwMDY0NA0KLS0t IGEvZHJpdmVycy9oaWQvaGlkLWFwcGxlLmMNCisrKyBiL2RyaXZlcnMvaGlkL2hpZC1hcHBsZS5j DQpAQCAtNTIzLDYgKzUyMywxOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhpZF9kZXZpY2VfaWQg YXBwbGVfZGV2aWNlc1tdID0gew0KIAkJLmRyaXZlcl9kYXRhID0gQVBQTEVfSEFTX0ZOIHwgQVBQ TEVfSVNPX0tFWUJPQVJEIH0sDQogCXsgSElEX1VTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9BUFBM RSwgVVNCX0RFVklDRV9JRF9BUFBMRV9XRUxMU1BSSU5HN19KSVMpLA0KIAkJLmRyaXZlcl9kYXRh ID0gQVBQTEVfSEFTX0ZOIHwgQVBQTEVfUkRFU0NfSklTIH0sDQorCXsgSElEX1VTQl9ERVZJQ0Uo VVNCX1ZFTkRPUl9JRF9BUFBMRSwgVVNCX0RFVklDRV9JRF9BUFBMRV9XRUxMU1BSSU5HN0FfQU5T SSksDQorCQkuZHJpdmVyX2RhdGEgPSBBUFBMRV9IQVNfRk4gfSwNCisJeyBISURfVVNCX0RFVklD RShVU0JfVkVORE9SX0lEX0FQUExFLCBVU0JfREVWSUNFX0lEX0FQUExFX1dFTExTUFJJTkc3QV9J U08pLA0KKwkJLmRyaXZlcl9kYXRhID0gQVBQTEVfSEFTX0ZOIHwgQVBQTEVfSVNPX0tFWUJPQVJE IH0sDQorCXsgSElEX1VTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9BUFBMRSwgVVNCX0RFVklDRV9J RF9BUFBMRV9XRUxMU1BSSU5HN0FfSklTKSwNCisJCS5kcml2ZXJfZGF0YSA9IEFQUExFX0hBU19G TiB8IEFQUExFX1JERVNDX0pJUyB9LA0KKwl7IEhJRF9VU0JfREVWSUNFKFVTQl9WRU5ET1JfSURf QVBQTEUsIFVTQl9ERVZJQ0VfSURfQVBQTEVfV0VMTFNQUklORzhfQU5TSSksDQorCQkuZHJpdmVy X2RhdGEgPSBBUFBMRV9IQVNfRk4gfSwNCisJeyBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lE X0FQUExFLCBVU0JfREVWSUNFX0lEX0FQUExFX1dFTExTUFJJTkc4X0lTTyksDQorCQkuZHJpdmVy X2RhdGEgPSBBUFBMRV9IQVNfRk4gfCBBUFBMRV9JU09fS0VZQk9BUkQgfSwNCisJeyBISURfVVNC X0RFVklDRShVU0JfVkVORE9SX0lEX0FQUExFLCBVU0JfREVWSUNFX0lEX0FQUExFX1dFTExTUFJJ Tkc4X0pJUyksDQorCQkuZHJpdmVyX2RhdGEgPSBBUFBMRV9IQVNfRk4gfCBBUFBMRV9SREVTQ19K SVMgfSwNCiAJeyBISURfQkxVRVRPT1RIX0RFVklDRShVU0JfVkVORE9SX0lEX0FQUExFLCBVU0Jf REVWSUNFX0lEX0FQUExFX0FMVV9XSVJFTEVTU18yMDA5X0FOU0kpLA0KIAkJLmRyaXZlcl9kYXRh ID0gQVBQTEVfTlVNTE9DS19FTVVMQVRJT04gfCBBUFBMRV9IQVNfRk4gfSwNCiAJeyBISURfQkxV RVRPT1RIX0RFVklDRShVU0JfVkVORE9SX0lEX0FQUExFLCBVU0JfREVWSUNFX0lEX0FQUExFX0FM VV9XSVJFTEVTU18yMDA5X0lTTyksDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvaGlkLWNvcmUu YyBiL2RyaXZlcnMvaGlkL2hpZC1jb3JlLmMNCmluZGV4IDYxMWFhZmMuLjMyOTYxMTEgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL2hpZC9oaWQtY29yZS5jDQorKysgYi9kcml2ZXJzL2hpZC9oaWQtY29y ZS5jDQpAQCAtMTM4Myw2ICsxMzgzLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGlkX2Rldmlj ZV9pZCBoaWRfaGF2ZV9zcGVjaWFsX2RyaXZlcltdID0gew0KIAl7IEhJRF9VU0JfREVWSUNFKFVT Ql9WRU5ET1JfSURfQVBQTEUsIFVTQl9ERVZJQ0VfSURfQVBQTEVfV0VMTFNQUklORzdfQU5TSSkg fSwNCiAJeyBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0FQUExFLCBVU0JfREVWSUNFX0lE X0FQUExFX1dFTExTUFJJTkc3X0lTTykgfSwNCiAJeyBISURfVVNCX0RFVklDRShVU0JfVkVORE9S X0lEX0FQUExFLCBVU0JfREVWSUNFX0lEX0FQUExFX1dFTExTUFJJTkc3X0pJUykgfSwNCisJeyBI SURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0FQUExFLCBVU0JfREVWSUNFX0lEX0FQUExFX1dF TExTUFJJTkc3QV9BTlNJKSB9LA0KKwl7IEhJRF9VU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfQVBQ TEUsIFVTQl9ERVZJQ0VfSURfQVBQTEVfV0VMTFNQUklORzdBX0lTTykgfSwNCisJeyBISURfVVNC X0RFVklDRShVU0JfVkVORE9SX0lEX0FQUExFLCBVU0JfREVWSUNFX0lEX0FQUExFX1dFTExTUFJJ Tkc3QV9KSVMpIH0sDQorCXsgSElEX1VTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9BUFBMRSwgVVNC X0RFVklDRV9JRF9BUFBMRV9XRUxMU1BSSU5HOF9BTlNJKSB9LA0KKwl7IEhJRF9VU0JfREVWSUNF KFVTQl9WRU5ET1JfSURfQVBQTEUsIFVTQl9ERVZJQ0VfSURfQVBQTEVfV0VMTFNQUklORzhfSVNP KSB9LA0KKwl7IEhJRF9VU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfQVBQTEUsIFVTQl9ERVZJQ0Vf SURfQVBQTEVfV0VMTFNQUklORzhfSklTKSB9LA0KIAl7IEhJRF9CTFVFVE9PVEhfREVWSUNFKFVT Ql9WRU5ET1JfSURfQVBQTEUsIFVTQl9ERVZJQ0VfSURfQVBQTEVfQUxVX1dJUkVMRVNTXzIwMDlf QU5TSSkgfSwNCiAJeyBISURfQkxVRVRPT1RIX0RFVklDRShVU0JfVkVORE9SX0lEX0FQUExFLCBV U0JfREVWSUNFX0lEX0FQUExFX0FMVV9XSVJFTEVTU18yMDA5X0lTTykgfSwNCiAJeyBISURfQkxV RVRPT1RIX0RFVklDRShVU0JfVkVORE9SX0lEX0FQUExFLCBVU0JfREVWSUNFX0lEX0FQUExFX0FM VV9XSVJFTEVTU18yMDA5X0pJUykgfSwNCkBAIC0xOTg5LDYgKzE5OTUsMTIgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBoaWRfZGV2aWNlX2lkIGhpZF9tb3VzZV9pZ25vcmVfbGlzdFtdID0gew0KIAl7 IEhJRF9VU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfQVBQTEUsIFVTQl9ERVZJQ0VfSURfQVBQTEVf V0VMTFNQUklORzdfQU5TSSkgfSwNCiAJeyBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0FQ UExFLCBVU0JfREVWSUNFX0lEX0FQUExFX1dFTExTUFJJTkc3X0lTTykgfSwNCiAJeyBISURfVVNC X0RFVklDRShVU0JfVkVORE9SX0lEX0FQUExFLCBVU0JfREVWSUNFX0lEX0FQUExFX1dFTExTUFJJ Tkc3X0pJUykgfSwNCisJeyBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0FQUExFLCBVU0Jf REVWSUNFX0lEX0FQUExFX1dFTExTUFJJTkc3QV9BTlNJKSB9LA0KKwl7IEhJRF9VU0JfREVWSUNF KFVTQl9WRU5ET1JfSURfQVBQTEUsIFVTQl9ERVZJQ0VfSURfQVBQTEVfV0VMTFNQUklORzdBX0lT TykgfSwNCisJeyBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0FQUExFLCBVU0JfREVWSUNF X0lEX0FQUExFX1dFTExTUFJJTkc3QV9KSVMpIH0sDQorCXsgSElEX1VTQl9ERVZJQ0UoVVNCX1ZF TkRPUl9JRF9BUFBMRSwgVVNCX0RFVklDRV9JRF9BUFBMRV9XRUxMU1BSSU5HOF9BTlNJKSB9LA0K Kwl7IEhJRF9VU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfQVBQTEUsIFVTQl9ERVZJQ0VfSURfQVBQ TEVfV0VMTFNQUklORzhfSVNPKSB9LA0KKwl7IEhJRF9VU0JfREVWSUNFKFVTQl9WRU5ET1JfSURf QVBQTEUsIFVTQl9ERVZJQ0VfSURfQVBQTEVfV0VMTFNQUklORzhfSklTKSB9LA0KIAl7IEhJRF9V U0JfREVWSUNFKFVTQl9WRU5ET1JfSURfQVBQTEUsIFVTQl9ERVZJQ0VfSURfQVBQTEVfRk9VTlRB SU5fVFBfT05MWSkgfSwNCiAJeyBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0FQUExFLCBV U0JfREVWSUNFX0lEX0FQUExFX0dFWVNFUjFfVFBfT05MWSkgfSwNCiAJeyB9DQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9oaWQvaGlkLWlkcy5oIGIvZHJpdmVycy9oaWQvaGlkLWlkcy5oDQppbmRleCAw ODA3NWYyLi5hN2Q1MjU2IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9oaWQvaGlkLWlkcy5oDQorKysg Yi9kcml2ZXJzL2hpZC9oaWQtaWRzLmgNCkBAIC0xMTksNiArMTE5LDkgQEANCiAjZGVmaW5lIFVT Ql9ERVZJQ0VfSURfQVBQTEVfV0VMTFNQUklORzVBX0FOU0kJMHgwMjUyDQogI2RlZmluZSBVU0Jf REVWSUNFX0lEX0FQUExFX1dFTExTUFJJTkc1QV9JU08JMHgwMjUzDQogI2RlZmluZSBVU0JfREVW SUNFX0lEX0FQUExFX1dFTExTUFJJTkc1QV9KSVMJMHgwMjU0DQorI2RlZmluZSBVU0JfREVWSUNF X0lEX0FQUExFX1dFTExTUFJJTkc3QV9BTlNJCTB4MDI1OQ0KKyNkZWZpbmUgVVNCX0RFVklDRV9J RF9BUFBMRV9XRUxMU1BSSU5HN0FfSVNPCTB4MDI1YQ0KKyNkZWZpbmUgVVNCX0RFVklDRV9JRF9B UFBMRV9XRUxMU1BSSU5HN0FfSklTCTB4MDI1Yg0KICNkZWZpbmUgVVNCX0RFVklDRV9JRF9BUFBM RV9XRUxMU1BSSU5HNkFfQU5TSQkweDAyNDkNCiAjZGVmaW5lIFVTQl9ERVZJQ0VfSURfQVBQTEVf V0VMTFNQUklORzZBX0lTTwkweDAyNGENCiAjZGVmaW5lIFVTQl9ERVZJQ0VfSURfQVBQTEVfV0VM TFNQUklORzZBX0pJUwkweDAyNGINCkBAIC0xMzMsNiArMTM2LDkgQEANCiAjZGVmaW5lIFVTQl9E RVZJQ0VfSURfQVBQTEVfQUxVX1dJUkVMRVNTXzIwMDlfSklTICAgMHgwMjNiDQogI2RlZmluZSBV U0JfREVWSUNFX0lEX0FQUExFX0FMVV9XSVJFTEVTU18yMDExX0FOU0kgIDB4MDI1NQ0KICNkZWZp bmUgVVNCX0RFVklDRV9JRF9BUFBMRV9BTFVfV0lSRUxFU1NfMjAxMV9JU08gICAweDAyNTYNCisj ZGVmaW5lIFVTQl9ERVZJQ0VfSURfQVBQTEVfV0VMTFNQUklORzhfQU5TSQkweDAyOTENCisjZGVm aW5lIFVTQl9ERVZJQ0VfSURfQVBQTEVfV0VMTFNQUklORzhfSVNPCTB4MDI5Mg0KKyNkZWZpbmUg VVNCX0RFVklDRV9JRF9BUFBMRV9XRUxMU1BSSU5HOF9KSVMJMHgwMjkzDQogI2RlZmluZSBVU0Jf REVWSUNFX0lEX0FQUExFX0ZPVU5UQUlOX1RQX09OTFkJMHgwMzBhDQogI2RlZmluZSBVU0JfREVW SUNFX0lEX0FQUExFX0dFWVNFUjFfVFBfT05MWQkweDAzMGINCiAjZGVmaW5lIFVTQl9ERVZJQ0Vf SURfQVBQTEVfQVRWX0lSQ09OVFJPTAkweDgyNDENCmRpZmYgLS1naXQgYS9kcml2ZXJzL2h2L3Jp bmdfYnVmZmVyLmMgYi9kcml2ZXJzL2h2L3JpbmdfYnVmZmVyLmMNCmluZGV4IDhhZjI1YTAuLjgx MDY1OGUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2h2L3JpbmdfYnVmZmVyLmMNCisrKyBiL2RyaXZl cnMvaHYvcmluZ19idWZmZXIuYw0KQEAgLTM4Myw3ICszODMsNyBAQCBpbnQgaHZfcmluZ2J1ZmZl cl93cml0ZShzdHJ1Y3QgaHZfcmluZ19idWZmZXJfaW5mbyAqb3V0cmluZ19pbmZvLA0KIAkJCQkJ ICAgICBzaXplb2YodTY0KSk7DQogDQogCS8qIE1ha2Ugc3VyZSB3ZSBmbHVzaCBhbGwgd3JpdGVz IGJlZm9yZSB1cGRhdGluZyB0aGUgd3JpdGVJbmRleCAqLw0KLQlzbXBfd21iKCk7DQorCXdtYigp Ow0KIA0KIAkvKiBOb3csIHVwZGF0ZSB0aGUgd3JpdGUgbG9jYXRpb24gKi8NCiAJaHZfc2V0X25l eHRfd3JpdGVfbG9jYXRpb24ob3V0cmluZ19pbmZvLCBuZXh0X3dyaXRlX2xvY2F0aW9uKTsNCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2h2L3ZtYnVzX2Rydi5jIGIvZHJpdmVycy9odi92bWJ1c19kcnYu Yw0KaW5kZXggZDJkMGEyYS4uNDQ0NDJkNSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaHYvdm1idXNf ZHJ2LmMNCisrKyBiL2RyaXZlcnMvaHYvdm1idXNfZHJ2LmMNCkBAIC00NjYsNyArNDY2LDcgQEAg c3RhdGljIHZvaWQgdm1idXNfb25fbXNnX2RwYyh1bnNpZ25lZCBsb25nIGRhdGEpDQogCQkgKiB3 aWxsIG5vdCBkZWxpdmVyIGFueSBtb3JlIG1lc3NhZ2VzIHNpbmNlIHRoZXJlIGlzDQogCQkgKiBu byBlbXB0eSBzbG90DQogCQkgKi8NCi0JCXNtcF9tYigpOw0KKwkJbWIoKTsNCiANCiAJCWlmICht c2ctPmhlYWRlci5tZXNzYWdlX2ZsYWdzLm1zZ19wZW5kaW5nKSB7DQogCQkJLyoNCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvS2NvbmZpZyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9LY29u ZmlnDQppbmRleCA2MGY1OTNjLi5kYmQ0ZmE1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9pMmMvYnVz c2VzL0tjb25maWcNCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9LY29uZmlnDQpAQCAtMTM3LDYg KzEzNyw3IEBAIGNvbmZpZyBJMkNfUElJWDQNCiAJICAgIEFUSSBTQjcwMA0KIAkgICAgQVRJIFNC ODAwDQogCSAgICBBTUQgSHVkc29uLTINCisJICAgIEFNRCBDWg0KIAkgICAgU2VydmVyd29ya3Mg T1NCNA0KIAkgICAgU2VydmVyd29ya3MgQ1NCNQ0KIAkgICAgU2VydmVyd29ya3MgQ1NCNg0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcGlpeDQuYyBiL2RyaXZlcnMvaTJjL2J1 c3Nlcy9pMmMtcGlpeDQuYw0KaW5kZXggNmQxNGFjMi4uMTRiNTg4YyAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvaTJjL2J1c3Nlcy9pMmMtcGlpeDQuYw0KKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2ky Yy1waWl4NC5jDQpAQCAtMjIsNyArMjIsNyBAQA0KIAlJbnRlbCBQSUlYNCwgNDQwTVgNCiAJU2Vy dmVyd29ya3MgT1NCNCwgQ1NCNSwgQ1NCNiwgSFQtMTAwMCwgSFQtMTEwMA0KIAlBVEkgSVhQMjAw LCBJWFAzMDAsIElYUDQwMCwgU0I2MDAsIFNCNzAwLCBTQjgwMA0KLQlBTUQgSHVkc29uLTINCisJ QU1EIEh1ZHNvbi0yLCBDWg0KIAlTTVNDIFZpY3Rvcnk2Ng0KIA0KICAgIE5vdGU6IHdlIGFzc3Vt ZSB0aGVyZSBjYW4gb25seSBiZSBvbmUgZGV2aWNlLCB3aXRoIG9uZSBTTUJ1cyBpbnRlcmZhY2Uu DQpAQCAtNDgxLDYgKzQ4MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBw aWl4NF9pZHNbXSA9IHsNCiAJeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lfREVW SUNFX0lEX0FUSV9JWFA0MDBfU01CVVMpIH0sDQogCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lE X0FUSSwgUENJX0RFVklDRV9JRF9BVElfU0JYMDBfU01CVVMpIH0sDQogCXsgUENJX0RFVklDRShQ Q0lfVkVORE9SX0lEX0FNRCwgUENJX0RFVklDRV9JRF9BTURfSFVEU09OMl9TTUJVUykgfSwNCisJ eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQU1ELCAweDc5MGIpIH0sDQogCXsgUENJX0RFVklD RShQQ0lfVkVORE9SX0lEX1NFUlZFUldPUktTLA0KIAkJICAgICBQQ0lfREVWSUNFX0lEX1NFUlZF UldPUktTX09TQjQpIH0sDQogCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX1NFUlZFUldPUktT LA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvbW91c2UvYmNtNTk3NC5jIGIvZHJpdmVycy9p bnB1dC9tb3VzZS9iY201OTc0LmMNCmluZGV4IDE1MTJiZDguLjAxNmJkZWIgMTAwNjQ0DQotLS0g YS9kcml2ZXJzL2lucHV0L21vdXNlL2JjbTU5NzQuYw0KKysrIGIvZHJpdmVycy9pbnB1dC9tb3Vz ZS9iY201OTc0LmMNCkBAIC04Myw2ICs4MywxNCBAQA0KICNkZWZpbmUgVVNCX0RFVklDRV9JRF9B UFBMRV9XRUxMU1BSSU5HN19BTlNJCTB4MDI2Mg0KICNkZWZpbmUgVVNCX0RFVklDRV9JRF9BUFBM RV9XRUxMU1BSSU5HN19JU08JMHgwMjYzDQogI2RlZmluZSBVU0JfREVWSUNFX0lEX0FQUExFX1dF TExTUFJJTkc3X0pJUwkweDAyNjQNCisvKiBNYWNib29rUHJvMTAsMiAodW5pYm9keSwgT2N0b2Jl ciAyMDEyKSAqLw0KKyNkZWZpbmUgVVNCX0RFVklDRV9JRF9BUFBMRV9XRUxMU1BSSU5HN0FfQU5T SQkweDAyNTkNCisjZGVmaW5lIFVTQl9ERVZJQ0VfSURfQVBQTEVfV0VMTFNQUklORzdBX0lTTwkw eDAyNWENCisjZGVmaW5lIFVTQl9ERVZJQ0VfSURfQVBQTEVfV0VMTFNQUklORzdBX0pJUwkweDAy NWINCisvKiBNYWNib29rQWlyNiwyICh1bmlib2R5LCBKdW5lIDIwMTMpICovDQorI2RlZmluZSBV U0JfREVWSUNFX0lEX0FQUExFX1dFTExTUFJJTkc4X0FOU0kJMHgwMjkxDQorI2RlZmluZSBVU0Jf REVWSUNFX0lEX0FQUExFX1dFTExTUFJJTkc4X0lTTwkweDAyOTINCisjZGVmaW5lIFVTQl9ERVZJ Q0VfSURfQVBQTEVfV0VMTFNQUklORzhfSklTCTB4MDI5Mw0KIA0KICNkZWZpbmUgQkNNNTk3NF9E RVZJQ0UocHJvZCkgewkJCQkJXA0KIAkubWF0Y2hfZmxhZ3MgPSAoVVNCX0RFVklDRV9JRF9NQVRD SF9ERVZJQ0UgfAkJXA0KQEAgLTEzNiw2ICsxNDQsMTQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1 c2JfZGV2aWNlX2lkIGJjbTU5NzRfdGFibGVbXSA9IHsNCiAJQkNNNTk3NF9ERVZJQ0UoVVNCX0RF VklDRV9JRF9BUFBMRV9XRUxMU1BSSU5HN19BTlNJKSwNCiAJQkNNNTk3NF9ERVZJQ0UoVVNCX0RF VklDRV9JRF9BUFBMRV9XRUxMU1BSSU5HN19JU08pLA0KIAlCQ001OTc0X0RFVklDRShVU0JfREVW SUNFX0lEX0FQUExFX1dFTExTUFJJTkc3X0pJUyksDQorCS8qIE1hY2Jvb2tQcm8xMCwyICovDQor CUJDTTU5NzRfREVWSUNFKFVTQl9ERVZJQ0VfSURfQVBQTEVfV0VMTFNQUklORzdBX0FOU0kpLA0K KwlCQ001OTc0X0RFVklDRShVU0JfREVWSUNFX0lEX0FQUExFX1dFTExTUFJJTkc3QV9JU08pLA0K KwlCQ001OTc0X0RFVklDRShVU0JfREVWSUNFX0lEX0FQUExFX1dFTExTUFJJTkc3QV9KSVMpLA0K KwkvKiBNYWNib29rQWlyNiwyICovDQorCUJDTTU5NzRfREVWSUNFKFVTQl9ERVZJQ0VfSURfQVBQ TEVfV0VMTFNQUklORzhfQU5TSSksDQorCUJDTTU5NzRfREVWSUNFKFVTQl9ERVZJQ0VfSURfQVBQ TEVfV0VMTFNQUklORzhfSVNPKSwNCisJQkNNNTk3NF9ERVZJQ0UoVVNCX0RFVklDRV9JRF9BUFBM RV9XRUxMU1BSSU5HOF9KSVMpLA0KIAkvKiBUZXJtaW5hdGluZyBlbnRyeSAqLw0KIAl7fQ0KIH07 DQpAQCAtMTYzLDE1ICsxNzksMTggQEAgc3RydWN0IGJ0X2RhdGEgew0KIC8qIHRyYWNrcGFkIGhl YWRlciB0eXBlcyAqLw0KIGVudW0gdHBfdHlwZSB7DQogCVRZUEUxLAkJCS8qIHBsYWluIHRyYWNr cGFkICovDQotCVRZUEUyCQkJLyogYnV0dG9uIGludGVncmF0ZWQgaW4gdHJhY2twYWQgKi8NCisJ VFlQRTIsCQkJLyogYnV0dG9uIGludGVncmF0ZWQgaW4gdHJhY2twYWQgKi8NCisJVFlQRTMJCQkv KiBhZGRpdGlvbmFsIGhlYWRlciBmaWVsZHMgc2luY2UgSnVuZSAyMDEzICovDQogfTsNCiANCiAv KiB0cmFja3BhZCBmaW5nZXIgZGF0YSBvZmZzZXRzLCBsZTE2LWFsaWduZWQgKi8NCiAjZGVmaW5l IEZJTkdFUl9UWVBFMQkJKDEzICogc2l6ZW9mKF9fbGUxNikpDQogI2RlZmluZSBGSU5HRVJfVFlQ RTIJCSgxNSAqIHNpemVvZihfX2xlMTYpKQ0KKyNkZWZpbmUgRklOR0VSX1RZUEUzCQkoMTkgKiBz aXplb2YoX19sZTE2KSkNCiANCiAvKiB0cmFja3BhZCBidXR0b24gZGF0YSBvZmZzZXRzICovDQog I2RlZmluZSBCVVRUT05fVFlQRTIJCTE1DQorI2RlZmluZSBCVVRUT05fVFlQRTMJCTIzDQogDQog LyogbGlzdCBvZiBkZXZpY2UgY2FwYWJpbGl0eSBiaXRzICovDQogI2RlZmluZSBIQVNfSU5URUdS QVRFRF9CVVRUT04JMQ0KQEAgLTM3NCw2ICszOTMsMzAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBi Y201OTc0X2NvbmZpZyBiY201OTc0X2NvbmZpZ190YWJsZVtdID0gew0KIAkJeyBESU1fWCwgRElN X1ggLyBTTl9DT09SRCwgLTQ3NTAsIDUyODAgfSwNCiAJCXsgRElNX1ksIERJTV9ZIC8gU05fQ09P UkQsIC0xNTAsIDY3MzAgfQ0KIAl9LA0KKwl7DQorCQlVU0JfREVWSUNFX0lEX0FQUExFX1dFTExT UFJJTkc3QV9BTlNJLA0KKwkJVVNCX0RFVklDRV9JRF9BUFBMRV9XRUxMU1BSSU5HN0FfSVNPLA0K KwkJVVNCX0RFVklDRV9JRF9BUFBMRV9XRUxMU1BSSU5HN0FfSklTLA0KKwkJSEFTX0lOVEVHUkFU RURfQlVUVE9OLA0KKwkJMHg4NCwgc2l6ZW9mKHN0cnVjdCBidF9kYXRhKSwNCisJCTB4ODEsIFRZ UEUyLCBGSU5HRVJfVFlQRTIsIEZJTkdFUl9UWVBFMiArIFNJWkVPRl9BTExfRklOR0VSUywNCisJ CXsgRElNX1BSRVNTVVJFLCBESU1fUFJFU1NVUkUgLyBTTl9QUkVTU1VSRSwgMCwgMzAwIH0sDQor CQl7IERJTV9XSURUSCwgRElNX1dJRFRIIC8gU05fV0lEVEgsIDAsIDIwNDggfSwNCisJCXsgRElN X1gsIERJTV9YIC8gU05fQ09PUkQsIC00NzUwLCA1MjgwIH0sDQorCQl7IERJTV9ZLCBESU1fWSAv IFNOX0NPT1JELCAtMTUwLCA2NzMwIH0NCisJfSwNCisJew0KKwkJVVNCX0RFVklDRV9JRF9BUFBM RV9XRUxMU1BSSU5HOF9BTlNJLA0KKwkJVVNCX0RFVklDRV9JRF9BUFBMRV9XRUxMU1BSSU5HOF9J U08sDQorCQlVU0JfREVWSUNFX0lEX0FQUExFX1dFTExTUFJJTkc4X0pJUywNCisJCUhBU19JTlRF R1JBVEVEX0JVVFRPTiwNCisJCTAsIHNpemVvZihzdHJ1Y3QgYnRfZGF0YSksDQorCQkweDgzLCBU WVBFMywgRklOR0VSX1RZUEUzLCBGSU5HRVJfVFlQRTMgKyBTSVpFT0ZfQUxMX0ZJTkdFUlMsDQor CQl7IERJTV9QUkVTU1VSRSwgRElNX1BSRVNTVVJFIC8gU05fUFJFU1NVUkUsIDAsIDMwMCB9LA0K KwkJeyBESU1fV0lEVEgsIERJTV9XSURUSCAvIFNOX1dJRFRILCAwLCAyMDQ4IH0sDQorCQl7IERJ TV9YLCBESU1fWCAvIFNOX0NPT1JELCAtNDYyMCwgNTE0MCB9LA0KKwkJeyBESU1fWSwgRElNX1kg LyBTTl9DT09SRCwgLTE1MCwgNjYwMCB9LA0KKwl9LA0KIAl7fQ0KIH07DQogDQpAQCAtNTg0LDYg KzYyNyw5IEBAIHN0YXRpYyBpbnQgcmVwb3J0X3RwX3N0YXRlKHN0cnVjdCBiY201OTc0ICpkZXYs IGludCBzaXplKQ0KIAlpZiAoYy0+dHBfdHlwZSA9PSBUWVBFMikNCiAJCWlucHV0X3JlcG9ydF9r ZXkoaW5wdXQsIEJUTl9MRUZULCBpYnQpOw0KIA0KKwlpZiAoYy0+dHBfdHlwZSA9PSBUWVBFMykN CisJCWlucHV0X3JlcG9ydF9rZXkoaW5wdXQsIEJUTl9MRUZULCBkZXYtPnRwX2RhdGFbQlVUVE9O X1RZUEUzXSk7DQorDQogCWlucHV0X3N5bmMoaW5wdXQpOw0KIA0KIAlyZXR1cm4gMDsNCkBAIC01 OTksOSArNjQ1LDE0IEBAIHN0YXRpYyBpbnQgcmVwb3J0X3RwX3N0YXRlKHN0cnVjdCBiY201OTc0 ICpkZXYsIGludCBzaXplKQ0KIA0KIHN0YXRpYyBpbnQgYmNtNTk3NF93ZWxsc3ByaW5nX21vZGUo c3RydWN0IGJjbTU5NzQgKmRldiwgYm9vbCBvbikNCiB7DQotCWNoYXIgKmRhdGEgPSBrbWFsbG9j KDgsIEdGUF9LRVJORUwpOw0KIAlpbnQgcmV0dmFsID0gMCwgc2l6ZTsNCisJY2hhciAqZGF0YTsN CisNCisJLyogVHlwZSAzIGRvZXMgbm90IHJlcXVpcmUgYSBtb2RlIHN3aXRjaCAqLw0KKwlpZiAo ZGV2LT5jZmcudHBfdHlwZSA9PSBUWVBFMykNCisJCXJldHVybiAwOw0KIA0KKwlkYXRhID0ga21h bGxvYyg4LCBHRlBfS0VSTkVMKTsNCiAJaWYgKCFkYXRhKSB7DQogCQllcnIoImJjbTU5NzQ6IG91 dCBvZiBtZW1vcnkiKTsNCiAJCXJldHZhbCA9IC1FTk9NRU07DQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9pb21tdS9hbWRfaW9tbXUuYyBiL2RyaXZlcnMvaW9tbXUvYW1kX2lvbW11LmMNCmluZGV4IDA3 Y2IxYTYuLjZjYzhlNjcgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2lvbW11L2FtZF9pb21tdS5jDQor KysgYi9kcml2ZXJzL2lvbW11L2FtZF9pb21tdS5jDQpAQCAtMTA3Niw2ICsxMDc2LDEwIEBAIHN0 YXRpYyB1bnNpZ25lZCBsb25nIGlvbW11X3VubWFwX3BhZ2Uoc3RydWN0IHByb3RlY3Rpb25fZG9t YWluICpkb20sDQogDQogCQkJLyogTGFyZ2UgUFRFIGZvdW5kIHdoaWNoIG1hcHMgdGhpcyBhZGRy ZXNzICovDQogCQkJdW5tYXBfc2l6ZSA9IFBURV9QQUdFX1NJWkUoKnB0ZSk7DQorDQorCQkJLyog T25seSB1bm1hcCBmcm9tIHRoZSBmaXJzdCBwdGUgaW4gdGhlIHBhZ2UgKi8NCisJCQlpZiAoKHVu bWFwX3NpemUgLSAxKSAmIGJ1c19hZGRyKQ0KKwkJCQlicmVhazsNCiAJCQljb3VudCAgICAgID0g UEFHRV9TSVpFX1BURV9DT1VOVCh1bm1hcF9zaXplKTsNCiAJCQlmb3IgKGkgPSAwOyBpIDwgY291 bnQ7IGkrKykNCiAJCQkJcHRlW2ldID0gMFVMTDsNCkBAIC0xMDg1LDcgKzEwODksNyBAQCBzdGF0 aWMgdW5zaWduZWQgbG9uZyBpb21tdV91bm1hcF9wYWdlKHN0cnVjdCBwcm90ZWN0aW9uX2RvbWFp biAqZG9tLA0KIAkJdW5tYXBwZWQgKz0gdW5tYXBfc2l6ZTsNCiAJfQ0KIA0KLQlCVUdfT04oIWlz X3Bvd2VyX29mXzIodW5tYXBwZWQpKTsNCisJQlVHX09OKHVubWFwcGVkICYmICFpc19wb3dlcl9v Zl8yKHVubWFwcGVkKSk7DQogDQogCXJldHVybiB1bm1hcHBlZDsNCiB9DQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9tZWRpYS9kdmIvZHZiLWNvcmUvZG14ZGV2LmMgYi9kcml2ZXJzL21lZGlhL2R2Yi9k dmItY29yZS9kbXhkZXYuYw0KaW5kZXggZTRiNWMwMy4uNGY4YzNmNyAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvbWVkaWEvZHZiL2R2Yi1jb3JlL2RteGRldi5jDQorKysgYi9kcml2ZXJzL21lZGlhL2R2 Yi9kdmItY29yZS9kbXhkZXYuYw0KQEAgLTM4MCwxMCArMzgwLDggQEAgc3RhdGljIGludCBkdmJf ZG14ZGV2X3NlY3Rpb25fY2FsbGJhY2soY29uc3QgdTggKmJ1ZmZlcjEsIHNpemVfdCBidWZmZXIx X2xlbiwNCiAJCXJldCA9IGR2Yl9kbXhkZXZfYnVmZmVyX3dyaXRlKCZkbXhkZXZmaWx0ZXItPmJ1 ZmZlciwgYnVmZmVyMiwNCiAJCQkJCSAgICAgIGJ1ZmZlcjJfbGVuKTsNCiAJfQ0KLQlpZiAocmV0 IDwgMCkgew0KLQkJZHZiX3JpbmdidWZmZXJfZmx1c2goJmRteGRldmZpbHRlci0+YnVmZmVyKTsN CisJaWYgKHJldCA8IDApDQogCQlkbXhkZXZmaWx0ZXItPmJ1ZmZlci5lcnJvciA9IHJldDsNCi0J fQ0KIAlpZiAoZG14ZGV2ZmlsdGVyLT5wYXJhbXMuc2VjLmZsYWdzICYgRE1YX09ORVNIT1QpDQog CQlkbXhkZXZmaWx0ZXItPnN0YXRlID0gRE1YREVWX1NUQVRFX0RPTkU7DQogCXNwaW5fdW5sb2Nr KCZkbXhkZXZmaWx0ZXItPmRldi0+bG9jayk7DQpAQCAtNDE5LDEwICs0MTcsOCBAQCBzdGF0aWMg aW50IGR2Yl9kbXhkZXZfdHNfY2FsbGJhY2soY29uc3QgdTggKmJ1ZmZlcjEsIHNpemVfdCBidWZm ZXIxX2xlbiwNCiAJcmV0ID0gZHZiX2RteGRldl9idWZmZXJfd3JpdGUoYnVmZmVyLCBidWZmZXIx LCBidWZmZXIxX2xlbik7DQogCWlmIChyZXQgPT0gYnVmZmVyMV9sZW4pDQogCQlyZXQgPSBkdmJf ZG14ZGV2X2J1ZmZlcl93cml0ZShidWZmZXIsIGJ1ZmZlcjIsIGJ1ZmZlcjJfbGVuKTsNCi0JaWYg KHJldCA8IDApIHsNCi0JCWR2Yl9yaW5nYnVmZmVyX2ZsdXNoKGJ1ZmZlcik7DQorCWlmIChyZXQg PCAwKQ0KIAkJYnVmZmVyLT5lcnJvciA9IHJldDsNCi0JfQ0KIAlzcGluX3VubG9jaygmZG14ZGV2 ZmlsdGVyLT5kZXYtPmxvY2spOw0KIAl3YWtlX3VwKCZidWZmZXItPnF1ZXVlKTsNCiAJcmV0dXJu IDA7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vdGczLmMgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuYw0KaW5kZXggMWJjOTI3YS4uZWZiNWFl MSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3RnMy5jDQorKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuYw0KQEAgLTY4OCw2ICs2ODgsOSBA QCBzdGF0aWMgaW50IHRnM19hcGVfbG9jayhzdHJ1Y3QgdGczICp0cCwgaW50IGxvY2tudW0pDQog CQlzdGF0dXMgPSB0ZzNfYXBlX3JlYWQzMih0cCwgZ250ICsgb2ZmKTsNCiAJCWlmIChzdGF0dXMg PT0gYml0KQ0KIAkJCWJyZWFrOw0KKwkJaWYgKHBjaV9jaGFubmVsX29mZmxpbmUodHAtPnBkZXYp KQ0KKwkJCWJyZWFrOw0KKw0KIAkJdWRlbGF5KDEwKTsNCiAJfQ0KIA0KQEAgLTE0NjUsNiArMTQ2 OCw5IEBAIHN0YXRpYyB2b2lkIHRnM193YWl0X2Zvcl9ldmVudF9hY2soc3RydWN0IHRnMyAqdHAp DQogCWZvciAoaSA9IDA7IGkgPCBkZWxheV9jbnQ7IGkrKykgew0KIAkJaWYgKCEodHIzMihHUkNf UlhfQ1BVX0VWRU5UKSAmIEdSQ19SWF9DUFVfRFJJVkVSX0VWRU5UKSkNCiAJCQlicmVhazsNCisJ CWlmIChwY2lfY2hhbm5lbF9vZmZsaW5lKHRwLT5wZGV2KSkNCisJCQlicmVhazsNCisNCiAJCXVk ZWxheSg4KTsNCiAJfQ0KIH0NCkBAIC0xNjI4LDYgKzE2MzQsOSBAQCBzdGF0aWMgaW50IHRnM19w b2xsX2Z3KHN0cnVjdCB0ZzMgKnRwKQ0KIAkJZm9yIChpID0gMDsgaSA8IDIwMDsgaSsrKSB7DQog CQkJaWYgKHRyMzIoVkNQVV9TVEFUVVMpICYgVkNQVV9TVEFUVVNfSU5JVF9ET05FKQ0KIAkJCQly ZXR1cm4gMDsNCisJCQlpZiAocGNpX2NoYW5uZWxfb2ZmbGluZSh0cC0+cGRldikpDQorCQkJCXJl dHVybiAtRU5PREVWOw0KKw0KIAkJCXVkZWxheSgxMDApOw0KIAkJfQ0KIAkJcmV0dXJuIC1FTk9E RVY7DQpAQCAtMTYzOCw2ICsxNjQ3LDE1IEBAIHN0YXRpYyBpbnQgdGczX3BvbGxfZncoc3RydWN0 IHRnMyAqdHApDQogCQl0ZzNfcmVhZF9tZW0odHAsIE5JQ19TUkFNX0ZJUk1XQVJFX01CT1gsICZ2 YWwpOw0KIAkJaWYgKHZhbCA9PSB+TklDX1NSQU1fRklSTVdBUkVfTUJPWF9NQUdJQzEpDQogCQkJ YnJlYWs7DQorCQlpZiAocGNpX2NoYW5uZWxfb2ZmbGluZSh0cC0+cGRldikpIHsNCisJCQlpZiAo IXRnM19mbGFnKHRwLCBOT19GV0FSRV9SRVBPUlRFRCkpIHsNCisJCQkJdGczX2ZsYWdfc2V0KHRw LCBOT19GV0FSRV9SRVBPUlRFRCk7DQorCQkJCW5ldGRldl9pbmZvKHRwLT5kZXYsICJObyBmaXJt d2FyZSBydW5uaW5nXG4iKTsNCisJCQl9DQorDQorCQkJYnJlYWs7DQorCQl9DQorDQogCQl1ZGVs YXkoMTApOw0KIAl9DQogDQpAQCAtMzA2Nyw2ICszMDg1LDEwIEBAIHN0YXRpYyBpbnQgdGczX2hh bHRfY3B1KHN0cnVjdCB0ZzMgKnRwLCB1MzIgb2Zmc2V0KQ0KIAkJCXR3MzIob2Zmc2V0ICsgQ1BV X01PREUsICBDUFVfTU9ERV9IQUxUKTsNCiAJCQlpZiAodHIzMihvZmZzZXQgKyBDUFVfTU9ERSkg JiBDUFVfTU9ERV9IQUxUKQ0KIAkJCQlicmVhazsNCisJCQlpZiAocGNpX2NoYW5uZWxfb2ZmbGlu ZSh0cC0+cGRldikpDQorCQkJCXJldHVybiAtRUJVU1k7DQorCQkJaWYgKHBjaV9jaGFubmVsX29m ZmxpbmUodHAtPnBkZXYpKQ0KKwkJCQlyZXR1cm4gLUVCVVNZOw0KIAkJfQ0KIA0KIAkJdHczMihv ZmZzZXQgKyBDUFVfU1RBVEUsIDB4ZmZmZmZmZmYpOw0KQEAgLTc1NjksNiArNzU5MSwxNCBAQCBz dGF0aWMgaW50IHRnM19zdG9wX2Jsb2NrKHN0cnVjdCB0ZzMgKnRwLCB1bnNpZ25lZCBsb25nIG9m cywgdTMyIGVuYWJsZV9iaXQsIGludA0KIAl0dzMyX2Yob2ZzLCB2YWwpOw0KIA0KIAlmb3IgKGkg PSAwOyBpIDwgTUFYX1dBSVRfQ05UOyBpKyspIHsNCisJCWlmIChwY2lfY2hhbm5lbF9vZmZsaW5l KHRwLT5wZGV2KSkgew0KKwkJCWRldl9lcnIoJnRwLT5wZGV2LT5kZXYsDQorCQkJCSJ0ZzNfc3Rv cF9ibG9jayBkZXZpY2Ugb2ZmbGluZSwgIg0KKwkJCQkib2ZzPSVseCBlbmFibGVfYml0PSV4XG4i LA0KKwkJCQlvZnMsIGVuYWJsZV9iaXQpOw0KKwkJCXJldHVybiAtRU5PREVWOw0KKwkJfQ0KKw0K IAkJdWRlbGF5KDEwMCk7DQogCQl2YWwgPSB0cjMyKG9mcyk7DQogCQlpZiAoKHZhbCAmIGVuYWJs ZV9iaXQpID09IDApDQpAQCAtNzU5Miw2ICs3NjIyLDEzIEBAIHN0YXRpYyBpbnQgdGczX2Fib3J0 X2h3KHN0cnVjdCB0ZzMgKnRwLCBpbnQgc2lsZW50KQ0KIA0KIAl0ZzNfZGlzYWJsZV9pbnRzKHRw KTsNCiANCisJaWYgKHBjaV9jaGFubmVsX29mZmxpbmUodHAtPnBkZXYpKSB7DQorCQl0cC0+cnhf bW9kZSAmPSB+KFJYX01PREVfRU5BQkxFIHwgVFhfTU9ERV9FTkFCTEUpOw0KKwkJdHAtPm1hY19t b2RlICY9IH5NQUNfTU9ERV9UREVfRU5BQkxFOw0KKwkJZXJyID0gLUVOT0RFVjsNCisJCWdvdG8g ZXJyX25vX2RldjsNCisJfQ0KKw0KIAl0cC0+cnhfbW9kZSAmPSB+UlhfTU9ERV9FTkFCTEU7DQog CXR3MzJfZihNQUNfUlhfTU9ERSwgdHAtPnJ4X21vZGUpOw0KIAl1ZGVsYXkoMTApOw0KQEAgLTc2 NDAsNiArNzY3Nyw3IEBAIHN0YXRpYyBpbnQgdGczX2Fib3J0X2h3KHN0cnVjdCB0ZzMgKnRwLCBp bnQgc2lsZW50KQ0KIAllcnIgfD0gdGczX3N0b3BfYmxvY2sodHAsIEJVRk1HUl9NT0RFLCBCVUZN R1JfTU9ERV9FTkFCTEUsIHNpbGVudCk7DQogCWVyciB8PSB0ZzNfc3RvcF9ibG9jayh0cCwgTUVN QVJCX01PREUsIE1FTUFSQl9NT0RFX0VOQUJMRSwgc2lsZW50KTsNCiANCitlcnJfbm9fZGV2Og0K IAlmb3IgKGkgPSAwOyBpIDwgdHAtPmlycV9jbnQ7IGkrKykgew0KIAkJc3RydWN0IHRnM19uYXBp ICp0bmFwaSA9ICZ0cC0+bmFwaVtpXTsNCiAJCWlmICh0bmFwaS0+aHdfc3RhdHVzKQ0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYw0KaW5kZXggZWQ3YTVhNi4uYTNiZDBiYSAxMDA2NDQN Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYw0KKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jDQpAQCAtNTU4NCwxNCArNTU4NCw2IEBAIHN0 YXRpYyBuZXRkZXZfdHhfdCBydGw4MTY5X3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwN CiAJCWdvdG8gZXJyX3N0b3BfMDsNCiAJfQ0KIA0KLQkvKiA4MTY4ZXZsIGRvZXMgbm90IGF1dG9t YXRpY2FsbHkgcGFkIHRvIG1pbmltdW0gbGVuZ3RoLiAqLw0KLQlpZiAodW5saWtlbHkodHAtPm1h Y192ZXJzaW9uID09IFJUTF9HSUdBX01BQ19WRVJfMzQgJiYNCi0JCSAgICAgc2tiLT5sZW4gPCBF VEhfWkxFTikpIHsNCi0JCWlmIChza2JfcGFkdG8oc2tiLCBFVEhfWkxFTikpDQotCQkJZ290byBl cnJfdXBkYXRlX3N0YXRzOw0KLQkJc2tiX3B1dChza2IsIEVUSF9aTEVOIC0gc2tiLT5sZW4pOw0K LQl9DQotDQogCWlmICh1bmxpa2VseShsZTMyX3RvX2NwdSh0eGQtPm9wdHMxKSAmIERlc2NPd24p KQ0KIAkJZ290byBlcnJfc3RvcF8wOw0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dhbi9k bGNpLmMgYi9kcml2ZXJzL25ldC93YW4vZGxjaS5jDQppbmRleCA0OGFiMzhhLi4wMmM5MzllIDEw MDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2FuL2RsY2kuYw0KKysrIGIvZHJpdmVycy9uZXQvd2Fu L2RsY2kuYw0KQEAgLTM4NSwyMSArMzg1LDM3IEBAIHN0YXRpYyBpbnQgZGxjaV9kZWwoc3RydWN0 IGRsY2lfYWRkICpkbGNpKQ0KIAlzdHJ1Y3QgZnJhZF9sb2NhbAkqZmxwOw0KIAlzdHJ1Y3QgbmV0 X2RldmljZQkqbWFzdGVyLCAqc2xhdmU7DQogCWludAkJCWVycjsNCisJYm9vbAkJCWZvdW5kID0g ZmFsc2U7DQorDQorCXJ0bmxfbG9jaygpOw0KIA0KIAkvKiB2YWxpZGF0ZSBzbGF2ZSBkZXZpY2Ug Ki8NCiAJbWFzdGVyID0gX19kZXZfZ2V0X2J5X25hbWUoJmluaXRfbmV0LCBkbGNpLT5kZXZuYW1l KTsNCi0JaWYgKCFtYXN0ZXIpDQotCQlyZXR1cm4gLUVOT0RFVjsNCisJaWYgKCFtYXN0ZXIpIHsN CisJCWVyciA9IC1FTk9ERVY7DQorCQlnb3RvIG91dDsNCisJfQ0KKw0KKwlsaXN0X2Zvcl9lYWNo X2VudHJ5KGRscCwgJmRsY2lfZGV2cywgbGlzdCkgew0KKwkJaWYgKGRscC0+bWFzdGVyID09IG1h c3Rlcikgew0KKwkJCWZvdW5kID0gdHJ1ZTsNCisJCQlicmVhazsNCisJCX0NCisJfQ0KKwlpZiAo IWZvdW5kKSB7DQorCQllcnIgPSAtRU5PREVWOw0KKwkJZ290byBvdXQ7DQorCX0NCiANCiAJaWYg KG5ldGlmX3J1bm5pbmcobWFzdGVyKSkgew0KLQkJcmV0dXJuIC1FQlVTWTsNCisJCWVyciA9IC1F QlVTWTsNCisJCWdvdG8gb3V0Ow0KIAl9DQogDQogCWRscCA9IG5ldGRldl9wcml2KG1hc3Rlcik7 DQogCXNsYXZlID0gZGxwLT5zbGF2ZTsNCiAJZmxwID0gbmV0ZGV2X3ByaXYoc2xhdmUpOw0KIA0K LQlydG5sX2xvY2soKTsNCiAJZXJyID0gKCpmbHAtPmRlYXNzb2MpKHNsYXZlLCBtYXN0ZXIpOw0K IAlpZiAoIWVycikgew0KIAkJbGlzdF9kZWwoJmRscC0+bGlzdCk7DQpAQCAtNDA4LDggKzQyNCw4 IEBAIHN0YXRpYyBpbnQgZGxjaV9kZWwoc3RydWN0IGRsY2lfYWRkICpkbGNpKQ0KIA0KIAkJZGV2 X3B1dChzbGF2ZSk7DQogCX0NCitvdXQ6DQogCXJ0bmxfdW5sb2NrKCk7DQotDQogCXJldHVybiBl cnI7DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9h cjkwMDNfZWVwcm9tLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAzX2Vl cHJvbS5jDQppbmRleCAzYjI2MmJhLi5jNDFlYjlkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwM19lZXByb20uYw0KKysrIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDlrL2FyOTAwM19lZXByb20uYw0KQEAgLTM2MjUsNyArMzYyNSw3IEBAIHN0 YXRpYyB1MTYgYXI5MDAzX2h3X2FudF9jdHJsX2NoYWluX2dldChzdHJ1Y3QgYXRoX2h3ICphaCwN CiBzdGF0aWMgdm9pZCBhcjkwMDNfaHdfYW50X2N0cmxfYXBwbHkoc3RydWN0IGF0aF9odyAqYWgs IGJvb2wgaXMyZ2h6KQ0KIHsNCiAJaW50IGNoYWluOw0KLQl1MzIgcmVndmFsOw0KKwl1MzIgcmVn dmFsLCB2YWx1ZTsNCiAJdTMyIGFudF9kaXZfY3RsMTsNCiAJc3RhdGljIGNvbnN0IHUzMiBzd2l0 Y2hfY2hhaW5fcmVnW0FSOTMwMF9NQVhfQ0hBSU5TXSA9IHsNCiAJCQlBUl9QSFlfU1dJVENIX0NI QUlOXzAsDQpAQCAtMzYzMyw3ICszNjMzLDExIEBAIHN0YXRpYyB2b2lkIGFyOTAwM19od19hbnRf Y3RybF9hcHBseShzdHJ1Y3QgYXRoX2h3ICphaCwgYm9vbCBpczJnaHopDQogCQkJQVJfUEhZX1NX SVRDSF9DSEFJTl8yLA0KIAl9Ow0KIA0KLQl1MzIgdmFsdWUgPSBhcjkwMDNfaHdfYW50X2N0cmxf Y29tbW9uX2dldChhaCwgaXMyZ2h6KTsNCisJaWYgKEFSX1NSRVZfOTQ4NShhaCkgJiYgKGFyOTAw M19od19nZXRfcnhfZ2Fpbl9pZHgoYWgpID09IDApKQ0KKwkJYXRoOWtfaHdfY2ZnX291dHB1dChh aCwgQVI5MzAwX0VYVF9MTkFfQ1RMX0dQSU9fQVI5NDg1LA0KKwkJCQkgICAgQVJfR1BJT19PVVRQ VVRfTVVYX0FTX1BDSUVfQVRURU5USU9OX0xFRCk7DQorDQorCXZhbHVlID0gYXI5MDAzX2h3X2Fu dF9jdHJsX2NvbW1vbl9nZXQoYWgsIGlzMmdoeik7DQogDQogCWlmIChBUl9TUkVWXzk0NjIoYWgp KSB7DQogCQlpZiAoQVJfU1JFVl85NDYyXzEwKGFoKSkgew0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDNfcGh5LmggYi9kcml2ZXJzL25ldC93aXJlbGVz cy9hdGgvYXRoOWsvYXI5MDAzX3BoeS5oDQppbmRleCA0MTE0ZmU3Li40ZTliNzFiIDEwMDY0NA0K LS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwM19waHkuaA0KKysrIGIv ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwM19waHkuaA0KQEAgLTMzNCw2ICsz MzQsOCBAQA0KIA0KICNkZWZpbmUgQVJfUEhZX0NDQV9OT01fVkFMXzkzMzBfMkdIWiAgICAgICAg ICAtMTE4DQogDQorI2RlZmluZSBBUjkzMDBfRVhUX0xOQV9DVExfR1BJT19BUjk0ODUgOQ0KKw0K IC8qDQogICogQUdDIEZpZWxkIERlZmluaXRpb25zDQogICovDQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2NhbGliLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9h dGgvYXRoOWsvY2FsaWIuYw0KaW5kZXggYmNhYmZiZi4uNWU1MjJlNCAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9jYWxpYi5jDQorKysgYi9kcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoOWsvY2FsaWIuYw0KQEAgLTM5MSw3ICszOTEsNiBAQCBib29sIGF0aDlr X2h3X2dldG5mKHN0cnVjdCBhdGhfaHcgKmFoLCBzdHJ1Y3QgYXRoOWtfY2hhbm5lbCAqY2hhbikN CiANCiAJaWYgKCFjYWxkYXRhKSB7DQogCQljaGFuLT5ub2lzZWZsb29yID0gbmY7DQotCQlhaC0+ bm9pc2UgPSBhdGg5a19od19nZXRjaGFuX25vaXNlKGFoLCBjaGFuKTsNCiAJCXJldHVybiBmYWxz ZTsNCiAJfQ0KIA0KQEAgLTQxMyw2ICs0MTIsNyBAQCB2b2lkIGF0aDlrX2luaXRfbmZjYWxfaGlz dF9idWZmZXIoc3RydWN0IGF0aF9odyAqYWgsDQogDQogCWFoLT5jYWxkYXRhLT5jaGFubmVsID0g Y2hhbi0+Y2hhbm5lbDsNCiAJYWgtPmNhbGRhdGEtPmNoYW5uZWxGbGFncyA9IGNoYW4tPmNoYW5u ZWxGbGFncyAmIH5DSEFOTkVMX0NXX0lOVDsNCisJYWgtPmNhbGRhdGEtPmNoYW5tb2RlID0gY2hh bi0+Y2hhbm1vZGU7DQogCWggPSBhaC0+Y2FsZGF0YS0+bmZDYWxIaXN0Ow0KIAlkZWZhdWx0X25m ID0gYXRoOWtfaHdfZ2V0X2RlZmF1bHRfbmYoYWgsIGNoYW4pOw0KIAlmb3IgKGkgPSAwOyBpIDwg TlVNX05GX1JFQURJTkdTOyBpKyspIHsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVz cy9hdGgvYXRoOWsvaHcuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9ody5jDQpp bmRleCAyYjhlOTU3Li5jNjIzNTI3IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3Mv YXRoL2F0aDlrL2h3LmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9ody5j DQpAQCAtMTU0MCw3ICsxNTQwLDggQEAgaW50IGF0aDlrX2h3X3Jlc2V0KHN0cnVjdCBhdGhfaHcg KmFoLCBzdHJ1Y3QgYXRoOWtfY2hhbm5lbCAqY2hhbiwNCiAJaWYgKGNhbGRhdGEgJiYNCiAJICAg IChjaGFuLT5jaGFubmVsICE9IGNhbGRhdGEtPmNoYW5uZWwgfHwNCiAJICAgICAoY2hhbi0+Y2hh bm5lbEZsYWdzICYgfkNIQU5ORUxfQ1dfSU5UKSAhPQ0KLQkgICAgIChjYWxkYXRhLT5jaGFubmVs RmxhZ3MgJiB+Q0hBTk5FTF9DV19JTlQpKSkgew0KKwkgICAgIChjYWxkYXRhLT5jaGFubmVsRmxh Z3MgJiB+Q0hBTk5FTF9DV19JTlQpIHx8DQorCSAgICAgY2hhbi0+Y2hhbm1vZGUgIT0gY2FsZGF0 YS0+Y2hhbm1vZGUpKSB7DQogCQkvKiBPcGVyYXRpbmcgY2hhbm5lbCBjaGFuZ2VkLCByZXNldCBj aGFubmVsIGNhbGlicmF0aW9uIGRhdGEgKi8NCiAJCW1lbXNldChjYWxkYXRhLCAwLCBzaXplb2Yo KmNhbGRhdGEpKTsNCiAJCWF0aDlrX2luaXRfbmZjYWxfaGlzdF9idWZmZXIoYWgsIGNoYW4pOw0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9ody5oIGIvZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2h3LmgNCmluZGV4IDBjNjVhMDkuLmRjNzc0Y2QgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHcuaA0KKysrIGIvZHJp dmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2h3LmgNCkBAIC0zNTIsNiArMzUyLDcgQEAgc3Ry dWN0IGF0aDlrX3J0dF9oaXN0IHsNCiBzdHJ1Y3QgYXRoOWtfaHdfY2FsX2RhdGEgew0KIAl1MTYg Y2hhbm5lbDsNCiAJdTMyIGNoYW5uZWxGbGFnczsNCisJdTMyIGNoYW5tb2RlOw0KIAlpbnQzMl90 IENhbFZhbGlkOw0KIAlpbnQ4X3QgaUNvZmY7DQogCWludDhfdCBxQ29mZjsNCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvbWFpbi5jIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDlrL21haW4uYw0KaW5kZXggZGYzZTI3Yy4uYTU5MjY3YSAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9tYWluLmMNCisrKyBiL2RyaXZlcnMv bmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9tYWluLmMNCkBAIC0xNjg4LDEzICsxNjg4LDYgQEAgc3Rh dGljIGludCBhdGg5a19jb25maWcoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHUzMiBjaGFuZ2Vk KQ0KIAkJYXRoX3VwZGF0ZV9zdXJ2ZXlfc3RhdHMoc2MpOw0KIAkJc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmY29tbW9uLT5jY19sb2NrLCBmbGFncyk7DQogDQotCQkvKg0KLQkJICogUHJlc2VydmUg dGhlIGN1cnJlbnQgY2hhbm5lbCB2YWx1ZXMsIGJlZm9yZSB1cGRhdGluZw0KLQkJICogdGhlIHNh bWUgY2hhbm5lbA0KLQkJICovDQotCQlpZiAoYWgtPmN1cmNoYW4gJiYgKG9sZF9wb3MgPT0gcG9z KSkNCi0JCQlhdGg5a19od19nZXRuZihhaCwgYWgtPmN1cmNoYW4pOw0KLQ0KIAkJYXRoOWtfY21u X3VwZGF0ZV9pY2hhbm5lbCgmc2MtPnNjX2FoLT5jaGFubmVsc1twb3NdLA0KIAkJCQkJICBjdXJj aGFuLCBjb25mLT5jaGFubmVsX3R5cGUpOw0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2I0My9LY29uZmlnIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL0tjb25maWcNCmlu ZGV4IGI5N2E0MGUuLjM2YTdjZTMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9i NDMvS2NvbmZpZw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL0tjb25maWcNCkBAIC0y OCwxMiArMjgsMTIgQEAgY29uZmlnIEI0Mw0KIA0KIGNvbmZpZyBCNDNfQkNNQQ0KIAlib29sICJT dXBwb3J0IGZvciBCQ01BIGJ1cyINCi0JZGVwZW5kcyBvbiBCNDMgJiYgQkNNQQ0KKwlkZXBlbmRz IG9uIEI0MyAmJiAoQkNNQSA9IHkgfHwgQkNNQSA9IEI0MykNCiAJZGVmYXVsdCB5DQogDQogY29u ZmlnIEI0M19TU0INCiAJYm9vbA0KLQlkZXBlbmRzIG9uIEI0MyAmJiBTU0INCisJZGVwZW5kcyBv biBCNDMgJiYgKFNTQiA9IHkgfHwgU1NCID0gQjQzKQ0KIAlkZWZhdWx0IHkNCiANCiAjIEF1dG8t c2VsZWN0IFNTQiBQQ0ktSE9TVCBzdXBwb3J0LCBpZiBwb3NzaWJsZQ0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL3J0bHdpZmkvcnRsODE5MmN1L3JmLmMgYi9kcml2ZXJzL25ldC93 aXJlbGVzcy9ydGx3aWZpL3J0bDgxOTJjdS9yZi5jDQppbmRleCAxZTg1MWFhLi4xN2E4ZTk2IDEw MDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9ydGw4MTkyY3UvcmYuYw0K KysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9ydGw4MTkyY3UvcmYuYw0KQEAgLTEw NCw3ICsxMDQsNyBAQCB2b2lkIHJ0bDkyY3VfcGh5X3JmNjA1Ml9zZXRfY2NrX3R4cG93ZXIoc3Ry dWN0IGllZWU4MDIxMV9odyAqaHcsDQogCQkJdHhfYWdjW1JGOTBfUEFUSF9BXSA9IDB4MTAxMDEw MTA7DQogCQkJdHhfYWdjW1JGOTBfUEFUSF9CXSA9IDB4MTAxMDEwMTA7DQogCQl9IGVsc2UgaWYg KHJ0bHByaXYtPmRtLmR5bmFtaWNfdHhoaWdocG93ZXJfbHZsID09DQotCQkJICAgVFhISUdIUFdS TEVWRUxfTEVWRUwxKSB7DQorCQkJICAgVFhISUdIUFdSTEVWRUxfTEVWRUwyKSB7DQogCQkJdHhf YWdjW1JGOTBfUEFUSF9BXSA9IDB4MDAwMDAwMDA7DQogCQkJdHhfYWdjW1JGOTBfUEFUSF9CXSA9 IDB4MDAwMDAwMDA7DQogCQl9IGVsc2V7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxl c3MvcnRsd2lmaS9ydGw4MTkyY3Uvc3cuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bHdpZmkv cnRsODE5MmN1L3N3LmMNCmluZGV4IDA5ODRkY2YuLjAxNmVmODYgMTAwNjQ0DQotLS0gYS9kcml2 ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3J0bDgxOTJjdS9zdy5jDQorKysgYi9kcml2ZXJzL25l dC93aXJlbGVzcy9ydGx3aWZpL3J0bDgxOTJjdS9zdy5jDQpAQCAtMzY3LDYgKzM2Nyw3IEBAIHN0 YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydGw4MTkyY191c2JfaWRzW10gPSB7DQogCXtSVExf VVNCX0RFVklDRSgweDIwMDEsIDB4MzMwYSwgcnRsOTJjdV9oYWxfY2ZnKX0sIC8qRC1MaW5rLUFs cGhhKi8NCiAJe1JUTF9VU0JfREVWSUNFKDB4MjAxOSwgMHhhYjJiLCBydGw5MmN1X2hhbF9jZmcp fSwgLypQbGFuZXggLUFib2NvbSovDQogCXtSVExfVVNCX0RFVklDRSgweDIwZjQsIDB4NjI0ZCwg cnRsOTJjdV9oYWxfY2ZnKX0sIC8qVFJFTkROZXQqLw0KKwl7UlRMX1VTQl9ERVZJQ0UoMHgyMzU3 LCAweDAxMDAsIHJ0bDkyY3VfaGFsX2NmZyl9LCAvKlRQLUxpbmsgV044MjAwTkQqLw0KIAl7UlRM X1VTQl9ERVZJQ0UoMHg3MzkyLCAweDc4MjIsIHJ0bDkyY3VfaGFsX2NmZyl9LCAvKkVkaW1heCAt RWRpbWF4Ki8NCiAJe30NCiB9Ow0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3F1aXJrcy5jIGIv ZHJpdmVycy9wY2kvcXVpcmtzLmMNCmluZGV4IGNhYjI0ZjcuLmYwYzhjNWQgMTAwNjQ0DQotLS0g YS9kcml2ZXJzL3BjaS9xdWlya3MuYw0KKysrIGIvZHJpdmVycy9wY2kvcXVpcmtzLmMNCkBAIC0x MTIzLDYgKzExMjMsOCBAQCBERUNMQVJFX1BDSV9GSVhVUF9IRUFERVIoUENJX1ZFTkRPUl9JRF9B VEksIFBDSV9ERVZJQ0VfSURfQVRJX0lYUDcwMF9TQVRBLCBxdWlyaw0KIERFQ0xBUkVfUENJX0ZJ WFVQX1JFU1VNRV9FQVJMWShQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfSVhQ NzAwX1NBVEEsIHF1aXJrX2FtZF9pZGVfbW9kZSk7DQogREVDTEFSRV9QQ0lfRklYVVBfSEVBREVS KFBDSV9WRU5ET1JfSURfQU1ELCBQQ0lfREVWSUNFX0lEX0FNRF9IVURTT04yX1NBVEFfSURFLCBx dWlya19hbWRfaWRlX21vZGUpOw0KIERFQ0xBUkVfUENJX0ZJWFVQX1JFU1VNRV9FQVJMWShQQ0lf VkVORE9SX0lEX0FNRCwgUENJX0RFVklDRV9JRF9BTURfSFVEU09OMl9TQVRBX0lERSwgcXVpcmtf YW1kX2lkZV9tb2RlKTsNCitERUNMQVJFX1BDSV9GSVhVUF9IRUFERVIoUENJX1ZFTkRPUl9JRF9B TUQsIDB4NzkwMCwgcXVpcmtfYW1kX2lkZV9tb2RlKTsNCitERUNMQVJFX1BDSV9GSVhVUF9SRVNV TUVfRUFSTFkoUENJX1ZFTkRPUl9JRF9BTUQsIDB4NzkwMCwgcXVpcmtfYW1kX2lkZV9tb2RlKTsN CiANCiAvKg0KICAqCVNlcnZlcndvcmtzIENTQjUgSURFIGRvZXMgbm90IGZ1bGx5IHN1cHBvcnQg bmF0aXZlIG1vZGUNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtcnYzMDI5YzIuYyBiL2Ry aXZlcnMvcnRjL3J0Yy1ydjMwMjljMi5jDQppbmRleCBlYTA5ZmYyLi41MzE3ZDk0IDEwMDY0NA0K LS0tIGEvZHJpdmVycy9ydGMvcnRjLXJ2MzAyOWMyLmMNCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1y djMwMjljMi5jDQpAQCAtMzEwLDcgKzMxMCw3IEBAIHN0YXRpYyBpbnQgcnYzMDI5YzJfcnRjX2ky Y19zZXRfYWxhcm0oc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwNCiAJCWRldl9kYmcoJmNsaWVu dC0+ZGV2LCAiYWxhcm0gSVJRIGFybWVkXG4iKTsNCiAJfSBlbHNlIHsNCiAJCS8qIGRpc2FibGUg QUlFIGlycSAqLw0KLQkJcmV0ID0gcnYzMDI5YzJfcnRjX2kyY19hbGFybV9zZXRfaXJxKGNsaWVu dCwgMSk7DQorCQlyZXQgPSBydjMwMjljMl9ydGNfaTJjX2FsYXJtX3NldF9pcnEoY2xpZW50LCAw KTsNCiAJCWlmIChyZXQpDQogCQkJcmV0dXJuIHJldDsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJz L3MzOTAvc2NzaS96ZmNwX2F1eC5jIGIvZHJpdmVycy9zMzkwL3Njc2kvemZjcF9hdXguYw0KaW5k ZXggNGYxYjEwYi4uMzc0M2FjOSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvczM5MC9zY3NpL3pmY3Bf YXV4LmMNCisrKyBiL2RyaXZlcnMvczM5MC9zY3NpL3pmY3BfYXV4LmMNCkBAIC0zLDcgKzMsNyBA QA0KICAqDQogICogTW9kdWxlIGludGVyZmFjZSBhbmQgaGFuZGxpbmcgb2YgemZjcCBkYXRhIHN0 cnVjdHVyZXMuDQogICoNCi0gKiBDb3B5cmlnaHQgSUJNIENvcnBvcmF0aW9uIDIwMDIsIDIwMTAN CisgKiBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDIsIDIwMTMNCiAgKi8NCiANCiAvKg0KQEAgLTIz LDYgKzIzLDcgQEANCiAgKiAgICAgICAgICAgIENocmlzdG9mIFNjaG1pdHQNCiAgKiAgICAgICAg ICAgIE1hcnRpbiBQZXRlcm1hbm4NCiAgKiAgICAgICAgICAgIFN2ZW4gU2NodWV0eg0KKyAqICAg ICAgICAgICAgU3RlZmZlbiBNYWllcg0KICAqLw0KIA0KICNkZWZpbmUgS01TR19DT01QT05FTlQg InpmY3AiDQpAQCAtNDE1LDYgKzQxNiw4IEBAIHN0cnVjdCB6ZmNwX2FkYXB0ZXIgKnpmY3BfYWRh cHRlcl9lbnF1ZXVlKHN0cnVjdCBjY3dfZGV2aWNlICpjY3dfZGV2aWNlKQ0KIAlhZGFwdGVyLT5k bWFfcGFybXMubWF4X3NlZ21lbnRfc2l6ZSA9IFpGQ1BfUURJT19TQkFMRV9MRU47DQogCWFkYXB0 ZXItPmNjd19kZXZpY2UtPmRldi5kbWFfcGFybXMgPSAmYWRhcHRlci0+ZG1hX3Bhcm1zOw0KIA0K KwlhZGFwdGVyLT5zdGF0X3JlYWRfYnVmX251bSA9IEZTRl9TVEFUVVNfUkVBRFNfUkVDT007DQor DQogCWlmICghemZjcF9zY3NpX2FkYXB0ZXJfcmVnaXN0ZXIoYWRhcHRlcikpDQogCQlyZXR1cm4g YWRhcHRlcjsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvc2NzaS96ZmNwX2ZzZi5jIGIv ZHJpdmVycy9zMzkwL3Njc2kvemZjcF9mc2YuYw0KaW5kZXggOGM4NDlmMC4uOGJmZDU3OSAxMDA2 NDQNCi0tLSBhL2RyaXZlcnMvczM5MC9zY3NpL3pmY3BfZnNmLmMNCisrKyBiL2RyaXZlcnMvczM5 MC9zY3NpL3pmY3BfZnNmLmMNCkBAIC0zLDcgKzMsNyBAQA0KICAqDQogICogSW1wbGVtZW50YXRp b24gb2YgRlNGIGNvbW1hbmRzLg0KICAqDQotICogQ29weXJpZ2h0IElCTSBDb3Jwb3JhdGlvbiAy MDAyLCAyMDEwDQorICogQ29weXJpZ2h0IElCTSBDb3JwLiAyMDAyLCAyMDEzDQogICovDQogDQog I2RlZmluZSBLTVNHX0NPTVBPTkVOVCAiemZjcCINCkBAIC00NTUsMTEgKzQ1NSw4IEBAIHN0YXRp YyBpbnQgemZjcF9mc2ZfZXhjaGFuZ2VfY29uZmlnX2V2YWx1YXRlKHN0cnVjdCB6ZmNwX2ZzZl9y ZXEgKnJlcSkNCiANCiAJZmNfaG9zdF9wb3J0X25hbWUoc2hvc3QpID0gbnNwLT5mbF93d3BuOw0K IAlmY19ob3N0X25vZGVfbmFtZShzaG9zdCkgPSBuc3AtPmZsX3d3bm47DQotCWZjX2hvc3RfcG9y dF9pZChzaG9zdCkgPSBudG9oMjQoYm90dG9tLT5zX2lkKTsNCi0JZmNfaG9zdF9zcGVlZChzaG9z dCkgPSBib3R0b20tPmZjX2xpbmtfc3BlZWQ7DQogCWZjX2hvc3Rfc3VwcG9ydGVkX2NsYXNzZXMo c2hvc3QpID0gRkNfQ09TX0NMQVNTMiB8IEZDX0NPU19DTEFTUzM7DQogDQotCWFkYXB0ZXItPmh5 ZHJhX3ZlcnNpb24gPSBib3R0b20tPmFkYXB0ZXJfdHlwZTsNCiAJYWRhcHRlci0+dGltZXJfdGlj a3MgPSBib3R0b20tPnRpbWVyX2ludGVydmFsICYgWkZDUF9GU0ZfVElNRVJfSU5UX01BU0s7DQog CWFkYXB0ZXItPnN0YXRfcmVhZF9idWZfbnVtID0gbWF4KGJvdHRvbS0+c3RhdHVzX3JlYWRfYnVm X251bSwNCiAJCQkJCSAodTE2KUZTRl9TVEFUVVNfUkVBRFNfUkVDT00pOw0KQEAgLTQ2Nyw2ICs0 NjQsMTggQEAgc3RhdGljIGludCB6ZmNwX2ZzZl9leGNoYW5nZV9jb25maWdfZXZhbHVhdGUoc3Ry dWN0IHpmY3BfZnNmX3JlcSAqcmVxKQ0KIAlpZiAoZmNfaG9zdF9wZXJtYW5lbnRfcG9ydF9uYW1l KHNob3N0KSA9PSAtMSkNCiAJCWZjX2hvc3RfcGVybWFuZW50X3BvcnRfbmFtZShzaG9zdCkgPSBm Y19ob3N0X3BvcnRfbmFtZShzaG9zdCk7DQogDQorCXpmY3Bfc2NzaV9zZXRfcHJvdChhZGFwdGVy KTsNCisNCisJLyogbm8gZXJyb3IgcmV0dXJuIGFib3ZlIGhlcmUsIG90aGVyd2lzZSBtdXN0IGZp eCBjYWxsIGNoYWlucyAqLw0KKwkvKiBkbyBub3QgZXZhbHVhdGUgaW52YWxpZCBmaWVsZHMgKi8N CisJaWYgKHJlcS0+cXRjYi0+aGVhZGVyLmZzZl9zdGF0dXMgPT0gRlNGX0VYQ0hBTkdFX0NPTkZJ R19EQVRBX0lOQ09NUExFVEUpDQorCQlyZXR1cm4gMDsNCisNCisJZmNfaG9zdF9wb3J0X2lkKHNo b3N0KSA9IG50b2gyNChib3R0b20tPnNfaWQpOw0KKwlmY19ob3N0X3NwZWVkKHNob3N0KSA9IGJv dHRvbS0+ZmNfbGlua19zcGVlZDsNCisNCisJYWRhcHRlci0+aHlkcmFfdmVyc2lvbiA9IGJvdHRv bS0+YWRhcHRlcl90eXBlOw0KKw0KIAlzd2l0Y2ggKGJvdHRvbS0+ZmNfdG9wb2xvZ3kpIHsNCiAJ Y2FzZSBGU0ZfVE9QT19QMlA6DQogCQlhZGFwdGVyLT5wZWVyX2RfaWQgPSBudG9oMjQoYm90dG9t LT5wZWVyX2RfaWQpOw0KQEAgLTQ4OCw4ICs0OTcsNiBAQCBzdGF0aWMgaW50IHpmY3BfZnNmX2V4 Y2hhbmdlX2NvbmZpZ19ldmFsdWF0ZShzdHJ1Y3QgemZjcF9mc2ZfcmVxICpyZXEpDQogCQlyZXR1 cm4gLUVJTzsNCiAJfQ0KIA0KLQl6ZmNwX3Njc2lfc2V0X3Byb3QoYWRhcHRlcik7DQotDQogCXJl dHVybiAwOw0KIH0NCiANCkBAIC01MzQsOCArNTQxLDE0IEBAIHN0YXRpYyB2b2lkIHpmY3BfZnNm X2V4Y2hhbmdlX2NvbmZpZ19kYXRhX2hhbmRsZXIoc3RydWN0IHpmY3BfZnNmX3JlcSAqcmVxKQ0K IAkJZmNfaG9zdF9wb3J0X3R5cGUoc2hvc3QpID0gRkNfUE9SVFRZUEVfVU5LTk9XTjsNCiAJCWFk YXB0ZXItPmh5ZHJhX3ZlcnNpb24gPSAwOw0KIA0KKwkJLyogYXZvaWRzIGFkYXB0ZXIgc2h1dGRv d24gdG8gYmUgYWJsZSB0byByZWNvZ25pemUNCisJCSAqIGV2ZW50cyBzdWNoIGFzIExJTksgVVAg Ki8NCisJCWF0b21pY19zZXRfbWFzayhaRkNQX1NUQVRVU19BREFQVEVSX1hDT05GSUdfT0ssDQor CQkJCSZhZGFwdGVyLT5zdGF0dXMpOw0KIAkJemZjcF9mc2ZfbGlua19kb3duX2luZm9fZXZhbChy ZXEsDQogCQkJJnF0Y2ItPmhlYWRlci5mc2Zfc3RhdHVzX3F1YWwubGlua19kb3duX2luZm8pOw0K KwkJaWYgKHpmY3BfZnNmX2V4Y2hhbmdlX2NvbmZpZ19ldmFsdWF0ZShyZXEpKQ0KKwkJCXJldHVy bjsNCiAJCWJyZWFrOw0KIAlkZWZhdWx0Og0KIAkJemZjcF9lcnBfYWRhcHRlcl9zaHV0ZG93bihh ZGFwdGVyLCAwLCAiZnNlY2RoMyIpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9zY3NpL3pm Y3Bfc2NzaS5jIGIvZHJpdmVycy9zMzkwL3Njc2kvemZjcF9zY3NpLmMNCmluZGV4IGI3OTU3NmIu LjdiMzUzNjQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3MzOTAvc2NzaS96ZmNwX3Njc2kuYw0KKysr IGIvZHJpdmVycy9zMzkwL3Njc2kvemZjcF9zY3NpLmMNCkBAIC0zLDcgKzMsNyBAQA0KICAqDQog ICogSW50ZXJmYWNlIHRvIExpbnV4IFNDU0kgbWlkbGF5ZXIuDQogICoNCi0gKiBDb3B5cmlnaHQg SUJNIENvcnBvcmF0aW9uIDIwMDIsIDIwMTANCisgKiBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDIs IDIwMTMNCiAgKi8NCiANCiAjZGVmaW5lIEtNU0dfQ09NUE9ORU5UICJ6ZmNwIg0KQEAgLTMxMSw4 ICszMTEsMTIgQEAgc3RhdGljIHN0cnVjdCBzY3NpX2hvc3RfdGVtcGxhdGUgemZjcF9zY3NpX2hv c3RfdGVtcGxhdGUgPSB7DQogCS5wcm9jX25hbWUJCSA9ICJ6ZmNwIiwNCiAJLmNhbl9xdWV1ZQkJ ID0gNDA5NiwNCiAJLnRoaXNfaWQJCSA9IC0xLA0KLQkuc2dfdGFibGVzaXplCQkgPSAxLCAvKiBh ZGp1c3RlZCBsYXRlciAqLw0KLQkubWF4X3NlY3RvcnMJCSA9IDgsIC8qIGFkanVzdGVkIGxhdGVy ICovDQorCS5zZ190YWJsZXNpemUJCSA9ICgoKFFESU9fTUFYX0VMRU1FTlRTX1BFUl9CVUZGRVIg LSAxKQ0KKwkJCQkgICAgICogWkZDUF9RRElPX01BWF9TQkFMU19QRVJfUkVRKSAtIDIpLA0KKwkJ CQkgICAvKiBHQ0QsIGFkanVzdGVkIGxhdGVyICovDQorCS5tYXhfc2VjdG9ycwkJID0gKCgoUURJ T19NQVhfRUxFTUVOVFNfUEVSX0JVRkZFUiAtIDEpDQorCQkJCSAgICAgKiBaRkNQX1FESU9fTUFY X1NCQUxTX1BFUl9SRVEpIC0gMikgKiA4LA0KKwkJCQkgICAvKiBHQ0QsIGFkanVzdGVkIGxhdGVy ICovDQogCS5kbWFfYm91bmRhcnkJCSA9IFpGQ1BfUURJT19TQkFMRV9MRU4gLSAxLA0KIAkuY21k X3Blcl9sdW4JCSA9IDEsDQogCS51c2VfY2x1c3RlcmluZwkJID0gMSwNCmRpZmYgLS1naXQgYS9k cml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfc2FzX2Jhc2UuYyBiL2RyaXZlcnMvc2NzaS9t ZWdhcmFpZC9tZWdhcmFpZF9zYXNfYmFzZS5jDQppbmRleCA3YzQ3MWViLi5mYzVhMmVmIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9zY3NpL21lZ2FyYWlkL21lZ2FyYWlkX3Nhc19iYXNlLmMNCisrKyBi L2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9zYXNfYmFzZS5jDQpAQCAtNDg4NiwxMCAr NDg4NiwxMiBAQCBtZWdhc2FzX21nbXRfZndfaW9jdGwoc3RydWN0IG1lZ2FzYXNfaW5zdGFuY2Ug Kmluc3RhbmNlLA0KIAkJCQkgICAgc2Vuc2UsIHNlbnNlX2hhbmRsZSk7DQogCX0NCiANCi0JZm9y IChpID0gMDsgaSA8IGlvYy0+c2dlX2NvdW50ICYmIGtidWZmX2FycltpXTsgaSsrKSB7DQotCQlk bWFfZnJlZV9jb2hlcmVudCgmaW5zdGFuY2UtPnBkZXYtPmRldiwNCi0JCQkJICAgIGtlcm5fc2dl MzJbaV0ubGVuZ3RoLA0KLQkJCQkgICAga2J1ZmZfYXJyW2ldLCBrZXJuX3NnZTMyW2ldLnBoeXNf YWRkcik7DQorCWZvciAoaSA9IDA7IGkgPCBpb2MtPnNnZV9jb3VudDsgaSsrKSB7DQorCQlpZiAo a2J1ZmZfYXJyW2ldKQ0KKwkJCWRtYV9mcmVlX2NvaGVyZW50KCZpbnN0YW5jZS0+cGRldi0+ZGV2 LA0KKwkJCQkJICBrZXJuX3NnZTMyW2ldLmxlbmd0aCwNCisJCQkJCSAga2J1ZmZfYXJyW2ldLA0K KwkJCQkJICBrZXJuX3NnZTMyW2ldLnBoeXNfYWRkcik7DQogCX0NCiANCiAJbWVnYXNhc19yZXR1 cm5fY21kKGluc3RhbmNlLCBjbWQpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9tcHQyc2Fz L21wdDJzYXNfYmFzZS5jIGIvZHJpdmVycy9zY3NpL21wdDJzYXMvbXB0MnNhc19iYXNlLmMNCmlu ZGV4IDE3ZGUzNDguLmExMWE5MDkgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3Njc2kvbXB0MnNhcy9t cHQyc2FzX2Jhc2UuYw0KKysrIGIvZHJpdmVycy9zY3NpL21wdDJzYXMvbXB0MnNhc19iYXNlLmMN CkBAIC03OSwxMCArNzksNiBAQCBzdGF0aWMgaW50IG1zaXhfZGlzYWJsZSA9IC0xOw0KIG1vZHVs ZV9wYXJhbShtc2l4X2Rpc2FibGUsIGludCwgMCk7DQogTU9EVUxFX1BBUk1fREVTQyhtc2l4X2Rp c2FibGUsICIgZGlzYWJsZSBtc2l4IHJvdXRlZCBpbnRlcnJ1cHRzIChkZWZhdWx0PTApIik7DQog DQotc3RhdGljIGludCBtaXNzaW5nX2RlbGF5WzJdID0gey0xLCAtMX07DQotbW9kdWxlX3BhcmFt X2FycmF5KG1pc3NpbmdfZGVsYXksIGludCwgTlVMTCwgMCk7DQotTU9EVUxFX1BBUk1fREVTQyht aXNzaW5nX2RlbGF5LCAiIGRldmljZSBtaXNzaW5nIGRlbGF5ICwgaW8gbWlzc2luZyBkZWxheSIp Ow0KLQ0KIHN0YXRpYyBpbnQgbXB0MnNhc19md2ZhdWx0X2RlYnVnOw0KIE1PRFVMRV9QQVJNX0RF U0MobXB0MnNhc19md2ZhdWx0X2RlYnVnLCAiIGVuYWJsZSBkZXRlY3Rpb24gb2YgZmlybXdhcmUg ZmF1bHQgIg0KIAkiYW5kIGhhbHQgZmlybXdhcmUgLSAoZGVmYXVsdD0wKSIpOw0KQEAgLTIxMDQs NyArMjEwMCw3IEBAIF9iYXNlX2Rpc3BsYXlfaW9jX2NhcGFiaWxpdGllcyhzdHJ1Y3QgTVBUMlNB U19BREFQVEVSICppb2MpDQogfQ0KIA0KIC8qKg0KLSAqIF9iYXNlX3VwZGF0ZV9taXNzaW5nX2Rl bGF5IC0gY2hhbmdlIHRoZSBtaXNzaW5nIGRlbGF5IHRpbWVycw0KKyAqIG1wdDJzYXNfYmFzZV91 cGRhdGVfbWlzc2luZ19kZWxheSAtIGNoYW5nZSB0aGUgbWlzc2luZyBkZWxheSB0aW1lcnMNCiAg KiBAaW9jOiBwZXIgYWRhcHRlciBvYmplY3QNCiAgKiBAZGV2aWNlX21pc3NpbmdfZGVsYXk6IGFt b3VudCBvZiB0aW1lIHRpbGwgZGV2aWNlIGlzIHJlcG9ydGVkIG1pc3NpbmcNCiAgKiBAaW9fbWlz c2luZ19kZWxheTogaW50ZXJ2YWwgSU8gaXMgcmV0dXJuZWQgd2hlbiB0aGVyZSBpcyBhIG1pc3Np bmcgZGV2aWNlDQpAQCAtMjExNSw4ICsyMTExLDggQEAgX2Jhc2VfZGlzcGxheV9pb2NfY2FwYWJp bGl0aWVzKHN0cnVjdCBNUFQyU0FTX0FEQVBURVIgKmlvYykNCiAgKiBkZWxheSwgYXMgd2VsbCBh cyB0aGUgaW8gbWlzc2luZyBkZWxheS4gVGhpcyBzaG91bGQgYmUgY2FsbGVkIGF0IGRyaXZlcg0K ICAqIGxvYWQgdGltZS4NCiAgKi8NCi1zdGF0aWMgdm9pZA0KLV9iYXNlX3VwZGF0ZV9taXNzaW5n X2RlbGF5KHN0cnVjdCBNUFQyU0FTX0FEQVBURVIgKmlvYywNCit2b2lkDQorbXB0MnNhc19iYXNl X3VwZGF0ZV9taXNzaW5nX2RlbGF5KHN0cnVjdCBNUFQyU0FTX0FEQVBURVIgKmlvYywNCiAJdTE2 IGRldmljZV9taXNzaW5nX2RlbGF5LCB1OCBpb19taXNzaW5nX2RlbGF5KQ0KIHsNCiAJdTE2IGRt ZCwgZG1kX25ldywgZG1kX29yaWduYWw7DQpAQCAtNDMwMiw5ICs0Mjk4LDYgQEAgbXB0MnNhc19i YXNlX2F0dGFjaChzdHJ1Y3QgTVBUMlNBU19BREFQVEVSICppb2MpDQogCWlmIChyKQ0KIAkJZ290 byBvdXRfZnJlZV9yZXNvdXJjZXM7DQogDQotCWlmIChtaXNzaW5nX2RlbGF5WzBdICE9IC0xICYm IG1pc3NpbmdfZGVsYXlbMV0gIT0gLTEpDQotCQlfYmFzZV91cGRhdGVfbWlzc2luZ19kZWxheShp b2MsIG1pc3NpbmdfZGVsYXlbMF0sDQotCQkgICAgbWlzc2luZ19kZWxheVsxXSk7DQogDQogCXJl dHVybiAwOw0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9tcHQyc2FzL21wdDJzYXNfYmFz ZS5oIGIvZHJpdmVycy9zY3NpL21wdDJzYXMvbXB0MnNhc19iYXNlLmgNCmluZGV4IDNjM2JhYmMu LmFhNGRhZjYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3Njc2kvbXB0MnNhcy9tcHQyc2FzX2Jhc2Uu aA0KKysrIGIvZHJpdmVycy9zY3NpL21wdDJzYXMvbXB0MnNhc19iYXNlLmgNCkBAIC0xMDI5LDYg KzEwMjksOSBAQCB2b2lkIG1wdDJzYXNfYmFzZV92YWxpZGF0ZV9ldmVudF90eXBlKHN0cnVjdCBN UFQyU0FTX0FEQVBURVIgKmlvYywgdTMyICpldmVudF90eQ0KIA0KIHZvaWQgbXB0MnNhc19oYWx0 X2Zpcm13YXJlKHN0cnVjdCBNUFQyU0FTX0FEQVBURVIgKmlvYyk7DQogDQordm9pZCBtcHQyc2Fz X2Jhc2VfdXBkYXRlX21pc3NpbmdfZGVsYXkoc3RydWN0IE1QVDJTQVNfQURBUFRFUiAqaW9jLA0K Kwl1MTYgZGV2aWNlX21pc3NpbmdfZGVsYXksIHU4IGlvX21pc3NpbmdfZGVsYXkpOw0KKw0KIGlu dCBtcHQyc2FzX3BvcnRfZW5hYmxlKHN0cnVjdCBNUFQyU0FTX0FEQVBURVIgKmlvYyk7DQogDQog Lyogc2NzaWggc2hhcmVkIEFQSSAqLw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9tcHQyc2Fz L21wdDJzYXNfc2NzaWguYyBiL2RyaXZlcnMvc2NzaS9tcHQyc2FzL21wdDJzYXNfc2NzaWguYw0K aW5kZXggMjgyNGE5MC4uOTg3YzZkNiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc2NzaS9tcHQyc2Fz L21wdDJzYXNfc2NzaWguYw0KKysrIGIvZHJpdmVycy9zY3NpL21wdDJzYXMvbXB0MnNhc19zY3Np aC5jDQpAQCAtMTAxLDYgKzEwMSwxMCBAQCBzdGF0aWMgdXNob3J0IG1heF9zZWN0b3JzID0gMHhG RkZGOw0KIG1vZHVsZV9wYXJhbShtYXhfc2VjdG9ycywgdXNob3J0LCAwKTsNCiBNT0RVTEVfUEFS TV9ERVNDKG1heF9zZWN0b3JzLCAibWF4IHNlY3RvcnMsIHJhbmdlIDY0IHRvIDgxOTIgIGRlZmF1 bHQ9ODE5MiIpOw0KIA0KK3N0YXRpYyBpbnQgbWlzc2luZ19kZWxheVsyXSA9IHstMSwgLTF9Ow0K K21vZHVsZV9wYXJhbV9hcnJheShtaXNzaW5nX2RlbGF5LCBpbnQsIE5VTEwsIDApOw0KK01PRFVM RV9QQVJNX0RFU0MobWlzc2luZ19kZWxheSwgIiBkZXZpY2UgbWlzc2luZyBkZWxheSAsIGlvIG1p c3NpbmcgZGVsYXkiKTsNCisNCiAvKiBzY3NpLW1pZCBsYXllciBnbG9iYWwgcGFybWV0ZXIgaXMg bWF4X3JlcG9ydF9sdW5zLCB3aGljaCBpcyA1MTEgKi8NCiAjZGVmaW5lIE1QVDJTQVNfTUFYX0xV TiAoMTY4OTUpDQogc3RhdGljIGludCBtYXhfbHVuID0gTVBUMlNBU19NQVhfTFVOOw0KQEAgLTM5 MzAsMTEgKzM5MzQsNyBAQCBfc2NzaWhfcWNtZF9sY2soc3RydWN0IHNjc2lfY21uZCAqc2NtZCwg dm9pZCAoKmRvbmUpKHN0cnVjdCBzY3NpX2NtbmQgKikpDQogCQkJZWxzZQ0KIAkJCQltcGlfY29u dHJvbCB8PSBNUEkyX1NDU0lJT19DT05UUk9MX1NJTVBMRVE7DQogCQl9IGVsc2UNCi0vKiBNUEkg UmV2aXNpb24gSSAoVU5JVCA9IDB4QSkgLSByZW1vdmVkIE1QSTJfU0NTSUlPX0NPTlRST0xfVU5U QUdHRUQgKi8NCi0vKgkJCW1waV9jb250cm9sIHw9IE1QSTJfU0NTSUlPX0NPTlRST0xfVU5UQUdH RUQ7DQotICovDQotCQkJbXBpX2NvbnRyb2wgfD0gKDB4NTAwKTsNCi0NCisJCQltcGlfY29udHJv bCB8PSBNUEkyX1NDU0lJT19DT05UUk9MX1NJTVBMRVE7DQogCX0gZWxzZQ0KIAkJbXBpX2NvbnRy b2wgfD0gTVBJMl9TQ1NJSU9fQ09OVFJPTF9TSU1QTEVROw0KIAkvKiBNYWtlIHN1cmUgRGV2aWNl IGlzIG5vdCByYWlkIHZvbHVtZS4NCkBAIC03MDA2LDExICs3MDA2LDE0IEBAIF9zY3NpaF9zY2Fu X2Zvcl9kZXZpY2VzX2FmdGVyX3Jlc2V0KHN0cnVjdCBNUFQyU0FTX0FEQVBURVIgKmlvYykNCiAJ c3RydWN0IF9zYXNfZGV2aWNlICpzYXNfZGV2aWNlOw0KIAlzdHJ1Y3QgX3Nhc19ub2RlICpleHBh bmRlcl9kZXZpY2U7DQogCXN0YXRpYyBzdHJ1Y3QgX3JhaWRfZGV2aWNlICpyYWlkX2RldmljZTsN CisJdTggcmV0cnlfY291bnQ7DQogDQogCXByaW50ayhNUFQyU0FTX0lORk9fRk1UICJzY2FuIGRl dmljZXM6IHN0YXJ0XG4iLCBpb2MtPm5hbWUpOw0KIA0KIAlfc2NzaWhfc2FzX2hvc3RfcmVmcmVz aChpb2MpOw0KIA0KKwlwcmludGsoTVBUMlNBU19JTkZPX0ZNVCAiXHRzY2FuIGRldmljZXM6IGV4 cGFuZGVycyBzdGFydFxuIiwNCisJCWlvYy0+bmFtZSk7DQogCS8qIGV4cGFuZGVycyAqLw0KIAlo YW5kbGUgPSAweEZGRkY7DQogCXdoaWxlICghKG1wdDJzYXNfY29uZmlnX2dldF9leHBhbmRlcl9w ZzAoaW9jLCAmbXBpX3JlcGx5LCAmZXhwYW5kZXJfcGcwLA0KQEAgLTcwMTksMTkgKzcwMjIsMzkg QEAgX3Njc2loX3NjYW5fZm9yX2RldmljZXNfYWZ0ZXJfcmVzZXQoc3RydWN0IE1QVDJTQVNfQURB UFRFUiAqaW9jKQ0KIAkJICAgIE1QSTJfSU9DU1RBVFVTX01BU0s7DQogCQlpZiAoaW9jX3N0YXR1 cyA9PSBNUEkyX0lPQ1NUQVRVU19DT05GSUdfSU5WQUxJRF9QQUdFKQ0KIAkJCWJyZWFrOw0KKwkJ aWYgKGlvY19zdGF0dXMgIT0gTVBJMl9JT0NTVEFUVVNfU1VDQ0VTUykgew0KKwkJCXByaW50ayhN UFQyU0FTX0lORk9fRk1UICJcdGJyZWFrIGZyb20gZXhwYW5kZXIgc2NhbjogIg0KKwkJCQkiaW9j X3N0YXR1cygweCUwNHgpLCBsb2dpbmZvKDB4JTA4eClcbiIsDQorCQkJCWlvYy0+bmFtZSwgaW9j X3N0YXR1cywNCisJCQkJbGUzMl90b19jcHUobXBpX3JlcGx5LklPQ0xvZ0luZm8pKTsNCisJCQli cmVhazsNCisJCX0NCiAJCWhhbmRsZSA9IGxlMTZfdG9fY3B1KGV4cGFuZGVyX3BnMC5EZXZIYW5k bGUpOw0KIAkJZXhwYW5kZXJfZGV2aWNlID0gbXB0MnNhc19zY3NpaF9leHBhbmRlcl9maW5kX2J5 X3Nhc19hZGRyZXNzKA0KIAkJICAgIGlvYywgbGU2NF90b19jcHUoZXhwYW5kZXJfcGcwLlNBU0Fk ZHJlc3MpKTsNCiAJCWlmIChleHBhbmRlcl9kZXZpY2UpDQogCQkJX3Njc2loX3JlZnJlc2hfZXhw YW5kZXJfbGlua3MoaW9jLCBleHBhbmRlcl9kZXZpY2UsDQogCQkJICAgIGhhbmRsZSk7DQotCQll bHNlDQorCQllbHNlIHsNCisJCQlwcmludGsoTVBUMlNBU19JTkZPX0ZNVCAiXHRCRUZPUkUgYWRk aW5nIGV4cGFuZGVyOiAiDQorCQkJCSJoYW5kbGUgKDB4JTA0eCksIHNhc19hZGRyKDB4JTAxNmxs eClcbiIsDQorCQkJCWlvYy0+bmFtZSwgaGFuZGxlLCAodW5zaWduZWQgbG9uZyBsb25nKQ0KKwkJ CQlsZTY0X3RvX2NwdShleHBhbmRlcl9wZzAuU0FTQWRkcmVzcykpOw0KIAkJCV9zY3NpaF9leHBh bmRlcl9hZGQoaW9jLCBoYW5kbGUpOw0KKwkJCXByaW50ayhNUFQyU0FTX0lORk9fRk1UICJcdEFG VEVSIGFkZGluZyBleHBhbmRlcjogIg0KKwkJCQkiaGFuZGxlICgweCUwNHgpLCBzYXNfYWRkcigw eCUwMTZsbHgpXG4iLA0KKwkJCQlpb2MtPm5hbWUsIGhhbmRsZSwgKHVuc2lnbmVkIGxvbmcgbG9u ZykNCisJCQkJbGU2NF90b19jcHUoZXhwYW5kZXJfcGcwLlNBU0FkZHJlc3MpKTsNCisJCX0NCiAJ fQ0KIA0KKwlwcmludGsoTVBUMlNBU19JTkZPX0ZNVCAiXHRzY2FuIGRldmljZXM6IGV4cGFuZGVy cyBjb21wbGV0ZVxuIiwNCisJCWlvYy0+bmFtZSk7DQorDQogCWlmICghaW9jLT5pcl9maXJtd2Fy ZSkNCiAJCWdvdG8gc2tpcF90b19zYXM7DQogDQorCXByaW50ayhNUFQyU0FTX0lORk9fRk1UICJc dHNjYW4gZGV2aWNlcyBwaHlzIGRpc2sgc3RhcnRcbiIsIGlvYy0+bmFtZSk7DQogCS8qIHBoeXMg ZGlzayAqLw0KIAlwaHlzX2Rpc2tfbnVtID0gMHhGRjsNCiAJd2hpbGUgKCEobXB0MnNhc19jb25m aWdfZ2V0X3BoeXNfZGlza19wZzAoaW9jLCAmbXBpX3JlcGx5LA0KQEAgLTcwNDEsNiArNzA2NCwx MyBAQCBfc2NzaWhfc2Nhbl9mb3JfZGV2aWNlc19hZnRlcl9yZXNldChzdHJ1Y3QgTVBUMlNBU19B REFQVEVSICppb2MpDQogCQkgICAgTVBJMl9JT0NTVEFUVVNfTUFTSzsNCiAJCWlmIChpb2Nfc3Rh dHVzID09IE1QSTJfSU9DU1RBVFVTX0NPTkZJR19JTlZBTElEX1BBR0UpDQogCQkJYnJlYWs7DQor CQlpZiAoaW9jX3N0YXR1cyAhPSBNUEkyX0lPQ1NUQVRVU19TVUNDRVNTKSB7DQorCQkJcHJpbnRr KE1QVDJTQVNfSU5GT19GTVQgIlx0YnJlYWsgZnJvbSBwaHlzIGRpc2sgc2NhbjoiDQorCQkJCSJp b2Nfc3RhdHVzKDB4JTA0eCksIGxvZ2luZm8oMHglMDh4KVxuIiwNCisJCQkJaW9jLT5uYW1lLCBp b2Nfc3RhdHVzLA0KKwkJCQlsZTMyX3RvX2NwdShtcGlfcmVwbHkuSU9DTG9nSW5mbykpOw0KKwkJ CWJyZWFrOw0KKwkJfQ0KIAkJcGh5c19kaXNrX251bSA9IHBkX3BnMC5QaHlzRGlza051bTsNCiAJ CWhhbmRsZSA9IGxlMTZfdG9fY3B1KHBkX3BnMC5EZXZIYW5kbGUpOw0KIAkJc2FzX2RldmljZSA9 IF9zY3NpaF9zYXNfZGV2aWNlX2ZpbmRfYnlfaGFuZGxlKGlvYywgaGFuZGxlKTsNCkBAIC03MDUw LDE3ICs3MDgwLDQ2IEBAIF9zY3NpaF9zY2FuX2Zvcl9kZXZpY2VzX2FmdGVyX3Jlc2V0KHN0cnVj dCBNUFQyU0FTX0FEQVBURVIgKmlvYykNCiAJCSAgICAmc2FzX2RldmljZV9wZzAsIE1QSTJfU0FT X0RFVklDRV9QR0FEX0ZPUk1fSEFORExFLA0KIAkJICAgIGhhbmRsZSkgIT0gMCkNCiAJCQljb250 aW51ZTsNCisJCWlvY19zdGF0dXMgPSBsZTE2X3RvX2NwdShtcGlfcmVwbHkuSU9DU3RhdHVzKSAm DQorCQkJTVBJMl9JT0NTVEFUVVNfTUFTSzsNCisJCWlmIChpb2Nfc3RhdHVzICE9IE1QSTJfSU9D U1RBVFVTX1NVQ0NFU1MpIHsNCisJCQlwcmludGsoTVBUMlNBU19JTkZPX0ZNVCAiXHRicmVhayBm cm9tIHBoeXMgZGlzayBzY2FuICINCisJCQkJImlvY19zdGF0dXMoMHglMDR4KSwgbG9naW5mbygw eCUwOHgpXG4iLA0KKwkJCQlpb2MtPm5hbWUsIGlvY19zdGF0dXMsDQorCQkJCWxlMzJfdG9fY3B1 KG1waV9yZXBseS5JT0NMb2dJbmZvKSk7DQorCQkJYnJlYWs7DQorCQl9DQogCQlwYXJlbnRfaGFu ZGxlID0gbGUxNl90b19jcHUoc2FzX2RldmljZV9wZzAuUGFyZW50RGV2SGFuZGxlKTsNCiAJCWlm ICghX3Njc2loX2dldF9zYXNfYWRkcmVzcyhpb2MsIHBhcmVudF9oYW5kbGUsDQogCQkgICAgJnNh c19hZGRyZXNzKSkgew0KKwkJCXByaW50ayhNUFQyU0FTX0lORk9fRk1UICJcdEJFRk9SRSBhZGRp bmcgcGh5cyBkaXNrOiAiDQorCQkJCSIgaGFuZGxlICgweCUwNHgpLCBzYXNfYWRkcigweCUwMTZs bHgpXG4iLA0KKwkJCQlpb2MtPm5hbWUsIGhhbmRsZSwgKHVuc2lnbmVkIGxvbmcgbG9uZykNCisJ CQkJbGU2NF90b19jcHUoc2FzX2RldmljZV9wZzAuU0FTQWRkcmVzcykpOw0KIAkJCW1wdDJzYXNf dHJhbnNwb3J0X3VwZGF0ZV9saW5rcyhpb2MsIHNhc19hZGRyZXNzLA0KIAkJCSAgICBoYW5kbGUs IHNhc19kZXZpY2VfcGcwLlBoeU51bSwNCiAJCQkgICAgTVBJMl9TQVNfTkVHX0xJTktfUkFURV8x XzUpOw0KIAkJCXNldF9iaXQoaGFuZGxlLCBpb2MtPnBkX2hhbmRsZXMpOw0KLQkJCV9zY3NpaF9h ZGRfZGV2aWNlKGlvYywgaGFuZGxlLCAwLCAxKTsNCisJCQlyZXRyeV9jb3VudCA9IDA7DQorCQkJ LyogVGhpcyB3aWxsIHJldHJ5IGFkZGluZyB0aGUgZW5kIGRldmljZS4NCisJCQkqIF9zY3NpaF9h ZGRfZGV2aWNlKCkgd2lsbCBkZWNpZGUgb24gcmV0cmllcyBhbmQNCisJCQkqIHJldHVybiAiMSIg d2hlbiBpdCBzaG91bGQgYmUgcmV0cmllZA0KKwkJCSovDQorCQkJd2hpbGUgKF9zY3NpaF9hZGRf ZGV2aWNlKGlvYywgaGFuZGxlLCByZXRyeV9jb3VudCsrLA0KKwkJCQkxKSkgew0KKwkJCQkJc3Ns ZWVwKDEpOw0KKwkJCX0NCisJCQlwcmludGsoTVBUMlNBU19JTkZPX0ZNVCAiXHRBRlRFUiBhZGRp bmcgcGh5cyBkaXNrOiAiDQorCQkJCSIgaGFuZGxlICgweCUwNHgpLCBzYXNfYWRkcigweCUwMTZs bHgpXG4iLA0KKwkJCQlpb2MtPm5hbWUsIGhhbmRsZSwgKHVuc2lnbmVkIGxvbmcgbG9uZykNCisJ CQkJbGU2NF90b19jcHUoc2FzX2RldmljZV9wZzAuU0FTQWRkcmVzcykpOw0KIAkJfQ0KIAl9DQog DQorCXByaW50ayhNUFQyU0FTX0lORk9fRk1UICJcdHNjYW4gZGV2aWNlczogcGh5cyBkaXNrIGNv bXBsZXRlXG4iLA0KKwkJaW9jLT5uYW1lKTsNCisNCisJcHJpbnRrKE1QVDJTQVNfSU5GT19GTVQg Ilx0c2NhbiBkZXZpY2VzOiB2b2x1bWVzIHN0YXJ0XG4iLCBpb2MtPm5hbWUpOw0KIAkvKiB2b2x1 bWVzICovDQogCWhhbmRsZSA9IDB4RkZGRjsNCiAJd2hpbGUgKCEobXB0MnNhc19jb25maWdfZ2V0 X3JhaWRfdm9sdW1lX3BnMShpb2MsICZtcGlfcmVwbHksDQpAQCAtNzA2OSw2ICs3MTI4LDEzIEBA IF9zY3NpaF9zY2FuX2Zvcl9kZXZpY2VzX2FmdGVyX3Jlc2V0KHN0cnVjdCBNUFQyU0FTX0FEQVBU RVIgKmlvYykNCiAJCSAgICBNUEkyX0lPQ1NUQVRVU19NQVNLOw0KIAkJaWYgKGlvY19zdGF0dXMg PT0gTVBJMl9JT0NTVEFUVVNfQ09ORklHX0lOVkFMSURfUEFHRSkNCiAJCQlicmVhazsNCisJCWlm IChpb2Nfc3RhdHVzICE9IE1QSTJfSU9DU1RBVFVTX1NVQ0NFU1MpIHsNCisJCQlwcmludGsoTVBU MlNBU19JTkZPX0ZNVCAiXHRicmVhayBmcm9tIHZvbHVtZSBzY2FuOiAiDQorCQkJCSJpb2Nfc3Rh dHVzKDB4JTA0eCksIGxvZ2luZm8oMHglMDh4KVxuIiwNCisJCQkJaW9jLT5uYW1lLCBpb2Nfc3Rh dHVzLA0KKwkJCQlsZTMyX3RvX2NwdShtcGlfcmVwbHkuSU9DTG9nSW5mbykpOw0KKwkJCWJyZWFr Ow0KKwkJfQ0KIAkJaGFuZGxlID0gbGUxNl90b19jcHUodm9sdW1lX3BnMS5EZXZIYW5kbGUpOw0K IAkJcmFpZF9kZXZpY2UgPSBfc2NzaWhfcmFpZF9kZXZpY2VfZmluZF9ieV93d2lkKGlvYywNCiAJ CSAgICBsZTY0X3RvX2NwdSh2b2x1bWVfcGcxLldXSUQpKTsNCkBAIC03MDc4LDE4ICs3MTQ0LDM4 IEBAIF9zY3NpaF9zY2FuX2Zvcl9kZXZpY2VzX2FmdGVyX3Jlc2V0KHN0cnVjdCBNUFQyU0FTX0FE QVBURVIgKmlvYykNCiAJCSAgICAmdm9sdW1lX3BnMCwgTVBJMl9SQUlEX1ZPTFVNRV9QR0FEX0ZP Uk1fSEFORExFLCBoYW5kbGUsDQogCQkgICAgIHNpemVvZihNcGkyUmFpZFZvbFBhZ2UwX3QpKSkN CiAJCQljb250aW51ZTsNCisJCWlvY19zdGF0dXMgPSBsZTE2X3RvX2NwdShtcGlfcmVwbHkuSU9D U3RhdHVzKSAmDQorCQkJTVBJMl9JT0NTVEFUVVNfTUFTSzsNCisJCWlmIChpb2Nfc3RhdHVzICE9 IE1QSTJfSU9DU1RBVFVTX1NVQ0NFU1MpIHsNCisJCQlwcmludGsoTVBUMlNBU19JTkZPX0ZNVCAi XHRicmVhayBmcm9tIHZvbHVtZSBzY2FuOiAiDQorCQkJCSJpb2Nfc3RhdHVzKDB4JTA0eCksIGxv Z2luZm8oMHglMDh4KVxuIiwNCisJCQkJaW9jLT5uYW1lLCBpb2Nfc3RhdHVzLA0KKwkJCQlsZTMy X3RvX2NwdShtcGlfcmVwbHkuSU9DTG9nSW5mbykpOw0KKwkJCWJyZWFrOw0KKwkJfQ0KIAkJaWYg KHZvbHVtZV9wZzAuVm9sdW1lU3RhdGUgPT0gTVBJMl9SQUlEX1ZPTF9TVEFURV9PUFRJTUFMIHx8 DQogCQkgICAgdm9sdW1lX3BnMC5Wb2x1bWVTdGF0ZSA9PSBNUEkyX1JBSURfVk9MX1NUQVRFX09O TElORSB8fA0KIAkJICAgIHZvbHVtZV9wZzAuVm9sdW1lU3RhdGUgPT0gTVBJMl9SQUlEX1ZPTF9T VEFURV9ERUdSQURFRCkgew0KIAkJCW1lbXNldCgmZWxlbWVudCwgMCwgc2l6ZW9mKE1waTJFdmVu dElyQ29uZmlnRWxlbWVudF90KSk7DQogCQkJZWxlbWVudC5SZWFzb25Db2RlID0gTVBJMl9FVkVO VF9JUl9DSEFOR0VfUkNfQURERUQ7DQogCQkJZWxlbWVudC5Wb2xEZXZIYW5kbGUgPSB2b2x1bWVf cGcxLkRldkhhbmRsZTsNCisJCQlwcmludGsoTVBUMlNBU19JTkZPX0ZNVCAiXHRCRUZPUkUgYWRk aW5nIHZvbHVtZTogIg0KKwkJCQkiIGhhbmRsZSAoMHglMDR4KVxuIiwgaW9jLT5uYW1lLA0KKwkJ CQl2b2x1bWVfcGcxLkRldkhhbmRsZSk7DQogCQkJX3Njc2loX3Nhc192b2x1bWVfYWRkKGlvYywg JmVsZW1lbnQpOw0KKwkJCXByaW50ayhNUFQyU0FTX0lORk9fRk1UICJcdEFGVEVSIGFkZGluZyB2 b2x1bWU6ICINCisJCQkJIiBoYW5kbGUgKDB4JTA0eClcbiIsIGlvYy0+bmFtZSwNCisJCQkJdm9s dW1lX3BnMS5EZXZIYW5kbGUpOw0KIAkJfQ0KIAl9DQogDQorCXByaW50ayhNUFQyU0FTX0lORk9f Rk1UICJcdHNjYW4gZGV2aWNlczogdm9sdW1lcyBjb21wbGV0ZVxuIiwNCisJCWlvYy0+bmFtZSk7 DQorDQogIHNraXBfdG9fc2FzOg0KIA0KKwlwcmludGsoTVBUMlNBU19JTkZPX0ZNVCAiXHRzY2Fu IGRldmljZXM6IGVuZCBkZXZpY2VzIHN0YXJ0XG4iLA0KKwkJaW9jLT5uYW1lKTsNCiAJLyogc2Fz IGRldmljZXMgKi8NCiAJaGFuZGxlID0gMHhGRkZGOw0KIAl3aGlsZSAoIShtcHQyc2FzX2NvbmZp Z19nZXRfc2FzX2RldmljZV9wZzAoaW9jLCAmbXBpX3JlcGx5LA0KQEAgLTcwOTksNiArNzE4NSwx MyBAQCBfc2NzaWhfc2Nhbl9mb3JfZGV2aWNlc19hZnRlcl9yZXNldChzdHJ1Y3QgTVBUMlNBU19B REFQVEVSICppb2MpDQogCQkgICAgTVBJMl9JT0NTVEFUVVNfTUFTSzsNCiAJCWlmIChpb2Nfc3Rh dHVzID09IE1QSTJfSU9DU1RBVFVTX0NPTkZJR19JTlZBTElEX1BBR0UpDQogCQkJYnJlYWs7DQor CQlpZiAoaW9jX3N0YXR1cyAhPSBNUEkyX0lPQ1NUQVRVU19TVUNDRVNTKSB7DQorCQkJcHJpbnRr KE1QVDJTQVNfSU5GT19GTVQgIlx0YnJlYWsgZnJvbSBlbmQgZGV2aWNlIHNjYW46Ig0KKwkJCQki IGlvY19zdGF0dXMoMHglMDR4KSwgbG9naW5mbygweCUwOHgpXG4iLA0KKwkJCQlpb2MtPm5hbWUs IGlvY19zdGF0dXMsDQorCQkJCWxlMzJfdG9fY3B1KG1waV9yZXBseS5JT0NMb2dJbmZvKSk7DQor CQkJCWJyZWFrOw0KKwkJfQ0KIAkJaGFuZGxlID0gbGUxNl90b19jcHUoc2FzX2RldmljZV9wZzAu RGV2SGFuZGxlKTsNCiAJCWlmICghKF9zY3NpaF9pc19lbmRfZGV2aWNlKA0KIAkJICAgIGxlMzJf dG9fY3B1KHNhc19kZXZpY2VfcGcwLkRldmljZUluZm8pKSkpDQpAQCAtNzEwOSwxMiArNzIwMiwz MSBAQCBfc2NzaWhfc2Nhbl9mb3JfZGV2aWNlc19hZnRlcl9yZXNldChzdHJ1Y3QgTVBUMlNBU19B REFQVEVSICppb2MpDQogCQkJY29udGludWU7DQogCQlwYXJlbnRfaGFuZGxlID0gbGUxNl90b19j cHUoc2FzX2RldmljZV9wZzAuUGFyZW50RGV2SGFuZGxlKTsNCiAJCWlmICghX3Njc2loX2dldF9z YXNfYWRkcmVzcyhpb2MsIHBhcmVudF9oYW5kbGUsICZzYXNfYWRkcmVzcykpIHsNCisJCQlwcmlu dGsoTVBUMlNBU19JTkZPX0ZNVCAiXHRCRUZPUkUgYWRkaW5nIGVuZCBkZXZpY2U6ICINCisJCQkJ ImhhbmRsZSAoMHglMDR4KSwgc2FzX2FkZHIoMHglMDE2bGx4KVxuIiwNCisJCQkJaW9jLT5uYW1l LCBoYW5kbGUsICh1bnNpZ25lZCBsb25nIGxvbmcpDQorCQkJCWxlNjRfdG9fY3B1KHNhc19kZXZp Y2VfcGcwLlNBU0FkZHJlc3MpKTsNCiAJCQltcHQyc2FzX3RyYW5zcG9ydF91cGRhdGVfbGlua3Mo aW9jLCBzYXNfYWRkcmVzcywgaGFuZGxlLA0KIAkJCSAgICBzYXNfZGV2aWNlX3BnMC5QaHlOdW0s IE1QSTJfU0FTX05FR19MSU5LX1JBVEVfMV81KTsNCi0JCQlfc2NzaWhfYWRkX2RldmljZShpb2Ms IGhhbmRsZSwgMCwgMCk7DQorCQkJcmV0cnlfY291bnQgPSAwOw0KKwkJCS8qIFRoaXMgd2lsbCBy ZXRyeSBhZGRpbmcgdGhlIGVuZCBkZXZpY2UuDQorCQkJICogX3Njc2loX2FkZF9kZXZpY2UoKSB3 aWxsIGRlY2lkZSBvbiByZXRyaWVzIGFuZA0KKwkJCSAqIHJldHVybiAiMSIgd2hlbiBpdCBzaG91 bGQgYmUgcmV0cmllZA0KKwkJCSAqLw0KKwkJCXdoaWxlIChfc2NzaWhfYWRkX2RldmljZShpb2Ms IGhhbmRsZSwgcmV0cnlfY291bnQrKywNCisJCQkJMCkpIHsNCisJCQkJCXNzbGVlcCgxKTsNCisJ CQl9DQorCQkJcHJpbnRrKE1QVDJTQVNfSU5GT19GTVQgIlx0QUZURVIgYWRkaW5nIGVuZCBkZXZp Y2U6ICINCisJCQkJImhhbmRsZSAoMHglMDR4KSwgc2FzX2FkZHIoMHglMDE2bGx4KVxuIiwNCisJ CQkJaW9jLT5uYW1lLCBoYW5kbGUsICh1bnNpZ25lZCBsb25nIGxvbmcpDQorCQkJCWxlNjRfdG9f Y3B1KHNhc19kZXZpY2VfcGcwLlNBU0FkZHJlc3MpKTsNCiAJCX0NCiAJfQ0KIA0KKwlwcmludGso TVBUMlNBU19JTkZPX0ZNVCAiXHRzY2FuIGRldmljZXM6IGVuZCBkZXZpY2VzIGNvbXBsZXRlXG4i LA0KKwkJaW9jLT5uYW1lKTsNCisNCiAJcHJpbnRrKE1QVDJTQVNfSU5GT19GTVQgInNjYW4gZGV2 aWNlczogY29tcGxldGVcbiIsIGlvYy0+bmFtZSk7DQogfQ0KIA0KQEAgLTcyMDYsNyArNzMxOCw5 IEBAIF9maXJtd2FyZV9ldmVudF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykNCiAJY2Fz ZSBNUFQyU0FTX1BPUlRfRU5BQkxFX0NPTVBMRVRFOg0KIAkJaW9jLT5zdGFydF9zY2FuID0gMDsN CiANCi0NCisJCWlmIChtaXNzaW5nX2RlbGF5WzBdICE9IC0xICYmIG1pc3NpbmdfZGVsYXlbMV0g IT0gLTEpDQorCQkJbXB0MnNhc19iYXNlX3VwZGF0ZV9taXNzaW5nX2RlbGF5KGlvYywgbWlzc2lu Z19kZWxheVswXSwNCisJCQkJbWlzc2luZ19kZWxheVsxXSk7DQogDQogCQlkZXd0cHJpbnRrKGlv YywgcHJpbnRrKE1QVDJTQVNfSU5GT19GTVQgInBvcnQgZW5hYmxlOiBjb21wbGV0ZSAiDQogCQkg ICAgImZyb20gd29ya2VyIHRocmVhZFxuIiwgaW9jLT5uYW1lKSk7DQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9zY3NpL29zZC9vc2RfdWxkLmMgYi9kcml2ZXJzL3Njc2kvb3NkL29zZF91bGQuYw0KaW5k ZXggZDRlZDllYi4uY2FhYzFiMiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc2NzaS9vc2Qvb3NkX3Vs ZC5jDQorKysgYi9kcml2ZXJzL3Njc2kvb3NkL29zZF91bGQuYw0KQEAgLTQ2NSw3ICs0NjUsNyBA QCBzdGF0aWMgaW50IG9zZF9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQogCW91ZC0+Y2xhc3Nf ZGV2LmNsYXNzID0gJm9zZF91bGRfY2xhc3M7DQogCW91ZC0+Y2xhc3NfZGV2LnBhcmVudCA9IGRl djsNCiAJb3VkLT5jbGFzc19kZXYucmVsZWFzZSA9IF9fcmVtb3ZlOw0KLQllcnJvciA9IGRldl9z ZXRfbmFtZSgmb3VkLT5jbGFzc19kZXYsIGRpc2stPmRpc2tfbmFtZSk7DQorCWVycm9yID0gZGV2 X3NldF9uYW1lKCZvdWQtPmNsYXNzX2RldiwgIiVzIiwgZGlzay0+ZGlza19uYW1lKTsNCiAJaWYg KGVycm9yKSB7DQogCQlPU0RfRVJSKCJkZXZfc2V0X25hbWUgZmFpbGVkID0+ICVkXG4iLCBlcnJv cik7DQogCQlnb3RvIGVycl9wdXRfY2RldjsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2Qu YyBiL2RyaXZlcnMvc2NzaS9zZC5jDQppbmRleCBmNDRkNjMzLi42ZGFjZTFhIDEwMDY0NA0KLS0t IGEvZHJpdmVycy9zY3NpL3NkLmMNCisrKyBiL2RyaXZlcnMvc2NzaS9zZC5jDQpAQCAtMTM4LDYg KzEzOCw3IEBAIHNkX3N0b3JlX2NhY2hlX3R5cGUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qg ZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwNCiAJY2hhciAqYnVmZmVyX2RhdGE7DQogCXN0cnVjdCBz Y3NpX21vZGVfZGF0YSBkYXRhOw0KIAlzdHJ1Y3Qgc2NzaV9zZW5zZV9oZHIgc3NoZHI7DQorCXN0 YXRpYyBjb25zdCBjaGFyIHRlbXBbXSA9ICJ0ZW1wb3JhcnkgIjsNCiAJaW50IGxlbjsNCiANCiAJ aWYgKHNkcC0+dHlwZSAhPSBUWVBFX0RJU0spDQpAQCAtMTQ2LDYgKzE0NywxMyBAQCBzZF9zdG9y ZV9jYWNoZV90eXBlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUg KmF0dHIsDQogCQkgKiBpdCdzIG5vdCB3b3J0aCB0aGUgcmlzayAqLw0KIAkJcmV0dXJuIC1FSU5W QUw7DQogDQorCWlmIChzdHJuY21wKGJ1ZiwgdGVtcCwgc2l6ZW9mKHRlbXApIC0gMSkgPT0gMCkg ew0KKwkJYnVmICs9IHNpemVvZih0ZW1wKSAtIDE7DQorCQlzZGtwLT5jYWNoZV9vdmVycmlkZSA9 IDE7DQorCX0gZWxzZSB7DQorCQlzZGtwLT5jYWNoZV9vdmVycmlkZSA9IDA7DQorCX0NCisNCiAJ Zm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoc2RfY2FjaGVfdHlwZXMpOyBpKyspIHsNCiAJCWxl biA9IHN0cmxlbihzZF9jYWNoZV90eXBlc1tpXSk7DQogCQlpZiAoc3RybmNtcChzZF9jYWNoZV90 eXBlc1tpXSwgYnVmLCBsZW4pID09IDAgJiYNCkBAIC0xNTgsNiArMTY2LDEzIEBAIHNkX3N0b3Jl X2NhY2hlX3R5cGUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAq YXR0ciwNCiAJCXJldHVybiAtRUlOVkFMOw0KIAlyY2QgPSBjdCAmIDB4MDEgPyAxIDogMDsNCiAJ d2NlID0gY3QgJiAweDAyID8gMSA6IDA7DQorDQorCWlmIChzZGtwLT5jYWNoZV9vdmVycmlkZSkg ew0KKwkJc2RrcC0+V0NFID0gd2NlOw0KKwkJc2RrcC0+UkNEID0gcmNkOw0KKwkJcmV0dXJuIGNv dW50Ow0KKwl9DQorDQogCWlmIChzY3NpX21vZGVfc2Vuc2Uoc2RwLCAweDA4LCA4LCBidWZmZXIs IHNpemVvZihidWZmZXIpLCBTRF9USU1FT1VULA0KIAkJCSAgICBTRF9NQVhfUkVUUklFUywgJmRh dGEsIE5VTEwpKQ0KIAkJcmV0dXJuIC1FSU5WQUw7DQpAQCAtMjAzNyw2ICsyMDUyLDEwIEBAIHNk X3JlYWRfY2FjaGVfdHlwZShzdHJ1Y3Qgc2NzaV9kaXNrICpzZGtwLCB1bnNpZ25lZCBjaGFyICpi dWZmZXIpDQogCWludCBvbGRfcmNkID0gc2RrcC0+UkNEOw0KIAlpbnQgb2xkX2Rwb2Z1YSA9IHNk a3AtPkRQT0ZVQTsNCiANCisNCisJaWYgKHNka3AtPmNhY2hlX292ZXJyaWRlKQ0KKwkJcmV0dXJu Ow0KKw0KIAlmaXJzdF9sZW4gPSA0Ow0KIAlpZiAoc2RwLT5za2lwX21zX3BhZ2VfOCkgew0KIAkJ aWYgKHNkcC0+dHlwZSA9PSBUWVBFX1JCQykNCkBAIC0yNTE4LDYgKzI1MzcsNyBAQCBzdGF0aWMg dm9pZCBzZF9wcm9iZV9hc3luYyh2b2lkICpkYXRhLCBhc3luY19jb29raWVfdCBjb29raWUpDQog CXNka3AtPmNhcGFjaXR5ID0gMDsNCiAJc2RrcC0+bWVkaWFfcHJlc2VudCA9IDE7DQogCXNka3At PndyaXRlX3Byb3QgPSAwOw0KKwlzZGtwLT5jYWNoZV9vdmVycmlkZSA9IDA7DQogCXNka3AtPldD RSA9IDA7DQogCXNka3AtPlJDRCA9IDA7DQogCXNka3AtPkFUTyA9IDA7DQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9zY3NpL3NkLmggYi9kcml2ZXJzL3Njc2kvc2QuaA0KaW5kZXggNDE2M2YyOS4uZTNl M2NkMiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc2NzaS9zZC5oDQorKysgYi9kcml2ZXJzL3Njc2kv c2QuaA0KQEAgLTY0LDYgKzY0LDcgQEAgc3RydWN0IHNjc2lfZGlzayB7DQogCXU4CQlwcm90ZWN0 aW9uX3R5cGU7LyogRGF0YSBJbnRlZ3JpdHkgRmllbGQgKi8NCiAJdTgJCXByb3Zpc2lvbmluZ19t b2RlOw0KIAl1bnNpZ25lZAlBVE8gOiAxOwkvKiBzdGF0ZSBvZiBkaXNrIEFUTyBiaXQgKi8NCisJ dW5zaWduZWQJY2FjaGVfb3ZlcnJpZGUgOiAxOyAvKiB0ZW1wIG92ZXJyaWRlIG9mIFdDRSxSQ0Qg Ki8NCiAJdW5zaWduZWQJV0NFIDogMTsJLyogc3RhdGUgb2YgZGlzayBXQ0UgYml0ICovDQogCXVu c2lnbmVkCVJDRCA6IDE7CS8qIHN0YXRlIG9mIGRpc2sgUkNEIGJpdCwgdW51c2VkICovDQogCXVu c2lnbmVkCURQT0ZVQSA6IDE7CS8qIHN0YXRlIG9mIGRpc2sgRFBPRlVBIGJpdCAqLw0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvc3RhZ2luZy96cmFtL3pyYW1fZHJ2LmMgYi9kcml2ZXJzL3N0YWdpbmcv enJhbS96cmFtX2Rydi5jDQppbmRleCAyNTk0YTMxLi45MjZkNDgzIDEwMDY0NA0KLS0tIGEvZHJp dmVycy9zdGFnaW5nL3pyYW0venJhbV9kcnYuYw0KKysrIGIvZHJpdmVycy9zdGFnaW5nL3pyYW0v enJhbV9kcnYuYw0KQEAgLTU0MSwxMyArNTQxLDIwIEBAIG91dDoNCiAgKi8NCiBzdGF0aWMgaW5s aW5lIGludCB2YWxpZF9pb19yZXF1ZXN0KHN0cnVjdCB6cmFtICp6cmFtLCBzdHJ1Y3QgYmlvICpi aW8pDQogew0KLQlpZiAodW5saWtlbHkoDQotCQkoYmlvLT5iaV9zZWN0b3IgPj0gKHpyYW0tPmRp c2tzaXplID4+IFNFQ1RPUl9TSElGVCkpIHx8DQotCQkoYmlvLT5iaV9zZWN0b3IgJiAoWlJBTV9T RUNUT1JfUEVSX0xPR0lDQUxfQkxPQ0sgLSAxKSkgfHwNCi0JCShiaW8tPmJpX3NpemUgJiAoWlJB TV9MT0dJQ0FMX0JMT0NLX1NJWkUgLSAxKSkpKSB7DQorCXU2NCBzdGFydCwgZW5kLCBib3VuZDsN CisJDQorCS8qIHVuYWxpZ25lZCByZXF1ZXN0ICovDQorCWlmICh1bmxpa2VseShiaW8tPmJpX3Nl Y3RvciAmIChaUkFNX1NFQ1RPUl9QRVJfTE9HSUNBTF9CTE9DSyAtIDEpKSkNCisJCXJldHVybiAw Ow0KKwlpZiAodW5saWtlbHkoYmlvLT5iaV9zaXplICYgKFpSQU1fTE9HSUNBTF9CTE9DS19TSVpF IC0gMSkpKQ0KKwkJcmV0dXJuIDA7DQogDQorCXN0YXJ0ID0gYmlvLT5iaV9zZWN0b3I7DQorCWVu ZCA9IHN0YXJ0ICsgKGJpby0+Ymlfc2l6ZSA+PiBTRUNUT1JfU0hJRlQpOw0KKwlib3VuZCA9IHpy YW0tPmRpc2tzaXplID4+IFNFQ1RPUl9TSElGVDsNCisJLyogb3V0IG9mIHJhbmdlIHJhbmdlICov DQorCWlmICh1bmxpa2VseShzdGFydCA+PSBib3VuZCB8fCBlbmQgPj0gYm91bmQgfHwgc3RhcnQg PiBlbmQpKQ0KIAkJcmV0dXJuIDA7DQotCX0NCiANCiAJLyogSS9PIHJlcXVlc3QgaXMgdmFsaWQg Ki8NCiAJcmV0dXJuIDE7DQpAQCAtNzAyLDcgKzcwOSw5IEBAIHN0YXRpYyB2b2lkIHpyYW1fc2xv dF9mcmVlX25vdGlmeShzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LA0KIAlzdHJ1Y3QgenJhbSAq enJhbTsNCiANCiAJenJhbSA9IGJkZXYtPmJkX2Rpc2stPnByaXZhdGVfZGF0YTsNCisJZG93bl93 cml0ZSgmenJhbS0+bG9jayk7DQogCXpyYW1fZnJlZV9wYWdlKHpyYW0sIGluZGV4KTsNCisJdXBf d3JpdGUoJnpyYW0tPmxvY2spOw0KIAl6cmFtX3N0YXQ2NF9pbmMoenJhbSwgJnpyYW0tPnN0YXRz Lm5vdGlmeV9mcmVlKTsNCiB9DQogDQpAQCAtNzEzLDcgKzcyMiw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgYmxvY2tfZGV2aWNlX29wZXJhdGlvbnMgenJhbV9kZXZvcHMgPSB7DQogDQogc3RhdGlj IGludCBjcmVhdGVfZGV2aWNlKHN0cnVjdCB6cmFtICp6cmFtLCBpbnQgZGV2aWNlX2lkKQ0KIHsN Ci0JaW50IHJldCA9IDA7DQorCWludCByZXQgPSAtRU5PTUVNOw0KIA0KIAlpbml0X3J3c2VtKCZ6 cmFtLT5sb2NrKTsNCiAJaW5pdF9yd3NlbSgmenJhbS0+aW5pdF9sb2NrKTsNCkBAIC03MjMsNyAr NzMyLDYgQEAgc3RhdGljIGludCBjcmVhdGVfZGV2aWNlKHN0cnVjdCB6cmFtICp6cmFtLCBpbnQg ZGV2aWNlX2lkKQ0KIAlpZiAoIXpyYW0tPnF1ZXVlKSB7DQogCQlwcl9lcnIoIkVycm9yIGFsbG9j YXRpbmcgZGlzayBxdWV1ZSBmb3IgZGV2aWNlICVkXG4iLA0KIAkJCWRldmljZV9pZCk7DQotCQly ZXQgPSAtRU5PTUVNOw0KIAkJZ290byBvdXQ7DQogCX0NCiANCkBAIC03MzMsMTEgKzc0MSw5IEBA IHN0YXRpYyBpbnQgY3JlYXRlX2RldmljZShzdHJ1Y3QgenJhbSAqenJhbSwgaW50IGRldmljZV9p ZCkNCiAJIC8qIGdlbmRpc2sgc3RydWN0dXJlICovDQogCXpyYW0tPmRpc2sgPSBhbGxvY19kaXNr KDEpOw0KIAlpZiAoIXpyYW0tPmRpc2spIHsNCi0JCWJsa19jbGVhbnVwX3F1ZXVlKHpyYW0tPnF1 ZXVlKTsNCiAJCXByX3dhcm5pbmcoIkVycm9yIGFsbG9jYXRpbmcgZGlzayBzdHJ1Y3R1cmUgZm9y IGRldmljZSAlZFxuIiwNCiAJCQlkZXZpY2VfaWQpOw0KLQkJcmV0ID0gLUVOT01FTTsNCi0JCWdv dG8gb3V0Ow0KKwkJZ290byBvdXRfZnJlZV9xdWV1ZTsNCiAJfQ0KIA0KIAl6cmFtLT5kaXNrLT5t YWpvciA9IHpyYW1fbWFqb3I7DQpAQCAtNzY2LDExICs3NzIsMTcgQEAgc3RhdGljIGludCBjcmVh dGVfZGV2aWNlKHN0cnVjdCB6cmFtICp6cmFtLCBpbnQgZGV2aWNlX2lkKQ0KIAkJCQkmenJhbV9k aXNrX2F0dHJfZ3JvdXApOw0KIAlpZiAocmV0IDwgMCkgew0KIAkJcHJfd2FybmluZygiRXJyb3Ig Y3JlYXRpbmcgc3lzZnMgZ3JvdXAiKTsNCi0JCWdvdG8gb3V0Ow0KKwkJZ290byBvdXRfZnJlZV9k aXNrOw0KIAl9DQogDQogCXpyYW0tPmluaXRfZG9uZSA9IDA7DQorCXJldHVybiAwOw0KIA0KK291 dF9mcmVlX2Rpc2s6DQorCWRlbF9nZW5kaXNrKHpyYW0tPmRpc2spOw0KKwlwdXRfZGlzayh6cmFt LT5kaXNrKTsNCitvdXRfZnJlZV9xdWV1ZToNCisJYmxrX2NsZWFudXBfcXVldWUoenJhbS0+cXVl dWUpOw0KIG91dDoNCiAJcmV0dXJuIHJldDsNCiB9DQpAQCAtODQ2LDkgKzg1OCwxMSBAQCBzdGF0 aWMgdm9pZCBfX2V4aXQgenJhbV9leGl0KHZvaWQpDQogCWZvciAoaSA9IDA7IGkgPCB6cmFtX251 bV9kZXZpY2VzOyBpKyspIHsNCiAJCXpyYW0gPSAmenJhbV9kZXZpY2VzW2ldOw0KIA0KKwkJZ2V0 X2Rpc2soenJhbS0+ZGlzayk7DQogCQlkZXN0cm95X2RldmljZSh6cmFtKTsNCiAJCWlmICh6cmFt LT5pbml0X2RvbmUpDQogCQkJenJhbV9yZXNldF9kZXZpY2UoenJhbSk7DQorCQlwdXRfZGlzayh6 cmFtLT5kaXNrKTsNCiAJfQ0KIA0KIAl1bnJlZ2lzdGVyX2Jsa2Rldih6cmFtX21ham9yLCAienJh bSIpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy96cmFtL3pyYW1fZHJ2LmggYi9kcml2 ZXJzL3N0YWdpbmcvenJhbS96cmFtX2Rydi5oDQppbmRleCBlNWNkMjQ2Li44N2YyZmVjIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9zdGFnaW5nL3pyYW0venJhbV9kcnYuaA0KKysrIGIvZHJpdmVycy9z dGFnaW5nL3pyYW0venJhbV9kcnYuaA0KQEAgLTEwNyw4ICsxMDcsOSBAQCBzdHJ1Y3QgenJhbSB7 DQogCXZvaWQgKmNvbXByZXNzX2J1ZmZlcjsNCiAJc3RydWN0IHRhYmxlICp0YWJsZTsNCiAJc3Bp bmxvY2tfdCBzdGF0NjRfbG9jazsJLyogcHJvdGVjdCA2NC1iaXQgc3RhdHMgKi8NCi0Jc3RydWN0 IHJ3X3NlbWFwaG9yZSBsb2NrOyAvKiBwcm90ZWN0IGNvbXByZXNzaW9uIGJ1ZmZlcnMgYW5kIHRh YmxlDQotCQkJCSAgICogYWdhaW5zdCBjb25jdXJyZW50IHJlYWQgYW5kIHdyaXRlcyAqLw0KKwlz dHJ1Y3Qgcndfc2VtYXBob3JlIGxvY2s7IC8qIHByb3RlY3QgY29tcHJlc3Npb24gYnVmZmVycywg dGFibGUsDQorCQkJCSAgICogMzJiaXQgc3RhdCBjb3VudGVycyBhZ2FpbnN0IGNvbmN1cnJlbnQN CisJCQkJICAgKiBub3RpZmljYXRpb25zLCByZWFkcyBhbmQgd3JpdGVzICovDQogCXN0cnVjdCBy ZXF1ZXN0X3F1ZXVlICpxdWV1ZTsNCiAJc3RydWN0IGdlbmRpc2sgKmRpc2s7DQogCWludCBpbml0 X2RvbmU7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3pyYW0venJhbV9zeXNmcy5jIGIv ZHJpdmVycy9zdGFnaW5nL3pyYW0venJhbV9zeXNmcy5jDQppbmRleCAwZWE4ZWQyLi4xZmFlMWU5 IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zdGFnaW5nL3pyYW0venJhbV9zeXNmcy5jDQorKysgYi9k cml2ZXJzL3N0YWdpbmcvenJhbS96cmFtX3N5c2ZzLmMNCkBAIC0xODYsMTAgKzE4NiwxMiBAQCBz dGF0aWMgc3NpemVfdCBtZW1fdXNlZF90b3RhbF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwNCiAJ dTY0IHZhbCA9IDA7DQogCXN0cnVjdCB6cmFtICp6cmFtID0gZGV2X3RvX3pyYW0oZGV2KTsNCiAN CisJZG93bl9yZWFkKCZ6cmFtLT5pbml0X2xvY2spOw0KIAlpZiAoenJhbS0+aW5pdF9kb25lKSB7 DQogCQl2YWwgPSB4dl9nZXRfdG90YWxfc2l6ZV9ieXRlcyh6cmFtLT5tZW1fcG9vbCkgKw0KIAkJ CSgodTY0KSh6cmFtLT5zdGF0cy5wYWdlc19leHBhbmQpIDw8IFBBR0VfU0hJRlQpOw0KIAl9DQor CXVwX3JlYWQoJnpyYW0tPmluaXRfbG9jayk7DQogDQogCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVs bHVcbiIsIHZhbCk7DQogfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGFyZ2V0L2lzY3NpL2lzY3Np X3RhcmdldF9jb25maWdmcy5jIGIvZHJpdmVycy90YXJnZXQvaXNjc2kvaXNjc2lfdGFyZ2V0X2Nv bmZpZ2ZzLmMNCmluZGV4IDgzZGNmNDkuLjNiODAyODUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3Rh cmdldC9pc2NzaS9pc2NzaV90YXJnZXRfY29uZmlnZnMuYw0KKysrIGIvZHJpdmVycy90YXJnZXQv aXNjc2kvaXNjc2lfdGFyZ2V0X2NvbmZpZ2ZzLmMNCkBAIC00MTksNyArNDE5LDcgQEAgc3RhdGlj IHNzaXplX3QgX19pc2NzaV8jI3ByZWZpeCMjX3N0b3JlXyMjbmFtZSgJCQkJXA0KIAlpZiAoIWNh cGFibGUoQ0FQX1NZU19BRE1JTikpCQkJCQlcDQogCQlyZXR1cm4gLUVQRVJNOwkJCQkJCVwNCiAJ CQkJCQkJCQlcDQotCXNucHJpbnRmKGF1dGgtPm5hbWUsIFBBR0VfU0laRSwgIiVzIiwgcGFnZSk7 CQkJXA0KKwlzbnByaW50ZihhdXRoLT5uYW1lLCBzaXplb2YoYXV0aC0+bmFtZSksICIlcyIsIHBh Z2UpOwkJXA0KIAlpZiAoIXN0cm5jbXAoIk5VTEwiLCBhdXRoLT5uYW1lLCA0KSkJCQkJXA0KIAkJ YXV0aC0+bmFmX2ZsYWdzICY9IH5mbGFnczsJCQkJXA0KIAllbHNlCQkJCQkJCQlcDQpkaWZmIC0t Z2l0IGEvZHJpdmVycy90dHkvc2VyaWFsLzgyNTBfcGNpLmMgYi9kcml2ZXJzL3R0eS9zZXJpYWwv ODI1MF9wY2kuYw0KaW5kZXggNjk4NjI1Ni4uNmM5YmNkZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv dHR5L3NlcmlhbC84MjUwX3BjaS5jDQorKysgYi9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MF9wY2ku Yw0KQEAgLTQwODMsMTAgKzQwODMsNiBAQCBzdGF0aWMgc3RydWN0IHBjaV9kZXZpY2VfaWQgc2Vy aWFsX3BjaV90YmxbXSA9IHsNCiAJCVBDSV9WRU5ET1JfSURfSUJNLCAweDAyOTksDQogCQkwLCAw LCBwYm5fYjBfYnRfMl8xMTUyMDAgfSwNCiANCi0JewlQQ0lfVkVORE9SX0lEX05FVE1PUywgUENJ X0RFVklDRV9JRF9ORVRNT1NfOTgzNSwNCi0JCTB4MTAwMCwgMHgwMDEyLA0KLQkJMCwgMCwgcGJu X2IwX2J0XzJfMTE1MjAwIH0sDQotDQogCXsJUENJX1ZFTkRPUl9JRF9ORVRNT1MsIFBDSV9ERVZJ Q0VfSURfTkVUTU9TXzk5MDEsDQogCQkweEEwMDAsIDB4MTAwMCwNCiAJCTAsIDAsIHBibl9iMF8x XzExNTIwMCB9LA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdHR5L3NlcmlhbC9wY2hfdWFydC5jIGIv ZHJpdmVycy90dHkvc2VyaWFsL3BjaF91YXJ0LmMNCmluZGV4IDhkNzBmYmMuLmMwYjQ4NzIgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL3R0eS9zZXJpYWwvcGNoX3VhcnQuYw0KKysrIGIvZHJpdmVycy90 dHkvc2VyaWFsL3BjaF91YXJ0LmMNCkBAIC05NDAsMjIgKzk0MCwzNyBAQCBzdGF0aWMgdW5zaWdu ZWQgaW50IGRtYV9oYW5kbGVfdHgoc3RydWN0IGVnMjB0X3BvcnQgKnByaXYpDQogc3RhdGljIHZv aWQgcGNoX3VhcnRfZXJyX2lyKHN0cnVjdCBlZzIwdF9wb3J0ICpwcml2LCB1bnNpZ25lZCBpbnQg bHNyKQ0KIHsNCiAJdTggZmNyID0gaW9yZWFkOChwcml2LT5tZW1iYXNlICsgVUFSVF9GQ1IpOw0K KwlzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0ID0gJnByaXYtPnBvcnQ7DQorCXN0cnVjdCB0dHlfc3Ry dWN0ICp0dHkgPSB0dHlfcG9ydF90dHlfZ2V0KCZwb3J0LT5zdGF0ZS0+cG9ydCk7DQorCWNoYXIg ICAqZXJyb3JfbXNnWzVdID0ge307DQorCWludCAgICBpID0gMDsNCiANCiAJLyogUmVzZXQgRklG TyAqLw0KIAlmY3IgfD0gVUFSVF9GQ1JfQ0xFQVJfUkNWUjsNCiAJaW93cml0ZTgoZmNyLCBwcml2 LT5tZW1iYXNlICsgVUFSVF9GQ1IpOw0KIA0KIAlpZiAobHNyICYgUENIX1VBUlRfTFNSX0VSUikN Ci0JCWRldl9lcnIoJnByaXYtPnBkZXYtPmRldiwgIkVycm9yIGRhdGEgaW4gRklGT1xuIik7DQor CQllcnJvcl9tc2dbaSsrXSA9ICJFcnJvciBkYXRhIGluIEZJRk9cbiI7DQogDQotCWlmIChsc3Ig JiBVQVJUX0xTUl9GRSkNCi0JCWRldl9lcnIoJnByaXYtPnBkZXYtPmRldiwgIkZyYW1pbmcgRXJy b3JcbiIpOw0KKwlpZiAobHNyICYgVUFSVF9MU1JfRkUpIHsNCisJCXBvcnQtPmljb3VudC5mcmFt ZSsrOw0KKwkJZXJyb3JfbXNnW2krK10gPSAiICBGcmFtaW5nIEVycm9yXG4iOw0KKwl9DQogDQot CWlmIChsc3IgJiBVQVJUX0xTUl9QRSkNCi0JCWRldl9lcnIoJnByaXYtPnBkZXYtPmRldiwgIlBh cml0eSBFcnJvclxuIik7DQorCWlmIChsc3IgJiBVQVJUX0xTUl9QRSkgew0KKwkJcG9ydC0+aWNv dW50LnBhcml0eSsrOw0KKwkJZXJyb3JfbXNnW2krK10gPSAiICBQYXJpdHkgRXJyb3JcbiI7DQor CX0NCiANCi0JaWYgKGxzciAmIFVBUlRfTFNSX09FKQ0KLQkJZGV2X2VycigmcHJpdi0+cGRldi0+ ZGV2LCAiT3ZlcnJ1biBFcnJvclxuIik7DQorCWlmIChsc3IgJiBVQVJUX0xTUl9PRSkgew0KKwkJ cG9ydC0+aWNvdW50Lm92ZXJydW4rKzsNCisJCWVycm9yX21zZ1tpKytdID0gIiAgT3ZlcnJ1biBF cnJvclxuIjsNCisJfQ0KKw0KKwlpZiAodHR5ID09IE5VTEwpIHsNCisJCWZvciAoaSA9IDA7IGVy cm9yX21zZ1tpXSAhPSBOVUxMOyBpKyspDQorCQkJZGV2X2VycigmcHJpdi0+cGRldi0+ZGV2LCBl cnJvcl9tc2dbaV0pOw0KKwl9DQogfQ0KIA0KIHN0YXRpYyBpcnFyZXR1cm5fdCBwY2hfdWFydF9p bnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNi L2dhZGdldC9mX21hc3Nfc3RvcmFnZS5jIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2ZfbWFzc19zdG9y YWdlLmMNCmluZGV4IGE1NTcwYjYuLjhkN2ZiNmIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9n YWRnZXQvZl9tYXNzX3N0b3JhZ2UuYw0KKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2ZfbWFzc19z dG9yYWdlLmMNCkBAIC01MTIsNiArNTEyLDcgQEAgc3RhdGljIGludCBmc2dfc2V0X2hhbHQoc3Ry dWN0IGZzZ19kZXYgKmZzZywgc3RydWN0IHVzYl9lcCAqZXApDQogLyogQ2FsbGVyIG11c3QgaG9s ZCBmc2ctPmxvY2sgKi8NCiBzdGF0aWMgdm9pZCB3YWtldXBfdGhyZWFkKHN0cnVjdCBmc2dfY29t bW9uICpjb21tb24pDQogew0KKwlzbXBfd21iKCk7CS8qIGVuc3VyZSB0aGUgd3JpdGUgb2YgYmgt PnN0YXRlIGlzIGNvbXBsZXRlICovDQogCS8qIFRlbGwgdGhlIG1haW4gdGhyZWFkIHRoYXQgc29t ZXRoaW5nIGhhcyBoYXBwZW5lZCAqLw0KIAljb21tb24tPnRocmVhZF93YWtldXBfbmVlZGVkID0g MTsNCiAJaWYgKGNvbW1vbi0+dGhyZWFkX3Rhc2spDQpAQCAtNzMxLDYgKzczMiw3IEBAIHN0YXRp YyBpbnQgc2xlZXBfdGhyZWFkKHN0cnVjdCBmc2dfY29tbW9uICpjb21tb24pDQogCX0NCiAJX19z ZXRfY3VycmVudF9zdGF0ZShUQVNLX1JVTk5JTkcpOw0KIAljb21tb24tPnRocmVhZF93YWtldXBf bmVlZGVkID0gMDsNCisJc21wX3JtYigpOwkvKiBlbnN1cmUgdGhlIGxhdGVzdCBiaC0+c3RhdGUg aXMgdmlzaWJsZSAqLw0KIAlyZXR1cm4gcmM7DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv dXNiL2hvc3QveGhjaS1tZW0uYyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1tZW0uYw0KaW5kZXgg NTAxOGUzMy4uZWM3MzU0MSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1tZW0u Yw0KKysrIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLW1lbS5jDQpAQCAtMjcxLDYgKzI3MSwxMCBA QCBzdGF0aWMgc3RydWN0IHhoY2lfY29udGFpbmVyX2N0eCAqeGhjaV9hbGxvY19jb250YWluZXJf Y3R4KHN0cnVjdCB4aGNpX2hjZCAqeGhjaQ0KIAkJY3R4LT5zaXplICs9IENUWF9TSVpFKHhoY2kt PmhjY19wYXJhbXMpOw0KIA0KIAljdHgtPmJ5dGVzID0gZG1hX3Bvb2xfYWxsb2MoeGhjaS0+ZGV2 aWNlX3Bvb2wsIGZsYWdzLCAmY3R4LT5kbWEpOw0KKwlpZiAoIWN0eC0+Ynl0ZXMpIHsNCisJCWtm cmVlKGN0eCk7DQorCQlyZXR1cm4gTlVMTDsNCisJfQ0KIAltZW1zZXQoY3R4LT5ieXRlcywgMCwg Y3R4LT5zaXplKTsNCiAJcmV0dXJuIGN0eDsNCiB9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Iv c2VyaWFsL29wdGlvbi5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlvbi5jDQppbmRleCA4ZWEz N2JjLi5iODM2NWE3IDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlvbi5jDQor KysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvb3B0aW9uLmMNCkBAIC0xNTksOCArMTU5LDYgQEAgc3Rh dGljIHZvaWQgb3B0aW9uX2luc3RhdF9jYWxsYmFjayhzdHJ1Y3QgdXJiICp1cmIpOw0KICNkZWZp bmUgTk9WQVRFTFdJUkVMRVNTX1BST0RVQ1RfSFNQQV9FTUJFRERFRF9GVUxMU1BFRUQJMHg5MDAw DQogI2RlZmluZSBOT1ZBVEVMV0lSRUxFU1NfUFJPRFVDVF9IU1BBX0VNQkVEREVEX0hJR0hTUEVF RAkweDkwMDENCiAjZGVmaW5lIE5PVkFURUxXSVJFTEVTU19QUk9EVUNUX0UzNjIJCTB4OTAxMA0K LSNkZWZpbmUgTk9WQVRFTFdJUkVMRVNTX1BST0RVQ1RfRzEJCTB4QTAwMQ0KLSNkZWZpbmUgTk9W QVRFTFdJUkVMRVNTX1BST0RVQ1RfRzFfTQkJMHhBMDAyDQogI2RlZmluZSBOT1ZBVEVMV0lSRUxF U1NfUFJPRFVDVF9HMgkJMHhBMDEwDQogI2RlZmluZSBOT1ZBVEVMV0lSRUxFU1NfUFJPRFVDVF9N QzU1MQkJMHhCMDAxDQogDQpAQCAtNzQ0LDggKzc0Miw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg dXNiX2RldmljZV9pZCBvcHRpb25faWRzW10gPSB7DQogCXsgVVNCX0RFVklDRShOT1ZBVEVMV0lS RUxFU1NfVkVORE9SX0lELCBOT1ZBVEVMV0lSRUxFU1NfUFJPRFVDVF9NQzU0NykgfSwNCiAJeyBV U0JfREVWSUNFKE5PVkFURUxXSVJFTEVTU19WRU5ET1JfSUQsIE5PVkFURUxXSVJFTEVTU19QUk9E VUNUX0VWRE9fRU1CRURERURfSElHSFNQRUVEKSB9LA0KIAl7IFVTQl9ERVZJQ0UoTk9WQVRFTFdJ UkVMRVNTX1ZFTkRPUl9JRCwgTk9WQVRFTFdJUkVMRVNTX1BST0RVQ1RfSFNQQV9FTUJFRERFRF9I SUdIU1BFRUQpIH0sDQotCXsgVVNCX0RFVklDRShOT1ZBVEVMV0lSRUxFU1NfVkVORE9SX0lELCBO T1ZBVEVMV0lSRUxFU1NfUFJPRFVDVF9HMSkgfSwNCi0JeyBVU0JfREVWSUNFKE5PVkFURUxXSVJF TEVTU19WRU5ET1JfSUQsIE5PVkFURUxXSVJFTEVTU19QUk9EVUNUX0cxX00pIH0sDQogCXsgVVNC X0RFVklDRShOT1ZBVEVMV0lSRUxFU1NfVkVORE9SX0lELCBOT1ZBVEVMV0lSRUxFU1NfUFJPRFVD VF9HMikgfSwNCiAJLyogTm92YXRlbCBPdmF0aW9uIE1DNTUxIGEuay5hLiBWZXJpem9uIFVTQjU1 MUwgKi8NCiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhOT1ZBVEVMV0lSRUxFU1Nf VkVORE9SX0lELCBOT1ZBVEVMV0lSRUxFU1NfUFJPRFVDVF9NQzU1MSwgMHhmZiwgMHhmZiwgMHhm ZikgfSwNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvcWNzZXJpYWwuYyBiL2RyaXZl cnMvdXNiL3NlcmlhbC9xY3NlcmlhbC5jDQppbmRleCA1NTM1YzNhLi5lOGM0ZjBjIDEwMDY0NA0K LS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL3Fjc2VyaWFsLmMNCisrKyBiL2RyaXZlcnMvdXNiL3Nl cmlhbC9xY3NlcmlhbC5jDQpAQCAtMzcsNyArMzcsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1 c2JfZGV2aWNlX2lkIGlkX3RhYmxlW10gPSB7DQogCXtERVZJQ0VfRzFLKDB4MDRkYSwgMHgyNTBj KX0sCS8qIFBhbmFzb25pYyBHb2JpIFFETCBkZXZpY2UgKi8NCiAJe0RFVklDRV9HMUsoMHg0MTNj LCAweDgxNzIpfSwJLyogRGVsbCBHb2JpIE1vZGVtIGRldmljZSAqLw0KIAl7REVWSUNFX0cxSygw eDQxM2MsIDB4ODE3MSl9LAkvKiBEZWxsIEdvYmkgUURMIGRldmljZSAqLw0KLQl7REVWSUNFX0cx SygweDE0MTAsIDB4YTAwMSl9LAkvKiBOb3ZhdGVsIEdvYmkgTW9kZW0gZGV2aWNlICovDQorCXtE RVZJQ0VfRzFLKDB4MTQxMCwgMHhhMDAxKX0sCS8qIE5vdmF0ZWwvVmVyaXpvbiBVU0ItMTAwMCAq Lw0KKwl7REVWSUNFX0cxSygweDE0MTAsIDB4YTAwMil9LAkvKiBOb3ZhdGVsIEdvYmkgTW9kZW0g ZGV2aWNlICovDQorCXtERVZJQ0VfRzFLKDB4MTQxMCwgMHhhMDAzKX0sCS8qIE5vdmF0ZWwgR29i aSBNb2RlbSBkZXZpY2UgKi8NCisJe0RFVklDRV9HMUsoMHgxNDEwLCAweGEwMDQpfSwJLyogTm92 YXRlbCBHb2JpIE1vZGVtIGRldmljZSAqLw0KKwl7REVWSUNFX0cxSygweDE0MTAsIDB4YTAwNSl9 LAkvKiBOb3ZhdGVsIEdvYmkgTW9kZW0gZGV2aWNlICovDQorCXtERVZJQ0VfRzFLKDB4MTQxMCwg MHhhMDA2KX0sCS8qIE5vdmF0ZWwgR29iaSBNb2RlbSBkZXZpY2UgKi8NCisJe0RFVklDRV9HMUso MHgxNDEwLCAweGEwMDcpfSwJLyogTm92YXRlbCBHb2JpIE1vZGVtIGRldmljZSAqLw0KIAl7REVW SUNFX0cxSygweDE0MTAsIDB4YTAwOCl9LAkvKiBOb3ZhdGVsIEdvYmkgUURMIGRldmljZSAqLw0K IAl7REVWSUNFX0cxSygweDBiMDUsIDB4MTc3Nil9LAkvKiBBc3VzIEdvYmkgTW9kZW0gZGV2aWNl ICovDQogCXtERVZJQ0VfRzFLKDB4MGIwNSwgMHgxNzc0KX0sCS8qIEFzdXMgR29iaSBRREwgZGV2 aWNlICovDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9jb25zb2xlL3ZnYWNvbi5jIGIvZHJp dmVycy92aWRlby9jb25zb2xlL3ZnYWNvbi5jDQppbmRleCA1ODU1ZDE3Li45ZDhmZWFjIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy92aWRlby9jb25zb2xlL3ZnYWNvbi5jDQorKysgYi9kcml2ZXJzL3Zp ZGVvL2NvbnNvbGUvdmdhY29uLmMNCkBAIC00Miw2ICs0Miw3IEBADQogI2luY2x1ZGUgPGxpbnV4 L2tkLmg+DQogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4NCiAjaW5jbHVkZSA8bGludXgvdnRfa2Vy bi5oPg0KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPg0KICNpbmNsdWRlIDxsaW51eC9zZWxlY3Rp b24uaD4NCiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4NCiAjaW5jbHVkZSA8bGludXgvaW9w b3J0Lmg+DQpAQCAtMTEyNCwxMSArMTEyNSwxNSBAQCBzdGF0aWMgaW50IHZnYWNvbl9kb19mb250 X29wKHN0cnVjdCB2Z2FzdGF0ZSAqc3RhdGUsY2hhciAqYXJnLGludCBzZXQsaW50IGNoNTEyKQ0K IA0KIAlpZiAoYXJnKSB7DQogCQlpZiAoc2V0KQ0KLQkJCWZvciAoaSA9IDA7IGkgPCBjbWFwc3o7 IGkrKykNCisJCQlmb3IgKGkgPSAwOyBpIDwgY21hcHN6OyBpKyspIHsNCiAJCQkJdmdhX3dyaXRl YihhcmdbaV0sIGNoYXJtYXAgKyBpKTsNCisJCQkJY29uZF9yZXNjaGVkKCk7DQorCQkJfQ0KIAkJ ZWxzZQ0KLQkJCWZvciAoaSA9IDA7IGkgPCBjbWFwc3o7IGkrKykNCisJCQlmb3IgKGkgPSAwOyBp IDwgY21hcHN6OyBpKyspIHsNCiAJCQkJYXJnW2ldID0gdmdhX3JlYWRiKGNoYXJtYXAgKyBpKTsN CisJCQkJY29uZF9yZXNjaGVkKCk7DQorCQkJfQ0KIA0KIAkJLyoNCiAJCSAqIEluIDUxMi1jaGFy YWN0ZXIgbW9kZSwgdGhlIGNoYXJhY3RlciBtYXAgaXMgbm90IGNvbnRpZ3VvdXMgaWYNCkBAIC0x MTM5LDExICsxMTQ0LDE1IEBAIHN0YXRpYyBpbnQgdmdhY29uX2RvX2ZvbnRfb3Aoc3RydWN0IHZn YXN0YXRlICpzdGF0ZSxjaGFyICphcmcsaW50IHNldCxpbnQgY2g1MTIpDQogCQkJY2hhcm1hcCAr PSAyICogY21hcHN6Ow0KIAkJCWFyZyArPSBjbWFwc3o7DQogCQkJaWYgKHNldCkNCi0JCQkJZm9y IChpID0gMDsgaSA8IGNtYXBzejsgaSsrKQ0KKwkJCQlmb3IgKGkgPSAwOyBpIDwgY21hcHN6OyBp KyspIHsNCiAJCQkJCXZnYV93cml0ZWIoYXJnW2ldLCBjaGFybWFwICsgaSk7DQorCQkJCQljb25k X3Jlc2NoZWQoKTsNCisJCQkJfQ0KIAkJCWVsc2UNCi0JCQkJZm9yIChpID0gMDsgaSA8IGNtYXBz ejsgaSsrKQ0KKwkJCQlmb3IgKGkgPSAwOyBpIDwgY21hcHN6OyBpKyspIHsNCiAJCQkJCWFyZ1tp XSA9IHZnYV9yZWFkYihjaGFybWFwICsgaSk7DQorCQkJCQljb25kX3Jlc2NoZWQoKTsNCisJCQkJ fQ0KIAkJfQ0KIAl9DQogDQpkaWZmIC0tZ2l0IGEvZnMvYmxvY2tfZGV2LmMgYi9mcy9ibG9ja19k ZXYuYw0KaW5kZXggNTNhYjI3My4uYzEwMzI2NyAxMDA2NDQNCi0tLSBhL2ZzL2Jsb2NrX2Rldi5j DQorKysgYi9mcy9ibG9ja19kZXYuYw0KQEAgLTU1LDE3ICs1NSwyNCBAQCBzdGF0aWMgdm9pZCBi ZGV2X2lub2RlX3N3aXRjaF9iZGkoc3RydWN0IGlub2RlICppbm9kZSwNCiAJCQlzdHJ1Y3QgYmFj a2luZ19kZXZfaW5mbyAqZHN0KQ0KIHsNCiAJc3RydWN0IGJhY2tpbmdfZGV2X2luZm8gKm9sZCA9 IGlub2RlLT5pX2RhdGEuYmFja2luZ19kZXZfaW5mbzsNCisJYm9vbCB3YWtldXBfYmRpID0gZmFs c2U7DQogDQogCWlmICh1bmxpa2VseShkc3QgPT0gb2xkKSkJCS8qIGRlYWRsb2NrIGF2b2lkYW5j ZSAqLw0KIAkJcmV0dXJuOw0KIAliZGlfbG9ja190d28oJm9sZC0+d2IsICZkc3QtPndiKTsNCiAJ c3Bpbl9sb2NrKCZpbm9kZS0+aV9sb2NrKTsNCiAJaW5vZGUtPmlfZGF0YS5iYWNraW5nX2Rldl9p bmZvID0gZHN0Ow0KLQlpZiAoaW5vZGUtPmlfc3RhdGUgJiBJX0RJUlRZKQ0KKwlpZiAoaW5vZGUt Pmlfc3RhdGUgJiBJX0RJUlRZKSB7DQorCQlpZiAoYmRpX2NhcF93cml0ZWJhY2tfZGlydHkoZHN0 KSAmJiAhd2JfaGFzX2RpcnR5X2lvKCZkc3QtPndiKSkNCisJCQl3YWtldXBfYmRpID0gdHJ1ZTsN CiAJCWxpc3RfbW92ZSgmaW5vZGUtPmlfd2JfbGlzdCwgJmRzdC0+d2IuYl9kaXJ0eSk7DQorCX0N CiAJc3Bpbl91bmxvY2soJmlub2RlLT5pX2xvY2spOw0KIAlzcGluX3VubG9jaygmb2xkLT53Yi5s aXN0X2xvY2spOw0KIAlzcGluX3VubG9jaygmZHN0LT53Yi5saXN0X2xvY2spOw0KKw0KKwlpZiAo d2FrZXVwX2JkaSkNCisJCWJkaV93YWtldXBfdGhyZWFkX2RlbGF5ZWQoZHN0KTsNCiB9DQogDQog c2VjdG9yX3QgYmxrZGV2X21heF9ibG9jayhzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2KQ0KZGlm ZiAtLWdpdCBhL2ZzL2NlcGgvc3VwZXIuYyBiL2ZzL2NlcGgvc3VwZXIuYw0KaW5kZXggYjQ4ZjE1 Zi4uZGUyNjhhOCAxMDA2NDQNCi0tLSBhL2ZzL2NlcGgvc3VwZXIuYw0KKysrIGIvZnMvY2VwaC9z dXBlci5jDQpAQCAtNzAsOCArNzAsMTQgQEAgc3RhdGljIGludCBjZXBoX3N0YXRmcyhzdHJ1Y3Qg ZGVudHJ5ICpkZW50cnksIHN0cnVjdCBrc3RhdGZzICpidWYpDQogCS8qDQogCSAqIGV4cHJlc3Mg dXRpbGl6YXRpb24gaW4gdGVybXMgb2YgbGFyZ2UgYmxvY2tzIHRvIGF2b2lkDQogCSAqIG92ZXJm bG93IG9uIDMyLWJpdCBtYWNoaW5lcy4NCisJICoNCisJICogTk9URTogZm9yIHRoZSB0aW1lIGJl aW5nLCB3ZSBtYWtlIGJzaXplID09IGZyc2l6ZSB0byBodW1vcg0KKwkgKiBub3QteWV0LWFuY2ll bnQgdmVyc2lvbnMgb2YgZ2xpYmMgdGhhdCBhcmUgYnJva2VuLg0KKwkgKiBTb21lZGF5LCB3ZSB3 aWxsIHByb2JhYmx5IHdhbnQgdG8gcmVwb3J0IGEgcmVhbCBibG9jaw0KKwkgKiBzaXplLi4uICB3 aGF0ZXZlciB0aGF0IG1heSBtZWFuIGZvciBhIG5ldHdvcmsgZmlsZSBzeXN0ZW0hDQogCSAqLw0K IAlidWYtPmZfYnNpemUgPSAxIDw8IENFUEhfQkxPQ0tfU0hJRlQ7DQorCWJ1Zi0+Zl9mcnNpemUg PSAxIDw8IENFUEhfQkxPQ0tfU0hJRlQ7DQogCWJ1Zi0+Zl9ibG9ja3MgPSBsZTY0X3RvX2NwdShz dC5rYikgPj4gKENFUEhfQkxPQ0tfU0hJRlQtMTApOw0KIAlidWYtPmZfYmZyZWUgPSBsZTY0X3Rv X2NwdShzdC5rYl9hdmFpbCkgPj4gKENFUEhfQkxPQ0tfU0hJRlQtMTApOw0KIAlidWYtPmZfYmF2 YWlsID0gbGU2NF90b19jcHUoc3Qua2JfYXZhaWwpID4+IChDRVBIX0JMT0NLX1NISUZULTEwKTsN CkBAIC03OSw3ICs4NSw2IEBAIHN0YXRpYyBpbnQgY2VwaF9zdGF0ZnMoc3RydWN0IGRlbnRyeSAq ZGVudHJ5LCBzdHJ1Y3Qga3N0YXRmcyAqYnVmKQ0KIAlidWYtPmZfZmlsZXMgPSBsZTY0X3RvX2Nw dShzdC5udW1fb2JqZWN0cyk7DQogCWJ1Zi0+Zl9mZnJlZSA9IC0xOw0KIAlidWYtPmZfbmFtZWxl biA9IE5BTUVfTUFYOw0KLQlidWYtPmZfZnJzaXplID0gUEFHRV9DQUNIRV9TSVpFOw0KIA0KIAkv KiBsZWF2ZSBmc2lkIGxpdHRsZS1lbmRpYW4sIHJlZ2FyZGxlc3Mgb2YgaG9zdCBlbmRpYW5uZXNz ICovDQogCWZzaWQgPSAqKHU2NCAqKSgmbW9ubWFwLT5mc2lkKSBeICooKHU2NCAqKSZtb25tYXAt PmZzaWQgKyAxKTsNCmRpZmYgLS1naXQgYS9mcy9jZXBoL3N1cGVyLmggYi9mcy9jZXBoL3N1cGVy LmgNCmluZGV4IGVkY2JmMzcuLmEwOTc4MTcgMTAwNjQ0DQotLS0gYS9mcy9jZXBoL3N1cGVyLmgN CisrKyBiL2ZzL2NlcGgvc3VwZXIuaA0KQEAgLTIxLDcgKzIxLDcgQEANCiANCiAvKiBsYXJnZSBn cmFudWxhcml0eSBmb3Igc3RhdGZzIHV0aWxpemF0aW9uIHN0YXRzIHRvIGZhY2lsaXRhdGUNCiAg KiBsYXJnZSB2b2x1bWUgc2l6ZXMgb24gMzItYml0IG1hY2hpbmVzLiAqLw0KLSNkZWZpbmUgQ0VQ SF9CTE9DS19TSElGVCAgIDIwICAvKiAxIE1CICovDQorI2RlZmluZSBDRVBIX0JMT0NLX1NISUZU ICAgMjIgIC8qIDQgTUIgKi8NCiAjZGVmaW5lIENFUEhfQkxPQ0sgICAgICAgICAoMSA8PCBDRVBI X0JMT0NLX1NISUZUKQ0KIA0KICNkZWZpbmUgQ0VQSF9NT1VOVF9PUFRfRElSU1RBVCAgICAgICAg ICgxPDw0KSAvKiBgY2F0IGRpcm5hbWVgIGZvciBzdGF0cyAqLw0KZGlmZiAtLWdpdCBhL2ZzL2Np ZnMvY2lmc191bmljb2RlLmggYi9mcy9jaWZzL2NpZnNfdW5pY29kZS5oDQppbmRleCA2ZDAyZmQ1 Li5hYWIxOGZlIDEwMDY0NA0KLS0tIGEvZnMvY2lmcy9jaWZzX3VuaWNvZGUuaA0KKysrIGIvZnMv Y2lmcy9jaWZzX3VuaWNvZGUuaA0KQEAgLTMyMywxNCArMzIzLDE0IEBAIFVuaVRvdXBwZXIocmVn aXN0ZXIgd2NoYXJfdCB1YykNCiAvKg0KICAqIFVuaVN0cnVwcjogIFVwcGVyIGNhc2UgYSB1bmlj b2RlIHN0cmluZw0KICAqLw0KLXN0YXRpYyBpbmxpbmUgd2NoYXJfdCAqDQotVW5pU3RydXByKHJl Z2lzdGVyIHdjaGFyX3QgKnVwaW4pDQorc3RhdGljIGlubGluZSBfX2xlMTYgKg0KK1VuaVN0cnVw cihyZWdpc3RlciBfX2xlMTYgKnVwaW4pDQogew0KLQlyZWdpc3RlciB3Y2hhcl90ICp1cDsNCisJ cmVnaXN0ZXIgX19sZTE2ICp1cDsNCiANCiAJdXAgPSB1cGluOw0KIAl3aGlsZSAoKnVwKSB7CQkv KiBGb3IgYWxsIGNoYXJhY3RlcnMgKi8NCi0JCSp1cCA9IFVuaVRvdXBwZXIoKnVwKTsNCisJCSp1 cCA9IGNwdV90b19sZTE2KFVuaVRvdXBwZXIobGUxNl90b19jcHUoKnVwKSkpOw0KIAkJdXArKzsN CiAJfQ0KIAlyZXR1cm4gdXBpbjsJCS8qIFJldHVybiBpbnB1dCBwb2ludGVyICovDQpkaWZmIC0t Z2l0IGEvZnMvY2lmcy9jaWZzZW5jcnlwdC5jIGIvZnMvY2lmcy9jaWZzZW5jcnlwdC5jDQppbmRl eCA1ZDliOWFjLi5jZGNkNjY1IDEwMDY0NA0KLS0tIGEvZnMvY2lmcy9jaWZzZW5jcnlwdC5jDQor KysgYi9mcy9jaWZzL2NpZnNlbmNyeXB0LmMNCkBAIC0zOTQsNyArMzk0LDcgQEAgc3RhdGljIGlu dCBjYWxjX250bG12Ml9oYXNoKHN0cnVjdCBjaWZzX3NlcyAqc2VzLCBjaGFyICpudGxtdjJfaGFz aCwNCiAJaW50IHJjID0gMDsNCiAJaW50IGxlbjsNCiAJY2hhciBudF9oYXNoW0NJRlNfTlRIQVNI X1NJWkVdOw0KLQl3Y2hhcl90ICp1c2VyOw0KKwlfX2xlMTYgKnVzZXI7DQogCXdjaGFyX3QgKmRv bWFpbjsNCiAJd2NoYXJfdCAqc2VydmVyOw0KIA0KQEAgLTQxOSw3ICs0MTksNyBAQCBzdGF0aWMg aW50IGNhbGNfbnRsbXYyX2hhc2goc3RydWN0IGNpZnNfc2VzICpzZXMsIGNoYXIgKm50bG12Ml9o YXNoLA0KIAkJcmV0dXJuIHJjOw0KIAl9DQogDQotCS8qIGNvbnZlcnQgc2VzLT51c2VyX25hbWUg dG8gdW5pY29kZSBhbmQgdXBwZXJjYXNlICovDQorCS8qIGNvbnZlcnQgc2VzLT51c2VyX25hbWUg dG8gdW5pY29kZSAqLw0KIAlsZW4gPSBzdHJsZW4oc2VzLT51c2VyX25hbWUpOw0KIAl1c2VyID0g a21hbGxvYygyICsgKGxlbiAqIDIpLCBHRlBfS0VSTkVMKTsNCiAJaWYgKHVzZXIgPT0gTlVMTCkg ew0KQEAgLTQyNyw3ICs0MjcsNyBAQCBzdGF0aWMgaW50IGNhbGNfbnRsbXYyX2hhc2goc3RydWN0 IGNpZnNfc2VzICpzZXMsIGNoYXIgKm50bG12Ml9oYXNoLA0KIAkJcmMgPSAtRU5PTUVNOw0KIAkJ cmV0dXJuIHJjOw0KIAl9DQotCWxlbiA9IGNpZnNfc3RydG9VQ1MoKF9fbGUxNiAqKXVzZXIsIHNl cy0+dXNlcl9uYW1lLCBsZW4sIG5sc19jcCk7DQorCWxlbiA9IGNpZnNfc3RydG9VQ1ModXNlciwg c2VzLT51c2VyX25hbWUsIGxlbiwgbmxzX2NwKTsNCiAJVW5pU3RydXByKHVzZXIpOw0KIA0KIAly YyA9IGNyeXB0b19zaGFzaF91cGRhdGUoJnNlcy0+c2VydmVyLT5zZWNtZWNoLnNkZXNjaG1hY21k NS0+c2hhc2gsDQpkaWZmIC0tZ2l0IGEvZnMvZXhlYy5jIGIvZnMvZXhlYy5jDQppbmRleCAzMTJl Mjk3Li5hMmQwZTUxIDEwMDY0NA0KLS0tIGEvZnMvZXhlYy5jDQorKysgYi9mcy9leGVjLmMNCkBA IC0xMTU5LDEzICsxMTU5LDYgQEAgdm9pZCBzZXR1cF9uZXdfZXhlYyhzdHJ1Y3QgbGludXhfYmlu cHJtICogYnBybSkNCiAJCQlzZXRfZHVtcGFibGUoY3VycmVudC0+bW0sIHN1aWRfZHVtcGFibGUp Ow0KIAl9DQogDQotCS8qDQotCSAqIEZsdXNoIHBlcmZvcm1hbmNlIGNvdW50ZXJzIHdoZW4gY3Jv c3NpbmcgYQ0KLQkgKiBzZWN1cml0eSBkb21haW46DQotCSAqLw0KLQlpZiAoIWdldF9kdW1wYWJs ZShjdXJyZW50LT5tbSkpDQotCQlwZXJmX2V2ZW50X2V4aXRfdGFzayhjdXJyZW50KTsNCi0NCiAJ LyogQW4gZXhlYyBjaGFuZ2VzIG91ciBkb21haW4uIFdlIGFyZSBubyBsb25nZXIgcGFydCBvZiB0 aGUgdGhyZWFkDQogCSAgIGdyb3VwICovDQogDQpAQCAtMTIyOSw2ICsxMjIyLDE1IEBAIHZvaWQg aW5zdGFsbF9leGVjX2NyZWRzKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pDQogDQogCWNvbW1p dF9jcmVkcyhicHJtLT5jcmVkKTsNCiAJYnBybS0+Y3JlZCA9IE5VTEw7DQorDQorCS8qDQorCSAq IERpc2FibGUgbW9uaXRvcmluZyBmb3IgcmVndWxhciB1c2Vycw0KKwkgKiB3aGVuIGV4ZWN1dGlu ZyBzZXR1aWQgYmluYXJpZXMuIE11c3QNCisJICogd2FpdCB1bnRpbCBuZXcgY3JlZGVudGlhbHMg YXJlIGNvbW1pdHRlZA0KKwkgKiBieSBjb21taXRfY3JlZHMoKSBhYm92ZQ0KKwkgKi8NCisJaWYg KGdldF9kdW1wYWJsZShjdXJyZW50LT5tbSkgIT0gU1VJRF9EVU1QX1VTRVIpDQorCQlwZXJmX2V2 ZW50X2V4aXRfdGFzayhjdXJyZW50KTsNCiAJLyoNCiAJICogY3JlZF9ndWFyZF9tdXRleCBtdXN0 IGJlIGhlbGQgYXQgbGVhc3QgdG8gdGhpcyBwb2ludCB0byBwcmV2ZW50DQogCSAqIHB0cmFjZV9h dHRhY2goKSBmcm9tIGFsdGVyaW5nIG91ciBkZXRlcm1pbmF0aW9uIG9mIHRoZSB0YXNrJ3MNCmRp ZmYgLS1naXQgYS9mcy9leHQzL25hbWVpLmMgYi9mcy9leHQzL25hbWVpLmMNCmluZGV4IDY0MmRj NmQuLjEyNzJkZmIgMTAwNjQ0DQotLS0gYS9mcy9leHQzL25hbWVpLmMNCisrKyBiL2ZzL2V4dDMv bmFtZWkuYw0KQEAgLTU4NSwxMSArNTg1LDggQEAgc3RhdGljIGludCBodHJlZV9kaXJibG9ja190 b190cmVlKHN0cnVjdCBmaWxlICpkaXJfZmlsZSwNCiAJCWlmICghZXh0M19jaGVja19kaXJfZW50 cnkoImh0cmVlX2RpcmJsb2NrX3RvX3RyZWUiLCBkaXIsIGRlLCBiaCwNCiAJCQkJCShibG9jazw8 RVhUM19CTE9DS19TSVpFX0JJVFMoZGlyLT5pX3NiKSkNCiAJCQkJCQkrKChjaGFyICopZGUgLSBi aC0+Yl9kYXRhKSkpIHsNCi0JCQkvKiBPbiBlcnJvciwgc2tpcCB0aGUgZl9wb3MgdG8gdGhlIG5l eHQgYmxvY2suICovDQotCQkJZGlyX2ZpbGUtPmZfcG9zID0gKGRpcl9maWxlLT5mX3BvcyB8DQot CQkJCQkoZGlyLT5pX3NiLT5zX2Jsb2Nrc2l6ZSAtIDEpKSArIDE7DQotCQkJYnJlbHNlIChiaCk7 DQotCQkJcmV0dXJuIGNvdW50Ow0KKwkJCS8qIHNpbGVudGx5IGlnbm9yZSB0aGUgcmVzdCBvZiB0 aGUgYmxvY2sgKi8NCisJCQlicmVhazsNCiAJCX0NCiAJCWV4dDNmc19kaXJoYXNoKGRlLT5uYW1l LCBkZS0+bmFtZV9sZW4sIGhpbmZvKTsNCiAJCWlmICgoaGluZm8tPmhhc2ggPCBzdGFydF9oYXNo KSB8fA0KZGlmZiAtLWdpdCBhL2ZzL2V4dDQvZXh0ZW50cy5jIGIvZnMvZXh0NC9leHRlbnRzLmMN CmluZGV4IGNlMGJjMjUuLjNlOGZjODAgMTAwNjQ0DQotLS0gYS9mcy9leHQ0L2V4dGVudHMuYw0K KysrIGIvZnMvZXh0NC9leHRlbnRzLmMNCkBAIC00ODAxLDcgKzQ4MDEsNyBAQCBzdGF0aWMgaW50 IGV4dDRfeGF0dHJfZmllbWFwKHN0cnVjdCBpbm9kZSAqaW5vZGUsDQogCQllcnJvciA9IGV4dDRf Z2V0X2lub2RlX2xvYyhpbm9kZSwgJmlsb2MpOw0KIAkJaWYgKGVycm9yKQ0KIAkJCXJldHVybiBl cnJvcjsNCi0JCXBoeXNpY2FsID0gaWxvYy5iaC0+Yl9ibG9ja25yIDw8IGJsb2NrYml0czsNCisJ CXBoeXNpY2FsID0gKF9fdTY0KWlsb2MuYmgtPmJfYmxvY2tuciA8PCBibG9ja2JpdHM7DQogCQlv ZmZzZXQgPSBFWFQ0X0dPT0RfT0xEX0lOT0RFX1NJWkUgKw0KIAkJCQlFWFQ0X0koaW5vZGUpLT5p X2V4dHJhX2lzaXplOw0KIAkJcGh5c2ljYWwgKz0gb2Zmc2V0Ow0KQEAgLTQ4MDksNyArNDgwOSw3 IEBAIHN0YXRpYyBpbnQgZXh0NF94YXR0cl9maWVtYXAoc3RydWN0IGlub2RlICppbm9kZSwNCiAJ CWZsYWdzIHw9IEZJRU1BUF9FWFRFTlRfREFUQV9JTkxJTkU7DQogCQlicmVsc2UoaWxvYy5iaCk7 DQogCX0gZWxzZSB7IC8qIGV4dGVybmFsIGJsb2NrICovDQotCQlwaHlzaWNhbCA9IEVYVDRfSShp bm9kZSktPmlfZmlsZV9hY2wgPDwgYmxvY2tiaXRzOw0KKwkJcGh5c2ljYWwgPSAoX191NjQpRVhU NF9JKGlub2RlKS0+aV9maWxlX2FjbCA8PCBibG9ja2JpdHM7DQogCQlsZW5ndGggPSBpbm9kZS0+ aV9zYi0+c19ibG9ja3NpemU7DQogCX0NCiANCmRpZmYgLS1naXQgYS9mcy9leHQ0L2lub2RlLmMg Yi9mcy9leHQ0L2lub2RlLmMNCmluZGV4IDAyNWI0YjYuLjQ1Nzc4YTYgMTAwNjQ0DQotLS0gYS9m cy9leHQ0L2lub2RlLmMNCisrKyBiL2ZzL2V4dDQvaW5vZGUuYw0KQEAgLTQzMzUsNyArNDMzNSw3 IEBAIGludCBleHQ0X2dldGF0dHIoc3RydWN0IHZmc21vdW50ICptbnQsIHN0cnVjdCBkZW50cnkg KmRlbnRyeSwNCiAJCSBzdHJ1Y3Qga3N0YXQgKnN0YXQpDQogew0KIAlzdHJ1Y3QgaW5vZGUgKmlu b2RlOw0KLQl1bnNpZ25lZCBsb25nIGRlbGFsbG9jX2Jsb2NrczsNCisJdW5zaWduZWQgbG9uZyBs b25nIGRlbGFsbG9jX2Jsb2NrczsNCiANCiAJaW5vZGUgPSBkZW50cnktPmRfaW5vZGU7DQogCWdl bmVyaWNfZmlsbGF0dHIoaW5vZGUsIHN0YXQpOw0KQEAgLTQzNTIsNyArNDM1Miw3IEBAIGludCBl eHQ0X2dldGF0dHIoc3RydWN0IHZmc21vdW50ICptbnQsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwN CiAJICovDQogCWRlbGFsbG9jX2Jsb2NrcyA9IEVYVDRfSShpbm9kZSktPmlfcmVzZXJ2ZWRfZGF0 YV9ibG9ja3M7DQogDQotCXN0YXQtPmJsb2NrcyArPSAoZGVsYWxsb2NfYmxvY2tzIDw8IGlub2Rl LT5pX3NiLT5zX2Jsb2Nrc2l6ZV9iaXRzKT4+OTsNCisJc3RhdC0+YmxvY2tzICs9IGRlbGFsbG9j X2Jsb2NrcyA8PCAoaW5vZGUtPmlfc2ItPnNfYmxvY2tzaXplX2JpdHMtOSk7DQogCXJldHVybiAw Ow0KIH0NCiANCmRpZmYgLS1naXQgYS9mcy9leHQ0L25hbWVpLmMgYi9mcy9leHQ0L25hbWVpLmMN CmluZGV4IDg4Zjk3ZTUuLjNjYTNiN2YgMTAwNjQ0DQotLS0gYS9mcy9leHQ0L25hbWVpLmMNCisr KyBiL2ZzL2V4dDQvbmFtZWkuYw0KQEAgLTU4NSwxMSArNTg1LDggQEAgc3RhdGljIGludCBodHJl ZV9kaXJibG9ja190b190cmVlKHN0cnVjdCBmaWxlICpkaXJfZmlsZSwNCiAJCWlmIChleHQ0X2No ZWNrX2Rpcl9lbnRyeShkaXIsIE5VTEwsIGRlLCBiaCwNCiAJCQkJKGJsb2NrPDxFWFQ0X0JMT0NL X1NJWkVfQklUUyhkaXItPmlfc2IpKQ0KIAkJCQkJICsgKChjaGFyICopZGUgLSBiaC0+Yl9kYXRh KSkpIHsNCi0JCQkvKiBPbiBlcnJvciwgc2tpcCB0aGUgZl9wb3MgdG8gdGhlIG5leHQgYmxvY2su ICovDQotCQkJZGlyX2ZpbGUtPmZfcG9zID0gKGRpcl9maWxlLT5mX3BvcyB8DQotCQkJCQkoZGly LT5pX3NiLT5zX2Jsb2Nrc2l6ZSAtIDEpKSArIDE7DQotCQkJYnJlbHNlKGJoKTsNCi0JCQlyZXR1 cm4gY291bnQ7DQorCQkJLyogc2lsZW50bHkgaWdub3JlIHRoZSByZXN0IG9mIHRoZSBibG9jayAq Lw0KKwkJCWJyZWFrOw0KIAkJfQ0KIAkJZXh0NGZzX2Rpcmhhc2goZGUtPm5hbWUsIGRlLT5uYW1l X2xlbiwgaGluZm8pOw0KIAkJaWYgKChoaW5mby0+aGFzaCA8IHN0YXJ0X2hhc2gpIHx8DQpkaWZm IC0tZ2l0IGEvZnMvaHBmcy9tYXAuYyBiL2ZzL2hwZnMvbWFwLmMNCmluZGV4IGE3OTA4MjEuLmVh M2QxY2EgMTAwNjQ0DQotLS0gYS9mcy9ocGZzL21hcC5jDQorKysgYi9mcy9ocGZzL21hcC5jDQpA QCAtMTcsNyArMTcsOCBAQCB1bnNpZ25lZCBpbnQgKmhwZnNfbWFwX2JpdG1hcChzdHJ1Y3Qgc3Vw ZXJfYmxvY2sgKnMsIHVuc2lnbmVkIGJtcF9ibG9jaywNCiAJCQkgc3RydWN0IHF1YWRfYnVmZmVy X2hlYWQgKnFiaCwgY2hhciAqaWQpDQogew0KIAlzZWNubyBzZWM7DQotCWlmIChocGZzX3NiKHMp LT5zYl9jaGspIGlmIChibXBfYmxvY2sgKiAxNjM4NCA+IGhwZnNfc2IocyktPnNiX2ZzX3NpemUp IHsNCisJdW5zaWduZWQgbl9iYW5kcyA9IChocGZzX3NiKHMpLT5zYl9mc19zaXplICsgMHgzZmZm KSA+PiAxNDsNCisJaWYgKGhwZnNfc2IocyktPnNiX2NoaykgaWYgKGJtcF9ibG9jayA+PSBuX2Jh bmRzKSB7DQogCQlocGZzX2Vycm9yKHMsICJocGZzX21hcF9iaXRtYXAgY2FsbGVkIHdpdGggYmFk IHBhcmFtZXRlcjogJTA4eCBhdCAlcyIsIGJtcF9ibG9jaywgaWQpOw0KIAkJcmV0dXJuIE5VTEw7 DQogCX0NCmRpZmYgLS1naXQgYS9mcy9ocGZzL3N1cGVyLmMgYi9mcy9ocGZzL3N1cGVyLmMNCmlu ZGV4IDk4NTgwYTMuLmY3NjBjMTUgMTAwNjQ0DQotLS0gYS9mcy9ocGZzL3N1cGVyLmMNCisrKyBi L2ZzL2hwZnMvc3VwZXIuYw0KQEAgLTU1Myw3ICs1NTMsMTMgQEAgc3RhdGljIGludCBocGZzX2Zp bGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzLCB2b2lkICpvcHRpb25zLCBpbnQgc2lsZW50 KQ0KIAlzYmktPnNiX2NwX3RhYmxlID0gTlVMTDsNCiAJc2JpLT5zYl9jX2JpdG1hcCA9IC0xOw0K IAlzYmktPnNiX21heF9md2RfYWxsb2MgPSAweGZmZmZmZjsNCi0JDQorDQorCWlmIChzYmktPnNi X2ZzX3NpemUgPj0gMHg4MDAwMDAwMCkgew0KKwkJaHBmc19lcnJvcihzLCAiaW52YWxpZCBzaXpl IGluIHN1cGVyYmxvY2s6ICUwOHgiLA0KKwkJCSh1bnNpZ25lZClzYmktPnNiX2ZzX3NpemUpOw0K KwkJZ290byBiYWlsNDsNCisJfQ0KKw0KIAkvKiBMb2FkIGJpdG1hcCBkaXJlY3RvcnkgKi8NCiAJ aWYgKCEoc2JpLT5zYl9ibXBfZGlyID0gaHBmc19sb2FkX2JpdG1hcF9kaXJlY3RvcnkocywgbGUz Ml90b19jcHUoc3VwZXJibG9jay0+Yml0bWFwcykpKSkNCiAJCWdvdG8gYmFpbDQ7DQpkaWZmIC0t Z2l0IGEvZnMvamJkMi90cmFuc2FjdGlvbi5jIGIvZnMvamJkMi90cmFuc2FjdGlvbi5jDQppbmRl eCA2YWM1YmIxLi4xOGVhNGQ5IDEwMDY0NA0KLS0tIGEvZnMvamJkMi90cmFuc2FjdGlvbi5jDQor KysgYi9mcy9qYmQyL3RyYW5zYWN0aW9uLmMNCkBAIC00NzAsMTAgKzQ3MCwxMCBAQCBpbnQgamJk Ml9fam91cm5hbF9yZXN0YXJ0KGhhbmRsZV90ICpoYW5kbGUsIGludCBuYmxvY2tzLCBnZnBfdCBn ZnBfbWFzaykNCiAJCSAgICZ0cmFuc2FjdGlvbi0+dF9vdXRzdGFuZGluZ19jcmVkaXRzKTsNCiAJ aWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJnRyYW5zYWN0aW9uLT50X3VwZGF0ZXMpKQ0KIAkJd2Fr ZV91cCgmam91cm5hbC0+al93YWl0X3VwZGF0ZXMpOw0KKwl0aWQgPSB0cmFuc2FjdGlvbi0+dF90 aWQ7DQogCXNwaW5fdW5sb2NrKCZ0cmFuc2FjdGlvbi0+dF9oYW5kbGVfbG9jayk7DQogDQogCWpi ZF9kZWJ1ZygyLCAicmVzdGFydGluZyBoYW5kbGUgJXBcbiIsIGhhbmRsZSk7DQotCXRpZCA9IHRy YW5zYWN0aW9uLT50X3RpZDsNCiAJbmVlZF90b19zdGFydCA9ICF0aWRfZ2VxKGpvdXJuYWwtPmpf Y29tbWl0X3JlcXVlc3QsIHRpZCk7DQogCXJlYWRfdW5sb2NrKCZqb3VybmFsLT5qX3N0YXRlX2xv Y2spOw0KIAlpZiAobmVlZF90b19zdGFydCkNCmRpZmYgLS1naXQgYS9mcy9uZnNkL25mczR4ZHIu YyBiL2ZzL25mc2QvbmZzNHhkci5jDQppbmRleCBhZGU1MzE2Li45OTYyNWI4IDEwMDY0NA0KLS0t IGEvZnMvbmZzZC9uZnM0eGRyLmMNCisrKyBiL2ZzL25mc2QvbmZzNHhkci5jDQpAQCAtMTc3LDgg KzE3Nyw4IEBAIHN0YXRpYyBfX2JlMzIgKnJlYWRfYnVmKHN0cnVjdCBuZnNkNF9jb21wb3VuZGFy Z3MgKmFyZ3AsIHUzMiBuYnl0ZXMpDQogCSAqLw0KIAltZW1jcHkocCwgYXJncC0+cCwgYXZhaWwp Ow0KIAkvKiBzdGVwIHRvIG5leHQgcGFnZSAqLw0KLQlhcmdwLT5wID0gcGFnZV9hZGRyZXNzKGFy Z3AtPnBhZ2VsaXN0WzBdKTsNCiAJYXJncC0+cGFnZWxpc3QrKzsNCisJYXJncC0+cCA9IHBhZ2Vf YWRkcmVzcyhhcmdwLT5wYWdlbGlzdFswXSk7DQogCWlmIChhcmdwLT5wYWdlbGVuIDwgUEFHRV9T SVpFKSB7DQogCQlhcmdwLT5lbmQgPSBhcmdwLT5wICsgKGFyZ3AtPnBhZ2VsZW4+PjIpOw0KIAkJ YXJncC0+cGFnZWxlbiA9IDA7DQpkaWZmIC0tZ2l0IGEvZnMvb2NmczIveGF0dHIuYyBiL2ZzL29j ZnMyL3hhdHRyLmMNCmluZGV4IDBkNWVhOWMuLmJlZjE4N2IgMTAwNjQ0DQotLS0gYS9mcy9vY2Zz Mi94YXR0ci5jDQorKysgYi9mcy9vY2ZzMi94YXR0ci5jDQpAQCAtNjQ5OSw2ICs2NDk5LDE2IEBA IHN0YXRpYyBpbnQgb2NmczJfcmVmbGlua194YXR0cl9pbmxpbmUoc3RydWN0IG9jZnMyX3hhdHRy X3JlZmxpbmsgKmFyZ3MpDQogCX0NCiANCiAJbmV3X29pID0gT0NGUzJfSShhcmdzLT5uZXdfaW5v ZGUpOw0KKwkvKg0KKwkgKiBBZGp1c3QgZXh0ZW50IHJlY29yZCBjb3VudCB0byByZXNlcnZlIHNw YWNlIGZvciBleHRlbmRlZCBhdHRyaWJ1dGUuDQorCSAqIElubGluZSBkYXRhIGNvdW50IGhhZCBi ZWVuIGFkanVzdGVkIGluIG9jZnMyX2R1cGxpY2F0ZV9pbmxpbmVfZGF0YSgpLg0KKwkgKi8NCisJ aWYgKCEobmV3X29pLT5pcF9keW5fZmVhdHVyZXMgJiBPQ0ZTMl9JTkxJTkVfREFUQV9GTCkgJiYN CisJICAgICEob2NmczJfaW5vZGVfaXNfZmFzdF9zeW1saW5rKGFyZ3MtPm5ld19pbm9kZSkpKSB7 DQorCQlzdHJ1Y3Qgb2NmczJfZXh0ZW50X2xpc3QgKmVsID0gJm5ld19kaS0+aWQyLmlfbGlzdDsN CisJCWxlMTZfYWRkX2NwdSgmZWwtPmxfY291bnQsIC0oaW5saW5lX3NpemUgLw0KKwkJCQkJc2l6 ZW9mKHN0cnVjdCBvY2ZzMl9leHRlbnRfcmVjKSkpOw0KKwl9DQogCXNwaW5fbG9jaygmbmV3X29p LT5pcF9sb2NrKTsNCiAJbmV3X29pLT5pcF9keW5fZmVhdHVyZXMgfD0gT0NGUzJfSEFTX1hBVFRS X0ZMIHwgT0NGUzJfSU5MSU5FX1hBVFRSX0ZMOw0KIAluZXdfZGktPmlfZHluX2ZlYXR1cmVzID0g Y3B1X3RvX2xlMTYobmV3X29pLT5pcF9keW5fZmVhdHVyZXMpOw0KZGlmZiAtLWdpdCBhL2ZzL3Vi aWZzL2Rpci5jIGIvZnMvdWJpZnMvZGlyLmMNCmluZGV4IDY4MzQ5MjAuLmFhZWJmMGYgMTAwNjQ0 DQotLS0gYS9mcy91Ymlmcy9kaXIuYw0KKysrIGIvZnMvdWJpZnMvZGlyLmMNCkBAIC0zNTcsMzEg KzM1Nyw1MCBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHZmc19kZW50X3R5cGUodWludDhfdCB0eXBl KQ0KIHN0YXRpYyBpbnQgdWJpZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqZGly ZW50LCBmaWxsZGlyX3QgZmlsbGRpcikNCiB7DQogCWludCBlcnIsIG92ZXIgPSAwOw0KKwlsb2Zm X3QgcG9zID0gZmlsZS0+Zl9wb3M7DQogCXN0cnVjdCBxc3RyIG5tOw0KIAl1bmlvbiB1Ymlmc19r ZXkga2V5Ow0KIAlzdHJ1Y3QgdWJpZnNfZGVudF9ub2RlICpkZW50Ow0KIAlzdHJ1Y3QgaW5vZGUg KmRpciA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGU7DQogCXN0cnVjdCB1Ymlmc19pbmZv ICpjID0gZGlyLT5pX3NiLT5zX2ZzX2luZm87DQogDQotCWRiZ19nZW4oImRpciBpbm8gJWx1LCBm X3BvcyAlI2xseCIsIGRpci0+aV9pbm8sIGZpbGUtPmZfcG9zKTsNCisJZGJnX2dlbigiZGlyIGlu byAlbHUsIGZfcG9zICUjbGx4IiwgZGlyLT5pX2lubywgcG9zKTsNCiANCi0JaWYgKGZpbGUtPmZf cG9zID4gVUJJRlNfU19LRVlfSEFTSF9NQVNLIHx8IGZpbGUtPmZfcG9zID09IDIpDQorCWlmIChw b3MgPiBVQklGU19TX0tFWV9IQVNIX01BU0sgfHwgcG9zID09IDIpDQogCQkvKg0KIAkJICogVGhl IGRpcmVjdG9yeSB3YXMgc2VlaydlZCB0byBhIHNlbnNlbGVzcyBwb3NpdGlvbiBvciB0aGVyZQ0K IAkJICogYXJlIG5vIG1vcmUgZW50cmllcy4NCiAJCSAqLw0KIAkJcmV0dXJuIDA7DQogDQorCWlm IChmaWxlLT5mX3ZlcnNpb24gPT0gMCkgew0KKwkJLyoNCisJCSAqIFRoZSBmaWxlIHdhcyBzZWVr J2VkLCB3aGljaCBtZWFucyB0aGF0IEBmaWxlLT5wcml2YXRlX2RhdGENCisJCSAqIGlzIG5vdyBp bnZhbGlkLiBUaGlzIG1heSBhbHNvIGJlIGp1c3QgdGhlIGZpcnN0DQorCQkgKiAndWJpZnNfcmVh ZGRpcigpJyBpbnZvY2F0aW9uLCBpbiB3aGljaCBjYXNlDQorCQkgKiBAZmlsZS0+cHJpdmF0ZV9k YXRhIGlzIE5VTEwsIGFuZCB0aGUgYmVsb3cgY29kZSBpcw0KKwkJICogYmFzaWNhbGx5IGEgbm8t b3AuDQorCQkgKi8NCisJCWtmcmVlKGZpbGUtPnByaXZhdGVfZGF0YSk7DQorCQlmaWxlLT5wcml2 YXRlX2RhdGEgPSBOVUxMOw0KKwl9DQorDQorCS8qDQorCSAqICdnZW5lcmljX2ZpbGVfbGxzZWVr KCknIHVuY29uZGl0aW9uYWxseSBzZXRzIEBmaWxlLT5mX3ZlcnNpb24gdG8NCisJICogemVybywg YW5kIHdlIHVzZSB0aGlzIGZvciBkZXRlY3Rpbmcgd2hldGhlciB0aGUgZmlsZSB3YXMgc2Vlaydl ZC4NCisJICovDQorCWZpbGUtPmZfdmVyc2lvbiA9IDE7DQorDQogCS8qIEZpbGUgcG9zaXRpb25z IDAgYW5kIDEgY29ycmVzcG9uZCB0byAiLiIgYW5kICIuLiIgKi8NCi0JaWYgKGZpbGUtPmZfcG9z ID09IDApIHsNCisJaWYgKHBvcyA9PSAwKSB7DQogCQl1Ymlmc19hc3NlcnQoIWZpbGUtPnByaXZh dGVfZGF0YSk7DQogCQlvdmVyID0gZmlsbGRpcihkaXJlbnQsICIuIiwgMSwgMCwgZGlyLT5pX2lu bywgRFRfRElSKTsNCiAJCWlmIChvdmVyKQ0KIAkJCXJldHVybiAwOw0KLQkJZmlsZS0+Zl9wb3Mg PSAxOw0KKwkJZmlsZS0+Zl9wb3MgPSBwb3MgPSAxOw0KIAl9DQogDQotCWlmIChmaWxlLT5mX3Bv cyA9PSAxKSB7DQorCWlmIChwb3MgPT0gMSkgew0KIAkJdWJpZnNfYXNzZXJ0KCFmaWxlLT5wcml2 YXRlX2RhdGEpOw0KIAkJb3ZlciA9IGZpbGxkaXIoZGlyZW50LCAiLi4iLCAyLCAxLA0KIAkJCSAg ICAgICBwYXJlbnRfaW5vKGZpbGUtPmZfcGF0aC5kZW50cnkpLCBEVF9ESVIpOw0KQEAgLTM5Nyw3 ICs0MTYsNyBAQCBzdGF0aWMgaW50IHViaWZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKmZpbGUsIHZv aWQgKmRpcmVudCwgZmlsbGRpcl90IGZpbGxkaXIpDQogCQkJZ290byBvdXQ7DQogCQl9DQogDQot CQlmaWxlLT5mX3BvcyA9IGtleV9oYXNoX2ZsYXNoKGMsICZkZW50LT5rZXkpOw0KKwkJZmlsZS0+ Zl9wb3MgPSBwb3MgPSBrZXlfaGFzaF9mbGFzaChjLCAmZGVudC0+a2V5KTsNCiAJCWZpbGUtPnBy aXZhdGVfZGF0YSA9IGRlbnQ7DQogCX0NCiANCkBAIC00MDUsMTcgKzQyNCwxNiBAQCBzdGF0aWMg aW50IHViaWZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKmRpcmVudCwgZmlsbGRp cl90IGZpbGxkaXIpDQogCWlmICghZGVudCkgew0KIAkJLyoNCiAJCSAqIFRoZSBkaXJlY3Rvcnkg d2FzIHNlZWsnZWQgdG8gYW5kIGlzIG5vdyByZWFkZGlyJ2VkLg0KLQkJICogRmluZCB0aGUgZW50 cnkgY29ycmVzcG9uZGluZyB0byBAZmlsZS0+Zl9wb3Mgb3IgdGhlDQotCQkgKiBjbG9zZXN0IG9u ZS4NCisJCSAqIEZpbmQgdGhlIGVudHJ5IGNvcnJlc3BvbmRpbmcgdG8gQHBvcyBvciB0aGUgY2xv c2VzdCBvbmUuDQogCQkgKi8NCi0JCWRlbnRfa2V5X2luaXRfaGFzaChjLCAma2V5LCBkaXItPmlf aW5vLCBmaWxlLT5mX3Bvcyk7DQorCQlkZW50X2tleV9pbml0X2hhc2goYywgJmtleSwgZGlyLT5p X2lubywgcG9zKTsNCiAJCW5tLm5hbWUgPSBOVUxMOw0KIAkJZGVudCA9IHViaWZzX3RuY19uZXh0 X2VudChjLCAma2V5LCAmbm0pOw0KIAkJaWYgKElTX0VSUihkZW50KSkgew0KIAkJCWVyciA9IFBU Ul9FUlIoZGVudCk7DQogCQkJZ290byBvdXQ7DQogCQl9DQotCQlmaWxlLT5mX3BvcyA9IGtleV9o YXNoX2ZsYXNoKGMsICZkZW50LT5rZXkpOw0KKwkJZmlsZS0+Zl9wb3MgPSBwb3MgPSBrZXlfaGFz aF9mbGFzaChjLCAmZGVudC0+a2V5KTsNCiAJCWZpbGUtPnByaXZhdGVfZGF0YSA9IGRlbnQ7DQog CX0NCiANCkBAIC00MjcsNyArNDQ1LDcgQEAgc3RhdGljIGludCB1Ymlmc19yZWFkZGlyKHN0cnVj dCBmaWxlICpmaWxlLCB2b2lkICpkaXJlbnQsIGZpbGxkaXJfdCBmaWxsZGlyKQ0KIAkJCSAgICAg dWJpZnNfaW5vZGUoZGlyKS0+Y3JlYXRfc3FudW0pOw0KIA0KIAkJbm0ubGVuID0gbGUxNl90b19j cHUoZGVudC0+bmxlbik7DQotCQlvdmVyID0gZmlsbGRpcihkaXJlbnQsIGRlbnQtPm5hbWUsIG5t LmxlbiwgZmlsZS0+Zl9wb3MsDQorCQlvdmVyID0gZmlsbGRpcihkaXJlbnQsIGRlbnQtPm5hbWUs IG5tLmxlbiwgcG9zLA0KIAkJCSAgICAgICBsZTY0X3RvX2NwdShkZW50LT5pbnVtKSwNCiAJCQkg ICAgICAgdmZzX2RlbnRfdHlwZShkZW50LT50eXBlKSk7DQogCQlpZiAob3ZlcikNCkBAIC00NDMs OSArNDYxLDE3IEBAIHN0YXRpYyBpbnQgdWJpZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqZmlsZSwg dm9pZCAqZGlyZW50LCBmaWxsZGlyX3QgZmlsbGRpcikNCiAJCX0NCiANCiAJCWtmcmVlKGZpbGUt PnByaXZhdGVfZGF0YSk7DQotCQlmaWxlLT5mX3BvcyA9IGtleV9oYXNoX2ZsYXNoKGMsICZkZW50 LT5rZXkpOw0KKwkJZmlsZS0+Zl9wb3MgPSBwb3MgPSBrZXlfaGFzaF9mbGFzaChjLCAmZGVudC0+ a2V5KTsNCiAJCWZpbGUtPnByaXZhdGVfZGF0YSA9IGRlbnQ7DQogCQljb25kX3Jlc2NoZWQoKTsN CisNCisJCWlmIChmaWxlLT5mX3ZlcnNpb24gPT0gMCkNCisJCQkvKg0KKwkJCSAqIFRoZSBmaWxl IHdhcyBzZWVrJ2VkIG1lYW53aGlsZSwgbGV0cyByZXR1cm4gYW5kIHN0YXJ0DQorCQkJICogcmVh ZGluZyBkaXJlbnRyaWVzIGZyb20gdGhlIG5ldyBwb3NpdGlvbiBvbiB0aGUgbmV4dA0KKwkJCSAq IGludm9jYXRpb24uDQorCQkJICovDQorCQkJcmV0dXJuIDA7DQogCX0NCiANCiBvdXQ6DQpAQCAt NDU2LDE1ICs0ODIsMTMgQEAgb3V0Og0KIA0KIAlrZnJlZShmaWxlLT5wcml2YXRlX2RhdGEpOw0K IAlmaWxlLT5wcml2YXRlX2RhdGEgPSBOVUxMOw0KKwkvKiAyIGlzIGEgc3BlY2lhbCB2YWx1ZSBp bmRpY2F0aW5nIHRoYXQgdGhlcmUgYXJlIG5vIG1vcmUgZGlyZW50cmllcyAqLw0KIAlmaWxlLT5m X3BvcyA9IDI7DQogCXJldHVybiAwOw0KIH0NCiANCi0vKiBJZiBhIGRpcmVjdG9yeSBpcyBzZWVr ZWQsIHdlIGhhdmUgdG8gZnJlZSBzYXZlZCByZWFkZGlyKCkgc3RhdGUgKi8NCiBzdGF0aWMgbG9m Zl90IHViaWZzX2Rpcl9sbHNlZWsoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsIGlu dCBvcmlnaW4pDQogew0KLQlrZnJlZShmaWxlLT5wcml2YXRlX2RhdGEpOw0KLQlmaWxlLT5wcml2 YXRlX2RhdGEgPSBOVUxMOw0KIAlyZXR1cm4gZ2VuZXJpY19maWxlX2xsc2VlayhmaWxlLCBvZmZz ZXQsIG9yaWdpbik7DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY2dyb3VwLmgg Yi9pbmNsdWRlL2xpbnV4L2Nncm91cC5oDQppbmRleCA5YmFiNzVmLi5hY2UwOTg0IDEwMDY0NA0K LS0tIGEvaW5jbHVkZS9saW51eC9jZ3JvdXAuaA0KKysrIGIvaW5jbHVkZS9saW51eC9jZ3JvdXAu aA0KQEAgLTUzMSwxNiArNTMxLDU0IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGNncm91cF9zdWJz eXNfc3RhdGUgKmNncm91cF9zdWJzeXNfc3RhdGUoDQogCXJldHVybiBjZ3JwLT5zdWJzeXNbc3Vi c3lzX2lkXTsNCiB9DQogDQotLyoNCi0gKiBmdW5jdGlvbiB0byBnZXQgdGhlIGNncm91cF9zdWJz eXNfc3RhdGUgd2hpY2ggYWxsb3dzIGZvciBleHRyYQ0KLSAqIHJjdV9kZXJlZmVyZW5jZV9jaGVj aygpIGNvbmRpdGlvbnMsIHN1Y2ggYXMgbG9ja3MgdXNlZCBkdXJpbmcgdGhlDQotICogY2dyb3Vw X3N1YnN5czo6YXR0YWNoKCkgbWV0aG9kcy4NCisvKioNCisgKiB0YXNrX2Nzc19zZXRfY2hlY2sg LSBvYnRhaW4gYSB0YXNrJ3MgY3NzX3NldCB3aXRoIGV4dHJhIGFjY2VzcyBjb25kaXRpb25zDQor ICogQHRhc2s6IHRoZSB0YXNrIHRvIG9idGFpbiBjc3Nfc2V0IGZvcg0KKyAqIEBfX2M6IGV4dHJh IGNvbmRpdGlvbiBleHByZXNzaW9uIHRvIGJlIHBhc3NlZCB0byByY3VfZGVyZWZlcmVuY2VfY2hl Y2soKQ0KKyAqDQorICogQSB0YXNrJ3MgY3NzX3NldCBpcyBSQ1UgcHJvdGVjdGVkLCBpbml0aWFs aXplZCBhbmQgZXhpdGVkIHdoaWxlIGhvbGRpbmcNCisgKiB0YXNrX2xvY2soKSwgYW5kIGNhbiBv bmx5IGJlIG1vZGlmaWVkIHdoaWxlIGhvbGRpbmcgYm90aCBjZ3JvdXBfbXV0ZXgNCisgKiBhbmQg dGFza19sb2NrKCkgd2hpbGUgdGhlIHRhc2sgaXMgYWxpdmUuICBUaGlzIG1hY3JvIHZlcmlmaWVz IHRoYXQgdGhlDQorICogY2FsbGVyIGlzIGluc2lkZSBwcm9wZXIgY3JpdGljYWwgc2VjdGlvbiBh bmQgcmV0dXJucyBAdGFzaydzIGNzc19zZXQuDQorICoNCisgKiBUaGUgY2FsbGVyIGNhbiBhbHNv IHNwZWNpZnkgYWRkaXRpb25hbCBhbGxvd2VkIGNvbmRpdGlvbnMgdmlhIEBfX2MsIHN1Y2gNCisg KiBhcyBsb2NrcyB1c2VkIGR1cmluZyB0aGUgY2dyb3VwX3N1YnN5czo6YXR0YWNoKCkgbWV0aG9k cy4NCisgKi8NCisjZGVmaW5lIHRhc2tfY3NzX3NldF9jaGVjayh0YXNrLCBfX2MpCQkJCQlcDQor CXJjdV9kZXJlZmVyZW5jZV9jaGVjaygodGFzayktPmNncm91cHMsCQkJCVwNCisJCWxvY2tkZXBf aXNfaGVsZCgmKHRhc2spLT5hbGxvY19sb2NrKSB8fAkJCVwNCisJCWNncm91cF9sb2NrX2lzX2hl bGQoKSB8fCAoX19jKSkNCisNCisvKioNCisgKiB0YXNrX3N1YnN5c19zdGF0ZV9jaGVjayAtIG9i dGFpbiBjc3MgZm9yICh0YXNrLCBzdWJzeXMpIHcvIGV4dHJhIGFjY2VzcyBjb25kcw0KKyAqIEB0 YXNrOiB0aGUgdGFyZ2V0IHRhc2sNCisgKiBAc3Vic3lzX2lkOiB0aGUgdGFyZ2V0IHN1YnN5c3Rl bSBJRA0KKyAqIEBfX2M6IGV4dHJhIGNvbmRpdGlvbiBleHByZXNzaW9uIHRvIGJlIHBhc3NlZCB0 byByY3VfZGVyZWZlcmVuY2VfY2hlY2soKQ0KKyAqDQorICogUmV0dXJuIHRoZSBjZ3JvdXBfc3Vi c3lzX3N0YXRlIGZvciB0aGUgKEB0YXNrLCBAc3Vic3lzX2lkKSBwYWlyLiAgVGhlDQorICogc3lu Y2hyb25pemF0aW9uIHJ1bGVzIGFyZSB0aGUgc2FtZSBhcyB0YXNrX2Nzc19zZXRfY2hlY2soKS4N CiAgKi8NCiAjZGVmaW5lIHRhc2tfc3Vic3lzX3N0YXRlX2NoZWNrKHRhc2ssIHN1YnN5c19pZCwg X19jKQkJCVwNCi0JcmN1X2RlcmVmZXJlbmNlX2NoZWNrKHRhc2stPmNncm91cHMtPnN1YnN5c1tz dWJzeXNfaWRdLAkJXA0KLQkJCSAgICAgIGxvY2tkZXBfaXNfaGVsZCgmdGFzay0+YWxsb2NfbG9j aykgfHwJXA0KLQkJCSAgICAgIGNncm91cF9sb2NrX2lzX2hlbGQoKSB8fCAoX19jKSkNCisJdGFz a19jc3Nfc2V0X2NoZWNrKCh0YXNrKSwgKF9fYykpLT5zdWJzeXNbKHN1YnN5c19pZCldDQorDQor LyoqDQorICogdGFza19jc3Nfc2V0IC0gb2J0YWluIGEgdGFzaydzIGNzc19zZXQNCisgKiBAdGFz azogdGhlIHRhc2sgdG8gb2J0YWluIGNzc19zZXQgZm9yDQorICoNCisgKiBTZWUgdGFza19jc3Nf c2V0X2NoZWNrKCkuDQorICovDQorc3RhdGljIGlubGluZSBzdHJ1Y3QgY3NzX3NldCAqdGFza19j c3Nfc2V0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykNCit7DQorCXJldHVybiB0YXNrX2Nzc19z ZXRfY2hlY2sodGFzaywgZmFsc2UpOw0KK30NCiANCisvKioNCisgKiB0YXNrX3N1YnN5c19zdGF0 ZSAtIG9idGFpbiBjc3MgZm9yICh0YXNrLCBzdWJzeXMpDQorICogQHRhc2s6IHRoZSB0YXJnZXQg dGFzaw0KKyAqIEBzdWJzeXNfaWQ6IHRoZSB0YXJnZXQgc3Vic3lzdGVtIElEDQorICoNCisgKiBT ZWUgdGFza19zdWJzeXNfc3RhdGVfY2hlY2soKS4NCisgKi8NCiBzdGF0aWMgaW5saW5lIHN0cnVj dCBjZ3JvdXBfc3Vic3lzX3N0YXRlICoNCiB0YXNrX3N1YnN5c19zdGF0ZShzdHJ1Y3QgdGFza19z dHJ1Y3QgKnRhc2ssIGludCBzdWJzeXNfaWQpDQogew0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvaHVnZXRsYi5oIGIvaW5jbHVkZS9saW51eC9odWdldGxiLmgNCmluZGV4IGEyMjI3ZjcuLjMy Njk3YzEgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L2h1Z2V0bGIuaA0KKysrIGIvaW5jbHVk ZS9saW51eC9odWdldGxiLmgNCkBAIC0zMjcsNiArMzI3LDE3IEBAIHN0YXRpYyBpbmxpbmUgdW5z aWduZWQgaHN0YXRlX2luZGV4X3RvX3NoaWZ0KHVuc2lnbmVkIGluZGV4KQ0KIAlyZXR1cm4gaHN0 YXRlc1tpbmRleF0ub3JkZXIgKyBQQUdFX1NISUZUOw0KIH0NCiANCitwZ29mZl90IF9fYmFzZXBh Z2VfaW5kZXgoc3RydWN0IHBhZ2UgKnBhZ2UpOw0KKw0KKy8qIFJldHVybiBwYWdlLT5pbmRleCBp biBQQUdFX1NJWkUgdW5pdHMgKi8NCitzdGF0aWMgaW5saW5lIHBnb2ZmX3QgYmFzZXBhZ2VfaW5k ZXgoc3RydWN0IHBhZ2UgKnBhZ2UpDQorew0KKwlpZiAoIVBhZ2VDb21wb3VuZChwYWdlKSkNCisJ CXJldHVybiBwYWdlLT5pbmRleDsNCisNCisJcmV0dXJuIF9fYmFzZXBhZ2VfaW5kZXgocGFnZSk7 DQorfQ0KKw0KICNlbHNlDQogc3RydWN0IGhzdGF0ZSB7fTsNCiAjZGVmaW5lIGFsbG9jX2h1Z2Vf cGFnZV9ub2RlKGgsIG5pZCkgTlVMTA0KQEAgLTM0NSw2ICszNTYsMTEgQEAgc3RhdGljIGlubGlu ZSB1bnNpZ25lZCBpbnQgcGFnZXNfcGVyX2h1Z2VfcGFnZShzdHJ1Y3QgaHN0YXRlICpoKQ0KIAly ZXR1cm4gMTsNCiB9DQogI2RlZmluZSBoc3RhdGVfaW5kZXhfdG9fc2hpZnQoaW5kZXgpIDANCisN CitzdGF0aWMgaW5saW5lIHBnb2ZmX3QgYmFzZXBhZ2VfaW5kZXgoc3RydWN0IHBhZ2UgKnBhZ2Up DQorew0KKwlyZXR1cm4gcGFnZS0+aW5kZXg7DQorfQ0KICNlbmRpZg0KIA0KICNlbmRpZiAvKiBf TElOVVhfSFVHRVRMQl9IICovDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9uYmQuaCBiL2lu Y2x1ZGUvbGludXgvbmJkLmgNCmluZGV4IGQxNDZjYTEuLmU2ZmUxNzQgMTAwNjQ0DQotLS0gYS9p bmNsdWRlL2xpbnV4L25iZC5oDQorKysgYi9pbmNsdWRlL2xpbnV4L25iZC5oDQpAQCAtNjgsNiAr NjgsNyBAQCBzdHJ1Y3QgbmJkX2RldmljZSB7DQogCXU2NCBieXRlc2l6ZTsNCiAJcGlkX3QgcGlk OyAvKiBwaWQgb2YgbmJkLWNsaWVudCwgaWYgYXR0YWNoZWQgKi8NCiAJaW50IHhtaXRfdGltZW91 dDsNCisJaW50IGRpc2Nvbm5lY3Q7IC8qIGEgZGlzY29ubmVjdCBoYXMgYmVlbiByZXF1ZXN0ZWQg YnkgdXNlciAqLw0KIH07DQogDQogI2VuZGlmDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9w ZXJmX2V2ZW50LmggYi9pbmNsdWRlL2xpbnV4L3BlcmZfZXZlbnQuaA0KaW5kZXggOWI5YjJhYS4u M2NmY2ZlYSAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGludXgvcGVyZl9ldmVudC5oDQorKysgYi9p bmNsdWRlL2xpbnV4L3BlcmZfZXZlbnQuaA0KQEAgLTgxOSw4ICs4MTksNyBAQCBzdHJ1Y3QgcGVy Zl9ldmVudCB7DQogCS8qIG1tYXAgYml0cyAqLw0KIAlzdHJ1Y3QgbXV0ZXgJCQltbWFwX211dGV4 Ow0KIAlhdG9taWNfdAkJCW1tYXBfY291bnQ7DQotCWludAkJCQltbWFwX2xvY2tlZDsNCi0Jc3Ry dWN0IHVzZXJfc3RydWN0CQkqbW1hcF91c2VyOw0KKw0KIAlzdHJ1Y3QgcmluZ19idWZmZXIJCSpy YjsNCiAJc3RydWN0IGxpc3RfaGVhZAkJcmJfZW50cnk7DQogDQpkaWZmIC0tZ2l0IGEva2VybmVs L2V2ZW50cy9jb3JlLmMgYi9rZXJuZWwvZXZlbnRzL2NvcmUuYw0KaW5kZXggOWYyMTkxNS4uOGJl OWI3NDYgMTAwNjQ0DQotLS0gYS9rZXJuZWwvZXZlbnRzL2NvcmUuYw0KKysrIGIva2VybmVsL2V2 ZW50cy9jb3JlLmMNCkBAIC0xODUsOSArMTg1LDYgQEAgc3RhdGljIHZvaWQgY3B1X2N0eF9zY2hl ZF9pbihzdHJ1Y3QgcGVyZl9jcHVfY29udGV4dCAqY3B1Y3R4LA0KIHN0YXRpYyB2b2lkIHVwZGF0 ZV9jb250ZXh0X3RpbWUoc3RydWN0IHBlcmZfZXZlbnRfY29udGV4dCAqY3R4KTsNCiBzdGF0aWMg dTY0IHBlcmZfZXZlbnRfdGltZShzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQpOw0KIA0KLXN0YXRp YyB2b2lkIHJpbmdfYnVmZmVyX2F0dGFjaChzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQsDQotCQkJ ICAgICAgIHN0cnVjdCByaW5nX2J1ZmZlciAqcmIpOw0KLQ0KIHZvaWQgX193ZWFrIHBlcmZfZXZl bnRfcHJpbnRfZGVidWcodm9pZCkJeyB9DQogDQogZXh0ZXJuIF9fd2VhayBjb25zdCBjaGFyICpw ZXJmX3BtdV9uYW1lKHZvaWQpDQpAQCAtNzE0LDggKzcxMSwxOCBAQCBwZXJmX2xvY2tfdGFza19j b250ZXh0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgaW50IGN0eG4sIHVuc2lnbmVkIGxvbmcg KmZsYWdzKQ0KIHsNCiAJc3RydWN0IHBlcmZfZXZlbnRfY29udGV4dCAqY3R4Ow0KIA0KLQlyY3Vf cmVhZF9sb2NrKCk7DQogcmV0cnk6DQorCS8qDQorCSAqIE9uZSBvZiB0aGUgZmV3IHJ1bGVzIG9m IHByZWVtcHRpYmxlIFJDVSBpcyB0aGF0IG9uZSBjYW5ub3QgZG8NCisJICogcmN1X3JlYWRfdW5s b2NrKCkgd2hpbGUgaG9sZGluZyBhIHNjaGVkdWxlciAob3IgbmVzdGVkKSBsb2NrIHdoZW4NCisJ ICogcGFydCBvZiB0aGUgcmVhZCBzaWRlIGNyaXRpY2FsIHNlY3Rpb24gd2FzIHByZWVtcHRpYmxl IC0tIHNlZQ0KKwkgKiByY3VfcmVhZF91bmxvY2tfc3BlY2lhbCgpLg0KKwkgKg0KKwkgKiBTaW5j ZSBjdHgtPmxvY2sgbmVzdHMgdW5kZXIgcnEtPmxvY2sgd2UgbXVzdCBlbnN1cmUgdGhlIGVudGly ZSByZWFkDQorCSAqIHNpZGUgY3JpdGljYWwgc2VjdGlvbiBpcyBub24tcHJlZW1wdGlibGUuDQor CSAqLw0KKwlwcmVlbXB0X2Rpc2FibGUoKTsNCisJcmN1X3JlYWRfbG9jaygpOw0KIAljdHggPSBy Y3VfZGVyZWZlcmVuY2UodGFzay0+cGVyZl9ldmVudF9jdHhwW2N0eG5dKTsNCiAJaWYgKGN0eCkg ew0KIAkJLyoNCkBAIC03MzEsNiArNzM4LDggQEAgcmV0cnk6DQogCQlyYXdfc3Bpbl9sb2NrX2ly cXNhdmUoJmN0eC0+bG9jaywgKmZsYWdzKTsNCiAJCWlmIChjdHggIT0gcmN1X2RlcmVmZXJlbmNl KHRhc2stPnBlcmZfZXZlbnRfY3R4cFtjdHhuXSkpIHsNCiAJCQlyYXdfc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmY3R4LT5sb2NrLCAqZmxhZ3MpOw0KKwkJCXJjdV9yZWFkX3VubG9jaygpOw0KKwkJ CXByZWVtcHRfZW5hYmxlKCk7DQogCQkJZ290byByZXRyeTsNCiAJCX0NCiANCkBAIC03NDAsNiAr NzQ5LDcgQEAgcmV0cnk6DQogCQl9DQogCX0NCiAJcmN1X3JlYWRfdW5sb2NrKCk7DQorCXByZWVt cHRfZW5hYmxlKCk7DQogCXJldHVybiBjdHg7DQogfQ0KIA0KQEAgLTE2ODcsNyArMTY5NywxNiBA QCBzdGF0aWMgaW50IF9fcGVyZl9ldmVudF9lbmFibGUodm9pZCAqaW5mbykNCiAJc3RydWN0IHBl cmZfY3B1X2NvbnRleHQgKmNwdWN0eCA9IF9fZ2V0X2NwdV9jb250ZXh0KGN0eCk7DQogCWludCBl cnI7DQogDQotCWlmIChXQVJOX09OX09OQ0UoIWN0eC0+aXNfYWN0aXZlKSkNCisJLyoNCisJICog VGhlcmUncyBhIHRpbWUgd2luZG93IGJldHdlZW4gJ2N0eC0+aXNfYWN0aXZlJyBjaGVjaw0KKwkg KiBpbiBwZXJmX2V2ZW50X2VuYWJsZSBmdW5jdGlvbiBhbmQgdGhpcyBwbGFjZSBoYXZpbmc6DQor CSAqICAgLSBJUlFzIG9uDQorCSAqICAgLSBjdHgtPmxvY2sgdW5sb2NrZWQNCisJICoNCisJICog d2hlcmUgdGhlIHRhc2sgY291bGQgYmUga2lsbGVkIGFuZCAnY3R4JyBkZWFjdGl2YXRlZA0KKwkg KiBieSBwZXJmX2V2ZW50X2V4aXRfdGFzay4NCisJICovDQorCWlmICghY3R4LT5pc19hY3RpdmUp DQogCQlyZXR1cm4gLUVJTlZBTDsNCiANCiAJcmF3X3NwaW5fbG9jaygmY3R4LT5sb2NrKTsNCkBA IC0yOTM5LDYgKzI5NTgsNyBAQCBzdGF0aWMgdm9pZCBmcmVlX2V2ZW50X3JjdShzdHJ1Y3QgcmN1 X2hlYWQgKmhlYWQpDQogfQ0KIA0KIHN0YXRpYyB2b2lkIHJpbmdfYnVmZmVyX3B1dChzdHJ1Y3Qg cmluZ19idWZmZXIgKnJiKTsNCitzdGF0aWMgdm9pZCByaW5nX2J1ZmZlcl9kZXRhY2goc3RydWN0 IHBlcmZfZXZlbnQgKmV2ZW50LCBzdHJ1Y3QgcmluZ19idWZmZXIgKnJiKTsNCiANCiBzdGF0aWMg dm9pZCBmcmVlX2V2ZW50KHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkNCiB7DQpAQCAtMjk2Miw4 ICsyOTgyLDIyIEBAIHN0YXRpYyB2b2lkIGZyZWVfZXZlbnQoc3RydWN0IHBlcmZfZXZlbnQgKmV2 ZW50KQ0KIAl9DQogDQogCWlmIChldmVudC0+cmIpIHsNCi0JCXJpbmdfYnVmZmVyX3B1dChldmVu dC0+cmIpOw0KLQkJZXZlbnQtPnJiID0gTlVMTDsNCisJCXN0cnVjdCByaW5nX2J1ZmZlciAqcmI7 DQorDQorCQkvKg0KKwkJICogQ2FuIGhhcHBlbiB3aGVuIHdlIGNsb3NlIGFuIGV2ZW50IHdpdGgg cmUtZGlyZWN0ZWQgb3V0cHV0Lg0KKwkJICoNCisJCSAqIFNpbmNlIHdlIGhhdmUgYSAwIHJlZmNv dW50LCBwZXJmX21tYXBfY2xvc2UoKSB3aWxsIHNraXANCisJCSAqIG92ZXIgdXM7IHBvc3NpYmx5 IG1ha2luZyBvdXIgcmluZ19idWZmZXJfcHV0KCkgdGhlIGxhc3QuDQorCQkgKi8NCisJCW11dGV4 X2xvY2soJmV2ZW50LT5tbWFwX211dGV4KTsNCisJCXJiID0gZXZlbnQtPnJiOw0KKwkJaWYgKHJi KSB7DQorCQkJcmN1X2Fzc2lnbl9wb2ludGVyKGV2ZW50LT5yYiwgTlVMTCk7DQorCQkJcmluZ19i dWZmZXJfZGV0YWNoKGV2ZW50LCByYik7DQorCQkJcmluZ19idWZmZXJfcHV0KHJiKTsgLyogY291 bGQgYmUgbGFzdCAqLw0KKwkJfQ0KKwkJbXV0ZXhfdW5sb2NrKCZldmVudC0+bW1hcF9tdXRleCk7 DQogCX0NCiANCiAJaWYgKGlzX2Nncm91cF9ldmVudChldmVudCkpDQpAQCAtMzIwMSwzMCArMzIz NSwxMyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHBlcmZfcG9sbChzdHJ1Y3QgZmlsZSAqZmlsZSwg cG9sbF90YWJsZSAqd2FpdCkNCiAJdW5zaWduZWQgaW50IGV2ZW50cyA9IFBPTExfSFVQOw0KIA0K IAkvKg0KLQkgKiBSYWNlIGJldHdlZW4gcGVyZl9ldmVudF9zZXRfb3V0cHV0KCkgYW5kIHBlcmZf cG9sbCgpOiBwZXJmX3BvbGwoKQ0KLQkgKiBncmFicyB0aGUgcmIgcmVmZXJlbmNlIGJ1dCBwZXJm X2V2ZW50X3NldF9vdXRwdXQoKSBvdmVycmlkZXMgaXQuDQotCSAqIEhlcmUgaXMgdGhlIHRpbWVs aW5lIGZvciB0d28gdGhyZWFkcyBUMSwgVDI6DQotCSAqIHQwOiBUMSwgcmIgPSByY3VfZGVyZWZl cmVuY2UoZXZlbnQtPnJiKQ0KLQkgKiB0MTogVDIsIG9sZF9yYiA9IGV2ZW50LT5yYg0KLQkgKiB0 MjogVDIsIGV2ZW50LT5yYiA9IG5ldyByYg0KLQkgKiB0MzogVDIsIHJpbmdfYnVmZmVyX2RldGFj aChvbGRfcmIpDQotCSAqIHQ0OiBUMSwgcmluZ19idWZmZXJfYXR0YWNoKHJiMSkNCi0JICogdDU6 IFQxLCBwb2xsX3dhaXQoZXZlbnQtPndhaXRxKQ0KLQkgKg0KLQkgKiBUbyBhdm9pZCB0aGlzIHBy b2JsZW0sIHdlIGdyYWIgbW1hcF9tdXRleCBpbiBwZXJmX3BvbGwoKQ0KLQkgKiB0aGVyZWJ5IGVu c3VyaW5nIHRoYXQgdGhlIGFzc2lnbm1lbnQgb2YgdGhlIG5ldyByaW5nIGJ1ZmZlcg0KLQkgKiBh bmQgdGhlIGRldGFjaG1lbnQgb2YgdGhlIG9sZCBidWZmZXIgYXBwZWFyIGF0b21pYyB0byBwZXJm X3BvbGwoKQ0KKwkgKiBQaW4gdGhlIGV2ZW50LT5yYiBieSB0YWtpbmcgZXZlbnQtPm1tYXBfbXV0 ZXg7IG90aGVyd2lzZQ0KKwkgKiBwZXJmX2V2ZW50X3NldF9vdXRwdXQoKSBjYW4gc3dpenpsZSBv dXIgcmIgYW5kIG1ha2UgdXMgbWlzcyB3YWtldXBzLg0KIAkgKi8NCiAJbXV0ZXhfbG9jaygmZXZl bnQtPm1tYXBfbXV0ZXgpOw0KLQ0KLQlyY3VfcmVhZF9sb2NrKCk7DQotCXJiID0gcmN1X2RlcmVm ZXJlbmNlKGV2ZW50LT5yYik7DQotCWlmIChyYikgew0KLQkJcmluZ19idWZmZXJfYXR0YWNoKGV2 ZW50LCByYik7DQorCXJiID0gZXZlbnQtPnJiOw0KKwlpZiAocmIpDQogCQlldmVudHMgPSBhdG9t aWNfeGNoZygmcmItPnBvbGwsIDApOw0KLQl9DQotCXJjdV9yZWFkX3VubG9jaygpOw0KLQ0KIAlt dXRleF91bmxvY2soJmV2ZW50LT5tbWFwX211dGV4KTsNCiANCiAJcG9sbF93YWl0KGZpbGUsICZl dmVudC0+d2FpdHEsIHdhaXQpOw0KQEAgLTM1MzgsMTYgKzM1NTUsMTIgQEAgc3RhdGljIHZvaWQg cmluZ19idWZmZXJfYXR0YWNoKHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCwNCiAJCXJldHVybjsN CiANCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnJiLT5ldmVudF9sb2NrLCBmbGFncyk7DQotCWlmICgh bGlzdF9lbXB0eSgmZXZlbnQtPnJiX2VudHJ5KSkNCi0JCWdvdG8gdW5sb2NrOw0KLQ0KLQlsaXN0 X2FkZCgmZXZlbnQtPnJiX2VudHJ5LCAmcmItPmV2ZW50X2xpc3QpOw0KLXVubG9jazoNCisJaWYg KGxpc3RfZW1wdHkoJmV2ZW50LT5yYl9lbnRyeSkpDQorCQlsaXN0X2FkZCgmZXZlbnQtPnJiX2Vu dHJ5LCAmcmItPmV2ZW50X2xpc3QpOw0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZyYi0+ZXZl bnRfbG9jaywgZmxhZ3MpOw0KIH0NCiANCi1zdGF0aWMgdm9pZCByaW5nX2J1ZmZlcl9kZXRhY2go c3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50LA0KLQkJCSAgICAgICBzdHJ1Y3QgcmluZ19idWZmZXIg KnJiKQ0KK3N0YXRpYyB2b2lkIHJpbmdfYnVmZmVyX2RldGFjaChzdHJ1Y3QgcGVyZl9ldmVudCAq ZXZlbnQsIHN0cnVjdCByaW5nX2J1ZmZlciAqcmIpDQogew0KIAl1bnNpZ25lZCBsb25nIGZsYWdz Ow0KIA0KQEAgLTM1NjYsMTMgKzM1NzksMTAgQEAgc3RhdGljIHZvaWQgcmluZ19idWZmZXJfd2Fr ZXVwKHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkNCiANCiAJcmN1X3JlYWRfbG9jaygpOw0KIAly YiA9IHJjdV9kZXJlZmVyZW5jZShldmVudC0+cmIpOw0KLQlpZiAoIXJiKQ0KLQkJZ290byB1bmxv Y2s7DQotDQotCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KGV2ZW50LCAmcmItPmV2ZW50X2xpc3Qs IHJiX2VudHJ5KQ0KLQkJd2FrZV91cF9hbGwoJmV2ZW50LT53YWl0cSk7DQotDQotdW5sb2NrOg0K KwlpZiAocmIpIHsNCisJCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KGV2ZW50LCAmcmItPmV2ZW50 X2xpc3QsIHJiX2VudHJ5KQ0KKwkJCXdha2VfdXBfYWxsKCZldmVudC0+d2FpdHEpOw0KKwl9DQog CXJjdV9yZWFkX3VubG9jaygpOw0KIH0NCiANCkBAIC0zNjAxLDE4ICszNjExLDEwIEBAIHN0YXRp YyBzdHJ1Y3QgcmluZ19idWZmZXIgKnJpbmdfYnVmZmVyX2dldChzdHJ1Y3QgcGVyZl9ldmVudCAq ZXZlbnQpDQogDQogc3RhdGljIHZvaWQgcmluZ19idWZmZXJfcHV0KHN0cnVjdCByaW5nX2J1ZmZl ciAqcmIpDQogew0KLQlzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQsICpuOw0KLQl1bnNpZ25lZCBs b25nIGZsYWdzOw0KLQ0KIAlpZiAoIWF0b21pY19kZWNfYW5kX3Rlc3QoJnJiLT5yZWZjb3VudCkp DQogCQlyZXR1cm47DQogDQotCXNwaW5fbG9ja19pcnFzYXZlKCZyYi0+ZXZlbnRfbG9jaywgZmxh Z3MpOw0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZXZlbnQsIG4sICZyYi0+ZXZlbnRfbGlz dCwgcmJfZW50cnkpIHsNCi0JCWxpc3RfZGVsX2luaXQoJmV2ZW50LT5yYl9lbnRyeSk7DQotCQl3 YWtlX3VwX2FsbCgmZXZlbnQtPndhaXRxKTsNCi0JfQ0KLQlzcGluX3VubG9ja19pcnFyZXN0b3Jl KCZyYi0+ZXZlbnRfbG9jaywgZmxhZ3MpOw0KKwlXQVJOX09OX09OQ0UoIWxpc3RfZW1wdHkoJnJi LT5ldmVudF9saXN0KSk7DQogDQogCWNhbGxfcmN1KCZyYi0+cmN1X2hlYWQsIHJiX2ZyZWVfcmN1 KTsNCiB9DQpAQCAtMzYyMiwyNiArMzYyNCwxMDAgQEAgc3RhdGljIHZvaWQgcGVyZl9tbWFwX29w ZW4oc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpDQogCXN0cnVjdCBwZXJmX2V2ZW50ICpldmVu dCA9IHZtYS0+dm1fZmlsZS0+cHJpdmF0ZV9kYXRhOw0KIA0KIAlhdG9taWNfaW5jKCZldmVudC0+ bW1hcF9jb3VudCk7DQorCWF0b21pY19pbmMoJmV2ZW50LT5yYi0+bW1hcF9jb3VudCk7DQogfQ0K IA0KKy8qDQorICogQSBidWZmZXIgY2FuIGJlIG1tYXAoKWVkIG11bHRpcGxlIHRpbWVzOyBlaXRo ZXIgZGlyZWN0bHkgdGhyb3VnaCB0aGUgc2FtZQ0KKyAqIGV2ZW50LCBvciB0aHJvdWdoIG90aGVy IGV2ZW50cyBieSB1c2Ugb2YgcGVyZl9ldmVudF9zZXRfb3V0cHV0KCkuDQorICoNCisgKiBJbiBv cmRlciB0byB1bmRvIHRoZSBWTSBhY2NvdW50aW5nIGRvbmUgYnkgcGVyZl9tbWFwKCkgd2UgbmVl ZCB0byBkZXN0cm95DQorICogdGhlIGJ1ZmZlciBoZXJlLCB3aGVyZSB3ZSBzdGlsbCBoYXZlIGEg Vk0gY29udGV4dC4gVGhpcyBtZWFucyB3ZSBuZWVkDQorICogdG8gZGV0YWNoIGFsbCBldmVudHMg cmVkaXJlY3RpbmcgdG8gdXMuDQorICovDQogc3RhdGljIHZvaWQgcGVyZl9tbWFwX2Nsb3NlKHN0 cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQ0KIHsNCiAJc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50 ID0gdm1hLT52bV9maWxlLT5wcml2YXRlX2RhdGE7DQogDQotCWlmIChhdG9taWNfZGVjX2FuZF9t dXRleF9sb2NrKCZldmVudC0+bW1hcF9jb3VudCwgJmV2ZW50LT5tbWFwX211dGV4KSkgew0KLQkJ dW5zaWduZWQgbG9uZyBzaXplID0gcGVyZl9kYXRhX3NpemUoZXZlbnQtPnJiKTsNCi0JCXN0cnVj dCB1c2VyX3N0cnVjdCAqdXNlciA9IGV2ZW50LT5tbWFwX3VzZXI7DQotCQlzdHJ1Y3QgcmluZ19i dWZmZXIgKnJiID0gZXZlbnQtPnJiOw0KKwlzdHJ1Y3QgcmluZ19idWZmZXIgKnJiID0gZXZlbnQt PnJiOw0KKwlzdHJ1Y3QgdXNlcl9zdHJ1Y3QgKm1tYXBfdXNlciA9IHJiLT5tbWFwX3VzZXI7DQor CWludCBtbWFwX2xvY2tlZCA9IHJiLT5tbWFwX2xvY2tlZDsNCisJdW5zaWduZWQgbG9uZyBzaXpl ID0gcGVyZl9kYXRhX3NpemUocmIpOw0KKw0KKwlhdG9taWNfZGVjKCZyYi0+bW1hcF9jb3VudCk7 DQorDQorCWlmICghYXRvbWljX2RlY19hbmRfbXV0ZXhfbG9jaygmZXZlbnQtPm1tYXBfY291bnQs ICZldmVudC0+bW1hcF9tdXRleCkpDQorCQlyZXR1cm47DQorDQorCS8qIERldGFjaCBjdXJyZW50 IGV2ZW50IGZyb20gdGhlIGJ1ZmZlci4gKi8NCisJcmN1X2Fzc2lnbl9wb2ludGVyKGV2ZW50LT5y YiwgTlVMTCk7DQorCXJpbmdfYnVmZmVyX2RldGFjaChldmVudCwgcmIpOw0KKwltdXRleF91bmxv Y2soJmV2ZW50LT5tbWFwX211dGV4KTsNCisNCisJLyogSWYgdGhlcmUncyBzdGlsbCBvdGhlciBt bWFwKClzIG9mIHRoaXMgYnVmZmVyLCB3ZSdyZSBkb25lLiAqLw0KKwlpZiAoYXRvbWljX3JlYWQo JnJiLT5tbWFwX2NvdW50KSkgew0KKwkJcmluZ19idWZmZXJfcHV0KHJiKTsgLyogY2FuJ3QgYmUg bGFzdCAqLw0KKwkJcmV0dXJuOw0KKwl9DQorDQorCS8qDQorCSAqIE5vIG90aGVyIG1tYXAoKXMs IGRldGFjaCBmcm9tIGFsbCBvdGhlciBldmVudHMgdGhhdCBtaWdodCByZWRpcmVjdA0KKwkgKiBp bnRvIHRoZSBub3cgdW5yZWFjaGFibGUgYnVmZmVyLiBTb21ld2hhdCBjb21wbGljYXRlZCBieSB0 aGUNCisJICogZmFjdCB0aGF0IHJiOjpldmVudF9sb2NrIG90aGVyd2lzZSBuZXN0cyBpbnNpZGUg bW1hcF9tdXRleC4NCisJICovDQorYWdhaW46DQorCXJjdV9yZWFkX2xvY2soKTsNCisJbGlzdF9m b3JfZWFjaF9lbnRyeV9yY3UoZXZlbnQsICZyYi0+ZXZlbnRfbGlzdCwgcmJfZW50cnkpIHsNCisJ CWlmICghYXRvbWljX2xvbmdfaW5jX25vdF96ZXJvKCZldmVudC0+cmVmY291bnQpKSB7DQorCQkJ LyoNCisJCQkgKiBUaGlzIGV2ZW50IGlzIGVuLXJvdXRlIHRvIGZyZWVfZXZlbnQoKSB3aGljaCB3 aWxsDQorCQkJICogZGV0YWNoIGl0IGFuZCByZW1vdmUgaXQgZnJvbSB0aGUgbGlzdC4NCisJCQkg Ki8NCisJCQljb250aW51ZTsNCisJCX0NCisJCXJjdV9yZWFkX3VubG9jaygpOw0KIA0KLQkJYXRv bWljX2xvbmdfc3ViKChzaXplID4+IFBBR0VfU0hJRlQpICsgMSwgJnVzZXItPmxvY2tlZF92bSk7 DQotCQl2bWEtPnZtX21tLT5waW5uZWRfdm0gLT0gZXZlbnQtPm1tYXBfbG9ja2VkOw0KLQkJcmN1 X2Fzc2lnbl9wb2ludGVyKGV2ZW50LT5yYiwgTlVMTCk7DQotCQlyaW5nX2J1ZmZlcl9kZXRhY2go ZXZlbnQsIHJiKTsNCisJCW11dGV4X2xvY2soJmV2ZW50LT5tbWFwX211dGV4KTsNCisJCS8qDQor CQkgKiBDaGVjayB3ZSBkaWRuJ3QgcmFjZSB3aXRoIHBlcmZfZXZlbnRfc2V0X291dHB1dCgpIHdo aWNoIGNhbg0KKwkJICogc3dpenpsZSB0aGUgcmIgZnJvbSB1bmRlciB1cyB3aGlsZSB3ZSB3ZXJl IHdhaXRpbmcgdG8NCisJCSAqIGFjcXVpcmUgbW1hcF9tdXRleC4NCisJCSAqDQorCQkgKiBJZiB3 ZSBmaW5kIGEgZGlmZmVyZW50IHJiOyBpZ25vcmUgdGhpcyBldmVudCwgYSBuZXh0DQorCQkgKiBp dGVyYXRpb24gd2lsbCBubyBsb25nZXIgZmluZCBpdCBvbiB0aGUgbGlzdC4gV2UgaGF2ZSB0bw0K KwkJICogc3RpbGwgcmVzdGFydCB0aGUgaXRlcmF0aW9uIHRvIG1ha2Ugc3VyZSB3ZSdyZSBub3Qg bm93DQorCQkgKiBpdGVyYXRpbmcgdGhlIHdyb25nIGxpc3QuDQorCQkgKi8NCisJCWlmIChldmVu dC0+cmIgPT0gcmIpIHsNCisJCQlyY3VfYXNzaWduX3BvaW50ZXIoZXZlbnQtPnJiLCBOVUxMKTsN CisJCQlyaW5nX2J1ZmZlcl9kZXRhY2goZXZlbnQsIHJiKTsNCisJCQlyaW5nX2J1ZmZlcl9wdXQo cmIpOyAvKiBjYW4ndCBiZSBsYXN0LCB3ZSBzdGlsbCBoYXZlIG9uZSAqLw0KKwkJfQ0KIAkJbXV0 ZXhfdW5sb2NrKCZldmVudC0+bW1hcF9tdXRleCk7DQorCQlwdXRfZXZlbnQoZXZlbnQpOw0KIA0K LQkJcmluZ19idWZmZXJfcHV0KHJiKTsNCi0JCWZyZWVfdWlkKHVzZXIpOw0KKwkJLyoNCisJCSAq IFJlc3RhcnQgdGhlIGl0ZXJhdGlvbjsgZWl0aGVyIHdlJ3JlIG9uIHRoZSB3cm9uZyBsaXN0IG9y DQorCQkgKiBkZXN0cm95ZWQgaXRzIGludGVncml0eSBieSBkb2luZyBhIGRlbGV0aW9uLg0KKwkJ ICovDQorCQlnb3RvIGFnYWluOw0KIAl9DQorCXJjdV9yZWFkX3VubG9jaygpOw0KKw0KKwkvKg0K KwkgKiBJdCBjb3VsZCBiZSB0aGVyZSdzIHN0aWxsIGEgZmV3IDAtcmVmIGV2ZW50cyBvbiB0aGUg bGlzdDsgdGhleSdsbA0KKwkgKiBnZXQgY2xlYW5lZCB1cCBieSBmcmVlX2V2ZW50KCkgLS0gdGhl eSdsbCBhbHNvIHN0aWxsIGhhdmUgdGhlaXINCisJICogcmVmIG9uIHRoZSByYiBhbmQgd2lsbCBm cmVlIGl0IHdoZW5ldmVyIHRoZXkgYXJlIGRvbmUgd2l0aCBpdC4NCisJICoNCisJICogQXNpZGUg ZnJvbSB0aGF0LCB0aGlzIGJ1ZmZlciBpcyAnZnVsbHknIGRldGFjaGVkIGFuZCB1bm1hcHBlZCwN CisJICogdW5kbyB0aGUgVk0gYWNjb3VudGluZy4NCisJICovDQorDQorCWF0b21pY19sb25nX3N1 Yigoc2l6ZSA+PiBQQUdFX1NISUZUKSArIDEsICZtbWFwX3VzZXItPmxvY2tlZF92bSk7DQorCXZt YS0+dm1fbW0tPnBpbm5lZF92bSAtPSBtbWFwX2xvY2tlZDsNCisJZnJlZV91aWQobW1hcF91c2Vy KTsNCisNCisJcmluZ19idWZmZXJfcHV0KHJiKTsgLyogY291bGQgYmUgbGFzdCAqLw0KIH0NCiAN CiBzdGF0aWMgY29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IHBlcmZfbW1hcF92bW9w cyA9IHsNCkBAIC0zNjkxLDEyICszNzY3LDI0IEBAIHN0YXRpYyBpbnQgcGVyZl9tbWFwKHN0cnVj dCBmaWxlICpmaWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkNCiAJCXJldHVybiAtRUlO VkFMOw0KIA0KIAlXQVJOX09OX09OQ0UoZXZlbnQtPmN0eC0+cGFyZW50X2N0eCk7DQorYWdhaW46 DQogCW11dGV4X2xvY2soJmV2ZW50LT5tbWFwX211dGV4KTsNCiAJaWYgKGV2ZW50LT5yYikgew0K LQkJaWYgKGV2ZW50LT5yYi0+bnJfcGFnZXMgPT0gbnJfcGFnZXMpDQotCQkJYXRvbWljX2luYygm ZXZlbnQtPnJiLT5yZWZjb3VudCk7DQotCQllbHNlDQorCQlpZiAoZXZlbnQtPnJiLT5ucl9wYWdl cyAhPSBucl9wYWdlcykgew0KIAkJCXJldCA9IC1FSU5WQUw7DQorCQkJZ290byB1bmxvY2s7DQor CQl9DQorDQorCQlpZiAoIWF0b21pY19pbmNfbm90X3plcm8oJmV2ZW50LT5yYi0+bW1hcF9jb3Vu dCkpIHsNCisJCQkvKg0KKwkJCSAqIFJhY2VkIGFnYWluc3QgcGVyZl9tbWFwX2Nsb3NlKCkgdGhy b3VnaA0KKwkJCSAqIHBlcmZfZXZlbnRfc2V0X291dHB1dCgpLiBUcnkgYWdhaW4sIGhvcGUgZm9y IGJldHRlcg0KKwkJCSAqIGx1Y2suDQorCQkJICovDQorCQkJbXV0ZXhfdW5sb2NrKCZldmVudC0+ bW1hcF9tdXRleCk7DQorCQkJZ290byBhZ2FpbjsNCisJCX0NCisNCiAJCWdvdG8gdW5sb2NrOw0K IAl9DQogDQpAQCAtMzczNywxOSArMzgyNSwyNyBAQCBzdGF0aWMgaW50IHBlcmZfbW1hcChzdHJ1 Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpDQogCQlyZXQgPSAtRU5P TUVNOw0KIAkJZ290byB1bmxvY2s7DQogCX0NCi0JcmN1X2Fzc2lnbl9wb2ludGVyKGV2ZW50LT5y YiwgcmIpOw0KKw0KKwlhdG9taWNfc2V0KCZyYi0+bW1hcF9jb3VudCwgMSk7DQorCXJiLT5tbWFw X2xvY2tlZCA9IGV4dHJhOw0KKwlyYi0+bW1hcF91c2VyID0gZ2V0X2N1cnJlbnRfdXNlcigpOw0K IA0KIAlhdG9taWNfbG9uZ19hZGQodXNlcl9leHRyYSwgJnVzZXItPmxvY2tlZF92bSk7DQotCWV2 ZW50LT5tbWFwX2xvY2tlZCA9IGV4dHJhOw0KLQlldmVudC0+bW1hcF91c2VyID0gZ2V0X2N1cnJl bnRfdXNlcigpOw0KLQl2bWEtPnZtX21tLT5waW5uZWRfdm0gKz0gZXZlbnQtPm1tYXBfbG9ja2Vk Ow0KKwl2bWEtPnZtX21tLT5waW5uZWRfdm0gKz0gZXh0cmE7DQorDQorCXJpbmdfYnVmZmVyX2F0 dGFjaChldmVudCwgcmIpOw0KKwlyY3VfYXNzaWduX3BvaW50ZXIoZXZlbnQtPnJiLCByYik7DQog DQogdW5sb2NrOg0KIAlpZiAoIXJldCkNCiAJCWF0b21pY19pbmMoJmV2ZW50LT5tbWFwX2NvdW50 KTsNCiAJbXV0ZXhfdW5sb2NrKCZldmVudC0+bW1hcF9tdXRleCk7DQogDQotCXZtYS0+dm1fZmxh Z3MgfD0gVk1fUkVTRVJWRUQ7DQorCS8qDQorCSAqIFNpbmNlIHBpbm5lZCBhY2NvdW50aW5nIGlz IHBlciB2bSB3ZSBjYW5ub3QgYWxsb3cgZm9yaygpIHRvIGNvcHkgb3VyDQorCSAqIHZtYS4NCisJ ICovDQorCXZtYS0+dm1fZmxhZ3MgfD0gVk1fRE9OVENPUFkgfCBWTV9SRVNFUlZFRDsNCiAJdm1h LT52bV9vcHMgPSAmcGVyZl9tbWFwX3Ztb3BzOw0KIA0KIAlyZXR1cm4gcmV0Ow0KQEAgLTYxMTQs NiArNjIxMCw4IEBAIHNldDoNCiAJaWYgKGF0b21pY19yZWFkKCZldmVudC0+bW1hcF9jb3VudCkp DQogCQlnb3RvIHVubG9jazsNCiANCisJb2xkX3JiID0gZXZlbnQtPnJiOw0KKw0KIAlpZiAob3V0 cHV0X2V2ZW50KSB7DQogCQkvKiBnZXQgdGhlIHJiIHdlIHdhbnQgdG8gcmVkaXJlY3QgdG8gKi8N CiAJCXJiID0gcmluZ19idWZmZXJfZ2V0KG91dHB1dF9ldmVudCk7DQpAQCAtNjEyMSwxNiArNjIx OSwyOCBAQCBzZXQ6DQogCQkJZ290byB1bmxvY2s7DQogCX0NCiANCi0Jb2xkX3JiID0gZXZlbnQt PnJiOw0KLQlyY3VfYXNzaWduX3BvaW50ZXIoZXZlbnQtPnJiLCByYik7DQogCWlmIChvbGRfcmIp DQogCQlyaW5nX2J1ZmZlcl9kZXRhY2goZXZlbnQsIG9sZF9yYik7DQorDQorCWlmIChyYikNCisJ CXJpbmdfYnVmZmVyX2F0dGFjaChldmVudCwgcmIpOw0KKw0KKwlyY3VfYXNzaWduX3BvaW50ZXIo ZXZlbnQtPnJiLCByYik7DQorDQorCWlmIChvbGRfcmIpIHsNCisJCXJpbmdfYnVmZmVyX3B1dChv bGRfcmIpOw0KKwkJLyoNCisJCSAqIFNpbmNlIHdlIGRldGFjaGVkIGJlZm9yZSBzZXR0aW5nIHRo ZSBuZXcgcmIsIHNvIHRoYXQgd2UNCisJCSAqIGNvdWxkIGF0dGFjaCB0aGUgbmV3IHJiLCB3ZSBj b3VsZCBoYXZlIG1pc3NlZCBhIHdha2V1cC4NCisJCSAqIFByb3ZpZGUgaXQgbm93Lg0KKwkJICov DQorCQl3YWtlX3VwX2FsbCgmZXZlbnQtPndhaXRxKTsNCisJfQ0KKw0KIAlyZXQgPSAwOw0KIHVu bG9jazoNCiAJbXV0ZXhfdW5sb2NrKCZldmVudC0+bW1hcF9tdXRleCk7DQogDQotCWlmIChvbGRf cmIpDQotCQlyaW5nX2J1ZmZlcl9wdXQob2xkX3JiKTsNCiBvdXQ6DQogCXJldHVybiByZXQ7DQog fQ0KQEAgLTY3OTcsNyArNjkwNyw3IEBAIGluaGVyaXRfdGFza19ncm91cChzdHJ1Y3QgcGVyZl9l dmVudCAqZXZlbnQsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcGFyZW50LA0KIAkJICogY2hpbGQuDQog CQkgKi8NCiANCi0JCWNoaWxkX2N0eCA9IGFsbG9jX3BlcmZfY29udGV4dChldmVudC0+cG11LCBj aGlsZCk7DQorCQljaGlsZF9jdHggPSBhbGxvY19wZXJmX2NvbnRleHQocGFyZW50X2N0eC0+cG11 LCBjaGlsZCk7DQogCQlpZiAoIWNoaWxkX2N0eCkNCiAJCQlyZXR1cm4gLUVOT01FTTsNCiANCmRp ZmYgLS1naXQgYS9rZXJuZWwvZXZlbnRzL2h3X2JyZWFrcG9pbnQuYyBiL2tlcm5lbC9ldmVudHMv aHdfYnJlYWtwb2ludC5jDQppbmRleCBiNzk3MWQ2Li45OGFjMjRlIDEwMDY0NA0KLS0tIGEva2Vy bmVsL2V2ZW50cy9od19icmVha3BvaW50LmMNCisrKyBiL2tlcm5lbC9ldmVudHMvaHdfYnJlYWtw b2ludC5jDQpAQCAtMTQ3LDcgKzE0Nyw3IEBAIGZldGNoX2JwX2J1c3lfc2xvdHMoc3RydWN0IGJw X2J1c3lfc2xvdHMgKnNsb3RzLCBzdHJ1Y3QgcGVyZl9ldmVudCAqYnAsDQogCQlyZXR1cm47DQog CX0NCiANCi0JZm9yX2VhY2hfb25saW5lX2NwdShjcHUpIHsNCisJZm9yX2VhY2hfcG9zc2libGVf Y3B1KGNwdSkgew0KIAkJdW5zaWduZWQgaW50IG5yOw0KIA0KIAkJbnIgPSBwZXJfY3B1KG5yX2Nw dV9icF9waW5uZWRbdHlwZV0sIGNwdSk7DQpAQCAtMjMzLDcgKzIzMyw3IEBAIHRvZ2dsZV9icF9z bG90KHN0cnVjdCBwZXJmX2V2ZW50ICpicCwgYm9vbCBlbmFibGUsIGVudW0gYnBfdHlwZV9pZHgg dHlwZSwNCiAJaWYgKGNwdSA+PSAwKSB7DQogCQl0b2dnbGVfYnBfdGFza19zbG90KGJwLCBjcHUs IGVuYWJsZSwgdHlwZSwgd2VpZ2h0KTsNCiAJfSBlbHNlIHsNCi0JCWZvcl9lYWNoX29ubGluZV9j cHUoY3B1KQ0KKwkJZm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkNCiAJCQl0b2dnbGVfYnBfdGFz a19zbG90KGJwLCBjcHUsIGVuYWJsZSwgdHlwZSwgd2VpZ2h0KTsNCiAJfQ0KIA0KZGlmZiAtLWdp dCBhL2tlcm5lbC9ldmVudHMvaW50ZXJuYWwuaCBiL2tlcm5lbC9ldmVudHMvaW50ZXJuYWwuaA0K aW5kZXggNjQ1NjhhNi4uYTIxMDFiYiAxMDA2NDQNCi0tLSBhL2tlcm5lbC9ldmVudHMvaW50ZXJu YWwuaA0KKysrIGIva2VybmVsL2V2ZW50cy9pbnRlcm5hbC5oDQpAQCAtMjYsNiArMjYsMTAgQEAg c3RydWN0IHJpbmdfYnVmZmVyIHsNCiAJc3BpbmxvY2tfdAkJCWV2ZW50X2xvY2s7DQogCXN0cnVj dCBsaXN0X2hlYWQJCWV2ZW50X2xpc3Q7DQogDQorCWF0b21pY190CQkJbW1hcF9jb3VudDsNCisJ dW5zaWduZWQgbG9uZwkJCW1tYXBfbG9ja2VkOw0KKwlzdHJ1Y3QgdXNlcl9zdHJ1Y3QJCSptbWFw X3VzZXI7DQorDQogCXN0cnVjdCBwZXJmX2V2ZW50X21tYXBfcGFnZQkqdXNlcl9wYWdlOw0KIAl2 b2lkCQkJCSpkYXRhX3BhZ2VzWzBdOw0KIH07DQpkaWZmIC0tZ2l0IGEva2VybmVsL2Z1dGV4LmMg Yi9rZXJuZWwvZnV0ZXguYw0KaW5kZXggNzdiY2NmYy4uMWQwNTM4ZSAxMDA2NDQNCi0tLSBhL2tl cm5lbC9mdXRleC5jDQorKysgYi9rZXJuZWwvZnV0ZXguYw0KQEAgLTYwLDYgKzYwLDcgQEANCiAj aW5jbHVkZSA8bGludXgvcGlkLmg+DQogI2luY2x1ZGUgPGxpbnV4L25zcHJveHkuaD4NCiAjaW5j bHVkZSA8bGludXgvcHRyYWNlLmg+DQorI2luY2x1ZGUgPGxpbnV4L2h1Z2V0bGIuaD4NCiANCiAj aW5jbHVkZSA8YXNtL2Z1dGV4Lmg+DQogDQpAQCAtMzYzLDcgKzM2NCw3IEBAIGFnYWluOg0KIAl9 IGVsc2Ugew0KIAkJa2V5LT5ib3RoLm9mZnNldCB8PSBGVVRfT0ZGX0lOT0RFOyAvKiBpbm9kZS1i YXNlZCBrZXkgKi8NCiAJCWtleS0+c2hhcmVkLmlub2RlID0gcGFnZV9oZWFkLT5tYXBwaW5nLT5o b3N0Ow0KLQkJa2V5LT5zaGFyZWQucGdvZmYgPSBwYWdlX2hlYWQtPmluZGV4Ow0KKwkJa2V5LT5z aGFyZWQucGdvZmYgPSBiYXNlcGFnZV9pbmRleChwYWdlKTsNCiAJfQ0KIA0KIAlnZXRfZnV0ZXhf a2V5X3JlZnMoa2V5KTsNCmRpZmYgLS1naXQgYS9rZXJuZWwvaXJxL21hbmFnZS5jIGIva2VybmVs L2lycS9tYW5hZ2UuYw0KaW5kZXggMzgyYTZiZC4uNTJiZGQ1OCAxMDA2NDQNCi0tLSBhL2tlcm5l bC9pcnEvbWFuYWdlLmMNCisrKyBiL2tlcm5lbC9pcnEvbWFuYWdlLmMNCkBAIC01MzksOSArNTM5 LDkgQEAgaW50IGNhbl9yZXF1ZXN0X2lycSh1bnNpZ25lZCBpbnQgaXJxLCB1bnNpZ25lZCBsb25n IGlycWZsYWdzKQ0KIAkJcmV0dXJuIDA7DQogDQogCWlmIChpcnFfc2V0dGluZ3NfY2FuX3JlcXVl c3QoZGVzYykpIHsNCi0JCWlmIChkZXNjLT5hY3Rpb24pDQotCQkJaWYgKGlycWZsYWdzICYgZGVz Yy0+YWN0aW9uLT5mbGFncyAmIElSUUZfU0hBUkVEKQ0KLQkJCQljYW5yZXF1ZXN0ID0xOw0KKwkJ aWYgKCFkZXNjLT5hY3Rpb24gfHwNCisJCSAgICBpcnFmbGFncyAmIGRlc2MtPmFjdGlvbi0+Zmxh Z3MgJiBJUlFGX1NIQVJFRCkNCisJCQljYW5yZXF1ZXN0ID0gMTsNCiAJfQ0KIAlpcnFfcHV0X2Rl c2NfdW5sb2NrKGRlc2MsIGZsYWdzKTsNCiAJcmV0dXJuIGNhbnJlcXVlc3Q7DQpkaWZmIC0tZ2l0 IGEva2VybmVsL3ByaW50ay5jIGIva2VybmVsL3ByaW50ay5jDQppbmRleCBjMGQxMmVhLi4xNjY4 OGVjIDEwMDY0NA0KLS0tIGEva2VybmVsL3ByaW50ay5jDQorKysgYi9rZXJuZWwvcHJpbnRrLmMN CkBAIC04MTMsOSArODEzLDkgQEAgc3RhdGljIGludCBjb25zb2xlX3RyeWxvY2tfZm9yX3ByaW50 ayh1bnNpZ25lZCBpbnQgY3B1KQ0KIAkJfQ0KIAl9DQogCXByaW50a19jcHUgPSBVSU5UX01BWDsN CisJcmF3X3NwaW5fdW5sb2NrKCZsb2didWZfbG9jayk7DQogCWlmICh3YWtlKQ0KIAkJdXAoJmNv bnNvbGVfc2VtKTsNCi0JcmF3X3NwaW5fdW5sb2NrKCZsb2didWZfbG9jayk7DQogCXJldHVybiBy ZXR2YWw7DQogfQ0KIHN0YXRpYyBjb25zdCBjaGFyIHJlY3Vyc2lvbl9idWdfbXNnIFtdID0NCmRp ZmYgLS1naXQgYS9rZXJuZWwvdGltZXIuYyBiL2tlcm5lbC90aW1lci5jDQppbmRleCBmMmY3MWQ3 Li5mOGIwNWE0IDEwMDY0NA0KLS0tIGEva2VybmVsL3RpbWVyLmMNCisrKyBiL2tlcm5lbC90aW1l ci5jDQpAQCAtMTQ1LDkgKzE0NSwxMSBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyByb3VuZF9qaWZm aWVzX2NvbW1vbih1bnNpZ25lZCBsb25nIGosIGludCBjcHUsDQogCS8qIG5vdyB0aGF0IHdlIGhh dmUgcm91bmRlZCwgc3VidHJhY3QgdGhlIGV4dHJhIHNrZXcgYWdhaW4gKi8NCiAJaiAtPSBjcHUg KiAzOw0KIA0KLQlpZiAoaiA8PSBqaWZmaWVzKSAvKiByb3VuZGluZyBhdGUgb3VyIHRpbWVvdXQg ZW50aXJlbHk7ICovDQotCQlyZXR1cm4gb3JpZ2luYWw7DQotCXJldHVybiBqOw0KKwkvKg0KKwkg KiBNYWtlIHN1cmUgaiBpcyBzdGlsbCBpbiB0aGUgZnV0dXJlLiBPdGhlcndpc2UgcmV0dXJuIHRo ZQ0KKwkgKiB1bm1vZGlmaWVkIHZhbHVlLg0KKwkgKi8NCisJcmV0dXJuIHRpbWVfaXNfYWZ0ZXJf amlmZmllcyhqKSA/IGogOiBvcmlnaW5hbDsNCiB9DQogDQogLyoqDQpkaWZmIC0tZ2l0IGEva2Vy bmVsL3RyYWNlL3RyYWNlX3N5c2NhbGxzLmMgYi9rZXJuZWwvdHJhY2UvdHJhY2Vfc3lzY2FsbHMu Yw0KaW5kZXggY2I2NTQ1NC4uN2M3NWJiYiAxMDA2NDQNCi0tLSBhL2tlcm5lbC90cmFjZS90cmFj ZV9zeXNjYWxscy5jDQorKysgYi9rZXJuZWwvdHJhY2UvdHJhY2Vfc3lzY2FsbHMuYw0KQEAgLTMw Myw2ICszMDMsOCBAQCB2b2lkIGZ0cmFjZV9zeXNjYWxsX2VudGVyKHZvaWQgKmlnbm9yZSwgc3Ry dWN0IHB0X3JlZ3MgKnJlZ3MsIGxvbmcgaWQpDQogCXN0cnVjdCBzeXNjYWxsX21ldGFkYXRhICpz eXNfZGF0YTsNCiAJc3RydWN0IHJpbmdfYnVmZmVyX2V2ZW50ICpldmVudDsNCiAJc3RydWN0IHJp bmdfYnVmZmVyICpidWZmZXI7DQorCXVuc2lnbmVkIGxvbmcgaXJxX2ZsYWdzOw0KKwlpbnQgcGM7 DQogCWludCBzaXplOw0KIAlpbnQgc3lzY2FsbF9ucjsNCiANCkBAIC0zMTgsOCArMzIwLDExIEBA IHZvaWQgZnRyYWNlX3N5c2NhbGxfZW50ZXIodm9pZCAqaWdub3JlLCBzdHJ1Y3QgcHRfcmVncyAq cmVncywgbG9uZyBpZCkNCiANCiAJc2l6ZSA9IHNpemVvZigqZW50cnkpICsgc2l6ZW9mKHVuc2ln bmVkIGxvbmcpICogc3lzX2RhdGEtPm5iX2FyZ3M7DQogDQorCWxvY2FsX3NhdmVfZmxhZ3MoaXJx X2ZsYWdzKTsNCisJcGMgPSBwcmVlbXB0X2NvdW50KCk7DQorDQogCWV2ZW50ID0gdHJhY2VfY3Vy cmVudF9idWZmZXJfbG9ja19yZXNlcnZlKCZidWZmZXIsDQotCQkJc3lzX2RhdGEtPmVudGVyX2V2 ZW50LT5ldmVudC50eXBlLCBzaXplLCAwLCAwKTsNCisJCQlzeXNfZGF0YS0+ZW50ZXJfZXZlbnQt PmV2ZW50LnR5cGUsIHNpemUsIGlycV9mbGFncywgcGMpOw0KIAlpZiAoIWV2ZW50KQ0KIAkJcmV0 dXJuOw0KIA0KQEAgLTMyOSw3ICszMzQsOCBAQCB2b2lkIGZ0cmFjZV9zeXNjYWxsX2VudGVyKHZv aWQgKmlnbm9yZSwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGxvbmcgaWQpDQogDQogCWlmICghZmls dGVyX2N1cnJlbnRfY2hlY2tfZGlzY2FyZChidWZmZXIsIHN5c19kYXRhLT5lbnRlcl9ldmVudCwN CiAJCQkJCSAgZW50cnksIGV2ZW50KSkNCi0JCXRyYWNlX2N1cnJlbnRfYnVmZmVyX3VubG9ja19j b21taXQoYnVmZmVyLCBldmVudCwgMCwgMCk7DQorCQl0cmFjZV9jdXJyZW50X2J1ZmZlcl91bmxv Y2tfY29tbWl0KGJ1ZmZlciwgZXZlbnQsDQorCQkJCQkJICAgaXJxX2ZsYWdzLCBwYyk7DQogfQ0K IA0KIHZvaWQgZnRyYWNlX3N5c2NhbGxfZXhpdCh2b2lkICppZ25vcmUsIHN0cnVjdCBwdF9yZWdz ICpyZWdzLCBsb25nIHJldCkNCkBAIC0zMzgsNiArMzQ0LDggQEAgdm9pZCBmdHJhY2Vfc3lzY2Fs bF9leGl0KHZvaWQgKmlnbm9yZSwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGxvbmcgcmV0KQ0KIAlz dHJ1Y3Qgc3lzY2FsbF9tZXRhZGF0YSAqc3lzX2RhdGE7DQogCXN0cnVjdCByaW5nX2J1ZmZlcl9l dmVudCAqZXZlbnQ7DQogCXN0cnVjdCByaW5nX2J1ZmZlciAqYnVmZmVyOw0KKwl1bnNpZ25lZCBs b25nIGlycV9mbGFnczsNCisJaW50IHBjOw0KIAlpbnQgc3lzY2FsbF9ucjsNCiANCiAJc3lzY2Fs bF9uciA9IHN5c2NhbGxfZ2V0X25yKGN1cnJlbnQsIHJlZ3MpOw0KQEAgLTM1MCw4ICszNTgsMTIg QEAgdm9pZCBmdHJhY2Vfc3lzY2FsbF9leGl0KHZvaWQgKmlnbm9yZSwgc3RydWN0IHB0X3JlZ3Mg KnJlZ3MsIGxvbmcgcmV0KQ0KIAlpZiAoIXN5c19kYXRhKQ0KIAkJcmV0dXJuOw0KIA0KKwlsb2Nh bF9zYXZlX2ZsYWdzKGlycV9mbGFncyk7DQorCXBjID0gcHJlZW1wdF9jb3VudCgpOw0KKw0KIAll dmVudCA9IHRyYWNlX2N1cnJlbnRfYnVmZmVyX2xvY2tfcmVzZXJ2ZSgmYnVmZmVyLA0KLQkJCXN5 c19kYXRhLT5leGl0X2V2ZW50LT5ldmVudC50eXBlLCBzaXplb2YoKmVudHJ5KSwgMCwgMCk7DQor CQkJc3lzX2RhdGEtPmV4aXRfZXZlbnQtPmV2ZW50LnR5cGUsIHNpemVvZigqZW50cnkpLA0KKwkJ CWlycV9mbGFncywgcGMpOw0KIAlpZiAoIWV2ZW50KQ0KIAkJcmV0dXJuOw0KIA0KQEAgLTM2MSw3 ICszNzMsOCBAQCB2b2lkIGZ0cmFjZV9zeXNjYWxsX2V4aXQodm9pZCAqaWdub3JlLCBzdHJ1Y3Qg cHRfcmVncyAqcmVncywgbG9uZyByZXQpDQogDQogCWlmICghZmlsdGVyX2N1cnJlbnRfY2hlY2tf ZGlzY2FyZChidWZmZXIsIHN5c19kYXRhLT5leGl0X2V2ZW50LA0KIAkJCQkJICBlbnRyeSwgZXZl bnQpKQ0KLQkJdHJhY2VfY3VycmVudF9idWZmZXJfdW5sb2NrX2NvbW1pdChidWZmZXIsIGV2ZW50 LCAwLCAwKTsNCisJCXRyYWNlX2N1cnJlbnRfYnVmZmVyX3VubG9ja19jb21taXQoYnVmZmVyLCBl dmVudCwNCisJCQkJCQkgICBpcnFfZmxhZ3MsIHBjKTsNCiB9DQogDQogaW50IHJlZ19ldmVudF9z eXNjYWxsX2VudGVyKHN0cnVjdCBmdHJhY2VfZXZlbnRfY2FsbCAqY2FsbCkNCmRpZmYgLS1naXQg YS9tbS9odWdldGxiLmMgYi9tbS9odWdldGxiLmMNCmluZGV4IDJkY2Q3MTYuLmRkZjIxMjggMTAw NjQ0DQotLS0gYS9tbS9odWdldGxiLmMNCisrKyBiL21tL2h1Z2V0bGIuYw0KQEAgLTY3OSw2ICs2 NzksMjMgQEAgaW50IFBhZ2VIdWdlKHN0cnVjdCBwYWdlICpwYWdlKQ0KIH0NCiBFWFBPUlRfU1lN Qk9MX0dQTChQYWdlSHVnZSk7DQogDQorcGdvZmZfdCBfX2Jhc2VwYWdlX2luZGV4KHN0cnVjdCBw YWdlICpwYWdlKQ0KK3sNCisJc3RydWN0IHBhZ2UgKnBhZ2VfaGVhZCA9IGNvbXBvdW5kX2hlYWQo cGFnZSk7DQorCXBnb2ZmX3QgaW5kZXggPSBwYWdlX2luZGV4KHBhZ2VfaGVhZCk7DQorCXVuc2ln bmVkIGxvbmcgY29tcG91bmRfaWR4Ow0KKw0KKwlpZiAoIVBhZ2VIdWdlKHBhZ2VfaGVhZCkpDQor CQlyZXR1cm4gcGFnZV9pbmRleChwYWdlKTsNCisNCisJaWYgKGNvbXBvdW5kX29yZGVyKHBhZ2Vf aGVhZCkgPj0gTUFYX09SREVSKQ0KKwkJY29tcG91bmRfaWR4ID0gcGFnZV90b19wZm4ocGFnZSkg LSBwYWdlX3RvX3BmbihwYWdlX2hlYWQpOw0KKwllbHNlDQorCQljb21wb3VuZF9pZHggPSBwYWdl IC0gcGFnZV9oZWFkOw0KKw0KKwlyZXR1cm4gKGluZGV4IDw8IGNvbXBvdW5kX29yZGVyKHBhZ2Vf aGVhZCkpICsgY29tcG91bmRfaWR4Ow0KK30NCisNCiBzdGF0aWMgc3RydWN0IHBhZ2UgKmFsbG9j X2ZyZXNoX2h1Z2VfcGFnZV9ub2RlKHN0cnVjdCBoc3RhdGUgKmgsIGludCBuaWQpDQogew0KIAlz dHJ1Y3QgcGFnZSAqcGFnZTsNCmRpZmYgLS1naXQgYS9uZXQvYmx1ZXRvb3RoL2wyY2FwX2NvcmUu YyBiL25ldC9ibHVldG9vdGgvbDJjYXBfY29yZS5jDQppbmRleCBhMGI2YzUwLi5kZDdjMDE5IDEw MDY0NA0KLS0tIGEvbmV0L2JsdWV0b290aC9sMmNhcF9jb3JlLmMNCisrKyBiL25ldC9ibHVldG9v dGgvbDJjYXBfY29yZS5jDQpAQCAtMTczNyw2ICsxNzM3LDkgQEAgc3RhdGljIHN0cnVjdCBza19i dWZmICpsMmNhcF9idWlsZF9jbWQoc3RydWN0IGwyY2FwX2Nvbm4gKmNvbm4sDQogCUJUX0RCRygi Y29ubiAlcCwgY29kZSAweCUyLjJ4LCBpZGVudCAweCUyLjJ4LCBsZW4gJWQiLA0KIAkJCWNvbm4s IGNvZGUsIGlkZW50LCBkbGVuKTsNCiANCisJaWYgKGNvbm4tPm10dSA8IEwyQ0FQX0hEUl9TSVpF ICsgTDJDQVBfQ01EX0hEUl9TSVpFKQ0KKwkJcmV0dXJuIE5VTEw7DQorDQogCWxlbiA9IEwyQ0FQ X0hEUl9TSVpFICsgTDJDQVBfQ01EX0hEUl9TSVpFICsgZGxlbjsNCiAJY291bnQgPSBtaW5fdCh1 bnNpZ25lZCBpbnQsIGNvbm4tPm10dSwgbGVuKTsNCiANCkBAIC0yODY1LDcgKzI4NjgsNyBAQCBz dGF0aWMgaW5saW5lIGludCBsMmNhcF9pbmZvcm1hdGlvbl9yc3Aoc3RydWN0IGwyY2FwX2Nvbm4g KmNvbm4sDQogCXN0cnVjdCBsMmNhcF9pbmZvX3JzcCAqcnNwID0gKHN0cnVjdCBsMmNhcF9pbmZv X3JzcCAqKSBkYXRhOw0KIAl1MTYgdHlwZSwgcmVzdWx0Ow0KIA0KLQlpZiAoY21kX2xlbiAhPSBz aXplb2YoKnJzcCkpDQorCWlmIChjbWRfbGVuIDwgc2l6ZW9mKCpyc3ApKQ0KIAkJcmV0dXJuIC1F UFJPVE87DQogDQogCXR5cGUgICA9IF9fbGUxNl90b19jcHUocnNwLT50eXBlKTsNCmRpZmYgLS1n aXQgYS9uZXQvY2VwaC9hdXRoX25vbmUuYyBiL25ldC9jZXBoL2F1dGhfbm9uZS5jDQppbmRleCAy MTRjMmJiLi45Zjc4YzVmIDEwMDY0NA0KLS0tIGEvbmV0L2NlcGgvYXV0aF9ub25lLmMNCisrKyBi L25ldC9jZXBoL2F1dGhfbm9uZS5jDQpAQCAtMzksNiArMzksMTEgQEAgc3RhdGljIGludCBzaG91 bGRfYXV0aGVudGljYXRlKHN0cnVjdCBjZXBoX2F1dGhfY2xpZW50ICphYykNCiAJcmV0dXJuIHhp LT5zdGFydGluZzsNCiB9DQogDQorc3RhdGljIGludCBidWlsZF9yZXF1ZXN0KHN0cnVjdCBjZXBo X2F1dGhfY2xpZW50ICphYywgdm9pZCAqYnVmLCB2b2lkICplbmQpDQorew0KKwlyZXR1cm4gMDsN Cit9DQorDQogLyoNCiAgKiB0aGUgZ2VuZXJpYyBhdXRoIGNvZGUgZGVjb2RlIHRoZSBnbG9iYWxf aWQsIGFuZCB3ZSBjYXJyeSBubyBhY3R1YWwNCiAgKiBhdXRoZW50aWNhdGUgc3RhdGUsIHNvIG5v dGhpbmcgaGFwcGVucyBoZXJlLg0KQEAgLTEwNyw2ICsxMTIsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGNlcGhfYXV0aF9jbGllbnRfb3BzIGNlcGhfYXV0aF9ub25lX29wcyA9IHsNCiAJLmRlc3Ry b3kgPSBkZXN0cm95LA0KIAkuaXNfYXV0aGVudGljYXRlZCA9IGlzX2F1dGhlbnRpY2F0ZWQsDQog CS5zaG91bGRfYXV0aGVudGljYXRlID0gc2hvdWxkX2F1dGhlbnRpY2F0ZSwNCisJLmJ1aWxkX3Jl cXVlc3QgPSBidWlsZF9yZXF1ZXN0LA0KIAkuaGFuZGxlX3JlcGx5ID0gaGFuZGxlX3JlcGx5LA0K IAkuY3JlYXRlX2F1dGhvcml6ZXIgPSBjZXBoX2F1dGhfbm9uZV9jcmVhdGVfYXV0aG9yaXplciwN CiAJLmRlc3Ryb3lfYXV0aG9yaXplciA9IGNlcGhfYXV0aF9ub25lX2Rlc3Ryb3lfYXV0aG9yaXpl ciwNCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYyBiL3NvdW5kL3BjaS9o ZGEvcGF0Y2hfaGRtaS5jDQppbmRleCAzYzhiYzZlLi5kMTQ4YTJiIDEwMDY0NA0KLS0tIGEvc291 bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMNCisrKyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5j DQpAQCAtOTAyLDcgKzkwMiw3IEBAIHN0YXRpYyBpbnQgaGRtaV9wY21fb3BlbihzdHJ1Y3QgaGRh X3BjbV9zdHJlYW0gKmhpbmZvLA0KIAlwZXJfY3Z0LT5hc3NpZ25lZCA9IDE7DQogCWhpbmZvLT5u aWQgPSBwZXJfY3Z0LT5jdnRfbmlkOw0KIA0KLQlzbmRfaGRhX2NvZGVjX3dyaXRlKGNvZGVjLCBw ZXJfcGluLT5waW5fbmlkLCAwLA0KKwlzbmRfaGRhX2NvZGVjX3dyaXRlX2NhY2hlKGNvZGVjLCBw ZXJfcGluLT5waW5fbmlkLCAwLA0KIAkJCSAgICBBQ19WRVJCX1NFVF9DT05ORUNUX1NFTCwNCiAJ CQkgICAgbXV4X2lkeCk7DQogCXNuZF9oZGFfc3BkaWZfY3Rsc19hc3NpZ24oY29kZWMsIHBpbl9p ZHgsIHBlcl9jdnQtPmN2dF9uaWQpOw0KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd204 OTYyLmMgYi9zb3VuZC9zb2MvY29kZWNzL3dtODk2Mi5jDQppbmRleCBlOTdkZjI0Li44YjY4N2Rh IDEwMDY0NA0KLS0tIGEvc291bmQvc29jL2NvZGVjcy93bTg5NjIuYw0KKysrIGIvc291bmQvc29j L2NvZGVjcy93bTg5NjIuYw0KQEAgLTIxMTcsNyArMjExNyw2IEBAIHN0YXRpYyBpbnQgd204OTYy X3B1dF9ocF9zdyhzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwNCiAJCQkgICAgc3RydWN0 IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpDQogew0KIAlzdHJ1Y3Qgc25kX3NvY19jb2Rl YyAqY29kZWMgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7DQotCXUxNiAqcmVnX2NhY2hl ID0gY29kZWMtPnJlZ19jYWNoZTsNCiAJaW50IHJldDsNCiANCiAJLyogQXBwbHkgdGhlIHVwZGF0 ZSAoaWYgYW55KSAqLw0KQEAgLTIxMjYsMTYgKzIxMjUsMTkgQEAgc3RhdGljIGludCB3bTg5NjJf cHV0X2hwX3N3KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLA0KIAkJcmV0dXJuIDA7DQog DQogCS8qIElmIHRoZSBsZWZ0IFBHQSBpcyBlbmFibGVkIGhpdCB0aGF0IFZVIGJpdC4uLiAqLw0K LQlpZiAoc25kX3NvY19yZWFkKGNvZGVjLCBXTTg5NjJfUFdSX01HTVRfMikgJiBXTTg5NjJfSFBP VVRMX1BHQV9FTkEpDQotCQlyZXR1cm4gc25kX3NvY193cml0ZShjb2RlYywgV004OTYyX0hQT1VU TF9WT0xVTUUsDQotCQkJCSAgICAgcmVnX2NhY2hlW1dNODk2Ml9IUE9VVExfVk9MVU1FXSk7DQor CXJldCA9IHNuZF9zb2NfcmVhZChjb2RlYywgV004OTYyX1BXUl9NR01UXzIpOw0KKwlpZiAocmV0 ICYgV004OTYyX0hQT1VUTF9QR0FfRU5BKSB7DQorCQlzbmRfc29jX3dyaXRlKGNvZGVjLCBXTTg5 NjJfSFBPVVRMX1ZPTFVNRSwNCisJCQkgICAgICBzbmRfc29jX3JlYWQoY29kZWMsIFdNODk2Ml9I UE9VVExfVk9MVU1FKSk7DQorCQlyZXR1cm4gMTsNCisJfQ0KIA0KIAkvKiAuLi5vdGhlcndpc2Ug dGhlIHJpZ2h0LiAgVGhlIFZVIGlzIHN0ZXJlby4gKi8NCi0JaWYgKHNuZF9zb2NfcmVhZChjb2Rl YywgV004OTYyX1BXUl9NR01UXzIpICYgV004OTYyX0hQT1VUUl9QR0FfRU5BKQ0KLQkJcmV0dXJu IHNuZF9zb2Nfd3JpdGUoY29kZWMsIFdNODk2Ml9IUE9VVFJfVk9MVU1FLA0KLQkJCQkgICAgIHJl Z19jYWNoZVtXTTg5NjJfSFBPVVRSX1ZPTFVNRV0pOw0KKwlpZiAocmV0ICYgV004OTYyX0hQT1VU Ul9QR0FfRU5BKQ0KKwkJc25kX3NvY193cml0ZShjb2RlYywgV004OTYyX0hQT1VUUl9WT0xVTUUs DQorCQkJICAgICAgc25kX3NvY19yZWFkKGNvZGVjLCBXTTg5NjJfSFBPVVRSX1ZPTFVNRSkpOw0K IA0KLQlyZXR1cm4gMDsNCisJcmV0dXJuIDE7DQogfQ0KIA0KIC8qIFRoZSBWVSBiaXRzIGZvciB0 aGUgc3BlYWtlcnMgYXJlIGluIGEgZGlmZmVyZW50IHJlZ2lzdGVyIHRvIHRoZSBtdXRlDQpAQCAt Mzk0NCw3ICszOTQ2LDYgQEAgc3RhdGljIGludCB3bTg5NjJfcHJvYmUoc3RydWN0IHNuZF9zb2Nf Y29kZWMgKmNvZGVjKQ0KIAlpbnQgcmV0Ow0KIAlzdHJ1Y3Qgd204OTYyX3ByaXYgKndtODk2MiA9 IHNuZF9zb2NfY29kZWNfZ2V0X2RydmRhdGEoY29kZWMpOw0KIAlzdHJ1Y3Qgd204OTYyX3BkYXRh ICpwZGF0YSA9IGRldl9nZXRfcGxhdGRhdGEoY29kZWMtPmRldik7DQotCXUxNiAqcmVnX2NhY2hl ID0gY29kZWMtPnJlZ19jYWNoZTsNCiAJaW50IGksIHRyaWdnZXIsIGlycV9wb2w7DQogCWJvb2wg ZG1pY2NsaywgZG1pY2RhdDsNCiANCkBAIC00MDU1LDggKzQwNTYsOSBAQCBzdGF0aWMgaW50IHdt ODk2Ml9wcm9iZShzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpDQogDQogCQkvKiBQdXQgdGhl IHNwZWFrZXJzIGludG8gbW9ubyBtb2RlPyAqLw0KIAkJaWYgKHBkYXRhLT5zcGtfbW9ubykNCi0J CQlyZWdfY2FjaGVbV004OTYyX0NMQVNTX0RfQ09OVFJPTF8yXQ0KLQkJCQl8PSBXTTg5NjJfU1BL X01PTk87DQorCQkJc25kX3NvY191cGRhdGVfYml0cyhjb2RlYywgV004OTYyX0NMQVNTX0RfQ09O VFJPTF8yLA0KKwkJCQlXTTg5NjJfU1BLX01PTk9fTUFTSywgV004OTYyX1NQS19NT05PKTsNCisN CiANCiAJCS8qIE1pY2JpYXMgc2V0dXAsIGRldGVjdGlvbiBlbmFibGUgYW5kIGRldGVjdGlvbg0K IAkJICogdGhyZWFzaG9sZHMuICovDQo= --=-nYB1caFluITzo0CMuEFa-- --=-3jI0sZWi/DvF5u+OB4b3 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIVAwUAUe/gdee/yOyVhhEJAQqs3w//TE+lverL1wRHY6VmxBT4BM12hh4CJagF KdWWweGx8pE9Iah1Qi0tmiUVgsDyYojxmi49JBs5v2GlbtA82f6gvlKCk0ZEhtOG 1AnVq0PVjmM7a2DPQg/6+H41cOtisWNuHAGmw6CKgtvgtNxw2GVFjVLGE6gF2WYf mXWJu1M74MVEhUvi9WoyMXlZOYNN9xqjNidvXLDNZZK5RdU1+PxcLRBTDHfTwdTr YeSOF7QJTb22LPVfniA2HfWW9vNwdoloHqmjXk3IKafFoVEgO55wSng+adu/9fDZ HFRzxkODYWYDVavR7lMCMudFTdzwLcWG03dRzLNOz9oerkT0QRx7e7l2FB3jiSgn 5BfqAHxJGyCqKpPb470rMseR405UdYfK1YNAXQtbGVVb+UsW/hOhNoujHsdwrlDe UU9VwYuZdKO3trTbxNSMRdKYGN6hmYrGlQ5kAipmS+L8KsNe0xPko/qbtS9KwxUo sqgOA7Qfi5TQm0dXx42CEvTEvRc7dARPumtOIuQKLG7WmoLc4iZaSyUtefSgX+4/ SwADIR5xvAXl5xMw2iXTun5lfFsx6LbuTmFM2cDgVWRSqgJH9f4yKrhEtPi7ilxG lW6IvmZubVBui6tU5UVs2EQZ1I4/Suvv3ayzSgA457dM0FjKIl6NYGnAojAy4O4M f4qLCJGsngI= =573C -----END PGP SIGNATURE----- --=-3jI0sZWi/DvF5u+OB4b3-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/