Re: PATCH: Arla 0.90 on Linux 2.6.34 to 3.18
Bo Branten <[email protected]> Wed, 13 Jan 2016 03:00:05 +0100 (CET)
| Newsgroups | gmane.comp.file-systems.arla.general |
|---|---|
| Message-ID | <[email protected]> |
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---276651502-1475872382-1452650405=:13035 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII PATCH: Arla 0.90 on Linux 2.6.34 to 3.18 ---276651502-1475872382-1452650405=:13035 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-arla-0.90-for-linux-3.18 Content-Transfer-Encoding: BASE64 Content-ID: <[email protected]> Content-Description: Content-Disposition: attachment; filename=patch-arla-0.90-for-linux-3.18 ZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4 L25ucGZzL25ubnBmcy5oIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGlu dXgvbm5wZnMvbm5ucGZzLmgNCi0tLSBhcmxhLTAuOTAvbm5wZnMvbGludXgv bm5wZnMvbm5ucGZzLmgJMjAwMi0wOS0wNyAxMjo0NzoxNy4wMDAwMDAwMDAg KzAyMDANCisrKyBhcmxhLWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25u cGZzL25ubnBmcy5oCTIwMDItMDktMDcgMTI6NDc6MTcuMDAwMDAwMDAwICsw MjAwDQpAQCAtMSw0ICsxLDQgQEANCiAvKiAkSWQ6IG5ubnBmcy5oLHYgMS4y IDIwMDIvMDkvMDcgMTA6NDc6MTcgbGhhIEV4cCAkICovDQotLyogJFNvdXJj ZTogL2Fmcy9zdGFja2VuLmt0aC5zZS9zcmMvU291cmNlUmVwb3NpdG9yeS9h cmxhL25ucGZzL2xpbnV4L25ucGZzL25ubnBmcy5oLHYgJCAqLw0KKy8qICRT b3VyY2U6IC9Vc2Vycy9iby90bXAvQXJsYVNvdXJjZVJlcG9zaXRvcnkvYXJs YS9ubnBmcy9saW51eC9ubnBmcy9ubm5wZnMuaCx2ICQgKi8NCiANCiAjZGVm aW5lIE5OTlBGUyAyDQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLTAu OTAvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaCBhcmxhLWZvci1saW51 eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmgNCi0tLSBhcmxh LTAuOTAvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaAkyMDA2LTEwLTI0 IDE4OjMzOjQ4LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtZm9yLWxpbnV4 LTMuMTgvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaAkyMDE2LTAxLTEy IDE5OjA2OjM0LjUxODAyNTYwOSArMDEwMA0KQEAgLTg0LDggKzg0LDEzIEBA IHN0cnVjdCBubnBmcyB7DQogICAgIHN0cnVjdCB2ZnNtb3VudCAqY2FjaGVy b290OyAvKiBzaW1wbGlmeSBvcGVuIG9mIGNhY2hlIGJsb2NrcyAqLw0KICAg ICBzdHJ1Y3QgZGVudHJ5ICpjYWNoZWRpcjsNCiANCisjaWYgKExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkpDQogICAgIHVp ZF90IHVpZDsgLyoga2VlcCB0cmFjayBvZiBkYWVtb24ncyBpZGVudGl0eSAq Lw0KICAgICBnaWRfdCBnaWQ7DQorI2Vsc2UNCisgICAga3VpZF90IHVpZDsg Lyoga2VlcCB0cmFjayBvZiBkYWVtb24ncyBpZGVudGl0eSAqLw0KKyAgICBr Z2lkX3QgZ2lkOw0KKyNlbmRpZg0KIA0KICAgICBzdHJ1Y3Qgew0KIAlpbnQg cmVjdXJzZTsNCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtMC45MC9u bnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2NsLmggYXJsYS1mb3ItbGludXgt My4xOC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2NsLmgNCi0tLSBhcmxh LTAuOTAvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbG9jbC5oCTIwMDctMDEt MDggMTQ6NTI6NDkuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS1mb3ItbGlu dXgtMy4xOC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2NsLmgJMjAxNi0w MS0xMSAyMToxNzo0Mi44NzgzMjYxMjQgKzAxMDANCkBAIC0zNCw3ICszNCw3 IEBADQogICogU1VDSCBEQU1BR0UuDQogICovDQogDQotLyogJElkOiBubnBm c19sb2NsLmgsdiAxLjc3IDIwMDcvMDEvMDggMTM6NTI6NDkgdG9sIEV4cCAk ICovDQorLyogJElkOiBubnBmc19sb2NsLmgsdiAxLjc4IDIwMTAvMDgvMDgg MjA6NDM6MDYgdG9sIEV4cCAkICovDQogDQogI2lmZGVmIEhBVkVfQ09ORklH X0gNCiAjaW5jbHVkZSA8Y29uZmlnLmg+DQpAQCAtNTEsNyArNTEsOSBAQA0K ICNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+DQogI2luY2x1ZGUgPGxpbnV4L3N0 cmluZy5oPg0KICNpbmNsdWRlIDxsaW51eC9uYW1laS5oPg0KKyNpZiAoTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KSkNCiAj aW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4NCisjZW5kaWYNCiAjaW5jbHVk ZSA8bGludXgvd2FpdC5oPg0KIA0KIC8qDQpAQCAtMTM4LDE1ICsxNDAsMTYg QEAgdHlwZWRlZiBfX3UzMiAgdWludDMyX3Q7DQogaW50DQogbm5wZnNfZmV0 Y2hfcm9vdChzdHJ1Y3QgaW5vZGUgKmkpOw0KIA0KLSNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0KKyNpZiAoTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KSkNCiBp bnQNCiBubnBmc19nZXRfc2Ioc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZz X3R5cGUsDQogCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFt ZSwNCiAJICAgICB2b2lkICpkYXRhLCBzdHJ1Y3QgdmZzbW91bnQgKm1udCk7 DQogI2Vsc2UNCi1zdHJ1Y3Qgc3VwZXJfYmxvY2sgKg0KLW5ucGZzX2dldF9z YiAoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsDQotCSAgICAg IGludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsIHZvaWQgKmRhdGEp Ow0KK3N0cnVjdCBkZW50cnkqDQorbm5wZnNfbW91bnQoc3RydWN0IGZpbGVf c3lzdGVtX3R5cGUgKmZzX3R5cGUsDQorCSAgICAgaW50IGZsYWdzLCBjb25z dCBjaGFyICpkZXZfbmFtZSwNCisJICAgICB2b2lkICpkYXRhKTsNCiAjZW5k aWYNCiANCiBleHRlcm4gc3RydWN0IGRlbnRyeV9vcGVyYXRpb25zIG5ucGZz X2RlbnRyeV9vcGVyYXRpb25zOw0KQEAgLTIwMCwxNiArMjAzLDI3IEBAIG5u cGZzX2l3cml0ZWNvdW50IChzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KICAqIEhl bHAgZnVuY3Rpb24gdG8gcmVhZCB0aGUgZGVudHJ5LT5kX2NvdW50IGEgcG9y dGFibGUgd2F5DQogICovDQogDQorLyojaWYgKExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkpKi8NCiBzdGF0aWMgaW5saW5l IGludA0KIG5ucGZzX2Rjb3VudCAoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVu dHJ5KQ0KKy8qI2Vsc2UNCitzdGF0aWMgaW5saW5lIGludA0KK25ucGZzX2Rj b3VudCAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZiovDQogew0K KyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2 LDM4KSkNCiAgICAgcmV0dXJuIGF0b21pY19yZWFkKCZkZW50cnktPmRfY291 bnQpOw0KKyNlbHNlDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDExLDApKQ0KKyAgICByZXR1cm4gYXRvbWljX3JlYWQo KGNvbnN0IGF0b21pY190KikmZGVudHJ5LT5kX2NvdW50KTsNCisjZWxzZQ0K KyAgICByZXR1cm4gZF9jb3VudChkZW50cnkpOzsNCisjZW5kaWYNCisjZW5k aWYNCiB9DQogDQogZXh0ZXJuIA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUg Pj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0KIGNvbnN0DQotI2VuZGlmDQog c3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBubnBmc19hb3BzOw0K IA0KICNpZm5kZWYgbGlzdF9mb3JfZWFjaA0KQEAgLTIzNyw3ICsyNTEsMTIg QEAgbm5wZnNfZml4dXBfc3lzY2FsbF9sb3NzYWdlKHZvaWQpOw0KICNlbmRp Zg0KIA0KICNkZWZpbmUgbm5wZnNfZGV2X3QgZGV2X3QNCisNCisjaWYgKExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkpDQog I2RlZmluZSBubnBmc19kX2VudHJ5X3VuaGFzaGVkKGQpIGhsaXN0X3VuaGFz aGVkKGQpDQorI2Vsc2UNCisjZGVmaW5lIG5ucGZzX2RfZW50cnlfdW5oYXNo ZWQoZCkgaGxpc3RfYmxfdW5oYXNoZWQoZCkNCisjZW5kaWYNCiANCiAjZGVm aW5lIE5OUEZTX05PT1AgICAgICB3aGlsZSgwKXt9DQogDQpkaWZmIC11cHJO IC1Ybm9kaWZmLnR4dCBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnMvbm5w ZnNfbm9kZS5oIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5w ZnMvbm5wZnNfbm9kZS5oDQotLS0gYXJsYS0wLjkwL25ucGZzL2xpbnV4L25u cGZzL25ucGZzX25vZGUuaAkyMDA2LTEyLTExIDE3OjI5OjM5LjAwMDAwMDAw MCArMDEwMA0KKysrIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgv bm5wZnMvbm5wZnNfbm9kZS5oCTIwMTAtMDgtMDggMjI6NDM6MDcuMDAwMDAw MDAwICswMjAwDQpAQCAtNTQsNyArNTQsNyBAQCBleHRlcm4gdWludDMyX3Qg bm5wZnNfYmxvY2tzaXplYml0czsNCiAgKiBmbGFncy4NCiAgKi8NCiANCi0j ZGVmaW5lIE5OUEZTX05PREVfSVBVVAkweDAwMDEwMDAwICAgLyogbm9kZSBp cyBpbiBpcHV0KCksIGF2b2lkIGRlYWRsb2NrICovDQorI2RlZmluZSBOTlBG U19OT0RFX0lQVVQJMHgwMDAxMDAwMCAgIC8qIG5vZGUgaXMgaW4gaXB1dCgp LCBhdm9pZCBkZWFkbG9jay4gQ2FuIGJlIHJlbW92ZWQ/ICovDQogDQogI2Rl ZmluZSBYTl9IQVNIU0laRSAxMDA5DQogI2RlZmluZSBYTl9DTEVBTlVQX0lU RVJTIDEyOQ0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkwL25u cGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jIGFybGEtZm9yLWxpbnV4LTMuMTgv bm5wZnMvbGludXgvbm5wZnNfYmxvY2tzLmMNCi0tLSBhcmxhLTAuOTAvbm5w ZnMvbGludXgvbm5wZnNfYmxvY2tzLmMJMjAwNy0wMS0wOCAxNDoyNDoyNC4w MDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLWZvci1saW51eC0zLjE4L25ucGZz L2xpbnV4L25ucGZzX2Jsb2Nrcy5jCTIwMTYtMDEtMTMgMDE6MTk6MTguNTE0 NzcwMTQzICswMTAwDQpAQCAtMzQsNyArMzQsNyBAQA0KICAqIFBPU1NJQklM SVRZIE9GIFNVQ0ggREFNQUdFLg0KICAqLw0KIA0KLS8qICRJZDogbm5wZnNf YmxvY2tzLmMsdiAxLjMgMjAwNy8wMS8wOCAxMzoyNDoyNCB0b2wgRXhwICQg Ki8NCisvKiAkSWQ6IG5ucGZzX2Jsb2Nrcy5jLHYgMS42IDIwMTAvMDgvMDgg MjA6NDM6MDQgdG9sIEV4cCAkICovDQogDQogI2luY2x1ZGUgPG5ucGZzL25u cGZzX2xvY2wuaD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfZnMuaD4NCkBA IC00Myw2ICs0MywzNiBAQA0KICNpbmNsdWRlIDxsaW51eC9tb3VudC5oPg0K ICNpbmNsdWRlIDxsaW51eC9tbS5oPg0KIA0KKyNpZiAoTElOVVhfVkVSU0lP Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkpDQorLyogVE9ETzog aW1wbGVtZW50IGEgcmVwbGFjZW1lbnQgZm9yIHZmc19wYXRoX2xvb2t1cCBv biBrZXJuZWxzIGxhdGVyIHRoYW4gMy4xMiAqLw0KKy8qKg0KKyAqIHZmc19w YXRoX2xvb2t1cCAtIGxvb2t1cCBhIGZpbGUgcGF0aCByZWxhdGl2ZSB0byBh IGRlbnRyeS12ZnNtb3VudCBwYWlyDQorICogQGRlbnRyeTogIHBvaW50ZXIg dG8gZGVudHJ5IG9mIHRoZSBiYXNlIGRpcmVjdG9yeQ0KKyAqIEBtbnQ6IHBv aW50ZXIgdG8gdmZzIG1vdW50IG9mIHRoZSBiYXNlIGRpcmVjdG9yeQ0KKyAq IEBuYW1lOiBwb2ludGVyIHRvIGZpbGUgbmFtZQ0KKyAqIEBmbGFnczogbG9v a3VwIGZsYWdzDQorICogQHBhdGg6IHBvaW50ZXIgdG8gc3RydWN0IHBhdGgg dG8gZmlsbA0KKyAqLw0KK2ludCB2ZnNfcGF0aF9sb29rdXAoc3RydWN0IGRl bnRyeSAqZGVudHJ5LCBzdHJ1Y3QgdmZzbW91bnQgKm1udCwNCisJCSAgICBj b25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBpbnQgZmxhZ3MsDQorCQkgICAg c3RydWN0IHBhdGggKnBhdGgpDQorew0KKyNpZiAwDQorCXN0cnVjdCBuYW1l aWRhdGEgbmQ7DQorCWludCBlcnI7DQorCW5kLnJvb3QuZGVudHJ5ID0gZGVu dHJ5Ow0KKwluZC5yb290Lm1udCA9IG1udDsNCisJQlVHX09OKGZsYWdzICYg TE9PS1VQX1BBUkVOVCk7DQorCS8qIHRoZSBmaXJzdCBhcmd1bWVudCBvZiBk b19wYXRoX2xvb2t1cCgpIGlzIGlnbm9yZWQgd2l0aCBMT09LVVBfUk9PVCAq Lw0KKwllcnIgPSBkb19wYXRoX2xvb2t1cChBVF9GRENXRCwgbmFtZSwgZmxh Z3MgfCBMT09LVVBfUk9PVCwgJm5kKTsNCisJaWYgKCFlcnIpDQorCQkqcGF0 aCA9IG5kLnBhdGg7DQorCXJldHVybiBlcnI7DQorI2VuZGlmDQorCXJldHVy biAtMTsNCit9DQorI2VuZGlmDQorDQogLyoNCiAgKiByZXR1cm4gdHJ1ZSBp ZiBibG9jayBpcyBpbiBjYWNoZQ0KICAqLw0KQEAgLTI5MCw3ICszMjAsMTMg QEAgbm5wZnNfYmxvY2tfZXh0ZW5kKHN0cnVjdCBubnBmc19ub2RlICpubw0K ICAgICBiYWNrbm9kZSA9IGJhY2tmaWxlLT5mX21hcHBpbmctPmhvc3Q7DQog DQogICAgIG11dGV4X2xvY2soJmJhY2tub2RlLT5pX211dGV4KTsNCisjaWYg KExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOCwwKSkN CiAgICAgcmV0ID0gdm10cnVuY2F0ZShiYWNrbm9kZSwgbm5wZnNfYmxvY2tz aXplKTsNCisjZWxzZQ0KKyAgICBpZighaW5vZGVfbmV3c2l6ZV9vayhiYWNr bm9kZSwgbm5wZnNfYmxvY2tzaXplKSkgew0KKyAgICAgICAgdHJ1bmNhdGVf c2V0c2l6ZShiYWNrbm9kZSwgbm5wZnNfYmxvY2tzaXplKTsNCisgICAgfQ0K KyNlbmRpZg0KICAgICBtdXRleF91bmxvY2soJmJhY2tub2RlLT5pX211dGV4 KTsNCiAgICAgDQogICAgIGZpbHBfY2xvc2UoYmFja2ZpbGUsIE5VTEwpOw0K QEAgLTMxOSw5ICszNTUsMjEgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qg bm5wZnNfbm9kZSAqbm9kZQ0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0g WE5PREVfVE9fVk5PREUobm9kZSk7DQogICAgIGludCBmbGFncyA9IE9fTEFS R0VGSUxFIHwgZmxhZzsNCiAgICAgc3RydWN0IG5hbWVpZGF0YSBuZDsNCisj aWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQs MCkpDQogICAgIHVpZF90IHNhdmV1aWQ7DQogICAgIGdpZF90IHNhdmVnaWQ7 DQorI2Vsc2UNCisgICAga3VpZF90IHNhdmV1aWQ7DQorICAgIGtnaWRfdCBz YXZlZ2lkOw0KKyNlbmRpZg0KICAgICBpbnQgcmV0Ow0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KKyAgICBj b25zdCBzdHJ1Y3QgY3JlZCAqb2xkX2NyZWQ7DQorICAgIHN0cnVjdCBjcmVk ICpvdmVycmlkZV9jcmVkOw0KKyNlbmRpZg0KKw0KKyAgICAodm9pZClzYXZl dWlkOw0KKyAgICAodm9pZClzYXZlZ2lkOw0KIA0KICAgICBCVUdfT04oIW5u cGZzcCk7DQogICAgIEJVR19PTihmbGFncyAmIE9fQ1JFQVQgJiYgZmlsZSAh PSBOVUxMKTsNCkBAIC0zNDYsMjIgKzM5NCwzNCBAQCBubnBmc19ibG9ja19v cGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAgIEJVR19PTighbm5w ZnNwLT5jYWNoZWRpciB8fCAhbm5wZnNwLT5jYWNoZXJvb3QpOw0KICAgICAN CiAgICAgLyogdXNlIHRoZSBuZnNkIHRyaWNrIHRvIGdpdmUgdXMgYWNjZXNz ICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lP TigyLDYsMjgpDQogICAgIHNhdmV1aWQgPSBjdXJyZW50LT5mc3VpZDsNCiAg ICAgc2F2ZWdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0KICAgICBjdXJyZW50LT5m c3VpZCA9IG5ucGZzcC0+dWlkOw0KICAgICBjdXJyZW50LT5mc2dpZCA9IG5u cGZzcC0+Z2lkOw0KLQ0KLSAgICBuZC5kZW50cnkgPSBkZ2V0KG5ucGZzcC0+ Y2FjaGVkaXIpOw0KLSAgICBuZC5tbnQgPSBtbnRnZXQobm5wZnNwLT5jYWNo ZXJvb3QpOw0KLSAgICBuZC5sYXN0X3R5cGUgPSBMQVNUX05PUk07DQotICAg IG5kLmRlcHRoID0gMDsNCi0gICAgbmQuZmxhZ3MgPSAwOw0KLSAgICANCi0g ICAgaWYgKGZsYWdzICYgT19DUkVBVCkNCi0JbmQuZmxhZ3MgPSBMT09LVVBf UEFSRU5UOw0KLSAgICANCi0gICAgcmV0ID0gcGF0aF93YWxrKGNhY2hlbmFt ZSwgJm5kKTsNCi0gICAgaWYgKHJldCkgew0KKyNlbHNlDQorICAgIHNhdmV1 aWQgPSBjdXJyZW50X2ZzdWlkKCk7DQorICAgIHNhdmVnaWQgPSBjdXJyZW50 X2ZzZ2lkKCk7DQorICAgIG92ZXJyaWRlX2NyZWQgPSBwcmVwYXJlX2NyZWRz KCk7DQorICAgIGlmIChvdmVycmlkZV9jcmVkID09IE5VTEwpDQorICAgICAg ICByZXR1cm4gLUVOT01FTTsNCisgICAgb3ZlcnJpZGVfY3JlZC0+ZnN1aWQg PSBubnBmc3AtPnVpZDsNCisgICAgb3ZlcnJpZGVfY3JlZC0+ZnNnaWQgPSBu bnBmc3AtPmdpZDsNCisgICAgb2xkX2NyZWQgPSBvdmVycmlkZV9jcmVkcyhv dmVycmlkZV9jcmVkKTsNCisjZW5kaWYNCisNCisjaWYgKExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKSkNCisgICAgcmV0ID0g dmZzX3BhdGhfbG9va3VwKG5ucGZzcC0+Y2FjaGVkaXIsIG5ucGZzcC0+Y2Fj aGVyb290LA0KKwkJCSAgY2FjaGVuYW1lLA0KKwkJCSAgZmxhZ3MgJiBPX0NS RUFUID8gTE9PS1VQX1BBUkVOVCA6IDAsDQorCQkJICAmbmQpOw0KKyNlbHNl DQorICAgIHJldCA9IHZmc19wYXRoX2xvb2t1cChubnBmc3AtPmNhY2hlZGly LCBubnBmc3AtPmNhY2hlcm9vdCwNCisJCQkgIGNhY2hlbmFtZSwNCisJCQkg IGZsYWdzICYgT19DUkVBVCA/IExPT0tVUF9QQVJFTlQgOiAwLA0KKwkJCSAg Jm5kLnBhdGgpOw0KKyNlbmRpZg0KKyAgICAgaWYgKHJldCkgew0KIAl1aW50 MzJfdCBubWFza3MgPSBub2RlLT5kYXRhLm5tYXNrczsNCiAJdWludDMyX3Qg bWFzazsNCiANCkBAIC0zODcsMTYgKzQ0NywyNiBAQCBubnBmc19ibG9ja19v cGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAgIA0KICAgICBpZiAo ZmxhZ3MgJiBPX0NSRUFUKSB7DQogCS8qIFhYWCBtb2RlIGJpdHMgb24gY3Jl YXRlIC0tIFNfSVJVU1J8U19JV1VTUiAqLw0KKyNpZiAoTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxLDApKQ0KIAlzdHJ1Y3QgZGVu dHJ5ICpkZW50cnkgPSBsb29rdXBfY3JlYXRlKCZuZCwgMCk7CQ0KKyNlbHNl DQorCS8qIFRPRE86IGNoZWNrIHRoZSBjYWxsIHRvIGtlcm5fcGF0aF9jcmVh dGUoKSwgaXMgdGhlIHNlY29uZCBhcmd1bWVudCBvcHRpb25hbD8gKi8NCisJ c3RydWN0IGRlbnRyeSAqZGVudHJ5ID0ga2Vybl9wYXRoX2NyZWF0ZShBVF9G RENXRCwgTlVMTCwgJm5kLnBhdGgsIDApOwkNCisjZW5kaWYNCiAJaWYgKElT X0VSUihkZW50cnkpKSB7DQogCSAgICByZXQgPSBQVFJfRVJSKGRlbnRyeSk7 DQogCX0gZWxzZSB7DQotCSAgICByZXQgPSB2ZnNfY3JlYXRlKG5kLmRlbnRy eS0+ZF9pbm9kZSwgZGVudHJ5LCBTX0lSVVNSfFNfSVdVU1IsICZuZCk7DQor I2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs MCkpDQorCSAgICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5k X2lub2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwgJm5kKTsNCisjZWxz ZQ0KKwkgICAgLyogVE9ETzogc2hvdWxkIHRoZSBsYXN0IGFyZ3VtZW50IHRv IHZmc19jcmVhdGU6IGJvb2wgd2FudF9leGNsLCBiZSAwIG9yIDE/ICovDQor CSAgICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5kX2lub2Rl LCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwgMCk7DQorI2VuZGlmDQogCSAg ICBkcHV0KGRlbnRyeSk7DQogCX0NCiANCi0JbXV0ZXhfdW5sb2NrKCZuZC5k ZW50cnktPmRfaW5vZGUtPmlfbXV0ZXgpOw0KLQlwYXRoX3JlbGVhc2UoJm5k KTsNCisJbXV0ZXhfdW5sb2NrKCZuZC5wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+ aV9tdXRleCk7DQorCXBhdGhfcHV0KCZuZC5wYXRoKTsNCiANCiAJaWYgKHJl dCkgew0KIAkgICAgcHJpbnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBjcmVh dGUgZmFpbGVkOiAlZFxuIiwgY2FjaGVuYW1lLCAtcmV0KTsNCkBAIC00MTAs MTIgKzQ4MCwyMSBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19u b2RlICpub2RlDQogCSAgICByZXQgPSBubnBmc19ibG9ja19leHRlbmQobm9k ZSwgb2Zmc2V0KTsNCiAJfQ0KICAgICB9IGVsc2Ugew0KLQlzdHJ1Y3QgZmls ZSAqZiA9IGRlbnRyeV9vcGVuKG5kLmRlbnRyeSwgbmQubW50LCBmbGFncyk7 DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy LDYsMjkpKQ0KKwlzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKG5kLnBh dGguZGVudHJ5LCBuZC5wYXRoLm1udCwgZmxhZ3MpOw0KKyNlbHNlDQorI2lm IChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkp DQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKG5kLnBh dGguZGVudHJ5LCBuZC5wYXRoLm1udCwgZmxhZ3MsIGN1cnJlbnRfY3JlZCgp KTsNCisjZWxzZQ0KKwlzdHJ1Y3QgcGF0aCBwYXRoID0geyAubW50ID0gbmQu cGF0aC5tbnQsIC5kZW50cnkgPSBuZC5wYXRoLmRlbnRyeSB9Ow0KKyAgICAg ICAgc3RydWN0IGZpbGUgKmYgPSBkZW50cnlfb3BlbigmcGF0aCwgZmxhZ3Ms IGN1cnJlbnRfY3JlZCgpKTsNCisjZW5kaWYNCisjZW5kaWYNCiAJaWYgKElT X0VSUihmKSkgew0KIAkgICAgcmV0ID0gUFRSX0VSUihmKTsNCiAJICAgIHBy aW50aygibm5wZnNfYmxvY2tfb3Blbiglcykgb3BlbiBmYWlsZWQ6ICVkXG4i LCBjYWNoZW5hbWUsIC1yZXQpOw0KIAkgICAgbm5wZnNfZGVidWdfb29wcygp Ow0KLQkgICAgcGF0aF9yZWxlYXNlKCZuZCk7DQorCSAgICBwYXRoX3B1dCgm bmQucGF0aCk7DQogCX0gZWxzZSB7DQogCSAgICAqZmlsZSA9IGY7DQogCX0N CkBAIC00MjQsOCArNTAzLDEzIEBAIG5ucGZzX2Jsb2NrX29wZW4oc3RydWN0 IG5ucGZzX25vZGUgKm5vZGUNCiAgICAgLyogcGF0aF9yZWxlYXNlKCkgaXMg dXN1YWxseSBoYW5kbGVkIG9uIGNsb3NlICovDQogDQogIG91dDoNCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkN CiAgICAgY3VycmVudC0+ZnN1aWQgPSBzYXZldWlkOw0KICAgICBjdXJyZW50 LT5mc2dpZCA9IHNhdmVnaWQ7DQorI2Vsc2UNCisgICAgcmV2ZXJ0X2NyZWRz KG9sZF9jcmVkKTsNCisgICAgcHV0X2NyZWQob3ZlcnJpZGVfY3JlZCk7DQor I2VuZGlmDQogDQogICAgIHJldHVybiByZXQ7DQogfQ0KZGlmZiAtdXByTiAt WG5vZGlmZi50eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2NvbW1v bi5jIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5wZnNfY29t bW9uLmMNCi0tLSBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfY29tbW9u LmMJMjAwNi0xMi0xMSAxNzozMTo0Ni4wMDAwMDAwMDAgKzAxMDANCisrKyBh cmxhLWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5j CTIwMTYtMDEtMTEgMjA6NDc6MjIuODc0NDA2MTc0ICswMTAwDQpAQCAtMTEy LDEwICsxMTIsMTcgQEAgbm5wZnNfcHJpbnRfYWxpYXNlcyhjb25zdCBzdHJ1 Y3QgaW5vZGUgKg0KIHZvaWQNCiBubnBmc19wcmludF9hbGlhc2VzX3JlYWwo Y29uc3Qgc3RydWN0IGlub2RlICppbm9kZSkNCiB7DQorI2lmIChMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkpDQogICAgIHN0 cnVjdCBsaXN0X2hlYWQgKmFsaWFzOw0KKyNlbHNlDQorI2lmIChMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkpDQorICAgIHN0 cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisjZW5kaWYNCisjZW5kaWYNCiAg ICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0KICAgICBpbnQgYmFpbG91dCA9 IDEwMDsNCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsNiwwKSkNCiAgICAgYWxpYXMgPSBpbm9kZS0+aV9kZW50cnku bmV4dDsNCiAgICAgd2hpbGUgKGFsaWFzICE9ICZpbm9kZS0+aV9kZW50cnkp IHsNCiAJaWYgKC0tYmFpbG91dCA8IDApIHsNCkBAIC0xMzEsNiArMTM4LDI0 IEBAIG5ucGZzX3ByaW50X2FsaWFzZXNfcmVhbChjb25zdCBzdHJ1Y3QgaW4N CiAJfQ0KIAlhbGlhcyA9IGFsaWFzLT5uZXh0Ow0KICAgICB9DQorI2Vsc2UN CisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs OSwwKSkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCBhbGlh cywgJmlub2RlLT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbHNlDQorICAg IGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgJmlub2RlLT5pX2RlbnRy eSwgZF9hbGlhcykgew0KKyNlbmRpZg0KKwlpZiAoLS1iYWlsb3V0IDwgMCkg ew0KKwkgICAgcHJpbnRrKCIgLi4uIik7DQorCSAgICBicmVhazsNCisJfQ0K KwlpZiAoZGVudHJ5KSB7DQorCSAgICBwcmludGsoIiAlLipzKCVwKSIsIChp bnQpZGVudHJ5LT5kX25hbWUubGVuLA0KKwkJICAgZGVudHJ5LT5kX25hbWUu bmFtZSwgZGVudHJ5KTsNCisJICAgIGlmIChubnBmc19kX2VudHJ5X3VuaGFz aGVkKCZkZW50cnktPmRfaGFzaCkpDQorCQlwcmludGsoIih1bmhhc2hlZCki KTsNCisJfQ0KKyAgICB9DQorI2VuZGlmDQogICAgIHByaW50aygiXG4iKTsN CiB9DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLTAuOTAvbm5w ZnMvbGludXgvbm5wZnNfZGV2LmMgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBm cy9saW51eC9ubnBmc19kZXYuYw0KLS0tIGFybGEtMC45MC9ubnBmcy9saW51 eC9ubnBmc19kZXYuYwkyMDA2LTEwLTI0IDE4OjMzOjM2LjAwMDAwMDAwMCAr MDIwMA0KKysrIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5w ZnNfZGV2LmMJMjAxNi0wMS0xMyAwMTowMDo1MS40ODY3MzMyODggKzAxMDAN CkBAIC0zMDAsOCArMzAwLDEwIEBAIG5ucGZzX2ludmFsaWRhdGVfYWxsKHN0 cnVjdCBubnBmcyAqbm5wZnMNCiAgICAgTk5QRlNERUIoWERFQk5PREUsICgi ZnJlZV9hbGxfbm5wZnNfbm9kZXMgc3RhcnRpbmdcbiIpKTsNCiANCiAgICAg c2hyaW5rX2RjYWNoZV9zYihubnBmcy0+c2IpOw0KKyNpZiAoTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM3KSkNCiAgICAgaW52 YWxpZGF0ZV9pbm9kZXMobm5wZnMtPnNiKTsNCi0gICAgDQorI2VuZGlmDQor DQogICAgIE5OUEZTREVCKFhERUJOT0RFLCAoImZyZWVfYWxsX25ucGZzX25v ZGVzIGRvbmVcbiIpKTsNCiB9DQogDQpAQCAtNTA1LDEyICs1MDcsMjMgQEAg bm5wZnNfZGV2d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0DQogLyoN CiAgKiBOb3QgdXNlZC4NCiAgKi8NCisjaWYgKExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikpDQogc3RhdGljIGludA0KIG5u cGZzX2RldmlvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxl ICpmaWxlLA0KIAkgICAgICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQg bG9uZyBhcmcpDQorI2Vsc2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3VubG9j a2VkX2RldmlvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkgICAgICAgdW5z aWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQog ew0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Miw2LDM2KSkNCiAgICAgTk5QRlNERUIoWERFQkRFViwgKCJubnBmc19kZXZp b2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwNCiAJCSAgICAgICBpbm9k ZS0+aV9yZGV2LCBmaWxlLT5mX2ZsYWdzKSk7DQorI2Vsc2UNCisgICAgTk5Q RlNERUIoWERFQkRFViwgKCJubnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxh Z3MgPSAlZFxuIiwNCisJCSAgICAgICBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9k ZS0+aV9yZGV2LCBmaWxlLT5mX2ZsYWdzKSk7DQorI2VuZGlmDQogICAgIHJl dHVybiAtRUlOVkFMOw0KIH0NCiANCkBAIC05NTMsNyArOTY2LDExIEBAIHN0 cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZm9wcyA9IHsNCiAgICAgcmVh ZDoJCW5ucGZzX2RldnJlYWQsDQogICAgIHdyaXRlOgkJbm5wZnNfZGV2d3Jp dGUsDQogICAgIHBvbGw6CQlubnBmc19kZXZwb2xsLA0KKyNpZiAoTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KSkNCiAgICAg aW9jdGw6CQlubnBmc19kZXZpb2N0bCwNCisjZWxzZQ0KKyAgICB1bmxvY2tl ZF9pb2N0bDoJbm5wZnNfdW5sb2NrZWRfZGV2aW9jdGwsDQorI2VuZGlmDQog ICAgIHJlbGVhc2U6CQlubnBmc19kZXZjbG9zZSwNCiAgICAgb3BlbjoJCW5u cGZzX2Rldm9wZW4sDQogfTsNCkBAIC05NjgsOCArOTg1LDE2IEBAIG5ucGZz X2luaXRfZGV2aWNlKHZvaWQpDQogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJihu bnBmc1tpXS53YWl0X3F1ZXVlKSk7DQogCW5ucGZzX2luaXRxKCZubnBmc1tp XS5tZXNzYWdlcSk7DQogCW5ucGZzX2luaXRxKCZubnBmc1tpXS5zbGVlcHEp Ow0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Miw2LDM3KSkNCiAJaW5pdF9NVVRFWCgmbm5wZnNbaV0uaW5hY3RpdmVfc2Vt KTsNCisjZWxzZQ0KKwlzZW1hX2luaXQoJm5ucGZzW2ldLmluYWN0aXZlX3Nl bSwgMSk7DQorI2VuZGlmDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigyLDYsMzcpKQ0KIAlpbml0X01VVEVYKCZubnBmc1tp XS5jaGFubmVsX3NlbSk7DQorI2Vsc2UNCisJc2VtYV9pbml0KCZubnBmc1tp XS5jaGFubmVsX3NlbSwgMSk7DQorI2VuZGlmDQogCUlOSVRfTElTVF9IRUFE KCZubnBmc1tpXS5pbmFjdGl2ZV9saXN0KTsNCiAJbm5wZnNbaV0ubm5vZGVz ID0gMDsNCiAgICAgfQ0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS0w LjkwL25ucGZzL2xpbnV4L25ucGZzX2lub2Rlb3BzLmMgYXJsYS1mb3ItbGlu dXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19pbm9kZW9wcy5jDQotLS0gYXJs YS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2lub2Rlb3BzLmMJMjAwNi0xMi0x MSAxNzozNToyNi4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLWZvci1saW51 eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzX2lub2Rlb3BzLmMJMjAxNi0wMS0x MyAwMDo1MzoyMS43NTQ3MTgzMTYgKzAxMDANCkBAIC00MCw2ICs0MCw3IEBA DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2Rldi5oPg0KICNpbmNsdWRlIDxu bnBmcy9ubnBmc19kaXJlbnQuaD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNf c3lzY2FsbHMuaD4NCisjaW5jbHVkZSA8bGludXgvYWlvLmg+DQogI2luY2x1 ZGUgPGxpbnV4L2JpbmZtdHMuaD4NCiAjaW5jbHVkZSA8bGludXgvZmlsZS5o Pg0KICNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+DQpAQCAtNDgsMTcgKzQ5 LDI5IEBADQogI2luY2x1ZGUgPGFzbS9mY250bC5oPg0KIA0KICNpZmRlZiBS Q1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZzX2lub2Rlb3BzLmMsdiAxLjIyMyAy MDA2LzEyLzExIDE2OjM1OjI2IHRvbCBFeHAgJCIpOw0KK1JDU0lEKCIkSWQ6 IG5ucGZzX2lub2Rlb3BzLmMsdiAxLjIyNiAyMDEwLzA4LzA4IDIwOjQzOjA0 IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0KIHN0YXRpYyBpbnQNCiBubnBm c19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcpOw0K IA0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Myw2LDApKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19kX3JldmFsaWRhdGUoc3Ry dWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCk7DQot DQorI2Vsc2UNCiBzdGF0aWMgaW50DQorbm5wZnNfZF9yZXZhbGlkYXRlKHN0 cnVjdCBkZW50cnkgKmRlbnRyeSwgdW5zaWduZWQgaW50IGZsYWdzKTsNCisj ZW5kaWYNCisNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDIsNiwzOCkpDQorc3RhdGljDQoraW50DQogbm5wZnNfZF9kZWxl dGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KTsNCisjZWxzZQ0KK3N0YXRpYw0K K2ludA0KK25ucGZzX2RfZGVsZXRlKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRl bnRyeSk7DQorI2VuZGlmDQogDQogc3RhdGljIHZvaWQNCiBubnBmc19kX3Jl bGVhc2Uoc3RydWN0IGRlbnRyeSAqZGVudHJ5KTsNCkBAIC0xMDUsNyArMTE4 LDcgQEAgbm5wZnNfdm1hX2Nsb3NlIChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Qg Kg0KIH0NCiANCiBzdGF0aWMgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0 IG5ucGZzX2ZpbGVfdm1fb3BzID0gew0KLSAgICAubm9wYWdlCT0gZmlsZW1h cF9ub3BhZ2UsDQorICAgIC5mYXVsdCAgICAgID0gZmlsZW1hcF9mYXVsdCwN CiAgICAgLmNsb3NlCT0gbm5wZnNfdm1hX2Nsb3NlLA0KIH07DQogDQpAQCAt MTM0LDEyICsxNDcsMTQgQEAgbm5wZnNfcHJpbnRfcGF0aChzdHJ1Y3QgZGVu dHJ5ICpkZW50cnkpDQogICoNCiAgKi8NCiANCisjaWYgMA0KIHZvaWQNCiBu bnBmc19wcmludF9sb2NrKGNoYXIgKnMsIHN0cnVjdCBzZW1hcGhvcmUgKnNl bSkNCiB7DQogICAgIE5OUEZTREVCKFhERUJMT0NLLCAoImxvY2s6ICVzIHNl bTogJXAgY291bnQ6ICVkXG4iLA0KIAkJICAgICAgcywgc2VtLCAoaW50KWF0 b21pY19yZWFkKCZzZW0tPmNvdW50KSkpOw0KIH0NCisjZW5kaWYNCiANCiAv Kg0KICAqDQpAQCAtMTg1LDcgKzIwMCw3IEBAIG5ucGZzX2RfaXB1dChzdHJ1 Y3QgZGVudHJ5ICpkZW50cnksIHN0cnUNCiAgICAgTk5QRlNERUIoWERFQlZO T1BTLA0KIAkgICAgICgibm5wZnNfZF9pcHV0OiBkZW50cnkgJXAsIGlub2Rl ICVwXG4iLCBkZW50cnksIGlub2RlKSk7DQogICAgIA0KLSAgICBpZiAobm9k ZS0+ZmxhZ3MgJiBOTlBGU19OT0RFX0lQVVQpIC8qIFhYWCBsb2NraW5nICov DQorICAgIGlmIChub2RlLT5mbGFncyAmIE5OUEZTX05PREVfSVBVVCkgLyog WFhYIGxvY2tpbmcuIG5ldmVyIHNldD8gKi8NCiAJbm5wZnNfaXJlbGUoaW5v ZGUpOw0KICAgICBlbHNlDQogCWlwdXQoaW5vZGUpOw0KQEAgLTIxMiw4ICsy MjcsMTMgQEAgbm5wZnNfaW5vZGVfdmFsaWQoc3RydWN0IGlub2RlICppbm9k ZSkNCiAgKiBubnBmc19sb29rdXAgbm93IHJldHVybnMgYSBkZW50cnkuDQog ICovDQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDYsMCkpDQogc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KIG5ucGZz X2xvb2t1cCAoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRl bnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCitzdGF0aWMg c3RydWN0IGRlbnRyeSAqDQorbm5wZnNfbG9va3VwIChzdHJ1Y3QgaW5vZGUg KmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxh Z3MpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9n ZXRub2RlIG1zZzsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQpAQCAt MjQwLDcgKzI2MCwxMSBAQCBubnBmc19sb29rdXAgKHN0cnVjdCBpbm9kZSAq ZGlyLCBzdHJ1Y3QNCiANCiAJbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19N U0dfR0VUTk9ERTsNCiAgICAgICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51aWQg PSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVkLnVp ZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9 IG5ucGZzX2dldF9wYWcoKTsNCiAJbXNnLnBhcmVudF9oYW5kbGUgPSBkLT5o YW5kbGU7DQogICAgICAgICANCkBAIC0zMTAsNyArMzM0LDExIEBAIG5ucGZz X29wZW5fdmFsaWQoc3RydWN0IGlub2RlICp2cCwgdV9pbnQNCiAgICAgICB7 DQogCXN0cnVjdCBubnBmc19tZXNzYWdlX29wZW4gbXNnOw0KIAltc2cuaGVh ZGVyLm9wY29kZSA9IE5OUEZTX01TR19PUEVOOw0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3Jl ZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5j cmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVk LnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJbXNnLmhhbmRsZSA9IHhuLT5o YW5kbGU7DQogCW1zZy50b2tlbnMgPSB0b2s7DQpAQCAtNDI1LDcgKzQ1Mywx MSBAQCBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50 DQogDQogCW1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BVVERBVEE7 DQogCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJ bXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAg ICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAlt c2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAJbXNnLmZsYWcgICA9IGZsYWc7 DQogCW1zZy5vZmZzZXQgPSBvZmY7DQpAQCAtNDYwLDE0ICs0OTIsMjkgQEAg bm5wZnNfZnN5bmNfaW50KHN0cnVjdCBmaWxlICpmaWxlLCB1X2ludA0KICAq DQogICovDQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigyLDYsMzUpKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luYyhz dHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBpbnQg ZGF0YXN5bmMpDQorI2Vsc2UNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsMSwwKSkNCitzdGF0aWMgaW50DQorbm5wZnNf ZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIGludCBkYXRhc3luYykNCisjZWxz ZQ0KK3N0YXRpYyBpbnQNCitubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmls ZSwgbG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgZGF0YXN5bmMpDQor I2VuZGlmDQorI2VuZGlmDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg Pj0gS0VSTkVMX1ZFUlNJT04oMiwgNiwgMzUpDQorICAgIHN0cnVjdCBkZW50 cnkgKmRlbnRyeSA9IGZpbGUtPmZfcGF0aC5kZW50cnk7DQorI2VuZGlmDQog ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUoZGVu dHJ5KTsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQogICAgIHN0cnVj dCBubnBmc19ub2RlICp4bjsNCiAgICAgaW50IGVycm9yID0gMDsNCiANCisg ICAgKHZvaWQpbm5wZnNwOw0KKw0KICAgICBlcnJvciA9IG5ucGZzX2lub2Rl X3ZhbGlkKGlub2RlKTsNCiAgICAgaWYgKGVycm9yKQ0KIAlyZXR1cm4gZXJy b3I7DQpAQCAtNTExLDcgKzU1OCwxMSBAQCBubnBmc19hdHRyX3ZhbGlkKHN0 cnVjdCBpbm9kZSAqIHZwLCB1X2luDQogICAgICAgICAgICAgc3RydWN0IG5u cGZzX21lc3NhZ2VfZ2V0YXR0ciBtc2c7DQogDQogICAgICAgICAgICAgbXNn LmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfR0VUQVRUUjsNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAg ICAgICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vs c2UNCisgICAgICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgp Ow0KKyNlbmRpZg0KICAgICAgICAgICAgIG1zZy5jcmVkLnBhZyA9IHBhZzsN CiAgICAgICAgICAgICBtc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAg ICAgICAgICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1z Zy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCkBAIC01NTEsNyArNjAyLDExIEBA IG5ucGZzX3JpZ2h0c192YWxpZChzdHJ1Y3QgaW5vZGUgKiB2cCwgbm4NCiAg ICAgICAgICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9nZXRhdHRyIG1zZzsN CiANCiAgICAgICAgICAgICBtc2cuaGVhZGVyLm9wY29kZSA9IE5OUEZTX01T R19HRVRBVFRSOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVM X1ZFUlNJT04oMiw2LDI4KQ0KICAgICAgICAgICAgIG1zZy5jcmVkLnVpZCA9 IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgICAgIG1zZy5jcmVk LnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAgICAgICAgICAg bXNnLmNyZWQucGFnID0gcGFnOw0KICAgICAgICAgICAgIG1zZy5oYW5kbGUg PSB4bi0+aGFuZGxlOw0KICAgICAgICAgICAgIGVycm9yID0gbm5wZnNfbWVz c2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0K QEAgLTU5MiwxMSArNjQ3LDI4IEBAIGNoZWNrX3JpZ2h0cyAobm5wZnNfcmln aHRzIHJpZ2h0cywgaW50IG0NCiAgKiBXZSBkb24ndCBob2xkIGlfbXV0ZXgu DQogICovDQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigyLDYsMzgpIHx8IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO RUxfVkVSU0lPTigzLDEsMCkpDQorc3RhdGljIGludA0KK25ucGZzX3Blcm1p c3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1vZGUpDQorI2Vsc2UN CiBzdGF0aWMgaW50DQotbm5wZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUg Kmlub2RlLCBpbnQgbW9kZSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorbm5w ZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9kZSwg dW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVy cm9yID0gMDsNCi0gICAgbm5wZnNfcGFnX3QgcGFnID0gbm5wZnNfZ2V0X3Bh ZygpOw0KKyAgICBubnBmc19wYWdfdCBwYWc7DQorICAgIC8qIFRPRE86IHZl cmlmeSB0aGUgdXNlIG9mIElQRVJNX0ZMQUdfUkNVIGFuZCBNQVlfTk9UX0JM T0NLICovDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZF UlNJT04oMiw2LDM4KSkNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsMSwwKSkNCisgICAgaWYgKGZsYWdzICYgSVBFUk1f RkxBR19SQ1UpDQorICAgICAgICByZXR1cm4gLUVDSElMRDsNCisjZWxzZQ0K KyAgICBpZiAobW9kZSAmIE1BWV9OT1RfQkxPQ0spDQorICAgICAgICByZXR1 cm4gLUVDSElMRDsNCisjZW5kaWYNCisjZW5kaWYNCisNCisgICAgcGFnID0g bm5wZnNfZ2V0X3BhZygpOw0KICAgICANCiAgICAgTk5QRlNERUIoWERFQlZO T1BTLCAoIm5ucGZzX2FjY2VzcyAoJXApIG1vZGUgPSAwJW8gYWxpYXNlczoi LCBpbm9kZSwgbW9kZSkpOw0KICAgICBubnBmc19wcmludF9hbGlhc2VzKGlu b2RlKTsNCkBAIC02MzYsNyArNzA4LDExIEBAIG5ucGZzX2RvX2dldGRhdGEo c3RydWN0IG5ucGZzX25vZGUgKnhuLA0KICAgICBpbnQgZXJyb3I7DQogDQog ICAgIG1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX0dFVERBVEE7DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYs MjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxz ZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRp Zg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAg IG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KICAgICBtc2cudG9rZW5zID0g dG9rOw0KQEAgLTc4OSwxOSArODY1LDIyIEBAIGludCBubnBmc19maWxlX21t YXAoc3RydWN0IGZpbGUgKiBmaWxlLA0KICAqDQogICovDQogDQorI2lmIChM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApKQ0K IHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfYWlvX3JlYWQoc3RydWN0IGtpb2Ni ICppb2NiLA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZF UlNJT04oMiw2LDE5KQ0KIAkgICAgICAgY29uc3Qgc3RydWN0IGlvdmVjICpp b3YsIHVuc2lnbmVkIGxvbmcgbnJfc2VncywNCisJICAgICAgIGxvZmZfdCBw b3MpDQogI2Vsc2UNCi0JICAgICAgIGNoYXIgX191c2VyICpidWYsIHNpemVf dCBjb3VudCwNCitzdGF0aWMgc3NpemVfdA0KK25ucGZzX3JlYWRfaXRlcihz dHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqdG8pDQogI2Vu ZGlmDQotCSAgICAgICBsb2ZmX3QgcG9zKQ0KIHsNCiAgICAgaW50IGVycm9y ID0gMDsNCiAgICAgc3RydWN0IGZpbGUgKmZpbGUgPSBpb2NiLT5raV9maWxw Ow0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04o Miw2LDE5KQ0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxMiwwKSkNCiAgICAgc3NpemVfdCBjb3VudCA9IGlvY2ItPmtp X2xlZnQ7DQorI2Vsc2UNCisgICAgc3NpemVfdCBjb3VudCA9IGlvY2ItPmtp X25ieXRlczsNCiAjZW5kaWYNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9 IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KICAgICBzdHJ1Y3Qgbm5wZnNf bm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQpAQCAtODEwLDE2 ICs4ODksMjAgQEAgbm5wZnNfYWlvX3JlYWQoc3RydWN0IGtpb2NiICppb2Ni LA0KIAlOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfcmVhZF9maWxlKCVw KTogdG9rZW5zOiAweCV4XG4iLA0KIAkJCSAgICAgaW5vZGUsIHhuLT50b2tl bnMpKTsNCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMTYsMCkpDQogICAgIGVycm9yID0gbm5wZnNfZGF0YV92YWxp ZChpbm9kZSwgTk5QRlNfREFUQV9SLCBwb3MsIHBvcyArIGNvdW50KTsNCisj ZWxzZQ0KKyAgICBlcnJvciA9IG5ucGZzX2RhdGFfdmFsaWQoaW5vZGUsIE5O UEZTX0RBVEFfUiwgaW9jYi0+a2lfcG9zLCBpb2NiLT5raV9wb3MgKyBjb3Vu dCk7DQorI2VuZGlmDQogICAgIGlmIChlcnJvcikgew0KIAlOTlBGU0RFQihY REVCVk5PUFMsICgibm5wZnNfcmVhZF9maWxlOiBkYXRhIG5vdCB2YWxpZCAl ZFxuIiwgZXJyb3IpKTsNCiAJcmV0dXJuIGVycm9yOw0KICAgICB9DQotICAg IA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04o Miw2LDE5KQ0KKw0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxNiwwKSkNCiAgICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVf YWlvX3JlYWQoaW9jYiwgaW92LCBucl9zZWdzLCBwb3MpOw0KICNlbHNlDQot ICAgIGVycm9yID0gZ2VuZXJpY19maWxlX2Fpb19yZWFkKGlvY2IsIGJ1Ziwg Y291bnQsIHBvcyk7DQorICAgIGVycm9yID0gZ2VuZXJpY19maWxlX3JlYWRf aXRlcihpb2NiLCB0byk7DQogI2VuZGlmDQogICAgIE5OUEZTREVCKFhERUJW Tk9QUywgKCJubnBmc19yZWFkX2ZpbGU6IGVycm9yID0gJWRcbiIsIGVycm9y KSk7DQogICAgIHJldHVybiBlcnJvcjsNCkBAIC04MjksMjMgKzkxMiwzMCBA QCBubnBmc19haW9fcmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogICoNCiAg Ki8NCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsMTYsMCkpDQogc3RhdGljIHNzaXplX3QNCiBubnBmc19haW9fd3Jp dGUoc3RydWN0IGtpb2NiICppb2NiLA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE5KQ0KIAkJY29uc3Qgc3RydWN0 IGlvdmVjICppb3YsIHVuc2lnbmVkIGxvbmcgbnJfc2VncywNCisJCWxvZmZf dCBwb3MpDQogI2Vsc2UNCi0JCWNvbnN0IGNoYXIgX191c2VyICpidWYsIHNp emVfdCBjb3VudCwgDQorc3RhdGljIHNzaXplX3QNCitubnBmc193cml0ZV9p dGVyKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICpmcm9t KQ0KICNlbmRpZg0KLQkJbG9mZl90IHBvcykNCiB7DQogICAgIGludCBlcnJv ciA9IDA7DQogICAgIHN0cnVjdCBmaWxlICpmaWxlID0gaW9jYi0+a2lfZmls cDsNCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9O KDIsNiwxOSkNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMTIsMCkpDQogICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5r aV9sZWZ0Ow0KKyNlbHNlDQorICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5r aV9uYnl0ZXM7DQogI2VuZGlmDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUg PSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCiAgICAgc3RydWN0IG5ucGZz X25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KKyNpZiAoTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKSkNCiAg ICAgbG9mZl90IHJlYWxwb3MgPSBwb3M7DQorI2Vsc2UNCisgICAgbG9mZl90 IHJlYWxwb3MgPSBpb2NiLT5raV9wb3M7DQorI2VuZGlmDQogICAgIA0KICAg ICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfYWlvX3dyaXRlKCVwKTog dG9rZW5zOiAweCV4XG4iLA0KIAkJCSBpbm9kZSwgeG4tPnRva2VucykpOw0K QEAgLTg1OSwxMCArOTQ5LDEwIEBAIG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qg a2lvY2IgKmlvY2IsDQogCXJldHVybiBlcnJvcjsNCiAgICAgfQ0KIA0KLSNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE5 KQ0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o MywxNiwwKSkNCiAgICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfYWlvX3dyaXRl KGlvY2IsIGlvdiwgbnJfc2VncywgcG9zKTsNCiAjZWxzZQ0KLSAgICBlcnJv ciA9IGdlbmVyaWNfZmlsZV9haW9fd3JpdGUoaW9jYiwgYnVmLCBjb3VudCwg cG9zKTsNCisgICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfd3JpdGVfaXRlcihp b2NiLCBmcm9tKTsNCiAjZW5kaWYNCiAgICAgaWYgKCFJU19FUlJfVkFMVUUo ZXJyb3IpKQ0KIAl4bi0+ZmxhZ3MgfD0gTk5QRlNfREFUQV9ESVJUWTsgLyog WFhYIHJhY2UgKi8NCkBAIC04NzEsOSArOTYxLDIxIEBAIG5ucGZzX2Fpb193 cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogICAgIHJldHVybiBlcnJvcjsN CiB9DQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDMsMCkpDQogc3RhdGljIGludA0KIG5ucGZzX2NyZWF0ZShzdHJ1 Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KIAkgICAg IGludCBtb2RlLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0KKyNp ZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDAp KQ0KK3N0YXRpYyBpbnQNCitubnBmc19jcmVhdGUoc3RydWN0IGlub2RlICpk aXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwNCisJICAgICB1bW9kZV90IG1v ZGUsIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQorc3RhdGljIGlu dA0KK25ucGZzX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRl bnRyeSAqZGVudHJ5LA0KKwkgICAgIHVtb2RlX3QgbW9kZSwgYm9vbCBleGNs KQ0KKyNlbmRpZg0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5ucGZzICpu bnBmc3A7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCkBAIC05MDMs OSArMTAwNSwxNyBAQCBubnBmc19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIs IHN0cnVjdCBkDQogICAgIFhBX0NMRUFSKCZtc2cuYXR0cik7DQogICAgIFhB X1NFVF9NT0RFKCZtc2cuYXR0ciwgbW9kZSk7DQogICAgIFhBX1NFVF9UWVBF KCZtc2cuYXR0ciwgTk5QRlNfRklMRV9SRUcpOw0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBYQV9T RVRfR0lEKCZtc2cuYXR0ciwgY3VycmVudC0+ZnNnaWQpOw0KKyNlbHNlDQor ICAgIFhBX1NFVF9HSUQoJm1zZy5hdHRyLCBjdXJyZW50X2ZzZ2lkKCkpOw0K KyNlbmRpZg0KICAgICBtc2cubW9kZSA9IDA7CQkvKiBYWFggKi8NCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkN CiAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQor ICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQog ICAgIG1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgZXJy b3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBz aXplb2YobXNnKSk7DQogICAgIGlmIChlcnJvciA9PSAwKQ0KQEAgLTk0Niw3 ICsxMDU2LDExIEBAIG5ucGZzX3VubGluayAoc3RydWN0IGlub2RlICogZGly LCBzdHJ1Y3QNCiAgICAgaWYgKHN0cmxjcHkobXNnLm5hbWUsIGRlbnRyeS0+ ZF9uYW1lLm5hbWUsIHNpemVvZihtc2cubmFtZSkpID49IE5OUEZTX01BWF9O QU1FKQ0KIAlyZXR1cm4gLUVOQU1FVE9PTE9ORzsNCiANCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg bXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgIG1z Zy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAgIG1z Zy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgZXJyb3IgPSBu bnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2Yo bXNnKSk7DQogICAgIGlmIChlcnJvciA9PSAwKQ0KQEAgLTk5MSw3ICsxMTA1 LDExIEBAIG5ucGZzX3JlbmFtZSAoc3RydWN0IGlub2RlICogb2xkX2Rpciwg c3QNCiAgICAgaWYgKHN0cmxjcHkobXNnLm5ld19uYW1lLCBuZXdfZGVudHJ5 LT5kX25hbWUubmFtZSwgc2l6ZW9mKG1zZy5uZXdfbmFtZSkpID49IE5OUEZT X01BWF9OQU1FKQ0KIAlyZXR1cm4gLUVOQU1FVE9PTE9ORzsNCiAJDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgp DQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0K KyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0K ICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgIGVy cm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwg c2l6ZW9mKG1zZykpOw0KICAgICBpZiAoZXJyb3IgPT0gMCkNCkBAIC0xMDA4 LDggKzExMjYsMTMgQEAgbm5wZnNfcmVuYW1lIChzdHJ1Y3QgaW5vZGUgKiBv bGRfZGlyLCBzdA0KICAgICByZXR1cm4gZXJyb3I7DQogfQ0KIA0KKyNpZiAo TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywzLDApKQ0K IHN0YXRpYyBpbnQNCiBubnBmc19ta2RpcihzdHJ1Y3QgaW5vZGUgKiBkaXIs IHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgaW50IG1vZGUpDQorI2Vsc2UNCitz dGF0aWMgaW50DQorbm5wZnNfbWtkaXIoc3RydWN0IGlub2RlICogZGlyLCBz dHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVtb2RlX3QgbW9kZSkNCisjZW5kaWYN CiB7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1Y3Qg bm5wZnNfbm9kZSAqeG47DQpAQCAtMTA0MCw5ICsxMTYzLDE3IEBAIG5ucGZz X21rZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGQNCiAJWEFfQ0xF QVIoJm1zZy5hdHRyKTsNCiAJWEFfU0VUX01PREUoJm1zZy5hdHRyLCBtb2Rl KTsNCiAJWEFfU0VUX1RZUEUoJm1zZy5hdHRyLCBOTlBGU19GSUxFX0RJUik7 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigy LDYsMjgpDQogCVhBX1NFVF9HSUQoJm1zZy5hdHRyLCBjdXJyZW50LT5mc2dp ZCk7DQorI2Vsc2UNCisgICAgICAgIFhBX1NFVF9HSUQoJm1zZy5hdHRyLCBj dXJyZW50X2ZzZ2lkKCkpOw0KKyNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3Jl ZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5j cmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVk LnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJZXJyb3IgPSBubnBmc19tZXNz YWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQog CWlmIChlcnJvciA9PSAwKQ0KQEAgLTEwODMsNyArMTIxNCwxMSBAQCBubnBm c19ybWRpcihzdHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkDQogICAgIG1z Zy5wYXJlbnRfaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgaWYgKHN0cmxj cHkobXNnLm5hbWUsIGRlbnRyeS0+ZF9uYW1lLm5hbWUsIHNpemVvZihtc2cu bmFtZSkpID49IE5OUEZTX01BWF9OQU1FKQ0KIAkgICAgcmV0dXJuIC1FTkFN RVRPT0xPTkc7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxf VkVSU0lPTigyLDYsMjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQt PnVpZDsNCisjZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3Vp ZCgpOw0KKyNlbmRpZg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRf cGFnKCk7DQogICAgIGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNw LCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KICAgICBpZiAoZXJyb3Ig PT0gMCkNCkBAIC0xMTI4LDcgKzEyNjMsMTEgQEAgc3RhdGljIGludCBubnBm c19saW5rKHN0cnVjdCBkZW50cnkgKm9sZA0KIAlpZiAoc3RybGNweShtc2cu bmFtZSwgbmFtZSwgc2l6ZW9mKG1zZy5uYW1lKSkgPj0gTk5QRlNfTUFYX05B TUUpDQogCSAgICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCiANCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJ bXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAg ICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAlt c2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogCWVycm9yID0gbm5w ZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1z ZykpOw0KIAlpZiAoZXJyb3IgPT0gMCkNCkBAIC0xMTU3LDI5ICsxMjk2LDQ3 IEBAIHN0YXRpYyBpbnQgbm5wZnNfc3ltbGluayhzdHJ1Y3QgaW5vZGUgKmQN CiAgICAgeG4gPSBWTk9ERV9UT19YTk9ERShkaXIpOw0KIA0KICAgICB7DQot CXN0cnVjdCBubnBmc19tZXNzYWdlX3N5bWxpbmsgbXNnOw0KKwlzdHJ1Y3Qg bm5wZnNfbWVzc2FnZV9zeW1saW5rICptc2cgPSBOVUxMOw0KIA0KLQltc2cu aGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19TWU1MSU5LOw0KLQltc2cucGFy ZW50X2hhbmRsZSA9IHhuLT5oYW5kbGU7DQotCWlmIChzdHJsY3B5KG1zZy5u YW1lLCBuYW1lLCBzaXplb2YobXNnLm5hbWUpKSA+PSBOTlBGU19NQVhfTkFN RSkNCi0JICAgIHJldHVybiAtRU5BTUVUT09MT05HOw0KLQlpZiAoc3RybGNw eShtc2cuY29udGVudHMsIHN5bW5hbWUsIHNpemVvZihtc2cuY29udGVudHMp KSA+PSBOTlBGU19NQVhfU1lNTElOS19DT05URU5UKQ0KLQkgICAgcmV0dXJu IC1FTkFNRVRPT0xPTkc7DQotCVhBX0NMRUFSKCZtc2cuYXR0cik7DQotCVhB X1NFVF9NT0RFKCZtc2cuYXR0ciwgMDc3Nyk7DQotCVhBX1NFVF9UWVBFKCZt c2cuYXR0ciwgTk5QRlNfRklMRV9MTkspOw0KLQlYQV9TRVRfR0lEKCZtc2cu YXR0ciwgY3VycmVudC0+ZnNnaWQpOw0KKwltc2cgPSBrbWFsbG9jKHNpemVv ZigqbXNnKSwgR0ZQX0tFUk5FTCk7DQogDQotCW1zZy5jcmVkLnVpZCA9IGN1 cnJlbnQtPnVpZDsNCi0JbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygp Ow0KLQllcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5o ZWFkZXIsIHNpemVvZihtc2cpKTsNCisJaWYgKG1zZyA9PSBOVUxMKQ0KKwkg IHJldHVybiAtRU5PTUVNOw0KKw0KKwltc2ctPmhlYWRlci5vcGNvZGUgPSBO TlBGU19NU0dfU1lNTElOSzsNCisJbXNnLT5wYXJlbnRfaGFuZGxlID0geG4t PmhhbmRsZTsNCisJaWYgKHN0cmxjcHkobXNnLT5uYW1lLCBuYW1lLCBzaXpl b2YobXNnLT5uYW1lKSkgPj0gTk5QRlNfTUFYX05BTUUpIHsNCisJICBrZnJl ZShtc2cpOw0KKwkgIHJldHVybiAtRU5BTUVUT09MT05HOw0KKwl9DQorCWlm IChzdHJsY3B5KG1zZy0+Y29udGVudHMsIHN5bW5hbWUsIHNpemVvZihtc2ct PmNvbnRlbnRzKSkgPj0gTk5QRlNfTUFYX1NZTUxJTktfQ09OVEVOVCkgew0K KwkgIGtmcmVlKG1zZyk7DQorCSAgcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQor CX0NCisJWEFfQ0xFQVIoJm1zZy0+YXR0cik7DQorCVhBX1NFVF9NT0RFKCZt c2ctPmF0dHIsIDA3NzcpOw0KKwlYQV9TRVRfVFlQRSgmbXNnLT5hdHRyLCBO TlBGU19GSUxFX0xOSyk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBL RVJORUxfVkVSU0lPTigyLDYsMjgpDQorCVhBX1NFVF9HSUQoJm1zZy0+YXR0 ciwgY3VycmVudC0+ZnNnaWQpOw0KKyNlbHNlDQorICAgICAgICBYQV9TRVRf R0lEKCZtc2ctPmF0dHIsIGN1cnJlbnRfZnNnaWQoKSk7DQorI2VuZGlmDQor DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigy LDYsMjgpDQorCW1zZy0+Y3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vs c2UNCisgICAgICAgIG1zZy0+Y3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0K KyNlbmRpZg0KKwltc2ctPmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0K KwllcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy0+aGVh ZGVyLCBzaXplb2YoKm1zZykpOw0KIAlpZiAoZXJyb3IgPT0gMCkNCi0JICAg IGVycm9yID0gTk5QRlNfTVNHX1dBS0VVUF9FUlJPUigmbXNnKTsNCisJICAg IGVycm9yID0gTk5QRlNfTVNHX1dBS0VVUF9FUlJPUihtc2cpOw0KIA0KIAkv KiBYWFggc2hvdWxkIHRoaXMgcmVhbGx5IGJlIGhlcmUgKi8NCiAJaWYgKERF TlRSWV9UT19YREVOVFJZKGRlbnRyeSktPnhkX2ZsYWdzID09IDApIHsNCiAJ ICAgIHByaW50ayhLRVJOX0VNRVJHICJOTlBGUyBQYW5pYzogbm5wZnNfc3lt bGluazogZGVudHJ5IG5vdCB2YWxpZFxuIik7DQogCX0NCisJa2ZyZWUobXNn KTsNCiAgICAgfQ0KIA0KICAgICByZXR1cm4gZXJyb3I7DQpAQCAtMTE4OCw4 ICsxMzQ1LDEzIEBAIHN0YXRpYyBpbnQgbm5wZnNfc3ltbGluayhzdHJ1Y3Qg aW5vZGUgKmQNCiAvKg0KICAqIFdlIGhvbGQgaV9tdXRleC4NCiAgKi8NCisj aWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEs MCkpDQogc3RhdGljIGludA0KIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUg KiBmaWxlLCB2b2lkICogZGlyZW50LCBmaWxsZGlyX3QgZmlsbGRpcikNCisj ZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19pdGVyYXRlKHN0cnVjdCBmaWxl ICogZmlsZSwgc3RydWN0IGRpcl9jb250ZXh0ICpjdHgpDQorI2VuZGlmDQog ew0KICAgICBpbnQgZXJyb3I7DQogICAgIGxvZmZfdCBvZmZzZXQsIGJlZ2lu X29mZnNldDsNCkBAIC0xMjY0LDYgKzE0MjYsNyBAQCBubnBmc19yZWFkZGly KHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAqDQogCQkgICAgKGludCkgeGRp cmVudC0+ZF9uYW1sZW4sDQogCQkgICAgKGludCkgKG9mZnNldCtiZWdpbl9v ZmZzZXQpKSk7DQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDExLDApKQ0KIAkgICAgaWYgKHhkaXJlbnQtPmRfZmls ZW5vICE9IDANCiAJCSYmIChmaWxsZGlyX2Vycm9yID0gZmlsbGRpciAoZGly ZW50LA0KIAkJCQkgICAgIHhkaXJlbnQtPmRfbmFtZSwNCkBAIC0xMjc1LDYg KzE0MzgsMTggQEAgbm5wZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUs IHZvaWQgKg0KIAkJCSAoIm5ucGZzX3JlYWRkaXIgZmlsbGRpcjogJWRcbiIs IGZpbGxkaXJfZXJyb3IpKTsNCiAJCWJyZWFrOw0KIAkgICAgfQ0KKyNlbHNl DQorCSAgICBpZiAoeGRpcmVudC0+ZF9maWxlbm8gIT0gMA0KKwkJJiYgKGZp bGxkaXJfZXJyb3IgPSBkaXJfZW1pdCAoY3R4LA0KKwkJCQkgICAgIHhkaXJl bnQtPmRfbmFtZSwNCisJCQkJICAgICB4ZGlyZW50LT5kX25hbWxlbiwNCisJ CQkJICAgICB4ZGlyZW50LT5kX2ZpbGVubywNCisJCQkJICAgICBEVF9VTktO T1dOKSkgPCAwKSB7DQorCQlOTlBGU0RFQihYREVCUkVBRERJUiwNCisJCQkg KCJubnBmc19yZWFkZGlyIGZpbGxkaXI6ICVkXG4iLCBmaWxsZGlyX2Vycm9y KSk7DQorCQlicmVhazsNCisJICAgIH0NCisjZW5kaWYNCiAJICAgIG9mZnNl dCArPSB4ZGlyZW50LT5kX3JlY2xlbjsNCiANCiAJICAgIGlmICh4ZGlyZW50 LT5kX3JlY2xlbiA9PSAwKSB7DQpAQCAtMTM5OCw3ICsxNTczLDExIEBAIG5u cGZzX3NldGF0dHIgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3QNCiAgICAg ICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX3B1dGF0dHIgbXNnOw0KIA0KICAg ICAgICAgbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfUFVUQVRUUjsN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIs NiwyOCkNCiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNl DQorICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNl bmRpZg0KIAltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAg ICAgICBtc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgICAgIG5ucGZz X2lhdHRyMmF0dHIoeG4sIGF0dHIsICZtc2cuYXR0cik7DQpAQCAtMTQyMiw2 ICsxNjAxLDggQEAgbm5wZnNfcmVsZWFzZV9maWxlIChzdHJ1Y3QgaW5vZGUg Kmlub2RlLA0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQogICAgIGlu dCBlcnJvciA9IDA7DQogDQorICAgICh2b2lkKW5ucGZzcDsNCisNCiAgICAg Tk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3JlbGVhc2VfZmlsZVxuIikp Ow0KIA0KICAgICBlcnJvciA9IG5ucGZzX2lub2RlX3ZhbGlkKGlub2RlKTsN CkBAIC0xNDUwLDEzICsxNjMxLDggQEAgbm5wZnNfcmVsZWFzZV9maWxlIChz dHJ1Y3QgaW5vZGUgKmlub2RlLA0KICAqDQogICovDQogDQotI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQogc3Rh dGljIGludA0KIG5ucGZzX2ZsdXNoKHN0cnVjdCBmaWxlICpmaWxlLCBmbF9v d25lcl90IGlkKQ0KLSNlbHNlDQotc3RhdGljIGludA0KLW5ucGZzX2ZsdXNo KHN0cnVjdCBmaWxlICpmaWxlKQ0KLSNlbmRpZg0KIHsNCiAgICAgTk5QRlNE RUIoWERFQlZOT1BTLCAoIm5ucGZzX2ZsdXNoXG4iKSk7DQogDQpAQCAtMTQ3 MCw4ICsxNjQ2LDEzIEBAIG5ucGZzX2ZsdXNoKHN0cnVjdCBmaWxlICpmaWxl KQ0KICAqIFJldHVybiAxIGlmIGBkZW50cnknIGlzIHN0aWxsIHZhbGlkLCBv dGhlcndpc2UgMC4NCiAgKi8NCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKSkNCitzdGF0aWMgaW50DQorbm5w ZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0 IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCiBzdGF0aWMgaW50DQotbm5wZnNf ZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5h bWVpZGF0YSAqbmQpIA0KK25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVu dHJ5ICpkZW50cnksIHVuc2lnbmVkIGludCBmbGFncykNCisjZW5kaWYNCiB7 DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUo ZGVudHJ5KTsNCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2Rf cmV2YWxpZGF0ZSAlcCBcIiUuKnNcIiAoaW5vZGUgJXApXG4iLA0KQEAgLTE1 MTksOSArMTcwMCwxNSBAQCBubnBmc19kX3JldmFsaWRhdGUoc3RydWN0IGRl bnRyeSAqZGVudHJ5DQogICAgIHJldHVybiAwOw0KIH0NCiANCisjaWYgKExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkpDQog c3RhdGljDQogaW50DQogbm5wZnNfZF9kZWxldGUoc3RydWN0IGRlbnRyeSAq ZGVudHJ5KQ0KKyNlbHNlDQorc3RhdGljDQoraW50DQorbm5wZnNfZF9kZWxl dGUoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZg0KIHsN CiAgICAgc3RydWN0IGlub2RlICppbm9kZTsNCiAgICAgc3RydWN0IG5ucGZz X25vZGUgKnhuOw0KQEAgLTE1NDYsOCArMTczMyw5IEBAIG5ucGZzX2RfZGVs ZXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCiB9DQogDQogc3RhdGljIHNz aXplX3QNCi1ubnBmc19zZW5kZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9m Zl90ICpwcG9zLCBzaXplX3QgY291bnQsDQotCSAgICAgICByZWFkX2FjdG9y X3QgYWN0b3IsIHZvaWQgKnRhcmdldCkNCitubnBmc19zcGxpY2VfcmVhZChz dHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90ICpwcG9zLA0KKwkJICBzdHJ1Y3Qg cGlwZV9pbm9kZV9pbmZvICpwaXBlLCBzaXplX3QgY291bnQsDQorCQkgIHVu c2lnbmVkIGludCBmbGFncykNCiB7DQogICAgIGludCBlcnJvciA9IDA7DQog ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9p bm9kZTsNCkBAIC0xNTYxLDggKzE3NDksNyBAQCBubnBmc19zZW5kZmlsZShz dHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90DQogCU5OUEZTREVCKFhERUJWTk9Q UywgKCJubnBmc19zZW5kZmlsZTogZGF0YSBub3QgdmFsaWQgJWRcbiIsIGVy cm9yKSk7DQogCXJldHVybiBlcnJvcjsNCiAgICAgfQ0KLQ0KLSAgICBlcnJv ciA9IGdlbmVyaWNfZmlsZV9zZW5kZmlsZShmaWxlLCBwcG9zLCBjb3VudCwg YWN0b3IsIHRhcmdldCk7DQorICAgIGVycm9yID0gZmlsZS0+Zl9vcC0+c3Bs aWNlX3JlYWQoZmlsZSwgcHBvcywgcGlwZSwgY291bnQsIGZsYWdzKTsNCiAN CiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3NlbmRmaWxlOiBl cnJvciA9ICVkXG4iLCBlcnJvcikpOw0KICAgICByZXR1cm4gZXJyb3I7DQpA QCAtMTYzOSwzNCArMTgyNiwzMSBAQCBubnBmc193cml0ZV9iYWNrcGFnZShz dHJ1Y3QgcGFnZSAqcGFnZSwNCiAJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1h cHBpbmcgPSBiYWNrZmlsZS0+Zl9tYXBwaW5nOw0KIAl1bnNpZ25lZCBsZW4g PSBQQUdFX0NBQ0hFX1NJWkU7DQogCXN0cnVjdCBwYWdlICpiYWNrcGFnZTsN CisJdm9pZCAqZnNkYXRhOw0KIAl1bnNpZ25lZCBsb25nIG9mZnNldDsNCiAN CiAJaW50IGVycm9yOw0KLQkNCi0JZG8gew0KLQkJYmFja3BhZ2UgPSBncmFi X2NhY2hlX3BhZ2UobWFwcGluZywgbm5wZnNfZ2V0X2JhY2tpbmRleChwYWdl KSk7DQotCQlpZiAoIWJhY2twYWdlKSB7DQotCQkJcHJpbnRrKCJubnBmc193 cml0ZV9iYWNrcGFnZTogbm8gcGFnZVxuIik7DQotCQkJcmV0dXJuIC1FSU87 DQotCQl9DQogDQotCQllcnJvciA9IG1hcHBpbmctPmFfb3BzLT5wcmVwYXJl X3dyaXRlKGJhY2tmaWxlLCBiYWNrcGFnZSwNCi0JCQkJCQkgICAgICAwLCBs ZW4pOw0KKwkodm9pZClvZmZzZXQ7DQorDQorCWRvIHsNCisJCWVycm9yID0g cGFnZWNhY2hlX3dyaXRlX2JlZ2luKGJhY2tmaWxlLCBtYXBwaW5nLCAwLCBs ZW4sDQorCQkJCQkgICAgICBBT1BfRkxBR19VTklOVEVSUlVQVElCTEUsDQor CQkJCQkgICAgICAmYmFja3BhZ2UsICZmc2RhdGEpOw0KIAkJaWYgKCFlcnJv cikgew0KIAkJCWNvcHlfaGlnaHBhZ2UoYmFja3BhZ2UsIHBhZ2UpOw0KIAkJ CWZsdXNoX2RjYWNoZV9wYWdlKGJhY2twYWdlKTsNCi0JCQllcnJvciA9IG1h cHBpbmctPmFfb3BzLT5jb21taXRfd3JpdGUoYmFja2ZpbGUsIGJhY2twYWdl LA0KLQkJCQkJCQkgICAgIDAsIGxlbik7DQorCQkJZXJyb3IgPSBwYWdlY2Fj aGVfd3JpdGVfZW5kKGJhY2tmaWxlLCBtYXBwaW5nLCAwLCBsZW4sDQorCQkJ CQlsZW4sIGJhY2twYWdlLCBmc2RhdGEpOw0KKwkJCWlmIChlcnJvciA+IDAp DQorCQkJCWVycm9yID0gMDsNCiAJCX0NCiAJCWlmIChlcnJvciA9PSBBT1Bf VFJVTkNBVEVEX1BBR0UpIHsNCi0JCQlwYWdlX2NhY2hlX3JlbGVhc2UoYmFj a3BhZ2UpOw0KIAkJCWNvbnRpbnVlOw0KIAkJfQ0KIAl9IHdoaWxlICgwKTsN CiANCiAJb2Zmc2V0ID0gcGFnZV9vZmZzZXQoYmFja3BhZ2UpOw0KLQl1bmxv Y2tfcGFnZShiYWNrcGFnZSk7DQotCXBhZ2VfY2FjaGVfcmVsZWFzZShiYWNr cGFnZSk7DQogDQogCWlmIChlcnJvcikNCiAJCXByaW50aygibm5wZnNfd3Jp dGVfYmFja3BhZ2U6IEVJT1xuIik7DQpAQCAtMTY4OSwxMyArMTg3Myw5IEBA IG5ucGZzX3JlYWRfYmFja3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHMNCiAJ c3RydWN0IHBhZ2UgKmJhY2twYWdlOw0KIAl1bnNpZ25lZCBsb25nIG9mZnNl dDsNCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT SU9OKDIsNiwxOCkNCisJKHZvaWQpb2Zmc2V0Ow0KKw0KIAliYWNrcGFnZSA9 IHJlYWRfbWFwcGluZ19wYWdlKG1hcHBpbmcsIG4sIGJhY2tmaWxlKTsNCi0j ZWxzZQ0KLQliYWNrcGFnZSA9IHJlYWRfY2FjaGVfcGFnZShtYXBwaW5nLCBu LA0KLQkJCQkgICAoZmlsbGVyX3QgKiltYXBwaW5nLT5hX29wcy0+cmVhZHBh Z2UsDQotCQkJCSAgIGJhY2tmaWxlKTsNCi0jZW5kaWYNCiAJaWYgKCFJU19F UlIoYmFja3BhZ2UpKSB7DQogCQl3YWl0X29uX3BhZ2VfbG9ja2VkKGJhY2tw YWdlKTsNCiANCkBAIC0xODQxLDEyICsyMDIxLDE4IEBAIG5ucGZzX3ByZXBh cmVfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIHMNCiAJCW1vZHNpemUgPSBu bnBmc19ibG9ja3NpemU7DQogDQogCWlmIChtb2RzaXplID4gaV9zaXplX3Jl YWQoaW5vZGUpKSB7DQotCQlpbnQgZXJyb3I7DQorCQlpbnQgZXJyb3I9MDsN CisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs OCwwKSkNCiAJCWVycm9yID0gdm10cnVuY2F0ZShpbm9kZSwgbW9kc2l6ZSk7 DQorI2Vsc2UNCisJCWlmKCFpbm9kZV9uZXdzaXplX29rKGlub2RlLCBtb2Rz aXplKSkgew0KKwkJCXRydW5jYXRlX3NldHNpemUoaW5vZGUsIG1vZHNpemUp Ow0KKwkJfQ0KKyNlbmRpZg0KIAkJaWYgKGVycm9yKSB7DQogCQkJcHJpbnRr KCJubnBmc19wcmVwYXJlX3dyaXRlOiB0cnVuY2F0ZSglbGx1KSAtPiAlZFxu IiwNCiAJCQkgICAgICAgbW9kc2l6ZSwgLWVycm9yKTsNCi0JCQlCVUcoKTsg LyogWFhYIG5vdCBjb3JyZWN0ICovDQorCQkJLypCVUcoKTsqLyAvKiBYWFgg bm90IGNvcnJlY3QgKi8NCiAJCX0NCiAJfQ0KIA0KQEAgLTE4NzIsOCArMjA1 OCwzNyBAQCBubnBmc19wcmVwYXJlX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxl LCBzDQogCXJldHVybiByZXQ7DQogfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KKw0KIHN0YXRpYyBp bnQNCi1ubnBmc19jb21taXRfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIHN0 cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bykN CitubnBmc193cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0 IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBwb3MsDQordW5zaWdu ZWQgbGVuLCB1bnNpZ25lZCBmbGFncywgc3RydWN0IHBhZ2UgKipwYWdlcCwg dm9pZCAqKmZzZGF0YSkNCit7DQorCXN0cnVjdCBwYWdlICpwYWdlOw0KKwlw Z29mZl90IGluZGV4Ow0KKwl1bnNpZ25lZCBmcm9tOw0KKw0KKwlpbmRleCA9 IHBvcyA+PiBQQUdFX0NBQ0hFX1NISUZUOw0KKwlmcm9tID0gcG9zICYgKFBB R0VfQ0FDSEVfU0laRSAtIDEpOw0KKw0KKyNpZmRlZiBBT1BfRkxBR19OT0ZT DQorCXBhZ2UgPSBncmFiX2NhY2hlX3BhZ2Vfd3JpdGVfYmVnaW4obWFwcGlu ZywgaW5kZXgsIGZsYWdzKTsNCisjZWxzZQ0KKwlwYWdlID0gX19ncmFiX2Nh Y2hlX3BhZ2UobWFwcGluZywgaW5kZXgpOw0KKyNlbmRpZg0KKwlpZiAocGFn ZSA9PSBOVUxMKQ0KKwkJcmV0dXJuIC1FTk9NRU07DQorDQorCSpwYWdlcCA9 IHBhZ2U7DQorDQorCXJldHVybiBubnBmc19wcmVwYXJlX3dyaXRlKGZpbGUs IHBhZ2UsIGZyb20sIGZyb20gKyBsZW4pOw0KK30NCisNCisjZW5kaWYNCisN CitzdGF0aWMgaW50DQorbm5wZnNfY29tbWl0X3dyaXRlKHN0cnVjdCBmaWxl ICpmaWxlLCBzdHJ1Y3QgcGFnZSAqcGFnZSwNCisJCSAgIHVuc2lnbmVkIGZy b20sIHVuc2lnbmVkIHRvKQ0KIHsNCiAgICAgc3RydWN0IGlub2RlICppbm9k ZSA9IHBhZ2UtPm1hcHBpbmctPmhvc3Q7DQogICAgIGxvZmZfdCBwb3MgPSAo KGxvZmZfdClwYWdlLT5pbmRleCA8PCBQQUdFX0NBQ0hFX1NISUZUKSArIHRv Ow0KQEAgLTE5MDIsMTQgKzIxMTcsNTEgQEAgbm5wZnNfY29tbWl0X3dyaXRl KHN0cnVjdCBmaWxlICpmaWxlLCBzdA0KICAgICByZXR1cm4gMDsNCiB9DQog DQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigy LDYsMTgpDQotY29uc3QNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtF Uk5FTF9WRVJTSU9OKDIsNiwyOCkNCisNCitzdGF0aWMgaW50DQorbm5wZnNf d3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19z cGFjZSAqbWFwcGluZywgbG9mZl90IHBvcywNCisJCXVuc2lnbmVkIGxlbiwg dW5zaWduZWQgY29waWVkLCBzdHJ1Y3QgcGFnZSAqcGFnZSwgdm9pZCAqZnNk YXRhKQ0KK3sNCisJdW5zaWduZWQgZnJvbSA9IHBvcyAmIChQQUdFX0NBQ0hF X1NJWkUgLSAxKTsNCisNCisJLyogemVybyB0aGUgc3RhbGUgcGFydCBvZiB0 aGUgcGFnZSBpZiB3ZSBkaWQgYSBzaG9ydCBjb3B5ICovDQorCWlmIChjb3Bp ZWQgPCBsZW4pIHsNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsNiwwKSkNCisJCXZvaWQgKmthZGRyID0ga21hcF9hdG9t aWMocGFnZSwgS01fVVNFUjApOw0KKyNlbHNlDQorCQl2b2lkICprYWRkciA9 IGttYXBfYXRvbWljKHBhZ2UpOw0KKyNlbmRpZg0KKwkJbWVtc2V0KGthZGRy ICsgZnJvbSArIGNvcGllZCwgMCwgbGVuIC0gY29waWVkKTsNCisJCWZsdXNo X2RjYWNoZV9wYWdlKHBhZ2UpOw0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApKQ0KKwkJa3VubWFwX2F0b21pYyhr YWRkciwgS01fVVNFUjApOw0KKyNlbHNlDQorCQlrdW5tYXBfYXRvbWljKGth ZGRyKTsNCisjZW5kaWYNCisJfQ0KKw0KKwlubnBmc19jb21taXRfd3JpdGUo ZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGNvcGllZCk7DQorDQorCXVubG9j a19wYWdlKHBhZ2UpOw0KKwlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7DQor DQorCXJldHVybiBjb3BpZWQ7DQorfQ0KKw0KICNlbmRpZg0KKw0KK2NvbnN0 DQogc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBubnBmc19hb3Bz ID0gew0KIAkucmVhZHBhZ2UgPSBubnBmc19yZWFkcGFnZSwNCiAJLndyaXRl cGFnZSA9IG5ucGZzX3dyaXRlcGFnZSwNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAkucHJlcGFyZV93cml0 ZSA9IG5ucGZzX3ByZXBhcmVfd3JpdGUsDQogCS5jb21taXRfd3JpdGUgPSBu bnBmc19jb21taXRfd3JpdGUsDQorI2Vsc2UNCisJLndyaXRlX2JlZ2luID0g bm5wZnNfd3JpdGVfYmVnaW4sDQorCS53cml0ZV9lbmQgPSBubnBmc193cml0 ZV9lbmQsDQorI2VuZGlmDQogfTsNCiANCiAvKg0KQEAgLTE5MTcsMjEgKzIx NjksMzAgQEAgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBubnBm c19hbw0KICAqLw0KIA0KIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNf ZmlsZV9vcGVyYXRpb25zID0gew0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKSkNCiAgICAgLmFpb19yZWFkCT0g bm5wZnNfYWlvX3JlYWQsDQogICAgIC5haW9fd3JpdGUJPSBubnBmc19haW9f d3JpdGUsDQorI2Vsc2UNCisgICAgLnJlYWRfaXRlcgk9IG5ucGZzX3JlYWRf aXRlciwNCisgICAgLndyaXRlX2l0ZXIJPSBubnBmc193cml0ZV9pdGVyLA0K KyNlbmRpZg0KICAgICAubW1hcAk9IG5ucGZzX2ZpbGVfbW1hcCwNCiAgICAg Lm9wZW4JPSBubnBmc19vcGVuLA0KICAgICAuZmx1c2gJPSBubnBmc19mbHVz aCwNCiAgICAgLnJlbGVhc2UJPSBubnBmc19yZWxlYXNlX2ZpbGUsDQogICAg IC5mc3luYwk9IG5ucGZzX2ZzeW5jLA0KLSAgICAuc2VuZGZpbGUJPSBubnBm c19zZW5kZmlsZSwNCisgICAgLnNwbGljZV9yZWFkID0gbm5wZnNfc3BsaWNl X3JlYWQsDQogfTsNCiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZz X2RlYWRfb3BlcmF0aW9ucyA9IHsNCiB9Ow0KIA0KIHN0cnVjdCBmaWxlX29w ZXJhdGlvbnMgbm5wZnNfZGlyX29wZXJhdGlvbnMgPSB7DQorI2lmIChMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDExLDApKQ0KICAg ICAucmVhZGRpcgk9IG5ucGZzX3JlYWRkaXIsDQorI2Vsc2UNCisgICAgLml0 ZXJhdGUgICAgPSBubnBmc19pdGVyYXRlLA0KKyNlbmRpZg0KICAgICAuZmx1 c2gJPSBubnBmc19mbHVzaCwNCiB9Ow0KIA0KZGlmZiAtdXByTiAtWG5vZGlm Zi50eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYyBhcmxh LWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYw0KLS0t IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMJMjAwNi0xMC0z MSAxMTowMjo0MS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLWZvci1saW51 eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYwkyMDE2LTAxLTEwIDIw OjMzOjE2LjA2MjkwMTk1NyArMDEwMA0KQEAgLTU0LDcgKzU0LDExIEBAIGV4 dGVybiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2ZvcHMNCiANCiBz dHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSBubnBmc19mc190eXBlID0gew0KICAg ICAgICBuYW1lOiAgICAgICAgICAgIm5ucGZzIiwNCisjaWYgKExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkpDQogICAgICAg IGdldF9zYjogICAgICAgICBubnBmc19nZXRfc2IsDQorI2Vsc2UNCisgICAg ICAgbW91bnQ6ICAgICAgICAgIG5ucGZzX21vdW50LA0KKyNlbmRpZg0KICAg ICAgICBraWxsX3NiOiAgICAgICAga2lsbF9saXR0ZXJfc3VwZXIsDQogICAg ICAgIG93bmVyOiAgICAgICAgICBUSElTX01PRFVMRSwNCiB9Ow0KZGlmZiAt dXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZz X21lc3NhZ2UuYyBhcmxhLWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25u cGZzX21lc3NhZ2UuYw0KLS0tIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBm c19tZXNzYWdlLmMJMjAwNy0wMS0wOSAxNzozMzozMS4wMDAwMDAwMDAgKzAx MDANCisrKyBhcmxhLWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZz X21lc3NhZ2UuYwkyMDE2LTAxLTExIDIwOjQ4OjE4Ljc3MDQwMzcxNSArMDEw MA0KQEAgLTQ1LDcgKzQ1LDcgQEANCiAjaW5jbHVkZSA8bGludXgvbW91bnQu aD4NCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBubnBmc19tZXNz YWdlLmMsdiAxLjE0My4yLjEgMjAwNy8wMS8wOSAxNjozMzozMSB0b2wgRXhw ICQiKTsNCitSQ1NJRCgiJElkOiBubnBmc19tZXNzYWdlLmMsdiAxLjE0NSAy MDEwLzA4LzA4IDIwOjQzOjA1IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0K IHN0YXRpYyB2b2lkDQpAQCAtNTUsOSArNTUsMTUgQEAgc3RhdGljIHZvaWQN CiBubnBmc19kX3JlbW92ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQogew0K ICAgICBOTlBGU0RFQihYREVCTVNHLCAoIm5ucGZzX2RfcmVtb3ZlICVwXG4i LCBkZW50cnkpKTsNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDIsNiwzOCkpDQogICAgIHNwaW5fbG9jaygmZGNhY2hlX2xv Y2spOw0KICAgICBkZ2V0X2xvY2tlZChkZW50cnkpOw0KICAgICBzcGluX3Vu bG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorICAgIHNwaW5fbG9jaygm ZGVudHJ5LT5kX2xvY2spOw0KKyAgICBkZ2V0X2Rsb2NrKGRlbnRyeSk7DQor ICAgIHNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9jayk7DQorI2VuZGlmDQog ICAgIGRfZHJvcChkZW50cnkpOw0KICAgICBkcHV0KGRlbnRyeSk7DQogfQ0K QEAgLTEyMSw4ICsxMjcsMTQgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9k ZShzdHJ1Y3Qgbm5wZnMgKg0KICAgICBzdHJ1Y3QgaW5vZGUgKmRpLCAqaW5v ZGU7DQogICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCA9IE5VTEw7DQogICAg IHN0cnVjdCBxc3RyIHNxc3RyOw0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApKQ0KICAgICBzdHJ1Y3QgbGlzdF9o ZWFkICphbGlhczsNCi0gICAgDQorI2Vsc2UNCisjaWYgKExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKSkNCisgICAgc3RydWN0 IGhsaXN0X25vZGUgKmFsaWFzOw0KKyNlbmRpZg0KKyNlbmRpZg0KKw0KICAg ICBOTlBGU0RFQihYREVCTVNHLCAoIm5ucGZzX21lc3NhZ2VfaW5zdGFsbG5v ZGVcbiIpKTsNCiAgICAgDQogICAgIGVycm9yID0gbm5wZnNfbm9kZV9maW5k KG5ucGZzcCwgJm1lc3NhZ2UtPnBhcmVudF9oYW5kbGUsICZkcCk7DQpAQCAt MTc2LDEyICsxODgsMjYgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZShz dHJ1Y3Qgbm5wZnMgKg0KICAgICAgKg0KICAgICAgKi8NCiAgICAgDQorI2lm IChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkp DQogICAgIGFsaWFzID0gZGktPmlfZGVudHJ5Lm5leHQ7DQogICAgIHdoaWxl IChhbGlhcyAhPSAmZGktPmlfZGVudHJ5KSB7DQogCXBhcmVudCA9IGxpc3Rf ZW50cnkoYWxpYXMsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KLQlzcGlu X2xvY2soJmRjYWNoZV9sb2NrKTsNCi0JZGdldF9sb2NrZWQocGFyZW50KTsN Ci0Jc3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyNpZiAo TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApKQ0K KyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJlbnQsIGFsaWFzLCAmZGkt PmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2Vsc2UNCisgICAgaGxpc3RfZm9y X2VhY2hfZW50cnkocGFyZW50LCAmZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7 DQorI2VuZGlmDQorI2VuZGlmDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKQ0KKyAgICBzcGluX2xvY2soJmRj YWNoZV9sb2NrKTsNCisgICAgZGdldF9sb2NrZWQocGFyZW50KTsNCisgICAg c3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICBzcGlu X2xvY2soJnBhcmVudC0+ZF9sb2NrKTsNCisgICAgZGdldF9kbG9jayhwYXJl bnQpOw0KKyAgICBzcGluX3VubG9jaygmcGFyZW50LT5kX2xvY2spOw0KKyNl bmRpZg0KIAlkZW50cnkgPSBkX2xvb2t1cChwYXJlbnQsICZzcXN0cik7DQog CU5OUEZTREVCKFhERUJNU0csDQogCQkgKCJubnBmc19tZXNzYWdlX2luc3Rh bGxub2RlOiBhbGlhcyAlcCwgbG9va3VwICVwXG4iLA0KQEAgLTIzMyw3ICsy NTksOSBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxub2RlKHN0cnVjdCBubnBm cyAqDQogCQ0KIAlkcHV0KGRlbnRyeSk7DQogCWRlbnRyeSA9IE5VTEw7DQor I2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs MCkpDQogCWFsaWFzID0gYWxpYXMtPm5leHQ7DQorI2VuZGlmDQogCWRwdXQo cGFyZW50KTsNCiAgICAgfQ0KICAgICBOTlBGU0RFQihYREVCTVNHLCAoIm5u cGZzX21lc3NhZ2VfaW5zdGFsbG5vZGU6IGRvbmUgaW5zdGFsbGluZ1xuIikp Ow0KQEAgLTI2OCw3ICsyOTYsMTEgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxs YXR0cihzdHJ1Y3Qgbm5wZnMgKg0KICAgICB9DQogDQogICAgIGlub2RlID0g WE5PREVfVE9fVk5PREUodCk7DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDYsMCkpDQogICAgIGRlbnRyeSA9IGxpc3Rf ZW50cnkoaW5vZGUtPmlfZGVudHJ5Lm5leHQsIHN0cnVjdCBkZW50cnksIGRf YWxpYXMpOw0KKyNlbHNlDQorICAgIGRlbnRyeSA9IGhsaXN0X2VudHJ5KGlu b2RlLT5pX2RlbnRyeS5maXJzdCwgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7 DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCTVNHLCAoIm5u cGZzX21lc3NhZ2VfaW5zdGFsbGF0dHIgbmFtZTolc1xuIiwNCiAJCSAgICAg ICBkZW50cnktPmRfbmFtZS5uYW1lKSk7DQpAQCAtMzk2LDE3ICs0MjgsMzgg QEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsZGF0YShzdHJ1Y3Qgbm5wZnMgKg0K IHN0YXRpYyB2b2lkDQogY2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5v ZGUgKmlub2RlLCBpbnQgcGFyZW50KQ0KIHsNCisgICAgc3RydWN0IGRlbnRy eSAqZGVudHJ5Ow0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMyw2LDApKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICphbGlh czsNCisjZWxzZQ0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMyw5LDApKQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqYWxp YXM7DQorI2VuZGlmDQorI2VuZGlmDQogDQogIGFnYWluOg0KKyNpZiAoTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KSkNCiAg ICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgLyog VE9ETzogZmluZCB0aGUgZGVudHJ5IHRvIGxvY2sgKi8NCisgICAgLypzcGlu X2xvY2soJmRlbnRyeS0+ZF9sb2NrKTsqLw0KKyNlbmRpZg0KKyNpZiAoTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApKQ0KICAg ICBhbGlhcyA9IGlub2RlLT5pX2RlbnRyeS5uZXh0Ow0KICAgICB3aGlsZSAo YWxpYXMgIT0gJmlub2RlLT5pX2RlbnRyeSkgew0KLQlzdHJ1Y3QgZGVudHJ5 ICpkZW50cnk7DQorI2Vsc2UNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDMsOSwwKSkNCisgICAgaGxpc3RfZm9yX2VhY2hf ZW50cnkoZGVudHJ5LCBhbGlhcywgJmlub2RlLT5pX2RlbnRyeSwgZF9hbGlh cykgew0KKyNlbHNlDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRy eSwgJmlub2RlLT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbmRpZg0KKyNl bmRpZg0KIAlzdHJ1Y3QgbGlzdF9oZWFkICpzdWJkaXJzOw0KIAlzdHJ1Y3Qg bm5wZnNfZGVudHJ5X2RhdGEgKnhkOw0KIAkNCisjaWYgKExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKSkNCiAJZGVudHJ5ID0g bGlzdF9lbnRyeShhbGlhcywgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQor I2VuZGlmDQogCWlmIChkZW50cnkgPT0gTlVMTCkgew0KIAkgICAgcHJpbnRr KEtFUk5fRU1FUkcgIk5OUEZTIFBhbmljOiBkZW50cnkgaW4gYWxpYXMgbGlz dCBpcyBudWxsXG4iKTsNCiAJICAgIGJyZWFrOw0KQEAgLTQ0MiwxNCArNDk1 LDI2IEBAIGNsZWFyX2FsbF9jaGlsZHJlbiAoc3RydWN0IGlub2RlICppbm9k ZSwNCiANCiAJICAgIC8qIFRocm93IGltbWVkaWF0ZWx5ICovDQogCSAgICBp ZiAobm5wZnNfZGNvdW50KGNoaWxkKSA9PSAwKSB7DQorI2lmIChMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKQ0KIAkgICAg ICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisJCS8q IFRPRE86IHVubG9jayB0aGUgZGVudHJ5ICovDQorCQkvKnNwaW5fdW5sb2Nr KCZkZW50cnktPmRfbG9jayk7Ki8NCisjZW5kaWYNCiAJCW5ucGZzX2RfcmVt b3ZlKGNoaWxkKTsNCiAJCWdvdG8gYWdhaW47DQogCSAgICB9DQogCX0NCisj aWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiww KSkNCiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsNCisjZW5kaWYNCiAgICAgfQ0K KyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2 LDM4KSkNCiAgICAgc3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxz ZQ0KKyAgICAvKiBUT0RPOiB1bmxvY2sgdGhlIGRlbnRyeSAqLw0KKyAgICAv KnNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9jayk7Ki8NCisjZW5kaWYNCiB9 DQogDQogc3RhdGljIHZvaWQNCkBAIC02MDUsMTIgKzY3MCwxMCBAQCBnY19i bG9jayhzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCwNCiAgICAgfQ0KIA0KICAgICBp ZiAoIW5ucGZzX2Jsb2NrX2hhdmVfcCh4biwgb2Zmc2V0KSkgew0KLSNpZiAw ICAgLyogaGFwcGVucyB3aGVuIGRhZW1vbiBzZW5kcyBzZXZlcmFsIG1lc3Nh Z2VzIGZvciBzYW1lIGJsb2NrICovDQogCXByaW50ayhLRVJOX0VNRVJHICJO TlBGUy9nY19ibG9jazogIg0KIAkgICAgICAgIkVOT0VOVCAoJWQsJWQsJWQs JWQpIDB4JWxseFxuIiwgDQogCSAgICAgICB4bi0+aGFuZGxlLmEsIHhuLT5o YW5kbGUuYiwgeG4tPmhhbmRsZS5jLCB4bi0+aGFuZGxlLmQsIA0KIAkgICAg ICAgKHVuc2lnbmVkIGxvbmcgbG9uZylvZmZzZXQpOw0KLSNlbmRpZg0KIAly ZXR1cm4gLUVOT0VOVDsNCiAgICAgfQ0KIA0KQEAgLTcyNiw3ICs3ODksMTEg QEAgbm5wZnNfbWVzc2FnZV92ZXJzaW9uKHN0cnVjdCBubnBmcyAqbm5wZg0K IA0KIAl1aW50NjRfdCBibG9ja3NpemUgPSBtZXNzYWdlLT5ibG9ja3NpemU7 DQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigyLDYsMzkpKQ0KIAllcnJvciA9IHBhdGhfbG9va3VwKCIuIiwgMCwgJm5k KTsNCisjZWxzZQ0KKwllcnJvciA9IGtlcm5fcGF0aCgiLiIsIDAsICZuZC5w YXRoKTsNCisjZW5kaWYNCiAJaWYgKGVycm9yKSB7DQogCSAgICAvKg0KIAkg ICAgICogQmFkIGNhY2hlIHJvb3QsIGp1c3QgcmV0dXJuLg0KQEAgLTczNywx MiArODA0LDE2IEBAIG5ucGZzX21lc3NhZ2VfdmVyc2lvbihzdHJ1Y3Qgbm5w ZnMgKm5ucGYNCiAJCSAgICJubnBmc19tZXNzYWdlX3ZlcnNpb24gZmFpbGVk IHBhdGhfbG9va3VwLCAiDQogCQkgICAiZXJybm86ICVkXG4iLCBlcnJvcik7 DQogCX0gZWxzZSB7DQotCSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdl dChuZC5tbnQpOw0KLQkgICAgbm5wZnNwLT5jYWNoZWRpciA9IGRnZXQobmQu ZGVudHJ5KTsNCi0JICAgIHBhdGhfcmVsZWFzZSgmbmQpOw0KLQkgICAgDQor CSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdldChuZC5wYXRoLm1udCk7 DQorCSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChuZC5wYXRoLmRlbnRy eSk7DQorCSAgICBwYXRoX3B1dCgmbmQucGF0aCk7DQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCSAgICBu bnBmc3AtPnVpZCA9IGN1cnJlbnQtPmZzdWlkOw0KIAkgICAgbm5wZnNwLT5n aWQgPSBjdXJyZW50LT5mc2dpZDsNCisjZWxzZQ0KKyAgICAgICAgICAgIG5u cGZzcC0+dWlkID0gY3VycmVudF9mc3VpZCgpOw0KKyAgICAgICAgICAgIG5u cGZzcC0+Z2lkID0gY3VycmVudF9mc2dpZCgpOw0KKyNlbmRpZg0KIA0KIAkg ICAgLyogWFhYIHdlIHNob3VsZCB2YWxpZGF0ZSB0aGVzZSB2YWx1ZXMgKi8N CiAJICAgIG5ucGZzX2Jsb2Nrc2l6ZSA9IGJsb2Nrc2l6ZTsNCmRpZmYgLXVw ck4gLVhub2RpZmYudHh0IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19u b2RlLmMgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19u b2RlLmMNCi0tLSBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfbm9kZS5j CTIwMDctMDEtMDMgMTQ6NTI6MDIuMDAwMDAwMDAwICswMTAwDQorKysgYXJs YS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19ub2RlLmMJMjAx Ni0wMS0xMiAxOTozNToyMS43MTQwODMxMTAgKzAxMDANCkBAIC0xMzIsNyAr MTMyLDEzIEBAIG5ucGZzX3NldHNpemUoc3RydWN0IGlub2RlICppbm9kZSwg dWludDYNCiAJcHJpbnRrKCJubnBmc19zZXRzaXplOiB0cnVuY2F0aW5nIEAw eCVsbHVcbiIsDQogCSAgICAgICAodW5zaWduZWQgbG9uZyBsb25nKXNpemUp Ow0KICNlbmRpZg0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMyw4LDApKQ0KIAl2bXRydW5jYXRlKGlub2RlLCBzaXplKTsg LyogWFhYIHJldHZhbCAqLw0KKyNlbHNlDQorCWlmKCFpbm9kZV9uZXdzaXpl X29rKGlub2RlLCBzaXplKSkgew0KKwkgICAgdHJ1bmNhdGVfc2V0c2l6ZShp bm9kZSwgc2l6ZSk7DQorCX0NCisjZW5kaWYNCiAJbm5wZnNfYmxvY2tfdHJ1 bmNhdGUoeG4sIHNpemUpOw0KICAgICB9DQogfQ0KQEAgLTE1MCw5ICsxNTYs MTggQEAgbm5wZnNfYXR0cjJpbm9kZShjb25zdCBzdHJ1Y3Qgbm5wZnNfYXR0 cg0KIAlzdHJ1Y3QgdGltZXNwZWMgbm90aW1lID0gezB9Ow0KIA0KIAlpbm9k ZS0+aV9tb2RlICAgPSAwOw0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMywxNCwwKSkNCiAJaW5vZGUtPmlfdWlkICAgID0g MDsNCiAJaW5vZGUtPmlfZ2lkICAgID0gMDsNCisjZWxzZQ0KKwlpbm9kZS0+ aV91aWQgICAgPSBLVUlEVF9JTklUKDApOw0KKwlpbm9kZS0+aV9naWQgICAg PSBLR0lEVF9JTklUKDApOw0KKyNlbmRpZg0KKyNpZiAoTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywyLDApKQ0KIAlpbm9kZS0+aV9u bGluayAgPSAxOw0KKyNlbHNlDQorCXNldF9ubGluayhpbm9kZSwgMSk7DQor I2VuZGlmDQogCWlub2RlLT5pX2F0aW1lICA9IG5vdGltZTsNCiAJaW5vZGUt PmlfbXRpbWUgID0gbm90aW1lOw0KIAlpbm9kZS0+aV9jdGltZSAgPSBub3Rp bWU7DQpAQCAtMTY5LDcgKzE4NCwxMSBAQCBubnBmc19hdHRyMmlub2RlKGNv bnN0IHN0cnVjdCBubnBmc19hdHRyDQogICAgIGlmIChYQV9WQUxJRF9HSUQo YXR0cikpDQogCWlub2RlLT5pX2dpZCAgICA9IGF0dHItPnhhX2dpZDsNCiAg ICAgaWYgKFhBX1ZBTElEX05MSU5LKGF0dHIpKQ0KKyNpZiAoTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywyLDApKQ0KIAlpbm9kZS0+ aV9ubGluayAgPSBhdHRyLT54YV9ubGluazsNCisjZWxzZQ0KKwlzZXRfbmxp bmsoaW5vZGUsIGF0dHItPnhhX25saW5rKTsNCisjZW5kaWYNCiAgICAgDQog ICAgIGlmIChYQV9WQUxJRF9TSVpFKGF0dHIpKSB7DQogCW5ucGZzX3NldHNp emUoaW5vZGUsIGF0dHItPnhhX3NpemUpOw0KQEAgLTUxMCwxMSArNTI5LDE5 IEBAIG5ucGZzX2hhc19wYWcoY29uc3Qgc3RydWN0IG5ucGZzX25vZGUgKngN CiBpbnQNCiBubnBmc19ub2RlX3VzZXJzKHN0cnVjdCBpbm9kZSAqaW5vZGUp DQogew0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMyw2LDApKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpwb3M7DQorI2Vs c2UNCisgICAgc3RydWN0IGhsaXN0X25vZGUgKnBvczsNCisjZW5kaWYNCiAg ICAgaW50IHVzZXJzID0gMDsNCiAgICAgDQogICAgIC8qIFhYWCB0aGlzIHNo b3VsZCBwcm9iYWJseSBiZSBwcm90ZWN0ZWQgc29tZWhvdyAqLw0KKyNpZiAo TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApKQ0K ICAgICBsaXN0X2Zvcl9lYWNoKHBvcywgJmlub2RlLT5pX2RlbnRyeSkgew0K KyNlbHNlDQorICAgIGhsaXN0X2Zvcl9lYWNoKHBvcywgJmlub2RlLT5pX2Rl bnRyeSkgew0KKyNlbmRpZg0KIAlzdHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBs aXN0X2VudHJ5KHBvcywgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQogCWlm IChubnBmc19kY291bnQoZGVudHJ5KSA+IDEpDQogCSAgICB1c2VycysrOw0K ZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4 L25ucGZzX3N5c2NhbGxzLmMgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9s aW51eC9ubnBmc19zeXNjYWxscy5jDQotLS0gYXJsYS0wLjkwL25ucGZzL2xp bnV4L25ucGZzX3N5c2NhbGxzLmMJMjAwNy0wMS0wMyAxNToyNjoyNy4wMDAw MDAwMDAgKzAxMDANCisrKyBhcmxhLWZvci1saW51eC0zLjE4L25ucGZzL2xp bnV4L25ucGZzX3N5c2NhbGxzLmMJMjAxNi0wMS0xMiAyMjowNDowNy4zMDIz ODAyNTggKzAxMDANCkBAIC00Miw3ICs0Miw5IEBADQogI2luY2x1ZGUgPG5u cGZzL25ucGZzX3N5c2NhbGxzLmg+DQogI2luY2x1ZGUgPG5ucGZzL25ucGZz X2NvbW1vbi5oPg0KICNpbmNsdWRlIDxsaW51eC9maWxlLmg+DQorI2lmIChM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpKQ0K ICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPg0KKyNlbmRpZg0KICNpbmNs dWRlIDxsaW51eC9zbXAuaD4NCiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5o Pg0KIA0KQEAgLTUwLDYgKzUyLDExIEBADQogI2luY2x1ZGUgPGxpbnV4L3Nl Y3VyaXR5Lmg+DQogI2VuZGlmDQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NP REUgPj0gS0VSTkVMX1ZFUlNJT04oMyw3LDApKQ0KKyN1bmRlZiBTWVNDQUxM SEFDSw0KKy8qIHRoZSBtZXRob2QgdG8gcmVhZCAnbG93ZXJfYm91bmQnIGRv ZXMgbm90IHdvcmsgb24gbGF0ZXIga2VybmVscywgc2Ugbm5wZnNfc3lzY2Fs bHMtbG9zc2FnZS5jICovDQorI2VuZGlmDQorDQogI2lmIDANCiAjaWZkZWYg Q09ORklHX0NPTVBBVA0KICNpbmNsdWRlIDxsaW51eC9pb2N0bDMyLmg+DQpA QCAtNjQsNyArNzEsNyBAQA0KICN1bmRlZiBORUVEX1ZJQ0VJT0NUTDMyDQog DQogI2lmZGVmIFJDU0lEDQotUkNTSUQoIiRJZDogbm5wZnNfc3lzY2FsbHMu Yyx2IDEuMTIyIDIwMDcvMDEvMDMgMTQ6MjY6MjcgdG9sIEV4cCAkIik7DQor UkNTSUQoIiRJZDogbm5wZnNfc3lzY2FsbHMuYyx2IDEuMTI1IDIwMTAvMDgv MDggMjA6NDM6MDYgdG9sIEV4cCAkIik7DQogI2VuZGlmDQogDQogc3RhdGlj IHN0cnVjdCBwcm9jX2Rpcl9lbnRyeSAqbm5wZnNfcHJvY2ZzX2RpcjsNCkBA IC04MiwxMiArODksMjIgQEAgdHlwZWRlZiBzdHJ1Y3QgYWZzcHJvY2RhdGEg ew0KICAgICB1bnNpZ25lZCBsb25nIHN5c2NhbGw7DQogfSBhZnNwcm9jZGF0 YTsNCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDIsNiwzNikpDQogc3RhdGljIGludA0KIG5ucGZzX3Byb2Nmc19pb2N0 bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwNCiAJ CSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKTsNCisj ZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVj dCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWdu ZWQgbG9uZyBhcmcpOw0KKyNlbmRpZg0KIA0KIHN0YXRpYyBzdHJ1Y3QgZmls ZV9vcGVyYXRpb25zIG5ucGZzX3Byb2Nmc19mb3BzID0gew0KKyNpZiAoTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KSkNCiAg ICAgLmlvY3RsID0gbm5wZnNfcHJvY2ZzX2lvY3RsLA0KKyNlbHNlDQorICAg IC51bmxvY2tlZF9pb2N0bCA9IG5ucGZzX3Byb2Nmc19pb2N0bCwNCisjZW5k aWYNCiB9Ow0KIA0KIA0KQEAgLTE0Nyw1MyArMTY0LDUwIEBAIHN0YXRpYyBp bnQgbm5wZnNfc2VjX3JlZ2lzdGVyZWQgPSAwOw0KICNkZWZpbmUgU0VDMlBB RyhzKSAobm5wZnNfcGFnX3QpKHVuc2lnbmVkIGxvbmcpKHMpDQogI2RlZmlu ZSBQQUcyU0VDKHApICh2b2lkICopKHVuc2lnbmVkIGxvbmcpKHApDQogDQot c3RhdGljIGludA0KLW5ucGZzX3NlY190YXNrX2FsbG9jKHN0cnVjdCB0YXNr X3N0cnVjdCAqcCkNCi17DQotICAgIG5ucGZzX3BhZ190IHBhZyA9IFNFQzJQ QUcoY3VycmVudC0+c2VjdXJpdHkpOw0KLSAgICBpZiAocGFnKQ0KLQlwLT5z ZWN1cml0eSA9IFBBRzJTRUMocGFnKTsNCi0gICAgcmV0dXJuIDA7DQotfQ0K LQ0KLXN0YXRpYyB2b2lkDQotbm5wZnNfc2VjX3Rhc2tfZnJlZShzdHJ1Y3Qg dGFza19zdHJ1Y3QgKnApDQotew0KLSAgICBubnBmc19wYWdfdCBwYWcgPSBT RUMyUEFHKHAtPnNlY3VyaXR5KTsNCi0gICAgaWYgKHBhZykNCi0JcC0+c2Vj dXJpdHkgPSBOVUxMOw0KLX0NCi0NCiBzdGF0aWMgbm5wZnNfcGFnX3QNCiBu bnBmc19nZXRfcGFnX3NlYyh2b2lkKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbm5wZnNf cGFnX3QgcGFnID0gU0VDMlBBRyhjdXJyZW50LT5zZWN1cml0eSk7DQorI2Vs c2UNCisgICAgbm5wZnNfcGFnX3QgcGFnID0gU0VDMlBBRyhjdXJyZW50X3Nl Y3VyaXR5KCkpOw0KKyNlbmRpZg0KICAgICBpZiAocGFnKQ0KIAlyZXR1cm4g cGFnOw0KIA0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W RVJTSU9OKDIsNiwyOCkpDQogICAgIHJldHVybiBjdXJyZW50LT51aWQ7DQor I2Vsc2UNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsMTQsMCkpDQorICAgIHJldHVybiBjdXJyZW50X3VpZCgpOw0KKyNl bHNlDQorICAgIHsga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgpOyByZXR1 cm4ga3VpZC52YWw7IH0NCisjZW5kaWYNCisjZW5kaWYNCiB9DQogDQogc3Rh dGljIGludA0KIG5ucGZzX3NldF9wYWdfc2VjKHZvaWQpDQogew0KICAgICBz dGF0aWMgbm5wZnNfcGFnX3QgcGFnbnVtID0gTk5QRlNfUEFHX0xMSU07DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYs MjkpDQorICAgIHN0cnVjdCBjcmVkICpjcmVkOw0KKyNlbmRpZg0KIA0KICAg ICBpZiAocGFnbnVtID09IE5OUEZTX1BBR19VTElNKQ0KIAlyZXR1cm4gLUVO T01FTTsNCiAgICAgLyogcGFnbnVtID0gTk5QRlNfUEFHX0xMSU07ICovDQog ICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJ T04oMiw2LDI4KQ0KICAgICBjdXJyZW50LT5zZWN1cml0eSA9IFBBRzJTRUMo cGFnbnVtKTsNCisjZWxzZQ0KKyAgICBjcmVkID0gKHN0cnVjdCBjcmVkICop IGN1cnJlbnQtPmNyZWQ7DQorICAgIGNyZWQtPnNlY3VyaXR5ID0gUEFHMlNF QyhwYWdudW0pOw0KKyNlbmRpZg0KICAgICBwYWdudW0rKzsNCiAgICAgcmV0 dXJuIDA7DQogfQ0KIA0KLXN0YXRpYyBzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0 aW9ucyBubnBmc19zZWNfb3BzID0gew0KLSAgICAudGFza19hbGxvY19zZWN1 cml0eSA9IG5ucGZzX3NlY190YXNrX2FsbG9jLA0KLSAgICAudGFza19mcmVl X3NlY3VyaXR5ID0gbm5wZnNfc2VjX3Rhc2tfZnJlZSwNCi0vLyAgICAudGFz a19yZXBhcmVudF90b19pbml0ID0gbm5wZnNfc2VjX3JlcGFyZW50X3RvX2lu aXQsDQotfTsNCi0NCiAjZW5kaWYgLyogQ09ORklHX1NFQ1VSSVRZICovDQog DQogI2lmZGVmIEdST1VQUEFHUw0KQEAgLTIwNiw3ICsyMjAsMTIgQEAgZmlu ZF9wYWcoc3RydWN0IGdyb3VwX2luZm8gKmdpKQ0KICAgICBOTlBGU0RFQihY REVCU1lTLCAoImZpbmRfcGFnOiBuZ3JvdXBzID0gJWRcbiIsIGdpLT5uZ3Jv dXBzKSk7DQogDQogICAgIGZvciAoaSA9IGdpLT5uZ3JvdXBzIC0gMTsgaSA+ PSAwOyBpLS0pIHsNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMTQsMCkpDQogCWdpZF90IGdyb3VwID0gR1JPVVBfQVQo Z2ksIGkpOw0KKyNlbHNlDQorCWtnaWRfdCBrZ3JvdXAgPSBHUk9VUF9BVChn aSwgaSk7DQorCWdpZF90IGdyb3VwID0ga2dyb3VwLnZhbDsNCisjZW5kaWYN CiAJaWYgKChubnBmc19wYWdfdClncm91cCA+PSBOTlBGU19QQUdfTExJTSAm JiAobm5wZnNfcGFnX3QpZ3JvdXAgPCBOTlBGU19QQUdfVUxJTSkgew0KIAkg ICAgTk5QRlNERUIoWERFQlNZUywNCiAJCSAgICAgKCJmaW5kX3BhZzogRXhp c3RpbmcgcGFnICV1IGF0IHBvcyAldVxuIiwgZ3JvdXAsIGkpKTsNCkBAIC0y MjIsMTUgKzI0MSwzMSBAQCBmaW5kX3BhZyhzdHJ1Y3QgZ3JvdXBfaW5mbyAq Z2kpDQogc3RhdGljIG5ucGZzX3BhZ190DQogbm5wZnNfZ2V0X3BhZ19ncm91 cCh2b2lkKQ0KIHsNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJO RUxfVkVSU0lPTigyLDYsMjgpKQ0KICAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAq Z2kgPSBjdXJyZW50LT5ncm91cF9pbmZvOw0KICAgICBubnBmc19wYWdfdCBy ZXQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgc3RydWN0IGdyb3Vw X2luZm8gKmdpID0gZ2V0X2N1cnJlbnRfZ3JvdXBzKCk7DQorI2lmIChMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApKQ0KKyAg ICBubnBmc19wYWdfdCByZXQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbHNlDQor ICAgIGt1aWRfdCBrdWlkID0gY3VycmVudF91aWQoKTsNCisgICAgbm5wZnNf cGFnX3QgcmV0ID0ga3VpZC52YWw7DQorI2VuZGlmDQorI2VuZGlmDQogICAg IGludCBpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVM X1ZFUlNJT04oMiw2LDI4KQ0KICAgICBnZXRfZ3JvdXBfaW5mbyhnaSk7DQor I2VuZGlmDQogDQogICAgIGkgPSBmaW5kX3BhZyhnaSk7DQogICAgIGlmIChp ICE9IE5OUEZTX1BBR19OT1RGT1VORCkNCisjaWYgKExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkpDQogCXJldCA9IEdST1VQ X0FUKGdpLCBpKTsNCisjZWxzZQ0KKwl7IGtnaWRfdCBrZ2lkID0gR1JPVVBf QVQoZ2ksIGkpOyByZXQgPSBrZ2lkLnZhbDsgfQ0KKyNlbmRpZg0KIA0KICAg ICBwdXRfZ3JvdXBfaW5mbyhnaSk7DQogDQpAQCAtMjQyLDEzICsyNzcsMTkg QEAgbm5wZnNfZ2V0X3BhZ19ncm91cCh2b2lkKQ0KIHN0YXRpYyBpbnQNCiBz dG9yZV9wYWcobm5wZnNfcGFnX3QgcGFnbnVtKQ0KIHsNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg c3RydWN0IGdyb3VwX2luZm8gKm9sZF9naSA9IGN1cnJlbnQtPmdyb3VwX2lu Zm87DQorI2Vsc2UNCisgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqb2xkX2dpID0g Z2V0X2N1cnJlbnRfZ3JvdXBzKCk7DQorI2VuZGlmDQogICAgIHN0cnVjdCBn cm91cF9pbmZvICpuZXdfZ2k7DQotICAgIGludCBuYmxvY2tzLCBjb3VudDsN CisgICAgdW5zaWduZWQgaW50IG5ibG9ja3MsIGNvdW50Ow0KICAgICBpbnQg Zm91bmQgPSAwOw0KICAgICBpbnQgaSwgazsNCiAgICAgDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpICAgIA0K ICAgICBnZXRfZ3JvdXBfaW5mbyhvbGRfZ2kpOw0KKyNlbmRpZg0KIA0KICAg ICBpID0gZmluZF9wYWcob2xkX2dpKTsNCiAgICAgaWYgKGkgIT0gTk5QRlNf UEFHX05PVEZPVU5EKQ0KQEAgLTI3NCwxMSArMzE1LDE4IEBAIHN0b3JlX3Bh ZyhubnBmc19wYWdfdCBwYWdudW0pDQogCWNvdW50IC09IE5HUk9VUFNfUEVS X0JMT0NLOw0KICAgICB9DQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDE0LDApKQ0KICAgICBpZiAoZm91bmQpDQog CUdST1VQX0FUKG5ld19naSwgaSkgPSBwYWdudW07DQogICAgIGVsc2UNCiAJ R1JPVVBfQVQobmV3X2dpLCBuZXdfZ2ktPm5ncm91cHMgLSAxKSA9IHBhZ251 bTsNCi0gICAgDQorI2Vsc2UNCisgICAgaWYgKGZvdW5kKQ0KKwl7IGtnaWRf dCBrZ2lkID0gS0dJRFRfSU5JVChwYWdudW0pOyBHUk9VUF9BVChuZXdfZ2ks IGkpID0ga2dpZDsgfQ0KKyAgICBlbHNlDQorCXsga2dpZF90IGtnaWQgPSBL R0lEVF9JTklUKHBhZ251bSk7IEdST1VQX0FUKG5ld19naSwgbmV3X2dpLT5u Z3JvdXBzIC0gMSkgPSBrZ2lkOyB9DQorI2VuZGlmDQorICAgICANCiAgICAg c2V0X2N1cnJlbnRfZ3JvdXBzKG5ld19naSk7DQogICAgIHB1dF9ncm91cF9p bmZvKG5ld19naSk7DQogICAgIHB1dF9ncm91cF9pbmZvKG9sZF9naSk7DQpA QCAtMzE3LDcgKzM2NSwxNSBAQCBubnBmc19nZXRfcGFnKCkNCiAgICAgcmV0 dXJuIG5ucGZzX2dldF9wYWdfZ3JvdXAoKTsNCiAjZW5kaWYgLyogR1JPVVBQ QUdTICovDQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVM X1ZFUlNJT04oMiw2LDI4KSkNCiAgICAgcmV0dXJuIGN1cnJlbnQtPnVpZDsN CisjZWxzZQ0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxNCwwKSkNCisgICAgcmV0dXJuIGN1cnJlbnRfdWlkKCk7DQor I2Vsc2UNCisgICAgeyBrdWlkX3Qga3VpZCA9IGN1cnJlbnRfdWlkKCk7IHJl dHVybiBrdWlkLnZhbDsgfQ0KKyNlbmRpZg0KKyNlbmRpZg0KIH0NCiANCiBz dGF0aWMgaW5saW5lIGludA0KQEAgLTQyMiw3ICs0NzgsNyBAQCBubnBmc19z ZXRncm91cHMxNiAoaW50IGdpZHNldHNpemUsIG9sZF9nDQogI2VuZGlmIC8q IFNZU0NBTExIQUNLICovDQogI2VuZGlmIC8qIEdST1VQUEFHUyAqLw0KIA0K LXN0cnVjdCBmaWxlX2hhbmRsZSB7DQorc3RydWN0IG5ucGZzX2ZpbGVfaGFu ZGxlIHsNCiAgICAgbm5wZnNfZGV2X3QgZGV2Ow0KICAgICBpbm9fdCBpbm9k ZTsNCiAgICAgX191MzIgZ2VuOw0KQEAgLTUxMiwxMSArNTY4LDE5IEBAIG5u cGZzX2RlYnVnX3ByaW50IChzdHJ1Y3QgYXJsYVZpY2VJb2N0bA0KIHN0YXRp YyBzdHJ1Y3QgZGVudHJ5ICoNCiB1c2VyX3BhdGgyZGVudHJ5IChzdHJ1Y3Qg bmFtZWlkYXRhICpuZCwgY2hhciAqdXNlcl9wYXRoLCBpbnQgZm9sbG93KQ0K IHsNCi0gICAgY2hhciAqa25hbWU7DQogICAgIGludCBmbGFncyA9IDA7DQog ICAgIGludCBlcnJvciA9IDA7DQogDQotICAgIGtuYW1lID0gZ2V0bmFtZSAo dXNlcl9wYXRoKTsNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsNywwKSkNCisgICAgY2hhciAqa25hbWU7DQorICAgIGtu YW1lID0gZ2V0bmFtZSh1c2VyX3BhdGgpOw0KKyNlbHNlDQorICAgIGNvbnN0 IGNoYXIgKmtuYW1lOw0KKyAgICBzdHJ1Y3QgZmlsZW5hbWUgKmZuYW1lOw0K KyAgICBmbmFtZSA9IGdldG5hbWUodXNlcl9wYXRoKTsNCisgICAga25hbWUg PSBmbmFtZS0+bmFtZTsNCisjZW5kaWYNCisNCiAgICAgaWYgKElTX0VSUihr bmFtZSkpDQogCXJldHVybiBFUlJfUFRSKFBUUl9FUlIoa25hbWUpKTsNCiAg ICAgaWYgKGZvbGxvdykNCkBAIC01MjQsMTEgKzU4OCwxOSBAQCB1c2VyX3Bh dGgyZGVudHJ5IChzdHJ1Y3QgbmFtZWlkYXRhICpuZCwNCiANCiAgICAgTk5Q RlNERUIoWERFQk1TRywgKCJubnBmc19zeXNjYWxsOiBsb29raW5nIHVwOiAl c1xuIiwga25hbWUpKTsNCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkpDQogICAgIGVycm9yID0gcGF0aF9s b29rdXAoa25hbWUsIGZsYWdzLCBuZCk7DQorI2Vsc2UNCisgICAgZXJyb3Ig PSBrZXJuX3BhdGgoa25hbWUsIGZsYWdzLCAmKG5kLT5wYXRoKSk7DQorI2Vu ZGlmDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDcsMCkpDQogICAgIHB1dG5hbWUoa25hbWUpOw0KKyNlbHNlDQorICAg IGttZW1fY2FjaGVfZnJlZShuYW1lc19jYWNoZXAsICh2b2lkICopa25hbWUp Ow0KKyNlbmRpZg0KICAgICBpZiAoZXJyb3IpDQogCXJldHVybiBFUlJfUFRS KGVycm9yKTsNCi0gICAgcmV0dXJuIG5kLT5kZW50cnk7DQorICAgIHJldHVy biBuZC0+cGF0aC5kZW50cnk7DQogfQ0KIA0KIGFzbWxpbmthZ2UgbG9uZw0K QEAgLTU0MCwxMiArNjEyLDIwIEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0 aW9uLA0KIHsNCiAgICAgbG9uZyBlcnJvciA9IDA7DQogICAgIHN0cnVjdCBh cmxhVmljZUlvY3RsIHZpY2VfaW9jdGw7IA0KLSAgICBzdHJ1Y3Qgbm5wZnNf bWVzc2FnZV9waW9jdGwgbXNnOw0KKyAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2Fn ZV9waW9jdGwgKm1zZyA9IE5VTEw7DQogICAgIHN0cnVjdCBubnBmc19tZXNz YWdlX3dha2V1cCAqbXNnMjsNCiAgICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5 ID0gTlVMTDsNCiAgICAgc3RydWN0IG5hbWVpZGF0YSBuZDsNCiAgICAgDQor ICAgIG1zZyA9IGttYWxsb2Moc2l6ZW9mKCptc2cpLCBHRlBfS0VSTkVMKTsN CisgICAgaWYgKG1zZyA9PSBOVUxMKQ0KKyAgICAgIHJldHVybiAtRU5PTUVN Ow0KKw0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMiw2LDM5KSkNCiAgICAgbG9ja19rZXJuZWwoKTsNCisjZWxzZQ0KKyAg ICAvKiBUT0RPOiBsb2NrX2tlcm5lbCgpIGlzIHJlbW92ZWQsIGNvbnNpZGVy IGFkZGluZyBhbiBwcml2YXRlIGxvY2sgKi8NCisjZW5kaWYNCiANCiAgICAg Tk5QRlNERUIoWERFQlNZUywgKCJzeXNfYWZzIGtlcm5lbCBsb2NrZWRcbiIp KTsNCiANCkBAIC01NzUsNyArNjU1LDcgQEAgc3lzX2Fmc19pbnQgKGludCBv cGVyYXRpb24sDQogCSAgICBnb3RvIHVubG9jazsNCiAJfQ0KIAlpZiAodmlj ZV9pb2N0bC5pbl9zaXplICE9IDApIHsNCi0JICAgIGlmKGNvcHlfZnJvbV91 c2VyKCZtc2cubXNnLA0KKwkgICAgaWYoY29weV9mcm9tX3VzZXIoJm1zZy0+ bXNnLA0KIAkJCSAgICAgIHZpY2VfaW9jdGwuaW4sDQogCQkJICAgICAgdmlj ZV9pb2N0bC5pbl9zaXplKSAhPSAwKSB7DQogCQllcnJvciA9IC1FRkFVTFQ7 DQpAQCAtNjI4LDE5ICs3MDgsMjMgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVy YXRpb24sDQogCQllcnJvciA9IC1FSU5WQUw7DQogCQlnb3RvIHVubG9jazsN CiAJICAgIH0NCi0JICAgIG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KKwkg ICAgbXNnLT5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KIAl9DQogDQotCW1zZy5o ZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BJT0NUTDsNCi0JbXNnLm9wY29k ZSA9IGFfb3Bjb2RlOw0KKwltc2ctPmhlYWRlci5vcGNvZGUgPSBOTlBGU19N U0dfUElPQ1RMOw0KKwltc2ctPm9wY29kZSA9IGFfb3Bjb2RlOw0KIAkNCi0J bXNnLmluc2l6ZSAgID0gdmljZV9pb2N0bC5pbl9zaXplOw0KLQltc2cub3V0 c2l6ZSAgPSB2aWNlX2lvY3RsLm91dF9zaXplOw0KLQltc2cuY3JlZC51aWQg PSBjdXJyZW50LT51aWQ7DQotCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9w YWcoKTsNCisJbXNnLT5pbnNpemUgICA9IHZpY2VfaW9jdGwuaW5fc2l6ZTsN CisJbXNnLT5vdXRzaXplICA9IHZpY2VfaW9jdGwub3V0X3NpemU7DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgp DQorCW1zZy0+Y3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisg ICAgICAgIG1zZy0+Y3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRp Zg0KKwltc2ctPmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KIAkNCi0J ZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYygmbm5wZnNbMF0sICZtc2cuaGVh ZGVyLCBzaXplb2YobXNnKSk7IC8qIFhYWCAqLw0KLQltc2cyID0gKHN0cnVj dCBubnBmc19tZXNzYWdlX3dha2V1cCAqKSAmbXNnOw0KKwllcnJvciA9IG5u cGZzX21lc3NhZ2VfcnBjKCZubnBmc1swXSwgJm1zZy0+aGVhZGVyLCBzaXpl b2YoKm1zZykpOyAvKiBYWFggKi8NCisJbXNnMiA9IChzdHJ1Y3Qgbm5wZnNf bWVzc2FnZV93YWtldXAgKikgbXNnOw0KIAlpZiAoZXJyb3IgPT0gMCkNCiAJ ICAgIGVycm9yID0gbXNnMi0+ZXJyb3I7DQogDQpAQCAtNjc1LDEyICs3NTks MTcgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQogICAgIA0KICB1 bmxvY2s6DQogICAgIGlmIChkZW50cnkpDQotCXBhdGhfcmVsZWFzZSgmbmQp Ow0KKwlwYXRoX3B1dCgmbmQucGF0aCk7DQogDQogICAgIE5OUEZTREVCKFhE RUJTWVMsICgibm5wZnNfc3lzY2FsbCByZXR1cm5zIGVycm9yOiAlbGRcbiIs IGVycm9yKSk7DQogDQogICAgIE5OUEZTREVCKFhERUJTWVMsICgic3lzX2Fm cyBrZXJuZWwgdW5sb2NrXG4iKSk7DQorICAgIGtmcmVlKG1zZyk7DQorI2lm IChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkp KQ0KICAgICB1bmxvY2tfa2VybmVsKCk7DQorI2Vsc2UNCisgICAgLyogVE9E Tzogc2VlIHRoZSBjb21tZW50IGF0IGxvY2tfa2VybmVsKCkgYWJvdmUgKi8N CisjZW5kaWYNCiANCiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCkBAIC03Mjks OSArODE4LDE1IEBAIHN5c19hZnMgKGludCBvcGVyYXRpb24sDQogCQkgICAg ICAgYV9mb2xsb3dTeW1saW5rcyk7DQogfQ0KIA0KKyNpZiAoTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KSkNCiBzdGF0aWMg aW50DQogbm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUs IHN0cnVjdCBmaWxlICpmaWxlLA0KIAkJICAgdW5zaWduZWQgaW50IGNtZCwg dW5zaWduZWQgbG9uZyBhcmcpDQorI2Vsc2UNCitzdGF0aWMgbG9uZw0KK25u cGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwNCisJCSAgIHVu c2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQ0KKyNlbmRpZg0K IHsNCiAgICAgYWZzcHJvY2RhdGEgYXJnczsNCiAgICAgbG9uZyByZXQ7DQpA QCAtNzgwLDIxICs4NzUsMzEgQEAgc3RhdGljIGludCBubnBmc19pbml0X3By b2Nmcyh2b2lkKQ0KIHsNCiAgICAgc3RydWN0IHByb2NfZGlyX2VudHJ5ICpl bnRyeTsNCiAgICAgDQotICAgIG5ucGZzX3Byb2Nmc19kaXIgPSBwcm9jX21r ZGlyKE5OUEZTX1BST0NfRElSLCBwcm9jX3Jvb3RfZnMpOw0KKyAgICBubnBm c19wcm9jZnNfZGlyID0gcHJvY19ta2RpcigiZnMvIiBOTlBGU19QUk9DX0RJ UiwgTlVMTCk7DQogICAgIGlmIChubnBmc19wcm9jZnNfZGlyID09IE5VTEwp DQogCXJldHVybiAtRU5PTUVNOw0KICAgICANCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDMwKQ0KICAgICBubnBmc19w cm9jZnNfZGlyLT5vd25lciA9IFRISVNfTU9EVUxFOw0KKyNlbmRpZg0KICAg ICANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMTAsMCkpDQogICAgIGVudHJ5ID0gY3JlYXRlX3Byb2NfZW50cnkoTk5Q RlNfUFJPQ19OT0RFLCAwNjY2LCBubnBmc19wcm9jZnNfZGlyKTsNCisjZWxz ZQ0KKyAgICBlbnRyeSA9IHByb2NfY3JlYXRlKE5OUEZTX1BST0NfTk9ERSwg MCwgTlVMTCwgJm5ucGZzX3Byb2Nmc19mb3BzKTsNCisjZW5kaWYNCiAgICAg aWYgKGVudHJ5ID09IE5VTEwpIHsNCiAJTk5QRlNERUIoWERFQlNZUywgKCJu bnBmc19pbml0X3Byb2Nmczogbm8gbm9kZVxuIikpOw0KLQlyZW1vdmVfcHJv Y19lbnRyeShOTlBGU19QUk9DX0RJUiwgcHJvY19yb290X2ZzKTsNCisJcmVt b3ZlX3Byb2NfZW50cnkoImZzLyIgTk5QRlNfUFJPQ19ESVIsIE5VTEwpOw0K IAlyZXR1cm4gLUVOT01FTTsNCiAgICAgfQ0KICAgICANCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDMwKQ0KICAgICBl bnRyeS0+b3duZXIgPSBUSElTX01PRFVMRTsNCisjZW5kaWYNCisjaWYgKExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTAsMCkpDQog ICAgIGVudHJ5LT5wcm9jX2ZvcHMgPSAmbm5wZnNfcHJvY2ZzX2ZvcHM7DQor I2VuZGlmDQogDQogI2lmZGVmIFNZU0NBTExDT01QQVQNCiAgICAgaWYgKHJl Z2lzdGVyX2lvY3RsMzJfY29udmVyc2lvbihBUkxBX1ZJT0NfU1lTQ0FMTDMy LCBubnBmc19wcm9jZnNfaW9jdGwzMikpIHsNCkBAIC04MTUsNyArOTIwLDcg QEAgc3RhdGljIHZvaWQgbm5wZnNfZXhpdF9wcm9jZnModm9pZCkNCiAgICAg fQ0KICNlbmRpZiAvKiBTWVNDQUxMQ09NUEFUICovDQogICAgIHJlbW92ZV9w cm9jX2VudHJ5KE5OUEZTX1BST0NfTk9ERSwgbm5wZnNfcHJvY2ZzX2Rpcik7 DQotICAgIHJlbW92ZV9wcm9jX2VudHJ5KE5OUEZTX1BST0NfRElSLCBwcm9j X3Jvb3RfZnMpOw0KKyAgICByZW1vdmVfcHJvY19lbnRyeSgiZnMvIiBOTlBG U19QUk9DX0RJUiwgTlVMTCk7DQogfQ0KIA0KICNpZmRlZiBHUk9VUFBBR1MN CkBAIC04MzksMTQgKzk0NCw2IEBAIGluc3RhbGxfc2V0Z3JvdXBzKHZvaWQp DQogdm9pZA0KIGluc3RhbGxfYWZzX3N5c2NhbGwodm9pZCkNCiB7DQotI2lm ZGVmIENPTkZJR19TRUNVUklUWQ0KLSAgICBpZiAocmVnaXN0ZXJfc2VjdXJp dHkoJm5ucGZzX3NlY19vcHMpKQ0KLQlOTlBGU0RFQihYREVCU1lTLA0KLQkJ ICgiaW5zdGFsbF9hZnNfc3lzY2FsbDogbm5wZnNfaW5pdF9zZWMgZmFpbGVk XG4iKSk7DQotICAgIGVsc2UNCi0Jbm5wZnNfc2VjX3JlZ2lzdGVyZWQgPSAx Ow0KLSNlbmRpZg0KLQ0KICAgICBubnBmc19pbml0X3Byb2NmcygpOw0KIA0K ICNpZmRlZiBTWVNDQUxMSEFDSw0KQEAgLTg4NywxMiArOTg0LDYgQEAgcmVz dG9yZV9hZnNfc3lzY2FsbCAodm9pZCkNCiAjZW5kaWYNCiAjZW5kaWYgLyog U1lTQ0FMTEhBQ0sgKi8NCiANCi0jaWZkZWYgQ09ORklHX1NFQ1VSSVRZDQot ICAgIGlmIChubnBmc19zZWNfcmVnaXN0ZXJlZCkNCi0JaWYgKHVucmVnaXN0 ZXJfc2VjdXJpdHkoJm5ucGZzX3NlY19vcHMpKQ0KLQkgICAgcHJpbnRrKEtF Uk5fRU1FUkcgIm5ucGZzX2V4aXRfc2VjOiBjb3VsZG4ndCB1bnJlZ2lzdGVy XG4iKTsNCi0jZW5kaWYgLyogIUNPTkZJR19TRUNVUklUWSAqLw0KLQ0KICNp ZmRlZiBHUk9VUFBBR1MNCiAjaWZkZWYgU1lTQ0FMTEhBQ0sNCiAgICAgaWYg KG9sZF9zZXRncm91cHMpIHsNCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFy bGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMg YXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxs cy1sb3NzYWdlLmMNCi0tLSBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNf c3lzY2FsbHMtbG9zc2FnZS5jCTIwMDYtMTItMTEgMTc6MzE6NDUuMDAwMDAw MDAwICswMTAwDQorKysgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51 eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMJMjAxNi0wMS0xMiAxMzozNzow NS42NTczNjc0NzEgKzAxMDANCkBAIC00NywxMSArNDcsMjAgQEANCiAjaW5j bHVkZSA8bGludXgvdW5pc3RkLmg+DQogDQogI2lmZGVmIFJDU0lEDQotUkNT SUQoIiRJZDogbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jLHYgMS4xNyAyMDA2 LzEyLzExIDE2OjMxOjQ1IHRvbCBFeHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5u cGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyx2IDEuMTkgMjAxMC8wOC8wOCAyMDo0 MzowNSB0b2wgRXhwICQiKTsNCisjZW5kaWYNCisNCisjaWYgKExJTlVYX1ZF UlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDcsMCkpDQorLyogdGhl IG1ldGhvZCB0byByZWFkICdsb3dlcl9ib3VuZCcgZG9lcyBub3Qgd29yayBv biBsYXRlciBrZXJuZWxzICovDQorI3VuZGVmIFNZU0NBTExIQUNLDQogI2Vu ZGlmDQogDQogI2luY2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+DQorI2lmZGVm IFNZU0NBTExIQUNLDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDcsMCkpDQogc3RhdGljIHZvaWQgKmxvd2VyX2JvdW5k ID0gJmtlcm5lbF90aHJlYWQ7DQorI2VuZGlmDQorI2VuZGlmDQogDQogdm9p ZCAqIF9fYXR0cmlidXRlX18oKHdlYWspKSBzeXNfY2FsbF90YWJsZSh2b2lk KTsNCiBubnBmc19zeXNfY2FsbF9mdW5jdGlvbiAqbm5wZnNfc3lzX2NhbGxf dGFibGUgPQ0KQEAgLTYzLDYgKzcyLDExIEBAIGNvbnN0IGNoYXIgKiBfX2F0 dHJpYnV0ZV9fKCh3ZWFrKSkNCiAJCSAgICB1bnNpZ25lZCBsb25nICpvZmZz ZXQsDQogCQkgICAgY2hhciAqKm1vZG5hbWUsIGNoYXIgKm5hbWVidWYpOw0K IA0KKyNpZmRlZiBfX3g4Nl82NF9fDQorZXh0ZXJuIHJ3bG9ja190IHRhc2ts aXN0X2xvY2sgX19hdHRyaWJ1dGVfXygod2VhaykpOw0KKyNlbmRpZg0KKw0K KyNpZmRlZiBTWVNDQUxMSEFDSw0KIHN0YXRpYyB2b2lkICoqDQogZ2V0X3N0 YXJ0X2FkZHIodm9pZCkgew0KICNpZmRlZiBfX3g4Nl82NF9fDQpAQCAtNzEs NiArODUsNyBAQCBnZXRfc3RhcnRfYWRkcih2b2lkKSB7DQogICAgIHJldHVy biAodm9pZCAqKikmbXV0ZXhfbG9jazsNCiAjZW5kaWYNCiB9DQorI2VuZGlm DQogDQogc3RhdGljIGlubGluZSBpbnQgDQoga2FsbHN5bV9pc19lcXVhbCh1 bnNpZ25lZCBsb25nIGFkZHIsIGNvbnN0IGNoYXIgKm5hbWUpDQpAQCAtMTM5 LDYgKzE1NCw4IEBAIHZlcmlmeSh2b2lkICoqcCkgew0KICAgICByZXR1cm4g MTsNCiB9DQogDQorI2lmZGVmIFNZU0NBTExIQUNLDQorDQogc3RhdGljIGlu bGluZSBpbnQgbG9va3NfZ29vZCh2b2lkICoqcCkNCiB7DQogICAgIGlmICgq cCA8PSAodm9pZCopbG93ZXJfYm91bmQgfHwgKnAgPj0gKHZvaWQqKXApDQpA QCAtMTg4LDMgKzIwNSw1IEBAIG5ucGZzX2ZpeHVwX3N5c2NhbGxfbG9zc2Fn ZSh2b2lkKQ0KIA0KICAgICByZXR1cm4gMDsNCiB9DQorDQorI2VuZGlmDQpk aWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLTAuOTAvbm5wZnMvbGludXgv bm5wZnNfdmZzb3BzLmMgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51 eC9ubnBmc192ZnNvcHMuYw0KLS0tIGFybGEtMC45MC9ubnBmcy9saW51eC9u bnBmc192ZnNvcHMuYwkyMDA2LTEyLTExIDE3OjQzOjM1LjAwMDAwMDAwMCAr MDEwMA0KKysrIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5w ZnNfdmZzb3BzLmMJMjAxNi0wMS0xMiAyMDoyMzowOC43MzgxNzg1NTggKzAx MDANCkBAIC00NCwzMCArNDQsMjYgQEANCiAjaW5jbHVkZSA8bGludXgvbW0u aD4NCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBubnBmc192ZnNv cHMuYyx2IDEuMTA5IDIwMDYvMTIvMTEgMTY6NDM6MzUgdG9sIEV4cCAkIik7 DQorUkNTSUQoIiRJZDogbm5wZnNfdmZzb3BzLmMsdiAxLjExMSAyMDEwLzA4 LzA4IDIwOjQzOjA2IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0KIHN0cnVj dCBubnBmcyBubnBmc1tOTk5QRlNdOw0KIA0KLXN0YXRpYyB2b2lkIG5ucGZz X3JlYWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSk7DQogc3RhdGljIHZv aWQgbm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOw0K LXN0YXRpYyB2b2lkIG5ucGZzX3B1dF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlu b2RlKTsNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsNiwwKSkNCiBzdGF0aWMgdm9pZCBubnBmc193cml0ZV9zdXBlcihz dHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzYik7DQorI2VuZGlmDQogDQotI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQog c3RhdGljIGludCBubnBmc19zdGF0ZnMoc3RydWN0IGRlbnRyeSAqZGVudHJ5 LCBzdHJ1Y3Qga3N0YXRmcyAqYnVmKTsNCi0jZWxzZQ0KLXN0YXRpYyBpbnQg bm5wZnNfc3RhdGZzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBr c3RhdGZzICpidWYpOw0KLSNlbmRpZg0KIA0KIHN0YXRpYyBzdHJ1Y3Qgc3Vw ZXJfb3BlcmF0aW9ucyBubnBmc19zb3BzID0geyANCi0gICAgcmVhZF9pbm9k ZQkJOiBubnBmc19yZWFkX2lub2RlLA0KLSAgICBwdXRfaW5vZGUJCTogbm5w ZnNfcHV0X2lub2RlLA0KICAgICBhbGxvY19pbm9kZQkJOiBubnBmc19ub2Rl X2FsbG9jLA0KICAgICBkZXN0cm95X2lub2RlCTogbm5wZnNfbm9kZV9mcmVl LA0KICAgICBkcm9wX2lub2RlCQk6IGdlbmVyaWNfZGVsZXRlX2lub2RlLA0K ICAgICBwdXRfc3VwZXIJCTogbm5wZnNfcHV0X3N1cGVyLA0KKyNpZiAoTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApKQ0KICAg ICB3cml0ZV9zdXBlcgkJOiBubnBmc193cml0ZV9zdXBlciwNCisjZW5kaWYN CiAgICAgc3RhdGZzCQk6IG5ucGZzX3N0YXRmcywNCiB9Ow0KIA0KQEAgLTk0 LDcgKzkwLDExIEBAIG5ucGZzX2ZldGNoX3Jvb3Qoc3RydWN0IGlub2RlICpp KQ0KIAkgKiByb290J3MgcHJpdmlsaWdlcyAodXN1YWxseSBub25lLCBhbmQg bm9uZSBpcyBuZWVkZWQpLg0KIAkgKi8NCiAJDQorI2lmIChMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApKQ0KIAltc2cuY3Jl ZC51aWQgPSAwOw0KKyNlbHNlDQorCW1zZy5jcmVkLnVpZCA9IEtVSURUX0lO SVQoMCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IDA7DQogCQ0KIAll cnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIs IHNpemVvZihtc2cpKTsNCkBAIC0xMjksOCArMTI5LDEzIEBAIG1ha2Vfcm9v dF9pbm9kZShzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCkNCiAgICAgWEFfU0VUX01P REUoJm5vZGUuYXR0ciwgU19JRkRJUiB8IDA3NzcpOw0KICAgICBYQV9TRVRf TkxJTksoJm5vZGUuYXR0ciwgMTAwKTsNCiAgICAgWEFfU0VUX1NJWkUoJm5v ZGUuYXR0ciwgMCk7DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDE0LDApKQ0KICAgICBYQV9TRVRfVUlEKCZub2RlLmF0 dHIsIDApOw0KICAgICBYQV9TRVRfR0lEKCZub2RlLmF0dHIsIDApOw0KKyNl bHNlDQorICAgIFhBX1NFVF9VSUQoJm5vZGUuYXR0ciwgS1VJRFRfSU5JVCgw KSk7DQorICAgIFhBX1NFVF9HSUQoJm5vZGUuYXR0ciwgS0dJRFRfSU5JVCgw KSk7DQorI2VuZGlmDQogICAgIFhBX1NFVF9BVElNRSgmbm9kZS5hdHRyLCAw KTsNCiAgICAgWEFfU0VUX01USU1FKCZub2RlLmF0dHIsIDApOw0KICAgICBY QV9TRVRfQ1RJTUUoJm5vZGUuYXR0ciwgMCk7DQpAQCAtMTU5LDcgKzE2NCwx MSBAQCBtYWtlX3Jvb3QgKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpDQogICAg IG5ucGZzLT5yb290ID0gaW5vZGU7DQogDQogICAgIC8qIFhYWCBlcnJvciBo YW5kbGluZyAqLw0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMyw0LDApKQ0KICAgICBkcCA9IGRfYWxsb2Nfcm9vdChpbm9k ZSk7DQorI2Vsc2UNCisgICAgZHAgPSBkX21ha2Vfcm9vdChpbm9kZSk7DQor I2VuZGlmDQogICAgIG5ucGZzX2RfaW5pdChkcCk7DQogICAgIHNiLT5zX3Jv b3QgPSBkcDsNCiAgICAgcmV0dXJuIDA7DQpAQCAtMTg1LDExICsxOTQsMTUg QEAgbm5wZnNfcmVhZF9zdXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICogcw0K ICAgICBpZiAoZGF0YSAhPSBOVUxMKSB7DQogCXN0cnVjdCBuYW1laWRhdGEg bmQ7DQogCQ0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMiw2LDM5KSkNCiAJZXJyb3IgPSBwYXRoX2xvb2t1cChkYXRhLCAw LCAmbmQpOw0KKyNlbHNlDQorCWVycm9yID0ga2Vybl9wYXRoKGRhdGEsIDAs ICZuZC5wYXRoKTsNCisjZW5kaWYNCiAJaWYgKGVycm9yKQ0KIAkgICAgZGRl diA9IEVSUl9QVFIoZXJyb3IpOw0KIAllbHNlDQotCSAgICBkZGV2ID0gbmQu ZGVudHJ5Ow0KKwkgICAgZGRldiA9IG5kLnBhdGguZGVudHJ5Ow0KIA0KIAlp ZiAoIUlTX0VSUihkZGV2KSkgew0KIAkgICAgbWlub3JkZXZpY2UgPSBNSU5P UihkZGV2LT5kX2lub2RlLT5pX3JkZXYpOw0KQEAgLTIzMyw3ICsyNDYsNyBA QCBubnBmc19maWxsX3N1cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiDQog ICAgIHJldHVybiAwOw0KIH0NCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RF ID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCisjaWYgKExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkpDQogaW50DQogbm5w ZnNfZ2V0X3NiKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBlLA0K IAkgICAgIGludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsDQpAQCAt MjQyLDE5ICsyNTUsMjIgQEAgbm5wZnNfZ2V0X3NiKHN0cnVjdCBmaWxlX3N5 c3RlbV90eXBlICpmcw0KICAgICByZXR1cm4gZ2V0X3NiX25vZGV2KGZzX3R5 cGUsIGZsYWdzLCBkYXRhLCBubnBmc19maWxsX3N1cGVyLCBtbnQpOw0KIH0N CiAjZWxzZQ0KLXN0cnVjdCBzdXBlcl9ibG9jayAqDQotbm5wZnNfZ2V0X3Ni IChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCi0JICAgICAg aW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwgdm9pZCAqZGF0YSkg DQorc3RydWN0IGRlbnRyeSoNCitubnBmc19tb3VudChzdHJ1Y3QgZmlsZV9z eXN0ZW1fdHlwZSAqZnNfdHlwZSwNCisJICAgICBpbnQgZmxhZ3MsIGNvbnN0 IGNoYXIgKmRldl9uYW1lLA0KKwkgICAgIHZvaWQgKmRhdGEpIA0KIHsNCi0g ICAgcmV0dXJuIGdldF9zYl9ub2Rldihmc190eXBlLCBmbGFncywgZGF0YSwg bm5wZnNfZmlsbF9zdXBlcik7DQorICAgIHJldHVybiBtb3VudF9ub2Rldihm c190eXBlLCBmbGFncywgZGF0YSwgbm5wZnNfZmlsbF9zdXBlcik7DQogfQ0K ICNlbmRpZg0KIA0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMyw2LDApKQ0KIHN0YXRpYyB2b2lkDQogbm5wZnNfd3JpdGVf c3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICogc2IpDQogew0KICAgICBzYi0+ c19kaXJ0ID0gMDsNCiB9DQorI2VuZGlmDQogDQogLyoNCiAgKiBYWFggaXMg dGhpcyBnb29kPyANCkBAIC0yNzMsNzMgKzI4OSw2IEBAIG5ucGZzX3B1dF9z 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 dWYpDQogew0KQEAgLTM1MiwyNSArMzAxLDIxIEBAIG5ucGZzX3N0YXRmc19p bnQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwNCiAgICAgdG1wLmZfYmF2YWls ICA9IDEwMjQqMTAyNCoyLTUwOw0KICAgICB0bXAuZl9maWxlcyAgID0gMTAy NCoxMDI0Ow0KICAgICB0bXAuZl9mZnJlZSAgID0gMTAyNCoxMDI0LTEwMDsN CisgICAgdG1wLmZfZnNpZC52YWxbMF0gPSAwOw0KKyAgICB0bXAuZl9mc2lk LnZhbFsxXSA9IDA7DQogICAgIHRtcC5mX25hbWVsZW4gPSBOQU1FX01BWDsN CisgICAgdG1wLmZfZnJzaXplICA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzBd ID0gMDsNCisgICAgdG1wLmZfc3BhcmVbMV0gPSAwOw0KKyAgICB0bXAuZl9z cGFyZVsyXSA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzNdID0gMDsNCisgICAg dG1wLmZfc3BhcmVbNF0gPSAwOw0KICAgICAqYnVmID0gdG1wOw0KICAgICBy ZXR1cm4gMDsNCiB9DQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL RVJORUxfVkVSU0lPTigyLDYsMTgpDQotDQogc3RhdGljIGludA0KIG5ucGZz X3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBrc3RhdGZz ICpidWYpDQogew0KICAgICByZXR1cm4gbm5wZnNfc3RhdGZzX2ludChkZW50 cnktPmRfc2IsIGJ1Zik7DQogfQ0KLQ0KLSNlbHNlDQotDQotc3RhdGljIGlu dA0KLW5ucGZzX3N0YXRmcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1 Y3Qga3N0YXRmcyAqYnVmKQ0KLXsNCi0gICAgcmV0dXJuIG5ucGZzX3N0YXRm c19pbnQoc2IsIGJ1Zik7DQotfQ0KLQ0KLSNlbmRpZg0K ---276651502-1475872382-1452650405=:13035 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-1475872382-1452650405=:13035--