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: Patrick Monnerat To: git-commits@fedoraproject.org Subject: [rpms/xca] rawhide: Patch "openssl4" for openssl version 4 compatibility. Date: Wed, 22 Jul 2026 19:15:39 GMT Message-ID: <178474773940.1.4921167688330933930.rpms-xca-8d5e70b67210@fedoraproject.org> List-ID: X-Git-Repo: rpms/xca X-Git-Branch: rawhide X-Git-Rev: 8d5e70b6721098a741f2a3c2d20b5c75160a925f ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMveGNhCiAgICAgICAgICAgIEJyYW5jaCA6IHJhd2hpZGUKICAgICAgICAgICAg Q29tbWl0IDogOGQ1ZTcwYjY3MjEwOThhNzQxZjJhM2MyZDIwYjVjNzUxNjBhOTI1ZgogICAgICAg ICAgICBBdXRob3IgOiBQYXRyaWNrIE1vbm5lcmF0IDxwYXRyaWNrQG1vbm5lcmF0Lm5ldD4KICAg ICAgICAgICAgRGF0ZSAgIDogMjAyNi0wNy0yMlQyMToxNDo0NyswMjowMAogICAgICAgICAgICBT dGF0cyAgOiArNTM0Ly0xMiBpbiAyIGZpbGUocykKICAgICAgICAgICAgVVJMICAgIDogaHR0cHM6 Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy94Y2EvYy84ZDVlNzBiNjcyMTA5OGE3NDFmMmEz YzJkMjBiNWM3NTE2MGE5MjVmP2JyYW5jaD1yYXdoaWRlCgogICAgICAgICAgICBMb2c6CiAgICAg ICAgICAgIFBhdGNoICJvcGVuc3NsNCIgZm9yIG9wZW5zc2wgdmVyc2lvbiA0IGNvbXBhdGliaWxp dHkuCgpSZW1vdmUgQlIgb3BlbnNzbC1kZXZlbC1lbmdpbmUgZm9yIEZlZG9yYSA+IDQ0LgpQZXJm b3JtIHRlc3RzLgoKLS0tCmRpZmYgLS1naXQgYS94Y2EtMi45LjAtb3BlbnNzbDQucGF0Y2ggYi94 Y2EtMi45LjAtb3BlbnNzbDQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uODVkM2VjYQotLS0gL2Rldi9udWxsCisrKyBiL3hjYS0yLjkuMC1vcGVuc3NsNC5wYXRjaApA QCAtMCwwICsxLDUwNCBAQAorZGlmZiAtTmF1cnAgeGNhLTIuOS4wLm9yaWcvbGliL2FzbjFpbnQu Y3BwIHhjYS0yLjkuMC5uZXcvbGliL2FzbjFpbnQuY3BwCistLS0geGNhLTIuOS4wLm9yaWcvbGli L2FzbjFpbnQuY3BwCTIwMjUtMDMtMjggMTk6Mjg6MTUuMDAwMDAwMDAwICswMTAwCisrKysgeGNh LTIuOS4wLm5ldy9saWIvYXNuMWludC5jcHAJMjAyNi0wNy0yMSAxNDo1MDo0NS4xMzg3NjgzMzIg KzAyMDAKK0BAIC0xMCw2ICsxMCw3IEBACisgI2luY2x1ZGUgImZ1bmNfYmFzZS5oIgorICNpbmNs dWRlICJleGNlcHRpb24uaCIKKyAjaW5jbHVkZSAibGltaXRzLmgiCisrI2luY2x1ZGUgIm9wZW5z c2xfY29tcGF0LmgiCisgI2luY2x1ZGUgPG9wZW5zc2wvZXJyLmg+CisgI2luY2x1ZGUgPG9wZW5z c2wvYm4uaD4KKyAKK0BAIC02Nyw3ICs2OCw3IEBAIGExaW50ICZhMWludDo6c2V0KGxvbmcgbCkK KyBRU3RyaW5nIGExaW50Ojp0b1FTdHJpbmcoaW50IGRlYykgY29uc3QKKyB7CisgCVFTdHJpbmcg cjsKKy0JaWYgKGluLT5sZW5ndGggPT0gMCkgeworKwlpZiAoeGNhX2FzbjFfc3RyaW5nX2xlbmd0 aChpbi5nZXQoKSkgPT0gMCkgeworIAkJcmV0dXJuIHI7CisgCX0KKyAJUVNoYXJlZFBvaW50ZXI8 QklHTlVNPiBibihBU04xX0lOVEVHRVJfdG9fQk4oZ2V0MCgpLCBOVUxMKSwgQk5fZnJlZSk7Citk aWZmIC1OYXVycCB4Y2EtMi45LjAub3JpZy9saWIvYXNuMXRpbWUuY3BwIHhjYS0yLjkuMC5uZXcv bGliL2FzbjF0aW1lLmNwcAorLS0tIHhjYS0yLjkuMC5vcmlnL2xpYi9hc24xdGltZS5jcHAJMjAy NS0wMy0yOCAxOToyODoxNS4wMDAwMDAwMDAgKzAxMDAKKysrKyB4Y2EtMi45LjAubmV3L2xpYi9h c24xdGltZS5jcHAJMjAyNi0wNy0yMSAxNTo0ODowMS40NzkxMzI1MTYgKzAyMDAKK0BAIC0xMSw2 ICsxMSw3IEBACisgI2luY2x1ZGUgImZ1bmMuaCIKKyAjaW5jbHVkZSAiZXhjZXB0aW9uLmgiCisg I2luY2x1ZGUgImFzbjF0aW1lLmgiCisrI2luY2x1ZGUgIm9wZW5zc2xfY29tcGF0LmgiCisgI2lu Y2x1ZGUgPG9wZW5zc2wveDUwOS5oPgorICNpbmNsdWRlIDxvcGVuc3NsL2Vyci5oPgorICNpbmNs dWRlIDxvcGVuc3NsL29wZW5zc2x2Lmg+CitAQCAtNTAsNyArNTEsOCBAQCBpbnQgYTF0aW1lOjpm cm9tX2FzbjEoY29uc3QgQVNOMV9USU1FICphCisgCWd0ID0gQVNOMV9USU1FX3RvX2dlbmVyYWxp emVkdGltZSgoQVNOMV9USU1FKilhLCBOVUxMKTsKKyAJaWYgKCFndCkKKyAJCXJldHVybiAtMTsK Ky0JdCA9IFFTdHJpbmc6OmZyb21MYXRpbjEoKGNoYXIqKWd0LT5kYXRhLCBndC0+bGVuZ3RoKTsK KysJdCA9IFFTdHJpbmc6OmZyb21MYXRpbjEoKGNoYXIqKXhjYV9hc24xX3N0cmluZ19nZXQwX2Rh dGEoZ3QpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4Y2FfYXNuMV9zdHJpbmdfbGVu Z3RoKGd0KSk7CisgCUFTTjFfR0VORVJBTElaRURUSU1FX2ZyZWUoZ3QpOworIAlyZXR1cm4gZnJv bVBsYWluKHQpOworIH0KK0BAIC02OCwxMSArNzAsMTUgQEAgaW50IGExdGltZTo6ZnJvbVBsYWlu KGNvbnN0IFFTdHJpbmcgJnBsYQorIAorIGludCBhMXRpbWU6OnNldF9hc24xKGNvbnN0IFFTdHJp bmcgJnN0ciwgaW50IHR5cGUpIGNvbnN0CisgeworLQlpZiAoIWF0aW1lKQorLQkJYXRpbWUgPSBB U04xX1RJTUVfbmV3KCk7CistCWlmICghYXRpbWUpCistCQlyZXR1cm4gLTE7CistCWF0aW1lLT50 eXBlID0gdHlwZTsKKysJaWYgKGF0aW1lICYmIHhjYV9hc24xX3N0cmluZ190eXBlKGF0aW1lKSAh PSB0eXBlKSB7CisrCQlBU04xX1NUUklOR19mcmVlKGF0aW1lKTsKKysJCWF0aW1lID0gTlVMTDsK KysgICAgfQorKwlpZiAoIWF0aW1lKSB7CisrCQlhdGltZSA9IEFTTjFfU1RSSU5HX3R5cGVfbmV3 KHR5cGUpOworKwkJaWYgKCFhdGltZSkKKysJCQlyZXR1cm4gLTE7CisrICAgIH0KKyAJaWYgKEFT TjFfU1RSSU5HX3NldChhdGltZSwgc3RyLnRvTGF0aW4xKCksIHN0ci5sZW5ndGgoKSkpCisgCQly ZXR1cm4gLTE7CisgCXJldHVybiAwOworZGlmZiAtTmF1cnAgeGNhLTIuOS4wLm9yaWcvbGliL29w ZW5zc2xfY29tcGF0LmggeGNhLTIuOS4wLm5ldy9saWIvb3BlbnNzbF9jb21wYXQuaAorLS0tIHhj YS0yLjkuMC5vcmlnL2xpYi9vcGVuc3NsX2NvbXBhdC5oCTIwMjUtMDMtMjggMTk6Mjg6MTUuMDAw MDAwMDAwICswMTAwCisrKysgeGNhLTIuOS4wLm5ldy9saWIvb3BlbnNzbF9jb21wYXQuaAkyMDI2 LTA3LTIxIDE2OjA1OjMwLjI1MjgwOTY4OSArMDIwMAorQEAgLTM1LDQgKzM1LDE1IEBAIEVWUF9E aWdlc3RWZXJpZnkoRVZQX01EX0NUWCAqY3R4LCBjb25zdAorIH0KKyAjZW5kaWYKKyAKKysKKysj aWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4NDAwMDAwMDBMCisrI2RlZmluZSB4Y2FfYXNu MV9zdHJpbmdfbGVuZ3RoKHApCQkoKHApLT5sZW5ndGgpCisrI2RlZmluZSB4Y2FfYXNuMV9zdHJp bmdfZ2V0MF9kYXRhKHApCSgocCktPmRhdGEpCisrI2RlZmluZSB4Y2FfYXNuMV9zdHJpbmdfdHlw ZShwKQkJCSgocCktPnR5cGUpCisrI2Vsc2UKKysjZGVmaW5lIHhjYV9hc24xX3N0cmluZ19sZW5n dGgocCkJCUFTTjFfU1RSSU5HX2xlbmd0aChwKQorKyNkZWZpbmUgeGNhX2FzbjFfc3RyaW5nX2dl dDBfZGF0YShwKQlBU04xX1NUUklOR19nZXQwX2RhdGEocCkKKysjZGVmaW5lIHhjYV9hc24xX3N0 cmluZ190eXBlKHApCQkJQVNOMV9TVFJJTkdfdHlwZShwKQorKyNlbmRpZgorKworICNlbmRpZgor ZGlmZiAtTmF1cnAgeGNhLTIuOS4wLm9yaWcvbGliL3BrY3MxMS5jcHAgeGNhLTIuOS4wLm5ldy9s aWIvcGtjczExLmNwcAorLS0tIHhjYS0yLjkuMC5vcmlnL2xpYi9wa2NzMTEuY3BwCTIwMjUtMDMt MjggMTk6Mjg6MTUuMDAwMDAwMDAwICswMTAwCisrKysgeGNhLTIuOS4wLm5ldy9saWIvcGtjczEx LmNwcAkyMDI2LTA3LTIyIDE3OjEwOjM5LjE1ODQ2MzUyMyArMDIwMAorQEAgLTY1MCwyOSArNjUw LDYgQEAgaW50IHBrY3MxMTo6ZW5jcnlwdChpbnQgZmxlbiwgY29uc3QgdW5zaQorIAlyZXR1cm4g c2l6ZTsKKyB9CisgCistI2lmIG5vdCBkZWZpbmVkIE9QRU5TU0xfTk9fRUMgYW5kIGRlZmluZWQg RVZQX1BLRVlfRUQyNTUxOQorLS8vIFNoYXJlZCBiZXR3ZWVuIGxpYnJlc3NsIGFuZCBvcGVuc3Ns Cistc3RhdGljIGludCBlbmdfaWR4ID0gLTE7Cistc3RhdGljIGludCBlbmdfZmluaXNoKEVOR0lO RSAqZSkKKy17CistCXBrY3MxMSAqcDExID0gKHBrY3MxMSAqKUVOR0lORV9nZXRfZXhfZGF0YShl LCBlbmdfaWR4KTsKKy0JZGVsZXRlIHAxMTsKKy0JRU5HSU5FX3NldF9leF9kYXRhKGUsIGVuZ19p ZHgsIE5VTEwpOworLQlyZXR1cm4gMTsKKy19CistCistI2lmIChPUEVOU1NMX1ZFUlNJT05fTlVN QkVSID49IDB4MzAwMDAwMDBMKQorLXN0YXRpYyBpbnQgZW5nX3BtZXRoX2NvcHkoRVZQX1BLRVlf Q1RYICpkc3QsIGNvbnN0IEVWUF9QS0VZX0NUWCAqc3JjKQorLSNlbHNlCistc3RhdGljIGludCBl bmdfcG1ldGhfY29weShFVlBfUEtFWV9DVFggKmRzdCwgRVZQX1BLRVlfQ1RYICpzcmMpCistI2Vu ZGlmCisteworLQl2b2lkICpwID0gRVZQX1BLRVlfQ1RYX2dldF9hcHBfZGF0YSgoRVZQX1BLRVlf Q1RYICopc3JjKTsKKy0JRVZQX1BLRVlfQ1RYX3NldF9hcHBfZGF0YShkc3QsICBwKTsKKy0JcmV0 dXJuIDE7CistfQorLSNlbmRpZgorLQorIHN0YXRpYyBpbnQgcnNhX3ByaXZkYXRhX2ZyZWUoUlNB ICpyc2EpCisgeworIAlwa2NzMTEgKnByaXYgPSAocGtjczExKilSU0FfZ2V0X2FwcF9kYXRhKHJz YSk7CitAQCAtODMwLDEwICs4MDcsMzMgQEAgc3RhdGljIEVDX0tFWV9NRVRIT0QgKnNldHVwX2Vj X2tleV9tZXRoKAorIAkJCQllY19zZXRfcHJpdmF0ZV9wcm9jLCBlY19zZXRfcHVibGljX3Byb2Mp OworIAlyZXR1cm4gZWNfa2V5X21ldGg7CisgfQorLSNpZmRlZiBFVlBfUEtFWV9FRDI1NTE5Cisr CisrCisrI2lmIGRlZmluZWQoRVZQX1BLRVlfRUQyNTUxOSkgJiYgT1BFTlNTTF9WRVJTSU9OX05V TUJFUiA8IDB4NDAwMDAwMDBMCisgCisgc3RhdGljIEVWUF9QS0VZX01FVEhPRCAqcDExX2VkZHNh X21ldGhvZDsKKyAKKysvLyBTaGFyZWQgYmV0d2VlbiBsaWJyZXNzbCBhbmQgb3BlbnNzbAorK3N0 YXRpYyBpbnQgZW5nX2lkeCA9IC0xOworK3N0YXRpYyBpbnQgZW5nX2ZpbmlzaChFTkdJTkUgKmUp CisreworKwlwa2NzMTEgKnAxMSA9IChwa2NzMTEgKilFTkdJTkVfZ2V0X2V4X2RhdGEoZSwgZW5n X2lkeCk7CisrCWRlbGV0ZSBwMTE7CisrCUVOR0lORV9zZXRfZXhfZGF0YShlLCBlbmdfaWR4LCBO VUxMKTsKKysJcmV0dXJuIDE7CisrfQorKworKyNpZiAoT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA+ PSAweDMwMDAwMDAwTCkKKytzdGF0aWMgaW50IGVuZ19wbWV0aF9jb3B5KEVWUF9QS0VZX0NUWCAq ZHN0LCBjb25zdCBFVlBfUEtFWV9DVFggKnNyYykKKysjZWxzZQorK3N0YXRpYyBpbnQgZW5nX3Bt ZXRoX2NvcHkoRVZQX1BLRVlfQ1RYICpkc3QsIEVWUF9QS0VZX0NUWCAqc3JjKQorKyNlbmRpZgor K3sKKysJdm9pZCAqcCA9IEVWUF9QS0VZX0NUWF9nZXRfYXBwX2RhdGEoKEVWUF9QS0VZX0NUWCAq KXNyYyk7CisrCUVWUF9QS0VZX0NUWF9zZXRfYXBwX2RhdGEoZHN0LCAgcCk7CisrCXJldHVybiAx OworK30KKysKKyBzdGF0aWMgaW50IGVkZHNhX2VuZ19tZXRocyhFTkdJTkUgKmUsIEVWUF9QS0VZ X01FVEhPRCAqKm0sIGNvbnN0IGludCAqKm5pZHMsIGludCBuaWQpCisgeworIAlzdGF0aWMgY29u c3QgaW50IG15X25pZHNbXSA9IHtFVlBfUEtFWV9FRDI1NTE5IH07CitAQCAtOTA0LDcgKzkwNCw3 IEBAIEVWUF9QS0VZICpwa2NzMTE6OmdldFByaXZhdGVLZXkoRVZQX1BLRVkKKyAjaWZuZGVmIE9Q RU5TU0xfTk9fRUMKKyAJc3RhdGljIEVDX0tFWV9NRVRIT0QgKmVjX2tleV9tZXRoID0gTlVMTDsK KyAJRUNfS0VZICplYzsKKy0jaWZkZWYgRVZQX1BLRVlfRUQyNTUxOQorKyNpZiBkZWZpbmVkKEVW UF9QS0VZX0VEMjU1MTkpICYmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDQwMDAwMDAwTAor IAlzdGF0aWMgRU5HSU5FICplID0gTlVMTDsKKyAKKyAJaWYgKCFlKSB7CitAQCAtOTkxLDYgKzk5 MSw3IEBAIEVWUF9QS0VZICpwa2NzMTE6OmdldFByaXZhdGVLZXkoRVZQX1BLRVkKKyAjaWZkZWYg RVZQX1BLRVlfRUQyNTUxOQorIAljYXNlIEVWUF9QS0VZX0VEMjU1MTk6CisgCQlzaXplX3QgbGVu OworKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHg0MDAwMDAwMEwKKyAJCWlmIChFTkdJ TkVfZ2V0X2V4X2RhdGEoZSwgZW5nX2lkeCkpCisgCQkJcVdhcm5pbmcoKSA8PCAiV2UgZm9yZ290 IHRvIGZyZWUgdGhlIHByZXZpb3VzIENhcmQga2V5LiI7CisgCQlFTkdJTkVfc2V0X2V4X2RhdGEo ZSwgZW5nX2lkeCwgdGhpcyk7CitAQCAtMTAwMyw2ICsxMDA0LDE3IEBAIEVWUF9QS0VZICpwa2Nz MTE6OmdldFByaXZhdGVLZXkoRVZQX1BLRVkKKyAJCW9wZW5zc2xfZXJyb3IoKTsKKyAJCU9QRU5T U0xfZnJlZShwdWJrZXkpOworIAkJLy9FVlBfUEtFWV9zZXQxX2VuZ2luZShldnAsIGUpOworKyNl bHNlCisrCQlwMTFvYmogPSBvYmo7CisrCQlFVlBfUEtFWV9nZXRfcmF3X3B1YmxpY19rZXkocHVi LCBOVUxMLCAmbGVuKTsKKysJCXVuc2lnbmVkIGNoYXIgKnB1YmtleSA9ICh1bnNpZ25lZCBjaGFy ICopT1BFTlNTTF9tYWxsb2MobGVuKTsKKysJCVFfQ0hFQ0tfUFRSKHB1YmtleSk7CisrCQlFVlBf UEtFWV9nZXRfcmF3X3B1YmxpY19rZXkocHViLCBwdWJrZXksICZsZW4pOworKwkJZXZwID0gRVZQ X1BLRVlfbmV3X3Jhd19wdWJsaWNfa2V5X2V4KE9TU0xfTElCX0NUWF9nZXQwX2dsb2JhbF9kZWZh dWx0KCksCisrCQkJIkVEMjU1MTkiLCBOVUxMLCBwdWJrZXksIGxlbik7CisrCQlvcGVuc3NsX2Vy cm9yKCk7CisrCQlPUEVOU1NMX2ZyZWUocHVia2V5KTsKKysjZW5kaWYKKyAJCWJyZWFrOworICNl bmRpZgorICNlbmRpZgorZGlmZiAtTmF1cnAgeGNhLTIuOS4wLm9yaWcvbGliL3BraV9wa2NzMTIu Y3BwIHhjYS0yLjkuMC5uZXcvbGliL3BraV9wa2NzMTIuY3BwCistLS0geGNhLTIuOS4wLm9yaWcv bGliL3BraV9wa2NzMTIuY3BwCTIwMjUtMDMtMjggMTk6Mjg6MTUuMDAwMDAwMDAwICswMTAwCisr KysgeGNhLTIuOS4wLm5ldy9saWIvcGtpX3BrY3MxMi5jcHAJMjAyNi0wNy0yMSAxNDo0MToxMS40 MjE4MDU5NTMgKzAyMDAKK0BAIC04NSw3ICs4NSw3IEBAIHBraV9wa2NzMTI6OnBraV9wa2NzMTIo Y29uc3QgUVN0cmluZyAmZm4KKyAJfQorIAlwa2lfaWduX29wZW5zc2xfZXJyb3IoKTsKKyAJaWYg KG15Y2VydCkgeworLQkJdW5zaWduZWQgY2hhciAqc3RyID0gWDUwOV9hbGlhc19nZXQwKG15Y2Vy dCwgTlVMTCk7CisrCQljb25zdCB1bnNpZ25lZCBjaGFyICpzdHIgPSBYNTA5X2FsaWFzX2dldDAo bXljZXJ0LCBOVUxMKTsKKyAJCWlmIChzdHIpCisgCQkJYWxpYXMgPSBRU3RyaW5nOjpmcm9tVXRm OCgoY29uc3QgY2hhciAqKXN0cik7CisgCQlhbGlhcyA9IFFTdHJpbmc6OmZyb21VdGY4KGFsaWFz LnRvTGF0aW4xKCkpOworZGlmZiAtTmF1cnAgeGNhLTIuOS4wLm9yaWcvbGliL3BraV9zY2FyZC5j cHAgeGNhLTIuOS4wLm5ldy9saWIvcGtpX3NjYXJkLmNwcAorLS0tIHhjYS0yLjkuMC5vcmlnL2xp Yi9wa2lfc2NhcmQuY3BwCTIwMjUtMDMtMjggMTk6Mjg6MTUuMDAwMDAwMDAwICswMTAwCisrKysg eGNhLTIuOS4wLm5ldy9saWIvcGtpX3NjYXJkLmNwcAkyMDI2LTA3LTIxIDE2OjA3OjE5LjI2NjA3 Mjg1NiArMDIwMAorQEAgLTE0LDYgKzE0LDcgQEAKKyAjaW5jbHVkZSAicGtjczExLmgiCisgI2lu Y2x1ZGUgIng1MDluYW1lLmgiCisgI2luY2x1ZGUgImZ1bmMuaCIKKysjaW5jbHVkZSAib3BlbnNz bF9jb21wYXQuaCIKKyAjaW5jbHVkZSAiWGNhUHJvZ3Jlc3MuaCIKKyAKKyAjaW5jbHVkZSAiWGNh V2FybmluZ0NvcmUuaCIKK0BAIC0xODcsNyArMTg4LDggQEAgRVZQX1BLRVkgKnBraV9zY2FyZDo6 bG9hZF9wdWJrZXkocGtjczExCisgCQkJZDJpX2J5dGVhcnJheShEMklfVk9JRChkMmlfQVNOMV9P Q1RFVF9TVFJJTkcpLCBiYSk7CisgCQlwa2lfb3BlbnNzbF9lcnJvcigpOworIAorLQkJQklHTlVN ICpibiA9IEJOX2JpbjJibihvcy0+ZGF0YSwgb3MtPmxlbmd0aCwgTlVMTCk7CisrCQlCSUdOVU0g KmJuID0gQk5fYmluMmJuKHhjYV9hc24xX3N0cmluZ19nZXQwX2RhdGEob3MpLAorKwkJCQkJCQkg ICB4Y2FfYXNuMV9zdHJpbmdfbGVuZ3RoKG9zKSwgTlVMTCk7CisgCQlwa2lfb3BlbnNzbF9lcnJv cigpOworIAorIAkJRUNfUE9JTlQgKnBvaW50ID0gRUNfUE9JTlRfYm4ycG9pbnQoZ3JvdXAsIGJu LCBOVUxMLCBOVUxMKTsKK0BAIC0yMTUsOCArMjE3LDggQEAgRVZQX1BLRVkgKnBraV9zY2FyZDo6 bG9hZF9wdWJrZXkocGtjczExCisgCQkJZDJpX2J5dGVhcnJheShEMklfVk9JRChkMmlfQVNOMV9P Q1RFVF9TVFJJTkcpLCBiYSk7CisgCQlwa2lfb3BlbnNzbF9lcnJvcigpOworIAkJcGtleSA9IEVW UF9QS0VZX25ld19yYXdfcHVibGljX2tleShFVlBfUEtFWV9FRDI1NTE5LCBOVUxMLAorLQkJCShj b25zdCB1aW50OF90ICopb3MtPmRhdGEsCistCQkJb3MtPmxlbmd0aCk7CisrCQkJKGNvbnN0IHVp bnQ4X3QgKil4Y2FfYXNuMV9zdHJpbmdfZ2V0MF9kYXRhKG9zKSwKKysJCQl4Y2FfYXNuMV9zdHJp bmdfbGVuZ3RoKG9zKSk7CisgCQlwa2lfb3BlbnNzbF9lcnJvcigpOworIAkJQVNOMV9PQ1RFVF9T VFJJTkdfZnJlZShvcyk7CisgCQlwa2lfb3BlbnNzbF9lcnJvcigpOworZGlmZiAtTmF1cnAgeGNh LTIuOS4wLm9yaWcvbGliL3BraV94NTA5LmNwcCB4Y2EtMi45LjAubmV3L2xpYi9wa2lfeDUwOS5j cHAKKy0tLSB4Y2EtMi45LjAub3JpZy9saWIvcGtpX3g1MDkuY3BwCTIwMjUtMDMtMjggMTk6Mjg6 MTUuMDAwMDAwMDAwICswMTAwCisrKysgeGNhLTIuOS4wLm5ldy9saWIvcGtpX3g1MDkuY3BwCTIw MjYtMDctMjEgMTY6MDk6MjkuNjQ0NTEzMTc0ICswMjAwCitAQCAtODM2LDcgKzgzNiw3IEBAIHBr aV9rZXkgKnBraV94NTA5OjpnZXRQdWJLZXkoKSBjb25zdAorIGJvb2wgcGtpX3g1MDk6OmNvbXBh cmVOYW1lQW5kS2V5KHBraV94NTA5ICpvdGhlcikKKyB7CisgCWludCByOworLQlYNTA5X05BTUUg KnMxLCAqczI7CisrCWNvbnN0IFg1MDlfTkFNRSAqczEsICpzMjsKKyAJRVZQX1BLRVkgKnB1YjEs ICpwdWIyOworIAorIAlpZiAoIWNlcnQgfHwgIW90aGVyLT5jZXJ0KQorZGlmZiAtTmF1cnAgeGNh LTIuOS4wLm9yaWcvbGliL3BraV94NTA5cmVxLmNwcCB4Y2EtMi45LjAubmV3L2xpYi9wa2lfeDUw OXJlcS5jcHAKKy0tLSB4Y2EtMi45LjAub3JpZy9saWIvcGtpX3g1MDlyZXEuY3BwCTIwMjUtMDMt MjggMTk6Mjg6MTUuMDAwMDAwMDAwICswMTAwCisrKysgeGNhLTIuOS4wLm5ldy9saWIvcGtpX3g1 MDlyZXEuY3BwCTIwMjYtMDctMjEgMTY6MTE6NTkuMDY4ODY2NzU2ICswMjAwCitAQCAtMTUsNiAr MTUsNyBAQAorICNpbmNsdWRlICJkYl9iYXNlLmgiCisgI2luY2x1ZGUgIng1MDluYW1lLmgiCisg I2luY2x1ZGUgImV4Y2VwdGlvbi5oIgorKyNpbmNsdWRlICJvcGVuc3NsX2NvbXBhdC5oIgorICNp bmNsdWRlIDxvcGVuc3NsL2Jpby5oPgorIAorIHBraV94NTA5cmVxOjpwa2lfeDUwOXJlcShjb25z dCBRU3RyaW5nICZuYW1lKQorQEAgLTIwNCw3ICsyMDUsOSBAQCB2b2lkIHBraV94NTA5cmVxOjph ZGRBdHRyaWJ1dGUoaW50IG5pZCwKKyAJCXJldHVybjsKKyAKKyAJQVNOMV9TVFJJTkcgKmEgPSBR U3RyaW5nVG9Bc24xKGNvbnRlbnQsIG5pZCk7CistCVg1MDlfUkVRX2FkZDFfYXR0cl9ieV9OSUQo cmVxdWVzdCwgbmlkLCBhLT50eXBlLCBhLT5kYXRhLCBhLT5sZW5ndGgpOworKwlYNTA5X1JFUV9h ZGQxX2F0dHJfYnlfTklEKHJlcXVlc3QsIG5pZCwgeGNhX2FzbjFfc3RyaW5nX3R5cGUoYSksCisr CQkJCQkJCSAgeGNhX2FzbjFfc3RyaW5nX2dldDBfZGF0YShhKSwKKysJCQkJCQkJICB4Y2FfYXNu MV9zdHJpbmdfbGVuZ3RoKGEpKTsKKyAJQVNOMV9TVFJJTkdfZnJlZShhKTsKKyAJb3BlbnNzbF9l cnJvcl9tc2coUVN0cmluZygiJyUxJyAoJTIpIikuYXJnKGNvbnRlbnQpLmFyZyhPQkpfbmlkMmxu KG5pZCkpKTsKKyB9CitkaWZmIC1OYXVycCB4Y2EtMi45LjAub3JpZy9saWIveDUwOW5hbWUuY3Bw IHhjYS0yLjkuMC5uZXcvbGliL3g1MDluYW1lLmNwcAorLS0tIHhjYS0yLjkuMC5vcmlnL2xpYi94 NTA5bmFtZS5jcHAJMjAyNS0wMy0yOCAxOToyODoxNS4wMDAwMDAwMDAgKzAxMDAKKysrKyB4Y2Et Mi45LjAubmV3L2xpYi94NTA5bmFtZS5jcHAJMjAyNi0wNy0yMSAxNTo1NjoxNC44NzY4Nzc3NjMg KzAyMDAKK0BAIC05LDYgKzksNyBAQAorICNpbmNsdWRlICJiYXNlLmgiCisgI2luY2x1ZGUgImZ1 bmNfYmFzZS5oIgorICNpbmNsdWRlICJCaW9CeXRlQXJyYXkuaCIKKysjaW5jbHVkZSAib3BlbnNz bF9jb21wYXQuaCIKKyAjaW5jbHVkZSA8b3BlbnNzbC9hc24xLmg+CisgI2luY2x1ZGUgPG9wZW5z c2wvZXJyLmg+CisgI2luY2x1ZGUgImV4Y2VwdGlvbi5oIgorQEAgLTg5LDcgKzkwLDcgQEAgUVN0 cmluZyB4NTA5bmFtZTo6Z2V0TW9zdFBvcHVsYXIoKSBjb25zdAorIFFTdHJpbmcgeDUwOW5hbWU6 OmdldEVudHJ5KGludCBpKSBjb25zdAorIHsKKyAJUVN0cmluZyByZXQ7CistCUFTTjFfU1RSSU5H ICpkOworKwljb25zdCBBU04xX1NUUklORyAqZDsKKyAKKyAJaWYgKCBpPDAgfHwgaT5lbnRyeUNv dW50KCkgKQorIAkJcmV0dXJuIHJldDsKK0BAIC0xMDIsNyArMTAzLDcgQEAgUVN0cmluZyB4NTA5 bmFtZTo6Z2V0RW50cnkoaW50IGkpIGNvbnN0CisgUVN0cmluZyB4NTA5bmFtZTo6Z2V0RW50cnlU YWcoaW50IGkpIGNvbnN0CisgeworIAlRU3RyaW5nIHMgPSBRT2JqZWN0Ojp0cigiSW52YWxpZCIp OworLQlBU04xX1NUUklORyAqZDsKKysJY29uc3QgQVNOMV9TVFJJTkcgKmQ7CisgCisgCWlmIChp PDAgfHwgaT49ZW50cnlDb3VudCgpKQorIAkJaSA9IGVudHJ5Q291bnQoKSAtIDE7CitAQCAtMTEx LDcgKzExMiw3IEBAIFFTdHJpbmcgeDUwOW5hbWU6OmdldEVudHJ5VGFnKGludCBpKSBjb24KKyAJ aWYgKCFkKQorIAkJcmV0dXJuIHM7CisgCistCXMgPSBBU04xX3RhZzJzdHIoZC0+dHlwZSk7Cisr CXMgPSBBU04xX3RhZzJzdHIoeGNhX2FzbjFfc3RyaW5nX3R5cGUoZCkpOworIAlyZXR1cm4gczsK KyB9CisgCitAQCAtMTU0LDEzICsxNTUsMTMgQEAgUVN0cmluZ0xpc3QgeDUwOW5hbWU6OmVudHJ5 TGlzdChpbnQgaSkgYworIAorIGludCB4NTA5bmFtZTo6bmlkKGludCBpKSBjb25zdAorIHsKKy0J WDUwOV9OQU1FX0VOVFJZICpuZSA9IFg1MDlfTkFNRV9nZXRfZW50cnkoZ2V0MCgpLCBpKTsKKysJ Y29uc3QgWDUwOV9OQU1FX0VOVFJZICpuZSA9IFg1MDlfTkFNRV9nZXRfZW50cnkoZ2V0MCgpLCBp KTsKKyAJcmV0dXJuIG5lID8gT0JKX29iajJuaWQoWDUwOV9OQU1FX0VOVFJZX2dldF9vYmplY3Qo bmUpKSA6IE5JRF91bmRlZjsKKyB9CisgCisgUVN0cmluZyB4NTA5bmFtZTo6Z2V0T2lkKGludCBp KSBjb25zdAorIHsKKy0JWDUwOV9OQU1FX0VOVFJZICpuZSA9IFg1MDlfTkFNRV9nZXRfZW50cnko X2dldCgpLCBpKTsKKysJY29uc3QgWDUwOV9OQU1FX0VOVFJZICpuZSA9IFg1MDlfTkFNRV9nZXRf ZW50cnkoX2dldCgpLCBpKTsKKyAJcmV0dXJuIG5lID8gT0JKX29iajJRU3RyaW5nKFg1MDlfTkFN RV9FTlRSWV9nZXRfb2JqZWN0KG5lKSwgMSkgOiBRU3RyaW5nKCk7CisgfQorIAorQEAgLTI1OCw3 ICsyNTksMTAgQEAgdm9pZCB4NTA5bmFtZTo6YWRkRW50cnlCeU5pZChpbnQgbmlkLCBjbworIAlp ZiAoZW50cnkuaXNFbXB0eSgpKQorIAkJcmV0dXJuOworIAlBU04xX1NUUklORyAqYSA9IFFTdHJp bmdUb0FzbjEoZW50cnkuc2ltcGxpZmllZCgpLCBuaWQpOworLQlYNTA5X05BTUVfYWRkX2VudHJ5 X2J5X05JRChfZ2V0KCksIG5pZCwgYS0+dHlwZSwgYS0+ZGF0YSwgYS0+bGVuZ3RoLCAtMSwgMCk7 CisrCVg1MDlfTkFNRV9hZGRfZW50cnlfYnlfTklEKF9nZXQoKSwgbmlkLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB4Y2FfYXNuMV9zdHJpbmdfdHlwZShhKSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgeGNhX2FzbjFfc3RyaW5nX2dldDBfZGF0YShhKSwKKysJCQkJ CQkJICAgeGNhX2FzbjFfc3RyaW5nX2xlbmd0aChhKSwgLTEsIDApOworIAlBU04xX1NUUklOR19m cmVlKGEpOworIAlvcGVuc3NsX2Vycm9yX21zZyhRU3RyaW5nKCInJTEnICglMikiKS5hcmcoZW50 cnkpLmFyZyhPQkpfbmlkMmxuKG5pZCkpKTsKKyB9CitkaWZmIC1OYXVycCB4Y2EtMi45LjAub3Jp Zy9saWIveDUwOXYzZXh0LmNwcCB4Y2EtMi45LjAubmV3L2xpYi94NTA5djNleHQuY3BwCistLS0g eGNhLTIuOS4wLm9yaWcvbGliL3g1MDl2M2V4dC5jcHAJMjAyNS0wMy0yOCAxOToyODoxNS4wMDAw MDAwMDAgKzAxMDAKKysrKyB4Y2EtMi45LjAubmV3L2xpYi94NTA5djNleHQuY3BwCTIwMjYtMDct MjIgMTc6NDM6NTIuMDYwMzc0NTQzICswMjAwCitAQCAtMTAsNiArMTAsNyBAQAorICNpbmNsdWRl ICJhc24xaW50LmgiCisgI2luY2x1ZGUgImZ1bmMuaCIKKyAjaW5jbHVkZSAiZXhjZXB0aW9uLmgi CisrI2luY2x1ZGUgIm9wZW5zc2xfY29tcGF0LmgiCisgI2luY2x1ZGUgPG9wZW5zc2wveDUwOXYz Lmg+CisgI2luY2x1ZGUgPG9wZW5zc2wvc3RhY2suaD4KKyAjaW5jbHVkZSA8UVN0cmluZ0xpc3Q+ CitAQCAtNDksOCArNTAsOCBAQCB4NTA5djNleHQ6On54NTA5djNleHQoKQorIHg1MDl2M2V4dCAm eDUwOXYzZXh0OjpzZXQoY29uc3QgWDUwOV9FWFRFTlNJT04gKm4pCisgeworIAlpZiAobikgewor LQkJQVNOMV9PQ1RFVF9TVFJJTkcgKnN0ciA9IFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKChYNTA5 X0VYVEVOU0lPTiAqKW4pOworLQkJaWYgKCFzdHIgfHwgIXN0ci0+bGVuZ3RoKQorKwkJY29uc3Qg QVNOMV9PQ1RFVF9TVFJJTkcgKnN0ciA9IFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKChYNTA5X0VY VEVOU0lPTiAqKW4pOworKwkJaWYgKCFzdHIgfHwgIXhjYV9hc24xX3N0cmluZ19sZW5ndGgoc3Ry KSkKKyAJCQluID0gbnVsbHB0cjsKKyAJfQorIAlpZiAoZXh0ICE9IG51bGxwdHIpCitAQCAtMTE2 LDcgKzExNyw3IEBAIHg1MDl2M2V4dCAmeDUwOXYzZXh0OjpjcmVhdGVfaWE1KGludCBuaWQKKyAK KyBjb25zdCBBU04xX09CSkVDVCAqeDUwOXYzZXh0OjpvYmplY3QoKSBjb25zdAorIHsKKy0JQVNO MV9PQkpFQ1QgKm9iaiA9IG51bGxwdHI7CisrCWNvbnN0IEFTTjFfT0JKRUNUICpvYmogPSBudWxs cHRyOworIAlpZiAoZXh0KSB7CisgCQlvYmogPSBYNTA5X0VYVEVOU0lPTl9nZXRfb2JqZWN0KGV4 dCk7CisgCQlpZ25fb3BlbnNzbF9lcnJvcigpOworQEAgLTE2Niw5ICsxNjcsOSBAQCBpbnQgeDUw OXYzZXh0OjpnZXRDcml0aWNhbCgpIGNvbnN0CisgCXJldHVybiBleHQgPyBYNTA5X0VYVEVOU0lP Tl9nZXRfY3JpdGljYWwoZXh0KSA6IDA7CisgfQorIAorLUFTTjFfT0NURVRfU1RSSU5HICp4NTA5 djNleHQ6OmdldERhdGEoKSBjb25zdAorK2NvbnN0IEFTTjFfT0NURVRfU1RSSU5HICp4NTA5djNl eHQ6OmdldERhdGEoKSBjb25zdAorIHsKKy0JcmV0dXJuIGV4dCA/IFg1MDlfRVhURU5TSU9OX2dl dF9kYXRhKGV4dCkgOiBudWxscHRyOzsKKysJcmV0dXJuIGV4dCA/IFg1MDlfRVhURU5TSU9OX2dl dF9kYXRhKGV4dCkgOiBudWxscHRyOworIH0KKyAKKyBRU3RyaW5nIHg1MDl2M2V4dDo6Z2V0VmFs dWUoKSBjb25zdAorQEAgLTMxOCw3ICszMTksNyBAQCBzdGF0aWMgUVN0cmluZyBpcHY2X2Zyb21f YmluYXJ5KGNvbnN0IHVuCisgc3RhdGljIGJvb2wKKyBnZW5OYW1lMmNvbmYoR0VORVJBTF9OQU1F ICpnZW4sIFFTdHJpbmcgdGFnLCBRU3RyaW5nICpzaW5nbGUsIFFTdHJpbmcgKnNlY3QpCisgewor LQl1bnNpZ25lZCBjaGFyICpwOworKwljb25zdCB1bnNpZ25lZCBjaGFyICpwOworIAlRU3RyaW5n IHJldDsKKyAKKyAJc3dpdGNoIChnZW4tPnR5cGUpIHsKK0BAIC0zMzUsMjIgKzMzNiwyMyBAQCBn ZW5OYW1lMmNvbmYoR0VORVJBTF9OQU1FICpnZW4sIFFTdHJpbmcKKyAJCXJldHVybiB0cnVlOwor IAl9CisgCWNhc2UgR0VOX0lQQUREOgorLQkJcCA9IGdlbi0+ZC5pcC0+ZGF0YTsKKy0JCWlmIChn ZW4tPmQuaXAtPmxlbmd0aCA9PSA0KSB7CisrCQlwID0geGNhX2FzbjFfc3RyaW5nX2dldDBfZGF0 YShnZW4tPmQuaXApOworKwkJaWYgKHhjYV9hc24xX3N0cmluZ19sZW5ndGgoZ2VuLT5kLmlwKSA9 PSA0KSB7CisgCQkJKnNpbmdsZSA9IFFTdHJpbmcoIklQOiUxLiUyLiUzLiU0IikuCisgCQkJCWFy ZyhwWzBdKS5hcmcocFsxXSkuYXJnKHBbMl0pLmFyZyhwWzNdKTsKKyAJCQlyZXR1cm4gdHJ1ZTsK Ky0JCX0gZWxzZSBpZihnZW4tPmQuaXAtPmxlbmd0aCA9PSA4KSB7CisrCQl9IGVsc2UgaWYoeGNh X2FzbjFfc3RyaW5nX2xlbmd0aChnZW4tPmQuaXApID09IDgpIHsKKyAJCQkqc2luZ2xlID0gUVN0 cmluZygiSVA6JTEuJTIuJTMuJTQvJTUuJTYuJTcuJTgiKS4KKyAJCQkgICAgICAgICAgICAgICAg ICAgIGFyZyhwWzBdKS5hcmcocFsxXSkuYXJnKHBbMl0pLmFyZyhwWzNdKS4KKyAJCQkgICAgICAg ICAgICAgICAgICAgIGFyZyhwWzRdKS5hcmcocFs1XSkuYXJnKHBbNl0pLmFyZyhwWzddKTsKKyAJ CQlyZXR1cm4gdHJ1ZTsKKy0JCX0gZWxzZSBpZihnZW4tPmQuaXAtPmxlbmd0aCA9PSAxNikgewor LQkJCSpzaW5nbGUgPSAiSVA6IiArIGlwdjZfZnJvbV9iaW5hcnkoZ2VuLT5kLmlwLT5kYXRhKTsK KysJCX0gZWxzZSBpZih4Y2FfYXNuMV9zdHJpbmdfbGVuZ3RoKGdlbi0+ZC5pcCkgPT0gMTYpIHsK KysJCQkqc2luZ2xlID0gIklQOiIgKyBpcHY2X2Zyb21fYmluYXJ5KHhjYV9hc24xX3N0cmluZ19n ZXQwX2RhdGEoZ2VuLT5kLmlwKSk7CisgCQkJcmV0dXJuIHRydWU7CistCQl9IGVsc2UgaWYoZ2Vu LT5kLmlwLT5sZW5ndGggPT0gMzIpIHsKKy0JCQkqc2luZ2xlID0gIklQOiIgKyBpcHY2X2Zyb21f YmluYXJ5KGdlbi0+ZC5pcC0+ZGF0YSkgKworLQkJCQkiLyIgKyBpcHY2X2Zyb21fYmluYXJ5KGdl bi0+ZC5pcC0+ZGF0YSArMTYpOworKwkJfSBlbHNlIGlmKHhjYV9hc24xX3N0cmluZ19sZW5ndGgo Z2VuLT5kLmlwKSA9PSAzMikgeworKwkJCSpzaW5nbGUgPSAiSVA6IiArCisrCQkJCWlwdjZfZnJv bV9iaW5hcnkoeGNhX2FzbjFfc3RyaW5nX2dldDBfZGF0YShnZW4tPmQuaXApKSArCisrCQkJCSIv IiArIGlwdjZfZnJvbV9iaW5hcnkoeGNhX2FzbjFfc3RyaW5nX2dldDBfZGF0YShnZW4tPmQuaXAp ICsgMTYpOworIAkJCXJldHVybiB0cnVlOworIAkJfQorIAkJcmV0dXJuIGZhbHNlOworQEAgLTM3 Miw5ICszNzQsOSBAQCBnZW5OYW1lMmNvbmYoR0VORVJBTF9OQU1FICpnZW4sIFFTdHJpbmcKKyAJ CQkqc2luZ2xlID0gUVN0cmluZygib3RoZXJOYW1lOiUxO0ZPUk1BVDpIRVgsJTIiKS4KKyAJCQlh cmcob2JqMlNuT2lkKGdlbi0+ZC5vdGhlck5hbWUtPnR5cGVfaWQpKS4KKyAJCQlhcmcoYXNuMVR5 cGUyTmFtZSh0eXBlKSk7CistCQkJZm9yIChpbnQgaT0wOyBpPGEtPmxlbmd0aDsgaSsrKSB7Cisr CQkJZm9yIChpbnQgaT0wOyBpPHhjYV9hc24xX3N0cmluZ19sZW5ndGgoYSk7IGkrKykgeworIAkJ CQkqc2luZ2xlICs9IFFTdHJpbmcoIjolMSIpLgorLQkJCQlhcmcoKGludCkoYS0+ZGF0YVtpXSks IDIsIDE2LCBRQ2hhcignMCcpKTsKKysJCQkJYXJnKChpbnQpKHhjYV9hc24xX3N0cmluZ19nZXQw X2RhdGEoYSlbaV0pLCAyLCAxNiwgUUNoYXIoJzAnKSk7CisgCQkJfQorIAkJfQorIAkJcmV0dXJu IHRydWU7CitAQCAtNDIzLDEyICs0MjUsMTIgQEAgYm9vbCB4NTA5djNleHQ6OnBhcnNlX2lhNShR U3RyaW5nICpzaW5nbAorIAkJcmV0dXJuIGZhbHNlOworIAorIAlpZiAoIXN0cikgeworLQkJY29u c3QgdW5zaWduZWQgY2hhciAqcCA9IGdldERhdGEoKS0+ZGF0YTsKKy0JCXN0ciA9IGQyaV9BU04x X09DVEVUX1NUUklORyhOVUxMLCAmcCwgZ2V0RGF0YSgpLT5sZW5ndGgpOworKwkJY29uc3QgdW5z aWduZWQgY2hhciAqcCA9IHhjYV9hc24xX3N0cmluZ19nZXQwX2RhdGEoZ2V0RGF0YSgpKTsKKysJ CXN0ciA9IGQyaV9BU04xX09DVEVUX1NUUklORyhOVUxMLCAmcCwgeGNhX2FzbjFfc3RyaW5nX2xl bmd0aChnZXREYXRhKCkpKTsKKyAJCWlmIChpZ25fb3BlbnNzbF9lcnJvcigpIHx8ICFzdHIpCisg CQkJcmV0dXJuIGZhbHNlOworIAkJcmV0ID0gUVN0cmluZygiPEVSUk9SOiBOT1QgSUE1IGJ1dCAl MT4lMiIpLgorLQkJCWFyZyhhc24xVHlwZTJOYW1lKHN0ci0+dHlwZSkpLgorKwkJCWFyZyhhc24x VHlwZTJOYW1lKHhjYV9hc24xX3N0cmluZ190eXBlKHN0cikpKS4KKyAJCQlhcmcoUVN0cmluZyhh c24xVG9RU3RyaW5nKHN0cikpKTsKKyAJfSBlbHNlIHsKKyAJCXJldCA9IFFTdHJpbmcoYXNuMVRv UVN0cmluZyhzdHIpKTsKK0BAIC04MjQsMTAgKzgyNiwxMCBAQCBib29sIHg1MDl2M2V4dDo6cGFy c2VfZ2VuZXJpYyhRU3RyaW5nICosCisgCisgCWNvbnN0IEFTTjFfT0JKRUNUICpvID0gb2JqZWN0 KCk7CisgCVFTdHJpbmcgZGVyLCBvYmogPSBvID8gb2JqMlNuT2lkKG8pIDogUVN0cmluZygiSU5W QUxJRCIpOworLQlBU04xX09DVEVUX1NUUklORyAqdiA9IGdldERhdGEoKTsKKysJY29uc3QgQVNO MV9PQ1RFVF9TVFJJTkcgKnYgPSBnZXREYXRhKCk7CisgCistCWZvciAoaW50IGk9MDsgdiAmJiBp IDwgdi0+bGVuZ3RoOyBpKyspCistCQlkZXIgKz0gUVN0cmluZygiOiUxIikuYXJnKChpbnQpKHYt PmRhdGFbaV0pLCAyLCAxNiwgUUNoYXIoJzAnKSk7CisrCWZvciAoaW50IGk9MDsgdiAmJiBpIDwg eGNhX2FzbjFfc3RyaW5nX2xlbmd0aCh2KTsgaSsrKQorKwkJZGVyICs9IFFTdHJpbmcoIjolMSIp LmFyZygoaW50KSh4Y2FfYXNuMV9zdHJpbmdfZ2V0MF9kYXRhKHYpW2ldKSwgMiwgMTYsIFFDaGFy KCcwJykpOworIAorIAlpZiAoYWR2KQorIAkJKmFkdiA9IFFTdHJpbmcoIiUxPSUyREVSJTNcbiIp LmFyZyhvYmopLgorQEAgLTEwMzcsNyArMTAzOSw3IEBAIFg1MDlfRVhURU5TSU9OICp4NTA5djNl eHQ6OmdldCgpIGNvbnN0CisgCisgYm9vbCB4NTA5djNleHQ6OmlzVmFsaWQoKSBjb25zdAorIHsK Ky0JcmV0dXJuIGV4dCAmJiBnZXREYXRhKCkgJiYgZ2V0RGF0YSgpLT5sZW5ndGggPiAwICYmCisr CXJldHVybiBleHQgJiYgZ2V0RGF0YSgpICYmIHhjYV9hc24xX3N0cmluZ19sZW5ndGgoZ2V0RGF0 YSgpKSA+IDAgJiYKKyAJCU9CSl9vYmoybmlkKFg1MDlfRVhURU5TSU9OX2dldF9vYmplY3QoZXh0 KSkgIT0gTklEX3VuZGVmOworIH0KKyAKK2RpZmYgLU5hdXJwIHhjYS0yLjkuMC5vcmlnL2xpYi94 NTA5djNleHQuaCB4Y2EtMi45LjAubmV3L2xpYi94NTA5djNleHQuaAorLS0tIHhjYS0yLjkuMC5v cmlnL2xpYi94NTA5djNleHQuaAkyMDI1LTAzLTI4IDE5OjI4OjE1LjAwMDAwMDAwMCArMDEwMAor KysrIHhjYS0yLjkuMC5uZXcvbGliL3g1MDl2M2V4dC5oCTIwMjYtMDctMjIgMTc6MzM6NDIuNTg2 MDQ5NTM2ICswMjAwCitAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyB4NTA5djNleHQKKyAJLy8gYm9v bCBvcGVyYXRvciA9PSAoY29uc3QgeDUwOXYzZXh0ICZ4KSBjb25zdDsKKyAJUVN0cmluZyBnZXRP YmplY3QoKSBjb25zdDsKKyAJaW50IGdldENyaXRpY2FsKCkgY29uc3Q7CistCUFTTjFfT0NURVRf U1RSSU5HICpnZXREYXRhKCkgY29uc3Q7CisrCWNvbnN0IEFTTjFfT0NURVRfU1RSSU5HICpnZXRE YXRhKCkgY29uc3Q7CisgCVFTdHJpbmcgZ2V0VmFsdWUoKSBjb25zdDsKKyAJUVN0cmluZyBnZXRI dG1sVmFsdWUoKSBjb25zdDsKKyAJUVN0cmluZyBnZXRDb25zb2xlVmFsdWUoY29uc3QgUVN0cmlu ZyAmaW5kZW50KSBjb25zdDsKK2RpZmYgLU5hdXJwIHhjYS0yLjkuMC5vcmlnL3dpZGdldHMvQ2Vy dERldGFpbC5jcHAgeGNhLTIuOS4wLm5ldy93aWRnZXRzL0NlcnREZXRhaWwuY3BwCistLS0geGNh LTIuOS4wLm9yaWcvd2lkZ2V0cy9DZXJ0RGV0YWlsLmNwcAkyMDI1LTAzLTI4IDE5OjI4OjE1LjAw MDAwMDAwMCArMDEwMAorKysrIHhjYS0yLjkuMC5uZXcvd2lkZ2V0cy9DZXJ0RGV0YWlsLmNwcAky MDI2LTA3LTIyIDE3OjQ4OjEzLjcwMzM1NjkwNyArMDIwMAorQEAgLTE2LDYgKzE2LDcgQEAKKyAj aW5jbHVkZSAibGliL2Z1bmNfYmFzZS5oIgorICNpbmNsdWRlICJsaWIvZnVuYy5oIgorICNpbmNs dWRlICJsaWIvWGNhV2FybmluZ0NvcmUuaCIKKysjaW5jbHVkZSAibGliL29wZW5zc2xfY29tcGF0 LmgiCisgI2luY2x1ZGUgPFFMYWJlbD4KKyAjaW5jbHVkZSA8UVB1c2hCdXR0b24+CisgI2luY2x1 ZGUgPFFMaW5lRWRpdD4KK0BAIC0yNjksNyArMjcwLDcgQEAgdm9pZCBDZXJ0RGV0YWlsOjpzZXRS ZXEocGtpX3g1MDlyZXEgKnJlcQorIAorIAkJCWludCBjb3VudCA9IFg1MDlfQVRUUklCVVRFX2Nv dW50KGF0dCk7CisgCQkJZm9yIChpbnQgaj0wOyBqPGNvdW50OyBqKyspIHsKKy0JCQkJQVNOMV9U WVBFICphdCA9IFg1MDlfQVRUUklCVVRFX2dldDBfdHlwZShhdHQsIGopOworKwkJCQljb25zdCBB U04xX1RZUEUgKmF0ID0gWDUwOV9BVFRSSUJVVEVfZ2V0MF90eXBlKGF0dCwgaik7CisgCQkJCWxh YmVsID0gbGFiZWxGcm9tQXNuMVN0cmluZyhhdC0+dmFsdWUuYXNuMV9zdHJpbmcpOworIAkJCQlh dHRyTGF5b3V0LT5hZGRXaWRnZXQobGFiZWwsIGlpLCBqICsxKTsKKyAJCQl9CitAQCAtMjg5LDcg KzI5MCw3IEBAIFFMYWJlbCAqQ2VydERldGFpbDo6bGFiZWxGcm9tQXNuMVN0cmluZygKKyAJUUxh YmVsICpsYWJlbDsKKyAJbGFiZWwgPSBuZXcgQ29weUxhYmVsKHRoaXMpOworIAlsYWJlbC0+c2V0 VGV4dChhc24xVG9RU3RyaW5nKHMpKTsKKy0JbGFiZWwtPnNldFRvb2xUaXAoUVN0cmluZyhBU04x X3RhZzJzdHIocy0+dHlwZSkpKTsKKysJbGFiZWwtPnNldFRvb2xUaXAoUVN0cmluZyhBU04xX3Rh ZzJzdHIoeGNhX2FzbjFfc3RyaW5nX3R5cGUocykpKSk7CisgCXJldHVybiBsYWJlbDsKKyB9Cisg CgpkaWZmIC0tZ2l0IGEveGNhLnNwZWMgYi94Y2Euc3BlYwppbmRleCBhZjkzMjFmLi5kOWI1ODYx IDEwMDY0NAotLS0gYS94Y2Euc3BlYworKysgYi94Y2Euc3BlYwpAQCAtNCwxMyArNCwxNSBAQAog U3VtbWFyeToJR3JhcGhpY2FsIFguNTA5IGNlcnRpZmljYXRlIG1hbmFnZW1lbnQgdG9vbAogTmFt ZToJCXhjYQogVmVyc2lvbjoJMi45LjAKLVJlbGVhc2U6CTQlez9kaXN0fQorUmVsZWFzZToJNSV7 P2Rpc3R9CiAjIEF1dG9tYXRpY2FsbHkgY29udmVydGVkIGZyb20gb2xkIGZvcm1hdDogQlNEIC0g cmV2aWV3IGlzIGhpZ2hseSByZWNvbW1lbmRlZC4KIExpY2Vuc2U6CUxpY2Vuc2VSZWYtQ2FsbGF3 YXktQlNECiBVUkw6CQlodHRwczovL2hvaG5zdGFlZHQuZGUveGNhLwogU291cmNlMDoJaHR0cHM6 Ly9naXRodWIuY29tLyV7Z2l0b3duZXIwfS8le2dpdHByb2plY3QwfS9yZWxlYXNlcy9kb3dubG9h ZC9SRUxFQVNFLiV7dmVyc2lvbn0vJXtuYW1lfS0le3ZlcnNpb259LnRhci5negogU291cmNlMToJ eGNhLTIuNS4wLVJFQURNRS5JTVBPUlRBTlQKIAorUGF0Y2gxOgkJeGNhLTIuOS4wLW9wZW5zc2w0 LnBhdGNoCisKIEJ1aWxkUmVxdWlyZXM6CWNtYWtlCiBCdWlsZFJlcXVpcmVzOglnY2MtYysrCiBC dWlsZFJlcXVpcmVzOgljbWFrZShRdDZDb3JlKQpAQCAtMjAsNyArMjIsNyBAQCBCdWlsZFJlcXVp cmVzOgljbWFrZShRdDZIZWxwKQogQnVpbGRSZXF1aXJlczoJY21ha2UoUXQ2TGluZ3Vpc3RUb29s cykKIEJ1aWxkUmVxdWlyZXM6CWNtYWtlKFF0NlRlc3QpCiBCdWlsZFJlcXVpcmVzOglvcGVuc3Ns LWRldmVsCi0laWYgMCV7P2ZlZG9yYX0gPj0gNDEKKyVpZiAwJXs/ZmVkb3JhfSA+PSA0MSAmJiAw JXs/ZmVkb3JhfSA8PSA0NAogQnVpbGRSZXF1aXJlczoJb3BlbnNzbC1kZXZlbC1lbmdpbmUKICVl bmRpZgogQnVpbGRSZXF1aXJlczoJZGVza3RvcC1maWxlLXV0aWxzCkBAIC00NCwxMCArNDYsMTAg QEAgT3BlblNTTCBsaWJyYXJ5IGZvciB0aGUgY3J5cHRvZ3JhcGhpYyBvcGVyYXRpb25zLgogICBD ZXJ0aWZpY2F0ZSBzaWduaW5nIHJlcXVlc3RzIChQS0NTIzEwKSwgY2VydGlmaWNhdGVzIChYNTA5 djMpLCB0aGUgc2lnbmluZwogb2YgcmVxdWVzdHMsIHRoZSBjcmVhdGlvbiBvZiBzZWxmLXNpZ25l ZCBjZXJ0aWZpY2F0ZXMsIGNlcnRpZmljYXRlIHJldm9jYXRpb24KIGxpc3RzIGFuZCBTbWFydENh cmRzIGFyZSBzdXBwb3J0ZWQuIEZvciBhbiBlYXN5IGNvbXBhbnktd2lkZSB1c2UsIGN1c3RvbWl6 YWJsZQotdGVtcGxhdGVzIGNhbiBiZSB1c2VkIGZvciBjZXJ0aWZpY2F0ZSBhbmQgcmVxdWVzdCBn ZW5lcmF0aW9uLiBUaGUgUEtJIHN0cnVjdHVyZXMKLWNhbiBiZSBpbXBvcnRlZCBhbmQgZXhwb3J0 ZWQgaW4gc2V2ZXJhbCBmb3JtYXRzIGxpa2UgUEtDUyM3LCBQS0NTIzEyLCBQRU0sCi1ERVIsIFBL Q1MjOC4gQWxsIGNyeXB0b2dyYXBoaWMgZGF0YSBhcmUgc3RvcmVkIGluIGEgYnl0ZSBvcmRlciBh Z25vc3RpYyBmaWxlCi1mb3JtYXQsIHBvcnRhYmxlIGFjcm9zcyBvcGVyYXRpbmcgc3lzdGVtcy4K K3RlbXBsYXRlcyBjYW4gYmUgdXNlZCBmb3IgY2VydGlmaWNhdGUgYW5kIHJlcXVlc3QgZ2VuZXJh dGlvbi4gVGhlIFBLSQorc3RydWN0dXJlcyBjYW4gYmUgaW1wb3J0ZWQgYW5kIGV4cG9ydGVkIGlu IHNldmVyYWwgZm9ybWF0cyBsaWtlIFBLQ1MjNywKK1BLQ1MjMTIsIFBFTSwgREVSLCBQS0NTIzgu IEFsbCBjcnlwdG9ncmFwaGljIGRhdGEgYXJlIHN0b3JlZCBpbiBhIGJ5dGUgb3JkZXIKK2Fnbm9z dGljIGZpbGUgZm9ybWF0LCBwb3J0YWJsZSBhY3Jvc3Mgb3BlcmF0aW5nIHN5c3RlbXMuCiAKIAog Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTg4LDE0ICs5MCwyNyBAQCBpbnN0YWxsIC1kIC1t IDc1NSAnJXtidWlsZHJvb3R9JXtfZGF0YWRpcn0vbWltZS9wYWNrYWdlcycKIGluc3RhbGwgLXAg LW0gNjQ0IG1pc2MveGNhLnhtbCAnJXtidWlsZHJvb3R9JXtfZGF0YWRpcn0vbWltZS9wYWNrYWdl cy8nCiAKICMJVmFsaWRhdGUgZGVza3RvcCBmaWxlcy4KLWRlc2t0b3AtZmlsZS12YWxpZGF0ZSAl e2J1aWxkcm9vdH0le19kYXRhZGlyfS9hcHBsaWNhdGlvbnMvZGUuaG9obnN0YWVkdC54Y2EuZGVz a3RvcAotYXBwc3RyZWFtLXV0aWwgdmFsaWRhdGUtcmVsYXggLS1ub25ldCAle2J1aWxkcm9vdH0l e19tZXRhaW5mb2Rpcn0vZGUuaG9obnN0YWVkdC54Y2EubWV0YWluZm8ueG1sCitkZXNrdG9wLWZp bGUtdmFsaWRhdGUJCQkJCQkJXAorCScle2J1aWxkcm9vdH0le19kYXRhZGlyfS9hcHBsaWNhdGlv bnMvZGUuaG9obnN0YWVkdC54Y2EuZGVza3RvcCcKK2FwcHN0cmVhbS11dGlsIHZhbGlkYXRlLXJl bGF4IC0tbm9uZXQJCQkJCVwKKwknJXtidWlsZHJvb3R9JXtfbWV0YWluZm9kaXJ9L2RlLmhvaG5z dGFlZHQueGNhLm1ldGFpbmZvLnhtbCcKKworIwlUZW1wbGF0ZSBjb250YWlucyBuZWl0aGVyIHRy YW5zbGF0aW9ucyBub3IgbGFuZ3VhZ2UgY29kZS4KK3JtIC1mICcle2J1aWxkcm9vdH0le19kYXRh ZGlyfS94Y2EvaTE4bi94Y2EucW0nCiAKICMJVGFnIHRyYW5zbGF0aW9uIGZpbGVzLgogJWZpbmRf bGFuZyAnJXtuYW1lfScgLS13aXRoLXF0CiAKIAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyVj aGVjaworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIwlEbyBub3QgdGVzdCBHVUkuCislY3Rl c3QgLUUgJ150ZXN0eGNhJCcgfHwgOgorCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAlZmls ZXMgLWYgJXtuYW1lfS5sYW5nCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCkBAIC0xMTEsMTIg KzEyNiwxNyBAQCBhcHBzdHJlYW0tdXRpbCB2YWxpZGF0ZS1yZWxheCAtLW5vbmV0ICV7YnVpbGRy b290fSV7X21ldGFpbmZvZGlyfS9kZS5ob2huc3RhZWR0LgogJXtfZGF0YWRpcn0vYmFzaC1jb21w bGV0aW9uLwogJXtfbWV0YWluZm9kaXJ9L2RlLmhvaG5zdGFlZHQueGNhLm1ldGFpbmZvLnhtbAog JWF0dHIoMDY0NCwgcm9vdCwgcm9vdCkgJXtfbWFuZGlyfS8qLyoKLSMgdGVtcGxhdGUsIGNvbnRh aW5zIG5vIHRyYW5zbGF0aW9ucyBvciBsYW5ndWFnZSBjb2RlCi0lZXhjbHVkZSAle19kYXRhZGly fS94Y2EvaTE4bi94Y2EucW0KIAogCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogJWNoYW5nZWxv ZworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworKiBXZWQgSnVsIDIyIDIwMjYgUGF0cmljayBN b25uZXJhdCA8cGF0cmlja0Btb25uZXJhdC5uZXQ+IDIuOS4wLTUKKy0gUGF0Y2ggIm9wZW5zc2w0 IiBmb3Igb3BlbnNzbCB2ZXJzaW9uIDQgY29tcGF0aWJpbGl0eS4KKy0gUmVtb3ZlIEJSIG9wZW5z c2wtZGV2ZWwtZW5naW5lIGZvciBGZWRvcmEgPiA0NC4KKy0gUGVyZm9ybSB0ZXN0cy4KKwogKiBG cmkgSnVsIDE3IDIwMjYgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFw cm9qZWN0Lm9yZz4gLSAyLjkuMC00CiAtIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVj dC5vcmcvd2lraS9GZWRvcmFfNDVfTWFzc19SZWJ1aWxkCiAKQEAgLTEzNSw4ICsxNTUsNiBAQCBh cHBzdHJlYW0tdXRpbCB2YWxpZGF0ZS1yZWxheCAtLW5vbmV0ICV7YnVpbGRyb290fSV7X21ldGFp bmZvZGlyfS9kZS5ob2huc3RhZWR0LgogKiBTdW4gSmFuIDE5IDIwMjUgRmVkb3JhIFJlbGVhc2Ug RW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAyLjcuMC0yCiAtIFJlYnVp bHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfNDJfTWFzc19SZWJ1 aWxkCiAKLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KICogRnJpIFNlcCAgNiAyMDI0IFBhdHJp Y2sgTW9ubmVyYXQgPHBhdHJpY2tAbW9ubmVyYXQubmV0PiAyLjcuMC0xCiAtIE5ldyB1cHN0cmVh bSByZWxlYXNlLgogCg==