Re: PATCH v2: Arla CVS Current on Linux 2.6.34 to 3.18
Bo Branten <[email protected]> Thu, 14 Jan 2016 01:30:21 +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-700296685-1452731421=:24061 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII PATCH v2: Arla CVS Current on Linux 2.6.34 to 3.18 Hello, I have corrected two things in the existing patch: Before I forgot two include files that is stored higher up in the direvtory hierarchy. And I have changed the syntax of the preprocessor statements to what was used in the rest of the driver. I have tested that this patch compiles clean on ALL kernels from 2.6.34 to 3.18. Bo Branten ---276651502-700296685-1452731421=:24061 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-arla-cvs-for-linux-3.18 Content-Transfer-Encoding: BASE64 Content-ID: <[email protected]> Content-Description: Content-Disposition: attachment; filename=patch-arla-cvs-for-linux-3.18 ZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvaW5jbHVk ZS9ubnBmcy9ubnBmc19hdHRyLmggYXJsYS1mb3ItbGludXgtMy4xOC9ubnBm cy9pbmNsdWRlL25ucGZzL25ucGZzX2F0dHIuaA0KLS0tIGFybGEtY3ZzL25u cGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfYXR0ci5oCTIwMDYtMTAtMjQgMTg6 MzM6MzAuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS1mb3ItbGludXgtMy4x OC9ubnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX2F0dHIuaAkyMDE2LTAxLTEy IDE5OjI5OjUwLjUyMjA3MjA4NCArMDEwMA0KQEAgLTExMyw4ICsxMTMsMTMg QEAgc3RydWN0IG5ucGZzX2F0dHIgew0KICAgICB1aW50MzJfdAkJeGFfbmxp bms7DQogICAgIHVpbnQzMl90CQl4YV90eXBlOw0KIA0KKyNpZiAoZGVmaW5l ZChfX0tFUk5FTF9fKSAmJiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVM X1ZFUlNJT04oMywxNCwwKSkNCisgICAga3VpZF90CQl4YV91aWQ7DQorICAg IGtnaWRfdAkJeGFfZ2lkOw0KKyNlbHNlDQogICAgIHVpbnQzMl90CQl4YV91 aWQ7DQogICAgIHVpbnQzMl90CQl4YV9naWQ7DQorI2VuZGlmDQogDQogICAg IHVpbnQzMl90CQl4YV9hdGltZTsNCiAgICAgdWludDMyX3QJCXhhX210aW1l Ow0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvaW5j bHVkZS9ubnBmcy9ubnBmc19tZXNzYWdlLmggYXJsYS1mb3ItbGludXgtMy4x OC9ubnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX21lc3NhZ2UuaA0KLS0tIGFy bGEtY3ZzL25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5oCTIw MDktMDItMjQgMjE6MjA6NTUuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS1m b3ItbGludXgtMy4xOC9ubnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX21lc3Nh Z2UuaAkyMDE2LTAxLTE0IDAwOjI2OjA0LjEyNjAxNTEzNiArMDEwMA0KQEAg LTUyLDcgKzUyLDExIEBAIHR5cGVkZWYgdWludDE2X3Qgbm5wZnNfcmlnaHRz Ow0KICAqIFRoZSBubnBmc19jcmVkLCBpZiBwYWcgPT0gMCwgdXNlIHVpZCAN CiAgKi8NCiB0eXBlZGVmIHN0cnVjdCBubnBmc19jcmVkIHsNCisjaWYgKGRl ZmluZWQoX19LRVJORUxfXykgJiYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtF Uk5FTF9WRVJTSU9OKDMsMTQsMCkpDQorICAgIGt1aWRfdCB1aWQ7DQorI2Vs c2UNCiAgICAgdWludDMyX3QgdWlkOw0KKyNlbmRpZg0KICAgICBubnBmc19w YWdfdCBwYWc7DQogfSBubnBmc19jcmVkOw0KIA0KZGlmZiAtdXByTiAtWG5v ZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMu aCBhcmxhLWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzL25ucGZz X2ZzLmgNCi0tLSBhcmxhLWN2cy9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19m cy5oCTIwMDYtMTAtMjQgMTg6MzM6NDguMDAwMDAwMDAwICswMjAwDQorKysg YXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19m cy5oCTIwMTYtMDEtMTMgMjI6NTc6MDYuMzg3NjkzMzM5ICswMTAwDQpAQCAt ODQsOCArODQsMTMgQEAgc3RydWN0IG5ucGZzIHsNCiAgICAgc3RydWN0IHZm c21vdW50ICpjYWNoZXJvb3Q7IC8qIHNpbXBsaWZ5IG9wZW4gb2YgY2FjaGUg YmxvY2tzICovDQogICAgIHN0cnVjdCBkZW50cnkgKmNhY2hlZGlyOw0KIA0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0 LDApDQogICAgIHVpZF90IHVpZDsgLyoga2VlcCB0cmFjayBvZiBkYWVtb24n cyBpZGVudGl0eSAqLw0KICAgICBnaWRfdCBnaWQ7DQorI2Vsc2UNCisgICAg a3VpZF90IHVpZDsgLyoga2VlcCB0cmFjayBvZiBkYWVtb24ncyBpZGVudGl0 eSAqLw0KKyAgICBrZ2lkX3QgZ2lkOw0KKyNlbmRpZg0KIA0KICAgICBzdHJ1 Y3Qgew0KIAlpbnQgcmVjdXJzZTsNCmRpZmYgLXVwck4gLVhub2RpZmYudHh0 IGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wuaCBhcmxh LWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wu aA0KLS0tIGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wu aAkyMDEwLTA4LTA4IDIyOjQzOjA2LjAwMDAwMDAwMCArMDIwMA0KKysrIGFy bGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbG9j bC5oCTIwMTYtMDEtMTMgMjM6MDE6MTAuMTc4NzA4MDM3ICswMTAwDQpAQCAt NTEsNyArNTEsOSBAQA0KICNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+DQogI2lu Y2x1ZGUgPGxpbnV4L3N0cmluZy5oPg0KICNpbmNsdWRlIDxsaW51eC9uYW1l aS5oPg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigyLDYsMzkpDQogI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+DQorI2Vu ZGlmDQogI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4NCiANCiAvKg0KQEAgLTEz OCwxMCArMTQwLDE3IEBAIHR5cGVkZWYgX191MzIgIHVpbnQzMl90Ow0KIGlu dA0KIG5ucGZzX2ZldGNoX3Jvb3Qoc3RydWN0IGlub2RlICppKTsNCiANCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5 KQ0KIGludA0KIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlw ZSAqZnNfdHlwZSwNCiAJICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRl dl9uYW1lLA0KIAkgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCB2ZnNtb3VudCAq bW50KTsNCisjZWxzZQ0KK3N0cnVjdCBkZW50cnkqDQorbm5wZnNfbW91bnQo c3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsDQorCSAgICAgaW50 IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwNCisJICAgICB2b2lkICpk YXRhKTsNCisjZW5kaWYNCiANCiBleHRlcm4gc3RydWN0IGRlbnRyeV9vcGVy YXRpb25zIG5ucGZzX2RlbnRyeV9vcGVyYXRpb25zOw0KIA0KQEAgLTE5NCwx MCArMjAzLDIxIEBAIG5ucGZzX2l3cml0ZWNvdW50IChzdHJ1Y3QgaW5vZGUg Kmlub2RlKQ0KICAqIEhlbHAgZnVuY3Rpb24gdG8gcmVhZCB0aGUgZGVudHJ5 LT5kX2NvdW50IGEgcG9ydGFibGUgd2F5DQogICovDQogDQorLyojaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KSovDQog c3RhdGljIGlubGluZSBpbnQNCiBubnBmc19kY291bnQgKGNvbnN0IHN0cnVj dCBkZW50cnkgKmRlbnRyeSkNCisvKiNlbHNlDQorc3RhdGljIGlubGluZSBp bnQNCitubnBmc19kY291bnQgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCisj ZW5kaWYqLw0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMiw2LDM4KQ0KICAgICByZXR1cm4gYXRvbWljX3JlYWQoJmRl bnRyeS0+ZF9jb3VudCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0KKyAgICByZXR1cm4gYXRvbWljX3Jl YWQoKGNvbnN0IGF0b21pY190KikmZGVudHJ5LT5kX2NvdW50KTsNCisjZWxz ZQ0KKyAgICByZXR1cm4gZF9jb3VudChkZW50cnkpOzsNCisjZW5kaWYNCiB9 DQogDQogZXh0ZXJuIA0KQEAgLTIyOSw3ICsyNDksMTIgQEAgbm5wZnNfZml4 dXBfc3lzY2FsbF9sb3NzYWdlKHZvaWQpOw0KICNlbmRpZg0KIA0KICNkZWZp bmUgbm5wZnNfZGV2X3QgZGV2X3QNCisNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KICNkZWZpbmUgbm5wZnNf ZF9lbnRyeV91bmhhc2hlZChkKSBobGlzdF91bmhhc2hlZChkKQ0KKyNlbHNl DQorI2RlZmluZSBubnBmc19kX2VudHJ5X3VuaGFzaGVkKGQpIGhsaXN0X2Js X3VuaGFzaGVkKGQpDQorI2VuZGlmDQogDQogI2RlZmluZSBOTlBGU19OT09Q ICAgICAgd2hpbGUoMCl7fQ0KIA0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQg YXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnNfYmxvY2tzLmMgYXJsYS1mb3It bGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYw0KLS0tIGFy bGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jCTIwMTAtMDgtMDgg MjI6NDM6MDQuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS1mb3ItbGludXgt My4xOC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDE2LTAxLTE0IDAx OjAxOjE5LjgwNzE0MjY4NSArMDEwMA0KQEAgLTQzLDYgKzQzLDM2IEBADQog I2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+DQogI2luY2x1ZGUgPGxpbnV4L21t Lmg+DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS U0lPTigzLDEyLDApDQorLyogVE9ETzogaW1wbGVtZW50IGEgcmVwbGFjZW1l bnQgZm9yIHZmc19wYXRoX2xvb2t1cCBvbiBrZXJuZWwgMy4xMiBhbmQgbGF0 ZXIgKi8NCisvKioNCisgKiB2ZnNfcGF0aF9sb29rdXAgLSBsb29rdXAgYSBm aWxlIHBhdGggcmVsYXRpdmUgdG8gYSBkZW50cnktdmZzbW91bnQgcGFpcg0K KyAqIEBkZW50cnk6ICBwb2ludGVyIHRvIGRlbnRyeSBvZiB0aGUgYmFzZSBk aXJlY3RvcnkNCisgKiBAbW50OiBwb2ludGVyIHRvIHZmcyBtb3VudCBvZiB0 aGUgYmFzZSBkaXJlY3RvcnkNCisgKiBAbmFtZTogcG9pbnRlciB0byBmaWxl IG5hbWUNCisgKiBAZmxhZ3M6IGxvb2t1cCBmbGFncw0KKyAqIEBwYXRoOiBw b2ludGVyIHRvIHN0cnVjdCBwYXRoIHRvIGZpbGwNCisgKi8NCitpbnQgbm5w ZnNfcGF0aF9sb29rdXAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3Qg dmZzbW91bnQgKm1udCwNCisJCSAgICBjb25zdCBjaGFyICpuYW1lLCB1bnNp Z25lZCBpbnQgZmxhZ3MsDQorCQkgICAgc3RydWN0IHBhdGggKnBhdGgpDQor ew0KKyNpZiAwDQorCXN0cnVjdCBuYW1laWRhdGEgbmQ7DQorCWludCBlcnI7 DQorCW5kLnJvb3QuZGVudHJ5ID0gZGVudHJ5Ow0KKwluZC5yb290Lm1udCA9 IG1udDsNCisJQlVHX09OKGZsYWdzICYgTE9PS1VQX1BBUkVOVCk7DQorCS8q IHRoZSBmaXJzdCBhcmd1bWVudCBvZiBkb19wYXRoX2xvb2t1cCgpIGlzIGln bm9yZWQgd2l0aCBMT09LVVBfUk9PVCAqLw0KKwllcnIgPSBkb19wYXRoX2xv b2t1cChBVF9GRENXRCwgbmFtZSwgZmxhZ3MgfCBMT09LVVBfUk9PVCwgJm5k KTsNCisJaWYgKCFlcnIpDQorCQkqcGF0aCA9IG5kLnBhdGg7DQorCXJldHVy biBlcnI7DQorI2VuZGlmDQorCXJldHVybiAtMTsNCit9DQorI2VuZGlmDQor DQogLyoNCiAgKiByZXR1cm4gdHJ1ZSBpZiBibG9jayBpcyBpbiBjYWNoZQ0K ICAqLw0KQEAgLTI5MCw3ICszMjAsMTMgQEAgbm5wZnNfYmxvY2tfZXh0ZW5k KHN0cnVjdCBubnBmc19ub2RlICpubw0KICAgICBiYWNrbm9kZSA9IGJhY2tm aWxlLT5mX21hcHBpbmctPmhvc3Q7DQogDQogICAgIG11dGV4X2xvY2soJmJh Y2tub2RlLT5pX211dGV4KTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMyw4LDApDQogICAgIHJldCA9IHZtdHJ1bmNhdGUo YmFja25vZGUsIG5ucGZzX2Jsb2Nrc2l6ZSk7DQorI2Vsc2UNCisgICAgcmV0 ID0gaW5vZGVfbmV3c2l6ZV9vayhiYWNrbm9kZSwgbm5wZnNfYmxvY2tzaXpl KTsNCisgICAgaWYoIXJldCkNCisgICAgICAgIHRydW5jYXRlX3NldHNpemUo YmFja25vZGUsIG5ucGZzX2Jsb2Nrc2l6ZSk7DQorI2VuZGlmDQogICAgIG11 dGV4X3VubG9jaygmYmFja25vZGUtPmlfbXV0ZXgpOw0KICAgICANCiAgICAg ZmlscF9jbG9zZShiYWNrZmlsZSwgTlVMTCk7DQpAQCAtMzE4LDE1ICszNTQs MjcgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9k ZQ0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9IE5OUEZTX0ZST01fWE5P REUobm9kZSk7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBYTk9ERV9U T19WTk9ERShub2RlKTsNCiAgICAgaW50IGZsYWdzID0gT19MQVJHRUZJTEUg fCBmbGFnOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBuYW1laWRhdGEgbmQ7DQorI2Vs c2UNCisgICAgc3RydWN0IHBhdGggcGF0aDsNCisjZW5kaWYNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KICAg ICB1aWRfdCBzYXZldWlkOw0KICAgICBnaWRfdCBzYXZlZ2lkOw0KKyNlbHNl DQorICAgIGt1aWRfdCBzYXZldWlkOw0KKyAgICBrZ2lkX3Qgc2F2ZWdpZDsN CisjZW5kaWYNCiAgICAgaW50IHJldDsNCiAjaWYgTElOVVhfVkVSU0lPTl9D T0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOSkNCiAgICAgY29uc3Qgc3Ry dWN0IGNyZWQgKm9sZF9jcmVkOw0KICAgICBzdHJ1Y3QgY3JlZCAqb3ZlcnJp ZGVfY3JlZDsNCiAjZW5kaWYNCiANCisgICAgKHZvaWQpc2F2ZXVpZDsNCisg ICAgKHZvaWQpc2F2ZWdpZDsNCisNCiAgICAgQlVHX09OKCFubnBmc3ApOw0K ICAgICBCVUdfT04oZmxhZ3MgJiBPX0NSRUFUICYmIGZpbGUgIT0gTlVMTCk7 DQogDQpAQCAtMzY2LDEwICs0MTQsMjcgQEAgbm5wZnNfYmxvY2tfb3Blbihz dHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KICAgICBvbGRfY3JlZCA9IG92ZXJy aWRlX2NyZWRzKG92ZXJyaWRlX2NyZWQpOw0KICNlbmRpZg0KIA0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEsMCkNCiAg ICAgcmV0ID0gdmZzX3BhdGhfbG9va3VwKG5ucGZzcC0+Y2FjaGVkaXIsIG5u cGZzcC0+Y2FjaGVyb290LA0KIAkJCSAgY2FjaGVuYW1lLA0KIAkJCSAgZmxh Z3MgJiBPX0NSRUFUID8gTE9PS1VQX1BBUkVOVCA6IDAsDQogCQkJICAmbmQp Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMTIsMCkNCisgICAgcmV0ID0gdmZzX3BhdGhfbG9va3VwKG5ucGZzcC0+ Y2FjaGVkaXIsIG5ucGZzcC0+Y2FjaGVyb290LA0KKwkJCSAgY2FjaGVuYW1l LA0KKwkJCSAgZmxhZ3MgJiBPX0NSRUFUID8gTE9PS1VQX1BBUkVOVCA6IDAs DQorCQkJICAmbmQucGF0aCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICByZXQgPSBubnBmc19w YXRoX2xvb2t1cChubnBmc3AtPmNhY2hlZGlyLCBubnBmc3AtPmNhY2hlcm9v dCwNCisJCQkgIGNhY2hlbmFtZSwNCisJCQkgIGZsYWdzICYgT19DUkVBVCA/ IExPT0tVUF9QQVJFTlQgOiAwLA0KKwkJCSAgJm5kLnBhdGgpOw0KKyNlbHNl DQorICAgIHJldCA9IG5ucGZzX3BhdGhfbG9va3VwKG5ucGZzcC0+Y2FjaGVk aXIsIG5ucGZzcC0+Y2FjaGVyb290LA0KKwkJCSAgY2FjaGVuYW1lLA0KKwkJ CSAgZmxhZ3MgJiBPX0NSRUFUID8gTE9PS1VQX1BBUkVOVCA6IDAsDQorCQkJ ICAmcGF0aCk7DQorI2VuZGlmDQogICAgIGlmIChyZXQpIHsNCiAJdWludDMy X3Qgbm1hc2tzID0gbm9kZS0+ZGF0YS5ubWFza3M7DQogCXVpbnQzMl90IG1h c2s7DQpAQCAtMzk2LDE2ICs0NjEsMzcgQEAgbm5wZnNfYmxvY2tfb3Blbihz dHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KICAgICANCiAgICAgaWYgKGZsYWdz ICYgT19DUkVBVCkgew0KIAkvKiBYWFggbW9kZSBiaXRzIG9uIGNyZWF0ZSAt LSBTX0lSVVNSfFNfSVdVU1IgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxLDApDQogCXN0cnVjdCBkZW50cnkgKmRl bnRyeSA9IGxvb2t1cF9jcmVhdGUoJm5kLCAwKTsJDQorI2VsaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwkvKiBU T0RPOiBjaGVjayB0aGUgY2FsbCB0byBrZXJuX3BhdGhfY3JlYXRlKCksIGlz IHRoZSBzZWNvbmQgYXJndW1lbnQgb3B0aW9uYWw/ICovDQorCXN0cnVjdCBk ZW50cnkgKmRlbnRyeSA9IGtlcm5fcGF0aF9jcmVhdGUoQVRfRkRDV0QsIE5V TEwsICZuZC5wYXRoLCAwKTsJDQorI2Vsc2UNCisJLyogVE9ETzogY2hlY2sg dGhlIGNhbGwgdG8ga2Vybl9wYXRoX2NyZWF0ZSgpLCBpcyB0aGUgc2Vjb25k IGFyZ3VtZW50IG9wdGlvbmFsPyAqLw0KKwlzdHJ1Y3QgZGVudHJ5ICpkZW50 cnkgPSBrZXJuX3BhdGhfY3JlYXRlKEFUX0ZEQ1dELCBOVUxMLCAmcGF0aCwg MCk7CQ0KKyNlbmRpZg0KIAlpZiAoSVNfRVJSKGRlbnRyeSkpIHsNCiAJICAg IHJldCA9IFBUUl9FUlIoZGVudHJ5KTsNCiAJfSBlbHNlIHsNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogCSAg ICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5kX2lub2RlLCBk ZW50cnksIFNfSVJVU1J8U19JV1VTUiwgJm5kKTsNCisjZWxpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCSAgICAv KiBUT0RPOiBzaG91bGQgdGhlIGxhc3QgYXJndW1lbnQgdG8gdmZzX2NyZWF0 ZTogYm9vbCB3YW50X2V4Y2wsIGJlIDAgb3IgMT8gKi8NCisJICAgIHJldCA9 IHZmc19jcmVhdGUobmQucGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwg U19JUlVTUnxTX0lXVVNSLCAwKTsNCisjZWxzZQ0KKwkgICAgLyogVE9ETzog c2hvdWxkIHRoZSBsYXN0IGFyZ3VtZW50IHRvIHZmc19jcmVhdGU6IGJvb2wg d2FudF9leGNsLCBiZSAwIG9yIDE/ICovDQorCSAgICByZXQgPSB2ZnNfY3Jl YXRlKHBhdGguZGVudHJ5LT5kX2lub2RlLCBkZW50cnksIFNfSVJVU1J8U19J V1VTUiwgMCk7DQorI2VuZGlmDQogCSAgICBkcHV0KGRlbnRyeSk7DQogCX0N CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o MywxOSwwKQ0KIAltdXRleF91bmxvY2soJm5kLnBhdGguZGVudHJ5LT5kX2lu b2RlLT5pX211dGV4KTsNCiAJcGF0aF9wdXQoJm5kLnBhdGgpOw0KKyNlbHNl DQorCW11dGV4X3VubG9jaygmcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfbXV0 ZXgpOw0KKwlwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlmDQogDQogCWlmIChy ZXQpIHsNCiAJICAgIHByaW50aygibm5wZnNfYmxvY2tfb3BlbiglcykgY3Jl YXRlIGZhaWxlZDogJWRcbiIsIGNhY2hlbmFtZSwgLXJldCk7DQpAQCAtNDIx LDE0ICs1MDcsMjMgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNf bm9kZSAqbm9kZQ0KICAgICB9IGVsc2Ugew0KICNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjkpDQogCXN0cnVjdCBmaWxl ICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgubW50 LCBmbGFncyk7DQotI2Vsc2UNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgICAgIHN0cnVjdCBmaWxl ICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgubW50 LCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbGlmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJc3RydWN0IHBh dGggdG1wX3BhdGggPSB7IC5tbnQgPSBuZC5wYXRoLm1udCwgLmRlbnRyeSA9 IG5kLnBhdGguZGVudHJ5IH07DQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9 IGRlbnRyeV9vcGVuKCZ0bXBfcGF0aCwgZmxhZ3MsIGN1cnJlbnRfY3JlZCgp KTsNCisjZWxzZQ0KKyAgICAgICAgc3RydWN0IGZpbGUgKmYgPSBkZW50cnlf b3BlbigmcGF0aCwgZmxhZ3MsIGN1cnJlbnRfY3JlZCgpKTsNCiAjZW5kaWYN CiAJaWYgKElTX0VSUihmKSkgew0KIAkgICAgcmV0ID0gUFRSX0VSUihmKTsN CiAJICAgIHByaW50aygibm5wZnNfYmxvY2tfb3Blbiglcykgb3BlbiBmYWls ZWQ6ICVkXG4iLCBjYWNoZW5hbWUsIC1yZXQpOw0KIAkgICAgbm5wZnNfZGVi dWdfb29wcygpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDE5LDApDQogCSAgICBwYXRoX3B1dCgmbmQucGF0aCk7DQor I2Vsc2UNCisJICAgIHBhdGhfcHV0KCZwYXRoKTsNCisjZW5kaWYNCiAJfSBl bHNlIHsNCiAJICAgICpmaWxlID0gZjsNCiAJfQ0KZGlmZiAtdXByTiAtWG5v ZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMg YXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19jb21tb24u Yw0KLS0tIGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5jCTIw MDYtMTItMTEgMTc6MzE6NDYuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS1m b3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYwkyMDE2 LTAxLTEzIDE4OjU4OjU3LjYxMDgzMTkxMCArMDEwMA0KQEAgLTExMiwxMCAr MTEyLDE1IEBAIG5ucGZzX3ByaW50X2FsaWFzZXMoY29uc3Qgc3RydWN0IGlu b2RlICoNCiB2b2lkDQogbm5wZnNfcHJpbnRfYWxpYXNlc19yZWFsKGNvbnN0 IHN0cnVjdCBpbm9kZSAqaW5vZGUpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0IGxp c3RfaGVhZCAqYWxpYXM7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAgIHN0cnVjdCBobGlzdF9ub2Rl ICphbGlhczsNCisjZW5kaWYNCiAgICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5 Ow0KICAgICBpbnQgYmFpbG91dCA9IDEwMDsNCiANCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIGFsaWFz ID0gaW5vZGUtPmlfZGVudHJ5Lm5leHQ7DQogICAgIHdoaWxlIChhbGlhcyAh PSAmaW5vZGUtPmlfZGVudHJ5KSB7DQogCWlmICgtLWJhaWxvdXQgPCAwKSB7 DQpAQCAtMTMxLDYgKzEzNiwyNCBAQCBubnBmc19wcmludF9hbGlhc2VzX3Jl YWwoY29uc3Qgc3RydWN0IGluDQogCX0NCiAJYWxpYXMgPSBhbGlhcy0+bmV4 dDsNCiAgICAgfQ0KKyNlbHNlDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9l bnRyeShkZW50cnksIGFsaWFzLCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFz KSB7DQorI2Vsc2UNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5 LCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VuZGlmDQorCWlm ICgtLWJhaWxvdXQgPCAwKSB7DQorCSAgICBwcmludGsoIiAuLi4iKTsNCisJ ICAgIGJyZWFrOw0KKwl9DQorCWlmIChkZW50cnkpIHsNCisJICAgIHByaW50 aygiICUuKnMoJXApIiwgKGludClkZW50cnktPmRfbmFtZS5sZW4sDQorCQkg ICBkZW50cnktPmRfbmFtZS5uYW1lLCBkZW50cnkpOw0KKwkgICAgaWYgKG5u cGZzX2RfZW50cnlfdW5oYXNoZWQoJmRlbnRyeS0+ZF9oYXNoKSkNCisJCXBy aW50aygiKHVuaGFzaGVkKSIpOw0KKwl9DQorICAgIH0NCisjZW5kaWYNCiAg ICAgcHJpbnRrKCJcbiIpOw0KIH0NCiANCmRpZmYgLXVwck4gLVhub2RpZmYu dHh0IGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jIGFybGEtZm9y LWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5wZnNfZGV2LmMNCi0tLSBhcmxh LWN2cy9ubnBmcy9saW51eC9ubnBmc19kZXYuYwkyMDA2LTEwLTI0IDE4OjMz OjM2LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtZm9yLWxpbnV4LTMuMTgv bm5wZnMvbGludXgvbm5wZnNfZGV2LmMJMjAxNi0wMS0xNCAwMDozNDoxNS4y OTEwNDQ3NDcgKzAxMDANCkBAIC0zMDAsNyArMzAwLDkgQEAgbm5wZnNfaW52 YWxpZGF0ZV9hbGwoc3RydWN0IG5ucGZzICpubnBmcw0KICAgICBOTlBGU0RF QihYREVCTk9ERSwgKCJmcmVlX2FsbF9ubnBmc19ub2RlcyBzdGFydGluZ1xu IikpOw0KIA0KICAgICBzaHJpbmtfZGNhY2hlX3NiKG5ucGZzLT5zYik7DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwz NykNCiAgICAgaW52YWxpZGF0ZV9pbm9kZXMobm5wZnMtPnNiKTsNCisjZW5k aWYNCiAgICAgDQogICAgIE5OUEZTREVCKFhERUJOT0RFLCAoImZyZWVfYWxs X25ucGZzX25vZGVzIGRvbmVcbiIpKTsNCiB9DQpAQCAtNTA1LDEyICs1MDcs MjMgQEAgbm5wZnNfZGV2d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0 DQogLyoNCiAgKiBOb3QgdXNlZC4NCiAgKi8NCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0KIHN0YXRpYyBpbnQN CiBubnBmc19kZXZpb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3Qg ZmlsZSAqZmlsZSwNCiAJICAgICAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2ln bmVkIGxvbmcgYXJnKQ0KKyNlbHNlDQorc3RhdGljIGxvbmcNCitubnBmc191 bmxvY2tlZF9kZXZpb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwNCisJICAgICAg IHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQ0KKyNlbmRp Zg0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMiw2LDM2KQ0KICAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2Rl dmlvY3RsIGRldiA9ICVkLCBmbGFncyA9ICVkXG4iLA0KIAkJICAgICAgIGlu b2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZWxzZQ0KKyAgICBO TlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldmlvY3RsIGRldiA9ICVkLCBm bGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZpbGUtPmZfZGVudHJ5LT5kX2lu b2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZW5kaWYNCiAgICAg cmV0dXJuIC1FSU5WQUw7DQogfQ0KIA0KQEAgLTk1Myw3ICs5NjYsMTEgQEAg c3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19mb3BzID0gew0KICAgICBy ZWFkOgkJbm5wZnNfZGV2cmVhZCwNCiAgICAgd3JpdGU6CQlubnBmc19kZXZ3 cml0ZSwNCiAgICAgcG9sbDoJCW5ucGZzX2RldnBvbGwsDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAgICAg aW9jdGw6CQlubnBmc19kZXZpb2N0bCwNCisjZWxzZQ0KKyAgICB1bmxvY2tl ZF9pb2N0bDoJbm5wZnNfdW5sb2NrZWRfZGV2aW9jdGwsDQorI2VuZGlmDQog ICAgIHJlbGVhc2U6CQlubnBmc19kZXZjbG9zZSwNCiAgICAgb3BlbjoJCW5u cGZzX2Rldm9wZW4sDQogfTsNCkBAIC05NjgsOCArOTg1LDEzIEBAIG5ucGZz X2luaXRfZGV2aWNlKHZvaWQpDQogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJihu bnBmc1tpXS53YWl0X3F1ZXVlKSk7DQogCW5ucGZzX2luaXRxKCZubnBmc1tp XS5tZXNzYWdlcSk7DQogCW5ucGZzX2luaXRxKCZubnBmc1tpXS5zbGVlcHEp Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy LDYsMzcpDQogCWluaXRfTVVURVgoJm5ucGZzW2ldLmluYWN0aXZlX3NlbSk7 DQogCWluaXRfTVVURVgoJm5ucGZzW2ldLmNoYW5uZWxfc2VtKTsNCisjZWxz ZQ0KKwlzZW1hX2luaXQoJm5ucGZzW2ldLmluYWN0aXZlX3NlbSwgMSk7DQor CXNlbWFfaW5pdCgmbm5wZnNbaV0uY2hhbm5lbF9zZW0sIDEpOw0KKyNlbmRp Zg0KIAlJTklUX0xJU1RfSEVBRCgmbm5wZnNbaV0uaW5hY3RpdmVfbGlzdCk7 DQogCW5ucGZzW2ldLm5ub2RlcyA9IDA7DQogICAgIH0NCmRpZmYgLXVwck4g LVhub2RpZmYudHh0IGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX2lub2Rl b3BzLmMgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19p bm9kZW9wcy5jDQotLS0gYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnNfaW5v ZGVvcHMuYwkyMDEwLTA4LTA4IDIyOjQzOjA0LjAwMDAwMDAwMCArMDIwMA0K KysrIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5wZnNfaW5v ZGVvcHMuYwkyMDE2LTAxLTE0IDAwOjQxOjA4Ljg2MzA2OTY4MCArMDEwMA0K QEAgLTQwLDYgKzQwLDcgQEANCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfZGV2 Lmg+DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2RpcmVudC5oPg0KICNpbmNs dWRlIDxubnBmcy9ubnBmc19zeXNjYWxscy5oPg0KKyNpbmNsdWRlIDxsaW51 eC9haW8uaD4NCiAjaW5jbHVkZSA8bGludXgvYmluZm10cy5oPg0KICNpbmNs dWRlIDxsaW51eC9maWxlLmg+DQogI2luY2x1ZGUgPGxpbnV4L3BhZ2VtYXAu aD4NCkBAIC01NCwxMSArNTUsMjMgQEAgUkNTSUQoIiRJZDogbm5wZnNfaW5v ZGVvcHMuYyx2IDEuMjI2IDIwMQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3lu Y19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcpOw0KIA0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkN CiBzdGF0aWMgaW50DQogbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50 cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpOw0KLQ0KKyNlbHNl DQogc3RhdGljIGludA0KK25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVu dHJ5ICpkZW50cnksIHVuc2lnbmVkIGludCBmbGFncyk7DQorI2VuZGlmDQor DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs NiwzOCkNCitzdGF0aWMNCitpbnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1Y3Qg ZGVudHJ5ICpkZW50cnkpOw0KKyNlbHNlDQorc3RhdGljDQoraW50DQorbm5w ZnNfZF9kZWxldGUoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KTsNCisj ZW5kaWYNCiANCiBzdGF0aWMgdm9pZA0KIG5ucGZzX2RfcmVsZWFzZShzdHJ1 Y3QgZGVudHJ5ICpkZW50cnkpOw0KQEAgLTIxNCw4ICsyMjcsMTMgQEAgbm5w ZnNfaW5vZGVfdmFsaWQoc3RydWN0IGlub2RlICppbm9kZSkNCiAgKiBubnBm c19sb29rdXAgbm93IHJldHVybnMgYSBkZW50cnkuDQogICovDQogDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0K IHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCiBubnBmc19sb29rdXAgKHN0cnVj dCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBu YW1laWRhdGEgKm5kKQ0KKyNlbHNlDQorc3RhdGljIHN0cnVjdCBkZW50cnkg Kg0KK25ucGZzX2xvb2t1cCAoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBk ZW50cnkgKmRlbnRyeSwgdW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0K IHsNCiAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfZ2V0bm9kZSBtc2c7DQog ICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KQEAgLTQ3NCwxNSArNDkyLDE4 IEBAIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQN CiAgKg0KICAqLw0KIA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLCA2LCAzNSkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM1KQ0KIHN0YXRpYyBpbnQNCiBubnBm c19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGRlbnRyeSAqZGVu dHJ5LCBpbnQgZGF0YXN5bmMpDQotI2Vsc2UNCisjZWxpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEsMCkNCiBzdGF0aWMgaW50 DQogbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIGludCBkYXRhc3lu YykNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19mc3luYyhzdHJ1Y3Qg ZmlsZSAqZmlsZSwgbG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgZGF0 YXN5bmMpDQogI2VuZGlmDQogew0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUg Pj0gS0VSTkVMX1ZFUlNJT04oMiwgNiwgMzUpDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMzUpDQogICAgIHN0cnVj dCBkZW50cnkgKmRlbnRyeSA9IGZpbGUtPmZfcGF0aC5kZW50cnk7DQogI2Vu ZGlmDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBERU5UUllfVE9fSU5P REUoZGVudHJ5KTsNCkBAIC00OTAsNiArNTExLDggQEAgbm5wZnNfZnN5bmMo c3RydWN0IGZpbGUgKmZpbGUsIGludCBkYXRhcw0KICAgICBzdHJ1Y3Qgbm5w ZnNfbm9kZSAqeG47DQogICAgIGludCBlcnJvciA9IDA7DQogDQorICAgICh2 b2lkKW5ucGZzcDsNCisNCiAgICAgZXJyb3IgPSBubnBmc19pbm9kZV92YWxp ZChpbm9kZSk7DQogICAgIGlmIChlcnJvcikNCiAJcmV0dXJuIGVycm9yOw0K QEAgLTYyMiwxMSArNjQ1LDI1IEBAIGNoZWNrX3JpZ2h0cyAobm5wZnNfcmln aHRzIHJpZ2h0cywgaW50IG0NCiAgKiBXZSBkb24ndCBob2xkIGlfbXV0ZXgu DQogICovDQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigyLDYsMzgpIHx8IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO RUxfVkVSU0lPTigzLDEsMCkpDQogc3RhdGljIGludA0KIG5ucGZzX3Blcm1p c3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1vZGUpDQorI2Vsc2UN CitzdGF0aWMgaW50DQorbm5wZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUg Kmlub2RlLCBpbnQgbW9kZSwgdW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRp Zg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCi0gICAgbm5wZnNfcGFnX3Qg cGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KKyAgICBubnBmc19wYWdfdCBwYWc7 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigz LDEsMCkNCisgICAgaWYgKG1vZGUgJiBNQVlfTk9UX0JMT0NLKQ0KKyAgICAg ICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RF ID49IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCisgICAgaWYgKGZsYWdzICYg SVBFUk1fRkxBR19SQ1UpDQorICAgICAgICByZXR1cm4gLUVDSElMRDsNCisj ZW5kaWYNCisNCisgICAgcGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICAN CiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2FjY2VzcyAoJXAp IG1vZGUgPSAwJW8gYWxpYXNlczoiLCBpbm9kZSwgbW9kZSkpOw0KICAgICBu bnBmc19wcmludF9hbGlhc2VzKGlub2RlKTsNCkBAIC04MjMsMTQgKzg2MCwy MyBAQCBpbnQgbm5wZnNfZmlsZV9tbWFwKHN0cnVjdCBmaWxlICogZmlsZSwN CiAgKg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDE2LDApDQogc3RhdGljIHNzaXplX3QNCiBubnBmc19h aW9fcmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogCSAgICAgICBjb25zdCBz dHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWduZWQgbG9uZyBucl9zZWdzLA0KIAkg ICAgICAgbG9mZl90IHBvcykNCisjZWxzZQ0KK3N0YXRpYyBzc2l6ZV90DQor bm5wZnNfcmVhZF9pdGVyKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlv dl9pdGVyICp0bykNCisjZW5kaWYNCiB7DQogICAgIGludCBlcnJvciA9IDA7 DQogICAgIHN0cnVjdCBmaWxlICpmaWxlID0gaW9jYi0+a2lfZmlscDsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMiww KQ0KICAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbGVmdDsNCisjZWxz ZQ0KKyAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbmJ5dGVzOw0KKyNl bmRpZg0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50 cnktPmRfaW5vZGU7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4biA9IFZO T0RFX1RPX1hOT0RFKGlub2RlKTsNCiAgICAgDQpAQCAtODM4LDEzICs4ODQs MjEgQEAgbm5wZnNfYWlvX3JlYWQoc3RydWN0IGtpb2NiICppb2NiLA0KIAlO TlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfcmVhZF9maWxlKCVwKTogdG9r ZW5zOiAweCV4XG4iLA0KIAkJCSAgICAgaW5vZGUsIHhuLT50b2tlbnMpKTsN CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o MywxNiwwKQ0KICAgICBlcnJvciA9IG5ucGZzX2RhdGFfdmFsaWQoaW5vZGUs IE5OUEZTX0RBVEFfUiwgcG9zLCBwb3MgKyBjb3VudCk7DQorI2Vsc2UNCisg ICAgZXJyb3IgPSBubnBmc19kYXRhX3ZhbGlkKGlub2RlLCBOTlBGU19EQVRB X1IsIGlvY2ItPmtpX3BvcywgaW9jYi0+a2lfcG9zICsgY291bnQpOw0KKyNl bmRpZg0KICAgICBpZiAoZXJyb3IpIHsNCiAJTk5QRlNERUIoWERFQlZOT1BT LCAoIm5ucGZzX3JlYWRfZmlsZTogZGF0YSBub3QgdmFsaWQgJWRcbiIsIGVy cm9yKSk7DQogCXJldHVybiBlcnJvcjsNCiAgICAgfQ0KICAgICANCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0K ICAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV9haW9fcmVhZChpb2NiLCBpb3Ys IG5yX3NlZ3MsIHBvcyk7DQorI2Vsc2UNCisgICAgZXJyb3IgPSBnZW5lcmlj X2ZpbGVfcmVhZF9pdGVyKGlvY2IsIHRvKTsNCisjZW5kaWYNCiAgICAgTk5Q RlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3JlYWRfZmlsZTogZXJyb3IgPSAl ZFxuIiwgZXJyb3IpKTsNCiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCkBAIC04 NTMsMTcgKzkwNywzMCBAQCBubnBmc19haW9fcmVhZChzdHJ1Y3Qga2lvY2Ig KmlvY2IsDQogICoNCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0KIHN0YXRpYyBzc2l6ZV90DQog bm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAJCWNvbnN0 IHN0cnVjdCBpb3ZlYyAqaW92LCB1bnNpZ25lZCBsb25nIG5yX3NlZ3MsDQog CQlsb2ZmX3QgcG9zKQ0KKyNlbHNlDQorc3RhdGljIHNzaXplX3QNCitubnBm c193cml0ZV9pdGVyKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9p dGVyICpmcm9tKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsN CiAgICAgc3RydWN0IGZpbGUgKmZpbGUgPSBpb2NiLT5raV9maWxwOw0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEyLDAp DQogICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5raV9sZWZ0Ow0KKyNlbHNl DQorICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5raV9uYnl0ZXM7DQorI2Vu ZGlmDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRy eS0+ZF9pbm9kZTsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5P REVfVE9fWE5PREUoaW5vZGUpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIGxvZmZfdCByZWFscG9z ID0gcG9zOw0KKyNlbHNlDQorICAgIGxvZmZfdCByZWFscG9zID0gaW9jYi0+ a2lfcG9zOw0KKyNlbmRpZg0KICAgICANCiAgICAgTk5QRlNERUIoWERFQlZO T1BTLCAoIm5ucGZzX2Fpb193cml0ZSglcCk6IHRva2VuczogMHgleFxuIiwN CiAJCQkgaW5vZGUsIHhuLT50b2tlbnMpKTsNCkBAIC04NzcsNyArOTQ0LDEx IEBAIG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogCXJl dHVybiBlcnJvcjsNCiAgICAgfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIGVycm9yID0gZ2Vu ZXJpY19maWxlX2Fpb193cml0ZShpb2NiLCBpb3YsIG5yX3NlZ3MsIHBvcyk7 DQorI2Vsc2UNCisgICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfd3JpdGVfaXRl cihpb2NiLCBmcm9tKTsNCisjZW5kaWYNCiAgICAgaWYgKCFJU19FUlJfVkFM VUUoZXJyb3IpKQ0KIAl4bi0+ZmxhZ3MgfD0gTk5QRlNfREFUQV9ESVJUWTsg LyogWFhYIHJhY2UgKi8NCiANCkBAIC04ODUsOSArOTU2LDE5IEBAIG5ucGZz X2Fpb193cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogICAgIHJldHVybiBl cnJvcjsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMywwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19jcmVhdGUo c3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwNCiAJ ICAgICBpbnQgbW9kZSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2VsaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQor c3RhdGljIGludA0KK25ucGZzX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwg c3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KKwkgICAgIHVtb2RlX3QgbW9kZSwg c3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCitzdGF0aWMgaW50DQor bm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5 ICpkZW50cnksDQorCSAgICAgdW1vZGVfdCBtb2RlLCBib29sIGV4Y2wpDQor I2VuZGlmDQogew0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcDsNCiAgICAg c3RydWN0IG5ucGZzX25vZGUgKnhuOw0KQEAgLTEwMzgsOCArMTExOSwxMyBA QCBubnBmc19yZW5hbWUgKHN0cnVjdCBpbm9kZSAqIG9sZF9kaXIsIHN0DQog ICAgIHJldHVybiBlcnJvcjsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMywwKQ0KIHN0YXRpYyBpbnQNCiBu bnBmc19ta2RpcihzdHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkZW50cnkg KmRlbnRyeSwgaW50IG1vZGUpDQorI2Vsc2UNCitzdGF0aWMgaW50DQorbm5w ZnNfbWtkaXIoc3RydWN0IGlub2RlICogZGlyLCBzdHJ1Y3QgZGVudHJ5ICpk ZW50cnksIHVtb2RlX3QgbW9kZSkNCisjZW5kaWYNCiB7DQogICAgIHN0cnVj dCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47 DQpAQCAtMTI1Miw4ICsxMzM4LDEzIEBAIHN0YXRpYyBpbnQgbm5wZnNfc3lt bGluayhzdHJ1Y3QgaW5vZGUgKmQNCiAvKg0KICAqIFdlIGhvbGQgaV9tdXRl eC4NCiAgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxMSwwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19yZWFkZGlyKHN0 cnVjdCBmaWxlICogZmlsZSwgdm9pZCAqIGRpcmVudCwgZmlsbGRpcl90IGZp bGxkaXIpDQorI2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNfaXRlcmF0ZShz dHJ1Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCBkaXJfY29udGV4dCAqY3R4KQ0K KyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yOw0KICAgICBsb2ZmX3Qgb2Zm c2V0LCBiZWdpbl9vZmZzZXQ7DQpAQCAtMTMyOCw2ICsxNDE5LDcgQEAgbm5w ZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUsIHZvaWQgKg0KIAkJICAg IChpbnQpIHhkaXJlbnQtPmRfbmFtbGVuLA0KIAkJICAgIChpbnQpIChvZmZz ZXQrYmVnaW5fb2Zmc2V0KSkpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDExLDApDQogCSAgICBpZiAoeGRpcmVu dC0+ZF9maWxlbm8gIT0gMA0KIAkJJiYgKGZpbGxkaXJfZXJyb3IgPSBmaWxs ZGlyIChkaXJlbnQsDQogCQkJCSAgICAgeGRpcmVudC0+ZF9uYW1lLA0KQEAg LTEzMzksNiArMTQzMSwxOCBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxl ICogZmlsZSwgdm9pZCAqDQogCQkJICgibm5wZnNfcmVhZGRpciBmaWxsZGly OiAlZFxuIiwgZmlsbGRpcl9lcnJvcikpOw0KIAkJYnJlYWs7DQogCSAgICB9 DQorI2Vsc2UNCisJICAgIGlmICh4ZGlyZW50LT5kX2ZpbGVubyAhPSAwDQor CQkmJiAoZmlsbGRpcl9lcnJvciA9IGRpcl9lbWl0IChjdHgsDQorCQkJCSAg ICAgeGRpcmVudC0+ZF9uYW1lLA0KKwkJCQkgICAgIHhkaXJlbnQtPmRfbmFt bGVuLA0KKwkJCQkgICAgIHhkaXJlbnQtPmRfZmlsZW5vLA0KKwkJCQkgICAg IERUX1VOS05PV04pKSA8IDApIHsNCisJCU5OUEZTREVCKFhERUJSRUFERElS LA0KKwkJCSAoIm5ucGZzX3JlYWRkaXIgZmlsbGRpcjogJWRcbiIsIGZpbGxk aXJfZXJyb3IpKTsNCisJCWJyZWFrOw0KKwkgICAgfQ0KKyNlbmRpZg0KIAkg ICAgb2Zmc2V0ICs9IHhkaXJlbnQtPmRfcmVjbGVuOw0KIA0KIAkgICAgaWYg KHhkaXJlbnQtPmRfcmVjbGVuID09IDApIHsNCkBAIC0xNDkwLDYgKzE1OTQs OCBAQCBubnBmc19yZWxlYXNlX2ZpbGUgKHN0cnVjdCBpbm9kZSAqaW5vZGUs DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCiAgICAgaW50IGVycm9y ID0gMDsNCiANCisgICAgKHZvaWQpbm5wZnNwOw0KKw0KICAgICBOTlBGU0RF QihYREVCVk5PUFMsICgibm5wZnNfcmVsZWFzZV9maWxlXG4iKSk7DQogDQog ICAgIGVycm9yID0gbm5wZnNfaW5vZGVfdmFsaWQoaW5vZGUpOw0KQEAgLTE1 MzMsOCArMTYzOSwxMyBAQCBubnBmc19mbHVzaChzdHJ1Y3QgZmlsZSAqZmls ZSwgZmxfb3duZXJfDQogICogUmV0dXJuIDEgaWYgYGRlbnRyeScgaXMgc3Rp bGwgdmFsaWQsIG90aGVyd2lzZSAwLg0KICAqLw0KIA0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCitzdGF0aWMg aW50DQorbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRy eSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCiBzdGF0aWMgaW50 DQotbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwg c3RydWN0IG5hbWVpZGF0YSAqbmQpIA0KK25ucGZzX2RfcmV2YWxpZGF0ZShz dHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVuc2lnbmVkIGludCBmbGFncykNCisj ZW5kaWYNCiB7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBERU5UUllf VE9fSU5PREUoZGVudHJ5KTsNCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAo Im5ucGZzX2RfcmV2YWxpZGF0ZSAlcCBcIiUuKnNcIiAoaW5vZGUgJXApXG4i LA0KQEAgLTE1ODIsOSArMTY5MywxNSBAQCBubnBmc19kX3JldmFsaWRhdGUo c3RydWN0IGRlbnRyeSAqZGVudHJ5DQogICAgIHJldHVybiAwOw0KIH0NCiAN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2 LDM4KQ0KIHN0YXRpYw0KIGludA0KIG5ucGZzX2RfZGVsZXRlKHN0cnVjdCBk ZW50cnkgKmRlbnRyeSkNCisjZWxzZQ0KK3N0YXRpYw0KK2ludA0KK25ucGZz X2RfZGVsZXRlKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCisjZW5k aWYNCiB7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGU7DQogICAgIHN0cnVj dCBubnBmc19ub2RlICp4bjsNCkBAIC0xNzA3LDYgKzE4MjQsOCBAQCBubnBm c193cml0ZV9iYWNrcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwNCiANCiAJaW50 IGVycm9yOw0KIAkNCisJKHZvaWQpb2Zmc2V0Ow0KKw0KIAlkbyB7DQogCQll cnJvciA9IHBhZ2VjYWNoZV93cml0ZV9iZWdpbihiYWNrZmlsZSwgbWFwcGlu ZywgMCwgbGVuLA0KIAkJCQkJICAgICAgQU9QX0ZMQUdfVU5JTlRFUlJVUFRJ QkxFLA0KQEAgLTE3NDcsNiArMTg2Niw4IEBAIG5ucGZzX3JlYWRfYmFja3Bh Z2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHMNCiAJc3RydWN0IHBhZ2UgKmJhY2tw YWdlOw0KIAl1bnNpZ25lZCBsb25nIG9mZnNldDsNCiANCisJKHZvaWQpb2Zm c2V0Ow0KKw0KIAliYWNrcGFnZSA9IHJlYWRfbWFwcGluZ19wYWdlKG1hcHBp bmcsIG4sIGJhY2tmaWxlKTsNCiAJaWYgKCFJU19FUlIoYmFja3BhZ2UpKSB7 DQogCQl3YWl0X29uX3BhZ2VfbG9ja2VkKGJhY2twYWdlKTsNCkBAIC0xODk0 LDExICsyMDE1LDE3IEBAIG5ucGZzX3ByZXBhcmVfd3JpdGUoc3RydWN0IGZp bGUgKmZpbGUsIHMNCiANCiAJaWYgKG1vZHNpemUgPiBpX3NpemVfcmVhZChp bm9kZSkpIHsNCiAJCWludCBlcnJvcjsNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw4LDApDQogCQllcnJvciA9IHZtdHJ1 bmNhdGUoaW5vZGUsIG1vZHNpemUpOw0KKyNlbHNlDQorCQllcnJvciA9IGlu b2RlX25ld3NpemVfb2soaW5vZGUsIG1vZHNpemUpOw0KKwkJaWYoIWVycm9y KQ0KKwkJCXRydW5jYXRlX3NldHNpemUoaW5vZGUsIG1vZHNpemUpOw0KKyNl bmRpZg0KIAkJaWYgKGVycm9yKSB7DQogCQkJcHJpbnRrKCJubnBmc19wcmVw YXJlX3dyaXRlOiB0cnVuY2F0ZSglbGx1KSAtPiAlZFxuIiwNCiAJCQkgICAg ICAgbW9kc2l6ZSwgLWVycm9yKTsNCi0JCQlCVUcoKTsgLyogWFhYIG5vdCBj b3JyZWN0ICovDQorCQkJLypCVUcoKTsqLyAvKiBYWFggbm90IGNvcnJlY3Qg Ki8NCiAJCX0NCiAJfQ0KIA0KQEAgLTE5OTMsMTAgKzIxMjAsMTggQEAgbm5w ZnNfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Yw0KIA0KIAkv KiB6ZXJvIHRoZSBzdGFsZSBwYXJ0IG9mIHRoZSBwYWdlIGlmIHdlIGRpZCBh IHNob3J0IGNvcHkgKi8NCiAJaWYgKGNvcGllZCA8IGxlbikgew0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJ CXZvaWQgKmthZGRyID0ga21hcF9hdG9taWMocGFnZSwgS01fVVNFUjApOw0K KyNlbHNlDQorCQl2b2lkICprYWRkciA9IGttYXBfYXRvbWljKHBhZ2UpOw0K KyNlbmRpZg0KIAkJbWVtc2V0KGthZGRyICsgZnJvbSArIGNvcGllZCwgMCwg bGVuIC0gY29waWVkKTsNCiAJCWZsdXNoX2RjYWNoZV9wYWdlKHBhZ2UpOw0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs MCkNCiAJCWt1bm1hcF9hdG9taWMoa2FkZHIsIEtNX1VTRVIwKTsNCisjZWxz ZQ0KKwkJa3VubWFwX2F0b21pYyhrYWRkcik7DQorI2VuZGlmDQogCX0NCiAN CiAJbm5wZnNfY29tbWl0X3dyaXRlKGZpbGUsIHBhZ2UsIGZyb20sIGZyb20g KyBjb3BpZWQpOw0KQEAgLTIwMjcsOCArMjE2MiwxMyBAQCBzdHJ1Y3QgYWRk cmVzc19zcGFjZV9vcGVyYXRpb25zIG5ucGZzX2FvDQogICovDQogDQogc3Ry dWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19maWxlX29wZXJhdGlvbnMgPSB7 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs MTYsMCkNCiAgICAgLmFpb19yZWFkCT0gbm5wZnNfYWlvX3JlYWQsDQogICAg IC5haW9fd3JpdGUJPSBubnBmc19haW9fd3JpdGUsDQorI2Vsc2UNCisgICAg LnJlYWRfaXRlcgk9IG5ucGZzX3JlYWRfaXRlciwNCisgICAgLndyaXRlX2l0 ZXIJPSBubnBmc193cml0ZV9pdGVyLA0KKyNlbmRpZg0KICAgICAubW1hcAk9 IG5ucGZzX2ZpbGVfbW1hcCwNCiAgICAgLm9wZW4JPSBubnBmc19vcGVuLA0K ICAgICAuZmx1c2gJPSBubnBmc19mbHVzaCwNCkBAIC0yMDQxLDcgKzIxODEs MTEgQEAgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19kZWFkX29wZXJh dA0KIH07DQogDQogc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19kaXJf b3BlcmF0aW9ucyA9IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMywxMSwwKQ0KICAgICAucmVhZGRpcgk9IG5ucGZzX3Jl YWRkaXIsDQorI2Vsc2UNCisgICAgLml0ZXJhdGUgICAgPSBubnBmc19pdGVy YXRlLA0KKyNlbmRpZg0KICAgICAuZmx1c2gJPSBubnBmc19mbHVzaCwNCiB9 Ow0KIA0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMv bGludXgvbm5wZnNfbG9hZC5jIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMv bGludXgvbm5wZnNfbG9hZC5jDQotLS0gYXJsYS1jdnMvbm5wZnMvbGludXgv bm5wZnNfbG9hZC5jCTIwMDYtMTAtMzEgMTE6MDI6NDEuMDAwMDAwMDAwICsw MTAwDQorKysgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBm c19sb2FkLmMJMjAxNi0wMS0xMyAyMDoxNDowMi44MzAxMDM1MTcgKzAxMDAN CkBAIC01NCw3ICs1NCwxMSBAQCBleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0 aW9ucyBubnBmc19mb3BzDQogDQogc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUg bm5wZnNfZnNfdHlwZSA9IHsNCiAgICAgICAgbmFtZTogICAgICAgICAgICJu bnBmcyIsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDIsNiwzOSkNCiAgICAgICAgZ2V0X3NiOiAgICAgICAgIG5ucGZzX2dl dF9zYiwNCisjZWxzZQ0KKyAgICAgICBtb3VudDogICAgICAgICAgbm5wZnNf bW91bnQsDQorI2VuZGlmDQogICAgICAgIGtpbGxfc2I6ICAgICAgICBraWxs X2xpdHRlcl9zdXBlciwNCiAgICAgICAgb3duZXI6ICAgICAgICAgIFRISVNf TU9EVUxFLA0KIH07DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLWN2 cy9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMgYXJsYS1mb3ItbGludXgt My4xOC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMNCi0tLSBhcmxhLWN2 cy9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAxMC0wOC0wOCAyMjo0 MzowNS4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZvci1saW51eC0zLjE4 L25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYwkyMDE2LTAxLTE0IDAwOjQ0 OjIxLjU2NjA4MTI5OCArMDEwMA0KQEAgLTU1LDkgKzU1LDE1IEBAIHN0YXRp YyB2b2lkDQogbm5wZnNfZF9yZW1vdmUoc3RydWN0IGRlbnRyeSAqZGVudHJ5 KQ0KIHsNCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBmc19kX3JlbW92 ZSAlcFxuIiwgZGVudHJ5KSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl9sb2NrKCZkY2Fj aGVfbG9jayk7DQogICAgIGRnZXRfbG9ja2VkKGRlbnRyeSk7DQogICAgIHNw aW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl9s b2NrKCZkZW50cnktPmRfbG9jayk7DQorICAgIGRnZXRfZGxvY2soZGVudHJ5 KTsNCisgICAgc3Bpbl91bmxvY2soJmRlbnRyeS0+ZF9sb2NrKTsNCisjZW5k aWYNCiAgICAgZF9kcm9wKGRlbnRyeSk7DQogICAgIGRwdXQoZGVudHJ5KTsN CiB9DQpAQCAtMTIxLDcgKzEyNywxMSBAQCBubnBmc19tZXNzYWdlX2luc3Rh bGxub2RlKHN0cnVjdCBubnBmcyAqDQogICAgIHN0cnVjdCBpbm9kZSAqZGks ICppbm9kZTsNCiAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50ID0gTlVMTDsN CiAgICAgc3RydWN0IHFzdHIgc3FzdHI7DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlz dF9oZWFkICphbGlhczsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgc3RydWN0IGhsaXN0X25vZGUg KmFsaWFzOw0KKyNlbmRpZg0KICAgICANCiAgICAgTk5QRlNERUIoWERFQk1T RywgKCJubnBmc19tZXNzYWdlX2luc3RhbGxub2RlXG4iKSk7DQogICAgIA0K QEAgLTE3NiwxMiArMTg2LDI0IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5v ZGUoc3RydWN0IG5ucGZzICoNCiAgICAgICoNCiAgICAgICovDQogICAgIA0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs MCkNCiAgICAgYWxpYXMgPSBkaS0+aV9kZW50cnkubmV4dDsNCiAgICAgd2hp bGUgKGFsaWFzICE9ICZkaS0+aV9kZW50cnkpIHsNCiAJcGFyZW50ID0gbGlz dF9lbnRyeShhbGlhcywgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQotCXNw aW5fbG9jaygmZGNhY2hlX2xvY2spOw0KLQlkZ2V0X2xvY2tlZChwYXJlbnQp Ow0KLQlzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbGlmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBo bGlzdF9mb3JfZWFjaF9lbnRyeShwYXJlbnQsIGFsaWFzLCAmZGktPmlfZGVu dHJ5LCBkX2FsaWFzKSB7DQorI2Vsc2UNCisgICAgaGxpc3RfZm9yX2VhY2hf ZW50cnkocGFyZW50LCAmZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2Vu ZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDIsNiwzOCkNCisgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQorICAg IGRnZXRfbG9ja2VkKHBhcmVudCk7DQorICAgIHNwaW5fdW5sb2NrKCZkY2Fj aGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZwYXJlbnQtPmRf bG9jayk7DQorICAgIGRnZXRfZGxvY2socGFyZW50KTsNCisgICAgc3Bpbl91 bmxvY2soJnBhcmVudC0+ZF9sb2NrKTsNCisjZW5kaWYNCiAJZGVudHJ5ID0g ZF9sb29rdXAocGFyZW50LCAmc3FzdHIpOw0KIAlOTlBGU0RFQihYREVCTVNH LA0KIAkJICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZTogYWxpYXMgJXAs IGxvb2t1cCAlcFxuIiwNCkBAIC0yMzMsNyArMjU1LDkgQEAgbm5wZnNfbWVz c2FnZV9pbnN0YWxsbm9kZShzdHJ1Y3Qgbm5wZnMgKg0KIAkNCiAJZHB1dChk ZW50cnkpOw0KIAlkZW50cnkgPSBOVUxMOw0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJYWxpYXMgPSBhbGlh cy0+bmV4dDsNCisjZW5kaWYNCiAJZHB1dChwYXJlbnQpOw0KICAgICB9DQog ICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfbWVzc2FnZV9pbnN0YWxs bm9kZTogZG9uZSBpbnN0YWxsaW5nXG4iKSk7DQpAQCAtMjY4LDcgKzI5Miwx MSBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxhdHRyKHN0cnVjdCBubnBmcyAq DQogICAgIH0NCiANCiAgICAgaW5vZGUgPSBYTk9ERV9UT19WTk9ERSh0KTsN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2 LDApDQogICAgIGRlbnRyeSA9IGxpc3RfZW50cnkoaW5vZGUtPmlfZGVudHJ5 Lm5leHQsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KKyNlbHNlDQorICAg IGRlbnRyeSA9IGhsaXN0X2VudHJ5KGlub2RlLT5pX2RlbnRyeS5maXJzdCwg c3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQorI2VuZGlmDQogICAgIA0KICAg ICBOTlBGU0RFQihYREVCTVNHLCAoIm5ucGZzX21lc3NhZ2VfaW5zdGFsbGF0 dHIgbmFtZTolc1xuIiwNCiAJCSAgICAgICBkZW50cnktPmRfbmFtZS5uYW1l KSk7DQpAQCAtMzk2LDE3ICs0MjQsMzQgQEAgbm5wZnNfbWVzc2FnZV9pbnN0 YWxsZGF0YShzdHJ1Y3Qgbm5wZnMgKg0KIHN0YXRpYyB2b2lkDQogY2xlYXJf YWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgcGFyZW50 KQ0KIHsNCisgICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAg c3RydWN0IGxpc3RfaGVhZCAqYWxpYXM7DQorI2VsaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAgIHN0cnVjdCBo bGlzdF9ub2RlICphbGlhczsNCisjZW5kaWYNCiANCiAgYWdhaW46DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkN CiAgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAg LyogVE9ETzogZmluZCB0aGUgZGVudHJ5IHRvIGxvY2sgKi8NCisgICAgLypz cGluX2xvY2soJmRlbnRyeS0+ZF9sb2NrKTsqLw0KKyNlbmRpZg0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAg ICAgYWxpYXMgPSBpbm9kZS0+aV9kZW50cnkubmV4dDsNCiAgICAgd2hpbGUg KGFsaWFzICE9ICZpbm9kZS0+aV9kZW50cnkpIHsNCi0Jc3RydWN0IGRlbnRy eSAqZGVudHJ5Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShk ZW50cnksIGFsaWFzLCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQor I2Vsc2UNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCAmaW5v ZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VuZGlmDQogCXN0cnVjdCBs aXN0X2hlYWQgKnN1YmRpcnM7DQogCXN0cnVjdCBubnBmc19kZW50cnlfZGF0 YSAqeGQ7DQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDYsMCkNCiAJZGVudHJ5ID0gbGlzdF9lbnRyeShhbGlhcywg c3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQorI2VuZGlmDQogCWlmIChkZW50 cnkgPT0gTlVMTCkgew0KIAkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZT IFBhbmljOiBkZW50cnkgaW4gYWxpYXMgbGlzdCBpcyBudWxsXG4iKTsNCiAJ ICAgIGJyZWFrOw0KQEAgLTQ0MiwxNCArNDg3LDI2IEBAIGNsZWFyX2FsbF9j aGlsZHJlbiAoc3RydWN0IGlub2RlICppbm9kZSwNCiANCiAJICAgIC8qIFRo cm93IGltbWVkaWF0ZWx5ICovDQogCSAgICBpZiAobm5wZnNfZGNvdW50KGNo aWxkKSA9PSAwKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDIsNiwzOCkNCiAJICAgICAgICBzcGluX3VubG9jaygmZGNh Y2hlX2xvY2spOw0KKyNlbHNlDQorCQkvKiBUT0RPOiB1bmxvY2sgdGhlIGRl bnRyeSAqLw0KKwkJLypzcGluX3VubG9jaygmZGVudHJ5LT5kX2xvY2spOyov DQorI2VuZGlmDQogCQlubnBmc19kX3JlbW92ZShjaGlsZCk7DQogCQlnb3Rv IGFnYWluOw0KIAkgICAgfQ0KIAl9DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAlhbGlhcyA9IGFsaWFzLT5u ZXh0Ow0KKyNlbmRpZg0KICAgICB9DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl91bmxvY2so JmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICAvKiBUT0RPOiB1bmxvY2sg dGhlIGRlbnRyeSAqLw0KKyAgICAvKnNwaW5fdW5sb2NrKCZkZW50cnktPmRf bG9jayk7Ki8NCisjZW5kaWYNCiB9DQogDQogc3RhdGljIHZvaWQNCkBAIC03 MjQsNyArNzgxLDExIEBAIG5ucGZzX21lc3NhZ2VfdmVyc2lvbihzdHJ1Y3Qg bm5wZnMgKm5ucGYNCiANCiAJdWludDY0X3QgYmxvY2tzaXplID0gbWVzc2Fn ZS0+YmxvY2tzaXplOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigyLDYsMzkpDQogCWVycm9yID0gcGF0aF9sb29rdXAo Ii4iLCAwLCAmbmQpOw0KKyNlbHNlDQorCWVycm9yID0ga2Vybl9wYXRoKCIu IiwgMCwgJm5kLnBhdGgpOw0KKyNlbmRpZg0KIAlpZiAoZXJyb3IpIHsNCiAJ ICAgIC8qDQogCSAgICAgKiBCYWQgY2FjaGUgcm9vdCwganVzdCByZXR1cm4u DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLWN2cy9ubnBmcy9saW51 eC9ubnBmc19ub2RlLmMgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51 eC9ubnBmc19ub2RlLmMNCi0tLSBhcmxhLWN2cy9ubnBmcy9saW51eC9ubnBm c19ub2RlLmMJMjAwNy0wMS0wMyAxNDo1MjowMi4wMDAwMDAwMDAgKzAxMDAN CisrKyBhcmxhLWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzX25v ZGUuYwkyMDE2LTAxLTEzIDIwOjQ1OjQwLjg3MDIxNzk0NCArMDEwMA0KQEAg LTEzMiw3ICsxMzIsMTIgQEAgbm5wZnNfc2V0c2l6ZShzdHJ1Y3QgaW5vZGUg Kmlub2RlLCB1aW50Ng0KIAlwcmludGsoIm5ucGZzX3NldHNpemU6IHRydW5j YXRpbmcgQDB4JWxsdVxuIiwNCiAJICAgICAgICh1bnNpZ25lZCBsb25nIGxv bmcpc2l6ZSk7DQogI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsOCwwKQ0KIAl2bXRydW5jYXRlKGlub2RlLCBz aXplKTsgLyogWFhYIHJldHZhbCAqLw0KKyNlbHNlDQorCWlmKCFpbm9kZV9u ZXdzaXplX29rKGlub2RlLCBzaXplKSkNCisJICAgIHRydW5jYXRlX3NldHNp emUoaW5vZGUsIHNpemUpOw0KKyNlbmRpZg0KIAlubnBmc19ibG9ja190cnVu Y2F0ZSh4biwgc2l6ZSk7DQogICAgIH0NCiB9DQpAQCAtMTUwLDkgKzE1NSwx OCBAQCBubnBmc19hdHRyMmlub2RlKGNvbnN0IHN0cnVjdCBubnBmc19hdHRy DQogCXN0cnVjdCB0aW1lc3BlYyBub3RpbWUgPSB7MH07DQogDQogCWlub2Rl LT5pX21vZGUgICA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAJaW5vZGUtPmlfdWlkICAgID0gMDsN CiAJaW5vZGUtPmlfZ2lkICAgID0gMDsNCisjZWxzZQ0KKwlpbm9kZS0+aV91 aWQgICAgPSBLVUlEVF9JTklUKDApOw0KKwlpbm9kZS0+aV9naWQgICAgPSBL R0lEVF9JTklUKDApOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDIsMCkNCiAJaW5vZGUtPmlfbmxpbmsg ID0gMTsNCisjZWxzZQ0KKwlzZXRfbmxpbmsoaW5vZGUsIDEpOw0KKyNlbmRp Zg0KIAlpbm9kZS0+aV9hdGltZSAgPSBub3RpbWU7DQogCWlub2RlLT5pX210 aW1lICA9IG5vdGltZTsNCiAJaW5vZGUtPmlfY3RpbWUgID0gbm90aW1lOw0K QEAgLTE2OSw3ICsxODMsMTEgQEAgbm5wZnNfYXR0cjJpbm9kZShjb25zdCBz dHJ1Y3Qgbm5wZnNfYXR0cg0KICAgICBpZiAoWEFfVkFMSURfR0lEKGF0dHIp KQ0KIAlpbm9kZS0+aV9naWQgICAgPSBhdHRyLT54YV9naWQ7DQogICAgIGlm IChYQV9WQUxJRF9OTElOSyhhdHRyKSkNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywyLDApDQogCWlub2RlLT5pX25saW5r ICA9IGF0dHItPnhhX25saW5rOw0KKyNlbHNlDQorCXNldF9ubGluayhpbm9k ZSwgYXR0ci0+eGFfbmxpbmspOw0KKyNlbmRpZg0KICAgICANCiAgICAgaWYg KFhBX1ZBTElEX1NJWkUoYXR0cikpIHsNCiAJbm5wZnNfc2V0c2l6ZShpbm9k ZSwgYXR0ci0+eGFfc2l6ZSk7DQpAQCAtNTEwLDExICs1MjgsMTkgQEAgbm5w ZnNfaGFzX3BhZyhjb25zdCBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeA0KIGludA0K IG5ucGZzX25vZGVfdXNlcnMoc3RydWN0IGlub2RlICppbm9kZSkNCiB7DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiww KQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpwb3M7DQorI2Vsc2UNCisgICAg c3RydWN0IGhsaXN0X25vZGUgKnBvczsNCisjZW5kaWYNCiAgICAgaW50IHVz ZXJzID0gMDsNCiAgICAgDQogICAgIC8qIFhYWCB0aGlzIHNob3VsZCBwcm9i YWJseSBiZSBwcm90ZWN0ZWQgc29tZWhvdyAqLw0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgbGlzdF9m b3JfZWFjaChwb3MsICZpbm9kZS0+aV9kZW50cnkpIHsNCisjZWxzZQ0KKyAg ICBobGlzdF9mb3JfZWFjaChwb3MsICZpbm9kZS0+aV9kZW50cnkpIHsNCisj ZW5kaWYNCiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbGlzdF9lbnRyeShw b3MsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KIAlpZiAobm5wZnNfZGNv dW50KGRlbnRyeSkgPiAxKQ0KIAkgICAgdXNlcnMrKzsNCmRpZmYgLXVwck4g LVhub2RpZmYudHh0IGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX3N5c2Nh bGxzLmMgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19z eXNjYWxscy5jDQotLS0gYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnNfc3lz Y2FsbHMuYwkyMDEwLTA4LTA4IDIyOjQzOjA2LjAwMDAwMDAwMCArMDIwMA0K KysrIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5wZnNfc3lz Y2FsbHMuYwkyMDE2LTAxLTE0IDAwOjQ2OjA4LjQ2ODA4Nzc0MyArMDEwMA0K QEAgLTQyLDcgKzQyLDkgQEANCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfc3lz Y2FsbHMuaD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfY29tbW9uLmg+DQog I2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4NCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICNpbmNsdWRlIDxsaW51 eC9zbXBfbG9jay5oPg0KKyNlbmRpZg0KICNpbmNsdWRlIDxsaW51eC9zbXAu aD4NCiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPg0KIA0KQEAgLTUwLDYg KzUyLDExIEBADQogI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+DQogI2Vu ZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS U0lPTigzLDcsMCkNCisjdW5kZWYgU1lTQ0FMTEhBQ0sNCisvKiB0aGUgbWV0 aG9kIHRvIHJlYWQgJ2xvd2VyX2JvdW5kJyBkb2VzIG5vdCB3b3JrIG9uIGtl cm5lbCAzLjcgYW5kIGxhdGVyLCBzZSBubnBmc19zeXNjYWxscy1sb3NzYWdl LmMgKi8NCisjZW5kaWYNCisNCiAjaWYgMA0KICNpZmRlZiBDT05GSUdfQ09N UEFUDQogI2luY2x1ZGUgPGxpbnV4L2lvY3RsMzIuaD4NCkBAIC04MiwxMiAr ODksMjIgQEAgdHlwZWRlZiBzdHJ1Y3QgYWZzcHJvY2RhdGEgew0KICAgICB1 bnNpZ25lZCBsb25nIHN5c2NhbGw7DQogfSBhZnNwcm9jZGF0YTsNCiANCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2 KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19wcm9jZnNfaW9jdGwoc3RydWN0IGlu b2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsDQogCQkgICB1bnNpZ25l ZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7DQorI2Vsc2UNCitzdGF0 aWMgbG9uZw0KK25ucGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3QgZmlsZSAqZmls ZSwNCisJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJn KTsNCisjZW5kaWYNCiANCiBzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9u cyBubnBmc19wcm9jZnNfZm9wcyA9IHsNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0KICAgICAuaW9jdGwgPSBu bnBmc19wcm9jZnNfaW9jdGwsDQorI2Vsc2UNCisgICAgLnVubG9ja2VkX2lv Y3RsID0gbm5wZnNfcHJvY2ZzX2lvY3RsLA0KKyNlbmRpZg0KIH07DQogDQog DQpAQCAtMTYwLDggKzE3NywxMCBAQCBubnBmc19nZXRfcGFnX3NlYyh2b2lk KQ0KIA0KICNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJ T04oMiw2LDI4KQ0KICAgICByZXR1cm4gY3VycmVudC0+dWlkOw0KLSNlbHNl DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o MywxNCwwKQ0KICAgICByZXR1cm4gY3VycmVudF91aWQoKTsNCisjZWxzZQ0K KyAgICB7IGt1aWRfdCBrdWlkID0gY3VycmVudF91aWQoKTsgcmV0dXJuIGt1 aWQudmFsOyB9DQogI2VuZGlmDQogfQ0KIA0KQEAgLTE5OSw3ICsyMTgsMTIg QEAgZmluZF9wYWcoc3RydWN0IGdyb3VwX2luZm8gKmdpKQ0KICAgICBOTlBG U0RFQihYREVCU1lTLCAoImZpbmRfcGFnOiBuZ3JvdXBzID0gJWRcbiIsIGdp LT5uZ3JvdXBzKSk7DQogDQogICAgIGZvciAoaSA9IGdpLT5uZ3JvdXBzIC0g MTsgaSA+PSAwOyBpLS0pIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KIAlnaWRfdCBncm91cCA9IEdST1VQ X0FUKGdpLCBpKTsNCisjZWxzZQ0KKwlrZ2lkX3Qga2dyb3VwID0gR1JPVVBf QVQoZ2ksIGkpOw0KKwlnaWRfdCBncm91cCA9IGtncm91cC52YWw7DQorI2Vu ZGlmDQogCWlmICgobm5wZnNfcGFnX3QpZ3JvdXAgPj0gTk5QRlNfUEFHX0xM SU0gJiYgKG5ucGZzX3BhZ190KWdyb3VwIDwgTk5QRlNfUEFHX1VMSU0pIHsN CiAJICAgIE5OUEZTREVCKFhERUJTWVMsDQogCQkgICAgICgiZmluZF9wYWc6 IEV4aXN0aW5nIHBhZyAldSBhdCBwb3MgJXVcbiIsIGdyb3VwLCBpKSk7DQpA QCAtMjIwLDcgKzI0NCwxMiBAQCBubnBmc19nZXRfcGFnX2dyb3VwKHZvaWQp DQogICAgIG5ucGZzX3BhZ190IHJldCA9IGN1cnJlbnQtPnVpZDsNCiAjZWxz ZQ0KICAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kgPSBnZXRfY3VycmVudF9n cm91cHMoKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxNCwwKQ0KICAgICBubnBmc19wYWdfdCByZXQgPSBjdXJyZW50 X3VpZCgpOw0KKyNlbHNlDQorICAgIGt1aWRfdCBrdWlkID0gY3VycmVudF91 aWQoKTsNCisgICAgbm5wZnNfcGFnX3QgcmV0ID0ga3VpZC52YWw7DQorI2Vu ZGlmDQogI2VuZGlmDQogICAgIGludCBpOw0KIA0KQEAgLTIzMCw3ICsyNTks MTEgQEAgbm5wZnNfZ2V0X3BhZ19ncm91cCh2b2lkKQ0KIA0KICAgICBpID0g ZmluZF9wYWcoZ2kpOw0KICAgICBpZiAoaSAhPSBOTlBGU19QQUdfTk9URk9V TkQpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMTQsMCkNCiAJcmV0ID0gR1JPVVBfQVQoZ2ksIGkpOw0KKyNlbHNlDQor CXsga2dpZF90IGtnaWQgPSBHUk9VUF9BVChnaSwgaSk7IHJldCA9IGtnaWQu dmFsOyB9DQorI2VuZGlmDQogDQogICAgIHB1dF9ncm91cF9pbmZvKGdpKTsN CiANCkBAIC0yODAsMTAgKzMxMywxNyBAQCBzdG9yZV9wYWcobm5wZnNfcGFn X3QgcGFnbnVtKQ0KIAljb3VudCAtPSBOR1JPVVBTX1BFUl9CTE9DSzsNCiAg ICAgfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDE0LDApDQogICAgIGlmIChmb3VuZCkNCiAJR1JPVVBfQVQobmV3 X2dpLCBpKSA9IHBhZ251bTsNCiAgICAgZWxzZQ0KIAlHUk9VUF9BVChuZXdf Z2ksIG5ld19naS0+bmdyb3VwcyAtIDEpID0gcGFnbnVtOw0KKyNlbHNlDQor ICAgIGlmIChmb3VuZCkNCisJeyBrZ2lkX3Qga2dpZCA9IEtHSURUX0lOSVQo cGFnbnVtKTsgR1JPVVBfQVQobmV3X2dpLCBpKSA9IGtnaWQ7IH0NCisgICAg ZWxzZQ0KKwl7IGtnaWRfdCBrZ2lkID0gS0dJRFRfSU5JVChwYWdudW0pOyBH Uk9VUF9BVChuZXdfZ2ksIG5ld19naS0+bmdyb3VwcyAtIDEpID0ga2dpZDsg fQ0KKyNlbmRpZg0KICAgICANCiAgICAgc2V0X2N1cnJlbnRfZ3JvdXBzKG5l d19naSk7DQogICAgIHB1dF9ncm91cF9pbmZvKG5ld19naSk7DQpAQCAtMzI1 LDggKzM2NSwxMCBAQCBubnBmc19nZXRfcGFnKCkNCiANCiAjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg cmV0dXJuIGN1cnJlbnQtPnVpZDsNCi0jZWxzZQ0KKyNlbGlmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAgICAgcmV0 dXJuIGN1cnJlbnRfdWlkKCk7DQorI2Vsc2UNCisgICAgeyBrdWlkX3Qga3Vp ZCA9IGN1cnJlbnRfdWlkKCk7IHJldHVybiBrdWlkLnZhbDsgfQ0KICNlbmRp Zg0KIH0NCiANCkBAIC00MzIsNyArNDc0LDcgQEAgbm5wZnNfc2V0Z3JvdXBz MTYgKGludCBnaWRzZXRzaXplLCBvbGRfZw0KICNlbmRpZiAvKiBTWVNDQUxM SEFDSyAqLw0KICNlbmRpZiAvKiBHUk9VUFBBR1MgKi8NCiANCi1zdHJ1Y3Qg ZmlsZV9oYW5kbGUgew0KK3N0cnVjdCBubnBmc19maWxlX2hhbmRsZSB7DQog ICAgIG5ucGZzX2Rldl90IGRldjsNCiAgICAgaW5vX3QgaW5vZGU7DQogICAg IF9fdTMyIGdlbjsNCkBAIC01MjIsMTEgKzU2NCwxOSBAQCBubnBmc19kZWJ1 Z19wcmludCAoc3RydWN0IGFybGFWaWNlSW9jdGwNCiBzdGF0aWMgc3RydWN0 IGRlbnRyeSAqDQogdXNlcl9wYXRoMmRlbnRyeSAoc3RydWN0IG5hbWVpZGF0 YSAqbmQsIGNoYXIgKnVzZXJfcGF0aCwgaW50IGZvbGxvdykNCiB7DQotICAg IGNoYXIgKmtuYW1lOw0KICAgICBpbnQgZmxhZ3MgPSAwOw0KICAgICBpbnQg ZXJyb3IgPSAwOw0KIA0KLSAgICBrbmFtZSA9IGdldG5hbWUgKHVzZXJfcGF0 aCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsNywwKQ0KKyAgICBjaGFyICprbmFtZTsNCisgICAga25hbWUgPSBnZXRu YW1lKHVzZXJfcGF0aCk7DQorI2Vsc2UNCisgICAgY29uc3QgY2hhciAqa25h bWU7DQorICAgIHN0cnVjdCBmaWxlbmFtZSAqZm5hbWU7DQorICAgIGZuYW1l ID0gZ2V0bmFtZSh1c2VyX3BhdGgpOw0KKyAgICBrbmFtZSA9IGZuYW1lLT5u YW1lOw0KKyNlbmRpZg0KKw0KICAgICBpZiAoSVNfRVJSKGtuYW1lKSkNCiAJ cmV0dXJuIEVSUl9QVFIoUFRSX0VSUihrbmFtZSkpOw0KICAgICBpZiAoZm9s bG93KQ0KQEAgLTUzNCw4ICs1ODQsMTYgQEAgdXNlcl9wYXRoMmRlbnRyeSAo c3RydWN0IG5hbWVpZGF0YSAqbmQsDQogDQogICAgIE5OUEZTREVCKFhERUJN U0csICgibm5wZnNfc3lzY2FsbDogbG9va2luZyB1cDogJXNcbiIsIGtuYW1l KSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDIsNiwzOSkNCiAgICAgZXJyb3IgPSBwYXRoX2xvb2t1cChrbmFtZSwg ZmxhZ3MsIG5kKTsNCisjZWxzZQ0KKyAgICBlcnJvciA9IGtlcm5fcGF0aChr bmFtZSwgZmxhZ3MsICYobmQtPnBhdGgpKTsNCisjZW5kaWYNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw3LDApDQogICAg IHB1dG5hbWUoa25hbWUpOw0KKyNlbHNlDQorICAgIGttZW1fY2FjaGVfZnJl ZShuYW1lc19jYWNoZXAsICh2b2lkICopa25hbWUpOw0KKyNlbmRpZg0KICAg ICBpZiAoZXJyb3IpDQogCXJldHVybiBFUlJfUFRSKGVycm9yKTsNCiAgICAg cmV0dXJuIG5kLT5wYXRoLmRlbnRyeTsNCkBAIC01NTksNyArNjE3LDExIEBA IHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KICAgICBpZiAobXNnID09 IE5VTEwpDQogICAgICAgcmV0dXJuIC1FTk9NRU07DQogDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAg bG9ja19rZXJuZWwoKTsNCisjZWxzZQ0KKyAgICAvKiBUT0RPOiBsb2NrX2tl cm5lbCgpIGlzIHJlbW92ZWQsIGNvbnNpZGVyIGFkZGluZyBhbiBwcml2YXRl IGxvY2sgKi8NCisjZW5kaWYNCiANCiAgICAgTk5QRlNERUIoWERFQlNZUywg KCJzeXNfYWZzIGtlcm5lbCBsb2NrZWRcbiIpKTsNCiANCkBAIC02OTksNyAr NzYxLDExIEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KIA0KICAg ICBOTlBGU0RFQihYREVCU1lTLCAoInN5c19hZnMga2VybmVsIHVubG9ja1xu IikpOw0KICAgICBrZnJlZShtc2cpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogICAgIHVubG9ja19rZXJu ZWwoKTsNCisjZWxzZQ0KKyAgICAvKiBUT0RPOiBzZWUgdGhlIGNvbW1lbnQg YXQgbG9ja19rZXJuZWwoKSBhYm92ZSAqLw0KKyNlbmRpZg0KIA0KICAgICBy ZXR1cm4gZXJyb3I7DQogfQ0KQEAgLTc0OCw5ICs4MTQsMTUgQEAgc3lzX2Fm cyAoaW50IG9wZXJhdGlvbiwNCiAJCSAgICAgICBhX2ZvbGxvd1N5bWxpbmtz KTsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDIsNiwzNikNCiBzdGF0aWMgaW50DQogbm5wZnNfcHJvY2ZzX2lv Y3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLA0K IAkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQor I2Vsc2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3Byb2Nmc19pb2N0bChzdHJ1 Y3QgZmlsZSAqZmlsZSwNCisJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2ln bmVkIGxvbmcgYXJnKQ0KKyNlbmRpZg0KIHsNCiAgICAgYWZzcHJvY2RhdGEg YXJnczsNCiAgICAgbG9uZyByZXQ7DQpAQCAtODA3LDcgKzg3OSwxMSBAQCBz dGF0aWMgaW50IG5ucGZzX2luaXRfcHJvY2ZzKHZvaWQpDQogICAgIG5ucGZz X3Byb2Nmc19kaXItPm93bmVyID0gVEhJU19NT0RVTEU7DQogI2VuZGlmDQog ICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDEwLDApDQogICAgIGVudHJ5ID0gY3JlYXRlX3Byb2NfZW50cnkoTk5Q RlNfUFJPQ19OT0RFLCAwNjY2LCBubnBmc19wcm9jZnNfZGlyKTsNCisjZWxz ZQ0KKyAgICBlbnRyeSA9IHByb2NfY3JlYXRlKE5OUEZTX1BST0NfTk9ERSwg MDY2NiwgTlVMTCwgJm5ucGZzX3Byb2Nmc19mb3BzKTsNCisjZW5kaWYNCiAg ICAgaWYgKGVudHJ5ID09IE5VTEwpIHsNCiAJTk5QRlNERUIoWERFQlNZUywg KCJubnBmc19pbml0X3Byb2Nmczogbm8gbm9kZVxuIikpOw0KIAlyZW1vdmVf cHJvY19lbnRyeSgiZnMvIiBOTlBGU19QUk9DX0RJUiwgTlVMTCk7DQpAQCAt ODE3LDcgKzg5Myw5IEBAIHN0YXRpYyBpbnQgbm5wZnNfaW5pdF9wcm9jZnMo dm9pZCkNCiAjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMiw2LDMwKQ0KICAgICBlbnRyeS0+b3duZXIgPSBUSElTX01PRFVMRTsN CiAjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxMCwwKQ0KICAgICBlbnRyeS0+cHJvY19mb3BzID0gJm5ucGZz X3Byb2Nmc19mb3BzOw0KKyNlbmRpZg0KIA0KICNpZmRlZiBTWVNDQUxMQ09N UEFUDQogICAgIGlmIChyZWdpc3Rlcl9pb2N0bDMyX2NvbnZlcnNpb24oQVJM QV9WSU9DX1NZU0NBTEwzMiwgbm5wZnNfcHJvY2ZzX2lvY3RsMzIpKSB7DQpk aWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLWN2cy9ubnBmcy9saW51eC9u bnBmc19zeXNjYWxscy1sb3NzYWdlLmMgYXJsYS1mb3ItbGludXgtMy4xOC9u bnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMNCi0tLSBhcmxh LWN2cy9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMJMjAx MC0wOC0wOCAyMjo0MzowNS4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZv ci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLWxvc3Nh Z2UuYwkyMDE2LTAxLTEzIDIxOjUxOjQ5LjY4MjQ1NzIxMyArMDEwMA0KQEAg LTUwLDggKzUwLDE3IEBADQogUkNTSUQoIiRJZDogbm5wZnNfc3lzY2FsbHMt bG9zc2FnZS5jLHYgMS4xOSAyMDEwLzA4LzA4IDIwOjQzOjA1IHRvbCBFeHAg JCIpOw0KICNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0g S0VSTkVMX1ZFUlNJT04oMyw3LDApDQorLyogdGhlIG1ldGhvZCB0byByZWFk ICdsb3dlcl9ib3VuZCcgZG9lcyBub3Qgd29yayBvbiBrZXJuZWwgMy43IGFu ZCBsYXRlciAqLw0KKyN1bmRlZiBTWVNDQUxMSEFDSw0KKyNlbmRpZg0KKw0K ICNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPg0KKyNpZmRlZiBTWVNDQUxM SEFDSw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDcsMCkNCiBzdGF0aWMgdm9pZCAqbG93ZXJfYm91bmQgPSAma2VybmVs X3RocmVhZDsNCisjZW5kaWYNCisjZW5kaWYNCiANCiB2b2lkICogX19hdHRy aWJ1dGVfXygod2VhaykpIHN5c19jYWxsX3RhYmxlKHZvaWQpOw0KIG5ucGZz X3N5c19jYWxsX2Z1bmN0aW9uICpubnBmc19zeXNfY2FsbF90YWJsZSA9DQpA QCAtNjYsNiArNzUsOCBAQCBjb25zdCBjaGFyICogX19hdHRyaWJ1dGVfXygo d2VhaykpDQogI2lmZGVmIF9feDg2XzY0X18NCiBleHRlcm4gcndsb2NrX3Qg dGFza2xpc3RfbG9jayBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSk7DQogI2VuZGlm DQorDQorI2lmZGVmIFNZU0NBTExIQUNLDQogc3RhdGljIHZvaWQgKioNCiBn ZXRfc3RhcnRfYWRkcih2b2lkKSB7DQogI2lmZGVmIF9feDg2XzY0X18NCkBA IC03NCw2ICs4NSw3IEBAIGdldF9zdGFydF9hZGRyKHZvaWQpIHsNCiAgICAg cmV0dXJuICh2b2lkICoqKSZtdXRleF9sb2NrOw0KICNlbmRpZg0KIH0NCisj ZW5kaWYNCiANCiBzdGF0aWMgaW5saW5lIGludCANCiBrYWxsc3ltX2lzX2Vx dWFsKHVuc2lnbmVkIGxvbmcgYWRkciwgY29uc3QgY2hhciAqbmFtZSkNCkBA IC0xNDIsNiArMTU0LDggQEAgdmVyaWZ5KHZvaWQgKipwKSB7DQogICAgIHJl dHVybiAxOw0KIH0NCiANCisjaWZkZWYgU1lTQ0FMTEhBQ0sNCisNCiBzdGF0 aWMgaW5saW5lIGludCBsb29rc19nb29kKHZvaWQgKipwKQ0KIHsNCiAgICAg aWYgKCpwIDw9ICh2b2lkKilsb3dlcl9ib3VuZCB8fCAqcCA+PSAodm9pZCop cCkNCkBAIC0xOTEsMyArMjA1LDUgQEAgbm5wZnNfZml4dXBfc3lzY2FsbF9s b3NzYWdlKHZvaWQpDQogDQogICAgIHJldHVybiAwOw0KIH0NCisNCisjZW5k aWYNCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtY3ZzL25ucGZzL2xp bnV4L25ucGZzX3Zmc29wcy5jIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMv bGludXgvbm5wZnNfdmZzb3BzLmMNCi0tLSBhcmxhLWN2cy9ubnBmcy9saW51 eC9ubnBmc192ZnNvcHMuYwkyMDEwLTA4LTA4IDIyOjQzOjA2LjAwMDAwMDAw MCArMDIwMA0KKysrIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgv bm5wZnNfdmZzb3BzLmMJMjAxNi0wMS0xMyAyMjo1NDo1NS4yMjc2ODU0MzIg KzAxMDANCkBAIC01MCw3ICs1MCw5IEBAIFJDU0lEKCIkSWQ6IG5ucGZzX3Zm c29wcy5jLHYgMS4xMTEgMjAxMC8NCiBzdHJ1Y3Qgbm5wZnMgbm5wZnNbTk5O UEZTXTsNCiANCiBzdGF0aWMgdm9pZCBubnBmc19wdXRfc3VwZXIoc3RydWN0 IHN1cGVyX2Jsb2NrICpzYik7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyB2b2lkIG5ucGZzX3dy aXRlX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqIHNiKTsNCisjZW5kaWYN CiANCiBzdGF0aWMgaW50IG5ucGZzX3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpk ZW50cnksIHN0cnVjdCBrc3RhdGZzICpidWYpOw0KIA0KQEAgLTU5LDcgKzYx LDkgQEAgc3RhdGljIHN0cnVjdCBzdXBlcl9vcGVyYXRpb25zIG5ucGZzX3Nv cA0KICAgICBkZXN0cm95X2lub2RlCTogbm5wZnNfbm9kZV9mcmVlLA0KICAg ICBkcm9wX2lub2RlCQk6IGdlbmVyaWNfZGVsZXRlX2lub2RlLA0KICAgICBw dXRfc3VwZXIJCTogbm5wZnNfcHV0X3N1cGVyLA0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgd3JpdGVf c3VwZXIJCTogbm5wZnNfd3JpdGVfc3VwZXIsDQorI2VuZGlmDQogICAgIHN0 YXRmcwkJOiBubnBmc19zdGF0ZnMsDQogfTsNCiANCkBAIC04Niw3ICs5MCwx MSBAQCBubnBmc19mZXRjaF9yb290KHN0cnVjdCBpbm9kZSAqaSkNCiAJICog cm9vdCdzIHByaXZpbGlnZXMgKHVzdWFsbHkgbm9uZSwgYW5kIG5vbmUgaXMg bmVlZGVkKS4NCiAJICovDQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogCW1zZy5jcmVkLnVpZCA9IDA7 DQorI2Vsc2UNCisJbXNnLmNyZWQudWlkID0gS1VJRFRfSU5JVCgwKTsNCisj ZW5kaWYNCiAJbXNnLmNyZWQucGFnID0gMDsNCiAJDQogCWVycm9yID0gbm5w ZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1z ZykpOw0KQEAgLTEyMSw4ICsxMjksMTMgQEAgbWFrZV9yb290X2lub2RlKHN0 cnVjdCBubnBmcyAqbm5wZnNwKQ0KICAgICBYQV9TRVRfTU9ERSgmbm9kZS5h dHRyLCBTX0lGRElSIHwgMDc3Nyk7DQogICAgIFhBX1NFVF9OTElOSygmbm9k ZS5hdHRyLCAxMDApOw0KICAgICBYQV9TRVRfU0laRSgmbm9kZS5hdHRyLCAw KTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o MywxNCwwKQ0KICAgICBYQV9TRVRfVUlEKCZub2RlLmF0dHIsIDApOw0KICAg ICBYQV9TRVRfR0lEKCZub2RlLmF0dHIsIDApOw0KKyNlbHNlDQorICAgIFhB X1NFVF9VSUQoJm5vZGUuYXR0ciwgS1VJRFRfSU5JVCgwKSk7DQorICAgIFhB X1NFVF9HSUQoJm5vZGUuYXR0ciwgS0dJRFRfSU5JVCgwKSk7DQorI2VuZGlm DQogICAgIFhBX1NFVF9BVElNRSgmbm9kZS5hdHRyLCAwKTsNCiAgICAgWEFf U0VUX01USU1FKCZub2RlLmF0dHIsIDApOw0KICAgICBYQV9TRVRfQ1RJTUUo Jm5vZGUuYXR0ciwgMCk7DQpAQCAtMTUxLDcgKzE2NCwxMSBAQCBtYWtlX3Jv b3QgKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpDQogICAgIG5ucGZzLT5yb290 ID0gaW5vZGU7DQogDQogICAgIC8qIFhYWCBlcnJvciBoYW5kbGluZyAqLw0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDQs MCkNCiAgICAgZHAgPSBkX2FsbG9jX3Jvb3QoaW5vZGUpOw0KKyNlbHNlDQor ICAgIGRwID0gZF9tYWtlX3Jvb3QoaW5vZGUpOw0KKyNlbmRpZg0KICAgICBu bnBmc19kX2luaXQoZHApOw0KICAgICBzYi0+c19yb290ID0gZHA7DQogICAg IHJldHVybiAwOw0KQEAgLTE3Nyw3ICsxOTQsMTEgQEAgbm5wZnNfcmVhZF9z dXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICogcw0KICAgICBpZiAoZGF0YSAh PSBOVUxMKSB7DQogCXN0cnVjdCBuYW1laWRhdGEgbmQ7DQogCQ0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQog CWVycm9yID0gcGF0aF9sb29rdXAoZGF0YSwgMCwgJm5kKTsNCisjZWxzZQ0K KwllcnJvciA9IGtlcm5fcGF0aChkYXRhLCAwLCAmbmQucGF0aCk7DQorI2Vu ZGlmDQogCWlmIChlcnJvcikNCiAJICAgIGRkZXYgPSBFUlJfUFRSKGVycm9y KTsNCiAJZWxzZQ0KQEAgLTIyNSw2ICsyNDYsNyBAQCBubnBmc19maWxsX3N1 cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiDQogICAgIHJldHVybiAwOw0K IH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMiw2LDM5KQ0KIGludA0KIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9z eXN0ZW1fdHlwZSAqZnNfdHlwZSwNCiAJICAgICBpbnQgZmxhZ3MsIGNvbnN0 IGNoYXIgKmRldl9uYW1lLA0KQEAgLTIzMiwxMiArMjU0LDIzIEBAIG5ucGZz X2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnMNCiB7DQogICAg IHJldHVybiBnZXRfc2Jfbm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5u cGZzX2ZpbGxfc3VwZXIsIG1udCk7DQogfQ0KKyNlbHNlDQorc3RydWN0IGRl bnRyeSoNCitubnBmc19tb3VudChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAq ZnNfdHlwZSwNCisJICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9u YW1lLA0KKwkgICAgIHZvaWQgKmRhdGEpIA0KK3sNCisgICAgcmV0dXJuIG1v dW50X25vZGV2KGZzX3R5cGUsIGZsYWdzLCBkYXRhLCBubnBmc19maWxsX3N1 cGVyKTsNCit9DQorI2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyB2b2lkDQogbm5w ZnNfd3JpdGVfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICogc2IpDQogew0K ICAgICBzYi0+c19kaXJ0ID0gMDsNCiB9DQorI2VuZGlmDQogDQogLyoNCiAg KiBYWFggaXMgdGhpcyBnb29kPyANCg== ---276651502-700296685-1452731421=:24061 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-700296685-1452731421=:24061--