Date: Sat, 23 Oct 2010 21:05:43 -0700 From: Garrett Cooper <gcooper@FreeBSD.org> To: =?ISO-8859-1?Q?Dag=2DErling_Sm=F8rgrav?= <des@des.no> Cc: freebsd-hackers@freebsd.org, Ivan Voras <ivoras@freebsd.org> Subject: Re: Why is TUNABLE_INT discouraged? Message-ID: <AANLkTim-XVhm-RLUo7rwwJ%2B3=tCHMKNsk9DbtrSezxHo@mail.gmail.com> In-Reply-To: <8662wz4twb.fsf@ds4.des.no> References: <AANLkTinKaiGFhKRgqQ%2BFjm=02VfWCxULe0a68y-PkJx6@mail.gmail.com> <86fwyq8rsc.fsf@ds4.des.no> <i3kbis$73l$1@dough.gmane.org> <86d3tujh72.fsf@ds4.des.no> <AANLkTi=puD%2B-WeZ%2BFGdtZtw1v%2BNnGD_htwNa%2BEn9fcML@mail.gmail.com> <864of680wv.fsf@ds4.des.no> <AANLkTinraF50O%2Bcp_h1m6TODnoz_7R3WXfjTanh-86mn@mail.gmail.com> <AANLkTikU6fLzWL-n6fCtvaTsXWGis7ydKM1qJaV=WRJ%2B@mail.gmail.com> <8662zkurx9.fsf@ds4.des.no> <AANLkTimbkTQiNgYCYFnTXMpRe9koJGrq1%2BYoq5-fVmFD@mail.gmail.com> <8662zg586z.fsf@ds4.des.no> <AANLkTim1E94qWq1TF1111-sYo2dj35Y-XnPq3DT4kpoL@mail.gmail.com> <AANLkTik-zV67LYAbwStXPJ5YoK2j-rDwvyEAc3H5nGD0@mail.gmail.com> <8662wz4twb.fsf@ds4.des.no>
next in thread | previous in thread | raw e-mail | index | archive | help
--000e0cdfc900503d80049354fd59 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable 2010/10/18 Dag-Erling Sm=F8rgrav <des@des.no>: > Garrett Cooper <gcooper@FreeBSD.org> writes: >> PS I added uquad_t for consistency in the APIs, even though quad_t was >> deprecated, but I didn't bump __FreeBSD_version__ -- wasn't sure if I >> should have done that). > > You should bump __FreeBSD_version__ anyway so third-party or shared code > can use the new API if it is available and the old one if it isn't. > >> Let's try with the patch attached... > > Mailman strips binary attachments. =A0The correct MIME type is > text/x-patch. Ok. Let's retry with a .patch extension and by bumping __FreeBSD_versio= n__. Thanks! -Garrett --000e0cdfc900503d80049354fd59 Content-Type: text/x-patch; charset=US-ASCII; name="tunables-enhancement.patch" Content-Disposition: attachment; filename="tunables-enhancement.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gfne3kym1 SW5kZXg6IHN5cy9rZXJuL2tlcm5fZW52aXJvbm1lbnQuYwo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMva2Vy bi9rZXJuX2Vudmlyb25tZW50LmMJKHJldmlzaW9uIDIxNDI1OCkKKysrIHN5cy9rZXJuL2tlcm5f ZW52aXJvbm1lbnQuYwkod29ya2luZyBjb3B5KQpAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUg PHN5cy9zeXNlbnQuaD4KICNpbmNsdWRlIDxzeXMvc3lzcHJvdG8uaD4KICNpbmNsdWRlIDxzeXMv bGlia2Vybi5oPgorI2luY2x1ZGUgPHN5cy9saW1pdHMuaD4KICNpbmNsdWRlIDxzeXMva2Vudi5o PgogCiAjaW5jbHVkZSA8c2VjdXJpdHkvbWFjL21hY19mcmFtZXdvcmsuaD4KQEAgLTQ0MiwzMiAr NDQzLDExNSBAQAogfQogCiAvKgotICogUmV0dXJuIGEgc3RyaW5nIHZhbHVlIGZyb20gYW4gZW52 aXJvbm1lbnQgdmFyaWFibGUuCisgKiBSZXR1cm4gdGhlIG11bHRpcGxpZXIgZm9yIGEgdXNlciBz cGVjaWZpZWQgc3VmZml4IGZyb20gYSBnZXRlbnYgY2FsbC4KICAqLwordWludG1heF90CitnZXRl bnZfcGFyc2Vfc3VmZml4KGNvbnN0IGNoYXIgc3VmZml4KQoreworCXVpbnRtYXhfdCBtdWx0aXBs aWVyID0gMTsKKworCXN3aXRjaCAoc3VmZml4KSB7CisJY2FzZSAndCc6IGNhc2UgJ1QnOgorCQlt dWx0aXBsaWVyICo9IDEwMjQ7CisJY2FzZSAnZyc6IGNhc2UgJ0cnOgorCQltdWx0aXBsaWVyICo9 IDEwMjQ7CisJY2FzZSAnbSc6IGNhc2UgJ00nOgorCQltdWx0aXBsaWVyICo9IDEwMjQ7CisJY2Fz ZSAnayc6IGNhc2UgJ0snOgorCQltdWx0aXBsaWVyICo9IDEwMjQ7CisJY2FzZSAnXDAnOgorCQli cmVhazsKKwlkZWZhdWx0OgorCQltdWx0aXBsaWVyID0gMDsKKwl9CisKKwlyZXR1cm4gKG11bHRp cGxpZXIpOworfQorCisvKgorICogUmV0dXJuIGEgc2lnbmVkIHF1YW50aXR5IGZyb20gYW4gZW52 aXJvbm1lbnQgdmFyaWFibGUuCisgKi8KIGludAotZ2V0ZW52X3N0cmluZyhjb25zdCBjaGFyICpu YW1lLCBjaGFyICpkYXRhLCBpbnQgc2l6ZSkKK2dldGVudl9zaWduZWQoY29uc3QgY2hhciAqbmFt ZSwgaW50bWF4X3QgKmRhdGEsIGNvbnN0IGludG1heF90IG1pbiwKKyAgICBjb25zdCBpbnRtYXhf dCBtYXgpCiB7Ci0JY2hhciAqdG1wOworCXVpbnRtYXhfdAltdWx0aXBsaWVyOworCWludG1heF90 CWl2OworCWludAkJcmV0X2NvZGU7CisJY2hhcgkJKnZhbHVlOworCWNoYXIJCSp2dHA7CiAKLQl0 bXAgPSBnZXRlbnYobmFtZSk7Ci0JaWYgKHRtcCAhPSBOVUxMKSB7Ci0JCXN0cmxjcHkoZGF0YSwg dG1wLCBzaXplKTsKLQkJZnJlZWVudih0bXApOwotCQlyZXR1cm4gKDEpOwotCX0gZWxzZQotCQly ZXR1cm4gKDApOworCXJldF9jb2RlID0gMDsKKworCXZhbHVlID0gZ2V0ZW52KG5hbWUpOworCWlm ICh2YWx1ZSA9PSBOVUxMKQorCQlyZXR1cm4gKHJldF9jb2RlKTsKKwlpdiA9IHN0cnRvcSh2YWx1 ZSwgJnZ0cCwgMCk7CisJaWYgKHZ0cCA9PSB2YWx1ZSB8fCAodnRwWzBdICE9ICdcMCcgJiYgdnRw WzFdICE9ICdcMCcpIHx8CisJICAgIChtdWx0aXBsaWVyID0gZ2V0ZW52X3BhcnNlX3N1ZmZpeCh2 dHBbMF0pKSA9PSAwKSB7CisJCS8qIAorCQkgKiBDYXRjaCBlcnJvcnMgaW4gcGFyc2luZyB0aGUg bnVtYmVyLCBiYWQgaW5wdXQsIG9yIHRoZQorCQkgKiBzdWZmaXggaWYgb25lIHdhcyBzcGVjaWZp ZWQuCisJCSAqLworCQk7CisJfSBlbHNlIHsKKwkJaXYgKj0gbXVsdGlwbGllcjsKKwkJaWYgKG1p biA8PSBpdiAmJiBpdiA8PSBtYXgpIHsKKwkJCSpkYXRhID0gaXY7CisJCQlyZXRfY29kZSA9IDE7 CisJCX0KKwl9CisJZnJlZWVudih2YWx1ZSk7CisJcmV0dXJuIChyZXRfY29kZSk7CiB9CiAKIC8q CisgKiBSZXR1cm4gYW4gdW5zaWduZWQgcXVhbnRpdHkgZnJvbSBhbiBlbnZpcm9ubWVudCB2YXJp YWJsZS4KKyAqLworaW50CitnZXRlbnZfdW5zaWduZWQoY29uc3QgY2hhciAqbmFtZSwgdWludG1h eF90ICpkYXRhLCBjb25zdCB1aW50bWF4X3QgbWluLAorICAgIGNvbnN0IHVpbnRtYXhfdCBtYXgp Cit7CisJdWludG1heF90CW11bHRpcGxpZXI7CisJdWludG1heF90CXVpdjsKKwlpbnQJCXJldF9j b2RlOworCWNoYXIJCSp2YWx1ZTsKKwljaGFyCQkqdnRwOworCisJcmV0X2NvZGUgPSAwOworCisJ dmFsdWUgPSBnZXRlbnYobmFtZSk7CisJaWYgKHZhbHVlID09IE5VTEwpCisJCXJldHVybiAocmV0 X2NvZGUpOworCXVpdiA9IHN0cnRvdXEodmFsdWUsICZ2dHAsIDApOworCWlmICh2dHAgPT0gdmFs dWUgfHwgKHZ0cFswXSAhPSAnXDAnICYmIHZ0cFsxXSAhPSAnXDAnKSB8fAorCSAgICAobXVsdGlw bGllciA9IGdldGVudl9wYXJzZV9zdWZmaXgodnRwWzBdKSkgPT0gMCkgeworCQkvKiAKKwkJICog Q2F0Y2ggZXJyb3JzIGluIHBhcnNpbmcgdGhlIG51bWJlciwgYmFkIGlucHV0LCBvciB0aGUKKwkJ ICogc3VmZml4IGlmIG9uZSB3YXMgc3BlY2lmaWVkLgorCQkgKi8KKwkJOworCX0gZWxzZSB7CisJ CXVpdiAqPSBtdWx0aXBsaWVyOworCQlpZiAobWluIDw9IHVpdiAmJiB1aXYgPD0gbWF4KSB7CisJ CQkqZGF0YSA9IHVpdjsKKwkJCXJldF9jb2RlID0gMTsKKwkJfQorCX0KKwlmcmVlZW52KHZhbHVl KTsKKwlyZXR1cm4gKHJldF9jb2RlKTsKK30KKworLyoKICAqIFJldHVybiBhbiBpbnRlZ2VyIHZh bHVlIGZyb20gYW4gZW52aXJvbm1lbnQgdmFyaWFibGUuCiAgKi8KIGludAogZ2V0ZW52X2ludChj b25zdCBjaGFyICpuYW1lLCBpbnQgKmRhdGEpCiB7Ci0JcXVhZF90IHRtcDsKKwlpbnRtYXhfdCB0 bXA7CiAJaW50IHJ2YWw7CiAKLQlydmFsID0gZ2V0ZW52X3F1YWQobmFtZSwgJnRtcCk7CisJcnZh bCA9IGdldGVudl9zaWduZWQobmFtZSwgJnRtcCwgSU5UX01JTiwgSU5UX01BWCk7CiAJaWYgKHJ2 YWwpCiAJCSpkYXRhID0gKGludCkgdG1wOwogCXJldHVybiAocnZhbCk7CkBAIC00NzksMTAgKzU2 MywxMCBAQAogaW50CiBnZXRlbnZfdWludChjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBpbnQg KmRhdGEpCiB7Ci0JcXVhZF90IHRtcDsKKwlpbnRtYXhfdCB0bXA7CiAJaW50IHJ2YWw7CiAKLQly dmFsID0gZ2V0ZW52X3F1YWQobmFtZSwgJnRtcCk7CisJcnZhbCA9IGdldGVudl91bnNpZ25lZChu YW1lLCAmdG1wLCAwLCBVSU5UX01BWCk7CiAJaWYgKHJ2YWwpCiAJCSpkYXRhID0gKHVuc2lnbmVk IGludCkgdG1wOwogCXJldHVybiAocnZhbCk7CkBAIC00OTQsMTAgKzU3OCwxMCBAQAogaW50CiBn ZXRlbnZfbG9uZyhjb25zdCBjaGFyICpuYW1lLCBsb25nICpkYXRhKQogewotCXF1YWRfdCB0bXA7 CisJaW50bWF4X3QgdG1wOwogCWludCBydmFsOwogCi0JcnZhbCA9IGdldGVudl9xdWFkKG5hbWUs ICZ0bXApOworCXJ2YWwgPSBnZXRlbnZfc2lnbmVkKG5hbWUsICZ0bXAsIExPTkdfTUlOLCBMT05H X01BWCk7CiAJaWYgKHJ2YWwpCiAJCSpkYXRhID0gKGxvbmcpIHRtcDsKIAlyZXR1cm4gKHJ2YWwp OwpAQCAtNTA5LDUxICs1OTMsOTAgQEAKIGludAogZ2V0ZW52X3Vsb25nKGNvbnN0IGNoYXIgKm5h bWUsIHVuc2lnbmVkIGxvbmcgKmRhdGEpCiB7Ci0JcXVhZF90IHRtcDsKKwlpbnRtYXhfdCB0bXA7 CiAJaW50IHJ2YWw7CiAKLQlydmFsID0gZ2V0ZW52X3F1YWQobmFtZSwgJnRtcCk7CisJcnZhbCA9 IGdldGVudl91bnNpZ25lZChuYW1lLCAmdG1wLCAwLCBVTE9OR19NQVgpOwogCWlmIChydmFsKQog CQkqZGF0YSA9ICh1bnNpZ25lZCBsb25nKSB0bXA7CiAJcmV0dXJuIChydmFsKTsKIH0KIAogLyoK KyAqIFJldHVybiBhIHBvaW50ZXIgZnJvbSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS4KKyAqLwor aW50CitnZXRlbnZfcG9pbnRlcihjb25zdCBjaGFyICpuYW1lLCB1aW50cHRyX3QgKmRhdGEpCit7 CisJaW50bWF4X3QgdG1wOworCWludCBydmFsOworCisJcnZhbCA9IGdldGVudl91bnNpZ25lZChu YW1lLCAmdG1wLCAwLCBVSU5UUFRSX01BWCk7CisJaWYgKHJ2YWwpCisJCSpkYXRhID0gKHVpbnRw dHJfdCkgdG1wOworCXJldHVybiAocnZhbCk7Cit9CisKKy8qCiAgKiBSZXR1cm4gYSBxdWFkX3Qg dmFsdWUgZnJvbSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS4KICAqLwogaW50CiBnZXRlbnZfcXVh ZChjb25zdCBjaGFyICpuYW1lLCBxdWFkX3QgKmRhdGEpCiB7Ci0JY2hhcgkqdmFsdWU7Ci0JY2hh cgkqdnRwOwotCXF1YWRfdAlpdjsKKwlpbnRtYXhfdCB0bXA7CisJaW50IHJ2YWw7CiAKLQl2YWx1 ZSA9IGdldGVudihuYW1lKTsKLQlpZiAodmFsdWUgPT0gTlVMTCkKKwlydmFsID0gZ2V0ZW52X3Np Z25lZChuYW1lLCAmdG1wLCBRVUFEX01JTiwgUVVBRF9NQVgpOworCWlmIChydmFsKQorCQkqZGF0 YSA9IChxdWFkX3QpIHRtcDsKKwlyZXR1cm4gKHJ2YWwpOworfQorCisvKgorICogUmV0dXJuIGEg dXF1YWRfdCB2YWx1ZSBmcm9tIGFuIGVudmlyb25tZW50IHZhcmlhYmxlLgorICovCitpbnQKK2dl dGVudl91cXVhZChjb25zdCBjaGFyICpuYW1lLCB1cXVhZF90ICpkYXRhKQoreworCWludG1heF90 IHRtcDsKKwlpbnQgcnZhbDsKKworCXJ2YWwgPSBnZXRlbnZfdW5zaWduZWQobmFtZSwgJnRtcCwg MCwgVVFVQURfTUFYKTsKKwlpZiAocnZhbCkKKwkJKmRhdGEgPSAodXF1YWRfdCkgdG1wOworCXJl dHVybiAocnZhbCk7Cit9CisKKy8qCisgKiBSZXR1cm4gYSBzaXplX3QgdmFsdWUgZnJvbSBhbiBl bnZpcm9ubWVudCB2YXJpYWJsZS4KKyAqLworaW50CitnZXRlbnZfc2l6ZShjb25zdCBjaGFyICpu YW1lLCBzaXplX3QgKmRhdGEpCit7CisJaW50bWF4X3QgdG1wOworCWludCBydmFsOworCisJcnZh bCA9IGdldGVudl91bnNpZ25lZChuYW1lLCAmdG1wLCAwLCBTSVpFX01BWCk7CisJaWYgKHJ2YWwp CisJCSpkYXRhID0gKHNpemVfdCkgdG1wOworCXJldHVybiAocnZhbCk7Cit9CisKKy8qCisgKiBS ZXR1cm4gYSBzdHJpbmcgdmFsdWUgZnJvbSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS4KKyAqLwor aW50CitnZXRlbnZfc3RyaW5nKGNvbnN0IGNoYXIgKm5hbWUsIGNoYXIgKmRhdGEsIHNpemVfdCBz aXplKQoreworCWNoYXIgKnRtcDsKKworCXRtcCA9IGdldGVudihuYW1lKTsKKwlpZiAodG1wICE9 IE5VTEwpIHsKKwkJc3RybGNweShkYXRhLCB0bXAsIHNpemUpOworCQlmcmVlZW52KHRtcCk7CisJ CXJldHVybiAoMSk7CisJfSBlbHNlCiAJCXJldHVybiAoMCk7Ci0JaXYgPSBzdHJ0b3EodmFsdWUs ICZ2dHAsIDApOwotCWlmICh2dHAgPT0gdmFsdWUgfHwgKHZ0cFswXSAhPSAnXDAnICYmIHZ0cFsx XSAhPSAnXDAnKSkgewotCQlmcmVlZW52KHZhbHVlKTsKLQkJcmV0dXJuICgwKTsKLQl9Ci0Jc3dp dGNoICh2dHBbMF0pIHsKLQljYXNlICd0JzogY2FzZSAnVCc6Ci0JCWl2ICo9IDEwMjQ7Ci0JY2Fz ZSAnZyc6IGNhc2UgJ0cnOgotCQlpdiAqPSAxMDI0OwotCWNhc2UgJ20nOiBjYXNlICdNJzoKLQkJ aXYgKj0gMTAyNDsKLQljYXNlICdrJzogY2FzZSAnSyc6Ci0JCWl2ICo9IDEwMjQ7Ci0JY2FzZSAn XDAnOgotCQlicmVhazsKLQlkZWZhdWx0OgotCQlmcmVlZW52KHZhbHVlKTsKLQkJcmV0dXJuICgw KTsKLQl9Ci0JKmRhdGEgPSBpdjsKLQlmcmVlZW52KHZhbHVlKTsKLQlyZXR1cm4gKDEpOwogfQog CiAvKgpAQCAtNTgzLDYgKzcwNiwxNCBAQAogfQogCiB2b2lkCit0dW5hYmxlX3VpbnRfaW5pdCh2 b2lkICpkYXRhKQoreworCXN0cnVjdCB0dW5hYmxlX3VpbnQgKmQgPSAoc3RydWN0IHR1bmFibGVf dWludCAqKWRhdGE7CisKKwlUVU5BQkxFX1VJTlRfRkVUQ0goZC0+cGF0aCwgZC0+dmFyKTsKK30K Kwordm9pZAogdHVuYWJsZV9sb25nX2luaXQodm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgdHVuYWJs ZV9sb25nICpkID0gKHN0cnVjdCB0dW5hYmxlX2xvbmcgKilkYXRhOwpAQCAtNTk5LDYgKzczMCwx NCBAQAogfQogCiB2b2lkCit0dW5hYmxlX3BvaW50ZXJfaW5pdCh2b2lkICpkYXRhKQoreworCXN0 cnVjdCB0dW5hYmxlX3BvaW50ZXIgKmQgPSAoc3RydWN0IHR1bmFibGVfcG9pbnRlciAqKWRhdGE7 CisKKwlUVU5BQkxFX1BPSU5URVJfRkVUQ0goZC0+cGF0aCwgZC0+dmFyKTsKK30KKwordm9pZAog dHVuYWJsZV9xdWFkX2luaXQodm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgdHVuYWJsZV9xdWFkICpk ID0gKHN0cnVjdCB0dW5hYmxlX3F1YWQgKilkYXRhOwpAQCAtNjA3LDYgKzc0NiwyMiBAQAogfQog CiB2b2lkCit0dW5hYmxlX3VxdWFkX2luaXQodm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgdHVuYWJs ZV91cXVhZCAqZCA9IChzdHJ1Y3QgdHVuYWJsZV91cXVhZCAqKWRhdGE7CisKKwlUVU5BQkxFX1VR VUFEX0ZFVENIKGQtPnBhdGgsIGQtPnZhcik7Cit9CisKK3ZvaWQKK3R1bmFibGVfc2l6ZV9pbml0 KHZvaWQgKmRhdGEpCit7CisJc3RydWN0IHR1bmFibGVfc2l6ZSAqZCA9IChzdHJ1Y3QgdHVuYWJs ZV9zaXplICopZGF0YTsKKworCVRVTkFCTEVfU0laRV9GRVRDSChkLT5wYXRoLCBkLT52YXIpOwor fQorCit2b2lkCiB0dW5hYmxlX3N0cl9pbml0KHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IHR1bmFi bGVfc3RyICpkID0gKHN0cnVjdCB0dW5hYmxlX3N0ciAqKWRhdGE7CkluZGV4OiBzeXMvc3lzL2tl cm5lbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9zeXMva2VybmVsLmgJKHJldmlzaW9uIDIxNDI1OCkK KysrIHN5cy9zeXMva2VybmVsLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3NSw3ICsyNzUsOSBAQAog CiAvKgogICogaW50Ci0gKiBwbGVhc2UgYXZvaWQgdXNpbmcgZm9yIG5ldyB0dW5hYmxlcyEKKyAq CisgKiBQbGVhc2UgZG8gbm90IHVzZSBmb3IgYWRkcmVzc2VzIG9yIHBvaW50ZXJzICh1c2UgdGhl IHBvaW50ZXIgdHVuYWJsZQorICogaW5zdGVhZCksIG9yIHNpemVzICh1c2UgdGhlIHNpemUgdHVu YWJsZSBpbnN0ZWFkKS4KICAqLwogZXh0ZXJuIHZvaWQgdHVuYWJsZV9pbnRfaW5pdCh2b2lkICop Owogc3RydWN0IHR1bmFibGVfaW50IHsKQEAgLTI5NCw2ICsyOTYsMjggQEAKICNkZWZpbmUJVFVO QUJMRV9JTlRfRkVUQ0gocGF0aCwgdmFyKQlnZXRlbnZfaW50KChwYXRoKSwgKHZhcikpCiAKIC8q CisgKiB1bnNpZ25lZCBpbnQKKyAqCisgKiBQbGVhc2UgZG8gbm90IHVzZSBmb3IgYWRkcmVzc2Vz IG9yIHBvaW50ZXJzICh1c2UgdGhlIHBvaW50ZXIgdHVuYWJsZQorICogaW5zdGVhZCksIG9yIHNp emVzICh1c2UgdGhlIHNpemUgdHVuYWJsZSBpbnN0ZWFkKS4KKyAqLworZXh0ZXJuIHZvaWQgdHVu YWJsZV91aW50X2luaXQodm9pZCAqKTsKK3N0cnVjdCB0dW5hYmxlX3VpbnQgeworCWNvbnN0IGNo YXIgKnBhdGg7CisJdW5zaWduZWQgaW50ICp2YXI7Cit9OworI2RlZmluZQlUVU5BQkxFX1VJTlQo cGF0aCwgdmFyKQkJCQkJXAorCXN0YXRpYyBzdHJ1Y3QgdHVuYWJsZV91aW50IF9fQ09OQ0FUKF9f dHVuYWJsZV91aW50XywgX19MSU5FX18pID0geyBcCisJCShwYXRoKSwJCQkJCQlcCisJCSh2YXIp LAkJCQkJCVwKKwl9OwkJCQkJCQlcCisJU1lTSU5JVChfX0NPTkNBVChfX1R1bmFibGVfaW5pdF8s IF9fTElORV9fKSwJCVwKKwkgICAgU0lfU1VCX1RVTkFCTEVTLCBTSV9PUkRFUl9NSURETEUsIHR1 bmFibGVfdWludF9pbml0LCBcCisJICAgICZfX0NPTkNBVChfX3R1bmFibGVfdWludF8sIF9fTElO RV9fKSkKKworI2RlZmluZQlUVU5BQkxFX1VJTlRfRkVUQ0gocGF0aCwgdmFyKQlnZXRlbnZfdWlu dCgocGF0aCksICh2YXIpKQorCisvKgogICogbG9uZwogICovCiBleHRlcm4gdm9pZCB0dW5hYmxl X2xvbmdfaW5pdCh2b2lkICopOwpAQCAtMzMyLDggKzM1NiwyOCBAQAogI2RlZmluZQlUVU5BQkxF X1VMT05HX0ZFVENIKHBhdGgsIHZhcikJZ2V0ZW52X3Vsb25nKChwYXRoKSwgKHZhcikpCiAKIC8q Ci0gKiBxdWFkCisgKiBwb2ludGVyCiAgKi8KK2V4dGVybiB2b2lkIHR1bmFibGVfcG9pbnRlcl9p bml0KHZvaWQgKik7CitzdHJ1Y3QgdHVuYWJsZV9wb2ludGVyIHsKKwljb25zdCBjaGFyICpwYXRo OworCXVpbnRwdHJfdCAqdmFyOworfTsKKyNkZWZpbmUJVFVOQUJMRV9QT0lOVEVSKHBhdGgsIHZh cikJCQkJXAorCXN0YXRpYyBzdHJ1Y3QgdHVuYWJsZV9wb2ludGVyIF9fQ09OQ0FUKF9fdHVuYWJs ZV9wb2ludGVyXywgX19MSU5FX18pID0geyBcCisJCShwYXRoKSwJCQkJCQlcCisJCSh2YXIpLAkJ CQkJCVwKKwl9OwkJCQkJCQlcCisJU1lTSU5JVChfX0NPTkNBVChfX1R1bmFibGVfaW5pdF8sIF9f TElORV9fKSwJCVwKKwkgICAgU0lfU1VCX1RVTkFCTEVTLCBTSV9PUkRFUl9NSURETEUsIHR1bmFi bGVfcG9pbnRlcl9pbml0LCBcCisJICAgICZfX0NPTkNBVChfX3R1bmFibGVfcG9pbnRlcl8sIF9f TElORV9fKSkKKworI2RlZmluZQlUVU5BQkxFX1BPSU5URVJfRkVUQ0gocGF0aCwgdmFyKQkJCVwK KwlnZXRlbnZfcG9pbnRlcigocGF0aCksICh2YXIpKQorCisvKgorICogcXVhZF90CisgKi8KIGV4 dGVybiB2b2lkIHR1bmFibGVfcXVhZF9pbml0KHZvaWQgKik7CiBzdHJ1Y3QgdHVuYWJsZV9xdWFk IHsKIAljb25zdCBjaGFyICpwYXRoOwpAQCAtMzUwLDYgKzM5NCwyOCBAQAogCiAjZGVmaW5lCVRV TkFCTEVfUVVBRF9GRVRDSChwYXRoLCB2YXIpCWdldGVudl9xdWFkKChwYXRoKSwgKHZhcikpCiAK Ky8qCisgKiBzaXplX3QKKyAqLworZXh0ZXJuIHZvaWQgdHVuYWJsZV9zaXplX2luaXQodm9pZCAq KTsKK3N0cnVjdCB0dW5hYmxlX3NpemUgeworCWNvbnN0IGNoYXIgKnBhdGg7CisJc2l6ZV90ICp2 YXI7Cit9OworI2RlZmluZQlUVU5BQkxFX1NJWkUocGF0aCwgdmFyKQkJCQkJXAorCXN0YXRpYyBz dHJ1Y3QgdHVuYWJsZV9zaXplIF9fQ09OQ0FUKF9fdHVuYWJsZV9zaXplXywgX19MSU5FX18pID0g eyBcCisJCShwYXRoKSwJCQkJCQlcCisJCSh2YXIpLAkJCQkJCVwKKwl9OwkJCQkJCQlcCisJU1lT SU5JVChfX0NPTkNBVChfX1R1bmFibGVfaW5pdF8sIF9fTElORV9fKSwJCVwKKwkgICAgU0lfU1VC X1RVTkFCTEVTLCBTSV9PUkRFUl9NSURETEUsIHR1bmFibGVfc2l6ZV9pbml0LCBcCisJICAgICZf X0NPTkNBVChfX3R1bmFibGVfc2l6ZV8sIF9fTElORV9fKSkKKworI2RlZmluZQlUVU5BQkxFX1NJ WkVfRkVUQ0gocGF0aCwgdmFyKQlnZXRlbnZfc2l6ZSgocGF0aCksICh2YXIpKQorCisvKgorICog c3RyaW5ncworICovCiBleHRlcm4gdm9pZCB0dW5hYmxlX3N0cl9pbml0KHZvaWQgKik7CiBzdHJ1 Y3QgdHVuYWJsZV9zdHIgewogCWNvbnN0IGNoYXIgKnBhdGg7CkBAIC0zNjksNiArNDM1LDI1IEBA CiAjZGVmaW5lCVRVTkFCTEVfU1RSX0ZFVENIKHBhdGgsIHZhciwgc2l6ZSkJCQlcCiAJZ2V0ZW52 X3N0cmluZygocGF0aCksICh2YXIpLCAoc2l6ZSkpCiAKKy8qCisgKiB1cXVhZF90CisgKi8KK2V4 dGVybiB2b2lkIHR1bmFibGVfdXF1YWRfaW5pdCh2b2lkICopOworc3RydWN0IHR1bmFibGVfdXF1 YWQgeworCWNvbnN0IGNoYXIgKnBhdGg7CisJdXF1YWRfdCAqdmFyOworfTsKKyNkZWZpbmUJVFVO QUJMRV9VUVVBRChwYXRoLCB2YXIpCQkJCQlcCisJc3RhdGljIHN0cnVjdCB0dW5hYmxlX3VxdWFk IF9fQ09OQ0FUKF9fdHVuYWJsZV91cXVhZF8sIF9fTElORV9fKSA9IHsgXAorCQkocGF0aCksCQkJ CQkJXAorCQkodmFyKSwJCQkJCQlcCisJfTsJCQkJCQkJXAorCVNZU0lOSVQoX19DT05DQVQoX19U dW5hYmxlX2luaXRfLCBfX0xJTkVfXyksCQlcCisJICAgIFNJX1NVQl9UVU5BQkxFUywgU0lfT1JE RVJfTUlERExFLCB0dW5hYmxlX3VxdWFkX2luaXQsIFwKKwkgICAgJl9fQ09OQ0FUKF9fdHVuYWJs ZV91cXVhZF8sIF9fTElORV9fKSkKKworI2RlZmluZQlUVU5BQkxFX1VRVUFEX0ZFVENIKHBhdGgs IHZhcikJZ2V0ZW52X3VxdWFkKChwYXRoKSwgKHZhcikpCisKIHN0cnVjdCBpbnRyX2NvbmZpZ19o b29rIHsKIAlUQUlMUV9FTlRSWShpbnRyX2NvbmZpZ19ob29rKSBpY2hfbGlua3M7CiAJdm9pZAko KmljaF9mdW5jKSh2b2lkICphcmcpOwpJbmRleDogc3lzL3N5cy9wYXJhbS5oCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIHN5cy9zeXMvcGFyYW0uaAkocmV2aXNpb24gMjE0MjU4KQorKysgc3lzL3N5cy9wYXJhbS5o CSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBACiAgKgkJaW4gdGhlIHJhbmdlIDUgdG8g OS4KICAqLwogI3VuZGVmIF9fRnJlZUJTRF92ZXJzaW9uCi0jZGVmaW5lIF9fRnJlZUJTRF92ZXJz aW9uIDkwMDAyMwkvKiBNYXN0ZXIsIHByb3BhZ2F0ZWQgdG8gbmV3dmVycyAqLworI2RlZmluZSBf X0ZyZWVCU0RfdmVyc2lvbiA5MDAwMjQJLyogTWFzdGVyLCBwcm9wYWdhdGVkIHRvIG5ld3ZlcnMg Ki8KIAogI2lmbmRlZiBMT0NPUkUKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KSW5kZXg6IHN5cy9z eXMvc3lzdG0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvc3lzL3N5c3RtLmgJKHJldmlzaW9uIDIxNDI1 OCkKKysrIHN5cy9zeXMvc3lzdG0uaAkod29ya2luZyBjb3B5KQpAQCAtMjYwLDEyICsyNjAsMjAg QEAKIAogY2hhcgkqZ2V0ZW52KGNvbnN0IGNoYXIgKm5hbWUpOwogdm9pZAlmcmVlZW52KGNoYXIg KmVudik7Cit1aW50bWF4X3QgZ2V0ZW52X3BhcnNlX3N1ZmZpeChjb25zdCBjaGFyIHN1ZmZpeCk7 CitpbnQJZ2V0ZW52X3NpZ25lZChjb25zdCBjaGFyICpuYW1lLCBpbnRtYXhfdCAqZGF0YSwgY29u c3QgaW50bWF4X3QgbWluLAorCSAgICBjb25zdCBpbnRtYXhfdCBtYXgpOworaW50CWdldGVudl91 bnNpZ25lZChjb25zdCBjaGFyICpuYW1lLCB1aW50bWF4X3QgKmRhdGEsCisJICAgIGNvbnN0IHVp bnRtYXhfdCBtaW4sIGNvbnN0IHVpbnRtYXhfdCBtYXgpOwogaW50CWdldGVudl9pbnQoY29uc3Qg Y2hhciAqbmFtZSwgaW50ICpkYXRhKTsKIGludAlnZXRlbnZfdWludChjb25zdCBjaGFyICpuYW1l LCB1bnNpZ25lZCBpbnQgKmRhdGEpOwogaW50CWdldGVudl9sb25nKGNvbnN0IGNoYXIgKm5hbWUs IGxvbmcgKmRhdGEpOwogaW50CWdldGVudl91bG9uZyhjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25l ZCBsb25nICpkYXRhKTsKLWludAlnZXRlbnZfc3RyaW5nKGNvbnN0IGNoYXIgKm5hbWUsIGNoYXIg KmRhdGEsIGludCBzaXplKTsKK2ludAlnZXRlbnZfcG9pbnRlcihjb25zdCBjaGFyICpuYW1lLCB1 aW50cHRyX3QgKmRhdGEpOwogaW50CWdldGVudl9xdWFkKGNvbnN0IGNoYXIgKm5hbWUsIHF1YWRf dCAqZGF0YSk7CitpbnQJZ2V0ZW52X3VxdWFkKGNvbnN0IGNoYXIgKm5hbWUsIHVxdWFkX3QgKmRh dGEpOworaW50CWdldGVudl9zaXplKGNvbnN0IGNoYXIgKm5hbWUsIHNpemVfdCAqZGF0YSk7Citp bnQJZ2V0ZW52X3N0cmluZyhjb25zdCBjaGFyICpuYW1lLCBjaGFyICpkYXRhLCBzaXplX3Qgc2l6 ZSk7CiBpbnQJc2V0ZW52KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKTsKIGlu dAl1bnNldGVudihjb25zdCBjaGFyICpuYW1lKTsKIGludAl0ZXN0ZW52KGNvbnN0IGNoYXIgKm5h bWUpOwpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy91cXVhZC90ZXN0X3VxdWFkX3R1 bmFibGUuc2gKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0gdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy91cXVhZC90 ZXN0X3VxdWFkX3R1bmFibGUuc2gJKHJldmlzaW9uIDApCisrKyB0b29scy9yZWdyZXNzaW9uL3R1 bmFibGVzL3VxdWFkL3Rlc3RfdXF1YWRfdHVuYWJsZS5zaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr MSwzOCBAQAorIyEvYmluL3NoCisjCisjIEV4cGVjdGVkIHZhbHVlczoKKyMgKHVuc2V0KSAgICA6 ICAgICAgICAgICAwCisjICAgICAgLTEgICAgOiAgIFVMT05HX01BWAorIyAgICAgICAwICAgIDog ICAgICAgICAgIDAKKyMgICAgICA0MiAgICA6ICAgICAgICAgIDQyCisjIGFzZGYxMjM0ICAgOiAg ICAgICAgICAgMCAocmVqZWN0KQorIyBMT05HX01BWCsxIDogIExPTkdfTUFYKzEKKyMgVUxPTkdf TUFYLTE6IFVMT05HX01BWC0xCisjIFVMT05HX01BWCsxOiAgIFVMT05HX01BWAorIworCitNT0RO QU1FPSIkKGJhc2VuYW1lICIkMCIgLnNoKSIKKwordGVzdF9tb2R1bGUoKSB7CisJa2xkbG9hZCAu LyRNT0ROQU1FLmtvCisJa2xkdW5sb2FkIC4vJE1PRE5BTUUua28KK30KKworY2FzZSAiJCgkKGRp cm5hbWUgIiQwIikvLi4vdG9vbHMvZ2V0d29yZHNpemUpIiBpbgorMzIpCisJTE9OR19NQVhfUExV U18xPTIxNDc0ODM2NDkKKwlVTE9OR19NQVhfTUlOVVNfMT00Mjk0OTY3Mjk1CisJVUxPTkdfTUFY X1BMVVNfMT00Mjk0OTY3Mjk3CisJOzsKKzY0KQorCUxPTkdfTUFYX1BMVVNfMT05MjIzMzcyMDM2 ODU0Nzc1ODA4CisJVUxPTkdfTUFYX01JTlVTXzE9MTg0NDY3NDQwNzM3MDk1NTE2MTQKKwlVTE9O R19NQVhfUExVU18xPTE4NDQ2NzQ0MDczNzA5NTUxNjE2CisJOzsKK2VzYWMKK2tlbnYgLXUgJE1P RE5BTUUudHVuYWJsZSAyPi9kZXYvbnVsbAordGVzdF9tb2R1bGUKK2ZvciBpIGluIC0xIDAgNDIg YXNkZjEyMzQgJExPTkdfTUFYX1BMVVNfMSAkVUxPTkdfTUFYX01JTlVTXzEgJFVMT05HX01BWF9Q TFVTXzE7IGRvCisJa2VudiAkTU9ETkFNRS50dW5hYmxlPSIkaSIKKwl0ZXN0X21vZHVsZQorZG9u ZQpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy91cXVhZC90ZXN0X3VxdWFkX3R1bmFi bGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3VxdWFkL3Rlc3Rf dXF1YWRfdHVuYWJsZS5jCShyZXZpc2lvbiAwKQorKysgdG9vbHMvcmVncmVzc2lvbi90dW5hYmxl cy91cXVhZC90ZXN0X3VxdWFkX3R1bmFibGUuYwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMSBA QAorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1 ZGUgPHN5cy9wcm9jLmg+CisjaW5jbHVkZSA8c3lzL21vZHVsZS5oPgorI2luY2x1ZGUgPHN5cy9r ZXJuZWwuaD4KKyNpbmNsdWRlIDxzeXMvc3lzdG0uaD4KKworI2RlZmluZSBNT0RVTEVfTkFNRQki dGVzdF91cXVhZF90dW5hYmxlIgorCitzdGF0aWMgdXF1YWRfdCB0dW5hYmxlID0gMDsKKworVFVO QUJMRV9VUVVBRCgidGVzdF91cXVhZF90dW5hYmxlLnR1bmFibGUiLCAmdHVuYWJsZSk7CisKK3N0 YXRpYyBpbnQKK2xvYWQgKG1vZHVsZV90IG0sIGludCB3aGF0LCB2b2lkICphcmcpCit7CisJc3dp dGNoICh3aGF0KSB7CisJY2FzZSBNT0RfTE9BRDoKKwkJcHJpbnRmKCIlczogJWx1XG4iLCBNT0RV TEVfTkFNRSwgdHVuYWJsZSk7CisJCWJyZWFrOworCX0KKwlyZXR1cm4gKDApOworfQorCitzdGF0 aWMgbW9kdWxlZGF0YV90IHRlc3RfdXF1YWRfdHVuYWJsZV9tb2QgPSB7CisJTU9EVUxFX05BTUUs CisJbG9hZCwKK307CitERUNMQVJFX01PRFVMRSh0ZXN0X3VxdWFkX3R1bmFibGUsIHRlc3RfdXF1 YWRfdHVuYWJsZV9tb2QsIFNJX1NVQl9LTEQsCisgICAgU0lfT1JERVJfQU5ZKTsKK01PRFVMRV9W RVJTSU9OKHRlc3RfdXF1YWRfdHVuYWJsZSwgMSk7CkluZGV4OiB0b29scy9yZWdyZXNzaW9uL3R1 bmFibGVzL3VxdWFkL01ha2VmaWxlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRvb2xzL3JlZ3Jlc3Npb24vdHVu YWJsZXMvdXF1YWQvTWFrZWZpbGUJKHJldmlzaW9uIDApCisrKyB0b29scy9yZWdyZXNzaW9uL3R1 bmFibGVzL3VxdWFkL01ha2VmaWxlCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQgQEAKK0tNT0Q9 CXRlc3RfdXF1YWRfdHVuYWJsZQorU1JDUz0JdGVzdF91cXVhZF90dW5hYmxlLmMKKworLmluY2x1 ZGUgPGJzZC5rbW9kLm1rPgpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy91aW50L3Rl c3RfdWludF90dW5hYmxlLnNoCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJs ZXMvdWludC90ZXN0X3VpbnRfdHVuYWJsZS5zaAkocmV2aXNpb24gMCkKKysrIHRvb2xzL3JlZ3Jl c3Npb24vdHVuYWJsZXMvdWludC90ZXN0X3VpbnRfdHVuYWJsZS5zaAkocmV2aXNpb24gMCkKQEAg LTAsMCArMSwyOSBAQAorIyEvYmluL3NoCisjCisjIEV4cGVjdGVkIHZhbHVlczoKKyMgKHVuc2V0 KSAgIDogICAgICAgICAgMAorIyAgICAgIC0xICAgOiAgICAgICAgICAwIChyZWplY3QpIAorIyAg ICAgICAwICAgOiAgICAgICAgICAwCisjICAgICAgNDIgICA6ICAgICAgICAgNDIKKyMgYXNkZjEy MzQgIDogICAgICAgICAgMCAocmVqZWN0KQorIyBJTlRfTUFYKzEgOiAgSU5UX01BWCsxCisjIFVJ TlRfTUFYLTE6IFVJTlRfTUFYLTEKKyMgVUlOVF9NQVgrMTogICAgICAgICAgMCAocmVqZWN0KQor IworCitNT0ROQU1FPSIkKGJhc2VuYW1lICIkMCIgLnNoKSIKKwordGVzdF9tb2R1bGUoKSB7CisJ a2xkbG9hZCAuLyRNT0ROQU1FLmtvCisJa2xkdW5sb2FkIC4vJE1PRE5BTUUua28KK30KKworSU5U X01BWF9QTFVTX09ORT0yMTQ3NDgzNjQ4CitVSU5UX01BWF9NSU5VU19PTkU9NDI5NDk2NzI5NAor VUlOVF9NQVhfUExVU19PTkU9NDI5NDk2NzI5Ngora2VudiAtdSAkTU9ETkFNRS50dW5hYmxlIDI+ L2Rldi9udWxsCit0ZXN0X21vZHVsZQorZm9yIGkgaW4gLTEgMCA0MiBhc2RmMTIzNCAkSU5UX01B WF9QTFVTX09ORSAkVUlOVF9NQVhfTUlOVVNfT05FICRVSU5UX01BWF9QTFVTX09ORTsgZG8KKwlr ZW52ICRNT0ROQU1FLnR1bmFibGU9IiRpIgorCXRlc3RfbW9kdWxlCitkb25lCkluZGV4OiB0b29s cy9yZWdyZXNzaW9uL3R1bmFibGVzL3VpbnQvdGVzdF91aW50X3R1bmFibGUuYwo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3VpbnQvdGVzdF91aW50X3R1bmFibGUuYwko cmV2aXNpb24gMCkKKysrIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvdWludC90ZXN0X3VpbnRf dHVuYWJsZS5jCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMxIEBACisjaW5jbHVkZSA8c3lzL3Bh cmFtLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3Byb2MuaD4KKyNp bmNsdWRlIDxzeXMvbW9kdWxlLmg+CisjaW5jbHVkZSA8c3lzL2tlcm5lbC5oPgorI2luY2x1ZGUg PHN5cy9zeXN0bS5oPgorCisjZGVmaW5lIE1PRFVMRV9OQU1FCSJ0ZXN0X3VpbnRfdHVuYWJsZSIK Kworc3RhdGljIHVuc2lnbmVkIGludCB0dW5hYmxlID0gMDsKKworVFVOQUJMRV9VSU5UKCJ0ZXN0 X3VpbnRfdHVuYWJsZS50dW5hYmxlIiwgJnR1bmFibGUpOworCitzdGF0aWMgaW50Citsb2FkICht b2R1bGVfdCBtLCBpbnQgd2hhdCwgdm9pZCAqYXJnKQoreworCXN3aXRjaCAod2hhdCkgeworCWNh c2UgTU9EX0xPQUQ6CisJCXByaW50ZigiJXM6ICV1XG4iLCBNT0RVTEVfTkFNRSwgdHVuYWJsZSk7 CisJCWJyZWFrOworCX0KKwlyZXR1cm4gKDApOworfQorCitzdGF0aWMgbW9kdWxlZGF0YV90IHRl c3RfdWludF90dW5hYmxlX21vZCA9IHsKKwlNT0RVTEVfTkFNRSwKKwlsb2FkLAorfTsKK0RFQ0xB UkVfTU9EVUxFKHRlc3RfdWludF90dW5hYmxlLCB0ZXN0X3VpbnRfdHVuYWJsZV9tb2QsIFNJX1NV Ql9LTEQsCisgICAgU0lfT1JERVJfQU5ZKTsKK01PRFVMRV9WRVJTSU9OKHRlc3RfdWludF90dW5h YmxlLCAxKTsKSW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvdWludC9NYWtlZmlsZQo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3VpbnQvTWFrZWZpbGUJKHJl dmlzaW9uIDApCisrKyB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3VpbnQvTWFrZWZpbGUJKHJl dmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorS01PRD0JdGVzdF91aW50X3R1bmFibGUKK1NSQ1M9 CXRlc3RfdWludF90dW5hYmxlLmMKKworLmluY2x1ZGUgPGJzZC5rbW9kLm1rPgpJbmRleDogdG9v bHMvcmVncmVzc2lvbi90dW5hYmxlcy90b29scy9nZXR3b3Jkc2l6ZS5jCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvdG9vbHMvZ2V0d29yZHNpemUuYwkocmV2aXNpb24g MCkKKysrIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvdG9vbHMvZ2V0d29yZHNpemUuYwkocmV2 aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACisjaW5jbHVkZSA8c3lzL2VsZi5oPgorI2luY2x1ZGUg PHN0ZGlvLmg+CisKK2ludAorbWFpbih2b2lkKQoreworCXByaW50ZigiJWRcbiIsIF9fRUxGX1dP UkRfU0laRSk7CisJcmV0dXJuICgwKTsKK30KSW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJs ZXMvdG9vbHMvTWFrZWZpbGUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdG9vbHMvcmVncmVzc2lvbi90dW5hYmxl cy90b29scy9NYWtlZmlsZQkocmV2aXNpb24gMCkKKysrIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJs ZXMvdG9vbHMvTWFrZWZpbGUJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNyBAQAorUFJPRz0JCWdl dHdvcmRzaXplCisKK1NSQ1M9CQlnZXR3b3Jkc2l6ZS5jCisKK05PX01BTj0JCTEKKworLmluY2x1 ZGUgPGJzZC5wcm9nLm1rPgpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy91bG9uZy90 ZXN0X3Vsb25nX3R1bmFibGUuc2gKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdG9vbHMvcmVncmVzc2lvbi90dW5h Ymxlcy91bG9uZy90ZXN0X3Vsb25nX3R1bmFibGUuc2gJKHJldmlzaW9uIDApCisrKyB0b29scy9y ZWdyZXNzaW9uL3R1bmFibGVzL3Vsb25nL3Rlc3RfdWxvbmdfdHVuYWJsZS5zaAkocmV2aXNpb24g MCkKQEAgLTAsMCArMSwzOCBAQAorIyEvYmluL3NoCisjCisjIEV4cGVjdGVkIHZhbHVlczoKKyMg KHVuc2V0KSAgICA6ICAgICAgICAgICAwCisjICAgICAgLTEgICAgOiAgIFVMT05HX01BWAorIyAg ICAgICAwICAgIDogICAgICAgICAgIDAKKyMgICAgICA0MiAgICA6ICAgICAgICAgIDQyCisjIGFz ZGYxMjM0ICAgOiAgICAgICAgICAgMCAocmVqZWN0KQorIyBMT05HX01BWCsxIDogIExPTkdfTUFY KzEKKyMgVUxPTkdfTUFYLTE6IFVMT05HX01BWC0xCisjIFVMT05HX01BWCsxOiAgIFVMT05HX01B WAorIworCitNT0ROQU1FPSIkKGJhc2VuYW1lICIkMCIgLnNoKSIKKwordGVzdF9tb2R1bGUoKSB7 CisJa2xkbG9hZCAuLyRNT0ROQU1FLmtvCisJa2xkdW5sb2FkIC4vJE1PRE5BTUUua28KK30KKwor Y2FzZSAiJCgkKGRpcm5hbWUgIiQwIikvLi4vdG9vbHMvZ2V0d29yZHNpemUpIiBpbgorMzIpCisJ TE9OR19NQVhfUExVU18xPTIxNDc0ODM2NDkKKwlVTE9OR19NQVhfTUlOVVNfMT00Mjk0OTY3Mjk1 CisJVUxPTkdfTUFYX1BMVVNfMT00Mjk0OTY3Mjk3CisJOzsKKzY0KQorCUxPTkdfTUFYX1BMVVNf MT05MjIzMzcyMDM2ODU0Nzc1ODA4CisJVUxPTkdfTUFYX01JTlVTXzE9MTg0NDY3NDQwNzM3MDk1 NTE2MTQKKwlVTE9OR19NQVhfUExVU18xPTE4NDQ2NzQ0MDczNzA5NTUxNjE2CisJOzsKK2VzYWMK K2tlbnYgLXUgJE1PRE5BTUUudHVuYWJsZSAyPi9kZXYvbnVsbAordGVzdF9tb2R1bGUKK2ZvciBp IGluIC0xIDAgNDIgYXNkZjEyMzQgJExPTkdfTUFYX1BMVVNfMSAkVUxPTkdfTUFYX01JTlVTXzEg JFVMT05HX01BWF9QTFVTXzE7IGRvCisJa2VudiAkTU9ETkFNRS50dW5hYmxlPSIkaSIKKwl0ZXN0 X21vZHVsZQorZG9uZQpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy91bG9uZy9NYWtl ZmlsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3Vsb25nL01ha2Vm aWxlCShyZXZpc2lvbiAwKQorKysgdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy91bG9uZy9NYWtl ZmlsZQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0IEBACitLTU9EPQl0ZXN0X3Vsb25nX3R1bmFi bGUKK1NSQ1M9CXRlc3RfdWxvbmdfdHVuYWJsZS5jCisKKy5pbmNsdWRlIDxic2Qua21vZC5taz4K SW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvdWxvbmcvdGVzdF91bG9uZ190dW5hYmxl LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy91bG9uZy90ZXN0X3Vs b25nX3R1bmFibGUuYwkocmV2aXNpb24gMCkKKysrIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMv dWxvbmcvdGVzdF91bG9uZ190dW5hYmxlLmMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzEgQEAK KyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRl IDxzeXMvcHJvYy5oPgorI2luY2x1ZGUgPHN5cy9tb2R1bGUuaD4KKyNpbmNsdWRlIDxzeXMva2Vy bmVsLmg+CisjaW5jbHVkZSA8c3lzL3N5c3RtLmg+CisKKyNkZWZpbmUgTU9EVUxFX05BTUUJInRl c3RfdWxvbmdfdHVuYWJsZSIKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgdHVuYWJsZSA9IDA7CisK K1RVTkFCTEVfVUxPTkcoInRlc3RfdWxvbmdfdHVuYWJsZS50dW5hYmxlIiwgJnR1bmFibGUpOwor CitzdGF0aWMgaW50Citsb2FkIChtb2R1bGVfdCBtLCBpbnQgd2hhdCwgdm9pZCAqYXJnKQorewor CXN3aXRjaCAod2hhdCkgeworCWNhc2UgTU9EX0xPQUQ6CisJCXByaW50ZigiJXM6ICVsdVxuIiwg TU9EVUxFX05BTUUsIHR1bmFibGUpOworCQlicmVhazsKKwl9CisJcmV0dXJuICgwKTsKK30KKwor c3RhdGljIG1vZHVsZWRhdGFfdCB0ZXN0X3Vsb25nX3R1bmFibGVfbW9kID0geworCU1PRFVMRV9O QU1FLAorCWxvYWQsCit9OworREVDTEFSRV9NT0RVTEUodGVzdF91bG9uZ190dW5hYmxlLCB0ZXN0 X3Vsb25nX3R1bmFibGVfbW9kLCBTSV9TVUJfS0xELAorICAgIFNJX09SREVSX0FOWSk7CitNT0RV TEVfVkVSU0lPTih0ZXN0X3Vsb25nX3R1bmFibGUsIDEpOwpJbmRleDogdG9vbHMvcmVncmVzc2lv bi90dW5hYmxlcy9zdWZmaXgvdGVzdF90dW5hYmxlX3N1ZmZpeGVzLmMKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g dG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9zdWZmaXgvdGVzdF90dW5hYmxlX3N1ZmZpeGVzLmMJ KHJldmlzaW9uIDApCisrKyB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3N1ZmZpeC90ZXN0X3R1 bmFibGVfc3VmZml4ZXMuYwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMSBAQAorI2luY2x1ZGUg PHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9wcm9j Lmg+CisjaW5jbHVkZSA8c3lzL21vZHVsZS5oPgorI2luY2x1ZGUgPHN5cy9rZXJuZWwuaD4KKyNp bmNsdWRlIDxzeXMvc3lzdG0uaD4KKworI2RlZmluZSBNT0RVTEVfTkFNRQkidGVzdF90dW5hYmxl X3N1ZmZpeGVzIgorCitzdGF0aWMgbG9uZyB0dW5hYmxlID0gMDsKKworVFVOQUJMRV9MT05HKCJ0 ZXN0X3R1bmFibGVfc3VmZml4ZXMudHVuYWJsZSIsICZ0dW5hYmxlKTsKKworc3RhdGljIGludAor bG9hZCAoc3RydWN0IG1vZHVsZSAqbSwgaW50IHdoYXQsIHZvaWQgKmFyZykKK3sKKwlzd2l0Y2gg KHdoYXQpIHsKKwljYXNlIE1PRF9MT0FEOgorCQlwcmludGYoIiVzOiAlbGRcbiIsIE1PRFVMRV9O QU1FLCB0dW5hYmxlKTsKKwkJYnJlYWs7CisJfQorCXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBt b2R1bGVkYXRhX3QgdGVzdF90dW5hYmxlX3N1ZmZpeGVzX21vZCA9IHsKKwlNT0RVTEVfTkFNRSwK Kwlsb2FkLAorfTsKK0RFQ0xBUkVfTU9EVUxFKHRlc3RfdHVuYWJsZV9zdWZmaXhlcywgdGVzdF90 dW5hYmxlX3N1ZmZpeGVzX21vZCwgU0lfU1VCX0tMRCwKKyAgICBTSV9PUkRFUl9BTlkpOworTU9E VUxFX1ZFUlNJT04odGVzdF90dW5hYmxlX3N1ZmZpeGVzLCAxKTsKSW5kZXg6IHRvb2xzL3JlZ3Jl c3Npb24vdHVuYWJsZXMvc3VmZml4L01ha2VmaWxlCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRvb2xzL3JlZ3Jl c3Npb24vdHVuYWJsZXMvc3VmZml4L01ha2VmaWxlCShyZXZpc2lvbiAwKQorKysgdG9vbHMvcmVn cmVzc2lvbi90dW5hYmxlcy9zdWZmaXgvTWFrZWZpbGUJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs NCBAQAorS01PRD0JdGVzdF90dW5hYmxlX3N1ZmZpeGVzCitTUkNTPQl0ZXN0X3R1bmFibGVfc3Vm Zml4ZXMuYworCisuaW5jbHVkZSA8YnNkLmttb2QubWs+CkluZGV4OiB0b29scy9yZWdyZXNzaW9u L3R1bmFibGVzL3N1ZmZpeC90ZXN0X3R1bmFibGVfc3VmZml4ZXMuc2gKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g dG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9zdWZmaXgvdGVzdF90dW5hYmxlX3N1ZmZpeGVzLnNo CShyZXZpc2lvbiAwKQorKysgdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9zdWZmaXgvdGVzdF90 dW5hYmxlX3N1ZmZpeGVzLnNoCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQxIEBACisjIS9iaW4v c2gKKyMKKyMgRXhwZWN0ZWQgdmFsdWVzOgorIyAodW5zZXQpICAgOiAgICAgICAgICAgMAorIyAg ICAgICAgIC0xOiAgICAgICAgICAtMQorIyAgICAgICAgLTFnOiAgICAgLTEwMjReMworIyAgICAg ICAgLTFHOiAgICAgLTEwMjReMyAoc2FtZSBhcyAxZykgCisjICAgICAgICAtMWs6ICAgICAgIC0x MDI0CisjICAgICAgICAtMUs6ICAgICAgIC0xMDI0IChzYW1lIGFzIDFLKQorIyAgICAgICAgLTFt OiAgICAgLTEwMjReMgorIyAgICAgICAgLTFNOiAgICAgLTEwMjReMiAoc2FtZSBhcyAxbSkKKyMg ICAgICAgIC0xdDogICAgIC0xMDI0XjQKKyMgICAgICAgIC0xVDogICAgIC0xMDI0XjQgKHNhbWUg YXMgMXQpCisjICAgICAgICAtMXo6ICAgICAgICAgICAwIChyZWplY3QpCisjICAgICAgICAgIDE6 ICAgICAgICAgICAxCisjICAgICAgICAgMWc6ICAgICAgMTAyNF4zCisjICAgICAgICAgMUc6ICAg ICAgMTAyNF4zIChzYW1lIGFzIDFnKSAKKyMgICAgICAgICAxazogICAgICAgIDEwMjQKKyMgICAg ICAgICAxSzogICAgICAgIDEwMjQgKHNhbWUgYXMgMUspCisjICAgICAgICAgMW06ICAgICAgMTAy NF4yCisjICAgICAgICAgMU06ICAgICAgMTAyNF4yIChzYW1lIGFzIDFtKQorIyAgICAgICAgIDF0 OiAgICAgIDEwMjReNAorIyAgICAgICAgIDFUOiAgICAgIDEwMjReNCAoc2FtZSBhcyAxdCkKKyMg ICAgICAgICAxejogICAgICAgICAgIDAgKHJlamVjdCkKKyMgICAgICAgICAxVDogICAgICAgICAg IDAgKHJlamVjdCkKKworTU9ETkFNRT0iJChiYXNlbmFtZSAiJDAiIC5zaCkiCisKK3Rlc3RfbW9k dWxlKCkgeworCWtsZGxvYWQgLi8kTU9ETkFNRS5rbworCWtsZHVubG9hZCAuLyRNT0ROQU1FLmtv Cit9CisKK2tlbnYgLXUgJE1PRE5BTUUudHVuYWJsZSAyPi9kZXYvbnVsbAordGVzdF9tb2R1bGUK K2ZvciBpIGluIC0xIDAgMTsgZG8KKwlmb3IgaiBpbiAnJyBnIEcgayBLIG0gTSB0IFQgeiBaOyBk bworCQlrZW52ICRNT0ROQU1FLnR1bmFibGU9IiRpJGoiCisJCXRlc3RfbW9kdWxlCisJZG9uZQor ZG9uZQpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9zdHJpbmcvdGVzdF9zdHJpbmdf dHVuYWJsZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc3RyaW5n L3Rlc3Rfc3RyaW5nX3R1bmFibGUuYwkocmV2aXNpb24gMCkKKysrIHRvb2xzL3JlZ3Jlc3Npb24v dHVuYWJsZXMvc3RyaW5nL3Rlc3Rfc3RyaW5nX3R1bmFibGUuYwkocmV2aXNpb24gMCkKQEAgLTAs MCArMSwzMSBAQAorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5o PgorI2luY2x1ZGUgPHN5cy9wcm9jLmg+CisjaW5jbHVkZSA8c3lzL21vZHVsZS5oPgorI2luY2x1 ZGUgPHN5cy9rZXJuZWwuaD4KKyNpbmNsdWRlIDxzeXMvc3lzdG0uaD4KKworI2RlZmluZSBNT0RV TEVfTkFNRQkidGVzdF9zdHJpbmdfdHVuYWJsZSIKKworc3RhdGljIGNoYXIgdHVuYWJsZVsxMF07 CisKK1RVTkFCTEVfU1RSKCJ0ZXN0X3N0cmluZ190dW5hYmxlLnR1bmFibGUiLCB0dW5hYmxlLCBz aXplb2YodHVuYWJsZSkpOworCitzdGF0aWMgaW50Citsb2FkIChtb2R1bGVfdCBtLCBpbnQgd2hh dCwgdm9pZCAqYXJnKQoreworCXN3aXRjaCAod2hhdCkgeworCWNhc2UgTU9EX0xPQUQ6CisJCXBy aW50ZigiJXM6ICVzXG4iLCBNT0RVTEVfTkFNRSwgdHVuYWJsZSk7CisJCWJyZWFrOworCX0KKwly ZXR1cm4gKDApOworfQorCitzdGF0aWMgbW9kdWxlZGF0YV90IHRlc3Rfc3RyaW5nX3R1bmFibGVf bW9kID0geworCU1PRFVMRV9OQU1FLAorCWxvYWQsCit9OworREVDTEFSRV9NT0RVTEUodGVzdF9z dHJpbmdfdHVuYWJsZSwgdGVzdF9zdHJpbmdfdHVuYWJsZV9tb2QsIFNJX1NVQl9LTEQsCisgICAg U0lfT1JERVJfQU5ZKTsKK01PRFVMRV9WRVJTSU9OKHRlc3Rfc3RyaW5nX3R1bmFibGUsIDEpOwpJ bmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9zdHJpbmcvdGVzdF9zdHJpbmdfdHVuYWJs ZS5zaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3N0cmluZy90ZXN0 X3N0cmluZ190dW5hYmxlLnNoCShyZXZpc2lvbiAwKQorKysgdG9vbHMvcmVncmVzc2lvbi90dW5h Ymxlcy9zdHJpbmcvdGVzdF9zdHJpbmdfdHVuYWJsZS5zaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr MSwyMiBAQAorIyEvYmluL3NoCisjCisjIEV4cGVjdGVkIHZhbHVlczoKKyMgKHVuc2V0KSAgICAg ICAgICAgICAgOiAgICAgICAgICAiIgorIyAiIiAgICAgICAgICAgICAgICAgICA6ICAgICAgICAg ICIiCisjIGFzZGYxMjM0ICAgICAgICAgICAgIDogICAgYXNkZjEyMzQKKyMgY2hhcmFjdGVyICAg ICAgICAgICAgOiAgIGNoYXJhY3RlcgorIyBhc29ydG9mbG9uZ2lzaHN0cmluZyA6ICAgYXNvcnRv ZmxvCisjCisKK01PRE5BTUU9IiQoYmFzZW5hbWUgIiQwIiAuc2gpIgorCit0ZXN0X21vZHVsZSgp IHsKKwlrbGRsb2FkIC4vJE1PRE5BTUUua28KKwlrbGR1bmxvYWQgLi8kTU9ETkFNRS5rbworfQor Cit0ZXN0X21vZHVsZQorZm9yIGkgaW4gIiIgYXNkZjEyMzQgY2hhcmFjdGVyIGFzb3J0b2Zsb25n aXNoc3RyaW5nOyBkbworCWtlbnYgJE1PRE5BTUUudHVuYWJsZT0iJGkiCisJdGVzdF9tb2R1bGUK K2RvbmUKSW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc3RyaW5nL01ha2VmaWxlCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc3RyaW5nL01ha2VmaWxlCShy ZXZpc2lvbiAwKQorKysgdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9zdHJpbmcvTWFrZWZpbGUJ KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorS01PRD0JdGVzdF9zdHJpbmdfdHVuYWJsZQor U1JDUz0JdGVzdF9zdHJpbmdfdHVuYWJsZS5jCisKKy5pbmNsdWRlIDxic2Qua21vZC5taz4KSW5k ZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc2l6ZS90ZXN0X3NpemVfdHVuYWJsZS5jCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc2l6ZS90ZXN0X3NpemVfdHVu YWJsZS5jCShyZXZpc2lvbiAwKQorKysgdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9zaXplL3Rl c3Rfc2l6ZV90dW5hYmxlLmMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzEgQEAKKyNpbmNsdWRl IDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvcHJv Yy5oPgorI2luY2x1ZGUgPHN5cy9tb2R1bGUuaD4KKyNpbmNsdWRlIDxzeXMva2VybmVsLmg+Cisj aW5jbHVkZSA8c3lzL3N5c3RtLmg+CisKKyNkZWZpbmUgTU9EVUxFX05BTUUJInRlc3Rfc2l6ZV90 dW5hYmxlIgorCitzdGF0aWMgc2l6ZV90IHR1bmFibGUgPSAwOworCitUVU5BQkxFX1NJWkUoInRl c3Rfc2l6ZV90dW5hYmxlLnR1bmFibGUiLCAmdHVuYWJsZSk7CisKK3N0YXRpYyBpbnQKK2xvYWQg KG1vZHVsZV90IG0sIGludCB3aGF0LCB2b2lkICphcmcpCit7CisJc3dpdGNoICh3aGF0KSB7CisJ Y2FzZSBNT0RfTE9BRDoKKwkJcHJpbnRmKCIlczogJXp1XG4iLCBNT0RVTEVfTkFNRSwgdHVuYWJs ZSk7CisJCWJyZWFrOworCX0KKwlyZXR1cm4gKDApOworfQorCitzdGF0aWMgbW9kdWxlZGF0YV90 IHRlc3Rfc2l6ZV90dW5hYmxlX21vZCA9IHsKKwlNT0RVTEVfTkFNRSwKKwlsb2FkLAorfTsKK0RF Q0xBUkVfTU9EVUxFKHRlc3Rfc2l6ZV90dW5hYmxlLCB0ZXN0X3NpemVfdHVuYWJsZV9tb2QsIFNJ X1NVQl9LTEQsCisgICAgU0lfT1JERVJfQU5ZKTsKK01PRFVMRV9WRVJTSU9OKHRlc3Rfc2l6ZV90 dW5hYmxlLCAxKTsKSW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc2l6ZS90ZXN0X3Np emVfdHVuYWJsZS5zaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3Np emUvdGVzdF9zaXplX3R1bmFibGUuc2gJKHJldmlzaW9uIDApCisrKyB0b29scy9yZWdyZXNzaW9u L3R1bmFibGVzL3NpemUvdGVzdF9zaXplX3R1bmFibGUuc2gJKHJldmlzaW9uIDApCkBAIC0wLDAg KzEsMzggQEAKKyMhL2Jpbi9zaAorIworIyBFeHBlY3RlZCB2YWx1ZXM6CisjICh1bnNldCkgICAg OiAgICAgICAgICAgMAorIyAgICAgIC0xICAgIDogICBVTE9OR19NQVgKKyMgICAgICAgMCAgICA6 ICAgICAgICAgICAwCisjICAgICAgNDIgICAgOiAgICAgICAgICA0MgorIyBhc2RmMTIzNCAgIDog ICAgICAgICAgIDAgKHJlamVjdCkKKyMgTE9OR19NQVgrMSA6ICBMT05HX01BWCsxCisjIFVMT05H X01BWC0xOiBVTE9OR19NQVgtMQorIyBVTE9OR19NQVgrMTogICBVTE9OR19NQVgKKyMKKworTU9E TkFNRT0iJChiYXNlbmFtZSAiJDAiIC5zaCkiCisKK3Rlc3RfbW9kdWxlKCkgeworCWtsZGxvYWQg Li8kTU9ETkFNRS5rbworCWtsZHVubG9hZCAuLyRNT0ROQU1FLmtvCit9CisKK2Nhc2UgIiQoJChk aXJuYW1lICIkMCIpLy4uL3Rvb2xzL2dldHdvcmRzaXplKSIgaW4KKzMyKQorCUxPTkdfTUFYX1BM VVNfMT0yMTQ3NDgzNjQ5CisJVUxPTkdfTUFYX01JTlVTXzE9NDI5NDk2NzI5NQorCVVMT05HX01B WF9QTFVTXzE9NDI5NDk2NzI5NworCTs7Cis2NCkKKwlMT05HX01BWF9QTFVTXzE9OTIyMzM3MjAz Njg1NDc3NTgwOAorCVVMT05HX01BWF9NSU5VU18xPTE4NDQ2NzQ0MDczNzA5NTUxNjE0CisJVUxP TkdfTUFYX1BMVVNfMT0xODQ0Njc0NDA3MzcwOTU1MTYxNgorCTs7Citlc2FjCitrZW52IC11ICRN T0ROQU1FLnR1bmFibGUgMj4vZGV2L251bGwKK3Rlc3RfbW9kdWxlCitmb3IgaSBpbiAtMSAwIDQy IGFzZGYxMjM0ICRMT05HX01BWF9QTFVTXzEgJFVMT05HX01BWF9NSU5VU18xICRVTE9OR19NQVhf UExVU18xOyBkbworCWtlbnYgJE1PRE5BTUUudHVuYWJsZT0iJGkiCisJdGVzdF9tb2R1bGUKK2Rv bmUKSW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc2l6ZS9NYWtlZmlsZQo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3NpemUvTWFrZWZpbGUJKHJldmlzaW9u IDApCisrKyB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3NpemUvTWFrZWZpbGUJKHJldmlzaW9u IDApCkBAIC0wLDAgKzEsNCBAQAorS01PRD0JdGVzdF9zaXplX3R1bmFibGUKK1NSQ1M9CXRlc3Rf c2l6ZV90dW5hYmxlLmMKKworLmluY2x1ZGUgPGJzZC5rbW9kLm1rPgpJbmRleDogdG9vbHMvcmVn cmVzc2lvbi90dW5hYmxlcy9xdWFkL3Rlc3RfcXVhZF90dW5hYmxlLmMKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g dG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9xdWFkL3Rlc3RfcXVhZF90dW5hYmxlLmMJKHJldmlz aW9uIDApCisrKyB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3F1YWQvdGVzdF9xdWFkX3R1bmFi bGUuYwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMSBAQAorI2luY2x1ZGUgPHN5cy9wYXJhbS5o PgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9wcm9jLmg+CisjaW5jbHVk ZSA8c3lzL21vZHVsZS5oPgorI2luY2x1ZGUgPHN5cy9rZXJuZWwuaD4KKyNpbmNsdWRlIDxzeXMv c3lzdG0uaD4KKworI2RlZmluZSBNT0RVTEVfTkFNRQkidGVzdF9xdWFkX3R1bmFibGUiCisKK3N0 YXRpYyBxdWFkX3QgdHVuYWJsZSA9IDA7CisKK1RVTkFCTEVfUVVBRCgidGVzdF9xdWFkX3R1bmFi bGUudHVuYWJsZSIsICZ0dW5hYmxlKTsKKworc3RhdGljIGludAorbG9hZCAobW9kdWxlX3QgbSwg aW50IHdoYXQsIHZvaWQgKmFyZykKK3sKKwlzd2l0Y2ggKHdoYXQpIHsKKwljYXNlIE1PRF9MT0FE OgorCQlwcmludGYoIiVzOiAlbGRcbiIsIE1PRFVMRV9OQU1FLCB0dW5hYmxlKTsKKwkJYnJlYWs7 CisJfQorCXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBtb2R1bGVkYXRhX3QgdGVzdF9xdWFkX3R1 bmFibGVfbW9kID0geworCU1PRFVMRV9OQU1FLAorCWxvYWQsCit9OworREVDTEFSRV9NT0RVTEUo dGVzdF9xdWFkX3R1bmFibGUsIHRlc3RfcXVhZF90dW5hYmxlX21vZCwgU0lfU1VCX0tMRCwKKyAg ICBTSV9PUkRFUl9BTlkpOworTU9EVUxFX1ZFUlNJT04odGVzdF9xdWFkX3R1bmFibGUsIDEpOwpJ bmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9xdWFkL3Rlc3RfcXVhZF90dW5hYmxlLnNo Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvcXVhZC90ZXN0X3F1YWRf dHVuYWJsZS5zaAkocmV2aXNpb24gMCkKKysrIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvcXVh ZC90ZXN0X3F1YWRfdHVuYWJsZS5zaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAorIyEv YmluL3NoCisjCisjIEV4cGVjdGVkIHZhbHVlczoKKyMgKHVuc2V0KSAgICA6ICAgICAgICAgICAw CisjICAgICAgIDAgICAgOiAgICAgICAgICAgMAorIyAgICAgIDQyICAgIDogICAgICAgICAgNDIK KyMgYXNkZjEyMzQgICA6ICAgICAgICAgICAwIChyZWplY3QpCisjIExPTkdfTUlOLTEgOiAgTE9O R19NSU4KKyMgTE9OR19NSU4rMSA6ICBMT05HX01JTisxCisjIExPTkdfTUFYLTEgOiAgTE9OR19N QVgtMQorIyBMT05HX01BWCsxIDogIExPTkdfTUFYCisjCisKK01PRE5BTUU9IiQoYmFzZW5hbWUg IiQwIiAuc2gpIgorCit0ZXN0X21vZHVsZSgpIHsKKwlrbGRsb2FkIC4vJE1PRE5BTUUua28KKwlr bGR1bmxvYWQgLi8kTU9ETkFNRS5rbworfQorCitjYXNlICIkKCQoZGlybmFtZSAiJDAiKS8uLi90 b29scy9nZXR3b3Jkc2l6ZSkiIGluCiszMikKKwlMT05HX01JTl9NSU5VU18xPSItMjE0NzQ4MzY0 OSIKKwlMT05HX01JTl9QTFVTXzE9Ii0yMTQ3NDgzNjQ3IgorCUxPTkdfTUFYX01JTlVTXzE9MjE0 NzQ4MzY0NworCUxPTkdfTUFYX1BMVVNfMT0yMTQ3NDgzNjQ5CisJOzsKKzY0KQorCUxPTkdfTUlO X01JTlVTXzE9Ii05MjIzMzcyMDM2ODU0Nzc1ODA5IgorCUxPTkdfTUlOX1BMVVNfMT0iLTkyMjMz NzIwMzY4NTQ3NzU4MDciCisJTE9OR19NQVhfTUlOVVNfMT05MjIzMzcyMDM2ODU0Nzc1ODA2CisJ TE9OR19NQVhfUExVU18xPTkyMjMzNzIwMzY4NTQ3NzU4MDgKKwk7OworZXNhYwora2VudiAtdSAk TU9ETkFNRS50dW5hYmxlIDI+L2Rldi9udWxsCit0ZXN0X21vZHVsZQorZm9yIGkgaW4gMCA0MiBh c2RmMTIzNCAkTE9OR19NSU5fTUlOVVNfMSAkTE9OR19NSU5fUExVU18xICRMT05HX01BWF9NSU5V U18xICRMT05HX01BWF9QTFVTXzEgOyBkbworCWtlbnYgJE1PRE5BTUUudHVuYWJsZT0iJGkiCisJ dGVzdF9tb2R1bGUKK2RvbmUKSW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvcXVhZC9N YWtlZmlsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3F1YWQvTWFr ZWZpbGUJKHJldmlzaW9uIDApCisrKyB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3F1YWQvTWFr ZWZpbGUJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorS01PRD0JdGVzdF9xdWFkX3R1bmFi bGUKK1NSQ1M9CXRlc3RfcXVhZF90dW5hYmxlLmMKKworLmluY2x1ZGUgPGJzZC5rbW9kLm1rPgpJ bmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9pbnQvdGVzdF9pbnRfdHVuYWJsZS5jCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvaW50L3Rlc3RfaW50X3R1bmFi bGUuYwkocmV2aXNpb24gMCkKKysrIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvaW50L3Rlc3Rf aW50X3R1bmFibGUuYwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMSBAQAorI2luY2x1ZGUgPHN5 cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9wcm9jLmg+ CisjaW5jbHVkZSA8c3lzL2tlcm5lbC5oPgorI2luY2x1ZGUgPHN5cy9zeXN0bS5oPgorI2luY2x1 ZGUgPHN5cy9tb2R1bGUuaD4KKworI2RlZmluZSBNT0RVTEVfTkFNRQkidGVzdF9pbnRfdHVuYWJs ZSIKKworc3RhdGljIGludCB0dW5hYmxlID0gMDsKKworVFVOQUJMRV9JTlQoInRlc3RfaW50X3R1 bmFibGUudHVuYWJsZSIsICZ0dW5hYmxlKTsKKworc3RhdGljIGludAorbG9hZCAobW9kdWxlX3Qg bSwgaW50IHdoYXQsIHZvaWQgKmFyZykKK3sKKwlzd2l0Y2ggKHdoYXQpIHsKKwljYXNlIE1PRF9M T0FEOgorCQlwcmludGYoIiVzOiAlZFxuIiwgTU9EVUxFX05BTUUsIHR1bmFibGUpOworCQlicmVh azsKKwl9CisJcmV0dXJuICgwKTsKK30KKworc3RhdGljIG1vZHVsZWRhdGFfdCB0ZXN0X2ludF90 dW5hYmxlX21vZCA9IHsKKwlNT0RVTEVfTkFNRSwKKwlsb2FkLAorfTsKK0RFQ0xBUkVfTU9EVUxF KHRlc3RfaW50X3R1bmFibGUsIHRlc3RfaW50X3R1bmFibGVfbW9kLCBTSV9TVUJfS0xELAorICAg IFNJX09SREVSX0FOWSk7CitNT0RVTEVfVkVSU0lPTih0ZXN0X2ludF90dW5hYmxlLCAxKTsKSW5k ZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvaW50L3Rlc3RfaW50X3R1bmFibGUuc2gKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0gdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9pbnQvdGVzdF9pbnRfdHVuYWJs ZS5zaAkocmV2aXNpb24gMCkKKysrIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvaW50L3Rlc3Rf aW50X3R1bmFibGUuc2gJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzEgQEAKKyMhL2Jpbi9zaAor IworIyBFeHBlY3RlZCB2YWx1ZXM6CisjICh1bnNldCkgICA6ICAgICAgICAgICAwCisjICAgICAg LTEgICA6ICAgICAgICAgIC0xCisjICAgICAgIDAgICA6ICAgICAgICAgICAwCisjICAgICAgNDIg ICA6ICAgICAgICAgIDQyCisjIGFzZGYxMjM0ICA6ICAgICAgICAgICAwIChyZWplY3QpCisjIElO VF9NSU4rMSA6ICAgSU5UX01JTisxCisjIElOVF9NSU4tMSA6ICAgICAgICAgICAwIChyZWplY3Qp CisjIElOVF9NQVgtMSA6ICAgSU5UX01BWC0xCisjIElOVF9NQVgrMSA6ICAgICAgICAgICAwIChy ZWplY3QpCisjCisKK01PRE5BTUU9IiQoYmFzZW5hbWUgIiQwIiAuc2gpIgorCit0ZXN0X21vZHVs ZSgpIHsKKwlrbGRsb2FkIC4vJE1PRE5BTUUua28KKwlrbGR1bmxvYWQgLi8kTU9ETkFNRS5rbwor fQorCitJTlRfTUlOX1BMVVNfT05FPS0yMTQ3NDgzNjQ3CitJTlRfTUlOX01JTlVTX09ORT0tMjE0 NzQ4MzY0OQorSU5UX01BWF9NSU5VU19PTkU9MjE0NzQ4MzY0NgorSU5UX01BWF9QTFVTX09ORT0y MTQ3NDgzNjQ4CitrZW52IC11ICRNT0ROQU1FLnR1bmFibGUgMj4vZGV2L251bGwKK3Rlc3RfbW9k dWxlCitmb3IgaSBpbiAtMSAwIDQyIGFzZGYxMjM0ICRJTlRfTUlOX1BMVVNfT05FICRJTlRfTUlO X01JTlVTX09ORSAkSU5UX01BWF9NSU5VU19PTkUgJElOVF9NQVhfUExVU19PTkU7IGRvCisJa2Vu diAkTU9ETkFNRS50dW5hYmxlPSIkaSIKKwl0ZXN0X21vZHVsZQorZG9uZQpJbmRleDogdG9vbHMv cmVncmVzc2lvbi90dW5hYmxlcy9pbnQvTWFrZWZpbGUKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdG9vbHMvcmVn cmVzc2lvbi90dW5hYmxlcy9pbnQvTWFrZWZpbGUJKHJldmlzaW9uIDApCisrKyB0b29scy9yZWdy ZXNzaW9uL3R1bmFibGVzL2ludC9NYWtlZmlsZQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0IEBA CitLTU9EPQl0ZXN0X2ludF90dW5hYmxlCitTUkNTPQl0ZXN0X2ludF90dW5hYmxlLmMKKworLmlu Y2x1ZGUgPGJzZC5rbW9kLm1rPgpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9NYWtl ZmlsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL01ha2VmaWxlCShy ZXZpc2lvbiAwKQorKysgdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9NYWtlZmlsZQkocmV2aXNp b24gMCkKQEAgLTAsMCArMSwxMCBAQAorU1VCRElSPQkJdG9vbHMJCVwKKwkJaW50IHVpbnQJXAor CQlsb25nIHVsb25nCVwKKwkJcG9pbnRlcgkJXAorCQlxdWFkIHVxdWFkCVwKKwkJc2l6ZQkJXAor CQlzdHJpbmcJCVwKKwkJc3VmZml4CQlcCisKKy5pbmNsdWRlIDxic2Quc3ViZGlyLm1rPgo= --000e0cdfc900503d80049354fd59--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTim-XVhm-RLUo7rwwJ%2B3=tCHMKNsk9DbtrSezxHo>