LyogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbi4gIEdlbmVyYXRlZCBmcm9tIGNvbmZpZ3VyZS5pbiBieSBhdXRvaGVhZGVyLiAgKi8KLyogCiAqIG5ldC1zbm1wIGNvbmZpZ3VyYXRpb24gaGVhZGVyIGZpbGUKICovCi8qIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvcHlyaWdodChzKS4gIFNlZQogKiB0aGUgTmV0LVNOTVAncyBDT1BZSU5HIGZpbGUgZm9yIG1vcmUgZGV0YWlscyBhbmQgb3RoZXIgY29weXJpZ2h0cwogKiB0aGF0IG1heSBhcHBseToKICovCi8qCiAqIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgY29weXJpZ2h0ZWQgYnk6CiAqIENvcHlyaWdodCCpIDIwMDMgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKiBVc2UgaXMgc3ViamVjdCB0byBsaWNlbnNlIHRlcm1zIHNwZWNpZmllZCBpbiB0aGUgQ09QWUlORyBmaWxlCiAqIGRpc3RyaWJ1dGVkIHdpdGggdGhlIE5ldC1TTk1QIHBhY2thZ2UuCiAqLwoKI2lmbmRlZiBORVRfU05NUF9DT05GSUdfSAojZGVmaW5lIE5FVF9TTk1QX0NPTkZJR19ICgoKLyogKioqKioqKioqIE5FVFNOTVBfTUFSS19CRUdJTl9BVVRPQ09ORl9ERUZJTklUSU9OUyAqKioqKioqKiogKi8KLyoKICogcHV0IGFsbCBhdXRvY29uZi1zcGVjaWZpYyBkZWZpbml0aW9ucyBiZWxvdyBoZXJlCiAqCiAqLwojaWZuZGVmIE5FVFNOTVBfTk9fQVVUT0NPTkZfREVGSU5JVElPTlMKCi8qIGRlZmluZSBpZiB5b3UgaGF2ZSB0eXBlIGludDMyX3QgKi8KI3VuZGVmIEhBVkVfSU5UMzJfVAoKLyogZGVmaW5lIGlmIHlvdSBoYXZlIHR5cGUgdWludDMyX3QgKi8KI3VuZGVmIEhBVkVfVUlOVDMyX1QKCi8qIGRlZmluZSBpZiB5b3UgaGF2ZSB0eXBlIHVfaW50MzJfdCAqLwojdW5kZWYgSEFWRV9VX0lOVDMyX1QKCi8qIGRlZmluZSBpZiB5b3UgaGF2ZSB0eXBlIGludDY0X3QgKi8KI3VuZGVmIEhBVkVfSU5UNjRfVAoKLyogZGVmaW5lIGlmIHlvdSBoYXZlIHR5cGUgdWludDY0X3QgKi8KI3VuZGVmIEhBVkVfVUlOVDY0X1QKCi8qIGRlZmluZSBpZiB5b3UgaGF2ZSB0eXBlIHVfaW50NjRfdCAqLwojdW5kZWYgSEFWRV9VX0lOVDY0X1QKCi8qIGRlZmluZSBpZiB5b3UgaGF2ZSB0eXBlIGludHB0cl90ICovCiN1bmRlZiBIQVZFX0lOVFBUUl9UCgovKiBkZWZpbmUgaWYgeW91IGhhdmUgdHlwZSB1aW50cHRyX3QgKi8KI3VuZGVmIEhBVkVfVUlOVFBUUl9UCgovKiBnb3Qgc29ja2xlbl90PyAqLwojdW5kZWYgSEFWRV9TT0NLTEVOX1QKCi8qIGdvdCBpbl9hZGRyX3Q/ICovCiN1bmRlZiBIQVZFX0lOX0FERFJfVAoKLyogZGVmaW5lIGlmIHlvdSBoYXZlIGdldGRldnMoKSAqLwojdW5kZWYgSEFWRV9HRVRERVZTCgovKiBkZWZpbmUgaWYgeW91IGhhdmUgZGV2c3RhdF9nZXRkZXZzKCkgKi8KI3VuZGVmIEhBVkVfREVWU1RBVF9HRVRERVZTCgovKiBkZWZpbmUgaWYgeW91IGhhdmUgPG5ldGluZXQvaW5fcGNiLmg+ICovCiN1bmRlZiBIQVZFX05FVElORVRfSU5fUENCX0gKCi8qIGRlZmluZSBpZiB5b3UgaGF2ZSA8c3lzL2Rpc2tsYWJlbC5oPiAqLwojdW5kZWYgSEFWRV9TWVNfRElTS0xBQkVMX0gKCi8qIGRlZmluZSBpZiB5b3VyIGNvbXBpbGVyIChwcm9jZXNzb3IpIGRlZmluZXMgX19GVU5DVElPTl9fIGZvciB5b3UgKi8KI3VuZGVmIEhBVkVfQ1BQX1VOREVSQkFSX0ZVTkNUSU9OX0RFRklORUQKCi8qIG9uIGFpeCwgaWYgeW91IGhhdmUgcGVyZnN0YXQgKi8KI3VuZGVmIEhBVkVfUEVSRlNUQVQKCi8qIGRlZmluZSBpZiB5b3UgaGF2ZSBsaWJkYiwgbGlibm0gb3IgbGlicnBtLCByZXNwZWN0aXZlbHkgKi8KI3VuZGVmIEhBVkVfTElCREIKI3VuZGVmIEhBVkVfTElCTk0KI3VuZGVmIEhBVkVfTElCUlBNCgovKiBkZWZpbmUgaWYgeW91IGhhdmUgcGtnaW5mbyAqLwojdW5kZWYgSEFWRV9QS0dJTkZPCgovKiBkZWZpbmUgaWYgeW91IGhhdmUgZ2V0aG9zdGJ5bmFtZSAqLwojdW5kZWYgSEFWRV9HRVRIT1NUQllOQU1FCgovKiBkZWZpbmUgaWYgeW91IGhhdmUgdGhlIHBlcmxfZXZhbF9wdigpIGZ1bmN0aW9uICovCiN1bmRlZiBIQVZFX1BFUkxfRVZBTF9QVl9MQwoKLyogZGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBQZXJsX2V2YWxfcHYoKSBmdW5jdGlvbiAqLwojdW5kZWYgSEFWRV9QRVJMX0VWQUxfUFZfVUMKCi8qIHByaW50aW5nIHN5c3RlbSAqLwojdW5kZWYgSEFWRV9MUFNUQVQKI3VuZGVmIExQU1RBVF9QQVRICiN1bmRlZiBIQVZFX1BSSU5UQ0FQCi8qIFVzZSBkbWFsbG9jIHRvIGRvIG1hbGxvYyBkZWJ1Z2dpbmc/ICovCiN1bmRlZiBIQVZFX0RNQUxMT0NfSAoKLyogbG9jYXRpb24gb2YgVU5JWCBrZXJuZWwgKi8KI2RlZmluZSBLRVJORUxfTE9DICIvdm11bml4IgoKLyogbG9jYXRpb24gb2YgbW91bnQgdGFibGUgbGlzdCAqLwojZGVmaW5lIEVUQ19NTlRUQUIgIi9ldGMvbW50dGFiIgoKLyogbG9jYXRpb24gb2Ygc3dhcCBkZXZpY2UgKG9rIGlmIG5vdCBmb3VuZCkgKi8KI3VuZGVmIERNRU1fTE9DCgovKiBDb21tYW5kIHRvIGdlbmVyYXRlIHBzIG91dHB1dCwgdGhlIGZpbmFsIGNvbHVtbiBtdXN0IGJlIHRoZSBwcm9jZXNzCiAgIG5hbWUgd2l0aE9VVCBhcmd1bWVudHMgKi8KI2RlZmluZSBQU0NNRCAiL2Jpbi9wcyIKCi8qIFdoZXJlIGlzIHRoZSB1bmFtZSBjb21tYW5kICovCiNkZWZpbmUgVU5BTUVQUk9HICIvYmluL3VuYW1lIgoKLyogZGVmaW5lIGlmIHlvdSBhcmUgdXNpbmcgbGludXggYW5kIC9wcm9jL25ldC9kZXYgaGFzIHRoZSBjb21wcmVzc2VkCiAgIGZpZWxkLCB3aGljaCBleGlzdHMgaW4gbGludXgga2VybmVscyAyLjIgYW5kIGdyZWF0ZXIuICovCiN1bmRlZiBQUk9DX05FVF9ERVZfSEFTX0NPTVBSRVNTRUQKCi8qIGRlZmluZSBydGVudHJ5IHRvIG9ydGVudHJ5IG9uIFNZU1YgbWFjaGluZXMgKGFscGhhcykgKi8KI3VuZGVmIFJURU5UUlkKCi8qIFVzZSBCU0QgNC40IHJvdXRpbmcgdGFibGUgZW50cmllcz8gKi8KI3VuZGVmIFJURU5UUllfNF80CgovKiBEb2VzIHN0cnVjdCBzaWdhY3Rpb24gaGF2ZSBhIHNhX3NpZ2FjdGlvbiBmaWVsZD8gKi8KI3VuZGVmIFNUUlVDVF9TSUdBQ1RJT05fSEFTX1NBX1NJR0FDVElPTgoKLyogRG9lcyBzdHJ1Y3QgdG0gaGF2ZSBhIHRtX2dtdG9mZiBmaWVsZD8gKi8KI3VuZGVmIFNUUlVDVF9UTV9IQVNfVE1fR01UT0ZGRgoKLyogRG9lcyBzdHJ1Y3Qgc29ja2FkZHIgaGF2ZSBhIHNhX2xlbiBmaWVsZD8gKi8KI3VuZGVmIFNUUlVDVF9TT0NLQUREUl9IQVNfU0FfTEVOCgovKiBEb2VzIHN0cnVjdCBzb2NrYWRkciBoYXZlIGEgc2FfZmFtaWx5MiBmaWVsZD8gKi8KI3VuZGVmIFNUUlVDVF9TT0NLQUREUl9IQVNfU0FfVU5JT05fU0FfR0VORVJJQ19TQV9GQU1JTFkyCgovKiBEb2VzIHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIGhhdmUgYSBzc19mYW1pbHkgZmllbGQ/ICovCiN1bmRlZiBTVFJVQ1RfU09DS0FERFJfU1RPUkFHRV9IQVNfU1NfRkFNSUxZCgovKiBEb2VzIHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIGhhdmUgYSBfX3NzX2ZhbWlseSBmaWVsZD8gKi8KI3VuZGVmIFNUUlVDVF9TT0NLQUREUl9TVE9SQUdFX0hBU19fX1NTX0ZBTUlMWQoKLyogRG9lcyBzdHJ1Y3QgaW42X2FkZHIgaGF2ZSBhIHM2X3VuLnNhNl9sYWRkIGZpZWxkPyAqLwojdW5kZWYgU1RSVUNUX0lONl9BRERSX0hBU19TNl9VTl9TQTZfTEFERFIKCi8qIHJ0ZW50cnkgc3RydWN0dXJlIHRlc3RzICovCiN1bmRlZiBSVEVOVFJZX1JUX05FWFQKI3VuZGVmIFNUUlVDVF9SVEVOVFJZX0hBU19SVF9EU1QKI3VuZGVmIFNUUlVDVF9SVEVOVFJZX0hBU19SVF9VTklUCiN1bmRlZiBTVFJVQ1RfUlRFTlRSWV9IQVNfUlRfVVNFCiN1bmRlZiBTVFJVQ1RfUlRFTlRSWV9IQVNfUlRfUkVGQ05UCiN1bmRlZiBTVFJVQ1RfUlRFTlRSWV9IQVNfUlRfSEFTSAoKLyogaWZuZXQgc3RydWN0dXJlIHRlc3RzICovCiN1bmRlZiBTVFJVQ1RfSUZORVRfSEFTX0lGX0JBVURSQVRFCiN1bmRlZiBTVFJVQ1RfSUZORVRfSEFTX0lGX0JBVURSQVRFX0lGU19WQUxVRQojdW5kZWYgU1RSVUNUX0lGTkVUX0hBU19JRl9TUEVFRAojdW5kZWYgU1RSVUNUX0lGTkVUX0hBU19JRl9UWVBFCiN1bmRlZiBTVFJVQ1RfSUZORVRfSEFTX0lGX0lNQ0FTVFMKI3VuZGVmIFNUUlVDVF9JRk5FVF9IQVNfSUZfSVFEUk9QUwojdW5kZWYgU1RSVUNUX0lGTkVUX0hBU19JRl9MQVNUQ0hBTkdFX1RWX1NFQwojdW5kZWYgU1RSVUNUX0lGTkVUX0hBU19JRl9MQVNUQ0hBTkdFX1RWX05TRUMKI3VuZGVmIFNUUlVDVF9JRk5FVF9IQVNfSUZfTk9QUk9UTwojdW5kZWYgU1RSVUNUX0lGTkVUX0hBU19JRl9PTUNBU1RTCiN1bmRlZiBTVFJVQ1RfSUZORVRfSEFTX0lGX1hOQU1FCiN1bmRlZiBTVFJVQ1RfSUZORVRfSEFTX0lGX09CWVRFUwojdW5kZWYgU1RSVUNUX0lGTkVUX0hBU19JRl9JQllURVMKI3VuZGVmIFNUUlVDVF9JRk5FVF9IQVNfSUZfQUREUkxJU1QKCi8qIHRjcHN0YXQudGNwc19yY3ZtZW1kcm9wICovCiN1bmRlZiBTVFJVQ1RfVENQU1RBVF9IQVNfVENQU19SQ1ZNRU1EUk9QCgovKiB1ZHBzdGF0LnVkcHNfZGlzY2FyZCAqLwojdW5kZWYgU1RSVUNUX1VEUFNUQVRfSEFTX1VEUFNfRElTQ0FSRAoKLyogdWRwc3RhdC51ZHBzX2Rpc2NhcmQgKi8KI3VuZGVmIFNUUlVDVF9VRFBTVEFUX0hBU19VRFBTX05PUE9SVAoKLyogdWRwc3RhdC51ZHBzX2Rpc2NhcmQgKi8KI3VuZGVmIFNUUlVDVF9VRFBTVEFUX0hBU19VRFBTX05PUE9SVEJDQVNUCgovKiB1ZHBzdGF0LnVkcHNfZGlzY2FyZCAqLwojdW5kZWYgU1RSVUNUX1VEUFNUQVRfSEFTX1VEUFNfRlVMTFNPQ0sKCi8qIGFycGhkLmF0X25leHQgKi8KI3VuZGVmIFNUUlVDVF9BUlBIRF9IQVNfQVRfTkVYVAoKLyogaWZhZGRyLmlmYV9uZXh0ICovCiN1bmRlZiBTVFJVQ1RfSUZBRERSX0hBU19JRkFfTkVYVAoKLyogaWZuZXQuaWZfbXR1ICovCiN1bmRlZiBTVFJVQ1RfSUZORVRfSEFTX0lGX01UVQoKLyogc3dkZXZ0LnN3X25ibGtzZW5hYmxlZCAqLwojdW5kZWYgU1RSVUNUX1NXREVWVF9IQVNfU1dfTkJMS1NFTkFCTEVECgovKiBubGlzdC5uX3ZhbHVlICovCiN1bmRlZiBTVFJVQ1RfTkxJU1RfSEFTX05fVkFMVUUKCi8qIG5saXN0NjQubl92YWx1ZSAqLwojdW5kZWYgU1RSVUNUX05MSVNUNjRfSEFTX05fVkFMVUUKCi8qIGlwc3RhdCBzdHJ1Y3R1cmUgdGVzdHMgKi8KI3VuZGVmIFNUUlVDVF9JUFNUQVRfSEFTX0lQU19DQU5URk9SV0FSRAojdW5kZWYgU1RSVUNUX0lQU1RBVF9IQVNfSVBTX0NBTlRGUkFHCiN1bmRlZiBTVFJVQ1RfSVBTVEFUX0hBU19JUFNfREVMSVZFUkVECiN1bmRlZiBTVFJVQ1RfSVBTVEFUX0hBU19JUFNfRlJBR0RST1BQRUQKI3VuZGVmIFNUUlVDVF9JUFNUQVRfSEFTX0lQU19GUkFHVElNRU9VVAojdW5kZWYgU1RSVUNUX0lQU1RBVF9IQVNfSVBTX0xPQ0FMT1VUCiN1bmRlZiBTVFJVQ1RfSVBTVEFUX0hBU19JUFNfTk9QUk9UTwojdW5kZWYgU1RSVUNUX0lQU1RBVF9IQVNfSVBTX05PUk9VVEUKI3VuZGVmIFNUUlVDVF9JUFNUQVRfSEFTX0lQU19PRFJPUFBFRAojdW5kZWYgU1RSVUNUX0lQU1RBVF9IQVNfSVBTX09GUkFHTUVOVFMKI3VuZGVmIFNUUlVDVF9JUFNUQVRfSEFTX0lQU19SRUFTU0VNQkxFRAoKLyogdmZzc3RhdC5mX2Zyc2l6ZSAqLwojdW5kZWYgU1RSVUNUX1NUQVRWRlNfSEFTX0ZfRlJTSVpFCgovKiB2ZnNzdGF0LmZfZmlsZXMgKi8KI3VuZGVmIFNUUlVDVF9TVEFUVkZTX0hBU19GX0ZJTEVTCgovKiBzdGF0ZnMgaW5vZGUgc3RydWN0dXJlIHRlc3RzKi8KI3VuZGVmIFNUUlVDVF9TVEFURlNfSEFTX0ZfRklMRVMKI3VuZGVmIFNUUlVDVF9TVEFURlNfSEFTX0ZfRkZSRUUKI3VuZGVmIFNUUlVDVF9TVEFURlNfSEFTX0ZfRkFWQUlMCgovKiBkZXNfa3Nfc3RydWN0LndlYWtfa2V5ICovCiN1bmRlZiBTVFJVQ1RfREVTX0tTX1NUUlVDVF9IQVNfV0VBS19LRVkKCi8qIGlmbmV0IG5lZWRzIHRvIGhhdmUgX0tFUk5FTCBkZWZpbmVkICovCiN1bmRlZiBJRk5FVF9ORUVEU19LRVJORUwKCi8qIHN5c2N0bCB3b3JrcyB0byBnZXQgYm9vdHRpbWUsIGV0Yy4uLiAqLwojdW5kZWYgTkVUU05NUF9DQU5fVVNFX1NZU0NUTAoKLyogZGVmaW5lIGlmIFNJT0NHSUZBRERSIGV4aXN0cyBpbiBzeXMvaW9jdGwuaCAqLwojdW5kZWYgU1lTX0lPQ1RMX0hfSEFTX1NJT0NHSUZBRERSCgovKiBEZWZpbmUgaWYgc3RhdGZzIHRha2VzIDIgYXJncyBhbmQgdGhlIHNlY29uZCBhcmd1bWVudCBoYXMKICAgdHlwZSBzdHJ1Y3QgZnNfZGF0YS4gW1VsdHJpeF0gKi8KI3VuZGVmIFNUQVRfU1RBVEZTX0ZTX0RBVEEKCi8qIERlZmluZSBpZiB0aGUgVENQIHRpbWVyIGNvbnN0YW50cyBpbiA8bmV0aW5ldC90Y3BfdGltZXIuaD4KICAgZGVwZW5kIG9uIHRoZSBpbnRlZ2VyIHZhcmlhYmxlIGBoeicuICBbRnJlZUJTRCA0LnhdICovCiN1bmRlZiBUQ1BUVl9ORUVEU19IWgoKLyogTm90LXRvLWJlLWNvbXBpbGVkIG1hY3JvcyBmb3IgdXNlIGJ5IGNvbmZpZ3VyZSBvbmx5ICovCiNkZWZpbmUgY29uZmlnX3JlcXVpcmUoeCkKI2RlZmluZSBjb25maWdfZXhjbHVkZSh4KQojZGVmaW5lIGNvbmZpZ19hcmNoX3JlcXVpcmUoeCx5KQojZGVmaW5lIGNvbmZpZ19wYXJzZV9kb3RfY29uZih3LHgseSx6KQojZGVmaW5lIGNvbmZpZ19hZGRfbWliKHgpCiNkZWZpbmUgY29uZmlnX2JlbG9uZ3NfaW4oeCkKI2RlZmluZSBjb25maWdfZXJyb3IoeCkKI2RlZmluZSBjb25maWdfd2FybmluZyh4KQogIAojaWYgZGVmaW5lZCAoV0lOMzIpIHx8IGRlZmluZWQgKG1pbmd3MzIpIHx8IGRlZmluZWQgKGN5Z3dpbikKI2RlZmluZSBFTlZfU0VQQVJBVE9SICI7IgojZGVmaW5lIEVOVl9TRVBBUkFUT1JfQ0hBUiAnOycKI2Vsc2UKI2RlZmluZSBFTlZfU0VQQVJBVE9SICI6IgojZGVmaW5lIEVOVl9TRVBBUkFUT1JfQ0hBUiAnOicKI2VuZGlmCgovKiBkZWZpbml0aW9ucyBhZGRlZCBieSBjb25maWd1cmUgb24tdGhlLWZseSAqLwoKLyogRGVmaW5lIHRvIG9uZSBvZiBgX2dldGI2NycsIGBHRVRCNjcnLCBgZ2V0YjY3JyBmb3IgQ3JheS0yIGFuZCBDcmF5LVlNUAogICBzeXN0ZW1zLiBUaGlzIGZ1bmN0aW9uIGlzIHJlcXVpcmVkIGZvciBgYWxsb2NhLmMnIHN1cHBvcnQgb24gdGhvc2Ugc3lzdGVtcy4KICAgKi8KI3VuZGVmIENSQVlfU1RBQ0tTRUdfRU5ECgovKiBEZWZpbmUgdG8gMSBpZiB1c2luZyBgYWxsb2NhLmMnLiAqLwojdW5kZWYgQ19BTExPQ0EKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgQUVTX2NmYjEyOF9lbmNyeXB0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfQUVTX0NGQjEyOF9FTkNSWVBUCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSBgYWxsb2NhJywgYXMgYSBmdW5jdGlvbiBvciBtYWNyby4gKi8KI3VuZGVmIEhBVkVfQUxMT0NBCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSA8YWxsb2NhLmg+IGFuZCBpdCBzaG91bGQgYmUgdXNlZCAobm90IG9uIFVsdHJpeCkuCiAgICovCiN1bmRlZiBIQVZFX0FMTE9DQV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGFycGEvaW5ldC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfQVJQQV9JTkVUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8YXNtL3BhZ2UuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0FTTV9QQUdFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8YXNtL3R5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9BU01fVFlQRVNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBiY29weScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0JDT1BZCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNnZXRuZXh0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfQ0dFVE5FWFQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgY2hvd24nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9DSE9XTgoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYENvdW50ZXI2NCcuICovCiN1bmRlZiBIQVZFX0NPVU5URVI2NAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkaXJlbnQuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLgogICAqLwojdW5kZWYgSEFWRV9ESVJFTlRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkbGZjbi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfRExGQ05fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBkbG9wZW4nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9ETE9QRU4KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZXJyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9FUlJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBldmFsX3B2JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfRVZBTF9QVgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBFVlBfTURfQ1RYX2NyZWF0ZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0VWUF9NRF9DVFhfQ1JFQVRFCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYEVWUF9NRF9DVFhfZGVzdHJveScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0VWUF9NRF9DVFhfREVTVFJPWQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBleGVjdicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0VYRUNWCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGZjbnRsLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9GQ05UTF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZvcmsnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9GT1JLCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGZzdGFiLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9GU1RBQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdhaV9zdHJlcnJvcicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dBSV9TVFJFUlJPUgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRhZGRyaW5mbycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVEFERFJJTkZPCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldGR0YWJsZXNpemUnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVREVEFCTEVTSVpFCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldGZzc3RhdCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVEZTU1RBVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRncm5hbScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVEdSTkFNCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldGhvc3RuYW1lJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUSE9TVE5BTUUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0aXBub2RlYnluYW1lJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUSVBOT0RFQllOQU1FCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldGxvYWRhdmcnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRMT0FEQVZHCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldG1udGVudCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVE1OVEVOVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxnZXRvcHQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0dFVE9QVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldHBhZ2VzaXplJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUUEFHRVNJWkUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0cGlkJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUUElECgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldHB3bmFtJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUUFdOQU0KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0dGltZW9mZGF5JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUVElNRU9GREFZCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGdycC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfR1JQX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgaGFzbW50b3B0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfSEFTTU5UT1BUCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGlmX2ZyZWVuYW1laW5kZXgnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9JRl9GUkVFTkFNRUlOREVYCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGlmX25hbWVpbmRleCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lGX05BTUVJTkRFWAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpZl9uYW1ldG9pbmRleCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lGX05BTUVUT0lOREVYCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGluZGV4JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfSU5ERVgKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8aW5ldC9taWIyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9JTkVUX01JQjJfSAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYGludDE2X3QnLiAqLwojdW5kZWYgSEFWRV9JTlQxNl9UCgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgaW50MzJfdCcuICovCiN1bmRlZiBIQVZFX0lOVDMyX1QKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBpbnQ2NF90Jy4gKi8KI3VuZGVmIEhBVkVfSU5UNjRfVAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYGludDhfdCcuICovCiN1bmRlZiBIQVZFX0lOVDhfVAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYGludG1heF90Jy4gKi8KI3VuZGVmIEhBVkVfSU5UTUFYX1QKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBpbnRwdHJfdCcuICovCiN1bmRlZiBIQVZFX0lOVFBUUl9UCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGludHR5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9JTlRUWVBFU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGlvY3Rscy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfSU9DVExTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8aW8uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0lPX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBga2luZm9fZ2V0X2NwdXMnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9LSU5GT19HRVRfQ1BVUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBrbmxpc3QnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9LTkxJU1QKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8a3N0YXQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0tTVEFUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBga3ZtX2dldHByb2NzJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfS1ZNX0dFVFBST0NTCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGt2bV9nZXRzd2FwaW5mbycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0tWTV9HRVRTV0FQSU5GTwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxrdm0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0tWTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGt2bV9vcGVuZmlsZXMnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9LVk1fT1BFTkZJTEVTCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNyeXB0bycgbGlicmFyeSAoLWxjcnlwdG8pLiAqLwojdW5kZWYgSEFWRV9MSUJDUllQVE8KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZGwnIGxpYnJhcnkgKC1sZGwpLiAqLwojdW5kZWYgSEFWRV9MSUJETAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBlZmVuY2UnIGxpYnJhcnkgKC1sZWZlbmNlKS4gKi8KI3VuZGVmIEhBVkVfTElCRUZFTkNFCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGVsZicgbGlicmFyeSAoLWxlbGYpLiAqLwojdW5kZWYgSEFWRV9MSUJFTEYKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBga3N0YXQnIGxpYnJhcnkgKC1sa3N0YXQpLiAqLwojdW5kZWYgSEFWRV9MSUJLU1RBVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBrdm0nIGxpYnJhcnkgKC1sa3ZtKS4gKi8KI3VuZGVmIEhBVkVfTElCS1ZNCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG0nIGxpYnJhcnkgKC1sbSkuICovCiN1bmRlZiBIQVZFX0xJQk0KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWxkJyBsaWJyYXJ5ICgtbG1sZCkuICovCiN1bmRlZiBIQVZFX0xJQk1MRAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBuc2wnIGxpYnJhcnkgKC1sbnNsKS4gKi8KI3VuZGVmIEhBVkVfTElCTlNMCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpYnBlcmZzdGF0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9MSUJQRVJGU1RBVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHBrY3MxMScgbGlicmFyeSAoLWxwa2NzMTEpLiAqLwojdW5kZWYgSEFWRV9MSUJQS0NTMTEKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgUlNBZ2x1ZScgbGlicmFyeSAoLWxSU0FnbHVlKS4gKi8KI3VuZGVmIEhBVkVfTElCUlNBR0xVRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGByc2FyZWYnIGxpYnJhcnkgKC1scnNhcmVmKS4gKi8KI3VuZGVmIEhBVkVfTElCUlNBUkVGCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbWl0cy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTElNSVRTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGludXgvZXRodG9vbC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTElOVVhfRVRIVE9PTF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L2hkcmVnLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9MSU5VWF9IRFJFR19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L3Rhc2tzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9MSU5VWF9UQVNLU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxvY2FsZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTE9DQUxFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbG9jYWx0aW1lX3InIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9MT0NBTFRJTUVfUgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBscmFuZDQ4JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfTFJBTkQ0OAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBsc2VlazY0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfTFNFRUs2NAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtYWNoaW5lL3BhcmFtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9NQUNISU5FX1BBUkFNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWFjaGluZS9wdGUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX01BQ0hJTkVfUFRFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWFjaGluZS90eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTUFDSElORV9UWVBFU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1hbGxvYy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTUFMTE9DX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWVtY3B5JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfTUVNQ1BZCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG1lbW1vdmUnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9NRU1NT1ZFCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1lbW9yeS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTUVNT1JZX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWtzdGVtcCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX01LU1RFTVAKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWt0aW1lJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfTUtUSU1FCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1udGVudC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTU5URU5UX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bXRhYi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTVRBQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5kaXIuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLiAqLwojdW5kZWYgSEFWRV9ORElSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0ZGIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVERCX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldDYvaW42X3BjYi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVDZfSU42X1BDQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQ2L2luNl92YXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVQ2X0lONl9WQVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0Ni9pcDZfdmFyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUNl9JUDZfVkFSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldDYvbmQ2Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUNl9ORDZfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0Ni90Y3A2X2ZzbS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVDZfVENQNl9GU01fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0Ni90Y3A2Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUNl9UQ1A2X0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldDYvdGNwNl90aW1lci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVDZfVENQNl9USU1FUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQ2L3RjcDZfdmFyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUNl9UQ1A2X1ZBUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvaWNtcF92YXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfSUNNUF9WQVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2lmX2V0aGVyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX0lGX0VUSEVSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC9pbi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JTl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvaW5fc3lzdG0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfSU5fU1lTVE1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2luX3Zhci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JTl9WQVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2lwNi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JUDZfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2lwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX0lQX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC9pcF9pY21wLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX0lQX0lDTVBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2lwX3Zhci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JUF9WQVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L3RjcGlwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX1RDUElQX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC90Y3BfZnNtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX1RDUF9GU01fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L3RjcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9UQ1BfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L3RjcF90aW1lci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9UQ1BfVElNRVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L3RjcF92YXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfVENQX1ZBUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvdWRwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX1VEUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvdWRwX3Zhci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9VRFBfVkFSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aXB4L2lweC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSVBYX0lQWF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldC9pZl9hcnAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVF9JRl9BUlBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXQvaWZfZGwuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVF9JRl9ETF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldC9pZi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUX0lGX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0L2lmX21pYi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUX0lGX01JQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldC9pZl90eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUX0lGX1RZUEVTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0L2lmX3Zhci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUX0lGX1ZBUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldC9yb3V0ZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUX1JPVVRFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbmxpc3QnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9OTElTVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBubGlzdDY0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfTkxJU1Q2NAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxubGlzdC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkxJU1RfSAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYG9mZjY0X3QnLiAqLwojdW5kZWYgSEFWRV9PRkY2NF9UCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG9wZW5zc2wvYWVzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9PUEVOU1NMX0FFU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG9wZW5zc2wvZGVzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9PUEVOU1NMX0RFU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG9wZW5zc2wvZGguaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX09QRU5TU0xfREhfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxvcGVuc3NsL2V2cC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfT1BFTlNTTF9FVlBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxvcGVuc3NsL2htYWMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX09QRU5TU0xfSE1BQ19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG9zcmVsZGF0ZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfT1NSRUxEQVRFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cGNpL3BjaS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUENJX1BDSV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHBpY2wuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1BJQ0xfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwa2dpbmZvLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9QS0dJTkZPX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cGtnbG9jcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUEtHTE9DU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHByZWFkNjQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9QUkVBRDY0CgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHB0aHJlYWQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1BUSFJFQURfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwd2QuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1BXRF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHJhbmQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9SQU5ECgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHJhbmRvbScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1JBTkRPTQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGByZWdjb21wJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfUkVHQ09NUAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxyZWdleC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUkVHRVhfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBycG1HZXRQYXRoJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfUlBNR0VUUEFUSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxycG0vaGVhZGVyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9SUE1fSEVBREVSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cnBtL3JwbWxpYi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUlBNX1JQTUxJQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHJwbS9ycG10cy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUlBNX1JQTVRTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c2VhcmNoLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TRUFSQ0hfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzZWN1cml0eS9jcnlwdG9raS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU0VDVVJJVFlfQ1JZUFRPS0lfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZWxlY3QnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TRUxFQ1QKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0ZW52JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0VURU5WCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldGdpZCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NFVEdJRAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZXRncm91cHMnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TRVRHUk9VUFMKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0aXRpbWVyJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0VUSVRJTUVSCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldGxvY2FsZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NFVExPQ0FMRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZXRtbnRlbnQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TRVRNTlRFTlQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0c2lkJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0VUU0lECgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldHVpZCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NFVFVJRAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzZ3R0eS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU0dUVFlfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWdhY3Rpb24nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TSUdBQ1RJT04KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2lnYWxybScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NJR0FMUk0KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2lnYmxvY2snIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TSUdCTE9DSwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWdob2xkJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0lHSE9MRAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWduYWwnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TSUdOQUwKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2lnc2V0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0lHU0VUCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNucHJpbnRmJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU05QUklOVEYKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc29ja2V0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU09DS0VUCgovKiBEZWZpbmUgaWYgdHlwZSBzc2l6ZV90IGlzIGF2YWlsYWJsZSAqLwojdW5kZWYgSEFWRV9TU0laRV9UCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0YXRmcycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUQVRGUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdGF0dmZzJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RBVFZGUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRhcmcuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NUREFSR19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGludC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1RESU5UX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RkbGliLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TVERMSUJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdGltZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUSU1FCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cmNhc2VzdHInIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TVFJDQVNFU1RSCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cmNocicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUUkNIUgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJkdXAnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TVFJEVVAKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RyZXJyb3InIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TVFJFUlJPUgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmdzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TVFJJTkdTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RyaW5nLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TVFJJTkdfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJsY2F0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSTENBVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJsY3B5JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSTENQWQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJuY2FzZWNtcCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUUk5DQVNFQ01QCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cnRva19yJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSVE9LX1IKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RydG9sJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSVE9MCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cnRvdWwnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TVFJUT1VMCgovKiBEZWZpbmUgdG8gMSBpZiBgc3BlZWRfaGknIGlzIG1lbWJlciBvZiBgc3RydWN0IGV0aHRvb2xfY21kJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0VUSFRPT0xfQ01EX1NQRUVEX0hJCgovKiBEZWZpbmUgdG8gMSBpZiBgc2luNl9zY29wZV9pZCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc29ja2FkZHJfaW42Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lECgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN5c2NvbmYnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TWVNDT05GCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5c2xvZy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTTE9HX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3lzdGVtJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1lTVEVNCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9jZGVmcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0NERUZTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2NvbmYuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19DT05GX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rpci5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuCiAgICovCiN1bmRlZiBIQVZFX1NZU19ESVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZGlza2lvLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfRElTS0lPX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2RraW8uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19ES0lPX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rrc3RhdC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0RLU1RBVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9kbWFwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfRE1BUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9maWxlLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfRklMRV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9maWxpby5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0ZJTElPX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2ZpeHBvaW50Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfRklYUE9JTlRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZnMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19GU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9oYXNoaW5nLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfSEFTSElOR19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9pb2N0bC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0lPQ1RMX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2xvYWRhdmcuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19MT0FEQVZHX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL21idWYuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19NQlVGX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL21udGVudC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX01OVEVOVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9tbnR0YWIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19NTlRUQUJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvbW91bnQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19NT1VOVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9uZGlyLmg+IGhlYWRlciBmaWxlLCBhbmQgaXQgZGVmaW5lcyBgRElSJy4KICAgKi8KI3VuZGVmIEhBVkVfU1lTX05ESVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcGFyYW0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19QQVJBTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wb29sLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfUE9PTF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wcm9jLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfUFJPQ19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wcm90b3N3Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfUFJPVE9TV19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wc3RhdC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1BTVEFUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3F1ZXVlLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfUVVFVUVfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc2VsZWN0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU0VMRUNUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3NlbWEuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TRU1BX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3NvY2tldHZhci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NPQ0tFVFZBUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zb2NrZXQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TT0NLRVRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc29ja2lvLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU09DS0lPX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N0YXRmcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NUQVRGU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdGF0dmZzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1RBVFZGU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdGF0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1RBVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdHJlYW0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TVFJFQU1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3dhcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NXQVBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3lzY3RsLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1lTQ1RMX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N5c2dldC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NZU0dFVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zeXNtcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NZU01QX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N5c3RlbWNmZy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NZU1RFTUNGR19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zeXN0ZW1pbmZvLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1lTVEVNSU5GT19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90Y3BpcHN0YXRzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVENQSVBTVEFUU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90aW1lb3V0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVElNRU9VVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90aW1lcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1RJTUVTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3RpbWUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19USU1FX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3R5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVFlQRVNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdWlvLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVUlPX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3VuLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVU5fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdXNlci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1VTRVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdXRzbmFtZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1VUU05BTUVfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdmZzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVkZTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3ZtbWFjLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVk1NQUNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdm1tZXRlci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1ZNTUVURVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdm1wYXJhbS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1ZNUEFSQU1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdm1zeXN0bS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1ZNU1lTVE1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdm0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19WTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy92bm9kZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1ZOT0RFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIDxzeXMvd2FpdC5oPiB0aGF0IGlzIFBPU0lYLjEgY29tcGF0aWJsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1dBSVRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGB0Y2dldGF0dHInIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9UQ0dFVEFUVFIKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgdGltZXMnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9USU1FUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1ZnMvZmZzL2ZzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9VRlNfRkZTX0ZTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dWZzL2ZzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9VRlNfRlNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1ZnMvdWZzL2Rpbm9kZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVUZTX1VGU19ESU5PREVfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1ZnMvdWZzL2lub2RlLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9VRlNfVUZTX0lOT0RFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dWZzL3Vmcy9xdW90YS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVUZTX1VGU19RVU9UQV9ICgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgdWludDE2X3QnLiAqLwojdW5kZWYgSEFWRV9VSU5UMTZfVAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHVpbnQzMl90Jy4gKi8KI3VuZGVmIEhBVkVfVUlOVDMyX1QKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGB1aW50NjRfdCcuICovCiN1bmRlZiBIQVZFX1VJTlQ2NF9UCgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgdWludDhfdCcuICovCiN1bmRlZiBIQVZFX1VJTlQ4X1QKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGB1aW50bWF4X3QnLiAqLwojdW5kZWYgSEFWRV9VSU5UTUFYX1QKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGB1aW50cHRyX3QnLiAqLwojdW5kZWYgSEFWRV9VSU5UUFRSX1QKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgdW5hbWUnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9VTkFNRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1bmlzdGQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1VOSVNURF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHVzbGVlcCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1VTTEVFUAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1dG1weC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVVRNUFhfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1dHNuYW1lLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9VVFNOQU1FX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dXZtL3V2bV9leHRlcm4uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1VWTV9VVk1fRVhURVJOX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dXZtL3V2bV9wYXJhbS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVVZNX1VWTV9QQVJBTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgdV9pbnQxNl90Jy4gKi8KI3VuZGVmIEhBVkVfVV9JTlQxNl9UCgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgdV9pbnQzMl90Jy4gKi8KI3VuZGVmIEhBVkVfVV9JTlQzMl9UCgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgdV9pbnQ2NF90Jy4gKi8KI3VuZGVmIEhBVkVfVV9JTlQ2NF9UCgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgdV9pbnQ4X3QnLiAqLwojdW5kZWYgSEFWRV9VX0lOVDhfVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2bS9zd2FwX3BhZ2VyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9WTV9TV0FQX1BBR0VSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dm0vdm1fZXh0ZXJuLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9WTV9WTV9FWFRFUk5fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2bS92bS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVk1fVk1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2bS92bV9wYXJhbS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVk1fVk1fUEFSQU1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGB2c25wcmludGYnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9WU05QUklOVEYKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8d2luc29jay5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfV0lOU09DS19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHh0aS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfWFRJX0gKCi8qIFVuaXggZG9tYWluIHNvY2tldCBmb3IgQWdlbnRYIG1hc3Rlci1zdWJhZ2VudCBjb21tdW5pY2F0aW9uICovCiN1bmRlZiBORVRTTk1QX0FHRU5UWF9TT0NLRVQKCi8qIERlZmluZSBpZiBzdGF0aWMgaW5saW5lIGZ1bmN0aW9ucyBhcmUgdW5zdXBwb3J0ZWQgKi8KI3VuZGVmIE5FVFNOTVBfQlJPS0VOX0lOTElORQoKLyogRGVmaW5lIGlmIERFUyBlbmNyeXB0aW9uIHNob3VsZCBub3QgYmUgc3VwcG9ydGVkICovCiN1bmRlZiBORVRTTk1QX0RJU0FCTEVfREVTCgovKiBEZWZpbmUgaWYgTUQ1IGF1dGhlbnRpY2F0aW9uIHNob3VsZCBub3QgYmUgc3VwcG9ydGVkICovCiN1bmRlZiBORVRTTk1QX0RJU0FCTEVfTUQ1CgovKiBEZWZpbmUgaWYgbWliIGxvYWRpbmcgYW5kIHBhcnNpbmcgY29kZSBzaG91bGQgbm90IGJlIGluY2x1ZGVkICovCiN1bmRlZiBORVRTTk1QX0RJU0FCTEVfTUlCX0xPQURJTkcKCi8qIERlZmluZSBpZiBTTk1QIFNFVCBzdXBwb3J0IHNob3VsZCBiZSBkaXNhYmxlZCAqLwojdW5kZWYgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCgovKiBEZWZpbmUgaWYgU05NUHYxIGNvZGUgc2hvdWxkIG5vdCBiZSBpbmNsdWRlZCAqLwojdW5kZWYgTkVUU05NUF9ESVNBQkxFX1NOTVBWMQoKLyogRGVmaW5lIGlmIFNOTVB2MmMgY29kZSBzaG91bGQgbm90IGJlIGluY2x1ZGVkICovCiN1bmRlZiBORVRTTk1QX0RJU0FCTEVfU05NUFYyQwoKLyogUGF0dGVybiBvZiB0ZW1wb3JhcnkgZmlsZXMgKi8KI3VuZGVmIE5FVFNOTVBfVEVNUF9GSUxFX1BBVFRFUk4KCi8qIERlZmluZSB0byB0aGUgYWRkcmVzcyB3aGVyZSBidWcgcmVwb3J0cyBmb3IgdGhpcyBwYWNrYWdlIHNob3VsZCBiZSBzZW50LiAqLwojaWZuZGVmIFBBQ0tBR0VfQlVHUkVQT1JUCiN1bmRlZiBQQUNLQUdFX0JVR1JFUE9SVAojZW5kaWYKCi8qIERlZmluZSB0byB0aGUgZnVsbCBuYW1lIG9mIHRoaXMgcGFja2FnZS4gKi8KI2lmbmRlZiBQQUNLQUdFX05BTUUKI3VuZGVmIFBBQ0tBR0VfTkFNRQojZW5kaWYKCi8qIERlZmluZSB0byB0aGUgZnVsbCBuYW1lIGFuZCB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KI2lmbmRlZiBQQUNLQUdFX1NUUklORwojdW5kZWYgUEFDS0FHRV9TVFJJTkcKI2VuZGlmCgovKiBEZWZpbmUgdG8gdGhlIG9uZSBzeW1ib2wgc2hvcnQgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCiNpZm5kZWYgUEFDS0FHRV9UQVJOQU1FCiN1bmRlZiBQQUNLQUdFX1RBUk5BTUUKI2VuZGlmCgovKiBEZWZpbmUgdG8gdGhlIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlLiAqLwojaWZuZGVmIFBBQ0tBR0VfVkVSU0lPTgojdW5kZWYgUEFDS0FHRV9WRVJTSU9OCiNlbmRpZgoKLyogRGVmaW5lIGFzIHRoZSByZXR1cm4gdHlwZSBvZiBzaWduYWwgaGFuZGxlcnMgKGBpbnQnIG9yIGB2b2lkJykuICovCiN1bmRlZiBSRVRTSUdUWVBFCgovKiBUaGUgc2l6ZSBvZiBhIGBpbnQnLCBhcyBjb21wdXRlZCBieSBzaXplb2YuICovCiN1bmRlZiBTSVpFT0ZfSU5UCgovKiBUaGUgc2l6ZSBvZiBhIGBpbnRtYXhfdCcsIGFzIGNvbXB1dGVkIGJ5IHNpemVvZi4gKi8KI3VuZGVmIFNJWkVPRl9JTlRNQVhfVAoKLyogVGhlIHNpemUgb2YgYSBgbG9uZycsIGFzIGNvbXB1dGVkIGJ5IHNpemVvZi4gKi8KI3VuZGVmIFNJWkVPRl9MT05HCgovKiBUaGUgc2l6ZSBvZiBhIGBsb25nIGxvbmcnLCBhcyBjb21wdXRlZCBieSBzaXplb2YuICovCiN1bmRlZiBTSVpFT0ZfTE9OR19MT05HCgovKiBUaGUgc2l6ZSBvZiBhIGBzaG9ydCcsIGFzIGNvbXB1dGVkIGJ5IHNpemVvZi4gKi8KI3VuZGVmIFNJWkVPRl9TSE9SVAoKLyogSWYgdXNpbmcgdGhlIEMgaW1wbGVtZW50YXRpb24gb2YgYWxsb2NhLCBkZWZpbmUgaWYgeW91IGtub3cgdGhlCiAgIGRpcmVjdGlvbiBvZiBzdGFjayBncm93dGggZm9yIHlvdXIgc3lzdGVtOyBvdGhlcndpc2UgaXQgd2lsbCBiZQogICBhdXRvbWF0aWNhbGx5IGRlZHVjZWQgYXQgcnVuLXRpbWUuCglTVEFDS19ESVJFQ1RJT04gPiAwID0+IGdyb3dzIHRvd2FyZCBoaWdoZXIgYWRkcmVzc2VzCglTVEFDS19ESVJFQ1RJT04gPCAwID0+IGdyb3dzIHRvd2FyZCBsb3dlciBhZGRyZXNzZXMKCVNUQUNLX0RJUkVDVElPTiA9IDAgPT4gZGlyZWN0aW9uIG9mIGdyb3d0aCB1bmtub3duICovCiN1bmRlZiBTVEFDS19ESVJFQ1RJT04KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBBTlNJIEMgaGVhZGVyIGZpbGVzLiAqLwojdW5kZWYgU1REQ19IRUFERVJTCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgY2FuIHNhZmVseSBpbmNsdWRlIGJvdGggPHN5cy90aW1lLmg+IGFuZCA8dGltZS5oPi4gKi8KI3VuZGVmIFRJTUVfV0lUSF9TWVNfVElNRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91ciBwcm9jZXNzb3Igc3RvcmVzIHdvcmRzIHdpdGggdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYnl0ZQogICBmaXJzdCAobGlrZSBNb3Rvcm9sYSBhbmQgU1BBUkMsIHVubGlrZSBJbnRlbCBhbmQgVkFYKS4gKi8KI3VuZGVmIFdPUkRTX0JJR0VORElBTgoKLyogRGVmaW5lIHRvIDEgaWYgb24gQUlYIDMuCiAgIFN5c3RlbSBoZWFkZXJzIHNvbWV0aW1lcyBkZWZpbmUgdGhpcy4KICAgV2UganVzdCB3YW50IHRvIGF2b2lkIGEgcmVkZWZpbml0aW9uIGVycm9yIG1lc3NhZ2UuICAqLwojaWZuZGVmIF9BTExfU09VUkNFCiMgdW5kZWYgX0FMTF9TT1VSQ0UKI2VuZGlmCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgUlBNIDQuNiBvciBuZXdlciB0byB0dXJuIG9uIGxlZ2FjeSBBUEkgKi8KI3VuZGVmIF9SUE1fNF80X0NPTVBBVAoKLyogRGVmaW5lIHRvIGVtcHR5IGlmIGBjb25zdCcgZG9lcyBub3QgY29uZm9ybSB0byBBTlNJIEMuICovCiN1bmRlZiBjb25zdAoKLyogRGVmaW5lIHRvIGBfX2lubGluZV9fJyBvciBgX19pbmxpbmUnIGlmIHRoYXQncyB3aGF0IHRoZSBDIGNvbXBpbGVyCiAgIGNhbGxzIGl0LCBvciB0byBub3RoaW5nIGlmICdpbmxpbmUnIGlzIG5vdCBzdXBwb3J0ZWQgdW5kZXIgYW55IG5hbWUuICAqLwojaWZuZGVmIF9fY3BsdXNwbHVzCiN1bmRlZiBpbmxpbmUKI2VuZGlmCgovKiBEZWZpbmUgdG8gYGxvbmcnIGlmIDxzeXMvdHlwZXMuaD4gZG9lcyBub3QgZGVmaW5lLiAqLwojdW5kZWYgb2ZmX3QKCi8qIERlZmluZSB0byBgaW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXMgbm90IGRlZmluZS4gKi8KI3VuZGVmIHBpZF90CgovKiBlbmQgb2YgZGVmaW5pdGlvbnMgYWRkZWQgYnkgY29uZmlndXJlIG9uLXRoZS1mbHkgKi8KCiNpZm5kZWYgSEFWRV9TVFJDSFIKI2lmZGVmIEhBVkVfSU5ERVgKIyBkZWZpbmUgc3RyY2hyIGluZGV4CiMgZGVmaW5lIHN0cnJjaHIgcmluZGV4CiNlbmRpZgojZW5kaWYKCiNpZm5kZWYgSEFWRV9JTkRFWAojaWZkZWYgSEFWRV9TVFJDSFIKI2lmZGVmIG1pbmd3MzIKIyBkZWZpbmUgaW5kZXgoYSxiKSBzdHJjaHIoYSxiKQojIGRlZmluZSByaW5kZXgoYSxiKSBzdHJyY2hyKGEsYikKI2Vsc2UKIyBkZWZpbmUgaW5kZXggc3RyY2hyCiMgZGVmaW5lIHJpbmRleCBzdHJyY2hyCiNlbmRpZgojZW5kaWYKI2VuZGlmCgojaWZuZGVmIEhBVkVfTUVNQ1BZCiNpZmRlZiBIQVZFX0JDT1BZCiMgZGVmaW5lIG1lbWNweShkLCBzLCBuKSBiY29weSAoKHMpLCAoZCksIChuKSkKIyBkZWZpbmUgbWVtbW92ZShkLCBzLCBuKSBiY29weSAoKHMpLCAoZCksIChuKSkKIyBkZWZpbmUgbWVtY21wIGJjbXAKI2VuZGlmCiNlbmRpZgoKI2lmbmRlZiBIQVZFX01FTU1PVkUKI2lmZGVmIEhBVkVfTUVNQ1BZCiMgZGVmaW5lIG1lbW1vdmUgbWVtY3B5CiNlbmRpZgojZW5kaWYKCiNpZm5kZWYgSEFWRV9CQ09QWQojaWZkZWYgSEFWRV9NRU1DUFkKIyBkZWZpbmUgYmNvcHkocywgZCwgbikgbWVtY3B5ICgoZCksIChzKSwgKG4pKQojIGRlZmluZSBiemVybyhwLG4pIG1lbXNldCgocCksKDApLChuKSkKIyBkZWZpbmUgYmNtcCBtZW1jbXAKI2VuZGlmCiNlbmRpZgoKLyogSWYgeW91IGhhdmUgb3BlbnNzbCAwLjkuNyBvciBhYm92ZSwgeW91IGxpa2VseSBoYXZlIEFFUyBzdXBwb3J0LiAqLwojdW5kZWYgTkVUU05NUF9VU0VfT1BFTlNTTAojaWYgZGVmaW5lZChORVRTTk1QX1VTRV9PUEVOU1NMKSAmJiBkZWZpbmVkKEhBVkVfT1BFTlNTTF9BRVNfSCkgJiYgZGVmaW5lZChIQVZFX0FFU19DRkIxMjhfRU5DUllQVCkKI2RlZmluZSBIQVZFX0FFUyAxCiNlbmRpZgoKLyogZGVmaW5lIHJhbmRvbSBmdW5jdGlvbnMgKi8KCiNpZm5kZWYgSEFWRV9SQU5ET00KI2lmZGVmIEhBVkVfTFJBTkQ0OAojZGVmaW5lIHJhbmRvbSBscmFuZDQ4CiNkZWZpbmUgc3JhbmRvbShzKSBzcmFuZDQ4KHMpCiNlbHNlCiNpZmRlZiBIQVZFX1JBTkQKI2RlZmluZSByYW5kb20gcmFuZAojZGVmaW5lIHNyYW5kb20ocykgc3JhbmQocykKI2VuZGlmCiNlbmRpZgojZW5kaWYKCi8qIGRlZmluZSBzaWduYWwgaWYgRE5FICovCgojaWZuZGVmIEhBVkVfU0lHTkFMCiNpZmRlZiBIQVZFX1NJR1NFVAojZGVmaW5lIHNpZ25hbChhLGIpIHNpZ3NldChhLGIpCiNlbmRpZgojZW5kaWYKCiNpZmRlZiBIQVZFX0RNQUxMT0NfSAojZGVmaW5lIERNQUxMT0NfRlVOQ19DSEVDSwojZW5kaWYKCiNlbmRpZiAvKiBORVRTTk1QX05PX0FVVE9DT05GX0RFRklOSVRJT05TICovCgoKCgovKiAqKioqKioqKiogTkVUU05NUF9NQVJLX0JFR0lOX0NMRUFOX05BTUVTUEFDRSAqKioqKioqKiogKi8KLyogCiAqIHB1dCBhbGwgbmV3IG5ldC1zbm1wLXNwZWNpZmljIGRlZmluaXRpb25zIGhlcmUKICoKICogYWxsIGRlZmluaXRpb25zIE1VU1QgaGF2ZSBhIE5FVFNOTVBfIHByZWZpeAogKgogKi8KCi8qIERlZmF1bHQgKFNOTVApIHZlcnNpb24gbnVtYmVyIGZvciB0aGUgdG9vbHMgdG8gdXNlICovCiNkZWZpbmUgTkVUU05NUF9ERUZBVUxUX1NOTVBfVkVSU0lPTiAzCgovKiBkb24ndCBjaGFuZ2UgdGhlc2UgdmFsdWVzISAqLwojZGVmaW5lIE5FVFNOTVBfU05NUFYxICAgICAgMHhBQUFBICAgICAgIC8qIHJlYWRhYmxlIGJ5IGFueW9uZSAqLwojZGVmaW5lIE5FVFNOTVBfU05NUFYyQU5ZICAgMHhBMDAwICAgICAgIC8qIFYyIEFueSB0eXBlIChpbmNsdWRlcyBOb0F1dGgpICovCiNkZWZpbmUgTkVUU05NUF9TTk1QVjJBVVRIICAweDgwMDAgICAgICAgLyogVjIgQXV0aGVudGljYXRlZCByZXF1ZXN0cyBvbmx5ICovCgovKiBkZWZhdWx0IGxpc3Qgb2YgbWlicyB0byBsb2FkICovCiNkZWZpbmUgTkVUU05NUF9ERUZBVUxUX01JQlMgIklQLU1JQjpJRi1NSUI6VENQLU1JQjpVRFAtTUlCOlNOTVB2Mi1NSUI6UkZDMTIxMy1NSUIiCgovKiBkZWZhdWx0IGxvY2F0aW9uIHRvIGxvb2sgZm9yIG1pYnMgdG8gbG9hZCB1c2luZyB0aGUgYWJvdmUgdG9rZW5zCiAgIGFuZC9vciB0aG9zZSBpbiB0aGUgTUlCUyBlbnZyaW9ubWVudCB2YXJpYWJsZSovCiN1bmRlZiBORVRTTk1QX0RFRkFVTFRfTUlCRElSUwoKLyogZGVmYXVsdCBtaWIgZmlsZXMgdG8gbG9hZCwgc3BlY2lmaWVkIGJ5IHBhdGguICovCiN1bmRlZiBORVRTTk1QX0RFRkFVTFRfTUlCRklMRVMKCi8qIHNob3VsZCB3ZSBjb21waWxlIHRvIHVzZSBzcGVjaWFsIG9wYXF1ZSB0eXBlczogZmxvYXQsIGRvdWJsZSwKICAgY291bnRlcjY0LCBpNjQsIHVpNjQsIHVuaW9uPyAqLwojdW5kZWYgTkVUU05NUF9XSVRIX09QQVFVRV9TUEVDSUFMX1RZUEVTCgovKiBkZWZpbmUgaWYgeW91IHdhbnQgdG8gY29tcGlsZSBzdXBwb3J0IGZvciBib3RoIGF1dGhlbnRpY2F0aW9uIGFuZAogICBwcml2YWN5IHN1cHBvcnQuICovCiN1bmRlZiBORVRTTk1QX0VOQUJMRV9TQ0FQSV9BVVRIUFJJVgoKLyogZGVmaW5lIGlmIHlvdSBhcmUgdXNpbmcgdGhlIE1ENSBjb2RlIC4uLiovCiN1bmRlZiBORVRTTk1QX1VTRV9JTlRFUk5BTF9NRDUKCi8qIGRlZmluZSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBjb2RlUzExIGxpYnJhcnkgLi4uKi8KI3VuZGVmIE5FVFNOTVBfVVNFX1BLQ1MxMQoKLyogZGVidWdnaW5nIHN0dWZmICovCi8qIGlmIGRlZmluZWQsIHdlIG9wdGltaXplIHRoZSBjb2RlIHRvIGV4Y2x1ZGUgYWxsIGRlYnVnZ2luZyBjYWxscy4gKi8KI3VuZGVmIE5FVFNOTVBfTk9fREVCVUdHSU5HCi8qIGlnbm9yZSB0aGUgLUQgZmxhZyBhbmQgYWx3YXlzIHByaW50IGRlYnVnZ2luZyBpbmZvcm1hdGlvbiAqLwojZGVmaW5lIE5FVFNOTVBfQUxXQVlTX0RFQlVHIDAKCi8qIHJldmVyc2UgZW5jb2RpbmcgQkVSIHBhY2tldHMgaXMgYm90aCBmYXN0ZXIgYW5kIG1vcmUgZWZmaWNpZW50IGluIHNwYWNlLiAqLwojZGVmaW5lIE5FVFNOTVBfVVNFX1JFVkVSU0VfQVNORU5DT0RJTkcgICAgICAgMQojZGVmaW5lIE5FVFNOTVBfREVGQVVMVF9BU05FTkNPRElOR19ESVJFQ1RJT04gMSAvKiAxID0gcmV2ZXJzZSwgMCA9IGZvcndhcmRzICovCgovKiBQRVJTSVNURU5UX0RJUkVDVE9SWTogSWYgZGVmaW5lZCwgdGhlIGxpYnJhcnkgaXMgY2FwYWJpbGUgb2Ygc2F2aW5nCiAgIHBlcnNpc2FudCBpbmZvcm1hdGlvbiB0byB0aGlzIGRpcmVjdG9yeSBpbiB0aGUgZm9ybSBvZiBjb25maWd1cmF0aW9uCiAgIGxpbmVzOiBQRVJTSVNURU5UX0RJUkVDVE9SWS9OQU1FLnBlcnNpc3RlbnQuY29uZiAqLwojZGVmaW5lIE5FVFNOTVBfUEVSU0lTVEVOVF9ESVJFQ1RPUlkgIi92YXIvc25tcCIKCi8qIFBFUlNJU1RFTlRfTUFTSzogdGhlIHVtYXNrIHBlcm1pc3Npb25zIHRvIHNldCB1cCBwZXJzaXN0ZW50IGZpbGVzIHdpdGggKi8KI2RlZmluZSBORVRTTk1QX1BFUlNJU1RFTlRfTUFTSyAwNzcKCi8qIEFHRU5UX0RJUkVDVE9SWV9NT0RFOiB0aGUgbW9kZSB0aGUgYWdlbnRzIHNob3VsZCB1c2UgdG8gY3JlYXRlCiAgIGRpcmVjdG9yaWVzIHdpdGguIFNpbmNlIHRoZSBkYXRhIHN0b3JlZCBoZXJlIGlzIHByb2JhYmx5IHNlbnNpdGl2ZSwgaXQKICAgcHJvYmFibHkgc2hvdWxkIGJlIHJlYWQtb25seSBieSByb290L2FkbWluaXN0cmF0b3IuICovCiNkZWZpbmUgTkVUU05NUF9BR0VOVF9ESVJFQ1RPUllfTU9ERSAwNzAwCgovKiBNQVhfUEVSU0lTVEVOVF9CQUNLVVBTOgogKiAgIFRoZSBtYXhpbXVtIG51bWJlciBvZiBwZXJzaXN0ZW50IGJhY2t1cHMgdGhlIGxpYnJhcnkgd2lsbCB0cnkgdG8KICogICByZWFkIGZyb20gdGhlIHBlcnNpc3RlbnQgY2FjaGUgZGlyZWN0b3J5LiAgSWYgYW4gYXBwbGljYXRpb24gZmFpbHMgdG8KICogICBjbG9zZSBkb3duIHN1Y2Nlc3NmdWxseSBtb3JlIHRoYW4gdGhpcyBudW1iZXIgb2YgdGltZXMsIGRhdGEgd2lsbCBiZSBsb3N0LgogKi8KI2RlZmluZSBORVRTTk1QX01BWF9QRVJTSVNURU5UX0JBQ0tVUFMgMTAKCi8qIGRlZmluZSB0aGUgc3lzdGVtIHR5cGUgaW5jbHVkZSBmaWxlIGhlcmUgKi8KI2RlZmluZSBORVRTTk1QX1NZU1RFTV9JTkNMVURFX0ZJTEUgPG5ldC1zbm1wL3N5c3RlbS9nZW5lcmljLmg+CgovKiBkZWZpbmUgdGhlIG1hY2hpbmUgKGNwdSkgdHlwZSBpbmNsdWRlIGZpbGUgaGVyZSAqLwojZGVmaW5lIE5FVFNOTVBfTUFDSElORV9JTkNMVURFX0ZJTEUgPG5ldC1zbm1wL21hY2hpbmUvZ2VuZXJpYy5oPgoKLyogZGVmaW5lIHRoZSBVRFAgYnVmZmVyIGRlZmF1bHRzIHVuZGVmaW5lZCBtZWFucyB1c2UgdGhlIE9TIGJ1ZmZlcnMKICogYnkgZGVmYXVsdCAqLwojdW5kZWYgTkVUU05NUF9ERUZBVUxUX1NFUlZFUl9TRU5EX0JVRgojdW5kZWYgTkVUU05NUF9ERUZBVUxUX1NFUlZFUl9SRUNWX0JVRgojdW5kZWYgTkVUU05NUF9ERUZBVUxUX0NMSUVOVF9TRU5EX0JVRgojdW5kZWYgTkVUU05NUF9ERUZBVUxUX0NMSUVOVF9SRUNWX0JVRgoKLyogbmV0LXNubXAncyBtYWpvciBwYXRoIG5hbWVzICovCiN1bmRlZiBTTk1QTElCUEFUSAojdW5kZWYgU05NUFNIQVJFUEFUSAojdW5kZWYgU05NUENPTkZQQVRICiN1bmRlZiBTTk1QRExNT0RQQVRICgovKiBORVRTTk1QX0xPR0ZJTEU6ICBJZiBkZWZpbmVkIGl0IGNsb3NlcyBzdGRvdXQvZXJyL2luIGFuZCBvcGVucyB0aGlzIGluIAogICBvdXQvZXJyJ3MgcGxhY2UuICAoc3RkaW4gaXMgY2xvc2VkIHNvIHRoYXQgc2ggc2NyaXB0cyB3b24ndCB3YWl0IGZvciBpdCkgKi8KI3VuZGVmIE5FVFNOTVBfTE9HRklMRQoKLyogZGVmYXVsdCBzeXN0ZW0gY29udGFjdCAqLwojdW5kZWYgTkVUU05NUF9TWVNfQ09OVEFDVAoKLyogc3lzdGVtIGxvY2F0aW9uICovCiN1bmRlZiBORVRTTk1QX1NZU19MT0MKCi8qIFVzZSBsaWJ3cmFwIHRvIGhhbmRsZSBhbGxvdy9kZW55IGhvc3RzPyAqLwojdW5kZWYgTkVUU05NUF9VU0VfTElCV1JBUAoKLyogdGVzdGluZyBjb2RlIHNlY3Rpb25zLiAqLwojdW5kZWYgTkVUU05NUF9FTkFCTEVfVEVTVElOR19DT0RFIAoKLyogSWYgeW91IGRvbid0IGhhdmUgcm9vdCBhY2Nlc3MgZG9uJ3QgZXhpdCB1cG9uIGttZW0gZXJyb3JzICovCiN1bmRlZiBORVRTTk1QX05PX1JPT1RfQUNDRVNTCgovKiBJZiB3ZSBkb24ndCB3YW50IHRvIHVzZSBrbWVtLiAqLwojdW5kZWYgTkVUU05NUF9OT19LTUVNX1VTQUdFCgovKiBJZiB5b3UgZG9uJ3Qgd2FudCB0aGUgYWdlbnQgdG8gcmVwb3J0IG9uIHZhcmlhYmxlcyBpdCBkb2Vzbid0IGhhdmUgZGF0YSBmb3IgKi8KI3VuZGVmIE5FVFNOTVBfTk9fRFVNTVlfVkFMVUVTCgoKLyogTWliLTIgdHJlZSBJbmZvICovCi8qIFRoZXNlIGFyZSB0aGUgc3lzdGVtIGluZm9ybWF0aW9uIHZhcmlhYmxlcy4gKi8KCiNkZWZpbmUgTkVUU05NUF9WRVJTX0RFU0MgICAidW5rbm93biIgICAgICAgICAgICAgLyogb3ZlcnJpZGRlbiBhdCBydW4gdGltZSAqLwojZGVmaW5lIE5FVFNOTVBfU1lTX05BTUUgICAgInVua25vd24iICAgICAgICAgICAgIC8qIG92ZXJyaWRkZW4gYXQgcnVuIHRpbWUgKi8KCi8qIGNvbW1lbnQgb3V0IHRoZSBzZWNvbmQgZGVmaW5lIHRvIHR1cm4gb2ZmIGZ1bmN0aW9uYWxpdHkgZm9yIGFueSBvZgogICB0aGVzZTogKFNlZSBSRUFETUUgZm9yIGRldGFpbHMpICovCgovKiAgIHByb2MgUFJPQ0VTU05BTUUgW01BWF0gW01JTl0gKi8KI2RlZmluZSBORVRTTk1QX1BST0NNSUJOVU0gMgoKLyogICBleGVjL3NoZWxsIE5BTUUgQ09NTUFORCAgICAgICovCiNkZWZpbmUgTkVUU05NUF9TSEVMTE1JQk5VTSA4CgovKiAgIHN3YXAgTUlOICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBORVRTTk1QX01FTU1JQk5VTSA0CgovKiAgIGRpc2sgRElTSyBNSU5TSVpFICAgICAgICAgICAgKi8KI2RlZmluZSBORVRTTk1QX0RJU0tNSUJOVU0gOQoKLyogICBsb2FkIDEgNSAxNSAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgTkVUU05NUF9MT0FEQVZFTUlCTlVNIDEwCgovKiB3aGljaCB2ZXJzaW9uIGFyZSB5b3UgdXNpbmc/IFRoaXMgbWlibG9jIHdpbGwgdGVsbCB5b3UgKi8KI2RlZmluZSBORVRTTk1QX1ZFUlNJT05NSUJOVU0gMTAwCgovKiBSZXBvcnRzIGVycm9ycyB0aGUgYWdlbnQgcnVucyBpbnRvICovCi8qICh0eXBpY2FsbHkgaXRzICJjYW4ndCBmb3JrLCBubyBtZW0iIHByb2JsZW1zKSAqLwojZGVmaW5lIE5FVFNOTVBfRVJST1JNSUJOVU0gMTAxCgovKiBUaGUgc3ViIGlkIG9mIEVYVEVOU0lCTEVNSUIgcmV0dXJuZWQgdG8gcXVlcmllcyBvZgogICAuaXNvLm9yZy5kb2QuaW50ZXJuZXQubWdtdC5taWItMi5zeXN0ZW0uc3lzT2JqZWN0SUQuMCAqLwojZGVmaW5lIE5FVFNOTVBfQUdFTlRJRCAyNTAKCi8qIFRoaXMgSUQgaXMgcmV0dXJuZWQgYWZ0ZXIgdGhlIEFHRU5USUQgYWJvdmUuICBJRSwgdGhlIHJlc3VsdGluZwogICB2YWx1ZSByZXR1cm5lZCBieSBhIHF1ZXJ5IHRvIHN5c09iamVjdElEIGlzCiAgIEVYVEVOU0lCTEVNSUIuQUdFTlRJRC4/Pz8sIHdoZXJlID8/PyBpcyBkZWZpbmVkIGJlbG93IGJ5IE9TVFlQRSAqLwoKI2RlZmluZSBORVRTTk1QX0hQVVg5SUQgMQojZGVmaW5lIE5FVFNOTVBfU1VOT1M0SUQgMiAKI2RlZmluZSBORVRTTk1QX1NPTEFSSVNJRCAzCiNkZWZpbmUgTkVUU05NUF9PU0ZJRCA0CiNkZWZpbmUgTkVUU05NUF9VTFRSSVhJRCA1CiNkZWZpbmUgTkVUU05NUF9IUFVYMTBJRCA2CiNkZWZpbmUgTkVUU05NUF9ORVRCU0QxSUQgNwojZGVmaW5lIE5FVFNOTVBfRlJFRUJTRElEIDgKI2RlZmluZSBORVRTTk1QX0lSSVhJRCA5CiNkZWZpbmUgTkVUU05NUF9MSU5VWElEIDEwCiNkZWZpbmUgTkVUU05NUF9CU0RJSUQgMTEKI2RlZmluZSBORVRTTk1QX09QRU5CU0RJRCAxMgojZGVmaW5lIE5FVFNOTVBfV0lOMzJJRCAxMwojZGVmaW5lIE5FVFNOTVBfSFBVWDExSUQgMTQKI2RlZmluZSBORVRTTk1QX0FJWElEIDE1CiNkZWZpbmUgTkVUU05NUF9NQUNPU1hJRCAxNgojZGVmaW5lIE5FVFNOTVBfRFJBR09ORkxZSUQgMTcKI2RlZmluZSBORVRTTk1QX1VOS05PV05JRCAyNTUKCiNpZmRlZiBocHV4OQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfSFBVWDlJRAojZW5kaWYKI2lmZGVmIGhwdXgxMAojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfSFBVWDEwSUQKI2VuZGlmCiNpZmRlZiBocHV4MTEKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0hQVVgxMUlECiNlbmRpZgojaWZkZWYgc3Vub3M0CiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9TVU5PUzRJRAojZW5kaWYKI2lmZGVmIHNvbGFyaXMyCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9TT0xBUklTSUQKI2VuZGlmCiNpZiBkZWZpbmVkKG9zZjMpIHx8IGRlZmluZWQob3NmNCkgfHwgZGVmaW5lZChvc2Y1KQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfT1NGSUQKI2VuZGlmCiNpZmRlZiB1bHRyaXg0CiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9VTFRSSVhJRAojZW5kaWYKI2lmIGRlZmluZWQobmV0YnNkMSkgfHwgZGVmaW5lZChuZXRic2QyKQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfTkVUQlNEMUlECiNlbmRpZgojaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0ZSRUVCU0RJRAojZW5kaWYKI2lmIGRlZmluZWQoX19EcmFnb25GbHlfXykKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0RSQUdPTkZMWUlECiNlbmRpZgojaWYgZGVmaW5lZChpcml4NikgfHwgZGVmaW5lZChpcml4NSkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0lSSVhJRAojZW5kaWYKI2lmZGVmIGxpbnV4CiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9MSU5VWElECiNlbmRpZgojaWYgZGVmaW5lZChic2RpMikgfHwgZGVmaW5lZChic2RpMykgfHwgZGVmaW5lZChic2RpNCkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0JTRElJRAojZW5kaWYKI2lmIGRlZmluZWQob3BlbmJzZCkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX09QRU5CU0RJRAojZW5kaWYKI2lmZGVmIFdJTjMyCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9XSU4zMklECiNlbmRpZgojaWYgZGVmaW5lZChhaXgzKSB8fCBkZWZpbmVkKGFpeDQpIHx8IGRlZmluZWQoYWl4NSkgfHwgZGVmaW5lZChhaXg2KQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfQUlYSUQKI2VuZGlmCiNpZiBkZWZpbmVkKGRhcndpbikgJiYgKGRhcndpbiA+PSA4KQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfTUFDT1NYSUQKI2VuZGlmCi8qIHVua25vd24gKi8KI2lmbmRlZiBORVRTTk1QX09TVFlQRQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfVU5LTk9XTklECiNlbmRpZgoKLyogVGhlIGVudGVycHJpc2UgbnVtYmVyIGhhcyBiZWVuIGFzc2lnbmVkIGJ5IHRoZSBJQU5BIGdyb3VwLiAgICovCi8qIE9wdGlvbmFsbHksIHRoaXMgbWF5IHBvaW50IHRvIHRoZSBsb2NhdGlvbiBpbiB0aGUgdHJlZSB5b3VyICAqLwovKiBjb21wYW55L29yZ2FuaXphdGlvbiBoYXMgYmVlbiBhbGxvY2F0ZWQuICAgICAgICAgICAgICAgICAgICAgKi8KLyogVGhlIGFzc2lnbmVkIGVudGVycHJpc2UgbnVtYmVyIGZvciB0aGUgTkVUX1NOTVAgTUlCIG1vZHVsZXMuICovCiNkZWZpbmUgTkVUU05NUF9FTlRFUlBSSVNFX09JRAkJCTgwNzIKI2RlZmluZSBORVRTTk1QX0VOVEVSUFJJU0VfTUlCCQkJMSwzLDYsMSw0LDEsODA3MgojZGVmaW5lIE5FVFNOTVBfRU5URVJQUklTRV9ET1RfTUlCCQkxLjMuNi4xLjQuMS44MDcyCiNkZWZpbmUgTkVUU05NUF9FTlRFUlBSSVNFX0RPVF9NSUJfTEVOR1RICTcKCi8qIFRoZSBhc3NpZ25lZCBlbnRlcnByaXNlIG51bWJlciBmb3Igc3lzT2JqZWN0SUQuICovCiNkZWZpbmUgTkVUU05NUF9TWVNURU1fTUlCCQkxLDMsNiwxLDQsMSw4MDcyLDMsMixORVRTTk1QX09TVFlQRQojZGVmaW5lIE5FVFNOTVBfU1lTVEVNX0RPVF9NSUIJCTEuMy42LjEuNC4xLjgwNzIuMy4yLk5FVFNOTVBfT1NUWVBFCiNkZWZpbmUgTkVUU05NUF9TWVNURU1fRE9UX01JQl9MRU5HVEgJMTAKCi8qIFRoZSBhc3NpZ25lZCBlbnRlcnByaXNlIG51bWJlciBmb3Igbm90aWZpY2F0aW9ucy4gKi8KI2RlZmluZSBORVRTTk1QX05PVElGSUNBVElPTl9NSUIJCTEsMyw2LDEsNCwxLDgwNzIsNAojZGVmaW5lIE5FVFNOTVBfTk9USUZJQ0FUSU9OX0RPVF9NSUIJCTEuMy42LjEuNC4xLjgwNzIuNAojZGVmaW5lIE5FVFNOTVBfTk9USUZJQ0FUSU9OX0RPVF9NSUJfTEVOR1RICTgKCi8qIHRoaXMgaXMgdGhlIGxvY2F0aW9uIG9mIHRoZSB1Y2RhdmlzIG1pYiB0cmVlLiAgSXQgc2hvdWxkbid0IGJlCiAgIGNoYW5nZWQsIGFzIHRoZSBwbGFjZXMgaXQgaXMgdXNlZCBhcmUgZXhwZWN0ZWQgdG8gYmUgY29uc3RhbnQKICAgdmFsdWVzIG9yIGFyZSBkaXJlY3RseSB0aWVkIHRvIHRoZSBVQ0QtU05NUC1NSUIuICovCiNkZWZpbmUgTkVUU05NUF9VQ0RBVklTX09JRAkJMjAyMQojZGVmaW5lIE5FVFNOTVBfVUNEQVZJU19NSUIJCTEsMyw2LDEsNCwxLDIwMjEKI2RlZmluZSBORVRTTk1QX1VDREFWSVNfRE9UX01JQgkJMS4zLjYuMS40LjEuMjAyMQojZGVmaW5lIE5FVFNOTVBfVUNEQVZJU19ET1RfTUlCX0xFTkdUSAk3CgovKiBob3cgbG9uZyB0byB3YWl0IChzZWNvbmRzKSBmb3IgZXJyb3IgcXVlcnlzIGJlZm9yZSByZXNldGluZyB0aGUgZXJyb3IgdHJhcC4qLwojZGVmaW5lIE5FVFNOTVBfRVJST1JUSU1FTEVOR1RIIDYwMCAKCi8qIEV4ZWMgY29tbWFuZCB0byBmaXggUFJPQyBwcm9ibGVtcyAqLwovKiAlcyB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZSBwcm9jZXNzIG5hbWUgaW4gZXJyb3IgKi8KCi8qICNkZWZpbmUgTkVUU05NUF9QUk9DRklYQ01EICIvdXNyL2Jpbi9wZXJsIC9sb2NhbC9zY3JpcHRzL2ZpeHByb2MgJXMiICovCgovKiBFeGVjIGNvbW1hbmQgdG8gZml4IEVYRUMgcHJvYmxlbXMgKi8KLyogJXMgd2lsbCBiZSByZXBsYWNlZCBieSB0aGUgZXhlYy9zY3JpcHQgbmFtZSBpbiBlcnJvciAqLwoKLyogI2RlZmluZSBORVRTTk1QX0VYRUNGSVhDTUQgIi91c3IvYmluL3BlcmwgL2xvY2FsL3NjcmlwdHMvZml4cHJvYyAlcyIgKi8KCi8qIFNob3VsZCBleGVjIG91dHB1dCBDYXNoaW5nIGJlIHVzZWQgKHNwZWVkcyB1cCB0aGluZ3MgZ3JlYXRseSksIGFuZAogICBpZiBzbywgQWZ0ZXIgaG93IG1hbnkgc2Vjb25kcyBzaG91bGQgdGhlIGNhY2hlIHJlLW5ld2VkPyAgTm90ZToKICAgRG9uJ3QgZGVmaW5lIENBU0hFVElNRSB0byBkaXNhYmxlIGNhc2hpbmcgY29tcGxldGVseSAqLwoKI2RlZmluZSBORVRTTk1QX0VYQ0FDSEVUSU1FIDMwCiNkZWZpbmUgTkVUU05NUF9DQUNIRUZJTEUgIi5zbm1wLWV4ZWMtY2FjaGUiCiNkZWZpbmUgTkVUU05NUF9NQVhDQUNIRVNJWkUgKDE1MDAqODApICAgLyogcm91Z2hseSAxNTAwIGxpbmVzIG1heCAqLwoKLyogbWlzYyBkZWZhdWx0cyAqLwoKLyogZGVmYXVsdCBvZiAxMDAgbWVnIG1pbmltdW0gaWYgdGhlIG1pbmltdW0gc2l6ZSBpcyBub3Qgc3BlY2lmaWVkIGluCiAgIHRoZSBjb25maWcgZmlsZSAqLwojZGVmaW5lIE5FVFNOTVBfREVGRElTS01JTklNVU1TUEFDRSAxMDAwMDAKCi8qIGRlZmF1bHQgbWF4aW11bSBsb2FkIGF2ZXJhZ2UgYmVmb3JlIGVycm9yICovCiNkZWZpbmUgTkVUU05NUF9ERUZNQVhMT0FEQVZFIDEyLjAKCi8qIG1heCB0aW1lcyB0byBsb29wIHJlYWRpbmcgb3V0cHV0IGZyb20gZXhlY3MuICovCi8qIEJlY2F1c2Ugb2Ygc2xlZXAoMSlzLCB0aGlzIHdpbGwgYWxzbyBiZSB0aW1lIHRvIHdhaXQgKGluIHNlY29uZHMpIGZvciBleGVjCiAgIHRvIGZpbmlzaCAqLwojZGVmaW5lIE5FVFNOTVBfTUFYUkVBRENPVU5UIDEwMAoKLyogU2V0IGlmIHNubXBnZXRzIHNob3VsZCBibG9jayBhbmQgbmV2ZXIgdGltZW91dCAqLwovKiBUaGUgb3JpZ2luYWwgQ01VIGNvZGUgaGFkIHRoaXMgaGFyZGNvZGVkIGFzID0gMSAqLwojZGVmaW5lIE5FVFNOTVBfU05NUEJMT0NLIDEKCi8qIEhvdyBsb25nIHRvIHdhaXQgYmVmb3JlIHJlc3RhcnRpbmcgdGhlIGFnZW50IGFmdGVyIGEgc25tcHNldCB0bwogICBFWFRFTlNJQkxFTUlCLlZFUlNJT05NSUJOVU0uVkVSUkVTVEFSVEFHRU5ULiAgVGhpcyBpcwogICBuZWNlc3NhcnkgdG8gZmluaXNoIHRoZSBzbm1wc2V0IHJlcGx5IGJlZm9yZSByZXN0YXJ0aW5nLiAqLwojZGVmaW5lIE5FVFNOTVBfUkVTVEFSVFNMRUVQIDUKCi8qIFVOZGVmaW5lIHRvIGFsbG93IHNwZWNpZnlpbmcgemVyby1sZW5ndGggY29tbXVuaXR5IHN0cmluZyAqLwovKiAjZGVmaW5lIE5FVFNOTVBfTk9fWkVST0xFTkdUSF9DT01NVU5JVFkgMSAqLwoKLyogTnVtYmVyIG9mIGNvbW11bml0eSBzdHJpbmdzIHRvIHN0b3JlICovCiNkZWZpbmUgTkVUU05NUF9OVU1fQ09NTVVOSVRJRVMJNQoKLyogaW50ZXJuYWwgZGVmaW5lICovCiNkZWZpbmUgTkVUU05NUF9MQVNURklFTEQgLTEKCi8qIGNvbmZpZ3VyZSBvcHRpb25zIHNwZWNpZmllZCAqLwojZGVmaW5lIE5FVFNOTVBfQ09ORklHVVJFX09QVElPTlMgIiIKCi8qICBQbHVnZ2FibGUgdHJhbnNwb3J0cy4gICovCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBVRFAvSVAgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VRFBfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSAiY2FsbGJhY2siIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBUQ1AvSVAgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RDUF9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFVuaXggdHJhbnNwb3J0IGRvbWFpbgogICAgKGEuay5hLiAibG9jYWwgSVBDIikgaXMgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VOSVhfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBBQUw1IFBWQyB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfQUFMNVBWQ19ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIElQWCB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfSVBYX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgVURQL0lQdjYgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBUQ1AvSVB2NiB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfVENQSVBWNl9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFVEUC9JUCB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RMU19ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3Igc3RkaW4vb3V0IHRyYW5zcG9ydCBkb21haW4gaXMgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9TVERfRE9NQUlOCgovKiBkZWZpbmUgdGhpcyBpZiB0aGUgVVNNIHNlY3VyaXR5IG1vZHVsZSBpcyBhdmFpbGFibGUgKi8KI3VuZGVmIE5FVFNOTVBfU0VDTU9EX1VTTQoKLyogZGVmaW5lIHRoaXMgaWYgdGhlIEtTTSAoa2VyYmVyb3MgYmFzZWQgc25tcCkgc2VjdXJpdHkgbW9kdWxlIGlzIGF2YWlsYWJsZSAqLwojdW5kZWYgTkVUU05NUF9TRUNNT0RfS1NNCgovKiBkZWZpbmUgdGhpcyBpZiB0aGUgbG9jYWwgc2VjdXJpdHkgbW9kdWxlIGlzIGF2YWlsYWJsZSAqLwojdW5kZWYgTkVUU05NUF9TRUNNT0RfTE9DQUxTTQoKLyogZGVmaW5lIGlmIHlvdSB3YW50IHRvIGJ1aWxkIHdpdGggcmVlbnRyYW50L3RocmVhZGVkIGNvZGUgKGluY29tcGxldGUpKi8KI3VuZGVmIE5FVFNOTVBfUkVFTlRSQU5UCgovKiBkZWZpbmUgaWYgY29uZmlndXJlZCBhcyBhICJtaW5pLWFnZW50IiAqLwojdW5kZWYgTkVUU05NUF9NSU5JX0FHRU5UCgovKiBkZWZpbmUgaWYgeW91IGFyZSBlbWJlZGRpbmcgcGVybCBpbiB0aGUgbWFpbiBhZ2VudCAqLwojdW5kZWYgTkVUU05NUF9FTUJFRERFRF9QRVJMCgovKiBkZWZpbmUgaWYgeW91IHdhbnQgdG8gYnVpbGQgTUZEIG1vZHVsZSByZXdyaXRlcyovCiN1bmRlZiBORVRTTk1QX0VOQUJMRV9NRkRfUkVXUklURVMKCi8qIHRoaXMgaXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBuZXQtc25tcCBtaWIgdHJlZS4gIEl0IHNob3VsZG4ndCBiZQogICBjaGFuZ2VkLCBhcyB0aGUgcGxhY2VzIGl0IGlzIHVzZWQgYXJlIGV4cGVjdGVkIHRvIGJlIGNvbnN0YW50CiAgIHZhbHVlcyBvciBhcmUgZGlyZWN0bHkgdGllZCB0byB0aGUgVUNELVNOTVAtTUlCLiAqLwojZGVmaW5lIE5FVFNOTVBfT0lECQk4MDcyCiNkZWZpbmUgTkVUU05NUF9NSUIJCTEsMyw2LDEsNCwxLDgwNzIKI2RlZmluZSBORVRTTk1QX0RPVF9NSUIJCTEuMy42LjEuNC4xLjgwNzIKI2RlZmluZSBORVRTTk1QX0RPVF9NSUJfTEVOR1RICTcKCi8qIHBhdHRlcm4gZm9yIHRlbXBvcmFyeSBmaWxlIG5hbWVzICovCiNkZWZpbmUgTkVUU05NUF9URU1QX0ZJTEVfUEFUVEVSTiAiL3RtcC9zbm1wZFhYWFhYWCIKCi8qCiAqIHRoaXMgbXVzdCBiZSBiZWZvcmUgdGhlIHN5c3RlbS9tYWNoaW5lIGluY2x1ZGVzLCB0byBhbGxvdyB0aGVtIHRvCiAqIG92ZXJyaWRlIGFuZCB0dXJuIG9mZiBpbmxpbmluZy4gVG8gZG8gc28sIHRoZXkgc2hvdWxkIGRvIHRoZQogKiBmb2xsb3dpbmc6CiAqCiAqICAgICN1bmRlZiBORVRTTk1QX0VOQUJMRV9JTkxJTkUKICogICAgI2RlZmluZSBORVRTTk1QX0VOQUJMRV9JTkxJTkUgMAogKgogKiBBIHVzZXIgaGF2aW5nIHByb2JsZW1zIHdpdGggdGhlaXIgY29tcGlsZXIgY2FuIGFsc28gdHVybiBvZmYKICogdGhlIHVzZSBvZiBpbmxpbmUgYnkgZGVmaW5pbmcgTkVUU05NUF9OT19JTkxJTkUgdmlhIHRoZWlyIGNmbGFnczoKICoKICogICAgLURORVRTTk1QX05PX0lOTElORQogKgogKiBIZWFkZXIgYW5kIHNvdXJjZSBmaWxlcyBzaG91bGQgb25seSB0ZXN0IGFnYWluc3QgTkVUU05NUF9VU0VfSU5MSU5FOgogKgogKiAgICNpZmRlZiBORVRTTk1QX1VTRV9JTkxJTkUKICogICBORVRTTk1QX0lOTElORSBmdW5jdGlvbihpbnQgcGFybSkgeyByZXR1cm4gcGFybSAtMTsgfQogKiAgICNlbmRpZgogKgogKiBGdW5jdGlvbnMgd2hpY2ggc2hvdWxkIGJlIHN0YXRpYywgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCBpbmxpbmUKICogaXMgYXZhaWxhYmxlIG9yIGVuYWJsZWQgc2hvdWxkIHVzZSB0aGUgTkVUU05NUF9TVEFUSUNfSU5MSU5FIG1hY3JvLAogKiBsaWtlIHNvOgogKgogKiAgICBORVRTTk1QX1NUQVRJQ19JTkxJTkUgZnVuY3Rpb24oaW50IHBhcm0pIHsgcmV0dXJuIHBhcm0gLTE7IH0KICoKICogTk9UIGxpa2UgdGhpczoKICoKICogICAgc3RhdGljIE5FVFNOTVBfSU5MSU5FIGZ1bmN0aW9uKGludCBwYXJtKSB7IHJldHVybiBwYXJtIC0xOyB9CiAqCiAqLwojaWZkZWYgTkVUU05NUF9CUk9LRU5fSU5MSU5FCiMgICBkZWZpbmUgTkVUU05NUF9FTkFCTEVfSU5MSU5FIDAKI2Vsc2UKIyAgIGRlZmluZSBORVRTTk1QX0VOQUJMRV9JTkxJTkUgMQojZW5kaWYKCiNpbmNsdWRlIE5FVFNOTVBfU1lTVEVNX0lOQ0xVREVfRklMRQojaW5jbHVkZSBORVRTTk1QX01BQ0hJTkVfSU5DTFVERV9GSUxFCgojaWYgTkVUU05NUF9FTkFCTEVfSU5MSU5FICYmICFkZWZpbmVkKE5FVFNOTVBfTk9fSU5MSU5FKQojICAgZGVmaW5lIE5FVFNOTVBfVVNFX0lOTElORSAxCiMgICBpZm5kZWYgTkVUU05NUF9JTkxJTkUKIyAgICAgIGRlZmluZSBORVRTTk1QX0lOTElORSBpbmxpbmUKIyAgIGVuZGlmCiMgICBpZm5kZWYgTkVUU05NUF9TVEFUSUNfSU5MSU5FCiMgICAgICBkZWZpbmUgTkVUU05NUF9TVEFUSUNfSU5MSU5FIHN0YXRpYyBpbmxpbmUKIyAgIGVuZGlmCiNlbHNlCiMgICBkZWZpbmUgTkVUU05NUF9JTkxJTkUgCiMgICBkZWZpbmUgTkVUU05NUF9TVEFUSUNfSU5MSU5FIHN0YXRpYwojZW5kaWYKCiNpZm5kZWYgTkVUU05NUF9JTVBPUlQKIyAgZGVmaW5lIE5FVFNOTVBfSU1QT1JUIGV4dGVybgojZW5kaWYKCi8qIGRlZmluZSBpZiB5b3Ugd2FudCB0byBlbmFibGUgSVB2NiBzdXBwb3J0ICovCiN1bmRlZiBORVRTTk1QX0VOQUJMRV9JUFY2CgovKiBkZWZpbmUgaWYgeW91IHdhbnQgdG8gcmVzdHJpY3QgU01VWCBjb25uZWN0aW9ucyB0byBsb2NhbGhvc3QgYnkgZGVmYXVsdCAqLwojdW5kZWYgTkVUU05NUF9FTkFCTEVfTE9DQUxfU01VWAoKLyogZGVmaW5lIGlmIGFnZW50eCB0cmFuc3BvcnQgaXMgdG8gdXNlIGRvbWFpbiBzb2NrZXRzIG9ubHkgKi8KI3VuZGVmIE5FVFNOTVBfQUdFTlRYX0RPTV9TT0NLX09OTFkKCi8qIGRlZmluZSBpZiB5b3UgZG8gbm90IHdhbnQgc25tcHRyYXBkIHRvIHJlZ2lzdGVyIGFzIGFuIEFnZW50WCBzdWJhZ2VudCAqLwojdW5kZWYgTkVUU05NUF9TTk1QVFJBUERfRElTQUJMRV9BR0VOVFgKCi8qIGRlZmluZSB0aGlzIGlmIHdlJ3JlIHVzaW5nIHRoZSBuZXcgTUlUIGNyeXB0byBBUEkgKi8KI3VuZGVmIE5FVFNOTVBfVVNFX0tFUkJFUk9TX01JVAoKLyogZGVmaW5lIHRoaXMgaWYgeW91J3JlIHVzaW5nIEhlaW1kYWwgS2VyYmVyb3MgKi8KI3VuZGVmIE5FVFNOTVBfVVNFX0tFUkJFUk9TX0hFSU1EQUwKCi8qIGNvbW1lbnQgdGhlIG5leHQgbGluZSBpZiB5b3UgYXJlIGNvbXBpbGluZyB3aXRoIGxpYnNubXAuaCAKICAgYW5kIGFyZSBub3QgdXNpbmcgdGhlIFVDLURhdmlzIFNOTVAgbGlicmFyeS4gKi8KI2RlZmluZSBVQ0RfU05NUF9MSUJSQVJZIDEKCi8qIGFkZCBpbiByZWNlbnQgQ01VIGxpYnJhcnkgZXh0ZW5zaW9ucyAobm90IGNvbXBsZXRlKSAqLwojdW5kZWYgQ01VX0NPTVBBVElCTEUKCi8qIGZpbmFsIGNvbmNsdXNpb24gb24gbmxpc3QgdXNhZ2UgKi8KI2lmIGRlZmluZWQoSEFWRV9OTElTVCkgJiYgZGVmaW5lZChTVFJVQ1RfTkxJU1RfSEFTX05fVkFMVUUpICYmICFkZWZpbmVkKE5FVFNOTVBfRE9OVF9VU0VfTkxJU1QpICYmICFkZWZpbmVkKE5FVFNOTVBfTk9fS01FTV9VU0FHRSkKI2RlZmluZSBORVRTTk1QX0NBTl9VU0VfTkxJU1QKI2VuZGlmCgoKLyogKioqKioqKioqIE5FVFNOTVBfTUFSS19CRUdJTl9MRUdBQ1lfREVGSU5JVElPTlMgKioqKioqKioqLwovKiAKICogZXhpc3RpbmcgZGVmaW5pdGlvbnMgcHJpb3IgdG8gTmV0LVNOTVAgNS40CiAqCiAqIGRvIG5vdCBhZGQgYW55dGhpbmcgbmV3IGhlcmUKICoKICovCgojaWZuZGVmIE5FVFNOTVBfTk9fTEVHQUNZX0RFRklOSVRJT05TCgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX1NOTVBfVkVSU0lPTgojIGRlZmluZSBERUZBVUxUX1NOTVBfVkVSU0lPTiBORVRTTk1QX0RFRkFVTFRfU05NUF9WRVJTSU9OCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU05NUFYxCiMgZGVmaW5lIFNOTVBWMSBORVRTTk1QX1NOTVBWMQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NOTVBWMkFOWQojIGRlZmluZSBTTk1QVjJBTlkgTkVUU05NUF9TTk1QVjJBTlkKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TTk1QVjJBVVRICiMgZGVmaW5lIFNOTVBWMkFVVEggTkVUU05NUF9TTk1QVjJBVVRICiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9NSUJTCiMgZGVmaW5lIERFRkFVTFRfTUlCUyBORVRTTk1QX0RFRkFVTFRfTUlCUwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfTUlCRElSUwojIGRlZmluZSBERUZBVUxUX01JQkRJUlMgTkVUU05NUF9ERUZBVUxUX01JQkRJUlMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX01JQkZJTEVTCiMgZGVmaW5lIERFRkFVTFRfTUlCRklMRVMgTkVUU05NUF9ERUZBVUxUX01JQkZJTEVTCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfV0lUSF9PUEFRVUVfU1BFQ0lBTF9UWVBFUwojIGRlZmluZSBPUEFRVUVfU1BFQ0lBTF9UWVBFUyBORVRTTk1QX1dJVEhfT1BBUVVFX1NQRUNJQUxfVFlQRVMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9FTkFCTEVfU0NBUElfQVVUSFBSSVYKIyBkZWZpbmUgU0NBUElfQVVUSFBSSVYgTkVUU05NUF9FTkFCTEVfU0NBUElfQVVUSFBSSVYKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfSU5URVJOQUxfTUQ1CiMgZGVmaW5lIFVTRV9JTlRFUk5BTF9NRDUgTkVUU05NUF9VU0VfSU5URVJOQUxfTUQ1CiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX1BLQ1MxMQojIGRlZmluZSBVU0VfUEtDUyBORVRTTk1QX1VTRV9QS0NTMTEKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfT1BFTlNTTAojIGRlZmluZSBVU0VfT1BFTlNTTCBORVRTTk1QX1VTRV9PUEVOU1NMCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfTk9fREVCVUdHSU5HCiMgZGVmaW5lIFNOTVBfTk9fREVCVUdHSU5HIE5FVFNOTVBfTk9fREVCVUdHSU5HCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfQUxXQVlTX0RFQlVHCiMgZGVmaW5lIFNOTVBfQUxXQVlTX0RFQlVHIE5FVFNOTVBfQUxXQVlTX0RFQlVHCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX1JFVkVSU0VfQVNORU5DT0RJTkcKIyBkZWZpbmUgVVNFX1JFVkVSU0VfQVNORU5DT0RJTkcgTkVUU05NUF9VU0VfUkVWRVJTRV9BU05FTkNPRElORwojZW5kaWYKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9BU05FTkNPRElOR19ESVJFQ1RJT04KIyBkZWZpbmUgREVGQVVMVF9BU05FTkNPRElOR19ESVJFQ1RJT04gTkVUU05NUF9ERUZBVUxUX0FTTkVOQ09ESU5HX0RJUkVDVElPTgojZW5kaWYKCiNkZWZpbmUgUEVSU0lTVEVOVF9ESVJFQ1RPUlkgTkVUU05NUF9QRVJTSVNURU5UX0RJUkVDVE9SWQojZGVmaW5lIFBFUlNJU1RFTlRfTUFTSyBORVRTTk1QX1BFUlNJU1RFTlRfTUFTSwojZGVmaW5lIEFHRU5UX0RJUkVDVE9SWV9NT0RFIE5FVFNOTVBfQUdFTlRfRElSRUNUT1JZX01PREUKI2RlZmluZSBNQVhfUEVSU0lTVEVOVF9CQUNLVVBTIE5FVFNOTVBfTUFYX1BFUlNJU1RFTlRfQkFDS1VQUwojZGVmaW5lIFNZU1RFTV9JTkNMVURFX0ZJTEUgTkVUU05NUF9TWVNURU1fSU5DTFVERV9GSUxFCiNkZWZpbmUgTUFDSElORV9JTkNMVURFX0ZJTEUgTkVUU05NUF9NQUNISU5FX0lOQ0xVREVfRklMRQoKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfU0VORF9CVUYKIyBkZWZpbmUgREVGQVVMVF9TRVJWRVJfU0VORF9CVUYgTkVUU05NUF9ERUZBVUxUX1NFUlZFUl9TRU5EX0JVRgojZW5kaWYKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfUkVDVl9CVUYKIyBkZWZpbmUgREVGQVVMVF9TRVJWRVJfUkVDVl9CVUYgTkVUU05NUF9ERUZBVUxUX1NFUlZFUl9SRUNWX0JVRgojZW5kaWYKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfU0VORF9CVUYKIyBkZWZpbmUgREVGQVVMVF9DTElFTlRfU0VORF9CVUYgTkVUU05NUF9ERUZBVUxUX0NMSUVOVF9TRU5EX0JVRgojZW5kaWYKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfUkVDVl9CVUYKIyBkZWZpbmUgREVGQVVMVF9DTElFTlRfUkVDVl9CVUYgTkVUU05NUF9ERUZBVUxUX0NMSUVOVF9SRUNWX0JVRgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0xPR0ZJTEUKIyBkZWZpbmUgTE9HRklMRSBORVRTTk1QX0xPR0ZJTEUKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TWVNfQ09OVEFDVAojIGRlZmluZSBTWVNfQ09OVEFDVCBORVRTTk1QX1NZU19DT05UQUNUCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU1lTX0xPQwojIGRlZmluZSBTWVNfTE9DIE5FVFNOTVBfU1lTX0xPQwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1VTRV9MSUJXUkFQCiMgZGVmaW5lIFVTRV9MSUJXUkFQIE5FVFNOTVBfVVNFX0xJQldSQVAKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9FTkFCTEVfVEVTVElOR19DT0RFIAojIGRlZmluZSBTTk1QX1RFU1RJTkdfQ09ERSBORVRTTk1QX0VOQUJMRV9URVNUSU5HX0NPREUKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9OT19ST09UX0FDQ0VTUwojIGRlZmluZSBOT19ST09UX0FDQ0VTUyBORVRTTk1QX05PX1JPT1RfQUNDRVNTCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfTk9fS01FTV9VU0FHRQojIGRlZmluZSBOT19LTUVNX1VTQUdFIE5FVFNOTVBfTk9fS01FTV9VU0FHRQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX05PX0RVTU1ZX1ZBTFVFUwojIGRlZmluZSBOT19EVU1NWV9WQUxVRVMgTkVUU05NUF9OT19EVU1NWV9WQUxVRVMKI2VuZGlmCgojZGVmaW5lIFZFUlNfREVTQyAgICAgTkVUU05NUF9WRVJTX0RFU0MKI2RlZmluZSBTWVNfTkFNRSAgICAgIE5FVFNOTVBfU1lTX05BTUUKCiNkZWZpbmUgUFJPQ01JQk5VTSAgICBORVRTTk1QX1BST0NNSUJOVU0KI2RlZmluZSBTSEVMTE1JQk5VTSAgIE5FVFNOTVBfU0hFTExNSUJOVU0KI2RlZmluZSBNRU1NSUJOVU0gICAgIE5FVFNOTVBfTUVNTUlCTlVNCiNkZWZpbmUgRElTS01JQk5VTSAgICBORVRTTk1QX0RJU0tNSUJOVU0KCiNkZWZpbmUgTE9BREFWRU1JQk5VTSBORVRTTk1QX0xPQURBVkVNSUJOVU0KI2RlZmluZSBWRVJTSU9OTUlCTlVNIE5FVFNOTVBfVkVSU0lPTk1JQk5VTQojZGVmaW5lIEVSUk9STUlCTlVNICAgTkVUU05NUF9FUlJPUk1JQk5VTQojZGVmaW5lIEFHRU5USUQgICAgICAgTkVUU05NUF9BR0VOVElECgojZGVmaW5lIEhQVVg5SUQgICAgICAgTkVUU05NUF9IUFVYOUlECiNkZWZpbmUgU1VOT1M0SUQgICAgICBORVRTTk1QX1NVTk9TNElECiNkZWZpbmUgU09MQVJJU0lEICAgICBORVRTTk1QX1NPTEFSSVNJRAojZGVmaW5lIE9TRklEICAgICAgICAgTkVUU05NUF9PU0ZJRAojZGVmaW5lIFVMVFJJWElEICAgICAgTkVUU05NUF9VTFRSSVhJRAojZGVmaW5lIEhQVVgxMElEICAgICAgTkVUU05NUF9IUFVYMTBJRAojZGVmaW5lIE5FVEJTRDFJRCAgICAgTkVUU05NUF9ORVRCU0QxSUQKI2RlZmluZSBGUkVFQlNESUQgICAgIE5FVFNOTVBfRlJFRUJTRElECiNkZWZpbmUgSVJJWElEICAgICAgICBORVRTTk1QX0lSSVhJRAojZGVmaW5lIExJTlVYSUQgICAgICAgTkVUU05NUF9MSU5VWElECiNkZWZpbmUgQlNESUlEICAgICAgICBORVRTTk1QX0JTRElJRAojZGVmaW5lIE9QRU5CU0RJRCAgICAgTkVUU05NUF9PUEVOQlNESUQKI2RlZmluZSBXSU4zMklEICAgICAgIE5FVFNOTVBfV0lOMzJJRAojZGVmaW5lIEhQVVgxMUlEICAgICAgTkVUU05NUF9IUFVYMTFJRAojZGVmaW5lIEFJWElEICAgICAgICAgTkVUU05NUF9BSVhJRAojZGVmaW5lIE1BQ09TWElEICAgICAgTkVUU05NUF9NQUNPU1hJRAojZGVmaW5lIFVOS05PV05JRCAgICAgTkVUU05NUF9VTktOT1dOSUQKCiNkZWZpbmUgRU5URVJQUklTRV9PSUQgICAgICAgICAgICBORVRTTk1QX0VOVEVSUFJJU0VfT0lECiNkZWZpbmUgRU5URVJQUklTRV9NSUIgICAgICAgICAgICBORVRTTk1QX0VOVEVSUFJJU0VfTUlCCiNkZWZpbmUgRU5URVJQUklTRV9ET1RfTUlCICAgICAgICBORVRTTk1QX0VOVEVSUFJJU0VfRE9UX01JQgojZGVmaW5lIEVOVEVSUFJJU0VfRE9UX01JQl9MRU5HVEggTkVUU05NUF9FTlRFUlBSSVNFX0RPVF9NSUJfTEVOR1RICgojZGVmaW5lIFNZU1RFTV9NSUIJCSAgTkVUU05NUF9TWVNURU1fTUlCCiNkZWZpbmUgU1lTVEVNX0RPVF9NSUIJCSAgTkVUU05NUF9TWVNURU1fRE9UX01JQgojZGVmaW5lIFNZU1RFTV9ET1RfTUlCX0xFTkdUSAkgIE5FVFNOTVBfU1lTVEVNX0RPVF9NSUJfTEVOR1RICgojZGVmaW5lIE5PVElGSUNBVElPTl9NSUIJICAgIE5FVFNOTVBfTk9USUZJQ0FUSU9OX01JQgkKI2RlZmluZSBOT1RJRklDQVRJT05fRE9UX01JQgkgICAgTkVUU05NUF9OT1RJRklDQVRJT05fRE9UX01JQgojZGVmaW5lIE5PVElGSUNBVElPTl9ET1RfTUlCX0xFTkdUSCBORVRTTk1QX05PVElGSUNBVElPTl9ET1RfTUlCX0xFTkdUSAoKI2RlZmluZSBVQ0RBVklTX09JRAkJICBORVRTTk1QX1VDREFWSVNfT0lECiNkZWZpbmUgVUNEQVZJU19NSUIJCSAgTkVUU05NUF9VQ0RBVklTX01JQgojZGVmaW5lIFVDREFWSVNfRE9UX01JQgkJICBORVRTTk1QX1VDREFWSVNfRE9UX01JQgojZGVmaW5lIFVDREFWSVNfRE9UX01JQl9MRU5HVEgJICBORVRTTk1QX1VDREFWSVNfRE9UX01JQl9MRU5HVEgKCiNkZWZpbmUgRVJST1JUSU1FTEVOR1RIIE5FVFNOTVBfRVJST1JUSU1FTEVOR1RICgojaWZkZWYgTkVUU05NUF9QUk9DRklYQ01ECiMgZGVmaW5lIFBST0NGSVhDTUQgTkVUU05NUF9QUk9DRklYQ01ECiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRVhFQ0ZJWENNRAojIGRlZmluZSBFWEVDRklYQ01EIE5FVFNOTVBfRVhFQ0ZJWENNRAojZW5kaWYKCiNkZWZpbmUgRVhDQUNIRVRJTUUgIE5FVFNOTVBfRVhDQUNIRVRJTUUKI2RlZmluZSBDQUNIRUZJTEUgICAgTkVUU05NUF9DQUNIRUZJTEUKI2RlZmluZSBNQVhDQUNIRVNJWkUgTkVUU05NUF9NQVhDQUNIRVNJWkUKCiNkZWZpbmUgREVGRElTS01JTklNVU1TUEFDRSBORVRTTk1QX0RFRkRJU0tNSU5JTVVNU1BBQ0UKI2RlZmluZSBERUZNQVhMT0FEQVZFIE5FVFNOTVBfREVGTUFYTE9BREFWRQojZGVmaW5lIE1BWFJFQURDT1VOVCBORVRTTk1QX01BWFJFQURDT1VOVAoKI2RlZmluZSBTTk1QQkxPQ0sgTkVUU05NUF9TTk1QQkxPQ0sKI2RlZmluZSBSRVNUQVJUU0xFRVAgTkVUU05NUF9SRVNUQVJUU0xFRVAKCiNkZWZpbmUgTlVNX0NPTU1VTklUSUVTCU5FVFNOTVBfTlVNX0NPTU1VTklUSUVTCgojaWZkZWYgTkVUU05NUF9OT19aRVJPTEVOR1RIX0NPTU1VTklUWQojIGRlZmluZSBOT19aRVJPTEVOR1RIX0NPTU1VTklUWSBORVRTTk1QX05PX1pFUk9MRU5HVEhfQ09NTVVOSVRZCiNlbmRpZgoKI2RlZmluZSBMQVNURklFTEQgTkVUU05NUF9MQVNURklFTEQKCiNkZWZpbmUgQ09ORklHVVJFX09QVElPTlMgTkVUU05NUF9DT05GSUdVUkVfT1BUSU9OUwoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VEUF9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfVURQX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9VRFBfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RDUF9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfVENQX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9UQ1BfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VOSVhfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1VOSVhfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1VOSVhfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0FBTDVQVkNfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX0FBTDVQVkNfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX0FBTDVQVkNfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0lQWF9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfSVBYX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9JUFhfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RDUElQVjZfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1RDUElQVjZfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1RDUElQVjZfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RMU19ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfVExTX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9UTFNfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1NURF9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfU1REX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9TVERfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU0VDTU9EX1VTTQojIGRlZmluZSBTTk1QX1NFQ01PRF9VU00gTkVUU05NUF9TRUNNT0RfVVNNCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU0VDTU9EX0tTTQojIGRlZmluZSBTTk1QX1NFQ01PRF9LU00gTkVUU05NUF9TRUNNT0RfS1NNCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU0VDTU9EX0xPQ0FMU00gCiMgZGVmaW5lIFNOTVBfU0VDTU9EX0xPQ0FMU00gTkVUU05NUF9TRUNNT0RfTE9DQUxTTQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1JFRU5UUkFOVAojIGRlZmluZSBOU19SRUVOVFJBTlQgTkVUU05NUF9SRUVOVFJBTlQKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9FTkFCTEVfSVBWNgojIGRlZmluZSBJTkVUNiBORVRTTk1QX0VOQUJMRV9JUFY2CiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRU5BQkxFX0xPQ0FMX1NNVVgKIyBkZWZpbmUgTE9DQUxfU01VWCBORVRTTk1QX0VOQUJMRV9MT0NBTF9TTVVYCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfQUdFTlRYX0RPTV9TT0NLX09OTFkKIyBkZWZpbmUgQUdFTlRYX0RPTV9TT0NLX09OTFkgTkVUU05NUF9BR0VOVFhfRE9NX1NPQ0tfT05MWQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NOTVBUUkFQRF9ESVNBQkxFX0FHRU5UWAojIGRlZmluZSBTTk1QVFJBUERfRElTQUJMRV9BR0VOVFgKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfS0VSQkVST1NfTUlUCiMgZGVmaW5lIE1JVF9ORVdfQ1JZUFRPIE5FVFNOTVBfVVNFX0tFUkJFUk9TX01JVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1VTRV9LRVJCRVJPU19IRUlNREFMCiMgZGVmaW5lIEhFSU1EQUwgTkVUU05NUF9VU0VfS0VSQkVST1NfSEVJTURBTAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0FHRU5UWF9TT0NLRVQKIyBkZWZpbmUgQUdFTlRYX1NPQ0tFVCBORVRTTk1QX0FHRU5UWF9TT0NLRVQKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ESVNBQkxFX01JQl9MT0FESU5HCiMgZGVmaW5lIERJU0FCTEVfTUlCX0xPQURJTkcgTkVUU05NUF9ESVNBQkxFX01JQl9MT0FESU5HCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRElTQUJMRV9TTk1QVjEKIyBkZWZpbmUgRElTQUJMRV9TTk1QVjEgTkVUU05NUF9ESVNBQkxFX1NOTVBWMQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RJU0FCTEVfU05NUFYyQwojIGRlZmluZSBESVNBQkxFX1NOTVBWMkMgTkVUU05NUF9ESVNBQkxFX1NOTVBWMkMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCiMgZGVmaW5lIERJU0FCTEVfU0VUX1NVUFBPUlQgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRElTQUJMRV9ERVMKIyBkZWZpbmUgRElTQUJMRV9ERVMgTkVUU05NUF9ESVNBQkxFX0RFUwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RJU0FCTEVfTUQ1CiMgZGVmaW5lIERJU0FCTEVfTUQ1IE5FVFNOTVBfRElTQUJMRV9NRDUKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ET05UX1VTRV9OTElTVAojIGRlZmluZSBET05UX1VTRV9OTElTVCBORVRTTk1QX0RPTlRfVVNFX05MSVNUCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfQ0FOX1VTRV9OTElTVAojIGRlZmluZSBDQU5fVVNFX05MSVNUIE5FVFNOTVBfQ0FOX1VTRV9OTElTVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0NBTl9VU0VfU1lTQ1RMCiMgZGVmaW5lIENBTl9VU0VfU1lTQ1RMIE5FVFNOTVBfQ0FOX1VTRV9TWVNDVEwKI2VuZGlmCgojZW5kaWYgLyogTkVUU05NUF9OT19MRUdBQ1lfREVGSU5JVElPTlMgKi8KCgojZW5kaWYgLyogTkVUX1NOTVBfQ09ORklHX0ggKi8K