LyogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbi4gIEdlbmVyYXRlZCBmcm9tIGNvbmZpZ3VyZS5hYyBieSBhdXRvaGVhZGVyLiAgKi8KLyogCiAqIG5ldC1zbm1wIGNvbmZpZ3VyYXRpb24gaGVhZGVyIGZpbGUKICoKICogTk9URTogRE8gTk9UIEVESVQgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiBhcyB5b3VyIGNoYW5nZXMKICogICAgICAgd2lsbCBiZSBvdmVyd3JpdHRlbi4gVGhpcyBjb250ZW50IGlzIGluIGFjY29uZmlnLmggYW5kIG1lcmdlZAogKiAgICAgICBpbnRvIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gYnkgYXV0b2hlYWRlci4KICovCi8qIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvcHlyaWdodChzKS4gIFNlZQogKiB0aGUgTmV0LVNOTVAncyBDT1BZSU5HIGZpbGUgZm9yIG1vcmUgZGV0YWlscyBhbmQgb3RoZXIgY29weXJpZ2h0cwogKiB0aGF0IG1heSBhcHBseToKICovCi8qCiAqIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgY29weXJpZ2h0ZWQgYnk6CiAqIENvcHlyaWdodCCpIDIwMDMgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKiBVc2UgaXMgc3ViamVjdCB0byBsaWNlbnNlIHRlcm1zIHNwZWNpZmllZCBpbiB0aGUgQ09QWUlORyBmaWxlCiAqIGRpc3RyaWJ1dGVkIHdpdGggdGhlIE5ldC1TTk1QIHBhY2thZ2UuCiAqLwoKI2lmbmRlZiBORVRfU05NUF9DT05GSUdfSAojZGVmaW5lIE5FVF9TTk1QX0NPTkZJR19ICgoKLyogKioqKioqKioqIE5FVFNOTVBfTUFSS19CRUdJTl9BVVRPQ09ORl9ERUZJTklUSU9OUyAqKioqKioqKiogKi8KLyoKICogcHV0IGFsbCBhdXRvY29uZi1zcGVjaWZpYyBkZWZpbml0aW9ucyBiZWxvdyBoZXJlCiAqCiAqLwojaWZuZGVmIE5FVFNOTVBfTk9fQVVUT0NPTkZfREVGSU5JVElPTlMKCi8qIGRlZmluaXRpb25zIGFkZGVkIGJ5IGNvbmZpZ3VyZSBvbi10aGUtZmx5ICovCgojZGVmaW5lIGNvbmZpZ19iZWxvbmdzX2luKHgpCgojZGVmaW5lIGNvbmZpZ19leGNsdWRlKHgpCgojZGVmaW5lIGNvbmZpZ19hcmNoX3JlcXVpcmUoeCx5KQoKI2RlZmluZSBjb25maWdfdmVyc2lvbl9yZXF1aXJlKHgpCgojZGVmaW5lIGNvbmZpZ19yZXF1aXJlKHgpCgojZGVmaW5lIGNvbmZpZ19hZGRfbWliKHgpCgojZGVmaW5lIGNvbmZpZ19wYXJzZV9kb3RfY29uZih3LHgseSx6KQoKI2RlZmluZSBjb25maWdfZXJyb3IoeCkKCiNkZWZpbmUgY29uZmlnX3dhcm5pbmcoeCkKCi8qIERlZmluZSBpZiBidWlsZGluZyB1bml2ZXJzYWwgKGludGVybmFsIGhlbHBlciBtYWNybykgKi8KI3VuZGVmIEFDX0FQUExFX1VOSVZFUlNBTF9CVUlMRAoKLyogRGVmaW5lIHRvIG9uZSBvZiBgX2dldGI2NycsIGBHRVRCNjcnLCBgZ2V0YjY3JyBmb3IgQ3JheS0yIGFuZCBDcmF5LVlNUAogICBzeXN0ZW1zLiBUaGlzIGZ1bmN0aW9uIGlzIHJlcXVpcmVkIGZvciBgYWxsb2NhLmMnIHN1cHBvcnQgb24gdGhvc2Ugc3lzdGVtcy4KICAgKi8KI3VuZGVmIENSQVlfU1RBQ0tTRUdfRU5ECgovKiBEZWZpbmUgdG8gMSBpZiB1c2luZyBgYWxsb2NhLmMnLiAqLwojdW5kZWYgQ19BTExPQ0EKCi8qIGxvY2F0aW9uIG9mIHN3YXAgZGV2aWNlICovCiN1bmRlZiBETUVNX0xPQwoKLyogRGVmaW5lIGlmIHlvdSB3YW50IGxvY2FsIEROU1NFQyB2YWxpZGF0aW9uIHN1cHBvcnQgKi8KI3VuZGVmIEROU1NFQ19MT0NBTF9WQUxJREFUSU9OCgovKiBFbnZpcm9ubWVudCBzZXBhcmF0b3IgY2hhcmFjdGVyIHN1cnJvdW5kZWQgYnkgZG91YmxlIHF1b3Rlcy4gKi8KI3VuZGVmIEVOVl9TRVBBUkFUT1IKCi8qIEVudmlyb25tZW50IHNlcGFyYXRvciBjaGFyYWN0ZXIgc3Vycm91bmRlZCBieSBzaW5nbGUgcXVvdGVzLiAqLwojdW5kZWYgRU5WX1NFUEFSQVRPUl9DSEFSCgovKiBsb2NhdGlvbiBvZiBtb3VudCB0YWJsZSBsaXN0ICovCiN1bmRlZiBFVENfTU5UVEFCCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYEFFU19jZmIxMjhfZW5jcnlwdCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0FFU19DRkIxMjhfRU5DUllQVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgYGFsbG9jYScsIGFzIGEgZnVuY3Rpb24gb3IgbWFjcm8uICovCiN1bmRlZiBIQVZFX0FMTE9DQQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgPGFsbG9jYS5oPiBhbmQgaXQgc2hvdWxkIGJlIHVzZWQgKG5vdCBvbiBVbHRyaXgpLgogICAqLwojdW5kZWYgSEFWRV9BTExPQ0FfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxhcnBhL2luZXQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0FSUEFfSU5FVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGFzbS9wYWdlLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9BU01fUEFHRV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGFzbS90eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfQVNNX1RZUEVTX0gKCi8qIERlZmluZSBpZiB1c2luZyBNWV9JTklUKCkgY2F1c2VzIGEgbGlua2VyIGVycm9yICovCiN1bmRlZiBIQVZFX0JST0tFTl9MSUJNWVNRTENMSUVOVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBjZ2V0bmV4dCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0NHRVRORVhUCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNob3duJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfQ0hPV04KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgY2xvY2tfZ2V0dGltZScgbGlicmFyeSAqLwojdW5kZWYgSEFWRV9DTE9DS19HRVRUSU1FCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNsb3NlZGlyJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfQ0xPU0VESVIKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8Y29tX2Vyci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfQ09NX0VSUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgQ291bnRlcjY0Jy4gKi8KI3VuZGVmIEhBVkVfQ09VTlRFUjY0CgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgZGVjbGFyYXRpb24gb2YgYHNlbnNvcnNfZ2V0X2FsbF9zdWJmZWF0dXJlcycsCiAgIGFuZCB0byAwIGlmIHlvdSBkb24ndC4gKi8KI3VuZGVmIEhBVkVfREVDTF9TRU5TT1JTX0dFVF9BTExfU1VCRkVBVFVSRVMKCi8qIGRlZmluZSB0byAxIGlmIHlvdSBoYXZlIElSRV9DQUNIRSBkZWZpbmVkIGluIDxpbmV0L2lwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ERUZJTkVEX0lSRV9DQUNIRQoKLyogZGVmaW5lIGlmIHlvdSBoYXZlIGRldnN0YXRfZ2V0ZGV2cygpICovCiN1bmRlZiBIQVZFX0RFVlNUQVRfR0VUREVWUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkaXJlbnQuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLgogICAqLwojdW5kZWYgSEFWRV9ESVJFTlRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkbGZjbi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfRExGQ05fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBkbG9wZW4nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9ETE9QRU4KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZG1hbGxvYy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfRE1BTExPQ19ICgovKiBTZXQgaWYgdGhlIGRwa2ctcXVlcnkgY29tbWFuZCBpcyBhdmFpbGFibGUgKi8KI3VuZGVmIEhBVkVfRFBLR19RVUVSWQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxlcnIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0VSUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGV0L2NvbV9lcnIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0VUX0NPTV9FUlJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBldmFsX3B2JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfRVZBTF9QVgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBFVlBfTURfQ1RYX2NyZWF0ZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0VWUF9NRF9DVFhfQ1JFQVRFCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYEVWUF9NRF9DVFhfZGVzdHJveScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0VWUF9NRF9DVFhfREVTVFJPWQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIEVWUF9zaGEyMjQvMjU2IGluIG9wZW5zc2wgKi8KI3VuZGVmIEhBVkVfRVZQX1NIQTIyNAoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIEVWUF9zaGEzODQvMjU2IGluIG9wZW5zc2wgKi8KI3VuZGVmIEhBVkVfRVZQX1NIQTM4NAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBleGVjdicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0VYRUNWCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGZjbnRsLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9GQ05UTF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZnZXRjX3VubG9ja2VkJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfRkdFVENfVU5MT0NLRUQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZmxvY2tmaWxlJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfRkxPQ0tGSUxFCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZvcmsnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9GT1JLCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGZzdGFiLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9GU1RBQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZ1bmxvY2tmaWxlJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfRlVOTE9DS0ZJTEUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2FpX3N0cmVycm9yJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0FJX1NUUkVSUk9SCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldGFkZHJpbmZvJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUQUREUklORk8KCi8qIGRlZmluZSBpZiB5b3UgaGF2ZSBnZXRkZXZzKCkgKi8KI3VuZGVmIEhBVkVfR0VUREVWUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRkdGFibGVzaXplJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VURFRBQkxFU0laRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRmc3N0YXQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRGU1NUQVQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0Z3JuYW0nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRHUk5BTQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRob3N0YnlhZGRyJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUSE9TVEJZQUREUgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRob3N0YnluYW1lJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUSE9TVEJZTkFNRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRob3N0YnluYW1lMicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVEhPU1RCWU5BTUUyCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldGhvc3RuYW1lJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUSE9TVE5BTUUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0aXBub2RlYnluYW1lJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUSVBOT0RFQllOQU1FCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldGxvYWRhdmcnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRMT0FEQVZHCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldG1udGVudCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVE1OVEVOVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRvcHQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRPUFQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8Z2V0b3B0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9HRVRPUFRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRwYWdlc2l6ZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVFBBR0VTSVpFCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldHBpZCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVFBJRAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRwd25hbScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVFBXTkFNCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldHRpbWVvZmRheScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVFRJTUVPRkRBWQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXR2ZnNzdGF0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUVkZTU1RBVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxncnAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0dSUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGhhc21udG9wdCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0hBU01OVE9QVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpZl9mcmVlbmFtZWluZGV4JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfSUZfRlJFRU5BTUVJTkRFWAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpZl9pbmRleHRvbmFtZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lGX0lOREVYVE9OQU1FCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGlmX25hbWVpbmRleCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lGX05BTUVJTkRFWAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpZl9uYW1ldG9pbmRleCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lGX05BTUVUT0lOREVYCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGluZXQvY29tbW9uLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9JTkVUX0NPTU1PTl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGluZXQvaXAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0lORVRfSVBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpbmV0L21pYjIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0lORVRfTUlCMl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGluZXRfbnRvcCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lORVRfTlRPUAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpbmV0X3B0b24nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9JTkVUX1BUT04KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgaW5pdGdyb3VwcycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lOSVRHUk9VUFMKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBpbnRtYXhfdCcuICovCiN1bmRlZiBIQVZFX0lOVE1BWF9UCgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgaW50cHRyX3QnLiAqLwojdW5kZWYgSEFWRV9JTlRQVFJfVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpbnR0eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfSU5UVFlQRVNfSAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYGluX2FkZHJfdCcuICovCiN1bmRlZiBIQVZFX0lOX0FERFJfVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpb2N0bHMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0lPQ1RMU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGlvLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9JT19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGlwaGxwYXBpLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9JUEhMUEFQSV9ICgovKiBTZXQgaWYgSVBfUEtUSU5GTyBpcyB1c2FibGUgKi8KI3VuZGVmIEhBVkVfSVBfUEtUSU5GTwoKLyogU2V0IGlmIElQX1JFQ1ZEU1RBRERSIGlzIHVzYWJsZSAqLwojdW5kZWYgSEFWRV9JUF9SRUNWRFNUQUREUgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBraW5mb19nZXRfY3B1cycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0tJTkZPX0dFVF9DUFVTCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgL2Rldi9rbWVtICovCiN1bmRlZiBIQVZFX0tNRU0KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBga25saXN0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfS05MSVNUCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGtyYjVfYXV0aF9jb25fZ2V0c2VuZHN1YmtleScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0tSQjVfQVVUSF9DT05fR0VUU0VORFNVQktFWQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxrc3RhdC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfS1NUQVRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBrdm1fZ2V0cHJvYzInIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9LVk1fR0VUUFJPQzIKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBga3ZtX2dldHByb2NzJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfS1ZNX0dFVFBST0NTCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGt2bV9nZXRzd2FwaW5mbycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0tWTV9HRVRTV0FQSU5GTwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxrdm0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0tWTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGt2bV9vcGVuZmlsZXMnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9LVk1fT1BFTkZJTEVTCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgT3BlblNTTCBsaWJyYXJ5ICgtbGNyeXB0byBvciAtbGVheTMyKS4gKi8KI3VuZGVmIEhBVkVfTElCQ1JZUFRPCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGVsZicgbGlicmFyeSAoLWxlbGYpLiAqLwojdW5kZWYgSEFWRV9MSUJFTEYKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBga3N0YXQnIGxpYnJhcnkgKC1sa3N0YXQpLiAqLwojdW5kZWYgSEFWRV9MSUJLU1RBVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBtbGQnIGxpYnJhcnkgKC1sbWxkKS4gKi8KI3VuZGVmIEhBVkVfTElCTUxECgovKiBEZWZpbmUgdG8gMSBpZiA8bmV0bGluay9uZXRsaW5rLmg+IHByb3ZpZGVzIHRoZSBsaWJubDMgQVBJICovCiN1bmRlZiBIQVZFX0xJQk5MMwoKLyogZGVmaW5lIGlmIHlvdSBoYXZlIGxpYm5tICovCiN1bmRlZiBIQVZFX0xJQk5NCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG5zbCcgbGlicmFyeSAoLWxuc2wpLiAqLwojdW5kZWYgSEFWRV9MSUJOU0wKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGlicGVyZnN0YXQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0xJQlBFUkZTVEFUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcGtjczExJyBsaWJyYXJ5ICgtbHBrY3MxMSkuICovCiN1bmRlZiBIQVZFX0xJQlBLQ1MxMQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBwdGhyZWFkJyBsaWJyYXJ5ICgtbHB0aHJlYWQpLiAqLwojdW5kZWYgSEFWRV9MSUJQVEhSRUFECgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHJwbScgbGlicmFyeSAoLWxycG0pLiAqLwojdW5kZWYgSEFWRV9MSUJSUE0KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgUlNBZ2x1ZScgbGlicmFyeSAoLWxSU0FnbHVlKS4gKi8KI3VuZGVmIEhBVkVfTElCUlNBR0xVRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGByc2FyZWYnIGxpYnJhcnkgKC1scnNhcmVmKS4gKi8KI3VuZGVmIEhBVkVfTElCUlNBUkVGCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNyZXMnIGxpYnJhcnkgKC1sc3JlcykuICovCiN1bmRlZiBIQVZFX0xJQlNSRVMKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3NoMicgbGlicmFyeSAoLWxzc2gyKS4gKi8KI3VuZGVmIEhBVkVfTElCU1NIMgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzc2wnIGxpYnJhcnkgKC1sc3NsKS4gKi8KI3VuZGVmIEhBVkVfTElCU1NMCgovKiBEZWZpbmUgdG8gMSBpZiB5b3VyIGBzc2wnIGxpYnJhcnkgc3VwcG9ydHMgRFRMUyAoLWxzc2wpLiAqLwojdW5kZWYgSEFWRV9MSUJTU0xfRFRMUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW1pdHMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0xJTUlUU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L2V0aHRvb2wuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0xJTlVYX0VUSFRPT0xfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9oZHJlZy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTElOVVhfSERSRUdfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9uZXRsaW5rLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9MSU5VWF9ORVRMSU5LX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGludXgvcnRuZXRsaW5rLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9MSU5VWF9SVE5FVExJTktfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC90YXNrcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTElOVVhfVEFTS1NfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsb2NhbGUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0xPQ0FMRV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGxvY2FsdGltZV9yJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfTE9DQUxUSU1FX1IKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBsb25nIGxvbmcgaW50Jy4gKi8KI3VuZGVmIEhBVkVfTE9OR19MT05HX0lOVAoKLyogU2V0IGlmIHRoZSBscHN0YXQgY29tbWFuZCBpcyBhdmFpbGFibGUgKi8KI3VuZGVmIEhBVkVfTFBTVEFUCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGxyYW5kNDgnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9MUkFORDQ4CgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGxzZWVrNjQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9MU0VFSzY0CgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1hY2hpbmUvcGFyYW0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX01BQ0hJTkVfUEFSQU1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtYWNoaW5lL3B0ZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTUFDSElORV9QVEVfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtYWNoaW5lL3R5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9NQUNISU5FX1RZUEVTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWFsbG9jLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9NQUxMT0NfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtZW1vcnkuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX01FTU9SWV9ICgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgbWliMl9pcElmU3RhdHNFbnRyeV90Jy4gKi8KI3VuZGVmIEhBVkVfTUlCMl9JUElGU1RBVFNFTlRSWV9UCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG1rc3RlbXAnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9NS1NURU1QCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG1rdGltZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX01LVElNRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtbnRlbnQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX01OVEVOVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG10YWIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX01UQUJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuYnV0aWwuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05CVVRJTF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5kaXIuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLiAqLwojdW5kZWYgSEFWRV9ORElSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0ZGIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVERCX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldDYvaW42X3BjYi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVDZfSU42X1BDQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQ2L2luNl92YXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVQ2X0lONl9WQVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0Ni9pcDZfdmFyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUNl9JUDZfVkFSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldDYvbmQ2Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUNl9ORDZfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0Ni90Y3A2X2ZzbS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVDZfVENQNl9GU01fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0Ni90Y3A2Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUNl9UQ1A2X0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldDYvdGNwNl90aW1lci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVDZfVENQNl9USU1FUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQ2L3RjcDZfdmFyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUNl9UQ1A2X1ZBUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvaWNtcDYuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfSUNNUDZfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2ljbXBfdmFyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX0lDTVBfVkFSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC9pZl9ldGhlci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JRl9FVEhFUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvaW4uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfSU5fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2luX3BjYi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JTl9QQ0JfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2luX3N5c3RtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX0lOX1NZU1RNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC9pbl92YXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfSU5fVkFSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC9pcDYuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfSVA2X0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC9pcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvaXBfaWNtcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JUF9JQ01QX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC9pcF92YXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfSVBfVkFSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC90Y3BpcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9UQ1BJUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvdGNwX2ZzbS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9UQ1BfRlNNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC90Y3AuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfVENQX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC90Y3BfdGltZXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfVENQX1RJTUVSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC90Y3BfdmFyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX1RDUF9WQVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L3VkcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9VRFBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L3VkcF92YXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfVURQX1ZBUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGlweC9pcHguaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElQWF9JUFhfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRsaW5rL25ldGxpbmsuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVExJTktfTkVUTElOS19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldC9pZl9hcnAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVF9JRl9BUlBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXQvaWZfZGwuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVF9JRl9ETF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldC9pZi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUX0lGX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0L2lmX21pYi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUX0lGX01JQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldC9pZl90eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUX0lGX1RZUEVTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0L2lmX3Zhci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUX0lGX1ZBUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldC9yb3V0ZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUX1JPVVRFX0gKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBuZmRzX3QnLiAqLwojdW5kZWYgSEFWRV9ORkRTX1QKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbmxpc3QnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9OTElTVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBubGlzdDY0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfTkxJU1Q2NAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxubGlzdC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkxJU1RfSAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYG9mZjY0X3QnLiAqLwojdW5kZWYgSEFWRV9PRkY2NF9UCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG9wZW5kaXInIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9PUEVORElSCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG9wZW5zc2wvYWVzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9PUEVOU1NMX0FFU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG9wZW5zc2wvZGVzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9PUEVOU1NMX0RFU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG9wZW5zc2wvZGguaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX09QRU5TU0xfREhfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxvcGVuc3NsL2V2cC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfT1BFTlNTTF9FVlBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxvcGVuc3NsL2htYWMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX09QRU5TU0xfSE1BQ19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG9zcmVsZGF0ZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfT1NSRUxEQVRFX0gKCi8qIGRlZmluZSBpZiB5b3UgaGF2ZSBwY2lfbG9va3VwX25hbWUoKSAqLwojdW5kZWYgSEFWRV9QQ0lfTE9PS1VQX05BTUUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cGNpL3BjaS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUENJX1BDSV9ICgovKiBvbiBhaXgsIGlmIHlvdSBoYXZlIHBlcmZzdGF0ICovCiN1bmRlZiBIQVZFX1BFUkZTVEFUCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSBgdGhlIHBlcmxfZXZhbF9wdicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1BFUkxfRVZBTF9QVl9MQwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBQZXJsX2V2YWxfcHYnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9QRVJMX0VWQUxfUFZfVUMKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cGljbC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUElDTF9ICgovKiBkZWZpbmUgaWYgeW91IGhhdmUgcGtnaW5mbyAqLwojdW5kZWYgSEFWRV9QS0dJTkZPCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHBrZ2luZm8uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1BLR0lORk9fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwa2dsb2NzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9QS0dMT0NTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcG9sbCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1BPTEwKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcHJlYWQ2NCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1BSRUFENjQKCi8qIFNldCBpZiAvZXRjL3ByaW50Y2FwIGV4aXN0cyAqLwojdW5kZWYgSEFWRV9QUklOVENBUAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwdGhyZWFkLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9QVEhSRUFEX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cHdkLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9QV0RfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGByYW5kJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfUkFORAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGByYW5kb20nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9SQU5ET00KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcmVhZGRpcicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1JFQURESVIKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcmVnY29tcCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1JFR0NPTVAKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cmVnZXguaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1JFR0VYX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcnBtR2V0UGF0aCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1JQTUdFVFBBVEgKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cnBtL2hlYWRlci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUlBNX0hFQURFUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHJwbS9ycG1maWxldXRpbC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUlBNX1JQTUZJTEVVVElMX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cnBtL3JwbWxpYi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUlBNX1JQTUxJQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHJwbS9ycG10cy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUlBNX1JQTVRTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c2VhcmNoLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TRUFSQ0hfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzZWN1cml0eS9jcnlwdG9raS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU0VDVVJJVFlfQ1JZUFRPS0lfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZWxlY3QnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TRUxFQ1QKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c2Vuc29ycy9zZW5zb3JzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TRU5TT1JTX1NFTlNPUlNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZXRlbnYnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TRVRFTlYKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0Z2lkJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0VUR0lECgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldGdyb3VwcycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NFVEdST1VQUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZXRpdGltZXInIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TRVRJVElNRVIKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0bG9jYWxlJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0VUTE9DQUxFCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldG1udGVudCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NFVE1OVEVOVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZXRzaWQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TRVRTSUQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0dWlkJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0VUVUlECgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHNndHR5Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TR1RUWV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNpZ2FjdGlvbicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NJR0FDVElPTgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWdhbHJtJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0lHQUxSTQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWdibG9jaycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NJR0JMT0NLCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNpZ2hvbGQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TSUdIT0xECgovKiBEZWZpbmUgaWYgU0lHSFVQIGlzIGRlZmluZWQgaW4gPHNpZ25hbC5oPi4gKi8KI3VuZGVmIEhBVkVfU0lHSFVQCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNpZ25hbCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NJR05BTAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWdwcm9jbWFzaycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NJR1BST0NNQVNLCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNpZ3NldCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NJR1NFVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzbnByaW50ZicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NOUFJJTlRGCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNvY2tldCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NPQ0tFVAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHNvY2tsZW5fdCcuICovCiN1bmRlZiBIQVZFX1NPQ0tMRU5fVAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHNzaXplX3QnLiAqLwojdW5kZWYgSEFWRV9TU0laRV9UCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0YXRmcycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUQVRGUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdGF0dmZzJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RBVFZGUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRpbnQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NURElOVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGxpYi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1RETElCX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RpbWUnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TVElNRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJjYXNlc3RyJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSQ0FTRVNUUgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJkdXAnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TVFJEVVAKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RyZXJyb3InIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TVFJFUlJPUgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmdzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TVFJJTkdTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RyaW5nLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TVFJJTkdfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJsY2F0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSTENBVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJsY3B5JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSTENQWQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJuY2FzZWNtcCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUUk5DQVNFQ01QCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cnRva19yJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSVE9LX1IKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RydG9sJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSVE9MCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cnRvdWwnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TVFJUT1VMCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cnRvdWxsJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSVE9VTEwKCi8qIERlZmluZSB0byAxIGlmIGBhdF9uZXh0JyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGFycGhkJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0FSUEhEX0FUX05FWFQKCi8qIERlZmluZSB0byAxIGlmIGB3ZWFrX2tleScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBkZXNfa3Nfc3RydWN0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0RFU19LU19TVFJVQ1RfV0VBS19LRVkKCi8qIERlZmluZSB0byAxIGlmIGBkX3R5cGUnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgZGlyZW50Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0RJUkVOVF9EX1RZUEUKCi8qIERlZmluZSB0byAxIGlmIGBzcGVlZF9oaScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBldGh0b29sX2NtZCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9FVEhUT09MX0NNRF9TUEVFRF9ISQoKLyogRGVmaW5lIHRvIDEgaWYgYGlmYV9uZXh0JyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmYWRkcicuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRkFERFJfSUZBX05FWFQKCi8qIERlZmluZSB0byAxIGlmIGBpZl9hZGRyaGVhZC50cWhfZmlyc3QnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfQUREUkhFQURfVFFIX0ZJUlNUCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfYWRkcmxpc3QnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfQUREUkxJU1QKCi8qIERlZmluZSB0byAxIGlmIGBpZl9iYXVkcmF0ZScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9CQVVEUkFURQoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX2JhdWRyYXRlLmlmc192YWx1ZScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9CQVVEUkFURV9JRlNfVkFMVUUKCi8qIERlZmluZSB0byAxIGlmIGBpZl9pYnl0ZXMnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfSUJZVEVTCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfaW1jYXN0cycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9JTUNBU1RTCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfaXFkcm9wcycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9JUURST1BTCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfbGFzdGNoYW5nZS50dl9uc2VjJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX0xBU1RDSEFOR0VfVFZfTlNFQwoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX2xhc3RjaGFuZ2UudHZfc2VjJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX0xBU1RDSEFOR0VfVFZfU0VDCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfbXR1JyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX01UVQoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX25vcHJvdG8nIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfTk9QUk9UTwoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX29ieXRlcycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9PQllURVMKCi8qIERlZmluZSB0byAxIGlmIGBpZl9vbWNhc3RzJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX09NQ0FTVFMKCi8qIERlZmluZSB0byAxIGlmIGBpZl9zcGVlZCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9TUEVFRAoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX3R5cGUnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfVFlQRQoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX3huYW1lJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX1hOQU1FCgovKiBEZWZpbmUgdG8gMSBpZiBgaXA2c19leHRoZHJ0b29sb25nICcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpcDZzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lQNlNUQVRfSVA2U19FWFRIRFJUT09MT05HXwoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19jYW50Zm9yd2FyZCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19DQU5URk9SV0FSRAoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19jYW50ZnJhZycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19DQU5URlJBRwoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19kZWxpdmVyZWQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfREVMSVZFUkVECgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX2ZyYWdkcm9wcGVkJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX0ZSQUdEUk9QUEVECgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX2ZyYWdtZW50ZWQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfRlJBR01FTlRFRAoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19mcmFndGltZW91dCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19GUkFHVElNRU9VVAoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19sb2NhbG91dCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19MT0NBTE9VVAoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19ub3Byb3RvJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX05PUFJPVE8KCi8qIERlZmluZSB0byAxIGlmIGBpcHNfbm9yb3V0ZScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19OT1JPVVRFCgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX29kcm9wcGVkJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX09EUk9QUEVECgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX29mcmFnbWVudHMnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfT0ZSQUdNRU5UUwoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19yZWFzc2VtYmxlZCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19SRUFTU0VNQkxFRAoKLyogRGVmaW5lIHRvIDEgaWYgYG1fY2xmcmVlJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IG1ic3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9NQlNUQVRfTV9DTEZSRUUKCi8qIERlZmluZSB0byAxIGlmIGBtX2NsdXN0ZXJzJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IG1ic3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9NQlNUQVRfTV9DTFVTVEVSUwoKLyogRGVmaW5lIHRvIDEgaWYgYG1fbWJ1ZnMnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgbWJzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX01CU1RBVF9NX01CVUZTCgovKiBEZWZpbmUgdG8gMSBpZiBgbl92YWx1ZScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBubGlzdDY0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX05MSVNUNjRfTl9WQUxVRQoKLyogRGVmaW5lIHRvIDEgaWYgYG5fdmFsdWUnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgbmxpc3QnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfTkxJU1RfTl9WQUxVRQoKLyogRGVmaW5lIHRvIDEgaWYgYHJ0X2RzdCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBydGVudHJ5Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1JURU5UUllfUlRfRFNUCgovKiBEZWZpbmUgdG8gMSBpZiBgcnRfaGFzaCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBydGVudHJ5Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1JURU5UUllfUlRfSEFTSAoKLyogRGVmaW5lIHRvIDEgaWYgYHJ0X25leHQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgcnRlbnRyeScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9SVEVOVFJZX1JUX05FWFQKCi8qIERlZmluZSB0byAxIGlmIGBydF9yZWZjbnQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgcnRlbnRyeScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9SVEVOVFJZX1JUX1JFRkNOVAoKLyogRGVmaW5lIHRvIDEgaWYgYHJ0X3VuaXQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgcnRlbnRyeScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9SVEVOVFJZX1JUX1VOSVQKCi8qIERlZmluZSB0byAxIGlmIGBydF91c2UnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgcnRlbnRyeScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9SVEVOVFJZX1JUX1VTRQoKLyogRGVmaW5lIHRvIDEgaWYgYHNhX3NpZ2FjdGlvbicgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBzaWdhY3Rpb24nLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU0lHQUNUSU9OX1NBX1NJR0FDVElPTgoKLyogRGVmaW5lIHRvIDEgaWYgYHNpbjZfc2NvcGVfaWQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgc29ja2FkZHJfaW42Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lECgovKiBEZWZpbmUgdG8gMSBpZiBgc2FfbGVuJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHNvY2thZGRyJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NPQ0tBRERSX1NBX0xFTgoKLyogRGVmaW5lIHRvIDEgaWYgYHNhX3VuaW9uLnNhX2dlbmVyaWMuc2FfZmFtaWx5MicgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdAogICBzb2NrYWRkcicuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TT0NLQUREUl9TQV9VTklPTl9TQV9HRU5FUklDX1NBX0ZBTUlMWTIKCi8qIERlZmluZSB0byAxIGlmIGBzc19mYW1pbHknIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TT0NLQUREUl9TVE9SQUdFX1NTX0ZBTUlMWQoKLyogRGVmaW5lIHRvIDEgaWYgYF9fc3NfZmFtaWx5JyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU09DS0FERFJfU1RPUkFHRV9fX1NTX0ZBTUlMWQoKLyogRGVmaW5lIHRvIDEgaWYgYGZfZmF2YWlsJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHN0YXRmcycuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TVEFURlNfRl9GQVZBSUwKCi8qIERlZmluZSB0byAxIGlmIGBmX2ZmcmVlJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHN0YXRmcycuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TVEFURlNfRl9GRlJFRQoKLyogRGVmaW5lIHRvIDEgaWYgYGZfZmlsZXMnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdGZzJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRGU19GX0ZJTEVTCgovKiBEZWZpbmUgdG8gMSBpZiBgZl9mbGFncycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0ZnMnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVEZTX0ZfRkxBR1MKCi8qIERlZmluZSB0byAxIGlmIGBmX2Zyc2l6ZScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0ZnMnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVEZTX0ZfRlJTSVpFCgovKiBEZWZpbmUgdG8gMSBpZiBgZl9maWxlcycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0dmZzJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRWRlNfRl9GSUxFUwoKLyogRGVmaW5lIHRvIDEgaWYgYGZfZnJzaXplJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHN0YXR2ZnMnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVFZGU19GX0ZSU0laRQoKLyogRGVmaW5lIHRvIDEgaWYgYG1udF9kaXInIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdHZmcycuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TVEFUVkZTX01OVF9ESVIKCi8qIERlZmluZSB0byAxIGlmIGBzd19uYmxrc2VuYWJsZWQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3dkZXZ0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NXREVWVF9TV19OQkxLU0VOQUJMRUQKCi8qIERlZmluZSB0byAxIGlmIGB0Y3BfcmN2bWVtZHJvcCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCB0Y3BzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1RDUFNUQVRfVENQX1JDVk1FTURST1AKCi8qIERlZmluZSB0byAxIGlmIGB0el9kc3R0aW1lJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHRpbWV6b25lJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1RJTUVaT05FX1RaX0RTVFRJTUUKCi8qIERlZmluZSB0byAxIGlmIGB0bV9nbXRvZmYnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgdG0nLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfVE1fVE1fR01UT0ZGCgovKiBEZWZpbmUgdG8gMSBpZiBgdWRwc19kaXNjYXJkJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHVkcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfVURQU1RBVF9VRFBTX0RJU0NBUkQKCi8qIERlZmluZSB0byAxIGlmIGB1ZHBzX2Z1bGxzb2NrJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHVkcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfVURQU1RBVF9VRFBTX0ZVTExTT0NLCgovKiBEZWZpbmUgdG8gMSBpZiBgdWRwc19pcGFja2V0cycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCB1ZHBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1VEUFNUQVRfVURQU19JUEFDS0VUUwoKLyogRGVmaW5lIHRvIDEgaWYgYHVkcHNfbm9wb3J0JyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHVkcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfVURQU1RBVF9VRFBTX05PUE9SVAoKLyogRGVmaW5lIHRvIDEgaWYgYHVkcHNfbm9wb3J0YmNhc3QnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgdWRwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9VRFBTVEFUX1VEUFNfTk9QT1JUQkNBU1QKCi8qIERlZmluZSB0byAxIGlmIGB1ZHBzX29wYWNrZXRzJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHVkcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfVURQU1RBVF9VRFBTX09QQUNLRVRTCgovKiBEZWZpbmUgdG8gMSBpZiBgcGdzd2FwaW4nIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgdXZtZXhwJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1VWTUVYUF9QR1NXQVBJTgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzeXNjb25mJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1lTQ09ORgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXNsb2cuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU0xPR19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN5c3RlbScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NZU1RFTQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvY2RlZnMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19DREVGU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9jb25mLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfQ09ORl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9kaXIuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLgogICAqLwojdW5kZWYgSEFWRV9TWVNfRElSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rpc2tpby5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0RJU0tJT19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9kaXNrbGFiZWwuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19ESVNLTEFCRUxfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZGtpby5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0RLSU9fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZGtzdGF0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfREtTVEFUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2RtYXAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19ETUFQX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2ZpbGUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19GSUxFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2ZpbGlvLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfRklMSU9fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZml4cG9pbnQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19GSVhQT0lOVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9mcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0ZTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2hhc2hpbmcuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19IQVNISU5HX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2lvY3RsLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfSU9DVExfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvbG9hZGF2Zy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0xPQURBVkdfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvbWJ1Zi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX01CVUZfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvbW50ZW50Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfTU5URU5UX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL21udHRhYi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX01OVFRBQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9tb3VudC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX01PVU5UX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL25kaXIuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLgogICAqLwojdW5kZWYgSEFWRV9TWVNfTkRJUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wYXJhbS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1BBUkFNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3BvbGwuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19QT0xMX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Bvb2wuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19QT09MX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Byb2MuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19QUk9DX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Byb3Rvc3cuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19QUk9UT1NXX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3BzdGF0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfUFNUQVRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcXVldWUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19RVUVVRV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zZWxlY3QuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TRUxFQ1RfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc2VtYS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NFTUFfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc29ja2V0dmFyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU09DS0VUVkFSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3NvY2tldC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NPQ0tFVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zb2NraW8uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TT0NLSU9fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RhdGZzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1RBVEZTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N0YXR2ZnMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TVEFUVkZTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N0YXQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TVEFUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N0cmVhbS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NUUkVBTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zd2FwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1dBUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zeXNjdGwuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TWVNDVExfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3lzZ2V0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1lTR0VUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N5c21wLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1lTTVBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3lzdGVtY2ZnLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1lTVEVNQ0ZHX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N5c3RlbWluZm8uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TWVNURU1JTkZPX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3RjcGlwc3RhdHMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19UQ1BJUFNUQVRTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3RpbWViLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVElNRUJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdGltZW91dC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1RJTUVPVVRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdGltZXMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19USU1FU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90aW1lLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVElNRV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1RZUEVTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Vpby5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1VJT19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy91bi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1VOX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3VzZXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19VU0VSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3V0c25hbWUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19VVFNOQU1FX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Zmcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1ZGU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy92bW1hYy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1ZNTUFDX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3ZtbWV0ZXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19WTU1FVEVSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3ZtcGFyYW0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19WTVBBUkFNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Ztc3lzdG0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19WTVNZU1RNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3ZtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVk1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdm5vZGUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19WTk9ERV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSA8c3lzL3dhaXQuaD4gdGhhdCBpcyBQT1NJWC4xIGNvbXBhdGlibGUuICovCiN1bmRlZiBIQVZFX1NZU19XQUlUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgdGNnZXRhdHRyJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfVENHRVRBVFRSCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHRpbWVzJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfVElNRVMKCi8qIERlZmluZSBpZiBhIHRpbWV6b25lIHZhcmlhYmxlIGlzIGRlY2xhcmVkIGluIDxzeXMvdGltZS5oPiAqLwojdW5kZWYgSEFWRV9USU1FWk9ORV9WQVJJQUJMRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1ZnMvZmZzL2ZzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9VRlNfRkZTX0ZTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dWZzL2ZzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9VRlNfRlNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1ZnMvdWZzL2Rpbm9kZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVUZTX1VGU19ESU5PREVfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1ZnMvdWZzL2lub2RlLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9VRlNfVUZTX0lOT0RFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dWZzL3Vmcy9xdW90YS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVUZTX1VGU19RVU9UQV9ICgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgdWludG1heF90Jy4gKi8KI3VuZGVmIEhBVkVfVUlOVE1BWF9UCgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgdWludHB0cl90Jy4gKi8KI3VuZGVmIEhBVkVfVUlOVFBUUl9UCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHVuYW1lJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfVU5BTUUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dW5pc3RkLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9VTklTVERfSAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQnLiAqLwojdW5kZWYgSEFWRV9VTlNJR05FRF9MT05HX0xPTkdfSU5UCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHVzbGVlcCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1VTTEVFUAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1dG1weC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVVRNUFhfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1dHNuYW1lLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9VVFNOQU1FX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dXZtL3V2bV9leHRlcm4uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1VWTV9VVk1fRVhURVJOX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dXZtL3V2bV9wYXJhbS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVVZNX1VWTV9QQVJBTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHZhbGdyaW5kL21lbWNoZWNrLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9WQUxHUklORF9NRU1DSEVDS19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHZhbGdyaW5kL3ZhbGdyaW5kLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9WQUxHUklORF9WQUxHUklORF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHZhbGlkYXRvci92YWxpZGF0b3ItY29uZmlnLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9WQUxJREFUT1JfVkFMSURBVE9SX0NPTkZJR19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHZtL3N3YXBfcGFnZXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1ZNX1NXQVBfUEFHRVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2bS92bV9leHRlcm4uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1ZNX1ZNX0VYVEVSTl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHZtL3ZtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9WTV9WTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHZtL3ZtX3BhcmFtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9WTV9WTV9QQVJBTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHZzbnByaW50ZicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1ZTTlBSSU5URgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx3aW5kb3dzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9XSU5ET1dTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8d2luc29jazIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1dJTlNPQ0syX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8d2luc29jay5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfV0lOU09DS19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHdzMnRjcGlwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9XUzJUQ1BJUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHh0aS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfWFRJX0gKCi8qIGxvY2F0aW9uIG9mIFVOSVgga2VybmVsICovCiN1bmRlZiBLRVJORUxfTE9DCgovKiBQYXRoIHRvIHRoZSBscHN0YXQgY29tbWFuZCAqLwojdW5kZWYgTFBTVEFUX1BBVEgKCi8qIERlZmluZSB0byB0aGUgc3ViLWRpcmVjdG9yeSBpbiB3aGljaCBsaWJ0b29sIHN0b3JlcyB1bmluc3RhbGxlZCBsaWJyYXJpZXMuCiAgICovCiN1bmRlZiBMVF9PQkpESVIKCi8qIGRlZmluZSBpZiBhZ2VudHggdHJhbnNwb3J0IGlzIHRvIHVzZSBkb21haW4gc29ja2V0cyBvbmx5ICovCiN1bmRlZiBORVRTTk1QX0FHRU5UWF9ET01fU09DS19PTkxZCgovKiBVbml4IGRvbWFpbiBzb2NrZXQgZm9yIEFnZW50WCBtYXN0ZXItc3ViYWdlbnQgY29tbXVuaWNhdGlvbiAqLwojdW5kZWYgTkVUU05NUF9BR0VOVFhfU09DS0VUCgovKiBEZWZpbmUgaWYgc3RhdGljIGlubGluZSBmdW5jdGlvbnMgYXJlIHVuc3VwcG9ydGVkICovCiN1bmRlZiBORVRTTk1QX0JST0tFTl9JTkxJTkUKCi8qICJEZWZpbmUgaWYgY3J5dG9ncmFwaHkgc3VwcG9ydCBpcyBwb3NzaWJsZSIgKi8KI3VuZGVmIE5FVFNOTVBfQ0FOX0RPX0NSWVBUTwoKLyogc3lzY3RsIHdvcmtzIHRvIGdldCBib290dGltZSwgZXRjLi4uICovCiN1bmRlZiBORVRTTk1QX0NBTl9VU0VfU1lTQ1RMCgovKiBjb25maWd1cmUgb3B0aW9ucyBzcGVjaWZpZWQgKi8KI3VuZGVmIE5FVFNOTVBfQ09ORklHVVJFX09QVElPTlMKCi8qIGRlZmF1bHQgbG9jYXRpb24gdG8gbG9vayBmb3IgbWlicyB0byBsb2FkIHVzaW5nIHRoZSBhYm92ZSB0b2tlbnMgYW5kL29yCiAgIHRob3NlIGluIHRoZSBNSUJTIGVudnJpb25tZW50IHZhcmlhYmxlICovCiN1bmRlZiBORVRTTk1QX0RFRkFVTFRfTUlCRElSUwoKLyogZGVmYXVsdCBtaWIgZmlsZXMgdG8gbG9hZCwgc3BlY2lmaWVkIGJ5IHBhdGguICovCiN1bmRlZiBORVRTTk1QX0RFRkFVTFRfTUlCRklMRVMKCi8qIERlZmluZSBpZiBubyBhZ2VudCBpcyBidWlsdCAqLwojdW5kZWYgTkVUU05NUF9ESVNBQkxFX0FHRU5UCgovKiBEZWZpbmUgaWYgbm8gYXBwcyBhcmUgYnVpbHQgKi8KI3VuZGVmIE5FVFNOTVBfRElTQUJMRV9BUFBTCgovKiBEZWZpbmUgaWYgREVTIGVuY3J5cHRpb24gc2hvdWxkIG5vdCBiZSBzdXBwb3J0ZWQgKi8KI3VuZGVmIE5FVFNOTVBfRElTQUJMRV9ERVMKCi8qIERlZmluZSBpZiBNRDUgYXV0aGVudGljYXRpb24gc2hvdWxkIG5vdCBiZSBzdXBwb3J0ZWQgKi8KI3VuZGVmIE5FVFNOTVBfRElTQUJMRV9NRDUKCi8qIERlZmluZSBpZiBtaWIgbG9hZGluZyBhbmQgcGFyc2luZyBjb2RlIHNob3VsZCBub3QgYmUgaW5jbHVkZWQgKi8KI3VuZGVmIE5FVFNOTVBfRElTQUJMRV9NSUJfTE9BRElORwoKLyogRGVmaW5lIGlmIFNOTVAgU0VUIHN1cHBvcnQgc2hvdWxkIGJlIGRpc2FibGVkICovCiN1bmRlZiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKCi8qIERlZmluZSBpZiBTTk1QdjEgY29kZSBzaG91bGQgbm90IGJlIGluY2x1ZGVkICovCiN1bmRlZiBORVRTTk1QX0RJU0FCTEVfU05NUFYxCgovKiBEZWZpbmUgaWYgU05NUHYyYyBjb2RlIHNob3VsZCBub3QgYmUgaW5jbHVkZWQgKi8KI3VuZGVmIE5FVFNOTVBfRElTQUJMRV9TTk1QVjJDCgovKiBEZWZpbmUgaWYgeW91IGFyZSBlbWJlZGRpbmcgcGVybCBpbiB0aGUgbWFpbiBhZ2VudC4gKi8KI3VuZGVmIE5FVFNOTVBfRU1CRURERURfUEVSTAoKLyogZGVmaW5lIGlmIHlvdSB3YW50IHRvIGVuYWJsZSBJUHY2IHN1cHBvcnQgKi8KI3VuZGVmIE5FVFNOTVBfRU5BQkxFX0lQVjYKCi8qIGRlZmluZSBpZiB5b3Ugd2FudCB0byByZXN0cmljdCBTTVVYIGNvbm5lY3Rpb25zIHRvIGxvY2FsaG9zdCBieSBkZWZhdWx0ICovCiN1bmRlZiBORVRTTk1QX0VOQUJMRV9MT0NBTF9TTVVYCgovKiBEZWZpbmUgaWYgeW91IHdhbnQgdG8gYnVpbGQgTUZEIG1vZHVsZSByZXdyaXRlcyAqLwojdW5kZWYgTkVUU05NUF9FTkFCTEVfTUZEX1JFV1JJVEVTCgovKiBkZWZpbmUgaWYgeW91IHdhbnQgdG8gY29tcGlsZSBzdXBwb3J0IGZvciBib3RoIGF1dGhlbnRpY2F0aW9uIGFuZCBwcml2YWN5CiAgIHN1cHBvcnQuICovCiN1bmRlZiBORVRTTk1QX0VOQUJMRV9TQ0FQSV9BVVRIUFJJVgoKLyogdGVzdGluZyBjb2RlIHNlY3Rpb25zLiAqLwojdW5kZWYgTkVUU05NUF9FTkFCTEVfVEVTVElOR19DT0RFCgovKiBTaG91bGQgZXZhbHVhdGUgdG8gdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgZnVuY3Rpb24gaWYgZGVmaW5lZCAqLwojdW5kZWYgTkVUU05NUF9GVU5DVElPTgoKLyogaWZuZXQgbmVlZHMgdG8gaGF2ZSBfS0VSTkVMIGRlZmluZWQgKi8KI3VuZGVmIE5FVFNOTVBfSUZORVRfTkVFRFNfS0VSTkVMCgovKiBpZm5ldCBuZWVkcyB0byBoYXZlIF9LRVJORUxfU1RSVUNUVVJFUyBkZWZpbmVkICovCiN1bmRlZiBORVRTTk1QX0lGTkVUX05FRURTX0tFUk5FTF9TVFJVQ1RVUkVTCgovKiBEZWZpbmUgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIGFsbCBub24tZXNzZW50aWFsIGNvZGUgZmVhdHVyZXMuICovCiN1bmRlZiBORVRTTk1QX01JTklNQUxfQ09ERQoKLyogRGVmaW5lIGlmIHlvdSB3YW50IHRvIG9ubHkgc3VwcG9ydCBzZW5kaW5nIG5vdGlmaWNhdGlvbnMgKi8KI3VuZGVmIE5FVFNOTVBfTk9USUZZX09OTFkKCi8qIERlZmluZSB0byBzdXBwcmVzcyBpbmNsdXNpb24gb2YgZGVwcmVjYXRlZCBmdW5jdGlvbnMgKi8KI3VuZGVmIE5FVFNOTVBfTk9fREVQUkVDQVRFRF9GVU5DVElPTlMKCi8qIElmIHlvdSBkb24ndCB3YW50IHRoZSBhZ2VudCB0byByZXBvcnQgb24gdmFyaWFibGVzIGl0IGRvZXNuJ3QgaGF2ZSBkYXRhIGZvcgogICAqLwojdW5kZWYgTkVUU05NUF9OT19EVU1NWV9WQUxVRVMKCi8qIElmIHdlIGRvbid0IHdhbnQgdG8gdXNlIGttZW0uICovCiN1bmRlZiBORVRTTk1QX05PX0tNRU1fVVNBR0UKCi8qIERlZmluZSBpZiB5b3Ugd2FudCB0byByZW1vdmUgYWxsIGxpc3RlbmluZyBzdXBwb3J0IGZyb20gdGhlIGNvZGUgKi8KI3VuZGVmIE5FVFNOTVBfTk9fTElTVEVOX1NVUFBPUlQKCi8qIElmIHlvdSBkb24ndCBoYXZlIHJvb3QgYWNjZXNzIGRvbid0IGV4aXQgdXBvbiBrbWVtIGVycm9ycyAqLwojdW5kZWYgTkVUU05NUF9OT19ST09UX0FDQ0VTUwoKLyogRGVmaW5lIGlmIHlvdSB3YW50IHRvIHJlbW92ZSBhbGwgU0VUL3dyaXRlIGFjY2VzcyBmcm9tIHRoZSBjb2RlICovCiN1bmRlZiBORVRTTk1QX05PX1dSSVRFX1NVUFBPUlQKCi8qIHVtYXNrIHBlcm1pc3Npb25zIHRvIHNldCB1cCBwZXJzaXN0ZW50IGZpbGVzIHdpdGggKi8KI3VuZGVmIE5FVFNOTVBfUEVSU0lTVEVOVF9NQVNLCgovKiBTaXplIHByZWZpeCB0byB1c2UgdG8gcHJpbnRmIGEgdWludDMyX3QgKi8KI3VuZGVmIE5FVFNOTVBfUFJJMzIKCi8qIFNpemUgcHJlZml4IHRvIHVzZSB0byBwcmludGYgYSBzaXplX3Qgb3Igc3NpemVfdCAqLwojdW5kZWYgTkVUU05NUF9QUkl6CgovKiBEZWZpbmUgdG8gMSBpZiB5b3Ugd2FudCB0byBidWlsZCB3aXRoIHJlZW50cmFudC90aHJlYWRlZCBjb2RlIChpbmNvbXBsZXRlKS4KICAgKi8KI3VuZGVmIE5FVFNOTVBfUkVFTlRSQU5UCgovKiBkZWZpbmUgaWYgeW91IGRvIG5vdCB3YW50IHNubXB0cmFwZCB0byByZWdpc3RlciBhcyBhbiBBZ2VudFggc3ViYWdlbnQgKi8KI3VuZGVmIE5FVFNOTVBfU05NUFRSQVBEX0RJU0FCTEVfQUdFTlRYCgovKiBQYXR0ZXJuIG9mIHRlbXBvcmFyeSBmaWxlcyAqLwojdW5kZWYgTkVUU05NUF9URU1QX0ZJTEVfUEFUVEVSTgoKLyogIkRlZmluZSBpZiBpbnRlcm5hbCBjcnlwdG9ncmFwaHkgY29kZSBzaG91bGQgYmUgdXNlZCIgKi8KI3VuZGVmIE5FVFNOTVBfVVNFX0lOVEVSTkFMX0NSWVBUTwoKLyogZGVmaW5lIGlmIHlvdSBhcmUgdXNpbmcgdGhlIE1ENSBjb2RlIC4uLiAqLwojdW5kZWYgTkVUU05NUF9VU0VfSU5URVJOQUxfTUQ1CgovKiBEZWZpbmUgdGhpcyBpZiB5b3UncmUgdXNpbmcgSGVpbWRhbCBLZXJiZXJvcyAqLwojdW5kZWYgTkVUU05NUF9VU0VfS0VSQkVST1NfSEVJTURBTAoKLyogRGVmaW5lIHRoaXMgaWYgd2UncmUgdXNpbmcgdGhlIG5ldyBNSVQgY3J5cHRvIEFQSSAqLwojdW5kZWYgTkVUU05NUF9VU0VfS0VSQkVST1NfTUlUCgovKiBkZWZpbmUgaWYgeW91IGFyZSB1c2luZyB0aGUgbXlzcWwgY29kZSBmb3Igc25tcHRyYXBkIC4uLiAqLwojdW5kZWYgTkVUU05NUF9VU0VfTVlTUUwKCi8qIERlZmluZSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBjb2RlUzExIGxpYnJhcnkgLi4uICovCiN1bmRlZiBORVRTTk1QX1VTRV9QS0NTMTEKCi8qIERlZmluZSB0aGlzIGlmIHlvdSBoYXZlIGxtX3NlbnNvcnMgdjMgb3IgbGF0ZXIgKi8KI3VuZGVmIE5FVFNOTVBfVVNFX1NFTlNPUlNfVjMKCi8qIFNob3VsZCB3ZSBjb21waWxlIHRvIHVzZSBzcGVjaWFsIG9wYXF1ZSB0eXBlczogZmxvYXQsIGRvdWJsZSwgY291bnRlcjY0LAogICBpNjQsIHVpNjQsIHVuaW9uPyAqLwojdW5kZWYgTkVUU05NUF9XSVRIX09QQVFVRV9TUEVDSUFMX1RZUEVTCgovKiBEZWZpbmUgdG8gdGhlIGFkZHJlc3Mgd2hlcmUgYnVnIHJlcG9ydHMgZm9yIHRoaXMgcGFja2FnZSBzaG91bGQgYmUgc2VudC4gKi8KI2lmbmRlZiBQQUNLQUdFX0JVR1JFUE9SVAojdW5kZWYgUEFDS0FHRV9CVUdSRVBPUlQKI2VuZGlmCgovKiBEZWZpbmUgdG8gdGhlIGZ1bGwgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCiNpZm5kZWYgUEFDS0FHRV9OQU1FCiN1bmRlZiBQQUNLQUdFX05BTUUKI2VuZGlmCgovKiBEZWZpbmUgdG8gdGhlIGZ1bGwgbmFtZSBhbmQgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UuICovCiNpZm5kZWYgUEFDS0FHRV9TVFJJTkcKI3VuZGVmIFBBQ0tBR0VfU1RSSU5HCiNlbmRpZgoKLyogRGVmaW5lIHRvIHRoZSBvbmUgc3ltYm9sIHNob3J0IG5hbWUgb2YgdGhpcyBwYWNrYWdlLiAqLwojaWZuZGVmIFBBQ0tBR0VfVEFSTkFNRQojdW5kZWYgUEFDS0FHRV9UQVJOQU1FCiNlbmRpZgoKLyogRGVmaW5lIHRvIHRoZSBob21lIHBhZ2UgZm9yIHRoaXMgcGFja2FnZS4gKi8KI3VuZGVmIFBBQ0tBR0VfVVJMCgovKiBEZWZpbmUgdG8gdGhlIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlLiAqLwojaWZuZGVmIFBBQ0tBR0VfVkVSU0lPTgojdW5kZWYgUEFDS0FHRV9WRVJTSU9OCiNlbmRpZgoKLyogQ29tbWFuZCB0byBnZW5lcmF0ZSBwcyBvdXRwdXQsIHRoZSBmaW5hbCBjb2x1bW4gbXVzdCBiZSB0aGUgcHJvY2VzcyBuYW1lCiAgIHdpdGhPVVQgYXJndW1lbnRzICovCiN1bmRlZiBQU0NNRAoKLyogRGVmaW5lIGFzIHRoZSByZXR1cm4gdHlwZSBvZiBzaWduYWwgaGFuZGxlcnMgKGBpbnQnIG9yIGB2b2lkJykuICovCiN1bmRlZiBSRVRTSUdUWVBFCgovKiBkZWZpbmUgcnRlbnRyeSB0byBvcnRlbnRyeSBvbiBTWVNWIG1hY2hpbmVzIChhbHBoYXMpICovCiN1bmRlZiBSVEVOVFJZCgovKiBVc2UgQlNEIDQuNCByb3V0aW5nIHRhYmxlIGVudHJpZXM/ICovCiN1bmRlZiBSVEVOVFJZXzRfNAoKLyogVGhlIHNpemUgb2YgYGludCcsIGFzIGNvbXB1dGVkIGJ5IHNpemVvZi4gKi8KI3VuZGVmIFNJWkVPRl9JTlQKCi8qIFRoZSBzaXplIG9mIGBpbnRtYXhfdCcsIGFzIGNvbXB1dGVkIGJ5IHNpemVvZi4gKi8KI3VuZGVmIFNJWkVPRl9JTlRNQVhfVAoKLyogVGhlIHNpemUgb2YgYGxvbmcnLCBhcyBjb21wdXRlZCBieSBzaXplb2YuICovCiN1bmRlZiBTSVpFT0ZfTE9ORwoKLyogVGhlIHNpemUgb2YgYGxvbmcgbG9uZycsIGFzIGNvbXB1dGVkIGJ5IHNpemVvZi4gKi8KI3VuZGVmIFNJWkVPRl9MT05HX0xPTkcKCi8qIFRoZSBzaXplIG9mIGBzaG9ydCcsIGFzIGNvbXB1dGVkIGJ5IHNpemVvZi4gKi8KI3VuZGVmIFNJWkVPRl9TSE9SVAoKLyogVGhlIHNpemUgb2YgYHNvY2thZGRyX3VuLnN1bl9wYXRoJywgYXMgY29tcHV0ZWQgYnkgc2l6ZW9mLiAqLwojdW5kZWYgU0laRU9GX1NPQ0tBRERSX1VOX1NVTl9QQVRICgovKiBJZiB1c2luZyB0aGUgQyBpbXBsZW1lbnRhdGlvbiBvZiBhbGxvY2EsIGRlZmluZSBpZiB5b3Uga25vdyB0aGUKICAgZGlyZWN0aW9uIG9mIHN0YWNrIGdyb3d0aCBmb3IgeW91ciBzeXN0ZW07IG90aGVyd2lzZSBpdCB3aWxsIGJlCiAgIGF1dG9tYXRpY2FsbHkgZGVkdWNlZCBhdCBydW50aW1lLgoJU1RBQ0tfRElSRUNUSU9OID4gMCA9PiBncm93cyB0b3dhcmQgaGlnaGVyIGFkZHJlc3NlcwoJU1RBQ0tfRElSRUNUSU9OIDwgMCA9PiBncm93cyB0b3dhcmQgbG93ZXIgYWRkcmVzc2VzCglTVEFDS19ESVJFQ1RJT04gPSAwID0+IGRpcmVjdGlvbiBvZiBncm93dGggdW5rbm93biAqLwojdW5kZWYgU1RBQ0tfRElSRUNUSU9OCgovKiBEZWZpbmUgaWYgc3RhdGZzIHRha2VzIDIgYXJncyBhbmQgdGhlIHNlY29uZCBhcmd1bWVudCBoYXMgdHlwZSBzdHJ1Y3QKICAgZnNfZGF0YS4gW1VsdHJpeF0gKi8KI3VuZGVmIFNUQVRfU1RBVEZTX0ZTX0RBVEEKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBBTlNJIEMgaGVhZGVyIGZpbGVzLiAqLwojdW5kZWYgU1REQ19IRUFERVJTCgovKiBkZWZpbmUgaWYgU0lPQ0dJRkFERFIgZXhpc3RzIGluIHN5cy9pb2N0bC5oICovCiN1bmRlZiBTWVNfSU9DVExfSF9IQVNfU0lPQ0dJRkFERFIKCi8qIERlZmluZSBpZiB0aGUgVENQIHRpbWVyIGNvbnN0YW50cyBpbiA8bmV0aW5ldC90Y3BfdGltZXIuaD4gZGVwZW5kIG9uIHRoZQogICBpbnRlZ2VyIHZhcmlhYmxlICdoeicuIFtGcmVlQlNEIDQueF0gKi8KI3VuZGVmIFRDUFRWX05FRURTX0haCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgY2FuIHNhZmVseSBpbmNsdWRlIGJvdGggPHN5cy90aW1lLmg+IGFuZCA8dGltZS5oPi4gKi8KI3VuZGVmIFRJTUVfV0lUSF9TWVNfVElNRQoKLyogV2hlcmUgaXMgdGhlIHVuYW1lIGNvbW1hbmQgKi8KI3VuZGVmIFVOQU1FUFJPRwoKLyogRW5hYmxlIGV4dGVuc2lvbnMgb24gQUlYIDMsIEludGVyaXguICAqLwojaWZuZGVmIF9BTExfU09VUkNFCiMgdW5kZWYgX0FMTF9TT1VSQ0UKI2VuZGlmCi8qIEVuYWJsZSBHTlUgZXh0ZW5zaW9ucyBvbiBzeXN0ZW1zIHRoYXQgaGF2ZSB0aGVtLiAgKi8KI2lmbmRlZiBfR05VX1NPVVJDRQojIHVuZGVmIF9HTlVfU09VUkNFCiNlbmRpZgovKiBFbmFibGUgdGhyZWFkaW5nIGV4dGVuc2lvbnMgb24gU29sYXJpcy4gICovCiNpZm5kZWYgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTCiMgdW5kZWYgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTCiNlbmRpZgovKiBFbmFibGUgZXh0ZW5zaW9ucyBvbiBIUCBOb25TdG9wLiAgKi8KI2lmbmRlZiBfVEFOREVNX1NPVVJDRQojIHVuZGVmIF9UQU5ERU1fU09VUkNFCiNlbmRpZgovKiBFbmFibGUgZ2VuZXJhbCBleHRlbnNpb25zIG9uIFNvbGFyaXMuICAqLwojaWZuZGVmIF9fRVhURU5TSU9OU19fCiMgdW5kZWYgX19FWFRFTlNJT05TX18KI2VuZGlmCgoKLyogRGVmaW5lIFdPUkRTX0JJR0VORElBTiB0byAxIGlmIHlvdXIgcHJvY2Vzc29yIHN0b3JlcyB3b3JkcyB3aXRoIHRoZSBtb3N0CiAgIHNpZ25pZmljYW50IGJ5dGUgZmlyc3QgKGxpa2UgTW90b3JvbGEgYW5kIFNQQVJDLCB1bmxpa2UgSW50ZWwpLiAqLwojaWYgZGVmaW5lZCBBQ19BUFBMRV9VTklWRVJTQUxfQlVJTEQKIyBpZiBkZWZpbmVkIF9fQklHX0VORElBTl9fCiMgIGRlZmluZSBXT1JEU19CSUdFTkRJQU4gMQojIGVuZGlmCiNlbHNlCiMgaWZuZGVmIFdPUkRTX0JJR0VORElBTgojICB1bmRlZiBXT1JEU19CSUdFTkRJQU4KIyBlbmRpZgojZW5kaWYKCi8qIERlZmluZSB0byAxIGlmIG9uIE1JTklYLiAqLwojdW5kZWYgX01JTklYCgovKiBEZWZpbmUgdG8gMiBpZiB0aGUgc3lzdGVtIGRvZXMgbm90IHByb3ZpZGUgUE9TSVguMSBmZWF0dXJlcyBleGNlcHQgd2l0aAogICB0aGlzIGRlZmluZWQuICovCiN1bmRlZiBfUE9TSVhfMV9TT1VSQ0UKCi8qIERlZmluZSB0byAxIGlmIHlvdSBuZWVkIHRvIGluIG9yZGVyIGZvciBgc3RhdCcgYW5kIG90aGVyIHRoaW5ncyB0byB3b3JrLiAqLwojdW5kZWYgX1BPU0lYX1NPVVJDRQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIFJQTSA0LjYgb3IgbmV3ZXIgdG8gdHVybiBvbiBsZWdhY3kgQVBJICovCiN1bmRlZiBfUlBNXzRfNF9DT01QQVQKCi8qIERlZmluZSBmb3IgU29sYXJpcyAyLjUuMSBzbyB0aGUgdWludDMyX3QgdHlwZWRlZiBmcm9tIDxzeXMvc3luY2guaD4sCiAgIDxwdGhyZWFkLmg+LCBvciA8c2VtYXBob3JlLmg+IGlzIG5vdCB1c2VkLiBJZiB0aGUgdHlwZWRlZiB3ZXJlIGFsbG93ZWQsIHRoZQogICAjZGVmaW5lIGJlbG93IHdvdWxkIGNhdXNlIGEgc3ludGF4IGVycm9yLiAqLwojdW5kZWYgX1VJTlQzMl9UCgovKiBEZWZpbmUgZm9yIFNvbGFyaXMgMi41LjEgc28gdGhlIHVpbnQ2NF90IHR5cGVkZWYgZnJvbSA8c3lzL3N5bmNoLmg+LAogICA8cHRocmVhZC5oPiwgb3IgPHNlbWFwaG9yZS5oPiBpcyBub3QgdXNlZC4gSWYgdGhlIHR5cGVkZWYgd2VyZSBhbGxvd2VkLCB0aGUKICAgI2RlZmluZSBiZWxvdyB3b3VsZCBjYXVzZSBhIHN5bnRheCBlcnJvci4gKi8KI3VuZGVmIF9VSU5UNjRfVAoKLyogRGVmaW5lIGZvciBTb2xhcmlzIDIuNS4xIHNvIHRoZSB1aW50OF90IHR5cGVkZWYgZnJvbSA8c3lzL3N5bmNoLmg+LAogICA8cHRocmVhZC5oPiwgb3IgPHNlbWFwaG9yZS5oPiBpcyBub3QgdXNlZC4gSWYgdGhlIHR5cGVkZWYgd2VyZSBhbGxvd2VkLCB0aGUKICAgI2RlZmluZSBiZWxvdyB3b3VsZCBjYXVzZSBhIHN5bnRheCBlcnJvci4gKi8KI3VuZGVmIF9VSU5UOF9UCgovKiBEZWZpbmUgdG8gZW1wdHkgaWYgYGNvbnN0JyBkb2VzIG5vdCBjb25mb3JtIHRvIEFOU0kgQy4gKi8KI3VuZGVmIGNvbnN0CgovKiBEZWZpbmUgdG8gYF9faW5saW5lX18nIG9yIGBfX2lubGluZScgaWYgdGhhdCdzIHdoYXQgdGhlIEMgY29tcGlsZXIKICAgY2FsbHMgaXQsIG9yIHRvIG5vdGhpbmcgaWYgJ2lubGluZScgaXMgbm90IHN1cHBvcnRlZCB1bmRlciBhbnkgbmFtZS4gICovCiNpZm5kZWYgX19jcGx1c3BsdXMKI3VuZGVmIGlubGluZQojZW5kaWYKCi8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBhIHNpZ25lZCBpbnRlZ2VyIHR5cGUgb2Ygd2lkdGggZXhhY3RseSAxNiBiaXRzIGlmCiAgIHN1Y2ggYSB0eXBlIGV4aXN0cyBhbmQgdGhlIHN0YW5kYXJkIGluY2x1ZGVzIGRvIG5vdCBkZWZpbmUgaXQuICovCiN1bmRlZiBpbnQxNl90CgovKiBEZWZpbmUgdG8gdGhlIHR5cGUgb2YgYSBzaWduZWQgaW50ZWdlciB0eXBlIG9mIHdpZHRoIGV4YWN0bHkgMzIgYml0cyBpZgogICBzdWNoIGEgdHlwZSBleGlzdHMgYW5kIHRoZSBzdGFuZGFyZCBpbmNsdWRlcyBkbyBub3QgZGVmaW5lIGl0LiAqLwojdW5kZWYgaW50MzJfdAoKLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGEgc2lnbmVkIGludGVnZXIgdHlwZSBvZiB3aWR0aCBleGFjdGx5IDY0IGJpdHMgaWYKICAgc3VjaCBhIHR5cGUgZXhpc3RzIGFuZCB0aGUgc3RhbmRhcmQgaW5jbHVkZXMgZG8gbm90IGRlZmluZSBpdC4gKi8KI3VuZGVmIGludDY0X3QKCi8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBhIHNpZ25lZCBpbnRlZ2VyIHR5cGUgb2Ygd2lkdGggZXhhY3RseSA4IGJpdHMgaWYgc3VjaAogICBhIHR5cGUgZXhpc3RzIGFuZCB0aGUgc3RhbmRhcmQgaW5jbHVkZXMgZG8gbm90IGRlZmluZSBpdC4gKi8KI3VuZGVmIGludDhfdAoKLyogRGVmaW5lIHRvIHRoZSB3aWRlc3Qgc2lnbmVkIGludGVnZXIgdHlwZSBpZiA8c3RkaW50Lmg+IGFuZCA8aW50dHlwZXMuaD4gZG8KICAgbm90IGRlZmluZS4gKi8KI3VuZGVmIGludG1heF90CgovKiBEZWZpbmUgdG8gdGhlIHR5cGUgb2YgYSBzaWduZWQgaW50ZWdlciB0eXBlIHdpZGUgZW5vdWdoIHRvIGhvbGQgYSBwb2ludGVyLAogICBpZiBzdWNoIGEgdHlwZSBleGlzdHMsIGFuZCBpZiB0aGUgc3lzdGVtIGRvZXMgbm90IGRlZmluZSBpdC4gKi8KI3VuZGVmIGludHB0cl90CgovKiBEZWZpbmUgdG8gYGxvbmcgaW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXMgbm90IGRlZmluZS4gKi8KI3VuZGVmIG9mZl90CgovKiBEZWZpbmUgdG8gYGludCcgaWYgPHN5cy90eXBlcy5oPiBkb2VzIG5vdCBkZWZpbmUuICovCiN1bmRlZiBwaWRfdAoKLyogRGVmaW5lIHRvIGB1bnNpZ25lZCBpbnQnIGlmIDxzeXMvdHlwZXMuaD4gZG9lcyBub3QgZGVmaW5lLiAqLwojdW5kZWYgc2l6ZV90CgovKiBEZWZpbmUgdG8gdGhlIHR5cGUgb2YgYW4gdW5zaWduZWQgaW50ZWdlciB0eXBlIG9mIHdpZHRoIGV4YWN0bHkgMTYgYml0cyBpZgogICBzdWNoIGEgdHlwZSBleGlzdHMgYW5kIHRoZSBzdGFuZGFyZCBpbmNsdWRlcyBkbyBub3QgZGVmaW5lIGl0LiAqLwojdW5kZWYgdWludDE2X3QKCi8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBhbiB1bnNpZ25lZCBpbnRlZ2VyIHR5cGUgb2Ygd2lkdGggZXhhY3RseSAzMiBiaXRzIGlmCiAgIHN1Y2ggYSB0eXBlIGV4aXN0cyBhbmQgdGhlIHN0YW5kYXJkIGluY2x1ZGVzIGRvIG5vdCBkZWZpbmUgaXQuICovCiN1bmRlZiB1aW50MzJfdAoKLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGFuIHVuc2lnbmVkIGludGVnZXIgdHlwZSBvZiB3aWR0aCBleGFjdGx5IDY0IGJpdHMgaWYKICAgc3VjaCBhIHR5cGUgZXhpc3RzIGFuZCB0aGUgc3RhbmRhcmQgaW5jbHVkZXMgZG8gbm90IGRlZmluZSBpdC4gKi8KI3VuZGVmIHVpbnQ2NF90CgovKiBEZWZpbmUgdG8gdGhlIHR5cGUgb2YgYW4gdW5zaWduZWQgaW50ZWdlciB0eXBlIG9mIHdpZHRoIGV4YWN0bHkgOCBiaXRzIGlmCiAgIHN1Y2ggYSB0eXBlIGV4aXN0cyBhbmQgdGhlIHN0YW5kYXJkIGluY2x1ZGVzIGRvIG5vdCBkZWZpbmUgaXQuICovCiN1bmRlZiB1aW50OF90CgovKiBEZWZpbmUgdG8gdGhlIHdpZGVzdCB1bnNpZ25lZCBpbnRlZ2VyIHR5cGUgaWYgPHN0ZGludC5oPiBhbmQgPGludHR5cGVzLmg+CiAgIGRvIG5vdCBkZWZpbmUuICovCiN1bmRlZiB1aW50bWF4X3QKCi8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBhbiB1bnNpZ25lZCBpbnRlZ2VyIHR5cGUgd2lkZSBlbm91Z2ggdG8gaG9sZCBhCiAgIHBvaW50ZXIsIGlmIHN1Y2ggYSB0eXBlIGV4aXN0cywgYW5kIGlmIHRoZSBzeXN0ZW0gZG9lcyBub3QgZGVmaW5lIGl0LiAqLwojdW5kZWYgdWludHB0cl90CgovKiBlbmQgb2YgZGVmaW5pdGlvbnMgYWRkZWQgYnkgY29uZmlndXJlIG9uLXRoZS1mbHkgKi8KCi8qIElmIHlvdSBoYXZlIG9wZW5zc2wgMC45Ljcgb3IgYWJvdmUsIHlvdSBsaWtlbHkgaGF2ZSBBRVMgc3VwcG9ydC4gKi8KI3VuZGVmIE5FVFNOTVBfVVNFX09QRU5TU0wKI2lmIChkZWZpbmVkKE5FVFNOTVBfVVNFX09QRU5TU0wpICYmIGRlZmluZWQoSEFWRV9PUEVOU1NMX0FFU19IKSAmJiBkZWZpbmVkKEhBVkVfQUVTX0NGQjEyOF9FTkNSWVBUKSkgfHwgZGVmaW5lZChORVRTTk1QX1VTRV9JTlRFUk5BTF9DUllQVE8pCiNkZWZpbmUgSEFWRV9BRVMgMQojZW5kaWYKCi8qIGRlZmluZSByYW5kb20gZnVuY3Rpb25zICovCgojaWZuZGVmIEhBVkVfUkFORE9NCiNpZmRlZiBIQVZFX0xSQU5ENDgKI2RlZmluZSByYW5kb20gbHJhbmQ0OAojZGVmaW5lIHNyYW5kb20ocykgc3JhbmQ0OChzKQojZWxzZQojaWZkZWYgSEFWRV9SQU5ECiNkZWZpbmUgcmFuZG9tIHJhbmQKI2RlZmluZSBzcmFuZG9tKHMpIHNyYW5kKHMpCiNlbmRpZgojZW5kaWYKI2VuZGlmCgovKiBkZWZpbmUgc2lnbmFsIGlmIERORSAqLwoKI2lmbmRlZiBIQVZFX1NJR05BTAojaWZkZWYgSEFWRV9TSUdTRVQKI2RlZmluZSBzaWduYWwoYSxiKSBzaWdzZXQoYSxiKQojZW5kaWYKI2VuZGlmCgojaWZkZWYgSEFWRV9ETUFMTE9DX0gKI2RlZmluZSBETUFMTE9DX0ZVTkNfQ0hFQ0sKI2VuZGlmCgojZW5kaWYgLyogTkVUU05NUF9OT19BVVRPQ09ORl9ERUZJTklUSU9OUyAqLwoKCgoKLyogKioqKioqKioqIE5FVFNOTVBfTUFSS19CRUdJTl9DTEVBTl9OQU1FU1BBQ0UgKioqKioqKioqICovCi8qIAogKiBwdXQgYWxsIG5ldyBuZXQtc25tcC1zcGVjaWZpYyBkZWZpbml0aW9ucyBoZXJlCiAqCiAqIGFsbCBkZWZpbml0aW9ucyBNVVNUIGhhdmUgYSBORVRTTk1QXyBwcmVmaXgKICoKICovCgovKiBEZWZhdWx0IChTTk1QKSB2ZXJzaW9uIG51bWJlciBmb3IgdGhlIHRvb2xzIHRvIHVzZSAqLwojZGVmaW5lIE5FVFNOTVBfREVGQVVMVF9TTk1QX1ZFUlNJT04gMwoKLyogZG9uJ3QgY2hhbmdlIHRoZXNlIHZhbHVlcyEgKi8KI2RlZmluZSBORVRTTk1QX1NOTVBWMSAgICAgIDB4QUFBQSAgICAgICAvKiByZWFkYWJsZSBieSBhbnlvbmUgKi8KI2RlZmluZSBORVRTTk1QX1NOTVBWMkFOWSAgIDB4QTAwMCAgICAgICAvKiBWMiBBbnkgdHlwZSAoaW5jbHVkZXMgTm9BdXRoKSAqLwojZGVmaW5lIE5FVFNOTVBfU05NUFYyQVVUSCAgMHg4MDAwICAgICAgIC8qIFYyIEF1dGhlbnRpY2F0ZWQgcmVxdWVzdHMgb25seSAqLwoKLyogZGVmYXVsdCBsaXN0IG9mIG1pYnMgdG8gbG9hZCAqLwojZGVmaW5lIE5FVFNOTVBfREVGQVVMVF9NSUJTICJJUC1NSUI6SUYtTUlCOlRDUC1NSUI6VURQLU1JQjpTTk1QdjItTUlCOlJGQzEyMTMtTUlCIgoKLyogZGVidWdnaW5nIHN0dWZmICovCi8qIGlmIGRlZmluZWQsIHdlIG9wdGltaXplIHRoZSBjb2RlIHRvIGV4Y2x1ZGUgYWxsIGRlYnVnZ2luZyBjYWxscy4gKi8KI3VuZGVmIE5FVFNOTVBfTk9fREVCVUdHSU5HCi8qIGlnbm9yZSB0aGUgLUQgZmxhZyBhbmQgYWx3YXlzIHByaW50IGRlYnVnZ2luZyBpbmZvcm1hdGlvbiAqLwojZGVmaW5lIE5FVFNOTVBfQUxXQVlTX0RFQlVHIDAKCi8qIHJldmVyc2UgZW5jb2RpbmcgQkVSIHBhY2tldHMgaXMgYm90aCBmYXN0ZXIgYW5kIG1vcmUgZWZmaWNpZW50IGluIHNwYWNlLiAqLwojZGVmaW5lIE5FVFNOTVBfVVNFX1JFVkVSU0VfQVNORU5DT0RJTkcgICAgICAgMQojZGVmaW5lIE5FVFNOTVBfREVGQVVMVF9BU05FTkNPRElOR19ESVJFQ1RJT04gMSAvKiAxID0gcmV2ZXJzZSwgMCA9IGZvcndhcmRzICovCgovKiBQRVJTSVNURU5UX0RJUkVDVE9SWTogSWYgZGVmaW5lZCwgdGhlIGxpYnJhcnkgaXMgY2FwYWJpbGUgb2Ygc2F2aW5nCiAgIHBlcnNpc2FudCBpbmZvcm1hdGlvbiB0byB0aGlzIGRpcmVjdG9yeSBpbiB0aGUgZm9ybSBvZiBjb25maWd1cmF0aW9uCiAgIGxpbmVzOiBQRVJTSVNURU5UX0RJUkVDVE9SWS9OQU1FLnBlcnNpc3RlbnQuY29uZiAqLwojZGVmaW5lIE5FVFNOTVBfUEVSU0lTVEVOVF9ESVJFQ1RPUlkgIi92YXIvc25tcCIKCi8qIEFHRU5UX0RJUkVDVE9SWV9NT0RFOiB0aGUgbW9kZSB0aGUgYWdlbnRzIHNob3VsZCB1c2UgdG8gY3JlYXRlCiAgIGRpcmVjdG9yaWVzIHdpdGguIFNpbmNlIHRoZSBkYXRhIHN0b3JlZCBoZXJlIGlzIHByb2JhYmx5IHNlbnNpdGl2ZSwgaXQKICAgcHJvYmFibHkgc2hvdWxkIGJlIHJlYWQtb25seSBieSByb290L2FkbWluaXN0cmF0b3IuICovCiNkZWZpbmUgTkVUU05NUF9BR0VOVF9ESVJFQ1RPUllfTU9ERSAwNzAwCgovKiBNQVhfUEVSU0lTVEVOVF9CQUNLVVBTOgogKiAgIFRoZSBtYXhpbXVtIG51bWJlciBvZiBwZXJzaXN0ZW50IGJhY2t1cHMgdGhlIGxpYnJhcnkgd2lsbCB0cnkgdG8KICogICByZWFkIGZyb20gdGhlIHBlcnNpc3RlbnQgY2FjaGUgZGlyZWN0b3J5LiAgSWYgYW4gYXBwbGljYXRpb24gZmFpbHMgdG8KICogICBjbG9zZSBkb3duIHN1Y2Nlc3NmdWxseSBtb3JlIHRoYW4gdGhpcyBudW1iZXIgb2YgdGltZXMsIGRhdGEgd2lsbCBiZSBsb3N0LgogKi8KI2RlZmluZSBORVRTTk1QX01BWF9QRVJTSVNURU5UX0JBQ0tVUFMgMTAKCi8qIGRlZmluZSB0aGUgc3lzdGVtIHR5cGUgaW5jbHVkZSBmaWxlIGhlcmUgKi8KI2RlZmluZSBORVRTTk1QX1NZU1RFTV9JTkNMVURFX0ZJTEUgPG5ldC1zbm1wL3N5c3RlbS9nZW5lcmljLmg+CgovKiBkZWZpbmUgdGhlIG1hY2hpbmUgKGNwdSkgdHlwZSBpbmNsdWRlIGZpbGUgaGVyZSAqLwojZGVmaW5lIE5FVFNOTVBfTUFDSElORV9JTkNMVURFX0ZJTEUgPG5ldC1zbm1wL21hY2hpbmUvZ2VuZXJpYy5oPgoKLyogZGVmaW5lIHRoZSBVRFAgYnVmZmVyIGRlZmF1bHRzIHVuZGVmaW5lZCBtZWFucyB1c2UgdGhlIE9TIGJ1ZmZlcnMKICogYnkgZGVmYXVsdCAqLwojdW5kZWYgTkVUU05NUF9ERUZBVUxUX1NFUlZFUl9TRU5EX0JVRgojdW5kZWYgTkVUU05NUF9ERUZBVUxUX1NFUlZFUl9SRUNWX0JVRgojdW5kZWYgTkVUU05NUF9ERUZBVUxUX0NMSUVOVF9TRU5EX0JVRgojdW5kZWYgTkVUU05NUF9ERUZBVUxUX0NMSUVOVF9SRUNWX0JVRgoKLyogbmV0LXNubXAncyBtYWpvciBwYXRoIG5hbWVzICovCiN1bmRlZiBTTk1QTElCUEFUSAojdW5kZWYgU05NUFNIQVJFUEFUSAojdW5kZWYgU05NUENPTkZQQVRICiN1bmRlZiBTTk1QRExNT0RQQVRICgovKiBORVRTTk1QX0xPR0ZJTEU6ICBJZiBkZWZpbmVkIGl0IGNsb3NlcyBzdGRvdXQvZXJyL2luIGFuZCBvcGVucyB0aGlzIGluIAogICBvdXQvZXJyJ3MgcGxhY2UuICAoc3RkaW4gaXMgY2xvc2VkIHNvIHRoYXQgc2ggc2NyaXB0cyB3b24ndCB3YWl0IGZvciBpdCkgKi8KI3VuZGVmIE5FVFNOTVBfTE9HRklMRQoKLyogZGVmYXVsdCBzeXN0ZW0gY29udGFjdCAqLwojdW5kZWYgTkVUU05NUF9TWVNfQ09OVEFDVAoKLyogc3lzdGVtIGxvY2F0aW9uICovCiN1bmRlZiBORVRTTk1QX1NZU19MT0MKCi8qIFVzZSBsaWJ3cmFwIHRvIGhhbmRsZSBhbGxvdy9kZW55IGhvc3RzPyAqLwojdW5kZWYgTkVUU05NUF9VU0VfTElCV1JBUAoKLyogTWliLTIgdHJlZSBJbmZvICovCi8qIFRoZXNlIGFyZSB0aGUgc3lzdGVtIGluZm9ybWF0aW9uIHZhcmlhYmxlcy4gKi8KCiNkZWZpbmUgTkVUU05NUF9WRVJTX0RFU0MgICAidW5rbm93biIgICAgICAgICAgICAgLyogb3ZlcnJpZGRlbiBhdCBydW4gdGltZSAqLwojZGVmaW5lIE5FVFNOTVBfU1lTX05BTUUgICAgInVua25vd24iICAgICAgICAgICAgIC8qIG92ZXJyaWRkZW4gYXQgcnVuIHRpbWUgKi8KCi8qIGNvbW1lbnQgb3V0IHRoZSBzZWNvbmQgZGVmaW5lIHRvIHR1cm4gb2ZmIGZ1bmN0aW9uYWxpdHkgZm9yIGFueSBvZgogICB0aGVzZTogKFNlZSBSRUFETUUgZm9yIGRldGFpbHMpICovCgovKiAgIHByb2MgUFJPQ0VTU05BTUUgW01BWF0gW01JTl0gKi8KI2RlZmluZSBORVRTTk1QX1BST0NNSUJOVU0gMgoKLyogICBleGVjL3NoZWxsIE5BTUUgQ09NTUFORCAgICAgICovCiNkZWZpbmUgTkVUU05NUF9TSEVMTE1JQk5VTSA4CgovKiAgIHN3YXAgTUlOICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBORVRTTk1QX01FTU1JQk5VTSA0CgovKiAgIGRpc2sgRElTSyBNSU5TSVpFICAgICAgICAgICAgKi8KI2RlZmluZSBORVRTTk1QX0RJU0tNSUJOVU0gOQoKLyogICBsb2FkIDEgNSAxNSAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgTkVUU05NUF9MT0FEQVZFTUlCTlVNIDEwCgovKiB3aGljaCB2ZXJzaW9uIGFyZSB5b3UgdXNpbmc/IFRoaXMgbWlibG9jIHdpbGwgdGVsbCB5b3UgKi8KI2RlZmluZSBORVRTTk1QX1ZFUlNJT05NSUJOVU0gMTAwCgovKiBSZXBvcnRzIGVycm9ycyB0aGUgYWdlbnQgcnVucyBpbnRvICovCi8qICh0eXBpY2FsbHkgaXRzICJjYW4ndCBmb3JrLCBubyBtZW0iIHByb2JsZW1zKSAqLwojZGVmaW5lIE5FVFNOTVBfRVJST1JNSUJOVU0gMTAxCgovKiBUaGUgc3ViIGlkIG9mIEVYVEVOU0lCTEVNSUIgcmV0dXJuZWQgdG8gcXVlcmllcyBvZgogICAuaXNvLm9yZy5kb2QuaW50ZXJuZXQubWdtdC5taWItMi5zeXN0ZW0uc3lzT2JqZWN0SUQuMCAqLwojZGVmaW5lIE5FVFNOTVBfQUdFTlRJRCAyNTAKCi8qIFRoaXMgSUQgaXMgcmV0dXJuZWQgYWZ0ZXIgdGhlIEFHRU5USUQgYWJvdmUuICBJRSwgdGhlIHJlc3VsdGluZwogICB2YWx1ZSByZXR1cm5lZCBieSBhIHF1ZXJ5IHRvIHN5c09iamVjdElEIGlzCiAgIEVYVEVOU0lCTEVNSUIuQUdFTlRJRC4/Pz8sIHdoZXJlID8/PyBpcyBkZWZpbmVkIGJlbG93IGJ5IE9TVFlQRSAqLwoKI2RlZmluZSBORVRTTk1QX0hQVVg5SUQgMQojZGVmaW5lIE5FVFNOTVBfU1VOT1M0SUQgMiAKI2RlZmluZSBORVRTTk1QX1NPTEFSSVNJRCAzCiNkZWZpbmUgTkVUU05NUF9PU0ZJRCA0CiNkZWZpbmUgTkVUU05NUF9VTFRSSVhJRCA1CiNkZWZpbmUgTkVUU05NUF9IUFVYMTBJRCA2CiNkZWZpbmUgTkVUU05NUF9ORVRCU0QxSUQgNwojZGVmaW5lIE5FVFNOTVBfRlJFRUJTRElEIDgKI2RlZmluZSBORVRTTk1QX0lSSVhJRCA5CiNkZWZpbmUgTkVUU05NUF9MSU5VWElEIDEwCiNkZWZpbmUgTkVUU05NUF9CU0RJSUQgMTEKI2RlZmluZSBORVRTTk1QX09QRU5CU0RJRCAxMgojZGVmaW5lIE5FVFNOTVBfV0lOMzJJRCAxMwojZGVmaW5lIE5FVFNOTVBfSFBVWDExSUQgMTQKI2RlZmluZSBORVRTTk1QX0FJWElEIDE1CiNkZWZpbmUgTkVUU05NUF9NQUNPU1hJRCAxNgojZGVmaW5lIE5FVFNOTVBfRFJBR09ORkxZSUQgMTcKI2RlZmluZSBORVRTTk1QX1VOS05PV05JRCAyNTUKCiNpZmRlZiBocHV4OQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfSFBVWDlJRAojZW5kaWYKI2lmZGVmIGhwdXgxMAojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfSFBVWDEwSUQKI2VuZGlmCiNpZmRlZiBocHV4MTEKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0hQVVgxMUlECiNlbmRpZgojaWZkZWYgc3Vub3M0CiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9TVU5PUzRJRAojZW5kaWYKI2lmZGVmIHNvbGFyaXMyCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9TT0xBUklTSUQKI2VuZGlmCiNpZiBkZWZpbmVkKG9zZjMpIHx8IGRlZmluZWQob3NmNCkgfHwgZGVmaW5lZChvc2Y1KQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfT1NGSUQKI2VuZGlmCiNpZmRlZiB1bHRyaXg0CiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9VTFRSSVhJRAojZW5kaWYKI2lmIGRlZmluZWQobmV0YnNkMSkgfHwgZGVmaW5lZChuZXRic2QyKQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfTkVUQlNEMUlECiNlbmRpZgojaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0ZSRUVCU0RJRAojZW5kaWYKI2lmIGRlZmluZWQoX19EcmFnb25GbHlfXykKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0RSQUdPTkZMWUlECiNlbmRpZgojaWYgZGVmaW5lZChpcml4NikgfHwgZGVmaW5lZChpcml4NSkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0lSSVhJRAojZW5kaWYKI2lmZGVmIGxpbnV4CiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9MSU5VWElECiNlbmRpZgojaWYgZGVmaW5lZChic2RpMikgfHwgZGVmaW5lZChic2RpMykgfHwgZGVmaW5lZChic2RpNCkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0JTRElJRAojZW5kaWYKI2lmIGRlZmluZWQob3BlbmJzZCkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX09QRU5CU0RJRAojZW5kaWYKI2lmZGVmIFdJTjMyCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9XSU4zMklECiNlbmRpZgojaWYgZGVmaW5lZChhaXgzKSB8fCBkZWZpbmVkKGFpeDQpIHx8IGRlZmluZWQoYWl4NSkgfHwgZGVmaW5lZChhaXg2KSB8fCBkZWZpbmVkKGFpeDcpCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9BSVhJRAojZW5kaWYKI2lmIGRlZmluZWQoZGFyd2luKSAmJiAoZGFyd2luID49IDgpCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9NQUNPU1hJRAojZW5kaWYKLyogdW5rbm93biAqLwojaWZuZGVmIE5FVFNOTVBfT1NUWVBFCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9VTktOT1dOSUQKI2VuZGlmCgovKiBUaGUgZW50ZXJwcmlzZSBudW1iZXIgaGFzIGJlZW4gYXNzaWduZWQgYnkgdGhlIElBTkEgZ3JvdXAuICAgKi8KLyogT3B0aW9uYWxseSwgdGhpcyBtYXkgcG9pbnQgdG8gdGhlIGxvY2F0aW9uIGluIHRoZSB0cmVlIHlvdXIgICovCi8qIGNvbXBhbnkvb3JnYW5pemF0aW9uIGhhcyBiZWVuIGFsbG9jYXRlZC4gICAgICAgICAgICAgICAgICAgICAqLwovKiBUaGUgYXNzaWduZWQgZW50ZXJwcmlzZSBudW1iZXIgZm9yIHRoZSBORVRfU05NUCBNSUIgbW9kdWxlcy4gKi8KI2RlZmluZSBORVRTTk1QX0VOVEVSUFJJU0VfT0lECQkJODA3MgojZGVmaW5lIE5FVFNOTVBfRU5URVJQUklTRV9NSUIJCQkxLDMsNiwxLDQsMSw4MDcyCiNkZWZpbmUgTkVUU05NUF9FTlRFUlBSSVNFX0RPVF9NSUIJCTEuMy42LjEuNC4xLjgwNzIKI2RlZmluZSBORVRTTk1QX0VOVEVSUFJJU0VfRE9UX01JQl9MRU5HVEgJNwoKLyogVGhlIGFzc2lnbmVkIGVudGVycHJpc2UgbnVtYmVyIGZvciBzeXNPYmplY3RJRC4gKi8KI2RlZmluZSBORVRTTk1QX1NZU1RFTV9NSUIJCTEsMyw2LDEsNCwxLDgwNzIsMywyLE5FVFNOTVBfT1NUWVBFCiNkZWZpbmUgTkVUU05NUF9TWVNURU1fRE9UX01JQgkJMS4zLjYuMS40LjEuODA3Mi4zLjIuTkVUU05NUF9PU1RZUEUKI2RlZmluZSBORVRTTk1QX1NZU1RFTV9ET1RfTUlCX0xFTkdUSAkxMAoKLyogVGhlIGFzc2lnbmVkIGVudGVycHJpc2UgbnVtYmVyIGZvciBub3RpZmljYXRpb25zLiAqLwojZGVmaW5lIE5FVFNOTVBfTk9USUZJQ0FUSU9OX01JQgkJMSwzLDYsMSw0LDEsODA3Miw0CiNkZWZpbmUgTkVUU05NUF9OT1RJRklDQVRJT05fRE9UX01JQgkJMS4zLjYuMS40LjEuODA3Mi40CiNkZWZpbmUgTkVUU05NUF9OT1RJRklDQVRJT05fRE9UX01JQl9MRU5HVEgJOAoKLyogdGhpcyBpcyB0aGUgbG9jYXRpb24gb2YgdGhlIHVjZGF2aXMgbWliIHRyZWUuICBJdCBzaG91bGRuJ3QgYmUKICAgY2hhbmdlZCwgYXMgdGhlIHBsYWNlcyBpdCBpcyB1c2VkIGFyZSBleHBlY3RlZCB0byBiZSBjb25zdGFudAogICB2YWx1ZXMgb3IgYXJlIGRpcmVjdGx5IHRpZWQgdG8gdGhlIFVDRC1TTk1QLU1JQi4gKi8KI2RlZmluZSBORVRTTk1QX1VDREFWSVNfT0lECQkyMDIxCiNkZWZpbmUgTkVUU05NUF9VQ0RBVklTX01JQgkJMSwzLDYsMSw0LDEsMjAyMQojZGVmaW5lIE5FVFNOTVBfVUNEQVZJU19ET1RfTUlCCQkxLjMuNi4xLjQuMS4yMDIxCiNkZWZpbmUgTkVUU05NUF9VQ0RBVklTX0RPVF9NSUJfTEVOR1RICTcKCi8qIGhvdyBsb25nIHRvIHdhaXQgKHNlY29uZHMpIGZvciBlcnJvciBxdWVyeXMgYmVmb3JlIHJlc2V0aW5nIHRoZSBlcnJvciB0cmFwLiovCiNkZWZpbmUgTkVUU05NUF9FUlJPUlRJTUVMRU5HVEggNjAwIAoKLyogRXhlYyBjb21tYW5kIHRvIGZpeCBQUk9DIHByb2JsZW1zICovCi8qICVzIHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlIHByb2Nlc3MgbmFtZSBpbiBlcnJvciAqLwoKLyogI2RlZmluZSBORVRTTk1QX1BST0NGSVhDTUQgIi91c3IvYmluL3BlcmwgL2xvY2FsL3NjcmlwdHMvZml4cHJvYyAlcyIgKi8KCi8qIEV4ZWMgY29tbWFuZCB0byBmaXggRVhFQyBwcm9ibGVtcyAqLwovKiAlcyB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZSBleGVjL3NjcmlwdCBuYW1lIGluIGVycm9yICovCgovKiAjZGVmaW5lIE5FVFNOTVBfRVhFQ0ZJWENNRCAiL3Vzci9iaW4vcGVybCAvbG9jYWwvc2NyaXB0cy9maXhwcm9jICVzIiAqLwoKLyogU2hvdWxkIGV4ZWMgb3V0cHV0IENhc2hpbmcgYmUgdXNlZCAoc3BlZWRzIHVwIHRoaW5ncyBncmVhdGx5KSwgYW5kCiAgIGlmIHNvLCBBZnRlciBob3cgbWFueSBzZWNvbmRzIHNob3VsZCB0aGUgY2FjaGUgcmUtbmV3ZWQ/ICBOb3RlOgogICBEb24ndCBkZWZpbmUgQ0FTSEVUSU1FIHRvIGRpc2FibGUgY2FzaGluZyBjb21wbGV0ZWx5ICovCgojZGVmaW5lIE5FVFNOTVBfRVhDQUNIRVRJTUUgMzAKI2RlZmluZSBORVRTTk1QX0NBQ0hFRklMRSAiLnNubXAtZXhlYy1jYWNoZSIKI2RlZmluZSBORVRTTk1QX01BWENBQ0hFU0laRSAoMTUwMCo4MCkgICAvKiByb3VnaGx5IDE1MDAgbGluZXMgbWF4ICovCgovKiBtaXNjIGRlZmF1bHRzICovCgovKiBkZWZhdWx0IG9mIDEwMCBtZWcgbWluaW11bSBpZiB0aGUgbWluaW11bSBzaXplIGlzIG5vdCBzcGVjaWZpZWQgaW4KICAgdGhlIGNvbmZpZyBmaWxlICovCiNkZWZpbmUgTkVUU05NUF9ERUZESVNLTUlOSU1VTVNQQUNFIDEwMDAwMAoKLyogZGVmYXVsdCBtYXhpbXVtIGxvYWQgYXZlcmFnZSBiZWZvcmUgZXJyb3IgKi8KI2RlZmluZSBORVRTTk1QX0RFRk1BWExPQURBVkUgMTIuMAoKLyogbWF4IHRpbWVzIHRvIGxvb3AgcmVhZGluZyBvdXRwdXQgZnJvbSBleGVjcy4gKi8KLyogQmVjYXVzZSBvZiBzbGVlcCgxKXMsIHRoaXMgd2lsbCBhbHNvIGJlIHRpbWUgdG8gd2FpdCAoaW4gc2Vjb25kcykgZm9yIGV4ZWMKICAgdG8gZmluaXNoICovCiNkZWZpbmUgTkVUU05NUF9NQVhSRUFEQ09VTlQgMTAwCgovKiBTZXQgaWYgc25tcGdldHMgc2hvdWxkIGJsb2NrIGFuZCBuZXZlciB0aW1lb3V0ICovCi8qIFRoZSBvcmlnaW5hbCBDTVUgY29kZSBoYWQgdGhpcyBoYXJkY29kZWQgYXMgPSAxICovCiNkZWZpbmUgTkVUU05NUF9TTk1QQkxPQ0sgMQoKLyogSG93IGxvbmcgdG8gd2FpdCBiZWZvcmUgcmVzdGFydGluZyB0aGUgYWdlbnQgYWZ0ZXIgYSBzbm1wc2V0IHRvCiAgIEVYVEVOU0lCTEVNSUIuVkVSU0lPTk1JQk5VTS5WRVJSRVNUQVJUQUdFTlQuICBUaGlzIGlzCiAgIG5lY2Vzc2FyeSB0byBmaW5pc2ggdGhlIHNubXBzZXQgcmVwbHkgYmVmb3JlIHJlc3RhcnRpbmcuICovCiNkZWZpbmUgTkVUU05NUF9SRVNUQVJUU0xFRVAgNQoKLyogVU5kZWZpbmUgdG8gYWxsb3cgc3BlY2lmeWluZyB6ZXJvLWxlbmd0aCBjb21tdW5pdHkgc3RyaW5nICovCi8qICNkZWZpbmUgTkVUU05NUF9OT19aRVJPTEVOR1RIX0NPTU1VTklUWSAxICovCgovKiBOdW1iZXIgb2YgY29tbXVuaXR5IHN0cmluZ3MgdG8gc3RvcmUgKi8KI2RlZmluZSBORVRTTk1QX05VTV9DT01NVU5JVElFUwk1CgovKiBpbnRlcm5hbCBkZWZpbmUgKi8KI2RlZmluZSBORVRTTk1QX0xBU1RGSUVMRCAtMQoKLyogIFBsdWdnYWJsZSB0cmFuc3BvcnRzLiAgKi8KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFVEUC9JUCB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VEUF9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlICJjYWxsYmFjayIgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFRDUC9JUCB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfVENQX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgVW5peCB0cmFuc3BvcnQgZG9tYWluCiAgICAoYS5rLmEuICJsb2NhbCBJUEMiKSBpcyBhdmFpbGFibGUuICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfVU5JWF9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIEFBTDUgUFZDIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9BQUw1UFZDX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgSVBYIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9JUFhfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBVRFAvSVB2NiB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfVURQSVBWNl9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFRDUC9JUHY2IHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9UQ1BJUFY2X0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgVExTIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfVExTQkFTRV9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIEFsaWFzIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfQUxJQVNfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBTU0ggdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9TU0hfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBEVExTL1VEUCB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0RUTFNVRFBfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBUTFMvVENQIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfVExTVENQX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciBzdGRpbi9vdXQgdHJhbnNwb3J0IGRvbWFpbiBpcyBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1NURF9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIElQdjRCYXNlIHRyYW5zcG9ydCBkb21haW4gaXMgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9JUFY0QkFTRV9ET01BSU4KCi8qIGRlZmluZSB0aGlzIGlmIHRoZSBVU00gc2VjdXJpdHkgbW9kdWxlIGlzIGF2YWlsYWJsZSAqLwojdW5kZWYgTkVUU05NUF9TRUNNT0RfVVNNCgovKiBkZWZpbmUgdGhpcyBpZiB0aGUgS1NNIChrZXJiZXJvcyBiYXNlZCBzbm1wKSBzZWN1cml0eSBtb2R1bGUgaXMgYXZhaWxhYmxlICovCiN1bmRlZiBORVRTTk1QX1NFQ01PRF9LU00KCi8qIGRlZmluZSB0aGlzIGlmIHRoZSBsb2NhbCBzZWN1cml0eSBtb2R1bGUgaXMgYXZhaWxhYmxlICovCiN1bmRlZiBORVRTTk1QX1NFQ01PRF9MT0NBTFNNCgovKiBkZWZpbmUgaWYgY29uZmlndXJlZCBhcyBhICJtaW5pLWFnZW50IiAqLwojdW5kZWYgTkVUU05NUF9NSU5JX0FHRU5UCgovKiB0aGlzIGlzIHRoZSBsb2NhdGlvbiBvZiB0aGUgbmV0LXNubXAgbWliIHRyZWUuICBJdCBzaG91bGRuJ3QgYmUKICAgY2hhbmdlZCwgYXMgdGhlIHBsYWNlcyBpdCBpcyB1c2VkIGFyZSBleHBlY3RlZCB0byBiZSBjb25zdGFudAogICB2YWx1ZXMgb3IgYXJlIGRpcmVjdGx5IHRpZWQgdG8gdGhlIFVDRC1TTk1QLU1JQi4gKi8KI2RlZmluZSBORVRTTk1QX09JRAkJODA3MgojZGVmaW5lIE5FVFNOTVBfTUlCCQkxLDMsNiwxLDQsMSw4MDcyCiNkZWZpbmUgTkVUU05NUF9ET1RfTUlCCQkxLjMuNi4xLjQuMS44MDcyCiNkZWZpbmUgTkVUU05NUF9ET1RfTUlCX0xFTkdUSAk3CgovKiBwYXR0ZXJuIGZvciB0ZW1wb3JhcnkgZmlsZSBuYW1lcyAqLwojZGVmaW5lIE5FVFNOTVBfVEVNUF9GSUxFX1BBVFRFUk4gIi90bXAvc25tcGRYWFhYWFgiCgovKgogKiB0aGlzIG11c3QgYmUgYmVmb3JlIHRoZSBzeXN0ZW0vbWFjaGluZSBpbmNsdWRlcywgdG8gYWxsb3cgdGhlbSB0bwogKiBvdmVycmlkZSBhbmQgdHVybiBvZmYgaW5saW5pbmcuIFRvIGRvIHNvLCB0aGV5IHNob3VsZCBkbyB0aGUKICogZm9sbG93aW5nOgogKgogKiAgICAjdW5kZWYgTkVUU05NUF9FTkFCTEVfSU5MSU5FCiAqICAgICNkZWZpbmUgTkVUU05NUF9FTkFCTEVfSU5MSU5FIDAKICoKICogQSB1c2VyIGhhdmluZyBwcm9ibGVtcyB3aXRoIHRoZWlyIGNvbXBpbGVyIGNhbiBhbHNvIHR1cm4gb2ZmCiAqIHRoZSB1c2Ugb2YgaW5saW5lIGJ5IGRlZmluaW5nIE5FVFNOTVBfTk9fSU5MSU5FIHZpYSB0aGVpciBjZmxhZ3M6CiAqCiAqICAgIC1ETkVUU05NUF9OT19JTkxJTkUKICoKICogSGVhZGVyIGFuZCBzb3VyY2UgZmlsZXMgc2hvdWxkIG9ubHkgdGVzdCBhZ2FpbnN0IE5FVFNOTVBfVVNFX0lOTElORToKICoKICogICAjaWZkZWYgTkVUU05NUF9VU0VfSU5MSU5FCiAqICAgTkVUU05NUF9JTkxJTkUgZnVuY3Rpb24oaW50IHBhcm0pIHsgcmV0dXJuIHBhcm0gLTE7IH0KICogICAjZW5kaWYKICoKICogRnVuY3Rpb25zIHdoaWNoIHNob3VsZCBiZSBzdGF0aWMsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBvciBub3QgaW5saW5lCiAqIGlzIGF2YWlsYWJsZSBvciBlbmFibGVkIHNob3VsZCB1c2UgdGhlIE5FVFNOTVBfU1RBVElDX0lOTElORSBtYWNybywKICogbGlrZSBzbzoKICoKICogICAgTkVUU05NUF9TVEFUSUNfSU5MSU5FIGZ1bmN0aW9uKGludCBwYXJtKSB7IHJldHVybiBwYXJtIC0xOyB9CiAqCiAqIE5PVCBsaWtlIHRoaXM6CiAqCiAqICAgIHN0YXRpYyBORVRTTk1QX0lOTElORSBmdW5jdGlvbihpbnQgcGFybSkgeyByZXR1cm4gcGFybSAtMTsgfQogKgogKi8KI2lmZGVmIE5FVFNOTVBfQlJPS0VOX0lOTElORQojICAgZGVmaW5lIE5FVFNOTVBfRU5BQkxFX0lOTElORSAwCiNlbHNlCiMgICBkZWZpbmUgTkVUU05NUF9FTkFCTEVfSU5MSU5FIDEKI2VuZGlmCgojaW5jbHVkZSBORVRTTk1QX1NZU1RFTV9JTkNMVURFX0ZJTEUKI2luY2x1ZGUgTkVUU05NUF9NQUNISU5FX0lOQ0xVREVfRklMRQoKI2lmIE5FVFNOTVBfRU5BQkxFX0lOTElORSAmJiAhZGVmaW5lZChORVRTTk1QX05PX0lOTElORSkKIyAgIGRlZmluZSBORVRTTk1QX1VTRV9JTkxJTkUgMQojICAgaWZuZGVmIE5FVFNOTVBfSU5MSU5FCiMgICAgICBkZWZpbmUgTkVUU05NUF9JTkxJTkUgaW5saW5lCiMgICBlbmRpZgojICAgaWZuZGVmIE5FVFNOTVBfU1RBVElDX0lOTElORQojICAgICAgZGVmaW5lIE5FVFNOTVBfU1RBVElDX0lOTElORSBzdGF0aWMgaW5saW5lCiMgICBlbmRpZgojZWxzZQojICAgZGVmaW5lIE5FVFNOTVBfSU5MSU5FIAojICAgZGVmaW5lIE5FVFNOTVBfU1RBVElDX0lOTElORSBzdGF0aWMKI2VuZGlmCgojaWZuZGVmIE5FVFNOTVBfSU1QT1JUCiMgIGRlZmluZSBORVRTTk1QX0lNUE9SVCBleHRlcm4KI2VuZGlmCgovKiBjb21tZW50IHRoZSBuZXh0IGxpbmUgaWYgeW91IGFyZSBjb21waWxpbmcgd2l0aCBsaWJzbm1wLmggCiAgIGFuZCBhcmUgbm90IHVzaW5nIHRoZSBVQy1EYXZpcyBTTk1QIGxpYnJhcnkuICovCiNkZWZpbmUgVUNEX1NOTVBfTElCUkFSWSAxCgovKiBmaW5hbCBjb25jbHVzaW9uIG9uIG5saXN0IHVzYWdlICovCiNpZiBkZWZpbmVkKEhBVkVfTkxJU1QpICYmIGRlZmluZWQoSEFWRV9TVFJVQ1RfTkxJU1RfTl9WQUxVRSkgJiYgIWRlZmluZWQoTkVUU05NUF9ET05UX1VTRV9OTElTVCkgJiYgZGVmaW5lZChIQVZFX0tNRU0pICYmICFkZWZpbmVkKE5FVFNOTVBfTk9fS01FTV9VU0FHRSkKI2RlZmluZSBORVRTTk1QX0NBTl9VU0VfTkxJU1QKI2VuZGlmCgoKLyogKioqKioqKioqIE5FVFNOTVBfTUFSS19CRUdJTl9MRUdBQ1lfREVGSU5JVElPTlMgKioqKioqKioqLwovKiAKICogZXhpc3RpbmcgZGVmaW5pdGlvbnMgcHJpb3IgdG8gTmV0LVNOTVAgNS40CiAqCiAqIGRvIG5vdCBhZGQgYW55dGhpbmcgbmV3IGhlcmUKICoKICovCgojaWZuZGVmIE5FVFNOTVBfTk9fTEVHQUNZX0RFRklOSVRJT05TCgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX1NOTVBfVkVSU0lPTgojIGRlZmluZSBERUZBVUxUX1NOTVBfVkVSU0lPTiBORVRTTk1QX0RFRkFVTFRfU05NUF9WRVJTSU9OCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU05NUFYxCiMgZGVmaW5lIFNOTVBWMSBORVRTTk1QX1NOTVBWMQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NOTVBWMkFOWQojIGRlZmluZSBTTk1QVjJBTlkgTkVUU05NUF9TTk1QVjJBTlkKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TTk1QVjJBVVRICiMgZGVmaW5lIFNOTVBWMkFVVEggTkVUU05NUF9TTk1QVjJBVVRICiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9NSUJTCiMgZGVmaW5lIERFRkFVTFRfTUlCUyBORVRTTk1QX0RFRkFVTFRfTUlCUwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfTUlCRElSUwojIGRlZmluZSBERUZBVUxUX01JQkRJUlMgTkVUU05NUF9ERUZBVUxUX01JQkRJUlMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX01JQkZJTEVTCiMgZGVmaW5lIERFRkFVTFRfTUlCRklMRVMgTkVUU05NUF9ERUZBVUxUX01JQkZJTEVTCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfV0lUSF9PUEFRVUVfU1BFQ0lBTF9UWVBFUwojIGRlZmluZSBPUEFRVUVfU1BFQ0lBTF9UWVBFUyBORVRTTk1QX1dJVEhfT1BBUVVFX1NQRUNJQUxfVFlQRVMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9FTkFCTEVfU0NBUElfQVVUSFBSSVYKIyBkZWZpbmUgU0NBUElfQVVUSFBSSVYgTkVUU05NUF9FTkFCTEVfU0NBUElfQVVUSFBSSVYKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfSU5URVJOQUxfTUQ1CiMgZGVmaW5lIFVTRV9JTlRFUk5BTF9NRDUgTkVUU05NUF9VU0VfSU5URVJOQUxfTUQ1CiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX1BLQ1MxMQojIGRlZmluZSBVU0VfUEtDUyBORVRTTk1QX1VTRV9QS0NTMTEKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfT1BFTlNTTAojIGRlZmluZSBVU0VfT1BFTlNTTCBORVRTTk1QX1VTRV9PUEVOU1NMCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfTk9fREVCVUdHSU5HCiMgZGVmaW5lIFNOTVBfTk9fREVCVUdHSU5HIE5FVFNOTVBfTk9fREVCVUdHSU5HCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfQUxXQVlTX0RFQlVHCiMgZGVmaW5lIFNOTVBfQUxXQVlTX0RFQlVHIE5FVFNOTVBfQUxXQVlTX0RFQlVHCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX1JFVkVSU0VfQVNORU5DT0RJTkcKIyBkZWZpbmUgVVNFX1JFVkVSU0VfQVNORU5DT0RJTkcgTkVUU05NUF9VU0VfUkVWRVJTRV9BU05FTkNPRElORwojZW5kaWYKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9BU05FTkNPRElOR19ESVJFQ1RJT04KIyBkZWZpbmUgREVGQVVMVF9BU05FTkNPRElOR19ESVJFQ1RJT04gTkVUU05NUF9ERUZBVUxUX0FTTkVOQ09ESU5HX0RJUkVDVElPTgojZW5kaWYKCiNkZWZpbmUgUEVSU0lTVEVOVF9ESVJFQ1RPUlkgTkVUU05NUF9QRVJTSVNURU5UX0RJUkVDVE9SWQojZGVmaW5lIFBFUlNJU1RFTlRfTUFTSyBORVRTTk1QX1BFUlNJU1RFTlRfTUFTSwojZGVmaW5lIEFHRU5UX0RJUkVDVE9SWV9NT0RFIE5FVFNOTVBfQUdFTlRfRElSRUNUT1JZX01PREUKI2RlZmluZSBNQVhfUEVSU0lTVEVOVF9CQUNLVVBTIE5FVFNOTVBfTUFYX1BFUlNJU1RFTlRfQkFDS1VQUwojZGVmaW5lIFNZU1RFTV9JTkNMVURFX0ZJTEUgTkVUU05NUF9TWVNURU1fSU5DTFVERV9GSUxFCiNkZWZpbmUgTUFDSElORV9JTkNMVURFX0ZJTEUgTkVUU05NUF9NQUNISU5FX0lOQ0xVREVfRklMRQoKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfU0VORF9CVUYKIyBkZWZpbmUgREVGQVVMVF9TRVJWRVJfU0VORF9CVUYgTkVUU05NUF9ERUZBVUxUX1NFUlZFUl9TRU5EX0JVRgojZW5kaWYKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfUkVDVl9CVUYKIyBkZWZpbmUgREVGQVVMVF9TRVJWRVJfUkVDVl9CVUYgTkVUU05NUF9ERUZBVUxUX1NFUlZFUl9SRUNWX0JVRgojZW5kaWYKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfU0VORF9CVUYKIyBkZWZpbmUgREVGQVVMVF9DTElFTlRfU0VORF9CVUYgTkVUU05NUF9ERUZBVUxUX0NMSUVOVF9TRU5EX0JVRgojZW5kaWYKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfUkVDVl9CVUYKIyBkZWZpbmUgREVGQVVMVF9DTElFTlRfUkVDVl9CVUYgTkVUU05NUF9ERUZBVUxUX0NMSUVOVF9SRUNWX0JVRgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0xPR0ZJTEUKIyBkZWZpbmUgTE9HRklMRSBORVRTTk1QX0xPR0ZJTEUKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TWVNfQ09OVEFDVAojIGRlZmluZSBTWVNfQ09OVEFDVCBORVRTTk1QX1NZU19DT05UQUNUCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU1lTX0xPQwojIGRlZmluZSBTWVNfTE9DIE5FVFNOTVBfU1lTX0xPQwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1VTRV9MSUJXUkFQCiMgZGVmaW5lIFVTRV9MSUJXUkFQIE5FVFNOTVBfVVNFX0xJQldSQVAKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9FTkFCTEVfVEVTVElOR19DT0RFIAojIGRlZmluZSBTTk1QX1RFU1RJTkdfQ09ERSBORVRTTk1QX0VOQUJMRV9URVNUSU5HX0NPREUKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9OT19ST09UX0FDQ0VTUwojIGRlZmluZSBOT19ST09UX0FDQ0VTUyBORVRTTk1QX05PX1JPT1RfQUNDRVNTCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfTk9fS01FTV9VU0FHRQojIGRlZmluZSBOT19LTUVNX1VTQUdFIE5FVFNOTVBfTk9fS01FTV9VU0FHRQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX05PX0RVTU1ZX1ZBTFVFUwojIGRlZmluZSBOT19EVU1NWV9WQUxVRVMgTkVUU05NUF9OT19EVU1NWV9WQUxVRVMKI2VuZGlmCgojZGVmaW5lIFZFUlNfREVTQyAgICAgTkVUU05NUF9WRVJTX0RFU0MKI2RlZmluZSBTWVNfTkFNRSAgICAgIE5FVFNOTVBfU1lTX05BTUUKCiNkZWZpbmUgUFJPQ01JQk5VTSAgICBORVRTTk1QX1BST0NNSUJOVU0KI2RlZmluZSBTSEVMTE1JQk5VTSAgIE5FVFNOTVBfU0hFTExNSUJOVU0KI2RlZmluZSBNRU1NSUJOVU0gICAgIE5FVFNOTVBfTUVNTUlCTlVNCiNkZWZpbmUgRElTS01JQk5VTSAgICBORVRTTk1QX0RJU0tNSUJOVU0KCiNkZWZpbmUgTE9BREFWRU1JQk5VTSBORVRTTk1QX0xPQURBVkVNSUJOVU0KI2RlZmluZSBWRVJTSU9OTUlCTlVNIE5FVFNOTVBfVkVSU0lPTk1JQk5VTQojZGVmaW5lIEVSUk9STUlCTlVNICAgTkVUU05NUF9FUlJPUk1JQk5VTQojZGVmaW5lIEFHRU5USUQgICAgICAgTkVUU05NUF9BR0VOVElECgojZGVmaW5lIEhQVVg5SUQgICAgICAgTkVUU05NUF9IUFVYOUlECiNkZWZpbmUgU1VOT1M0SUQgICAgICBORVRTTk1QX1NVTk9TNElECiNkZWZpbmUgU09MQVJJU0lEICAgICBORVRTTk1QX1NPTEFSSVNJRAojZGVmaW5lIE9TRklEICAgICAgICAgTkVUU05NUF9PU0ZJRAojZGVmaW5lIFVMVFJJWElEICAgICAgTkVUU05NUF9VTFRSSVhJRAojZGVmaW5lIEhQVVgxMElEICAgICAgTkVUU05NUF9IUFVYMTBJRAojZGVmaW5lIE5FVEJTRDFJRCAgICAgTkVUU05NUF9ORVRCU0QxSUQKI2RlZmluZSBGUkVFQlNESUQgICAgIE5FVFNOTVBfRlJFRUJTRElECiNkZWZpbmUgSVJJWElEICAgICAgICBORVRTTk1QX0lSSVhJRAojZGVmaW5lIExJTlVYSUQgICAgICAgTkVUU05NUF9MSU5VWElECiNkZWZpbmUgQlNESUlEICAgICAgICBORVRTTk1QX0JTRElJRAojZGVmaW5lIE9QRU5CU0RJRCAgICAgTkVUU05NUF9PUEVOQlNESUQKI2RlZmluZSBXSU4zMklEICAgICAgIE5FVFNOTVBfV0lOMzJJRAojZGVmaW5lIEhQVVgxMUlEICAgICAgTkVUU05NUF9IUFVYMTFJRAojZGVmaW5lIEFJWElEICAgICAgICAgTkVUU05NUF9BSVhJRAojZGVmaW5lIE1BQ09TWElEICAgICAgTkVUU05NUF9NQUNPU1hJRAojZGVmaW5lIFVOS05PV05JRCAgICAgTkVUU05NUF9VTktOT1dOSUQKCiNkZWZpbmUgRU5URVJQUklTRV9PSUQgICAgICAgICAgICBORVRTTk1QX0VOVEVSUFJJU0VfT0lECiNkZWZpbmUgRU5URVJQUklTRV9NSUIgICAgICAgICAgICBORVRTTk1QX0VOVEVSUFJJU0VfTUlCCiNkZWZpbmUgRU5URVJQUklTRV9ET1RfTUlCICAgICAgICBORVRTTk1QX0VOVEVSUFJJU0VfRE9UX01JQgojZGVmaW5lIEVOVEVSUFJJU0VfRE9UX01JQl9MRU5HVEggTkVUU05NUF9FTlRFUlBSSVNFX0RPVF9NSUJfTEVOR1RICgojZGVmaW5lIFNZU1RFTV9NSUIJCSAgTkVUU05NUF9TWVNURU1fTUlCCiNkZWZpbmUgU1lTVEVNX0RPVF9NSUIJCSAgTkVUU05NUF9TWVNURU1fRE9UX01JQgojZGVmaW5lIFNZU1RFTV9ET1RfTUlCX0xFTkdUSAkgIE5FVFNOTVBfU1lTVEVNX0RPVF9NSUJfTEVOR1RICgojZGVmaW5lIE5PVElGSUNBVElPTl9NSUIJICAgIE5FVFNOTVBfTk9USUZJQ0FUSU9OX01JQgkKI2RlZmluZSBOT1RJRklDQVRJT05fRE9UX01JQgkgICAgTkVUU05NUF9OT1RJRklDQVRJT05fRE9UX01JQgojZGVmaW5lIE5PVElGSUNBVElPTl9ET1RfTUlCX0xFTkdUSCBORVRTTk1QX05PVElGSUNBVElPTl9ET1RfTUlCX0xFTkdUSAoKI2RlZmluZSBVQ0RBVklTX09JRAkJICBORVRTTk1QX1VDREFWSVNfT0lECiNkZWZpbmUgVUNEQVZJU19NSUIJCSAgTkVUU05NUF9VQ0RBVklTX01JQgojZGVmaW5lIFVDREFWSVNfRE9UX01JQgkJICBORVRTTk1QX1VDREFWSVNfRE9UX01JQgojZGVmaW5lIFVDREFWSVNfRE9UX01JQl9MRU5HVEgJICBORVRTTk1QX1VDREFWSVNfRE9UX01JQl9MRU5HVEgKCiNkZWZpbmUgRVJST1JUSU1FTEVOR1RIIE5FVFNOTVBfRVJST1JUSU1FTEVOR1RICgojaWZkZWYgTkVUU05NUF9QUk9DRklYQ01ECiMgZGVmaW5lIFBST0NGSVhDTUQgTkVUU05NUF9QUk9DRklYQ01ECiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRVhFQ0ZJWENNRAojIGRlZmluZSBFWEVDRklYQ01EIE5FVFNOTVBfRVhFQ0ZJWENNRAojZW5kaWYKCiNkZWZpbmUgRVhDQUNIRVRJTUUgIE5FVFNOTVBfRVhDQUNIRVRJTUUKI2RlZmluZSBDQUNIRUZJTEUgICAgTkVUU05NUF9DQUNIRUZJTEUKI2RlZmluZSBNQVhDQUNIRVNJWkUgTkVUU05NUF9NQVhDQUNIRVNJWkUKCiNkZWZpbmUgREVGRElTS01JTklNVU1TUEFDRSBORVRTTk1QX0RFRkRJU0tNSU5JTVVNU1BBQ0UKI2RlZmluZSBERUZNQVhMT0FEQVZFIE5FVFNOTVBfREVGTUFYTE9BREFWRQojZGVmaW5lIE1BWFJFQURDT1VOVCBORVRTTk1QX01BWFJFQURDT1VOVAoKI2RlZmluZSBTTk1QQkxPQ0sgTkVUU05NUF9TTk1QQkxPQ0sKI2RlZmluZSBSRVNUQVJUU0xFRVAgTkVUU05NUF9SRVNUQVJUU0xFRVAKCiNkZWZpbmUgTlVNX0NPTU1VTklUSUVTCU5FVFNOTVBfTlVNX0NPTU1VTklUSUVTCgojaWZkZWYgTkVUU05NUF9OT19aRVJPTEVOR1RIX0NPTU1VTklUWQojIGRlZmluZSBOT19aRVJPTEVOR1RIX0NPTU1VTklUWSBORVRTTk1QX05PX1pFUk9MRU5HVEhfQ09NTVVOSVRZCiNlbmRpZgoKI2RlZmluZSBMQVNURklFTEQgTkVUU05NUF9MQVNURklFTEQKCiNkZWZpbmUgQ09ORklHVVJFX09QVElPTlMgTkVUU05NUF9DT05GSUdVUkVfT1BUSU9OUwoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VEUF9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfVURQX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9VRFBfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RDUF9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfVENQX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9UQ1BfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VOSVhfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1VOSVhfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1VOSVhfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0FBTDVQVkNfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX0FBTDVQVkNfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX0FBTDVQVkNfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0lQWF9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfSVBYX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9JUFhfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RDUElQVjZfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1RDUElQVjZfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1RDUElQVjZfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RMU19ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfVExTX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9UTFNfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1NURF9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfU1REX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9TVERfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU0VDTU9EX1VTTQojIGRlZmluZSBTTk1QX1NFQ01PRF9VU00gTkVUU05NUF9TRUNNT0RfVVNNCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU0VDTU9EX0tTTQojIGRlZmluZSBTTk1QX1NFQ01PRF9LU00gTkVUU05NUF9TRUNNT0RfS1NNCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU0VDTU9EX0xPQ0FMU00gCiMgZGVmaW5lIFNOTVBfU0VDTU9EX0xPQ0FMU00gTkVUU05NUF9TRUNNT0RfTE9DQUxTTQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1JFRU5UUkFOVAojIGRlZmluZSBOU19SRUVOVFJBTlQgTkVUU05NUF9SRUVOVFJBTlQKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9FTkFCTEVfSVBWNgojIGRlZmluZSBJTkVUNiBORVRTTk1QX0VOQUJMRV9JUFY2CiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRU5BQkxFX0xPQ0FMX1NNVVgKIyBkZWZpbmUgTE9DQUxfU01VWCBORVRTTk1QX0VOQUJMRV9MT0NBTF9TTVVYCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfQUdFTlRYX0RPTV9TT0NLX09OTFkKIyBkZWZpbmUgQUdFTlRYX0RPTV9TT0NLX09OTFkgTkVUU05NUF9BR0VOVFhfRE9NX1NPQ0tfT05MWQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NOTVBUUkFQRF9ESVNBQkxFX0FHRU5UWAojIGRlZmluZSBTTk1QVFJBUERfRElTQUJMRV9BR0VOVFgKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfS0VSQkVST1NfTUlUCiMgZGVmaW5lIE1JVF9ORVdfQ1JZUFRPIE5FVFNOTVBfVVNFX0tFUkJFUk9TX01JVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1VTRV9LRVJCRVJPU19IRUlNREFMCiMgZGVmaW5lIEhFSU1EQUwgTkVUU05NUF9VU0VfS0VSQkVST1NfSEVJTURBTAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0FHRU5UWF9TT0NLRVQKIyBkZWZpbmUgQUdFTlRYX1NPQ0tFVCBORVRTTk1QX0FHRU5UWF9TT0NLRVQKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ESVNBQkxFX01JQl9MT0FESU5HCiMgZGVmaW5lIERJU0FCTEVfTUlCX0xPQURJTkcgTkVUU05NUF9ESVNBQkxFX01JQl9MT0FESU5HCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRElTQUJMRV9TTk1QVjEKIyBkZWZpbmUgRElTQUJMRV9TTk1QVjEgTkVUU05NUF9ESVNBQkxFX1NOTVBWMQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RJU0FCTEVfU05NUFYyQwojIGRlZmluZSBESVNBQkxFX1NOTVBWMkMgTkVUU05NUF9ESVNBQkxFX1NOTVBWMkMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCiMgZGVmaW5lIERJU0FCTEVfU0VUX1NVUFBPUlQgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRElTQUJMRV9ERVMKIyBkZWZpbmUgRElTQUJMRV9ERVMgTkVUU05NUF9ESVNBQkxFX0RFUwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RJU0FCTEVfTUQ1CiMgZGVmaW5lIERJU0FCTEVfTUQ1IE5FVFNOTVBfRElTQUJMRV9NRDUKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ET05UX1VTRV9OTElTVAojIGRlZmluZSBET05UX1VTRV9OTElTVCBORVRTTk1QX0RPTlRfVVNFX05MSVNUCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfQ0FOX1VTRV9OTElTVAojIGRlZmluZSBDQU5fVVNFX05MSVNUIE5FVFNOTVBfQ0FOX1VTRV9OTElTVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0NBTl9VU0VfU1lTQ1RMCiMgZGVmaW5lIENBTl9VU0VfU1lTQ1RMIE5FVFNOTVBfQ0FOX1VTRV9TWVNDVEwKI2VuZGlmCgojZW5kaWYgLyogTkVUU05NUF9OT19MRUdBQ1lfREVGSU5JVElPTlMgKi8KCgojZW5kaWYgLyogTkVUX1NOTVBfQ09ORklHX0ggKi8K