From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753089Ab3E1E0G (ORCPT ); Tue, 28 May 2013 00:26:06 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:53063 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750893Ab3E1E0A (ORCPT ); Tue, 28 May 2013 00:26:00 -0400 Message-ID: <1369715136.3469.432.camel@deadeye.wl.decadent.org.uk> Subject: Re: [00/94] 3.2.46-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: Tue, 28 May 2013 05:25:36 +0100 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-oauCApNm0l7KUU8+RmZr" X-Mailer: Evolution 3.4.4-2 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 --=-oauCApNm0l7KUU8+RmZr Content-Type: multipart/mixed; boundary="=-xOcedOGztt91lKmR8Vwm" --=-xOcedOGztt91lKmR8Vwm Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined patch for 3.2.46-rc1 relative to 3.2.45. Ben. --=20 Ben Hutchings If at first you don't succeed, you're doing about average. --=-xOcedOGztt91lKmR8Vwm Content-Disposition: attachment; filename="linux-3.2.46-rc1.patch" Content-Type: text/x-patch; name="linux-3.2.46-rc1.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24va2VybmVsLXBhcmFtZXRlcnMudHh0IGIvRG9jdW1l bnRhdGlvbi9rZXJuZWwtcGFyYW1ldGVycy50eHQNCmluZGV4IDg5N2YyMjMuLjJiYTgyNzIgMTAw NjQ0DQotLS0gYS9Eb2N1bWVudGF0aW9uL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dA0KKysrIGIvRG9j dW1lbnRhdGlvbi9rZXJuZWwtcGFyYW1ldGVycy50eHQNCkBAIC03MzQsNiArNzM0LDEyIEBAIGJ5 dGVzIHJlc3BlY3RpdmVseS4gU3VjaCBsZXR0ZXIgc3VmZml4ZXMgY2FuIGFsc28gYmUgZW50aXJl bHkgb21pdHRlZC4NCiAJZWRkPQkJW0VERF0NCiAJCQlGb3JtYXQ6IHsib2ZmIiB8ICJvbiIgfCAi c2tpcFttYnJdIn0NCiANCisJZWZpX25vX3N0b3JhZ2VfcGFyYW5vaWEgW0VGSTsgWDg2XQ0KKwkJ CVVzaW5nIHRoaXMgcGFyYW1ldGVyIHlvdSBjYW4gdXNlIG1vcmUgdGhhbiA1MCUgb2YNCisJCQl5 b3VyIGVmaSB2YXJpYWJsZSBzdG9yYWdlLiBVc2UgdGhpcyBwYXJhbWV0ZXIgb25seSBpZg0KKwkJ CXlvdSBhcmUgcmVhbGx5IHN1cmUgdGhhdCB5b3VyIFVFRkkgZG9lcyBzYW5lIGdjIGFuZA0KKwkJ CWZ1bGZpbGxzIHRoZSBzcGVjIG90aGVyd2lzZSB5b3VyIGJvYXJkIG1heSBicmljay4NCisNCiAJ ZWlzYV9pcnFfZWRnZT0JW1BBUklTQyxIV10NCiAJCQlTZWUgaGVhZGVyIG9mIGRyaXZlcnMvcGFy aXNjL2Vpc2EuYy4NCiANCmRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlDQppbmRleCA5 MDcyZmVlLi5lMThmNjc3IDEwMDY0NA0KLS0tIGEvTWFrZWZpbGUNCisrKyBiL01ha2VmaWxlDQpA QCAtMSw3ICsxLDcgQEANCiBWRVJTSU9OID0gMw0KIFBBVENITEVWRUwgPSAyDQotU1VCTEVWRUwg PSA0NQ0KLUVYVFJBVkVSU0lPTiA9DQorU1VCTEVWRUwgPSA0Ng0KK0VYVFJBVkVSU0lPTiA9IC1y YzENCiBOQU1FID0gU2FiZXItdG9vdGhlZCBTcXVpcnJlbA0KIA0KICMgKkRPQ1VNRU5UQVRJT04q DQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9hdDkxc2FtOWc0NV9kZWZjb25maWcgYi9h cmNoL2FybS9jb25maWdzL2F0OTFzYW05ZzQ1X2RlZmNvbmZpZw0KaW5kZXggNjA2ZDQ4Zi4uOGFh Yjc4NiAxMDA2NDQNCi0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTlnNDVfZGVmY29uZmln DQorKysgYi9hcmNoL2FybS9jb25maWdzL2F0OTFzYW05ZzQ1X2RlZmNvbmZpZw0KQEAgLTE3Myw3 ICsxNzMsNiBAQCBDT05GSUdfTU1DPXkNCiAjIENPTkZJR19NTUNfQkxPQ0tfQk9VTkNFIGlzIG5v dCBzZXQNCiBDT05GSUdfU0RJT19VQVJUPW0NCiBDT05GSUdfTU1DX0FUTUVMTUNJPXkNCi1DT05G SUdfTU1DX0FUTUVMTUNJX0RNQT15DQogQ09ORklHX0xFRFNfQVRNRUxfUFdNPXkNCiBDT05GSUdf TEVEU19HUElPPXkNCiBDT05GSUdfTEVEU19UUklHR0VSX1RJTUVSPXkNCmRpZmYgLS1naXQgYS9h cmNoL2FybS9tYWNoLWtpcmt3b29kL3RzMjE5LXNldHVwLmMgYi9hcmNoL2FybS9tYWNoLWtpcmt3 b29kL3RzMjE5LXNldHVwLmMNCmluZGV4IDI2MmMwMzQuLjNkMDczN2UgMTAwNjQ0DQotLS0gYS9h cmNoL2FybS9tYWNoLWtpcmt3b29kL3RzMjE5LXNldHVwLmMNCisrKyBiL2FyY2gvYXJtL21hY2gt a2lya3dvb2QvdHMyMTktc2V0dXAuYw0KQEAgLTEyNCw3ICsxMjQsNyBAQCBzdGF0aWMgdm9pZCBf X2luaXQgcW5hcF90czIxOV9pbml0KHZvaWQpDQogc3RhdGljIGludCBfX2luaXQgdHMyMTlfcGNp X2luaXQodm9pZCkNCiB7DQogCWlmIChtYWNoaW5lX2lzX3RzMjE5KCkpDQotCQlraXJrd29vZF9w Y2llX2luaXQoS1dfUENJRTApOw0KKwkJa2lya3dvb2RfcGNpZV9pbml0KEtXX1BDSUUxIHwgS1df UENJRTApOw0KIA0KIAlyZXR1cm4gMDsNCiB9DQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1v cmlvbi9jb21tb24uYyBiL2FyY2gvYXJtL3BsYXQtb3Jpb24vY29tbW9uLmMNCmluZGV4IDhhNjg4 NmEuLmM3MmIwODMgMTAwNjQ0DQotLS0gYS9hcmNoL2FybS9wbGF0LW9yaW9uL2NvbW1vbi5jDQor KysgYi9hcmNoL2FybS9wbGF0LW9yaW9uL2NvbW1vbi5jDQpAQCAtMzQ3LDcgKzM0Nyw3IEBAIHN0 YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugb3Jpb25fZ2UxMF9zaGFyZWRfcmVzb3VyY2VzW10gPSB7DQog DQogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugb3Jpb25fZ2UxMF9zaGFyZWQgPSB7DQog CS5uYW1lCQk9IE1WNjQzWFhfRVRIX1NIQVJFRF9OQU1FLA0KLQkuaWQJCT0gMSwNCisJLmlkCQk9 IDIsDQogCS5kZXYJCT0gew0KIAkJLnBsYXRmb3JtX2RhdGEJPSAmb3Jpb25fZ2UxMF9zaGFyZWRf ZGF0YSwNCiAJfSwNCkBAIC0zNjIsOCArMzYyLDggQEAgc3RhdGljIHN0cnVjdCByZXNvdXJjZSBv cmlvbl9nZTEwX3Jlc291cmNlc1tdID0gew0KIA0KIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlIG9yaW9uX2dlMTAgPSB7DQogCS5uYW1lCQk9IE1WNjQzWFhfRVRIX05BTUUsDQotCS5pZAkJ PSAxLA0KLQkubnVtX3Jlc291cmNlcwk9IDIsDQorCS5pZAkJPSAyLA0KKwkubnVtX3Jlc291cmNl cwk9IDEsDQogCS5yZXNvdXJjZQk9IG9yaW9uX2dlMTBfcmVzb3VyY2VzLA0KIAkuZGV2CQk9IHsN CiAJCS5jb2hlcmVudF9kbWFfbWFzawk9IERNQV9CSVRfTUFTSygzMiksDQpAQCAtNDAxLDcgKzQw MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugb3Jpb25fZ2UxMV9zaGFyZWRfcmVzb3VyY2Vz W10gPSB7DQogDQogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugb3Jpb25fZ2UxMV9zaGFy ZWQgPSB7DQogCS5uYW1lCQk9IE1WNjQzWFhfRVRIX1NIQVJFRF9OQU1FLA0KLQkuaWQJCT0gMSwN CisJLmlkCQk9IDMsDQogCS5kZXYJCT0gew0KIAkJLnBsYXRmb3JtX2RhdGEJPSAmb3Jpb25fZ2Ux MV9zaGFyZWRfZGF0YSwNCiAJfSwNCkBAIC00MTYsOCArNDE2LDggQEAgc3RhdGljIHN0cnVjdCBy ZXNvdXJjZSBvcmlvbl9nZTExX3Jlc291cmNlc1tdID0gew0KIA0KIHN0YXRpYyBzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlIG9yaW9uX2dlMTEgPSB7DQogCS5uYW1lCQk9IE1WNjQzWFhfRVRIX05BTUUs DQotCS5pZAkJPSAxLA0KLQkubnVtX3Jlc291cmNlcwk9IDIsDQorCS5pZAkJPSAzLA0KKwkubnVt X3Jlc291cmNlcwk9IDEsDQogCS5yZXNvdXJjZQk9IG9yaW9uX2dlMTFfcmVzb3VyY2VzLA0KIAku ZGV2CQk9IHsNCiAJCS5jb2hlcmVudF9kbWFfbWFzawk9IERNQV9CSVRfTUFTSygzMiksDQpkaWZm IC0tZ2l0IGEvYXJjaC9hdnIzMi9jb25maWdzL2ZhdnItMzJfZGVmY29uZmlnIGIvYXJjaC9hdnIz Mi9jb25maWdzL2ZhdnItMzJfZGVmY29uZmlnDQppbmRleCAxOTk3M2IwLi41OWU0Y2M5IDEwMDY0 NA0KLS0tIGEvYXJjaC9hdnIzMi9jb25maWdzL2ZhdnItMzJfZGVmY29uZmlnDQorKysgYi9hcmNo L2F2cjMyL2NvbmZpZ3MvZmF2ci0zMl9kZWZjb25maWcNCkBAIC0xMjIsNyArMTIyLDYgQEAgQ09O RklHX1VTQl9HX1NFUklBTD1tDQogQ09ORklHX1VTQl9DRENfQ09NUE9TSVRFPW0NCiBDT05GSUdf TU1DPXkNCiBDT05GSUdfTU1DX0FUTUVMTUNJPXkNCi1DT05GSUdfTU1DX0FUTUVMTUNJX0RNQT15 DQogQ09ORklHX05FV19MRURTPXkNCiBDT05GSUdfTEVEU19DTEFTUz15DQogQ09ORklHX0xFRFNf QVRNRUxfUFdNPW0NCmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL2NvbmZpZ3MvbWVyaXNjX2RlZmNv bmZpZyBiL2FyY2gvYXZyMzIvY29uZmlncy9tZXJpc2NfZGVmY29uZmlnDQppbmRleCAzYmVmYWI5 Li42NWRlNDQzIDEwMDY0NA0KLS0tIGEvYXJjaC9hdnIzMi9jb25maWdzL21lcmlzY19kZWZjb25m aWcNCisrKyBiL2FyY2gvYXZyMzIvY29uZmlncy9tZXJpc2NfZGVmY29uZmlnDQpAQCAtMTAyLDcg KzEwMiw2IEBAIENPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFPXkNCiBDT05GSUdfTE9HTz15DQog Q09ORklHX01NQz15DQogQ09ORklHX01NQ19BVE1FTE1DST15DQotQ09ORklHX01NQ19BVE1FTE1D SV9ETUE9eQ0KIENPTkZJR19ORVdfTEVEUz15DQogQ09ORklHX0xFRFNfQ0xBU1M9eQ0KIENPTkZJ R19MRURTX0FUTUVMX1BXTT15DQpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9rZXJuZWwvbW9kdWxl LmMgYi9hcmNoL2F2cjMyL2tlcm5lbC9tb2R1bGUuYw0KaW5kZXggNTk2ZjczMC4uMmM5NDEyOSAx MDA2NDQNCi0tLSBhL2FyY2gvYXZyMzIva2VybmVsL21vZHVsZS5jDQorKysgYi9hcmNoL2F2cjMy L2tlcm5lbC9tb2R1bGUuYw0KQEAgLTI2NCw3ICsyNjQsNyBAQCBpbnQgYXBwbHlfcmVsb2NhdGVf YWRkKEVsZjMyX1NoZHIgKnNlY2hkcnMsIGNvbnN0IGNoYXIgKnN0cnRhYiwNCiAJCQlicmVhazsN CiAJCWNhc2UgUl9BVlIzMl9HT1QxOFNXOg0KIAkJCWlmICgocmVsb2NhdGlvbiAmIDB4ZmZmZTAw MDMpICE9IDANCi0JCQkgICAgJiYgKHJlbG9jYXRpb24gJiAweGZmZmMwMDAzKSAhPSAweGZmZmYw MDAwKQ0KKwkJCSAgICAmJiAocmVsb2NhdGlvbiAmIDB4ZmZmYzAwMDApICE9IDB4ZmZmYzAwMDAp DQogCQkJCXJldHVybiByZWxvY19vdmVyZmxvdyhtb2R1bGUsICJSX0FWUjMyX0dPVDE4U1ciLA0K IAkJCQkJCSAgICAgcmVsb2NhdGlvbik7DQogCQkJcmVsb2NhdGlvbiA+Pj0gMjsNCmRpZmYgLS1n aXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcnRhcy5oIGIvYXJjaC9wb3dlcnBjL2luY2x1 ZGUvYXNtL3J0YXMuaA0KaW5kZXggNDFmNjlhZS4uOGMzZWZkMiAxMDA2NDQNCi0tLSBhL2FyY2gv cG93ZXJwYy9pbmNsdWRlL2FzbS9ydGFzLmgNCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2Fz bS9ydGFzLmgNCkBAIC0yMzAsNiArMjMwLDggQEAgZXh0ZXJuIHZvaWQgcnRhc19wcm9ncmVzcyhj aGFyICpzLCB1bnNpZ25lZCBzaG9ydCBoZXgpOw0KIGV4dGVybiB2b2lkIHJ0YXNfaW5pdGlhbGl6 ZSh2b2lkKTsNCiBleHRlcm4gaW50IHJ0YXNfc3VzcGVuZF9jcHUoc3RydWN0IHJ0YXNfc3VzcGVu ZF9tZV9kYXRhICpkYXRhKTsNCiBleHRlcm4gaW50IHJ0YXNfc3VzcGVuZF9sYXN0X2NwdShzdHJ1 Y3QgcnRhc19zdXNwZW5kX21lX2RhdGEgKmRhdGEpOw0KK2V4dGVybiBpbnQgcnRhc19vbmxpbmVf Y3B1c19tYXNrKGNwdW1hc2tfdmFyX3QgY3B1cyk7DQorZXh0ZXJuIGludCBydGFzX29mZmxpbmVf Y3B1c19tYXNrKGNwdW1hc2tfdmFyX3QgY3B1cyk7DQogZXh0ZXJuIGludCBydGFzX2libV9zdXNw ZW5kX21lKHN0cnVjdCBydGFzX2FyZ3MgKik7DQogDQogc3RydWN0IHJ0Y190aW1lOw0KZGlmZiAt LWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcnRhcy5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9y dGFzLmMNCmluZGV4IDUxN2IxZDguLjQzNGExODAgMTAwNjQ0DQotLS0gYS9hcmNoL3Bvd2VycGMv a2VybmVsL3J0YXMuYw0KKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9ydGFzLmMNCkBAIC0xOSw2 ICsxOSw3IEBADQogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4NCiAjaW5jbHVkZSA8bGludXgvY2Fw YWJpbGl0eS5oPg0KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPg0KKyNpbmNsdWRlIDxsaW51eC9j cHUuaD4NCiAjaW5jbHVkZSA8bGludXgvc21wLmg+DQogI2luY2x1ZGUgPGxpbnV4L2NvbXBsZXRp b24uaD4NCiAjaW5jbHVkZSA8bGludXgvY3B1bWFzay5oPg0KQEAgLTcxNiw3ICs3MTcsNiBAQCBz dGF0aWMgaW50IF9fcnRhc19zdXNwZW5kX2xhc3RfY3B1KHN0cnVjdCBydGFzX3N1c3BlbmRfbWVf ZGF0YSAqZGF0YSwgaW50IHdha2Vfdw0KIAlpbnQgY3B1Ow0KIA0KIAlzbGJfc2V0X3NpemUoU0xC X01JTl9TSVpFKTsNCi0Jc3RvcF90b3BvbG9neV91cGRhdGUoKTsNCiAJcHJpbnRrKEtFUk5fREVC VUcgImNhbGxpbmcgaWJtLHN1c3BlbmQtbWUgb24gY3B1ICVpXG4iLCBzbXBfcHJvY2Vzc29yX2lk KCkpOw0KIA0KIAl3aGlsZSAocmMgPT0gSF9NVUxUSV9USFJFQURTX0FDVElWRSAmJiAhYXRvbWlj X3JlYWQoJmRhdGEtPmRvbmUpICYmDQpAQCAtNzMyLDcgKzczMiw2IEBAIHN0YXRpYyBpbnQgX19y dGFzX3N1c3BlbmRfbGFzdF9jcHUoc3RydWN0IHJ0YXNfc3VzcGVuZF9tZV9kYXRhICpkYXRhLCBp bnQgd2FrZV93DQogCQlyYyA9IGF0b21pY19yZWFkKCZkYXRhLT5lcnJvcik7DQogDQogCWF0b21p Y19zZXQoJmRhdGEtPmVycm9yLCByYyk7DQotCXN0YXJ0X3RvcG9sb2d5X3VwZGF0ZSgpOw0KIAlw U2VyaWVzX2NvYWxlc2NlX2luaXQoKTsNCiANCiAJaWYgKHdha2Vfd2hlbl9kb25lKSB7DQpAQCAt ODExLDYgKzgxMCw5NSBAQCBzdGF0aWMgdm9pZCBydGFzX3BlcmNwdV9zdXNwZW5kX21lKHZvaWQg KmluZm8pDQogCV9fcnRhc19zdXNwZW5kX2NwdSgoc3RydWN0IHJ0YXNfc3VzcGVuZF9tZV9kYXRh ICopaW5mbywgMSk7DQogfQ0KIA0KK2VudW0gcnRhc19jcHVfc3RhdGUgew0KKwlET1dOLA0KKwlV UCwNCit9Ow0KKw0KKyNpZm5kZWYgQ09ORklHX1NNUA0KK3N0YXRpYyBpbnQgcnRhc19jcHVfc3Rh dGVfY2hhbmdlX21hc2soZW51bSBydGFzX2NwdV9zdGF0ZSBzdGF0ZSwNCisJCQkJY3B1bWFza192 YXJfdCBjcHVzKQ0KK3sNCisJaWYgKCFjcHVtYXNrX2VtcHR5KGNwdXMpKSB7DQorCQljcHVtYXNr X2NsZWFyKGNwdXMpOw0KKwkJcmV0dXJuIC1FSU5WQUw7DQorCX0gZWxzZQ0KKwkJcmV0dXJuIDA7 DQorfQ0KKyNlbHNlDQorLyogT24gcmV0dXJuIGNwdW1hc2sgd2lsbCBiZSBhbHRlcmVkIHRvIGlu ZGljYXRlIENQVXMgY2hhbmdlZC4NCisgKiBDUFVzIHdpdGggc3RhdGVzIGNoYW5nZWQgd2lsbCBi ZSBzZXQgaW4gdGhlIG1hc2ssDQorICogQ1BVcyB3aXRoIHN0YXR1cyB1bmNoYW5nZWQgd2lsbCBi ZSB1bnNldCBpbiB0aGUgbWFzay4gKi8NCitzdGF0aWMgaW50IHJ0YXNfY3B1X3N0YXRlX2NoYW5n ZV9tYXNrKGVudW0gcnRhc19jcHVfc3RhdGUgc3RhdGUsDQorCQkJCWNwdW1hc2tfdmFyX3QgY3B1 cykNCit7DQorCWludCBjcHU7DQorCWludCBjcHVyZXQgPSAwOw0KKwlpbnQgcmV0ID0gMDsNCisN CisJaWYgKGNwdW1hc2tfZW1wdHkoY3B1cykpDQorCQlyZXR1cm4gMDsNCisNCisJZm9yX2VhY2hf Y3B1KGNwdSwgY3B1cykgew0KKwkJc3dpdGNoIChzdGF0ZSkgew0KKwkJY2FzZSBET1dOOg0KKwkJ CWNwdXJldCA9IGNwdV9kb3duKGNwdSk7DQorCQkJYnJlYWs7DQorCQljYXNlIFVQOg0KKwkJCWNw dXJldCA9IGNwdV91cChjcHUpOw0KKwkJCWJyZWFrOw0KKwkJfQ0KKwkJaWYgKGNwdXJldCkgew0K KwkJCXByX2RlYnVnKCIlczogY3B1XyVzIGZvciBjcHUjJWQgcmV0dXJuZWQgJWQuXG4iLA0KKwkJ CQkJX19mdW5jX18sDQorCQkJCQkoKHN0YXRlID09IFVQKSA/ICJ1cCIgOiAiZG93biIpLA0KKwkJ CQkJY3B1LCBjcHVyZXQpOw0KKwkJCWlmICghcmV0KQ0KKwkJCQlyZXQgPSBjcHVyZXQ7DQorCQkJ aWYgKHN0YXRlID09IFVQKSB7DQorCQkJCS8qIGNsZWFyIGJpdHMgZm9yIHVuY2hhbmdlZCBjcHVz LCByZXR1cm4gKi8NCisJCQkJY3B1bWFza19zaGlmdF9yaWdodChjcHVzLCBjcHVzLCBjcHUpOw0K KwkJCQljcHVtYXNrX3NoaWZ0X2xlZnQoY3B1cywgY3B1cywgY3B1KTsNCisJCQkJYnJlYWs7DQor CQkJfSBlbHNlIHsNCisJCQkJLyogY2xlYXIgYml0IGZvciB1bmNoYW5nZWQgY3B1LCBjb250aW51 ZSAqLw0KKwkJCQljcHVtYXNrX2NsZWFyX2NwdShjcHUsIGNwdXMpOw0KKwkJCX0NCisJCX0NCisJ fQ0KKw0KKwlyZXR1cm4gcmV0Ow0KK30NCisjZW5kaWYNCisNCitpbnQgcnRhc19vbmxpbmVfY3B1 c19tYXNrKGNwdW1hc2tfdmFyX3QgY3B1cykNCit7DQorCWludCByZXQ7DQorDQorCXJldCA9IHJ0 YXNfY3B1X3N0YXRlX2NoYW5nZV9tYXNrKFVQLCBjcHVzKTsNCisNCisJaWYgKHJldCkgew0KKwkJ Y3B1bWFza192YXJfdCB0bXBfbWFzazsNCisNCisJCWlmICghYWxsb2NfY3B1bWFza192YXIoJnRt cF9tYXNrLCBHRlBfVEVNUE9SQVJZKSkNCisJCQlyZXR1cm4gcmV0Ow0KKw0KKwkJLyogVXNlIHRt cF9tYXNrIHRvIHByZXNlcnZlIGNwdXMgbWFzayBmcm9tIGZpcnN0IGZhaWx1cmUgKi8NCisJCWNw dW1hc2tfY29weSh0bXBfbWFzaywgY3B1cyk7DQorCQlydGFzX29mZmxpbmVfY3B1c19tYXNrKHRt cF9tYXNrKTsNCisJCWZyZWVfY3B1bWFza192YXIodG1wX21hc2spOw0KKwl9DQorDQorCXJldHVy biByZXQ7DQorfQ0KK0VYUE9SVF9TWU1CT0wocnRhc19vbmxpbmVfY3B1c19tYXNrKTsNCisNCitp bnQgcnRhc19vZmZsaW5lX2NwdXNfbWFzayhjcHVtYXNrX3Zhcl90IGNwdXMpDQorew0KKwlyZXR1 cm4gcnRhc19jcHVfc3RhdGVfY2hhbmdlX21hc2soRE9XTiwgY3B1cyk7DQorfQ0KK0VYUE9SVF9T WU1CT0wocnRhc19vZmZsaW5lX2NwdXNfbWFzayk7DQorDQogaW50IHJ0YXNfaWJtX3N1c3BlbmRf bWUoc3RydWN0IHJ0YXNfYXJncyAqYXJncykNCiB7DQogCWxvbmcgc3RhdGU7DQpAQCAtODE4LDYg KzkwNiw4IEBAIGludCBydGFzX2libV9zdXNwZW5kX21lKHN0cnVjdCBydGFzX2FyZ3MgKmFyZ3Mp DQogCXVuc2lnbmVkIGxvbmcgcmV0YnVmW1BMUEFSX0hDQUxMX0JVRlNJWkVdOw0KIAlzdHJ1Y3Qg cnRhc19zdXNwZW5kX21lX2RhdGEgZGF0YTsNCiAJREVDTEFSRV9DT01QTEVUSU9OX09OU1RBQ0so ZG9uZSk7DQorCWNwdW1hc2tfdmFyX3Qgb2ZmbGluZV9tYXNrOw0KKwlpbnQgY3B1cmV0Ow0KIA0K IAlpZiAoIXJ0YXNfc2VydmljZV9wcmVzZW50KCJpYm0sc3VzcGVuZC1tZSIpKQ0KIAkJcmV0dXJu IC1FTk9TWVM7DQpAQCAtODQxLDEyICs5MzEsMjYgQEAgaW50IHJ0YXNfaWJtX3N1c3BlbmRfbWUo c3RydWN0IHJ0YXNfYXJncyAqYXJncykNCiAJCXJldHVybiAwOw0KIAl9DQogDQorCWlmICghYWxs b2NfY3B1bWFza192YXIoJm9mZmxpbmVfbWFzaywgR0ZQX1RFTVBPUkFSWSkpDQorCQlyZXR1cm4g LUVOT01FTTsNCisNCiAJYXRvbWljX3NldCgmZGF0YS53b3JraW5nLCAwKTsNCiAJYXRvbWljX3Nl dCgmZGF0YS5kb25lLCAwKTsNCiAJYXRvbWljX3NldCgmZGF0YS5lcnJvciwgMCk7DQogCWRhdGEu dG9rZW4gPSBydGFzX3Rva2VuKCJpYm0sc3VzcGVuZC1tZSIpOw0KIAlkYXRhLmNvbXBsZXRlID0g JmRvbmU7DQogDQorCS8qIEFsbCBwcmVzZW50IENQVXMgbXVzdCBiZSBvbmxpbmUgKi8NCisJY3B1 bWFza19hbmRub3Qob2ZmbGluZV9tYXNrLCBjcHVfcHJlc2VudF9tYXNrLCBjcHVfb25saW5lX21h c2spOw0KKwljcHVyZXQgPSBydGFzX29ubGluZV9jcHVzX21hc2sob2ZmbGluZV9tYXNrKTsNCisJ aWYgKGNwdXJldCkgew0KKwkJcHJfZXJyKCIlczogQ291bGQgbm90IGJyaW5nIHByZXNlbnQgQ1BV cyBvbmxpbmUuXG4iLCBfX2Z1bmNfXyk7DQorCQlhdG9taWNfc2V0KCZkYXRhLmVycm9yLCBjcHVy ZXQpOw0KKwkJZ290byBvdXQ7DQorCX0NCisNCisJc3RvcF90b3BvbG9neV91cGRhdGUoKTsNCisN CiAJLyogQ2FsbCBmdW5jdGlvbiBvbiBhbGwgQ1BVcy4gIE9uZSBvZiB1cyB3aWxsIG1ha2UgdGhl DQogCSAqIHJ0YXMgY2FsbA0KIAkgKi8NCkBAIC04NTgsNiArOTYyLDE2IEBAIGludCBydGFzX2li bV9zdXNwZW5kX21lKHN0cnVjdCBydGFzX2FyZ3MgKmFyZ3MpDQogCWlmIChhdG9taWNfcmVhZCgm ZGF0YS5lcnJvcikgIT0gMCkNCiAJCXByaW50ayhLRVJOX0VSUiAiRXJyb3IgZG9pbmcgZ2xvYmFs IGpvaW5cbiIpOw0KIA0KKwlzdGFydF90b3BvbG9neV91cGRhdGUoKTsNCisNCisJLyogVGFrZSBk b3duIENQVXMgbm90IG9ubGluZSBwcmlvciB0byBzdXNwZW5kICovDQorCWNwdXJldCA9IHJ0YXNf b2ZmbGluZV9jcHVzX21hc2sob2ZmbGluZV9tYXNrKTsNCisJaWYgKGNwdXJldCkNCisJCXByX3dh cm4oIiVzOiBDb3VsZCBub3QgcmVzdG9yZSBDUFVzIHRvIG9mZmxpbmUgc3RhdGUuXG4iLA0KKwkJ CQlfX2Z1bmNfXyk7DQorDQorb3V0Og0KKwlmcmVlX2NwdW1hc2tfdmFyKG9mZmxpbmVfbWFzayk7 DQogCXJldHVybiBhdG9taWNfcmVhZCgmZGF0YS5lcnJvcik7DQogfQ0KICNlbHNlIC8qIENPTkZJ R19QUENfUFNFUklFUyAqLw0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNl cmllcy9zdXNwZW5kLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvc3VzcGVuZC5j DQppbmRleCBkM2RlMDg0Li41NWE0NzcxIDEwMDY0NA0KLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRm b3Jtcy9wc2VyaWVzL3N1c3BlbmQuYw0KKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2Vy aWVzL3N1c3BlbmQuYw0KQEAgLTE2LDYgKzE2LDcgQEANCiAgICogRm91bmRhdGlvbiwgSW5jLiwg NTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgVVNBDQog ICAqLw0KIA0KKyNpbmNsdWRlIDxsaW51eC9jcHUuaD4NCiAjaW5jbHVkZSA8bGludXgvZGVsYXku aD4NCiAjaW5jbHVkZSA8bGludXgvc3VzcGVuZC5oPg0KICNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+ DQpAQCAtMjQsNiArMjUsNyBAQA0KICNpbmNsdWRlIDxhc20vbWFjaGRlcC5oPg0KICNpbmNsdWRl IDxhc20vbW11Lmg+DQogI2luY2x1ZGUgPGFzbS9ydGFzLmg+DQorI2luY2x1ZGUgPGFzbS90b3Bv bG9neS5oPg0KIA0KIHN0YXRpYyB1NjQgc3RyZWFtX2lkOw0KIHN0YXRpYyBzdHJ1Y3Qgc3lzX2Rl dmljZSBzdXNwZW5kX3N5c2RldjsNCkBAIC0xMjUsMTEgKzEyNywxNSBAQCBzdGF0aWMgc3NpemVf dCBzdG9yZV9oaWJlcm5hdGUoc3RydWN0IHN5c2Rldl9jbGFzcyAqY2xhc3NkZXYsDQogCQkJICAg ICAgIHN0cnVjdCBzeXNkZXZfY2xhc3NfYXR0cmlidXRlICphdHRyLA0KIAkJCSAgICAgICBjb25z dCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkNCiB7DQorCWNwdW1hc2tfdmFyX3Qgb2ZmbGluZV9t YXNrOw0KIAlpbnQgcmM7DQogDQogCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkNCiAJCXJl dHVybiAtRVBFUk07DQogDQorCWlmICghYWxsb2NfY3B1bWFza192YXIoJm9mZmxpbmVfbWFzaywg R0ZQX1RFTVBPUkFSWSkpDQorCQlyZXR1cm4gLUVOT01FTTsNCisNCiAJc3RyZWFtX2lkID0gc2lt cGxlX3N0cnRvdWwoYnVmLCBOVUxMLCAxNik7DQogDQogCWRvIHsNCkBAIC0xMzgsMTMgKzE0NCwz MyBAQCBzdGF0aWMgc3NpemVfdCBzdG9yZV9oaWJlcm5hdGUoc3RydWN0IHN5c2Rldl9jbGFzcyAq Y2xhc3NkZXYsDQogCQkJc3NsZWVwKDEpOw0KIAl9IHdoaWxlIChyYyA9PSAtRUFHQUlOKTsNCiAN Ci0JaWYgKCFyYykNCisJaWYgKCFyYykgew0KKwkJLyogQWxsIHByZXNlbnQgQ1BVcyBtdXN0IGJl IG9ubGluZSAqLw0KKwkJY3B1bWFza19hbmRub3Qob2ZmbGluZV9tYXNrLCBjcHVfcHJlc2VudF9t YXNrLA0KKwkJCQljcHVfb25saW5lX21hc2spOw0KKwkJcmMgPSBydGFzX29ubGluZV9jcHVzX21h c2sob2ZmbGluZV9tYXNrKTsNCisJCWlmIChyYykgew0KKwkJCXByX2VycigiJXM6IENvdWxkIG5v dCBicmluZyBwcmVzZW50IENQVXMgb25saW5lLlxuIiwNCisJCQkJCV9fZnVuY19fKTsNCisJCQln b3RvIG91dDsNCisJCX0NCisNCisJCXN0b3BfdG9wb2xvZ3lfdXBkYXRlKCk7DQogCQlyYyA9IHBt X3N1c3BlbmQoUE1fU1VTUEVORF9NRU0pOw0KKwkJc3RhcnRfdG9wb2xvZ3lfdXBkYXRlKCk7DQor DQorCQkvKiBUYWtlIGRvd24gQ1BVcyBub3Qgb25saW5lIHByaW9yIHRvIHN1c3BlbmQgKi8NCisJ CWlmICghcnRhc19vZmZsaW5lX2NwdXNfbWFzayhvZmZsaW5lX21hc2spKQ0KKwkJCXByX3dhcm4o IiVzOiBDb3VsZCBub3QgcmVzdG9yZSBDUFVzIHRvIG9mZmxpbmUgIg0KKwkJCQkJInN0YXRlLlxu IiwgX19mdW5jX18pOw0KKwl9DQogDQogCXN0cmVhbV9pZCA9IDA7DQogDQogCWlmICghcmMpDQog CQlyYyA9IGNvdW50Ow0KK291dDoNCisJZnJlZV9jcHVtYXNrX3ZhcihvZmZsaW5lX21hc2spOw0K IAlyZXR1cm4gcmM7DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2FyY2gvdW0vaW5jbHVkZS9hc20vcGd0 YWJsZS5oIGIvYXJjaC91bS9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgNCmluZGV4IGFhMzY1YzUuLjU4 ODhmMWIgMTAwNjQ0DQotLS0gYS9hcmNoL3VtL2luY2x1ZGUvYXNtL3BndGFibGUuaA0KKysrIGIv YXJjaC91bS9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgNCkBAIC02OSw2ICs2OSw4IEBAIGV4dGVybiB1 bnNpZ25lZCBsb25nIGVuZF9pb21lbTsNCiAjZGVmaW5lIFBBR0VfS0VSTkVMCV9fcGdwcm90KF9Q QUdFX1BSRVNFTlQgfCBfUEFHRV9SVyB8IF9QQUdFX0RJUlRZIHwgX1BBR0VfQUNDRVNTRUQpDQog I2RlZmluZSBQQUdFX0tFUk5FTF9FWEVDCV9fcGdwcm90KF9fUEFHRV9LRVJORUxfRVhFQykNCiAN CisjZGVmaW5lIGlvX3JlbWFwX3Bmbl9yYW5nZQlyZW1hcF9wZm5fcmFuZ2UNCisNCiAvKg0KICAq IFRoZSBpMzg2IGNhbid0IGRvIHBhZ2UgcHJvdGVjdGlvbiBmb3IgZXhlY3V0ZSwgYW5kIGNvbnNp ZGVycyB0aGF0IHRoZSBzYW1lDQogICogYXJlIHJlYWQuDQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYv a2VybmVsL2lycS5jIGIvYXJjaC94ODYva2VybmVsL2lycS5jDQppbmRleCA0MjllMGM5Li5mYjJl YjMyIDEwMDY0NA0KLS0tIGEvYXJjaC94ODYva2VybmVsL2lycS5jDQorKysgYi9hcmNoL3g4Ni9r ZXJuZWwvaXJxLmMNCkBAIC0xNjAsMTAgKzE2MCw2IEBAIHU2NCBhcmNoX2lycV9zdGF0X2NwdSh1 bnNpZ25lZCBpbnQgY3B1KQ0KIHU2NCBhcmNoX2lycV9zdGF0KHZvaWQpDQogew0KIAl1NjQgc3Vt ID0gYXRvbWljX3JlYWQoJmlycV9lcnJfY291bnQpOw0KLQ0KLSNpZmRlZiBDT05GSUdfWDg2X0lP X0FQSUMNCi0Jc3VtICs9IGF0b21pY19yZWFkKCZpcnFfbWlzX2NvdW50KTsNCi0jZW5kaWYNCiAJ cmV0dXJuIHN1bTsNCiB9DQogDQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC5jIGIvYXJj aC94ODYva3ZtL3ZteC5jDQppbmRleCA0MDc3ODliLi5hYWM1ZWE3IDEwMDY0NA0KLS0tIGEvYXJj aC94ODYva3ZtL3ZteC5jDQorKysgYi9hcmNoL3g4Ni9rdm0vdm14LmMNCkBAIC00ODgyLDYgKzQ4 ODIsMTIgQEAgc3RhdGljIGludCBoYW5kbGVfaW52YWxpZF9ndWVzdF9zdGF0ZShzdHJ1Y3Qga3Zt X3ZjcHUgKnZjcHUpDQogCQlpZiAoZXJyICE9IEVNVUxBVEVfRE9ORSkNCiAJCQlyZXR1cm4gMDsN CiANCisJCWlmICh2Y3B1LT5hcmNoLmhhbHRfcmVxdWVzdCkgew0KKwkJCXZjcHUtPmFyY2guaGFs dF9yZXF1ZXN0ID0gMDsNCisJCQlyZXQgPSBrdm1fZW11bGF0ZV9oYWx0KHZjcHUpOw0KKwkJCWdv dG8gb3V0Ow0KKwkJfQ0KKw0KIAkJaWYgKHNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKQ0KIAkJCWdv dG8gb3V0Ow0KIAkJaWYgKG5lZWRfcmVzY2hlZCgpKQ0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L3Bs YXRmb3JtL2VmaS9lZmkuYyBiL2FyY2gveDg2L3BsYXRmb3JtL2VmaS9lZmkuYw0KaW5kZXggMWRl NTQyYi4uMDdlZjdlOCAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L3BsYXRmb3JtL2VmaS9lZmkuYw0K KysrIGIvYXJjaC94ODYvcGxhdGZvcm0vZWZpL2VmaS5jDQpAQCAtMTAxLDYgKzEwMSwxNSBAQCBz dGF0aWMgaW50IF9faW5pdCBzZXR1cF9hZGRfZWZpX21lbW1hcChjaGFyICphcmcpDQogfQ0KIGVh cmx5X3BhcmFtKCJhZGRfZWZpX21lbW1hcCIsIHNldHVwX2FkZF9lZmlfbWVtbWFwKTsNCiANCitz dGF0aWMgYm9vbCBlZmlfbm9fc3RvcmFnZV9wYXJhbm9pYTsNCisNCitzdGF0aWMgaW50IF9faW5p dCBzZXR1cF9zdG9yYWdlX3BhcmFub2lhKGNoYXIgKmFyZykNCit7DQorCWVmaV9ub19zdG9yYWdl X3BhcmFub2lhID0gdHJ1ZTsNCisJcmV0dXJuIDA7DQorfQ0KK2Vhcmx5X3BhcmFtKCJlZmlfbm9f c3RvcmFnZV9wYXJhbm9pYSIsIHNldHVwX3N0b3JhZ2VfcGFyYW5vaWEpOw0KKw0KIA0KIHN0YXRp YyBlZmlfc3RhdHVzX3QgdmlydF9lZmlfZ2V0X3RpbWUoZWZpX3RpbWVfdCAqdG0sIGVmaV90aW1l X2NhcF90ICp0YykNCiB7DQpAQCAtODE1LDMgKzgyNCwzNyBAQCB1NjQgZWZpX21lbV9hdHRyaWJ1 dGVzKHVuc2lnbmVkIGxvbmcgcGh5c19hZGRyKQ0KIAl9DQogCXJldHVybiAwOw0KIH0NCisNCisv Kg0KKyAqIFNvbWUgZmlybXdhcmUgaGFzIHNlcmlvdXMgcHJvYmxlbXMgd2hlbiB1c2luZyBtb3Jl IHRoYW4gNTAlIG9mIHRoZSBFRkkNCisgKiB2YXJpYWJsZSBzdG9yZSwgaS5lLiBpdCB0cmlnZ2Vy cyBidWdzIHRoYXQgY2FuIGJyaWNrIG1hY2hpbmVzLiBFbnN1cmUgdGhhdA0KKyAqIHdlIG5ldmVy IHVzZSBtb3JlIHRoYW4gdGhpcyBzYWZlIGxpbWl0Lg0KKyAqDQorICogUmV0dXJuIEVGSV9TVUND RVNTIGlmIGl0IGlzIHNhZmUgdG8gd3JpdGUgJ3NpemUnIGJ5dGVzIHRvIHRoZSB2YXJpYWJsZQ0K KyAqIHN0b3JlLg0KKyAqLw0KK2VmaV9zdGF0dXNfdCBlZmlfcXVlcnlfdmFyaWFibGVfc3RvcmUo dTMyIGF0dHJpYnV0ZXMsIHVuc2lnbmVkIGxvbmcgc2l6ZSkNCit7DQorCWVmaV9zdGF0dXNfdCBz dGF0dXM7DQorCXU2NCBzdG9yYWdlX3NpemUsIHJlbWFpbmluZ19zaXplLCBtYXhfc2l6ZTsNCisN CisJc3RhdHVzID0gZWZpLnF1ZXJ5X3ZhcmlhYmxlX2luZm8oYXR0cmlidXRlcywgJnN0b3JhZ2Vf c2l6ZSwNCisJCQkJCSAmcmVtYWluaW5nX3NpemUsICZtYXhfc2l6ZSk7DQorCWlmIChzdGF0dXMg IT0gRUZJX1NVQ0NFU1MpDQorCQlyZXR1cm4gc3RhdHVzOw0KKw0KKwlpZiAoIW1heF9zaXplICYm IHJlbWFpbmluZ19zaXplID4gc2l6ZSkNCisJCXByaW50a19vbmNlKEtFUk5fRVJSIEZXX0JVRyAi QnJva2VuIEVGSSBpbXBsZW1lbnRhdGlvbiINCisJCQkgICAgIiBpcyByZXR1cm5pbmcgTWF4VmFy aWFibGVTaXplPTBcbiIpOw0KKw0KKwlpZiAoIXN0b3JhZ2Vfc2l6ZSB8fCBzaXplID4gcmVtYWlu aW5nX3NpemUgfHwNCisJICAgIChtYXhfc2l6ZSAmJiBzaXplID4gbWF4X3NpemUpKQ0KKwkJcmV0 dXJuIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTOw0KKw0KKwlpZiAoIWVmaV9ub19zdG9yYWdlX3BhcmFu b2lhICYmDQorCSAgICAocmVtYWluaW5nX3NpemUgLSBzaXplKSA8IChzdG9yYWdlX3NpemUgLyAy KSkNCisJCXJldHVybiBFRklfT1VUX09GX1JFU09VUkNFUzsNCisNCisJcmV0dXJuIEVGSV9TVUND RVNTOw0KK30NCitFWFBPUlRfU1lNQk9MX0dQTChlZmlfcXVlcnlfdmFyaWFibGVfc3RvcmUpOw0K ZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9lbmxpZ2h0ZW4uYyBiL2FyY2gveDg2L3hlbi9lbmxp Z2h0ZW4uYw0KaW5kZXggMDQ0ZjVkOS4uNTE4OWZlOCAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L3hl bi9lbmxpZ2h0ZW4uYw0KKysrIGIvYXJjaC94ODYveGVuL2VubGlnaHRlbi5jDQpAQCAtMTI5LDYg KzEyOSwyMSBAQCBzdGF0aWMgdm9pZCB4ZW5fdmNwdV9zZXR1cChpbnQgY3B1KQ0KIA0KIAlCVUdf T04oSFlQRVJWSVNPUl9zaGFyZWRfaW5mbyA9PSAmeGVuX2R1bW15X3NoYXJlZF9pbmZvKTsNCiAN CisJLyoNCisJICogVGhpcyBwYXRoIGlzIGNhbGxlZCB0d2ljZSBvbiBQVkhWTSAtIGZpcnN0IGR1 cmluZyBib290dXAgdmlhDQorCSAqIHNtcF9pbml0IC0+IHhlbl9odm1fY3B1X25vdGlmeSwgYW5k IHRoZW4gaWYgdGhlIFZDUFUgaXMgYmVpbmcNCisJICogaG90cGx1Z2dlZDogY3B1X3VwIC0+IHhl bl9odm1fY3B1X25vdGlmeS4NCisJICogQXMgd2UgY2FuIG9ubHkgZG8gdGhlIFZDUFVPUF9yZWdp c3Rlcl92Y3B1X2luZm8gb25jZSBsZXRzDQorCSAqIG5vdCBvdmVyLXdyaXRlIGl0cyByZXN1bHQu DQorCSAqDQorCSAqIEZvciBQViBpdCBpcyBjYWxsZWQgZHVyaW5nIHJlc3RvcmUgKHhlbl92Y3B1 X3Jlc3RvcmUpIGFuZCBib290dXANCisJICogKHhlbl9zZXR1cF92Y3B1X2luZm9fcGxhY2VtZW50 KS4gVGhlIGhvdHBsdWcgbWVjaGFuaXNtIGRvZXMgbm90DQorCSAqIHVzZSB0aGlzIGZ1bmN0aW9u Lg0KKwkgKi8NCisJaWYgKHhlbl9odm1fZG9tYWluKCkpIHsNCisJCWlmIChwZXJfY3B1KHhlbl92 Y3B1LCBjcHUpID09ICZwZXJfY3B1KHhlbl92Y3B1X2luZm8sIGNwdSkpDQorCQkJcmV0dXJuOw0K Kwl9DQogCWlmIChjcHUgPCBNQVhfVklSVF9DUFVTKQ0KIAkJcGVyX2NwdSh4ZW5fdmNwdSxjcHUp ID0gJkhZUEVSVklTT1Jfc2hhcmVkX2luZm8tPnZjcHVfaW5mb1tjcHVdOw0KIA0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvYWNwaS9hY3BpY2EvZXhmbGRpby5jIGIvZHJpdmVycy9hY3BpL2FjcGljYS9l eGZsZGlvLmMNCmluZGV4IGY5MTVhN2YuLmIzMzRmNTQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2Fj cGkvYWNwaWNhL2V4ZmxkaW8uYw0KKysrIGIvZHJpdmVycy9hY3BpL2FjcGljYS9leGZsZGlvLmMN CkBAIC03MDIsNyArNzAyLDE5IEBAIGFjcGlfZXhfZXh0cmFjdF9mcm9tX2ZpZWxkKHVuaW9uIGFj cGlfb3BlcmFuZF9vYmplY3QgKm9ial9kZXNjLA0KIA0KIAlpZiAoKG9ial9kZXNjLT5jb21tb25f ZmllbGQuc3RhcnRfZmllbGRfYml0X29mZnNldCA9PSAwKSAmJg0KIAkgICAgKG9ial9kZXNjLT5j b21tb25fZmllbGQuYml0X2xlbmd0aCA9PSBhY2Nlc3NfYml0X3dpZHRoKSkgew0KLQkJc3RhdHVz ID0gYWNwaV9leF9maWVsZF9kYXR1bV9pbyhvYmpfZGVzYywgMCwgYnVmZmVyLCBBQ1BJX1JFQUQp Ow0KKwkJaWYgKGJ1ZmZlcl9sZW5ndGggPj0gc2l6ZW9mKHU2NCkpIHsNCisJCQlzdGF0dXMgPQ0K KwkJCSAgICBhY3BpX2V4X2ZpZWxkX2RhdHVtX2lvKG9ial9kZXNjLCAwLCBidWZmZXIsDQorCQkJ CQkJICAgQUNQSV9SRUFEKTsNCisJCX0gZWxzZSB7DQorCQkJLyogVXNlIHJhd19kYXR1bSAodTY0 KSB0byBoYW5kbGUgYnVmZmVycyA8IDY0IGJpdHMgKi8NCisNCisJCQlzdGF0dXMgPQ0KKwkJCSAg ICBhY3BpX2V4X2ZpZWxkX2RhdHVtX2lvKG9ial9kZXNjLCAwLCAmcmF3X2RhdHVtLA0KKwkJCQkJ CSAgIEFDUElfUkVBRCk7DQorCQkJQUNQSV9NRU1DUFkoYnVmZmVyLCAmcmF3X2RhdHVtLCBidWZm ZXJfbGVuZ3RoKTsNCisJCX0NCisNCiAJCXJldHVybl9BQ1BJX1NUQVRVUyhzdGF0dXMpOw0KIAl9 DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2VjLmMgYi9kcml2ZXJzL2FjcGkvZWMuYw0K aW5kZXggZDI1MTliMi4uNTFkZTE4NiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvYWNwaS9lYy5jDQor KysgYi9kcml2ZXJzL2FjcGkvZWMuYw0KQEAgLTIxNyw3ICsyMTcsNyBAQCBzdGF0aWMgaW50IGVj X2NoZWNrX3NjaV9zeW5jKHN0cnVjdCBhY3BpX2VjICplYywgdTggc3RhdGUpDQogc3RhdGljIGlu dCBlY19wb2xsKHN0cnVjdCBhY3BpX2VjICplYykNCiB7DQogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7 DQotCWludCByZXBlYXQgPSAyOyAvKiBudW1iZXIgb2YgY29tbWFuZCByZXN0YXJ0cyAqLw0KKwlp bnQgcmVwZWF0ID0gNTsgLyogbnVtYmVyIG9mIGNvbW1hbmQgcmVzdGFydHMgKi8NCiAJd2hpbGUg KHJlcGVhdC0tKSB7DQogCQl1bnNpZ25lZCBsb25nIGRlbGF5ID0gamlmZmllcyArDQogCQkJbXNl Y3NfdG9famlmZmllcyhlY19kZWxheSk7DQpAQCAtMjM1LDggKzIzNSw2IEBAIHN0YXRpYyBpbnQg ZWNfcG9sbChzdHJ1Y3QgYWNwaV9lYyAqZWMpDQogCQkJfQ0KIAkJCWFkdmFuY2VfdHJhbnNhY3Rp b24oZWMsIGFjcGlfZWNfcmVhZF9zdGF0dXMoZWMpKTsNCiAJCX0gd2hpbGUgKHRpbWVfYmVmb3Jl KGppZmZpZXMsIGRlbGF5KSk7DQotCQlpZiAoYWNwaV9lY19yZWFkX3N0YXR1cyhlYykgJiBBQ1BJ X0VDX0ZMQUdfSUJGKQ0KLQkJCWJyZWFrOw0KIAkJcHJfZGVidWcoUFJFRklYICJjb250cm9sbGVy IHJlc2V0LCByZXN0YXJ0IHRyYW5zYWN0aW9uXG4iKTsNCiAJCXNwaW5fbG9ja19pcnFzYXZlKCZl Yy0+Y3Vycl9sb2NrLCBmbGFncyk7DQogCQlzdGFydF90cmFuc2FjdGlvbihlYyk7DQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9hY3BpL3ZpZGVvX2RldGVjdC5jIGIvZHJpdmVycy9hY3BpL3ZpZGVvX2Rl dGVjdC5jDQppbmRleCBkOWMwMTk5Li41M2UyOGE5IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9hY3Bp L3ZpZGVvX2RldGVjdC5jDQorKysgYi9kcml2ZXJzL2FjcGkvdmlkZW9fZGV0ZWN0LmMNCkBAIC0x NjQsNiArMTY0LDE0IEBAIHN0YXRpYyBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCB2aWRlb19kZXRlY3Rf ZG1pX3RhYmxlW10gPSB7DQogCQlETUlfTUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIlVMMzBWVCIp LA0KIAkJfSwNCiAJfSwNCisJew0KKwkuY2FsbGJhY2sgPSB2aWRlb19kZXRlY3RfZm9yY2VfdmVu ZG9yLA0KKwkuaWRlbnQgPSAiQXN1cyBVTDMwQSIsDQorCS5tYXRjaGVzID0gew0KKwkJRE1JX01B VENIKERNSV9TWVNfVkVORE9SLCAiQVNVU1RlSyBDb21wdXRlciBJbmMuIiksDQorCQlETUlfTUFU Q0goRE1JX1BST0RVQ1RfTkFNRSwgIlVMMzBBIiksDQorCQl9LA0KKwl9LA0KIAl7IH0sDQogfTsN CiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL2JyZC5jIGIvZHJpdmVycy9ibG9jay9icmQu Yw0KaW5kZXggZDIyMTE5ZC4uOTY4YTBkNCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvYmxvY2svYnJk LmMNCisrKyBiL2RyaXZlcnMvYmxvY2svYnJkLmMNCkBAIC0xMTcsMTMgKzExNywxMyBAQCBzdGF0 aWMgc3RydWN0IHBhZ2UgKmJyZF9pbnNlcnRfcGFnZShzdHJ1Y3QgYnJkX2RldmljZSAqYnJkLCBz ZWN0b3JfdCBzZWN0b3IpDQogDQogCXNwaW5fbG9jaygmYnJkLT5icmRfbG9jayk7DQogCWlkeCA9 IHNlY3RvciA+PiBQQUdFX1NFQ1RPUlNfU0hJRlQ7DQorCXBhZ2UtPmluZGV4ID0gaWR4Ow0KIAlp ZiAocmFkaXhfdHJlZV9pbnNlcnQoJmJyZC0+YnJkX3BhZ2VzLCBpZHgsIHBhZ2UpKSB7DQogCQlf X2ZyZWVfcGFnZShwYWdlKTsNCiAJCXBhZ2UgPSByYWRpeF90cmVlX2xvb2t1cCgmYnJkLT5icmRf cGFnZXMsIGlkeCk7DQogCQlCVUdfT04oIXBhZ2UpOw0KIAkJQlVHX09OKHBhZ2UtPmluZGV4ICE9 IGlkeCk7DQotCX0gZWxzZQ0KLQkJcGFnZS0+aW5kZXggPSBpZHg7DQorCX0NCiAJc3Bpbl91bmxv Y2soJmJyZC0+YnJkX2xvY2spOw0KIA0KIAlyYWRpeF90cmVlX3ByZWxvYWRfZW5kKCk7DQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfcmVjZWl2ZXIuYyBiL2RyaXZlcnMvYmxv Y2svZHJiZC9kcmJkX3JlY2VpdmVyLmMNCmluZGV4IDQzYmVhY2EuLjEzY2JkZDMgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9yZWNlaXZlci5jDQorKysgYi9kcml2ZXJzL2Js b2NrL2RyYmQvZHJiZF9yZWNlaXZlci5jDQpAQCAtMjIyNSw3ICsyMjI1LDYgQEAgc3RhdGljIGlu dCBkcmJkX2FzYl9yZWNvdmVyXzFwKHN0cnVjdCBkcmJkX2NvbmYgKm1kZXYpIF9fbXVzdF9ob2xk KGxvY2FsKQ0KIAkJaWYgKGhnID09IC0xICYmIG1kZXYtPnN0YXRlLnJvbGUgPT0gUl9QUklNQVJZ KSB7DQogCQkJZW51bSBkcmJkX3N0YXRlX3J2IHJ2MjsNCiANCi0JCQlkcmJkX3NldF9yb2xlKG1k ZXYsIFJfU0VDT05EQVJZLCAwKTsNCiAJCQkgLyogZHJiZF9jaGFuZ2Vfc3RhdGUoKSBkb2VzIG5v dCBzbGVlcCB3aGlsZSBpbiBTU19JTl9UUkFOU0lFTlRfU1RBVEUsDQogCQkJICAqIHdlIG1pZ2h0 IGJlIGhlcmUgaW4gQ19XRl9SRVBPUlRfUEFSQU1TIHdoaWNoIGlzIHRyYW5zaWVudC4NCiAJCQkg ICogd2UgZG8gbm90IG5lZWQgdG8gd2FpdCBmb3IgdGhlIGFmdGVyIHN0YXRlIGNoYW5nZSB3b3Jr IGVpdGhlci4gKi8NCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX2J0X3NtLmMg Yi9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX2J0X3NtLmMNCmluZGV4IDNlZDIwZTguLjkyY2UzMDIg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX2J0X3NtLmMNCisrKyBiL2RyaXZl cnMvY2hhci9pcG1pL2lwbWlfYnRfc20uYw0KQEAgLTk1LDkgKzk1LDkgQEAgc3RydWN0IHNpX3Nt X2RhdGEgew0KIAllbnVtIGJ0X3N0YXRlcwlzdGF0ZTsNCiAJdW5zaWduZWQgY2hhcglzZXE7CQkv KiBCVCBzZXF1ZW5jZSBudW1iZXIgKi8NCiAJc3RydWN0IHNpX3NtX2lvCSppbzsNCi0JdW5zaWdu ZWQgY2hhcgl3cml0ZV9kYXRhW0lQTUlfTUFYX01TR19MRU5HVEhdOw0KKwl1bnNpZ25lZCBjaGFy CXdyaXRlX2RhdGFbSVBNSV9NQVhfTVNHX0xFTkdUSCArIDJdOyAvKiArMiBmb3IgbWVtY3B5ICov DQogCWludAkJd3JpdGVfY291bnQ7DQotCXVuc2lnbmVkIGNoYXIJcmVhZF9kYXRhW0lQTUlfTUFY X01TR19MRU5HVEhdOw0KKwl1bnNpZ25lZCBjaGFyCXJlYWRfZGF0YVtJUE1JX01BWF9NU0dfTEVO R1RIICsgMl07IC8qICsyIGZvciBtZW1jcHkgKi8NCiAJaW50CQlyZWFkX2NvdW50Ow0KIAlpbnQJ CXRydW5jYXRlZDsNCiAJbG9uZwkJdGltZW91dDsJLyogbWljcm9zZWNvbmRzIGNvdW50ZG93biAq Lw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfZGV2aW50Zi5jIGIvZHJpdmVy cy9jaGFyL2lwbWkvaXBtaV9kZXZpbnRmLmMNCmluZGV4IDJhYTM5NzcuLjhkZGUxZjUgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX2RldmludGYuYw0KKysrIGIvZHJpdmVycy9j aGFyL2lwbWkvaXBtaV9kZXZpbnRmLmMNCkBAIC04MzgsMTMgKzgzOCwyNSBAQCBzdGF0aWMgbG9u ZyBjb21wYXRfaXBtaV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZXAsIHVuc2lnbmVkIGludCBjbWQs DQogCQlyZXR1cm4gaXBtaV9pb2N0bChmaWxlcCwgY21kLCBhcmcpOw0KIAl9DQogfQ0KKw0KK3N0 YXRpYyBsb25nIHVubG9ja2VkX2NvbXBhdF9pcG1pX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlcCwg dW5zaWduZWQgaW50IGNtZCwNCisJCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgYXJnKQ0KK3sNCisJ aW50IHJldDsNCisNCisJbXV0ZXhfbG9jaygmaXBtaV9tdXRleCk7DQorCXJldCA9IGNvbXBhdF9p cG1pX2lvY3RsKGZpbGVwLCBjbWQsIGFyZyk7DQorCW11dGV4X3VubG9jaygmaXBtaV9tdXRleCk7 DQorDQorCXJldHVybiByZXQ7DQorfQ0KICNlbmRpZg0KIA0KIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZmlsZV9vcGVyYXRpb25zIGlwbWlfZm9wcyA9IHsNCiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLA0K IAkudW5sb2NrZWRfaW9jdGwJPSBpcG1pX3VubG9ja2VkX2lvY3RsLA0KICNpZmRlZiBDT05GSUdf Q09NUEFUDQotCS5jb21wYXRfaW9jdGwgICA9IGNvbXBhdF9pcG1pX2lvY3RsLA0KKwkuY29tcGF0 X2lvY3RsICAgPSB1bmxvY2tlZF9jb21wYXRfaXBtaV9pb2N0bCwNCiAjZW5kaWYNCiAJLm9wZW4J CT0gaXBtaV9vcGVuLA0KIAkucmVsZWFzZQk9IGlwbWlfcmVsZWFzZSwNCmRpZmYgLS1naXQgYS9k cml2ZXJzL2NoYXIvcmFuZG9tLmMgYi9kcml2ZXJzL2NoYXIvcmFuZG9tLmMNCmluZGV4IDhhZTky MzUuLmI2NTE3MzMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2NoYXIvcmFuZG9tLmMNCisrKyBiL2Ry aXZlcnMvY2hhci9yYW5kb20uYw0KQEAgLTg4OSwxNiArODg5LDI0IEBAIHN0YXRpYyBzaXplX3Qg YWNjb3VudChzdHJ1Y3QgZW50cm9weV9zdG9yZSAqciwgc2l6ZV90IG5ieXRlcywgaW50IG1pbiwN CiAJaWYgKHItPmVudHJvcHlfY291bnQgLyA4IDwgbWluICsgcmVzZXJ2ZWQpIHsNCiAJCW5ieXRl cyA9IDA7DQogCX0gZWxzZSB7DQorCQlpbnQgZW50cm9weV9jb3VudCwgb3JpZzsNCityZXRyeToN CisJCWVudHJvcHlfY291bnQgPSBvcmlnID0gQUNDRVNTX09OQ0Uoci0+ZW50cm9weV9jb3VudCk7 DQogCQkvKiBJZiBsaW1pdGVkLCBuZXZlciBwdWxsIG1vcmUgdGhhbiBhdmFpbGFibGUgKi8NCi0J CWlmIChyLT5saW1pdCAmJiBuYnl0ZXMgKyByZXNlcnZlZCA+PSByLT5lbnRyb3B5X2NvdW50IC8g OCkNCi0JCQluYnl0ZXMgPSByLT5lbnRyb3B5X2NvdW50LzggLSByZXNlcnZlZDsNCi0NCi0JCWlm IChyLT5lbnRyb3B5X2NvdW50IC8gOCA+PSBuYnl0ZXMgKyByZXNlcnZlZCkNCi0JCQlyLT5lbnRy b3B5X2NvdW50IC09IG5ieXRlcyo4Ow0KLQkJZWxzZQ0KLQkJCXItPmVudHJvcHlfY291bnQgPSBy ZXNlcnZlZDsNCisJCWlmIChyLT5saW1pdCAmJiBuYnl0ZXMgKyByZXNlcnZlZCA+PSBlbnRyb3B5 X2NvdW50IC8gOCkNCisJCQluYnl0ZXMgPSBlbnRyb3B5X2NvdW50LzggLSByZXNlcnZlZDsNCisN CisJCWlmIChlbnRyb3B5X2NvdW50IC8gOCA+PSBuYnl0ZXMgKyByZXNlcnZlZCkgew0KKwkJCWVu dHJvcHlfY291bnQgLT0gbmJ5dGVzKjg7DQorCQkJaWYgKGNtcHhjaGcoJnItPmVudHJvcHlfY291 bnQsIG9yaWcsIGVudHJvcHlfY291bnQpICE9IG9yaWcpDQorCQkJCWdvdG8gcmV0cnk7DQorCQl9 IGVsc2Ugew0KKwkJCWVudHJvcHlfY291bnQgPSByZXNlcnZlZDsNCisJCQlpZiAoY21weGNoZygm ci0+ZW50cm9weV9jb3VudCwgb3JpZywgZW50cm9weV9jb3VudCkgIT0gb3JpZykNCisJCQkJZ290 byByZXRyeTsNCisJCX0NCiANCi0JCWlmIChyLT5lbnRyb3B5X2NvdW50IDwgcmFuZG9tX3dyaXRl X3dha2V1cF90aHJlc2gpIHsNCisJCWlmIChlbnRyb3B5X2NvdW50IDwgcmFuZG9tX3dyaXRlX3dh a2V1cF90aHJlc2gpIHsNCiAJCQl3YWtlX3VwX2ludGVycnVwdGlibGUoJnJhbmRvbV93cml0ZV93 YWl0KTsNCiAJCQlraWxsX2Zhc3luYygmZmFzeW5jLCBTSUdJTywgUE9MTF9PVVQpOw0KIAkJfQ0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hL3BjaF9kbWEuYyBiL2RyaXZlcnMvZG1hL3BjaF9kbWEu Yw0KaW5kZXggNjI5YzQzMC4uNDkxMzhlNyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZG1hL3BjaF9k bWEuYw0KKysrIGIvZHJpdmVycy9kbWEvcGNoX2RtYS5jDQpAQCAtNDg5LDcgKzQ4OSw3IEBAIHN0 YXRpYyBzdHJ1Y3QgcGNoX2RtYV9kZXNjICpwZGNfZGVzY19nZXQoc3RydWN0IHBjaF9kbWFfY2hh biAqcGRfY2hhbikNCiAJZGV2X2RiZyhjaGFuMmRldigmcGRfY2hhbi0+Y2hhbiksICJzY2FubmVk ICVkIGRlc2NyaXB0b3JzXG4iLCBpKTsNCiANCiAJaWYgKCFyZXQpIHsNCi0JCXJldCA9IHBkY19h bGxvY19kZXNjKCZwZF9jaGFuLT5jaGFuLCBHRlBfTk9JTyk7DQorCQlyZXQgPSBwZGNfYWxsb2Nf ZGVzYygmcGRfY2hhbi0+Y2hhbiwgR0ZQX0FUT01JQyk7DQogCQlpZiAocmV0KSB7DQogCQkJc3Bp bl9sb2NrKCZwZF9jaGFuLT5sb2NrKTsNCiAJCQlwZF9jaGFuLT5kZXNjc19hbGxvY2F0ZWQrKzsN CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Zpcm13YXJlL2VmaXZhcnMuYyBiL2RyaXZlcnMvZmlybXdh cmUvZWZpdmFycy5jDQppbmRleCBiMTVjMGFhLi4yYTY0ZTY5IDEwMDY0NA0KLS0tIGEvZHJpdmVy cy9maXJtd2FyZS9lZml2YXJzLmMNCisrKyBiL2RyaXZlcnMvZmlybXdhcmUvZWZpdmFycy5jDQpA QCAtNDI1LDI0ICs0MjUsMTIgQEAgc3RhdGljIGVmaV9zdGF0dXNfdA0KIGNoZWNrX3Zhcl9zaXpl X2xvY2tlZChzdHJ1Y3QgZWZpdmFycyAqZWZpdmFycywgdTMyIGF0dHJpYnV0ZXMsDQogCQkJdW5z aWduZWQgbG9uZyBzaXplKQ0KIHsNCi0JdTY0IHN0b3JhZ2Vfc2l6ZSwgcmVtYWluaW5nX3NpemUs IG1heF9zaXplOw0KLQllZmlfc3RhdHVzX3Qgc3RhdHVzOw0KIAljb25zdCBzdHJ1Y3QgZWZpdmFy X29wZXJhdGlvbnMgKmZvcHMgPSBlZml2YXJzLT5vcHM7DQogDQotCWlmICghZWZpdmFycy0+b3Bz LT5xdWVyeV92YXJpYWJsZV9pbmZvKQ0KKwlpZiAoIWVmaXZhcnMtPm9wcy0+cXVlcnlfdmFyaWFi bGVfc3RvcmUpDQogCQlyZXR1cm4gRUZJX1VOU1VQUE9SVEVEOw0KIA0KLQlzdGF0dXMgPSBmb3Bz LT5xdWVyeV92YXJpYWJsZV9pbmZvKGF0dHJpYnV0ZXMsICZzdG9yYWdlX3NpemUsDQotCQkJCQkg ICAmcmVtYWluaW5nX3NpemUsICZtYXhfc2l6ZSk7DQotDQotCWlmIChzdGF0dXMgIT0gRUZJX1NV Q0NFU1MpDQotCQlyZXR1cm4gc3RhdHVzOw0KLQ0KLQlpZiAoIXN0b3JhZ2Vfc2l6ZSB8fCBzaXpl ID4gcmVtYWluaW5nX3NpemUgfHwgc2l6ZSA+IG1heF9zaXplIHx8DQotCSAgICAocmVtYWluaW5n X3NpemUgLSBzaXplKSA8IChzdG9yYWdlX3NpemUgLyAyKSkNCi0JCXJldHVybiBFRklfT1VUX09G X1JFU09VUkNFUzsNCi0NCi0JcmV0dXJuIHN0YXR1czsNCisJcmV0dXJuIGZvcHMtPnF1ZXJ5X3Zh cmlhYmxlX3N0b3JlKGF0dHJpYnV0ZXMsIHNpemUpOw0KIH0NCiANCiBzdGF0aWMgc3NpemVfdA0K QEAgLTE0NTYsNyArMTQ0NCw3IEBAIGVmaXZhcnNfaW5pdCh2b2lkKQ0KIAlvcHMuZ2V0X3Zhcmlh YmxlID0gZWZpLmdldF92YXJpYWJsZTsNCiAJb3BzLnNldF92YXJpYWJsZSA9IGVmaS5zZXRfdmFy aWFibGU7DQogCW9wcy5nZXRfbmV4dF92YXJpYWJsZSA9IGVmaS5nZXRfbmV4dF92YXJpYWJsZTsN Ci0Jb3BzLnF1ZXJ5X3ZhcmlhYmxlX2luZm8gPSBlZmkucXVlcnlfdmFyaWFibGVfaW5mbzsNCisJ b3BzLnF1ZXJ5X3ZhcmlhYmxlX3N0b3JlID0gZWZpX3F1ZXJ5X3ZhcmlhYmxlX3N0b3JlOw0KIAll cnJvciA9IHJlZ2lzdGVyX2VmaXZhcnMoJl9fZWZpdmFycywgJm9wcywgZWZpX2tvYmopOw0KIAlp ZiAoZXJyb3IpDQogCQlnb3RvIGVycl9wdXQ7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMNCmluZGV4 IGM3N2ZjNjcuLmNhNjczMzggMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RtYS5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jDQpAQCAtMTAwNyw1 MCArMTAwNyw1NiBAQCBpbnRlbF90ZWFyZG93bl9tY2hiYXIoc3RydWN0IGRybV9kZXZpY2UgKmRl dikNCiAJCXJlbGVhc2VfcmVzb3VyY2UoJmRldl9wcml2LT5tY2hfcmVzKTsNCiB9DQogDQotc3Rh dGljIHVuc2lnbmVkIGxvbmcgaTkxNV9zdG9sZW5fdG9fcGh5c2ljYWwoc3RydWN0IGRybV9kZXZp Y2UgKmRldikNCisjZGVmaW5lIFBURV9BRERSRVNTX01BU0sJCTB4ZmZmZmYwMDANCisjZGVmaW5l IFBURV9BRERSRVNTX01BU0tfSElHSAkJMHgwMDAwMDBmMCAvKiBpOTE1KyAqLw0KKyNkZWZpbmUg UFRFX01BUFBJTkdfVFlQRV9VTkNBQ0hFRAkoMCA8PCAxKQ0KKyNkZWZpbmUgUFRFX01BUFBJTkdf VFlQRV9EQ0FDSEUJCSgxIDw8IDEpIC8qIGk4MzAgb25seSAqLw0KKyNkZWZpbmUgUFRFX01BUFBJ TkdfVFlQRV9DQUNIRUQJCSgzIDw8IDEpDQorI2RlZmluZSBQVEVfTUFQUElOR19UWVBFX01BU0sJ CSgzIDw8IDEpDQorI2RlZmluZSBQVEVfVkFMSUQJCQkoMSA8PCAwKQ0KKw0KKy8qKg0KKyAqIGk5 MTVfc3RvbGVuX3RvX3BoeXMgLSB0YWtlIGFuIG9mZnNldCBpbnRvIHN0b2xlbiBtZW1vcnkgYW5k IHR1cm4gaXQgaW50bw0KKyAqICAgICAgICAgICAgICAgICAgICAgICBhIHBoeXNpY2FsIG9uZQ0K KyAqIEBkZXY6IGRybSBkZXZpY2UNCisgKiBAb2Zmc2V0OiBhZGRyZXNzIHRvIHRyYW5zbGF0ZQ0K KyAqDQorICogU29tZSBjaGlwIGZ1bmN0aW9ucyByZXF1aXJlIGFsbG9jYXRpb25zIGZyb20gc3Rv bGVuIHNwYWNlIGFuZCBuZWVkIHRoZQ0KKyAqIHBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlIG1lbW9y eSBpbiBxdWVzdGlvbi4NCisgKi8NCitzdGF0aWMgdW5zaWduZWQgbG9uZyBpOTE1X3N0b2xlbl90 b19waHlzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBvZmZzZXQpDQogew0KIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOw0KIAlzdHJ1Y3Qg cGNpX2RldiAqcGRldiA9IGRldl9wcml2LT5icmlkZ2VfZGV2Ow0KIAl1MzIgYmFzZTsNCiANCisj aWYgMA0KIAkvKiBPbiB0aGUgbWFjaGluZXMgSSBoYXZlIHRlc3RlZCB0aGUgR3JhcGhpY3MgQmFz ZSBvZiBTdG9sZW4gTWVtb3J5DQotCSAqIGlzIHVucmVsaWFibGUsIHNvIG9uIHRob3NlIGNvbXB1 dGUgdGhlIGJhc2UgYnkgc3VidHJhY3RpbmcgdGhlDQotCSAqIHN0b2xlbiBtZW1vcnkgZnJvbSB0 aGUgVG9wIG9mIExvdyBVc2FibGUgRFJBTSB3aGljaCBpcyB3aGVyZSB0aGUNCi0JICogQklPUyBw bGFjZXMgdGhlIGdyYXBoaWNzIHN0b2xlbiBtZW1vcnkuDQotCSAqDQotCSAqIE9uIGdlbjIsIHRo ZSBsYXlvdXQgaXMgc2xpZ2h0bHkgZGlmZmVyZW50IHdpdGggdGhlIEdyYXBoaWNzIFNlZ21lbnQN Ci0JICogaW1tZWRpYXRlbHkgZm9sbG93aW5nIFRvcCBvZiBNZW1vcnkgKG9yIFRvcCBvZiBVc2Fi bGUgRFJBTSkuIE5vdGUNCi0JICogaXQgYXBwZWFycyB0aGF0IFRPVUQgaXMgb25seSByZXBvcnRl ZCBieSA4NjVnLCBzbyB3ZSBqdXN0IHVzZSB0aGUNCi0JICogdG9wIG9mIG1lbW9yeSBhcyBkZXRl cm1pbmVkIGJ5IHRoZSBlODIwIHByb2JlLg0KLQkgKg0KLQkgKiBYWFggZ2VuMiByZXF1aXJlcyBh biB1bmF2YWlsYWJsZSBzeW1ib2wgYW5kIDk0NWdtIGZhaWxzIHdpdGgNCi0JICogaXRzIHZhbHVl IG9mIFRPTFVELg0KKwkgKiBpcyB1bnJlbGlhYmxlLCBzbyBjb21wdXRlIHRoZSBiYXNlIGJ5IHN1 YnRyYWN0aW5nIHRoZSBzdG9sZW4gbWVtb3J5DQorCSAqIGZyb20gdGhlIFRvcCBvZiBMb3cgVXNh YmxlIERSQU0gd2hpY2ggaXMgd2hlcmUgdGhlIEJJT1MgcGxhY2VzDQorCSAqIHRoZSBncmFwaGlj cyBzdG9sZW4gbWVtb3J5Lg0KIAkgKi8NCi0JYmFzZSA9IDA7DQotCWlmIChJTlRFTF9JTkZPKGRl diktPmdlbiA+PSA2KSB7DQotCQkvKiBSZWFkIEJhc2UgRGF0YSBvZiBTdG9sZW4gTWVtb3J5IFJl Z2lzdGVyIChCRFNNKSBkaXJlY3RseS4NCi0JCSAqIE5vdGUgdGhhdCB0aGVyZSBpcyBhbHNvIGEg TUNIQkFSIG1pcm9yIGF0IDB4MTA4MGMwIG9yDQotCQkgKiB3ZSBjb3VsZCB1c2UgZGV2aWNlIDI6 MHg1YyBpbnN0ZWFkLg0KLQkJKi8NCi0JCXBjaV9yZWFkX2NvbmZpZ19kd29yZChwZGV2LCAweEIw LCAmYmFzZSk7DQotCQliYXNlICY9IH40MDk1OyAvKiBsb3dlciBiaXRzIHVzZWQgZm9yIGxvY2tp bmcgcmVnaXN0ZXIgKi8NCi0JfSBlbHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+IDMgfHwg SVNfRzMzKGRldikpIHsNCi0JCS8qIFJlYWQgR3JhcGhpY3MgQmFzZSBvZiBTdG9sZW4gTWVtb3J5 IGRpcmVjdGx5ICovDQorCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+IDMgfHwgSVNfRzMzKGRl dikpIHsNCisJCS8qIHRvcCAzMmJpdHMgYXJlIHJlc2VydmVkID0gMCAqLw0KIAkJcGNpX3JlYWRf Y29uZmlnX2R3b3JkKHBkZXYsIDB4QTQsICZiYXNlKTsNCi0jaWYgMA0KLQl9IGVsc2UgaWYgKElT X0dFTjMoZGV2KSkgew0KKwl9IGVsc2Ugew0KKwkJLyogWFhYIHByZXN1bWUgOHh4IGlzIHRoZSBz YW1lIGFzIGk5MTUgKi8NCisJCXBjaV9idXNfcmVhZF9jb25maWdfZHdvcmQocGRldi0+YnVzLCAy LCAweDVDLCAmYmFzZSk7DQorCX0NCisjZWxzZQ0KKwlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4g PiAzIHx8IElTX0czMyhkZXYpKSB7DQorCQl1MTYgdmFsOw0KKwkJcGNpX3JlYWRfY29uZmlnX3dv cmQocGRldiwgMHhiMCwgJnZhbCk7DQorCQliYXNlID0gdmFsID4+IDQgPDwgMjA7DQorCX0gZWxz ZSB7DQogCQl1OCB2YWw7DQotCQkvKiBTdG9sZW4gaXMgaW1tZWRpYXRlbHkgYmVsb3cgVG9wIG9m IExvdyBVc2FibGUgRFJBTSAqLw0KIAkJcGNpX3JlYWRfY29uZmlnX2J5dGUocGRldiwgMHg5Yywg JnZhbCk7DQogCQliYXNlID0gdmFsID4+IDMgPDwgMjc7DQotCQliYXNlIC09IGRldl9wcml2LT5t bS5ndHQtPnN0b2xlbl9zaXplOw0KLQl9IGVsc2Ugew0KLQkJLyogU3RvbGVuIGlzIGltbWVkaWF0 ZWx5IGFib3ZlIFRvcCBvZiBNZW1vcnkgKi8NCi0JCWJhc2UgPSBtYXhfbG93X3Bmbl9tYXBwZWQg PDwgUEFHRV9TSElGVDsNCi0jZW5kaWYNCiAJfQ0KKwliYXNlIC09IGRldl9wcml2LT5tbS5ndHQt PnN0b2xlbl9zaXplOw0KKyNlbmRpZg0KIA0KLQlyZXR1cm4gYmFzZTsNCisJcmV0dXJuIGJhc2Ug KyBvZmZzZXQ7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIGk5MTVfd2Fybl9zdG9sZW4oc3RydWN0IGRy bV9kZXZpY2UgKmRldikNCkBAIC0xMDc1LDcgKzEwODEsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X3Nl dHVwX2NvbXByZXNzaW9uKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBzaXplKQ0KIAlpZiAo IWNvbXByZXNzZWRfZmIpDQogCQlnb3RvIGVycjsNCiANCi0JY2ZiX2Jhc2UgPSBkZXZfcHJpdi0+ bW0uc3RvbGVuX2Jhc2UgKyBjb21wcmVzc2VkX2ZiLT5zdGFydDsNCisJY2ZiX2Jhc2UgPSBpOTE1 X3N0b2xlbl90b19waHlzKGRldiwgY29tcHJlc3NlZF9mYi0+c3RhcnQpOw0KIAlpZiAoIWNmYl9i YXNlKQ0KIAkJZ290byBlcnJfZmI7DQogDQpAQCAtMTA4OCw3ICsxMDk0LDcgQEAgc3RhdGljIHZv aWQgaTkxNV9zZXR1cF9jb21wcmVzc2lvbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgc2l6 ZSkNCiAJCWlmICghY29tcHJlc3NlZF9sbGIpDQogCQkJZ290byBlcnJfZmI7DQogDQotCQlsbF9i YXNlID0gZGV2X3ByaXYtPm1tLnN0b2xlbl9iYXNlICsgY29tcHJlc3NlZF9sbGItPnN0YXJ0Ow0K KwkJbGxfYmFzZSA9IGk5MTVfc3RvbGVuX3RvX3BoeXMoZGV2LCBjb21wcmVzc2VkX2xsYi0+c3Rh cnQpOw0KIAkJaWYgKCFsbF9iYXNlKQ0KIAkJCWdvdG8gZXJyX2xsYjsNCiAJfQ0KQEAgLTExMDcs NyArMTExMyw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfc2V0dXBfY29tcHJlc3Npb24oc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgaW50IHNpemUpDQogCX0NCiANCiAJRFJNX0RFQlVHX0tNUygiRkJDIGJh c2UgMHglMDhseCwgbGwgYmFzZSAweCUwOGx4LCBzaXplICVkTVxuIiwNCi0JCSAgICAgIChsb25n KWNmYl9iYXNlLCAobG9uZylsbF9iYXNlLCBzaXplID4+IDIwKTsNCisJCSAgICAgIGNmYl9iYXNl LCBsbF9iYXNlLCBzaXplID4+IDIwKTsNCiAJcmV0dXJuOw0KIA0KIGVycl9sbGI6DQpAQCAtMTE4 MSwxMyArMTE4Nyw2IEBAIHN0YXRpYyBpbnQgaTkxNV9sb2FkX2dlbV9pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpDQogCWd0dF9zaXplID0gZGV2X3ByaXYtPm1tLmd0dC0+Z3R0X3RvdGFsX2Vu dHJpZXMgPDwgUEFHRV9TSElGVDsNCiAJbWFwcGFibGVfc2l6ZSA9IGRldl9wcml2LT5tbS5ndHQt Pmd0dF9tYXBwYWJsZV9lbnRyaWVzIDw8IFBBR0VfU0hJRlQ7DQogDQotCWRldl9wcml2LT5tbS5z dG9sZW5fYmFzZSA9IGk5MTVfc3RvbGVuX3RvX3BoeXNpY2FsKGRldik7DQotCWlmIChkZXZfcHJp di0+bW0uc3RvbGVuX2Jhc2UgPT0gMCkNCi0JCXJldHVybiAwOw0KLQ0KLQlEUk1fREVCVUdfS01T KCJmb3VuZCAlZCBieXRlcyBvZiBzdG9sZW4gbWVtb3J5IGF0ICUwOGx4XG4iLA0KLQkJICAgICAg ZGV2X3ByaXYtPm1tLmd0dC0+c3RvbGVuX3NpemUsIGRldl9wcml2LT5tbS5zdG9sZW5fYmFzZSk7 DQotDQogCS8qIEJhc2ljIG1lbXJhbmdlIGFsbG9jYXRvciBmb3Igc3RvbGVuIHNwYWNlICovDQog CWRybV9tbV9pbml0KCZkZXZfcHJpdi0+bW0uc3RvbGVuLCAwLCBwcmVhbGxvY19zaXplKTsNCiAN CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaA0KaW5kZXggMjBjZDI5NS4uMTQ0ZDM3YyAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgNCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgNCkBAIC01ODEsNyArNTgxLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSB7DQogCQl1bnNpZ25lZCBsb25nIGd0dF9zdGFydDsNCiAJCXVuc2lnbmVk IGxvbmcgZ3R0X21hcHBhYmxlX2VuZDsNCiAJCXVuc2lnbmVkIGxvbmcgZ3R0X2VuZDsNCi0JCXVu c2lnbmVkIGxvbmcgc3RvbGVuX2Jhc2U7IC8qIGxpbWl0ZWQgdG8gbG93IG1lbW9yeSAoMzItYml0 KSAqLw0KIA0KIAkJc3RydWN0IGlvX21hcHBpbmcgKmd0dF9tYXBwaW5nOw0KIAkJaW50IGd0dF9t dHJyOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjMwMF9jbWRidWYuYyBi L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjMwMF9jbWRidWYuYw0KaW5kZXggMWZlOThiNC4uOWFh MDJiZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjMwMF9jbWRidWYuYw0K KysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMzAwX2NtZGJ1Zi5jDQpAQCAtNzQsNyArNzQs NyBAQCBzdGF0aWMgaW50IHIzMDBfZW1pdF9jbGlwcmVjdHMoZHJtX3JhZGVvbl9wcml2YXRlX3Qg KmRldl9wcml2LA0KIAkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSMzAwX1JFX0NMSVBSRUNUX1RMXzAs IG5yICogMiAtIDEpKTsNCiANCiAJCWZvciAoaSA9IDA7IGkgPCBucjsgKytpKSB7DQotCQkJaWYg KERSTV9DT1BZX0ZST01fVVNFUl9VTkNIRUNLRUQNCisJCQlpZiAoRFJNX0NPUFlfRlJPTV9VU0VS DQogCQkJICAgICgmYm94LCAmY21kYnVmLT5ib3hlc1tuICsgaV0sIHNpemVvZihib3gpKSkgew0K IAkJCQlEUk1fRVJST1IoImNvcHkgY2xpcHJlY3QgZmF1bHRlZFxuIik7DQogCQkJCXJldHVybiAt RUZBVUxUOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vYWJpdHVndXJ1LmMgYi9kcml2ZXJz L2h3bW9uL2FiaXR1Z3VydS5jDQppbmRleCA2NWEzNWNmLi42MWFiNjE1IDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9od21vbi9hYml0dWd1cnUuYw0KKysrIGIvZHJpdmVycy9od21vbi9hYml0dWd1cnUu Yw0KQEAgLTEyODAsMTQgKzEyODAsMTggQEAgc3RhdGljIGludCBfX2RldmluaXQgYWJpdHVndXJ1 X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQogCXByX2luZm8oImZvdW5kIEFi aXQgdUd1cnVcbiIpOw0KIA0KIAkvKiBSZWdpc3RlciBzeXNmcyBob29rcyAqLw0KLQlmb3IgKGkg PSAwOyBpIDwgc3lzZnNfYXR0cl9pOyBpKyspDQotCQlpZiAoZGV2aWNlX2NyZWF0ZV9maWxlKCZw ZGV2LT5kZXYsDQotCQkJCSZkYXRhLT5zeXNmc19hdHRyW2ldLmRldl9hdHRyKSkNCisJZm9yIChp ID0gMDsgaSA8IHN5c2ZzX2F0dHJfaTsgaSsrKSB7DQorCQlyZXMgPSBkZXZpY2VfY3JlYXRlX2Zp bGUoJnBkZXYtPmRldiwNCisJCQkJCSAmZGF0YS0+c3lzZnNfYXR0cltpXS5kZXZfYXR0cik7DQor CQlpZiAocmVzKQ0KIAkJCWdvdG8gYWJpdHVndXJ1X3Byb2JlX2Vycm9yOw0KLQlmb3IgKGkgPSAw OyBpIDwgQVJSQVlfU0laRShhYml0dWd1cnVfc3lzZnNfYXR0cik7IGkrKykNCi0JCWlmIChkZXZp Y2VfY3JlYXRlX2ZpbGUoJnBkZXYtPmRldiwNCi0JCQkJJmFiaXR1Z3VydV9zeXNmc19hdHRyW2ld LmRldl9hdHRyKSkNCisJfQ0KKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShhYml0dWd1cnVf c3lzZnNfYXR0cik7IGkrKykgew0KKwkJcmVzID0gZGV2aWNlX2NyZWF0ZV9maWxlKCZwZGV2LT5k ZXYsDQorCQkJCQkgJmFiaXR1Z3VydV9zeXNmc19hdHRyW2ldLmRldl9hdHRyKTsNCisJCWlmIChy ZXMpDQogCQkJZ290byBhYml0dWd1cnVfcHJvYmVfZXJyb3I7DQorCX0NCiANCiAJZGF0YS0+aHdt b25fZGV2ID0gaHdtb25fZGV2aWNlX3JlZ2lzdGVyKCZwZGV2LT5kZXYpOw0KIAlpZiAoIUlTX0VS UihkYXRhLT5od21vbl9kZXYpKQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMt ZGVzaWdud2FyZS1jb3JlLmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWRlc2lnbndhcmUtY29y ZS5jDQppbmRleCA2MTkzMzQ5Li4zYzI4MTJmIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9pMmMvYnVz c2VzL2kyYy1kZXNpZ253YXJlLWNvcmUuYw0KKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1k ZXNpZ253YXJlLWNvcmUuYw0KQEAgLTM0OSw3ICszNDksOCBAQCBzdGF0aWMgdm9pZCBpMmNfZHdf eGZlcl9pbml0KHN0cnVjdCBkd19pMmNfZGV2ICpkZXYpDQogCS8qIEVuYWJsZSB0aGUgYWRhcHRl ciAqLw0KIAlkd193cml0ZWwoZGV2LCAxLCBEV19JQ19FTkFCTEUpOw0KIA0KLQkvKiBFbmFibGUg aW50ZXJydXB0cyAqLw0KKwkvKiBDbGVhciBhbmQgZW5hYmxlIGludGVycnVwdHMgKi8NCisJaTJj X2R3X2NsZWFyX2ludChkZXYpOw0KIAlkd193cml0ZWwoZGV2LCBEV19JQ19JTlRSX0RFRkFVTFRf TUFTSywgRFdfSUNfSU5UUl9NQVNLKTsNCiB9DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9k bS1idWZpby5jIGIvZHJpdmVycy9tZC9kbS1idWZpby5jDQppbmRleCAwYTY4MDZmLi5hNWRmY2Mw IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tZC9kbS1idWZpby5jDQorKysgYi9kcml2ZXJzL21kL2Rt LWJ1ZmlvLmMNCkBAIC0zMjIsNiArMzIyLDkgQEAgc3RhdGljIHZvaWQgX19jYWNoZV9zaXplX3Jl ZnJlc2godm9pZCkNCiBzdGF0aWMgdm9pZCAqYWxsb2NfYnVmZmVyX2RhdGEoc3RydWN0IGRtX2J1 ZmlvX2NsaWVudCAqYywgZ2ZwX3QgZ2ZwX21hc2ssDQogCQkJICAgICAgIGVudW0gZGF0YV9tb2Rl ICpkYXRhX21vZGUpDQogew0KKwl1bnNpZ25lZCBub2lvX2ZsYWc7DQorCXZvaWQgKnB0cjsNCisN CiAJaWYgKGMtPmJsb2NrX3NpemUgPD0gRE1fQlVGSU9fQkxPQ0tfU0laRV9TTEFCX0xJTUlUKSB7 DQogCQkqZGF0YV9tb2RlID0gREFUQV9NT0RFX1NMQUI7DQogCQlyZXR1cm4ga21lbV9jYWNoZV9h bGxvYyhETV9CVUZJT19DQUNIRShjKSwgZ2ZwX21hc2spOw0KQEAgLTMzNSw3ICszMzgsMjggQEAg c3RhdGljIHZvaWQgKmFsbG9jX2J1ZmZlcl9kYXRhKHN0cnVjdCBkbV9idWZpb19jbGllbnQgKmMs IGdmcF90IGdmcF9tYXNrLA0KIAl9DQogDQogCSpkYXRhX21vZGUgPSBEQVRBX01PREVfVk1BTExP QzsNCi0JcmV0dXJuIF9fdm1hbGxvYyhjLT5ibG9ja19zaXplLCBnZnBfbWFzaywgUEFHRV9LRVJO RUwpOw0KKw0KKwkvKg0KKwkgKiBfX3ZtYWxsb2MgYWxsb2NhdGVzIHRoZSBkYXRhIHBhZ2VzIGFu ZCBhdXhpbGlhcnkgc3RydWN0dXJlcyB3aXRoDQorCSAqIGdmcF9mbGFncyB0aGF0IHdlcmUgc3Bl Y2lmaWVkLCBidXQgcGFnZXRhYmxlcyBhcmUgYWx3YXlzIGFsbG9jYXRlZA0KKwkgKiB3aXRoIEdG UF9LRVJORUwsIG5vIG1hdHRlciB3aGF0IHdhcyBzcGVjaWZpZWQgYXMgZ2ZwX21hc2suDQorCSAq DQorCSAqIENvbnNlcXVlbnRseSwgd2UgbXVzdCBzZXQgcGVyLXByb2Nlc3MgZmxhZyBQRl9NRU1B TExPQ19OT0lPIHNvIHRoYXQNCisJICogYWxsIGFsbG9jYXRpb25zIGRvbmUgYnkgdGhpcyBwcm9j ZXNzIChpbmNsdWRpbmcgcGFnZXRhYmxlcykgYXJlIGRvbmUNCisJICogYXMgaWYgR0ZQX05PSU8g d2FzIHNwZWNpZmllZC4NCisJICovDQorDQorCWlmIChnZnBfbWFzayAmIF9fR0ZQX05PUkVUUlkp IHsNCisJCW5vaW9fZmxhZyA9IGN1cnJlbnQtPmZsYWdzICYgUEZfTUVNQUxMT0M7DQorCQljdXJy ZW50LT5mbGFncyB8PSBQRl9NRU1BTExPQzsNCisJfQ0KKw0KKwlwdHIgPSBfX3ZtYWxsb2MoYy0+ YmxvY2tfc2l6ZSwgZ2ZwX21hc2ssIFBBR0VfS0VSTkVMKTsNCisNCisJaWYgKGdmcF9tYXNrICYg X19HRlBfTk9SRVRSWSkNCisJCWN1cnJlbnQtPmZsYWdzID0gKGN1cnJlbnQtPmZsYWdzICYgflBG X01FTUFMTE9DKSB8IG5vaW9fZmxhZzsNCisNCisJcmV0dXJuIHB0cjsNCiB9DQogDQogLyoNCmRp ZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLXNuYXAuYyBiL2RyaXZlcnMvbWQvZG0tc25hcC5jDQpp bmRleCAzNGVjMmI1Li5iNGFhYTdiIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tZC9kbS1zbmFwLmMN CisrKyBiL2RyaXZlcnMvbWQvZG0tc25hcC5jDQpAQCAtMTExNyw2ICsxMTE3LDcgQEAgc3RhdGlj IGludCBzbmFwc2hvdF9jdHIoc3RydWN0IGRtX3RhcmdldCAqdGksIHVuc2lnbmVkIGludCBhcmdj LCBjaGFyICoqYXJndikNCiAJcy0+cGVuZGluZ19wb29sID0gbWVtcG9vbF9jcmVhdGVfc2xhYl9w b29sKE1JTl9JT1MsIHBlbmRpbmdfY2FjaGUpOw0KIAlpZiAoIXMtPnBlbmRpbmdfcG9vbCkgew0K IAkJdGktPmVycm9yID0gIkNvdWxkIG5vdCBhbGxvY2F0ZSBtZW1wb29sIGZvciBwZW5kaW5nIGV4 Y2VwdGlvbnMiOw0KKwkJciA9IC1FTk9NRU07DQogCQlnb3RvIGJhZF9wZW5kaW5nX3Bvb2w7DQog CX0NCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2Yi9tYW50aXMvbWFudGlzX2R2Yi5j IGIvZHJpdmVycy9tZWRpYS9kdmIvbWFudGlzL21hbnRpc19kdmIuYw0KaW5kZXggZTUxODBlNC4u NWQxNWM2YiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL21hbnRpcy9tYW50aXNfZHZi LmMNCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL21hbnRpcy9tYW50aXNfZHZiLmMNCkBAIC0yNDgs OCArMjQ4LDEwIEBAIGludCBfX2RldmluaXQgbWFudGlzX2R2Yl9pbml0KHN0cnVjdCBtYW50aXNf cGNpICptYW50aXMpDQogZXJyNToNCiAJdGFza2xldF9raWxsKCZtYW50aXMtPnRhc2tsZXQpOw0K IAlkdmJfbmV0X3JlbGVhc2UoJm1hbnRpcy0+ZHZibmV0KTsNCi0JZHZiX3VucmVnaXN0ZXJfZnJv bnRlbmQobWFudGlzLT5mZSk7DQotCWR2Yl9mcm9udGVuZF9kZXRhY2gobWFudGlzLT5mZSk7DQor CWlmIChtYW50aXMtPmZlKSB7DQorCQlkdmJfdW5yZWdpc3Rlcl9mcm9udGVuZChtYW50aXMtPmZl KTsNCisJCWR2Yl9mcm9udGVuZF9kZXRhY2gobWFudGlzLT5mZSk7DQorCX0NCiBlcnI0Og0KIAlt YW50aXMtPmRlbXV4LmRteC5yZW1vdmVfZnJvbnRlbmQoJm1hbnRpcy0+ZGVtdXguZG14LCAmbWFu dGlzLT5mZV9tZW0pOw0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL2FkcDU1MjAuYyBiL2Ry aXZlcnMvbWZkL2FkcDU1MjAuYw0KaW5kZXggOGQ4MTZjYy4uMTA1ZjgyMCAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvbWZkL2FkcDU1MjAuYw0KKysrIGIvZHJpdmVycy9tZmQvYWRwNTUyMC5jDQpAQCAt MzYsNiArMzYsNyBAQCBzdHJ1Y3QgYWRwNTUyMF9jaGlwIHsNCiAJc3RydWN0IGJsb2NraW5nX25v dGlmaWVyX2hlYWQgbm90aWZpZXJfbGlzdDsNCiAJaW50IGlycTsNCiAJdW5zaWduZWQgbG9uZyBp ZDsNCisJdWludDhfdCBtb2RlOw0KIH07DQogDQogc3RhdGljIGludCBfX2FkcDU1MjBfcmVhZChz dHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LA0KQEAgLTMyNiw3ICszMjcsMTAgQEAgc3RhdGljIGlu dCBhZHA1NTIwX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQ0KIAlzdHJ1Y3QgaTJjX2NsaWVu dCAqY2xpZW50ID0gdG9faTJjX2NsaWVudChkZXYpOw0KIAlzdHJ1Y3QgYWRwNTUyMF9jaGlwICpj aGlwID0gZGV2X2dldF9kcnZkYXRhKCZjbGllbnQtPmRldik7DQogDQotCWFkcDU1MjBfY2xyX2Jp dHMoY2hpcC0+ZGV2LCBBRFA1NTIwX01PREVfU1RBVFVTLCBBRFA1NTIwX25TVE5CWSk7DQorCWFk cDU1MjBfcmVhZChjaGlwLT5kZXYsIEFEUDU1MjBfTU9ERV9TVEFUVVMsICZjaGlwLT5tb2RlKTsN CisJLyogQWxsIG90aGVyIGJpdHMgYXJlIFcxQyAqLw0KKwljaGlwLT5tb2RlICY9IEFEUDU1MjBf QkxfRU4gfCBBRFA1NTIwX0RJTV9FTiB8IEFEUDU1MjBfblNUTkJZOw0KKwlhZHA1NTIwX3dyaXRl KGNoaXAtPmRldiwgQURQNTUyMF9NT0RFX1NUQVRVUywgMCk7DQogCXJldHVybiAwOw0KIH0NCiAN CkBAIC0zMzUsNyArMzM5LDcgQEAgc3RhdGljIGludCBhZHA1NTIwX3Jlc3VtZShzdHJ1Y3QgZGV2 aWNlICpkZXYpDQogCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQgPSB0b19pMmNfY2xpZW50KGRl dik7DQogCXN0cnVjdCBhZHA1NTIwX2NoaXAgKmNoaXAgPSBkZXZfZ2V0X2RydmRhdGEoJmNsaWVu dC0+ZGV2KTsNCiANCi0JYWRwNTUyMF9zZXRfYml0cyhjaGlwLT5kZXYsIEFEUDU1MjBfTU9ERV9T VEFUVVMsIEFEUDU1MjBfblNUTkJZKTsNCisJYWRwNTUyMF93cml0ZShjaGlwLT5kZXYsIEFEUDU1 MjBfTU9ERV9TVEFUVVMsIGNoaXAtPm1vZGUpOw0KIAlyZXR1cm4gMDsNCiB9DQogI2VuZGlmDQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvY29yZS9tbWMuYyBiL2RyaXZlcnMvbW1jL2NvcmUvbW1j LmMNCmluZGV4IGZiN2MyN2YuLmMxYWVjMDYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL21tYy9jb3Jl L21tYy5jDQorKysgYi9kcml2ZXJzL21tYy9jb3JlL21tYy5jDQpAQCAtMzYzLDEzICszNjMsMTMg QEAgc3RhdGljIGludCBtbWNfcmVhZF9leHRfY3NkKHN0cnVjdCBtbWNfY2FyZCAqY2FyZCwgdTgg KmV4dF9jc2QpDQogCQlleHRfY3NkW0VYVF9DU0RfU0VDX0ZFQVRVUkVfU1VQUE9SVF07DQogCWNh cmQtPmV4dF9jc2QucmF3X3RyaW1fbXVsdCA9DQogCQlleHRfY3NkW0VYVF9DU0RfVFJJTV9NVUxU XTsNCisJY2FyZC0+ZXh0X2NzZC5yYXdfcGFydGl0aW9uX3N1cHBvcnQgPSBleHRfY3NkW0VYVF9D U0RfUEFSVElUSU9OX1NVUFBPUlRdOw0KIAlpZiAoY2FyZC0+ZXh0X2NzZC5yZXYgPj0gNCkgew0K IAkJLyoNCiAJCSAqIEVuaGFuY2VkIGFyZWEgZmVhdHVyZSBzdXBwb3J0IC0tIGNoZWNrIHdoZXRo ZXIgdGhlIGVNTUMNCiAJCSAqIGNhcmQgaGFzIHRoZSBFbmhhbmNlZCBhcmVhIGVuYWJsZWQuICBJ ZiBzbywgZXhwb3J0IGVuaGFuY2VkDQogCQkgKiBhcmVhIG9mZnNldCBhbmQgc2l6ZSB0byB1c2Vy IGJ5IGFkZGluZyBzeXNmcyBpbnRlcmZhY2UuDQogCQkgKi8NCi0JCWNhcmQtPmV4dF9jc2QucmF3 X3BhcnRpdGlvbl9zdXBwb3J0ID0gZXh0X2NzZFtFWFRfQ1NEX1BBUlRJVElPTl9TVVBQT1JUXTsN CiAJCWlmICgoZXh0X2NzZFtFWFRfQ1NEX1BBUlRJVElPTl9TVVBQT1JUXSAmIDB4MikgJiYNCiAJ CSAgICAoZXh0X2NzZFtFWFRfQ1NEX1BBUlRJVElPTl9BVFRSSUJVVEVdICYgMHgxKSkgew0KIAkJ CWhjX2VyYXNlX2dycF9zeiA9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvaG9zdC9LY29uZmln IGIvZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnDQppbmRleCBjZjQ0NGIwLi45MDIzM2FkIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnDQorKysgYi9kcml2ZXJzL21tYy9ob3N0 L0tjb25maWcNCkBAIC0yOTcsMTYgKzI5Nyw2IEBAIGNvbmZpZyBNTUNfQVRNRUxNQ0kNCiANCiBl bmRjaG9pY2UNCiANCi1jb25maWcgTU1DX0FUTUVMTUNJX0RNQQ0KLQlib29sICJBdG1lbCBNQ0kg RE1BIHN1cHBvcnQiDQotCWRlcGVuZHMgb24gTU1DX0FUTUVMTUNJICYmIChBVlIzMiB8fCBBUkNI X0FUOTFTQU05RzQ1KSAmJiBETUFfRU5HSU5FDQotCWhlbHANCi0JICBTYXkgWSBoZXJlIHRvIGhh dmUgdGhlIEF0bWVsIE1DSSBkcml2ZXIgdXNlIGEgRE1BIGVuZ2luZSB0bw0KLQkgIGRvIGRhdGEg dHJhbnNmZXJzIGFuZCB0aHVzIGluY3JlYXNlIHRoZSB0aHJvdWdocHV0IGFuZA0KLQkgIHJlZHVj ZSB0aGUgQ1BVIHV0aWxpemF0aW9uLg0KLQ0KLQkgIElmIHVuc3VyZSwgc2F5IE4uDQotDQogY29u ZmlnIE1NQ19JTVgNCiAJdHJpc3RhdGUgIk1vdG9yb2xhIGkuTVggTXVsdGltZWRpYSBDYXJkIElu dGVyZmFjZSBzdXBwb3J0Ig0KIAlkZXBlbmRzIG9uIEFSQ0hfTVgxDQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYyBiL2RyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMN CmluZGV4IDA5MzIwMjQuLjgzNzkwZjIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL21tYy9ob3N0L2F0 bWVsLW1jaS5jDQorKysgYi9kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jDQpAQCAtMTYzLDYg KzE2Myw3IEBAIHN0cnVjdCBhdG1lbF9tY2kgew0KIAl2b2lkIF9faW9tZW0JCSpyZWdzOw0KIA0K IAlzdHJ1Y3Qgc2NhdHRlcmxpc3QJKnNnOw0KKwl1bnNpZ25lZCBpbnQJCXNnX2xlbjsNCiAJdW5z aWduZWQgaW50CQlwaW9fb2Zmc2V0Ow0KIA0KIAlzdHJ1Y3QgYXRtZWxfbWNpX3Nsb3QJKmN1cl9z bG90Ow0KQEAgLTc1MSw2ICs3NTIsNyBAQCBzdGF0aWMgdTMyIGF0bWNpX3ByZXBhcmVfZGF0YShz dHJ1Y3QgYXRtZWxfbWNpICpob3N0LCBzdHJ1Y3QgbW1jX2RhdGEgKmRhdGEpDQogCWRhdGEtPmVy cm9yID0gLUVJTlBST0dSRVNTOw0KIA0KIAlob3N0LT5zZyA9IGRhdGEtPnNnOw0KKwlob3N0LT5z Z19sZW4gPSBkYXRhLT5zZ19sZW47DQogCWhvc3QtPmRhdGEgPSBkYXRhOw0KIAlob3N0LT5kYXRh X2NoYW4gPSBOVUxMOw0KIA0KQEAgLTE1NzMsNyArMTU3NSw4IEBAIHN0YXRpYyB2b2lkIGF0bWNp X3JlYWRfZGF0YV9waW8oc3RydWN0IGF0bWVsX21jaSAqaG9zdCkNCiAJCQlpZiAob2Zmc2V0ID09 IHNnLT5sZW5ndGgpIHsNCiAJCQkJZmx1c2hfZGNhY2hlX3BhZ2Uoc2dfcGFnZShzZykpOw0KIAkJ CQlob3N0LT5zZyA9IHNnID0gc2dfbmV4dChzZyk7DQotCQkJCWlmICghc2cpDQorCQkJCWhvc3Qt PnNnX2xlbi0tOw0KKwkJCQlpZiAoIXNnIHx8ICFob3N0LT5zZ19sZW4pDQogCQkJCQlnb3RvIGRv bmU7DQogDQogCQkJCW9mZnNldCA9IDA7DQpAQCAtMTU4Niw3ICsxNTg5LDggQEAgc3RhdGljIHZv aWQgYXRtY2lfcmVhZF9kYXRhX3BpbyhzdHJ1Y3QgYXRtZWxfbWNpICpob3N0KQ0KIA0KIAkJCWZs dXNoX2RjYWNoZV9wYWdlKHNnX3BhZ2Uoc2cpKTsNCiAJCQlob3N0LT5zZyA9IHNnID0gc2dfbmV4 dChzZyk7DQotCQkJaWYgKCFzZykNCisJCQlob3N0LT5zZ19sZW4tLTsNCisJCQlpZiAoIXNnIHx8 ICFob3N0LT5zZ19sZW4pDQogCQkJCWdvdG8gZG9uZTsNCiANCiAJCQlvZmZzZXQgPSA0IC0gcmVt YWluaW5nOw0KQEAgLTE2NDAsNyArMTY0NCw4IEBAIHN0YXRpYyB2b2lkIGF0bWNpX3dyaXRlX2Rh dGFfcGlvKHN0cnVjdCBhdG1lbF9tY2kgKmhvc3QpDQogCQkJbmJ5dGVzICs9IDQ7DQogCQkJaWYg KG9mZnNldCA9PSBzZy0+bGVuZ3RoKSB7DQogCQkJCWhvc3QtPnNnID0gc2cgPSBzZ19uZXh0KHNn KTsNCi0JCQkJaWYgKCFzZykNCisJCQkJaG9zdC0+c2dfbGVuLS07DQorCQkJCWlmICghc2cgfHwg IWhvc3QtPnNnX2xlbikNCiAJCQkJCWdvdG8gZG9uZTsNCiANCiAJCQkJb2Zmc2V0ID0gMDsNCkBA IC0xNjU0LDcgKzE2NTksOCBAQCBzdGF0aWMgdm9pZCBhdG1jaV93cml0ZV9kYXRhX3BpbyhzdHJ1 Y3QgYXRtZWxfbWNpICpob3N0KQ0KIAkJCW5ieXRlcyArPSByZW1haW5pbmc7DQogDQogCQkJaG9z dC0+c2cgPSBzZyA9IHNnX25leHQoc2cpOw0KLQkJCWlmICghc2cpIHsNCisJCQlob3N0LT5zZ19s ZW4tLTsNCisJCQlpZiAoIXNnIHx8ICFob3N0LT5zZ19sZW4pIHsNCiAJCQkJYXRtY2lfd3JpdGVs KGhvc3QsIEFUTUNJX1REUiwgdmFsdWUpOw0KIAkJCQlnb3RvIGRvbmU7DQogCQkJfQ0KQEAgLTIx NjcsMTAgKzIxNzMsOCBAQCBzdGF0aWMgaW50IF9fZXhpdCBhdG1jaV9yZW1vdmUoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldikNCiAJYXRtY2lfcmVhZGwoaG9zdCwgQVRNQ0lfU1IpOw0KIAlj bGtfZGlzYWJsZShob3N0LT5tY2spOw0KIA0KLSNpZmRlZiBDT05GSUdfTU1DX0FUTUVMTUNJX0RN QQ0KIAlpZiAoaG9zdC0+ZG1hLmNoYW4pDQogCQlkbWFfcmVsZWFzZV9jaGFubmVsKGhvc3QtPmRt YS5jaGFuKTsNCi0jZW5kaWYNCiANCiAJZnJlZV9pcnEocGxhdGZvcm1fZ2V0X2lycShwZGV2LCAw KSwgaG9zdCk7DQogCWlvdW5tYXAoaG9zdC0+cmVncyk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvM2NvbS8zYzUwOS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvM2NvbS8zYzUw OS5jDQppbmRleCA5MjA1M2U2Li5jMTVkNmNlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvM2NvbS8zYzUwOS5jDQorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC8zY29tLzNjNTA5 LmMNCkBAIC0zMDksNiArMzA5LDcgQEAgc3RhdGljIGludCBfX2RldmluaXQgZWwzX2lzYV9tYXRj aChzdHJ1Y3QgZGV2aWNlICpwZGV2LA0KIAlpZiAoIWRldikNCiAJCXJldHVybiAtRU5PTUVNOw0K IA0KKwlTRVRfTkVUREVWX0RFVihkZXYsIHBkZXYpOw0KIAluZXRkZXZfYm9vdF9zZXR1cF9jaGVj ayhkZXYpOw0KIA0KIAlpZiAoIXJlcXVlc3RfcmVnaW9uKGlvYWRkciwgRUwzX0lPX0VYVEVOVCwg IjNjNTA5LWlzYSIpKSB7DQpAQCAtNzA0LDYgKzcwNSw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGVs M19laXNhX3Byb2JlIChzdHJ1Y3QgZGV2aWNlICpkZXZpY2UpDQogCQlyZXR1cm4gLUVOT01FTTsN CiAJfQ0KIA0KKwlTRVRfTkVUREVWX0RFVihkZXYsIGRldmljZSk7DQogCW5ldGRldl9ib290X3Nl dHVwX2NoZWNrKGRldik7DQogDQogCWVsM19kZXZfZmlsbChkZXYsIHBoeXNfYWRkciwgaW9hZGRy LCBpcnEsIGlmX3BvcnQsIEVMM19FSVNBKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC8zY29tLzNjNTl4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC8zY29tLzNjNTl4LmMNCmlu ZGV4IGUwYzU1MjkuLmVmYzlkZWUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC8z Y29tLzNjNTl4LmMNCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0LzNjb20vM2M1OXguYw0KQEAg LTYzMiw3ICs2MzIsNiBAQCBzdHJ1Y3Qgdm9ydGV4X3ByaXZhdGUgew0KIAkJcG1fc3RhdGVfdmFs aWQ6MSwJCQkJLyogcGNpX2Rldi0+c2F2ZWRfY29uZmlnX3NwYWNlIGhhcyBzYW5lIGNvbnRlbnRz ICovDQogCQlvcGVuOjEsDQogCQltZWRpYWxvY2s6MSwNCi0JCW11c3RfZnJlZV9yZWdpb246MSwJ CQkJLyogRmxhZzogaWYgemVybywgQ2FyZGJ1cyBvd25zIHRoZSBJL08gcmVnaW9uICovDQogCQls YXJnZV9mcmFtZXM6MSwJCQkvKiBhY2NlcHQgbGFyZ2UgZnJhbWVzICovDQogCQloYW5kbGluZ19p cnE6MTsJCQkvKiBwcml2YXRlIGluX2lycSBpbmRpY2F0b3IgKi8NCiAJLyoge2dldHxzZXR9X3dv bCBvcGVyYXRpb25zIGFyZSBhbHJlYWR5IHNlcmlhbGl6ZWQgYnkgcnRubC4NCkBAIC05NTEsNyAr OTUwLDcgQEAgc3RhdGljIGludCBfX2RldmV4aXQgdm9ydGV4X2Vpc2FfcmVtb3ZlKHN0cnVjdCBk ZXZpY2UgKmRldmljZSkNCiANCiAJdW5yZWdpc3Rlcl9uZXRkZXYoZGV2KTsNCiAJaW93cml0ZTE2 KFRvdGFsUmVzZXR8MHgxNCwgaW9hZGRyICsgRUwzX0NNRCk7DQotCXJlbGVhc2VfcmVnaW9uKGRl di0+YmFzZV9hZGRyLCBWT1JURVhfVE9UQUxfU0laRSk7DQorCXJlbGVhc2VfcmVnaW9uKGVkZXYt PmJhc2VfYWRkciwgVk9SVEVYX1RPVEFMX1NJWkUpOw0KIA0KIAlmcmVlX25ldGRldihkZXYpOw0K IAlyZXR1cm4gMDsNCkBAIC0xMDEyLDYgKzEwMTEsMTIgQEAgc3RhdGljIGludCBfX2RldmluaXQg dm9ydGV4X2luaXRfb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2LA0KIAlpZiAocmMgPCAwKQ0KIAkJ Z290byBvdXQ7DQogDQorCXJjID0gcGNpX3JlcXVlc3RfcmVnaW9ucyhwZGV2LCBEUlZfTkFNRSk7 DQorCWlmIChyYyA8IDApIHsNCisJCXBjaV9kaXNhYmxlX2RldmljZShwZGV2KTsNCisJCWdvdG8g b3V0Ow0KKwl9DQorDQogCXVuaXQgPSB2b3J0ZXhfY2FyZHNfZm91bmQ7DQogDQogCWlmIChnbG9i YWxfdXNlX21taW8gPCAwICYmICh1bml0ID49IE1BWF9VTklUUyB8fCB1c2VfbW1pb1t1bml0XSA8 IDApKSB7DQpAQCAtMTAyNyw2ICsxMDMyLDcgQEAgc3RhdGljIGludCBfX2RldmluaXQgdm9ydGV4 X2luaXRfb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2LA0KIAlpZiAoIWlvYWRkcikgLyogSWYgbWFw cGluZyBmYWlscywgZmFsbC1iYWNrIHRvIEJBUiAwLi4uICovDQogCQlpb2FkZHIgPSBwY2lfaW9t YXAocGRldiwgMCwgMCk7DQogCWlmICghaW9hZGRyKSB7DQorCQlwY2lfcmVsZWFzZV9yZWdpb25z KHBkZXYpOw0KIAkJcGNpX2Rpc2FibGVfZGV2aWNlKHBkZXYpOw0KIAkJcmMgPSAtRU5PTUVNOw0K IAkJZ290byBvdXQ7DQpAQCAtMTAzNiw2ICsxMDQyLDcgQEAgc3RhdGljIGludCBfX2RldmluaXQg dm9ydGV4X2luaXRfb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2LA0KIAkJCSAgIGVudC0+ZHJpdmVy X2RhdGEsIHVuaXQpOw0KIAlpZiAocmMgPCAwKSB7DQogCQlwY2lfaW91bm1hcChwZGV2LCBpb2Fk ZHIpOw0KKwkJcGNpX3JlbGVhc2VfcmVnaW9ucyhwZGV2KTsNCiAJCXBjaV9kaXNhYmxlX2Rldmlj ZShwZGV2KTsNCiAJCWdvdG8gb3V0Ow0KIAl9DQpAQCAtMTE4MCwxMSArMTE4Nyw2IEBAIHN0YXRp YyBpbnQgX19kZXZpbml0IHZvcnRleF9wcm9iZTEoc3RydWN0IGRldmljZSAqZ2VuZGV2LA0KIA0K IAkvKiBQQ0ktb25seSBzdGFydHVwIGxvZ2ljICovDQogCWlmIChwZGV2KSB7DQotCQkvKiBFSVNB IHJlc291cmNlcyBhbHJlYWR5IG1hcmtlZCwgc28gb25seSBQQ0kgbmVlZHMgdG8gZG8gdGhpcyBo ZXJlICovDQotCQkvKiBJZ25vcmUgcmV0dXJuIHZhbHVlLCBiZWNhdXNlIENhcmRidXMgZHJpdmVy cyBhbHJlYWR5IGFsbG9jYXRlIGZvciB1cyAqLw0KLQkJaWYgKHJlcXVlc3RfcmVnaW9uKGRldi0+ YmFzZV9hZGRyLCB2Y2ktPmlvX3NpemUsIHByaW50X25hbWUpICE9IE5VTEwpDQotCQkJdnAtPm11 c3RfZnJlZV9yZWdpb24gPSAxOw0KLQ0KIAkJLyogZW5hYmxlIGJ1cy1tYXN0ZXJpbmcgaWYgbmVj ZXNzYXJ5ICovDQogCQlpZiAodmNpLT5mbGFncyAmIFBDSV9VU0VTX01BU1RFUikNCiAJCQlwY2lf c2V0X21hc3RlcihwZGV2KTsNCkBAIC0xMjIyLDcgKzEyMjQsNyBAQCBzdGF0aWMgaW50IF9fZGV2 aW5pdCB2b3J0ZXhfcHJvYmUxKHN0cnVjdCBkZXZpY2UgKmdlbmRldiwNCiAJCQkJCSAgICZ2cC0+ cnhfcmluZ19kbWEpOw0KIAlyZXR2YWwgPSAtRU5PTUVNOw0KIAlpZiAoIXZwLT5yeF9yaW5nKQ0K LQkJZ290byBmcmVlX3JlZ2lvbjsNCisJCWdvdG8gZnJlZV9kZXZpY2U7DQogDQogCXZwLT50eF9y aW5nID0gKHN0cnVjdCBib29tX3R4X2Rlc2MgKikodnAtPnJ4X3JpbmcgKyBSWF9SSU5HX1NJWkUp Ow0KIAl2cC0+dHhfcmluZ19kbWEgPSB2cC0+cnhfcmluZ19kbWEgKyBzaXplb2Yoc3RydWN0IGJv b21fcnhfZGVzYykgKiBSWF9SSU5HX1NJWkU7DQpAQCAtMTQ4Nyw5ICsxNDg5LDcgQEAgZnJlZV9y aW5nOg0KIAkJCQkJCQkrIHNpemVvZihzdHJ1Y3QgYm9vbV90eF9kZXNjKSAqIFRYX1JJTkdfU0la RSwNCiAJCQkJCQl2cC0+cnhfcmluZywNCiAJCQkJCQl2cC0+cnhfcmluZ19kbWEpOw0KLWZyZWVf cmVnaW9uOg0KLQlpZiAodnAtPm11c3RfZnJlZV9yZWdpb24pDQotCQlyZWxlYXNlX3JlZ2lvbihk ZXYtPmJhc2VfYWRkciwgdmNpLT5pb19zaXplKTsNCitmcmVlX2RldmljZToNCiAJZnJlZV9uZXRk ZXYoZGV2KTsNCiAJcHJfZXJyKFBGWCAidm9ydGV4X3Byb2JlMSBmYWlscy4gIFJldHVybnMgJWRc biIsIHJldHZhbCk7DQogb3V0Og0KQEAgLTMyNTQsOCArMzI1NCw5IEBAIHN0YXRpYyB2b2lkIF9f ZGV2ZXhpdCB2b3J0ZXhfcmVtb3ZlX29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldikNCiAJCQkJCQkJ KyBzaXplb2Yoc3RydWN0IGJvb21fdHhfZGVzYykgKiBUWF9SSU5HX1NJWkUsDQogCQkJCQkJdnAt PnJ4X3JpbmcsDQogCQkJCQkJdnAtPnJ4X3JpbmdfZG1hKTsNCi0JaWYgKHZwLT5tdXN0X2ZyZWVf cmVnaW9uKQ0KLQkJcmVsZWFzZV9yZWdpb24oZGV2LT5iYXNlX2FkZHIsIHZwLT5pb19zaXplKTsN CisNCisJcGNpX3JlbGVhc2VfcmVnaW9ucyhwZGV2KTsNCisNCiAJZnJlZV9uZXRkZXYoZGV2KTsN CiB9DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vdGczLmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuYw0KaW5kZXggYzZiOTkwMy4uZWMx M2E1OSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3RnMy5jDQor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuYw0KQEAgLTI3NTIsNiArMjc1 MiwzMSBAQCBzdGF0aWMgaW50IHRnM181NzAwX2xpbmtfcG9sYXJpdHkoc3RydWN0IHRnMyAqdHAs IHUzMiBzcGVlZCkNCiBzdGF0aWMgaW50IHRnM19zZXR1cF9waHkoc3RydWN0IHRnMyAqLCBpbnQp Ow0KIHN0YXRpYyBpbnQgdGczX2hhbHRfY3B1KHN0cnVjdCB0ZzMgKiwgdTMyKTsNCiANCitzdGF0 aWMgYm9vbCB0ZzNfcGh5X3Bvd2VyX2J1ZyhzdHJ1Y3QgdGczICp0cCkNCit7DQorCXN3aXRjaCAo R0VUX0FTSUNfUkVWKHRwLT5wY2lfY2hpcF9yZXZfaWQpKSB7DQorCWNhc2UgQVNJQ19SRVZfNTcw MDoNCisJY2FzZSBBU0lDX1JFVl81NzA0Og0KKwkJcmV0dXJuIHRydWU7DQorCWNhc2UgQVNJQ19S RVZfNTc4MDoNCisJCWlmICh0cC0+cGh5X2ZsYWdzICYgVEczX1BIWUZMR19NSUlfU0VSREVTKQ0K KwkJCXJldHVybiB0cnVlOw0KKwkJcmV0dXJuIGZhbHNlOw0KKwljYXNlIEFTSUNfUkVWXzU3MTc6 DQorCQlpZiAoIXRwLT5wY2lfZm4pDQorCQkJcmV0dXJuIHRydWU7DQorCQlyZXR1cm4gZmFsc2U7 DQorCWNhc2UgQVNJQ19SRVZfNTcxOToNCisJY2FzZSBBU0lDX1JFVl81NzIwOg0KKwkJaWYgKCh0 cC0+cGh5X2ZsYWdzICYgVEczX1BIWUZMR19QSFlfU0VSREVTKSAmJg0KKwkJICAgICF0cC0+cGNp X2ZuKQ0KKwkJCXJldHVybiB0cnVlOw0KKwkJcmV0dXJuIGZhbHNlOw0KKwl9DQorDQorCXJldHVy biBmYWxzZTsNCit9DQorDQogc3RhdGljIHZvaWQgdGczX3Bvd2VyX2Rvd25fcGh5KHN0cnVjdCB0 ZzMgKnRwLCBib29sIGRvX2xvd19wb3dlcikNCiB7DQogCXUzMiB2YWw7DQpAQCAtMjgwOCwxMiAr MjgzMyw3IEBAIHN0YXRpYyB2b2lkIHRnM19wb3dlcl9kb3duX3BoeShzdHJ1Y3QgdGczICp0cCwg Ym9vbCBkb19sb3dfcG93ZXIpDQogCS8qIFRoZSBQSFkgc2hvdWxkIG5vdCBiZSBwb3dlcmVkIGRv d24gb24gc29tZSBjaGlwcyBiZWNhdXNlDQogCSAqIG9mIGJ1Z3MuDQogCSAqLw0KLQlpZiAoR0VU X0FTSUNfUkVWKHRwLT5wY2lfY2hpcF9yZXZfaWQpID09IEFTSUNfUkVWXzU3MDAgfHwNCi0JICAg IEdFVF9BU0lDX1JFVih0cC0+cGNpX2NoaXBfcmV2X2lkKSA9PSBBU0lDX1JFVl81NzA0IHx8DQot CSAgICAoR0VUX0FTSUNfUkVWKHRwLT5wY2lfY2hpcF9yZXZfaWQpID09IEFTSUNfUkVWXzU3ODAg JiYNCi0JICAgICAodHAtPnBoeV9mbGFncyAmIFRHM19QSFlGTEdfTUlJX1NFUkRFUykpIHx8DQot CSAgICAoR0VUX0FTSUNfUkVWKHRwLT5wY2lfY2hpcF9yZXZfaWQpID09IEFTSUNfUkVWXzU3MTcg JiYNCi0JICAgICAhdHAtPnBjaV9mbikpDQorCWlmICh0ZzNfcGh5X3Bvd2VyX2J1Zyh0cCkpDQog CQlyZXR1cm47DQogDQogCWlmIChHRVRfQ0hJUF9SRVYodHAtPnBjaV9jaGlwX3Jldl9pZCkgPT0g Q0hJUFJFVl81Nzg0X0FYIHx8DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaWJt L2libXZldGguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2libS9pYm12ZXRoLmMNCmluZGV4IDAy MTQ2M2IuLjU3ZTJkYTAgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vaWJt dmV0aC5jDQorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vaWJtdmV0aC5jDQpAQCAtMTMy NSw3ICsxMzI1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBpYm12ZXRo X25ldGRldl9vcHMgPSB7DQogc3RhdGljIGludCBfX2RldmluaXQgaWJtdmV0aF9wcm9iZShzdHJ1 Y3QgdmlvX2RldiAqZGV2LA0KIAkJCQkgICBjb25zdCBzdHJ1Y3QgdmlvX2RldmljZV9pZCAqaWQp DQogew0KLQlpbnQgcmMsIGk7DQorCWludCByYywgaSwgbWFjX2xlbjsNCiAJc3RydWN0IG5ldF9k ZXZpY2UgKm5ldGRldjsNCiAJc3RydWN0IGlibXZldGhfYWRhcHRlciAqYWRhcHRlcjsNCiAJdW5z aWduZWQgY2hhciAqbWFjX2FkZHJfcDsNCkBAIC0xMzM1LDExICsxMzM1LDE5IEBAIHN0YXRpYyBp bnQgX19kZXZpbml0IGlibXZldGhfcHJvYmUoc3RydWN0IHZpb19kZXYgKmRldiwNCiAJCWRldi0+ dW5pdF9hZGRyZXNzKTsNCiANCiAJbWFjX2FkZHJfcCA9ICh1bnNpZ25lZCBjaGFyICopdmlvX2dl dF9hdHRyaWJ1dGUoZGV2LCBWRVRIX01BQ19BRERSLA0KLQkJCQkJCQlOVUxMKTsNCisJCQkJCQkJ Jm1hY19sZW4pOw0KIAlpZiAoIW1hY19hZGRyX3ApIHsNCiAJCWRldl9lcnIoJmRldi0+ZGV2LCAi Q2FuJ3QgZmluZCBWRVRIX01BQ19BRERSIGF0dHJpYnV0ZVxuIik7DQogCQlyZXR1cm4gLUVJTlZB TDsNCiAJfQ0KKwkvKiBXb3JrYXJvdW5kIGZvciBvbGQvYnJva2VuIHBIeXAgKi8NCisJaWYgKG1h Y19sZW4gPT0gOCkNCisJCW1hY19hZGRyX3AgKz0gMjsNCisJZWxzZSBpZiAobWFjX2xlbiAhPSA2 KSB7DQorCQlkZXZfZXJyKCZkZXYtPmRldiwgIlZFVEhfTUFDX0FERFIgYXR0cmlidXRlIHdyb25n IGxlbiAlZFxuIiwNCisJCQltYWNfbGVuKTsNCisJCXJldHVybiAtRUlOVkFMOw0KKwl9DQogDQog CW1jYXN0RmlsdGVyU2l6ZV9wID0gKHVuc2lnbmVkIGludCAqKXZpb19nZXRfYXR0cmlidXRlKGRl diwNCiAJCQkJCQlWRVRIX01DQVNUX0ZJTFRFUl9TSVpFLCBOVUxMKTsNCkBAIC0xMzY0LDE3ICsx MzcyLDYgQEAgc3RhdGljIGludCBfX2RldmluaXQgaWJtdmV0aF9wcm9iZShzdHJ1Y3QgdmlvX2Rl diAqZGV2LA0KIA0KIAluZXRpZl9uYXBpX2FkZChuZXRkZXYsICZhZGFwdGVyLT5uYXBpLCBpYm12 ZXRoX3BvbGwsIDE2KTsNCiANCi0JLyoNCi0JICogU29tZSBvbGRlciBib3hlcyBydW5uaW5nIFBI WVAgbm9uLW5hdGl2ZWx5IGhhdmUgYW4gT0YgdGhhdCByZXR1cm5zDQotCSAqIGEgOC1ieXRlIGxv Y2FsLW1hYy1hZGRyZXNzIGZpZWxkIChhbmQgdGhlIGZpcnN0IDIgYnl0ZXMgaGF2ZSB0byBiZQ0K LQkgKiBpZ25vcmVkKSB3aGlsZSBuZXdlciBib3hlcycgT0YgcmV0dXJuIGEgNi1ieXRlIGZpZWxk LiBOb3RlIHRoYXQNCi0JICogSUVFRSAxMjc1IHNwZWNpZmllcyB0aGF0IGxvY2FsLW1hYy1hZGRy ZXNzIG11c3QgYmUgYSA2LWJ5dGUgZmllbGQuDQotCSAqIFRoZSBSUEEgZG9jIHNwZWNpZmllcyB0 aGF0IHRoZSBmaXJzdCBieXRlIG11c3QgYmUgMTBiLCBzbyB3ZSdsbA0KLQkgKiBqdXN0IGxvb2sg Zm9yIGl0IHRvIHNvbHZlIHRoaXMgOCB2cy4gNiBieXRlIGZpZWxkIGlzc3VlDQotCSAqLw0KLQlp ZiAoKCptYWNfYWRkcl9wICYgMHgzKSAhPSAweDAyKQ0KLQkJbWFjX2FkZHJfcCArPSAyOw0KLQ0K IAlhZGFwdGVyLT5tYWNfYWRkciA9IDA7DQogCW1lbWNweSgmYWRhcHRlci0+bWFjX2FkZHIsIG1h Y19hZGRyX3AsIDYpOw0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21hY3ZsYW4uYyBiL2Ry aXZlcnMvbmV0L21hY3ZsYW4uYw0KaW5kZXggNTQ0YWMwNi4uMzAxYjM5ZSAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvbmV0L21hY3ZsYW4uYw0KKysrIGIvZHJpdmVycy9uZXQvbWFjdmxhbi5jDQpAQCAt MjA0LDcgKzIwNCw4IEBAIHN0YXRpYyByeF9oYW5kbGVyX3Jlc3VsdF90IG1hY3ZsYW5faGFuZGxl X2ZyYW1lKHN0cnVjdCBza19idWZmICoqcHNrYikNCiAJfQ0KIA0KIAlpZiAocG9ydC0+cGFzc3Ro cnUpDQotCQl2bGFuID0gbGlzdF9maXJzdF9lbnRyeSgmcG9ydC0+dmxhbnMsIHN0cnVjdCBtYWN2 bGFuX2RldiwgbGlzdCk7DQorCQl2bGFuID0gbGlzdF9maXJzdF9vcl9udWxsX3JjdSgmcG9ydC0+ dmxhbnMsDQorCQkJCQkgICAgICBzdHJ1Y3QgbWFjdmxhbl9kZXYsIGxpc3QpOw0KIAllbHNlDQog CQl2bGFuID0gbWFjdmxhbl9oYXNoX2xvb2t1cChwb3J0LCBldGgtPmhfZGVzdCk7DQogCWlmICh2 bGFuID09IE5VTEwpDQpAQCAtNzI1LDcgKzcyNiw3IEBAIGludCBtYWN2bGFuX2NvbW1vbl9uZXds aW5rKHN0cnVjdCBuZXQgKnNyY19uZXQsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsDQogCWlmIChl cnIgPCAwKQ0KIAkJZ290byBkZXN0cm95X3BvcnQ7DQogDQotCWxpc3RfYWRkX3RhaWwoJnZsYW4t Pmxpc3QsICZwb3J0LT52bGFucyk7DQorCWxpc3RfYWRkX3RhaWxfcmN1KCZ2bGFuLT5saXN0LCAm cG9ydC0+dmxhbnMpOw0KIAluZXRpZl9zdGFja2VkX3RyYW5zZmVyX29wZXJzdGF0ZShsb3dlcmRl diwgZGV2KTsNCiANCiAJcmV0dXJuIDA7DQpAQCAtNzUxLDcgKzc1Miw3IEBAIHZvaWQgbWFjdmxh bl9kZWxsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQp DQogew0KIAlzdHJ1Y3QgbWFjdmxhbl9kZXYgKnZsYW4gPSBuZXRkZXZfcHJpdihkZXYpOw0KIA0K LQlsaXN0X2RlbCgmdmxhbi0+bGlzdCk7DQorCWxpc3RfZGVsX3JjdSgmdmxhbi0+bGlzdCk7DQog CXVucmVnaXN0ZXJfbmV0ZGV2aWNlX3F1ZXVlKGRldiwgaGVhZCk7DQogfQ0KIEVYUE9SVF9TWU1C T0xfR1BMKG1hY3ZsYW5fZGVsbGluayk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxl c3MvYXRoL2F0aDlrL21haW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9tYWlu LmMNCmluZGV4IDk1NDM3ZmMuLmRmM2UyN2MgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJl bGVzcy9hdGgvYXRoOWsvbWFpbi5jDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo OWsvbWFpbi5jDQpAQCAtMTc5Myw2ICsxNzkzLDcgQEAgc3RhdGljIGludCBhdGg5a19zdGFfYWRk KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LA0KIAlzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uID0g YXRoOWtfaHdfY29tbW9uKHNjLT5zY19haCk7DQogCXN0cnVjdCBhdGhfbm9kZSAqYW4gPSAoc3Ry dWN0IGF0aF9ub2RlICopIHN0YS0+ZHJ2X3ByaXY7DQogCXN0cnVjdCBpZWVlODAyMTFfa2V5X2Nv bmYgcHNfa2V5ID0geyB9Ow0KKwlpbnQga2V5Ow0KIA0KIAlhdGhfbm9kZV9hdHRhY2goc2MsIHN0 YSk7DQogDQpAQCAtMTgwMCw3ICsxODAxLDkgQEAgc3RhdGljIGludCBhdGg5a19zdGFfYWRkKHN0 cnVjdCBpZWVlODAyMTFfaHcgKmh3LA0KIAkgICAgdmlmLT50eXBlICE9IE5MODAyMTFfSUZUWVBF X0FQX1ZMQU4pDQogCQlyZXR1cm4gMDsNCiANCi0JYW4tPnBzX2tleSA9IGF0aF9rZXlfY29uZmln KGNvbW1vbiwgdmlmLCBzdGEsICZwc19rZXkpOw0KKwlrZXkgPSBhdGhfa2V5X2NvbmZpZyhjb21t b24sIHZpZiwgc3RhLCAmcHNfa2V5KTsNCisJaWYgKGtleSA+IDApDQorCQlhbi0+cHNfa2V5ID0g a2V5Ow0KIA0KIAlyZXR1cm4gMDsNCiB9DQpAQCAtMTgxNyw2ICsxODIwLDcgQEAgc3RhdGljIHZv aWQgYXRoOWtfZGVsX3BzX2tleShzdHJ1Y3QgYXRoX3NvZnRjICpzYywNCiAJICAgIHJldHVybjsN CiANCiAJYXRoX2tleV9kZWxldGUoY29tbW9uLCAmcHNfa2V5KTsNCisJYW4tPnBzX2tleSA9IDA7 DQogfQ0KIA0KIHN0YXRpYyBpbnQgYXRoOWtfc3RhX3JlbW92ZShzdHJ1Y3QgaWVlZTgwMjExX2h3 ICpodywNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvZG1hLmMgYi9kcml2 ZXJzL25ldC93aXJlbGVzcy9iNDMvZG1hLmMNCmluZGV4IDEyOTc1YWQuLmNhNzAyNjcgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvZG1hLmMNCisrKyBiL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL2I0My9kbWEuYw0KQEAgLTE3MTksNiArMTcxOSwyNSBAQCBkcm9wX3JlY3ljbGVf YnVmZmVyOg0KIAlzeW5jX2Rlc2NidWZmZXJfZm9yX2RldmljZShyaW5nLCBkbWFhZGRyLCByaW5n LT5yeF9idWZmZXJzaXplKTsNCiB9DQogDQordm9pZCBiNDNfZG1hX2hhbmRsZV9yeF9vdmVyZmxv dyhzdHJ1Y3QgYjQzX2RtYXJpbmcgKnJpbmcpDQorew0KKwlpbnQgY3VycmVudF9zbG90LCBwcmV2 aW91c19zbG90Ow0KKw0KKwlCNDNfV0FSTl9PTihyaW5nLT50eCk7DQorDQorCS8qIERldmljZSBo YXMgZmlsbGVkIGFsbCBidWZmZXJzLCBkcm9wIGFsbCBwYWNrZXRzIGFuZCBsZXQgVENQDQorCSAq IGRlY3JlYXNlIHNwZWVkLg0KKwkgKiBEZWNyZW1lbnQgUlggaW5kZXggYnkgb25lIHdpbGwgbGV0 IHRoZSBkZXZpY2UgdG8gc2VlIGFsbCBzbG90cw0KKwkgKiBhcyBmcmVlIGFnYWluDQorCSAqLw0K KwkvKg0KKwkqVE9ETzogSG93IHRvIGluY3JlYXNlIHJ4X2Ryb3AgaW4gbWFjODAyMTE/DQorCSov DQorCWN1cnJlbnRfc2xvdCA9IHJpbmctPm9wcy0+Z2V0X2N1cnJlbnRfcnhzbG90KHJpbmcpOw0K KwlwcmV2aW91c19zbG90ID0gcHJldl9zbG90KHJpbmcsIGN1cnJlbnRfc2xvdCk7DQorCXJpbmct Pm9wcy0+c2V0X2N1cnJlbnRfcnhzbG90KHJpbmcsIHByZXZpb3VzX3Nsb3QpOw0KK30NCisNCiB2 b2lkIGI0M19kbWFfcngoc3RydWN0IGI0M19kbWFyaW5nICpyaW5nKQ0KIHsNCiAJY29uc3Qgc3Ry dWN0IGI0M19kbWFfb3BzICpvcHMgPSByaW5nLT5vcHM7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvd2lyZWxlc3MvYjQzL2RtYS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL2RtYS5oDQpp bmRleCA5ZmRkMTk4Li5kZjhjOGNkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3Mv YjQzL2RtYS5oDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvZG1hLmgNCkBAIC05LDcg KzksNyBAQA0KIC8qIERNQS1JbnRlcnJ1cHQgcmVhc29ucy4gKi8NCiAjZGVmaW5lIEI0M19ETUFJ UlFfRkFUQUxNQVNLCSgoMSA8PCAxMCkgfCAoMSA8PCAxMSkgfCAoMSA8PCAxMikgXA0KIAkJCQkJ IHwgKDEgPDwgMTQpIHwgKDEgPDwgMTUpKQ0KLSNkZWZpbmUgQjQzX0RNQUlSUV9OT05GQVRBTE1B U0sJKDEgPDwgMTMpDQorI2RlZmluZSBCNDNfRE1BSVJRX1JERVNDX1VGTE9XCQkoMSA8PCAxMykN CiAjZGVmaW5lIEI0M19ETUFJUlFfUlhfRE9ORQkJKDEgPDwgMTYpDQogDQogLyoqKiAzMi1iaXQg RE1BIEVuZ2luZS4gKioqLw0KQEAgLTI5NSw2ICsyOTUsOCBAQCBpbnQgYjQzX2RtYV90eChzdHJ1 Y3QgYjQzX3dsZGV2ICpkZXYsDQogdm9pZCBiNDNfZG1hX2hhbmRsZV90eHN0YXR1cyhzdHJ1Y3Qg YjQzX3dsZGV2ICpkZXYsDQogCQkJICAgICBjb25zdCBzdHJ1Y3QgYjQzX3R4c3RhdHVzICpzdGF0 dXMpOw0KIA0KK3ZvaWQgYjQzX2RtYV9oYW5kbGVfcnhfb3ZlcmZsb3coc3RydWN0IGI0M19kbWFy aW5nICpyaW5nKTsNCisNCiB2b2lkIGI0M19kbWFfcngoc3RydWN0IGI0M19kbWFyaW5nICpyaW5n KTsNCiANCiB2b2lkIGI0M19kbWFfZGlyZWN0X2ZpZm9fcngoc3RydWN0IGI0M193bGRldiAqZGV2 LA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My9tYWluLmMgYi9kcml2ZXJz L25ldC93aXJlbGVzcy9iNDMvbWFpbi5jDQppbmRleCA2ODA3MDljLi5jMGYyMDQxIDEwMDY0NA0K LS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL21haW4uYw0KKysrIGIvZHJpdmVycy9uZXQv d2lyZWxlc3MvYjQzL21haW4uYw0KQEAgLTE5MDEsMzAgKzE5MDEsMTggQEAgc3RhdGljIHZvaWQg YjQzX2RvX2ludGVycnVwdF90aHJlYWQoc3RydWN0IGI0M193bGRldiAqZGV2KQ0KIAkJfQ0KIAl9 DQogDQotCWlmICh1bmxpa2VseShtZXJnZWRfZG1hX3JlYXNvbiAmIChCNDNfRE1BSVJRX0ZBVEFM TUFTSyB8DQotCQkJCQkgIEI0M19ETUFJUlFfTk9ORkFUQUxNQVNLKSkpIHsNCi0JCWlmIChtZXJn ZWRfZG1hX3JlYXNvbiAmIEI0M19ETUFJUlFfRkFUQUxNQVNLKSB7DQotCQkJYjQzZXJyKGRldi0+ d2wsICJGYXRhbCBETUEgZXJyb3I6ICINCi0JCQkgICAgICAgIjB4JTA4WCwgMHglMDhYLCAweCUw OFgsICINCi0JCQkgICAgICAgIjB4JTA4WCwgMHglMDhYLCAweCUwOFhcbiIsDQotCQkJICAgICAg IGRtYV9yZWFzb25bMF0sIGRtYV9yZWFzb25bMV0sDQotCQkJICAgICAgIGRtYV9yZWFzb25bMl0s IGRtYV9yZWFzb25bM10sDQotCQkJICAgICAgIGRtYV9yZWFzb25bNF0sIGRtYV9yZWFzb25bNV0p Ow0KLQkJCWI0M2VycihkZXYtPndsLCAiVGhpcyBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCBETUEg Ig0KKwlpZiAodW5saWtlbHkobWVyZ2VkX2RtYV9yZWFzb24gJiAoQjQzX0RNQUlSUV9GQVRBTE1B U0spKSkgew0KKwkJYjQzZXJyKGRldi0+d2wsDQorCQkJIkZhdGFsIERNQSBlcnJvcjogMHglMDhY LCAweCUwOFgsIDB4JTA4WCwgMHglMDhYLCAweCUwOFgsIDB4JTA4WFxuIiwNCisJCQlkbWFfcmVh c29uWzBdLCBkbWFfcmVhc29uWzFdLA0KKwkJCWRtYV9yZWFzb25bMl0sIGRtYV9yZWFzb25bM10s DQorCQkJZG1hX3JlYXNvbls0XSwgZG1hX3JlYXNvbls1XSk7DQorCQliNDNlcnIoZGV2LT53bCwg IlRoaXMgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgRE1BICINCiAJCQkgICAgICAgIm9uIHlvdXIg c3lzdGVtLiBJdCB3aWxsIG5vdyBiZSBzd2l0Y2hlZCB0byBQSU8uXG4iKTsNCi0JCQkvKiBGYWxs IGJhY2sgdG8gUElPIHRyYW5zZmVycyBpZiB3ZSBnZXQgZmF0YWwgRE1BIGVycm9ycyEgKi8NCi0J CQlkZXYtPnVzZV9waW8gPSAxOw0KLQkJCWI0M19jb250cm9sbGVyX3Jlc3RhcnQoZGV2LCAiRE1B IGVycm9yIik7DQotCQkJcmV0dXJuOw0KLQkJfQ0KLQkJaWYgKG1lcmdlZF9kbWFfcmVhc29uICYg QjQzX0RNQUlSUV9OT05GQVRBTE1BU0spIHsNCi0JCQliNDNlcnIoZGV2LT53bCwgIkRNQSBlcnJv cjogIg0KLQkJCSAgICAgICAiMHglMDhYLCAweCUwOFgsIDB4JTA4WCwgIg0KLQkJCSAgICAgICAi MHglMDhYLCAweCUwOFgsIDB4JTA4WFxuIiwNCi0JCQkgICAgICAgZG1hX3JlYXNvblswXSwgZG1h X3JlYXNvblsxXSwNCi0JCQkgICAgICAgZG1hX3JlYXNvblsyXSwgZG1hX3JlYXNvblszXSwNCi0J CQkgICAgICAgZG1hX3JlYXNvbls0XSwgZG1hX3JlYXNvbls1XSk7DQotCQl9DQorCQkvKiBGYWxs IGJhY2sgdG8gUElPIHRyYW5zZmVycyBpZiB3ZSBnZXQgZmF0YWwgRE1BIGVycm9ycyEgKi8NCisJ CWRldi0+dXNlX3BpbyA9IHRydWU7DQorCQliNDNfY29udHJvbGxlcl9yZXN0YXJ0KGRldiwgIkRN QSBlcnJvciIpOw0KKwkJcmV0dXJuOw0KIAl9DQogDQogCWlmICh1bmxpa2VseShyZWFzb24gJiBC NDNfSVJRX1VDT0RFX0RFQlVHKSkNCkBAIC0xOTQzLDYgKzE5MzEsMTEgQEAgc3RhdGljIHZvaWQg YjQzX2RvX2ludGVycnVwdF90aHJlYWQoc3RydWN0IGI0M193bGRldiAqZGV2KQ0KIAkJaGFuZGxl X2lycV9ub2lzZShkZXYpOw0KIA0KIAkvKiBDaGVjayB0aGUgRE1BIHJlYXNvbiByZWdpc3RlcnMg Zm9yIHJlY2VpdmVkIGRhdGEuICovDQorCWlmIChkbWFfcmVhc29uWzBdICYgQjQzX0RNQUlSUV9S REVTQ19VRkxPVykgew0KKwkJaWYgKEI0M19ERUJVRykNCisJCQliNDN3YXJuKGRldi0+d2wsICJS WCBkZXNjcmlwdG9yIHVuZGVycnVuXG4iKTsNCisJCWI0M19kbWFfaGFuZGxlX3J4X292ZXJmbG93 KGRldi0+ZG1hLnJ4X3JpbmcpOw0KKwl9DQogCWlmIChkbWFfcmVhc29uWzBdICYgQjQzX0RNQUlS UV9SWF9ET05FKSB7DQogCQlpZiAoYjQzX3VzaW5nX3Bpb190cmFuc2ZlcnMoZGV2KSkNCiAJCQli NDNfcGlvX3J4KGRldi0+cGlvLnJ4X3F1ZXVlKTsNCkBAIC0yMDAwLDcgKzE5OTMsNyBAQCBzdGF0 aWMgaXJxcmV0dXJuX3QgYjQzX2RvX2ludGVycnVwdChzdHJ1Y3QgYjQzX3dsZGV2ICpkZXYpDQog CQlyZXR1cm4gSVJRX05PTkU7DQogDQogCWRldi0+ZG1hX3JlYXNvblswXSA9IGI0M19yZWFkMzIo ZGV2LCBCNDNfTU1JT19ETUEwX1JFQVNPTikNCi0JICAgICYgMHgwMDAxREMwMDsNCisJICAgICYg MHgwMDAxRkMwMDsNCiAJZGV2LT5kbWFfcmVhc29uWzFdID0gYjQzX3JlYWQzMihkZXYsIEI0M19N TUlPX0RNQTFfUkVBU09OKQ0KIAkgICAgJiAweDAwMDBEQzAwOw0KIAlkZXYtPmRtYV9yZWFzb25b Ml0gPSBiNDNfcmVhZDMyKGRldiwgQjQzX01NSU9fRE1BMl9SRUFTT04pDQpAQCAtMzEwMyw3ICsz MDk2LDcgQEAgc3RhdGljIGludCBiNDNfY2hpcF9pbml0KHN0cnVjdCBiNDNfd2xkZXYgKmRldikN CiAJCWI0M193cml0ZTMyKGRldiwgMHgwMThDLCAweDAyMDAwMDAwKTsNCiAJfQ0KIAliNDNfd3Jp dGUzMihkZXYsIEI0M19NTUlPX0dFTl9JUlFfUkVBU09OLCAweDAwMDA0MDAwKTsNCi0JYjQzX3dy aXRlMzIoZGV2LCBCNDNfTU1JT19ETUEwX0lSUV9NQVNLLCAweDAwMDFEQzAwKTsNCisJYjQzX3dy aXRlMzIoZGV2LCBCNDNfTU1JT19ETUEwX0lSUV9NQVNLLCAweDAwMDFGQzAwKTsNCiAJYjQzX3dy aXRlMzIoZGV2LCBCNDNfTU1JT19ETUExX0lSUV9NQVNLLCAweDAwMDBEQzAwKTsNCiAJYjQzX3dy aXRlMzIoZGV2LCBCNDNfTU1JT19ETUEyX0lSUV9NQVNLLCAweDAwMDBEQzAwKTsNCiAJYjQzX3dy aXRlMzIoZGV2LCBCNDNfTU1JT19ETUEzX0lSUV9NQVNLLCAweDAwMDFEQzAwKTsNCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4L2NmZzgwMjExLmMgYi9kcml2ZXJzL25l dC93aXJlbGVzcy9td2lmaWV4L2NmZzgwMjExLmMNCmluZGV4IDcyN2MxMjkuLjQ1YWM0MDcgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4L2NmZzgwMjExLmMNCisrKyBi L2RyaXZlcnMvbmV0L3dpcmVsZXNzL213aWZpZXgvY2ZnODAyMTEuYw0KQEAgLTEyODEsOSArMTI4 MSw2IEBAIGludCBtd2lmaWV4X2RlbF92aXJ0dWFsX2ludGYoc3RydWN0IHdpcGh5ICp3aXBoeSwg c3RydWN0IG5ldF9kZXZpY2UgKmRldikNCiAJaWYgKGRldi0+cmVnX3N0YXRlID09IE5FVFJFR19S RUdJU1RFUkVEKQ0KIAkJdW5yZWdpc3Rlcl9uZXRkZXZpY2UoZGV2KTsNCiANCi0JaWYgKGRldi0+ cmVnX3N0YXRlID09IE5FVFJFR19VTlJFR0lTVEVSRUQpDQotCQlmcmVlX25ldGRldihkZXYpOw0K LQ0KIAkvKiBDbGVhciB0aGUgcHJpdiBpbiBhZGFwdGVyICovDQogCXByaXYtPm5ldGRldiA9IE5V TEw7DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbXdpZmlleC9jbWRldnQu YyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL213aWZpZXgvY21kZXZ0LmMNCmluZGV4IDVhMjVkZDIu LjkwZmZjNzYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4L2NtZGV2 dC5jDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4L2NtZGV2dC5jDQpAQCAtMTA4 Myw2ICsxMDgzLDcgQEAgbXdpZmlleF9wcm9jZXNzX2hzX2NvbmZpZyhzdHJ1Y3QgbXdpZmlleF9h ZGFwdGVyICphZGFwdGVyKQ0KIAlhZGFwdGVyLT5pZl9vcHMud2FrZXVwKGFkYXB0ZXIpOw0KIAlh ZGFwdGVyLT5oc19hY3RpdmF0ZWQgPSBmYWxzZTsNCiAJYWRhcHRlci0+aXNfaHNfY29uZmlndXJl ZCA9IGZhbHNlOw0KKwlhZGFwdGVyLT5pc19zdXNwZW5kZWQgPSBmYWxzZTsNCiAJbXdpZmlleF9o c19hY3RpdmF0ZWRfZXZlbnQobXdpZmlleF9nZXRfcHJpdihhZGFwdGVyLA0KIAkJCQkgICBNV0lG SUVYX0JTU19ST0xFX0FOWSksIGZhbHNlKTsNCiB9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv d2lyZWxlc3MvbXdpZmlleC9tYWluLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4L21h aW4uYw0KaW5kZXggNjdlNmRiNy4uNWJhYTEyYSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dp cmVsZXNzL213aWZpZXgvbWFpbi5jDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4 L21haW4uYw0KQEAgLTU4MSw2ICs1ODEsNyBAQCB2b2lkIG13aWZpZXhfaW5pdF9wcml2X3BhcmFt cyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LA0KIAkJCQkJCXN0cnVjdCBuZXRfZGV2aWNl ICpkZXYpDQogew0KIAlkZXYtPm5ldGRldl9vcHMgPSAmbXdpZmlleF9uZXRkZXZfb3BzOw0KKwlk ZXYtPmRlc3RydWN0b3IgPSBmcmVlX25ldGRldjsNCiAJLyogSW5pdGlhbGl6ZSBwcml2YXRlIHN0 cnVjdHVyZSAqLw0KIAlwcml2LT5jdXJyZW50X2tleV9pbmRleCA9IDA7DQogCXByaXYtPm1lZGlh X2Nvbm5lY3RlZCA9IGZhbHNlOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL213 aWZpZXgvc3RhX2lvY3RsLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4L3N0YV9pb2N0 bC5jDQppbmRleCA1NmUxYzRhLi41YzNjNjJkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2ly ZWxlc3MvbXdpZmlleC9zdGFfaW9jdGwuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbXdp ZmlleC9zdGFfaW9jdGwuYw0KQEAgLTEwNSw3ICsxMDUsNyBAQCBpbnQgbXdpZmlleF9yZXF1ZXN0 X3NldF9tdWx0aWNhc3RfbGlzdChzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LA0KIAl9IGVs c2Ugew0KIAkJLyogTXVsdGljYXN0ICovDQogCQlwcml2LT5jdXJyX3BrdF9maWx0ZXIgJj0gfkhv c3RDbWRfQUNUX01BQ19QUk9NSVNDVU9VU19FTkFCTEU7DQotCQlpZiAobWNhc3RfbGlzdC0+bW9k ZSA9PSBNV0lGSUVYX01VTFRJQ0FTVF9NT0RFKSB7DQorCQlpZiAobWNhc3RfbGlzdC0+bW9kZSA9 PSBNV0lGSUVYX0FMTF9NVUxUSV9NT0RFKSB7DQogCQkJZGV2X2RiZyhwcml2LT5hZGFwdGVyLT5k ZXYsDQogCQkJCSJpbmZvOiBFbmFibGluZyBBbGwgTXVsdGljYXN0IVxuIik7DQogCQkJcHJpdi0+ Y3Vycl9wa3RfZmlsdGVyIHw9DQpAQCAtMTE3LDIwICsxMTcsMTEgQEAgaW50IG13aWZpZXhfcmVx dWVzdF9zZXRfbXVsdGljYXN0X2xpc3Qoc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdiwNCiAJ CQkJZGV2X2RiZyhwcml2LT5hZGFwdGVyLT5kZXYsDQogCQkJCQkiaW5mbzogU2V0IG11bHRpY2Fz dCBsaXN0PSVkXG4iLA0KIAkJCQkgICAgICAgbWNhc3RfbGlzdC0+bnVtX211bHRpY2FzdF9hZGRy KTsNCi0JCQkJLyogU2V0IG11bHRpY2FzdCBhZGRyZXNzZXMgdG8gZmlybXdhcmUgKi8NCi0JCQkJ aWYgKG9sZF9wa3RfZmlsdGVyID09IHByaXYtPmN1cnJfcGt0X2ZpbHRlcikgew0KLQkJCQkJLyog U2VuZCByZXF1ZXN0IHRvIGZpcm13YXJlICovDQotCQkJCQlyZXQgPSBtd2lmaWV4X3NlbmRfY21k X2FzeW5jKHByaXYsDQotCQkJCQkJSG9zdENtZF9DTURfTUFDX01VTFRJQ0FTVF9BRFIsDQotCQkJ CQkJSG9zdENtZF9BQ1RfR0VOX1NFVCwgMCwNCi0JCQkJCQltY2FzdF9saXN0KTsNCi0JCQkJfSBl bHNlIHsNCi0JCQkJCS8qIFNlbmQgcmVxdWVzdCB0byBmaXJtd2FyZSAqLw0KLQkJCQkJcmV0ID0g bXdpZmlleF9zZW5kX2NtZF9hc3luYyhwcml2LA0KLQkJCQkJCUhvc3RDbWRfQ01EX01BQ19NVUxU SUNBU1RfQURSLA0KLQkJCQkJCUhvc3RDbWRfQUNUX0dFTl9TRVQsIDAsDQotCQkJCQkJbWNhc3Rf bGlzdCk7DQotCQkJCX0NCisJCQkJLyogU2VuZCBtdWx0aWNhc3QgYWRkcmVzc2VzIHRvIGZpcm13 YXJlICovDQorCQkJCXJldCA9IG13aWZpZXhfc2VuZF9jbWRfYXN5bmMocHJpdiwNCisJCQkJCUhv c3RDbWRfQ01EX01BQ19NVUxUSUNBU1RfQURSLA0KKwkJCQkJSG9zdENtZF9BQ1RfR0VOX1NFVCwg MCwNCisJCQkJCW1jYXN0X2xpc3QpOw0KIAkJCX0NCiAJCX0NCiAJfQ0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvcGxhdGZvcm0veDg2L2hwX2FjY2VsLmMgYi9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9ocF9h Y2NlbC5jDQppbmRleCAyMmIyZGZhLi5mZGFjZmNlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9wbGF0 Zm9ybS94ODYvaHBfYWNjZWwuYw0KKysrIGIvZHJpdmVycy9wbGF0Zm9ybS94ODYvaHBfYWNjZWwu Yw0KQEAgLTM2Miw3ICszNjIsOCBAQCBzdGF0aWMgaW50IGxpczNsdjAyZF9zdXNwZW5kKHN0cnVj dCBhY3BpX2RldmljZSAqZGV2aWNlLCBwbV9tZXNzYWdlX3Qgc3RhdGUpDQogDQogc3RhdGljIGlu dCBsaXMzbHYwMmRfcmVzdW1lKHN0cnVjdCBhY3BpX2RldmljZSAqZGV2aWNlKQ0KIHsNCi0JcmV0 dXJuIGxpczNsdjAyZF9wb3dlcm9uKCZsaXMzX2Rldik7DQorCWxpczNsdjAyZF9wb3dlcm9uKCZs aXMzX2Rldik7DQorCXJldHVybiAwOw0KIH0NCiAjZWxzZQ0KICNkZWZpbmUgbGlzM2x2MDJkX3N1 c3BlbmQgTlVMTA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmFwaWRpby9kZXZpY2VzL3RzaTcyMS5j IGIvZHJpdmVycy9yYXBpZGlvL2RldmljZXMvdHNpNzIxLmMNCmluZGV4IDMzNDcxZTEuLjIzZWYx NmMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3JhcGlkaW8vZGV2aWNlcy90c2k3MjEuYw0KKysrIGIv ZHJpdmVycy9yYXBpZGlvL2RldmljZXMvdHNpNzIxLmMNCkBAIC00NzUsNiArNDc1LDEwIEBAIHN0 YXRpYyBpcnFyZXR1cm5fdCB0c2k3MjFfaXJxaGFuZGxlcihpbnQgaXJxLCB2b2lkICpwdHIpDQog CXUzMiBpbnR2YWw7DQogCXUzMiBjaF9pbnRlOw0KIA0KKwkvKiBGb3IgTVNJIG1vZGUgZGlzYWJs ZSBhbGwgZGV2aWNlLWxldmVsIGludGVycnVwdHMgKi8NCisJaWYgKHByaXYtPmZsYWdzICYgVFNJ NzIxX1VTSU5HX01TSSkNCisJCWlvd3JpdGUzMigwLCBwcml2LT5yZWdzICsgVFNJNzIxX0RFVl9J TlRFKTsNCisNCiAJZGV2X2ludCA9IGlvcmVhZDMyKHByaXYtPnJlZ3MgKyBUU0k3MjFfREVWX0lO VCk7DQogCWlmICghZGV2X2ludCkNCiAJCXJldHVybiBJUlFfTk9ORTsNCkBAIC01NDgsNiArNTUy LDEzIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCB0c2k3MjFfaXJxaGFuZGxlcihpbnQgaXJxLCB2b2lk ICpwdHIpDQogCQkJdHNpNzIxX3B3X2hhbmRsZXIobXBvcnQpOw0KIAl9DQogDQorCS8qIEZvciBN U0kgbW9kZSByZS1lbmFibGUgZGV2aWNlLWxldmVsIGludGVycnVwdHMgKi8NCisJaWYgKHByaXYt PmZsYWdzICYgVFNJNzIxX1VTSU5HX01TSSkgew0KKwkJZGV2X2ludCA9IFRTSTcyMV9ERVZfSU5U X1NSMlBDX0NIIHwgVFNJNzIxX0RFVl9JTlRfU1JJTyB8DQorCQkJVFNJNzIxX0RFVl9JTlRfU01T R19DSCB8IFRTSTcyMV9ERVZfSU5UX0JETUFfQ0g7DQorCQlpb3dyaXRlMzIoZGV2X2ludCwgcHJp di0+cmVncyArIFRTSTcyMV9ERVZfSU5URSk7DQorCX0NCisNCiAJcmV0dXJuIElSUV9IQU5ETEVE Ow0KIH0NCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtcGNmMjEyMy5jIGIvZHJpdmVy cy9ydGMvcnRjLXBjZjIxMjMuYw0KaW5kZXggMmVlM2JiZi4uNjJlMWIyYyAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvcnRjL3J0Yy1wY2YyMTIzLmMNCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1wY2YyMTIz LmMNCkBAIC0yNjQsNiArMjY0LDcgQEAgc3RhdGljIGludCBfX2RldmluaXQgcGNmMjEyM19wcm9i ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQ0KIA0KIAlpZiAoIShyeGJ1ZlswXSAmIDB4MjApKSB7 DQogCQlkZXZfZXJyKCZzcGktPmRldiwgImNoaXAgbm90IGZvdW5kXG4iKTsNCisJCXJldCA9IC1F Tk9ERVY7DQogCQlnb3RvIGtmcmVlX2V4aXQ7DQogCX0NCiANCmRpZmYgLS1naXQgYS9kcml2ZXJz L3N0YWdpbmcvY29tZWRpL2NvbWVkaV9mb3BzLmMgYi9kcml2ZXJzL3N0YWdpbmcvY29tZWRpL2Nv bWVkaV9mb3BzLmMNCmluZGV4IGEwMjNmNTIuLmZlNGRiZjMgMTAwNjQ0DQotLS0gYS9kcml2ZXJz L3N0YWdpbmcvY29tZWRpL2NvbWVkaV9mb3BzLmMNCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9jb21l ZGkvY29tZWRpX2ZvcHMuYw0KQEAgLTE0Myw2ICsxNDMsOSBAQCBzdGF0aWMgbG9uZyBjb21lZGlf dW5sb2NrZWRfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsDQogCQl9 DQogCQlyYyA9IGRvX2RldmNvbmZpZ19pb2N0bChkZXYsDQogCQkJCQkoc3RydWN0IGNvbWVkaV9k ZXZjb25maWcgX191c2VyICopYXJnKTsNCisJCWlmIChyYyA9PSAwKQ0KKwkJCS8qIEV2YWRlIGNv bWVkaV9hdXRvX3VuY29uZmlnKCkuICovDQorCQkJZGV2X2ZpbGVfaW5mby0+aGFyZHdhcmVfZGV2 aWNlID0gTlVMTDsNCiAJCWdvdG8gZG9uZTsNCiAJfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv c3RhZ2luZy92dDY2NTYvaG9zdGFwLmMgYi9kcml2ZXJzL3N0YWdpbmcvdnQ2NjU2L2hvc3RhcC5j DQppbmRleCA1MWI1YWRmLi5kZjhlYTI1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zdGFnaW5nL3Z0 NjY1Ni9ob3N0YXAuYw0KKysrIGIvZHJpdmVycy9zdGFnaW5nL3Z0NjY1Ni9ob3N0YXAuYw0KQEAg LTE1Myw3ICsxNTMsNyBAQCBzdGF0aWMgaW50IGhvc3RhcF9kaXNhYmxlX2hvc3RhcGQoUFNEZXZp Y2UgcERldmljZSwgaW50IHJ0bmxfbG9ja2VkKQ0KICAgICAgICAgICAgIERCR19QUlQoTVNHX0xF VkVMX0RFQlVHLCBLRVJOX0lORk8gIiVzOiBOZXRkZXZpY2UgJXMgdW5yZWdpc3RlcmVkXG4iLA0K IAkJICAgICAgIHBEZXZpY2UtPmRldi0+bmFtZSwgcERldmljZS0+YXBkZXYtPm5hbWUpOw0KIAl9 DQotCWtmcmVlKHBEZXZpY2UtPmFwZGV2KTsNCisJZnJlZV9uZXRkZXYocERldmljZS0+YXBkZXYp Ow0KIAlwRGV2aWNlLT5hcGRldiA9IE5VTEw7DQogICAgIHBEZXZpY2UtPmJFbmFibGU4MDIxeCA9 IEZBTFNFOw0KICAgICBwRGV2aWNlLT5iRW5hYmxlSG9zdFdFUCA9IEZBTFNFOw0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvdGFyZ2V0L2lzY3NpL2lzY3NpX3RhcmdldF9lcmwxLmMgYi9kcml2ZXJzL3Rh cmdldC9pc2NzaS9pc2NzaV90YXJnZXRfZXJsMS5jDQppbmRleCAxMDFiMWJlLi5kODY3OTFlIDEw MDY0NA0KLS0tIGEvZHJpdmVycy90YXJnZXQvaXNjc2kvaXNjc2lfdGFyZ2V0X2VybDEuYw0KKysr IGIvZHJpdmVycy90YXJnZXQvaXNjc2kvaXNjc2lfdGFyZ2V0X2VybDEuYw0KQEAgLTgyNCw3ICs4 MjQsNyBAQCBzdGF0aWMgaW50IGlzY3NpdF9hdHRhY2hfb29vX2NtZHNuKA0KIAkJLyoNCiAJCSAq IENtZFNOIGlzIGdyZWF0ZXIgdGhhbiB0aGUgdGFpbCBvZiB0aGUgbGlzdC4NCiAJCSAqLw0KLQkJ aWYgKG9vb190YWlsLT5jbWRzbiA8IG9vb19jbWRzbi0+Y21kc24pDQorCQlpZiAoaXNjc2lfc25h X2x0KG9vb190YWlsLT5jbWRzbiwgb29vX2NtZHNuLT5jbWRzbikpDQogCQkJbGlzdF9hZGRfdGFp bCgmb29vX2NtZHNuLT5vb29fbGlzdCwNCiAJCQkJCSZzZXNzLT5zZXNzX29vb19jbWRzbl9saXN0 KTsNCiAJCWVsc2Ugew0KQEAgLTgzNCwxMSArODM0LDEyIEBAIHN0YXRpYyBpbnQgaXNjc2l0X2F0 dGFjaF9vb29fY21kc24oDQogCQkJICovDQogCQkJbGlzdF9mb3JfZWFjaF9lbnRyeShvb29fdG1w LCAmc2Vzcy0+c2Vzc19vb29fY21kc25fbGlzdCwNCiAJCQkJCQlvb29fbGlzdCkgew0KLQkJCQlp ZiAob29vX3RtcC0+Y21kc24gPCBvb29fY21kc24tPmNtZHNuKQ0KKwkJCQlpZiAoaXNjc2lfc25h X2x0KG9vb190bXAtPmNtZHNuLCBvb29fY21kc24tPmNtZHNuKSkNCiAJCQkJCWNvbnRpbnVlOw0K IA0KKwkJCQkvKiBJbnNlcnQgYmVmb3JlIHRoaXMgZW50cnkgKi8NCiAJCQkJbGlzdF9hZGQoJm9v b19jbWRzbi0+b29vX2xpc3QsDQotCQkJCQkmb29vX3RtcC0+b29vX2xpc3QpOw0KKwkJCQkJb29v X3RtcC0+b29vX2xpc3QucHJldik7DQogCQkJCWJyZWFrOw0KIAkJCX0NCiAJCX0NCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3R0eS9uX3R0eS5jIGIvZHJpdmVycy90dHkvbl90dHkuYw0KaW5kZXggODQ4 MWFhZS4uMGY4YTc4NSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdHR5L25fdHR5LmMNCisrKyBiL2Ry aXZlcnMvdHR5L25fdHR5LmMNCkBAIC0xNTMwLDYgKzE1MzAsMTQgQEAgc3RhdGljIHZvaWQgbl90 dHlfc2V0X3Rlcm1pb3Moc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgc3RydWN0IGt0ZXJtaW9zICpv bGQpDQogCQkJdHR5LT5yZWFsX3JhdyA9IDA7DQogCX0NCiAJbl90dHlfc2V0X3Jvb20odHR5KTsN CisJLyoNCisJICogRml4IHR0eSBoYW5nIHdoZW4gSV9JWE9OKHR0eSkgaXMgY2xlYXJlZCwgYnV0 IHRoZSB0dHkNCisJICogYmVlbiBzdG9wcGVkIGJ5IFNUT1BfQ0hBUih0dHkpIGJlZm9yZSBpdC4N CisJICovDQorCWlmICghSV9JWE9OKHR0eSkgJiYgb2xkICYmIChvbGQtPmNfaWZsYWcgJiBJWE9O KSAmJiAhdHR5LT5mbG93X3N0b3BwZWQpIHsNCisJCXN0YXJ0X3R0eSh0dHkpOw0KKwl9DQorDQog CS8qIFRoZSB0ZXJtaW9zIGNoYW5nZSBtYWtlIHRoZSB0dHkgcmVhZHkgZm9yIEkvTyAqLw0KIAl3 YWtlX3VwX2ludGVycnVwdGlibGUoJnR0eS0+d3JpdGVfd2FpdCk7DQogCXdha2VfdXBfaW50ZXJy dXB0aWJsZSgmdHR5LT5yZWFkX3dhaXQpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2F0bS9j eGFjcnUuYyBiL2RyaXZlcnMvdXNiL2F0bS9jeGFjcnUuYw0KaW5kZXggYTg0NWY4Yi4uOTQ5NzE3 MSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2F0bS9jeGFjcnUuYw0KKysrIGIvZHJpdmVycy91 c2IvYXRtL2N4YWNydS5jDQpAQCAtNjg2LDcgKzY4Niw4IEBAIHN0YXRpYyBpbnQgY3hhY3J1X2Nt X2dldF9hcnJheShzdHJ1Y3QgY3hhY3J1X2RhdGEgKmluc3RhbmNlLCBlbnVtIGN4YWNydV9jbV9y ZXF1DQogew0KIAlpbnQgcmV0LCBsZW47DQogCV9fbGUzMiAqYnVmOw0KLQlpbnQgb2ZmYiwgb2Zm ZDsNCisJaW50IG9mZmI7DQorCXVuc2lnbmVkIGludCBvZmZkOw0KIAljb25zdCBpbnQgc3RyaWRl ID0gQ01EX1BBQ0tFVF9TSVpFIC8gKDQgKiAyKSAtIDE7DQogCWludCBidWZsZW4gPSAgKChzaXpl IC0gMSkgLyBzdHJpZGUgKyAxICsgc2l6ZSAqIDIpICogNDsNCiANCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3VzYi9jb3JlL3F1aXJrcy5jIGIvZHJpdmVycy91c2IvY29yZS9xdWlya3MuYw0KaW5kZXgg MGFhYTRmMS4uMmZiY2I3NSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvcXVpcmtzLmMN CisrKyBiL2RyaXZlcnMvdXNiL2NvcmUvcXVpcmtzLmMNCkBAIC04OCw2ICs4OCw5IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCB1c2JfcXVpcmtfbGlzdFtdID0gew0KIAkvKiBF ZGlyb2wgU0QtMjAgKi8NCiAJeyBVU0JfREVWSUNFKDB4MDU4MiwgMHgwMDI3KSwgLmRyaXZlcl9p bmZvID0gVVNCX1FVSVJLX1JFU0VUX1JFU1VNRSB9LA0KIA0KKwkvKiBBbGNvciBNaWNybyBDb3Jw LiBIdWIgKi8NCisJeyBVU0JfREVWSUNFKDB4MDU4ZiwgMHg5MjU0KSwgLmRyaXZlcl9pbmZvID0g VVNCX1FVSVJLX1JFU0VUX1JFU1VNRSB9LA0KKw0KIAkvKiBhcHBsZXRvdWNoICovDQogCXsgVVNC X0RFVklDRSgweDA1YWMsIDB4MDIxYSksIC5kcml2ZXJfaW5mbyA9IFVTQl9RVUlSS19SRVNFVF9S RVNVTUUgfSwNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L3VoY2ktaHViLmMgYi9k cml2ZXJzL3VzYi9ob3N0L3VoY2ktaHViLmMNCmluZGV4IDA0NWNkZTQuLjg1MDcyM2YgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L3VoY2ktaHViLmMNCisrKyBiL2RyaXZlcnMvdXNiL2hv c3QvdWhjaS1odWIuYw0KQEAgLTIyMSw3ICsyMjEsOCBAQCBzdGF0aWMgaW50IHVoY2lfaHViX3N0 YXR1c19kYXRhKHN0cnVjdCB1c2JfaGNkICpoY2QsIGNoYXIgKmJ1ZikNCiAJCS8qIGF1dG8tc3Rv cCBpZiBub3RoaW5nIGNvbm5lY3RlZCBmb3IgMSBzZWNvbmQgKi8NCiAJCWlmIChhbnlfcG9ydHNf YWN0aXZlKHVoY2kpKQ0KIAkJCXVoY2ktPnJoX3N0YXRlID0gVUhDSV9SSF9SVU5OSU5HOw0KLQkJ ZWxzZSBpZiAodGltZV9hZnRlcl9lcShqaWZmaWVzLCB1aGNpLT5hdXRvX3N0b3BfdGltZSkpDQor CQllbHNlIGlmICh0aW1lX2FmdGVyX2VxKGppZmZpZXMsIHVoY2ktPmF1dG9fc3RvcF90aW1lKSAm Jg0KKwkJCQkhdWhjaS0+d2FpdF9mb3JfaHApDQogCQkJc3VzcGVuZF9yaCh1aGNpLCBVSENJX1JI X0FVVE9fU1RPUFBFRCk7DQogCQlicmVhazsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9o b3N0L3hoY2ktbWVtLmMgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktbWVtLmMNCmluZGV4IGVlNWVj MTEuLjQzMGMxZDUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktbWVtLmMNCisr KyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1tZW0uYw0KQEAgLTEzNTMsMTUgKzEzNTMsMTcgQEAg aW50IHhoY2lfZW5kcG9pbnRfaW5pdChzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ksDQogCWVwX2N0eC0+ ZXBfaW5mbzIgfD0gY3B1X3RvX2xlMzIoeGhjaV9nZXRfZW5kcG9pbnRfdHlwZSh1ZGV2LCBlcCkp Ow0KIA0KIAkvKiBTZXQgdGhlIG1heCBwYWNrZXQgc2l6ZSBhbmQgbWF4IGJ1cnN0ICovDQorCW1h eF9wYWNrZXQgPSBHRVRfTUFYX1BBQ0tFVCh1c2JfZW5kcG9pbnRfbWF4cCgmZXAtPmRlc2MpKTsN CisJbWF4X2J1cnN0ID0gMDsNCiAJc3dpdGNoICh1ZGV2LT5zcGVlZCkgew0KIAljYXNlIFVTQl9T UEVFRF9TVVBFUjoNCi0JCW1heF9wYWNrZXQgPSB1c2JfZW5kcG9pbnRfbWF4cCgmZXAtPmRlc2Mp Ow0KLQkJZXBfY3R4LT5lcF9pbmZvMiB8PSBjcHVfdG9fbGUzMihNQVhfUEFDS0VUKG1heF9wYWNr ZXQpKTsNCiAJCS8qIGRpZyBvdXQgbWF4IGJ1cnN0IGZyb20gZXAgY29tcGFuaW9uIGRlc2MgKi8N Ci0JCW1heF9wYWNrZXQgPSBlcC0+c3NfZXBfY29tcC5iTWF4QnVyc3Q7DQotCQllcF9jdHgtPmVw X2luZm8yIHw9IGNwdV90b19sZTMyKE1BWF9CVVJTVChtYXhfcGFja2V0KSk7DQorCQltYXhfYnVy c3QgPSBlcC0+c3NfZXBfY29tcC5iTWF4QnVyc3Q7DQogCQlicmVhazsNCiAJY2FzZSBVU0JfU1BF RURfSElHSDoNCisJCS8qIFNvbWUgZGV2aWNlcyBnZXQgdGhpcyB3cm9uZyAqLw0KKwkJaWYgKHVz Yl9lbmRwb2ludF94ZmVyX2J1bGsoJmVwLT5kZXNjKSkNCisJCQltYXhfcGFja2V0ID0gNTEyOw0K IAkJLyogYml0cyAxMToxMiBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgYWRkaXRpb25hbCB0cmFuc2Fj dGlvbg0KIAkJICogb3Bwb3J0dW5pdGllcyBwZXIgbWljcm9mcmFtZSAoVVNCIDIuMCwgc2VjdGlv biA5LjYuNikNCiAJCSAqLw0KQEAgLTEzNjksMTcgKzEzNzEsMTYgQEAgaW50IHhoY2lfZW5kcG9p bnRfaW5pdChzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ksDQogCQkJCXVzYl9lbmRwb2ludF94ZmVyX2lu dCgmZXAtPmRlc2MpKSB7DQogCQkJbWF4X2J1cnN0ID0gKHVzYl9lbmRwb2ludF9tYXhwKCZlcC0+ ZGVzYykNCiAJCQkJICAgICAmIDB4MTgwMCkgPj4gMTE7DQotCQkJZXBfY3R4LT5lcF9pbmZvMiB8 PSBjcHVfdG9fbGUzMihNQVhfQlVSU1QobWF4X2J1cnN0KSk7DQogCQl9DQotCQkvKiBGYWxsIHRo cm91Z2ggKi8NCisJCWJyZWFrOw0KIAljYXNlIFVTQl9TUEVFRF9GVUxMOg0KIAljYXNlIFVTQl9T UEVFRF9MT1c6DQotCQltYXhfcGFja2V0ID0gR0VUX01BWF9QQUNLRVQodXNiX2VuZHBvaW50X21h eHAoJmVwLT5kZXNjKSk7DQotCQllcF9jdHgtPmVwX2luZm8yIHw9IGNwdV90b19sZTMyKE1BWF9Q QUNLRVQobWF4X3BhY2tldCkpOw0KIAkJYnJlYWs7DQogCWRlZmF1bHQ6DQogCQlCVUcoKTsNCiAJ fQ0KKwllcF9jdHgtPmVwX2luZm8yIHw9IGNwdV90b19sZTMyKE1BWF9QQUNLRVQobWF4X3BhY2tl dCkgfA0KKwkJCU1BWF9CVVJTVChtYXhfYnVyc3QpKTsNCiAJbWF4X2VzaXRfcGF5bG9hZCA9IHho Y2lfZ2V0X21heF9lc2l0X3BheWxvYWQoeGhjaSwgdWRldiwgZXApOw0KIAllcF9jdHgtPnR4X2lu Zm8gPSBjcHVfdG9fbGUzMihNQVhfRVNJVF9QQVlMT0FEX0ZPUl9FUChtYXhfZXNpdF9wYXlsb2Fk KSk7DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC94aGNpLXJpbmcuYyBiL2RyaXZl cnMvdXNiL2hvc3QveGhjaS1yaW5nLmMNCmluZGV4IDM3YjJhODkuLmQwOGE4MDQgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcmluZy5jDQorKysgYi9kcml2ZXJzL3VzYi9ob3N0 L3hoY2ktcmluZy5jDQpAQCAtMjM3NiwxNCArMjM3NiwyMSBAQCBzdGF0aWMgaW50IGhhbmRsZV90 eF9ldmVudChzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ksDQogCQkgKiBURCBsaXN0Lg0KIAkJICovDQog CQlpZiAobGlzdF9lbXB0eSgmZXBfcmluZy0+dGRfbGlzdCkpIHsNCi0JCQl4aGNpX3dhcm4oeGhj aSwgIldBUk4gRXZlbnQgVFJCIGZvciBzbG90ICVkIGVwICVkICINCi0JCQkJCSJ3aXRoIG5vIFRE cyBxdWV1ZWQ/XG4iLA0KLQkJCQkgIFRSQl9UT19TTE9UX0lEKGxlMzJfdG9fY3B1KGV2ZW50LT5m bGFncykpLA0KLQkJCQkgIGVwX2luZGV4KTsNCi0JCQl4aGNpX2RiZyh4aGNpLCAiRXZlbnQgVFJC IHdpdGggVFJCIHR5cGUgSUQgJXVcbiIsDQotCQkJCSAobGUzMl90b19jcHUoZXZlbnQtPmZsYWdz KSAmDQotCQkJCSAgVFJCX1RZUEVfQklUTUFTSyk+PjEwKTsNCi0JCQl4aGNpX3ByaW50X3RyYl9v ZmZzZXRzKHhoY2ksICh1bmlvbiB4aGNpX3RyYiAqKSBldmVudCk7DQorCQkJLyoNCisJCQkgKiBB IHN0b3BwZWQgZW5kcG9pbnQgbWF5IGdlbmVyYXRlIGFuIGV4dHJhIGNvbXBsZXRpb24NCisJCQkg KiBldmVudCBpZiB0aGUgZGV2aWNlIHdhcyBzdXNwZW5kZWQuICBEb24ndCBwcmludA0KKwkJCSAq IHdhcm5pbmdzLg0KKwkJCSAqLw0KKwkJCWlmICghKHRyYl9jb21wX2NvZGUgPT0gQ09NUF9TVE9Q IHx8DQorCQkJCQkJdHJiX2NvbXBfY29kZSA9PSBDT01QX1NUT1BfSU5WQUwpKSB7DQorCQkJCXho Y2lfd2Fybih4aGNpLCAiV0FSTiBFdmVudCBUUkIgZm9yIHNsb3QgJWQgZXAgJWQgd2l0aCBubyBU RHMgcXVldWVkP1xuIiwNCisJCQkJCQlUUkJfVE9fU0xPVF9JRChsZTMyX3RvX2NwdShldmVudC0+ ZmxhZ3MpKSwNCisJCQkJCQllcF9pbmRleCk7DQorCQkJCXhoY2lfZGJnKHhoY2ksICJFdmVudCBU UkIgd2l0aCBUUkIgdHlwZSBJRCAldVxuIiwNCisJCQkJCQkobGUzMl90b19jcHUoZXZlbnQtPmZs YWdzKSAmDQorCQkJCQkJIFRSQl9UWVBFX0JJVE1BU0spPj4xMCk7DQorCQkJCXhoY2lfcHJpbnRf dHJiX29mZnNldHMoeGhjaSwgKHVuaW9uIHhoY2lfdHJiICopIGV2ZW50KTsNCisJCQl9DQogCQkJ aWYgKGVwLT5za2lwKSB7DQogCQkJCWVwLT5za2lwID0gZmFsc2U7DQogCQkJCXhoY2lfZGJnKHho Y2ksICJ0ZF9saXN0IGlzIGVtcHR5IHdoaWxlIHNraXAgIg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv dXNiL3NlcmlhbC9mdGRpX3Npby5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMNCmlu ZGV4IDUxZDE3MTIuLjkxOGVjOTggMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvZnRk aV9zaW8uYw0KKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMNCkBAIC0xOTcsNiAr MTk3LDggQEAgc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlX2NvbWJpbmVkIFtd ID0gew0KIAl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfT1BFTkRDQ19HQk1fUElEKSB9LA0K IAl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfT1BFTkRDQ19HQk1fQk9PU1RfUElEKSB9LA0K IAl7IFVTQl9ERVZJQ0UoTkVXUE9SVF9WSUQsIE5FV1BPUlRfQUdJTElTX1BJRCkgfSwNCisJeyBV U0JfREVWSUNFKE5FV1BPUlRfVklELCBORVdQT1JUX0NPTkVYX0NDX1BJRCkgfSwNCisJeyBVU0Jf REVWSUNFKE5FV1BPUlRfVklELCBORVdQT1JUX0NPTkVYX0FHUF9QSUQpIH0sDQogCXsgVVNCX0RF VklDRShJTlRFUkJJT01FVFJJQ1NfVklELCBJTlRFUkJJT01FVFJJQ1NfSU9CT0FSRF9QSUQpIH0s DQogCXsgVVNCX0RFVklDRShJTlRFUkJJT01FVFJJQ1NfVklELCBJTlRFUkJJT01FVFJJQ1NfTUlO SV9JT0JPQVJEX1BJRCkgfSwNCiAJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX1NQUk9HX0lJ KSB9LA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npb19pZHMuaCBiL2Ry aXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npb19pZHMuaA0KaW5kZXggMmY4NjAwOC4uNWQyNWUyNiAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npb19pZHMuaA0KKysrIGIvZHJp dmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvX2lkcy5oDQpAQCAtNzcyLDYgKzc3Miw4IEBADQogICov DQogI2RlZmluZSBORVdQT1JUX1ZJRAkJCTB4MTA0RA0KICNkZWZpbmUgTkVXUE9SVF9BR0lMSVNf UElECQkweDMwMDANCisjZGVmaW5lIE5FV1BPUlRfQ09ORVhfQ0NfUElECQkweDMwMDINCisjZGVm aW5lIE5FV1BPUlRfQ09ORVhfQUdQX1BJRAkJMHgzMDA2DQogDQogLyogSW50ZXJiaW9tZXRyaWNz IFVTQiBJL08gQm9hcmQgKi8NCiAvKiBEZXZlbG9wZWQgZm9yIEludGVyYmlvbWV0cmljcyBieSBS dWRvbGYgR3VnbGVyICovDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlvbi5j IGIvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlvbi5jDQppbmRleCA4NTEzZjUxLi41OWM0OTk3IDEw MDY0NA0KLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlvbi5jDQorKysgYi9kcml2ZXJzL3Vz Yi9zZXJpYWwvb3B0aW9uLmMNCkBAIC0xOTYsNiArMTk2LDcgQEAgc3RhdGljIHZvaWQgb3B0aW9u X2luc3RhdF9jYWxsYmFjayhzdHJ1Y3QgdXJiICp1cmIpOw0KIA0KICNkZWZpbmUgREVMTF9QUk9E VUNUXzU4MDBfTUlOSUNBUkRfVlpXCQkweDgxOTUgIC8qIE5vdmF0ZWwgRTM2MiAqLw0KICNkZWZp bmUgREVMTF9QUk9EVUNUXzU4MDBfVjJfTUlOSUNBUkRfVlpXCTB4ODE5NiAgLyogTm92YXRlbCBF MzYyICovDQorI2RlZmluZSBERUxMX1BST0RVQ1RfNTgwNF9NSU5JQ0FSRF9BVFQJCTB4ODE5YiAg LyogTm92YXRlbCBFMzcxICovDQogDQogI2RlZmluZSBLWU9DRVJBX1ZFTkRPUl9JRAkJCTB4MGM4 OA0KICNkZWZpbmUgS1lPQ0VSQV9QUk9EVUNUX0tQQzY1MAkJCTB4MTdkYQ0KQEAgLTM0MSw4ICsz NDIsOCBAQCBzdGF0aWMgdm9pZCBvcHRpb25faW5zdGF0X2NhbGxiYWNrKHN0cnVjdCB1cmIgKnVy Yik7DQogI2RlZmluZSBDSU5URVJJT05fUFJPRFVDVF9FVTNfRQkJCTB4MDA1MQ0KICNkZWZpbmUg Q0lOVEVSSU9OX1BST0RVQ1RfRVUzX1AJCQkweDAwNTINCiAjZGVmaW5lIENJTlRFUklPTl9QUk9E VUNUX1BIOAkJCTB4MDA1Mw0KLSNkZWZpbmUgQ0lOVEVSSU9OX1BST0RVQ1RfQUg2CQkJMHgwMDU1 DQotI2RlZmluZSBDSU5URVJJT05fUFJPRFVDVF9QTFM4CQkJMHgwMDYwDQorI2RlZmluZSBDSU5U RVJJT05fUFJPRFVDVF9BSFhYCQkJMHgwMDU1DQorI2RlZmluZSBDSU5URVJJT05fUFJPRFVDVF9Q TFhYCQkJMHgwMDYwDQogDQogLyogT2xpdmV0dGkgcHJvZHVjdHMgKi8NCiAjZGVmaW5lIE9MSVZF VFRJX1ZFTkRPUl9JRAkJCTB4MGIzYw0KQEAgLTc3MSw2ICs3NzIsNyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IHVzYl9kZXZpY2VfaWQgb3B0aW9uX2lkc1tdID0gew0KIAl7IFVTQl9ERVZJQ0UoREVM TF9WRU5ET1JfSUQsIERFTExfUFJPRFVDVF81NzMwX01JTklDQVJEX1ZaVykgfSwgCS8qIERlbGwg V2lyZWxlc3MgNTczMCBNb2JpbGUgQnJvYWRiYW5kIEVWRE8vSFNQQSBNaW5pLUNhcmQgKi8NCiAJ eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhERUxMX1ZFTkRPUl9JRCwgREVMTF9QUk9E VUNUXzU4MDBfTUlOSUNBUkRfVlpXLCAweGZmLCAweGZmLCAweGZmKSB9LA0KIAl7IFVTQl9ERVZJ Q0VfQU5EX0lOVEVSRkFDRV9JTkZPKERFTExfVkVORE9SX0lELCBERUxMX1BST0RVQ1RfNTgwMF9W Ml9NSU5JQ0FSRF9WWlcsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sDQorCXsgVVNCX0RFVklDRV9BTkRf SU5URVJGQUNFX0lORk8oREVMTF9WRU5ET1JfSUQsIERFTExfUFJPRFVDVF81ODA0X01JTklDQVJE X0FUVCwgMHhmZiwgMHhmZiwgMHhmZikgfSwNCiAJeyBVU0JfREVWSUNFKEFOWURBVEFfVkVORE9S X0lELCBBTllEQVRBX1BST0RVQ1RfQURVX0UxMDBBKSB9LAkvKiBBRFUtRTEwMCwgQURVLTMxMCAq Lw0KIAl7IFVTQl9ERVZJQ0UoQU5ZREFUQV9WRU5ET1JfSUQsIEFOWURBVEFfUFJPRFVDVF9BRFVf NTAwQSkgfSwNCiAJeyBVU0JfREVWSUNFKEFOWURBVEFfVkVORE9SX0lELCBBTllEQVRBX1BST0RV Q1RfQURVXzYyMFVXKSB9LA0KQEAgLTk2Niw2ICs5NjgsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IHVzYl9kZXZpY2VfaWQgb3B0aW9uX2lkc1tdID0gew0KIAkgIC5kcml2ZXJfaW5mbyA9IChrZXJu ZWxfdWxvbmdfdCkmbmV0X2ludGY0X2JsYWNrbGlzdCB9LA0KIAl7IFVTQl9ERVZJQ0VfQU5EX0lO VEVSRkFDRV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4MDMzMCwgMHhmZiwgMHhmZiwgMHhmZikgfSwN CiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDAzOTUs IDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sDQorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8o WlRFX1ZFTkRPUl9JRCwgMHgwNDEyLCAweGZmLCAweGZmLCAweGZmKSwgLyogVGVsZXdlbGwgVFct TFRFIDRHICovDQorCSAgLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZuZXRfaW50ZjRf YmxhY2tsaXN0IH0sDQogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRP Ul9JRCwgMHgwNDE0LCAweGZmLCAweGZmLCAweGZmKSB9LA0KIAl7IFVTQl9ERVZJQ0VfQU5EX0lO VEVSRkFDRV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4MDQxNywgMHhmZiwgMHhmZiwgMHhmZikgfSwN CiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDEwMDgs IDB4ZmYsIDB4ZmYsIDB4ZmYpLA0KQEAgLTEyNjQsOCArMTI2OCw5IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgdXNiX2RldmljZV9pZCBvcHRpb25faWRzW10gPSB7DQogCXsgVVNCX0RFVklDRShDSU5U RVJJT05fVkVORE9SX0lELCBDSU5URVJJT05fUFJPRFVDVF9FVTNfRSkgfSwNCiAJeyBVU0JfREVW SUNFKENJTlRFUklPTl9WRU5ET1JfSUQsIENJTlRFUklPTl9QUk9EVUNUX0VVM19QKSB9LA0KIAl7 IFVTQl9ERVZJQ0UoQ0lOVEVSSU9OX1ZFTkRPUl9JRCwgQ0lOVEVSSU9OX1BST0RVQ1RfUEg4KSB9 LA0KLQl7IFVTQl9ERVZJQ0UoQ0lOVEVSSU9OX1ZFTkRPUl9JRCwgQ0lOVEVSSU9OX1BST0RVQ1Rf QUg2KSB9LA0KLQl7IFVTQl9ERVZJQ0UoQ0lOVEVSSU9OX1ZFTkRPUl9JRCwgQ0lOVEVSSU9OX1BS T0RVQ1RfUExTOCkgfSwNCisJeyBVU0JfREVWSUNFKENJTlRFUklPTl9WRU5ET1JfSUQsIENJTlRF UklPTl9QUk9EVUNUX0FIWFgpIH0sDQorCXsgVVNCX0RFVklDRShDSU5URVJJT05fVkVORE9SX0lE LCBDSU5URVJJT05fUFJPRFVDVF9QTFhYKSwNCisJCS5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxv bmdfdCkmbmV0X2ludGY0X2JsYWNrbGlzdCB9LA0KIAl7IFVTQl9ERVZJQ0UoQ0lOVEVSSU9OX1ZF TkRPUl9JRCwgQ0lOVEVSSU9OX1BST0RVQ1RfSEMyOF9NRE0pIH0sIA0KIAl7IFVTQl9ERVZJQ0Uo Q0lOVEVSSU9OX1ZFTkRPUl9JRCwgQ0lOVEVSSU9OX1BST0RVQ1RfSEMyOF9NRE1ORVQpIH0sDQog CXsgVVNCX0RFVklDRShTSUVNRU5TX1ZFTkRPUl9JRCwgQ0lOVEVSSU9OX1BST0RVQ1RfSEMyNV9N RE0pIH0sDQpkaWZmIC0tZ2l0IGEvZnMvYXV0b2ZzNC9leHBpcmUuYyBiL2ZzL2F1dG9mczQvZXhw aXJlLmMNCmluZGV4IDQ1MGY1MjkuLjJjNjlkMTIgMTAwNjQ0DQotLS0gYS9mcy9hdXRvZnM0L2V4 cGlyZS5jDQorKysgYi9mcy9hdXRvZnM0L2V4cGlyZS5jDQpAQCAtNjEsMTUgKzYxLDYgQEAgc3Rh dGljIGludCBhdXRvZnM0X21vdW50X2J1c3koc3RydWN0IHZmc21vdW50ICptbnQsIHN0cnVjdCBk ZW50cnkgKmRlbnRyeSkNCiAJCS8qIFRoaXMgaXMgYW4gYXV0b2ZzIHN1Ym1vdW50LCB3ZSBjYW4n dCBleHBpcmUgaXQgKi8NCiAJCWlmIChhdXRvZnNfdHlwZV9pbmRpcmVjdChzYmktPnR5cGUpKQ0K IAkJCWdvdG8gZG9uZTsNCi0NCi0JCS8qDQotCQkgKiBPdGhlcndpc2UgaXQncyBhbiBvZmZzZXQg bW91bnQgYW5kIHdlIG5lZWQgdG8gY2hlY2sNCi0JCSAqIGlmIHdlIGNhbiB1bW91bnQgaXRzIG1v dW50LCBpZiB0aGVyZSBpcyBvbmUuDQotCQkgKi8NCi0JCWlmICghZF9tb3VudHBvaW50KHBhdGgu ZGVudHJ5KSkgew0KLQkJCXN0YXR1cyA9IDA7DQotCQkJZ290byBkb25lOw0KLQkJfQ0KIAl9DQog DQogCS8qIFVwZGF0ZSB0aGUgZXhwaXJ5IGNvdW50ZXIgaWYgZnMgaXMgYnVzeSAqLw0KZGlmZiAt LWdpdCBhL2ZzL2J0cmZzL2lvY3RsLmMgYi9mcy9idHJmcy9pb2N0bC5jDQppbmRleCBjMDRmMDJj Li42MThhZTZmIDEwMDY0NA0KLS0tIGEvZnMvYnRyZnMvaW9jdGwuYw0KKysrIGIvZnMvYnRyZnMv aW9jdGwuYw0KQEAgLTE1NzEsNyArMTU3MSwxMSBAQCBzdGF0aWMgbm9pbmxpbmUgaW50IGNvcHlf dG9fc2soc3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3QsDQogCQlpdGVtX29mZiA9IGJ0cmZzX2l0ZW1f cHRyX29mZnNldChsZWFmLCBpKTsNCiAJCWl0ZW1fbGVuID0gYnRyZnNfaXRlbV9zaXplX25yKGxl YWYsIGkpOw0KIA0KLQkJaWYgKGl0ZW1fbGVuID4gQlRSRlNfU0VBUkNIX0FSR1NfQlVGU0laRSkN CisJCWJ0cmZzX2l0ZW1fa2V5X3RvX2NwdShsZWFmLCBrZXksIGkpOw0KKwkJaWYgKCFrZXlfaW5f c2soa2V5LCBzaykpDQorCQkJY29udGludWU7DQorDQorCQlpZiAoc2l6ZW9mKHNoKSArIGl0ZW1f bGVuID4gQlRSRlNfU0VBUkNIX0FSR1NfQlVGU0laRSkNCiAJCQlpdGVtX2xlbiA9IDA7DQogDQog CQlpZiAoc2l6ZW9mKHNoKSArIGl0ZW1fbGVuICsgKnNrX29mZnNldCA+DQpAQCAtMTU4MCwxMCAr MTU4NCw2IEBAIHN0YXRpYyBub2lubGluZSBpbnQgY29weV90b19zayhzdHJ1Y3QgYnRyZnNfcm9v dCAqcm9vdCwNCiAJCQlnb3RvIG92ZXJmbG93Ow0KIAkJfQ0KIA0KLQkJYnRyZnNfaXRlbV9rZXlf dG9fY3B1KGxlYWYsIGtleSwgaSk7DQotCQlpZiAoIWtleV9pbl9zayhrZXksIHNrKSkNCi0JCQlj b250aW51ZTsNCi0NCiAJCXNoLm9iamVjdGlkID0ga2V5LT5vYmplY3RpZDsNCiAJCXNoLm9mZnNl dCA9IGtleS0+b2Zmc2V0Ow0KIAkJc2gudHlwZSA9IGtleS0+dHlwZTsNCmRpZmYgLS1naXQgYS9m cy9jaWZzL2lub2RlLmMgYi9mcy9jaWZzL2lub2RlLmMNCmluZGV4IGU4NTFkNWIuLjIwNDMxYjQg MTAwNjQ0DQotLS0gYS9mcy9jaWZzL2lub2RlLmMNCisrKyBiL2ZzL2NpZnMvaW5vZGUuYw0KQEAg LTE3Myw3ICsxNzMsOCBAQCBjaWZzX2ZhdHRyX3RvX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUs IHN0cnVjdCBjaWZzX2ZhdHRyICpmYXR0cikNCiANCiAJaWYgKGZhdHRyLT5jZl9mbGFncyAmIENJ RlNfRkFUVFJfREZTX1JFRkVSUkFMKQ0KIAkJaW5vZGUtPmlfZmxhZ3MgfD0gU19BVVRPTU9VTlQ7 DQotCWNpZnNfc2V0X29wcyhpbm9kZSk7DQorCWlmIChpbm9kZS0+aV9zdGF0ZSAmIElfTkVXKQ0K KwkJY2lmc19zZXRfb3BzKGlub2RlKTsNCiB9DQogDQogdm9pZA0KZGlmZiAtLWdpdCBhL2ZzL2V4 dDQvbWJhbGxvYy5jIGIvZnMvZXh0NC9tYmFsbG9jLmMNCmluZGV4IDdiMTg1NjMuLjkyNDMxMDMg MTAwNjQ0DQotLS0gYS9mcy9leHQ0L21iYWxsb2MuYw0KKysrIGIvZnMvZXh0NC9tYmFsbG9jLmMN CkBAIC0yMDI3LDcgKzIwMjcsMTEgQEAgcmVwZWF0Og0KIAkJZ3JvdXAgPSBhYy0+YWNfZ19leC5m ZV9ncm91cDsNCiANCiAJCWZvciAoaSA9IDA7IGkgPCBuZ3JvdXBzOyBncm91cCsrLCBpKyspIHsN Ci0JCQlpZiAoZ3JvdXAgPT0gbmdyb3VwcykNCisJCQkvKg0KKwkJCSAqIEFydGlmaWNpYWxseSBy ZXN0cmljdGVkIG5ncm91cHMgZm9yIG5vbi1leHRlbnQNCisJCQkgKiBmaWxlcyBtYWtlcyBncm91 cCA+IG5ncm91cHMgcG9zc2libGUgb24gZmlyc3QgbG9vcC4NCisJCQkgKi8NCisJCQlpZiAoZ3Jv dXAgPj0gbmdyb3VwcykNCiAJCQkJZ3JvdXAgPSAwOw0KIA0KIAkJCS8qIFRoaXMgbm93IGNoZWNr cyB3aXRob3V0IG5lZWRpbmcgdGhlIGJ1ZGR5IHBhZ2UgKi8NCmRpZmYgLS1naXQgYS9mcy9mYXQv aW5vZGUuYyBiL2ZzL2ZhdC9pbm9kZS5jDQppbmRleCA4MDhjYWM3Li5mYzMzY2ExIDEwMDY0NA0K LS0tIGEvZnMvZmF0L2lub2RlLmMNCisrKyBiL2ZzL2ZhdC9pbm9kZS5jDQpAQCAtMTIzOCw2ICsx MjM4LDE5IEBAIHN0YXRpYyBpbnQgZmF0X3JlYWRfcm9vdChzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0K IAlyZXR1cm4gMDsNCiB9DQogDQorc3RhdGljIHVuc2lnbmVkIGxvbmcgY2FsY19mYXRfY2x1c3Rl cnMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikNCit7DQorCXN0cnVjdCBtc2Rvc19zYl9pbmZvICpz YmkgPSBNU0RPU19TQihzYik7DQorDQorCS8qIERpdmlkZSBmaXJzdCB0byBhdm9pZCBvdmVyZmxv dyAqLw0KKwlpZiAoc2JpLT5mYXRfYml0cyAhPSAxMikgew0KKwkJdW5zaWduZWQgbG9uZyBlbnRf cGVyX3NlYyA9IHNiLT5zX2Jsb2Nrc2l6ZSAqIDggLyBzYmktPmZhdF9iaXRzOw0KKwkJcmV0dXJu IGVudF9wZXJfc2VjICogc2JpLT5mYXRfbGVuZ3RoOw0KKwl9DQorDQorCXJldHVybiBzYmktPmZh dF9sZW5ndGggKiBzYi0+c19ibG9ja3NpemUgKiA4IC8gc2JpLT5mYXRfYml0czsNCit9DQorDQog LyoNCiAgKiBSZWFkIHRoZSBzdXBlciBibG9jayBvZiBhbiBNUy1ET1MgRlMuDQogICovDQpAQCAt MTQzNCw3ICsxNDQ3LDcgQEAgaW50IGZhdF9maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAq c2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQsIGludCBpc3ZmYXQsDQogCQlzYmktPmZhdF9iaXRz ID0gKHRvdGFsX2NsdXN0ZXJzID4gTUFYX0ZBVDEyKSA/IDE2IDogMTI7DQogDQogCS8qIGNoZWNr IHRoYXQgRkFUIHRhYmxlIGRvZXMgbm90IG92ZXJmbG93ICovDQotCWZhdF9jbHVzdGVycyA9IHNi aS0+ZmF0X2xlbmd0aCAqIHNiLT5zX2Jsb2Nrc2l6ZSAqIDggLyBzYmktPmZhdF9iaXRzOw0KKwlm YXRfY2x1c3RlcnMgPSBjYWxjX2ZhdF9jbHVzdGVycyhzYik7DQogCXRvdGFsX2NsdXN0ZXJzID0g bWluKHRvdGFsX2NsdXN0ZXJzLCBmYXRfY2x1c3RlcnMgLSBGQVRfU1RBUlRfRU5UKTsNCiAJaWYg KHRvdGFsX2NsdXN0ZXJzID4gTUFYX0ZBVChzYikpIHsNCiAJCWlmICghc2lsZW50KQ0KZGlmZiAt LWdpdCBhL2ZzL25mc2QvbmZzNHByb2MuYyBiL2ZzL25mc2QvbmZzNHByb2MuYw0KaW5kZXggMDg5 MjFiOC4uZTA2NTQ5NyAxMDA2NDQNCi0tLSBhL2ZzL25mc2QvbmZzNHByb2MuYw0KKysrIGIvZnMv bmZzZC9uZnM0cHJvYy5jDQpAQCAtMjY3LDYgKzI2Nyw3IEBAIHN0YXRpYyBfX2JlMzINCiBkb19v cGVuX2ZoYW5kbGUoc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IHN2Y19maCAqY3VycmVu dF9maCwgc3RydWN0IG5mc2Q0X29wZW4gKm9wZW4pDQogew0KIAlfX2JlMzIgc3RhdHVzOw0KKwlp bnQgYWNjbW9kZSA9IDA7DQogDQogCS8qIE9ubHkgcmVjbGFpbXMgZnJvbSBwcmV2aW91c2x5IGNv bmZpcm1lZCBjbGllbnRzIGFyZSB2YWxpZCAqLw0KIAlpZiAoKHN0YXR1cyA9IG5mczRfY2hlY2tf b3Blbl9yZWNsYWltKCZvcGVuLT5vcF9jbGllbnRpZCkpKQ0KQEAgLTI4NCw5ICsyODUsMTkgQEAg ZG9fb3Blbl9maGFuZGxlKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZmggKmN1 cnJlbnRfZmgsIHN0cnVjdCBuZnNkNF8NCiANCiAJb3Blbi0+b3BfdHJ1bmNhdGUgPSAob3Blbi0+ b3BfaWF0dHIuaWFfdmFsaWQgJiBBVFRSX1NJWkUpICYmDQogCQkob3Blbi0+b3BfaWF0dHIuaWFf c2l6ZSA9PSAwKTsNCisJLyoNCisJICogSW4gdGhlIGRlbGVnYXRpb24gY2FzZSwgdGhlIGNsaWVu dCBpcyB0ZWxsaW5nIHVzIGFib3V0IGFuDQorCSAqIG9wZW4gdGhhdCBpdCAqYWxyZWFkeSogcGVy Zm9ybWVkIGxvY2FsbHksIHNvbWUgdGltZSBhZ28uICBXZQ0KKwkgKiBzaG91bGQgbGV0IGl0IHN1 Y2NlZWQgbm93IGlmIHBvc3NpYmxlLg0KKwkgKg0KKwkgKiBJbiB0aGUgY2FzZSBvZiBhIENMQUlN X0ZIIG9wZW4sIG9uIHRoZSBvdGhlciBoYW5kLCB0aGUgY2xpZW50DQorCSAqIG1heSBiZSBjb3Vu dGluZyBvbiB1cyB0byBlbmZvcmNlIHBlcm1pc3Npb25zICh0aGUgTGludXggNC4xDQorCSAqIGNs aWVudCB1c2VzIHRoaXMgZm9yIG5vcm1hbCBvcGVucywgZm9yIGV4YW1wbGUpLg0KKwkgKi8NCisJ aWYgKG9wZW4tPm9wX2NsYWltX3R5cGUgPT0gTkZTNF9PUEVOX0NMQUlNX0RFTEVHX0NVUl9GSCkN CisJCWFjY21vZGUgPSBORlNEX01BWV9PV05FUl9PVkVSUklERTsNCiANCi0Jc3RhdHVzID0gZG9f b3Blbl9wZXJtaXNzaW9uKHJxc3RwLCBjdXJyZW50X2ZoLCBvcGVuLA0KLQkJCQkgICAgTkZTRF9N QVlfT1dORVJfT1ZFUlJJREUpOw0KKwlzdGF0dXMgPSBkb19vcGVuX3Blcm1pc3Npb24ocnFzdHAs IGN1cnJlbnRfZmgsIG9wZW4sIGFjY21vZGUpOw0KIA0KIAlyZXR1cm4gc3RhdHVzOw0KIH0NCmRp ZmYgLS1naXQgYS9mcy9uaWxmczIvaW5vZGUuYyBiL2ZzL25pbGZzMi9pbm9kZS5jDQppbmRleCBi NTBmZmI3Li5lZGViMjM5IDEwMDY0NA0KLS0tIGEvZnMvbmlsZnMyL2lub2RlLmMNCisrKyBiL2Zz L25pbGZzMi9pbm9kZS5jDQpAQCAtMTk1LDEzICsxOTUsMzIgQEAgc3RhdGljIGludCBuaWxmc193 cml0ZXBhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2Jj KQ0KIA0KIHN0YXRpYyBpbnQgbmlsZnNfc2V0X3BhZ2VfZGlydHkoc3RydWN0IHBhZ2UgKnBhZ2Up DQogew0KLQlpbnQgcmV0ID0gX19zZXRfcGFnZV9kaXJ0eV9idWZmZXJzKHBhZ2UpOw0KKwlpbnQg cmV0ID0gX19zZXRfcGFnZV9kaXJ0eV9ub2J1ZmZlcnMocGFnZSk7DQogDQotCWlmIChyZXQpIHsN CisJaWYgKHBhZ2VfaGFzX2J1ZmZlcnMocGFnZSkpIHsNCiAJCXN0cnVjdCBpbm9kZSAqaW5vZGUg PSBwYWdlLT5tYXBwaW5nLT5ob3N0Ow0KLQkJdW5zaWduZWQgbnJfZGlydHkgPSAxIDw8IChQQUdF X1NISUZUIC0gaW5vZGUtPmlfYmxrYml0cyk7DQorCQl1bnNpZ25lZCBucl9kaXJ0eSA9IDA7DQor CQlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLCAqaGVhZDsNCiANCi0JCW5pbGZzX3NldF9maWxlX2Rp cnR5KGlub2RlLCBucl9kaXJ0eSk7DQorCQkvKg0KKwkJICogVGhpcyBwYWdlIGlzIGxvY2tlZCBi eSBjYWxsZXJzLCBhbmQgbm8gb3RoZXIgdGhyZWFkDQorCQkgKiBjb25jdXJyZW50bHkgbWFya3Mg aXRzIGJ1ZmZlcnMgZGlydHkgc2luY2UgdGhleSBhcmUNCisJCSAqIG9ubHkgZGlydGllZCB0aHJv dWdoIHJvdXRpbmVzIGluIGZzL2J1ZmZlci5jIGluDQorCQkgKiB3aGljaCBjYWxsIHNpdGVzIG9m IG1hcmtfYnVmZmVyX2RpcnR5IGFyZSBwcm90ZWN0ZWQNCisJCSAqIGJ5IHBhZ2UgbG9jay4NCisJ CSAqLw0KKwkJYmggPSBoZWFkID0gcGFnZV9idWZmZXJzKHBhZ2UpOw0KKwkJZG8gew0KKwkJCS8q IERvIG5vdCBtYXJrIGhvbGUgYmxvY2tzIGRpcnR5ICovDQorCQkJaWYgKGJ1ZmZlcl9kaXJ0eShi aCkgfHwgIWJ1ZmZlcl9tYXBwZWQoYmgpKQ0KKwkJCQljb250aW51ZTsNCisNCisJCQlzZXRfYnVm ZmVyX2RpcnR5KGJoKTsNCisJCQlucl9kaXJ0eSsrOw0KKwkJfSB3aGlsZSAoYmggPSBiaC0+Yl90 aGlzX3BhZ2UsIGJoICE9IGhlYWQpOw0KKw0KKwkJaWYgKG5yX2RpcnR5KQ0KKwkJCW5pbGZzX3Nl dF9maWxlX2RpcnR5KGlub2RlLCBucl9kaXJ0eSk7DQogCX0NCiAJcmV0dXJuIHJldDsNCiB9DQpk aWZmIC0tZ2l0IGEvZnMvb2NmczIvZXh0ZW50X21hcC5jIGIvZnMvb2NmczIvZXh0ZW50X21hcC5j DQppbmRleCAyZjViOTJlLi43ZWIxYzBjIDEwMDY0NA0KLS0tIGEvZnMvb2NmczIvZXh0ZW50X21h cC5jDQorKysgYi9mcy9vY2ZzMi9leHRlbnRfbWFwLmMNCkBAIC03OTEsNyArNzkxLDcgQEAgaW50 IG9jZnMyX2ZpZW1hcChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmllbWFwX2V4dGVudF9p bmZvICpmaWVpbmZvLA0KIAkJCQkJCSAmaG9sZV9zaXplLCAmcmVjLCAmaXNfbGFzdCk7DQogCQlp ZiAocmV0KSB7DQogCQkJbWxvZ19lcnJubyhyZXQpOw0KLQkJCWdvdG8gb3V0Ow0KKwkJCWdvdG8g b3V0X3VubG9jazsNCiAJCX0NCiANCiAJCWlmIChyZWMuZV9ibGtubyA9PSAwVUxMKSB7DQpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9saW51eC9lZmkuaCBiL2luY2x1ZGUvbGludXgvZWZpLmgNCmluZGV4 IDg0NjlmM2YuLjg4Yzk1M2QgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L2VmaS5oDQorKysg Yi9pbmNsdWRlL2xpbnV4L2VmaS5oDQpAQCAtMjA0LDYgKzIwNCw3IEBAIHR5cGVkZWYgZWZpX3N0 YXR1c190IGVmaV9xdWVyeV9jYXBzdWxlX2NhcHNfdChlZmlfY2Fwc3VsZV9oZWFkZXJfdCAqKmNh cHN1bGVzLA0KIAkJCQkJICAgICAgdW5zaWduZWQgbG9uZyBjb3VudCwNCiAJCQkJCSAgICAgIHU2 NCAqbWF4X3NpemUsDQogCQkJCQkgICAgICBpbnQgKnJlc2V0X3R5cGUpOw0KK3R5cGVkZWYgZWZp X3N0YXR1c190IGVmaV9xdWVyeV92YXJpYWJsZV9zdG9yZV90KHUzMiBhdHRyaWJ1dGVzLCB1bnNp Z25lZCBsb25nIHNpemUpOw0KIA0KIC8qDQogICogIEVGSSBDb25maWd1cmF0aW9uIFRhYmxlIGFu ZCBHVUlEIGRlZmluaXRpb25zDQpAQCAtMzMxLDYgKzMzMiwxNCBAQCBleHRlcm4gdm9pZCBlZmlf bWFwX3BhbF9jb2RlICh2b2lkKTsNCiBleHRlcm4gdm9pZCBlZmlfbWVtbWFwX3dhbGsgKGVmaV9m cmVlbWVtX2NhbGxiYWNrX3QgY2FsbGJhY2ssIHZvaWQgKmFyZyk7DQogZXh0ZXJuIHZvaWQgZWZp X2dldHRpbWVvZmRheSAoc3RydWN0IHRpbWVzcGVjICp0cyk7DQogZXh0ZXJuIHZvaWQgZWZpX2Vu dGVyX3ZpcnR1YWxfbW9kZSAodm9pZCk7CS8qIHN3aXRjaCBFRkkgdG8gdmlydHVhbCBtb2RlLCBp ZiBwb3NzaWJsZSAqLw0KKyNpZmRlZiBDT05GSUdfWDg2DQorZXh0ZXJuIGVmaV9zdGF0dXNfdCBl ZmlfcXVlcnlfdmFyaWFibGVfc3RvcmUodTMyIGF0dHJpYnV0ZXMsIHVuc2lnbmVkIGxvbmcgc2l6 ZSk7DQorI2Vsc2UNCitzdGF0aWMgaW5saW5lIGVmaV9zdGF0dXNfdCBlZmlfcXVlcnlfdmFyaWFi bGVfc3RvcmUodTMyIGF0dHJpYnV0ZXMsIHVuc2lnbmVkIGxvbmcgc2l6ZSkNCit7DQorCXJldHVy biBFRklfU1VDQ0VTUzsNCit9DQorI2VuZGlmDQogZXh0ZXJuIHU2NCBlZmlfZ2V0X2lvYmFzZSAo dm9pZCk7DQogZXh0ZXJuIHUzMiBlZmlfbWVtX3R5cGUgKHVuc2lnbmVkIGxvbmcgcGh5c19hZGRy KTsNCiBleHRlcm4gdTY0IGVmaV9tZW1fYXR0cmlidXRlcyAodW5zaWduZWQgbG9uZyBwaHlzX2Fk ZHIpOw0KQEAgLTQ3NSw3ICs0ODQsNyBAQCBzdHJ1Y3QgZWZpdmFyX29wZXJhdGlvbnMgew0KIAll ZmlfZ2V0X3ZhcmlhYmxlX3QgKmdldF92YXJpYWJsZTsNCiAJZWZpX2dldF9uZXh0X3ZhcmlhYmxl X3QgKmdldF9uZXh0X3ZhcmlhYmxlOw0KIAllZmlfc2V0X3ZhcmlhYmxlX3QgKnNldF92YXJpYWJs ZTsNCi0JZWZpX3F1ZXJ5X3ZhcmlhYmxlX2luZm9fdCAqcXVlcnlfdmFyaWFibGVfaW5mbzsNCisJ ZWZpX3F1ZXJ5X3ZhcmlhYmxlX3N0b3JlX3QgKnF1ZXJ5X3ZhcmlhYmxlX3N0b3JlOw0KIH07DQog DQogc3RydWN0IGVmaXZhcnMgew0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaWZfY2FibGVt b2RlbS5oIGIvaW5jbHVkZS9saW51eC9pZl9jYWJsZW1vZGVtLmgNCmluZGV4IDljYTEwMDcuLmVl NmIzYzQgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L2lmX2NhYmxlbW9kZW0uaA0KKysrIGIv aW5jbHVkZS9saW51eC9pZl9jYWJsZW1vZGVtLmgNCkBAIC0xMiwxMSArMTIsMTEgQEANCiAgKi8N CiANCiAvKiBzb21lIHVzZWZ1bCBkZWZpbmVzIGZvciBzYjEwMDAuYyBlIGNtY29uZmlnLmMgLSBm diAqLw0KLSNkZWZpbmUgU0lPQ0dDTVNUQVRTCQlTSU9DREVWUFJJVkFURSswCS8qIGdldCBjYWJs ZSBtb2RlbSBzdGF0cyAqLw0KLSNkZWZpbmUgU0lPQ0dDTUZJUk1XQVJFCQlTSU9DREVWUFJJVkFU RSsxCS8qIGdldCBjbSBmaXJtd2FyZSB2ZXJzaW9uICovDQotI2RlZmluZSBTSU9DR0NNRlJFUVVF TkNZCVNJT0NERVZQUklWQVRFKzIJLyogZ2V0IGNhYmxlIG1vZGVtIGZyZXF1ZW5jeSAqLw0KLSNk ZWZpbmUgU0lPQ1NDTUZSRVFVRU5DWQlTSU9DREVWUFJJVkFURSszCS8qIHNldCBjYWJsZSBtb2Rl bSBmcmVxdWVuY3kgKi8NCi0jZGVmaW5lIFNJT0NHQ01QSURTCQkJU0lPQ0RFVlBSSVZBVEUrNAkv KiBnZXQgY2FibGUgbW9kZW0gUElEcyAqLw0KLSNkZWZpbmUgU0lPQ1NDTVBJRFMJCQlTSU9DREVW UFJJVkFURSs1CS8qIHNldCBjYWJsZSBtb2RlbSBQSURzICovDQorI2RlZmluZSBTSU9DR0NNU1RB VFMJCShTSU9DREVWUFJJVkFURSswKQkvKiBnZXQgY2FibGUgbW9kZW0gc3RhdHMgKi8NCisjZGVm aW5lIFNJT0NHQ01GSVJNV0FSRQkJKFNJT0NERVZQUklWQVRFKzEpCS8qIGdldCBjbSBmaXJtd2Fy ZSB2ZXJzaW9uICovDQorI2RlZmluZSBTSU9DR0NNRlJFUVVFTkNZCShTSU9DREVWUFJJVkFURSsy KQkvKiBnZXQgY2FibGUgbW9kZW0gZnJlcXVlbmN5ICovDQorI2RlZmluZSBTSU9DU0NNRlJFUVVF TkNZCShTSU9DREVWUFJJVkFURSszKQkvKiBzZXQgY2FibGUgbW9kZW0gZnJlcXVlbmN5ICovDQor I2RlZmluZSBTSU9DR0NNUElEUwkJCShTSU9DREVWUFJJVkFURSs0KQkvKiBnZXQgY2FibGUgbW9k ZW0gUElEcyAqLw0KKyNkZWZpbmUgU0lPQ1NDTVBJRFMJCQkoU0lPQ0RFVlBSSVZBVEUrNSkJLyog c2V0IGNhYmxlIG1vZGVtIFBJRHMgKi8NCiANCiAjZW5kaWYNCmRpZmYgLS1naXQgYS9pbmNsdWRl L2xpbnV4L3JjdWxpc3QuaCBiL2luY2x1ZGUvbGludXgvcmN1bGlzdC5oDQppbmRleCBkMDc5Mjkw Li42Zjk1ZTI0IDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9yY3VsaXN0LmgNCisrKyBiL2lu Y2x1ZGUvbGludXgvcmN1bGlzdC5oDQpAQCAtMjQyLDYgKzI0MiwyMyBAQCBzdGF0aWMgaW5saW5l IHZvaWQgbGlzdF9zcGxpY2VfaW5pdF9yY3Uoc3RydWN0IGxpc3RfaGVhZCAqbGlzdCwNCiAJbGlz dF9lbnRyeV9yY3UoKHB0ciktPm5leHQsIHR5cGUsIG1lbWJlcikNCiANCiAvKioNCisgKiBsaXN0 X2ZpcnN0X29yX251bGxfcmN1IC0gZ2V0IHRoZSBmaXJzdCBlbGVtZW50IGZyb20gYSBsaXN0DQor ICogQHB0cjogICAgICAgIHRoZSBsaXN0IGhlYWQgdG8gdGFrZSB0aGUgZWxlbWVudCBmcm9tLg0K KyAqIEB0eXBlOiAgICAgICB0aGUgdHlwZSBvZiB0aGUgc3RydWN0IHRoaXMgaXMgZW1iZWRkZWQg aW4uDQorICogQG1lbWJlcjogICAgIHRoZSBuYW1lIG9mIHRoZSBsaXN0X3N0cnVjdCB3aXRoaW4g dGhlIHN0cnVjdC4NCisgKg0KKyAqIE5vdGUgdGhhdCBpZiB0aGUgbGlzdCBpcyBlbXB0eSwgaXQg cmV0dXJucyBOVUxMLg0KKyAqDQorICogVGhpcyBwcmltaXRpdmUgbWF5IHNhZmVseSBydW4gY29u Y3VycmVudGx5IHdpdGggdGhlIF9yY3UgbGlzdC1tdXRhdGlvbg0KKyAqIHByaW1pdGl2ZXMgc3Vj aCBhcyBsaXN0X2FkZF9yY3UoKSBhcyBsb25nIGFzIGl0J3MgZ3VhcmRlZCBieSByY3VfcmVhZF9s b2NrKCkuDQorICovDQorI2RlZmluZSBsaXN0X2ZpcnN0X29yX251bGxfcmN1KHB0ciwgdHlwZSwg bWVtYmVyKSBcDQorCSh7c3RydWN0IGxpc3RfaGVhZCAqX19wdHIgPSAocHRyKTsgXA0KKwkgIHN0 cnVjdCBsaXN0X2hlYWQgX19yY3UgKl9fbmV4dCA9IGxpc3RfbmV4dF9yY3UoX19wdHIpOyBcDQor CSAgbGlrZWx5KF9fcHRyICE9IF9fbmV4dCkgPyBjb250YWluZXJfb2YoX19uZXh0LCB0eXBlLCBt ZW1iZXIpIDogTlVMTDsgXA0KKwl9KQ0KKw0KKy8qKg0KICAqIGxpc3RfZm9yX2VhY2hfZW50cnlf cmN1CS0JaXRlcmF0ZSBvdmVyIHJjdSBsaXN0IG9mIGdpdmVuIHR5cGUNCiAgKiBAcG9zOgl0aGUg dHlwZSAqIHRvIHVzZSBhcyBhIGxvb3AgY3Vyc29yLg0KICAqIEBoZWFkOgl0aGUgaGVhZCBmb3Ig eW91ciBsaXN0Lg0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdmlydGlvX2NvbnNvbGUuaCBi L2luY2x1ZGUvbGludXgvdmlydGlvX2NvbnNvbGUuaA0KaW5kZXggYmRmNGIwMC4uODJlMTJhZCAx MDA2NDQNCi0tLSBhL2luY2x1ZGUvbGludXgvdmlydGlvX2NvbnNvbGUuaA0KKysrIGIvaW5jbHVk ZS9saW51eC92aXJ0aW9fY29uc29sZS5oDQpAQCAtMzksNyArMzksNyBAQA0KICNkZWZpbmUgVklS VElPX0NPTlNPTEVfRl9TSVpFCTAJLyogRG9lcyBob3N0IHByb3ZpZGUgY29uc29sZSBzaXplPyAq Lw0KICNkZWZpbmUgVklSVElPX0NPTlNPTEVfRl9NVUxUSVBPUlQgMQkvKiBEb2VzIGhvc3QgcHJv dmlkZSBtdWx0aXBsZSBwb3J0cz8gKi8NCiANCi0jZGVmaW5lIFZJUlRJT19DT05TT0xFX0JBRF9J RAkJKH4odTMyKTApDQorI2RlZmluZSBWSVJUSU9fQ09OU09MRV9CQURfSUQJCSh+KF9fdTMyKTAp DQogDQogc3RydWN0IHZpcnRpb19jb25zb2xlX2NvbmZpZyB7DQogCS8qIGNvbHVtcyBvZiB0aGUg c2NyZWVucyAqLw0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvd2FpdC5oIGIvaW5jbHVkZS9s aW51eC93YWl0LmgNCmluZGV4IDNlZmM5ZjMuLmJlYTdhZDUgMTAwNjQ0DQotLS0gYS9pbmNsdWRl L2xpbnV4L3dhaXQuaA0KKysrIGIvaW5jbHVkZS9saW51eC93YWl0LmgNCkBAIC0yMzMsNiArMjMz LDggQEAgZG8gewkJCQkJCQkJCVwNCiAJCWlmICghcmV0KQkJCQkJCVwNCiAJCQlicmVhazsJCQkJ CQlcDQogCX0JCQkJCQkJCVwNCisJaWYgKCFyZXQgJiYgKGNvbmRpdGlvbikpCQkJCQlcDQorCQly ZXQgPSAxOwkJCQkJCVwNCiAJZmluaXNoX3dhaXQoJndxLCAmX193YWl0KTsJCQkJCVwNCiB9IHdo aWxlICgwKQ0KIA0KQEAgLTI0OSw4ICsyNTEsOSBAQCBkbyB7CQkJCQkJCQkJXA0KICAqIHdha2Vf dXAoKSBoYXMgdG8gYmUgY2FsbGVkIGFmdGVyIGNoYW5naW5nIGFueSB2YXJpYWJsZSB0aGF0IGNv dWxkDQogICogY2hhbmdlIHRoZSByZXN1bHQgb2YgdGhlIHdhaXQgY29uZGl0aW9uLg0KICAqDQot ICogVGhlIGZ1bmN0aW9uIHJldHVybnMgMCBpZiB0aGUgQHRpbWVvdXQgZWxhcHNlZCwgYW5kIHRo ZSByZW1haW5pbmcNCi0gKiBqaWZmaWVzIGlmIHRoZSBjb25kaXRpb24gZXZhbHVhdGVkIHRvIHRy dWUgYmVmb3JlIHRoZSB0aW1lb3V0IGVsYXBzZWQuDQorICogVGhlIGZ1bmN0aW9uIHJldHVybnMg MCBpZiB0aGUgQHRpbWVvdXQgZWxhcHNlZCwgb3IgdGhlIHJlbWFpbmluZw0KKyAqIGppZmZpZXMg KGF0IGxlYXN0IDEpIGlmIHRoZSBAY29uZGl0aW9uIGV2YWx1YXRlZCB0byAldHJ1ZSBiZWZvcmUN CisgKiB0aGUgQHRpbWVvdXQgZWxhcHNlZC4NCiAgKi8NCiAjZGVmaW5lIHdhaXRfZXZlbnRfdGlt ZW91dCh3cSwgY29uZGl0aW9uLCB0aW1lb3V0KQkJCVwNCiAoewkJCQkJCQkJCVwNCkBAIC0zMTgs NiArMzIxLDggQEAgZG8gewkJCQkJCQkJCVwNCiAJCXJldCA9IC1FUkVTVEFSVFNZUzsJCQkJCVwN CiAJCWJyZWFrOwkJCQkJCQlcDQogCX0JCQkJCQkJCVwNCisJaWYgKCFyZXQgJiYgKGNvbmRpdGlv bikpCQkJCQlcDQorCQlyZXQgPSAxOwkJCQkJCVwNCiAJZmluaXNoX3dhaXQoJndxLCAmX193YWl0 KTsJCQkJCVwNCiB9IHdoaWxlICgwKQ0KIA0KQEAgLTMzNCw5ICszMzksMTAgQEAgZG8gewkJCQkJ CQkJCVwNCiAgKiB3YWtlX3VwKCkgaGFzIHRvIGJlIGNhbGxlZCBhZnRlciBjaGFuZ2luZyBhbnkg dmFyaWFibGUgdGhhdCBjb3VsZA0KICAqIGNoYW5nZSB0aGUgcmVzdWx0IG9mIHRoZSB3YWl0IGNv bmRpdGlvbi4NCiAgKg0KLSAqIFRoZSBmdW5jdGlvbiByZXR1cm5zIDAgaWYgdGhlIEB0aW1lb3V0 IGVsYXBzZWQsIC1FUkVTVEFSVFNZUyBpZiBpdA0KLSAqIHdhcyBpbnRlcnJ1cHRlZCBieSBhIHNp Z25hbCwgYW5kIHRoZSByZW1haW5pbmcgamlmZmllcyBvdGhlcndpc2UNCi0gKiBpZiB0aGUgY29u ZGl0aW9uIGV2YWx1YXRlZCB0byB0cnVlIGJlZm9yZSB0aGUgdGltZW91dCBlbGFwc2VkLg0KKyAq IFJldHVybnM6DQorICogMCBpZiB0aGUgQHRpbWVvdXQgZWxhcHNlZCwgLSVFUkVTVEFSVFNZUyBp ZiBpdCB3YXMgaW50ZXJydXB0ZWQgYnkNCisgKiBhIHNpZ25hbCwgb3IgdGhlIHJlbWFpbmluZyBq aWZmaWVzIChhdCBsZWFzdCAxKSBpZiB0aGUgQGNvbmRpdGlvbg0KKyAqIGV2YWx1YXRlZCB0byAl dHJ1ZSBiZWZvcmUgdGhlIEB0aW1lb3V0IGVsYXBzZWQuDQogICovDQogI2RlZmluZSB3YWl0X2V2 ZW50X2ludGVycnVwdGlibGVfdGltZW91dCh3cSwgY29uZGl0aW9uLCB0aW1lb3V0KQlcDQogKHsJ CQkJCQkJCQlcDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvc29jay5oIGIvaW5jbHVkZS9uZXQv c29jay5oDQppbmRleCBkZGY1MjNjLi5lNjQ1NGI2IDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9uZXQv c29jay5oDQorKysgYi9pbmNsdWRlL25ldC9zb2NrLmgNCkBAIC03MzQsNiArNzM0LDE4IEBAIHN0 cnVjdCBpbmV0X2hhc2hpbmZvOw0KIHN0cnVjdCByYXdfaGFzaGluZm87DQogc3RydWN0IG1vZHVs ZTsNCiANCisvKg0KKyAqIGNhY2hlcyB1c2luZyBTTEFCX0RFU1RST1lfQllfUkNVIHNob3VsZCBs ZXQgLm5leHQgcG9pbnRlciBmcm9tIG51bGxzIG5vZGVzDQorICogdW4tbW9kaWZpZWQuIFNwZWNp YWwgY2FyZSBpcyB0YWtlbiB3aGVuIGluaXRpYWxpemluZyBvYmplY3QgdG8gemVyby4NCisgKi8N CitzdGF0aWMgaW5saW5lIHZvaWQgc2tfcHJvdF9jbGVhcl9udWxscyhzdHJ1Y3Qgc29jayAqc2ss IGludCBzaXplKQ0KK3sNCisJaWYgKG9mZnNldG9mKHN0cnVjdCBzb2NrLCBza19ub2RlLm5leHQp ICE9IDApDQorCQltZW1zZXQoc2ssIDAsIG9mZnNldG9mKHN0cnVjdCBzb2NrLCBza19ub2RlLm5l eHQpKTsNCisJbWVtc2V0KCZzay0+c2tfbm9kZS5wcHJldiwgMCwNCisJICAgICAgIHNpemUgLSBv ZmZzZXRvZihzdHJ1Y3Qgc29jaywgc2tfbm9kZS5wcHJldikpOw0KK30NCisNCiAvKiBOZXR3b3Jr aW5nIHByb3RvY29sIGJsb2NrcyB3ZSBhdHRhY2ggdG8gc29ja2V0cy4NCiAgKiBzb2NrZXQgbGF5 ZXIgLT4gdHJhbnNwb3J0IGxheWVyIGludGVyZmFjZQ0KICAqIHRyYW5zcG9ydCAtPiBuZXR3b3Jr IGludGVyZmFjZSBpcyBkZWZpbmVkIGJ5IHN0cnVjdCBpbmV0X3Byb3RvDQpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9uZXQvdGNwLmggYi9pbmNsdWRlL25ldC90Y3AuaA0KaW5kZXggMDc2ODcxNS4uZmU0 NjAxOSAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbmV0L3RjcC5oDQorKysgYi9pbmNsdWRlL25ldC90 Y3AuaA0KQEAgLTkzMSw2ICs5MzEsNyBAQCBzdGF0aWMgaW5saW5lIGludCB0Y3BfcHJlcXVldWUo c3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KIAlpZiAoc3lzY3RsX3RjcF9s b3dfbGF0ZW5jeSB8fCAhdHAtPnVjb3B5LnRhc2spDQogCQlyZXR1cm4gMDsNCiANCisJc2tiX2Rz dF9mb3JjZShza2IpOw0KIAlfX3NrYl9xdWV1ZV90YWlsKCZ0cC0+dWNvcHkucHJlcXVldWUsIHNr Yik7DQogCXRwLT51Y29weS5tZW1vcnkgKz0gc2tiLT50cnVlc2l6ZTsNCiAJaWYgKHRwLT51Y29w eS5tZW1vcnkgPiBzay0+c2tfcmN2YnVmKSB7DQpkaWZmIC0tZ2l0IGEva2VybmVsL2ttb2QuYyBi L2tlcm5lbC9rbW9kLmMNCmluZGV4IGQ2ZmUwOGEuLmExNmRhYzEgMTAwNjQ0DQotLS0gYS9rZXJu ZWwva21vZC5jDQorKysgYi9rZXJuZWwva21vZC5jDQpAQCAtNDY3LDYgKzQ2NywxMSBAQCBpbnQg Y2FsbF91c2VybW9kZWhlbHBlcl9leGVjKHN0cnVjdCBzdWJwcm9jZXNzX2luZm8gKnN1Yl9pbmZv LA0KIAlpbnQgcmV0dmFsID0gMDsNCiANCiAJaGVscGVyX2xvY2soKTsNCisJaWYgKCFzdWJfaW5m by0+cGF0aCkgew0KKwkJcmV0dmFsID0gLUVJTlZBTDsNCisJCWdvdG8gb3V0Ow0KKwl9DQorDQog CWlmIChzdWJfaW5mby0+cGF0aFswXSA9PSAnXDAnKQ0KIAkJZ290byBvdXQ7DQogDQpkaWZmIC0t Z2l0IGEva2VybmVsL3NjaGVkLmMgYi9rZXJuZWwvc2NoZWQuYw0KaW5kZXggZDA4YzlmNC4uZDkz MzY5YSAxMDA2NDQNCi0tLSBhL2tlcm5lbC9zY2hlZC5jDQorKysgYi9rZXJuZWwvc2NoZWQuYw0K QEAgLTY2NzIsMTYgKzY2NzIsMjUgQEAgc3RhdGljIHZvaWQgc2RfZnJlZV9jdGxfZW50cnkoc3Ry dWN0IGN0bF90YWJsZSAqKnRhYmxlcCkNCiAJKnRhYmxlcCA9IE5VTEw7DQogfQ0KIA0KK3N0YXRp YyBpbnQgbWluX2xvYWRfaWR4ID0gMDsNCitzdGF0aWMgaW50IG1heF9sb2FkX2lkeCA9IENQVV9M T0FEX0lEWF9NQVgtMTsNCisNCiBzdGF0aWMgdm9pZA0KIHNldF90YWJsZV9lbnRyeShzdHJ1Y3Qg Y3RsX3RhYmxlICplbnRyeSwNCiAJCWNvbnN0IGNoYXIgKnByb2NuYW1lLCB2b2lkICpkYXRhLCBp bnQgbWF4bGVuLA0KLQkJbW9kZV90IG1vZGUsIHByb2NfaGFuZGxlciAqcHJvY19oYW5kbGVyKQ0K KwkJbW9kZV90IG1vZGUsIHByb2NfaGFuZGxlciAqcHJvY19oYW5kbGVyLA0KKwkJYm9vbCBsb2Fk X2lkeCkNCiB7DQogCWVudHJ5LT5wcm9jbmFtZSA9IHByb2NuYW1lOw0KIAllbnRyeS0+ZGF0YSA9 IGRhdGE7DQogCWVudHJ5LT5tYXhsZW4gPSBtYXhsZW47DQogCWVudHJ5LT5tb2RlID0gbW9kZTsN CiAJZW50cnktPnByb2NfaGFuZGxlciA9IHByb2NfaGFuZGxlcjsNCisNCisJaWYgKGxvYWRfaWR4 KSB7DQorCQllbnRyeS0+ZXh0cmExID0gJm1pbl9sb2FkX2lkeDsNCisJCWVudHJ5LT5leHRyYTIg PSAmbWF4X2xvYWRfaWR4Ow0KKwl9DQogfQ0KIA0KIHN0YXRpYyBzdHJ1Y3QgY3RsX3RhYmxlICoN CkBAIC02NjkzLDMwICs2NzAyLDMwIEBAIHNkX2FsbG9jX2N0bF9kb21haW5fdGFibGUoc3RydWN0 IHNjaGVkX2RvbWFpbiAqc2QpDQogCQlyZXR1cm4gTlVMTDsNCiANCiAJc2V0X3RhYmxlX2VudHJ5 KCZ0YWJsZVswXSwgIm1pbl9pbnRlcnZhbCIsICZzZC0+bWluX2ludGVydmFsLA0KLQkJc2l6ZW9m KGxvbmcpLCAwNjQ0LCBwcm9jX2RvdWxvbmd2ZWNfbWlubWF4KTsNCisJCXNpemVvZihsb25nKSwg MDY0NCwgcHJvY19kb3Vsb25ndmVjX21pbm1heCwgZmFsc2UpOw0KIAlzZXRfdGFibGVfZW50cnko JnRhYmxlWzFdLCAibWF4X2ludGVydmFsIiwgJnNkLT5tYXhfaW50ZXJ2YWwsDQotCQlzaXplb2Yo bG9uZyksIDA2NDQsIHByb2NfZG91bG9uZ3ZlY19taW5tYXgpOw0KKwkJc2l6ZW9mKGxvbmcpLCAw NjQ0LCBwcm9jX2RvdWxvbmd2ZWNfbWlubWF4LCBmYWxzZSk7DQogCXNldF90YWJsZV9lbnRyeSgm dGFibGVbMl0sICJidXN5X2lkeCIsICZzZC0+YnVzeV9pZHgsDQotCQlzaXplb2YoaW50KSwgMDY0 NCwgcHJvY19kb2ludHZlY19taW5tYXgpOw0KKwkJc2l6ZW9mKGludCksIDA2NDQsIHByb2NfZG9p bnR2ZWNfbWlubWF4LCB0cnVlKTsNCiAJc2V0X3RhYmxlX2VudHJ5KCZ0YWJsZVszXSwgImlkbGVf aWR4IiwgJnNkLT5pZGxlX2lkeCwNCi0JCXNpemVvZihpbnQpLCAwNjQ0LCBwcm9jX2RvaW50dmVj X21pbm1heCk7DQorCQlzaXplb2YoaW50KSwgMDY0NCwgcHJvY19kb2ludHZlY19taW5tYXgsIHRy dWUpOw0KIAlzZXRfdGFibGVfZW50cnkoJnRhYmxlWzRdLCAibmV3aWRsZV9pZHgiLCAmc2QtPm5l d2lkbGVfaWR4LA0KLQkJc2l6ZW9mKGludCksIDA2NDQsIHByb2NfZG9pbnR2ZWNfbWlubWF4KTsN CisJCXNpemVvZihpbnQpLCAwNjQ0LCBwcm9jX2RvaW50dmVjX21pbm1heCwgdHJ1ZSk7DQogCXNl dF90YWJsZV9lbnRyeSgmdGFibGVbNV0sICJ3YWtlX2lkeCIsICZzZC0+d2FrZV9pZHgsDQotCQlz aXplb2YoaW50KSwgMDY0NCwgcHJvY19kb2ludHZlY19taW5tYXgpOw0KKwkJc2l6ZW9mKGludCks IDA2NDQsIHByb2NfZG9pbnR2ZWNfbWlubWF4LCB0cnVlKTsNCiAJc2V0X3RhYmxlX2VudHJ5KCZ0 YWJsZVs2XSwgImZvcmtleGVjX2lkeCIsICZzZC0+Zm9ya2V4ZWNfaWR4LA0KLQkJc2l6ZW9mKGlu dCksIDA2NDQsIHByb2NfZG9pbnR2ZWNfbWlubWF4KTsNCisJCXNpemVvZihpbnQpLCAwNjQ0LCBw cm9jX2RvaW50dmVjX21pbm1heCwgdHJ1ZSk7DQogCXNldF90YWJsZV9lbnRyeSgmdGFibGVbN10s ICJidXN5X2ZhY3RvciIsICZzZC0+YnVzeV9mYWN0b3IsDQotCQlzaXplb2YoaW50KSwgMDY0NCwg cHJvY19kb2ludHZlY19taW5tYXgpOw0KKwkJc2l6ZW9mKGludCksIDA2NDQsIHByb2NfZG9pbnR2 ZWNfbWlubWF4LCBmYWxzZSk7DQogCXNldF90YWJsZV9lbnRyeSgmdGFibGVbOF0sICJpbWJhbGFu Y2VfcGN0IiwgJnNkLT5pbWJhbGFuY2VfcGN0LA0KLQkJc2l6ZW9mKGludCksIDA2NDQsIHByb2Nf ZG9pbnR2ZWNfbWlubWF4KTsNCisJCXNpemVvZihpbnQpLCAwNjQ0LCBwcm9jX2RvaW50dmVjX21p bm1heCwgZmFsc2UpOw0KIAlzZXRfdGFibGVfZW50cnkoJnRhYmxlWzldLCAiY2FjaGVfbmljZV90 cmllcyIsDQogCQkmc2QtPmNhY2hlX25pY2VfdHJpZXMsDQotCQlzaXplb2YoaW50KSwgMDY0NCwg cHJvY19kb2ludHZlY19taW5tYXgpOw0KKwkJc2l6ZW9mKGludCksIDA2NDQsIHByb2NfZG9pbnR2 ZWNfbWlubWF4LCBmYWxzZSk7DQogCXNldF90YWJsZV9lbnRyeSgmdGFibGVbMTBdLCAiZmxhZ3Mi LCAmc2QtPmZsYWdzLA0KLQkJc2l6ZW9mKGludCksIDA2NDQsIHByb2NfZG9pbnR2ZWNfbWlubWF4 KTsNCisJCXNpemVvZihpbnQpLCAwNjQ0LCBwcm9jX2RvaW50dmVjX21pbm1heCwgZmFsc2UpOw0K IAlzZXRfdGFibGVfZW50cnkoJnRhYmxlWzExXSwgIm5hbWUiLCBzZC0+bmFtZSwNCi0JCUNPUkVO QU1FX01BWF9TSVpFLCAwNDQ0LCBwcm9jX2Rvc3RyaW5nKTsNCisJCUNPUkVOQU1FX01BWF9TSVpF LCAwNDQ0LCBwcm9jX2Rvc3RyaW5nLCBmYWxzZSk7DQogCS8qICZ0YWJsZVsxMl0gaXMgdGVybWlu YXRvciAqLw0KIA0KIAlyZXR1cm4gdGFibGU7DQpkaWZmIC0tZ2l0IGEva2VybmVsL3RpbWUvdGlj ay1zY2hlZC5jIGIva2VybmVsL3RpbWUvdGljay1zY2hlZC5jDQppbmRleCA3OTM1NDhjLi5lOWE0 NWYxIDEwMDY0NA0KLS0tIGEva2VybmVsL3RpbWUvdGljay1zY2hlZC5jDQorKysgYi9rZXJuZWwv dGltZS90aWNrLXNjaGVkLmMNCkBAIC04MzMsNyArODMzLDcgQEAgdm9pZCB0aWNrX2NhbmNlbF9z Y2hlZF90aW1lcihpbnQgY3B1KQ0KIAkJaHJ0aW1lcl9jYW5jZWwoJnRzLT5zY2hlZF90aW1lcik7 DQogIyBlbmRpZg0KIA0KLQl0cy0+bm9oel9tb2RlID0gTk9IWl9NT0RFX0lOQUNUSVZFOw0KKwlt ZW1zZXQodHMsIDAsIHNpemVvZigqdHMpKTsNCiB9DQogI2VuZGlmDQogDQpkaWZmIC0tZ2l0IGEv a2VybmVsL3RpbWVyLmMgYi9rZXJuZWwvdGltZXIuYw0KaW5kZXggYzIxOWRiNi4uZjJmNzFkNyAx MDA2NDQNCi0tLSBhL2tlcm5lbC90aW1lci5jDQorKysgYi9rZXJuZWwvdGltZXIuYw0KQEAgLTE2 MzAsMTIgKzE2MzAsMTIgQEAgc3RhdGljIGludCBfX2NwdWluaXQgaW5pdF90aW1lcnNfY3B1KGlu dCBjcHUpDQogCQkJYm9vdF9kb25lID0gMTsNCiAJCQliYXNlID0gJmJvb3RfdHZlY19iYXNlczsN CiAJCX0NCisJCXNwaW5fbG9ja19pbml0KCZiYXNlLT5sb2NrKTsNCiAJCXR2ZWNfYmFzZV9kb25l W2NwdV0gPSAxOw0KIAl9IGVsc2Ugew0KIAkJYmFzZSA9IHBlcl9jcHUodHZlY19iYXNlcywgY3B1 KTsNCiAJfQ0KIA0KLQlzcGluX2xvY2tfaW5pdCgmYmFzZS0+bG9jayk7DQogDQogCWZvciAoaiA9 IDA7IGogPCBUVk5fU0laRTsgaisrKSB7DQogCQlJTklUX0xJU1RfSEVBRChiYXNlLT50djUudmVj ICsgaik7DQpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL3RyYWNlX2V2ZW50c19maWx0ZXIuYyBi L2tlcm5lbC90cmFjZS90cmFjZV9ldmVudHNfZmlsdGVyLmMNCmluZGV4IDk1ZGMzMWUuLmIwOTk2 YzEgMTAwNjQ0DQotLS0gYS9rZXJuZWwvdHJhY2UvdHJhY2VfZXZlbnRzX2ZpbHRlci5jDQorKysg Yi9rZXJuZWwvdHJhY2UvdHJhY2VfZXZlbnRzX2ZpbHRlci5jDQpAQCAtNzY5LDcgKzc2OSwxMSBA QCBzdGF0aWMgaW50IGZpbHRlcl9zZXRfcHJlZChzdHJ1Y3QgZXZlbnRfZmlsdGVyICpmaWx0ZXIs DQogDQogc3RhdGljIHZvaWQgX19mcmVlX3ByZWRzKHN0cnVjdCBldmVudF9maWx0ZXIgKmZpbHRl cikNCiB7DQorCWludCBpOw0KKw0KIAlpZiAoZmlsdGVyLT5wcmVkcykgew0KKwkJZm9yIChpID0g MDsgaSA8IGZpbHRlci0+bl9wcmVkczsgaSsrKQ0KKwkJCWtmcmVlKGZpbHRlci0+cHJlZHNbaV0u b3BzKTsNCiAJCWtmcmVlKGZpbHRlci0+cHJlZHMpOw0KIAkJZmlsdGVyLT5wcmVkcyA9IE5VTEw7 DQogCX0NCmRpZmYgLS1naXQgYS9tbS9odWdlX21lbW9yeS5jIGIvbW0vaHVnZV9tZW1vcnkuYw0K aW5kZXggNDcwY2JiNC4uZDgwYWM0YiAxMDA2NDQNCi0tLSBhL21tL2h1Z2VfbWVtb3J5LmMNCisr KyBiL21tL2h1Z2VfbWVtb3J5LmMNCkBAIC0xOTM3LDcgKzE5MzcsMTIgQEAgc3RhdGljIHZvaWQg Y29sbGFwc2VfaHVnZV9wYWdlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLA0KIAkJcHRlX3VubWFwKHB0 ZSk7DQogCQlzcGluX2xvY2soJm1tLT5wYWdlX3RhYmxlX2xvY2spOw0KIAkJQlVHX09OKCFwbWRf bm9uZSgqcG1kKSk7DQotCQlzZXRfcG1kX2F0KG1tLCBhZGRyZXNzLCBwbWQsIF9wbWQpOw0KKwkJ LyoNCisJCSAqIFdlIGNhbiBvbmx5IHVzZSBzZXRfcG1kX2F0IHdoZW4gZXN0YWJsaXNoaW5nDQor CQkgKiBodWdlcG1kcyBhbmQgbmV2ZXIgZm9yIGVzdGFibGlzaGluZyByZWd1bGFyIHBtZHMgdGhh dA0KKwkJICogcG9pbnRzIHRvIHJlZ3VsYXIgcGFnZXRhYmxlcy4gVXNlIHBtZF9wb3B1bGF0ZSBm b3IgdGhhdA0KKwkJICovDQorCQlwbWRfcG9wdWxhdGUobW0sIHBtZCwgcG1kX3BndGFibGUoX3Bt ZCkpOw0KIAkJc3Bpbl91bmxvY2soJm1tLT5wYWdlX3RhYmxlX2xvY2spOw0KIAkJYW5vbl92bWFf dW5sb2NrKHZtYS0+YW5vbl92bWEpOw0KIAkJZ290byBvdXQ7DQpkaWZmIC0tZ2l0IGEvbW0vbWln cmF0ZS5jIGIvbW0vbWlncmF0ZS5jDQppbmRleCAxODBkOTdmLi5lMTA1MmQxIDEwMDY0NA0KLS0t IGEvbW0vbWlncmF0ZS5jDQorKysgYi9tbS9taWdyYXRlLmMNCkBAIC0xNDcsNyArMTQ3LDcgQEAg c3RhdGljIGludCByZW1vdmVfbWlncmF0aW9uX3B0ZShzdHJ1Y3QgcGFnZSAqbmV3LCBzdHJ1Y3Qg dm1fYXJlYV9zdHJ1Y3QgKnZtYSwNCiAJaWYgKFBhZ2VIdWdlKG5ldykpDQogCQlwdGUgPSBwdGVf bWtodWdlKHB0ZSk7DQogI2VuZGlmDQotCWZsdXNoX2NhY2hlX3BhZ2Uodm1hLCBhZGRyLCBwdGVf cGZuKHB0ZSkpOw0KKwlmbHVzaF9kY2FjaGVfcGFnZShuZXcpOw0KIAlzZXRfcHRlX2F0KG1tLCBh ZGRyLCBwdGVwLCBwdGUpOw0KIA0KIAlpZiAoUGFnZUh1Z2UobmV3KSkgew0KZGlmZiAtLWdpdCBh L21tL21tdV9ub3RpZmllci5jIGIvbW0vbW11X25vdGlmaWVyLmMNCmluZGV4IDhkMWNhMmQuLmEx NjBlYzggMTAwNjQ0DQotLS0gYS9tbS9tbXVfbm90aWZpZXIuYw0KKysrIGIvbW0vbW11X25vdGlm aWVyLmMNCkBAIC0zNyw1MSArMzcsNDggQEAgc3RhdGljIHN0cnVjdCBzcmN1X3N0cnVjdCBzcmN1 Ow0KIHZvaWQgX19tbXVfbm90aWZpZXJfcmVsZWFzZShzdHJ1Y3QgbW1fc3RydWN0ICptbSkNCiB7 DQogCXN0cnVjdCBtbXVfbm90aWZpZXIgKm1uOw0KKwlzdHJ1Y3QgaGxpc3Rfbm9kZSAqbjsNCiAJ aW50IGlkOw0KIA0KIAkvKg0KLQkgKiBzcmN1X3JlYWRfbG9jaygpIGhlcmUgd2lsbCBibG9jayBz eW5jaHJvbml6ZV9zcmN1KCkgaW4NCi0JICogbW11X25vdGlmaWVyX3VucmVnaXN0ZXIoKSB1bnRp bCBhbGwgcmVnaXN0ZXJlZA0KLQkgKiAtPnJlbGVhc2UoKSBjYWxsb3V0cyB0aGlzIGZ1bmN0aW9u IG1ha2VzIGhhdmUNCi0JICogcmV0dXJuZWQuDQorCSAqIFNSQ1UgaGVyZSB3aWxsIGJsb2NrIG1t dV9ub3RpZmllcl91bnJlZ2lzdGVyIHVudGlsDQorCSAqIC0+cmVsZWFzZSByZXR1cm5zLg0KIAkg Ki8NCiAJaWQgPSBzcmN1X3JlYWRfbG9jaygmc3JjdSk7DQorCWhsaXN0X2Zvcl9lYWNoX2VudHJ5 X3JjdShtbiwgbiwgJm1tLT5tbXVfbm90aWZpZXJfbW0tPmxpc3QsIGhsaXN0KQ0KKwkJLyoNCisJ CSAqIElmIC0+cmVsZWFzZSBydW5zIGJlZm9yZSBtbXVfbm90aWZpZXJfdW5yZWdpc3RlciBpdCBt dXN0IGJlDQorCQkgKiBoYW5kbGVkLCBhcyBpdCdzIHRoZSBvbmx5IHdheSBmb3IgdGhlIGRyaXZl ciB0byBmbHVzaCBhbGwNCisJCSAqIGV4aXN0aW5nIHNwdGVzIGFuZCBzdG9wIHRoZSBkcml2ZXIg ZnJvbSBlc3RhYmxpc2hpbmcgYW55IG1vcmUNCisJCSAqIHNwdGVzIGJlZm9yZSBhbGwgdGhlIHBh Z2VzIGluIHRoZSBtbSBhcmUgZnJlZWQuDQorCQkgKi8NCisJCWlmIChtbi0+b3BzLT5yZWxlYXNl KQ0KKwkJCW1uLT5vcHMtPnJlbGVhc2UobW4sIG1tKTsNCisJc3JjdV9yZWFkX3VubG9jaygmc3Jj dSwgaWQpOw0KKw0KIAlzcGluX2xvY2soJm1tLT5tbXVfbm90aWZpZXJfbW0tPmxvY2spOw0KIAl3 aGlsZSAodW5saWtlbHkoIWhsaXN0X2VtcHR5KCZtbS0+bW11X25vdGlmaWVyX21tLT5saXN0KSkp IHsNCiAJCW1uID0gaGxpc3RfZW50cnkobW0tPm1tdV9ub3RpZmllcl9tbS0+bGlzdC5maXJzdCwN CiAJCQkJIHN0cnVjdCBtbXVfbm90aWZpZXIsDQogCQkJCSBobGlzdCk7DQotDQogCQkvKg0KLQkJ ICogVW5saW5rLiAgVGhpcyB3aWxsIHByZXZlbnQgbW11X25vdGlmaWVyX3VucmVnaXN0ZXIoKQ0K LQkJICogZnJvbSBhbHNvIG1ha2luZyB0aGUgLT5yZWxlYXNlKCkgY2FsbG91dC4NCisJCSAqIFdl IGFycml2ZWQgYmVmb3JlIG1tdV9ub3RpZmllcl91bnJlZ2lzdGVyIHNvDQorCQkgKiBtbXVfbm90 aWZpZXJfdW5yZWdpc3RlciB3aWxsIGRvIG5vdGhpbmcgb3RoZXIgdGhhbiB0byB3YWl0DQorCQkg KiBmb3IgLT5yZWxlYXNlIHRvIGZpbmlzaCBhbmQgZm9yIG1tdV9ub3RpZmllcl91bnJlZ2lzdGVy IHRvDQorCQkgKiByZXR1cm4uDQogCQkgKi8NCiAJCWhsaXN0X2RlbF9pbml0X3JjdSgmbW4tPmhs aXN0KTsNCi0JCXNwaW5fdW5sb2NrKCZtbS0+bW11X25vdGlmaWVyX21tLT5sb2NrKTsNCi0NCi0J CS8qDQotCQkgKiBDbGVhciBzcHRlcy4gKHNlZSAncmVsZWFzZScgZGVzY3JpcHRpb24gaW4gbW11 X25vdGlmaWVyLmgpDQotCQkgKi8NCi0JCWlmIChtbi0+b3BzLT5yZWxlYXNlKQ0KLQkJCW1uLT5v cHMtPnJlbGVhc2UobW4sIG1tKTsNCi0NCi0JCXNwaW5fbG9jaygmbW0tPm1tdV9ub3RpZmllcl9t bS0+bG9jayk7DQogCX0NCiAJc3Bpbl91bmxvY2soJm1tLT5tbXVfbm90aWZpZXJfbW0tPmxvY2sp Ow0KIA0KIAkvKg0KLQkgKiBBbGwgY2FsbG91dHMgdG8gLT5yZWxlYXNlKCkgd2hpY2ggd2UgaGF2 ZSBkb25lIGFyZSBjb21wbGV0ZS4NCi0JICogQWxsb3cgc3luY2hyb25pemVfc3JjdSgpIGluIG1t dV9ub3RpZmllcl91bnJlZ2lzdGVyKCkgdG8gY29tcGxldGUNCi0JICovDQotCXNyY3VfcmVhZF91 bmxvY2soJnNyY3UsIGlkKTsNCi0NCi0JLyoNCi0JICogbW11X25vdGlmaWVyX3VucmVnaXN0ZXIo KSBtYXkgaGF2ZSB1bmxpbmtlZCBhIG5vdGlmaWVyIGFuZCBtYXkNCi0JICogc3RpbGwgYmUgY2Fs bGluZyBvdXQgdG8gaXQuCUFkZGl0aW9uYWxseSwgb3RoZXIgbm90aWZpZXJzDQotCSAqIG1heSBo YXZlIGJlZW4gYWN0aXZlIHZpYSB2bXRydW5jYXRlKCkgZXQuIGFsLiBCbG9jayBoZXJlDQotCSAq IHRvIGVuc3VyZSB0aGF0IGFsbCBub3RpZmllciBjYWxsb3V0cyBmb3IgdGhpcyBtbSBoYXZlIGJl ZW4NCi0JICogY29tcGxldGVkIGFuZCB0aGUgc3B0ZXMgYXJlIHJlYWxseSBjbGVhbmVkIHVwIGJl Zm9yZSByZXR1cm5pbmcNCi0JICogdG8gZXhpdF9tbWFwKCkuDQorCSAqIHN5bmNocm9uaXplX3Ny Y3UgaGVyZSBwcmV2ZW50cyBtbXVfbm90aWZpZXJfcmVsZWFzZSBmcm9tIHJldHVybmluZyB0bw0K KwkgKiBleGl0X21tYXAgKHdoaWNoIHdvdWxkIHByb2NlZWQgd2l0aCBmcmVlaW5nIGFsbCBwYWdl cyBpbiB0aGUgbW0pDQorCSAqIHVudGlsIHRoZSAtPnJlbGVhc2UgbWV0aG9kIHJldHVybnMsIGlm IGl0IHdhcyBpbnZva2VkIGJ5DQorCSAqIG1tdV9ub3RpZmllcl91bnJlZ2lzdGVyLg0KKwkgKg0K KwkgKiBUaGUgbW11X25vdGlmaWVyX21tIGNhbid0IGdvIGF3YXkgZnJvbSB1bmRlciB1cyBiZWNh dXNlIG9uZSBtbV9jb3VudA0KKwkgKiBpcyBoZWxkIGJ5IGV4aXRfbW1hcC4NCiAJICovDQogCXN5 bmNocm9uaXplX3NyY3UoJnNyY3UpOw0KIH0NCkBAIC0zMDIsMzEgKzI5OSwzNCBAQCB2b2lkIG1t dV9ub3RpZmllcl91bnJlZ2lzdGVyKHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uLCBzdHJ1Y3QgbW1f c3RydWN0ICptbSkNCiB7DQogCUJVR19PTihhdG9taWNfcmVhZCgmbW0tPm1tX2NvdW50KSA8PSAw KTsNCiANCi0Jc3Bpbl9sb2NrKCZtbS0+bW11X25vdGlmaWVyX21tLT5sb2NrKTsNCiAJaWYgKCFo bGlzdF91bmhhc2hlZCgmbW4tPmhsaXN0KSkgew0KKwkJLyoNCisJCSAqIFNSQ1UgaGVyZSB3aWxs IGZvcmNlIGV4aXRfbW1hcCB0byB3YWl0IGZvciAtPnJlbGVhc2UgdG8NCisJCSAqIGZpbmlzaCBi ZWZvcmUgZnJlZWluZyB0aGUgcGFnZXMuDQorCQkgKi8NCiAJCWludCBpZDsNCiANCisJCWlkID0g c3JjdV9yZWFkX2xvY2soJnNyY3UpOw0KIAkJLyoNCi0JCSAqIEVuc3VyZSB3ZSBzeW5jaHJvbml6 ZSB1cCB3aXRoIF9fbW11X25vdGlmaWVyX3JlbGVhc2UoKS4NCisJCSAqIGV4aXRfbW1hcCB3aWxs IGJsb2NrIGluIG1tdV9ub3RpZmllcl9yZWxlYXNlIHRvIGd1YXJhbnRlZQ0KKwkJICogdGhhdCAt PnJlbGVhc2UgaXMgY2FsbGVkIGJlZm9yZSBmcmVlaW5nIHRoZSBwYWdlcy4NCiAJCSAqLw0KLQkJ aWQgPSBzcmN1X3JlYWRfbG9jaygmc3JjdSk7DQotDQotCQlobGlzdF9kZWxfcmN1KCZtbi0+aGxp c3QpOw0KLQkJc3Bpbl91bmxvY2soJm1tLT5tbXVfbm90aWZpZXJfbW0tPmxvY2spOw0KLQ0KIAkJ aWYgKG1uLT5vcHMtPnJlbGVhc2UpDQogCQkJbW4tPm9wcy0+cmVsZWFzZShtbiwgbW0pOw0KKwkJ c3JjdV9yZWFkX3VubG9jaygmc3JjdSwgaWQpOw0KIA0KKwkJc3Bpbl9sb2NrKCZtbS0+bW11X25v dGlmaWVyX21tLT5sb2NrKTsNCiAJCS8qDQotCQkgKiBBbGxvdyBfX21tdV9ub3RpZmllcl9yZWxl YXNlKCkgdG8gY29tcGxldGUuDQorCQkgKiBDYW4gbm90IHVzZSBsaXN0X2RlbF9yY3UoKSBzaW5j ZSBfX21tdV9ub3RpZmllcl9yZWxlYXNlDQorCQkgKiBjYW4gZGVsZXRlIGl0IGJlZm9yZSB3ZSBo b2xkIHRoZSBsb2NrLg0KIAkJICovDQotCQlzcmN1X3JlYWRfdW5sb2NrKCZzcmN1LCBpZCk7DQot CX0gZWxzZQ0KKwkJaGxpc3RfZGVsX2luaXRfcmN1KCZtbi0+aGxpc3QpOw0KIAkJc3Bpbl91bmxv Y2soJm1tLT5tbXVfbm90aWZpZXJfbW0tPmxvY2spOw0KKwl9DQogDQogCS8qDQotCSAqIFdhaXQg Zm9yIGFueSBydW5uaW5nIG1ldGhvZCB0byBmaW5pc2gsIGluY2x1ZGluZyAtPnJlbGVhc2UoKSBp ZiBpdA0KLQkgKiB3YXMgcnVuIGJ5IF9fbW11X25vdGlmaWVyX3JlbGVhc2UoKSBpbnN0ZWFkIG9m IHVzLg0KKwkgKiBXYWl0IGZvciBhbnkgcnVubmluZyBtZXRob2QgdG8gZmluaXNoLCBvZiBjb3Vy c2UgaW5jbHVkaW5nDQorCSAqIC0+cmVsZWFzZSBpZiBpdCB3YXMgcnVuIGJ5IG1tdV9ub3RpZmll cl9yZWxhc2UgaW5zdGVhZCBvZiB1cy4NCiAJICovDQogCXN5bmNocm9uaXplX3NyY3UoJnNyY3Up Ow0KIA0KZGlmZiAtLWdpdCBhL21tL3BhZ2V3YWxrLmMgYi9tbS9wYWdld2Fsay5jDQppbmRleCBh YTk3MDFlLi4xMDkwZTc3IDEwMDY0NA0KLS0tIGEvbW0vcGFnZXdhbGsuYw0KKysrIGIvbW0vcGFn ZXdhbGsuYw0KQEAgLTEyNywyOCArMTI3LDcgQEAgc3RhdGljIGludCB3YWxrX2h1Z2V0bGJfcmFu Z2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsDQogCXJldHVybiAwOw0KIH0NCiANCi1zdGF0 aWMgc3RydWN0IHZtX2FyZWFfc3RydWN0KiBodWdldGxiX3ZtYSh1bnNpZ25lZCBsb25nIGFkZHIs IHN0cnVjdCBtbV93YWxrICp3YWxrKQ0KLXsNCi0Jc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWE7 DQotDQotCS8qIFdlIGRvbid0IG5lZWQgdm1hIGxvb2t1cCBhdCBhbGwuICovDQotCWlmICghd2Fs ay0+aHVnZXRsYl9lbnRyeSkNCi0JCXJldHVybiBOVUxMOw0KLQ0KLQlWTV9CVUdfT04oIXJ3c2Vt X2lzX2xvY2tlZCgmd2Fsay0+bW0tPm1tYXBfc2VtKSk7DQotCXZtYSA9IGZpbmRfdm1hKHdhbGst Pm1tLCBhZGRyKTsNCi0JaWYgKHZtYSAmJiB2bWEtPnZtX3N0YXJ0IDw9IGFkZHIgJiYgaXNfdm1f aHVnZXRsYl9wYWdlKHZtYSkpDQotCQlyZXR1cm4gdm1hOw0KLQ0KLQlyZXR1cm4gTlVMTDsNCi19 DQotDQogI2Vsc2UgLyogQ09ORklHX0hVR0VUTEJfUEFHRSAqLw0KLXN0YXRpYyBzdHJ1Y3Qgdm1f YXJlYV9zdHJ1Y3QqIGh1Z2V0bGJfdm1hKHVuc2lnbmVkIGxvbmcgYWRkciwgc3RydWN0IG1tX3dh bGsgKndhbGspDQotew0KLQlyZXR1cm4gTlVMTDsNCi19DQotDQogc3RhdGljIGludCB3YWxrX2h1 Z2V0bGJfcmFuZ2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsDQogCQkJICAgICAgdW5zaWdu ZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGVuZCwNCiAJCQkgICAgICBzdHJ1Y3QgbW1fd2Fs ayAqd2FsaykNCkBAIC0xOTksMzAgKzE3OCw1MyBAQCBpbnQgd2Fsa19wYWdlX3JhbmdlKHVuc2ln bmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBlbmQsDQogCWlmICghd2Fsay0+bW0pDQogCQly ZXR1cm4gLUVJTlZBTDsNCiANCisJVk1fQlVHX09OKCFyd3NlbV9pc19sb2NrZWQoJndhbGstPm1t LT5tbWFwX3NlbSkpOw0KKw0KIAlwZ2QgPSBwZ2Rfb2Zmc2V0KHdhbGstPm1tLCBhZGRyKTsNCiAJ ZG8gew0KLQkJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWE7DQorCQlzdHJ1Y3Qgdm1fYXJlYV9z dHJ1Y3QgKnZtYSA9IE5VTEw7DQogDQogCQluZXh0ID0gcGdkX2FkZHJfZW5kKGFkZHIsIGVuZCk7 DQogDQogCQkvKg0KLQkJICogaGFuZGxlIGh1Z2V0bGIgdm1hIGluZGl2aWR1YWxseSBiZWNhdXNl IHBhZ2V0YWJsZSB3YWxrIGZvcg0KLQkJICogdGhlIGh1Z2V0bGIgcGFnZSBpcyBkZXBlbmRlbnQg b24gdGhlIGFyY2hpdGVjdHVyZSBhbmQNCi0JCSAqIHdlIGNhbid0IGhhbmRsZWQgaXQgaW4gdGhl IHNhbWUgbWFubmVyIGFzIG5vbi1odWdlIHBhZ2VzLg0KKwkJICogVGhpcyBmdW5jdGlvbiB3YXMg bm90IGludGVuZGVkIHRvIGJlIHZtYSBiYXNlZC4NCisJCSAqIEJ1dCB0aGVyZSBhcmUgdm1hIHNw ZWNpYWwgY2FzZXMgdG8gYmUgaGFuZGxlZDoNCisJCSAqIC0gaHVnZXRsYiB2bWEncw0KKwkJICog LSBWTV9QRk5NQVAgdm1hJ3MNCiAJCSAqLw0KLQkJdm1hID0gaHVnZXRsYl92bWEoYWRkciwgd2Fs ayk7DQorCQl2bWEgPSBmaW5kX3ZtYSh3YWxrLT5tbSwgYWRkcik7DQogCQlpZiAodm1hKSB7DQot CQkJaWYgKHZtYS0+dm1fZW5kIDwgbmV4dCkNCisJCQkvKg0KKwkJCSAqIFRoZXJlIGFyZSBubyBw YWdlIHN0cnVjdHVyZXMgYmFja2luZyBhIFZNX1BGTk1BUA0KKwkJCSAqIHJhbmdlLCBzbyBkbyBu b3QgYWxsb3cgc3BsaXRfaHVnZV9wYWdlX3BtZCgpLg0KKwkJCSAqLw0KKwkJCWlmICgodm1hLT52 bV9zdGFydCA8PSBhZGRyKSAmJg0KKwkJCSAgICAodm1hLT52bV9mbGFncyAmIFZNX1BGTk1BUCkp IHsNCiAJCQkJbmV4dCA9IHZtYS0+dm1fZW5kOw0KKwkJCQlwZ2QgPSBwZ2Rfb2Zmc2V0KHdhbGst Pm1tLCBuZXh0KTsNCisJCQkJY29udGludWU7DQorCQkJfQ0KIAkJCS8qDQotCQkJICogSHVnZXBh Z2UgaXMgdmVyeSB0aWdodGx5IGNvdXBsZWQgd2l0aCB2bWEsIHNvDQotCQkJICogd2FsayB0aHJv dWdoIGh1Z2V0bGIgZW50cmllcyB3aXRoaW4gYSBnaXZlbiB2bWEuDQorCQkJICogSGFuZGxlIGh1 Z2V0bGIgdm1hIGluZGl2aWR1YWxseSBiZWNhdXNlIHBhZ2V0YWJsZQ0KKwkJCSAqIHdhbGsgZm9y IHRoZSBodWdldGxiIHBhZ2UgaXMgZGVwZW5kZW50IG9uIHRoZQ0KKwkJCSAqIGFyY2hpdGVjdHVy ZSBhbmQgd2UgY2FuJ3QgaGFuZGxlZCBpdCBpbiB0aGUgc2FtZQ0KKwkJCSAqIG1hbm5lciBhcyBu b24taHVnZSBwYWdlcy4NCiAJCQkgKi8NCi0JCQllcnIgPSB3YWxrX2h1Z2V0bGJfcmFuZ2Uodm1h LCBhZGRyLCBuZXh0LCB3YWxrKTsNCi0JCQlpZiAoZXJyKQ0KLQkJCQlicmVhazsNCi0JCQlwZ2Qg PSBwZ2Rfb2Zmc2V0KHdhbGstPm1tLCBuZXh0KTsNCi0JCQljb250aW51ZTsNCisJCQlpZiAod2Fs ay0+aHVnZXRsYl9lbnRyeSAmJiAodm1hLT52bV9zdGFydCA8PSBhZGRyKSAmJg0KKwkJCSAgICBp c192bV9odWdldGxiX3BhZ2Uodm1hKSkgew0KKwkJCQlpZiAodm1hLT52bV9lbmQgPCBuZXh0KQ0K KwkJCQkJbmV4dCA9IHZtYS0+dm1fZW5kOw0KKwkJCQkvKg0KKwkJCQkgKiBIdWdlcGFnZSBpcyB2 ZXJ5IHRpZ2h0bHkgY291cGxlZCB3aXRoIHZtYSwNCisJCQkJICogc28gd2FsayB0aHJvdWdoIGh1 Z2V0bGIgZW50cmllcyB3aXRoaW4gYQ0KKwkJCQkgKiBnaXZlbiB2bWEuDQorCQkJCSAqLw0KKwkJ CQllcnIgPSB3YWxrX2h1Z2V0bGJfcmFuZ2Uodm1hLCBhZGRyLCBuZXh0LCB3YWxrKTsNCisJCQkJ aWYgKGVycikNCisJCQkJCWJyZWFrOw0KKwkJCQlwZ2QgPSBwZ2Rfb2Zmc2V0KHdhbGstPm1tLCBu ZXh0KTsNCisJCQkJY29udGludWU7DQorCQkJfQ0KIAkJfQ0KIA0KIAkJaWYgKHBnZF9ub25lX29y X2NsZWFyX2JhZChwZ2QpKSB7DQpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9zdHBfdGltZXIu YyBiL25ldC9icmlkZ2UvYnJfc3RwX3RpbWVyLmMNCmluZGV4IDU4ZGUyYTAuLmM4M2VlNzkgMTAw NjQ0DQotLS0gYS9uZXQvYnJpZGdlL2JyX3N0cF90aW1lci5jDQorKysgYi9uZXQvYnJpZGdlL2Jy X3N0cF90aW1lci5jDQpAQCAtMTA3LDcgKzEwNyw3IEBAIHN0YXRpYyB2b2lkIGJyX3Rjbl90aW1l cl9leHBpcmVkKHVuc2lnbmVkIGxvbmcgYXJnKQ0KIA0KIAlicl9kZWJ1ZyhiciwgInRjbiB0aW1l ciBleHBpcmVkXG4iKTsNCiAJc3Bpbl9sb2NrKCZici0+bG9jayk7DQotCWlmIChici0+ZGV2LT5m bGFncyAmIElGRl9VUCkgew0KKwlpZiAoIWJyX2lzX3Jvb3RfYnJpZGdlKGJyKSAmJiAoYnItPmRl di0+ZmxhZ3MgJiBJRkZfVVApKSB7DQogCQlicl90cmFuc21pdF90Y24oYnIpOw0KIA0KIAkJbW9k X3RpbWVyKCZici0+dGNuX3RpbWVyLGppZmZpZXMgKyBici0+YnJpZGdlX2hlbGxvX3RpbWUpOw0K ZGlmZiAtLWdpdCBhL25ldC9jb3JlL3NvY2suYyBiL25ldC9jb3JlL3NvY2suYw0KaW5kZXggMmM3 M2FkZi4uOGEyYzJkZCAxMDA2NDQNCi0tLSBhL25ldC9jb3JlL3NvY2suYw0KKysrIGIvbmV0L2Nv cmUvc29jay5jDQpAQCAtMTAyMSwxOCArMTAyMSw2IEBAIHN0YXRpYyB2b2lkIHNvY2tfY29weShz dHJ1Y3Qgc29jayAqbnNrLCBjb25zdCBzdHJ1Y3Qgc29jayAqb3NrKQ0KICNlbmRpZg0KIH0NCiAN Ci0vKg0KLSAqIGNhY2hlcyB1c2luZyBTTEFCX0RFU1RST1lfQllfUkNVIHNob3VsZCBsZXQgLm5l eHQgcG9pbnRlciBmcm9tIG51bGxzIG5vZGVzDQotICogdW4tbW9kaWZpZWQuIFNwZWNpYWwgY2Fy ZSBpcyB0YWtlbiB3aGVuIGluaXRpYWxpemluZyBvYmplY3QgdG8gemVyby4NCi0gKi8NCi1zdGF0 aWMgaW5saW5lIHZvaWQgc2tfcHJvdF9jbGVhcl9udWxscyhzdHJ1Y3Qgc29jayAqc2ssIGludCBz aXplKQ0KLXsNCi0JaWYgKG9mZnNldG9mKHN0cnVjdCBzb2NrLCBza19ub2RlLm5leHQpICE9IDAp DQotCQltZW1zZXQoc2ssIDAsIG9mZnNldG9mKHN0cnVjdCBzb2NrLCBza19ub2RlLm5leHQpKTsN Ci0JbWVtc2V0KCZzay0+c2tfbm9kZS5wcHJldiwgMCwNCi0JICAgICAgIHNpemUgLSBvZmZzZXRv ZihzdHJ1Y3Qgc29jaywgc2tfbm9kZS5wcHJldikpOw0KLX0NCi0NCiB2b2lkIHNrX3Byb3RfY2xl YXJfcG9ydGFkZHJfbnVsbHMoc3RydWN0IHNvY2sgKnNrLCBpbnQgc2l6ZSkNCiB7DQogCXVuc2ln bmVkIGxvbmcgbnVsbHMxLCBudWxsczI7DQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvdGNwX2lwdjYu YyBiL25ldC9pcHY2L3RjcF9pcHY2LmMNCmluZGV4IGRiMTA4MDUuLmM2OTM1OGMgMTAwNjQ0DQot LS0gYS9uZXQvaXB2Ni90Y3BfaXB2Ni5jDQorKysgYi9uZXQvaXB2Ni90Y3BfaXB2Ni5jDQpAQCAt MjE5Niw2ICsyMTk2LDE3IEBAIHZvaWQgdGNwNl9wcm9jX2V4aXQoc3RydWN0IG5ldCAqbmV0KQ0K IH0NCiAjZW5kaWYNCiANCitzdGF0aWMgdm9pZCB0Y3BfdjZfY2xlYXJfc2soc3RydWN0IHNvY2sg KnNrLCBpbnQgc2l6ZSkNCit7DQorCXN0cnVjdCBpbmV0X3NvY2sgKmluZXQgPSBpbmV0X3NrKHNr KTsNCisNCisJLyogd2UgZG8gbm90IHdhbnQgdG8gY2xlYXIgcGluZXQ2IGZpZWxkLCBiZWNhdXNl IG9mIFJDVSBsb29rdXBzICovDQorCXNrX3Byb3RfY2xlYXJfbnVsbHMoc2ssIG9mZnNldG9mKHN0 cnVjdCBpbmV0X3NvY2ssIHBpbmV0NikpOw0KKw0KKwlzaXplIC09IG9mZnNldG9mKHN0cnVjdCBp bmV0X3NvY2ssIHBpbmV0NikgKyBzaXplb2YoaW5ldC0+cGluZXQ2KTsNCisJbWVtc2V0KCZpbmV0 LT5waW5ldDYgKyAxLCAwLCBzaXplKTsNCit9DQorDQogc3RydWN0IHByb3RvIHRjcHY2X3Byb3Qg PSB7DQogCS5uYW1lCQkJPSAiVENQdjYiLA0KIAkub3duZXIJCQk9IFRISVNfTU9EVUxFLA0KQEAg LTIyMzUsNiArMjI0Niw3IEBAIHN0cnVjdCBwcm90byB0Y3B2Nl9wcm90ID0gew0KIAkuY29tcGF0 X3NldHNvY2tvcHQJPSBjb21wYXRfdGNwX3NldHNvY2tvcHQsDQogCS5jb21wYXRfZ2V0c29ja29w dAk9IGNvbXBhdF90Y3BfZ2V0c29ja29wdCwNCiAjZW5kaWYNCisJLmNsZWFyX3NrCQk9IHRjcF92 Nl9jbGVhcl9zaywNCiB9Ow0KIA0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW5ldDZfcHJvdG9jb2wg dGNwdjZfcHJvdG9jb2wgPSB7DQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvdWRwLmMgYi9uZXQvaXB2 Ni91ZHAuYw0KaW5kZXggOGMyNTQxOS4uMjBmMDgxMiAxMDA2NDQNCi0tLSBhL25ldC9pcHY2L3Vk cC5jDQorKysgYi9uZXQvaXB2Ni91ZHAuYw0KQEAgLTE0NTMsNiArMTQ1MywxNyBAQCB2b2lkIHVk cDZfcHJvY19leGl0KHN0cnVjdCBuZXQgKm5ldCkgew0KIH0NCiAjZW5kaWYgLyogQ09ORklHX1BS T0NfRlMgKi8NCiANCit2b2lkIHVkcF92Nl9jbGVhcl9zayhzdHJ1Y3Qgc29jayAqc2ssIGludCBz aXplKQ0KK3sNCisJc3RydWN0IGluZXRfc29jayAqaW5ldCA9IGluZXRfc2soc2spOw0KKw0KKwkv KiB3ZSBkbyBub3Qgd2FudCB0byBjbGVhciBwaW5ldDYgZmllbGQsIGJlY2F1c2Ugb2YgUkNVIGxv b2t1cHMgKi8NCisJc2tfcHJvdF9jbGVhcl9wb3J0YWRkcl9udWxscyhzaywgb2Zmc2V0b2Yoc3Ry dWN0IGluZXRfc29jaywgcGluZXQ2KSk7DQorDQorCXNpemUgLT0gb2Zmc2V0b2Yoc3RydWN0IGlu ZXRfc29jaywgcGluZXQ2KSArIHNpemVvZihpbmV0LT5waW5ldDYpOw0KKwltZW1zZXQoJmluZXQt PnBpbmV0NiArIDEsIDAsIHNpemUpOw0KK30NCisNCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8NCiAN CiBzdHJ1Y3QgcHJvdG8gdWRwdjZfcHJvdCA9IHsNCkBAIC0xNDgzLDcgKzE0OTQsNyBAQCBzdHJ1 Y3QgcHJvdG8gdWRwdjZfcHJvdCA9IHsNCiAJLmNvbXBhdF9zZXRzb2Nrb3B0ID0gY29tcGF0X3Vk cHY2X3NldHNvY2tvcHQsDQogCS5jb21wYXRfZ2V0c29ja29wdCA9IGNvbXBhdF91ZHB2Nl9nZXRz b2Nrb3B0LA0KICNlbmRpZg0KLQkuY2xlYXJfc2sJICAgPSBza19wcm90X2NsZWFyX3BvcnRhZGRy X251bGxzLA0KKwkuY2xlYXJfc2sJICAgPSB1ZHBfdjZfY2xlYXJfc2ssDQogfTsNCiANCiBzdGF0 aWMgc3RydWN0IGluZXRfcHJvdG9zdyB1ZHB2Nl9wcm90b3N3ID0gew0KZGlmZiAtLWdpdCBhL25l dC9pcHY2L3VkcF9pbXBsLmggYi9uZXQvaXB2Ni91ZHBfaW1wbC5oDQppbmRleCBkNzU3MTA0Li40 NjkxZWQ1IDEwMDY0NA0KLS0tIGEvbmV0L2lwdjYvdWRwX2ltcGwuaA0KKysrIGIvbmV0L2lwdjYv dWRwX2ltcGwuaA0KQEAgLTMxLDYgKzMxLDggQEAgZXh0ZXJuIGludAl1ZHB2Nl9yZWN2bXNnKHN0 cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNvY2sgKnNrLA0KIGV4dGVybiBpbnQJdWRwdjZfcXVl dWVfcmN2X3NrYihzdHJ1Y3Qgc29jayAqIHNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsNCiBleHRl cm4gdm9pZAl1ZHB2Nl9kZXN0cm95X3NvY2soc3RydWN0IHNvY2sgKnNrKTsNCiANCitleHRlcm4g dm9pZCB1ZHBfdjZfY2xlYXJfc2soc3RydWN0IHNvY2sgKnNrLCBpbnQgc2l6ZSk7DQorDQogI2lm ZGVmIENPTkZJR19QUk9DX0ZTDQogZXh0ZXJuIGludAl1ZHA2X3NlcV9zaG93KHN0cnVjdCBzZXFf ZmlsZSAqc2VxLCB2b2lkICp2KTsNCiAjZW5kaWYNCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni91ZHBs aXRlLmMgYi9uZXQvaXB2Ni91ZHBsaXRlLmMNCmluZGV4IDFkMDhlMjEuLmRmY2M0YmUgMTAwNjQ0 DQotLS0gYS9uZXQvaXB2Ni91ZHBsaXRlLmMNCisrKyBiL25ldC9pcHY2L3VkcGxpdGUuYw0KQEAg LTU2LDcgKzU2LDcgQEAgc3RydWN0IHByb3RvIHVkcGxpdGV2Nl9wcm90ID0gew0KIAkuY29tcGF0 X3NldHNvY2tvcHQgPSBjb21wYXRfdWRwdjZfc2V0c29ja29wdCwNCiAJLmNvbXBhdF9nZXRzb2Nr b3B0ID0gY29tcGF0X3VkcHY2X2dldHNvY2tvcHQsDQogI2VuZGlmDQotCS5jbGVhcl9zawkgICA9 IHNrX3Byb3RfY2xlYXJfcG9ydGFkZHJfbnVsbHMsDQorCS5jbGVhcl9zawkgICA9IHVkcF92Nl9j bGVhcl9zaywNCiB9Ow0KIA0KIHN0YXRpYyBzdHJ1Y3QgaW5ldF9wcm90b3N3IHVkcGxpdGU2X3By b3Rvc3cgPSB7DQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYveGZybTZfcG9saWN5LmMgYi9uZXQvaXB2 Ni94ZnJtNl9wb2xpY3kuYw0KaW5kZXggZDg3OWY3ZS4uZGI3OGU3ZCAxMDA2NDQNCi0tLSBhL25l dC9pcHY2L3hmcm02X3BvbGljeS5jDQorKysgYi9uZXQvaXB2Ni94ZnJtNl9wb2xpY3kuYw0KQEAg LTk2LDggKzk2LDEwIEBAIHN0YXRpYyBpbnQgeGZybTZfZmlsbF9kc3Qoc3RydWN0IHhmcm1fZHN0 ICp4ZHN0LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LA0KIAlkZXZfaG9sZChkZXYpOw0KIA0KIAl4 ZHN0LT51LnJ0Ni5ydDZpX2lkZXYgPSBpbjZfZGV2X2dldChkZXYpOw0KLQlpZiAoIXhkc3QtPnUu cnQ2LnJ0NmlfaWRldikNCisJaWYgKCF4ZHN0LT51LnJ0Ni5ydDZpX2lkZXYpIHsNCisJCWRldl9w dXQoZGV2KTsNCiAJCXJldHVybiAtRU5PREVWOw0KKwl9DQogDQogCXhkc3QtPnUucnQ2LnJ0Nmlf cGVlciA9IHJ0LT5ydDZpX3BlZXI7DQogCWlmIChydC0+cnQ2aV9wZWVyKQ0KZGlmZiAtLWdpdCBh L25ldC9uZXRmaWx0ZXIvaXB2cy9pcF92c19wZV9zaXAuYyBiL25ldC9uZXRmaWx0ZXIvaXB2cy9p cF92c19wZV9zaXAuYw0KaW5kZXggMTNkNjA3YS4uODdlY2Y3NSAxMDA2NDQNCi0tLSBhL25ldC9u ZXRmaWx0ZXIvaXB2cy9pcF92c19wZV9zaXAuYw0KKysrIGIvbmV0L25ldGZpbHRlci9pcHZzL2lw X3ZzX3BlX3NpcC5jDQpAQCAtMzcsMTQgKzM3LDEwIEBAIHN0YXRpYyBpbnQgZ2V0X2NhbGxpZChj b25zdCBjaGFyICpkcHRyLCB1bnNpZ25lZCBpbnQgZGF0YW9mZiwNCiAJCWlmIChyZXQgPiAwKQ0K IAkJCWJyZWFrOw0KIAkJaWYgKCFyZXQpDQotCQkJcmV0dXJuIDA7DQorCQkJcmV0dXJuIC1FSU5W QUw7DQogCQlkYXRhb2ZmICs9ICptYXRjaG9mZjsNCiAJfQ0KIA0KLQkvKiBFbXB0eSBjYWxsaWQg aXMgdXNlbGVzcyAqLw0KLQlpZiAoISptYXRjaGxlbikNCi0JCXJldHVybiAtRUlOVkFMOw0KLQ0K IAkvKiBUb28gbGFyZ2UgaXMgdXNlbGVzcyAqLw0KIAlpZiAoKm1hdGNobGVuID4gSVBfVlNfUEVE QVRBX01BWExFTikNCiAJCXJldHVybiAtRUlOVkFMOw0KZGlmZiAtLWdpdCBhL25ldC9wYWNrZXQv YWZfcGFja2V0LmMgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jDQppbmRleCA4MzVmY2VhLi41YTcw MjE1IDEwMDY0NA0KLS0tIGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYw0KKysrIGIvbmV0L3BhY2tl dC9hZl9wYWNrZXQuYw0KQEAgLTgxMywzNyArODEzLDI3IEBAIHN0YXRpYyB2b2lkIHByYl9vcGVu X2Jsb2NrKHN0cnVjdCB0cGFja2V0X2tiZHFfY29yZSAqcGtjMSwNCiANCiAJc21wX3JtYigpOw0K IA0KLQlpZiAobGlrZWx5KFRQX1NUQVRVU19LRVJORUwgPT0gQkxPQ0tfU1RBVFVTKHBiZDEpKSkg ew0KLQ0KLQkJLyogV2UgY291bGQgaGF2ZSBqdXN0IG1lbXNldCB0aGlzIGJ1dCB3ZSB3aWxsIGxv c2UgdGhlDQotCQkgKiBmbGV4aWJpbGl0eSBvZiBtYWtpbmcgdGhlIHByaXYgYXJlYSBzdGlja3kN Ci0JCSAqLw0KLQkJQkxPQ0tfU05VTShwYmQxKSA9IHBrYzEtPmtueHRfc2VxX251bSsrOw0KLQkJ QkxPQ0tfTlVNX1BLVFMocGJkMSkgPSAwOw0KLQkJQkxPQ0tfTEVOKHBiZDEpID0gQkxLX1BMVVNf UFJJVihwa2MxLT5ibGtfc2l6ZW9mX3ByaXYpOw0KLQkJZ2V0bnN0aW1lb2ZkYXkoJnRzKTsNCi0J CWgxLT50c19maXJzdF9wa3QudHNfc2VjID0gdHMudHZfc2VjOw0KLQkJaDEtPnRzX2ZpcnN0X3Br dC50c19uc2VjID0gdHMudHZfbnNlYzsNCi0JCXBrYzEtPnBrYmxrX3N0YXJ0ID0gKGNoYXIgKilw YmQxOw0KLQkJcGtjMS0+bnh0X29mZnNldCA9IChjaGFyICopKHBrYzEtPnBrYmxrX3N0YXJ0ICsN Ci0JCUJMS19QTFVTX1BSSVYocGtjMS0+YmxrX3NpemVvZl9wcml2KSk7DQotCQlCTE9DS19PMkZQ KHBiZDEpID0gKF9fdTMyKUJMS19QTFVTX1BSSVYocGtjMS0+YmxrX3NpemVvZl9wcml2KTsNCi0J CUJMT0NLX08yUFJJVihwYmQxKSA9IEJMS19IRFJfTEVOOw0KLQkJcGJkMS0+dmVyc2lvbiA9IHBr YzEtPnZlcnNpb247DQotCQlwa2MxLT5wcmV2ID0gcGtjMS0+bnh0X29mZnNldDsNCi0JCXBrYzEt PnBrYmxrX2VuZCA9IHBrYzEtPnBrYmxrX3N0YXJ0ICsgcGtjMS0+a2Jsa19zaXplOw0KLQkJcHJi X3RoYXdfcXVldWUocGtjMSk7DQotCQlfcHJiX3JlZnJlc2hfcnhfcmV0aXJlX2Jsa190aW1lcihw a2MxKTsNCi0NCi0JCXNtcF93bWIoKTsNCi0NCi0JCXJldHVybjsNCi0JfQ0KKwkvKiBXZSBjb3Vs ZCBoYXZlIGp1c3QgbWVtc2V0IHRoaXMgYnV0IHdlIHdpbGwgbG9zZSB0aGUNCisJICogZmxleGli aWxpdHkgb2YgbWFraW5nIHRoZSBwcml2IGFyZWEgc3RpY2t5DQorCSAqLw0KKwlCTE9DS19TTlVN KHBiZDEpID0gcGtjMS0+a254dF9zZXFfbnVtKys7DQorCUJMT0NLX05VTV9QS1RTKHBiZDEpID0g MDsNCisJQkxPQ0tfTEVOKHBiZDEpID0gQkxLX1BMVVNfUFJJVihwa2MxLT5ibGtfc2l6ZW9mX3By aXYpOw0KKwlnZXRuc3RpbWVvZmRheSgmdHMpOw0KKwloMS0+dHNfZmlyc3RfcGt0LnRzX3NlYyA9 IHRzLnR2X3NlYzsNCisJaDEtPnRzX2ZpcnN0X3BrdC50c19uc2VjID0gdHMudHZfbnNlYzsNCisJ cGtjMS0+cGtibGtfc3RhcnQgPSAoY2hhciAqKXBiZDE7DQorCXBrYzEtPm54dF9vZmZzZXQgPSAo Y2hhciAqKShwa2MxLT5wa2Jsa19zdGFydCArDQorCQkJCSAgICBCTEtfUExVU19QUklWKHBrYzEt PmJsa19zaXplb2ZfcHJpdikpOw0KKwlCTE9DS19PMkZQKHBiZDEpID0gKF9fdTMyKUJMS19QTFVT X1BSSVYocGtjMS0+YmxrX3NpemVvZl9wcml2KTsNCisJQkxPQ0tfTzJQUklWKHBiZDEpID0gQkxL X0hEUl9MRU47DQorCXBiZDEtPnZlcnNpb24gPSBwa2MxLT52ZXJzaW9uOw0KKwlwa2MxLT5wcmV2 ID0gcGtjMS0+bnh0X29mZnNldDsNCisJcGtjMS0+cGtibGtfZW5kID0gcGtjMS0+cGtibGtfc3Rh cnQgKyBwa2MxLT5rYmxrX3NpemU7DQorCXByYl90aGF3X3F1ZXVlKHBrYzEpOw0KKwlfcHJiX3Jl ZnJlc2hfcnhfcmV0aXJlX2Jsa190aW1lcihwa2MxKTsNCiANCi0JV0FSTigxLCAiRVJST1IgYmxv Y2s6JXAgaXMgTk9UIEZSRUUgc3RhdHVzOiVkIGthY3RpdmVfYmxrX251bTolZFxuIiwNCi0JCXBi ZDEsIEJMT0NLX1NUQVRVUyhwYmQxKSwgcGtjMS0+a2FjdGl2ZV9ibGtfbnVtKTsNCi0JZHVtcF9z dGFjaygpOw0KLQlCVUcoKTsNCisJc21wX3dtYigpOw0KIH0NCiANCiAvKg0KQEAgLTkzNCwxMCAr OTI0LDYgQEAgc3RhdGljIHZvaWQgcHJiX3JldGlyZV9jdXJyZW50X2Jsb2NrKHN0cnVjdCB0cGFj a2V0X2tiZHFfY29yZSAqcGtjLA0KIAkJcHJiX2Nsb3NlX2Jsb2NrKHBrYywgcGJkLCBwbywgc3Rh dHVzKTsNCiAJCXJldHVybjsNCiAJfQ0KLQ0KLQlXQVJOKDEsICJFUlJPUi1wYmRbJWRdOiVwXG4i LCBwa2MtPmthY3RpdmVfYmxrX251bSwgcGJkKTsNCi0JZHVtcF9zdGFjaygpOw0KLQlCVUcoKTsN CiB9DQogDQogc3RhdGljIGludCBwcmJfY3Vycl9ibGtfaW5fdXNlKHN0cnVjdCB0cGFja2V0X2ti ZHFfY29yZSAqcGtjLA0KZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9hY3RfaXB0LmMgYi9uZXQvc2No ZWQvYWN0X2lwdC5jDQppbmRleCA2MGY4ZjYxLi41NzgyN2JmIDEwMDY0NA0KLS0tIGEvbmV0L3Nj aGVkL2FjdF9pcHQuYw0KKysrIGIvbmV0L3NjaGVkL2FjdF9pcHQuYw0KQEAgLTgsNyArOCw3IEBA DQogICoJCWFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbg0KICAqCQkyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLg0KICAqDQotICogQ29weXJpZ2h0OglKYW1hbCBIYWRpIFNhbGltICgy MDAyLTQpDQorICogQ29weXJpZ2h0OglKYW1hbCBIYWRpIFNhbGltICgyMDAyLTEzKQ0KICAqLw0K IA0KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPg0KQEAgLTI5OSwxNyArMjk5LDQ0IEBAIHN0YXRp YyBzdHJ1Y3QgdGNfYWN0aW9uX29wcyBhY3RfaXB0X29wcyA9IHsNCiAJLndhbGsJCT0JdGNmX2dl bmVyaWNfd2Fsa2VyDQogfTsNCiANCi1NT0RVTEVfQVVUSE9SKCJKYW1hbCBIYWRpIFNhbGltKDIw MDItNCkiKTsNCitzdGF0aWMgc3RydWN0IHRjX2FjdGlvbl9vcHMgYWN0X3h0X29wcyA9IHsNCisJ LmtpbmQJCT0JInh0IiwNCisJLmhpbmZvCQk9CSZpcHRfaGFzaF9pbmZvLA0KKwkudHlwZQkJPQlU Q0FfQUNUX0lQVCwNCisJLmNhcGFiCQk9CVRDQV9DQVBfTk9ORSwNCisJLm93bmVyCQk9CVRISVNf TU9EVUxFLA0KKwkuYWN0CQk9CXRjZl9pcHQsDQorCS5kdW1wCQk9CXRjZl9pcHRfZHVtcCwNCisJ LmNsZWFudXAJPQl0Y2ZfaXB0X2NsZWFudXAsDQorCS5sb29rdXAJCT0JdGNmX2hhc2hfc2VhcmNo LA0KKwkuaW5pdAkJPQl0Y2ZfaXB0X2luaXQsDQorCS53YWxrCQk9CXRjZl9nZW5lcmljX3dhbGtl cg0KK307DQorDQorTU9EVUxFX0FVVEhPUigiSmFtYWwgSGFkaSBTYWxpbSgyMDAyLTEzKSIpOw0K IE1PRFVMRV9ERVNDUklQVElPTigiSXB0YWJsZXMgdGFyZ2V0IGFjdGlvbnMiKTsNCiBNT0RVTEVf TElDRU5TRSgiR1BMIik7DQorTU9EVUxFX0FMSUFTKCJhY3RfeHQiKTsNCiANCiBzdGF0aWMgaW50 IF9faW5pdCBpcHRfaW5pdF9tb2R1bGUodm9pZCkNCiB7DQotCXJldHVybiB0Y2ZfcmVnaXN0ZXJf YWN0aW9uKCZhY3RfaXB0X29wcyk7DQorCWludCByZXQxLCByZXQyOw0KKwlyZXQxID0gdGNmX3Jl Z2lzdGVyX2FjdGlvbigmYWN0X3h0X29wcyk7DQorCWlmIChyZXQxIDwgMCkNCisJCXByaW50aygi RmFpbGVkIHRvIGxvYWQgeHQgYWN0aW9uXG4iKTsNCisJcmV0MiA9IHRjZl9yZWdpc3Rlcl9hY3Rp b24oJmFjdF9pcHRfb3BzKTsNCisJaWYgKHJldDIgPCAwKQ0KKwkJcHJpbnRrKCJGYWlsZWQgdG8g bG9hZCBpcHQgYWN0aW9uXG4iKTsNCisNCisJaWYgKHJldDEgPCAwICYmIHJldDIgPCAwKQ0KKwkJ cmV0dXJuIHJldDE7DQorCWVsc2UNCisJCXJldHVybiAwOw0KIH0NCiANCiBzdGF0aWMgdm9pZCBf X2V4aXQgaXB0X2NsZWFudXBfbW9kdWxlKHZvaWQpDQogew0KKwl0Y2ZfdW5yZWdpc3Rlcl9hY3Rp b24oJmFjdF94dF9vcHMpOw0KIAl0Y2ZfdW5yZWdpc3Rlcl9hY3Rpb24oJmFjdF9pcHRfb3BzKTsN CiB9DQogDQpkaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy9zY2hlZC5jIGIvbmV0L3N1bnJwYy9zY2hl ZC5jDQppbmRleCBkYzZhZjI3Li4yMDZjNjFlIDEwMDY0NA0KLS0tIGEvbmV0L3N1bnJwYy9zY2hl ZC5jDQorKysgYi9uZXQvc3VucnBjL3NjaGVkLmMNCkBAIC0yOTYsMTMgKzI5NiwyMCBAQCBFWFBP UlRfU1lNQk9MX0dQTChfX3JwY193YWl0X2Zvcl9jb21wbGV0aW9uX3Rhc2spOw0KIC8qDQogICog TWFrZSBhbiBSUEMgdGFzayBydW5uYWJsZS4NCiAgKg0KLSAqIE5vdGU6IElmIHRoZSB0YXNrIGlz IEFTWU5DLCB0aGlzIG11c3QgYmUgY2FsbGVkIHdpdGgNCi0gKiB0aGUgc3BpbmxvY2sgaGVsZCB0 byBwcm90ZWN0IHRoZSB3YWl0IHF1ZXVlIG9wZXJhdGlvbi4NCisgKiBOb3RlOiBJZiB0aGUgdGFz ayBpcyBBU1lOQywgYW5kIGlzIGJlaW5nIG1hZGUgcnVubmFibGUgYWZ0ZXIgc2l0dGluZyBvbiBh bg0KKyAqIHJwY193YWl0X3F1ZXVlLCB0aGlzIG11c3QgYmUgY2FsbGVkIHdpdGggdGhlIHF1ZXVl IHNwaW5sb2NrIGhlbGQgdG8gcHJvdGVjdA0KKyAqIHRoZSB3YWl0IHF1ZXVlIG9wZXJhdGlvbi4N CisgKiBOb3RlIHRoZSBvcmRlcmluZyBvZiBycGNfdGVzdF9hbmRfc2V0X3J1bm5pbmcoKSBhbmQg cnBjX2NsZWFyX3F1ZXVlZCgpLA0KKyAqIHdoaWNoIGlzIG5lZWRlZCB0byBlbnN1cmUgdGhhdCBf X3JwY19leGVjdXRlKCkgZG9lc24ndCBsb29wIChkdWUgdG8gdGhlDQorICogbG9ja2xlc3MgUlBD X0lTX1FVRVVFRCgpIHRlc3QpIGJlZm9yZSB3ZSd2ZSBoYWQgYSBjaGFuY2UgdG8gdGVzdA0KKyAq IHRoZSBSUENfVEFTS19SVU5OSU5HIGZsYWcuDQogICovDQogc3RhdGljIHZvaWQgcnBjX21ha2Vf cnVubmFibGUoc3RydWN0IHJwY190YXNrICp0YXNrKQ0KIHsNCisJYm9vbCBuZWVkX3dha2V1cCA9 ICFycGNfdGVzdF9hbmRfc2V0X3J1bm5pbmcodGFzayk7DQorDQogCXJwY19jbGVhcl9xdWV1ZWQo dGFzayk7DQotCWlmIChycGNfdGVzdF9hbmRfc2V0X3J1bm5pbmcodGFzaykpDQorCWlmICghbmVl ZF93YWtldXApDQogCQlyZXR1cm47DQogCWlmIChSUENfSVNfQVNZTkModGFzaykpIHsNCiAJCUlO SVRfV09SSygmdGFzay0+dS50a193b3JrLCBycGNfYXN5bmNfc2NoZWR1bGUpOw0KZGlmZiAtLWdp dCBhL3NvdW5kL3BjaS9oZGEvaGRhX2NvZGVjLmMgYi9zb3VuZC9wY2kvaGRhL2hkYV9jb2RlYy5j DQppbmRleCA0NzA3YjZjLi5mYWFiYWE1IDEwMDY0NA0KLS0tIGEvc291bmQvcGNpL2hkYS9oZGFf Y29kZWMuYw0KKysrIGIvc291bmQvcGNpL2hkYS9oZGFfY29kZWMuYw0KQEAgLTYxNSw2ICs2MTUs OSBAQCBpbnQgc25kX2hkYV9xdWV1ZV91bnNvbF9ldmVudChzdHJ1Y3QgaGRhX2J1cyAqYnVzLCB1 MzIgcmVzLCB1MzIgcmVzX2V4KQ0KIAlzdHJ1Y3QgaGRhX2J1c191bnNvbGljaXRlZCAqdW5zb2w7 DQogCXVuc2lnbmVkIGludCB3cDsNCiANCisJaWYgKCFidXMgfHwgIWJ1cy0+d29ya3EpDQorCQly ZXR1cm4gMDsNCisNCiAJdHJhY2VfaGRhX3Vuc29sX2V2ZW50KGJ1cywgcmVzLCByZXNfZXgpOw0K IAl1bnNvbCA9IGJ1cy0+dW5zb2w7DQogCWlmICghdW5zb2wpDQpkaWZmIC0tZ2l0IGEvc291bmQv c29jL2NvZGVjcy93bTg5OTQuYyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204OTk0LmMNCmluZGV4IDk4 YzU3NzQuLmI3M2YyMjYgMTAwNjQ0DQotLS0gYS9zb3VuZC9zb2MvY29kZWNzL3dtODk5NC5jDQor KysgYi9zb3VuZC9zb2MvY29kZWNzL3dtODk5NC5jDQpAQCAtMjYzNiw2ICsyNjM2LDcgQEAgc3Rh dGljIGludCB3bTg5OTRfYWlmM19od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpz dWJzdHJlYW0sDQogCQlkZWZhdWx0Og0KIAkJCXJldHVybiAwOw0KIAkJfQ0KKwkJYnJlYWs7DQog CWRlZmF1bHQ6DQogCQlyZXR1cm4gMDsNCiAJfQ0KZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvc2Ny aXB0cy9weXRob24vbmV0X2Ryb3Btb25pdG9yLnB5IGIvdG9vbHMvcGVyZi9zY3JpcHRzL3B5dGhv bi9uZXRfZHJvcG1vbml0b3IucHkNCmluZGV4IGE0ZmZjOTUuLjRjMTE2MDUgMTAwNzU1DQotLS0g YS90b29scy9wZXJmL3NjcmlwdHMvcHl0aG9uL25ldF9kcm9wbW9uaXRvci5weQ0KKysrIGIvdG9v bHMvcGVyZi9zY3JpcHRzL3B5dGhvbi9uZXRfZHJvcG1vbml0b3IucHkNCkBAIC00MCw5ICs0MCw5 IEBAIGRlZiBnZXRfa2FsbHN5bXNfdGFibGUoKToNCiANCiBkZWYgZ2V0X3N5bShzbG9jKToNCiAJ bG9jID0gaW50KHNsb2MpDQotCWZvciBpIGluIGthbGxzeW1zOg0KLQkJaWYgKGlbJ2xvYyddID49 IGxvYyk6DQotCQkJcmV0dXJuIChpWyduYW1lJ10sIGlbJ2xvYyddLWxvYykNCisJZm9yIGkgaW4g a2FsbHN5bXNbOjotMV06DQorCQlpZiBsb2MgPj0gaVsnbG9jJ106DQorCQkJcmV0dXJuIChpWydu YW1lJ10sIGxvYyAtIGlbJ2xvYyddKQ0KIAlyZXR1cm4gKE5vbmUsIDApDQogDQogZGVmIHByaW50 X2Ryb3BfdGFibGUoKToNCkBAIC02NCw3ICs2NCw3IEBAIGRlZiB0cmFjZV9lbmQoKToNCiANCiAj IGNhbGxlZCBmcm9tIHBlcmYsIHdoZW4gaXQgZmluZHMgYSBjb3JyZXNwb2luZGluZyBldmVudA0K IGRlZiBza2JfX2tmcmVlX3NrYihuYW1lLCBjb250ZXh0LCBjcHUsIHNlYywgbnNlYywgcGlkLCBj b21tLA0KLQkJCXNrYmFkZHIsIHByb3RvY29sLCBsb2NhdGlvbik6DQorCQkgICBza2JhZGRyLCBs b2NhdGlvbiwgcHJvdG9jb2wpOg0KIAlzbG9jYXRpb24gPSBzdHIobG9jYXRpb24pDQogCXRyeToN CiAJCWRyb3BfbG9nW3Nsb2NhdGlvbl0gPSBkcm9wX2xvZ1tzbG9jYXRpb25dICsgMQ0K --=-xOcedOGztt91lKmR8Vwm-- --=-oauCApNm0l7KUU8+RmZr 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) iQIVAwUAUaQxwOe/yOyVhhEJAQoLaQ//bk8IUVK2UI9ovUEdFweLz/4+PZJ+7PCH vggbUfXlVyKuAmPc6SggR4l5RV6VhzmaqrLPpQcTdM+LIqMm/iPyd7q9MBzctRaW cDWd0U2iYj6k3K7jZpw6OyePGCUEK4gQayrol6et3cC6qceYK7qR0ACHB+VJ8BX7 Tp60yjr7NHBqwF48vSg31lp7x8UEKH+BKZ5+GtwR4gwkS+tfLxa+Kota04GYcfCc JFMIlGDJqDGNumkLWO2yEJ6ARMUVzhRpx+U9j5zPmxsZhYjrFciO5h1IACbG9RRl lGEI8GjsagTA18xdJGaP2smGnL+ODwJTHXvTDQpoY9dffVr2ycSGHPBDfA8zYlqW OWRhOYtMeASkQwX+ZIjLUKIppqF1H+t9HG/k1WBLfSn6a0uRaYwCT6h1tBo7mcla vPxBl4zOekcmmjpeo6+xyGP6VObErSIbCNHAqEwBirM4HRtHNcQlXlljV9IpGrXO CvkcJamOhnnuPSAyoCZfT6tqG7g8C2zrmsiWLnGHAAy5A+hXLQRhdrkYFw0/xUf1 XT9gJcy2VlNe6uh2c2mkoFZoVSA4BPaYAmAsAGsd4Gie/r9i277N0+bB4iR2H/CP mz+BhE+2O8dR/K4tK5we9WJq1EzQfvV7O6kxUlxRWaSHOdFzCKFesxp4q7jyuVTn bVhZN5qJ3zY= =BuZG -----END PGP SIGNATURE----- --=-oauCApNm0l7KUU8+RmZr--