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: 7.0.1-0.12 Date: Mon, 29 Jun 2026 12:27:25 GMT Message-ID: <178273604537.1.5098802845475551034.rpms-gcc-6c2cfcacd936@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: 6c2cfcacd936e8303bf783313cfa9b134d792df3 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogNmMyY2ZjYWNkOTM2ZTgzMDNiZjc4MzMxM2NmYTliMTM0 ZDc5MmRmMwpBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPgpEYXRlICAg OiAyMDE3LTAzLTA5VDE3OjUwOjA4KzAxOjAwClN0YXRzICA6ICsxMjAvLTE4ODMgaW4gOCBmaWxl KHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2NjL2MvNmMy Y2ZjYWNkOTM2ZTgzMDNiZjc4MzMxM2NmYTliMTM0ZDc5MmRmMz9icmFuY2g9cmhlbC1mNDEtYmFz ZQoKTG9nOgo3LjAuMS0wLjEyCgotLS0KZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdu b3JlCmluZGV4IGVhN2IwZDUuLmI3ZGQ4NTIgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIv LmdpdGlnbm9yZQpAQCAtMTAsMyArMTAsNCBAQAogL2djYy03LjAuMS0yMDE3MDIxOS50YXIuYnoy CiAvZ2NjLTcuMC4xLTIwMTcwMjI1LnRhci5iejIKIC9nY2MtNy4wLjEtMjAxNzAzMDgudGFyLmJ6 MgorL2djYy03LjAuMS0yMDE3MDMwOS50YXIuYnoyCgpkaWZmIC0tZ2l0IGEvZ2NjLnNwZWMgYi9n Y2Muc3BlYwppbmRleCAyNDEzODY4Li4zOGE0ODJjIDEwMDY0NAotLS0gYS9nY2Muc3BlYworKysg Yi9nY2Muc3BlYwpAQCAtNCw3ICs0LDcgQEAKICVnbG9iYWwgZ2NjX21ham9yIDcKICMgTm90ZSwg Z2NjX3JlbGVhc2UgbXVzdCBiZSBpbnRlZ2VyLCBpZiB5b3Ugd2FudCB0byBhZGQgc3VmZml4ZXMg dG8KICMgJXtyZWxlYXNlfSwgYXBwZW5kIHRoZW0gYWZ0ZXIgJXtnY2NfcmVsZWFzZX0gb24gUmVs ZWFzZTogbGluZS4KLSVnbG9iYWwgZ2NjX3JlbGVhc2UgMC4xMQorJWdsb2JhbCBnY2NfcmVsZWFz ZSAwLjEyCiAlZ2xvYmFsIG52cHR4X3Rvb2xzX2dpdHJldiBjMjgwNTBmNjAxOTNiM2I5NWExODg2 NmE5NmYwMzMzNGU4NzRlNzhmCiAlZ2xvYmFsIG52cHR4X25ld2xpYl9naXRyZXYgYWFkYzhlYjBl YzQzYjdjZDBkZDJkZmI0ODRiYWU2M2M4YjA1ZWYyNAogJWdsb2JhbCBfdW5wYWNrYWdlZF9maWxl c190ZXJtaW5hdGVfYnVpbGQgMApAQCAtMjMyLDEwICsyMzIsOSBAQCBQYXRjaDg6IGdjYzctbm8t YWRkLW5lZWRlZC5wYXRjaAogUGF0Y2g5OiBnY2M3LWFhcmNoNjQtYXN5bmMtdW53LXRhYmxlcy5w YXRjaAogUGF0Y2gxMDogZ2NjNy1mb2ZmbG9hZC1kZWZhdWx0LnBhdGNoCiBQYXRjaDExOiBnY2M3 LVduby1mb3JtYXQtc2VjdXJpdHkucGF0Y2gKLVBhdGNoMTI6IGdjYzctcHI3OTkzMi0xLnBhdGNo Ci1QYXRjaDEzOiBnY2M3LXByNzk5MzItMi5wYXRjaAotUGF0Y2gxNDogZ2NjNy1wcjc5OTQxLnBh dGNoCi1QYXRjaDE1OiBnY2M3LXByNzk5NDQucGF0Y2gKK1BhdGNoMTI6IGdjYzctcHI3OTk0MS5w YXRjaAorUGF0Y2gxMzogZ2NjNy1wcjc5OTY5LnBhdGNoCitQYXRjaDE0OiBnY2M3LXByNzk5NzIu cGF0Y2gKIAogUGF0Y2gxMDAwOiBudnB0eC10b29scy1uby1wdHhhcy5wYXRjaAogUGF0Y2gxMDAx OiBudnB0eC10b29scy1idWlsZC5wYXRjaApAQCAtODI0LDEwICs4MjMsOSBAQCBwYWNrYWdlIG9y IHdoZW4gZGVidWdnaW5nIHRoaXMgcGFja2FnZS4KICVwYXRjaDkgLXAwIC1iIC5hYXJjaDY0LWFz eW5jLXVudy10YWJsZXN+CiAlcGF0Y2gxMCAtcDAgLWIgLmZvZmZsb2FkLWRlZmF1bHR+CiAlcGF0 Y2gxMSAtcDAgLWIgLlduby1mb3JtYXQtc2VjdXJpdHl+Ci0lcGF0Y2gxMiAtcDAgLWIgLnByNzk5 MzItMX4KLSVwYXRjaDEzIC1wMCAtYiAucHI3OTkzMi0yfgotJXBhdGNoMTQgLXAwIC1iIC5wcjc5 OTQxfgotJXBhdGNoMTUgLXAwIC1iIC5wcjc5OTQ0fgorJXBhdGNoMTIgLXAwIC1iIC5wcjc5OTQx fgorJXBhdGNoMTMgLXAwIC1iIC5wcjc5OTY5fgorJXBhdGNoMTQgLXAwIC1iIC5wcjc5OTcyfgog CiBjZCBudnB0eC10b29scy0le252cHR4X3Rvb2xzX2dpdHJldn0KICVwYXRjaDEwMDAgLXAxIC1i IC5udnB0eC10b29scy1uby1wdHhhc34KQEAgLTMyNDQsNiArMzI0MiwxNiBAQCBmaQogJWVuZGlm CiAKICVjaGFuZ2Vsb2cKKyogVGh1IE1hciAgOSAyMDE3IEpha3ViIEplbGluZWsgPGpha3ViQHJl ZGhhdC5jb20+IDcuMC4xLTAuMTIKKy0gdXBkYXRlIGZyb20gdGhlIHRydW5rCisgIC0gUFJzIGMr Ky83MTk2NiwgYysrLzc5NjcyLCBjKysvNzk3OTcsIGMrKy83OTkwMCwgaXBhLzc5NzYxLCBpcGEv Nzk3NjQsCisJaXBhLzc5OTcwLCBtaWRkbGUtZW5kLzc5OTcxLCBydGwtb3B0aW1pemF0aW9uLzc5 OTQ5LCB0YXJnZXQvNjU3MDUsCisJdGFyZ2V0LzY5ODA0LCB0YXJnZXQvNzk5MTMsIHRhcmdldC83 OTkyOCwgdHJlZS1vcHRpbWl6YXRpb24vNzk2MzEsCisJdHJlZS1vcHRpbWl6YXRpb24vNzk5NzcK Ky0gZml4IERXX0FUX2RlY2xfbGluZSBvbiBEV19UQUdfZW51bWVyYXRpb25fdHlwZSBmb3IgQyBl bnVtZXJhdGlvbgorICBkZWZpbml0aW9ucyBmb2xsb3dpbmcgZm9yd2FyZCBkZWNsYXJhdGlvbnMg KCMxNDIzNDYwLCBQUiBjLzc5OTY5KQorLSBmaXggSUNFIHdpdGggLVdhbGxvY2EgKFBSIHRyZWUt b3B0aW1pemF0aW9uLzc5OTcyKQorCiAqIFdlZCBNYXIgIDggMjAxNyBKYWt1YiBKZWxpbmVrIDxq YWt1YkByZWRoYXQuY29tPiA3LjAuMS0wLjExCiAtIHVwZGF0ZSBmcm9tIHRoZSB0cnVuawogICAt IFBScyBhZGEvNzk5MDMsIGFkYS83OTk0NSwgYysrLzQyMDAwLCBjKysvNjQ1NzQsIGMrKy83MDI2 NiwgYysrLzcxNTY4LAoKZGlmZiAtLWdpdCBhL2djYzctcHI3OTkzMi0xLnBhdGNoIGIvZ2NjNy1w cjc5OTMyLTEucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkODIyZjcuLjAw MDAwMDAKLS0tIGEvZ2NjNy1wcjc5OTMyLTEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxODEg KzAsMCBAQAotMjAxNy0wMy0wNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+Ci0K LQlQUiB0YXJnZXQvNzk5MzIKLQkqIGNvbmZpZy9pMzg2L2F2eDUxMmJ3aW50cmluLmggKF9tbTUx Ml9wYWNrc19lcGkzMiwKLQlfbW01MTJfbWFza3pfcGFja3NfZXBpMzIsIF9tbTUxMl9tYXNrX3Bh Y2tzX2VwaTMyLAotCV9tbTUxMl9wYWNrdXNfZXBpMzIsIF9tbTUxMl9tYXNrel9wYWNrdXNfZXBp MzIsCi0JX21tNTEyX21hc2tfcGFja3VzX2VwaTMyKTogTW92ZSBkZWZpbml0aW9ucyBvdXRzaWRl IG9mIF9fT1BUSU1JWkVfXwotCWd1YXJkZWQgc2VjdGlvbi4KLQotCSogZ2NjLnRhcmdldC9pMzg2 L3ByNzk5MzItMS5jOiBOZXcgdGVzdC4KLQotLS0tIGdjYy9jb25maWcvaTM4Ni9hdng1MTJid2lu dHJpbi5oLmpqCTIwMTctMDEtMjMgMTg6MDk6NDguMDAwMDAwMDAwICswMTAwCi0rKysgZ2NjL2Nv bmZpZy9pMzg2L2F2eDUxMmJ3aW50cmluLmgJMjAxNy0wMy0wNyAwNzo0NzoyOC45MDAwNDk4NDkg KzAxMDAKLUBAIC0yNjU2LDYgKzI2NTYsNzIgQEAgX21tNTEyX2NtcGxlX2VwaTE2X21hc2sgKF9f bTUxMmkgX19YLCBfXwotIAkJCQkJCSAgKF9fbW1hc2szMikgLTEpOwotIH0KLSAKLStleHRlcm4g X19pbmxpbmUgX19tNTEyaQotK19fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdh eXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLStfbW01MTJfcGFja3NfZXBpMzIgKF9fbTUx MmkgX19BLCBfX201MTJpIF9fQikKLSt7Ci0rICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9p YTMyX3BhY2tzc2R3NTEyX21hc2sgKChfX3YxNnNpKSBfX0EsCi0rCQkJCQkJICAgIChfX3YxNnNp KSBfX0IsCi0rCQkJCQkJICAgIChfX3YzMmhpKQotKwkJCQkJCSAgICBfbW01MTJfc2V0emVyb19z aTUxMiAoKSwKLSsJCQkJCQkgICAgKF9fbW1hc2szMikgLTEpOwotK30KLSsKLStleHRlcm4gX19p bmxpbmUgX19tNTEyaQotK19fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNf aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLStfbW01MTJfbWFza3pfcGFja3NfZXBpMzIgKF9f bW1hc2szMiBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKLSt7Ci0rICByZXR1cm4gKF9f bTUxMmkpIF9fYnVpbHRpbl9pYTMyX3BhY2tzc2R3NTEyX21hc2sgKChfX3YxNnNpKSBfX0EsCi0r CQkJCQkJICAgIChfX3YxNnNpKSBfX0IsCi0rCQkJCQkJICAgIChfX3YzMmhpKQotKwkJCQkJCSAg ICBfbW01MTJfc2V0emVyb19zaTUxMiAoKSwKLSsJCQkJCQkgICAgX19NKTsKLSt9Ci0rCi0rZXh0 ZXJuIF9faW5saW5lIF9fbTUxMmkKLStfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9f YWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0rX21tNTEyX21hc2tfcGFja3NfZXBp MzIgKF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19NLCBfX201MTJpIF9fQSwKLSsJCQkgX19tNTEy aSBfX0IpCi0rewotKyAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9wYWNrc3NkdzUx Ml9tYXNrICgoX192MTZzaSkgX19BLAotKwkJCQkJCSAgICAoX192MTZzaSkgX19CLAotKwkJCQkJ CSAgICAoX192MzJoaSkgX19XLAotKwkJCQkJCSAgICBfX00pOwotK30KLSsKLStleHRlcm4gX19p bmxpbmUgX19tNTEyaQotK19fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNf aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLStfbW01MTJfcGFja3VzX2VwaTMyIChfX201MTJp IF9fQSwgX19tNTEyaSBfX0IpCi0rewotKyAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEz Ml9wYWNrdXNkdzUxMl9tYXNrICgoX192MTZzaSkgX19BLAotKwkJCQkJCSAgICAoX192MTZzaSkg X19CLAotKwkJCQkJCSAgICAoX192MzJoaSkKLSsJCQkJCQkgICAgX21tNTEyX3NldHplcm9fc2k1 MTIgKCksCi0rCQkJCQkJICAgIChfX21tYXNrMzIpIC0xKTsKLSt9Ci0rCi0rZXh0ZXJuIF9faW5s aW5lIF9fbTUxMmkKLStfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lu bGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0rX21tNTEyX21hc2t6X3BhY2t1c19lcGkzMiAoX19t bWFzazMyIF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQotK3sKLSsgIHJldHVybiAoX19t NTEyaSkgX19idWlsdGluX2lhMzJfcGFja3VzZHc1MTJfbWFzayAoKF9fdjE2c2kpIF9fQSwKLSsJ CQkJCQkgICAgKF9fdjE2c2kpIF9fQiwKLSsJCQkJCQkgICAgKF9fdjMyaGkpCi0rCQkJCQkJICAg IF9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpLAotKwkJCQkJCSAgICBfX00pOwotK30KLSsKLStleHRl cm4gX19pbmxpbmUgX19tNTEyaQotK19fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19h bHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLStfbW01MTJfbWFza19wYWNrdXNfZXBp MzIgKF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19NLCBfX201MTJpIF9fQSwKLSsJCQkgIF9fbTUx MmkgX19CKQotK3sKLSsgIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfcGFja3VzZHc1 MTJfbWFzayAoKF9fdjE2c2kpIF9fQSwKLSsJCQkJCQkgICAgKF9fdjE2c2kpIF9fQiwKLSsJCQkJ CQkgICAgKF9fdjMyaGkpIF9fVywKLSsJCQkJCQkgICAgX19NKTsKLSt9Ci0rCi0gI2lmZGVmIF9f T1BUSU1JWkVfXwotIGV4dGVybiBfX2lubGluZSBfX21tYXNrMzIKLSBfX2F0dHJpYnV0ZV9fICgo X19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi1AQCAt MzAxMiw3MiArMzA3OCw2IEBAIF9tbTUxMl9jbXBfZXB1OF9tYXNrIChfX201MTJpIF9fWCwgX19t NTEKLSB9Ci0gCi0gZXh0ZXJuIF9faW5saW5lIF9fbTUxMmkKLS1fX2F0dHJpYnV0ZV9fICgoX19n bnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0tX21tNTEy X3BhY2tzX2VwaTMyIChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCi0tewotLSAgcmV0dXJuIChf X201MTJpKSBfX2J1aWx0aW5faWEzMl9wYWNrc3NkdzUxMl9tYXNrICgoX192MTZzaSkgX19BLAot LQkJCQkJCSAgICAoX192MTZzaSkgX19CLAotLQkJCQkJCSAgICAoX192MzJoaSkKLS0JCQkJCQkg ICAgX21tNTEyX3NldHplcm9fc2k1MTIgKCksCi0tCQkJCQkJICAgIChfX21tYXNrMzIpIC0xKTsK LS19Ci0tCi0tZXh0ZXJuIF9faW5saW5lIF9fbTUxMmkKLS1fX2F0dHJpYnV0ZV9fICgoX19nbnVf aW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0tX21tNTEyX21h c2t6X3BhY2tzX2VwaTMyIChfX21tYXNrMzIgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0Ip Ci0tewotLSAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9wYWNrc3NkdzUxMl9tYXNr ICgoX192MTZzaSkgX19BLAotLQkJCQkJCSAgICAoX192MTZzaSkgX19CLAotLQkJCQkJCSAgICAo X192MzJoaSkKLS0JCQkJCQkgICAgX21tNTEyX3NldHplcm9fc2k1MTIgKCksCi0tCQkJCQkJICAg IF9fTSk7Ci0tfQotLQotLWV4dGVybiBfX2lubGluZSBfX201MTJpCi0tX19hdHRyaWJ1dGVfXyAo KF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotLV9t bTUxMl9tYXNrX3BhY2tzX2VwaTMyIChfX201MTJpIF9fVywgX19tbWFzazMyIF9fTSwgX19tNTEy aSBfX0EsCi0tCQkJIF9fbTUxMmkgX19CKQotLXsKLS0gIHJldHVybiAoX19tNTEyaSkgX19idWls dGluX2lhMzJfcGFja3NzZHc1MTJfbWFzayAoKF9fdjE2c2kpIF9fQSwKLS0JCQkJCQkgICAgKF9f djE2c2kpIF9fQiwKLS0JCQkJCQkgICAgKF9fdjMyaGkpIF9fVywKLS0JCQkJCQkgICAgX19NKTsK LS19Ci0tCi0tZXh0ZXJuIF9faW5saW5lIF9fbTUxMmkKLS1fX2F0dHJpYnV0ZV9fICgoX19nbnVf aW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0tX21tNTEyX3Bh Y2t1c19lcGkzMiAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQotLXsKLS0gIHJldHVybiAoX19t NTEyaSkgX19idWlsdGluX2lhMzJfcGFja3VzZHc1MTJfbWFzayAoKF9fdjE2c2kpIF9fQSwKLS0J CQkJCQkgICAgKF9fdjE2c2kpIF9fQiwKLS0JCQkJCQkgICAgKF9fdjMyaGkpCi0tCQkJCQkJICAg IF9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpLAotLQkJCQkJCSAgICAoX19tbWFzazMyKSAtMSk7Ci0t fQotLQotLWV4dGVybiBfX2lubGluZSBfX201MTJpCi0tX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lu bGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotLV9tbTUxMl9tYXNr el9wYWNrdXNfZXBpMzIgKF9fbW1hc2szMiBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikK LS17Ci0tICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3BhY2t1c2R3NTEyX21hc2sg KChfX3YxNnNpKSBfX0EsCi0tCQkJCQkJICAgIChfX3YxNnNpKSBfX0IsCi0tCQkJCQkJICAgIChf X3YzMmhpKQotLQkJCQkJCSAgICBfbW01MTJfc2V0emVyb19zaTUxMiAoKSwKLS0JCQkJCQkgICAg X19NKTsKLS19Ci0tCi0tZXh0ZXJuIF9faW5saW5lIF9fbTUxMmkKLS1fX2F0dHJpYnV0ZV9fICgo X19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0tX21t NTEyX21hc2tfcGFja3VzX2VwaTMyIChfX201MTJpIF9fVywgX19tbWFzazMyIF9fTSwgX19tNTEy aSBfX0EsCi0tCQkJICBfX201MTJpIF9fQikKLS17Ci0tICByZXR1cm4gKF9fbTUxMmkpIF9fYnVp bHRpbl9pYTMyX3BhY2t1c2R3NTEyX21hc2sgKChfX3YxNnNpKSBfX0EsCi0tCQkJCQkJICAgIChf X3YxNnNpKSBfX0IsCi0tCQkJCQkJICAgIChfX3YzMmhpKSBfX1csCi0tCQkJCQkJICAgIF9fTSk7 Ci0tfQotLQotLWV4dGVybiBfX2lubGluZSBfX201MTJpCi0gX19hdHRyaWJ1dGVfXyAoKF9fZ251 X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotIF9tbTUxMl9i c2xsaV9lcGkxMjggKF9fbTUxMmkgX19BLCBjb25zdCBpbnQgX19OKQotIHsKLS0tLSBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjc5OTMyLTEuYy5qagkyMDE3LTAzLTA3IDA3OjU0OjQ1 LjE4MTMzOTQxOCArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByNzk5 MzItMS5jCTIwMTctMDMtMDcgMDc6NTQ6MjQuMDAwMDAwMDAwICswMTAwCi1AQCAtMCwwICsxLDE5 IEBACi0rLyogUFIgdGFyZ2V0Lzc5OTMyICovCi0rLyogeyBkZy1kbyBjb21waWxlIH0gKi8KLSsv KiB7IGRnLW9wdGlvbnMgIi1PMCAtbWF2eDUxMmJ3IiB9ICovCi0rCi0rI2luY2x1ZGUgPHg4Nmlu dHJpbi5oPgotKwotK19fbTUxMmkgYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaTsKLStfX21tYXNr MzIgbTsKLSsKLSt2b2lkCi0rZm9vICh2b2lkKQotK3sKLSsgIGQgPSBfbW01MTJfcGFja3NfZXBp MzIgKGEsIGIpOwotKyAgZSA9IF9tbTUxMl9tYXNrel9wYWNrc19lcGkzMiAobSwgYSwgYik7Ci0r ICBmID0gX21tNTEyX21hc2tfcGFja3NfZXBpMzIgKGMsIG0sIGEsIGIpOwotKyAgZyA9IF9tbTUx Ml9wYWNrdXNfZXBpMzIgKGEsIGIpOwotKyAgaCA9IF9tbTUxMl9tYXNrel9wYWNrdXNfZXBpMzIg KG0sIGEsIGIpOwotKyAgaSA9IF9tbTUxMl9tYXNrX3BhY2t1c19lcGkzMiAoYywgbSwgYSwgYik7 Ci0rfQoKZGlmZiAtLWdpdCBhL2djYzctcHI3OTkzMi0yLnBhdGNoIGIvZ2NjNy1wcjc5OTMyLTIu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzZDNiN2IuLjAwMDAwMDAKLS0t IGEvZ2NjNy1wcjc5OTMyLTIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMjg2ICswLDAgQEAK LTIwMTctMDMtMDcgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgotCi0JUFIgdGFy Z2V0Lzc5OTMyCi0JKiBjb25maWcvaTM4Ni9hdng1MTJ2bGludHJpbi5oIChfbW0yNTZfY21wZ2Vf ZXBpMzJfbWFzaywKLQlfbW0yNTZfY21wZ2VfZXBpNjRfbWFzaywgX21tMjU2X2NtcGdlX2VwdTMy X21hc2ssCi0JX21tMjU2X2NtcGdlX2VwdTY0X21hc2ssIF9tbTI1Nl9jbXBsZV9lcGkzMl9tYXNr LAotCV9tbTI1Nl9jbXBsZV9lcGk2NF9tYXNrLCBfbW0yNTZfY21wbGVfZXB1MzJfbWFzaywKLQlf bW0yNTZfY21wbGVfZXB1NjRfbWFzaywgX21tMjU2X2NtcGx0X2VwaTMyX21hc2ssCi0JX21tMjU2 X2NtcGx0X2VwaTY0X21hc2ssIF9tbTI1Nl9jbXBsdF9lcHUzMl9tYXNrLAotCV9tbTI1Nl9jbXBs dF9lcHU2NF9tYXNrLCBfbW0yNTZfY21wbmVxX2VwaTMyX21hc2ssCi0JX21tMjU2X2NtcG5lcV9l cGk2NF9tYXNrLCBfbW0yNTZfY21wbmVxX2VwdTMyX21hc2ssCi0JX21tMjU2X2NtcG5lcV9lcHU2 NF9tYXNrLCBfbW0yNTZfbWFza19jbXBnZV9lcGkzMl9tYXNrLAotCV9tbTI1Nl9tYXNrX2NtcGdl X2VwaTY0X21hc2ssIF9tbTI1Nl9tYXNrX2NtcGdlX2VwdTMyX21hc2ssCi0JX21tMjU2X21hc2tf Y21wZ2VfZXB1NjRfbWFzaywgX21tMjU2X21hc2tfY21wbGVfZXBpMzJfbWFzaywKLQlfbW0yNTZf bWFza19jbXBsZV9lcGk2NF9tYXNrLCBfbW0yNTZfbWFza19jbXBsZV9lcHUzMl9tYXNrLAotCV9t bTI1Nl9tYXNrX2NtcGxlX2VwdTY0X21hc2ssIF9tbTI1Nl9tYXNrX2NtcGx0X2VwaTMyX21hc2ss Ci0JX21tMjU2X21hc2tfY21wbHRfZXBpNjRfbWFzaywgX21tMjU2X21hc2tfY21wbHRfZXB1MzJf bWFzaywKLQlfbW0yNTZfbWFza19jbXBsdF9lcHU2NF9tYXNrLCBfbW0yNTZfbWFza19jbXBuZXFf ZXBpMzJfbWFzaywKLQlfbW0yNTZfbWFza19jbXBuZXFfZXBpNjRfbWFzaywgX21tMjU2X21hc2tf Y21wbmVxX2VwdTMyX21hc2ssCi0JX21tMjU2X21hc2tfY21wbmVxX2VwdTY0X21hc2ssIF9tbV9j bXBnZV9lcGkzMl9tYXNrLAotCV9tbV9jbXBnZV9lcGk2NF9tYXNrLCBfbW1fY21wZ2VfZXB1MzJf bWFzaywgX21tX2NtcGdlX2VwdTY0X21hc2ssCi0JX21tX2NtcGxlX2VwaTMyX21hc2ssIF9tbV9j bXBsZV9lcGk2NF9tYXNrLCBfbW1fY21wbGVfZXB1MzJfbWFzaywKLQlfbW1fY21wbGVfZXB1NjRf bWFzaywgX21tX2NtcGx0X2VwaTMyX21hc2ssIF9tbV9jbXBsdF9lcGk2NF9tYXNrLAotCV9tbV9j bXBsdF9lcHUzMl9tYXNrLCBfbW1fY21wbHRfZXB1NjRfbWFzaywgX21tX2NtcG5lcV9lcGkzMl9t YXNrLAotCV9tbV9jbXBuZXFfZXBpNjRfbWFzaywgX21tX2NtcG5lcV9lcHUzMl9tYXNrLCBfbW1f Y21wbmVxX2VwdTY0X21hc2ssCi0JX21tX21hc2tfY21wZ2VfZXBpMzJfbWFzaywgX21tX21hc2tf Y21wZ2VfZXBpNjRfbWFzaywKLQlfbW1fbWFza19jbXBnZV9lcHUzMl9tYXNrLCBfbW1fbWFza19j bXBnZV9lcHU2NF9tYXNrLAotCV9tbV9tYXNrX2NtcGxlX2VwaTMyX21hc2ssIF9tbV9tYXNrX2Nt cGxlX2VwaTY0X21hc2ssCi0JX21tX21hc2tfY21wbGVfZXB1MzJfbWFzaywgX21tX21hc2tfY21w bGVfZXB1NjRfbWFzaywKLQlfbW1fbWFza19jbXBsdF9lcGkzMl9tYXNrLCBfbW1fbWFza19jbXBs dF9lcGk2NF9tYXNrLAotCV9tbV9tYXNrX2NtcGx0X2VwdTMyX21hc2ssIF9tbV9tYXNrX2NtcGx0 X2VwdTY0X21hc2ssCi0JX21tX21hc2tfY21wbmVxX2VwaTMyX21hc2ssIF9tbV9tYXNrX2NtcG5l cV9lcGk2NF9tYXNrLAotCV9tbV9tYXNrX2NtcG5lcV9lcHUzMl9tYXNrLCBfbW1fbWFza19jbXBu ZXFfZXB1NjRfbWFzayk6IE1vdmUKLQlkZWZpbml0aW9ucyBvdXRzaWRlIG9mIF9fT1BUSU1JWkVf XyBndWFyZGVkIHNlY3Rpb24uCi0KLQkqIGdjYy50YXJnZXQvaTM4Ni9wcjc5OTMyLTIuYzogTmV3 IHRlc3QuCi0KLS0tLSBnY2MvY29uZmlnL2kzODYvYXZ4NTEydmxpbnRyaW4uaC5qagkyMDE3LTAx LTE3IDE4OjQwOjU5LjAwMDAwMDAwMCArMDEwMAotKysrIGdjYy9jb25maWcvaTM4Ni9hdng1MTJ2 bGludHJpbi5oCTIwMTctMDMtMDcgMDg6Mjc6MzEuMDcxNjQxMDQzICswMTAwCi1AQCAtOTE3Miw2 ICs5MTcyLDU4MiBAQCBfbW0yNTZfbWFza19wZXJtdXRleHZhcl9lcGkzMiAoX19tMjU2aSBfCi0g CQkJCQkJICAgICBfX00pOwotIH0KLSAKLStleHRlcm4gX19pbmxpbmUgX19tbWFzazgKLSsgIF9f YXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZp Y2lhbF9fKSkKLStfbW0yNTZfbWFza19jbXBuZXFfZXB1MzJfbWFzayAoX19tbWFzazggX19NLCBf X20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCi0rewotKyAgcmV0dXJuIChfX21tYXNrOCkgX19idWls dGluX2lhMzJfdWNtcGQyNTZfbWFzayAoKF9fdjhzaSkgX19YLAotKwkJCQkJCSAgKF9fdjhzaSkg X19ZLCA0LAotKwkJCQkJCSAgKF9fbW1hc2s4KSBfX00pOwotK30KLSsKLStleHRlcm4gX19pbmxp bmUgX19tbWFzazgKLSsgIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNf aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLStfbW0yNTZfY21wbmVxX2VwdTMyX21hc2sgKF9f bTI1NmkgX19YLCBfX20yNTZpIF9fWSkKLSt7Ci0rICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0 aW5faWEzMl91Y21wZDI1Nl9tYXNrICgoX192OHNpKSBfX1gsCi0rCQkJCQkJICAoX192OHNpKSBf X1ksIDQsCi0rCQkJCQkJICAoX19tbWFzazgpIC0xKTsKLSt9Ci0rCi0rZXh0ZXJuIF9faW5saW5l IF9fbW1hc2s4Ci0rICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lu bGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0rX21tMjU2X21hc2tfY21wbHRfZXB1MzJfbWFzayAo X19tbWFzazggX19NLCBfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCi0rewotKyAgcmV0dXJuIChf X21tYXNrOCkgX19idWlsdGluX2lhMzJfdWNtcGQyNTZfbWFzayAoKF9fdjhzaSkgX19YLAotKwkJ CQkJCSAgKF9fdjhzaSkgX19ZLCAxLAotKwkJCQkJCSAgKF9fbW1hc2s4KSBfX00pOwotK30KLSsK LStleHRlcm4gX19pbmxpbmUgX19tbWFzazgKLSsgIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxp bmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLStfbW0yNTZfY21wbHRf ZXB1MzJfbWFzayAoX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQotK3sKLSsgIHJldHVybiAoX19t bWFzazgpIF9fYnVpbHRpbl9pYTMyX3VjbXBkMjU2X21hc2sgKChfX3Y4c2kpIF9fWCwKLSsJCQkJ CQkgIChfX3Y4c2kpIF9fWSwgMSwKLSsJCQkJCQkgIChfX21tYXNrOCkgLTEpOwotK30KLSsKLStl eHRlcm4gX19pbmxpbmUgX19tbWFzazgKLSsgIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVf XywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLStfbW0yNTZfbWFza19jbXBn ZV9lcHUzMl9tYXNrIChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKLSt7 Ci0rICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl91Y21wZDI1Nl9tYXNrICgoX192 OHNpKSBfX1gsCi0rCQkJCQkJICAoX192OHNpKSBfX1ksIDUsCi0rCQkJCQkJICAoX19tbWFzazgp IF9fTSk7Ci0rfQotKwotK2V4dGVybiBfX2lubGluZSBfX21tYXNrOAotKyAgX19hdHRyaWJ1dGVf XyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQot K19tbTI1Nl9jbXBnZV9lcHUzMl9tYXNrIChfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCi0rewot KyAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfdWNtcGQyNTZfbWFzayAoKF9fdjhz aSkgX19YLAotKwkJCQkJCSAgKF9fdjhzaSkgX19ZLCA1LAotKwkJCQkJCSAgKF9fbW1hc2s4KSAt MSk7Ci0rfQotKwotK2V4dGVybiBfX2lubGluZSBfX21tYXNrOAotKyAgX19hdHRyaWJ1dGVfXyAo KF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotK19t bTI1Nl9tYXNrX2NtcGxlX2VwdTMyX21hc2sgKF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX1gsIF9f bTI1NmkgX19ZKQotK3sKLSsgIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX3VjbXBk MjU2X21hc2sgKChfX3Y4c2kpIF9fWCwKLSsJCQkJCQkgIChfX3Y4c2kpIF9fWSwgMiwKLSsJCQkJ CQkgIChfX21tYXNrOCkgX19NKTsKLSt9Ci0rCi0rZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0r ICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2Fy dGlmaWNpYWxfXykpCi0rX21tMjU2X2NtcGxlX2VwdTMyX21hc2sgKF9fbTI1NmkgX19YLCBfX20y NTZpIF9fWSkKLSt7Ci0rICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl91Y21wZDI1 Nl9tYXNrICgoX192OHNpKSBfX1gsCi0rCQkJCQkJICAoX192OHNpKSBfX1ksIDIsCi0rCQkJCQkJ ICAoX19tbWFzazgpIC0xKTsKLSt9Ci0rCi0rZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0rICBf X2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlm aWNpYWxfXykpCi0rX21tMjU2X21hc2tfY21wbmVxX2VwdTY0X21hc2sgKF9fbW1hc2s4IF9fTSwg X19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQotK3sKLSsgIHJldHVybiAoX19tbWFzazgpIF9fYnVp bHRpbl9pYTMyX3VjbXBxMjU2X21hc2sgKChfX3Y0ZGkpIF9fWCwKLSsJCQkJCQkgIChfX3Y0ZGkp IF9fWSwgNCwKLSsJCQkJCQkgIChfX21tYXNrOCkgX19NKTsKLSt9Ci0rCi0rZXh0ZXJuIF9faW5s aW5lIF9fbW1hc2s4Ci0rICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlz X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0rX21tMjU2X2NtcG5lcV9lcHU2NF9tYXNrIChf X20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCi0rewotKyAgcmV0dXJuIChfX21tYXNrOCkgX19idWls dGluX2lhMzJfdWNtcHEyNTZfbWFzayAoKF9fdjRkaSkgX19YLAotKwkJCQkJCSAgKF9fdjRkaSkg X19ZLCA0LAotKwkJCQkJCSAgKF9fbW1hc2s4KSAtMSk7Ci0rfQotKwotK2V4dGVybiBfX2lubGlu ZSBfX21tYXNrOAotKyAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19p bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotK19tbTI1Nl9tYXNrX2NtcGx0X2VwdTY0X21hc2sg KF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQotK3sKLSsgIHJldHVybiAo X19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX3VjbXBxMjU2X21hc2sgKChfX3Y0ZGkpIF9fWCwKLSsJ CQkJCQkgIChfX3Y0ZGkpIF9fWSwgMSwKLSsJCQkJCQkgIChfX21tYXNrOCkgX19NKTsKLSt9Ci0r Ci0rZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0rICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5s aW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0rX21tMjU2X2NtcGx0 X2VwdTY0X21hc2sgKF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKLSt7Ci0rICByZXR1cm4gKF9f bW1hc2s4KSBfX2J1aWx0aW5faWEzMl91Y21wcTI1Nl9tYXNrICgoX192NGRpKSBfX1gsCi0rCQkJ CQkJICAoX192NGRpKSBfX1ksIDEsCi0rCQkJCQkJICAoX19tbWFzazgpIC0xKTsKLSt9Ci0rCi0r ZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0rICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5l X18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0rX21tMjU2X21hc2tfY21w Z2VfZXB1NjRfbWFzayAoX19tbWFzazggX19NLCBfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCi0r ewotKyAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfdWNtcHEyNTZfbWFzayAoKF9f djRkaSkgX19YLAotKwkJCQkJCSAgKF9fdjRkaSkgX19ZLCA1LAotKwkJCQkJCSAgKF9fbW1hc2s4 KSBfX00pOwotK30KLSsKLStleHRlcm4gX19pbmxpbmUgX19tbWFzazgKLSsgIF9fYXR0cmlidXRl X18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkK LStfbW0yNTZfY21wZ2VfZXB1NjRfbWFzayAoX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQotK3sK LSsgIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX3VjbXBxMjU2X21hc2sgKChfX3Y0 ZGkpIF9fWCwKLSsJCQkJCQkgIChfX3Y0ZGkpIF9fWSwgNSwKLSsJCQkJCQkgIChfX21tYXNrOCkg LTEpOwotK30KLSsKLStleHRlcm4gX19pbmxpbmUgX19tbWFzazgKLSsgIF9fYXR0cmlidXRlX18g KChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLStf bW0yNTZfbWFza19jbXBsZV9lcHU2NF9tYXNrIChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19YLCBf X20yNTZpIF9fWSkKLSt7Ci0rICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl91Y21w cTI1Nl9tYXNrICgoX192NGRpKSBfX1gsCi0rCQkJCQkJICAoX192NGRpKSBfX1ksIDIsCi0rCQkJ CQkJICAoX19tbWFzazgpIF9fTSk7Ci0rfQotKwotK2V4dGVybiBfX2lubGluZSBfX21tYXNrOAot KyAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19h cnRpZmljaWFsX18pKQotK19tbTI1Nl9jbXBsZV9lcHU2NF9tYXNrIChfX20yNTZpIF9fWCwgX19t MjU2aSBfX1kpCi0rewotKyAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfdWNtcHEy NTZfbWFzayAoKF9fdjRkaSkgX19YLAotKwkJCQkJCSAgKF9fdjRkaSkgX19ZLCAyLAotKwkJCQkJ CSAgKF9fbW1hc2s4KSAtMSk7Ci0rfQotKwotK2V4dGVybiBfX2lubGluZSBfX21tYXNrOAotKyAg X19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRp ZmljaWFsX18pKQotK19tbTI1Nl9tYXNrX2NtcG5lcV9lcGkzMl9tYXNrIChfX21tYXNrOCBfX00s IF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKLSt7Ci0rICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1 aWx0aW5faWEzMl9jbXBkMjU2X21hc2sgKChfX3Y4c2kpIF9fWCwKLSsJCQkJCQkgKF9fdjhzaSkg X19ZLCA0LAotKwkJCQkJCSAoX19tbWFzazgpIF9fTSk7Ci0rfQotKwotK2V4dGVybiBfX2lubGlu ZSBfX21tYXNrOAotKyAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19p bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotK19tbTI1Nl9jbXBuZXFfZXBpMzJfbWFzayAoX19t MjU2aSBfX1gsIF9fbTI1NmkgX19ZKQotK3sKLSsgIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRp bl9pYTMyX2NtcGQyNTZfbWFzayAoKF9fdjhzaSkgX19YLAotKwkJCQkJCSAoX192OHNpKSBfX1ks IDQsCi0rCQkJCQkJIChfX21tYXNrOCkgLTEpOwotK30KLSsKLStleHRlcm4gX19pbmxpbmUgX19t bWFzazgKLSsgIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5l X18sIF9fYXJ0aWZpY2lhbF9fKSkKLStfbW0yNTZfbWFza19jbXBsdF9lcGkzMl9tYXNrIChfX21t YXNrOCBfX00sIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKLSt7Ci0rICByZXR1cm4gKF9fbW1h c2s4KSBfX2J1aWx0aW5faWEzMl9jbXBkMjU2X21hc2sgKChfX3Y4c2kpIF9fWCwKLSsJCQkJCQkg KF9fdjhzaSkgX19ZLCAxLAotKwkJCQkJCSAoX19tbWFzazgpIF9fTSk7Ci0rfQotKwotK2V4dGVy biBfX2lubGluZSBfX21tYXNrOAotKyAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBf X2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotK19tbTI1Nl9jbXBsdF9lcGkzMl9t YXNrIChfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCi0rewotKyAgcmV0dXJuIChfX21tYXNrOCkg X19idWlsdGluX2lhMzJfY21wZDI1Nl9tYXNrICgoX192OHNpKSBfX1gsCi0rCQkJCQkJIChfX3Y4 c2kpIF9fWSwgMSwKLSsJCQkJCQkgKF9fbW1hc2s4KSAtMSk7Ci0rfQotKwotK2V4dGVybiBfX2lu bGluZSBfX21tYXNrOAotKyAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5 c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotK19tbTI1Nl9tYXNrX2NtcGdlX2VwaTMyX21h c2sgKF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQotK3sKLSsgIHJldHVy biAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX2NtcGQyNTZfbWFzayAoKF9fdjhzaSkgX19YLAot KwkJCQkJCSAoX192OHNpKSBfX1ksIDUsCi0rCQkJCQkJIChfX21tYXNrOCkgX19NKTsKLSt9Ci0r Ci0rZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0rICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5s aW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0rX21tMjU2X2NtcGdl X2VwaTMyX21hc2sgKF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKLSt7Ci0rICByZXR1cm4gKF9f bW1hc2s4KSBfX2J1aWx0aW5faWEzMl9jbXBkMjU2X21hc2sgKChfX3Y4c2kpIF9fWCwKLSsJCQkJ CQkgKF9fdjhzaSkgX19ZLCA1LAotKwkJCQkJCSAoX19tbWFzazgpIC0xKTsKLSt9Ci0rCi0rZXh0 ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0rICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18s IF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0rX21tMjU2X21hc2tfY21wbGVf ZXBpMzJfbWFzayAoX19tbWFzazggX19NLCBfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCi0rewot KyAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfY21wZDI1Nl9tYXNrICgoX192OHNp KSBfX1gsCi0rCQkJCQkJIChfX3Y4c2kpIF9fWSwgMiwKLSsJCQkJCQkgKF9fbW1hc2s4KSBfX00p OwotK30KLSsKLStleHRlcm4gX19pbmxpbmUgX19tbWFzazgKLSsgIF9fYXR0cmlidXRlX18gKChf X2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLStfbW0y NTZfY21wbGVfZXBpMzJfbWFzayAoX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQotK3sKLSsgIHJl dHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX2NtcGQyNTZfbWFzayAoKF9fdjhzaSkgX19Y LAotKwkJCQkJCSAoX192OHNpKSBfX1ksIDIsCi0rCQkJCQkJIChfX21tYXNrOCkgLTEpOwotK30K LSsKLStleHRlcm4gX19pbmxpbmUgX19tbWFzazgKLSsgIF9fYXR0cmlidXRlX18gKChfX2dudV9p bmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLStfbW0yNTZfbWFz a19jbXBuZXFfZXBpNjRfbWFzayAoX19tbWFzazggX19NLCBfX20yNTZpIF9fWCwgX19tMjU2aSBf X1kpCi0rewotKyAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfY21wcTI1Nl9tYXNr ICgoX192NGRpKSBfX1gsCi0rCQkJCQkJIChfX3Y0ZGkpIF9fWSwgNCwKLSsJCQkJCQkgKF9fbW1h c2s4KSBfX00pOwotK30KLSsKLStleHRlcm4gX19pbmxpbmUgX19tbWFzazgKLSsgIF9fYXR0cmli dXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f KSkKLStfbW0yNTZfY21wbmVxX2VwaTY0X21hc2sgKF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkK LSt7Ci0rICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl9jbXBxMjU2X21hc2sgKChf X3Y0ZGkpIF9fWCwKLSsJCQkJCQkgKF9fdjRkaSkgX19ZLCA0LAotKwkJCQkJCSAoX19tbWFzazgp IC0xKTsKLSt9Ci0rCi0rZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0rICBfX2F0dHJpYnV0ZV9f ICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0r X21tMjU2X21hc2tfY21wbHRfZXBpNjRfbWFzayAoX19tbWFzazggX19NLCBfX20yNTZpIF9fWCwg X19tMjU2aSBfX1kpCi0rewotKyAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfY21w cTI1Nl9tYXNrICgoX192NGRpKSBfX1gsCi0rCQkJCQkJIChfX3Y0ZGkpIF9fWSwgMSwKLSsJCQkJ CQkgKF9fbW1hc2s4KSBfX00pOwotK30KLSsKLStleHRlcm4gX19pbmxpbmUgX19tbWFzazgKLSsg IF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0 aWZpY2lhbF9fKSkKLStfbW0yNTZfY21wbHRfZXBpNjRfbWFzayAoX19tMjU2aSBfX1gsIF9fbTI1 NmkgX19ZKQotK3sKLSsgIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX2NtcHEyNTZf bWFzayAoKF9fdjRkaSkgX19YLAotKwkJCQkJCSAoX192NGRpKSBfX1ksIDEsCi0rCQkJCQkJIChf X21tYXNrOCkgLTEpOwotK30KLSsKLStleHRlcm4gX19pbmxpbmUgX19tbWFzazgKLSsgIF9fYXR0 cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lh bF9fKSkKLStfbW0yNTZfbWFza19jbXBnZV9lcGk2NF9tYXNrIChfX21tYXNrOCBfX00sIF9fbTI1 NmkgX19YLCBfX20yNTZpIF9fWSkKLSt7Ci0rICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5f aWEzMl9jbXBxMjU2X21hc2sgKChfX3Y0ZGkpIF9fWCwKLSsJCQkJCQkgKF9fdjRkaSkgX19ZLCA1 LAotKwkJCQkJCSAoX19tbWFzazgpIF9fTSk7Ci0rfQotKwotK2V4dGVybiBfX2lubGluZSBfX21t YXNrOAotKyAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVf XywgX19hcnRpZmljaWFsX18pKQotK19tbTI1Nl9jbXBnZV9lcGk2NF9tYXNrIChfX20yNTZpIF9f WCwgX19tMjU2aSBfX1kpCi0rewotKyAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJf Y21wcTI1Nl9tYXNrICgoX192NGRpKSBfX1gsCi0rCQkJCQkJIChfX3Y0ZGkpIF9fWSwgNSwKLSsJ CQkJCQkgKF9fbW1hc2s4KSAtMSk7Ci0rfQotKwotK2V4dGVybiBfX2lubGluZSBfX21tYXNrOAot KyAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19h cnRpZmljaWFsX18pKQotK19tbTI1Nl9tYXNrX2NtcGxlX2VwaTY0X21hc2sgKF9fbW1hc2s4IF9f TSwgX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQotK3sKLSsgIHJldHVybiAoX19tbWFzazgpIF9f YnVpbHRpbl9pYTMyX2NtcHEyNTZfbWFzayAoKF9fdjRkaSkgX19YLAotKwkJCQkJCSAoX192NGRp KSBfX1ksIDIsCi0rCQkJCQkJIChfX21tYXNrOCkgX19NKTsKLSt9Ci0rCi0rZXh0ZXJuIF9faW5s aW5lIF9fbW1hc2s4Ci0rICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlz X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0rX21tMjU2X2NtcGxlX2VwaTY0X21hc2sgKF9f bTI1NmkgX19YLCBfX20yNTZpIF9fWSkKLSt7Ci0rICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0 aW5faWEzMl9jbXBxMjU2X21hc2sgKChfX3Y0ZGkpIF9fWCwKLSsJCQkJCQkgKF9fdjRkaSkgX19Z LCAyLAotKwkJCQkJCSAoX19tbWFzazgpIC0xKTsKLSt9Ci0rCi0rZXh0ZXJuIF9faW5saW5lIF9f bW1hc2s4Ci0rICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGlu ZV9fLCBfX2FydGlmaWNpYWxfXykpCi0rX21tX21hc2tfY21wbmVxX2VwdTMyX21hc2sgKF9fbW1h c2s4IF9fTSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQotK3sKLSsgIHJldHVybiAoX19tbWFz azgpIF9fYnVpbHRpbl9pYTMyX3VjbXBkMTI4X21hc2sgKChfX3Y0c2kpIF9fWCwKLSsJCQkJCQkg IChfX3Y0c2kpIF9fWSwgNCwKLSsJCQkJCQkgIChfX21tYXNrOCkgX19NKTsKLSt9Ci0rCi0rZXh0 ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0rICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18s IF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0rX21tX2NtcG5lcV9lcHUzMl9t YXNrIChfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCi0rewotKyAgcmV0dXJuIChfX21tYXNrOCkg X19idWlsdGluX2lhMzJfdWNtcGQxMjhfbWFzayAoKF9fdjRzaSkgX19YLAotKwkJCQkJCSAgKF9f djRzaSkgX19ZLCA0LAotKwkJCQkJCSAgKF9fbW1hc2s4KSAtMSk7Ci0rfQotKwotK2V4dGVybiBf X2lubGluZSBfX21tYXNrOAotKyAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fs d2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotK19tbV9tYXNrX2NtcGx0X2VwdTMyX21h c2sgKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQotK3sKLSsgIHJldHVy biAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX3VjbXBkMTI4X21hc2sgKChfX3Y0c2kpIF9fWCwK LSsJCQkJCQkgIChfX3Y0c2kpIF9fWSwgMSwKLSsJCQkJCQkgIChfX21tYXNrOCkgX19NKTsKLSt9 Ci0rCi0rZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0rICBfX2F0dHJpYnV0ZV9fICgoX19nbnVf aW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0rX21tX2NtcGx0 X2VwdTMyX21hc2sgKF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKLSt7Ci0rICByZXR1cm4gKF9f bW1hc2s4KSBfX2J1aWx0aW5faWEzMl91Y21wZDEyOF9tYXNrICgoX192NHNpKSBfX1gsCi0rCQkJ CQkJICAoX192NHNpKSBfX1ksIDEsCi0rCQkJCQkJICAoX19tbWFzazgpIC0xKTsKLSt9Ci0rCi0r ZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0rICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5l X18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0rX21tX21hc2tfY21wZ2Vf ZXB1MzJfbWFzayAoX19tbWFzazggX19NLCBfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCi0rewot KyAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfdWNtcGQxMjhfbWFzayAoKF9fdjRz aSkgX19YLAotKwkJCQkJCSAgKF9fdjRzaSkgX19ZLCA1LAotKwkJCQkJCSAgKF9fbW1hc2s4KSBf X00pOwotK30KLSsKLStleHRlcm4gX19pbmxpbmUgX19tbWFzazgKLSsgIF9fYXR0cmlidXRlX18g KChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLStf bW1fY21wZ2VfZXB1MzJfbWFzayAoX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQotK3sKLSsgIHJl dHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX3VjbXBkMTI4X21hc2sgKChfX3Y0c2kpIF9f WCwKLSsJCQkJCQkgIChfX3Y0c2kpIF9fWSwgNSwKLSsJCQkJCQkgIChfX21tYXNrOCkgLTEpOwot K30KLSsKLStleHRlcm4gX19pbmxpbmUgX19tbWFzazgKLSsgIF9fYXR0cmlidXRlX18gKChfX2du dV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLStfbW1fbWFz a19jbXBsZV9lcHUzMl9tYXNrIChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19YLCBfX20xMjhpIF9f WSkKLSt7Ci0rICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl91Y21wZDEyOF9tYXNr ICgoX192NHNpKSBfX1gsCi0rCQkJCQkJICAoX192NHNpKSBfX1ksIDIsCi0rCQkJCQkJICAoX19t bWFzazgpIF9fTSk7Ci0rfQotKwotK2V4dGVybiBfX2lubGluZSBfX21tYXNrOAotKyAgX19hdHRy aWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFs X18pKQotK19tbV9jbXBsZV9lcHUzMl9tYXNrIChfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCi0r ewotKyAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfdWNtcGQxMjhfbWFzayAoKF9f djRzaSkgX19YLAotKwkJCQkJCSAgKF9fdjRzaSkgX19ZLCAyLAotKwkJCQkJCSAgKF9fbW1hc2s4 KSAtMSk7Ci0rfQotKwotK2V4dGVybiBfX2lubGluZSBfX21tYXNrOAotKyAgX19hdHRyaWJ1dGVf XyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQot K19tbV9tYXNrX2NtcG5lcV9lcHU2NF9tYXNrIChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19YLCBf X20xMjhpIF9fWSkKLSt7Ci0rICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl91Y21w cTEyOF9tYXNrICgoX192MmRpKSBfX1gsCi0rCQkJCQkJICAoX192MmRpKSBfX1ksIDQsCi0rCQkJ CQkJICAoX19tbWFzazgpIF9fTSk7Ci0rfQotKwotK2V4dGVybiBfX2lubGluZSBfX21tYXNrOAot KyAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19h cnRpZmljaWFsX18pKQotK19tbV9jbXBuZXFfZXB1NjRfbWFzayAoX19tMTI4aSBfX1gsIF9fbTEy OGkgX19ZKQotK3sKLSsgIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX3VjbXBxMTI4 X21hc2sgKChfX3YyZGkpIF9fWCwKLSsJCQkJCQkgIChfX3YyZGkpIF9fWSwgNCwKLSsJCQkJCQkg IChfX21tYXNrOCkgLTEpOwotK30KLSsKLStleHRlcm4gX19pbmxpbmUgX19tbWFzazgKLSsgIF9f YXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZp Y2lhbF9fKSkKLStfbW1fbWFza19jbXBsdF9lcHU2NF9tYXNrIChfX21tYXNrOCBfX00sIF9fbTEy OGkgX19YLCBfX20xMjhpIF9fWSkKLSt7Ci0rICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5f aWEzMl91Y21wcTEyOF9tYXNrICgoX192MmRpKSBfX1gsCi0rCQkJCQkJICAoX192MmRpKSBfX1ks IDEsCi0rCQkJCQkJICAoX19tbWFzazgpIF9fTSk7Ci0rfQotKwotK2V4dGVybiBfX2lubGluZSBf X21tYXNrOAotKyAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxp bmVfXywgX19hcnRpZmljaWFsX18pKQotK19tbV9jbXBsdF9lcHU2NF9tYXNrIChfX20xMjhpIF9f WCwgX19tMTI4aSBfX1kpCi0rewotKyAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJf dWNtcHExMjhfbWFzayAoKF9fdjJkaSkgX19YLAotKwkJCQkJCSAgKF9fdjJkaSkgX19ZLCAxLAot KwkJCQkJCSAgKF9fbW1hc2s4KSAtMSk7Ci0rfQotKwotK2V4dGVybiBfX2lubGluZSBfX21tYXNr OAotKyAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywg X19hcnRpZmljaWFsX18pKQotK19tbV9tYXNrX2NtcGdlX2VwdTY0X21hc2sgKF9fbW1hc2s4IF9f TSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQotK3sKLSsgIHJldHVybiAoX19tbWFzazgpIF9f YnVpbHRpbl9pYTMyX3VjbXBxMTI4X21hc2sgKChfX3YyZGkpIF9fWCwKLSsJCQkJCQkgIChfX3Yy ZGkpIF9fWSwgNSwKLSsJCQkJCQkgIChfX21tYXNrOCkgX19NKTsKLSt9Ci0rCi0rZXh0ZXJuIF9f aW5saW5lIF9fbW1hc2s4Ci0rICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3 YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0rX21tX2NtcGdlX2VwdTY0X21hc2sgKF9f bTEyOGkgX19YLCBfX20xMjhpIF9fWSkKLSt7Ci0rICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0 aW5faWEzMl91Y21wcTEyOF9tYXNrICgoX192MmRpKSBfX1gsCi0rCQkJCQkJICAoX192MmRpKSBf X1ksIDUsCi0rCQkJCQkJICAoX19tbWFzazgpIC0xKTsKLSt9Ci0rCi0rZXh0ZXJuIF9faW5saW5l IF9fbW1hc2s4Ci0rICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lu bGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0rX21tX21hc2tfY21wbGVfZXB1NjRfbWFzayAoX19t bWFzazggX19NLCBfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCi0rewotKyAgcmV0dXJuIChfX21t YXNrOCkgX19idWlsdGluX2lhMzJfdWNtcHExMjhfbWFzayAoKF9fdjJkaSkgX19YLAotKwkJCQkJ CSAgKF9fdjJkaSkgX19ZLCAyLAotKwkJCQkJCSAgKF9fbW1hc2s4KSBfX00pOwotK30KLSsKLStl eHRlcm4gX19pbmxpbmUgX19tbWFzazgKLSsgIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVf XywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLStfbW1fY21wbGVfZXB1NjRf bWFzayAoX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQotK3sKLSsgIHJldHVybiAoX19tbWFzazgp IF9fYnVpbHRpbl9pYTMyX3VjbXBxMTI4X21hc2sgKChfX3YyZGkpIF9fWCwKLSsJCQkJCQkgIChf X3YyZGkpIF9fWSwgMiwKLSsJCQkJCQkgIChfX21tYXNrOCkgLTEpOwotK30KLSsKLStleHRlcm4g X19pbmxpbmUgX19tbWFzazgKLSsgIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19h bHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLStfbW1fbWFza19jbXBuZXFfZXBpMzJf bWFzayAoX19tbWFzazggX19NLCBfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCi0rewotKyAgcmV0 dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfY21wZDEyOF9tYXNrICgoX192NHNpKSBfX1gs Ci0rCQkJCQkJIChfX3Y0c2kpIF9fWSwgNCwKLSsJCQkJCQkgKF9fbW1hc2s4KSBfX00pOwotK30K LSsKLStleHRlcm4gX19pbmxpbmUgX19tbWFzazgKLSsgIF9fYXR0cmlidXRlX18gKChfX2dudV9p bmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLStfbW1fY21wbmVx X2VwaTMyX21hc2sgKF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKLSt7Ci0rICByZXR1cm4gKF9f bW1hc2s4KSBfX2J1aWx0aW5faWEzMl9jbXBkMTI4X21hc2sgKChfX3Y0c2kpIF9fWCwKLSsJCQkJ CQkgKF9fdjRzaSkgX19ZLCA0LAotKwkJCQkJCSAoX19tbWFzazgpIC0xKTsKLSt9Ci0rCi0rZXh0 ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0rICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18s IF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0rX21tX21hc2tfY21wbHRfZXBp MzJfbWFzayAoX19tbWFzazggX19NLCBfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCi0rewotKyAg cmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfY21wZDEyOF9tYXNrICgoX192NHNpKSBf X1gsCi0rCQkJCQkJIChfX3Y0c2kpIF9fWSwgMSwKLSsJCQkJCQkgKF9fbW1hc2s4KSBfX00pOwot K30KLSsKLStleHRlcm4gX19pbmxpbmUgX19tbWFzazgKLSsgIF9fYXR0cmlidXRlX18gKChfX2du dV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLStfbW1fY21w bHRfZXBpMzJfbWFzayAoX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQotK3sKLSsgIHJldHVybiAo X19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX2NtcGQxMjhfbWFzayAoKF9fdjRzaSkgX19YLAotKwkJ CQkJCSAoX192NHNpKSBfX1ksIDEsCi0rCQkJCQkJIChfX21tYXNrOCkgLTEpOwotK30KLSsKLStl eHRlcm4gX19pbmxpbmUgX19tbWFzazgKLSsgIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVf XywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLStfbW1fbWFza19jbXBnZV9l cGkzMl9tYXNrIChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKLSt7Ci0r ICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl9jbXBkMTI4X21hc2sgKChfX3Y0c2kp IF9fWCwKLSsJCQkJCQkgKF9fdjRzaSkgX19ZLCA1LAotKwkJCQkJCSAoX19tbWFzazgpIF9fTSk7 Ci0rfQotKwotK2V4dGVybiBfX2lubGluZSBfX21tYXNrOAotKyAgX19hdHRyaWJ1dGVfXyAoKF9f Z251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotK19tbV9j bXBnZV9lcGkzMl9tYXNrIChfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCi0rewotKyAgcmV0dXJu IChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfY21wZDEyOF9tYXNrICgoX192NHNpKSBfX1gsCi0r CQkJCQkJIChfX3Y0c2kpIF9fWSwgNSwKLSsJCQkJCQkgKF9fbW1hc2s4KSAtMSk7Ci0rfQotKwot K2V4dGVybiBfX2lubGluZSBfX21tYXNrOAotKyAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGlu ZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotK19tbV9tYXNrX2NtcGxl X2VwaTMyX21hc2sgKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQotK3sK LSsgIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX2NtcGQxMjhfbWFzayAoKF9fdjRz aSkgX19YLAotKwkJCQkJCSAoX192NHNpKSBfX1ksIDIsCi0rCQkJCQkJIChfX21tYXNrOCkgX19N KTsKLSt9Ci0rCi0rZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0rICBfX2F0dHJpYnV0ZV9fICgo X19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0rX21t X2NtcGxlX2VwaTMyX21hc2sgKF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKLSt7Ci0rICByZXR1 cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl9jbXBkMTI4X21hc2sgKChfX3Y0c2kpIF9fWCwK LSsJCQkJCQkgKF9fdjRzaSkgX19ZLCAyLAotKwkJCQkJCSAoX19tbWFzazgpIC0xKTsKLSt9Ci0r Ci0rZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0rICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5s aW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0rX21tX21hc2tfY21w bmVxX2VwaTY0X21hc2sgKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQot K3sKLSsgIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX2NtcHExMjhfbWFzayAoKF9f djJkaSkgX19YLAotKwkJCQkJCSAoX192MmRpKSBfX1ksIDQsCi0rCQkJCQkJIChfX21tYXNrOCkg X19NKTsKLSt9Ci0rCi0rZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0rICBfX2F0dHJpYnV0ZV9f ICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0r X21tX2NtcG5lcV9lcGk2NF9tYXNrIChfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCi0rewotKyAg cmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfY21wcTEyOF9tYXNrICgoX192MmRpKSBf X1gsCi0rCQkJCQkJIChfX3YyZGkpIF9fWSwgNCwKLSsJCQkJCQkgKF9fbW1hc2s4KSAtMSk7Ci0r fQotKwotK2V4dGVybiBfX2lubGluZSBfX21tYXNrOAotKyAgX19hdHRyaWJ1dGVfXyAoKF9fZ251 X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotK19tbV9tYXNr X2NtcGx0X2VwaTY0X21hc2sgKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19Z KQotK3sKLSsgIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX2NtcHExMjhfbWFzayAo KF9fdjJkaSkgX19YLAotKwkJCQkJCSAoX192MmRpKSBfX1ksIDEsCi0rCQkJCQkJIChfX21tYXNr OCkgX19NKTsKLSt9Ci0rCi0rZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0rICBfX2F0dHJpYnV0 ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp Ci0rX21tX2NtcGx0X2VwaTY0X21hc2sgKF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKLSt7Ci0r ICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl9jbXBxMTI4X21hc2sgKChfX3YyZGkp IF9fWCwKLSsJCQkJCQkgKF9fdjJkaSkgX19ZLCAxLAotKwkJCQkJCSAoX19tbWFzazgpIC0xKTsK LSt9Ci0rCi0rZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0rICBfX2F0dHJpYnV0ZV9fICgoX19n bnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0rX21tX21h c2tfY21wZ2VfZXBpNjRfbWFzayAoX19tbWFzazggX19NLCBfX20xMjhpIF9fWCwgX19tMTI4aSBf X1kpCi0rewotKyAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfY21wcTEyOF9tYXNr ICgoX192MmRpKSBfX1gsCi0rCQkJCQkJIChfX3YyZGkpIF9fWSwgNSwKLSsJCQkJCQkgKF9fbW1h c2s4KSBfX00pOwotK30KLSsKLStleHRlcm4gX19pbmxpbmUgX19tbWFzazgKLSsgIF9fYXR0cmli dXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f KSkKLStfbW1fY21wZ2VfZXBpNjRfbWFzayAoX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQotK3sK LSsgIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX2NtcHExMjhfbWFzayAoKF9fdjJk aSkgX19YLAotKwkJCQkJCSAoX192MmRpKSBfX1ksIDUsCi0rCQkJCQkJIChfX21tYXNrOCkgLTEp OwotK30KLSsKLStleHRlcm4gX19pbmxpbmUgX19tbWFzazgKLSsgIF9fYXR0cmlidXRlX18gKChf X2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLStfbW1f bWFza19jbXBsZV9lcGk2NF9tYXNrIChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19YLCBfX20xMjhp IF9fWSkKLSt7Ci0rICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl9jbXBxMTI4X21h c2sgKChfX3YyZGkpIF9fWCwKLSsJCQkJCQkgKF9fdjJkaSkgX19ZLCAyLAotKwkJCQkJCSAoX19t bWFzazgpIF9fTSk7Ci0rfQotKwotK2V4dGVybiBfX2lubGluZSBfX21tYXNrOAotKyAgX19hdHRy aWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFs X18pKQotK19tbV9jbXBsZV9lcGk2NF9tYXNrIChfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCi0r ewotKyAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfY21wcTEyOF9tYXNrICgoX192 MmRpKSBfX1gsCi0rCQkJCQkJIChfX3YyZGkpIF9fWSwgMiwKLSsJCQkJCQkgKF9fbW1hc2s4KSAt MSk7Ci0rfQotKwotICNpZmRlZiBfX09QVElNSVpFX18KLSBleHRlcm4gX19pbmxpbmUgX19tMjU2 aQotIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9f YXJ0aWZpY2lhbF9fKSkKLUBAIC0xMTc4NCw1ODIgKzEyMzYwLDYgQEAgX21tMjU2X3Blcm11dGV4 X3BkIChfX20yNTZkIF9fWCwgY29uc3QgaQotIAkJCQkJCSAgKF9fbW1hc2s4KSAtMSk7Ci0gfQot IAotLWV4dGVybiBfX2lubGluZSBfX21tYXNrOAotLSAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lu bGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotLV9tbTI1Nl9tYXNr X2NtcG5lcV9lcHUzMl9tYXNrIChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19YLCBfX20yNTZpIF9f WSkKLS17Ci0tICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl91Y21wZDI1Nl9tYXNr ICgoX192OHNpKSBfX1gsCi0tCQkJCQkJICAoX192OHNpKSBfX1ksIDQsCi0tCQkJCQkJICAoX19t bWFzazgpIF9fTSk7Ci0tfQotLQotLWV4dGVybiBfX2lubGluZSBfX21tYXNrOAotLSAgX19hdHRy aWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFs X18pKQotLV9tbTI1Nl9jbXBuZXFfZXB1MzJfbWFzayAoX19tMjU2aSBfX1gsIF9fbTI1NmkgX19Z KQotLXsKLS0gIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX3VjbXBkMjU2X21hc2sg KChfX3Y4c2kpIF9fWCwKLS0JCQkJCQkgIChfX3Y4c2kpIF9fWSwgNCwKLS0JCQkJCQkgIChfX21t YXNrOCkgLTEpOwotLX0KLS0KLS1leHRlcm4gX19pbmxpbmUgX19tbWFzazgKLS0gIF9fYXR0cmli dXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f KSkKLS1fbW0yNTZfbWFza19jbXBsdF9lcHUzMl9tYXNrIChfX21tYXNrOCBfX00sIF9fbTI1Nmkg X19YLCBfX20yNTZpIF9fWSkKLS17Ci0tICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEz Ml91Y21wZDI1Nl9tYXNrICgoX192OHNpKSBfX1gsCi0tCQkJCQkJICAoX192OHNpKSBfX1ksIDEs Ci0tCQkJCQkJICAoX19tbWFzazgpIF9fTSk7Ci0tfQotLQotLWV4dGVybiBfX2lubGluZSBfX21t YXNrOAotLSAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVf XywgX19hcnRpZmljaWFsX18pKQotLV9tbTI1Nl9jbXBsdF9lcHUzMl9tYXNrIChfX20yNTZpIF9f WCwgX19tMjU2aSBfX1kpCi0tewotLSAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJf dWNtcGQyNTZfbWFzayAoKF9fdjhzaSkgX19YLAotLQkJCQkJCSAgKF9fdjhzaSkgX19ZLCAxLAot LQkJCQkJCSAgKF9fbW1hc2s4KSAtMSk7Ci0tfQotLQotLWV4dGVybiBfX2lubGluZSBfX21tYXNr OAotLSAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywg X19hcnRpZmljaWFsX18pKQotLV9tbTI1Nl9tYXNrX2NtcGdlX2VwdTMyX21hc2sgKF9fbW1hc2s4 IF9fTSwgX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQotLXsKLS0gIHJldHVybiAoX19tbWFzazgp IF9fYnVpbHRpbl9pYTMyX3VjbXBkMjU2X21hc2sgKChfX3Y4c2kpIF9fWCwKLS0JCQkJCQkgIChf X3Y4c2kpIF9fWSwgNSwKLS0JCQkJCQkgIChfX21tYXNrOCkgX19NKTsKLS19Ci0tCi0tZXh0ZXJu IF9faW5saW5lIF9fbW1hc2s4Ci0tICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9f YWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0tX21tMjU2X2NtcGdlX2VwdTMyX21h c2sgKF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKLS17Ci0tICByZXR1cm4gKF9fbW1hc2s4KSBf X2J1aWx0aW5faWEzMl91Y21wZDI1Nl9tYXNrICgoX192OHNpKSBfX1gsCi0tCQkJCQkJICAoX192 OHNpKSBfX1ksIDUsCi0tCQkJCQkJICAoX19tbWFzazgpIC0xKTsKLS19Ci0tCi0tZXh0ZXJuIF9f aW5saW5lIF9fbW1hc2s4Ci0tICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3 YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0tX21tMjU2X21hc2tfY21wbGVfZXB1MzJf bWFzayAoX19tbWFzazggX19NLCBfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCi0tewotLSAgcmV0 dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfdWNtcGQyNTZfbWFzayAoKF9fdjhzaSkgX19Y LAotLQkJCQkJCSAgKF9fdjhzaSkgX19ZLCAyLAotLQkJCQkJCSAgKF9fbW1hc2s4KSBfX00pOwot LX0KLS0KLS1leHRlcm4gX19pbmxpbmUgX19tbWFzazgKLS0gIF9fYXR0cmlidXRlX18gKChfX2du dV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLS1fbW0yNTZf Y21wbGVfZXB1MzJfbWFzayAoX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQotLXsKLS0gIHJldHVy biAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX3VjbXBkMjU2X21hc2sgKChfX3Y4c2kpIF9fWCwK LS0JCQkJCQkgIChfX3Y4c2kpIF9fWSwgMiwKLS0JCQkJCQkgIChfX21tYXNrOCkgLTEpOwotLX0K LS0KLS1leHRlcm4gX19pbmxpbmUgX19tbWFzazgKLS0gIF9fYXR0cmlidXRlX18gKChfX2dudV9p bmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLS1fbW0yNTZfbWFz a19jbXBuZXFfZXB1NjRfbWFzayAoX19tbWFzazggX19NLCBfX20yNTZpIF9fWCwgX19tMjU2aSBf X1kpCi0tewotLSAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfdWNtcHEyNTZfbWFz ayAoKF9fdjRkaSkgX19YLAotLQkJCQkJCSAgKF9fdjRkaSkgX19ZLCA0LAotLQkJCQkJCSAgKF9f bW1hc2s4KSBfX00pOwotLX0KLS0KLS1leHRlcm4gX19pbmxpbmUgX19tbWFzazgKLS0gIF9fYXR0 cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lh bF9fKSkKLS1fbW0yNTZfY21wbmVxX2VwdTY0X21hc2sgKF9fbTI1NmkgX19YLCBfX20yNTZpIF9f WSkKLS17Ci0tICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl91Y21wcTI1Nl9tYXNr ICgoX192NGRpKSBfX1gsCi0tCQkJCQkJICAoX192NGRpKSBfX1ksIDQsCi0tCQkJCQkJICAoX19t bWFzazgpIC0xKTsKLS19Ci0tCi0tZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0tICBfX2F0dHJp YnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxf XykpCi0tX21tMjU2X21hc2tfY21wbHRfZXB1NjRfbWFzayAoX19tbWFzazggX19NLCBfX20yNTZp IF9fWCwgX19tMjU2aSBfX1kpCi0tewotLSAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lh MzJfdWNtcHEyNTZfbWFzayAoKF9fdjRkaSkgX19YLAotLQkJCQkJCSAgKF9fdjRkaSkgX19ZLCAx LAotLQkJCQkJCSAgKF9fbW1hc2s4KSBfX00pOwotLX0KLS0KLS1leHRlcm4gX19pbmxpbmUgX19t bWFzazgKLS0gIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5l X18sIF9fYXJ0aWZpY2lhbF9fKSkKLS1fbW0yNTZfY21wbHRfZXB1NjRfbWFzayAoX19tMjU2aSBf X1gsIF9fbTI1NmkgX19ZKQotLXsKLS0gIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMy X3VjbXBxMjU2X21hc2sgKChfX3Y0ZGkpIF9fWCwKLS0JCQkJCQkgIChfX3Y0ZGkpIF9fWSwgMSwK LS0JCQkJCQkgIChfX21tYXNrOCkgLTEpOwotLX0KLS0KLS1leHRlcm4gX19pbmxpbmUgX19tbWFz azgKLS0gIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18s IF9fYXJ0aWZpY2lhbF9fKSkKLS1fbW0yNTZfbWFza19jbXBnZV9lcHU2NF9tYXNrIChfX21tYXNr OCBfX00sIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKLS17Ci0tICByZXR1cm4gKF9fbW1hc2s4 KSBfX2J1aWx0aW5faWEzMl91Y21wcTI1Nl9tYXNrICgoX192NGRpKSBfX1gsCi0tCQkJCQkJICAo X192NGRpKSBfX1ksIDUsCi0tCQkJCQkJICAoX19tbWFzazgpIF9fTSk7Ci0tfQotLQotLWV4dGVy biBfX2lubGluZSBfX21tYXNrOAotLSAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBf X2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotLV9tbTI1Nl9jbXBnZV9lcHU2NF9t YXNrIChfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCi0tewotLSAgcmV0dXJuIChfX21tYXNrOCkg X19idWlsdGluX2lhMzJfdWNtcHEyNTZfbWFzayAoKF9fdjRkaSkgX19YLAotLQkJCQkJCSAgKF9f djRkaSkgX19ZLCA1LAotLQkJCQkJCSAgKF9fbW1hc2s4KSAtMSk7Ci0tfQotLQotLWV4dGVybiBf X2lubGluZSBfX21tYXNrOAotLSAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fs d2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotLV9tbTI1Nl9tYXNrX2NtcGxlX2VwdTY0 X21hc2sgKF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQotLXsKLS0gIHJl dHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX3VjbXBxMjU2X21hc2sgKChfX3Y0ZGkpIF9f WCwKLS0JCQkJCQkgIChfX3Y0ZGkpIF9fWSwgMiwKLS0JCQkJCQkgIChfX21tYXNrOCkgX19NKTsK LS19Ci0tCi0tZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0tICBfX2F0dHJpYnV0ZV9fICgoX19n bnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0tX21tMjU2 X2NtcGxlX2VwdTY0X21hc2sgKF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKLS17Ci0tICByZXR1 cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl91Y21wcTI1Nl9tYXNrICgoX192NGRpKSBfX1gs Ci0tCQkJCQkJICAoX192NGRpKSBfX1ksIDIsCi0tCQkJCQkJICAoX19tbWFzazgpIC0xKTsKLS19 Ci0tCi0tZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0tICBfX2F0dHJpYnV0ZV9fICgoX19nbnVf aW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0tX21tMjU2X21h c2tfY21wbmVxX2VwaTMyX21hc2sgKF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX1gsIF9fbTI1Nmkg X19ZKQotLXsKLS0gIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX2NtcGQyNTZfbWFz ayAoKF9fdjhzaSkgX19YLAotLQkJCQkJCSAoX192OHNpKSBfX1ksIDQsCi0tCQkJCQkJIChfX21t YXNrOCkgX19NKTsKLS19Ci0tCi0tZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0tICBfX2F0dHJp YnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxf XykpCi0tX21tMjU2X2NtcG5lcV9lcGkzMl9tYXNrIChfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kp Ci0tewotLSAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfY21wZDI1Nl9tYXNrICgo X192OHNpKSBfX1gsCi0tCQkJCQkJIChfX3Y4c2kpIF9fWSwgNCwKLS0JCQkJCQkgKF9fbW1hc2s4 KSAtMSk7Ci0tfQotLQotLWV4dGVybiBfX2lubGluZSBfX21tYXNrOAotLSAgX19hdHRyaWJ1dGVf XyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQot LV9tbTI1Nl9tYXNrX2NtcGx0X2VwaTMyX21hc2sgKF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX1gs IF9fbTI1NmkgX19ZKQotLXsKLS0gIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX2Nt cGQyNTZfbWFzayAoKF9fdjhzaSkgX19YLAotLQkJCQkJCSAoX192OHNpKSBfX1ksIDEsCi0tCQkJ CQkJIChfX21tYXNrOCkgX19NKTsKLS19Ci0tCi0tZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0t ICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2Fy dGlmaWNpYWxfXykpCi0tX21tMjU2X2NtcGx0X2VwaTMyX21hc2sgKF9fbTI1NmkgX19YLCBfX20y NTZpIF9fWSkKLS17Ci0tICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl9jbXBkMjU2 X21hc2sgKChfX3Y4c2kpIF9fWCwKLS0JCQkJCQkgKF9fdjhzaSkgX19ZLCAxLAotLQkJCQkJCSAo X19tbWFzazgpIC0xKTsKLS19Ci0tCi0tZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0tICBfX2F0 dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNp YWxfXykpCi0tX21tMjU2X21hc2tfY21wZ2VfZXBpMzJfbWFzayAoX19tbWFzazggX19NLCBfX20y NTZpIF9fWCwgX19tMjU2aSBfX1kpCi0tewotLSAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGlu X2lhMzJfY21wZDI1Nl9tYXNrICgoX192OHNpKSBfX1gsCi0tCQkJCQkJIChfX3Y4c2kpIF9fWSwg NSwKLS0JCQkJCQkgKF9fbW1hc2s4KSBfX00pOwotLX0KLS0KLS1leHRlcm4gX19pbmxpbmUgX19t bWFzazgKLS0gIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5l X18sIF9fYXJ0aWZpY2lhbF9fKSkKLS1fbW0yNTZfY21wZ2VfZXBpMzJfbWFzayAoX19tMjU2aSBf X1gsIF9fbTI1NmkgX19ZKQotLXsKLS0gIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMy X2NtcGQyNTZfbWFzayAoKF9fdjhzaSkgX19YLAotLQkJCQkJCSAoX192OHNpKSBfX1ksIDUsCi0t CQkJCQkJIChfX21tYXNrOCkgLTEpOwotLX0KLS0KLS1leHRlcm4gX19pbmxpbmUgX19tbWFzazgK LS0gIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9f YXJ0aWZpY2lhbF9fKSkKLS1fbW0yNTZfbWFza19jbXBsZV9lcGkzMl9tYXNrIChfX21tYXNrOCBf X00sIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKLS17Ci0tICByZXR1cm4gKF9fbW1hc2s4KSBf X2J1aWx0aW5faWEzMl9jbXBkMjU2X21hc2sgKChfX3Y4c2kpIF9fWCwKLS0JCQkJCQkgKF9fdjhz aSkgX19ZLCAyLAotLQkJCQkJCSAoX19tbWFzazgpIF9fTSk7Ci0tfQotLQotLWV4dGVybiBfX2lu bGluZSBfX21tYXNrOAotLSAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5 c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotLV9tbTI1Nl9jbXBsZV9lcGkzMl9tYXNrIChf X20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCi0tewotLSAgcmV0dXJuIChfX21tYXNrOCkgX19idWls dGluX2lhMzJfY21wZDI1Nl9tYXNrICgoX192OHNpKSBfX1gsCi0tCQkJCQkJIChfX3Y4c2kpIF9f WSwgMiwKLS0JCQkJCQkgKF9fbW1hc2s4KSAtMSk7Ci0tfQotLQotLWV4dGVybiBfX2lubGluZSBf X21tYXNrOAotLSAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxp bmVfXywgX19hcnRpZmljaWFsX18pKQotLV9tbTI1Nl9tYXNrX2NtcG5lcV9lcGk2NF9tYXNrIChf X21tYXNrOCBfX00sIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKLS17Ci0tICByZXR1cm4gKF9f bW1hc2s4KSBfX2J1aWx0aW5faWEzMl9jbXBxMjU2X21hc2sgKChfX3Y0ZGkpIF9fWCwKLS0JCQkJ CQkgKF9fdjRkaSkgX19ZLCA0LAotLQkJCQkJCSAoX19tbWFzazgpIF9fTSk7Ci0tfQotLQotLWV4 dGVybiBfX2lubGluZSBfX21tYXNrOAotLSAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9f LCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotLV9tbTI1Nl9jbXBuZXFfZXBp NjRfbWFzayAoX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQotLXsKLS0gIHJldHVybiAoX19tbWFz azgpIF9fYnVpbHRpbl9pYTMyX2NtcHEyNTZfbWFzayAoKF9fdjRkaSkgX19YLAotLQkJCQkJCSAo X192NGRpKSBfX1ksIDQsCi0tCQkJCQkJIChfX21tYXNrOCkgLTEpOwotLX0KLS0KLS1leHRlcm4g X19pbmxpbmUgX19tbWFzazgKLS0gIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19h bHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLS1fbW0yNTZfbWFza19jbXBsdF9lcGk2 NF9tYXNrIChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKLS17Ci0tICBy ZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl9jbXBxMjU2X21hc2sgKChfX3Y0ZGkpIF9f WCwKLS0JCQkJCQkgKF9fdjRkaSkgX19ZLCAxLAotLQkJCQkJCSAoX19tbWFzazgpIF9fTSk7Ci0t fQotLQotLWV4dGVybiBfX2lubGluZSBfX21tYXNrOAotLSAgX19hdHRyaWJ1dGVfXyAoKF9fZ251 X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotLV9tbTI1Nl9j bXBsdF9lcGk2NF9tYXNrIChfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCi0tewotLSAgcmV0dXJu IChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfY21wcTI1Nl9tYXNrICgoX192NGRpKSBfX1gsCi0t CQkJCQkJIChfX3Y0ZGkpIF9fWSwgMSwKLS0JCQkJCQkgKF9fbW1hc2s4KSAtMSk7Ci0tfQotLQot LWV4dGVybiBfX2lubGluZSBfX21tYXNrOAotLSAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGlu ZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotLV9tbTI1Nl9tYXNrX2Nt cGdlX2VwaTY0X21hc2sgKF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQot LXsKLS0gIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX2NtcHEyNTZfbWFzayAoKF9f djRkaSkgX19YLAotLQkJCQkJCSAoX192NGRpKSBfX1ksIDUsCi0tCQkJCQkJIChfX21tYXNrOCkg X19NKTsKLS19Ci0tCi0tZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0tICBfX2F0dHJpYnV0ZV9f ICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0t X21tMjU2X2NtcGdlX2VwaTY0X21hc2sgKF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKLS17Ci0t ICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl9jbXBxMjU2X21hc2sgKChfX3Y0ZGkp IF9fWCwKLS0JCQkJCQkgKF9fdjRkaSkgX19ZLCA1LAotLQkJCQkJCSAoX19tbWFzazgpIC0xKTsK LS19Ci0tCi0tZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0tICBfX2F0dHJpYnV0ZV9fICgoX19n bnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0tX21tMjU2 X21hc2tfY21wbGVfZXBpNjRfbWFzayAoX19tbWFzazggX19NLCBfX20yNTZpIF9fWCwgX19tMjU2 aSBfX1kpCi0tewotLSAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfY21wcTI1Nl9t YXNrICgoX192NGRpKSBfX1gsCi0tCQkJCQkJIChfX3Y0ZGkpIF9fWSwgMiwKLS0JCQkJCQkgKF9f bW1hc2s4KSBfX00pOwotLX0KLS0KLS1leHRlcm4gX19pbmxpbmUgX19tbWFzazgKLS0gIF9fYXR0 cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lh bF9fKSkKLS1fbW0yNTZfY21wbGVfZXBpNjRfbWFzayAoX19tMjU2aSBfX1gsIF9fbTI1NmkgX19Z KQotLXsKLS0gIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX2NtcHEyNTZfbWFzayAo KF9fdjRkaSkgX19YLAotLQkJCQkJCSAoX192NGRpKSBfX1ksIDIsCi0tCQkJCQkJIChfX21tYXNr OCkgLTEpOwotLX0KLS0KLS1leHRlcm4gX19pbmxpbmUgX19tbWFzazgKLS0gIF9fYXR0cmlidXRl X18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkK LS1fbW1fbWFza19jbXBuZXFfZXB1MzJfbWFzayAoX19tbWFzazggX19NLCBfX20xMjhpIF9fWCwg X19tMTI4aSBfX1kpCi0tewotLSAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfdWNt cGQxMjhfbWFzayAoKF9fdjRzaSkgX19YLAotLQkJCQkJCSAgKF9fdjRzaSkgX19ZLCA0LAotLQkJ CQkJCSAgKF9fbW1hc2s4KSBfX00pOwotLX0KLS0KLS1leHRlcm4gX19pbmxpbmUgX19tbWFzazgK LS0gIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9f YXJ0aWZpY2lhbF9fKSkKLS1fbW1fY21wbmVxX2VwdTMyX21hc2sgKF9fbTEyOGkgX19YLCBfX20x MjhpIF9fWSkKLS17Ci0tICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl91Y21wZDEy OF9tYXNrICgoX192NHNpKSBfX1gsCi0tCQkJCQkJICAoX192NHNpKSBfX1ksIDQsCi0tCQkJCQkJ ICAoX19tbWFzazgpIC0xKTsKLS19Ci0tCi0tZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0tICBf X2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlm aWNpYWxfXykpCi0tX21tX21hc2tfY21wbHRfZXB1MzJfbWFzayAoX19tbWFzazggX19NLCBfX20x MjhpIF9fWCwgX19tMTI4aSBfX1kpCi0tewotLSAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGlu X2lhMzJfdWNtcGQxMjhfbWFzayAoKF9fdjRzaSkgX19YLAotLQkJCQkJCSAgKF9fdjRzaSkgX19Z LCAxLAotLQkJCQkJCSAgKF9fbW1hc2s4KSBfX00pOwotLX0KLS0KLS1leHRlcm4gX19pbmxpbmUg X19tbWFzazgKLS0gIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5s aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLS1fbW1fY21wbHRfZXB1MzJfbWFzayAoX19tMTI4aSBf X1gsIF9fbTEyOGkgX19ZKQotLXsKLS0gIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMy X3VjbXBkMTI4X21hc2sgKChfX3Y0c2kpIF9fWCwKLS0JCQkJCQkgIChfX3Y0c2kpIF9fWSwgMSwK LS0JCQkJCQkgIChfX21tYXNrOCkgLTEpOwotLX0KLS0KLS1leHRlcm4gX19pbmxpbmUgX19tbWFz azgKLS0gIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18s IF9fYXJ0aWZpY2lhbF9fKSkKLS1fbW1fbWFza19jbXBnZV9lcHUzMl9tYXNrIChfX21tYXNrOCBf X00sIF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKLS17Ci0tICByZXR1cm4gKF9fbW1hc2s4KSBf X2J1aWx0aW5faWEzMl91Y21wZDEyOF9tYXNrICgoX192NHNpKSBfX1gsCi0tCQkJCQkJICAoX192 NHNpKSBfX1ksIDUsCi0tCQkJCQkJICAoX19tbWFzazgpIF9fTSk7Ci0tfQotLQotLWV4dGVybiBf X2lubGluZSBfX21tYXNrOAotLSAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fs d2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotLV9tbV9jbXBnZV9lcHUzMl9tYXNrIChf X20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCi0tewotLSAgcmV0dXJuIChfX21tYXNrOCkgX19idWls dGluX2lhMzJfdWNtcGQxMjhfbWFzayAoKF9fdjRzaSkgX19YLAotLQkJCQkJCSAgKF9fdjRzaSkg X19ZLCA1LAotLQkJCQkJCSAgKF9fbW1hc2s4KSAtMSk7Ci0tfQotLQotLWV4dGVybiBfX2lubGlu ZSBfX21tYXNrOAotLSAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19p bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotLV9tbV9tYXNrX2NtcGxlX2VwdTMyX21hc2sgKF9f bW1hc2s4IF9fTSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQotLXsKLS0gIHJldHVybiAoX19t bWFzazgpIF9fYnVpbHRpbl9pYTMyX3VjbXBkMTI4X21hc2sgKChfX3Y0c2kpIF9fWCwKLS0JCQkJ CQkgIChfX3Y0c2kpIF9fWSwgMiwKLS0JCQkJCQkgIChfX21tYXNrOCkgX19NKTsKLS19Ci0tCi0t ZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0tICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5l X18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0tX21tX2NtcGxlX2VwdTMy X21hc2sgKF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKLS17Ci0tICByZXR1cm4gKF9fbW1hc2s4 KSBfX2J1aWx0aW5faWEzMl91Y21wZDEyOF9tYXNrICgoX192NHNpKSBfX1gsCi0tCQkJCQkJICAo X192NHNpKSBfX1ksIDIsCi0tCQkJCQkJICAoX19tbWFzazgpIC0xKTsKLS19Ci0tCi0tZXh0ZXJu IF9faW5saW5lIF9fbW1hc2s4Ci0tICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9f YWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0tX21tX21hc2tfY21wbmVxX2VwdTY0 X21hc2sgKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQotLXsKLS0gIHJl dHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX3VjbXBxMTI4X21hc2sgKChfX3YyZGkpIF9f WCwKLS0JCQkJCQkgIChfX3YyZGkpIF9fWSwgNCwKLS0JCQkJCQkgIChfX21tYXNrOCkgX19NKTsK LS19Ci0tCi0tZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0tICBfX2F0dHJpYnV0ZV9fICgoX19n bnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0tX21tX2Nt cG5lcV9lcHU2NF9tYXNrIChfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCi0tewotLSAgcmV0dXJu IChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfdWNtcHExMjhfbWFzayAoKF9fdjJkaSkgX19YLAot LQkJCQkJCSAgKF9fdjJkaSkgX19ZLCA0LAotLQkJCQkJCSAgKF9fbW1hc2s4KSAtMSk7Ci0tfQot LQotLWV4dGVybiBfX2lubGluZSBfX21tYXNrOAotLSAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lu bGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotLV9tbV9tYXNrX2Nt cGx0X2VwdTY0X21hc2sgKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQot LXsKLS0gIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX3VjbXBxMTI4X21hc2sgKChf X3YyZGkpIF9fWCwKLS0JCQkJCQkgIChfX3YyZGkpIF9fWSwgMSwKLS0JCQkJCQkgIChfX21tYXNr OCkgX19NKTsKLS19Ci0tCi0tZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0tICBfX2F0dHJpYnV0 ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp Ci0tX21tX2NtcGx0X2VwdTY0X21hc2sgKF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKLS17Ci0t ICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl91Y21wcTEyOF9tYXNrICgoX192MmRp KSBfX1gsCi0tCQkJCQkJICAoX192MmRpKSBfX1ksIDEsCi0tCQkJCQkJICAoX19tbWFzazgpIC0x KTsKLS19Ci0tCi0tZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0tICBfX2F0dHJpYnV0ZV9fICgo X19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0tX21t X21hc2tfY21wZ2VfZXB1NjRfbWFzayAoX19tbWFzazggX19NLCBfX20xMjhpIF9fWCwgX19tMTI4 aSBfX1kpCi0tewotLSAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfdWNtcHExMjhf bWFzayAoKF9fdjJkaSkgX19YLAotLQkJCQkJCSAgKF9fdjJkaSkgX19ZLCA1LAotLQkJCQkJCSAg KF9fbW1hc2s4KSBfX00pOwotLX0KLS0KLS1leHRlcm4gX19pbmxpbmUgX19tbWFzazgKLS0gIF9f YXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZp Y2lhbF9fKSkKLS1fbW1fY21wZ2VfZXB1NjRfbWFzayAoX19tMTI4aSBfX1gsIF9fbTEyOGkgX19Z KQotLXsKLS0gIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX3VjbXBxMTI4X21hc2sg KChfX3YyZGkpIF9fWCwKLS0JCQkJCQkgIChfX3YyZGkpIF9fWSwgNSwKLS0JCQkJCQkgIChfX21t YXNrOCkgLTEpOwotLX0KLS0KLS1leHRlcm4gX19pbmxpbmUgX19tbWFzazgKLS0gIF9fYXR0cmli dXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f KSkKLS1fbW1fbWFza19jbXBsZV9lcHU2NF9tYXNrIChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19Y LCBfX20xMjhpIF9fWSkKLS17Ci0tICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl91 Y21wcTEyOF9tYXNrICgoX192MmRpKSBfX1gsCi0tCQkJCQkJICAoX192MmRpKSBfX1ksIDIsCi0t CQkJCQkJICAoX19tbWFzazgpIF9fTSk7Ci0tfQotLQotLWV4dGVybiBfX2lubGluZSBfX21tYXNr OAotLSAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywg X19hcnRpZmljaWFsX18pKQotLV9tbV9jbXBsZV9lcHU2NF9tYXNrIChfX20xMjhpIF9fWCwgX19t MTI4aSBfX1kpCi0tewotLSAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfdWNtcHEx MjhfbWFzayAoKF9fdjJkaSkgX19YLAotLQkJCQkJCSAgKF9fdjJkaSkgX19ZLCAyLAotLQkJCQkJ CSAgKF9fbW1hc2s4KSAtMSk7Ci0tfQotLQotLWV4dGVybiBfX2lubGluZSBfX21tYXNrOAotLSAg X19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRp ZmljaWFsX18pKQotLV9tbV9tYXNrX2NtcG5lcV9lcGkzMl9tYXNrIChfX21tYXNrOCBfX00sIF9f bTEyOGkgX19YLCBfX20xMjhpIF9fWSkKLS17Ci0tICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0 aW5faWEzMl9jbXBkMTI4X21hc2sgKChfX3Y0c2kpIF9fWCwKLS0JCQkJCQkgKF9fdjRzaSkgX19Z LCA0LAotLQkJCQkJCSAoX19tbWFzazgpIF9fTSk7Ci0tfQotLQotLWV4dGVybiBfX2lubGluZSBf X21tYXNrOAotLSAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxp bmVfXywgX19hcnRpZmljaWFsX18pKQotLV9tbV9jbXBuZXFfZXBpMzJfbWFzayAoX19tMTI4aSBf X1gsIF9fbTEyOGkgX19ZKQotLXsKLS0gIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMy X2NtcGQxMjhfbWFzayAoKF9fdjRzaSkgX19YLAotLQkJCQkJCSAoX192NHNpKSBfX1ksIDQsCi0t CQkJCQkJIChfX21tYXNrOCkgLTEpOwotLX0KLS0KLS1leHRlcm4gX19pbmxpbmUgX19tbWFzazgK LS0gIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9f YXJ0aWZpY2lhbF9fKSkKLS1fbW1fbWFza19jbXBsdF9lcGkzMl9tYXNrIChfX21tYXNrOCBfX00s IF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKLS17Ci0tICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1 aWx0aW5faWEzMl9jbXBkMTI4X21hc2sgKChfX3Y0c2kpIF9fWCwKLS0JCQkJCQkgKF9fdjRzaSkg X19ZLCAxLAotLQkJCQkJCSAoX19tbWFzazgpIF9fTSk7Ci0tfQotLQotLWV4dGVybiBfX2lubGlu ZSBfX21tYXNrOAotLSAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19p bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotLV9tbV9jbXBsdF9lcGkzMl9tYXNrIChfX20xMjhp IF9fWCwgX19tMTI4aSBfX1kpCi0tewotLSAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lh MzJfY21wZDEyOF9tYXNrICgoX192NHNpKSBfX1gsCi0tCQkJCQkJIChfX3Y0c2kpIF9fWSwgMSwK LS0JCQkJCQkgKF9fbW1hc2s4KSAtMSk7Ci0tfQotLQotLWV4dGVybiBfX2lubGluZSBfX21tYXNr OAotLSAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywg X19hcnRpZmljaWFsX18pKQotLV9tbV9tYXNrX2NtcGdlX2VwaTMyX21hc2sgKF9fbW1hc2s4IF9f TSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQotLXsKLS0gIHJldHVybiAoX19tbWFzazgpIF9f YnVpbHRpbl9pYTMyX2NtcGQxMjhfbWFzayAoKF9fdjRzaSkgX19YLAotLQkJCQkJCSAoX192NHNp KSBfX1ksIDUsCi0tCQkJCQkJIChfX21tYXNrOCkgX19NKTsKLS19Ci0tCi0tZXh0ZXJuIF9faW5s aW5lIF9fbW1hc2s4Ci0tICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlz X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0tX21tX2NtcGdlX2VwaTMyX21hc2sgKF9fbTEy OGkgX19YLCBfX20xMjhpIF9fWSkKLS17Ci0tICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5f aWEzMl9jbXBkMTI4X21hc2sgKChfX3Y0c2kpIF9fWCwKLS0JCQkJCQkgKF9fdjRzaSkgX19ZLCA1 LAotLQkJCQkJCSAoX19tbWFzazgpIC0xKTsKLS19Ci0tCi0tZXh0ZXJuIF9faW5saW5lIF9fbW1h c2s4Ci0tICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9f LCBfX2FydGlmaWNpYWxfXykpCi0tX21tX21hc2tfY21wbGVfZXBpMzJfbWFzayAoX19tbWFzazgg X19NLCBfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCi0tewotLSAgcmV0dXJuIChfX21tYXNrOCkg X19idWlsdGluX2lhMzJfY21wZDEyOF9tYXNrICgoX192NHNpKSBfX1gsCi0tCQkJCQkJIChfX3Y0 c2kpIF9fWSwgMiwKLS0JCQkJCQkgKF9fbW1hc2s4KSBfX00pOwotLX0KLS0KLS1leHRlcm4gX19p bmxpbmUgX19tbWFzazgKLS0gIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdh eXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLS1fbW1fY21wbGVfZXBpMzJfbWFzayAoX19t MTI4aSBfX1gsIF9fbTEyOGkgX19ZKQotLXsKLS0gIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRp bl9pYTMyX2NtcGQxMjhfbWFzayAoKF9fdjRzaSkgX19YLAotLQkJCQkJCSAoX192NHNpKSBfX1ks IDIsCi0tCQkJCQkJIChfX21tYXNrOCkgLTEpOwotLX0KLS0KLS1leHRlcm4gX19pbmxpbmUgX19t bWFzazgKLS0gIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5l X18sIF9fYXJ0aWZpY2lhbF9fKSkKLS1fbW1fbWFza19jbXBuZXFfZXBpNjRfbWFzayAoX19tbWFz azggX19NLCBfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCi0tewotLSAgcmV0dXJuIChfX21tYXNr OCkgX19idWlsdGluX2lhMzJfY21wcTEyOF9tYXNrICgoX192MmRpKSBfX1gsCi0tCQkJCQkJIChf X3YyZGkpIF9fWSwgNCwKLS0JCQkJCQkgKF9fbW1hc2s4KSBfX00pOwotLX0KLS0KLS1leHRlcm4g X19pbmxpbmUgX19tbWFzazgKLS0gIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19h bHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLS1fbW1fY21wbmVxX2VwaTY0X21hc2sg KF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKLS17Ci0tICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1 aWx0aW5faWEzMl9jbXBxMTI4X21hc2sgKChfX3YyZGkpIF9fWCwKLS0JCQkJCQkgKF9fdjJkaSkg X19ZLCA0LAotLQkJCQkJCSAoX19tbWFzazgpIC0xKTsKLS19Ci0tCi0tZXh0ZXJuIF9faW5saW5l IF9fbW1hc2s4Ci0tICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lu bGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0tX21tX21hc2tfY21wbHRfZXBpNjRfbWFzayAoX19t bWFzazggX19NLCBfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCi0tewotLSAgcmV0dXJuIChfX21t YXNrOCkgX19idWlsdGluX2lhMzJfY21wcTEyOF9tYXNrICgoX192MmRpKSBfX1gsCi0tCQkJCQkJ IChfX3YyZGkpIF9fWSwgMSwKLS0JCQkJCQkgKF9fbW1hc2s4KSBfX00pOwotLX0KLS0KLS1leHRl cm4gX19pbmxpbmUgX19tbWFzazgKLS0gIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywg X19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLS1fbW1fY21wbHRfZXBpNjRfbWFz ayAoX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQotLXsKLS0gIHJldHVybiAoX19tbWFzazgpIF9f YnVpbHRpbl9pYTMyX2NtcHExMjhfbWFzayAoKF9fdjJkaSkgX19YLAotLQkJCQkJCSAoX192MmRp KSBfX1ksIDEsCi0tCQkJCQkJIChfX21tYXNrOCkgLTEpOwotLX0KLS0KLS1leHRlcm4gX19pbmxp bmUgX19tbWFzazgKLS0gIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNf aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLS1fbW1fbWFza19jbXBnZV9lcGk2NF9tYXNrIChf X21tYXNrOCBfX00sIF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKLS17Ci0tICByZXR1cm4gKF9f bW1hc2s4KSBfX2J1aWx0aW5faWEzMl9jbXBxMTI4X21hc2sgKChfX3YyZGkpIF9fWCwKLS0JCQkJ CQkgKF9fdjJkaSkgX19ZLCA1LAotLQkJCQkJCSAoX19tbWFzazgpIF9fTSk7Ci0tfQotLQotLWV4 dGVybiBfX2lubGluZSBfX21tYXNrOAotLSAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9f LCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotLV9tbV9jbXBnZV9lcGk2NF9t YXNrIChfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCi0tewotLSAgcmV0dXJuIChfX21tYXNrOCkg X19idWlsdGluX2lhMzJfY21wcTEyOF9tYXNrICgoX192MmRpKSBfX1gsCi0tCQkJCQkJIChfX3Yy ZGkpIF9fWSwgNSwKLS0JCQkJCQkgKF9fbW1hc2s4KSAtMSk7Ci0tfQotLQotLWV4dGVybiBfX2lu bGluZSBfX21tYXNrOAotLSAgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5 c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotLV9tbV9tYXNrX2NtcGxlX2VwaTY0X21hc2sg KF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQotLXsKLS0gIHJldHVybiAo X19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX2NtcHExMjhfbWFzayAoKF9fdjJkaSkgX19YLAotLQkJ CQkJCSAoX192MmRpKSBfX1ksIDIsCi0tCQkJCQkJIChfX21tYXNrOCkgX19NKTsKLS19Ci0tCi0t ZXh0ZXJuIF9faW5saW5lIF9fbW1hc2s4Ci0tICBfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5l X18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0tX21tX2NtcGxlX2VwaTY0 X21hc2sgKF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKLS17Ci0tICByZXR1cm4gKF9fbW1hc2s4 KSBfX2J1aWx0aW5faWEzMl9jbXBxMTI4X21hc2sgKChfX3YyZGkpIF9fWCwKLS0JCQkJCQkgKF9f djJkaSkgX19ZLCAyLAotLQkJCQkJCSAoX19tbWFzazgpIC0xKTsKLS19Ci0tCi0gI2Vsc2UKLSAj ZGVmaW5lIF9tbTI1Nl9wZXJtdXRleF9wZChYLCBNKQkJCQkJCVwKLSAgICgoX19tMjU2ZCkgX19i dWlsdGluX2lhMzJfcGVybWRmMjU2X21hc2sgKChfX3Y0ZGYpKF9fbTI1NmQpKFgpLCAoaW50KShN KSwJXAotLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByNzk5MzItMi5jLmpqCTIw MTctMDMtMDcgMDg6Mzc6MTAuODM1OTkwNzMyICswMTAwCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2kzODYvcHI3OTkzMi0yLmMJMjAxNy0wMy0wNyAwODozNjoxMy4wMDAwMDAwMDAgKzAx MDAKLUBAIC0wLDAgKzEsNzggQEAKLSsvKiBQUiB0YXJnZXQvNzk5MzIgKi8KLSsvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLwotKy8qIHsgZGctb3B0aW9ucyAiLU8wIC1tYXZ4NTEydmwiIH0gKi8KLSsK LSsjaW5jbHVkZSA8eDg2aW50cmluLmg+Ci0rCi0rX19tMjU2aSBhLCBiOwotK19fbTEyOGkgYywg ZDsKLStfX21tYXNrMzIgZSwgZls2NF07Ci0rCi0rdm9pZAotK2ZvbyAodm9pZCkKLSt7Ci0rICBm WzBdID0gX21tMjU2X2NtcGdlX2VwaTMyX21hc2sgKGEsIGIpOwotKyAgZlsxXSA9IF9tbTI1Nl9j bXBnZV9lcGk2NF9tYXNrIChhLCBiKTsKLSsgIGZbMl0gPSBfbW0yNTZfY21wZ2VfZXB1MzJfbWFz ayAoYSwgYik7Ci0rICBmWzNdID0gX21tMjU2X2NtcGdlX2VwdTY0X21hc2sgKGEsIGIpOwotKyAg Zls0XSA9IF9tbTI1Nl9jbXBsZV9lcGkzMl9tYXNrIChhLCBiKTsKLSsgIGZbNV0gPSBfbW0yNTZf Y21wbGVfZXBpNjRfbWFzayAoYSwgYik7Ci0rICBmWzZdID0gX21tMjU2X2NtcGxlX2VwdTMyX21h c2sgKGEsIGIpOwotKyAgZls3XSA9IF9tbTI1Nl9jbXBsZV9lcHU2NF9tYXNrIChhLCBiKTsKLSsg IGZbOF0gPSBfbW0yNTZfY21wbHRfZXBpMzJfbWFzayAoYSwgYik7Ci0rICBmWzldID0gX21tMjU2 X2NtcGx0X2VwaTY0X21hc2sgKGEsIGIpOwotKyAgZlsxMF0gPSBfbW0yNTZfY21wbHRfZXB1MzJf bWFzayAoYSwgYik7Ci0rICBmWzExXSA9IF9tbTI1Nl9jbXBsdF9lcHU2NF9tYXNrIChhLCBiKTsK LSsgIGZbMTJdID0gX21tMjU2X2NtcG5lcV9lcGkzMl9tYXNrIChhLCBiKTsKLSsgIGZbMTNdID0g X21tMjU2X2NtcG5lcV9lcGk2NF9tYXNrIChhLCBiKTsKLSsgIGZbMTRdID0gX21tMjU2X2NtcG5l cV9lcHUzMl9tYXNrIChhLCBiKTsKLSsgIGZbMTVdID0gX21tMjU2X2NtcG5lcV9lcHU2NF9tYXNr IChhLCBiKTsKLSsgIGZbMTZdID0gX21tMjU2X21hc2tfY21wZ2VfZXBpMzJfbWFzayAoZSwgYSwg Yik7Ci0rICBmWzE3XSA9IF9tbTI1Nl9tYXNrX2NtcGdlX2VwaTY0X21hc2sgKGUsIGEsIGIpOwot KyAgZlsxOF0gPSBfbW0yNTZfbWFza19jbXBnZV9lcHUzMl9tYXNrIChlLCBhLCBiKTsKLSsgIGZb MTldID0gX21tMjU2X21hc2tfY21wZ2VfZXB1NjRfbWFzayAoZSwgYSwgYik7Ci0rICBmWzIwXSA9 IF9tbTI1Nl9tYXNrX2NtcGxlX2VwaTMyX21hc2sgKGUsIGEsIGIpOwotKyAgZlsyMV0gPSBfbW0y NTZfbWFza19jbXBsZV9lcGk2NF9tYXNrIChlLCBhLCBiKTsKLSsgIGZbMjJdID0gX21tMjU2X21h c2tfY21wbGVfZXB1MzJfbWFzayAoZSwgYSwgYik7Ci0rICBmWzIzXSA9IF9tbTI1Nl9tYXNrX2Nt cGxlX2VwdTY0X21hc2sgKGUsIGEsIGIpOwotKyAgZlsyNF0gPSBfbW0yNTZfbWFza19jbXBsdF9l cGkzMl9tYXNrIChlLCBhLCBiKTsKLSsgIGZbMjVdID0gX21tMjU2X21hc2tfY21wbHRfZXBpNjRf bWFzayAoZSwgYSwgYik7Ci0rICBmWzI2XSA9IF9tbTI1Nl9tYXNrX2NtcGx0X2VwdTMyX21hc2sg KGUsIGEsIGIpOwotKyAgZlsyN10gPSBfbW0yNTZfbWFza19jbXBsdF9lcHU2NF9tYXNrIChlLCBh LCBiKTsKLSsgIGZbMjhdID0gX21tMjU2X21hc2tfY21wbmVxX2VwaTMyX21hc2sgKGUsIGEsIGIp OwotKyAgZlsyOV0gPSBfbW0yNTZfbWFza19jbXBuZXFfZXBpNjRfbWFzayAoZSwgYSwgYik7Ci0r ICBmWzMwXSA9IF9tbTI1Nl9tYXNrX2NtcG5lcV9lcHUzMl9tYXNrIChlLCBhLCBiKTsKLSsgIGZb MzFdID0gX21tMjU2X21hc2tfY21wbmVxX2VwdTY0X21hc2sgKGUsIGEsIGIpOwotKyAgZlszMl0g PSBfbW1fY21wZ2VfZXBpMzJfbWFzayAoYywgZCk7Ci0rICBmWzMzXSA9IF9tbV9jbXBnZV9lcGk2 NF9tYXNrIChjLCBkKTsKLSsgIGZbMzRdID0gX21tX2NtcGdlX2VwdTMyX21hc2sgKGMsIGQpOwot KyAgZlszNV0gPSBfbW1fY21wZ2VfZXB1NjRfbWFzayAoYywgZCk7Ci0rICBmWzM2XSA9IF9tbV9j bXBsZV9lcGkzMl9tYXNrIChjLCBkKTsKLSsgIGZbMzddID0gX21tX2NtcGxlX2VwaTY0X21hc2sg KGMsIGQpOwotKyAgZlszOF0gPSBfbW1fY21wbGVfZXB1MzJfbWFzayAoYywgZCk7Ci0rICBmWzM5 XSA9IF9tbV9jbXBsZV9lcHU2NF9tYXNrIChjLCBkKTsKLSsgIGZbNDBdID0gX21tX2NtcGx0X2Vw aTMyX21hc2sgKGMsIGQpOwotKyAgZls0MV0gPSBfbW1fY21wbHRfZXBpNjRfbWFzayAoYywgZCk7 Ci0rICBmWzQyXSA9IF9tbV9jbXBsdF9lcHUzMl9tYXNrIChjLCBkKTsKLSsgIGZbNDNdID0gX21t X2NtcGx0X2VwdTY0X21hc2sgKGMsIGQpOwotKyAgZls0NF0gPSBfbW1fY21wbmVxX2VwaTMyX21h c2sgKGMsIGQpOwotKyAgZls0NV0gPSBfbW1fY21wbmVxX2VwaTY0X21hc2sgKGMsIGQpOwotKyAg Zls0Nl0gPSBfbW1fY21wbmVxX2VwdTMyX21hc2sgKGMsIGQpOwotKyAgZls0N10gPSBfbW1fY21w bmVxX2VwdTY0X21hc2sgKGMsIGQpOwotKyAgZls0OF0gPSBfbW1fbWFza19jbXBnZV9lcGkzMl9t YXNrIChlLCBjLCBkKTsKLSsgIGZbNDldID0gX21tX21hc2tfY21wZ2VfZXBpNjRfbWFzayAoZSwg YywgZCk7Ci0rICBmWzUwXSA9IF9tbV9tYXNrX2NtcGdlX2VwdTMyX21hc2sgKGUsIGMsIGQpOwot KyAgZls1MV0gPSBfbW1fbWFza19jbXBnZV9lcHU2NF9tYXNrIChlLCBjLCBkKTsKLSsgIGZbNTJd ID0gX21tX21hc2tfY21wbGVfZXBpMzJfbWFzayAoZSwgYywgZCk7Ci0rICBmWzUzXSA9IF9tbV9t YXNrX2NtcGxlX2VwaTY0X21hc2sgKGUsIGMsIGQpOwotKyAgZls1NF0gPSBfbW1fbWFza19jbXBs ZV9lcHUzMl9tYXNrIChlLCBjLCBkKTsKLSsgIGZbNTVdID0gX21tX21hc2tfY21wbGVfZXB1NjRf bWFzayAoZSwgYywgZCk7Ci0rICBmWzU2XSA9IF9tbV9tYXNrX2NtcGx0X2VwaTMyX21hc2sgKGUs IGMsIGQpOwotKyAgZls1N10gPSBfbW1fbWFza19jbXBsdF9lcGk2NF9tYXNrIChlLCBjLCBkKTsK LSsgIGZbNThdID0gX21tX21hc2tfY21wbHRfZXB1MzJfbWFzayAoZSwgYywgZCk7Ci0rICBmWzU5 XSA9IF9tbV9tYXNrX2NtcGx0X2VwdTY0X21hc2sgKGUsIGMsIGQpOwotKyAgZls2MF0gPSBfbW1f bWFza19jbXBuZXFfZXBpMzJfbWFzayAoZSwgYywgZCk7Ci0rICBmWzYxXSA9IF9tbV9tYXNrX2Nt cG5lcV9lcGk2NF9tYXNrIChlLCBjLCBkKTsKLSsgIGZbNjJdID0gX21tX21hc2tfY21wbmVxX2Vw dTMyX21hc2sgKGUsIGMsIGQpOwotKyAgZls2M10gPSBfbW1fbWFza19jbXBuZXFfZXB1NjRfbWFz ayAoZSwgYywgZCk7Ci0rfQoKZGlmZiAtLWdpdCBhL2djYzctcHI3OTk0NC5wYXRjaCBiL2djYzct cHI3OTk0NC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmZjYzgyOS4uMDAw MDAwMAotLS0gYS9nY2M3LXByNzk5NDQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0MDYgKzAs MCBAQAotMjAxNy0wMy0wOCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+Ci0KLQlQ UiBzYW5pdGl6ZXIvNzk5NDQKLQkqIGFzYW4uYyAoZ2V0X21lbV9yZWZzX29mX2J1aWx0aW5fY2Fs bCk6IEZvciBCVUlMVF9JTl9BVE9NSUMqIGFuZAotCUJVSUxUX0lOX1NZTkMqLCBkZXRlcm1pbmUg dGhlIGFjY2VzcyB0eXBlIGZyb20gdGhlIHNpemUgc3VmZml4IGFuZAotCWFsd2F5cyBidWlsZCBh IE1FTV9SRUYgd2l0aCB0aGF0IHR5cGUuICBIYW5kbGUgZm9yZ290dGVuCi0JQlVJTFRfSU5fU1lO Q19GRVRDSF9BTkRfTkFORF8xNiBhbmQgQlVJTFRfSU5fU1lOQ19OQU5EX0FORF9GRVRDSF8xNi4K LQotCSogYy1jKystY29tbW9uL2FzYW4vcHI3OTk0NC5jOiBOZXcgdGVzdC4KLQotLS0tIGdjYy9h c2FuLmMuamoJMjAxNy0wMy0wNiAxMjozMjoyOC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnY2MvYXNh bi5jCTIwMTctMDMtMDggMTI6MjQ6MTEuMTUxMzUzMjI5ICswMTAwCi1AQCAtNjAzLDIxOCArNjAz LDIwOCBAQCBnZXRfbWVtX3JlZnNfb2ZfYnVpbHRpbl9jYWxsIChjb25zdCBnY2FsCi0gICAgIGNh c2UgQlVJTFRfSU5fU1RSTEVOOgotICAgICAgIHNvdXJjZTAgPSBnaW1wbGVfY2FsbF9hcmcgKGNh bGwsIDApOwotICAgICAgIGxlbiA9IGdpbXBsZV9jYWxsX2xocyAoY2FsbCk7Ci0tICAgICAgYnJl YWsgOwotKyAgICAgIGJyZWFrOwotIAotICAgICAvKiBBbmQgbm93IHRoZSBfX2F0b21pYyogYW5k IF9fc3luYyBidWlsdGlucy4KLSAgICAgICAgVGhlc2UgYXJlIGhhbmRsZWQgZGlmZmVyZW50bHkg ZnJvbSB0aGUgY2xhc3NpY2FsIG1lbW9yeSBtZW1vcnkKLSAgICAgICAgYWNjZXNzIGJ1aWx0aW5z IGFib3ZlLiAgKi8KLSAKLSAgICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfTE9BRF8xOgotLSAgICBj YXNlIEJVSUxUX0lOX0FUT01JQ19MT0FEXzI6Ci0tICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX0xP QURfNDoKLS0gICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfTE9BRF84OgotLSAgICBjYXNlIEJVSUxU X0lOX0FUT01JQ19MT0FEXzE2OgotICAgICAgIGlzX3N0b3JlID0gZmFsc2U7Ci0tICAgICAgLyog ZmFsbCB0aHJvdWdoLiAgKi8KLS0KLSsgICAgICAvKiBGQUxMVEhSVSAqLwotICAgICBjYXNlIEJV SUxUX0lOX1NZTkNfRkVUQ0hfQU5EX0FERF8xOgotLSAgICBjYXNlIEJVSUxUX0lOX1NZTkNfRkVU Q0hfQU5EX0FERF8yOgotLSAgICBjYXNlIEJVSUxUX0lOX1NZTkNfRkVUQ0hfQU5EX0FERF80Ogot LSAgICBjYXNlIEJVSUxUX0lOX1NZTkNfRkVUQ0hfQU5EX0FERF84OgotLSAgICBjYXNlIEJVSUxU X0lOX1NZTkNfRkVUQ0hfQU5EX0FERF8xNjoKLS0KLSAgICAgY2FzZSBCVUlMVF9JTl9TWU5DX0ZF VENIX0FORF9TVUJfMToKLS0gICAgY2FzZSBCVUlMVF9JTl9TWU5DX0ZFVENIX0FORF9TVUJfMjoK LS0gICAgY2FzZSBCVUlMVF9JTl9TWU5DX0ZFVENIX0FORF9TVUJfNDoKLS0gICAgY2FzZSBCVUlM VF9JTl9TWU5DX0ZFVENIX0FORF9TVUJfODoKLS0gICAgY2FzZSBCVUlMVF9JTl9TWU5DX0ZFVENI X0FORF9TVUJfMTY6Ci0tCi0gICAgIGNhc2UgQlVJTFRfSU5fU1lOQ19GRVRDSF9BTkRfT1JfMToK LS0gICAgY2FzZSBCVUlMVF9JTl9TWU5DX0ZFVENIX0FORF9PUl8yOgotLSAgICBjYXNlIEJVSUxU X0lOX1NZTkNfRkVUQ0hfQU5EX09SXzQ6Ci0tICAgIGNhc2UgQlVJTFRfSU5fU1lOQ19GRVRDSF9B TkRfT1JfODoKLS0gICAgY2FzZSBCVUlMVF9JTl9TWU5DX0ZFVENIX0FORF9PUl8xNjoKLS0KLSAg ICAgY2FzZSBCVUlMVF9JTl9TWU5DX0ZFVENIX0FORF9BTkRfMToKLS0gICAgY2FzZSBCVUlMVF9J Tl9TWU5DX0ZFVENIX0FORF9BTkRfMjoKLS0gICAgY2FzZSBCVUlMVF9JTl9TWU5DX0ZFVENIX0FO RF9BTkRfNDoKLS0gICAgY2FzZSBCVUlMVF9JTl9TWU5DX0ZFVENIX0FORF9BTkRfODoKLS0gICAg Y2FzZSBCVUlMVF9JTl9TWU5DX0ZFVENIX0FORF9BTkRfMTY6Ci0tCi0gICAgIGNhc2UgQlVJTFRf SU5fU1lOQ19GRVRDSF9BTkRfWE9SXzE6Ci0tICAgIGNhc2UgQlVJTFRfSU5fU1lOQ19GRVRDSF9B TkRfWE9SXzI6Ci0tICAgIGNhc2UgQlVJTFRfSU5fU1lOQ19GRVRDSF9BTkRfWE9SXzQ6Ci0tICAg IGNhc2UgQlVJTFRfSU5fU1lOQ19GRVRDSF9BTkRfWE9SXzg6Ci0tICAgIGNhc2UgQlVJTFRfSU5f U1lOQ19GRVRDSF9BTkRfWE9SXzE2OgotLQotICAgICBjYXNlIEJVSUxUX0lOX1NZTkNfRkVUQ0hf QU5EX05BTkRfMToKLS0gICAgY2FzZSBCVUlMVF9JTl9TWU5DX0ZFVENIX0FORF9OQU5EXzI6Ci0t ICAgIGNhc2UgQlVJTFRfSU5fU1lOQ19GRVRDSF9BTkRfTkFORF80OgotLSAgICBjYXNlIEJVSUxU X0lOX1NZTkNfRkVUQ0hfQU5EX05BTkRfODoKLS0KLSAgICAgY2FzZSBCVUlMVF9JTl9TWU5DX0FE RF9BTkRfRkVUQ0hfMToKLS0gICAgY2FzZSBCVUlMVF9JTl9TWU5DX0FERF9BTkRfRkVUQ0hfMjoK LS0gICAgY2FzZSBCVUlMVF9JTl9TWU5DX0FERF9BTkRfRkVUQ0hfNDoKLS0gICAgY2FzZSBCVUlM VF9JTl9TWU5DX0FERF9BTkRfRkVUQ0hfODoKLS0gICAgY2FzZSBCVUlMVF9JTl9TWU5DX0FERF9B TkRfRkVUQ0hfMTY6Ci0tCi0gICAgIGNhc2UgQlVJTFRfSU5fU1lOQ19TVUJfQU5EX0ZFVENIXzE6 Ci0tICAgIGNhc2UgQlVJTFRfSU5fU1lOQ19TVUJfQU5EX0ZFVENIXzI6Ci0tICAgIGNhc2UgQlVJ TFRfSU5fU1lOQ19TVUJfQU5EX0ZFVENIXzQ6Ci0tICAgIGNhc2UgQlVJTFRfSU5fU1lOQ19TVUJf QU5EX0ZFVENIXzg6Ci0tICAgIGNhc2UgQlVJTFRfSU5fU1lOQ19TVUJfQU5EX0ZFVENIXzE2Ogot LQotICAgICBjYXNlIEJVSUxUX0lOX1NZTkNfT1JfQU5EX0ZFVENIXzE6Ci0tICAgIGNhc2UgQlVJ TFRfSU5fU1lOQ19PUl9BTkRfRkVUQ0hfMjoKLS0gICAgY2FzZSBCVUlMVF9JTl9TWU5DX09SX0FO RF9GRVRDSF80OgotLSAgICBjYXNlIEJVSUxUX0lOX1NZTkNfT1JfQU5EX0ZFVENIXzg6Ci0tICAg IGNhc2UgQlVJTFRfSU5fU1lOQ19PUl9BTkRfRkVUQ0hfMTY6Ci0tCi0gICAgIGNhc2UgQlVJTFRf SU5fU1lOQ19BTkRfQU5EX0ZFVENIXzE6Ci0tICAgIGNhc2UgQlVJTFRfSU5fU1lOQ19BTkRfQU5E X0ZFVENIXzI6Ci0tICAgIGNhc2UgQlVJTFRfSU5fU1lOQ19BTkRfQU5EX0ZFVENIXzQ6Ci0tICAg IGNhc2UgQlVJTFRfSU5fU1lOQ19BTkRfQU5EX0ZFVENIXzg6Ci0tICAgIGNhc2UgQlVJTFRfSU5f U1lOQ19BTkRfQU5EX0ZFVENIXzE2OgotLQotICAgICBjYXNlIEJVSUxUX0lOX1NZTkNfWE9SX0FO RF9GRVRDSF8xOgotLSAgICBjYXNlIEJVSUxUX0lOX1NZTkNfWE9SX0FORF9GRVRDSF8yOgotLSAg ICBjYXNlIEJVSUxUX0lOX1NZTkNfWE9SX0FORF9GRVRDSF80OgotLSAgICBjYXNlIEJVSUxUX0lO X1NZTkNfWE9SX0FORF9GRVRDSF84OgotLSAgICBjYXNlIEJVSUxUX0lOX1NZTkNfWE9SX0FORF9G RVRDSF8xNjoKLS0KLSAgICAgY2FzZSBCVUlMVF9JTl9TWU5DX05BTkRfQU5EX0ZFVENIXzE6Ci0t ICAgIGNhc2UgQlVJTFRfSU5fU1lOQ19OQU5EX0FORF9GRVRDSF8yOgotLSAgICBjYXNlIEJVSUxU X0lOX1NZTkNfTkFORF9BTkRfRkVUQ0hfNDoKLS0gICAgY2FzZSBCVUlMVF9JTl9TWU5DX05BTkRf QU5EX0ZFVENIXzg6Ci0tCi0gICAgIGNhc2UgQlVJTFRfSU5fU1lOQ19CT09MX0NPTVBBUkVfQU5E X1NXQVBfMToKLS0gICAgY2FzZSBCVUlMVF9JTl9TWU5DX0JPT0xfQ09NUEFSRV9BTkRfU1dBUF8y OgotLSAgICBjYXNlIEJVSUxUX0lOX1NZTkNfQk9PTF9DT01QQVJFX0FORF9TV0FQXzQ6Ci0tICAg IGNhc2UgQlVJTFRfSU5fU1lOQ19CT09MX0NPTVBBUkVfQU5EX1NXQVBfODoKLS0gICAgY2FzZSBC VUlMVF9JTl9TWU5DX0JPT0xfQ09NUEFSRV9BTkRfU1dBUF8xNjoKLS0KLSAgICAgY2FzZSBCVUlM VF9JTl9TWU5DX1ZBTF9DT01QQVJFX0FORF9TV0FQXzE6Ci0tICAgIGNhc2UgQlVJTFRfSU5fU1lO Q19WQUxfQ09NUEFSRV9BTkRfU1dBUF8yOgotLSAgICBjYXNlIEJVSUxUX0lOX1NZTkNfVkFMX0NP TVBBUkVfQU5EX1NXQVBfNDoKLS0gICAgY2FzZSBCVUlMVF9JTl9TWU5DX1ZBTF9DT01QQVJFX0FO RF9TV0FQXzg6Ci0tICAgIGNhc2UgQlVJTFRfSU5fU1lOQ19WQUxfQ09NUEFSRV9BTkRfU1dBUF8x NjoKLS0KLSAgICAgY2FzZSBCVUlMVF9JTl9TWU5DX0xPQ0tfVEVTVF9BTkRfU0VUXzE6Ci0tICAg IGNhc2UgQlVJTFRfSU5fU1lOQ19MT0NLX1RFU1RfQU5EX1NFVF8yOgotLSAgICBjYXNlIEJVSUxU X0lOX1NZTkNfTE9DS19URVNUX0FORF9TRVRfNDoKLS0gICAgY2FzZSBCVUlMVF9JTl9TWU5DX0xP Q0tfVEVTVF9BTkRfU0VUXzg6Ci0tICAgIGNhc2UgQlVJTFRfSU5fU1lOQ19MT0NLX1RFU1RfQU5E X1NFVF8xNjoKLS0KLSAgICAgY2FzZSBCVUlMVF9JTl9TWU5DX0xPQ0tfUkVMRUFTRV8xOgotLSAg ICBjYXNlIEJVSUxUX0lOX1NZTkNfTE9DS19SRUxFQVNFXzI6Ci0tICAgIGNhc2UgQlVJTFRfSU5f U1lOQ19MT0NLX1JFTEVBU0VfNDoKLS0gICAgY2FzZSBCVUlMVF9JTl9TWU5DX0xPQ0tfUkVMRUFT RV84OgotLSAgICBjYXNlIEJVSUxUX0lOX1NZTkNfTE9DS19SRUxFQVNFXzE2OgotLQotICAgICBj YXNlIEJVSUxUX0lOX0FUT01JQ19FWENIQU5HRV8xOgotLSAgICBjYXNlIEJVSUxUX0lOX0FUT01J Q19FWENIQU5HRV8yOgotLSAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19FWENIQU5HRV80OgotLSAg ICBjYXNlIEJVSUxUX0lOX0FUT01JQ19FWENIQU5HRV84OgotLSAgICBjYXNlIEJVSUxUX0lOX0FU T01JQ19FWENIQU5HRV8xNjoKLS0KLSAgICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfQ09NUEFSRV9F WENIQU5HRV8xOgotLSAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19DT01QQVJFX0VYQ0hBTkdFXzI6 Ci0tICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX0NPTVBBUkVfRVhDSEFOR0VfNDoKLS0gICAgY2Fz ZSBCVUlMVF9JTl9BVE9NSUNfQ09NUEFSRV9FWENIQU5HRV84OgotLSAgICBjYXNlIEJVSUxUX0lO X0FUT01JQ19DT01QQVJFX0VYQ0hBTkdFXzE2OgotLQotICAgICBjYXNlIEJVSUxUX0lOX0FUT01J Q19TVE9SRV8xOgotLSAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19TVE9SRV8yOgotLSAgICBjYXNl IEJVSUxUX0lOX0FUT01JQ19TVE9SRV80OgotLSAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19TVE9S RV84OgotLSAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19TVE9SRV8xNjoKLS0KLSAgICAgY2FzZSBC VUlMVF9JTl9BVE9NSUNfQUREX0ZFVENIXzE6Ci0tICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX0FE RF9GRVRDSF8yOgotLSAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19BRERfRkVUQ0hfNDoKLS0gICAg Y2FzZSBCVUlMVF9JTl9BVE9NSUNfQUREX0ZFVENIXzg6Ci0tICAgIGNhc2UgQlVJTFRfSU5fQVRP TUlDX0FERF9GRVRDSF8xNjoKLS0KLSAgICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfU1VCX0ZFVENI XzE6Ci0tICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX1NVQl9GRVRDSF8yOgotLSAgICBjYXNlIEJV SUxUX0lOX0FUT01JQ19TVUJfRkVUQ0hfNDoKLS0gICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfU1VC X0ZFVENIXzg6Ci0tICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX1NVQl9GRVRDSF8xNjoKLS0KLSAg ICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfQU5EX0ZFVENIXzE6Ci0tICAgIGNhc2UgQlVJTFRfSU5f QVRPTUlDX0FORF9GRVRDSF8yOgotLSAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19BTkRfRkVUQ0hf NDoKLS0gICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfQU5EX0ZFVENIXzg6Ci0tICAgIGNhc2UgQlVJ TFRfSU5fQVRPTUlDX0FORF9GRVRDSF8xNjoKLS0KLSAgICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNf TkFORF9GRVRDSF8xOgotLSAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19OQU5EX0ZFVENIXzI6Ci0t ICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX05BTkRfRkVUQ0hfNDoKLS0gICAgY2FzZSBCVUlMVF9J Tl9BVE9NSUNfTkFORF9GRVRDSF84OgotLSAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19OQU5EX0ZF VENIXzE2OgotLQotICAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19YT1JfRkVUQ0hfMToKLS0gICAg Y2FzZSBCVUlMVF9JTl9BVE9NSUNfWE9SX0ZFVENIXzI6Ci0tICAgIGNhc2UgQlVJTFRfSU5fQVRP TUlDX1hPUl9GRVRDSF80OgotLSAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19YT1JfRkVUQ0hfODoK LS0gICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfWE9SX0ZFVENIXzE2OgotLQotICAgICBjYXNlIEJV SUxUX0lOX0FUT01JQ19PUl9GRVRDSF8xOgotLSAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19PUl9G RVRDSF8yOgotLSAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19PUl9GRVRDSF80OgotLSAgICBjYXNl IEJVSUxUX0lOX0FUT01JQ19PUl9GRVRDSF84OgotLSAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19P Ul9GRVRDSF8xNjoKLS0KLSAgICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfRkVUQ0hfQUREXzE6Ci0t ICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX0ZFVENIX0FERF8yOgotLSAgICBjYXNlIEJVSUxUX0lO X0FUT01JQ19GRVRDSF9BRERfNDoKLS0gICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfRkVUQ0hfQURE Xzg6Ci0tICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX0ZFVENIX0FERF8xNjoKLS0KLSAgICAgY2Fz ZSBCVUlMVF9JTl9BVE9NSUNfRkVUQ0hfU1VCXzE6Ci0tICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlD X0ZFVENIX1NVQl8yOgotLSAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19GRVRDSF9TVUJfNDoKLS0g ICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfRkVUQ0hfU1VCXzg6Ci0tICAgIGNhc2UgQlVJTFRfSU5f QVRPTUlDX0ZFVENIX1NVQl8xNjoKLS0KLSAgICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfRkVUQ0hf QU5EXzE6Ci0tICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX0ZFVENIX0FORF8yOgotLSAgICBjYXNl IEJVSUxUX0lOX0FUT01JQ19GRVRDSF9BTkRfNDoKLS0gICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNf RkVUQ0hfQU5EXzg6Ci0tICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX0ZFVENIX0FORF8xNjoKLS0K LSAgICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfRkVUQ0hfTkFORF8xOgotLSAgICBjYXNlIEJVSUxU X0lOX0FUT01JQ19GRVRDSF9OQU5EXzI6Ci0tICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX0ZFVENI X05BTkRfNDoKLS0gICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfRkVUQ0hfTkFORF84OgotLSAgICBj YXNlIEJVSUxUX0lOX0FUT01JQ19GRVRDSF9OQU5EXzE2OgotLQotICAgICBjYXNlIEJVSUxUX0lO X0FUT01JQ19GRVRDSF9YT1JfMToKLS0gICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfRkVUQ0hfWE9S XzI6Ci0tICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX0ZFVENIX1hPUl80OgotLSAgICBjYXNlIEJV SUxUX0lOX0FUT01JQ19GRVRDSF9YT1JfODoKLS0gICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfRkVU Q0hfWE9SXzE2OgotLQotICAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19GRVRDSF9PUl8xOgotKyAg ICAgIGFjY2Vzc19zaXplID0gMTsKLSsgICAgICBnb3RvIGRvX2F0b21pYzsKLSsKLSsgICAgY2Fz ZSBCVUlMVF9JTl9BVE9NSUNfTE9BRF8yOgotKyAgICAgIGlzX3N0b3JlID0gZmFsc2U7Ci0rICAg ICAgLyogRkFMTFRIUlUgKi8KLSsgICAgY2FzZSBCVUlMVF9JTl9TWU5DX0ZFVENIX0FORF9BRERf MjoKLSsgICAgY2FzZSBCVUlMVF9JTl9TWU5DX0ZFVENIX0FORF9TVUJfMjoKLSsgICAgY2FzZSBC VUlMVF9JTl9TWU5DX0ZFVENIX0FORF9PUl8yOgotKyAgICBjYXNlIEJVSUxUX0lOX1NZTkNfRkVU Q0hfQU5EX0FORF8yOgotKyAgICBjYXNlIEJVSUxUX0lOX1NZTkNfRkVUQ0hfQU5EX1hPUl8yOgot KyAgICBjYXNlIEJVSUxUX0lOX1NZTkNfRkVUQ0hfQU5EX05BTkRfMjoKLSsgICAgY2FzZSBCVUlM VF9JTl9TWU5DX0FERF9BTkRfRkVUQ0hfMjoKLSsgICAgY2FzZSBCVUlMVF9JTl9TWU5DX1NVQl9B TkRfRkVUQ0hfMjoKLSsgICAgY2FzZSBCVUlMVF9JTl9TWU5DX09SX0FORF9GRVRDSF8yOgotKyAg ICBjYXNlIEJVSUxUX0lOX1NZTkNfQU5EX0FORF9GRVRDSF8yOgotKyAgICBjYXNlIEJVSUxUX0lO X1NZTkNfWE9SX0FORF9GRVRDSF8yOgotKyAgICBjYXNlIEJVSUxUX0lOX1NZTkNfTkFORF9BTkRf RkVUQ0hfMjoKLSsgICAgY2FzZSBCVUlMVF9JTl9TWU5DX0JPT0xfQ09NUEFSRV9BTkRfU1dBUF8y OgotKyAgICBjYXNlIEJVSUxUX0lOX1NZTkNfVkFMX0NPTVBBUkVfQU5EX1NXQVBfMjoKLSsgICAg Y2FzZSBCVUlMVF9JTl9TWU5DX0xPQ0tfVEVTVF9BTkRfU0VUXzI6Ci0rICAgIGNhc2UgQlVJTFRf SU5fU1lOQ19MT0NLX1JFTEVBU0VfMjoKLSsgICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfRVhDSEFO R0VfMjoKLSsgICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfQ09NUEFSRV9FWENIQU5HRV8yOgotKyAg ICBjYXNlIEJVSUxUX0lOX0FUT01JQ19TVE9SRV8yOgotKyAgICBjYXNlIEJVSUxUX0lOX0FUT01J Q19BRERfRkVUQ0hfMjoKLSsgICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfU1VCX0ZFVENIXzI6Ci0r ICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX0FORF9GRVRDSF8yOgotKyAgICBjYXNlIEJVSUxUX0lO X0FUT01JQ19OQU5EX0ZFVENIXzI6Ci0rICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX1hPUl9GRVRD SF8yOgotKyAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19PUl9GRVRDSF8yOgotKyAgICBjYXNlIEJV SUxUX0lOX0FUT01JQ19GRVRDSF9BRERfMjoKLSsgICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfRkVU Q0hfU1VCXzI6Ci0rICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX0ZFVENIX0FORF8yOgotKyAgICBj YXNlIEJVSUxUX0lOX0FUT01JQ19GRVRDSF9OQU5EXzI6Ci0rICAgIGNhc2UgQlVJTFRfSU5fQVRP TUlDX0ZFVENIX1hPUl8yOgotICAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19GRVRDSF9PUl8yOgot KyAgICAgIGFjY2Vzc19zaXplID0gMjsKLSsgICAgICBnb3RvIGRvX2F0b21pYzsKLSsKLSsgICAg Y2FzZSBCVUlMVF9JTl9BVE9NSUNfTE9BRF80OgotKyAgICAgIGlzX3N0b3JlID0gZmFsc2U7Ci0r ICAgICAgLyogRkFMTFRIUlUgKi8KLSsgICAgY2FzZSBCVUlMVF9JTl9TWU5DX0ZFVENIX0FORF9B RERfNDoKLSsgICAgY2FzZSBCVUlMVF9JTl9TWU5DX0ZFVENIX0FORF9TVUJfNDoKLSsgICAgY2Fz ZSBCVUlMVF9JTl9TWU5DX0ZFVENIX0FORF9PUl80OgotKyAgICBjYXNlIEJVSUxUX0lOX1NZTkNf RkVUQ0hfQU5EX0FORF80OgotKyAgICBjYXNlIEJVSUxUX0lOX1NZTkNfRkVUQ0hfQU5EX1hPUl80 OgotKyAgICBjYXNlIEJVSUxUX0lOX1NZTkNfRkVUQ0hfQU5EX05BTkRfNDoKLSsgICAgY2FzZSBC VUlMVF9JTl9TWU5DX0FERF9BTkRfRkVUQ0hfNDoKLSsgICAgY2FzZSBCVUlMVF9JTl9TWU5DX1NV Ql9BTkRfRkVUQ0hfNDoKLSsgICAgY2FzZSBCVUlMVF9JTl9TWU5DX09SX0FORF9GRVRDSF80Ogot KyAgICBjYXNlIEJVSUxUX0lOX1NZTkNfQU5EX0FORF9GRVRDSF80OgotKyAgICBjYXNlIEJVSUxU X0lOX1NZTkNfWE9SX0FORF9GRVRDSF80OgotKyAgICBjYXNlIEJVSUxUX0lOX1NZTkNfTkFORF9B TkRfRkVUQ0hfNDoKLSsgICAgY2FzZSBCVUlMVF9JTl9TWU5DX0JPT0xfQ09NUEFSRV9BTkRfU1dB UF80OgotKyAgICBjYXNlIEJVSUxUX0lOX1NZTkNfVkFMX0NPTVBBUkVfQU5EX1NXQVBfNDoKLSsg ICAgY2FzZSBCVUlMVF9JTl9TWU5DX0xPQ0tfVEVTVF9BTkRfU0VUXzQ6Ci0rICAgIGNhc2UgQlVJ TFRfSU5fU1lOQ19MT0NLX1JFTEVBU0VfNDoKLSsgICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfRVhD SEFOR0VfNDoKLSsgICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfQ09NUEFSRV9FWENIQU5HRV80Ogot KyAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19TVE9SRV80OgotKyAgICBjYXNlIEJVSUxUX0lOX0FU T01JQ19BRERfRkVUQ0hfNDoKLSsgICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfU1VCX0ZFVENIXzQ6 Ci0rICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX0FORF9GRVRDSF80OgotKyAgICBjYXNlIEJVSUxU X0lOX0FUT01JQ19OQU5EX0ZFVENIXzQ6Ci0rICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX1hPUl9G RVRDSF80OgotKyAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19PUl9GRVRDSF80OgotKyAgICBjYXNl IEJVSUxUX0lOX0FUT01JQ19GRVRDSF9BRERfNDoKLSsgICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNf RkVUQ0hfU1VCXzQ6Ci0rICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX0ZFVENIX0FORF80OgotKyAg ICBjYXNlIEJVSUxUX0lOX0FUT01JQ19GRVRDSF9OQU5EXzQ6Ci0rICAgIGNhc2UgQlVJTFRfSU5f QVRPTUlDX0ZFVENIX1hPUl80OgotICAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19GRVRDSF9PUl80 OgotKyAgICAgIGFjY2Vzc19zaXplID0gNDsKLSsgICAgICBnb3RvIGRvX2F0b21pYzsKLSsKLSsg ICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfTE9BRF84OgotKyAgICAgIGlzX3N0b3JlID0gZmFsc2U7 Ci0rICAgICAgLyogRkFMTFRIUlUgKi8KLSsgICAgY2FzZSBCVUlMVF9JTl9TWU5DX0ZFVENIX0FO RF9BRERfODoKLSsgICAgY2FzZSBCVUlMVF9JTl9TWU5DX0ZFVENIX0FORF9TVUJfODoKLSsgICAg Y2FzZSBCVUlMVF9JTl9TWU5DX0ZFVENIX0FORF9PUl84OgotKyAgICBjYXNlIEJVSUxUX0lOX1NZ TkNfRkVUQ0hfQU5EX0FORF84OgotKyAgICBjYXNlIEJVSUxUX0lOX1NZTkNfRkVUQ0hfQU5EX1hP Ul84OgotKyAgICBjYXNlIEJVSUxUX0lOX1NZTkNfRkVUQ0hfQU5EX05BTkRfODoKLSsgICAgY2Fz ZSBCVUlMVF9JTl9TWU5DX0FERF9BTkRfRkVUQ0hfODoKLSsgICAgY2FzZSBCVUlMVF9JTl9TWU5D X1NVQl9BTkRfRkVUQ0hfODoKLSsgICAgY2FzZSBCVUlMVF9JTl9TWU5DX09SX0FORF9GRVRDSF84 OgotKyAgICBjYXNlIEJVSUxUX0lOX1NZTkNfQU5EX0FORF9GRVRDSF84OgotKyAgICBjYXNlIEJV SUxUX0lOX1NZTkNfWE9SX0FORF9GRVRDSF84OgotKyAgICBjYXNlIEJVSUxUX0lOX1NZTkNfTkFO RF9BTkRfRkVUQ0hfODoKLSsgICAgY2FzZSBCVUlMVF9JTl9TWU5DX0JPT0xfQ09NUEFSRV9BTkRf U1dBUF84OgotKyAgICBjYXNlIEJVSUxUX0lOX1NZTkNfVkFMX0NPTVBBUkVfQU5EX1NXQVBfODoK LSsgICAgY2FzZSBCVUlMVF9JTl9TWU5DX0xPQ0tfVEVTVF9BTkRfU0VUXzg6Ci0rICAgIGNhc2Ug QlVJTFRfSU5fU1lOQ19MT0NLX1JFTEVBU0VfODoKLSsgICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNf RVhDSEFOR0VfODoKLSsgICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfQ09NUEFSRV9FWENIQU5HRV84 OgotKyAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19TVE9SRV84OgotKyAgICBjYXNlIEJVSUxUX0lO X0FUT01JQ19BRERfRkVUQ0hfODoKLSsgICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfU1VCX0ZFVENI Xzg6Ci0rICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX0FORF9GRVRDSF84OgotKyAgICBjYXNlIEJV SUxUX0lOX0FUT01JQ19OQU5EX0ZFVENIXzg6Ci0rICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX1hP Ul9GRVRDSF84OgotKyAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19PUl9GRVRDSF84OgotKyAgICBj YXNlIEJVSUxUX0lOX0FUT01JQ19GRVRDSF9BRERfODoKLSsgICAgY2FzZSBCVUlMVF9JTl9BVE9N SUNfRkVUQ0hfU1VCXzg6Ci0rICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX0ZFVENIX0FORF84Ogot KyAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19GRVRDSF9OQU5EXzg6Ci0rICAgIGNhc2UgQlVJTFRf SU5fQVRPTUlDX0ZFVENIX1hPUl84OgotICAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19GRVRDSF9P Ul84OgotKyAgICAgIGFjY2Vzc19zaXplID0gODsKLSsgICAgICBnb3RvIGRvX2F0b21pYzsKLSsK LSsgICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfTE9BRF8xNjoKLSsgICAgICBpc19zdG9yZSA9IGZh bHNlOwotKyAgICAgIC8qIEZBTExUSFJVICovCi0rICAgIGNhc2UgQlVJTFRfSU5fU1lOQ19GRVRD SF9BTkRfQUREXzE2OgotKyAgICBjYXNlIEJVSUxUX0lOX1NZTkNfRkVUQ0hfQU5EX1NVQl8xNjoK LSsgICAgY2FzZSBCVUlMVF9JTl9TWU5DX0ZFVENIX0FORF9PUl8xNjoKLSsgICAgY2FzZSBCVUlM VF9JTl9TWU5DX0ZFVENIX0FORF9BTkRfMTY6Ci0rICAgIGNhc2UgQlVJTFRfSU5fU1lOQ19GRVRD SF9BTkRfWE9SXzE2OgotKyAgICBjYXNlIEJVSUxUX0lOX1NZTkNfRkVUQ0hfQU5EX05BTkRfMTY6 Ci0rICAgIGNhc2UgQlVJTFRfSU5fU1lOQ19BRERfQU5EX0ZFVENIXzE2OgotKyAgICBjYXNlIEJV SUxUX0lOX1NZTkNfU1VCX0FORF9GRVRDSF8xNjoKLSsgICAgY2FzZSBCVUlMVF9JTl9TWU5DX09S X0FORF9GRVRDSF8xNjoKLSsgICAgY2FzZSBCVUlMVF9JTl9TWU5DX0FORF9BTkRfRkVUQ0hfMTY6 Ci0rICAgIGNhc2UgQlVJTFRfSU5fU1lOQ19YT1JfQU5EX0ZFVENIXzE2OgotKyAgICBjYXNlIEJV SUxUX0lOX1NZTkNfTkFORF9BTkRfRkVUQ0hfMTY6Ci0rICAgIGNhc2UgQlVJTFRfSU5fU1lOQ19C T09MX0NPTVBBUkVfQU5EX1NXQVBfMTY6Ci0rICAgIGNhc2UgQlVJTFRfSU5fU1lOQ19WQUxfQ09N UEFSRV9BTkRfU1dBUF8xNjoKLSsgICAgY2FzZSBCVUlMVF9JTl9TWU5DX0xPQ0tfVEVTVF9BTkRf U0VUXzE2OgotKyAgICBjYXNlIEJVSUxUX0lOX1NZTkNfTE9DS19SRUxFQVNFXzE2OgotKyAgICBj YXNlIEJVSUxUX0lOX0FUT01JQ19FWENIQU5HRV8xNjoKLSsgICAgY2FzZSBCVUlMVF9JTl9BVE9N SUNfQ09NUEFSRV9FWENIQU5HRV8xNjoKLSsgICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfU1RPUkVf MTY6Ci0rICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX0FERF9GRVRDSF8xNjoKLSsgICAgY2FzZSBC VUlMVF9JTl9BVE9NSUNfU1VCX0ZFVENIXzE2OgotKyAgICBjYXNlIEJVSUxUX0lOX0FUT01JQ19B TkRfRkVUQ0hfMTY6Ci0rICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX05BTkRfRkVUQ0hfMTY6Ci0r ICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX1hPUl9GRVRDSF8xNjoKLSsgICAgY2FzZSBCVUlMVF9J Tl9BVE9NSUNfT1JfRkVUQ0hfMTY6Ci0rICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX0ZFVENIX0FE RF8xNjoKLSsgICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfRkVUQ0hfU1VCXzE2OgotKyAgICBjYXNl IEJVSUxUX0lOX0FUT01JQ19GRVRDSF9BTkRfMTY6Ci0rICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlD X0ZFVENIX05BTkRfMTY6Ci0rICAgIGNhc2UgQlVJTFRfSU5fQVRPTUlDX0ZFVENIX1hPUl8xNjoK LSAgICAgY2FzZSBCVUlMVF9JTl9BVE9NSUNfRkVUQ0hfT1JfMTY6Ci0rICAgICAgYWNjZXNzX3Np emUgPSAxNjsKLSsgICAgICAvKiBGQUxMVEhSVSAqLwotKyAgICBkb19hdG9taWM6Ci0gICAgICAg ewotIAlkZXN0ID0gZ2ltcGxlX2NhbGxfYXJnIChjYWxsLCAwKTsKLSAJLyogREVTVCByZXByZXNl bnRzIHRoZSBhZGRyZXNzIG9mIGEgbWVtb3J5IGxvY2F0aW9uLgotIAkgICBpbnN0cnVtZW50X2Rl cmVmcyB3YW50cyB0aGUgbWVtb3J5IGxvY2F0aW9uLCBzbyBsZXRzCi0gCSAgIGRlcmVmZXJlbmNl IHRoZSBhZGRyZXNzIERFU1QgYmVmb3JlIGhhbmRpbmcgaXQgdG8KLSAJICAgaW5zdHJ1bWVudF9k ZXJlZnMuICAqLwotLQlpZiAoVFJFRV9DT0RFIChkZXN0KSA9PSBBRERSX0VYUFIpCi0tCSAgZGVz dCA9IFRSRUVfT1BFUkFORCAoZGVzdCwgMCk7Ci0tCWVsc2UgaWYgKFRSRUVfQ09ERSAoZGVzdCkg PT0gU1NBX05BTUUgfHwgVFJFRV9DT0RFIChkZXN0KSA9PSBJTlRFR0VSX0NTVCkKLS0JICBkZXN0 ID0gYnVpbGQyIChNRU1fUkVGLCBUUkVFX1RZUEUgKFRSRUVfVFlQRSAoZGVzdCkpLAotLQkJCSBk ZXN0LCBidWlsZF9pbnRfY3N0IChUUkVFX1RZUEUgKGRlc3QpLCAwKSk7Ci0tCWVsc2UKLS0JICBn Y2NfdW5yZWFjaGFibGUgKCk7Ci0tCi0tCWFjY2Vzc19zaXplID0gaW50X3NpemVfaW5fYnl0ZXMg KFRSRUVfVFlQRSAoZGVzdCkpOwotKwl0cmVlIHR5cGUgPSBidWlsZF9ub25zdGFuZGFyZF9pbnRl Z2VyX3R5cGUgKGFjY2Vzc19zaXplCi0rCQkJCQkJICAgICogQklUU19QRVJfVU5JVCwgMSk7Ci0r CWRlc3QgPSBidWlsZDIgKE1FTV9SRUYsIHR5cGUsIGRlc3QsCi0rCQkgICAgICAgYnVpbGRfaW50 X2NzdCAoYnVpbGRfcG9pbnRlcl90eXBlIChjaGFyX3R5cGVfbm9kZSksIDApKTsKLSsJYnJlYWs7 Ci0gICAgICAgfQotIAotICAgICBkZWZhdWx0OgotLS0tIGdjYy90ZXN0c3VpdGUvYy1jKystY29t bW9uL2FzYW4vcHI3OTk0NC5jLmpqCTIwMTctMDMtMDggMTI6NTA6NDAuNDI4NjE3MjczICswMTAw Ci0rKysgZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vYXNhbi9wcjc5OTQ0LmMJMjAxNy0wMy0w OCAxMjozNDo0Ny4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsMTggQEAKLSsvKiBQUiBzYW5p dGl6ZXIvNzk5NDQgKi8KLSsvKiB7IGRnLWRvIHJ1biB9ICovCi0rCi0rc3RydWN0IFMgeyBpbnQg aTsgY2hhciBwWzEwMjRdOyB9OwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rICBzdHJ1Y3QgUyAq cCA9IChzdHJ1Y3QgUyAqKSBfX2J1aWx0aW5fbWFsbG9jIChfX2J1aWx0aW5fb2Zmc2V0b2YgKHN0 cnVjdCBTLCBwKSArIDY0KTsKLSsgIHAtPmkgPSA1OwotKyAgYXNtIHZvbGF0aWxlICgiIiA6ICIr ciIgKHApIDogOiAibWVtb3J5Iik7Ci0rICBfX2F0b21pY19mZXRjaF9hZGQgKChpbnQgKikgcCwg NSwgX19BVE9NSUNfUkVMQVhFRCk7Ci0rICBhc20gdm9sYXRpbGUgKCIiIDogIityIiAocCkgOiA6 ICJtZW1vcnkiKTsKLSsgIGlmIChwLT5pICE9IDEwKQotKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7 Ci0rICBfX2J1aWx0aW5fZnJlZSAocCk7Ci0rICByZXR1cm4gMDsKLSt9CgpkaWZmIC0tZ2l0IGEv Z2NjNy1wcjc5OTY5LnBhdGNoIGIvZ2NjNy1wcjc5OTY5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLmYyZDZkODkKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M3LXByNzk5 NjkucGF0Y2gKQEAgLTAsMCArMSw0MyBAQAorMjAxNy0wMy0wOSAgSmFrdWIgSmVsaW5layAgPGph a3ViQHJlZGhhdC5jb20+CisKKwlQUiBjLzc5OTY5CisJKiBjLWRlY2wuYyAoc3RhcnRfZW51bSk6 IEFkanVzdCBERUNMX1NPVVJDRV9MT0NBVElPTiBvZgorCVRZUEVfU1RVQl9ERUNMLgorCisJKiBn Y2MuZGcvZGVidWcvZHdhcmYyL2VudW0tbG9jMS5jOiBOZXcgdGVzdC4KKworLS0tIGdjYy9jL2Mt ZGVjbC5jLmpqCTIwMTctMDMtMDUgMjI6Mzk6NDUuMDAwMDAwMDAwICswMTAwCisrKysgZ2NjL2Mv Yy1kZWNsLmMJMjAxNy0wMy0wOSAwODoxOTozMy4xMDAwNDIxNjYgKzAxMDAKK0BAIC04MjAxLDYg KzgyMDEsMTAgQEAgc3RhcnRfZW51bSAobG9jYXRpb25fdCBsb2MsIHN0cnVjdCBjX2VudQorICAg ICAgIGVudW10eXBlID0gbWFrZV9ub2RlIChFTlVNRVJBTF9UWVBFKTsKKyAgICAgICBwdXNodGFn IChsb2MsIG5hbWUsIGVudW10eXBlKTsKKyAgICAgfQorKyAgLyogVXBkYXRlIHR5cGUgbG9jYXRp b24gdG8gdGhlIG9uZSBvZiB0aGUgZGVmaW5pdGlvbiwgaW5zdGVhZCBvZiBlLmcuCisrICAgICBh IGZvcndhcmQgZGVjbGFyYXRpb24uICAqLworKyAgZWxzZSBpZiAoVFlQRV9TVFVCX0RFQ0wgKGVu dW10eXBlKSkKKysgICAgREVDTF9TT1VSQ0VfTE9DQVRJT04gKFRZUEVfU1RVQl9ERUNMIChlbnVt dHlwZSkpID0gbG9jOworIAorICAgaWYgKENfVFlQRV9CRUlOR19ERUZJTkVEIChlbnVtdHlwZSkp CisgICAgIGVycm9yX2F0IChsb2MsICJuZXN0ZWQgcmVkZWZpbml0aW9uIG9mICU8ZW51bSAlRSU+ IiwgbmFtZSk7CistLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvZGVidWcvZHdhcmYyL2VudW0tbG9j MS5jLmpqCTIwMTctMDMtMDkgMDg6MDk6MzAuNzQyMDM3ODQ0ICswMTAwCisrKysgZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvZGVidWcvZHdhcmYyL2VudW0tbG9jMS5jCTIwMTctMDMtMDkgMDg6MTY6NDUu MjAyMjY4NDM4ICswMTAwCitAQCAtMCwwICsxLDE5IEBACisrLyogUFIgYy83OTk2OSAqLworKy8q IHsgZGctZG8gY29tcGlsZSB9ICovCisrLyogeyBkZy1vcHRpb25zICItZ2R3YXJmIC1kQSAtZm5v LW1lcmdlLWRlYnVnLXN0cmluZ3MiIH0gKi8KKysKKytlbnVtIEVOVU1UQUc7CisrCisrZW51bSBF TlVNVEFHCisreworKyAgQiA9IDEsCisrICBDID0gMgorK307CisrCisrdm9pZAorK2JhciAodm9p ZCkKKyt7CisrICBlbnVtIEVOVU1UQUcgYSA9IEM7CisrfQorKworKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlciAiRFdfVEFHX2VudW1lcmF0aW9uX3R5cGVcW15cXHJcXG5cXSpcW1xcclxc blxdK1xbXlxcclxcblxdKlwiRU5VTVRBR1xbXlxcclxcblxdKkRXX0FUX25hbWUoXFteXFxyXFxu XF0qXFtcXHJcXG5cXStcW15cXHJcXG5cXSpEV19BVF8pKlxbXlxcclxcblxdKlxbXFxyXFxuXF0r XFteXFxyXFxuXF0qXFteMC05YS1mQS1GeFhdKDB4KT83XFteMC05YS1mQS1GeFhdXFteXFxyXFxu XF0qRFdfQVRfZGVjbF9saW5lIiB9IH0gKi8KCmRpZmYgLS1naXQgYS9nY2M3LXByNzk5NzIucGF0 Y2ggYi9nY2M3LXByNzk5NzIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uODkyNTlmZgotLS0gL2Rldi9udWxsCisrKyBiL2djYzctcHI3OTk3Mi5wYXRjaApAQCAtMCww ICsxLDU4IEBACisyMDE3LTAzLTA5ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4K KworCVBSIHRyZWUtb3B0aW1pemF0aW9uLzc5OTcyCisJKiBnaW1wbGUtc3NhLXdhcm4tYWxsb2Nh LmMgKGFsbG9jYV9jYWxsX3R5cGUpOiBPbmx5IGNhbGwKKwlnZXRfcmFuZ2VfaW5mbyBvbiBTU0Ff TkFNRXMuICBGb3JtYXR0aW5nIGZpeGVzLgorCisJKiBnY2MuZGcvcHI3OTk3Mi5jOiBOZXcgdGVz dC4KKworLS0tIGdjYy9naW1wbGUtc3NhLXdhcm4tYWxsb2NhLmMuamoJMjAxNy0wMy0wNyAyMDow NDo1Mi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnY2MvZ2ltcGxlLXNzYS13YXJuLWFsbG9jYS5jCTIw MTctMDMtMDkgMTI6MTE6NDEuOTQzOTM0MzE0ICswMTAwCitAQCAtMzAwLDggKzMwMCw5IEBAIGFs bG9jYV9jYWxsX3R5cGUgKGdpbXBsZSAqc3RtdCwgYm9vbCBpc18KKyAgICAgICByZXQgPSBhbGxv Y2FfdHlwZV9hbmRfbGltaXQgKEFMTE9DQV9PSyk7CisgICAgIH0KKyAgIC8vIENoZWNrIHRoZSBy YW5nZSBpbmZvIGlmIGF2YWlsYWJsZS4KKy0gIGVsc2UgaWYgKHZhbHVlX3JhbmdlX3R5cGUgcmFu Z2VfdHlwZSA9IGdldF9yYW5nZV9pbmZvIChsZW4sICZtaW4sICZtYXgpKQorKyAgZWxzZSBpZiAo VFJFRV9DT0RFIChsZW4pID09IFNTQV9OQU1FKQorICAgICB7CisrICAgICAgdmFsdWVfcmFuZ2Vf dHlwZSByYW5nZV90eXBlID0gZ2V0X3JhbmdlX2luZm8gKGxlbiwgJm1pbiwgJm1heCk7CisgICAg ICAgaWYgKHJhbmdlX3R5cGUgPT0gVlJfUkFOR0UpCisgCXsKKyAJICBpZiAod2k6OmxldV9wICht YXgsIG1heF9zaXplKSkKK0BAIC0zMjgsNyArMzI5LDYgQEAgYWxsb2NhX2NhbGxfdHlwZSAoZ2lt cGxlICpzdG10LCBib29sIGlzXworIAkgICAgICBnaW1wbGUgKmRlZiA9IFNTQV9OQU1FX0RFRl9T VE1UIChsZW4pOworIAkgICAgICBpZiAoZ2ltcGxlX2Fzc2lnbl9jYXN0X3AgKGRlZikKKyAJCSAg JiYgVFlQRV9VTlNJR05FRCAoVFJFRV9UWVBFIChnaW1wbGVfYXNzaWduX3JoczEgKGRlZikpKSkK Ky0KKyAJCXsKKyAJCSAgbGVuX2Nhc3RlZCA9IGdpbXBsZV9hc3NpZ25fcmhzMSAoZGVmKTsKKyAJ CSAgcmFuZ2VfdHlwZSA9IGdldF9yYW5nZV9pbmZvIChsZW5fY2FzdGVkLCAmbWluLCAmbWF4KTsK K0BAIC0zNDQsOCArMzQ0LDcgQEAgYWxsb2NhX2NhbGxfdHlwZSAoZ2ltcGxlICpzdG10LCBib29s IGlzXworIAkgICAgICBlbHNlIGlmIChyYW5nZV90eXBlID09IFZSX0FOVElfUkFOR0UpCisgCQly ZXR1cm4gYWxsb2NhX3R5cGVfYW5kX2xpbWl0IChBTExPQ0FfVU5CT1VOREVEKTsKKyAJICAgICAg ZWxzZSBpZiAocmFuZ2VfdHlwZSAhPSBWUl9WQVJZSU5HKQorLQkJcmV0dXJuCistCQkgIGFsbG9j YV90eXBlX2FuZF9saW1pdCAoQUxMT0NBX0JPVU5EX01BWUJFX0xBUkdFLCBtYXgpOworKwkJcmV0 dXJuIGFsbG9jYV90eXBlX2FuZF9saW1pdCAoQUxMT0NBX0JPVU5EX01BWUJFX0xBUkdFLCBtYXgp OworIAkgICAgfQorIAl9CisgICAgICAgZWxzZSBpZiAocmFuZ2VfdHlwZSA9PSBWUl9BTlRJX1JB TkdFKQorLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3ByNzk5NzIuYy5qagkyMDE3LTAzLTA5IDEy OjE0OjI0LjE4ODgwMDU5MiArMDEwMAorKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3ByNzk5NzIu YwkyMDE3LTAzLTA5IDEyOjEzOjM4LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSwxNiBAQAor Ky8qIFBSIHRyZWUtb3B0aW1pemF0aW9uLzc5OTcyICovCisrLyogeyBkZy1kbyBjb21waWxlIH0g Ki8KKysvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBhbGxvY2EgfSAqLworKy8qIHsg ZGctb3B0aW9ucyAiLVdhbGxvY2EgLVd2bGEtbGFyZ2VyLXRoYW49MTAwMDAiIH0gKi8KKysKKytp bnQKKytmIChpbnQgZGltLCBpbnQgKmIsIGludCAqYykKKyt7CisrICBpbnQgbmV3Y2VudHJvaWRb M11bZGltXTsJLyogeyBkZy13YXJuaW5nICJ1bmJvdW5kZWQgdXNlIG9mIHZhcmlhYmxlLWxlbmd0 aCBhcnJheSIgfSAqLworKyAgaW50ICphID0gbmV3Y2VudHJvaWRbMl07CisrICBpbnQgaSwgZGlz dCA9IDA7CisrICBfX2J1aWx0aW5fbWVtY3B5IChuZXdjZW50cm9pZCwgYywgc2l6ZW9mIChuZXdj ZW50cm9pZCkpOworKyAgZm9yIChpID0gMDsgaSA8IGRpbTsgaSsrKQorKyAgICBkaXN0ICs9IChh W2ldIC0gYltpXSkgKiAoYVtpXSAtIGJbaV0pOworKyAgcmV0dXJuIGRpc3Q7CisrfQoKZGlmZiAt LWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IGZjMmJkZjAuLmYwMDM5NDQgMTAwNjQ0Ci0t LSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSwzICsxLDMgQEAKLVNIQTUxMiAoZ2NjLTcu MC4xLTIwMTcwMzA4LnRhci5iejIpID0gOGZkYWRmMjE4YWMwZDUwMTA3NTE2Y2Q5ZWE3MmFjMDM2 MDZiNzlkYjQ0ZjdhM2QxZmU2NjVkMWYxYzUxYjdhNTRjNWYzN2RmM2Y2YWY5YWIwNzBkZTFiMzk5 MDk4OTc0NTc2MmNlNGQzYzJhNGFhNGQxMmJkZmUyOWZlMDBkY2QKK1NIQTUxMiAoZ2NjLTcuMC4x LTIwMTcwMzA5LnRhci5iejIpID0gZDY1YzEyMDYwY2ZiZTZhYTY4NWExZDhmNzY4YmU2ZWMyZGRl NzMzY2I3YzgyZWQzYWM4Y2JhODM5YjMzY2ZkMTYxNzRmNjFmOWZiN2RhM2NlYzZhYzk2N2MwYmNj OWI2NjRkNzExMjlhNjA5ZTkyNGU1NDRlZGVjNGQ3MDI0ZmYKIFNIQTUxMiAobnZwdHgtbmV3bGli LWFhZGM4ZWIwZWM0M2I3Y2QwZGQyZGZiNDg0YmFlNjNjOGIwNWVmMjQudGFyLmJ6MikgPSAzOGY5 N2M5Mjk3YWQxMDg1NjgzNTJhNGQyODI3NzQ1NWEzYzAxZmQ4Yjc4NjRlNzk4MDM3ZTUwMDZiNmY3 NTcwMjJlODc0YmJmM2YxNjU3NzVmZTNiODczNzgxYmMxMDgxMzdiYmViNDJkZDVlZDNjN2QzZTY3 NDc3NDZmYTkxOAogU0hBNTEyIChudnB0eC10b29scy1jMjgwNTBmNjAxOTNiM2I5NWExODg2NmE5 NmYwMzMzNGU4NzRlNzhmLnRhci5iejIpID0gOTViNTc3YTA2YTkzYmIwNDRkYmM4MDMzZTU1MGNi MzZiY2YyYWIyNjg3ZGEwMzBhNzMxOGNkYzkwZTc0NjdlZDQ5NjY1ZTI0N2RjYWZiNWZmNGE3ZTky Y2RjMjY0MjkxZDE5NzI4YmQxN2ZhYjkwMmZiNjRiMjI0OTEyNjkzMzAK