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] gdb-17.2-rebase-f44: - Real upstream fixup of qsort_cmp (BZ 515434). Date: Sat, 27 Jun 2026 23:54:23 GMT Message-ID: <178260446317.1.3749043777125802362.rpms-gdb-8bf73e0a0177@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 8bf73e0a0177506e22b7c5b8bb04ab81178df3ec ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGdkYi0xNy4yLXJlYmFzZS1mNDQK ICAgICAgICAgICAgQ29tbWl0IDogOGJmNzNlMGEwMTc3NTA2ZTIyYjdjNWI4YmIwNGFiODExNzhk ZjNlYwogICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amtyYXRvY2hAZmVkb3Jh cHJvamVjdC5vcmc+CiAgICAgICAgICAgIERhdGUgICA6IDIwMDktMDgtMjhUMTg6MjQ6MDYrMDA6 MDAKICAgICAgICAgICAgU3RhdHMgIDogKzQ3Ni8tMzcgaW4gMyBmaWxlKHMpCiAgICAgICAgICAg IFVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2RiL2MvOGJmNzNl MGEwMTc3NTA2ZTIyYjdjNWI4YmIwNGFiODExNzhkZjNlYz9icmFuY2g9Z2RiLTE3LjItcmViYXNl LWY0NAoKICAgICAgICAgICAgTG9nOgogICAgICAgICAgICAtIFJlYWwgdXBzdHJlYW0gZml4dXAg b2YgcXNvcnRfY21wIChCWiA1MTU0MzQpLgotIFJldmVydCBiaXRmaWVsZHMgcmVncmVzc2lvbiAo QlogNTIwMTI5KS4KCi0tLQpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NTE1NDM0LXFzb3J0X2NtcC5wYXRj aCBiL2dkYi1iejUxNTQzNC1xc29ydF9jbXAucGF0Y2gKaW5kZXggYTIxNTNmMC4uMjA5NzRmMCAx MDA2NDQKLS0tIGEvZ2RiLWJ6NTE1NDM0LXFzb3J0X2NtcC5wYXRjaAorKysgYi9nZGItYno1MTU0 MzQtcXNvcnRfY21wLnBhdGNoCkBAIC0xLDQ2ICsxLDIzMiBAQAotLS0tIGdkYi02LjguNTAuMjAw OTA4MTgvZ2RiL29iamZpbGVzLmMtb3JpZwkyMDA5LTA4LTI1IDE0OjE5OjA0LjAwMDAwMDAwMCAr MDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MTgvZ2RiL29iamZpbGVzLmMJMjAwOS0wOC0yNSAx NDoyODowNy4wMDAwMDAwMDAgKzAyMDAKLUBAIC04MjAsMTIgKzgyMCwxNiBAQCBxc29ydF9jbXAg KGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpCitJbmRleDogb2JqZmlsZXMuYworPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvb2JqZmlsZXMuYyx2CityZXRyaWV2aW5n IHJldmlzaW9uIDEuOTMKK2RpZmYgLXAgLXUgLXIxLjkzIG9iamZpbGVzLmMKKy0tLSAuL2dkYi9v YmpmaWxlcy5jCTIxIEF1ZyAyMDA5IDE3OjU3OjE3IC0wMDAwCTEuOTMKKysrKyAuL2dkYi9vYmpm aWxlcy5jCTI2IEF1ZyAyMDA5IDA3OjA3OjA0IC0wMDAwCitAQCAtNzkwLDE1ICs3OTAsOSBAQCBx c29ydF9jbXAgKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpCisgICBjb25zdCBDT1JFX0FE RFIgc2VjdDJfYWRkciA9IG9ial9zZWN0aW9uX2FkZHIgKHNlY3QyKTsKICAKICAgIGlmIChzZWN0 MV9hZGRyIDwgc2VjdDJfYWRkcikKLSAgICAgewotKyNpZiAwCS8qIHFzb3J0X2NtcCBJQ0UgKi8K LSAgICAgICBnZGJfYXNzZXJ0IChvYmpfc2VjdGlvbl9lbmRhZGRyIChzZWN0MSkgPD0gc2VjdDJf YWRkcik7Ci0rI2VuZGlmCS8qIHFzb3J0X2NtcCBJQ0UgKi8KLSAgICAgICByZXR1cm4gLTE7Ci0g ICAgIH0KKy0gICAgeworLSAgICAgIGdkYl9hc3NlcnQgKG9ial9zZWN0aW9uX2VuZGFkZHIgKHNl Y3QxKSA8PSBzZWN0Ml9hZGRyKTsKKy0gICAgICByZXR1cm4gLTE7CistICAgIH0KKysgICAgcmV0 dXJuIC0xOwogICAgZWxzZSBpZiAoc2VjdDFfYWRkciA+IHNlY3QyX2FkZHIpCi0gICAgIHsKLSsj aWYgMAkvKiBxc29ydF9jbXAgSUNFICovCi0gICAgICAgZ2RiX2Fzc2VydCAoc2VjdDFfYWRkciA+ PSBvYmpfc2VjdGlvbl9lbmRhZGRyIChzZWN0MikpOwotKyNlbmRpZgkvKiBxc29ydF9jbXAgSUNF ICovCi0gICAgICAgcmV0dXJuIDE7Ci0gICAgIH0KKy0gICAgeworLSAgICAgIGdkYl9hc3NlcnQg KHNlY3QxX2FkZHIgPj0gb2JqX3NlY3Rpb25fZW5kYWRkciAoc2VjdDIpKTsKKy0gICAgICByZXR1 cm4gMTsKKy0gICAgfQorKyAgICByZXR1cm4gMTsKICAKLUBAIC04NDEsMTEgKzg0NSwxMyBAQCBx c29ydF9jbXAgKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpCi0gc3RhdGljIHN0cnVjdCBv Ympfc2VjdGlvbiAqCi0gcHJlZmVycmVkX29ial9zZWN0aW9uIChzdHJ1Y3Qgb2JqX3NlY3Rpb24g KmEsIHN0cnVjdCBvYmpfc2VjdGlvbiAqYikKKyAgIHJldHVybiAwOworIH0KK0BAIC04MjMsMTIg KzgxNywxMzMgQEAgcHJlZmVycmVkX29ial9zZWN0aW9uIChzdHJ1Y3Qgb2JqX3NlY3RpbworICAg cmV0dXJuIGI7CisgfQorIAorKy8qIFJldHVybiAxIGlmIFNFQ1RJT04gc2hvdWxkIGJlIGluc2Vy dGVkIGludG8gdGhlIHNlY3Rpb24gbWFwLgorKyAgIFdlIHdhbnQgdG8gaW5zZXJ0IG9ubHkgbm9u LW92ZXJsYXkgYW5kIG5vbi1UTFMgc2VjdGlvbi4gICovCisrCisrc3RhdGljIGludAorK2luc2Vy dF9zZWN0aW9uX3AgKGNvbnN0IHN0cnVjdCBiZmQgKmFiZmQsCisrCQkgIGNvbnN0IHN0cnVjdCBi ZmRfc2VjdGlvbiAqc2VjdGlvbikKKyt7CisrICBjb25zdCBiZmRfdm1hIGxtYSA9IGJmZF9zZWN0 aW9uX2xtYSAoYWJmZCwgc2VjdGlvbik7CisrCisrICBpZiAobG1hICE9IDAgJiYgbG1hICE9IGJm ZF9zZWN0aW9uX3ZtYSAoYWJmZCwgc2VjdGlvbikKKysgICAgICAmJiAoYmZkX2dldF9maWxlX2Zs YWdzIChhYmZkKSAmIEJGRF9JTl9NRU1PUlkpID09IDApCisrICAgIC8qIFRoaXMgaXMgYW4gb3Zl cmxheSBzZWN0aW9uLiAgSU5fTUVNT1JZIGNoZWNrIGlzIG5lZWRlZCB0byBhdm9pZAorKyAgICAg ICBkaXNjYXJkaW5nIHNlY3Rpb25zIGZyb20gdGhlICJzeXN0ZW0gc3VwcGxpZWQgRFNPIiAoYWth IHZkc28pCisrICAgICAgIG9uIExpbnV4LiAgKi8KKysgICAgcmV0dXJuIDA7CisrICBpZiAoKGJm ZF9nZXRfc2VjdGlvbl9mbGFncyAoYWJmZCwgc2VjdGlvbikgJiBTRUNfVEhSRUFEX0xPQ0FMKSAh PSAwKQorKyAgICAvKiBUaGlzIGlzIGEgVExTIHNlY3Rpb24uICAqLworKyAgICByZXR1cm4gMDsK KysKKysgIHJldHVybiAxOworK30KKysKKysvKiBGaWx0ZXIgb3V0IG92ZXJsYXBwaW5nIHNlY3Rp b25zIHdoZXJlIG9uZSBzZWN0aW9uIGNhbWUgZnJvbSB0aGUgcmVhbAorKyAgIG9iamZpbGUsIGFu ZCB0aGUgb3RoZXIgZnJvbSBhIHNlcGFyYXRlIGRlYnVnaW5mbyBmaWxlLgorKyAgIFJldHVybiB0 aGUgc2l6ZSBvZiB0YWJsZSBhZnRlciByZWR1bmRhbnQgc2VjdGlvbnMgaGF2ZSBiZWVuIGVsaW1p bmF0ZWQuICAqLworKworK3N0YXRpYyBpbnQKKytmaWx0ZXJfZGVidWdpbmZvX3NlY3Rpb25zIChz dHJ1Y3Qgb2JqX3NlY3Rpb24gKiptYXAsIGludCBtYXBfc2l6ZSkKKyt7CisrICBpbnQgaSwgajsK KysKKysgIGZvciAoaSA9IDAsIGogPSAwOyBpIDwgbWFwX3NpemUgLSAxOyBpKyspCisrICAgIHsK KysgICAgICBzdHJ1Y3Qgb2JqX3NlY3Rpb24gKmNvbnN0IHNlY3QxID0gbWFwW2ldOworKyAgICAg IHN0cnVjdCBvYmpfc2VjdGlvbiAqY29uc3Qgc2VjdDIgPSBtYXBbaSArIDFdOworKyAgICAgIGNv bnN0IHN0cnVjdCBvYmpmaWxlICpjb25zdCBvYmpmaWxlMSA9IHNlY3QxLT5vYmpmaWxlOworKyAg ICAgIGNvbnN0IHN0cnVjdCBvYmpmaWxlICpjb25zdCBvYmpmaWxlMiA9IHNlY3QyLT5vYmpmaWxl OworKyAgICAgIGNvbnN0IENPUkVfQUREUiBzZWN0MV9hZGRyID0gb2JqX3NlY3Rpb25fYWRkciAo c2VjdDEpOworKyAgICAgIGNvbnN0IENPUkVfQUREUiBzZWN0Ml9hZGRyID0gb2JqX3NlY3Rpb25f YWRkciAoc2VjdDIpOworKworKyAgICAgIGlmIChzZWN0MV9hZGRyID09IHNlY3QyX2FkZHIKKysJ ICAmJiAob2JqZmlsZTEtPnNlcGFyYXRlX2RlYnVnX29iamZpbGUgPT0gb2JqZmlsZTIKKysJICAg ICAgfHwgb2JqZmlsZTItPnNlcGFyYXRlX2RlYnVnX29iamZpbGUgPT0gb2JqZmlsZTEpKQorKwl7 CisrCSAgbWFwW2orK10gPSBwcmVmZXJyZWRfb2JqX3NlY3Rpb24gKHNlY3QxLCBzZWN0Mik7Cisr CSAgKytpOworKwl9CisrICAgICAgZWxzZQorKwltYXBbaisrXSA9IHNlY3QxOworKyAgICB9Cisr CisrICBpZiAoaSA8IG1hcF9zaXplKQorKyAgICBtYXBbaisrXSA9IG1hcFtpXTsKKysKKysgIC8q IFRoZSBtYXAgc2hvdWxkIG5vdCBoYXZlIHNocnVuayB0byBsZXNzIHRoYW4gaGFsZiB0aGUgb3Jp Z2luYWwgc2l6ZS4gICovCisrICBnZGJfYXNzZXJ0IChtYXBfc2l6ZSAvIDIgPD0gaik7CisrCisr ICByZXR1cm4gajsKKyt9CisrCisrLyogRmlsdGVyIG91dCBvdmVybGFwcGluZyBzZWN0aW9ucywg aXNzdWluZyBhIHdhcm5pbmcgaWYgYW55IGFyZSBmb3VuZC4KKysgICBPdmVybGFwcGluZyBzZWN0 aW9ucyBjb3VsZCByZWFsbHkgYmUgb3ZlcmxheSBzZWN0aW9ucyB3aGljaCB3ZSBkaWRuJ3QKKysg ICBjbGFzc2lmeSBhcyBzdWNoIGluIGluc2VydF9zZWN0aW9uX3AsIG9yIHdlIGNvdWxkIGJlIGRl YWxpbmcgd2l0aCBhCisrICAgY29ycnVwdCBiaW5hcnkuICAqLworKworK3N0YXRpYyBpbnQKKytm aWx0ZXJfb3ZlcmxhcHBpbmdfc2VjdGlvbnMgKHN0cnVjdCBvYmpfc2VjdGlvbiAqKm1hcCwgaW50 IG1hcF9zaXplKQorK3sKKysgIGludCBpLCBqOworKworKyAgZm9yIChpID0gMCwgaiA9IDA7IGkg PCBtYXBfc2l6ZSAtIDE7ICkKKysgICAgeworKyAgICAgIGludCBrOworKworKyAgICAgIG1hcFtq KytdID0gbWFwW2ldOworKyAgICAgIGZvciAoayA9IGkgKyAxOyBrIDwgbWFwX3NpemU7IGsrKykK KysJeworKwkgIHN0cnVjdCBvYmpfc2VjdGlvbiAqY29uc3Qgc2VjdDEgPSBtYXBbaV07CisrCSAg c3RydWN0IG9ial9zZWN0aW9uICpjb25zdCBzZWN0MiA9IG1hcFtrXTsKKysJICBjb25zdCBDT1JF X0FERFIgc2VjdDFfYWRkciA9IG9ial9zZWN0aW9uX2FkZHIgKHNlY3QxKTsKKysJICBjb25zdCBD T1JFX0FERFIgc2VjdDJfYWRkciA9IG9ial9zZWN0aW9uX2FkZHIgKHNlY3QyKTsKKysJICBjb25z dCBDT1JFX0FERFIgc2VjdDFfZW5kYWRkciA9IG9ial9zZWN0aW9uX2VuZGFkZHIgKHNlY3QxKTsK KysKKysJICBnZGJfYXNzZXJ0IChzZWN0MV9hZGRyIDw9IHNlY3QyX2FkZHIpOworKworKwkgIGlm IChzZWN0MV9lbmRhZGRyIDw9IHNlY3QyX2FkZHIpCisrCSAgICBicmVhazsKKysJICBlbHNlCisr CSAgICB7CisrCSAgICAgIC8qIFdlIGhhdmUgYW4gb3ZlcmxhcC4gIFJlcG9ydCBpdC4gICovCisr CisrCSAgICAgIHN0cnVjdCBvYmpmaWxlICpjb25zdCBvYmpmMSA9IHNlY3QxLT5vYmpmaWxlOwor KwkgICAgICBzdHJ1Y3Qgb2JqZmlsZSAqY29uc3Qgb2JqZjIgPSBzZWN0Mi0+b2JqZmlsZTsKKysK KysJICAgICAgY29uc3Qgc3RydWN0IGJmZCAqY29uc3QgYWJmZDEgPSBvYmpmMS0+b2JmZDsKKysJ ICAgICAgY29uc3Qgc3RydWN0IGJmZCAqY29uc3QgYWJmZDIgPSBvYmpmMi0+b2JmZDsKKysKKysJ ICAgICAgY29uc3Qgc3RydWN0IGJmZF9zZWN0aW9uICpjb25zdCBiZmRzMSA9IHNlY3QxLT50aGVf YmZkX3NlY3Rpb247CisrCSAgICAgIGNvbnN0IHN0cnVjdCBiZmRfc2VjdGlvbiAqY29uc3QgYmZk czIgPSBzZWN0Mi0+dGhlX2JmZF9zZWN0aW9uOworKworKwkgICAgICBjb25zdCBDT1JFX0FERFIg c2VjdDJfZW5kYWRkciA9IG9ial9zZWN0aW9uX2VuZGFkZHIgKHNlY3QyKTsKKysKKysJICAgICAg c3RydWN0IGdkYmFyY2ggKmNvbnN0IGdkYmFyY2ggPSBnZXRfb2JqZmlsZV9hcmNoIChvYmpmMSk7 CisrCisrCSAgICAgIHdhcm5pbmcgKF8oIlVuZXhwZWN0ZWQgb3ZlcmxhcCBiZXR3ZWVuICIKKysJ CQkgInNlY3Rpb24gYCVzJyBmcm9tIGAlcycgWyVzLCAlcykgYW5kICIKKysJCQkgInNlY3Rpb24g YCVzJyBmcm9tIGAlcycgWyVzLCAlcykiKSwKKysJCSAgICAgICBiZmRfc2VjdGlvbl9uYW1lIChh YmZkMSwgYmZkczEpLCBvYmpmMS0+bmFtZSwKKysJCSAgICAgICBwYWRkcmVzcyAoZ2RiYXJjaCwg c2VjdDFfYWRkciksCisrCQkgICAgICAgcGFkZHJlc3MgKGdkYmFyY2gsIHNlY3QxX2VuZGFkZHIp LAorKwkJICAgICAgIGJmZF9zZWN0aW9uX25hbWUgKGFiZmQyLCBiZmRzMiksIG9iamYyLT5uYW1l LAorKwkJICAgICAgIHBhZGRyZXNzIChnZGJhcmNoLCBzZWN0Ml9hZGRyKSwKKysJCSAgICAgICBw YWRkcmVzcyAoZ2RiYXJjaCwgc2VjdDJfZW5kYWRkcikpOworKwkgICAgfQorKwl9CisrICAgICAg aSA9IGs7CisrICAgIH0KKysgIHJldHVybiBtYXBfc2l6ZTsKKyt9CisrCisrCisgLyogVXBkYXRl IFBNQVAsIFBNQVBfU0laRSB3aXRoIG5vbi1UTFMgc2VjdGlvbnMgZnJvbSBhbGwgb2JqZmlsZXMu ICAqLworIAorIHN0YXRpYyB2b2lkCisgdXBkYXRlX3NlY3Rpb25fbWFwIChzdHJ1Y3Qgb2JqX3Nl Y3Rpb24gKioqcG1hcCwgaW50ICpwbWFwX3NpemUpCiAgewotKyNpZiAwCS8qIHFzb3J0X2NtcCBJ Q0UgKi8KLSAgIGdkYl9hc3NlcnQgKG9ial9zZWN0aW9uX2FkZHIgKGEpID09IG9ial9zZWN0aW9u X2FkZHIgKGIpKTsKLSAgIGdkYl9hc3NlcnQgKChhLT5vYmpmaWxlLT5zZXBhcmF0ZV9kZWJ1Z19v YmpmaWxlID09IGItPm9iamZpbGUpCi0gCSAgICAgIHx8IChiLT5vYmpmaWxlLT5zZXBhcmF0ZV9k ZWJ1Z19vYmpmaWxlID09IGEtPm9iamZpbGUpKTsKLSAgIGdkYl9hc3NlcnQgKChhLT5vYmpmaWxl LT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlX2JhY2tsaW5rID09IGItPm9iamZpbGUpCi0gCSAgICAg IHx8IChiLT5vYmpmaWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlX2JhY2tsaW5rID09IGEtPm9i amZpbGUpKTsKLSsjZW5kaWYJLyogcXNvcnRfY21wIElDRSAqLworLSAgaW50IG1hcF9zaXplLCBp LCBqOworKyAgaW50IGFsbG9jX3NpemUsIG1hcF9zaXplLCBpOworICAgc3RydWN0IG9ial9zZWN0 aW9uICpzLCAqKm1hcDsKKyAgIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlOworIAorQEAgLTgzNyw1 NSArOTUyLDI3IEBAIHVwZGF0ZV9zZWN0aW9uX21hcCAoc3RydWN0IG9ial9zZWN0aW9uICoKKyAg IG1hcCA9ICpwbWFwOworICAgeGZyZWUgKG1hcCk7CisgCistI2RlZmluZSBpbnNlcnRfcChvYmpm LCBzZWMpIFwKKy0gICgoYmZkX2dldF9zZWN0aW9uX2ZsYWdzICgob2JqZiktPm9iZmQsIChzZWMp LT50aGVfYmZkX3NlY3Rpb24pIFwKKy0gICAgJiBTRUNfVEhSRUFEX0xPQ0FMKSA9PSAwKQorLQor LSAgbWFwX3NpemUgPSAwOworKyAgYWxsb2Nfc2l6ZSA9IDA7CisgICBBTExfT0JKU0VDVElPTlMg KG9iamZpbGUsIHMpCistICAgIGlmIChpbnNlcnRfcCAob2JqZmlsZSwgcykpCistICAgICAgbWFw X3NpemUgKz0gMTsKKysgICAgaWYgKGluc2VydF9zZWN0aW9uX3AgKG9iamZpbGUtPm9iZmQsIHMt PnRoZV9iZmRfc2VjdGlvbikpCisrICAgICAgYWxsb2Nfc2l6ZSArPSAxOworIAorLSAgbWFwID0g eG1hbGxvYyAobWFwX3NpemUgKiBzaXplb2YgKCptYXApKTsKKysgIG1hcCA9IHhtYWxsb2MgKGFs bG9jX3NpemUgKiBzaXplb2YgKCptYXApKTsKKyAKKyAgIGkgPSAwOworICAgQUxMX09CSlNFQ1RJ T05TIChvYmpmaWxlLCBzKQorLSAgICBpZiAoaW5zZXJ0X3AgKG9iamZpbGUsIHMpKQorKyAgICBp ZiAoaW5zZXJ0X3NlY3Rpb25fcCAob2JqZmlsZS0+b2JmZCwgcy0+dGhlX2JmZF9zZWN0aW9uKSkK KyAgICAgICBtYXBbaSsrXSA9IHM7CiAgCi0gICBpZiAoYS0+b2JqZmlsZS0+c2VwYXJhdGVfZGVi dWdfb2JqZmlsZSAhPSBOVUxMKQotICAgICByZXR1cm4gYTsKLUBAIC05MDgsNyArOTE0LDkgQEAg dXBkYXRlX3NlY3Rpb25fbWFwIChzdHJ1Y3Qgb2JqX3NlY3Rpb24gKgotICAgICB7Ci0gICAgICAg LyogU29tZSBkdXBsaWNhdGVzIHdlcmUgZWxpbWluYXRlZC4KLSAJIFRoZSBuZXcgc2l6ZSBzaG91 bGRuJ3QgYmUgbGVzcyB0aGFuIGhhbGYgb2YgdGhlIG9yaWdpbmFsLiAqLwotKyNpZiAwCS8qIHFz b3J0X2NtcCBJQ0UgKi8KLSAgICAgICBnZGJfYXNzZXJ0IChtYXBfc2l6ZSAvIDIgPD0gaik7Ci0r I2VuZGlmCS8qIHFzb3J0X2NtcCBJQ0UgKi8KLSAgICAgICBtYXBfc2l6ZSA9IGo7CistI3VuZGVm IGluc2VydF9wCistCistICBxc29ydCAobWFwLCBtYXBfc2l6ZSwgc2l6ZW9mICgqbWFwKSwgcXNv cnRfY21wKTsKKy0KKy0gIC8qIFdpdGggc2VwYXJhdGUgZGVidWdpbmZvIGZpbGVzLCB3ZSBtYXkg aGF2ZSB1cCB0byB0d28gKGFsbW9zdCkKKy0gICAgIGlkZW50aWNhbCBjb3BpZXMgb2Ygc29tZSBv Ympfc2VjdGlvbnMgaW4gdGhlIG1hcC4KKy0gICAgIEZpbHRlciBvdXQgZHVwbGljYXRlcy4gICov CistICBmb3IgKGkgPSAwLCBqID0gMDsgaSA8IG1hcF9zaXplOyArK2kpCistICAgIHsKKy0gICAg ICBzdHJ1Y3Qgb2JqX3NlY3Rpb24gKnNlY3QxID0gbWFwW2ldOworLSAgICAgIHN0cnVjdCBvYmpf c2VjdGlvbiAqc2VjdDIgPSAoaSArIDEgPCBtYXBfc2l6ZSkgPyBtYXBbaSArIDFdIDogTlVMTDsK Ky0KKy0gICAgICBpZiAoc2VjdDIgPT0gTlVMTAorLQkgIHx8IG9ial9zZWN0aW9uX2FkZHIgKHNl Y3QxKSAhPSBvYmpfc2VjdGlvbl9hZGRyIChzZWN0MikpCistCW1hcFtqKytdID0gc2VjdDE7Cist ICAgICAgZWxzZQorLQl7CistCSAgbWFwW2orK10gPSBwcmVmZXJyZWRfb2JqX3NlY3Rpb24gKHNl Y3QxLCBzZWN0Mik7CistCSAgKytpOworLQl9CistICAgIH0KKy0KKy0gIGlmIChqIDwgbWFwX3Np emUpCistICAgIHsKKy0gICAgICAvKiBTb21lIGR1cGxpY2F0ZXMgd2VyZSBlbGltaW5hdGVkLgor LQkgVGhlIG5ldyBzaXplIHNob3VsZG4ndCBiZSBsZXNzIHRoYW4gaGFsZiBvZiB0aGUgb3JpZ2lu YWwuICovCistICAgICAgZ2RiX2Fzc2VydCAobWFwX3NpemUgLyAyIDw9IGopOworLSAgICAgIG1h cF9zaXplID0gajsKKy0KKy0gICAgICBtYXAgPSB4cmVhbGxvYyAobWFwLCBtYXBfc2l6ZSAqIHNp emVvZiAoKm1hcCkpOyAgLyogVHJpbSBleGNlc3Mgc3BhY2UuICAqLworLSAgICB9CisrICBxc29y dCAobWFwLCBhbGxvY19zaXplLCBzaXplb2YgKCptYXApLCBxc29ydF9jbXApOworKyAgbWFwX3Np emUgPSBmaWx0ZXJfZGVidWdpbmZvX3NlY3Rpb25zKG1hcCwgYWxsb2Nfc2l6ZSk7CisrICBtYXBf c2l6ZSA9IGZpbHRlcl9vdmVybGFwcGluZ19zZWN0aW9ucyhtYXAsIG1hcF9zaXplKTsKKysKKysg IGlmIChtYXBfc2l6ZSA8IGFsbG9jX3NpemUpCisrICAgIC8qIFNvbWUgc2VjdGlvbnMgd2VyZSBl bGltaW5hdGVkLiAgVHJpbSBleGNlc3Mgc3BhY2UuICAqLworKyAgICBtYXAgPSB4cmVhbGxvYyAo bWFwLCBtYXBfc2l6ZSAqIHNpemVvZiAoKm1hcCkpOworICAgZWxzZQorLSAgICBnZGJfYXNzZXJ0 IChqID09IG1hcF9zaXplKTsKKysgICAgZ2RiX2Fzc2VydCAoYWxsb2Nfc2l6ZSA9PSBtYXBfc2l6 ZSk7CiAgCi0gICAgICAgbWFwID0geHJlYWxsb2MgKG1hcCwgbWFwX3NpemUgKiBzaXplb2YgKCpt YXApKTsgIC8qIFRyaW0gZXhjZXNzIHNwYWNlLiAgKi8KKyAgICpwbWFwID0gbWFwOworICAgKnBt YXBfc2l6ZSA9IG1hcF9zaXplOwogCiAyMDA5LTA4LTI1ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5r cmF0b2NodmlsQHJlZGhhdC5jb20+CiAKCmRpZmYgLS1naXQgYS9nZGItYno1MjAxMjktZHJvdy1i aXRmaWVsZHMucGF0Y2ggYi9nZGItYno1MjAxMjktZHJvdy1iaXRmaWVsZHMucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODFlY2YxYgotLS0gL2Rldi9udWxsCisrKyBi L2dkYi1iejUyMDEyOS1kcm93LWJpdGZpZWxkcy5wYXRjaApAQCAtMCwwICsxLDI0NSBAQAoraHR0 cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1jdnMvMjAwOS0wNy9tc2cwMDE0My5odG1sCisKKzIw MDktMDctMjEgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGNvZGVzb3VyY2VyeS5jb20+CisJICAg IFZsYWRpbWlyIFBydXMgPHZsYWRpbWlyQGNvZGVzb3VyY2VyeS5jb20+CisKKwkqIHZhbG9wcy5j ICh2YWx1ZV9mZXRjaF9sYXp5KTogSGFuZGxlIGJpdGZpZWxkcyBleHBsaWNpdGx5LgorCSh2YWx1 ZV9hc3NpZ24pOiBSZW1vdmUgdW5uZWNlc3NhcnkgRklYTUUuICBIb25vciB0aGUgY29udGFpbmVy CisJdHlwZSBvZiBiaXRmaWVsZHMgaWYgcG9zc2libGUuCisJKiB2YWx1ZS5jIChzdHJ1Y3QgdmFs dWUpOiBBZGQgcGFyZW50IGZpZWxkLgorCSh2YWx1ZV9wYXJlbnQpOiBOZXcgZnVuY3Rpb24uCisJ KHZhbHVlX2ZyZWUpOiBGcmVlIHRoZSBwYXJlbnQgYWxzby4KKwkodmFsdWVfY29weSk6IENvcHkg dGhlIHBhcmVudCBhbHNvLgorCSh2YWx1ZV9wcmltaXRpdmVfZmllbGQpOiBEbyBub3QgcmVhZCB0 aGUgY29udGVudHMgb2YgYSBsYXp5CisJdmFsdWUgdG8gY3JlYXRlIGEgY2hpbGQgYml0ZmllbGQg dmFsdWUuICBTZXQgYml0cG9zIGFuZCBvZmZzZXQKKwlhY2NvcmRpbmcgdG8gdGhlIGNvbnRhaW5l ciB0eXBlIGlmIHBvc3NpYmxlLgorCSh1bnBhY2tfYml0c19hc19sb25nKTogUmVuYW1lIGZyb20g dW5wYWNrX2ZpZWxkX2FzX2xvbmcuICBUYWtlCisJZmllbGRfdHlwZSwgYml0cG9zLCBhbmQgYml0 c2l6ZSBpbnN0ZWFkIG9mIHR5cGUgYW5kIGZpZWxkbm8uCisJKHVucGFja19maWVsZF9hc19sb25n KTogVXNlIHVucGFja19iaXRzX2FzX2xvbmcuCisJKiB2YWx1ZS5oICh2YWx1ZV9wYXJlbnQsIHVu cGFja19iaXRzX2FzX2xvbmcpOiBOZXcgcHJvdG90eXBlcy4KKworWyBSZXZlcnRlZCwgYmFja3Bv cnRlZCBmb3IgRmVkb3JhLiAgXQorCistLS0gLi9nZGIvdmFsb3BzLmMJMjAwOS0wOC0yOCAxOToy NzozMC4wMDAwMDAwMDAgKzAyMDAKKysrKyAuL2dkYi92YWxvcHMuYwkyMDA5LTA4LTI4IDE5OjI3 OjU5LjAwMDAwMDAwMCArMDIwMAorQEAgLTY4OSwyNSArNjg5LDcgQEAgdmFsdWVfZmV0Y2hfbGF6 eSAoc3RydWN0IHZhbHVlICp2YWwpCisgeworICAgZ2RiX2Fzc2VydCAodmFsdWVfbGF6eSAodmFs KSk7CisgICBhbGxvY2F0ZV92YWx1ZV9jb250ZW50cyAodmFsKTsKKy0gIGlmICh2YWx1ZV9iaXRz aXplICh2YWwpKQorLSAgICB7CistICAgICAgLyogVG8gcmVhZCBhIGxhenkgYml0ZmllbGQsIHJl YWQgdGhlIGVudGlyZSBlbmNsb3NpbmcgdmFsdWUuICBUaGlzCistCSBwcmV2ZW50cyByZWFkaW5n IHRoZSBzYW1lIGJsb2NrIG9mIChwb3NzaWJseSB2b2xhdGlsZSkgbWVtb3J5IG9uY2UKKy0gICAg ICAgICBwZXIgYml0ZmllbGQuICBJdCB3b3VsZCBiZSBldmVuIGJldHRlciB0byByZWFkIG9ubHkg dGhlIGNvbnRhaW5pbmcKKy0gICAgICAgICB3b3JkLCBidXQgd2UgaGF2ZSBubyB3YXkgdG8gcmVj b3JkIHRoYXQganVzdCBzcGVjaWZpYyBiaXRzIG9mIGEKKy0gICAgICAgICB2YWx1ZSBoYXZlIGJl ZW4gZmV0Y2hlZC4gICovCistICAgICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVm ICh2YWx1ZV90eXBlICh2YWwpKTsKKy0gICAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9 IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2V0X3R5cGVfYXJjaCAodHlwZSkpOworLSAgICAgIHN0cnVj dCB2YWx1ZSAqcGFyZW50ID0gdmFsdWVfcGFyZW50ICh2YWwpOworLSAgICAgIExPTkdFU1Qgb2Zm c2V0ID0gdmFsdWVfb2Zmc2V0ICh2YWwpOworLSAgICAgIExPTkdFU1QgbnVtID0gdW5wYWNrX2Jp dHNfYXNfbG9uZyAodmFsdWVfdHlwZSAodmFsKSwKKy0JCQkJCSB2YWx1ZV9jb250ZW50cyAocGFy ZW50KSArIG9mZnNldCwKKy0JCQkJCSB2YWx1ZV9iaXRwb3MgKHZhbCksCistCQkJCQkgdmFsdWVf Yml0c2l6ZSAodmFsKSk7CistICAgICAgaW50IGxlbmd0aCA9IFRZUEVfTEVOR1RIICh0eXBlKTsK Ky0gICAgICBzdG9yZV9zaWduZWRfaW50ZWdlciAodmFsdWVfY29udGVudHNfcmF3ICh2YWwpLCBs ZW5ndGgsIGJ5dGVfb3JkZXIsIG51bSk7CistICAgIH0KKy0gIGVsc2UgaWYgKFZBTFVFX0xWQUwg KHZhbCkgPT0gbHZhbF9tZW1vcnkpCisrICBpZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX21l bW9yeSkKKyAgICAgeworICAgICAgIENPUkVfQUREUiBhZGRyID0gdmFsdWVfcmF3X2FkZHJlc3Mg KHZhbCk7CisgCitAQCAtODgzLDIwICs4NjUsMTMgQEAgdmFsdWVfYXNzaWduIChzdHJ1Y3QgdmFs dWUgKnRvdmFsLCBzdHJ1YworIAorIAlpZiAodmFsdWVfYml0c2l6ZSAodG92YWwpKQorIAkgIHsK KysJICAgIC8qIFdlIGFzc3VtZSB0aGF0IHRoZSBhcmd1bWVudCB0byByZWFkX21lbW9yeSBpcyBp biB1bml0cworKwkgICAgICAgb2YgaG9zdCBjaGFycy4gIEZJWE1FOiBJcyB0aGF0IGNvcnJlY3Q/ ICAqLworIAkgICAgY2hhbmdlZF9sZW4gPSAodmFsdWVfYml0cG9zICh0b3ZhbCkKKyAJCQkgICAr IHZhbHVlX2JpdHNpemUgKHRvdmFsKQorIAkJCSAgICsgSE9TVF9DSEFSX0JJVCAtIDEpCisgCSAg ICAgIC8gSE9TVF9DSEFSX0JJVDsKKyAKKy0JICAgIC8qIElmIHdlIGNhbiByZWFkLW1vZGlmeS13 cml0ZSBleGFjdGx5IHRoZSBzaXplIG9mIHRoZQorLQkgICAgICAgY29udGFpbmluZyB0eXBlIChl LmcuIHNob3J0IG9yIGludCkgdGhlbiBkbyBzby4gIFRoaXMKKy0JICAgICAgIGlzIHNhZmVyIGZv ciB2b2xhdGlsZSBiaXRmaWVsZHMgbWFwcGVkIHRvIGhhcmR3YXJlCistCSAgICAgICByZWdpc3Rl cnMuICAqLworLQkgICAgaWYgKGNoYW5nZWRfbGVuIDwgVFlQRV9MRU5HVEggKHR5cGUpCistCQkm JiBUWVBFX0xFTkdUSCAodHlwZSkgPD0gKGludCkgc2l6ZW9mIChMT05HRVNUKQorLQkJJiYgKChM T05HRVNUKSB2YWx1ZV9hZGRyZXNzICh0b3ZhbCkgJSBUWVBFX0xFTkdUSCAodHlwZSkpID09IDAp CistCSAgICAgIGNoYW5nZWRfbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOworLQorIAkgICAgaWYg KGNoYW5nZWRfbGVuID4gKGludCkgc2l6ZW9mIChMT05HRVNUKSkKKyAJICAgICAgZXJyb3IgKF8o IkNhbid0IGhhbmRsZSBiaXRmaWVsZHMgd2hpY2ggZG9uJ3QgZml0IGluIGEgJWQgYml0IHdvcmQu IiksCisgCQkgICAgIChpbnQpIHNpemVvZiAoTE9OR0VTVCkgKiBIT1NUX0NIQVJfQklUKTsKKy0t LSAuL2dkYi92YWx1ZS5jCTIwMDktMDgtMjggMTk6Mjc6MjkuMDAwMDAwMDAwICswMjAwCisrKysg Li9nZGIvdmFsdWUuYwkyMDA5LTA4LTI4IDE5OjI4OjM0LjAwMDAwMDAwMCArMDIwMAorQEAgLTEx MCwxMSArMTEwLDYgQEAgc3RydWN0IHZhbHVlCisgICAgICBnZGJhcmNoX2JpdHNfYmlnX2VuZGlh bj0xIHRhcmdldHMsIGl0IGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgTVNCLiAqLworICAgaW50IGJp dHBvczsKKyAKKy0gIC8qIE9ubHkgdXNlZCBmb3IgYml0ZmllbGRzOyB0aGUgY29udGFpbmluZyB2 YWx1ZS4gIFRoaXMgYWxsb3dzIGEKKy0gICAgIHNpbmdsZSByZWFkIGZyb20gdGhlIHRhcmdldCB3 aGVuIGRpc3BsYXlpbmcgbXVsdGlwbGUKKy0gICAgIGJpdGZpZWxkcy4gICovCistICBzdHJ1Y3Qg dmFsdWUgKnBhcmVudDsKKy0KKyAgIC8qIEZyYW1lIHJlZ2lzdGVyIHZhbHVlIGlzIHJlbGF0aXZl IHRvLiAgVGhpcyB3aWxsIGJlIGRlc2NyaWJlZCBpbgorICAgICAgdGhlIGx2YWwgZW51bSBhYm92 ZSBhcyAibHZhbF9yZWdpc3RlciIuICAqLworICAgc3RydWN0IGZyYW1lX2lkIGZyYW1lX2lkOwor QEAgLTM5MiwxMiArMzg3LDYgQEAgc2V0X3ZhbHVlX2JpdHNpemUgKHN0cnVjdCB2YWx1ZSAqdmFs dWUsIAorICAgdmFsdWUtPmJpdHNpemUgPSBiaXQ7CisgfQorIAorLXN0cnVjdCB2YWx1ZSAqCist dmFsdWVfcGFyZW50IChzdHJ1Y3QgdmFsdWUgKnZhbHVlKQorLXsKKy0gIHJldHVybiB2YWx1ZS0+ cGFyZW50OworLX0KKy0KKyBnZGJfYnl0ZSAqCisgdmFsdWVfY29udGVudHNfcmF3IChzdHJ1Y3Qg dmFsdWUgKnZhbHVlKQorIHsKK0BAIC02MTcsMTEgKzYwNiw2IEBAIHZhbHVlX2ZyZWUgKHN0cnVj dCB2YWx1ZSAqdmFsKQorICAgICAgIGlmICh2YWwtPnJlZmVyZW5jZV9jb3VudCA+IDApCisgCXJl dHVybjsKKyAKKy0gICAgICAvKiBJZiB0aGVyZSdzIGFuIGFzc29jaWF0ZWQgcGFyZW50IHZhbHVl LCBkcm9wIG91ciByZWZlcmVuY2UgdG8KKy0JIGl0LiAgKi8KKy0gICAgICBpZiAodmFsLT5wYXJl bnQgIT0gTlVMTCkKKy0JdmFsdWVfZnJlZSAodmFsLT5wYXJlbnQpOworLQorICAgICAgIHR5cGVf ZGVjcmVmICh2YWwtPnR5cGUpOworICAgICAgIHR5cGVfZGVjcmVmICh2YWwtPmVuY2xvc2luZ190 eXBlKTsKKyAKK0BAIC03NTAsOSArNzM0LDYgQEAgdmFsdWVfY29weSAoc3RydWN0IHZhbHVlICph cmcpCisgCSAgICAgIFRZUEVfTEVOR1RIICh2YWx1ZV9lbmNsb3NpbmdfdHlwZSAoYXJnKSkpOwor IAorICAgICB9CistICB2YWwtPnBhcmVudCA9IGFyZy0+cGFyZW50OworLSAgaWYgKHZhbC0+cGFy ZW50KQorLSAgICB2YWx1ZV9pbmNyZWYgKHZhbC0+cGFyZW50KTsKKyAgIGlmIChWQUxVRV9MVkFM ICh2YWwpID09IGx2YWxfY29tcHV0ZWQpCisgICAgIHsKKyAgICAgICBzdHJ1Y3QgbHZhbF9mdW5j cyAqZnVuY3MgPSB2YWwtPmxvY2F0aW9uLmNvbXB1dGVkLmZ1bmNzOworQEAgLTE5NDYsMjggKzE5 MjcsMTUgQEAgdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZworIAorICAg aWYgKFRZUEVfRklFTERfQklUU0laRSAoYXJnX3R5cGUsIGZpZWxkbm8pKQorICAgICB7CistICAg ICAgLyogQ3JlYXRlIGEgbmV3IHZhbHVlIGZvciB0aGUgYml0ZmllbGQsIHdpdGggYml0cG9zIGFu ZCBiaXRzaXplCistCSBzZXQuICBJZiBwb3NzaWJsZSwgYXJyYW5nZSBvZmZzZXQgYW5kIGJpdHBv cyBzbyB0aGF0IHdlIGNhbgorLQkgZG8gYSBzaW5nbGUgYWxpZ25lZCByZWFkIG9mIHRoZSBzaXpl IG9mIHRoZSBjb250YWluaW5nIHR5cGUuCistCSBPdGhlcndpc2UsIGFkanVzdCBvZmZzZXQgdG8g dGhlIGJ5dGUgY29udGFpbmluZyB0aGUgZmlyc3QKKy0JIGJpdC4gIEFzc3VtZSB0aGF0IHRoZSBh ZGRyZXNzLCBvZmZzZXQsIGFuZCBlbWJlZGRlZCBvZmZzZXQKKy0JIGFyZSBzdWZmaWNpZW50bHkg YWxpZ25lZC4gICovCistICAgICAgaW50IGJpdHBvcyA9IFRZUEVfRklFTERfQklUUE9TIChhcmdf dHlwZSwgZmllbGRubyk7CistICAgICAgaW50IGNvbnRhaW5lcl9iaXRzaXplID0gVFlQRV9MRU5H VEggKHR5cGUpICogODsKKy0KKy0gICAgICB2ID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAodHlwZSk7 CisrICAgICAgdiA9IHZhbHVlX2Zyb21fbG9uZ2VzdCAodHlwZSwKKysJCQkgICAgICB1bnBhY2tf ZmllbGRfYXNfbG9uZyAoYXJnX3R5cGUsCisrCQkJCQkJICAgIHZhbHVlX2NvbnRlbnRzIChhcmcx KQorKwkJCQkJCSAgICArIG9mZnNldCwKKysJCQkJCQkgICAgZmllbGRubykpOworKyAgICAgIHYt PmJpdHBvcyA9IFRZUEVfRklFTERfQklUUE9TIChhcmdfdHlwZSwgZmllbGRubykgJSA4OworICAg ICAgIHYtPmJpdHNpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKGFyZ190eXBlLCBmaWVsZG5vKTsK Ky0gICAgICBpZiAoKGJpdHBvcyAlIGNvbnRhaW5lcl9iaXRzaXplKSArIHYtPmJpdHNpemUgPD0g Y29udGFpbmVyX2JpdHNpemUKKy0JICAmJiBUWVBFX0xFTkdUSCAodHlwZSkgPD0gKGludCkgc2l6 ZW9mIChMT05HRVNUKSkKKy0Jdi0+Yml0cG9zID0gYml0cG9zICUgY29udGFpbmVyX2JpdHNpemU7 CistICAgICAgZWxzZQorLQl2LT5iaXRwb3MgPSBiaXRwb3MgJSA4OworLSAgICAgIHYtPm9mZnNl dCA9IHZhbHVlX29mZnNldCAoYXJnMSkgKyB2YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKGFyZzEpCist CSsgKGJpdHBvcyAtIHYtPmJpdHBvcykgLyA4OworLSAgICAgIHYtPnBhcmVudCA9IGFyZzE7Cist ICAgICAgdmFsdWVfaW5jcmVmICh2LT5wYXJlbnQpOworLSAgICAgIGlmICghdmFsdWVfbGF6eSAo YXJnMSkpCistCXZhbHVlX2ZldGNoX2xhenkgKHYpOworKyAgICAgIHYtPm9mZnNldCA9IHZhbHVl X29mZnNldCAoYXJnMSkgKyBvZmZzZXQKKysJKyBUWVBFX0ZJRUxEX0JJVFBPUyAoYXJnX3R5cGUs IGZpZWxkbm8pIC8gODsKKyAgICAgfQorICAgZWxzZSBpZiAoZmllbGRubyA8IFRZUEVfTl9CQVNF Q0xBU1NFUyAoYXJnX3R5cGUpKQorICAgICB7CitAQCAtMjA5NCw5ICsyMDYyLDggQEAgdmFsdWVf Zm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKmFyZzFwLCBzdAorIH0KKyAKKyAMCistLyogVW5wYWNr IGEgYml0ZmllbGQgb2YgdGhlIHNwZWNpZmllZCBGSUVMRF9UWVBFLCBmcm9tIHRoZSBhbm9ueW1v dXMKKy0gICBvYmplY3QgYXQgVkFMQUREUi4gIFRoZSBiaXRmaWVsZCBzdGFydHMgYXQgQklUUE9T IGJpdHMgYW5kIGNvbnRhaW5zCistICAgQklUU0laRSBiaXRzLgorKy8qIFVucGFjayBhIGZpZWxk IEZJRUxETk8gb2YgdGhlIHNwZWNpZmllZCBUWVBFLCBmcm9tIHRoZSBhbm9ueW1vdXMgb2JqZWN0 IGF0CisrICAgVkFMQUREUi4KKyAKKyAgICBFeHRyYWN0aW5nIGJpdHMgZGVwZW5kcyBvbiBlbmRp YW5uZXNzIG9mIHRoZSBtYWNoaW5lLiAgQ29tcHV0ZSB0aGUKKyAgICBudW1iZXIgb2YgbGVhc3Qg c2lnbmlmaWNhbnQgYml0cyB0byBkaXNjYXJkLiAgRm9yIGJpZyBlbmRpYW4gbWFjaGluZXMsCitA QCAtMjExMCwyMSArMjA3NywyNCBAQCB2YWx1ZV9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqYXJn MXAsIHN0CisgICAgSWYgdGhlIGZpZWxkIGlzIHNpZ25lZCwgd2UgYWxzbyBkbyBzaWduIGV4dGVu c2lvbi4gKi8KKyAKKyBMT05HRVNUCistdW5wYWNrX2JpdHNfYXNfbG9uZyAoc3RydWN0IHR5cGUg KmZpZWxkX3R5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorLQkJICAgICBpbnQgYml0cG9z LCBpbnQgYml0c2l6ZSkKKyt1bnBhY2tfZmllbGRfYXNfbG9uZyAoc3RydWN0IHR5cGUgKnR5cGUs IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZmllbGRubykKKyB7CistICBlbnVtIGJmZF9l bmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2V0X3R5cGVfYXJjaCAoZmll bGRfdHlwZSkpOworKyAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVf b3JkZXIgKGdldF90eXBlX2FyY2ggKHR5cGUpKTsKKyAgIFVMT05HRVNUIHZhbDsKKyAgIFVMT05H RVNUIHZhbG1hc2s7CisrICBpbnQgYml0cG9zID0gVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIGZp ZWxkbm8pOworKyAgaW50IGJpdHNpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGZpZWxk bm8pOworICAgaW50IGxzYmNvdW50OworKyAgc3RydWN0IHR5cGUgKmZpZWxkX3R5cGU7CisgCisg ICB2YWwgPSBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgKHZhbGFkZHIgKyBiaXRwb3MgLyA4LAor IAkJCQkgIHNpemVvZiAodmFsKSwgYnl0ZV9vcmRlcik7CisrICBmaWVsZF90eXBlID0gVFlQRV9G SUVMRF9UWVBFICh0eXBlLCBmaWVsZG5vKTsKKyAgIENIRUNLX1RZUEVERUYgKGZpZWxkX3R5cGUp OworIAorICAgLyogRXh0cmFjdCBiaXRzLiAgU2VlIGNvbW1lbnQgYWJvdmUuICovCisgCistICBp ZiAoZ2RiYXJjaF9iaXRzX2JpZ19lbmRpYW4gKGdldF90eXBlX2FyY2ggKGZpZWxkX3R5cGUpKSkK KysgIGlmIChnZGJhcmNoX2JpdHNfYmlnX2VuZGlhbiAoZ2V0X3R5cGVfYXJjaCAodHlwZSkpKQor ICAgICBsc2Jjb3VudCA9IChzaXplb2YgdmFsICogOCAtIGJpdHBvcyAlIDggLSBiaXRzaXplKTsK KyAgIGVsc2UKKyAgICAgbHNiY291bnQgPSAoYml0cG9zICUgOCk7CitAQCAtMjE0OCwxOSArMjEx OCw2IEBAIHVucGFja19iaXRzX2FzX2xvbmcgKHN0cnVjdCB0eXBlICpmaWVsZF8KKyAgIHJldHVy biAodmFsKTsKKyB9CisgCistLyogVW5wYWNrIGEgZmllbGQgRklFTEROTyBvZiB0aGUgc3BlY2lm aWVkIFRZUEUsIGZyb20gdGhlIGFub255bW91cyBvYmplY3QgYXQKKy0gICBWQUxBRERSLiAgU2Vl IHVucGFja19iaXRzX2FzX2xvbmcgZm9yIG1vcmUgZGV0YWlscy4gICovCistCistTE9OR0VTVAor LXVucGFja19maWVsZF9hc19sb25nIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUg KnZhbGFkZHIsIGludCBmaWVsZG5vKQorLXsKKy0gIGludCBiaXRwb3MgPSBUWVBFX0ZJRUxEX0JJ VFBPUyAodHlwZSwgZmllbGRubyk7CistICBpbnQgYml0c2l6ZSA9IFRZUEVfRklFTERfQklUU0la RSAodHlwZSwgZmllbGRubyk7CistICBzdHJ1Y3QgdHlwZSAqZmllbGRfdHlwZSA9IFRZUEVfRklF TERfVFlQRSAodHlwZSwgZmllbGRubyk7CistCistICByZXR1cm4gdW5wYWNrX2JpdHNfYXNfbG9u ZyAoZmllbGRfdHlwZSwgdmFsYWRkciwgYml0cG9zLCBiaXRzaXplKTsKKy19CistCisgLyogTW9k aWZ5IHRoZSB2YWx1ZSBvZiBhIGJpdGZpZWxkLiAgQUREUiBwb2ludHMgdG8gYSBibG9jayBvZiBt ZW1vcnkgaW4KKyAgICB0YXJnZXQgYnl0ZSBvcmRlcjsgdGhlIGJpdGZpZWxkIHN0YXJ0cyBpbiB0 aGUgYnl0ZSBwb2ludGVkIHRvLiAgRklFTERWQUwKKyAgICBpcyB0aGUgZGVzaXJlZCB2YWx1ZSBv ZiB0aGUgZmllbGQsIGluIGhvc3QgYnl0ZSBvcmRlci4gIEJJVFBPUyBhbmQgQklUU0laRQorLS0t IC4vZ2RiL3ZhbHVlLmgJMjAwOS0wOC0yOCAxOToyNzoyOS4wMDAwMDAwMDAgKzAyMDAKKysrKyAu L2dkYi92YWx1ZS5oCTIwMDktMDgtMjggMTk6Mjc6NTkuMDAwMDAwMDAwICswMjAwCitAQCAtNzEs MTIgKzcxLDYgQEAgZXh0ZXJuIHZvaWQgc2V0X3ZhbHVlX2JpdHNpemUgKHN0cnVjdCB2YQorIGV4 dGVybiBpbnQgdmFsdWVfYml0cG9zIChzdHJ1Y3QgdmFsdWUgKik7CisgZXh0ZXJuIHZvaWQgc2V0 X3ZhbHVlX2JpdHBvcyAoc3RydWN0IHZhbHVlICosIGludCBiaXQpOworIAorLS8qIE9ubHkgdXNl ZCBmb3IgYml0ZmllbGRzOyB0aGUgY29udGFpbmluZyB2YWx1ZS4gIFRoaXMgYWxsb3dzIGEKKy0g ICBzaW5nbGUgcmVhZCBmcm9tIHRoZSB0YXJnZXQgd2hlbiBkaXNwbGF5aW5nIG11bHRpcGxlCist ICAgYml0ZmllbGRzLiAgKi8KKy0KKy1zdHJ1Y3QgdmFsdWUgKnZhbHVlX3BhcmVudCAoc3RydWN0 IHZhbHVlICopOworLQorIC8qIERlc2NyaWJlcyBvZmZzZXQgb2YgYSB2YWx1ZSB3aXRoaW4gbHZh bCBvZiBhIHN0cnVjdHVyZSBpbiBieXRlcy4KKyAgICBJZiBsdmFsID09IGx2YWxfbWVtb3J5LCB0 aGlzIGlzIGFuIG9mZnNldCB0byB0aGUgYWRkcmVzcy4gIElmIGx2YWwKKyAgICA9PSBsdmFsX3Jl Z2lzdGVyLCB0aGlzIGlzIGEgZnVydGhlciBvZmZzZXQgZnJvbSBsb2NhdGlvbi5hZGRyZXNzCitA QCAtMzMwLDggKzMyNCw2IEBAIGV4dGVybiBMT05HRVNUIHVucGFja19sb25nIChzdHJ1Y3QgdHlw ZSAKKyBleHRlcm4gRE9VQkxFU1QgdW5wYWNrX2RvdWJsZSAoc3RydWN0IHR5cGUgKnR5cGUsIGNv bnN0IGdkYl9ieXRlICp2YWxhZGRyLAorIAkJCSAgICAgICBpbnQgKmludnApOworIGV4dGVybiBD T1JFX0FERFIgdW5wYWNrX3BvaW50ZXIgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0 ZSAqdmFsYWRkcik7CistTE9OR0VTVCB1bnBhY2tfYml0c19hc19sb25nIChzdHJ1Y3QgdHlwZSAq ZmllbGRfdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCistCQkJICAgICBpbnQgYml0cG9z LCBpbnQgYml0c2l6ZSk7CisgZXh0ZXJuIExPTkdFU1QgdW5wYWNrX2ZpZWxkX2FzX2xvbmcgKHN0 cnVjdCB0eXBlICp0eXBlLAorIAkJCQkgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorIAkJ CQkgICAgIGludCBmaWVsZG5vKTsKCmRpZmYgLS1naXQgYS9nZGIuc3BlYyBiL2dkYi5zcGVjCmlu ZGV4IGU3YjA1ZjcuLjNjMjAyNmMgMTAwNjQ0Ci0tLSBhL2dkYi5zcGVjCisrKyBiL2dkYi5zcGVj CkBAIC0xNCw3ICsxNCw3IEBAIFZlcnNpb246IDYuOC41MC4yMDA5MDgxOAogCiAjIFRoZSByZWxl YXNlIGFsd2F5cyBjb250YWlucyBhIGxlYWRpbmcgcmVzZXJ2ZWQgbnVtYmVyLCBzdGFydCBpdCBh dCAxLgogIyBgdXBzdHJlYW0nIGlzIG5vdCBhIHBhcnQgb2YgYG5hbWUnIHRvIHN0YXkgZnVsbHkg cnBtIGRlcGVuZGVuY2llcyBjb21wYXRpYmxlIGZvciB0aGUgdGVzdGluZy4KLVJlbGVhc2U6IDUl ez9fd2l0aF91cHN0cmVhbToudXBzdHJlYW19JXs/ZGlzdH0KK1JlbGVhc2U6IDYlez9fd2l0aF91 cHN0cmVhbToudXBzdHJlYW19JXs/ZGlzdH0KIAogTGljZW5zZTogR1BMdjMrCiBHcm91cDogRGV2 ZWxvcG1lbnQvRGVidWdnZXJzCkBAIC0zNjMsNiArMzYzLDkgQEAgUGF0Y2gzNzU6IGdkYi1yZWFk bGluZS02LjAucGF0Y2gKICMgVGVtcG9yYXJpbHkgZGlzYWJsZSBhc3NlcnRpb24gY2hlY2tzIGNy YXNoaW5nIGluIHFzb3J0X2NtcCAoQlogNTE1NDM0KS4KIFBhdGNoMzc4OiBnZGItYno1MTU0MzQt cXNvcnRfY21wLnBhdGNoCiAKKyMgUmV2ZXJ0IGJpdGZpZWxkcyByZWdyZXNzaW9uIChCWiA1MjAx MjkpLgorUGF0Y2gzODA6IGdkYi1iejUyMDEyOS1kcm93LWJpdGZpZWxkcy5wYXRjaAorCiBCdWls ZFJlcXVpcmVzOiBuY3Vyc2VzLWRldmVsIHRleGluZm8gZ2V0dGV4dCBmbGV4IGJpc29uIGV4cGF0 LWRldmVsCiBSZXF1aXJlczogcmVhZGxpbmUKIEJ1aWxkUmVxdWlyZXM6IHJlYWRsaW5lLWRldmVs CkBAIC01NTIsNiArNTU1LDcgQEAgcm0gLWYgZ2RiL2p2LWV4cC5jIGdkYi9tMi1leHAuYyBnZGIv b2JqYy1leHAuYyBnZGIvcC1leHAuYwogJXBhdGNoMzYwIC1wMQogJXBhdGNoMzc1IC1wMQogJXBh dGNoMzc4IC1wMQorJXBhdGNoMzgwIC1wMQogJXBhdGNoMTI0IC1wMQogCiBmaW5kIC1uYW1lICIq Lm9yaWciIHwgeGFyZ3Mgcm0gLWYKQEAgLTgyNSw2ICs4MjksMTAgQEAgZmkKICVlbmRpZgogCiAl Y2hhbmdlbG9nCisqIEZyaSBBdWcgMjggMjAwOSBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2 aWxAcmVkaGF0LmNvbT4gLSA2LjguNTAuMjAwOTA4MTgtNgorLSBSZWFsIHVwc3RyZWFtIGZpeHVw IG9mIHFzb3J0X2NtcCAoQlogNTE1NDM0KS4KKy0gUmV2ZXJ0IGJpdGZpZWxkcyByZWdyZXNzaW9u IChCWiA1MjAxMjkpLgorCiAqIFR1ZSBBdWcgMjUgMjAwOSBKYW4gS3JhdG9jaHZpbCA8amFuLmty YXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA2LjguNTAuMjAwOTA4MTgtNQogLSBUZW1wb3JhcmlseSBk aXNhYmxlIGFzc2VydGlvbiBjaGVja3MgY3Jhc2hpbmcgaW4gcXNvcnRfY21wIChCWiA1MTU0MzQp LgogCg==