Re: PATCH v3: Arla 0.90 on Linux 2.6.34 to 4.4
Bo Branten <[email protected]> Fri, 22 Jan 2016 14:22:06 +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-1863843585-1453468926=:9412 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII PATCH v3: Arla 0.90 on Linux 2.6.34 to 4.4 This is a small correction of my earlier patch: A change in a common include file broke compilation of arlad, this is now corrected. Bo Branten ---276651502-1863843585-1453468926=:9412 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v3-arla-0.90-for-linux-4.4 Content-Transfer-Encoding: BASE64 Content-ID: <[email protected]> Content-Description: Content-Disposition: attachment; filename=patch-v3-arla-0.90-for-linux-4.4 ZGlmZiAtdXByTiBhcmxhLTAuOTAtb2xkL25ucGZzL2luY2x1ZGUvbm5wZnMv bm5wZnNfYXR0ci5oIGFybGEtMC45MC9ubnBmcy9pbmNsdWRlL25ucGZzL25u cGZzX2F0dHIuaA0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMvaW5jbHVkZS9u bnBmcy9ubnBmc19hdHRyLmgJMjAwNi0xMC0yNCAxODozMzozMC4wMDAwMDAw MDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvaW5jbHVkZS9ubnBmcy9u bnBmc19hdHRyLmgJMjAxNi0wMS0yMiAxMjo1MTowNy40NDIxNDExODIgKzAx MDANCkBAIC0xMTMsOCArMTEzLDE4IEBAIHN0cnVjdCBubnBmc19hdHRyIHsN CiAgICAgdWludDMyX3QJCXhhX25saW5rOw0KICAgICB1aW50MzJfdAkJeGFf dHlwZTsNCiANCisjaWZuZGVmIF9fS0VSTkVMX18NCiAgICAgdWludDMyX3QJ CXhhX3VpZDsNCiAgICAgdWludDMyX3QJCXhhX2dpZDsNCisjZWxzZQ0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxNCww KQ0KKyAgICBrdWlkX3QJCXhhX3VpZDsNCisgICAga2dpZF90CQl4YV9naWQ7 DQorI2Vsc2UNCisgICAgdWludDMyX3QJCXhhX3VpZDsNCisgICAgdWludDMy X3QJCXhhX2dpZDsNCisjZW5kaWYNCisjZW5kaWYNCiANCiAgICAgdWludDMy X3QJCXhhX2F0aW1lOw0KICAgICB1aW50MzJfdAkJeGFfbXRpbWU7DQpkaWZm IC11cHJOIGFybGEtMC45MC1vbGQvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBm c19ibG9ja3MuaCBhcmxhLTAuOTAvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBm c19ibG9ja3MuaA0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMvaW5jbHVkZS9u bnBmcy9ubnBmc19ibG9ja3MuaAkyMDA2LTEwLTI0IDE4OjMzOjMxLjAwMDAw MDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBmcy9pbmNsdWRlL25ucGZz L25ucGZzX2Jsb2Nrcy5oCTIwMDctMDEtMjQgMTg6MDk6MTcuMDAwMDAwMDAw ICswMTAwDQpAQCAtMSw1ICsxLDUgQEANCiAvKg0KLSAqIENvcHlyaWdodCAo YykgMjAwNS0yMDA2LCBTdG9ja2hvbG1zIFVuaXZlcnNpdGV0DQorICogQ29w eXJpZ2h0IChjKSAyMDA1LTIwMDcsIFN0b2NraG9sbXMgVW5pdmVyc2l0ZXQN CiAgKiAoU3RvY2tob2xtIFVuaXZlcnNpdHksIFN0b2NraG9sbSBTd2VkZW4p DQogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAgKg0KQEAgLTMxLDExICsz MSwxNSBAQA0KICAqIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLg0KICAq Lw0KIA0KLS8qICRJZDogbm5wZnNfYmxvY2tzLmgsdiAxLjIgMjAwNi8xMC8y NCAxNjozMzozMSB0b2wgRXhwICQgKi8NCisvKiAkSWQ6IG5ucGZzX2Jsb2Nr cy5oLHYgMS4zIDIwMDcvMDEvMjQgMTc6MDk6MTcgdG9sIEV4cCAkICovDQog DQogI2RlZmluZSBOTlBGU19OT19JTkRFWCAgIDAgIC8qIGR1bW15IGNhY2hl IGluZGV4ICovDQogI2RlZmluZSBOTlBGU19OT19PRkZTRVQgICgodWludDY0 X3QpLTEpICAvKiBkdW1teSBvZmZzZXQsIG5vIGJsb2NrICovDQogDQotI2Rl ZmluZSBOTlBGU19DQUNIRV9GSUxFX1BBVEggICAgIiUwMlgvJTAyWC8lMDJs bFgiDQotI2RlZmluZSBOTlBGU19DQUNIRV9ESVJfUEFUSCAgICAgIiUwMlgv JTAyWEAiDQotI2RlZmluZSBOTlBGU19DQUNIRV9QQVRIX1NJWkUgICAgKCA2 ICsxICsyKzEgKzE2ICsxKQ0KKyNkZWZpbmUgTk5QRlNfQ0FDSEVfRklMRV9E SVIxICAgICAgICAiJTAyeCINCisjZGVmaW5lIE5OUEZTX0NBQ0hFX0ZJTEVf RElSX1BBVEggICAgTk5QRlNfQ0FDSEVfRklMRV9ESVIxICIvIiBOTlBGU19D QUNIRV9GSUxFX0RJUjENCisjZGVmaW5lIE5OUEZTX0NBQ0hFX0ZJTEVfQkxP Q0tfUEFUSCAgIiUwMmxseCINCisNCisjZGVmaW5lIE5OUEZTX0NBQ0hFX0ZJ TEVfUEFUSCAgIE5OUEZTX0NBQ0hFX0ZJTEVfRElSX1BBVEggIi8iIE5OUEZT X0NBQ0hFX0ZJTEVfQkxPQ0tfUEFUSA0KKyNkZWZpbmUgTk5QRlNfQ0FDSEVf RElSX1BBVEggICAgTk5QRlNfQ0FDSEVfRklMRV9ESVJfUEFUSCAiQCINCisj ZGVmaW5lIE5OUEZTX0NBQ0hFX1BBVEhfU0laRSAgICggNiArMSArMisxICsx NiArMSApDQpkaWZmIC11cHJOIGFybGEtMC45MC1vbGQvbm5wZnMvaW5jbHVk ZS9ubnBmcy9ubnBmc19tZXNzYWdlLmggYXJsYS0wLjkwL25ucGZzL2luY2x1 ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5oDQotLS0gYXJsYS0wLjkwLW9sZC9u bnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX21lc3NhZ2UuaAkyMDA2LTEwLTI0 IDE4OjMzOjMyLjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBm cy9pbmNsdWRlL25ucGZzL25ucGZzX21lc3NhZ2UuaAkyMDE2LTAxLTIyIDEy OjUzOjI5LjQ3NzE0OTc0NSArMDEwMA0KQEAgLTMxLDcgKzMxLDcgQEANCiAg KiBTVUNIIERBTUFHRS4NCiAgKi8NCiANCi0vKiAkSWQ6IG5ucGZzX21lc3Nh Z2UuaCx2IDEuNjEgMjAwNi8xMC8yNCAxNjozMzozMiB0b2wgRXhwICQgKi8N CisvKiAkSWQ6IG5ucGZzX21lc3NhZ2UuaCx2IDEuNjIgMjAwOS8wMi8yNCAy MDoyMDo1NSB0b2wgRXhwICQgKi8NCiANCiAjaWZuZGVmIF94bXNnX2gNCiAj ZGVmaW5lIF94bXNnX2gNCkBAIC01Miw3ICs1MiwxNSBAQCB0eXBlZGVmIHVp bnQxNl90IG5ucGZzX3JpZ2h0czsNCiAgKiBUaGUgbm5wZnNfY3JlZCwgaWYg cGFnID09IDAsIHVzZSB1aWQgDQogICovDQogdHlwZWRlZiBzdHJ1Y3Qgbm5w ZnNfY3JlZCB7DQorI2lmbmRlZiBfX0tFUk5FTF9fDQogICAgIHVpbnQzMl90 IHVpZDsNCisjZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VS TkVMX1ZFUlNJT04oMywxNCwwKQ0KKyAgICBrdWlkX3QgdWlkOw0KKyNlbHNl DQorICAgIHVpbnQzMl90IHVpZDsNCisjZW5kaWYNCisjZW5kaWYNCiAgICAg bm5wZnNfcGFnX3QgcGFnOw0KIH0gbm5wZnNfY3JlZDsNCiANCkBAIC0xMDYs NyArMTE0LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgbm5wZnNfYmxvY2tfaGFuZGxl IHsNCiANCiAvKiBubnBmc19ub2RlLmZsYWdzDQogICogVGhlIGxvd2VyIDE2 IGJpdCBmbGFncyBhcmUgcmVzZXJ2ZWQgZm9yIGNvbW1vbiBubnBmcyBmbGFn cw0KLSAqIFRoZSB1cHBlciAxNiBiaXQgZmxhZ3MgYXJlIHJlc2VydmVkIGZv ciBvcGVydGluZyBzeXN0ZW0gZGVwZW5kYW50DQorICogVGhlIHVwcGVyIDE2 IGJpdCBmbGFncyBhcmUgcmVzZXJ2ZWQgZm9yIG9wZXJhdGluZyBzeXN0ZW0g ZGVwZW5kZW50DQogICogZmxhZ3MuDQogICovDQogDQpkaWZmIC11cHJOIGFy bGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmggYXJsYS0w LjkwL25ucGZzL2xpbnV4L25ucGZzL25ubnBmcy5oDQotLS0gYXJsYS0wLjkw LW9sZC9ubnBmcy9saW51eC9ubnBmcy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEy OjQ3OjE3LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBmcy9s aW51eC9ubnBmcy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3LjAwMDAw MDAwMCArMDIwMA0KQEAgLTEsNCArMSw0IEBADQogLyogJElkOiBubm5wZnMu aCx2IDEuMiAyMDAyLzA5LzA3IDEwOjQ3OjE3IGxoYSBFeHAgJCAqLw0KLS8q ICRTb3VyY2U6IC9hZnMvc3RhY2tlbi5rdGguc2Uvc3JjL1NvdXJjZVJlcG9z aXRvcnkvYXJsYS9ubnBmcy9saW51eC9ubnBmcy9ubm5wZnMuaCx2ICQgKi8N CisvKiAkU291cmNlOiAvVXNlcnMvYm8vdG1wL0FybGFTb3VyY2VSZXBvc2l0 b3J5L2FybGEvbm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmgsdiAkICovDQog DQogI2RlZmluZSBOTk5QRlMgMg0KZGlmZiAtdXByTiBhcmxhLTAuOTAtb2xk L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmggYXJsYS0wLjkwL25ucGZz L2xpbnV4L25ucGZzL25ucGZzX2ZzLmgNCi0tLSBhcmxhLTAuOTAtb2xkL25u cGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmgJMjAwNi0xMC0yNCAxODozMzo0 OC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgv bm5wZnMvbm5wZnNfZnMuaAkyMDE2LTAxLTEzIDIyOjU3OjA2LjM4NzY5MzMz OSArMDEwMA0KQEAgLTg0LDggKzg0LDEzIEBAIHN0cnVjdCBubnBmcyB7DQog ICAgIHN0cnVjdCB2ZnNtb3VudCAqY2FjaGVyb290OyAvKiBzaW1wbGlmeSBv cGVuIG9mIGNhY2hlIGJsb2NrcyAqLw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpj YWNoZWRpcjsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxNCwwKQ0KICAgICB1aWRfdCB1aWQ7IC8qIGtlZXAgdHJh Y2sgb2YgZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCiAgICAgZ2lkX3QgZ2lkOw0K KyNlbHNlDQorICAgIGt1aWRfdCB1aWQ7IC8qIGtlZXAgdHJhY2sgb2YgZGFl bW9uJ3MgaWRlbnRpdHkgKi8NCisgICAga2dpZF90IGdpZDsNCisjZW5kaWYN CiANCiAgICAgc3RydWN0IHsNCiAJaW50IHJlY3Vyc2U7DQpkaWZmIC11cHJO IGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbG9jbC5o IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2NsLmgNCi0t LSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wu aAkyMDA3LTAxLTA4IDE0OjUyOjQ5LjAwMDAwMDAwMCArMDEwMA0KKysrIGFy bGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2NsLmgJMjAxNi0w MS0xMyAyMzowMToxMC4xNzg3MDgwMzcgKzAxMDANCkBAIC0zNCw3ICszNCw3 IEBADQogICogU1VDSCBEQU1BR0UuDQogICovDQogDQotLyogJElkOiBubnBm c19sb2NsLmgsdiAxLjc3IDIwMDcvMDEvMDggMTM6NTI6NDkgdG9sIEV4cCAk ICovDQorLyogJElkOiBubnBmc19sb2NsLmgsdiAxLjc4IDIwMTAvMDgvMDgg MjA6NDM6MDYgdG9sIEV4cCAkICovDQogDQogI2lmZGVmIEhBVkVfQ09ORklH X0gNCiAjaW5jbHVkZSA8Y29uZmlnLmg+DQpAQCAtNTEsNyArNTEsOSBAQA0K ICNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+DQogI2luY2x1ZGUgPGxpbnV4L3N0 cmluZy5oPg0KICNpbmNsdWRlIDxsaW51eC9uYW1laS5oPg0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogI2lu Y2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+DQorI2VuZGlmDQogI2luY2x1ZGUg PGxpbnV4L3dhaXQuaD4NCiANCiAvKg0KQEAgLTEzOCwxNSArMTQwLDE2IEBA IHR5cGVkZWYgX191MzIgIHVpbnQzMl90Ow0KIGludA0KIG5ucGZzX2ZldGNo X3Jvb3Qoc3RydWN0IGlub2RlICppKTsNCiANCi0jaWYgTElOVVhfVkVSU0lP Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KIGludA0K IG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlw ZSwNCiAJICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLA0K IAkgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCB2ZnNtb3VudCAqbW50KTsNCiAj ZWxzZQ0KLXN0cnVjdCBzdXBlcl9ibG9jayAqDQotbm5wZnNfZ2V0X3NiIChz dHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCi0JICAgICAgaW50 IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwgdm9pZCAqZGF0YSk7DQor c3RydWN0IGRlbnRyeSoNCitubnBmc19tb3VudChzdHJ1Y3QgZmlsZV9zeXN0 ZW1fdHlwZSAqZnNfdHlwZSwNCisJICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNo YXIgKmRldl9uYW1lLA0KKwkgICAgIHZvaWQgKmRhdGEpOw0KICNlbmRpZg0K IA0KIGV4dGVybiBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMgbm5wZnNfZGVu dHJ5X29wZXJhdGlvbnM7DQpAQCAtMjAwLDE2ICsyMDMsMjUgQEAgbm5wZnNf aXdyaXRlY291bnQgKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQogICogSGVscCBm dW5jdGlvbiB0byByZWFkIHRoZSBkZW50cnktPmRfY291bnQgYSBwb3J0YWJs ZSB3YXkNCiAgKi8NCiANCisvKiNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigyLDYsMzgpKi8NCiBzdGF0aWMgaW5saW5lIGludA0K IG5ucGZzX2Rjb3VudCAoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0K Ky8qI2Vsc2UNCitzdGF0aWMgaW5saW5lIGludA0KK25ucGZzX2Rjb3VudCAo c3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZiovDQogew0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQog ICAgIHJldHVybiBhdG9taWNfcmVhZCgmZGVudHJ5LT5kX2NvdW50KTsNCisj ZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEx LDApDQorICAgIHJldHVybiBhdG9taWNfcmVhZCgoY29uc3QgYXRvbWljX3Qq KSZkZW50cnktPmRfY291bnQpOw0KKyNlbHNlDQorICAgIHJldHVybiBkX2Nv dW50KGRlbnRyeSk7Ow0KKyNlbmRpZg0KIH0NCiANCiBleHRlcm4gDQotI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTgp DQogY29uc3QNCi0jZW5kaWYNCiBzdHJ1Y3QgYWRkcmVzc19zcGFjZV9vcGVy YXRpb25zIG5ucGZzX2FvcHM7DQogDQogI2lmbmRlZiBsaXN0X2Zvcl9lYWNo DQpAQCAtMjM3LDcgKzI0OSwxMiBAQCBubnBmc19maXh1cF9zeXNjYWxsX2xv c3NhZ2Uodm9pZCk7DQogI2VuZGlmDQogDQogI2RlZmluZSBubnBmc19kZXZf dCBkZXZfdA0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigyLDYsMzgpDQogI2RlZmluZSBubnBmc19kX2VudHJ5X3VuaGFz aGVkKGQpIGhsaXN0X3VuaGFzaGVkKGQpDQorI2Vsc2UNCisjZGVmaW5lIG5u cGZzX2RfZW50cnlfdW5oYXNoZWQoZCkgaGxpc3RfYmxfdW5oYXNoZWQoZCkN CisjZW5kaWYNCiANCiAjZGVmaW5lIE5OUEZTX05PT1AgICAgICB3aGlsZSgw KXt9DQogDQpkaWZmIC11cHJOIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgv bm5wZnMvbm5wZnNfbm9kZS5oIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBm cy9ubnBmc19ub2RlLmgNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4 L25ucGZzL25ucGZzX25vZGUuaAkyMDA2LTEyLTExIDE3OjI5OjM5LjAwMDAw MDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9u bnBmc19ub2RlLmgJMjAxMC0wOC0wOCAyMjo0MzowNy4wMDAwMDAwMDAgKzAy MDANCkBAIC01NCw3ICs1NCw3IEBAIGV4dGVybiB1aW50MzJfdCBubnBmc19i bG9ja3NpemViaXRzOw0KICAqIGZsYWdzLg0KICAqLw0KIA0KLSNkZWZpbmUg Tk5QRlNfTk9ERV9JUFVUCTB4MDAwMTAwMDAgICAvKiBub2RlIGlzIGluIGlw dXQoKSwgYXZvaWQgZGVhZGxvY2sgKi8NCisjZGVmaW5lIE5OUEZTX05PREVf SVBVVAkweDAwMDEwMDAwICAgLyogbm9kZSBpcyBpbiBpcHV0KCksIGF2b2lk IGRlYWRsb2NrLiBDYW4gYmUgcmVtb3ZlZD8gKi8NCiANCiAjZGVmaW5lIFhO X0hBU0hTSVpFIDEwMDkNCiAjZGVmaW5lIFhOX0NMRUFOVVBfSVRFUlMgMTI5 DQpkaWZmIC11cHJOIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNf YmxvY2tzLmMgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5j DQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3Mu YwkyMDA3LTAxLTA4IDE0OjI0OjI0LjAwMDAwMDAwMCArMDEwMA0KKysrIGFy bGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDE2LTAxLTE2 IDE0OjE2OjQ5Ljk5NDQzNzgxMyArMDEwMA0KQEAgLTM0LDcgKzM0LDcgQEAN CiAgKiBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4NCiAgKi8NCiANCi0v KiAkSWQ6IG5ucGZzX2Jsb2Nrcy5jLHYgMS4zIDIwMDcvMDEvMDggMTM6MjQ6 MjQgdG9sIEV4cCAkICovDQorLyogJElkOiBubnBmc19ibG9ja3MuYyx2IDEu NiAyMDEwLzA4LzA4IDIwOjQzOjA0IHRvbCBFeHAgJCAqLw0KIA0KICNpbmNs dWRlIDxubnBmcy9ubnBmc19sb2NsLmg+DQogI2luY2x1ZGUgPG5ucGZzL25u cGZzX2ZzLmg+DQpAQCAtNDMsNiArNDMsMTEgQEANCiAjaW5jbHVkZSA8bGlu dXgvbW91bnQuaD4NCiAjaW5jbHVkZSA8bGludXgvbW0uaD4NCiANCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkN CitleHRlcm4gaW50IHZmc19wYXRoX2xvb2t1cChzdHJ1Y3QgZGVudHJ5ICos IHN0cnVjdCB2ZnNtb3VudCAqLA0KKwkJCSAgIGNvbnN0IGNoYXIgKiwgdW5z aWduZWQgaW50LCBzdHJ1Y3QgcGF0aCAqKTsNCisjZW5kaWYNCisNCiAvKg0K ICAqIHJldHVybiB0cnVlIGlmIGJsb2NrIGlzIGluIGNhY2hlDQogICovDQpA QCAtMjkwLDcgKzI5NSwxMyBAQCBubnBmc19ibG9ja19leHRlbmQoc3RydWN0 IG5ucGZzX25vZGUgKm5vDQogICAgIGJhY2tub2RlID0gYmFja2ZpbGUtPmZf bWFwcGluZy0+aG9zdDsNCiANCiAgICAgbXV0ZXhfbG9jaygmYmFja25vZGUt PmlfbXV0ZXgpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDgsMCkNCiAgICAgcmV0ID0gdm10cnVuY2F0ZShiYWNrbm9k ZSwgbm5wZnNfYmxvY2tzaXplKTsNCisjZWxzZQ0KKyAgICByZXQgPSBpbm9k ZV9uZXdzaXplX29rKGJhY2tub2RlLCBubnBmc19ibG9ja3NpemUpOw0KKyAg ICBpZighcmV0KQ0KKyAgICAgICAgdHJ1bmNhdGVfc2V0c2l6ZShiYWNrbm9k ZSwgbm5wZnNfYmxvY2tzaXplKTsNCisjZW5kaWYNCiAgICAgbXV0ZXhfdW5s b2NrKCZiYWNrbm9kZS0+aV9tdXRleCk7DQogICAgIA0KICAgICBmaWxwX2Ns b3NlKGJhY2tmaWxlLCBOVUxMKTsNCkBAIC0zMTgsMTAgKzMyOSwyNiBAQCBu bnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAg IHN0cnVjdCBubnBmcyAqbm5wZnNwID0gTk5QRlNfRlJPTV9YTk9ERShub2Rl KTsNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IFhOT0RFX1RPX1ZOT0RF KG5vZGUpOw0KICAgICBpbnQgZmxhZ3MgPSBPX0xBUkdFRklMRSB8IGZsYWc7 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs MTksMCkNCiAgICAgc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKyAg ICBzdHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogICAgIHVpZF90 IHNhdmV1aWQ7DQogICAgIGdpZF90IHNhdmVnaWQ7DQorI2Vsc2UNCisgICAg a3VpZF90IHNhdmV1aWQ7DQorICAgIGtnaWRfdCBzYXZlZ2lkOw0KKyNlbmRp Zg0KICAgICBpbnQgcmV0Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0g S0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KKyAgICBjb25zdCBzdHJ1Y3QgY3Jl ZCAqb2xkX2NyZWQ7DQorICAgIHN0cnVjdCBjcmVkICpvdmVycmlkZV9jcmVk Ow0KKyNlbmRpZg0KKw0KKyAgICAodm9pZClzYXZldWlkOw0KKyAgICAodm9p ZClzYXZlZ2lkOw0KIA0KICAgICBCVUdfT04oIW5ucGZzcCk7DQogICAgIEJV R19PTihmbGFncyAmIE9fQ1JFQVQgJiYgZmlsZSAhPSBOVUxMKTsNCkBAIC0z NDYsMjEgKzM3MywzOCBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBm c19ub2RlICpub2RlDQogICAgIEJVR19PTighbm5wZnNwLT5jYWNoZWRpciB8 fCAhbm5wZnNwLT5jYWNoZXJvb3QpOw0KICAgICANCiAgICAgLyogdXNlIHRo ZSBuZnNkIHRyaWNrIHRvIGdpdmUgdXMgYWNjZXNzICovDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAg IHNhdmV1aWQgPSBjdXJyZW50LT5mc3VpZDsNCiAgICAgc2F2ZWdpZCA9IGN1 cnJlbnQtPmZzZ2lkOw0KICAgICBjdXJyZW50LT5mc3VpZCA9IG5ucGZzcC0+ dWlkOw0KICAgICBjdXJyZW50LT5mc2dpZCA9IG5ucGZzcC0+Z2lkOw0KLQ0K LSAgICBuZC5kZW50cnkgPSBkZ2V0KG5ucGZzcC0+Y2FjaGVkaXIpOw0KLSAg ICBuZC5tbnQgPSBtbnRnZXQobm5wZnNwLT5jYWNoZXJvb3QpOw0KLSAgICBu ZC5sYXN0X3R5cGUgPSBMQVNUX05PUk07DQotICAgIG5kLmRlcHRoID0gMDsN Ci0gICAgbmQuZmxhZ3MgPSAwOw0KLSAgICANCi0gICAgaWYgKGZsYWdzICYg T19DUkVBVCkNCi0JbmQuZmxhZ3MgPSBMT09LVVBfUEFSRU5UOw0KLSAgICAN Ci0gICAgcmV0ID0gcGF0aF93YWxrKGNhY2hlbmFtZSwgJm5kKTsNCisjZWxz ZQ0KKyAgICBzYXZldWlkID0gY3VycmVudF9mc3VpZCgpOw0KKyAgICBzYXZl Z2lkID0gY3VycmVudF9mc2dpZCgpOw0KKyAgICBvdmVycmlkZV9jcmVkID0g cHJlcGFyZV9jcmVkcygpOw0KKyAgICBpZiAob3ZlcnJpZGVfY3JlZCA9PSBO VUxMKQ0KKyAgICAgICAgcmV0dXJuIC1FTk9NRU07DQorICAgIG92ZXJyaWRl X2NyZWQtPmZzdWlkID0gbm5wZnNwLT51aWQ7DQorICAgIG92ZXJyaWRlX2Ny ZWQtPmZzZ2lkID0gbm5wZnNwLT5naWQ7DQorICAgIG9sZF9jcmVkID0gb3Zl cnJpZGVfY3JlZHMob3ZlcnJpZGVfY3JlZCk7DQorI2VuZGlmDQorDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0K KyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwg bm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBm bGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZu ZCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMywxOSwwKQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNw LT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5h bWUsDQorCQkJICBmbGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDog MCwNCisJCQkgICZuZC5wYXRoKTsNCisjZWxzZQ0KKyAgICByZXQgPSB2ZnNf cGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJv b3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBmbGFncyAmIE9fQ1JFQVQg PyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZwYXRoKTsNCisjZW5kaWYN CiAgICAgaWYgKHJldCkgew0KIAl1aW50MzJfdCBubWFza3MgPSBub2RlLT5k YXRhLm5tYXNrczsNCiAJdWludDMyX3QgbWFzazsNCkBAIC0zODcsMTYgKzQz MSwzNyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpu b2RlDQogICAgIA0KICAgICBpZiAoZmxhZ3MgJiBPX0NSRUFUKSB7DQogCS8q IFhYWCBtb2RlIGJpdHMgb24gY3JlYXRlIC0tIFNfSVJVU1J8U19JV1VTUiAq Lw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDEsMCkNCiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbG9va3VwX2NyZWF0 ZSgmbmQsIDApOwkNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDE5LDApDQorCS8qIFRPRE86IGNoZWNrIHRoZSBjYWxs IHRvIGtlcm5fcGF0aF9jcmVhdGUoKSwgaXMgdGhlIHNlY29uZCBhcmd1bWVu dCBvcHRpb25hbD8gKi8NCisJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0ga2Vy bl9wYXRoX2NyZWF0ZShBVF9GRENXRCwgTlVMTCwgJm5kLnBhdGgsIDApOwkN CisjZWxzZQ0KKwkvKiBUT0RPOiBjaGVjayB0aGUgY2FsbCB0byBrZXJuX3Bh dGhfY3JlYXRlKCksIGlzIHRoZSBzZWNvbmQgYXJndW1lbnQgb3B0aW9uYWw/ ICovDQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGtlcm5fcGF0aF9jcmVh dGUoQVRfRkRDV0QsIE5VTEwsICZwYXRoLCAwKTsJDQorI2VuZGlmDQogCWlm IChJU19FUlIoZGVudHJ5KSkgew0KIAkgICAgcmV0ID0gUFRSX0VSUihkZW50 cnkpOw0KIAl9IGVsc2Ugew0KLQkgICAgcmV0ID0gdmZzX2NyZWF0ZShuZC5k ZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVTUnxTX0lXVVNSLCAmbmQp Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDYsMCkNCisJICAgIHJldCA9IHZmc19jcmVhdGUobmQucGF0aC5kZW50cnkt PmRfaW5vZGUsIGRlbnRyeSwgU19JUlVTUnxTX0lXVVNSLCAmbmQpOw0KKyNl bGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks MCkNCisJICAgIC8qIFRPRE86IHNob3VsZCB0aGUgbGFzdCBhcmd1bWVudCB0 byB2ZnNfY3JlYXRlOiBib29sIHdhbnRfZXhjbCwgYmUgMCBvciAxPyAqLw0K KwkgICAgcmV0ID0gdmZzX2NyZWF0ZShuZC5wYXRoLmRlbnRyeS0+ZF9pbm9k ZSwgZGVudHJ5LCBTX0lSVVNSfFNfSVdVU1IsIDApOw0KKyNlbHNlDQorCSAg ICAvKiBUT0RPOiBzaG91bGQgdGhlIGxhc3QgYXJndW1lbnQgdG8gdmZzX2Ny ZWF0ZTogYm9vbCB3YW50X2V4Y2wsIGJlIDAgb3IgMT8gKi8NCisJICAgIHJl dCA9IHZmc19jcmVhdGUocGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwg U19JUlVTUnxTX0lXVVNSLCAwKTsNCisjZW5kaWYNCiAJICAgIGRwdXQoZGVu dHJ5KTsNCiAJfQ0KIA0KLQltdXRleF91bmxvY2soJm5kLmRlbnRyeS0+ZF9p bm9kZS0+aV9tdXRleCk7DQotCXBhdGhfcmVsZWFzZSgmbmQpOw0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQor CW11dGV4X3VubG9jaygmbmQucGF0aC5kZW50cnktPmRfaW5vZGUtPmlfbXV0 ZXgpOw0KKwlwYXRoX3B1dCgmbmQucGF0aCk7DQorI2Vsc2UNCisJbXV0ZXhf dW5sb2NrKCZwYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9tdXRleCk7DQorCXBh dGhfcHV0KCZwYXRoKTsNCisjZW5kaWYNCiANCiAJaWYgKHJldCkgew0KIAkg ICAgcHJpbnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBjcmVhdGUgZmFpbGVk OiAlZFxuIiwgY2FjaGVuYW1lLCAtcmV0KTsNCkBAIC00MTAsMTIgKzQ3NSwy NSBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2Rl DQogCSAgICByZXQgPSBubnBmc19ibG9ja19leHRlbmQobm9kZSwgb2Zmc2V0 KTsNCiAJfQ0KICAgICB9IGVsc2Ugew0KLQlzdHJ1Y3QgZmlsZSAqZiA9IGRl bnRyeV9vcGVuKG5kLmRlbnRyeSwgbmQubW50LCBmbGFncyk7DQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyOSkNCisJ c3RydWN0IGZpbGUgKmYgPSBkZW50cnlfb3BlbihuZC5wYXRoLmRlbnRyeSwg bmQucGF0aC5tbnQsIGZsYWdzKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCisgICAgICAgIHN0cnVjdCBm aWxlICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgu bW50LCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbGlmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJc3RydWN0 IHBhdGggdG1wX3BhdGggPSB7IC5tbnQgPSBuZC5wYXRoLm1udCwgLmRlbnRy eSA9IG5kLnBhdGguZGVudHJ5IH07DQorICAgICAgICBzdHJ1Y3QgZmlsZSAq ZiA9IGRlbnRyeV9vcGVuKCZ0bXBfcGF0aCwgZmxhZ3MsIGN1cnJlbnRfY3Jl ZCgpKTsNCisjZWxzZQ0KKyAgICAgICAgc3RydWN0IGZpbGUgKmYgPSBkZW50 cnlfb3BlbigmcGF0aCwgZmxhZ3MsIGN1cnJlbnRfY3JlZCgpKTsNCisjZW5k aWYNCiAJaWYgKElTX0VSUihmKSkgew0KIAkgICAgcmV0ID0gUFRSX0VSUihm KTsNCiAJICAgIHByaW50aygibm5wZnNfYmxvY2tfb3Blbiglcykgb3BlbiBm YWlsZWQ6ICVkXG4iLCBjYWNoZW5hbWUsIC1yZXQpOw0KIAkgICAgbm5wZnNf ZGVidWdfb29wcygpOw0KLQkgICAgcGF0aF9yZWxlYXNlKCZuZCk7DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkN CisJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0KKwkgICAgcGF0 aF9wdXQoJnBhdGgpOw0KKyNlbmRpZg0KIAl9IGVsc2Ugew0KIAkgICAgKmZp bGUgPSBmOw0KIAl9DQpAQCAtNDI0LDggKzUwMiwxMyBAQCBubnBmc19ibG9j a19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAgIC8qIHBhdGhf cmVsZWFzZSgpIGlzIHVzdWFsbHkgaGFuZGxlZCBvbiBjbG9zZSAqLw0KIA0K ICBvdXQ6DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVS U0lPTigyLDYsMjgpDQogICAgIGN1cnJlbnQtPmZzdWlkID0gc2F2ZXVpZDsN CiAgICAgY3VycmVudC0+ZnNnaWQgPSBzYXZlZ2lkOw0KKyNlbHNlDQorICAg IHJldmVydF9jcmVkcyhvbGRfY3JlZCk7DQorICAgIHB1dF9jcmVkKG92ZXJy aWRlX2NyZWQpOw0KKyNlbmRpZg0KIA0KICAgICByZXR1cm4gcmV0Ow0KIH0N CmRpZmYgLXVwck4gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19j b21tb24uYyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMN Ci0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5j CTIwMDYtMTItMTEgMTc6MzE6NDYuMDAwMDAwMDAwICswMTAwDQorKysgYXJs YS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5jCTIwMTYtMDEtMTQg MTY6MTU6MDAuMzQ3NDQ3NjU3ICswMTAwDQpAQCAtMTEyLDEwICsxMTIsMTUg QEAgbm5wZnNfcHJpbnRfYWxpYXNlcyhjb25zdCBzdHJ1Y3QgaW5vZGUgKg0K IHZvaWQNCiBubnBmc19wcmludF9hbGlhc2VzX3JlYWwoY29uc3Qgc3RydWN0 IGlub2RlICppbm9kZSkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFk ICphbGlhczsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDksMCkNCisgICAgc3RydWN0IGhsaXN0X25vZGUgKmFsaWFz Ow0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQogICAg IGludCBiYWlsb3V0ID0gMTAwOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgYWxpYXMgPSBpbm9k ZS0+aV9kZW50cnkubmV4dDsNCiAgICAgd2hpbGUgKGFsaWFzICE9ICZpbm9k ZS0+aV9kZW50cnkpIHsNCiAJaWYgKC0tYmFpbG91dCA8IDApIHsNCkBAIC0x MzEsNiArMTM2LDI2IEBAIG5ucGZzX3ByaW50X2FsaWFzZXNfcmVhbChjb25z dCBzdHJ1Y3QgaW4NCiAJfQ0KIAlhbGlhcyA9IGFsaWFzLT5uZXh0Ow0KICAg ICB9DQorI2Vsc2UNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMyw5LDApDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRl bnRyeSwgYWxpYXMsICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisj ZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5 LDApDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgJmlub2Rl LT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbHNlDQorICAgIGhsaXN0X2Zv cl9lYWNoX2VudHJ5KGRlbnRyeSwgJmlub2RlLT5pX2RlbnRyeSwgZF91LmRf YWxpYXMpIHsNCisjZW5kaWYNCisJaWYgKC0tYmFpbG91dCA8IDApIHsNCisJ ICAgIHByaW50aygiIC4uLiIpOw0KKwkgICAgYnJlYWs7DQorCX0NCisJaWYg KGRlbnRyeSkgew0KKwkgICAgcHJpbnRrKCIgJS4qcyglcCkiLCAoaW50KWRl bnRyeS0+ZF9uYW1lLmxlbiwNCisJCSAgIGRlbnRyeS0+ZF9uYW1lLm5hbWUs IGRlbnRyeSk7DQorCSAgICBpZiAobm5wZnNfZF9lbnRyeV91bmhhc2hlZCgm ZGVudHJ5LT5kX2hhc2gpKQ0KKwkJcHJpbnRrKCIodW5oYXNoZWQpIik7DQor CX0NCisgICAgfQ0KKyNlbmRpZg0KICAgICBwcmludGsoIlxuIik7DQogfQ0K IA0KQEAgLTE0Niw3ICsxNzEsMTEgQEAgbm5wZnNfcHJpbnRfY2hpbGRyZW4o Y29uc3Qgc3RydWN0IGRlbnRyeQ0KIA0KICAgICB3aGlsZSAoc3ViZGlycyAh PSAmZGVudHJ5LT5kX3N1YmRpcnMpIHsNCiAJc3RydWN0IGxpc3RfaGVhZCAq dG1wID0gc3ViZGlyczsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMywxOSwwKQ0KIAlzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9 IGxpc3RfZW50cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9jaGlsZCk7 DQorI2Vsc2UNCisJc3RydWN0IGRlbnRyeSAqY2hpbGQgPSBsaXN0X2VudHJ5 KHRtcCwgc3RydWN0IGRlbnRyeSwgZF9jaGlsZCk7DQorI2VuZGlmDQogDQog CXByaW50aygiICUuKnMoJXApIiwgKGludCljaGlsZC0+ZF9uYW1lLmxlbiwN CiAJICAgICAgIGNoaWxkLT5kX25hbWUubmFtZSwgY2hpbGQpOw0KZGlmZiAt dXByTiBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jIGFy bGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19kZXYuYw0KLS0tIGFybGEtMC45 MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfZGV2LmMJMjAwNi0xMC0yNCAxODoz MzozNi4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGlu dXgvbm5wZnNfZGV2LmMJMjAxNi0wMS0xNCAxNjoyODoxOS4yNTA0OTU4MjAg KzAxMDANCkBAIC0zMDAsNyArMzAwLDkgQEAgbm5wZnNfaW52YWxpZGF0ZV9h bGwoc3RydWN0IG5ucGZzICpubnBmcw0KICAgICBOTlBGU0RFQihYREVCTk9E RSwgKCJmcmVlX2FsbF9ubnBmc19ub2RlcyBzdGFydGluZ1xuIikpOw0KIA0K ICAgICBzaHJpbmtfZGNhY2hlX3NiKG5ucGZzLT5zYik7DQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNykNCiAgICAg aW52YWxpZGF0ZV9pbm9kZXMobm5wZnMtPnNiKTsNCisjZW5kaWYNCiAgICAg DQogICAgIE5OUEZTREVCKFhERUJOT0RFLCAoImZyZWVfYWxsX25ucGZzX25v ZGVzIGRvbmVcbiIpKTsNCiB9DQpAQCAtMzc0LDcgKzM3NiwxMSBAQCBubnBm c19kZXZjbG9zZShzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RyDQogc3RhdGlj IHNzaXplX3QNCiBubnBmc19kZXZyZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBj aGFyICpidWYsIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQ0KIHsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww KQ0KICAgICBubnBmc19kZXZfdCBkZXYgPSBmaWxlLT5mX2RlbnRyeS0+ZF9p bm9kZS0+aV9yZGV2Ow0KKyNlbHNlDQorICAgIG5ucGZzX2Rldl90IGRldiA9 IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZW5k aWYNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSAmbm5wZnNbTUlOT1Io ZGV2KV07DQogICAgIHN0cnVjdCBubnBmc19saW5rICpmaXJzdDsNCiAgICAg aW50IHJldCA9IDAsIGVycm9yID0gMDsNCkBAIC00MzksOCArNDQ1LDEyIEBA IG5ucGZzX2RldndyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdA0KIA0K ICAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldndyaXRlXG4iKSk7 DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDE5LDApDQogICAgIGRldiA9IGZpbGUtPmZfZGVudHJ5LT5kX2lu b2RlLT5pX3JkZXY7DQotICAgIG5ucGZzcCA9ICZubnBmc1tNSU5PUihkZXYp XTsNCisjZWxzZQ0KKyAgICBkZXYgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5k X2lub2RlLT5pX3JkZXY7DQorI2VuZGlmDQorICAgICBubnBmc3AgPSAmbm5w ZnNbTUlOT1IoZGV2KV07DQogDQogICAgIGRvd24oJm5ucGZzcC0+Y2hhbm5l bF9zZW0pOw0KICAgICBpZiAobm5wZnNwLT5zdGF0dXMgJiBOTlBGU19ERVZX UklURSkgew0KQEAgLTUwNSwxOSArNTE1LDM3IEBAIG5ucGZzX2RldndyaXRl KHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdA0KIC8qDQogICogTm90IHVzZWQu DQogICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDIsNiwzNikNCiBzdGF0aWMgaW50DQogbm5wZnNfZGV2aW9jdGwoc3Ry dWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsDQogCSAgICAg ICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisjZWxz ZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfdW5sb2NrZWRfZGV2aW9jdGwoc3Ry dWN0IGZpbGUgKmZpbGUsDQorCSAgICAgICB1bnNpZ25lZCBpbnQgY21kLCB1 bnNpZ25lZCBsb25nIGFyZykNCisjZW5kaWYNCiB7DQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAgICAgTk5Q RlNERUIoWERFQkRFViwgKCJubnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxh Z3MgPSAlZFxuIiwNCiAJCSAgICAgICBpbm9kZS0+aV9yZGV2LCBmaWxlLT5m X2ZsYWdzKSk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxOSwwKQ0KKyAgICBOTlBGU0RFQihYREVCREVWLCAoIm5u cGZzX2RldmlvY3RsIGRldiA9ICVkLCBmbGFncyA9ICVkXG4iLA0KKwkJICAg ICAgIGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX3JkZXYsIGZpbGUtPmZf ZmxhZ3MpKTsNCisjZWxzZQ0KKyAgICBOTlBGU0RFQihYREVCREVWLCAoIm5u cGZzX2RldmlvY3RsIGRldiA9ICVkLCBmbGFncyA9ICVkXG4iLA0KKwkJICAg ICAgIGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldiwgZmls ZS0+Zl9mbGFncykpOw0KKyNlbmRpZg0KICAgICByZXR1cm4gLUVJTlZBTDsN CiB9DQogDQogc3RhdGljIHVuc2lnbmVkIGludA0KIG5ucGZzX2RldnBvbGwo c3RydWN0IGZpbGUgKmZpbGUsIHBvbGxfdGFibGUgKndhaXQpDQogew0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp DQogICAgIG5ucGZzX2Rldl90IGRldiA9IGZpbGUtPmZfZGVudHJ5LT5kX2lu b2RlLT5pX3JkZXY7DQorI2Vsc2UNCisgICAgbm5wZnNfZGV2X3QgZGV2ID0g ZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbmRp Zg0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9ICZubnBmc1tNSU5PUihk ZXYpXTsNCiAgICAgaW50IHJldCA9IDA7DQogICAgIA0KQEAgLTk1Myw3ICs5 ODEsMTEgQEAgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19mb3BzID0g ew0KICAgICByZWFkOgkJbm5wZnNfZGV2cmVhZCwNCiAgICAgd3JpdGU6CQlu bnBmc19kZXZ3cml0ZSwNCiAgICAgcG9sbDoJCW5ucGZzX2RldnBvbGwsDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwz NikNCiAgICAgaW9jdGw6CQlubnBmc19kZXZpb2N0bCwNCisjZWxzZQ0KKyAg ICB1bmxvY2tlZF9pb2N0bDoJbm5wZnNfdW5sb2NrZWRfZGV2aW9jdGwsDQor I2VuZGlmDQogICAgIHJlbGVhc2U6CQlubnBmc19kZXZjbG9zZSwNCiAgICAg b3BlbjoJCW5ucGZzX2Rldm9wZW4sDQogfTsNCkBAIC05NjgsOCArMTAwMCwx MyBAQCBubnBmc19pbml0X2RldmljZSh2b2lkKQ0KIAlpbml0X3dhaXRxdWV1 ZV9oZWFkKCYobm5wZnNbaV0ud2FpdF9xdWV1ZSkpOw0KIAlubnBmc19pbml0 cSgmbm5wZnNbaV0ubWVzc2FnZXEpOw0KIAlubnBmc19pbml0cSgmbm5wZnNb aV0uc2xlZXBxKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMiw2LDM3KQ0KIAlpbml0X01VVEVYKCZubnBmc1tpXS5pbmFj dGl2ZV9zZW0pOw0KIAlpbml0X01VVEVYKCZubnBmc1tpXS5jaGFubmVsX3Nl bSk7DQorI2Vsc2UNCisJc2VtYV9pbml0KCZubnBmc1tpXS5pbmFjdGl2ZV9z ZW0sIDEpOw0KKwlzZW1hX2luaXQoJm5ucGZzW2ldLmNoYW5uZWxfc2VtLCAx KTsNCisjZW5kaWYNCiAJSU5JVF9MSVNUX0hFQUQoJm5ucGZzW2ldLmluYWN0 aXZlX2xpc3QpOw0KIAlubnBmc1tpXS5ubm9kZXMgPSAwOw0KICAgICB9DQpk aWZmIC11cHJOIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfaW5v ZGVvcHMuYyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMu Yw0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVv cHMuYwkyMDA2LTEyLTExIDE3OjM1OjI2LjAwMDAwMDAwMCArMDEwMA0KKysr IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19pbm9kZW9wcy5jCTIwMTYt MDEtMTUgMTI6NDQ6NTYuOTIyODk2NjM5ICswMTAwDQpAQCAtNDAsMjUgKzQw LDQxIEBADQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2Rldi5oPg0KICNpbmNs dWRlIDxubnBmcy9ubnBmc19kaXJlbnQuaD4NCiAjaW5jbHVkZSA8bm5wZnMv bm5wZnNfc3lzY2FsbHMuaD4NCisjaW5jbHVkZSA8bGludXgvYWlvLmg+DQog I2luY2x1ZGUgPGxpbnV4L2JpbmZtdHMuaD4NCiAjaW5jbHVkZSA8bGludXgv ZmlsZS5oPg0KICNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+DQogI2luY2x1 ZGUgPGxpbnV4L3BhZ2UtZmxhZ3MuaD4NCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFID49IEtFUk5FTF9WRVJTSU9OKDQsMSwwKQ0KKyNpbmNsdWRlIDxsaW51 eC91aW8uaD4NCisjZW5kaWYNCiAjaW5jbHVkZSA8bGludXgvd3JpdGViYWNr Lmg+DQogI2luY2x1ZGUgPGFzbS9mY250bC5oPg0KIA0KICNpZmRlZiBSQ1NJ RA0KLVJDU0lEKCIkSWQ6IG5ucGZzX2lub2Rlb3BzLmMsdiAxLjIyMyAyMDA2 LzEyLzExIDE2OjM1OjI2IHRvbCBFeHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5u cGZzX2lub2Rlb3BzLmMsdiAxLjIyNiAyMDEwLzA4LzA4IDIwOjQzOjA0IHRv bCBFeHAgJCIpOw0KICNlbmRpZg0KIA0KIHN0YXRpYyBpbnQNCiBubnBmc19m c3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcpOw0KIA0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs MCkNCiBzdGF0aWMgaW50DQogbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBk ZW50cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpOw0KLQ0KKyNl bHNlDQogc3RhdGljIGludA0KK25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3Qg ZGVudHJ5ICpkZW50cnksIHVuc2lnbmVkIGludCBmbGFncyk7DQorI2VuZGlm DQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDIsNiwzOCkNCitzdGF0aWMNCitpbnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1 Y3QgZGVudHJ5ICpkZW50cnkpOw0KKyNlbHNlDQorc3RhdGljDQoraW50DQor bm5wZnNfZF9kZWxldGUoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KTsN CisjZW5kaWYNCiANCiBzdGF0aWMgdm9pZA0KIG5ucGZzX2RfcmVsZWFzZShz dHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0KQEAgLTEwNSw3ICsxMjEsNyBAQCBu bnBmc192bWFfY2xvc2UgKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqDQogfQ0K IA0KIHN0YXRpYyBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3Qgbm5wZnNf ZmlsZV92bV9vcHMgPSB7DQotICAgIC5ub3BhZ2UJPSBmaWxlbWFwX25vcGFn ZSwNCisgICAgLmZhdWx0ICAgICAgPSBmaWxlbWFwX2ZhdWx0LA0KICAgICAu Y2xvc2UJPSBubnBmc192bWFfY2xvc2UsDQogfTsNCiANCkBAIC0xMzQsMTIg KzE1MCwxNCBAQCBubnBmc19wcmludF9wYXRoKHN0cnVjdCBkZW50cnkgKmRl bnRyeSkNCiAgKg0KICAqLw0KIA0KKyNpZiAwDQogdm9pZA0KIG5ucGZzX3By aW50X2xvY2soY2hhciAqcywgc3RydWN0IHNlbWFwaG9yZSAqc2VtKQ0KIHsN CiAgICAgTk5QRlNERUIoWERFQkxPQ0ssICgibG9jazogJXMgc2VtOiAlcCBj b3VudDogJWRcbiIsDQogCQkgICAgICBzLCBzZW0sIChpbnQpYXRvbWljX3Jl YWQoJnNlbS0+Y291bnQpKSk7DQogfQ0KKyNlbmRpZg0KIA0KIC8qDQogICoN CkBAIC0xODUsNyArMjAzLDcgQEAgbm5wZnNfZF9pcHV0KHN0cnVjdCBkZW50 cnkgKmRlbnRyeSwgc3RydQ0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsDQog CSAgICAgKCJubnBmc19kX2lwdXQ6IGRlbnRyeSAlcCwgaW5vZGUgJXBcbiIs IGRlbnRyeSwgaW5vZGUpKTsNCiAgICAgDQotICAgIGlmIChub2RlLT5mbGFn cyAmIE5OUEZTX05PREVfSVBVVCkgLyogWFhYIGxvY2tpbmcgKi8NCisgICAg aWYgKG5vZGUtPmZsYWdzICYgTk5QRlNfTk9ERV9JUFVUKSAvKiBYWFggbG9j a2luZy4gbmV2ZXIgc2V0PyAqLw0KIAlubnBmc19pcmVsZShpbm9kZSk7DQog ICAgIGVsc2UNCiAJaXB1dChpbm9kZSk7DQpAQCAtMjEyLDggKzIzMCwxMyBA QCBubnBmc19pbm9kZV92YWxpZChzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KICAq IG5ucGZzX2xvb2t1cCBub3cgcmV0dXJucyBhIGRlbnRyeS4NCiAgKi8NCiAN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2 LDApDQogc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KIG5ucGZzX2xvb2t1cCAo c3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3Ry dWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCitzdGF0aWMgc3RydWN0IGRl bnRyeSAqDQorbm5wZnNfbG9va3VwIChzdHJ1Y3QgaW5vZGUgKmRpciwgc3Ry dWN0IGRlbnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2Vu ZGlmDQogew0KICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9nZXRub2RlIG1z ZzsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQpAQCAtMjQwLDcgKzI2 MywxMSBAQCBubnBmc19sb29rdXAgKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1 Y3QNCiANCiAJbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfR0VUTk9E RTsNCiAgICAgICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VS TkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51aWQgPSBjdXJyZW50 LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJl bnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dl dF9wYWcoKTsNCiAJbXNnLnBhcmVudF9oYW5kbGUgPSBkLT5oYW5kbGU7DQog ICAgICAgICANCkBAIC0zMTAsNyArMzM3LDExIEBAIG5ucGZzX29wZW5fdmFs aWQoc3RydWN0IGlub2RlICp2cCwgdV9pbnQNCiAgICAgICB7DQogCXN0cnVj dCBubnBmc19tZXNzYWdlX29wZW4gbXNnOw0KIAltc2cuaGVhZGVyLm9wY29k ZSA9IE5OUEZTX01TR19PUEVOOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51aWQgPSBj dXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVkLnVpZCA9 IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IG5u cGZzX2dldF9wYWcoKTsNCiAJbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQog CW1zZy50b2tlbnMgPSB0b2s7DQpAQCAtMzk3LDcgKzQyOCwxMSBAQCBmaW5k X2ZpcnN0X2Jsb2NrKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogc3RhdGlj IGludA0KIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9p bnQgZmxhZykNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9 IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVj dCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2Rl Ow0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9IE5OUEZT X0ZST01fVk5PREUoaW5vZGUpOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAq eG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAgIGxvZmZfdCBsZW4g PSBpX3NpemVfcmVhZChpbm9kZSk7DQpAQCAtNDI1LDcgKzQ2MCwxMSBAQCBu bnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50DQogDQog CW1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BVVERBVEE7DQogCW1z Zy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJbXNnLmNy ZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICBtc2cu Y3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAltc2cuaGFu ZGxlID0geG4tPmhhbmRsZTsNCiAJbXNnLmZsYWcgICA9IGZsYWc7DQogCW1z Zy5vZmZzZXQgPSBvZmY7DQpAQCAtNDYwLDE0ICs0OTksMjcgQEAgbm5wZnNf ZnN5bmNfaW50KHN0cnVjdCBmaWxlICpmaWxlLCB1X2ludA0KICAqDQogICov DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDIsNiwzNSkNCiBzdGF0aWMgaW50DQogbm5wZnNfZnN5bmMoc3RydWN0IGZp bGUgKmZpbGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgaW50IGRhdGFzeW5j KQ0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMSwwKQ0KK3N0YXRpYyBpbnQNCitubnBmc19mc3luYyhzdHJ1Y3QgZmls ZSAqZmlsZSwgaW50IGRhdGFzeW5jKQ0KKyNlbHNlDQorc3RhdGljIGludA0K K25ucGZzX2ZzeW5jKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgc3RhcnQs IGxvZmZfdCBlbmQsIGludCBkYXRhc3luYykNCisjZW5kaWYNCiB7DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMzUp DQorICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGZpbGUtPmZfcGF0aC5k ZW50cnk7DQorI2VuZGlmDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBE RU5UUllfVE9fSU5PREUoZGVudHJ5KTsNCiAgICAgc3RydWN0IG5ucGZzICpu bnBmc3A7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCiAgICAgaW50 IGVycm9yID0gMDsNCiANCisgICAgKHZvaWQpbm5wZnNwOw0KKw0KICAgICBl cnJvciA9IG5ucGZzX2lub2RlX3ZhbGlkKGlub2RlKTsNCiAgICAgaWYgKGVy cm9yKQ0KIAlyZXR1cm4gZXJyb3I7DQpAQCAtNTExLDcgKzU2MywxMSBAQCBu bnBmc19hdHRyX3ZhbGlkKHN0cnVjdCBpbm9kZSAqIHZwLCB1X2luDQogICAg ICAgICAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfZ2V0YXR0ciBtc2c7DQog DQogICAgICAgICAgICAgbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0df R0VUQVRUUjsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W RVJTSU9OKDIsNiwyOCkNCiAgICAgICAgICAgICBtc2cuY3JlZC51aWQgPSBj dXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgICAgICBtc2cuY3JlZC51 aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICAgICAgICAgIG1z Zy5jcmVkLnBhZyA9IHBhZzsNCiAgICAgICAgICAgICBtc2cuaGFuZGxlID0g eG4tPmhhbmRsZTsNCiAgICAgICAgICAgICBlcnJvciA9IG5ucGZzX21lc3Nh Z2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCkBA IC01NTEsNyArNjA3LDExIEBAIG5ucGZzX3JpZ2h0c192YWxpZChzdHJ1Y3Qg aW5vZGUgKiB2cCwgbm4NCiAgICAgICAgICAgICBzdHJ1Y3Qgbm5wZnNfbWVz c2FnZV9nZXRhdHRyIG1zZzsNCiANCiAgICAgICAgICAgICBtc2cuaGVhZGVy Lm9wY29kZSA9IE5OUEZTX01TR19HRVRBVFRSOw0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICAgICAg ICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAg ICAgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2Vu ZGlmDQogICAgICAgICAgICAgbXNnLmNyZWQucGFnID0gcGFnOw0KICAgICAg ICAgICAgIG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KICAgICAgICAgICAg IGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRl ciwgc2l6ZW9mKG1zZykpOw0KQEAgLTU5MiwxMSArNjUyLDI1IEBAIGNoZWNr X3JpZ2h0cyAobm5wZnNfcmlnaHRzIHJpZ2h0cywgaW50IG0NCiAgKiBXZSBk b24ndCBob2xkIGlfbXV0ZXguDQogICovDQogDQorI2lmIChMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpIHx8IExJTlVYX1ZF UlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEsMCkpDQorc3RhdGlj IGludA0KK25ucGZzX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwg aW50IG1vZGUpDQorI2Vsc2UNCiBzdGF0aWMgaW50DQotbm5wZnNfcGVybWlz c2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9kZSwgc3RydWN0IG5h bWVpZGF0YSAqbmQpDQorbm5wZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUg Kmlub2RlLCBpbnQgbW9kZSwgdW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRp Zg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCi0gICAgbm5wZnNfcGFnX3Qg cGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KKyAgICBubnBmc19wYWdfdCBwYWc7 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigz LDEsMCkNCisgICAgaWYgKG1vZGUgJiBNQVlfTk9UX0JMT0NLKQ0KKyAgICAg ICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RF ID49IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCisgICAgaWYgKGZsYWdzICYg SVBFUk1fRkxBR19SQ1UpDQorICAgICAgICByZXR1cm4gLUVDSElMRDsNCisj ZW5kaWYNCisNCisgICAgcGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICAN CiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2FjY2VzcyAoJXAp IG1vZGUgPSAwJW8gYWxpYXNlczoiLCBpbm9kZSwgbW9kZSkpOw0KICAgICBu bnBmc19wcmludF9hbGlhc2VzKGlub2RlKTsNCkBAIC02MzYsNyArNzEwLDEx IEBAIG5ucGZzX2RvX2dldGRhdGEoc3RydWN0IG5ucGZzX25vZGUgKnhuLA0K ICAgICBpbnQgZXJyb3I7DQogDQogICAgIG1zZy5oZWFkZXIub3Bjb2RlID0g Tk5QRlNfTVNHX0dFVERBVEE7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIG1zZy5jcmVkLnVpZCA9 IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBj dXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICBtc2cuY3JlZC5wYWcgPSBu bnBmc19nZXRfcGFnKCk7DQogICAgIG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxl Ow0KICAgICBtc2cudG9rZW5zID0gdG9rOw0KQEAgLTc1MCwxMSArODI4LDE5 IEBAIG5ucGZzX2RhdGFfdmFsaWQoc3RydWN0IGlub2RlICppbm9kZSwgdV8N CiBpbnQgbm5wZnNfZmlsZV9tbWFwKHN0cnVjdCBmaWxlICogZmlsZSwgc3Ry dWN0IHZtX2FyZWFfc3RydWN0ICogdm1hKQ0KIHsNCiAgICAgaW50IGZsYWdz LCBlcnJvciA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9 IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVj dCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2Rl Ow0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGlu ZyA9IGZpbGUtPmZfbWFwcGluZzsNCiANCiAgICAgTk5QRlNERUIoWERFQlZO T1BTLCAoIm5ucGZzX21tYXAgaW5vZGU6ICVwXG4iLCBpbm9kZSkpOw0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp DQogICAgIG5ucGZzX3ByaW50X3BhdGgoZmlsZS0+Zl9kZW50cnkpOw0KKyNl bHNlDQorICAgIG5ucGZzX3ByaW50X3BhdGgoZmlsZS0+Zl9wYXRoLmRlbnRy eSk7DQorI2VuZGlmDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBm c19tbWFwIGFsaWFzZXM6IikpOw0KICAgICBubnBmc19wcmludF9hbGlhc2Vz KGlub2RlKTsNCiAgICAgDQpAQCAtNzg5LDM3ICs4NzUsNTAgQEAgaW50IG5u cGZzX2ZpbGVfbW1hcChzdHJ1Y3QgZmlsZSAqIGZpbGUsDQogICoNCiAgKi8N CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o MywxNiwwKQ0KIHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfYWlvX3JlYWQoc3Ry dWN0IGtpb2NiICppb2NiLA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0g S0VSTkVMX1ZFUlNJT04oMiw2LDE5KQ0KIAkgICAgICAgY29uc3Qgc3RydWN0 IGlvdmVjICppb3YsIHVuc2lnbmVkIGxvbmcgbnJfc2VncywNCisJICAgICAg IGxvZmZfdCBwb3MpDQogI2Vsc2UNCi0JICAgICAgIGNoYXIgX191c2VyICpi dWYsIHNpemVfdCBjb3VudCwNCitzdGF0aWMgc3NpemVfdA0KK25ucGZzX3Jl YWRfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAq dG8pDQogI2VuZGlmDQotCSAgICAgICBsb2ZmX3QgcG9zKQ0KIHsNCiAgICAg aW50IGVycm9yID0gMDsNCiAgICAgc3RydWN0IGZpbGUgKmZpbGUgPSBpb2Ni LT5raV9maWxwOw0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVM X1ZFUlNJT04oMiw2LDE5KQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDEyLDApDQogICAgIHNzaXplX3QgY291bnQgPSBp b2NiLT5raV9sZWZ0Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDQsMSwwKQ0KKyAgICBzc2l6ZV90IGNvdW50ID0gaW9j Yi0+a2lfbmJ5dGVzOw0KKyNlbHNlDQorICAgIHNzaXplX3QgY291bnQgPSBp b3ZfaXRlcl9jb3VudCh0byk7DQogI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0 IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNl bHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGgu ZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNf bm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAgIA0KICAg ICBpZiAoeG4gIT0gTlVMTCkNCiAJTk5QRlNERUIoWERFQlZOT1BTLCAoIm5u cGZzX3JlYWRfZmlsZSglcCk6IHRva2VuczogMHgleFxuIiwNCiAJCQkgICAg IGlub2RlLCB4bi0+dG9rZW5zKSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgZXJyb3IgPSBu bnBmc19kYXRhX3ZhbGlkKGlub2RlLCBOTlBGU19EQVRBX1IsIHBvcywgcG9z ICsgY291bnQpOw0KKyNlbHNlDQorICAgIGVycm9yID0gbm5wZnNfZGF0YV92 YWxpZChpbm9kZSwgTk5QRlNfREFUQV9SLCBpb2NiLT5raV9wb3MsIGlvY2It PmtpX3BvcyArIGNvdW50KTsNCisjZW5kaWYNCiAgICAgaWYgKGVycm9yKSB7 DQogCU5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWFkX2ZpbGU6IGRh dGEgbm90IHZhbGlkICVkXG4iLCBlcnJvcikpOw0KIAlyZXR1cm4gZXJyb3I7 DQogICAgIH0NCiAgICAgDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL RVJORUxfVkVSU0lPTigyLDYsMTkpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgZXJyb3IgPSBnZW5l cmljX2ZpbGVfYWlvX3JlYWQoaW9jYiwgaW92LCBucl9zZWdzLCBwb3MpOw0K ICNlbHNlDQotICAgIGVycm9yID0gZ2VuZXJpY19maWxlX2Fpb19yZWFkKGlv Y2IsIGJ1ZiwgY291bnQsIHBvcyk7DQorICAgIGVycm9yID0gZ2VuZXJpY19m aWxlX3JlYWRfaXRlcihpb2NiLCB0byk7DQogI2VuZGlmDQogICAgIE5OUEZT REVCKFhERUJWTk9QUywgKCJubnBmc19yZWFkX2ZpbGU6IGVycm9yID0gJWRc biIsIGVycm9yKSk7DQogICAgIHJldHVybiBlcnJvcjsNCkBAIC04MjksMjMg KzkyOCwzNiBAQCBubnBmc19haW9fcmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2Is DQogICoNCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMywxNiwwKQ0KIHN0YXRpYyBzc2l6ZV90DQogbm5wZnNf YWlvX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCi0jaWYgTElOVVhfVkVS U0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCiAJCWNvbnN0 IHN0cnVjdCBpb3ZlYyAqaW92LCB1bnNpZ25lZCBsb25nIG5yX3NlZ3MsDQor CQlsb2ZmX3QgcG9zKQ0KICNlbHNlDQotCQljb25zdCBjaGFyIF9fdXNlciAq YnVmLCBzaXplX3QgY291bnQsIA0KK3N0YXRpYyBzc2l6ZV90DQorbm5wZnNf d3JpdGVfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRl ciAqZnJvbSkNCiAjZW5kaWYNCi0JCWxvZmZfdCBwb3MpDQogew0KICAgICBp bnQgZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3QgZmlsZSAqZmlsZSA9IGlvY2It PmtpX2ZpbHA7DQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxf VkVSU0lPTigyLDYsMTkpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsMTIsMCkNCiAgICAgc3NpemVfdCBjb3VudCA9IGlv Y2ItPmtpX2xlZnQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oNCwxLDApDQorICAgIHNzaXplX3QgY291bnQgPSBpb2Ni LT5raV9uYnl0ZXM7DQorI2Vsc2UNCisgICAgc3NpemVfdCBjb3VudCA9IGlv dl9pdGVyX2NvdW50KGZyb20pOw0KICNlbmRpZg0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVj dCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisj ZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRo LmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZz X25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogICAg IGxvZmZfdCByZWFscG9zID0gcG9zOw0KKyNlbHNlDQorICAgIGxvZmZfdCBy ZWFscG9zID0gaW9jYi0+a2lfcG9zOw0KKyNlbmRpZg0KICAgICANCiAgICAg Tk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2Fpb193cml0ZSglcCk6IHRv a2VuczogMHgleFxuIiwNCiAJCQkgaW5vZGUsIHhuLT50b2tlbnMpKTsNCkBA IC04NTksMTAgKzk3MSwxMCBAQCBubnBmc19haW9fd3JpdGUoc3RydWN0IGtp b2NiICppb2NiLA0KIAlyZXR1cm4gZXJyb3I7DQogICAgIH0NCiANCi0jaWYg TElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx NiwwKQ0KICAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV9haW9fd3JpdGUoaW9j YiwgaW92LCBucl9zZWdzLCBwb3MpOw0KICNlbHNlDQotICAgIGVycm9yID0g Z2VuZXJpY19maWxlX2Fpb193cml0ZShpb2NiLCBidWYsIGNvdW50LCBwb3Mp Ow0KKyAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV93cml0ZV9pdGVyKGlvY2Is IGZyb20pOw0KICNlbmRpZg0KICAgICBpZiAoIUlTX0VSUl9WQUxVRShlcnJv cikpDQogCXhuLT5mbGFncyB8PSBOTlBGU19EQVRBX0RJUlRZOyAvKiBYWFgg cmFjZSAqLw0KQEAgLTg3MSw5ICs5ODMsMTkgQEAgbm5wZnNfYWlvX3dyaXRl KHN0cnVjdCBraW9jYiAqaW9jYiwNCiAgICAgcmV0dXJuIGVycm9yOw0KIH0N CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o MywzLDApDQogc3RhdGljIGludA0KIG5ucGZzX2NyZWF0ZShzdHJ1Y3QgaW5v ZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KIAkgICAgIGludCBt b2RlLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCitzdGF0aWMgaW50 DQorbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVu dHJ5ICpkZW50cnksDQorCSAgICAgdW1vZGVfdCBtb2RlLCBzdHJ1Y3QgbmFt ZWlkYXRhICpuZCkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19jcmVh dGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwN CisJICAgICB1bW9kZV90IG1vZGUsIGJvb2wgZXhjbCkNCisjZW5kaWYNCiB7 DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1Y3Qgbm5w ZnNfbm9kZSAqeG47DQpAQCAtOTAzLDkgKzEwMjUsMTcgQEAgbm5wZnNfY3Jl YXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZA0KICAgICBYQV9DTEVB UigmbXNnLmF0dHIpOw0KICAgICBYQV9TRVRfTU9ERSgmbXNnLmF0dHIsIG1v ZGUpOw0KICAgICBYQV9TRVRfVFlQRSgmbXNnLmF0dHIsIE5OUEZTX0ZJTEVf UkVHKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJT SU9OKDIsNiwyOCkNCiAgICAgWEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1cnJl bnQtPmZzZ2lkKTsNCisjZWxzZQ0KKyAgICBYQV9TRVRfR0lEKCZtc2cuYXR0 ciwgY3VycmVudF9mc2dpZCgpKTsNCisjZW5kaWYNCiAgICAgbXNnLm1vZGUg PSAwOwkJLyogWFhYICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBL RVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1 cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJy ZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBm c19nZXRfcGFnKCk7DQogICAgIGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMo bm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KICAgICBpZiAo ZXJyb3IgPT0gMCkNCkBAIC05NDYsNyArMTA3NiwxMSBAQCBubnBmc191bmxp bmsgKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0DQogICAgIGlmIChzdHJs Y3B5KG1zZy5uYW1lLCBkZW50cnktPmRfbmFtZS5uYW1lLCBzaXplb2YobXNn Lm5hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJcmV0dXJuIC1FTkFNRVRP T0xPTkc7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxf VkVSU0lPTigyLDYsMjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQt PnVpZDsNCisjZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3Vp ZCgpOw0KKyNlbmRpZg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRf cGFnKCk7DQogICAgIGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNw LCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KICAgICBpZiAoZXJyb3Ig PT0gMCkNCkBAIC05OTEsNyArMTEyNSwxMSBAQCBubnBmc19yZW5hbWUgKHN0 cnVjdCBpbm9kZSAqIG9sZF9kaXIsIHN0DQogICAgIGlmIChzdHJsY3B5KG1z Zy5uZXdfbmFtZSwgbmV3X2RlbnRyeS0+ZF9uYW1lLm5hbWUsIHNpemVvZiht c2cubmV3X25hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJcmV0dXJuIC1F TkFNRVRPT0xPTkc7DQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0g S0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBtc2cuY3JlZC51aWQgPSBj dXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgbXNnLmNyZWQudWlkID0gY3Vy cmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAgbXNnLmNyZWQucGFnID0gbm5w ZnNfZ2V0X3BhZygpOw0KICAgICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBj KG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCiAgICAgaWYg KGVycm9yID09IDApDQpAQCAtMTAwOCw4ICsxMTQ2LDEzIEBAIG5ucGZzX3Jl bmFtZSAoc3RydWN0IGlub2RlICogb2xkX2Rpciwgc3QNCiAgICAgcmV0dXJu IGVycm9yOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMywzLDApDQogc3RhdGljIGludA0KIG5ucGZzX21rZGly KHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBp bnQgbW9kZSkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19ta2Rpcihz dHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW1v ZGVfdCBtb2RlKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5ucGZzICpu bnBmc3A7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCkBAIC0xMDQw LDkgKzExODMsMTcgQEAgbm5wZnNfbWtkaXIoc3RydWN0IGlub2RlICogZGly LCBzdHJ1Y3QgZA0KIAlYQV9DTEVBUigmbXNnLmF0dHIpOw0KIAlYQV9TRVRf TU9ERSgmbXNnLmF0dHIsIG1vZGUpOw0KIAlYQV9TRVRfVFlQRSgmbXNnLmF0 dHIsIE5OUEZTX0ZJTEVfRElSKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJWEFfU0VUX0dJRCgmbXNn LmF0dHIsIGN1cnJlbnQtPmZzZ2lkKTsNCisjZWxzZQ0KKyAgICAgICAgWEFf U0VUX0dJRCgmbXNnLmF0dHIsIGN1cnJlbnRfZnNnaWQoKSk7DQorI2VuZGlm DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lP TigyLDYsMjgpDQogCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisj ZWxzZQ0KKyAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsN CisjZW5kaWYNCiAJbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0K IAllcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFk ZXIsIHNpemVvZihtc2cpKTsNCiAJaWYgKGVycm9yID09IDApDQpAQCAtMTA4 Myw3ICsxMjM0LDExIEBAIG5ucGZzX3JtZGlyKHN0cnVjdCBpbm9kZSAqIGRp ciwgc3RydWN0IGQNCiAgICAgbXNnLnBhcmVudF9oYW5kbGUgPSB4bi0+aGFu ZGxlOw0KICAgICBpZiAoc3RybGNweShtc2cubmFtZSwgZGVudHJ5LT5kX25h bWUubmFtZSwgc2l6ZW9mKG1zZy5uYW1lKSkgPj0gTk5QRlNfTUFYX05BTUUp DQogCSAgICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbXNn LmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgIG1zZy5j cmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAgIG1zZy5j cmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgZXJyb3IgPSBubnBm c19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNn KSk7DQogICAgIGlmIChlcnJvciA9PSAwKQ0KQEAgLTExMjgsNyArMTI4Mywx MSBAQCBzdGF0aWMgaW50IG5ucGZzX2xpbmsoc3RydWN0IGRlbnRyeSAqb2xk DQogCWlmIChzdHJsY3B5KG1zZy5uYW1lLCBuYW1lLCBzaXplb2YobXNnLm5h bWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJICAgIHJldHVybiAtRU5BTUVU T09MT05HOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVM X1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51 aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRf dWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9w YWcoKTsNCiAJZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZt c2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQogCWlmIChlcnJvciA9PSAwKQ0K QEAgLTExNTcsMjkgKzEzMTYsNDcgQEAgc3RhdGljIGludCBubnBmc19zeW1s aW5rKHN0cnVjdCBpbm9kZSAqZA0KICAgICB4biA9IFZOT0RFX1RPX1hOT0RF KGRpcik7DQogDQogICAgIHsNCi0Jc3RydWN0IG5ucGZzX21lc3NhZ2Vfc3lt bGluayBtc2c7DQorCXN0cnVjdCBubnBmc19tZXNzYWdlX3N5bWxpbmsgKm1z ZyA9IE5VTEw7DQogDQotCW1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNH X1NZTUxJTks7DQotCW1zZy5wYXJlbnRfaGFuZGxlID0geG4tPmhhbmRsZTsN Ci0JaWYgKHN0cmxjcHkobXNnLm5hbWUsIG5hbWUsIHNpemVvZihtc2cubmFt ZSkpID49IE5OUEZTX01BWF9OQU1FKQ0KLQkgICAgcmV0dXJuIC1FTkFNRVRP T0xPTkc7DQotCWlmIChzdHJsY3B5KG1zZy5jb250ZW50cywgc3ltbmFtZSwg c2l6ZW9mKG1zZy5jb250ZW50cykpID49IE5OUEZTX01BWF9TWU1MSU5LX0NP TlRFTlQpDQotCSAgICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCi0JWEFfQ0xF QVIoJm1zZy5hdHRyKTsNCi0JWEFfU0VUX01PREUoJm1zZy5hdHRyLCAwNzc3 KTsNCi0JWEFfU0VUX1RZUEUoJm1zZy5hdHRyLCBOTlBGU19GSUxFX0xOSyk7 DQotCVhBX1NFVF9HSUQoJm1zZy5hdHRyLCBjdXJyZW50LT5mc2dpZCk7DQor CW1zZyA9IGttYWxsb2Moc2l6ZW9mKCptc2cpLCBHRlBfS0VSTkVMKTsNCiAN Ci0JbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KLQltc2cuY3JlZC5w YWcgPSBubnBmc19nZXRfcGFnKCk7DQotCWVycm9yID0gbm5wZnNfbWVzc2Fn ZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KKwlp ZiAobXNnID09IE5VTEwpDQorCSAgcmV0dXJuIC1FTk9NRU07DQorDQorCW1z Zy0+aGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19TWU1MSU5LOw0KKwltc2ct PnBhcmVudF9oYW5kbGUgPSB4bi0+aGFuZGxlOw0KKwlpZiAoc3RybGNweSht c2ctPm5hbWUsIG5hbWUsIHNpemVvZihtc2ctPm5hbWUpKSA+PSBOTlBGU19N QVhfTkFNRSkgew0KKwkgIGtmcmVlKG1zZyk7DQorCSAgcmV0dXJuIC1FTkFN RVRPT0xPTkc7DQorCX0NCisJaWYgKHN0cmxjcHkobXNnLT5jb250ZW50cywg c3ltbmFtZSwgc2l6ZW9mKG1zZy0+Y29udGVudHMpKSA+PSBOTlBGU19NQVhf U1lNTElOS19DT05URU5UKSB7DQorCSAga2ZyZWUobXNnKTsNCisJICByZXR1 cm4gLUVOQU1FVE9PTE9ORzsNCisJfQ0KKwlYQV9DTEVBUigmbXNnLT5hdHRy KTsNCisJWEFfU0VUX01PREUoJm1zZy0+YXR0ciwgMDc3Nyk7DQorCVhBX1NF VF9UWVBFKCZtc2ctPmF0dHIsIE5OUEZTX0ZJTEVfTE5LKTsNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJ WEFfU0VUX0dJRCgmbXNnLT5hdHRyLCBjdXJyZW50LT5mc2dpZCk7DQorI2Vs c2UNCisgICAgICAgIFhBX1NFVF9HSUQoJm1zZy0+YXR0ciwgY3VycmVudF9m c2dpZCgpKTsNCisjZW5kaWYNCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJbXNnLT5jcmVkLnVpZCA9 IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLT5jcmVkLnVp ZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQorCW1zZy0+Y3JlZC5wYWcg PSBubnBmc19nZXRfcGFnKCk7DQorCWVycm9yID0gbm5wZnNfbWVzc2FnZV9y cGMobm5wZnNwLCAmbXNnLT5oZWFkZXIsIHNpemVvZigqbXNnKSk7DQogCWlm IChlcnJvciA9PSAwKQ0KLQkgICAgZXJyb3IgPSBOTlBGU19NU0dfV0FLRVVQ X0VSUk9SKCZtc2cpOw0KKwkgICAgZXJyb3IgPSBOTlBGU19NU0dfV0FLRVVQ X0VSUk9SKG1zZyk7DQogDQogCS8qIFhYWCBzaG91bGQgdGhpcyByZWFsbHkg YmUgaGVyZSAqLw0KIAlpZiAoREVOVFJZX1RPX1hERU5UUlkoZGVudHJ5KS0+ eGRfZmxhZ3MgPT0gMCkgew0KIAkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIk5O UEZTIFBhbmljOiBubnBmc19zeW1saW5rOiBkZW50cnkgbm90IHZhbGlkXG4i KTsNCiAJfQ0KKwlrZnJlZShtc2cpOw0KICAgICB9DQogDQogICAgIHJldHVy biBlcnJvcjsNCkBAIC0xMTg4LDEyICsxMzY1LDIxIEBAIHN0YXRpYyBpbnQg bm5wZnNfc3ltbGluayhzdHJ1Y3QgaW5vZGUgKmQNCiAvKg0KICAqIFdlIGhv bGQgaV9tdXRleC4NCiAgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19y ZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAqIGRpcmVudCwgZmls bGRpcl90IGZpbGxkaXIpDQorI2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNf aXRlcmF0ZShzdHJ1Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCBkaXJfY29udGV4 dCAqY3R4KQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yOw0KICAgICBs b2ZmX3Qgb2Zmc2V0LCBiZWdpbl9vZmZzZXQ7DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0 IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNl bHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGgu ZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgaW5vZGUg KmNhY2hlX2lub2RlOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBW Tk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAgIGNoYXIgKmJ1ZjsNCkBAIC0x MjY0LDYgKzE0NTAsNyBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICog ZmlsZSwgdm9pZCAqDQogCQkgICAgKGludCkgeGRpcmVudC0+ZF9uYW1sZW4s DQogCQkgICAgKGludCkgKG9mZnNldCtiZWdpbl9vZmZzZXQpKSk7DQogDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEs MCkNCiAJICAgIGlmICh4ZGlyZW50LT5kX2ZpbGVubyAhPSAwDQogCQkmJiAo ZmlsbGRpcl9lcnJvciA9IGZpbGxkaXIgKGRpcmVudCwNCiAJCQkJICAgICB4 ZGlyZW50LT5kX25hbWUsDQpAQCAtMTI3NSw2ICsxNDYyLDE4IEBAIG5ucGZz X3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJCQkgKCJu bnBmc19yZWFkZGlyIGZpbGxkaXI6ICVkXG4iLCBmaWxsZGlyX2Vycm9yKSk7 DQogCQlicmVhazsNCiAJICAgIH0NCisjZWxzZQ0KKwkgICAgaWYgKHhkaXJl bnQtPmRfZmlsZW5vICE9IDANCisJCSYmIChmaWxsZGlyX2Vycm9yID0gZGly X2VtaXQgKGN0eCwNCisJCQkJICAgICB4ZGlyZW50LT5kX25hbWUsDQorCQkJ CSAgICAgeGRpcmVudC0+ZF9uYW1sZW4sDQorCQkJCSAgICAgeGRpcmVudC0+ ZF9maWxlbm8sDQorCQkJCSAgICAgRFRfVU5LTk9XTikpIDwgMCkgew0KKwkJ Tk5QRlNERUIoWERFQlJFQURESVIsDQorCQkJICgibm5wZnNfcmVhZGRpciBm aWxsZGlyOiAlZFxuIiwgZmlsbGRpcl9lcnJvcikpOw0KKwkJYnJlYWs7DQor CSAgICB9DQorI2VuZGlmDQogCSAgICBvZmZzZXQgKz0geGRpcmVudC0+ZF9y ZWNsZW47DQogDQogCSAgICBpZiAoeGRpcmVudC0+ZF9yZWNsZW4gPT0gMCkg ew0KQEAgLTEzMzEsOSArMTUzMCwxNSBAQCBubnBmc19yZWFkbGluayAoc3Ry dWN0IGRlbnRyeSAqZGVudHJ5LCBjDQogICogV2UgZG9uJ3QgaG9sZCBpX211 dGV4Lg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTig0LDIsMCkNCiBzdGF0aWMgdm9pZCAqDQogbm5wZnNfZm9s bG93X2xpbmsgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwNCiAJCSBzdHJ1Y3Qg bmFtZWlkYXRhICpuZCkNCisjZWxzZQ0KK3N0YXRpYyBjb25zdCBjaGFyICoN CitubnBmc19mb2xsb3dfbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0K KwkJIHZvaWQgKipwYWdlKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9y ID0gMDsNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IERFTlRSWV9UT19J Tk9ERShkZW50cnkpOw0KQEAgLTEzNDQsNyArMTU0OSwxMSBAQCBubnBmc19m b2xsb3dfbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5DQogICAgIGlmIChl cnJvcikNCiAgICAgICAgcmV0dXJuIEVSUl9QVFIoZXJyb3IpOw0KIA0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDIsMCkN CiAgICAgcmV0dXJuIHBhZ2VfZm9sbG93X2xpbmtfbGlnaHQoZGVudHJ5LCBu ZCk7DQorI2Vsc2UNCisgICAgcmV0dXJuIHBhZ2VfZm9sbG93X2xpbmtfbGln aHQoZGVudHJ5LCBwYWdlKTsNCisjZW5kaWYNCiB9DQogDQogLyoNCkBAIC0x Mzk4LDcgKzE2MDcsMTEgQEAgbm5wZnNfc2V0YXR0ciAoc3RydWN0IGRlbnRy eSAqZGVudHJ5LCBzdA0KICAgICAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2Vf cHV0YXR0ciBtc2c7DQogDQogICAgICAgICBtc2cuaGVhZGVyLm9wY29kZSA9 IE5OUEZTX01TR19QVVRBVFRSOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51aWQgPSBj dXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVkLnVpZCA9 IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IG5u cGZzX2dldF9wYWcoKTsNCiAgICAgICAgIG1zZy5oYW5kbGUgPSB4bi0+aGFu ZGxlOw0KICAgICAgICAgbm5wZnNfaWF0dHIyYXR0cih4biwgYXR0ciwgJm1z Zy5hdHRyKTsNCkBAIC0xNDIyLDYgKzE2MzUsOCBAQCBubnBmc19yZWxlYXNl X2ZpbGUgKHN0cnVjdCBpbm9kZSAqaW5vZGUsDQogICAgIHN0cnVjdCBubnBm c19ub2RlICp4bjsNCiAgICAgaW50IGVycm9yID0gMDsNCiANCisgICAgKHZv aWQpbm5wZnNwOw0KKw0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5w ZnNfcmVsZWFzZV9maWxlXG4iKSk7DQogDQogICAgIGVycm9yID0gbm5wZnNf aW5vZGVfdmFsaWQoaW5vZGUpOw0KQEAgLTE0NTAsMTggKzE2NjUsMTggQEAg bm5wZnNfcmVsZWFzZV9maWxlIChzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KICAq DQogICovDQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxf VkVSU0lPTigyLDYsMTgpDQogc3RhdGljIGludA0KIG5ucGZzX2ZsdXNoKHN0 cnVjdCBmaWxlICpmaWxlLCBmbF9vd25lcl90IGlkKQ0KLSNlbHNlDQotc3Rh dGljIGludA0KLW5ucGZzX2ZsdXNoKHN0cnVjdCBmaWxlICpmaWxlKQ0KLSNl bmRpZg0KIHsNCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2Zs dXNoXG4iKSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMTksMCkNCiAgICAgaWYgKGZpbGUgJiYgZmlsZS0+Zl9k ZW50cnkgJiYgZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUpDQogCXJldHVybiBu bnBmc19yZWxlYXNlX2ZpbGUoZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUsIGZp bGUpOw0KKyNlbHNlDQorICAgIGlmIChmaWxlICYmIGZpbGUtPmZfcGF0aC5k ZW50cnkgJiYgZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSkNCisJcmV0 dXJuIG5ucGZzX3JlbGVhc2VfZmlsZShmaWxlLT5mX3BhdGguZGVudHJ5LT5k X2lub2RlLCBmaWxlKTsNCisjZW5kaWYNCiAgICAgZWxzZQ0KIAlyZXR1cm4g MDsNCiB9DQpAQCAtMTQ3MCw4ICsxNjg1LDEzIEBAIG5ucGZzX2ZsdXNoKHN0 cnVjdCBmaWxlICpmaWxlKQ0KICAqIFJldHVybiAxIGlmIGBkZW50cnknIGlz IHN0aWxsIHZhbGlkLCBvdGhlcndpc2UgMC4NCiAgKi8NCiANCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogc3Rh dGljIGludA0KLW5ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpk ZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKSANCitubnBmc19kX3JldmFs aWRhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRh ICpuZCkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19kX3JldmFsaWRh dGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3Mp DQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gREVO VFJZX1RPX0lOT0RFKGRlbnRyeSk7DQogICAgIE5OUEZTREVCKFhERUJWTk9Q UywgKCJubnBmc19kX3JldmFsaWRhdGUgJXAgXCIlLipzXCIgKGlub2RlICVw KVxuIiwNCkBAIC0xNTE5LDkgKzE3MzksMTUgQEAgbm5wZnNfZF9yZXZhbGlk YXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeQ0KICAgICByZXR1cm4gMDsNCiB9 DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDIsNiwzOCkNCiBzdGF0aWMNCiBpbnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1 Y3QgZGVudHJ5ICpkZW50cnkpDQorI2Vsc2UNCitzdGF0aWMNCitpbnQNCitu bnBmc19kX2RlbGV0ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQor I2VuZGlmDQogew0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlOw0KICAgICBz dHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAtMTU0NiwxMSArMTc3MiwxNiBA QCBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQogfQ0K IA0KIHN0YXRpYyBzc2l6ZV90DQotbm5wZnNfc2VuZGZpbGUoc3RydWN0IGZp bGUgKmZpbGUsIGxvZmZfdCAqcHBvcywgc2l6ZV90IGNvdW50LA0KLQkgICAg ICAgcmVhZF9hY3Rvcl90IGFjdG9yLCB2b2lkICp0YXJnZXQpDQorbm5wZnNf c3BsaWNlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCAqcHBvcywN CisJCSAgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSwgc2l6ZV90IGNv dW50LA0KKwkJICB1bnNpZ25lZCBpbnQgZmxhZ3MpDQogew0KICAgICBpbnQg ZXJyb3IgPSAwOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBm aWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3Qg aW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsN CisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVf VE9fWE5PREUoaW5vZGUpOw0KICAgICANCiAgICAgaWYgKHhuICE9IE5VTEwp DQpAQCAtMTU2MSw4ICsxNzkyLDcgQEAgbm5wZnNfc2VuZGZpbGUoc3RydWN0 IGZpbGUgKmZpbGUsIGxvZmZfdA0KIAlOTlBGU0RFQihYREVCVk5PUFMsICgi bm5wZnNfc2VuZGZpbGU6IGRhdGEgbm90IHZhbGlkICVkXG4iLCBlcnJvcikp Ow0KIAlyZXR1cm4gZXJyb3I7DQogICAgIH0NCi0NCi0gICAgZXJyb3IgPSBn ZW5lcmljX2ZpbGVfc2VuZGZpbGUoZmlsZSwgcHBvcywgY291bnQsIGFjdG9y LCB0YXJnZXQpOw0KKyAgICBlcnJvciA9IGZpbGUtPmZfb3AtPnNwbGljZV9y ZWFkKGZpbGUsIHBwb3MsIHBpcGUsIGNvdW50LCBmbGFncyk7DQogDQogICAg IE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19zZW5kZmlsZTogZXJyb3Ig PSAlZFxuIiwgZXJyb3IpKTsNCiAgICAgcmV0dXJuIGVycm9yOw0KQEAgLTE2 MzksMzQgKzE4NjksMzEgQEAgbm5wZnNfd3JpdGVfYmFja3BhZ2Uoc3RydWN0 IHBhZ2UgKnBhZ2UsDQogCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5n ID0gYmFja2ZpbGUtPmZfbWFwcGluZzsNCiAJdW5zaWduZWQgbGVuID0gUEFH RV9DQUNIRV9TSVpFOw0KIAlzdHJ1Y3QgcGFnZSAqYmFja3BhZ2U7DQorCXZv aWQgKmZzZGF0YTsNCiAJdW5zaWduZWQgbG9uZyBvZmZzZXQ7DQogDQogCWlu dCBlcnJvcjsNCiAJDQotCWRvIHsNCi0JCWJhY2twYWdlID0gZ3JhYl9jYWNo ZV9wYWdlKG1hcHBpbmcsIG5ucGZzX2dldF9iYWNraW5kZXgocGFnZSkpOw0K LQkJaWYgKCFiYWNrcGFnZSkgew0KLQkJCXByaW50aygibm5wZnNfd3JpdGVf YmFja3BhZ2U6IG5vIHBhZ2VcbiIpOw0KLQkJCXJldHVybiAtRUlPOw0KLQkJ fQ0KKwkodm9pZClvZmZzZXQ7DQogDQotCQllcnJvciA9IG1hcHBpbmctPmFf b3BzLT5wcmVwYXJlX3dyaXRlKGJhY2tmaWxlLCBiYWNrcGFnZSwNCi0JCQkJ CQkgICAgICAwLCBsZW4pOw0KKwlkbyB7DQorCQllcnJvciA9IHBhZ2VjYWNo ZV93cml0ZV9iZWdpbihiYWNrZmlsZSwgbWFwcGluZywgMCwgbGVuLA0KKwkJ CQkJICAgICAgQU9QX0ZMQUdfVU5JTlRFUlJVUFRJQkxFLA0KKwkJCQkJICAg ICAgJmJhY2twYWdlLCAmZnNkYXRhKTsNCiAJCWlmICghZXJyb3IpIHsNCiAJ CQljb3B5X2hpZ2hwYWdlKGJhY2twYWdlLCBwYWdlKTsNCiAJCQlmbHVzaF9k Y2FjaGVfcGFnZShiYWNrcGFnZSk7DQotCQkJZXJyb3IgPSBtYXBwaW5nLT5h X29wcy0+Y29tbWl0X3dyaXRlKGJhY2tmaWxlLCBiYWNrcGFnZSwNCi0JCQkJ CQkJICAgICAwLCBsZW4pOw0KKwkJCWVycm9yID0gcGFnZWNhY2hlX3dyaXRl X2VuZChiYWNrZmlsZSwgbWFwcGluZywgMCwgbGVuLA0KKwkJCQkJbGVuLCBi YWNrcGFnZSwgZnNkYXRhKTsNCisJCQlpZiAoZXJyb3IgPiAwKQ0KKwkJCQll cnJvciA9IDA7DQogCQl9DQogCQlpZiAoZXJyb3IgPT0gQU9QX1RSVU5DQVRF RF9QQUdFKSB7DQotCQkJcGFnZV9jYWNoZV9yZWxlYXNlKGJhY2twYWdlKTsN CiAJCQljb250aW51ZTsNCiAJCX0NCiAJfSB3aGlsZSAoMCk7DQogDQogCW9m ZnNldCA9IHBhZ2Vfb2Zmc2V0KGJhY2twYWdlKTsNCi0JdW5sb2NrX3BhZ2Uo YmFja3BhZ2UpOw0KLQlwYWdlX2NhY2hlX3JlbGVhc2UoYmFja3BhZ2UpOw0K IA0KIAlpZiAoZXJyb3IpDQogCQlwcmludGsoIm5ucGZzX3dyaXRlX2JhY2tw YWdlOiBFSU9cbiIpOw0KQEAgLTE2ODksMTMgKzE5MTYsOSBAQCBubnBmc19y ZWFkX2JhY2twYWdlKHN0cnVjdCBwYWdlICpwYWdlLCBzDQogCXN0cnVjdCBw YWdlICpiYWNrcGFnZTsNCiAJdW5zaWduZWQgbG9uZyBvZmZzZXQ7DQogDQot I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYs MTgpDQorCSh2b2lkKW9mZnNldDsNCisNCiAJYmFja3BhZ2UgPSByZWFkX21h cHBpbmdfcGFnZShtYXBwaW5nLCBuLCBiYWNrZmlsZSk7DQotI2Vsc2UNCi0J YmFja3BhZ2UgPSByZWFkX2NhY2hlX3BhZ2UobWFwcGluZywgbiwNCi0JCQkJ ICAgKGZpbGxlcl90ICopbWFwcGluZy0+YV9vcHMtPnJlYWRwYWdlLA0KLQkJ CQkgICBiYWNrZmlsZSk7DQotI2VuZGlmDQogCWlmICghSVNfRVJSKGJhY2tw YWdlKSkgew0KIAkJd2FpdF9vbl9wYWdlX2xvY2tlZChiYWNrcGFnZSk7DQog DQpAQCAtMTg0MiwxMSArMjA2NSwxNyBAQCBubnBmc19wcmVwYXJlX3dyaXRl KHN0cnVjdCBmaWxlICpmaWxlLCBzDQogDQogCWlmIChtb2RzaXplID4gaV9z aXplX3JlYWQoaW5vZGUpKSB7DQogCQlpbnQgZXJyb3I7DQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOCwwKQ0KIAkJZXJy b3IgPSB2bXRydW5jYXRlKGlub2RlLCBtb2RzaXplKTsNCisjZWxzZQ0KKwkJ ZXJyb3IgPSBpbm9kZV9uZXdzaXplX29rKGlub2RlLCBtb2RzaXplKTsNCisJ CWlmKCFlcnJvcikNCisJCQl0cnVuY2F0ZV9zZXRzaXplKGlub2RlLCBtb2Rz aXplKTsNCisjZW5kaWYNCiAJCWlmIChlcnJvcikgew0KIAkJCXByaW50aygi bm5wZnNfcHJlcGFyZV93cml0ZTogdHJ1bmNhdGUoJWxsdSkgLT4gJWRcbiIs DQogCQkJICAgICAgIG1vZHNpemUsIC1lcnJvcik7DQotCQkJQlVHKCk7IC8q IFhYWCBub3QgY29ycmVjdCAqLw0KKwkJCS8qQlVHKCk7Ki8gLyogWFhYIG5v dCBjb3JyZWN0ICovDQogCQl9DQogCX0NCiANCkBAIC0xODcyLDggKzIxMDEs MzcgQEAgbm5wZnNfcHJlcGFyZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwg cw0KIAlyZXR1cm4gcmV0Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisNCitzdGF0aWMgaW50 DQorbm5wZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVj dCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3QgcG9zLA0KK3Vuc2ln bmVkIGxlbiwgdW5zaWduZWQgZmxhZ3MsIHN0cnVjdCBwYWdlICoqcGFnZXAs IHZvaWQgKipmc2RhdGEpDQorew0KKwlzdHJ1Y3QgcGFnZSAqcGFnZTsNCisJ cGdvZmZfdCBpbmRleDsNCisJdW5zaWduZWQgZnJvbTsNCisNCisJaW5kZXgg PSBwb3MgPj4gUEFHRV9DQUNIRV9TSElGVDsNCisJZnJvbSA9IHBvcyAmIChQ QUdFX0NBQ0hFX1NJWkUgLSAxKTsNCisNCisjaWZkZWYgQU9QX0ZMQUdfTk9G Uw0KKwlwYWdlID0gZ3JhYl9jYWNoZV9wYWdlX3dyaXRlX2JlZ2luKG1hcHBp bmcsIGluZGV4LCBmbGFncyk7DQorI2Vsc2UNCisJcGFnZSA9IF9fZ3JhYl9j YWNoZV9wYWdlKG1hcHBpbmcsIGluZGV4KTsNCisjZW5kaWYNCisJaWYgKHBh Z2UgPT0gTlVMTCkNCisJCXJldHVybiAtRU5PTUVNOw0KKw0KKwkqcGFnZXAg PSBwYWdlOw0KKw0KKwlyZXR1cm4gbm5wZnNfcHJlcGFyZV93cml0ZShmaWxl LCBwYWdlLCBmcm9tLCBmcm9tICsgbGVuKTsNCit9DQorDQorI2VuZGlmDQor DQogc3RhdGljIGludA0KLW5ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3QgZmls ZSAqZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGZyb20sIHVu c2lnbmVkIHRvKQ0KK25ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3QgZmlsZSAq ZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UsDQorCQkgICB1bnNpZ25lZCBmcm9t LCB1bnNpZ25lZCB0bykNCiB7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUg PSBwYWdlLT5tYXBwaW5nLT5ob3N0Ow0KICAgICBsb2ZmX3QgcG9zID0gKChs b2ZmX3QpcGFnZS0+aW5kZXggPDwgUEFHRV9DQUNIRV9TSElGVCkgKyB0bzsN CkBAIC0xOTAyLDE0ICsyMTYwLDUxIEBAIG5ucGZzX2NvbW1pdF93cml0ZShz dHJ1Y3QgZmlsZSAqZmlsZSwgc3QNCiAgICAgcmV0dXJuIDA7DQogfQ0KIA0K LSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2 LDE4KQ0KLWNvbnN0DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO RUxfVkVSU0lPTigyLDYsMjgpDQorDQorc3RhdGljIGludA0KK25ucGZzX3dy aXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3Bh Y2UgKm1hcHBpbmcsIGxvZmZfdCBwb3MsDQorCQl1bnNpZ25lZCBsZW4sIHVu c2lnbmVkIGNvcGllZCwgc3RydWN0IHBhZ2UgKnBhZ2UsIHZvaWQgKmZzZGF0 YSkNCit7DQorCXVuc2lnbmVkIGZyb20gPSBwb3MgJiAoUEFHRV9DQUNIRV9T SVpFIC0gMSk7DQorDQorCS8qIHplcm8gdGhlIHN0YWxlIHBhcnQgb2YgdGhl IHBhZ2UgaWYgd2UgZGlkIGEgc2hvcnQgY29weSAqLw0KKwlpZiAoY29waWVk IDwgbGVuKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsNiwwKQ0KKwkJdm9pZCAqa2FkZHIgPSBrbWFwX2F0b21pYyhw YWdlLCBLTV9VU0VSMCk7DQorI2Vsc2UNCisJCXZvaWQgKmthZGRyID0ga21h cF9hdG9taWMocGFnZSk7DQorI2VuZGlmDQorCQltZW1zZXQoa2FkZHIgKyBm cm9tICsgY29waWVkLCAwLCBsZW4gLSBjb3BpZWQpOw0KKwkJZmx1c2hfZGNh Y2hlX3BhZ2UocGFnZSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsNiwwKQ0KKwkJa3VubWFwX2F0b21pYyhrYWRkciwg S01fVVNFUjApOw0KKyNlbHNlDQorCQlrdW5tYXBfYXRvbWljKGthZGRyKTsN CiAjZW5kaWYNCisJfQ0KKw0KKwlubnBmc19jb21taXRfd3JpdGUoZmlsZSwg cGFnZSwgZnJvbSwgZnJvbSArIGNvcGllZCk7DQorDQorCXVubG9ja19wYWdl KHBhZ2UpOw0KKwlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7DQorDQorCXJl dHVybiBjb3BpZWQ7DQorfQ0KKw0KKyNlbmRpZg0KKw0KK2NvbnN0DQogc3Ry dWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBubnBmc19hb3BzID0gew0K IAkucmVhZHBhZ2UgPSBubnBmc19yZWFkcGFnZSwNCiAJLndyaXRlcGFnZSA9 IG5ucGZzX3dyaXRlcGFnZSwNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAkucHJlcGFyZV93cml0ZSA9IG5u cGZzX3ByZXBhcmVfd3JpdGUsDQogCS5jb21taXRfd3JpdGUgPSBubnBmc19j b21taXRfd3JpdGUsDQorI2Vsc2UNCisJLndyaXRlX2JlZ2luID0gbm5wZnNf d3JpdGVfYmVnaW4sDQorCS53cml0ZV9lbmQgPSBubnBmc193cml0ZV9lbmQs DQorI2VuZGlmDQogfTsNCiANCiAvKg0KQEAgLTE5MTcsMjEgKzIyMTIsMzAg QEAgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBubnBmc19hbw0K ICAqLw0KIA0KIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZmlsZV9v cGVyYXRpb25zID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDE2LDApDQogICAgIC5haW9fcmVhZAk9IG5ucGZzX2Fp b19yZWFkLA0KICAgICAuYWlvX3dyaXRlCT0gbm5wZnNfYWlvX3dyaXRlLA0K KyNlbHNlDQorICAgIC5yZWFkX2l0ZXIJPSBubnBmc19yZWFkX2l0ZXIsDQor ICAgIC53cml0ZV9pdGVyCT0gbm5wZnNfd3JpdGVfaXRlciwNCisjZW5kaWYN CiAgICAgLm1tYXAJPSBubnBmc19maWxlX21tYXAsDQogICAgIC5vcGVuCT0g bm5wZnNfb3BlbiwNCiAgICAgLmZsdXNoCT0gbm5wZnNfZmx1c2gsDQogICAg IC5yZWxlYXNlCT0gbm5wZnNfcmVsZWFzZV9maWxlLA0KICAgICAuZnN5bmMJ PSBubnBmc19mc3luYywNCi0gICAgLnNlbmRmaWxlCT0gbm5wZnNfc2VuZGZp bGUsDQorICAgIC5zcGxpY2VfcmVhZCA9IG5ucGZzX3NwbGljZV9yZWFkLA0K IH07DQogDQogc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19kZWFkX29w ZXJhdGlvbnMgPSB7DQogfTsNCiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25z IG5ucGZzX2Rpcl9vcGVyYXRpb25zID0gew0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDExLDApDQogICAgIC5yZWFkZGly CT0gbm5wZnNfcmVhZGRpciwNCisjZWxzZQ0KKyAgICAuaXRlcmF0ZSAgICA9 IG5ucGZzX2l0ZXJhdGUsDQorI2VuZGlmDQogICAgIC5mbHVzaAk9IG5ucGZz X2ZsdXNoLA0KIH07DQogDQpkaWZmIC11cHJOIGFybGEtMC45MC1vbGQvbm5w ZnMvbGludXgvbm5wZnNfbG9hZC5jIGFybGEtMC45MC9ubnBmcy9saW51eC9u bnBmc19sb2FkLmMNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25u cGZzX2xvYWQuYwkyMDA2LTEwLTMxIDExOjAyOjQxLjAwMDAwMDAwMCArMDEw MA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMJMjAx Ni0wMS0xMyAyMDoxNDowMi44MzAxMDM1MTcgKzAxMDANCkBAIC01NCw3ICs1 NCwxMSBAQCBleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19m b3BzDQogDQogc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgbm5wZnNfZnNfdHlw ZSA9IHsNCiAgICAgICAgbmFtZTogICAgICAgICAgICJubnBmcyIsDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkN CiAgICAgICAgZ2V0X3NiOiAgICAgICAgIG5ucGZzX2dldF9zYiwNCisjZWxz ZQ0KKyAgICAgICBtb3VudDogICAgICAgICAgbm5wZnNfbW91bnQsDQorI2Vu ZGlmDQogICAgICAgIGtpbGxfc2I6ICAgICAgICBraWxsX2xpdHRlcl9zdXBl ciwNCiAgICAgICAgb3duZXI6ICAgICAgICAgIFRISVNfTU9EVUxFLA0KIH07 DQpkaWZmIC11cHJOIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNf bWVzc2FnZS5jIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdl LmMNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX21lc3Nh Z2UuYwkyMDA3LTAxLTA5IDE3OjMzOjMxLjAwMDAwMDAwMCArMDEwMA0KKysr IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAxNi0w MS0xNCAxNjo1MDoxNS4xMzk1NzUxNTEgKzAxMDANCkBAIC00NSw3ICs0NSw3 IEBADQogI2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+DQogDQogI2lmZGVmIFJD U0lEDQotUkNTSUQoIiRJZDogbm5wZnNfbWVzc2FnZS5jLHYgMS4xNDMuMi4x IDIwMDcvMDEvMDkgMTY6MzM6MzEgdG9sIEV4cCAkIik7DQorUkNTSUQoIiRJ ZDogbm5wZnNfbWVzc2FnZS5jLHYgMS4xNDUgMjAxMC8wOC8wOCAyMDo0Mzow NSB0b2wgRXhwICQiKTsNCiAjZW5kaWYNCiANCiBzdGF0aWMgdm9pZA0KQEAg LTU1LDkgKzU1LDE1IEBAIHN0YXRpYyB2b2lkDQogbm5wZnNfZF9yZW1vdmUo c3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KIHsNCiAgICAgTk5QRlNERUIoWERF Qk1TRywgKCJubnBmc19kX3JlbW92ZSAlcFxuIiwgZGVudHJ5KSk7DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkN CiAgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQogICAgIGRnZXRfbG9j a2VkKGRlbnRyeSk7DQogICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7 DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZkZW50cnktPmRfbG9jayk7DQor ICAgIGRnZXRfZGxvY2soZGVudHJ5KTsNCisgICAgc3Bpbl91bmxvY2soJmRl bnRyeS0+ZF9sb2NrKTsNCisjZW5kaWYNCiAgICAgZF9kcm9wKGRlbnRyeSk7 DQogICAgIGRwdXQoZGVudHJ5KTsNCiB9DQpAQCAtMTIxLDcgKzEyNywxMSBA QCBubnBmc19tZXNzYWdlX2luc3RhbGxub2RlKHN0cnVjdCBubnBmcyAqDQog ICAgIHN0cnVjdCBpbm9kZSAqZGksICppbm9kZTsNCiAgICAgc3RydWN0IGRl bnRyeSAqcGFyZW50ID0gTlVMTDsNCiAgICAgc3RydWN0IHFzdHIgc3FzdHI7 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs NiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICphbGlhczsNCisjZWxpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisg ICAgc3RydWN0IGhsaXN0X25vZGUgKmFsaWFzOw0KKyNlbmRpZg0KICAgICAN CiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBmc19tZXNzYWdlX2luc3Rh bGxub2RlXG4iKSk7DQogICAgIA0KQEAgLTE3NiwxMiArMTg2LDI2IEBAIG5u cGZzX21lc3NhZ2VfaW5zdGFsbG5vZGUoc3RydWN0IG5ucGZzICoNCiAgICAg ICoNCiAgICAgICovDQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgYWxpYXMgPSBkaS0+aV9k ZW50cnkubmV4dDsNCiAgICAgd2hpbGUgKGFsaWFzICE9ICZkaS0+aV9kZW50 cnkpIHsNCiAJcGFyZW50ID0gbGlzdF9lbnRyeShhbGlhcywgc3RydWN0IGRl bnRyeSwgZF9hbGlhcyk7DQotCXNwaW5fbG9jaygmZGNhY2hlX2xvY2spOw0K LQlkZ2V0X2xvY2tlZChwYXJlbnQpOw0KLQlzcGluX3VubG9jaygmZGNhY2hl X2xvY2spOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJl bnQsIGFsaWFzLCAmZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K KyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJlbnQsICZkaS0+aV9kZW50 cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9l bnRyeShwYXJlbnQsICZkaS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7DQor I2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDIsNiwzOCkNCisgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQor ICAgIGRnZXRfbG9ja2VkKHBhcmVudCk7DQorICAgIHNwaW5fdW5sb2NrKCZk Y2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZwYXJlbnQt PmRfbG9jayk7DQorICAgIGRnZXRfZGxvY2socGFyZW50KTsNCisgICAgc3Bp bl91bmxvY2soJnBhcmVudC0+ZF9sb2NrKTsNCisjZW5kaWYNCiAJZGVudHJ5 ID0gZF9sb29rdXAocGFyZW50LCAmc3FzdHIpOw0KIAlOTlBGU0RFQihYREVC TVNHLA0KIAkJICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZTogYWxpYXMg JXAsIGxvb2t1cCAlcFxuIiwNCkBAIC0yMzMsNyArMjU3LDkgQEAgbm5wZnNf bWVzc2FnZV9pbnN0YWxsbm9kZShzdHJ1Y3Qgbm5wZnMgKg0KIAkNCiAJZHB1 dChkZW50cnkpOw0KIAlkZW50cnkgPSBOVUxMOw0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJYWxpYXMgPSBh bGlhcy0+bmV4dDsNCisjZW5kaWYNCiAJZHB1dChwYXJlbnQpOw0KICAgICB9 DQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfbWVzc2FnZV9pbnN0 YWxsbm9kZTogZG9uZSBpbnN0YWxsaW5nXG4iKSk7DQpAQCAtMjY4LDcgKzI5 NCwxMyBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxhdHRyKHN0cnVjdCBubnBm cyAqDQogICAgIH0NCiANCiAgICAgaW5vZGUgPSBYTk9ERV9UT19WTk9ERSh0 KTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Myw2LDApDQogICAgIGRlbnRyeSA9IGxpc3RfZW50cnkoaW5vZGUtPmlfZGVu dHJ5Lm5leHQsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KKyNlbGlmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisg ICAgZGVudHJ5ID0gaGxpc3RfZW50cnkoaW5vZGUtPmlfZGVudHJ5LmZpcnN0 LCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0KKyAgICBkZW50 cnkgPSBobGlzdF9lbnRyeShpbm9kZS0+aV9kZW50cnkuZmlyc3QsIHN0cnVj dCBkZW50cnksIGRfdS5kX2FsaWFzKTsNCisjZW5kaWYNCiAgICAgDQogICAg IE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsYXR0 ciBuYW1lOiVzXG4iLA0KIAkJICAgICAgIGRlbnRyeS0+ZF9uYW1lLm5hbWUp KTsNCkBAIC0zOTYsMTcgKzQyOCwzNiBAQCBubnBmc19tZXNzYWdlX2luc3Rh bGxkYXRhKHN0cnVjdCBubnBmcyAqDQogc3RhdGljIHZvaWQNCiBjbGVhcl9h bGxfY2hpbGRyZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBwYXJlbnQp DQogew0KKyAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBz dHJ1Y3QgbGlzdF9oZWFkICphbGlhczsNCisjZWxpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgc3RydWN0IGhs aXN0X25vZGUgKmFsaWFzOw0KKyNlbmRpZg0KIA0KICBhZ2FpbjoNCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0K ICAgICBzcGluX2xvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICAv KiBUT0RPOiBmaW5kIHRoZSBkZW50cnkgdG8gbG9jayAqLw0KKyAgICAvKnNw aW5fbG9jaygmZGVudHJ5LT5kX2xvY2spOyovDQorI2VuZGlmDQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAg ICBhbGlhcyA9IGlub2RlLT5pX2RlbnRyeS5uZXh0Ow0KICAgICB3aGlsZSAo YWxpYXMgIT0gJmlub2RlLT5pX2RlbnRyeSkgew0KLQlzdHJ1Y3QgZGVudHJ5 ICpkZW50cnk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMyw5LDApDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRl bnRyeSwgYWxpYXMsICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisj ZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5 LDApDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgJmlub2Rl LT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbHNlDQorICAgIGhsaXN0X2Zv cl9lYWNoX2VudHJ5KGRlbnRyeSwgJmlub2RlLT5pX2RlbnRyeSwgZF91LmRf YWxpYXMpIHsNCisjZW5kaWYNCiAJc3RydWN0IGxpc3RfaGVhZCAqc3ViZGly czsNCiAJc3RydWN0IG5ucGZzX2RlbnRyeV9kYXRhICp4ZDsNCiAJDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0K IAlkZW50cnkgPSBsaXN0X2VudHJ5KGFsaWFzLCBzdHJ1Y3QgZGVudHJ5LCBk X2FsaWFzKTsNCisjZW5kaWYNCiAJaWYgKGRlbnRyeSA9PSBOVUxMKSB7DQog CSAgICBwcmludGsoS0VSTl9FTUVSRyAiTk5QRlMgUGFuaWM6IGRlbnRyeSBp biBhbGlhcyBsaXN0IGlzIG51bGxcbiIpOw0KIAkgICAgYnJlYWs7DQpAQCAt NDIyLDcgKzQ3MywxMSBAQCBjbGVhcl9hbGxfY2hpbGRyZW4gKHN0cnVjdCBp bm9kZSAqaW5vZGUsDQogCXN1YmRpcnMgPSBkZW50cnktPmRfc3ViZGlycy5u ZXh0Ow0KIAl3aGlsZSAoc3ViZGlycyAhPSAmZGVudHJ5LT5kX3N1YmRpcnMp IHsNCiAJICAgIHN0cnVjdCBsaXN0X2hlYWQgKnRtcCA9IHN1YmRpcnM7DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks MCkNCiAJICAgIHN0cnVjdCBkZW50cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0 bXAsIHN0cnVjdCBkZW50cnksIGRfdS5kX2NoaWxkKTsNCisjZWxzZQ0KKwkg ICAgc3RydWN0IGRlbnRyeSAqY2hpbGQgPSBsaXN0X2VudHJ5KHRtcCwgc3Ry dWN0IGRlbnRyeSwgZF9jaGlsZCk7DQorI2VuZGlmDQogCSAgICBzdWJkaXJz ID0gdG1wLT5uZXh0Ow0KIAkgICAgTk5QRlNERUIoWERFQk1TRywgKCJjbGVh cl9hbGxfY2hpbGRyZW4gY2hpbGQ6ICUuKnMgaW5vZGU6ICVwLyVwICINCiAJ CQkgICAgICAgImRjb3VudDogJWQgYWxpYXNlczpcbiIsDQpAQCAtNDQyLDE0 ICs0OTcsMjYgQEAgY2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5vZGUg Kmlub2RlLA0KIA0KIAkgICAgLyogVGhyb3cgaW1tZWRpYXRlbHkgKi8NCiAJ ICAgIGlmIChubnBmc19kY291bnQoY2hpbGQpID09IDApIHsNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KIAkg ICAgICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisJ CS8qIFRPRE86IHVubG9jayB0aGUgZGVudHJ5ICovDQorCQkvKnNwaW5fdW5s b2NrKCZkZW50cnktPmRfbG9jayk7Ki8NCisjZW5kaWYNCiAJCW5ucGZzX2Rf cmVtb3ZlKGNoaWxkKTsNCiAJCWdvdG8gYWdhaW47DQogCSAgICB9DQogCX0N CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2 LDApDQogCWFsaWFzID0gYWxpYXMtPm5leHQ7DQorI2VuZGlmDQogICAgIH0N CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2 LDM4KQ0KICAgICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNl DQorICAgIC8qIFRPRE86IHVubG9jayB0aGUgZGVudHJ5ICovDQorICAgIC8q c3Bpbl91bmxvY2soJmRlbnRyeS0+ZF9sb2NrKTsqLw0KKyNlbmRpZg0KIH0N CiANCiBzdGF0aWMgdm9pZA0KQEAgLTYwNSwxMiArNjcyLDEwIEBAIGdjX2Js b2NrKHN0cnVjdCBubnBmcyAqbm5wZnNwLA0KICAgICB9DQogDQogICAgIGlm ICghbm5wZnNfYmxvY2tfaGF2ZV9wKHhuLCBvZmZzZXQpKSB7DQotI2lmIDAg ICAvKiBoYXBwZW5zIHdoZW4gZGFlbW9uIHNlbmRzIHNldmVyYWwgbWVzc2Fn ZXMgZm9yIHNhbWUgYmxvY2sgKi8NCiAJcHJpbnRrKEtFUk5fRU1FUkcgIk5O UEZTL2djX2Jsb2NrOiAiDQogCSAgICAgICAiRU5PRU5UICglZCwlZCwlZCwl ZCkgMHglbGx4XG4iLCANCiAJICAgICAgIHhuLT5oYW5kbGUuYSwgeG4tPmhh bmRsZS5iLCB4bi0+aGFuZGxlLmMsIHhuLT5oYW5kbGUuZCwgDQogCSAgICAg ICAodW5zaWduZWQgbG9uZyBsb25nKW9mZnNldCk7DQotI2VuZGlmDQogCXJl dHVybiAtRU5PRU5UOw0KICAgICB9DQogDQpAQCAtNzIxLDEyICs3ODYsMjIg QEAgbm5wZnNfbWVzc2FnZV92ZXJzaW9uKHN0cnVjdCBubnBmcyAqbm5wZg0K IA0KICAgICAvKiBzYW5pdHkgY2hlY2sgYmVmb3JlIHdlIGxvb2sgYXQgaXQg Ki8NCiAgICAgaWYgKHNpemUgPT0gc2l6ZW9mKCptZXNzYWdlKSAmJiBtZXNz YWdlLT52ZXJzaW9uID09IE5OUEZTX1ZFUlNJT04pIHsNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAlzdHJ1 Y3QgbmFtZWlkYXRhIG5kOw0KKyNlbHNlDQorCXN0cnVjdCBwYXRoIHBhdGg7 DQorI2VuZGlmDQogCWludCBlcnJvcjsNCiANCiAJdWludDY0X3QgYmxvY2tz aXplID0gbWVzc2FnZS0+YmxvY2tzaXplOw0KIA0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogCWVycm9yID0g cGF0aF9sb29rdXAoIi4iLCAwLCAmbmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJZXJyb3IgPSBr ZXJuX3BhdGgoIi4iLCAwLCAmbmQucGF0aCk7DQorI2Vsc2UNCisJZXJyb3Ig PSBrZXJuX3BhdGgoIi4iLCAwLCAmcGF0aCk7DQorI2VuZGlmDQogCWlmIChl cnJvcikgew0KIAkgICAgLyoNCiAJICAgICAqIEJhZCBjYWNoZSByb290LCBq dXN0IHJldHVybi4NCkBAIC03MzcsMTIgKzgxMiwyMyBAQCBubnBmc19tZXNz YWdlX3ZlcnNpb24oc3RydWN0IG5ucGZzICpubnBmDQogCQkgICAibm5wZnNf bWVzc2FnZV92ZXJzaW9uIGZhaWxlZCBwYXRoX2xvb2t1cCwgIg0KIAkJICAg ImVycm5vOiAlZFxuIiwgZXJyb3IpOw0KIAl9IGVsc2Ugew0KLQkgICAgbm5w ZnNwLT5jYWNoZXJvb3QgPSBtbnRnZXQobmQubW50KTsNCi0JICAgIG5ucGZz cC0+Y2FjaGVkaXIgPSBkZ2V0KG5kLmRlbnRyeSk7DQotCSAgICBwYXRoX3Jl bGVhc2UoJm5kKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxOSwwKQ0KKwkgICAgbm5wZnNwLT5jYWNoZXJvb3QgPSBt bnRnZXQobmQucGF0aC5tbnQpOw0KKwkgICAgbm5wZnNwLT5jYWNoZWRpciA9 IGRnZXQobmQucGF0aC5kZW50cnkpOw0KKwkgICAgcGF0aF9wdXQoJm5kLnBh dGgpOw0KKyNlbHNlDQorCSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdl dChwYXRoLm1udCk7DQorCSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChw YXRoLmRlbnRyeSk7DQorCSAgICBwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlm DQogCSAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W RVJTSU9OKDIsNiwyOCkNCiAJICAgIG5ucGZzcC0+dWlkID0gY3VycmVudC0+ ZnN1aWQ7DQogCSAgICBubnBmc3AtPmdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0K KyNlbHNlDQorICAgICAgICAgICAgbm5wZnNwLT51aWQgPSBjdXJyZW50X2Zz dWlkKCk7DQorICAgICAgICAgICAgbm5wZnNwLT5naWQgPSBjdXJyZW50X2Zz Z2lkKCk7DQorI2VuZGlmDQogDQogCSAgICAvKiBYWFggd2Ugc2hvdWxkIHZh bGlkYXRlIHRoZXNlIHZhbHVlcyAqLw0KIAkgICAgbm5wZnNfYmxvY2tzaXpl ID0gYmxvY2tzaXplOw0KZGlmZiAtdXByTiBhcmxhLTAuOTAtb2xkL25ucGZz L2xpbnV4L25ucGZzX25vZGUuYyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5w ZnNfbm9kZS5jDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBm c19ub2RlLmMJMjAwNy0wMS0wMyAxNDo1MjowMi4wMDAwMDAwMDAgKzAxMDAN CisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfbm9kZS5jCTIwMTYt MDEtMTQgMTY6NTE6MTEuNDIwNTc4NTQ0ICswMTAwDQpAQCAtMTMyLDcgKzEz MiwxMiBAQCBubnBmc19zZXRzaXplKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVp bnQ2DQogCXByaW50aygibm5wZnNfc2V0c2l6ZTogdHJ1bmNhdGluZyBAMHgl bGx1XG4iLA0KIAkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylzaXplKTsN CiAjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMyw4LDApDQogCXZtdHJ1bmNhdGUoaW5vZGUsIHNpemUpOyAvKiBY WFggcmV0dmFsICovDQorI2Vsc2UNCisJaWYoIWlub2RlX25ld3NpemVfb2so aW5vZGUsIHNpemUpKQ0KKwkgICAgdHJ1bmNhdGVfc2V0c2l6ZShpbm9kZSwg c2l6ZSk7DQorI2VuZGlmDQogCW5ucGZzX2Jsb2NrX3RydW5jYXRlKHhuLCBz aXplKTsNCiAgICAgfQ0KIH0NCkBAIC0xNTAsOSArMTU1LDE4IEBAIG5ucGZz X2F0dHIyaW5vZGUoY29uc3Qgc3RydWN0IG5ucGZzX2F0dHINCiAJc3RydWN0 IHRpbWVzcGVjIG5vdGltZSA9IHswfTsNCiANCiAJaW5vZGUtPmlfbW9kZSAg ID0gMDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMywxNCwwKQ0KIAlpbm9kZS0+aV91aWQgICAgPSAwOw0KIAlpbm9kZS0+ aV9naWQgICAgPSAwOw0KKyNlbHNlDQorCWlub2RlLT5pX3VpZCAgICA9IEtV SURUX0lOSVQoMCk7DQorCWlub2RlLT5pX2dpZCAgICA9IEtHSURUX0lOSVQo MCk7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMiwwKQ0KIAlpbm9kZS0+aV9ubGluayAgPSAxOw0KKyNl bHNlDQorCXNldF9ubGluayhpbm9kZSwgMSk7DQorI2VuZGlmDQogCWlub2Rl LT5pX2F0aW1lICA9IG5vdGltZTsNCiAJaW5vZGUtPmlfbXRpbWUgID0gbm90 aW1lOw0KIAlpbm9kZS0+aV9jdGltZSAgPSBub3RpbWU7DQpAQCAtMTY5LDcg KzE4MywxMSBAQCBubnBmc19hdHRyMmlub2RlKGNvbnN0IHN0cnVjdCBubnBm c19hdHRyDQogICAgIGlmIChYQV9WQUxJRF9HSUQoYXR0cikpDQogCWlub2Rl LT5pX2dpZCAgICA9IGF0dHItPnhhX2dpZDsNCiAgICAgaWYgKFhBX1ZBTElE X05MSU5LKGF0dHIpKQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDIsMCkNCiAJaW5vZGUtPmlfbmxpbmsgID0gYXR0ci0+ eGFfbmxpbms7DQorI2Vsc2UNCisJc2V0X25saW5rKGlub2RlLCBhdHRyLT54 YV9ubGluayk7DQorI2VuZGlmDQogICAgIA0KICAgICBpZiAoWEFfVkFMSURf U0laRShhdHRyKSkgew0KIAlubnBmc19zZXRzaXplKGlub2RlLCBhdHRyLT54 YV9zaXplKTsNCkBAIC01MTAsMTIgKzUyOCwyNCBAQCBubnBmc19oYXNfcGFn KGNvbnN0IHN0cnVjdCBubnBmc19ub2RlICp4DQogaW50DQogbm5wZnNfbm9k ZV91c2VycyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KIHsNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0 cnVjdCBsaXN0X2hlYWQgKnBvczsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaGxp c3Rfbm9kZSAqcG9zOw0KKyNlbmRpZg0KICAgICBpbnQgdXNlcnMgPSAwOw0K ICAgICANCiAgICAgLyogWFhYIHRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHBy b3RlY3RlZCBzb21laG93ICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBsaXN0X2Zvcl9lYWNoKHBv cywgJmlub2RlLT5pX2RlbnRyeSkgew0KKyNlbHNlDQorICAgIGhsaXN0X2Zv cl9lYWNoKHBvcywgJmlub2RlLT5pX2RlbnRyeSkgew0KKyNlbmRpZg0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp DQogCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGxpc3RfZW50cnkocG9zLCBz dHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0KKwlzdHJ1Y3QgZGVu dHJ5ICpkZW50cnkgPSBsaXN0X2VudHJ5KHBvcywgc3RydWN0IGRlbnRyeSwg ZF91LmRfYWxpYXMpOw0KKyNlbmRpZg0KIAlpZiAobm5wZnNfZGNvdW50KGRl bnRyeSkgPiAxKQ0KIAkgICAgdXNlcnMrKzsNCiAgICAgfQ0KZGlmZiAtdXBy TiBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMg YXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMNCi0tLSBh cmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMJMjAw Ny0wMS0wMyAxNToyNjoyNy4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAu OTAvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMuYwkyMDE2LTAxLTE0IDE3 OjAwOjIwLjY0MTYxMTY1NSArMDEwMA0KQEAgLTQyLDcgKzQyLDkgQEANCiAj aW5jbHVkZSA8bm5wZnMvbm5wZnNfc3lzY2FsbHMuaD4NCiAjaW5jbHVkZSA8 bm5wZnMvbm5wZnNfY29tbW9uLmg+DQogI2luY2x1ZGUgPGxpbnV4L2ZpbGUu aD4NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Miw2LDM5KQ0KICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPg0KKyNlbmRp Zg0KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4NCiAjaW5jbHVkZSA8bGludXgv cHJvY19mcy5oPg0KIA0KQEAgLTUwLDYgKzUyLDExIEBADQogI2luY2x1ZGUg PGxpbnV4L3NlY3VyaXR5Lmg+DQogI2VuZGlmDQogDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDcsMCkNCisjdW5kZWYg U1lTQ0FMTEhBQ0sNCisvKiB0aGUgbWV0aG9kIHRvIHJlYWQgJ2xvd2VyX2Jv dW5kJyBkb2VzIG5vdCB3b3JrIG9uIGtlcm5lbCAzLjcgYW5kIGxhdGVyLCBz ZSBubnBmc19zeXNjYWxscy1sb3NzYWdlLmMgKi8NCisjZW5kaWYNCisNCiAj aWYgMA0KICNpZmRlZiBDT05GSUdfQ09NUEFUDQogI2luY2x1ZGUgPGxpbnV4 L2lvY3RsMzIuaD4NCkBAIC02NCw3ICs3MSw3IEBADQogI3VuZGVmIE5FRURf VklDRUlPQ1RMMzINCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBu bnBmc19zeXNjYWxscy5jLHYgMS4xMjIgMjAwNy8wMS8wMyAxNDoyNjoyNyB0 b2wgRXhwICQiKTsNCitSQ1NJRCgiJElkOiBubnBmc19zeXNjYWxscy5jLHYg MS4xMjUgMjAxMC8wOC8wOCAyMDo0MzowNiB0b2wgRXhwICQiKTsNCiAjZW5k aWYNCiANCiBzdGF0aWMgc3RydWN0IHByb2NfZGlyX2VudHJ5ICpubnBmc19w cm9jZnNfZGlyOw0KQEAgLTgyLDEyICs4OSwyMiBAQCB0eXBlZGVmIHN0cnVj dCBhZnNwcm9jZGF0YSB7DQogICAgIHVuc2lnbmVkIGxvbmcgc3lzY2FsbDsN CiB9IGFmc3Byb2NkYXRhOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogc3RhdGljIGludA0KIG5ucGZz X3Byb2Nmc19pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmls ZSAqZmlsZSwNCiAJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxv bmcgYXJnKTsNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfcHJvY2Zz X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWduZWQgaW50 IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOw0KKyNlbmRpZg0KIA0KIHN0YXRp YyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX3Byb2Nmc19mb3BzID0g ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy LDYsMzYpDQogICAgIC5pb2N0bCA9IG5ucGZzX3Byb2Nmc19pb2N0bCwNCisj ZWxzZQ0KKyAgICAudW5sb2NrZWRfaW9jdGwgPSBubnBmc19wcm9jZnNfaW9j dGwsDQorI2VuZGlmDQogfTsNCiANCiANCkBAIC0xNDcsNTMgKzE2NCw0OCBA QCBzdGF0aWMgaW50IG5ucGZzX3NlY19yZWdpc3RlcmVkID0gMDsNCiAjZGVm aW5lIFNFQzJQQUcocykgKG5ucGZzX3BhZ190KSh1bnNpZ25lZCBsb25nKShz KQ0KICNkZWZpbmUgUEFHMlNFQyhwKSAodm9pZCAqKSh1bnNpZ25lZCBsb25n KShwKQ0KIA0KLXN0YXRpYyBpbnQNCi1ubnBmc19zZWNfdGFza19hbGxvYyhz dHJ1Y3QgdGFza19zdHJ1Y3QgKnApDQotew0KLSAgICBubnBmc19wYWdfdCBw YWcgPSBTRUMyUEFHKGN1cnJlbnQtPnNlY3VyaXR5KTsNCi0gICAgaWYgKHBh ZykNCi0JcC0+c2VjdXJpdHkgPSBQQUcyU0VDKHBhZyk7DQotICAgIHJldHVy biAwOw0KLX0NCi0NCi1zdGF0aWMgdm9pZA0KLW5ucGZzX3NlY190YXNrX2Zy ZWUoc3RydWN0IHRhc2tfc3RydWN0ICpwKQ0KLXsNCi0gICAgbm5wZnNfcGFn X3QgcGFnID0gU0VDMlBBRyhwLT5zZWN1cml0eSk7DQotICAgIGlmIChwYWcp DQotCXAtPnNlY3VyaXR5ID0gTlVMTDsNCi19DQotDQogc3RhdGljIG5ucGZz X3BhZ190DQogbm5wZnNfZ2V0X3BhZ19zZWModm9pZCkNCiB7DQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQog ICAgIG5ucGZzX3BhZ190IHBhZyA9IFNFQzJQQUcoY3VycmVudC0+c2VjdXJp dHkpOw0KKyNlbHNlDQorICAgIG5ucGZzX3BhZ190IHBhZyA9IFNFQzJQQUco Y3VycmVudF9zZWN1cml0eSgpKTsNCisjZW5kaWYNCiAgICAgaWYgKHBhZykN CiAJcmV0dXJuIHBhZzsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9 IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgcmV0dXJuIGN1cnJlbnQt PnVpZDsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDE0LDApDQorICAgIHJldHVybiBjdXJyZW50X3VpZCgpOw0KKyNl bHNlDQorICAgIHsga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgpOyByZXR1 cm4ga3VpZC52YWw7IH0NCisjZW5kaWYNCiB9DQogDQogc3RhdGljIGludA0K IG5ucGZzX3NldF9wYWdfc2VjKHZvaWQpDQogew0KICAgICBzdGF0aWMgbm5w ZnNfcGFnX3QgcGFnbnVtID0gTk5QRlNfUEFHX0xMSU07DQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMjkpDQorICAg IHN0cnVjdCBjcmVkICpjcmVkOw0KKyNlbmRpZg0KIA0KICAgICBpZiAocGFn bnVtID09IE5OUEZTX1BBR19VTElNKQ0KIAlyZXR1cm4gLUVOT01FTTsNCiAg ICAgLyogcGFnbnVtID0gTk5QRlNfUEFHX0xMSU07ICovDQogICAgIA0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4 KQ0KICAgICBjdXJyZW50LT5zZWN1cml0eSA9IFBBRzJTRUMocGFnbnVtKTsN CisjZWxzZQ0KKyAgICBjcmVkID0gKHN0cnVjdCBjcmVkICopIGN1cnJlbnQt PmNyZWQ7DQorICAgIGNyZWQtPnNlY3VyaXR5ID0gUEFHMlNFQyhwYWdudW0p Ow0KKyNlbmRpZg0KICAgICBwYWdudW0rKzsNCiAgICAgcmV0dXJuIDA7DQog fQ0KIA0KLXN0YXRpYyBzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9ucyBubnBm c19zZWNfb3BzID0gew0KLSAgICAudGFza19hbGxvY19zZWN1cml0eSA9IG5u cGZzX3NlY190YXNrX2FsbG9jLA0KLSAgICAudGFza19mcmVlX3NlY3VyaXR5 ID0gbm5wZnNfc2VjX3Rhc2tfZnJlZSwNCi0vLyAgICAudGFza19yZXBhcmVu dF90b19pbml0ID0gbm5wZnNfc2VjX3JlcGFyZW50X3RvX2luaXQsDQotfTsN Ci0NCiAjZW5kaWYgLyogQ09ORklHX1NFQ1VSSVRZICovDQogDQogI2lmZGVm IEdST1VQUEFHUw0KQEAgLTIwNiw3ICsyMTgsMTIgQEAgZmluZF9wYWcoc3Ry dWN0IGdyb3VwX2luZm8gKmdpKQ0KICAgICBOTlBGU0RFQihYREVCU1lTLCAo ImZpbmRfcGFnOiBuZ3JvdXBzID0gJWRcbiIsIGdpLT5uZ3JvdXBzKSk7DQog DQogICAgIGZvciAoaSA9IGdpLT5uZ3JvdXBzIC0gMTsgaSA+PSAwOyBpLS0p IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o MywxNCwwKQ0KIAlnaWRfdCBncm91cCA9IEdST1VQX0FUKGdpLCBpKTsNCisj ZWxzZQ0KKwlrZ2lkX3Qga2dyb3VwID0gR1JPVVBfQVQoZ2ksIGkpOw0KKwln aWRfdCBncm91cCA9IGtncm91cC52YWw7DQorI2VuZGlmDQogCWlmICgobm5w ZnNfcGFnX3QpZ3JvdXAgPj0gTk5QRlNfUEFHX0xMSU0gJiYgKG5ucGZzX3Bh Z190KWdyb3VwIDwgTk5QRlNfUEFHX1VMSU0pIHsNCiAJICAgIE5OUEZTREVC KFhERUJTWVMsDQogCQkgICAgICgiZmluZF9wYWc6IEV4aXN0aW5nIHBhZyAl dSBhdCBwb3MgJXVcbiIsIGdyb3VwLCBpKSk7DQpAQCAtMjIyLDE1ICsyMzks MzEgQEAgZmluZF9wYWcoc3RydWN0IGdyb3VwX2luZm8gKmdpKQ0KIHN0YXRp YyBubnBmc19wYWdfdA0KIG5ucGZzX2dldF9wYWdfZ3JvdXAodm9pZCkNCiB7 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigy LDYsMjgpDQogICAgIHN0cnVjdCBncm91cF9pbmZvICpnaSA9IGN1cnJlbnQt Pmdyb3VwX2luZm87DQogICAgIG5ucGZzX3BhZ190IHJldCA9IGN1cnJlbnQt PnVpZDsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kgPSBn ZXRfY3VycmVudF9ncm91cHMoKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KKyAgICBubnBmc19wYWdfdCBy ZXQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbHNlDQorICAgIGt1aWRfdCBrdWlk ID0gY3VycmVudF91aWQoKTsNCisgICAgbm5wZnNfcGFnX3QgcmV0ID0ga3Vp ZC52YWw7DQorI2VuZGlmDQorI2VuZGlmDQogICAgIGludCBpOw0KIA0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4 KQ0KICAgICBnZXRfZ3JvdXBfaW5mbyhnaSk7DQorI2VuZGlmDQogDQogICAg IGkgPSBmaW5kX3BhZyhnaSk7DQogICAgIGlmIChpICE9IE5OUEZTX1BBR19O T1RGT1VORCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxNCwwKQ0KIAlyZXQgPSBHUk9VUF9BVChnaSwgaSk7DQorI2Vs c2UNCisJeyBrZ2lkX3Qga2dpZCA9IEdST1VQX0FUKGdpLCBpKTsgcmV0ID0g a2dpZC52YWw7IH0NCisjZW5kaWYNCiANCiAgICAgcHV0X2dyb3VwX2luZm8o Z2kpOw0KIA0KQEAgLTI0MiwxMyArMjc1LDE5IEBAIG5ucGZzX2dldF9wYWdf Z3JvdXAodm9pZCkNCiBzdGF0aWMgaW50DQogc3RvcmVfcGFnKG5ucGZzX3Bh Z190IHBhZ251bSkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBL RVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIHN0cnVjdCBncm91cF9pbmZv ICpvbGRfZ2kgPSBjdXJyZW50LT5ncm91cF9pbmZvOw0KKyNlbHNlDQorICAg c3RydWN0IGdyb3VwX2luZm8gKm9sZF9naSA9IGdldF9jdXJyZW50X2dyb3Vw cygpOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqbmV3X2dp Ow0KLSAgICBpbnQgbmJsb2NrcywgY291bnQ7DQorICAgIHVuc2lnbmVkIGlu dCBuYmxvY2tzLCBjb3VudDsNCiAgICAgaW50IGZvdW5kID0gMDsNCiAgICAg aW50IGksIGs7DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0g S0VSTkVMX1ZFUlNJT04oMiw2LDI4KSAgICANCiAgICAgZ2V0X2dyb3VwX2lu Zm8ob2xkX2dpKTsNCisjZW5kaWYNCiANCiAgICAgaSA9IGZpbmRfcGFnKG9s ZF9naSk7DQogICAgIGlmIChpICE9IE5OUEZTX1BBR19OT1RGT1VORCkNCkBA IC0yNzQsMTAgKzMxMywxNyBAQCBzdG9yZV9wYWcobm5wZnNfcGFnX3QgcGFn bnVtKQ0KIAljb3VudCAtPSBOR1JPVVBTX1BFUl9CTE9DSzsNCiAgICAgfQ0K IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDE0LDApDQogICAgIGlmIChmb3VuZCkNCiAJR1JPVVBfQVQobmV3X2dpLCBp KSA9IHBhZ251bTsNCiAgICAgZWxzZQ0KIAlHUk9VUF9BVChuZXdfZ2ksIG5l d19naS0+bmdyb3VwcyAtIDEpID0gcGFnbnVtOw0KKyNlbHNlDQorICAgIGlm IChmb3VuZCkNCisJeyBrZ2lkX3Qga2dpZCA9IEtHSURUX0lOSVQocGFnbnVt KTsgR1JPVVBfQVQobmV3X2dpLCBpKSA9IGtnaWQ7IH0NCisgICAgZWxzZQ0K Kwl7IGtnaWRfdCBrZ2lkID0gS0dJRFRfSU5JVChwYWdudW0pOyBHUk9VUF9B VChuZXdfZ2ksIG5ld19naS0+bmdyb3VwcyAtIDEpID0ga2dpZDsgfQ0KKyNl bmRpZg0KICAgICANCiAgICAgc2V0X2N1cnJlbnRfZ3JvdXBzKG5ld19naSk7 DQogICAgIHB1dF9ncm91cF9pbmZvKG5ld19naSk7DQpAQCAtMzE3LDcgKzM2 MywxMyBAQCBubnBmc19nZXRfcGFnKCkNCiAgICAgcmV0dXJuIG5ucGZzX2dl dF9wYWdfZ3JvdXAoKTsNCiAjZW5kaWYgLyogR1JPVVBQQUdTICovDQogDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYs MjgpDQogICAgIHJldHVybiBjdXJyZW50LT51aWQ7DQorI2VsaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KKyAgICBy ZXR1cm4gY3VycmVudF91aWQoKTsNCisjZWxzZQ0KKyAgICB7IGt1aWRfdCBr dWlkID0gY3VycmVudF91aWQoKTsgcmV0dXJuIGt1aWQudmFsOyB9DQorI2Vu ZGlmDQogfQ0KIA0KIHN0YXRpYyBpbmxpbmUgaW50DQpAQCAtNDIyLDcgKzQ3 NCw3IEBAIG5ucGZzX3NldGdyb3VwczE2IChpbnQgZ2lkc2V0c2l6ZSwgb2xk X2cNCiAjZW5kaWYgLyogU1lTQ0FMTEhBQ0sgKi8NCiAjZW5kaWYgLyogR1JP VVBQQUdTICovDQogDQotc3RydWN0IGZpbGVfaGFuZGxlIHsNCitzdHJ1Y3Qg bm5wZnNfZmlsZV9oYW5kbGUgew0KICAgICBubnBmc19kZXZfdCBkZXY7DQog ICAgIGlub190IGlub2RlOw0KICAgICBfX3UzMiBnZW47DQpAQCAtNTA5LDE0 ICs1NjEsMjcgQEAgbm5wZnNfZGVidWdfcHJpbnQgKHN0cnVjdCBhcmxhVmlj ZUlvY3RsDQogICogZm9sbG93IHN5bWxpbmtzIGlmZiBgZm9sbG93Jw0KICAq Lw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDE5LDApDQogc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KIHVzZXJfcGF0 aDJkZW50cnkgKHN0cnVjdCBuYW1laWRhdGEgKm5kLCBjaGFyICp1c2VyX3Bh dGgsIGludCBmb2xsb3cpDQorI2Vsc2UNCitzdGF0aWMgc3RydWN0IGRlbnRy eSAqDQordXNlcl9wYXRoMmRlbnRyeSAoc3RydWN0IHBhdGggKnBhdGgsIGNo YXIgKnVzZXJfcGF0aCwgaW50IGZvbGxvdykNCisjZW5kaWYNCiB7DQotICAg IGNoYXIgKmtuYW1lOw0KICAgICBpbnQgZmxhZ3MgPSAwOw0KICAgICBpbnQg ZXJyb3IgPSAwOw0KIA0KLSAgICBrbmFtZSA9IGdldG5hbWUgKHVzZXJfcGF0 aCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsNywwKQ0KKyAgICBjaGFyICprbmFtZTsNCisgICAga25hbWUgPSBnZXRu YW1lKHVzZXJfcGF0aCk7DQorI2Vsc2UNCisgICAgY29uc3QgY2hhciAqa25h bWU7DQorICAgIHN0cnVjdCBmaWxlbmFtZSAqZm5hbWU7DQorICAgIGZuYW1l ID0gZ2V0bmFtZSh1c2VyX3BhdGgpOw0KKyAgICBrbmFtZSA9IGZuYW1lLT5u YW1lOw0KKyNlbmRpZg0KKw0KICAgICBpZiAoSVNfRVJSKGtuYW1lKSkNCiAJ cmV0dXJuIEVSUl9QVFIoUFRSX0VSUihrbmFtZSkpOw0KICAgICBpZiAoZm9s bG93KQ0KQEAgLTUyNCwxMSArNTg5LDI1IEBAIHVzZXJfcGF0aDJkZW50cnkg KHN0cnVjdCBuYW1laWRhdGEgKm5kLA0KIA0KICAgICBOTlBGU0RFQihYREVC TVNHLCAoIm5ucGZzX3N5c2NhbGw6IGxvb2tpbmcgdXA6ICVzXG4iLCBrbmFt ZSkpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigyLDYsMzkpDQogICAgIGVycm9yID0gcGF0aF9sb29rdXAoa25hbWUs IGZsYWdzLCBuZCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBlcnJvciA9IGtlcm5fcGF0aChr bmFtZSwgZmxhZ3MsICYobmQtPnBhdGgpKTsNCisjZWxzZQ0KKyAgICBlcnJv ciA9IGtlcm5fcGF0aChrbmFtZSwgZmxhZ3MsIHBhdGgpOw0KKyNlbmRpZg0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDcs MCkNCiAgICAgcHV0bmFtZShrbmFtZSk7DQorI2Vsc2UNCisgICAga21lbV9j YWNoZV9mcmVlKG5hbWVzX2NhY2hlcCwgKHZvaWQgKilrbmFtZSk7DQorI2Vu ZGlmDQogICAgIGlmIChlcnJvcikNCiAJcmV0dXJuIEVSUl9QVFIoZXJyb3Ip Ow0KLSAgICByZXR1cm4gbmQtPmRlbnRyeTsNCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICByZXR1cm4g bmQtPnBhdGguZGVudHJ5Ow0KKyNlbHNlDQorICAgIHJldHVybiBwYXRoLT5k ZW50cnk7DQorI2VuZGlmDQogfQ0KIA0KIGFzbWxpbmthZ2UgbG9uZw0KQEAg LTU0MCwxMiArNjE5LDI0IEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9u LA0KIHsNCiAgICAgbG9uZyBlcnJvciA9IDA7DQogICAgIHN0cnVjdCBhcmxh VmljZUlvY3RsIHZpY2VfaW9jdGw7IA0KLSAgICBzdHJ1Y3Qgbm5wZnNfbWVz c2FnZV9waW9jdGwgbXNnOw0KKyAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9w aW9jdGwgKm1zZyA9IE5VTEw7DQogICAgIHN0cnVjdCBubnBmc19tZXNzYWdl X3dha2V1cCAqbXNnMjsNCiAgICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0g TlVMTDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMywxOSwwKQ0KICAgICBzdHJ1Y3QgbmFtZWlkYXRhIG5kOw0KKyNlbHNl DQorICAgIHN0cnVjdCBwYXRoIHBhdGg7DQorI2VuZGlmDQogICAgIA0KKyAg ICBtc2cgPSBrbWFsbG9jKHNpemVvZigqbXNnKSwgR0ZQX0tFUk5FTCk7DQor ICAgIGlmIChtc2cgPT0gTlVMTCkNCisgICAgICByZXR1cm4gLUVOT01FTTsN CisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Miw2LDM5KQ0KICAgICBsb2NrX2tlcm5lbCgpOw0KKyNlbHNlDQorICAgIC8q IFRPRE86IGxvY2tfa2VybmVsKCkgaXMgcmVtb3ZlZCwgY29uc2lkZXIgYWRk aW5nIGFuIHByaXZhdGUgbG9jayAqLw0KKyNlbmRpZg0KIA0KICAgICBOTlBG U0RFQihYREVCU1lTLCAoInN5c19hZnMga2VybmVsIGxvY2tlZFxuIikpOw0K IA0KQEAgLTU3NSw3ICs2NjYsNyBAQCBzeXNfYWZzX2ludCAoaW50IG9wZXJh dGlvbiwNCiAJICAgIGdvdG8gdW5sb2NrOw0KIAl9DQogCWlmICh2aWNlX2lv Y3RsLmluX3NpemUgIT0gMCkgew0KLQkgICAgaWYoY29weV9mcm9tX3VzZXIo Jm1zZy5tc2csDQorCSAgICBpZihjb3B5X2Zyb21fdXNlcigmbXNnLT5tc2cs DQogCQkJICAgICAgdmljZV9pb2N0bC5pbiwNCiAJCQkgICAgICB2aWNlX2lv Y3RsLmluX3NpemUpICE9IDApIHsNCiAJCWVycm9yID0gLUVGQVVMVDsNCkBA IC01ODMsNyArNjc0LDExIEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9u LA0KIAkgICAgfQ0KIAl9DQogCWlmIChhX3BhdGhQICE9IE5VTEwpIHsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww KQ0KIAkgICAgZGVudHJ5ID0gdXNlcl9wYXRoMmRlbnRyeSAoJm5kLCBhX3Bh dGhQLCBhX2ZvbGxvd1N5bWxpbmtzKTsNCisjZWxzZQ0KKwkgICAgZGVudHJ5 ID0gdXNlcl9wYXRoMmRlbnRyeSAoJnBhdGgsIGFfcGF0aFAsIGFfZm9sbG93 U3ltbGlua3MpOw0KKyNlbmRpZg0KIAkgICAgaWYgKCFkZW50cnkpIHsNCiAJ CWVycm9yID0gLUVJTlZBTDsNCiAJCWdvdG8gdW5sb2NrOw0KQEAgLTYyOCwx OSArNzIzLDIzIEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KIAkJ ZXJyb3IgPSAtRUlOVkFMOw0KIAkJZ290byB1bmxvY2s7DQogCSAgICB9DQot CSAgICBtc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCisJICAgIG1zZy0+aGFu ZGxlID0geG4tPmhhbmRsZTsNCiAJfQ0KIA0KLQltc2cuaGVhZGVyLm9wY29k ZSA9IE5OUEZTX01TR19QSU9DVEw7DQotCW1zZy5vcGNvZGUgPSBhX29wY29k ZTsNCisJbXNnLT5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BJT0NUTDsN CisJbXNnLT5vcGNvZGUgPSBhX29wY29kZTsNCiAJDQotCW1zZy5pbnNpemUg ICA9IHZpY2VfaW9jdGwuaW5fc2l6ZTsNCi0JbXNnLm91dHNpemUgID0gdmlj ZV9pb2N0bC5vdXRfc2l6ZTsNCi0JbXNnLmNyZWQudWlkID0gY3VycmVudC0+ dWlkOw0KLQltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQorCW1z Zy0+aW5zaXplICAgPSB2aWNlX2lvY3RsLmluX3NpemU7DQorCW1zZy0+b3V0 c2l6ZSAgPSB2aWNlX2lvY3RsLm91dF9zaXplOw0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KKwltc2ctPmNy ZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICBtc2ct PmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCisJbXNnLT5j cmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJDQotCWVycm9yID0gbm5w ZnNfbWVzc2FnZV9ycGMoJm5ucGZzWzBdLCAmbXNnLmhlYWRlciwgc2l6ZW9m KG1zZykpOyAvKiBYWFggKi8NCi0JbXNnMiA9IChzdHJ1Y3Qgbm5wZnNfbWVz c2FnZV93YWtldXAgKikgJm1zZzsNCisJZXJyb3IgPSBubnBmc19tZXNzYWdl X3JwYygmbm5wZnNbMF0sICZtc2ctPmhlYWRlciwgc2l6ZW9mKCptc2cpKTsg LyogWFhYICovDQorCW1zZzIgPSAoc3RydWN0IG5ucGZzX21lc3NhZ2Vfd2Fr ZXVwICopIG1zZzsNCiAJaWYgKGVycm9yID09IDApDQogCSAgICBlcnJvciA9 IG1zZzItPmVycm9yOw0KIA0KQEAgLTY3NSwxMiArNzc0LDIxIEBAIHN5c19h ZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KICAgICANCiAgdW5sb2NrOg0KICAg ICBpZiAoZGVudHJ5KQ0KLQlwYXRoX3JlbGVhc2UoJm5kKTsNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwlw YXRoX3B1dCgmbmQucGF0aCk7DQorI2Vsc2UNCisJcGF0aF9wdXQoJnBhdGgp Ow0KKyNlbmRpZg0KIA0KICAgICBOTlBGU0RFQihYREVCU1lTLCAoIm5ucGZz X3N5c2NhbGwgcmV0dXJucyBlcnJvcjogJWxkXG4iLCBlcnJvcikpOw0KIA0K ICAgICBOTlBGU0RFQihYREVCU1lTLCAoInN5c19hZnMga2VybmVsIHVubG9j a1xuIikpOw0KKyAgICBrZnJlZShtc2cpOw0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogICAgIHVubG9ja19r ZXJuZWwoKTsNCisjZWxzZQ0KKyAgICAvKiBUT0RPOiBzZWUgdGhlIGNvbW1l bnQgYXQgbG9ja19rZXJuZWwoKSBhYm92ZSAqLw0KKyNlbmRpZg0KIA0KICAg ICByZXR1cm4gZXJyb3I7DQogfQ0KQEAgLTcyOSw5ICs4MzcsMTUgQEAgc3lz X2FmcyAoaW50IG9wZXJhdGlvbiwNCiAJCSAgICAgICBhX2ZvbGxvd1N5bWxp bmtzKTsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDIsNiwzNikNCiBzdGF0aWMgaW50DQogbm5wZnNfcHJvY2Zz X2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxl LA0KIAkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcp DQorI2Vsc2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3Byb2Nmc19pb2N0bChz dHJ1Y3QgZmlsZSAqZmlsZSwNCisJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVu c2lnbmVkIGxvbmcgYXJnKQ0KKyNlbmRpZg0KIHsNCiAgICAgYWZzcHJvY2Rh dGEgYXJnczsNCiAgICAgbG9uZyByZXQ7DQpAQCAtNzgwLDIxICs4OTQsMzEg QEAgc3RhdGljIGludCBubnBmc19pbml0X3Byb2Nmcyh2b2lkKQ0KIHsNCiAg ICAgc3RydWN0IHByb2NfZGlyX2VudHJ5ICplbnRyeTsNCiAgICAgDQotICAg IG5ucGZzX3Byb2Nmc19kaXIgPSBwcm9jX21rZGlyKE5OUEZTX1BST0NfRElS LCBwcm9jX3Jvb3RfZnMpOw0KKyAgICBubnBmc19wcm9jZnNfZGlyID0gcHJv Y19ta2RpcigiZnMvIiBOTlBGU19QUk9DX0RJUiwgTlVMTCk7DQogICAgIGlm IChubnBmc19wcm9jZnNfZGlyID09IE5VTEwpDQogCXJldHVybiAtRU5PTUVN Ow0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMiw2LDMwKQ0KICAgICBubnBmc19wcm9jZnNfZGlyLT5vd25lciA9 IFRISVNfTU9EVUxFOw0KKyNlbmRpZg0KICAgICANCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMCwwKQ0KICAgICBlbnRy eSA9IGNyZWF0ZV9wcm9jX2VudHJ5KE5OUEZTX1BST0NfTk9ERSwgMDY2Niwg bm5wZnNfcHJvY2ZzX2Rpcik7DQorI2Vsc2UNCisgICAgZW50cnkgPSBwcm9j X2NyZWF0ZShOTlBGU19QUk9DX05PREUsIDA2NjYsIE5VTEwsICZubnBmc19w cm9jZnNfZm9wcyk7DQorI2VuZGlmDQogICAgIGlmIChlbnRyeSA9PSBOVUxM KSB7DQogCU5OUEZTREVCKFhERUJTWVMsICgibm5wZnNfaW5pdF9wcm9jZnM6 IG5vIG5vZGVcbiIpKTsNCi0JcmVtb3ZlX3Byb2NfZW50cnkoTk5QRlNfUFJP Q19ESVIsIHByb2Nfcm9vdF9mcyk7DQorCXJlbW92ZV9wcm9jX2VudHJ5KCJm cy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsNCiAJcmV0dXJuIC1FTk9NRU07 DQogICAgIH0NCiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDIsNiwzMCkNCiAgICAgZW50cnktPm93bmVyID0gVEhJ U19NT0RVTEU7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsMTAsMCkNCiAgICAgZW50cnktPnByb2NfZm9w cyA9ICZubnBmc19wcm9jZnNfZm9wczsNCisjZW5kaWYNCiANCiAjaWZkZWYg U1lTQ0FMTENPTVBBVA0KICAgICBpZiAocmVnaXN0ZXJfaW9jdGwzMl9jb252 ZXJzaW9uKEFSTEFfVklPQ19TWVNDQUxMMzIsIG5ucGZzX3Byb2Nmc19pb2N0 bDMyKSkgew0KQEAgLTgxNSw3ICs5MzksNyBAQCBzdGF0aWMgdm9pZCBubnBm c19leGl0X3Byb2Nmcyh2b2lkKQ0KICAgICB9DQogI2VuZGlmIC8qIFNZU0NB TExDT01QQVQgKi8NCiAgICAgcmVtb3ZlX3Byb2NfZW50cnkoTk5QRlNfUFJP Q19OT0RFLCBubnBmc19wcm9jZnNfZGlyKTsNCi0gICAgcmVtb3ZlX3Byb2Nf ZW50cnkoTk5QRlNfUFJPQ19ESVIsIHByb2Nfcm9vdF9mcyk7DQorICAgIHJl bW92ZV9wcm9jX2VudHJ5KCJmcy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsN CiB9DQogDQogI2lmZGVmIEdST1VQUEFHUw0KQEAgLTgzOSwxNCArOTYzLDYg QEAgaW5zdGFsbF9zZXRncm91cHModm9pZCkNCiB2b2lkDQogaW5zdGFsbF9h ZnNfc3lzY2FsbCh2b2lkKQ0KIHsNCi0jaWZkZWYgQ09ORklHX1NFQ1VSSVRZ DQotICAgIGlmIChyZWdpc3Rlcl9zZWN1cml0eSgmbm5wZnNfc2VjX29wcykp DQotCU5OUEZTREVCKFhERUJTWVMsDQotCQkgKCJpbnN0YWxsX2Fmc19zeXNj YWxsOiBubnBmc19pbml0X3NlYyBmYWlsZWRcbiIpKTsNCi0gICAgZWxzZQ0K LQlubnBmc19zZWNfcmVnaXN0ZXJlZCA9IDE7DQotI2VuZGlmDQotDQogICAg IG5ucGZzX2luaXRfcHJvY2ZzKCk7DQogDQogI2lmZGVmIFNZU0NBTExIQUNL DQpAQCAtODg3LDEyICsxMDAzLDYgQEAgcmVzdG9yZV9hZnNfc3lzY2FsbCAo dm9pZCkNCiAjZW5kaWYNCiAjZW5kaWYgLyogU1lTQ0FMTEhBQ0sgKi8NCiAN Ci0jaWZkZWYgQ09ORklHX1NFQ1VSSVRZDQotICAgIGlmIChubnBmc19zZWNf cmVnaXN0ZXJlZCkNCi0JaWYgKHVucmVnaXN0ZXJfc2VjdXJpdHkoJm5ucGZz X3NlY19vcHMpKQ0KLQkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIm5ucGZzX2V4 aXRfc2VjOiBjb3VsZG4ndCB1bnJlZ2lzdGVyXG4iKTsNCi0jZW5kaWYgLyog IUNPTkZJR19TRUNVUklUWSAqLw0KLQ0KICNpZmRlZiBHUk9VUFBBR1MNCiAj aWZkZWYgU1lTQ0FMTEhBQ0sNCiAgICAgaWYgKG9sZF9zZXRncm91cHMpIHsN CmRpZmYgLXVwck4gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19z eXNjYWxscy1sb3NzYWdlLmMgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZz X3N5c2NhbGxzLWxvc3NhZ2UuYw0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMv bGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jCTIwMDYtMTItMTEgMTc6 MzE6NDUuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS0wLjkwL25ucGZzL2xp bnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYwkyMDE2LTAxLTEzIDIxOjUx OjQ5LjY4MjQ1NzIxMyArMDEwMA0KQEAgLTQ3LDExICs0NywyMCBAQA0KICNp bmNsdWRlIDxsaW51eC91bmlzdGQuaD4NCiANCiAjaWZkZWYgUkNTSUQNCi1S Q1NJRCgiJElkOiBubnBmc19zeXNjYWxscy1sb3NzYWdlLmMsdiAxLjE3IDIw MDYvMTIvMTEgMTY6MzE6NDUgdG9sIEV4cCAkIik7DQorUkNTSUQoIiRJZDog bm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jLHYgMS4xOSAyMDEwLzA4LzA4IDIw OjQzOjA1IHRvbCBFeHAgJCIpOw0KKyNlbmRpZg0KKw0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMyw3LDApDQorLyogdGhl IG1ldGhvZCB0byByZWFkICdsb3dlcl9ib3VuZCcgZG9lcyBub3Qgd29yayBv biBrZXJuZWwgMy43IGFuZCBsYXRlciAqLw0KKyN1bmRlZiBTWVNDQUxMSEFD Sw0KICNlbmRpZg0KIA0KICNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPg0K KyNpZmRlZiBTWVNDQUxMSEFDSw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDcsMCkNCiBzdGF0aWMgdm9pZCAqbG93ZXJf Ym91bmQgPSAma2VybmVsX3RocmVhZDsNCisjZW5kaWYNCisjZW5kaWYNCiAN CiB2b2lkICogX19hdHRyaWJ1dGVfXygod2VhaykpIHN5c19jYWxsX3RhYmxl KHZvaWQpOw0KIG5ucGZzX3N5c19jYWxsX2Z1bmN0aW9uICpubnBmc19zeXNf Y2FsbF90YWJsZSA9DQpAQCAtNjMsNiArNzIsMTEgQEAgY29uc3QgY2hhciAq IF9fYXR0cmlidXRlX18oKHdlYWspKQ0KIAkJICAgIHVuc2lnbmVkIGxvbmcg Km9mZnNldCwNCiAJCSAgICBjaGFyICoqbW9kbmFtZSwgY2hhciAqbmFtZWJ1 Zik7DQogDQorI2lmZGVmIF9feDg2XzY0X18NCitleHRlcm4gcndsb2NrX3Qg dGFza2xpc3RfbG9jayBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSk7DQorI2VuZGlm DQorDQorI2lmZGVmIFNZU0NBTExIQUNLDQogc3RhdGljIHZvaWQgKioNCiBn ZXRfc3RhcnRfYWRkcih2b2lkKSB7DQogI2lmZGVmIF9feDg2XzY0X18NCkBA IC03MSw2ICs4NSw3IEBAIGdldF9zdGFydF9hZGRyKHZvaWQpIHsNCiAgICAg cmV0dXJuICh2b2lkICoqKSZtdXRleF9sb2NrOw0KICNlbmRpZg0KIH0NCisj ZW5kaWYNCiANCiBzdGF0aWMgaW5saW5lIGludCANCiBrYWxsc3ltX2lzX2Vx dWFsKHVuc2lnbmVkIGxvbmcgYWRkciwgY29uc3QgY2hhciAqbmFtZSkNCkBA IC0xMzksNiArMTU0LDggQEAgdmVyaWZ5KHZvaWQgKipwKSB7DQogICAgIHJl dHVybiAxOw0KIH0NCiANCisjaWZkZWYgU1lTQ0FMTEhBQ0sNCisNCiBzdGF0 aWMgaW5saW5lIGludCBsb29rc19nb29kKHZvaWQgKipwKQ0KIHsNCiAgICAg aWYgKCpwIDw9ICh2b2lkKilsb3dlcl9ib3VuZCB8fCAqcCA+PSAodm9pZCop cCkNCkBAIC0xODgsMyArMjA1LDUgQEAgbm5wZnNfZml4dXBfc3lzY2FsbF9s b3NzYWdlKHZvaWQpDQogDQogICAgIHJldHVybiAwOw0KIH0NCisNCisjZW5k aWYNCmRpZmYgLXVwck4gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBm c192ZnNvcHMuYyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfdmZzb3Bz LmMNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3Zmc29w cy5jCTIwMDYtMTItMTEgMTc6NDM6MzUuMDAwMDAwMDAwICswMTAwDQorKysg YXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jCTIwMTYtMDEt MTQgMTc6MTM6MTguMjYzNjU4NTM2ICswMTAwDQpAQCAtNDQsMzAgKzQ0LDI2 IEBADQogI2luY2x1ZGUgPGxpbnV4L21tLmg+DQogDQogI2lmZGVmIFJDU0lE DQotUkNTSUQoIiRJZDogbm5wZnNfdmZzb3BzLmMsdiAxLjEwOSAyMDA2LzEy LzExIDE2OjQzOjM1IHRvbCBFeHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5ucGZz X3Zmc29wcy5jLHYgMS4xMTEgMjAxMC8wOC8wOCAyMDo0MzowNiB0b2wgRXhw ICQiKTsNCiAjZW5kaWYNCiANCiBzdHJ1Y3Qgbm5wZnMgbm5wZnNbTk5OUEZT XTsNCiANCi1zdGF0aWMgdm9pZCBubnBmc19yZWFkX2lub2RlKHN0cnVjdCBp bm9kZSAqaW5vZGUpOw0KIHN0YXRpYyB2b2lkIG5ucGZzX3B1dF9zdXBlcihz dHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsNCi1zdGF0aWMgdm9pZCBubnBmc19w dXRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSk7DQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyB2 b2lkIG5ucGZzX3dyaXRlX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqIHNi KTsNCisjZW5kaWYNCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtF Uk5FTF9WRVJTSU9OKDIsNiwxOCkNCiBzdGF0aWMgaW50IG5ucGZzX3N0YXRm cyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBrc3RhdGZzICpidWYp Ow0KLSNlbHNlDQotc3RhdGljIGludCBubnBmc19zdGF0ZnMoc3RydWN0IHN1 cGVyX2Jsb2NrICpzYiwgc3RydWN0IGtzdGF0ZnMgKmJ1Zik7DQotI2VuZGlm DQogDQogc3RhdGljIHN0cnVjdCBzdXBlcl9vcGVyYXRpb25zIG5ucGZzX3Nv cHMgPSB7IA0KLSAgICByZWFkX2lub2RlCQk6IG5ucGZzX3JlYWRfaW5vZGUs DQotICAgIHB1dF9pbm9kZQkJOiBubnBmc19wdXRfaW5vZGUsDQogICAgIGFs bG9jX2lub2RlCQk6IG5ucGZzX25vZGVfYWxsb2MsDQogICAgIGRlc3Ryb3lf aW5vZGUJOiBubnBmc19ub2RlX2ZyZWUsDQogICAgIGRyb3BfaW5vZGUJCTog Z2VuZXJpY19kZWxldGVfaW5vZGUsDQogICAgIHB1dF9zdXBlcgkJOiBubnBm c19wdXRfc3VwZXIsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsNiwwKQ0KICAgICB3cml0ZV9zdXBlcgkJOiBubnBmc193 cml0ZV9zdXBlciwNCisjZW5kaWYNCiAgICAgc3RhdGZzCQk6IG5ucGZzX3N0 YXRmcywNCiB9Ow0KIA0KQEAgLTk0LDcgKzkwLDExIEBAIG5ucGZzX2ZldGNo X3Jvb3Qoc3RydWN0IGlub2RlICppKQ0KIAkgKiByb290J3MgcHJpdmlsaWdl cyAodXN1YWxseSBub25lLCBhbmQgbm9uZSBpcyBuZWVkZWQpLg0KIAkgKi8N CiAJDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMTQsMCkNCiAJbXNnLmNyZWQudWlkID0gMDsNCisjZWxzZQ0KKwltc2cu Y3JlZC51aWQgPSBLVUlEVF9JTklUKDApOw0KKyNlbmRpZg0KIAltc2cuY3Jl ZC5wYWcgPSAwOw0KIAkNCiAJZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhu bnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQpAQCAtMTI5LDgg KzEyOSwxMyBAQCBtYWtlX3Jvb3RfaW5vZGUoc3RydWN0IG5ucGZzICpubnBm c3ApDQogICAgIFhBX1NFVF9NT0RFKCZub2RlLmF0dHIsIFNfSUZESVIgfCAw Nzc3KTsNCiAgICAgWEFfU0VUX05MSU5LKCZub2RlLmF0dHIsIDEwMCk7DQog ICAgIFhBX1NFVF9TSVpFKCZub2RlLmF0dHIsIDApOw0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogICAgIFhB X1NFVF9VSUQoJm5vZGUuYXR0ciwgMCk7DQogICAgIFhBX1NFVF9HSUQoJm5v ZGUuYXR0ciwgMCk7DQorI2Vsc2UNCisgICAgWEFfU0VUX1VJRCgmbm9kZS5h dHRyLCBLVUlEVF9JTklUKDApKTsNCisgICAgWEFfU0VUX0dJRCgmbm9kZS5h dHRyLCBLR0lEVF9JTklUKDApKTsNCisjZW5kaWYNCiAgICAgWEFfU0VUX0FU SU1FKCZub2RlLmF0dHIsIDApOw0KICAgICBYQV9TRVRfTVRJTUUoJm5vZGUu YXR0ciwgMCk7DQogICAgIFhBX1NFVF9DVElNRSgmbm9kZS5hdHRyLCAwKTsN CkBAIC0xNTksNyArMTY0LDExIEBAIG1ha2Vfcm9vdCAoc3RydWN0IHN1cGVy X2Jsb2NrICpzYikNCiAgICAgbm5wZnMtPnJvb3QgPSBpbm9kZTsNCiANCiAg ICAgLyogWFhYIGVycm9yIGhhbmRsaW5nICovDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNCwwKQ0KICAgICBkcCA9IGRf YWxsb2Nfcm9vdChpbm9kZSk7DQorI2Vsc2UNCisgICAgZHAgPSBkX21ha2Vf cm9vdChpbm9kZSk7DQorI2VuZGlmDQogICAgIG5ucGZzX2RfaW5pdChkcCk7 DQogICAgIHNiLT5zX3Jvb3QgPSBkcDsNCiAgICAgcmV0dXJuIDA7DQpAQCAt MTgzLDEzICsxOTIsMjcgQEAgbm5wZnNfcmVhZF9zdXBlciAoc3RydWN0IHN1 cGVyX2Jsb2NrICogcw0KICAgICBOTlBGU0RFQihYREVCVkZPUFMsICgibm5w ZnNfcmVhZF9zdXBlcjogYmVnaW4gc2V0dGluZyB2YXJpYWJsZXNcbiIpKTsN CiANCiAgICAgaWYgKGRhdGEgIT0gTlVMTCkgew0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCXN0cnVjdCBu YW1laWRhdGEgbmQ7DQorI2Vsc2UNCisJc3RydWN0IHBhdGggcGF0aDsNCisj ZW5kaWYNCiAJDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDIsNiwzOSkNCiAJZXJyb3IgPSBwYXRoX2xvb2t1cChkYXRhLCAw LCAmbmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMTksMCkNCisJZXJyb3IgPSBrZXJuX3BhdGgoZGF0YSwgMCwg Jm5kLnBhdGgpOw0KKyNlbHNlDQorCWVycm9yID0ga2Vybl9wYXRoKGRhdGEs IDAsICZwYXRoKTsNCisjZW5kaWYNCiAJaWYgKGVycm9yKQ0KIAkgICAgZGRl diA9IEVSUl9QVFIoZXJyb3IpOw0KIAllbHNlDQotCSAgICBkZGV2ID0gbmQu ZGVudHJ5Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDE5LDApDQorCSAgICBkZGV2ID0gbmQucGF0aC5kZW50cnk7DQor I2Vsc2UNCisJICAgIGRkZXYgPSBwYXRoLmRlbnRyeTsNCisjZW5kaWYNCiAN CiAJaWYgKCFJU19FUlIoZGRldikpIHsNCiAJICAgIG1pbm9yZGV2aWNlID0g TUlOT1IoZGRldi0+ZF9pbm9kZS0+aV9yZGV2KTsNCkBAIC0yMzMsNyArMjU2 LDcgQEAgbm5wZnNfZmlsbF9zdXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICpz Yg0KICAgICByZXR1cm4gMDsNCiB9DQogDQotI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiBpbnQNCiBu bnBmc19nZXRfc2Ioc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUs DQogCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwNCkBA IC0yNDIsMTkgKzI2NSwyMiBAQCBubnBmc19nZXRfc2Ioc3RydWN0IGZpbGVf c3lzdGVtX3R5cGUgKmZzDQogICAgIHJldHVybiBnZXRfc2Jfbm9kZXYoZnNf dHlwZSwgZmxhZ3MsIGRhdGEsIG5ucGZzX2ZpbGxfc3VwZXIsIG1udCk7DQog fQ0KICNlbHNlDQotc3RydWN0IHN1cGVyX2Jsb2NrICoNCi1ubnBmc19nZXRf c2IgKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBlLA0KLQkgICAg ICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLCB2b2lkICpkYXRh KSANCitzdHJ1Y3QgZGVudHJ5Kg0KK25ucGZzX21vdW50KHN0cnVjdCBmaWxl X3N5c3RlbV90eXBlICpmc190eXBlLA0KKwkgICAgIGludCBmbGFncywgY29u c3QgY2hhciAqZGV2X25hbWUsDQorCSAgICAgdm9pZCAqZGF0YSkgDQogew0K LSAgICByZXR1cm4gZ2V0X3NiX25vZGV2KGZzX3R5cGUsIGZsYWdzLCBkYXRh LCBubnBmc19maWxsX3N1cGVyKTsNCisgICAgcmV0dXJuIG1vdW50X25vZGV2 KGZzX3R5cGUsIGZsYWdzLCBkYXRhLCBubnBmc19maWxsX3N1cGVyKTsNCiB9 DQogI2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyB2b2lkDQogbm5wZnNfd3JpdGVf c3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICogc2IpDQogew0KICAgICBzYi0+ c19kaXJ0ID0gMDsNCiB9DQorI2VuZGlmDQogDQogLyoNCiAgKiBYWFggaXMg dGhpcyBnb29kPyANCkBAIC0yNzMsNzMgKzI5OSw2IEBAIG5ucGZzX3B1dF9z dXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KICAgICBOTlBGU0RFQihY REVCVkZPUFMsICgibm5wZnNfcHV0X3N1cGVyIGV4aXRpbmdcbiIpKTsNCiB9 DQogDQotc3RhdGljIHZvaWQNCi1ubnBmc19yZWFkX2lub2RlKHN0cnVjdCBp bm9kZSAqaW5vZGUpDQotew0KLSAgICBOTlBGU0RFQihYREVCVkZPUFMsKCJu bnBmc19yZWFkX2lub2RlIHN0YXJ0aW5nIGlub2RlOiAlcFxuIixpbm9kZSkp Ow0KLSAgICBOTlBGU0RFQihYREVCVkZPUFMsKCJubnBmc19yZWFkX2lub2Rl IGlub2RlLT5pX2lubzogJWxkXG4iLGlub2RlLT5pX2lubykpOw0KLSNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQot ICAgIGlub2RlLT5pX2Jsa3NpemUgPSAxMDI0Ow0KLSNlbmRpZg0KLSAgICBp bm9kZS0+aV9tb2RlID0gMDsNCi0gICAgaW5vZGUtPmlfb3AgPSBOVUxMOw0K LSAgICBOTlBGU0RFQihYREVCVkZPUFMsKCJubnBmc19yZWFkX2lub2RlIGV4 aXRpbmdcbiIpKTsNCi19DQotIA0KLS8qDQotICogQ2FsbGVkIHdoZW4gYGlu b2RlJyBpcyBkZS1yZWZlcmVuY2VkLCBpZSB3aGVuIGlwdXQgaXMgY2FsbGVk Lg0KLSAqLw0KLQ0KLXN0YXRpYyB2b2lkDQotbm5wZnNfcHV0X2lub2RlKHN0 cnVjdCBpbm9kZSAqaW5vZGUpDQotew0KLSAgICBzdHJ1Y3Qgbm5wZnNfbm9k ZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQotICAgIHN0cnVjdCBu bnBmcyAqbm5wZnNwID0gTk5QRlNfRlJPTV9WTk9ERShpbm9kZSk7DQotICAg IGludCBiYWQ7DQotDQotICAgIE5OUEZTREVCKFhERUJWRk9QUywoIm5ucGZz X3B1dF9pbm9kZTogaW5vZGU6ICVwIGNvdW50OiAlZCBhbGlhc2VzOiIsDQot CQkJaW5vZGUsIG5ucGZzX2ljb3VudChpbm9kZSkpKTsNCi0gICAgbm5wZnNf cHJpbnRfYWxpYXNlcyhpbm9kZSk7DQotICAgIA0KLSAgICBkb3duKCZubnBm c3AtPmluYWN0aXZlX3NlbSk7DQotDQotICAgIGlmICgobm5wZnNwLT5zdGF0 dXMgJiBOTlBGU19ERVZPUEVOKSA9PSAwKSB7DQotCWlmICghaXNfYmFkX2lu b2RlKGlub2RlKSkgew0KLQkgICAgaWYgKGlub2RlICE9IG5ucGZzcC0+cm9v dCkgew0KLQkJbWFrZV9iYWRfaW5vZGUoaW5vZGUpOw0KLQkJbm5wZnNfaXJl bGUoaW5vZGUpOyAvKiBzZWUgbm5wZnNfbm9kZV9hZGQoKSAqLw0KLQkgICAg fQ0KLQkgICAgeG4tPmZsYWdzIHw9IE5OUEZTX1NUQUxFOw0KLQl9DQotCWJh ZCA9IDE7IC8qIG9yIHJvb3QsIHJlYWxseSAqLw0KLSAgICB9IGVsc2Ugew0K LQliYWQgPSBpc19iYWRfaW5vZGUoaW5vZGUpOw0KLSAgICB9DQotDQotICAg IGlmICh4bi0+ZmxhZ3MgJiBOTlBGU19TVEFMRSAmJiAhbm5wZnNfbm9kZV91 c2Vycyhpbm9kZSkpIHsNCi0JeG4tPmZsYWdzIHw9IE5OUEZTX05PREVfSVBV VDsgLyogWFhYIGxvY2tpbmcgKi8NCi0gIAlubnBmc19mb3JjZV9pbnZhbGlk X25vZGUoeG4pOw0KLQl4bi0+ZmxhZ3MgJj0gfk5OUEZTX05PREVfSVBVVDsN Ci0gICAgfQ0KLSAgICANCi0gICAgaWYgKGJhZCkgew0KLQlpZiAobm5wZnNf aWNvdW50KGlub2RlKSA9PSAxKQ0KLQkgICAgbm5wZnNfbm9kZV9jbGVhcih4 bik7DQotICAgIH0gZWxzZSBpZiAobm5wZnNfaWNvdW50KGlub2RlKSA9PSAy KSB7DQotCS8qIA0KLQkgKiBUaGUgbGFzdCBleHRlcm5hbCByZWZlcmVuY2Ug aXMgYmVpbmcgZHJvcHBlZCwgb25seSB0aGUgb25lDQotCSAqIGZyb20gbm5w ZnNfbm9kZV9hZGQoKSBpcyBsZWZ0LiBUaW1lIHRvIGxldCBkYWVtb24gcmVs ZWFzZQ0KLQkgKiB0aGlzIG5vZGUgcHJvcGVybHkuDQotCSAqLw0KLQlpZiAo KHhuLT5mbGFncyAmIE5OUEZTX0xJTUJPKSA9PSAwKSB7DQotCSAgICBubnBm c19ub2RlX2NsZWFyKHhuKTsNCi0JICAgIG5ucGZzX3F1ZXVlX2luYWN0aXZl KHhuKTsNCi0JfQ0KLSAgICB9DQotDQotICAgIHVwKCZubnBmc3AtPmluYWN0 aXZlX3NlbSk7DQotfQ0KLQ0KIHN0YXRpYyBpbnQNCiBubnBmc19zdGF0ZnNf aW50KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBrc3RhdGZzICpi dWYpDQogew0KQEAgLTM1MiwyNSArMzExLDIxIEBAIG5ucGZzX3N0YXRmc19p bnQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwNCiAgICAgdG1wLmZfYmF2YWls ICA9IDEwMjQqMTAyNCoyLTUwOw0KICAgICB0bXAuZl9maWxlcyAgID0gMTAy NCoxMDI0Ow0KICAgICB0bXAuZl9mZnJlZSAgID0gMTAyNCoxMDI0LTEwMDsN CisgICAgdG1wLmZfZnNpZC52YWxbMF0gPSAwOw0KKyAgICB0bXAuZl9mc2lk LnZhbFsxXSA9IDA7DQogICAgIHRtcC5mX25hbWVsZW4gPSBOQU1FX01BWDsN CisgICAgdG1wLmZfZnJzaXplICA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzBd ID0gMDsNCisgICAgdG1wLmZfc3BhcmVbMV0gPSAwOw0KKyAgICB0bXAuZl9z cGFyZVsyXSA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzNdID0gMDsNCisgICAg dG1wLmZfc3BhcmVbNF0gPSAwOw0KICAgICAqYnVmID0gdG1wOw0KICAgICBy ZXR1cm4gMDsNCiB9DQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL RVJORUxfVkVSU0lPTigyLDYsMTgpDQotDQogc3RhdGljIGludA0KIG5ucGZz X3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBrc3RhdGZz ICpidWYpDQogew0KICAgICByZXR1cm4gbm5wZnNfc3RhdGZzX2ludChkZW50 cnktPmRfc2IsIGJ1Zik7DQogfQ0KLQ0KLSNlbHNlDQotDQotc3RhdGljIGlu dA0KLW5ucGZzX3N0YXRmcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1 Y3Qga3N0YXRmcyAqYnVmKQ0KLXsNCi0gICAgcmV0dXJuIG5ucGZzX3N0YXRm c19pbnQoc2IsIGJ1Zik7DQotfQ0KLQ0KLSNlbmRpZg0K ---276651502-1863843585-1453468926=:9412 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Arla-drinkers mailing list [email protected] https://lists.stacken.kth.se/mailman/listinfo/arla-drinkers ---276651502-1863843585-1453468926=:9412--