LyoKICogKEMpIENvcHlyaWdodCAyMDAzCiAqIERhdmlkIE38bGxlciBFTFNPRlQgQUcgU3dpdHplcmxhbmQuIGQubXVlbGxlckBlbHNvZnQuY2gKICoKICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKICogcHJvamVjdC4KICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwogKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgogKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKICogTUEgMDIxMTEtMTMwNyBVU0EKICovCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIE5BTUUJICAgIDogczNjMjQwMC5oCiAqIFZlcnNpb24gIDogMzEuMy4yMDAzCiAqCiAqIEJhc2VkIG9uIFMzQzI0MDBYIFVzZXIncyBtYW51YWwgUmV2IDEuMQogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2lmbmRlZiBfX1MzQzI0MDBfSF9fCiNkZWZpbmUgX19TM0MyNDAwX0hfXwoKI2RlZmluZSBTM0MyNFgwX1VBUlRfQ0hBTk5FTFMJMgojZGVmaW5lIFMzQzI0WDBfU1BJX0NIQU5ORUxTCTEKI2RlZmluZSBQQUxFVFRFCQkJKDB4MTRBMDA0MDApCS8qIFNKUyAqLwoKdHlwZWRlZiBlbnVtIHsKCVMzQzI0WDBfVUFSVDAsCglTM0MyNFgwX1VBUlQxLAp9IFMzQzI0WDBfVUFSVFNfTlI7CgovKiBTM0MyNDAwIGRldmljZSBiYXNlIGFkZHJlc3NlcyAqLwojZGVmaW5lIFMzQzI0WDBfTUVNQ1RMX0JBU0UJCTB4MTQwMDAwMDAKI2RlZmluZSBTM0MyNFgwX1VTQl9IT1NUX0JBU0UJCTB4MTQyMDAwMDAKI2RlZmluZSBTM0MyNFgwX0lOVEVSUlVQVF9CQVNFCQkweDE0NDAwMDAwCiNkZWZpbmUgUzNDMjRYMF9ETUFfQkFTRQkJMHgxNDYwMDAwMAojZGVmaW5lIFMzQzI0WDBfQ0xPQ0tfUE9XRVJfQkFTRQkweDE0ODAwMDAwCiNkZWZpbmUgUzNDMjRYMF9MQ0RfQkFTRQkJMHgxNEEwMDAwMAojZGVmaW5lIFMzQzI0WDBfVUFSVF9CQVNFCQkweDE1MDAwMDAwCiNkZWZpbmUgUzNDMjRYMF9USU1FUl9CQVNFCQkweDE1MTAwMDAwCiNkZWZpbmUgUzNDMjRYMF9VU0JfREVWSUNFX0JBU0UJCTB4MTUyMDAxNDAKI2RlZmluZSBTM0MyNFgwX1dBVENIRE9HX0JBU0UJCTB4MTUzMDAwMDAKI2RlZmluZSBTM0MyNFgwX0kyQ19CQVNFCQkweDE1NDAwMDAwCiNkZWZpbmUgUzNDMjRYMF9JMlNfQkFTRQkJMHgxNTUwODAwMAojZGVmaW5lIFMzQzI0WDBfR1BJT19CQVNFCQkweDE1NjAwMDAwCiNkZWZpbmUgUzNDMjRYMF9SVENfQkFTRQkJMHgxNTcwMDAwMAojZGVmaW5lIFMzQzI0WDBfQURDX0JBU0UJCTB4MTU4MDAwMDAKI2RlZmluZSBTM0MyNFgwX1NQSV9CQVNFCQkweDE1OTAwMDAwCiNkZWZpbmUgUzNDMjQwMF9NTUNfQkFTRQkJMHgxNUEwMDAwMAoKLyogaW5jbHVkZSBjb21tb24gc3R1ZmYgKi8KI2luY2x1ZGUgPHMzYzI0eDAuaD4KCgpzdGF0aWMgaW5saW5lIFMzQzI0WDBfTUVNQ1RMICogUzNDMjRYMF9HZXRCYXNlX01FTUNUTCh2b2lkKQp7CglyZXR1cm4gKFMzQzI0WDBfTUVNQ1RMICogY29uc3QpUzNDMjRYMF9NRU1DVExfQkFTRTsKfQpzdGF0aWMgaW5saW5lIFMzQzI0WDBfVVNCX0hPU1QgKiBTM0MyNFgwX0dldEJhc2VfVVNCX0hPU1Qodm9pZCkKewoJcmV0dXJuIChTM0MyNFgwX1VTQl9IT1NUICogY29uc3QpUzNDMjRYMF9VU0JfSE9TVF9CQVNFOwp9CnN0YXRpYyBpbmxpbmUgUzNDMjRYMF9JTlRFUlJVUFQgKiBTM0MyNFgwX0dldEJhc2VfSU5URVJSVVBUKHZvaWQpCnsKCXJldHVybiAoUzNDMjRYMF9JTlRFUlJVUFQgKiBjb25zdClTM0MyNFgwX0lOVEVSUlVQVF9CQVNFOwp9CnN0YXRpYyBpbmxpbmUgUzNDMjRYMF9ETUFTICogUzNDMjRYMF9HZXRCYXNlX0RNQVModm9pZCkKewoJcmV0dXJuIChTM0MyNFgwX0RNQVMgKiBjb25zdClTM0MyNFgwX0RNQV9CQVNFOwp9CnN0YXRpYyBpbmxpbmUgUzNDMjRYMF9DTE9DS19QT1dFUiAqIFMzQzI0WDBfR2V0QmFzZV9DTE9DS19QT1dFUih2b2lkKQp7CglyZXR1cm4gKFMzQzI0WDBfQ0xPQ0tfUE9XRVIgKiBjb25zdClTM0MyNFgwX0NMT0NLX1BPV0VSX0JBU0U7Cn0Kc3RhdGljIGlubGluZSBTM0MyNFgwX0xDRCAqIFMzQzI0WDBfR2V0QmFzZV9MQ0Qodm9pZCkKewoJcmV0dXJuIChTM0MyNFgwX0xDRCAqIGNvbnN0KVMzQzI0WDBfTENEX0JBU0U7Cn0Kc3RhdGljIGlubGluZSBTM0MyNFgwX1VBUlQgKiBTM0MyNFgwX0dldEJhc2VfVUFSVChTM0MyNFgwX1VBUlRTX05SIG5yKQp7CglyZXR1cm4gKFMzQzI0WDBfVUFSVCAqIGNvbnN0KShTM0MyNFgwX1VBUlRfQkFTRSArIChuciAqIDB4NDAwMCkpOwp9CnN0YXRpYyBpbmxpbmUgUzNDMjRYMF9USU1FUlMgKiBTM0MyNFgwX0dldEJhc2VfVElNRVJTKHZvaWQpCnsKCXJldHVybiAoUzNDMjRYMF9USU1FUlMgKiBjb25zdClTM0MyNFgwX1RJTUVSX0JBU0U7Cn0Kc3RhdGljIGlubGluZSBTM0MyNFgwX1VTQl9ERVZJQ0UgKiBTM0MyNFgwX0dldEJhc2VfVVNCX0RFVklDRSh2b2lkKQp7CglyZXR1cm4gKFMzQzI0WDBfVVNCX0RFVklDRSAqIGNvbnN0KVMzQzI0WDBfVVNCX0RFVklDRV9CQVNFOwp9CnN0YXRpYyBpbmxpbmUgUzNDMjRYMF9XQVRDSERPRyAqIFMzQzI0WDBfR2V0QmFzZV9XQVRDSERPRyh2b2lkKQp7CglyZXR1cm4gKFMzQzI0WDBfV0FUQ0hET0cgKiBjb25zdClTM0MyNFgwX1dBVENIRE9HX0JBU0U7Cn0Kc3RhdGljIGlubGluZSBTM0MyNFgwX0kyQyAqIFMzQzI0WDBfR2V0QmFzZV9JMkModm9pZCkKewoJcmV0dXJuIChTM0MyNFgwX0kyQyAqIGNvbnN0KVMzQzI0WDBfSTJDX0JBU0U7Cn0Kc3RhdGljIGlubGluZSBTM0MyNFgwX0kyUyAqIFMzQzI0WDBfR2V0QmFzZV9JMlModm9pZCkKewoJcmV0dXJuIChTM0MyNFgwX0kyUyAqIGNvbnN0KVMzQzI0WDBfSTJTX0JBU0U7Cn0Kc3RhdGljIGlubGluZSBTM0MyNFgwX0dQSU8gKiBTM0MyNFgwX0dldEJhc2VfR1BJTyh2b2lkKQp7CglyZXR1cm4gKFMzQzI0WDBfR1BJTyAqIGNvbnN0KVMzQzI0WDBfR1BJT19CQVNFOwp9CnN0YXRpYyBpbmxpbmUgUzNDMjRYMF9SVEMgKiBTM0MyNFgwX0dldEJhc2VfUlRDKHZvaWQpCnsKCXJldHVybiAoUzNDMjRYMF9SVEMgKiBjb25zdClTM0MyNFgwX1JUQ19CQVNFOwp9CnN0YXRpYyBpbmxpbmUgUzNDMjQwMF9BREMgKiBTM0MyNDAwX0dldEJhc2VfQURDKHZvaWQpCnsKCXJldHVybiAoUzNDMjQwMF9BREMgKiBjb25zdClTM0MyNFgwX0FEQ19CQVNFOwp9CnN0YXRpYyBpbmxpbmUgUzNDMjRYMF9TUEkgKiBTM0MyNFgwX0dldEJhc2VfU1BJKHZvaWQpCnsKCXJldHVybiAoUzNDMjRYMF9TUEkgKiBjb25zdClTM0MyNFgwX1NQSV9CQVNFOwp9CnN0YXRpYyBpbmxpbmUgUzNDMjQwMF9NTUMgKiBTM0MyNDAwX0dldEJhc2VfTU1DKHZvaWQpCnsKCXJldHVybiAoUzNDMjQwMF9NTUMgKiBjb25zdClTM0MyNDAwX01NQ19CQVNFOwp9CgojaWYgMAovKiBNZW1vcnkgY29udHJvbCAqLwojZGVmaW5lIHJCV1NDT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDAwMDAwMCkKI2RlZmluZSByQkFOS0NPTjAJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0MDAwMDA0KQojZGVmaW5lIHJCQU5LQ09OMQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQwMDAwMDgpCiNkZWZpbmUgckJBTktDT04yCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDAwMDAwQykKI2RlZmluZSByQkFOS0NPTjMJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0MDAwMDEwKQojZGVmaW5lIHJCQU5LQ09ONAkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQwMDAwMTQpCiNkZWZpbmUgckJBTktDT041CSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDAwMDAxOCkKI2RlZmluZSByQkFOS0NPTjYJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0MDAwMDFDKQojZGVmaW5lIHJCQU5LQ09ONwkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQwMDAwMjApCiNkZWZpbmUgclJFRlJFU0gJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0MDAwMDI0KQojZGVmaW5lIHJCQU5LU0laRQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQwMDAwMjgpCiNkZWZpbmUgck1SU1JCNgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0MDAwMDJDKQojZGVmaW5lIHJNUlNSQjcJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDAwMDAzMCkKCgovKiBJTlRFUlJVUFQgKi8KI2RlZmluZSByU1JDUE5ECQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQ0MDAwMDApCiNkZWZpbmUgcklOVE1PRAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NDAwMDA0KQojZGVmaW5lIHJJTlRNU0sJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDQwMDAwOCkKI2RlZmluZSByUFJJT1JJVFkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NDAwMDBDKQojZGVmaW5lIHJJTlRQTkQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDQwMDAxMCkKI2RlZmluZSBySU5UT0ZGU0VUCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDQwMDAxNCkKCgovKiBETUEgKi8KI2RlZmluZSByRElTUkMwCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQ2MDAwMDApCiNkZWZpbmUgckRJRFNUMAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDA0KQojZGVmaW5lIHJEQ09OMAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDA4KQojZGVmaW5lIHJEU1RBVDAJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDYwMDAwQykKI2RlZmluZSByRENTUkMwCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQ2MDAwMTApCiNkZWZpbmUgckRDRFNUMAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDE0KQojZGVmaW5lIHJETUFTS1RSSUcwCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDYwMDAxOCkKI2RlZmluZSByRElTUkMxCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQ2MDAwMjApCiNkZWZpbmUgckRJRFNUMQkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDI0KQojZGVmaW5lIHJEQ09OMQkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDI4KQojZGVmaW5lIHJEU1RBVDEJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDYwMDAyQykKI2RlZmluZSByRENTUkMxCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQ2MDAwMzApCiNkZWZpbmUgckRDRFNUMQkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDM0KQojZGVmaW5lIHJETUFTS1RSSUcxCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDYwMDAzOCkKI2RlZmluZSByRElTUkMyCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQ2MDAwNDApCiNkZWZpbmUgckRJRFNUMgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDQ0KQojZGVmaW5lIHJEQ09OMgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDQ4KQojZGVmaW5lIHJEU1RBVDIJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDYwMDA0QykKI2RlZmluZSByRENTUkMyCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQ2MDAwNTApCiNkZWZpbmUgckRDRFNUMgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDU0KQojZGVmaW5lIHJETUFTS1RSSUcyCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDYwMDA1OCkKI2RlZmluZSByRElTUkMzCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQ2MDAwNjApCiNkZWZpbmUgckRJRFNUMwkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDY0KQojZGVmaW5lIHJEQ09OMwkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDY4KQojZGVmaW5lIHJEU1RBVDMJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDYwMDA2QykKI2RlZmluZSByRENTUkMzCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQ2MDAwNzApCiNkZWZpbmUgckRDRFNUMwkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0NjAwMDc0KQojZGVmaW5lIHJETUFTS1RSSUczCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDYwMDA3OCkKCgovKiBDTE9DSyAmIFBPV0VSIE1BTkFHRU1FTlQgKi8KI2RlZmluZSByTE9DS1RJTUUJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0ODAwMDAwKQojZGVmaW5lIHJNUExMQ09OCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDgwMDAwNCkKI2RlZmluZSByVVBMTENPTgkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQ4MDAwMDgpCiNkZWZpbmUgckNMS0NPTgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0ODAwMDBDKQojZGVmaW5lIHJDTEtTTE9XCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNDgwMDAxMCkKI2RlZmluZSByQ0xLRElWTgkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTQ4MDAwMTQpCgoKLyogTENEIENPTlRST0xMRVIgKi8KI2RlZmluZSByTENEQ09OMQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTRBMDAwMDApCiNkZWZpbmUgckxDRENPTjIJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0QTAwMDA0KQojZGVmaW5lIHJMQ0RDT04zCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNEEwMDAwOCkKI2RlZmluZSByTENEQ09ONAkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTRBMDAwMEMpCiNkZWZpbmUgckxDRENPTjUJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0QTAwMDEwKQojZGVmaW5lIHJMQ0RTQUREUjEJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0QTAwMDE0KQojZGVmaW5lIHJMQ0RTQUREUjIJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0QTAwMDE4KQojZGVmaW5lIHJMQ0RTQUREUjMJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0QTAwMDFDKQojZGVmaW5lIHJSRURMVVQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNEEwMDAyMCkKI2RlZmluZSByR1JFRU5MVVQJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0QTAwMDI0KQojZGVmaW5lIHJCTFVFTFVUCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNEEwMDAyOCkKI2RlZmluZSByRFAxXzIJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNEEwMDAyQykKI2RlZmluZSByRFA0XzcJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNEEwMDAzMCkKI2RlZmluZSByRFAzXzUJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNEEwMDAzNCkKI2RlZmluZSByRFAyXzMJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNEEwMDAzOCkKI2RlZmluZSByRFA1XzcJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNEEwMDAzYykKI2RlZmluZSByRFAzXzQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNEEwMDA0MCkKI2RlZmluZSByRFA0XzUJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNEEwMDA0NCkKI2RlZmluZSByRFA2XzcJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNEEwMDA0OCkKI2RlZmluZSByRElUSE1PREUJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE0QTAwMDRDKQojZGVmaW5lIHJUUEFMCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTRBMDAwNTApCiNkZWZpbmUgUEFMRVRURQkJKDB4MTRBMDA0MDApCS8qIFNKUyAqLwoKCi8qIFVBUlQgKi8KI2RlZmluZSByVUxDT04wCQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopMHgxNTAwMDAwMCkKI2RlZmluZSByVUNPTjAJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICopMHgxNTAwMDAwNCkKI2RlZmluZSByVUZDT04wCQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopMHgxNTAwMDAwOCkKI2RlZmluZSByVU1DT04wCQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopMHgxNTAwMDAwQykKI2RlZmluZSByVVRSU1RBVDAJKCoodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKTB4MTUwMDAwMTApCiNkZWZpbmUgclVFUlNUQVQwCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDAwMDE0KQojZGVmaW5lIHJVRlNUQVQwCSgqKHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICopMHgxNTAwMDAxOCkKI2RlZmluZSByVU1TVEFUMAkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopMHgxNTAwMDAxQykKI2RlZmluZSByVUJSRElWMAkoKih2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqKTB4MTUwMDAwMjgpCgojZGVmaW5lIHJVTENPTjEJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDA0MDAwKQojZGVmaW5lIHJVQ09OMQkJKCoodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikweDE1MDA0MDA0KQojZGVmaW5lIHJVRkNPTjEJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDA0MDA4KQojZGVmaW5lIHJVTUNPTjEJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDA0MDBDKQojZGVmaW5lIHJVVFJTVEFUMQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopMHgxNTAwNDAxMCkKI2RlZmluZSByVUVSU1RBVDEJKCoodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKTB4MTUwMDQwMTQpCiNkZWZpbmUgclVGU1RBVDEJKCoodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikweDE1MDA0MDE4KQojZGVmaW5lIHJVTVNUQVQxCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDA0MDFDKQojZGVmaW5lIHJVQlJESVYxCSgqKHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICopMHgxNTAwNDAyOCkKCiNpZmRlZiBfX0JJR19FTkRJQU4KI2RlZmluZSByVVRYSDAJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDAwMDIzKQojZGVmaW5lIHJVUlhIMAkJKCoodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKTB4MTUwMDAwMjcpCiNkZWZpbmUgclVUWEgxCQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopMHgxNTAwNDAyMykKI2RlZmluZSByVVJYSDEJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDA0MDI3KQoKI2RlZmluZSBXclVUWEgwKGNoKQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopMHgxNTAwMDAyMyk9KHVuc2lnbmVkIGNoYXIpKGNoKQojZGVmaW5lIFJkVVJYSDAoKQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopMHgxNTAwMDAyNykKI2RlZmluZSBXclVUWEgxKGNoKQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopMHgxNTAwNDAyMyk9KHVuc2lnbmVkIGNoYXIpKGNoKQojZGVmaW5lIFJkVVJYSDEoKQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopMHgxNTAwNDAyNykKCiNkZWZpbmUgVVRYSDAJCSgweDE1MDAwMDIwKzMpICAvKiBieXRlX2FjY2VzcyBhZGRyZXNzIGJ5IERNQSAqLwojZGVmaW5lIFVSWEgwCQkoMHgxNTAwMDAyNCszKQojZGVmaW5lIFVUWEgxCQkoMHgxNTAwNDAyMCszKQojZGVmaW5lIFVSWEgxCQkoMHgxNTAwNDAyNCszKQoKI2Vsc2UgLyogTGl0dGxlIEVuZGlhbiAqLwojZGVmaW5lIHJVVFhIMAkJKCoodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKTB4MTUwMDAwMjApCiNkZWZpbmUgclVSWEgwCQkoKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopMHgxNTAwMDAyNCkKI2RlZmluZSByVVRYSDEJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDA0MDIwKQojZGVmaW5lIHJVUlhIMQkJKCoodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKTB4MTUwMDQwMjQpCgojZGVmaW5lIFdyVVRYSDAoY2gpCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDAwMDIwKT0odW5zaWduZWQgY2hhcikoY2gpCiNkZWZpbmUgUmRVUlhIMCgpCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDAwMDI0KQojZGVmaW5lIFdyVVRYSDEoY2gpCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDA0MDIwKT0odW5zaWduZWQgY2hhcikoY2gpCiNkZWZpbmUgUmRVUlhIMSgpCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1MDA0MDI0KQoKI2RlZmluZSBVVFhIMAkJKDB4MTUwMDAwMjApICAgIC8qIGJ5dGVfYWNjZXNzIGFkZHJlc3MgYnkgRE1BICovCiNkZWZpbmUgVVJYSDAJCSgweDE1MDAwMDI0KQojZGVmaW5lIFVUWEgxCQkoMHgxNTAwNDAyMCkKI2RlZmluZSBVUlhIMQkJKDB4MTUwMDQwMjQpCiNlbmRpZgoKCi8qIFBXTSBUSU1FUiAqLwojZGVmaW5lIHJUQ0ZHMAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MTAwMDAwKQojZGVmaW5lIHJUQ0ZHMQkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MTAwMDA0KQojZGVmaW5lIHJUQ09OCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUxMDAwMDgpCiNkZWZpbmUgclRDTlRCMAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MTAwMDBDKQojZGVmaW5lIHJUQ01QQjAJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTEwMDAxMCkKI2RlZmluZSByVENOVE8wCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUxMDAwMTQpCiNkZWZpbmUgclRDTlRCMQkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MTAwMDE4KQojZGVmaW5lIHJUQ01QQjEJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTEwMDAxQykKI2RlZmluZSByVENOVE8xCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUxMDAwMjApCiNkZWZpbmUgclRDTlRCMgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MTAwMDI0KQojZGVmaW5lIHJUQ01QQjIJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTEwMDAyOCkKI2RlZmluZSByVENOVE8yCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUxMDAwMkMpCiNkZWZpbmUgclRDTlRCMwkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MTAwMDMwKQojZGVmaW5lIHJUQ01QQjMJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTEwMDAzNCkKI2RlZmluZSByVENOVE8zCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUxMDAwMzgpCiNkZWZpbmUgclRDTlRCNAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MTAwMDNDKQojZGVmaW5lIHJUQ05UTzQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTEwMDA0MCkKCgovKiBVU0IgREVWSUNFICovCiNkZWZpbmUgckZVTkNfQUREUl9SRUcJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MjAwMTQwKQojZGVmaW5lIHJQV1JfUkVHCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTIwMDE0NCkKI2RlZmluZSBySU5UX1JFRwkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUyMDAxNDgpCiNkZWZpbmUgcklOVF9NQVNLX1JFRwkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUyMDAxNEMpCiNkZWZpbmUgckZSQU1FX05VTV9SRUcJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MjAwMTUwKQojZGVmaW5lIHJSRVNVTUVfQ09OX1JFRwkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUyMDAxNTQpCiNkZWZpbmUgckVQMF9DU1IJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MjAwMTYwKQojZGVmaW5lIHJFUDBfTUFYUAkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUyMDAxNjQpCiNkZWZpbmUgckVQMF9PVVRfQ05UCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTIwMDE2OCkKI2RlZmluZSByRVAwX0ZJRk8JKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MjAwMTZDKQojZGVmaW5lIHJFUDFfSU5fQ1NSCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTIwMDE4MCkKI2RlZmluZSByRVAxX0lOX01BWFAJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MjAwMTg0KQojZGVmaW5lIHJFUDFfRklGTwkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUyMDAxODgpCiNkZWZpbmUgckVQMl9JTl9DU1IJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MjAwMTkwKQojZGVmaW5lIHJFUDJfSU5fTUFYUAkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUyMDAxOTQpCiNkZWZpbmUgckVQMl9GSUZPCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTIwMDE5OCkKI2RlZmluZSByRVAzX09VVF9DU1IJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MjAwMUEwKQojZGVmaW5lIHJFUDNfT1VUX01BWFAJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MjAwMUE0KQojZGVmaW5lIHJFUDNfT1VUX0NOVAkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUyMDAxQTgpCiNkZWZpbmUgckVQM19GSUZPCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTIwMDFBQykKI2RlZmluZSByRVA0X09VVF9DU1IJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MjAwMUIwKQojZGVmaW5lIHJFUDRfT1VUX01BWFAJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MjAwMUI0KQojZGVmaW5lIHJFUDRfT1VUX0NOVAkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUyMDAxQjgpCiNkZWZpbmUgckVQNF9GSUZPCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTIwMDFCQykKI2RlZmluZSByRE1BX0NPTgkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUyMDAxQzApCiNkZWZpbmUgckRNQV9VTklUCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTIwMDFDNCkKI2RlZmluZSByRE1BX0ZJRk8JKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1MjAwMUM4KQojZGVmaW5lIHJETUFfVFgJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTIwMDFDQykKI2RlZmluZSByVEVTVF9NT0RFCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTIwMDFGNCkKI2RlZmluZSBySU5fQ09OX1JFRwkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUyMDAxRjgpCgoKLyogV0FUQ0ggRE9HIFRJTUVSICovCiNkZWZpbmUgcldUQ09OCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUzMDAwMDApCiNkZWZpbmUgcldUREFUCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUzMDAwMDQpCiNkZWZpbmUgcldUQ05UCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTUzMDAwMDgpCgoKLyogSUlDICovCiNkZWZpbmUgcklJQ0NPTgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1NDAwMDAwKQojZGVmaW5lIHJJSUNTVEFUCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTQwMDAwNCkKI2RlZmluZSBySUlDQURECQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTU0MDAwMDgpCiNkZWZpbmUgcklJQ0RTCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTU0MDAwMEMpCgoKLyogSUlTICovCiNkZWZpbmUgcklJU0NPTgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1NTA4MDAwKQojZGVmaW5lIHJJSVNNT0QJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTUwODAwNCkKI2RlZmluZSBySUlTUFNSCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTU1MDgwMDgpCiNkZWZpbmUgcklJU0ZJRkNPTgkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTU1MDgwMEMpCgojaWZkZWYgX19CSUdfRU5ESUFOCiNkZWZpbmUgSUlTRklGCQkoKHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICopMHgxNTUwODAxMikKCiNlbHNlIC8qIExpdHRsZSBFbmRpYW4gKi8KI2RlZmluZSBJSVNGSUYJCSgodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikweDE1NTA4MDEwKQojZW5kaWYKCgovKiBJL08gUE9SVCAqLwojZGVmaW5lIHJQQUNPTgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1NjAwMDAwKQojZGVmaW5lIHJQQURBVAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1NjAwMDA0KQoKI2RlZmluZSByUEJDT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDAwOCkKI2RlZmluZSByUEJEQVQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDAwQykKI2RlZmluZSByUEJVUAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1NjAwMDEwKQoKI2RlZmluZSByUENDT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDAxNCkKI2RlZmluZSByUENEQVQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDAxOCkKI2RlZmluZSByUENVUAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1NjAwMDFDKQoKI2RlZmluZSByUERDT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDAyMCkKI2RlZmluZSByUEREQVQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDAyNCkKI2RlZmluZSByUERVUAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1NjAwMDI4KQoKI2RlZmluZSByUEVDT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDAyQykKI2RlZmluZSByUEVEQVQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDAzMCkKI2RlZmluZSByUEVVUAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1NjAwMDM0KQoKI2RlZmluZSByUEZDT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDAzOCkKI2RlZmluZSByUEZEQVQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDAzQykKI2RlZmluZSByUEZVUAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1NjAwMDQwKQoKI2RlZmluZSByUEdDT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDA0NCkKI2RlZmluZSByUEdEQVQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDA0OCkKI2RlZmluZSByUEdVUAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1NjAwMDRDKQoKI2RlZmluZSByT1BFTkNSCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTU2MDAwNTApCiNkZWZpbmUgck1JU0NDUgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1NjAwMDU0KQojZGVmaW5lIHJFWFRJTlQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTYwMDA1OCkKCgovKiBSVEMgKi8KI2lmZGVmIF9fQklHX0VORElBTgojZGVmaW5lIHJSVENDT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDQzKQojZGVmaW5lIHJSVENBTE0JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDUzKQojZGVmaW5lIHJBTE1TRUMJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDU3KQojZGVmaW5lIHJBTE1NSU4JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDVCKQojZGVmaW5lIHJBTE1IT1VSCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDVGKQojZGVmaW5lIHJBTE1EQVkJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDYzKQojZGVmaW5lIHJBTE1NT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDY3KQojZGVmaW5lIHJBTE1ZRUFSCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDZCKQojZGVmaW5lIHJSVENSU1QJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDZGKQojZGVmaW5lIHJCQ0RTRUMJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDczKQojZGVmaW5lIHJCQ0RNSU4JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDc3KQojZGVmaW5lIHJCQ0RIT1VSCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDdCKQojZGVmaW5lIHJCQ0REQVkJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDdGKQojZGVmaW5lIHJCQ0REQVRFCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDgzKQojZGVmaW5lIHJCQ0RNT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDg3KQojZGVmaW5lIHJCQ0RZRUFSCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDhCKQojZGVmaW5lIHJUSUNJTlQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDQ3KQoKI2Vsc2UgLyogTGl0dGxlIEVuZGlhbiAqLwojZGVmaW5lIHJSVENDT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDQwKQojZGVmaW5lIHJSVENBTE0JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDUwKQojZGVmaW5lIHJBTE1TRUMJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDU0KQojZGVmaW5lIHJBTE1NSU4JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDU4KQojZGVmaW5lIHJBTE1IT1VSCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDVDKQojZGVmaW5lIHJBTE1EQVkJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDYwKQojZGVmaW5lIHJBTE1NT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDY0KQojZGVmaW5lIHJBTE1ZRUFSCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDY4KQojZGVmaW5lIHJSVENSU1QJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDZDKQojZGVmaW5lIHJCQ0RTRUMJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDcwKQojZGVmaW5lIHJCQ0RNSU4JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDc0KQojZGVmaW5lIHJCQ0RIT1VSCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDc4KQojZGVmaW5lIHJCQ0REQVkJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDdDKQojZGVmaW5lIHJCQ0REQVRFCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDgwKQojZGVmaW5lIHJCQ0RNT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDg0KQojZGVmaW5lIHJCQ0RZRUFSCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDg4KQojZGVmaW5lIHJUSUNJTlQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikweDE1NzAwMDQ0KQojZW5kaWYKCgovKiBBREMgKi8KI2RlZmluZSByQURDQ09OCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTU4MDAwMDApCiNkZWZpbmUgckFEQ0RBVAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1ODAwMDA0KQoKCi8qIFNQSSAqLwojZGVmaW5lIHJTUENPTgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1OTAwMDAwKQojZGVmaW5lIHJTUFNUQQkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1OTAwMDA0KQojZGVmaW5lIHJTUFBJTgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1OTAwMDA4KQojZGVmaW5lIHJTUFBSRQkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1OTAwMDBDKQojZGVmaW5lIHJTUFREQVQJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNTkwMDAxMCkKI2RlZmluZSByU1BSREFUCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTU5MDAwMTQpCgoKLyogTU1DIElOVEVSRkFDRSAqLwojZGVmaW5lIHJNTUNPTgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1YTAwMDAwKQojZGVmaW5lIHJNTUNSUgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1YTAwMDA0KQojZGVmaW5lIHJNTUZDT04JCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNWEwMDAwOCkKI2RlZmluZSByTU1TVEEJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNWEwMDAwQykKI2RlZmluZSByTU1GU1RBCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTVhMDAwMTApCiNkZWZpbmUgck1NUFJFCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTVhMDAwMTQpCiNkZWZpbmUgck1NTEVOCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTVhMDAwMTgpCiNkZWZpbmUgck1NQ1I3CQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTVhMDAwMUMpCiNkZWZpbmUgck1NUlNQMAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1YTAwMDIwKQojZGVmaW5lIHJNTVJTUDEJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNWEwMDAyNCkKI2RlZmluZSByTU1SU1AyCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTVhMDAwMjgpCiNkZWZpbmUgck1NUlNQMwkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1YTAwMDJDKQojZGVmaW5lIHJNTUNNRDAJCSgqKHZvbGF0aWxlIHVuc2lnbmVkICopMHgxNWEwMDAzMCkKI2RlZmluZSByTU1DTUQxCQkoKih2b2xhdGlsZSB1bnNpZ25lZCAqKTB4MTVhMDAwMzQpCiNkZWZpbmUgck1NQ1IxNgkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1YTAwMDM4KQojZGVmaW5lIHJNTURBVAkJKCoodm9sYXRpbGUgdW5zaWduZWQgKikweDE1YTAwMDNDKQoKCi8qIElTUiAqLwojZGVmaW5lIHBJU1JfUkVTRVQJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHgwKSkKI2RlZmluZSBwSVNSX1VOREVGCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4NCkpCiNkZWZpbmUgcElTUl9TV0kJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHg4KSkKI2RlZmluZSBwSVNSX1BBQk9SVAkoKih1bnNpZ25lZCAqKShfSVNSX1NUQVJUQUREUkVTUysweEMpKQojZGVmaW5lIHBJU1JfREFCT1JUCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4MTApKQojZGVmaW5lIHBJU1JfUkVTRVJWRUQJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHgxNCkpCiNkZWZpbmUgcElTUl9JUlEJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHgxOCkpCiNkZWZpbmUgcElTUl9GSVEJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHgxQykpCgojZGVmaW5lIHBJU1JfRUlOVDAJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHgyMCkpCiNkZWZpbmUgcElTUl9FSU5UMQkoKih1bnNpZ25lZCAqKShfSVNSX1NUQVJUQUREUkVTUysweDI0KSkKI2RlZmluZSBwSVNSX0VJTlQyCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4MjgpKQojZGVmaW5lIHBJU1JfRUlOVDMJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHgyQykpCiNkZWZpbmUgcElTUl9FSU5UNAkoKih1bnNpZ25lZCAqKShfSVNSX1NUQVJUQUREUkVTUysweDMwKSkKI2RlZmluZSBwSVNSX0VJTlQ1CSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4MzQpKQojZGVmaW5lIHBJU1JfRUlOVDYJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHgzOCkpCiNkZWZpbmUgcElTUl9FSU5UNwkoKih1bnNpZ25lZCAqKShfSVNSX1NUQVJUQUREUkVTUysweDNDKSkKI2RlZmluZSBwSVNSX1RJQ0sJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHg0MCkpCiNkZWZpbmUgcElTUl9XRFQJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHg0NCkpCiNkZWZpbmUgcElTUl9USU1FUjAJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHg0OCkpCiNkZWZpbmUgcElTUl9USU1FUjEJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHg0QykpCiNkZWZpbmUgcElTUl9USU1FUjIJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHg1MCkpCiNkZWZpbmUgcElTUl9USU1FUjMJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHg1NCkpCiNkZWZpbmUgcElTUl9USU1FUjQJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHg1OCkpCiNkZWZpbmUgcElTUl9VRVJSMDEJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHg1QykpCiNkZWZpbmUgcElTUl9OT1RVU0VECSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4NjApKQojZGVmaW5lIHBJU1JfRE1BMAkoKih1bnNpZ25lZCAqKShfSVNSX1NUQVJUQUREUkVTUysweDY0KSkKI2RlZmluZSBwSVNSX0RNQTEJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHg2OCkpCiNkZWZpbmUgcElTUl9ETUEyCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4NkMpKQojZGVmaW5lIHBJU1JfRE1BMwkoKih1bnNpZ25lZCAqKShfSVNSX1NUQVJUQUREUkVTUysweDcwKSkKI2RlZmluZSBwSVNSX01NQwkoKih1bnNpZ25lZCAqKShfSVNSX1NUQVJUQUREUkVTUysweDc0KSkKI2RlZmluZSBwSVNSX1NQSQkoKih1bnNpZ25lZCAqKShfSVNSX1NUQVJUQUREUkVTUysweDc4KSkKI2RlZmluZSBwSVNSX1VSWEQwCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4N0MpKQojZGVmaW5lIHBJU1JfVVJYRDEJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHg4MCkpCiNkZWZpbmUgcElTUl9VU0JECSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4ODQpKQojZGVmaW5lIHBJU1JfVVNCSAkoKih1bnNpZ25lZCAqKShfSVNSX1NUQVJUQUREUkVTUysweDg4KSkKI2RlZmluZSBwSVNSX0lJQwkoKih1bnNpZ25lZCAqKShfSVNSX1NUQVJUQUREUkVTUysweDhDKSkKI2RlZmluZSBwSVNSX1VUWEQwCSgqKHVuc2lnbmVkICopKF9JU1JfU1RBUlRBRERSRVNTKzB4OTApKQojZGVmaW5lIHBJU1JfVVRYRDEJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHg5NCkpCiNkZWZpbmUgcElTUl9SVEMJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHg5OCkpCiNkZWZpbmUgcElTUl9BREMJKCoodW5zaWduZWQgKikoX0lTUl9TVEFSVEFERFJFU1MrMHhBMCkpCgoKLyogUEVORElORyBCSVQgKi8KI2RlZmluZSBCSVRfRUlOVDAJKDB4MSkKI2RlZmluZSBCSVRfRUlOVDEJKDB4MTw8MSkKI2RlZmluZSBCSVRfRUlOVDIJKDB4MTw8MikKI2RlZmluZSBCSVRfRUlOVDMJKDB4MTw8MykKI2RlZmluZSBCSVRfRUlOVDQJKDB4MTw8NCkKI2RlZmluZSBCSVRfRUlOVDUJKDB4MTw8NSkKI2RlZmluZSBCSVRfRUlOVDYJKDB4MTw8NikKI2RlZmluZSBCSVRfRUlOVDcJKDB4MTw8NykKI2RlZmluZSBCSVRfVElDSwkoMHgxPDw4KQojZGVmaW5lIEJJVF9XRFQJCSgweDE8PDkpCiNkZWZpbmUgQklUX1RJTUVSMAkoMHgxPDwxMCkKI2RlZmluZSBCSVRfVElNRVIxCSgweDE8PDExKQojZGVmaW5lIEJJVF9USU1FUjIJKDB4MTw8MTIpCiNkZWZpbmUgQklUX1RJTUVSMwkoMHgxPDwxMykKI2RlZmluZSBCSVRfVElNRVI0CSgweDE8PDE0KQojZGVmaW5lIEJJVF9VRVJSMDEJKDB4MTw8MTUpCiNkZWZpbmUgQklUX05PVFVTRUQJKDB4MTw8MTYpCiNkZWZpbmUgQklUX0RNQTAJKDB4MTw8MTcpCiNkZWZpbmUgQklUX0RNQTEJKDB4MTw8MTgpCiNkZWZpbmUgQklUX0RNQTIJKDB4MTw8MTkpCiNkZWZpbmUgQklUX0RNQTMJKDB4MTw8MjApCiNkZWZpbmUgQklUX01NQwkJKDB4MTw8MjEpCiNkZWZpbmUgQklUX1NQSQkJKDB4MTw8MjIpCiNkZWZpbmUgQklUX1VSWEQwCSgweDE8PDIzKQojZGVmaW5lIEJJVF9VUlhEMQkoMHgxPDwyNCkKI2RlZmluZSBCSVRfVVNCRAkoMHgxPDwyNSkKI2RlZmluZSBCSVRfVVNCSAkoMHgxPDwyNikKI2RlZmluZSBCSVRfSUlDCQkoMHgxPDwyNykKI2RlZmluZSBCSVRfVVRYRDAJKDB4MTw8MjgpCiNkZWZpbmUgQklUX1VUWEQxCSgweDE8PDI5KQojZGVmaW5lIEJJVF9SVEMJCSgweDE8PDMwKQojZGVmaW5lIEJJVF9BREMJCSgweDE8PDMxKQojZGVmaW5lIEJJVF9BTExNU0sJKDB4RkZGRkZGRkYpCgojZGVmaW5lIENsZWFyUGVuZGluZyhiaXQpIHtcCgkJIHJTUkNQTkQgPSBiaXQ7XAoJCSBySU5UUE5EID0gYml0O1wKCQkgcklOVFBORDtcCgkJIH0KLyogV2FpdCB1bnRpbCBySU5UUE5EIGlzIGNoYW5nZWQgZm9yIHRoZSBjYXNlIHRoYXQgdGhlIElTUiBpcyB2ZXJ5IHNob3J0LiAqLwojZW5kaWYKI2VuZGlmIC8qX19TM0MyNDAwX0hfXyovCg==