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+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TVFJJTkdfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJsY2F0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSTENBVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJsY3B5JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSTENQWQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJuY2FzZWNtcCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUUk5DQVNFQ01QCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cnRva19yJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSVE9LX1IKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RydG9sJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSVE9MCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cnRvdWwnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TVFJUT1VMCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cnRvdWxsJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSVE9VTEwKCi8qIERlZmluZSB0byAxIGlmIGBhdF9uZXh0JyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGFycGhkJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0FSUEhEX0FUX05FWFQKCi8qIERlZmluZSB0byAxIGlmIGB3ZWFrX2tleScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBkZXNfa3Nfc3RydWN0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0RFU19LU19TVFJVQ1RfV0VBS19LRVkKCi8qIERlZmluZSB0byAxIGlmIGBkX3R5cGUnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgZGlyZW50Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0RJUkVOVF9EX1RZUEUKCi8qIERlZmluZSB0byAxIGlmIGBzcGVlZF9oaScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBldGh0b29sX2NtZCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9FVEhUT09MX0NNRF9TUEVFRF9ISQoKLyogRGVmaW5lIHRvIDEgaWYgYGlmYV9uZXh0JyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmYWRkcicuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRkFERFJfSUZBX05FWFQKCi8qIERlZmluZSB0byAxIGlmIGBpZl9hZGRyaGVhZC50cWhfZmlyc3QnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfQUREUkhFQURfVFFIX0ZJUlNUCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfYWRkcmxpc3QnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfQUREUkxJU1QKCi8qIERlZmluZSB0byAxIGlmIGBpZl9iYXVkcmF0ZScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9CQVVEUkFURQoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX2JhdWRyYXRlLmlmc192YWx1ZScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9CQVVEUkFURV9JRlNfVkFMVUUKCi8qIERlZmluZSB0byAxIGlmIGBpZl9pYnl0ZXMnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfSUJZVEVTCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfaW1jYXN0cycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9JTUNBU1RTCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfaXFkcm9wcycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9JUURST1BTCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfbGFzdGNoYW5nZS50dl9uc2VjJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX0xBU1RDSEFOR0VfVFZfTlNFQwoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX2xhc3RjaGFuZ2UudHZfc2VjJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX0xBU1RDSEFOR0VfVFZfU0VDCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfbXR1JyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX01UVQoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX25vcHJvdG8nIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfTk9QUk9UTwoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX29ieXRlcycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9PQllURVMKCi8qIERlZmluZSB0byAxIGlmIGBpZl9vbWNhc3RzJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX09NQ0FTVFMKCi8qIERlZmluZSB0byAxIGlmIGBpZl9zcGVlZCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9TUEVFRAoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX3R5cGUnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfVFlQRQoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX3huYW1lJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX1hOQU1FCgovKiBEZWZpbmUgdG8gMSBpZiBgaXA2c19leHRoZHJ0b29sb25nICcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpcDZzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lQNlNUQVRfSVA2U19FWFRIRFJUT09MT05HXwoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19jYW50Zm9yd2FyZCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19DQU5URk9SV0FSRAoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19jYW50ZnJhZycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19DQU5URlJBRwoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19kZWxpdmVyZWQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfREVMSVZFUkVECgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX2ZyYWdkcm9wcGVkJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX0ZSQUdEUk9QUEVECgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX2ZyYWdtZW50ZWQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfRlJBR01FTlRFRAoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19mcmFndGltZW91dCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19GUkFHVElNRU9VVAoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19sb2NhbG91dCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19MT0NBTE9VVAoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19ub3Byb3RvJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX05PUFJPVE8KCi8qIERlZmluZSB0byAxIGlmIGBpcHNfbm9yb3V0ZScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19OT1JPVVRFCgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX29kcm9wcGVkJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX09EUk9QUEVECgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX29mcmFnbWVudHMnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfT0ZSQUdNRU5UUwoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19yZWFzc2VtYmxlZCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19SRUFTU0VNQkxFRAoKLyogRGVmaW5lIHRvIDEgaWYgYG1fY2xmcmVlJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IG1ic3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9NQlNUQVRfTV9DTEZSRUUKCi8qIERlZmluZSB0byAxIGlmIGBtX2NsdXN0ZXJzJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IG1ic3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9NQlNUQVRfTV9DTFVTVEVSUwoKLyogRGVmaW5lIHRvIDEgaWYgYG1fbWJ1ZnMnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgbWJzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX01CU1RBVF9NX01CVUZTCgovKiBEZWZpbmUgdG8gMSBpZiBgbl92YWx1ZScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBubGlzdDY0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX05MSVNUNjRfTl9WQUxVRQoKLyogRGVmaW5lIHRvIDEgaWYgYG5fdmFsdWUnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgbmxpc3QnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfTkxJU1RfTl9WQUxVRQoKLyogRGVmaW5lIHRvIDEgaWYgYHJ0X2RzdCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBydGVudHJ5Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1JURU5UUllfUlRfRFNUCgovKiBEZWZpbmUgdG8gMSBpZiBgcnRfaGFzaCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBydGVudHJ5Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1JURU5UUllfUlRfSEFTSAoKLyogRGVmaW5lIHRvIDEgaWYgYHJ0X25leHQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgcnRlbnRyeScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9SVEVOVFJZX1JUX05FWFQKCi8qIERlZmluZSB0byAxIGlmIGBydF9yZWZjbnQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgcnRlbnRyeScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9SVEVOVFJZX1JUX1JFRkNOVAoKLyogRGVmaW5lIHRvIDEgaWYgYHJ0X3VuaXQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgcnRlbnRyeScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9SVEVOVFJZX1JUX1VOSVQKCi8qIERlZmluZSB0byAxIGlmIGBydF91c2UnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgcnRlbnRyeScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9SVEVOVFJZX1JUX1VTRQoKLyogRGVmaW5lIHRvIDEgaWYgYHNhX3NpZ2FjdGlvbicgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBzaWdhY3Rpb24nLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU0lHQUNUSU9OX1NBX1NJR0FDVElPTgoKLyogRGVmaW5lIHRvIDEgaWYgYHNpbjZfc2NvcGVfaWQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgc29ja2FkZHJfaW42Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lECgovKiBEZWZpbmUgdG8gMSBpZiBgc2FfbGVuJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHNvY2thZGRyJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NPQ0tBRERSX1NBX0xFTgoKLyogRGVmaW5lIHRvIDEgaWYgYHNhX3VuaW9uLnNhX2dlbmVyaWMuc2FfZmFtaWx5MicgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdAogICBzb2NrYWRkcicuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TT0NLQUREUl9TQV9VTklPTl9TQV9HRU5FUklDX1NBX0ZBTUlMWTIKCi8qIERlZmluZSB0byAxIGlmIGBzc19mYW1pbHknIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TT0NLQUREUl9TVE9SQUdFX1NTX0ZBTUlMWQoKLyogRGVmaW5lIHRvIDEgaWYgYF9fc3NfZmFtaWx5JyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU09DS0FERFJfU1RPUkFHRV9fX1NTX0ZBTUlMWQoKLyogRGVmaW5lIHRvIDEgaWYgYGZfZmF2YWlsJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHN0YXRmcycuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TVEFURlNfRl9GQVZBSUwKCi8qIERlZmluZSB0byAxIGlmIGBmX2ZmcmVlJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHN0YXRmcycuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TVEFURlNfRl9GRlJFRQoKLyogRGVmaW5lIHRvIDEgaWYgYGZfZmlsZXMnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdGZzJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRGU19GX0ZJTEVTCgovKiBEZWZpbmUgdG8gMSBpZiBgZl9mbGFncycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0ZnMnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVEZTX0ZfRkxBR1MKCi8qIERlZmluZSB0byAxIGlmIGBmX2Zyc2l6ZScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0ZnMnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVEZTX0ZfRlJTSVpFCgovKiBEZWZpbmUgdG8gMSBpZiBgZl9maWxlcycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0dmZzJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRWRlNfRl9GSUxFUwoKLyogRGVmaW5lIHRvIDEgaWYgYGZfZnJzaXplJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHN0YXR2ZnMnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVFZGU19GX0ZSU0laRQoKLyogRGVmaW5lIHRvIDEgaWYgYG1udF9kaXInIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdHZmcycuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TVEFUVkZTX01OVF9ESVIKCi8qIERlZmluZSB0byAxIGlmIGBzd19uYmxrc2VuYWJsZWQnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3dkZXZ0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NXREVWVF9TV19OQkxLU0VOQUJMRUQKCi8qIERlZmluZSB0byAxIGlmIGB0Y3BfcmN2bWVtZHJvcCcgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCB0Y3BzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1RDUFNUQVRfVENQX1JDVk1FTURST1AKCi8qIERlZmluZSB0byAxIGlmIGB0el9kc3R0aW1lJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHRpbWV6b25lJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1RJTUVaT05FX1RaX0RTVFRJTUUKCi8qIERlZmluZSB0byAxIGlmIGB0bV9nbXRvZmYnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgdG0nLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfVE1fVE1fR01UT0ZGCgovKiBEZWZpbmUgdG8gMSBpZiBgdWRwc19kaXNjYXJkJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHVkcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfVURQU1RBVF9VRFBTX0RJU0NBUkQKCi8qIERlZmluZSB0byAxIGlmIGB1ZHBzX2Z1bGxzb2NrJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHVkcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfVURQU1RBVF9VRFBTX0ZVTExTT0NLCgovKiBEZWZpbmUgdG8gMSBpZiBgdWRwc19pcGFja2V0cycgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCB1ZHBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1VEUFNUQVRfVURQU19JUEFDS0VUUwoKLyogRGVmaW5lIHRvIDEgaWYgYHVkcHNfbm9wb3J0JyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHVkcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfVURQU1RBVF9VRFBTX05PUE9SVAoKLyogRGVmaW5lIHRvIDEgaWYgYHVkcHNfbm9wb3J0YmNhc3QnIGlzIGEgbWVtYmVyIG9mIGBzdHJ1Y3QgdWRwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9VRFBTVEFUX1VEUFNfTk9QT1JUQkNBU1QKCi8qIERlZmluZSB0byAxIGlmIGB1ZHBzX29wYWNrZXRzJyBpcyBhIG1lbWJlciBvZiBgc3RydWN0IHVkcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfVURQU1RBVF9VRFBTX09QQUNLRVRTCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN5c2NvbmYnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TWVNDT05GCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5c2xvZy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTTE9HX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3lzdGVtJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1lTVEVNCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9jZGVmcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0NERUZTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2NvbmYuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19DT05GX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rpci5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuCiAgICovCiN1bmRlZiBIQVZFX1NZU19ESVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZGlza2lvLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfRElTS0lPX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rpc2tsYWJlbC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0RJU0tMQUJFTF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9ka2lvLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfREtJT19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9ka3N0YXQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19ES1NUQVRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZG1hcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0RNQVBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZmlsZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0ZJTEVfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZmlsaW8uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19GSUxJT19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9maXhwb2ludC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0ZJWFBPSU5UX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2ZzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfRlNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvaGFzaGluZy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0hBU0hJTkdfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvaW9jdGwuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19JT0NUTF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9sb2FkYXZnLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfTE9BREFWR19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9tYnVmLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfTUJVRl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9tbnRlbnQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19NTlRFTlRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvbW50dGFiLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfTU5UVEFCX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL21vdW50Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfTU9VTlRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvbmRpci5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuCiAgICovCiN1bmRlZiBIQVZFX1NZU19ORElSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3BhcmFtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfUEFSQU1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcG9sbC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1BPTExfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcG9vbC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1BPT0xfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcHJvYy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1BST0NfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcHJvdG9zdy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1BST1RPU1dfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcHN0YXQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19QU1RBVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9xdWV1ZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1FVRVVFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3NlbGVjdC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NFTEVDVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zZW1hLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU0VNQV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zb2NrZXR2YXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TT0NLRVRWQVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc29ja2V0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU09DS0VUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3NvY2tpby5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NPQ0tJT19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdGF0ZnMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TVEFURlNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RhdHZmcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NUQVRWRlNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RhdC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NUQVRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RyZWFtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1RSRUFNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N3YXAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TV0FQX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N5c2N0bC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NZU0NUTF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zeXNnZXQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TWVNHRVRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3lzbXAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TWVNNUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zeXN0ZW1jZmcuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TWVNURU1DRkdfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3lzdGVtaW5mby5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NZU1RFTUlORk9fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdGNwaXBzdGF0cy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1RDUElQU1RBVFNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdGltZWIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19USU1FQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90aW1lb3V0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVElNRU9VVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90aW1lcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1RJTUVTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3RpbWUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19USU1FX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3R5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVFlQRVNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdWlvLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVUlPX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3VuLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVU5fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdXNlci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1VTRVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdXRzbmFtZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1VUU05BTUVfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdmZzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVkZTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3ZtbWFjLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVk1NQUNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdm1tZXRlci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1ZNTUVURVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdm1wYXJhbS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1ZNUEFSQU1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdm1zeXN0bS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1ZNU1lTVE1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdm0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19WTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy92bm9kZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1ZOT0RFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIDxzeXMvd2FpdC5oPiB0aGF0IGlzIFBPU0lYLjEgY29tcGF0aWJsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1dBSVRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGB0Y2dldGF0dHInIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9UQ0dFVEFUVFIKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgdGltZXMnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9USU1FUwoKLyogRGVmaW5lIGlmIGEgdGltZXpvbmUgdmFyaWFibGUgaXMgZGVjbGFyZWQgaW4gPHN5cy90aW1lLmg+ICovCiN1bmRlZiBIQVZFX1RJTUVaT05FX1ZBUklBQkxFCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHVmcy9mZnMvZnMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1VGU19GRlNfRlNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1ZnMvZnMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1VGU19GU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHVmcy91ZnMvZGlub2RlLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9VRlNfVUZTX0RJTk9ERV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHVmcy91ZnMvaW5vZGUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1VGU19VRlNfSU5PREVfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1ZnMvdWZzL3F1b3RhLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9VRlNfVUZTX1FVT1RBX0gKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGB1aW50bWF4X3QnLiAqLwojdW5kZWYgSEFWRV9VSU5UTUFYX1QKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGB1aW50cHRyX3QnLiAqLwojdW5kZWYgSEFWRV9VSU5UUFRSX1QKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgdW5hbWUnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9VTkFNRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1bmlzdGQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1VOSVNURF9ICgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgdW5zaWduZWQgbG9uZyBsb25nIGludCcuICovCiN1bmRlZiBIQVZFX1VOU0lHTkVEX0xPTkdfTE9OR19JTlQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgdXNsZWVwJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfVVNMRUVQCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHV0bXB4Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9VVE1QWF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHV0c25hbWUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1VUU05BTUVfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1dm0vdXZtX2V4dGVybi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVVZNX1VWTV9FWFRFUk5fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1dm0vdXZtX3BhcmFtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9VVk1fVVZNX1BBUkFNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dmFsZ3JpbmQvbWVtY2hlY2suaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1ZBTEdSSU5EX01FTUNIRUNLX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dmFsZ3JpbmQvdmFsZ3JpbmQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1ZBTEdSSU5EX1ZBTEdSSU5EX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dmFsaWRhdG9yL3ZhbGlkYXRvci1jb25maWcuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1ZBTElEQVRPUl9WQUxJREFUT1JfQ09ORklHX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dm0vc3dhcF9wYWdlci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVk1fU1dBUF9QQUdFUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHZtL3ZtX2V4dGVybi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVk1fVk1fRVhURVJOX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dm0vdm0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1ZNX1ZNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dm0vdm1fcGFyYW0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1ZNX1ZNX1BBUkFNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgdnNucHJpbnRmJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfVlNOUFJJTlRGCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHdpbmRvd3MuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1dJTkRPV1NfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx3aW5zb2NrMi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfV0lOU09DSzJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx3aW5zb2NrLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9XSU5TT0NLX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8d3MydGNwaXAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1dTMlRDUElQX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8eHRpLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9YVElfSAoKLyogbG9jYXRpb24gb2YgVU5JWCBrZXJuZWwgKi8KI3VuZGVmIEtFUk5FTF9MT0MKCi8qIFBhdGggdG8gdGhlIGxwc3RhdCBjb21tYW5kICovCiN1bmRlZiBMUFNUQVRfUEFUSAoKLyogRGVmaW5lIHRvIHRoZSBzdWItZGlyZWN0b3J5IGluIHdoaWNoIGxpYnRvb2wgc3RvcmVzIHVuaW5zdGFsbGVkIGxpYnJhcmllcy4KICAgKi8KI3VuZGVmIExUX09CSkRJUgoKLyogZGVmaW5lIGlmIGFnZW50eCB0cmFuc3BvcnQgaXMgdG8gdXNlIGRvbWFpbiBzb2NrZXRzIG9ubHkgKi8KI3VuZGVmIE5FVFNOTVBfQUdFTlRYX0RPTV9TT0NLX09OTFkKCi8qIFVuaXggZG9tYWluIHNvY2tldCBmb3IgQWdlbnRYIG1hc3Rlci1zdWJhZ2VudCBjb21tdW5pY2F0aW9uICovCiN1bmRlZiBORVRTTk1QX0FHRU5UWF9TT0NLRVQKCi8qIERlZmluZSBpZiBzdGF0aWMgaW5saW5lIGZ1bmN0aW9ucyBhcmUgdW5zdXBwb3J0ZWQgKi8KI3VuZGVmIE5FVFNOTVBfQlJPS0VOX0lOTElORQoKLyogIkRlZmluZSBpZiBjcnl0b2dyYXBoeSBzdXBwb3J0IGlzIHBvc3NpYmxlIiAqLwojdW5kZWYgTkVUU05NUF9DQU5fRE9fQ1JZUFRPCgovKiBzeXNjdGwgd29ya3MgdG8gZ2V0IGJvb3R0aW1lLCBldGMuLi4gKi8KI3VuZGVmIE5FVFNOTVBfQ0FOX1VTRV9TWVNDVEwKCi8qIGNvbmZpZ3VyZSBvcHRpb25zIHNwZWNpZmllZCAqLwojdW5kZWYgTkVUU05NUF9DT05GSUdVUkVfT1BUSU9OUwoKLyogZGVmYXVsdCBsb2NhdGlvbiB0byBsb29rIGZvciBtaWJzIHRvIGxvYWQgdXNpbmcgdGhlIGFib3ZlIHRva2VucyBhbmQvb3IKICAgdGhvc2UgaW4gdGhlIE1JQlMgZW52cmlvbm1lbnQgdmFyaWFibGUgKi8KI3VuZGVmIE5FVFNOTVBfREVGQVVMVF9NSUJESVJTCgovKiBkZWZhdWx0IG1pYiBmaWxlcyB0byBsb2FkLCBzcGVjaWZpZWQgYnkgcGF0aC4gKi8KI3VuZGVmIE5FVFNOTVBfREVGQVVMVF9NSUJGSUxFUwoKLyogRGVmaW5lIGlmIG5vIGFnZW50IGlzIGJ1aWx0ICovCiN1bmRlZiBORVRTTk1QX0RJU0FCTEVfQUdFTlQKCi8qIERlZmluZSBpZiBubyBhcHBzIGFyZSBidWlsdCAqLwojdW5kZWYgTkVUU05NUF9ESVNBQkxFX0FQUFMKCi8qIERlZmluZSBpZiBERVMgZW5jcnlwdGlvbiBzaG91bGQgbm90IGJlIHN1cHBvcnRlZCAqLwojdW5kZWYgTkVUU05NUF9ESVNBQkxFX0RFUwoKLyogRGVmaW5lIGlmIE1ENSBhdXRoZW50aWNhdGlvbiBzaG91bGQgbm90IGJlIHN1cHBvcnRlZCAqLwojdW5kZWYgTkVUU05NUF9ESVNBQkxFX01ENQoKLyogRGVmaW5lIGlmIG1pYiBsb2FkaW5nIGFuZCBwYXJzaW5nIGNvZGUgc2hvdWxkIG5vdCBiZSBpbmNsdWRlZCAqLwojdW5kZWYgTkVUU05NUF9ESVNBQkxFX01JQl9MT0FESU5HCgovKiBEZWZpbmUgaWYgU05NUCBTRVQgc3VwcG9ydCBzaG91bGQgYmUgZGlzYWJsZWQgKi8KI3VuZGVmIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAoKLyogRGVmaW5lIGlmIFNOTVB2MSBjb2RlIHNob3VsZCBub3QgYmUgaW5jbHVkZWQgKi8KI3VuZGVmIE5FVFNOTVBfRElTQUJMRV9TTk1QVjEKCi8qIERlZmluZSBpZiBTTk1QdjJjIGNvZGUgc2hvdWxkIG5vdCBiZSBpbmNsdWRlZCAqLwojdW5kZWYgTkVUU05NUF9ESVNBQkxFX1NOTVBWMkMKCi8qIERlZmluZSBpZiB5b3UgYXJlIGVtYmVkZGluZyBwZXJsIGluIHRoZSBtYWluIGFnZW50LiAqLwojdW5kZWYgTkVUU05NUF9FTUJFRERFRF9QRVJMCgovKiBkZWZpbmUgaWYgeW91IHdhbnQgdG8gZW5hYmxlIElQdjYgc3VwcG9ydCAqLwojdW5kZWYgTkVUU05NUF9FTkFCTEVfSVBWNgoKLyogZGVmaW5lIGlmIHlvdSB3YW50IHRvIHJlc3RyaWN0IFNNVVggY29ubmVjdGlvbnMgdG8gbG9jYWxob3N0IGJ5IGRlZmF1bHQgKi8KI3VuZGVmIE5FVFNOTVBfRU5BQkxFX0xPQ0FMX1NNVVgKCi8qIERlZmluZSBpZiB5b3Ugd2FudCB0byBidWlsZCBNRkQgbW9kdWxlIHJld3JpdGVzICovCiN1bmRlZiBORVRTTk1QX0VOQUJMRV9NRkRfUkVXUklURVMKCi8qIGRlZmluZSBpZiB5b3Ugd2FudCB0byBjb21waWxlIHN1cHBvcnQgZm9yIGJvdGggYXV0aGVudGljYXRpb24gYW5kIHByaXZhY3kKICAgc3VwcG9ydC4gKi8KI3VuZGVmIE5FVFNOTVBfRU5BQkxFX1NDQVBJX0FVVEhQUklWCgovKiB0ZXN0aW5nIGNvZGUgc2VjdGlvbnMuICovCiN1bmRlZiBORVRTTk1QX0VOQUJMRV9URVNUSU5HX0NPREUKCi8qIFNob3VsZCBldmFsdWF0ZSB0byB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBmdW5jdGlvbiBpZiBkZWZpbmVkICovCiN1bmRlZiBORVRTTk1QX0ZVTkNUSU9OCgovKiBpZm5ldCBuZWVkcyB0byBoYXZlIF9LRVJORUwgZGVmaW5lZCAqLwojdW5kZWYgTkVUU05NUF9JRk5FVF9ORUVEU19LRVJORUwKCi8qIGlmbmV0IG5lZWRzIHRvIGhhdmUgX0tFUk5FTF9TVFJVQ1RVUkVTIGRlZmluZWQgKi8KI3VuZGVmIE5FVFNOTVBfSUZORVRfTkVFRFNfS0VSTkVMX1NUUlVDVFVSRVMKCi8qIERlZmluZSBpZiB5b3Ugd2FudCB0byByZW1vdmUgYWxsIG5vbi1lc3NlbnRpYWwgY29kZSBmZWF0dXJlcy4gKi8KI3VuZGVmIE5FVFNOTVBfTUlOSU1BTF9DT0RFCgovKiBEZWZpbmUgaWYgeW91IHdhbnQgdG8gb25seSBzdXBwb3J0IHNlbmRpbmcgbm90aWZpY2F0aW9ucyAqLwojdW5kZWYgTkVUU05NUF9OT1RJRllfT05MWQoKLyogRGVmaW5lIHRvIHN1cHByZXNzIGluY2x1c2lvbiBvZiBkZXByZWNhdGVkIGZ1bmN0aW9ucyAqLwojdW5kZWYgTkVUU05NUF9OT19ERVBSRUNBVEVEX0ZVTkNUSU9OUwoKLyogSWYgeW91IGRvbid0IHdhbnQgdGhlIGFnZW50IHRvIHJlcG9ydCBvbiB2YXJpYWJsZXMgaXQgZG9lc24ndCBoYXZlIGRhdGEgZm9yCiAgICovCiN1bmRlZiBORVRTTk1QX05PX0RVTU1ZX1ZBTFVFUwoKLyogSWYgd2UgZG9uJ3Qgd2FudCB0byB1c2Uga21lbS4gKi8KI3VuZGVmIE5FVFNOTVBfTk9fS01FTV9VU0FHRQoKLyogRGVmaW5lIGlmIHlvdSB3YW50IHRvIHJlbW92ZSBhbGwgbGlzdGVuaW5nIHN1cHBvcnQgZnJvbSB0aGUgY29kZSAqLwojdW5kZWYgTkVUU05NUF9OT19MSVNURU5fU1VQUE9SVAoKLyogSWYgeW91IGRvbid0IGhhdmUgcm9vdCBhY2Nlc3MgZG9uJ3QgZXhpdCB1cG9uIGttZW0gZXJyb3JzICovCiN1bmRlZiBORVRTTk1QX05PX1JPT1RfQUNDRVNTCgovKiBEZWZpbmUgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIGFsbCBTRVQvd3JpdGUgYWNjZXNzIGZyb20gdGhlIGNvZGUgKi8KI3VuZGVmIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVAoKLyogdW1hc2sgcGVybWlzc2lvbnMgdG8gc2V0IHVwIHBlcnNpc3RlbnQgZmlsZXMgd2l0aCAqLwojdW5kZWYgTkVUU05NUF9QRVJTSVNURU5UX01BU0sKCi8qIFNpemUgcHJlZml4IHRvIHVzZSB0byBwcmludGYgYSB1aW50MzJfdCAqLwojdW5kZWYgTkVUU05NUF9QUkkzMgoKLyogU2l6ZSBwcmVmaXggdG8gdXNlIHRvIHByaW50ZiBhIHNpemVfdCBvciBzc2l6ZV90ICovCiN1bmRlZiBORVRTTk1QX1BSSXoKCi8qIERlZmluZSB0byAxIGlmIHlvdSB3YW50IHRvIGJ1aWxkIHdpdGggcmVlbnRyYW50L3RocmVhZGVkIGNvZGUgKGluY29tcGxldGUpLgogICAqLwojdW5kZWYgTkVUU05NUF9SRUVOVFJBTlQKCi8qIGRlZmluZSBpZiB5b3UgZG8gbm90IHdhbnQgc25tcHRyYXBkIHRvIHJlZ2lzdGVyIGFzIGFuIEFnZW50WCBzdWJhZ2VudCAqLwojdW5kZWYgTkVUU05NUF9TTk1QVFJBUERfRElTQUJMRV9BR0VOVFgKCi8qIFBhdHRlcm4gb2YgdGVtcG9yYXJ5IGZpbGVzICovCiN1bmRlZiBORVRTTk1QX1RFTVBfRklMRV9QQVRURVJOCgovKiAiRGVmaW5lIGlmIGludGVybmFsIGNyeXB0b2dyYXBoeSBjb2RlIHNob3VsZCBiZSB1c2VkIiAqLwojdW5kZWYgTkVUU05NUF9VU0VfSU5URVJOQUxfQ1JZUFRPCgovKiBkZWZpbmUgaWYgeW91IGFyZSB1c2luZyB0aGUgTUQ1IGNvZGUgLi4uICovCiN1bmRlZiBORVRTTk1QX1VTRV9JTlRFUk5BTF9NRDUKCi8qIERlZmluZSB0aGlzIGlmIHlvdSdyZSB1c2luZyBIZWltZGFsIEtlcmJlcm9zICovCiN1bmRlZiBORVRTTk1QX1VTRV9LRVJCRVJPU19IRUlNREFMCgovKiBEZWZpbmUgdGhpcyBpZiB3ZSdyZSB1c2luZyB0aGUgbmV3IE1JVCBjcnlwdG8gQVBJICovCiN1bmRlZiBORVRTTk1QX1VTRV9LRVJCRVJPU19NSVQKCi8qIGRlZmluZSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBteXNxbCBjb2RlIGZvciBzbm1wdHJhcGQgLi4uICovCiN1bmRlZiBORVRTTk1QX1VTRV9NWVNRTAoKLyogRGVmaW5lIGlmIHlvdSBhcmUgdXNpbmcgdGhlIGNvZGVTMTEgbGlicmFyeSAuLi4gKi8KI3VuZGVmIE5FVFNOTVBfVVNFX1BLQ1MxMQoKLyogRGVmaW5lIHRoaXMgaWYgeW91IGhhdmUgbG1fc2Vuc29ycyB2MyBvciBsYXRlciAqLwojdW5kZWYgTkVUU05NUF9VU0VfU0VOU09SU19WMwoKLyogU2hvdWxkIHdlIGNvbXBpbGUgdG8gdXNlIHNwZWNpYWwgb3BhcXVlIHR5cGVzOiBmbG9hdCwgZG91YmxlLCBjb3VudGVyNjQsCiAgIGk2NCwgdWk2NCwgdW5pb24/ICovCiN1bmRlZiBORVRTTk1QX1dJVEhfT1BBUVVFX1NQRUNJQUxfVFlQRVMKCi8qIERlZmluZSB0byB0aGUgYWRkcmVzcyB3aGVyZSBidWcgcmVwb3J0cyBmb3IgdGhpcyBwYWNrYWdlIHNob3VsZCBiZSBzZW50LiAqLwojaWZuZGVmIFBBQ0tBR0VfQlVHUkVQT1JUCiN1bmRlZiBQQUNLQUdFX0JVR1JFUE9SVAojZW5kaWYKCi8qIERlZmluZSB0byB0aGUgZnVsbCBuYW1lIG9mIHRoaXMgcGFja2FnZS4gKi8KI2lmbmRlZiBQQUNLQUdFX05BTUUKI3VuZGVmIFBBQ0tBR0VfTkFNRQojZW5kaWYKCi8qIERlZmluZSB0byB0aGUgZnVsbCBuYW1lIGFuZCB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KI2lmbmRlZiBQQUNLQUdFX1NUUklORwojdW5kZWYgUEFDS0FHRV9TVFJJTkcKI2VuZGlmCgovKiBEZWZpbmUgdG8gdGhlIG9uZSBzeW1ib2wgc2hvcnQgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCiNpZm5kZWYgUEFDS0FHRV9UQVJOQU1FCiN1bmRlZiBQQUNLQUdFX1RBUk5BTUUKI2VuZGlmCgovKiBEZWZpbmUgdG8gdGhlIGhvbWUgcGFnZSBmb3IgdGhpcyBwYWNrYWdlLiAqLwojdW5kZWYgUEFDS0FHRV9VUkwKCi8qIERlZmluZSB0byB0aGUgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UuICovCiNpZm5kZWYgUEFDS0FHRV9WRVJTSU9OCiN1bmRlZiBQQUNLQUdFX1ZFUlNJT04KI2VuZGlmCgovKiBDb21tYW5kIHRvIGdlbmVyYXRlIHBzIG91dHB1dCwgdGhlIGZpbmFsIGNvbHVtbiBtdXN0IGJlIHRoZSBwcm9jZXNzIG5hbWUKICAgd2l0aE9VVCBhcmd1bWVudHMgKi8KI3VuZGVmIFBTQ01ECgovKiBEZWZpbmUgYXMgdGhlIHJldHVybiB0eXBlIG9mIHNpZ25hbCBoYW5kbGVycyAoYGludCcgb3IgYHZvaWQnKS4gKi8KI3VuZGVmIFJFVFNJR1RZUEUKCi8qIGRlZmluZSBydGVudHJ5IHRvIG9ydGVudHJ5IG9uIFNZU1YgbWFjaGluZXMgKGFscGhhcykgKi8KI3VuZGVmIFJURU5UUlkKCi8qIFVzZSBCU0QgNC40IHJvdXRpbmcgdGFibGUgZW50cmllcz8gKi8KI3VuZGVmIFJURU5UUllfNF80CgovKiBUaGUgc2l6ZSBvZiBgaW50JywgYXMgY29tcHV0ZWQgYnkgc2l6ZW9mLiAqLwojdW5kZWYgU0laRU9GX0lOVAoKLyogVGhlIHNpemUgb2YgYGludG1heF90JywgYXMgY29tcHV0ZWQgYnkgc2l6ZW9mLiAqLwojdW5kZWYgU0laRU9GX0lOVE1BWF9UCgovKiBUaGUgc2l6ZSBvZiBgbG9uZycsIGFzIGNvbXB1dGVkIGJ5IHNpemVvZi4gKi8KI3VuZGVmIFNJWkVPRl9MT05HCgovKiBUaGUgc2l6ZSBvZiBgbG9uZyBsb25nJywgYXMgY29tcHV0ZWQgYnkgc2l6ZW9mLiAqLwojdW5kZWYgU0laRU9GX0xPTkdfTE9ORwoKLyogVGhlIHNpemUgb2YgYHNob3J0JywgYXMgY29tcHV0ZWQgYnkgc2l6ZW9mLiAqLwojdW5kZWYgU0laRU9GX1NIT1JUCgovKiBUaGUgc2l6ZSBvZiBgc29ja2FkZHJfdW4uc3VuX3BhdGgnLCBhcyBjb21wdXRlZCBieSBzaXplb2YuICovCiN1bmRlZiBTSVpFT0ZfU09DS0FERFJfVU5fU1VOX1BBVEgKCi8qIElmIHVzaW5nIHRoZSBDIGltcGxlbWVudGF0aW9uIG9mIGFsbG9jYSwgZGVmaW5lIGlmIHlvdSBrbm93IHRoZQogICBkaXJlY3Rpb24gb2Ygc3RhY2sgZ3Jvd3RoIGZvciB5b3VyIHN5c3RlbTsgb3RoZXJ3aXNlIGl0IHdpbGwgYmUKICAgYXV0b21hdGljYWxseSBkZWR1Y2VkIGF0IHJ1bnRpbWUuCglTVEFDS19ESVJFQ1RJT04gPiAwID0+IGdyb3dzIHRvd2FyZCBoaWdoZXIgYWRkcmVzc2VzCglTVEFDS19ESVJFQ1RJT04gPCAwID0+IGdyb3dzIHRvd2FyZCBsb3dlciBhZGRyZXNzZXMKCVNUQUNLX0RJUkVDVElPTiA9IDAgPT4gZGlyZWN0aW9uIG9mIGdyb3d0aCB1bmtub3duICovCiN1bmRlZiBTVEFDS19ESVJFQ1RJT04KCi8qIERlZmluZSBpZiBzdGF0ZnMgdGFrZXMgMiBhcmdzIGFuZCB0aGUgc2Vjb25kIGFyZ3VtZW50IGhhcyB0eXBlIHN0cnVjdAogICBmc19kYXRhLiBbVWx0cml4XSAqLwojdW5kZWYgU1RBVF9TVEFURlNfRlNfREFUQQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIEFOU0kgQyBoZWFkZXIgZmlsZXMuICovCiN1bmRlZiBTVERDX0hFQURFUlMKCi8qIGRlZmluZSBpZiBTSU9DR0lGQUREUiBleGlzdHMgaW4gc3lzL2lvY3RsLmggKi8KI3VuZGVmIFNZU19JT0NUTF9IX0hBU19TSU9DR0lGQUREUgoKLyogRGVmaW5lIGlmIHRoZSBUQ1AgdGltZXIgY29uc3RhbnRzIGluIDxuZXRpbmV0L3RjcF90aW1lci5oPiBkZXBlbmQgb24gdGhlCiAgIGludGVnZXIgdmFyaWFibGUgJ2h6Jy4gW0ZyZWVCU0QgNC54XSAqLwojdW5kZWYgVENQVFZfTkVFRFNfSFoKCi8qIERlZmluZSB0byAxIGlmIHlvdSBjYW4gc2FmZWx5IGluY2x1ZGUgYm90aCA8c3lzL3RpbWUuaD4gYW5kIDx0aW1lLmg+LiAqLwojdW5kZWYgVElNRV9XSVRIX1NZU19USU1FCgovKiBXaGVyZSBpcyB0aGUgdW5hbWUgY29tbWFuZCAqLwojdW5kZWYgVU5BTUVQUk9HCgovKiBFbmFibGUgZXh0ZW5zaW9ucyBvbiBBSVggMywgSW50ZXJpeC4gICovCiNpZm5kZWYgX0FMTF9TT1VSQ0UKIyB1bmRlZiBfQUxMX1NPVVJDRQojZW5kaWYKLyogRW5hYmxlIEdOVSBleHRlbnNpb25zIG9uIHN5c3RlbXMgdGhhdCBoYXZlIHRoZW0uICAqLwojaWZuZGVmIF9HTlVfU09VUkNFCiMgdW5kZWYgX0dOVV9TT1VSQ0UKI2VuZGlmCi8qIEVuYWJsZSB0aHJlYWRpbmcgZXh0ZW5zaW9ucyBvbiBTb2xhcmlzLiAgKi8KI2lmbmRlZiBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MKIyB1bmRlZiBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MKI2VuZGlmCi8qIEVuYWJsZSBleHRlbnNpb25zIG9uIEhQIE5vblN0b3AuICAqLwojaWZuZGVmIF9UQU5ERU1fU09VUkNFCiMgdW5kZWYgX1RBTkRFTV9TT1VSQ0UKI2VuZGlmCi8qIEVuYWJsZSBnZW5lcmFsIGV4dGVuc2lvbnMgb24gU29sYXJpcy4gICovCiNpZm5kZWYgX19FWFRFTlNJT05TX18KIyB1bmRlZiBfX0VYVEVOU0lPTlNfXwojZW5kaWYKCgovKiBEZWZpbmUgV09SRFNfQklHRU5ESUFOIHRvIDEgaWYgeW91ciBwcm9jZXNzb3Igc3RvcmVzIHdvcmRzIHdpdGggdGhlIG1vc3QKICAgc2lnbmlmaWNhbnQgYnl0ZSBmaXJzdCAobGlrZSBNb3Rvcm9sYSBhbmQgU1BBUkMsIHVubGlrZSBJbnRlbCkuICovCiNpZiBkZWZpbmVkIEFDX0FQUExFX1VOSVZFUlNBTF9CVUlMRAojIGlmIGRlZmluZWQgX19CSUdfRU5ESUFOX18KIyAgZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCiMgZW5kaWYKI2Vsc2UKIyBpZm5kZWYgV09SRFNfQklHRU5ESUFOCiMgIHVuZGVmIFdPUkRTX0JJR0VORElBTgojIGVuZGlmCiNlbmRpZgoKLyogRGVmaW5lIHRvIDEgaWYgb24gTUlOSVguICovCiN1bmRlZiBfTUlOSVgKCi8qIERlZmluZSB0byAyIGlmIHRoZSBzeXN0ZW0gZG9lcyBub3QgcHJvdmlkZSBQT1NJWC4xIGZlYXR1cmVzIGV4Y2VwdCB3aXRoCiAgIHRoaXMgZGVmaW5lZC4gKi8KI3VuZGVmIF9QT1NJWF8xX1NPVVJDRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IG5lZWQgdG8gaW4gb3JkZXIgZm9yIGBzdGF0JyBhbmQgb3RoZXIgdGhpbmdzIHRvIHdvcmsuICovCiN1bmRlZiBfUE9TSVhfU09VUkNFCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgUlBNIDQuNiBvciBuZXdlciB0byB0dXJuIG9uIGxlZ2FjeSBBUEkgKi8KI3VuZGVmIF9SUE1fNF80X0NPTVBBVAoKLyogRGVmaW5lIGZvciBTb2xhcmlzIDIuNS4xIHNvIHRoZSB1aW50MzJfdCB0eXBlZGVmIGZyb20gPHN5cy9zeW5jaC5oPiwKICAgPHB0aHJlYWQuaD4sIG9yIDxzZW1hcGhvcmUuaD4gaXMgbm90IHVzZWQuIElmIHRoZSB0eXBlZGVmIHdlcmUgYWxsb3dlZCwgdGhlCiAgICNkZWZpbmUgYmVsb3cgd291bGQgY2F1c2UgYSBzeW50YXggZXJyb3IuICovCiN1bmRlZiBfVUlOVDMyX1QKCi8qIERlZmluZSBmb3IgU29sYXJpcyAyLjUuMSBzbyB0aGUgdWludDY0X3QgdHlwZWRlZiBmcm9tIDxzeXMvc3luY2guaD4sCiAgIDxwdGhyZWFkLmg+LCBvciA8c2VtYXBob3JlLmg+IGlzIG5vdCB1c2VkLiBJZiB0aGUgdHlwZWRlZiB3ZXJlIGFsbG93ZWQsIHRoZQogICAjZGVmaW5lIGJlbG93IHdvdWxkIGNhdXNlIGEgc3ludGF4IGVycm9yLiAqLwojdW5kZWYgX1VJTlQ2NF9UCgovKiBEZWZpbmUgZm9yIFNvbGFyaXMgMi41LjEgc28gdGhlIHVpbnQ4X3QgdHlwZWRlZiBmcm9tIDxzeXMvc3luY2guaD4sCiAgIDxwdGhyZWFkLmg+LCBvciA8c2VtYXBob3JlLmg+IGlzIG5vdCB1c2VkLiBJZiB0aGUgdHlwZWRlZiB3ZXJlIGFsbG93ZWQsIHRoZQogICAjZGVmaW5lIGJlbG93IHdvdWxkIGNhdXNlIGEgc3ludGF4IGVycm9yLiAqLwojdW5kZWYgX1VJTlQ4X1QKCi8qIERlZmluZSB0byBlbXB0eSBpZiBgY29uc3QnIGRvZXMgbm90IGNvbmZvcm0gdG8gQU5TSSBDLiAqLwojdW5kZWYgY29uc3QKCi8qIERlZmluZSB0byBgX19pbmxpbmVfXycgb3IgYF9faW5saW5lJyBpZiB0aGF0J3Mgd2hhdCB0aGUgQyBjb21waWxlcgogICBjYWxscyBpdCwgb3IgdG8gbm90aGluZyBpZiAnaW5saW5lJyBpcyBub3Qgc3VwcG9ydGVkIHVuZGVyIGFueSBuYW1lLiAgKi8KI2lmbmRlZiBfX2NwbHVzcGx1cwojdW5kZWYgaW5saW5lCiNlbmRpZgoKLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGEgc2lnbmVkIGludGVnZXIgdHlwZSBvZiB3aWR0aCBleGFjdGx5IDE2IGJpdHMgaWYKICAgc3VjaCBhIHR5cGUgZXhpc3RzIGFuZCB0aGUgc3RhbmRhcmQgaW5jbHVkZXMgZG8gbm90IGRlZmluZSBpdC4gKi8KI3VuZGVmIGludDE2X3QKCi8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBhIHNpZ25lZCBpbnRlZ2VyIHR5cGUgb2Ygd2lkdGggZXhhY3RseSAzMiBiaXRzIGlmCiAgIHN1Y2ggYSB0eXBlIGV4aXN0cyBhbmQgdGhlIHN0YW5kYXJkIGluY2x1ZGVzIGRvIG5vdCBkZWZpbmUgaXQuICovCiN1bmRlZiBpbnQzMl90CgovKiBEZWZpbmUgdG8gdGhlIHR5cGUgb2YgYSBzaWduZWQgaW50ZWdlciB0eXBlIG9mIHdpZHRoIGV4YWN0bHkgNjQgYml0cyBpZgogICBzdWNoIGEgdHlwZSBleGlzdHMgYW5kIHRoZSBzdGFuZGFyZCBpbmNsdWRlcyBkbyBub3QgZGVmaW5lIGl0LiAqLwojdW5kZWYgaW50NjRfdAoKLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGEgc2lnbmVkIGludGVnZXIgdHlwZSBvZiB3aWR0aCBleGFjdGx5IDggYml0cyBpZiBzdWNoCiAgIGEgdHlwZSBleGlzdHMgYW5kIHRoZSBzdGFuZGFyZCBpbmNsdWRlcyBkbyBub3QgZGVmaW5lIGl0LiAqLwojdW5kZWYgaW50OF90CgovKiBEZWZpbmUgdG8gdGhlIHdpZGVzdCBzaWduZWQgaW50ZWdlciB0eXBlIGlmIDxzdGRpbnQuaD4gYW5kIDxpbnR0eXBlcy5oPiBkbwogICBub3QgZGVmaW5lLiAqLwojdW5kZWYgaW50bWF4X3QKCi8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBhIHNpZ25lZCBpbnRlZ2VyIHR5cGUgd2lkZSBlbm91Z2ggdG8gaG9sZCBhIHBvaW50ZXIsCiAgIGlmIHN1Y2ggYSB0eXBlIGV4aXN0cywgYW5kIGlmIHRoZSBzeXN0ZW0gZG9lcyBub3QgZGVmaW5lIGl0LiAqLwojdW5kZWYgaW50cHRyX3QKCi8qIERlZmluZSB0byBgbG9uZyBpbnQnIGlmIDxzeXMvdHlwZXMuaD4gZG9lcyBub3QgZGVmaW5lLiAqLwojdW5kZWYgb2ZmX3QKCi8qIERlZmluZSB0byBgaW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXMgbm90IGRlZmluZS4gKi8KI3VuZGVmIHBpZF90CgovKiBEZWZpbmUgdG8gYHVuc2lnbmVkIGludCcgaWYgPHN5cy90eXBlcy5oPiBkb2VzIG5vdCBkZWZpbmUuICovCiN1bmRlZiBzaXplX3QKCi8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBhbiB1bnNpZ25lZCBpbnRlZ2VyIHR5cGUgb2Ygd2lkdGggZXhhY3RseSAxNiBiaXRzIGlmCiAgIHN1Y2ggYSB0eXBlIGV4aXN0cyBhbmQgdGhlIHN0YW5kYXJkIGluY2x1ZGVzIGRvIG5vdCBkZWZpbmUgaXQuICovCiN1bmRlZiB1aW50MTZfdAoKLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGFuIHVuc2lnbmVkIGludGVnZXIgdHlwZSBvZiB3aWR0aCBleGFjdGx5IDMyIGJpdHMgaWYKICAgc3VjaCBhIHR5cGUgZXhpc3RzIGFuZCB0aGUgc3RhbmRhcmQgaW5jbHVkZXMgZG8gbm90IGRlZmluZSBpdC4gKi8KI3VuZGVmIHVpbnQzMl90CgovKiBEZWZpbmUgdG8gdGhlIHR5cGUgb2YgYW4gdW5zaWduZWQgaW50ZWdlciB0eXBlIG9mIHdpZHRoIGV4YWN0bHkgNjQgYml0cyBpZgogICBzdWNoIGEgdHlwZSBleGlzdHMgYW5kIHRoZSBzdGFuZGFyZCBpbmNsdWRlcyBkbyBub3QgZGVmaW5lIGl0LiAqLwojdW5kZWYgdWludDY0X3QKCi8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBhbiB1bnNpZ25lZCBpbnRlZ2VyIHR5cGUgb2Ygd2lkdGggZXhhY3RseSA4IGJpdHMgaWYKICAgc3VjaCBhIHR5cGUgZXhpc3RzIGFuZCB0aGUgc3RhbmRhcmQgaW5jbHVkZXMgZG8gbm90IGRlZmluZSBpdC4gKi8KI3VuZGVmIHVpbnQ4X3QKCi8qIERlZmluZSB0byB0aGUgd2lkZXN0IHVuc2lnbmVkIGludGVnZXIgdHlwZSBpZiA8c3RkaW50Lmg+IGFuZCA8aW50dHlwZXMuaD4KICAgZG8gbm90IGRlZmluZS4gKi8KI3VuZGVmIHVpbnRtYXhfdAoKLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGFuIHVuc2lnbmVkIGludGVnZXIgdHlwZSB3aWRlIGVub3VnaCB0byBob2xkIGEKICAgcG9pbnRlciwgaWYgc3VjaCBhIHR5cGUgZXhpc3RzLCBhbmQgaWYgdGhlIHN5c3RlbSBkb2VzIG5vdCBkZWZpbmUgaXQuICovCiN1bmRlZiB1aW50cHRyX3QKCi8qIGVuZCBvZiBkZWZpbml0aW9ucyBhZGRlZCBieSBjb25maWd1cmUgb24tdGhlLWZseSAqLwoKLyogSWYgeW91IGhhdmUgb3BlbnNzbCAwLjkuNyBvciBhYm92ZSwgeW91IGxpa2VseSBoYXZlIEFFUyBzdXBwb3J0LiAqLwojdW5kZWYgTkVUU05NUF9VU0VfT1BFTlNTTAojaWYgKGRlZmluZWQoTkVUU05NUF9VU0VfT1BFTlNTTCkgJiYgZGVmaW5lZChIQVZFX09QRU5TU0xfQUVTX0gpICYmIGRlZmluZWQoSEFWRV9BRVNfQ0ZCMTI4X0VOQ1JZUFQpKSB8fCBkZWZpbmVkKE5FVFNOTVBfVVNFX0lOVEVSTkFMX0NSWVBUTykKI2RlZmluZSBIQVZFX0FFUyAxCiNlbmRpZgoKLyogZGVmaW5lIHJhbmRvbSBmdW5jdGlvbnMgKi8KCiNpZm5kZWYgSEFWRV9SQU5ET00KI2lmZGVmIEhBVkVfTFJBTkQ0OAojZGVmaW5lIHJhbmRvbSBscmFuZDQ4CiNkZWZpbmUgc3JhbmRvbShzKSBzcmFuZDQ4KHMpCiNlbHNlCiNpZmRlZiBIQVZFX1JBTkQKI2RlZmluZSByYW5kb20gcmFuZAojZGVmaW5lIHNyYW5kb20ocykgc3JhbmQocykKI2VuZGlmCiNlbmRpZgojZW5kaWYKCi8qIGRlZmluZSBzaWduYWwgaWYgRE5FICovCgojaWZuZGVmIEhBVkVfU0lHTkFMCiNpZmRlZiBIQVZFX1NJR1NFVAojZGVmaW5lIHNpZ25hbChhLGIpIHNpZ3NldChhLGIpCiNlbmRpZgojZW5kaWYKCiNpZmRlZiBIQVZFX0RNQUxMT0NfSAojZGVmaW5lIERNQUxMT0NfRlVOQ19DSEVDSwojZW5kaWYKCiNlbmRpZiAvKiBORVRTTk1QX05PX0FVVE9DT05GX0RFRklOSVRJT05TICovCgoKCgovKiAqKioqKioqKiogTkVUU05NUF9NQVJLX0JFR0lOX0NMRUFOX05BTUVTUEFDRSAqKioqKioqKiogKi8KLyogCiAqIHB1dCBhbGwgbmV3IG5ldC1zbm1wLXNwZWNpZmljIGRlZmluaXRpb25zIGhlcmUKICoKICogYWxsIGRlZmluaXRpb25zIE1VU1QgaGF2ZSBhIE5FVFNOTVBfIHByZWZpeAogKgogKi8KCi8qIERlZmF1bHQgKFNOTVApIHZlcnNpb24gbnVtYmVyIGZvciB0aGUgdG9vbHMgdG8gdXNlICovCiNkZWZpbmUgTkVUU05NUF9ERUZBVUxUX1NOTVBfVkVSU0lPTiAzCgovKiBkb24ndCBjaGFuZ2UgdGhlc2UgdmFsdWVzISAqLwojZGVmaW5lIE5FVFNOTVBfU05NUFYxICAgICAgMHhBQUFBICAgICAgIC8qIHJlYWRhYmxlIGJ5IGFueW9uZSAqLwojZGVmaW5lIE5FVFNOTVBfU05NUFYyQU5ZICAgMHhBMDAwICAgICAgIC8qIFYyIEFueSB0eXBlIChpbmNsdWRlcyBOb0F1dGgpICovCiNkZWZpbmUgTkVUU05NUF9TTk1QVjJBVVRIICAweDgwMDAgICAgICAgLyogVjIgQXV0aGVudGljYXRlZCByZXF1ZXN0cyBvbmx5ICovCgovKiBkZWZhdWx0IGxpc3Qgb2YgbWlicyB0byBsb2FkICovCiNkZWZpbmUgTkVUU05NUF9ERUZBVUxUX01JQlMgIklQLU1JQjpJRi1NSUI6VENQLU1JQjpVRFAtTUlCOlNOTVB2Mi1NSUI6UkZDMTIxMy1NSUIiCgovKiBkZWJ1Z2dpbmcgc3R1ZmYgKi8KLyogaWYgZGVmaW5lZCwgd2Ugb3B0aW1pemUgdGhlIGNvZGUgdG8gZXhjbHVkZSBhbGwgZGVidWdnaW5nIGNhbGxzLiAqLwojdW5kZWYgTkVUU05NUF9OT19ERUJVR0dJTkcKLyogaWdub3JlIHRoZSAtRCBmbGFnIGFuZCBhbHdheXMgcHJpbnQgZGVidWdnaW5nIGluZm9ybWF0aW9uICovCiNkZWZpbmUgTkVUU05NUF9BTFdBWVNfREVCVUcgMAoKLyogcmV2ZXJzZSBlbmNvZGluZyBCRVIgcGFja2V0cyBpcyBib3RoIGZhc3RlciBhbmQgbW9yZSBlZmZpY2llbnQgaW4gc3BhY2UuICovCiNkZWZpbmUgTkVUU05NUF9VU0VfUkVWRVJTRV9BU05FTkNPRElORyAgICAgICAxCiNkZWZpbmUgTkVUU05NUF9ERUZBVUxUX0FTTkVOQ09ESU5HX0RJUkVDVElPTiAxIC8qIDEgPSByZXZlcnNlLCAwID0gZm9yd2FyZHMgKi8KCi8qIFBFUlNJU1RFTlRfRElSRUNUT1JZOiBJZiBkZWZpbmVkLCB0aGUgbGlicmFyeSBpcyBjYXBhYmlsZSBvZiBzYXZpbmcKICAgcGVyc2lzYW50IGluZm9ybWF0aW9uIHRvIHRoaXMgZGlyZWN0b3J5IGluIHRoZSBmb3JtIG9mIGNvbmZpZ3VyYXRpb24KICAgbGluZXM6IFBFUlNJU1RFTlRfRElSRUNUT1JZL05BTUUucGVyc2lzdGVudC5jb25mICovCiNkZWZpbmUgTkVUU05NUF9QRVJTSVNURU5UX0RJUkVDVE9SWSAiL3Zhci9zbm1wIgoKLyogQUdFTlRfRElSRUNUT1JZX01PREU6IHRoZSBtb2RlIHRoZSBhZ2VudHMgc2hvdWxkIHVzZSB0byBjcmVhdGUKICAgZGlyZWN0b3JpZXMgd2l0aC4gU2luY2UgdGhlIGRhdGEgc3RvcmVkIGhlcmUgaXMgcHJvYmFibHkgc2Vuc2l0aXZlLCBpdAogICBwcm9iYWJseSBzaG91bGQgYmUgcmVhZC1vbmx5IGJ5IHJvb3QvYWRtaW5pc3RyYXRvci4gKi8KI2RlZmluZSBORVRTTk1QX0FHRU5UX0RJUkVDVE9SWV9NT0RFIDA3MDAKCi8qIE1BWF9QRVJTSVNURU5UX0JBQ0tVUFM6CiAqICAgVGhlIG1heGltdW0gbnVtYmVyIG9mIHBlcnNpc3RlbnQgYmFja3VwcyB0aGUgbGlicmFyeSB3aWxsIHRyeSB0bwogKiAgIHJlYWQgZnJvbSB0aGUgcGVyc2lzdGVudCBjYWNoZSBkaXJlY3RvcnkuICBJZiBhbiBhcHBsaWNhdGlvbiBmYWlscyB0bwogKiAgIGNsb3NlIGRvd24gc3VjY2Vzc2Z1bGx5IG1vcmUgdGhhbiB0aGlzIG51bWJlciBvZiB0aW1lcywgZGF0YSB3aWxsIGJlIGxvc3QuCiAqLwojZGVmaW5lIE5FVFNOTVBfTUFYX1BFUlNJU1RFTlRfQkFDS1VQUyAxMAoKLyogZGVmaW5lIHRoZSBzeXN0ZW0gdHlwZSBpbmNsdWRlIGZpbGUgaGVyZSAqLwojZGVmaW5lIE5FVFNOTVBfU1lTVEVNX0lOQ0xVREVfRklMRSA8bmV0LXNubXAvc3lzdGVtL2dlbmVyaWMuaD4KCi8qIGRlZmluZSB0aGUgbWFjaGluZSAoY3B1KSB0eXBlIGluY2x1ZGUgZmlsZSBoZXJlICovCiNkZWZpbmUgTkVUU05NUF9NQUNISU5FX0lOQ0xVREVfRklMRSA8bmV0LXNubXAvbWFjaGluZS9nZW5lcmljLmg+CgovKiBkZWZpbmUgdGhlIFVEUCBidWZmZXIgZGVmYXVsdHMgdW5kZWZpbmVkIG1lYW5zIHVzZSB0aGUgT1MgYnVmZmVycwogKiBieSBkZWZhdWx0ICovCiN1bmRlZiBORVRTTk1QX0RFRkFVTFRfU0VSVkVSX1NFTkRfQlVGCiN1bmRlZiBORVRTTk1QX0RFRkFVTFRfU0VSVkVSX1JFQ1ZfQlVGCiN1bmRlZiBORVRTTk1QX0RFRkFVTFRfQ0xJRU5UX1NFTkRfQlVGCiN1bmRlZiBORVRTTk1QX0RFRkFVTFRfQ0xJRU5UX1JFQ1ZfQlVGCgovKiBuZXQtc25tcCdzIG1ham9yIHBhdGggbmFtZXMgKi8KI3VuZGVmIFNOTVBMSUJQQVRICiN1bmRlZiBTTk1QU0hBUkVQQVRICiN1bmRlZiBTTk1QQ09ORlBBVEgKI3VuZGVmIFNOTVBETE1PRFBBVEgKCi8qIE5FVFNOTVBfTE9HRklMRTogIElmIGRlZmluZWQgaXQgY2xvc2VzIHN0ZG91dC9lcnIvaW4gYW5kIG9wZW5zIHRoaXMgaW4gCiAgIG91dC9lcnIncyBwbGFjZS4gIChzdGRpbiBpcyBjbG9zZWQgc28gdGhhdCBzaCBzY3JpcHRzIHdvbid0IHdhaXQgZm9yIGl0KSAqLwojdW5kZWYgTkVUU05NUF9MT0dGSUxFCgovKiBkZWZhdWx0IHN5c3RlbSBjb250YWN0ICovCiN1bmRlZiBORVRTTk1QX1NZU19DT05UQUNUCgovKiBzeXN0ZW0gbG9jYXRpb24gKi8KI3VuZGVmIE5FVFNOTVBfU1lTX0xPQwoKLyogVXNlIGxpYndyYXAgdG8gaGFuZGxlIGFsbG93L2RlbnkgaG9zdHM/ICovCiN1bmRlZiBORVRTTk1QX1VTRV9MSUJXUkFQCgovKiBNaWItMiB0cmVlIEluZm8gKi8KLyogVGhlc2UgYXJlIHRoZSBzeXN0ZW0gaW5mb3JtYXRpb24gdmFyaWFibGVzLiAqLwoKI2RlZmluZSBORVRTTk1QX1ZFUlNfREVTQyAgICJ1bmtub3duIiAgICAgICAgICAgICAvKiBvdmVycmlkZGVuIGF0IHJ1biB0aW1lICovCiNkZWZpbmUgTkVUU05NUF9TWVNfTkFNRSAgICAidW5rbm93biIgICAgICAgICAgICAgLyogb3ZlcnJpZGRlbiBhdCBydW4gdGltZSAqLwoKLyogY29tbWVudCBvdXQgdGhlIHNlY29uZCBkZWZpbmUgdG8gdHVybiBvZmYgZnVuY3Rpb25hbGl0eSBmb3IgYW55IG9mCiAgIHRoZXNlOiAoU2VlIFJFQURNRSBmb3IgZGV0YWlscykgKi8KCi8qICAgcHJvYyBQUk9DRVNTTkFNRSBbTUFYXSBbTUlOXSAqLwojZGVmaW5lIE5FVFNOTVBfUFJPQ01JQk5VTSAyCgovKiAgIGV4ZWMvc2hlbGwgTkFNRSBDT01NQU5EICAgICAgKi8KI2RlZmluZSBORVRTTk1QX1NIRUxMTUlCTlVNIDgKCi8qICAgc3dhcCBNSU4gICAgICAgICAgICAgICAgICAgICAqLwojZGVmaW5lIE5FVFNOTVBfTUVNTUlCTlVNIDQKCi8qICAgZGlzayBESVNLIE1JTlNJWkUgICAgICAgICAgICAqLwojZGVmaW5lIE5FVFNOTVBfRElTS01JQk5VTSA5CgovKiAgIGxvYWQgMSA1IDE1ICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBORVRTTk1QX0xPQURBVkVNSUJOVU0gMTAKCi8qIHdoaWNoIHZlcnNpb24gYXJlIHlvdSB1c2luZz8gVGhpcyBtaWJsb2Mgd2lsbCB0ZWxsIHlvdSAqLwojZGVmaW5lIE5FVFNOTVBfVkVSU0lPTk1JQk5VTSAxMDAKCi8qIFJlcG9ydHMgZXJyb3JzIHRoZSBhZ2VudCBydW5zIGludG8gKi8KLyogKHR5cGljYWxseSBpdHMgImNhbid0IGZvcmssIG5vIG1lbSIgcHJvYmxlbXMpICovCiNkZWZpbmUgTkVUU05NUF9FUlJPUk1JQk5VTSAxMDEKCi8qIFRoZSBzdWIgaWQgb2YgRVhURU5TSUJMRU1JQiByZXR1cm5lZCB0byBxdWVyaWVzIG9mCiAgIC5pc28ub3JnLmRvZC5pbnRlcm5ldC5tZ210Lm1pYi0yLnN5c3RlbS5zeXNPYmplY3RJRC4wICovCiNkZWZpbmUgTkVUU05NUF9BR0VOVElEIDI1MAoKLyogVGhpcyBJRCBpcyByZXR1cm5lZCBhZnRlciB0aGUgQUdFTlRJRCBhYm92ZS4gIElFLCB0aGUgcmVzdWx0aW5nCiAgIHZhbHVlIHJldHVybmVkIGJ5IGEgcXVlcnkgdG8gc3lzT2JqZWN0SUQgaXMKICAgRVhURU5TSUJMRU1JQi5BR0VOVElELj8/Pywgd2hlcmUgPz8/IGlzIGRlZmluZWQgYmVsb3cgYnkgT1NUWVBFICovCgojZGVmaW5lIE5FVFNOTVBfSFBVWDlJRCAxCiNkZWZpbmUgTkVUU05NUF9TVU5PUzRJRCAyIAojZGVmaW5lIE5FVFNOTVBfU09MQVJJU0lEIDMKI2RlZmluZSBORVRTTk1QX09TRklEIDQKI2RlZmluZSBORVRTTk1QX1VMVFJJWElEIDUKI2RlZmluZSBORVRTTk1QX0hQVVgxMElEIDYKI2RlZmluZSBORVRTTk1QX05FVEJTRDFJRCA3CiNkZWZpbmUgTkVUU05NUF9GUkVFQlNESUQgOAojZGVmaW5lIE5FVFNOTVBfSVJJWElEIDkKI2RlZmluZSBORVRTTk1QX0xJTlVYSUQgMTAKI2RlZmluZSBORVRTTk1QX0JTRElJRCAxMQojZGVmaW5lIE5FVFNOTVBfT1BFTkJTRElEIDEyCiNkZWZpbmUgTkVUU05NUF9XSU4zMklEIDEzCiNkZWZpbmUgTkVUU05NUF9IUFVYMTFJRCAxNAojZGVmaW5lIE5FVFNOTVBfQUlYSUQgMTUKI2RlZmluZSBORVRTTk1QX01BQ09TWElEIDE2CiNkZWZpbmUgTkVUU05NUF9EUkFHT05GTFlJRCAxNwojZGVmaW5lIE5FVFNOTVBfVU5LTk9XTklEIDI1NQoKI2lmZGVmIGhwdXg5CiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9IUFVYOUlECiNlbmRpZgojaWZkZWYgaHB1eDEwCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9IUFVYMTBJRAojZW5kaWYKI2lmZGVmIGhwdXgxMQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfSFBVWDExSUQKI2VuZGlmCiNpZmRlZiBzdW5vczQKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX1NVTk9TNElECiNlbmRpZgojaWZkZWYgc29sYXJpczIKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX1NPTEFSSVNJRAojZW5kaWYKI2lmIGRlZmluZWQob3NmMykgfHwgZGVmaW5lZChvc2Y0KSB8fCBkZWZpbmVkKG9zZjUpCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9PU0ZJRAojZW5kaWYKI2lmZGVmIHVsdHJpeDQKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX1VMVFJJWElECiNlbmRpZgojaWYgZGVmaW5lZChuZXRic2QxKSB8fCBkZWZpbmVkKG5ldGJzZDIpCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9ORVRCU0QxSUQKI2VuZGlmCiNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfRlJFRUJTRElECiNlbmRpZgojaWYgZGVmaW5lZChfX0RyYWdvbkZseV9fKQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfRFJBR09ORkxZSUQKI2VuZGlmCiNpZiBkZWZpbmVkKGlyaXg2KSB8fCBkZWZpbmVkKGlyaXg1KQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfSVJJWElECiNlbmRpZgojaWZkZWYgbGludXgKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0xJTlVYSUQKI2VuZGlmCiNpZiBkZWZpbmVkKGJzZGkyKSB8fCBkZWZpbmVkKGJzZGkzKSB8fCBkZWZpbmVkKGJzZGk0KQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfQlNESUlECiNlbmRpZgojaWYgZGVmaW5lZChvcGVuYnNkKQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfT1BFTkJTRElECiNlbmRpZgojaWZkZWYgV0lOMzIKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX1dJTjMySUQKI2VuZGlmCiNpZiBkZWZpbmVkKGFpeDMpIHx8IGRlZmluZWQoYWl4NCkgfHwgZGVmaW5lZChhaXg1KSB8fCBkZWZpbmVkKGFpeDYpIHx8IGRlZmluZWQoYWl4NykKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0FJWElECiNlbmRpZgojaWYgZGVmaW5lZChkYXJ3aW4pICYmIChkYXJ3aW4gPj0gOCkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX01BQ09TWElECiNlbmRpZgovKiB1bmtub3duICovCiNpZm5kZWYgTkVUU05NUF9PU1RZUEUKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX1VOS05PV05JRAojZW5kaWYKCi8qIFRoZSBlbnRlcnByaXNlIG51bWJlciBoYXMgYmVlbiBhc3NpZ25lZCBieSB0aGUgSUFOQSBncm91cC4gICAqLwovKiBPcHRpb25hbGx5LCB0aGlzIG1heSBwb2ludCB0byB0aGUgbG9jYXRpb24gaW4gdGhlIHRyZWUgeW91ciAgKi8KLyogY29tcGFueS9vcmdhbml6YXRpb24gaGFzIGJlZW4gYWxsb2NhdGVkLiAgICAgICAgICAgICAgICAgICAgICovCi8qIFRoZSBhc3NpZ25lZCBlbnRlcnByaXNlIG51bWJlciBmb3IgdGhlIE5FVF9TTk1QIE1JQiBtb2R1bGVzLiAqLwojZGVmaW5lIE5FVFNOTVBfRU5URVJQUklTRV9PSUQJCQk4MDcyCiNkZWZpbmUgTkVUU05NUF9FTlRFUlBSSVNFX01JQgkJCTEsMyw2LDEsNCwxLDgwNzIKI2RlZmluZSBORVRTTk1QX0VOVEVSUFJJU0VfRE9UX01JQgkJMS4zLjYuMS40LjEuODA3MgojZGVmaW5lIE5FVFNOTVBfRU5URVJQUklTRV9ET1RfTUlCX0xFTkdUSAk3CgovKiBUaGUgYXNzaWduZWQgZW50ZXJwcmlzZSBudW1iZXIgZm9yIHN5c09iamVjdElELiAqLwojZGVmaW5lIE5FVFNOTVBfU1lTVEVNX01JQgkJMSwzLDYsMSw0LDEsODA3MiwzLDIsTkVUU05NUF9PU1RZUEUKI2RlZmluZSBORVRTTk1QX1NZU1RFTV9ET1RfTUlCCQkxLjMuNi4xLjQuMS44MDcyLjMuMi5ORVRTTk1QX09TVFlQRQojZGVmaW5lIE5FVFNOTVBfU1lTVEVNX0RPVF9NSUJfTEVOR1RICTEwCgovKiBUaGUgYXNzaWduZWQgZW50ZXJwcmlzZSBudW1iZXIgZm9yIG5vdGlmaWNhdGlvbnMuICovCiNkZWZpbmUgTkVUU05NUF9OT1RJRklDQVRJT05fTUlCCQkxLDMsNiwxLDQsMSw4MDcyLDQKI2RlZmluZSBORVRTTk1QX05PVElGSUNBVElPTl9ET1RfTUlCCQkxLjMuNi4xLjQuMS44MDcyLjQKI2RlZmluZSBORVRTTk1QX05PVElGSUNBVElPTl9ET1RfTUlCX0xFTkdUSAk4CgovKiB0aGlzIGlzIHRoZSBsb2NhdGlvbiBvZiB0aGUgdWNkYXZpcyBtaWIgdHJlZS4gIEl0IHNob3VsZG4ndCBiZQogICBjaGFuZ2VkLCBhcyB0aGUgcGxhY2VzIGl0IGlzIHVzZWQgYXJlIGV4cGVjdGVkIHRvIGJlIGNvbnN0YW50CiAgIHZhbHVlcyBvciBhcmUgZGlyZWN0bHkgdGllZCB0byB0aGUgVUNELVNOTVAtTUlCLiAqLwojZGVmaW5lIE5FVFNOTVBfVUNEQVZJU19PSUQJCTIwMjEKI2RlZmluZSBORVRTTk1QX1VDREFWSVNfTUlCCQkxLDMsNiwxLDQsMSwyMDIxCiNkZWZpbmUgTkVUU05NUF9VQ0RBVklTX0RPVF9NSUIJCTEuMy42LjEuNC4xLjIwMjEKI2RlZmluZSBORVRTTk1QX1VDREFWSVNfRE9UX01JQl9MRU5HVEgJNwoKLyogaG93IGxvbmcgdG8gd2FpdCAoc2Vjb25kcykgZm9yIGVycm9yIHF1ZXJ5cyBiZWZvcmUgcmVzZXRpbmcgdGhlIGVycm9yIHRyYXAuKi8KI2RlZmluZSBORVRTTk1QX0VSUk9SVElNRUxFTkdUSCA2MDAgCgovKiBFeGVjIGNvbW1hbmQgdG8gZml4IFBST0MgcHJvYmxlbXMgKi8KLyogJXMgd2lsbCBiZSByZXBsYWNlZCBieSB0aGUgcHJvY2VzcyBuYW1lIGluIGVycm9yICovCgovKiAjZGVmaW5lIE5FVFNOTVBfUFJPQ0ZJWENNRCAiL3Vzci9iaW4vcGVybCAvbG9jYWwvc2NyaXB0cy9maXhwcm9jICVzIiAqLwoKLyogRXhlYyBjb21tYW5kIHRvIGZpeCBFWEVDIHByb2JsZW1zICovCi8qICVzIHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlIGV4ZWMvc2NyaXB0IG5hbWUgaW4gZXJyb3IgKi8KCi8qICNkZWZpbmUgTkVUU05NUF9FWEVDRklYQ01EICIvdXNyL2Jpbi9wZXJsIC9sb2NhbC9zY3JpcHRzL2ZpeHByb2MgJXMiICovCgovKiBTaG91bGQgZXhlYyBvdXRwdXQgQ2FzaGluZyBiZSB1c2VkIChzcGVlZHMgdXAgdGhpbmdzIGdyZWF0bHkpLCBhbmQKICAgaWYgc28sIEFmdGVyIGhvdyBtYW55IHNlY29uZHMgc2hvdWxkIHRoZSBjYWNoZSByZS1uZXdlZD8gIE5vdGU6CiAgIERvbid0IGRlZmluZSBDQVNIRVRJTUUgdG8gZGlzYWJsZSBjYXNoaW5nIGNvbXBsZXRlbHkgKi8KCiNkZWZpbmUgTkVUU05NUF9FWENBQ0hFVElNRSAzMAojZGVmaW5lIE5FVFNOTVBfQ0FDSEVGSUxFICIuc25tcC1leGVjLWNhY2hlIgojZGVmaW5lIE5FVFNOTVBfTUFYQ0FDSEVTSVpFICgxNTAwKjgwKSAgIC8qIHJvdWdobHkgMTUwMCBsaW5lcyBtYXggKi8KCi8qIG1pc2MgZGVmYXVsdHMgKi8KCi8qIGRlZmF1bHQgb2YgMTAwIG1lZyBtaW5pbXVtIGlmIHRoZSBtaW5pbXVtIHNpemUgaXMgbm90IHNwZWNpZmllZCBpbgogICB0aGUgY29uZmlnIGZpbGUgKi8KI2RlZmluZSBORVRTTk1QX0RFRkRJU0tNSU5JTVVNU1BBQ0UgMTAwMDAwCgovKiBkZWZhdWx0IG1heGltdW0gbG9hZCBhdmVyYWdlIGJlZm9yZSBlcnJvciAqLwojZGVmaW5lIE5FVFNOTVBfREVGTUFYTE9BREFWRSAxMi4wCgovKiBtYXggdGltZXMgdG8gbG9vcCByZWFkaW5nIG91dHB1dCBmcm9tIGV4ZWNzLiAqLwovKiBCZWNhdXNlIG9mIHNsZWVwKDEpcywgdGhpcyB3aWxsIGFsc28gYmUgdGltZSB0byB3YWl0IChpbiBzZWNvbmRzKSBmb3IgZXhlYwogICB0byBmaW5pc2ggKi8KI2RlZmluZSBORVRTTk1QX01BWFJFQURDT1VOVCAxMDAKCi8qIFNldCBpZiBzbm1wZ2V0cyBzaG91bGQgYmxvY2sgYW5kIG5ldmVyIHRpbWVvdXQgKi8KLyogVGhlIG9yaWdpbmFsIENNVSBjb2RlIGhhZCB0aGlzIGhhcmRjb2RlZCBhcyA9IDEgKi8KI2RlZmluZSBORVRTTk1QX1NOTVBCTE9DSyAxCgovKiBIb3cgbG9uZyB0byB3YWl0IGJlZm9yZSByZXN0YXJ0aW5nIHRoZSBhZ2VudCBhZnRlciBhIHNubXBzZXQgdG8KICAgRVhURU5TSUJMRU1JQi5WRVJTSU9OTUlCTlVNLlZFUlJFU1RBUlRBR0VOVC4gIFRoaXMgaXMKICAgbmVjZXNzYXJ5IHRvIGZpbmlzaCB0aGUgc25tcHNldCByZXBseSBiZWZvcmUgcmVzdGFydGluZy4gKi8KI2RlZmluZSBORVRTTk1QX1JFU1RBUlRTTEVFUCA1CgovKiBVTmRlZmluZSB0byBhbGxvdyBzcGVjaWZ5aW5nIHplcm8tbGVuZ3RoIGNvbW11bml0eSBzdHJpbmcgKi8KLyogI2RlZmluZSBORVRTTk1QX05PX1pFUk9MRU5HVEhfQ09NTVVOSVRZIDEgKi8KCi8qIE51bWJlciBvZiBjb21tdW5pdHkgc3RyaW5ncyB0byBzdG9yZSAqLwojZGVmaW5lIE5FVFNOTVBfTlVNX0NPTU1VTklUSUVTCTUKCi8qIGludGVybmFsIGRlZmluZSAqLwojZGVmaW5lIE5FVFNOTVBfTEFTVEZJRUxEIC0xCgovKiAgUGx1Z2dhYmxlIHRyYW5zcG9ydHMuICAqLwoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgVURQL0lQIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfVURQX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgImNhbGxiYWNrIiB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgVENQL0lQIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9UQ1BfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBVbml4IHRyYW5zcG9ydCBkb21haW4KICAgIChhLmsuYS4gImxvY2FsIElQQyIpIGlzIGF2YWlsYWJsZS4gICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VTklYX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgQUFMNSBQVkMgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0FBTDVQVkNfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBJUFggdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0lQWF9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFVEUC9JUHY2IHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VRFBJUFY2X0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgVENQL0lQdjYgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RDUElQVjZfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBUTFMgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9UTFNCQVNFX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgQWxpYXMgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9BTElBU19ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFNTSCB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1NTSF9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIERUTFMvVURQIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfRFRMU1VEUF9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFRMUy9UQ1AgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9UTFNUQ1BfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHN0ZGluL291dCB0cmFuc3BvcnQgZG9tYWluIGlzIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfU1REX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgSVB2NEJhc2UgdHJhbnNwb3J0IGRvbWFpbiBpcyBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0lQVjRCQVNFX0RPTUFJTgoKLyogZGVmaW5lIHRoaXMgaWYgdGhlIFVTTSBzZWN1cml0eSBtb2R1bGUgaXMgYXZhaWxhYmxlICovCiN1bmRlZiBORVRTTk1QX1NFQ01PRF9VU00KCi8qIGRlZmluZSB0aGlzIGlmIHRoZSBLU00gKGtlcmJlcm9zIGJhc2VkIHNubXApIHNlY3VyaXR5IG1vZHVsZSBpcyBhdmFpbGFibGUgKi8KI3VuZGVmIE5FVFNOTVBfU0VDTU9EX0tTTQoKLyogZGVmaW5lIHRoaXMgaWYgdGhlIGxvY2FsIHNlY3VyaXR5IG1vZHVsZSBpcyBhdmFpbGFibGUgKi8KI3VuZGVmIE5FVFNOTVBfU0VDTU9EX0xPQ0FMU00KCi8qIGRlZmluZSBpZiBjb25maWd1cmVkIGFzIGEgIm1pbmktYWdlbnQiICovCiN1bmRlZiBORVRTTk1QX01JTklfQUdFTlQKCi8qIHRoaXMgaXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBuZXQtc25tcCBtaWIgdHJlZS4gIEl0IHNob3VsZG4ndCBiZQogICBjaGFuZ2VkLCBhcyB0aGUgcGxhY2VzIGl0IGlzIHVzZWQgYXJlIGV4cGVjdGVkIHRvIGJlIGNvbnN0YW50CiAgIHZhbHVlcyBvciBhcmUgZGlyZWN0bHkgdGllZCB0byB0aGUgVUNELVNOTVAtTUlCLiAqLwojZGVmaW5lIE5FVFNOTVBfT0lECQk4MDcyCiNkZWZpbmUgTkVUU05NUF9NSUIJCTEsMyw2LDEsNCwxLDgwNzIKI2RlZmluZSBORVRTTk1QX0RPVF9NSUIJCTEuMy42LjEuNC4xLjgwNzIKI2RlZmluZSBORVRTTk1QX0RPVF9NSUJfTEVOR1RICTcKCi8qIHBhdHRlcm4gZm9yIHRlbXBvcmFyeSBmaWxlIG5hbWVzICovCiNkZWZpbmUgTkVUU05NUF9URU1QX0ZJTEVfUEFUVEVSTiAiL3RtcC9zbm1wZFhYWFhYWCIKCi8qCiAqIHRoaXMgbXVzdCBiZSBiZWZvcmUgdGhlIHN5c3RlbS9tYWNoaW5lIGluY2x1ZGVzLCB0byBhbGxvdyB0aGVtIHRvCiAqIG92ZXJyaWRlIGFuZCB0dXJuIG9mZiBpbmxpbmluZy4gVG8gZG8gc28sIHRoZXkgc2hvdWxkIGRvIHRoZQogKiBmb2xsb3dpbmc6CiAqCiAqICAgICN1bmRlZiBORVRTTk1QX0VOQUJMRV9JTkxJTkUKICogICAgI2RlZmluZSBORVRTTk1QX0VOQUJMRV9JTkxJTkUgMAogKgogKiBBIHVzZXIgaGF2aW5nIHByb2JsZW1zIHdpdGggdGhlaXIgY29tcGlsZXIgY2FuIGFsc28gdHVybiBvZmYKICogdGhlIHVzZSBvZiBpbmxpbmUgYnkgZGVmaW5pbmcgTkVUU05NUF9OT19JTkxJTkUgdmlhIHRoZWlyIGNmbGFnczoKICoKICogICAgLURORVRTTk1QX05PX0lOTElORQogKgogKiBIZWFkZXIgYW5kIHNvdXJjZSBmaWxlcyBzaG91bGQgb25seSB0ZXN0IGFnYWluc3QgTkVUU05NUF9VU0VfSU5MSU5FOgogKgogKiAgICNpZmRlZiBORVRTTk1QX1VTRV9JTkxJTkUKICogICBORVRTTk1QX0lOTElORSBmdW5jdGlvbihpbnQgcGFybSkgeyByZXR1cm4gcGFybSAtMTsgfQogKiAgICNlbmRpZgogKgogKiBGdW5jdGlvbnMgd2hpY2ggc2hvdWxkIGJlIHN0YXRpYywgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCBpbmxpbmUKICogaXMgYXZhaWxhYmxlIG9yIGVuYWJsZWQgc2hvdWxkIHVzZSB0aGUgTkVUU05NUF9TVEFUSUNfSU5MSU5FIG1hY3JvLAogKiBsaWtlIHNvOgogKgogKiAgICBORVRTTk1QX1NUQVRJQ19JTkxJTkUgZnVuY3Rpb24oaW50IHBhcm0pIHsgcmV0dXJuIHBhcm0gLTE7IH0KICoKICogTk9UIGxpa2UgdGhpczoKICoKICogICAgc3RhdGljIE5FVFNOTVBfSU5MSU5FIGZ1bmN0aW9uKGludCBwYXJtKSB7IHJldHVybiBwYXJtIC0xOyB9CiAqCiAqLwojaWZkZWYgTkVUU05NUF9CUk9LRU5fSU5MSU5FCiMgICBkZWZpbmUgTkVUU05NUF9FTkFCTEVfSU5MSU5FIDAKI2Vsc2UKIyAgIGRlZmluZSBORVRTTk1QX0VOQUJMRV9JTkxJTkUgMQojZW5kaWYKCiNpbmNsdWRlIE5FVFNOTVBfU1lTVEVNX0lOQ0xVREVfRklMRQojaW5jbHVkZSBORVRTTk1QX01BQ0hJTkVfSU5DTFVERV9GSUxFCgojaWYgTkVUU05NUF9FTkFCTEVfSU5MSU5FICYmICFkZWZpbmVkKE5FVFNOTVBfTk9fSU5MSU5FKQojICAgZGVmaW5lIE5FVFNOTVBfVVNFX0lOTElORSAxCiMgICBpZm5kZWYgTkVUU05NUF9JTkxJTkUKIyAgICAgIGRlZmluZSBORVRTTk1QX0lOTElORSBpbmxpbmUKIyAgIGVuZGlmCiMgICBpZm5kZWYgTkVUU05NUF9TVEFUSUNfSU5MSU5FCiMgICAgICBkZWZpbmUgTkVUU05NUF9TVEFUSUNfSU5MSU5FIHN0YXRpYyBpbmxpbmUKIyAgIGVuZGlmCiNlbHNlCiMgICBkZWZpbmUgTkVUU05NUF9JTkxJTkUgCiMgICBkZWZpbmUgTkVUU05NUF9TVEFUSUNfSU5MSU5FIHN0YXRpYwojZW5kaWYKCiNpZm5kZWYgTkVUU05NUF9JTVBPUlQKIyAgZGVmaW5lIE5FVFNOTVBfSU1QT1JUIGV4dGVybgojZW5kaWYKCi8qIGNvbW1lbnQgdGhlIG5leHQgbGluZSBpZiB5b3UgYXJlIGNvbXBpbGluZyB3aXRoIGxpYnNubXAuaCAKICAgYW5kIGFyZSBub3QgdXNpbmcgdGhlIFVDLURhdmlzIFNOTVAgbGlicmFyeS4gKi8KI2RlZmluZSBVQ0RfU05NUF9MSUJSQVJZIDEKCi8qIGZpbmFsIGNvbmNsdXNpb24gb24gbmxpc3QgdXNhZ2UgKi8KI2lmIGRlZmluZWQoSEFWRV9OTElTVCkgJiYgZGVmaW5lZChIQVZFX1NUUlVDVF9OTElTVF9OX1ZBTFVFKSAmJiAhZGVmaW5lZChORVRTTk1QX0RPTlRfVVNFX05MSVNUKSAmJiBkZWZpbmVkKEhBVkVfS01FTSkgJiYgIWRlZmluZWQoTkVUU05NUF9OT19LTUVNX1VTQUdFKQojZGVmaW5lIE5FVFNOTVBfQ0FOX1VTRV9OTElTVAojZW5kaWYKCgovKiAqKioqKioqKiogTkVUU05NUF9NQVJLX0JFR0lOX0xFR0FDWV9ERUZJTklUSU9OUyAqKioqKioqKiovCi8qIAogKiBleGlzdGluZyBkZWZpbml0aW9ucyBwcmlvciB0byBOZXQtU05NUCA1LjQKICoKICogZG8gbm90IGFkZCBhbnl0aGluZyBuZXcgaGVyZQogKgogKi8KCiNpZm5kZWYgTkVUU05NUF9OT19MRUdBQ1lfREVGSU5JVElPTlMKCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfU05NUF9WRVJTSU9OCiMgZGVmaW5lIERFRkFVTFRfU05NUF9WRVJTSU9OIE5FVFNOTVBfREVGQVVMVF9TTk1QX1ZFUlNJT04KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TTk1QVjEKIyBkZWZpbmUgU05NUFYxIE5FVFNOTVBfU05NUFYxCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU05NUFYyQU5ZCiMgZGVmaW5lIFNOTVBWMkFOWSBORVRTTk1QX1NOTVBWMkFOWQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NOTVBWMkFVVEgKIyBkZWZpbmUgU05NUFYyQVVUSCBORVRTTk1QX1NOTVBWMkFVVEgKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX01JQlMKIyBkZWZpbmUgREVGQVVMVF9NSUJTIE5FVFNOTVBfREVGQVVMVF9NSUJTCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9NSUJESVJTCiMgZGVmaW5lIERFRkFVTFRfTUlCRElSUyBORVRTTk1QX0RFRkFVTFRfTUlCRElSUwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfTUlCRklMRVMKIyBkZWZpbmUgREVGQVVMVF9NSUJGSUxFUyBORVRTTk1QX0RFRkFVTFRfTUlCRklMRVMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9XSVRIX09QQVFVRV9TUEVDSUFMX1RZUEVTCiMgZGVmaW5lIE9QQVFVRV9TUEVDSUFMX1RZUEVTIE5FVFNOTVBfV0lUSF9PUEFRVUVfU1BFQ0lBTF9UWVBFUwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0VOQUJMRV9TQ0FQSV9BVVRIUFJJVgojIGRlZmluZSBTQ0FQSV9BVVRIUFJJViBORVRTTk1QX0VOQUJMRV9TQ0FQSV9BVVRIUFJJVgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1VTRV9JTlRFUk5BTF9NRDUKIyBkZWZpbmUgVVNFX0lOVEVSTkFMX01ENSBORVRTTk1QX1VTRV9JTlRFUk5BTF9NRDUKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfUEtDUzExCiMgZGVmaW5lIFVTRV9QS0NTIE5FVFNOTVBfVVNFX1BLQ1MxMQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1VTRV9PUEVOU1NMCiMgZGVmaW5lIFVTRV9PUEVOU1NMIE5FVFNOTVBfVVNFX09QRU5TU0wKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9OT19ERUJVR0dJTkcKIyBkZWZpbmUgU05NUF9OT19ERUJVR0dJTkcgTkVUU05NUF9OT19ERUJVR0dJTkcKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9BTFdBWVNfREVCVUcKIyBkZWZpbmUgU05NUF9BTFdBWVNfREVCVUcgTkVUU05NUF9BTFdBWVNfREVCVUcKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfUkVWRVJTRV9BU05FTkNPRElORwojIGRlZmluZSBVU0VfUkVWRVJTRV9BU05FTkNPRElORyBORVRTTk1QX1VTRV9SRVZFUlNFX0FTTkVOQ09ESU5HCiNlbmRpZgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX0FTTkVOQ09ESU5HX0RJUkVDVElPTgojIGRlZmluZSBERUZBVUxUX0FTTkVOQ09ESU5HX0RJUkVDVElPTiBORVRTTk1QX0RFRkFVTFRfQVNORU5DT0RJTkdfRElSRUNUSU9OCiNlbmRpZgoKI2RlZmluZSBQRVJTSVNURU5UX0RJUkVDVE9SWSBORVRTTk1QX1BFUlNJU1RFTlRfRElSRUNUT1JZCiNkZWZpbmUgUEVSU0lTVEVOVF9NQVNLIE5FVFNOTVBfUEVSU0lTVEVOVF9NQVNLCiNkZWZpbmUgQUdFTlRfRElSRUNUT1JZX01PREUgTkVUU05NUF9BR0VOVF9ESVJFQ1RPUllfTU9ERQojZGVmaW5lIE1BWF9QRVJTSVNURU5UX0JBQ0tVUFMgTkVUU05NUF9NQVhfUEVSU0lTVEVOVF9CQUNLVVBTCiNkZWZpbmUgU1lTVEVNX0lOQ0xVREVfRklMRSBORVRTTk1QX1NZU1RFTV9JTkNMVURFX0ZJTEUKI2RlZmluZSBNQUNISU5FX0lOQ0xVREVfRklMRSBORVRTTk1QX01BQ0hJTkVfSU5DTFVERV9GSUxFCgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX1NFUlZFUl9TRU5EX0JVRgojIGRlZmluZSBERUZBVUxUX1NFUlZFUl9TRU5EX0JVRiBORVRTTk1QX0RFRkFVTFRfU0VSVkVSX1NFTkRfQlVGCiNlbmRpZgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX1NFUlZFUl9SRUNWX0JVRgojIGRlZmluZSBERUZBVUxUX1NFUlZFUl9SRUNWX0JVRiBORVRTTk1QX0RFRkFVTFRfU0VSVkVSX1JFQ1ZfQlVGCiNlbmRpZgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX0NMSUVOVF9TRU5EX0JVRgojIGRlZmluZSBERUZBVUxUX0NMSUVOVF9TRU5EX0JVRiBORVRTTk1QX0RFRkFVTFRfQ0xJRU5UX1NFTkRfQlVGCiNlbmRpZgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX0NMSUVOVF9SRUNWX0JVRgojIGRlZmluZSBERUZBVUxUX0NMSUVOVF9SRUNWX0JVRiBORVRTTk1QX0RFRkFVTFRfQ0xJRU5UX1JFQ1ZfQlVGCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfTE9HRklMRQojIGRlZmluZSBMT0dGSUxFIE5FVFNOTVBfTE9HRklMRQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NZU19DT05UQUNUCiMgZGVmaW5lIFNZU19DT05UQUNUIE5FVFNOTVBfU1lTX0NPTlRBQ1QKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TWVNfTE9DCiMgZGVmaW5lIFNZU19MT0MgTkVUU05NUF9TWVNfTE9DCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX0xJQldSQVAKIyBkZWZpbmUgVVNFX0xJQldSQVAgTkVUU05NUF9VU0VfTElCV1JBUAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0VOQUJMRV9URVNUSU5HX0NPREUgCiMgZGVmaW5lIFNOTVBfVEVTVElOR19DT0RFIE5FVFNOTVBfRU5BQkxFX1RFU1RJTkdfQ09ERQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX05PX1JPT1RfQUNDRVNTCiMgZGVmaW5lIE5PX1JPT1RfQUNDRVNTIE5FVFNOTVBfTk9fUk9PVF9BQ0NFU1MKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9OT19LTUVNX1VTQUdFCiMgZGVmaW5lIE5PX0tNRU1fVVNBR0UgTkVUU05NUF9OT19LTUVNX1VTQUdFCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfTk9fRFVNTVlfVkFMVUVTCiMgZGVmaW5lIE5PX0RVTU1ZX1ZBTFVFUyBORVRTTk1QX05PX0RVTU1ZX1ZBTFVFUwojZW5kaWYKCiNkZWZpbmUgVkVSU19ERVNDICAgICBORVRTTk1QX1ZFUlNfREVTQwojZGVmaW5lIFNZU19OQU1FICAgICAgTkVUU05NUF9TWVNfTkFNRQoKI2RlZmluZSBQUk9DTUlCTlVNICAgIE5FVFNOTVBfUFJPQ01JQk5VTQojZGVmaW5lIFNIRUxMTUlCTlVNICAgTkVUU05NUF9TSEVMTE1JQk5VTQojZGVmaW5lIE1FTU1JQk5VTSAgICAgTkVUU05NUF9NRU1NSUJOVU0KI2RlZmluZSBESVNLTUlCTlVNICAgIE5FVFNOTVBfRElTS01JQk5VTQoKI2RlZmluZSBMT0FEQVZFTUlCTlVNIE5FVFNOTVBfTE9BREFWRU1JQk5VTQojZGVmaW5lIFZFUlNJT05NSUJOVU0gTkVUU05NUF9WRVJTSU9OTUlCTlVNCiNkZWZpbmUgRVJST1JNSUJOVU0gICBORVRTTk1QX0VSUk9STUlCTlVNCiNkZWZpbmUgQUdFTlRJRCAgICAgICBORVRTTk1QX0FHRU5USUQKCiNkZWZpbmUgSFBVWDlJRCAgICAgICBORVRTTk1QX0hQVVg5SUQKI2RlZmluZSBTVU5PUzRJRCAgICAgIE5FVFNOTVBfU1VOT1M0SUQKI2RlZmluZSBTT0xBUklTSUQgICAgIE5FVFNOTVBfU09MQVJJU0lECiNkZWZpbmUgT1NGSUQgICAgICAgICBORVRTTk1QX09TRklECiNkZWZpbmUgVUxUUklYSUQgICAgICBORVRTTk1QX1VMVFJJWElECiNkZWZpbmUgSFBVWDEwSUQgICAgICBORVRTTk1QX0hQVVgxMElECiNkZWZpbmUgTkVUQlNEMUlEICAgICBORVRTTk1QX05FVEJTRDFJRAojZGVmaW5lIEZSRUVCU0RJRCAgICAgTkVUU05NUF9GUkVFQlNESUQKI2RlZmluZSBJUklYSUQgICAgICAgIE5FVFNOTVBfSVJJWElECiNkZWZpbmUgTElOVVhJRCAgICAgICBORVRTTk1QX0xJTlVYSUQKI2RlZmluZSBCU0RJSUQgICAgICAgIE5FVFNOTVBfQlNESUlECiNkZWZpbmUgT1BFTkJTRElEICAgICBORVRTTk1QX09QRU5CU0RJRAojZGVmaW5lIFdJTjMySUQgICAgICAgTkVUU05NUF9XSU4zMklECiNkZWZpbmUgSFBVWDExSUQgICAgICBORVRTTk1QX0hQVVgxMUlECiNkZWZpbmUgQUlYSUQgICAgICAgICBORVRTTk1QX0FJWElECiNkZWZpbmUgTUFDT1NYSUQgICAgICBORVRTTk1QX01BQ09TWElECiNkZWZpbmUgVU5LTk9XTklEICAgICBORVRTTk1QX1VOS05PV05JRAoKI2RlZmluZSBFTlRFUlBSSVNFX09JRCAgICAgICAgICAgIE5FVFNOTVBfRU5URVJQUklTRV9PSUQKI2RlZmluZSBFTlRFUlBSSVNFX01JQiAgICAgICAgICAgIE5FVFNOTVBfRU5URVJQUklTRV9NSUIKI2RlZmluZSBFTlRFUlBSSVNFX0RPVF9NSUIgICAgICAgIE5FVFNOTVBfRU5URVJQUklTRV9ET1RfTUlCCiNkZWZpbmUgRU5URVJQUklTRV9ET1RfTUlCX0xFTkdUSCBORVRTTk1QX0VOVEVSUFJJU0VfRE9UX01JQl9MRU5HVEgKCiNkZWZpbmUgU1lTVEVNX01JQgkJICBORVRTTk1QX1NZU1RFTV9NSUIKI2RlZmluZSBTWVNURU1fRE9UX01JQgkJICBORVRTTk1QX1NZU1RFTV9ET1RfTUlCCiNkZWZpbmUgU1lTVEVNX0RPVF9NSUJfTEVOR1RICSAgTkVUU05NUF9TWVNURU1fRE9UX01JQl9MRU5HVEgKCiNkZWZpbmUgTk9USUZJQ0FUSU9OX01JQgkgICAgTkVUU05NUF9OT1RJRklDQVRJT05fTUlCCQojZGVmaW5lIE5PVElGSUNBVElPTl9ET1RfTUlCCSAgICBORVRTTk1QX05PVElGSUNBVElPTl9ET1RfTUlCCiNkZWZpbmUgTk9USUZJQ0FUSU9OX0RPVF9NSUJfTEVOR1RIIE5FVFNOTVBfTk9USUZJQ0FUSU9OX0RPVF9NSUJfTEVOR1RICgojZGVmaW5lIFVDREFWSVNfT0lECQkgIE5FVFNOTVBfVUNEQVZJU19PSUQKI2RlZmluZSBVQ0RBVklTX01JQgkJICBORVRTTk1QX1VDREFWSVNfTUlCCiNkZWZpbmUgVUNEQVZJU19ET1RfTUlCCQkgIE5FVFNOTVBfVUNEQVZJU19ET1RfTUlCCiNkZWZpbmUgVUNEQVZJU19ET1RfTUlCX0xFTkdUSAkgIE5FVFNOTVBfVUNEQVZJU19ET1RfTUlCX0xFTkdUSAoKI2RlZmluZSBFUlJPUlRJTUVMRU5HVEggTkVUU05NUF9FUlJPUlRJTUVMRU5HVEgKCiNpZmRlZiBORVRTTk1QX1BST0NGSVhDTUQKIyBkZWZpbmUgUFJPQ0ZJWENNRCBORVRTTk1QX1BST0NGSVhDTUQKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9FWEVDRklYQ01ECiMgZGVmaW5lIEVYRUNGSVhDTUQgTkVUU05NUF9FWEVDRklYQ01ECiNlbmRpZgoKI2RlZmluZSBFWENBQ0hFVElNRSAgTkVUU05NUF9FWENBQ0hFVElNRQojZGVmaW5lIENBQ0hFRklMRSAgICBORVRTTk1QX0NBQ0hFRklMRQojZGVmaW5lIE1BWENBQ0hFU0laRSBORVRTTk1QX01BWENBQ0hFU0laRQoKI2RlZmluZSBERUZESVNLTUlOSU1VTVNQQUNFIE5FVFNOTVBfREVGRElTS01JTklNVU1TUEFDRQojZGVmaW5lIERFRk1BWExPQURBVkUgTkVUU05NUF9ERUZNQVhMT0FEQVZFCiNkZWZpbmUgTUFYUkVBRENPVU5UIE5FVFNOTVBfTUFYUkVBRENPVU5UCgojZGVmaW5lIFNOTVBCTE9DSyBORVRTTk1QX1NOTVBCTE9DSwojZGVmaW5lIFJFU1RBUlRTTEVFUCBORVRTTk1QX1JFU1RBUlRTTEVFUAoKI2RlZmluZSBOVU1fQ09NTVVOSVRJRVMJTkVUU05NUF9OVU1fQ09NTVVOSVRJRVMKCiNpZmRlZiBORVRTTk1QX05PX1pFUk9MRU5HVEhfQ09NTVVOSVRZCiMgZGVmaW5lIE5PX1pFUk9MRU5HVEhfQ09NTVVOSVRZIE5FVFNOTVBfTk9fWkVST0xFTkdUSF9DT01NVU5JVFkKI2VuZGlmCgojZGVmaW5lIExBU1RGSUVMRCBORVRTTk1QX0xBU1RGSUVMRAoKI2RlZmluZSBDT05GSUdVUkVfT1BUSU9OUyBORVRTTk1QX0NPTkZJR1VSRV9PUFRJT05TCgojaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfVURQX0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9VRFBfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1VEUF9ET01BSU4KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfVENQX0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9UQ1BfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1RDUF9ET01BSU4KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfVU5JWF9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfVU5JWF9ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfVU5JWF9ET01BSU4KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfQUFMNVBWQ19ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfQUFMNVBWQ19ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfQUFMNVBWQ19ET01BSU4KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfSVBYX0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9JUFhfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX0lQWF9ET01BSU4KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfVURQSVBWNl9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfVURQSVBWNl9ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfVURQSVBWNl9ET01BSU4KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfVENQSVBWNl9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfVENQSVBWNl9ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfVENQSVBWNl9ET01BSU4KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfVExTX0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9UTFNfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1RMU19ET01BSU4KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9UUkFOU1BPUlRfU1REX0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9TVERfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1NURF9ET01BSU4KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TRUNNT0RfVVNNCiMgZGVmaW5lIFNOTVBfU0VDTU9EX1VTTSBORVRTTk1QX1NFQ01PRF9VU00KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TRUNNT0RfS1NNCiMgZGVmaW5lIFNOTVBfU0VDTU9EX0tTTSBORVRTTk1QX1NFQ01PRF9LU00KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TRUNNT0RfTE9DQUxTTSAKIyBkZWZpbmUgU05NUF9TRUNNT0RfTE9DQUxTTSBORVRTTk1QX1NFQ01PRF9MT0NBTFNNCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfUkVFTlRSQU5UCiMgZGVmaW5lIE5TX1JFRU5UUkFOVCBORVRTTk1QX1JFRU5UUkFOVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0VOQUJMRV9JUFY2CiMgZGVmaW5lIElORVQ2IE5FVFNOTVBfRU5BQkxFX0lQVjYKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9FTkFCTEVfTE9DQUxfU01VWAojIGRlZmluZSBMT0NBTF9TTVVYIE5FVFNOTVBfRU5BQkxFX0xPQ0FMX1NNVVgKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9BR0VOVFhfRE9NX1NPQ0tfT05MWQojIGRlZmluZSBBR0VOVFhfRE9NX1NPQ0tfT05MWSBORVRTTk1QX0FHRU5UWF9ET01fU09DS19PTkxZCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU05NUFRSQVBEX0RJU0FCTEVfQUdFTlRYCiMgZGVmaW5lIFNOTVBUUkFQRF9ESVNBQkxFX0FHRU5UWAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1VTRV9LRVJCRVJPU19NSVQKIyBkZWZpbmUgTUlUX05FV19DUllQVE8gTkVUU05NUF9VU0VfS0VSQkVST1NfTUlUCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX0tFUkJFUk9TX0hFSU1EQUwKIyBkZWZpbmUgSEVJTURBTCBORVRTTk1QX1VTRV9LRVJCRVJPU19IRUlNREFMCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfQUdFTlRYX1NPQ0tFVAojIGRlZmluZSBBR0VOVFhfU09DS0VUIE5FVFNOTVBfQUdFTlRYX1NPQ0tFVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RJU0FCTEVfTUlCX0xPQURJTkcKIyBkZWZpbmUgRElTQUJMRV9NSUJfTE9BRElORyBORVRTTk1QX0RJU0FCTEVfTUlCX0xPQURJTkcKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ESVNBQkxFX1NOTVBWMQojIGRlZmluZSBESVNBQkxFX1NOTVBWMSBORVRTTk1QX0RJU0FCTEVfU05NUFYxCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRElTQUJMRV9TTk1QVjJDCiMgZGVmaW5lIERJU0FCTEVfU05NUFYyQyBORVRTTk1QX0RJU0FCTEVfU05NUFYyQwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKIyBkZWZpbmUgRElTQUJMRV9TRVRfU1VQUE9SVCBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ESVNBQkxFX0RFUwojIGRlZmluZSBESVNBQkxFX0RFUyBORVRTTk1QX0RJU0FCTEVfREVTCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRElTQUJMRV9NRDUKIyBkZWZpbmUgRElTQUJMRV9NRDUgTkVUU05NUF9ESVNBQkxFX01ENQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RPTlRfVVNFX05MSVNUCiMgZGVmaW5lIERPTlRfVVNFX05MSVNUIE5FVFNOTVBfRE9OVF9VU0VfTkxJU1QKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9DQU5fVVNFX05MSVNUCiMgZGVmaW5lIENBTl9VU0VfTkxJU1QgTkVUU05NUF9DQU5fVVNFX05MSVNUCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfQ0FOX1VTRV9TWVNDVEwKIyBkZWZpbmUgQ0FOX1VTRV9TWVNDVEwgTkVUU05NUF9DQU5fVVNFX1NZU0NUTAojZW5kaWYKCiNlbmRpZiAvKiBORVRTTk1QX05PX0xFR0FDWV9ERUZJTklUSU9OUyAqLwoKCiNlbmRpZiAvKiBORVRfU05NUF9DT05GSUdfSCAqLwo=