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: Jakub Jelinek To: git-commits@fedoraproject.org Subject: [rpms/gcc] rhel-f41-base: 4.3.0-0.4 Date: Mon, 29 Jun 2026 12:23:34 GMT Message-ID: <178273581436.1.4291256406749802154.rpms-gcc-26315c4d94e9@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: 26315c4d94e9b39d25d3a3dd010316fedb0c4b31 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogMjYzMTVjNGQ5NGU5YjM5ZDI1ZDNhM2RkMDEwMzE2ZmVk YjBjNGIzMQpBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkBmZWRvcmFwcm9qZWN0Lm9yZz4K RGF0ZSAgIDogMjAwNy0xMi0yMFQxNzoxNzo0OCswMDowMApTdGF0cyAgOiArNTE3Ly00MzggaW4g MTQgZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2dj Yy9jLzI2MzE1YzRkOTRlOWIzOWQyNWQzYTNkZDAxMDMxNmZlZGIwYzRiMzE/YnJhbmNoPXJoZWwt ZjQxLWJhc2UKCkxvZzoKNC4zLjAtMC40CgotLS0KZGlmZiAtLWdpdCBhLy5jdnNpZ25vcmUgYi8u Y3ZzaWdub3JlCmluZGV4IDdlMTZkODYuLmM0MjVlMTQgMTAwNjQ0Ci0tLSBhLy5jdnNpZ25vcmUK KysrIGIvLmN2c2lnbm9yZQpAQCAtMSwyICsxLDIgQEAKLWdjYy00LjMuMC0yMDA3MTIxMi50YXIu YnoyCitnY2MtNC4zLjAtMjAwNzEyMjAudGFyLmJ6MgogZmFzdGphci0wLjk1LnRhci5negoKZGlm ZiAtLWdpdCBhL2djYzQzLWFkYS1wcm9maWxlZGJvb3RzdHJhcC5wYXRjaCBiL2djYzQzLWFkYS1w cm9maWxlZGJvb3RzdHJhcC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDdm ZjA0ZS4uMDAwMDAwMAotLS0gYS9nY2M0My1hZGEtcHJvZmlsZWRib290c3RyYXAucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0tLS0gZ2NjL2FkYS9NYWtlLWxhbmcuaW4uamoJ MjAwNy0xMi0wNyAxNDo0Nzo1OC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnY2MvYWRhL01ha2UtbGFu Zy5pbgkyMDA3LTEyLTE0IDEzOjIwOjQ2LjAwMDAwMDAwMCArMDEwMAotQEAgLTI4NiwxMSArMjg2 LDExIEBAIFRBUkdFVF9BREFfU1JDUyA9Ci0gIyBTaW5jZSB0aGUgUlRMIHNob3VsZCBiZSBidWls dCB3aXRoIHRoZSBsYXRlc3QgY29tcGlsZXIsIHJlbW92ZSB0aGUKLSAjICBzdGFtcCB0YXJnZXQg aW4gdGhlIHBhcmVudCBkaXJlY3Rvcnkgd2hlbmV2ZXIgZ25hdDEgaXMgcmVidWlsdAotIGduYXQx JChleGVleHQpOiAkKFRBUkdFVF9BREFfU1JDUykgJChHTkFUMV9PQkpTKSAkKEFEQV9CQUNLRU5E KSAkKExJQkRFUFMpCi0tCSQoR0NDX0xJTkspIC1vICRAICQoR05BVDFfT0JKUykgJChBREFfQkFD S0VORCkgJChMSUJTKSAkKFNZU0xJQlMpCi0rCSQoR0NDX0xJTkspIC1vICRAICQoR05BVDFfT0JK UykgJChBREFfQkFDS0VORCkgJChBTExfQ0ZMQUdTKSAkKExJQlMpICQoU1lTTElCUykKLSAJJChS TSkgc3RhbXAtZ25hdGxpYjIgc3RhbXAtdG9vbHMKLSAKLSBnbmF0YmluZCQoZXhlZXh0KTogYWRh L2JfZ25hdGIubyAkKENPTkZJR19IKSAkKEdOQVRCSU5EX09CSlMpCi0tCSQoR0NDX0xJTkspIC1v ICRAIGFkYS9iX2duYXRiLm8gJChHTkFUQklORF9PQkpTKSAkKExJQlMpICQoU1lTTElCUykKLSsJ JChHQ0NfTElOSykgLW8gJEAgYWRhL2JfZ25hdGIubyAkKEdOQVRCSU5EX09CSlMpICQoQUxMX0NG TEFHUykgJChMSUJTKSAkKFNZU0xJQlMpCi0gCi0gIyB1c2UgY3Jvc3MtZ2NjCi0gZ25hdC1jcm9z czogZm9yY2UKCmRpZmYgLS1naXQgYS9nY2M0My1saWJqYXZhLWdjanBhdGgucGF0Y2ggYi9nY2M0 My1saWJqYXZhLWdjanBhdGgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ2 MWNjNGIuLjAwMDAwMDAKLS0tIGEvZ2NjNDMtbGliamF2YS1nY2pwYXRoLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMzAgKzAsMCBAQAotLS0tIGxpYmphdmEvY2xhc3NwYXRoL2NvbmZpZ3VyZS5h YwkocmV2aXNpb24gMTMwNjkxKQotKysrIGxpYmphdmEvY2xhc3NwYXRoL2NvbmZpZ3VyZS5hYwko d29ya2luZyBjb3B5KQotQEAgLTI5NCwxNCArMjk0LDE0IEBAIENMQVNTUEFUSF9UT09MRVhFQ0xJ QkRJUgotIGRubCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotIGRubCBTZXRzIHRoZSBuYXRpdmUgbGlicmFyaWVzIGluc3RhbGxhdGlv biBkaXIKLSBkbmwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLS1kbmwgR0NKIExPQ0FMOiBkZWZhdWx0IHRvICR7dG9vbGV4ZWNsaWJk aXJ9L2djai0ke2djY192ZXJzaW9ufS0ke2xpYmdjal9zb3ZlcnNpb259Ci0rZG5sIEdDSiBMT0NB TDogZGVmYXVsdCB0byAke3Rvb2xleGVjbGliZGlyfS9nY2otJHtnY2NfdmVyc2lvbn0KLSBBQ19B UkdfV0lUSChbbmF0aXZlLWxpYmRpcl0sCi0gCSAgICBbQVNfSEVMUF9TVFJJTkcoLS13aXRoLW5h dGl2ZS1saWJkaXIsc2V0cyB0aGUgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBmb3IgbmF0aXZlIGxp YnJhcmllcyBbZGVmYXVsdD0nJHtsaWJkaXJ9LyR7UEFDS0FHRX0nXSldLAotIAkgICAgWwotIAkg ICAgIG5hdGl2ZWV4ZWNsaWJkaXI9JHt3aXRodmFsfQotIAkgICAgXSwKLSAJICAgIFsKLS0JICAg ICBuYXRpdmVleGVjbGliZGlyPScke3Rvb2xleGVjbGliZGlyfS9nY2otJ2BjYXQgJHtzcmNkaXJ9 Ly4uLy4uL2djYy9CQVNFLVZFUmAtYGF3ayAtRjogJy9eW1teI11dLio6LyB7IHByaW50ICQxIH0n ICR7c3JjZGlyfS8uLi9saWJ0b29sLXZlcnNpb25gCi0rCSAgICAgbmF0aXZlZXhlY2xpYmRpcj0n JHt0b29sZXhlY2xpYmRpcn0vZ2NqLSdgY2F0ICR7c3JjZGlyfS8uLi8uLi9nY2MvQkFTRS1WRVJg Ci0gCSAgICBdKQotIAotIEFDX1NVQlNUKG5hdGl2ZWV4ZWNsaWJkaXIpCi0tLS0gbGliamF2YS9j bGFzc3BhdGgvY29uZmlndXJlCShyZXZpc2lvbiAxMzA2OTEpCi0rKysgbGliamF2YS9jbGFzc3Bh dGgvY29uZmlndXJlCSh3b3JraW5nIGNvcHkpCi1AQCAtNDc3MSw3ICs0NzcxLDcgQEAgaWYgdGVz dCAiJHt3aXRoX25hdGl2ZV9saWJkaXIrc2V0fSIgPSBzZQotIAotIGVsc2UKLSAKLS0JICAgICBu YXRpdmVleGVjbGliZGlyPScke3Rvb2xleGVjbGliZGlyfS9nY2otJ2BjYXQgJHtzcmNkaXJ9Ly4u Ly4uL2djYy9CQVNFLVZFUmAtYGF3ayAtRjogJy9eW14jXS4qOi8geyBwcmludCAkMSB9JyAke3Ny Y2Rpcn0vLi4vbGlidG9vbC12ZXJzaW9uYAotKwkgICAgIG5hdGl2ZWV4ZWNsaWJkaXI9JyR7dG9v bGV4ZWNsaWJkaXJ9L2djai0nYGNhdCAke3NyY2Rpcn0vLi4vLi4vZ2NjL0JBU0UtVkVSYAotIAot IGZpOwotIAoKZGlmZiAtLWdpdCBhL2djYzQzLWxpYmphdmEtdGVzdC5wYXRjaCBiL2djYzQzLWxp YmphdmEtdGVzdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTU3Nzk2ZC4u MDAwMDAwMAotLS0gYS9nY2M0My1saWJqYXZhLXRlc3QucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSwyMiArMCwwIEBACi0tLS0gbGliamF2YS90ZXN0c3VpdGUvTWFrZWZpbGUuYW0JMjAwNy0wMi0w NyAxMzowNzoxNi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBsaWJqYXZhL3Rlc3RzdWl0ZS9NYWtlZmls ZS5hbQkyMDA3LTEyLTA4IDEwOjU4OjAyLjAwMDAwMDAwMCArMDEwMAotQEAgLTQzLDcgKzQzLDcg QEAgaWYgSkFWQV9NQUlOVEFJTkVSX01PREUKLSAJICAgICAgdGVzdGRlcD0ibGliamF2YS5sb2Fk ZXIvTXlMb2FkZXIuamF2YSI7OyBcCi0gCSAgICBsaWJqYXZhLmpuaS9yZWdpc3RlcjIuamF2YSkg XAotIAkgICAgICA7OyBcCi0tCSAgICBsaWJqYXZhLmpuaS8qLmphdmEpIFwKLSsJICAgIGxpYmph dmEuam5pLyouamF2YXxsaWJqYXZhLmp2bXRpL2ludGVycC8qLmphdmEpIFwKLSAJICAgICAgZ2Vu aGVhZGVyPS1qbmk7OyBcCi0gCSAgICBsaWJqYXZhLmp2bXRpLyouamF2YXxsaWJqYXZhLmNuaS8q LmphdmEpIFwKLSAJICAgICAgZ2VuaGVhZGVyPS1jbmk7OyBcCi0tLS0gbGliamF2YS90ZXN0c3Vp dGUvTWFrZWZpbGUuaW4JMjAwNy0wOS0wNCAyMzowOTozNy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBs aWJqYXZhL3Rlc3RzdWl0ZS9NYWtlZmlsZS5pbgkyMDA3LTEyLTA4IDEwOjU4OjI1LjAwMDAwMDAw MCArMDEwMAotQEAgLTU1OCw3ICs1NTgsNyBAQCBjb21waWxlLXRlc3RzOgotIEBKQVZBX01BSU5U QUlORVJfTU9ERV9UUlVFQAkgICAgICB0ZXN0ZGVwPSJsaWJqYXZhLmxvYWRlci9NeUxvYWRlci5q YXZhIjs7IFwKLSBASkFWQV9NQUlOVEFJTkVSX01PREVfVFJVRUAJICAgIGxpYmphdmEuam5pL3Jl Z2lzdGVyMi5qYXZhKSBcCi0gQEpBVkFfTUFJTlRBSU5FUl9NT0RFX1RSVUVACSAgICAgIDs7IFwK LS1ASkFWQV9NQUlOVEFJTkVSX01PREVfVFJVRUAJICAgIGxpYmphdmEuam5pLyouamF2YSkgXAot K0BKQVZBX01BSU5UQUlORVJfTU9ERV9UUlVFQAkgICAgbGliamF2YS5qbmkvKi5qYXZhfGxpYmph dmEuanZtdGkvaW50ZXJwLyouamF2YSkgXAotIEBKQVZBX01BSU5UQUlORVJfTU9ERV9UUlVFQAkg ICAgICBnZW5oZWFkZXI9LWpuaTs7IFwKLSBASkFWQV9NQUlOVEFJTkVSX01PREVfVFJVRUAJICAg IGxpYmphdmEuanZtdGkvKi5qYXZhfGxpYmphdmEuY25pLyouamF2YSkgXAotIEBKQVZBX01BSU5U QUlORVJfTU9ERV9UUlVFQAkgICAgICBnZW5oZWFkZXI9LWNuaTs7IFwKCmRpZmYgLS1naXQgYS9n Y2M0My1wcjI5NDg0LnBhdGNoIGIvZ2NjNDMtcHIyOTQ4NC5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi4wOWEzNzFlCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjNDMtcHIy OTQ4NC5wYXRjaApAQCAtMCwwICsxLDE1OSBAQAorMjAwNy0xMi0yMCAgSmFrdWIgSmVsaW5layAg PGpha3ViQHJlZGhhdC5jb20+CisKKwlQUiB0cmVlLW9wdGltaXphdGlvbi8yOTQ4NAorCSogdHJl ZS1pbmxpbmUuYyAoaW5saW5lX2ZvcmJpZGRlbl9wXzIpOiBOZXcgZnVuY3Rpb24uCisJKGlubGlu ZV9mb3JiaWRkZW5fcCk6IERpc2FsbG93IGlubGluaW5nIGlmIHNvbWUgc3RhdGljIHZhcgorCWhh cyBhbiBhZGRyZXNzIG9mIGEgbG9jYWwgTEFCRUxfREVDTCBpbiBpdHMgaW5pdGlhbGl6ZXIuCisK KwkqIGdjYy5jLXRvcnR1cmUvZXhlY3V0ZS8yMDA3MTIyMC0xLmM6IE5ldyB0ZXN0LgorCSogZ2Nj LmMtdG9ydHVyZS9leGVjdXRlLzIwMDcxMjIwLTIuYzogTmV3IHRlc3QuCisKKy0tLSBnY2MvdHJl ZS1pbmxpbmUuYy5qagkyMDA3LTEyLTA0IDE2OjM5OjIyLjAwMDAwMDAwMCArMDEwMAorKysrIGdj Yy90cmVlLWlubGluZS5jCTIwMDctMTItMjAgMTM6NDY6MTguMDAwMDAwMDAwICswMTAwCitAQCAt MTk1MSw2ICsxOTUxLDI3IEBAIGlubGluZV9mb3JiaWRkZW5fcF8xICh0cmVlICpub2RlcCwgaW50 ICoKKyAgIHJldHVybiBOVUxMX1RSRUU7CisgfQorIAorK3N0YXRpYyB0cmVlCisraW5saW5lX2Zv cmJpZGRlbl9wXzIgKHRyZWUgKm5vZGVwLCBpbnQgKndhbGtfc3VidHJlZXMsCisrCQkgICAgICB2 b2lkICpmbnApCisreworKyAgdHJlZSBub2RlID0gKm5vZGVwOworKyAgdHJlZSBmbiA9ICh0cmVl KSBmbnA7CisrCisrICBpZiAoVFJFRV9DT0RFIChub2RlKSA9PSBMQUJFTF9ERUNMICYmIERFQ0xf Q09OVEVYVCAobm9kZSkgPT0gZm4pCisrICAgIHsKKysgICAgICBpbmxpbmVfZm9yYmlkZGVuX3Jl YXNvbgorKwk9IEdfKCJmdW5jdGlvbiAlcStGIGNhbiBuZXZlciBiZSBpbmxpbmVkICIKKysJICAg ICAiYmVjYXVzZSBpdCBzYXZlcyBhZGRyZXNzIG9mIGxvY2FsIGxhYmVsIGluIGEgc3RhdGljIHZh cmlhYmxlIik7CisrICAgICAgcmV0dXJuIG5vZGU7CisrICAgIH0KKysKKysgIGlmIChUWVBFX1Ag KG5vZGUpKQorKyAgICAqd2Fsa19zdWJ0cmVlcyA9IDA7CisrCisrICByZXR1cm4gTlVMTF9UUkVF OworK30KKysKKyAvKiBSZXR1cm4gc3ViZXhwcmVzc2lvbiByZXByZXNlbnRpbmcgcG9zc2libGUg YWxsb2NhIGNhbGwsIGlmIGFueS4gICovCisgc3RhdGljIHRyZWUKKyBpbmxpbmVfZm9yYmlkZGVu X3AgKHRyZWUgZm5kZWNsKQorQEAgLTE5NTksMTYgKzE5ODAsMzEgQEAgaW5saW5lX2ZvcmJpZGRl bl9wICh0cmVlIGZuZGVjbCkKKyAgIGJsb2NrX3N0bXRfaXRlcmF0b3IgYnNpOworICAgYmFzaWNf YmxvY2sgYmI7CisgICB0cmVlIHJldCA9IE5VTExfVFJFRTsKKysgIHN0cnVjdCBmdW5jdGlvbiAq ZnVuID0gREVDTF9TVFJVQ1RfRlVOQ1RJT04gKGZuZGVjbCk7CisrICB0cmVlIHN0ZXA7CisgCist ICBGT1JfRUFDSF9CQl9GTiAoYmIsIERFQ0xfU1RSVUNUX0ZVTkNUSU9OIChmbmRlY2wpKQorKyAg Rk9SX0VBQ0hfQkJfRk4gKGJiLCBmdW4pCisgICAgIGZvciAoYnNpID0gYnNpX3N0YXJ0IChiYik7 ICFic2lfZW5kX3AgKGJzaSk7IGJzaV9uZXh0ICgmYnNpKSkKKyAgICAgICB7CisgCXJldCA9IHdh bGtfdHJlZV93aXRob3V0X2R1cGxpY2F0ZXMgKGJzaV9zdG10X3B0ciAoYnNpKSwKKy0JCQkJICAg IGlubGluZV9mb3JiaWRkZW5fcF8xLCBmbmRlY2wpOworKwkJCQkJICAgIGlubGluZV9mb3JiaWRk ZW5fcF8xLCBmbmRlY2wpOworIAlpZiAocmV0KQorIAkgIGdvdG8gZWdyZXNzOworICAgICAgIH0K KyAKKysgIGZvciAoc3RlcCA9IGZ1bi0+dW5leHBhbmRlZF92YXJfbGlzdDsgc3RlcDsgc3RlcCA9 IFRSRUVfQ0hBSU4gKHN0ZXApKQorKyAgICB7CisrICAgICAgdHJlZSBkZWNsID0gVFJFRV9WQUxV RSAoc3RlcCk7CisrICAgICAgaWYgKFRSRUVfQ09ERSAoZGVjbCkgPT0gVkFSX0RFQ0wKKysJICAm JiBUUkVFX1NUQVRJQyAoZGVjbCkKKysJICAmJiAhREVDTF9FWFRFUk5BTCAoZGVjbCkKKysJICAm JiBERUNMX0lOSVRJQUwgKGRlY2wpKQorKwlyZXQgPSB3YWxrX3RyZWVfd2l0aG91dF9kdXBsaWNh dGVzICgmREVDTF9JTklUSUFMIChkZWNsKSwKKysJCQkJCSAgICBpbmxpbmVfZm9yYmlkZGVuX3Bf MiwgZm5kZWNsKTsKKysJaWYgKHJldCkKKysJICBnb3RvIGVncmVzczsKKysgICAgfQorKworIGVn cmVzczoKKyAgIGlucHV0X2xvY2F0aW9uID0gc2F2ZWRfbG9jOworICAgcmV0dXJuIHJldDsKKy0t LSBnY2MvdGVzdHN1aXRlL2djYy5jLXRvcnR1cmUvZXhlY3V0ZS8yMDA3MTIyMC0xLmMuamoJMjAw Ny0xMi0yMCAxNDoyOTowNC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnY2MvdGVzdHN1aXRlL2djYy5j LXRvcnR1cmUvZXhlY3V0ZS8yMDA3MTIyMC0xLmMJMjAwNy0xMi0yMCAxNDoyODoxMi4wMDAwMDAw MDAgKzAxMDAKK0BAIC0wLDAgKzEsNDAgQEAKKysvKiBQUiB0cmVlLW9wdGltaXphdGlvbi8yOTQ4 NCAqLworKworK2V4dGVybiB2b2lkIGFib3J0ICh2b2lkKTsKKysKKyt2b2lkICpfX2F0dHJpYnV0 ZV9fKChub2lubGluZSkpCisrYmF6ICh2b2lkICoqbGFiKQorK3sKKysgIGFzbSB2b2xhdGlsZSAo IiIgOiAiK3IiIChsYWIpKTsKKysgIHJldHVybiAqbGFiOworK30KKysKKytzdGF0aWMgaW5saW5l CisraW50IGJhciAodm9pZCkKKyt7CisrICBzdGF0aWMgdm9pZCAqYltdID0geyAmJmFkZHIgfTsK KysgIHZvaWQgKnAgPSBiYXogKGIpOworKyAgZ290byAqcDsKKythZGRyOgorKyAgcmV0dXJuIDE3 OworK30KKysKKytpbnQgX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorK2YxICh2b2lkKQorK3sK KysgIHJldHVybiBiYXIgKCk7CisrfQorKworK2ludCBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkp CisrZjIgKHZvaWQpCisreworKyAgcmV0dXJuIGJhciAoKTsKKyt9CisrCisraW50CisrbWFpbiAo dm9pZCkKKyt7CisrICBpZiAoZjEgKCkgIT0gMTcgfHwgZjEgKCkgIT0gMTcgfHwgZjIgKCkgIT0g MTcgfHwgZjIgKCkgIT0gMTcpCisrICAgIGFib3J0ICgpOworKyAgcmV0dXJuIDA7CisrfQorLS0t IGdjYy90ZXN0c3VpdGUvZ2NjLmMtdG9ydHVyZS9leGVjdXRlLzIwMDcxMjIwLTIuYy5qagkyMDA3 LTEyLTIwIDE0OjI5OjEzLjAwMDAwMDAwMCArMDEwMAorKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmMt dG9ydHVyZS9leGVjdXRlLzIwMDcxMjIwLTIuYwkyMDA3LTEyLTIwIDE0OjI4OjMwLjAwMDAwMDAw MCArMDEwMAorQEAgLTAsMCArMSwzOSBAQAorKy8qIFBSIHRyZWUtb3B0aW1pemF0aW9uLzI5NDg0 ICovCisrCisrZXh0ZXJuIHZvaWQgYWJvcnQgKHZvaWQpOworKworK3ZvaWQgKl9fYXR0cmlidXRl X18oKG5vaW5saW5lKSkKKytiYXogKHZvaWQgKipsYWIpCisreworKyAgYXNtIHZvbGF0aWxlICgi IiA6ICIrciIgKGxhYikpOworKyAgcmV0dXJuICpsYWI7CisrfQorKworK3N0YXRpYyBpbmxpbmUK KytpbnQgYmFyICh2b2lkKQorK3sKKysgIHN0YXRpYyB2b2lkICpiW10gPSB7ICYmYWRkciB9Owor KyAgYmF6IChiKTsKKythZGRyOgorKyAgcmV0dXJuIDE3OworK30KKysKKytpbnQgX19hdHRyaWJ1 dGVfXygobm9pbmxpbmUpKQorK2YxICh2b2lkKQorK3sKKysgIHJldHVybiBiYXIgKCk7CisrfQor KworK2ludCBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCisrZjIgKHZvaWQpCisreworKyAgcmV0 dXJuIGJhciAoKTsKKyt9CisrCisraW50CisrbWFpbiAodm9pZCkKKyt7CisrICBpZiAoZjEgKCkg IT0gMTcgfHwgZjEgKCkgIT0gMTcgfHwgZjIgKCkgIT0gMTcgfHwgZjIgKCkgIT0gMTcpCisrICAg IGFib3J0ICgpOworKyAgcmV0dXJuIDA7CisrfQoKZGlmZiAtLWdpdCBhL2djYzQzLXByMjk5Nzgu cGF0Y2ggYi9nY2M0My1wcjI5OTc4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwNWNlZjIwLi4wMDAwMDAwCi0tLSBhL2djYzQzLXByMjk5NzgucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSw2NCArMCwwIEBACi0yMDA3LTEyLTE0ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVk aGF0LmNvbT4KLQotCVBSIHRhcmdldC8yOTk3OAotCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2 X2V4cGFuZF9icmFuY2gpOiBPcHRpbWl6ZSBMRS9MRVUvR1QvR1RVCi0JREltb2RlIGNvbXBhcmlz b25zIGFnYWluc3QgY29uc3RhbnQgd2l0aCBhbGwgMSdzIGluIHRoZSBsb3dlciB3b3JkLgotCi0J KiBnY2MudGFyZ2V0L2kzODYvcHIyOTk3OC5jOiBOZXcgdGVzdC4KLQotLS0tIGdjYy9jb25maWcv aTM4Ni9pMzg2LmMuamoJMjAwNy0xMi0xNCAwMDoyNjoyMy4wMDAwMDAwMDAgKzAxMDAKLSsrKyBn Y2MvY29uZmlnL2kzODYvaTM4Ni5jCTIwMDctMTItMTQgMTQ6MTQ6NTEuMDAwMDAwMDAwICswMTAw Ci1AQCAtMTIwOTMsMTYgKzEyMDkzLDI4IEBAIGl4ODZfZXhwYW5kX2JyYW5jaCAoZW51bSBydHhf Y29kZSBjb2RlLCAKLSAKLSAJLyogT3RoZXJ3aXNlLCBpZiB3ZSBhcmUgZG9pbmcgbGVzcy10aGFu IG9yIGdyZWF0ZXItb3ItZXF1YWwtdGhhbiwKLSAJICAgb3AxIGlzIGEgY29uc3RhbnQgYW5kIHRo ZSBsb3cgd29yZCBpcyB6ZXJvLCB0aGVuIHdlIGNhbiBqdXN0Ci0tCSAgIGV4YW1pbmUgdGhlIGhp Z2ggd29yZC4gICovCi0rCSAgIGV4YW1pbmUgdGhlIGhpZ2ggd29yZC4gIFNpbWlsYXJseSBmb3Ig bG93IHdvcmQgLTEgYW5kCi0rCSAgIGxlc3Mtb3ItZXF1YWwtdGhhbiBvciBncmVhdGVyLXRoYW4u ICAqLwotIAotLQlpZiAoQ09OU1RfSU5UX1AgKGhpWzFdKSAmJiBsb1sxXSA9PSBjb25zdDBfcnR4 KQotKwlpZiAoQ09OU1RfSU5UX1AgKGhpWzFdKSkKLSAJICBzd2l0Y2ggKGNvZGUpCi0gCSAgICB7 Ci0gCSAgICBjYXNlIExUOiBjYXNlIExUVTogY2FzZSBHRTogY2FzZSBHRVU6Ci0tCSAgICAgIGl4 ODZfY29tcGFyZV9vcDAgPSBoaVswXTsKLS0JICAgICAgaXg4Nl9jb21wYXJlX29wMSA9IGhpWzFd OwotLQkgICAgICBpeDg2X2V4cGFuZF9icmFuY2ggKGNvZGUsIGxhYmVsKTsKLS0JICAgICAgcmV0 dXJuOwotKwkgICAgICBpZiAobG9bMV0gPT0gY29uc3QwX3J0eCkKLSsJCXsKLSsJCSAgaXg4Nl9j b21wYXJlX29wMCA9IGhpWzBdOwotKwkJICBpeDg2X2NvbXBhcmVfb3AxID0gaGlbMV07Ci0rCQkg IGl4ODZfZXhwYW5kX2JyYW5jaCAoY29kZSwgbGFiZWwpOwotKwkJICByZXR1cm47Ci0rCQl9Ci0r CSAgICBjYXNlIExFOiBjYXNlIExFVTogY2FzZSBHVDogY2FzZSBHVFU6Ci0rCSAgICAgIGlmIChs b1sxXSA9PSBjb25zdG0xX3J0eCkKLSsJCXsKLSsJCSAgaXg4Nl9jb21wYXJlX29wMCA9IGhpWzBd OwotKwkJICBpeDg2X2NvbXBhcmVfb3AxID0gaGlbMV07Ci0rCQkgIGl4ODZfZXhwYW5kX2JyYW5j aCAoY29kZSwgbGFiZWwpOwotKwkJICByZXR1cm47Ci0rCQl9Ci0gCSAgICBkZWZhdWx0OgotIAkg ICAgICBicmVhazsKLSAJICAgIH0KLS0tLSBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9w cjI5OTc4LmMuamoJMjAwNy0xMi0xNCAxNDoyNjoxNy4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjI5OTc4LmMJMjAwNy0xMi0xNCAxNDoyNjowNC4w MDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsMTYgQEAKLSsvKiBQUiB0YXJnZXQvMjk5NzggKi8K LSsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwotKy8qIHsgZGctb3B0aW9ucyAiLU9zIiB9ICovCi0r Ci0rdm9pZCBnICgpOwotKwotK3ZvaWQKLStmIChsb25nIGxvbmcgdikKLSt7Ci0rICBpZiAodiA+ IDB4ZmZmZmZmZmZmTEwpCi0rICAgIGcgKCk7Ci0rICBnICgpOwotK30KLSsKLSsvKiBWZXJpZnkg dGhlcmUgYXJlIG5vIHJlZHVuZGFudCBqdW1wcyBqbCAuTDI7IGpsZSAuTDIgKi8KLSsvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICJqbFxbXmVcXSpcXC5MIiB7IHRhcmdldCBpbHAz MiB9IH0gfSAqLwoKZGlmZiAtLWdpdCBhL2djYzQzLXByMzI2MzYucGF0Y2ggYi9nY2M0My1wcjMy NjM2LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MjIyZGRmLi4wMDAwMDAw Ci0tLSBhL2djYzQzLXByMzI2MzYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBA Ci0yMDA3LTEyLTExICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KLQotCVBSIHJ0 bC1vcHRpbWl6YXRpb24vMzI2MzYKLQkqIGRmLXNjYW4uYyAoZGZfZ2V0X2VudHJ5X2Jsb2NrX2Rl Zl9zZXQpOiBTZXQgc3RydWN0X3ZhbHVlX3J0eAotCXJlZ25vIGluIGVudHJ5X2Jsb2NrX2RlZnMg ZXZlbiBpZiBIQVZFX3Byb2xvZ3VlICYmIGVwaWxvZ3VlX2NvbXBsZXRlZC4KLQotLS0tIGdjYy9k Zi1zY2FuLmMuamoJMjAwNy0xMC0yNiAxMzo0NTo0NC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnY2Mv ZGYtc2Nhbi5jCTIwMDctMTItMTEgMjI6MjQ6MjEuMDAwMDAwMDAwICswMTAwCi1AQCAtMzUzMCwx MiArMzUzMCwxMiBAQCBkZl9nZXRfZW50cnlfYmxvY2tfZGVmX3NldCAoYml0bWFwIGVudHJ5Ci0g ICAgICAgYml0bWFwX3NldF9iaXQgKGVudHJ5X2Jsb2NrX2RlZnMsIFNUQVRJQ19DSEFJTl9SRUdO VU0pOwotICNlbmRpZgotICNlbmRpZgotLSAgICAgIAotLSAgICAgIHIgPSB0YXJnZXRtLmNhbGxz LnN0cnVjdF92YWx1ZV9ydHggKGN1cnJlbnRfZnVuY3Rpb25fZGVjbCwgdHJ1ZSk7Ci0tICAgICAg aWYgKHIgJiYgUkVHX1AgKHIpKQotLQliaXRtYXBfc2V0X2JpdCAoZW50cnlfYmxvY2tfZGVmcywg UkVHTk8gKHIpKTsKLSAgICAgfQotIAotKyAgciA9IHRhcmdldG0uY2FsbHMuc3RydWN0X3ZhbHVl X3J0eCAoY3VycmVudF9mdW5jdGlvbl9kZWNsLCB0cnVlKTsKLSsgIGlmIChyICYmIFJFR19QIChy KSkKLSsgICAgYml0bWFwX3NldF9iaXQgKGVudHJ5X2Jsb2NrX2RlZnMsIFJFR05PIChyKSk7Ci0r Ci0gICBpZiAoKCFyZWxvYWRfY29tcGxldGVkKSB8fCBmcmFtZV9wb2ludGVyX25lZWRlZCkKLSAg ICAgewotICAgICAgIC8qIEFueSByZWZlcmVuY2UgdG8gYW55IHBzZXVkbyBiZWZvcmUgcmVsb2Fk IGlzIGEgcG90ZW50aWFsCgpkaWZmIC0tZ2l0IGEvZ2NjNDMtcHIzNDAwMy5wYXRjaCBiL2djYzQz LXByMzQwMDMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1YjI4M2IuLjAw MDAwMDAKLS0tIGEvZ2NjNDMtcHIzNDAwMy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDgwICsw LDAgQEAKLTIwMDctMTItMTMgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgotCi0J UFIgYm9vdHN0cmFwLzM0MDAzCi0JKiBjLWRlY2wuYyAobWVyZ2VfZGVjbHMpOiBDb3B5IFJUTCBm cm9tIG9sZGRlY2wgdG8gbmV3ZGVjbC4KLQkqIGNvbmZpZy9wYS9wYS5jIChwYV9lbmNvZGVfc2Vj dGlvbl9pbmZvKTogSWYgIWZpcnN0LCBwcmVzZXJ2ZQotCVNZTUJPTF9GTEFHX1JFRkVSRU5DRUQg ZmxhZy4KLQotCSogZ2NjLmRnL3ByMzQwMDMtMS5jOiBOZXcgdGVzdC4KLQkqIGdjYy5kZy9wcjM0 MDAzLTIuYzogTmV3LgotCi0tLS0gZ2NjL2MtZGVjbC5jLmpqCTIwMDctMTEtMjYgMjI6MTQ6MDgu MDAwMDAwMDAwICswMTAwCi0rKysgZ2NjL2MtZGVjbC5jCTIwMDctMTItMTMgMjA6MTE6MzMuMDAw MDAwMDAwICswMTAwCi1AQCAtMTY3MCw2ICsxNjcwLDkgQEAgbWVyZ2VfZGVjbHMgKHRyZWUgbmV3 ZGVjbCwgdHJlZSBvbGRkZWNsLAotIAl9Ci0gICAgIH0KLSAKLSsgIC8qIEtlZXAgdGhlIG9sZCBy dGwgc2luY2Ugd2UgY2FuIHNhZmVseSB1c2UgaXQuICAqLwotKyAgaWYgKEhBU19SVExfUCAob2xk ZGVjbCkpCi0rICAgIENPUFlfREVDTF9SVEwgKG9sZGRlY2wsIG5ld2RlY2wpOwotIAotICAgLyog TWVyZ2UgdGhlIHR5cGUgcXVhbGlmaWVycy4gICovCi0gICBpZiAoVFJFRV9SRUFET05MWSAobmV3 ZGVjbCkpCi0tLS0gZ2NjL2NvbmZpZy9wYS9wYS5jLmpqCTIwMDctMTItMTMgMTg6NTY6MjEuMDAw MDAwMDAwICswMTAwCi0rKysgZ2NjL2NvbmZpZy9wYS9wYS5jCTIwMDctMTItMTMgMjA6MzI6MDQu MDAwMDAwMDAwICswMTAwCi1AQCAtNzgzNCw2ICs3ODM0LDEyIEBAIGhwcGFfZW5jb2RlX2xhYmVs IChydHggc3ltKQotIHN0YXRpYyB2b2lkCi0gcGFfZW5jb2RlX3NlY3Rpb25faW5mbyAodHJlZSBk ZWNsLCBydHggcnRsLCBpbnQgZmlyc3QpCi0gewotKyAgaW50IG9sZF9yZWZlcmVuY2VkID0gMDsK LSsKLSsgIGlmICghZmlyc3QgJiYgTUVNX1AgKHJ0bCkgJiYgR0VUX0NPREUgKFhFWFAgKHJ0bCwg MCkpID09IFNZTUJPTF9SRUYpCi0rICAgIG9sZF9yZWZlcmVuY2VkCi0rICAgICAgPSBTWU1CT0xf UkVGX0ZMQUdTIChYRVhQIChydGwsIDApKSAmIFNZTUJPTF9GTEFHX1JFRkVSRU5DRUQ7Ci0rCi0g ICBkZWZhdWx0X2VuY29kZV9zZWN0aW9uX2luZm8gKGRlY2wsIHJ0bCwgZmlyc3QpOwotIAotICAg aWYgKGZpcnN0ICYmIFRFWFRfU1BBQ0VfUCAoZGVjbCkpCi1AQCAtNzg0Miw2ICs3ODQ4LDggQEAg cGFfZW5jb2RlX3NlY3Rpb25faW5mbyAodHJlZSBkZWNsLCBydHggcgotICAgICAgIGlmIChUUkVF X0NPREUgKGRlY2wpID09IEZVTkNUSU9OX0RFQ0wpCi0gCWhwcGFfZW5jb2RlX2xhYmVsIChYRVhQ IChydGwsIDApKTsKLSAgICAgfQotKyAgZWxzZSBpZiAob2xkX3JlZmVyZW5jZWQpCi0rICAgIFNZ TUJPTF9SRUZfRkxBR1MgKFhFWFAgKHJ0bCwgMCkpIHw9IG9sZF9yZWZlcmVuY2VkOwotIH0KLSAK LSAvKiBUaGlzIGlzIHNvcnQgb2YgaW52ZXJzZSB0byBwYV9lbmNvZGVfc2VjdGlvbl9pbmZvLiAg Ki8KLS0tLSBnY2MvdGVzdHN1aXRlL2djYy5kZy9wcjM0MDAzLTEuYy5qagkyMDA3LTEyLTEzIDIx OjA3OjUxLjAwMDAwMDAwMCArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3ByMzQwMDMt MS5jCTIwMDctMTItMTMgMjE6MDc6MTUuMDAwMDAwMDAwICswMTAwCi1AQCAtMCwwICsxLDggQEAK LSsvKiBQUiBib290c3RyYXAvMzQwMDMgKi8KLSsvKiB7IGRnLWRvIGxpbmsgfSAqLwotKy8qIHsg ZGctb3B0aW9ucyAiLU8wIiB9ICovCi0rLyogeyBkZy1hZGRpdGlvbmFsLXNvdXJjZXMgInByMzQw MDMtMi5jIiB9ICovCi0rCi0rZXh0ZXJuIHZvaWQgZm9vICh2b2lkKTsKLStpbnQgYmFyICh2b2lk KSB7IGZvbyAoKTsgcmV0dXJuIDE7IH0KLStleHRlcm4gdm9pZCBmb28gKHZvaWQpOwotLS0tIGdj Yy90ZXN0c3VpdGUvZ2NjLmRnL3ByMzQwMDMtMi5jLmpqCTIwMDctMTItMTMgMjE6MDc6NTkuMDAw MDAwMDAwICswMTAwCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHIzNDAwMy0yLmMJMjAwNy0x Mi0xMyAyMTowOTozNS4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsMjAgQEAKLSsvKiBQUiBi b290c3RyYXAvMzQwMDMgKi8KLSsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwotKy8qIHsgZGctb3B0 aW9ucyAiLU8wIiB9ICovCi0rCi0rZXh0ZXJuIHZvaWQgYWJvcnQgKHZvaWQpOwotKwotK2ludCBz ZWVuID0gMDsKLSsKLSt2b2lkIGZvbyAodm9pZCkKLSt7Ci0rICArK3NlZW47Ci0rfQotKwotK2lu dCBtYWluICh2b2lkKQotK3sKLSsgIGV4dGVybiBpbnQgYmFyICh2b2lkKTsKLSsgIGlmIChiYXIg KCkgIT0gMSB8fCBzZWVuICE9IDEpCi0rICAgIGFib3J0ICgpOwotKyAgcmV0dXJuIDA7Ci0rfQoK ZGlmZiAtLWdpdCBhL2djYzQzLXByMzQyODEucGF0Y2ggYi9nY2M0My1wcjM0MjgxLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxZmE1YzgKLS0tIC9kZXYvbnVsbAor KysgYi9nY2M0My1wcjM0MjgxLnBhdGNoCkBAIC0wLDAgKzEsOTIgQEAKKzIwMDctMTItMTMgIEph a3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgorCisJUFIgdGFyZ2V0LzM0MjgxCisJKiBj b25maWcvYXJtL2FybS5jIChhcm1fc2V0dXBfaW5jb21pbmdfdmFyYXJncyk6IElmIGxhc3QgbmFt ZWQKKwlhcmd1bWVudCBuZWVkcyBkb3VibGUgd29yZCBhbGlnbm1lbnQgYW5kIGN1bS0+bnJlZ3Mg aXMgb2RkLCBhY2NvdW50CisJZm9yIHRoZSBpbnNlcnRlZCBwYWRkaW5nLgorCisJKiBnY2MuYy10 b3J0dXJlL2V4ZWN1dGUvMjAwNzEyMTMtMS5jOiBOZXcgdGVzdC4KKworLS0tIGdjYy9jb25maWcv YXJtL2FybS5jLmpqCTIwMDctMTItMTEgMDA6MjM6MjkuMDAwMDAwMDAwICswMTAwCisrKysgZ2Nj L2NvbmZpZy9hcm0vYXJtLmMJMjAwNy0xMi0xMyAxNToyNjowMS4wMDAwMDAwMDAgKzAxMDAKK0BA IC0xNzc2NSwxNCArMTc3NjUsMjAgQEAgYXJtX291dHB1dF9sb2FkX2dyIChydHggKm9wZXJhbmRz KQorIAorIHN0YXRpYyB2b2lkCisgYXJtX3NldHVwX2luY29taW5nX3ZhcmFyZ3MgKENVTVVMQVRJ VkVfQVJHUyAqY3VtLAorLQkJCSAgICBlbnVtIG1hY2hpbmVfbW9kZSBtb2RlIEFUVFJJQlVURV9V TlVTRUQsCistCQkJICAgIHRyZWUgdHlwZSBBVFRSSUJVVEVfVU5VU0VELAorKwkJCSAgICBlbnVt IG1hY2hpbmVfbW9kZSBtb2RlLAorKwkJCSAgICB0cmVlIHR5cGUsCisgCQkJICAgIGludCAqcHJl dGVuZF9zaXplLAorIAkJCSAgICBpbnQgc2Vjb25kX3RpbWUgQVRUUklCVVRFX1VOVVNFRCkKKyB7 CisrICBpbnQgbnJlZ3MgPSBjdW0tPm5yZWdzOworKyAgaWYgKG5yZWdzICYgMQorKyAgICAgICYm IEFSTV9ET1VCTEVXT1JEX0FMSUdOCisrICAgICAgJiYgYXJtX25lZWRzX2RvdWJsZXdvcmRfYWxp Z24gKG1vZGUsIHR5cGUpKQorKyAgICBucmVncysrOworKworICAgY2Z1bi0+bWFjaGluZS0+dXNl c19hbm9ueW1vdXNfYXJncyA9IDE7CistICBpZiAoY3VtLT5ucmVncyA8IE5VTV9BUkdfUkVHUykK Ky0gICAgKnByZXRlbmRfc2l6ZSA9IChOVU1fQVJHX1JFR1MgLSBjdW0tPm5yZWdzKSAqIFVOSVRT X1BFUl9XT1JEOworKyAgaWYgKG5yZWdzIDwgTlVNX0FSR19SRUdTKQorKyAgICAqcHJldGVuZF9z aXplID0gKE5VTV9BUkdfUkVHUyAtIG5yZWdzKSAqIFVOSVRTX1BFUl9XT1JEOworIH0KKyAKKyAv KiBSZXR1cm4gbm9uemVybyBpZiB0aGUgQ09OU1VNRVIgaW5zdHJ1Y3Rpb24gKGEgc3RvcmUpIGRv ZXMgbm90IG5lZWQKKy0tLSBnY2MvdGVzdHN1aXRlL2djYy5jLXRvcnR1cmUvZXhlY3V0ZS8yMDA3 MTIxMy0xLmMuamoJMjAwNy0xMi0xMyAxNjo0Nzo0OS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnY2Mv dGVzdHN1aXRlL2djYy5jLXRvcnR1cmUvZXhlY3V0ZS8yMDA3MTIxMy0xLmMJMjAwNy0xMi0xMyAx Njo0NzoxMi4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsNTMgQEAKKysvKiBQUiB0YXJnZXQv MzQyODEgKi8KKysKKysjaW5jbHVkZSA8c3RkYXJnLmg+CisrCisrZXh0ZXJuIHZvaWQgYWJvcnQg KHZvaWQpOworKworK3ZvaWQKKytoIChpbnQgeCwgdmFfbGlzdCBhcCkKKyt7CisrICBzd2l0Y2gg KHgpCisrICAgIHsKKysgICAgY2FzZSAxOgorKyAgICAgIGlmICh2YV9hcmcgKGFwLCBpbnQpICE9 IDMgfHwgdmFfYXJnIChhcCwgaW50KSAhPSA0KQorKwlhYm9ydCAoKTsKKysgICAgICByZXR1cm47 CisrICAgIGNhc2UgNToKKysgICAgICBpZiAodmFfYXJnIChhcCwgaW50KSAhPSA5IHx8IHZhX2Fy ZyAoYXAsIGludCkgIT0gMTApCisrCWFib3J0ICgpOworKyAgICAgIHJldHVybjsKKysgICAgZGVm YXVsdDoKKysgICAgICBhYm9ydCAoKTsKKysgICAgfQorK30KKysKKyt2b2lkCisrZjEgKGludCBp LCBsb25nIGxvbmcgaW50IGosIC4uLikKKyt7CisrICB2YV9saXN0IGFwOworKyAgdmFfc3RhcnQg KGFwLCBqKTsKKysgIGggKGksIGFwKTsKKysgIGlmIChpICE9IDEgfHwgaiAhPSAyKQorKyAgICBh Ym9ydCAoKTsKKysgIHZhX2VuZCAoYXApOworK30KKysKKyt2b2lkCisrZjIgKGludCBpLCBpbnQg aiwgaW50IGssIGxvbmcgbG9uZyBpbnQgbCwgLi4uKQorK3sKKysgIHZhX2xpc3QgYXA7CisrICB2 YV9zdGFydCAoYXAsIGwpOworKyAgaCAoaSwgYXApOworKyAgaWYgKGkgIT0gNSB8fCBqICE9IDYg fHwgayAhPSA3IHx8IGwgIT0gOCkKKysgICAgYWJvcnQgKCk7CisrICB2YV9lbmQgKGFwKTsKKyt9 CisrCisraW50CisrbWFpbiAoKQorK3sKKysgIGYxICgxLCAyLCAzLCA0KTsKKysgIGYyICg1LCA2 LCA3LCA4LCA5LCAxMCk7CisrICByZXR1cm4gMDsKKyt9CgpkaWZmIC0tZ2l0IGEvZ2NjNDMtcHIz NDQyNy5wYXRjaCBiL2djYzQzLXByMzQ0MjcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IGFjNmNmNzEuLjAwMDAwMDAKLS0tIGEvZ2NjNDMtcHIzNDQyNy5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDE5OCArMCwwIEBACi0yMDA3LTEyLTEyICBKYWt1YiBKZWxpbmVrICA8amFr dWJAcmVkaGF0LmNvbT4KLQotCVBSIGxpYmZvcnRyYW4vMzQ0MjcKLQotCVJldmVydDoKLQkyMDA3 LTEyLTA4ICBUb2JpYXMgQnVybnVzICA8YnVybnVzQG5ldC1iLmRlPgotCi0JUFIgZm9ydHJhbi8z NDMxOQotCSogaW8vbGlzdF9yZWFkLmMgKHBhcnNlX3JlYWwsIHJlYWRfcmVhbCk6IFN1cHBvcnQg TmFOL0luZmluaXR5LgotCi0JKiBnZm9ydHJhbi5kZy9uYW5fMy5mOTA6IE5ldy4KLQotLS0tIGxp Ymdmb3J0cmFuL2lvL2xpc3RfcmVhZC5jCShyZXZpc2lvbiAxMzA3MDgpCi0rKysgbGliZ2ZvcnRy YW4vaW8vbGlzdF9yZWFkLmMJKHJldmlzaW9uIDEzMDcwNykKLUBAIC0xMDc4LDEyICsxMDc4LDcg QEAgcGFyc2VfcmVhbCAoc3RfcGFyYW1ldGVyX2R0ICpkdHAsIHZvaWQgKgotICAgICB9Ci0gCi0g ICBpZiAoIWlzZGlnaXQgKGMpICYmIGMgIT0gJy4nKQotLSAgICB7Ci0tICAgICAgaWYgKGMgPT0g J2knIHx8IGMgPT0gJ0knIHx8IGMgPT0gJ24nIHx8IGMgPT0gJ04nKQotLQlnb3RvIGluZl9uYW47 Ci0tICAgICAgZWxzZQotLQlnb3RvIGJhZDsKLS0gICAgfQotKyAgICBnb3RvIGJhZDsKLSAKLSAg IHB1c2hfY2hhciAoZHRwLCBjKTsKLSAKLUBAIC0xMTQxLDEzICsxMTM2LDcgQEAgcGFyc2VfcmVh bCAoc3RfcGFyYW1ldGVyX2R0ICpkdHAsIHZvaWQgKgotIAotICBleHAyOgotICAgaWYgKCFpc2Rp Z2l0IChjKSkKLS0gICAgewotLSAgICAgIGlmIChjID09ICdpJyB8fCBjID09ICdJJyB8fCBjID09 ICduJyB8fCBjID09ICdOJykKLS0JZ290byBpbmZfbmFuOwotLSAgICAgIGVsc2UKLS0JZ290byBi YWQ7Ci0tICAgIH0KLS0KLSsgICAgZ290byBiYWQ7Ci0gICBwdXNoX2NoYXIgKGR0cCwgYyk7Ci0g Ci0gICBmb3IgKDs7KQotQEAgLTExNzcsNDEgKzExNjYsNiBAQCBwYXJzZV9yZWFsIChzdF9wYXJh bWV0ZXJfZHQgKmR0cCwgdm9pZCAqCi0gCi0gICByZXR1cm4gbTsKLSAKLS0gaW5mX25hbjoKLS0g IC8qIE1hdGNoIElORiBhbmQgSW5maW5pdHkuICAqLwotLSAgaWYgKChjID09ICdpJyB8fCBjID09 ICdJJykKLS0gICAgICAmJiAoKGMgPSBuZXh0X2NoYXIgKGR0cCkpID09ICduJyB8fCBjID09ICdO JykKLS0gICAgICAmJiAoKGMgPSBuZXh0X2NoYXIgKGR0cCkpID09ICdmJyB8fCBjID09ICdGJykp Ci0tICAgIHsKLS0JYyA9IG5leHRfY2hhciAoZHRwKTsKLS0JaWYgKChjICE9ICdpJyAmJiBjICE9 ICdJJykKLS0JICAgIHx8ICgoYyA9PSAnaScgfHwgYyA9PSAnSScpCi0tCQkmJiAoKGMgPSBuZXh0 X2NoYXIgKGR0cCkpID09ICduJyB8fCBjID09ICdOJykKLS0JCSYmICgoYyA9IG5leHRfY2hhciAo ZHRwKSkgPT0gJ2knIHx8IGMgPT0gJ0knKQotLQkJJiYgKChjID0gbmV4dF9jaGFyIChkdHApKSA9 PSAndCcgfHwgYyA9PSAnVCcpCi0tCQkmJiAoKGMgPSBuZXh0X2NoYXIgKGR0cCkpID09ICd5JyB8 fCBjID09ICdZJykKLS0JCSYmIChjID0gbmV4dF9jaGFyIChkdHApKSkpCi0tCSAgewotLQkgICAg IGlmIChpc19zZXBhcmF0b3IgKGMpKQotLQkgICAgICAgdW5nZXRfY2hhciAoZHRwLCBjKTsKLS0J ICAgICBwdXNoX2NoYXIgKGR0cCwgJ2knKTsKLS0JICAgICBwdXNoX2NoYXIgKGR0cCwgJ24nKTsK LS0JICAgICBwdXNoX2NoYXIgKGR0cCwgJ2YnKTsKLS0JICAgICBnb3RvIGRvbmU7Ci0tCSAgfQot LSAgICB9IC8qIE1hdGNoIE5hTi4gICovCi0tICBlbHNlIGlmICgoKGMgPSBuZXh0X2NoYXIgKGR0 cCkpID09ICdhJyB8fCBjID09ICdBJykKLS0JICAgJiYgKChjID0gbmV4dF9jaGFyIChkdHApKSA9 PSAnbicgfHwgYyA9PSAnTicpCi0tCSAgICYmIChjID0gbmV4dF9jaGFyIChkdHApKSkKLS0gICAg ewotLSAgICAgIGlmIChpc19zZXBhcmF0b3IgKGMpKQotLQl1bmdldF9jaGFyIChkdHAsIGMpOwot LSAgICAgIHB1c2hfY2hhciAoZHRwLCAnbicpOwotLSAgICAgIHB1c2hfY2hhciAoZHRwLCAnYScp OwotLSAgICAgIHB1c2hfY2hhciAoZHRwLCAnbicpOwotLSAgICAgIGdvdG8gZG9uZTsKLS0gICAg fQotLQotICBiYWQ6Ci0gCi0gICBpZiAobm1sX2JhZF9yZXR1cm4gKGR0cCwgYykpCi1AQCAtMTMz OSwxMiArMTI5Myw2IEBAIHJlYWRfcmVhbCAoc3RfcGFyYW1ldGVyX2R0ICpkdHAsIGludCBsZW4K LSAgICAgICBlYXRfc2VwYXJhdG9yIChkdHApOwotICAgICAgIHJldHVybjsKLSAKLS0gICAgY2Fz ZSAnaSc6Ci0tICAgIGNhc2UgJ0knOgotLSAgICBjYXNlICduJzoKLS0gICAgY2FzZSAnTic6Ci0t ICAgICAgZ290byBpbmZfbmFuOwotLQotICAgICBkZWZhdWx0OgotICAgICAgIGdvdG8gYmFkX3Jl YWw7Ci0gICAgIH0KLUBAIC0xNDE5LDEyICsxMzY3LDcgQEAgcmVhZF9yZWFsIChzdF9wYXJhbWV0 ZXJfZHQgKmR0cCwgaW50IGxlbgotICAgICB9Ci0gCi0gICBpZiAoIWlzZGlnaXQgKGMpICYmIGMg IT0gJy4nKQotLSAgICB7Ci0tICAgICAgaWYgKGMgPT0gJ2knIHx8IGMgPT0gJ0knIHx8IGMgPT0g J24nIHx8IGMgPT0gJ04nKQotLQlnb3RvIGluZl9uYW47Ci0tICAgICAgZWxzZQotLQlnb3RvIGJh ZF9yZWFsOwotLSAgICB9Ci0rICAgIGdvdG8gYmFkX3JlYWw7Ci0gCi0gICBpZiAoYyA9PSAnLicp Ci0gICAgIHsKLUBAIC0xNTIxLDM3ICsxNDY0LDYgQEAgcmVhZF9yZWFsIChzdF9wYXJhbWV0ZXJf ZHQgKmR0cCwgaW50IGxlbgotICAgZHRwLT51LnAuc2F2ZWRfdHlwZSA9IEJUX1JFQUw7Ci0gICBy ZXR1cm47Ci0gCi0tIGluZl9uYW46Ci0tICAvKiBNYXRjaCBJTkYgYW5kIEluZmluaXR5LiAgKi8K LS0gIGlmICgoYyA9PSAnaScgfHwgYyA9PSAnSScpCi0tICAgICAgJiYgKChjID0gbmV4dF9jaGFy IChkdHApKSA9PSAnbicgfHwgYyA9PSAnTicpCi0tICAgICAgJiYgKChjID0gbmV4dF9jaGFyIChk dHApKSA9PSAnZicgfHwgYyA9PSAnRicpKQotLSAgICB7Ci0tCWMgPSBuZXh0X2NoYXIgKGR0cCk7 Ci0tCWlmIChpc19zZXBhcmF0b3IgKGMpCi0tCSAgICB8fCAoKGMgPT0gJ2knIHx8IGMgPT0gJ0kn KQotLQkJJiYgKChjID0gbmV4dF9jaGFyIChkdHApKSA9PSAnbicgfHwgYyA9PSAnTicpCi0tCQkm JiAoKGMgPSBuZXh0X2NoYXIgKGR0cCkpID09ICdpJyB8fCBjID09ICdJJykKLS0JCSYmICgoYyA9 IG5leHRfY2hhciAoZHRwKSkgPT0gJ3QnIHx8IGMgPT0gJ1QnKQotLQkJJiYgKChjID0gbmV4dF9j aGFyIChkdHApKSA9PSAneScgfHwgYyA9PSAnWScpCi0tCQkmJiAoYyA9IG5leHRfY2hhciAoZHRw KSkgJiYgaXNfc2VwYXJhdG9yIChjKSkpCi0tCSAgewotLQkgICAgIHB1c2hfY2hhciAoZHRwLCAn aScpOwotLQkgICAgIHB1c2hfY2hhciAoZHRwLCAnbicpOwotLQkgICAgIHB1c2hfY2hhciAoZHRw LCAnZicpOwotLQkgICAgIGdvdG8gZG9uZTsKLS0JICB9Ci0tICAgIH0gLyogTWF0Y2ggTmFOLiAg Ki8KLS0gIGVsc2UgaWYgKCgoYyA9IG5leHRfY2hhciAoZHRwKSkgPT0gJ2EnIHx8IGMgPT0gJ0En KQotLQkgICAmJiAoKGMgPSBuZXh0X2NoYXIgKGR0cCkpID09ICduJyB8fCBjID09ICdOJykKLS0J ICAgJiYgKGMgPSBuZXh0X2NoYXIgKGR0cCkpICYmIGlzX3NlcGFyYXRvciAoYykpCi0tICAgIHsK LS0gICAgICBwdXNoX2NoYXIgKGR0cCwgJ24nKTsKLS0gICAgICBwdXNoX2NoYXIgKGR0cCwgJ2En KTsKLS0gICAgICBwdXNoX2NoYXIgKGR0cCwgJ24nKTsKLS0gICAgICBnb3RvIGRvbmU7Ci0tICAg IH0KLS0KLSAgYmFkX3JlYWw6Ci0gCi0gICBpZiAobm1sX2JhZF9yZXR1cm4gKGR0cCwgYykpCi0t LS0gZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9uYW5fMy5mOTAJKHJldmlzaW9uIDEzMDcwOCkK LSsrKyBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL25hbl8zLmY5MAkocmV2aXNpb24gMTMwNzA3 KQotQEAgLTEsNDUgKzAsMCBAQAotLSEgeyBkZy1kbyBydW4gfQotLSEgeyBkZy1vcHRpb25zICIt Zm5vLXJhbmdlLWNoZWNrIiB9Ci0tISB7IGRnLW9wdGlvbnMgIi1mbm8tcmFuZ2UtY2hlY2sgLW1p ZWVlIiB7IHRhcmdldCBzaCotKi0qIH0gfQotLSEKLS0hIFBSIGZvcnRyYW4vMzQzMTkKLS0hCi0t ISBDaGVjayBzdXBwb3J0IG9mIElORi9OYU4gZm9yIEkvTy4KLS0hCi0tcHJvZ3JhbSBtYWluCi0t ICBpbXBsaWNpdCBub25lCi0tICByZWFsIDo6IHIKLS0gIGNvbXBsZXggOjogegotLSAgY2hhcmFj dGVyKGxlbj0zMCkgOjogc3RyCi0tCi0tICBzdHIgPSAibmFuIgotLSAgcmVhZChzdHIsKikgcgot LSAgaWYgKC5ub3QuaXNuYW4ocikpIGNhbGwgYWJvcnQoKQotLSAgc3RyID0gIihuYW4sNC4wKSIK LS0gIHJlYWQoc3RyLCopIHoKLS0gIGlmICgubm90LmlzbmFuKHJlYWwoeikpIC5vci4gYWltYWco eikgLz0gNC4wKSBjYWxsIGFib3J0KCkKLS0gIHN0ciA9ICIoNy4wLG5hbikiCi0tICByZWFkKHN0 ciwqKSB6Ci0tICBpZiAoLm5vdC5pc25hbihhaW1hZyh6KSkgLm9yLiByZWFsKHopIC89IDcuMCkg Y2FsbCBhYm9ydCgpCi0tCi0tICBzdHIgPSAiaW5GaW5pdHkiCi0tICByZWFkKHN0ciwqKSByCi0t ICBpZiAociA8PSBodWdlKHIpKSBjYWxsIGFib3J0KCkKLS0gIHN0ciA9ICIoK2luRmluaXR5LDQu MCkiCi0tICByZWFkKHN0ciwqKSB6Ci0tICBpZiAoKHJlYWwoeikgPD0gaHVnZShyKSkgLm9yLiBh aW1hZyh6KSAvPSA0LjApIGNhbGwgYWJvcnQoKQotLSAgc3RyID0gIig3LjAsLWluRmluaXR5KSIK LS0gIHJlYWQoc3RyLCopIHoKLS0gIGlmICgoYWltYWcoeikgPj0gLWh1Z2UocikpIC5vci4gcmVh bCh6KSAvPSA3LjApIGNhbGwgYWJvcnQoKQotLQotLSAgc3RyID0gImluZiIKLS0gIHJlYWQoc3Ry LCopIHIKLS0gIGlmIChyIDw9IGh1Z2UocikpIGNhbGwgYWJvcnQoKQotLSAgc3RyID0gIigraW5m LDQuMCkiCi0tICByZWFkKHN0ciwqKSB6Ci0tICBpZiAoKHJlYWwoeikgPD0gaHVnZShyKSkgLm9y LiBhaW1hZyh6KSAvPSA0LjApIGNhbGwgYWJvcnQoKQotLSAgc3RyID0gIig3LjAsLWluZikiCi0t ICByZWFkKHN0ciwqKSB6Ci0tICBpZiAoKGFpbWFnKHopID49IC1odWdlKHIpKSAub3IuIHJlYWwo eikgLz0gNy4wKSBjYWxsIGFib3J0KCkKLS0KLS1lbmQgcHJvZ3JhbSBtYWluCgpkaWZmIC0tZ2l0 IGEvZ2NjNDMtcHIzNDQ0OC5wYXRjaCBiL2djYzQzLXByMzQ0NDgucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5OGJjZQotLS0gL2Rldi9udWxsCisrKyBiL2djYzQz LXByMzQ0NDgucGF0Y2gKQEAgLTAsMCArMSwyMjkgQEAKKzIwMDctMTItMTcgIEFsZHkgSGVybmFu ZGV6ICA8YWxkeWhAcmVkaGF0LmNvbT4KKworCVBSIHRyZWUtb3B0aW1pemF0aW9uLzM0NDQ4CisJ UFIgdHJlZS1vcHRpbWl6YXRpb24vMzQ0NjUKKwkqIGdpbXBsaWZ5LmMgKGdpbXBsaWZ5X2luaXRf Y29uc3RydWN0b3IpOiBBZGQgbmV3IHBhcmFtZXRlcgorCW5vdGlmeV90ZW1wX2NyZWF0aW9uLiAg VXNlIGl0LgorCShnaW1wbGlmeV9tb2RpZnlfZXhwcl9yaHMpOiBUYWtlIHZvbGF0aWxlcyBpbnRv IGFjY291bnQgd2hlbgorCW9wdGltaXppbmcgY29uc3RydWN0b3JzLgorCURvIG5vdCBvcHRpbWl6 ZSBjb25zdHJ1Y3RvcnMgaWYgZ2ltcGxpZnlfaW5pdF9jb25zdHJ1Y3RvciB3aWxsIGR1bXAgdG8K KwltZW1vcnkuCisJKiBnY2MuZGcvdHJlZS1zc2EvcHIzMjkwMS5jOiBUZXN0cyBjb25zdCB2b2xh dGlsZXMuCisJKiBnY2MuYy10b3J0dXJlL2NvbXBpbGUvcHIzNDQ0OC5jOiBOZXcuCisKKy0tLSBn Y2MvZ2ltcGxpZnkuYwkocmV2aXNpb24gMTMwOTM0KQorKysrIGdjYy9naW1wbGlmeS5jCShsb2Nh bCkKK0BAIC0zMTE5LDExICszMTE5LDE4IEBAIGdpbXBsaWZ5X2luaXRfY3Rvcl9ldmFsICh0cmVl IG9iamVjdCwgVkUKKyAKKyAgICBOb3RlIHRoYXQgd2Ugc3RpbGwgbmVlZCB0byBjbGVhciBhbnkg ZWxlbWVudHMgdGhhdCBkb24ndCBoYXZlIGV4cGxpY2l0CisgICAgaW5pdGlhbGl6ZXJzLCBzbyBp ZiBub3QgYWxsIGVsZW1lbnRzIGFyZSBpbml0aWFsaXplZCB3ZSBrZWVwIHRoZQorLSAgIG9yaWdp bmFsIE1PRElGWV9FWFBSLCB3ZSBqdXN0IHJlbW92ZSBhbGwgb2YgdGhlIGNvbnN0cnVjdG9yIGVs ZW1lbnRzLiAgKi8KKysgICBvcmlnaW5hbCBNT0RJRllfRVhQUiwgd2UganVzdCByZW1vdmUgYWxs IG9mIHRoZSBjb25zdHJ1Y3RvciBlbGVtZW50cy4KKysKKysgICBJZiBOT1RJRllfVEVNUF9DUkVB VElPTiBpcyB0cnVlLCBkbyBub3QgZ2ltcGxpZnksIGp1c3QgcmV0dXJuCisrICAgR1NfRVJST1Ig aWYgd2Ugd291bGQgaGF2ZSB0byBjcmVhdGUgYSB0ZW1wb3Jhcnkgd2hlbiBnaW1wbGlmeWluZwor KyAgIHRoaXMgY29uc3RydWN0b3IuICBPdGhlcndpc2UsIHJldHVybiBHU19PSy4KKysKKysgICBJ ZiBOT1RJRllfVEVNUF9DUkVBVElPTiBpcyBmYWxzZSwganVzdCBkbyB0aGUgZ2ltcGxpZmljYXRp b24uICAqLworIAorIHN0YXRpYyBlbnVtIGdpbXBsaWZ5X3N0YXR1cworIGdpbXBsaWZ5X2luaXRf Y29uc3RydWN0b3IgKHRyZWUgKmV4cHJfcCwgdHJlZSAqcHJlX3AsCistCQkJICAgdHJlZSAqcG9z dF9wLCBib29sIHdhbnRfdmFsdWUpCisrCQkJICAgdHJlZSAqcG9zdF9wLCBib29sIHdhbnRfdmFs dWUsCisrCQkJICAgYm9vbCBub3RpZnlfdGVtcF9jcmVhdGlvbikKKyB7CisgICB0cmVlIG9iamVj dDsKKyAgIHRyZWUgY3RvciA9IEdFTkVSSUNfVFJFRV9PUEVSQU5EICgqZXhwcl9wLCAxKTsKK0BA IC0zMTM0LDEwICszMTQxLDEzIEBAIGdpbXBsaWZ5X2luaXRfY29uc3RydWN0b3IgKHRyZWUgKmV4 cHJfcCwKKyAgIGlmIChUUkVFX0NPREUgKGN0b3IpICE9IENPTlNUUlVDVE9SKQorICAgICByZXR1 cm4gR1NfVU5IQU5ETEVEOworIAorLSAgcmV0ID0gZ2ltcGxpZnlfZXhwciAoJkdFTkVSSUNfVFJF RV9PUEVSQU5EICgqZXhwcl9wLCAwKSwgcHJlX3AsIHBvc3RfcCwKKy0JCSAgICAgICBpc19naW1w bGVfbHZhbHVlLCBmYl9sdmFsdWUpOworLSAgaWYgKHJldCA9PSBHU19FUlJPUikKKy0gICAgcmV0 dXJuIHJldDsKKysgIGlmICghbm90aWZ5X3RlbXBfY3JlYXRpb24pCisrICAgIHsKKysgICAgICBy ZXQgPSBnaW1wbGlmeV9leHByICgmR0VORVJJQ19UUkVFX09QRVJBTkQgKCpleHByX3AsIDApLCBw cmVfcCwgcG9zdF9wLAorKwkJCSAgIGlzX2dpbXBsZV9sdmFsdWUsIGZiX2x2YWx1ZSk7CisrICAg ICAgaWYgKHJldCA9PSBHU19FUlJPUikKKysJcmV0dXJuIHJldDsKKysgICAgfQorICAgb2JqZWN0 ID0gR0VORVJJQ19UUkVFX09QRVJBTkQgKCpleHByX3AsIDApOworIAorICAgZWx0cyA9IENPTlNU UlVDVE9SX0VMVFMgKGN0b3IpOworQEAgLTMxNTksNyArMzE2OSwxMSBAQCBnaW1wbGlmeV9pbml0 X2NvbnN0cnVjdG9yICh0cmVlICpleHByX3AsCisgCSAgIGluZGl2aWR1YWwgZWxlbWVudHMuICBU aGUgZXhjZXB0aW9uIGlzIHRoYXQgYSBDT05TVFJVQ1RPUiBub2RlCisgCSAgIHdpdGggbm8gZWxl bWVudHMgaW5kaWNhdGVzIHplcm8taW5pdGlhbGl6YXRpb24gb2YgdGhlIHdob2xlLiAgKi8KKyAJ aWYgKFZFQ19lbXB0eSAoY29uc3RydWN0b3JfZWx0LCBlbHRzKSkKKy0JICBicmVhazsKKysJICB7 CisrCSAgICBpZiAobm90aWZ5X3RlbXBfY3JlYXRpb24pCisrCSAgICAgIHJldHVybiBHU19PSzsK KysJICAgIGJyZWFrOworKwkgIH0KKyAKKyAJLyogRmV0Y2ggaW5mb3JtYXRpb24gYWJvdXQgdGhl IGNvbnN0cnVjdG9yIHRvIGRpcmVjdCBsYXRlciBwcm9jZXNzaW5nLgorIAkgICBXZSBtaWdodCB3 YW50IHRvIG1ha2Ugc3RhdGljIHZlcnNpb25zIG9mIGl0IGluIHZhcmlvdXMgY2FzZXMsIGFuZAor QEAgLTMxNzUsNiArMzE4OSw4IEBAIGdpbXBsaWZ5X2luaXRfY29uc3RydWN0b3IgKHRyZWUgKmV4 cHJfcCwKKyAJICAgICYmIFRSRUVfUkVBRE9OTFkgKG9iamVjdCkKKyAJICAgICYmIFRSRUVfQ09E RSAob2JqZWN0KSA9PSBWQVJfREVDTCkKKyAJICB7CisrCSAgICBpZiAobm90aWZ5X3RlbXBfY3Jl YXRpb24pCisrCSAgICAgIHJldHVybiBHU19FUlJPUjsKKyAJICAgIERFQ0xfSU5JVElBTCAob2Jq ZWN0KSA9IGN0b3I7CisgCSAgICBUUkVFX1NUQVRJQyAob2JqZWN0KSA9IDE7CisgCSAgICBpZiAo IURFQ0xfTkFNRSAob2JqZWN0KSkKK0BAIC0zMjUxLDcgKzMyNjcsMTIgQEAgZ2ltcGxpZnlfaW5p dF9jb25zdHJ1Y3RvciAodHJlZSAqZXhwcl9wLAorIAorIAkgICAgaWYgKHNpemUgPiAwICYmICFj YW5fbW92ZV9ieV9waWVjZXMgKHNpemUsIGFsaWduKSkKKyAJICAgICAgeworLQkJdHJlZSBuZXcg PSBjcmVhdGVfdG1wX3Zhcl9yYXcgKHR5cGUsICJDIik7CisrCQl0cmVlIG5ldzsKKysKKysJCWlm IChub3RpZnlfdGVtcF9jcmVhdGlvbikKKysJCSAgcmV0dXJuIEdTX0VSUk9SOworKworKwkJbmV3 ID0gY3JlYXRlX3RtcF92YXJfcmF3ICh0eXBlLCAiQyIpOworIAorIAkJZ2ltcGxlX2FkZF90bXBf dmFyIChuZXcpOworIAkJVFJFRV9TVEFUSUMgKG5ldykgPSAxOworQEAgLTMyNzMsNiArMzI5NCw5 IEBAIGdpbXBsaWZ5X2luaXRfY29uc3RydWN0b3IgKHRyZWUgKmV4cHJfcCwKKyAJICAgICAgfQor IAkgIH0KKyAKKysJaWYgKG5vdGlmeV90ZW1wX2NyZWF0aW9uKQorKwkgIHJldHVybiBHU19PSzsK KysKKyAJLyogSWYgdGhlcmUgYXJlIG5vbnplcm8gZWxlbWVudHMsIHByZS1ldmFsdWF0ZSB0byBj YXB0dXJlIGVsZW1lbnRzCisgCSAgIG92ZXJsYXBwaW5nIHdpdGggdGhlIGxocyBpbnRvIHRlbXBv cmFyaWVzLiAgV2UgbXVzdCBkbyB0aGlzIGJlZm9yZQorIAkgICBjbGVhcmluZyB0byBmZXRjaCB0 aGUgdmFsdWVzIGJlZm9yZSB0aGV5IGFyZSB6ZXJvZWQtb3V0LiAgKi8KK0BAIC0zMzEyLDYgKzMz MzYsOSBAQCBnaW1wbGlmeV9pbml0X2NvbnN0cnVjdG9yICh0cmVlICpleHByX3AsCisgICAgICAg eworIAl0cmVlIHIsIGk7CisgCisrCWlmIChub3RpZnlfdGVtcF9jcmVhdGlvbikKKysJICByZXR1 cm4gR1NfT0s7CisrCisgCS8qIEV4dHJhY3QgdGhlIHJlYWwgYW5kIGltYWdpbmFyeSBwYXJ0cyBv dXQgb2YgdGhlIGN0b3IuICAqLworIAlnY2NfYXNzZXJ0IChWRUNfbGVuZ3RoIChjb25zdHJ1Y3Rv cl9lbHQsIGVsdHMpID09IDIpOworIAlyID0gVkVDX2luZGV4IChjb25zdHJ1Y3Rvcl9lbHQsIGVs dHMsIDApLT52YWx1ZTsKK0BAIC0zMzQ4LDYgKzMzNzUsOSBAQCBnaW1wbGlmeV9pbml0X2NvbnN0 cnVjdG9yICh0cmVlICpleHByX3AsCisgCXVuc2lnbmVkIEhPU1RfV0lERV9JTlQgaXg7CisgCWNv bnN0cnVjdG9yX2VsdCAqY2U7CisgCisrCWlmIChub3RpZnlfdGVtcF9jcmVhdGlvbikKKysJICBy ZXR1cm4gR1NfT0s7CisrCisgCS8qIEdvIGFoZWFkIGFuZCBzaW1wbGlmeSBjb25zdGFudCBjb25z dHJ1Y3RvcnMgdG8gVkVDVE9SX0NTVC4gICovCisgCWlmIChUUkVFX0NPTlNUQU5UIChjdG9yKSkK KyAJICB7CitAQCAtMzQ4OCwxMCArMzUxOCwyOCBAQCBnaW1wbGlmeV9tb2RpZnlfZXhwcl9yaHMg KHRyZWUgKmV4cHJfcCwgCisgCSAgIGNvbnN0cnVjdG9yIGV4cHJlc3Npb24gdG8gdGhlIFJIUyBv ZiB0aGUgTU9ESUZZX0VYUFIuICAqLworIAlpZiAoREVDTF9JTklUSUFMICgqZnJvbV9wKQorIAkg ICAgJiYgVFlQRV9SRUFET05MWSAoVFJFRV9UWVBFICgqZnJvbV9wKSkKKysJICAgICYmICFUUkVF X1RISVNfVk9MQVRJTEUgKCpmcm9tX3ApCisgCSAgICAmJiBUUkVFX0NPREUgKERFQ0xfSU5JVElB TCAoKmZyb21fcCkpID09IENPTlNUUlVDVE9SKQorIAkgIHsKKy0JICAgICpmcm9tX3AgPSBERUNM X0lOSVRJQUwgKCpmcm9tX3ApOworLQkgICAgcmV0ID0gR1NfT0s7CisrCSAgICB0cmVlIG9sZF9m cm9tID0gKmZyb21fcDsKKysKKysJICAgIC8qIE1vdmUgdGhlIGNvbnN0cnVjdG9yIGludG8gdGhl IFJIUy4gICovCisrCSAgICAqZnJvbV9wID0gREVDTF9JTklUSUFMICgqZnJvbV9wKTsKKysKKysJ ICAgIC8qIExldCdzIHNlZSBpZiBnaW1wbGlmeV9pbml0X2NvbnN0cnVjdG9yIHdpbGwgbmVlZCB0 byBwdXQKKysJICAgICAgIGl0IGluIG1lbW9yeS4gIElmIHNvLCByZXZlcnQgdGhlIGNoYW5nZS4g ICovCisrCSAgICByZXQgPSBnaW1wbGlmeV9pbml0X2NvbnN0cnVjdG9yIChleHByX3AsIE5VTEws IE5VTEwsIGZhbHNlLCB0cnVlKTsKKysJICAgIGlmIChyZXQgPT0gR1NfRVJST1IpCisrCSAgICAg IHsKKysJCSpmcm9tX3AgPSBvbGRfZnJvbTsKKysJCS8qIEZhbGwgdGhyb3VnaC4gICovCisrCSAg ICAgIH0KKysJICAgIGVsc2UKKysJICAgICAgeworKwkJKmZyb21fcCA9IHVuc2hhcmVfZXhwciAo KmZyb21fcCk7CisrCQlyZXQgPSBHU19PSzsKKysJCWJyZWFrOworKwkgICAgICB9CisgCSAgfQor IAlyZXQgPSBHU19VTkhBTkRMRUQ7CisgCWJyZWFrOworQEAgLTM1NTEsNyArMzU5OSw4IEBAIGdp bXBsaWZ5X21vZGlmeV9leHByX3JocyAodHJlZSAqZXhwcl9wLCAKKyAgICAgICBjYXNlIENPTlNU UlVDVE9SOgorIAkvKiBJZiB3ZSdyZSBpbml0aWFsaXppbmcgZnJvbSBhIENPTlNUUlVDVE9SLCBi cmVhayB0aGlzIGludG8KKyAJICAgaW5kaXZpZHVhbCBNT0RJRllfRVhQUnMuICAqLworLQlyZXR1 cm4gZ2ltcGxpZnlfaW5pdF9jb25zdHJ1Y3RvciAoZXhwcl9wLCBwcmVfcCwgcG9zdF9wLCB3YW50 X3ZhbHVlKTsKKysJcmV0dXJuIGdpbXBsaWZ5X2luaXRfY29uc3RydWN0b3IgKGV4cHJfcCwgcHJl X3AsIHBvc3RfcCwgd2FudF92YWx1ZSwKKysJCQkJCSAgZmFsc2UpOworIAorICAgICAgIGNhc2Ug Q09ORF9FWFBSOgorIAkvKiBJZiB3ZSdyZSBhc3NpZ25pbmcgdG8gYSBub24tcmVnaXN0ZXIgdHlw ZSwgcHVzaCB0aGUgYXNzaWdubWVudAorLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmMtdG9ydHVyZS9j b21waWxlL3ByMzQ0NDguYwkocmV2aXNpb24gMTMwOTM0KQorKysrIGdjYy90ZXN0c3VpdGUvZ2Nj LmMtdG9ydHVyZS9jb21waWxlL3ByMzQ0NDguYwkobG9jYWwpCitAQCAtMCwwICsxLDM0IEBACisr LyogeyBkZy1kbyBjb21waWxlIH0gKi8KKysvKiB7IGRnLW9wdGlvbnMgIi1PIiB9ICovCisrCisr dHlwZWRlZiBzdHJ1Y3QgY2h1bmtfdCBjaHVua190OworK3N0cnVjdCBjaHVua190CisreworKyAg dW5zaWduZWQgY2hhciAqcHRyOworKyAgbG9uZyB1bnNpZ25lZCBpbnQgbGVuOworK307CisrZXh0 ZXJuIGNodW5rX3QgYXNuMV93cmFwIChjaHVua190IGMsIC4uLik7CisrdHlwZWRlZiBzdHJ1Y3Qg bGlua2VkX2xpc3RfdCBsaW5rZWRfbGlzdF90OworK2NodW5rX3QgaWV0ZkF0dHJfbGlzdF9lbmNv ZGUgKGxpbmtlZF9saXN0X3QgKiBsaXN0KTsKKytleHRlcm4gbGlua2VkX2xpc3RfdCAqZ3JvdXBz OworK3N0YXRpYyB1bnNpZ25lZCBjaGFyIEFTTjFfZ3JvdXBfb2lkX3N0cltdID0geworKyAgICAw eDA2CisrfTsKKytzdGF0aWMgY29uc3QgY2h1bmtfdCBBU04xX2dyb3VwX29pZCA9IHsKKysgIEFT TjFfZ3JvdXBfb2lkX3N0ciwgc2l6ZW9mIChBU04xX2dyb3VwX29pZF9zdHIpCisrfTsKKytzdGF0 aWMgY2h1bmtfdAorK2J1aWxkX2F0dHJpYnV0ZV90eXBlIChjb25zdCBjaHVua190IHR5cGUsIGNo dW5rX3QgY29udGVudCkKKyt7CisrICByZXR1cm4gdHlwZTsKKyt9Cisrc3RhdGljIGNodW5rX3QK KytidWlsZF9hdHRyaWJ1dGVzICh2b2lkKQorK3sKKysgIHJldHVybiBhc24xX3dyYXAgKGJ1aWxk X2F0dHJpYnV0ZV90eXBlIChBU04xX2dyb3VwX29pZCwKKysJCQkJCSAgaWV0ZkF0dHJfbGlzdF9l bmNvZGUgKGdyb3VwcykpKTsKKyt9Cisrdm9pZCBidWlsZF9hdHRyX2NlcnQgKHZvaWQpCisrewor KyAgYXNuMV93cmFwIChidWlsZF9hdHRyaWJ1dGVzICgpKTsKKyt9CistLS0gZ2NjL3Rlc3RzdWl0 ZS9nY2MuZGcvdHJlZS1zc2EvcHIzMjkwMS5jCShyZXZpc2lvbiAxMzA5MzQpCisrKysgZ2NjL3Rl c3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2EvcHIzMjkwMS5jCShsb2NhbCkKK0BAIC03LDcgKzcsNyBA QCBzdHJ1Y3QgZm9vIHsKKyAgICAgICAgIHVuc2lnbmVkIDogNDsKKyB9OworIAorLWV4dGVybiBz dHJ1Y3QgZm9vIHRoZWZvbzsKKytleHRlcm4gc3RydWN0IGZvbyB0aGVmb28sIHRoZW90aGVyZm9v OworIAorIHZvaWQgc2V0dXBfZm9vKHZvaWQpCisgeworQEAgLTE1LDEwICsxNSwxNiBAQCB2b2lk IHNldHVwX2Zvbyh2b2lkKQorICAgICAgICAgICAgICAgICAuYTEgPSAxLAorICAgICAgICAgICAg ICAgICAuYTIgPSA1LAorICAgICAgICAgfTsKKysJdm9sYXRpbGUgY29uc3Qgc3RydWN0IGZvbyB2 b2xpbml0ID0geworKwkJLmExID0gMCwKKysJCS5hMiA9IDYKKysJfTsKKyAgICAgICAgIHRoZWZv byA9IGluaXQ7CisrCXRoZW90aGVyZm9vID0gdm9saW5pdDsKKyB9CisgCistLyogeyBkZy1maW5h bCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJ0aGVmb28uMCA9IFx7XH0iIDEgImdpbXBsZSJ9IH0g Ki8KKy0vKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgInRoZWZvby4wLmExID0g MSIgMSAiZ2ltcGxlIn0gfSAqLworLS8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1l cyAidGhlZm9vLjAuYTIgPSA1IiAxICJnaW1wbGUifSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNj YW4tdHJlZS1kdW1wLXRpbWVzICJ0aGVmb28uKiA9IHt9IiAxICJnaW1wbGUifSB9ICovCisrLyog eyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJ0aGVmb28uKiA9IDEiIDEgImdpbXBs ZSJ9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgInRoZWZvby4q ID0gNSIgMSAiZ2ltcGxlIn0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10 aW1lcyAidGhlb3RoZXJmb28gPSB2b2xpbml0IiAxICJnaW1wbGUifSB9ICovCisgLyogeyBkZy1m aW5hbCB7IGNsZWFudXAtdHJlZS1kdW1wICJnaW1wbGUiIH0gfSAqLwoKZGlmZiAtLWdpdCBhL2dj YzQzLXByMzQ1MzUucGF0Y2ggYi9nY2M0My1wcjM0NTM1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjRhM2Q1OWYKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M0My1wcjM0 NTM1LnBhdGNoCkBAIC0wLDAgKzEsMzQgQEAKKzIwMDctMTItMjAgIEpha3ViIEplbGluZWsgIDxq YWt1YkByZWRoYXQuY29tPgorCisJUFIgZGVidWcvMzQ1MzUKKwkqIHRyZWUtbXVkZmxhcC5jICht Zl9tYWtlX2J1aWx0aW4pOiBNYWtlIGRlY2wgYXJ0aWZpY2lhbAorCWFuZCBkb24ndCBlbWl0IGRl YnVnIGluZm8gZm9yIGl0LgorCisJUFIgZGVidWcvMzQ1MzUKKwkqIGNwLWxhbmcuYyAoY3BfY2xh c3NpZnlfcmVjb3JkKTogQ2hlY2sgVFlQRV9MQU5HX1NQRUNJRklDCisJaXMgbm9uLU5VTEwgYmVm b3JlIHRlc3RpbmcgQ0xBU1NUWVBFX0RFQ0xBUkVEX0NMQVNTLgorCistLS0gZ2NjL2NwL2NwLWxh bmcuYy5qagkyMDA3LTEyLTE2IDEyOjM2OjE2LjAwMDAwMDAwMCArMDEwMAorKysrIGdjYy9jcC9j cC1sYW5nLmMJMjAwNy0xMi0yMCAxMDo1ODoxOS4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xNTksNyAr MTU5LDcgQEAgY3h4X2R3YXJmX25hbWUgKHRyZWUgdCwgaW50IHZlcmJvc2l0eSkKKyBzdGF0aWMg ZW51bSBjbGFzc2lmeV9yZWNvcmQKKyBjcF9jbGFzc2lmeV9yZWNvcmQgKHRyZWUgdHlwZSkKKyB7 CistICBpZiAoQ0xBU1NUWVBFX0RFQ0xBUkVEX0NMQVNTICh0eXBlKSkKKysgIGlmIChUWVBFX0xB TkdfU1BFQ0lGSUMgKHR5cGUpICYmIENMQVNTVFlQRV9ERUNMQVJFRF9DTEFTUyAodHlwZSkpCisg ICAgIHJldHVybiBSRUNPUkRfSVNfQ0xBU1M7CisgCisgICByZXR1cm4gUkVDT1JEX0lTX1NUUlVD VDsKKy0tLSBnY2MvdHJlZS1tdWRmbGFwLmMuamoJMjAwNy0wOC0xMyAxNToxMToxOC4wMDAwMDAw MDAgKzAyMDAKKysrKyBnY2MvdHJlZS1tdWRmbGFwLmMJMjAwNy0xMi0yMCAxMToxNTowMS4wMDAw MDAwMDAgKzAxMDAKK0BAIC0zMDEsNiArMzAxLDEwIEBAIG1mX21ha2VfYnVpbHRpbiAoZW51bSB0 cmVlX2NvZGUgY2F0ZWdvcnkKKyAgIFRSRUVfUFVCTElDIChkZWNsKSA9IDE7CisgICBERUNMX0VY VEVSTkFMIChkZWNsKSA9IDE7CisgICBsYW5nX2hvb2tzLmRlY2xzLnB1c2hkZWNsIChkZWNsKTsK KysgIC8qIFRoZSBkZWNsIHdhcyBkZWNsYXJlZCBieSB0aGUgY29tcGlsZXIuICAqLworKyAgREVD TF9BUlRJRklDSUFMIChkZWNsKSA9IDE7CisrICAvKiBBbmQgd2UgZG9uJ3Qgd2FudCBkZWJ1ZyBp bmZvIGZvciBpdC4gICovCisrICBERUNMX0lHTk9SRURfUCAoZGVjbCkgPSAxOworICAgcmV0dXJu IGRlY2w7CisgfQorIAoKZGlmZiAtLWdpdCBhL2djYzQzLnNwZWMgYi9nY2M0My5zcGVjCmluZGV4 IGEyNTA5YWUuLjFjYzAyY2UgMTAwNjQ0Ci0tLSBhL2djYzQzLnNwZWMKKysrIGIvZ2NjNDMuc3Bl YwpAQCAtMzI4LDcgKzMyOCw3IEBAIFJlcXVpcmVzOiBsaWJhcnRfbGdwbCA+PSAyLjEuMAogJWlm ICV7YnVpbGRfamF2YX0KIEJ1aWxkUmVxdWlyZXM6IGd0azItZGV2ZWwgPj0gMi40LjAKIEJ1aWxk UmVxdWlyZXM6IGdsaWIyLWRldmVsID49IDIuNC4wCi1CdWlsZFJlcXVpcmVzOiBmaXJlZm94LWRl dmVsCitCdWlsZFJlcXVpcmVzOiB4dWxydW5uZXItZGV2ZWwKIEJ1aWxkUmVxdWlyZXM6IGxpYmFy dF9sZ3BsLWRldmVsID49IDIuMS4wCiBCdWlsZFJlcXVpcmVzOiBhbHNhLWxpYi1kZXZlbAogQnVp bGRSZXF1aXJlczogbGliWHRzdC1kZXZlbAoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2Vz CmluZGV4IGMzNmZjOTUuLjFiZmEyZGIgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNl cwpAQCAtMSwyICsxLDIgQEAKLTY1YWMzMzYyMGIzNjA1ZjZjNjEyYjg1OTFkN2Y3ZmExICBnY2Mt NC4zLjAtMjAwNzEyMTIudGFyLmJ6MgorYzI5ZTQzN2E4ODY3OGE5M2E5NzUwY2FmMzA0YjY5YmMg IGdjYy00LjMuMC0yMDA3MTIyMC50YXIuYnoyCiA5MmE3MGY5ZTU2MjIzYjY1M2JjZTBmNThmOTBj Zjk1MCAgZmFzdGphci0wLjk1LnRhci5nego=