LyoKICogKEMpIENvcHlyaWdodCAyMDAzCiAqIERhdmlkIE38bGxlciBFTFNPRlQgQUcgU3dpdHplcmxhbmQuIGQubXVlbGxlckBlbHNvZnQuY2gKICoKICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKICogcHJvamVjdC4KICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwogKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgogKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKICogTUEgMDIxMTEtMTMwNyBVU0EKICovCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIE5BTUUJICAgIDogczNjMjQwMC5oCiAqIFZlcnNpb24gIDogMzEuMy4yMDAzCiAqCiAqIEJhc2VkIG9uIFMzQzI0MDBYIFVzZXIncyBtYW51YWwgUmV2IDEuMQogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2lmbmRlZiBfX1MzQzI0MDBfSF9fCiNkZWZpbmUgX19TM0MyNDAwX0hfXwoKI2RlZmluZSBTM0MyNFgwX1VBUlRfQ0hBTk5FTFMJMgojZGVmaW5lIFMzQzI0WDBfU1BJX0NIQU5ORUxTCTEKI2RlZmluZSBQQUxFVFRFCQkJKDB4MTRBMDA0MDApCS8qIFNKUyAqLwoKdHlwZWRlZiBlbnVtIHsKCVMzQzI0WDBfVUFSVDAsCglTM0MyNFgwX1VBUlQxLAp9IFMzQzI0WDBfVUFSVFNfTlI7CgovKiBTM0MyNDAwIGRldmljZSBiYXNlIGFkZHJlc3NlcyAqLwojZGVmaW5lIFMzQzI0WDBfTUVNQ1RMX0JBU0UJCTB4MTQwMDAwMDAKI2RlZmluZSBTM0MyNFgwX1VTQl9IT1NUX0JBU0UJCTB4MTQyMDAwMDAKI2RlZmluZSBTM0MyNFgwX0lOVEVSUlVQVF9CQVNFCQkweDE0NDAwMDAwCiNkZWZpbmUgUzNDMjRYMF9ETUFfQkFTRQkJMHgxNDYwMDAwMAojZGVmaW5lIFMzQzI0WDBfQ0xPQ0tfUE9XRVJfQkFTRQkweDE0ODAwMDAwCiNkZWZpbmUgUzNDMjRYMF9MQ0RfQkFTRQkJMHgxNEEwMDAwMAojZGVmaW5lIFMzQzI0WDBfVUFSVF9CQVNFCQkweDE1MDAwMDAwCiNkZWZpbmUgUzNDMjRYMF9USU1FUl9CQVNFCQkweDE1MTAwMDAwCiNkZWZpbmUgUzNDMjRYMF9VU0JfREVWSUNFX0JBU0UJCTB4MTUyMDAxNDAKI2RlZmluZSBTM0MyNFgwX1dBVENIRE9HX0JBU0UJCTB4MTUzMDAwMDAKI2RlZmluZSBTM0MyNFgwX0kyQ19CQVNFCQkweDE1NDAwMDAwCiNkZWZpbmUgUzNDMjRYMF9JMlNfQkFTRQkJMHgxNTUwODAwMAojZGVmaW5lIFMzQzI0WDBfR1BJT19CQVNFCQkweDE1NjAwMDAwCiNkZWZpbmUgUzNDMjRYMF9SVENfQkFTRQkJMHgxNTcwMDAwMAojZGVmaW5lIFMzQzI0WDBfQURDX0JBU0UJCTB4MTU4MDAwMDAKI2RlZmluZSBTM0MyNFgwX1NQSV9CQVNFCQkweDE1OTAwMDAwCiNkZWZpbmUgUzNDMjQwMF9NTUNfQkFTRQkJMHgxNUEwMDAwMAoKLyogaW5jbHVkZSBjb21tb24gc3R1ZmYgKi8KI2luY2x1ZGUgPHMzYzI0eDAuaD4KCgpzdGF0aWMgaW5saW5lIFMzQzI0WDBfTUVNQ1RMICogY29uc3QgUzNDMjRYMF9HZXRCYXNlX01FTUNUTCh2b2lkKQp7CglyZXR1cm4gKFMzQzI0WDBfTUVNQ1RMICogY29uc3QpUzNDMjRYMF9NRU1DVExfQkFTRTsKfQpzdGF0aWMgaW5saW5lIFMzQzI0WDBfVVNCX0hPU1QgKiBjb25zdCBTM0MyNFgwX0dldEJhc2VfVVNCX0hPU1Qodm9pZCkKewoJcmV0dXJuIChTM0MyNFgwX1VTQl9IT1NUICogY29uc3QpUzNDMjRYMF9VU0JfSE9TVF9CQVNFOwp9CnN0YXRpYyBpbmxpbmUgUzNDMjRYMF9JTlRFUlJVUFQgKiBjb25zdCBTM0MyNFgwX0dldEJhc2VfSU5URVJSVVBUKHZvaWQpCnsKCXJldHVybiAoUzNDMjRYMF9JTlRFUlJVUFQgKiBjb25zdClTM0MyNFgwX0lOVEVSUlVQVF9CQVNFOwp9CnN0YXRpYyBpbmxpbmUgUzNDMjRYMF9ETUFTICogY29uc3QgUzNDMjRYMF9HZXRCYXNlX0RNQVModm9pZCkKewoJcmV0dXJuIChTM0MyNFgwX0RNQVMgKiBjb25zdClTM0MyNFgwX0RNQV9CQVNFOwp9CnN0YXRpYyBpbmxpbmUgUzNDMjRYMF9DTE9DS19QT1dFUiAqIGNvbnN0IFMzQzI0WDBfR2V0QmFzZV9DTE9DS19QT1dFUih2b2lkKQp7CglyZXR1cm4gKFMzQzI0WDBfQ0xPQ0tfUE9XRVIgKiBjb25zdClTM0MyNFgwX0NMT0NLX1BPV0VSX0JBU0U7Cn0Kc3RhdGljIGlubGluZSBTM0MyNFgwX0xDRCAqIGNvbnN0IFMzQzI0WDBfR2V0QmFzZV9MQ0Qodm9pZCkKewoJcmV0dXJuIChTM0MyNFgwX0xDRCAqIGNvbnN0KVMzQzI0WDBfTENEX0JBU0U7Cn0Kc3RhdGljIGlubGluZSBTM0MyNFgwX1VBUlQgKiBjb25zdCBTM0MyNFgwX0dldEJhc2VfVUFSVChTM0MyNFgwX1VBUlRTX05SIG5yKQp7CglyZXR1cm4gKFMzQzI0WDBfVUFSVCAqIGNvbnN0KShTM0MyNFgwX1VBUlRfQkFTRSArIChuciAqIDB4NDAwMCkpOwp9CnN0YXRpYyBpbmxpbmUgUzNDMjRYMF9USU1FUlMgKiBjb25zdCBTM0MyNFgwX0dldEJhc2VfVElNRVJTKHZvaWQpCnsKCXJldHVybiAoUzNDMjRYMF9USU1FUlMgKiBjb25zdClTM0MyNFgwX1RJTUVSX0JBU0U7Cn0Kc3RhdGljIGlubGluZSBTM0MyNFgwX1VTQl9ERVZJQ0UgKiBjb25zdCBTM0MyNFgwX0dldEJhc2VfVVNCX0RFVklDRSh2b2lkKQp7CglyZXR1cm4gKFMzQzI0WDBfVVNCX0RFVklDRSAqIGNvbnN0KVMzQzI0WDBfVVNCX0RFVklDRV9CQVNFOwp9CnN0YXRpYyBpbmxpbmUgUzNDMjRYMF9XQVRDSERPRyAqIGNvbnN0IFMzQzI0WDBfR2V0QmFzZV9XQVRDSERPRyh2b2lkKQp7CglyZXR1cm4gKFMzQzI0WDBfV0FUQ0hET0cgKiBjb25zdClTM0MyNFgwX1dBVENIRE9HX0JBU0U7Cn0Kc3RhdGljIGlubGluZSBTM0MyNFgwX0kyQyAqIGNvbnN0IFMzQzI0WDBfR2V0QmFzZV9JMkModm9pZCkKewoJcmV0dXJuIChTM0MyNFgwX0kyQyAqIGNvbnN0KVMzQzI0WDBfSTJDX0JBU0U7Cn0Kc3RhdGljIGlubGluZSBTM0MyNFgwX0kyUyAqIGNvbnN0IFMzQzI0WDBfR2V0QmFzZV9JMlModm9pZCkKewoJcmV0dXJuIChTM0MyNFgwX0kyUyAqIGNvbnN0KVMzQzI0WDBfSTJTX0JBU0U7Cn0Kc3RhdGljIGlubGluZSBTM0MyNFgwX0dQSU8gKiBjb25zdCBTM0MyNFgwX0dldEJhc2VfR1BJTyh2b2lkKQp7CglyZXR1cm4gKFMzQzI0WDBfR1BJTyAqIGNvbnN0KVMzQzI0WDBfR1BJT19CQVNFOwp9CnN0YXRpYyBpbmxpbmUgUzNDMjRYMF9SVEMgKiBjb25zdCBTM0MyNFgwX0dldEJhc2VfUlRDKHZvaWQpCnsKCXJldHVybiAoUzNDMjRYMF9SVEMgKiBjb25zdClTM0MyNFgwX1JUQ19CQVNFOwp9CnN0YXRpYyBpbmxpbmUgUzNDMjQwMF9BREMgKiBjb25zdCBTM0MyNDAwX0dldEJhc2VfQURDKHZvaWQpCnsKCXJldHVybiAoUzNDMjQwMF9BREMgKiBjb25zdClTM0MyNFgwX0FEQ19CQVNFOwp9CnN0YXRpYyBpbmxpbmUgUzNDMjRYMF9TUEkgKiBjb25zdCBTM0MyNFgwX0dldEJhc2VfU1BJKHZvaWQpCnsKCXJldHVybiAoUzNDMjRYMF9TUEkgKiBjb25zdClTM0MyNFgwX1NQSV9CQVNFOwp9CnN0YXRpYyBpbmxpbmUgUzNDMjQwMF9NTUMgKiBjb25zdCBTM0MyNDAwX0dldEJhc2VfTU1DKHZvaWQpCnsKCXJldHVybiAoUzNDMjQwMF9NTUMgKiBjb25zdClTM0MyNDAwX01NQ19CQVNFOwp9CgojaWYgMAovKiBNZW1vcnkgY29udHJvbCAqLwojZGVmaW5lIHJCV1NDT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDAwMDAwMCkKI2RlZmluZSByQkFOS0NPTjAJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0MDAwMDA0KQojZGVmaW5lIHJCQU5LQ09OMQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQwMDAwMDgpCiNkZWZpbmUgckJBTktDT04yCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDAwMDAwQykKI2RlZmluZSByQkFOS0NPTjMJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0MDAwMDEwKQojZGVmaW5lIHJCQU5LQ09ONAkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQwMDAwMTQpCiNkZWZpbmUgckJBTktDT041CSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDAwMDAxOCkKI2RlZmluZSByQkFOS0NPTjYJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0MDAwMDFDKQojZGVmaW5lIHJCQU5LQ09ONwkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQwMDAwMjApCiNkZWZpbmUgclJFRlJFU0gJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0MDAwMDI0KQojZGVmaW5lIHJCQU5LU0laRQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQwMDAwMjgpCiNkZWZpbmUgck1SU1JCNgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0MDAwMDJDKQojZGVmaW5lIHJNUlNSQjcJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDAwMDAzMCkKCgovKiBJTlRFUlJVUFQgKi8KI2RlZmluZSByU1JDUE5ECQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQ0MDAwMDApCiNkZWZpbmUgcklOVE1PRAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NDAwMDA0KQojZGVmaW5lIHJJTlRNU0sJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDQwMDAwOCkKI2RlZmluZSByUFJJT1JJVFkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NDAwMDBDKQojZGVmaW5lIHJJTlRQTkQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDQwMDAxMCkKI2RlZmluZSBySU5UT0ZGU0VUCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDQwMDAxNCkKCgovKiBETUEgKi8KI2RlZmluZSByRElTUkMwCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQ2MDAwMDApCiNkZWZpbmUgckRJRFNUMAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDA0KQojZGVmaW5lIHJEQ09OMAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDA4KQojZGVmaW5lIHJEU1RBVDAJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDYwMDAwQykKI2RlZmluZSByRENTUkMwCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQ2MDAwMTApCiNkZWZpbmUgckRDRFNUMAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDE0KQojZGVmaW5lIHJETUFTS1RSSUcwCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDYwMDAxOCkKI2RlZmluZSByRElTUkMxCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQ2MDAwMjApCiNkZWZpbmUgckRJRFNUMQkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDI0KQojZGVmaW5lIHJEQ09OMQkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDI4KQojZGVmaW5lIHJEU1RBVDEJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDYwMDAyQykKI2RlZmluZSByRENTUkMxCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQ2MDAwMzApCiNkZWZpbmUgckRDRFNUMQkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDM0KQojZGVmaW5lIHJETUFTS1RSSUcxCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDYwMDAzOCkKI2RlZmluZSByRElTUkMyCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQ2MDAwNDApCiNkZWZpbmUgckRJRFNUMgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDQ0KQojZGVmaW5lIHJEQ09OMgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDQ4KQojZGVmaW5lIHJEU1RBVDIJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDYwMDA0QykKI2RlZmluZSByRENTUkMyCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQ2MDAwNTApCiNkZWZpbmUgckRDRFNUMgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDU0KQojZGVmaW5lIHJETUFTS1RSSUcyCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDYwMDA1OCkKI2RlZmluZSByRElTUkMzCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQ2MDAwNjApCiNkZWZpbmUgckRJRFNUMwkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDY0KQojZGVmaW5lIHJEQ09OMwkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDY4KQojZGVmaW5lIHJEU1RBVDMJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDYwMDA2QykKI2RlZmluZSByRENTUkMzCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQ2MDAwNzApCiNkZWZpbmUgckRDRFNUMwkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDc0KQojZGVmaW5lIHJETUFTS1RSSUczCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDYwMDA3OCkKCgovKiBDTE9DSyAmIFBPV0VSIE1BTkFHRU1FTlQgKi8KI2RlZmluZSByTE9DS1RJTUUJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0ODAwMDAwKQojZGVmaW5lIHJNUExMQ09OCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDgwMDAwNCkKI2RlZmluZSByVVBMTENPTgkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQ4MDAwMDgpCiNkZWZpbmUgckNMS0NPTgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0ODAwMDBDKQojZGVmaW5lIHJDTEtTTE9XCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDgwMDAxMCkKI2RlZmluZSByQ0xLRElWTgkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQ4MDAwMTQpCgoKLyogTENEIENPTlRST0xMRVIgKi8KI2RlZmluZSByTENEQ09OMQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTRBMDAwMDApCiNkZWZpbmUgckxDRENPTjIJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0QTAwMDA0KQojZGVmaW5lIHJMQ0RDT04zCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNEEwMDAwOCkKI2RlZmluZSByTENEQ09ONAkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTRBMDAwMEMpCiNkZWZpbmUgckxDRENPTjUJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0QTAwMDEwKQojZGVmaW5lIHJMQ0RTQUREUjEJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0QTAwMDE0KQojZGVmaW5lIHJMQ0RTQUREUjIJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0QTAwMDE4KQojZGVmaW5lIHJMQ0RTQUREUjMJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0QTAwMDFDKQojZGVmaW5lIHJSRURMVVQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNEEwMDAyMCkKI2RlZmluZSByR1JFRU5MVVQJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0QTAwMDI0KQojZGVmaW5lIHJCTFVFTFVUCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNEEwMDAyOCkKI2RlZmluZSByRFAxXzIJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNEEwMDAyQykKI2RlZmluZSByRFA0XzcJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNEEwMDAzMCkKI2RlZmluZSByRFAzXzUJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNEEwMDAzNCkKI2RlZmluZSByRFAyXzMJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNEEwMDAzOCkKI2RlZmluZSByRFA1XzcJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNEEwMDAzYykKI2RlZmluZSByRFAzXzQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNEEwMDA0MCkKI2RlZmluZSByRFA0XzUJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNEEwMDA0NCkKI2RlZmluZSByRFA2XzcJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNEEwMDA0OCkKI2RlZmluZSByRElUSE1PREUJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0QTAwMDRDKQojZGVmaW5lIHJUUEFMCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTRBMDAwNTApCiNkZWZpbmUgUEFMRVRURQkJKDB4MTRBMDA0MDApCS8qIFNKUyAqLwoKCi8qIFVBUlQgKi8KI2RlZmluZSByVUxDT04wCQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopMHgxNTAwMDAwMCkKI2RlZmluZSByVUNPTjAJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICopMHgxNTAwMDAwNCkKI2RlZmluZSByVUZDT04wCQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopMHgxNTAwMDAwOCkKI2RlZmluZSByVU1DT04wCQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopMHgxNTAwMDAwQykKI2RlZmluZSByVVRSU1RBVDAJKCoodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKTB4MTUwMDAwMTApCiNkZWZpbmUgclVFUlNUQVQwCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDAwMDE0KQojZGVmaW5lIHJVRlNUQVQwCSgqKHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICopMHgxNTAwMDAxOCkKI2RlZmluZSByVU1TVEFUMAkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopMHgxNTAwMDAxQykKI2RlZmluZSByVUJSRElWMAkoKih2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqKTB4MTUwMDAwMjgpCgojZGVmaW5lIHJVTENPTjEJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDA0MDAwKQojZGVmaW5lIHJVQ09OMQkJKCoodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikweDE1MDA0MDA0KQojZGVmaW5lIHJVRkNPTjEJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDA0MDA4KQojZGVmaW5lIHJVTUNPTjEJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDA0MDBDKQojZGVmaW5lIHJVVFJTVEFUMQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopMHgxNTAwNDAxMCkKI2RlZmluZSByVUVSU1RBVDEJKCoodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKTB4MTUwMDQwMTQpCiNkZWZpbmUgclVGU1RBVDEJKCoodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikweDE1MDA0MDE4KQojZGVmaW5lIHJVTVNUQVQxCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDA0MDFDKQojZGVmaW5lIHJVQlJESVYxCSgqKHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICopMHgxNTAwNDAyOCkKCiNpZmRlZiBfX0JJR19FTkRJQU4KI2RlZmluZSByVVRYSDAJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDAwMDIzKQojZGVmaW5lIHJVUlhIMAkJKCoodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKTB4MTUwMDAwMjcpCiNkZWZpbmUgclVUWEgxCQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopMHgxNTAwNDAyMykKI2RlZmluZSByVVJYSDEJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDA0MDI3KQoKI2RlZmluZSBXclVUWEgwKGNoKQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopMHgxNTAwMDAyMyk9KHVuc2lnbmVkIGNoYXIpKGNoKQojZGVmaW5lIFJkVVJYSDAoKQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopMHgxNTAwMDAyNykKI2RlZmluZSBXclVUWEgxKGNoKQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopMHgxNTAwNDAyMyk9KHVuc2lnbmVkIGNoYXIpKGNoKQojZGVmaW5lIFJkVVJYSDEoKQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopMHgxNTAwNDAyNykKCiNkZWZpbmUgVVRYSDAJCSgweDE1MDAwMDIwKzMpICAvKiBieXRlX2FjY2VzcyBhZGRyZXNzIGJ5IERNQSAqLwojZGVmaW5lIFVSWEgwCQkoMHgxNTAwMDAyNCszKQojZGVmaW5lIFVUWEgxCQkoMHgxNTAwNDAyMCszKQojZGVmaW5lIFVSWEgxCQkoMHgxNTAwNDAyNCszKQoKI2Vsc2UgLyogTGl0dGxlIEVuZGlhbiAqLwojZGVmaW5lIHJVVFhIMAkJKCoodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKTB4MTUwMDAwMjApCiNkZWZpbmUgclVSWEgwCQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopMHgxNTAwMDAyNCkKI2RlZmluZSByVVRYSDEJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDA0MDIwKQojZGVmaW5lIHJVUlhIMQkJKCoodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKTB4MTUwMDQwMjQpCgojZGVmaW5lIFdyVVRYSDAoY2gpCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDAwMDIwKT0odW5zaWduZWQgY2hhcikoY2gpCiNkZWZpbmUgUmRVUlhIMCgpCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDAwMDI0KQojZGVmaW5lIFdyVVRYSDEoY2gpCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDA0MDIwKT0odW5zaWduZWQgY2hhcikoY2gpCiNkZWZpbmUgUmRVUlhIMSgpCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDA0MDI0KQoKI2RlZmluZSBVVFhIMAkJKDB4MTUwMDAwMjApICAgIC8qIGJ5dGVfYWNjZXNzIGFkZHJlc3MgYnkgRE1BICovCiNkZWZpbmUgVVJYSDAJCSgweDE1MDAwMDI0KQojZGVmaW5lIFVUWEgxCQkoMHgxNTAwNDAyMCkKI2RlZmluZSBVUlhIMQkJKDB4MTUwMDQwMjQpCiNlbmRpZgoKCi8qIFBXTSBUSU1FUiAqLwojZGVmaW5lIHJUQ0ZHMAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MTAwMDAwKQojZGVmaW5lIHJUQ0ZHMQkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MTAwMDA0KQojZGVmaW5lIHJUQ09OCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUxMDAwMDgpCiNkZWZpbmUgclRDTlRCMAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MTAwMDBDKQojZGVmaW5lIHJUQ01QQjAJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTEwMDAxMCkKI2RlZmluZSByVENOVE8wCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUxMDAwMTQpCiNkZWZpbmUgclRDTlRCMQkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MTAwMDE4KQojZGVmaW5lIHJUQ01QQjEJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTEwMDAxQykKI2RlZmluZSByVENOVE8xCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUxMDAwMjApCiNkZWZpbmUgclRDTlRCMgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MTAwMDI0KQojZGVmaW5lIHJUQ01QQjIJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTEwMDAyOCkKI2RlZmluZSByVENOVE8yCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUxMDAwMkMpCiNkZWZpbmUgclRDTlRCMwkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MTAwMDMwKQojZGVmaW5lIHJUQ01QQjMJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTEwMDAzNCkKI2RlZmluZSByVENOVE8zCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUxMDAwMzgpCiNkZWZpbmUgclRDTlRCNAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MTAwMDNDKQojZGVmaW5lIHJUQ05UTzQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTEwMDA0MCkKCgovKiBVU0IgREVWSUNFICovCiNkZWZpbmUgckZVTkNfQUREUl9SRUcJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MjAwMTQwKQojZGVmaW5lIHJQV1JfUkVHCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTIwMDE0NCkKI2RlZmluZSBySU5UX1JFRwkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUyMDAxNDgpCiNkZWZpbmUgcklOVF9NQVNLX1JFRwkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUyMDAxNEMpCiNkZWZpbmUgckZSQU1FX05VTV9SRUcJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MjAwMTUwKQojZGVmaW5lIHJSRVNVTUVfQ09OX1JFRwkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUyMDAxNTQpCiNkZWZpbmUgckVQMF9DU1IJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MjAwMTYwKQojZGVmaW5lIHJFUDBfTUFYUAkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUyMDAxNjQpCiNkZWZpbmUgckVQMF9PVVRfQ05UCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTIwMDE2OCkKI2RlZmluZSByRVAwX0ZJRk8JKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MjAwMTZDKQojZGVmaW5lIHJFUDFfSU5fQ1NSCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTIwMDE4MCkKI2RlZmluZSByRVAxX0lOX01BWFAJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MjAwMTg0KQojZGVmaW5lIHJFUDFfRklGTwkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUyMDAxODgpCiNkZWZpbmUgckVQMl9JTl9DU1IJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MjAwMTkwKQojZGVmaW5lIHJFUDJfSU5fTUFYUAkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUyMDAxOTQpCiNkZWZpbmUgckVQMl9GSUZPCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTIwMDE5OCkKI2RlZmluZSByRVAzX09VVF9DU1IJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MjAwMUEwKQojZGVmaW5lIHJFUDNfT1VUX01BWFAJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MjAwMUE0KQojZGVmaW5lIHJFUDNfT1VUX0NOVAkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUyMDAxQTgpCiNkZWZpbmUgckVQM19GSUZPCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTIwMDFBQykKI2RlZmluZSByRVA0X09VVF9DU1IJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MjAwMUIwKQojZGVmaW5lIHJFUDRfT1VUX01BWFAJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MjAwMUI0KQojZGVmaW5lIHJFUDRfT1VUX0NOVAkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUyMDAxQjgpCiNkZWZpbmUgckVQNF9GSUZPCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTIwMDFCQykKI2RlZmluZSByRE1BX0NPTgkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUyMDAxQzApCiNkZWZpbmUgckRNQV9VTklUCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTIwMDFDNCkKI2RlZmluZSByRE1BX0ZJRk8JKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MjAwMUM4KQojZGVmaW5lIHJETUFfVFgJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTIwMDFDQykKI2RlZmluZSByVEVTVF9NT0RFCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTIwMDFGNCkKI2RlZmluZSBySU5fQ09OX1JFRwkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUyMDAxRjgpCgoKLyogV0FUQ0ggRE9HIFRJTUVSICovCiNkZWZpbmUgcldUQ09OCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUzMDAwMDApCiNkZWZpbmUgcldUREFUCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUzMDAwMDQpCiNkZWZpbmUgcldUQ05UCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUzMDAwMDgpCgoKLyogSUlDICovCiNkZWZpbmUgcklJQ0NPTgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1NDAwMDAwKQojZGVmaW5lIHJJSUNTVEFUCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTQwMDAwNCkKI2RlZmluZSBySUlDQURECQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTU0MDAwMDgpCiNkZWZpbmUgcklJQ0RTCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTU0MDAwMEMpCgoKLyogSUlTICovCiNkZWZpbmUgcklJU0NPTgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1NTA4MDAwKQojZGVmaW5lIHJJSVNNT0QJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTUwODAwNCkKI2RlZmluZSBySUlTUFNSCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTU1MDgwMDgpCiNkZWZpbmUgcklJU0ZJRkNPTgkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTU1MDgwMEMpCgojaWZkZWYgX19CSUdfRU5ESUFOCiNkZWZpbmUgSUlTRklGCQkoKHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICopMHgxNTUwODAxMikKCiNlbHNlIC8qIExpdHRsZSBFbmRpYW4gKi8KI2RlZmluZSBJSVNGSUYJCSgodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikweDE1NTA4MDEwKQojZW5kaWYKCgovKiBJL08gUE9SVCAqLwojZGVmaW5lIHJQQUNPTgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1NjAwMDAwKQojZGVmaW5lIHJQQURBVAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1NjAwMDA0KQoKI2RlZmluZSByUEJDT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDAwOCkKI2RlZmluZSByUEJEQVQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDAwQykKI2RlZmluZSByUEJVUAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1NjAwMDEwKQoKI2RlZmluZSByUENDT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDAxNCkKI2RlZmluZSByUENEQVQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDAxOCkKI2RlZmluZSByUENVUAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1NjAwMDFDKQoKI2RlZmluZSByUERDT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDAyMCkKI2RlZmluZSByUEREQVQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDAyNCkKI2RlZmluZSByUERVUAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1NjAwMDI4KQoKI2RlZmluZSByUEVDT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDAyQykKI2RlZmluZSByUEVEQVQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDAzMCkKI2RlZmluZSByUEVVUAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1NjAwMDM0KQoKI2RlZmluZSByUEZDT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDAzOCkKI2RlZmluZSByUEZEQVQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDAzQykKI2RlZmluZSByUEZVUAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1NjAwMDQwKQoKI2RlZmluZSByUEdDT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDA0NCkKI2RlZmluZSByUEdEQVQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDA0OCkKI2RlZmluZSByUEdVUAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1NjAwMDRDKQoKI2RlZmluZSByT1BFTkNSCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTU2MDAwNTApCiNkZWZpbmUgck1JU0NDUgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1NjAwMDU0KQojZGVmaW5lIHJFWFRJTlQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDA1OCkKCgovKiBSVEMgKi8KI2lmZGVmIF9fQklHX0VORElBTgojZGVmaW5lIHJSVENDT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDQzKQojZGVmaW5lIHJSVENBTE0JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDUzKQojZGVmaW5lIHJBTE1TRUMJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDU3KQojZGVmaW5lIHJBTE1NSU4JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDVCKQojZGVmaW5lIHJBTE1IT1VSCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDVGKQojZGVmaW5lIHJBTE1EQVkJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDYzKQojZGVmaW5lIHJBTE1NT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDY3KQojZGVmaW5lIHJBTE1ZRUFSCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDZCKQojZGVmaW5lIHJSVENSU1QJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDZGKQojZGVmaW5lIHJCQ0RTRUMJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDczKQojZGVmaW5lIHJCQ0RNSU4JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDc3KQojZGVmaW5lIHJCQ0RIT1VSCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDdCKQojZGVmaW5lIHJCQ0REQVkJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDdGKQojZGVmaW5lIHJCQ0REQVRFCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDgzKQojZGVmaW5lIHJCQ0RNT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDg3KQojZGVmaW5lIHJCQ0RZRUFSCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDhCKQojZGVmaW5lIHJUSUNJTlQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDQ3KQoKI2Vsc2UgLyogTGl0dGxlIEVuZGlhbiAqLwojZGVmaW5lIHJSVENDT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDQwKQojZGVmaW5lIHJSVENBTE0JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDUwKQojZGVmaW5lIHJBTE1TRUMJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDU0KQojZGVmaW5lIHJBTE1NSU4JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDU4KQojZGVmaW5lIHJBTE1IT1VSCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDVDKQojZGVmaW5lIHJBTE1EQVkJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDYwKQojZGVmaW5lIHJBTE1NT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDY0KQojZGVmaW5lIHJBTE1ZRUFSCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDY4KQojZGVmaW5lIHJSVENSU1QJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDZDKQojZGVmaW5lIHJCQ0RTRUMJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDcwKQojZGVmaW5lIHJCQ0RNSU4JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDc0KQojZGVmaW5lIHJCQ0RIT1VSCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDc4KQojZGVmaW5lIHJCQ0REQVkJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDdDKQojZGVmaW5lIHJCQ0REQVRFCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDgwKQojZGVmaW5lIHJCQ0RNT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDg0KQojZGVmaW5lIHJCQ0RZRUFSCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDg4KQojZGVmaW5lIHJUSUNJTlQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDQ0KQojZW5kaWYKCgovKiBBREMgKi8KI2RlZmluZSByQURDQ09OCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTU4MDAwMDApCiNkZWZpbmUgckFEQ0RBVAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1ODAwMDA0KQoKCi8qIFNQSSAqLwojZGVmaW5lIHJTUENPTgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1OTAwMDAwKQojZGVmaW5lIHJTUFNUQQkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1OTAwMDA0KQojZGVmaW5lIHJTUFBJTgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1OTAwMDA4KQojZGVmaW5lIHJTUFBSRQkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1OTAwMDBDKQojZGVmaW5lIHJTUFREQVQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTkwMDAxMCkKI2RlZmluZSByU1BSREFUCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTU5MDAwMTQpCgoKLyogTU1DIElOVEVSRkFDRSAqLwojZGVmaW5lIHJNTUNPTgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1YTAwMDAwKQojZGVmaW5lIHJNTUNSUgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1YTAwMDA0KQojZGVmaW5lIHJNTUZDT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNWEwMDAwOCkKI2RlZmluZSByTU1TVEEJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNWEwMDAwQykKI2RlZmluZSByTU1GU1RBCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTVhMDAwMTApCiNkZWZpbmUgck1NUFJFCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTVhMDAwMTQpCiNkZWZpbmUgck1NTEVOCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTVhMDAwMTgpCiNkZWZpbmUgck1NQ1I3CQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTVhMDAwMUMpCiNkZWZpbmUgck1NUlNQMAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1YTAwMDIwKQojZGVmaW5lIHJNTVJTUDEJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNWEwMDAyNCkKI2RlZmluZSByTU1SU1AyCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTVhMDAwMjgpCiNkZWZpbmUgck1NUlNQMwkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1YTAwMDJDKQojZGVmaW5lIHJNTUNNRDAJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNWEwMDAzMCkKI2RlZmluZSByTU1DTUQxCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTVhMDAwMzQpCiNkZWZpbmUgck1NQ1IxNgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1YTAwMDM4KQojZGVmaW5lIHJNTURBVAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1YTAwMDNDKQoKCgovKiBJU1IgKi8KI2RlZmluZSBwSVNSX1JFU0VUCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4MCkpCiNkZWZpbmUgcElTUl9VTkRFRgkoKih1bnNpZ25lZCAqKShfSVNSX1NUQVJUQUREUkVTUysweDQpKQojZGVmaW5lIHBJU1JfU1dJCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4OCkpCiNkZWZpbmUgcElTUl9QQUJPUlQJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHhDKSkKI2RlZmluZSBwSVNSX0RBQk9SVAkoKih1bnNpZ25lZCAqKShfSVNSX1NUQVJUQUREUkVTUysweDEwKSkKI2RlZmluZSBwSVNSX1JFU0VSVkVECSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4MTQpKQojZGVmaW5lIHBJU1JfSVJRCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4MTgpKQojZGVmaW5lIHBJU1JfRklRCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4MUMpKQoKI2RlZmluZSBwSVNSX0VJTlQwCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4MjApKQojZGVmaW5lIHBJU1JfRUlOVDEJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHgyNCkpCiNkZWZpbmUgcElTUl9FSU5UMgkoKih1bnNpZ25lZCAqKShfSVNSX1NUQVJUQUREUkVTUysweDI4KSkKI2RlZmluZSBwSVNSX0VJTlQzCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4MkMpKQojZGVmaW5lIHBJU1JfRUlOVDQJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHgzMCkpCiNkZWZpbmUgcElTUl9FSU5UNQkoKih1bnNpZ25lZCAqKShfSVNSX1NUQVJUQUREUkVTUysweDM0KSkKI2RlZmluZSBwSVNSX0VJTlQ2CSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4MzgpKQojZGVmaW5lIHBJU1JfRUlOVDcJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHgzQykpCiNkZWZpbmUgcElTUl9USUNLCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4NDApKQojZGVmaW5lIHBJU1JfV0RUCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4NDQpKQojZGVmaW5lIHBJU1JfVElNRVIwCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4NDgpKQojZGVmaW5lIHBJU1JfVElNRVIxCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4NEMpKQojZGVmaW5lIHBJU1JfVElNRVIyCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4NTApKQojZGVmaW5lIHBJU1JfVElNRVIzCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4NTQpKQojZGVmaW5lIHBJU1JfVElNRVI0CSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4NTgpKQojZGVmaW5lIHBJU1JfVUVSUjAxCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4NUMpKQojZGVmaW5lIHBJU1JfTk9UVVNFRAkoKih1bnNpZ25lZCAqKShfSVNSX1NUQVJUQUREUkVTUysweDYwKSkKI2RlZmluZSBwSVNSX0RNQTAJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHg2NCkpCiNkZWZpbmUgcElTUl9ETUExCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4NjgpKQojZGVmaW5lIHBJU1JfRE1BMgkoKih1bnNpZ25lZCAqKShfSVNSX1NUQVJUQUREUkVTUysweDZDKSkKI2RlZmluZSBwSVNSX0RNQTMJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHg3MCkpCiNkZWZpbmUgcElTUl9NTUMJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHg3NCkpCiNkZWZpbmUgcElTUl9TUEkJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHg3OCkpCiNkZWZpbmUgcElTUl9VUlhEMAkoKih1bnNpZ25lZCAqKShfSVNSX1NUQVJUQUREUkVTUysweDdDKSkKI2RlZmluZSBwSVNSX1VSWEQxCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4ODApKQojZGVmaW5lIHBJU1JfVVNCRAkoKih1bnNpZ25lZCAqKShfSVNSX1NUQVJUQUREUkVTUysweDg0KSkKI2RlZmluZSBwSVNSX1VTQkgJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHg4OCkpCiNkZWZpbmUgcElTUl9JSUMJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHg4QykpCiNkZWZpbmUgcElTUl9VVFhEMAkoKih1bnNpZ25lZCAqKShfSVNSX1NUQVJUQUREUkVTUysweDkwKSkKI2RlZmluZSBwSVNSX1VUWEQxCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4OTQpKQojZGVmaW5lIHBJU1JfUlRDCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4OTgpKQojZGVmaW5lIHBJU1JfQURDCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4QTApKQoKCi8qIFBFTkRJTkcgQklUICovCiNkZWZpbmUgQklUX0VJTlQwCSgweDEpCiNkZWZpbmUgQklUX0VJTlQxCSgweDE8PDEpCiNkZWZpbmUgQklUX0VJTlQyCSgweDE8PDIpCiNkZWZpbmUgQklUX0VJTlQzCSgweDE8PDMpCiNkZWZpbmUgQklUX0VJTlQ0CSgweDE8PDQpCiNkZWZpbmUgQklUX0VJTlQ1CSgweDE8PDUpCiNkZWZpbmUgQklUX0VJTlQ2CSgweDE8PDYpCiNkZWZpbmUgQklUX0VJTlQ3CSgweDE8PDcpCiNkZWZpbmUgQklUX1RJQ0sJKDB4MTw8OCkKI2RlZmluZSBCSVRfV0RUCQkoMHgxPDw5KQojZGVmaW5lIEJJVF9USU1FUjAJKDB4MTw8MTApCiNkZWZpbmUgQklUX1RJTUVSMQkoMHgxPDwxMSkKI2RlZmluZSBCSVRfVElNRVIyCSgweDE8PDEyKQojZGVmaW5lIEJJVF9USU1FUjMJKDB4MTw8MTMpCiNkZWZpbmUgQklUX1RJTUVSNAkoMHgxPDwxNCkKI2RlZmluZSBCSVRfVUVSUjAxCSgweDE8PDE1KQojZGVmaW5lIEJJVF9OT1RVU0VECSgweDE8PDE2KQojZGVmaW5lIEJJVF9ETUEwCSgweDE8PDE3KQojZGVmaW5lIEJJVF9ETUExCSgweDE8PDE4KQojZGVmaW5lIEJJVF9ETUEyCSgweDE8PDE5KQojZGVmaW5lIEJJVF9ETUEzCSgweDE8PDIwKQojZGVmaW5lIEJJVF9NTUMJCSgweDE8PDIxKQojZGVmaW5lIEJJVF9TUEkJCSgweDE8PDIyKQojZGVmaW5lIEJJVF9VUlhEMAkoMHgxPDwyMykKI2RlZmluZSBCSVRfVVJYRDEJKDB4MTw8MjQpCiNkZWZpbmUgQklUX1VTQkQJKDB4MTw8MjUpCiNkZWZpbmUgQklUX1VTQkgJKDB4MTw8MjYpCiNkZWZpbmUgQklUX0lJQwkJKDB4MTw8MjcpCiNkZWZpbmUgQklUX1VUWEQwCSgweDE8PDI4KQojZGVmaW5lIEJJVF9VVFhEMQkoMHgxPDwyOSkKI2RlZmluZSBCSVRfUlRDCQkoMHgxPDwzMCkKI2RlZmluZSBCSVRfQURDCQkoMHgxPDwzMSkKI2RlZmluZSBCSVRfQUxMTVNLCSgweEZGRkZGRkZGKQoKI2RlZmluZSBDbGVhclBlbmRpbmcoYml0KSB7XAoJCSByU1JDUE5EID0gYml0O1wKCQkgcklOVFBORCA9IGJpdDtcCgkJIHJJTlRQTkQ7XAoJCSB9Ci8qIFdhaXQgdW50aWwgcklOVFBORCBpcyBjaGFuZ2VkIGZvciB0aGUgY2FzZSB0aGF0IHRoZSBJU1IgaXMgdmVyeSBzaG9ydC4gKi8KI2VuZGlmCiNlbmRpZiAvKl9fUzNDMjQwMF9IX18qLwo=