Re: PATCH: Arla 0.90 on Linux 2.6.24-2.6.35-rc1
Bo Brantén <[email protected]> Sun, 11 Jul 2010 18:58:19 +0200 (CEST)
| Newsgroups | gmane.comp.file-systems.arla.general |
|---|---|
| Message-ID | <[email protected]> |
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---2098261369-1705470603-1278867499=:839778 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed fix for leak in a reference count Bo Branten ---2098261369-1705470603-1278867499=:839778 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-arla-0.90-Linux4 Content-Transfer-Encoding: BASE64 Content-ID: <[email protected]> Content-Description: Content-Disposition: attachment; filename=patch-arla-0.90-Linux4 ZGlmZiAtdXByTiBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfYmxvY2tz LmMgYXJsYS0wLjkwLW5ldy9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYw0K LS0tIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDA3 LTAxLTA4IDE0OjI0OjI0LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45 MC1uZXcvbm5wZnMvbGludXgvbm5wZnNfYmxvY2tzLmMJMjAxMC0wNy0xMSAx NzoxODoyNi41NzI0NTg5NjEgKzAyMDANCkBAIC0zNCw3ICszNCw3IEBADQog ICogUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuDQogICovDQogDQotLyog JElkOiBubnBmc19ibG9ja3MuYyx2IDEuMyAyMDA3LzAxLzA4IDEzOjI0OjI0 IHRvbCBFeHAgJCAqLw0KKy8qICRJZDogbm5wZnNfYmxvY2tzLmMsdiAxLjQg MjAwOC8wMy8wOCAyMTozODoxNiB0b2wgRXhwICQgKi8NCiANCiAjaW5jbHVk ZSA8bm5wZnMvbm5wZnNfbG9jbC5oPg0KICNpbmNsdWRlIDxubnBmcy9ubnBm c19mcy5oPg0KQEAgLTMwMiw2ICszMDIsMjQgQEAgbm5wZnNfYmxvY2tfZXh0 ZW5kKHN0cnVjdCBubnBmc19ub2RlICpubw0KICAgICByZXR1cm4gcmV0Ow0K IH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMiwgNiwgMjMpDQorLyoNCisgKiBIZWxwZXIgdG8gZW11bGF0ZSB2ZnNf cGF0aF9sb29rdXAoKSBvbiBsaW51eCA8IDIuNi4yMw0KKyAqLw0KK3N0YXRp YyBpbnQNCit2ZnNfcGF0aF9sb29rdXAoc3RydWN0IGRlbnRyeSAqZGVudHJ5 LCBzdHJ1Y3QgdmZzbW91bnQgKm1udCwNCisJCWNvbnN0IGNoYXIgKmNhY2hl bmFtZSwgdW5zaWduZWQgaW50IGZsYWdzLA0KKwkJc3RydWN0IG5hbWVpZGF0 YSAqbmQpDQorew0KKyAgICBuZC0+ZGVudHJ5ID0gZGdldChkZW50cnkpOw0K KyAgICBuZC0+bW50ID0gbW50Z2V0KG1udCk7DQorICAgIG5kLT5sYXN0X3R5 cGUgPSBMQVNUX1JPT1Q7DQorICAgIG5kLT5kZXB0aCA9IDA7DQorICAgIG5k LT5mbGFncyA9IGZsYWdzOw0KKyAgICByZXR1cm4gcGF0aF93YWxrKGNhY2hl bmFtZSwgbmQpOw0KK30NCisjZW5kaWYgLyogTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMiwgNiwgMjMpICovDQorDQogLyoNCiAgKiBv cGVuIGluZGljYXRlZCBjYWNoZSBibG9jayBmaWxlLiBuZWVkcyB0byBiZSBj bG9zZWQgYnkgY2FsbGVyLg0KICAqDQpAQCAtMzIyLDYgKzM0MCwxMCBAQCBu bnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAg IHVpZF90IHNhdmV1aWQ7DQogICAgIGdpZF90IHNhdmVnaWQ7DQogICAgIGlu dCByZXQ7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS U0lPTigyLDYsMjkpDQorICAgIGNvbnN0IHN0cnVjdCBjcmVkICpvbGRfY3Jl ZDsNCisgICAgc3RydWN0IGNyZWQgKm92ZXJyaWRlX2NyZWQ7DQorI2VuZGlm DQogDQogICAgIEJVR19PTighbm5wZnNwKTsNCiAgICAgQlVHX09OKGZsYWdz ICYgT19DUkVBVCAmJiBmaWxlICE9IE5VTEwpOw0KQEAgLTM0NiwyMSArMzY4 LDI2IEBAIG5ucGZzX2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5v ZGUNCiAgICAgQlVHX09OKCFubnBmc3AtPmNhY2hlZGlyIHx8ICFubnBmc3At PmNhY2hlcm9vdCk7DQogICAgIA0KICAgICAvKiB1c2UgdGhlIG5mc2QgdHJp Y2sgdG8gZ2l2ZSB1cyBhY2Nlc3MgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgc2F2ZXVpZCA9 IGN1cnJlbnQtPmZzdWlkOw0KICAgICBzYXZlZ2lkID0gY3VycmVudC0+ZnNn aWQ7DQogICAgIGN1cnJlbnQtPmZzdWlkID0gbm5wZnNwLT51aWQ7DQogICAg IGN1cnJlbnQtPmZzZ2lkID0gbm5wZnNwLT5naWQ7DQotDQotICAgIG5kLmRl bnRyeSA9IGRnZXQobm5wZnNwLT5jYWNoZWRpcik7DQotICAgIG5kLm1udCA9 IG1udGdldChubnBmc3AtPmNhY2hlcm9vdCk7DQotICAgIG5kLmxhc3RfdHlw ZSA9IExBU1RfTk9STTsNCi0gICAgbmQuZGVwdGggPSAwOw0KLSAgICBuZC5m bGFncyA9IDA7DQotICAgIA0KLSAgICBpZiAoZmxhZ3MgJiBPX0NSRUFUKQ0K LQluZC5mbGFncyA9IExPT0tVUF9QQVJFTlQ7DQotICAgIA0KLSAgICByZXQg PSBwYXRoX3dhbGsoY2FjaGVuYW1lLCAmbmQpOw0KKyNlbHNlDQorICAgIHNh dmV1aWQgPSBjdXJyZW50X2ZzdWlkKCk7DQorICAgIHNhdmVnaWQgPSBjdXJy ZW50X2ZzZ2lkKCk7DQorICAgIG92ZXJyaWRlX2NyZWQgPSBwcmVwYXJlX2Ny ZWRzKCk7DQorICAgIGlmICghb3ZlcnJpZGVfY3JlZCkNCisgICAgICAgIHJl dHVybiAtRU5PTUVNOw0KKyAgICBvdmVycmlkZV9jcmVkLT5mc3VpZCA9IG5u cGZzcC0+dWlkOw0KKyAgICBvdmVycmlkZV9jcmVkLT5mc2dpZCA9IG5ucGZz cC0+Z2lkOw0KKyAgICBvbGRfY3JlZCA9IG92ZXJyaWRlX2NyZWRzKG92ZXJy aWRlX2NyZWQpOw0KKyNlbmRpZg0KKw0KKyAgICByZXQgPSB2ZnNfcGF0aF9s b29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQor CQkJICBjYWNoZW5hbWUsDQorCQkJICBmbGFncyAmIE9fQ1JFQVQgPyBMT09L VVBfUEFSRU5UIDogMCwNCisJCQkgICZuZCk7DQogICAgIGlmIChyZXQpIHsN CiAJdWludDMyX3Qgbm1hc2tzID0gbm9kZS0+ZGF0YS5ubWFza3M7DQogCXVp bnQzMl90IG1hc2s7DQpAQCAtMzkxLDEyICs0MTgsMjEgQEAgbm5wZnNfYmxv Y2tfb3BlbihzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KIAlpZiAoSVNfRVJS KGRlbnRyeSkpIHsNCiAJICAgIHJldCA9IFBUUl9FUlIoZGVudHJ5KTsNCiAJ fSBlbHNlIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMiw2LDI1KQ0KIAkgICAgcmV0ID0gdmZzX2NyZWF0ZShuZC5kZW50 cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVTUnxTX0lXVVNSLCAmbmQpOw0K KyNlbHNlDQorCSAgICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5 LT5kX2lub2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwgJm5kKTsNCisj ZW5kaWYNCiAJICAgIGRwdXQoZGVudHJ5KTsNCiAJfQ0KIA0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjUpDQogCW11 dGV4X3VubG9jaygmbmQuZGVudHJ5LT5kX2lub2RlLT5pX211dGV4KTsNCiAJ cGF0aF9yZWxlYXNlKCZuZCk7DQorI2Vsc2UNCisJbXV0ZXhfdW5sb2NrKCZu ZC5wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9tdXRleCk7DQorCXBhdGhfcHV0 KCZuZC5wYXRoKTsNCisjZW5kaWYNCiANCiAJaWYgKHJldCkgew0KIAkgICAg cHJpbnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBjcmVhdGUgZmFpbGVkOiAl ZFxuIiwgY2FjaGVuYW1lLCAtcmV0KTsNCkBAIC00MTAsMTIgKzQ0NiwyMiBA QCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQog CSAgICByZXQgPSBubnBmc19ibG9ja19leHRlbmQobm9kZSwgb2Zmc2V0KTsN CiAJfQ0KICAgICB9IGVsc2Ugew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigyLDYsMjUpDQogCXN0cnVjdCBmaWxlICpmID0g ZGVudHJ5X29wZW4obmQuZGVudHJ5LCBuZC5tbnQsIGZsYWdzKTsNCisjZWxp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjkp DQorCXN0cnVjdCBmaWxlICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5kZW50 cnksIG5kLnBhdGgubW50LCBmbGFncyk7DQorI2Vsc2UNCisgICAgICAgIHN0 cnVjdCBmaWxlICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5kZW50cnksIG5k LnBhdGgubW50LCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbmRpZg0K IAlpZiAoSVNfRVJSKGYpKSB7DQogCSAgICByZXQgPSBQVFJfRVJSKGYpOw0K IAkgICAgcHJpbnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBvcGVuIGZhaWxl ZDogJWRcbiIsIGNhY2hlbmFtZSwgLXJldCk7DQogCSAgICBubnBmc19kZWJ1 Z19vb3BzKCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDIsNiwyNSkNCiAJICAgIHBhdGhfcmVsZWFzZSgmbmQpOw0KKyNl bHNlDQorCSAgICBwYXRoX3B1dCgmbmQucGF0aCk7DQorI2VuZGlmDQogCX0g ZWxzZSB7DQogCSAgICAqZmlsZSA9IGY7DQogCX0NCkBAIC00MjQsOCArNDcw LDEzIEBAIG5ucGZzX2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5v ZGUNCiAgICAgLyogcGF0aF9yZWxlYXNlKCkgaXMgdXN1YWxseSBoYW5kbGVk IG9uIGNsb3NlICovDQogDQogIG91dDoNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgY3VycmVudC0+ ZnN1aWQgPSBzYXZldWlkOw0KICAgICBjdXJyZW50LT5mc2dpZCA9IHNhdmVn aWQ7DQorI2Vsc2UNCisgICAgcmV2ZXJ0X2NyZWRzKG9sZF9jcmVkKTsNCisg ICAgcHV0X2NyZWQob3ZlcnJpZGVfY3JlZCk7DQorI2VuZGlmDQogDQogICAg IHJldHVybiByZXQ7DQogfQ0KZGlmZiAtdXByTiBhcmxhLTAuOTAvbm5wZnMv bGludXgvbm5wZnNfaW5vZGVvcHMuYyBhcmxhLTAuOTAtbmV3L25ucGZzL2xp bnV4L25ucGZzX2lub2Rlb3BzLmMNCi0tLSBhcmxhLTAuOTAvbm5wZnMvbGlu dXgvbm5wZnNfaW5vZGVvcHMuYwkyMDA2LTEyLTExIDE3OjM1OjI2LjAwMDAw MDAwMCArMDEwMA0KKysrIGFybGEtMC45MC1uZXcvbm5wZnMvbGludXgvbm5w ZnNfaW5vZGVvcHMuYwkyMDEwLTA3LTExIDE3OjE4OjI2LjU3MjQ1ODk2MSAr MDIwMA0KQEAgLTQ4LDcgKzQ4LDcgQEANCiAjaW5jbHVkZSA8YXNtL2ZjbnRs Lmg+DQogDQogI2lmZGVmIFJDU0lEDQotUkNTSUQoIiRJZDogbm5wZnNfaW5v ZGVvcHMuYyx2IDEuMjIzIDIwMDYvMTIvMTEgMTY6MzU6MjYgdG9sIEV4cCAk Iik7DQorUkNTSUQoIiRJZDogbm5wZnNfaW5vZGVvcHMuYyx2IDEuMjI0IDIw MDgvMDMvMDggMjE6NDA6MTAgdG9sIEV4cCAkIik7DQogI2VuZGlmDQogDQog c3RhdGljIGludA0KQEAgLTEwNSw3ICsxMDUsMTEgQEAgbm5wZnNfdm1hX2Ns b3NlIChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKg0KIH0NCiANCiBzdGF0aWMg c3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IG5ucGZzX2ZpbGVfdm1fb3Bz ID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigyLCA2LCAyMykNCiAgICAgLm5vcGFnZQk9IGZpbGVtYXBfbm9wYWdlLA0K KyNlbHNlDQorICAgIC5mYXVsdCAgICAgID0gZmlsZW1hcF9mYXVsdCwNCisj ZW5kaWYNCiAgICAgLmNsb3NlCT0gbm5wZnNfdm1hX2Nsb3NlLA0KIH07DQog DQpAQCAtMTM0LDEyICsxMzgsMTQgQEAgbm5wZnNfcHJpbnRfcGF0aChzdHJ1 Y3QgZGVudHJ5ICpkZW50cnkpDQogICoNCiAgKi8NCiANCisjaWYgMA0KIHZv aWQNCiBubnBmc19wcmludF9sb2NrKGNoYXIgKnMsIHN0cnVjdCBzZW1hcGhv cmUgKnNlbSkNCiB7DQogICAgIE5OUEZTREVCKFhERUJMT0NLLCAoImxvY2s6 ICVzIHNlbTogJXAgY291bnQ6ICVkXG4iLA0KIAkJICAgICAgcywgc2VtLCAo aW50KWF0b21pY19yZWFkKCZzZW0tPmNvdW50KSkpOw0KIH0NCisjZW5kaWYN CiANCiAvKg0KICAqDQpAQCAtMjQwLDcgKzI0NiwxMSBAQCBubnBmc19sb29r dXAgKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgDQogDQogCW1zZy5oZWFk ZXIub3Bjb2RlID0gTk5QRlNfTVNHX0dFVE5PREU7DQogICAgICAgICANCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwy OCkNCiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQor ICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRp Zg0KIAltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogCW1zZy5w YXJlbnRfaGFuZGxlID0gZC0+aGFuZGxlOw0KICAgICAgICAgDQpAQCAtMzEw LDcgKzMyMCwxMSBAQCBubnBmc19vcGVuX3ZhbGlkKHN0cnVjdCBpbm9kZSAq dnAsIHVfaW50DQogICAgICAgew0KIAlzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9v cGVuIG1zZzsNCiAJbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfT1BF TjsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9O KDIsNiwyOCkNCiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNl bHNlDQorICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0K KyNlbmRpZg0KIAltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQog CW1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KIAltc2cudG9rZW5zID0gdG9r Ow0KQEAgLTQyNSw3ICs0MzksMTEgQEAgbm5wZnNfZnN5bmNfaW50KHN0cnVj dCBmaWxlICpmaWxlLCB1X2ludA0KIA0KIAltc2cuaGVhZGVyLm9wY29kZSA9 IE5OUEZTX01TR19QVVREQVRBOw0KIAltc2cuY3JlZC5wYWcgPSBubnBmc19n ZXRfcGFnKCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxf VkVSU0lPTigyLDYsMjgpDQogCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVp ZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91 aWQoKTsNCisjZW5kaWYNCiAJbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQog CW1zZy5mbGFnICAgPSBmbGFnOw0KIAltc2cub2Zmc2V0ID0gb2ZmOw0KQEAg LTQ2MCw5ICs0NzgsMTcgQEAgbm5wZnNfZnN5bmNfaW50KHN0cnVjdCBmaWxl ICpmaWxlLCB1X2ludA0KICAqDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsIDYsIDM1KQ0KIHN0YXRpYyBp bnQNCiBubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGRl bnRyeSAqZGVudHJ5LCBpbnQgZGF0YXN5bmMpDQorI2Vsc2UNCitzdGF0aWMg aW50DQorbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIGludCBkYXRh c3luYykNCisjZW5kaWYNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+ PSBLRVJORUxfVkVSU0lPTigyLCA2LCAzNSkNCisgICAgc3RydWN0IGRlbnRy eSAqZGVudHJ5ID0gZmlsZS0+Zl9wYXRoLmRlbnRyeTsNCisjZW5kaWYNCiAg ICAgc3RydWN0IGlub2RlICppbm9kZSA9IERFTlRSWV9UT19JTk9ERShkZW50 cnkpOw0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcDsNCiAgICAgc3RydWN0 IG5ucGZzX25vZGUgKnhuOw0KQEAgLTUxMSw3ICs1MzcsMTEgQEAgbm5wZnNf YXR0cl92YWxpZChzdHJ1Y3QgaW5vZGUgKiB2cCwgdV9pbg0KICAgICAgICAg ICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX2dldGF0dHIgbXNnOw0KIA0KICAg ICAgICAgICAgIG1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX0dFVEFU VFI7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lP TigyLDYsMjgpDQogICAgICAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVu dC0+dWlkOw0KKyNlbHNlDQorICAgICAgICAgICAgbXNnLmNyZWQudWlkID0g Y3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAgICAgICAgICBtc2cuY3Jl ZC5wYWcgPSBwYWc7DQogICAgICAgICAgICAgbXNnLmhhbmRsZSA9IHhuLT5o YW5kbGU7DQogICAgICAgICAgICAgZXJyb3IgPSBubnBmc19tZXNzYWdlX3Jw YyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQpAQCAtNTUx LDcgKzU4MSwxMSBAQCBubnBmc19yaWdodHNfdmFsaWQoc3RydWN0IGlub2Rl ICogdnAsIG5uDQogICAgICAgICAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2Vf Z2V0YXR0ciBtc2c7DQogDQogICAgICAgICAgICAgbXNnLmhlYWRlci5vcGNv ZGUgPSBOTlBGU19NU0dfR0VUQVRUUjsNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgICAgICAgICBt c2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAg ICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0K ICAgICAgICAgICAgIG1zZy5jcmVkLnBhZyA9IHBhZzsNCiAgICAgICAgICAg ICBtc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgICAgICAgICBlcnJv ciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNp emVvZihtc2cpKTsNCkBAIC01OTIsOCArNjI2LDEzIEBAIGNoZWNrX3JpZ2h0 cyAobm5wZnNfcmlnaHRzIHJpZ2h0cywgaW50IG0NCiAgKiBXZSBkb24ndCBo b2xkIGlfbXV0ZXguDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyNykNCiBzdGF0aWMgaW50DQogbm5w ZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9kZSwg c3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCitzdGF0aWMgaW50DQor bm5wZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9k ZSkNCisjZW5kaWYNCiB7DQogICAgIGludCBlcnJvciA9IDA7DQogICAgIG5u cGZzX3BhZ190IHBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCkBAIC02MzYsNyAr Njc1LDExIEBAIG5ucGZzX2RvX2dldGRhdGEoc3RydWN0IG5ucGZzX25vZGUg KnhuLCANCiAgICAgaW50IGVycm9yOw0KIA0KICAgICBtc2cuaGVhZGVyLm9w Y29kZSA9IE5OUEZTX01TR19HRVREQVRBOw0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBtc2cuY3Jl ZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgbXNnLmNyZWQu dWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAgbXNnLmNyZWQu cGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICBtc2cuaGFuZGxlID0geG4t PmhhbmRsZTsNCiAgICAgbXNnLnRva2VucyA9IHRvazsNCkBAIC05MDMsOSAr OTQ2LDE3IEBAIG5ucGZzX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3Ry dWN0IGQNCiAgICAgWEFfQ0xFQVIoJm1zZy5hdHRyKTsNCiAgICAgWEFfU0VU X01PREUoJm1zZy5hdHRyLCBtb2RlKTsNCiAgICAgWEFfU0VUX1RZUEUoJm1z Zy5hdHRyLCBOTlBGU19GSUxFX1JFRyk7DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIFhBX1NFVF9H SUQoJm1zZy5hdHRyLCBjdXJyZW50LT5mc2dpZCk7DQorI2Vsc2UNCisgICAg WEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1cnJlbnRfZnNnaWQoKSk7DQorI2Vu ZGlmDQogICAgIG1zZy5tb2RlID0gMDsJCS8qIFhYWCAqLw0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAg ICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAg bXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAg bXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICBlcnJvciA9 IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVv Zihtc2cpKTsNCiAgICAgaWYgKGVycm9yID09IDApDQpAQCAtOTQ2LDcgKzk5 NywxMSBAQCBubnBmc191bmxpbmsgKHN0cnVjdCBpbm9kZSAqIGRpciwgc3Ry dWN0DQogICAgIGlmIChzdHJsY3B5KG1zZy5uYW1lLCBkZW50cnktPmRfbmFt ZS5uYW1lLCBzaXplb2YobXNnLm5hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkN CiAJcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQogDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIG1zZy5j cmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBtc2cuY3Jl ZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICBtc2cuY3Jl ZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgIGVycm9yID0gbm5wZnNf bWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykp Ow0KICAgICBpZiAoZXJyb3IgPT0gMCkNCkBAIC05OTEsNyArMTA0NiwxMSBA QCBubnBmc19yZW5hbWUgKHN0cnVjdCBpbm9kZSAqIG9sZF9kaXIsIHN0DQog ICAgIGlmIChzdHJsY3B5KG1zZy5uZXdfbmFtZSwgbmV3X2RlbnRyeS0+ZF9u YW1lLm5hbWUsIHNpemVvZihtc2cubmV3X25hbWUpKSA+PSBOTlBGU19NQVhf TkFNRSkNCiAJcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQogCQ0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAg ICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAg bXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAg bXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICBlcnJvciA9 IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVv Zihtc2cpKTsNCiAgICAgaWYgKGVycm9yID09IDApDQpAQCAtMTA0MCw5ICsx MDk5LDE3IEBAIG5ucGZzX21rZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3Ry dWN0IGQNCiAJWEFfQ0xFQVIoJm1zZy5hdHRyKTsNCiAJWEFfU0VUX01PREUo Jm1zZy5hdHRyLCBtb2RlKTsNCiAJWEFfU0VUX1RZUEUoJm1zZy5hdHRyLCBO TlBGU19GSUxFX0RJUik7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBL RVJORUxfVkVSU0lPTigyLDYsMjgpDQogCVhBX1NFVF9HSUQoJm1zZy5hdHRy LCBjdXJyZW50LT5mc2dpZCk7DQorI2Vsc2UNCisgICAgICAgIFhBX1NFVF9H SUQoJm1zZy5hdHRyLCBjdXJyZW50X2ZzZ2lkKCkpOw0KKyNlbmRpZg0KIA0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2 LDI4KQ0KIAltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UN CisgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2Vu ZGlmDQogCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJZXJy b3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBz aXplb2YobXNnKSk7DQogCWlmIChlcnJvciA9PSAwKQ0KQEAgLTEwODMsNyAr MTE1MCwxMSBAQCBubnBmc19ybWRpcihzdHJ1Y3QgaW5vZGUgKiBkaXIsIHN0 cnVjdCBkDQogICAgIG1zZy5wYXJlbnRfaGFuZGxlID0geG4tPmhhbmRsZTsN CiAgICAgaWYgKHN0cmxjcHkobXNnLm5hbWUsIGRlbnRyeS0+ZF9uYW1lLm5h bWUsIHNpemVvZihtc2cubmFtZSkpID49IE5OUEZTX01BWF9OQU1FKQ0KIAkg ICAgcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIG1zZy5jcmVk LnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBtc2cuY3JlZC51 aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICBtc2cuY3JlZC5w YWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgIGVycm9yID0gbm5wZnNfbWVz c2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0K ICAgICBpZiAoZXJyb3IgPT0gMCkNCkBAIC0xMTI4LDcgKzExOTksMTEgQEAg c3RhdGljIGludCBubnBmc19saW5rKHN0cnVjdCBkZW50cnkgKm9sZA0KIAlp ZiAoc3RybGNweShtc2cubmFtZSwgbmFtZSwgc2l6ZW9mKG1zZy5uYW1lKSkg Pj0gTk5QRlNfTUFYX05BTUUpDQogCSAgICByZXR1cm4gLUVOQU1FVE9PTE9O RzsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJT SU9OKDIsNiwyOCkNCiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0K KyNlbHNlDQorICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgp Ow0KKyNlbmRpZg0KIAltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7 DQogCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhl YWRlciwgc2l6ZW9mKG1zZykpOw0KIAlpZiAoZXJyb3IgPT0gMCkNCkBAIC0x MTU3LDI5ICsxMjMyLDQ3IEBAIHN0YXRpYyBpbnQgbm5wZnNfc3ltbGluayhz dHJ1Y3QgaW5vZGUgKmQNCiAgICAgeG4gPSBWTk9ERV9UT19YTk9ERShkaXIp Ow0KIA0KICAgICB7DQotCXN0cnVjdCBubnBmc19tZXNzYWdlX3N5bWxpbmsg bXNnOw0KKwlzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9zeW1saW5rICptc2cgPSBO VUxMOw0KIA0KLQltc2cuaGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19TWU1M SU5LOw0KLQltc2cucGFyZW50X2hhbmRsZSA9IHhuLT5oYW5kbGU7DQotCWlm IChzdHJsY3B5KG1zZy5uYW1lLCBuYW1lLCBzaXplb2YobXNnLm5hbWUpKSA+ PSBOTlBGU19NQVhfTkFNRSkNCi0JICAgIHJldHVybiAtRU5BTUVUT09MT05H Ow0KLQlpZiAoc3RybGNweShtc2cuY29udGVudHMsIHN5bW5hbWUsIHNpemVv Zihtc2cuY29udGVudHMpKSA+PSBOTlBGU19NQVhfU1lNTElOS19DT05URU5U KQ0KLQkgICAgcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQotCVhBX0NMRUFSKCZt c2cuYXR0cik7DQotCVhBX1NFVF9NT0RFKCZtc2cuYXR0ciwgMDc3Nyk7DQot CVhBX1NFVF9UWVBFKCZtc2cuYXR0ciwgTk5QRlNfRklMRV9MTkspOw0KLQlY QV9TRVRfR0lEKCZtc2cuYXR0ciwgY3VycmVudC0+ZnNnaWQpOw0KKwltc2cg PSBrbWFsbG9jKHNpemVvZihzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9zeW1saW5r KSwgR0ZQX0tFUk5FTCk7DQogDQotCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQt PnVpZDsNCi0JbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KLQll cnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIs IHNpemVvZihtc2cpKTsNCisJaWYgKCFtc2cpDQorCSAgcmV0dXJuIC1FTk9N RU07DQorDQorCW1zZy0+aGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19TWU1M SU5LOw0KKwltc2ctPnBhcmVudF9oYW5kbGUgPSB4bi0+aGFuZGxlOw0KKwlp ZiAoc3RybGNweShtc2ctPm5hbWUsIG5hbWUsIHNpemVvZihtc2ctPm5hbWUp KSA+PSBOTlBGU19NQVhfTkFNRSkgew0KKwkgIGtmcmVlKG1zZyk7DQorCSAg cmV0dXJuIC1FTkFNRVRPT0xPTkc7DQorCX0NCisJaWYgKHN0cmxjcHkobXNn LT5jb250ZW50cywgc3ltbmFtZSwgc2l6ZW9mKG1zZy0+Y29udGVudHMpKSA+ PSBOTlBGU19NQVhfU1lNTElOS19DT05URU5UKSB7DQorCSAga2ZyZWUobXNn KTsNCisJICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCisJfQ0KKwlYQV9DTEVB UigmbXNnLT5hdHRyKTsNCisJWEFfU0VUX01PREUoJm1zZy0+YXR0ciwgMDc3 Nyk7DQorCVhBX1NFVF9UWVBFKCZtc2ctPmF0dHIsIE5OUEZTX0ZJTEVfTE5L KTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9O KDIsNiwyOCkNCisJWEFfU0VUX0dJRCgmbXNnLT5hdHRyLCBjdXJyZW50LT5m c2dpZCk7DQorI2Vsc2UNCisgICAgICAgIFhBX1NFVF9HSUQoJm1zZy0+YXR0 ciwgY3VycmVudF9mc2dpZCgpKTsNCisjZW5kaWYNCisNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJbXNn LT5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAg bXNnLT5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQorCW1z Zy0+Y3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQorCWVycm9yID0gbm5w ZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLT5oZWFkZXIsIHNpemVvZihz dHJ1Y3Qgbm5wZnNfbWVzc2FnZV9zeW1saW5rKSk7DQogCWlmIChlcnJvciA9 PSAwKQ0KLQkgICAgZXJyb3IgPSBOTlBGU19NU0dfV0FLRVVQX0VSUk9SKCZt c2cpOw0KKwkgICAgZXJyb3IgPSBOTlBGU19NU0dfV0FLRVVQX0VSUk9SKG1z Zyk7DQogDQogCS8qIFhYWCBzaG91bGQgdGhpcyByZWFsbHkgYmUgaGVyZSAq Lw0KIAlpZiAoREVOVFJZX1RPX1hERU5UUlkoZGVudHJ5KS0+eGRfZmxhZ3Mg PT0gMCkgew0KIAkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTIFBhbmlj OiBubnBmc19zeW1saW5rOiBkZW50cnkgbm90IHZhbGlkXG4iKTsNCiAJfQ0K KwlrZnJlZShtc2cpOw0KICAgICB9DQogDQogICAgIHJldHVybiBlcnJvcjsN CkBAIC0xMzk4LDcgKzE0OTEsMTEgQEAgbm5wZnNfc2V0YXR0ciAoc3RydWN0 IGRlbnRyeSAqZGVudHJ5LCBzdA0KICAgICAgICAgc3RydWN0IG5ucGZzX21l c3NhZ2VfcHV0YXR0ciBtc2c7DQogDQogICAgICAgICBtc2cuaGVhZGVyLm9w Y29kZSA9IE5OUEZTX01TR19QVVRBVFRSOw0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51 aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVk LnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBh ZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgICAgIG1zZy5oYW5kbGUgPSB4 bi0+aGFuZGxlOw0KICAgICAgICAgbm5wZnNfaWF0dHIyYXR0cih4biwgYXR0 ciwgJm1zZy5hdHRyKTsNCkBAIC0xNTQ1LDYgKzE2NDIsOCBAQCBubnBmc19k X2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQogICAgIHJldHVybiAw Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMiwgNiwgMjMpDQorDQogc3RhdGljIHNzaXplX3QNCiBubnBmc19z ZW5kZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90ICpwcG9zLCBzaXpl X3QgY291bnQsDQogCSAgICAgICByZWFkX2FjdG9yX3QgYWN0b3IsIHZvaWQg KnRhcmdldCkNCkBAIC0xNTY4LDYgKzE2NjcsMzMgQEAgbm5wZnNfc2VuZGZp bGUoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdA0KICAgICByZXR1cm4gZXJy b3I7DQogfQ0KIA0KKyNlbHNlDQorDQorc3RhdGljIHNzaXplX3QNCitubnBm c19zcGxpY2VfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90ICpwcG9z LA0KKwkJICBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLCBzaXplX3Qg Y291bnQsDQorCQkgIHVuc2lnbmVkIGludCBmbGFncykNCit7DQorICAgIGlu dCBlcnJvciA9IDA7DQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxl LT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisgICAgc3RydWN0IG5ucGZzX25vZGUg KnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KKyAgICANCisgICAgaWYg KHhuICE9IE5VTEwpDQorCU5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19z ZW5kZmlsZTogdG9rZW5zOiAweCV4XG4iLCB4bi0+dG9rZW5zKSk7DQorDQor ICAgIGVycm9yID0gbm5wZnNfZGF0YV92YWxpZChpbm9kZSwgTk5QRlNfREFU QV9SLCAqcHBvcywgKnBwb3MgKyBjb3VudCk7DQorICAgIGlmIChlcnJvcikg ew0KKwlOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfc2VuZGZpbGU6IGRh dGEgbm90IHZhbGlkICVkXG4iLCBlcnJvcikpOw0KKwlyZXR1cm4gZXJyb3I7 DQorICAgIH0NCisgICAgZXJyb3IgPSBmaWxlLT5mX29wLT5zcGxpY2VfcmVh ZChmaWxlLCBwcG9zLCBwaXBlLCBjb3VudCwgZmxhZ3MpOw0KKw0KKyAgICBO TlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfc2VuZGZpbGU6IGVycm9yID0g JWRcbiIsIGVycm9yKSk7DQorICAgIHJldHVybiBlcnJvcjsNCit9DQorDQor I2VuZGlmIC8qIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDIsIDYsIDIzKSAqLw0KKw0KIC8qDQogICoNCiAgKg0KQEAgLTE2MzksMTEg KzE3NjUsMTUgQEAgbm5wZnNfd3JpdGVfYmFja3BhZ2Uoc3RydWN0IHBhZ2Ug KnBhZ2UsIA0KIAlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IGJh Y2tmaWxlLT5mX21hcHBpbmc7DQogCXVuc2lnbmVkIGxlbiA9IFBBR0VfQ0FD SEVfU0laRTsNCiAJc3RydWN0IHBhZ2UgKmJhY2twYWdlOw0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDI0KQ0KKwl2 b2lkICpmc2RhdGE7DQorI2VuZGlmDQogCXVuc2lnbmVkIGxvbmcgb2Zmc2V0 Ow0KIA0KIAlpbnQgZXJyb3I7DQogCQ0KIAlkbyB7DQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyNCkNCiAJCWJhY2tw YWdlID0gZ3JhYl9jYWNoZV9wYWdlKG1hcHBpbmcsIG5ucGZzX2dldF9iYWNr aW5kZXgocGFnZSkpOw0KIAkJaWYgKCFiYWNrcGFnZSkgew0KIAkJCXByaW50 aygibm5wZnNfd3JpdGVfYmFja3BhZ2U6IG5vIHBhZ2VcbiIpOw0KQEAgLTE2 NTIsMjEgKzE3ODIsMzYgQEAgbm5wZnNfd3JpdGVfYmFja3BhZ2Uoc3RydWN0 IHBhZ2UgKnBhZ2UsIA0KIA0KIAkJZXJyb3IgPSBtYXBwaW5nLT5hX29wcy0+ cHJlcGFyZV93cml0ZShiYWNrZmlsZSwgYmFja3BhZ2UsDQogCQkJCQkJICAg ICAgMCwgbGVuKTsNCisjZWxzZQ0KKwkJZXJyb3IgPSBwYWdlY2FjaGVfd3Jp dGVfYmVnaW4oYmFja2ZpbGUsIG1hcHBpbmcsIDAsIGxlbiwNCisJCQkJQU9Q X0ZMQUdfVU5JTlRFUlJVUFRJQkxFLCAmYmFja3BhZ2UsICZmc2RhdGEpOw0K KyNlbmRpZg0KIAkJaWYgKCFlcnJvcikgew0KIAkJCWNvcHlfaGlnaHBhZ2Uo YmFja3BhZ2UsIHBhZ2UpOw0KIAkJCWZsdXNoX2RjYWNoZV9wYWdlKGJhY2tw YWdlKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMiw2LDI0KQ0KIAkJCWVycm9yID0gbWFwcGluZy0+YV9vcHMtPmNvbW1p dF93cml0ZShiYWNrZmlsZSwgYmFja3BhZ2UsDQogCQkJCQkJCSAgICAgMCwg bGVuKTsNCisjZWxzZQ0KKwkJCWVycm9yID0gcGFnZWNhY2hlX3dyaXRlX2Vu ZChiYWNrZmlsZSwgbWFwcGluZywgMCwgbGVuLA0KKwkJCQkJbGVuLCBiYWNr cGFnZSwgZnNkYXRhKTsNCisJCQlpZiAoZXJyb3IgPiAwKQ0KKwkJCQllcnJv ciA9IDA7DQorI2VuZGlmDQogCQl9DQogCQlpZiAoZXJyb3IgPT0gQU9QX1RS VU5DQVRFRF9QQUdFKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDIsNiwyNCkNCiAJCQlwYWdlX2NhY2hlX3JlbGVhc2Uo YmFja3BhZ2UpOw0KKyNlbmRpZg0KIAkJCWNvbnRpbnVlOw0KIAkJfQ0KIAl9 IHdoaWxlICgwKTsNCiANCiAJb2Zmc2V0ID0gcGFnZV9vZmZzZXQoYmFja3Bh Z2UpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigyLDYsMjQpDQogCXVubG9ja19wYWdlKGJhY2twYWdlKTsNCiAJcGFnZV9j YWNoZV9yZWxlYXNlKGJhY2twYWdlKTsNCisjZW5kaWYNCiANCiAJaWYgKGVy cm9yKQ0KIAkJcHJpbnRrKCJubnBmc193cml0ZV9iYWNrcGFnZTogRUlPXG4i KTsNCkBAIC0xODcyLDYgKzIwMTcsMzQgQEAgbm5wZnNfcHJlcGFyZV93cml0 ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgcw0KIAlyZXR1cm4gcmV0Ow0KIH0NCiAN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIs NiwyOCkNCisNCitzdGF0aWMgaW50DQorbm5wZnNfd3JpdGVfYmVnaW4oc3Ry dWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5n LCBsb2ZmX3QgcG9zLA0KK3Vuc2lnbmVkIGxlbiwgdW5zaWduZWQgZmxhZ3Ms IHN0cnVjdCBwYWdlICoqcGFnZXAsIHZvaWQgKipmc2RhdGEpDQorew0KKwlz dHJ1Y3QgcGFnZSAqcGFnZTsNCisJcGdvZmZfdCBpbmRleDsNCisJdW5zaWdu ZWQgZnJvbTsNCisNCisJaW5kZXggPSBwb3MgPj4gUEFHRV9DQUNIRV9TSElG VDsNCisJZnJvbSA9IHBvcyAmIChQQUdFX0NBQ0hFX1NJWkUgLSAxKTsNCisN CisjaWZuZGVmIEFPUF9GTEFHX05PRlMNCisJcGFnZSA9IF9fZ3JhYl9jYWNo ZV9wYWdlKG1hcHBpbmcsIGluZGV4KTsNCisjZWxzZQ0KKwlwYWdlID0gZ3Jh Yl9jYWNoZV9wYWdlX3dyaXRlX2JlZ2luKG1hcHBpbmcsIGluZGV4LCBmbGFn cyk7DQorI2VuZGlmDQorCWlmICghcGFnZSkNCisJCXJldHVybiAtRU5PTUVN Ow0KKw0KKwkqcGFnZXAgPSBwYWdlOw0KKw0KKwlyZXR1cm4gbm5wZnNfcHJl cGFyZV93cml0ZShmaWxlLCBwYWdlLCBmcm9tLCBmcm9tK2xlbik7DQorfQ0K Kw0KKyNlbmRpZg0KKw0KIHN0YXRpYyBpbnQNCiBubnBmc19jb21taXRfd3Jp dGUoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBwYWdlICpwYWdlLCB1bnNp Z25lZCBmcm9tLCB1bnNpZ25lZCB0bykNCiB7DQpAQCAtMTkwMiwxNCArMjA3 NSw0NSBAQCBubnBmc19jb21taXRfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUs IHN0DQogICAgIHJldHVybiAwOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisNCitzdGF0aWMg aW50DQorbm5wZnNfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1 Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgbG9mZl90IHBvcywNCit1bnNp Z25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwgc3RydWN0IHBhZ2UgKnBhZ2Us IHZvaWQgKmZzZGF0YSkNCit7DQorCXVuc2lnbmVkIGZyb20gPSBwb3MgJiAo UEFHRV9DQUNIRV9TSVpFIC0gMSk7DQorDQorCS8qIHplcm8gdGhlIHN0YWxl IHBhcnQgb2YgdGhlIHBhZ2UgaWYgd2UgZGlkIGEgc2hvcnQgY29weSAqLw0K KwlpZiAoY29waWVkIDwgbGVuKSB7DQorCQl2b2lkICprYWRkciA9IGttYXBf YXRvbWljKHBhZ2UsIEtNX1VTRVIwKTsNCisJCW1lbXNldChrYWRkciArIGZy b20gKyBjb3BpZWQsIDAsIGxlbiAtIGNvcGllZCk7DQorCQlmbHVzaF9kY2Fj aGVfcGFnZShwYWdlKTsNCisJCWt1bm1hcF9hdG9taWMoa2FkZHIsIEtNX1VT RVIwKTsNCisJfQ0KKw0KKwlubnBmc19jb21taXRfd3JpdGUoZmlsZSwgcGFn ZSwgZnJvbSwgZnJvbStjb3BpZWQpOw0KKw0KKwl1bmxvY2tfcGFnZShwYWdl KTsNCisJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOw0KKw0KKwlyZXR1cm4g Y29waWVkOw0KK30NCisNCisjZW5kaWYNCisNCiAjaWYgTElOVVhfVkVSU0lP Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCiBjb25zdA0KICNl bmRpZg0KIHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgbm5wZnNf YW9wcyA9IHsNCiAJLnJlYWRwYWdlID0gbm5wZnNfcmVhZHBhZ2UsDQogCS53 cml0ZXBhZ2UgPSBubnBmc193cml0ZXBhZ2UsDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJLnByZXBhcmVf d3JpdGUgPSBubnBmc19wcmVwYXJlX3dyaXRlLA0KIAkuY29tbWl0X3dyaXRl ID0gbm5wZnNfY29tbWl0X3dyaXRlLA0KKyNlbHNlDQorCS53cml0ZV9iZWdp biA9IG5ucGZzX3dyaXRlX2JlZ2luLA0KKwkud3JpdGVfZW5kID0gbm5wZnNf d3JpdGVfZW5kLA0KKyNlbmRpZg0KIH07DQogDQogLyoNCkBAIC0xOTI0LDcg KzIxMjgsMTEgQEAgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19maWxl X29wZXJhdA0KICAgICAuZmx1c2gJPSBubnBmc19mbHVzaCwNCiAgICAgLnJl bGVhc2UJPSBubnBmc19yZWxlYXNlX2ZpbGUsDQogICAgIC5mc3luYwk9IG5u cGZzX2ZzeW5jLA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigyLCA2LCAyMykNCiAgICAgLnNlbmRmaWxlCT0gbm5wZnNfc2Vu ZGZpbGUsDQorI2Vsc2UNCisgICAgLnNwbGljZV9yZWFkID0gbm5wZnNfc3Bs aWNlX3JlYWQsDQorI2VuZGlmDQogfTsNCiANCiBzdHJ1Y3QgZmlsZV9vcGVy YXRpb25zIG5ucGZzX2RlYWRfb3BlcmF0aW9ucyA9IHsNCmRpZmYgLXVwck4g YXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYyBhcmxhLTAu OTAtbmV3L25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYw0KLS0tIGFybGEt MC45MC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAwNy0wMS0wOSAx NzozMzozMS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAuOTAtbmV3L25u cGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYwkyMDEwLTA3LTExIDE3OjE4OjI2 LjU3MjQ1ODk2MSArMDIwMA0KQEAgLTQ1LDcgKzQ1LDcgQEANCiAjaW5jbHVk ZSA8bGludXgvbW91bnQuaD4NCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgi JElkOiBubnBmc19tZXNzYWdlLmMsdiAxLjE0My4yLjEgMjAwNy8wMS8wOSAx NjozMzozMSB0b2wgRXhwICQiKTsNCitSQ1NJRCgiJElkOiBubnBmc19tZXNz YWdlLmMsdiAxLjE0MyAyMDA2LzEyLzExIDE2OjQwOjI0IHRvbCBFeHAgJCIp Ow0KICNlbmRpZg0KIA0KIHN0YXRpYyB2b2lkDQpAQCAtNjA1LDEyICs2MDUs MTAgQEAgZ2NfYmxvY2soc3RydWN0IG5ucGZzICpubnBmc3AsDQogICAgIH0N CiANCiAgICAgaWYgKCFubnBmc19ibG9ja19oYXZlX3AoeG4sIG9mZnNldCkp IHsNCi0jaWYgMCAgIC8qIGhhcHBlbnMgd2hlbiBkYWVtb24gc2VuZHMgc2V2 ZXJhbCBtZXNzYWdlcyBmb3Igc2FtZSBibG9jayAqLw0KIAlwcmludGsoS0VS Tl9FTUVSRyAiTk5QRlMvZ2NfYmxvY2s6ICINCiAJICAgICAgICJFTk9FTlQg KCVkLCVkLCVkLCVkKSAweCVsbHhcbiIsIA0KIAkgICAgICAgeG4tPmhhbmRs ZS5hLCB4bi0+aGFuZGxlLmIsIHhuLT5oYW5kbGUuYywgeG4tPmhhbmRsZS5k LCANCiAJICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpb2Zmc2V0KTsNCi0j ZW5kaWYNCiAJcmV0dXJuIC1FTk9FTlQ7DQogICAgIH0NCiANCkBAIC03Mzcs MTIgKzczNSwyMyBAQCBubnBmc19tZXNzYWdlX3ZlcnNpb24oc3RydWN0IG5u cGZzICpubnBmDQogCQkgICAibm5wZnNfbWVzc2FnZV92ZXJzaW9uIGZhaWxl ZCBwYXRoX2xvb2t1cCwgIg0KIAkJICAgImVycm5vOiAlZFxuIiwgZXJyb3Ip Ow0KIAl9IGVsc2Ugew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLDYsMjUpDQogCSAgICBubnBmc3AtPmNhY2hlcm9vdCA9 IG1udGdldChuZC5tbnQpOw0KIAkgICAgbm5wZnNwLT5jYWNoZWRpciA9IGRn ZXQobmQuZGVudHJ5KTsNCiAJICAgIHBhdGhfcmVsZWFzZSgmbmQpOw0KKyNl bHNlDQorCSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdldChuZC5wYXRo Lm1udCk7DQorCSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChuZC5wYXRo LmRlbnRyeSk7DQorCSAgICBwYXRoX3B1dCgmbmQucGF0aCk7DQorI2VuZGlm DQogCSAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W RVJTSU9OKDIsNiwyOCkNCiAJICAgIG5ucGZzcC0+dWlkID0gY3VycmVudC0+ ZnN1aWQ7DQogCSAgICBubnBmc3AtPmdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0K KyNlbHNlDQorICAgICAgICAgICAgbm5wZnNwLT51aWQgPSBjdXJyZW50X2Zz dWlkKCk7DQorICAgICAgICAgICAgbm5wZnNwLT5naWQgPSBjdXJyZW50X2Zz Z2lkKCk7DQorI2VuZGlmDQogDQogCSAgICAvKiBYWFggd2Ugc2hvdWxkIHZh bGlkYXRlIHRoZXNlIHZhbHVlcyAqLw0KIAkgICAgbm5wZnNfYmxvY2tzaXpl ID0gYmxvY2tzaXplOw0KZGlmZiAtdXByTiBhcmxhLTAuOTAvbm5wZnMvbGlu dXgvbm5wZnNfc3lzY2FsbHMuYyBhcmxhLTAuOTAtbmV3L25ucGZzL2xpbnV4 L25ucGZzX3N5c2NhbGxzLmMNCi0tLSBhcmxhLTAuOTAvbm5wZnMvbGludXgv bm5wZnNfc3lzY2FsbHMuYwkyMDA3LTAxLTAzIDE1OjI2OjI3LjAwMDAwMDAw MCArMDEwMA0KKysrIGFybGEtMC45MC1uZXcvbm5wZnMvbGludXgvbm5wZnNf c3lzY2FsbHMuYwkyMDEwLTA3LTExIDE4OjQ5OjAxLjIyOTYzOTI5OSArMDIw MA0KQEAgLTE0NywxMCArMTQ3LDE2IEBAIHN0YXRpYyBpbnQgbm5wZnNfc2Vj X3JlZ2lzdGVyZWQgPSAwOw0KICNkZWZpbmUgU0VDMlBBRyhzKSAobm5wZnNf cGFnX3QpKHVuc2lnbmVkIGxvbmcpKHMpDQogI2RlZmluZSBQQUcyU0VDKHAp ICh2b2lkICopKHVuc2lnbmVkIGxvbmcpKHApDQogDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyNCkNCisNCiBzdGF0 aWMgaW50DQogbm5wZnNfc2VjX3Rhc2tfYWxsb2Moc3RydWN0IHRhc2tfc3Ry dWN0ICpwKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5F TF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbm5wZnNfcGFnX3QgcGFnID0gU0VD MlBBRyhjdXJyZW50LT5zZWN1cml0eSk7DQorI2Vsc2UNCisgICAgbm5wZnNf cGFnX3QgcGFnID0gU0VDMlBBRyhjdXJyZW50X3NlY3VyaXR5KCkpOw0KKyNl bmRpZg0KICAgICBpZiAocGFnKQ0KIAlwLT5zZWN1cml0eSA9IFBBRzJTRUMo cGFnKTsNCiAgICAgcmV0dXJuIDA7DQpAQCAtMTY0LDM1ICsxNzAsNTUgQEAg bm5wZnNfc2VjX3Rhc2tfZnJlZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKg0KIAlw LT5zZWN1cml0eSA9IE5VTEw7DQogfQ0KIA0KKyNlbmRpZg0KKw0KIHN0YXRp YyBubnBmc19wYWdfdA0KIG5ucGZzX2dldF9wYWdfc2VjKHZvaWQpDQogew0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2 LDI4KQ0KICAgICBubnBmc19wYWdfdCBwYWcgPSBTRUMyUEFHKGN1cnJlbnQt PnNlY3VyaXR5KTsNCisjZWxzZQ0KKyAgICBubnBmc19wYWdfdCBwYWcgPSBT RUMyUEFHKGN1cnJlbnRfc2VjdXJpdHkoKSk7DQorI2VuZGlmDQogICAgIGlm IChwYWcpDQogCXJldHVybiBwYWc7DQogDQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIHJldHVybiBj dXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgcmV0dXJuIGN1cnJlbnRfdWlk KCk7DQorI2VuZGlmDQogfQ0KIA0KIHN0YXRpYyBpbnQNCiBubnBmc19zZXRf cGFnX3NlYyh2b2lkKQ0KIHsNCiAgICAgc3RhdGljIG5ucGZzX3BhZ190IHBh Z251bSA9IE5OUEZTX1BBR19MTElNOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KKyAgICBzdHJ1Y3QgY3Jl ZCAqY3JlZDsNCisjZW5kaWYNCiANCiAgICAgaWYgKHBhZ251bSA9PSBOTlBG U19QQUdfVUxJTSkNCiAJcmV0dXJuIC1FTk9NRU07DQogICAgIC8qIHBhZ251 bSA9IE5OUEZTX1BBR19MTElNOyAqLw0KICAgICANCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgY3Vy cmVudC0+c2VjdXJpdHkgPSBQQUcyU0VDKHBhZ251bSk7DQorI2Vsc2UNCisg ICAgY3JlZCA9IChzdHJ1Y3QgY3JlZCAqKSBjdXJyZW50LT5jcmVkOw0KKyAg ICBjcmVkLT5zZWN1cml0eSA9IFBBRzJTRUMocGFnbnVtKTsNCisjZW5kaWYN CiAgICAgcGFnbnVtKys7DQogICAgIHJldHVybiAwOw0KIH0NCiANCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI0KQ0K IHN0YXRpYyBzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9ucyBubnBmc19zZWNf b3BzID0gew0KICAgICAudGFza19hbGxvY19zZWN1cml0eSA9IG5ucGZzX3Nl Y190YXNrX2FsbG9jLA0KICAgICAudGFza19mcmVlX3NlY3VyaXR5ID0gbm5w ZnNfc2VjX3Rhc2tfZnJlZSwNCiAvLyAgICAudGFza19yZXBhcmVudF90b19p bml0ID0gbm5wZnNfc2VjX3JlcGFyZW50X3RvX2luaXQsDQogfTsNCisjZW5k aWYNCiANCiAjZW5kaWYgLyogQ09ORklHX1NFQ1VSSVRZICovDQogDQpAQCAt MjIyLDExICsyNDgsMTggQEAgZmluZF9wYWcoc3RydWN0IGdyb3VwX2luZm8g KmdpKQ0KIHN0YXRpYyBubnBmc19wYWdfdA0KIG5ucGZzX2dldF9wYWdfZ3Jv dXAodm9pZCkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJO RUxfVkVSU0lPTigyLDYsMjgpDQogICAgIHN0cnVjdCBncm91cF9pbmZvICpn aSA9IGN1cnJlbnQtPmdyb3VwX2luZm87DQogICAgIG5ucGZzX3BhZ190IHJl dCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgZ3JvdXBf aW5mbyAqZ2kgPSBnZXRfY3VycmVudF9ncm91cHMoKTsNCisgICAgbm5wZnNf cGFnX3QgcmV0ID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAgaW50 IGk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVS U0lPTigyLDYsMjgpDQogICAgIGdldF9ncm91cF9pbmZvKGdpKTsNCisjZW5k aWYNCiANCiAgICAgaSA9IGZpbmRfcGFnKGdpKTsNCiAgICAgaWYgKGkgIT0g Tk5QRlNfUEFHX05PVEZPVU5EKQ0KQEAgLTI0MiwxMyArMjc1LDIzIEBAIG5u cGZzX2dldF9wYWdfZ3JvdXAodm9pZCkNCiBzdGF0aWMgaW50DQogc3RvcmVf cGFnKG5ucGZzX3BhZ190IHBhZ251bSkNCiB7DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIHN0cnVj dCBncm91cF9pbmZvICpvbGRfZ2kgPSBjdXJyZW50LT5ncm91cF9pbmZvOw0K KyNlbHNlDQorICAgc3RydWN0IGdyb3VwX2luZm8gKm9sZF9naSA9IGdldF9j dXJyZW50X2dyb3VwcygpOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgZ3JvdXBf aW5mbyAqbmV3X2dpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLDYsMjUpDQogICAgIGludCBuYmxvY2tzLCBjb3VudDsN CisjZWxzZQ0KKyAgICB1bnNpZ25lZCBpbnQgbmJsb2NrcywgY291bnQ7DQor I2VuZGlmDQogICAgIGludCBmb3VuZCA9IDA7DQogICAgIGludCBpLCBrOw0K ICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJT SU9OKDIsNiwyOCkgICAgDQogICAgIGdldF9ncm91cF9pbmZvKG9sZF9naSk7 DQorI2VuZGlmDQogDQogICAgIGkgPSBmaW5kX3BhZyhvbGRfZ2kpOw0KICAg ICBpZiAoaSAhPSBOTlBGU19QQUdfTk9URk9VTkQpDQpAQCAtMzE3LDcgKzM2 MCwxMSBAQCBubnBmc19nZXRfcGFnKCkNCiAgICAgcmV0dXJuIG5ucGZzX2dl dF9wYWdfZ3JvdXAoKTsNCiAjZW5kaWYgLyogR1JPVVBQQUdTICovDQogDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYs MjgpDQogICAgIHJldHVybiBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAg cmV0dXJuIGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogfQ0KIA0KIHN0YXRp YyBpbmxpbmUgaW50DQpAQCAtNTI4LDcgKzU3NSwxMSBAQCB1c2VyX3BhdGgy ZGVudHJ5IChzdHJ1Y3QgbmFtZWlkYXRhICpuZCwgDQogICAgIHB1dG5hbWUo a25hbWUpOw0KICAgICBpZiAoZXJyb3IpDQogCXJldHVybiBFUlJfUFRSKGVy cm9yKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMiw2LDI1KQ0KICAgICByZXR1cm4gbmQtPmRlbnRyeTsNCisjZWxzZQ0K KyAgICByZXR1cm4gbmQtPnBhdGguZGVudHJ5Ow0KKyNlbmRpZg0KIH0NCiAN CiBhc21saW5rYWdlIGxvbmcNCkBAIC01NDAsMTEgKzU5MSwxNiBAQCBzeXNf YWZzX2ludCAoaW50IG9wZXJhdGlvbiwNCiB7DQogICAgIGxvbmcgZXJyb3Ig PSAwOw0KICAgICBzdHJ1Y3QgYXJsYVZpY2VJb2N0bCB2aWNlX2lvY3RsOyAN Ci0gICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfcGlvY3RsIG1zZzsNCisgICAg c3RydWN0IG5ucGZzX21lc3NhZ2VfcGlvY3RsICptc2cgPSBOVUxMOw0KICAg ICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV93YWtldXAgKm1zZzI7DQogICAgIHN0 cnVjdCBkZW50cnkgKmRlbnRyeSA9IE5VTEw7DQogICAgIHN0cnVjdCBuYW1l aWRhdGEgbmQ7DQotICAgIA0KKw0KKyAgICBtc2cgPSBrbWFsbG9jKHNpemVv ZihzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9waW9jdGwpLCBHRlBfS0VSTkVMKTsN CisNCisgICAgaWYgKCFtc2cpDQorICAgICAgcmV0dXJuIC1FTk9NRU07DQor DQogICAgIGxvY2tfa2VybmVsKCk7DQogDQogICAgIE5OUEZTREVCKFhERUJT WVMsICgic3lzX2FmcyBrZXJuZWwgbG9ja2VkXG4iKSk7DQpAQCAtNTc1LDcg KzYzMSw3IEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KIAkgICAg Z290byB1bmxvY2s7DQogCX0NCiAJaWYgKHZpY2VfaW9jdGwuaW5fc2l6ZSAh PSAwKSB7DQotCSAgICBpZihjb3B5X2Zyb21fdXNlcigmbXNnLm1zZywNCisJ ICAgIGlmKGNvcHlfZnJvbV91c2VyKCZtc2ctPm1zZywNCiAJCQkgICAgICB2 aWNlX2lvY3RsLmluLA0KIAkJCSAgICAgIHZpY2VfaW9jdGwuaW5fc2l6ZSkg IT0gMCkgew0KIAkJZXJyb3IgPSAtRUZBVUxUOw0KQEAgLTYyOCwxOSArNjg0 LDIzIEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KIAkJZXJyb3Ig PSAtRUlOVkFMOw0KIAkJZ290byB1bmxvY2s7DQogCSAgICB9DQotCSAgICBt c2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCisJICAgIG1zZy0+aGFuZGxlID0g eG4tPmhhbmRsZTsNCiAJfQ0KIA0KLQltc2cuaGVhZGVyLm9wY29kZSA9IE5O UEZTX01TR19QSU9DVEw7DQotCW1zZy5vcGNvZGUgPSBhX29wY29kZTsNCisJ bXNnLT5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BJT0NUTDsNCisJbXNn LT5vcGNvZGUgPSBhX29wY29kZTsNCiAJDQotCW1zZy5pbnNpemUgICA9IHZp Y2VfaW9jdGwuaW5fc2l6ZTsNCi0JbXNnLm91dHNpemUgID0gdmljZV9pb2N0 bC5vdXRfc2l6ZTsNCi0JbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0K LQltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQorCW1zZy0+aW5z aXplICAgPSB2aWNlX2lvY3RsLmluX3NpemU7DQorCW1zZy0+b3V0c2l6ZSAg PSB2aWNlX2lvY3RsLm91dF9zaXplOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KKwltc2ctPmNyZWQudWlk ID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICBtc2ctPmNyZWQu dWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCisJbXNnLT5jcmVkLnBh ZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJDQotCWVycm9yID0gbm5wZnNfbWVz c2FnZV9ycGMoJm5ucGZzWzBdLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykp OyAvKiBYWFggKi8NCi0JbXNnMiA9IChzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV93 YWtldXAgKikgJm1zZzsNCisJZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYygm bm5wZnNbMF0sICZtc2ctPmhlYWRlciwgc2l6ZW9mKHN0cnVjdCBubnBmc19t ZXNzYWdlX3Bpb2N0bCkpOyAvKiBYWFggKi8NCisJbXNnMiA9IChzdHJ1Y3Qg bm5wZnNfbWVzc2FnZV93YWtldXAgKikgbXNnOw0KIAlpZiAoZXJyb3IgPT0g MCkNCiAJICAgIGVycm9yID0gbXNnMi0+ZXJyb3I7DQogDQpAQCAtNjc1LDEx ICs3MzUsMTYgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQogICAg IA0KICB1bmxvY2s6DQogICAgIGlmIChkZW50cnkpDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyNSkNCiAJcGF0aF9y ZWxlYXNlKCZuZCk7DQorI2Vsc2UNCisJcGF0aF9wdXQoJm5kLnBhdGgpOw0K KyNlbmRpZg0KIA0KICAgICBOTlBGU0RFQihYREVCU1lTLCAoIm5ucGZzX3N5 c2NhbGwgcmV0dXJucyBlcnJvcjogJWxkXG4iLCBlcnJvcikpOw0KIA0KICAg ICBOTlBGU0RFQihYREVCU1lTLCAoInN5c19hZnMga2VybmVsIHVubG9ja1xu IikpOw0KKyAgICBrZnJlZShtc2cpOw0KICAgICB1bmxvY2tfa2VybmVsKCk7 DQogDQogICAgIHJldHVybiBlcnJvcjsNCkBAIC03ODAsMjAgKzg0NSwzMiBA QCBzdGF0aWMgaW50IG5ucGZzX2luaXRfcHJvY2ZzKHZvaWQpDQogew0KICAg ICBzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKmVudHJ5Ow0KICAgICANCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI2KQ0K ICAgICBubnBmc19wcm9jZnNfZGlyID0gcHJvY19ta2RpcihOTlBGU19QUk9D X0RJUiwgcHJvY19yb290X2ZzKTsNCisjZWxzZQ0KKyAgICBubnBmc19wcm9j ZnNfZGlyID0gcHJvY19ta2RpcigiZnMvIiBOTlBGU19QUk9DX0RJUiwgTlVM TCk7DQorI2VuZGlmDQogICAgIGlmIChubnBmc19wcm9jZnNfZGlyID09IE5V TEwpDQogCXJldHVybiAtRU5PTUVNOw0KICAgICANCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDMwKQ0KICAgICBubnBm c19wcm9jZnNfZGlyLT5vd25lciA9IFRISVNfTU9EVUxFOw0KKyNlbmRpZg0K ICAgICANCiAgICAgZW50cnkgPSBjcmVhdGVfcHJvY19lbnRyeShOTlBGU19Q Uk9DX05PREUsIDA2NjYsIG5ucGZzX3Byb2Nmc19kaXIpOw0KICAgICBpZiAo ZW50cnkgPT0gTlVMTCkgew0KIAlOTlBGU0RFQihYREVCU1lTLCAoIm5ucGZz X2luaXRfcHJvY2ZzOiBubyBub2RlXG4iKSk7DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyNikNCiAJcmVtb3ZlX3By b2NfZW50cnkoTk5QRlNfUFJPQ19ESVIsIHByb2Nfcm9vdF9mcyk7DQorI2Vs c2UNCisJcmVtb3ZlX3Byb2NfZW50cnkoImZzLyIgTk5QRlNfUFJPQ19ESVIs IE5VTEwpOw0KKyNlbmRpZg0KIAlyZXR1cm4gLUVOT01FTTsNCiAgICAgfQ0K ICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMiw2LDMwKQ0KICAgICBlbnRyeS0+b3duZXIgPSBUSElTX01PRFVMRTsN CisjZW5kaWYNCiAgICAgZW50cnktPnByb2NfZm9wcyA9ICZubnBmc19wcm9j ZnNfZm9wczsNCiANCiAjaWZkZWYgU1lTQ0FMTENPTVBBVA0KQEAgLTgxNSw3 ICs4OTIsMTEgQEAgc3RhdGljIHZvaWQgbm5wZnNfZXhpdF9wcm9jZnModm9p ZCkNCiAgICAgfQ0KICNlbmRpZiAvKiBTWVNDQUxMQ09NUEFUICovDQogICAg IHJlbW92ZV9wcm9jX2VudHJ5KE5OUEZTX1BST0NfTk9ERSwgbm5wZnNfcHJv Y2ZzX2Rpcik7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDIsNiwyNikNCiAgICAgcmVtb3ZlX3Byb2NfZW50cnkoTk5QRlNf UFJPQ19ESVIsIHByb2Nfcm9vdF9mcyk7DQorI2Vsc2UNCisgICAgcmVtb3Zl X3Byb2NfZW50cnkoImZzLyIgTk5QRlNfUFJPQ19ESVIsIE5VTEwpOw0KKyNl bmRpZg0KIH0NCiANCiAjaWZkZWYgR1JPVVBQQUdTDQpAQCAtODQwLDEyICs5 MjEsMTQgQEAgdm9pZA0KIGluc3RhbGxfYWZzX3N5c2NhbGwodm9pZCkNCiB7 DQogI2lmZGVmIENPTkZJR19TRUNVUklUWQ0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjQpDQogICAgIGlmIChyZWdp c3Rlcl9zZWN1cml0eSgmbm5wZnNfc2VjX29wcykpDQogCU5OUEZTREVCKFhE RUJTWVMsDQogCQkgKCJpbnN0YWxsX2Fmc19zeXNjYWxsOiBubnBmc19pbml0 X3NlYyBmYWlsZWRcbiIpKTsNCiAgICAgZWxzZQ0KIAlubnBmc19zZWNfcmVn aXN0ZXJlZCA9IDE7DQogI2VuZGlmDQorI2VuZGlmDQogDQogICAgIG5ucGZz X2luaXRfcHJvY2ZzKCk7DQogDQpAQCAtODg4LDkgKzk3MSwxMSBAQCByZXN0 b3JlX2Fmc19zeXNjYWxsICh2b2lkKQ0KICNlbmRpZiAvKiBTWVNDQUxMSEFD SyAqLw0KIA0KICNpZmRlZiBDT05GSUdfU0VDVVJJVFkNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI0KQ0KICAgICBp ZiAobm5wZnNfc2VjX3JlZ2lzdGVyZWQpDQogCWlmICh1bnJlZ2lzdGVyX3Nl Y3VyaXR5KCZubnBmc19zZWNfb3BzKSkNCiAJICAgIHByaW50ayhLRVJOX0VN RVJHICJubnBmc19leGl0X3NlYzogY291bGRuJ3QgdW5yZWdpc3RlclxuIik7 DQorI2VuZGlmDQogI2VuZGlmIC8qICFDT05GSUdfU0VDVVJJVFkgKi8NCiAN CiAjaWZkZWYgR1JPVVBQQUdTDQpkaWZmIC11cHJOIGFybGEtMC45MC9ubnBm cy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMgYXJsYS0wLjkwLW5l dy9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMNCi0tLSBh cmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5j CTIwMDYtMTItMTEgMTc6MzE6NDUuMDAwMDAwMDAwICswMTAwDQorKysgYXJs YS0wLjkwLW5ldy9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdl LmMJMjAxMC0wNy0xMSAxNzoxODoyNi41NzI0NTg5NjEgKzAyMDANCkBAIC02 Myw2ICs2MywxMSBAQCBjb25zdCBjaGFyICogX19hdHRyaWJ1dGVfXygod2Vh aykpDQogCQkgICAgdW5zaWduZWQgbG9uZyAqb2Zmc2V0LA0KIAkJICAgIGNo YXIgKiptb2RuYW1lLCBjaGFyICpuYW1lYnVmKTsNCiANCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFID4gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0KKyNpZmRl ZiBfX3g4Nl82NF9fDQorZXh0ZXJuIHJ3bG9ja190IHRhc2tsaXN0X2xvY2sg X19hdHRyaWJ1dGVfXygod2VhaykpOw0KKyNlbmRpZg0KKyNlbmRpZg0KIHN0 YXRpYyB2b2lkICoqDQogZ2V0X3N0YXJ0X2FkZHIodm9pZCkgew0KICNpZmRl ZiBfX3g4Nl82NF9fDQpkaWZmIC11cHJOIGFybGEtMC45MC9ubnBmcy9saW51 eC9ubnBmc192ZnNvcHMuYyBhcmxhLTAuOTAtbmV3L25ucGZzL2xpbnV4L25u cGZzX3Zmc29wcy5jDQotLS0gYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZz X3Zmc29wcy5jCTIwMDYtMTItMTEgMTc6NDM6MzUuMDAwMDAwMDAwICswMTAw DQorKysgYXJsYS0wLjkwLW5ldy9ubnBmcy9saW51eC9ubnBmc192ZnNvcHMu YwkyMDEwLTA3LTExIDE3OjE4OjI2LjU3Nzk1ODY4OCArMDIwMA0KQEAgLTQ5 LDkgKzQ5LDEzIEBAIFJDU0lEKCIkSWQ6IG5ucGZzX3Zmc29wcy5jLHYgMS4x MDkgMjAwNi8NCiANCiBzdHJ1Y3Qgbm5wZnMgbm5wZnNbTk5OUEZTXTsNCiAN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2 LDI1KQ0KIHN0YXRpYyB2b2lkIG5ucGZzX3JlYWRfaW5vZGUoc3RydWN0IGlu b2RlICppbm9kZSk7DQorI2VuZGlmDQogc3RhdGljIHZvaWQgbm5wZnNfcHV0 X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOw0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjUpDQogc3RhdGlj IHZvaWQgbm5wZnNfcHV0X2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpOw0K KyNlbmRpZg0KIHN0YXRpYyB2b2lkIG5ucGZzX3dyaXRlX3N1cGVyKHN0cnVj dCBzdXBlcl9ibG9jayAqIHNiKTsNCiANCiAjaWYgTElOVVhfVkVSU0lPTl9D T0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCkBAIC02MSw4ICs2NSwx MCBAQCBzdGF0aWMgaW50IG5ucGZzX3N0YXRmcyhzdHJ1Y3Qgc3VwZXJfYmxv DQogI2VuZGlmDQogDQogc3RhdGljIHN0cnVjdCBzdXBlcl9vcGVyYXRpb25z IG5ucGZzX3NvcHMgPSB7IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigyLDYsMjUpDQogICAgIHJlYWRfaW5vZGUJCTogbm5w ZnNfcmVhZF9pbm9kZSwNCiAgICAgcHV0X2lub2RlCQk6IG5ucGZzX3B1dF9p bm9kZSwNCisjZW5kaWYNCiAgICAgYWxsb2NfaW5vZGUJCTogbm5wZnNfbm9k ZV9hbGxvYywNCiAgICAgZGVzdHJveV9pbm9kZQk6IG5ucGZzX25vZGVfZnJl ZSwNCiAgICAgZHJvcF9pbm9kZQkJOiBnZW5lcmljX2RlbGV0ZV9pbm9kZSwN CkBAIC0xODksNyArMTk1LDExIEBAIG5ucGZzX3JlYWRfc3VwZXIgKHN0cnVj dCBzdXBlcl9ibG9jayAqIHMNCiAJaWYgKGVycm9yKQ0KIAkgICAgZGRldiA9 IEVSUl9QVFIoZXJyb3IpOw0KIAllbHNlDQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyNSkNCiAJICAgIGRkZXYgPSBu ZC5kZW50cnk7DQorI2Vsc2UNCisJICAgIGRkZXYgPSBuZC5wYXRoLmRlbnRy eTsNCisjZW5kaWYNCiANCiAJaWYgKCFJU19FUlIoZGRldikpIHsNCiAJICAg IG1pbm9yZGV2aWNlID0gTUlOT1IoZGRldi0+ZF9pbm9kZS0+aV9yZGV2KTsN CkBAIC0yNzMsNiArMjgzLDcgQEAgbm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBz dXBlcl9ibG9jayAqc2IpDQogICAgIE5OUEZTREVCKFhERUJWRk9QUywgKCJu bnBmc19wdXRfc3VwZXIgZXhpdGluZ1xuIikpOw0KIH0NCiANCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI1KQ0KIHN0 YXRpYyB2b2lkDQogbm5wZnNfcmVhZF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlu b2RlKQ0KIHsNCkBAIC0zMzksNiArMzUwLDcgQEAgbm5wZnNfcHV0X2lub2Rl KHN0cnVjdCBpbm9kZSAqaW5vZGUpDQogDQogICAgIHVwKCZubnBmc3AtPmlu YWN0aXZlX3NlbSk7DQogfQ0KKyNlbmRpZiAvLyBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjUpDQogDQogc3RhdGljIGludA0K IG5ucGZzX3N0YXRmc19pbnQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3Ry dWN0IGtzdGF0ZnMgKmJ1ZikNCkBAIC0zNTIsNyArMzY0LDE1IEBAIG5ucGZz X3N0YXRmc19pbnQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwNCiAgICAgdG1w LmZfYmF2YWlsICA9IDEwMjQqMTAyNCoyLTUwOw0KICAgICB0bXAuZl9maWxl cyAgID0gMTAyNCoxMDI0Ow0KICAgICB0bXAuZl9mZnJlZSAgID0gMTAyNCox MDI0LTEwMDsNCisgICAgdG1wLmZfZnNpZC52YWxbMF0gPSAwOw0KKyAgICB0 bXAuZl9mc2lkLnZhbFsxXSA9IDA7DQogICAgIHRtcC5mX25hbWVsZW4gPSBO QU1FX01BWDsNCisgICAgdG1wLmZfZnJzaXplICA9IDA7DQorICAgIHRtcC5m X3NwYXJlWzBdID0gMDsNCisgICAgdG1wLmZfc3BhcmVbMV0gPSAwOw0KKyAg ICB0bXAuZl9zcGFyZVsyXSA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzNdID0g MDsNCisgICAgdG1wLmZfc3BhcmVbNF0gPSAwOw0KICAgICAqYnVmID0gdG1w Ow0KICAgICByZXR1cm4gMDsNCiB9DQo= ---2098261369-1705470603-1278867499=:839778 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 ---2098261369-1705470603-1278867499=:839778--