Re: [patch 12/18] ptrace, treewide: Rename ptrace_report_syscall_entry() to ptrace_report_syscall_permit_entry()
Radu Rendec <[email protected]> Thu, 09 Jul 2026 13:03:28 -0400
| Newsgroups | gmane.linux.ports.riscv,gmane.linux.kernel,gmane.linux.ports.alpha,gmane.linux.kernel.arc,gmane.linux.ports.arm.kernel,gmane.linux.ports.hexagon,gmane.linux.ports.mips,gmane.linux.ports.parisc,gmane.linux.ports.sh.devel,gmane.linux.ports.sparc,gmane.linux.uml.devel,gmane.linux.kernel.cross-arch,gmane.linux.ports.ppc64.devel,gmane.linux.documentation |
|---|---|
| Message-ID | <[email protected]> |
T24gVHVlLCAyMDI2LTA3LTA3IGF0IDIxOjA2ICswMjAwLCBUaG9tYXMgR2xlaXhuZXIgd3JvdGU6 Cj4gVGhlIHJldHVybiB2YWx1ZSBvZiB0aGF0IGZ1bmN0aW9uIGlzIGJvb2xlYW4gYW5kIHRlbGxz IHRoZSBjYWxsZXIgd2hldGhlcgo+IHRvIHBlcm1pdCB0aGUgc3lzY2FsbCBwcm9jZXNzaW5nIG9y IG5vdC4KPiAKPiBSZW5hbWUgdGhlIGZ1bmN0aW9uIHNvIHRoZSBwdXJwb3NlIGlzIGNsZWFyIGFu ZCBtYWtlIHRoZSByZXR1cm4gdHlwZSBib29sLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFRob21hcyBH bGVpeG5lciA8dGdseEBrZXJuZWwub3JnPgo+IENjOiBBcm5kIEJlcmdtYW5uIDxhcm5kQGFybmRi LmRlPgo+IENjOiBPbGVnIE5lc3Rlcm92IDxvbGVnQHJlZGhhdC5jb20+Cj4gQ2M6IFJpY2hhcmQg SGVuZGVyc29uIDxyaWNoYXJkLmhlbmRlcnNvbkBsaW5hcm8ub3JnPgo+IENjOiBWaW5lZXQgR3Vw dGEgPHZndXB0YUBrZXJuZWwub3JnPgo+IENjOiBSdXNzZWxsIEtpbmcgPGxpbnV4QGFybWxpbnV4 Lm9yZy51az4KPiBDYzogQ2F0YWxpbiBNYXJpbmFzIDxjYXRhbGluLm1hcmluYXNAYXJtLmNvbT4K PiBDYzogV2lsbCBEZWFjb24gPHdpbGxAa2VybmVsLm9yZz4KPiBDYzogR3VvIFJlbiA8Z3VvcmVu QGtlcm5lbC5vcmc+Cj4gQ2M6IEJyaWFuIENhaW4gPGJjYWluQGtlcm5lbC5vcmc+Cj4gQ2M6IEdl ZXJ0IFV5dHRlcmhvZXZlbiA8Z2VlcnRAbGludXgtbTY4ay5vcmc+Cj4gQ2M6IE1pY2hhbCBTaW1l ayA8bW9uc3RyQG1vbnN0ci5ldT4KPiBDYzogVGhvbWFzIEJvZ2VuZG9lcmZlciA8dHNib2dlbmRA YWxwaGEuZnJhbmtlbi5kZT4KPiBDYzogRGluaCBOZ3V5ZW4gPGRpbmd1eWVuQGtlcm5lbC5vcmc+ Cj4gQ2M6IEhlbGdlIERlbGxlciA8ZGVsbGVyQGdteC5kZT4KPiBDYzogWW9zaGlub3JpIFNhdG8g PHlzYXRvQHVzZXJzLnNvdXJjZWZvcmdlLmpwPgo+IENjOiAiRGF2aWQgUy4gTWlsbGVyIiA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KPiBDYzogQW5kcmVhcyBMYXJzc29uIDxhbmRyZWFzQGdhaXNsZXIu Y29tPgo+IENjOiBDaHJpcyBaYW5rZWwgPGNocmlzQHphbmtlbC5uZXQ+Cj4gQ2M6IGxpbnV4LWFs cGhhQHZnZXIua2VybmVsLm9yZwo+IENjOiBsaW51eC1zbnBzLWFyY0BsaXN0cy5pbmZyYWRlYWQu b3JnCj4gQ2M6IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwo+IENjOiBsaW51 eC1jc2t5QHZnZXIua2VybmVsLm9yZwo+IENjOiBsaW51eC1oZXhhZ29uQHZnZXIua2VybmVsLm9y Zwo+IENjOiBsaW51eC1tNjhrQGxpc3RzLmxpbnV4LW02OGsub3JnCj4gQ2M6IGxpbnV4LW1pcHNA dmdlci5rZXJuZWwub3JnCj4gQ2M6IGxpbnV4LW9wZW5yaXNjQHZnZXIua2VybmVsLm9yZwo+IENj OiBsaW51eC1wYXJpc2NAdmdlci5rZXJuZWwub3JnCj4gQ2M6IGxpbnV4LXNoQHZnZXIua2VybmVs Lm9yZwo+IENjOiBzcGFyY2xpbnV4QHZnZXIua2VybmVsLm9yZwo+IENjOiBsaW51eC11bUBsaXN0 cy5pbmZyYWRlYWQub3JnCj4gQ2M6IGxpbnV4LWFyY2hAdmdlci5rZXJuZWwub3JnCj4gLS0tCj4g wqBhcmNoL2FscGhhL2tlcm5lbC9wdHJhY2UuY8KgwqDCoMKgwqAgfMKgwqDCoCAyICstCj4gwqBh cmNoL2FyYy9rZXJuZWwvcHRyYWNlLmPCoMKgwqDCoMKgwqDCoCB8wqDCoMKgIDIgKy0KPiDCoGFy Y2gvYXJtL2tlcm5lbC9wdHJhY2UuY8KgwqDCoMKgwqDCoMKgIHzCoMKgwqAgMiArLQo+IMKgYXJj aC9hcm02NC9rZXJuZWwvcHRyYWNlLmPCoMKgwqDCoMKgIHzCoMKgwqAgMiArLQo+IMKgYXJjaC9j c2t5L2tlcm5lbC9wdHJhY2UuY8KgwqDCoMKgwqDCoCB8wqDCoMKgIDIgKy0KPiDCoGFyY2gvaGV4 YWdvbi9rZXJuZWwvdHJhcHMuY8KgwqDCoMKgIHzCoMKgwqAgMiArLQo+IMKgYXJjaC9tNjhrL2tl cm5lbC9wdHJhY2UuY8KgwqDCoMKgwqDCoCB8wqDCoMKgIDIgKy0KPiDCoGFyY2gvbWljcm9ibGF6 ZS9rZXJuZWwvcHRyYWNlLmMgfMKgwqDCoCAyICstCj4gwqBhcmNoL21pcHMva2VybmVsL3B0cmFj ZS5jwqDCoMKgwqDCoMKgIHzCoMKgwqAgMiArLQo+IMKgYXJjaC9uaW9zMi9rZXJuZWwvcHRyYWNl LmPCoMKgwqDCoMKgIHzCoMKgwqAgMiArLQo+IMKgYXJjaC9vcGVucmlzYy9rZXJuZWwvcHRyYWNl LmPCoMKgIHzCoMKgwqAgMiArLQo+IMKgYXJjaC9wYXJpc2Mva2VybmVsL3B0cmFjZS5jwqDCoMKg wqAgfMKgwqAgMTAgKysrKy0tLS0tLQo+IMKgYXJjaC9zaC9rZXJuZWwvcHRyYWNlXzMyLmPCoMKg wqDCoMKgIHzCoMKgwqAgMiArLQo+IMKgYXJjaC9zcGFyYy9rZXJuZWwvcHRyYWNlXzMyLmPCoMKg IHzCoMKgwqAgMiArLQo+IMKgYXJjaC9zcGFyYy9rZXJuZWwvcHRyYWNlXzY0LmPCoMKgIHzCoMKg wqAgMiArLQo+IMKgYXJjaC91bS9rZXJuZWwvcHRyYWNlLmPCoMKgwqDCoMKgwqDCoMKgIHzCoMKg wqAgMiArLQo+IMKgYXJjaC94dGVuc2Eva2VybmVsL3B0cmFjZS5jwqDCoMKgwqAgfMKgwqDCoCAy ICstCj4gwqBpbmNsdWRlL2FzbS1nZW5lcmljL3N5c2NhbGwuaMKgwqAgfMKgwqDCoCA0ICsrLS0K PiDCoGluY2x1ZGUvbGludXgvZW50cnktY29tbW9uLmjCoMKgwqAgfMKgwqAgMjUgKysrKysrKysr KysrLS0tLS0tLS0tLS0tLQo+IMKgaW5jbHVkZS9saW51eC9wdHJhY2UuaMKgwqDCoMKgwqDCoMKg wqDCoCB8wqDCoCAxMyArKysrKystLS0tLS0tCj4gwqAyMCBmaWxlcyBjaGFuZ2VkLCA0MCBpbnNl cnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkKPiAKPiAtLS0gYS9hcmNoL2FscGhhL2tlcm5lbC9w dHJhY2UuYwo+ICsrKyBiL2FyY2gvYWxwaGEva2VybmVsL3B0cmFjZS5jCj4gQEAgLTM3NSw3ICsz NzUsNyBAQCBhc21saW5rYWdlIHVuc2lnbmVkIGxvbmcgc3lzY2FsbF90cmFjZV9lCj4gwqAJc3Ry dWN0IHB0X3JlZ3MgKnJlZ3MgPSBjdXJyZW50X3B0X3JlZ3MoKTsKPiDCoAo+IMKgCWlmICh0ZXN0 X3RocmVhZF9mbGFnKFRJRl9TWVNDQUxMX1RSQUNFKSAmJgo+IC0JCXB0cmFjZV9yZXBvcnRfc3lz Y2FsbF9lbnRyeShyZWdzKSkgewo+ICsJCSFwdHJhY2VfcmVwb3J0X3N5c2NhbGxfcGVybWl0X2Vu dHJ5KHJlZ3MpKSB7Cj4gwqAJCXN5c2NhbGxfc2V0X25yKGN1cnJlbnQsIHJlZ3MsIC0xKTsKPiDC oAkJaWYgKHJlZ3MtPnIxOSA9PSAwICYmIHJlZ3MtPnIwID09ICh1bnNpZ25lZCBsb25nKS0xKQo+ IMKgCQkJc3lzY2FsbF9zZXRfcmV0dXJuX3ZhbHVlKGN1cnJlbnQsIHJlZ3MsIC1FTk9TWVMsIDAp Owo+IC0tLSBhL2FyY2gvYXJjL2tlcm5lbC9wdHJhY2UuYwo+ICsrKyBiL2FyY2gvYXJjL2tlcm5l bC9wdHJhY2UuYwo+IEBAIC0zNDIsNyArMzQyLDcgQEAgbG9uZyBhcmNoX3B0cmFjZShzdHJ1Y3Qg dGFza19zdHJ1Y3QgKmNoaQo+IMKgYXNtbGlua2FnZSBpbnQgc3lzY2FsbF90cmFjZV9lbnRlcihz dHJ1Y3QgcHRfcmVncyAqcmVncykKPiDCoHsKPiDCoAlpZiAodGVzdF90aHJlYWRfZmxhZyhUSUZf U1lTQ0FMTF9UUkFDRSkpCj4gLQkJaWYgKHB0cmFjZV9yZXBvcnRfc3lzY2FsbF9lbnRyeShyZWdz KSkKPiArCQlpZiAoIXB0cmFjZV9yZXBvcnRfc3lzY2FsbF9wZXJtaXRfZW50cnkocmVncykpCj4g wqAJCQlyZXR1cm4gVUxPTkdfTUFYOwo+IMKgCj4gwqAjaWZkZWYgQ09ORklHX0hBVkVfU1lTQ0FM TF9UUkFDRVBPSU5UUwo+IC0tLSBhL2FyY2gvYXJtL2tlcm5lbC9wdHJhY2UuYwo+ICsrKyBiL2Fy Y2gvYXJtL2tlcm5lbC9wdHJhY2UuYwo+IEBAIC04NDAsNyArODQwLDcgQEAgc3RhdGljIHZvaWQg cmVwb3J0X3N5c2NhbGwoc3RydWN0IHB0X3JlZwo+IMKgCj4gwqAJaWYgKGRpciA9PSBQVFJBQ0Vf U1lTQ0FMTF9FWElUKQo+IMKgCQlwdHJhY2VfcmVwb3J0X3N5c2NhbGxfZXhpdChyZWdzLCAwKTsK PiAtCWVsc2UgaWYgKHB0cmFjZV9yZXBvcnRfc3lzY2FsbF9lbnRyeShyZWdzKSkKPiArCWVsc2Ug aWYgKCFwdHJhY2VfcmVwb3J0X3N5c2NhbGxfcGVybWl0X2VudHJ5KHJlZ3MpKQo+IMKgCQljdXJy ZW50X3RocmVhZF9pbmZvKCktPmFiaV9zeXNjYWxsID0gLTE7Cj4gwqAKPiDCoAlyZWdzLT5BUk1f aXAgPSBpcDsKPiAtLS0gYS9hcmNoL2FybTY0L2tlcm5lbC9wdHJhY2UuYwo+ICsrKyBiL2FyY2gv YXJtNjQva2VybmVsL3B0cmFjZS5jCj4gQEAgLTIzNzksNyArMjM3OSw3IEBAIHN0YXRpYyBpbnQg cmVwb3J0X3N5c2NhbGxfZW50cnkoc3RydWN0IHAKPiDCoAlpbnQgcmVnbm8sIHJldDsKPiDCoAo+ IMKgCXNhdmVkX3JlZyA9IHB0cmFjZV9zYXZlX3JlZyhyZWdzLCBQVFJBQ0VfU1lTQ0FMTF9FTlRF UiwgJnJlZ25vKTsKPiAtCXJldCA9IHB0cmFjZV9yZXBvcnRfc3lzY2FsbF9lbnRyeShyZWdzKTsK PiArCXJldCA9ICFwdHJhY2VfcmVwb3J0X3N5c2NhbGxfcGVybWl0X2VudHJ5KHJlZ3MpOwo+IMKg CWlmIChyZXQpCj4gwqAJCWZvcmdldF9zeXNjYWxsKHJlZ3MpOwo+IMKgCXJlZ3MtPnJlZ3NbcmVn bm9dID0gc2F2ZWRfcmVnOwo+IC0tLSBhL2FyY2gvY3NreS9rZXJuZWwvcHRyYWNlLmMKPiArKysg Yi9hcmNoL2Nza3kva2VybmVsL3B0cmFjZS5jCj4gQEAgLTMyMCw3ICszMjAsNyBAQCBsb25nIGFy Y2hfcHRyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpCj4gwqBhc21saW5rYWdlIGludCBzeXNj YWxsX3RyYWNlX2VudGVyKHN0cnVjdCBwdF9yZWdzICpyZWdzKQo+IMKgewo+IMKgCWlmICh0ZXN0 X3RocmVhZF9mbGFnKFRJRl9TWVNDQUxMX1RSQUNFKSkKPiAtCQlpZiAocHRyYWNlX3JlcG9ydF9z eXNjYWxsX2VudHJ5KHJlZ3MpKQo+ICsJCWlmICghcHRyYWNlX3JlcG9ydF9zeXNjYWxsX3Blcm1p dF9lbnRyeShyZWdzKSkKPiDCoAkJCXJldHVybiAtMTsKPiDCoAo+IMKgCWlmICghc2VjY29tcF9w ZXJtaXRfc3lzY2FsbCgpKQo+IC0tLSBhL2FyY2gvaGV4YWdvbi9rZXJuZWwvdHJhcHMuYwo+ICsr KyBiL2FyY2gvaGV4YWdvbi9rZXJuZWwvdHJhcHMuYwo+IEBAIC0zNDUsNyArMzQ1LDcgQEAgdm9p ZCBkb190cmFwMChzdHJ1Y3QgcHRfcmVncyAqcmVncykKPiDCoAo+IMKgCQkvKiBhbGxvdyBzdHJh Y2UgdG8gY2F0Y2ggc3lzY2FsbCBhcmdzwqAgKi8KPiDCoAkJaWYgKHVubGlrZWx5KHRlc3RfdGhy ZWFkX2ZsYWcoVElGX1NZU0NBTExfVFJBQ0UpICYmCj4gLQkJCXB0cmFjZV9yZXBvcnRfc3lzY2Fs bF9lbnRyeShyZWdzKSkpCj4gKwkJCSFwdHJhY2VfcmVwb3J0X3N5c2NhbGxfcGVybWl0X2VudHJ5 KHJlZ3MpKSkKPiDCoAkJCXJldHVybjvCoCAvKsKgIHJldHVybiAtRU5PU1lTIHNvbWV3aGVyZT/C oCAqLwo+IMKgCj4gwqAJCS8qIEludGVycnVwdHMgc2hvdWxkIGJlIHJlLWVuYWJsZWQgZm9yIHN5 c2NhbGwgcHJvY2Vzc2luZyAqLwo+IC0tLSBhL2FyY2gvbTY4ay9rZXJuZWwvcHRyYWNlLmMKPiAr KysgYi9hcmNoL202OGsva2VybmVsL3B0cmFjZS5jCj4gQEAgLTI3OSw3ICsyNzksNyBAQCBhc21s aW5rYWdlIGludCBzeXNjYWxsX3RyYWNlX2VudGVyKHZvaWQpCj4gwqAJaW50IHJldCA9IDA7Cj4g wqAKPiDCoAlpZiAodGVzdF90aHJlYWRfZmxhZyhUSUZfU1lTQ0FMTF9UUkFDRSkpCj4gLQkJcmV0 ID0gcHRyYWNlX3JlcG9ydF9zeXNjYWxsX2VudHJ5KHRhc2tfcHRfcmVncyhjdXJyZW50KSk7Cj4g KwkJcmV0ID0gIXB0cmFjZV9yZXBvcnRfc3lzY2FsbF9wZXJtaXRfZW50cnkodGFza19wdF9yZWdz KGN1cnJlbnQpKTsKPiDCoAo+IMKgCWlmICghc2VjY29tcF9wZXJtaXRfc3lzY2FsbCgpKQo+IMKg CQlyZXR1cm4gLTE7Cj4gLS0tIGEvYXJjaC9taWNyb2JsYXplL2tlcm5lbC9wdHJhY2UuYwo+ICsr KyBiL2FyY2gvbWljcm9ibGF6ZS9rZXJuZWwvcHRyYWNlLmMKPiBAQCAtMTM5LDcgKzEzOSw3IEBA IGFzbWxpbmthZ2UgdW5zaWduZWQgbG9uZyBkb19zeXNjYWxsX3RyYWMKPiDCoAlzZWN1cmVfY29t cHV0aW5nX3N0cmljdChyZWdzLT5yMTIpOwo+IMKgCj4gwqAJaWYgKHRlc3RfdGhyZWFkX2ZsYWco VElGX1NZU0NBTExfVFJBQ0UpICYmCj4gLQnCoMKgwqAgcHRyYWNlX3JlcG9ydF9zeXNjYWxsX2Vu dHJ5KHJlZ3MpKQo+ICsJwqDCoMKgICFwdHJhY2VfcmVwb3J0X3N5c2NhbGxfcGVybWl0X2VudHJ5 KHJlZ3MpKQo+IMKgCQkvKgo+IMKgCQkgKiBUcmFjaW5nIGRlY2lkZWQgdGhpcyBzeXNjYWxsIHNo b3VsZCBub3QgaGFwcGVuLgo+IMKgCQkgKiBXZSdsbCByZXR1cm4gYSBib2d1cyBjYWxsIG51bWJl ciB0byBnZXQgYW4gRU5PU1lTCj4gLS0tIGEvYXJjaC9taXBzL2tlcm5lbC9wdHJhY2UuYwo+ICsr KyBiL2FyY2gvbWlwcy9rZXJuZWwvcHRyYWNlLmMKPiBAQCAtMTMyNCw3ICsxMzI0LDcgQEAgYXNt bGlua2FnZSBsb25nIHN5c2NhbGxfdHJhY2VfZW50ZXIoc3RydQo+IMKgCXVzZXJfZXhpdCgpOwo+ IMKgCj4gwqAJaWYgKHRlc3RfdGhyZWFkX2ZsYWcoVElGX1NZU0NBTExfVFJBQ0UpKSB7Cj4gLQkJ aWYgKHB0cmFjZV9yZXBvcnRfc3lzY2FsbF9lbnRyeShyZWdzKSkKPiArCQlpZiAoIXB0cmFjZV9y ZXBvcnRfc3lzY2FsbF9wZXJtaXRfZW50cnkocmVncykpCj4gwqAJCQlyZXR1cm4gLTE7Cj4gwqAJ fQo+IMKgCj4gLS0tIGEvYXJjaC9uaW9zMi9rZXJuZWwvcHRyYWNlLmMKPiArKysgYi9hcmNoL25p b3MyL2tlcm5lbC9wdHJhY2UuYwo+IEBAIC0xMzMsNyArMTMzLDcgQEAgYXNtbGlua2FnZSBpbnQg ZG9fc3lzY2FsbF90cmFjZV9lbnRlcih2bwo+IMKgCWludCByZXQgPSAwOwo+IMKgCj4gwqAJaWYg KHRlc3RfdGhyZWFkX2ZsYWcoVElGX1NZU0NBTExfVFJBQ0UpKQo+IC0JCXJldCA9IHB0cmFjZV9y ZXBvcnRfc3lzY2FsbF9lbnRyeSh0YXNrX3B0X3JlZ3MoY3VycmVudCkpOwo+ICsJCXJldCA9ICFw dHJhY2VfcmVwb3J0X3N5c2NhbGxfcGVybWl0X2VudHJ5KHRhc2tfcHRfcmVncyhjdXJyZW50KSk7 Cj4gwqAKPiDCoAlyZXR1cm4gcmV0Owo+IMKgfQo+IC0tLSBhL2FyY2gvb3BlbnJpc2Mva2VybmVs L3B0cmFjZS5jCj4gKysrIGIvYXJjaC9vcGVucmlzYy9rZXJuZWwvcHRyYWNlLmMKPiBAQCAtMjkz LDcgKzI5Myw3IEBAIGFzbWxpbmthZ2UgbG9uZyBkb19zeXNjYWxsX3RyYWNlX2VudGVyKHMKPiDC oAlsb25nIHJldCA9IDA7Cj4gwqAKPiDCoAlpZiAodGVzdF90aHJlYWRfZmxhZyhUSUZfU1lTQ0FM TF9UUkFDRSkgJiYKPiAtCcKgwqDCoCBwdHJhY2VfcmVwb3J0X3N5c2NhbGxfZW50cnkocmVncykp Cj4gKwnCoMKgwqAgIXB0cmFjZV9yZXBvcnRfc3lzY2FsbF9wZXJtaXRfZW50cnkocmVncykpCj4g wqAJCS8qCj4gwqAJCSAqIFRyYWNpbmcgZGVjaWRlZCB0aGlzIHN5c2NhbGwgc2hvdWxkIG5vdCBo YXBwZW4uCj4gwqAJCSAqIFdlJ2xsIHJldHVybiBhIGJvZ3VzIGNhbGwgbnVtYmVyIHRvIGdldCBh biBFTk9TWVMKPiAtLS0gYS9hcmNoL3BhcmlzYy9rZXJuZWwvcHRyYWNlLmMKPiArKysgYi9hcmNo L3BhcmlzYy9rZXJuZWwvcHRyYWNlLmMKPiBAQCAtMzI2LDcgKzMyNiw3IEBAIGxvbmcgY29tcGF0 X2FyY2hfcHRyYWNlKHN0cnVjdCB0YXNrX3N0cnUKPiDCoGxvbmcgZG9fc3lzY2FsbF90cmFjZV9l bnRlcihzdHJ1Y3QgcHRfcmVncyAqcmVncykKPiDCoHsKPiDCoAlpZiAodGVzdF90aHJlYWRfZmxh ZyhUSUZfU1lTQ0FMTF9UUkFDRSkpIHsKPiAtCQlpbnQgcmMgPSBwdHJhY2VfcmVwb3J0X3N5c2Nh bGxfZW50cnkocmVncyk7Cj4gKwkJYm9vbCBwZXJtaXQgPSBwdHJhY2VfcmVwb3J0X3N5c2NhbGxf cGVybWl0X2VudHJ5KHJlZ3MpOwo+IMKgCj4gwqAJCS8qCj4gwqAJCSAqIEFzIHRyYWNlc3lzX25l eHQgZG9lcyBub3Qgc2V0ICVyMjggdG8gLUVOT1NZUwo+IEBAIC0zMzQsMTIgKzMzNCwxMCBAQCBs b25nIGRvX3N5c2NhbGxfdHJhY2VfZW50ZXIoc3RydWN0IHB0X3JlCj4gwqAJCSAqLwo+IMKgCQly ZWdzLT5nclsyOF0gPSAtRU5PU1lTOwo+IMKgCj4gLQkJaWYgKHJjKSB7Cj4gKwkJaWYgKCFwZXJt aXQpIHsKPiDCoAkJCS8qCj4gLQkJCSAqIEEgbm9uemVybyByZXR1cm4gY29kZSBmcm9tCj4gLQkJ CSAqIHB0cmFjZV9yZXBvcnRfc3lzY2FsbF9lbnRyeSgpIHRlbGxzIHVzCj4gLQkJCSAqIHRvIHBy ZXZlbnQgdGhlIHN5c2NhbGwgZXhlY3V0aW9uLsKgIFNraXAKPiAtCQkJICogdGhlIHN5c2NhbGwg Y2FsbCBhbmQgdGhlIHN5c2NhbGwgcmVzdGFydCBoYW5kbGluZy4KPiArCQkJICogU2tpcCB0aGUg c3lzY2FsbCBjYWxsIGFuZCB0aGUgc3lzY2FsbCByZXN0YXJ0Cj4gKwkJCSAqIGhhbmRsaW5nLgo+ IMKgCQkJICoKPiDCoAkJCSAqIE5vdGUgdGhhdCB0aGUgdHJhY2VyIG1heSBhbHNvIGp1c3QgY2hh bmdlCj4gwqAJCQkgKiByZWdzLT5nclsyMF0gdG8gYW4gaW52YWxpZCBzeXNjYWxsIG51bWJlciwK PiAtLS0gYS9hcmNoL3NoL2tlcm5lbC9wdHJhY2VfMzIuYwo+ICsrKyBiL2FyY2gvc2gva2VybmVs L3B0cmFjZV8zMi5jCj4gQEAgLTQ1NSw3ICs0NTUsNyBAQCBsb25nIGFyY2hfcHRyYWNlKHN0cnVj dCB0YXNrX3N0cnVjdCAqY2hpCj4gwqBhc21saW5rYWdlIGxvbmcgZG9fc3lzY2FsbF90cmFjZV9l bnRlcihzdHJ1Y3QgcHRfcmVncyAqcmVncykKPiDCoHsKPiDCoAlpZiAodGVzdF90aHJlYWRfZmxh ZyhUSUZfU1lTQ0FMTF9UUkFDRSkgJiYKPiAtCcKgwqDCoCBwdHJhY2VfcmVwb3J0X3N5c2NhbGxf ZW50cnkocmVncykpIHsKPiArCcKgwqDCoCAhcHRyYWNlX3JlcG9ydF9zeXNjYWxsX3Blcm1pdF9l bnRyeShyZWdzKSkgewo+IMKgCQlyZWdzLT5yZWdzWzBdID0gLUVOT1NZUzsKPiDCoAkJcmV0dXJu IC0xOwo+IMKgCX0KPiAtLS0gYS9hcmNoL3NwYXJjL2tlcm5lbC9wdHJhY2VfMzIuYwo+ICsrKyBi L2FyY2gvc3BhcmMva2VybmVsL3B0cmFjZV8zMi5jCj4gQEAgLTQ0MSw3ICs0NDEsNyBAQCBhc21s aW5rYWdlIGludCBzeXNjYWxsX3RyYWNlKHN0cnVjdCBwdF9yCj4gwqAJCWlmIChzeXNjYWxsX2V4 aXRfcCkKPiDCoAkJCXB0cmFjZV9yZXBvcnRfc3lzY2FsbF9leGl0KHJlZ3MsIDApOwo+IMKgCQll bHNlCj4gLQkJCXJldCA9IHB0cmFjZV9yZXBvcnRfc3lzY2FsbF9lbnRyeShyZWdzKTsKPiArCQkJ cmV0ID0gIXB0cmFjZV9yZXBvcnRfc3lzY2FsbF9wZXJtaXRfZW50cnkocmVncyk7Cj4gwqAJfQo+ IMKgCj4gwqAJcmV0dXJuIHJldDsKPiAtLS0gYS9hcmNoL3NwYXJjL2tlcm5lbC9wdHJhY2VfNjQu Ywo+ICsrKyBiL2FyY2gvc3BhcmMva2VybmVsL3B0cmFjZV82NC5jCj4gQEAgLTEwOTMsNyArMTA5 Myw3IEBAIGFzbWxpbmthZ2UgaW50IHN5c2NhbGxfdHJhY2VfZW50ZXIoc3RydWMKPiDCoAkJdXNl cl9leGl0KCk7Cj4gwqAKPiDCoAlpZiAodGVzdF90aHJlYWRfZmxhZyhUSUZfU1lTQ0FMTF9UUkFD RSkpCj4gLQkJcmV0ID0gcHRyYWNlX3JlcG9ydF9zeXNjYWxsX2VudHJ5KHJlZ3MpOwo+ICsJCXJl dCA9ICFwdHJhY2VfcmVwb3J0X3N5c2NhbGxfcGVybWl0X2VudHJ5KHJlZ3MpOwo+IMKgCj4gwqAJ aWYgKHVubGlrZWx5KHRlc3RfdGhyZWFkX2ZsYWcoVElGX1NZU0NBTExfVFJBQ0VQT0lOVCkpKQo+ IMKgCQl0cmFjZV9zeXNfZW50ZXIocmVncywgcmVncy0+dV9yZWdzW1VSRUdfRzFdKTsKPiAtLS0g YS9hcmNoL3VtL2tlcm5lbC9wdHJhY2UuYwo+ICsrKyBiL2FyY2gvdW0va2VybmVsL3B0cmFjZS5j Cj4gQEAgLTEzNSw3ICsxMzUsNyBAQCBpbnQgc3lzY2FsbF90cmFjZV9lbnRlcihzdHJ1Y3QgcHRf cmVncyAqCj4gwqAJaWYgKCF0ZXN0X3RocmVhZF9mbGFnKFRJRl9TWVNDQUxMX1RSQUNFKSkKPiDC oAkJcmV0dXJuIDA7Cj4gwqAKPiAtCXJldHVybiBwdHJhY2VfcmVwb3J0X3N5c2NhbGxfZW50cnko cmVncyk7Cj4gKwlyZXR1cm4gIXB0cmFjZV9yZXBvcnRfc3lzY2FsbF9wZXJtaXRfZW50cnkocmVn cyk7Cj4gwqB9Cj4gwqAKPiDCoHZvaWQgc3lzY2FsbF90cmFjZV9sZWF2ZShzdHJ1Y3QgcHRfcmVn cyAqcmVncykKPiAtLS0gYS9hcmNoL3h0ZW5zYS9rZXJuZWwvcHRyYWNlLmMKPiArKysgYi9hcmNo L3h0ZW5zYS9rZXJuZWwvcHRyYWNlLmMKPiBAQCAtNTQ3LDcgKzU0Nyw3IEBAIGludCBkb19zeXNj YWxsX3RyYWNlX2VudGVyKHN0cnVjdCBwdF9yZWcKPiDCoAkJcmVncy0+YXJlZ1syXSA9IC1FTk9T WVM7Cj4gwqAKPiDCoAlpZiAodGVzdF90aHJlYWRfZmxhZyhUSUZfU1lTQ0FMTF9UUkFDRSkgJiYK PiAtCcKgwqDCoCBwdHJhY2VfcmVwb3J0X3N5c2NhbGxfZW50cnkocmVncykpIHsKPiArCcKgwqDC oCAhcHRyYWNlX3JlcG9ydF9zeXNjYWxsX3Blcm1pdF9lbnRyeShyZWdzKSkgewo+IMKgCQlyZWdz LT5hcmVnWzJdID0gLUVOT1NZUzsKPiDCoAkJcmVncy0+c3lzY2FsbCA9IE5PX1NZU0NBTEw7Cj4g wqAJCXJldHVybiAwOwo+IC0tLSBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvc3lzY2FsbC5oCj4gKysr IGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9zeXNjYWxsLmgKPiBAQCAtNTgsOCArNTgsOCBAQCB2b2lk IHN5c2NhbGxfc2V0X25yKHN0cnVjdCB0YXNrX3N0cnVjdCAqCj4gwqAgKgo+IMKgICogSXQncyBv bmx5IHZhbGlkIHRvIGNhbGwgdGhpcyB3aGVuIEB0YXNrIGlzIHN0b3BwZWQgZm9yIHN5c3RlbQo+ IMKgICogY2FsbCBleGl0IHRyYWNpbmcgKGR1ZSB0byAlU1lTQ0FMTF9XT1JLX1NZU0NBTExfVFJB Q0Ugb3IKPiAtICogJVNZU0NBTExfV09SS19TWVNDQUxMX0FVRElUKSwgYWZ0ZXIgcHRyYWNlX3Jl cG9ydF9zeXNjYWxsX2VudHJ5KCkKPiAtICogcmV0dXJuZWQgbm9uemVybyB0byBwcmV2ZW50IHRo ZSBzeXN0ZW0gY2FsbCBmcm9tIHRha2luZyBwbGFjZS4KPiArICogJVNZU0NBTExfV09SS19TWVND QUxMX0FVRElUKSwgYWZ0ZXIgcHRyYWNlX3JlcG9ydF9zeXNjYWxsX3Blcm1pdF9lbnRyeSgpCj4g KyAqIHJldHVybmVkIEZhbHNlIHRvIHByZXZlbnQgdGhlIHN5c3RlbSBjYWxsIGZyb20gdGFraW5n IHBsYWNlLgo+IMKgICoKPiDCoCAqIFRoaXMgcm9sbHMgYmFjayB0aGUgcmVnaXN0ZXIgc3RhdGUg aW4gQHJlZ3Mgc28gaXQncyBhcyBpZiB0aGUKPiDCoCAqIHN5c3RlbSBjYWxsIGluc3RydWN0aW9u IHdhcyBhIG5vLW9wLsKgIFRoZSByZWdpc3RlcnMgY29udGFpbmluZwo+IC0tLSBhL2luY2x1ZGUv bGludXgvZW50cnktY29tbW9uLmgKPiArKysgYi9pbmNsdWRlL2xpbnV4L2VudHJ5LWNvbW1vbi5o Cj4gQEAgLTM4LDIxICszOCwyMiBAQAo+IMKgCQkJCSBTWVNDQUxMX1dPUktfU1lTQ0FMTF9FWElU X1RSQVApCj4gwqAKPiDCoC8qKgo+IC0gKiBhcmNoX3B0cmFjZV9yZXBvcnRfc3lzY2FsbF9lbnRy eSAtIEFyY2hpdGVjdHVyZSBzcGVjaWZpYyBwdHJhY2VfcmVwb3J0X3N5c2NhbGxfZW50cnkoKSB3 cmFwcGVyCj4gKyAqIGFyY2hfcHRyYWNlX3JlcG9ydF9zeXNjYWxsX3Blcm1pdF9lbnRyeSAtIEFy Y2hpdGVjdHVyZSBzcGVjaWZpYyB3cmFwcGVyIGZvcgo+ICsgKgkJCQkJwqDCoMKgwqAgcHRyYWNl X3JlcG9ydF9zeXNjYWxsX3Blcm1pdF9lbnRyeSgpCj4gwqAgKiBAcmVnczogUG9pbnRlciB0byB0 aGUgcmVnaXN0ZXIgc3RhdGUgYXQgc3lzY2FsbCBlbnRyeQo+IMKgICoKPiAtICogSW52b2tlZCBm cm9tIHN5c2NhbGxfdHJhY2VfZW50ZXIoKSB0byB3cmFwIHB0cmFjZV9yZXBvcnRfc3lzY2FsbF9l bnRyeSgpLgo+ICsgKiBJbnZva2VkIGZyb20gc3lzY2FsbF90cmFjZV9lbnRlcigpIHRvIHdyYXAg cHRyYWNlX3JlcG9ydF9zeXNjYWxsX3Blcm1pdF9lbnRyeSgpLgo+IMKgICoKPiAtICogVGhpcyBh bGxvd3MgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIHB0cmFjZV9yZXBvcnRfc3lzY2FsbF9lbnRyeSgp Cj4gKyAqIFRoaXMgYWxsb3dzIGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBwdHJhY2VfcmVwb3J0X3N5 c2NhbGxfcGVybWl0X2VudHJ5KCkKPiDCoCAqIGltcGxlbWVudGF0aW9ucy4gSWYgbm90IGRlZmlu ZWQgYnkgdGhlIGFyY2hpdGVjdHVyZSB0aGlzIGZhbGxzIGJhY2sgdG8KPiAtICogdG8gcHRyYWNl X3JlcG9ydF9zeXNjYWxsX2VudHJ5KCkuCj4gKyAqIHRvIHB0cmFjZV9yZXBvcnRfc3lzY2FsbF9w ZXJtaXRfZW50cnkoKS4KPiDCoCAqLwo+IC1zdGF0aWMgX19hbHdheXNfaW5saW5lIGludCBhcmNo X3B0cmFjZV9yZXBvcnRfc3lzY2FsbF9lbnRyeShzdHJ1Y3QgcHRfcmVncyAqcmVncyk7Cj4gK3N0 YXRpYyBfX2Fsd2F5c19pbmxpbmUgYm9vbCBhcmNoX3B0cmFjZV9yZXBvcnRfc3lzY2FsbF9wZXJt aXRfZW50cnkoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwo+IMKgCj4gLSNpZm5kZWYgYXJjaF9wdHJh Y2VfcmVwb3J0X3N5c2NhbGxfZW50cnkKPiAtc3RhdGljIF9fYWx3YXlzX2lubGluZSBpbnQgYXJj aF9wdHJhY2VfcmVwb3J0X3N5c2NhbGxfZW50cnkoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCj4gKyNp Zm5kZWYgYXJjaF9wdHJhY2VfcmVwb3J0X3N5c2NhbGxfcGVybWl0X2VudHJ5Cj4gK3N0YXRpYyBf X2Fsd2F5c19pbmxpbmUgYm9vbCBhcmNoX3B0cmFjZV9yZXBvcnRfc3lzY2FsbF9wZXJtaXRfZW50 cnkoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCj4gwqB7Cj4gLQlyZXR1cm4gcHRyYWNlX3JlcG9ydF9z eXNjYWxsX2VudHJ5KHJlZ3MpOwo+ICsJcmV0dXJuIHB0cmFjZV9yZXBvcnRfc3lzY2FsbF9wZXJt aXRfZW50cnkocmVncyk7Cj4gwqB9Cj4gwqAjZW5kaWYKPiDCoAo+IEBAIC03Myw4ICs3NCw2IEBA IHN0YXRpYyBpbmxpbmUgdm9pZCBzeXNjYWxsX2VudGVyX2F1ZGl0KHMKPiDCoHN0YXRpYyBfX2Fs d2F5c19pbmxpbmUgbG9uZyBzeXNjYWxsX3RyYWNlX2VudGVyKHN0cnVjdCBwdF9yZWdzICpyZWdz LCB1bnNpZ25lZCBsb25nIHdvcmssCj4gwqAJCQkJCQlsb25nIHN5c2NhbGwpCj4gwqB7Cj4gLQls b25nIHJldCA9IDA7Cj4gLQo+IMKgCS8qCj4gwqAJICogSGFuZGxlIFN5c2NhbGwgVXNlciBEaXNw YXRjaC7CoCBUaGlzIG11c3QgY29tZXMgZmlyc3QsIHNpbmNlCj4gwqAJICogdGhlIEFCSSBoZXJl IGNhbiBiZSBzb21ldGhpbmcgdGhhdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgZm9yCj4gQEAgLTk1LDgg Kzk0LDggQEAgc3RhdGljIF9fYWx3YXlzX2lubGluZSBsb25nIHN5c2NhbGxfdHJhYwo+IMKgCj4g wqAJLyogSGFuZGxlIHB0cmFjZSAqLwo+IMKgCWlmICh3b3JrICYgKFNZU0NBTExfV09SS19TWVND QUxMX1RSQUNFIHwgU1lTQ0FMTF9XT1JLX1NZU0NBTExfRU1VKSkgewo+IC0JCXJldCA9IGFyY2hf cHRyYWNlX3JlcG9ydF9zeXNjYWxsX2VudHJ5KHJlZ3MpOwo+IC0JCWlmIChyZXQgfHwgKHdvcmsg JiBTWVNDQUxMX1dPUktfU1lTQ0FMTF9FTVUpKQo+ICsJCWlmICghYXJjaF9wdHJhY2VfcmVwb3J0 X3N5c2NhbGxfcGVybWl0X2VudHJ5KHJlZ3MpIHx8Cj4gKwkJwqDCoMKgICh3b3JrICYgU1lTQ0FM TF9XT1JLX1NZU0NBTExfRU1VKSkKPiDCoAkJCXJldHVybiAtMUw7Cj4gwqAJfQo+IMKgCj4gQEAg LTEzNyw3ICsxMzYsNyBAQCBzdGF0aWMgX19hbHdheXNfaW5saW5lIGxvbmcgc3lzY2FsbF90cmFj Cj4gwqAgKiBJdCBoYW5kbGVzIHRoZSBmb2xsb3dpbmcgd29yayBpdGVtczoKPiDCoCAqCj4gwqAg KsKgIDEpIHN5c2NhbGxfd29yayBmbGFnIGRlcGVuZGVudCBpbnZvY2F0aW9ucyBvZgo+IC0gKsKg wqDCoMKgIHB0cmFjZV9yZXBvcnRfc3lzY2FsbF9lbnRyeSgpLCBfX3NlY2NvbXBfcGVybWl0X3N5 c2NhbGwoKSwgdHJhY2Vfc3lzX2VudGVyKCkKPiArICrCoMKgwqDCoCBwdHJhY2VfcmVwb3J0X3N5 c2NhbGxfcGVybWl0X2VudHJ5KCksIF9fc2VjY29tcF9wZXJtaXRfc3lzY2FsbCgpLCB0cmFjZV9z eXNfZW50ZXIoKQo+IMKgICrCoCAyKSBJbnZvY2F0aW9uIG9mIGF1ZGl0X3N5c2NhbGxfZW50cnko KQo+IMKgICovCj4gwqBzdGF0aWMgX19hbHdheXNfaW5saW5lIGxvbmcgc3lzY2FsbF9lbnRlcl9m cm9tX3VzZXJfbW9kZV93b3JrKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIHN5c2NhbGwpCj4g LS0tIGEvaW5jbHVkZS9saW51eC9wdHJhY2UuaAo+ICsrKyBiL2luY2x1ZGUvbGludXgvcHRyYWNl LmgKPiBAQCAtNDA1LDEzICs0MDUsMTMgQEAgZXh0ZXJuIHZvaWQgc2lnYWN0aW9uX2NvbXBhdF9h Ymkoc3RydWN0Cj4gwqAvKgo+IMKgICogcHRyYWNlIHJlcG9ydCBmb3Igc3lzY2FsbCBlbnRyeSBh bmQgZXhpdCBsb29rcyBpZGVudGljYWwuCj4gwqAgKi8KPiAtc3RhdGljIGlubGluZSBpbnQgcHRy YWNlX3JlcG9ydF9zeXNjYWxsKHVuc2lnbmVkIGxvbmcgbWVzc2FnZSkKPiArc3RhdGljIGlubGlu ZSBib29sIHB0cmFjZV9yZXBvcnRfc3lzY2FsbCh1bnNpZ25lZCBsb25nIG1lc3NhZ2UpCj4gwqB7 Cj4gwqAJaW50IHB0cmFjZSA9IGN1cnJlbnQtPnB0cmFjZTsKPiDCoAlpbnQgc2lnbnI7Cj4gwqAK PiDCoAlpZiAoIShwdHJhY2UgJiBQVF9QVFJBQ0VEKSkKPiAtCQlyZXR1cm4gMDsKPiArCQlyZXR1 cm4gdHJ1ZTsKPiDCoAo+IMKgCXNpZ25yID0gcHRyYWNlX25vdGlmeShTSUdUUkFQIHwgKChwdHJh Y2UgJiBQVF9UUkFDRVNZU0dPT0QpID8gMHg4MCA6IDApLAo+IMKgCQkJwqDCoMKgwqDCoCBtZXNz YWdlKTsKPiBAQCAtNDI0LDExICs0MjQsMTEgQEAgc3RhdGljIGlubGluZSBpbnQgcHRyYWNlX3Jl cG9ydF9zeXNjYWxsKAo+IMKgCWlmIChzaWducikKPiDCoAkJc2VuZF9zaWcoc2lnbnIsIGN1cnJl bnQsIDEpOwo+IMKgCj4gLQlyZXR1cm4gZmF0YWxfc2lnbmFsX3BlbmRpbmcoY3VycmVudCk7Cj4g KwlyZXR1cm4gIWZhdGFsX3NpZ25hbF9wZW5kaW5nKGN1cnJlbnQpOwo+IMKgfQo+IMKgCj4gwqAv KioKPiAtICogcHRyYWNlX3JlcG9ydF9zeXNjYWxsX2VudHJ5IC0gdGFzayBpcyBhYm91dCB0byBh dHRlbXB0IGEgc3lzdGVtIGNhbGwKPiArICogcHRyYWNlX3JlcG9ydF9zeXNjYWxsX3Blcm1pdF9l bnRyeSAtIHRhc2sgaXMgYWJvdXQgdG8gYXR0ZW1wdCBhIHN5c3RlbSBjYWxsCj4gwqAgKiBAcmVn czoJCXVzZXIgcmVnaXN0ZXIgc3RhdGUgb2YgY3VycmVudCB0YXNrCj4gwqAgKgo+IMKgICogVGhp cyB3aWxsIGJlIGNhbGxlZCBpZiAlU1lTQ0FMTF9XT1JLX1NZU0NBTExfVFJBQ0Ugb3IKPiBAQCAt NDM4LDcgKzQzOCw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHB0cmFjZV9yZXBvcnRfc3lzY2FsbCgK PiDCoCAqIGNhbGwgbnVtYmVyIGFuZCBhcmd1bWVudHMgdG8gYmUgdHJpZWQuwqAgSXQgaXMgc2Fm ZSB0byBibG9jayBoZXJlLAo+IMKgICogcHJldmVudGluZyB0aGUgc3lzdGVtIGNhbGwgZnJvbSBi ZWdpbm5pbmcuCj4gwqAgKgo+IC0gKiBSZXR1cm5zIHplcm8gbm9ybWFsbHksIG9yIG5vbnplcm8g aWYgdGhlIGNhbGxpbmcgYXJjaCBjb2RlIHNob3VsZCBhYm9ydAo+ICsgKiBSZXR1cm5zIFRydWUg bm9ybWFsbHksIG9yIEZhbHNlIGlmIHRoZSBjYWxsaW5nIGFyY2hpdGVjdHVyZSBjb2RlIHNob3Vs ZCBhYm9ydAo+IMKgICogdGhlIHN5c3RlbSBjYWxsLsKgIFRoYXQgbXVzdCBwcmV2ZW50IG5vcm1h bCBlbnRyeSBzbyBubyBzeXN0ZW0gY2FsbCBpcwo+IMKgICogbWFkZS7CoCBJZiBAdGFzayBldmVy IHJldHVybnMgdG8gdXNlciBtb2RlIGFmdGVyIHRoaXMsIGl0cyByZWdpc3RlciBzdGF0ZQo+IMKg ICogaXMgdW5zcGVjaWZpZWQsIGJ1dCBzaG91bGQgYmUgc29tZXRoaW5nIGhhcm1sZXNzIGxpa2Ug YW4gJUVOT1NZUyBlcnJvcgo+IEBAIC00NDcsOCArNDQ3LDcgQEAgc3RhdGljIGlubGluZSBpbnQg cHRyYWNlX3JlcG9ydF9zeXNjYWxsKAo+IMKgICoKPiDCoCAqIENhbGxlZCB3aXRob3V0IGxvY2tz LCBqdXN0IGFmdGVyIGVudGVyaW5nIGtlcm5lbCBtb2RlLgo+IMKgICovCj4gLXN0YXRpYyBpbmxp bmUgX19tdXN0X2NoZWNrIGludCBwdHJhY2VfcmVwb3J0X3N5c2NhbGxfZW50cnkoCj4gLQlzdHJ1 Y3QgcHRfcmVncyAqcmVncykKPiArc3RhdGljIGlubGluZSBfX211c3RfY2hlY2sgYm9vbCBwdHJh Y2VfcmVwb3J0X3N5c2NhbGxfcGVybWl0X2VudHJ5KHN0cnVjdCBwdF9yZWdzICpyZWdzKQo+IMKg ewo+IMKgCXJldHVybiBwdHJhY2VfcmVwb3J0X3N5c2NhbGwoUFRSQUNFX0VWRU5UTVNHX1NZU0NB TExfRU5UUlkpOwo+IMKgfQoKUmV2aWV3ZWQtYnk6IFJhZHUgUmVuZGVjIDxyYWR1QHJlbmRlYy5u ZXQ+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51 eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==