Re: PATCH v3: Arla CVS Current on Linux 2.6.34 to 4.4
Bo Branten <[email protected]> Fri, 22 Jan 2016 14:23:34 +0100 (CET)
| Newsgroups | gmane.comp.file-systems.arla.general |
|---|---|
| Message-ID | <[email protected]> |
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---276651502-611776909-1453469014=:9412 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII PATCH v3: Arla CVS Current on Linux 2.6.34 to 4.4 This is a small correction of my earlier patch: A change in a common include file broke compilation of arlad, this is now corrected. Bo Branten ---276651502-611776909-1453469014=:9412 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v3-arla-cvs-for-linux-4.4 Content-Transfer-Encoding: BASE64 Content-ID: <[email protected]> Content-Description: Content-Disposition: attachment; filename=patch-v3-arla-cvs-for-linux-4.4 ZGlmZiAtdXByTiBhcmxhLWN2cy9ubnBmcy9pbmNsdWRlL25ucGZzL25ucGZz X2F0dHIuaCBhcmxhL25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfYXR0ci5o DQotLS0gYXJsYS1jdnMvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19hdHRy LmgJMjAwNi0xMC0yNCAxODozMzozMC4wMDAwMDAwMDAgKzAyMDANCisrKyBh cmxhL25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfYXR0ci5oCTIwMTYtMDEt MjIgMTI6NTE6MDcuNDQyMTQxMTgyICswMTAwDQpAQCAtMTEzLDggKzExMywx OCBAQCBzdHJ1Y3Qgbm5wZnNfYXR0ciB7DQogICAgIHVpbnQzMl90CQl4YV9u bGluazsNCiAgICAgdWludDMyX3QJCXhhX3R5cGU7DQogDQorI2lmbmRlZiBf X0tFUk5FTF9fDQogICAgIHVpbnQzMl90CQl4YV91aWQ7DQogICAgIHVpbnQz Ml90CQl4YV9naWQ7DQorI2Vsc2UNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF ID49IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCisgICAga3VpZF90CQl4YV91 aWQ7DQorICAgIGtnaWRfdAkJeGFfZ2lkOw0KKyNlbHNlDQorICAgIHVpbnQz Ml90CQl4YV91aWQ7DQorICAgIHVpbnQzMl90CQl4YV9naWQ7DQorI2VuZGlm DQorI2VuZGlmDQogDQogICAgIHVpbnQzMl90CQl4YV9hdGltZTsNCiAgICAg dWludDMyX3QJCXhhX210aW1lOw0KZGlmZiAtdXByTiBhcmxhLWN2cy9ubnBm cy9pbmNsdWRlL25ucGZzL25ucGZzX21lc3NhZ2UuaCBhcmxhL25ucGZzL2lu Y2x1ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5oDQotLS0gYXJsYS1jdnMvbm5w ZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19tZXNzYWdlLmgJMjAwOS0wMi0yNCAy MToyMDo1NS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhL25ucGZzL2luY2x1 ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5oCTIwMTYtMDEtMjIgMTI6NTM6Mjku NDc3MTQ5NzQ1ICswMTAwDQpAQCAtNTIsNyArNTIsMTUgQEAgdHlwZWRlZiB1 aW50MTZfdCBubnBmc19yaWdodHM7DQogICogVGhlIG5ucGZzX2NyZWQsIGlm IHBhZyA9PSAwLCB1c2UgdWlkIA0KICAqLw0KIHR5cGVkZWYgc3RydWN0IG5u cGZzX2NyZWQgew0KKyNpZm5kZWYgX19LRVJORUxfXw0KICAgICB1aW50MzJf dCB1aWQ7DQorI2Vsc2UNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtF Uk5FTF9WRVJTSU9OKDMsMTQsMCkNCisgICAga3VpZF90IHVpZDsNCisjZWxz ZQ0KKyAgICB1aW50MzJfdCB1aWQ7DQorI2VuZGlmDQorI2VuZGlmDQogICAg IG5ucGZzX3BhZ190IHBhZzsNCiB9IG5ucGZzX2NyZWQ7DQogDQpkaWZmIC11 cHJOIGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmggYXJs YS9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19mcy5oDQotLS0gYXJsYS1jdnMv bm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaAkyMDA2LTEwLTI0IDE4OjMz OjQ4LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMvbGludXgvbm5w ZnMvbm5wZnNfZnMuaAkyMDE2LTAxLTEzIDIyOjU3OjA2LjM4NzY5MzMzOSAr MDEwMA0KQEAgLTg0LDggKzg0LDEzIEBAIHN0cnVjdCBubnBmcyB7DQogICAg IHN0cnVjdCB2ZnNtb3VudCAqY2FjaGVyb290OyAvKiBzaW1wbGlmeSBvcGVu IG9mIGNhY2hlIGJsb2NrcyAqLw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpjYWNo ZWRpcjsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxNCwwKQ0KICAgICB1aWRfdCB1aWQ7IC8qIGtlZXAgdHJhY2sg b2YgZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCiAgICAgZ2lkX3QgZ2lkOw0KKyNl bHNlDQorICAgIGt1aWRfdCB1aWQ7IC8qIGtlZXAgdHJhY2sgb2YgZGFlbW9u J3MgaWRlbnRpdHkgKi8NCisgICAga2dpZF90IGdpZDsNCisjZW5kaWYNCiAN CiAgICAgc3RydWN0IHsNCiAJaW50IHJlY3Vyc2U7DQpkaWZmIC11cHJOIGFy bGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wuaCBhcmxhL25u cGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wuaA0KLS0tIGFybGEtY3ZzL25u cGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wuaAkyMDEwLTA4LTA4IDIyOjQz OjA2LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMvbGludXgvbm5w ZnMvbm5wZnNfbG9jbC5oCTIwMTYtMDEtMTMgMjM6MDE6MTAuMTc4NzA4MDM3 ICswMTAwDQpAQCAtNTEsNyArNTEsOSBAQA0KICNpbmNsdWRlIDxsaW51eC9z dGF0Lmg+DQogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPg0KICNpbmNsdWRl IDxsaW51eC9uYW1laS5oPg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigyLDYsMzkpDQogI2luY2x1ZGUgPGxpbnV4L3NtcF9s b2NrLmg+DQorI2VuZGlmDQogI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4NCiAN CiAvKg0KQEAgLTEzOCwxMCArMTQwLDE3IEBAIHR5cGVkZWYgX191MzIgIHVp bnQzMl90Ow0KIGludA0KIG5ucGZzX2ZldGNoX3Jvb3Qoc3RydWN0IGlub2Rl ICppKTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMiw2LDM5KQ0KIGludA0KIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmls ZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCiAJICAgICBpbnQgZmxhZ3MsIGNv bnN0IGNoYXIgKmRldl9uYW1lLA0KIAkgICAgIHZvaWQgKmRhdGEsIHN0cnVj dCB2ZnNtb3VudCAqbW50KTsNCisjZWxzZQ0KK3N0cnVjdCBkZW50cnkqDQor bm5wZnNfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUs DQorCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwNCisJ ICAgICB2b2lkICpkYXRhKTsNCisjZW5kaWYNCiANCiBleHRlcm4gc3RydWN0 IGRlbnRyeV9vcGVyYXRpb25zIG5ucGZzX2RlbnRyeV9vcGVyYXRpb25zOw0K IA0KQEAgLTE5NCwxMCArMjAzLDIxIEBAIG5ucGZzX2l3cml0ZWNvdW50IChz dHJ1Y3QgaW5vZGUgKmlub2RlKQ0KICAqIEhlbHAgZnVuY3Rpb24gdG8gcmVh ZCB0aGUgZGVudHJ5LT5kX2NvdW50IGEgcG9ydGFibGUgd2F5DQogICovDQog DQorLyojaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Miw2LDM4KSovDQogc3RhdGljIGlubGluZSBpbnQNCiBubnBmc19kY291bnQg KGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCisvKiNlbHNlDQorc3Rh dGljIGlubGluZSBpbnQNCitubnBmc19kY291bnQgKHN0cnVjdCBkZW50cnkg KmRlbnRyeSkNCisjZW5kaWYqLw0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KICAgICByZXR1cm4gYXRv bWljX3JlYWQoJmRlbnRyeS0+ZF9jb3VudCk7DQorI2VsaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0KKyAgICByZXR1 cm4gYXRvbWljX3JlYWQoKGNvbnN0IGF0b21pY190KikmZGVudHJ5LT5kX2Nv dW50KTsNCisjZWxzZQ0KKyAgICByZXR1cm4gZF9jb3VudChkZW50cnkpOzsN CisjZW5kaWYNCiB9DQogDQogZXh0ZXJuIA0KQEAgLTIyOSw3ICsyNDksMTIg QEAgbm5wZnNfZml4dXBfc3lzY2FsbF9sb3NzYWdlKHZvaWQpOw0KICNlbmRp Zg0KIA0KICNkZWZpbmUgbm5wZnNfZGV2X3QgZGV2X3QNCisNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KICNk ZWZpbmUgbm5wZnNfZF9lbnRyeV91bmhhc2hlZChkKSBobGlzdF91bmhhc2hl ZChkKQ0KKyNlbHNlDQorI2RlZmluZSBubnBmc19kX2VudHJ5X3VuaGFzaGVk KGQpIGhsaXN0X2JsX3VuaGFzaGVkKGQpDQorI2VuZGlmDQogDQogI2RlZmlu ZSBOTlBGU19OT09QICAgICAgd2hpbGUoMCl7fQ0KIA0KZGlmZiAtdXByTiBh cmxhLWN2cy9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYyBhcmxhL25ucGZz L2xpbnV4L25ucGZzX2Jsb2Nrcy5jDQotLS0gYXJsYS1jdnMvbm5wZnMvbGlu dXgvbm5wZnNfYmxvY2tzLmMJMjAxMC0wOC0wOCAyMjo0MzowNC4wMDAwMDAw MDAgKzAyMDANCisrKyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5j CTIwMTYtMDEtMTYgMTQ6MTY6NDkuOTk0NDM3ODEzICswMTAwDQpAQCAtNDMs NiArNDMsMTEgQEANCiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4NCiAjaW5j bHVkZSA8bGludXgvbW0uaD4NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF ID49IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkNCitleHRlcm4gaW50IHZmc19w YXRoX2xvb2t1cChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCB2ZnNtb3VudCAq LA0KKwkJCSAgIGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgaW50LCBzdHJ1Y3Qg cGF0aCAqKTsNCisjZW5kaWYNCisNCiAvKg0KICAqIHJldHVybiB0cnVlIGlm IGJsb2NrIGlzIGluIGNhY2hlDQogICovDQpAQCAtMjkwLDcgKzI5NSwxMyBA QCBubnBmc19ibG9ja19leHRlbmQoc3RydWN0IG5ucGZzX25vZGUgKm5vDQog ICAgIGJhY2tub2RlID0gYmFja2ZpbGUtPmZfbWFwcGluZy0+aG9zdDsNCiAN CiAgICAgbXV0ZXhfbG9jaygmYmFja25vZGUtPmlfbXV0ZXgpOw0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDgsMCkNCiAg ICAgcmV0ID0gdm10cnVuY2F0ZShiYWNrbm9kZSwgbm5wZnNfYmxvY2tzaXpl KTsNCisjZWxzZQ0KKyAgICByZXQgPSBpbm9kZV9uZXdzaXplX29rKGJhY2tu b2RlLCBubnBmc19ibG9ja3NpemUpOw0KKyAgICBpZighcmV0KQ0KKyAgICAg ICAgdHJ1bmNhdGVfc2V0c2l6ZShiYWNrbm9kZSwgbm5wZnNfYmxvY2tzaXpl KTsNCisjZW5kaWYNCiAgICAgbXV0ZXhfdW5sb2NrKCZiYWNrbm9kZS0+aV9t dXRleCk7DQogICAgIA0KICAgICBmaWxwX2Nsb3NlKGJhY2tmaWxlLCBOVUxM KTsNCkBAIC0zMTgsMTUgKzMyOSwyNyBAQCBubnBmc19ibG9ja19vcGVuKHN0 cnVjdCBubnBmc19ub2RlICpub2RlDQogICAgIHN0cnVjdCBubnBmcyAqbm5w ZnNwID0gTk5QRlNfRlJPTV9YTk9ERShub2RlKTsNCiAgICAgc3RydWN0IGlu b2RlICppbm9kZSA9IFhOT0RFX1RPX1ZOT0RFKG5vZGUpOw0KICAgICBpbnQg ZmxhZ3MgPSBPX0xBUkdFRklMRSB8IGZsYWc7DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0 IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgcGF0aCBwYXRo Ow0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDE0LDApDQogICAgIHVpZF90IHNhdmV1aWQ7DQogICAgIGdp ZF90IHNhdmVnaWQ7DQorI2Vsc2UNCisgICAga3VpZF90IHNhdmV1aWQ7DQor ICAgIGtnaWRfdCBzYXZlZ2lkOw0KKyNlbmRpZg0KICAgICBpbnQgcmV0Ow0K ICNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2 LDI5KQ0KICAgICBjb25zdCBzdHJ1Y3QgY3JlZCAqb2xkX2NyZWQ7DQogICAg IHN0cnVjdCBjcmVkICpvdmVycmlkZV9jcmVkOw0KICNlbmRpZg0KIA0KKyAg ICAodm9pZClzYXZldWlkOw0KKyAgICAodm9pZClzYXZlZ2lkOw0KKw0KICAg ICBCVUdfT04oIW5ucGZzcCk7DQogICAgIEJVR19PTihmbGFncyAmIE9fQ1JF QVQgJiYgZmlsZSAhPSBOVUxMKTsNCiANCkBAIC0zNjYsMTAgKzM4OSwyMiBA QCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQog ICAgIG9sZF9jcmVkID0gb3ZlcnJpZGVfY3JlZHMob3ZlcnJpZGVfY3JlZCk7 DQogI2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMSwwKQ0KICAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAo bm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQogCQkJICBj YWNoZW5hbWUsDQogCQkJICBmbGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFS RU5UIDogMCwNCiAJCQkgICZuZCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICByZXQgPSB2ZnNf cGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJv b3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBmbGFncyAmIE9fQ1JFQVQg PyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZuZC5wYXRoKTsNCisjZWxz ZQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRp ciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJ ICBmbGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkg ICZwYXRoKTsNCisjZW5kaWYNCiAgICAgaWYgKHJldCkgew0KIAl1aW50MzJf dCBubWFza3MgPSBub2RlLT5kYXRhLm5tYXNrczsNCiAJdWludDMyX3QgbWFz azsNCkBAIC0zOTYsMTYgKzQzMSwzNyBAQCBubnBmc19ibG9ja19vcGVuKHN0 cnVjdCBubnBmc19ub2RlICpub2RlDQogICAgIA0KICAgICBpZiAoZmxhZ3Mg JiBPX0NSRUFUKSB7DQogCS8qIFhYWCBtb2RlIGJpdHMgb24gY3JlYXRlIC0t IFNfSVJVU1J8U19JV1VTUiAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDEsMCkNCiAJc3RydWN0IGRlbnRyeSAqZGVu dHJ5ID0gbG9va3VwX2NyZWF0ZSgmbmQsIDApOwkNCisjZWxpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCS8qIFRP RE86IGNoZWNrIHRoZSBjYWxsIHRvIGtlcm5fcGF0aF9jcmVhdGUoKSwgaXMg dGhlIHNlY29uZCBhcmd1bWVudCBvcHRpb25hbD8gKi8NCisJc3RydWN0IGRl bnRyeSAqZGVudHJ5ID0ga2Vybl9wYXRoX2NyZWF0ZShBVF9GRENXRCwgTlVM TCwgJm5kLnBhdGgsIDApOwkNCisjZWxzZQ0KKwkvKiBUT0RPOiBjaGVjayB0 aGUgY2FsbCB0byBrZXJuX3BhdGhfY3JlYXRlKCksIGlzIHRoZSBzZWNvbmQg YXJndW1lbnQgb3B0aW9uYWw/ICovDQorCXN0cnVjdCBkZW50cnkgKmRlbnRy eSA9IGtlcm5fcGF0aF9jcmVhdGUoQVRfRkRDV0QsIE5VTEwsICZwYXRoLCAw KTsJDQorI2VuZGlmDQogCWlmIChJU19FUlIoZGVudHJ5KSkgew0KIAkgICAg cmV0ID0gUFRSX0VSUihkZW50cnkpOw0KIAl9IGVsc2Ugew0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJICAg IHJldCA9IHZmc19jcmVhdGUobmQucGF0aC5kZW50cnktPmRfaW5vZGUsIGRl bnRyeSwgU19JUlVTUnxTX0lXVVNSLCAmbmQpOw0KKyNlbGlmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJICAgIC8q IFRPRE86IHNob3VsZCB0aGUgbGFzdCBhcmd1bWVudCB0byB2ZnNfY3JlYXRl OiBib29sIHdhbnRfZXhjbCwgYmUgMCBvciAxPyAqLw0KKwkgICAgcmV0ID0g dmZzX2NyZWF0ZShuZC5wYXRoLmRlbnRyeS0+ZF9pbm9kZSwgZGVudHJ5LCBT X0lSVVNSfFNfSVdVU1IsIDApOw0KKyNlbHNlDQorCSAgICAvKiBUT0RPOiBz aG91bGQgdGhlIGxhc3QgYXJndW1lbnQgdG8gdmZzX2NyZWF0ZTogYm9vbCB3 YW50X2V4Y2wsIGJlIDAgb3IgMT8gKi8NCisJICAgIHJldCA9IHZmc19jcmVh dGUocGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVTUnxTX0lX VVNSLCAwKTsNCisjZW5kaWYNCiAJICAgIGRwdXQoZGVudHJ5KTsNCiAJfQ0K IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDE5LDApDQogCW11dGV4X3VubG9jaygmbmQucGF0aC5kZW50cnktPmRfaW5v ZGUtPmlfbXV0ZXgpOw0KIAlwYXRoX3B1dCgmbmQucGF0aCk7DQorI2Vsc2UN CisJbXV0ZXhfdW5sb2NrKCZwYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9tdXRl eCk7DQorCXBhdGhfcHV0KCZwYXRoKTsNCisjZW5kaWYNCiANCiAJaWYgKHJl dCkgew0KIAkgICAgcHJpbnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBjcmVh dGUgZmFpbGVkOiAlZFxuIiwgY2FjaGVuYW1lLCAtcmV0KTsNCkBAIC00MjEs MTQgKzQ3NywyMyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19u b2RlICpub2RlDQogICAgIH0gZWxzZSB7DQogI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyOSkNCiAJc3RydWN0IGZpbGUg KmYgPSBkZW50cnlfb3BlbihuZC5wYXRoLmRlbnRyeSwgbmQucGF0aC5tbnQs IGZsYWdzKTsNCi0jZWxzZQ0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICAgICAgc3RydWN0IGZpbGUg KmYgPSBkZW50cnlfb3BlbihuZC5wYXRoLmRlbnRyeSwgbmQucGF0aC5tbnQs IGZsYWdzLCBjdXJyZW50X2NyZWQoKSk7DQorI2VsaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwlzdHJ1Y3QgcGF0 aCB0bXBfcGF0aCA9IHsgLm1udCA9IG5kLnBhdGgubW50LCAuZGVudHJ5ID0g bmQucGF0aC5kZW50cnkgfTsNCisgICAgICAgIHN0cnVjdCBmaWxlICpmID0g ZGVudHJ5X29wZW4oJnRtcF9wYXRoLCBmbGFncywgY3VycmVudF9jcmVkKCkp Ow0KKyNlbHNlDQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9v cGVuKCZwYXRoLCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KICNlbmRpZg0K IAlpZiAoSVNfRVJSKGYpKSB7DQogCSAgICByZXQgPSBQVFJfRVJSKGYpOw0K IAkgICAgcHJpbnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBvcGVuIGZhaWxl ZDogJWRcbiIsIGNhY2hlbmFtZSwgLXJldCk7DQogCSAgICBubnBmc19kZWJ1 Z19vb3BzKCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMTksMCkNCiAJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsNCisj ZWxzZQ0KKwkgICAgcGF0aF9wdXQoJnBhdGgpOw0KKyNlbmRpZg0KIAl9IGVs c2Ugew0KIAkgICAgKmZpbGUgPSBmOw0KIAl9DQpkaWZmIC11cHJOIGFybGEt Y3ZzL25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5jIGFybGEvbm5wZnMvbGlu dXgvbm5wZnNfY29tbW9uLmMNCi0tLSBhcmxhLWN2cy9ubnBmcy9saW51eC9u bnBmc19jb21tb24uYwkyMDA2LTEyLTExIDE3OjMxOjQ2LjAwMDAwMDAwMCAr MDEwMA0KKysrIGFybGEvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMJMjAx Ni0wMS0xNCAxNjoxNTowMC4zNDc0NDc2NTcgKzAxMDANCkBAIC0xMTIsMTAg KzExMiwxNSBAQCBubnBmc19wcmludF9hbGlhc2VzKGNvbnN0IHN0cnVjdCBp bm9kZSAqDQogdm9pZA0KIG5ucGZzX3ByaW50X2FsaWFzZXNfcmVhbChjb25z dCBzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVjdCBs aXN0X2hlYWQgKmFsaWFzOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9k ZSAqYWxpYXM7DQorI2VuZGlmDQogICAgIHN0cnVjdCBkZW50cnkgKmRlbnRy eTsNCiAgICAgaW50IGJhaWxvdXQgPSAxMDA7DQogDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBhbGlh cyA9IGlub2RlLT5pX2RlbnRyeS5uZXh0Ow0KICAgICB3aGlsZSAoYWxpYXMg IT0gJmlub2RlLT5pX2RlbnRyeSkgew0KIAlpZiAoLS1iYWlsb3V0IDwgMCkg ew0KQEAgLTEzMSw2ICsxMzYsMjYgQEAgbm5wZnNfcHJpbnRfYWxpYXNlc19y ZWFsKGNvbnN0IHN0cnVjdCBpbg0KIAl9DQogCWFsaWFzID0gYWxpYXMtPm5l eHQ7DQogICAgIH0NCisjZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hf ZW50cnkoZGVudHJ5LCBhbGlhcywgJmlub2RlLT5pX2RlbnRyeSwgZF9hbGlh cykgew0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsMTksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5 LCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2Vsc2UNCisgICAg aGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCAmaW5vZGUtPmlfZGVudHJ5 LCBkX3UuZF9hbGlhcykgew0KKyNlbmRpZg0KKwlpZiAoLS1iYWlsb3V0IDwg MCkgew0KKwkgICAgcHJpbnRrKCIgLi4uIik7DQorCSAgICBicmVhazsNCisJ fQ0KKwlpZiAoZGVudHJ5KSB7DQorCSAgICBwcmludGsoIiAlLipzKCVwKSIs IChpbnQpZGVudHJ5LT5kX25hbWUubGVuLA0KKwkJICAgZGVudHJ5LT5kX25h bWUubmFtZSwgZGVudHJ5KTsNCisJICAgIGlmIChubnBmc19kX2VudHJ5X3Vu aGFzaGVkKCZkZW50cnktPmRfaGFzaCkpDQorCQlwcmludGsoIih1bmhhc2hl ZCkiKTsNCisJfQ0KKyAgICB9DQorI2VuZGlmDQogICAgIHByaW50aygiXG4i KTsNCiB9DQogDQpAQCAtMTQ2LDcgKzE3MSwxMSBAQCBubnBmc19wcmludF9j aGlsZHJlbihjb25zdCBzdHJ1Y3QgZGVudHJ5DQogDQogICAgIHdoaWxlIChz dWJkaXJzICE9ICZkZW50cnktPmRfc3ViZGlycykgew0KIAlzdHJ1Y3QgbGlz dF9oZWFkICp0bXAgPSBzdWJkaXJzOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCXN0cnVjdCBkZW50cnkg KmNoaWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfdS5k X2NoaWxkKTsNCisjZWxzZQ0KKwlzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9IGxp c3RfZW50cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBkX2NoaWxkKTsNCisjZW5k aWYNCiANCiAJcHJpbnRrKCIgJS4qcyglcCkiLCAoaW50KWNoaWxkLT5kX25h bWUubGVuLA0KIAkgICAgICAgY2hpbGQtPmRfbmFtZS5uYW1lLCBjaGlsZCk7 DQpkaWZmIC11cHJOIGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX2Rldi5j IGFybGEvbm5wZnMvbGludXgvbm5wZnNfZGV2LmMNCi0tLSBhcmxhLWN2cy9u bnBmcy9saW51eC9ubnBmc19kZXYuYwkyMDA2LTEwLTI0IDE4OjMzOjM2LjAw MDAwMDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMvbGludXgvbm5wZnNfZGV2 LmMJMjAxNi0wMS0xNCAxNjoyODoxOS4yNTA0OTU4MjAgKzAxMDANCkBAIC0z MDAsNyArMzAwLDkgQEAgbm5wZnNfaW52YWxpZGF0ZV9hbGwoc3RydWN0IG5u cGZzICpubnBmcw0KICAgICBOTlBGU0RFQihYREVCTk9ERSwgKCJmcmVlX2Fs bF9ubnBmc19ub2RlcyBzdGFydGluZ1xuIikpOw0KIA0KICAgICBzaHJpbmtf ZGNhY2hlX3NiKG5ucGZzLT5zYik7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNykNCiAgICAgaW52YWxpZGF0ZV9p bm9kZXMobm5wZnMtPnNiKTsNCisjZW5kaWYNCiAgICAgDQogICAgIE5OUEZT REVCKFhERUJOT0RFLCAoImZyZWVfYWxsX25ucGZzX25vZGVzIGRvbmVcbiIp KTsNCiB9DQpAQCAtMzc0LDcgKzM3NiwxMSBAQCBubnBmc19kZXZjbG9zZShz dHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RyDQogc3RhdGljIHNzaXplX3QNCiBu bnBmc19kZXZyZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyICpidWYsIHNp emVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQ0KIHsNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBubnBm c19kZXZfdCBkZXYgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2 Ow0KKyNlbHNlDQorICAgIG5ucGZzX2Rldl90IGRldiA9IGZpbGUtPmZfcGF0 aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZW5kaWYNCiAgICAgc3Ry dWN0IG5ucGZzICpubnBmc3AgPSAmbm5wZnNbTUlOT1IoZGV2KV07DQogICAg IHN0cnVjdCBubnBmc19saW5rICpmaXJzdDsNCiAgICAgaW50IHJldCA9IDAs IGVycm9yID0gMDsNCkBAIC00MzksOCArNDQ1LDEyIEBAIG5ucGZzX2Rldndy aXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdA0KIA0KICAgICBOTlBGU0RF QihYREVCREVWLCAoIm5ucGZzX2RldndyaXRlXG4iKSk7DQogICAgIA0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp DQogICAgIGRldiA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX3JkZXY7 DQotICAgIG5ucGZzcCA9ICZubnBmc1tNSU5PUihkZXYpXTsNCisjZWxzZQ0K KyAgICBkZXYgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLT5pX3Jk ZXY7DQorI2VuZGlmDQorICAgICBubnBmc3AgPSAmbm5wZnNbTUlOT1IoZGV2 KV07DQogDQogICAgIGRvd24oJm5ucGZzcC0+Y2hhbm5lbF9zZW0pOw0KICAg ICBpZiAobm5wZnNwLT5zdGF0dXMgJiBOTlBGU19ERVZXUklURSkgew0KQEAg LTUwNSwxOSArNTE1LDM3IEBAIG5ucGZzX2RldndyaXRlKHN0cnVjdCBmaWxl ICpmaWxlLCBjb25zdA0KIC8qDQogICogTm90IHVzZWQuDQogICovDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikN CiBzdGF0aWMgaW50DQogbm5wZnNfZGV2aW9jdGwoc3RydWN0IGlub2RlICpp bm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsDQogCSAgICAgICB1bnNpZ25lZCBp bnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisjZWxzZQ0KK3N0YXRpYyBs b25nDQorbm5wZnNfdW5sb2NrZWRfZGV2aW9jdGwoc3RydWN0IGZpbGUgKmZp bGUsDQorCSAgICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25n IGFyZykNCisjZW5kaWYNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAgICAgTk5QRlNERUIoWERFQkRF ViwgKCJubnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwN CiAJCSAgICAgICBpbm9kZS0+aV9yZGV2LCBmaWxlLT5mX2ZsYWdzKSk7DQor I2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx OSwwKQ0KKyAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldmlvY3Rs IGRldiA9ICVkLCBmbGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZpbGUtPmZf ZGVudHJ5LT5kX2lub2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisj ZWxzZQ0KKyAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldmlvY3Rs IGRldiA9ICVkLCBmbGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZpbGUtPmZf cGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldiwgZmlsZS0+Zl9mbGFncykp Ow0KKyNlbmRpZg0KICAgICByZXR1cm4gLUVJTlZBTDsNCiB9DQogDQogc3Rh dGljIHVuc2lnbmVkIGludA0KIG5ucGZzX2RldnBvbGwoc3RydWN0IGZpbGUg KmZpbGUsIHBvbGxfdGFibGUgKndhaXQpDQogew0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIG5ucGZz X2Rldl90IGRldiA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX3JkZXY7 DQorI2Vsc2UNCisgICAgbm5wZnNfZGV2X3QgZGV2ID0gZmlsZS0+Zl9wYXRo LmRlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbmRpZg0KICAgICBzdHJ1 Y3Qgbm5wZnMgKm5ucGZzcCA9ICZubnBmc1tNSU5PUihkZXYpXTsNCiAgICAg aW50IHJldCA9IDA7DQogICAgIA0KQEAgLTk1Myw3ICs5ODEsMTEgQEAgc3Ry dWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19mb3BzID0gew0KICAgICByZWFk OgkJbm5wZnNfZGV2cmVhZCwNCiAgICAgd3JpdGU6CQlubnBmc19kZXZ3cml0 ZSwNCiAgICAgcG9sbDoJCW5ucGZzX2RldnBvbGwsDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAgICAgaW9j dGw6CQlubnBmc19kZXZpb2N0bCwNCisjZWxzZQ0KKyAgICB1bmxvY2tlZF9p b2N0bDoJbm5wZnNfdW5sb2NrZWRfZGV2aW9jdGwsDQorI2VuZGlmDQogICAg IHJlbGVhc2U6CQlubnBmc19kZXZjbG9zZSwNCiAgICAgb3BlbjoJCW5ucGZz X2Rldm9wZW4sDQogfTsNCkBAIC05NjgsOCArMTAwMCwxMyBAQCBubnBmc19p bml0X2RldmljZSh2b2lkKQ0KIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCYobm5w ZnNbaV0ud2FpdF9xdWV1ZSkpOw0KIAlubnBmc19pbml0cSgmbm5wZnNbaV0u bWVzc2FnZXEpOw0KIAlubnBmc19pbml0cSgmbm5wZnNbaV0uc2xlZXBxKTsN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2 LDM3KQ0KIAlpbml0X01VVEVYKCZubnBmc1tpXS5pbmFjdGl2ZV9zZW0pOw0K IAlpbml0X01VVEVYKCZubnBmc1tpXS5jaGFubmVsX3NlbSk7DQorI2Vsc2UN CisJc2VtYV9pbml0KCZubnBmc1tpXS5pbmFjdGl2ZV9zZW0sIDEpOw0KKwlz ZW1hX2luaXQoJm5ucGZzW2ldLmNoYW5uZWxfc2VtLCAxKTsNCisjZW5kaWYN CiAJSU5JVF9MSVNUX0hFQUQoJm5ucGZzW2ldLmluYWN0aXZlX2xpc3QpOw0K IAlubnBmc1tpXS5ubm9kZXMgPSAwOw0KICAgICB9DQpkaWZmIC11cHJOIGFy bGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX2lub2Rlb3BzLmMgYXJsYS9ubnBm cy9saW51eC9ubnBmc19pbm9kZW9wcy5jDQotLS0gYXJsYS1jdnMvbm5wZnMv bGludXgvbm5wZnNfaW5vZGVvcHMuYwkyMDEwLTA4LTA4IDIyOjQzOjA0LjAw MDAwMDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMvbGludXgvbm5wZnNfaW5v ZGVvcHMuYwkyMDE2LTAxLTE1IDEyOjQ0OjU2LjkyMjg5NjYzOSArMDEwMA0K QEAgLTQwLDEwICs0MCwxNCBAQA0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19k ZXYuaD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfZGlyZW50Lmg+DQogI2lu Y2x1ZGUgPG5ucGZzL25ucGZzX3N5c2NhbGxzLmg+DQorI2luY2x1ZGUgPGxp bnV4L2Fpby5oPg0KICNpbmNsdWRlIDxsaW51eC9iaW5mbXRzLmg+DQogI2lu Y2x1ZGUgPGxpbnV4L2ZpbGUuaD4NCiAjaW5jbHVkZSA8bGludXgvcGFnZW1h cC5oPg0KICNpbmNsdWRlIDxsaW51eC9wYWdlLWZsYWdzLmg+DQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTig0LDEsMCkNCisj aW5jbHVkZSA8bGludXgvdWlvLmg+DQorI2VuZGlmDQogI2luY2x1ZGUgPGxp bnV4L3dyaXRlYmFjay5oPg0KICNpbmNsdWRlIDxhc20vZmNudGwuaD4NCiAN CkBAIC01NCwxMSArNTgsMjMgQEAgUkNTSUQoIiRJZDogbm5wZnNfaW5vZGVv cHMuYyx2IDEuMjI2IDIwMQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luY19p bnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcpOw0KIA0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiBz dGF0aWMgaW50DQogbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkg KmRlbnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpOw0KLQ0KKyNlbHNlDQog c3RhdGljIGludA0KK25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5 ICpkZW50cnksIHVuc2lnbmVkIGludCBmbGFncyk7DQorI2VuZGlmDQorDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwz OCkNCitzdGF0aWMNCitpbnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVu dHJ5ICpkZW50cnkpOw0KKyNlbHNlDQorc3RhdGljDQoraW50DQorbm5wZnNf ZF9kZWxldGUoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KTsNCisjZW5k aWYNCiANCiBzdGF0aWMgdm9pZA0KIG5ucGZzX2RfcmVsZWFzZShzdHJ1Y3Qg ZGVudHJ5ICpkZW50cnkpOw0KQEAgLTIxNCw4ICsyMzAsMTMgQEAgbm5wZnNf aW5vZGVfdmFsaWQoc3RydWN0IGlub2RlICppbm9kZSkNCiAgKiBubnBmc19s b29rdXAgbm93IHJldHVybnMgYSBkZW50cnkuDQogICovDQogDQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIHN0 YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCiBubnBmc19sb29rdXAgKHN0cnVjdCBp bm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBuYW1l aWRhdGEgKm5kKQ0KKyNlbHNlDQorc3RhdGljIHN0cnVjdCBkZW50cnkgKg0K K25ucGZzX2xvb2t1cCAoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50 cnkgKmRlbnRyeSwgdW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsN CiAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfZ2V0bm9kZSBtc2c7DQogICAg IHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KQEAgLTQwNyw3ICs0MjgsMTEgQEAg ZmluZF9maXJzdF9ibG9jayhzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KIHN0 YXRpYyBpbnQNCiBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUs IHVfaW50IGZsYWcpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5v ZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBz dHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9p bm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSBO TlBGU19GUk9NX1ZOT0RFKGlub2RlKTsNCiAgICAgc3RydWN0IG5ucGZzX25v ZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KICAgICBsb2ZmX3Qg bGVuID0gaV9zaXplX3JlYWQoaW5vZGUpOw0KQEAgLTQ3NCwxNSArNDk5LDE4 IEBAIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQN CiAgKg0KICAqLw0KIA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLCA2LCAzNSkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM1KQ0KIHN0YXRpYyBpbnQNCiBubnBm c19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGRlbnRyeSAqZGVu dHJ5LCBpbnQgZGF0YXN5bmMpDQotI2Vsc2UNCisjZWxpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEsMCkNCiBzdGF0aWMgaW50 DQogbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIGludCBkYXRhc3lu YykNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19mc3luYyhzdHJ1Y3Qg ZmlsZSAqZmlsZSwgbG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgZGF0 YXN5bmMpDQogI2VuZGlmDQogew0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUg Pj0gS0VSTkVMX1ZFUlNJT04oMiwgNiwgMzUpDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMzUpDQogICAgIHN0cnVj dCBkZW50cnkgKmRlbnRyeSA9IGZpbGUtPmZfcGF0aC5kZW50cnk7DQogI2Vu ZGlmDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBERU5UUllfVE9fSU5P REUoZGVudHJ5KTsNCkBAIC00OTAsNiArNTE4LDggQEAgbm5wZnNfZnN5bmMo c3RydWN0IGZpbGUgKmZpbGUsIGludCBkYXRhcw0KICAgICBzdHJ1Y3Qgbm5w ZnNfbm9kZSAqeG47DQogICAgIGludCBlcnJvciA9IDA7DQogDQorICAgICh2 b2lkKW5ucGZzcDsNCisNCiAgICAgZXJyb3IgPSBubnBmc19pbm9kZV92YWxp ZChpbm9kZSk7DQogICAgIGlmIChlcnJvcikNCiAJcmV0dXJuIGVycm9yOw0K QEAgLTYyMiwxMSArNjUyLDI1IEBAIGNoZWNrX3JpZ2h0cyAobm5wZnNfcmln aHRzIHJpZ2h0cywgaW50IG0NCiAgKiBXZSBkb24ndCBob2xkIGlfbXV0ZXgu DQogICovDQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigyLDYsMzgpIHx8IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO RUxfVkVSU0lPTigzLDEsMCkpDQogc3RhdGljIGludA0KIG5ucGZzX3Blcm1p c3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1vZGUpDQorI2Vsc2UN CitzdGF0aWMgaW50DQorbm5wZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUg Kmlub2RlLCBpbnQgbW9kZSwgdW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRp Zg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCi0gICAgbm5wZnNfcGFnX3Qg cGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KKyAgICBubnBmc19wYWdfdCBwYWc7 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigz LDEsMCkNCisgICAgaWYgKG1vZGUgJiBNQVlfTk9UX0JMT0NLKQ0KKyAgICAg ICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RF ID49IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCisgICAgaWYgKGZsYWdzICYg SVBFUk1fRkxBR19SQ1UpDQorICAgICAgICByZXR1cm4gLUVDSElMRDsNCisj ZW5kaWYNCisNCisgICAgcGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICAN CiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2FjY2VzcyAoJXAp IG1vZGUgPSAwJW8gYWxpYXNlczoiLCBpbm9kZSwgbW9kZSkpOw0KICAgICBu bnBmc19wcmludF9hbGlhc2VzKGlub2RlKTsNCkBAIC03ODQsMTEgKzgyOCwx OSBAQCBubnBmc19kYXRhX3ZhbGlkKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVf DQogaW50IG5ucGZzX2ZpbGVfbW1hcChzdHJ1Y3QgZmlsZSAqIGZpbGUsIHN0 cnVjdCB2bV9hcmVhX3N0cnVjdCAqIHZtYSkNCiB7DQogICAgIGludCBmbGFn cywgZXJyb3IgPSAwOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUg PSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1 Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9k ZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBp bmcgPSBmaWxlLT5mX21hcHBpbmc7DQogDQogICAgIE5OUEZTREVCKFhERUJW Tk9QUywgKCJubnBmc19tbWFwIGlub2RlOiAlcFxuIiwgaW5vZGUpKTsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww KQ0KICAgICBubnBmc19wcmludF9wYXRoKGZpbGUtPmZfZGVudHJ5KTsNCisj ZWxzZQ0KKyAgICBubnBmc19wcmludF9wYXRoKGZpbGUtPmZfcGF0aC5kZW50 cnkpOw0KKyNlbmRpZg0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5w ZnNfbW1hcCBhbGlhc2VzOiIpKTsNCiAgICAgbm5wZnNfcHJpbnRfYWxpYXNl cyhpbm9kZSk7DQogICAgIA0KQEAgLTgyMywyOCArODc1LDUxIEBAIGludCBu bnBmc19maWxlX21tYXAoc3RydWN0IGZpbGUgKiBmaWxlLA0KICAqDQogICov DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMTYsMCkNCiBzdGF0aWMgc3NpemVfdA0KIG5ucGZzX2Fpb19yZWFkKHN0 cnVjdCBraW9jYiAqaW9jYiwNCiAJICAgICAgIGNvbnN0IHN0cnVjdCBpb3Zl YyAqaW92LCB1bnNpZ25lZCBsb25nIG5yX3NlZ3MsDQogCSAgICAgICBsb2Zm X3QgcG9zKQ0KKyNlbHNlDQorc3RhdGljIHNzaXplX3QNCitubnBmc19yZWFk X2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKnRv KQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCiAgICAgc3Ry dWN0IGZpbGUgKmZpbGUgPSBpb2NiLT5raV9maWxwOw0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEyLDApDQogICAgIHNz aXplX3QgY291bnQgPSBpb2NiLT5raV9sZWZ0Ow0KKyNlbGlmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsMSwwKQ0KKyAgICBzc2l6 ZV90IGNvdW50ID0gaW9jYi0+a2lfbmJ5dGVzOw0KKyNlbHNlDQorICAgIHNz aXplX3QgY291bnQgPSBpb3ZfaXRlcl9jb3VudCh0byk7DQorI2VuZGlmDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks MCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5 LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUg PSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAg ICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9k ZSk7DQogICAgIA0KICAgICBpZiAoeG4gIT0gTlVMTCkNCiAJTk5QRlNERUIo WERFQlZOT1BTLCAoIm5ucGZzX3JlYWRfZmlsZSglcCk6IHRva2VuczogMHgl eFxuIiwNCiAJCQkgICAgIGlub2RlLCB4bi0+dG9rZW5zKSk7DQogDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkN CiAgICAgZXJyb3IgPSBubnBmc19kYXRhX3ZhbGlkKGlub2RlLCBOTlBGU19E QVRBX1IsIHBvcywgcG9zICsgY291bnQpOw0KKyNlbHNlDQorICAgIGVycm9y ID0gbm5wZnNfZGF0YV92YWxpZChpbm9kZSwgTk5QRlNfREFUQV9SLCBpb2Ni LT5raV9wb3MsIGlvY2ItPmtpX3BvcyArIGNvdW50KTsNCisjZW5kaWYNCiAg ICAgaWYgKGVycm9yKSB7DQogCU5OUEZTREVCKFhERUJWTk9QUywgKCJubnBm c19yZWFkX2ZpbGU6IGRhdGEgbm90IHZhbGlkICVkXG4iLCBlcnJvcikpOw0K IAlyZXR1cm4gZXJyb3I7DQogICAgIH0NCiAgICAgDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgZXJy b3IgPSBnZW5lcmljX2ZpbGVfYWlvX3JlYWQoaW9jYiwgaW92LCBucl9zZWdz LCBwb3MpOw0KKyNlbHNlDQorICAgIGVycm9yID0gZ2VuZXJpY19maWxlX3Jl YWRfaXRlcihpb2NiLCB0byk7DQorI2VuZGlmDQogICAgIE5OUEZTREVCKFhE RUJWTk9QUywgKCJubnBmc19yZWFkX2ZpbGU6IGVycm9yID0gJWRcbiIsIGVy cm9yKSk7DQogICAgIHJldHVybiBlcnJvcjsNCiB9DQpAQCAtODUzLDE3ICs5 MjgsMzYgQEAgbm5wZnNfYWlvX3JlYWQoc3RydWN0IGtpb2NiICppb2NiLA0K ICAqDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMTYsMCkNCiBzdGF0aWMgc3NpemVfdA0KIG5ucGZzX2Fp b193cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogCQljb25zdCBzdHJ1Y3Qg aW92ZWMgKmlvdiwgdW5zaWduZWQgbG9uZyBucl9zZWdzLA0KIAkJbG9mZl90 IHBvcykNCisjZWxzZQ0KK3N0YXRpYyBzc2l6ZV90DQorbm5wZnNfd3JpdGVf aXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJv bSkNCisjZW5kaWYNCiB7DQogICAgIGludCBlcnJvciA9IDA7DQogICAgIHN0 cnVjdCBmaWxlICpmaWxlID0gaW9jYi0+a2lfZmlscDsNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMiwwKQ0KICAgICBz c2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbGVmdDsNCisjZWxpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDEsMCkNCisgICAgc3Np emVfdCBjb3VudCA9IGlvY2ItPmtpX25ieXRlczsNCisjZWxzZQ0KKyAgICBz c2l6ZV90IGNvdW50ID0gaW92X2l0ZXJfY291bnQoZnJvbSk7DQorI2VuZGlm DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs MTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVu dHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5v ZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0K ICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShp bm9kZSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsMTYsMCkNCiAgICAgbG9mZl90IHJlYWxwb3MgPSBwb3M7DQorI2Vs c2UNCisgICAgbG9mZl90IHJlYWxwb3MgPSBpb2NiLT5raV9wb3M7DQorI2Vu ZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNf YWlvX3dyaXRlKCVwKTogdG9rZW5zOiAweCV4XG4iLA0KIAkJCSBpbm9kZSwg eG4tPnRva2VucykpOw0KQEAgLTg3Nyw3ICs5NzEsMTEgQEAgbm5wZnNfYWlv X3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAJcmV0dXJuIGVycm9yOw0K ICAgICB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMTYsMCkNCiAgICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfYWlv X3dyaXRlKGlvY2IsIGlvdiwgbnJfc2VncywgcG9zKTsNCisjZWxzZQ0KKyAg ICBlcnJvciA9IGdlbmVyaWNfZmlsZV93cml0ZV9pdGVyKGlvY2IsIGZyb20p Ow0KKyNlbmRpZg0KICAgICBpZiAoIUlTX0VSUl9WQUxVRShlcnJvcikpDQog CXhuLT5mbGFncyB8PSBOTlBGU19EQVRBX0RJUlRZOyAvKiBYWFggcmFjZSAq Lw0KIA0KQEAgLTg4NSw5ICs5ODMsMTkgQEAgbm5wZnNfYWlvX3dyaXRlKHN0 cnVjdCBraW9jYiAqaW9jYiwNCiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCiAN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywz LDApDQogc3RhdGljIGludA0KIG5ucGZzX2NyZWF0ZShzdHJ1Y3QgaW5vZGUg KmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KIAkgICAgIGludCBtb2Rl LCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCitzdGF0aWMgaW50DQor bm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5 ICpkZW50cnksDQorCSAgICAgdW1vZGVfdCBtb2RlLCBzdHJ1Y3QgbmFtZWlk YXRhICpuZCkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19jcmVhdGUo c3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwNCisJ ICAgICB1bW9kZV90IG1vZGUsIGJvb2wgZXhjbCkNCisjZW5kaWYNCiB7DQog ICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1Y3Qgbm5wZnNf bm9kZSAqeG47DQpAQCAtMTAzOCw4ICsxMTQ2LDEzIEBAIG5ucGZzX3JlbmFt ZSAoc3RydWN0IGlub2RlICogb2xkX2Rpciwgc3QNCiAgICAgcmV0dXJuIGVy cm9yOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywzLDApDQogc3RhdGljIGludA0KIG5ucGZzX21rZGlyKHN0 cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBpbnQg bW9kZSkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19ta2RpcihzdHJ1 Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW1vZGVf dCBtb2RlKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5ucGZzICpubnBm c3A7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCkBAIC0xMjUyLDEy ICsxMzY1LDIxIEBAIHN0YXRpYyBpbnQgbm5wZnNfc3ltbGluayhzdHJ1Y3Qg aW5vZGUgKmQNCiAvKg0KICAqIFdlIGhvbGQgaV9tdXRleC4NCiAgKi8NCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMSww KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICog ZmlsZSwgdm9pZCAqIGRpcmVudCwgZmlsbGRpcl90IGZpbGxkaXIpDQorI2Vs c2UNCitzdGF0aWMgaW50DQorbm5wZnNfaXRlcmF0ZShzdHJ1Y3QgZmlsZSAq IGZpbGUsIHN0cnVjdCBkaXJfY29udGV4dCAqY3R4KQ0KKyNlbmRpZg0KIHsN CiAgICAgaW50IGVycm9yOw0KICAgICBsb2ZmX3Qgb2Zmc2V0LCBiZWdpbl9v ZmZzZXQ7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUt PmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9k ZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNl bmRpZg0KICAgICBzdHJ1Y3QgaW5vZGUgKmNhY2hlX2lub2RlOw0KICAgICBz dHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7 DQogICAgIGNoYXIgKmJ1ZjsNCkBAIC0xMzI4LDYgKzE0NTAsNyBAQCBubnBm c19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAqDQogCQkgICAg KGludCkgeGRpcmVudC0+ZF9uYW1sZW4sDQogCQkgICAgKGludCkgKG9mZnNl dCtiZWdpbl9vZmZzZXQpKSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiAJICAgIGlmICh4ZGlyZW50 LT5kX2ZpbGVubyAhPSAwDQogCQkmJiAoZmlsbGRpcl9lcnJvciA9IGZpbGxk aXIgKGRpcmVudCwNCiAJCQkJICAgICB4ZGlyZW50LT5kX25hbWUsDQpAQCAt MTMzOSw2ICsxNDYyLDE4IEBAIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUg KiBmaWxlLCB2b2lkICoNCiAJCQkgKCJubnBmc19yZWFkZGlyIGZpbGxkaXI6 ICVkXG4iLCBmaWxsZGlyX2Vycm9yKSk7DQogCQlicmVhazsNCiAJICAgIH0N CisjZWxzZQ0KKwkgICAgaWYgKHhkaXJlbnQtPmRfZmlsZW5vICE9IDANCisJ CSYmIChmaWxsZGlyX2Vycm9yID0gZGlyX2VtaXQgKGN0eCwNCisJCQkJICAg ICB4ZGlyZW50LT5kX25hbWUsDQorCQkJCSAgICAgeGRpcmVudC0+ZF9uYW1s ZW4sDQorCQkJCSAgICAgeGRpcmVudC0+ZF9maWxlbm8sDQorCQkJCSAgICAg RFRfVU5LTk9XTikpIDwgMCkgew0KKwkJTk5QRlNERUIoWERFQlJFQURESVIs DQorCQkJICgibm5wZnNfcmVhZGRpciBmaWxsZGlyOiAlZFxuIiwgZmlsbGRp cl9lcnJvcikpOw0KKwkJYnJlYWs7DQorCSAgICB9DQorI2VuZGlmDQogCSAg ICBvZmZzZXQgKz0geGRpcmVudC0+ZF9yZWNsZW47DQogDQogCSAgICBpZiAo eGRpcmVudC0+ZF9yZWNsZW4gPT0gMCkgew0KQEAgLTEzOTUsOSArMTUzMCwx NSBAQCBubnBmc19yZWFkbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBj DQogICogV2UgZG9uJ3QgaG9sZCBpX211dGV4Lg0KICAqLw0KIA0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDIsMCkNCiBz dGF0aWMgdm9pZCAqDQogbm5wZnNfZm9sbG93X2xpbmsgKHN0cnVjdCBkZW50 cnkgKmRlbnRyeSwNCiAJCSBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxz ZQ0KK3N0YXRpYyBjb25zdCBjaGFyICoNCitubnBmc19mb2xsb3dfbGluayAo c3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KKwkJIHZvaWQgKipwYWdlKQ0KKyNl bmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCiAgICAgc3RydWN0IGlu b2RlICppbm9kZSA9IERFTlRSWV9UT19JTk9ERShkZW50cnkpOw0KQEAgLTE0 MDgsNyArMTU0OSwxMSBAQCBubnBmc19mb2xsb3dfbGluayAoc3RydWN0IGRl bnRyeSAqZGVudHJ5DQogICAgIGlmIChlcnJvcikNCiAgICAgICAgcmV0dXJu IEVSUl9QVFIoZXJyb3IpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTig0LDIsMCkNCiAgICAgcmV0dXJuIHBhZ2VfZm9s bG93X2xpbmtfbGlnaHQoZGVudHJ5LCBuZCk7DQorI2Vsc2UNCisgICAgcmV0 dXJuIHBhZ2VfZm9sbG93X2xpbmtfbGlnaHQoZGVudHJ5LCBwYWdlKTsNCisj ZW5kaWYNCiB9DQogDQogLyoNCkBAIC0xNDkwLDYgKzE2MzUsOCBAQCBubnBm c19yZWxlYXNlX2ZpbGUgKHN0cnVjdCBpbm9kZSAqaW5vZGUsDQogICAgIHN0 cnVjdCBubnBmc19ub2RlICp4bjsNCiAgICAgaW50IGVycm9yID0gMDsNCiAN CisgICAgKHZvaWQpbm5wZnNwOw0KKw0KICAgICBOTlBGU0RFQihYREVCVk5P UFMsICgibm5wZnNfcmVsZWFzZV9maWxlXG4iKSk7DQogDQogICAgIGVycm9y ID0gbm5wZnNfaW5vZGVfdmFsaWQoaW5vZGUpOw0KQEAgLTE1MjMsOCArMTY3 MCwxMyBAQCBubnBmc19mbHVzaChzdHJ1Y3QgZmlsZSAqZmlsZSwgZmxfb3du ZXJfDQogew0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfZmx1 c2hcbiIpKTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxOSwwKQ0KICAgICBpZiAoZmlsZSAmJiBmaWxlLT5mX2Rl bnRyeSAmJiBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZSkNCiAJcmV0dXJuIG5u cGZzX3JlbGVhc2VfZmlsZShmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZSwgZmls ZSk7DQorI2Vsc2UNCisgICAgaWYgKGZpbGUgJiYgZmlsZS0+Zl9wYXRoLmRl bnRyeSAmJiBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlKQ0KKwlyZXR1 cm4gbm5wZnNfcmVsZWFzZV9maWxlKGZpbGUtPmZfcGF0aC5kZW50cnktPmRf aW5vZGUsIGZpbGUpOw0KKyNlbmRpZg0KICAgICBlbHNlDQogCXJldHVybiAw Ow0KIH0NCkBAIC0xNTMzLDggKzE2ODUsMTMgQEAgbm5wZnNfZmx1c2goc3Ry dWN0IGZpbGUgKmZpbGUsIGZsX293bmVyXw0KICAqIFJldHVybiAxIGlmIGBk ZW50cnknIGlzIHN0aWxsIHZhbGlkLCBvdGhlcndpc2UgMC4NCiAgKi8NCiAN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2 LDApDQorc3RhdGljIGludA0KK25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3Qg ZGVudHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNl DQogc3RhdGljIGludA0KLW5ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVu dHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKSANCitubnBmc19k X3JldmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBp bnQgZmxhZ3MpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3QgaW5vZGUgKmlu b2RlID0gREVOVFJZX1RPX0lOT0RFKGRlbnRyeSk7DQogICAgIE5OUEZTREVC KFhERUJWTk9QUywgKCJubnBmc19kX3JldmFsaWRhdGUgJXAgXCIlLipzXCIg KGlub2RlICVwKVxuIiwNCkBAIC0xNTgyLDkgKzE3MzksMTUgQEAgbm5wZnNf ZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeQ0KICAgICByZXR1 cm4gMDsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDIsNiwzOCkNCiBzdGF0aWMNCiBpbnQNCiBubnBmc19kX2Rl bGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQorI2Vsc2UNCitzdGF0aWMN CitpbnQNCitubnBmc19kX2RlbGV0ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpk ZW50cnkpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2Rl Ow0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAtMTYxNCw3ICsx Nzc3LDExIEBAIG5ucGZzX3NwbGljZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxl LCBsb2YNCiAJCSAgdW5zaWduZWQgaW50IGZsYWdzKQ0KIHsNCiAgICAgaW50 IGVycm9yID0gMDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0g ZmlsZS0+Zl9kZW50cnktPmRfaW5vZGU7DQorI2Vsc2UNCisgICAgc3RydWN0 IGlub2RlICppbm9kZSA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGU7 DQorI2VuZGlmDQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4biA9IFZOT0RF X1RPX1hOT0RFKGlub2RlKTsNCiAgICAgDQogICAgIGlmICh4biAhPSBOVUxM KQ0KQEAgLTE3MDcsNiArMTg3NCw4IEBAIG5ucGZzX3dyaXRlX2JhY2twYWdl KHN0cnVjdCBwYWdlICpwYWdlLA0KIA0KIAlpbnQgZXJyb3I7DQogCQ0KKwko dm9pZClvZmZzZXQ7DQorDQogCWRvIHsNCiAJCWVycm9yID0gcGFnZWNhY2hl X3dyaXRlX2JlZ2luKGJhY2tmaWxlLCBtYXBwaW5nLCAwLCBsZW4sDQogCQkJ CQkgICAgICBBT1BfRkxBR19VTklOVEVSUlVQVElCTEUsDQpAQCAtMTc0Nyw2 ICsxOTE2LDggQEAgbm5wZnNfcmVhZF9iYWNrcGFnZShzdHJ1Y3QgcGFnZSAq cGFnZSwgcw0KIAlzdHJ1Y3QgcGFnZSAqYmFja3BhZ2U7DQogCXVuc2lnbmVk IGxvbmcgb2Zmc2V0Ow0KIA0KKwkodm9pZClvZmZzZXQ7DQorDQogCWJhY2tw YWdlID0gcmVhZF9tYXBwaW5nX3BhZ2UobWFwcGluZywgbiwgYmFja2ZpbGUp Ow0KIAlpZiAoIUlTX0VSUihiYWNrcGFnZSkpIHsNCiAJCXdhaXRfb25fcGFn ZV9sb2NrZWQoYmFja3BhZ2UpOw0KQEAgLTE4OTQsMTEgKzIwNjUsMTcgQEAg bm5wZnNfcHJlcGFyZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgcw0KIA0K IAlpZiAobW9kc2l6ZSA+IGlfc2l6ZV9yZWFkKGlub2RlKSkgew0KIAkJaW50 IGVycm9yOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDgsMCkNCiAJCWVycm9yID0gdm10cnVuY2F0ZShpbm9kZSwgbW9k c2l6ZSk7DQorI2Vsc2UNCisJCWVycm9yID0gaW5vZGVfbmV3c2l6ZV9vayhp bm9kZSwgbW9kc2l6ZSk7DQorCQlpZighZXJyb3IpDQorCQkJdHJ1bmNhdGVf c2V0c2l6ZShpbm9kZSwgbW9kc2l6ZSk7DQorI2VuZGlmDQogCQlpZiAoZXJy b3IpIHsNCiAJCQlwcmludGsoIm5ucGZzX3ByZXBhcmVfd3JpdGU6IHRydW5j YXRlKCVsbHUpIC0+ICVkXG4iLA0KIAkJCSAgICAgICBtb2RzaXplLCAtZXJy b3IpOw0KLQkJCUJVRygpOyAvKiBYWFggbm90IGNvcnJlY3QgKi8NCisJCQkv KkJVRygpOyovIC8qIFhYWCBub3QgY29ycmVjdCAqLw0KIAkJfQ0KIAl9DQog DQpAQCAtMTk5MywxMCArMjE3MCwxOCBAQCBubnBmc193cml0ZV9lbmQoc3Ry dWN0IGZpbGUgKmZpbGUsIHN0cnVjDQogDQogCS8qIHplcm8gdGhlIHN0YWxl IHBhcnQgb2YgdGhlIHBhZ2UgaWYgd2UgZGlkIGEgc2hvcnQgY29weSAqLw0K IAlpZiAoY29waWVkIDwgbGVuKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAkJdm9pZCAqa2FkZHIgPSBr bWFwX2F0b21pYyhwYWdlLCBLTV9VU0VSMCk7DQorI2Vsc2UNCisJCXZvaWQg KmthZGRyID0ga21hcF9hdG9taWMocGFnZSk7DQorI2VuZGlmDQogCQltZW1z ZXQoa2FkZHIgKyBmcm9tICsgY29waWVkLCAwLCBsZW4gLSBjb3BpZWQpOw0K IAkJZmx1c2hfZGNhY2hlX3BhZ2UocGFnZSk7DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAkJa3VubWFwX2F0 b21pYyhrYWRkciwgS01fVVNFUjApOw0KKyNlbHNlDQorCQlrdW5tYXBfYXRv bWljKGthZGRyKTsNCisjZW5kaWYNCiAJfQ0KIA0KIAlubnBmc19jb21taXRf d3JpdGUoZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGNvcGllZCk7DQpAQCAt MjAyNyw4ICsyMjEyLDEzIEBAIHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJh dGlvbnMgbm5wZnNfYW8NCiAgKi8NCiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRp b25zIG5ucGZzX2ZpbGVfb3BlcmF0aW9ucyA9IHsNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0KICAgICAuYWlv X3JlYWQJPSBubnBmc19haW9fcmVhZCwNCiAgICAgLmFpb193cml0ZQk9IG5u cGZzX2Fpb193cml0ZSwNCisjZWxzZQ0KKyAgICAucmVhZF9pdGVyCT0gbm5w ZnNfcmVhZF9pdGVyLA0KKyAgICAud3JpdGVfaXRlcgk9IG5ucGZzX3dyaXRl X2l0ZXIsDQorI2VuZGlmDQogICAgIC5tbWFwCT0gbm5wZnNfZmlsZV9tbWFw LA0KICAgICAub3Blbgk9IG5ucGZzX29wZW4sDQogICAgIC5mbHVzaAk9IG5u cGZzX2ZsdXNoLA0KQEAgLTIwNDEsNyArMjIzMSwxMSBAQCBzdHJ1Y3QgZmls ZV9vcGVyYXRpb25zIG5ucGZzX2RlYWRfb3BlcmF0DQogfTsNCiANCiBzdHJ1 Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2Rpcl9vcGVyYXRpb25zID0gew0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEx LDApDQogICAgIC5yZWFkZGlyCT0gbm5wZnNfcmVhZGRpciwNCisjZWxzZQ0K KyAgICAuaXRlcmF0ZSAgICA9IG5ucGZzX2l0ZXJhdGUsDQorI2VuZGlmDQog ICAgIC5mbHVzaAk9IG5ucGZzX2ZsdXNoLA0KIH07DQogDQpkaWZmIC11cHJO IGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYyBhcmxhL25ucGZz L2xpbnV4L25ucGZzX2xvYWQuYw0KLS0tIGFybGEtY3ZzL25ucGZzL2xpbnV4 L25ucGZzX2xvYWQuYwkyMDA2LTEwLTMxIDExOjAyOjQxLjAwMDAwMDAwMCAr MDEwMA0KKysrIGFybGEvbm5wZnMvbGludXgvbm5wZnNfbG9hZC5jCTIwMTYt MDEtMTMgMjA6MTQ6MDIuODMwMTAzNTE3ICswMTAwDQpAQCAtNTQsNyArNTQs MTEgQEAgZXh0ZXJuIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZm9w cw0KIA0KIHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlIG5ucGZzX2ZzX3R5cGUg PSB7DQogICAgICAgIG5hbWU6ICAgICAgICAgICAibm5wZnMiLA0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQog ICAgICAgIGdldF9zYjogICAgICAgICBubnBmc19nZXRfc2IsDQorI2Vsc2UN CisgICAgICAgbW91bnQ6ICAgICAgICAgIG5ucGZzX21vdW50LA0KKyNlbmRp Zg0KICAgICAgICBraWxsX3NiOiAgICAgICAga2lsbF9saXR0ZXJfc3VwZXIs DQogICAgICAgIG93bmVyOiAgICAgICAgICBUSElTX01PRFVMRSwNCiB9Ow0K ZGlmZiAtdXByTiBhcmxhLWN2cy9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdl LmMgYXJsYS9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMNCi0tLSBhcmxh LWN2cy9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAxMC0wOC0wOCAy Mjo0MzowNS4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhL25ucGZzL2xpbnV4 L25ucGZzX21lc3NhZ2UuYwkyMDE2LTAxLTE0IDE2OjUwOjE1LjEzOTU3NTE1 MSArMDEwMA0KQEAgLTU1LDkgKzU1LDE1IEBAIHN0YXRpYyB2b2lkDQogbm5w ZnNfZF9yZW1vdmUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KIHsNCiAgICAg Tk5QRlNERUIoWERFQk1TRywgKCJubnBmc19kX3JlbW92ZSAlcFxuIiwgZGVu dHJ5KSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDIsNiwzOCkNCiAgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQog ICAgIGRnZXRfbG9ja2VkKGRlbnRyeSk7DQogICAgIHNwaW5fdW5sb2NrKCZk Y2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZkZW50cnkt PmRfbG9jayk7DQorICAgIGRnZXRfZGxvY2soZGVudHJ5KTsNCisgICAgc3Bp bl91bmxvY2soJmRlbnRyeS0+ZF9sb2NrKTsNCisjZW5kaWYNCiAgICAgZF9k cm9wKGRlbnRyeSk7DQogICAgIGRwdXQoZGVudHJ5KTsNCiB9DQpAQCAtMTIx LDcgKzEyNywxMSBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxub2RlKHN0cnVj dCBubnBmcyAqDQogICAgIHN0cnVjdCBpbm9kZSAqZGksICppbm9kZTsNCiAg ICAgc3RydWN0IGRlbnRyeSAqcGFyZW50ID0gTlVMTDsNCiAgICAgc3RydWN0 IHFzdHIgc3FzdHI7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICphbGlh czsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDksMCkNCisgICAgc3RydWN0IGhsaXN0X25vZGUgKmFsaWFzOw0KKyNl bmRpZg0KICAgICANCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBmc19t ZXNzYWdlX2luc3RhbGxub2RlXG4iKSk7DQogICAgIA0KQEAgLTE3NiwxMiAr MTg2LDI2IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGUoc3RydWN0IG5u cGZzICoNCiAgICAgICoNCiAgICAgICovDQogICAgIA0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgYWxp YXMgPSBkaS0+aV9kZW50cnkubmV4dDsNCiAgICAgd2hpbGUgKGFsaWFzICE9 ICZkaS0+aV9kZW50cnkpIHsNCiAJcGFyZW50ID0gbGlzdF9lbnRyeShhbGlh cywgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQotCXNwaW5fbG9jaygmZGNh Y2hlX2xvY2spOw0KLQlkZ2V0X2xvY2tlZChwYXJlbnQpOw0KLQlzcGluX3Vu bG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFj aF9lbnRyeShwYXJlbnQsIGFsaWFzLCAmZGktPmlfZGVudHJ5LCBkX2FsaWFz KSB7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMywxOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJlbnQs ICZkaS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0KKyAgICBobGlz dF9mb3JfZWFjaF9lbnRyeShwYXJlbnQsICZkaS0+aV9kZW50cnksIGRfdS5k X2FsaWFzKSB7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCisgICAgc3Bpbl9sb2NrKCZkY2Fj aGVfbG9jayk7DQorICAgIGRnZXRfbG9ja2VkKHBhcmVudCk7DQorICAgIHNw aW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl9s b2NrKCZwYXJlbnQtPmRfbG9jayk7DQorICAgIGRnZXRfZGxvY2socGFyZW50 KTsNCisgICAgc3Bpbl91bmxvY2soJnBhcmVudC0+ZF9sb2NrKTsNCisjZW5k aWYNCiAJZGVudHJ5ID0gZF9sb29rdXAocGFyZW50LCAmc3FzdHIpOw0KIAlO TlBGU0RFQihYREVCTVNHLA0KIAkJICgibm5wZnNfbWVzc2FnZV9pbnN0YWxs bm9kZTogYWxpYXMgJXAsIGxvb2t1cCAlcFxuIiwNCkBAIC0yMzMsNyArMjU3 LDkgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZShzdHJ1Y3Qgbm5wZnMg Kg0KIAkNCiAJZHB1dChkZW50cnkpOw0KIAlkZW50cnkgPSBOVUxMOw0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkN CiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsNCisjZW5kaWYNCiAJZHB1dChwYXJl bnQpOw0KICAgICB9DQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNf bWVzc2FnZV9pbnN0YWxsbm9kZTogZG9uZSBpbnN0YWxsaW5nXG4iKSk7DQpA QCAtMjY4LDcgKzI5NCwxMyBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxhdHRy KHN0cnVjdCBubnBmcyAqDQogICAgIH0NCiANCiAgICAgaW5vZGUgPSBYTk9E RV9UT19WTk9ERSh0KTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMyw2LDApDQogICAgIGRlbnRyeSA9IGxpc3RfZW50cnko aW5vZGUtPmlfZGVudHJ5Lm5leHQsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMp Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMTksMCkNCisgICAgZGVudHJ5ID0gaGxpc3RfZW50cnkoaW5vZGUtPmlf ZGVudHJ5LmZpcnN0LCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisjZWxz ZQ0KKyAgICBkZW50cnkgPSBobGlzdF9lbnRyeShpbm9kZS0+aV9kZW50cnku Zmlyc3QsIHN0cnVjdCBkZW50cnksIGRfdS5kX2FsaWFzKTsNCisjZW5kaWYN CiAgICAgDQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfbWVzc2Fn ZV9pbnN0YWxsYXR0ciBuYW1lOiVzXG4iLA0KIAkJICAgICAgIGRlbnRyeS0+ ZF9uYW1lLm5hbWUpKTsNCkBAIC0zOTYsMTcgKzQyOCwzNiBAQCBubnBmc19t ZXNzYWdlX2luc3RhbGxkYXRhKHN0cnVjdCBubnBmcyAqDQogc3RhdGljIHZv aWQNCiBjbGVhcl9hbGxfY2hpbGRyZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUs IGludCBwYXJlbnQpDQogew0KKyAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs NiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICphbGlhczsNCisjZWxpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisg ICAgc3RydWN0IGhsaXN0X25vZGUgKmFsaWFzOw0KKyNlbmRpZg0KIA0KICBh Z2FpbjoNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMiw2LDM4KQ0KICAgICBzcGluX2xvY2soJmRjYWNoZV9sb2NrKTsNCisj ZWxzZQ0KKyAgICAvKiBUT0RPOiBmaW5kIHRoZSBkZW50cnkgdG8gbG9jayAq Lw0KKyAgICAvKnNwaW5fbG9jaygmZGVudHJ5LT5kX2xvY2spOyovDQorI2Vu ZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsNiwwKQ0KICAgICBhbGlhcyA9IGlub2RlLT5pX2RlbnRyeS5uZXh0Ow0K ICAgICB3aGlsZSAoYWxpYXMgIT0gJmlub2RlLT5pX2RlbnRyeSkgew0KLQlz dHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAgIGhsaXN0X2Zvcl9l YWNoX2VudHJ5KGRlbnRyeSwgYWxpYXMsICZpbm9kZS0+aV9kZW50cnksIGRf YWxpYXMpIHsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDE5LDApDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRl bnRyeSwgJmlub2RlLT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbHNlDQor ICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgJmlub2RlLT5pX2Rl bnRyeSwgZF91LmRfYWxpYXMpIHsNCisjZW5kaWYNCiAJc3RydWN0IGxpc3Rf aGVhZCAqc3ViZGlyczsNCiAJc3RydWN0IG5ucGZzX2RlbnRyeV9kYXRhICp4 ZDsNCiAJDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsNiwwKQ0KIAlkZW50cnkgPSBsaXN0X2VudHJ5KGFsaWFzLCBzdHJ1 Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisjZW5kaWYNCiAJaWYgKGRlbnRyeSA9 PSBOVUxMKSB7DQogCSAgICBwcmludGsoS0VSTl9FTUVSRyAiTk5QRlMgUGFu aWM6IGRlbnRyeSBpbiBhbGlhcyBsaXN0IGlzIG51bGxcbiIpOw0KIAkgICAg YnJlYWs7DQpAQCAtNDIyLDcgKzQ3MywxMSBAQCBjbGVhcl9hbGxfY2hpbGRy ZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUsDQogCXN1YmRpcnMgPSBkZW50cnkt PmRfc3ViZGlycy5uZXh0Ow0KIAl3aGlsZSAoc3ViZGlycyAhPSAmZGVudHJ5 LT5kX3N1YmRpcnMpIHsNCiAJICAgIHN0cnVjdCBsaXN0X2hlYWQgKnRtcCA9 IHN1YmRpcnM7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMTksMCkNCiAJICAgIHN0cnVjdCBkZW50cnkgKmNoaWxkID0g bGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfdS5kX2NoaWxkKTsN CisjZWxzZQ0KKwkgICAgc3RydWN0IGRlbnRyeSAqY2hpbGQgPSBsaXN0X2Vu dHJ5KHRtcCwgc3RydWN0IGRlbnRyeSwgZF9jaGlsZCk7DQorI2VuZGlmDQog CSAgICBzdWJkaXJzID0gdG1wLT5uZXh0Ow0KIAkgICAgTk5QRlNERUIoWERF Qk1TRywgKCJjbGVhcl9hbGxfY2hpbGRyZW4gY2hpbGQ6ICUuKnMgaW5vZGU6 ICVwLyVwICINCiAJCQkgICAgICAgImRjb3VudDogJWQgYWxpYXNlczpcbiIs DQpAQCAtNDQyLDE0ICs0OTcsMjYgQEAgY2xlYXJfYWxsX2NoaWxkcmVuIChz dHJ1Y3QgaW5vZGUgKmlub2RlLA0KIA0KIAkgICAgLyogVGhyb3cgaW1tZWRp YXRlbHkgKi8NCiAJICAgIGlmIChubnBmc19kY291bnQoY2hpbGQpID09IDAp IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Miw2LDM4KQ0KIAkgICAgICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7 DQorI2Vsc2UNCisJCS8qIFRPRE86IHVubG9jayB0aGUgZGVudHJ5ICovDQor CQkvKnNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9jayk7Ki8NCisjZW5kaWYN CiAJCW5ucGZzX2RfcmVtb3ZlKGNoaWxkKTsNCiAJCWdvdG8gYWdhaW47DQog CSAgICB9DQogCX0NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMyw2LDApDQogCWFsaWFzID0gYWxpYXMtPm5leHQ7DQorI2Vu ZGlmDQogICAgIH0NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMiw2LDM4KQ0KICAgICBzcGluX3VubG9jaygmZGNhY2hlX2xv Y2spOw0KKyNlbHNlDQorICAgIC8qIFRPRE86IHVubG9jayB0aGUgZGVudHJ5 ICovDQorICAgIC8qc3Bpbl91bmxvY2soJmRlbnRyeS0+ZF9sb2NrKTsqLw0K KyNlbmRpZg0KIH0NCiANCiBzdGF0aWMgdm9pZA0KQEAgLTcxOSwxMiArNzg2 LDIyIEBAIG5ucGZzX21lc3NhZ2VfdmVyc2lvbihzdHJ1Y3Qgbm5wZnMgKm5u cGYNCiANCiAgICAgLyogc2FuaXR5IGNoZWNrIGJlZm9yZSB3ZSBsb29rIGF0 IGl0ICovDQogICAgIGlmIChzaXplID09IHNpemVvZigqbWVzc2FnZSkgJiYg bWVzc2FnZS0+dmVyc2lvbiA9PSBOTlBGU19WRVJTSU9OKSB7DQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJ c3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKwlzdHJ1Y3QgcGF0aCBw YXRoOw0KKyNlbmRpZg0KIAlpbnQgZXJyb3I7DQogDQogCXVpbnQ2NF90IGJs b2Nrc2l6ZSA9IG1lc3NhZ2UtPmJsb2Nrc2l6ZTsNCiANCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KIAllcnJv ciA9IHBhdGhfbG9va3VwKCIuIiwgMCwgJm5kKTsNCisjZWxpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCWVycm9y ID0ga2Vybl9wYXRoKCIuIiwgMCwgJm5kLnBhdGgpOw0KKyNlbHNlDQorCWVy cm9yID0ga2Vybl9wYXRoKCIuIiwgMCwgJnBhdGgpOw0KKyNlbmRpZg0KIAlp ZiAoZXJyb3IpIHsNCiAJICAgIC8qDQogCSAgICAgKiBCYWQgY2FjaGUgcm9v dCwganVzdCByZXR1cm4uDQpAQCAtNzM1LDkgKzgxMiwxNSBAQCBubnBmc19t ZXNzYWdlX3ZlcnNpb24oc3RydWN0IG5ucGZzICpubnBmDQogCQkgICAibm5w ZnNfbWVzc2FnZV92ZXJzaW9uIGZhaWxlZCBwYXRoX2xvb2t1cCwgIg0KIAkJ ICAgImVycm5vOiAlZFxuIiwgZXJyb3IpOw0KIAl9IGVsc2Ugew0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog CSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdldChuZC5wYXRoLm1udCk7 DQogCSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChuZC5wYXRoLmRlbnRy eSk7DQogCSAgICBwYXRoX3B1dCgmbmQucGF0aCk7DQorI2Vsc2UNCisJICAg IG5ucGZzcC0+Y2FjaGVyb290ID0gbW50Z2V0KHBhdGgubW50KTsNCisJICAg IG5ucGZzcC0+Y2FjaGVkaXIgPSBkZ2V0KHBhdGguZGVudHJ5KTsNCisJICAg IHBhdGhfcHV0KCZwYXRoKTsNCisjZW5kaWYNCiAJICAgIA0KICNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAkg ICAgbm5wZnNwLT51aWQgPSBjdXJyZW50LT5mc3VpZDsNCmRpZmYgLXVwck4g YXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnNfbm9kZS5jIGFybGEvbm5wZnMv bGludXgvbm5wZnNfbm9kZS5jDQotLS0gYXJsYS1jdnMvbm5wZnMvbGludXgv bm5wZnNfbm9kZS5jCTIwMDctMDEtMDMgMTQ6NTI6MDIuMDAwMDAwMDAwICsw MTAwDQorKysgYXJsYS9ubnBmcy9saW51eC9ubnBmc19ub2RlLmMJMjAxNi0w MS0xNCAxNjo1MToxMS40MjA1Nzg1NDQgKzAxMDANCkBAIC0xMzIsNyArMTMy LDEyIEBAIG5ucGZzX3NldHNpemUoc3RydWN0IGlub2RlICppbm9kZSwgdWlu dDYNCiAJcHJpbnRrKCJubnBmc19zZXRzaXplOiB0cnVuY2F0aW5nIEAweCVs bHVcbiIsDQogCSAgICAgICAodW5zaWduZWQgbG9uZyBsb25nKXNpemUpOw0K ICNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDgsMCkNCiAJdm10cnVuY2F0ZShpbm9kZSwgc2l6ZSk7IC8qIFhY WCByZXR2YWwgKi8NCisjZWxzZQ0KKwlpZighaW5vZGVfbmV3c2l6ZV9vayhp bm9kZSwgc2l6ZSkpDQorCSAgICB0cnVuY2F0ZV9zZXRzaXplKGlub2RlLCBz aXplKTsNCisjZW5kaWYNCiAJbm5wZnNfYmxvY2tfdHJ1bmNhdGUoeG4sIHNp emUpOw0KICAgICB9DQogfQ0KQEAgLTE1MCw5ICsxNTUsMTggQEAgbm5wZnNf YXR0cjJpbm9kZShjb25zdCBzdHJ1Y3Qgbm5wZnNfYXR0cg0KIAlzdHJ1Y3Qg dGltZXNwZWMgbm90aW1lID0gezB9Ow0KIA0KIAlpbm9kZS0+aV9tb2RlICAg PSAwOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDE0LDApDQogCWlub2RlLT5pX3VpZCAgICA9IDA7DQogCWlub2RlLT5p X2dpZCAgICA9IDA7DQorI2Vsc2UNCisJaW5vZGUtPmlfdWlkICAgID0gS1VJ RFRfSU5JVCgwKTsNCisJaW5vZGUtPmlfZ2lkICAgID0gS0dJRFRfSU5JVCgw KTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywyLDApDQogCWlub2RlLT5pX25saW5rICA9IDE7DQorI2Vs c2UNCisJc2V0X25saW5rKGlub2RlLCAxKTsNCisjZW5kaWYNCiAJaW5vZGUt PmlfYXRpbWUgID0gbm90aW1lOw0KIAlpbm9kZS0+aV9tdGltZSAgPSBub3Rp bWU7DQogCWlub2RlLT5pX2N0aW1lICA9IG5vdGltZTsNCkBAIC0xNjksNyAr MTgzLDExIEBAIG5ucGZzX2F0dHIyaW5vZGUoY29uc3Qgc3RydWN0IG5ucGZz X2F0dHINCiAgICAgaWYgKFhBX1ZBTElEX0dJRChhdHRyKSkNCiAJaW5vZGUt PmlfZ2lkICAgID0gYXR0ci0+eGFfZ2lkOw0KICAgICBpZiAoWEFfVkFMSURf TkxJTksoYXR0cikpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMiwwKQ0KIAlpbm9kZS0+aV9ubGluayAgPSBhdHRyLT54 YV9ubGluazsNCisjZWxzZQ0KKwlzZXRfbmxpbmsoaW5vZGUsIGF0dHItPnhh X25saW5rKTsNCisjZW5kaWYNCiAgICAgDQogICAgIGlmIChYQV9WQUxJRF9T SVpFKGF0dHIpKSB7DQogCW5ucGZzX3NldHNpemUoaW5vZGUsIGF0dHItPnhh X3NpemUpOw0KQEAgLTUxMCwxMiArNTI4LDI0IEBAIG5ucGZzX2hhc19wYWco Y29uc3Qgc3RydWN0IG5ucGZzX25vZGUgKngNCiBpbnQNCiBubnBmc19ub2Rl X3VzZXJzKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQogew0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3Ry dWN0IGxpc3RfaGVhZCAqcG9zOw0KKyNlbHNlDQorICAgIHN0cnVjdCBobGlz dF9ub2RlICpwb3M7DQorI2VuZGlmDQogICAgIGludCB1c2VycyA9IDA7DQog ICAgIA0KICAgICAvKiBYWFggdGhpcyBzaG91bGQgcHJvYmFibHkgYmUgcHJv dGVjdGVkIHNvbWVob3cgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIGxpc3RfZm9yX2VhY2gocG9z LCAmaW5vZGUtPmlfZGVudHJ5KSB7DQorI2Vsc2UNCisgICAgaGxpc3RfZm9y X2VhY2gocG9zLCAmaW5vZGUtPmlfZGVudHJ5KSB7DQorI2VuZGlmDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkN CiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbGlzdF9lbnRyeShwb3MsIHN0 cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KKyNlbHNlDQorCXN0cnVjdCBkZW50 cnkgKmRlbnRyeSA9IGxpc3RfZW50cnkocG9zLCBzdHJ1Y3QgZGVudHJ5LCBk X3UuZF9hbGlhcyk7DQorI2VuZGlmDQogCWlmIChubnBmc19kY291bnQoZGVu dHJ5KSA+IDEpDQogCSAgICB1c2VycysrOw0KICAgICB9DQpkaWZmIC11cHJO IGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMgYXJsYS9u bnBmcy9saW51eC9ubnBmc19zeXNjYWxscy5jDQotLS0gYXJsYS1jdnMvbm5w ZnMvbGludXgvbm5wZnNfc3lzY2FsbHMuYwkyMDEwLTA4LTA4IDIyOjQzOjA2 LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMvbGludXgvbm5wZnNf c3lzY2FsbHMuYwkyMDE2LTAxLTE0IDE3OjAwOjIwLjY0MTYxMTY1NSArMDEw MA0KQEAgLTQyLDcgKzQyLDkgQEANCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNf c3lzY2FsbHMuaD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfY29tbW9uLmg+ DQogI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4NCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICNpbmNsdWRlIDxs aW51eC9zbXBfbG9jay5oPg0KKyNlbmRpZg0KICNpbmNsdWRlIDxsaW51eC9z bXAuaD4NCiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPg0KIA0KQEAgLTUw LDYgKzUyLDExIEBADQogI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+DQog I2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxf VkVSU0lPTigzLDcsMCkNCisjdW5kZWYgU1lTQ0FMTEhBQ0sNCisvKiB0aGUg bWV0aG9kIHRvIHJlYWQgJ2xvd2VyX2JvdW5kJyBkb2VzIG5vdCB3b3JrIG9u IGtlcm5lbCAzLjcgYW5kIGxhdGVyLCBzZSBubnBmc19zeXNjYWxscy1sb3Nz YWdlLmMgKi8NCisjZW5kaWYNCisNCiAjaWYgMA0KICNpZmRlZiBDT05GSUdf Q09NUEFUDQogI2luY2x1ZGUgPGxpbnV4L2lvY3RsMzIuaD4NCkBAIC04Miwx MiArODksMjIgQEAgdHlwZWRlZiBzdHJ1Y3QgYWZzcHJvY2RhdGEgew0KICAg ICB1bnNpZ25lZCBsb25nIHN5c2NhbGw7DQogfSBhZnNwcm9jZGF0YTsNCiAN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2 LDM2KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19wcm9jZnNfaW9jdGwoc3RydWN0 IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsDQogCQkgICB1bnNp Z25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7DQorI2Vsc2UNCitz dGF0aWMgbG9uZw0KK25ucGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3QgZmlsZSAq ZmlsZSwNCisJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcg YXJnKTsNCisjZW5kaWYNCiANCiBzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0 aW9ucyBubnBmc19wcm9jZnNfZm9wcyA9IHsNCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0KICAgICAuaW9jdGwg PSBubnBmc19wcm9jZnNfaW9jdGwsDQorI2Vsc2UNCisgICAgLnVubG9ja2Vk X2lvY3RsID0gbm5wZnNfcHJvY2ZzX2lvY3RsLA0KKyNlbmRpZg0KIH07DQog DQogDQpAQCAtMTYwLDggKzE3NywxMCBAQCBubnBmc19nZXRfcGFnX3NlYyh2 b2lkKQ0KIA0KICNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZF UlNJT04oMiw2LDI4KQ0KICAgICByZXR1cm4gY3VycmVudC0+dWlkOw0KLSNl bHNlDQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMywxNCwwKQ0KICAgICByZXR1cm4gY3VycmVudF91aWQoKTsNCisjZWxz ZQ0KKyAgICB7IGt1aWRfdCBrdWlkID0gY3VycmVudF91aWQoKTsgcmV0dXJu IGt1aWQudmFsOyB9DQogI2VuZGlmDQogfQ0KIA0KQEAgLTE5OSw3ICsyMTgs MTIgQEAgZmluZF9wYWcoc3RydWN0IGdyb3VwX2luZm8gKmdpKQ0KICAgICBO TlBGU0RFQihYREVCU1lTLCAoImZpbmRfcGFnOiBuZ3JvdXBzID0gJWRcbiIs IGdpLT5uZ3JvdXBzKSk7DQogDQogICAgIGZvciAoaSA9IGdpLT5uZ3JvdXBz IC0gMTsgaSA+PSAwOyBpLS0pIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KIAlnaWRfdCBncm91cCA9IEdS T1VQX0FUKGdpLCBpKTsNCisjZWxzZQ0KKwlrZ2lkX3Qga2dyb3VwID0gR1JP VVBfQVQoZ2ksIGkpOw0KKwlnaWRfdCBncm91cCA9IGtncm91cC52YWw7DQor I2VuZGlmDQogCWlmICgobm5wZnNfcGFnX3QpZ3JvdXAgPj0gTk5QRlNfUEFH X0xMSU0gJiYgKG5ucGZzX3BhZ190KWdyb3VwIDwgTk5QRlNfUEFHX1VMSU0p IHsNCiAJICAgIE5OUEZTREVCKFhERUJTWVMsDQogCQkgICAgICgiZmluZF9w YWc6IEV4aXN0aW5nIHBhZyAldSBhdCBwb3MgJXVcbiIsIGdyb3VwLCBpKSk7 DQpAQCAtMjIwLDcgKzI0NCwxMiBAQCBubnBmc19nZXRfcGFnX2dyb3VwKHZv aWQpDQogICAgIG5ucGZzX3BhZ190IHJldCA9IGN1cnJlbnQtPnVpZDsNCiAj ZWxzZQ0KICAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kgPSBnZXRfY3VycmVu dF9ncm91cHMoKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxNCwwKQ0KICAgICBubnBmc19wYWdfdCByZXQgPSBjdXJy ZW50X3VpZCgpOw0KKyNlbHNlDQorICAgIGt1aWRfdCBrdWlkID0gY3VycmVu dF91aWQoKTsNCisgICAgbm5wZnNfcGFnX3QgcmV0ID0ga3VpZC52YWw7DQor I2VuZGlmDQogI2VuZGlmDQogICAgIGludCBpOw0KIA0KQEAgLTIzMCw3ICsy NTksMTEgQEAgbm5wZnNfZ2V0X3BhZ19ncm91cCh2b2lkKQ0KIA0KICAgICBp ID0gZmluZF9wYWcoZ2kpOw0KICAgICBpZiAoaSAhPSBOTlBGU19QQUdfTk9U Rk9VTkQpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsMTQsMCkNCiAJcmV0ID0gR1JPVVBfQVQoZ2ksIGkpOw0KKyNlbHNl DQorCXsga2dpZF90IGtnaWQgPSBHUk9VUF9BVChnaSwgaSk7IHJldCA9IGtn aWQudmFsOyB9DQorI2VuZGlmDQogDQogICAgIHB1dF9ncm91cF9pbmZvKGdp KTsNCiANCkBAIC0yODAsMTAgKzMxMywxNyBAQCBzdG9yZV9wYWcobm5wZnNf cGFnX3QgcGFnbnVtKQ0KIAljb3VudCAtPSBOR1JPVVBTX1BFUl9CTE9DSzsN CiAgICAgfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDE0LDApDQogICAgIGlmIChmb3VuZCkNCiAJR1JPVVBfQVQo bmV3X2dpLCBpKSA9IHBhZ251bTsNCiAgICAgZWxzZQ0KIAlHUk9VUF9BVChu ZXdfZ2ksIG5ld19naS0+bmdyb3VwcyAtIDEpID0gcGFnbnVtOw0KKyNlbHNl DQorICAgIGlmIChmb3VuZCkNCisJeyBrZ2lkX3Qga2dpZCA9IEtHSURUX0lO SVQocGFnbnVtKTsgR1JPVVBfQVQobmV3X2dpLCBpKSA9IGtnaWQ7IH0NCisg ICAgZWxzZQ0KKwl7IGtnaWRfdCBrZ2lkID0gS0dJRFRfSU5JVChwYWdudW0p OyBHUk9VUF9BVChuZXdfZ2ksIG5ld19naS0+bmdyb3VwcyAtIDEpID0ga2dp ZDsgfQ0KKyNlbmRpZg0KICAgICANCiAgICAgc2V0X2N1cnJlbnRfZ3JvdXBz KG5ld19naSk7DQogICAgIHB1dF9ncm91cF9pbmZvKG5ld19naSk7DQpAQCAt MzI1LDggKzM2NSwxMCBAQCBubnBmc19nZXRfcGFnKCkNCiANCiAjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAg ICAgcmV0dXJuIGN1cnJlbnQtPnVpZDsNCi0jZWxzZQ0KKyNlbGlmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAgICAg cmV0dXJuIGN1cnJlbnRfdWlkKCk7DQorI2Vsc2UNCisgICAgeyBrdWlkX3Qg a3VpZCA9IGN1cnJlbnRfdWlkKCk7IHJldHVybiBrdWlkLnZhbDsgfQ0KICNl bmRpZg0KIH0NCiANCkBAIC00MzIsNyArNDc0LDcgQEAgbm5wZnNfc2V0Z3Jv dXBzMTYgKGludCBnaWRzZXRzaXplLCBvbGRfZw0KICNlbmRpZiAvKiBTWVND QUxMSEFDSyAqLw0KICNlbmRpZiAvKiBHUk9VUFBBR1MgKi8NCiANCi1zdHJ1 Y3QgZmlsZV9oYW5kbGUgew0KK3N0cnVjdCBubnBmc19maWxlX2hhbmRsZSB7 DQogICAgIG5ucGZzX2Rldl90IGRldjsNCiAgICAgaW5vX3QgaW5vZGU7DQog ICAgIF9fdTMyIGdlbjsNCkBAIC01MTksMTQgKzU2MSwyNyBAQCBubnBmc19k ZWJ1Z19wcmludCAoc3RydWN0IGFybGFWaWNlSW9jdGwNCiAgKiBmb2xsb3cg c3ltbGlua3MgaWZmIGBmb2xsb3cnDQogICovDQogDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiBzdGF0aWMg c3RydWN0IGRlbnRyeSAqDQogdXNlcl9wYXRoMmRlbnRyeSAoc3RydWN0IG5h bWVpZGF0YSAqbmQsIGNoYXIgKnVzZXJfcGF0aCwgaW50IGZvbGxvdykNCisj ZWxzZQ0KK3N0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCit1c2VyX3BhdGgyZGVu dHJ5IChzdHJ1Y3QgcGF0aCAqcGF0aCwgY2hhciAqdXNlcl9wYXRoLCBpbnQg Zm9sbG93KQ0KKyNlbmRpZg0KIHsNCi0gICAgY2hhciAqa25hbWU7DQogICAg IGludCBmbGFncyA9IDA7DQogICAgIGludCBlcnJvciA9IDA7DQogDQotICAg IGtuYW1lID0gZ2V0bmFtZSAodXNlcl9wYXRoKTsNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw3LDApDQorICAgIGNoYXIg KmtuYW1lOw0KKyAgICBrbmFtZSA9IGdldG5hbWUodXNlcl9wYXRoKTsNCisj ZWxzZQ0KKyAgICBjb25zdCBjaGFyICprbmFtZTsNCisgICAgc3RydWN0IGZp bGVuYW1lICpmbmFtZTsNCisgICAgZm5hbWUgPSBnZXRuYW1lKHVzZXJfcGF0 aCk7DQorICAgIGtuYW1lID0gZm5hbWUtPm5hbWU7DQorI2VuZGlmDQorDQog ICAgIGlmIChJU19FUlIoa25hbWUpKQ0KIAlyZXR1cm4gRVJSX1BUUihQVFJf RVJSKGtuYW1lKSk7DQogICAgIGlmIChmb2xsb3cpDQpAQCAtNTM0LDExICs1 ODksMjUgQEAgdXNlcl9wYXRoMmRlbnRyeSAoc3RydWN0IG5hbWVpZGF0YSAq bmQsDQogDQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfc3lzY2Fs bDogbG9va2luZyB1cDogJXNcbiIsIGtuYW1lKSk7DQogDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAg ZXJyb3IgPSBwYXRoX2xvb2t1cChrbmFtZSwgZmxhZ3MsIG5kKTsNCisjZWxp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp DQorICAgIGVycm9yID0ga2Vybl9wYXRoKGtuYW1lLCBmbGFncywgJihuZC0+ cGF0aCkpOw0KKyNlbHNlDQorICAgIGVycm9yID0ga2Vybl9wYXRoKGtuYW1l LCBmbGFncywgcGF0aCk7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KICAgICBwdXRuYW1lKGtu YW1lKTsNCisjZWxzZQ0KKyAgICBrbWVtX2NhY2hlX2ZyZWUobmFtZXNfY2Fj aGVwLCAodm9pZCAqKWtuYW1lKTsNCisjZW5kaWYNCiAgICAgaWYgKGVycm9y KQ0KIAlyZXR1cm4gRVJSX1BUUihlcnJvcik7DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgcmV0dXJu IG5kLT5wYXRoLmRlbnRyeTsNCisjZWxzZQ0KKyAgICByZXR1cm4gcGF0aC0+ ZGVudHJ5Ow0KKyNlbmRpZg0KIH0NCiANCiBhc21saW5rYWdlIGxvbmcNCkBA IC01NTMsMTMgKzYyMiwyMSBAQCBzeXNfYWZzX2ludCAoaW50IG9wZXJhdGlv biwNCiAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfcGlvY3RsICptc2cgPSBO VUxMOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV93YWtldXAgKm1zZzI7 DQogICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IE5VTEw7DQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAg ICAgc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKyAgICBzdHJ1Y3Qg cGF0aCBwYXRoOw0KKyNlbmRpZg0KICAgICANCiAgICAgbXNnID0ga21hbGxv YyhzaXplb2YoKm1zZyksIEdGUF9LRVJORUwpOw0KICAgICBpZiAobXNnID09 IE5VTEwpDQogICAgICAgcmV0dXJuIC1FTk9NRU07DQogDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAg bG9ja19rZXJuZWwoKTsNCisjZWxzZQ0KKyAgICAvKiBUT0RPOiBsb2NrX2tl cm5lbCgpIGlzIHJlbW92ZWQsIGNvbnNpZGVyIGFkZGluZyBhbiBwcml2YXRl IGxvY2sgKi8NCisjZW5kaWYNCiANCiAgICAgTk5QRlNERUIoWERFQlNZUywg KCJzeXNfYWZzIGtlcm5lbCBsb2NrZWRcbiIpKTsNCiANCkBAIC01OTcsNyAr Njc0LDExIEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KIAkgICAg fQ0KIAl9DQogCWlmIChhX3BhdGhQICE9IE5VTEwpIHsNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAkgICAg ZGVudHJ5ID0gdXNlcl9wYXRoMmRlbnRyeSAoJm5kLCBhX3BhdGhQLCBhX2Zv bGxvd1N5bWxpbmtzKTsNCisjZWxzZQ0KKwkgICAgZGVudHJ5ID0gdXNlcl9w YXRoMmRlbnRyeSAoJnBhdGgsIGFfcGF0aFAsIGFfZm9sbG93U3ltbGlua3Mp Ow0KKyNlbmRpZg0KIAkgICAgaWYgKCFkZW50cnkpIHsNCiAJCWVycm9yID0g LUVJTlZBTDsNCiAJCWdvdG8gdW5sb2NrOw0KQEAgLTY5MywxMyArNzc0LDIx IEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KICAgICANCiAgdW5s b2NrOg0KICAgICBpZiAoZGVudHJ5KQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCXBhdGhfcHV0KCZuZC5w YXRoKTsNCisjZWxzZQ0KKwlwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlmDQog DQogICAgIE5OUEZTREVCKFhERUJTWVMsICgibm5wZnNfc3lzY2FsbCByZXR1 cm5zIGVycm9yOiAlbGRcbiIsIGVycm9yKSk7DQogDQogICAgIE5OUEZTREVC KFhERUJTWVMsICgic3lzX2FmcyBrZXJuZWwgdW5sb2NrXG4iKSk7DQogICAg IGtmcmVlKG1zZyk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDIsNiwzOSkNCiAgICAgdW5sb2NrX2tlcm5lbCgpOw0KKyNl bHNlDQorICAgIC8qIFRPRE86IHNlZSB0aGUgY29tbWVudCBhdCBsb2NrX2tl cm5lbCgpIGFib3ZlICovDQorI2VuZGlmDQogDQogICAgIHJldHVybiBlcnJv cjsNCiB9DQpAQCAtNzQ4LDkgKzgzNywxNSBAQCBzeXNfYWZzIChpbnQgb3Bl cmF0aW9uLA0KIAkJICAgICAgIGFfZm9sbG93U3ltbGlua3MpOw0KIH0NCiAN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2 LDM2KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19wcm9jZnNfaW9jdGwoc3RydWN0 IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsDQogCQkgICB1bnNp Z25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisjZWxzZQ0KK3N0 YXRpYyBsb25nDQorbm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVjdCBmaWxlICpm aWxlLA0KKwkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBh cmcpDQorI2VuZGlmDQogew0KICAgICBhZnNwcm9jZGF0YSBhcmdzOw0KICAg ICBsb25nIHJldDsNCkBAIC04MDcsNyArOTAyLDExIEBAIHN0YXRpYyBpbnQg bm5wZnNfaW5pdF9wcm9jZnModm9pZCkNCiAgICAgbm5wZnNfcHJvY2ZzX2Rp ci0+b3duZXIgPSBUSElTX01PRFVMRTsNCiAjZW5kaWYNCiAgICAgDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTAsMCkN CiAgICAgZW50cnkgPSBjcmVhdGVfcHJvY19lbnRyeShOTlBGU19QUk9DX05P REUsIDA2NjYsIG5ucGZzX3Byb2Nmc19kaXIpOw0KKyNlbHNlDQorICAgIGVu dHJ5ID0gcHJvY19jcmVhdGUoTk5QRlNfUFJPQ19OT0RFLCAwNjY2LCBOVUxM LCAmbm5wZnNfcHJvY2ZzX2ZvcHMpOw0KKyNlbmRpZg0KICAgICBpZiAoZW50 cnkgPT0gTlVMTCkgew0KIAlOTlBGU0RFQihYREVCU1lTLCAoIm5ucGZzX2lu aXRfcHJvY2ZzOiBubyBub2RlXG4iKSk7DQogCXJlbW92ZV9wcm9jX2VudHJ5 KCJmcy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsNCkBAIC04MTcsNyArOTE2 LDkgQEAgc3RhdGljIGludCBubnBmc19pbml0X3Byb2Nmcyh2b2lkKQ0KICNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzAp DQogICAgIGVudHJ5LT5vd25lciA9IFRISVNfTU9EVUxFOw0KICNlbmRpZg0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEw LDApDQogICAgIGVudHJ5LT5wcm9jX2ZvcHMgPSAmbm5wZnNfcHJvY2ZzX2Zv cHM7DQorI2VuZGlmDQogDQogI2lmZGVmIFNZU0NBTExDT01QQVQNCiAgICAg aWYgKHJlZ2lzdGVyX2lvY3RsMzJfY29udmVyc2lvbihBUkxBX1ZJT0NfU1lT Q0FMTDMyLCBubnBmc19wcm9jZnNfaW9jdGwzMikpIHsNCmRpZmYgLXVwck4g YXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5j IGFybGEvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jDQot LS0gYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2Fn ZS5jCTIwMTAtMDgtMDggMjI6NDM6MDUuMDAwMDAwMDAwICswMjAwDQorKysg YXJsYS9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMJMjAx Ni0wMS0xMyAyMTo1MTo0OS42ODI0NTcyMTMgKzAxMDANCkBAIC01MCw4ICs1 MCwxNyBAQA0KIFJDU0lEKCIkSWQ6IG5ucGZzX3N5c2NhbGxzLWxvc3NhZ2Uu Yyx2IDEuMTkgMjAxMC8wOC8wOCAyMDo0MzowNSB0b2wgRXhwICQiKTsNCiAj ZW5kaWYNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9W RVJTSU9OKDMsNywwKQ0KKy8qIHRoZSBtZXRob2QgdG8gcmVhZCAnbG93ZXJf Ym91bmQnIGRvZXMgbm90IHdvcmsgb24ga2VybmVsIDMuNyBhbmQgbGF0ZXIg Ki8NCisjdW5kZWYgU1lTQ0FMTEhBQ0sNCisjZW5kaWYNCisNCiAjaW5jbHVk ZSA8bGludXgva2FsbHN5bXMuaD4NCisjaWZkZWYgU1lTQ0FMTEhBQ0sNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw3LDAp DQogc3RhdGljIHZvaWQgKmxvd2VyX2JvdW5kID0gJmtlcm5lbF90aHJlYWQ7 DQorI2VuZGlmDQorI2VuZGlmDQogDQogdm9pZCAqIF9fYXR0cmlidXRlX18o KHdlYWspKSBzeXNfY2FsbF90YWJsZSh2b2lkKTsNCiBubnBmc19zeXNfY2Fs bF9mdW5jdGlvbiAqbm5wZnNfc3lzX2NhbGxfdGFibGUgPQ0KQEAgLTY2LDYg Kzc1LDggQEAgY29uc3QgY2hhciAqIF9fYXR0cmlidXRlX18oKHdlYWspKQ0K ICNpZmRlZiBfX3g4Nl82NF9fDQogZXh0ZXJuIHJ3bG9ja190IHRhc2tsaXN0 X2xvY2sgX19hdHRyaWJ1dGVfXygod2VhaykpOw0KICNlbmRpZg0KKw0KKyNp ZmRlZiBTWVNDQUxMSEFDSw0KIHN0YXRpYyB2b2lkICoqDQogZ2V0X3N0YXJ0 X2FkZHIodm9pZCkgew0KICNpZmRlZiBfX3g4Nl82NF9fDQpAQCAtNzQsNiAr ODUsNyBAQCBnZXRfc3RhcnRfYWRkcih2b2lkKSB7DQogICAgIHJldHVybiAo dm9pZCAqKikmbXV0ZXhfbG9jazsNCiAjZW5kaWYNCiB9DQorI2VuZGlmDQog DQogc3RhdGljIGlubGluZSBpbnQgDQoga2FsbHN5bV9pc19lcXVhbCh1bnNp Z25lZCBsb25nIGFkZHIsIGNvbnN0IGNoYXIgKm5hbWUpDQpAQCAtMTQyLDYg KzE1NCw4IEBAIHZlcmlmeSh2b2lkICoqcCkgew0KICAgICByZXR1cm4gMTsN CiB9DQogDQorI2lmZGVmIFNZU0NBTExIQUNLDQorDQogc3RhdGljIGlubGlu ZSBpbnQgbG9va3NfZ29vZCh2b2lkICoqcCkNCiB7DQogICAgIGlmICgqcCA8 PSAodm9pZCopbG93ZXJfYm91bmQgfHwgKnAgPj0gKHZvaWQqKXApDQpAQCAt MTkxLDMgKzIwNSw1IEBAIG5ucGZzX2ZpeHVwX3N5c2NhbGxfbG9zc2FnZSh2 b2lkKQ0KIA0KICAgICByZXR1cm4gMDsNCiB9DQorDQorI2VuZGlmDQpkaWZm IC11cHJOIGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jIGFy bGEvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMNCi0tLSBhcmxhLWN2cy9u bnBmcy9saW51eC9ubnBmc192ZnNvcHMuYwkyMDEwLTA4LTA4IDIyOjQzOjA2 LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMvbGludXgvbm5wZnNf dmZzb3BzLmMJMjAxNi0wMS0xNCAxNzoxMzoxOC4yNjM2NTg1MzYgKzAxMDAN CkBAIC01MCw3ICs1MCw5IEBAIFJDU0lEKCIkSWQ6IG5ucGZzX3Zmc29wcy5j LHYgMS4xMTEgMjAxMC8NCiBzdHJ1Y3Qgbm5wZnMgbm5wZnNbTk5OUEZTXTsN CiANCiBzdGF0aWMgdm9pZCBubnBmc19wdXRfc3VwZXIoc3RydWN0IHN1cGVy X2Jsb2NrICpzYik7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyB2b2lkIG5ucGZzX3dyaXRlX3N1 cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqIHNiKTsNCisjZW5kaWYNCiANCiBz dGF0aWMgaW50IG5ucGZzX3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnks IHN0cnVjdCBrc3RhdGZzICpidWYpOw0KIA0KQEAgLTU5LDcgKzYxLDkgQEAg c3RhdGljIHN0cnVjdCBzdXBlcl9vcGVyYXRpb25zIG5ucGZzX3NvcA0KICAg ICBkZXN0cm95X2lub2RlCTogbm5wZnNfbm9kZV9mcmVlLA0KICAgICBkcm9w X2lub2RlCQk6IGdlbmVyaWNfZGVsZXRlX2lub2RlLA0KICAgICBwdXRfc3Vw ZXIJCTogbm5wZnNfcHV0X3N1cGVyLA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgd3JpdGVfc3VwZXIJ CTogbm5wZnNfd3JpdGVfc3VwZXIsDQorI2VuZGlmDQogICAgIHN0YXRmcwkJ OiBubnBmc19zdGF0ZnMsDQogfTsNCiANCkBAIC04Niw3ICs5MCwxMSBAQCBu bnBmc19mZXRjaF9yb290KHN0cnVjdCBpbm9kZSAqaSkNCiAJICogcm9vdCdz IHByaXZpbGlnZXMgKHVzdWFsbHkgbm9uZSwgYW5kIG5vbmUgaXMgbmVlZGVk KS4NCiAJICovDQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDE0LDApDQogCW1zZy5jcmVkLnVpZCA9IDA7DQorI2Vs c2UNCisJbXNnLmNyZWQudWlkID0gS1VJRFRfSU5JVCgwKTsNCisjZW5kaWYN CiAJbXNnLmNyZWQucGFnID0gMDsNCiAJDQogCWVycm9yID0gbm5wZnNfbWVz c2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0K QEAgLTEyMSw4ICsxMjksMTMgQEAgbWFrZV9yb290X2lub2RlKHN0cnVjdCBu bnBmcyAqbm5wZnNwKQ0KICAgICBYQV9TRVRfTU9ERSgmbm9kZS5hdHRyLCBT X0lGRElSIHwgMDc3Nyk7DQogICAgIFhBX1NFVF9OTElOSygmbm9kZS5hdHRy LCAxMDApOw0KICAgICBYQV9TRVRfU0laRSgmbm9kZS5hdHRyLCAwKTsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCww KQ0KICAgICBYQV9TRVRfVUlEKCZub2RlLmF0dHIsIDApOw0KICAgICBYQV9T RVRfR0lEKCZub2RlLmF0dHIsIDApOw0KKyNlbHNlDQorICAgIFhBX1NFVF9V SUQoJm5vZGUuYXR0ciwgS1VJRFRfSU5JVCgwKSk7DQorICAgIFhBX1NFVF9H SUQoJm5vZGUuYXR0ciwgS0dJRFRfSU5JVCgwKSk7DQorI2VuZGlmDQogICAg IFhBX1NFVF9BVElNRSgmbm9kZS5hdHRyLCAwKTsNCiAgICAgWEFfU0VUX01U SU1FKCZub2RlLmF0dHIsIDApOw0KICAgICBYQV9TRVRfQ1RJTUUoJm5vZGUu YXR0ciwgMCk7DQpAQCAtMTUxLDcgKzE2NCwxMSBAQCBtYWtlX3Jvb3QgKHN0 cnVjdCBzdXBlcl9ibG9jayAqc2IpDQogICAgIG5ucGZzLT5yb290ID0gaW5v ZGU7DQogDQogICAgIC8qIFhYWCBlcnJvciBoYW5kbGluZyAqLw0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDQsMCkNCiAg ICAgZHAgPSBkX2FsbG9jX3Jvb3QoaW5vZGUpOw0KKyNlbHNlDQorICAgIGRw ID0gZF9tYWtlX3Jvb3QoaW5vZGUpOw0KKyNlbmRpZg0KICAgICBubnBmc19k X2luaXQoZHApOw0KICAgICBzYi0+c19yb290ID0gZHA7DQogICAgIHJldHVy biAwOw0KQEAgLTE3NSwxMyArMTkyLDI3IEBAIG5ucGZzX3JlYWRfc3VwZXIg KHN0cnVjdCBzdXBlcl9ibG9jayAqIHMNCiAgICAgTk5QRlNERUIoWERFQlZG T1BTLCAoIm5ucGZzX3JlYWRfc3VwZXI6IGJlZ2luIHNldHRpbmcgdmFyaWFi bGVzXG4iKSk7DQogDQogICAgIGlmIChkYXRhICE9IE5VTEwpIHsNCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K IAlzdHJ1Y3QgbmFtZWlkYXRhIG5kOw0KKyNlbHNlDQorCXN0cnVjdCBwYXRo IHBhdGg7DQorI2VuZGlmDQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogCWVycm9yID0gcGF0aF9sb29r dXAoZGF0YSwgMCwgJm5kKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCWVycm9yID0ga2Vybl9wYXRo KGRhdGEsIDAsICZuZC5wYXRoKTsNCisjZWxzZQ0KKwllcnJvciA9IGtlcm5f cGF0aChkYXRhLCAwLCAmcGF0aCk7DQorI2VuZGlmDQogCWlmIChlcnJvcikN CiAJICAgIGRkZXYgPSBFUlJfUFRSKGVycm9yKTsNCiAJZWxzZQ0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog CSAgICBkZGV2ID0gbmQucGF0aC5kZW50cnk7DQorI2Vsc2UNCisJICAgIGRk ZXYgPSBwYXRoLmRlbnRyeTsNCisjZW5kaWYNCiANCiAJaWYgKCFJU19FUlIo ZGRldikpIHsNCiAJICAgIG1pbm9yZGV2aWNlID0gTUlOT1IoZGRldi0+ZF9p bm9kZS0+aV9yZGV2KTsNCkBAIC0yMjUsNiArMjU2LDcgQEAgbm5wZnNfZmls bF9zdXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYg0KICAgICByZXR1cm4g MDsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDIsNiwzOSkNCiBpbnQNCiBubnBmc19nZXRfc2Ioc3RydWN0IGZp bGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsDQogCSAgICAgaW50IGZsYWdzLCBj b25zdCBjaGFyICpkZXZfbmFtZSwNCkBAIC0yMzIsMTIgKzI2NCwyMyBAQCBu bnBmc19nZXRfc2Ioc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzDQogew0K ICAgICByZXR1cm4gZ2V0X3NiX25vZGV2KGZzX3R5cGUsIGZsYWdzLCBkYXRh LCBubnBmc19maWxsX3N1cGVyLCBtbnQpOw0KIH0NCisjZWxzZQ0KK3N0cnVj dCBkZW50cnkqDQorbm5wZnNfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5 cGUgKmZzX3R5cGUsDQorCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpk ZXZfbmFtZSwNCisJICAgICB2b2lkICpkYXRhKSANCit7DQorICAgIHJldHVy biBtb3VudF9ub2Rldihmc190eXBlLCBmbGFncywgZGF0YSwgbm5wZnNfZmls bF9zdXBlcik7DQorfQ0KKyNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgdm9pZA0K IG5ucGZzX3dyaXRlX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqIHNiKQ0K IHsNCiAgICAgc2ItPnNfZGlydCA9IDA7DQogfQ0KKyNlbmRpZg0KIA0KIC8q DQogICogWFhYIGlzIHRoaXMgZ29vZD8gDQo= ---276651502-611776909-1453469014=:9412 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Arla-drinkers mailing list [email protected] https://lists.stacken.kth.se/mailman/listinfo/arla-drinkers ---276651502-611776909-1453469014=:9412--