Re: PATCH v9: Arla CVS Current on Linux 2.6.3x to 4.4
Bo Branten <[email protected]> Mon, 15 Feb 2016 17:20:23 +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-1837419531-1455553223=:6685 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII PATCH v9: Arla CVS Current on Linux 2.6.3x to 4.4 Corrections in nnpfs_readdir/nnpfs_iterate that broke directory listing on Linux kernel 3.11 and above. Bo Branten ---276651502-1837419531-1455553223=:6685 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v9-arla-cvs-for-linux-2.6.3x-to-4.4 Content-Transfer-Encoding: BASE64 Content-ID: <[email protected]> Content-Description: Content-Disposition: attachment; filename=patch-v9-arla-cvs-for-linux-2.6.3x-to-4.4 ZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLWN2cy1vbGQvbm5wZnMvaW5jbHVk ZS9ubnBmcy9ubnBmc19hdHRyLmggYXJsYS9ubnBmcy9pbmNsdWRlL25ucGZz L25ucGZzX2F0dHIuaA0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9pbmNsdWRl L25ucGZzL25ucGZzX2F0dHIuaAkyMDA2LTEwLTI0IDE4OjMzOjMwLjAwMDAw MDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBm c19hdHRyLmgJMjAxNi0wMS0yMiAxMjo1MTowNy4wMDAwMDAwMDAgKzAxMDAN CkBAIC0xMTMsOCArMTEzLDE4IEBAIHN0cnVjdCBubnBmc19hdHRyIHsNCiAg ICAgdWludDMyX3QJCXhhX25saW5rOw0KICAgICB1aW50MzJfdAkJeGFfdHlw ZTsNCiANCisjaWZuZGVmIF9fS0VSTkVMX18NCiAgICAgdWludDMyX3QJCXhh X3VpZDsNCiAgICAgdWludDMyX3QJCXhhX2dpZDsNCisjZWxzZQ0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0K KyAgICBrdWlkX3QJCXhhX3VpZDsNCisgICAga2dpZF90CQl4YV9naWQ7DQor I2Vsc2UNCisgICAgdWludDMyX3QJCXhhX3VpZDsNCisgICAgdWludDMyX3QJ CXhhX2dpZDsNCisjZW5kaWYNCisjZW5kaWYNCiANCiAgICAgdWludDMyX3QJ CXhhX2F0aW1lOw0KICAgICB1aW50MzJfdAkJeGFfbXRpbWU7DQpkaWZmIC11 cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9pbmNsdWRlL25ucGZz L25ucGZzX21lc3NhZ2UuaCBhcmxhL25ucGZzL2luY2x1ZGUvbm5wZnMvbm5w ZnNfbWVzc2FnZS5oDQotLS0gYXJsYS1jdnMtb2xkL25ucGZzL2luY2x1ZGUv bm5wZnMvbm5wZnNfbWVzc2FnZS5oCTIwMDktMDItMjQgMjE6MjA6NTUuMDAw MDAwMDAwICswMTAwDQorKysgYXJsYS9ubnBmcy9pbmNsdWRlL25ucGZzL25u cGZzX21lc3NhZ2UuaAkyMDE2LTAxLTIyIDEyOjUzOjI5LjAwMDAwMDAwMCAr MDEwMA0KQEAgLTUyLDcgKzUyLDE1IEBAIHR5cGVkZWYgdWludDE2X3Qgbm5w ZnNfcmlnaHRzOw0KICAqIFRoZSBubnBmc19jcmVkLCBpZiBwYWcgPT0gMCwg dXNlIHVpZCANCiAgKi8NCiB0eXBlZGVmIHN0cnVjdCBubnBmc19jcmVkIHsN CisjaWZuZGVmIF9fS0VSTkVMX18NCiAgICAgdWludDMyX3QgdWlkOw0KKyNl bHNlDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP TigzLDE0LDApDQorICAgIGt1aWRfdCB1aWQ7DQorI2Vsc2UNCisgICAgdWlu dDMyX3QgdWlkOw0KKyNlbmRpZg0KKyNlbmRpZg0KICAgICBubnBmc19wYWdf dCBwYWc7DQogfSBubnBmc19jcmVkOw0KIA0KZGlmZiAtdXByTiAtWG5vZGlm ZiBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaCBh cmxhL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmgNCi0tLSBhcmxhLWN2 cy1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaAkyMDA2LTEwLTI0 IDE4OjMzOjQ4LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMvbGlu dXgvbm5wZnMvbm5wZnNfZnMuaAkyMDE2LTAxLTEzIDIyOjU3OjA2LjAwMDAw MDAwMCArMDEwMA0KQEAgLTg0LDggKzg0LDEzIEBAIHN0cnVjdCBubnBmcyB7 DQogICAgIHN0cnVjdCB2ZnNtb3VudCAqY2FjaGVyb290OyAvKiBzaW1wbGlm eSBvcGVuIG9mIGNhY2hlIGJsb2NrcyAqLw0KICAgICBzdHJ1Y3QgZGVudHJ5 ICpjYWNoZWRpcjsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICB1aWRfdCB1aWQ7IC8qIGtlZXAg dHJhY2sgb2YgZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCiAgICAgZ2lkX3QgZ2lk Ow0KKyNlbHNlDQorICAgIGt1aWRfdCB1aWQ7IC8qIGtlZXAgdHJhY2sgb2Yg ZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCisgICAga2dpZF90IGdpZDsNCisjZW5k aWYNCiANCiAgICAgc3RydWN0IHsNCiAJaW50IHJlY3Vyc2U7DQpkaWZmIC11 cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmcy9u bnBmc19sb2NsLmggYXJsYS9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2Ns LmgNCi0tLSBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNf bG9jbC5oCTIwMTAtMDgtMDggMjI6NDM6MDYuMDAwMDAwMDAwICswMjAwDQor KysgYXJsYS9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2NsLmgJMjAxNi0w MS0xMyAyMzowMToxMC4wMDAwMDAwMDAgKzAxMDANCkBAIC01MSw3ICs1MSw5 IEBADQogI2luY2x1ZGUgPGxpbnV4L3N0YXQuaD4NCiAjaW5jbHVkZSA8bGlu dXgvc3RyaW5nLmg+DQogI2luY2x1ZGUgPGxpbnV4L25hbWVpLmg+DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkN CiAjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4NCisjZW5kaWYNCiAjaW5j bHVkZSA8bGludXgvd2FpdC5oPg0KIA0KIC8qDQpAQCAtMTM4LDEwICsxNDAs MTcgQEAgdHlwZWRlZiBfX3UzMiAgdWludDMyX3Q7DQogaW50DQogbm5wZnNf ZmV0Y2hfcm9vdChzdHJ1Y3QgaW5vZGUgKmkpOw0KIA0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogaW50DQog bm5wZnNfZ2V0X3NiKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBl LA0KIAkgICAgIGludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsDQog CSAgICAgdm9pZCAqZGF0YSwgc3RydWN0IHZmc21vdW50ICptbnQpOw0KKyNl bHNlDQorc3RydWN0IGRlbnRyeSoNCitubnBmc19tb3VudChzdHJ1Y3QgZmls ZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCisJICAgICBpbnQgZmxhZ3MsIGNv bnN0IGNoYXIgKmRldl9uYW1lLA0KKwkgICAgIHZvaWQgKmRhdGEpOw0KKyNl bmRpZg0KIA0KIGV4dGVybiBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMgbm5w ZnNfZGVudHJ5X29wZXJhdGlvbnM7DQogDQpAQCAtMTk0LDEwICsyMDMsMjEg QEAgbm5wZnNfaXdyaXRlY291bnQgKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQog ICogSGVscCBmdW5jdGlvbiB0byByZWFkIHRoZSBkZW50cnktPmRfY291bnQg YSBwb3J0YWJsZSB3YXkNCiAgKi8NCiANCisvKiNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKi8NCiBzdGF0aWMgaW5s aW5lIGludA0KIG5ucGZzX2Rjb3VudCAoY29uc3Qgc3RydWN0IGRlbnRyeSAq ZGVudHJ5KQ0KKy8qI2Vsc2UNCitzdGF0aWMgaW5saW5lIGludA0KK25ucGZz X2Rjb3VudCAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZiovDQog ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy LDYsMzgpDQogICAgIHJldHVybiBhdG9taWNfcmVhZCgmZGVudHJ5LT5kX2Nv dW50KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDExLDApDQorICAgIHJldHVybiBhdG9taWNfcmVhZCgoY29uc3Qg YXRvbWljX3QqKSZkZW50cnktPmRfY291bnQpOw0KKyNlbHNlDQorICAgIHJl dHVybiBkX2NvdW50KGRlbnRyeSk7Ow0KKyNlbmRpZg0KIH0NCiANCiBleHRl cm4gDQpAQCAtMjI5LDcgKzI0OSwxMiBAQCBubnBmc19maXh1cF9zeXNjYWxs X2xvc3NhZ2Uodm9pZCk7DQogI2VuZGlmDQogDQogI2RlZmluZSBubnBmc19k ZXZfdCBkZXZfdA0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLDYsMzgpDQogI2RlZmluZSBubnBmc19kX2VudHJ5X3Vu aGFzaGVkKGQpIGhsaXN0X3VuaGFzaGVkKGQpDQorI2Vsc2UNCisjZGVmaW5l IG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoZCkgaGxpc3RfYmxfdW5oYXNoZWQo ZCkNCisjZW5kaWYNCiANCiAjZGVmaW5lIE5OUEZTX05PT1AgICAgICB3aGls ZSgwKXt9DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9u bnBmcy9saW51eC9ubnBmc19ibG9ja3MuYyBhcmxhL25ucGZzL2xpbnV4L25u cGZzX2Jsb2Nrcy5jDQotLS0gYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25u cGZzX2Jsb2Nrcy5jCTIwMTAtMDgtMDggMjI6NDM6MDQuMDAwMDAwMDAwICsw MjAwDQorKysgYXJsYS9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDE2 LTAxLTI4IDE3OjQ0OjM2LjAwMDAwMDAwMCArMDEwMA0KQEAgLTQzLDYgKzQz LDExIEBADQogI2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+DQogI2luY2x1ZGUg PGxpbnV4L21tLmg+DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL RVJORUxfVkVSU0lPTigzLDEyLDApDQorZXh0ZXJuIGludCB2ZnNfcGF0aF9s b29rdXAoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgdmZzbW91bnQgKiwNCisJ CQkgICBjb25zdCBjaGFyICosIHVuc2lnbmVkIGludCwgc3RydWN0IHBhdGgg Kik7DQorI2VuZGlmDQorDQogLyoNCiAgKiByZXR1cm4gdHJ1ZSBpZiBibG9j ayBpcyBpbiBjYWNoZQ0KICAqLw0KQEAgLTI5MCw3ICsyOTUsMTMgQEAgbm5w ZnNfYmxvY2tfZXh0ZW5kKHN0cnVjdCBubnBmc19ub2RlICpubw0KICAgICBi YWNrbm9kZSA9IGJhY2tmaWxlLT5mX21hcHBpbmctPmhvc3Q7DQogDQogICAg IG11dGV4X2xvY2soJmJhY2tub2RlLT5pX211dGV4KTsNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw4LDApDQogICAgIHJl dCA9IHZtdHJ1bmNhdGUoYmFja25vZGUsIG5ucGZzX2Jsb2Nrc2l6ZSk7DQor I2Vsc2UNCisgICAgcmV0ID0gaW5vZGVfbmV3c2l6ZV9vayhiYWNrbm9kZSwg bm5wZnNfYmxvY2tzaXplKTsNCisgICAgaWYoIXJldCkNCisgICAgICAgIHRy dW5jYXRlX3NldHNpemUoYmFja25vZGUsIG5ucGZzX2Jsb2Nrc2l6ZSk7DQor I2VuZGlmDQogICAgIG11dGV4X3VubG9jaygmYmFja25vZGUtPmlfbXV0ZXgp Ow0KICAgICANCiAgICAgZmlscF9jbG9zZShiYWNrZmlsZSwgTlVMTCk7DQpA QCAtMzE4LDE0ICszMjksMTkgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qg bm5wZnNfbm9kZSAqbm9kZQ0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9 IE5OUEZTX0ZST01fWE5PREUobm9kZSk7DQogICAgIHN0cnVjdCBpbm9kZSAq aW5vZGUgPSBYTk9ERV9UT19WTk9ERShub2RlKTsNCiAgICAgaW50IGZsYWdz ID0gT19MQVJHRUZJTEUgfCBmbGFnOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBuYW1l aWRhdGEgbmQ7DQorI2Vsc2UNCisgICAgc3RydWN0IHBhdGggcGF0aDsNCisj ZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMiw2LDI5KQ0KICAgICB1aWRfdCBzYXZldWlkOw0KICAgICBnaWRfdCBz YXZlZ2lkOw0KLSAgICBpbnQgcmV0Ow0KLSNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KKyNlbHNlDQogICAgIGNv bnN0IHN0cnVjdCBjcmVkICpvbGRfY3JlZDsNCiAgICAgc3RydWN0IGNyZWQg Km92ZXJyaWRlX2NyZWQ7DQogI2VuZGlmDQorICAgIGludCByZXQ7DQogDQog ICAgIEJVR19PTighbm5wZnNwKTsNCiAgICAgQlVHX09OKGZsYWdzICYgT19D UkVBVCAmJiBmaWxlICE9IE5VTEwpOw0KQEAgLTM1MCwxNCArMzY2LDEyIEBA IG5ucGZzX2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5vZGUNCiAg ICAgQlVHX09OKCFubnBmc3AtPmNhY2hlZGlyIHx8ICFubnBmc3AtPmNhY2hl cm9vdCk7DQogICAgIA0KICAgICAvKiB1c2UgdGhlIG5mc2QgdHJpY2sgdG8g Z2l2ZSB1cyBhY2Nlc3MgKi8NCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9 IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KICAgICBzYXZldWlkID0g Y3VycmVudC0+ZnN1aWQ7DQogICAgIHNhdmVnaWQgPSBjdXJyZW50LT5mc2dp ZDsNCiAgICAgY3VycmVudC0+ZnN1aWQgPSBubnBmc3AtPnVpZDsNCiAgICAg Y3VycmVudC0+ZnNnaWQgPSBubnBmc3AtPmdpZDsNCiAjZWxzZQ0KLSAgICBz YXZldWlkID0gY3VycmVudF9mc3VpZCgpOw0KLSAgICBzYXZlZ2lkID0gY3Vy cmVudF9mc2dpZCgpOw0KICAgICBvdmVycmlkZV9jcmVkID0gcHJlcGFyZV9j cmVkcygpOw0KICAgICBpZiAob3ZlcnJpZGVfY3JlZCA9PSBOVUxMKQ0KICAg ICAgICAgcmV0dXJuIC1FTk9NRU07DQpAQCAtMzY2LDEwICszODAsMjIgQEAg bm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KICAg ICBvbGRfY3JlZCA9IG92ZXJyaWRlX2NyZWRzKG92ZXJyaWRlX2NyZWQpOw0K ICNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDEsMCkNCiAgICAgcmV0ID0gdmZzX3BhdGhfbG9va3VwKG5u cGZzcC0+Y2FjaGVkaXIsIG5ucGZzcC0+Y2FjaGVyb290LA0KIAkJCSAgY2Fj aGVuYW1lLA0KIAkJCSAgZmxhZ3MgJiBPX0NSRUFUID8gTE9PS1VQX1BBUkVO VCA6IDAsDQogCQkJICAmbmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgcmV0ID0gdmZzX3Bh dGhfbG9va3VwKG5ucGZzcC0+Y2FjaGVkaXIsIG5ucGZzcC0+Y2FjaGVyb290 LA0KKwkJCSAgY2FjaGVuYW1lLA0KKwkJCSAgZmxhZ3MgJiBPX0NSRUFUID8g TE9PS1VQX1BBUkVOVCA6IDAsDQorCQkJICAmbmQucGF0aCk7DQorI2Vsc2UN CisgICAgcmV0ID0gdmZzX3BhdGhfbG9va3VwKG5ucGZzcC0+Y2FjaGVkaXIs IG5ucGZzcC0+Y2FjaGVyb290LA0KKwkJCSAgY2FjaGVuYW1lLA0KKwkJCSAg ZmxhZ3MgJiBPX0NSRUFUID8gTE9PS1VQX1BBUkVOVCA6IDAsDQorCQkJICAm cGF0aCk7DQorI2VuZGlmDQogICAgIGlmIChyZXQpIHsNCiAJdWludDMyX3Qg bm1hc2tzID0gbm9kZS0+ZGF0YS5ubWFza3M7DQogCXVpbnQzMl90IG1hc2s7 DQpAQCAtMzk2LDE3ICs0MjIsMzkgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1 Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KICAgICANCiAgICAgaWYgKGZsYWdzICYg T19DUkVBVCkgew0KIAkvKiBYWFggbW9kZSBiaXRzIG9uIGNyZWF0ZSAtLSBT X0lSVVNSfFNfSVdVU1IgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMywxLDApDQogCXN0cnVjdCBkZW50cnkgKmRlbnRy eSA9IGxvb2t1cF9jcmVhdGUoJm5kLCAwKTsJDQorI2VsaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwkvKiBYWFgg dmVyaWZ5IHRoYXQgY2FjaGVuYW1lIGlzIHRoZSBjb3JyZWN0IHBhdGggc3Ry aW5nIHRvIHVzZSBoZXJlICovDQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9 IGtlcm5fcGF0aF9jcmVhdGUoQVRfRkRDV0QsIGNhY2hlbmFtZSwgJm5kLnBh dGgsIDApOwkNCisjZWxzZQ0KKwkvKiBYWFggdmVyaWZ5IHRoYXQgY2FjaGVu YW1lIGlzIHRoZSBjb3JyZWN0IHBhdGggc3RyaW5nIHRvIHVzZSBoZXJlICov DQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGtlcm5fcGF0aF9jcmVhdGUo QVRfRkRDV0QsIGNhY2hlbmFtZSwgJnBhdGgsIDApOwkNCisjZW5kaWYNCiAJ aWYgKElTX0VSUihkZW50cnkpKSB7DQogCSAgICByZXQgPSBQVFJfRVJSKGRl bnRyeSk7DQogCX0gZWxzZSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAkgICAgcmV0ID0gdmZzX2NyZWF0 ZShuZC5wYXRoLmRlbnRyeS0+ZF9pbm9kZSwgZGVudHJ5LCBTX0lSVVNSfFNf SVdVU1IsICZuZCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMywxOSwwKQ0KKwkgICAgLyogWFhYIHNob3VsZCB0aGUg bGFzdCBhcmd1bWVudCB0byB2ZnNfY3JlYXRlOiBib29sIHdhbnRfZXhjbCwg YmUgMCBvciAxPyAqLw0KKwkgICAgcmV0ID0gdmZzX2NyZWF0ZShuZC5wYXRo LmRlbnRyeS0+ZF9pbm9kZSwgZGVudHJ5LCBTX0lSVVNSfFNfSVdVU1IsIDAp Ow0KKyNlbHNlDQorCSAgICAvKiBYWFggc2hvdWxkIHRoZSBsYXN0IGFyZ3Vt ZW50IHRvIHZmc19jcmVhdGU6IGJvb2wgd2FudF9leGNsLCBiZSAwIG9yIDE/ ICovDQorCSAgICByZXQgPSB2ZnNfY3JlYXRlKHBhdGguZGVudHJ5LT5kX2lu b2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwgMCk7DQorI2VuZGlmDQor DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs NiwwKQ0KIAkgICAgZHB1dChkZW50cnkpOw0KKwkgICAgbXV0ZXhfdW5sb2Nr KCZuZC5wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9tdXRleCk7DQorCSAgICBw YXRoX3B1dCgmbmQucGF0aCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwkgICAgZG9uZV9wYXRoX2Ny ZWF0ZSgmbmQucGF0aCwgZGVudHJ5KTsNCisjZWxzZQ0KKwkgICAgZG9uZV9w YXRoX2NyZWF0ZSgmcGF0aCwgZGVudHJ5KTsNCisjZW5kaWYNCiAJfQ0KIA0K LQltdXRleF91bmxvY2soJm5kLnBhdGguZGVudHJ5LT5kX2lub2RlLT5pX211 dGV4KTsNCi0JcGF0aF9wdXQoJm5kLnBhdGgpOw0KLQ0KIAlpZiAocmV0KSB7 DQogCSAgICBwcmludGsoIm5ucGZzX2Jsb2NrX29wZW4oJXMpIGNyZWF0ZSBm YWlsZWQ6ICVkXG4iLCBjYWNoZW5hbWUsIC1yZXQpOw0KIAkgICAgbm5wZnNf ZGVidWdfb29wcygpOw0KQEAgLTQyMSwxNCArNDY5LDIyIEBAIG5ucGZzX2Js b2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5vZGUNCiAgICAgfSBlbHNl IHsNCiAjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Miw2LDI5KQ0KIAlzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKG5kLnBh dGguZGVudHJ5LCBuZC5wYXRoLm1udCwgZmxhZ3MpOw0KLSNlbHNlDQorI2Vs aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDAp DQogICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKG5kLnBh dGguZGVudHJ5LCBuZC5wYXRoLm1udCwgZmxhZ3MsIGN1cnJlbnRfY3JlZCgp KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDE5LDApDQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9v cGVuKCZuZC5wYXRoLCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbHNl DQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKCZwYXRo LCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KICNlbmRpZg0KIAlpZiAoSVNf RVJSKGYpKSB7DQogCSAgICByZXQgPSBQVFJfRVJSKGYpOw0KIAkgICAgcHJp bnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBvcGVuIGZhaWxlZDogJWRcbiIs IGNhY2hlbmFtZSwgLXJldCk7DQogCSAgICBubnBmc19kZWJ1Z19vb3BzKCk7 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs MTksMCkNCiAJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0KKwkg ICAgcGF0aF9wdXQoJnBhdGgpOw0KKyNlbmRpZg0KIAl9IGVsc2Ugew0KIAkg ICAgKmZpbGUgPSBmOw0KIAl9DQpAQCAtNDM3LDcgKzQ5Myw3IEBAIG5ucGZz X2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5vZGUNCiAgICAgLyog cGF0aF9yZWxlYXNlKCkgaXMgdXN1YWxseSBoYW5kbGVkIG9uIGNsb3NlICov DQogDQogIG91dDoNCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5F TF9WRVJTSU9OKDIsNiwyOCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KICAgICBjdXJyZW50LT5mc3VpZCA9 IHNhdmV1aWQ7DQogICAgIGN1cnJlbnQtPmZzZ2lkID0gc2F2ZWdpZDsNCiAj ZWxzZQ0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLWN2cy1vbGQvbm5wZnMv bGludXgvbm5wZnNfY29tbW9uLmMgYXJsYS9ubnBmcy9saW51eC9ubnBmc19j b21tb24uYw0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19j b21tb24uYwkyMDA2LTEyLTExIDE3OjMxOjQ2LjAwMDAwMDAwMCArMDEwMA0K KysrIGFybGEvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMJMjAxNi0wMS0x NCAxNjoxNTowMC4wMDAwMDAwMDAgKzAxMDANCkBAIC0xMTIsMTAgKzExMiwx NSBAQCBubnBmc19wcmludF9hbGlhc2VzKGNvbnN0IHN0cnVjdCBpbm9kZSAq DQogdm9pZA0KIG5ucGZzX3ByaW50X2FsaWFzZXNfcmVhbChjb25zdCBzdHJ1 Y3QgaW5vZGUgKmlub2RlKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVjdCBsaXN0X2hl YWQgKmFsaWFzOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqYWxp YXM7DQorI2VuZGlmDQogICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeTsNCiAg ICAgaW50IGJhaWxvdXQgPSAxMDA7DQogDQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBhbGlhcyA9IGlu b2RlLT5pX2RlbnRyeS5uZXh0Ow0KICAgICB3aGlsZSAoYWxpYXMgIT0gJmlu b2RlLT5pX2RlbnRyeSkgew0KIAlpZiAoLS1iYWlsb3V0IDwgMCkgew0KQEAg LTEzMSw2ICsxMzYsMjYgQEAgbm5wZnNfcHJpbnRfYWxpYXNlc19yZWFsKGNv bnN0IHN0cnVjdCBpbg0KIAl9DQogCWFsaWFzID0gYWxpYXMtPm5leHQ7DQog ICAgIH0NCisjZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnko ZGVudHJ5LCBhbGlhcywgJmlub2RlLT5pX2RlbnRyeSwgZF9hbGlhcykgew0K KyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs MTksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCAmaW5v ZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2Vsc2UNCisgICAgaGxpc3Rf Zm9yX2VhY2hfZW50cnkoZGVudHJ5LCAmaW5vZGUtPmlfZGVudHJ5LCBkX3Uu ZF9hbGlhcykgew0KKyNlbmRpZg0KKwlpZiAoLS1iYWlsb3V0IDwgMCkgew0K KwkgICAgcHJpbnRrKCIgLi4uIik7DQorCSAgICBicmVhazsNCisJfQ0KKwlp ZiAoZGVudHJ5KSB7DQorCSAgICBwcmludGsoIiAlLipzKCVwKSIsIChpbnQp ZGVudHJ5LT5kX25hbWUubGVuLA0KKwkJICAgZGVudHJ5LT5kX25hbWUubmFt ZSwgZGVudHJ5KTsNCisJICAgIGlmIChubnBmc19kX2VudHJ5X3VuaGFzaGVk KCZkZW50cnktPmRfaGFzaCkpDQorCQlwcmludGsoIih1bmhhc2hlZCkiKTsN CisJfQ0KKyAgICB9DQorI2VuZGlmDQogICAgIHByaW50aygiXG4iKTsNCiB9 DQogDQpAQCAtMTQ2LDcgKzE3MSwxMSBAQCBubnBmc19wcmludF9jaGlsZHJl bihjb25zdCBzdHJ1Y3QgZGVudHJ5DQogDQogICAgIHdoaWxlIChzdWJkaXJz ICE9ICZkZW50cnktPmRfc3ViZGlycykgew0KIAlzdHJ1Y3QgbGlzdF9oZWFk ICp0bXAgPSBzdWJkaXJzOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDE5LDApDQogCXN0cnVjdCBkZW50cnkgKmNoaWxk ID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfdS5kX2NoaWxk KTsNCisjZWxzZQ0KKwlzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9IGxpc3RfZW50 cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBkX2NoaWxkKTsNCisjZW5kaWYNCiAN CiAJcHJpbnRrKCIgJS4qcyglcCkiLCAoaW50KWNoaWxkLT5kX25hbWUubGVu LA0KIAkgICAgICAgY2hpbGQtPmRfbmFtZS5uYW1lLCBjaGlsZCk7DQpkaWZm IC11cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBm c19kZXYuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jDQotLS0gYXJs YS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMDYtMTAtMjQg MTg6MzM6MzYuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS9ubnBmcy9saW51 eC9ubnBmc19kZXYuYwkyMDE2LTAxLTE0IDE2OjI4OjE5LjAwMDAwMDAwMCAr MDEwMA0KQEAgLTMwMCw3ICszMDAsOSBAQCBubnBmc19pbnZhbGlkYXRlX2Fs bChzdHJ1Y3Qgbm5wZnMgKm5ucGZzDQogICAgIE5OUEZTREVCKFhERUJOT0RF LCAoImZyZWVfYWxsX25ucGZzX25vZGVzIHN0YXJ0aW5nXG4iKSk7DQogDQog ICAgIHNocmlua19kY2FjaGVfc2Iobm5wZnMtPnNiKTsNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM3KQ0KICAgICBp bnZhbGlkYXRlX2lub2RlcyhubnBmcy0+c2IpOw0KKyNlbmRpZg0KICAgICAN CiAgICAgTk5QRlNERUIoWERFQk5PREUsICgiZnJlZV9hbGxfbm5wZnNfbm9k ZXMgZG9uZVxuIikpOw0KIH0NCkBAIC0zNzQsNyArMzc2LDExIEBAIG5ucGZz X2RldmNsb3NlKHN0cnVjdCBpbm9kZSAqIGlub2RlLCBzdHINCiBzdGF0aWMg c3NpemVfdA0KIG5ucGZzX2RldnJlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNo YXIgKmJ1Ziwgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpDQogew0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp DQogICAgIG5ucGZzX2Rldl90IGRldiA9IGZpbGUtPmZfZGVudHJ5LT5kX2lu b2RlLT5pX3JkZXY7DQorI2Vsc2UNCisgICAgbm5wZnNfZGV2X3QgZGV2ID0g ZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbmRp Zg0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9ICZubnBmc1tNSU5PUihk ZXYpXTsNCiAgICAgc3RydWN0IG5ucGZzX2xpbmsgKmZpcnN0Ow0KICAgICBp bnQgcmV0ID0gMCwgZXJyb3IgPSAwOw0KQEAgLTQzOSw4ICs0NDUsMTIgQEAg bm5wZnNfZGV2d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IA0KIA0K ICAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldndyaXRlXG4iKSk7 DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDE5LDApDQogICAgIGRldiA9IGZpbGUtPmZfZGVudHJ5LT5kX2lu b2RlLT5pX3JkZXY7DQotICAgIG5ucGZzcCA9ICZubnBmc1tNSU5PUihkZXYp XTsNCisjZWxzZQ0KKyAgICBkZXYgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5k X2lub2RlLT5pX3JkZXY7DQorI2VuZGlmDQorICAgICBubnBmc3AgPSAmbm5w ZnNbTUlOT1IoZGV2KV07DQogDQogICAgIGRvd24oJm5ucGZzcC0+Y2hhbm5l bF9zZW0pOw0KICAgICBpZiAobm5wZnNwLT5zdGF0dXMgJiBOTlBGU19ERVZX UklURSkgew0KQEAgLTUwNSwxOSArNTE1LDM3IEBAIG5ucGZzX2RldndyaXRl KHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCANCiAvKg0KICAqIE5vdCB1c2Vk Lg0KICAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigyLDYsMzYpDQogc3RhdGljIGludA0KIG5ucGZzX2RldmlvY3RsKHN0 cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLA0KIAkgICAg ICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2Vs c2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3VubG9ja2VkX2RldmlvY3RsKHN0 cnVjdCBmaWxlICpmaWxlLA0KKwkgICAgICAgdW5zaWduZWQgaW50IGNtZCwg dW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQogew0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogICAgIE5O UEZTREVCKFhERUJERVYsICgibm5wZnNfZGV2aW9jdGwgZGV2ID0gJWQsIGZs YWdzID0gJWRcbiIsDQogCQkgICAgICAgaW5vZGUtPmlfcmRldiwgZmlsZS0+ Zl9mbGFncykpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMTksMCkNCisgICAgTk5QRlNERUIoWERFQkRFViwgKCJu bnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwNCisJCSAg ICAgICBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2LCBmaWxlLT5m X2ZsYWdzKSk7DQorI2Vsc2UNCisgICAgTk5QRlNERUIoWERFQkRFViwgKCJu bnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwNCisJCSAg ICAgICBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLT5pX3JkZXYsIGZp bGUtPmZfZmxhZ3MpKTsNCisjZW5kaWYNCiAgICAgcmV0dXJuIC1FSU5WQUw7 DQogfQ0KIA0KIHN0YXRpYyB1bnNpZ25lZCBpbnQNCiBubnBmc19kZXZwb2xs KHN0cnVjdCBmaWxlICpmaWxlLCBwb2xsX3RhYmxlICp3YWl0KQ0KIHsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww KQ0KICAgICBubnBmc19kZXZfdCBkZXYgPSBmaWxlLT5mX2RlbnRyeS0+ZF9p bm9kZS0+aV9yZGV2Ow0KKyNlbHNlDQorICAgIG5ucGZzX2Rldl90IGRldiA9 IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZW5k aWYNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSAmbm5wZnNbTUlOT1Io ZGV2KV07DQogICAgIGludCByZXQgPSAwOw0KICAgICANCkBAIC05NTMsNyAr OTgxLDExIEBAIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZm9wcyA9 IHsNCiAgICAgcmVhZDoJCW5ucGZzX2RldnJlYWQsDQogICAgIHdyaXRlOgkJ bm5wZnNfZGV2d3JpdGUsDQogICAgIHBvbGw6CQlubnBmc19kZXZwb2xsLA0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs MzYpDQogICAgIGlvY3RsOgkJbm5wZnNfZGV2aW9jdGwsDQorI2Vsc2UNCisg ICAgdW5sb2NrZWRfaW9jdGw6CW5ucGZzX3VubG9ja2VkX2RldmlvY3RsLA0K KyNlbmRpZg0KICAgICByZWxlYXNlOgkJbm5wZnNfZGV2Y2xvc2UsDQogICAg IG9wZW46CQlubnBmc19kZXZvcGVuLA0KIH07DQpAQCAtOTY4LDggKzEwMDAs MTMgQEAgbm5wZnNfaW5pdF9kZXZpY2Uodm9pZCkNCiAJaW5pdF93YWl0cXVl dWVfaGVhZCgmKG5ucGZzW2ldLndhaXRfcXVldWUpKTsNCiAJbm5wZnNfaW5p dHEoJm5ucGZzW2ldLm1lc3NhZ2VxKTsNCiAJbm5wZnNfaW5pdHEoJm5ucGZz W2ldLnNsZWVwcSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDIsNiwzNykNCiAJaW5pdF9NVVRFWCgmbm5wZnNbaV0uaW5h Y3RpdmVfc2VtKTsNCiAJaW5pdF9NVVRFWCgmbm5wZnNbaV0uY2hhbm5lbF9z ZW0pOw0KKyNlbHNlDQorCXNlbWFfaW5pdCgmbm5wZnNbaV0uaW5hY3RpdmVf c2VtLCAxKTsNCisJc2VtYV9pbml0KCZubnBmc1tpXS5jaGFubmVsX3NlbSwg MSk7DQorI2VuZGlmDQogCUlOSVRfTElTVF9IRUFEKCZubnBmc1tpXS5pbmFj dGl2ZV9saXN0KTsNCiAJbm5wZnNbaV0ubm5vZGVzID0gMDsNCiAgICAgfQ0K ZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgv bm5wZnNfaW5vZGVvcHMuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX2lub2Rl b3BzLmMNCi0tLSBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnNfaW5v ZGVvcHMuYwkyMDEwLTA4LTA4IDIyOjQzOjA0LjAwMDAwMDAwMCArMDIwMA0K KysrIGFybGEvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYwkyMDE2LTAy LTE1IDE2OjE1OjI5LjAwMDAwMDAwMCArMDEwMA0KQEAgLTQwLDEwICs0MCwx NCBAQA0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19kZXYuaD4NCiAjaW5jbHVk ZSA8bm5wZnMvbm5wZnNfZGlyZW50Lmg+DQogI2luY2x1ZGUgPG5ucGZzL25u cGZzX3N5c2NhbGxzLmg+DQorI2luY2x1ZGUgPGxpbnV4L2Fpby5oPg0KICNp bmNsdWRlIDxsaW51eC9iaW5mbXRzLmg+DQogI2luY2x1ZGUgPGxpbnV4L2Zp bGUuaD4NCiAjaW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPg0KICNpbmNsdWRl IDxsaW51eC9wYWdlLWZsYWdzLmg+DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA+PSBLRVJORUxfVkVSU0lPTig0LDEsMCkNCisjaW5jbHVkZSA8bGludXgv dWlvLmg+DQorI2VuZGlmDQogI2luY2x1ZGUgPGxpbnV4L3dyaXRlYmFjay5o Pg0KICNpbmNsdWRlIDxhc20vZmNudGwuaD4NCiANCkBAIC01NCwxMSArNTgs MjMgQEAgUkNTSUQoIiRJZDogbm5wZnNfaW5vZGVvcHMuYyx2IDEuMjI2IDIw MQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUg KmZpbGUsIHVfaW50IGZsYWcpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgaW50DQogbm5w ZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0 IG5hbWVpZGF0YSAqbmQpOw0KLQ0KKyNlbHNlDQogc3RhdGljIGludA0KK25u cGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVuc2ln bmVkIGludCBmbGFncyk7DQorI2VuZGlmDQorDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCitzdGF0aWMNCitp bnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0K KyNlbHNlDQorc3RhdGljDQoraW50DQorbm5wZnNfZF9kZWxldGUoY29uc3Qg c3RydWN0IGRlbnRyeSAqZGVudHJ5KTsNCisjZW5kaWYNCiANCiBzdGF0aWMg dm9pZA0KIG5ucGZzX2RfcmVsZWFzZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkp Ow0KQEAgLTIxNCw4ICsyMzAsMTMgQEAgbm5wZnNfaW5vZGVfdmFsaWQoc3Ry dWN0IGlub2RlICppbm9kZSkNCiAgKiBubnBmc19sb29rdXAgbm93IHJldHVy bnMgYSBkZW50cnkuDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyBzdHJ1Y3QgZGVu dHJ5ICoNCiBubnBmc19sb29rdXAgKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1 Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNl bHNlDQorc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KK25ucGZzX2xvb2t1cCAo c3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW5z aWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5u cGZzX21lc3NhZ2VfZ2V0bm9kZSBtc2c7DQogICAgIHN0cnVjdCBubnBmcyAq bm5wZnNwOw0KQEAgLTQwNyw3ICs0MjgsMTEgQEAgZmluZF9maXJzdF9ibG9j ayhzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KIHN0YXRpYyBpbnQNCiBubnBm c19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcpDQog ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2Rl bnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlu b2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYN CiAgICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSBOTlBGU19GUk9NX1ZOT0RF KGlub2RlKTsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVf VE9fWE5PREUoaW5vZGUpOw0KICAgICBsb2ZmX3QgbGVuID0gaV9zaXplX3Jl YWQoaW5vZGUpOw0KQEAgLTQ3NCwxNSArNDk5LDE4IEBAIG5ucGZzX2ZzeW5j X2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQNCiAgKg0KICAqLw0KIA0K LSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLCA2 LCAzNSkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMiw2LDM1KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luYyhzdHJ1Y3Qg ZmlsZSAqZmlsZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBpbnQgZGF0YXN5 bmMpDQotI2Vsc2UNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDEsMCkNCiBzdGF0aWMgaW50DQogbm5wZnNfZnN5bmMo c3RydWN0IGZpbGUgKmZpbGUsIGludCBkYXRhc3luYykNCisjZWxzZQ0KK3N0 YXRpYyBpbnQNCitubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9m Zl90IHN0YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgZGF0YXN5bmMpDQogI2VuZGlm DQogew0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJ T04oMiwgNiwgMzUpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO RUxfVkVSU0lPTigyLDYsMzUpDQogICAgIHN0cnVjdCBkZW50cnkgKmRlbnRy eSA9IGZpbGUtPmZfcGF0aC5kZW50cnk7DQogI2VuZGlmDQogICAgIHN0cnVj dCBpbm9kZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUoZGVudHJ5KTsNCkBA IC00OTAsNiArNTE4LDggQEAgbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZp bGUsIGludCBkYXRhcw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQog ICAgIGludCBlcnJvciA9IDA7DQogDQorICAgICh2b2lkKW5ucGZzcDsNCisN CiAgICAgZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChpbm9kZSk7DQogICAg IGlmIChlcnJvcikNCiAJcmV0dXJuIGVycm9yOw0KQEAgLTYyMiwxMSArNjUy LDI1IEBAIGNoZWNrX3JpZ2h0cyAobm5wZnNfcmlnaHRzIHJpZ2h0cywgaW50 IG0NCiAgKiBXZSBkb24ndCBob2xkIGlfbXV0ZXguDQogICovDQogDQorI2lm IChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgp IHx8IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEs MCkpDQogc3RhdGljIGludA0KIG5ucGZzX3Blcm1pc3Npb24oc3RydWN0IGlu b2RlICppbm9kZSwgaW50IG1vZGUpDQorI2Vsc2UNCitzdGF0aWMgaW50DQor bm5wZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9k ZSwgdW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50 IGVycm9yID0gMDsNCi0gICAgbm5wZnNfcGFnX3QgcGFnID0gbm5wZnNfZ2V0 X3BhZygpOw0KKyAgICBubnBmc19wYWdfdCBwYWc7DQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEsMCkNCisgICAgaWYg KG1vZGUgJiBNQVlfTk9UX0JMT0NLKQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJ TEQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT SU9OKDIsNiwzOCkNCisgICAgaWYgKGZsYWdzICYgSVBFUk1fRkxBR19SQ1Up DQorICAgICAgICByZXR1cm4gLUVDSElMRDsNCisjZW5kaWYNCisNCisgICAg cGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICANCiAgICAgTk5QRlNERUIo WERFQlZOT1BTLCAoIm5ucGZzX2FjY2VzcyAoJXApIG1vZGUgPSAwJW8gYWxp YXNlczoiLCBpbm9kZSwgbW9kZSkpOw0KICAgICBubnBmc19wcmludF9hbGlh c2VzKGlub2RlKTsNCkBAIC03ODQsMTEgKzgyOCwxOSBAQCBubnBmc19kYXRh X3ZhbGlkKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVfDQogaW50IG5ucGZzX2Zp bGVfbW1hcChzdHJ1Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqIHZtYSkNCiB7DQogICAgIGludCBmbGFncywgZXJyb3IgPSAwOw0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5 LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRy eS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2Rl ID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAg ICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBmaWxlLT5mX21h cHBpbmc7DQogDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19t bWFwIGlub2RlOiAlcFxuIiwgaW5vZGUpKTsNCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBubnBmc19w cmludF9wYXRoKGZpbGUtPmZfZGVudHJ5KTsNCisjZWxzZQ0KKyAgICBubnBm c19wcmludF9wYXRoKGZpbGUtPmZfcGF0aC5kZW50cnkpOw0KKyNlbmRpZg0K ICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfbW1hcCBhbGlhc2Vz OiIpKTsNCiAgICAgbm5wZnNfcHJpbnRfYWxpYXNlcyhpbm9kZSk7DQogICAg IA0KQEAgLTgyMywyOCArODc1LDUxIEBAIGludCBubnBmc19maWxlX21tYXAo c3RydWN0IGZpbGUgKiBmaWxlLCANCiAgKg0KICAqLw0KIA0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogc3Rh dGljIHNzaXplX3QNCiBubnBmc19haW9fcmVhZChzdHJ1Y3Qga2lvY2IgKmlv Y2IsDQogCSAgICAgICBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWdu ZWQgbG9uZyBucl9zZWdzLA0KIAkgICAgICAgbG9mZl90IHBvcykNCisjZWxz ZQ0KK3N0YXRpYyBzc2l6ZV90DQorbm5wZnNfcmVhZF9pdGVyKHN0cnVjdCBr aW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICp0bykNCisjZW5kaWYNCiB7 DQogICAgIGludCBlcnJvciA9IDA7DQogICAgIHN0cnVjdCBmaWxlICpmaWxl ID0gaW9jYi0+a2lfZmlscDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMywxMiwwKQ0KICAgICBzc2l6ZV90IGNvdW50ID0g aW9jYi0+a2lfbGVmdDsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTig0LDEsMCkNCisgICAgc3NpemVfdCBjb3VudCA9IGlv Y2ItPmtpX25ieXRlczsNCisjZWxzZQ0KKyAgICBzc2l6ZV90IGNvdW50ID0g aW92X2l0ZXJfY291bnQodG8pOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVj dCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisj ZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRo LmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZz X25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KICAgICANCiAg ICAgaWYgKHhuICE9IE5VTEwpDQogCU5OUEZTREVCKFhERUJWTk9QUywgKCJu bnBmc19yZWFkX2ZpbGUoJXApOiB0b2tlbnM6IDB4JXhcbiIsDQogCQkJICAg ICBpbm9kZSwgeG4tPnRva2VucykpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIGVycm9yID0g bm5wZnNfZGF0YV92YWxpZChpbm9kZSwgTk5QRlNfREFUQV9SLCBwb3MsIHBv cyArIGNvdW50KTsNCisjZWxzZQ0KKyAgICBlcnJvciA9IG5ucGZzX2RhdGFf dmFsaWQoaW5vZGUsIE5OUEZTX0RBVEFfUiwgaW9jYi0+a2lfcG9zLCBpb2Ni LT5raV9wb3MgKyBjb3VudCk7DQorI2VuZGlmDQogICAgIGlmIChlcnJvcikg ew0KIAlOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfcmVhZF9maWxlOiBk YXRhIG5vdCB2YWxpZCAlZFxuIiwgZXJyb3IpKTsNCiAJcmV0dXJuIGVycm9y Ow0KICAgICB9DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIGVycm9yID0gZ2VuZXJpY19m aWxlX2Fpb19yZWFkKGlvY2IsIGlvdiwgbnJfc2VncywgcG9zKTsNCisjZWxz ZQ0KKyAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV9yZWFkX2l0ZXIoaW9jYiwg dG8pOw0KKyNlbmRpZg0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5w ZnNfcmVhZF9maWxlOiBlcnJvciA9ICVkXG4iLCBlcnJvcikpOw0KICAgICBy ZXR1cm4gZXJyb3I7DQogfQ0KQEAgLTg1MywxNyArOTI4LDM2IEBAIG5ucGZz X2Fpb19yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAgKg0KICAqLw0KIA0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2 LDApDQogc3RhdGljIHNzaXplX3QNCiBubnBmc19haW9fd3JpdGUoc3RydWN0 IGtpb2NiICppb2NiLA0KIAkJY29uc3Qgc3RydWN0IGlvdmVjICppb3YsIHVu c2lnbmVkIGxvbmcgbnJfc2VncywNCiAJCWxvZmZfdCBwb3MpDQorI2Vsc2UN CitzdGF0aWMgc3NpemVfdA0KK25ucGZzX3dyaXRlX2l0ZXIoc3RydWN0IGtp b2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pDQorI2VuZGlmDQog ew0KICAgICBpbnQgZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3QgZmlsZSAqZmls ZSA9IGlvY2ItPmtpX2ZpbHA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkNCiAgICAgc3NpemVfdCBjb3VudCA9 IGlvY2ItPmtpX2xlZnQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oNCwxLDApDQorICAgIHNzaXplX3QgY291bnQgPSBp b2NiLT5raV9uYnl0ZXM7DQorI2Vsc2UNCisgICAgc3NpemVfdCBjb3VudCA9 IGlvdl9pdGVyX2NvdW50KGZyb20pOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0 cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsN CisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9w YXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IG5u cGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQog ICAgIGxvZmZfdCByZWFscG9zID0gcG9zOw0KKyNlbHNlDQorICAgIGxvZmZf dCByZWFscG9zID0gaW9jYi0+a2lfcG9zOw0KKyNlbmRpZg0KICAgICANCiAg ICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2Fpb193cml0ZSglcCk6 IHRva2VuczogMHgleFxuIiwNCiAJCQkgaW5vZGUsIHhuLT50b2tlbnMpKTsN CkBAIC04NzcsNyArOTcxLDExIEBAIG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qg a2lvY2IgKmlvY2IsDQogCXJldHVybiBlcnJvcjsNCiAgICAgfQ0KIA0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDAp DQogICAgIGVycm9yID0gZ2VuZXJpY19maWxlX2Fpb193cml0ZShpb2NiLCBp b3YsIG5yX3NlZ3MsIHBvcyk7DQorI2Vsc2UNCisgICAgZXJyb3IgPSBnZW5l cmljX2ZpbGVfd3JpdGVfaXRlcihpb2NiLCBmcm9tKTsNCisjZW5kaWYNCiAg ICAgaWYgKCFJU19FUlJfVkFMVUUoZXJyb3IpKQ0KIAl4bi0+ZmxhZ3MgfD0g Tk5QRlNfREFUQV9ESVJUWTsgLyogWFhYIHJhY2UgKi8NCiANCkBAIC04ODUs OSArOTgzLDE5IEBAIG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qga2lvY2IgKmlv Y2IsDQogICAgIHJldHVybiBlcnJvcjsNCiB9DQogDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMywwKQ0KIHN0YXRpYyBp bnQNCiBubnBmc19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBk ZW50cnkgKmRlbnRyeSwNCiAJICAgICBpbnQgbW9kZSwgc3RydWN0IG5hbWVp ZGF0YSAqbmQpDQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMyw2LDApDQorc3RhdGljIGludA0KK25ucGZzX2NyZWF0ZShz dHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KKwkg ICAgIHVtb2RlX3QgbW9kZSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vs c2UNCitzdGF0aWMgaW50DQorbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAq ZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksDQorCSAgICAgdW1vZGVfdCBt b2RlLCBib29sIGV4Y2wpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3Qgbm5w ZnMgKm5ucGZzcDsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0KQEAg LTEwMzgsOCArMTE0NiwxMyBAQCBubnBmc19yZW5hbWUgKHN0cnVjdCBpbm9k ZSAqIG9sZF9kaXIsIHN0DQogICAgIHJldHVybiBlcnJvcjsNCiB9DQogDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMyww KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19ta2RpcihzdHJ1Y3QgaW5vZGUgKiBk aXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgaW50IG1vZGUpDQorI2Vsc2UN CitzdGF0aWMgaW50DQorbm5wZnNfbWtkaXIoc3RydWN0IGlub2RlICogZGly LCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVtb2RlX3QgbW9kZSkNCisjZW5k aWYNCiB7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1 Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAtMTI1MiwxMiArMTM2NSwyMSBAQCBz dGF0aWMgaW50IG5ucGZzX3N5bWxpbmsoc3RydWN0IGlub2RlICpkDQogLyoN CiAgKiBXZSBob2xkIGlfbXV0ZXguDQogICovDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiBzdGF0aWMgaW50 DQogbm5wZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUsIHZvaWQgKiBk aXJlbnQsIGZpbGxkaXJfdCBmaWxsZGlyKQ0KKyNlbHNlDQorc3RhdGljIGlu dA0KK25ucGZzX2l0ZXJhdGUoc3RydWN0IGZpbGUgKiBmaWxlLCBzdHJ1Y3Qg ZGlyX2NvbnRleHQgKmN0eCkNCisjZW5kaWYNCiB7DQogICAgIGludCBlcnJv cjsNCiAgICAgbG9mZl90IG9mZnNldCwgYmVnaW5fb2Zmc2V0Ow0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9p bm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmls ZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3Ry dWN0IGlub2RlICpjYWNoZV9pbm9kZTsNCiAgICAgc3RydWN0IG5ucGZzX25v ZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KICAgICBjaGFyICpi dWY7DQpAQCAtMTI4MSw2ICsxNDAzLDcgQEAgbm5wZnNfcmVhZGRpcihzdHJ1 Y3QgZmlsZSAqIGZpbGUsIHZvaWQgKg0KIA0KICAgICBjYWNoZV9pbm9kZSA9 IGJhY2tmaWxlLT5mX21hcHBpbmctPmhvc3Q7DQogDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiAgICAgd2hp bGUgKGZpbGUtPmZfcG9zIDwgaV9zaXplX3JlYWQoY2FjaGVfaW5vZGUpKSB7 DQogCU5OUEZTREVCKFhERUJSRUFERElSLA0KIAkgICAgICAgKCJubnBmc19y ZWFkZGlyIGZpbGUtPmZfcG9zOiAlZCBpX3NpemU6ICVkXG4iLA0KQEAgLTEy OTMsNiArMTQxNiwyMCBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICog ZmlsZSwgdm9pZCAqDQogCW1hcHBpbmcgPSBiYWNrZmlsZS0+Zl9tYXBwaW5n Ow0KIAlpbnBhZ2UgPSBmaWxlLT5mX3BvcyAmIChQQUdFX0NBQ0hFX1NJWkUt MSk7DQogCXBhZ2VfbnVtID0gZmlsZS0+Zl9wb3MgPj4gUEFHRV9DQUNIRV9T SElGVDsNCisjZWxzZQ0KKyAgICB3aGlsZSAoY3R4LT5wb3MgPCBpX3NpemVf cmVhZChjYWNoZV9pbm9kZSkpIHsNCisJTk5QRlNERUIoWERFQlJFQURESVIs DQorCSAgICAgICAoIm5ucGZzX3JlYWRkaXIgZmlsZS0+Zl9wb3M6ICVkIGlf c2l6ZTogJWRcbiIsDQorCQkoaW50KSBjdHgtPnBvcywgKGludCkgY2FjaGVf aW5vZGUtPmlfc2l6ZSkpOw0KKwliZWdpbl9vZmZzZXQgPSBjdHgtPnBvcyAm fiAoTk5QRlNfRElSRU5UX0JMT0NLU0laRSAtIDEpOw0KKwlvZmZzZXQgPSBj dHgtPnBvcyAmIChOTlBGU19ESVJFTlRfQkxPQ0tTSVpFIC0gMSk7DQorCWN0 eC0+cG9zID0gYmVnaW5fb2Zmc2V0Ow0KKwlOTlBGU0RFQihYREVCUkVBRERJ UiwgKCJubnBmc19yZWFkZGlyIGJlZ2luX29mZnNldDogJWQgb2Zmc2V0OiAl ZFxuIiwNCisJCQkgICAgIChpbnQpYmVnaW5fb2Zmc2V0LCAoaW50KW9mZnNl dCkpOw0KKwltYXBwaW5nID0gYmFja2ZpbGUtPmZfbWFwcGluZzsNCisJaW5w YWdlID0gY3R4LT5wb3MgJiAoUEFHRV9DQUNIRV9TSVpFLTEpOw0KKwlwYWdl X251bSA9IGN0eC0+cG9zID4+IFBBR0VfQ0FDSEVfU0hJRlQ7DQorI2VuZGlm DQogDQogCU5OUEZTREVCKFhERUJSRUFERElSLA0KIAkgICAgICAgKCJubnBm c19yZWFkZGlyIGlucGFnZTogJWQgcGFnZV9udW06ICVsdVxuIiwNCkBAIC0x MzI4LDYgKzE0NjUsNyBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICog ZmlsZSwgdm9pZCAqDQogCQkgICAgKGludCkgeGRpcmVudC0+ZF9uYW1sZW4s DQogCQkgICAgKGludCkgKG9mZnNldCtiZWdpbl9vZmZzZXQpKSk7DQogDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEs MCkNCiAJICAgIGlmICh4ZGlyZW50LT5kX2ZpbGVubyAhPSAwDQogCQkmJiAo ZmlsbGRpcl9lcnJvciA9IGZpbGxkaXIgKGRpcmVudCwNCiAJCQkJICAgICB4 ZGlyZW50LT5kX25hbWUsDQpAQCAtMTMzOSwxMiArMTQ3NywyOCBAQCBubnBm c19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAqDQogCQkJICgi bm5wZnNfcmVhZGRpciBmaWxsZGlyOiAlZFxuIiwgZmlsbGRpcl9lcnJvcikp Ow0KIAkJYnJlYWs7DQogCSAgICB9DQorI2Vsc2UNCisJICAgIGlmICh4ZGly ZW50LT5kX2ZpbGVubyAhPSAwDQorCQkmJiAoZmlsbGRpcl9lcnJvciA9IGRp cl9lbWl0IChjdHgsDQorCQkJCSAgICAgeGRpcmVudC0+ZF9uYW1lLA0KKwkJ CQkgICAgIHhkaXJlbnQtPmRfbmFtbGVuLA0KKwkJCQkgICAgIHhkaXJlbnQt PmRfZmlsZW5vLA0KKwkJCQkgICAgIERUX1VOS05PV04pKSA8IDApIHsNCisJ CU5OUEZTREVCKFhERUJSRUFERElSLA0KKwkJCSAoIm5ucGZzX3JlYWRkaXIg ZmlsbGRpcjogJWRcbiIsIGZpbGxkaXJfZXJyb3IpKTsNCisJCWJyZWFrOw0K KwkgICAgfQ0KKyNlbmRpZg0KIAkgICAgb2Zmc2V0ICs9IHhkaXJlbnQtPmRf cmVjbGVuOw0KIA0KIAkgICAgaWYgKHhkaXJlbnQtPmRfcmVjbGVuID09IDAp IHsNCiAJCXByaW50ayhLRVJOX0VNRVJHICJOTlBGUyBQYW5pYzogIg0KIAkJ ICAgICAgICJlbXB0eSBkaXJlbnQgYXQgJWxsZCBpbiBubnBmc19yZWFkZGly LCBwb3MgJWQgc2l6ZSAlZFxuIiwNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0KIAkJICAgICAgIChsb25nIGxv bmcpb2Zmc2V0LCAoaW50KWZpbGUtPmZfcG9zLA0KKyNlbHNlDQorCQkgICAg ICAgKGxvbmcgbG9uZylvZmZzZXQsIChpbnQpY3R4LT5wb3MsDQorI2VuZGlm DQogCQkgICAgICAgKGludCljYWNoZV9pbm9kZS0+aV9zaXplKTsNCiAJCU5O UEZTREVCKFhERUJWTk9QUywgKCJpbm9kZTogJXAgYWxpYXNlczoiLCBpbm9k ZSkpOw0KIAkJbm5wZnNfcHJpbnRfYWxpYXNlcyhpbm9kZSk7DQpAQCAtMTM2 Miw3ICsxNTE2LDExIEBAIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKiBm aWxlLCB2b2lkICoNCiAJaWYgKG9mZnNldCA+IE5OUEZTX0RJUkVOVF9CTE9D S1NJWkUpDQogCSAgICBvZmZzZXQgPSBOTlBGU19ESVJFTlRfQkxPQ0tTSVpF Ow0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDExLDApDQogCWZpbGUtPmZfcG9zID0gYmVnaW5fb2Zmc2V0ICsgb2Zm c2V0Ow0KKyNlbHNlDQorCWN0eC0+cG9zID0gYmVnaW5fb2Zmc2V0ICsgb2Zm c2V0Ow0KKyNlbmRpZg0KIA0KIAlpZiAoZXJyb3IgfHwgb2Zmc2V0IDwgTk5Q RlNfRElSRU5UX0JMT0NLU0laRSkNCiAJICAgIGJyZWFrOw0KQEAgLTEzOTUs OSArMTU1MywxNSBAQCBubnBmc19yZWFkbGluayAoc3RydWN0IGRlbnRyeSAq ZGVudHJ5LCBjDQogICogV2UgZG9uJ3QgaG9sZCBpX211dGV4Lg0KICAqLw0K IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0 LDIsMCkNCiBzdGF0aWMgdm9pZCAqDQogbm5wZnNfZm9sbG93X2xpbmsgKHN0 cnVjdCBkZW50cnkgKmRlbnRyeSwNCiAJCSBzdHJ1Y3QgbmFtZWlkYXRhICpu ZCkNCisjZWxzZQ0KK3N0YXRpYyBjb25zdCBjaGFyICoNCitubnBmc19mb2xs b3dfbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KKwkJIHZvaWQgKipw YWdlKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCiAgICAg c3RydWN0IGlub2RlICppbm9kZSA9IERFTlRSWV9UT19JTk9ERShkZW50cnkp Ow0KQEAgLTE0MDgsNyArMTU3MiwxMSBAQCBubnBmc19mb2xsb3dfbGluayAo c3RydWN0IGRlbnRyeSAqZGVudHJ5DQogICAgIGlmIChlcnJvcikNCiAgICAg ICAgcmV0dXJuIEVSUl9QVFIoZXJyb3IpOw0KIA0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDIsMCkNCiAgICAgcmV0dXJu IHBhZ2VfZm9sbG93X2xpbmtfbGlnaHQoZGVudHJ5LCBuZCk7DQorI2Vsc2UN CisgICAgcmV0dXJuIHBhZ2VfZm9sbG93X2xpbmtfbGlnaHQoZGVudHJ5LCBw YWdlKTsNCisjZW5kaWYNCiB9DQogDQogLyoNCkBAIC0xNDkwLDYgKzE2NTgs OCBAQCBubnBmc19yZWxlYXNlX2ZpbGUgKHN0cnVjdCBpbm9kZSAqaW5vZGUs DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCiAgICAgaW50IGVycm9y ID0gMDsNCiANCisgICAgKHZvaWQpbm5wZnNwOw0KKw0KICAgICBOTlBGU0RF QihYREVCVk5PUFMsICgibm5wZnNfcmVsZWFzZV9maWxlXG4iKSk7DQogDQog ICAgIGVycm9yID0gbm5wZnNfaW5vZGVfdmFsaWQoaW5vZGUpOw0KQEAgLTE1 MjMsOCArMTY5MywxMyBAQCBubnBmc19mbHVzaChzdHJ1Y3QgZmlsZSAqZmls ZSwgZmxfb3duZXJfDQogew0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgi bm5wZnNfZmx1c2hcbiIpKTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBpZiAoZmlsZSAmJiBm aWxlLT5mX2RlbnRyeSAmJiBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZSkNCiAJ cmV0dXJuIG5ucGZzX3JlbGVhc2VfZmlsZShmaWxlLT5mX2RlbnRyeS0+ZF9p bm9kZSwgZmlsZSk7DQorI2Vsc2UNCisgICAgaWYgKGZpbGUgJiYgZmlsZS0+ Zl9wYXRoLmRlbnRyeSAmJiBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2Rl KQ0KKwlyZXR1cm4gbm5wZnNfcmVsZWFzZV9maWxlKGZpbGUtPmZfcGF0aC5k ZW50cnktPmRfaW5vZGUsIGZpbGUpOw0KKyNlbmRpZg0KICAgICBlbHNlDQog CXJldHVybiAwOw0KIH0NCkBAIC0xNTMzLDEwICsxNzA4LDI0IEBAIG5ucGZz X2ZsdXNoKHN0cnVjdCBmaWxlICpmaWxlLCBmbF9vd25lcl8NCiAgKiBSZXR1 cm4gMSBpZiBgZGVudHJ5JyBpcyBzdGlsbCB2YWxpZCwgb3RoZXJ3aXNlIDAu DQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsNiwwKQ0KK3N0YXRpYyBpbnQNCitubnBmc19kX3JldmFsaWRh dGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpu ZCkNCisjZWxzZQ0KIHN0YXRpYyBpbnQNCi1ubnBmc19kX3JldmFsaWRhdGUo c3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkg DQorbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwg dW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0 IGlub2RlICppbm9kZSA9IERFTlRSWV9UT19JTk9ERShkZW50cnkpOw0KKw0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMyw2 LDApDQorICAgIGlmIChmbGFncyAmIExPT0tVUF9SQ1UpDQorICAgICAgICBy ZXR1cm4gLUVDSElMRDsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0g S0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KKyAgICBpZiAobmQgJiYgbmQtPmZs YWdzICYgTE9PS1VQX1JDVSkNCisgICAgICAgIHJldHVybiAtRUNISUxEOw0K KyNlbmRpZg0KKw0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNf ZF9yZXZhbGlkYXRlICVwIFwiJS4qc1wiIChpbm9kZSAlcClcbiIsDQogCQkg ICAgICAgZGVudHJ5LA0KIAkJICAgICAgIChpbnQpZGVudHJ5LT5kX25hbWUu bGVuLA0KQEAgLTE1ODIsOSArMTc3MSwxNSBAQCBubnBmc19kX3JldmFsaWRh dGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5DQogICAgIHJldHVybiAwOw0KIH0N CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Miw2LDM4KQ0KIHN0YXRpYw0KIGludA0KIG5ucGZzX2RfZGVsZXRlKHN0cnVj dCBkZW50cnkgKmRlbnRyeSkNCisjZWxzZQ0KK3N0YXRpYw0KK2ludA0KK25u cGZzX2RfZGVsZXRlKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCisj ZW5kaWYNCiB7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGU7DQogICAgIHN0 cnVjdCBubnBmc19ub2RlICp4bjsNCkBAIC0xNjE0LDcgKzE4MDksMTEgQEAg bm5wZnNfc3BsaWNlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGxvZg0KIAkJ ICB1bnNpZ25lZCBpbnQgZmxhZ3MpDQogew0KICAgICBpbnQgZXJyb3IgPSAw Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2Rl bnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlu b2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYN CiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUo aW5vZGUpOw0KICAgICANCiAgICAgaWYgKHhuICE9IE5VTEwpDQpAQCAtMTcw Nyw2ICsxOTA2LDggQEAgbm5wZnNfd3JpdGVfYmFja3BhZ2Uoc3RydWN0IHBh Z2UgKnBhZ2UsIA0KIA0KIAlpbnQgZXJyb3I7DQogCQ0KKwkodm9pZClvZmZz ZXQ7DQorDQogCWRvIHsNCiAJCWVycm9yID0gcGFnZWNhY2hlX3dyaXRlX2Jl Z2luKGJhY2tmaWxlLCBtYXBwaW5nLCAwLCBsZW4sDQogCQkJCQkgICAgICBB T1BfRkxBR19VTklOVEVSUlVQVElCTEUsDQpAQCAtMTczMCw3ICsxOTMxLDEx IEBAIG5ucGZzX3dyaXRlX2JhY2twYWdlKHN0cnVjdCBwYWdlICpwYWdlLCAN CiAJCXByaW50aygibm5wZnNfd3JpdGVfYmFja3BhZ2U6IEVJT1xuIik7DQog I2lmZGVmIE5OUEZTX1NBRkVfU1lOQw0KIAllbHNlDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzMikNCiAJCSh2b2lk KXN5bmNfcGFnZV9yYW5nZShtYXBwaW5nLT5ob3N0LCBtYXBwaW5nLCBvZmZz ZXQsIGxlbik7DQorI2Vsc2UNCisJCSh2b2lkKWZpbGVtYXBfd3JpdGVfYW5k X3dhaXRfcmFuZ2UobWFwcGluZywgb2Zmc2V0LCBvZmZzZXQgKyBsZW4gLSAx KTsNCisjZW5kaWYNCiAjZW5kaWYNCiAJDQogCXJldHVybiBlcnJvcjsNCkBA IC0xNzQ3LDYgKzE5NTIsOCBAQCBubnBmc19yZWFkX2JhY2twYWdlKHN0cnVj dCBwYWdlICpwYWdlLCBzDQogCXN0cnVjdCBwYWdlICpiYWNrcGFnZTsNCiAJ dW5zaWduZWQgbG9uZyBvZmZzZXQ7DQogDQorCSh2b2lkKW9mZnNldDsNCisN CiAJYmFja3BhZ2UgPSByZWFkX21hcHBpbmdfcGFnZShtYXBwaW5nLCBuLCBi YWNrZmlsZSk7DQogCWlmICghSVNfRVJSKGJhY2twYWdlKSkgew0KIAkJd2Fp dF9vbl9wYWdlX2xvY2tlZChiYWNrcGFnZSk7DQpAQCAtMTg5NCwxMSArMjEw MSwxNyBAQCBubnBmc19wcmVwYXJlX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxl LCBzDQogDQogCWlmIChtb2RzaXplID4gaV9zaXplX3JlYWQoaW5vZGUpKSB7 DQogCQlpbnQgZXJyb3I7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsOCwwKQ0KIAkJZXJyb3IgPSB2bXRydW5jYXRlKGlu b2RlLCBtb2RzaXplKTsNCisjZWxzZQ0KKwkJZXJyb3IgPSBpbm9kZV9uZXdz aXplX29rKGlub2RlLCBtb2RzaXplKTsNCisJCWlmKCFlcnJvcikNCisJCQl0 cnVuY2F0ZV9zZXRzaXplKGlub2RlLCBtb2RzaXplKTsNCisjZW5kaWYNCiAJ CWlmIChlcnJvcikgew0KIAkJCXByaW50aygibm5wZnNfcHJlcGFyZV93cml0 ZTogdHJ1bmNhdGUoJWxsdSkgLT4gJWRcbiIsDQogCQkJICAgICAgIG1vZHNp emUsIC1lcnJvcik7DQotCQkJQlVHKCk7IC8qIFhYWCBub3QgY29ycmVjdCAq Lw0KKwkJCS8qQlVHKCk7Ki8gLyogWFhYIG5vdCBjb3JyZWN0ICovDQogCQl9 DQogCX0NCiANCkBAIC0xOTI1LDcgKzIxMzgsNiBAQCBubnBmc19wcmVwYXJl X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBzDQogfQ0KIA0KICNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KLQ0K IHN0YXRpYyBpbnQNCiBubnBmc193cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAq ZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBw b3MsDQogdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBmbGFncywgc3RydWN0IHBh Z2UgKipwYWdlcCwgdm9pZCAqKmZzZGF0YSkNCkBAIC0xOTMzLDU4ICsyMTQ1 LDY3IEBAIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgZmxhZ3MsIHN0cnVjdCBw YWcNCiAJc3RydWN0IHBhZ2UgKnBhZ2U7DQogCXBnb2ZmX3QgaW5kZXg7DQog CXVuc2lnbmVkIGZyb207DQorCWludCByZXQgPSAwOw0KIA0KIAlpbmRleCA9 IHBvcyA+PiBQQUdFX0NBQ0hFX1NISUZUOw0KIAlmcm9tID0gcG9zICYgKFBB R0VfQ0FDSEVfU0laRSAtIDEpOw0KIA0KLSNpZmRlZiBBT1BfRkxBR19OT0ZT DQogCXBhZ2UgPSBncmFiX2NhY2hlX3BhZ2Vfd3JpdGVfYmVnaW4obWFwcGlu ZywgaW5kZXgsIGZsYWdzKTsNCi0jZWxzZQ0KLQlwYWdlID0gX19ncmFiX2Nh Y2hlX3BhZ2UobWFwcGluZywgaW5kZXgpOw0KLSNlbmRpZg0KLQlpZiAocGFn ZSA9PSBOVUxMKQ0KKwlpZiAoIXBhZ2UpDQogCQlyZXR1cm4gLUVOT01FTTsN CiANCiAJKnBhZ2VwID0gcGFnZTsNCiANCi0JcmV0dXJuIG5ucGZzX3ByZXBh cmVfd3JpdGUoZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGxlbik7DQotfQ0K KwlyZXQgPSBubnBmc19wcmVwYXJlX3dyaXRlKGZpbGUsIHBhZ2UsIGZyb20s IGZyb20gKyBsZW4pOw0KKwlpZiAocmV0KSB7DQorCQl1bmxvY2tfcGFnZShw YWdlKTsNCisJCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdlKTsNCisJfQ0KIA0K KwlyZXR1cm4gcmV0Ow0KK30NCiAjZW5kaWYNCiANCisvKiBYWFggd2UgdXNl IHRoZSBzeXN0ZW0gcHJvdmlkZWQgc2ltcGxlX2NvbW1pdF93cml0ZSBpbnN0 ZWFkIHNvIHRoaXMgZnVuY3Rpb24gaXMgdW51c2VkIGZvciBub3cgKi8NCisj aWYgMA0KIHN0YXRpYyBpbnQNCiBubnBmc19jb21taXRfd3JpdGUoc3RydWN0 IGZpbGUgKmZpbGUsIHN0cnVjdCBwYWdlICpwYWdlLA0KIAkJICAgdW5zaWdu ZWQgZnJvbSwgdW5zaWduZWQgdG8pDQogew0KLSAgICBzdHJ1Y3QgaW5vZGUg Kmlub2RlID0gcGFnZS0+bWFwcGluZy0+aG9zdDsNCi0gICAgbG9mZl90IHBv cyA9ICgobG9mZl90KXBhZ2UtPmluZGV4IDw8IFBBR0VfQ0FDSEVfU0hJRlQp ICsgdG87DQorCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5n LT5ob3N0Ow0KKwlsb2ZmX3QgcG9zID0gKChsb2ZmX3QpcGFnZS0+aW5kZXgg PDwgUEFHRV9DQUNIRV9TSElGVCkgKyB0bzsNCiANCi0gICAgaWYgKHBvcyA+ IGlub2RlLT5pX3NpemUpIHsNCi0JaV9zaXplX3dyaXRlKGlub2RlLCBwb3Mp Ow0KKwlpZiAoIVBhZ2VVcHRvZGF0ZShwYWdlKSkNCisJCVNldFBhZ2VVcHRv ZGF0ZShwYWdlKTsNCiANCi0Jc3Bpbl9sb2NrKCZpbm9kZS0+aV9sb2NrKTsN Ci0JaW5vZGUtPmlfYmxvY2tzID0gKHBvcyArIElfQkxPQ0tTX1VOSVQgLSAx KSA+PiBJX0JMT0NLU19CSVRTOw0KLQlzcGluX3VubG9jaygmaW5vZGUtPmlf bG9jayk7DQotICAgIH0NCi0gICAgc2V0X3BhZ2VfZGlydHkocGFnZSk7DQor CWlmIChwb3MgPiBpbm9kZS0+aV9zaXplKSB7DQorCQlpX3NpemVfd3JpdGUo aW5vZGUsIHBvcyk7DQorDQorCQlzcGluX2xvY2soJmlub2RlLT5pX2xvY2sp Ow0KKwkJaW5vZGUtPmlfYmxvY2tzID0gKHBvcyArIElfQkxPQ0tTX1VOSVQg LSAxKSA+PiBJX0JMT0NLU19CSVRTOw0KKwkJc3Bpbl91bmxvY2soJmlub2Rl LT5pX2xvY2spOw0KKwl9DQorCXNldF9wYWdlX2RpcnR5KHBhZ2UpOw0KIA0K ICNpZiAwDQotICAgIHsNCi0JY2hhciAqYWRkcjsNCi0Ja21hcChwYWdlKTsN Ci0JYWRkciA9IHBhZ2VfYWRkcmVzcyhwYWdlKTsNCi0JTk5QRlNERUIoWERF QlZOT1BTLCAoIm5ucGZzX2NvbW1pdF93cml0ZSglcCk6ICV4JXgleCV4XG4i LA0KKwl7DQorCSAgICBjaGFyICphZGRyOw0KKwkgICAga21hcChwYWdlKTsN CisJICAgIGFkZHIgPSBwYWdlX2FkZHJlc3MocGFnZSk7DQorCSAgICBOTlBG U0RFQihYREVCVk5PUFMsICgibm5wZnNfY29tbWl0X3dyaXRlKCVwKTogJXgl eCV4JXhcbiIsDQogCQkJICAgICBmaWxlLT5mX21hcHBpbmctPmhvc3QsIA0K IAkJCSAgICAgYWRkclswXSwgYWRkclsxXSwgYWRkclsyXSwgYWRkclszXSkp Ow0KLQlrdW5tYXAocGFnZSk7DQotICAgIH0NCisJICAgIGt1bm1hcChwYWdl KTsNCisJfQ0KICNlbmRpZg0KLSAgICANCi0gICAgcmV0dXJuIDA7DQorIA0K KwlyZXR1cm4gMDsNCiB9DQorI2VuZGlmDQogDQogI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQotDQorLyogWFhY IHdlIHVzZSB0aGUgc3lzdGVtIHByb3ZpZGVkIHNpbXBsZV93cml0ZV9lbmQg aW5zdGVhZCBzbyB0aGlzIGZ1bmN0aW9uIGlzIHVudXNlZCBmb3Igbm93ICov DQorI2lmIDANCiBzdGF0aWMgaW50DQogbm5wZnNfd3JpdGVfZW5kKHN0cnVj dCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywg bG9mZl90IHBvcywNCiAJCXVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVk LCBzdHJ1Y3QgcGFnZSAqcGFnZSwgdm9pZCAqZnNkYXRhKQ0KQEAgLTE5OTMs MTAgKzIyMTQsMTggQEAgbm5wZnNfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpm aWxlLCBzdHJ1Yw0KIA0KIAkvKiB6ZXJvIHRoZSBzdGFsZSBwYXJ0IG9mIHRo ZSBwYWdlIGlmIHdlIGRpZCBhIHNob3J0IGNvcHkgKi8NCiAJaWYgKGNvcGll ZCA8IGxlbikgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDYsMCkNCiAJCXZvaWQgKmthZGRyID0ga21hcF9hdG9taWMo cGFnZSwgS01fVVNFUjApOw0KKyNlbHNlDQorCQl2b2lkICprYWRkciA9IGtt YXBfYXRvbWljKHBhZ2UpOw0KKyNlbmRpZg0KIAkJbWVtc2V0KGthZGRyICsg ZnJvbSArIGNvcGllZCwgMCwgbGVuIC0gY29waWVkKTsNCiAJCWZsdXNoX2Rj YWNoZV9wYWdlKHBhZ2UpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDYsMCkNCiAJCWt1bm1hcF9hdG9taWMoa2FkZHIs IEtNX1VTRVIwKTsNCisjZWxzZQ0KKwkJa3VubWFwX2F0b21pYyhrYWRkcik7 DQorI2VuZGlmDQogCX0NCiANCiAJbm5wZnNfY29tbWl0X3dyaXRlKGZpbGUs IHBhZ2UsIGZyb20sIGZyb20gKyBjb3BpZWQpOw0KQEAgLTIwMDYsNyArMjIz NSw3IEBAIG5ucGZzX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3Ry dWMNCiANCiAJcmV0dXJuIGNvcGllZDsNCiB9DQotDQorI2VuZGlmDQogI2Vu ZGlmDQogDQogY29uc3QNCkBAIC0yMDE1LDEwICsyMjQ0LDEwIEBAIHN0cnVj dCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgbm5wZnNfYW8NCiAJLndyaXRl cGFnZSA9IG5ucGZzX3dyaXRlcGFnZSwNCiAjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAkucHJlcGFyZV93cml0 ZSA9IG5ucGZzX3ByZXBhcmVfd3JpdGUsDQotCS5jb21taXRfd3JpdGUgPSBu bnBmc19jb21taXRfd3JpdGUsDQorCS5jb21taXRfd3JpdGUgPSBzaW1wbGVf Y29tbWl0X3dyaXRlLA0KICNlbHNlDQogCS53cml0ZV9iZWdpbiA9IG5ucGZz X3dyaXRlX2JlZ2luLA0KLQkud3JpdGVfZW5kID0gbm5wZnNfd3JpdGVfZW5k LA0KKwkud3JpdGVfZW5kID0gc2ltcGxlX3dyaXRlX2VuZCwNCiAjZW5kaWYN CiB9Ow0KIA0KQEAgLTIwMjcsOCArMjI1NiwxMyBAQCBzdHJ1Y3QgYWRkcmVz c19zcGFjZV9vcGVyYXRpb25zIG5ucGZzX2FvDQogICovDQogDQogc3RydWN0 IGZpbGVfb3BlcmF0aW9ucyBubnBmc19maWxlX29wZXJhdGlvbnMgPSB7DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYs MCkNCiAgICAgLmFpb19yZWFkCT0gbm5wZnNfYWlvX3JlYWQsDQogICAgIC5h aW9fd3JpdGUJPSBubnBmc19haW9fd3JpdGUsDQorI2Vsc2UNCisgICAgLnJl YWRfaXRlcgk9IG5ucGZzX3JlYWRfaXRlciwNCisgICAgLndyaXRlX2l0ZXIJ PSBubnBmc193cml0ZV9pdGVyLA0KKyNlbmRpZg0KICAgICAubW1hcAk9IG5u cGZzX2ZpbGVfbW1hcCwNCiAgICAgLm9wZW4JPSBubnBmc19vcGVuLA0KICAg ICAuZmx1c2gJPSBubnBmc19mbHVzaCwNCkBAIC0yMDQxLDcgKzIyNzUsMTEg QEAgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19kZWFkX29wZXJhdA0K IH07DQogDQogc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19kaXJfb3Bl cmF0aW9ucyA9IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxMSwwKQ0KICAgICAucmVhZGRpcgk9IG5ucGZzX3JlYWRk aXIsDQorI2Vsc2UNCisgICAgLml0ZXJhdGUgICAgPSBubnBmc19pdGVyYXRl LA0KKyNlbmRpZg0KICAgICAuZmx1c2gJPSBubnBmc19mbHVzaCwNCiB9Ow0K IA0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLWN2cy1vbGQvbm5wZnMvbGlu dXgvbm5wZnNfbG9hZC5jIGFybGEvbm5wZnMvbGludXgvbm5wZnNfbG9hZC5j DQotLS0gYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYwky MDA2LTEwLTMxIDExOjAyOjQxLjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEv bm5wZnMvbGludXgvbm5wZnNfbG9hZC5jCTIwMTYtMDEtMTMgMjA6MTQ6MDIu MDAwMDAwMDAwICswMTAwDQpAQCAtNTQsNyArNTQsMTEgQEAgZXh0ZXJuIHN0 cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZm9wcw0KIA0KIHN0cnVjdCBm aWxlX3N5c3RlbV90eXBlIG5ucGZzX2ZzX3R5cGUgPSB7DQogICAgICAgIG5h bWU6ICAgICAgICAgICAibm5wZnMiLA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogICAgICAgIGdldF9zYjog ICAgICAgICBubnBmc19nZXRfc2IsDQorI2Vsc2UNCisgICAgICAgbW91bnQ6 ICAgICAgICAgIG5ucGZzX21vdW50LA0KKyNlbmRpZg0KICAgICAgICBraWxs X3NiOiAgICAgICAga2lsbF9saXR0ZXJfc3VwZXIsDQogICAgICAgIG93bmVy OiAgICAgICAgICBUSElTX01PRFVMRSwNCiB9Ow0KZGlmZiAtdXByTiAtWG5v ZGlmZiBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnNfbWVzc2FnZS5j IGFybGEvbm5wZnMvbGludXgvbm5wZnNfbWVzc2FnZS5jDQotLS0gYXJsYS1j dnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYwkyMDEwLTA4LTA4 IDIyOjQzOjA1LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMvbGlu dXgvbm5wZnNfbWVzc2FnZS5jCTIwMTYtMDEtMjQgMTg6NTI6MjguMDAwMDAw MDAwICswMTAwDQpAQCAtNTUsOSArNTUsMTUgQEAgc3RhdGljIHZvaWQNCiBu bnBmc19kX3JlbW92ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQogew0KICAg ICBOTlBGU0RFQihYREVCTVNHLCAoIm5ucGZzX2RfcmVtb3ZlICVwXG4iLCBk ZW50cnkpKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMiw2LDM4KQ0KICAgICBzcGluX2xvY2soJmRjYWNoZV9sb2NrKTsN CiAgICAgZGdldF9sb2NrZWQoZGVudHJ5KTsNCiAgICAgc3Bpbl91bmxvY2so JmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICBzcGluX2xvY2soJmRlbnRy eS0+ZF9sb2NrKTsNCisgICAgZGdldF9kbG9jayhkZW50cnkpOw0KKyAgICBz cGluX3VubG9jaygmZGVudHJ5LT5kX2xvY2spOw0KKyNlbmRpZg0KICAgICBk X2Ryb3AoZGVudHJ5KTsNCiAgICAgZHB1dChkZW50cnkpOw0KIH0NCkBAIC0x MjEsNyArMTI3LDExIEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGUoc3Ry dWN0IG5ucGZzICoNCiAgICAgc3RydWN0IGlub2RlICpkaSwgKmlub2RlOw0K ICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQgPSBOVUxMOw0KICAgICBzdHJ1 Y3QgcXN0ciBzcXN0cjsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVjdCBsaXN0X2hlYWQgKmFs aWFzOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsOSwwKQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqYWxpYXM7DQor I2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCTVNHLCAoIm5ucGZz X21lc3NhZ2VfaW5zdGFsbG5vZGVcbiIpKTsNCiAgICAgDQpAQCAtMTc2LDEy ICsxODYsMjYgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZShzdHJ1Y3Qg bm5wZnMgKg0KICAgICAgKg0KICAgICAgKi8NCiAgICAgDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBh bGlhcyA9IGRpLT5pX2RlbnRyeS5uZXh0Ow0KICAgICB3aGlsZSAoYWxpYXMg IT0gJmRpLT5pX2RlbnRyeSkgew0KIAlwYXJlbnQgPSBsaXN0X2VudHJ5KGFs aWFzLCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCi0Jc3Bpbl9sb2NrKCZk Y2FjaGVfbG9jayk7DQotCWRnZXRfbG9ja2VkKHBhcmVudCk7DQotCXNwaW5f dW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAgIGhsaXN0X2Zvcl9l YWNoX2VudHJ5KHBhcmVudCwgYWxpYXMsICZkaS0+aV9kZW50cnksIGRfYWxp YXMpIHsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDE5LDApDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KHBhcmVu dCwgJmRpLT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbHNlDQorICAgIGhs aXN0X2Zvcl9lYWNoX2VudHJ5KHBhcmVudCwgJmRpLT5pX2RlbnRyeSwgZF91 LmRfYWxpYXMpIHsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KKyAgICBzcGluX2xvY2soJmRj YWNoZV9sb2NrKTsNCisgICAgZGdldF9sb2NrZWQocGFyZW50KTsNCisgICAg c3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICBzcGlu X2xvY2soJnBhcmVudC0+ZF9sb2NrKTsNCisgICAgZGdldF9kbG9jayhwYXJl bnQpOw0KKyAgICBzcGluX3VubG9jaygmcGFyZW50LT5kX2xvY2spOw0KKyNl bmRpZg0KIAlkZW50cnkgPSBkX2xvb2t1cChwYXJlbnQsICZzcXN0cik7DQog CU5OUEZTREVCKFhERUJNU0csDQogCQkgKCJubnBmc19tZXNzYWdlX2luc3Rh bGxub2RlOiBhbGlhcyAlcCwgbG9va3VwICVwXG4iLA0KQEAgLTIzMyw3ICsy NTcsOSBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxub2RlKHN0cnVjdCBubnBm cyAqDQogCQ0KIAlkcHV0KGRlbnRyeSk7DQogCWRlbnRyeSA9IE5VTEw7DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiww KQ0KIAlhbGlhcyA9IGFsaWFzLT5uZXh0Ow0KKyNlbmRpZg0KIAlkcHV0KHBh cmVudCk7DQogICAgIH0NCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBm c19tZXNzYWdlX2luc3RhbGxub2RlOiBkb25lIGluc3RhbGxpbmdcbiIpKTsN CkBAIC0yNjgsNyArMjk0LDEzIEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbGF0 dHIoc3RydWN0IG5ucGZzICoNCiAgICAgfQ0KIA0KICAgICBpbm9kZSA9IFhO T0RFX1RPX1ZOT0RFKHQpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgZGVudHJ5ID0gbGlzdF9lbnRy eShpbm9kZS0+aV9kZW50cnkubmV4dCwgc3RydWN0IGRlbnRyeSwgZF9hbGlh cyk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMywxOSwwKQ0KKyAgICBkZW50cnkgPSBobGlzdF9lbnRyeShpbm9kZS0+ aV9kZW50cnkuZmlyc3QsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KKyNl bHNlDQorICAgIGRlbnRyeSA9IGhsaXN0X2VudHJ5KGlub2RlLT5pX2RlbnRy eS5maXJzdCwgc3RydWN0IGRlbnRyeSwgZF91LmRfYWxpYXMpOw0KKyNlbmRp Zg0KICAgICANCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBmc19tZXNz YWdlX2luc3RhbGxhdHRyIG5hbWU6JXNcbiIsDQogCQkgICAgICAgZGVudHJ5 LT5kX25hbWUubmFtZSkpOw0KQEAgLTM5NiwxNyArNDI4LDM1IEBAIG5ucGZz X21lc3NhZ2VfaW5zdGFsbGRhdGEoc3RydWN0IG5ucGZzICoNCiBzdGF0aWMg dm9pZA0KIGNsZWFyX2FsbF9jaGlsZHJlbiAoc3RydWN0IGlub2RlICppbm9k ZSwgaW50IHBhcmVudCkNCiB7DQorICAgIHN0cnVjdCBkZW50cnkgKmRlbnRy eTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Myw2LDApDQogICAgIHN0cnVjdCBsaXN0X2hlYWQgKmFsaWFzOw0KKyNlbGlm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0K KyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqYWxpYXM7DQorI2VuZGlmDQogDQog IGFnYWluOg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigyLDYsMzgpDQogICAgIHNwaW5fbG9jaygmZGNhY2hlX2xvY2spOw0K KyNlbHNlDQorICAgIHNwaW5fbG9jaygmaW5vZGUtPmlfbG9jayk7DQorI2Vu ZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsNiwwKQ0KICAgICBhbGlhcyA9IGlub2RlLT5pX2RlbnRyeS5uZXh0Ow0K ICAgICB3aGlsZSAoYWxpYXMgIT0gJmlub2RlLT5pX2RlbnRyeSkgew0KLQlz dHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAgIGhsaXN0X2Zvcl9l YWNoX2VudHJ5KGRlbnRyeSwgYWxpYXMsICZpbm9kZS0+aV9kZW50cnksIGRf YWxpYXMpIHsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDE5LDApDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRl bnRyeSwgJmlub2RlLT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbHNlDQor ICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgJmlub2RlLT5pX2Rl bnRyeSwgZF91LmRfYWxpYXMpIHsNCisjZW5kaWYNCiAJc3RydWN0IGxpc3Rf aGVhZCAqc3ViZGlyczsNCiAJc3RydWN0IG5ucGZzX2RlbnRyeV9kYXRhICp4 ZDsNCiAJDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsNiwwKQ0KIAlkZW50cnkgPSBsaXN0X2VudHJ5KGFsaWFzLCBzdHJ1 Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisjZW5kaWYNCiAJaWYgKGRlbnRyeSA9 PSBOVUxMKSB7DQogCSAgICBwcmludGsoS0VSTl9FTUVSRyAiTk5QRlMgUGFu aWM6IGRlbnRyeSBpbiBhbGlhcyBsaXN0IGlzIG51bGxcbiIpOw0KIAkgICAg YnJlYWs7DQpAQCAtNDIyLDcgKzQ3MiwxMSBAQCBjbGVhcl9hbGxfY2hpbGRy ZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUsDQogCXN1YmRpcnMgPSBkZW50cnkt PmRfc3ViZGlycy5uZXh0Ow0KIAl3aGlsZSAoc3ViZGlycyAhPSAmZGVudHJ5 LT5kX3N1YmRpcnMpIHsNCiAJICAgIHN0cnVjdCBsaXN0X2hlYWQgKnRtcCA9 IHN1YmRpcnM7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMTksMCkNCiAJICAgIHN0cnVjdCBkZW50cnkgKmNoaWxkID0g bGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfdS5kX2NoaWxkKTsN CisjZWxzZQ0KKwkgICAgc3RydWN0IGRlbnRyeSAqY2hpbGQgPSBsaXN0X2Vu dHJ5KHRtcCwgc3RydWN0IGRlbnRyeSwgZF9jaGlsZCk7DQorI2VuZGlmDQog CSAgICBzdWJkaXJzID0gdG1wLT5uZXh0Ow0KIAkgICAgTk5QRlNERUIoWERF Qk1TRywgKCJjbGVhcl9hbGxfY2hpbGRyZW4gY2hpbGQ6ICUuKnMgaW5vZGU6 ICVwLyVwICINCiAJCQkgICAgICAgImRjb3VudDogJWQgYWxpYXNlczpcbiIs DQpAQCAtNDQyLDE0ICs0OTYsMjQgQEAgY2xlYXJfYWxsX2NoaWxkcmVuIChz dHJ1Y3QgaW5vZGUgKmlub2RlLA0KIA0KIAkgICAgLyogVGhyb3cgaW1tZWRp YXRlbHkgKi8NCiAJICAgIGlmIChubnBmc19kY291bnQoY2hpbGQpID09IDAp IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Miw2LDM4KQ0KIAkgICAgICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7 DQorI2Vsc2UNCisJICAgICAgICBzcGluX3VubG9jaygmaW5vZGUtPmlfbG9j ayk7DQorI2VuZGlmDQogCQlubnBmc19kX3JlbW92ZShjaGlsZCk7DQogCQln b3RvIGFnYWluOw0KIAkgICAgfQ0KIAl9DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAlhbGlhcyA9IGFsaWFz LT5uZXh0Ow0KKyNlbmRpZg0KICAgICB9DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl91bmxv Y2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICBzcGluX3VubG9jaygm aW5vZGUtPmlfbG9jayk7DQorI2VuZGlmDQogfQ0KIA0KIHN0YXRpYyB2b2lk DQpAQCAtNzE5LDEyICs3ODMsMjIgQEAgbm5wZnNfbWVzc2FnZV92ZXJzaW9u KHN0cnVjdCBubnBmcyAqbm5wZg0KIA0KICAgICAvKiBzYW5pdHkgY2hlY2sg YmVmb3JlIHdlIGxvb2sgYXQgaXQgKi8NCiAgICAgaWYgKHNpemUgPT0gc2l6 ZW9mKCptZXNzYWdlKSAmJiBtZXNzYWdlLT52ZXJzaW9uID09IE5OUEZTX1ZF UlNJT04pIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxOSwwKQ0KIAlzdHJ1Y3QgbmFtZWlkYXRhIG5kOw0KKyNlbHNl DQorCXN0cnVjdCBwYXRoIHBhdGg7DQorI2VuZGlmDQogCWludCBlcnJvcjsN CiANCiAJdWludDY0X3QgYmxvY2tzaXplID0gbWVzc2FnZS0+YmxvY2tzaXpl Ow0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigyLDYsMzkpDQogCWVycm9yID0gcGF0aF9sb29rdXAoIi4iLCAwLCAmbmQp Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMTksMCkNCisJZXJyb3IgPSBrZXJuX3BhdGgoIi4iLCAwLCAmbmQucGF0 aCk7DQorI2Vsc2UNCisJZXJyb3IgPSBrZXJuX3BhdGgoIi4iLCAwLCAmcGF0 aCk7DQorI2VuZGlmDQogCWlmIChlcnJvcikgew0KIAkgICAgLyoNCiAJICAg ICAqIEJhZCBjYWNoZSByb290LCBqdXN0IHJldHVybi4NCkBAIC03MzUsMTEg KzgwOSwxNyBAQCBubnBmc19tZXNzYWdlX3ZlcnNpb24oc3RydWN0IG5ucGZz ICpubnBmDQogCQkgICAibm5wZnNfbWVzc2FnZV92ZXJzaW9uIGZhaWxlZCBw YXRoX2xvb2t1cCwgIg0KIAkJICAgImVycm5vOiAlZFxuIiwgZXJyb3IpOw0K IAl9IGVsc2Ugew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDE5LDApDQogCSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1u dGdldChuZC5wYXRoLm1udCk7DQogCSAgICBubnBmc3AtPmNhY2hlZGlyID0g ZGdldChuZC5wYXRoLmRlbnRyeSk7DQogCSAgICBwYXRoX3B1dCgmbmQucGF0 aCk7DQorI2Vsc2UNCisJICAgIG5ucGZzcC0+Y2FjaGVyb290ID0gbW50Z2V0 KHBhdGgubW50KTsNCisJICAgIG5ucGZzcC0+Y2FjaGVkaXIgPSBkZ2V0KHBh dGguZGVudHJ5KTsNCisJICAgIHBhdGhfcHV0KCZwYXRoKTsNCisjZW5kaWYN CiAJICAgIA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZF UlNJT04oMiw2LDI4KQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLDYsMjkpDQogCSAgICBubnBmc3AtPnVpZCA9IGN1cnJl bnQtPmZzdWlkOw0KIAkgICAgbm5wZnNwLT5naWQgPSBjdXJyZW50LT5mc2dp ZDsNCiAjZWxzZQ0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLWN2cy1vbGQv bm5wZnMvbGludXgvbm5wZnNfbm9kZS5jIGFybGEvbm5wZnMvbGludXgvbm5w ZnNfbm9kZS5jDQotLS0gYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZz X25vZGUuYwkyMDA3LTAxLTAzIDE0OjUyOjAyLjAwMDAwMDAwMCArMDEwMA0K KysrIGFybGEvbm5wZnMvbGludXgvbm5wZnNfbm9kZS5jCTIwMTYtMDEtMTQg MTY6NTE6MTEuMDAwMDAwMDAwICswMTAwDQpAQCAtMTMyLDcgKzEzMiwxMiBA QCBubnBmc19zZXRzaXplKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVpbnQ2DQog CXByaW50aygibm5wZnNfc2V0c2l6ZTogdHJ1bmNhdGluZyBAMHglbGx1XG4i LA0KIAkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylzaXplKTsNCiAjZW5k aWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Myw4LDApDQogCXZtdHJ1bmNhdGUoaW5vZGUsIHNpemUpOyAvKiBYWFggcmV0 dmFsICovDQorI2Vsc2UNCisJaWYoIWlub2RlX25ld3NpemVfb2soaW5vZGUs IHNpemUpKQ0KKwkgICAgdHJ1bmNhdGVfc2V0c2l6ZShpbm9kZSwgc2l6ZSk7 DQorI2VuZGlmDQogCW5ucGZzX2Jsb2NrX3RydW5jYXRlKHhuLCBzaXplKTsN CiAgICAgfQ0KIH0NCkBAIC0xNTAsOSArMTU1LDE4IEBAIG5ucGZzX2F0dHIy aW5vZGUoY29uc3Qgc3RydWN0IG5ucGZzX2F0dHINCiAJc3RydWN0IHRpbWVz cGVjIG5vdGltZSA9IHswfTsNCiANCiAJaW5vZGUtPmlfbW9kZSAgID0gMDsN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx NCwwKQ0KIAlpbm9kZS0+aV91aWQgICAgPSAwOw0KIAlpbm9kZS0+aV9naWQg ICAgPSAwOw0KKyNlbHNlDQorCWlub2RlLT5pX3VpZCAgICA9IEtVSURUX0lO SVQoMCk7DQorCWlub2RlLT5pX2dpZCAgICA9IEtHSURUX0lOSVQoMCk7DQor I2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsMiwwKQ0KIAlpbm9kZS0+aV9ubGluayAgPSAxOw0KKyNlbHNlDQor CXNldF9ubGluayhpbm9kZSwgMSk7DQorI2VuZGlmDQogCWlub2RlLT5pX2F0 aW1lICA9IG5vdGltZTsNCiAJaW5vZGUtPmlfbXRpbWUgID0gbm90aW1lOw0K IAlpbm9kZS0+aV9jdGltZSAgPSBub3RpbWU7DQpAQCAtMTY5LDcgKzE4Mywx MSBAQCBubnBmc19hdHRyMmlub2RlKGNvbnN0IHN0cnVjdCBubnBmc19hdHRy DQogICAgIGlmIChYQV9WQUxJRF9HSUQoYXR0cikpDQogCWlub2RlLT5pX2dp ZCAgICA9IGF0dHItPnhhX2dpZDsNCiAgICAgaWYgKFhBX1ZBTElEX05MSU5L KGF0dHIpKQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDIsMCkNCiAJaW5vZGUtPmlfbmxpbmsgID0gYXR0ci0+eGFfbmxp bms7DQorI2Vsc2UNCisJc2V0X25saW5rKGlub2RlLCBhdHRyLT54YV9ubGlu ayk7DQorI2VuZGlmDQogICAgIA0KICAgICBpZiAoWEFfVkFMSURfU0laRShh dHRyKSkgew0KIAlubnBmc19zZXRzaXplKGlub2RlLCBhdHRyLT54YV9zaXpl KTsNCkBAIC01MTAsMTIgKzUyOCwyNCBAQCBubnBmc19oYXNfcGFnKGNvbnN0 IHN0cnVjdCBubnBmc19ub2RlICp4DQogaW50DQogbm5wZnNfbm9kZV91c2Vy cyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVjdCBs aXN0X2hlYWQgKnBvczsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9k ZSAqcG9zOw0KKyNlbmRpZg0KICAgICBpbnQgdXNlcnMgPSAwOw0KICAgICAN CiAgICAgLyogWFhYIHRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHByb3RlY3Rl ZCBzb21laG93ICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsNiwwKQ0KICAgICBsaXN0X2Zvcl9lYWNoKHBvcywgJmlu b2RlLT5pX2RlbnRyeSkgew0KKyNlbHNlDQorICAgIGhsaXN0X2Zvcl9lYWNo KHBvcywgJmlub2RlLT5pX2RlbnRyeSkgew0KKyNlbmRpZg0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCXN0 cnVjdCBkZW50cnkgKmRlbnRyeSA9IGxpc3RfZW50cnkocG9zLCBzdHJ1Y3Qg ZGVudHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0KKwlzdHJ1Y3QgZGVudHJ5ICpk ZW50cnkgPSBsaXN0X2VudHJ5KHBvcywgc3RydWN0IGRlbnRyeSwgZF91LmRf YWxpYXMpOw0KKyNlbmRpZg0KIAlpZiAobm5wZnNfZGNvdW50KGRlbnRyeSkg PiAxKQ0KIAkgICAgdXNlcnMrKzsNCiAgICAgfQ0KZGlmZiAtdXByTiAtWG5v ZGlmZiBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMu YyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMNCi0tLSBhcmxh LWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMuYwkyMDEwLTA4 LTA4IDIyOjQzOjA2LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMv bGludXgvbm5wZnNfc3lzY2FsbHMuYwkyMDE2LTAxLTE0IDE3OjAwOjIwLjAw MDAwMDAwMCArMDEwMA0KQEAgLTQyLDcgKzQyLDkgQEANCiAjaW5jbHVkZSA8 bm5wZnMvbm5wZnNfc3lzY2FsbHMuaD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5w ZnNfY29tbW9uLmg+DQogI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4NCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0K ICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPg0KKyNlbmRpZg0KICNpbmNs dWRlIDxsaW51eC9zbXAuaD4NCiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5o Pg0KIA0KQEAgLTUwLDYgKzUyLDExIEBADQogI2luY2x1ZGUgPGxpbnV4L3Nl Y3VyaXR5Lmg+DQogI2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA+PSBLRVJORUxfVkVSU0lPTigzLDcsMCkNCisjdW5kZWYgU1lTQ0FMTEhB Q0sNCisvKiB0aGUgbWV0aG9kIHRvIHJlYWQgJ2xvd2VyX2JvdW5kJyBkb2Vz IG5vdCB3b3JrIG9uIGtlcm5lbCAzLjcgYW5kIGxhdGVyLCBzZSBubnBmc19z eXNjYWxscy1sb3NzYWdlLmMgKi8NCisjZW5kaWYNCisNCiAjaWYgMA0KICNp ZmRlZiBDT05GSUdfQ09NUEFUDQogI2luY2x1ZGUgPGxpbnV4L2lvY3RsMzIu aD4NCkBAIC04MiwxMiArODksMjIgQEAgdHlwZWRlZiBzdHJ1Y3QgYWZzcHJv Y2RhdGEgew0KICAgICB1bnNpZ25lZCBsb25nIHN5c2NhbGw7DQogfSBhZnNw cm9jZGF0YTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMiw2LDM2KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19wcm9jZnNf aW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUs DQogCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7 DQorI2Vsc2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3Byb2Nmc19pb2N0bChz dHJ1Y3QgZmlsZSAqZmlsZSwNCisJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVu c2lnbmVkIGxvbmcgYXJnKTsNCisjZW5kaWYNCiANCiBzdGF0aWMgc3RydWN0 IGZpbGVfb3BlcmF0aW9ucyBubnBmc19wcm9jZnNfZm9wcyA9IHsNCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0K ICAgICAuaW9jdGwgPSBubnBmc19wcm9jZnNfaW9jdGwsDQorI2Vsc2UNCisg ICAgLnVubG9ja2VkX2lvY3RsID0gbm5wZnNfcHJvY2ZzX2lvY3RsLA0KKyNl bmRpZg0KIH07DQogDQogDQpAQCAtMTYwLDggKzE3NywxMCBAQCBubnBmc19n ZXRfcGFnX3NlYyh2b2lkKQ0KIA0KICNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICByZXR1cm4gY3VycmVu dC0+dWlkOw0KLSNlbHNlDQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICByZXR1cm4gY3VycmVudF91 aWQoKTsNCisjZWxzZQ0KKyAgICB7IGt1aWRfdCBrdWlkID0gY3VycmVudF91 aWQoKTsgcmV0dXJuIGt1aWQudmFsOyB9DQogI2VuZGlmDQogfQ0KIA0KQEAg LTE5OSw3ICsyMTgsMTIgQEAgZmluZF9wYWcoc3RydWN0IGdyb3VwX2luZm8g KmdpKQ0KICAgICBOTlBGU0RFQihYREVCU1lTLCAoImZpbmRfcGFnOiBuZ3Jv dXBzID0gJWRcbiIsIGdpLT5uZ3JvdXBzKSk7DQogDQogICAgIGZvciAoaSA9 IGdpLT5uZ3JvdXBzIC0gMTsgaSA+PSAwOyBpLS0pIHsNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KIAlnaWRf dCBncm91cCA9IEdST1VQX0FUKGdpLCBpKTsNCisjZWxzZQ0KKwlrZ2lkX3Qg a2dyb3VwID0gR1JPVVBfQVQoZ2ksIGkpOw0KKwlnaWRfdCBncm91cCA9IGtn cm91cC52YWw7DQorI2VuZGlmDQogCWlmICgobm5wZnNfcGFnX3QpZ3JvdXAg Pj0gTk5QRlNfUEFHX0xMSU0gJiYgKG5ucGZzX3BhZ190KWdyb3VwIDwgTk5Q RlNfUEFHX1VMSU0pIHsNCiAJICAgIE5OUEZTREVCKFhERUJTWVMsDQogCQkg ICAgICgiZmluZF9wYWc6IEV4aXN0aW5nIHBhZyAldSBhdCBwb3MgJXVcbiIs IGdyb3VwLCBpKSk7DQpAQCAtMjIwLDcgKzI0NCwxMiBAQCBubnBmc19nZXRf cGFnX2dyb3VwKHZvaWQpDQogICAgIG5ucGZzX3BhZ190IHJldCA9IGN1cnJl bnQtPnVpZDsNCiAjZWxzZQ0KICAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kg PSBnZXRfY3VycmVudF9ncm91cHMoKTsNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICBubnBmc19wYWdf dCByZXQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbHNlDQorICAgIGt1aWRfdCBr dWlkID0gY3VycmVudF91aWQoKTsNCisgICAgbm5wZnNfcGFnX3QgcmV0ID0g a3VpZC52YWw7DQorI2VuZGlmDQogI2VuZGlmDQogICAgIGludCBpOw0KIA0K QEAgLTIzMCw3ICsyNTksMTEgQEAgbm5wZnNfZ2V0X3BhZ19ncm91cCh2b2lk KQ0KIA0KICAgICBpID0gZmluZF9wYWcoZ2kpOw0KICAgICBpZiAoaSAhPSBO TlBGU19QQUdfTk9URk9VTkQpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAJcmV0ID0gR1JPVVBfQVQoZ2ks IGkpOw0KKyNlbHNlDQorCXsga2dpZF90IGtnaWQgPSBHUk9VUF9BVChnaSwg aSk7IHJldCA9IGtnaWQudmFsOyB9DQorI2VuZGlmDQogDQogICAgIHB1dF9n cm91cF9pbmZvKGdpKTsNCiANCkBAIC0yODAsMTAgKzMxMywxNyBAQCBzdG9y ZV9wYWcobm5wZnNfcGFnX3QgcGFnbnVtKQ0KIAljb3VudCAtPSBOR1JPVVBT X1BFUl9CTE9DSzsNCiAgICAgfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogICAgIGlmIChmb3VuZCkN CiAJR1JPVVBfQVQobmV3X2dpLCBpKSA9IHBhZ251bTsNCiAgICAgZWxzZQ0K IAlHUk9VUF9BVChuZXdfZ2ksIG5ld19naS0+bmdyb3VwcyAtIDEpID0gcGFn bnVtOw0KKyNlbHNlDQorICAgIGlmIChmb3VuZCkNCisJeyBrZ2lkX3Qga2dp ZCA9IEtHSURUX0lOSVQocGFnbnVtKTsgR1JPVVBfQVQobmV3X2dpLCBpKSA9 IGtnaWQ7IH0NCisgICAgZWxzZQ0KKwl7IGtnaWRfdCBrZ2lkID0gS0dJRFRf SU5JVChwYWdudW0pOyBHUk9VUF9BVChuZXdfZ2ksIG5ld19naS0+bmdyb3Vw cyAtIDEpID0ga2dpZDsgfQ0KKyNlbmRpZg0KICAgICANCiAgICAgc2V0X2N1 cnJlbnRfZ3JvdXBzKG5ld19naSk7DQogICAgIHB1dF9ncm91cF9pbmZvKG5l d19naSk7DQpAQCAtMzI1LDggKzM2NSwxMCBAQCBubnBmc19nZXRfcGFnKCkN CiANCiAjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9O KDIsNiwyOCkNCiAgICAgcmV0dXJuIGN1cnJlbnQtPnVpZDsNCi0jZWxzZQ0K KyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs MTQsMCkNCiAgICAgcmV0dXJuIGN1cnJlbnRfdWlkKCk7DQorI2Vsc2UNCisg ICAgeyBrdWlkX3Qga3VpZCA9IGN1cnJlbnRfdWlkKCk7IHJldHVybiBrdWlk LnZhbDsgfQ0KICNlbmRpZg0KIH0NCiANCkBAIC00MzIsNyArNDc0LDcgQEAg bm5wZnNfc2V0Z3JvdXBzMTYgKGludCBnaWRzZXRzaXplLCBvbGRfZw0KICNl bmRpZiAvKiBTWVNDQUxMSEFDSyAqLw0KICNlbmRpZiAvKiBHUk9VUFBBR1Mg Ki8NCiANCi1zdHJ1Y3QgZmlsZV9oYW5kbGUgew0KK3N0cnVjdCBubnBmc19m aWxlX2hhbmRsZSB7DQogICAgIG5ucGZzX2Rldl90IGRldjsNCiAgICAgaW5v X3QgaW5vZGU7DQogICAgIF9fdTMyIGdlbjsNCkBAIC01MTksMTQgKzU2MSwy NyBAQCBubnBmc19kZWJ1Z19wcmludCAoc3RydWN0IGFybGFWaWNlSW9jdGwg DQogICogZm9sbG93IHN5bWxpbmtzIGlmZiBgZm9sbG93Jw0KICAqLw0KIA0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5 LDApDQogc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KIHVzZXJfcGF0aDJkZW50 cnkgKHN0cnVjdCBuYW1laWRhdGEgKm5kLCBjaGFyICp1c2VyX3BhdGgsIGlu dCBmb2xsb3cpDQorI2Vsc2UNCitzdGF0aWMgc3RydWN0IGRlbnRyeSAqDQor dXNlcl9wYXRoMmRlbnRyeSAoc3RydWN0IHBhdGggKnBhdGgsIGNoYXIgKnVz ZXJfcGF0aCwgaW50IGZvbGxvdykNCisjZW5kaWYNCiB7DQotICAgIGNoYXIg KmtuYW1lOw0KICAgICBpbnQgZmxhZ3MgPSAwOw0KICAgICBpbnQgZXJyb3Ig PSAwOw0KIA0KLSAgICBrbmFtZSA9IGdldG5hbWUgKHVzZXJfcGF0aCk7DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNyww KQ0KKyAgICBjaGFyICprbmFtZTsNCisgICAga25hbWUgPSBnZXRuYW1lKHVz ZXJfcGF0aCk7DQorI2Vsc2UNCisgICAgY29uc3QgY2hhciAqa25hbWU7DQor ICAgIHN0cnVjdCBmaWxlbmFtZSAqZm5hbWU7DQorICAgIGZuYW1lID0gZ2V0 bmFtZSh1c2VyX3BhdGgpOw0KKyAgICBrbmFtZSA9IGZuYW1lLT5uYW1lOw0K KyNlbmRpZg0KKw0KICAgICBpZiAoSVNfRVJSKGtuYW1lKSkNCiAJcmV0dXJu IEVSUl9QVFIoUFRSX0VSUihrbmFtZSkpOw0KICAgICBpZiAoZm9sbG93KQ0K QEAgLTUzNCwxMSArNTg5LDI1IEBAIHVzZXJfcGF0aDJkZW50cnkgKHN0cnVj dCBuYW1laWRhdGEgKm5kLCANCiANCiAgICAgTk5QRlNERUIoWERFQk1TRywg KCJubnBmc19zeXNjYWxsOiBsb29raW5nIHVwOiAlc1xuIiwga25hbWUpKTsN CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Miw2LDM5KQ0KICAgICBlcnJvciA9IHBhdGhfbG9va3VwKGtuYW1lLCBmbGFn cywgbmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMTksMCkNCisgICAgZXJyb3IgPSBrZXJuX3BhdGgoa25hbWUs IGZsYWdzLCAmKG5kLT5wYXRoKSk7DQorI2Vsc2UNCisgICAgZXJyb3IgPSBr ZXJuX3BhdGgoa25hbWUsIGZsYWdzLCBwYXRoKTsNCisjZW5kaWYNCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw3LDApDQog ICAgIHB1dG5hbWUoa25hbWUpOw0KKyNlbHNlDQorICAgIGttZW1fY2FjaGVf ZnJlZShuYW1lc19jYWNoZXAsICh2b2lkICopa25hbWUpOw0KKyNlbmRpZg0K ICAgICBpZiAoZXJyb3IpDQogCXJldHVybiBFUlJfUFRSKGVycm9yKTsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww KQ0KICAgICByZXR1cm4gbmQtPnBhdGguZGVudHJ5Ow0KKyNlbHNlDQorICAg IHJldHVybiBwYXRoLT5kZW50cnk7DQorI2VuZGlmDQogfQ0KIA0KIGFzbWxp bmthZ2UgbG9uZw0KQEAgLTU1MywxMyArNjIyLDIxIEBAIHN5c19hZnNfaW50 IChpbnQgb3BlcmF0aW9uLA0KICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9w aW9jdGwgKm1zZyA9IE5VTEw7DQogICAgIHN0cnVjdCBubnBmc19tZXNzYWdl X3dha2V1cCAqbXNnMjsNCiAgICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0g TlVMTDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMywxOSwwKQ0KICAgICBzdHJ1Y3QgbmFtZWlkYXRhIG5kOw0KKyNlbHNl DQorICAgIHN0cnVjdCBwYXRoIHBhdGg7DQorI2VuZGlmDQogICAgIA0KICAg ICBtc2cgPSBrbWFsbG9jKHNpemVvZigqbXNnKSwgR0ZQX0tFUk5FTCk7DQog ICAgIGlmIChtc2cgPT0gTlVMTCkNCiAgICAgICByZXR1cm4gLUVOT01FTTsN CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Miw2LDM5KQ0KICAgICBsb2NrX2tlcm5lbCgpOw0KKyNlbHNlDQorICAgIC8q IFRPRE86IGxvY2tfa2VybmVsKCkgaXMgcmVtb3ZlZCwgY29uc2lkZXIgYWRk aW5nIGFuIHByaXZhdGUgbG9jayAqLw0KKyNlbmRpZg0KIA0KICAgICBOTlBG U0RFQihYREVCU1lTLCAoInN5c19hZnMga2VybmVsIGxvY2tlZFxuIikpOw0K IA0KQEAgLTU5Nyw3ICs2NzQsMTEgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVy YXRpb24sDQogCSAgICB9DQogCX0NCiAJaWYgKGFfcGF0aFAgIT0gTlVMTCkg ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDE5LDApDQogCSAgICBkZW50cnkgPSB1c2VyX3BhdGgyZGVudHJ5ICgmbmQs IGFfcGF0aFAsIGFfZm9sbG93U3ltbGlua3MpOw0KKyNlbHNlDQorCSAgICBk ZW50cnkgPSB1c2VyX3BhdGgyZGVudHJ5ICgmcGF0aCwgYV9wYXRoUCwgYV9m b2xsb3dTeW1saW5rcyk7DQorI2VuZGlmDQogCSAgICBpZiAoIWRlbnRyeSkg ew0KIAkJZXJyb3IgPSAtRUlOVkFMOw0KIAkJZ290byB1bmxvY2s7DQpAQCAt NjkzLDEzICs3NzQsMjEgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24s DQogICAgIA0KICB1bmxvY2s6DQogICAgIGlmIChkZW50cnkpDQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJ cGF0aF9wdXQoJm5kLnBhdGgpOw0KKyNlbHNlDQorCXBhdGhfcHV0KCZwYXRo KTsNCisjZW5kaWYNCiANCiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJubnBm c19zeXNjYWxsIHJldHVybnMgZXJyb3I6ICVsZFxuIiwgZXJyb3IpKTsNCiAN CiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJzeXNfYWZzIGtlcm5lbCB1bmxv Y2tcbiIpKTsNCiAgICAga2ZyZWUobXNnKTsNCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICB1bmxvY2tf a2VybmVsKCk7DQorI2Vsc2UNCisgICAgLyogVE9ETzogc2VlIHRoZSBjb21t ZW50IGF0IGxvY2tfa2VybmVsKCkgYWJvdmUgKi8NCisjZW5kaWYNCiANCiAg ICAgcmV0dXJuIGVycm9yOw0KIH0NCkBAIC03NDgsOSArODM3LDE1IEBAIHN5 c19hZnMgKGludCBvcGVyYXRpb24sDQogCQkgICAgICAgYV9mb2xsb3dTeW1s aW5rcyk7DQogfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLDYsMzYpDQogc3RhdGljIGludA0KIG5ucGZzX3Byb2Nm c19pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmls ZSwNCiAJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJn KQ0KKyNlbHNlDQorc3RhdGljIGxvbmcNCitubnBmc19wcm9jZnNfaW9jdGwo c3RydWN0IGZpbGUgKmZpbGUsDQorCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1 bnNpZ25lZCBsb25nIGFyZykNCisjZW5kaWYNCiB7DQogICAgIGFmc3Byb2Nk YXRhIGFyZ3M7DQogICAgIGxvbmcgcmV0Ow0KQEAgLTgwNyw3ICs5MDIsMTEg QEAgc3RhdGljIGludCBubnBmc19pbml0X3Byb2Nmcyh2b2lkKQ0KICAgICBu bnBmc19wcm9jZnNfZGlyLT5vd25lciA9IFRISVNfTU9EVUxFOw0KICNlbmRp Zg0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxMCwwKQ0KICAgICBlbnRyeSA9IGNyZWF0ZV9wcm9jX2VudHJ5 KE5OUEZTX1BST0NfTk9ERSwgMDY2Niwgbm5wZnNfcHJvY2ZzX2Rpcik7DQor I2Vsc2UNCisgICAgZW50cnkgPSBwcm9jX2NyZWF0ZShOTlBGU19QUk9DX05P REUsIDA2NjYsIE5VTEwsICZubnBmc19wcm9jZnNfZm9wcyk7DQorI2VuZGlm DQogICAgIGlmIChlbnRyeSA9PSBOVUxMKSB7DQogCU5OUEZTREVCKFhERUJT WVMsICgibm5wZnNfaW5pdF9wcm9jZnM6IG5vIG5vZGVcbiIpKTsNCiAJcmVt b3ZlX3Byb2NfZW50cnkoImZzLyIgTk5QRlNfUFJPQ19ESVIsIE5VTEwpOw0K QEAgLTgxNyw3ICs5MTYsOSBAQCBzdGF0aWMgaW50IG5ucGZzX2luaXRfcHJv Y2ZzKHZvaWQpDQogI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDIsNiwzMCkNCiAgICAgZW50cnktPm93bmVyID0gVEhJU19NT0RV TEU7DQogI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMTAsMCkNCiAgICAgZW50cnktPnByb2NfZm9wcyA9ICZu bnBmc19wcm9jZnNfZm9wczsNCisjZW5kaWYNCiANCiAjaWZkZWYgU1lTQ0FM TENPTVBBVA0KICAgICBpZiAocmVnaXN0ZXJfaW9jdGwzMl9jb252ZXJzaW9u KEFSTEFfVklPQ19TWVNDQUxMMzIsIG5ucGZzX3Byb2Nmc19pb2N0bDMyKSkg ew0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLWN2cy1vbGQvbm5wZnMvbGlu dXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jIGFybGEvbm5wZnMvbGludXgv bm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jDQotLS0gYXJsYS1jdnMtb2xkL25u cGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYwkyMDEwLTA4LTA4 IDIyOjQzOjA1LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMvbGlu dXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jCTIwMTYtMDEtMTMgMjE6NTE6 NDkuMDAwMDAwMDAwICswMTAwDQpAQCAtNTAsOCArNTAsMTcgQEANCiBSQ1NJ RCgiJElkOiBubnBmc19zeXNjYWxscy1sb3NzYWdlLmMsdiAxLjE5IDIwMTAv MDgvMDggMjA6NDM6MDUgdG9sIEV4cCAkIik7DQogI2VuZGlmDQogDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDcsMCkN CisvKiB0aGUgbWV0aG9kIHRvIHJlYWQgJ2xvd2VyX2JvdW5kJyBkb2VzIG5v dCB3b3JrIG9uIGtlcm5lbCAzLjcgYW5kIGxhdGVyICovDQorI3VuZGVmIFNZ U0NBTExIQUNLDQorI2VuZGlmDQorDQogI2luY2x1ZGUgPGxpbnV4L2thbGxz eW1zLmg+DQorI2lmZGVmIFNZU0NBTExIQUNLDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KIHN0YXRpYyB2b2lk ICpsb3dlcl9ib3VuZCA9ICZrZXJuZWxfdGhyZWFkOw0KKyNlbmRpZg0KKyNl bmRpZg0KIA0KIHZvaWQgKiBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkgc3lzX2Nh bGxfdGFibGUodm9pZCk7DQogbm5wZnNfc3lzX2NhbGxfZnVuY3Rpb24gKm5u cGZzX3N5c19jYWxsX3RhYmxlID0NCkBAIC02Niw2ICs3NSw4IEBAIGNvbnN0 IGNoYXIgKiBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkNCiAjaWZkZWYgX194ODZf NjRfXw0KIGV4dGVybiByd2xvY2tfdCB0YXNrbGlzdF9sb2NrIF9fYXR0cmli dXRlX18oKHdlYWspKTsNCiAjZW5kaWYNCisNCisjaWZkZWYgU1lTQ0FMTEhB Q0sNCiBzdGF0aWMgdm9pZCAqKg0KIGdldF9zdGFydF9hZGRyKHZvaWQpIHsN CiAjaWZkZWYgX194ODZfNjRfXw0KQEAgLTc0LDYgKzg1LDcgQEAgZ2V0X3N0 YXJ0X2FkZHIodm9pZCkgew0KICAgICByZXR1cm4gKHZvaWQgKiopJm11dGV4 X2xvY2s7DQogI2VuZGlmDQogfQ0KKyNlbmRpZg0KIA0KIHN0YXRpYyBpbmxp bmUgaW50IA0KIGthbGxzeW1faXNfZXF1YWwodW5zaWduZWQgbG9uZyBhZGRy LCBjb25zdCBjaGFyICpuYW1lKQ0KQEAgLTE0Miw2ICsxNTQsOCBAQCB2ZXJp Znkodm9pZCAqKnApIHsNCiAgICAgcmV0dXJuIDE7DQogfQ0KIA0KKyNpZmRl ZiBTWVNDQUxMSEFDSw0KKw0KIHN0YXRpYyBpbmxpbmUgaW50IGxvb2tzX2dv b2Qodm9pZCAqKnApDQogew0KICAgICBpZiAoKnAgPD0gKHZvaWQqKWxvd2Vy X2JvdW5kIHx8ICpwID49ICh2b2lkKilwKQ0KQEAgLTE5MSwzICsyMDUsNSBA QCBubnBmc19maXh1cF9zeXNjYWxsX2xvc3NhZ2Uodm9pZCkNCiANCiAgICAg cmV0dXJuIDA7DQogfQ0KKw0KKyNlbmRpZg0KZGlmZiAtdXByTiAtWG5vZGlm ZiBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMgYXJs YS9ubnBmcy9saW51eC9ubnBmc192ZnNvcHMuYw0KLS0tIGFybGEtY3ZzLW9s ZC9ubnBmcy9saW51eC9ubnBmc192ZnNvcHMuYwkyMDEwLTA4LTA4IDIyOjQz OjA2LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMvbGludXgvbm5w ZnNfdmZzb3BzLmMJMjAxNi0wMi0xNCAwMTozNjowNi4wMDAwMDAwMDAgKzAx MDANCkBAIC01MCw3ICs1MCw5IEBAIFJDU0lEKCIkSWQ6IG5ucGZzX3Zmc29w cy5jLHYgMS4xMTEgMjAxMC8NCiBzdHJ1Y3Qgbm5wZnMgbm5wZnNbTk5OUEZT XTsNCiANCiBzdGF0aWMgdm9pZCBubnBmc19wdXRfc3VwZXIoc3RydWN0IHN1 cGVyX2Jsb2NrICpzYik7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyB2b2lkIG5ucGZzX3dyaXRl X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqIHNiKTsNCisjZW5kaWYNCiAN CiBzdGF0aWMgaW50IG5ucGZzX3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50 cnksIHN0cnVjdCBrc3RhdGZzICpidWYpOw0KIA0KQEAgLTU5LDcgKzYxLDkg QEAgc3RhdGljIHN0cnVjdCBzdXBlcl9vcGVyYXRpb25zIG5ucGZzX3NvcA0K ICAgICBkZXN0cm95X2lub2RlCTogbm5wZnNfbm9kZV9mcmVlLA0KICAgICBk cm9wX2lub2RlCQk6IGdlbmVyaWNfZGVsZXRlX2lub2RlLA0KICAgICBwdXRf c3VwZXIJCTogbm5wZnNfcHV0X3N1cGVyLA0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgd3JpdGVfc3Vw ZXIJCTogbm5wZnNfd3JpdGVfc3VwZXIsDQorI2VuZGlmDQogICAgIHN0YXRm cwkJOiBubnBmc19zdGF0ZnMsDQogfTsNCiANCkBAIC04Niw3ICs5MCwxMSBA QCBubnBmc19mZXRjaF9yb290KHN0cnVjdCBpbm9kZSAqaSkNCiAJICogcm9v dCdzIHByaXZpbGlnZXMgKHVzdWFsbHkgbm9uZSwgYW5kIG5vbmUgaXMgbmVl ZGVkKS4NCiAJICovDQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDE0LDApDQogCW1zZy5jcmVkLnVpZCA9IDA7DQor I2Vsc2UNCisJbXNnLmNyZWQudWlkID0gS1VJRFRfSU5JVCgwKTsNCisjZW5k aWYNCiAJbXNnLmNyZWQucGFnID0gMDsNCiAJDQogCWVycm9yID0gbm5wZnNf bWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykp Ow0KQEAgLTEyMSw4ICsxMjksMTMgQEAgbWFrZV9yb290X2lub2RlKHN0cnVj dCBubnBmcyAqbm5wZnNwKQ0KICAgICBYQV9TRVRfTU9ERSgmbm9kZS5hdHRy LCBTX0lGRElSIHwgMDc3Nyk7DQogICAgIFhBX1NFVF9OTElOSygmbm9kZS5h dHRyLCAxMDApOw0KICAgICBYQV9TRVRfU0laRSgmbm9kZS5hdHRyLCAwKTsN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx NCwwKQ0KICAgICBYQV9TRVRfVUlEKCZub2RlLmF0dHIsIDApOw0KICAgICBY QV9TRVRfR0lEKCZub2RlLmF0dHIsIDApOw0KKyNlbHNlDQorICAgIFhBX1NF VF9VSUQoJm5vZGUuYXR0ciwgS1VJRFRfSU5JVCgwKSk7DQorICAgIFhBX1NF VF9HSUQoJm5vZGUuYXR0ciwgS0dJRFRfSU5JVCgwKSk7DQorI2VuZGlmDQog ICAgIFhBX1NFVF9BVElNRSgmbm9kZS5hdHRyLCAwKTsNCiAgICAgWEFfU0VU X01USU1FKCZub2RlLmF0dHIsIDApOw0KICAgICBYQV9TRVRfQ1RJTUUoJm5v ZGUuYXR0ciwgMCk7DQpAQCAtMTUxLDcgKzE2NCwxMSBAQCBtYWtlX3Jvb3Qg KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpDQogICAgIG5ucGZzLT5yb290ID0g aW5vZGU7DQogDQogICAgIC8qIFhYWCBlcnJvciBoYW5kbGluZyAqLw0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDQsMCkN CiAgICAgZHAgPSBkX2FsbG9jX3Jvb3QoaW5vZGUpOw0KKyNlbHNlDQorICAg IGRwID0gZF9tYWtlX3Jvb3QoaW5vZGUpOw0KKyNlbmRpZg0KICAgICBubnBm c19kX2luaXQoZHApOw0KICAgICBzYi0+c19yb290ID0gZHA7DQogICAgIHJl dHVybiAwOw0KQEAgLTE3NSwxMyArMTkyLDI3IEBAIG5ucGZzX3JlYWRfc3Vw ZXIgKHN0cnVjdCBzdXBlcl9ibG9jayAqIHMNCiAgICAgTk5QRlNERUIoWERF QlZGT1BTLCAoIm5ucGZzX3JlYWRfc3VwZXI6IGJlZ2luIHNldHRpbmcgdmFy aWFibGVzXG4iKSk7DQogDQogICAgIGlmIChkYXRhICE9IE5VTEwpIHsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww KQ0KIAlzdHJ1Y3QgbmFtZWlkYXRhIG5kOw0KKyNlbHNlDQorCXN0cnVjdCBw YXRoIHBhdGg7DQorI2VuZGlmDQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogCWVycm9yID0gcGF0aF9s b29rdXAoZGF0YSwgMCwgJm5kKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCWVycm9yID0ga2Vybl9w YXRoKGRhdGEsIDAsICZuZC5wYXRoKTsNCisjZWxzZQ0KKwllcnJvciA9IGtl cm5fcGF0aChkYXRhLCAwLCAmcGF0aCk7DQorI2VuZGlmDQogCWlmIChlcnJv cikNCiAJICAgIGRkZXYgPSBFUlJfUFRSKGVycm9yKTsNCiAJZWxzZQ0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp DQogCSAgICBkZGV2ID0gbmQucGF0aC5kZW50cnk7DQorI2Vsc2UNCisJICAg IGRkZXYgPSBwYXRoLmRlbnRyeTsNCisjZW5kaWYNCiANCiAJaWYgKCFJU19F UlIoZGRldikpIHsNCiAJICAgIG1pbm9yZGV2aWNlID0gTUlOT1IoZGRldi0+ ZF9pbm9kZS0+aV9yZGV2KTsNCkBAIC0yMjUsNiArMjU2LDcgQEAgbm5wZnNf ZmlsbF9zdXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYg0KICAgICByZXR1 cm4gMDsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDIsNiwzOSkNCiBpbnQNCiBubnBmc19nZXRfc2Ioc3RydWN0 IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsDQogCSAgICAgaW50IGZsYWdz LCBjb25zdCBjaGFyICpkZXZfbmFtZSwNCkBAIC0yMzIsMTIgKzI2NCwyMyBA QCBubnBmc19nZXRfc2Ioc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzDQog ew0KICAgICByZXR1cm4gZ2V0X3NiX25vZGV2KGZzX3R5cGUsIGZsYWdzLCBk YXRhLCBubnBmc19maWxsX3N1cGVyLCBtbnQpOw0KIH0NCisjZWxzZQ0KK3N0 cnVjdCBkZW50cnkqDQorbm5wZnNfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVt X3R5cGUgKmZzX3R5cGUsDQorCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFy ICpkZXZfbmFtZSwNCisJICAgICB2b2lkICpkYXRhKSANCit7DQorICAgIHJl dHVybiBtb3VudF9ub2Rldihmc190eXBlLCBmbGFncywgZGF0YSwgbm5wZnNf ZmlsbF9zdXBlcik7DQorfQ0KKyNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgdm9p ZA0KIG5ucGZzX3dyaXRlX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqIHNi KQ0KIHsNCiAgICAgc2ItPnNfZGlydCA9IDA7DQogfQ0KKyNlbmRpZg0KIA0K IC8qDQogICogWFhYIGlzIHRoaXMgZ29vZD8gDQpAQCAtMjc2LDcgKzMxOSwx MSBAQCBubnBmc19zdGF0ZnNfaW50KHN0cnVjdCBzdXBlcl9ibG9jayAqc2Is DQogICAgIHRtcC5mX3NwYXJlWzFdID0gMDsNCiAgICAgdG1wLmZfc3BhcmVb Ml0gPSAwOw0KICAgICB0bXAuZl9zcGFyZVszXSA9IDA7DQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAgICAg dG1wLmZfc3BhcmVbNF0gPSAwOw0KKyNlbHNlDQorICAgIHRtcC5mX2ZsYWdz ID0gMDsNCisjZW5kaWYNCiAgICAgKmJ1ZiA9IHRtcDsNCiAgICAgcmV0dXJu IDA7DQogfQ0K ---276651502-1837419531-1455553223=:6685 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-1837419531-1455553223=:6685--