From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: Improve GDB performance on inferior dlopen calls (Gary Benson, BZ 698001). Date: Thu, 23 Jul 2026 18:30:02 GMT Message-ID: <178483140230.1.5472657260154748927.rpms-gdb-b9aa4c4c7b1d@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: b9aa4c4c7b1db71584032e03d0bee50c13664456 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogYjlhYTRjNGM3YjFkYjcxNTg0MDMyZTAzZDBiZWU1MGMxMzY2NDQ1Ngog ICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAxMS0wOC0wOVQxNToxODoyOSswMjowMAogICAg ICAgICAgICBTdGF0cyAgOiArMzc4Ly0xIGluIDMgZmlsZShzKQogICAgICAgICAgICBVUkwgICAg OiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2dkYi9jL2I5YWE0YzRjN2IxZGI3 MTU4NDAzMmUwM2QwYmVlNTBjMTM2NjQ0NTY/YnJhbmNoPWZpeC1kdXAtcGF0Y2gKCiAgICAgICAg ICAgIExvZzoKICAgICAgICAgICAgSW1wcm92ZSBHREIgcGVyZm9ybWFuY2Ugb24gaW5mZXJpb3Ig ZGxvcGVuIGNhbGxzIChHYXJ5IEJlbnNvbiwgQlogNjk4MDAxKS4KW3B5dGhvbl0gRml4IGNyYXNo IHdoZW4gcHJldHR5IHByaW50ZXIgZmFpbHMgKFBoaWwgTXVsZG9vbiwgQlogNzEyNzE1KS4KRml4 IGNyYXNoIG9uIGludmFsaWQgQysrIG1hbmdsZWQgbmFtZXMgKEJaIDcyOTI4MykuCgotLS0KZGlm ZiAtLWdpdCBhL2dkYi1kbG9wZW4tc2tpcF9pbmxpbmVfZnJhbWVzLXBlcmYucGF0Y2ggYi9nZGIt ZGxvcGVuLXNraXBfaW5saW5lX2ZyYW1lcy1wZXJmLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjExNDFkZDIKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItZGxvcGVuLXNr aXBfaW5saW5lX2ZyYW1lcy1wZXJmLnBhdGNoCkBAIC0wLDAgKzEsOTAgQEAKK2RpZmYgLS1naXQg YS9nZGIvaW5mcnVuLmMgYi9nZGIvaW5mcnVuLmMKK2luZGV4IDkxZTBmYzIuLjFkN2M4MDggMTAw NjQ0CistLS0gYS9nZGIvaW5mcnVuLmMKKysrKyBiL2dkYi9pbmZydW4uYworQEAgLTMxMTEsNiAr MzExMSw1NiBAQCBmaWxsX2luX3N0b3BfZnVuYyAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCisg ICAgIH0KKyB9CisgCisrLyogQXJndW1lbnQgZm9yIGF0X3NvbGliX2V2ZW50X2JyZWFrcG9pbnRf aGVscGVyLiAgKi8KKysKKytzdHJ1Y3Qgc29saWJfZXZlbnRfYnJlYWtwb2ludF9oZWxwZXJfYXJn CisreworKyAgQ09SRV9BRERSIHByZXZfcGM7CisrICBpbnQgc2hsaWJfYnBfY291bnQ7CisrICBp bnQgb3RoZXJfYnBfY291bnQ7CisrfTsKKysKKysvKiBIZWxwZXIgZm9yIGF0X3NvbGliX2V2ZW50 X2JyZWFrcG9pbnQuICAqLworKworK3N0YXRpYyBpbnQKKythdF9zb2xpYl9ldmVudF9icmVha3Bv aW50X2hlbHBlciAoc3RydWN0IGJyZWFrcG9pbnQgKmIsIHZvaWQgKmFyZ3ApCisreworKyAgc3Ry dWN0IHNvbGliX2V2ZW50X2JyZWFrcG9pbnRfaGVscGVyX2FyZyAqYXJnCisrICAgID0gKHN0cnVj dCBzb2xpYl9ldmVudF9icmVha3BvaW50X2hlbHBlcl9hcmcgKikgYXJncDsgCisrICBzdHJ1Y3Qg YnBfbG9jYXRpb24gKmxvYzsKKysKKysgIGZvciAobG9jID0gYi0+bG9jOyBsb2M7IGxvYyA9IGxv Yy0+bmV4dCkKKysgICAgeworKyAgICAgIGlmIChsb2MtPnBzcGFjZSA9PSBjdXJyZW50X3Byb2dy YW1fc3BhY2UKKysJICAmJiAobG9jLT5hZGRyZXNzID09IHN0b3BfcGMgfHwgbG9jLT5hZGRyZXNz ID09IGFyZy0+cHJldl9wYykpCisrCXsKKysJICBpZiAoYi0+dHlwZSA9PSBicF9zaGxpYl9ldmVu dCkKKysJICAgIGFyZy0+c2hsaWJfYnBfY291bnQrKzsKKysJICBlbHNlCisrCSAgICB7CisrCSAg ICAgIGFyZy0+b3RoZXJfYnBfY291bnQrKzsKKysJICAgICAgcmV0dXJuIDE7IC8qIHF1aWNrIGV4 aXQgKi8KKysJICAgIH0KKysJfQorKyAgICB9CisrCisrICByZXR1cm4gMDsgLyogY2Fycnkgb24g bG9va2luZyAqLworK30KKysKKysvKiBOb256ZXJvIGlmIHRoZSBsb2NhdGlvbiBzdG9wb2VkIGF0 IGlzIHRoZSBzaGxpYiBldmVudCBicmVha3BvaW50LiAgKi8KKysKKytzdGF0aWMgaW50CisrYXRf c29saWJfZXZlbnRfYnJlYWtwb2ludCAoc3RydWN0IGV4ZWN1dGlvbl9jb250cm9sX3N0YXRlICpl Y3MpCisreworKyAgc3RydWN0IHNvbGliX2V2ZW50X2JyZWFrcG9pbnRfaGVscGVyX2FyZyBhcmc7 CisrICBhcmcucHJldl9wYyA9IGVjcy0+ZXZlbnRfdGhyZWFkLT5wcmV2X3BjOworKyAgYXJnLnNo bGliX2JwX2NvdW50ID0gYXJnLm90aGVyX2JwX2NvdW50ID0gMDsKKysKKysgIGl0ZXJhdGVfb3Zl cl9icmVha3BvaW50cyAoYXRfc29saWJfZXZlbnRfYnJlYWtwb2ludF9oZWxwZXIsICZhcmcpOwor KworKyAgcmV0dXJuIGFyZy5zaGxpYl9icF9jb3VudCAmJiAhYXJnLm90aGVyX2JwX2NvdW50Owor K30KKysKKyAvKiBHaXZlbiBhbiBleGVjdXRpb24gY29udHJvbCBzdGF0ZSB0aGF0IGhhcyBiZWVu IGZyZXNobHkgZmlsbGVkIGluCisgICAgYnkgYW4gZXZlbnQgZnJvbSB0aGUgaW5mZXJpb3IsIGZp Z3VyZSBvdXQgd2hhdCBpdCBtZWFucyBhbmQgdGFrZQorICAgIGFwcHJvcHJpYXRlIGFjdGlvbi4g ICovCitAQCAtMzk2NCwxMSArNDAxNCwyMyBAQCBoYW5kbGVfaW5mZXJpb3JfZXZlbnQgKHN0cnVj dCBleGVjdXRpb25fY29udHJvbF9zdGF0ZSAqZWNzKQorICAgZWNzLT5yYW5kb21fc2lnbmFsID0g MDsKKyAgIHN0b3BwZWRfYnlfcmFuZG9tX3NpZ25hbCA9IDA7CisgCistICAvKiBIaWRlIGlubGlu ZWQgZnVuY3Rpb25zIHN0YXJ0aW5nIGhlcmUsIHVubGVzcyB3ZSBqdXN0IHBlcmZvcm1lZCBzdGVw aSBvcgorLSAgICAgbmV4dGkuICBBZnRlciBzdGVwaSBhbmQgbmV4dGksIGFsd2F5cyBzaG93IHRo ZSBpbm5lcm1vc3QgZnJhbWUgKG5vdCBhbnkKKy0gICAgIGlubGluZSBmdW5jdGlvbiBjYWxsIHNp dGVzKS4gICovCistICBpZiAoZWNzLT5ldmVudF90aHJlYWQtPmNvbnRyb2wuc3RlcF9yYW5nZV9l bmQgIT0gMSkKKy0gICAgc2tpcF9pbmxpbmVfZnJhbWVzIChlY3MtPnB0aWQpOworKyAgLyogSWYg d2UgaGF2ZSBzdG9wcGVkIGF0IHRoZSBzb2xpYiBldmVudCBicmVha3BvaW50IGFuZAorKyAgICAg c3RvcF9vbl9zb2xpYl9ldmVudHMgaXMgbm90IHNldCB0aGVuIHdlIGNhbiBhdm9pZCBjYWxsaW5n CisrICAgICBhbnl0aGluZyB0aGF0IGNhbGxzIGZpbmRfcGNfc2VjdGlvbi4gIFRoaXMgc2F2ZXMg YSBsb3QKKysgICAgIG9mIHRpbWUgd2hlbiB0aGUgaW5mZXJpb3IgbG9hZHMgYSBsb3Qgb2Ygc2hh cmVkIGxpYnJhcmllcywKKysgICAgIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBzZWN0aW9uIG1hcCBn ZXRzIHJlZ2VuZXJhdGVkIGV2ZXJ5CisrICAgICB0aW1lIHdlIHN0b3AuICAqLworKyAgaWYgKHN0 b3Bfb25fc29saWJfZXZlbnRzCisrICAgICAgfHwgZWNzLT5ldmVudF90aHJlYWQtPnN1c3BlbmQu c3RvcF9zaWduYWwgIT0gVEFSR0VUX1NJR05BTF9UUkFQCisrICAgICAgfHwgc3RvcF9hZnRlcl90 cmFwCisrICAgICAgfHwgIWF0X3NvbGliX2V2ZW50X2JyZWFrcG9pbnQgKGVjcykpCisrICAgIHsK KysgICAgICAvKiBIaWRlIGlubGluZWQgZnVuY3Rpb25zIHN0YXJ0aW5nIGhlcmUsIHVubGVzcyB3 ZSBqdXN0CisrCSBwZXJmb3JtZWQgc3RlcGkgb3IgbmV4dGkuICBBZnRlciBzdGVwaSBhbmQgbmV4 dGksIGFsd2F5cyBzaG93CisrCSB0aGUgaW5uZXJtb3N0IGZyYW1lIChub3QgYW55IGlubGluZSBm dW5jdGlvbiBjYWxsIHNpdGVzKS4gICovCisrICAgICAgaWYgKGVjcy0+ZXZlbnRfdGhyZWFkLT5j b250cm9sLnN0ZXBfcmFuZ2VfZW5kICE9IDEpCisrCXNraXBfaW5saW5lX2ZyYW1lcyAoZWNzLT5w dGlkKTsKKysgICAgfQorIAorICAgaWYgKGVjcy0+ZXZlbnRfdGhyZWFkLT5zdXNwZW5kLnN0b3Bf c2lnbmFsID09IFRBUkdFVF9TSUdOQUxfVFJBUAorICAgICAgICYmIGVjcy0+ZXZlbnRfdGhyZWFk LT5jb250cm9sLnRyYXBfZXhwZWN0ZWQKCmRpZmYgLS1naXQgYS9nZGItdXBzdHJlYW0ucGF0Y2gg Yi9nZGItdXBzdHJlYW0ucGF0Y2gKaW5kZXggYjczZDRkMi4uYjM4MGMyZiAxMDA2NDQKLS0tIGEv Z2RiLXVwc3RyZWFtLnBhdGNoCisrKyBiL2dkYi11cHN0cmVhbS5wYXRjaApAQCAtOTM3LDMgKzkz NywyODEgQEAgaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1jdnMvMjAxMS0wNy9tc2cwMDIy NC5odG1sCiAgfTsKICAKICBzdGF0aWMgdm9pZAorCisKKworW3BhdGNoXVtweXRob25dIEZpeCBz aWdzZWd2IHdoZW4gYSBwcmludGVyIGZhaWxzIHRvIHJldHVybiBhIHZhbHVlIGFuZCBzdHJpbmdf cHJpbnQgaXMgc2V0LgoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTEt MDcvbXNnMDA3MTkuaHRtbAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1jdnMvMjAxMS0w Ny9tc2cwMDIzNC5odG1sCisKKyMjIyBzcmMvZ2RiL0NoYW5nZUxvZwkyMDExLzA3LzI3IDE5OjMx OjMwCTEuMTMyMzYKKyMjIyBzcmMvZ2RiL0NoYW5nZUxvZwkyMDExLzA3LzI4IDEwOjM2OjM3CTEu MTMyMzcKKyMjIC0xLDMgKzEsOCBAQAorKzIwMTEtMDctMjggIFBoaWwgTXVsZG9vbiAgPHBtdWxk b29uQHJlZGhhdC5jb20+CisrCisrCSogdmFyb2JqLmMgKHZhbHVlX2dldF9wcmludF92YWx1ZSk6 IE1vdmUgaGludCBjaGVjayBsYXRlciBpbnRvIHRoZQorKwlmdW5jdGlvbi4gIENvbW1lbnQgZnVu Y3Rpb24uICBGcmVlIHRoZXZhbHVlIGJlZm9yZSByZXVzaW5nIGl0LgorKworIDIwMTEtMDctMjcg IEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKyAJICAgIFBlZHJv IEFsdmVzICA8cGVkcm9AY29kZXNvdXJjZXJ5LmNvbT4KKyAKKy0tLSBzcmMvZ2RiL3Zhcm9iai5j CTIwMTEvMDcvMTggMDk6MjE6NDMJMS4xODAKKysrKyBzcmMvZ2RiL3Zhcm9iai5jCTIwMTEvMDcv MjggMTA6MzY6NDAJMS4xODEKK0BAIC0yNjEwLDI1ICsyNjEwLDIxIEBACisgCisgCWlmIChQeU9i amVjdF9IYXNBdHRyICh2YWx1ZV9mb3JtYXR0ZXIsIGdkYnB5X3RvX3N0cmluZ19jc3QpKQorIAkg IHsKKy0JICAgIGNoYXIgKmhpbnQ7CisgCSAgICBzdHJ1Y3QgdmFsdWUgKnJlcGxhY2VtZW50Owor IAkgICAgUHlPYmplY3QgKm91dHB1dCA9IE5VTEw7CisgCistCSAgICBoaW50ID0gZ2RicHlfZ2V0 X2Rpc3BsYXlfaGludCAodmFsdWVfZm9ybWF0dGVyKTsKKy0JICAgIGlmIChoaW50KQorLQkgICAg ICB7CistCQlpZiAoIXN0cmNtcCAoaGludCwgInN0cmluZyIpKQorLQkJICBzdHJpbmdfcHJpbnQg PSAxOworLQkJeGZyZWUgKGhpbnQpOworLQkgICAgICB9CistCisgCSAgICBvdXRwdXQgPSBhcHBs eV92YXJvYmpfcHJldHR5X3ByaW50ZXIgKHZhbHVlX2Zvcm1hdHRlciwKKyAJCQkJCQkgICZyZXBs YWNlbWVudCwKKyAJCQkJCQkgIHN0Yik7CisrCisrCSAgICAvKiBJZiB3ZSBoYXZlIHN0cmluZyBs aWtlIG91dHB1dCAuLi4gICovCisgCSAgICBpZiAob3V0cHV0KQorIAkgICAgICB7CisgCQltYWtl X2NsZWFudXBfcHlfZGVjcmVmIChvdXRwdXQpOworIAorKwkJLyogSWYgdGhpcyBpcyBhIGxhenkg c3RyaW5nLCBleHRyYWN0IGl0LiAgRm9yIGxhenkKKysJCSAgIHN0cmluZ3Mgd2UgYWx3YXlzIHBy aW50IGFzIGEgc3RyaW5nLCBzbyBzZXQKKysJCSAgIHN0cmluZ19wcmludC4gICovCisgCQlpZiAo Z2RicHlfaXNfbGF6eV9zdHJpbmcgKG91dHB1dCkpCisgCQkgIHsKKyAJCSAgICBnZGJweV9leHRy YWN0X2xhenlfc3RyaW5nIChvdXRwdXQsICZzdHJfYWRkciwgJnR5cGUsCitAQCAtMjYzOCwxMiAr MjYzNCwyNyBAQAorIAkJICB9CisgCQllbHNlCisgCQkgIHsKKysJCSAgICAvKiBJZiBpdCBpcyBh IHJlZ3VsYXIgKG5vbi1sYXp5KSBzdHJpbmcsIGV4dHJhY3QKKysJCSAgICAgICBpdCBhbmQgY29w eSB0aGUgY29udGVudHMgaW50byBUSEVWQUxVRS4gIElmIHRoZQorKwkJICAgICAgIGhpbnQgc2F5 cyB0byBwcmludCBpdCBhcyBhIHN0cmluZywgc2V0CisrCQkgICAgICAgc3RyaW5nX3ByaW50LiAg T3RoZXJ3aXNlIGp1c3QgcmV0dXJuIHRoZSBleHRyYWN0ZWQKKysJCSAgICAgICBzdHJpbmcgYXMg YSB2YWx1ZS4gICovCisrCisgCQkgICAgUHlPYmplY3QgKnB5X3N0cgorIAkJICAgICAgPSBweXRo b25fc3RyaW5nX3RvX3RhcmdldF9weXRob25fc3RyaW5nIChvdXRwdXQpOworIAorIAkJICAgIGlm IChweV9zdHIpCisgCQkgICAgICB7CisgCQkJY2hhciAqcyA9IFB5U3RyaW5nX0FzU3RyaW5nIChw eV9zdHIpOworKwkJCWNoYXIgKmhpbnQ7CisrCisrCQkJaGludCA9IGdkYnB5X2dldF9kaXNwbGF5 X2hpbnQgKHZhbHVlX2Zvcm1hdHRlcik7CisrCQkJaWYgKGhpbnQpCisrCQkJICB7CisrCQkJICAg IGlmICghc3RyY21wIChoaW50LCAic3RyaW5nIikpCisrCQkJICAgICAgc3RyaW5nX3ByaW50ID0g MTsKKysJCQkgICAgeGZyZWUgKGhpbnQpOworKwkJCSAgfQorIAorIAkJCWxlbiA9IFB5U3RyaW5n X1NpemUgKHB5X3N0cik7CisgCQkJdGhldmFsdWUgPSB4bWVtZHVwIChzLCBsZW4gKyAxLCBsZW4g KyAxKTsKK0BAIC0yNjYyLDYgKzI2NzMsOSBAQAorIAkJICAgICAgZ2RicHlfcHJpbnRfc3RhY2sg KCk7CisgCQkgIH0KKyAJICAgICAgfQorKwkgICAgLyogSWYgdGhlIHByaW50ZXIgcmV0dXJuZWQg YSByZXBsYWNlbWVudCB2YWx1ZSwgc2V0IFZBTFVFCisrCSAgICAgICB0byBSRVBMQUNFTUVOVC4g IElmIHRoZXJlIGlzIG5vdCBhIHJlcGxhY2VtZW50IHZhbHVlLAorKwkgICAgICAganVzdCB1c2Ug dGhlIHZhbHVlIHBhc3NlZCB0byB0aGlzIGZ1bmN0aW9uLiAgKi8KKyAJICAgIGlmIChyZXBsYWNl bWVudCkKKyAJICAgICAgdmFsdWUgPSByZXBsYWNlbWVudDsKKyAJICB9CitAQCAtMjY3MiwxMiAr MjY4NiwxOCBAQAorICAgZ2V0X2Zvcm1hdHRlZF9wcmludF9vcHRpb25zICgmb3B0cywgZm9ybWF0 X2NvZGVbKGludCkgZm9ybWF0XSk7CisgICBvcHRzLmRlcmVmX3JlZiA9IDA7CisgICBvcHRzLnJh dyA9IDE7CisrCisrICAvKiBJZiB0aGUgVEhFVkFMVUUgaGFzIGNvbnRlbnRzLCBpdCBpcyBhIHJl Z3VsYXIgc3RyaW5nLiAgKi8KKyAgIGlmICh0aGV2YWx1ZSkKKyAgICAgTEFfUFJJTlRfU1RSSU5H IChzdGIsIHR5cGUsIHRoZXZhbHVlLCBsZW4sIGVuY29kaW5nLCAwLCAmb3B0cyk7CisgICBlbHNl IGlmIChzdHJpbmdfcHJpbnQpCisrICAgIC8qIE90aGVyd2lzZSwgaWYgc3RyaW5nX3ByaW50IGlz IHNldCwgYW5kIGl0IGlzIG5vdCBhIHJlZ3VsYXIKKysgICAgICAgc3RyaW5nLCBpdCBpcyBhIGxh enkgc3RyaW5nLiAgKi8KKyAgICAgdmFsX3ByaW50X3N0cmluZyAodHlwZSwgZW5jb2RpbmcsIHN0 cl9hZGRyLCBsZW4sIHN0YiwgJm9wdHMpOworICAgZWxzZQorKyAgICAvKiBBbGwgb3RoZXIgY2Fz ZXMuICAqLworICAgICBjb21tb25fdmFsX3ByaW50ICh2YWx1ZSwgc3RiLCAwLCAmb3B0cywgY3Vy cmVudF9sYW5ndWFnZSk7CisrCisgICB0aGV2YWx1ZSA9IHVpX2ZpbGVfeHN0cmR1cCAoc3RiLCBO VUxMKTsKKyAKKyAgIGRvX2NsZWFudXBzIChvbGRfY2hhaW4pOworIyMjIHNyYy9nZGIvdGVzdHN1 aXRlL0NoYW5nZUxvZwkyMDExLzA3LzI3IDIxOjE4OjM5CTEuMjgxNgorIyMjIHNyYy9nZGIvdGVz dHN1aXRlL0NoYW5nZUxvZwkyMDExLzA3LzI4IDEwOjM2OjQwCTEuMjgxNworIyMgLTEsMyArMSwx MCBAQAorKzIwMTEtMDctMjggIFBoaWwgTXVsZG9vbiAgPHBtdWxkb29uQHJlZGhhdC5jb20+Cisr CisrCSogZ2RiLnB5dGhvbi9weS1taS5leHA6IFRlc3QgcHJpbnRlcnMgcmV0dXJuaW5nIHN0cmlu ZyBoaW50LCBhbmQKKysJYWxzbyBub3QgcmV0dXJuaW5nIGEgdmFsdWUuCisrCSogZ2RiLnB5dGhv bi9weS1wcmV0dHlwcmludC5jOiBBZGQgdGVzdGNhc2UgZm9yIGFib3ZlLgorKwkqIGdkYi5weXRo b24vcHktcHJldHR5cHJpbnQucHk6IEFkZCB0ZXN0IHByaW50ZXIgZm9yIGFib3ZlLgorKworIDIw MTEtMDctMjcgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKyAK KyAJKiBnZGIuZHdhcmYyL2R3Mi1zaW1wbGUtbG9jZGVzYy5TOiBDaGFuZ2UgRFdBUkYgdmVyc2lv biB0byAzLgorLS0tIHNyYy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktbWkuZXhwCTIwMTEv MDcvMjYgMTg6Mzg6NTUJMS4xMworKysrIHNyYy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt bWkuZXhwCTIwMTEvMDcvMjggMTA6MzY6NDAJMS4xNAorQEAgLTI4NCw2ICsyODQsMTMgQEAgbWlf bGlzdF92YXJvYmpfY2hpbGRyZW4gbnN0eXBlMiB7CisgICAgIHsge25zdHlwZTIuPGVycm9yIGF0 IDA+fSB7PGVycm9yIGF0IDA+fSA2IHtjaGFyIFxbNlxdfSB9CisgfSAibGlzdCBjaGlsZHJlbiBh ZnRlciBzZXR0aW5nIGV4Y2VwdGlvbiBmbGFnIgorIAorK21pX2NyZWF0ZV92YXJvYmogbWUgbWUg XAorKyAgImNyZWF0ZSBtZSB2YXJvYmoiCisrCisrbWlfZ2RiX3Rlc3QgIi12YXItZXZhbHVhdGUt ZXhwcmVzc2lvbiBtZSIgXAorKwkiXFxeZG9uZSx2YWx1ZT1cIjxlcnJvciByZWFkaW5nIHZhcmlh YmxlOiBDYW5ub3QgYWNjZXNzIG1lbW9yeS4+LipcIiIgXAorKwkiZXZhbHVhdGUgbWUgdmFyb2Jq IgorKworICMgQysrIE1JIHRlc3RzCisgZ2RiX2V4aXQKKyBpZiAgeyBbZ2RiX2NvbXBpbGUgIiR7 c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIFwKKy0tLSBzcmMvZ2Ri L3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXByaW50LmMJMjAxMS8wNC8yOSAxMjo0NTo0 NgkxLjEyCisrKysgc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5j CTIwMTEvMDcvMjggMTA6MzY6NDAJMS4xMworQEAgLTE0OSw2ICsxNDksMTEgQEAKKyAKKyB0eXBl ZGVmIHN0cnVjdCBqdXN0Y2hpbGRyZW4gbm9zdHJpbmdfdHlwZTsKKyAKKytzdHJ1Y3QgbWVtb3J5 X2Vycm9yCisreworKyAgY29uc3QgY2hhciAqczsKKyt9OworKworIHN0cnVjdCBjb250YWluZXIK KyB7CisgICBzdHJpbmcgbmFtZTsKK0BAIC0yMjcsNiArMjMyLDcgQEAKKyAgIC8qIENsZWFyaW5n IGJ5IGJlaW5nIGBzdGF0aWMnIGNvdWxkIGludm9rZSBhbiBvdGhlciBHREIgQysrIGJ1Zy4gICov CisgICBzdHJ1Y3QgbnVsbHN0ciBudWxsc3RyOworICAgbm9zdHJpbmdfdHlwZSBuc3R5cGUsIG5z dHlwZTI7CisrICBzdHJ1Y3QgbWVtb3J5X2Vycm9yIG1lOworICAgc3RydWN0IG5zIG5zLCBuczI7 CisgICBzdHJ1Y3QgbGF6eXN0cmluZyBlc3RyaW5nLCBlc3RyaW5nMjsKKyAgIHN0cnVjdCBoaW50 X2Vycm9yIGhpbnRfZXJyb3I7CitAQCAtMjM0LDYgKzI0MCw4IEBACisgICBuc3R5cGUuZWxlbWVu dHMgPSBuYXJyYXk7CisgICBuc3R5cGUubGVuID0gMDsKKyAKKysgIG1lLnMgPSAiYmxhaCI7Cisr CisgICBpbml0X3NzKCZzcywgMSwgMik7CisgICBpbml0X3NzKHNzYSswLCAzLCA0KTsKKyAgIGlu aXRfc3Moc3NhKzEsIDUsIDYpOworLS0tIHNyYy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt cHJldHR5cHJpbnQucHkJMjAxMS8wNC8xMSAxNzo0MDo0MQkxLjExCisrKysgc3JjL2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5weQkyMDExLzA3LzI4IDEwOjM2OjQwCTEu MTIKK0BAIC0xNyw2ICsxNyw3IEBACisgIyBwcmludGVycy4KKyAKKyBpbXBvcnQgcmUKKytpbXBv cnQgZ2RiCisgCisgIyBUZXN0IHJldHVybmluZyBhIFZhbHVlIGZyb20gYSBwcmludGVyLgorIGNs YXNzIHN0cmluZ19wcmludDoKK0BAIC0xODYsNiArMTg3LDE4IEBACisgICAgICAgICB5aWVsZCAn cycsIHNlbGYudmFsWydzJ10KKyAgICAgICAgIHlpZWxkICd4Jywgc2VsZi52YWxbJ3gnXQorIAor K2NsYXNzIE1lbW9yeUVycm9yU3RyaW5nOgorKyAgICAiUmFpc2UgYW4gZXJyb3IiCisrCisrICAg IGRlZiBfX2luaXRfXyhzZWxmLCB2YWwpOgorKyAgICAgICAgc2VsZi52YWwgPSB2YWwKKysKKysg ICAgZGVmIHRvX3N0cmluZyhzZWxmKToKKysgICAgICAgIHJhaXNlIGdkYi5NZW1vcnlFcnJvciAo IkNhbm5vdCBhY2Nlc3MgbWVtb3J5LiIpOworKworKyAgICBkZWYgZGlzcGxheV9oaW50IChzZWxm KToKKysgICAgICAgIHJldHVybiAnc3RyaW5nJworKworIGRlZiBsb29rdXBfZnVuY3Rpb24gKHZh bCk6CisgICAgICJMb29rLXVwIGFuZCByZXR1cm4gYSBwcmV0dHktcHJpbnRlciB0aGF0IGNhbiBw cmludCB2YWwuIgorIAorQEAgLTI2MSw2ICsyNzQsOCBAQAorICAgICBwcmV0dHlfcHJpbnRlcnNf ZGljdFtyZS5jb21waWxlICgnXnN0cnVjdCBoaW50X2Vycm9yJCcpXSAgPSBwcF9oaW50X2Vycm9y CisgICAgIHByZXR0eV9wcmludGVyc19kaWN0W3JlLmNvbXBpbGUgKCdeaGludF9lcnJvciQnKV0g ID0gcHBfaGludF9lcnJvcgorIAorKyAgICBwcmV0dHlfcHJpbnRlcnNfZGljdFtyZS5jb21waWxl ICgnXm1lbW9yeV9lcnJvciQnKV0gID0gTWVtb3J5RXJyb3JTdHJpbmcKKysKKyBwcmV0dHlfcHJp bnRlcnNfZGljdCA9IHt9CisgCisgcmVnaXN0ZXJfcHJldHR5X3ByaW50ZXJzICgpCisKKworCitj b21taXQgODRiZTJiNGQwYTU1Yzk1Njk3YzllY2M3MmJiMzFjMmZiZDMxNjEyNworQXV0aG9yOiBp YW4gPGlhbkAxMzhiYzc1ZC0wZDA0LTA0MTAtOTYxZi04MmVlNzJiMDU0YTQ+CitEYXRlOiAgIFR1 ZSBKdWwgMjYgMTQ6Mjg6MjMgMjAxMSArMDAwMAorCisgICAgCSogY3AtZGVtYW5nbGUuYyAoZF9w cmludF9pbml0KTogSW5pdGlhbGl6ZSBwYWNrX2luZGV4IGZpZWxkLgorICAgIAkoZF9wcmludF9j b21wKTogQ2hlY2sgZm9yIE5VTEwgdGVtcGxhdGUgYXJndW1lbnQuCisgICAgCSogdGVzdHN1aXRl L2RlbWFuZ2xlLWV4cGVjdGVkOiBBZGQgdGVzdCBjYXNlLgorICAgIAorICAgIAorICAgIGdpdC1z dm4taWQ6IHN2bitzc2g6Ly9nY2MuZ251Lm9yZy9zdm4vZ2NjL3RydW5rQDE3Njc5MSAxMzhiYzc1 ZC0wZDA0LTA0MTAtOTYxZi04MmVlNzJiMDU0YTQKKworIyMjIGEvbGliaWJlcnR5L0NoYW5nZUxv ZworIyMjIGIvbGliaWJlcnR5L0NoYW5nZUxvZworIyMgLTEsMyArMSw5IEBACisrMjAxMS0wNy0y NiAgSWFuIExhbmNlIFRheWxvciAgPGlhbnRAZ29vZ2xlLmNvbT4KKysKKysJKiBjcC1kZW1hbmds ZS5jIChkX3ByaW50X2luaXQpOiBJbml0aWFsaXplIHBhY2tfaW5kZXggZmllbGQuCisrCShkX3By aW50X2NvbXApOiBDaGVjayBmb3IgTlVMTCB0ZW1wbGF0ZSBhcmd1bWVudC4KKysJKiB0ZXN0c3Vp dGUvZGVtYW5nbGUtZXhwZWN0ZWQ6IEFkZCB0ZXN0IGNhc2UuCisrCisgMjAxMS0wNy0yMiAgR2Vy YWxkIFBmZWlmZXIgIDxnZXJhbGRAcGZlaWZlci5jb20+CisgCisgCVBSIHRhcmdldC80OTgxNwor LS0tIGEvbGliaWJlcnR5L2NwLWRlbWFuZ2xlLmMKKysrKyBiL2xpYmliZXJ0eS9jcC1kZW1hbmds ZS5jCitAQCAtMSw1ICsxLDUgQEAKKyAvKiBEZW1hbmdsZXIgZm9yIGcrKyBWMyBBQkkuCistICAg Q29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAy MDEwCisrICAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4 LCAyMDA5LCAyMDEwLCAyMDExCisgICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisg ICAgV3JpdHRlbiBieSBJYW4gTGFuY2UgVGF5bG9yIDxpYW5Ad2FzYWJpc3lzdGVtcy5jb20+Lgor IAorQEAgLTMzMDYsNiArMzMwNiw3IEBAIGRfcHJpbnRfaW5pdCAoc3RydWN0IGRfcHJpbnRfaW5m byAqZHBpLCBkZW1hbmdsZV9jYWxsYmFja3JlZiBjYWxsYmFjaywKKyAgIGRwaS0+bGFzdF9jaGFy ID0gJ1wwJzsKKyAgIGRwaS0+dGVtcGxhdGVzID0gTlVMTDsKKyAgIGRwaS0+bW9kaWZpZXJzID0g TlVMTDsKKysgIGRwaS0+cGFja19pbmRleCA9IDA7CisgICBkcGktPmZsdXNoX2NvdW50ID0gMDsK KyAKKyAgIGRwaS0+Y2FsbGJhY2sgPSBjYWxsYmFjazsKK0BAIC0zODkzLDYgKzM4OTQsMTMgQEAg ZF9wcmludF9jb21wIChzdHJ1Y3QgZF9wcmludF9pbmZvICpkcGksIGludCBvcHRpb25zLAorIAkg ICAgc3RydWN0IGRlbWFuZ2xlX2NvbXBvbmVudCAqYSA9IGRfbG9va3VwX3RlbXBsYXRlX2FyZ3Vt ZW50IChkcGksIHN1Yik7CisgCSAgICBpZiAoYSAmJiBhLT50eXBlID09IERFTUFOR0xFX0NPTVBP TkVOVF9URU1QTEFURV9BUkdMSVNUKQorIAkgICAgICBhID0gZF9pbmRleF90ZW1wbGF0ZV9hcmd1 bWVudCAoYSwgZHBpLT5wYWNrX2luZGV4KTsKKysKKysJICAgIGlmIChhID09IE5VTEwpCisrCSAg ICAgIHsKKysJCWRfcHJpbnRfZXJyb3IgKGRwaSk7CisrCQlyZXR1cm47CisrCSAgICAgIH0KKysK KyAJICAgIHN1YiA9IGE7CisgCSAgfQorIAorLS0tIGEvbGliaWJlcnR5L3Rlc3RzdWl0ZS9kZW1h bmdsZS1leHBlY3RlZAorKysrIGIvbGliaWJlcnR5L3Rlc3RzdWl0ZS9kZW1hbmdsZS1leHBlY3Rl ZAorQEAgLTQwMTAsNiArNDAxMCwxMiBAQCBLPDEsICZTOjptPjo6ZigpCisgX1pOMUtJTGkxRVhh ZExfWk4xUzFtRUVFRTFmRXYKKyBLPDEsICZTOjptPjo6ZigpCisgIworKyMgVXNlZCB0byBjcmFz aCAtLSBiaW51dGlscyBQUiAxMzAzMC4KKystLWZvcm1hdD1nbnUtdjMKKytfWlN0MTBfQ29uc3Ry dWN0STEwQ2VsbEJvcmRlcklTMF9FRXZQVF9EcE9UMF8KKytfWlN0MTBfQ29uc3RydWN0STEwQ2Vs bEJvcmRlcklTMF9FRXZQVF9EcE9UMF8KKytfWlN0MTBfQ29uc3RydWN0STEwQ2VsbEJvcmRlcklT MF9FRXZQVF9EcE9UMF8KKysjCisgIyBBZGEgKEdOQVQpIHRlc3RzLgorICMKKyAjIFNpbXBsZSB0 ZXN0LgoKZGlmZiAtLWdpdCBhL2dkYi5zcGVjIGIvZ2RiLnNwZWMKaW5kZXggZDA3MzJhZi4uY2Ew M2Y5MyAxMDA2NDQKLS0tIGEvZ2RiLnNwZWMKKysrIGIvZ2RiLnNwZWMKQEAgLTI3LDcgKzI3LDcg QEAgVmVyc2lvbjogNy4zLjUwLjIwMTEwNzIyCiAKICMgVGhlIHJlbGVhc2UgYWx3YXlzIGNvbnRh aW5zIGEgbGVhZGluZyByZXNlcnZlZCBudW1iZXIsIHN0YXJ0IGl0IGF0IDEuCiAjIGB1cHN0cmVh bScgaXMgbm90IGEgcGFydCBvZiBgbmFtZScgdG8gc3RheSBmdWxseSBycG0gZGVwZW5kZW5jaWVz IGNvbXBhdGlibGUgZm9yIHRoZSB0ZXN0aW5nLgotUmVsZWFzZTogMyV7P193aXRoX3Vwc3RyZWFt Oi51cHN0cmVhbX0lez9kaXN0fQorUmVsZWFzZTogNCV7P193aXRoX3Vwc3RyZWFtOi51cHN0cmVh bX0lez9kaXN0fQogCiBMaWNlbnNlOiBHUEx2MysgYW5kIEdQTHYzKyB3aXRoIGV4Y2VwdGlvbnMg YW5kIEdQTHYyKyBhbmQgR1BMdjIrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMKyBhbmQgTEdQTHYy KyBhbmQgQlNEIGFuZCBQdWJsaWMgRG9tYWluCiBHcm91cDogRGV2ZWxvcG1lbnQvRGVidWdnZXJz CkBAIC01MzAsNiArNTMwLDkgQEAgUGF0Y2g1NTY6IGdkYi1nY2M0Ni1zdGRhcmctcHJvbG9ndWUu cGF0Y2gKICMgcmVidWlsZCB0byBmaXggaXQsIHdlIG5lZWQgdG8gYmUgYWJsZSB0byB1c2UgZ2Ri IDopCiBQYXRjaDU3OTogZ2RiLTcuMi41MC1zcGFyYy1hZGQtd29ya2Fyb3VuZC10by1icm9rZW4t ZGVidWctZmlsZXMucGF0Y2gKIAorIyBJbXByb3ZlIEdEQiBwZXJmb3JtYW5jZSBvbiBpbmZlcmlv ciBkbG9wZW4gY2FsbHMgKEdhcnkgQmVuc29uLCBCWiA2OTgwMDEpLgorUGF0Y2g2MTc6IGdkYi1k bG9wZW4tc2tpcF9pbmxpbmVfZnJhbWVzLXBlcmYucGF0Y2gKKwogQnVpbGRSZXF1aXJlczogbmN1 cnNlcy1kZXZlbCV7P19pc2F9IHRleGluZm8gZ2V0dGV4dCBmbGV4IGJpc29uIGV4cGF0LWRldmVs JXs/X2lzYX0KICMgLS13aXRob3V0LXN5c3RlbS1yZWFkbGluZQogIyBSZXF1aXJlczogcmVhZGxp bmUlez9faXNhfQpAQCAtNzkxLDYgKzc5NCw3IEBAIHJtIC1mIGdkYi9qdi1leHAuYyBnZGIvbTIt ZXhwLmMgZ2RiL29iamMtZXhwLmMgZ2RiL3AtZXhwLmMKICVwYXRjaDU0OCAtcDEKICVwYXRjaDU1 NiAtcDEKICVwYXRjaDU3OSAtcDEKKyVwYXRjaDYxNyAtcDEKIAogJXBhdGNoMzkzIC1wMQogJXBh dGNoMzM1IC1wMQpAQCAtMTIxMyw2ICsxMjE3LDExIEBAIGZpCiAle19pbmZvZGlyfS9nZGIuaW5m byoKIAogJWNoYW5nZWxvZworKiBUdWUgQXVnICA5IDIwMTEgSmFuIEtyYXRvY2h2aWwgPGphbi5r cmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4zLjUwLjIwMTEwNzIyLTQuZmMxNgorLSBJbXByb3Zl IEdEQiBwZXJmb3JtYW5jZSBvbiBpbmZlcmlvciBkbG9wZW4gY2FsbHMgKEdhcnkgQmVuc29uLCBC WiA2OTgwMDEpLgorLSBbcHl0aG9uXSBGaXggY3Jhc2ggd2hlbiBwcmV0dHkgcHJpbnRlciBmYWls cyAoUGhpbCBNdWxkb29uLCBCWiA3MTI3MTUpLgorLSBGaXggY3Jhc2ggb24gaW52YWxpZCBDKysg bWFuZ2xlZCBuYW1lcyAoQlogNzI5MjgzKS4KKwogKiBGcmkgSnVsIDI5IDIwMTEgSmFuIEtyYXRv Y2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4zLjUwLjIwMTEwNzIyLTMuZmMx NgogLSBGaXggcmVncmVzc2lvbiBmcm9tIFZMQSBtZXJnZSBhZmZlY3RpbmcgLU8wIC1nIHdhdGNo cG9pbnRzLgogCg==