Date: Sat, 23 Oct 2010 21:20:55 -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: <AANLkTimEejt2Gd%2BQEiGWXXsJfpUUY8ayygkMP48PcYpj@mail.gmail.com> In-Reply-To: <AANLkTim-XVhm-RLUo7rwwJ%2B3=tCHMKNsk9DbtrSezxHo@mail.gmail.com> 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> <AANLkTim-XVhm-RLUo7rwwJ%2B3=tCHMKNsk9DbtrSezxHo@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--0016364c7f13b16b8304935533e3 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable 2010/10/23 Garrett Cooper <gcooper@freebsd.org>: > 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. > > =A0 =A0Ok. Let's retry with a .patch extension and by bumping __FreeBSD_v= ersion__. Sorry.. forgot the uquad_t addition to sys/types.h :(... --0016364c7f13b16b8304935533e3 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_gfnesoqj1 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 bWUpOwpJbmRleDogc3lzL3N5cy90eXBlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9zeXMvdHlwZXMu aAkocmV2aXNpb24gMjE0MjU4KQorKysgc3lzL3N5cy90eXBlcy5oCSh3b3JraW5nIGNvcHkpCkBA IC0xMTIsNiArMTEyLDcgQEAKIHR5cGVkZWYgX191aW50NjRfdAl1X2ludDY0X3Q7CiAKIHR5cGVk ZWYJX191aW50NjRfdAl1X3F1YWRfdDsJLyogcXVhZHMgKGRlcHJlY2F0ZWQpICovCit0eXBlZGVm CV9fdWludDY0X3QJdXF1YWRfdDsKIHR5cGVkZWYJX19pbnQ2NF90CXF1YWRfdDsKIHR5cGVkZWYJ cXVhZF90ICoJcWFkZHJfdDsKIApJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy91cXVh ZC90ZXN0X3VxdWFkX3R1bmFibGUuc2gKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdG9vbHMvcmVncmVzc2lvbi90 dW5hYmxlcy91cXVhZC90ZXN0X3VxdWFkX3R1bmFibGUuc2gJKHJldmlzaW9uIDApCisrKyB0b29s cy9yZWdyZXNzaW9uL3R1bmFibGVzL3VxdWFkL3Rlc3RfdXF1YWRfdHVuYWJsZS5zaAkocmV2aXNp b24gMCkKQEAgLTAsMCArMSwzOCBAQAorIyEvYmluL3NoCisjCisjIEV4cGVjdGVkIHZhbHVlczoK KyMgKHVuc2V0KSAgICA6ICAgICAgICAgICAwCisjICAgICAgLTEgICAgOiAgIFVMT05HX01BWAor IyAgICAgICAwICAgIDogICAgICAgICAgIDAKKyMgICAgICA0MiAgICA6ICAgICAgICAgIDQyCisj IGFzZGYxMjM0ICAgOiAgICAgICAgICAgMCAocmVqZWN0KQorIyBMT05HX01BWCsxIDogIExPTkdf TUFYKzEKKyMgVUxPTkdfTUFYLTE6IFVMT05HX01BWC0xCisjIFVMT05HX01BWCsxOiAgIFVMT05H X01BWAorIworCitNT0ROQU1FPSIkKGJhc2VuYW1lICIkMCIgLnNoKSIKKwordGVzdF9tb2R1bGUo KSB7CisJa2xkbG9hZCAuLyRNT0ROQU1FLmtvCisJa2xkdW5sb2FkIC4vJE1PRE5BTUUua28KK30K KworY2FzZSAiJCgkKGRpcm5hbWUgIiQwIikvLi4vdG9vbHMvZ2V0d29yZHNpemUpIiBpbgorMzIp CisJTE9OR19NQVhfUExVU18xPTIxNDc0ODM2NDkKKwlVTE9OR19NQVhfTUlOVVNfMT00Mjk0OTY3 Mjk1CisJVUxPTkdfTUFYX1BMVVNfMT00Mjk0OTY3Mjk3CisJOzsKKzY0KQorCUxPTkdfTUFYX1BM VVNfMT05MjIzMzcyMDM2ODU0Nzc1ODA4CisJVUxPTkdfTUFYX01JTlVTXzE9MTg0NDY3NDQwNzM3 MDk1NTE2MTQKKwlVTE9OR19NQVhfUExVU18xPTE4NDQ2NzQ0MDczNzA5NTUxNjE2CisJOzsKK2Vz YWMKK2tlbnYgLXUgJE1PRE5BTUUudHVuYWJsZSAyPi9kZXYvbnVsbAordGVzdF9tb2R1bGUKK2Zv ciBpIGluIC0xIDAgNDIgYXNkZjEyMzQgJExPTkdfTUFYX1BMVVNfMSAkVUxPTkdfTUFYX01JTlVT XzEgJFVMT05HX01BWF9QTFVTXzE7IGRvCisJa2VudiAkTU9ETkFNRS50dW5hYmxlPSIkaSIKKwl0 ZXN0X21vZHVsZQorZG9uZQpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy91cXVhZC90 ZXN0X3VxdWFkX3R1bmFibGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFi bGVzL3VxdWFkL3Rlc3RfdXF1YWRfdHVuYWJsZS5jCShyZXZpc2lvbiAwKQorKysgdG9vbHMvcmVn cmVzc2lvbi90dW5hYmxlcy91cXVhZC90ZXN0X3VxdWFkX3R1bmFibGUuYwkocmV2aXNpb24gMCkK QEAgLTAsMCArMSwzMSBAQAorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy90 eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9wcm9jLmg+CisjaW5jbHVkZSA8c3lzL21vZHVsZS5oPgor I2luY2x1ZGUgPHN5cy9rZXJuZWwuaD4KKyNpbmNsdWRlIDxzeXMvc3lzdG0uaD4KKworI2RlZmlu ZSBNT0RVTEVfTkFNRQkidGVzdF91cXVhZF90dW5hYmxlIgorCitzdGF0aWMgdXF1YWRfdCB0dW5h YmxlID0gMDsKKworVFVOQUJMRV9VUVVBRCgidGVzdF91cXVhZF90dW5hYmxlLnR1bmFibGUiLCAm dHVuYWJsZSk7CisKK3N0YXRpYyBpbnQKK2xvYWQgKG1vZHVsZV90IG0sIGludCB3aGF0LCB2b2lk ICphcmcpCit7CisJc3dpdGNoICh3aGF0KSB7CisJY2FzZSBNT0RfTE9BRDoKKwkJcHJpbnRmKCIl czogJWx1XG4iLCBNT0RVTEVfTkFNRSwgdHVuYWJsZSk7CisJCWJyZWFrOworCX0KKwlyZXR1cm4g KDApOworfQorCitzdGF0aWMgbW9kdWxlZGF0YV90IHRlc3RfdXF1YWRfdHVuYWJsZV9tb2QgPSB7 CisJTU9EVUxFX05BTUUsCisJbG9hZCwKK307CitERUNMQVJFX01PRFVMRSh0ZXN0X3VxdWFkX3R1 bmFibGUsIHRlc3RfdXF1YWRfdHVuYWJsZV9tb2QsIFNJX1NVQl9LTEQsCisgICAgU0lfT1JERVJf QU5ZKTsKK01PRFVMRV9WRVJTSU9OKHRlc3RfdXF1YWRfdHVuYWJsZSwgMSk7CkluZGV4OiB0b29s cy9yZWdyZXNzaW9uL3R1bmFibGVzL3VxdWFkL01ha2VmaWxlCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRvb2xz L3JlZ3Jlc3Npb24vdHVuYWJsZXMvdXF1YWQvTWFrZWZpbGUJKHJldmlzaW9uIDApCisrKyB0b29s cy9yZWdyZXNzaW9uL3R1bmFibGVzL3VxdWFkL01ha2VmaWxlCShyZXZpc2lvbiAwKQpAQCAtMCww ICsxLDQgQEAKK0tNT0Q9CXRlc3RfdXF1YWRfdHVuYWJsZQorU1JDUz0JdGVzdF91cXVhZF90dW5h YmxlLmMKKworLmluY2x1ZGUgPGJzZC5rbW9kLm1rPgpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90 dW5hYmxlcy91aW50L3Rlc3RfdWludF90dW5hYmxlLnNoCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRvb2xzL3Jl Z3Jlc3Npb24vdHVuYWJsZXMvdWludC90ZXN0X3VpbnRfdHVuYWJsZS5zaAkocmV2aXNpb24gMCkK KysrIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvdWludC90ZXN0X3VpbnRfdHVuYWJsZS5zaAko cmV2aXNpb24gMCkKQEAgLTAsMCArMSwyOSBAQAorIyEvYmluL3NoCisjCisjIEV4cGVjdGVkIHZh bHVlczoKKyMgKHVuc2V0KSAgIDogICAgICAgICAgMAorIyAgICAgIC0xICAgOiAgICAgICAgICAw IChyZWplY3QpIAorIyAgICAgICAwICAgOiAgICAgICAgICAwCisjICAgICAgNDIgICA6ICAgICAg ICAgNDIKKyMgYXNkZjEyMzQgIDogICAgICAgICAgMCAocmVqZWN0KQorIyBJTlRfTUFYKzEgOiAg SU5UX01BWCsxCisjIFVJTlRfTUFYLTE6IFVJTlRfTUFYLTEKKyMgVUlOVF9NQVgrMTogICAgICAg ICAgMCAocmVqZWN0KQorIworCitNT0ROQU1FPSIkKGJhc2VuYW1lICIkMCIgLnNoKSIKKwordGVz dF9tb2R1bGUoKSB7CisJa2xkbG9hZCAuLyRNT0ROQU1FLmtvCisJa2xkdW5sb2FkIC4vJE1PRE5B TUUua28KK30KKworSU5UX01BWF9QTFVTX09ORT0yMTQ3NDgzNjQ4CitVSU5UX01BWF9NSU5VU19P TkU9NDI5NDk2NzI5NAorVUlOVF9NQVhfUExVU19PTkU9NDI5NDk2NzI5Ngora2VudiAtdSAkTU9E TkFNRS50dW5hYmxlIDI+L2Rldi9udWxsCit0ZXN0X21vZHVsZQorZm9yIGkgaW4gLTEgMCA0MiBh c2RmMTIzNCAkSU5UX01BWF9QTFVTX09ORSAkVUlOVF9NQVhfTUlOVVNfT05FICRVSU5UX01BWF9Q TFVTX09ORTsgZG8KKwlrZW52ICRNT0ROQU1FLnR1bmFibGU9IiRpIgorCXRlc3RfbW9kdWxlCitk b25lCkluZGV4OiB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3VpbnQvdGVzdF91aW50X3R1bmFi bGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3VpbnQvdGVzdF91 aW50X3R1bmFibGUuYwkocmV2aXNpb24gMCkKKysrIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMv dWludC90ZXN0X3VpbnRfdHVuYWJsZS5jCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMxIEBACisj aW5jbHVkZSA8c3lzL3BhcmFtLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8 c3lzL3Byb2MuaD4KKyNpbmNsdWRlIDxzeXMvbW9kdWxlLmg+CisjaW5jbHVkZSA8c3lzL2tlcm5l bC5oPgorI2luY2x1ZGUgPHN5cy9zeXN0bS5oPgorCisjZGVmaW5lIE1PRFVMRV9OQU1FCSJ0ZXN0 X3VpbnRfdHVuYWJsZSIKKworc3RhdGljIHVuc2lnbmVkIGludCB0dW5hYmxlID0gMDsKKworVFVO QUJMRV9VSU5UKCJ0ZXN0X3VpbnRfdHVuYWJsZS50dW5hYmxlIiwgJnR1bmFibGUpOworCitzdGF0 aWMgaW50Citsb2FkIChtb2R1bGVfdCBtLCBpbnQgd2hhdCwgdm9pZCAqYXJnKQoreworCXN3aXRj aCAod2hhdCkgeworCWNhc2UgTU9EX0xPQUQ6CisJCXByaW50ZigiJXM6ICV1XG4iLCBNT0RVTEVf TkFNRSwgdHVuYWJsZSk7CisJCWJyZWFrOworCX0KKwlyZXR1cm4gKDApOworfQorCitzdGF0aWMg bW9kdWxlZGF0YV90IHRlc3RfdWludF90dW5hYmxlX21vZCA9IHsKKwlNT0RVTEVfTkFNRSwKKwls b2FkLAorfTsKK0RFQ0xBUkVfTU9EVUxFKHRlc3RfdWludF90dW5hYmxlLCB0ZXN0X3VpbnRfdHVu YWJsZV9tb2QsIFNJX1NVQl9LTEQsCisgICAgU0lfT1JERVJfQU5ZKTsKK01PRFVMRV9WRVJTSU9O KHRlc3RfdWludF90dW5hYmxlLCAxKTsKSW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMv dWludC9NYWtlZmlsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3Vp bnQvTWFrZWZpbGUJKHJldmlzaW9uIDApCisrKyB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3Vp bnQvTWFrZWZpbGUJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorS01PRD0JdGVzdF91aW50 X3R1bmFibGUKK1NSQ1M9CXRlc3RfdWludF90dW5hYmxlLmMKKworLmluY2x1ZGUgPGJzZC5rbW9k Lm1rPgpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy90b29scy9nZXR3b3Jkc2l6ZS5j Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvdG9vbHMvZ2V0d29yZHNp emUuYwkocmV2aXNpb24gMCkKKysrIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvdG9vbHMvZ2V0 d29yZHNpemUuYwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACisjaW5jbHVkZSA8c3lzL2Vs Zi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKK2ludAorbWFpbih2b2lkKQoreworCXByaW50Zigi JWRcbiIsIF9fRUxGX1dPUkRfU0laRSk7CisJcmV0dXJuICgwKTsKK30KSW5kZXg6IHRvb2xzL3Jl Z3Jlc3Npb24vdHVuYWJsZXMvdG9vbHMvTWFrZWZpbGUKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdG9vbHMvcmVn cmVzc2lvbi90dW5hYmxlcy90b29scy9NYWtlZmlsZQkocmV2aXNpb24gMCkKKysrIHRvb2xzL3Jl Z3Jlc3Npb24vdHVuYWJsZXMvdG9vbHMvTWFrZWZpbGUJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs NyBAQAorUFJPRz0JCWdldHdvcmRzaXplCisKK1NSQ1M9CQlnZXR3b3Jkc2l6ZS5jCisKK05PX01B Tj0JCTEKKworLmluY2x1ZGUgPGJzZC5wcm9nLm1rPgpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90 dW5hYmxlcy91bG9uZy90ZXN0X3Vsb25nX3R1bmFibGUuc2gKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdG9vbHMv cmVncmVzc2lvbi90dW5hYmxlcy91bG9uZy90ZXN0X3Vsb25nX3R1bmFibGUuc2gJKHJldmlzaW9u IDApCisrKyB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3Vsb25nL3Rlc3RfdWxvbmdfdHVuYWJs ZS5zaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOCBAQAorIyEvYmluL3NoCisjCisjIEV4cGVj dGVkIHZhbHVlczoKKyMgKHVuc2V0KSAgICA6ICAgICAgICAgICAwCisjICAgICAgLTEgICAgOiAg IFVMT05HX01BWAorIyAgICAgICAwICAgIDogICAgICAgICAgIDAKKyMgICAgICA0MiAgICA6ICAg ICAgICAgIDQyCisjIGFzZGYxMjM0ICAgOiAgICAgICAgICAgMCAocmVqZWN0KQorIyBMT05HX01B WCsxIDogIExPTkdfTUFYKzEKKyMgVUxPTkdfTUFYLTE6IFVMT05HX01BWC0xCisjIFVMT05HX01B WCsxOiAgIFVMT05HX01BWAorIworCitNT0ROQU1FPSIkKGJhc2VuYW1lICIkMCIgLnNoKSIKKwor dGVzdF9tb2R1bGUoKSB7CisJa2xkbG9hZCAuLyRNT0ROQU1FLmtvCisJa2xkdW5sb2FkIC4vJE1P RE5BTUUua28KK30KKworY2FzZSAiJCgkKGRpcm5hbWUgIiQwIikvLi4vdG9vbHMvZ2V0d29yZHNp emUpIiBpbgorMzIpCisJTE9OR19NQVhfUExVU18xPTIxNDc0ODM2NDkKKwlVTE9OR19NQVhfTUlO VVNfMT00Mjk0OTY3Mjk1CisJVUxPTkdfTUFYX1BMVVNfMT00Mjk0OTY3Mjk3CisJOzsKKzY0KQor CUxPTkdfTUFYX1BMVVNfMT05MjIzMzcyMDM2ODU0Nzc1ODA4CisJVUxPTkdfTUFYX01JTlVTXzE9 MTg0NDY3NDQwNzM3MDk1NTE2MTQKKwlVTE9OR19NQVhfUExVU18xPTE4NDQ2NzQ0MDczNzA5NTUx NjE2CisJOzsKK2VzYWMKK2tlbnYgLXUgJE1PRE5BTUUudHVuYWJsZSAyPi9kZXYvbnVsbAordGVz dF9tb2R1bGUKK2ZvciBpIGluIC0xIDAgNDIgYXNkZjEyMzQgJExPTkdfTUFYX1BMVVNfMSAkVUxP TkdfTUFYX01JTlVTXzEgJFVMT05HX01BWF9QTFVTXzE7IGRvCisJa2VudiAkTU9ETkFNRS50dW5h YmxlPSIkaSIKKwl0ZXN0X21vZHVsZQorZG9uZQpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5h Ymxlcy91bG9uZy9NYWtlZmlsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFi bGVzL3Vsb25nL01ha2VmaWxlCShyZXZpc2lvbiAwKQorKysgdG9vbHMvcmVncmVzc2lvbi90dW5h Ymxlcy91bG9uZy9NYWtlZmlsZQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0IEBACitLTU9EPQl0 ZXN0X3Vsb25nX3R1bmFibGUKK1NSQ1M9CXRlc3RfdWxvbmdfdHVuYWJsZS5jCisKKy5pbmNsdWRl IDxic2Qua21vZC5taz4KSW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvdWxvbmcvdGVz dF91bG9uZ190dW5hYmxlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdG9vbHMvcmVncmVzc2lvbi90dW5hYmxl cy91bG9uZy90ZXN0X3Vsb25nX3R1bmFibGUuYwkocmV2aXNpb24gMCkKKysrIHRvb2xzL3JlZ3Jl c3Npb24vdHVuYWJsZXMvdWxvbmcvdGVzdF91bG9uZ190dW5hYmxlLmMJKHJldmlzaW9uIDApCkBA IC0wLDAgKzEsMzEgQEAKKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxzeXMvdHlw ZXMuaD4KKyNpbmNsdWRlIDxzeXMvcHJvYy5oPgorI2luY2x1ZGUgPHN5cy9tb2R1bGUuaD4KKyNp bmNsdWRlIDxzeXMva2VybmVsLmg+CisjaW5jbHVkZSA8c3lzL3N5c3RtLmg+CisKKyNkZWZpbmUg TU9EVUxFX05BTUUJInRlc3RfdWxvbmdfdHVuYWJsZSIKKworc3RhdGljIHVuc2lnbmVkIGxvbmcg dHVuYWJsZSA9IDA7CisKK1RVTkFCTEVfVUxPTkcoInRlc3RfdWxvbmdfdHVuYWJsZS50dW5hYmxl IiwgJnR1bmFibGUpOworCitzdGF0aWMgaW50Citsb2FkIChtb2R1bGVfdCBtLCBpbnQgd2hhdCwg dm9pZCAqYXJnKQoreworCXN3aXRjaCAod2hhdCkgeworCWNhc2UgTU9EX0xPQUQ6CisJCXByaW50 ZigiJXM6ICVsdVxuIiwgTU9EVUxFX05BTUUsIHR1bmFibGUpOworCQlicmVhazsKKwl9CisJcmV0 dXJuICgwKTsKK30KKworc3RhdGljIG1vZHVsZWRhdGFfdCB0ZXN0X3Vsb25nX3R1bmFibGVfbW9k ID0geworCU1PRFVMRV9OQU1FLAorCWxvYWQsCit9OworREVDTEFSRV9NT0RVTEUodGVzdF91bG9u Z190dW5hYmxlLCB0ZXN0X3Vsb25nX3R1bmFibGVfbW9kLCBTSV9TVUJfS0xELAorICAgIFNJX09S REVSX0FOWSk7CitNT0RVTEVfVkVSU0lPTih0ZXN0X3Vsb25nX3R1bmFibGUsIDEpOwpJbmRleDog dG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9zdWZmaXgvdGVzdF90dW5hYmxlX3N1ZmZpeGVzLmMK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0gdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9zdWZmaXgvdGVzdF90dW5h YmxlX3N1ZmZpeGVzLmMJKHJldmlzaW9uIDApCisrKyB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVz L3N1ZmZpeC90ZXN0X3R1bmFibGVfc3VmZml4ZXMuYwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwz MSBAQAorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2lu Y2x1ZGUgPHN5cy9wcm9jLmg+CisjaW5jbHVkZSA8c3lzL21vZHVsZS5oPgorI2luY2x1ZGUgPHN5 cy9rZXJuZWwuaD4KKyNpbmNsdWRlIDxzeXMvc3lzdG0uaD4KKworI2RlZmluZSBNT0RVTEVfTkFN RQkidGVzdF90dW5hYmxlX3N1ZmZpeGVzIgorCitzdGF0aWMgbG9uZyB0dW5hYmxlID0gMDsKKwor VFVOQUJMRV9MT05HKCJ0ZXN0X3R1bmFibGVfc3VmZml4ZXMudHVuYWJsZSIsICZ0dW5hYmxlKTsK Kworc3RhdGljIGludAorbG9hZCAoc3RydWN0IG1vZHVsZSAqbSwgaW50IHdoYXQsIHZvaWQgKmFy ZykKK3sKKwlzd2l0Y2ggKHdoYXQpIHsKKwljYXNlIE1PRF9MT0FEOgorCQlwcmludGYoIiVzOiAl bGRcbiIsIE1PRFVMRV9OQU1FLCB0dW5hYmxlKTsKKwkJYnJlYWs7CisJfQorCXJldHVybiAoMCk7 Cit9CisKK3N0YXRpYyBtb2R1bGVkYXRhX3QgdGVzdF90dW5hYmxlX3N1ZmZpeGVzX21vZCA9IHsK KwlNT0RVTEVfTkFNRSwKKwlsb2FkLAorfTsKK0RFQ0xBUkVfTU9EVUxFKHRlc3RfdHVuYWJsZV9z dWZmaXhlcywgdGVzdF90dW5hYmxlX3N1ZmZpeGVzX21vZCwgU0lfU1VCX0tMRCwKKyAgICBTSV9P UkRFUl9BTlkpOworTU9EVUxFX1ZFUlNJT04odGVzdF90dW5hYmxlX3N1ZmZpeGVzLCAxKTsKSW5k ZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc3VmZml4L01ha2VmaWxlCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc3VmZml4L01ha2VmaWxlCShyZXZpc2lvbiAw KQorKysgdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9zdWZmaXgvTWFrZWZpbGUJKHJldmlzaW9u IDApCkBAIC0wLDAgKzEsNCBAQAorS01PRD0JdGVzdF90dW5hYmxlX3N1ZmZpeGVzCitTUkNTPQl0 ZXN0X3R1bmFibGVfc3VmZml4ZXMuYworCisuaW5jbHVkZSA8YnNkLmttb2QubWs+CkluZGV4OiB0 b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3N1ZmZpeC90ZXN0X3R1bmFibGVfc3VmZml4ZXMuc2gK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0gdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9zdWZmaXgvdGVzdF90dW5h YmxlX3N1ZmZpeGVzLnNoCShyZXZpc2lvbiAwKQorKysgdG9vbHMvcmVncmVzc2lvbi90dW5hYmxl cy9zdWZmaXgvdGVzdF90dW5hYmxlX3N1ZmZpeGVzLnNoCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx LDQxIEBACisjIS9iaW4vc2gKKyMKKyMgRXhwZWN0ZWQgdmFsdWVzOgorIyAodW5zZXQpICAgOiAg ICAgICAgICAgMAorIyAgICAgICAgIC0xOiAgICAgICAgICAtMQorIyAgICAgICAgLTFnOiAgICAg LTEwMjReMworIyAgICAgICAgLTFHOiAgICAgLTEwMjReMyAoc2FtZSBhcyAxZykgCisjICAgICAg ICAtMWs6ICAgICAgIC0xMDI0CisjICAgICAgICAtMUs6ICAgICAgIC0xMDI0IChzYW1lIGFzIDFL KQorIyAgICAgICAgLTFtOiAgICAgLTEwMjReMgorIyAgICAgICAgLTFNOiAgICAgLTEwMjReMiAo c2FtZSBhcyAxbSkKKyMgICAgICAgIC0xdDogICAgIC0xMDI0XjQKKyMgICAgICAgIC0xVDogICAg IC0xMDI0XjQgKHNhbWUgYXMgMXQpCisjICAgICAgICAtMXo6ICAgICAgICAgICAwIChyZWplY3Qp CisjICAgICAgICAgIDE6ICAgICAgICAgICAxCisjICAgICAgICAgMWc6ICAgICAgMTAyNF4zCisj ICAgICAgICAgMUc6ICAgICAgMTAyNF4zIChzYW1lIGFzIDFnKSAKKyMgICAgICAgICAxazogICAg ICAgIDEwMjQKKyMgICAgICAgICAxSzogICAgICAgIDEwMjQgKHNhbWUgYXMgMUspCisjICAgICAg ICAgMW06ICAgICAgMTAyNF4yCisjICAgICAgICAgMU06ICAgICAgMTAyNF4yIChzYW1lIGFzIDFt KQorIyAgICAgICAgIDF0OiAgICAgIDEwMjReNAorIyAgICAgICAgIDFUOiAgICAgIDEwMjReNCAo c2FtZSBhcyAxdCkKKyMgICAgICAgICAxejogICAgICAgICAgIDAgKHJlamVjdCkKKyMgICAgICAg ICAxVDogICAgICAgICAgIDAgKHJlamVjdCkKKworTU9ETkFNRT0iJChiYXNlbmFtZSAiJDAiIC5z aCkiCisKK3Rlc3RfbW9kdWxlKCkgeworCWtsZGxvYWQgLi8kTU9ETkFNRS5rbworCWtsZHVubG9h ZCAuLyRNT0ROQU1FLmtvCit9CisKK2tlbnYgLXUgJE1PRE5BTUUudHVuYWJsZSAyPi9kZXYvbnVs bAordGVzdF9tb2R1bGUKK2ZvciBpIGluIC0xIDAgMTsgZG8KKwlmb3IgaiBpbiAnJyBnIEcgayBL IG0gTSB0IFQgeiBaOyBkbworCQlrZW52ICRNT0ROQU1FLnR1bmFibGU9IiRpJGoiCisJCXRlc3Rf bW9kdWxlCisJZG9uZQorZG9uZQpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9zdHJp bmcvdGVzdF9zdHJpbmdfdHVuYWJsZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRvb2xzL3JlZ3Jlc3Npb24v dHVuYWJsZXMvc3RyaW5nL3Rlc3Rfc3RyaW5nX3R1bmFibGUuYwkocmV2aXNpb24gMCkKKysrIHRv b2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc3RyaW5nL3Rlc3Rfc3RyaW5nX3R1bmFibGUuYwkocmV2 aXNpb24gMCkKQEAgLTAsMCArMSwzMSBAQAorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1 ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9wcm9jLmg+CisjaW5jbHVkZSA8c3lzL21v ZHVsZS5oPgorI2luY2x1ZGUgPHN5cy9rZXJuZWwuaD4KKyNpbmNsdWRlIDxzeXMvc3lzdG0uaD4K KworI2RlZmluZSBNT0RVTEVfTkFNRQkidGVzdF9zdHJpbmdfdHVuYWJsZSIKKworc3RhdGljIGNo YXIgdHVuYWJsZVsxMF07CisKK1RVTkFCTEVfU1RSKCJ0ZXN0X3N0cmluZ190dW5hYmxlLnR1bmFi bGUiLCB0dW5hYmxlLCBzaXplb2YodHVuYWJsZSkpOworCitzdGF0aWMgaW50Citsb2FkIChtb2R1 bGVfdCBtLCBpbnQgd2hhdCwgdm9pZCAqYXJnKQoreworCXN3aXRjaCAod2hhdCkgeworCWNhc2Ug TU9EX0xPQUQ6CisJCXByaW50ZigiJXM6ICVzXG4iLCBNT0RVTEVfTkFNRSwgdHVuYWJsZSk7CisJ CWJyZWFrOworCX0KKwlyZXR1cm4gKDApOworfQorCitzdGF0aWMgbW9kdWxlZGF0YV90IHRlc3Rf c3RyaW5nX3R1bmFibGVfbW9kID0geworCU1PRFVMRV9OQU1FLAorCWxvYWQsCit9OworREVDTEFS RV9NT0RVTEUodGVzdF9zdHJpbmdfdHVuYWJsZSwgdGVzdF9zdHJpbmdfdHVuYWJsZV9tb2QsIFNJ X1NVQl9LTEQsCisgICAgU0lfT1JERVJfQU5ZKTsKK01PRFVMRV9WRVJTSU9OKHRlc3Rfc3RyaW5n X3R1bmFibGUsIDEpOwpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9zdHJpbmcvdGVz dF9zdHJpbmdfdHVuYWJsZS5zaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFi bGVzL3N0cmluZy90ZXN0X3N0cmluZ190dW5hYmxlLnNoCShyZXZpc2lvbiAwKQorKysgdG9vbHMv cmVncmVzc2lvbi90dW5hYmxlcy9zdHJpbmcvdGVzdF9zdHJpbmdfdHVuYWJsZS5zaAkocmV2aXNp b24gMCkKQEAgLTAsMCArMSwyMiBAQAorIyEvYmluL3NoCisjCisjIEV4cGVjdGVkIHZhbHVlczoK KyMgKHVuc2V0KSAgICAgICAgICAgICAgOiAgICAgICAgICAiIgorIyAiIiAgICAgICAgICAgICAg ICAgICA6ICAgICAgICAgICIiCisjIGFzZGYxMjM0ICAgICAgICAgICAgIDogICAgYXNkZjEyMzQK KyMgY2hhcmFjdGVyICAgICAgICAgICAgOiAgIGNoYXJhY3RlcgorIyBhc29ydG9mbG9uZ2lzaHN0 cmluZyA6ICAgYXNvcnRvZmxvCisjCisKK01PRE5BTUU9IiQoYmFzZW5hbWUgIiQwIiAuc2gpIgor Cit0ZXN0X21vZHVsZSgpIHsKKwlrbGRsb2FkIC4vJE1PRE5BTUUua28KKwlrbGR1bmxvYWQgLi8k TU9ETkFNRS5rbworfQorCit0ZXN0X21vZHVsZQorZm9yIGkgaW4gIiIgYXNkZjEyMzQgY2hhcmFj dGVyIGFzb3J0b2Zsb25naXNoc3RyaW5nOyBkbworCWtlbnYgJE1PRE5BTUUudHVuYWJsZT0iJGki CisJdGVzdF9tb2R1bGUKK2RvbmUKSW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc3Ry aW5nL01ha2VmaWxlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc3Ry aW5nL01ha2VmaWxlCShyZXZpc2lvbiAwKQorKysgdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9z dHJpbmcvTWFrZWZpbGUJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorS01PRD0JdGVzdF9z dHJpbmdfdHVuYWJsZQorU1JDUz0JdGVzdF9zdHJpbmdfdHVuYWJsZS5jCisKKy5pbmNsdWRlIDxi c2Qua21vZC5taz4KSW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc2l6ZS90ZXN0X3Np emVfdHVuYWJsZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc2l6 ZS90ZXN0X3NpemVfdHVuYWJsZS5jCShyZXZpc2lvbiAwKQorKysgdG9vbHMvcmVncmVzc2lvbi90 dW5hYmxlcy9zaXplL3Rlc3Rfc2l6ZV90dW5hYmxlLmMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs MzEgQEAKKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNp bmNsdWRlIDxzeXMvcHJvYy5oPgorI2luY2x1ZGUgPHN5cy9tb2R1bGUuaD4KKyNpbmNsdWRlIDxz eXMva2VybmVsLmg+CisjaW5jbHVkZSA8c3lzL3N5c3RtLmg+CisKKyNkZWZpbmUgTU9EVUxFX05B TUUJInRlc3Rfc2l6ZV90dW5hYmxlIgorCitzdGF0aWMgc2l6ZV90IHR1bmFibGUgPSAwOworCitU VU5BQkxFX1NJWkUoInRlc3Rfc2l6ZV90dW5hYmxlLnR1bmFibGUiLCAmdHVuYWJsZSk7CisKK3N0 YXRpYyBpbnQKK2xvYWQgKG1vZHVsZV90IG0sIGludCB3aGF0LCB2b2lkICphcmcpCit7CisJc3dp dGNoICh3aGF0KSB7CisJY2FzZSBNT0RfTE9BRDoKKwkJcHJpbnRmKCIlczogJXp1XG4iLCBNT0RV TEVfTkFNRSwgdHVuYWJsZSk7CisJCWJyZWFrOworCX0KKwlyZXR1cm4gKDApOworfQorCitzdGF0 aWMgbW9kdWxlZGF0YV90IHRlc3Rfc2l6ZV90dW5hYmxlX21vZCA9IHsKKwlNT0RVTEVfTkFNRSwK Kwlsb2FkLAorfTsKK0RFQ0xBUkVfTU9EVUxFKHRlc3Rfc2l6ZV90dW5hYmxlLCB0ZXN0X3NpemVf dHVuYWJsZV9tb2QsIFNJX1NVQl9LTEQsCisgICAgU0lfT1JERVJfQU5ZKTsKK01PRFVMRV9WRVJT SU9OKHRlc3Rfc2l6ZV90dW5hYmxlLCAxKTsKSW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJs ZXMvc2l6ZS90ZXN0X3NpemVfdHVuYWJsZS5zaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNz aW9uL3R1bmFibGVzL3NpemUvdGVzdF9zaXplX3R1bmFibGUuc2gJKHJldmlzaW9uIDApCisrKyB0 b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3NpemUvdGVzdF9zaXplX3R1bmFibGUuc2gJKHJldmlz aW9uIDApCkBAIC0wLDAgKzEsMzggQEAKKyMhL2Jpbi9zaAorIworIyBFeHBlY3RlZCB2YWx1ZXM6 CisjICh1bnNldCkgICAgOiAgICAgICAgICAgMAorIyAgICAgIC0xICAgIDogICBVTE9OR19NQVgK KyMgICAgICAgMCAgICA6ICAgICAgICAgICAwCisjICAgICAgNDIgICAgOiAgICAgICAgICA0Mgor IyBhc2RmMTIzNCAgIDogICAgICAgICAgIDAgKHJlamVjdCkKKyMgTE9OR19NQVgrMSA6ICBMT05H X01BWCsxCisjIFVMT05HX01BWC0xOiBVTE9OR19NQVgtMQorIyBVTE9OR19NQVgrMTogICBVTE9O R19NQVgKKyMKKworTU9ETkFNRT0iJChiYXNlbmFtZSAiJDAiIC5zaCkiCisKK3Rlc3RfbW9kdWxl KCkgeworCWtsZGxvYWQgLi8kTU9ETkFNRS5rbworCWtsZHVubG9hZCAuLyRNT0ROQU1FLmtvCit9 CisKK2Nhc2UgIiQoJChkaXJuYW1lICIkMCIpLy4uL3Rvb2xzL2dldHdvcmRzaXplKSIgaW4KKzMy KQorCUxPTkdfTUFYX1BMVVNfMT0yMTQ3NDgzNjQ5CisJVUxPTkdfTUFYX01JTlVTXzE9NDI5NDk2 NzI5NQorCVVMT05HX01BWF9QTFVTXzE9NDI5NDk2NzI5NworCTs7Cis2NCkKKwlMT05HX01BWF9Q TFVTXzE9OTIyMzM3MjAzNjg1NDc3NTgwOAorCVVMT05HX01BWF9NSU5VU18xPTE4NDQ2NzQ0MDcz NzA5NTUxNjE0CisJVUxPTkdfTUFYX1BMVVNfMT0xODQ0Njc0NDA3MzcwOTU1MTYxNgorCTs7Citl c2FjCitrZW52IC11ICRNT0ROQU1FLnR1bmFibGUgMj4vZGV2L251bGwKK3Rlc3RfbW9kdWxlCitm b3IgaSBpbiAtMSAwIDQyIGFzZGYxMjM0ICRMT05HX01BWF9QTFVTXzEgJFVMT05HX01BWF9NSU5V U18xICRVTE9OR19NQVhfUExVU18xOyBkbworCWtlbnYgJE1PRE5BTUUudHVuYWJsZT0iJGkiCisJ dGVzdF9tb2R1bGUKK2RvbmUKSW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc2l6ZS9N YWtlZmlsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3NpemUvTWFr ZWZpbGUJKHJldmlzaW9uIDApCisrKyB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3NpemUvTWFr ZWZpbGUJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorS01PRD0JdGVzdF9zaXplX3R1bmFi bGUKK1NSQ1M9CXRlc3Rfc2l6ZV90dW5hYmxlLmMKKworLmluY2x1ZGUgPGJzZC5rbW9kLm1rPgpJ bmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9xdWFkL3Rlc3RfcXVhZF90dW5hYmxlLmMK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0gdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9xdWFkL3Rlc3RfcXVhZF90 dW5hYmxlLmMJKHJldmlzaW9uIDApCisrKyB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3F1YWQv dGVzdF9xdWFkX3R1bmFibGUuYwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMSBAQAorI2luY2x1 ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9w cm9jLmg+CisjaW5jbHVkZSA8c3lzL21vZHVsZS5oPgorI2luY2x1ZGUgPHN5cy9rZXJuZWwuaD4K KyNpbmNsdWRlIDxzeXMvc3lzdG0uaD4KKworI2RlZmluZSBNT0RVTEVfTkFNRQkidGVzdF9xdWFk X3R1bmFibGUiCisKK3N0YXRpYyBxdWFkX3QgdHVuYWJsZSA9IDA7CisKK1RVTkFCTEVfUVVBRCgi dGVzdF9xdWFkX3R1bmFibGUudHVuYWJsZSIsICZ0dW5hYmxlKTsKKworc3RhdGljIGludAorbG9h ZCAobW9kdWxlX3QgbSwgaW50IHdoYXQsIHZvaWQgKmFyZykKK3sKKwlzd2l0Y2ggKHdoYXQpIHsK KwljYXNlIE1PRF9MT0FEOgorCQlwcmludGYoIiVzOiAlbGRcbiIsIE1PRFVMRV9OQU1FLCB0dW5h YmxlKTsKKwkJYnJlYWs7CisJfQorCXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBtb2R1bGVkYXRh X3QgdGVzdF9xdWFkX3R1bmFibGVfbW9kID0geworCU1PRFVMRV9OQU1FLAorCWxvYWQsCit9Owor REVDTEFSRV9NT0RVTEUodGVzdF9xdWFkX3R1bmFibGUsIHRlc3RfcXVhZF90dW5hYmxlX21vZCwg U0lfU1VCX0tMRCwKKyAgICBTSV9PUkRFUl9BTlkpOworTU9EVUxFX1ZFUlNJT04odGVzdF9xdWFk X3R1bmFibGUsIDEpOwpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9xdWFkL3Rlc3Rf cXVhZF90dW5hYmxlLnNoCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMv cXVhZC90ZXN0X3F1YWRfdHVuYWJsZS5zaAkocmV2aXNpb24gMCkKKysrIHRvb2xzL3JlZ3Jlc3Np b24vdHVuYWJsZXMvcXVhZC90ZXN0X3F1YWRfdHVuYWJsZS5zaAkocmV2aXNpb24gMCkKQEAgLTAs MCArMSw0MCBAQAorIyEvYmluL3NoCisjCisjIEV4cGVjdGVkIHZhbHVlczoKKyMgKHVuc2V0KSAg ICA6ICAgICAgICAgICAwCisjICAgICAgIDAgICAgOiAgICAgICAgICAgMAorIyAgICAgIDQyICAg IDogICAgICAgICAgNDIKKyMgYXNkZjEyMzQgICA6ICAgICAgICAgICAwIChyZWplY3QpCisjIExP TkdfTUlOLTEgOiAgTE9OR19NSU4KKyMgTE9OR19NSU4rMSA6ICBMT05HX01JTisxCisjIExPTkdf TUFYLTEgOiAgTE9OR19NQVgtMQorIyBMT05HX01BWCsxIDogIExPTkdfTUFYCisjCisKK01PRE5B TUU9IiQoYmFzZW5hbWUgIiQwIiAuc2gpIgorCit0ZXN0X21vZHVsZSgpIHsKKwlrbGRsb2FkIC4v JE1PRE5BTUUua28KKwlrbGR1bmxvYWQgLi8kTU9ETkFNRS5rbworfQorCitjYXNlICIkKCQoZGly bmFtZSAiJDAiKS8uLi90b29scy9nZXR3b3Jkc2l6ZSkiIGluCiszMikKKwlMT05HX01JTl9NSU5V U18xPSItMjE0NzQ4MzY0OSIKKwlMT05HX01JTl9QTFVTXzE9Ii0yMTQ3NDgzNjQ3IgorCUxPTkdf TUFYX01JTlVTXzE9MjE0NzQ4MzY0NworCUxPTkdfTUFYX1BMVVNfMT0yMTQ3NDgzNjQ5CisJOzsK KzY0KQorCUxPTkdfTUlOX01JTlVTXzE9Ii05MjIzMzcyMDM2ODU0Nzc1ODA5IgorCUxPTkdfTUlO X1BMVVNfMT0iLTkyMjMzNzIwMzY4NTQ3NzU4MDciCisJTE9OR19NQVhfTUlOVVNfMT05MjIzMzcy MDM2ODU0Nzc1ODA2CisJTE9OR19NQVhfUExVU18xPTkyMjMzNzIwMzY4NTQ3NzU4MDgKKwk7Owor ZXNhYwora2VudiAtdSAkTU9ETkFNRS50dW5hYmxlIDI+L2Rldi9udWxsCit0ZXN0X21vZHVsZQor Zm9yIGkgaW4gMCA0MiBhc2RmMTIzNCAkTE9OR19NSU5fTUlOVVNfMSAkTE9OR19NSU5fUExVU18x ICRMT05HX01BWF9NSU5VU18xICRMT05HX01BWF9QTFVTXzEgOyBkbworCWtlbnYgJE1PRE5BTUUu dHVuYWJsZT0iJGkiCisJdGVzdF9tb2R1bGUKK2RvbmUKSW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24v dHVuYWJsZXMvcXVhZC9NYWtlZmlsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1 bmFibGVzL3F1YWQvTWFrZWZpbGUJKHJldmlzaW9uIDApCisrKyB0b29scy9yZWdyZXNzaW9uL3R1 bmFibGVzL3F1YWQvTWFrZWZpbGUJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorS01PRD0J dGVzdF9xdWFkX3R1bmFibGUKK1NSQ1M9CXRlc3RfcXVhZF90dW5hYmxlLmMKKworLmluY2x1ZGUg PGJzZC5rbW9kLm1rPgpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9pbnQvdGVzdF9p bnRfdHVuYWJsZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvaW50 L3Rlc3RfaW50X3R1bmFibGUuYwkocmV2aXNpb24gMCkKKysrIHRvb2xzL3JlZ3Jlc3Npb24vdHVu YWJsZXMvaW50L3Rlc3RfaW50X3R1bmFibGUuYwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMSBA QAorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1 ZGUgPHN5cy9wcm9jLmg+CisjaW5jbHVkZSA8c3lzL2tlcm5lbC5oPgorI2luY2x1ZGUgPHN5cy9z eXN0bS5oPgorI2luY2x1ZGUgPHN5cy9tb2R1bGUuaD4KKworI2RlZmluZSBNT0RVTEVfTkFNRQki dGVzdF9pbnRfdHVuYWJsZSIKKworc3RhdGljIGludCB0dW5hYmxlID0gMDsKKworVFVOQUJMRV9J TlQoInRlc3RfaW50X3R1bmFibGUudHVuYWJsZSIsICZ0dW5hYmxlKTsKKworc3RhdGljIGludAor bG9hZCAobW9kdWxlX3QgbSwgaW50IHdoYXQsIHZvaWQgKmFyZykKK3sKKwlzd2l0Y2ggKHdoYXQp IHsKKwljYXNlIE1PRF9MT0FEOgorCQlwcmludGYoIiVzOiAlZFxuIiwgTU9EVUxFX05BTUUsIHR1 bmFibGUpOworCQlicmVhazsKKwl9CisJcmV0dXJuICgwKTsKK30KKworc3RhdGljIG1vZHVsZWRh dGFfdCB0ZXN0X2ludF90dW5hYmxlX21vZCA9IHsKKwlNT0RVTEVfTkFNRSwKKwlsb2FkLAorfTsK K0RFQ0xBUkVfTU9EVUxFKHRlc3RfaW50X3R1bmFibGUsIHRlc3RfaW50X3R1bmFibGVfbW9kLCBT SV9TVUJfS0xELAorICAgIFNJX09SREVSX0FOWSk7CitNT0RVTEVfVkVSU0lPTih0ZXN0X2ludF90 dW5hYmxlLCAxKTsKSW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvaW50L3Rlc3RfaW50 X3R1bmFibGUuc2gKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0gdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9pbnQv dGVzdF9pbnRfdHVuYWJsZS5zaAkocmV2aXNpb24gMCkKKysrIHRvb2xzL3JlZ3Jlc3Npb24vdHVu YWJsZXMvaW50L3Rlc3RfaW50X3R1bmFibGUuc2gJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzEg QEAKKyMhL2Jpbi9zaAorIworIyBFeHBlY3RlZCB2YWx1ZXM6CisjICh1bnNldCkgICA6ICAgICAg ICAgICAwCisjICAgICAgLTEgICA6ICAgICAgICAgIC0xCisjICAgICAgIDAgICA6ICAgICAgICAg ICAwCisjICAgICAgNDIgICA6ICAgICAgICAgIDQyCisjIGFzZGYxMjM0ICA6ICAgICAgICAgICAw IChyZWplY3QpCisjIElOVF9NSU4rMSA6ICAgSU5UX01JTisxCisjIElOVF9NSU4tMSA6ICAgICAg ICAgICAwIChyZWplY3QpCisjIElOVF9NQVgtMSA6ICAgSU5UX01BWC0xCisjIElOVF9NQVgrMSA6 ICAgICAgICAgICAwIChyZWplY3QpCisjCisKK01PRE5BTUU9IiQoYmFzZW5hbWUgIiQwIiAuc2gp IgorCit0ZXN0X21vZHVsZSgpIHsKKwlrbGRsb2FkIC4vJE1PRE5BTUUua28KKwlrbGR1bmxvYWQg Li8kTU9ETkFNRS5rbworfQorCitJTlRfTUlOX1BMVVNfT05FPS0yMTQ3NDgzNjQ3CitJTlRfTUlO X01JTlVTX09ORT0tMjE0NzQ4MzY0OQorSU5UX01BWF9NSU5VU19PTkU9MjE0NzQ4MzY0NgorSU5U X01BWF9QTFVTX09ORT0yMTQ3NDgzNjQ4CitrZW52IC11ICRNT0ROQU1FLnR1bmFibGUgMj4vZGV2 L251bGwKK3Rlc3RfbW9kdWxlCitmb3IgaSBpbiAtMSAwIDQyIGFzZGYxMjM0ICRJTlRfTUlOX1BM VVNfT05FICRJTlRfTUlOX01JTlVTX09ORSAkSU5UX01BWF9NSU5VU19PTkUgJElOVF9NQVhfUExV U19PTkU7IGRvCisJa2VudiAkTU9ETkFNRS50dW5hYmxlPSIkaSIKKwl0ZXN0X21vZHVsZQorZG9u ZQpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9pbnQvTWFrZWZpbGUKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9pbnQvTWFrZWZpbGUJKHJldmlzaW9uIDAp CisrKyB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL2ludC9NYWtlZmlsZQkocmV2aXNpb24gMCkK QEAgLTAsMCArMSw0IEBACitLTU9EPQl0ZXN0X2ludF90dW5hYmxlCitTUkNTPQl0ZXN0X2ludF90 dW5hYmxlLmMKKworLmluY2x1ZGUgPGJzZC5rbW9kLm1rPgpJbmRleDogdG9vbHMvcmVncmVzc2lv bi90dW5hYmxlcy9NYWtlZmlsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFi bGVzL01ha2VmaWxlCShyZXZpc2lvbiAwKQorKysgdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9N YWtlZmlsZQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorU1VCRElSPQkJdG9vbHMJCVwK KwkJaW50IHVpbnQJXAorCQlsb25nIHVsb25nCVwKKwkJcG9pbnRlcgkJXAorCQlxdWFkIHVxdWFk CVwKKwkJc2l6ZQkJXAorCQlzdHJpbmcJCVwKKwkJc3VmZml4CQlcCisKKy5pbmNsdWRlIDxic2Qu c3ViZGlyLm1rPgo= --0016364c7f13b16b8304935533e3--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTimEejt2Gd%2BQEiGWXXsJfpUUY8ayygkMP48PcYpj>