Re: PATCH v6: Arla CVS Current on Linux 2.6.36 to 4.4
Bo Branten <[email protected]> Tue, 26 Jan 2016 19:37:05 +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-360532137-1453833425=:11904 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII PATCH v6: Arla CVS Current on Linux 2.6.36 to 4.4 Corrections in nnpfs_block_open, nnpfs_write_begin and nnpfs_write_end. Current test status is that reading works well on 32-bit systems while writing and 64-bit systems needs some more debugging. Bo Branten ---276651502-360532137-1453833425=:11904 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v6-arla-cvs-for-linux-2.6.36-to-4.4 Content-Transfer-Encoding: BASE64 Content-ID: <[email protected]> Content-Description: Content-Disposition: attachment; filename=patch-v6-arla-cvs-for-linux-2.6.36-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 LTAxLTI2IDEzOjAwOjA2LjAwMDAwMDAwMCArMDEwMA0KQEAgLTQzLDYgKzQz 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 ZWF0ZSgmbmQtPnBhdGgsICZkZW50cnkpOw0KKyNlbHNlDQorCSAgICBkb25l X3BhdGhfY3JlYXRlKCZwYXRoLCAmZGVudHJ5KTsNCisjZW5kaWYNCiAJfQ0K IA0KLQltdXRleF91bmxvY2soJm5kLnBhdGguZGVudHJ5LT5kX2lub2RlLT5p X211dGV4KTsNCi0JcGF0aF9wdXQoJm5kLnBhdGgpOw0KLQ0KIAlpZiAocmV0 KSB7DQogCSAgICBwcmludGsoIm5ucGZzX2Jsb2NrX29wZW4oJXMpIGNyZWF0 ZSBmYWlsZWQ6ICVkXG4iLCBjYWNoZW5hbWUsIC1yZXQpOw0KIAkgICAgbm5w ZnNfZGVidWdfb29wcygpOw0KQEAgLTQyMSwxNCArNDY5LDIyIEBAIG5ucGZz X2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5vZGUNCiAgICAgfSBl bHNlIHsNCiAjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMiw2LDI5KQ0KIAlzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKG5k LnBhdGguZGVudHJ5LCBuZC5wYXRoLm1udCwgZmxhZ3MpOw0KLSNlbHNlDQor I2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2 LDApDQogICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKG5k LnBhdGguZGVudHJ5LCBuZC5wYXRoLm1udCwgZmxhZ3MsIGN1cnJlbnRfY3Jl ZCgpKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDE5LDApDQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRy eV9vcGVuKCZuZC5wYXRoLCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNl bHNlDQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKCZw YXRoLCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KICNlbmRpZg0KIAlpZiAo SVNfRVJSKGYpKSB7DQogCSAgICByZXQgPSBQVFJfRVJSKGYpOw0KIAkgICAg cHJpbnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBvcGVuIGZhaWxlZDogJWRc biIsIGNhY2hlbmFtZSwgLXJldCk7DQogCSAgICBubnBmc19kZWJ1Z19vb3Bz KCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMTksMCkNCiAJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0K KwkgICAgcGF0aF9wdXQoJnBhdGgpOw0KKyNlbmRpZg0KIAl9IGVsc2Ugew0K IAkgICAgKmZpbGUgPSBmOw0KIAl9DQpAQCAtNDM3LDcgKzQ5Myw3IEBAIG5u cGZzX2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5vZGUNCiAgICAg LyogcGF0aF9yZWxlYXNlKCkgaXMgdXN1YWxseSBoYW5kbGVkIG9uIGNsb3Nl ICovDQogDQogIG91dDoNCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtF Uk5FTF9WRVJTSU9OKDIsNiwyOCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KICAgICBjdXJyZW50LT5mc3Vp ZCA9IHNhdmV1aWQ7DQogICAgIGN1cnJlbnQtPmZzZ2lkID0gc2F2ZWdpZDsN CiAjZWxzZQ0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLWN2cy1vbGQvbm5w ZnMvbGludXgvbm5wZnNfY29tbW9uLmMgYXJsYS9ubnBmcy9saW51eC9ubnBm c19jb21tb24uYw0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBm c19jb21tb24uYwkyMDA2LTEyLTExIDE3OjMxOjQ2LjAwMDAwMDAwMCArMDEw MA0KKysrIGFybGEvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMJMjAxNi0w MS0xNCAxNjoxNTowMC4wMDAwMDAwMDAgKzAxMDANCkBAIC0xMTIsMTAgKzEx MiwxNSBAQCBubnBmc19wcmludF9hbGlhc2VzKGNvbnN0IHN0cnVjdCBpbm9k ZSAqDQogdm9pZA0KIG5ucGZzX3ByaW50X2FsaWFzZXNfcmVhbChjb25zdCBz dHJ1Y3QgaW5vZGUgKmlub2RlKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVjdCBsaXN0 X2hlYWQgKmFsaWFzOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAq YWxpYXM7DQorI2VuZGlmDQogICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeTsN CiAgICAgaW50IGJhaWxvdXQgPSAxMDA7DQogDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBhbGlhcyA9 IGlub2RlLT5pX2RlbnRyeS5uZXh0Ow0KICAgICB3aGlsZSAoYWxpYXMgIT0g Jmlub2RlLT5pX2RlbnRyeSkgew0KIAlpZiAoLS1iYWlsb3V0IDwgMCkgew0K QEAgLTEzMSw2ICsxMzYsMjYgQEAgbm5wZnNfcHJpbnRfYWxpYXNlc19yZWFs KGNvbnN0IHN0cnVjdCBpbg0KIAl9DQogCWFsaWFzID0gYWxpYXMtPm5leHQ7 DQogICAgIH0NCisjZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50 cnkoZGVudHJ5LCBhbGlhcywgJmlub2RlLT5pX2RlbnRyeSwgZF9hbGlhcykg ew0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMTksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCAm aW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2Vsc2UNCisgICAgaGxp c3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCAmaW5vZGUtPmlfZGVudHJ5LCBk X3UuZF9hbGlhcykgew0KKyNlbmRpZg0KKwlpZiAoLS1iYWlsb3V0IDwgMCkg ew0KKwkgICAgcHJpbnRrKCIgLi4uIik7DQorCSAgICBicmVhazsNCisJfQ0K KwlpZiAoZGVudHJ5KSB7DQorCSAgICBwcmludGsoIiAlLipzKCVwKSIsIChp bnQpZGVudHJ5LT5kX25hbWUubGVuLA0KKwkJICAgZGVudHJ5LT5kX25hbWUu bmFtZSwgZGVudHJ5KTsNCisJICAgIGlmIChubnBmc19kX2VudHJ5X3VuaGFz aGVkKCZkZW50cnktPmRfaGFzaCkpDQorCQlwcmludGsoIih1bmhhc2hlZCki KTsNCisJfQ0KKyAgICB9DQorI2VuZGlmDQogICAgIHByaW50aygiXG4iKTsN CiB9DQogDQpAQCAtMTQ2LDcgKzE3MSwxMSBAQCBubnBmc19wcmludF9jaGls ZHJlbihjb25zdCBzdHJ1Y3QgZGVudHJ5DQogDQogICAgIHdoaWxlIChzdWJk aXJzICE9ICZkZW50cnktPmRfc3ViZGlycykgew0KIAlzdHJ1Y3QgbGlzdF9o ZWFkICp0bXAgPSBzdWJkaXJzOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCXN0cnVjdCBkZW50cnkgKmNo aWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfdS5kX2No aWxkKTsNCisjZWxzZQ0KKwlzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9IGxpc3Rf ZW50cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBkX2NoaWxkKTsNCisjZW5kaWYN CiANCiAJcHJpbnRrKCIgJS4qcyglcCkiLCAoaW50KWNoaWxkLT5kX25hbWUu bGVuLA0KIAkgICAgICAgY2hpbGQtPmRfbmFtZS5uYW1lLCBjaGlsZCk7DQpk aWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9u bnBmc19kZXYuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jDQotLS0g YXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMDYtMTAt MjQgMTg6MzM6MzYuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS9ubnBmcy9s aW51eC9ubnBmc19kZXYuYwkyMDE2LTAxLTE0IDE2OjI4OjE5LjAwMDAwMDAw MCArMDEwMA0KQEAgLTMwMCw3ICszMDAsOSBAQCBubnBmc19pbnZhbGlkYXRl X2FsbChzdHJ1Y3Qgbm5wZnMgKm5ucGZzDQogICAgIE5OUEZTREVCKFhERUJO T0RFLCAoImZyZWVfYWxsX25ucGZzX25vZGVzIHN0YXJ0aW5nXG4iKSk7DQog DQogICAgIHNocmlua19kY2FjaGVfc2Iobm5wZnMtPnNiKTsNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM3KQ0KICAg ICBpbnZhbGlkYXRlX2lub2RlcyhubnBmcy0+c2IpOw0KKyNlbmRpZg0KICAg ICANCiAgICAgTk5QRlNERUIoWERFQk5PREUsICgiZnJlZV9hbGxfbm5wZnNf bm9kZXMgZG9uZVxuIikpOw0KIH0NCkBAIC0zNzQsNyArMzc2LDExIEBAIG5u cGZzX2RldmNsb3NlKHN0cnVjdCBpbm9kZSAqIGlub2RlLCBzdHINCiBzdGF0 aWMgc3NpemVfdA0KIG5ucGZzX2RldnJlYWQoc3RydWN0IGZpbGUgKmZpbGUs IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpDQogew0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5 LDApDQogICAgIG5ucGZzX2Rldl90IGRldiA9IGZpbGUtPmZfZGVudHJ5LT5k X2lub2RlLT5pX3JkZXY7DQorI2Vsc2UNCisgICAgbm5wZnNfZGV2X3QgZGV2 ID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2Ow0KKyNl bmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9ICZubnBmc1tNSU5P UihkZXYpXTsNCiAgICAgc3RydWN0IG5ucGZzX2xpbmsgKmZpcnN0Ow0KICAg ICBpbnQgcmV0ID0gMCwgZXJyb3IgPSAwOw0KQEAgLTQzOSw4ICs0NDUsMTIg QEAgbm5wZnNfZGV2d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IA0K IA0KICAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldndyaXRlXG4i KSk7DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDE5LDApDQogICAgIGRldiA9IGZpbGUtPmZfZGVudHJ5LT5k X2lub2RlLT5pX3JkZXY7DQotICAgIG5ucGZzcCA9ICZubnBmc1tNSU5PUihk ZXYpXTsNCisjZWxzZQ0KKyAgICBkZXYgPSBmaWxlLT5mX3BhdGguZGVudHJ5 LT5kX2lub2RlLT5pX3JkZXY7DQorI2VuZGlmDQorICAgICBubnBmc3AgPSAm bm5wZnNbTUlOT1IoZGV2KV07DQogDQogICAgIGRvd24oJm5ucGZzcC0+Y2hh bm5lbF9zZW0pOw0KICAgICBpZiAobm5wZnNwLT5zdGF0dXMgJiBOTlBGU19E RVZXUklURSkgew0KQEAgLTUwNSwxOSArNTE1LDM3IEBAIG5ucGZzX2Rldndy aXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCANCiAvKg0KICAqIE5vdCB1 c2VkLg0KICAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigyLDYsMzYpDQogc3RhdGljIGludA0KIG5ucGZzX2RldmlvY3Rs KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLA0KIAkg ICAgICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQor I2Vsc2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3VubG9ja2VkX2RldmlvY3Rs KHN0cnVjdCBmaWxlICpmaWxlLA0KKwkgICAgICAgdW5zaWduZWQgaW50IGNt ZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQogew0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogICAg IE5OUEZTREVCKFhERUJERVYsICgibm5wZnNfZGV2aW9jdGwgZGV2ID0gJWQs IGZsYWdzID0gJWRcbiIsDQogCQkgICAgICAgaW5vZGUtPmlfcmRldiwgZmls ZS0+Zl9mbGFncykpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgTk5QRlNERUIoWERFQkRFViwg KCJubnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwNCisJ CSAgICAgICBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2LCBmaWxl LT5mX2ZsYWdzKSk7DQorI2Vsc2UNCisgICAgTk5QRlNERUIoWERFQkRFViwg KCJubnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwNCisJ CSAgICAgICBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLT5pX3JkZXYs IGZpbGUtPmZfZmxhZ3MpKTsNCisjZW5kaWYNCiAgICAgcmV0dXJuIC1FSU5W QUw7DQogfQ0KIA0KIHN0YXRpYyB1bnNpZ25lZCBpbnQNCiBubnBmc19kZXZw b2xsKHN0cnVjdCBmaWxlICpmaWxlLCBwb2xsX3RhYmxlICp3YWl0KQ0KIHsN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx OSwwKQ0KICAgICBubnBmc19kZXZfdCBkZXYgPSBmaWxlLT5mX2RlbnRyeS0+ ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbHNlDQorICAgIG5ucGZzX2Rldl90IGRl diA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisj ZW5kaWYNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSAmbm5wZnNbTUlO T1IoZGV2KV07DQogICAgIGludCByZXQgPSAwOw0KICAgICANCkBAIC05NTMs NyArOTgxLDExIEBAIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZm9w cyA9IHsNCiAgICAgcmVhZDoJCW5ucGZzX2RldnJlYWQsDQogICAgIHdyaXRl OgkJbm5wZnNfZGV2d3JpdGUsDQogICAgIHBvbGw6CQlubnBmc19kZXZwb2xs LA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy LDYsMzYpDQogICAgIGlvY3RsOgkJbm5wZnNfZGV2aW9jdGwsDQorI2Vsc2UN CisgICAgdW5sb2NrZWRfaW9jdGw6CW5ucGZzX3VubG9ja2VkX2RldmlvY3Rs LA0KKyNlbmRpZg0KICAgICByZWxlYXNlOgkJbm5wZnNfZGV2Y2xvc2UsDQog ICAgIG9wZW46CQlubnBmc19kZXZvcGVuLA0KIH07DQpAQCAtOTY4LDggKzEw MDAsMTMgQEAgbm5wZnNfaW5pdF9kZXZpY2Uodm9pZCkNCiAJaW5pdF93YWl0 cXVldWVfaGVhZCgmKG5ucGZzW2ldLndhaXRfcXVldWUpKTsNCiAJbm5wZnNf aW5pdHEoJm5ucGZzW2ldLm1lc3NhZ2VxKTsNCiAJbm5wZnNfaW5pdHEoJm5u cGZzW2ldLnNsZWVwcSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDIsNiwzNykNCiAJaW5pdF9NVVRFWCgmbm5wZnNbaV0u aW5hY3RpdmVfc2VtKTsNCiAJaW5pdF9NVVRFWCgmbm5wZnNbaV0uY2hhbm5l bF9zZW0pOw0KKyNlbHNlDQorCXNlbWFfaW5pdCgmbm5wZnNbaV0uaW5hY3Rp dmVfc2VtLCAxKTsNCisJc2VtYV9pbml0KCZubnBmc1tpXS5jaGFubmVsX3Nl bSwgMSk7DQorI2VuZGlmDQogCUlOSVRfTElTVF9IRUFEKCZubnBmc1tpXS5p bmFjdGl2ZV9saXN0KTsNCiAJbm5wZnNbaV0ubm5vZGVzID0gMDsNCiAgICAg fQ0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLWN2cy1vbGQvbm5wZnMvbGlu dXgvbm5wZnNfaW5vZGVvcHMuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX2lu b2Rlb3BzLmMNCi0tLSBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnNf aW5vZGVvcHMuYwkyMDEwLTA4LTA4IDIyOjQzOjA0LjAwMDAwMDAwMCArMDIw MA0KKysrIGFybGEvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYwkyMDE2 LTAxLTI2IDE4OjUxOjM1LjAwMDAwMDAwMCArMDEwMA0KQEAgLTQwLDEwICs0 MCwxNCBAQA0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19kZXYuaD4NCiAjaW5j bHVkZSA8bm5wZnMvbm5wZnNfZGlyZW50Lmg+DQogI2luY2x1ZGUgPG5ucGZz L25ucGZzX3N5c2NhbGxzLmg+DQorI2luY2x1ZGUgPGxpbnV4L2Fpby5oPg0K ICNpbmNsdWRlIDxsaW51eC9iaW5mbXRzLmg+DQogI2luY2x1ZGUgPGxpbnV4 L2ZpbGUuaD4NCiAjaW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPg0KICNpbmNs dWRlIDxsaW51eC9wYWdlLWZsYWdzLmg+DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA+PSBLRVJORUxfVkVSU0lPTig0LDEsMCkNCisjaW5jbHVkZSA8bGlu dXgvdWlvLmg+DQorI2VuZGlmDQogI2luY2x1ZGUgPGxpbnV4L3dyaXRlYmFj ay5oPg0KICNpbmNsdWRlIDxhc20vZmNudGwuaD4NCiANCkBAIC01NCwxMSAr NTgsMjMgQEAgUkNTSUQoIiRJZDogbm5wZnNfaW5vZGVvcHMuYyx2IDEuMjI2 IDIwMQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luY19pbnQoc3RydWN0IGZp bGUgKmZpbGUsIHVfaW50IGZsYWcpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgaW50DQog bm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3Ry dWN0IG5hbWVpZGF0YSAqbmQpOw0KLQ0KKyNlbHNlDQogc3RhdGljIGludA0K K25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVu c2lnbmVkIGludCBmbGFncyk7DQorI2VuZGlmDQorDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCitzdGF0aWMN CitpbnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkp Ow0KKyNlbHNlDQorc3RhdGljDQoraW50DQorbm5wZnNfZF9kZWxldGUoY29u c3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KTsNCisjZW5kaWYNCiANCiBzdGF0 aWMgdm9pZA0KIG5ucGZzX2RfcmVsZWFzZShzdHJ1Y3QgZGVudHJ5ICpkZW50 cnkpOw0KQEAgLTIxNCw4ICsyMzAsMTMgQEAgbm5wZnNfaW5vZGVfdmFsaWQo c3RydWN0IGlub2RlICppbm9kZSkNCiAgKiBubnBmc19sb29rdXAgbm93IHJl dHVybnMgYSBkZW50cnkuDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyBzdHJ1Y3Qg ZGVudHJ5ICoNCiBubnBmc19sb29rdXAgKHN0cnVjdCBpbm9kZSAqZGlyLCBz dHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0K KyNlbHNlDQorc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KK25ucGZzX2xvb2t1 cCAoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwg dW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0 IG5ucGZzX21lc3NhZ2VfZ2V0bm9kZSBtc2c7DQogICAgIHN0cnVjdCBubnBm cyAqbm5wZnNwOw0KQEAgLTQwNyw3ICs0MjgsMTEgQEAgZmluZF9maXJzdF9i bG9jayhzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KIHN0YXRpYyBpbnQNCiBu bnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcp DQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5m X2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUg Kmlub2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5k aWYNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSBOTlBGU19GUk9NX1ZO T0RFKGlub2RlKTsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5P REVfVE9fWE5PREUoaW5vZGUpOw0KICAgICBsb2ZmX3QgbGVuID0gaV9zaXpl X3JlYWQoaW5vZGUpOw0KQEAgLTQ3NCwxNSArNDk5LDE4IEBAIG5ucGZzX2Zz eW5jX2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQNCiAgKg0KICAqLw0K IA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy LCA2LCAzNSkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMiw2LDM1KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luYyhzdHJ1 Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBpbnQgZGF0 YXN5bmMpDQotI2Vsc2UNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDEsMCkNCiBzdGF0aWMgaW50DQogbm5wZnNfZnN5 bmMoc3RydWN0IGZpbGUgKmZpbGUsIGludCBkYXRhc3luYykNCisjZWxzZQ0K K3N0YXRpYyBpbnQNCitubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwg bG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgZGF0YXN5bmMpDQogI2Vu ZGlmDQogew0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZF UlNJT04oMiwgNiwgMzUpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL RVJORUxfVkVSU0lPTigyLDYsMzUpDQogICAgIHN0cnVjdCBkZW50cnkgKmRl bnRyeSA9IGZpbGUtPmZfcGF0aC5kZW50cnk7DQogI2VuZGlmDQogICAgIHN0 cnVjdCBpbm9kZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUoZGVudHJ5KTsN CkBAIC00OTAsNiArNTE4LDggQEAgbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUg KmZpbGUsIGludCBkYXRhcw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47 DQogICAgIGludCBlcnJvciA9IDA7DQogDQorICAgICh2b2lkKW5ucGZzcDsN CisNCiAgICAgZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChpbm9kZSk7DQog ICAgIGlmIChlcnJvcikNCiAJcmV0dXJuIGVycm9yOw0KQEAgLTYyMiwxMSAr NjUyLDI1IEBAIGNoZWNrX3JpZ2h0cyAobm5wZnNfcmlnaHRzIHJpZ2h0cywg aW50IG0NCiAgKiBXZSBkb24ndCBob2xkIGlfbXV0ZXguDQogICovDQogDQor I2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs MzgpIHx8IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigz LDEsMCkpDQogc3RhdGljIGludA0KIG5ucGZzX3Blcm1pc3Npb24oc3RydWN0 IGlub2RlICppbm9kZSwgaW50IG1vZGUpDQorI2Vsc2UNCitzdGF0aWMgaW50 DQorbm5wZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQg bW9kZSwgdW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAg aW50IGVycm9yID0gMDsNCi0gICAgbm5wZnNfcGFnX3QgcGFnID0gbm5wZnNf Z2V0X3BhZygpOw0KKyAgICBubnBmc19wYWdfdCBwYWc7DQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEsMCkNCisgICAg aWYgKG1vZGUgJiBNQVlfTk9UX0JMT0NLKQ0KKyAgICAgICAgcmV0dXJuIC1F Q0hJTEQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9W RVJTSU9OKDIsNiwzOCkNCisgICAgaWYgKGZsYWdzICYgSVBFUk1fRkxBR19S Q1UpDQorICAgICAgICByZXR1cm4gLUVDSElMRDsNCisjZW5kaWYNCisNCisg ICAgcGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICANCiAgICAgTk5QRlNE RUIoWERFQlZOT1BTLCAoIm5ucGZzX2FjY2VzcyAoJXApIG1vZGUgPSAwJW8g YWxpYXNlczoiLCBpbm9kZSwgbW9kZSkpOw0KICAgICBubnBmc19wcmludF9h bGlhc2VzKGlub2RlKTsNCkBAIC03ODQsMTEgKzgyOCwxOSBAQCBubnBmc19k YXRhX3ZhbGlkKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVfDQogaW50IG5ucGZz X2ZpbGVfbW1hcChzdHJ1Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCB2bV9hcmVh X3N0cnVjdCAqIHZtYSkNCiB7DQogICAgIGludCBmbGFncywgZXJyb3IgPSAw Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2Rl bnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlu b2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYN CiAgICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBmaWxlLT5m X21hcHBpbmc7DQogDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBm c19tbWFwIGlub2RlOiAlcFxuIiwgaW5vZGUpKTsNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBubnBm c19wcmludF9wYXRoKGZpbGUtPmZfZGVudHJ5KTsNCisjZWxzZQ0KKyAgICBu bnBmc19wcmludF9wYXRoKGZpbGUtPmZfcGF0aC5kZW50cnkpOw0KKyNlbmRp Zg0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfbW1hcCBhbGlh c2VzOiIpKTsNCiAgICAgbm5wZnNfcHJpbnRfYWxpYXNlcyhpbm9kZSk7DQog ICAgIA0KQEAgLTgyMywyOCArODc1LDUxIEBAIGludCBubnBmc19maWxlX21t YXAoc3RydWN0IGZpbGUgKiBmaWxlLCANCiAgKg0KICAqLw0KIA0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQog c3RhdGljIHNzaXplX3QNCiBubnBmc19haW9fcmVhZChzdHJ1Y3Qga2lvY2Ig KmlvY2IsDQogCSAgICAgICBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5z aWduZWQgbG9uZyBucl9zZWdzLA0KIAkgICAgICAgbG9mZl90IHBvcykNCisj ZWxzZQ0KK3N0YXRpYyBzc2l6ZV90DQorbm5wZnNfcmVhZF9pdGVyKHN0cnVj dCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICp0bykNCisjZW5kaWYN CiB7DQogICAgIGludCBlcnJvciA9IDA7DQogICAgIHN0cnVjdCBmaWxlICpm aWxlID0gaW9jYi0+a2lfZmlscDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxMiwwKQ0KICAgICBzc2l6ZV90IGNvdW50 ID0gaW9jYi0+a2lfbGVmdDsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTig0LDEsMCkNCisgICAgc3NpemVfdCBjb3VudCA9 IGlvY2ItPmtpX25ieXRlczsNCisjZWxzZQ0KKyAgICBzc2l6ZV90IGNvdW50 ID0gaW92X2l0ZXJfY291bnQodG8pOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0 cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsN CisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9w YXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IG5u cGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KICAgICAN CiAgICAgaWYgKHhuICE9IE5VTEwpDQogCU5OUEZTREVCKFhERUJWTk9QUywg KCJubnBmc19yZWFkX2ZpbGUoJXApOiB0b2tlbnM6IDB4JXhcbiIsDQogCQkJ ICAgICBpbm9kZSwgeG4tPnRva2VucykpOw0KIA0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIGVycm9y ID0gbm5wZnNfZGF0YV92YWxpZChpbm9kZSwgTk5QRlNfREFUQV9SLCBwb3Ms IHBvcyArIGNvdW50KTsNCisjZWxzZQ0KKyAgICBlcnJvciA9IG5ucGZzX2Rh dGFfdmFsaWQoaW5vZGUsIE5OUEZTX0RBVEFfUiwgaW9jYi0+a2lfcG9zLCBp b2NiLT5raV9wb3MgKyBjb3VudCk7DQorI2VuZGlmDQogICAgIGlmIChlcnJv cikgew0KIAlOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfcmVhZF9maWxl OiBkYXRhIG5vdCB2YWxpZCAlZFxuIiwgZXJyb3IpKTsNCiAJcmV0dXJuIGVy cm9yOw0KICAgICB9DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIGVycm9yID0gZ2VuZXJp Y19maWxlX2Fpb19yZWFkKGlvY2IsIGlvdiwgbnJfc2VncywgcG9zKTsNCisj ZWxzZQ0KKyAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV9yZWFkX2l0ZXIoaW9j YiwgdG8pOw0KKyNlbmRpZg0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgi bm5wZnNfcmVhZF9maWxlOiBlcnJvciA9ICVkXG4iLCBlcnJvcikpOw0KICAg ICByZXR1cm4gZXJyb3I7DQogfQ0KQEAgLTg1MywxNyArOTI4LDM2IEBAIG5u cGZzX2Fpb19yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAgKg0KICAqLw0K IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDE2LDApDQogc3RhdGljIHNzaXplX3QNCiBubnBmc19haW9fd3JpdGUoc3Ry dWN0IGtpb2NiICppb2NiLA0KIAkJY29uc3Qgc3RydWN0IGlvdmVjICppb3Ys IHVuc2lnbmVkIGxvbmcgbnJfc2VncywNCiAJCWxvZmZfdCBwb3MpDQorI2Vs c2UNCitzdGF0aWMgc3NpemVfdA0KK25ucGZzX3dyaXRlX2l0ZXIoc3RydWN0 IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pDQorI2VuZGlm DQogew0KICAgICBpbnQgZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3QgZmlsZSAq ZmlsZSA9IGlvY2ItPmtpX2ZpbHA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkNCiAgICAgc3NpemVfdCBjb3Vu dCA9IGlvY2ItPmtpX2xlZnQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oNCwxLDApDQorICAgIHNzaXplX3QgY291bnQg PSBpb2NiLT5raV9uYnl0ZXM7DQorI2Vsc2UNCisgICAgc3NpemVfdCBjb3Vu dCA9IGlvdl9pdGVyX2NvdW50KGZyb20pOw0KKyNlbmRpZg0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAg IHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9k ZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+ Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0 IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDAp DQogICAgIGxvZmZfdCByZWFscG9zID0gcG9zOw0KKyNlbHNlDQorICAgIGxv ZmZfdCByZWFscG9zID0gaW9jYi0+a2lfcG9zOw0KKyNlbmRpZg0KICAgICAN CiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2Fpb193cml0ZSgl cCk6IHRva2VuczogMHgleFxuIiwNCiAJCQkgaW5vZGUsIHhuLT50b2tlbnMp KTsNCkBAIC04NzcsNyArOTcxLDExIEBAIG5ucGZzX2Fpb193cml0ZShzdHJ1 Y3Qga2lvY2IgKmlvY2IsDQogCXJldHVybiBlcnJvcjsNCiAgICAgfQ0KIA0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2 LDApDQogICAgIGVycm9yID0gZ2VuZXJpY19maWxlX2Fpb193cml0ZShpb2Ni LCBpb3YsIG5yX3NlZ3MsIHBvcyk7DQorI2Vsc2UNCisgICAgZXJyb3IgPSBn ZW5lcmljX2ZpbGVfd3JpdGVfaXRlcihpb2NiLCBmcm9tKTsNCisjZW5kaWYN CiAgICAgaWYgKCFJU19FUlJfVkFMVUUoZXJyb3IpKQ0KIAl4bi0+ZmxhZ3Mg fD0gTk5QRlNfREFUQV9ESVJUWTsgLyogWFhYIHJhY2UgKi8NCiANCkBAIC04 ODUsOSArOTgzLDE5IEBAIG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qga2lvY2Ig KmlvY2IsDQogICAgIHJldHVybiBlcnJvcjsNCiB9DQogDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMywwKQ0KIHN0YXRp YyBpbnQNCiBubnBmc19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVj dCBkZW50cnkgKmRlbnRyeSwNCiAJICAgICBpbnQgbW9kZSwgc3RydWN0IG5h bWVpZGF0YSAqbmQpDQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMyw2LDApDQorc3RhdGljIGludA0KK25ucGZzX2NyZWF0 ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0K KwkgICAgIHVtb2RlX3QgbW9kZSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQor I2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9k ZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksDQorCSAgICAgdW1vZGVf dCBtb2RlLCBib29sIGV4Y2wpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3Qg bm5wZnMgKm5ucGZzcDsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0K QEAgLTEwMzgsOCArMTE0NiwxMyBAQCBubnBmc19yZW5hbWUgKHN0cnVjdCBp bm9kZSAqIG9sZF9kaXIsIHN0DQogICAgIHJldHVybiBlcnJvcjsNCiB9DQog DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs MywwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19ta2RpcihzdHJ1Y3QgaW5vZGUg KiBkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgaW50IG1vZGUpDQorI2Vs c2UNCitzdGF0aWMgaW50DQorbm5wZnNfbWtkaXIoc3RydWN0IGlub2RlICog ZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVtb2RlX3QgbW9kZSkNCisj ZW5kaWYNCiB7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBz dHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAtMTI1MiwxMiArMTM2NSwyMSBA QCBzdGF0aWMgaW50IG5ucGZzX3N5bWxpbmsoc3RydWN0IGlub2RlICpkDQog LyoNCiAgKiBXZSBob2xkIGlfbXV0ZXguDQogICovDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiBzdGF0aWMg aW50DQogbm5wZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUsIHZvaWQg KiBkaXJlbnQsIGZpbGxkaXJfdCBmaWxsZGlyKQ0KKyNlbHNlDQorc3RhdGlj IGludA0KK25ucGZzX2l0ZXJhdGUoc3RydWN0IGZpbGUgKiBmaWxlLCBzdHJ1 Y3QgZGlyX2NvbnRleHQgKmN0eCkNCisjZW5kaWYNCiB7DQogICAgIGludCBl cnJvcjsNCiAgICAgbG9mZl90IG9mZnNldCwgYmVnaW5fb2Zmc2V0Ow0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0g ZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAg c3RydWN0IGlub2RlICpjYWNoZV9pbm9kZTsNCiAgICAgc3RydWN0IG5ucGZz X25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KICAgICBjaGFy ICpidWY7DQpAQCAtMTMyOCw2ICsxNDUwLDcgQEAgbm5wZnNfcmVhZGRpcihz dHJ1Y3QgZmlsZSAqIGZpbGUsIHZvaWQgKg0KIAkJICAgIChpbnQpIHhkaXJl bnQtPmRfbmFtbGVuLA0KIAkJICAgIChpbnQpIChvZmZzZXQrYmVnaW5fb2Zm c2V0KSkpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDExLDApDQogCSAgICBpZiAoeGRpcmVudC0+ZF9maWxlbm8g IT0gMA0KIAkJJiYgKGZpbGxkaXJfZXJyb3IgPSBmaWxsZGlyIChkaXJlbnQs DQogCQkJCSAgICAgeGRpcmVudC0+ZF9uYW1lLA0KQEAgLTEzMzksNiArMTQ2 MiwxOCBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9p ZCAqDQogCQkJICgibm5wZnNfcmVhZGRpciBmaWxsZGlyOiAlZFxuIiwgZmls bGRpcl9lcnJvcikpOw0KIAkJYnJlYWs7DQogCSAgICB9DQorI2Vsc2UNCisJ ICAgIGlmICh4ZGlyZW50LT5kX2ZpbGVubyAhPSAwDQorCQkmJiAoZmlsbGRp cl9lcnJvciA9IGRpcl9lbWl0IChjdHgsDQorCQkJCSAgICAgeGRpcmVudC0+ ZF9uYW1lLA0KKwkJCQkgICAgIHhkaXJlbnQtPmRfbmFtbGVuLA0KKwkJCQkg ICAgIHhkaXJlbnQtPmRfZmlsZW5vLA0KKwkJCQkgICAgIERUX1VOS05PV04p KSA8IDApIHsNCisJCU5OUEZTREVCKFhERUJSRUFERElSLA0KKwkJCSAoIm5u cGZzX3JlYWRkaXIgZmlsbGRpcjogJWRcbiIsIGZpbGxkaXJfZXJyb3IpKTsN CisJCWJyZWFrOw0KKwkgICAgfQ0KKyNlbmRpZg0KIAkgICAgb2Zmc2V0ICs9 IHhkaXJlbnQtPmRfcmVjbGVuOw0KIA0KIAkgICAgaWYgKHhkaXJlbnQtPmRf cmVjbGVuID09IDApIHsNCkBAIC0xMzk1LDkgKzE1MzAsMTUgQEAgbm5wZnNf cmVhZGxpbmsgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgYw0KICAqIFdlIGRv bid0IGhvbGQgaV9tdXRleC4NCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oNCwyLDApDQogc3RhdGljIHZvaWQg Kg0KIG5ucGZzX2ZvbGxvd19saW5rIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnks DQogCQkgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCitzdGF0aWMg Y29uc3QgY2hhciAqDQorbm5wZnNfZm9sbG93X2xpbmsgKHN0cnVjdCBkZW50 cnkgKmRlbnRyeSwNCisJCSB2b2lkICoqcGFnZSkNCisjZW5kaWYNCiB7DQog ICAgIGludCBlcnJvciA9IDA7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUg PSBERU5UUllfVE9fSU5PREUoZGVudHJ5KTsNCkBAIC0xNDA4LDcgKzE1NDks MTEgQEAgbm5wZnNfZm9sbG93X2xpbmsgKHN0cnVjdCBkZW50cnkgKmRlbnRy eQ0KICAgICBpZiAoZXJyb3IpDQogICAgICAgIHJldHVybiBFUlJfUFRSKGVy cm9yKTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oNCwyLDApDQogICAgIHJldHVybiBwYWdlX2ZvbGxvd19saW5rX2xp Z2h0KGRlbnRyeSwgbmQpOw0KKyNlbHNlDQorICAgIHJldHVybiBwYWdlX2Zv bGxvd19saW5rX2xpZ2h0KGRlbnRyeSwgcGFnZSk7DQorI2VuZGlmDQogfQ0K IA0KIC8qDQpAQCAtMTQ5MCw2ICsxNjM1LDggQEAgbm5wZnNfcmVsZWFzZV9m aWxlIChzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KICAgICBzdHJ1Y3Qgbm5wZnNf bm9kZSAqeG47DQogICAgIGludCBlcnJvciA9IDA7DQogDQorICAgICh2b2lk KW5ucGZzcDsNCisNCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZz X3JlbGVhc2VfZmlsZVxuIikpOw0KIA0KICAgICBlcnJvciA9IG5ucGZzX2lu b2RlX3ZhbGlkKGlub2RlKTsNCkBAIC0xNTIzLDggKzE2NzAsMTMgQEAgbm5w ZnNfZmx1c2goc3RydWN0IGZpbGUgKmZpbGUsIGZsX293bmVyXw0KIHsNCiAg ICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2ZsdXNoXG4iKSk7DQog DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs MTksMCkNCiAgICAgaWYgKGZpbGUgJiYgZmlsZS0+Zl9kZW50cnkgJiYgZmls ZS0+Zl9kZW50cnktPmRfaW5vZGUpDQogCXJldHVybiBubnBmc19yZWxlYXNl X2ZpbGUoZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUsIGZpbGUpOw0KKyNlbHNl DQorICAgIGlmIChmaWxlICYmIGZpbGUtPmZfcGF0aC5kZW50cnkgJiYgZmls ZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSkNCisJcmV0dXJuIG5ucGZzX3Jl bGVhc2VfZmlsZShmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLCBmaWxl KTsNCisjZW5kaWYNCiAgICAgZWxzZQ0KIAlyZXR1cm4gMDsNCiB9DQpAQCAt MTUzMywxMCArMTY4NSwyNCBAQCBubnBmc19mbHVzaChzdHJ1Y3QgZmlsZSAq ZmlsZSwgZmxfb3duZXJfDQogICogUmV0dXJuIDEgaWYgYGRlbnRyeScgaXMg c3RpbGwgdmFsaWQsIG90aGVyd2lzZSAwLg0KICAqLw0KIA0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCitzdGF0 aWMgaW50DQorbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRl bnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCiBzdGF0aWMg aW50DQotbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRy eSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpIA0KK25ucGZzX2RfcmV2YWxpZGF0 ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVuc2lnbmVkIGludCBmbGFncykN CisjZW5kaWYNCiB7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBERU5U UllfVE9fSU5PREUoZGVudHJ5KTsNCisNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFID49IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KKyAgICBpZiAoZmxhZ3Mg JiBMT09LVVBfUkNVKQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2Vs aWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwz OCkNCisgICAgaWYgKG5kICYmIG5kLT5mbGFncyAmIExPT0tVUF9SQ1UpDQor ICAgICAgICByZXR1cm4gLUVDSElMRDsNCisjZW5kaWYNCisNCiAgICAgTk5Q RlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2RfcmV2YWxpZGF0ZSAlcCBcIiUu KnNcIiAoaW5vZGUgJXApXG4iLA0KIAkJICAgICAgIGRlbnRyeSwNCiAJCSAg ICAgICAoaW50KWRlbnRyeS0+ZF9uYW1lLmxlbiwNCkBAIC0xNTgyLDkgKzE3 NDgsMTUgQEAgbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRl bnRyeQ0KICAgICByZXR1cm4gMDsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiBzdGF0aWMNCiBp bnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQor I2Vsc2UNCitzdGF0aWMNCitpbnQNCitubnBmc19kX2RlbGV0ZShjb25zdCBz dHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQorI2VuZGlmDQogew0KICAgICBzdHJ1 Y3QgaW5vZGUgKmlub2RlOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47 DQpAQCAtMTYxNCw3ICsxNzg2LDExIEBAIG5ucGZzX3NwbGljZV9yZWFkKHN0 cnVjdCBmaWxlICpmaWxlLCBsb2YNCiAJCSAgdW5zaWduZWQgaW50IGZsYWdz KQ0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3Qg aW5vZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGU7DQorI2Vs c2UNCisgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfcGF0aC5k ZW50cnktPmRfaW5vZGU7DQorI2VuZGlmDQogICAgIHN0cnVjdCBubnBmc19u b2RlICp4biA9IFZOT0RFX1RPX1hOT0RFKGlub2RlKTsNCiAgICAgDQogICAg IGlmICh4biAhPSBOVUxMKQ0KQEAgLTE3MDcsNiArMTg4Myw4IEBAIG5ucGZz X3dyaXRlX2JhY2twYWdlKHN0cnVjdCBwYWdlICpwYWdlLCANCiANCiAJaW50 IGVycm9yOw0KIAkNCisJKHZvaWQpb2Zmc2V0Ow0KKw0KIAlkbyB7DQogCQll cnJvciA9IHBhZ2VjYWNoZV93cml0ZV9iZWdpbihiYWNrZmlsZSwgbWFwcGlu ZywgMCwgbGVuLA0KIAkJCQkJICAgICAgQU9QX0ZMQUdfVU5JTlRFUlJVUFRJ QkxFLA0KQEAgLTE3NDcsNiArMTkyNSw4IEBAIG5ucGZzX3JlYWRfYmFja3Bh Z2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHMNCiAJc3RydWN0IHBhZ2UgKmJhY2tw YWdlOw0KIAl1bnNpZ25lZCBsb25nIG9mZnNldDsNCiANCisJKHZvaWQpb2Zm c2V0Ow0KKw0KIAliYWNrcGFnZSA9IHJlYWRfbWFwcGluZ19wYWdlKG1hcHBp bmcsIG4sIGJhY2tmaWxlKTsNCiAJaWYgKCFJU19FUlIoYmFja3BhZ2UpKSB7 DQogCQl3YWl0X29uX3BhZ2VfbG9ja2VkKGJhY2twYWdlKTsNCkBAIC0xODU3 LDYgKzIwMzcsNyBAQCBubnBmc193cml0ZXBhZ2Uoc3RydWN0IHBhZ2UgKnBh Z2UsIHN0cnVjDQogfQ0KIA0KIC8qIGZyb20sIHRvIGFyZSB3aXRoaW4gcGFn ZSAqLw0KKy8qIFhYWCBOb3RlIHRoYXQgd2hpbGUgdGhlcmUgYXJlIGEgc3lz dGVtIHByb3ZpZGVkIHNpbXBsZV9wcmVwYXJlX3dyaXRlIHdlIGhhdmUgdG8g aW1wbGVtZW50IHRoaXMgZnVuY3Rpb24gYmVjYXVzZSBpZiBhIHdyaXRlIGlz IHNtYWxsZXIgdGhhbiBvbmUgcGFnZSBubnBmcyBtdXN0IGdldCB0aGUgb2xk IGJsb2NrIGZyb20gdGhlIHNlcnZlciBmaXJzdCB0byBmaWxsIGluLiAqLw0K IHN0YXRpYyBpbnQNCiBubnBmc19wcmVwYXJlX3dyaXRlKHN0cnVjdCBmaWxl ICpmaWxlLCBzdHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgZnJvbSwgdW5z aWduZWQgdG8pDQogew0KQEAgLTE4OTQsMTEgKzIwNzUsMTcgQEAgbm5wZnNf cHJlcGFyZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgcw0KIA0KIAlpZiAo bW9kc2l6ZSA+IGlfc2l6ZV9yZWFkKGlub2RlKSkgew0KIAkJaW50IGVycm9y Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDgsMCkNCiAJCWVycm9yID0gdm10cnVuY2F0ZShpbm9kZSwgbW9kc2l6ZSk7 DQorI2Vsc2UNCisJCWVycm9yID0gaW5vZGVfbmV3c2l6ZV9vayhpbm9kZSwg bW9kc2l6ZSk7DQorCQlpZighZXJyb3IpDQorCQkJdHJ1bmNhdGVfc2V0c2l6 ZShpbm9kZSwgbW9kc2l6ZSk7DQorI2VuZGlmDQogCQlpZiAoZXJyb3IpIHsN CiAJCQlwcmludGsoIm5ucGZzX3ByZXBhcmVfd3JpdGU6IHRydW5jYXRlKCVs bHUpIC0+ICVkXG4iLA0KIAkJCSAgICAgICBtb2RzaXplLCAtZXJyb3IpOw0K LQkJCUJVRygpOyAvKiBYWFggbm90IGNvcnJlY3QgKi8NCisJCQkvKkJVRygp OyovIC8qIFhYWCBub3QgY29ycmVjdCAqLw0KIAkJfQ0KIAl9DQogDQpAQCAt MTkyNSw3ICsyMTEyLDcgQEAgbm5wZnNfcHJlcGFyZV93cml0ZShzdHJ1Y3Qg ZmlsZSAqZmlsZSwgcw0KIH0NCiANCiAjaWYgTElOVVhfVkVSU0lPTl9DT0RF ID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCi0NCisvKiBYWFggTm90ZSB0 aGF0IHdoaWxlIHRoZXJlIGFyZSBhIHN5c3RlbSBwcm92aWRlZCBzaW1wbGVf d3JpdGVfYmVnaW4gd2UgaGF2ZSB0byBpbXBsZW1lbnQgdGhpcyBmdW5jdGlv biBiZWNhdXNlIGlmIGEgd3JpdGUgaXMgc21hbGxlciB0aGFuIG9uZSBwYWdl IG5ucGZzIG11c3QgZ2V0IHRoZSBvbGQgYmxvY2sgZnJvbSB0aGUgc2VydmVy IGZpcnN0IHRvIGZpbGwgaW4uICovDQogc3RhdGljIGludA0KIG5ucGZzX3dy aXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19z cGFjZSAqbWFwcGluZywgbG9mZl90IHBvcywNCiB1bnNpZ25lZCBsZW4sIHVu c2lnbmVkIGZsYWdzLCBzdHJ1Y3QgcGFnZSAqKnBhZ2VwLCB2b2lkICoqZnNk YXRhKQ0KQEAgLTE5MzMsMjUgKzIxMjAsMzEgQEAgdW5zaWduZWQgbGVuLCB1 bnNpZ25lZCBmbGFncywgc3RydWN0IHBhZw0KIAlzdHJ1Y3QgcGFnZSAqcGFn ZTsNCiAJcGdvZmZfdCBpbmRleDsNCiAJdW5zaWduZWQgZnJvbTsNCisJaW50 IHJldCA9IDA7DQogDQogCWluZGV4ID0gcG9zID4+IFBBR0VfQ0FDSEVfU0hJ RlQ7DQogCWZyb20gPSBwb3MgJiAoUEFHRV9DQUNIRV9TSVpFIC0gMSk7DQog DQotI2lmZGVmIEFPUF9GTEFHX05PRlMNCiAJcGFnZSA9IGdyYWJfY2FjaGVf cGFnZV93cml0ZV9iZWdpbihtYXBwaW5nLCBpbmRleCwgZmxhZ3MpOw0KLSNl bHNlDQotCXBhZ2UgPSBfX2dyYWJfY2FjaGVfcGFnZShtYXBwaW5nLCBpbmRl eCk7DQotI2VuZGlmDQorDQogCWlmIChwYWdlID09IE5VTEwpDQotCQlyZXR1 cm4gLUVOT01FTTsNCisJICAgIHJldHVybiAtRU5PTUVNOw0KIA0KIAkqcGFn ZXAgPSBwYWdlOw0KIA0KLQlyZXR1cm4gbm5wZnNfcHJlcGFyZV93cml0ZShm aWxlLCBwYWdlLCBmcm9tLCBmcm9tICsgbGVuKTsNCi19DQorCXJldCA9IG5u cGZzX3ByZXBhcmVfd3JpdGUoZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGxl bik7DQogDQorCWlmIChyZXQpIHsNCisJICAgIHVubG9ja19wYWdlKHBhZ2Up Ow0KKwkgICAgcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOw0KKwl9DQorDQor CXJldHVybiByZXQ7DQorfQ0KICNlbmRpZg0KIA0KKy8qIFhYWCB3ZSB1c2Ug dGhlIHN5c3RlbSBwcm92aWRlZCBzaW1wbGVfY29tbWl0X3dyaXRlIGluc3Rl YWQgc28gdGhpcyBmdW5jdGlvbiBpcyB1bnVzZWQgZm9yIG5vdyAqLw0KKyNp ZiAwDQogc3RhdGljIGludA0KIG5ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3Qg ZmlsZSAqZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UsDQogCQkgICB1bnNpZ25l ZCBmcm9tLCB1bnNpZ25lZCB0bykNCkBAIC0xOTc5LDEyICsyMTcyLDE0IEBA IG5ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3QNCiAJ a3VubWFwKHBhZ2UpOw0KICAgICB9DQogI2VuZGlmDQotICAgIA0KKyANCiAg ICAgcmV0dXJuIDA7DQogfQ0KKyNlbmRpZg0KIA0KICNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KLQ0KKy8qIFhY WCB3ZSB1c2UgdGhlIHN5c3RlbSBwcm92aWRlZCBzaW1wbGVfd3JpdGVfZW5k IGluc3RlYWQgc28gdGhpcyBmdW5jdGlvbiBpcyB1bnVzZWQgZm9yIG5vdyAq Lw0KKyNpZiAwDQogc3RhdGljIGludA0KIG5ucGZzX3dyaXRlX2VuZChzdHJ1 Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcs IGxvZmZfdCBwb3MsDQogCQl1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGll ZCwgc3RydWN0IHBhZ2UgKnBhZ2UsIHZvaWQgKmZzZGF0YSkNCkBAIC0xOTkz LDEwICsyMTg4LDE4IEBAIG5ucGZzX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAq ZmlsZSwgc3RydWMNCiANCiAJLyogemVybyB0aGUgc3RhbGUgcGFydCBvZiB0 aGUgcGFnZSBpZiB3ZSBkaWQgYSBzaG9ydCBjb3B5ICovDQogCWlmIChjb3Bp ZWQgPCBsZW4pIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMyw2LDApDQogCQl2b2lkICprYWRkciA9IGttYXBfYXRvbWlj KHBhZ2UsIEtNX1VTRVIwKTsNCisjZWxzZQ0KKwkJdm9pZCAqa2FkZHIgPSBr bWFwX2F0b21pYyhwYWdlKTsNCisjZW5kaWYNCiAJCW1lbXNldChrYWRkciAr IGZyb20gKyBjb3BpZWQsIDAsIGxlbiAtIGNvcGllZCk7DQogCQlmbHVzaF9k Y2FjaGVfcGFnZShwYWdlKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMyw2LDApDQogCQlrdW5tYXBfYXRvbWljKGthZGRy LCBLTV9VU0VSMCk7DQorI2Vsc2UNCisJCWt1bm1hcF9hdG9taWMoa2FkZHIp Ow0KKyNlbmRpZg0KIAl9DQogDQogCW5ucGZzX2NvbW1pdF93cml0ZShmaWxl LCBwYWdlLCBmcm9tLCBmcm9tICsgY29waWVkKTsNCkBAIC0yMDA2LDcgKzIy MDksNyBAQCBubnBmc193cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsIHN0 cnVjDQogDQogCXJldHVybiBjb3BpZWQ7DQogfQ0KLQ0KKyNlbmRpZg0KICNl bmRpZg0KIA0KIGNvbnN0DQpAQCAtMjAxNSwxMCArMjIxOCwxMCBAQCBzdHJ1 Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIG5ucGZzX2FvDQogCS53cml0 ZXBhZ2UgPSBubnBmc193cml0ZXBhZ2UsDQogI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJLnByZXBhcmVfd3Jp dGUgPSBubnBmc19wcmVwYXJlX3dyaXRlLA0KLQkuY29tbWl0X3dyaXRlID0g bm5wZnNfY29tbWl0X3dyaXRlLA0KKwkuY29tbWl0X3dyaXRlID0gc2ltcGxl X2NvbW1pdF93cml0ZSwNCiAjZWxzZQ0KIAkud3JpdGVfYmVnaW4gPSBubnBm c193cml0ZV9iZWdpbiwNCi0JLndyaXRlX2VuZCA9IG5ucGZzX3dyaXRlX2Vu ZCwNCisJLndyaXRlX2VuZCA9IHNpbXBsZV93cml0ZV9lbmQsDQogI2VuZGlm DQogfTsNCiANCkBAIC0yMDI3LDggKzIyMzAsMTMgQEAgc3RydWN0IGFkZHJl c3Nfc3BhY2Vfb3BlcmF0aW9ucyBubnBmc19hbw0KICAqLw0KIA0KIHN0cnVj dCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZmlsZV9vcGVyYXRpb25zID0gew0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2 LDApDQogICAgIC5haW9fcmVhZAk9IG5ucGZzX2Fpb19yZWFkLA0KICAgICAu YWlvX3dyaXRlCT0gbm5wZnNfYWlvX3dyaXRlLA0KKyNlbHNlDQorICAgIC5y ZWFkX2l0ZXIJPSBubnBmc19yZWFkX2l0ZXIsDQorICAgIC53cml0ZV9pdGVy CT0gbm5wZnNfd3JpdGVfaXRlciwNCisjZW5kaWYNCiAgICAgLm1tYXAJPSBu bnBmc19maWxlX21tYXAsDQogICAgIC5vcGVuCT0gbm5wZnNfb3BlbiwNCiAg ICAgLmZsdXNoCT0gbm5wZnNfZmx1c2gsDQpAQCAtMjA0MSw3ICsyMjQ5LDEx IEBAIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZGVhZF9vcGVyYXQN CiB9Ow0KIA0KIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZGlyX29w ZXJhdGlvbnMgPSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMTEsMCkNCiAgICAgLnJlYWRkaXIJPSBubnBmc19yZWFk ZGlyLA0KKyNlbHNlDQorICAgIC5pdGVyYXRlICAgID0gbm5wZnNfaXRlcmF0 ZSwNCisjZW5kaWYNCiAgICAgLmZsdXNoCT0gbm5wZnNfZmx1c2gsDQogfTsN CiANCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS1jdnMtb2xkL25ucGZzL2xp bnV4L25ucGZzX2xvYWQuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX2xvYWQu Yw0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMJ MjAwNi0xMC0zMSAxMTowMjo0MS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxh L25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYwkyMDE2LTAxLTEzIDIwOjE0OjAy LjAwMDAwMDAwMCArMDEwMA0KQEAgLTU0LDcgKzU0LDExIEBAIGV4dGVybiBz dHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2ZvcHMNCiANCiBzdHJ1Y3Qg ZmlsZV9zeXN0ZW1fdHlwZSBubnBmc19mc190eXBlID0gew0KICAgICAgICBu YW1lOiAgICAgICAgICAgIm5ucGZzIiwNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICAgICBnZXRfc2I6 ICAgICAgICAgbm5wZnNfZ2V0X3NiLA0KKyNlbHNlDQorICAgICAgIG1vdW50 OiAgICAgICAgICBubnBmc19tb3VudCwNCisjZW5kaWYNCiAgICAgICAga2ls bF9zYjogICAgICAgIGtpbGxfbGl0dGVyX3N1cGVyLA0KICAgICAgICBvd25l cjogICAgICAgICAgVEhJU19NT0RVTEUsDQogfTsNCmRpZmYgLXVwck4gLVhu b2RpZmYgYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2Uu YyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYw0KLS0tIGFybGEt Y3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAxMC0wOC0w OCAyMjo0MzowNS4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhL25ucGZzL2xp bnV4L25ucGZzX21lc3NhZ2UuYwkyMDE2LTAxLTI0IDE4OjUyOjI4LjAwMDAw MDAwMCArMDEwMA0KQEAgLTU1LDkgKzU1LDE1IEBAIHN0YXRpYyB2b2lkDQog bm5wZnNfZF9yZW1vdmUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KIHsNCiAg ICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBmc19kX3JlbW92ZSAlcFxuIiwg ZGVudHJ5KSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7 DQogICAgIGRnZXRfbG9ja2VkKGRlbnRyeSk7DQogICAgIHNwaW5fdW5sb2Nr KCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZkZW50 cnktPmRfbG9jayk7DQorICAgIGRnZXRfZGxvY2soZGVudHJ5KTsNCisgICAg c3Bpbl91bmxvY2soJmRlbnRyeS0+ZF9sb2NrKTsNCisjZW5kaWYNCiAgICAg ZF9kcm9wKGRlbnRyeSk7DQogICAgIGRwdXQoZGVudHJ5KTsNCiB9DQpAQCAt MTIxLDcgKzEyNywxMSBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxub2RlKHN0 cnVjdCBubnBmcyAqDQogICAgIHN0cnVjdCBpbm9kZSAqZGksICppbm9kZTsN CiAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50ID0gTlVMTDsNCiAgICAgc3Ry dWN0IHFzdHIgc3FzdHI7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICph bGlhczsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDksMCkNCisgICAgc3RydWN0IGhsaXN0X25vZGUgKmFsaWFzOw0K KyNlbmRpZg0KICAgICANCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBm c19tZXNzYWdlX2luc3RhbGxub2RlXG4iKSk7DQogICAgIA0KQEAgLTE3Niwx MiArMTg2LDI2IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGUoc3RydWN0 IG5ucGZzICoNCiAgICAgICoNCiAgICAgICovDQogICAgIA0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAg YWxpYXMgPSBkaS0+aV9kZW50cnkubmV4dDsNCiAgICAgd2hpbGUgKGFsaWFz ICE9ICZkaS0+aV9kZW50cnkpIHsNCiAJcGFyZW50ID0gbGlzdF9lbnRyeShh bGlhcywgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQotCXNwaW5fbG9jaygm ZGNhY2hlX2xvY2spOw0KLQlkZ2V0X2xvY2tlZChwYXJlbnQpOw0KLQlzcGlu X3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3Jf ZWFjaF9lbnRyeShwYXJlbnQsIGFsaWFzLCAmZGktPmlfZGVudHJ5LCBkX2Fs aWFzKSB7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJl bnQsICZkaS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0KKyAgICBo bGlzdF9mb3JfZWFjaF9lbnRyeShwYXJlbnQsICZkaS0+aV9kZW50cnksIGRf dS5kX2FsaWFzKSB7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCisgICAgc3Bpbl9sb2NrKCZk Y2FjaGVfbG9jayk7DQorICAgIGRnZXRfbG9ja2VkKHBhcmVudCk7DQorICAg IHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bp bl9sb2NrKCZwYXJlbnQtPmRfbG9jayk7DQorICAgIGRnZXRfZGxvY2socGFy ZW50KTsNCisgICAgc3Bpbl91bmxvY2soJnBhcmVudC0+ZF9sb2NrKTsNCisj ZW5kaWYNCiAJZGVudHJ5ID0gZF9sb29rdXAocGFyZW50LCAmc3FzdHIpOw0K IAlOTlBGU0RFQihYREVCTVNHLA0KIAkJICgibm5wZnNfbWVzc2FnZV9pbnN0 YWxsbm9kZTogYWxpYXMgJXAsIGxvb2t1cCAlcFxuIiwNCkBAIC0yMzMsNyAr MjU3LDkgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZShzdHJ1Y3Qgbm5w ZnMgKg0KIAkNCiAJZHB1dChkZW50cnkpOw0KIAlkZW50cnkgPSBOVUxMOw0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs MCkNCiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsNCisjZW5kaWYNCiAJZHB1dChw YXJlbnQpOw0KICAgICB9DQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5w ZnNfbWVzc2FnZV9pbnN0YWxsbm9kZTogZG9uZSBpbnN0YWxsaW5nXG4iKSk7 DQpAQCAtMjY4LDcgKzI5NCwxMyBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxh dHRyKHN0cnVjdCBubnBmcyAqDQogICAgIH0NCiANCiAgICAgaW5vZGUgPSBY Tk9ERV9UT19WTk9ERSh0KTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIGRlbnRyeSA9IGxpc3RfZW50 cnkoaW5vZGUtPmlfZGVudHJ5Lm5leHQsIHN0cnVjdCBkZW50cnksIGRfYWxp YXMpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsMTksMCkNCisgICAgZGVudHJ5ID0gaGxpc3RfZW50cnkoaW5vZGUt PmlfZGVudHJ5LmZpcnN0LCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisj ZWxzZQ0KKyAgICBkZW50cnkgPSBobGlzdF9lbnRyeShpbm9kZS0+aV9kZW50 cnkuZmlyc3QsIHN0cnVjdCBkZW50cnksIGRfdS5kX2FsaWFzKTsNCisjZW5k aWYNCiAgICAgDQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfbWVz c2FnZV9pbnN0YWxsYXR0ciBuYW1lOiVzXG4iLA0KIAkJICAgICAgIGRlbnRy eS0+ZF9uYW1lLm5hbWUpKTsNCkBAIC0zOTYsMTcgKzQyOCwzNSBAQCBubnBm c19tZXNzYWdlX2luc3RhbGxkYXRhKHN0cnVjdCBubnBmcyAqDQogc3RhdGlj IHZvaWQNCiBjbGVhcl9hbGxfY2hpbGRyZW4gKHN0cnVjdCBpbm9kZSAqaW5v ZGUsIGludCBwYXJlbnQpDQogew0KKyAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50 cnk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICphbGlhczsNCisjZWxp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkN CisgICAgc3RydWN0IGhsaXN0X25vZGUgKmFsaWFzOw0KKyNlbmRpZg0KIA0K ICBhZ2FpbjoNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMiw2LDM4KQ0KICAgICBzcGluX2xvY2soJmRjYWNoZV9sb2NrKTsN CisjZWxzZQ0KKyAgICBzcGluX2xvY2soJmlub2RlLT5pX2xvY2spOw0KKyNl bmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDYsMCkNCiAgICAgYWxpYXMgPSBpbm9kZS0+aV9kZW50cnkubmV4dDsN CiAgICAgd2hpbGUgKGFsaWFzICE9ICZpbm9kZS0+aV9kZW50cnkpIHsNCi0J c3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3Jf ZWFjaF9lbnRyeShkZW50cnksIGFsaWFzLCAmaW5vZGUtPmlfZGVudHJ5LCBk X2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShk ZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0K KyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9k ZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2VuZGlmDQogCXN0cnVjdCBsaXN0 X2hlYWQgKnN1YmRpcnM7DQogCXN0cnVjdCBubnBmc19kZW50cnlfZGF0YSAq eGQ7DQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDYsMCkNCiAJZGVudHJ5ID0gbGlzdF9lbnRyeShhbGlhcywgc3Ry dWN0IGRlbnRyeSwgZF9hbGlhcyk7DQorI2VuZGlmDQogCWlmIChkZW50cnkg PT0gTlVMTCkgew0KIAkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTIFBh bmljOiBkZW50cnkgaW4gYWxpYXMgbGlzdCBpcyBudWxsXG4iKTsNCiAJICAg IGJyZWFrOw0KQEAgLTQyMiw3ICs0NzIsMTEgQEAgY2xlYXJfYWxsX2NoaWxk cmVuIChzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KIAlzdWJkaXJzID0gZGVudHJ5 LT5kX3N1YmRpcnMubmV4dDsNCiAJd2hpbGUgKHN1YmRpcnMgIT0gJmRlbnRy eS0+ZF9zdWJkaXJzKSB7DQogCSAgICBzdHJ1Y3QgbGlzdF9oZWFkICp0bXAg PSBzdWJkaXJzOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDE5LDApDQogCSAgICBzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9 IGxpc3RfZW50cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9jaGlsZCk7 DQorI2Vsc2UNCisJICAgIHN0cnVjdCBkZW50cnkgKmNoaWxkID0gbGlzdF9l bnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfY2hpbGQpOw0KKyNlbmRpZg0K IAkgICAgc3ViZGlycyA9IHRtcC0+bmV4dDsNCiAJICAgIE5OUEZTREVCKFhE RUJNU0csICgiY2xlYXJfYWxsX2NoaWxkcmVuIGNoaWxkOiAlLipzIGlub2Rl OiAlcC8lcCAiDQogCQkJICAgICAgICJkY291bnQ6ICVkIGFsaWFzZXM6XG4i LA0KQEAgLTQ0MiwxNCArNDk2LDI0IEBAIGNsZWFyX2FsbF9jaGlsZHJlbiAo c3RydWN0IGlub2RlICppbm9kZSwNCiANCiAJICAgIC8qIFRocm93IGltbWVk aWF0ZWx5ICovDQogCSAgICBpZiAobm5wZnNfZGNvdW50KGNoaWxkKSA9PSAw KSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDIsNiwzOCkNCiAJICAgICAgICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2sp Ow0KKyNlbHNlDQorCSAgICAgICAgc3Bpbl91bmxvY2soJmlub2RlLT5pX2xv Y2spOw0KKyNlbmRpZg0KIAkJbm5wZnNfZF9yZW1vdmUoY2hpbGQpOw0KIAkJ Z290byBhZ2FpbjsNCiAJICAgIH0NCiAJfQ0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJYWxpYXMgPSBhbGlh cy0+bmV4dDsNCisjZW5kaWYNCiAgICAgfQ0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogICAgIHNwaW5fdW5s b2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl91bmxvY2so Jmlub2RlLT5pX2xvY2spOw0KKyNlbmRpZg0KIH0NCiANCiBzdGF0aWMgdm9p ZA0KQEAgLTcxOSwxMiArNzgzLDIyIEBAIG5ucGZzX21lc3NhZ2VfdmVyc2lv bihzdHJ1Y3Qgbm5wZnMgKm5ucGYNCiANCiAgICAgLyogc2FuaXR5IGNoZWNr IGJlZm9yZSB3ZSBsb29rIGF0IGl0ICovDQogICAgIGlmIChzaXplID09IHNp emVvZigqbWVzc2FnZSkgJiYgbWVzc2FnZS0+dmVyc2lvbiA9PSBOTlBGU19W RVJTSU9OKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMTksMCkNCiAJc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxz ZQ0KKwlzdHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KIAlpbnQgZXJyb3I7 DQogDQogCXVpbnQ2NF90IGJsb2Nrc2l6ZSA9IG1lc3NhZ2UtPmJsb2Nrc2l6 ZTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMiw2LDM5KQ0KIAllcnJvciA9IHBhdGhfbG9va3VwKCIuIiwgMCwgJm5k KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDE5LDApDQorCWVycm9yID0ga2Vybl9wYXRoKCIuIiwgMCwgJm5kLnBh dGgpOw0KKyNlbHNlDQorCWVycm9yID0ga2Vybl9wYXRoKCIuIiwgMCwgJnBh dGgpOw0KKyNlbmRpZg0KIAlpZiAoZXJyb3IpIHsNCiAJICAgIC8qDQogCSAg ICAgKiBCYWQgY2FjaGUgcm9vdCwganVzdCByZXR1cm4uDQpAQCAtNzM1LDEx ICs4MDksMTcgQEAgbm5wZnNfbWVzc2FnZV92ZXJzaW9uKHN0cnVjdCBubnBm cyAqbm5wZg0KIAkJICAgIm5ucGZzX21lc3NhZ2VfdmVyc2lvbiBmYWlsZWQg cGF0aF9sb29rdXAsICINCiAJCSAgICJlcnJubzogJWRcbiIsIGVycm9yKTsN CiAJfSBlbHNlIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxOSwwKQ0KIAkgICAgbm5wZnNwLT5jYWNoZXJvb3QgPSBt bnRnZXQobmQucGF0aC5tbnQpOw0KIAkgICAgbm5wZnNwLT5jYWNoZWRpciA9 IGRnZXQobmQucGF0aC5kZW50cnkpOw0KIAkgICAgcGF0aF9wdXQoJm5kLnBh dGgpOw0KKyNlbHNlDQorCSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdl dChwYXRoLm1udCk7DQorCSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChw YXRoLmRlbnRyeSk7DQorCSAgICBwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlm DQogCSAgICANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W RVJTSU9OKDIsNiwyOCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMiw2LDI5KQ0KIAkgICAgbm5wZnNwLT51aWQgPSBjdXJy ZW50LT5mc3VpZDsNCiAJICAgIG5ucGZzcC0+Z2lkID0gY3VycmVudC0+ZnNn aWQ7DQogI2Vsc2UNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS1jdnMtb2xk L25ucGZzL2xpbnV4L25ucGZzX25vZGUuYyBhcmxhL25ucGZzL2xpbnV4L25u cGZzX25vZGUuYw0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBm c19ub2RlLmMJMjAwNy0wMS0wMyAxNDo1MjowMi4wMDAwMDAwMDAgKzAxMDAN CisrKyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX25vZGUuYwkyMDE2LTAxLTE0 IDE2OjUxOjExLjAwMDAwMDAwMCArMDEwMA0KQEAgLTEzMiw3ICsxMzIsMTIg QEAgbm5wZnNfc2V0c2l6ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1aW50Ng0K IAlwcmludGsoIm5ucGZzX3NldHNpemU6IHRydW5jYXRpbmcgQDB4JWxsdVxu IiwNCiAJICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpc2l6ZSk7DQogI2Vu ZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsOCwwKQ0KIAl2bXRydW5jYXRlKGlub2RlLCBzaXplKTsgLyogWFhYIHJl dHZhbCAqLw0KKyNlbHNlDQorCWlmKCFpbm9kZV9uZXdzaXplX29rKGlub2Rl LCBzaXplKSkNCisJICAgIHRydW5jYXRlX3NldHNpemUoaW5vZGUsIHNpemUp Ow0KKyNlbmRpZg0KIAlubnBmc19ibG9ja190cnVuY2F0ZSh4biwgc2l6ZSk7 DQogICAgIH0NCiB9DQpAQCAtMTUwLDkgKzE1NSwxOCBAQCBubnBmc19hdHRy Mmlub2RlKGNvbnN0IHN0cnVjdCBubnBmc19hdHRyDQogCXN0cnVjdCB0aW1l c3BlYyBub3RpbWUgPSB7MH07DQogDQogCWlub2RlLT5pX21vZGUgICA9IDA7 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs MTQsMCkNCiAJaW5vZGUtPmlfdWlkICAgID0gMDsNCiAJaW5vZGUtPmlfZ2lk ICAgID0gMDsNCisjZWxzZQ0KKwlpbm9kZS0+aV91aWQgICAgPSBLVUlEVF9J TklUKDApOw0KKwlpbm9kZS0+aV9naWQgICAgPSBLR0lEVF9JTklUKDApOw0K KyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDIsMCkNCiAJaW5vZGUtPmlfbmxpbmsgID0gMTsNCisjZWxzZQ0K KwlzZXRfbmxpbmsoaW5vZGUsIDEpOw0KKyNlbmRpZg0KIAlpbm9kZS0+aV9h dGltZSAgPSBub3RpbWU7DQogCWlub2RlLT5pX210aW1lICA9IG5vdGltZTsN CiAJaW5vZGUtPmlfY3RpbWUgID0gbm90aW1lOw0KQEAgLTE2OSw3ICsxODMs MTEgQEAgbm5wZnNfYXR0cjJpbm9kZShjb25zdCBzdHJ1Y3Qgbm5wZnNfYXR0 cg0KICAgICBpZiAoWEFfVkFMSURfR0lEKGF0dHIpKQ0KIAlpbm9kZS0+aV9n aWQgICAgPSBhdHRyLT54YV9naWQ7DQogICAgIGlmIChYQV9WQUxJRF9OTElO SyhhdHRyKSkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywyLDApDQogCWlub2RlLT5pX25saW5rICA9IGF0dHItPnhhX25s aW5rOw0KKyNlbHNlDQorCXNldF9ubGluayhpbm9kZSwgYXR0ci0+eGFfbmxp bmspOw0KKyNlbmRpZg0KICAgICANCiAgICAgaWYgKFhBX1ZBTElEX1NJWkUo YXR0cikpIHsNCiAJbm5wZnNfc2V0c2l6ZShpbm9kZSwgYXR0ci0+eGFfc2l6 ZSk7DQpAQCAtNTEwLDEyICs1MjgsMjQgQEAgbm5wZnNfaGFzX3BhZyhjb25z dCBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeA0KIGludA0KIG5ucGZzX25vZGVfdXNl cnMoc3RydWN0IGlub2RlICppbm9kZSkNCiB7DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3Qg bGlzdF9oZWFkICpwb3M7DQorI2Vsc2UNCisgICAgc3RydWN0IGhsaXN0X25v ZGUgKnBvczsNCisjZW5kaWYNCiAgICAgaW50IHVzZXJzID0gMDsNCiAgICAg DQogICAgIC8qIFhYWCB0aGlzIHNob3VsZCBwcm9iYWJseSBiZSBwcm90ZWN0 ZWQgc29tZWhvdyAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDYsMCkNCiAgICAgbGlzdF9mb3JfZWFjaChwb3MsICZp bm9kZS0+aV9kZW50cnkpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFj aChwb3MsICZpbm9kZS0+aV9kZW50cnkpIHsNCisjZW5kaWYNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAlz dHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBsaXN0X2VudHJ5KHBvcywgc3RydWN0 IGRlbnRyeSwgZF9hbGlhcyk7DQorI2Vsc2UNCisJc3RydWN0IGRlbnRyeSAq ZGVudHJ5ID0gbGlzdF9lbnRyeShwb3MsIHN0cnVjdCBkZW50cnksIGRfdS5k X2FsaWFzKTsNCisjZW5kaWYNCiAJaWYgKG5ucGZzX2Rjb3VudChkZW50cnkp ID4gMSkNCiAJICAgIHVzZXJzKys7DQogICAgIH0NCmRpZmYgLXVwck4gLVhu b2RpZmYgYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxz LmMgYXJsYS9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy5jDQotLS0gYXJs YS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMJMjAxMC0w OC0wOCAyMjo0MzowNi4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhL25ucGZz L2xpbnV4L25ucGZzX3N5c2NhbGxzLmMJMjAxNi0wMS0xNCAxNzowMDoyMC4w MDAwMDAwMDAgKzAxMDANCkBAIC00Miw3ICs0Miw5IEBADQogI2luY2x1ZGUg PG5ucGZzL25ucGZzX3N5c2NhbGxzLmg+DQogI2luY2x1ZGUgPG5ucGZzL25u cGZzX2NvbW1vbi5oPg0KICNpbmNsdWRlIDxsaW51eC9maWxlLmg+DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkN CiAjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4NCisjZW5kaWYNCiAjaW5j bHVkZSA8bGludXgvc21wLmg+DQogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMu aD4NCiANCkBAIC01MCw2ICs1MiwxMSBAQA0KICNpbmNsdWRlIDxsaW51eC9z ZWN1cml0eS5oPg0KICNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPj0gS0VSTkVMX1ZFUlNJT04oMyw3LDApDQorI3VuZGVmIFNZU0NBTExI QUNLDQorLyogdGhlIG1ldGhvZCB0byByZWFkICdsb3dlcl9ib3VuZCcgZG9l cyBub3Qgd29yayBvbiBrZXJuZWwgMy43IGFuZCBsYXRlciwgc2Ugbm5wZnNf c3lzY2FsbHMtbG9zc2FnZS5jICovDQorI2VuZGlmDQorDQogI2lmIDANCiAj aWZkZWYgQ09ORklHX0NPTVBBVA0KICNpbmNsdWRlIDxsaW51eC9pb2N0bDMy Lmg+DQpAQCAtODIsMTIgKzg5LDIyIEBAIHR5cGVkZWYgc3RydWN0IGFmc3By b2NkYXRhIHsNCiAgICAgdW5zaWduZWQgbG9uZyBzeXNjYWxsOw0KIH0gYWZz cHJvY2RhdGE7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDIsNiwzNikNCiBzdGF0aWMgaW50DQogbm5wZnNfcHJvY2Zz X2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxl LA0KIAkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcp Ow0KKyNlbHNlDQorc3RhdGljIGxvbmcNCitubnBmc19wcm9jZnNfaW9jdGwo c3RydWN0IGZpbGUgKmZpbGUsDQorCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1 bnNpZ25lZCBsb25nIGFyZyk7DQorI2VuZGlmDQogDQogc3RhdGljIHN0cnVj dCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfcHJvY2ZzX2ZvcHMgPSB7DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikN CiAgICAgLmlvY3RsID0gbm5wZnNfcHJvY2ZzX2lvY3RsLA0KKyNlbHNlDQor ICAgIC51bmxvY2tlZF9pb2N0bCA9IG5ucGZzX3Byb2Nmc19pb2N0bCwNCisj ZW5kaWYNCiB9Ow0KIA0KIA0KQEAgLTE2MCw4ICsxNzcsMTAgQEAgbm5wZnNf Z2V0X3BhZ19zZWModm9pZCkNCiANCiAjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgcmV0dXJuIGN1cnJl bnQtPnVpZDsNCi0jZWxzZQ0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAgICAgcmV0dXJuIGN1cnJlbnRf dWlkKCk7DQorI2Vsc2UNCisgICAgeyBrdWlkX3Qga3VpZCA9IGN1cnJlbnRf dWlkKCk7IHJldHVybiBrdWlkLnZhbDsgfQ0KICNlbmRpZg0KIH0NCiANCkBA IC0xOTksNyArMjE4LDEyIEBAIGZpbmRfcGFnKHN0cnVjdCBncm91cF9pbmZv ICpnaSkNCiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJmaW5kX3BhZzogbmdy b3VwcyA9ICVkXG4iLCBnaS0+bmdyb3VwcykpOw0KIA0KICAgICBmb3IgKGkg PSBnaS0+bmdyb3VwcyAtIDE7IGkgPj0gMDsgaS0tKSB7DQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAJZ2lk X3QgZ3JvdXAgPSBHUk9VUF9BVChnaSwgaSk7DQorI2Vsc2UNCisJa2dpZF90 IGtncm91cCA9IEdST1VQX0FUKGdpLCBpKTsNCisJZ2lkX3QgZ3JvdXAgPSBr Z3JvdXAudmFsOw0KKyNlbmRpZg0KIAlpZiAoKG5ucGZzX3BhZ190KWdyb3Vw ID49IE5OUEZTX1BBR19MTElNICYmIChubnBmc19wYWdfdClncm91cCA8IE5O UEZTX1BBR19VTElNKSB7DQogCSAgICBOTlBGU0RFQihYREVCU1lTLA0KIAkJ ICAgICAoImZpbmRfcGFnOiBFeGlzdGluZyBwYWcgJXUgYXQgcG9zICV1XG4i LCBncm91cCwgaSkpOw0KQEAgLTIyMCw3ICsyNDQsMTIgQEAgbm5wZnNfZ2V0 X3BhZ19ncm91cCh2b2lkKQ0KICAgICBubnBmc19wYWdfdCByZXQgPSBjdXJy ZW50LT51aWQ7DQogI2Vsc2UNCiAgICAgc3RydWN0IGdyb3VwX2luZm8gKmdp ID0gZ2V0X2N1cnJlbnRfZ3JvdXBzKCk7DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAgICAgbm5wZnNfcGFn X3QgcmV0ID0gY3VycmVudF91aWQoKTsNCisjZWxzZQ0KKyAgICBrdWlkX3Qg a3VpZCA9IGN1cnJlbnRfdWlkKCk7DQorICAgIG5ucGZzX3BhZ190IHJldCA9 IGt1aWQudmFsOw0KKyNlbmRpZg0KICNlbmRpZg0KICAgICBpbnQgaTsNCiAN CkBAIC0yMzAsNyArMjU5LDExIEBAIG5ucGZzX2dldF9wYWdfZ3JvdXAodm9p ZCkNCiANCiAgICAgaSA9IGZpbmRfcGFnKGdpKTsNCiAgICAgaWYgKGkgIT0g Tk5QRlNfUEFHX05PVEZPVU5EKQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogCXJldCA9IEdST1VQX0FUKGdp LCBpKTsNCisjZWxzZQ0KKwl7IGtnaWRfdCBrZ2lkID0gR1JPVVBfQVQoZ2ks IGkpOyByZXQgPSBrZ2lkLnZhbDsgfQ0KKyNlbmRpZg0KIA0KICAgICBwdXRf Z3JvdXBfaW5mbyhnaSk7DQogDQpAQCAtMjgwLDEwICszMTMsMTcgQEAgc3Rv cmVfcGFnKG5ucGZzX3BhZ190IHBhZ251bSkNCiAJY291bnQgLT0gTkdST1VQ U19QRVJfQkxPQ0s7DQogICAgIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICBpZiAoZm91bmQp DQogCUdST1VQX0FUKG5ld19naSwgaSkgPSBwYWdudW07DQogICAgIGVsc2UN CiAJR1JPVVBfQVQobmV3X2dpLCBuZXdfZ2ktPm5ncm91cHMgLSAxKSA9IHBh Z251bTsNCisjZWxzZQ0KKyAgICBpZiAoZm91bmQpDQorCXsga2dpZF90IGtn aWQgPSBLR0lEVF9JTklUKHBhZ251bSk7IEdST1VQX0FUKG5ld19naSwgaSkg PSBrZ2lkOyB9DQorICAgIGVsc2UNCisJeyBrZ2lkX3Qga2dpZCA9IEtHSURU X0lOSVQocGFnbnVtKTsgR1JPVVBfQVQobmV3X2dpLCBuZXdfZ2ktPm5ncm91 cHMgLSAxKSA9IGtnaWQ7IH0NCisjZW5kaWYNCiAgICAgDQogICAgIHNldF9j dXJyZW50X2dyb3VwcyhuZXdfZ2kpOw0KICAgICBwdXRfZ3JvdXBfaW5mbyhu ZXdfZ2kpOw0KQEAgLTMyNSw4ICszNjUsMTAgQEAgbm5wZnNfZ2V0X3BhZygp DQogDQogI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lP TigyLDYsMjgpDQogICAgIHJldHVybiBjdXJyZW50LT51aWQ7DQotI2Vsc2UN CisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDE0LDApDQogICAgIHJldHVybiBjdXJyZW50X3VpZCgpOw0KKyNlbHNlDQor ICAgIHsga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgpOyByZXR1cm4ga3Vp ZC52YWw7IH0NCiAjZW5kaWYNCiB9DQogDQpAQCAtNDMyLDcgKzQ3NCw3IEBA IG5ucGZzX3NldGdyb3VwczE2IChpbnQgZ2lkc2V0c2l6ZSwgb2xkX2cNCiAj ZW5kaWYgLyogU1lTQ0FMTEhBQ0sgKi8NCiAjZW5kaWYgLyogR1JPVVBQQUdT ICovDQogDQotc3RydWN0IGZpbGVfaGFuZGxlIHsNCitzdHJ1Y3Qgbm5wZnNf ZmlsZV9oYW5kbGUgew0KICAgICBubnBmc19kZXZfdCBkZXY7DQogICAgIGlu b190IGlub2RlOw0KICAgICBfX3UzMiBnZW47DQpAQCAtNTE5LDE0ICs1NjEs MjcgQEAgbm5wZnNfZGVidWdfcHJpbnQgKHN0cnVjdCBhcmxhVmljZUlvY3Rs IA0KICAqIGZvbGxvdyBzeW1saW5rcyBpZmYgYGZvbGxvdycNCiAgKi8NCiAN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx OSwwKQ0KIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCiB1c2VyX3BhdGgyZGVu dHJ5IChzdHJ1Y3QgbmFtZWlkYXRhICpuZCwgY2hhciAqdXNlcl9wYXRoLCBp bnQgZm9sbG93KQ0KKyNlbHNlDQorc3RhdGljIHN0cnVjdCBkZW50cnkgKg0K K3VzZXJfcGF0aDJkZW50cnkgKHN0cnVjdCBwYXRoICpwYXRoLCBjaGFyICp1 c2VyX3BhdGgsIGludCBmb2xsb3cpDQorI2VuZGlmDQogew0KLSAgICBjaGFy ICprbmFtZTsNCiAgICAgaW50IGZsYWdzID0gMDsNCiAgICAgaW50IGVycm9y ID0gMDsNCiANCi0gICAga25hbWUgPSBnZXRuYW1lICh1c2VyX3BhdGgpOw0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDcs MCkNCisgICAgY2hhciAqa25hbWU7DQorICAgIGtuYW1lID0gZ2V0bmFtZSh1 c2VyX3BhdGgpOw0KKyNlbHNlDQorICAgIGNvbnN0IGNoYXIgKmtuYW1lOw0K KyAgICBzdHJ1Y3QgZmlsZW5hbWUgKmZuYW1lOw0KKyAgICBmbmFtZSA9IGdl dG5hbWUodXNlcl9wYXRoKTsNCisgICAga25hbWUgPSBmbmFtZS0+bmFtZTsN CisjZW5kaWYNCisNCiAgICAgaWYgKElTX0VSUihrbmFtZSkpDQogCXJldHVy biBFUlJfUFRSKFBUUl9FUlIoa25hbWUpKTsNCiAgICAgaWYgKGZvbGxvdykN CkBAIC01MzQsMTEgKzU4OSwyNSBAQCB1c2VyX3BhdGgyZGVudHJ5IChzdHJ1 Y3QgbmFtZWlkYXRhICpuZCwgDQogDQogICAgIE5OUEZTREVCKFhERUJNU0cs ICgibm5wZnNfc3lzY2FsbDogbG9va2luZyB1cDogJXNcbiIsIGtuYW1lKSk7 DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDIsNiwzOSkNCiAgICAgZXJyb3IgPSBwYXRoX2xvb2t1cChrbmFtZSwgZmxh Z3MsIG5kKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDE5LDApDQorICAgIGVycm9yID0ga2Vybl9wYXRoKGtuYW1l LCBmbGFncywgJihuZC0+cGF0aCkpOw0KKyNlbHNlDQorICAgIGVycm9yID0g a2Vybl9wYXRoKGtuYW1lLCBmbGFncywgcGF0aCk7DQorI2VuZGlmDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0K ICAgICBwdXRuYW1lKGtuYW1lKTsNCisjZWxzZQ0KKyAgICBrbWVtX2NhY2hl X2ZyZWUobmFtZXNfY2FjaGVwLCAodm9pZCAqKWtuYW1lKTsNCisjZW5kaWYN CiAgICAgaWYgKGVycm9yKQ0KIAlyZXR1cm4gRVJSX1BUUihlcnJvcik7DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks MCkNCiAgICAgcmV0dXJuIG5kLT5wYXRoLmRlbnRyeTsNCisjZWxzZQ0KKyAg ICByZXR1cm4gcGF0aC0+ZGVudHJ5Ow0KKyNlbmRpZg0KIH0NCiANCiBhc21s aW5rYWdlIGxvbmcNCkBAIC01NTMsMTMgKzYyMiwyMSBAQCBzeXNfYWZzX2lu dCAoaW50IG9wZXJhdGlvbiwNCiAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2Vf cGlvY3RsICptc2cgPSBOVUxMOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2Fn ZV93YWtldXAgKm1zZzI7DQogICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeSA9 IE5VTEw7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsMTksMCkNCiAgICAgc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxz ZQ0KKyAgICBzdHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KICAgICANCiAg ICAgbXNnID0ga21hbGxvYyhzaXplb2YoKm1zZyksIEdGUF9LRVJORUwpOw0K ICAgICBpZiAobXNnID09IE5VTEwpDQogICAgICAgcmV0dXJuIC1FTk9NRU07 DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDIsNiwzOSkNCiAgICAgbG9ja19rZXJuZWwoKTsNCisjZWxzZQ0KKyAgICAv KiBUT0RPOiBsb2NrX2tlcm5lbCgpIGlzIHJlbW92ZWQsIGNvbnNpZGVyIGFk ZGluZyBhbiBwcml2YXRlIGxvY2sgKi8NCisjZW5kaWYNCiANCiAgICAgTk5Q RlNERUIoWERFQlNZUywgKCJzeXNfYWZzIGtlcm5lbCBsb2NrZWRcbiIpKTsN CiANCkBAIC01OTcsNyArNjc0LDExIEBAIHN5c19hZnNfaW50IChpbnQgb3Bl cmF0aW9uLA0KIAkgICAgfQ0KIAl9DQogCWlmIChhX3BhdGhQICE9IE5VTEwp IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o MywxOSwwKQ0KIAkgICAgZGVudHJ5ID0gdXNlcl9wYXRoMmRlbnRyeSAoJm5k LCBhX3BhdGhQLCBhX2ZvbGxvd1N5bWxpbmtzKTsNCisjZWxzZQ0KKwkgICAg ZGVudHJ5ID0gdXNlcl9wYXRoMmRlbnRyeSAoJnBhdGgsIGFfcGF0aFAsIGFf Zm9sbG93U3ltbGlua3MpOw0KKyNlbmRpZg0KIAkgICAgaWYgKCFkZW50cnkp IHsNCiAJCWVycm9yID0gLUVJTlZBTDsNCiAJCWdvdG8gdW5sb2NrOw0KQEAg LTY5MywxMyArNzc0LDIxIEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9u LA0KICAgICANCiAgdW5sb2NrOg0KICAgICBpZiAoZGVudHJ5KQ0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog CXBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0KKwlwYXRoX3B1dCgmcGF0 aCk7DQorI2VuZGlmDQogDQogICAgIE5OUEZTREVCKFhERUJTWVMsICgibm5w ZnNfc3lzY2FsbCByZXR1cm5zIGVycm9yOiAlbGRcbiIsIGVycm9yKSk7DQog DQogICAgIE5OUEZTREVCKFhERUJTWVMsICgic3lzX2FmcyBrZXJuZWwgdW5s b2NrXG4iKSk7DQogICAgIGtmcmVlKG1zZyk7DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAgdW5sb2Nr X2tlcm5lbCgpOw0KKyNlbHNlDQorICAgIC8qIFRPRE86IHNlZSB0aGUgY29t bWVudCBhdCBsb2NrX2tlcm5lbCgpIGFib3ZlICovDQorI2VuZGlmDQogDQog ICAgIHJldHVybiBlcnJvcjsNCiB9DQpAQCAtNzQ4LDkgKzgzNywxNSBAQCBz eXNfYWZzIChpbnQgb3BlcmF0aW9uLA0KIAkJICAgICAgIGFfZm9sbG93U3lt bGlua3MpOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMiw2LDM2KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19wcm9j ZnNfaW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZp bGUsDQogCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFy ZykNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfcHJvY2ZzX2lvY3Rs KHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWduZWQgaW50IGNtZCwg dW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQogew0KICAgICBhZnNwcm9j ZGF0YSBhcmdzOw0KICAgICBsb25nIHJldDsNCkBAIC04MDcsNyArOTAyLDEx IEBAIHN0YXRpYyBpbnQgbm5wZnNfaW5pdF9wcm9jZnModm9pZCkNCiAgICAg bm5wZnNfcHJvY2ZzX2Rpci0+b3duZXIgPSBUSElTX01PRFVMRTsNCiAjZW5k aWYNCiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMTAsMCkNCiAgICAgZW50cnkgPSBjcmVhdGVfcHJvY19lbnRy eShOTlBGU19QUk9DX05PREUsIDA2NjYsIG5ucGZzX3Byb2Nmc19kaXIpOw0K KyNlbHNlDQorICAgIGVudHJ5ID0gcHJvY19jcmVhdGUoTk5QRlNfUFJPQ19O T0RFLCAwNjY2LCBOVUxMLCAmbm5wZnNfcHJvY2ZzX2ZvcHMpOw0KKyNlbmRp Zg0KICAgICBpZiAoZW50cnkgPT0gTlVMTCkgew0KIAlOTlBGU0RFQihYREVC U1lTLCAoIm5ucGZzX2luaXRfcHJvY2ZzOiBubyBub2RlXG4iKSk7DQogCXJl bW92ZV9wcm9jX2VudHJ5KCJmcy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsN CkBAIC04MTcsNyArOTE2LDkgQEAgc3RhdGljIGludCBubnBmc19pbml0X3By b2Nmcyh2b2lkKQ0KICNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigyLDYsMzApDQogICAgIGVudHJ5LT5vd25lciA9IFRISVNfTU9E VUxFOw0KICNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDEwLDApDQogICAgIGVudHJ5LT5wcm9jX2ZvcHMgPSAm bm5wZnNfcHJvY2ZzX2ZvcHM7DQorI2VuZGlmDQogDQogI2lmZGVmIFNZU0NB TExDT01QQVQNCiAgICAgaWYgKHJlZ2lzdGVyX2lvY3RsMzJfY29udmVyc2lv bihBUkxBX1ZJT0NfU1lTQ0FMTDMyLCBubnBmc19wcm9jZnNfaW9jdGwzMikp IHsNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS1jdnMtb2xkL25ucGZzL2xp bnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyBhcmxhL25ucGZzL2xpbnV4 L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYw0KLS0tIGFybGEtY3ZzLW9sZC9u bnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMJMjAxMC0wOC0w OCAyMjo0MzowNS4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhL25ucGZzL2xp bnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYwkyMDE2LTAxLTEzIDIxOjUx OjQ5LjAwMDAwMDAwMCArMDEwMA0KQEAgLTUwLDggKzUwLDE3IEBADQogUkNT SUQoIiRJZDogbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jLHYgMS4xOSAyMDEw LzA4LzA4IDIwOjQzOjA1IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMyw3LDAp DQorLyogdGhlIG1ldGhvZCB0byByZWFkICdsb3dlcl9ib3VuZCcgZG9lcyBu b3Qgd29yayBvbiBrZXJuZWwgMy43IGFuZCBsYXRlciAqLw0KKyN1bmRlZiBT WVNDQUxMSEFDSw0KKyNlbmRpZg0KKw0KICNpbmNsdWRlIDxsaW51eC9rYWxs c3ltcy5oPg0KKyNpZmRlZiBTWVNDQUxMSEFDSw0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDcsMCkNCiBzdGF0aWMgdm9p ZCAqbG93ZXJfYm91bmQgPSAma2VybmVsX3RocmVhZDsNCisjZW5kaWYNCisj ZW5kaWYNCiANCiB2b2lkICogX19hdHRyaWJ1dGVfXygod2VhaykpIHN5c19j YWxsX3RhYmxlKHZvaWQpOw0KIG5ucGZzX3N5c19jYWxsX2Z1bmN0aW9uICpu bnBmc19zeXNfY2FsbF90YWJsZSA9DQpAQCAtNjYsNiArNzUsOCBAQCBjb25z dCBjaGFyICogX19hdHRyaWJ1dGVfXygod2VhaykpDQogI2lmZGVmIF9feDg2 XzY0X18NCiBleHRlcm4gcndsb2NrX3QgdGFza2xpc3RfbG9jayBfX2F0dHJp YnV0ZV9fKCh3ZWFrKSk7DQogI2VuZGlmDQorDQorI2lmZGVmIFNZU0NBTExI QUNLDQogc3RhdGljIHZvaWQgKioNCiBnZXRfc3RhcnRfYWRkcih2b2lkKSB7 DQogI2lmZGVmIF9feDg2XzY0X18NCkBAIC03NCw2ICs4NSw3IEBAIGdldF9z dGFydF9hZGRyKHZvaWQpIHsNCiAgICAgcmV0dXJuICh2b2lkICoqKSZtdXRl eF9sb2NrOw0KICNlbmRpZg0KIH0NCisjZW5kaWYNCiANCiBzdGF0aWMgaW5s aW5lIGludCANCiBrYWxsc3ltX2lzX2VxdWFsKHVuc2lnbmVkIGxvbmcgYWRk ciwgY29uc3QgY2hhciAqbmFtZSkNCkBAIC0xNDIsNiArMTU0LDggQEAgdmVy aWZ5KHZvaWQgKipwKSB7DQogICAgIHJldHVybiAxOw0KIH0NCiANCisjaWZk ZWYgU1lTQ0FMTEhBQ0sNCisNCiBzdGF0aWMgaW5saW5lIGludCBsb29rc19n b29kKHZvaWQgKipwKQ0KIHsNCiAgICAgaWYgKCpwIDw9ICh2b2lkKilsb3dl cl9ib3VuZCB8fCAqcCA+PSAodm9pZCopcCkNCkBAIC0xOTEsMyArMjA1LDUg QEAgbm5wZnNfZml4dXBfc3lzY2FsbF9sb3NzYWdlKHZvaWQpDQogDQogICAg IHJldHVybiAwOw0KIH0NCisNCisjZW5kaWYNCmRpZmYgLXVwck4gLVhub2Rp ZmYgYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jIGFy bGEvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMNCi0tLSBhcmxhLWN2cy1v bGQvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMJMjAxMC0wOC0wOCAyMjo0 MzowNi4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhL25ucGZzL2xpbnV4L25u cGZzX3Zmc29wcy5jCTIwMTYtMDEtMTQgMTc6MTM6MTguMDAwMDAwMDAwICsw MTAwDQpAQCAtNTAsNyArNTAsOSBAQCBSQ1NJRCgiJElkOiBubnBmc192ZnNv cHMuYyx2IDEuMTExIDIwMTAvDQogc3RydWN0IG5ucGZzIG5ucGZzW05OTlBG U107DQogDQogc3RhdGljIHZvaWQgbm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBz dXBlcl9ibG9jayAqc2IpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgdm9pZCBubnBmc193cml0 ZV9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzYik7DQorI2VuZGlmDQog DQogc3RhdGljIGludCBubnBmc19zdGF0ZnMoc3RydWN0IGRlbnRyeSAqZGVu dHJ5LCBzdHJ1Y3Qga3N0YXRmcyAqYnVmKTsNCiANCkBAIC01OSw3ICs2MSw5 IEBAIHN0YXRpYyBzdHJ1Y3Qgc3VwZXJfb3BlcmF0aW9ucyBubnBmc19zb3AN CiAgICAgZGVzdHJveV9pbm9kZQk6IG5ucGZzX25vZGVfZnJlZSwNCiAgICAg ZHJvcF9pbm9kZQkJOiBnZW5lcmljX2RlbGV0ZV9pbm9kZSwNCiAgICAgcHV0 X3N1cGVyCQk6IG5ucGZzX3B1dF9zdXBlciwNCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHdyaXRlX3N1 cGVyCQk6IG5ucGZzX3dyaXRlX3N1cGVyLA0KKyNlbmRpZg0KICAgICBzdGF0 ZnMJCTogbm5wZnNfc3RhdGZzLA0KIH07DQogDQpAQCAtODYsNyArOTAsMTEg QEAgbm5wZnNfZmV0Y2hfcm9vdChzdHJ1Y3QgaW5vZGUgKmkpDQogCSAqIHJv b3QncyBwcml2aWxpZ2VzICh1c3VhbGx5IG5vbmUsIGFuZCBub25lIGlzIG5l ZWRlZCkuDQogCSAqLw0KIAkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KIAltc2cuY3JlZC51aWQgPSAwOw0K KyNlbHNlDQorCW1zZy5jcmVkLnVpZCA9IEtVSURUX0lOSVQoMCk7DQorI2Vu ZGlmDQogCW1zZy5jcmVkLnBhZyA9IDA7DQogCQ0KIAllcnJvciA9IG5ucGZz X21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cp KTsNCkBAIC0xMjEsOCArMTI5LDEzIEBAIG1ha2Vfcm9vdF9pbm9kZShzdHJ1 Y3Qgbm5wZnMgKm5ucGZzcCkNCiAgICAgWEFfU0VUX01PREUoJm5vZGUuYXR0 ciwgU19JRkRJUiB8IDA3NzcpOw0KICAgICBYQV9TRVRfTkxJTksoJm5vZGUu YXR0ciwgMTAwKTsNCiAgICAgWEFfU0VUX1NJWkUoJm5vZGUuYXR0ciwgMCk7 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs MTQsMCkNCiAgICAgWEFfU0VUX1VJRCgmbm9kZS5hdHRyLCAwKTsNCiAgICAg WEFfU0VUX0dJRCgmbm9kZS5hdHRyLCAwKTsNCisjZWxzZQ0KKyAgICBYQV9T RVRfVUlEKCZub2RlLmF0dHIsIEtVSURUX0lOSVQoMCkpOw0KKyAgICBYQV9T RVRfR0lEKCZub2RlLmF0dHIsIEtHSURUX0lOSVQoMCkpOw0KKyNlbmRpZg0K ICAgICBYQV9TRVRfQVRJTUUoJm5vZGUuYXR0ciwgMCk7DQogICAgIFhBX1NF VF9NVElNRSgmbm9kZS5hdHRyLCAwKTsNCiAgICAgWEFfU0VUX0NUSU1FKCZu b2RlLmF0dHIsIDApOw0KQEAgLTE1MSw3ICsxNjQsMTEgQEAgbWFrZV9yb290 IChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KICAgICBubnBmcy0+cm9vdCA9 IGlub2RlOw0KIA0KICAgICAvKiBYWFggZXJyb3IgaGFuZGxpbmcgKi8NCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw0LDAp DQogICAgIGRwID0gZF9hbGxvY19yb290KGlub2RlKTsNCisjZWxzZQ0KKyAg ICBkcCA9IGRfbWFrZV9yb290KGlub2RlKTsNCisjZW5kaWYNCiAgICAgbm5w ZnNfZF9pbml0KGRwKTsNCiAgICAgc2ItPnNfcm9vdCA9IGRwOw0KICAgICBy ZXR1cm4gMDsNCkBAIC0xNzUsMTMgKzE5MiwyNyBAQCBubnBmc19yZWFkX3N1 cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzDQogICAgIE5OUEZTREVCKFhE RUJWRk9QUywgKCJubnBmc19yZWFkX3N1cGVyOiBiZWdpbiBzZXR0aW5nIHZh cmlhYmxlc1xuIikpOw0KIA0KICAgICBpZiAoZGF0YSAhPSBOVUxMKSB7DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks MCkNCiAJc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKwlzdHJ1Y3Qg cGF0aCBwYXRoOw0KKyNlbmRpZg0KIAkNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KIAllcnJvciA9IHBhdGhf bG9va3VwKGRhdGEsIDAsICZuZCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwllcnJvciA9IGtlcm5f cGF0aChkYXRhLCAwLCAmbmQucGF0aCk7DQorI2Vsc2UNCisJZXJyb3IgPSBr ZXJuX3BhdGgoZGF0YSwgMCwgJnBhdGgpOw0KKyNlbmRpZg0KIAlpZiAoZXJy b3IpDQogCSAgICBkZGV2ID0gRVJSX1BUUihlcnJvcik7DQogCWVsc2UNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww KQ0KIAkgICAgZGRldiA9IG5kLnBhdGguZGVudHJ5Ow0KKyNlbHNlDQorCSAg ICBkZGV2ID0gcGF0aC5kZW50cnk7DQorI2VuZGlmDQogDQogCWlmICghSVNf RVJSKGRkZXYpKSB7DQogCSAgICBtaW5vcmRldmljZSA9IE1JTk9SKGRkZXYt PmRfaW5vZGUtPmlfcmRldik7DQpAQCAtMjI1LDYgKzI1Niw3IEBAIG5ucGZz X2ZpbGxfc3VwZXIgKHN0cnVjdCBzdXBlcl9ibG9jayAqc2INCiAgICAgcmV0 dXJuIDA7DQogfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLDYsMzkpDQogaW50DQogbm5wZnNfZ2V0X3NiKHN0cnVj dCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBlLA0KIAkgICAgIGludCBmbGFn cywgY29uc3QgY2hhciAqZGV2X25hbWUsDQpAQCAtMjMyLDEyICsyNjQsMjMg QEAgbm5wZnNfZ2V0X3NiKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmcw0K IHsNCiAgICAgcmV0dXJuIGdldF9zYl9ub2Rldihmc190eXBlLCBmbGFncywg ZGF0YSwgbm5wZnNfZmlsbF9zdXBlciwgbW50KTsNCiB9DQorI2Vsc2UNCitz dHJ1Y3QgZGVudHJ5Kg0KK25ucGZzX21vdW50KHN0cnVjdCBmaWxlX3N5c3Rl bV90eXBlICpmc190eXBlLA0KKwkgICAgIGludCBmbGFncywgY29uc3QgY2hh ciAqZGV2X25hbWUsDQorCSAgICAgdm9pZCAqZGF0YSkgDQorew0KKyAgICBy ZXR1cm4gbW91bnRfbm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5ucGZz X2ZpbGxfc3VwZXIpOw0KK30NCisjZW5kaWYNCiANCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogc3RhdGljIHZv aWQNCiBubnBmc193cml0ZV9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiBz YikNCiB7DQogICAgIHNiLT5zX2RpcnQgPSAwOw0KIH0NCisjZW5kaWYNCiAN CiAvKg0KICAqIFhYWCBpcyB0aGlzIGdvb2Q/IA0K ---276651502-360532137-1453833425=:11904 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-360532137-1453833425=:11904--