Re: PATCH v13: Arla CVS Current on Linux 2.6.3x to 4.5
Bo Branten <[email protected]> Fri, 6 May 2016 18:13:03 +0200 (CEST)
| 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-1011312321-1462551183=:25480 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII PATCH v13: Arla CVS Current on Linux 2.6.3x to 4.5 Fix for Linux kernel v4.5. Bo Branten ---276651502-1011312321-1462551183=:25480 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v13-arla-cvs-for-linux-2.6.3x-to-4.5 Content-Transfer-Encoding: BASE64 Content-ID: <[email protected]> Content-Description: Content-Disposition: attachment; filename=patch-v13-arla-cvs-for-linux-2.6.3x-to-4.5 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 LTAyLTIwIDE5OjQ0OjM5LjAwMDAwMDAwMCArMDEwMA0KQEAgLTQzLDYgKzQz LDExIEBADQogI2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+DQogI2luY2x1ZGUg PGxpbnV4L21tLmg+DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL RVJORUxfVkVSU0lPTigzLDEyLDApDQorZXh0ZXJuIGludCB2ZnNfcGF0aF9s b29rdXAoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgdmZzbW91bnQgKiwNCisJ CQkgICBjb25zdCBjaGFyICosIHVuc2lnbmVkIGludCwgc3RydWN0IHBhdGgg Kik7DQorI2VuZGlmDQorDQogLyoNCiAgKiByZXR1cm4gdHJ1ZSBpZiBibG9j ayBpcyBpbiBjYWNoZQ0KICAqLw0KQEAgLTI5MCw3ICsyOTUsMTMgQEAgbm5w ZnNfYmxvY2tfZXh0ZW5kKHN0cnVjdCBubnBmc19ub2RlICpubw0KICAgICBi YWNrbm9kZSA9IGJhY2tmaWxlLT5mX21hcHBpbmctPmhvc3Q7DQogDQogICAg IG11dGV4X2xvY2soJmJhY2tub2RlLT5pX211dGV4KTsNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw4LDApDQogICAgIHJl dCA9IHZtdHJ1bmNhdGUoYmFja25vZGUsIG5ucGZzX2Jsb2Nrc2l6ZSk7DQor I2Vsc2UNCisgICAgcmV0ID0gaW5vZGVfbmV3c2l6ZV9vayhiYWNrbm9kZSwg bm5wZnNfYmxvY2tzaXplKTsNCisgICAgaWYoIXJldCkNCisgICAgICAgIHRy dW5jYXRlX3NldHNpemUoYmFja25vZGUsIG5ucGZzX2Jsb2Nrc2l6ZSk7DQor I2VuZGlmDQogICAgIG11dGV4X3VubG9jaygmYmFja25vZGUtPmlfbXV0ZXgp Ow0KICAgICANCiAgICAgZmlscF9jbG9zZShiYWNrZmlsZSwgTlVMTCk7DQpA QCAtMzEzLDE5ICszMjQsMjcgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qg bm5wZnNfbm9kZSAqbm9kZQ0KIAkJIHN0cnVjdCBmaWxlICoqZmlsZSkNCiB7 DQogICAgIGNoYXIgY2FjaGVuYW1lW05OUEZTX0NBQ0hFX1BBVEhfU0laRV07 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigz LDEsMCkNCisgICAgY2hhciBmdWxsX2NhY2hlbmFtZVtOTlBGU19DQUNIRV9Q QVRIX1NJWkVdOw0KKyNlbmRpZg0KICAgICB1aW50NjRfdCBibG9ja2luZGV4 ID0gbm5wZnNfYmxvY2tfaW5kZXgob2Zmc2V0KTsNCiAgICAgdWludDMyX3Qg aWQgPSBub2RlLT5pbmRleDsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3Ag PSBOTlBGU19GUk9NX1hOT0RFKG5vZGUpOw0KICAgICBzdHJ1Y3QgaW5vZGUg Kmlub2RlID0gWE5PREVfVE9fVk5PREUobm9kZSk7DQogICAgIGludCBmbGFn cyA9IE9fTEFSR0VGSUxFIHwgZmxhZzsNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3QgbmFt ZWlkYXRhIG5kOw0KKyNlbHNlDQorICAgIHN0cnVjdCBwYXRoIHBhdGg7DQor I2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDIsNiwyOSkNCiAgICAgdWlkX3Qgc2F2ZXVpZDsNCiAgICAgZ2lkX3Qg c2F2ZWdpZDsNCi0gICAgaW50IHJldDsNCi0jaWYgTElOVVhfVkVSU0lPTl9D T0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOSkNCisjZWxzZQ0KICAgICBj b25zdCBzdHJ1Y3QgY3JlZCAqb2xkX2NyZWQ7DQogICAgIHN0cnVjdCBjcmVk ICpvdmVycmlkZV9jcmVkOw0KICNlbmRpZg0KKyAgICBpbnQgcmV0Ow0KIA0K ICAgICBCVUdfT04oIW5ucGZzcCk7DQogICAgIEJVR19PTihmbGFncyAmIE9f Q1JFQVQgJiYgZmlsZSAhPSBOVUxMKTsNCkBAIC0zMzQsMTIgKzM1MywyMiBA QCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQog CXJldCA9IHNucHJpbnRmKGNhY2hlbmFtZSwgc2l6ZW9mKGNhY2hlbmFtZSks DQogCQkgICAgICAgTk5QRlNfQ0FDSEVfRElSX1BBVEgsDQogCQkgICAgICAg aWQgLyAweDEwMCwgaWQgJSAweDEwMCk7DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEsMCkNCisJcmV0ID0gc25wcmlu dGYoZnVsbF9jYWNoZW5hbWUsIHNpemVvZihjYWNoZW5hbWUpLA0KKwkJICAg ICAgICIvdXNyL2FybGEvY2FjaGUvIiBOTlBGU19DQUNIRV9ESVJfUEFUSCwN CisJCSAgICAgICBpZCAvIDB4MTAwLCBpZCAlIDB4MTAwKTsNCisjZW5kaWYN CiAgICAgfSBlbHNlIHsNCiAJcmV0ID0gc25wcmludGYoY2FjaGVuYW1lLCBz aXplb2YoY2FjaGVuYW1lKSwNCiAJCSAgICAgICBOTlBGU19DQUNIRV9GSUxF X1BBVEgsDQogCQkgICAgICAgaWQgLyAweDEwMCwgaWQgJSAweDEwMCwNCiAJ CSAgICAgICAodW5zaWduZWQgbG9uZyBsb25nKWJsb2NraW5kZXgpOw0KLQ0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywx LDApDQorCXJldCA9IHNucHJpbnRmKGZ1bGxfY2FjaGVuYW1lLCBzaXplb2Yo Y2FjaGVuYW1lKSwNCisJCSAgICAgICAiL3Vzci9hcmxhL2NhY2hlLyIgTk5Q RlNfQ0FDSEVfRklMRV9QQVRILA0KKwkJICAgICAgIGlkIC8gMHgxMDAsIGlk ICUgMHgxMDAsDQorCQkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylibG9j a2luZGV4KTsNCisjZW5kaWYNCiAJaWYgKCFubnBmc19ibG9ja19oYXZlX3Ao bm9kZSwgb2Zmc2V0KSAmJiAoZmxhZ3MgJiBPX0NSRUFUKSA9PSAwKSB7DQog CSAgICBwcmludGsoS0VSTl9FTUVSRyAicmVhZGluZyBibG9jayAlczogbm90 IHRoZXJlXG4iLCBjYWNoZW5hbWUpOw0KIAkgICAgQlVHKCk7DQpAQCAtMzUw LDE0ICszNzksMTIgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNf bm9kZSAqbm9kZQ0KICAgICBCVUdfT04oIW5ucGZzcC0+Y2FjaGVkaXIgfHwg IW5ucGZzcC0+Y2FjaGVyb290KTsNCiAgICAgDQogICAgIC8qIHVzZSB0aGUg bmZzZCB0cmljayB0byBnaXZlIHVzIGFjY2VzcyAqLw0KLSNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjkpDQog ICAgIHNhdmV1aWQgPSBjdXJyZW50LT5mc3VpZDsNCiAgICAgc2F2ZWdpZCA9 IGN1cnJlbnQtPmZzZ2lkOw0KICAgICBjdXJyZW50LT5mc3VpZCA9IG5ucGZz cC0+dWlkOw0KICAgICBjdXJyZW50LT5mc2dpZCA9IG5ucGZzcC0+Z2lkOw0K ICNlbHNlDQotICAgIHNhdmV1aWQgPSBjdXJyZW50X2ZzdWlkKCk7DQotICAg IHNhdmVnaWQgPSBjdXJyZW50X2ZzZ2lkKCk7DQogICAgIG92ZXJyaWRlX2Ny ZWQgPSBwcmVwYXJlX2NyZWRzKCk7DQogICAgIGlmIChvdmVycmlkZV9jcmVk ID09IE5VTEwpDQogICAgICAgICByZXR1cm4gLUVOT01FTTsNCkBAIC0zNjYs MTEgKzM5MywyMyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19u b2RlICpub2RlDQogICAgIG9sZF9jcmVkID0gb3ZlcnJpZGVfY3JlZHMob3Zl cnJpZGVfY3JlZCk7DQogI2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KICAgICByZXQgPSB2ZnNf cGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJv b3QsDQogCQkJICBjYWNoZW5hbWUsDQogCQkJICBmbGFncyAmIE9fQ1JFQVQg PyBMT09LVVBfUEFSRU5UIDogMCwNCiAJCQkgICZuZCk7DQorI2VsaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAg ICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5w ZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsIDAsICZuZC5wYXRo KTsNCisjZWxzZQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNw LT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5h bWUsIDAsICZwYXRoKTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxLDApDQogICAgIGlmIChyZXQpIHsN CisjZWxzZQ0KKyAgICBpZiAocmV0ICYmICEoZmxhZ3MgJiBPX0NSRUFUKSkg ew0KKyNlbmRpZg0KIAl1aW50MzJfdCBubWFza3MgPSBub2RlLT5kYXRhLm5t YXNrczsNCiAJdWludDMyX3QgbWFzazsNCiANCkBAIC0zOTYsMTcgKzQzNSwz NyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2Rl DQogICAgIA0KICAgICBpZiAoZmxhZ3MgJiBPX0NSRUFUKSB7DQogCS8qIFhY WCBtb2RlIGJpdHMgb24gY3JlYXRlIC0tIFNfSVJVU1J8U19JV1VTUiAqLw0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEs MCkNCiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbG9va3VwX2NyZWF0ZSgm bmQsIDApOwkNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDE5LDApDQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGtl cm5fcGF0aF9jcmVhdGUoQVRfRkRDV0QsIGZ1bGxfY2FjaGVuYW1lLCAmbmQu cGF0aCwgMCk7CQ0KKyNlbHNlDQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9 IGtlcm5fcGF0aF9jcmVhdGUoQVRfRkRDV0QsIGZ1bGxfY2FjaGVuYW1lLCAm cGF0aCwgMCk7CQ0KKyNlbmRpZg0KIAlpZiAoSVNfRVJSKGRlbnRyeSkpIHsN CiAJICAgIHJldCA9IFBUUl9FUlIoZGVudHJ5KTsNCiAJfSBlbHNlIHsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDAp DQogCSAgICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5kX2lu b2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwgJm5kKTsNCisjZWxpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQor CSAgICAvKiBYWFggc2hvdWxkIHRoZSBsYXN0IGFyZ3VtZW50IHRvIHZmc19j cmVhdGU6IGJvb2wgd2FudF9leGNsLCBiZSAwIG9yIDE/ICovDQorCSAgICBy ZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5kX2lub2RlLCBkZW50 cnksIFNfSVJVU1J8U19JV1VTUiwgMCk7DQorI2Vsc2UNCisJICAgIC8qIFhY WCBzaG91bGQgdGhlIGxhc3QgYXJndW1lbnQgdG8gdmZzX2NyZWF0ZTogYm9v bCB3YW50X2V4Y2wsIGJlIDAgb3IgMT8gKi8NCisJICAgIHJldCA9IHZmc19j cmVhdGUocGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVTUnxT X0lXVVNSLCAwKTsNCisjZW5kaWYNCisNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogCSAgICBkcHV0KGRlbnRy eSk7DQorCSAgICBtdXRleF91bmxvY2soJm5kLnBhdGguZGVudHJ5LT5kX2lu b2RlLT5pX211dGV4KTsNCisJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsNCisj ZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5 LDApDQorCSAgICBkb25lX3BhdGhfY3JlYXRlKCZuZC5wYXRoLCBkZW50cnkp Ow0KKyNlbHNlDQorCSAgICBkb25lX3BhdGhfY3JlYXRlKCZwYXRoLCBkZW50 cnkpOw0KKyNlbmRpZg0KIAl9DQogDQotCW11dGV4X3VubG9jaygmbmQucGF0 aC5kZW50cnktPmRfaW5vZGUtPmlfbXV0ZXgpOw0KLQlwYXRoX3B1dCgmbmQu cGF0aCk7DQotDQogCWlmIChyZXQpIHsNCiAJICAgIHByaW50aygibm5wZnNf YmxvY2tfb3BlbiglcykgY3JlYXRlIGZhaWxlZDogJWRcbiIsIGNhY2hlbmFt ZSwgLXJldCk7DQogCSAgICBubnBmc19kZWJ1Z19vb3BzKCk7DQpAQCAtNDIx LDE0ICs0ODAsMjIgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNf bm9kZSAqbm9kZQ0KICAgICB9IGVsc2Ugew0KICNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjkpDQogCXN0cnVjdCBmaWxl ICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgubW50 LCBmbGFncyk7DQotI2Vsc2UNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgICAgIHN0cnVjdCBmaWxl ICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgubW50 LCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbGlmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgICAgIHN0 cnVjdCBmaWxlICpmID0gZGVudHJ5X29wZW4oJm5kLnBhdGgsIGZsYWdzLCBj dXJyZW50X2NyZWQoKSk7DQorI2Vsc2UNCisgICAgICAgIHN0cnVjdCBmaWxl ICpmID0gZGVudHJ5X29wZW4oJnBhdGgsIGZsYWdzLCBjdXJyZW50X2NyZWQo KSk7DQogI2VuZGlmDQogCWlmIChJU19FUlIoZikpIHsNCiAJICAgIHJldCA9 IFBUUl9FUlIoZik7DQogCSAgICBwcmludGsoIm5ucGZzX2Jsb2NrX29wZW4o JXMpIG9wZW4gZmFpbGVkOiAlZFxuIiwgY2FjaGVuYW1lLCAtcmV0KTsNCiAJ ICAgIG5ucGZzX2RlYnVnX29vcHMoKTsNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAkgICAgcGF0aF9wdXQo Jm5kLnBhdGgpOw0KKyNlbHNlDQorCSAgICBwYXRoX3B1dCgmcGF0aCk7DQor I2VuZGlmDQogCX0gZWxzZSB7DQogCSAgICAqZmlsZSA9IGY7DQogCX0NCkBA IC00MzcsNyArNTA0LDcgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5w ZnNfbm9kZSAqbm9kZQ0KICAgICAvKiBwYXRoX3JlbGVhc2UoKSBpcyB1c3Vh bGx5IGhhbmRsZWQgb24gY2xvc2UgKi8NCiANCiAgb3V0Og0KLSNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjkp DQogICAgIGN1cnJlbnQtPmZzdWlkID0gc2F2ZXVpZDsNCiAgICAgY3VycmVu dC0+ZnNnaWQgPSBzYXZlZ2lkOw0KICNlbHNlDQpkaWZmIC11cHJOIC1Ybm9k aWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYyBh cmxhL25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5jDQotLS0gYXJsYS1jdnMt b2xkL25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5jCTIwMDYtMTItMTEgMTc6 MzE6NDYuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS9ubnBmcy9saW51eC9u bnBmc19jb21tb24uYwkyMDE2LTAxLTE0IDE2OjE1OjAwLjAwMDAwMDAwMCAr MDEwMA0KQEAgLTExMiwxMCArMTEyLDE1IEBAIG5ucGZzX3ByaW50X2FsaWFz ZXMoY29uc3Qgc3RydWN0IGlub2RlICoNCiB2b2lkDQogbm5wZnNfcHJpbnRf YWxpYXNlc19yZWFsKGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUpDQogew0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs MCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxpYXM7DQorI2VsaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAg IHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisjZW5kaWYNCiAgICAgc3Ry dWN0IGRlbnRyeSAqZGVudHJ5Ow0KICAgICBpbnQgYmFpbG91dCA9IDEwMDsN CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Myw2LDApDQogICAgIGFsaWFzID0gaW5vZGUtPmlfZGVudHJ5Lm5leHQ7DQog ICAgIHdoaWxlIChhbGlhcyAhPSAmaW5vZGUtPmlfZGVudHJ5KSB7DQogCWlm ICgtLWJhaWxvdXQgPCAwKSB7DQpAQCAtMTMxLDYgKzEzNiwyNiBAQCBubnBm c19wcmludF9hbGlhc2VzX3JlYWwoY29uc3Qgc3RydWN0IGluDQogCX0NCiAJ YWxpYXMgPSBhbGlhcy0+bmV4dDsNCiAgICAgfQ0KKyNlbHNlDQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAg ICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksIGFsaWFzLCAmaW5vZGUt PmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlzdF9mb3Jf ZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMp IHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnks ICZpbm9kZS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2VuZGlmDQor CWlmICgtLWJhaWxvdXQgPCAwKSB7DQorCSAgICBwcmludGsoIiAuLi4iKTsN CisJICAgIGJyZWFrOw0KKwl9DQorCWlmIChkZW50cnkpIHsNCisJICAgIHBy aW50aygiICUuKnMoJXApIiwgKGludClkZW50cnktPmRfbmFtZS5sZW4sDQor CQkgICBkZW50cnktPmRfbmFtZS5uYW1lLCBkZW50cnkpOw0KKwkgICAgaWYg KG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoJmRlbnRyeS0+ZF9oYXNoKSkNCisJ CXByaW50aygiKHVuaGFzaGVkKSIpOw0KKwl9DQorICAgIH0NCisjZW5kaWYN CiAgICAgcHJpbnRrKCJcbiIpOw0KIH0NCiANCkBAIC0xNDYsNyArMTcxLDEx IEBAIG5ucGZzX3ByaW50X2NoaWxkcmVuKGNvbnN0IHN0cnVjdCBkZW50cnkN CiANCiAgICAgd2hpbGUgKHN1YmRpcnMgIT0gJmRlbnRyeS0+ZF9zdWJkaXJz KSB7DQogCXN0cnVjdCBsaXN0X2hlYWQgKnRtcCA9IHN1YmRpcnM7DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkN CiAJc3RydWN0IGRlbnRyeSAqY2hpbGQgPSBsaXN0X2VudHJ5KHRtcCwgc3Ry dWN0IGRlbnRyeSwgZF91LmRfY2hpbGQpOw0KKyNlbHNlDQorCXN0cnVjdCBk ZW50cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnks IGRfY2hpbGQpOw0KKyNlbmRpZg0KIA0KIAlwcmludGsoIiAlLipzKCVwKSIs IChpbnQpY2hpbGQtPmRfbmFtZS5sZW4sDQogCSAgICAgICBjaGlsZC0+ZF9u YW1lLm5hbWUsIGNoaWxkKTsNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS1j dnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jIGFybGEvbm5wZnMvbGlu dXgvbm5wZnNfZGV2LmMNCi0tLSBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgv bm5wZnNfZGV2LmMJMjAwNi0xMC0yNCAxODozMzozNi4wMDAwMDAwMDAgKzAy MDANCisrKyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMTYtMDEt MTQgMTY6Mjg6MTkuMDAwMDAwMDAwICswMTAwDQpAQCAtMzAwLDcgKzMwMCw5 IEBAIG5ucGZzX2ludmFsaWRhdGVfYWxsKHN0cnVjdCBubnBmcyAqbm5wZnMN CiAgICAgTk5QRlNERUIoWERFQk5PREUsICgiZnJlZV9hbGxfbm5wZnNfbm9k ZXMgc3RhcnRpbmdcbiIpKTsNCiANCiAgICAgc2hyaW5rX2RjYWNoZV9zYihu bnBmcy0+c2IpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigyLDYsMzcpDQogICAgIGludmFsaWRhdGVfaW5vZGVzKG5ucGZz LT5zYik7DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCTk9E RSwgKCJmcmVlX2FsbF9ubnBmc19ub2RlcyBkb25lXG4iKSk7DQogfQ0KQEAg LTM3NCw3ICszNzYsMTEgQEAgbm5wZnNfZGV2Y2xvc2Uoc3RydWN0IGlub2Rl ICogaW5vZGUsIHN0cg0KIHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfZGV2cmVh ZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciAqYnVmLCBzaXplX3QgY291bnQs IGxvZmZfdCAqcHBvcykNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgbm5wZnNfZGV2X3QgZGV2 ID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZWxzZQ0K KyAgICBubnBmc19kZXZfdCBkZXYgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5k X2lub2RlLT5pX3JkZXY7DQorI2VuZGlmDQogICAgIHN0cnVjdCBubnBmcyAq bm5wZnNwID0gJm5ucGZzW01JTk9SKGRldildOw0KICAgICBzdHJ1Y3Qgbm5w ZnNfbGluayAqZmlyc3Q7DQogICAgIGludCByZXQgPSAwLCBlcnJvciA9IDA7 DQpAQCAtNDM5LDggKzQ0NSwxMiBAQCBubnBmc19kZXZ3cml0ZShzdHJ1Y3Qg ZmlsZSAqZmlsZSwgY29uc3QgDQogDQogICAgIE5OUEZTREVCKFhERUJERVYs ICgibm5wZnNfZGV2d3JpdGVcbiIpKTsNCiAgICAgDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgZGV2 ID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCi0gICAgbm5w ZnNwID0gJm5ucGZzW01JTk9SKGRldildOw0KKyNlbHNlDQorICAgIGRldiA9 IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZW5k aWYNCisgICAgIG5ucGZzcCA9ICZubnBmc1tNSU5PUihkZXYpXTsNCiANCiAg ICAgZG93bigmbm5wZnNwLT5jaGFubmVsX3NlbSk7DQogICAgIGlmIChubnBm c3AtPnN0YXR1cyAmIE5OUEZTX0RFVldSSVRFKSB7DQpAQCAtNTA1LDE5ICs1 MTUsMzcgQEAgbm5wZnNfZGV2d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNv bnN0IA0KIC8qDQogICogTm90IHVzZWQuDQogICovDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiBzdGF0aWMg aW50DQogbm5wZnNfZGV2aW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3Ry dWN0IGZpbGUgKmZpbGUsDQogCSAgICAgICB1bnNpZ25lZCBpbnQgY21kLCB1 bnNpZ25lZCBsb25nIGFyZykNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5w ZnNfdW5sb2NrZWRfZGV2aW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsDQorCSAg ICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisj ZW5kaWYNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDIsNiwzNikNCiAgICAgTk5QRlNERUIoWERFQkRFViwgKCJubnBm c19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwNCiAJCSAgICAg ICBpbm9kZS0+aV9yZGV2LCBmaWxlLT5mX2ZsYWdzKSk7DQorI2VsaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAg ICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldmlvY3RsIGRldiA9ICVk LCBmbGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZpbGUtPmZfZGVudHJ5LT5k X2lub2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZWxzZQ0KKyAg ICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldmlvY3RsIGRldiA9ICVk LCBmbGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZpbGUtPmZfcGF0aC5kZW50 cnktPmRfaW5vZGUtPmlfcmRldiwgZmlsZS0+Zl9mbGFncykpOw0KKyNlbmRp Zg0KICAgICByZXR1cm4gLUVJTlZBTDsNCiB9DQogDQogc3RhdGljIHVuc2ln bmVkIGludA0KIG5ucGZzX2RldnBvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHBv bGxfdGFibGUgKndhaXQpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIG5ucGZzX2Rldl90IGRl diA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX3JkZXY7DQorI2Vsc2UN CisgICAgbm5wZnNfZGV2X3QgZGV2ID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnMg Km5ucGZzcCA9ICZubnBmc1tNSU5PUihkZXYpXTsNCiAgICAgaW50IHJldCA9 IDA7DQogICAgIA0KQEAgLTk1Myw3ICs5ODEsMTEgQEAgc3RydWN0IGZpbGVf b3BlcmF0aW9ucyBubnBmc19mb3BzID0gew0KICAgICByZWFkOgkJbm5wZnNf ZGV2cmVhZCwNCiAgICAgd3JpdGU6CQlubnBmc19kZXZ3cml0ZSwNCiAgICAg cG9sbDoJCW5ucGZzX2RldnBvbGwsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAgICAgaW9jdGw6CQlubnBm c19kZXZpb2N0bCwNCisjZWxzZQ0KKyAgICB1bmxvY2tlZF9pb2N0bDoJbm5w ZnNfdW5sb2NrZWRfZGV2aW9jdGwsDQorI2VuZGlmDQogICAgIHJlbGVhc2U6 CQlubnBmc19kZXZjbG9zZSwNCiAgICAgb3BlbjoJCW5ucGZzX2Rldm9wZW4s DQogfTsNCkBAIC05NjgsOCArMTAwMCwxMyBAQCBubnBmc19pbml0X2Rldmlj ZSh2b2lkKQ0KIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCYobm5wZnNbaV0ud2Fp dF9xdWV1ZSkpOw0KIAlubnBmc19pbml0cSgmbm5wZnNbaV0ubWVzc2FnZXEp Ow0KIAlubnBmc19pbml0cSgmbm5wZnNbaV0uc2xlZXBxKTsNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM3KQ0KIAlp bml0X01VVEVYKCZubnBmc1tpXS5pbmFjdGl2ZV9zZW0pOw0KIAlpbml0X01V VEVYKCZubnBmc1tpXS5jaGFubmVsX3NlbSk7DQorI2Vsc2UNCisJc2VtYV9p bml0KCZubnBmc1tpXS5pbmFjdGl2ZV9zZW0sIDEpOw0KKwlzZW1hX2luaXQo Jm5ucGZzW2ldLmNoYW5uZWxfc2VtLCAxKTsNCisjZW5kaWYNCiAJSU5JVF9M SVNUX0hFQUQoJm5ucGZzW2ldLmluYWN0aXZlX2xpc3QpOw0KIAlubnBmc1tp XS5ubm9kZXMgPSAwOw0KICAgICB9DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFy bGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19pbm9kZW9wcy5jIGFybGEv bm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYw0KLS0tIGFybGEtY3ZzLW9s ZC9ubnBmcy9saW51eC9ubnBmc19pbm9kZW9wcy5jCTIwMTAtMDgtMDggMjI6 NDM6MDQuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS9ubnBmcy9saW51eC9u bnBmc19pbm9kZW9wcy5jCTIwMTYtMDMtMTkgMDI6MDM6MTAuMDAwMDAwMDAw ICswMTAwDQpAQCAtNDAsMTAgKzQwLDE0IEBADQogI2luY2x1ZGUgPG5ucGZz L25ucGZzX2Rldi5oPg0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19kaXJlbnQu aD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfc3lzY2FsbHMuaD4NCisjaW5j bHVkZSA8bGludXgvYWlvLmg+DQogI2luY2x1ZGUgPGxpbnV4L2JpbmZtdHMu aD4NCiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPg0KICNpbmNsdWRlIDxsaW51 eC9wYWdlbWFwLmg+DQogI2luY2x1ZGUgPGxpbnV4L3BhZ2UtZmxhZ3MuaD4N CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDQs MSwwKQ0KKyNpbmNsdWRlIDxsaW51eC91aW8uaD4NCisjZW5kaWYNCiAjaW5j bHVkZSA8bGludXgvd3JpdGViYWNrLmg+DQogI2luY2x1ZGUgPGFzbS9mY250 bC5oPg0KIA0KQEAgLTU0LDExICs1OCwyMyBAQCBSQ1NJRCgiJElkOiBubnBm c19pbm9kZW9wcy5jLHYgMS4yMjYgMjAxDQogc3RhdGljIGludA0KIG5ucGZz X2ZzeW5jX2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQgZmxhZyk7DQog DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs NiwwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19kX3JldmFsaWRhdGUoc3RydWN0 IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCk7DQotDQor I2Vsc2UNCiBzdGF0aWMgaW50DQorbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVj dCBkZW50cnkgKmRlbnRyeSwgdW5zaWduZWQgaW50IGZsYWdzKTsNCisjZW5k aWYNCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMiw2LDM4KQ0KK3N0YXRpYw0KK2ludA0KIG5ucGZzX2RfZGVsZXRlKHN0 cnVjdCBkZW50cnkgKmRlbnRyeSk7DQorI2Vsc2UNCitzdGF0aWMNCitpbnQN CitubnBmc19kX2RlbGV0ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkp Ow0KKyNlbmRpZg0KIA0KIHN0YXRpYyB2b2lkDQogbm5wZnNfZF9yZWxlYXNl KHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7DQpAQCAtMjE0LDggKzIzMCwxMyBA QCBubnBmc19pbm9kZV92YWxpZChzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KICAq IG5ucGZzX2xvb2t1cCBub3cgcmV0dXJucyBhIGRlbnRyeS4NCiAgKi8NCiAN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2 LDApDQogc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KIG5ucGZzX2xvb2t1cCAo c3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3Ry dWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCitzdGF0aWMgc3RydWN0IGRl bnRyeSAqDQorbm5wZnNfbG9va3VwIChzdHJ1Y3QgaW5vZGUgKmRpciwgc3Ry dWN0IGRlbnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2Vu ZGlmDQogew0KICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9nZXRub2RlIG1z ZzsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQpAQCAtNDA3LDcgKzQy OCwxMSBAQCBmaW5kX2ZpcnN0X2Jsb2NrKHN0cnVjdCBubnBmc19ub2RlICpu b2RlDQogc3RhdGljIGludA0KIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmls ZSAqZmlsZSwgdV9pbnQgZmxhZykNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlu b2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNl DQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVu dHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5u cGZzcCA9IE5OUEZTX0ZST01fVk5PREUoaW5vZGUpOw0KICAgICBzdHJ1Y3Qg bm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAg IGxvZmZfdCBsZW4gPSBpX3NpemVfcmVhZChpbm9kZSk7DQpAQCAtNDc0LDE1 ICs0OTksMTggQEAgbm5wZnNfZnN5bmNfaW50KHN0cnVjdCBmaWxlICpmaWxl LCB1X2ludA0KICAqDQogICovDQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDIsIDYsIDM1KQ0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzUpDQogc3RhdGljIGlu dA0KIG5ucGZzX2ZzeW5jKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgZGVu dHJ5ICpkZW50cnksIGludCBkYXRhc3luYykNCi0jZWxzZQ0KKyNlbGlmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KIHN0 YXRpYyBpbnQNCiBubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50 IGRhdGFzeW5jKQ0KKyNlbHNlDQorc3RhdGljIGludA0KK25ucGZzX2ZzeW5j KHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgc3RhcnQsIGxvZmZfdCBlbmQs IGludCBkYXRhc3luYykNCiAjZW5kaWYNCiB7DQotI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLCA2LCAzNSkNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwzNSkNCiAg ICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gZmlsZS0+Zl9wYXRoLmRlbnRy eTsNCiAjZW5kaWYNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IERFTlRS WV9UT19JTk9ERShkZW50cnkpOw0KQEAgLTQ5MCw2ICs1MTgsOCBAQCBubnBm c19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IGRhdGFzDQogICAgIHN0 cnVjdCBubnBmc19ub2RlICp4bjsNCiAgICAgaW50IGVycm9yID0gMDsNCiAN CisgICAgKHZvaWQpbm5wZnNwOw0KKw0KICAgICBlcnJvciA9IG5ucGZzX2lu b2RlX3ZhbGlkKGlub2RlKTsNCiAgICAgaWYgKGVycm9yKQ0KIAlyZXR1cm4g ZXJyb3I7DQpAQCAtNjIyLDExICs2NTIsMjUgQEAgY2hlY2tfcmlnaHRzIChu bnBmc19yaWdodHMgcmlnaHRzLCBpbnQgbQ0KICAqIFdlIGRvbid0IGhvbGQg aV9tdXRleC4NCiAgKi8NCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkgfHwgTElOVVhfVkVSU0lPTl9DT0RF ID49IEtFUk5FTF9WRVJTSU9OKDMsMSwwKSkNCiBzdGF0aWMgaW50DQogbm5w ZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9kZSkN CisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19wZXJtaXNzaW9uKHN0cnVj dCBpbm9kZSAqaW5vZGUsIGludCBtb2RlLCB1bnNpZ25lZCBpbnQgZmxhZ3Mp DQorI2VuZGlmDQogew0KICAgICBpbnQgZXJyb3IgPSAwOw0KLSAgICBubnBm c19wYWdfdCBwYWcgPSBubnBmc19nZXRfcGFnKCk7DQorICAgIG5ucGZzX3Bh Z190IHBhZzsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9W RVJTSU9OKDMsMSwwKQ0KKyAgICBpZiAobW9kZSAmIE1BWV9OT1RfQkxPQ0sp DQorICAgICAgICByZXR1cm4gLUVDSElMRDsNCisjZWxpZiBMSU5VWF9WRVJT SU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KKyAgICBpZiAo ZmxhZ3MgJiBJUEVSTV9GTEFHX1JDVSkNCisgICAgICAgIHJldHVybiAtRUNI SUxEOw0KKyNlbmRpZg0KKw0KKyAgICBwYWcgPSBubnBmc19nZXRfcGFnKCk7 DQogICAgIA0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfYWNj ZXNzICglcCkgbW9kZSA9IDAlbyBhbGlhc2VzOiIsIGlub2RlLCBtb2RlKSk7 DQogICAgIG5ucGZzX3ByaW50X2FsaWFzZXMoaW5vZGUpOw0KQEAgLTc4NCwx MSArODI4LDE5IEBAIG5ucGZzX2RhdGFfdmFsaWQoc3RydWN0IGlub2RlICpp bm9kZSwgdV8NCiBpbnQgbm5wZnNfZmlsZV9tbWFwKHN0cnVjdCBmaWxlICog ZmlsZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICogdm1hKQ0KIHsNCiAgICAg aW50IGZsYWdzLCBlcnJvciA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2Rl ICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQor ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5 LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFj ZSAqbWFwcGluZyA9IGZpbGUtPmZfbWFwcGluZzsNCiANCiAgICAgTk5QRlNE RUIoWERFQlZOT1BTLCAoIm5ucGZzX21tYXAgaW5vZGU6ICVwXG4iLCBpbm9k ZSkpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDE5LDApDQogICAgIG5ucGZzX3ByaW50X3BhdGgoZmlsZS0+Zl9kZW50 cnkpOw0KKyNlbHNlDQorICAgIG5ucGZzX3ByaW50X3BhdGgoZmlsZS0+Zl9w YXRoLmRlbnRyeSk7DQorI2VuZGlmDQogICAgIE5OUEZTREVCKFhERUJWTk9Q UywgKCJubnBmc19tbWFwIGFsaWFzZXM6IikpOw0KICAgICBubnBmc19wcmlu dF9hbGlhc2VzKGlub2RlKTsNCiAgICAgDQpAQCAtODIzLDI4ICs4NzUsNTEg QEAgaW50IG5ucGZzX2ZpbGVfbW1hcChzdHJ1Y3QgZmlsZSAqIGZpbGUsIA0K ICAqDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMTYsMCkNCiBzdGF0aWMgc3NpemVfdA0KIG5ucGZzX2Fp b19yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAJICAgICAgIGNvbnN0IHN0 cnVjdCBpb3ZlYyAqaW92LCB1bnNpZ25lZCBsb25nIG5yX3NlZ3MsDQogCSAg ICAgICBsb2ZmX3QgcG9zKQ0KKyNlbHNlDQorc3RhdGljIHNzaXplX3QNCitu bnBmc19yZWFkX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92 X2l0ZXIgKnRvKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsN CiAgICAgc3RydWN0IGZpbGUgKmZpbGUgPSBpb2NiLT5raV9maWxwOw0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEyLDAp DQogICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5raV9sZWZ0Ow0KKyNlbGlm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsMSwwKQ0K KyAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbmJ5dGVzOw0KKyNlbHNl DQorICAgIHNzaXplX3QgY291bnQgPSBpb3ZfaXRlcl9jb3VudCh0byk7DQor I2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUt PmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9k ZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNl bmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19Y Tk9ERShpbm9kZSk7DQogICAgIA0KICAgICBpZiAoeG4gIT0gTlVMTCkNCiAJ Tk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3JlYWRfZmlsZSglcCk6IHRv a2VuczogMHgleFxuIiwNCiAJCQkgICAgIGlub2RlLCB4bi0+dG9rZW5zKSk7 DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMTYsMCkNCiAgICAgZXJyb3IgPSBubnBmc19kYXRhX3ZhbGlkKGlub2Rl LCBOTlBGU19EQVRBX1IsIHBvcywgcG9zICsgY291bnQpOw0KKyNlbHNlDQor ICAgIGVycm9yID0gbm5wZnNfZGF0YV92YWxpZChpbm9kZSwgTk5QRlNfREFU QV9SLCBpb2NiLT5raV9wb3MsIGlvY2ItPmtpX3BvcyArIGNvdW50KTsNCisj ZW5kaWYNCiAgICAgaWYgKGVycm9yKSB7DQogCU5OUEZTREVCKFhERUJWTk9Q UywgKCJubnBmc19yZWFkX2ZpbGU6IGRhdGEgbm90IHZhbGlkICVkXG4iLCBl cnJvcikpOw0KIAlyZXR1cm4gZXJyb3I7DQogICAgIH0NCiAgICAgDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkN CiAgICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfYWlvX3JlYWQoaW9jYiwgaW92 LCBucl9zZWdzLCBwb3MpOw0KKyNlbHNlDQorICAgIGVycm9yID0gZ2VuZXJp Y19maWxlX3JlYWRfaXRlcihpb2NiLCB0byk7DQorI2VuZGlmDQogICAgIE5O UEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWFkX2ZpbGU6IGVycm9yID0g JWRcbiIsIGVycm9yKSk7DQogICAgIHJldHVybiBlcnJvcjsNCiB9DQpAQCAt ODUzLDE3ICs5MjgsMzYgQEAgbm5wZnNfYWlvX3JlYWQoc3RydWN0IGtpb2Ni ICppb2NiLA0KICAqDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiBzdGF0aWMgc3NpemVfdA0K IG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogCQljb25z dCBzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWduZWQgbG9uZyBucl9zZWdzLA0K IAkJbG9mZl90IHBvcykNCisjZWxzZQ0KK3N0YXRpYyBzc2l6ZV90DQorbm5w ZnNfd3JpdGVfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3Zf aXRlciAqZnJvbSkNCisjZW5kaWYNCiB7DQogICAgIGludCBlcnJvciA9IDA7 DQogICAgIHN0cnVjdCBmaWxlICpmaWxlID0gaW9jYi0+a2lfZmlscDsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMiww KQ0KICAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbGVmdDsNCisjZWxp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDEsMCkN CisgICAgc3NpemVfdCBjb3VudCA9IGlvY2ItPmtpX25ieXRlczsNCisjZWxz ZQ0KKyAgICBzc2l6ZV90IGNvdW50ID0gaW92X2l0ZXJfY291bnQoZnJvbSk7 DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZp bGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBp bm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0K KyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9U T19YTk9ERShpbm9kZSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgbG9mZl90IHJlYWxwb3MgPSBw b3M7DQorI2Vsc2UNCisgICAgbG9mZl90IHJlYWxwb3MgPSBpb2NiLT5raV9w b3M7DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCVk5PUFMs ICgibm5wZnNfYWlvX3dyaXRlKCVwKTogdG9rZW5zOiAweCV4XG4iLA0KIAkJ CSBpbm9kZSwgeG4tPnRva2VucykpOw0KQEAgLTg3Nyw3ICs5NzEsMTEgQEAg bm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAJcmV0dXJu IGVycm9yOw0KICAgICB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgZXJyb3IgPSBnZW5lcmlj X2ZpbGVfYWlvX3dyaXRlKGlvY2IsIGlvdiwgbnJfc2VncywgcG9zKTsNCisj ZWxzZQ0KKyAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV93cml0ZV9pdGVyKGlv Y2IsIGZyb20pOw0KKyNlbmRpZg0KICAgICBpZiAoIUlTX0VSUl9WQUxVRShl cnJvcikpDQogCXhuLT5mbGFncyB8PSBOTlBGU19EQVRBX0RJUlRZOyAvKiBY WFggcmFjZSAqLw0KIA0KQEAgLTg4NSw5ICs5ODMsMTkgQEAgbm5wZnNfYWlv X3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAgICAgcmV0dXJuIGVycm9y Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywzLDApDQogc3RhdGljIGludA0KIG5ucGZzX2NyZWF0ZShzdHJ1 Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KIAkgICAg IGludCBtb2RlLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCitzdGF0 aWMgaW50DQorbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1 Y3QgZGVudHJ5ICpkZW50cnksDQorCSAgICAgdW1vZGVfdCBtb2RlLCBzdHJ1 Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBm c19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRl bnRyeSwNCisJICAgICB1bW9kZV90IG1vZGUsIGJvb2wgZXhjbCkNCisjZW5k aWYNCiB7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1 Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAtMTAzOCw4ICsxMTQ2LDEzIEBAIG5u cGZzX3JlbmFtZSAoc3RydWN0IGlub2RlICogb2xkX2Rpciwgc3QNCiAgICAg cmV0dXJuIGVycm9yOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywzLDApDQogc3RhdGljIGludA0KIG5ucGZz X21rZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGRlbnRyeSAqZGVu dHJ5LCBpbnQgbW9kZSkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19t a2RpcihzdHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRy eSwgdW1vZGVfdCBtb2RlKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5u cGZzICpubnBmc3A7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCkBA IC0xMjUyLDEyICsxMzY1LDIxIEBAIHN0YXRpYyBpbnQgbm5wZnNfc3ltbGlu ayhzdHJ1Y3QgaW5vZGUgKmQNCiAvKg0KICAqIFdlIGhvbGQgaV9tdXRleC4N CiAgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMywxMSwwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19yZWFkZGlyKHN0cnVj dCBmaWxlICogZmlsZSwgdm9pZCAqIGRpcmVudCwgZmlsbGRpcl90IGZpbGxk aXIpDQorI2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNfaXRlcmF0ZShzdHJ1 Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCBkaXJfY29udGV4dCAqY3R4KQ0KKyNl bmRpZg0KIHsNCiAgICAgaW50IGVycm9yOw0KICAgICBsb2ZmX3Qgb2Zmc2V0 LCBiZWdpbl9vZmZzZXQ7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9k ZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0 cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lu b2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgaW5vZGUgKmNhY2hlX2lub2Rl Ow0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9E RShpbm9kZSk7DQogICAgIGNoYXIgKmJ1ZjsNCkBAIC0xMjgxLDYgKzE0MDMs NyBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAq DQogDQogICAgIGNhY2hlX2lub2RlID0gYmFja2ZpbGUtPmZfbWFwcGluZy0+ aG9zdDsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxMSwwKQ0KICAgICB3aGlsZSAoZmlsZS0+Zl9wb3MgPCBpX3Np emVfcmVhZChjYWNoZV9pbm9kZSkpIHsNCiAJTk5QRlNERUIoWERFQlJFQURE SVIsDQogCSAgICAgICAoIm5ucGZzX3JlYWRkaXIgZmlsZS0+Zl9wb3M6ICVk IGlfc2l6ZTogJWRcbiIsDQpAQCAtMTI5Myw2ICsxNDE2LDIwIEBAIG5ucGZz X3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJbWFwcGlu ZyA9IGJhY2tmaWxlLT5mX21hcHBpbmc7DQogCWlucGFnZSA9IGZpbGUtPmZf cG9zICYgKFBBR0VfQ0FDSEVfU0laRS0xKTsNCiAJcGFnZV9udW0gPSBmaWxl LT5mX3BvcyA+PiBQQUdFX0NBQ0hFX1NISUZUOw0KKyNlbHNlDQorICAgIHdo aWxlIChjdHgtPnBvcyA8IGlfc2l6ZV9yZWFkKGNhY2hlX2lub2RlKSkgew0K KwlOTlBGU0RFQihYREVCUkVBRERJUiwNCisJICAgICAgICgibm5wZnNfcmVh ZGRpciBmaWxlLT5mX3BvczogJWQgaV9zaXplOiAlZFxuIiwNCisJCShpbnQp IGN0eC0+cG9zLCAoaW50KSBjYWNoZV9pbm9kZS0+aV9zaXplKSk7DQorCWJl Z2luX29mZnNldCA9IGN0eC0+cG9zICZ+IChOTlBGU19ESVJFTlRfQkxPQ0tT SVpFIC0gMSk7DQorCW9mZnNldCA9IGN0eC0+cG9zICYgKE5OUEZTX0RJUkVO VF9CTE9DS1NJWkUgLSAxKTsNCisJY3R4LT5wb3MgPSBiZWdpbl9vZmZzZXQ7 DQorCU5OUEZTREVCKFhERUJSRUFERElSLCAoIm5ucGZzX3JlYWRkaXIgYmVn aW5fb2Zmc2V0OiAlZCBvZmZzZXQ6ICVkXG4iLA0KKwkJCSAgICAgKGludCli ZWdpbl9vZmZzZXQsIChpbnQpb2Zmc2V0KSk7DQorCW1hcHBpbmcgPSBiYWNr ZmlsZS0+Zl9tYXBwaW5nOw0KKwlpbnBhZ2UgPSBjdHgtPnBvcyAmIChQQUdF X0NBQ0hFX1NJWkUtMSk7DQorCXBhZ2VfbnVtID0gY3R4LT5wb3MgPj4gUEFH RV9DQUNIRV9TSElGVDsNCisjZW5kaWYNCiANCiAJTk5QRlNERUIoWERFQlJF QURESVIsDQogCSAgICAgICAoIm5ucGZzX3JlYWRkaXIgaW5wYWdlOiAlZCBw YWdlX251bTogJWx1XG4iLA0KQEAgLTEzMjgsNiArMTQ2NSw3IEBAIG5ucGZz X3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJCSAgICAo aW50KSB4ZGlyZW50LT5kX25hbWxlbiwNCiAJCSAgICAoaW50KSAob2Zmc2V0 K2JlZ2luX29mZnNldCkpKTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0KIAkgICAgaWYgKHhkaXJlbnQt PmRfZmlsZW5vICE9IDANCiAJCSYmIChmaWxsZGlyX2Vycm9yID0gZmlsbGRp ciAoZGlyZW50LA0KIAkJCQkgICAgIHhkaXJlbnQtPmRfbmFtZSwNCkBAIC0x MzM5LDEyICsxNDc3LDI4IEBAIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUg KiBmaWxlLCB2b2lkICoNCiAJCQkgKCJubnBmc19yZWFkZGlyIGZpbGxkaXI6 ICVkXG4iLCBmaWxsZGlyX2Vycm9yKSk7DQogCQlicmVhazsNCiAJICAgIH0N CisjZWxzZQ0KKwkgICAgaWYgKHhkaXJlbnQtPmRfZmlsZW5vICE9IDANCisJ CSYmIChmaWxsZGlyX2Vycm9yID0gZGlyX2VtaXQgKGN0eCwNCisJCQkJICAg ICB4ZGlyZW50LT5kX25hbWUsDQorCQkJCSAgICAgeGRpcmVudC0+ZF9uYW1s ZW4sDQorCQkJCSAgICAgeGRpcmVudC0+ZF9maWxlbm8sDQorCQkJCSAgICAg RFRfVU5LTk9XTikpIDwgMCkgew0KKwkJTk5QRlNERUIoWERFQlJFQURESVIs DQorCQkJICgibm5wZnNfcmVhZGRpciBmaWxsZGlyOiAlZFxuIiwgZmlsbGRp cl9lcnJvcikpOw0KKwkJYnJlYWs7DQorCSAgICB9DQorI2VuZGlmDQogCSAg ICBvZmZzZXQgKz0geGRpcmVudC0+ZF9yZWNsZW47DQogDQogCSAgICBpZiAo eGRpcmVudC0+ZF9yZWNsZW4gPT0gMCkgew0KIAkJcHJpbnRrKEtFUk5fRU1F UkcgIk5OUEZTIFBhbmljOiAiDQogCQkgICAgICAgImVtcHR5IGRpcmVudCBh dCAlbGxkIGluIG5ucGZzX3JlYWRkaXIsIHBvcyAlZCBzaXplICVkXG4iLA0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEx LDApDQogCQkgICAgICAgKGxvbmcgbG9uZylvZmZzZXQsIChpbnQpZmlsZS0+ Zl9wb3MsDQorI2Vsc2UNCisJCSAgICAgICAobG9uZyBsb25nKW9mZnNldCwg KGludCljdHgtPnBvcywNCisjZW5kaWYNCiAJCSAgICAgICAoaW50KWNhY2hl X2lub2RlLT5pX3NpemUpOw0KIAkJTk5QRlNERUIoWERFQlZOT1BTLCAoImlu b2RlOiAlcCBhbGlhc2VzOiIsIGlub2RlKSk7DQogCQlubnBmc19wcmludF9h bGlhc2VzKGlub2RlKTsNCkBAIC0xMzYyLDcgKzE1MTYsMTEgQEAgbm5wZnNf cmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUsIHZvaWQgKg0KIAlpZiAob2Zm c2V0ID4gTk5QRlNfRElSRU5UX0JMT0NLU0laRSkNCiAJICAgIG9mZnNldCA9 IE5OUEZTX0RJUkVOVF9CTE9DS1NJWkU7DQogDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiAJZmlsZS0+Zl9w b3MgPSBiZWdpbl9vZmZzZXQgKyBvZmZzZXQ7DQorI2Vsc2UNCisJY3R4LT5w b3MgPSBiZWdpbl9vZmZzZXQgKyBvZmZzZXQ7DQorI2VuZGlmDQogDQogCWlm IChlcnJvciB8fCBvZmZzZXQgPCBOTlBGU19ESVJFTlRfQkxPQ0tTSVpFKQ0K IAkgICAgYnJlYWs7DQpAQCAtMTM5NSwxMiArMTU1MywyNSBAQCBubnBmc19y ZWFkbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBjDQogICogV2UgZG9u J3QgaG9sZCBpX211dGV4Lg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDIsMCkNCiBzdGF0aWMgdm9pZCAq DQogbm5wZnNfZm9sbG93X2xpbmsgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwN CiAJCSBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDUsMCkNCitzdGF0aWMgY29u c3QgY2hhciAqDQorbm5wZnNfZm9sbG93X2xpbmsgKHN0cnVjdCBkZW50cnkg KmRlbnRyeSwNCisJCSB2b2lkICoqcGFnZSkNCisjZWxzZQ0KK3N0YXRpYyBj b25zdCBjaGFyICoNCitubnBmc19nZXRfbGluayAoc3RydWN0IGRlbnRyeSAq ZGVudHJ5LA0KKwkJIHN0cnVjdCBpbm9kZSAqaW5vZGUsDQorCQkgc3RydWN0 IGRlbGF5ZWRfY2FsbCAqZG9uZSkNCisjZW5kaWYNCiB7DQogICAgIGludCBl cnJvciA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDQsNSwwKQ0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gREVO VFJZX1RPX0lOT0RFKGRlbnRyeSk7DQorI2VuZGlmDQogDQogICAgIE5OUEZT REVCKFhERUJWTk9QUywgKCJubnBmc19mb2xsb3dfbGlua1xuIikpOw0KICAg ICANCkBAIC0xNDA4LDcgKzE1NzksMTMgQEAgbm5wZnNfZm9sbG93X2xpbmsg KHN0cnVjdCBkZW50cnkgKmRlbnRyeQ0KICAgICBpZiAoZXJyb3IpDQogICAg ICAgIHJldHVybiBFUlJfUFRSKGVycm9yKTsNCiANCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oNCwyLDApDQogICAgIHJldHVy biBwYWdlX2ZvbGxvd19saW5rX2xpZ2h0KGRlbnRyeSwgbmQpOw0KKyNlbGlm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsNSwwKQ0K KyAgICByZXR1cm4gcGFnZV9mb2xsb3dfbGlua19saWdodChkZW50cnksIHBh Z2UpOw0KKyNlbHNlDQorICAgIHJldHVybiBwYWdlX2dldF9saW5rKGRlbnRy eSwgaW5vZGUsIGRvbmUpOw0KKyNlbmRpZg0KIH0NCiANCiAvKg0KQEAgLTE0 OTAsNiArMTY2Nyw4IEBAIG5ucGZzX3JlbGVhc2VfZmlsZSAoc3RydWN0IGlu b2RlICppbm9kZSwNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0KICAg ICBpbnQgZXJyb3IgPSAwOw0KIA0KKyAgICAodm9pZClubnBmc3A7DQorDQog ICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWxlYXNlX2ZpbGVc biIpKTsNCiANCiAgICAgZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChpbm9k ZSk7DQpAQCAtMTUyMyw4ICsxNzAyLDEzIEBAIG5ucGZzX2ZsdXNoKHN0cnVj dCBmaWxlICpmaWxlLCBmbF9vd25lcl8NCiB7DQogICAgIE5OUEZTREVCKFhE RUJWTk9QUywgKCJubnBmc19mbHVzaFxuIikpOw0KIA0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIGlm IChmaWxlICYmIGZpbGUtPmZfZGVudHJ5ICYmIGZpbGUtPmZfZGVudHJ5LT5k X2lub2RlKQ0KIAlyZXR1cm4gbm5wZnNfcmVsZWFzZV9maWxlKGZpbGUtPmZf ZGVudHJ5LT5kX2lub2RlLCBmaWxlKTsNCisjZWxzZQ0KKyAgICBpZiAoZmls ZSAmJiBmaWxlLT5mX3BhdGguZGVudHJ5ICYmIGZpbGUtPmZfcGF0aC5kZW50 cnktPmRfaW5vZGUpDQorCXJldHVybiBubnBmc19yZWxlYXNlX2ZpbGUoZmls ZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSwgZmlsZSk7DQorI2VuZGlmDQog ICAgIGVsc2UNCiAJcmV0dXJuIDA7DQogfQ0KQEAgLTE1MzMsMTAgKzE3MTcs MjQgQEAgbm5wZnNfZmx1c2goc3RydWN0IGZpbGUgKmZpbGUsIGZsX293bmVy Xw0KICAqIFJldHVybiAxIGlmIGBkZW50cnknIGlzIHN0aWxsIHZhbGlkLCBv dGhlcndpc2UgMC4NCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogc3RhdGljIGludA0KLW5ucGZz X2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBu YW1laWRhdGEgKm5kKSANCitubnBmc19kX3JldmFsaWRhdGUoc3RydWN0IGRl bnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0K K3N0YXRpYyBpbnQNCitubnBmc19kX3JldmFsaWRhdGUoc3RydWN0IGRlbnRy eSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2VuZGlmDQogew0K ICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gREVOVFJZX1RPX0lOT0RFKGRl bnRyeSk7DQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxf VkVSU0lPTigzLDYsMCkNCisgICAgaWYgKGZsYWdzICYgTE9PS1VQX1JDVSkN CisgICAgICAgIHJldHVybiAtRUNISUxEOw0KKyNlbGlmIExJTlVYX1ZFUlNJ T05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQorICAgIGlmIChu ZCAmJiBuZC0+ZmxhZ3MgJiBMT09LVVBfUkNVKQ0KKyAgICAgICAgcmV0dXJu IC1FQ0hJTEQ7DQorI2VuZGlmDQorDQogICAgIE5OUEZTREVCKFhERUJWTk9Q UywgKCJubnBmc19kX3JldmFsaWRhdGUgJXAgXCIlLipzXCIgKGlub2RlICVw KVxuIiwNCiAJCSAgICAgICBkZW50cnksDQogCQkgICAgICAgKGludClkZW50 cnktPmRfbmFtZS5sZW4sDQpAQCAtMTU4Miw5ICsxNzgwLDE1IEBAIG5ucGZz X2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkNCiAgICAgcmV0 dXJuIDA7DQogfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLDYsMzgpDQogc3RhdGljDQogaW50DQogbm5wZnNfZF9k ZWxldGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbHNlDQorc3RhdGlj DQoraW50DQorbm5wZnNfZF9kZWxldGUoY29uc3Qgc3RydWN0IGRlbnRyeSAq ZGVudHJ5KQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IGlub2RlICppbm9k ZTsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0KQEAgLTE2MTQsNyAr MTgxOCwxMSBAQCBubnBmc19zcGxpY2VfcmVhZChzdHJ1Y3QgZmlsZSAqZmls ZSwgbG9mDQogCQkgIHVuc2lnbmVkIGludCBmbGFncykNCiB7DQogICAgIGlu dCBlcnJvciA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9 IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVj dCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2Rl Ow0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9E RV9UT19YTk9ERShpbm9kZSk7DQogICAgIA0KICAgICBpZiAoeG4gIT0gTlVM TCkNCkBAIC0xNzA3LDYgKzE5MTUsOCBAQCBubnBmc193cml0ZV9iYWNrcGFn ZShzdHJ1Y3QgcGFnZSAqcGFnZSwgDQogDQogCWludCBlcnJvcjsNCiAJDQor CSh2b2lkKW9mZnNldDsNCisNCiAJZG8gew0KIAkJZXJyb3IgPSBwYWdlY2Fj aGVfd3JpdGVfYmVnaW4oYmFja2ZpbGUsIG1hcHBpbmcsIDAsIGxlbiwNCiAJ CQkJCSAgICAgIEFPUF9GTEFHX1VOSU5URVJSVVBUSUJMRSwNCkBAIC0xNzMw LDcgKzE5NDAsMTEgQEAgbm5wZnNfd3JpdGVfYmFja3BhZ2Uoc3RydWN0IHBh Z2UgKnBhZ2UsIA0KIAkJcHJpbnRrKCJubnBmc193cml0ZV9iYWNrcGFnZTog RUlPXG4iKTsNCiAjaWZkZWYgTk5QRlNfU0FGRV9TWU5DDQogCWVsc2UNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDMy KQ0KIAkJKHZvaWQpc3luY19wYWdlX3JhbmdlKG1hcHBpbmctPmhvc3QsIG1h cHBpbmcsIG9mZnNldCwgbGVuKTsNCisjZWxzZQ0KKwkJKHZvaWQpZmlsZW1h cF93cml0ZV9hbmRfd2FpdF9yYW5nZShtYXBwaW5nLCBvZmZzZXQsIG9mZnNl dCArIGxlbiAtIDEpOw0KKyNlbmRpZg0KICNlbmRpZg0KIAkNCiAJcmV0dXJu IGVycm9yOw0KQEAgLTE3NDcsNiArMTk2MSw4IEBAIG5ucGZzX3JlYWRfYmFj a3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHMNCiAJc3RydWN0IHBhZ2UgKmJh Y2twYWdlOw0KIAl1bnNpZ25lZCBsb25nIG9mZnNldDsNCiANCisJKHZvaWQp b2Zmc2V0Ow0KKw0KIAliYWNrcGFnZSA9IHJlYWRfbWFwcGluZ19wYWdlKG1h cHBpbmcsIG4sIGJhY2tmaWxlKTsNCiAJaWYgKCFJU19FUlIoYmFja3BhZ2Up KSB7DQogCQl3YWl0X29uX3BhZ2VfbG9ja2VkKGJhY2twYWdlKTsNCkBAIC0x ODk0LDExICsyMTEwLDE3IEBAIG5ucGZzX3ByZXBhcmVfd3JpdGUoc3RydWN0 IGZpbGUgKmZpbGUsIHMNCiANCiAJaWYgKG1vZHNpemUgPiBpX3NpemVfcmVh ZChpbm9kZSkpIHsNCiAJCWludCBlcnJvcjsNCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw4LDApDQogCQllcnJvciA9IHZt dHJ1bmNhdGUoaW5vZGUsIG1vZHNpemUpOw0KKyNlbHNlDQorCQllcnJvciA9 IGlub2RlX25ld3NpemVfb2soaW5vZGUsIG1vZHNpemUpOw0KKwkJaWYoIWVy cm9yKQ0KKwkJCXRydW5jYXRlX3NldHNpemUoaW5vZGUsIG1vZHNpemUpOw0K KyNlbmRpZg0KIAkJaWYgKGVycm9yKSB7DQogCQkJcHJpbnRrKCJubnBmc19w cmVwYXJlX3dyaXRlOiB0cnVuY2F0ZSglbGx1KSAtPiAlZFxuIiwNCiAJCQkg ICAgICAgbW9kc2l6ZSwgLWVycm9yKTsNCi0JCQlCVUcoKTsgLyogWFhYIG5v dCBjb3JyZWN0ICovDQorCQkJLypCVUcoKTsqLyAvKiBYWFggbm90IGNvcnJl Y3QgKi8NCiAJCX0NCiAJfQ0KIA0KQEAgLTE5MjUsNyArMjE0Nyw2IEBAIG5u cGZzX3ByZXBhcmVfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIHMNCiB9DQog DQogI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigy LDYsMjgpDQotDQogc3RhdGljIGludA0KIG5ucGZzX3dyaXRlX2JlZ2luKHN0 cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGlu ZywgbG9mZl90IHBvcywNCiB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGZsYWdz LCBzdHJ1Y3QgcGFnZSAqKnBhZ2VwLCB2b2lkICoqZnNkYXRhKQ0KQEAgLTE5 MzMsNTggKzIxNTQsNjcgQEAgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBmbGFn cywgc3RydWN0IHBhZw0KIAlzdHJ1Y3QgcGFnZSAqcGFnZTsNCiAJcGdvZmZf dCBpbmRleDsNCiAJdW5zaWduZWQgZnJvbTsNCisJaW50IHJldCA9IDA7DQog DQogCWluZGV4ID0gcG9zID4+IFBBR0VfQ0FDSEVfU0hJRlQ7DQogCWZyb20g PSBwb3MgJiAoUEFHRV9DQUNIRV9TSVpFIC0gMSk7DQogDQotI2lmZGVmIEFP UF9GTEFHX05PRlMNCiAJcGFnZSA9IGdyYWJfY2FjaGVfcGFnZV93cml0ZV9i ZWdpbihtYXBwaW5nLCBpbmRleCwgZmxhZ3MpOw0KLSNlbHNlDQotCXBhZ2Ug PSBfX2dyYWJfY2FjaGVfcGFnZShtYXBwaW5nLCBpbmRleCk7DQotI2VuZGlm DQotCWlmIChwYWdlID09IE5VTEwpDQorCWlmICghcGFnZSkNCiAJCXJldHVy biAtRU5PTUVNOw0KIA0KIAkqcGFnZXAgPSBwYWdlOw0KIA0KLQlyZXR1cm4g bm5wZnNfcHJlcGFyZV93cml0ZShmaWxlLCBwYWdlLCBmcm9tLCBmcm9tICsg bGVuKTsNCi19DQorCXJldCA9IG5ucGZzX3ByZXBhcmVfd3JpdGUoZmlsZSwg cGFnZSwgZnJvbSwgZnJvbSArIGxlbik7DQorCWlmIChyZXQpIHsNCisJCXVu bG9ja19wYWdlKHBhZ2UpOw0KKwkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2Up Ow0KKwl9DQogDQorCXJldHVybiByZXQ7DQorfQ0KICNlbmRpZg0KIA0KKy8q IFhYWCB3ZSB1c2UgdGhlIHN5c3RlbSBwcm92aWRlZCBzaW1wbGVfY29tbWl0 X3dyaXRlIGluc3RlYWQgc28gdGhpcyBmdW5jdGlvbiBpcyB1bnVzZWQgZm9y IG5vdyAqLw0KKyNpZiAwDQogc3RhdGljIGludA0KIG5ucGZzX2NvbW1pdF93 cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UsDQog CQkgICB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bykNCiB7DQotICAgIHN0 cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5nLT5ob3N0Ow0KLSAg ICBsb2ZmX3QgcG9zID0gKChsb2ZmX3QpcGFnZS0+aW5kZXggPDwgUEFHRV9D QUNIRV9TSElGVCkgKyB0bzsNCisJc3RydWN0IGlub2RlICppbm9kZSA9IHBh Z2UtPm1hcHBpbmctPmhvc3Q7DQorCWxvZmZfdCBwb3MgPSAoKGxvZmZfdClw YWdlLT5pbmRleCA8PCBQQUdFX0NBQ0hFX1NISUZUKSArIHRvOw0KIA0KLSAg ICBpZiAocG9zID4gaW5vZGUtPmlfc2l6ZSkgew0KLQlpX3NpemVfd3JpdGUo aW5vZGUsIHBvcyk7DQorCWlmICghUGFnZVVwdG9kYXRlKHBhZ2UpKQ0KKwkJ U2V0UGFnZVVwdG9kYXRlKHBhZ2UpOw0KIA0KLQlzcGluX2xvY2soJmlub2Rl LT5pX2xvY2spOw0KLQlpbm9kZS0+aV9ibG9ja3MgPSAocG9zICsgSV9CTE9D S1NfVU5JVCAtIDEpID4+IElfQkxPQ0tTX0JJVFM7DQotCXNwaW5fdW5sb2Nr KCZpbm9kZS0+aV9sb2NrKTsNCi0gICAgfQ0KLSAgICBzZXRfcGFnZV9kaXJ0 eShwYWdlKTsNCisJaWYgKHBvcyA+IGlub2RlLT5pX3NpemUpIHsNCisJCWlf c2l6ZV93cml0ZShpbm9kZSwgcG9zKTsNCisNCisJCXNwaW5fbG9jaygmaW5v ZGUtPmlfbG9jayk7DQorCQlpbm9kZS0+aV9ibG9ja3MgPSAocG9zICsgSV9C TE9DS1NfVU5JVCAtIDEpID4+IElfQkxPQ0tTX0JJVFM7DQorCQlzcGluX3Vu bG9jaygmaW5vZGUtPmlfbG9jayk7DQorCX0NCisJc2V0X3BhZ2VfZGlydHko cGFnZSk7DQogDQogI2lmIDANCi0gICAgew0KLQljaGFyICphZGRyOw0KLQlr bWFwKHBhZ2UpOw0KLQlhZGRyID0gcGFnZV9hZGRyZXNzKHBhZ2UpOw0KLQlO TlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfY29tbWl0X3dyaXRlKCVwKTog JXgleCV4JXhcbiIsDQorCXsNCisJICAgIGNoYXIgKmFkZHI7DQorCSAgICBr bWFwKHBhZ2UpOw0KKwkgICAgYWRkciA9IHBhZ2VfYWRkcmVzcyhwYWdlKTsN CisJICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19jb21taXRfd3Jp dGUoJXApOiAleCV4JXgleFxuIiwNCiAJCQkgICAgIGZpbGUtPmZfbWFwcGlu Zy0+aG9zdCwgDQogCQkJICAgICBhZGRyWzBdLCBhZGRyWzFdLCBhZGRyWzJd LCBhZGRyWzNdKSk7DQotCWt1bm1hcChwYWdlKTsNCi0gICAgfQ0KKwkgICAg a3VubWFwKHBhZ2UpOw0KKwl9DQogI2VuZGlmDQotICAgIA0KLSAgICByZXR1 cm4gMDsNCisgDQorCXJldHVybiAwOw0KIH0NCisjZW5kaWYNCiANCiAjaWYg TElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkN Ci0NCisvKiBYWFggd2UgdXNlIHRoZSBzeXN0ZW0gcHJvdmlkZWQgc2ltcGxl X3dyaXRlX2VuZCBpbnN0ZWFkIHNvIHRoaXMgZnVuY3Rpb24gaXMgdW51c2Vk IGZvciBub3cgKi8NCisjaWYgMA0KIHN0YXRpYyBpbnQNCiBubnBmc193cml0 ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNl ICptYXBwaW5nLCBsb2ZmX3QgcG9zLA0KIAkJdW5zaWduZWQgbGVuLCB1bnNp Z25lZCBjb3BpZWQsIHN0cnVjdCBwYWdlICpwYWdlLCB2b2lkICpmc2RhdGEp DQpAQCAtMTk5MywxMCArMjIyMywxOCBAQCBubnBmc193cml0ZV9lbmQoc3Ry dWN0IGZpbGUgKmZpbGUsIHN0cnVjDQogDQogCS8qIHplcm8gdGhlIHN0YWxl IHBhcnQgb2YgdGhlIHBhZ2UgaWYgd2UgZGlkIGEgc2hvcnQgY29weSAqLw0K IAlpZiAoY29waWVkIDwgbGVuKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAkJdm9pZCAqa2FkZHIgPSBr bWFwX2F0b21pYyhwYWdlLCBLTV9VU0VSMCk7DQorI2Vsc2UNCisJCXZvaWQg KmthZGRyID0ga21hcF9hdG9taWMocGFnZSk7DQorI2VuZGlmDQogCQltZW1z ZXQoa2FkZHIgKyBmcm9tICsgY29waWVkLCAwLCBsZW4gLSBjb3BpZWQpOw0K IAkJZmx1c2hfZGNhY2hlX3BhZ2UocGFnZSk7DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAkJa3VubWFwX2F0 b21pYyhrYWRkciwgS01fVVNFUjApOw0KKyNlbHNlDQorCQlrdW5tYXBfYXRv bWljKGthZGRyKTsNCisjZW5kaWYNCiAJfQ0KIA0KIAlubnBmc19jb21taXRf d3JpdGUoZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGNvcGllZCk7DQpAQCAt MjAwNiw3ICsyMjQ0LDcgQEAgbm5wZnNfd3JpdGVfZW5kKHN0cnVjdCBmaWxl ICpmaWxlLCBzdHJ1Yw0KIA0KIAlyZXR1cm4gY29waWVkOw0KIH0NCi0NCisj ZW5kaWYNCiAjZW5kaWYNCiANCiBjb25zdA0KQEAgLTIwMTUsMTAgKzIyNTMs MTAgQEAgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBubnBmc19h bw0KIAkud3JpdGVwYWdlID0gbm5wZnNfd3JpdGVwYWdlLA0KICNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCS5w cmVwYXJlX3dyaXRlID0gbm5wZnNfcHJlcGFyZV93cml0ZSwNCi0JLmNvbW1p dF93cml0ZSA9IG5ucGZzX2NvbW1pdF93cml0ZSwNCisJLmNvbW1pdF93cml0 ZSA9IHNpbXBsZV9jb21taXRfd3JpdGUsDQogI2Vsc2UNCiAJLndyaXRlX2Jl Z2luID0gbm5wZnNfd3JpdGVfYmVnaW4sDQotCS53cml0ZV9lbmQgPSBubnBm c193cml0ZV9lbmQsDQorCS53cml0ZV9lbmQgPSBzaW1wbGVfd3JpdGVfZW5k LA0KICNlbmRpZg0KIH07DQogDQpAQCAtMjAyNyw4ICsyMjY1LDEzIEBAIHN0 cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgbm5wZnNfYW8NCiAgKi8N CiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2ZpbGVfb3BlcmF0 aW9ucyA9IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxNiwwKQ0KICAgICAuYWlvX3JlYWQJPSBubnBmc19haW9fcmVh ZCwNCiAgICAgLmFpb193cml0ZQk9IG5ucGZzX2Fpb193cml0ZSwNCisjZWxz ZQ0KKyAgICAucmVhZF9pdGVyCT0gbm5wZnNfcmVhZF9pdGVyLA0KKyAgICAu d3JpdGVfaXRlcgk9IG5ucGZzX3dyaXRlX2l0ZXIsDQorI2VuZGlmDQogICAg IC5tbWFwCT0gbm5wZnNfZmlsZV9tbWFwLA0KICAgICAub3Blbgk9IG5ucGZz X29wZW4sDQogICAgIC5mbHVzaAk9IG5ucGZzX2ZsdXNoLA0KQEAgLTIwNDEs NyArMjI4NCwxMSBAQCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2Rl YWRfb3BlcmF0DQogfTsNCiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5u cGZzX2Rpcl9vcGVyYXRpb25zID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDExLDApDQogICAgIC5yZWFkZGlyCT0g bm5wZnNfcmVhZGRpciwNCisjZWxzZQ0KKyAgICAuaXRlcmF0ZSAgICA9IG5u cGZzX2l0ZXJhdGUsDQorI2VuZGlmDQogICAgIC5mbHVzaAk9IG5ucGZzX2Zs dXNoLA0KIH07DQogDQpAQCAtMjA3OCw2ICsyMzI1LDEwIEBAIHN0cnVjdCBp bm9kZV9vcGVyYXRpb25zIG5ucGZzX2RlYWRfaW5vZGUNCiANCiBzdHJ1Y3Qg aW5vZGVfb3BlcmF0aW9ucyBubnBmc19saW5rX2lub2RlX29wZXJhdGlvbnMg PSB7DQogICAgIC5yZWFkbGluayAJCT0gbm5wZnNfcmVhZGxpbmssDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsNSwwKQ0K ICAgICAuZm9sbG93X2xpbmsgCT0gbm5wZnNfZm9sbG93X2xpbmssDQogICAg IC5wdXRfbGluayAJCT0gcGFnZV9wdXRfbGluaywNCisjZWxzZQ0KKyAgICAu Z2V0X2xpbmsJCT0gbm5wZnNfZ2V0X2xpbmssDQorI2VuZGlmDQogfTsNCmRp ZmYgLXVwck4gLVhub2RpZmYgYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25u cGZzX2xvYWQuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYw0KLS0t IGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMJMjAwNi0x MC0zMSAxMTowMjo0MS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhL25ucGZz L2xpbnV4L25ucGZzX2xvYWQuYwkyMDE2LTAxLTEzIDIwOjE0OjAyLjAwMDAw MDAwMCArMDEwMA0KQEAgLTU0LDcgKzU0LDExIEBAIGV4dGVybiBzdHJ1Y3Qg ZmlsZV9vcGVyYXRpb25zIG5ucGZzX2ZvcHMNCiANCiBzdHJ1Y3QgZmlsZV9z eXN0ZW1fdHlwZSBubnBmc19mc190eXBlID0gew0KICAgICAgICBuYW1lOiAg ICAgICAgICAgIm5ucGZzIiwNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICAgICBnZXRfc2I6ICAgICAg ICAgbm5wZnNfZ2V0X3NiLA0KKyNlbHNlDQorICAgICAgIG1vdW50OiAgICAg ICAgICBubnBmc19tb3VudCwNCisjZW5kaWYNCiAgICAgICAga2lsbF9zYjog ICAgICAgIGtpbGxfbGl0dGVyX3N1cGVyLA0KICAgICAgICBvd25lcjogICAg ICAgICAgVEhJU19NT0RVTEUsDQogfTsNCmRpZmYgLXVwck4gLVhub2RpZmYg YXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYyBhcmxh L25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYw0KLS0tIGFybGEtY3ZzLW9s ZC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAxMC0wOC0wOCAyMjo0 MzowNS4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhL25ucGZzL2xpbnV4L25u cGZzX21lc3NhZ2UuYwkyMDE2LTAxLTI0IDE4OjUyOjI4LjAwMDAwMDAwMCAr MDEwMA0KQEAgLTU1LDkgKzU1LDE1IEBAIHN0YXRpYyB2b2lkDQogbm5wZnNf ZF9yZW1vdmUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KIHsNCiAgICAgTk5Q RlNERUIoWERFQk1TRywgKCJubnBmc19kX3JlbW92ZSAlcFxuIiwgZGVudHJ5 KSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDIsNiwzOCkNCiAgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQogICAg IGRnZXRfbG9ja2VkKGRlbnRyeSk7DQogICAgIHNwaW5fdW5sb2NrKCZkY2Fj aGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZkZW50cnktPmRf bG9jayk7DQorICAgIGRnZXRfZGxvY2soZGVudHJ5KTsNCisgICAgc3Bpbl91 bmxvY2soJmRlbnRyeS0+ZF9sb2NrKTsNCisjZW5kaWYNCiAgICAgZF9kcm9w KGRlbnRyeSk7DQogICAgIGRwdXQoZGVudHJ5KTsNCiB9DQpAQCAtMTIxLDcg KzEyNywxMSBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxub2RlKHN0cnVjdCBu bnBmcyAqDQogICAgIHN0cnVjdCBpbm9kZSAqZGksICppbm9kZTsNCiAgICAg c3RydWN0IGRlbnRyeSAqcGFyZW50ID0gTlVMTDsNCiAgICAgc3RydWN0IHFz dHIgc3FzdHI7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICphbGlhczsN CisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDksMCkNCisgICAgc3RydWN0IGhsaXN0X25vZGUgKmFsaWFzOw0KKyNlbmRp Zg0KICAgICANCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBmc19tZXNz YWdlX2luc3RhbGxub2RlXG4iKSk7DQogICAgIA0KQEAgLTE3NiwxMiArMTg2 LDI2IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGUoc3RydWN0IG5ucGZz ICoNCiAgICAgICoNCiAgICAgICovDQogICAgIA0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgYWxpYXMg PSBkaS0+aV9kZW50cnkubmV4dDsNCiAgICAgd2hpbGUgKGFsaWFzICE9ICZk aS0+aV9kZW50cnkpIHsNCiAJcGFyZW50ID0gbGlzdF9lbnRyeShhbGlhcywg c3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQotCXNwaW5fbG9jaygmZGNhY2hl X2xvY2spOw0KLQlkZ2V0X2xvY2tlZChwYXJlbnQpOw0KLQlzcGluX3VubG9j aygmZGNhY2hlX2xvY2spOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9l bnRyeShwYXJlbnQsIGFsaWFzLCAmZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7 DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o MywxOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJlbnQsICZk aS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9m b3JfZWFjaF9lbnRyeShwYXJlbnQsICZkaS0+aV9kZW50cnksIGRfdS5kX2Fs aWFzKSB7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDIsNiwzOCkNCisgICAgc3Bpbl9sb2NrKCZkY2FjaGVf bG9jayk7DQorICAgIGRnZXRfbG9ja2VkKHBhcmVudCk7DQorICAgIHNwaW5f dW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl9sb2Nr KCZwYXJlbnQtPmRfbG9jayk7DQorICAgIGRnZXRfZGxvY2socGFyZW50KTsN CisgICAgc3Bpbl91bmxvY2soJnBhcmVudC0+ZF9sb2NrKTsNCisjZW5kaWYN CiAJZGVudHJ5ID0gZF9sb29rdXAocGFyZW50LCAmc3FzdHIpOw0KIAlOTlBG U0RFQihYREVCTVNHLA0KIAkJICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9k ZTogYWxpYXMgJXAsIGxvb2t1cCAlcFxuIiwNCkBAIC0yMzMsNyArMjU3LDkg QEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZShzdHJ1Y3Qgbm5wZnMgKg0K IAkNCiAJZHB1dChkZW50cnkpOw0KIAlkZW50cnkgPSBOVUxMOw0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJ YWxpYXMgPSBhbGlhcy0+bmV4dDsNCisjZW5kaWYNCiAJZHB1dChwYXJlbnQp Ow0KICAgICB9DQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfbWVz c2FnZV9pbnN0YWxsbm9kZTogZG9uZSBpbnN0YWxsaW5nXG4iKSk7DQpAQCAt MjY4LDcgKzI5NCwxMyBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxhdHRyKHN0 cnVjdCBubnBmcyAqDQogICAgIH0NCiANCiAgICAgaW5vZGUgPSBYTk9ERV9U T19WTk9ERSh0KTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMyw2LDApDQogICAgIGRlbnRyeSA9IGxpc3RfZW50cnkoaW5v ZGUtPmlfZGVudHJ5Lm5leHQsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0K KyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs MTksMCkNCisgICAgZGVudHJ5ID0gaGxpc3RfZW50cnkoaW5vZGUtPmlfZGVu dHJ5LmZpcnN0LCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0K KyAgICBkZW50cnkgPSBobGlzdF9lbnRyeShpbm9kZS0+aV9kZW50cnkuZmly c3QsIHN0cnVjdCBkZW50cnksIGRfdS5kX2FsaWFzKTsNCisjZW5kaWYNCiAg ICAgDQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfbWVzc2FnZV9p bnN0YWxsYXR0ciBuYW1lOiVzXG4iLA0KIAkJICAgICAgIGRlbnRyeS0+ZF9u YW1lLm5hbWUpKTsNCkBAIC0zOTYsMTcgKzQyOCwzNSBAQCBubnBmc19tZXNz YWdlX2luc3RhbGxkYXRhKHN0cnVjdCBubnBmcyAqDQogc3RhdGljIHZvaWQN CiBjbGVhcl9hbGxfY2hpbGRyZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGlu dCBwYXJlbnQpDQogew0KKyAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiww KQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICphbGlhczsNCisjZWxpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAg c3RydWN0IGhsaXN0X25vZGUgKmFsaWFzOw0KKyNlbmRpZg0KIA0KICBhZ2Fp bjoNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Miw2LDM4KQ0KICAgICBzcGluX2xvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxz ZQ0KKyAgICBzcGluX2xvY2soJmlub2RlLT5pX2xvY2spOw0KKyNlbmRpZg0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs MCkNCiAgICAgYWxpYXMgPSBpbm9kZS0+aV9kZW50cnkubmV4dDsNCiAgICAg d2hpbGUgKGFsaWFzICE9ICZpbm9kZS0+aV9kZW50cnkpIHsNCi0Jc3RydWN0 IGRlbnRyeSAqZGVudHJ5Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9l bnRyeShkZW50cnksIGFsaWFzLCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFz KSB7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMywxOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnks ICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0KKyAgICBo bGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnks IGRfdS5kX2FsaWFzKSB7DQorI2VuZGlmDQogCXN0cnVjdCBsaXN0X2hlYWQg KnN1YmRpcnM7DQogCXN0cnVjdCBubnBmc19kZW50cnlfZGF0YSAqeGQ7DQog CQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDYsMCkNCiAJZGVudHJ5ID0gbGlzdF9lbnRyeShhbGlhcywgc3RydWN0IGRl bnRyeSwgZF9hbGlhcyk7DQorI2VuZGlmDQogCWlmIChkZW50cnkgPT0gTlVM TCkgew0KIAkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTIFBhbmljOiBk ZW50cnkgaW4gYWxpYXMgbGlzdCBpcyBudWxsXG4iKTsNCiAJICAgIGJyZWFr Ow0KQEAgLTQyMiw3ICs0NzIsMTEgQEAgY2xlYXJfYWxsX2NoaWxkcmVuIChz dHJ1Y3QgaW5vZGUgKmlub2RlLA0KIAlzdWJkaXJzID0gZGVudHJ5LT5kX3N1 YmRpcnMubmV4dDsNCiAJd2hpbGUgKHN1YmRpcnMgIT0gJmRlbnRyeS0+ZF9z dWJkaXJzKSB7DQogCSAgICBzdHJ1Y3QgbGlzdF9oZWFkICp0bXAgPSBzdWJk aXJzOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDE5LDApDQogCSAgICBzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9IGxpc3Rf ZW50cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9jaGlsZCk7DQorI2Vs c2UNCisJICAgIHN0cnVjdCBkZW50cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0 bXAsIHN0cnVjdCBkZW50cnksIGRfY2hpbGQpOw0KKyNlbmRpZg0KIAkgICAg c3ViZGlycyA9IHRtcC0+bmV4dDsNCiAJICAgIE5OUEZTREVCKFhERUJNU0cs ICgiY2xlYXJfYWxsX2NoaWxkcmVuIGNoaWxkOiAlLipzIGlub2RlOiAlcC8l cCAiDQogCQkJICAgICAgICJkY291bnQ6ICVkIGFsaWFzZXM6XG4iLA0KQEAg LTQ0MiwxNCArNDk2LDI0IEBAIGNsZWFyX2FsbF9jaGlsZHJlbiAoc3RydWN0 IGlub2RlICppbm9kZSwNCiANCiAJICAgIC8qIFRocm93IGltbWVkaWF0ZWx5 ICovDQogCSAgICBpZiAobm5wZnNfZGNvdW50KGNoaWxkKSA9PSAwKSB7DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwz OCkNCiAJICAgICAgICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNl bHNlDQorCSAgICAgICAgc3Bpbl91bmxvY2soJmlub2RlLT5pX2xvY2spOw0K KyNlbmRpZg0KIAkJbm5wZnNfZF9yZW1vdmUoY2hpbGQpOw0KIAkJZ290byBh Z2FpbjsNCiAJICAgIH0NCiAJfQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJYWxpYXMgPSBhbGlhcy0+bmV4 dDsNCisjZW5kaWYNCiAgICAgfQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogICAgIHNwaW5fdW5sb2NrKCZk Y2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl91bmxvY2soJmlub2Rl LT5pX2xvY2spOw0KKyNlbmRpZg0KIH0NCiANCiBzdGF0aWMgdm9pZA0KQEAg LTcxOSwxMiArNzgzLDIyIEBAIG5ucGZzX21lc3NhZ2VfdmVyc2lvbihzdHJ1 Y3Qgbm5wZnMgKm5ucGYNCiANCiAgICAgLyogc2FuaXR5IGNoZWNrIGJlZm9y ZSB3ZSBsb29rIGF0IGl0ICovDQogICAgIGlmIChzaXplID09IHNpemVvZigq bWVzc2FnZSkgJiYgbWVzc2FnZS0+dmVyc2lvbiA9PSBOTlBGU19WRVJTSU9O KSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMTksMCkNCiAJc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKwlz dHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KIAlpbnQgZXJyb3I7DQogDQog CXVpbnQ2NF90IGJsb2Nrc2l6ZSA9IG1lc3NhZ2UtPmJsb2Nrc2l6ZTsNCiAN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2 LDM5KQ0KIAllcnJvciA9IHBhdGhfbG9va3VwKCIuIiwgMCwgJm5kKTsNCisj ZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5 LDApDQorCWVycm9yID0ga2Vybl9wYXRoKCIuIiwgMCwgJm5kLnBhdGgpOw0K KyNlbHNlDQorCWVycm9yID0ga2Vybl9wYXRoKCIuIiwgMCwgJnBhdGgpOw0K KyNlbmRpZg0KIAlpZiAoZXJyb3IpIHsNCiAJICAgIC8qDQogCSAgICAgKiBC YWQgY2FjaGUgcm9vdCwganVzdCByZXR1cm4uDQpAQCAtNzM1LDExICs4MDks MTcgQEAgbm5wZnNfbWVzc2FnZV92ZXJzaW9uKHN0cnVjdCBubnBmcyAqbm5w Zg0KIAkJICAgIm5ucGZzX21lc3NhZ2VfdmVyc2lvbiBmYWlsZWQgcGF0aF9s b29rdXAsICINCiAJCSAgICJlcnJubzogJWRcbiIsIGVycm9yKTsNCiAJfSBl bHNlIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMywxOSwwKQ0KIAkgICAgbm5wZnNwLT5jYWNoZXJvb3QgPSBtbnRnZXQo bmQucGF0aC5tbnQpOw0KIAkgICAgbm5wZnNwLT5jYWNoZWRpciA9IGRnZXQo bmQucGF0aC5kZW50cnkpOw0KIAkgICAgcGF0aF9wdXQoJm5kLnBhdGgpOw0K KyNlbHNlDQorCSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdldChwYXRo Lm1udCk7DQorCSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChwYXRoLmRl bnRyeSk7DQorCSAgICBwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlmDQogCSAg ICANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9O KDIsNiwyOCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMiw2LDI5KQ0KIAkgICAgbm5wZnNwLT51aWQgPSBjdXJyZW50LT5m c3VpZDsNCiAJICAgIG5ucGZzcC0+Z2lkID0gY3VycmVudC0+ZnNnaWQ7DQog I2Vsc2UNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS1jdnMtb2xkL25ucGZz L2xpbnV4L25ucGZzX25vZGUuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX25v ZGUuYw0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19ub2Rl LmMJMjAwNy0wMS0wMyAxNDo1MjowMi4wMDAwMDAwMDAgKzAxMDANCisrKyBh cmxhL25ucGZzL2xpbnV4L25ucGZzX25vZGUuYwkyMDE2LTA1LTA2IDE3OjAx OjEwLjAwMDAwMDAwMCArMDIwMA0KQEAgLTEzMiw3ICsxMzIsMTIgQEAgbm5w ZnNfc2V0c2l6ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1aW50Ng0KIAlwcmlu dGsoIm5ucGZzX3NldHNpemU6IHRydW5jYXRpbmcgQDB4JWxsdVxuIiwNCiAJ ICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpc2l6ZSk7DQogI2VuZGlmDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOCww KQ0KIAl2bXRydW5jYXRlKGlub2RlLCBzaXplKTsgLyogWFhYIHJldHZhbCAq Lw0KKyNlbHNlDQorCWlmKCFpbm9kZV9uZXdzaXplX29rKGlub2RlLCBzaXpl KSkNCisJICAgIHRydW5jYXRlX3NldHNpemUoaW5vZGUsIHNpemUpOw0KKyNl bmRpZg0KIAlubnBmc19ibG9ja190cnVuY2F0ZSh4biwgc2l6ZSk7DQogICAg IH0NCiB9DQpAQCAtMTUwLDkgKzE1NSwxOCBAQCBubnBmc19hdHRyMmlub2Rl KGNvbnN0IHN0cnVjdCBubnBmc19hdHRyDQogCXN0cnVjdCB0aW1lc3BlYyBu b3RpbWUgPSB7MH07DQogDQogCWlub2RlLT5pX21vZGUgICA9IDA7DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkN CiAJaW5vZGUtPmlfdWlkICAgID0gMDsNCiAJaW5vZGUtPmlfZ2lkICAgID0g MDsNCisjZWxzZQ0KKwlpbm9kZS0+aV91aWQgICAgPSBLVUlEVF9JTklUKDAp Ow0KKwlpbm9kZS0+aV9naWQgICAgPSBLR0lEVF9JTklUKDApOw0KKyNlbmRp Zg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDIsMCkNCiAJaW5vZGUtPmlfbmxpbmsgID0gMTsNCisjZWxzZQ0KKwlzZXRf bmxpbmsoaW5vZGUsIDEpOw0KKyNlbmRpZg0KIAlpbm9kZS0+aV9hdGltZSAg PSBub3RpbWU7DQogCWlub2RlLT5pX210aW1lICA9IG5vdGltZTsNCiAJaW5v ZGUtPmlfY3RpbWUgID0gbm90aW1lOw0KQEAgLTE2OSw3ICsxODMsMTEgQEAg bm5wZnNfYXR0cjJpbm9kZShjb25zdCBzdHJ1Y3Qgbm5wZnNfYXR0cg0KICAg ICBpZiAoWEFfVkFMSURfR0lEKGF0dHIpKQ0KIAlpbm9kZS0+aV9naWQgICAg PSBhdHRyLT54YV9naWQ7DQogICAgIGlmIChYQV9WQUxJRF9OTElOSyhhdHRy KSkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o MywyLDApDQogCWlub2RlLT5pX25saW5rICA9IGF0dHItPnhhX25saW5rOw0K KyNlbHNlDQorCXNldF9ubGluayhpbm9kZSwgYXR0ci0+eGFfbmxpbmspOw0K KyNlbmRpZg0KICAgICANCiAgICAgaWYgKFhBX1ZBTElEX1NJWkUoYXR0cikp IHsNCiAJbm5wZnNfc2V0c2l6ZShpbm9kZSwgYXR0ci0+eGFfc2l6ZSk7DQpA QCAtMjY2LDYgKzI4NCw5IEBAIG5ucGZzX2ZpbGxfaW5vZGUoc3RydWN0IGlu b2RlICppbm9kZSwgc3QNCiAJaW5vZGUtPmlfb3AgID0gJm5ucGZzX2xpbmtf aW5vZGVfb3BlcmF0aW9uczsNCiAJaW5vZGUtPmlfZm9wID0gJm5ucGZzX2xp bmtfb3BlcmF0aW9uczsNCiAJaW5vZGUtPmlfbWFwcGluZy0+YV9vcHMgPSAm bm5wZnNfYW9wczsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5F TF9WRVJTSU9OKDQsNSwwKQ0KKwlpbm9kZV9ub2hpZ2htZW0oaW5vZGUpOw0K KyNlbmRpZg0KICAgICB9IGVsc2Ugew0KIAlpbm9kZS0+aV9vcCAgPSAmbm5w ZnNfZGVhZF9pbm9kZV9vcGVyYXRpb25zOw0KIAlpbm9kZS0+aV9mb3AgPSAm bm5wZnNfZGVhZF9vcGVyYXRpb25zOw0KQEAgLTUxMCwxMiArNTMxLDI0IEBA IG5ucGZzX2hhc19wYWcoY29uc3Qgc3RydWN0IG5ucGZzX25vZGUgKngNCiBp bnQNCiBubnBmc19ub2RlX3VzZXJzKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQog ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDYsMCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqcG9zOw0KKyNlbHNlDQor ICAgIHN0cnVjdCBobGlzdF9ub2RlICpwb3M7DQorI2VuZGlmDQogICAgIGlu dCB1c2VycyA9IDA7DQogICAgIA0KICAgICAvKiBYWFggdGhpcyBzaG91bGQg cHJvYmFibHkgYmUgcHJvdGVjdGVkIHNvbWVob3cgKi8NCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIGxp c3RfZm9yX2VhY2gocG9zLCAmaW5vZGUtPmlfZGVudHJ5KSB7DQorI2Vsc2UN CisgICAgaGxpc3RfZm9yX2VhY2gocG9zLCAmaW5vZGUtPmlfZGVudHJ5KSB7 DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMTksMCkNCiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbGlz dF9lbnRyeShwb3MsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KKyNlbHNl DQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGxpc3RfZW50cnkocG9zLCBz dHJ1Y3QgZGVudHJ5LCBkX3UuZF9hbGlhcyk7DQorI2VuZGlmDQogCWlmIChu bnBmc19kY291bnQoZGVudHJ5KSA+IDEpDQogCSAgICB1c2VycysrOw0KICAg ICB9DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9s aW51eC9ubnBmc19zeXNjYWxscy5jIGFybGEvbm5wZnMvbGludXgvbm5wZnNf c3lzY2FsbHMuYw0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBm c19zeXNjYWxscy5jCTIwMTAtMDgtMDggMjI6NDM6MDYuMDAwMDAwMDAwICsw MjAwDQorKysgYXJsYS9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy5jCTIw MTYtMDItMjAgMTk6NDM6NDIuMDAwMDAwMDAwICswMTAwDQpAQCAtNDIsNyAr NDIsOSBAQA0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19zeXNjYWxscy5oPg0K ICNpbmNsdWRlIDxubnBmcy9ubnBmc19jb21tb24uaD4NCiAjaW5jbHVkZSA8 bGludXgvZmlsZS5oPg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLDYsMzkpDQogI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2Nr Lmg+DQorI2VuZGlmDQogI2luY2x1ZGUgPGxpbnV4L3NtcC5oPg0KICNpbmNs dWRlIDxsaW51eC9wcm9jX2ZzLmg+DQogDQpAQCAtNTAsNiArNTIsMTEgQEAN CiAjaW5jbHVkZSA8bGludXgvc2VjdXJpdHkuaD4NCiAjZW5kaWYNCiANCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDMsNyww KQ0KKyN1bmRlZiBTWVNDQUxMSEFDSw0KKy8qIHRoZSBtZXRob2QgdG8gcmVh ZCAnbG93ZXJfYm91bmQnIGRvZXMgbm90IHdvcmsgb24ga2VybmVsIDMuNyBh bmQgbGF0ZXIsIHNlIG5ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyAqLw0KKyNl bmRpZg0KKw0KICNpZiAwDQogI2lmZGVmIENPTkZJR19DT01QQVQNCiAjaW5j bHVkZSA8bGludXgvaW9jdGwzMi5oPg0KQEAgLTgyLDEyICs4OSwyMiBAQCB0 eXBlZGVmIHN0cnVjdCBhZnNwcm9jZGF0YSB7DQogICAgIHVuc2lnbmVkIGxv bmcgc3lzY2FsbDsNCiB9IGFmc3Byb2NkYXRhOw0KIA0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogc3RhdGlj IGludA0KIG5ucGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2Rl LCBzdHJ1Y3QgZmlsZSAqZmlsZSwNCiAJCSAgIHVuc2lnbmVkIGludCBjbWQs IHVuc2lnbmVkIGxvbmcgYXJnKTsNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQor bm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJICAg dW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOw0KKyNlbmRp Zg0KIA0KIHN0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX3By b2Nmc19mb3BzID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLDYsMzYpDQogICAgIC5pb2N0bCA9IG5ucGZzX3Byb2Nm c19pb2N0bCwNCisjZWxzZQ0KKyAgICAudW5sb2NrZWRfaW9jdGwgPSBubnBm c19wcm9jZnNfaW9jdGwsDQorI2VuZGlmDQogfTsNCiANCiANCkBAIC0xNjAs OCArMTc3LDEwIEBAIG5ucGZzX2dldF9wYWdfc2VjKHZvaWQpDQogDQogI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgp DQogICAgIHJldHVybiBjdXJyZW50LT51aWQ7DQotI2Vsc2UNCisjZWxpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQog ICAgIHJldHVybiBjdXJyZW50X3VpZCgpOw0KKyNlbHNlDQorICAgIHsga3Vp ZF90IGt1aWQgPSBjdXJyZW50X3VpZCgpOyByZXR1cm4ga3VpZC52YWw7IH0N CiAjZW5kaWYNCiB9DQogDQpAQCAtMTk5LDcgKzIxOCwxMiBAQCBmaW5kX3Bh ZyhzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kpDQogICAgIE5OUEZTREVCKFhERUJT WVMsICgiZmluZF9wYWc6IG5ncm91cHMgPSAlZFxuIiwgZ2ktPm5ncm91cHMp KTsNCiANCiAgICAgZm9yIChpID0gZ2ktPm5ncm91cHMgLSAxOyBpID49IDA7 IGktLSkgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDE0LDApDQogCWdpZF90IGdyb3VwID0gR1JPVVBfQVQoZ2ksIGkp Ow0KKyNlbHNlDQorCWtnaWRfdCBrZ3JvdXAgPSBHUk9VUF9BVChnaSwgaSk7 DQorCWdpZF90IGdyb3VwID0ga2dyb3VwLnZhbDsNCisjZW5kaWYNCiAJaWYg KChubnBmc19wYWdfdClncm91cCA+PSBOTlBGU19QQUdfTExJTSAmJiAobm5w ZnNfcGFnX3QpZ3JvdXAgPCBOTlBGU19QQUdfVUxJTSkgew0KIAkgICAgTk5Q RlNERUIoWERFQlNZUywNCiAJCSAgICAgKCJmaW5kX3BhZzogRXhpc3Rpbmcg cGFnICV1IGF0IHBvcyAldVxuIiwgZ3JvdXAsIGkpKTsNCkBAIC0yMjAsNyAr MjQ0LDEyIEBAIG5ucGZzX2dldF9wYWdfZ3JvdXAodm9pZCkNCiAgICAgbm5w ZnNfcGFnX3QgcmV0ID0gY3VycmVudC0+dWlkOw0KICNlbHNlDQogICAgIHN0 cnVjdCBncm91cF9pbmZvICpnaSA9IGdldF9jdXJyZW50X2dyb3VwcygpOw0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0 LDApDQogICAgIG5ucGZzX3BhZ190IHJldCA9IGN1cnJlbnRfdWlkKCk7DQor I2Vsc2UNCisgICAga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgpOw0KKyAg ICBubnBmc19wYWdfdCByZXQgPSBrdWlkLnZhbDsNCisjZW5kaWYNCiAjZW5k aWYNCiAgICAgaW50IGk7DQogDQpAQCAtMjMwLDcgKzI1OSwxMSBAQCBubnBm c19nZXRfcGFnX2dyb3VwKHZvaWQpDQogDQogICAgIGkgPSBmaW5kX3BhZyhn aSk7DQogICAgIGlmIChpICE9IE5OUEZTX1BBR19OT1RGT1VORCkNCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0K IAlyZXQgPSBHUk9VUF9BVChnaSwgaSk7DQorI2Vsc2UNCisJeyBrZ2lkX3Qg a2dpZCA9IEdST1VQX0FUKGdpLCBpKTsgcmV0ID0ga2dpZC52YWw7IH0NCisj ZW5kaWYNCiANCiAgICAgcHV0X2dyb3VwX2luZm8oZ2kpOw0KIA0KQEAgLTI4 MCwxMCArMzEzLDE3IEBAIHN0b3JlX3BhZyhubnBmc19wYWdfdCBwYWdudW0p DQogCWNvdW50IC09IE5HUk9VUFNfUEVSX0JMT0NLOw0KICAgICB9DQogDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQs MCkNCiAgICAgaWYgKGZvdW5kKQ0KIAlHUk9VUF9BVChuZXdfZ2ksIGkpID0g cGFnbnVtOw0KICAgICBlbHNlDQogCUdST1VQX0FUKG5ld19naSwgbmV3X2dp LT5uZ3JvdXBzIC0gMSkgPSBwYWdudW07DQorI2Vsc2UNCisgICAgaWYgKGZv dW5kKQ0KKwl7IGtnaWRfdCBrZ2lkID0gS0dJRFRfSU5JVChwYWdudW0pOyBH Uk9VUF9BVChuZXdfZ2ksIGkpID0ga2dpZDsgfQ0KKyAgICBlbHNlDQorCXsg a2dpZF90IGtnaWQgPSBLR0lEVF9JTklUKHBhZ251bSk7IEdST1VQX0FUKG5l d19naSwgbmV3X2dpLT5uZ3JvdXBzIC0gMSkgPSBrZ2lkOyB9DQorI2VuZGlm DQogICAgIA0KICAgICBzZXRfY3VycmVudF9ncm91cHMobmV3X2dpKTsNCiAg ICAgcHV0X2dyb3VwX2luZm8obmV3X2dpKTsNCkBAIC0zMjUsOCArMzY1LDEw IEBAIG5ucGZzX2dldF9wYWcoKQ0KIA0KICNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICByZXR1cm4gY3Vy cmVudC0+dWlkOw0KLSNlbHNlDQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICByZXR1cm4gY3VycmVu dF91aWQoKTsNCisjZWxzZQ0KKyAgICB7IGt1aWRfdCBrdWlkID0gY3VycmVu dF91aWQoKTsgcmV0dXJuIGt1aWQudmFsOyB9DQogI2VuZGlmDQogfQ0KIA0K QEAgLTQzMiw3ICs0NzQsNyBAQCBubnBmc19zZXRncm91cHMxNiAoaW50IGdp ZHNldHNpemUsIG9sZF9nDQogI2VuZGlmIC8qIFNZU0NBTExIQUNLICovDQog I2VuZGlmIC8qIEdST1VQUEFHUyAqLw0KIA0KLXN0cnVjdCBmaWxlX2hhbmRs ZSB7DQorc3RydWN0IG5ucGZzX2ZpbGVfaGFuZGxlIHsNCiAgICAgbm5wZnNf ZGV2X3QgZGV2Ow0KICAgICBpbm9fdCBpbm9kZTsNCiAgICAgX191MzIgZ2Vu Ow0KQEAgLTUxOSwyNiArNTYxLDU4IEBAIG5ucGZzX2RlYnVnX3ByaW50IChz dHJ1Y3QgYXJsYVZpY2VJb2N0bCANCiAgKiBmb2xsb3cgc3ltbGlua3MgaWZm IGBmb2xsb3cnDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiBzdGF0aWMgc3RydWN0IGRlbnRy eSAqDQogdXNlcl9wYXRoMmRlbnRyeSAoc3RydWN0IG5hbWVpZGF0YSAqbmQs IGNoYXIgKnVzZXJfcGF0aCwgaW50IGZvbGxvdykNCisjZWxzZQ0KK3N0YXRp YyBzdHJ1Y3QgZGVudHJ5ICoNCit1c2VyX3BhdGgyZGVudHJ5IChzdHJ1Y3Qg cGF0aCAqcGF0aCwgY2hhciAqdXNlcl9wYXRoLCBpbnQgZm9sbG93KQ0KKyNl bmRpZg0KIHsNCiAgICAgY2hhciAqa25hbWU7DQogICAgIGludCBmbGFncyA9 IDA7DQogICAgIGludCBlcnJvciA9IDA7DQogDQotICAgIGtuYW1lID0gZ2V0 bmFtZSAodXNlcl9wYXRoKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMyw3LDApDQorICAgIGtuYW1lID0gZ2V0bmFtZSh1 c2VyX3BhdGgpOw0KKyNlbHNlDQorICAgIGtuYW1lID0gX19nZXRuYW1lKCk7 DQorI2VuZGlmDQorDQogICAgIGlmIChJU19FUlIoa25hbWUpKQ0KIAlyZXR1 cm4gRVJSX1BUUihQVFJfRVJSKGtuYW1lKSk7DQogICAgIGlmIChmb2xsb3cp DQogCWZsYWdzIHw9IExPT0tVUF9GT0xMT1c7DQogDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDcsMCkNCisgICAgZXJy b3IgPSBzdHJuY3B5X2Zyb21fdXNlcihrbmFtZSwgdXNlcl9wYXRoLCBQQVRI X01BWCk7DQorICAgIGlmIChlcnJvciA8IDAgfHwgZXJyb3IgPT0gUEFUSF9N QVgpIHsNCisJX19wdXRuYW1lKGtuYW1lKTsNCisJcmV0dXJuIEVSUl9QVFIo ZXJyb3IpOw0KKyAgICB9DQorI2VuZGlmDQorDQogICAgIE5OUEZTREVCKFhE RUJNU0csICgibm5wZnNfc3lzY2FsbDogbG9va2luZyB1cDogJXNcbiIsIGtu YW1lKSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDIsNiwzOSkNCiAgICAgZXJyb3IgPSBwYXRoX2xvb2t1cChrbmFt ZSwgZmxhZ3MsIG5kKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDE5LDApDQorICAgIGVycm9yID0ga2Vybl9wYXRo KGtuYW1lLCBmbGFncywgJihuZC0+cGF0aCkpOw0KKyNlbHNlDQorICAgIGVy cm9yID0ga2Vybl9wYXRoKGtuYW1lLCBmbGFncywgcGF0aCk7DQorI2VuZGlm DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs NywwKQ0KICAgICBwdXRuYW1lKGtuYW1lKTsNCisjZWxzZQ0KKyAgICBfX3B1 dG5hbWUoa25hbWUpOw0KKyNlbmRpZg0KICAgICBpZiAoZXJyb3IpDQogCXJl dHVybiBFUlJfUFRSKGVycm9yKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICByZXR1cm4gbmQtPnBh dGguZGVudHJ5Ow0KKyNlbHNlDQorICAgIHJldHVybiBwYXRoLT5kZW50cnk7 DQorI2VuZGlmDQogfQ0KIA0KIGFzbWxpbmthZ2UgbG9uZw0KQEAgLTU1Mywx MyArNjI3LDIxIEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KICAg ICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9waW9jdGwgKm1zZyA9IE5VTEw7DQog ICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX3dha2V1cCAqbXNnMjsNCiAgICAg c3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gTlVMTDsNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1 Y3QgbmFtZWlkYXRhIG5kOw0KKyNlbHNlDQorICAgIHN0cnVjdCBwYXRoIHBh dGg7DQorI2VuZGlmDQogICAgIA0KICAgICBtc2cgPSBrbWFsbG9jKHNpemVv ZigqbXNnKSwgR0ZQX0tFUk5FTCk7DQogICAgIGlmIChtc2cgPT0gTlVMTCkN CiAgICAgICByZXR1cm4gLUVOT01FTTsNCiANCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICBsb2NrX2tl cm5lbCgpOw0KKyNlbHNlDQorICAgIC8qIFhYWCBsb2NrX2tlcm5lbCgpIGlz IHJlbW92ZWQsIGNvbnNpZGVyIGFkZGluZyBhbiBwcml2YXRlIGxvY2sgKi8N CisjZW5kaWYNCiANCiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJzeXNfYWZz IGtlcm5lbCBsb2NrZWRcbiIpKTsNCiANCkBAIC01OTcsNyArNjc5LDExIEBA IHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KIAkgICAgfQ0KIAl9DQog CWlmIChhX3BhdGhQICE9IE5VTEwpIHsNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAkgICAgZGVudHJ5ID0g dXNlcl9wYXRoMmRlbnRyeSAoJm5kLCBhX3BhdGhQLCBhX2ZvbGxvd1N5bWxp bmtzKTsNCisjZWxzZQ0KKwkgICAgZGVudHJ5ID0gdXNlcl9wYXRoMmRlbnRy eSAoJnBhdGgsIGFfcGF0aFAsIGFfZm9sbG93U3ltbGlua3MpOw0KKyNlbmRp Zg0KIAkgICAgaWYgKCFkZW50cnkpIHsNCiAJCWVycm9yID0gLUVJTlZBTDsN CiAJCWdvdG8gdW5sb2NrOw0KQEAgLTY5MywxMyArNzc5LDIxIEBAIHN5c19h ZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KICAgICANCiAgdW5sb2NrOg0KICAg ICBpZiAoZGVudHJ5KQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDE5LDApDQogCXBhdGhfcHV0KCZuZC5wYXRoKTsNCisj ZWxzZQ0KKwlwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlmDQogDQogICAgIE5O UEZTREVCKFhERUJTWVMsICgibm5wZnNfc3lzY2FsbCByZXR1cm5zIGVycm9y OiAlbGRcbiIsIGVycm9yKSk7DQogDQogICAgIE5OUEZTREVCKFhERUJTWVMs ICgic3lzX2FmcyBrZXJuZWwgdW5sb2NrXG4iKSk7DQogICAgIGtmcmVlKG1z Zyk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDIsNiwzOSkNCiAgICAgdW5sb2NrX2tlcm5lbCgpOw0KKyNlbHNlDQorICAg IC8qIFhYWCBzZWUgdGhlIGNvbW1lbnQgYXQgbG9ja19rZXJuZWwoKSBhYm92 ZSAqLw0KKyNlbmRpZg0KIA0KICAgICByZXR1cm4gZXJyb3I7DQogfQ0KQEAg LTc0OCw5ICs4NDIsMTUgQEAgc3lzX2FmcyAoaW50IG9wZXJhdGlvbiwNCiAJ CSAgICAgICBhX2ZvbGxvd1N5bWxpbmtzKTsNCiB9DQogDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiBzdGF0 aWMgaW50DQogbm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5v ZGUsIHN0cnVjdCBmaWxlICpmaWxlLA0KIAkJICAgdW5zaWduZWQgaW50IGNt ZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2Vsc2UNCitzdGF0aWMgbG9uZw0K K25ucGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwNCisJCSAg IHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQ0KKyNlbmRp Zg0KIHsNCiAgICAgYWZzcHJvY2RhdGEgYXJnczsNCiAgICAgbG9uZyByZXQ7 DQpAQCAtODA3LDcgKzkwNywxMSBAQCBzdGF0aWMgaW50IG5ucGZzX2luaXRf cHJvY2ZzKHZvaWQpDQogICAgIG5ucGZzX3Byb2Nmc19kaXItPm93bmVyID0g VEhJU19NT0RVTEU7DQogI2VuZGlmDQogICAgIA0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEwLDApDQogICAgIGVudHJ5 ID0gY3JlYXRlX3Byb2NfZW50cnkoTk5QRlNfUFJPQ19OT0RFLCAwNjY2LCBu bnBmc19wcm9jZnNfZGlyKTsNCisjZWxzZQ0KKyAgICBlbnRyeSA9IHByb2Nf Y3JlYXRlKE5OUEZTX1BST0NfTk9ERSwgMDY2NiwgTlVMTCwgJm5ucGZzX3By b2Nmc19mb3BzKTsNCisjZW5kaWYNCiAgICAgaWYgKGVudHJ5ID09IE5VTEwp IHsNCiAJTk5QRlNERUIoWERFQlNZUywgKCJubnBmc19pbml0X3Byb2Nmczog bm8gbm9kZVxuIikpOw0KIAlyZW1vdmVfcHJvY19lbnRyeSgiZnMvIiBOTlBG U19QUk9DX0RJUiwgTlVMTCk7DQpAQCAtODE3LDcgKzkyMSw5IEBAIHN0YXRp YyBpbnQgbm5wZnNfaW5pdF9wcm9jZnModm9pZCkNCiAjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDMwKQ0KICAgICBlbnRy eS0+b3duZXIgPSBUSElTX01PRFVMRTsNCiAjZW5kaWYNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMCwwKQ0KICAgICBl bnRyeS0+cHJvY19mb3BzID0gJm5ucGZzX3Byb2Nmc19mb3BzOw0KKyNlbmRp Zg0KIA0KICNpZmRlZiBTWVNDQUxMQ09NUEFUDQogICAgIGlmIChyZWdpc3Rl cl9pb2N0bDMyX2NvbnZlcnNpb24oQVJMQV9WSU9DX1NZU0NBTEwzMiwgbm5w ZnNfcHJvY2ZzX2lvY3RsMzIpKSB7DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFy bGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdl LmMgYXJsYS9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMN Ci0tLSBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMt bG9zc2FnZS5jCTIwMTAtMDgtMDggMjI6NDM6MDUuMDAwMDAwMDAwICswMjAw DQorKysgYXJsYS9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdl LmMJMjAxNi0wMS0xMyAyMTo1MTo0OS4wMDAwMDAwMDAgKzAxMDANCkBAIC01 MCw4ICs1MCwxNyBAQA0KIFJDU0lEKCIkSWQ6IG5ucGZzX3N5c2NhbGxzLWxv c3NhZ2UuYyx2IDEuMTkgMjAxMC8wOC8wOCAyMDo0MzowNSB0b2wgRXhwICQi KTsNCiAjZW5kaWYNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtF Uk5FTF9WRVJTSU9OKDMsNywwKQ0KKy8qIHRoZSBtZXRob2QgdG8gcmVhZCAn bG93ZXJfYm91bmQnIGRvZXMgbm90IHdvcmsgb24ga2VybmVsIDMuNyBhbmQg bGF0ZXIgKi8NCisjdW5kZWYgU1lTQ0FMTEhBQ0sNCisjZW5kaWYNCisNCiAj aW5jbHVkZSA8bGludXgva2FsbHN5bXMuaD4NCisjaWZkZWYgU1lTQ0FMTEhB Q0sNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Myw3LDApDQogc3RhdGljIHZvaWQgKmxvd2VyX2JvdW5kID0gJmtlcm5lbF90 aHJlYWQ7DQorI2VuZGlmDQorI2VuZGlmDQogDQogdm9pZCAqIF9fYXR0cmli dXRlX18oKHdlYWspKSBzeXNfY2FsbF90YWJsZSh2b2lkKTsNCiBubnBmc19z eXNfY2FsbF9mdW5jdGlvbiAqbm5wZnNfc3lzX2NhbGxfdGFibGUgPQ0KQEAg LTY2LDYgKzc1LDggQEAgY29uc3QgY2hhciAqIF9fYXR0cmlidXRlX18oKHdl YWspKQ0KICNpZmRlZiBfX3g4Nl82NF9fDQogZXh0ZXJuIHJ3bG9ja190IHRh c2tsaXN0X2xvY2sgX19hdHRyaWJ1dGVfXygod2VhaykpOw0KICNlbmRpZg0K Kw0KKyNpZmRlZiBTWVNDQUxMSEFDSw0KIHN0YXRpYyB2b2lkICoqDQogZ2V0 X3N0YXJ0X2FkZHIodm9pZCkgew0KICNpZmRlZiBfX3g4Nl82NF9fDQpAQCAt NzQsNiArODUsNyBAQCBnZXRfc3RhcnRfYWRkcih2b2lkKSB7DQogICAgIHJl dHVybiAodm9pZCAqKikmbXV0ZXhfbG9jazsNCiAjZW5kaWYNCiB9DQorI2Vu ZGlmDQogDQogc3RhdGljIGlubGluZSBpbnQgDQoga2FsbHN5bV9pc19lcXVh bCh1bnNpZ25lZCBsb25nIGFkZHIsIGNvbnN0IGNoYXIgKm5hbWUpDQpAQCAt MTQyLDYgKzE1NCw4IEBAIHZlcmlmeSh2b2lkICoqcCkgew0KICAgICByZXR1 cm4gMTsNCiB9DQogDQorI2lmZGVmIFNZU0NBTExIQUNLDQorDQogc3RhdGlj IGlubGluZSBpbnQgbG9va3NfZ29vZCh2b2lkICoqcCkNCiB7DQogICAgIGlm ICgqcCA8PSAodm9pZCopbG93ZXJfYm91bmQgfHwgKnAgPj0gKHZvaWQqKXAp DQpAQCAtMTkxLDMgKzIwNSw1IEBAIG5ucGZzX2ZpeHVwX3N5c2NhbGxfbG9z c2FnZSh2b2lkKQ0KIA0KICAgICByZXR1cm4gMDsNCiB9DQorDQorI2VuZGlm DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51 eC9ubnBmc192ZnNvcHMuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX3Zmc29w cy5jDQotLS0gYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX3Zmc29w cy5jCTIwMTAtMDgtMDggMjI6NDM6MDYuMDAwMDAwMDAwICswMjAwDQorKysg YXJsYS9ubnBmcy9saW51eC9ubnBmc192ZnNvcHMuYwkyMDE2LTAyLTE0IDAx OjM2OjA2LjAwMDAwMDAwMCArMDEwMA0KQEAgLTUwLDcgKzUwLDkgQEAgUkNT SUQoIiRJZDogbm5wZnNfdmZzb3BzLmMsdiAxLjExMSAyMDEwLw0KIHN0cnVj dCBubnBmcyBubnBmc1tOTk5QRlNdOw0KIA0KIHN0YXRpYyB2b2lkIG5ucGZz X3B1dF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogc3Rh dGljIHZvaWQgbm5wZnNfd3JpdGVfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2Nr ICogc2IpOw0KKyNlbmRpZg0KIA0KIHN0YXRpYyBpbnQgbm5wZnNfc3RhdGZz KHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGtzdGF0ZnMgKmJ1Zik7 DQogDQpAQCAtNTksNyArNjEsOSBAQCBzdGF0aWMgc3RydWN0IHN1cGVyX29w ZXJhdGlvbnMgbm5wZnNfc29wDQogICAgIGRlc3Ryb3lfaW5vZGUJOiBubnBm c19ub2RlX2ZyZWUsDQogICAgIGRyb3BfaW5vZGUJCTogZ2VuZXJpY19kZWxl dGVfaW5vZGUsDQogICAgIHB1dF9zdXBlcgkJOiBubnBmc19wdXRfc3VwZXIs DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs NiwwKQ0KICAgICB3cml0ZV9zdXBlcgkJOiBubnBmc193cml0ZV9zdXBlciwN CisjZW5kaWYNCiAgICAgc3RhdGZzCQk6IG5ucGZzX3N0YXRmcywNCiB9Ow0K IA0KQEAgLTg2LDcgKzkwLDExIEBAIG5ucGZzX2ZldGNoX3Jvb3Qoc3RydWN0 IGlub2RlICppKQ0KIAkgKiByb290J3MgcHJpdmlsaWdlcyAodXN1YWxseSBu b25lLCBhbmQgbm9uZSBpcyBuZWVkZWQpLg0KIAkgKi8NCiAJDQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAJ bXNnLmNyZWQudWlkID0gMDsNCisjZWxzZQ0KKwltc2cuY3JlZC51aWQgPSBL VUlEVF9JTklUKDApOw0KKyNlbmRpZg0KIAltc2cuY3JlZC5wYWcgPSAwOw0K IAkNCiAJZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cu aGVhZGVyLCBzaXplb2YobXNnKSk7DQpAQCAtMTIxLDggKzEyOSwxMyBAQCBt YWtlX3Jvb3RfaW5vZGUoc3RydWN0IG5ucGZzICpubnBmc3ApDQogICAgIFhB X1NFVF9NT0RFKCZub2RlLmF0dHIsIFNfSUZESVIgfCAwNzc3KTsNCiAgICAg WEFfU0VUX05MSU5LKCZub2RlLmF0dHIsIDEwMCk7DQogICAgIFhBX1NFVF9T SVpFKCZub2RlLmF0dHIsIDApOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogICAgIFhBX1NFVF9VSUQoJm5v ZGUuYXR0ciwgMCk7DQogICAgIFhBX1NFVF9HSUQoJm5vZGUuYXR0ciwgMCk7 DQorI2Vsc2UNCisgICAgWEFfU0VUX1VJRCgmbm9kZS5hdHRyLCBLVUlEVF9J TklUKDApKTsNCisgICAgWEFfU0VUX0dJRCgmbm9kZS5hdHRyLCBLR0lEVF9J TklUKDApKTsNCisjZW5kaWYNCiAgICAgWEFfU0VUX0FUSU1FKCZub2RlLmF0 dHIsIDApOw0KICAgICBYQV9TRVRfTVRJTUUoJm5vZGUuYXR0ciwgMCk7DQog ICAgIFhBX1NFVF9DVElNRSgmbm9kZS5hdHRyLCAwKTsNCkBAIC0xNTEsNyAr MTY0LDExIEBAIG1ha2Vfcm9vdCAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikN CiAgICAgbm5wZnMtPnJvb3QgPSBpbm9kZTsNCiANCiAgICAgLyogWFhYIGVy cm9yIGhhbmRsaW5nICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsNCwwKQ0KICAgICBkcCA9IGRfYWxsb2Nfcm9vdChp bm9kZSk7DQorI2Vsc2UNCisgICAgZHAgPSBkX21ha2Vfcm9vdChpbm9kZSk7 DQorI2VuZGlmDQogICAgIG5ucGZzX2RfaW5pdChkcCk7DQogICAgIHNiLT5z X3Jvb3QgPSBkcDsNCiAgICAgcmV0dXJuIDA7DQpAQCAtMTc1LDEzICsxOTIs MjcgQEAgbm5wZnNfcmVhZF9zdXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICog cw0KICAgICBOTlBGU0RFQihYREVCVkZPUFMsICgibm5wZnNfcmVhZF9zdXBl cjogYmVnaW4gc2V0dGluZyB2YXJpYWJsZXNcbiIpKTsNCiANCiAgICAgaWYg KGRhdGEgIT0gTlVMTCkgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDE5LDApDQogCXN0cnVjdCBuYW1laWRhdGEgbmQ7 DQorI2Vsc2UNCisJc3RydWN0IHBhdGggcGF0aDsNCisjZW5kaWYNCiAJDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwz OSkNCiAJZXJyb3IgPSBwYXRoX2xvb2t1cChkYXRhLCAwLCAmbmQpOw0KKyNl bGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks MCkNCisJZXJyb3IgPSBrZXJuX3BhdGgoZGF0YSwgMCwgJm5kLnBhdGgpOw0K KyNlbHNlDQorCWVycm9yID0ga2Vybl9wYXRoKGRhdGEsIDAsICZwYXRoKTsN CisjZW5kaWYNCiAJaWYgKGVycm9yKQ0KIAkgICAgZGRldiA9IEVSUl9QVFIo ZXJyb3IpOw0KIAllbHNlDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJICAgIGRkZXYgPSBuZC5wYXRoLmRl bnRyeTsNCisjZWxzZQ0KKwkgICAgZGRldiA9IHBhdGguZGVudHJ5Ow0KKyNl bmRpZg0KIA0KIAlpZiAoIUlTX0VSUihkZGV2KSkgew0KIAkgICAgbWlub3Jk ZXZpY2UgPSBNSU5PUihkZGV2LT5kX2lub2RlLT5pX3JkZXYpOw0KQEAgLTIy NSw2ICsyNTYsNyBAQCBubnBmc19maWxsX3N1cGVyIChzdHJ1Y3Qgc3VwZXJf YmxvY2sgKnNiDQogICAgIHJldHVybiAwOw0KIH0NCiANCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KIGludA0K IG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlw ZSwNCiAJICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLA0K QEAgLTIzMiwxMiArMjY0LDIzIEBAIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmls ZV9zeXN0ZW1fdHlwZSAqZnMNCiB7DQogICAgIHJldHVybiBnZXRfc2Jfbm9k ZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5ucGZzX2ZpbGxfc3VwZXIsIG1u dCk7DQogfQ0KKyNlbHNlDQorc3RydWN0IGRlbnRyeSoNCitubnBmc19tb3Vu dChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCisJICAgICBp bnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLA0KKwkgICAgIHZvaWQg KmRhdGEpIA0KK3sNCisgICAgcmV0dXJuIG1vdW50X25vZGV2KGZzX3R5cGUs IGZsYWdzLCBkYXRhLCBubnBmc19maWxsX3N1cGVyKTsNCit9DQorI2VuZGlm DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsNiwwKQ0KIHN0YXRpYyB2b2lkDQogbm5wZnNfd3JpdGVfc3VwZXIoc3Ry dWN0IHN1cGVyX2Jsb2NrICogc2IpDQogew0KICAgICBzYi0+c19kaXJ0ID0g MDsNCiB9DQorI2VuZGlmDQogDQogLyoNCiAgKiBYWFggaXMgdGhpcyBnb29k PyANCkBAIC0yNzYsNyArMzE5LDExIEBAIG5ucGZzX3N0YXRmc19pbnQoc3Ry dWN0IHN1cGVyX2Jsb2NrICpzYiwNCiAgICAgdG1wLmZfc3BhcmVbMV0gPSAw Ow0KICAgICB0bXAuZl9zcGFyZVsyXSA9IDA7DQogICAgIHRtcC5mX3NwYXJl WzNdID0gMDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMiw2LDM2KQ0KICAgICB0bXAuZl9zcGFyZVs0XSA9IDA7DQorI2Vs c2UNCisgICAgdG1wLmZfZmxhZ3MgPSAwOw0KKyNlbmRpZg0KICAgICAqYnVm ID0gdG1wOw0KICAgICByZXR1cm4gMDsNCiB9DQo= ---276651502-1011312321-1462551183=:25480 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-1011312321-1462551183=:25480--