Re: PATCH: Arla 0.90 on Linux 2.6.24-2.6.35-rc1
Bo Brantén <[email protected]> Sat, 5 Jun 2010 18:35:22 +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-1344207341-1275755722=:549032 Content-Type: TEXT/PLAIN; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Updated to the latest kernel. Bo Brant=E9n ---2098261369-1344207341-1275755722=:549032 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-arla-0.90-Linux3 Content-Transfer-Encoding: BASE64 Content-ID: <[email protected]> Content-Description: Content-Disposition: attachment; filename=patch-arla-0.90-Linux3 ZGlmZiAtdXByTiBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfYmxvY2tz LmMgYXJsYS0wLjkwLW5ldy9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYw0K LS0tIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDA3 LTAxLTA4IDE0OjI0OjI0LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45 MC1uZXcvbm5wZnMvbGludXgvbm5wZnNfYmxvY2tzLmMJMjAxMC0wNi0wMyAy MzozMTowNi4zOTI2MTIwMDYgKzAyMDANCkBAIC0zNCw3ICszNCw3IEBADQog 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 ZnNfaW5vZGVvcHMuYwkyMDEwLTA2LTA1IDE2OjU0OjQ3Ljg2NjE4OTA2NyAr 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 cGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYwkyMDEwLTA2LTAzIDIzOjMxOjA2 LjM5MjYxMjAwNiArMDIwMA0KQEAgLTQ1LDcgKzQ1LDcgQEANCiAjaW5jbHVk 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 c3lzY2FsbHMuYwkyMDEwLTA2LTA0IDAxOjE5OjIyLjgzMjYwOTQzNyArMDIw 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 MjIyLDggKzI0OCwxMyBAQCBmaW5kX3BhZyhzdHJ1Y3QgZ3JvdXBfaW5mbyAq Z2kpDQogc3RhdGljIG5ucGZzX3BhZ190DQogbm5wZnNfZ2V0X3BhZ19ncm91 cCh2b2lkKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5F TF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgc3RydWN0IGdyb3VwX2luZm8gKmdp ID0gY3VycmVudC0+Z3JvdXBfaW5mbzsNCiAgICAgbm5wZnNfcGFnX3QgcmV0 ID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgIHN0cnVjdCBncm91cF9p bmZvICpnaSA9IGdldF9jdXJyZW50X2dyb3VwcygpOw0KKyAgICBubnBmc19w YWdfdCByZXQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICBpbnQg aTsNCiANCiAgICAgZ2V0X2dyb3VwX2luZm8oZ2kpOw0KQEAgLTI0Miw5ICsy NzMsMTcgQEAgbm5wZnNfZ2V0X3BhZ19ncm91cCh2b2lkKQ0KIHN0YXRpYyBp bnQNCiBzdG9yZV9wYWcobm5wZnNfcGFnX3QgcGFnbnVtKQ0KIHsNCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkN CiAgICAgc3RydWN0IGdyb3VwX2luZm8gKm9sZF9naSA9IGN1cnJlbnQtPmdy b3VwX2luZm87DQorI2Vsc2UNCisgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqb2xk X2dpID0gZ2V0X2N1cnJlbnRfZ3JvdXBzKCk7DQorI2VuZGlmDQogICAgIHN0 cnVjdCBncm91cF9pbmZvICpuZXdfZ2k7DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyNSkNCiAgICAgaW50IG5ibG9j a3MsIGNvdW50Ow0KKyNlbHNlDQorICAgIHVuc2lnbmVkIGludCBuYmxvY2tz LCBjb3VudDsNCisjZW5kaWYNCiAgICAgaW50IGZvdW5kID0gMDsNCiAgICAg aW50IGksIGs7DQogICAgIA0KQEAgLTMxNyw3ICszNTYsMTEgQEAgbm5wZnNf Z2V0X3BhZygpDQogICAgIHJldHVybiBubnBmc19nZXRfcGFnX2dyb3VwKCk7 DQogI2VuZGlmIC8qIEdST1VQUEFHUyAqLw0KIA0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICByZXR1 cm4gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgIHJldHVybiBjdXJyZW50 X3VpZCgpOw0KKyNlbmRpZg0KIH0NCiANCiBzdGF0aWMgaW5saW5lIGludA0K QEAgLTUyOCw3ICs1NzEsMTEgQEAgdXNlcl9wYXRoMmRlbnRyeSAoc3RydWN0 IG5hbWVpZGF0YSAqbmQsIA0KICAgICBwdXRuYW1lKGtuYW1lKTsNCiAgICAg aWYgKGVycm9yKQ0KIAlyZXR1cm4gRVJSX1BUUihlcnJvcik7DQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyNSkNCiAg ICAgcmV0dXJuIG5kLT5kZW50cnk7DQorI2Vsc2UNCisgICAgcmV0dXJuIG5k LT5wYXRoLmRlbnRyeTsNCisjZW5kaWYNCiB9DQogDQogYXNtbGlua2FnZSBs b25nDQpAQCAtNTQwLDExICs1ODcsMTYgQEAgc3lzX2Fmc19pbnQgKGludCBv cGVyYXRpb24sDQogew0KICAgICBsb25nIGVycm9yID0gMDsNCiAgICAgc3Ry dWN0IGFybGFWaWNlSW9jdGwgdmljZV9pb2N0bDsgDQotICAgIHN0cnVjdCBu bnBmc19tZXNzYWdlX3Bpb2N0bCBtc2c7DQorICAgIHN0cnVjdCBubnBmc19t ZXNzYWdlX3Bpb2N0bCAqbXNnID0gTlVMTDsNCiAgICAgc3RydWN0IG5ucGZz X21lc3NhZ2Vfd2FrZXVwICptc2cyOw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpk ZW50cnkgPSBOVUxMOw0KICAgICBzdHJ1Y3QgbmFtZWlkYXRhIG5kOw0KLSAg ICANCisNCisgICAgbXNnID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IG5ucGZz X21lc3NhZ2VfcGlvY3RsKSwgR0ZQX0tFUk5FTCk7DQorDQorICAgIGlmICgh bXNnKQ0KKyAgICAgIHJldHVybiAtRU5PTUVNOw0KKw0KICAgICBsb2NrX2tl cm5lbCgpOw0KIA0KICAgICBOTlBGU0RFQihYREVCU1lTLCAoInN5c19hZnMg a2VybmVsIGxvY2tlZFxuIikpOw0KQEAgLTU3NSw3ICs2MjcsNyBAQCBzeXNf YWZzX2ludCAoaW50IG9wZXJhdGlvbiwNCiAJICAgIGdvdG8gdW5sb2NrOw0K IAl9DQogCWlmICh2aWNlX2lvY3RsLmluX3NpemUgIT0gMCkgew0KLQkgICAg aWYoY29weV9mcm9tX3VzZXIoJm1zZy5tc2csDQorCSAgICBpZihjb3B5X2Zy b21fdXNlcigmbXNnLT5tc2csDQogCQkJICAgICAgdmljZV9pb2N0bC5pbiwN CiAJCQkgICAgICB2aWNlX2lvY3RsLmluX3NpemUpICE9IDApIHsNCiAJCWVy cm9yID0gLUVGQVVMVDsNCkBAIC02MjgsMTkgKzY4MCwyMyBAQCBzeXNfYWZz X2ludCAoaW50IG9wZXJhdGlvbiwNCiAJCWVycm9yID0gLUVJTlZBTDsNCiAJ CWdvdG8gdW5sb2NrOw0KIAkgICAgfQ0KLQkgICAgbXNnLmhhbmRsZSA9IHhu LT5oYW5kbGU7DQorCSAgICBtc2ctPmhhbmRsZSA9IHhuLT5oYW5kbGU7DQog CX0NCiANCi0JbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfUElPQ1RM Ow0KLQltc2cub3Bjb2RlID0gYV9vcGNvZGU7DQorCW1zZy0+aGVhZGVyLm9w Y29kZSA9IE5OUEZTX01TR19QSU9DVEw7DQorCW1zZy0+b3Bjb2RlID0gYV9v cGNvZGU7DQogCQ0KLQltc2cuaW5zaXplICAgPSB2aWNlX2lvY3RsLmluX3Np emU7DQotCW1zZy5vdXRzaXplICA9IHZpY2VfaW9jdGwub3V0X3NpemU7DQot CW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCi0JbXNnLmNyZWQucGFn ID0gbm5wZnNfZ2V0X3BhZygpOw0KKwltc2ctPmluc2l6ZSAgID0gdmljZV9p b2N0bC5pbl9zaXplOw0KKwltc2ctPm91dHNpemUgID0gdmljZV9pb2N0bC5v dXRfc2l6ZTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W RVJTSU9OKDIsNiwyOCkNCisJbXNnLT5jcmVkLnVpZCA9IGN1cnJlbnQtPnVp ZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLT5jcmVkLnVpZCA9IGN1cnJlbnRf dWlkKCk7DQorI2VuZGlmDQorCW1zZy0+Y3JlZC5wYWcgPSBubnBmc19nZXRf cGFnKCk7DQogCQ0KLQllcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKCZubnBm c1swXSwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsgLyogWFhYICovDQot CW1zZzIgPSAoc3RydWN0IG5ucGZzX21lc3NhZ2Vfd2FrZXVwICopICZtc2c7 DQorCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMoJm5ucGZzWzBdLCAmbXNn LT5oZWFkZXIsIHNpemVvZihzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9waW9jdGwp KTsgLyogWFhYICovDQorCW1zZzIgPSAoc3RydWN0IG5ucGZzX21lc3NhZ2Vf d2FrZXVwICopIG1zZzsNCiAJaWYgKGVycm9yID09IDApDQogCSAgICBlcnJv ciA9IG1zZzItPmVycm9yOw0KIA0KQEAgLTY3NSwxMSArNzMxLDE2IEBAIHN5 c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KICAgICANCiAgdW5sb2NrOg0K ICAgICBpZiAoZGVudHJ5KQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigyLDYsMjUpDQogCXBhdGhfcmVsZWFzZSgmbmQpOw0K KyNlbHNlDQorCXBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZW5kaWYNCiANCiAg ICAgTk5QRlNERUIoWERFQlNZUywgKCJubnBmc19zeXNjYWxsIHJldHVybnMg ZXJyb3I6ICVsZFxuIiwgZXJyb3IpKTsNCiANCiAgICAgTk5QRlNERUIoWERF QlNZUywgKCJzeXNfYWZzIGtlcm5lbCB1bmxvY2tcbiIpKTsNCisgICAga2Zy ZWUobXNnKTsNCiAgICAgdW5sb2NrX2tlcm5lbCgpOw0KIA0KICAgICByZXR1 cm4gZXJyb3I7DQpAQCAtNzgwLDIwICs4NDEsMzIgQEAgc3RhdGljIGludCBu bnBmc19pbml0X3Byb2Nmcyh2b2lkKQ0KIHsNCiAgICAgc3RydWN0IHByb2Nf ZGlyX2VudHJ5ICplbnRyeTsNCiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyNikNCiAgICAgbm5wZnNfcHJv Y2ZzX2RpciA9IHByb2NfbWtkaXIoTk5QRlNfUFJPQ19ESVIsIHByb2Nfcm9v dF9mcyk7DQorI2Vsc2UNCisgICAgbm5wZnNfcHJvY2ZzX2RpciA9IHByb2Nf bWtkaXIoImZzLyIgTk5QRlNfUFJPQ19ESVIsIE5VTEwpOw0KKyNlbmRpZg0K ICAgICBpZiAobm5wZnNfcHJvY2ZzX2RpciA9PSBOVUxMKQ0KIAlyZXR1cm4g LUVOT01FTTsNCiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDIsNiwzMCkNCiAgICAgbm5wZnNfcHJvY2ZzX2Rpci0+ b3duZXIgPSBUSElTX01PRFVMRTsNCisjZW5kaWYNCiAgICAgDQogICAgIGVu dHJ5ID0gY3JlYXRlX3Byb2NfZW50cnkoTk5QRlNfUFJPQ19OT0RFLCAwNjY2 LCBubnBmc19wcm9jZnNfZGlyKTsNCiAgICAgaWYgKGVudHJ5ID09IE5VTEwp IHsNCiAJTk5QRlNERUIoWERFQlNZUywgKCJubnBmc19pbml0X3Byb2Nmczog bm8gbm9kZVxuIikpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLDYsMjYpDQogCXJlbW92ZV9wcm9jX2VudHJ5KE5OUEZT X1BST0NfRElSLCBwcm9jX3Jvb3RfZnMpOw0KKyNlbHNlDQorCXJlbW92ZV9w cm9jX2VudHJ5KCJmcy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsNCisjZW5k aWYNCiAJcmV0dXJuIC1FTk9NRU07DQogICAgIH0NCiAgICAgDQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzMCkNCiAg ICAgZW50cnktPm93bmVyID0gVEhJU19NT0RVTEU7DQorI2VuZGlmDQogICAg IGVudHJ5LT5wcm9jX2ZvcHMgPSAmbm5wZnNfcHJvY2ZzX2ZvcHM7DQogDQog I2lmZGVmIFNZU0NBTExDT01QQVQNCkBAIC04MTUsNyArODg4LDExIEBAIHN0 YXRpYyB2b2lkIG5ucGZzX2V4aXRfcHJvY2ZzKHZvaWQpDQogICAgIH0NCiAj ZW5kaWYgLyogU1lTQ0FMTENPTVBBVCAqLw0KICAgICByZW1vdmVfcHJvY19l bnRyeShOTlBGU19QUk9DX05PREUsIG5ucGZzX3Byb2Nmc19kaXIpOw0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjYp DQogICAgIHJlbW92ZV9wcm9jX2VudHJ5KE5OUEZTX1BST0NfRElSLCBwcm9j X3Jvb3RfZnMpOw0KKyNlbHNlDQorICAgIHJlbW92ZV9wcm9jX2VudHJ5KCJm cy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsNCisjZW5kaWYNCiB9DQogDQog I2lmZGVmIEdST1VQUEFHUw0KQEAgLTg0MCwxMiArOTE3LDE0IEBAIHZvaWQN CiBpbnN0YWxsX2Fmc19zeXNjYWxsKHZvaWQpDQogew0KICNpZmRlZiBDT05G SUdfU0VDVVJJVFkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMiw2LDI0KQ0KICAgICBpZiAocmVnaXN0ZXJfc2VjdXJpdHko Jm5ucGZzX3NlY19vcHMpKQ0KIAlOTlBGU0RFQihYREVCU1lTLA0KIAkJICgi aW5zdGFsbF9hZnNfc3lzY2FsbDogbm5wZnNfaW5pdF9zZWMgZmFpbGVkXG4i KSk7DQogICAgIGVsc2UNCiAJbm5wZnNfc2VjX3JlZ2lzdGVyZWQgPSAxOw0K ICNlbmRpZg0KKyNlbmRpZg0KIA0KICAgICBubnBmc19pbml0X3Byb2Nmcygp Ow0KIA0KQEAgLTg4OCw5ICs5NjcsMTEgQEAgcmVzdG9yZV9hZnNfc3lzY2Fs bCAodm9pZCkNCiAjZW5kaWYgLyogU1lTQ0FMTEhBQ0sgKi8NCiANCiAjaWZk ZWYgQ09ORklHX1NFQ1VSSVRZDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDIsNiwyNCkNCiAgICAgaWYgKG5ucGZzX3NlY19y ZWdpc3RlcmVkKQ0KIAlpZiAodW5yZWdpc3Rlcl9zZWN1cml0eSgmbm5wZnNf c2VjX29wcykpDQogCSAgICBwcmludGsoS0VSTl9FTUVSRyAibm5wZnNfZXhp dF9zZWM6IGNvdWxkbid0IHVucmVnaXN0ZXJcbiIpOw0KKyNlbmRpZg0KICNl bmRpZiAvKiAhQ09ORklHX1NFQ1VSSVRZICovDQogDQogI2lmZGVmIEdST1VQ UEFHUw0KZGlmZiAtdXByTiBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNf c3lzY2FsbHMtbG9zc2FnZS5jIGFybGEtMC45MC1uZXcvbm5wZnMvbGludXgv bm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jDQotLS0gYXJsYS0wLjkwL25ucGZz L2xpbnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYwkyMDA2LTEyLTExIDE3 OjMxOjQ1LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC1uZXcvbm5w ZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jCTIwMTAtMDYtMDMg MjM6MzE6MDYuMzkyNjEyMDA2ICswMjAwDQpAQCAtNjMsNiArNjMsMTEgQEAg Y29uc3QgY2hhciAqIF9fYXR0cmlidXRlX18oKHdlYWspKQ0KIAkJICAgIHVu c2lnbmVkIGxvbmcgKm9mZnNldCwNCiAJCSAgICBjaGFyICoqbW9kbmFtZSwg Y2hhciAqbmFtZWJ1Zik7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+ IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCisjaWZkZWYgX194ODZfNjRfXw0K K2V4dGVybiByd2xvY2tfdCB0YXNrbGlzdF9sb2NrIF9fYXR0cmlidXRlX18o KHdlYWspKTsNCisjZW5kaWYNCisjZW5kaWYNCiBzdGF0aWMgdm9pZCAqKg0K IGdldF9zdGFydF9hZGRyKHZvaWQpIHsNCiAjaWZkZWYgX194ODZfNjRfXw0K ZGlmZiAtdXByTiBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfdmZzb3Bz LmMgYXJsYS0wLjkwLW5ldy9ubnBmcy9saW51eC9ubnBmc192ZnNvcHMuYw0K LS0tIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc192ZnNvcHMuYwkyMDA2 LTEyLTExIDE3OjQzOjM1LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45 MC1uZXcvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMJMjAxMC0wNi0wMyAy MzozMTowNi4zOTI2MTIwMDYgKzAyMDANCkBAIC00OSw5ICs0OSwxMyBAQCBS Q1NJRCgiJElkOiBubnBmc192ZnNvcHMuYyx2IDEuMTA5IDIwMDYvDQogDQog c3RydWN0IG5ucGZzIG5ucGZzW05OTlBGU107DQogDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyNSkNCiBzdGF0aWMg dm9pZCBubnBmc19yZWFkX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpOw0K KyNlbmRpZg0KIHN0YXRpYyB2b2lkIG5ucGZzX3B1dF9zdXBlcihzdHJ1Y3Qg c3VwZXJfYmxvY2sgKnNiKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMiw2LDI1KQ0KIHN0YXRpYyB2b2lkIG5ucGZzX3B1 dF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsNCisjZW5kaWYNCiBzdGF0 aWMgdm9pZCBubnBmc193cml0ZV9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sg KiBzYik7DQogDQogI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxf VkVSU0lPTigyLDYsMTgpDQpAQCAtNjEsOCArNjUsMTAgQEAgc3RhdGljIGlu dCBubnBmc19zdGF0ZnMoc3RydWN0IHN1cGVyX2Jsbw0KICNlbmRpZg0KIA0K IHN0YXRpYyBzdHJ1Y3Qgc3VwZXJfb3BlcmF0aW9ucyBubnBmc19zb3BzID0g eyANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Miw2LDI1KQ0KICAgICByZWFkX2lub2RlCQk6IG5ucGZzX3JlYWRfaW5vZGUs DQogICAgIHB1dF9pbm9kZQkJOiBubnBmc19wdXRfaW5vZGUsDQorI2VuZGlm DQogICAgIGFsbG9jX2lub2RlCQk6IG5ucGZzX25vZGVfYWxsb2MsDQogICAg IGRlc3Ryb3lfaW5vZGUJOiBubnBmc19ub2RlX2ZyZWUsDQogICAgIGRyb3Bf aW5vZGUJCTogZ2VuZXJpY19kZWxldGVfaW5vZGUsDQpAQCAtMTg5LDcgKzE5 NSwxMSBAQCBubnBmc19yZWFkX3N1cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sg KiBzDQogCWlmIChlcnJvcikNCiAJICAgIGRkZXYgPSBFUlJfUFRSKGVycm9y KTsNCiAJZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigyLDYsMjUpDQogCSAgICBkZGV2ID0gbmQuZGVudHJ5Ow0KKyNl bHNlDQorCSAgICBkZGV2ID0gbmQucGF0aC5kZW50cnk7DQorI2VuZGlmDQog DQogCWlmICghSVNfRVJSKGRkZXYpKSB7DQogCSAgICBtaW5vcmRldmljZSA9 IE1JTk9SKGRkZXYtPmRfaW5vZGUtPmlfcmRldik7DQpAQCAtMjczLDYgKzI4 Myw3IEBAIG5ucGZzX3B1dF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNi KQ0KICAgICBOTlBGU0RFQihYREVCVkZPUFMsICgibm5wZnNfcHV0X3N1cGVy IGV4aXRpbmdcbiIpKTsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyNSkNCiBzdGF0aWMgdm9pZA0KIG5u cGZzX3JlYWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkNCiB7DQpAQCAt MzM5LDYgKzM1MCw3IEBAIG5ucGZzX3B1dF9pbm9kZShzdHJ1Y3QgaW5vZGUg Kmlub2RlKQ0KIA0KICAgICB1cCgmbm5wZnNwLT5pbmFjdGl2ZV9zZW0pOw0K IH0NCisjZW5kaWYgLy8gTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMiw2LDI1KQ0KIA0KIHN0YXRpYyBpbnQNCiBubnBmc19zdGF0ZnNf aW50KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBrc3RhdGZzICpi dWYpDQpAQCAtMzUyLDcgKzM2NCwxNSBAQCBubnBmc19zdGF0ZnNfaW50KHN0 cnVjdCBzdXBlcl9ibG9jayAqc2IsDQogICAgIHRtcC5mX2JhdmFpbCAgPSAx MDI0KjEwMjQqMi01MDsNCiAgICAgdG1wLmZfZmlsZXMgICA9IDEwMjQqMTAy NDsNCiAgICAgdG1wLmZfZmZyZWUgICA9IDEwMjQqMTAyNC0xMDA7DQorICAg IHRtcC5mX2ZzaWQudmFsWzBdID0gMDsNCisgICAgdG1wLmZfZnNpZC52YWxb MV0gPSAwOw0KICAgICB0bXAuZl9uYW1lbGVuID0gTkFNRV9NQVg7DQorICAg IHRtcC5mX2Zyc2l6ZSAgPSAwOw0KKyAgICB0bXAuZl9zcGFyZVswXSA9IDA7 DQorICAgIHRtcC5mX3NwYXJlWzFdID0gMDsNCisgICAgdG1wLmZfc3BhcmVb Ml0gPSAwOw0KKyAgICB0bXAuZl9zcGFyZVszXSA9IDA7DQorICAgIHRtcC5m X3NwYXJlWzRdID0gMDsNCiAgICAgKmJ1ZiA9IHRtcDsNCiAgICAgcmV0dXJu IDA7DQogfQ0K ---2098261369-1344207341-1275755722=:549032 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-1344207341-1275755722=:549032--